Mozilla Persona for your domain

75
François Marier – @fmarier Mozilla Persona for your domain

description

Passwords are a big problem on the Web. Users pick bad ones and re-use them all over the place, developers can’t seem to be able to secure them. We need something better, but almost all of the new login systems for the Web rely on centralised gate keepers. We can do better than this. Persona is a new way of logging users in. It’s simple, decentralised and allows users to choose who can vouch for them. It’s also designed to provide meaningful privacy to all users regardless of their level of expertise. This talk will highlight the main features of Persona and introduce the crypto behind its underlying protocol, BrowserID. It will also provide an overview of what organisations can do to support Persona natively on their domains.

Transcript of Mozilla Persona for your domain

Page 1: Mozilla Persona for your domain

François Marier – @fmarier

Mozilla Personafor your domain

Page 2: Mozilla Persona for your domain

solving thepassword problem

on the web

Page 3: Mozilla Persona for your domain

problem #1:

passwords are hard to secure

Page 4: Mozilla Persona for your domain

bcrypt / scrypt / pbkdf2

per-user salt

site secret

password & lockout policies

secure recovery

Page 5: Mozilla Persona for your domain

bcrypt / scrypt / pbkdf2

per-user salt

site secret

password & lockout policies

secure recovery

Page 6: Mozilla Persona for your domain

bcrypt / scrypt / pbkdf2

per-user salt

site secret

password & lockout policies

secure recovery

Page 7: Mozilla Persona for your domain

bcrypt / scrypt / pbkdf2

per-user salt

site secret

password & lockout policies

secure recovery

Page 8: Mozilla Persona for your domain

bcrypt / scrypt / pbkdf2

per-user salt

site secret

password & lockout policies

secure recovery

Page 9: Mozilla Persona for your domain

bcrypt / scrypt / pbkdf2

per-user salt

site secret

password & lockout policies

secure recovery

20132013

passwordpassword

guidelines

guidelines

Page 10: Mozilla Persona for your domain

passwords are hard to secure

they are a liability

Page 11: Mozilla Persona for your domain

ALTER TABLE userDROP COLUMN password;

Page 12: Mozilla Persona for your domain

problem #2:

passwords are hard to remember

Page 13: Mozilla Persona for your domain
Page 14: Mozilla Persona for your domain
Page 15: Mozilla Persona for your domain

users have two strategies

Page 16: Mozilla Persona for your domain

1. pick an easy password

Page 17: Mozilla Persona for your domain
Page 18: Mozilla Persona for your domain

2. reuse your password

Page 19: Mozilla Persona for your domain

negative externality:

sites that don't care about securityimpose a cost on more important sites

Page 20: Mozilla Persona for your domain

passwords are hard to remember

they need to be reset

Page 21: Mozilla Persona for your domain
Page 22: Mozilla Persona for your domain

controlemail

account

controlall

accounts=

Page 23: Mozilla Persona for your domain

existing login solutions

Page 24: Mozilla Persona for your domain

client certificates

Page 25: Mozilla Persona for your domain

SAML

Page 26: Mozilla Persona for your domain
Page 27: Mozilla Persona for your domain
Page 28: Mozilla Persona for your domain

existing login systemsare not good enough

Page 29: Mozilla Persona for your domain

● decentralised● simple● cross-browser

Page 30: Mozilla Persona for your domain

how does it work?

Page 32: Mozilla Persona for your domain

getting a proof of email ownership

Page 33: Mozilla Persona for your domain

authenticate?

Page 34: Mozilla Persona for your domain

authenticate?

public key

Page 35: Mozilla Persona for your domain

authenticate?

public key

signed public key

Page 36: Mozilla Persona for your domain

you have a signed statement from yourprovider that you own your email address

Page 37: Mozilla Persona for your domain
Page 38: Mozilla Persona for your domain

logging into a 3rd party site

Page 39: Mozilla Persona for your domain

Valid for: 2 minutes

wikipedia.org

assertion

Page 40: Mozilla Persona for your domain

Valid for: 2 minutes

wikipedia.org

check audience

assertion

Page 41: Mozilla Persona for your domain

Valid for: 2 minutes

wikipedia.org

check audiencecheck expiry

assertion

Page 42: Mozilla Persona for your domain

Valid for: 2 minutes

wikipedia.org

check audiencecheck expirycheck signature

assertion

Page 43: Mozilla Persona for your domain

assertion

Valid for: 2 minutes

wikipedia.org

public key

Page 44: Mozilla Persona for your domain

assertion

Valid for: 2 minutes

wikipedia.org

Page 45: Mozilla Persona for your domain

assertion

session cookie

Page 46: Mozilla Persona for your domain

demo #1:

http://crossword.thetimes.co.uk/

[email protected]

Page 47: Mozilla Persona for your domain

Persona is already adecentralised system

Page 48: Mozilla Persona for your domain

SMS with PIN codes

Page 49: Mozilla Persona for your domain

SMS with PIN codes

Jabber / XMPP

Page 50: Mozilla Persona for your domain

SMS with PIN codes

Jabber / XMPP

Yubikeys

Page 51: Mozilla Persona for your domain

SMS with PIN codes

Jabber / XMPP

Yubikeys

LDAP accounts

Page 52: Mozilla Persona for your domain

SMS with PIN codes

Jabber / XMPP

Yubikeys

LDAP accounts

Client certificates

Page 53: Mozilla Persona for your domain

SMS with PIN codes

Jabber / XMPP

Yubikeys

LDAP accounts

Client certificates

Password-wrapped secret key

{ "public-key": { "algorithm": "RS", "n":"685484565272...", "e":"65537" }, "encrypted-private-key": { "iv": "tmg7gztUQT...", "salt": "JMtGwlF5UWY", "ct": "8DdOjD1IA1..." }, "authentication": "...", "provisioning": "..."}

Page 54: Mozilla Persona for your domain

decentralisation is the answer, but it's not

a product adoption strategy

Page 55: Mozilla Persona for your domain

we can't wait for all domainsto adopt Persona

Page 56: Mozilla Persona for your domain

we can't wait for all domainsto adopt Persona

solution: a temporarycentralised fallback

Page 57: Mozilla Persona for your domain

demo #2:

http://sloblog.io/

[email protected]

Page 58: Mozilla Persona for your domain

Persona already workswith all email domains

Page 59: Mozilla Persona for your domain
Page 60: Mozilla Persona for your domain

Persona supportsall modern browsers

>= 8

Page 61: Mozilla Persona for your domain

Persona is decentralised,simple and cross-browser

Page 62: Mozilla Persona for your domain

how can I add Personasupport to my domain?

Page 63: Mozilla Persona for your domain

support documenthttps://eyedee.me/.well-known/browserid:

{ "public-key": { "algorithm":"RS", "n":"8606...", "e":"65537" }, "authentication": "/browserid/sign_in.html", "provisioning": "/browserid/provision.html"}

Page 64: Mozilla Persona for your domain

https://eyedee.me/.well-known/browserid:

{ "public-key": { "algorithm":"RS", "n":"8606...", "e":"65537" }, "authentication": "/browserid/sign_in.html", "provisioning": "/browserid/provision.html"}

Page 65: Mozilla Persona for your domain

https://eyedee.me/.well-known/browserid:

{ "public-key": { "algorithm":"RS", "n":"8606...", "e":"65537" }, "authentication": "/browserid/sign_in.html", "provisioning": "/browserid/provision.html"}

Page 66: Mozilla Persona for your domain

https://eyedee.me/.well-known/browserid:

{ "public-key": { "algorithm":"RS", "n":"8606...", "e":"65537" }, "authentication": "/browserid/sign_in.html", "provisioning": "/browserid/provision.html"}

Page 67: Mozilla Persona for your domain

https://eyedee.me/.well-known/browserid:

{ "public-key": { "algorithm":"RS", "n":"8606...", "e":"65537" }, "authentication": "/browserid/sign_in.html", "provisioning": "/browserid/provision.html"}

Page 68: Mozilla Persona for your domain

identity provider API

1. check for your /.well-known/browserid

2. try the provisioning endpoint

3. show the authentication page

4. call the provisioning endpoint again

Page 69: Mozilla Persona for your domain

identity provider API

1. check for your /.well-known/browserid

2. try the provisioning endpoint

3. show the authentication page

4. call the provisioning endpoint again

Page 70: Mozilla Persona for your domain

identity provider API

1. check for your /.well-known/browserid

2. try the provisioning endpoint

3. show the authentication page

4. call the provisioning endpoint again

Page 71: Mozilla Persona for your domain

identity provider API

1. check for your /.well-known/browserid

2. try the provisioning endpoint

3. show the authentication page

4. call the provisioning endpoint again

Page 72: Mozilla Persona for your domain

as an organization, you control:

● details of the authentication process

Page 73: Mozilla Persona for your domain

as an organization, you control:

● details of the authentication process

● the duration of certificates

Page 74: Mozilla Persona for your domain

To learn more about Persona:

https://login.persona.org/http://identity.mozilla.com/

https://developer.mozilla.org/docs/Persona/Quick_Setuphttps://developer.mozilla.org/Persona/Implementing_a_Persona_IdP

https://github.com/mozilla/browserid-cookbookhttps://developer.mozilla.org/docs/Persona/Libraries_and_plugins

https://wiki.mozilla.org/Identity#Get_Involved

@fmarier http://fmarier.org

Page 75: Mozilla Persona for your domain

© 2013 François Marier <[email protected]>This work is licensed under aCreative Commons Attribution-ShareAlike 3.0 New Zealand License.

Door man: https://secure.flickr.com/photos/wildlife_encounters/8024166802/

Top 500 passwords: http://xato.net/passwords/more-top-worst-passwords/

Parchment: https://secure.flickr.com/photos/27613359@N03/6750396225/

Cookie on tray: https://secure.flickr.com/photos/jamisonjudd/4810986199/

Uncle Sam: https://secure.flickr.com/photos/donkeyhotey/5666065982/

US passport: https://secure.flickr.com/photos/damian613/5077609023/

Stop sign: https://secure.flickr.com/photos/artbystevejohnson/6673406227/

Photo credits: