Wie wird in einer ZIP-Datei beim Entpacken das Passwort geprüft?

1 Antwort

Vom Fragesteller als hilfreich ausgezeichnet

Ich kenn zwar das exakte Verfahren bei ZIP nicht, aber der übliche Ablauf, der in einer wie auch immer gearteten Form wohl auch bei ZIP verwendet werden dürfte ist dieser:

  1. Von den unverschlüsselten Daten wird ein Hashwert gebildet (CRC32 u.ä. reicht in dem Fall locker aus).
  2. Dann werden die verschlüsselten Daten zusammen mit dem Hashwert der unverschlüsselten Daten ins Archiv gepackt und optionalerweise noch komprimiert.
  3. Beim entpacken/entschlüsseln wird von den entschlüsselten Daten erneut ein Hashwert gebildet und mit dem gespeicherten Wert verglichen.
  4. Stimmen die beiden nicht überein, dann war das versuchte Passwort falsch.
  5. Stimmen die beiden überein, war das Passwort mit einer gewissen (nicht geringen, meist hinreichenden) Wahrscheinlichkeit korrekt.

Falls nun die Frage aufkommt, ob das nicht irgendwie unsicher wäre, wenn ger nicht zu 100% sichergestellt sein kann, dass das Passwort korrekt war:

Nein. In dem Fall käme zwar keine "Falsches Passwort"-Meldung, aber trotzdem wären die "entschlüsselten" Daten nichts weiter als ein Haufen digitaler Müll, da zwar der Vergleichshash übereinstimmt, aber eine korrekte Entschlüsselung mit dem falschen Schlüssel trotzdem nicht funktioniert.

Und zu deiner Vermutung: Nein, das Passwort wird nicht (oder zumindest nicht einfach nur) als Hash verwendet, sondern als Basis für einen "Schlüsselableitungsalgorithmus" verwendet z.B. um mittels eines modifizierten Pseudozufallszahlengenerators einen Schlüsselstrom (Keystream) zu generieren.

Aber weder das Passwort selbst noch irgendetwas "direkt" damit zusammenhängendes werden im Archiv gespeichert.