Hi Michael und Helmut,
unverschüsselt? Wer hier mitlauscht, kann später die gesamte
Kommunikation ebenfalls mitlauschen.
Ups? Unverschlüsselt bin ich doch sowieso. Ich gehe ja davon aus, dass die komplette Kommunikation belauscht wird. Verhindern möchte ich nur, dass jemand das gemeinsame secret errät und sich damit unberechtigt authentifiziert. Was ich da skizziert habe, ist ausschliesslich ein Anmeldevorgang, nicht mehr.
Ich tue exakt das, was Helmut beschrieben hat. Obendrein nutze ich einen timestamp, der die gesendete Zufallszahl auf Server A nach einer Minute ungültig werden lässt und ich lösche die Zufallszahl auf A nach jedem Anmeldeversuch. Bei einer erfolgreichen Anmeldung generiere ich eine neue Session und damit ist der Anmeldevorgang abgeschlossen.
Unter diesem Aspekt muss ich gestehen, dass ich gar nicht verstehe, was Du sagen willst. Es wird doch noch kompliziert???
Mein eigentliches Problem mit Helmuts Worten war:
- Server B setzt die Zufallszahl und den
secret zusammen und verschlüssel das Gesamte
Genau da hakte es, denn wenn ich einfach md5(Zufallszahl + Secret) sende, sehe ich ganz deutlich, wie ein Teil des md5 Hashes immer gleich bleibt, solange ich das secret nicht ändere. Das erleichtert eine brute force Attacke doch ungemein: Man beschaffe sich mehrere Kombinationen von Zufallszahl/md5Hash, stelle anhand des gleichbleibenden Anteils des Hashs fest, wie rum die Addition sein muss und probiere dann alle möglichen secrets zu Hause durch.
Wenn ich aber nicht md5(Zufallszahl + Secret) sondern z.B. md5(Zufallszahl XOR Secret) sende, muss man zusätzlich noch erraten, nach welcher Methode Zufallszahl und Secret zusammengesetzt wurde, und das erhöht die Sicherheit doch sehr ... glaube ich zumindest ... Im Chap RFC, das ich mittlerweile gefunden habe, steht ganz klar: use concat. Vielleicht bin ich ja nur paranoid... Trotzdem vielen Dank für Eure Beiträge.
Immer noch nur eingeschränkt aufnahmefähig (26 Grad... die Sonne ist seit über einer Stunde weg und es hat 26 Grad...)
Frank