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.
MerkmalKDBX 3.1KDBX 4.0KDBX 4.1
Eingeführt mitKeePass 2.20 (2012)KeePass 2.35 (2017)KeePass 2.48 (2021)
Version im Header01 00 03 0000 00 04 0001 00 04 00
Länge der Header-FelderUInt16 (2 Byte)Int32 (4 Byte)Int32 (4 Byte)
Schlüsselableitungnur AES-KDF (Felder 5 + 6)KdfParameters (Feld 11, VariantDictionary): AES-KDF oder Argon2wie 4.0
Daten-ChiffreAES-256-CBC (Twofish per Plugin)AES-256-CBC oder ChaCha20wie 4.0
Header-IntegritätMeta/HeaderHash im XML (erst nach dem Entschlüsseln prüfbar)SHA-256 + HMAC-SHA-256 direkt nach dem Headerwie 4.0
Erkennung falsches PasswortStreamStartBytes (32 Byte) nach dem EntschlüsselnHeader-HMAC – vor jeder Entschlüsselungwie 4.0
BlockstrukturHash-Blöcke im Klartext: [Index][SHA-256][Länge][Daten]HMAC-Blöcke außen: [HMAC][Länge][Chiffretext], Encrypt-then-MACwie 4.0
InnenstromSalsa20; Schlüssel + ID offen im äußeren Header (Felder 8, 10)ChaCha20; Schlüssel (64 Byte) im verschlüsselten inneren Headerwie 4.0
AnhängeBase64 im XML (Meta/Binaries)Rohbytes im inneren Header (Typ 3, Flag-Byte)wie 4.0
Zeitstempel im XMLISO-8601-TextBase64 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ägenTags 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.