iconThe FIDO Solution

How FIDO Works

  • FIDO combines hardware, software and internet services to provide a secure user experience.

    icon

    icon FIDO Authenticators

    A FIDO user will have a FIDO Authenticator or token that they chose or was given to them. This could be any authenticator type that supports FIDO such as a built-in finger scan or a USB memory drive with a password. Users may pick the authenticator type that best suits their needs.

    FIDO Authenticators will come in two basic variations.

    • Identification tokens will be unique identifiers that can be connected to the user’s internet accounts. Once they are connected to the account, they will be transparently presented each time the account is accessed as an identifier without the user needing to anything else. This will provide single factor authentication.
    • Authentication tokens can ask the user to perform an explicit action to prove it is really the token owner. These actions could include entering a password, PIN or finger swipe. These authenticators will provide two factor authentication with the token being “something you have” and the password being “something you know” or the biometric being “something you are”.

    When the user connects their FIDO Authenticator to an online account, a relationship is established between the Authenticator, the Relying Party and the Validation Cache. Once the relationship is created the Authenticator and the Validation Cache will only exchange one time passwords (OTP) to validate the other party in communication. Because OTPs are used only once, they cannot be used for replay attacks if someone is capturing communication in a compromised system or by listening to internet traffic.

    Each authenticator will have an embedded identifier and seed value that will allow it to be uniquely identified and validated. FIDO Authenticator will encrypt traffic onboard the Authenticator. So, while a machine may be compromised by malware the identity of the FIDO Authenticator can still be trusted.

icon icon Browser Plugin

Browsers on the user’s system will have a FIDO plugin. The plug-in will recognize available FIDO Authenticators that are connected to the user’s system. This includes built-in authenticators and USB authenticators that are dynamically inserted.

When the user connects to an internet site the presence of the FIDO Authenticator will be reported to the site as part of the browser information. FIDO-enabled websites will recognize the presence of the authenticator and respond accordingly. The use of FIDO information and triggering authentication challenges is controlled by the Relying party.

The FIDO plug-in will be made available through a variety of channels including:

  • Browser Add-On - The browser developers will have this as an add-on that users can download to plug into their browser.
  • FIDO authenticators – If a user buys a FIDO authenticator to add to their computer it can come with the plug-in. For example, a FIDO USB memory drive could have the plug-in software on it.
  • System Vendors – System vendors can distribute the plug-in with new machines and include the plug-in when they push out software updates to existing machines. These updates will allow existing machines with suitable hardware to be FIDO enabled.

icon Device Specific Module

The Device Specific Module (DSM) interfaces with the Browser Plug-in on one side and with the FIDO Token hardware on the other. The DSM maps commands from the plug-in into commands that are specific to the token type. The DSM allows the Browser Plug-in to be generic and support a wide variety of token types. The DSM also allows token vendors to focus only on building their token specific content rather than needing to build an entire software stack.

icon Relying Party / Website

As the name says, the Relying Party relies on the token validation to be secure. Websites and network applications are “Relying Parties”.

The website is responsible for recognizing the presence of a FIDO token and whether it is already connected to an account or if the user should be offered the chance to connect a new token to their account.

For example, a recognized token that has an account associated would cause an additional notification like “Login with FIDO” to be added to the login page. Or if the token was a recognized finger scan token, the message could be “swipe your finger for FIDO login”.

Depending on the Relying Party’s policy, the user preferences and account history Identification tokens can greatly simplify login. A website could choose to simply recognize a returning user and show a “Welcome back Debbie!” instead of a login box, based only on the FIDO token information. Of course, the user may want to opt in/out of this behavior and the Relying Party will need to decide how risky it might be for the account.

icon icon Validation Cache

The Validation Cache will check the encrypted information and one time passwords from the tokens to ensure that a token is not being spoofed. The Relying Party will use the Validation Cache to check information that it receives from each token.

Note that the Validation Cache is at the Relying Party's website so that the response is immediate and not subject to internet delays or attacks. The Validation Cache will regularly pull updates from the Repository to get new token information as the tokens are produced by the vendors.

icon icon FIDO Repository

A FIDO Repository is a clearinghouse for token information. The Repository receives new token information from the token vendors when the tokens are created. This information will allow the validation of the unique OTP stored in each new token. The Repository will regularly update the Validation Cache at each website that uses FIDO. Repositories will support many website and will be replicated to ensure contined service. A website may use more than one Repository.

A FIDO Repository will coordinate with token vendors to ensure that current token information is available. The Repository will make it easier for websites to enable FIDO because they won’t need coordination with every token vendor. By connecting to a repository this coordination and current token information will be handled already.

icon Use Cases

User Binding

User Authentication Experience:

Once the user has connected their Token to a web account they can use FIDO instead of an account id and password. The following shows three example experiences but there will be a wide variety of FIDO tokens that will provide similar experiences.

icon Finger Scan Experience
icon icon icon icon Password Protected Token Experience
A user goes to a website that they have connected to their password-protected authenticator. This could be a USB token or could be built into their system on the motherboard. The browser information tells the website that the user has a FIDO password token available for authentication, so the website customizes the page to tell the user that FIDO is an option. The website could present a message like “Click here for secure FIDO Login”.

When the user clicks the “FIDO Login” button, the plug-in will pop up a secure local window (not a browser window) for the user to enter the password for their token. This password is to locally unlock the FIDO token. This password should not be accessible by the web browser and should only be sent to the token.

The FIDO authenticator validates the password. The global unique token id and a user identifier for the token is encrypted and sent back to the website through the Device Specific Module and plug-in.

The website validates the information from the token through the Validation Cache The website looks up the user’s account based on the global unique id and user id. Then the user is logged into their account. This login will be a two factor login because having the token is one factor and knowing the password is a second factor. If the user has connected their token to more than one account the website will ask the user which account they would like to access.

icon icon icon icon ID Token Experience