Laden...

Passwort übertragen

Erstellt von Burnswigg vor 17 Jahren Letzter Beitrag vor 17 Jahren 2.330 Views
Burnswigg Themenstarter:in
211 Beiträge seit 2005
vor 17 Jahren
Passwort übertragen

Hi,

Ich hab eine fix fertige Web-Applikation in der man User und Passwort eingeben muß um in eine Art Memberbereich zu kommen. Passwort und User wird dann in der Session gespeichert. Das Problem das ich glaube zu haben ist die Übertragung des Passworts vom Client zum Server. Welche einfachen Möglichkeiten gibts da?
https??

danke

lg Burnswigg

B
1.529 Beiträge seit 2006
vor 17 Jahren

Ja.

Burnswigg Themenstarter:in
211 Beiträge seit 2005
vor 17 Jahren

Gibts da ein paar Tips wie man so eine Verbindung/Übertragung aufbaut?

lg Burnswigg

B
19 Beiträge seit 2006
vor 17 Jahren

Für HTTPS benötigst du aber ein Zertifikat auf deinem Webserver. Das kostet etwas.

1.457 Beiträge seit 2004
vor 17 Jahren

Um eine HTTPS Verbindung zu ermöglichen benötigst du an der Programmierung so gut wie nichts unternehmen.

Du musst bei deinem ISP ein Zertifikat für deine Domain kaufen. Dies kostet in der Regel 150€ im Jahr und ist eigentlich kein Problem.

Das einzige was du dann durchführen musst ist, dass die Eingabe immer unter HTTPS gemacht wird und nicht unter HTTP.

Ich würde das Kennwort nicht in einer Session speichern. Das würde heißen das alle Seiten dann unter HTTPS stehen müssen. Und das braucht man meiner Meinung nach nicht unbedingt.

Der Benutzername sollte langen.

B
1.529 Beiträge seit 2006
vor 17 Jahren

Für HTTPS benötigst du nur ein Zertifikat, dass kannst du dir aber selbst erstellen. Bezahlen musst du nur, wenn du das Zertifikat auch von einer CA (etwa Verisign o.ä.) zertifizieren lassen willst.

Für die reine Verschlüsselung ist das aber unnötig. Es kommt dann beim Verbinden im Browser zwar immer die Meldung, dass die Identität des Zertifikats nicht verifiziert werden konnte (logisch), allerdings brauchst du das Zertifikat bloß einmal in den Zertifikatsspeicher zu importieren und schon ist Ruhe.

Verschlüsselung per HTTPS geht trotzdem und kostet nichts.

Nur wenn du Wert darauf legst, dass jeder Nutzer in jedem Browser automatisch deinem Verisign (o.ä.) zertifizierten Zertifikat vertraut, kostet das was.
In einer Firmenumgebung kann man zum Beispiel allen Rechnern die firmeninterne CA als vertrauenswürdig installieren und schon gilt das auch für alle von ihr ausgestellten Zertifikate.

J
40 Beiträge seit 2007
vor 17 Jahren

eine andere Möglichkeit wäre das du nur ein HashCode des pw an den Server schiken würdest.

und auf dem Server wieder mti dem HashCode vergleichen

Burnswigg Themenstarter:in
211 Beiträge seit 2005
vor 17 Jahren

Danke für die Infos,

Da ich nicht will dass der User die Zertifikate immer bestätigen muß und ich auch kein Zertifikat kaufen möchte. Scheint mir die beste Möglichkeit der Hashcode zu sein.

lg Burnswigg

J
40 Beiträge seit 2007
vor 17 Jahren

jetzt bleibt nur noch die Frage ob du in der DB mit den Pw's den HashCode speichern willst oder den Klartext.

Burnswigg Themenstarter:in
211 Beiträge seit 2005
vor 17 Jahren

stimmt, bis datto hab ich die Passwörter als Klartext.
Da ich ein Schichtenmodell (BO,DA,Common) benutze ging es eigentlich dass ich eine Funktion für den Hash schreibe. Gibts da eigentlich was vorgefertigtes?

lg Burnswigg

J
40 Beiträge seit 2007
vor 17 Jahren
string test = "test";
int hashCode = test.GetHashCode();
Burnswigg Themenstarter:in
211 Beiträge seit 2005
vor 17 Jahren

Bin grad draufgekommen dass der Hash doch nicht so fein ist da man ihn ja
nicht mehr zurück wandeln kann.

lg Burnswigg

J
40 Beiträge seit 2007
vor 17 Jahren

ja darum kanst du in auf dem server als String abspeichern

wenn der Client sich anmeldet wird sein PW als Hash an den Server geschikt und der Server erstellt auch ein Hast aus dem String auf der DB und vergleicht beide.

2.082 Beiträge seit 2005
vor 17 Jahren

Hallo Burnswigg,

Hash ist aber sicherer. Du speicherst einfach den Hashwert des PWs beim anlegen des Benutzers in die Datenbank. Wenn der Benutzer sich anmelden will, lässt du dir den Hash vom Passwort geben und vergleichst diesen mit dem der Datenbank.

Du kannst ja so etwas einbauen wie "Passwort zurücksetzen" und schickst dem User dann eine Mail mit dem neuen PW. Dieser kann das PW dann in seinen Einstellungen wieder ändern.

//Edit: zu spät X(

Es ist toll jemand zu sein, der nichts von der persönlichen Meinung Anderer hält. - frisch-live.de

Burnswigg Themenstarter:in
211 Beiträge seit 2005
vor 17 Jahren

Ok danke für die zahlreichen Infos

lg Burnswigg

B
1.529 Beiträge seit 2006
vor 17 Jahren

Aber bitte den Hash nicht so erstellen:

Original von jstolz

string test = "test";  
int hashCode = test.GetHashCode();  

Sondern:

string test = "test";
byte[] hash = (new SHA512Managed()).ComputeHash( Encoding.GetBytes( test ));