Sobes.tech
Junior — Middle

Jakie podejście byś zastosował do bezpiecznego przechowywania haseł w systemie KeyChain?

sobes.tech AI

Odpowiedź od AI

Aby bezpiecznie przechowywać hasła w iOS Keychain, należy:

  • Używać API Keychain Services, które zapewnia szyfrowanie i bezpieczne przechowywanie danych.
  • Zapisywać hasła jako chronione obiekty z atrybutami ograniczającymi dostęp (np. kSecAttrAccessibleWhenUnlocked).
  • Nigdy nie przechowywać haseł w formie jawnej poza Keychain.

Przykład zapisu hasła w Keychain w Swift:

let password = "user_password".data(using: .utf8)!
let query: [String: Any] = [
    kSecClass as String: kSecClassGenericPassword,
    kSecAttrAccount as String: "user@example.com",
    kSecValueData as String: password,
    kSecAttrAccessible as String: kSecAttrAccessibleWhenUnlocked
]
SecItemAdd(query as CFDictionary, nil)

Taka metoda gwarantuje, że hasła są przechowywane w zaszyfrowanej formie i dostępne tylko dla aplikacji, gdy urządzenie jest odblokowane.