Abstract

This document defines all the strings and constants reserved by UAF protocols. The values defined in this document are referenced by various UAF specifications.

Status of This Document

This section describes the status of this document at the time of its publication. Other documents may supersede this document. A list of current FIDO Alliance publications and the latest revision of this technical report can be found in the FIDO Alliance specifications index at https://www.fidoalliance.org/specifications/.

This document was published by the FIDO Alliance as a Proposed Standard. If you wish to make comments regarding this document, please Contact Us. All comments are welcome.

Implementation of certain elements of this Specification may require licenses under third party intellectual property rights, including without limitation, patent rights. The FIDO Alliance, Inc. and its Members and any other contributors to the Specification are not, and shall not be held, responsible in any manner for identifying or failing to identify any or all such third party intellectual property rights.

THIS FIDO ALLIANCE SPECIFICATION IS PROVIDED “AS IS” AND WITHOUT ANY WARRANTY OF ANY KIND, INCLUDING, WITHOUT LIMITATION, ANY EXPRESS OR IMPLIED WARRANTY OF NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.

This document has been reviewed by FIDO Aliance Members and is endorsed as a Proposed Standard. It is a stable document and may be used as reference material or cited from another document. FIDO Alliance's role in making the Recommendation is to draw attention to the specification and to promote its widespread deployment.

Table of Contents

1. Notation

Type names, attribute names and element names are written as code.

String literals are enclosed in “”, e.g. “UAF-TLV”.

In formulas we use “|” to denote byte wise concatenation operations.

UAF specific terminology used in this document is defined in [FIDOGlossary].

1.1 Key Words

The key words “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”, “SHOULD”, “SHOULD NOT”, “RECOMMENDED”, “MAY”, and “OPTIONAL” in this document are to be interpreted as described in [RFC2119].

2. Introduction

This document is the FIDO Alliance glossary of normative technical terms.

This document is not an exhaustive compendium of all FIDO technical terminology because the FIDO terminology is built upon existing terminology. Thus many terms that are commonly used within this context are not listed. They may be found in the glossaries/documents/specifications referenced in the bibliography. Terms defined here that are not attributed to other glossaries/documents/specifications are being defined here.

This glossary is expected to evolve along with the FIDO Alliance specifications and documents.

3. Definitions

AAID

Authenticator Attestation ID. See Attestation ID.

Application

A set of functionality provided by a common entity (the application owner, aka the Relying Party), and perceived by the user as belonging together.

Application Facet

An (application) facet is how an application is implemented on various platforms. For example, the application MyBank may have an Android app, an iOS app, and a Web app. These are all facets of the MyBank application.

Application Facet ID

A platform-specific identifier (URI) for an application facet.

  • For Web applications, the facet id is the RFC6454 origin [RFC6454].
  • For Android applications, the facet id is the URI android:apk-key-hash:<hash-of-apk-signing-cert>
  • For iOS, the facet id is the URI ios:bundle-id:<ios-bundle-id-of-app>
AppID

The AppID is an identifier for a set of different Facets of a relying party's application. The AppID is a URL pointing to the TrustedFacets, i.e. list of FacetIDs related to this AppID.

Attestation

In the FIDO context, attestation is how Authenticators make claims to a Relying Party that the keys they generate, and/or certain measurements they report, originate from genuine devices with certified characteristics.

Attestation Certificate

A public key certificate related to an Attestation Key.

Authenticator Attestation ID / AAID

A unique identifier assigned to a model, class or batch of FIDO Authenticators that all share the same characteristics, and which a Relying Party can use to look up an Attestation Public Key and Authenticator Metadata for the device.

Attestation [Public / Private] Key

A key used for FIDO Authenticator attestation.

Attestation Root Certificate

A root certificate explicitly trusted by the FIDO Alliance, to which Attestation Certificates chain to.

Authentication

Authentication is the process in which user employs their FIDO Authenticator to prove possession of a registered key to a relying party.

Authentication Algorithm

The combination of signature and hash algorithms used for authenticator-to-relying party authentication.

Authentication Scheme

The combination of an Authentication Algorithm with a message syntax or framing that is used by an Authenticator when constructing a response.

Authenticator, Authnr

See FIDO Authenticator.

Authenticator, 1stF / First Factor

A FIDO Authenticator that transactionally provides a username and at least two authentication factors: cryptographic key material (something you have) plus user verification (something you know / something you are) and so can be used by itself to complete an authentication.

It is assumed that these authenticators have an internal matcher. The matcher is able to verify an already enrolled user. If there is more than one user enrolled – the matcher is also able to identify the right user.

Examples of such authenticator is a biometric sensor or a PIN based verification. Authenticators which only verify presence (e.g. a physical button) or perform no verification at all cannot act as 1stF Authenticator.

Authenticator, 2ndF / Second Factor

A FIDO Authenticator which acts only as a second factor. 2ndF Authenticators always require a single Key Handle to be provided before responding to a Sign command. They might or might not have a user verification method. It is assumed that these authenticators MAY or MAY not have an internal matcher.

Authenticator Attestation

The process of communicating a cryptographic assertion to a Relying Party that a key presented during Registration was created and protected by a genuine Authenticator with verified characteristics.

Authenticator Metadata

Verified information about the characteristics of a certified Authenticator, associated with an AAID and available from the FIDO Alliance. FIDO Servers are expected to have access to up-to-date metadata to be able to interact with a given Authenticator.

Authenticator Policy

A JSON data structure that allows a Relying Party to communicate to a FIDO Client the capabilities or specific authenticators that are allowed or disallowed for use in a given operation.

ASM / Authenticator Specific Module

Software associated with a FIDO Authenticator that provides a uniform interface between the hardware and FIDO Client software.

AV

ASM Version

Bound Authenticator

A FIDO Authenticator or Authenticator + ASM combination which uses an access control mechanism to restrict the use of registered keys to trusted FIDO Clients and/or trusted FIDO User Devices. Compare to Roaming Authenticator.

Certificate

An X.509v3 certificate defined by the profile specified in [RFC5280] and its successors.

Channel Binding

See: [RFC5056], [RFC5929] and [ChannelID]. A channel binding allows applications to establish that the two end-points of a secure channel at one network layer are the same as at a higher layer by binding authentication to the higher layer to the channel at the lower layer.

Client

This term is used “in context”, and may refer to a FIDO client or some other type of client, e.g. a TLS client. See FIDO Client.

Confused Deputy Problem

A confused deputy is a computer program that is innocently fooled by some other party into misusing its authority. It is a specific type of privilege escalation.

Correlation Handle

Any piece of information that may allow, in the context of FIDO protocols, implicit or explicit association and or attribution of multiple actions, believed by the user to be distinct and unrelated, back to a single unique entity. An example of a correlation handle outside of the FIDO context is a client certificate used in traditional TLS mutual authentication: because it sends the same data to multiple Relying Parties, they can therefore collude to uniquely identify and track the user across unrelated activities. [AnonTerminology]

Deregistration

A phase of a FIDO protocol in which a Relying Party tells a FIDO Authenticator to forget a specified piece of (or all) locally managed key material associated with a specific Relying Party account, in case such keys are no longer considered valid by the Relying Party.

Discovery

A phase of a FIDO protocol in which a Relying Party is able to determine the availability of FIDO capabilities at the client’s device, including metadata about the available authenticators.

E(K,D)

Denotes the Encryption of data D with key K

ECDSA

Elliptic Curve Digital Signature Algorithm, as defined by ANSI X9.62 [ECDSA-ANSI].

Enrollment

The process of making a User known to an Authenticator. This might be a Biometric Enrollment as defined in [NSTCBiometrics] or involve processes such as taking ownership of and setting a PIN or password for a non-biometric cryptographic storage device. Enrollment may happen as part of a FIDO protocol ceremony, or it may happen outside of the FIDO context for multi-purpose authenticators.

Facet

See Application Facet

Facet ID

See Application Facet ID

FIDO Authenticator

An Authentication entity that meets the FIDO Alliance’s requirements and which has related metadata.

A FIDO Authenticator is responsible for User Verification and maintaining the cryptographic material required for the Relying Party Authentication.

It is important to note that a FIDO Authenticator is only considered such for and in relation to its participation in FIDO Alliance protocols. Because the FIDO Alliance aims to utilize a diversity of existing and future hardware, many devices used for FIDO may have other primary or secondary uses. To the extent that a device is used for non-FIDO purposes such as local operating system login or network login with non-FIDO protocols, it is not considered a FIDO Authenticator and its operation in such modes is not subject to FIDO Alliance guidelines or restrictions, including those related to security and privacy.

A FIDO Authenticator may be referred to as simply an Authenticator or abbreviated as “Authnr”. Important distinctions in an Authenticator’s capabilities and user experience may be experienced depending on whether it is a Roaming or Bound authenticator, and whether it is a “First Factor” or “Second Factor” authenticator.

It is assumed by Registration Assertion schemes that the Authenticator has exclusive control over the data being signed by the attestation key.

Some Authentication Assertion schemes (e.g. TAG_UAFV1_AUTH_ASSERTION) assume the Authenticator to have exclusive control over the data being signed by the Uauth key.

FIDO Client

This is the software entity processing the UAF or U2F protocol messages on the FIDO User Device. FIDO Clients may take one of two forms:

  • A software component implemented in a User Agent (either web browser or native application).
  • A standalone piece of software shared by several User Agents. (Web browsers or native applications).
FIDO Data / FIDO Information

Any information gathered or created as part of completing a FIDO transaction. This includes but is not limited to, biometric measurements of or reference data for the user and FIDO transaction history.

FIDO Plugin

The implementation of the interface in a web browser that brokers messages between a client side web application and FIDO Client. This component is referred to as a “plugin” even if the APIs are built natively into the web browser or injected into a hosted browser component.

FIDO Server

Server software typically deployed in Relying Party’s infrastructure that meets the UAF protocol’s server requirements.

FIDO UAF Client

See FIDO Client.

FIDO User Device

The computing device where the FIDO Client operates and from which the user initiates an action that utilizes FIDO.

KeyID

KeyID identifies a registered key between an Authenticator and a FIDO Server for 1F Authenticators. It is used in concert with AAID to identify a particular Authenticator that holds the necessary key. KeyID is the SHA256 hash of the KeyHandle managed by the ASM.

KeyHandle

A key container created by a FIDO Authenticator, containing a private key and (optionally) other data (such as Username). A key handle may be wrapped (encrypted with a key known only to the authenticator) or unwrapped. In the unwrapped form it is referred to as a Raw Key Handle. 2F Authenticators must retrieve their Key Handles from the Relying Party to function, 1F Authenticators manage the storage of their own Key Handles, either internally (for Roaming Authenticators) or at the ASM layer (for Bound Authenticators).

Key Registration

The process of securely establishing a key between FIDO Server and FIDO Authenticator.

KeyRegistrationData (KRD)

A KeyRegistrationData object is created and returned by an Authenticator as the result of the Authenticator's Register command. The KRD object contains items such as the authenticator's AAID, the newly generated UAuth.pub key, as well as other authenticator-specific information such as algorithms used by the authenticator for performing cryptographic operations, and counter values. The KRD object is signed using the Authenticator's attestation private key.

KHAccessToken

A secret value that acts as a guard for Authenticator Commands. KHAccessTokens are generated and provided by an ASM.

Matcher

A component of a FIDO Authenticator which is able to perform (local) User Verification, e.g. biometric comparison [ISOBiometrics], PIN verification, etc.

Persona

With the concept of Persona, all relevant data in an Authenticator (e.g. keys) are related to one Persona (e.g. “business” or “personal”). Some administrative interface (not standardized by FIDO) of the Authenticator allows maintaining and switching Personas.

The User can switch to the “Personal” Persona and register new accounts. After switching back to “Business” Persona, these accounts will not be recognized by the Authenticator (until the User switches back to “Personal” Persona again).

PersonaID

An identifier provided by an ASM, PersonaID is used to associate different registrations. It can be used to create virtual identities on a single authenticator, for example to differentiate “personal” and “business” accounts. PersonaIDs can be used to manage privacy settings on the Authenticator.

Reference Data

A (biometric) reference data (also called template) is a digital reference of distinct characteristics that have been extracted from a biometric sample. Biometric Reference Data is used during the biometric user verification process [ISOBiometrics]. Non-biometric Reference Data is used in conjunction with PIN based user verification.

Registration

A phase of a FIDO protocol in which a user generates and associates new key material with an account at the Relying Party, subject to policy set by the server and acceptable attestation that the authenticator and registration matches that policy.

Registration Scheme

The Registration Scheme defines how the authentication key is being exchanged between the FIDO Server and the FIDO Authenticator.

Relying Party

A web site or other entity that uses a FIDO protocol to directly authenticate users (i.e., performs peer-entity authentication). Note that if FIDO is composed with Federated Identity Management protocols (e.g., SAML, OpenID Connect, etc.), the Identity Provider will also be playing the role of a FIDO Relying Party.

Roaming Authenticator

A FIDO Authenticator configured to move between different FIDO Clients and FIDO User Devices lacking an established trust relationship by:

  1. Using only its own internal storage for registrations
  2. Allowing registered keys to be employed without access control mechanisms at the API layer. (Roaming Authenticators still may perform User Verification.)

Compare to Bound Authenticator.

S(K, D)

Signing of data D with key K

Server Challenge

A random value provided by the FIDO Server in the UAF protocol requests.

Sign Counter

A monotonically increasing counter maintained by the Authenticator. It is increased on every use of the UAuth.priv key. This value can be used by the FIDO Server to detect cloned Authenticators.

SignedData

A SignedData object is created and returned by an Authenticator as the result of the Authenticator's Sign command. The to-be-signed data input to the Sign command is represented in the returned SignedData object as intact values or as hashed values. The SignedData object also contains general information about the authenticator and its mode, a nonce, information about authenticator-specific cryptographic algorithms, and a use counter. The SignedData object is signed using the Relying Party-specific UAuth.priv key.

Silent Authenticator

FIDO Authenticator that does not prompt the user or perform any User Verification.

Step-up Authentication

An authenticion which is performed on top of an already authenticated session, is called step-up authentication.

Example: The user authenticates the session initially using username and password and the web site requests a FIDO authentication on top of this authenticated session.

One reason for requesting step-up authenication could be a request to a high value resource.

FIDO U2F is always used as a step-up authentication. FIDO UAF could be used as step-up authentication, but it could also be used as initial authentication.

Note: In general, it does not imply that the step-up authentication itself is stronger than the initial authentication. Since the step-up authentication is performed on top of an existing authentication, the resulting combined authentication strength will increase most likely, but it will never decrease.

Template

See reference data.

TLS

Transport Layer Security

Token

In FIDO U2F, the term Token is often used to mean what is called an Authenticator in UAF. Also, note that other uses of “token”, e.g. KHAccessToken, User Verification Token, etc., are separately distinct. If they are not explicitly defined, their meaning needs to be determined from context.

Transaction Confirmation

An operation in the FIDO protocol that allows a Relying Party to request that a FIDO Client and Authenticator with the appropriate capabilities display some information to the user, request that the user authenticate locally to their FIDO Authenticator to confirm it, and provide proof of possession of previously registered key material an attestation of the confirmation back to the Relying Party.

Transaction Confirmation Display

This is a feature of FIDO Authenticators able to show content of a message to a user and protect the integrity of this message. It could be implemented using the GlobalPlatform specified TrustedUI [TEESecureDisplay].

TrustedFacets

The data structure holding the list of FacetIDs. The AppID is used to retrieve this data structure.

TTEXT

Transaction Text, i.e. text to be confirmed in the case of Transaction Confirmation.

Type-length-value/tag-length-value (TLV)

A mechanism for encoding data such that the type, length and value of the data are given. Typically, the type and length data fields are of a fixed size. This format offers some advantages over other data encoding mechanisms that make it suitable for some of the FIDO UAF protocols.

U2F

Universal 2nd Factor. The FIDO protocol and family of Authenticators to enable a cloud service to offer its users the options of using an easy–to–use, strongly–secure open standards–based 2nd factor device for authentication. It relies on the server to know the (expected) user before triggering the authentication.

UAF

Universal Authentication Framework. The FIDO Protocol and family of Authenticators to enable a service to offer its users flexible and interoperable authentication. It allows triggering the authentication before the server knows the user.

UAF Client

See FIDO Client.

UAuth.pub / UAuth.priv / UAuth.key

User authentication keys generated by FIDO Authenticator. UAuth.pub is the public part of key pair. UAuth.priv is the private part of the key. UAuth.key is the more generic notation to refer to UAuth.priv.

UINT8

An 8 bit (1 byte) unsigned integer.

UINT16

A 16 bit (2 bytes) unsigned integer.

UINT32

A 32 bit (4 bytes) unsigned integer.

UPV

UAF Protocol Version

User

Relying Party’s user, and owner of the FIDO Authenticator.

User Agent

The user agent is a client application that is acting on behalf of a user in a client-server system. Examples of user agents include web browsers and mobile apps.

User Verification

The process by which a FIDO Authenticator locally authorizes use of key material, e.g. through a touch, pin code, fingerprint match or other biometric.

User Verification Token

User Verification Token is a token generated by Authenticator and handed to ASM after successful user verification. Without having this token ASM cannot invoke special commands such as Register or Sign.

The lifecycle of User Verification Token is managed by Authenticator. The concrete technique for generating such token and managing its lifecycle is vendor specific and non-normative.

Username

A human-readable string identifying a user’s account at a Relying Party.

Verification Factor

The specific means by which local user verification is accomplished. e.g. fingerprint, voiceprint, or PIN.

This is also known as modality.

Web Application, Client-Side

The portion of a Relying Party application built on the Open Web Platform which executes in the User Agent. When the term “Web Application” appears unqualified or without specific context in FIDO documents, it generally refers to either the client-side portion or the combination of both client-side and server-side pieces of such an application.

Web Application, Server-Side

The portion of a Relying Party application that executes server-side and responds to HTTP requests. When the term “Web Application” appears unqualified or without specific context in FIDO documents, it generally refers to either the client-side portion or the combination of both client-side and server-side pieces of such an application.

A. References

A.1 Normative references

[FIDOGlossary]
R. Lindemann, D. Baghdasaryan, B. Hill FIDO Technical Glossary v1.0. FIDO Alliance Implementation Draft. URL: http://fidoalliance.org/specs/fido-u2f-v1.0-ps-20141009/fido-glossary-v1.0-ps-20141009.html
[RFC2119]
S. Bradner. Key words for use in RFCs to Indicate Requirement Levels. March 1997. Best Current Practice. URL: http://www.ietf.org/rfc/rfc2119.txt

A.2 Informative references

[AnonTerminology]
"Anonymity, Unlinkability, Unobservability, Pseudonymity, and Identity Management - A Consolidated Proposal for Terminology", Version 0.34,. A. Pfitzmann and M. Hansen, August 2010. URL: http://dud.inf.tu-dresden.de/literatur/Anon_Terminology_v0.34.pdf
[ChannelID]
D. Balfanz Transport Layer Security (TLS) Channel IDs. (Work In Progress) URL: http://tools.ietf.org/html/draft-balfanz-tls-channelid
[ECDSA-ANSI]
Public Key Cryptography for the Financial Services Industry: The Elliptic Curve Digital Signature Algorithm (ECDSA), ANSI X9.62-2005. American National Standards Institute, November 2005, URL: http://webstore.ansi.org/RecordDetail.aspx?sku=ANSI+X9.62%3A2005
[ISOBiometrics]
Project Editor, Harmonized Biometric Vocabulary. ISO/IEC JTC 1. 15 November 2007, URL: http://isotc.iso.org/livelink/...
[NSTCBiometrics]
NSTC Subcommittee on Biometrics, Biometrics Glossary. National Science and Technology Council. 14 September 2006, URL: http://biometrics.gov/Documents/Glossary.pdf
[RFC5056]
N. Williams, On the Use of Channel Bindings to Secure Channels (RFC 5056), IETF, November 2007, URL: http://www.ietf.org/rfc/rfc5056.txt
[RFC5280]
D. Cooper, S. Santesson, s. Farrell, S.Boeyen, R. Housley, W. Polk; Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile, IETF, May 2008, URL: http://www.ietf.org/rfc/rfc5280.txt
[RFC5929]
J. Altman, N. Williams, L. Zhu, Channel Bindings for TLS (RFC 5929), IETF, July 2010, URL: http://www.ietf.org/rfc/rfc5929.txt
[RFC6454]
A. Barth. The Web Origin Concept. December 2011. Proposed Standard. URL: http://www.ietf.org/rfc/rfc6454.txt
[TEESecureDisplay]
GlobalPlatform Trusted User Interface API Specifications GlobalPlatform. Accessed March 2014. URL: https://www.globalplatform.org/specifications.asp