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. Читать дальше →
Источник: Хабрахабр
Похожие новости
- Видеть инфраструктуру как хакер. От графа моделирования угроз к алгоритмам, которые находят маршруты атак на нем
- Редакция Spark.ru: Всемирная история торговли в стиле Сатирикона: часть 7. «Батрацкий стартап»
- Информационная безопасность для цифровых кочевников
- Редакция Spark.ru: Как DIY-инструменты и краудсорсинг заменяют профессиональных продюсеров?
- Сравнительный обзор: Shodan, ZoomEye, Netlas, Censys, FOFA и Criminal IP
- Философия защиты персональных данных: долгая дорога к безопасности
- Аудит информационной безопасности: комплексная модель оценки зрелости процессов
- Евгений Постов: Как увеличить средний чек в кофейне на 30-50%: 12 проверенных способов (допродажи, кросс-продажи, апселл, акции и другие)
- Вкратце об анонимных сетях и задачах анонимизации | Proxy, Onion, Dining Cryptographers, Queue Based, Entropy Increase
- Spark_news: Т-Банк внедрил сервис для умного распределения средств