october 3 2008 it university copenhagen › talks › osd-openid.pdf · october 3rd 2008 it...

68
October 3 October 3 rd rd 2008 2008 IT University IT University Copenhagen Copenhagen Simon Josefsson Head of R&D [email protected] http://www.yubico.com/

Upload: others

Post on 05-Jul-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: October 3 2008 IT University Copenhagen › talks › osd-openid.pdf · October 3rd 2008 IT University Copenhagen Simon Josefsson Head of R&D simon@yubico.com

October 3October 3rdrd 20082008IT UniversityIT UniversityCopenhagenCopenhagen

Simon JosefssonHead of R&[email protected]://www.yubico.com/

Page 2: October 3 2008 IT University Copenhagen › talks › osd-openid.pdf · October 3rd 2008 IT University Copenhagen Simon Josefsson Head of R&D simon@yubico.com

What is...

...?

Page 3: October 3 2008 IT University Copenhagen › talks › osd-openid.pdf · October 3rd 2008 IT University Copenhagen Simon Josefsson Head of R&D simon@yubico.com

Decentralized web-basedauthentication system

Page 4: October 3 2008 IT University Copenhagen › talks › osd-openid.pdf · October 3rd 2008 IT University Copenhagen Simon Josefsson Head of R&D simon@yubico.com

What does that mean?

Page 5: October 3 2008 IT University Copenhagen › talks › osd-openid.pdf · October 3rd 2008 IT University Copenhagen Simon Josefsson Head of R&D simon@yubico.com

As User:

You can reduce the number of username and passwords you

need to remember

Page 6: October 3 2008 IT University Copenhagen › talks › osd-openid.pdf · October 3rd 2008 IT University Copenhagen Simon Josefsson Head of R&D simon@yubico.com
Page 7: October 3 2008 IT University Copenhagen › talks › osd-openid.pdf · October 3rd 2008 IT University Copenhagen Simon Josefsson Head of R&D simon@yubico.com

As Developer:

You don't need to maintain a username and password database

for your web site

Page 8: October 3 2008 IT University Copenhagen › talks › osd-openid.pdf · October 3rd 2008 IT University Copenhagen Simon Josefsson Head of R&D simon@yubico.com

aka: out-source the authenticationservice to someone else!

Page 9: October 3 2008 IT University Copenhagen › talks › osd-openid.pdf · October 3rd 2008 IT University Copenhagen Simon Josefsson Head of R&D simon@yubico.com
Page 10: October 3 2008 IT University Copenhagen › talks › osd-openid.pdf · October 3rd 2008 IT University Copenhagen Simon Josefsson Head of R&D simon@yubico.com
Page 11: October 3 2008 IT University Copenhagen › talks › osd-openid.pdf · October 3rd 2008 IT University Copenhagen Simon Josefsson Head of R&D simon@yubico.com

OpenID Terminology..?

Page 12: October 3 2008 IT University Copenhagen › talks › osd-openid.pdf · October 3rd 2008 IT University Copenhagen Simon Josefsson Head of R&D simon@yubico.com

“User-Supplied Identifier”

What you type at the

OpenID URL prompt

simonj.myopenid.com

josefsson.org

Page 13: October 3 2008 IT University Copenhagen › talks › osd-openid.pdf · October 3rd 2008 IT University Copenhagen Simon Josefsson Head of R&D simon@yubico.com

“Relying Party” (RP) aka “Consumer”

Web site that wants

proof of who you are

WikiTravel

Zooomr

LiveJournal

Page 14: October 3 2008 IT University Copenhagen › talks › osd-openid.pdf · October 3rd 2008 IT University Copenhagen Simon Josefsson Head of R&D simon@yubico.com

“OpenID Provider” (OP)

Web site that you rely on for authentication services

myOpenID

VeriSign PIP

Livejournal

Yubico

Page 15: October 3 2008 IT University Copenhagen › talks › osd-openid.pdf · October 3rd 2008 IT University Copenhagen Simon Josefsson Head of R&D simon@yubico.com

How does OpenID work technically?

Page 16: October 3 2008 IT University Copenhagen › talks › osd-openid.pdf · October 3rd 2008 IT University Copenhagen Simon Josefsson Head of R&D simon@yubico.com

1. User browse to Relying Party (RP)

2. Enters User-Supplied Identifier in a HTML form, posted back to RP

Page 17: October 3 2008 IT University Copenhagen › talks › osd-openid.pdf · October 3rd 2008 IT University Copenhagen Simon Josefsson Head of R&D simon@yubico.com

HTML discovery:

3. RP retrieve identifier URL

4. Extract META link.rel fields

Page 18: October 3 2008 IT University Copenhagen › talks › osd-openid.pdf · October 3rd 2008 IT University Copenhagen Simon Josefsson Head of R&D simon@yubico.com

RP can create a Diffie-Hellman association with the OP at this point. The goal is to set up a shared secret between RP and OP.

Optional step! Not discussed here.

Page 19: October 3 2008 IT University Copenhagen › talks › osd-openid.pdf · October 3rd 2008 IT University Copenhagen Simon Josefsson Head of R&D simon@yubico.com

5. RP redirects browser to server indicated by openid.server – expecting to resume at openid.return

HTTP/1.0 302 Moved Temporarilyhttp://openid.yubico.com/server.php?openid.assoc_handle=

%7BHMAC-SHA1%7D%7B48dcc8d3%7D%7Bbvqf%2Fw%3D%3D%7D&openid.identity=http%3A%2F%2Fopenid.yubico.com%2Fserver.php%2Fidpage%3Fuser%3Dekhgjhbctrgn&openid.mode=checkid_setup&openid.return_to=http%3A%2F%2Fwikitravel.org%2Fen%2FSpecial%3AOpenIDFinish%3Fnonce%3DFJm3Ncp4&openid.sreg.optional=nickname%2Cemail%2Cfullname%2Clanguage%2Ctimezone&openid.trust_root=http%3A%2F%2Fwikitravel.org%2Fen%2F

Page 20: October 3 2008 IT University Copenhagen › talks › osd-openid.pdf · October 3rd 2008 IT University Copenhagen Simon Josefsson Head of R&D simon@yubico.com

6. User-Agent requests the new URL

7. User authenticates and/or accepts, HTML form posted back to OP

Page 21: October 3 2008 IT University Copenhagen › talks › osd-openid.pdf · October 3rd 2008 IT University Copenhagen Simon Josefsson Head of R&D simon@yubico.com

8. OpenID Provider redirects browser back to Relying Party

HTTP/1.0 302 Moved Temporarilyhttp://wikitravel.org/en/Special:OpenIDFinish?

nonce=FJm3Ncp4&openid.assoc_handle=%7BHMAC-SHA1%7D%7B48dcc8d3%7D%7Bbvqf%2Fw%3D%3D%7D&openid.identity=http%3A%2F%2Fopenid.yubico.com%2Fserver.php%2Fidpage%3Fuser%3Dekhgjhbctrgn&openid.mode=id_res&openid.op_endpoint=http%3A%2F%2Fopenid.yubico.com%2Fserver.php&openid.response_nonce=2008-09-26T12%3A42%3A52ZgcvcMd&openid.return_to=http%3A%2F%2Fwikitravel.org%2Fen%2FSpecial%3AOpenIDFinish%3Fnonce%3DFJm3Ncp4&openid.sig=ybS%2BIXKlHUlmi3UkdeO7r0BS%2FxY%3D&openid.signed=assoc_handle%2Cidentity%2Cmode%2Cop_endpoint%2Cresponse_nonce%2Creturn_to%2Csigned

Page 22: October 3 2008 IT University Copenhagen › talks › osd-openid.pdf · October 3rd 2008 IT University Copenhagen Simon Josefsson Head of R&D simon@yubico.com

9. Browser requests the new URL

10. After receiving the response, RP verifies the signature

Page 23: October 3 2008 IT University Copenhagen › talks › osd-openid.pdf · October 3rd 2008 IT University Copenhagen Simon Josefsson Head of R&D simon@yubico.com

The RP verifies the signature in the response by using the shared secret key established via D-H or using a direct HTTP call to the OP.

Page 24: October 3 2008 IT University Copenhagen › talks › osd-openid.pdf · October 3rd 2008 IT University Copenhagen Simon Josefsson Head of R&D simon@yubico.com

OpenID Trust Relationship

Page 25: October 3 2008 IT University Copenhagen › talks › osd-openid.pdf · October 3rd 2008 IT University Copenhagen Simon Josefsson Head of R&D simon@yubico.com

User

OpenID Provider

Relying Party

Page 26: October 3 2008 IT University Copenhagen › talks › osd-openid.pdf · October 3rd 2008 IT University Copenhagen Simon Josefsson Head of R&D simon@yubico.com

And this is new?

Page 28: October 3 2008 IT University Copenhagen › talks › osd-openid.pdf · October 3rd 2008 IT University Copenhagen Simon Josefsson Head of R&D simon@yubico.com

Why chose OpenIDover the rest?

Page 29: October 3 2008 IT University Copenhagen › talks › osd-openid.pdf · October 3rd 2008 IT University Copenhagen Simon Josefsson Head of R&D simon@yubico.com

“Solve one problemand do it well”

Page 30: October 3 2008 IT University Copenhagen › talks › osd-openid.pdf · October 3rd 2008 IT University Copenhagen Simon Josefsson Head of R&D simon@yubico.com

Few of the other technologies are optimized for web applications

Page 31: October 3 2008 IT University Copenhagen › talks › osd-openid.pdf · October 3rd 2008 IT University Copenhagen Simon Josefsson Head of R&D simon@yubico.com

Disadvantage: OpenID is only for web applications

(...although some people are trying to use it for other purposes...)

Page 32: October 3 2008 IT University Copenhagen › talks › osd-openid.pdf · October 3rd 2008 IT University Copenhagen Simon Josefsson Head of R&D simon@yubico.com

Other standards arealready on-board

Page 33: October 3 2008 IT University Copenhagen › talks › osd-openid.pdf · October 3rd 2008 IT University Copenhagen Simon Josefsson Head of R&D simon@yubico.com

Trend to use OpenID as the user and browser interface, but

use other technologyin the backend (e.g., SAML) and

between RP and OP

Page 34: October 3 2008 IT University Copenhagen › talks › osd-openid.pdf · October 3rd 2008 IT University Copenhagen Simon Josefsson Head of R&D simon@yubico.com

Are there securityproblems in OpenID?

Page 35: October 3 2008 IT University Copenhagen › talks › osd-openid.pdf · October 3rd 2008 IT University Copenhagen Simon Josefsson Head of R&D simon@yubico.com

Phishing is a real problem

Page 36: October 3 2008 IT University Copenhagen › talks › osd-openid.pdf · October 3rd 2008 IT University Copenhagen Simon Josefsson Head of R&D simon@yubico.com

OpenID Phishing Attack

1. User browses to Evil-RP2. Instead of redirecting user to OP,

Evil-RP redirects user to OP'3. OP' is controlled by Evil-RP and

looks the same as OP4. OP' asks for user's credentials5. User doesn't notice he is talking

to OP' != OP and enters long-term credentials

6. Profit

Page 37: October 3 2008 IT University Copenhagen › talks › osd-openid.pdf · October 3rd 2008 IT University Copenhagen Simon Josefsson Head of R&D simon@yubico.com

Solutions?

Page 38: October 3 2008 IT University Copenhagen › talks › osd-openid.pdf · October 3rd 2008 IT University Copenhagen Simon Josefsson Head of R&D simon@yubico.com

“Never enter passwords in the attackers' control flow”

Page 39: October 3 2008 IT University Copenhagen › talks › osd-openid.pdf · October 3rd 2008 IT University Copenhagen Simon Josefsson Head of R&D simon@yubico.com

Microsoft CardSpace

What about flash..?

Page 40: October 3 2008 IT University Copenhagen › talks › osd-openid.pdf · October 3rd 2008 IT University Copenhagen Simon Josefsson Head of R&D simon@yubico.com

Better Solutions?

Page 41: October 3 2008 IT University Copenhagen › talks › osd-openid.pdf · October 3rd 2008 IT University Copenhagen Simon Josefsson Head of R&D simon@yubico.com

Protocol changes to OpenID?(unlikely!)

Page 42: October 3 2008 IT University Copenhagen › talks › osd-openid.pdf · October 3rd 2008 IT University Copenhagen Simon Josefsson Head of R&D simon@yubico.com

Browser integration of OpenID

Page 43: October 3 2008 IT University Copenhagen › talks › osd-openid.pdf · October 3rd 2008 IT University Copenhagen Simon Josefsson Head of R&D simon@yubico.com

Just Avoid Passwords!

Page 44: October 3 2008 IT University Copenhagen › talks › osd-openid.pdf · October 3rd 2008 IT University Copenhagen Simon Josefsson Head of R&D simon@yubico.com

HTTPS with client-side certificates

(complex!)

Page 45: October 3 2008 IT University Copenhagen › talks › osd-openid.pdf · October 3rd 2008 IT University Copenhagen Simon Josefsson Head of R&D simon@yubico.com

Hardware authentication devices

Page 46: October 3 2008 IT University Copenhagen › talks › osd-openid.pdf · October 3rd 2008 IT University Copenhagen Simon Josefsson Head of R&D simon@yubico.com
Page 47: October 3 2008 IT University Copenhagen › talks › osd-openid.pdf · October 3rd 2008 IT University Copenhagen Simon Josefsson Head of R&D simon@yubico.com

Company startedin May 2007

Page 48: October 3 2008 IT University Copenhagen › talks › osd-openid.pdf · October 3rd 2008 IT University Copenhagen Simon Josefsson Head of R&D simon@yubico.com

9 people in Stockholmand California

Page 49: October 3 2008 IT University Copenhagen › talks › osd-openid.pdf · October 3rd 2008 IT University Copenhagen Simon Josefsson Head of R&D simon@yubico.com

Invention: USB-basedone-time-password generator

Page 50: October 3 2008 IT University Copenhagen › talks › osd-openid.pdf · October 3rd 2008 IT University Copenhagen Simon Josefsson Head of R&D simon@yubico.com

Product History:Version 0, Version 1, ...

Page 51: October 3 2008 IT University Copenhagen › talks › osd-openid.pdf · October 3rd 2008 IT University Copenhagen Simon Josefsson Head of R&D simon@yubico.com

RFID card with buttons, card reader

and proprietary device drivers

Page 52: October 3 2008 IT University Copenhagen › talks › osd-openid.pdf · October 3rd 2008 IT University Copenhagen Simon Josefsson Head of R&D simon@yubico.com

USB key with pin entry

Page 53: October 3 2008 IT University Copenhagen › talks › osd-openid.pdf · October 3rd 2008 IT University Copenhagen Simon Josefsson Head of R&D simon@yubico.com

USB key with one button

Page 54: October 3 2008 IT University Copenhagen › talks › osd-openid.pdf · October 3rd 2008 IT University Copenhagen Simon Josefsson Head of R&D simon@yubico.com

Ultra-ThinTouch button

Page 55: October 3 2008 IT University Copenhagen › talks › osd-openid.pdf · October 3rd 2008 IT University Copenhagen Simon Josefsson Head of R&D simon@yubico.com

yubicoMarket positioning yubicoS

ecu

rity

Overall simplicity and cost-efficiency

Software certificates

Digital keyboards

USB- /smartcards

Username / passwords

SMS autentication

Authenication tokens

Page 56: October 3 2008 IT University Copenhagen › talks › osd-openid.pdf · October 3rd 2008 IT University Copenhagen Simon Josefsson Head of R&D simon@yubico.com

How does theYubikey work?

Page 57: October 3 2008 IT University Copenhagen › talks › osd-openid.pdf · October 3rd 2008 IT University Copenhagen Simon Josefsson Head of R&D simon@yubico.com

128-bit AES key

Page 58: October 3 2008 IT University Copenhagen › talks › osd-openid.pdf · October 3rd 2008 IT University Copenhagen Simon Josefsson Head of R&D simon@yubico.com

Unique ID Time variant pass code

tndrvbtecccunbhkddvclbckjbidjbbftcebjkkhcfletndrvbtecccunvtkkuvblbbbkbcerefuvuckbdhhucidtndrvbtecccunclhhvkthctdnclgktdktvnttfcgikictndrvbtecccuhjvgrhdvbjlglicchdgvjniglujuvdjl

Simulates an USB keyboard

Page 59: October 3 2008 IT University Copenhagen › talks › osd-openid.pdf · October 3rd 2008 IT University Copenhagen Simon Josefsson Head of R&D simon@yubico.com

Two-factorauthentication

Page 60: October 3 2008 IT University Copenhagen › talks › osd-openid.pdf · October 3rd 2008 IT University Copenhagen Simon Josefsson Head of R&D simon@yubico.com
Page 61: October 3 2008 IT University Copenhagen › talks › osd-openid.pdf · October 3rd 2008 IT University Copenhagen Simon Josefsson Head of R&D simon@yubico.com

Wallet size

Page 62: October 3 2008 IT University Copenhagen › talks › osd-openid.pdf · October 3rd 2008 IT University Copenhagen Simon Josefsson Head of R&D simon@yubico.com

No display or batteries

Page 63: October 3 2008 IT University Copenhagen › talks › osd-openid.pdf · October 3rd 2008 IT University Copenhagen Simon Josefsson Head of R&D simon@yubico.com

No mechanical parts

Page 64: October 3 2008 IT University Copenhagen › talks › osd-openid.pdf · October 3rd 2008 IT University Copenhagen Simon Josefsson Head of R&D simon@yubico.com

Web 2.0 Authentication

Low Cost

• Low manufacturing cost

• Low shipping cost

• Unlimited lifetime

• Free SDK

High SecurityState of the art

Success factors for the mass market

Overall Simplicity

• All computers

• One click login

• No software

• Portable

• Easy integration

Page 65: October 3 2008 IT University Copenhagen › talks › osd-openid.pdf · October 3rd 2008 IT University Copenhagen Simon Josefsson Head of R&D simon@yubico.com

How can I integratethe YubiKey?

Page 66: October 3 2008 IT University Copenhagen › talks › osd-openid.pdf · October 3rd 2008 IT University Copenhagen Simon Josefsson Head of R&D simon@yubico.com

All open source ...

Radius

.NET

C#

C++

Java

PHP

Perl

Python

Ruby

Page 67: October 3 2008 IT University Copenhagen › talks › osd-openid.pdf · October 3rd 2008 IT University Copenhagen Simon Josefsson Head of R&D simon@yubico.com

Questions?

Answers?

Copyright © 2007, 2008 Simon JosefssonCopying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved.Credits: Some screenshots from Simon Willison

Page 68: October 3 2008 IT University Copenhagen › talks › osd-openid.pdf · October 3rd 2008 IT University Copenhagen Simon Josefsson Head of R&D simon@yubico.com

How to use your ownwebpage as an OpenID URLauthenticated using YubiKey

Add

<link rel="openid.server" href="http://openid.yubico.com/server.php" />

<link rel="openid.delegate" href=”http://openid.yubico.com/user/?id=ljitnbjbcujvh” />

to the HTML HEAD section of your webpage.

Replace ljitnjbcujvh with the identity string of your YubiKey, i.e., the first 12 characters printed by the key when you touch the button