Seite 1 von 2

Passwortübertragung

Verfasst: 29.01.2005 00:02
von bluejoke
Hallo!

Wie überträgt das SmartUpdatePlugin bzw. der SmartUpdater von PB eigentlich das Passwort? Einfach als GET-Anhang??? Im Klartext oder ist da eine Verschlüsselung drauf?


Danke,
Simon

Verfasst: 29.01.2005 00:48
von GPI
Wenn du es in der Homepage eintippst: Garantiert in GET-Anhang und relativ ungeschützt...

Verfasst: 29.01.2005 02:23
von freedimension
Wobei es da ja schon Möglichkeiten gäbe das auch ohne SSL sicher zu übertragen.

Verfasst: 29.01.2005 14:44
von bluejoke
was bedeutet denn "relativ ungeschützt"?
Und ich meine das SmartUpdate-Tool, also nicht die Homepage.

Ich wollte einfach mal wissen, ob es eine sichere Methode zum Übertragen eines Passworts von PB auf bspw. ein PHP-Skript gibt, oder ob es Klartext übertragen werden muss.

Verfasst: 29.01.2005 15:15
von freedimension
Klar, du kannst hier mit md5 arbeiten:

1.) Passwort wird MD5-verschlüsselt auf dem Server abgelegt.

2.) Der Client meldet beim Server eine Übermittlung des Passwortes an

3.) Der Server schickt eine Bestätigung zusammen mit einem öffentlichen zufallsgenerierten String an den Client

4.) Der Client MD5-kodiert das eingegebene Passwort, verknüpft das Ergebnis mit dem Zufallsstring, und MD5-kodiert dieses Ergebnis nocheinmal. Das Endergebnis wird an den Server übermittelt.

5.) Der Server vergleicht nun diesen String mit dem String in der Datenbank, zuvor wird natürlich auch dieser String mit der Zufallszahl verknüpft und kodiert.

fertig

Für Javascript gibt es schöne MD5-Prozeduren, wahlweise kann auch SHA-1 oder ähnliches verwendet werden.

Gruß
Mirko

Verfasst: 29.01.2005 17:06
von bluejoke
whow, das gefällt mir...
Vom System her ist das ja dann so ähnlich wie PGP, oder?
also ich find das so super, dass man eigentlich eine Befehlssammlung mit passendem PHP gegenstück schreiben sollte.

Aber wie wird diese Zufallszahl mit dem MD5-Verschlüsselten Passwort verknüpft? Einfach hintenhing gehängt und dann nochmal MD5 drüberlaufen lassen, oder?

Und bei der PHP-erzeugten Ausgabe: soll der Header da geändert werden? Beispielsweise MIME-Typ plain-text oder so...

Verfasst: 29.01.2005 17:15
von bluejoke
Ach ja,
ich muss dann eine Nummer mitsenden (PB->PHP), die praktisch als ID für den Zufallstring steht, oder?

der Ablauf wäre dann also:
PB: Ich sende ein Passwort!
PHP: OK, nimm 897398 dazu, mit der ID 4
PB: Hier das Passwort: blablabla, verschlüsselt mit 4
PHP: Hier die angeforderten Daten; zu sich selbst: ID4 ist nun wieder frei für den nächsten Transfer


Also ungefähr so, oder? Ohne ID weiß PHP ja nicht, mit welchem Schlüssel verschlüsselt wurde, und wenn ich den Zufallstring mitsende, kann der ja abgefangen werden, und dann würde das Passwort ja immer stimmen.

Verfasst: 29.01.2005 18:07
von freedimension
Du hasst es erfasst. Der Zufallsstring ist natürlich nur für die eine Session gültig und wird auch im Session-Hash abgelegt. D.h. wenn du eine funktionierende Sessionverwaltung hast (ist ja zum Glück bei PHP dabei), brauchst du dir nichtmal das Passwort irgendwo in die Datenbank schreiben oder ähnlichen Firlefanz betreiben.

Verfasst: 29.01.2005 18:39
von bluejoke
aber dann muss ich mein PB-Programm so schreiben, dass das Session-Zeugs funktioniert, und das stell ich mir schwierig vor. WebGadgets will ich vermeiden.

Verfasst: 29.01.2005 19:06
von freedimension
Ja, dann machst du es tatsächlich mit einem zweiten Identifier.

Aber niemals versuchen dies über die IP zu lösen. IPs wechseln bei manchen Anbietern manchmal schneller als du "Aktualisieren" drücken kannst ;)