150 likes | 318 Views
Seminar “Verteilte Systeme und Netzwerkmanagement”. Secure Remote Password. Ein Authentifizierungs- und Schlüsselaustauschsystem Moritz Bunkus 20. Februar 2001. Secure Remote Password. Traditionelle Authentifizierungsverfahren:. Benutzer/ Client. Rechner/ Server. Username.
E N D
Seminar “Verteilte Systeme und Netzwerkmanagement” Secure Remote Password Ein Authentifizierungs- und Schlüsselaustauschsystem Moritz Bunkus 20. Februar 2001
Secure Remote Password Traditionelle Authentifizierungsverfahren: Benutzer/ Client Rechner/ Server Username Ack/Passwort bitte Passwort Ok/Falsches Passwort • Beispiele: • Login an einem Unix-Rechner • FTP • Telnet • POP3 (E-Mail) Seite 1
Secure Remote Password • Weitere Möglichkeiten: • Stimmvergleich • Netzhautscan • Smartcards • Nachteil dieser Möglichkeiten: technisch aufwändig Nachteil der Passwortmethode: Das Passwort wird über das Netzwerk geschickt. Daher muss es gut geschützt werden. Telnet, FTP und POP3 verschicken das Passwort aber nur unverschlüsselt. Seite 2
Secure Remote Password Challenge-Response-Verfahren: Benutzer/ Client Rechner/ Server Username, Random Ack, Random (Challenge) Berechne Response Berechne Response und vergleiche Response = f(Passwort, Challenge) Ok/Falsches Passwort Anfällig gegen dictionary attacks. Seite 3
Secure Remote Password Diese Verfahren sind plaintext equivalent: das Passwort oder ein daraus abgeleiteter Wert wird auf dem Server gespeichert. verifier based: nur der öffentliche Schlüssel eines asymmetrischen Schlüsselpaares wird auf dem Server gespeichert. Seite 4
Secure Remote Password AKE: asymmetrisches Schlüsselaustauschprotokoll mit zwei Schlüsselpaaren x,z private Schlüssel w,y Einmalschlüssel P(x) Einwegfunktion, z.B. eine Hash-Funktion (MD5, SHA) Q(x,y) und R(x,y) Mischfunktionen für private und öffentliche Parameter S(x,y) Funktion zur Erzeugung des Sitzungsschlüssels K Der Sitzungsschlüssel selber Voraussetzung für die Funktionstüchtigkeit: Seite 5
Secure Remote Password Ablauf des Protokolls: Client Server P(x) P(z) wählt sein Passwort x wählt sein Passwort z P(w) P(y) wählt zufälliges w wählt zufälliges y berechnet K=S(R(P(y),P(z)),Q(w,x)) berechnet K=S(R(P(w),P(x)),Q(y,z)) Diese beiden K sind gleich. Seite 6
Secure Remote Password SRP Berechnungen erfolgen im Galois-Feld GF(n): alle Operationen modulo n Einwegfunktion: P(x) = gx Q(w,x) = w + ux R(w,x) = wxu S(w,x) = wx u = f(w,x), wobei f eine Zufallsfunktion ist (z.B. SHA1) Seite 7
Secure Remote Password • Passwortgenerierung: • Client wählt sein Passwort P und einen Zufallswert s (das Salz) • berechnet x = H(s,P) (x ist das private Passwort, H eine • Hashfunktion) • berechnet den Verifier v = gx • Server speichert den Verifier v und das Salz s. Seite 8
Secure Remote Password Ablauf des Protokolls: Client Server Username holt v und s aus der Datenbank 1) s priv. Schlüssel x = H(s,P) 2) öff. Schlüssel A zufälliges a; A = ga 3) öff. Schlüssel B zufälliges b; B = v + gb 4) 5) S = (B - gx)a + ux S = (Avu)b Sitzungsschlüssel: K = H(S) Sitzungsschlüssel: K = H(S) 6) M1 7) M1 = H(A,B,K) Überprüfung von M1 M2 8) Überprüfung von M2 M2= H(A,M1,K) Seite 9
Secure Remote Password Beide S sind gleich: SClient = (B - gx)a + ux B = v + gb = (v + gb - gx)a + ux v = gx = (gb)a + ux = gba + bux A = ga SServer = (Avu)b = (gavu)b v = gx = (ga(gx)u)b = (ga + ux)b = gba + bux Seite 10
Secure Remote Password Sicherheitsanforderungen: • Keine Informationen über Passwort P oder Sitzungsschlüssel K aus Nachrichtenverkehr ableitbar. • Aus entwendetem Passwort P dürfen keine alten Sitzungsschlüssel ableitbar sein. • Aus entwendetem Sitzungsschlüssel K darf das Passwort P nicht ableitbar sein. • Ein Lauscher darf sich nicht als Client oder Server ausgeben können. • Aus entwendetem Verifier v darf das Passwort P nicht ableitbar sein. Seite 11
Secure Remote Password • SRP ist sicher: • auf Diffie-Hellman reduzierbar • Berechnung des diskreten Logarithmus nötig, um aus • v = P(x) = gxdas x zu bestimmen. Seite 12
Secure Remote Password Geschwindigkeit Optimierung durch Verwendung von nur vier Nachrichten: C S Username, A C S s, B C S M1 C S M2 Zeitvergleich auf einer SUN ULTRASparc-1 mit 167 MHz: plaintext equivalent verifier based Seite 13
Secure Remote Password • Vorhandene Produkte: • verschiedene Telnet- und SSH-Clients für UNIX/Windows/MAC • ein Dateisystem • ein Online-Rollenspiel • der FTP-Server ProFTPD Weitere Informationen unter: http://www-cs-students.stanford.edu/~tjw/srp/ Seite 14