Einzelnen Beitrag anzeigen

Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#9

Re: Schlüssel austausch

  Alt 21. Aug 2007, 21:40
Zitat:
Zwar habe ich eine Funktion um int64 Zahlen zu potenzieren, aber dieser Funktion geht sehr schnell die Puste aus,
http://www.delphipraxis.net/internal...+exponentation
http://www.delphipraxis.net/internal...=exponentation
http://www.delphipraxis.net/internal...ation&start=10

einfach mal durchlesen

Zitat:
Sieht so aus als könnte die ein Passwort abhörsicher übertragen
Nicht nur das, sondern sie macht es auch. Dh. du versendest deine verschlüsselte Daten mit dem SRP und diese Daten sind ein Passwort. Nur macht das SRP ja schon von Hause aus intern aber viel besser. Man tauscht nämlich garkein Passwort aus sondern Client und Server berechnen in parallel ein gemeinsammes und zufälliges Passwort.
Du musst also garnicht ein Passswort austauschen sondern sendest mit dem SRP Interface einfach verschlüssselte Daten. Meine SRP Source machen den Rest

1.) Authentifikation vom Client->Server und Server->Client ohne das das Benutzerpasswort real übertragen wird
2.) Berechnung eines zufälligen Passwortes auf Server und Client Seite ohne das nutzbare Daten übertragen werden
3.) Verschlüsselung des nachfolgenden Datenverkehrs mit sicheren Verfahren

In Punkt 1.) und 2.) werden die Information nur so übertragen das ein Lauscher mit mathematischer Beweisbarkei nicht in der Lage ist irgendwas an Information zu erlangen.

Meine SRP-6 Änderungen zum Original macht aber noch mehr

1.) bei jedem Login wird nach erfolgreichem Ablauf des Protokolls ein neuer Passwort-Verify zum Benutzer in der Server-DB gespeichert.
2.) bei jedem Login kann also der Benutzer selbst sein Passwort verändern ohne das der Server das mitbekommt. Also der Server kann nicht mitbekomme ob der Benutzer das alte Passwort als Neues weiterbenutzt oder ob real ein Neues Passwort registriert wurde.
3.) SRP kann ein Account-Limit besitzen, bzw. es gibt einen nicht manipulierbaren Counter für jeden Login. Wird dieser Counter im LOgin Dialog angezeit so hat der Benutzer ein visuelles Feadback ob sein Passwort per Brute Force oder KeyLogger geknackt wurde. Das funktioniert dann so das der Benutzer bemerkt das der aktuelle Counter um > +1 inkrementiert wurde. Das bedeutet eine andere Person hat sich in der Zwischenzeit angemeldet. Daraufhin schlägt entweder der Login fehl, weil der Angreifer das Passwort gestohlen hat und auch ein neues definiert hat. Man muß den Serveradmin informieren. Oder der Angreifer hat das gleiche Passwort weiterbenutzt. In diesem Moment kann der reguläre Benutzer dies erkennen und sofort ein neues Passwort registrieren. Und der Angreifer muß erneut dieses Passwort ausspionieren.

Alles drei erhöht die Verfahrenssicherheit. Also nicht die Sicherheit der Mathematik dahinter sondern die Benutzungssicherheit durch den Benutzer und Server.

Es gibt nur drei Angriffsstellen

1.) Angriff auf den Benutzer, sprich Computer, sprich Trojaner um das Passwort zu ermitteln
2.) Brute Force auf das Passwort, das lässt sich aber sicher ausschließen wenn das Passwort gut gewählt wurde und wenn der Server nach x'maligem falschen Login den Account sperrt oder ähnliche Aktionen folgen lässt.
3.) den Registrationsprozess ! Also die allererste Vereinbarung eines Accounts. Nur die Authentifikation durch eine dritte Partei kann dieses Problem lösen. Normalerweise sendet der Server eine EMail mit dem 1. Registrationskey mit der Aufforderung sofort das richtige Passwort zu definieren. Man könnte diese Mail abfangen und dieser Angreifer könnte den Account aktivieren. Allerdings hätte dann der reguläre Benutzer keinen Zugriff mehr, er kan sich also nicht merh freischalten und wird diese Problem dem Serveradmin melden. Man detektiert also solche Angriffe.

Alle drei Angriffe funktionieren mit allen bekannten Softwareverfahren !! Sie sind also nicht SRP typisch.

Die einfache Benutzung meiner SRP-Implementation darf nicht darüber hinwegtäuschen das noch einiges an Arbeit getan werden muß auf Serverseite um es wirklich sicher zu bekommen. Aber dann ist es wirklich sicher. Mir würde dann kein Angriff mehr einfallen der noch praktikabel wäre.

Der Vorteil zu allen anderen Verfahren ist halt das ein PC, ein Passwort und der SRP Code als Software ausreicht. Bei anderen Verfahren benötigt man noch digitale Zertifikate die als Dateien oder in der Registry gespeichert sein müssen. Auch diese benötigen ein Passswort für ihren Schutz das man sich merken muß. Oder man benötigt einbruchsichere extra Hardware wie USB Dongles, SmartCards, RSA TokenID usw. usw.

Gruß Hagen

[edit]
Übrigens basiert SRP auf DH.
[/edit]
  Mit Zitat antworten Zitat