Killing Passwords with JavaScript
- 13. bcrypt / scrypt / pbkdf2
per-user salt
site secret
password & lockout policies
secure recovery
- 14. bcrypt / scrypt / pbkdf2
per-user salt
site secret
password & lockout policies
secure recovery
- 15. bcrypt / scrypt / pbkdf2
per-user salt
site secret
password & lockout policies
secure recovery
- 16. bcrypt / scrypt / pbkdf2
per-user salt
site secret
password & lockout policies
secure recovery
- 17. bcrypt / scrypt / pbkdf2
per-user salt
site secret
password & lockout policies
secure recovery
- 18. bcrypt / scrypt / pbkdf2
per-user salt
site secret
password & lockout policies
secure recovery
2013
2013
password
password
guidelines
guidelines
- 42. what if it were a standard
part of the web browser?
- 53. SMS with PIN codes
Jabber / XMPP
Yubikeys
LDAP accounts
Client certificates
- 54. 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": "..."
}
- 61. we can't wait for all browsers
to adopt Persona
solution: a temporary
javascript shim
- 72. we can't wait for all domains
to adopt Persona
solution: a temporary
centralised fallback
- 91. #3if a problem has
been around for a
while, it's probably
a hard one
- 97. how simple is it
for developers?
4 easy steps
https://developer.mozilla.org/docs/Persona/Quick_Setup
- 100. 1. load javascript library
2. setup login & logout callbacks
navigator.id.watch(...);
- 101. 1. load javascript library
2. setup login & logout callbacks
3. add login and logout buttons
navigator.id.request();
navigator.id.logout();
- 102. 1. load javascript library
2. setup login & logout callbacks
3. add login and logout buttons
4. verify proof of ownership
- 103. 1. load javascript library
2. setup login & logout callbacks
3. add login and logout buttons
4. verify proof of ownership
no API key
needed
- 113. To learn more about Persona:
https://login.persona.org/
http://identity.mozilla.com/
https://developer.mozilla.org/docs/Persona/Why_Persona
https://developer.mozilla.org/docs/Persona/Quick_Setup
https://github.com/mozilla/browserid-cookbook
https://developer.mozilla.org/docs/Persona/Libraries_and_plugins
https://wiki.mozilla.org/Identity#Get_Involved
@fmarier http://fmarier.org
- 119. 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
- 120. 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
- 121. 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
- 122. 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
- 123. © 2013 François Marier <francois@mozilla.com>
This work is licensed under a
Creative Commons Attribution-ShareAlike 3.0 New Zealand License.
Laptop password: https://secure.flickr.com/photos/reidrac/4696900602/
Top 500 passwords: http://xato.net/passwords/more-top-worst-passwords/
Restaurant dinner: https://secure.flickr.com/photos/yourdon/3977084094/
Parchment: https://secure.flickr.com/photos/27613359@N03/6750396225/
Yubikey: https://secure.flickr.com/photos/knk/3379897261/
Stop sign: https://secure.flickr.com/photos/artbystevejohnson/6673406227/
Photo credits: