Keychain API в iOS
Всем привет!
Не так давно столкнулся с необходимостью использования Keychain-а для обеспечения дополнительной защиты при входе в приложение.
Я нашел много хороших статей по этой теме, но в основном там описываются сторонние фреймворки, упрощающие жизнь, а было интересно посмотреть, как работать с API напрямую. В этой статье я попытался объединить документацию Apple с практикой на простом примере.
Keychain — зашифрованная база данных, куда сохраняются небольшие объемы пользовательской информации (см. документацию Apple).
Общая схема работы продемонстрирована на рисунке.
Keychain API Services в свои очередь являются часть фреймворка Security, но его рассмотрение требует отдельной статьи.
let keychainItemQuery = [ kSecValueData: pass.data(using: .utf8)!, kSecClass: kSecClassGenericPassword ] as CFDictionary let status = SecItemAdd(keychainItemQuery, nil) print("Operation finished with status: (status)")
Выше приведен пример сохранения пароля в Keychain. Читать дальше →
Не так давно столкнулся с необходимостью использования Keychain-а для обеспечения дополнительной защиты при входе в приложение.
Я нашел много хороших статей по этой теме, но в основном там описываются сторонние фреймворки, упрощающие жизнь, а было интересно посмотреть, как работать с API напрямую. В этой статье я попытался объединить документацию Apple с практикой на простом примере.
Начнем с небольших определений
Keychain — зашифрованная база данных, куда сохраняются небольшие объемы пользовательской информации (см. документацию Apple).
Общая схема работы продемонстрирована на рисунке.
Keychain API Services в свои очередь являются часть фреймворка Security, но его рассмотрение требует отдельной статьи.
Добавление элемента
let keychainItemQuery = [ kSecValueData: pass.data(using: .utf8)!, kSecClass: kSecClassGenericPassword ] as CFDictionary let status = SecItemAdd(keychainItemQuery, nil) print("Operation finished with status: (status)")
Выше приведен пример сохранения пароля в Keychain. Читать дальше →
Источник: Хабрахабр
Похожие новости
- Почему безопасность на этапе релиза обходится в десять раз дороже и как это исправить
- Как пчёлы, муравьи и рыбы привели нас к мультиагентному ИИ — и почему его так трудно защитить
- ИБ глазами архитектора: между «карточным домиком» и «бетонным саркофагом»
- ИИ-браузер: сотрудник, который ходит по сайтам, кликает баннеры и верит скидкам 90%
- Как одна кривая регулярка может «положить» ваш сервер: разбираем уязвимость ReDoS
- Я открыл боевую базу своего clipboard-sync, чтобы показать, что он знает о вашем пароле. Ответ: ничего
- Интернет выключили целиком: офлайн-чат на Bluetooth и Wi-Fi Direct, и почему мы не обещаем mesh на весь город
- Muxalma — обмен пакетами данных через общее хранилище
- Western Digital создала жесткий диск с защитой от квантовых атак: разбираем, как он работает
- Как платформа управления AI-агентами будет справляться с нагрузкой: архитектура без магии