I've been reading up on different authentication protocols recently while I implemented the sign-in functionality for my website. Many of the suggested methods password-based authentication seem to either rely on non-quantum safe maths (eg. ECC, DH, SRP), or be really complex (eg. aPAKEs), or offer slightly reduced security in my eyes (eg. SCRAM).
I'm especially interested in the password-based authentication protocols as they are the ones that I have this issue with.
Question:
How could one design a password-based authentication protocol that satisfies the following constraints?
- It's relatively easy to understand the protocol.
- The protocol is quantum safe.
- The data needed to pass a future authentication challenge shouldn't be stored on the server or sent by the client (besides possibly during initial registration).
Maybe there are existing protocols that comes to mind?
Edit:
What I meant with constraint 3 is that it seems like an unnecessary vulnerability for the server to have access to all data needed to pass a future authentication challenge. E.g. in SCRAM the server gets access to the clientKey
which is all that's needed to pass all future challenges as the client. If the server security is not perfect then a potential attacker could get access to this data as well and impersonate the client. I know that some data will always have to be stored, but it would be better if the data had more limited usability to a potential attacker.