SlideShare a Scribd company logo
Tiffany Conroy - Remote device sign-in – Authenticating without a keyboard - Codemotion Milan 2017
Remote sign-in
A method for signing in to a device that
doesn’t have a keyboard
Hi, I’m Tiffany
@theophani
Remote sign-in
A method for signing in to a device that
doesn’t have a keyboard
SoundCloud on Xbox
Signing in with a game
controller is not fun
Tiffany Conroy - Remote device sign-in – Authenticating without a keyboard - Codemotion Milan 2017
Secure and simple
and fast
The solution, in brief
Tiffany Conroy - Remote device sign-in – Authenticating without a keyboard - Codemotion Milan 2017
Tiffany Conroy - Remote device sign-in – Authenticating without a keyboard - Codemotion Milan 2017
Tiffany Conroy - Remote device sign-in – Authenticating without a keyboard - Codemotion Milan 2017
Tiffany Conroy - Remote device sign-in – Authenticating without a keyboard - Codemotion Milan 2017
How it works
Tiffany Conroy - Remote device sign-in – Authenticating without a keyboard - Codemotion Milan 2017
Tiffany Conroy - Remote device sign-in – Authenticating without a keyboard - Codemotion Milan 2017
Tiffany Conroy - Remote device sign-in – Authenticating without a keyboard - Codemotion Milan 2017
Tiffany Conroy - Remote device sign-in – Authenticating without a keyboard - Codemotion Milan 2017
Tiffany Conroy - Remote device sign-in – Authenticating without a keyboard - Codemotion Milan 2017
Tiffany Conroy - Remote device sign-in – Authenticating without a keyboard - Codemotion Milan 2017
Tiffany Conroy - Remote device sign-in – Authenticating without a keyboard - Codemotion Milan 2017
Tiffany Conroy - Remote device sign-in – Authenticating without a keyboard - Codemotion Milan 2017
Voilà!
Having an access token = signed in
Inspiration:
YouTube on TVs and
Google Sign-in for TVs and Devices
Tiffany Conroy - Remote device sign-in – Authenticating without a keyboard - Codemotion Milan 2017
Using an authenticated
session on Device B
Using an authenticated
session on Device B
i.e. take advantage of the person already
being signed in on their phone or laptop
Sign in
without signing in
Sign in
without signing in
(because you were already signed in)
Tiffany Conroy - Remote device sign-in – Authenticating without a keyboard - Codemotion Milan 2017
Tiffany Conroy - Remote device sign-in – Authenticating without a keyboard - Codemotion Milan 2017
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
https://soundcloud.com
/activate_oauth2_callback
?display=mobile-web-view
#access_token=ACCESS_TOKEN
https://soundcloud.com
/activate_oauth2_callback
?display=mobile-web-view
#access_token=ACCESS_TOKEN
Tiffany Conroy - Remote device sign-in – Authenticating without a keyboard - Codemotion Milan 2017
Choosing codes that are
easy to read and type
Things to consider when choosing codes:
Sparse usage
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . X . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . X . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . X . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . X . . . .
. . . . . . X . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . X . . . . . . . . .
1 number = 10 codes
0 1 2 3 4
5 6 7 8 9
2 letters = 26 * 26 = 676 codes
AA 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
6 numbers = 1 000 000 codes
4 letters = 26 * 26 * 26 * 26 = 456 976 codes
Numbers and letters?
Avoid:
letter O, number 0,
letter I, number 1
6 numbers or letters =
32 * 32 * 32 * 32 * 32 * 32 =
1 073 741 824 codes
Things to consider when choosing codes:
Don’t use special
characters !?&%$
Things to consider when choosing codes:
Use UPPERCASE for
readability
(but verify with case insensitivity)
Security considerations
Risk:
Accidentally granting
Device A access to the
wrong user
Someone is signed in … but who?
Mitigating the risk of:
Accidentally granting
Device A access to the
wrong user
a) Show which user is authenticated,
and allow to switch
a) Show which user is authenticated,
and allow to switch
b) Display a selection of users,
and allow them to choose
Risk:
Accidentally granting
access to someone
else’s device
Device AN shows Nina
X X N
Device AM shows Michael
X X M
Nina accidentally types X X M
Michael’s Device AM
will get authenticated as Nina
Mitigating the risk of:
Accidentally granting
access to someone
else’s device
Sparse usage of codes!
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . X . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . X . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . .
❌
X . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . X . . . .
. . . . . . X . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . X . . . . . . . . .
Collect device name to show during
activation
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
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 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 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 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 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 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 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 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 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 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 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 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 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 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 X X X X X X X X X X X X X
Mitigating the risk of:
An attacker using up all
possible codes so no one
can sign in
Rate limit ability to request codes
Expire codes
Expire codes … but don’t reuse too soon
Risk:
An attacker guessing
codes and using them to
get access tokens
Brute force attack
Tiffany Conroy - Remote device sign-in – Authenticating without a keyboard - Codemotion Milan 2017
Aside: why do attackers want to access
random accounts?
Mitigating the risk of:
An attacker guessing
codes and using them to
get access tokens
Very, VERY, sparse code usage?
Rate limit for polling?
Polling tokens
e.g. AHDNFDJR-937JJ5N7HN-SNVKDHKSM2-
FJSNMNDFF-93HF7H46AGMS
Issue the polling token to Device A
when issuing the easy-to-read code
Require the polling token when:
a) checking the status of the code
Require the polling token when:
a) checking the status of the code
b) exchanging the code for an access token
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
Social engineering attack
Tiffany Conroy - Remote device sign-in – Authenticating without a keyboard - Codemotion Milan 2017
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
Use text and design elements
that make it clear
Tiffany Conroy - Remote device sign-in – Authenticating without a keyboard - Codemotion Milan 2017
Tiffany Conroy - Remote device sign-in – Authenticating without a keyboard - Codemotion Milan 2017
Have short expirations
Closing thoughts
Using a game controller to enter
a password is not fun
Designing and implementing a new kind
of authentication flow is fun
Involve your security experts early
Painful → Magical
Thanks :)
Questions?
Tiffany Conroy ~ @theophani
developers.soundcloud.com/blog/remote-device-sign-in

More Related Content

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