• caglararli@hotmail.com
  • 05386281520

In SRP, why must the client send the A number before the server sends the B number?

Çağlar Arlı      -    5 Views

In SRP, why must the client send the A number before the server sends the B number?

In SRP, an authentication exchange starts with the client and server generating nonces a and b, and sending their public variants (A = g^a % N and B = (v + g^b) % N) to the other party. However, reading RFC2945, it is quite adamant that

The host MUST send B after receiving A from the client, never before.

I'm struggling to understand why this is, and as far as I can tell, the RFC doesn't explain the requirement further.

Since a and A are effectively just random numbers, sending A before receiving the B number doesn't impose any onerous requirement on the client. If, as a malicious client, I wanted to get a thousand B numbers from the server, I'd just send a thousand A numbers and it wouldn't cost me anything of note. And even if I did, I can't see what I would gain from it.

Is there an explanation for this requirement?