Logo uk.androidermagazine.com
Logo uk.androidermagazine.com

Як Android зберігає ваші відбитки пальців?

Anonim

Випуск iPhone без датчика відбитків пальців викликав розмови про використання відбитків пальців для аутентифікації та про те, наскільки надійно зберігаються дані. Це круто. Навіть якщо ви не переймаєтесь тим, як це робиться, вам потрібно піклуватися про багатьох інших людей, щоб це було зроблено так, що вам не доведеться турбуватися!

Для початку Apple використовує подібне рішення, і якщо у вас є старіша модель з датчиком відбитків, ви користуєтесь нею так само безпечно, як і раніше. Те саме стосується старих телефонів Samsung, які запускали попередньо Marshmallow та використовували власні методи Samsung.

Те, як Google зберігає ваші дані відбитків пальців, є найбільш безпечним можливим способом із сучасними технологіями. Це також захоплююче, наскільки простий огляд всієї справи, як тільки ви подивитесь на це. Простий і безпечний - це завжди виграшне комбо.

Зберігання за своєю природою не дуже безпечне. Це те саме, що написати щось на замітці після його розміщення і помістити в файл шафи. Це там, тому що воно повинно бути там, і найкраще, що ви можете зробити, це контролювати, хто має до нього доступ. Для файлового шафи ви використовуєте замок, а для свого телефону - шифрування. Що стосується ваших даних про відбитки пальців, все піде на крок далі: Довірене середовище виконання (TEE).

TEE - це окрема і ізольована область в апаратному забезпеченні телефону. TEE може використовувати власний процесор і пам'ять, або він може використовувати віртуалізований екземпляр на основному процесорі. В обох випадках TEE повністю ізольовані та ізолюються за допомогою апаратної пам’яті та захисту вводу / виводу. Єдиний спосіб, коли ви потрапите, - це якщо TEE пустить вас, і це ніколи не буде. Навіть якщо телефон укорінений або завантажувач завантажений, TEE є окремим і все-таки неушкодженим.

Окремий процесор із власною пам'яттю та операційною системою використовується для аналізу та зберігання даних відбитків пальців.

Google використовує те, що вони називають Trusty TEE, щоб підтримати це. Дуже невелика та ефективна операційна система, відповідно названа Trusty OS, працює на апаратному забезпеченні TEE, а драйвери ядра дозволяють їй спілкуватися із системою. Існують бібліотеки Android (ви здогадалися: Trusty API), які розробники можуть використовувати, щоб вони могли запитати, що означає "так" чи "ні" питання TEE. У TEE зберігаються не лише дані відбитків пальців. Такі речі, як ключі DRM та ключі шифрування завантажувача виробника, також живуть у TEE і працюють так само, як і ваші дані відбитків пальців.

Інші виробники можуть використовувати Trusty OS або потім використовувати іншу систему. Поки всі критерії виконуються (перелічені нижче) і TEE є ізольованим та ізольованим, він відповідатиме стандартам безпеки, необхідним для використання Pixel Imprint (раніше Nexus Imprint).

Блок-схема ARM TrustZone TEE

Коли ви реєструєте відбиток пальця на телефоні Android, датчик захоплює дані сканування. Довірена ОС аналізує ці дані всередині TEE, потім створює дві речі: набір даних перевірки та зашифрований шаблон відбитків пальців. Здається, це непотрібні дані для всіх, окрім TEE, у якого також є ключ для розшифровки цих непотрібних даних. Цей зашифрований шаблон відбитків пальців зберігається в зашифрованому контейнері або на TEE, або на зашифрованому сховищі вашого телефону. Три шари шифрування означають, що отримати дані практично неможливо, і навіть якщо ви можете це марно без способу їх розшифровки.

Android вимагає, щоб ваші дані відбитків пальців були захищені унікальним ключем, і ви не можете їх перенести на інший телефон або повторно використовувати його для іншого користувача.

Дані перевірки зберігаються всередині TEE. Коли ви кладете палець на сканер, щоб спробувати щось зробити, сканер створює профіль даних. Через довірений API пов’язана програма запитує ядро ​​запитати TEE, чи правильно воно. TEE перевіряє збережені дані валідації за допомогою свого окремого процесора та пам'яті, і якщо достатня кількість даних відповідає, вона говорить так. Якщо не вистачає відповідних даних, він говорить "ні". Ця відповідь пропуску чи помилки надсилається назад до ядра як програмний маркер, який API може прочитати, щоб побачити результат.

Хоча сам TEE використовує окрему ОС та обладнання для забезпечення безпеки, в шаблоні відбитків пальців використовується шифрування на основі програмного забезпечення. Щоб бути дійсним, він має бути підписаний дуже конкретним ключем. Цей ключ створений з використанням інформації, що залежить від пристрою, інформації, що залежить від користувача, та інформації, що залежить від часу. Іншими словами, якщо ви видалите користувача, поміняєте пристрої або спробуйте перереєструвати відбиток пальця (система може сказати, чи ви перезаписали наявний відбиток пальця), ключ більше не розпізнається і його не можна використовувати для розшифрування відбитка пальця шаблон.

Основні правила, яких повинна дотримуватися кожна компанія, яка виробляє телефони Android з датчиком відбитків пальців:

  • Усі аналізи даних за відбитками пальців повинні виконуватися всередині TEE
  • Усі дані, пов’язані з відбитками пальців, повинні зберігатися в TEE або в надійній пам'яті (пам'ять, яку основний процесор навіть не бачить)
  • Дані профілю відбитків пальців повинні бути самозашифровані, навіть якщо вони зберігаються в зашифрованому сховищі телефону
  • Видалення облікового запису користувача також повинно надійно стерти будь-які дані, пов’язані з відбитками цього користувача
  • Там, де зберігаються профілі відбитків пальців, не повинно бути видно жодна програма, процес чи користувач, включаючи кореневого користувача
  • Дані відбитків будь-якого виду не повинні бути резервними копіями будь-якого іншого джерела, включаючи хмару, комп’ютер чи будь-яку програму
  • Автентифікація відбитків пальців повинна використовуватися тим процесом, який її вимагав (жодного обміну даними відбитків пальців, навіть просто відповіді "так" чи "ні", щоб побачити, чи це правильно)

Коли у вас є кілька стандартних специфікацій, які є зрозумілими, їх не важко виконати. Саме це гарантує, що незалежно від того, на якому Android-телефоні ви користуєтеся даними відбитків, безпечно зберігатимуться, і жоден інший системний процес чи додаток не можуть отримати доступ до них. У міру розвитку криптографії, особливо захищеного апаратним кодуванням, таким способом буде захищено дані відбитків пальців. Буде цікаво озирнутися, як тільки запуститься Android Z і побачити, як далеко ми зайшли.