Sobes.tech
Junior — Middle

Ποια προσέγγιση θα χρησιμοποιούσες για την ασφαλή αποθήκευση των κωδικών στο σύστημα KeyChain;

sobes.tech AI

Απάντηση από AI

Για την ασφαλή αποθήκευση κωδικών πρόσβασης στο iOS Keychain, πρέπει:

  • Να χρησιμοποιείτε το API Keychain Services, που παρέχει κρυπτογράφηση και ασφαλή αποθήκευση δεδομένων.
  • Να αποθηκεύετε τους κωδικούς ως προστατευμένα αντικείμενα με χαρακτηριστικά που περιορίζουν την πρόσβαση (π.χ., kSecAttrAccessibleWhenUnlocked).
  • Ποτέ μην αποθηκεύετε κωδικούς σε ανοιχτό κείμενο εκτός του Keychain.

Παράδειγμα αποθήκευσης κωδικού στο Keychain σε 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)

Αυτή η προσέγγιση διασφαλίζει ότι οι κωδικοί αποθηκεύονται σε κρυπτογραφημένη μορφή και είναι προσβάσιμοι μόνο από την εφαρμογή όταν η συσκευή είναι ξεκλείδωτη.