emmatoday | 7 years ago | on: Ryanair, Hamiltonian Cycles, and using graph theory to find cheap flights
emmatoday's comments
emmatoday | 7 years ago | on: Drawpile is a free software collaborative drawing program
I only wish it supported pen pressure on Linux.
emmatoday | 8 years ago | on: Ask HN: What are your impressions for using 1 big curved monitor for programming?
emmatoday | 8 years ago | on: ADSL over wet string
emmatoday | 8 years ago | on: Google Will Retool User Security in Wake of Political Hack
emmatoday | 8 years ago | on: Google Will Retool User Security in Wake of Political Hack
My simplified understanding is that it works like this:
The first step is registration of the authenticator with the site. The site sends a registration request to the authenticator. The authenticator generates a new key pair. It encrypts the private key with a symmetric key that never changes and never can be extracted from the authenticator. Then it sends a registration response to the site, which includes BOTH the public key and the encrypted private key. The site is responsible for keeping the keys.
Then you are ready to authenticate. The site sends a challenge request to the authenticator which is unique and probably has an expiration time. Inside the challenge is the encrypted private key. The authenticator uses the never changing symmetric key to decrypt the private key, sign the challenge, and return it to the site. Then the site checks the signature against the public key on file.
The key benefit here is that the browser will not allow a site to send a challenge which is not for it's own domain. Which means there is no way a phishing site can MITM the 2FA process. Even if they get a challenge from the real site, the browser won't let them present it to the authenticator to sign. As opposed to TOTP where the OTPs can be easily phished and used within the time window they are valid.