two factor authentication
Frank Cusack
fcusack at fcusack.com
Sun Jul 23 17:34:10 EST 2006
On July 23, 2006 1:50:20 AM +0000 Jefferson Ogata <Jefferson.Ogata at noaa.gov> wrote:
> On 2006-07-23 01:27, Frank Cusack wrote:
>> On July 22, 2006 7:08:59 PM -0500 jacob martinson <martinson.jacob at gmail.com> wrote:
>>> On 7/22/06, Frank Cusack <fcusack at fcusack.com> wrote:
>>>> On July 22, 2006 12:15:07 PM -0500 jacob martinson <martinson.jacob at gmail.com> wrote:
>>>>> Are there any plans on the table to add native support for two-factor
>>>>> authentication, such as password *and* public key?
>>>> You can already do that. Public key is itself already 2-factor --
>>>> something you know (the pin/passcode) and something you have (the
>>>> device on which the public key resides). Password, via PAM or BSDAUTH,
>>>> allows any two factor device the host (server) system supports.
>>>>
>>> You can? How can you configure ssh to require both successful
>>> password authentication (via the underlying OS password verification
>>> mechanisms) and public key auth before the user is allowed onto the
>>> system?
>>
>> Sorry, I meant you can already do native 2-factor auth via publickey
>> or via password alone.
>
> Calling public-key "2-factor" is just spin.
Not at all.
> 1. You can't force people to put a passphrase on their private key.
>
> 2. You can't keep people from storing the key in ssh-agent.
>
> 3. If the private key--the actual factor--is compromised, it doesn't
> matter if someone originally had a passphrase on it.
None of those are correct in the case of smartcards, and ssh publickey
auth is agnostic as to whether the publickey auth came from a smartcard
or an on-disk (essentially single-factor) key.
> Some time back I wrote a patch to allow sshd to require multiple
> authentication passes to succeed, so, e.g. public key could be combined
> with s/key to achieve something like two-factor without a smartcard;
> here the thing you have is the piece of paper with the one-time
> passwords written on it, and if it falls out of your pocket at the
> convenience store, it presents no threat by itself because there's a
> keypair somewhere that's also needed; conversely if your keypair is
> compromised that doesn't give the intruder access to your pocket.
Unless you let the user generate the S/Key seed, in which case it will
probably be weak. Even when it is strong, this is generally considered
incovenient by users compared to a hardware token alone.
>> You are correct, for files on disk. But publickey can also be used
>> with smartcards and via control of authorized_keys or using X.509
>> (there's a patch for that) you can restrict to keys known to be
>> protected by a pin/passphrase.
>
> How?
With controlled authorized_keys (equivalently with X.509) you only allow
keys that are on a smartcard.
-frank
More information about the openssh-unix-dev
mailing list