Apple Keychain
| Format | Apple Keychain |
|---|---|
| Kurzname | Keychain |
| Kategorie | Datenbank |
| Plattformen | macOS, iOS |
| Crush Unterstützung | Unterstützt (SQLiteParser) |
| Status | Überprüft |
| Zuletzt überprüft | 2026-10-04 |
Forensische Relevanz
Apples Passwortverwaltung, die Zugangsdaten, private Schlüssel, Zertifikate, WLAN-Passwörter, Zahlungsdaten und sichere Notizen speichert. Unter iOS als einzelne SQLite-Datenbank unter /private/var/Keychains/keychain-2.db umgesetzt. Die Datei selbst ist nicht verschlüsselt, aber jedes Element ist mit zwei AES-256-GCM-Schlüsseln verschlüsselt: einem Metadaten-Schlüssel für seine Attribute (geschützt durch die Secure Enclave, im Application Processor zwischengespeichert) und einem Schlüssel pro Zeile für den geheimen Wert (nur von der Secure Enclave entpackt). Beide sind an die Schutzklasse des Elements gebunden. Datensätze enthalten: Kontoname (acct), Dienst (svce), Server, Zugriffsgruppe (agrp, identifiziert die zugehörige App), Schutzklasse und das verschlüsselte Geheimnis (data). Unter macOS: Login-Keychain (~/Library/Keychains/login.keychain-db, .keychain vor 10.12) und System-Keychain (/Library/Keychains/System.keychain) verwenden ein eigenes Big-Endian-Datenbankformat, das mit 'kych' beginnt, kein SQLite. Lokale Objekte/iCloud-Schlüsselbund ist eine keychain-2.db (SQLite) mit einem user.kb-Keybag unter ~/Library/Keychains/<UUID>/. Ist die Synchronisierung des iCloud-Schlüsselbunds aktiviert, kann keychain-2.db Zugangsdaten von allen Apple-Geräten des Nutzers enthalten. Verschlüsselte iTunes/Finder-Backups enthalten die Keychain als keychain-backup.plist, offline mit dem Backup-Passwort entschlüsselbar, ausgenommen Elemente mit ThisDeviceOnly. Auf Geräten mit Secure Enclave (iPhone 5s und neuer) lassen sich die Class Keys nur auf dem Gerät selbst entpacken; ältere Geräte erlauben die Offline-Entschlüsselung mit extrahierten Class Keys.
Signaturen
| Offset | Hex | ASCII (nicht druckbar als .) | Beschreibung |
|---|---|---|---|
| Offset unbekannt | 53 51 4C 69 74 65 20 66 6F 72 6D 61 74 20 33 00 | SQLite format 3. | SQLite-Magic: keychain-2.db ist eine normale SQLite-Datenbank |
Bekannte Dateiendungen
.db, .keychain, .keychain-db
Referenzen
- Apple keychain data protection (Apple Security Guide) https://support.apple.com/guide/security/keychain-data-protection-secb0694df1a/web
- MacOS keychain database file format (libyal/dtformats) https://github.com/libyal/dtformats/blob/main/documentation/MacOS%20keychain%20database%20file%20format.asciidoc
- Extracting and decrypting iOS Keychain (ElcomSoft / DFIR Review) https://dfir.pubpub.org/pub/gqqxl93l
- Deep dive into Apple Keychain decryption (Passware) https://blog.passware.com/a-deep-dive-into-apple-keychain-decryption/
Diesen Eintrag zitieren
Crush-Format-Referenz, „Apple Keychain“. https://kalink0.github.io/crush-forensics/formats/de/keychain/ — Quelle: crush/data/build_formats_db.py zum Commit 640a2a9928f4e36a976b89901512a8dce824d093, erstellt 2026-10-21 06:46:19 UTC.
Eintrag in der Quelldatei bei diesem Commit · Änderungshistorie der Quelle · Korrektur melden