Top Banner
97

Tiffany Conroy - Remote device sign-in – Authenticating without a keyboard - Codemotion Milan 2017

Jan 21, 2018

Download

Technology

Codemotion
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Tiffany Conroy - Remote device sign-in – Authenticating without a keyboard - Codemotion Milan 2017
Page 2: Tiffany Conroy - Remote device sign-in – Authenticating without a keyboard - Codemotion Milan 2017

Remote sign-inA method for signing in to a device that

doesn’t have a keyboard

Page 3: Tiffany Conroy - Remote device sign-in – Authenticating without a keyboard - Codemotion Milan 2017

Hi, I’m Tiffany@theophani

Page 4: Tiffany Conroy - Remote device sign-in – Authenticating without a keyboard - Codemotion Milan 2017

Remote sign-inA method for signing in to a device that

doesn’t have a keyboard

Page 5: Tiffany Conroy - Remote device sign-in – Authenticating without a keyboard - Codemotion Milan 2017

SoundCloud on Xbox

Page 6: Tiffany Conroy - Remote device sign-in – Authenticating without a keyboard - Codemotion Milan 2017

Signing in with a game controller is not fun

Page 7: Tiffany Conroy - Remote device sign-in – Authenticating without a keyboard - Codemotion Milan 2017
Page 8: Tiffany Conroy - Remote device sign-in – Authenticating without a keyboard - Codemotion Milan 2017

Secure and simpleand fast

Page 9: Tiffany Conroy - Remote device sign-in – Authenticating without a keyboard - Codemotion Milan 2017

The solution, in brief

Page 10: Tiffany Conroy - Remote device sign-in – Authenticating without a keyboard - Codemotion Milan 2017
Page 11: Tiffany Conroy - Remote device sign-in – Authenticating without a keyboard - Codemotion Milan 2017
Page 12: Tiffany Conroy - Remote device sign-in – Authenticating without a keyboard - Codemotion Milan 2017
Page 13: Tiffany Conroy - Remote device sign-in – Authenticating without a keyboard - Codemotion Milan 2017
Page 14: Tiffany Conroy - Remote device sign-in – Authenticating without a keyboard - Codemotion Milan 2017

How it works

Page 15: Tiffany Conroy - Remote device sign-in – Authenticating without a keyboard - Codemotion Milan 2017
Page 16: Tiffany Conroy - Remote device sign-in – Authenticating without a keyboard - Codemotion Milan 2017
Page 17: Tiffany Conroy - Remote device sign-in – Authenticating without a keyboard - Codemotion Milan 2017
Page 18: Tiffany Conroy - Remote device sign-in – Authenticating without a keyboard - Codemotion Milan 2017
Page 19: Tiffany Conroy - Remote device sign-in – Authenticating without a keyboard - Codemotion Milan 2017
Page 20: Tiffany Conroy - Remote device sign-in – Authenticating without a keyboard - Codemotion Milan 2017
Page 21: Tiffany Conroy - Remote device sign-in – Authenticating without a keyboard - Codemotion Milan 2017
Page 22: Tiffany Conroy - Remote device sign-in – Authenticating without a keyboard - Codemotion Milan 2017
Page 23: Tiffany Conroy - Remote device sign-in – Authenticating without a keyboard - Codemotion Milan 2017

Voilà!Having an access token = signed in

Page 24: Tiffany Conroy - Remote device sign-in – Authenticating without a keyboard - Codemotion Milan 2017

Inspiration:YouTube on TVs and

Google Sign-in for TVs and Devices

Page 25: Tiffany Conroy - Remote device sign-in – Authenticating without a keyboard - Codemotion Milan 2017
Page 26: Tiffany Conroy - Remote device sign-in – Authenticating without a keyboard - Codemotion Milan 2017

Using an authenticated session on Device B

Page 27: Tiffany Conroy - Remote device sign-in – Authenticating without a keyboard - Codemotion Milan 2017

Using an authenticated session on Device B

i.e. take advantage of the person already being signed in on their phone or laptop

Page 28: Tiffany Conroy - Remote device sign-in – Authenticating without a keyboard - Codemotion Milan 2017

Sign inwithout signing in

Page 29: Tiffany Conroy - Remote device sign-in – Authenticating without a keyboard - Codemotion Milan 2017

Sign inwithout signing in

(because you were already signed in)

Page 30: Tiffany Conroy - Remote device sign-in – Authenticating without a keyboard - Codemotion Milan 2017
Page 31: Tiffany Conroy - Remote device sign-in – Authenticating without a keyboard - Codemotion Milan 2017
Page 32: Tiffany Conroy - Remote device sign-in – Authenticating without a keyboard - Codemotion Milan 2017
Page 33: Tiffany Conroy - Remote device sign-in – Authenticating without a keyboard - Codemotion Milan 2017

https://soundcloud.com/activate_oauth2_callback?display=mobile-web-view#access_token=ACCESS_TOKEN

Page 34: Tiffany Conroy - Remote device sign-in – Authenticating without a keyboard - Codemotion Milan 2017

https://soundcloud.com/activate_oauth2_callback?display=mobile-web-view#access_token=ACCESS_TOKEN

Page 35: Tiffany Conroy - Remote device sign-in – Authenticating without a keyboard - Codemotion Milan 2017

https://soundcloud.com/activate_oauth2_callback?display=mobile-web-view#access_token=ACCESS_TOKEN

Page 36: Tiffany Conroy - Remote device sign-in – Authenticating without a keyboard - Codemotion Milan 2017
Page 37: Tiffany Conroy - Remote device sign-in – Authenticating without a keyboard - Codemotion Milan 2017

Choosing codes that are easy to read and type

Page 38: Tiffany Conroy - Remote device sign-in – Authenticating without a keyboard - Codemotion Milan 2017

Things to consider when choosing codes:

Sparse usage

Page 39: Tiffany Conroy - Remote device sign-in – Authenticating without a keyboard - Codemotion Milan 2017

. . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . X . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . X . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . X . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . X . . . .

. . . . . . X . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . X . . . . . . . . .

Page 40: Tiffany Conroy - Remote device sign-in – Authenticating without a keyboard - Codemotion Milan 2017

1 number = 10 codes

0 1 2 3 45 6 7 8 9

Page 41: Tiffany Conroy - Remote device sign-in – Authenticating without a keyboard - Codemotion Milan 2017

2 letters = 26 * 26 = 676 codesAA AB AC AD AE AF AG AH AI AJ . . .BA BB BC BD BE BF BG BH BI BJ . . .CA CB CC CD CE CF CG CH CI CJ . . .DA DB DC DD DE DF DG DH DI DJ . . .EA EB EC ED EE EF EG EH EI EJ . . .FA FB FC FD FE FF FG FH FI FJ . . .GA GB GC GD GE GF GG GH GI GJ . . .HA HB HC HD HE HF HG HH HI HJ . . .IA IB IC ID IE IF IG IH II IJ . . .. . . . . . . . . . . . .. . . . . . . . . . . . .. . . . . . . . . . . . ZZ

Page 42: Tiffany Conroy - Remote device sign-in – Authenticating without a keyboard - Codemotion Milan 2017

6 numbers = 1 000 000 codes4 letters = 26 * 26 * 26 * 26 = 456 976 codes

Page 43: Tiffany Conroy - Remote device sign-in – Authenticating without a keyboard - Codemotion Milan 2017

Numbers and letters?

Page 44: Tiffany Conroy - Remote device sign-in – Authenticating without a keyboard - Codemotion Milan 2017

Avoid:letter O, number 0,letter I, number 1

Page 45: Tiffany Conroy - Remote device sign-in – Authenticating without a keyboard - Codemotion Milan 2017

6 numbers or letters =32 * 32 * 32 * 32 * 32 * 32 =

1 073 741 824 codes

Page 46: Tiffany Conroy - Remote device sign-in – Authenticating without a keyboard - Codemotion Milan 2017

Things to consider when choosing codes:

Don’t use special characters !?&%$

Page 47: Tiffany Conroy - Remote device sign-in – Authenticating without a keyboard - Codemotion Milan 2017

Things to consider when choosing codes:

Use UPPERCASE for readability

(but verify with case insensitivity)

Page 48: Tiffany Conroy - Remote device sign-in – Authenticating without a keyboard - Codemotion Milan 2017

Security considerations

Page 49: Tiffany Conroy - Remote device sign-in – Authenticating without a keyboard - Codemotion Milan 2017

Risk:

Accidentally granting Device A access to the

wrong user

Page 50: Tiffany Conroy - Remote device sign-in – Authenticating without a keyboard - Codemotion Milan 2017

Someone is signed in … but who?

Page 51: Tiffany Conroy - Remote device sign-in – Authenticating without a keyboard - Codemotion Milan 2017

Mitigating the risk of:

Accidentally granting Device A access to the

wrong user

Page 52: Tiffany Conroy - Remote device sign-in – Authenticating without a keyboard - Codemotion Milan 2017

a) Show which user is authenticated,and allow to switch

Page 53: Tiffany Conroy - Remote device sign-in – Authenticating without a keyboard - Codemotion Milan 2017

a) Show which user is authenticated,and allow to switch

b) Display a selection of users,and allow them to choose

Page 54: Tiffany Conroy - Remote device sign-in – Authenticating without a keyboard - Codemotion Milan 2017

Risk:

Accidentally granting access to someone

else’s device

Page 55: Tiffany Conroy - Remote device sign-in – Authenticating without a keyboard - Codemotion Milan 2017

Device AN shows Nina

X X N

Device AM shows Michael

X X M

Page 56: Tiffany Conroy - Remote device sign-in – Authenticating without a keyboard - Codemotion Milan 2017

Nina accidentally types X X M

Page 57: Tiffany Conroy - Remote device sign-in – Authenticating without a keyboard - Codemotion Milan 2017

Michael’s Device AMwill get authenticated as Nina

Page 58: Tiffany Conroy - Remote device sign-in – Authenticating without a keyboard - Codemotion Milan 2017

Mitigating the risk of:

Accidentally granting access to someone

else’s device

Page 59: Tiffany Conroy - Remote device sign-in – Authenticating without a keyboard - Codemotion Milan 2017

Sparse usage of codes!

Page 60: Tiffany Conroy - Remote device sign-in – Authenticating without a keyboard - Codemotion Milan 2017

. . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . X . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . X . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . .

X . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . X . . . .. . . . . . X . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . X . . . . . . . . .

Page 61: Tiffany Conroy - Remote device sign-in – Authenticating without a keyboard - Codemotion Milan 2017

Collect device name to show during activation

Page 62: Tiffany Conroy - Remote device sign-in – Authenticating without a keyboard - Codemotion Milan 2017
Page 63: Tiffany Conroy - Remote device sign-in – Authenticating without a keyboard - Codemotion Milan 2017

Risk:

An attacker using up all possible codes so no one

can sign in

Page 64: Tiffany Conroy - Remote device sign-in – Authenticating without a keyboard - Codemotion Milan 2017

X X X X X X X X X X X X X X X X X X X X X X X X X X X XX X X X X X X X X X X X X X X X X X X X X X X X X X X XX X X X X X X X X X X X X X X X X X X X X X X X X X X XX X X X X X X X X X X X X X X X X X X X X X X X X X X XX X X X X X X X X X X X X X X X X X X X X X X X X X X XX X X X X X X X X X X X X X X X X X X X X X X X X X X XX X X X X X X X X X X X X X X X X X X X X X X X X X X XX X X X X X X X X X X X X X X X X X X X X X X X X X X XX X X X X X X X X X X X X X X X X X X X X X X X X X X XX X X X X X X X X X X X X X X X X X X X X X X X X X X XX X X X X X X X X X X X X X X X X X X X X X X X X X X XX X X X X X X X X X X X X X X X X X X X X X X X X X X XX X X X X X X X X X X X X X X X X X X X X X X X X X X XX X X X X X X X X X X X X X X X X X X X X X X X X X X

!

Page 65: Tiffany Conroy - Remote device sign-in – Authenticating without a keyboard - Codemotion Milan 2017

Mitigating the risk of:

An attacker using up all possible codes so no one

can sign in

Page 66: Tiffany Conroy - Remote device sign-in – Authenticating without a keyboard - Codemotion Milan 2017

Rate limit ability to request codes

Page 67: Tiffany Conroy - Remote device sign-in – Authenticating without a keyboard - Codemotion Milan 2017

Expire codes

Page 68: Tiffany Conroy - Remote device sign-in – Authenticating without a keyboard - Codemotion Milan 2017

Expire codes … but don’t reuse too soon

Page 69: Tiffany Conroy - Remote device sign-in – Authenticating without a keyboard - Codemotion Milan 2017

Risk:

An attacker guessing codes and using them to

get access tokens

Page 70: Tiffany Conroy - Remote device sign-in – Authenticating without a keyboard - Codemotion Milan 2017

Brute force attack

Page 71: Tiffany Conroy - Remote device sign-in – Authenticating without a keyboard - Codemotion Milan 2017
Page 72: Tiffany Conroy - Remote device sign-in – Authenticating without a keyboard - Codemotion Milan 2017

Aside: why do attackers want to access random accounts?

Page 73: Tiffany Conroy - Remote device sign-in – Authenticating without a keyboard - Codemotion Milan 2017

Mitigating the risk of:

An attacker guessing codes and using them to

get access tokens

Page 74: Tiffany Conroy - Remote device sign-in – Authenticating without a keyboard - Codemotion Milan 2017

Very, VERY, sparse code usage?

Page 75: Tiffany Conroy - Remote device sign-in – Authenticating without a keyboard - Codemotion Milan 2017

Rate limit for polling?

Page 76: Tiffany Conroy - Remote device sign-in – Authenticating without a keyboard - Codemotion Milan 2017

Polling tokens

Page 77: Tiffany Conroy - Remote device sign-in – Authenticating without a keyboard - Codemotion Milan 2017

e.g. AHDNFDJR-937JJ5N7HN-SNVKDHKSM2-FJSNMNDFF-93HF7H46AGMS

Page 78: Tiffany Conroy - Remote device sign-in – Authenticating without a keyboard - Codemotion Milan 2017

Issue the polling token to Device Awhen issuing the easy-to-read code

Page 79: Tiffany Conroy - Remote device sign-in – Authenticating without a keyboard - Codemotion Milan 2017

Require the polling token when:a) checking the status of the code

Page 80: Tiffany Conroy - Remote device sign-in – Authenticating without a keyboard - Codemotion Milan 2017

Require the polling token when:a) checking the status of the code

b) exchanging the code for an access token

Page 81: Tiffany Conroy - Remote device sign-in – Authenticating without a keyboard - Codemotion Milan 2017
Page 82: Tiffany Conroy - Remote device sign-in – Authenticating without a keyboard - Codemotion Milan 2017

Risk:

An attacker tricking people into giving away access to their account

Page 83: Tiffany Conroy - Remote device sign-in – Authenticating without a keyboard - Codemotion Milan 2017

Social engineering attack

Page 84: Tiffany Conroy - Remote device sign-in – Authenticating without a keyboard - Codemotion Milan 2017
Page 85: Tiffany Conroy - Remote device sign-in – Authenticating without a keyboard - Codemotion Milan 2017
Page 86: Tiffany Conroy - Remote device sign-in – Authenticating without a keyboard - Codemotion Milan 2017

Mitigating the risk of:

An attacker tricking people into giving away access to their account

Page 87: Tiffany Conroy - Remote device sign-in – Authenticating without a keyboard - Codemotion Milan 2017

Use text and design elementsthat make it clear

Page 88: Tiffany Conroy - Remote device sign-in – Authenticating without a keyboard - Codemotion Milan 2017
Page 89: Tiffany Conroy - Remote device sign-in – Authenticating without a keyboard - Codemotion Milan 2017
Page 90: Tiffany Conroy - Remote device sign-in – Authenticating without a keyboard - Codemotion Milan 2017

Have short expirations

Page 91: Tiffany Conroy - Remote device sign-in – Authenticating without a keyboard - Codemotion Milan 2017

Closing thoughts

Page 92: Tiffany Conroy - Remote device sign-in – Authenticating without a keyboard - Codemotion Milan 2017

Using a game controller to entera password is not fun

Page 93: Tiffany Conroy - Remote device sign-in – Authenticating without a keyboard - Codemotion Milan 2017

Designing and implementing a new kindof authentication flow is fun

Page 94: Tiffany Conroy - Remote device sign-in – Authenticating without a keyboard - Codemotion Milan 2017

Involve your security experts early

Page 95: Tiffany Conroy - Remote device sign-in – Authenticating without a keyboard - Codemotion Milan 2017

Painful → Magical

Page 96: Tiffany Conroy - Remote device sign-in – Authenticating without a keyboard - Codemotion Milan 2017

Thanks :)

Page 97: Tiffany Conroy - Remote device sign-in – Authenticating without a keyboard - Codemotion Milan 2017

Questions?Tiffany Conroy ~ @theophani

developers.soundcloud.com/blog/remote-device-sign-in