Czy używanie kodu PIN do szyfrowania jest względnie bezpieczne?

19

Na Androidzie 4.0 (Samsung Galaxy Nexus) istnieje możliwość zaszyfrowania telefonu. Znalazłem to o szyfrowaniu w Androidzie 3.0, czy te same algorytmy są używane w Androidzie 4? http://source.android.com/tech/encryption/android_crypto_implementation.html

Moje główne pytanie dotyczy użycia kodu PIN do odszyfrowania telefonu. Dlaczego muszę korzystać z tego samego hasła, aby odblokować ekran i odszyfrować telefon? To ograniczenie pozwoli mi tylko na użycie hasła o niskiej złożoności (np. Numeru PIN), ponieważ byłoby trudno napisać np. 17 znaków, aby odblokować telefon na zwykłe połączenie telefoniczne.

Brutalnej sile przeciwko odblokowaniu ekranu można zapobiec, np. Przez ponowne uruchomienie siły co 5 prób. Dlatego nie ma potrzeby używania bardzo silnego hasła, kod PIN może być wystarczający.
Tego rodzaju ochrony nie można zastosować na dysku, dlatego istnieje większe zapotrzebowanie na silniejsze hasła. (Nie pomaga zbytnio wzrost entropii haseł, ponieważ będzie bardzo niewielu użytkowników ze złożonym hasłem, więc osoba atakująca może po prostu wypróbować większość haseł o niskiej złożoności). Jakie jest uzasadnienie konieczności użycia tego samego hasła do obu funkcji?

Christopher Käck
źródło
3
Tak, ale jeśli użyję hasła, musiałbym go użyć, aby po prostu odblokować ekran. Niezbyt przydatne jest wpisanie 17 znaków, aby szybko zadzwonić. W związku z tym większość użytkowników dokonuje płatności za pomocą numerów PIN i to byłaby pierwsza rzecz, którą próbowałby atakujący. Lepszym rozwiązaniem może być dopuszczenie haseł do szyfrowania dysku i zezwolenie na proste numery PIN na ekranie blokady. Aby uniknąć prób brutalnej siły na ekranie blokady, może wystąpić wymuszenie ponownego uruchomienia po 3 nieudanych próbach skutkujących żądaniem hasła.
Christopher Käck,
1
Niestety nie wiem, że ktoś inny niż Google mógłby podać uzasadnienie. Prawdopodobnie możesz wypróbować narzędzie do śledzenia błędów systemu Android, aby zgłosić żądanie funkcji. Wydaje się, że jest to rozsądna sprawa.
eldarerathis,
2
Tak, przed próbą zalogowania się na ekranie odblokowania, ale nie przed odszyfrowaniem dysku twardego. Właśnie to próbuję powiedzieć, odblokowanie ekranu nie musi być tak długie, jak szyfrowanie dysku twardego (które musi być znacznie dłuższe niż 4 cyfry), a zatem nie należy zmuszać do korzystania z tego samego w obu przypadkach.
Christopher Käck
1
+1, jestem z Tobą całkowicie @ ChristopherKäck Ta decyzja nie ma sensu, inżynierowie Google powinni wiedzieć lepiej, mając nadzieję, że wkrótce ją naprawią.
João Portela,
1
@Christopher: ale opierasz swoją decyzję na niewłaściwym założeniu, szyfrowanie na dysku to 128-bitowy AES, a nie 4-cyfrowy PIN. Ustalenie, czy ten schemat jest bezpieczny, czy z natury wadliwy, nie należy do kompetencji Android.SE.
Lie Ryan

Odpowiedzi:

4

Myślę, że znalazłem rozwiązanie. Sprawdź ten link . Jest to hack i wymaga zrootowania telefonu, ale pozwala na użycie hasła alfanumerycznego do szyfrowania i kodu PIN do odblokowania ekranu.

Oscar_6
źródło
1

Używając hasła / frazy w porównaniu do czterocyfrowego kodu PIN, zwiększasz bezpieczeństwo swojego urządzenia. Chodzi o to, że nawet mając czteroznakowe hasło, właśnie zwiększyłeś swoje bezpieczeństwo z dwóch powodów:

  • Zwiększyłeś liczbę dostępnych postaci.
  • Zabrałeś atakującym wiedzę o swojej długości pw.

Jeśli atakujący wie, że twoje hasło składa się z 14 znaków, jest ono bezpieczniejsze niż hasło cztero lub ośmioznakowe, ale typowe statystyki wykorzystują zakresy (1-4, 1-8, 1-14), a nie rzeczywistość (co byłoby po prostu obliczeniem dostępne kombinacje jednej długości).

Obecnie dostęp do danych telefonu jest po prostu SPOSÓB ŁATWY . Twoja babcia ma taką możliwość (bez obrazy dla ciebie lub twojej rodziny: P). Tak więc, chociaż masz rację, że istnieją ograniczenia tego szyfrowania, „zepsuta” wersja działa o wiele lepiej niż obecnie nieszyfrowane dane.

Od Ciebie zależy, czy Twoje dane są poufne i prywatne, a także ile jesteś celem kradzieży takich danych. Wybór odpowiedniego hasła jest obowiązkiem użytkownika po ocenie tego ryzyka.

EarthmeLon
źródło
2
Tak, ale wydaje mi się, że prostym rozwiązaniem problemu byłoby posiadanie różnych haseł do odblokowywania ekranu i odszyfrowywania urządzenia (jak wspomniałem tutaj android.stackexchange.com/questions/17086/... ), ponieważ są one używane w różnych senarios i muszą mieć różne atrybuty.
Christopher Käck
1

Jeśli próbujesz złamać szyfrowanie dysku, niezależnie od reszty urządzenia w scenariuszu, w którym masz wyłączone urządzenie lub tylko układy pamięci, to jest to inny wektor ataku niż ten, który jest używany w przypadku włączonego zasilania urządzenie chronione hasłem, w którym klucz deszyfrujący może być przechowywany w pamięci (co prowadzi do luk w zabezpieczeniach wykorzystywanych przez takie elementy, jak kradzieże kluczy szyfrujących Firewire rozpowszechnione na komputerach PC ze starszym oprogramowaniem do szyfrowania FDE, a nie modułem typu TPM), lub ekran odblokowania może być brutalny - wymuszone (lub mają własne słabe punkty).

Jeśli atakujesz dysk bezpośrednio, w tym przypadku nie atakujesz 4-cyfrowego kodu PIN lub hasła użytkownika, które szyfrują urządzenie, atakujesz 128-bitowy klucz AES:

Klucz główny to 128-bitowa liczba utworzona przez odczyt z / dev / urandom. Jest szyfrowany hasłem hasła użytkownika utworzonym za pomocą funkcji PBKDF2 z biblioteki SSL. Stopka zawiera również losową sól (również odczytaną z / dev / urandom) używaną do dodawania entropii do skrótu z PBKDF2 i zapobiegania atakom na tęczową tablicę na hasło.

Z punktu 4 w części „ Włączanie szyfrowania na urządzeniuuwag dotyczących implementacji szyfrowania w systemie Android 3.0 , z którym się łączyłeś.

(miał być komentarzem, ale skończył zbyt długo)

GAThrawn
źródło
1
Dziękuję za ten miły komentarz! Jedna rzecz jednak; czy nie szukam hasła użytkownika (który najprawdopodobniej będzie 4-cyfrowym kodem PIN, ponieważ jesteś zmuszony udostępnić klucz przy odblokowywaniu ekranu i wszystko inne będzie kłopotliwe do wpisania, aby wykonać połączenie telefoniczne), aby odszyfrować 128-bitowy Klucz AES? (zamiast bezpośredniego wyszukiwania klucza). Jeśli skrótuję wszystkie 10000 pinów z funkcją PBKDF2 + sól, czy nie mam wtedy tylko 10000 prób odszyfrowania?
Christopher Käck
@Melpomene „ Atak na tęczowy stół ”, o którym mówią, polega na tym, że wstępnie szyfrujesz wszystkie 10 000 kombinacji, aby zobaczyć, jak wyglądają zaszyfrowane, a następnie po prostu porównujesz zawartość dysku z tym, co znajduje się w tabeli tęczy. „ Losowa sól ” służy temu, by temu zapobiec, tworząc znacznie więcej niż 10 000 kombinacji, które trzeba będzie odgadnąć (chyba że najpierw uda się wypracować „sól”).
GAThrawn
1
Tęcza to sprytny sposób przechowywania zaszyfrowanych haseł tak. A jeśli zostanie użyta sól, prawdopodobnie będzie musiał być specjalnie skonstruowany tylko do łamania haseł za pomocą tej soli. Nie jest to bardzo trudna operacja, gdy do wyboru jest tylko 10 000 haseł. Zauważ, że Sól jest zawsze uważana za atakującą znaną (ponieważ wydaje się, że jest czytana z / dev / urandom w dokumentach, najprawdopodobniej jest przechowywana albo jako zwykły tekst, albo zaszyfrowana hasłem użytkownika). Tak czy inaczej hasło użytkownika jest słabym łączem.
Christopher Käck
Ale nie musiałbym nawet budować tabeli tęczy, ponieważ przechowywanie (lub obliczanie) 10 000 skrótów nie jest tak trudne dla mojej pamięci (procesora).
Christopher Käck
Korzystanie z funkcji wyprowadzania klucza, takiej jak PBKDF2, wydaje się dobrą wiadomością, ale typowy 4-cyfrowy pin to wciąż tylko 10000 możliwych kombinacji.
João Portela,
0

Jeśli masz włączone zdalne czyszczenie (zakładając, że nadal działa ono z szyfrowanym urządzeniem), kod PIN może nie zabezpieczyć twojego urządzenia na zawsze, ale może to zrobić wystarczająco długo, aby dać ci czas na wyczyszczenie urządzenia.

Szansa
źródło
2
Problem polega na tym, że krótki kod PIN może zabezpieczyć urządzenie tylko wtedy, gdy jest włączone. Dlatego wyłączenie skradzionego urządzenia zapobiega jego wyczyszczeniu, a dodatkowo kod PIN może zostać złamany w trybie offline brutalnej siły. Dlatego krótki PIN nie pomoże ci w tej sytuacji.
Robert,
@Robert, nie znam się zbyt dobrze na zdalnym czyszczeniu. Jeśli odbywa się to przez Exchange, czy telefon musi być w tym samym momencie, w którym wydano polecenie zdalnego czyszczenia? Myślę, że jeśli mogę zdalnie wyczyścić pamięć w ciągu około 30 minut od utraty telefonu, który jest dla mnie wystarczająco dobry, ale nie mam żadnych danych finansowych, moim głównym zmartwieniem jest mój e-mail służbowy Gmail.
Szansa
2
Po wydaniu polecenia zdalnego czyszczenia telefon musi być włączony i online. Jeśli telefon został wyłączony (i pozostaje wyłączony), polecenie czyszczenia jest bezużyteczne.
Robert