2011-01-09 8 views
8

Ich arbeite derzeit an einem Projekt, die Authentifizierung von Benutzern sicher umfasst. Ich habe viel über SRP gelesen und es immer noch nicht geschafft, meine Kernkonzepte zu verstehen. Ich wäre dankbar, wenn Sie die Idee und Umsetzung von SRP in Laien erklären könnten.Sichere Remote-Passwort (SRP) in Laien Begriff

Hinweis: Bitte posten Sie keine Links zu Webseiten über SRP, da ich sicher bin, dass ich die meisten von ihnen gegoogelt und gelesen habe; es sei denn, es ist ein Papier, das SRP in einer klaren Sprache erklärt.

Antwort

9

Starten Sie mit beiden Parteien bereits ein Passwort vereinbart haben.

Im ersten Teil des Protokolls, erzeugen beide Seiten eine Zufallszahl und verwenden einige saubere Mathematik, die dieses und das Passwort beinhaltet, um ein zufälliges gemeinsames Geheimnis zu vereinbaren. Dies geschieht so, dass es jedes Mal anders ist (auch wenn das Passwort dasselbe ist), niemand, der auf dem Kabel hört, kann das gemeinsame Geheimnis bestimmen, und es funktioniert nur, wenn beide Seiten das Passwort kennen. (Die betreffende Mathematik basiert auf dem diskreten Logarithmusproblem, das eng mit Diffie-Hellman zusammenhängt.) Die Parteien erklären sich dann gegenseitig, dass sie sich beide auf das gleiche gemeinsame Geheimnis geeinigt haben (dh beide kennen das Passwort)), wieder ohne es jemandem zu offenbaren. Dies erfordert mehr (andere) saubere Mathematik.

Sofern beide Seiten davon überzeugt sind, dass sie das gleiche gemeinsame Geheimnis haben, können sie daraus Sitzungsschlüssel ableiten und mit der Wahl ihrer Chiffre kommunizieren.

+0

also, speichern sie irgendwo das vereinbarte "Passwort"? Kann das Passwort kompromittiert werden? – Anup

+0

Der Server speichert nur einen Datenblock, der vom Passwort abgeleitet ist. Die verwendeten Mechanismen bedeuten, dass es nicht möglich ist, das Passwort aus dem Datenblock zu bestimmen, noch kann der Datenblock verwendet werden, als wäre es das Passwort. – crazyscot

+0

Also ist das effektiv (aus einer Blackbox Perspektive) zu mir mit einem KDF zu einem öffentlich-privaten Schlüsselpaar zu generieren, die öffentliche Hälfte an den Server zu geben, dann mit Standard-Authentifizierung mit öffentlichen Schlüsseln, um zukünftige Verbindungen zu authentifizieren? – Ajedi32