openid security

57
Single Sign-On for the Internet: A Security Story [email protected] [email protected] BlackHat USA, Las Vegas 2007

Upload: eugenet

Post on 29-Nov-2014

7.842 views

Category:

Technology


0 download

DESCRIPTION

 

TRANSCRIPT

Page 1: OpenID Security

Single Sign-On for the Internet:A Security Story

[email protected]

[email protected]

BlackHat USA, Las Vegas 2007

Page 2: OpenID Security

The Good, The Bad, The Ugly

Page 3: OpenID Security

The Ugly

Page 4: OpenID Security

How do you manage your 169 Web 2.0 accounts today?

Page 5: OpenID Security

Does your “SSO” consist of

A login(e.g. johndoe)

+

2 passwords(one insecure for web 2.0 sites and one secure for banking sites)

?

Page 6: OpenID Security

Attack #1

a. Fail a user’s login

b. Observe the user try every single combination of their username and

password, including the secure password..

Page 7: OpenID Security

BlackHat Advice #1

Change your bank password

(we man-in-the-middle’d your secure “SSO” last night)

Page 8: OpenID Security

Observation #1

Complexitybreeds

insecurity

Page 9: OpenID Security

One login to rule them all…

…a story about reducing complexity

Page 10: OpenID Security

Proves that a user owns a URL

You get to choose who manages your identitye.g. http://john.doe.name/ or http://john.myopenid.com/

Page 11: OpenID Security

Answers the who? question (authentication)

are you john.doe.name?

Does NOT answer the what? (authorization)

is john.doe.name allowed to access this page?

Page 12: OpenID Security

• History

• Specifications

• Industry Support

Page 13: OpenID Security

How?

(demo)

Page 14: OpenID Security

How?

(man-in-the-middle secure demo)

Page 15: OpenID Security
Page 16: OpenID Security
Page 17: OpenID Security
Page 18: OpenID Security
Page 19: OpenID Security

That was easy!

Page 20: OpenID Security

Oh. Never mind.

Page 21: OpenID Security

The Bad

Page 22: OpenID Security

Let’s start at the beginning

Page 23: OpenID Security
Page 24: OpenID Security

Attack #2 – Which one are you?

http://nsa.gov:1/, http://nsa.gov:2/, …

https://192.168.1.15/internal/auth?ip=1.1.1.1

http://localhost:8080/

http://www.youtube.com/largemovie.flv

http://www.tarpit.com/cgi-bin/hang.pl

file:///dev/null

Page 25: OpenID Security

Observation #2

Flexibility and securitydo not get along

(or, why it’s important to be less flexible and more paranoid)

Page 26: OpenID Security

Everybody loves crypto

“associate mode”

Page 27: OpenID Security

Why is crypto required?

to protect request & response URLs

Page 28: OpenID Security

Shared symmetric key is generated using Diffie-Hellman

Page 29: OpenID Security

Attack #3 - Diffie-Hellman is vulnerable to man-in-the-middle attacks!

So what’s the point of using DH in the first place?

The spec suggests running DH over https to improve protocol security

Page 30: OpenID Security

Observation #3

Home brewedcrypto is a no no

(or, why you shouldstick to https)

Page 31: OpenID Security

Where are you going?

Page 32: OpenID Security

This way! No, that way!

Location: http://www.myopenid.com/server? openid.assoc_handle=%7BHMAC-SHA1%7D%7B4..& openid.identity=http://eugene.tsyrklevich.name/& openid.mode=checkid_setup&openid.return_to=http://www.jyte.com/finish& openid.trust_root=http://www.jyte.com/

Page 33: OpenID Security

Attack #4aPhishing with malicious RPs

Page 34: OpenID Security

Attack #4bPhishing with malicious URL hosts

Page 35: OpenID Security

Change your bank password

BlackHat Advice #2

(we phish’ed your first attempt)

Page 36: OpenID Security

Observation #4

Phishers 1 – OpenID 0

(or, why Johnny will never learn to read URLs)

Page 37: OpenID Security

Let me in!

Page 38: OpenID Security

Once signed in, you will no longer need to re-enter your password for other

OpenID enabled sites

Convenient, eh?

Page 39: OpenID Security

In other words…

your identity provider receives and processes ALL your login requests

on your behalf

…privacy, anyone?

Page 40: OpenID Security

Observation #5

OpenID makesprivacy difficult

(or, why some paranoid users might want to useone OpenID login per site)

Page 41: OpenID Security

Not another redirect!

Page 42: OpenID Security

Location: http://www.BADsite.com/finish_auth.php? openid.assoc_handle=%7BHMAC-HA1%7D

%7B47bb..& openid.identity=http://eugene.tsyrklevich.name/&openid.mode=id_res&openid.return_to=http://www.jyte.com/&openid.sig=vbUyND6n39Ss8IkpKl19RT83O%2F4%3D&openid.signed=mode%2Cidentity%2Creturn_to&

Attack #6a – Phishing (again!)

Page 43: OpenID Security

Location: http://www.somesite.com/finish_auth.php? openid.assoc_handle=%7BHMAC-SHA1%7D

%7B47b..& openid.identity=http://eugene.tsyrklevich.name/&openid.mode=id_res&openid.return_to=http://www.jyte.com/&openid.sig=vbUyND6n39Ss8IkpKl19RT83O%2F4%3D&openid.signed=mode%2Cidentity%2Creturn_to&

Attack #6b – Replay attack

nonce=wVso75KH

Page 44: OpenID Security

Problems with Nonces

a. Not part of the OpenID spec (v1)

b. Do not actually protect against active attackers!

Page 45: OpenID Security

Observation #6

Nonces are nonsense

(or, why you must be drinking absolut kool-aid if you believe nonces will protect you against an active attacker)

Page 46: OpenID Security

I am secure once I am logged in though, right?

Page 47: OpenID Security

Attack #7Cross-site request forgery

<html><body>

<iframe id="login" src="http://bank.com/login?openid_url=john.doe.name" width="0" height="0"></iframe>

<iframe id=“transfer" src="http://bank.com/transfer_money?amount=100&to=attacker" width="0" height="0"></iframe>

</body></html>

Page 48: OpenID Security

Observation #7

OpenID robs you of control

(or IdP, not RP, makes the security decisions)

Page 49: OpenID Security

Change your bank password

BlackHat Advice #3

Actually don’t bother…...all your OpenID are belong to us.

Page 50: OpenID Security

The Good

Page 51: OpenID Security

Is it really all that bad?!

No!

OpenID can make your logins far more secure than they are today!

Page 52: OpenID Security

How?!

Only one service to secure so we can afford to use

• Client-side certificates

• SecurID

• Smartcards

Page 53: OpenID Security
Page 54: OpenID Security

Observation #8

There is only 1 front

door with OpenID

(or, how I got over my privacy

and learnt to love OpenID)

Page 55: OpenID Security

Lessons Learnt

1. Complexity breeds insecurity

2. Flexibility and security do not get along

3. Home brewed crypto is a no no

4. Phishers 1 – OpenID 0

5. OpenID makes privacy difficult

6. Nonces are nonsense

7. OpenID robs you of control

8. There is only 1 front door with OpenID

Page 56: OpenID Security

Is OpenID doomed?

Absolutely not

It’s a great system

solving a very real problem

But its security andprivacy concerns

need further thought

Page 57: OpenID Security

Thanks!

[email protected]

[email protected]

Try it today.

http://www.openid.net/

http://www.freeyourid.com/