Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add to sec cons a brief discussion of the sec properties accrued by authnr & client platform proximity #1257

Closed
equalsJeffH opened this issue Jul 10, 2019 · 3 comments · Fixed by #1333
Assignees
Labels
priority:low security-tracker Group bringing to attention of security, or tracked by the security Group but not needing response. stat:pr-open type:editorial

Comments

@equalsJeffH
Copy link
Contributor

Add to sec cons a brief discussion of the sec properties accrued by authnr & client platform proximity

@equalsJeffH equalsJeffH added this to the L2-WD-02 milestone Jul 10, 2019
@equalsJeffH equalsJeffH self-assigned this Jul 10, 2019
@emlun
Copy link
Member

emlun commented Jul 11, 2019

I don't think the main concern is spatial proximity, but rather that the communication with the authenticator must be mediated by the user's client so that it can enforce origin restrictions. The example brought up on yesterday's WG call was using network-based transports to communicate with the authenticator, much like using a mobile push notification as 2nd factor.

Consider an authentication flow like this:

  1. Alice goes to log in on example.com.
  2. example.com sees that Alice has 2FA enabled, and sends a push notification to Alice's mobile phone.
  3. Alice's phone prompts for confirmation to log in to example.com, Alice confirms.
  4. The phone signs the challenge in the notification and returns the signature to the server.
  5. example.com receives the challenge signature and allows Alice to log in.

This architecture is vulnerable to phishing:

  1. A phishing attack lures Alice to try to log in on evil.com.
  2. evil.com uses Alice's username and password to start login on example.com.
  3. example.com sees that Alice has 2FA enabled, and sends a push notification to Alice's mobile phone.
  4. Alice's phone prompts for confirmation to log in to example.com, Alice confirms.
  5. The phone signs the challenge in the notification and returns the signature to the server.
  6. example.com receives the challenge signature and allows Alice to log in.
  7. evil.com receives Alice's session cookie and now has control over her account.

example.com could thwart this attack by requiring a cookie-based secret in addition to the mobile push, but that won't work for initial sign-in with no pre-existing state. The push notification can of course include some details (e.g., geo-IP) about the client that initiated it, but the strength of WebAuthn's phishing protection is that it doesn't rely on the user noticing something wrong. That protection only works if the client can tell the authenticator what domain the user is currently visiting.

I'm guessing browser extensions like Krypton can get around this during installation by setting up a long-lived session between the extension and Krypton's server, so that their server can refuse to send the push notification if initiated from anywhere else than the user's registered browser, so that the browser can enforce the origin restrictions.

@nickmooney
Copy link

I'm definitely curious to hear if folks feel that proximity is a factor that provides phishing resistance properties. I've heard that reasoning more than once, but I'm not sure I understand the claim.

The architecture @emlun describes above is definitely vulnerable to phishing. I would assume that, in the case of a network-based transport, the WebAuthn client would still be required to do the domain checking that it does with the other transports. In my mind the browser would still act as the client in such a case, rather than push notifications being triggered by the RP.

Concerns about phishing can be mitigated by some sort of channel binding between the browser and the authenticator, or by placing trust in the cloud service that manages the push notifications. Both approaches have their own advantages and drawbacks.

@emlun emlun added the security-tracker Group bringing to attention of security, or tracked by the security Group but not needing response. label Oct 21, 2019
@emlun emlun self-assigned this Oct 22, 2019
@equalsJeffH
Copy link
Contributor Author

@emlun's analysis of the phishability of the architecture outlined in his #1257 (comment) seems overall correct (on quick skim)

The original thrust of this issue is "authnr & client platform proximity" which is a not-so-clear way to say "authnr & client secure channel establishment via a non-MITM-able non-evesdropable channel, e.g., one requiring physical proximity, eg the authnr scanning a local-client-displayed QR code containing iniital key seeds/shares, or, the client and authnr communicating over physical USB connection (and sharing keys), or over NFC (and sharing keys)." I.e., this is how caBLE's handshake's security guarantees are established.

@emlun emlun modified the milestones: L2-WD-02, L2-WD-03 Nov 6, 2019
akshayku pushed a commit that referenced this issue Feb 19, 2020
…uthnr & client platform proximity (#1333)

* Add security consideration on client-authnr direct communication

See issue #1257
#1257

* Address @equalsJeffH's review comments

* Add missing CSS class .figure-num-previous

* Rewrite proximity section shorter and discuss benefits of physical proximity

* Add commas suggested by @agl

Co-Authored-By: Adam Langley <agl@google.com>

Co-authored-by: Adam Langley <agl@imperialviolet.org>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
priority:low security-tracker Group bringing to attention of security, or tracked by the security Group but not needing response. stat:pr-open type:editorial
Projects
None yet
4 participants