authentication without authentication - peerlyst meetup

58
Authentication Without Authentication December 2017 @omerlh #MeetupAtSoluto

Upload: soluto

Post on 21-Jan-2018

75 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: Authentication without Authentication - Peerlyst meetup

Authentication Without Authentication

December 2017@omerlh

#MeetupAtSoluto

Page 2: Authentication without Authentication - Peerlyst meetup

Agenda

● Introduction

● OpenID

● Digital Signature

● One Time Password

● Demo

● Edge Cases

Page 3: Authentication without Authentication - Peerlyst meetup

Can we Authenticate without Authentication?

Page 4: Authentication without Authentication - Peerlyst meetup

- Helping people get the most out of their technology

Page 5: Authentication without Authentication - Peerlyst meetup
Page 6: Authentication without Authentication - Peerlyst meetup
Page 7: Authentication without Authentication - Peerlyst meetup

“...a significant amount of drop-off in app usage,

losing up to 56% of users,

but are pretty much essential for the majority of apps out there today...”

Source: Optimizely

Page 9: Authentication without Authentication - Peerlyst meetup

Authentication Requests Per Second

Page 10: Authentication without Authentication - Peerlyst meetup

Source: https://www.engadget.com/2016/01/08/samsung-family-hub-smart-fridge-hands-on/

Page 11: Authentication without Authentication - Peerlyst meetup

Source: https://turcomusa.com/turcom-smart-home-camera-kit-with-motion-sensor-door-sensor-and-alarm-key-fob.html

Page 12: Authentication without Authentication - Peerlyst meetup

User Id

Application Server

Page 13: Authentication without Authentication - Peerlyst meetup

Device Id

Application Server

Page 14: Authentication without Authentication - Peerlyst meetup

● “Simple Identity Layer”

● Token-based authentication

● Widely supported

● Modularity - many authentication flows

Page 15: Authentication without Authentication - Peerlyst meetup

Authorization Server

Application ServerDevice

Page 16: Authentication without Authentication - Peerlyst meetup

Supported Authentication Methods

Authorization/Implicit/Hybrid

Client credentials

Resource Owner

JWT client assertion

Page 17: Authentication without Authentication - Peerlyst meetup

We need a new authentication flow

Page 18: Authentication without Authentication - Peerlyst meetup

Authorization ServerDevice

Page 19: Authentication without Authentication - Peerlyst meetup

Authorization Server

Application ServerDevice

Page 20: Authentication without Authentication - Peerlyst meetup

Requirements

❏ Strong authentication solution

❏ Unique device identification

❏ Simple

❏ Unique per request

❏ Replay Attacks

❏ Fault tolerant

Page 21: Authentication without Authentication - Peerlyst meetup

Questions?

Page 22: Authentication without Authentication - Peerlyst meetup

Let’s use Digital Signature

Page 23: Authentication without Authentication - Peerlyst meetup

Dear BobDear BobSign Verify

Leo Bob the BuilderTM

Source: Bob the Buildertm Official Site

Page 24: Authentication without Authentication - Peerlyst meetup

This sounds familiar...

Page 25: Authentication without Authentication - Peerlyst meetup

How we can use it?

Page 26: Authentication without Authentication - Peerlyst meetup

Authorization ServerDevice

Public Key, Id

Public Key, Id

Id: 5467

Page 27: Authentication without Authentication - Peerlyst meetup

Authorization ServerDevice

Digital Signature, Id

Public Key, Id

Id: 5467

Page 28: Authentication without Authentication - Peerlyst meetup

So far we have:

✓ Strong authentication solution

✓ Unique device identification

✓ Simple

❏ Unique per request

❏ Fault tolerant

Page 29: Authentication without Authentication - Peerlyst meetup

Questions?

Page 30: Authentication without Authentication - Peerlyst meetup

One Time Password

Page 31: Authentication without Authentication - Peerlyst meetup

Authorization ServerDevice

Digital Signature, Id

Public Key, Id

Id: 5467

Page 32: Authentication without Authentication - Peerlyst meetup

Let’s build our own OTP

Page 33: Authentication without Authentication - Peerlyst meetup

Client State Server State

Old 5

New 2

Old 5

New 2

Old 2

New 42Old 5

New 2

Old 2

New 42

Token

Page 34: Authentication without Authentication - Peerlyst meetup

So far we have…

✓ Strong authentication solution

✓ Unique device identification

✓ Simple

✓ Unique per request

✓ Fault tolerant

Page 35: Authentication without Authentication - Peerlyst meetup

Questions?

Page 36: Authentication without Authentication - Peerlyst meetup

Demo Time

Page 37: Authentication without Authentication - Peerlyst meetup

Client

Authorization

Server

Application Server

(Sensitive API)

Page 38: Authentication without Authentication - Peerlyst meetup

Let’s see it in action...

All the code is available on GitHub

Page 39: Authentication without Authentication - Peerlyst meetup

Network request can fail

● Reasons:

○ Timeout

○ Network failure

○ Temporary server errors

● Unknown server state

○ State did not changed

○ State changed

Page 40: Authentication without Authentication - Peerlyst meetup

Client State Server State

Old 2

New 42

Old 1

New 2

Old 2

New 42

Old 2

New 42

Old 1

New 2

Token

Error

Page 41: Authentication without Authentication - Peerlyst meetup

Client State Server State

Old 2

New 42

Old 2

New 42

Old 1

New 2

Old 2

New 42Old 2

New 42Old 2

New 42

Error

Page 42: Authentication without Authentication - Peerlyst meetup

Client State Server State

Old 2

New 42

Old 2

New 42Old 42

New 86

Old 42

New 86

Old 2

New 42

Bad Request (400)

Token

Page 43: Authentication without Authentication - Peerlyst meetup

Questions?

Page 44: Authentication without Authentication - Peerlyst meetup

Detecting Compromised Devices

Page 45: Authentication without Authentication - Peerlyst meetup
Page 46: Authentication without Authentication - Peerlyst meetup

Client State Server State

Old 2

New 42

Old 1

New 2

Eve

Old 2

New 42

Old 1

New 2Old 2

New 42

Old 2

New 42 Token

Page 47: Authentication without Authentication - Peerlyst meetup

Client State Server State

Old 2

New 42

Old 2

New 42

Eve

Old 42

New 56

Old 2

New 42Old 2

New 42

Bad

Request

(400)

Page 48: Authentication without Authentication - Peerlyst meetup

Client State Server State

Old 42

New 78

Old 2

New 42

Eve

Old 42

New 56

Old 2

New 42Old 42

New 78

Old 42

New 78Token

Page 49: Authentication without Authentication - Peerlyst meetup

Client State Server State

Old 78

New 4

Old 7

New 78

Eve

Old 7

New 56

Old 7

New 78Old 7

New 93

400 Bad

Request

Page 50: Authentication without Authentication - Peerlyst meetup
Page 51: Authentication without Authentication - Peerlyst meetup

Questions?

Page 52: Authentication without Authentication - Peerlyst meetup

Conclusion

Page 53: Authentication without Authentication - Peerlyst meetup

Responsible Disclosure

Page 54: Authentication without Authentication - Peerlyst meetup

Requirements

✓ Strong authentication solution

✓ Unique device identification

✓ Simple

✓ Unique per request

✓ Fault tolerant

Page 55: Authentication without Authentication - Peerlyst meetup

Authorization ServerDevice

Page 56: Authentication without Authentication - Peerlyst meetup

Authorization Server

Application ServerDevice

Page 57: Authentication without Authentication - Peerlyst meetup

How can you use it?@omerlh

#MeetupAtSoluto

Page 58: Authentication without Authentication - Peerlyst meetup

@omerlh#MeetupAtSoluto

We’re hiring!

Thank You!