Wie Chromium Cookies unter Windows verschlüsselt
2026-06-17 · 3 min
Die Cookies-Datenbank verrät Ihnen, welche Cookies existierten und
wann. Sie verrät aber für sich genommen nicht deren Werte — unter Windows
speichert Chromium die Spalte encrypted_value seit v80 als Chiffretext.
Den Klartext wiederherzustellen ist ein Zwei-Schlüssel-Problem: ein
profilspezifischer AES-Schlüssel, der in Local State liegt, gekapselt
von einem Windows-Benutzerschlüssel, den Sie per DPAPI entkapseln müssen.
Dieser Beitrag behandelt die erste Hälfte — die Formate. Die
offline DPAPI-Kette behandelt
die zweite.
Der Schlüssel liegt in Local State
Chromium erzeugt einen AES-256-Schlüssel pro Profil und speichert ihn
base64-kodiert in der übergeordneten Local State-Datei des Profils (JSON):
%LOCALAPPDATA%\Google\Chrome\User Data\Local State
%LOCALAPPDATA%\Microsoft\Edge\User Data\Local State
{
"os_crypt": {
"encrypted_key": "RFBBUEkBAAAA0Iyd3wEV0RGM...",
"app_bound_encrypted_key": "QVBQQgEAAADQ..."
}
}
Base64-dekodieren Sie encrypted_key, und die ersten fünf Byte sind das
ASCII-Tag DPAPI. Entfernen Sie es, und was übrig bleibt, ist ein
DPAPI-Blob — der AES-Schlüssel, verschlüsselt unter den
Windows-Anmeldedaten des Benutzers. Sie können den Schlüssel nicht direkt
aus Local State auslesen; er muss zuerst entkapselt werden.
Das Cookie-Wert-Format
Jeder encrypted_value ist ein selbstbeschreibendes Blob. Das moderne
Layout lautet:
| Bytes | Bedeutung |
|---|---|
0..3 | Versions-Tag — ASCII v10 oder v20 |
3..15 | 12-Byte-AES-GCM-Nonce |
15..n-16 | Chiffretext |
n-16..n | 16-Byte-GCM-Authentifizierungs-Tag |
Die Entschlüsselung ist also AES-256-GCM mit dem os_crypt-Schlüssel, der
eingebetteten Nonce und dem angehängten Tag. Das Layout auf der Platte
(Chiffretext gefolgt vom Tag) ist genau das, was WebCryptos decrypt
erwartet — weshalb der
In-Browser-Entschlüsseler
es ohne zusätzliches Reassembly erledigen kann.
Zwei Versions-Tags sind relevant:
v10— das klassische Schema. Der Schlüssel ausLocal Stateentschlüsselt den Wert direkt. Der Klartext ist der Cookie-Wert unverändert.v20— App-Bound Encryption (Chrome 127+). Dem entschlüsselten Klartext ist ein 32-Byte-SHA-256-Domain-Hash vorangestellt, den Sie entfernen, um den Wert zu erhalten. v20-Werte werden mit dem app-bound Schlüssel (app_bound_encrypted_key) verschlüsselt, nicht mit dem regulärenencrypted_key.
Vor v80 geschriebene Werte haben kein Versions-Tag — sie beginnen mit der
DPAPI-Magic 01 00 00 00 und wurden pro Wert mit CryptProtectData
verschlüsselt. Diese benötigen dieselbe DPAPI-Entkapselung, jedoch auf
jeden Wert angewendet statt auf einen gemeinsamen Schlüssel.
Was Sie offline entschlüsseln können
| Schema | Schlüsselquelle | Offline aus Dateien? |
|---|---|---|
| v10 | encrypted_key (DPAPI-gekapselt) | Ja — mit Masterkey + Benutzergeheimnis |
| Pre-v80 pro Wert | DPAPI pro Wert | Ja — dieselben Eingaben, pro Wert |
| v20 (app-bound) | app_bound_encrypted_key | Teilweise — siehe unten |
Bei v10 ist alles aus den erfassten Dateien wiederherstellbar: der
Local State-Schlüssel, der DPAPI-Masterkey des Benutzers und der NT-Hash
oder das Passwort des Benutzers. Das ist der Regelfall und der, den das
Tool automatisiert.
v20 fügt eine zweite Schicht hinzu. Der app-bound Schlüssel wird mit
System-DPAPI gekapselt und anschließend durch einen app-bound Dienst
geführt, der ihn an die Maschine bindet. Die System-DPAPI-Schicht ist
offline wiederherstellbar (der Maschinenschlüssel stammt aus dem
SECURITY-Hive), aber der app-bound Schritt ist auf aktuellen Builds
keine reine dateibasierte Kryptografie. Wenn Sie den entkapselten
v20-Schlüssel bereits besitzen, ist das Entschlüsseln der Werte
unkompliziertes GCM; diesen Schlüssel allein aus Dateien abzuleiten ist
der Teil, der sich noch nicht vollständig auf Offline-Mathematik
reduzieren lässt.
Andere Plattformen, kurz
Dies ist eine Windows-Geschichte. Unter macOS liegt der os_crypt-
Schlüssel im Login-Keychain (Chrome Safe Storage), entsperrt mit dem
Benutzerpasswort. Unter Linux ist es entweder ein fest kodierter
peanuts-Schlüssel oder ein Geheimnis in GNOME Keyring / KWallet. Firefox
verschlüsselt Cookie-Werte überhaupt nicht, und Safari-binarycookies
liegen im Klartext — siehe
Browser-Cookies in der Forensik.