Отпечатки пальцев в android – пошаговая инструкция по настрйоке и добавлению отпечатка

Отпечатки пальцев в Android – подробное руководство по настройке и использованию

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

История возникновения

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

Первые формальные требования по использованию отпечатка пальцев в Android были установлены с выходом системы Marshmallow или Андроида 6.0. После обновления ОС до свежей версии был обновлен также Compatibility Definition Document, сборник инструкций, обязательных для исполнения разработчиками, чтобы получить сертификацию со стороны Google для установки сервисов и правильной работы дактилоскопической аутентификации.

С каждым годом функция улучшалась. По прогнозам экспертов в области мобильных технологии, уже к 2019 году более половины смартфонов на Android получат сканер отпечатка пальцев.
Если на заре своего появления защита посредством отпечатка пальцев в Android была реализована на «зачаточном» уровне, то с появлением единой документации и универсального API степень безопасности, предлагаемая Гугл, может считаться максимально соответствующей уровню развития современных технологий.

Хранение отпечатков (и прочей важной информации) осуществляется внутри безопасной среды исполнения TEE. При сканировании подушечки считываемая информация помещается в зашифрованном виде внутрь хранилища. Для обеспечения безопасности применяется трехуровневая система шифрования. После того, как пользователь активирует дактилоскопический сканер в Android, происходит обращение к TEE, во время которого следует сравнение полученных данных профиля с уже находящимися в хранилище. При совпадении (получении достаточного количества ответов «да») со стороны TEE положительный ответ отправляет ядру, которое посредством API реализует нужное действие.

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

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

  • Зайти в настройки.
  • Выбрать меню «Экран блокировки».
  • Далее перейти во вкладку «Отпечаток пальца».
  • Открыть «Управление отпечатками пальцев».
  • Предварительно перед тем, как дать возможность добавить новый «слепок», система попросит пользователя ввести ПИН-код, что требуется для обеспечения дополнительной защиты и предотвращает замену ключа безопасности злоумышленниками.
  • Далее потребуется выбрать пункт «Добавить отпечаток пальца».
  • На экране появится схематичное отображение дактилоскопического рисунка и пояснение, что пользователю потребуется прикладывать палец несколько раз до появления вибрации. Желательно прикладывать подушечку разными частями, чтобы получился полный рисунок.
  • После завершения процедуры добавления отпечатка пальца в Android на экране высветится кружок с зеленой галочкой.

Система по умолчанию дает возможность сохранить до 5 различных отпечатков. Чтобы внести дополнительные «слепки», требуется совершить последовательность действия, начиная с пункта 1, затем 6–8.

После внесения «слепка» можно использовать метод дактилоскопической аутентификации для разблокировки смартфона.

Разблокировка приложения

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

  • Зайти в настройки.
  • Перейти в меню «Управление отпечатками пальцев».
  • Активировать функцию «Защита приложений».
  • Включить опцию «Замок приложений» для смартфонов китайских брендов или настроить систему Samsung Pass у смартфонов корейского гиганта.
  • После выбора возможности разблокировки приложений по отпечатку пользователю будет предложено определить программы, для которых требуется применение данного метода аутентификации. По умолчанию к конфиденциальным относятся Контакты, Галерея, Сообщения и почтовый клиент.
  • На экране появятся иконки программ. Наличие активной галочки будет свидетельствовать, что эти приложения можно открыть только при помощи биометрической системы идентификации или иного способа блокировки.
  • В аппаратах от Samsung при необходимости ввода пароля от сайта или программы пользователю будет предложено использовать для разблокировки систему Samsung Pass.

Использование сканера в Google Play

Еще одним удобным способом применения дактилоскопического сканера является настройка разблокировки оплаты в Гугл Плэй. Подобная функция получила свою реализацию с версии сервиса 5.9. Начиная с нее, каждый пользователь может оплатить приобретение приложения или игры посредством дактилоскопического сканера.
Для активации данной возможности требуется:

  • Зарегистрировать минимум один отпечаток.
  • Зайти в настройки.
  • Выбрать пункт «Аутентификация по отпечатку пальца», поставив напротив галочку.
  • Установить обязательную процедуру верификации для всех приобретений.

Теперь при совершении покупки для подтверждения действия система будет запрашивать отпечаток пальца.

Дополнительные преимущества дактилоскопического сканера

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

Кнопка камеры

По умолчанию на всех смартфонах, имеющих дактилоскопический сенсор, предусмотрена возможность активировать функцию съемки при прикосновении. Это удобно при необходимости сделать селфи, особенно если сканер вынесен на заднюю панель. В некоторых смартфонах (например, Samsung) функция съемки по пальцу настраивается в меню камеры.

Будильник

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

Ответ на входящий звонок

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

Применение отпечатка для подтверждения бесконтактных платежей

Еще одной функцией, которая совмещает безопасность и удобство, является использование дактилоскопического сканера в приложениях бесконтактной оплаты для подтверждения активации выбранной карты. Эта опция также выбирается при настройке Google Pay или Samsung Pay.

Как настроить отпечаток пальца на Android

Не так давно производители смартфонов ввели новый уровень безопасности использования Android-устройств, добавив сканер отпечатка пальца. Это очень удобная штука, которая умеет блокировать экран и приложения, а для разблокировки нужно просто приложить палец к сканеру. Давайте разберемся, как настроить отпечаток пальца.

Как настроить отпечаток пальца

На большинстве Android – смартфонов инструкция выглядит примерно одинаково.

  1. Откройте настройки системы
  2. Найдите пункт «Безопасность» (безопасность и отпечаток, блокировка и отпечаток, отпечаток или что-то подобное)
  3. Для активации сканера отпечатков пальцев для экрана блокировки необходимо установить пароль, для этого выберите «Задать пароль»
  4. Установите пин-код, графический ключ или пароль по вашему усмотрению
  5. Перейдите в «Управление отпечатками пальцев»
  6. Подтвердите установленный ранее пароль
  7. Нажмите «Добавить отпечаток пальца»
  8. Теперь нужно несколько раз прикоснутся к сканеру отпечатков одним пальцем, который будет использоваться для разблокировки (можно добавлять и другие отпечатки). Во время прикосновений немного меняйте положение пальца на сканере, чтобы он мог захватить все участки пальца, так распознавание будет выдавать намного меньше ошибок
  9. Готово! Вы настроили сканер отпечатков пальцев!

Чтобы добавить еще один палец следуйте инструкции с 5 пункта. С вопросом как настроить отпечаток пальца разобрались, теперь рассмотрим, как можно использовать эту штуку.

Как установить отпечаток пальца на приложение

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

Рассмотрим это действие на примере MIUI 8.2:

  1. Откройте настройки
  2. Пролистайте вниз до пункта «Замок приложений»
  3. Установите пароль или приложите палец к сканеру
  4. Включите переключатель на нужных приложениях
  5. Нажмите на иконку настроек и убедитесь, что «Разблокировка отпечатком» включена
  6. Готово!
Читайте также:  Приложения для просмотра tv на android – обзор лучших

Вы узнали, как установить отпечаток пальца на любое приложение в MIUI 8.2. В других оболочках такие настройки «прячутся» в других местах, напишите в комментарии модель вашего устройства, и я помогу разобраться.

Как настроить отпечаток пальца для подтверждения платежей в Google Play

Подтверждение платежей отпечатком пальцев это очень удобно и при этом очень безопасно, так как никто кроме вас не сможет сделать покупку.

  1. В телефоне должен быть сохранен хотя бы один отпечаток
  2. Откройте Google Play
  3. Перейдите в настройки
  4. Поставьте галочку на «Аутентификация по отпечатку пальца»
  5. Включите обязательную аутентификацию для всех покупок

Готово! Теперь при совершении покупок ваш смартфон будет запрашивать отпечаток пальца!

Еще несколько плюсов сканера отпечатков

Как ни странно, но сканер можно использовать не только в целях безопасности, но и для удобства использования. Рассмотрим несколько интересных вариантов использования сканера.

Кнопка для камеры

На смартфонах с дактилоскопическим сканером по умолчанию включена функция съемки при прикосновении к нему. Это очень удобно для селфи съемки, особенно если сканер расположен на задней панели смартфона.

Выключатель будильника

Да, будильник можно выключить просто прикоснувшись к сканеру на несколько секунд, очень удобно. Если вы используете сторонний будильник – можете включить или отключить эту функцию в настройках.

Дополнительная кнопка

На некоторых смартфонах сканер отпечатков можно использовать как кнопку «Назад» и «Домой», прикоснувшись к сканеру на 1 или на несколько секунд соответственно.

Ответ на вызов

Когда вам звонят можно не водить пальцем по экрану, а просто прикоснуться к сканеру и он подтвердит ответ на звонок.

Как видите, блокировка отпечатком пальца это еще не всё, что может сканер на Android-устройстве. А как вы используете ваш сканер отпечатков пальцев? Поделитесь своими рецептами в комментариях!

Ответы на частые вопросы

Сканер плохо распознает отпечаток

Заново отсканируйте палец как новый отпечаток, не удаляя старый. Так больше шансов на удачное распознавание.

8 способов использовать сканер отпечатков пальцев на вашем Android

Одно касание, которое сэкономит время и обезопасит ваши данные.

1. Защитите приложения от посторонних

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

Утилита App Lock от Keepsafe умеет блокировать запуск выбранных вами приложений до тех пор, пока вы не коснётесь сканера отпечатков пальцев или не введёте пароль. После установки программы предоставьте ей доступ к данным, затем зайдите в настройки и активируйте опцию «Использовать отпечаток пальца для разблокировки». Выберите, какие приложения требуется защитить.

Теперь, когда вы откроете нужную программу, вам будет предложено сначала разблокировать её с помощью отпечатка. У App Lock также есть несколько альтернатив, мало уступающих этому варианту.

2. Используйте сканер как кнопку затвора камеры

Обладателям крупных пальцев наверняка бывает неудобно нажимать на кнопку в приложении камеры: всё время задеваешь правый значок с настройками. Однако есть возможность сделать съёмку более комфортной, приспособив для этого сканер отпечатков пальцев. Вы просто касаетесь его — и смартфон делает фото. Всё просто.

У некоторых устройств приложение камеры умеет это без каких‑либо дополнительных инструментов. Например, «Камера» в MIUI на гаджетах от Xiaomi обладает опцией «Съёмка отпечатком пальца» в настройках — надо только включить её. Если же ваше устройство так не может, пригодятся приложения Fingerprint Camera Shutter и Dactyl, которые добавят эту возможность.

3. Выполняйте быстрые действия касанием пальца

У смартфонов Google Pixel есть удобная функция, которая позволяет открывать панель уведомлений, проведя пальцем вниз по сканеру отпечатков. Приложение Fingerprint Quick Action делает что‑то подобное, но его можно устанавливать на любые девайсы, и даже root‑доступ не понадобится. При этом вы можете назначать собственные быстрые действия.

Установите Fingerprint Quick Action, дайте ему доступ к параметрам смартфона, а затем зайдите в настройки приложения. Вы можете назначать три быстрых действия. Одно выполняется при одиночном прикосновении к сканеру отпечатков, второе — при двойном тапе, а третье — при свайпе (это, правда, работает не на всех девайсах). Вариантов действий довольно много: можно открыть список приложений, погрузить устройство в сон, активировать режим разделённого экрана, сделать скриншот, включить фонарик, запустить какую‑нибудь программу и так далее.

У этого приложения есть альтернатива под названием Fingerprint Gestures. Здесь чуть больше функций — например, программа умеет управлять воспроизведением музыки в проигрывателе. Это довольно удобно, если вы хотите переключать или ставить на паузу треки не доставая телефон из кармана. Однако для реализации некоторых возможностей приложению понадобятся root‑права, и оно доступно не для всех смартфонов. Попробуйте обе программы и решите, какая работает на вашем устройстве лучше.

Как настроить блокировку экрана с помощью отпечатка пальца или распознавания лица на Android

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

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

Являетесь владельцем современного смартфона, но не знаете, как установить одну их этих функций и, наконец, начать ей пользоваться? Тогда читайте этот пошаговый туториал и извлеките максимум от своего гаджета!

Как установить PIN-код на смартфоне Android

Один из самых старых, способов защиты смартфона, о котором тоже стоит рассказать. Речь пойдёт не о пароле sim-карты, а о PIN-коде самого телефона:

  • Зайдите в «Настройки» — «Безопасность и конфиденциальность» — «Блокировка экрана и пароли» — «Пароль» — «PIN-код«.
  • Введите код, содержащий от 4-х до 16-и цифр и подтвердите свои действия.
  • Помимо PIN-кода, вы можете установить Пароль (цифры и буквы) или Графический ключ (соединение точек на экране).

Как включить сканер отпечатка пальца на Android

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

  • Зайдите в «Настройки» — «Безопасность и конфиденциальность» — «Отпечаток пальца» — «Управление отпечатком пальца».
  • Установите резервный способ разблокировки смартфона в случаи сбоя распознавания отпечатка пальца (графический ключ, PIN-код, пароль).
  • Выберите те функции, доступ к которым вы хотите получать с помощью отпечатка пальца или же используйте опцию «Новый отпечаток пальца«.
  • Отсканируйте свой отпечаток пальца, следуя всем инструкциям, и установите его на нужные вам функции телефона в уже знакомом меню.

Как включить сканер распознавания лица на Android

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

Читайте также:  Как в xiaomi поставить мелодию на звонок – 3 способа

  • Зайдите в «Настройки» — «Безопасность и конфиденциальность» — «Разблокировка распознаванием лица».
  • Отсканируйте своё лицо и выберите нужный вам способ работы распознавания лица для разблокировки смартфона.

Напишите нам, какой способ из вышеперечисленных вы используете для защиты своего гаджета в комментариях, а также поделитесь с нами своими мыслями о том, какой из них вы считаете самым надёжным!

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

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

Что такое сканер отпечатков пальцев?

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

Звучит классно, не правда ли? Вот только в действительности все не так гладко как хотелось бы, ведь успешное функционирование сканера зависит от множества нюансов, одним из которых является его расположение, выбранное производителем на ранних этапах разработки. Размещение в кнопке под экраном еще можно как-то оправдать, но на задней панели в районе камеры? Это что же получается, чтобы воспользоваться устройством, лежащим на столе, его каждый раз необходимо брать в руки? Серьезно? И ладно бы подобное размещение было выбрано какой-то малоизвестной небольшой компанией, которая только пробует свои силы в производстве смартфонов, но нет. Даже такой именитый бренд как Samsung, уже в нескольких своих устройствах подряд, размещает сканер на задней панели. Очевидно же, что это неудобно. Да, конечно они это делают ради создания “безрамочного” устройства, но позвольте, разве отсутствие рамок экрана важнее, чем удобное использование технологии, обеспечивающей безопасность ваших данных? Очень в этом сомневаюсь.

Еще одним спорным моментом при использовании сканера отпечатков пальцев, можно считать его не самую безупречную работу. Да, сама технология довольно точная, вот только в повседневном использовании довольно часто ощущается нехватка идеальных условий для ее полноценного функционирования, поэтому шанс безотказного срабатывания заметно снижается. Руки у вас мокрые, палец с пластырем, перчатки – все это факторы, благодаря которым получить доступ к своему смартфону будет крайне проблематично. И производители это понимают, поэтому позволяют во время возникновения таких трудностей, воспользоваться старыми добрыми PIN-кодами, либо графическими ключами. А из этого вытекает еще одна проблема. Использование сканера отпечатка пальцев не является более эффективным способом защиты вашей личной информации, так как при желании, его без проблем можно обойти путем подбора пароля, как это и было раньше. Неприятно это осознавать, верно?

Итого, получается, что сканер отпечатков пальцев, не смотря на то, как он позиционируется во всем мире, не может обеспечить вас наиболее высоким стандартом защиты. Кроме того, его также довольно сложно считать более удобным способом разблокировки, так как это напрямую зависит от его расположения, которое запросто меняется по прихоти производителя, которому зачастую важнее визуальное восприятие, нежели практичность. Однако, не смотря на эти спорные моменты, нельзя не признать, что для кого-то использование сканера отпечатков пальцев стало наилучшим способом защитить свое устройство. И конечно же, есть те, кто его еще не успел попробовать данную технологию. Для последних, собственно, и предназначена эта статья, поэтому думаю пора перейти в настройке сканера, чтобы каждый мог самостоятельно его попробовать и решить – стоит его использовать или нет.

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

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

Большинство старых смартфонов без сканера отпечатков пальцев

Как же это сделать? Способов на самом деле несколько.

  • Вбитьназвание своего смартфона в любом интернет-поисковике, добавив к запросу слово “характеристики”, и посетить любой предложенный сайт. Зачастую этого достаточно, так как о наличии сканера в описании смартфона всегда упоминается.
  • Осмотреть свое устройство. Если на задней панели, в районе камеры имеется небольшая квадратная, прямоугольная или круглая область неизвестного предназначения, то это вероятнее всего и есть сканер.
  • Просмотреть брошюру, которая имеется в коробке с устройством, так как в ней обычно имеется перечень технических характеристик, в том числе указан сканер, если в устройстве он имеется.
  • Следовать инструкции ниже, так как на одном из этапов настройки, наличие или отсутствие сканера будет очевидным.

Если вы убедились в том, что ваш смартфон обладает сканером отпечатков пальцев, то можно перейти к процессу его настройки. Думаю сразу стоит уточнить, что инструкция в первую очередь предназначена для обладателей устройств с “чистым” Android. То есть, если производитель вашего смартфона установил модифицированную версию операционной системы, то некоторые пункты из инструкции по настройке могут отличаться, но в общих чертах все будет так или иначе идентично. Поэтому имейте это ввиду, и не переживайте, если будут какие-то несостыковки в перечне действий. Итак.

  1. Для начала переходим в “Настройки” смартфона.
  2. Проматываем список до раздела “Личные данные” и нажимаем на пункт “Безопасность”.
  3. Здесь, если в смартфоне имеется сканер отпечатков пальцев, в разделе “Безопасность устройства” должен быть пункт “Отпечатки пальцев”. Нажимаем на него. Соответственного, если такая настройка отсутствует, то в смартфоне нет рассматриваемого сегодня сканера, поэтому проверить его наличие можно подобным образом.
  4. В первом окне настройки сканера нажимаем “Продолжить”.
  5. Теперь нам предлагают выбрать дополнительный параметр защиты устройства, который мы будем использовать, если сканер не сработает, выйдет из строя, либо для иных форсмажорных ситуаций. Я выберу PIN-код, а вы выбирайте способ защиты на свое усмотрение.
  6. Далее нас спрашивают, требовать ли пароль/код/ключ при запуске устройства. Здесь на ваше усмотрение, однако я отмечу вариант “Не запрашивать”, так как все равно никогда не выключаю устройство.
  7. После решения вопроса с запросом при запуске, устанавливаем пароль/код/ключ. Обязательно запомните его или запишите, так как его потеря может привести к невозможности управлять смартфоном.
  8. Теперь, следуя подсказкам на смартфоне, вносим своим отпечатки пальцев в его память. Если требуется, повторяет процедуру с другим пальцем.
  9. Все. Теперь всякий раз, когда вы будете касаться сканера отпечатков пальцев, занесенным в базу, блокировка смартфона будет отключаться.
Читайте также:  Как удалить приложение с айфона – несколько способов

Просто, верно? Если же сканер вам больше не нужен, отключить его можно в том же меню настроек, введя сохраненные ранее пароль/код/ключ.

Легкое касание

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

Android Fingerprint API: приделываем аутентификацию по отпечатку

Привет, Хабр! Прошло достаточно много времени, как появился Fingerprint API для Android, в сети много разрозненных сэмплов кода по его внедрению и использованию, но на Хабре по какой-то причине эту тему обходили стороной. На мой взгляд, настало время исправить это недоразумение. Всех заинтересовавшихся прошу под кат.

Кратчайший ликбез

Итак, что же представляет собой Fingerprint API? API позволяет пользователю аутентифицироваться посредством своего отпечатка, очевидно. Для работы с сенсором API предлагает нам FingerprintManager, достаточно простой в освоении.

Как его использовать? А вот это уже интереснее. Практически везде, где требуется аутентификация по паролю, можно прикрутить аутентификацию по отпечатку. Представьте себе приложение, состоящее из LoginActivity и MainActivity. При запуске мы попадаем на экран логина, вводим пин-код, проходим к данным. Но мы хотим заменить вход по пин-коду на вход по отпечатку. К слову, полностью заменить не получится, мы можем лишь избавить пользователя от ручного ввода пин-кода, подставляя ранее сохраненный пин-код (имеется ввиду клиент-серверное приложение, в котором нужно отправить пароль серверу).

Где сенсор?

Чтобы начать получать профит от нового API, первым делом нужно добавить permission в манифесте:

Само собой, использовать Fingerprint API можно только на устройствах, его поддерживающих: соответственно, это устройства Android 6+ с сенсором.

Совместимость можно легко проверить с помощью метода:

FingerprintManagerCompat — это удобная обертка для обычного FingerprintManager’а, которая упрощает проверку устройства на совместимость, инкапсулируя в себе проверку версии API. В данном случае, isHardwareDetected() вернет false, если API ниже 23.

Дальше, нам нужно понять, готов ли сенсор к использованию. Для этого определим enum состояний:

И воспользуемся методом:

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

Различные состояния можно использовать для того, чтобы дать пользователю понять, что происходит и направить его на путь истинный.

Подготовка

Итак, не зацикливаясь на проверке пин-кода на валидность, прикинем следующую упрощенную логику действий:

  • Пользователь вводит пин-код, если SensorState.READY, то мы сохраняем пин-код, запускаем MainActivity.
  • Рестартим приложение, если SensorState.READY, то считываем отпечаток, достаем пин-код, имитируем его ввод, запускаем MainActivity.

Схема была бы достаточно простой, если бы не одно но: Гугл настойчиво рекомендует не хранить приватные данные пользователя в открытом виде. Поэтому нам нужен механизм шифровки и расшифровки для, соответственно, сохранения и использования. Займемся этим.

Что нам нужно для шифровки и расшифровки:

  1. Защищенное хранилище для ключей.
  2. Криптографический ключ.
  3. Шифровальщик

Хранилище

Для работы с отпечатками система предоставляет нам свой кейстор — “AndroidKeyStore” и гарантирует защиту от несанкционированного доступа. Воспользуемся им:

Следует принять, понять и простить, что кейстор хранит только криптографические ключи. Пароли, пин и другие приватные данные там хранить нельзя.

На выбор у нас два варианта ключей: симметричный ключ и пара из публичного и приватного ключа. Из соображений UX мы воспользуемся парой. Это позволит нам отделить ввод отпечатка от шифрования пин-кода.

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

При инициализации мы указываем, в какой кейстор пойдут сгенерированные ключи и для какого алгоритма предназначен этот ключ.

Сама же генерация происходит следующим образом:

Здесь следует обратить внимание на два места:

  • KEY_ALIAS — это псевдоним ключа, по которому мы будем выдергивать его из кейстора, обычный psfs.
  • .setUserAuthenticationRequired(true) — этот флаг указывает, что каждый раз, когда нам нужно будет воспользоваться ключом, нужно будет подтвердить себя, в нашем случае — с помощью отпечатка.

Проверять наличие ключа будем следующим образом:

Шифровальщик

Шифровкой и дешифровкой в Java занимается объект Cipher.

Адовая мешанина в аргументе — это строка трансформации, которая включает в себя алгоритм, режим смешивания и дополнение.

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

где initDecodeCipher() и initEncodeCiper() следующие:

Нетрудно заметить, что зашифровывающий Cipher несколько сложнее инициализировать. Это косяк самого Гугла, суть которого в том, что публичный ключ требует подтверждения пользователя. Мы обходим это требование с помощью слепка ключа (костыль, ага).

Момент с KeyPermanentlyInvalidatedException — если по какой-то причине ключ нельзя использовать, выстреливает это исключение. Возможные причины — добавление нового отпечатка к существующему, смена или полное удаление блокировки. Тогда ключ более не имеет смысла хранить, и мы его удаляем.

Метод, который собирает всю цепочку подготовки:

Шифровка и расшифровка

Опишем метод, который зашифровывает строку аргумент:

В результате мы получаем Base64-строку, которую можно спокойно хранить в преференсах приложения.

Для расшифровки же используем следующий метод:

Опа, на вход он получает не только зашифрованную строку, но и объект Cipher. Откуда он там взялся, станет ясно позднее.

Не тот палец

Для того чтобы наконец использовать сенсор, нужно воспользоваться методом FingerprintManagerCompat:

Хендлер и флаги нам сейчас не нужны, сигнал используется, чтобы отменить режим считывания отпечатков (при сворачивании приложения, например), коллбеки возвращают результат конкретного считывания, а вот над криптообъектом остановимся поподробнее.

CryptoObject в данном случае используется как обертка для Cipher’a. Чтобы его получить, используем метод:

Как видно из кода, криптообъект создается из расшифровывающего Cipher. Если этот Cipher прямо сейчас отправить в метод decode(), то вылетит исключение, оповещающее о том, что мы пытаемся использовать ключ без подтверждения.

Строго говоря, мы создаем криптообъект и отправляем его на вход в authenticate() как раз для получения этого самого подтверждения.

Если getCryptoObject() вернул null, то это значит, что при инициализации Chiper‘а произошел KeyPermanentlyInvalidatedException. Тут уже ничего не поделаешь, кроме как дать пользователю знать, что вход по отпечатку недоступен и ему придется заново ввести пин-код.

Как я уже говорил, результаты считывания сенсора мы получаем в методах коллбека. Вот как они выглядят:

В случае успешного распознавания мы получаем AuthenticationResult, из которого можем достать объект Cipher c уже подтвержденным ключом:

Теперь можно с чистой совестью отправить его на вход в decode(), получить пин-код, сымитировать его ввод и показать пользователю его данные.

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

Ссылка на основную публикацию