Dlaczego Touch ID nie działa po restarcie?

touch-id-icon

Po zmianie iPhone 5 na 5s elementem, który spodobał mi się chyba najbardziej został czytnik linii papilarnych – Touch ID. Naprawdę szybko człowiek się przyzwyczaja do odblokowywania telefonu czy autoryzacji zakupów, korzystając z tego niezwykle sprawnie działającego drobiazgu.

Wygoda używania Touch ID rozleniwia strasznie i sprawia, że łatwo zapomnieć kod i hasła ;) Byłem zdziwiony, gdy pierwszy raz zrestartowałem iPhone i okazało się, że muszę podać kod blokady. Podobnie było przy okazji zakupu w App Store. Oczywiście kod pamiętałem (jeszcze ;)), ale byłem ciekaw, dlaczego Touch ID nie działa od razu po uruchomieniu słuchawki.

Okazuje się, że wpisanie kodu blokady wymagane jest jeszcze w innych przypadkach:

  • gdy minie 48 godzin od ostatniego odblokowania iPhone,
  • gdy chcemy wejść w opcję Touch ID i kod w Ustawieniach iOS.

Natomiast podanie hasła Apple ID wymagne jest, gdy:

  • zrestartujemy urządzenie,
  • dodamy lub usuniemy „skan” odcisku palca.

Informacje zamieszczone bezpośrednio na witrynie Apple, wyjaśniają w sekcji Secure Enclave, że jest to zachowanie nie tylko zamierzone, ale i technicznie uzasadnione, ponieważ:

Touch ID nie przechowuje obrazów/skanów odcisków palców. Zapamiętane i przechowywane są wyłącznie matematyczne odwzorowania odcisków. Nie jest technicznie możliwe odtworzenie pełnego odcisku z takiej matematycznej reprezentacji. iPhony 5s i nowsze zostały wyposażone w nową architekturę zabezpieczeń zwaną Secure Enclave, zintergrowaną w układach A7/A8, której zadaniem jest ochrona odcisków palców w formie opisanej wyżej. Matematyczne odwzorowania odcisków są zaszyfrowane i zabezpieczone kluczem, dostępnym wyłącznie dla Secure Enclave. Dane odcisków są wykorzystywane wyłącznie przez Secure Enclave do wykonania porównania z odciskiem przyłożonego do czytnika palca. Secure Enclave jest odseparowane od reszty czipu A7/A8 oraz reszty systemu iOS. W efekcie, dane zachowanych odcisków są niedostępne dla iOS oraz innych aplikacji, nie są przechowywane na serwerach Apple ani w innym niż Secure Enclave miejscu. Dostęp do tych danych posiada wyłącznie Touch ID, nie można też użyć tych danych do porównania z innymi bazami odcisków.

Reasumując: Secure Enclave jest zablokowane kodem i dlatego po restarcie iUrządzenia, aby móc korzystać dalej z Touch ID, musimy wpierw ten kod blokady/dostępu wprowadzić.