Versionen
⚖️KDBX 3.1 · 4.0 · 4.1 im Vergleich
Die Signaturen sind seit KeePass 2.x gleich geblieben – dahinter hat sich mit KDBX 4 fast alles geändert. KDBX 4.1 ergänzt nur XML-Elemente; Header und Kryptografie sind identisch mit 4.0.
| Merkmal | KDBX 3.1 | KDBX 4.0 | KDBX 4.1 |
|---|---|---|---|
| Eingeführt mit | KeePass 2.20 (2012) | KeePass 2.35 (2017) | KeePass 2.48 (2021) |
| Version im Header | 01 00 03 00 | 00 00 04 00 | 01 00 04 00 |
| Länge der Header-Felder | UInt16 (2 Byte) | Int32 (4 Byte) | Int32 (4 Byte) |
| Schlüsselableitung | nur AES-KDF (Felder 5 + 6) | KdfParameters (Feld 11, VariantDictionary): AES-KDF oder Argon2 | wie 4.0 |
| Daten-Chiffre | AES-256-CBC (Twofish per Plugin) | AES-256-CBC oder ChaCha20 | wie 4.0 |
| Header-Integrität | Meta/HeaderHash im XML (erst nach dem Entschlüsseln prüfbar) | SHA-256 + HMAC-SHA-256 direkt nach dem Header | wie 4.0 |
| Erkennung falsches Passwort | StreamStartBytes (32 Byte) nach dem Entschlüsseln | Header-HMAC – vor jeder Entschlüsselung | wie 4.0 |
| Blockstruktur | Hash-Blöcke im Klartext: [Index][SHA-256][Länge][Daten] | HMAC-Blöcke außen: [HMAC][Länge][Chiffretext], Encrypt-then-MAC | wie 4.0 |
| Innenstrom | Salsa20; Schlüssel + ID offen im äußeren Header (Felder 8, 10) | ChaCha20; Schlüssel (64 Byte) im verschlüsselten inneren Header | wie 4.0 |
| Anhänge | Base64 im XML (Meta/Binaries) | Rohbytes im inneren Header (Typ 3, Flag-Byte) | wie 4.0 |
| Zeitstempel im XML | ISO-8601-Text | Base64 eines Int64 (Sekunden seit 0001-01-01) | wie 4.0 |
| Plugin-Daten im Header | – | PublicCustomData (Feld 12) | wie 4.0 |
| Neu im XML | – | CustomData an Gruppen/Einträgen | Tags an Gruppen, QualityCheck, PreviousParentGroup, Name/LastModificationTime für eigene Icons, LastModificationTime für Meta/CustomData-Items |
🧩Was heißt das praktisch?
3.1: Passwortprüfung erst nach dem Entschlüsseln
Der ganze Chiffretext wird mit dem abgeleiteten Schlüssel entschlüsselt, dann werden 32 Byte verglichen. Der Header ist bis dahin nicht authentisiert.
4.x: Header-HMAC als Türsteher
Ein falscher Schlüssel scheitert am HMAC über den Header – ohne dass Datenblöcke angefasst werden. Manipulierte KDF-Parameter fallen ebenso auf.
4.1: nur das Datenmodell
Ein Programm, das nur 4.0 kennt, kann die Kryptografie von 4.1 vollständig verarbeiten; es kennt nur die neuen XML-Elemente nicht.
Alle drei Varianten kannst du im Debugger mit den Demo-Datenbanken durchspielen und im Hex-Viewer nebeneinander vergleichen.