Crush — Format Reference

Built from crush/data/build_formats_db.py at commit 640a2a9928f4 on 2026-10-21 06:46:19 UTC.

← All formats

macOS Keychain (file-based)

FormatmacOS Keychain (file-based)
Short namekych
Categorydatabase
PlatformsmacOS
Crush supportNot yet supported
StatusReviewed
Last reviewed2026-10-05

Forensic relevance

The legacy file-based macOS Keychain format used by files such as login.keychain-db and System.keychain. The file starts with the ASCII signature 'kych' and contains a CSSM-style database with tables for keychain items such as generic and internet passwords, certificates and cryptographic keys. Many item attributes, including account, service/server information and metadata, are stored separately from the protected secret data. Secret data is encrypted (3DES-CBC) with item keys wrapped by a database key, which is protected by a master key derived from the keychain password (PBKDF2-HMAC-SHA1); System.keychain is unlocked via /var/db/SystemKey. For forensic analysis, the database can contain credentials, certificates, private keys and other authentication material, while metadata can remain useful even when secrets cannot be decrypted. This file-based format is distinct from the SQLite-based data protection keychain (for example keychain-2.db), which uses a different implementation and format.

Signatures

OffsetHex ASCII (non-printable as .)Description
offset 0 (0x0)6B 79 63 68kychSignature 'kych'

Known extensions

.keychain, .keychain-db

References

Cite this entry

Crush Format Reference, “macOS Keychain (file-based)”. https://kalink0.github.io/crush-forensics/formats/kych/ — source: crush/data/build_formats_db.py at commit 640a2a9928f4e36a976b89901512a8dce824d093, built 2026-10-21 06:46:19 UTC.

Entry in the source at this commit · Change history of the source · Report a correction