Philippe Oechslin ist bekannt durch seine Crypto-Arbeit über Rainbowtables, darum konnte man sich von diesem Vortrag viel erwarten. Allerdings habe ich die ersten 10 Minuten leider verpasst.
Eine Demo zeigte, wie schlecht Verschlüsselung regelmäßig implementiert ist. Die Software (den Namen nannte er nicht) implementiert drei Passwörter, eins zum Zugriff auf den privaten Bereich, eins zum Zugriff auf den öffentlichen Bereich und ein Panikpasswort zum Löschen der Verschlüsselungskeys. Die Passwörter sind hintereinander in einem Control Block angeordnet. Wenn man nun die Reihenfolge der Passwörter im Control Block austauscht, kann man mit dem Panikpasswort den privaten Bereich entschlüsseln.
Die nicht mehr angebotene Software von DataBecker „PrivateSafe“ ist ein anderes lustiges Programm. Es gibt zwar ein Passwort, jedes Zeichen im Passwort wird aber nur für ein einfaches logisches Shift verwendet um eine Prüfsumme zu erzeugen die dann verifiziert wird. Aus diesem Shift lässt sich einmal die Länge des Passworts ermitteln, außerdem kann man aus der Bitfolge für jedes Zeichen ermitteln, ob es als letztes Bit eine 0 oder 1 hat. Damit lässt sich der Suchraum massiv einschränken. Im Ergebnis können über eine triviale Analyse die Passwortkandidaten gefunden werden, ohne die komplexe Blowfish-Berechnung zu nutzen. Mit den Passwörtern die auf die Prüfsumme passen probiert man dann den eigentlichen Algorithmus aus. Blowfish hat ein langsames Keysetup, darum kann man direkt nur ca. 25.000 Passwörter pro Sekunde ausprobieren. Mit der Schwachstelle lässt sich das Passwort über 15.000x schneller brechen (2,5 Stunden statt 1,7 Jahre).
Eine weitere Schwachstelle liegt in der Nutzung von Passwörtern ohne Salt. Dadurch lassen sich Rainbowtables berechnen, die das spätere Cracken von Verschlüsselungssystemen stark beschleunigen.
Fazit: Crypto ist schwer korrekt zu implementieren. Deshalb OpenSource, da ist die Implementierung verifizierbar.
Kommentare gesperrt wegen Spam
Comment by Christian — 14. Februar 2010 @ 19:30