Connect with us

Разработка

Реализуем Face ID аутентификацию в iOS-приложении

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

Опубликовано

/

     
     

Введение

Биометрическая аутентификация изменила систему мобильной безопасности, и Face ID от Apple, представленный в iPhone X в 2017 году, стоит в авангарде этой революции.

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

Храня данные в Secure Enclave, Face ID создает математическое представление черт лица, обеспечивая непревзойденную безопасность. Более того, его бесшовная интеграция в iOS-приложения изменила взаимодействие с пользователями, установив новые стандарты мобильной аутентификации.

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

Понимем Face ID

Face ID заменяет традиционный Touch ID сложной системой распознавания лиц, предоставляя пользователям безопасный и простой способ разблокировки устройств и подтверждения действий.

Используя систему камер TrueDepth, Face ID захватывает и анализирует черты лица в режиме реального времени, создавая точную 3D-карту. Эта карта, созданная из тысяч инфракрасных точек, проецируемых на лицо, формирует уникальный отпечаток лица и надежно хранится в Secure Enclave устройства.

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

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

1. Преимущества Face ID

Face ID — это значительный скачок в безопасности и удобстве по сравнению с традиционными методами аутентификации на основе паролей или PIN-кодов.

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

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

2. Устранение опасений

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

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

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

Требования и предварительные условия

Чтобы успешно интегрировать Face ID в приложения для iOS, разработчикам необходимо соответствовать определенным критериям.

1. Требования к аппаратному обеспечению

Убедитесь, что устройство оснащено системой камер TrueDepth (ключевой компонент для работы Face ID), доступной на iPhone X и более поздних моделях.

2. Требования к ОС

Для интеграции Face ID требуется минимальная версия iOS, совместимая с камерой TrueDepth, как правило, iOS 11 или более поздняя.

3. Требования к приложению

  1. Соображения конфиденциальности: Разработчики должны соблюдать правила конфиденциальности Apple и получать согласие пользователей при доступе к биометрическим данным для аутентификации.
  2. Возможности приложения: Убедитесь, что файл Info.plist приложения содержит необходимые разрешения и описания для доступа к FaceID. Это очень важно для информирования пользователей о том, почему приложение требует доступ к Face ID.

Этапы интеграции

Чтобы получить доступ к FaceID в приложении для iOS, необходимо выполнить несколько основных шагов:

Обновите Info.plist: Добавьте ‘Privacy — Face ID Usage Description’ в файл Info.plist приложения. Это строковое значение информирует пользователей об использовании Face ID в приложении и должно быть кратким, но информативным.

Примечание: опишите ключ как можно более кратко, но так, чтобы пользователь мог понять цель использования.

Создайте аутентификатор: Создайте аутентификатор в приложении, который использует Face ID API для аутентификации пользователей. Импортируйте модуль LocalAuthentication, который предоставляет доступ к API, связанным с аутентификацией.

1. Проверка доступности

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

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

Оно проверяет, поддерживает ли устройство биометрическую аутентификацию, используя canEvaluatePolicy(_:error:). Если биометрическая аутентификация недоступна, возвращается значение .none.

Для устройств под управлением iOS 11.0 и более поздних версий используется свойство biometryType в LAContext для определения поддерживаемого типа биометрии.

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

2. Реализация аутентификации

Для аутентификации мы создали класс Authenticator, который управляет всем, что связано с аутентификацией.

В этом классе у нас есть метод authenticate(), который определяет, прошел ли пользователь проверку подлинности или нет, и действует соответствующим образом.

Эта функция authenticate() отвечает за инициирование процесса биометрической аутентификации.

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

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

  1. Если вы запрашиваете политику deviceOwnerAuthenticationWithBiometrics, то вам придется самостоятельно обрабатывать откат.
  2. Если вы запросите толькоdeviceOwnerAuthentication, то биометрия будет использоваться, если она доступна и разрешена, в противном случае она автоматически вернется к паролю, если биометрия недоступна, или предоставит вам возможность автоматического ввода, если попытка биометрии не удалась.

3. Безопасный пароль

Эта Swift-функция setPasscodeWith(_:) отвечает за установку пароля с использованием биометрической аутентификации, если она доступна.

Вот описание ее функциональности:

  1. Проверяет доступность биометрической аутентификации.
  2. Генерирует уникальный ключ шифрования с помощью UUID().uuidString, который будет использоваться для безопасного шифрования пароля.
  3. Он шифрует предоставленный код с помощью сгенерированного ключа шифрования. Функция AESEncryptionManager.encrypt(plainText:key:) зашифровывает пароль с помощью алгоритма шифрования AES.
  4. Она надежно сохраняет зашифрованный код и ключ шифрования в пользовательских настройках по умолчанию.

Зашифрованный код хранится в userDefaultPasscodeKey, а ключ шифрования — в ключе userDefaultSecretKey. Это гарантирует, что код будет сохранен на устройстве.

Если вы не знаете о AES-шифровании, то вот хорошая статья, в которой подробно рассказывается о шифровании.

Источник

Если вы нашли опечатку - выделите ее и нажмите Ctrl + Enter! Для связи с нами вы можете использовать info@apptractor.ru.
Telegram

Популярное

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: