...someplace, where there isn't any trouble? Do you suppose there is such a place, Toto?

Wie wertvoll darf ein Geheimnis sein, das man in einer verschlüsselten Excel-Datei hinterläßt?

Ich weiss es jetzt ziemlich genau: Ziemlich genau 30 €, dazu braucht man zwei bis drei Tage Zeit und eine handvoll Rechner.

Einer meiner "Schwager from Hell" hatte nämlich dummerweise irgendeine Tantiemenabrechnung, die er irgendwann mal mit dem Beamer vor versammelter Mannschaft an die Wand geworfen hatte, mit einem Passwort geschützt und ebendieses vergessen ("Tja siehste, das Passwort war so geheim, daß ich es vergessen habe" würde jetzt der DEI sagen). Dumm, wenn man aufgrund dieser Angaben dann irgendwann diesen Monat noch irgendwelche Zahlungen leisten muß. Nachdem alle Versuche, die Datei wieder lesbar zu machen, gescheitert waren, mußte ein Passwort-Cracker her. Seit Office 97 werden die Exceldateien mit einem RC40 Streamcipher verschlüsselt, also hilft da nur eine Brute-Force Attacke (die einschlägigen Tools kennen offenbar keine Wörterbuchattacken). Die Wahl fiel auf ein Tool von irgendeinem russischen Entwickler das man für etwa 30 € kaufen konnte. Es teilt den Keyspace (von 2^40 Schlüsseln) in 16384 äquidistante Teilbereiche auf und man kann durch Angabe einer Start- und Endzahl (zwischen 0 und 16383) festlegen, welchen Bereich des Keyspace die jeweilige Instanz untersuchen soll.

Häh, "RC40 Streamcipher"? "Brute-Force Attacke"? "Wörterbuchattacke"? "Keyspace"?

Also jetzt ganz einfach für die kryptographisch Minderbemittelten unter uns: Wenn eine solche Datei verschlüsselt wird, dann wird aus dem Eingabestring (dem "Passwort") schlicht und einfach eine Zahl erzeugt. Im Fall von Excel ist das eine Zahl die einen Wert zwischen 0 und 2^40-1 (der "Keyspace") hat, also eine Dualzahl mit 40 Stellen. Die Verschlüsselung muß man sich nun mathematisch vorstellen als Funktion, die als Ergebnis den Ciphertext hat (also die verschlüsselte Datei, die keiner außer demjenigen anschauen können soll, der das Passwort weiß) und zwei Eingabeparameter, nämlich besagte Zahl, die aus dem Passwort gebildet wurde (der "Key") und dem Klartext (der unverschlüsselten Exceldatei).

Wie klappt nun die Entschlüsselung? Ganz einfach: Der Benutzer gibt in Excel das Passwort ein, von dem er glaubt, es sei das richtige. Mit demselben Algorithmus wie bei der Verschlüsselung wird nun wieder eine 40-stellige Dualzahl ermittelt und der Verschlüsselungsalgorithmus in umgekehrter Richtung durchlaufen: Das Ergebnis ist also eine Funktion, die als Rückgabewert den (erwarteten) Klartext ergibt und als Eingabeparameter besagte Zahl sowie den Ciphertext (die verschlüsselte Exceldatei) hat. Diese Entschlüsselung erzeugt dann ein Ergebnis, das entweder totaler Kauderwelsch ist (wenn der Key und damit das Passwort nicht dasselbe war wie bei der Verschlüselung) oder eben etwas Vernünftiges, wenn der Key und damit das Passwort gestimmt haben.

Wegen dieser Eigenschaft, daß derselbe Key zum Ver- und Entschlüsseln verwendet wird, werden derartige Algorithmen übrigens "Symmetrische Verschlüsselungsverfahren" genannt. Beispiele für solche Verfahren sind etwa Blowfish, Twofish, DES, Rijndael/AES, IDEA. Im Gegensatz dazu gibt es auch asymmetrische Verfahren, wo also zwei unterschiedliche Schlüssel zum Ver- und Entschlüsseln verwendet werden. Asymmetrische Verfahren finden aber häufig Anwendung in Public-Private-Key-Infrastrukturen "but that's a whole different kettle of fish" (denn für asymmetrische Verfahren ist meist noch wichtig, daß der eine Key vom anderen nicht trivial abgeleitet werden kann).

Und wie klappt nun das Knacken von solch einem Excelfile? Auch wieder ganz einfach: Ein Programm erzeugt der Reihe nach alle Zahlen zwischen 0 und 2^40-1 (also dem "Keyspace"). Diese füttert es dann dem Entschlüsselungsalgorithmus ein, zusammen mit dem Ciphertext. Dann schaut es jedesmal das Ergebnis an und wenn das Ergebnis nicht irgendein Kauderwelsch ist sondern ausschaut wie ein Excelfile, dann war das mit an Sicherheit grenzender Wahrscheinlichkeit der richtige Schlüssel. Man hat dann zwar das Passwort nicht, aber immerhin die Datei wieder lesbar gemacht. Wenn stattdessen ein Kauderwelsch rauskommt, wird das Ganze mit der nächsten Zahl probiert, usw...

Hört sich easy an, aber genau dieses Testen des kompletten Keyspace ist das Problem, denn es erfordert Rechenpower, die sich bis vor wenigen Jahren nur die NASA, Exxon, die NSA und die Mafia leisten konnte. Heute kann es aber jeder Depp, eingeschlossen meiner bescheidenen Wenigkeit. Also: Alle verfügbaren Rechner zusammengesammelt und jeden auf einen Bereich des Keyspace losgelassen. Beteiligt waren dabei SULU, SAAVIK und PICARD bei mir daheim und die alte ES-ES128, das SCHMALZFLEISCH und NEPTUNE in Mission Control, wo jetzt in der ersten Januarwoche eh' keiner arbeitet. Wohl dem, der auf seinem Rechner zwei Kerne knacken lassen kann. Alle diese Rechner waren von letzten Sonntagabend bis Mittwoch früh mit 100% CPU-Last damit beschäftigt, diese Exceldatei zu knacken. Nach etwa zweieinhalb Tagen, in der Nacht auf den Mittwoch, hat das SCHMALZFLEISCH den Key dann gefunden.

Jetzt könnten dem kryptographisch Unbedarften natürlich ein paar Fragen gekommen sein:

  • "Ja, ist das denn nun schlecht verschlüsselt, wenn man das in zwei Tagen mit Commodity-Hardware knacken kann?"
  • Wieso ist denn überhaupt das Verschlüsselungsverfahren bekannt, sollte man da nicht diesen Algorithmus einfach geheimhalten?

Die Antworten lauten:

  • Kann man so nicht fragen. Vor 10 Jahren wäre das Geheimnis in der Excel-Datei eines gewesen, das eine ganze Weile nicht hätte geknackt werden können. Daß man ein Geheimnis nur durch Brute-Force herausbekommen kann, zeichnet den Algorithmus aus. Nebenbei bemerkt: Ein Verschlüsselungsalgorithmus, auf den diese Eigenschaft nicht zutrifft, hat eh keinen Bestand auf dem Markt.
  • Ein Verschlüsselungsverfahren, dessen Algorithmus nicht bekannt ist, wird im Allgemeinen belächelt. Die Zunft der Kryptanalysten macht derartigen Verfahren durch Reverse-Engineering den Garaus. Die einzigen Verfahren, die den Test der Zeitläufte bestehen und bestanden haben, sind diejenigen, die von Anfang an offengelegt wurden und von den Kryptanalysten auseinandergenommen wurden. Nur wenn sich dabei herausstellt, dass ein derartiger Algorithmus nur durch Brute-Force zu knacken ist, ist er sicher. Denn dann kann man an der Schraube mit der Schlüssellänge drehen und den Aufwand für den Angreifer exorbitant erhöhen. Deswegen ist grundsätzlich Mißtrauen angesagt, wenn jemand von einem Verschlüsselungsalgorithmus spricht, der besser ist als alles andere, ihn aber nicht offenlegen will. Und im übrigen: Die Anzahl Personen auf diesem Planeten, die brauchbare symmetrische Verschlüsselungsalgorithmen entwerfen können, ist mit an Sicherheit grenzender Wahrscheinlichkeit kleiner als 100.

Trackback address for this post

This is a captcha-picture. It is used to prevent mass-access by robots.
Please enter the characters from the image above. (case insensitive)

1 comment

Comment from: David Koenig [Visitor]
David KoenigMit dictionary-based attack oder passphrase mask auch für 25? unter http://www.passwordrecoverytools.com/tool_excel.asp zu haben.
Jetzt aber Klugscheiss Ende, Zeit für die Falle...

Gruss aus Munich
01/06/06 @ 04:11

Comments are closed for this post.