Frage

Über das SRP -Protokoll:http://en.wikipedia.org/wiki/secure_remote_password_protocol

Ich kann sehen, dass die Generation des Sitzungsschlüssels (K) vollkommen sicher ist, aber im letzten Schritt sendet der Benutzer den Nachweis von k (m). Wenn das Netzwerk unsicher ist und der Angreifer in den Midlle erfasst M, könnte er sich authentifizieren, ohne K. richtig zu haben?

War es hilfreich?

Lösung

Ein kleiner Hintergrund

Bekannte Werte (vorher festgelegt):

  n    A large prime number. All computations are performed modulo n.
  g    A primitive root modulo n (often called a generator).

Das Benutzerkennwort wird als:

x = H(s, P)
v = g^x 

  H()  One-way hash function
  s    A random string used as the user's salt
  P    The user's password
  x    A private key derived from the password and salt
  v    The host's password verifier

Die Authentifizierung:

+---+------------------------+--------------+----------------------+
|   | Alice                  | Public Wire  | Bob                  |
+---+------------------------+--------------+----------------------+
| 1 |                        |        C --> | (lookup s, v)        |
| 2 | x = H(s, P)            | <-- s        |                      |
| 3 | A = g^a                |        A --> |                      |
| 4 |                        | <-- B, u     | B = v + g^b          |
| 5 | S = (B - g^x)^(a + ux) |              | S = (A · v^u)^b      |
| 6 | K = H(S)               |              | K = H(S)             |
| 7 | M[1] = H(A, B, K)      |     M[1] --> | (verify M[1])        |
| 8 | (verify M[2])          | <-- M[2]     | M[2] = H(A, M[1], K) |
+---+------------------------+--------------+----------------------+

    u    Random scrambling parameter, publicly revealed
  a,b    Ephemeral private keys, generated randomly and not publicly revealed
  A,B    Corresponding public keys
  m,n    The two quantities (strings) m and n concatenated
    S    Calculated exponential value 
    K    Session key

Die Antwort auf Ihre Frage:

Wie Sie sehen können, berechnen beide Parteien K (= den Sitzungsschlüssel) getrennt, basierend auf den für jede von ihnen verfügbaren Werten.
Wenn Alices Passwort p, das in Schritt 2 eingegeben wurde, dem, den sie ursprünglich zum Generieren von V verwendet hat, übereinstimmt, dann stimmen beide Werte von S überein.

Der tatsächliche Sitzungsschlüssel K wird jedoch nie über den Kabel gesendet, nur der Beweis, dass beide Parteien denselben Sitzungsschlüssel erfolgreich berechnet haben. Ein Mann in der Mitte könnte den Beweis wiedergeben, aber da er nicht über den tatsächlichen Sitzungsschlüssel verfügt, könnte er nichts mit den abgefangenen Daten tun.

Andere Tipps

Der Beweis ist nur für ein bestimmtes k gültig.

Ohne MITM:

Alice <-K-> Bob

Alice produziert einen Beweis für K und Bob akzeptiert ihn

Mit MITM:

Alice <-K1-> Eve <-K2-> Bob

Alice produziert einen Beweis für K1, aber als Eve ihn Bob vorstellt, akzeptiert er ihn nicht, weil es nicht zu K2 passt.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top