Changes

Jump to: navigation, search

Identity/AttachedServices/KeyServerProtocol

463 bytes added, 23:53, 8 August 2013
SRP Notes: reminder: A and B must not be zero
The server receives "A" in /auth/finish, computes the shared secret "S", computes M1, checks that the client's M1 is correct, then derives the shared session key K. It then allocates a token (of the requested type) and encrypts keyFetchToken+sessionToken as described below, returning the encrypted/MACed bundle in the response to /auth/finish.
 
On the server, it is critical to reject an "A" value that is 0, or some other multiple of N. If the server does not check this, anybody can trivially sign in to any account without knowing the password. Likewise, it is critical for the client to reject a "B" value where B%N==0. If the client does not check this, the server (or an attacker pretending to be the server) will get a value that can be used in an offline brute-force search for the user's password.
Outstanding crypto questions:
Confirm
471
edits

Navigation menu