PyLucid's MD5-JS-Login verbessern...

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Ich hatte eine sehr anregende Unterhaltung im IRC mit kiesner über den Login-Mechanismuß von PyLucid gehabt. Mitschnitt unter: [wiki]JensDiemer/CryptoIdeeCRDA[/wiki]

Dabei ist aufgefallen, das man den bisherigen Mechanismus verbessern kann.

(btw. den Ablaufplan des bisherigen Mechanismus hab ich noch mal aktualisiert)

Momentan wird ja das Passwort in zwei Teile geteilt (gerade und ungerade Buchstaben)
Von beiden Teilen wird ein MD5 Hash erstellt, wobei ein Teil noch zusätzlich die Zufallszahl des Server erhält...

Das könnte man ändern, wenn man in Python und per JS eine initial Value für die MD5 bildung angeben könnte...
Dann könnte man das gesammte Passwort + Zufallszahl als MD5 Hash übermitteln...

Lange Rede kurzer Sinn:

Wo gibt es eine Python Implementation eines MD5-Algos, bei dem man die initial-Value vorgeben kann???

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
henning
User
Beiträge: 274
Registriert: Dienstag 26. Juli 2005, 18:37

Warum so viel hick-hack?
Wenn dus hashen und nicht rekonstruiren willst, nimm stinknormales md5, sha oder irgendeinen anderen verbreiteten hash.
Die aktuellen hashes sind hinreichend gut, ich glaube nicht, dass man die weiter verwursteln muss.

Wenn du dass Passwort auf der anderen Seite rekonstruieren willst solltest du dich mal über Diffie-Hellmann, RSA, Rabin und/oder ElGamal schlau machen, es gibt da unter anderem auch die Möglichkeit geheime Daten auszutauschen, ohne Schlüssel publik zu machen (Stichwort "no-key kryptografie"). (und diese Systeme sind dabei sicher auch gegen replays)

Sorry, dass ich deine eigentliche Frage nicht beantworten kann :-/.
Das crypt das in den meisten *nix systemen verwendet wird hat aber z.B. ein "salt", das könnte evtl. für dich interessant sein.
Antworten