Junior — Middle
Hoe waarborg je de veiligheid bij het opslaan van vertrouwelijke informatie?
sobes.tech AI
Antwoord van AI
Om de veiligheid te waarborgen bij het opslaan van vertrouwelijke informatie op iOS, wordt meestal gebruik gemaakt van Keychain — een beveiligde opslag die door het systeem wordt geleverd. Keychain versleutelt gegevens en beperkt de toegang daartoe, wat ongeautoriseerde toegang voorkomt.
Daarnaast is het belangrijk:
- Geen wachtwoorden en geheimen in platte tekst op te slaan in UserDefaults of bestanden.
- Versleuteling te gebruiken indien nodig bij het opslaan van gegevens buiten de Keychain.
- Toegang tot gegevens te beperken via de toegangssinstellingen van de Keychain (bijvoorbeeld alleen toegankelijk wanneer het apparaat is ontgrendeld).
Voorbeeld van het opslaan en lezen van een string in de Keychain met Swift:
import Security
func saveToKeychain(value: String, forKey key: String) {
let data = value.data(using: .utf8)!
let query: [String: Any] = [
kSecClass as String: kSecClassGenericPassword,
kSecAttrAccount as String: key,
kSecValueData as String: data
]
SecItemDelete(query as CFDictionary) // Oude invoer verwijderen
SecItemAdd(query as CFDictionary, nil)
}
func loadFromKeychain(key: String) -> String? {
let query: [String: Any] = [
kSecClass as String: kSecClassGenericPassword,
kSecAttrAccount as String: key,
kSecReturnData as String: true,
kSecMatchLimit as String: kSecMatchLimitOne
]
var dataTypeRef: AnyObject? = nil
let status = SecItemCopyMatching(query as CFDictionary, &dataTypeRef)
if status == errSecSuccess, let data = dataTypeRef as? Data {
return String(data: data, encoding: .utf8)
}
return nil
}