| 

.NET C# Java Javascript Exception

Sichere Anmeldung

Dies ist das Archiv des ehemaligen Forums zum Thema Groovy, Grails, Griffon und Bean Scripting Framework, welches unter groovy-forum.de existierte. Die neue Adresse des Groovy-Forums ist: http://codekicker.de/fragen/themen/groovy.


Sichere Anmeldung

konne - 26.10.2010 01:36
Hallo zusammen,
Ich bin ziemlich neu im Hinblick auf serverseitige Programmierung,
bin aber von meinen ersten Erfahrungen mit Grails ziemlich begeistert.
Um mich mit dem Environment vertraut zu machen schreibe ich gerade
eine recht triviale Anwendung. Wichtig ist, das man sich anmelden kann.
Das ist auch soweit kein Problem. Man gibt sein Passwort ein, klickt auf
einloggen und dann wird das Passwort mit Benutzernamen an den Controller
auf dem Server übertragen. Der checked ob es den user gibt und dann
ob sha1(passwort+user.salt) auch so in der datenbank steckt. wenn markiert
er den user als angemeldet im session Objekt. Soweit so gut.

Nun scheint es mir aber nicht sehr sinnvoll das Benutzer Passwort plain
an meinen Server zu schicken. Selbst wenn SSL verwendet wird könnte jemand
mit Zugriff auf den Server das Passwort so direkt erfahren.

Also habe ich an Hashing im Browser via Javascript gedacht was dann
aber mit dem Salt nicht geht (Ohne den Benutzer schon eingegeben zu haben
kennt man logischerweise das Salt des Benutzers noch nicht). Man könnte
natürlich den Usernamen als Salt nehmen das hätte aber auch seine Nachteile siehe
[www.callum-macdonald.com].

Hat sich schon mal jemand mit dem Thema beschäftigt, also zu verhindern
dass das Benutzerpasswort plain an den server verschickt wird?
Hab jetzt schon einige Zeit darüber nachgedacht und komme auf keine gute
Lösung.

Freue mich auf gute Vorschläge

Konne


Re: Sichere Anmeldung

milkyman - 26.10.2010 07:52
Moin.

Aus meiner Sicht ist Passwort im Klartext per SSL der Standard. Wir haben schon externe Security Checks gehabt und keiner hat was in der Richtung bemängelt.

Was soll der "Zugriff auf den Server" nutzen, wenn die Verbindung SSL-verschlüsselt ist? Solange man das Passwort nicht im Klartext ins Logfile schreibt, sollte das nicht das Problem sein. Zumal - wenn wirklich jemand Zugriff auf deinen Server hat, dürftest du ganz andere Probleme bekommen.

Bye,
Horst


Re: Sichere Anmeldung

konne - 26.10.2010 09:46
Zitat

Was soll der "Zugriff auf den Server" nutzen, wenn die Verbindung SSL-verschlüsselt ist? Solange man das Passwort nicht im Klartext ins Logfile schreibt, sollte das nicht das Problem sein. Zumal - wenn wirklich jemand Zugriff auf deinen Server hat, dürftest du ganz andere Probleme bekommen.

Der Angreifer müsste ja nur eine Zeile Groovy Code schreiben und könnte das Passwort damit ausgeben (er müsste ja nicht einmal mehr den Webserver neu starten). Mir kommt es unverantwortlich vor wenn ich ein Passwort so einfach zugänglich mache. Wurde nicht aus dem Grund schon Salt eingeführt, so dass selbst wenn man an die User Datenbank kommt die Passwörter noch geheim bleiben? Und auch die Digest Authentifizierung von HTTP überträgt das Passwort nur als MD5 und nicht im Klartext.


Re: Sichere Anmeldung

saurier - 26.10.2010 12:34
Zitat

Der Angreifer müsste ja nur eine Zeile Groovy Code schreiben und könnte das Passwort damit ausgeben (er müsste ja nicht einmal mehr den Webserver neu starten).

Ein Angreifer, der schon so weit gekommen ist, dass er Groovy-Code auf dem Server ausführen kann, der braucht
keine Passwörter mehr abzufangen.

Zitat

Mir kommt es unverantwortlich vor wenn ich ein Passwort so einfach zugänglich mache.

Wieso einfach zugänglich? Wenn SSL benutzt wird, ist das Passwort nur an zwei Stellen zugänglich:
1. Beim Client (kann da z.B. von einem Keylogger gelesen werden)
2. Auf dem Server (wer da rauf kommt hat ohnehin schon gewonnen)

Zitat

Wurde nicht aus dem Grund schon Salt eingeführt, so dass selbst wenn man an die User Datenbank kommt die Passwörter noch geheim bleiben?

Das ist ein ganz anderes Thema. Salt bewirkt, dass gleiche Passwörter unterschiedlich verschlüsselt werden.

Zitat

Und auch die Digest Authentifizierung von HTTP überträgt das Passwort nur als MD5 und nicht im Klartext.

Stimmt. Damit wird erreicht, dass das Passwort bei der Übertragung nicht von außen mitgelesen werden kann.
Das Gleiche wird aber auch mit SSL erreicht - nur besser!

Gruß,
Christian


Re: Sichere Anmeldung

milkyman - 26.10.2010 16:07
konne schrieb:
-------------------------------------------------------
> Der Angreifer müsste ja nur eine Zeile Groovy Code
> schreiben und könnte das Passwort damit ausgeben
> (er müsste ja nicht einmal mehr den Webserver neu
> starten).

Wie gesagt, wenn er das kann, dann hast du ein ganz anderes Problem. ;-)
Zumal zumindest bei Grails der Code in Bytecode übersetzt wird und nicht mehr so einfach zu patchen ist.

> Mir kommt es unverantwortlich vor wenn
> ich ein Passwort so einfach zugänglich mache.
> Wurde nicht aus dem Grund schon Salt eingeführt,
> so dass selbst wenn man an die User Datenbank
> kommt die Passwörter noch geheim bleiben?

Klar, in der Datenbank gehören die Passwörter auch verschlüsselt geschrieben und nicht im Klartext.

> Und auch
> die Digest Authentifizierung von HTTP überträgt
> das Passwort nur als MD5 und nicht im Klartext.

Die ist dann aber erstmal ohne SSL? :-)


PS: Ich find's aber sehr positiv, dass du dir so viele Gedanken zu dem Thema machst. Besser einmal zu viel drüber nachdenken als zu wenig.

Bye,
Horst


Stelle deine Groovy-Frage jetzt!


Diese Seite zeigt den Thread "Sichere Anmeldung" der ehemaligen Webseite groovy-forum.de, welche durch einen Serverunfall zerstört wurde. codekicker.de hat viele Konversationen über die beliebte Programmiersprache Groovy und zugehörige Frameworks wie das Grails-Framework retten können.

Hast Du eine Frage zum Thema Groovy, Grails oder allgemein Java? Viele ehemalige groovy-forum.de Mitglieder beantworten dir auf codekicker.de deine Frage! Stelle jetzt eine Frage!

Viele weitere Diskussionen zu Grails und Groovy befinden sich auf der Threadübersicht des alten groovy-forum.de.