2010-08-31 15 views
35

Po pierwsze, trochę mojego tła. Od ponad dekady pracuję nad dużymi systemami internetowymi, Android jest czymś, nad czym się przyglądałem przez ostatnie dwa miesiące; jak można sobie wyobrazić, różnica jest dość szeroka :)Jak bezpieczne są pliki SQLite i SharedPreferences w systemie Android?

Patrząc na część dokumentacji Android, Security and Permissions i Data Storage, rozmawiając bezpośrednio z programistami, czytając książki i samouczki, jest całkiem jasne, jak działa cały model. Nie udało mi się jednak znaleźć odpowiedzi na pytanie, czy pliki SQLite i SharedPreferences są wystarczająco bezpieczne do przechowywania delikatnych, nieszyfrowanych informacji (na przykład tokenów OAuth). Czy ktoś może je w jakiś sposób złapać? Cytując dokumentację Androida:

Wszystkie dane przechowywane przez aplikację będą miały przypisany identyfikator użytkownika tej aplikacji i zwykle nie będą dostępne dla innych pakietów.

To normalnie niedostępnych część daje mi dodatkowe siwe włosy :)

Dziękuję pomocna odpowiedzi są mile widziane :)

+0

Nie znam odpowiedzi, ale nie sądzę, że dane są w jakikolwiek sposób szyfrowane. –

+1

Nie, nie jest. Jedynym mechanizmem ochrony są uprawnienia dostępu na poziomie systemu plików. Jednak zrootowanie telefonu powoduje, że dowolna aplikacja może uzyskać dostęp do tych plików XML. Zobacz także: http://www.androiddiscuss.com/1-android-discuss/1671.html –

Odpowiedz

39

Czy ktoś może je w jakiś sposób złapać?

To zależy od kogoś. Jak wskazuje pan Burov, użytkownicy zrootowanych telefonów mogą uzyskać wszystko, czego chcą. Zwykli użytkownicy i inne aplikacje nie mogą domyślnie.

To normalnie nie dostępne część daje mi dodatkowe siwe włosy :)

Domyślnie pliki są bezpieczne. Jeśli chcesz, możesz uczynić je czytelnymi na całym świecie lub zapisującymi świat.

Czy w takim razie nie można również dekompilować pliku APK i znaleźć klucza szyfrowania?

To zależy od tego, kogo bronisz. Jeśli bronisz się przed innymi aplikacjami, poproś użytkownika o podanie klucza szyfrowania. Jeśli bronisz się przed użytkownikiem, jesteś skrępowany, tak jak wszystkie implementacje DRM są wkręcane.

+29

+1. 'Tylko wszystkie implementacje DRM są wkręcane;;) –

+1

Zawsze znajdzie się ktoś, kto spróbuje dowiedzieć się, jak coś się robi, i nie ma możliwości 100% ochrony. Szyfrowanie danych powinno sprawić, że większość prób zakończy się sukcesem, mam nadzieję. Chyba musimy się z tym pogodzić. –

1

Cóż, jest kilka aplikacji edytora SharedPreferences na rynku, więc zdecydowanie nie są bezpieczne. Również na bazie zrootowanych urządzeń baza danych może się łatwo ściągać, ponieważ użytkownik ma pełny dostęp do systemu plików telefonu. Dlatego jeśli chcesz, aby Twoja aplikacja była całkowicie zabezpieczona, zaszyfruj swoje dane.

+0

Czy nie byłoby możliwe zdekompilowanie pliku APK i znalezienie klucza szyfrowania również w tym przypadku? –

+8

"Cóż, na rynku jest wiele aplikacji edytora SharedPreferences, więc zdecydowanie nie są bezpieczne." - Proszę wymienić niektóre, ponieważ wyszukiwanie na rynku nie ma żadnego. – CommonsWare

+0

@David dobrze można uzyskać klucz zaszyfrowane połączenie z niektórych serwerów w sieci. Prawdopodobnie nie jest to najlepsze rozwiązanie, ale zapewnia wyższy poziom bezpieczeństwa. –

Powiązane problemy