Passwortabfrage
Karlheinz Toni
- java
0 Robert Bamler0 Karlheinz Toni0 Henryk Plötz0 LanX
Hi,
kennt jemand von euch ein JavaApplet, das eine Passwortabfrage durchführt und je nach eingegebenen Passwort/Login an eine andere Adresse verzweigt?
thx
CHalry
Hallo,
kennt jemand von euch ein JavaApplet, das eine Passwortabfrage durchführt und je nach eingegebenen Passwort/Login an eine andere Adresse verzweigt?
Die Passwort-Abfrage über Client-seitige Script-Anwendungen ist prinzipiell nicht möglich, da der Besucher ja - wenn er sich auskennt - das Script auslesen und dort das Passwort finden kann.
Einzige Möglichkeit: zufälligen Text generieren und das erwartete Passwort zum Verschlüsseln dieses Textes verwenden. Bei Eingabe eines Passworts wird der Text entschlüsselt und mit dem Ursprungstext verglichen. Nur wenn der ver- und wieder entschlüsselte Text übereinstimmen, war das Passwort richtig. Dabei muss das Passwort selbst nicht in das Script übernommen werden.
Nachteil:
Hi,
danke mal für die Antwort :)...
- extreeeeeem umständlich. Über Server-Anwendungen wäre es viel einfacher
hast du einen link parat?`
thx
Charly
Hallo,
- extreeeeeem umständlich. Über Server-Anwendungen wäre es viel einfacher
hast du einen link parat?`
Zu Kryptographie oder zu Server-Anwendungen?
Ich kenn' mich in der Kryptographie eigentlich selbst nicht so gut aus. Henryk Plötz scheint da eher "zu Hause" zu sein.
Zu Server-Anwendungen ist zum Einstieg sicher http://selfhtml.teamone.de/cgiperl/index.htm zu empfehlen.
Moin
Die Passwort-Abfrage über Client-seitige Script-Anwendungen ist prinzipiell nicht möglich, da der Besucher ja - wenn er sich auskennt - das Script auslesen und dort das Passwort finden kann.
Nicht die volle Wahrheit, aber im Prinzip auch nicht ganz falsch
Einzige Möglichkeit: zufälligen Text generieren und das erwartete Passwort zum Verschlüsseln dieses Textes verwenden. Bei Eingabe eines Passworts wird der Text entschlüsselt und mit dem Ursprungstext verglichen. Nur wenn der ver- und wieder entschlüsselte Text übereinstimmen, war das Passwort richtig. Dabei muss das Passwort selbst nicht in das Script übernommen werden.
Naja, nur das so ziemlich jeder symmetrische Verschlüsselungsalgorithmus einfache Angriffe erlaubt, wenn Klartext und Geheimtext bekannt sind, noch dazu in voller Länge.
Evt. besser ist es da das Passwort mit sich selbst zu verschlüsseln(bitte kein XOR! ;), evt. noch mit etwas Salz zu würzen und voila, du hast die Standard-crypt()-Funktion. Das ist aber auch nicht mehr das Gelbe vom Ei.
Die richtige Lösung wäre dann einen Hashing-Algorithmus wie MD5 zu benutzen und das Passwort und eine kräftige Portion Salz damit zu Hashen und den Hash und das Salz zu speichern. Damit hast du gute Chancen auch der NSA zu widerstehen.
Also: Zufällige Zeichenkette generieren, ruhig etwas länger als das Passwort. Dann die Zeichenkette _hinter_ das Passwort hängen, durch MD5() jagen und den entstehenden Hash zusammen mit der zufälligen Zeichenkette irgendwo speichern. Bei der Passwortüberprüfung einfach nochmal die gespeicherte Zeichenkette (das 'Salz') hinter das eingegebene Passwort hängen und MD5() machen. Den nun entstehenden Hash mit dem gespeicherten Hash vergleichen und schauen ob sie übereinstimmen.
Die MD5()-Funktion liefert dir so ziemlich jede serverbasierte Sprache fertig mit (z.B. http://www.php.net/manual/de/function.md5.php) und für JavaScript gibt es einen Feature-Artikel (sehr nützlich, imho): http://aktuell.de.selfhtml.org/artikel/javascript/md5/index.htm.
--
Henryk Plötz
Grüße aus Berlin
Hallo
Die Passwort-Abfrage über Client-seitige Script-Anwendungen ist prinzipiell nicht möglich, da der Besucher ja - wenn er sich auskennt - das Script auslesen und dort das Passwort finden kann.
Falsch! Ich möcht mal Henryks Ausführungen auf nen Punkt bringen,
"Asymetrische Verschlüsselungs-Algorithmen", d.h. der Aufwand um aus
dem verschlüsselten Text wieder Klartext zu generieren ist weit komplexer
als die Verschlüsselung selbst.
Beispiel: Primzahlen zu multiplizieren ist weit einfacher als das Produkt
in Primfaktoren zu zerlegen. Auf diesem Prinzip fußt RSA also auch PGP.
Also wenn du dass Passwort so verschlüssel hinterlegst kann dir keiner was.
(früher waren die Passwortdateien in Unix deswegen auch öffentlich lesbar!)
@Henryk: AFAIK können bei MD5 doch 2 verschiedene Passwoerter den gleichen
Hashwert haben, oder? Mir ist aber klar dass die Wahrscheinlichkeit dafür
verschwindend ist.
Tschau
Rolf
Moin
@Henryk: AFAIK können bei MD5 doch 2 verschiedene Passwoerter den gleichen
Hashwert haben, oder? Mir ist aber klar dass die Wahrscheinlichkeit dafür
verschwindend ist.
Ja, das ist sogar garantiert so. MD5 erzeugt 128 Bit-Hashcodes, sobald du also 2^128+1 verschiedene Strings durch md5 jagst, hast du garantiert mindestens eine Kollision dabei. Die gängigen Crackprogramme für md5 sagen auch dass sie nicht das Passwort suchen (das ist nicht mehr wiederherstellbar), sonder nur eine Kollision, also einen String der zufällig den selben MD5-Wert hat.
Aber wie gesagt: 128 Bit sind 16 Byte, du brauchst also 16,125 Byte lange Strings um garantierte Kollisionen zu finden. Da die meisten Passwörter keine 16 Byte lang sind, ist es wahrscheinlich dass du zuerst da eigentlich verwendetete Passwort findest und dann irgendwann später bei viel größeren Passwortlängen eine Kollision.
--
Henryk Plötz
Grüße aus Berlin