Also think of it from the perspective of the authenticating host. That SSH connection relies *only* on the key for authentication. It requires nothing else. How you protect that key is irrelevant. All that matters is that the host is accepting a single form of authentication. It's clearly single-factor.
You can call pseudo-multi-factor if you want. It's certainly better than a shitty password. But it's not multi-factor by the generally accepted definition (although I'd place it under 'something you have' rather than the 'something you know' section). On Sun, Dec 27, 2015 at 5:08 PM, Owen DeLong <o...@delong.com> wrote: > >> On Dec 27, 2015, at 14:33 , Baldur Norddahl <baldur.nordd...@gmail.com> >> wrote: >> >> >> >> On 27 December 2015 at 22:08, Owen DeLong <o...@delong.com >> <mailto:o...@delong.com>> wrote: >> This is a bit of a tangent, really. The discussion was about authentication >> factor >> counts and Baldur tried to use PCI-DSS acceptance of password-encrypted >> private key authentication as two-factor to bolster his claim that it was, >> in fact >> two-factor, when it clearly isn’t actually two-factor as has been stated >> previously. >> >> I wanted to stay out of this, but Owen you are full of shit here. I am >> pointing out that your homemade definition does not match up with what >> others think two factor means. PCI DSS might be utter crap, but they are >> still more than "Owen DeLong and his personal opinion”. > > Dude… It’s not just my opinion. Virtually every one else who chimed in on the > thread other than you backed my position on this. > >> You are utterly confused about the meaning about two factor. You apparently >> believe the magic words "two factor" is a statement about the security of a >> system, while it is in fact just a simple property. A property that even an >> inherently insecure and weak system can have. > > No, as I pointed out, you can have very weak security with two weak factors. > > However, the property two-factor means something and it’s not what you > apparently think. > >> It is not, as you have said, about strengthen the search space of a crypto >> key (just double the key length if you need that). In fact, many two factor >> systems do not use crypto keys at all. An example of such a non crypto based >> system is a credit card with magnetic strip plus pin. The magnetic strip >> contains just the card number, which can also be read directly from the card >> and even memorized by the owner. > > Actually, the magnetic stripe contains quite a bit more than the card number, > but that’s another tangent. > > I never said you had to have crypto for two-factor, nor did I say that two > factor magically made things stronger. > >> We need two factor because if you have just one factor, say the password, >> the hacker will simply call the user and ask him to tell the password. And >> the users will happily obligate. Experience shows this. On the other hand, >> if you give the users a single factor system with a physical token (a key), >> that gets stolen, misplaced or "borrowed" far too easily. Therefore industry >> standard is card + pin to enter a building (=two factor). Secure places >> require three factor (card + pin + biometric). > > Card+pin is an example of two factors… You _HAVE_ the card and you _KNOW_ the > PIN. > > Password-encrypted Key, OTOH, is something you _KNOW_ and something else you > _KNOW_. It’s not something you _HAVE_ or something you _ARE_. > > There are three generally accepted categories of Factors for authentication… > > 1. Something you HAVE > 2. Something you KNOW > 3. Something you ARE > > In order to qualify as 2-factor, a system must require something from two of > the categories. Two things from the same category do not qualify. > >> SSH keys are two factor because people do not in general memorize the key >> file. Because they do not, you can not gain access to the system with only >> what you know (=in your mind). Unless the user violated protocols and >> changed the passphrase to null, you can not gain access just by possession >> of the key file. That is all that is required to name it two factor. That >> Owen DeLong believes the system stinks does not change that at all. > > Something on disk counts as something you know. A private/public key pair is > not something you HAVE because it’s not a physical object and it’s certainly > not something you ARE. > > It’s clearly in the something you KNOW category for all practical purposes, > even if you don’t memorize it into your mind. > > Now, a private key in black box where you feed it encrypted stuff to be > decrypted or decrypted stuff to be encrypted and you cannot extract the > private key, that could be something you HAVE. > But at that point, it’s the black box that is the thing you have, not the key > itself. The key in the box and the boxes ability to decrypt/encrypt using > that key is merely a mechanism for proving > that you have the correct black box. > >> Historically the banks used to depend on a system that is the same as ssh >> keys: certificate files you have on your computer to access the bank >> website. That also is a two factor system. The users did not usually >> memorize the content of the certificates. The system is weak because bad >> guys used malware to steal the certificate files and install key loggers to >> also get the other factor, the password. > > Again, real two-factor authentication depends on factors from different > categories above. The certificate, like it or not, whether you memorize it or > not, is something you KNOW, not something you HAVE. > > To qualify as something you HAVE, it has to be a unique physical token with > some degree of difficulty in duplication. Some physical tokens are easier to > duplicate than others. Examples include keys for pin-tumbler locks. > Even those come in varying degrees of difficulty (3, 5, or 7 pins, straight > or spool pins, angled pin alignments, etc.) > >> In my country (Denmark) they decided hardware keys are still too expensive, >> so they developed a two factor system based on paper keys. You will get a >> piece of paper with a few hundred random numbers. When you log in, you are >> asked to type one of the numbers in to prove that you are in possession of >> the key paper. The codes are just 6 digits and infinite weak if you believe >> them to be part of any crypto scheme. This system has also been broken >> because now bad guys ask the users to take pictures of the key paper to >> prove something, and the users happily do just that. Banks are still happy >> though, because the loss is less than the cost to ship hardware keys to >> everyone. > > Why not just use Google Authenticator (free App) with a unique series on > people’s smartphones? I’m pretty sure smartphones are quite common in DK by > now. > >> Only strong two factor systems are really resistant to the users defeating >> the system by doing stupid things. That does not mean that only strong two >> factor systems are two factor. That would be silly - Owen what would you >> then name weak and broken two factor systems? It is a property - nothing >> more. > > Correct. However, calling a system which depends on two “factors” from the > same factor category doesn’t meet the requirements of a two factor system. > > Password protected SSH key is all in the something you KNOW category. > Especially when you consider that you aren’t presenting the password and the > key to the authenticator, you are using the password to unlock the key that > is presented to the authenticator. > > (yes, I realize the key isn’t actually presented, it’s done differently > involving using the key to encrypt a hash which can then be verified as > correctly encrypted by decrypting with the public key, but that’s a > technicality that isn’t really relevant here). > > Owen > -- 09 F9 11 02 9D 74 E3 5B D8 41 56 C5 63 56 88 C0