Domande sull'algoritmo SRP

1

Sto cercando di usare l'algoritmo SRP ma ho alcune domande:

  1. È una buona scelta da utilizzare per l'algoritmo di registrazione e autorizzazione SRP con SSL / TLS? E per tutte le altre trasmissioni che utilizzano solo SSL / TLS? Userò C # Sockets per l'implementazione.

  2. Come generare g, k, N? È sicuro usare queste costanti come app?

  3. È corretto l'algoritmo SRP?

    //M-modulus, g-generator, k-multiplier, I-username, p-password, s-salt, v-pass verifier

    Registration:

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

    sendToServer(I, s, v);

    Server: save(I, s, v);

    Authorization:

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

    sendToServer(I, A);

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

    sendToClient(B, s);

    u = Hash(A, B);

    if(u == 0) abortConnection();

    Client: 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);

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

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

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

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

    if(Rc == Rs) ALL_OK();

posta user2274492 15.02.2015 - 23:53
fonte

0 risposte

Leggi altre domande sui tag