Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
2013 397m
4
Inconvenient to type
password on phone
3
Too many passwords to
remember
à re-use / cart
abandonment
OTP Issues
1
OTP vulnerable to real-
time MITM and MITB
attacks
4
Inconvenient to type OTP
on phone
3
OTP HW tokens are
expensive and people
don’t want another device
2
SMS security questionable,
especially when Device is the
phone
Implementation Challenge
A Plumbing Problem
Silo 1
App 1
Silo 2
Silo 3
App 2
Silo N
? ? New
App
Authentication Needs
Authentication today:
Ask user for a password
(and perhaps a one time code)
Authentication & Risk Engines
Purpose Geolocation …
(from IP addr.)
Explicit Authentication
Device
FIDO Experiences
ONLINE AUTH REQUEST Local USER Verification SUCCESS
Verify user …
presence
How does FIDO U2F work?
Same Authenticator
Same User as as registered before?
enrolled before?
Verify user …
presence
U2F Protocol
• Core idea: Standard public key cryptography:
o User's device mints new key pair, gives public key to server
o Server asks user's device to sign data to verify the user.
o One device, many services, "bring your own device" enabled
• Lots of refinement for this to be consumer facing:
o Privacy: Site specific keys, No unique ID per device
o Security: No phishing, man-in-the-middles
o Trust: Verify who made the device
o Pragmatics: Affordable today, ride hardware cost curve down
o Speed for user: Fast crypto in device (Elliptic Curve)
check AppID a
check AppID h a
s cntr, fc, s
check
signature
using
key kpub
set cookie
User Presence API: Registration
{"typ":"register",
"challenge":"KSDJsdASAS-‐AIS_AsS",
"cid_pubkey":
{
"kty":"EC",
"crv":"P-‐256",
"x":"HzQwlfXX7Q4S5MtCRMzPO9tOyWjBqRl4tJ8",
"y":"XVguGFLIZx1fXg375hi4-‐7-‐BxhMljw42Ht4"
},
navigator.handleRegistrationRequest({
"origin":"https://accounts.google.com"
}
‘challenge’:
‘KSDJsdASAS-‐AIS_AsS’,
‘app_id’:
‘https://www.google.com/facets.json’},
callback);
callback
=
function(response)
{
sendToServer(
response[‘clientData’],
response[‘tokenData’]);
};
User Presence API: Auth.
{
"typ":"authenticate",
"challenge":"KSDJsdASAS-‐AIS_AsS",
"cid_pubkey":
{
"kty":"EC",
"crv":"P-‐256",
navigator.handleAuthenticationRequest({
"x":"HzQwlfXX7Q4S5MtCRMzPO9tOyWjBqRl4tJ8",
"y":"XVguGFLIZx1fXg375hi4-‐7-‐BxhMljw42Ht4"
‘challenge’:
‘KSDJsdASAS-‐AIS_AsS’,
},
‘app_id’:
‘https://www.google.com/facets.json’,
"origin":"https://accounts.google.com"
}
‘key_handle’:
‘JkjhdsfkjSDFKJ_ld-‐sadsAJDKLSAD’},
callback);
callback
=
function(response)
{
sendToServer(
response[‘clientData’],
response[‘tokenData’]);
};
Authentication Example
Authentication Example
Authentication Example
Authentication Example
FIDO Universal Authentication
Framework (UAF)
FIDO Experiences
ONLINE AUTH REQUEST Local USER Verification SUCCESS
… …
SE
How does FIDO UAF work?
Same Authenticator
Same User as as registered before?
enrolled before?
Same Authenticator
Same User as as registered before?
enrolled before?
… …
SE
Attestation & Metadata
Understand Authenticator
security characteristic
by looking into Metadata
(and potentially other sources) Metadata
UAF Registration
Device
Relying Party
FIDO App
Web FIDO
Authenticator
App
Server
0
Prepare
UAF Registration
3
Verify User &
Generate New
Key Pair
(specific to RP Webapp)
UAF Registration
Pat Johnson
pat@example.com FIDO App
Web FIDO
Authenticator
App
Server
Link your fingerprint
0
Prepare
Legacy Auth +
1
Initiate Reg.
Reg. Request
2
+ Policy
Reg.
4
Response
3
Verify User &
Generate New
Key Pair
(specific to RP Webapp)
UAF Registration
Pat Johnson
pat@example.com FIDO App
Web FIDO
Authenticator
App
Server
Link your fingerprint
0
Prepare
Key Registration Data:
• Hash(FinalChallenge) Legacy Auth +
1
• AAID Initiate Reg.
• Public key Reg. Request
2
• KeyID + Policy
• Registration Counter Reg.
4
• Signature Counter Response
• Signature (attestation key)
FinalChallenge=Hash(AppID | FacetID
| tlsData | challenge) 3
Verify User &
Generate New
Key Pair
(specific to RP Webapp)
UAF Registration
Pat Johnson
pat@example.com FIDO App
Web FIDO
Authenticator
App
Server
0
Prepare
Legacy Auth +
1
Initiate Reg.
Reg. Request
2
+ Policy
Reg.
4
Response
5
Success
3
Verify User &
Generate New
Key Pair
(specific to RP Webapp)
FIDO Building Blocks
FIDO USER DEVICE
TLS Server Key
RELYING PARTY
FIDO CLIENT
Cryptographic FIDO SERVER
authentication key
reference DB
ASM
Authentication
keys
FIDO AUTHENTICATOR
Attestation key
Update
Authenticator
Metadata &
attestation trust
store
Metadata Service
AAID & Attestation
FIDO Authenticator
Attestation Key 1
FIDO Authenticator
Attestation Key 2
Model A
Understand Authenticator
security characteristic
by looking into Metadata
(and potentially other sources) Metadata
Facet ID / AppID
UAF Authentication
Authentication Request
2
+ Transaction Text
4
Authentication Response
+ Text Hash,
signed by User’s private key
5
3
Validate
Display Text, Verify Response &
User & Unlock Text Hash
Private Key using User’s Public
(specific to User + RP Webapp)
Key
Transaction Confirmation
Device
Relying Party
FIDO Browser Web FIDO
Authenticator
or Native App
Server
App
1
Initiate Transaction
SignedData:
• SignatureAlg Authentication Request
2
• Hash(FinalChallenge) + Transaction Text
• Authenticator random
• Signature Counter
• Hash(Transaction
4
Text) Authentication Response
• Signature + Text Hash,
signed by User’s private key
5
FinalChallenge=Hash(AppID | FacetID
3
Validate
| tlsData | challenge)
Display Text, Verify Response &
User & Unlock Text Hash
Private Key using User’s Public
(specific to User + RP Webapp)
Key
The FIDO Authenticator Concept
Injected at
manufacturing,
doesn’t change
FIDO Authenticator
User
Verification /
Attestation Key
Presence
Transaction
Confirmation Authentication Key(s)
Display
Optional Generated at
Components runtime (on
Registration)
Using Secure Hardware
SIM Card
User Verification
(PIN) Attestation Key
Authentication Key(s)
Client Side Biometrics
Store at Enrollment
Authentication Key(s)
Compare at Authentication
Unlock after comparison
Combining TEE and SE
• FIDO • Federation
o Insulates o Insulates applications
authentication server from identity providers
from specific
authenticators o Does not address
o Focused solely on primary authentication
primary authentication o Does enable secondary
o Does not support authentication &
attribute sharing attribute sharing
o Can communicate
o Can communicate details of authentication
details of from IdP to SP
authentication to
server
FIDO
AUTHENTICATOR
FIDO SERVER
SSO slide
Assurance
federatio
n No more
‘Password123‘
bump
status
quo
Low
FIDO Continuum
federatio
n
status
quo
Low
FIDO +
Assurance
FIDO federatio
n
federatio
n
status
quo
Low
Speaker Recognition
PIN + MicroSD
USB
FIDO ReadyTM Products Shipping today
OEM Enabled: Samsung Galaxy S5 smartphone & Galaxy Tab S OEM Enabled: Lenovo ThinkPads with
tablets Fingerprint Sensors