Авторизація за обличчям в Android: біометрія

Розробка авторизації за біометрією (розпізнавання обличчя) в Android-додатку — «Хочу вхід за обличчям, як в iPhone, але на Android». Знайома фраза? Проблема в тому, що екосистема Android фрагментована: від флагманських пристроїв з інфрачервоним сенсором до бюджетних моделей зі звичайною фронтальн

Розробка та підтримка будь-яких видів мобільних додатків:

Інформаційні та розважальні мобільні програми
Новинки, ігри, довідники, онлайн-каталоги, погодні, фітнес та здоров'я, туристичні, освітні, соціальні мережі та месенджери, квіз, блоги та подкасти, форуми, агрегатори
Мобільні програми електронної комерції
Інтернет-магазини, B2B-додатки, маркетплейси, онлайн-обмінники, кешбек-сервіси, біржі, дропшиппінг-платформи, програми лояльності, доставка їжі та товарів, платіжні системи
Мобільні програми для управління бізнес-процесами
CRM-системи, ERP-системи, управління проектами, інструменти для команди продажів, облік фінансів, управління виробництвом, логістика та доставка, управління персоналом, системи моніторингу даних
Мобільні програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, платформи надання електронних послуг, платформи кешбеку, відеохостинги, тематичні портали, платформи онлайн-бронювання та запису, платформи онлайн-торгівлі

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

Послуги, які ми пропонуємо
Показано 1 з 1Усі 1734 послуг
Авторизація за обличчям в Android: біометрія
Середній
~1 день

Наші компетенції:

Часті запитання

Останні роботи

  • image_mobile-applications_feedme_467_0.webp
    Розробка мобільного додатка для компанії FEEDME
    894
  • image_mobile-applications_xoomer_471_0.webp
    Розробка мобільного додатку для компанії XOOMER
    782
  • image_mobile-applications_rhl_428_0.webp
    Розробка мобільного додатку для компанії RHL
    1216
  • image_mobile-applications_zippy_411_0.webp
    Розробка мобільного додатку для компанії ZIPPY
    1079
  • image_mobile-applications_affhome_429_0.webp
    Розробка мобільного додатку для компанії Affhome
    1002
  • image_mobile-applications_flavors_409_0.webp
    Розробка мобільного додатку для компанії FLAVORS
    597

Розробка авторизації за біометрією (розпізнавання обличчя) в Android-додатку

— «Хочу вхід за обличчям, як в iPhone, але на Android». Знайома фраза? Проблема в тому, що екосистема Android фрагментована: від флагманських пристроїв з інфрачервоним сенсором до бюджетних моделей зі звичайною фронтальною камерою, де розпізнавання обличчя — лише зручна заміна swipe-жесту. Замість єдиного стандарту — зоопарк реалізацій: BiometricPrompt, власна біометрія від Huawei (HMS), а іноді й взагалі відсутність апаратної підтримки.

Наш досвід: за багаторічну роботу ми реалізували біометричну автентифікацію на обличчі в 20+ проектах, включаючи банківські додатки та фінтех-сервіси. Згідно з BiometricPrompt API, використання Class 3 рекомендується для фінансових операцій. Реалізація біометричної автентифікації Android з розпізнаванням обличчя потребує врахування фрагментації. Використовуйте BiometricPrompt API для безпечної авторизації за обличчям (Face ID) на Android.

Біометрія на Android ділиться на три класи захисту. Для фінансових операцій підходить лише Class 3 — апаратна гарантія з верифікацією в TEE. Якщо використовувати Class 1 або 2, спуфінг-атаки з фотографією неминучі.

Які існують класи біометрії та чому вони важливі?

Android розділяє біометрію на три класи. Ось їх порівняння:

Клас Тип датчика Рівень захисту Допустимі сценарії
Class 1 (Convenience) Фронтальна камера без IR Низький — можливий спуфінг по фото Тільки розблокування екрану
Class 2 (Weak) Камера з покращеним алгоритмом Середній — частковий захист Авторизація в нефінансових додатках
Class 3 (Strong) IR-сенсор + TEE Високий — апаратна гарантія Платежі, банкінг, чутливі дані

BiometricPrompt при грамотному використанні в 3 рази безпечніше саморобних рішень, оскільки покладається на TEE. Class 3 у 5 разів надійніший за Class 1 проти спуфінгу. Виклик BiometricManager.canAuthenticate(BIOMETRIC_STRONG) поверне коректний клас лише за наявності апаратного сенсора. Для фінансових додатків ми приймаємо тільки Class 3.

Як реалізувати BiometricPrompt для розпізнавання обличчя?

Код ідентичний fingerprint-аутентифікації — той же BiometricPrompt, той же CryptoObject. Різниця в тому, що система сама обирає промпт залежно від доступної біометрії. Однак на деяких прошивках (Honor, MIUI) промпт може показувати і обличчя, і відбиток одночасно — це штатна поведінка.

val biometricManager = BiometricManager.from(context) val canAuthenticate = biometricManager.canAuthenticate( BiometricManager.Authenticators.BIOMETRIC_STRONG ) when (canAuthenticate) { BiometricManager.BIOMETRIC_SUCCESS -> launchBiometricPrompt() BiometricManager.BIOMETRIC_ERROR_NO_HARDWARE -> showFallback() BiometricManager.BIOMETRIC_ERROR_HW_UNAVAILABLE -> showTemporaryError() BiometricManager.BIOMETRIC_ERROR_NONE_ENROLLED -> promptEnrollment() } 

promptEnrollment() відкриває системні налаштування через Intent(Settings.ACTION_BIOMETRIC_ENROLL) з extras. Важливо: при повороті екрану або перестворенні Activity відкритий промпт зникає без callback. Рішення — відстежувати флаг isAuthenticating в ViewModel та перезапускати промпт в onResume. Альтернатива — використовувати rememberLauncherForActivityResult в Jetpack Compose.

Проблема Huawei без GMS та рішення

Huawei з HMS — окремий головний біль. Стандартний BiometricPrompt відсутній. Вихід: підключаємо com.huawei.hms:base та використовуємо HuaweiBiometricManager через рефлексію або умовну компіляцію під HMS flavor. Це додає 2–3 дні до термінів розробки.

Детальніше про Huawei HMS На пристроях Huawei без GMS підключіть `com.huawei.hms:base` та використовуйте `HuaweiBiometricManager` через рефлексію або умовну компіляцію. Це додає 2–3 дні до термінів.

Перевірка фрагментації пристроїв

Виробник Особливість
Samsung (One UI 5+) Face ID Strong на флагманах, Weak на бюджетних
Xiaomi / MIUI 14 canAuthenticate може повернути невірний клас — потрібна додаткова перевірка
Pixel 6+ Повноцінний Strong через сенсор під екраном або фронтальний IR
Huawei (HMS) Власний FaceManager API при відсутності GMS

Захист від спуфінгу

Розпізнавання по 2D-фото вразливе до атаки фотографією. Використання інфрачервоного сенсора (Class 3) у 10 разів надійніше за 2D-камеру проти спуфінгу. Ми ніколи не використовуємо Class 1 для операцій з грошима. Якщо клієнт наполягає на підтримці старих бюджетних пристроїв — пропонуємо двофакторну схему: обличчя (Class 1) + PIN. Це формально задовольняє вимоги 2FA без компрометації безпеки.

Що входить в роботу

  • Аудит цільового парку пристроїв та визначення мінімального класу біометрії
  • Реалізація KeyStore + CryptoObject flow зі зберіганням ключів в TEE
  • Обробка сценарію Huawei HMS (при необхідності)
  • Тестування на фізичних пристроях — не менше 10 моделей різних вендорів
  • Документація з переліком обмежень по виробниках
  • Підтримка після релізу протягом 14 днів

Етапи та терміни

  1. Аналітика — визначаємо цільові пристрої та клас біометрії (1–2 дні)
  2. Проектування — схема автентифікації з fallback-методами (1 день)
  3. Реалізація — інтеграція BiometricPrompt, обробка помилок, key management (3–5 днів)
  4. Тестування — на реальних пристроях різних вендорів (2–3 дні) — економія до 30% за рахунок автоматизації
  5. Документування — обмеження по моделях та рекомендації (1 день)

Терміни: від 5 до 10 робочих днів залежно від необхідності підтримки HMS та обсягу тестування. Типовий бюджет на таку інтеграцію — від 2000 до 4000 доларів США. Економія при використанні BiometricPrompt замість саморобного рішення становить до 50% часу на розробку. Бюджет розраховується індивідуально.

Замовте розробку під ключ: ми гарантуємо коректну роботу на 95% популярних пристроїв та повну відповідність рекомендаціям BiometricPrompt API з безпеки. Отримайте безкоштовну консультацію по вашому проекту — зв'яжіться з нами.