Logo ru.androidermagazine.com
Logo ru.androidermagazine.com

Как Android сохраняет ваши отпечатки пальцев?

Anonim

Выпуск iPhone без датчика отпечатков пальцев привел к разговорам об использовании отпечатков пальцев для аутентификации и о том, как надежно хранятся данные. Это потрясающе. Даже если вы не беспокоитесь о том, как это делается, вам нужно заботиться о многих других людях, чтобы это было сделано так, что вам не о чем беспокоиться!

Для начала Apple использует аналогичное решение, и если у вас есть старая модель с датчиком отпечатка пальца, вы можете использовать ее так же безопасно, как и раньше. То же самое касается более старых телефонов Samsung, которые выпустили предварительный зефир и использовали собственные методы Samsung.

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

Хранение по своей природе не очень безопасно. Это то же самое, что написать что-то на заметке и положить в картотеку. Он там, потому что он должен быть там, и лучшее, что вы можете сделать, это контролировать, кто имеет к нему доступ. Для картотеки вы используете замок, а для своего телефона - шифрование. Для ваших данных отпечатков пальцев дела идут на один шаг дальше: Trusted Execution Environment (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, датчик извлекает данные из сканирования. Trusty OS анализирует эти данные внутри TEE, затем создает две вещи: набор проверочных данных и зашифрованный шаблон отпечатка пальца. Похоже, это ненужные данные для всех, кроме TEE, у которого также есть ключ для расшифровки этих ненужных данных. Этот зашифрованный шаблон отпечатков пальцев хранится в зашифрованном контейнере либо в TEE, либо в зашифрованном хранилище вашего телефона. Три уровня шифрования означают, что получить данные практически невозможно, и даже если бы вы могли, это бесполезно без способа их расшифровки.

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

Данные проверки хранятся внутри TEE. Когда вы кладете палец на сканер, чтобы попытаться что-то сделать, сканер создает профиль данных. Через Trusty API связанное приложение просит ядро ​​спросить TEE, правильно ли это. TEE проверяет сохраненные данные проверки, используя свой отдельный процессор и память, и, если достаточно данных совпадает, он говорит «да». Если не хватает подходящих данных, значит нет. Этот ответ об отказе или неудаче отправляется обратно в ядро ​​как программный токен, который API может прочитать, чтобы увидеть результат.

В то время как сам TEE использует автономную ОС и аппаратное обеспечение для обеспечения безопасности, шаблон отпечатка пальца использует программное шифрование. Он должен быть подписан очень конкретным ключом, чтобы быть действительным. Этот ключ создается с использованием информации, специфичной для устройства, информации о пользователе и информации о времени. Другими словами, если вы удаляете пользователя, меняете устройства или пытаетесь перерегистрировать отпечаток пальца (система может определить, перезаписываете ли вы существующий отпечаток пальца), ключ больше не распознается и не может использоваться для расшифровки отпечатка пальца. шаблон.

Основные правила, которым должна следовать каждая компания, производящая телефоны Android с датчиком отпечатков пальцев:

  • Все данные анализа отпечатков пальцев должны выполняться внутри TEE.
  • Все данные, связанные с отпечатком пальца, должны храниться в TEE или в доверенной памяти (памяти, которую основной процессор даже не видит)
  • Данные профиля отпечатка пальца должны быть зашифрованы, даже если они хранятся в зашифрованном хранилище телефона
  • Удаление учетной записи пользователя также должно безопасно удалить все данные, связанные с отпечатками пальцев этого пользователя
  • Там, где хранятся профили отпечатков пальцев, не должно быть видно ни одному приложению, процессу или пользователю, включая пользователя root
  • Любые данные отпечатков пальцев не должны быть скопированы в любой другой источник, включая облако или ваш компьютер или любое приложение
  • Аутентификация по отпечатку пальца должна использоваться процессом, который ее запросил (не нужно передавать какие-либо данные по отпечатку пальца, даже просто ответ «да» или «нет», чтобы проверить правильность)

Когда у вас есть несколько стандартных спецификаций, которые понятны, их несложно выполнить. Это то, что гарантирует, что независимо от того, какой телефон Android вы используете, ваши данные отпечатков пальцев будут надежно сохранены, и никакой другой системный процесс или приложение не сможет получить к ним доступ. По мере развития криптографии, особенно аппаратного шифрования, будет развиваться и этот метод обеспечения безопасности ваших данных отпечатков пальцев. Будет интересно оглянуться назад после запуска Android Z и увидеть, как далеко мы продвинулись.