Можно ли обобщить связку ключей macOS для всех приложений iOS?

Почему я не могу получить доступ к своей связке ключей в приложениях iOS, отличных от Safari (или приложений OSX, если уж на то пошло?). Как я могу получить доступ к своим паролям на всей платформе?

Ответы (3)

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

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

...

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

https://developer.apple.com/library/content/documentation/Security/Conceptual/keychainServConcepts/02concepts/concepts.html

хм. поэтому в двух других ответах в основном говорилось то, что я хотел услышать (это скоро исчезнет), но вы точно ответили, почему я не могу, подробно и информированно. БАЛЛЫ НАЧИСЛЕНЫ!???!!!

Apple просто не открыла доступ к связке ключей сторонним приложениям. Однако это меняется в iOS 11. Тогда вы сможете использовать свои пароли Keychain во всей системе.

Вы можете получить доступ к полной связке ключей, открыв Keychain Access на Mac, который можно найти в папке «Утилиты». В iOS вы можете получить доступ к связке ключей из настроек в Safari в разделе «Пароли», однако API для связки ключей не был открыт для разработчиков.

Как правило, вы можете получить доступ к соответствующему паролю, если он предназначен для приложения, распространяемого органом, который также управляет веб-приложением, например, Amazon, или любым из приложений Google, которые извлекают информацию о связке ключей с разрешения пользователя посредством использования окно Safari в соответствующем приложении для получения ключа API для приложения.

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