Sobes.tech
Junior — Middle

Wie gewährleisten Sie die Sicherheit bei der Speicherung vertraulicher Informationen?

sobes.tech KI

Antwort von AI

Um die Sicherheit bei der Speicherung vertraulicher Informationen in iOS zu gewährleisten, verwendet man in der Regel den Keychain, eine vom System bereitgestellte geschützte Speicherung. Der Keychain verschlüsselt die Daten und beschränkt den Zugriff darauf, was unbefugten Zugriff verhindert.

Außerdem ist es wichtig:

  • Passwörter und Geheimnisse nicht im Klartext in UserDefaults oder Dateien zu speichern.
  • Bei Bedarf Verschlüsselung zu verwenden, wenn Daten außerhalb des Keychain gespeichert werden.
  • Den Zugriff auf die Daten durch die Keychain-Zugriffsrechteinstellungen zu beschränken (z.B. nur bei entsperrtem Gerät zugänglich).

Beispiel zum Speichern und Lesen eines Strings im Keychain mit 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) // Alte Eintragung löschen
    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
}