90
François Marier – @fmarier passwords and freedom: can we lose the former and retain the latter?

Passwords and freedom: can we lose the former and retain the latter?

Embed Size (px)

Citation preview

Page 1: Passwords and freedom: can we lose the former and retain the latter?

François Marier – @fmarier

passwords and freedom:can we lose the former and retain the latter?

Page 2: Passwords and freedom: can we lose the former and retain the latter?

passwords

Page 3: Passwords and freedom: can we lose the former and retain the latter?

problem #1:

passwords are hard to secure

Page 4: Passwords and freedom: can we lose the former and retain the latter?
Page 5: Passwords and freedom: can we lose the former and retain the latter?
Page 6: Passwords and freedom: can we lose the former and retain the latter?
Page 7: Passwords and freedom: can we lose the former and retain the latter?
Page 8: Passwords and freedom: can we lose the former and retain the latter?
Page 9: Passwords and freedom: can we lose the former and retain the latter?
Page 10: Passwords and freedom: can we lose the former and retain the latter?
Page 11: Passwords and freedom: can we lose the former and retain the latter?
Page 12: Passwords and freedom: can we lose the former and retain the latter?
Page 13: Passwords and freedom: can we lose the former and retain the latter?
Page 14: Passwords and freedom: can we lose the former and retain the latter?

passwords are hard to secure

they are a liability

Page 15: Passwords and freedom: can we lose the former and retain the latter?

ALTER TABLE userDROP COLUMN password;

Page 16: Passwords and freedom: can we lose the former and retain the latter?

problem #2:

passwords are hard to remember

Page 17: Passwords and freedom: can we lose the former and retain the latter?

pick an easy password

Page 18: Passwords and freedom: can we lose the former and retain the latter?

pick an easy password

use it everywhere

Page 19: Passwords and freedom: can we lose the former and retain the latter?
Page 20: Passwords and freedom: can we lose the former and retain the latter?
Page 21: Passwords and freedom: can we lose the former and retain the latter?

decentralized

Page 22: Passwords and freedom: can we lose the former and retain the latter?

privacy®

Page 23: Passwords and freedom: can we lose the former and retain the latter?

existing login systemsare not good enough

Page 24: Passwords and freedom: can we lose the former and retain the latter?

ideal web-wide identity system

Page 25: Passwords and freedom: can we lose the former and retain the latter?

● decentralized● simple● cross-browser

ideal web-wide identity system

Page 26: Passwords and freedom: can we lose the former and retain the latter?

● decentralized● simple● cross-browser

ideal web-wide identity system

Page 27: Passwords and freedom: can we lose the former and retain the latter?

● decentralized● simple● cross-browser

ideal web-wide identity system

Page 28: Passwords and freedom: can we lose the former and retain the latter?

● decentralized● simple● cross-browser

Page 29: Passwords and freedom: can we lose the former and retain the latter?

how does it work?

Page 31: Passwords and freedom: can we lose the former and retain the latter?
Page 32: Passwords and freedom: can we lose the former and retain the latter?

demo #1:

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

[email protected]

Page 33: Passwords and freedom: can we lose the former and retain the latter?

Persona is already adecentralized system

Page 34: Passwords and freedom: can we lose the former and retain the latter?

decentralization is the answer, but it's not

a product adoption strategy

Page 35: Passwords and freedom: can we lose the former and retain the latter?

we can't wait for all domainsto adopt Persona

Page 36: Passwords and freedom: can we lose the former and retain the latter?

we can't wait for all domainsto adopt Persona

solution: a temporarycentralized fallback

Page 37: Passwords and freedom: can we lose the former and retain the latter?

demo #2:

http://sloblog.io

[email protected]

Page 38: Passwords and freedom: can we lose the former and retain the latter?

Persona already workswith all email domains

Page 39: Passwords and freedom: can we lose the former and retain the latter?

identity bridging

Page 40: Passwords and freedom: can we lose the former and retain the latter?

demo #3:

http://www.reasonwell.com/

[email protected]

Page 41: Passwords and freedom: can we lose the former and retain the latter?
Page 42: Passwords and freedom: can we lose the former and retain the latter?
Page 43: Passwords and freedom: can we lose the former and retain the latter?
Page 44: Passwords and freedom: can we lose the former and retain the latter?

Persona supportsall modern browsers

>= 8

Page 45: Passwords and freedom: can we lose the former and retain the latter?

Persona is decentralized,simple and cross-browser

Page 46: Passwords and freedom: can we lose the former and retain the latter?

it's simple for users, but is it also

simple for developers?

Page 47: Passwords and freedom: can we lose the former and retain the latter?
Page 48: Passwords and freedom: can we lose the former and retain the latter?

<script src=”https://login.persona.org/include.js”></script></body></html>

Page 49: Passwords and freedom: can we lose the former and retain the latter?

navigator.id.watch({ loggedInEmail: “[email protected]”, onlogin: function (assertion) { $.post('/login', {assertion: assertion}, function (data) { // do something } ); }, onlogout: function () { window.location = '/logout'; }});

Page 50: Passwords and freedom: can we lose the former and retain the latter?

navigator.id.watch({ loggedInUser: “[email protected]”, onlogin: function (assertion) { $.post('/login', {assertion: assertion}, function (data) { // do something } ); }, onlogout: function () { window.location = '/logout'; }});

Page 51: Passwords and freedom: can we lose the former and retain the latter?

navigator.id.watch({ loggedInUser: null, onlogin: function (assertion) { $.post('/login', {assertion: assertion}, function (data) { // do something } ); }, onlogout: function () { window.location = '/logout'; }});

Page 52: Passwords and freedom: can we lose the former and retain the latter?

navigator.id.watch({ loggedInUser: null, onlogin: function (assertion) { $.post('/login', {assertion: assertion}, function (data) { // do something } ); }, onlogout: function () { window.location = '/logout'; }});

Page 53: Passwords and freedom: can we lose the former and retain the latter?

navigator.id.watch({ loggedInUser: null, onlogin: function (assertion) { $.post('/login', {assertion: assertion}, function (data) { window.location = '/'; } ); }, onlogout: function () { window.location = '/logout'; }});

Page 54: Passwords and freedom: can we lose the former and retain the latter?
Page 55: Passwords and freedom: can we lose the former and retain the latter?

navigator.id.request()

Page 56: Passwords and freedom: can we lose the former and retain the latter?
Page 57: Passwords and freedom: can we lose the former and retain the latter?
Page 58: Passwords and freedom: can we lose the former and retain the latter?
Page 59: Passwords and freedom: can we lose the former and retain the latter?

navigator.id.watch({ loggedInUser: null, onlogin: function (assertion) { $.post('/login', {assertion: assertion}, function (data) { window.location = '/'; } ); }, onlogout: function () { window.location = '/logout'; }});

Page 60: Passwords and freedom: can we lose the former and retain the latter?

navigator.id.watch({ loggedInUser: null, onlogin: function (assertion) { $.post('/login', {assertion: assertion}, function (data) { window.location = '/home'; } ); }, onlogout: function () { window.location = '/logout'; }});

Page 61: Passwords and freedom: can we lose the former and retain the latter?

$ curl -d "assertion=<ASSERTION>& audience=http://123done.org" https://verifier.login.persona.org/verify

Page 62: Passwords and freedom: can we lose the former and retain the latter?

$ curl -d "assertion=<ASSERTION>& audience=http://123done.org" https://verifier.login.persona.org/verify

Page 63: Passwords and freedom: can we lose the former and retain the latter?

{ status: “okay”,

audience: “http://123done.org”,

expires: 1344849682560,

email: “[email protected]”,

issuer: “login.persona.org”}

Page 64: Passwords and freedom: can we lose the former and retain the latter?

{ status: “failed”,

reason: “assertion has expired”}

Page 65: Passwords and freedom: can we lose the former and retain the latter?
Page 66: Passwords and freedom: can we lose the former and retain the latter?
Page 67: Passwords and freedom: can we lose the former and retain the latter?
Page 68: Passwords and freedom: can we lose the former and retain the latter?

navigator.id.logout()

Page 69: Passwords and freedom: can we lose the former and retain the latter?

navigator.id.watch({ loggedInUser: null, onlogin: function (assertion) { $.post('/login', {assertion: assertion}, function (data) { window.location = '/home'; } ); }, onlogout: function () { window.location = '/logout'; }});

Page 70: Passwords and freedom: can we lose the former and retain the latter?
Page 71: Passwords and freedom: can we lose the former and retain the latter?

1. load javascript library

Page 72: Passwords and freedom: can we lose the former and retain the latter?

1. load javascript library

2. setup login & logout callbacks

Page 73: Passwords and freedom: can we lose the former and retain the latter?

1. load javascript library

2. setup login & logout callbacks

3. add login and logout buttons

Page 74: Passwords and freedom: can we lose the former and retain the latter?

1. load javascript library

2. setup login & logout callbacks

3. add login and logout buttons

4. verify proof of ownership

Page 75: Passwords and freedom: can we lose the former and retain the latter?

you can add support forPersona in four easy steps

Page 76: Passwords and freedom: can we lose the former and retain the latter?

one simple request

Page 77: Passwords and freedom: can we lose the former and retain the latter?
Page 78: Passwords and freedom: can we lose the former and retain the latter?

building a new site:default to Persona

Page 79: Passwords and freedom: can we lose the former and retain the latter?

working on an existing site/app:add support for Persona

Page 80: Passwords and freedom: can we lose the former and retain the latter?

To learn more about Persona:

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

https://developer.mozilla.org/docs/Persona/Why_Personahttps://developer.mozilla.org/docs/Persona/Quick_Setup

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

http://123done.org/https://wiki.mozilla.org/Identity#Get_Involved

@fmarier http://fmarier.org

Page 81: Passwords and freedom: can we lose the former and retain the latter?

identity provider API

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

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

Page 82: Passwords and freedom: can we lose the former and retain the latter?

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

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

identity provider API

Page 83: Passwords and freedom: can we lose the former and retain the latter?

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

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

identity provider API

Page 84: Passwords and freedom: can we lose the former and retain the latter?

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

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

identity provider API

Page 85: Passwords and freedom: can we lose the former and retain the latter?

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

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

identity provider API

Page 86: Passwords and freedom: can we lose the former and retain the latter?

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 87: Passwords and freedom: can we lose the former and retain the latter?

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 88: Passwords and freedom: can we lose the former and retain the latter?

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 89: Passwords and freedom: can we lose the former and retain the latter?

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 90: Passwords and freedom: can we lose the former and retain the latter?

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

Hotel doorman: 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/

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

Photo credits: