Hübsches Logo, schlechte Crypto

aSSL - Ajax Secure Service Layer soll nach eigener Darstellung "eine Technologie ähnlich wie SSL, nur ohne HTTPS" sein. Nette Idee, denke ich, mal einen Blick darauf werfen...

Verwendete Verfahren

Ein erster Blick auf die Webseite macht schnell klar, daß Skepsis angesagt ist - welche Verfahren werden verwendet?
RC4 - überholt, von manchen als "broken" bezeichnet. Wieso überhaupt RC4? Das sieht man schnell, wenn man die Beschreibung des Verfahrens ansieht (siehe unten)...
BlockTEA, eine DES-Variante - Wieso Variante? Finger weg von Algorithmen, es sei denn, man weiß, was man tut!
Double Key Quadruple DES, eine selbstgemachter 3DES-Modus - ich bekomme Gänsehaut.
Aber gut, mal weiterlesen, vielleicht kann man ja einfach die Verfahren gegen vernünftige Algorithmen austauschen.

Der Schlüsselaustausch

Der Client erzeugt einen Sitzungsschlüssel s und einen Clientschlüssel c. s wird mit c verschlüsselt und an den Server geschickt. Dieser wählt einen zufälligen Serverschlüssel s, verschlüsselt damit das empfangene Paket und sendet dies an den Client. c ist also nun doppelt verschlüsselt. Der Client entschlüsselt nun die Daten, und sendet das Ergebnis an den Server - welches laut Beschreibung nun nur noch mit dem Serverschlüssel verschlüsselt ist. Das kann natürlich der Server entschlüsseln, und: Tadaa, Client und Server haben einen gemeinsamen Schlüssel.
Die Doppeltverschlüsselung ist ein bekannter Ansatz; er funktioniert aber nur bei kommutativen Chiffren - in diesem Fall RC4.
RC4 ist eine Stromchiffre, d.h. es werden Zufallszahlen mittels XOR mit dem Klartext verknüpft. Ja, XOR ist kommutativ... wenn man die drei Nachrichten abhört, erhält man:
m1 = s XOR RC4(c)
m2 = s XOR RC4(c) XOR RC4(s)
m3 = s XOR RC(s)
Nun berechnet der Angreifer:
m1 XOR m2 = RC4(s)
...und kann damit m3 entschlüsseln:
m3 XOR RC4(s) = s
Oh weh...

Fazit

Ganz abgesehen von der Tatsache, daß der Vergleich mit SSL schon fast anmaßend ist - SSL kann bedeutend mehr, angefangen bei Zertifikaten zum Verhindern von Man-in-the-Middle-Angriffen (hierüber wird hier nicht einmal gesprochen)...
Im Orginal wurde das Verfahren mit dem diskreten Logarithmusproblem formuliert. Die Abbildung auf XOR funktioniert ganz offensichtlich nicht. Es zeigt einmal mehr, daß man nicht "irgendein" Krypto-Verfahren nehmen darf, um dann "irgendwie" durch Trial-and-Error sein Protokoll zusammenzustöpseln.
Wie war nochmal die Pointe eines Witzes (ohne damit einem Berufsstand zu nahe treten zu wollen)? "Die Ingenieure haben schon öfters aus der Physik Methoden übernommen, ohne komplett durchschaut zu haben, wie es eigentlich funktioniert" ;-)

(Entdeckt via Fefe's Blog)