Replies: 2 comments 5 replies
-
As I understand it you need step 1 so that step 2 isn't a fixed target. If you only have step 2, it is no more secure than a username, password with a long complex password. Step 1 ensures the attacker can't use the results of previous authentication attempts as an indication of whether the next attempt will be successful. |
Beta Was this translation helpful? Give feedback.
-
I think it is in place so a compromised connection, either residing on the server side (ie. behind a load balancer) or client side (compromised browser/OS), or even holding on to already encrypted TLS traffic, could replay a registration request even after a user deletes their account. I also think this gives the server one more opportunity to control the account creation flow without the potentially costly operations involved with validating attestation data, but that's less of a concern for this library. |
Beta Was this translation helpful? Give feedback.
-
According to this guide, the challenge issued by the server during Step 1 of the registration ceremony prevents replay attacks. But the way I implemented my server, in Step 2 I check to make sure the credential ID doesn’t already exist, and I create a new User record.
An attacker who replayed Step 2 would get an error. It doesn’t seem like it would be a useful exploit.
Beta Was this translation helpful? Give feedback.
All reactions