Preguntas sobre el algoritmo SRP

1

Intento usar el algoritmo SRP pero tengo algunas preguntas:

  1. ¿Es una buena opción para usar para el algoritmo SRP de registro y autorización con SSL / TLS? ¿Y para todas las demás transmisiones usando solo SSL / TLS? Usaré C # Sockets para la implementación.

  2. ¿Cómo generar g, k, N? ¿Es seguro usar estas constantes de aplicación similares?

  3. ¿Es correcto ese algoritmo SRP?

      

    // Módulo M, generador g, multiplicador k, nombre de usuario I, contraseña p, s-salt, verificador de v-pass

         

    Registro :

         

    Cliente: s = randomString (); x = Hash (s, p); v = g ^ x% N;

         

    sendToServer (I, s, v);

         

    Servidor: guardar (I, s, v);

         

    Autorización:

         

    Cliente: a = random (); A = g ^ a% N;

         

    sendToServer (I, A);

         

    Servidor: if (A! = 0) {b = random (); B = k * v + g ^ b% N;}

         

    sendToClient (B, s);

         

    u = Hash (A, B);

         

    if (u == 0) abortConnection ();

         

    Cliente: if (B == 0) abortConnection ();

         

    u = Hash (A, B);

         

    if (u == 0) abortConnection ();

         

    x = Hash (s, p);

         

    S = ((B - k * (g ^ x% N)) ^ (a + u * x))% N;

         

    K = Hash (S);

         

    Mc = Hash (Hash (N) XOR Hash (g), Hash (I), s, A, B, K);

         

    sendToServer (M);

         

    Servidor: S = ((A * (v ^ u% N)) ^ B)% N; K = Hash (S);

         

    Ms = Hash (Hash (N) XOR Hash (g), Hash (I), s, A, B, K);

         

    si (Mc == Ms) {Rs = Hash (A, M, K); sendToClient (Rs);}

         

    Cliente: Rc = Hash (A, M, K);

         

    if (Rc == Rs) ALL_OK ();

pregunta user2274492 15.02.2015 - 23:53
fuente

0 respuestas

Lea otras preguntas en las etiquetas