How can one make a web-site accessible only when someone has a dongle?
Asked Answered
R

5

13

Suppose you want to add an extra layer of credentials on top of a SSL-encrypted login/password, but you don't want to increase complexity to the user. Is there a way to add the requirement of the possession of a dongle to web-server authentication schemes with existing cross-platform browser capabilities?

In other words, to get access to the web-site, you would need a username, password, and a USB dongle that has been plugged into the client computer. The dongle would presumably do some sort of challenge/response.

It'd be ideal if this dongle solution worked with Firefox automatically or with the simple addition of a plugin.

Thoughts and suggestions are appreciated.

Rind answered 26/1, 2009 at 20:9 Comment(3)
Any type of copy protection really sucks. Including dongles. Dongles are probably the worst of the lot. Good luck with that.Cohla
@Cohla why would the only use case be for copy protection? It could be about extra security.Kaftan
@michaelmichael: Quite right. My concern when asking this question had nothing to do with copy protection (and indeed copy protection never even crossed my mind, but I suppose that's a use for dongles) -- authenticated access to functionality is at the root of my concerns.Rind
J
19

You may be interested in the Yubikey.

It's a small usb dongle that acts as a usb keyboard (i.e. needs no special drivers or client software) and is designed exactly for this sort of authentication.

Jahvist answered 26/1, 2009 at 20:17 Comment(8)
How are you proposing a browser would access this hardware?Alo
It doesn't -- the device has a button which the user presses to authenticate to the website.Jahvist
wish product keys were that easyHarkness
Sounds like a pretty good idea, however, since it just emulates a USB keyboard, there's no guarantee that the user has it plugged in, and that they aren't just typing in the password on a regular keyboard.Abet
Disregard that last comment, after doing more research, it seems like it works a lot like RSA SecurID, and generates a new key every time.Abet
Looks very interesting. Thanks for posting.Rind
@Abet Kibbee, both your statements were correct. You can choose to configure a YubiKey with a static password. Or you can configure the YubiKey to generate a One-Time Password (OTP). For web app authentication, the user clicks or tabs into the login field, and touches the touch-sensitive button on the YubiKey. The device acts like a keyboard, robotically typing its identifier and OTP into your web form. Server-side, your web app verifies with Yubico’s servers. Those Yubico servers predict the values to be generated by the device.Loganloganberry
This answer could be improved by noting the FIDO/U2F standard (that YubiKey created/supports).Rind
A
8

You could use RSA SecurID tokens, which are little keychain displays that change the number displayed every one minute. In addition to requiring the username and password, you can also require them to enter the number they see on their token to verify they have the hardware device with them. There are various hardware dongles, with some even requiring a PIN to be entered to see the changing number. The is extra complexity on the server side, but the client doesn't have too much trouble.

Abet answered 26/1, 2009 at 20:13 Comment(0)
A
2

I've also used the Yubikey with good results. Another similar solution is the Swekey - you might want to check that out also.

Avulsion answered 28/1, 2009 at 7:14 Comment(0)
B
2

I've had good results implementing website authentication and login using Dinkey Dongles and the DinkeyWeb system.

The user plugs the usb security dongle into their machine, visits your "protected" web page and it validates the dongle before loading the page. Works without special permissions or privileges.

Hope it helps.

Bracey answered 15/6, 2010 at 12:9 Comment(0)
I
1

It's going to require something that has the rights to access the dongle. There is also the issue of hacking it--the communications aren't going to be able to be hidden so you have to make sure it doesn't matter. That means the dongle is going to have to implement it's own crpyto. You'll also need support for whatever systems you are going to support.

I see this getting very complex very fast.

Idiomorphic answered 26/1, 2009 at 20:17 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.