Security Keys are Awesome · Security Keys are Awesome and how to use them. Jen Tong Security...

93

Transcript of Security Keys are Awesome · Security Keys are Awesome and how to use them. Jen Tong Security...

Page 1: Security Keys are Awesome · Security Keys are Awesome and how to use them. Jen Tong Security Advocate Google Cloud Platform ... Server - Registration (node.js) function registrationChallengeHandler(req,
Page 2: Security Keys are Awesome · Security Keys are Awesome and how to use them. Jen Tong Security Advocate Google Cloud Platform ... Server - Registration (node.js) function registrationChallengeHandler(req,

@MimmingCodes -- mimming.com

Security Keys are Awesomeand how to use them

Page 3: Security Keys are Awesome · Security Keys are Awesome and how to use them. Jen Tong Security Advocate Google Cloud Platform ... Server - Registration (node.js) function registrationChallengeHandler(req,

Jen TongSecurity AdvocateGoogle Cloud Platform

@MimmingCodesSlides: mimming.com/u2f

About me

Page 4: Security Keys are Awesome · Security Keys are Awesome and how to use them. Jen Tong Security Advocate Google Cloud Platform ... Server - Registration (node.js) function registrationChallengeHandler(req,

How many of you ...● … are Security Engineers?● … use a U2F security key?

Page 5: Security Keys are Awesome · Security Keys are Awesome and how to use them. Jen Tong Security Advocate Google Cloud Platform ... Server - Registration (node.js) function registrationChallengeHandler(req,

@MimmingCodes -- mimming.com

Agenda

Passwords are bad :(

FIDO Alliance -- better than passwords

How U2F works

Use it yourself

Page 6: Security Keys are Awesome · Security Keys are Awesome and how to use them. Jen Tong Security Advocate Google Cloud Platform ... Server - Registration (node.js) function registrationChallengeHandler(req,

The problemwith authentication

Page 7: Security Keys are Awesome · Security Keys are Awesome and how to use them. Jen Tong Security Advocate Google Cloud Platform ... Server - Registration (node.js) function registrationChallengeHandler(req,

@MimmingCodes -- mimming.com

Authentication

Login:

Password: 123456

jen

Page 8: Security Keys are Awesome · Security Keys are Awesome and how to use them. Jen Tong Security Advocate Google Cloud Platform ... Server - Registration (node.js) function registrationChallengeHandler(req,

@MimmingCodes -- mimming.com

123456 password

Source: SplashData

Page 9: Security Keys are Awesome · Security Keys are Awesome and how to use them. Jen Tong Security Advocate Google Cloud Platform ... Server - Registration (node.js) function registrationChallengeHandler(req,

@MimmingCodes -- mimming.com

123456Most common password in 2017

password2nd most common password in 2017

Source: SplashData

Page 10: Security Keys are Awesome · Security Keys are Awesome and how to use them. Jen Tong Security Advocate Google Cloud Platform ... Server - Registration (node.js) function registrationChallengeHandler(req,

@MimmingCodes -- mimming.com

81%of breaches were due to weak or

stolen passwords

Source: Verizon DBIR 2017

Page 11: Security Keys are Awesome · Security Keys are Awesome and how to use them. Jen Tong Security Advocate Google Cloud Platform ... Server - Registration (node.js) function registrationChallengeHandler(req,

@MimmingCodes -- mimming.com

81%of breaches were due to weak or

stolen passwords

28%of phishing attacks were targeted

Source: Verizon DBIR 2017

Page 12: Security Keys are Awesome · Security Keys are Awesome and how to use them. Jen Tong Security Advocate Google Cloud Platform ... Server - Registration (node.js) function registrationChallengeHandler(req,

@MimmingCodes -- mimming.com

Normal login

User Service

Page 13: Security Keys are Awesome · Security Keys are Awesome and how to use them. Jen Tong Security Advocate Google Cloud Platform ... Server - Registration (node.js) function registrationChallengeHandler(req,

@MimmingCodes -- mimming.com

Normal login

User Service

login - foopassword - 1234

Page 14: Security Keys are Awesome · Security Keys are Awesome and how to use them. Jen Tong Security Advocate Google Cloud Platform ... Server - Registration (node.js) function registrationChallengeHandler(req,

@MimmingCodes -- mimming.com

Normal login

User Service

login - foopassword - 1234

logged in

Page 15: Security Keys are Awesome · Security Keys are Awesome and how to use them. Jen Tong Security Advocate Google Cloud Platform ... Server - Registration (node.js) function registrationChallengeHandler(req,

@MimmingCodes -- mimming.com

Phishing

User Service

Fake service

Page 16: Security Keys are Awesome · Security Keys are Awesome and how to use them. Jen Tong Security Advocate Google Cloud Platform ... Server - Registration (node.js) function registrationChallengeHandler(req,

@MimmingCodes -- mimming.com

Phishing

User Service

login - foopassword - 1234

Page 17: Security Keys are Awesome · Security Keys are Awesome and how to use them. Jen Tong Security Advocate Google Cloud Platform ... Server - Registration (node.js) function registrationChallengeHandler(req,

@MimmingCodes -- mimming.com

Phishing

User Service

login - foopassword - 1234

login - foopassword - 1234

Page 18: Security Keys are Awesome · Security Keys are Awesome and how to use them. Jen Tong Security Advocate Google Cloud Platform ... Server - Registration (node.js) function registrationChallengeHandler(req,

@MimmingCodes -- mimming.com

One Time Passwords

SMS

Enter this code: 1234

Page 19: Security Keys are Awesome · Security Keys are Awesome and how to use them. Jen Tong Security Advocate Google Cloud Platform ... Server - Registration (node.js) function registrationChallengeHandler(req,

@MimmingCodes -- mimming.com

One Time Passwords

SMS

Enter this code: 1234

Page 20: Security Keys are Awesome · Security Keys are Awesome and how to use them. Jen Tong Security Advocate Google Cloud Platform ... Server - Registration (node.js) function registrationChallengeHandler(req,

@MimmingCodes -- mimming.com

One Time Passwords

Photo credit - Von Alexander Klink

SMS

Enter this code: 1234

Page 21: Security Keys are Awesome · Security Keys are Awesome and how to use them. Jen Tong Security Advocate Google Cloud Platform ... Server - Registration (node.js) function registrationChallengeHandler(req,

@MimmingCodes -- mimming.com

Phishing

User Service

login - foopassword - 1234OTP - 5678

login - foopassword - 1234OTP - 5678

Page 22: Security Keys are Awesome · Security Keys are Awesome and how to use them. Jen Tong Security Advocate Google Cloud Platform ... Server - Registration (node.js) function registrationChallengeHandler(req,

FIDO AllianceBetter than passwords

Page 23: Security Keys are Awesome · Security Keys are Awesome and how to use them. Jen Tong Security Advocate Google Cloud Platform ... Server - Registration (node.js) function registrationChallengeHandler(req,

@MimmingCodes -- mimming.com

FIDO is the world’s largest ecosystem for standards-based,

interoperable authentication

Page 24: Security Keys are Awesome · Security Keys are Awesome and how to use them. Jen Tong Security Advocate Google Cloud Platform ... Server - Registration (node.js) function registrationChallengeHandler(req,

@MimmingCodes -- mimming.com

W3C’s WebAuthn Spec

Source: WebAuthn spec

New!

Page 25: Security Keys are Awesome · Security Keys are Awesome and how to use them. Jen Tong Security Advocate Google Cloud Platform ... Server - Registration (node.js) function registrationChallengeHandler(req,

@MimmingCodes -- mimming.com

FIDO’s U2F Spec

Source: FIDO specs

Page 26: Security Keys are Awesome · Security Keys are Awesome and how to use them. Jen Tong Security Advocate Google Cloud Platform ... Server - Registration (node.js) function registrationChallengeHandler(req,

@MimmingCodes -- mimming.com

Public key cryptography devices

Why hardware?● Hardware isolation● Interoperable across devices and services● Fast & easy to use

Page 27: Security Keys are Awesome · Security Keys are Awesome and how to use them. Jen Tong Security Advocate Google Cloud Platform ... Server - Registration (node.js) function registrationChallengeHandler(req,

@MimmingCodes -- mimming.com

Transport methods

User Device

USB

NFC

Bluetooth

Page 28: Security Keys are Awesome · Security Keys are Awesome and how to use them. Jen Tong Security Advocate Google Cloud Platform ... Server - Registration (node.js) function registrationChallengeHandler(req,

@MimmingCodes -- mimming.com

Certification process

Page 29: Security Keys are Awesome · Security Keys are Awesome and how to use them. Jen Tong Security Advocate Google Cloud Platform ... Server - Registration (node.js) function registrationChallengeHandler(req,

How it works

Page 30: Security Keys are Awesome · Security Keys are Awesome and how to use them. Jen Tong Security Advocate Google Cloud Platform ... Server - Registration (node.js) function registrationChallengeHandler(req,

@MimmingCodes -- mimming.com

How it works

Public key cryptography

Actors

Transport

Registration

Authentication

Page 31: Security Keys are Awesome · Security Keys are Awesome and how to use them. Jen Tong Security Advocate Google Cloud Platform ... Server - Registration (node.js) function registrationChallengeHandler(req,

@MimmingCodes -- mimming.com

Public key cryptography

Public key

Private key

Page 32: Security Keys are Awesome · Security Keys are Awesome and how to use them. Jen Tong Security Advocate Google Cloud Platform ... Server - Registration (node.js) function registrationChallengeHandler(req,

@MimmingCodes -- mimming.com

Public key cryptography

Page 33: Security Keys are Awesome · Security Keys are Awesome and how to use them. Jen Tong Security Advocate Google Cloud Platform ... Server - Registration (node.js) function registrationChallengeHandler(req,

@MimmingCodes -- mimming.com

Public key cryptography

Page 34: Security Keys are Awesome · Security Keys are Awesome and how to use them. Jen Tong Security Advocate Google Cloud Platform ... Server - Registration (node.js) function registrationChallengeHandler(req,

@MimmingCodes -- mimming.com

Actors

User Service

Page 35: Security Keys are Awesome · Security Keys are Awesome and how to use them. Jen Tong Security Advocate Google Cloud Platform ... Server - Registration (node.js) function registrationChallengeHandler(req,

@MimmingCodes -- mimming.com

Actors

User Service

Page 36: Security Keys are Awesome · Security Keys are Awesome and how to use them. Jen Tong Security Advocate Google Cloud Platform ... Server - Registration (node.js) function registrationChallengeHandler(req,

@MimmingCodes -- mimming.com

Actors

User Device Service

Page 37: Security Keys are Awesome · Security Keys are Awesome and how to use them. Jen Tong Security Advocate Google Cloud Platform ... Server - Registration (node.js) function registrationChallengeHandler(req,

@MimmingCodes -- mimming.com

User to device transport

User Device

Page 38: Security Keys are Awesome · Security Keys are Awesome and how to use them. Jen Tong Security Advocate Google Cloud Platform ... Server - Registration (node.js) function registrationChallengeHandler(req,

@MimmingCodes -- mimming.com

User to device transport

User Device

USB

Page 39: Security Keys are Awesome · Security Keys are Awesome and how to use them. Jen Tong Security Advocate Google Cloud Platform ... Server - Registration (node.js) function registrationChallengeHandler(req,

@MimmingCodes -- mimming.com

User to device transport

User Device

USB

NFC

Page 40: Security Keys are Awesome · Security Keys are Awesome and how to use them. Jen Tong Security Advocate Google Cloud Platform ... Server - Registration (node.js) function registrationChallengeHandler(req,

@MimmingCodes -- mimming.com

Ceremonies

Page 41: Security Keys are Awesome · Security Keys are Awesome and how to use them. Jen Tong Security Advocate Google Cloud Platform ... Server - Registration (node.js) function registrationChallengeHandler(req,

@MimmingCodes -- mimming.com

CeremoniesRegistration

Page 42: Security Keys are Awesome · Security Keys are Awesome and how to use them. Jen Tong Security Advocate Google Cloud Platform ... Server - Registration (node.js) function registrationChallengeHandler(req,

@MimmingCodes -- mimming.com

CeremoniesRegistration

Page 43: Security Keys are Awesome · Security Keys are Awesome and how to use them. Jen Tong Security Advocate Google Cloud Platform ... Server - Registration (node.js) function registrationChallengeHandler(req,

@MimmingCodes -- mimming.com

Ceremonies

Authentication

Registration

Page 44: Security Keys are Awesome · Security Keys are Awesome and how to use them. Jen Tong Security Advocate Google Cloud Platform ... Server - Registration (node.js) function registrationChallengeHandler(req,

@MimmingCodes -- mimming.com

Ceremonies

Authentication

Registration

Lost key?

Page 45: Security Keys are Awesome · Security Keys are Awesome and how to use them. Jen Tong Security Advocate Google Cloud Platform ... Server - Registration (node.js) function registrationChallengeHandler(req,

@MimmingCodes -- mimming.com

Registration ceremony

Registration

Page 46: Security Keys are Awesome · Security Keys are Awesome and how to use them. Jen Tong Security Advocate Google Cloud Platform ... Server - Registration (node.js) function registrationChallengeHandler(req,

@MimmingCodes -- mimming.com

Previously authenticatedLogin & passwordLogin & password

Page 47: Security Keys are Awesome · Security Keys are Awesome and how to use them. Jen Tong Security Advocate Google Cloud Platform ... Server - Registration (node.js) function registrationChallengeHandler(req,

@MimmingCodes -- mimming.com

Registration CeremonyChallenge: KJ4kAppId: https://foo.com

Page 48: Security Keys are Awesome · Security Keys are Awesome and how to use them. Jen Tong Security Advocate Google Cloud Platform ... Server - Registration (node.js) function registrationChallengeHandler(req,

@MimmingCodes -- mimming.com

Registration CeremonyChallenge: KJ4kAppId: https://foo.com

Page 49: Security Keys are Awesome · Security Keys are Awesome and how to use them. Jen Tong Security Advocate Google Cloud Platform ... Server - Registration (node.js) function registrationChallengeHandler(req,

@MimmingCodes -- mimming.com

Registration CeremonyChallenge: KJ4kAppId: https://foo.com

Challenge: KJ4kAppId: https://foo.comOrigin: https://foo.com

Page 50: Security Keys are Awesome · Security Keys are Awesome and how to use them. Jen Tong Security Advocate Google Cloud Platform ... Server - Registration (node.js) function registrationChallengeHandler(req,

@MimmingCodes -- mimming.com

Registration CeremonyChallenge: KJ4kAppId: https://foo.com

Challenge: KJ4kAppId: https://foo.comOrigin: https://foo.com

Key handle

Page 51: Security Keys are Awesome · Security Keys are Awesome and how to use them. Jen Tong Security Advocate Google Cloud Platform ... Server - Registration (node.js) function registrationChallengeHandler(req,

@MimmingCodes -- mimming.com

Registration CeremonyChallenge: KJ4kAppId: https://foo.com

Challenge: KJ4kAppId: https://foo.comOrigin: https://foo.com

Key handle

Encrypt registration data

Page 52: Security Keys are Awesome · Security Keys are Awesome and how to use them. Jen Tong Security Advocate Google Cloud Platform ... Server - Registration (node.js) function registrationChallengeHandler(req,

@MimmingCodes -- mimming.com

Registration CeremonyChallenge: KJ4kAppId: https://foo.com

Challenge: KJ4kAppId: https://foo.comOrigin: https://foo.com

Key handle

Encrypt registration data

Challenge: KJ4kOrigin: https://foo.comKey handle: wfn3Cert: ...

Page 53: Security Keys are Awesome · Security Keys are Awesome and how to use them. Jen Tong Security Advocate Google Cloud Platform ... Server - Registration (node.js) function registrationChallengeHandler(req,

@MimmingCodes -- mimming.com

Registration CeremonyChallenge: KJ4kAppId: https://foo.com

Challenge: KJ4kAppId: https://foo.comOrigin: https://foo.com

Key handle

Encrypt registration data

Challenge: KJ4kOrigin: foo.comKey handle: wfn3Key cert: ...

Verify payload

Page 54: Security Keys are Awesome · Security Keys are Awesome and how to use them. Jen Tong Security Advocate Google Cloud Platform ... Server - Registration (node.js) function registrationChallengeHandler(req,

@MimmingCodes -- mimming.com

Authentication ceremony

Authentication

Page 55: Security Keys are Awesome · Security Keys are Awesome and how to use them. Jen Tong Security Advocate Google Cloud Platform ... Server - Registration (node.js) function registrationChallengeHandler(req,

@MimmingCodes -- mimming.com

Basic ceremonyLogin & passwordLogin & password

Page 56: Security Keys are Awesome · Security Keys are Awesome and how to use them. Jen Tong Security Advocate Google Cloud Platform ... Server - Registration (node.js) function registrationChallengeHandler(req,

@MimmingCodes -- mimming.com

Basic ceremonyChallenge: chBs

Page 57: Security Keys are Awesome · Security Keys are Awesome and how to use them. Jen Tong Security Advocate Google Cloud Platform ... Server - Registration (node.js) function registrationChallengeHandler(req,

@MimmingCodes -- mimming.com

Basic ceremonyChallenge: chBsChallenge: chBs

Sign payload

Page 58: Security Keys are Awesome · Security Keys are Awesome and how to use them. Jen Tong Security Advocate Google Cloud Platform ... Server - Registration (node.js) function registrationChallengeHandler(req,

@MimmingCodes -- mimming.com

Basic ceremonyChallenge: chBsChallenge: chBs

Challenge: chBsSign payload Verify

payload

Page 59: Security Keys are Awesome · Security Keys are Awesome and how to use them. Jen Tong Security Advocate Google Cloud Platform ... Server - Registration (node.js) function registrationChallengeHandler(req,

@MimmingCodes -- mimming.com

Mitigate phishingChallenge: chBsChallenge: chBs

Origin: foo.com

Challenge: chBsOrigin: foo.comSign payload Verify

payload

Page 60: Security Keys are Awesome · Security Keys are Awesome and how to use them. Jen Tong Security Advocate Google Cloud Platform ... Server - Registration (node.js) function registrationChallengeHandler(req,

@MimmingCodes -- mimming.com

Prevent tracking across accountsChallenge: chBsKey handle: 6bHc

Challenge: chBsOrigin: foo.comKey handle: 6bHc

Challenge: chBsOrigin: foo.comFind key,

sign payloadVerify

payload

Page 61: Security Keys are Awesome · Security Keys are Awesome and how to use them. Jen Tong Security Advocate Google Cloud Platform ... Server - Registration (node.js) function registrationChallengeHandler(req,

@MimmingCodes -- mimming.com

Mitigate authenticator cloningChallenge: chBsKey handle: 6bHc

Challenge: chBsOrigin: foo.comKey handle: 6bHc

Challenge: chBsOrigin: foo.comCounter: 42

Find key, counter++,

sign payload

Counter went upVerify payload

Page 62: Security Keys are Awesome · Security Keys are Awesome and how to use them. Jen Tong Security Advocate Google Cloud Platform ... Server - Registration (node.js) function registrationChallengeHandler(req,

@MimmingCodes -- mimming.com

Lost key ‘ceremony’

Lost Key?

Page 63: Security Keys are Awesome · Security Keys are Awesome and how to use them. Jen Tong Security Advocate Google Cloud Platform ... Server - Registration (node.js) function registrationChallengeHandler(req,

Demoregistering & using a key

Source: Yubico U2F Test

Page 64: Security Keys are Awesome · Security Keys are Awesome and how to use them. Jen Tong Security Advocate Google Cloud Platform ... Server - Registration (node.js) function registrationChallengeHandler(req,

Use it yourself

Page 65: Security Keys are Awesome · Security Keys are Awesome and how to use them. Jen Tong Security Advocate Google Cloud Platform ... Server - Registration (node.js) function registrationChallengeHandler(req,

@MimmingCodes -- mimming.com

Browser support

Page 66: Security Keys are Awesome · Security Keys are Awesome and how to use them. Jen Tong Security Advocate Google Cloud Platform ... Server - Registration (node.js) function registrationChallengeHandler(req,

@MimmingCodes -- mimming.com

Lots of websites support it today

Google Cloud Platform

GSuite

Big list - https://www.dongleauth.info/

Page 67: Security Keys are Awesome · Security Keys are Awesome and how to use them. Jen Tong Security Advocate Google Cloud Platform ... Server - Registration (node.js) function registrationChallengeHandler(req,

Adding it to your stuffaka deployment

Page 68: Security Keys are Awesome · Security Keys are Awesome and how to use them. Jen Tong Security Advocate Google Cloud Platform ... Server - Registration (node.js) function registrationChallengeHandler(req,

@MimmingCodes -- mimming.com

Deployment options

Run it yourself

Use 3rd party auth

How Google does it

Page 69: Security Keys are Awesome · Security Keys are Awesome and how to use them. Jen Tong Security Advocate Google Cloud Platform ... Server - Registration (node.js) function registrationChallengeHandler(req,

@MimmingCodes -- mimming.com

Run it yourself

Client Server

Page 70: Security Keys are Awesome · Security Keys are Awesome and how to use them. Jen Tong Security Advocate Google Cloud Platform ... Server - Registration (node.js) function registrationChallengeHandler(req,

@MimmingCodes -- mimming.com

Run it yourself - Server

Source: GitHub search for 'u2f server'

Client libraries

Page 71: Security Keys are Awesome · Security Keys are Awesome and how to use them. Jen Tong Security Advocate Google Cloud Platform ... Server - Registration (node.js) function registrationChallengeHandler(req,

@MimmingCodes -- mimming.com

Run it yourself - Server

Source: Yubico U2F Validation Server

Yubico’s open source server

Client libraries

Page 72: Security Keys are Awesome · Security Keys are Awesome and how to use them. Jen Tong Security Advocate Google Cloud Platform ... Server - Registration (node.js) function registrationChallengeHandler(req,

@MimmingCodes -- mimming.com

Code it yourself

Client Server

Page 73: Security Keys are Awesome · Security Keys are Awesome and how to use them. Jen Tong Security Advocate Google Cloud Platform ... Server - Registration (node.js) function registrationChallengeHandler(req,

@MimmingCodes -- mimming.com

Code it yourself

Client ServerJavaScript Flexible

Page 74: Security Keys are Awesome · Security Keys are Awesome and how to use them. Jen Tong Security Advocate Google Cloud Platform ... Server - Registration (node.js) function registrationChallengeHandler(req,

@MimmingCodes -- mimming.com

Code it yourself - Client

Browser support:

Page 75: Security Keys are Awesome · Security Keys are Awesome and how to use them. Jen Tong Security Advocate Google Cloud Platform ... Server - Registration (node.js) function registrationChallengeHandler(req,

@MimmingCodes -- mimming.com

Client - Registration

u2f.register(appId, [{challenge: challenge, version: 'U2F_V2'}], [], function(resp) { if(resp.error) { console.log(resp.errorcode}); return; } // POST resp.clientData // and resp.registrationData to server});

Page 76: Security Keys are Awesome · Security Keys are Awesome and how to use them. Jen Tong Security Advocate Google Cloud Platform ... Server - Registration (node.js) function registrationChallengeHandler(req,

@MimmingCodes -- mimming.com

Client - Authentication

u2f.sign( [{challenge: challenge, version: 'U2F_V2'}], [], function(devResp) { let jsonResp = JSON.stringify(devResp); u2fRespInput.value = jsonResp; loginForm.submit(); });

Page 77: Security Keys are Awesome · Security Keys are Awesome and how to use them. Jen Tong Security Advocate Google Cloud Platform ... Server - Registration (node.js) function registrationChallengeHandler(req,

@MimmingCodes -- mimming.com

Client libraries for

● Java● Ruby● Python● PHP● C#● C● JavaScript

Code it yourself - Server

Page 78: Security Keys are Awesome · Security Keys are Awesome and how to use them. Jen Tong Security Advocate Google Cloud Platform ... Server - Registration (node.js) function registrationChallengeHandler(req,

@MimmingCodes -- mimming.com

Server - Registration (node.js)function registrationChallengeHandler(req, res) { const regReq = u2f.request(APP_ID); req.session.registrationRequest = regReq; return res.send(regReq);}

function registrationVerificationHandler(req, res) { const regRes = u2f.checkRegistration( req.session.registrationRequest, req.body.registrationResponse);

if (regRes.successful) { return res.sendStatus(200); }

return res.send({result});}

Page 79: Security Keys are Awesome · Security Keys are Awesome and how to use them. Jen Tong Security Advocate Google Cloud Platform ... Server - Registration (node.js) function registrationChallengeHandler(req,

@MimmingCodes -- mimming.com

Server - Authentication (node.js)function authenticationChallengeHandler(req, res) { const authRequest = u2f.request(APP_ID, keyHandleFromDB()); req.session.authRequest = authRequest;

return res.send(authRequest);}

function authenticationVerificationHandler(req, res) { const result = u2f.checkSignature( req.session.authRequest, req.body.authResponse, publicKeyFromDB());

if (result.successful) { return res.sendStatus(200); }

return res.send({result});}

Page 80: Security Keys are Awesome · Security Keys are Awesome and how to use them. Jen Tong Security Advocate Google Cloud Platform ... Server - Registration (node.js) function registrationChallengeHandler(req,

@MimmingCodes -- mimming.com

Let someone else deal with it

Page 81: Security Keys are Awesome · Security Keys are Awesome and how to use them. Jen Tong Security Advocate Google Cloud Platform ... Server - Registration (node.js) function registrationChallengeHandler(req,

@MimmingCodes -- mimming.com

BeyondCorpa.k.a. Google Cloud’sIdentity Aware Proxy

Source: GCP's BeyondCorp marketing page

Page 82: Security Keys are Awesome · Security Keys are Awesome and how to use them. Jen Tong Security Advocate Google Cloud Platform ... Server - Registration (node.js) function registrationChallengeHandler(req,

DemoIdentity Aware Proxy on a black box web app

Page 83: Security Keys are Awesome · Security Keys are Awesome and how to use them. Jen Tong Security Advocate Google Cloud Platform ... Server - Registration (node.js) function registrationChallengeHandler(req,

@MimmingCodes -- mimming.com

Page 84: Security Keys are Awesome · Security Keys are Awesome and how to use them. Jen Tong Security Advocate Google Cloud Platform ... Server - Registration (node.js) function registrationChallengeHandler(req,

@MimmingCodes -- mimming.com

Page 85: Security Keys are Awesome · Security Keys are Awesome and how to use them. Jen Tong Security Advocate Google Cloud Platform ... Server - Registration (node.js) function registrationChallengeHandler(req,

@MimmingCodes -- mimming.com

Page 86: Security Keys are Awesome · Security Keys are Awesome and how to use them. Jen Tong Security Advocate Google Cloud Platform ... Server - Registration (node.js) function registrationChallengeHandler(req,

@MimmingCodes -- mimming.com

Page 87: Security Keys are Awesome · Security Keys are Awesome and how to use them. Jen Tong Security Advocate Google Cloud Platform ... Server - Registration (node.js) function registrationChallengeHandler(req,

@MimmingCodes -- mimming.com

Page 88: Security Keys are Awesome · Security Keys are Awesome and how to use them. Jen Tong Security Advocate Google Cloud Platform ... Server - Registration (node.js) function registrationChallengeHandler(req,

@MimmingCodes -- mimming.com

Page 89: Security Keys are Awesome · Security Keys are Awesome and how to use them. Jen Tong Security Advocate Google Cloud Platform ... Server - Registration (node.js) function registrationChallengeHandler(req,

@MimmingCodes -- mimming.com

Page 90: Security Keys are Awesome · Security Keys are Awesome and how to use them. Jen Tong Security Advocate Google Cloud Platform ... Server - Registration (node.js) function registrationChallengeHandler(req,

@MimmingCodes -- mimming.com

Conclusion

● Passwords aren’t enough● Security keys work● That you should use them yourself● Many options to use

Page 91: Security Keys are Awesome · Security Keys are Awesome and how to use them. Jen Tong Security Advocate Google Cloud Platform ... Server - Registration (node.js) function registrationChallengeHandler(req,

@MimmingCodes -- mimming.com

Thank you!

Now go add it to your software so we can reduce pwnage

Slides: https://mimming.com/u2f

Page 92: Security Keys are Awesome · Security Keys are Awesome and how to use them. Jen Tong Security Advocate Google Cloud Platform ... Server - Registration (node.js) function registrationChallengeHandler(req,

@MimmingCodes -- mimming.com

Want to learn more? Here's a reading listThese slides: https://mimming.com/u2f

Spec● FIDO Alliance specs● Yubico U2F docs

Keys● A review of several commercial authenticators

Relaying Party (server) libs● Google’s reference implementation (Java)● Node.js

Other cool talks● Google Case Study: Strong Authentication● U can U2F

Page 93: Security Keys are Awesome · Security Keys are Awesome and how to use them. Jen Tong Security Advocate Google Cloud Platform ... Server - Registration (node.js) function registrationChallengeHandler(req,

@MimmingCodes -- mimming.com