Logo pl.androidermagazine.com
Logo pl.androidermagazine.com

Jak Android zapisuje Twoje odciski palców?

Anonim

Wydanie iPhone'a bez czujnika linii papilarnych przyniosło wiele dyskusji na temat używania odcisków palców do uwierzytelniania i bezpieczeństwa przechowywania danych. To cudownie. Nawet jeśli nie martwisz się tym, jak to się robi, potrzebujesz wielu innych osób, aby to zrobić, abyś nie musiał się tym martwić!

Na początek Apple stosuje podobne rozwiązanie, a jeśli masz starszy model z czujnikiem linii papilarnych, możesz go używać tak samo bezpiecznie, jak wcześniej. To samo dotyczy starszych telefonów Samsung, które uruchomiły wersję wcześniejszą niż Marshmallow i korzystały z własnych metod Samsunga.

Sposób, w jaki Google przechowuje Twoje dane daktyloskopijne, jest najbezpieczniejszym możliwym sposobem dzięki obecnej technologii. Fascynujące jest także to, jak prosty jest przegląd całości, gdy się na niego spojrzy. Prosty i bezpieczny to zawsze zwycięska kombinacja.

Składowanie z natury nie jest zbyt bezpieczne. To tak samo, jak zapisywanie czegoś na karteczce i umieszczanie go w szafce na dokumenty. Jest tam, ponieważ musi tam być, a najlepsze, co możesz zrobić, to kontrolować, kto ma do niego dostęp. W przypadku szafki na dokumenty używasz zamka, a w telefonie szyfrujesz. W przypadku danych odcisków palców wszystko idzie o krok dalej: środowisko Trusted Execution Environment (TEE).

TEE to oddzielny i izolowany obszar w sprzęcie telefonu. TEE może korzystać z własnego procesora i pamięci lub może używać zwirtualizowanej instancji na głównym procesorze. W obu przypadkach TEE jest w pełni izolowany i izolowany za pomocą pamięci zabezpieczonej sprzętowo i ochrony wejścia / wyjścia. Jedynym sposobem, w jaki się dostaniesz, jest wejście TEE i nigdy tego nie zrobisz. Nawet jeśli telefon jest zrootowany lub bootloader jest odblokowany, TEE jest osobny i nadal nienaruszony.

Osobny procesor z własną pamięcią i systemem operacyjnym służy do analizy i przechowywania danych odcisków palców.

Google wykorzystuje to, co nazywają Trusty TEE. Bardzo mały i wydajny system operacyjny, odpowiednio nazwany Trusty OS, działa na sprzęcie TEE, a sterowniki jądra umożliwiają mu komunikację z systemem. Istnieją biblioteki Androida (zgadłeś: Trusty API), z których mogą korzystać programiści, aby mogli zadać TEE pytanie o odpowiedź tak lub nie. W TEE przechowywane są nie tylko dane odcisków palców. Rzeczy takie jak klucze DRM i klucze szyfrujące bootloadera producenta również znajdują się w TEE i działają w taki sam sposób, jak dane odcisków palców - odpowiedz, czy dane przedstawione przez aplikację odpowiadają znanym, dobrym, przechowywanym danym.

Inni producenci mogą korzystać z systemu Trusty OS lub z innego systemu. Dopóki wszystkie kryteria są spełnione (wymienione poniżej), a TEE jest izolowany i izolowany, będzie spełniał standardy bezpieczeństwa potrzebne do korzystania z Pixel Imprint (wcześniej Nexus Imprint).

Schemat blokowy ARM TrustZone TEE.

Po zarejestrowaniu odcisku palca na telefonie z Androidem czujnik pobiera dane ze skanu. Trusty OS analizuje te dane w TEE, a następnie tworzy dwie rzeczy: zestaw danych sprawdzających i zaszyfrowany szablon linii papilarnych. Wydaje się, że są to niepotrzebne dane do wszystkiego oprócz TEE, który również ma klucz do odszyfrowania tych niepotrzebnych danych. Ten zaszyfrowany szablon linii papilarnych jest przechowywany w zaszyfrowanym kontenerze w TEE lub w zaszyfrowanej pamięci telefonu. Trzy warstwy szyfrowania oznaczają, że uzyskanie danych jest prawie niemożliwe, a nawet gdybyś mógł, byłoby to bezużyteczne bez możliwości ich rozszyfrowania.

Android wymaga, aby Twoje dane odcisków palców były zabezpieczone unikalnym kluczem, a możesz; T zabrać je na inny telefon lub użyć ponownie dla innego użytkownika.

Dane walidacyjne są przechowywane w TEE. Kiedy położysz palec na skanerze, aby spróbować coś zrobić, skaner tworzy profil danych. Za pośrednictwem Trusty API powiązana aplikacja prosi jądro, aby zapytało TEE, czy ma rację. TEE porównuje z przechowywanymi danymi walidacyjnymi za pomocą swojego oddzielnego procesora i pamięci, a jeśli wystarczająca ilość danych jest zgodna, mówi tak. Jeśli nie ma wystarczającej liczby pasujących danych, oznacza to, że nie. Ta odpowiedź pozytywna lub negatywna jest wysyłana z powrotem do jądra jako token oprogramowania, który API może odczytać, aby zobaczyć wynik.

Podczas gdy sam TEE korzysta z autonomicznego systemu operacyjnego i sprzętu, aby zachować bezpieczeństwo, szablon linii papilarnych wykorzystuje szyfrowanie programowe. Aby był ważny, musi być podpisany bardzo określonym kluczem. Ten klucz jest tworzony przy użyciu informacji specyficznych dla urządzenia, informacji specyficznych dla użytkownika i informacji dotyczących czasu. Innymi słowy, jeśli usuniesz użytkownika, zmienisz urządzenie lub spróbujesz ponownie zarejestrować odcisk palca (system może stwierdzić, czy nadpisujesz istniejący odcisk palca), klucz nie jest już rozpoznawany i nie można go użyć do odszyfrowania odcisku palca szablon.

Podstawowe zasady, których musi przestrzegać każda firma produkująca telefony z Androidem z czytnikiem linii papilarnych:

  • Wszystkie analizy danych daktyloskopijnych muszą być wykonywane wewnątrz TEE
  • Wszystkie dane związane z odciskiem palca muszą być przechowywane w TEE lub w zaufanej pamięci (pamięć, której główny procesor nawet nie widzi)
  • Dane profilu linii papilarnych muszą być samoszyfrowane, nawet jeśli są przechowywane w zaszyfrowanej pamięci telefonu
  • Usunięcie konta użytkownika musi również bezpiecznie wyczyścić wszelkie dane powiązane z odciskami palców tego użytkownika
  • Gdzie przechowywane są profile odcisków palców, nie mogą być widoczne dla żadnej aplikacji, procesu lub użytkownika, w tym użytkownika root
  • Nie można tworzyć kopii zapasowych jakichkolwiek danych daktyloskopijnych w żadnym innym źródle, w tym w chmurze, komputerze lub jakiejkolwiek aplikacji
  • Uwierzytelnianie odcisków palców musi być stosowane przez proces, który o to poprosił (brak udostępniania danych odcisków palców, nawet tylko odpowiedź tak lub nie, aby sprawdzić, czy jest poprawna)

Gdy masz kilka standardowych specyfikacji, które są jasne, nie jest trudno je spełnić. To gwarantuje, że bez względu na to, jakiego telefonu z Androidem używasz danych odcisków palców, będzie bezpiecznie przechowywany i żaden inny proces systemowy lub aplikacja nie będzie mogła uzyskać do nich dostępu. W miarę ewolucji kryptografii, zwłaszcza szyfrowania wspieranego sprzętowo, zmieni się również ta metoda zabezpieczania danych daktyloskopijnych. Ciekawie będzie spojrzeć wstecz po uruchomieniu Androida Z i zobaczyć, jak daleko zaszliśmy.