keybase.io/herrjemand

Ackermann Yuriy

Sunny Wellington

A developer from

Student @VUW

...Previously worked @MMC & @SLSNZ

Recently fell in love with

Security and Crypto

authentication

Universal Second Factor

or why 2FA today is wubalubadubdub

DISCLAIMER

NOT security expert!

Todays menu:

  • Issues with passwords
  • Issues with 2FA
  • What is U2F?
    • How does it work?
      • Five steps to secure 2FA
    • Implementations?
    • Who uses it?
  • Demo

Why passwords don't exactly work?

People use weak passwords

People reuse passwords

Passwords are easy phished and keylogged

Passwords are hard to remember

Second Factor Authentication

aka 2FA

Solution?

Do you use 2FA?

Current 2FA solutions

OTP

Tokens

SMS

(TOTP and HOTP)

(RSA and OTP tokens)

Google Authenticator

Yubikey

Bank tokens

So what's the problem?

OTP

Tokens

SMS

(TOTP and HOTP)

(RSA and OTP tokens)

  • Phishable
  • Require shared key
  • Require synced time
  • Bad UX
  • Expensive
  • Require drivers
  • Bad UX
  • Fragile
  • One per site
  • Phishable
  • Expensive
  • Requires coverage
    • AUS Govt eg
  • Privacy
  • SIM can be reissued
    • Telegram. Russia
  • Not standardised
  • NIST Bans SMS
  • Bad UX

Current state of 2FA

Solution

FIDO U2F

What is FIDO?

Fast IDentity Online

Currently two standards

UAF and U2F

Passwordless authentication

Biometrics

Universal second factor authentication

Currently 2 standards

UAF and U2F

Passwordless authentication

Biometrics

Universal second factor authentication

...talk to me about UAF after the talk.

Universifying the 2nd

out of your factor

What is U2F?

Open protocol, for secure 2FA

What U2F's goal?

Strong authentication + Privacy

How does it work?

User level

Browser level

Secure 2FA in five steps

1: Challenge-response

2: Fishing protection

3: Application-specific keys

4. Device cloning detection

5. Key Attestation

Defence against dark arts

key exercise

User must confirm his decision to perform 2FA, by performing user gesture

(i.e. pressing the button)

Multiple identities for a single relying party

Gmail  

Webapp

iOS app

Android app

How do we deal with it?

(identity 1)

(identity 2)

(identity 3)

Application Facets

{
  "trustedFacets": [{
    "version": { "major": 1, "minor" : 0 },
    "ids": [
      "https://accounts.google.com",
      "https://myaccount.google.com",
      "https://security.google.com",

      "android:apk-key-hash:FD18FA800DD00C0D9D7724328B6D495E5CBA830F43A9AD232E0D1F2566F7F95B",
      "android:apk-key-hash:/Rj6gA3QDA2ddyQyi21JXly6gw9Dqa0jLg0fJWb3+Vs",

      "ios:bundle-id:com.google.SecurityKey.dogfood"
    ]
  }]
}

Must be server over HTTPS

So, what do we get from it?

Transport types

Currently ready specs for

USB

NFC

BLE

But, since U2F is just protocol

It can have different implementations

In hardware

 and software

U2F keys

Hardware

Software

Current users

http://www.dongleauth.info/

Current users

http://www.dongleauth.info/

Browser support

Yes

(need JS polyfill)

Plugin required

(Work in progress)

Yes*(Insider build)

(As part of FIDO2.0)

Browser support

Yes

(need JS polyfill)

Plugin

(In active dev)

Yes

*(Insider build)

What we have covered

  • Passwords don't exactly work
  • Current 2FA solutions
    • ...and their problems
  • U2F
    • Protocol
    • Implementations
    • Current market state

DEMO

Security conciderations

  • You must use HTTPS
  • Start using TLS Channel ID's
  • U2F is just 2FA. Don't use as primary factor.

Things to play with

  • https://github.com/Yubico/pam-u2f
  • https://github.com/Yubico/python-u2flib-server
  • https://github.com/Yubico/python-u2flib-host
  • https://github.com/gavinwahl/django-u2f
  • https://github.com/google/u2f-ref-code
  • https://u2f.jeman.de/

Specs and data

  • https://developers.yubico.com/U2F/
  • https://fidoalliance.org/specifications/download/
  • https://github.com/yubico
  • https://github.com/LedgerHQ  <-  JavaCard
  • FIDO Dev (fido-dev) mailing list

So, what next?

We need

Special thanks

@tveastman

@johnclegg

@ruthmcdavitt

@mytch444

Questions?

...and you can poke me online as well keybase.io/herrjemand

FIDO U2F KiwiPyCon2016 - OLD

By Ackermann Yuriy

FIDO U2F KiwiPyCon2016 - OLD

KiwiPyCon 2016 presentation on FIDO Universal Second Factor Authentication

  • 1,590