Brief on U2F and Fido Alliance

Norstella eID workshop Oslo, 16.092014

Jon Ølnes Unibridge AS, Norway, http://www.unibridge.no, [email protected] Observation

 There is no practially useful, standard protocol for cryptographic user towards a web-based service.  In particular when the user’s key(s) – private or symmetric – must be stored in a hardware device.  SSL/TLS with client authentication in theory – but not really….

 Standard API is PKCS#11 – works only with local devices (not mobile etc.), and same goes for CAPI

 There is a need for more comprehensive protocols and interfaces. Google’s starting point

https://sites.google.com/site/oauthgoog/gnubby The intent is to enable Internet users to carry a non-phishable strong 2 factor device which the user can register at any supporting site to get strong authentication security. The goal is to get many internet services accepting these devices as an option for 2nd Factor, get the key client platforms (browsers, OSes) to have built in support for these open-protocol devices and a large number of vendors making protocol compliant devices.

Google has offered a One Time based two-factor system called “2 Step Verification” since 2011; a mobile phone app that is customized with a user secret.

Other consumer sites like Apple, Microsoft, Facebook, Twitter have all introduced OTP based 2-factor 1st half 2013.

The U2F idea was to replace OTP with a more user friendly and secure solution, originally in the form of a USB dongle. From Google to Fido Alliance

Going solo is seldom a recipe of success – form alliances.

Fido founding companies (summer 2012): PayPal, , Nok Nok Labs, Validity Sensors, Infineon, and Agnitio as the founding companies.

Public launch February 2013, quick increase in membership.

Current board level members: ARM, , BlackBerry, Crucial Tec, Discover, Google, IdentityX, Lenovo, MasterCard, Microsoft, Nok Nok Labs, NXP, Oberthur, PayPal, RSA, Samsung, , Visa, Yubico. Plus a bunch of sponsor level and associate level members. http://fidoalliance.org FIDO = Fast IDentity Online Fido Specifications

UAF – Universal Authentication Framework – reference architecture Authentication protocol, APIs, transport binding Standard public key crypto in protocols User’s device can be U2F or mobile device with UAF support (app) Register user’s hardware device with service And register local authentication mechanism for user’s device (unless U2F) Preferably for local authentication but may be PIN Public key (different keys for different services) then registered, private key in device Repeat the local authentication on registered device whenever asked by service to do so Device authenticates to service using UAF protocol

U2F – – protocol using a USB or NFC dongle Interface to USB/NFC device must be supported by the user’s computer and by the browser Press button on USB or swipe NFC – no authentication to device Intended use additional to normal PIN/password

Some products tested to be FIDO Ready – not much deployment (yet?) Other “standards” efforts

 W3C Web Cryptography Working Group – How to reach crypto functions on the user’s device from a web application (server side) by use of JavaScript as “user agent” – Web Cryptography API + Secure Element API (W3C SysApps WG) – Authentication protocol decided by web application (server) – The promise of integrating Fido, Mobile Connect, (national) eID cards etc. under one API – Still need for driver software (app or installed) for the specific ID card (e.g.) that must be supported for the user’s device  Java applet based solutions (the “old” BankID model) – EU Commission SD-DSS open source software for signing  Require use of an identity provider – no support for direct authentication – NSTIC – US national eID strategy – STORK – EU project for cross-border eID – Identity provider performs authentications, using whatever mechanisms are supported http://www.unibridge.no