Face ID записывать и считывать значения из и в цепочку ключей

Я понял, как работает Access с Touch ID kSecAccessControlTouchIDAny в фреймворке KeychainAccess, но я не мог понять, как сделайте это с помощью идентификатора лица в iOS 11. Я еще не нашел документацию для его решения (возможно, документы еще не вышли?).

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

Минимальный пример будет приятным.

Ответ 1

Теперь это работает в Xcode 9.1 (начиная с бета-версии).

Тестовый пример:

https://developer.apple.com/library/content/samplecode/KeychainTouchID/Introduction/Intro.html

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

Как обсуждалось, это не работает в Xcode 9.0 GM.

Ответ 2

Похоже, что Apple добавила поддержку Face ID в Local Authentication API, но не ACL Keychain.

То, что я планирую сделать, - это использовать локальную проверку подлинности, чтобы вызвать приглашение Face ID, а затем, если это удастся, напрямую обратитесь к keychain. Не так безопасен, как правильный API ACL KeyChain, который у нас есть для Touch ID, но это лучшее решение, которое я придумал до сих пор.

https://developer.apple.com/documentation/localauthentication/localauthentication_constants?changes=latest_minor https://developer.apple.com/documentation/localauthentication/labiometrytype?changes=latest_minor