Advertisement

Previous Entry | Next Entry

glyph
I'd like to make an SSH-equivalent (possibly XTerm equivalent) shell that
a) can be used from any web browser with minimal presumed tech level (e.g. just HTML + JavaScript), and
b) is highly resistant to local hostility (i.e. keyloggers, sniffers, etc), and
c) can be used with relative ease by the owner without any external devices or lists of passwords, and
d) is secure both for entry (i.e. initial login) and ongoing use (e.g. sudo, ssh, mysql password entry; text editing; etc).

B, C, and D, AFAICT, rule out both S/Key and (S/Key-based) OPIE - because you cannot depend on any trusted local tool to calculate responses, nor on an extensive precomputed password list (other than for people with eidetic memory), nor (typically) on something like OPIE being installed on the remote system to protect all password entries. (And anyway, OPIE does not protect generic text entry - suppose you want to open up a commandline email client and send an email, with its contents secure from the local terminal?)

I don't know of *any* one time password or challenge/response system that doesn't either rely on math that's not feasible for normal people to do in their heads, or have a severely limited (and thus replayable) keyspace.

One thing I thought of that may help (but is of limited utility if there's a sniffer or screencapper involved) is to have a remotely-generated substitution cipher that's displayed to the user through the client. E.g. have a picture of the mapped keyboard; any input is then passed through that mapping, and the map is changed on a regular basis (e.g. every x seconds; every password; etc).

However, this is pretty bad for usability, and rendered useless if the adversary captures the hash - since it can't be a secret; it can only be something that interferes with normal keylogging or the like.


Any suggestions for a real, secure, human-usable challenge/response OTP system?

Tags:

Comments

[info]kerrickadrian wrote:
Jan. 5th, 2009 06:02 pm (UTC)
Okay, I don't know what you're talking about because I couldn't find a SSH with both hands in a dark room, but when I sign onto one of my banks it gives me an onscreen "keyboard" to input my pin, but the numbers are all in a different order and matched up with different letters (in case I want to use the real keyboard) each time. Is that what you mean by One thing I thought of that may help (but is of limited utility if there's a sniffer or screencapper involved) is to have a remotely-generated substitution cipher that's displayed to the user through the client. E.g. have a picture of the mapped keyboard; any input is then passed through that mapping, and the map is changed on a regular basis (e.g. every x seconds; every password; etc).?
[info]saizai wrote:
Jan. 5th, 2009 06:21 pm (UTC)
Yes, that's approximately similar. Google 'scramblepad' for a purely numeric version. This would be for the whole keyboard.
[info]kaleissin wrote:
Jan. 6th, 2009 11:51 am (UTC)
Yubikey?
Was a good article about Yubikey in Linux Journal 177.

http://www.yubico.com/products/yubikey/
[info]saizai wrote:
Jan. 6th, 2009 01:09 pm (UTC)
Re: Yubikey?
No. Requires USB access (not always available from a public term) and an external device (itself), against desideratum (c).

If I wanted an external device, then a SecurID fob would work.

Profile

glyph
[info]saizai
Sai Emrys

Latest Month

July 2009
S M T W T F S
   1234
567891011
12131415161718
19202122232425
262728293031 
Powered by LiveJournal.com
Designed by Lilia Ahner