C'est une question vraiment théorique, mais si j'utilise une clé SSH avec un mot de passe pour se connecter sur un serveur, cela pourrait-il être considéré comme une authentification à deux facteurs (2FA)?
En effet, j'ai besoin de la clé SSH (privée), qui pourrait être considérée comme le premier facteur, et de la phrase secrète qui pourrait être le deuxième.
Si nous comparons à un seul mot de passe pour la connexion, je vois deux "éléments" avec une clé SSH avec mot de passe.
Un deuxième facteur est défini comme indépendant du premier facteur. Cela signifie que votre système doit rester sécurisé, même si l'un des facteurs est compromis (et que vous êtes conscient du compromis).
Par exemple, un badge de porte et une empreinte digitale sont indépendants l'un de l'autre, et le simple fait d'avoir le badge de porte ou l'empreinte digitale ne suffit pas pour y accéder. Ceci est souvent appelé "authentification multi-étapes" au lieu de "authentification multi-facteurs".
Imaginez maintenant votre scénario: vous avez une clé privée, chiffrée avec une phrase de passe forte. Ces deux facteurs sont-ils? Non, car la clé privée peut également exister sans phrase secrète. Un attaquant qui compromet la clé privée peut ainsi se connecter à votre système, même sans connaître cette phrase secrète. En fait, le serveur ignore complètement si votre clé privée est protégée par une phrase secrète ou non.
Si vous voulez une véritable authentification multifacteur, il existe des modules SSH qui font exactement cela. Cela dit, une clé privée chiffrée avec un mot de passe fort suffit souvent.
Note: La question d'origine parle d'une "clé SSH avec une phrase secrète pour se connecter sur un serveur", que j'ai interprétée comme une clé privée, chiffrée avec une phrase secrète.
Non . D'autres réponses sont assez proches, mais manquent un facteur important.
Je ne répéterai pas en détail ce que les autres disent, résumons simplement que pour que la clé SSH + le mot de passe soient multifactoriels dans votre cas, cela devrait être "quelque chose que vous savez" + "quelque chose que vous possédez".
Ce que je dirais, c'est que si vous n'avez besoin que de connaissances pour reproduire efficacement "quelque chose que vous avez" (afin que personne ne puisse dire lequel est original et lequel est copie), alors ce n'est pas "quelque chose que vous avez" mais "quelque chose que vous savez".
Par exemple, si je ne me souviens pas de mon mot de passe et que je l'ai écrit sur un morceau de papier, il ne cesse pas d'être "quelque chose que je sais" et de devenir "quelque chose que j'ai". C'est toujours juste un mot de passe (même si c'est difficile à retenir), et une fois que quelqu'un l'apprend, il peut me personnifier à tout moment sans que je le sache. C'est la même chose avec la clé privée SSH. Ce ne sont que des données, et les données sont par définition "quelque chose que vous (pourriez) savoir (et en faire sans effort une copie exacte et indiscernable)".
La caractéristique principale pour que quelque chose soit "quelque chose que j'ai" est la difficulté de copier par un tiers non autorisé, car la caractéristique principale de efficace "quelque chose J'ai "c'est que la seule façon réaliste dont l'attaquant peut l'avoir est si je ne l'ai plus (comme je dois le remarquer, je le manque).
Bien sûr, il y a beaucoup de nombreuses zones grises , comme mentionné dans certains articles. Les cartes bancaires CHIP seraient "quelque chose que j'ai" aujourd'hui, car il n'est pas possible (sans beaucoup d'efforts, de personnes et d'argent) de faire un duplicata de travail authentique. Cependant, la carte bancaire n'est autorisée que par magstripe , dont tout caissier peut faire une copie avec 25 $ d'équipement et 1 $ de matériel n'est plus efficace "quelque chose que j'ai".
De plus, à mesure que la technologie progresse, les définitions changent. Il était une fois MD4 était cryptohash. De nos jours, ce n'est certainement PAS - c'est juste un hachage, pas mieux pour être un cryptohash que simple Checksum .
Donc, "clé privée SSH + phrase secrète" échoue en fait à être une méthode d'authentification à deux facteurs sur deux fronts:
Notez que cela ne signifie pas que la clé privée ssh + la phrase secrète sont mauvaises: c'est bien mieux qu'un mot de passe simple ou une clé privée non protégée. Mais ce n'est pas à 2 facteurs.
Mais si vous voulez une sécurité supplémentaire fournie par l'authentification à deux facteurs dans ssh , vous pouvez configurer l'authentification à 2 facteurs dans ssh , de préférence en plus d'avoir sa clé privée protégée par une phrase secrète.
2FA nécessite deux facteurs ou catégories d'authentification différents. (Ils doivent être de catégories différentes; un mot de passe et un PIN ne serait pas considéré comme 2FA.)
Wikipedia fournit une grande liste de facteurs:
Votre mot de passe est un facteur de connaissance; votre clé SSH est un facteur de possession.
Notez que la facilité de duplication ne pas empêche une clé SSH d'être un facteur de possession. Les clés physiques peuvent être copiées avec n appareil photo, une imprimante et une canette de soda ; ils sont toujours un facteur de possession.
Le but de l'authentification multifacteur est de tirer parti des avantages de plusieurs types d'authentification, réduisant ainsi le risque de compromis.
Votre mot de passe est suffisamment court pour qu'il ne soit jamais écrit et donc difficile à obtenir. Votre clé SSH est longue et donc difficile à deviner.
Ensemble, ils rendent une attaque réussie moins probable.
Plusieurs personnes ont estimé que, comme la clé pouvait être utilisée non chiffrée, elle n'est plus 2FA.
C'est tout simplement absurde.
Si vous pouvez créer une clé SSH non chiffrée et ensuite utiliser ces informations pour prétendre que c'est tout ce qui est nécessaire, pourquoi ne pas vous épargner du travail et des copies des fichiers du serveur existeront-elles?
En disant
Tout ce dont vous avez besoin pour accéder aux fichiers du serveur est une clé SSH non chiffrée
n'est pas différent de dire
Tout ce dont vous avez besoin pour accéder aux fichiers du serveur est un Zip des fichiers du serveur.
Bien sûr .... mais comment avez-vous obtenu cela?
Il est vrai que ce n'est pas une utilisation exécutable par le serveur de 2FA. Dans un cadre organisationnel, il est souvent nécessaire que le 2FA soit exécutoire de manière centralisée. Mais
Ce n'est pas la question.
De toute façon, l'application par le serveur n'est jamais le dernier mot d'un système de sécurité.
Si une porte nécessite une clé physique et un code PIN de clavier, cette porte "applique" 2FA autant que n'importe qui peut. Mais lorsque vous imprimez le PIN sur toutes les clés, vous avez un système 1FA.
De même, vous pouvez augmenter les facteurs. Un ordinateur portable protégé par mot de passe derrière une porte avec une clé physique est 2FA, malgré le fait qu'il n'y a pas un seul composant qui applique les deux facteurs. Vous pouvez retirer l'ordinateur portable de la pièce et réduire la sécurité à 1FA, mais jusqu'à ce que vous le fassiez, il existe un système 2FA.
Du point de vue du service: Non, une clé privée SSH protégée par mot de passe n'est pas une authentification multifactorielle.
Le serveur SSH n'a aucun moyen de savoir si la clé privée est cryptée ou non, et n'a aucun moyen de savoir ce que cette phrase secrète actuelle peut être dans tous les cas. Le plus proche que le serveur peut obtenir est, si la paire de clés est générée sur le serveur, il peut capturer la phrase secrète à ce moment. (Ce serait très inhabituel, et je remettrais en question la sécurité de tout système qui fait cela.) Une fois que la clé privée a quitté le serveur, cependant, la seule chose qu'elle peut affirmer est qu'à un moment donné, quelqu'un a utilisé la phrase secrète pour déchiffrez la clé. Le serveur ne sait pas s'il a été déchiffré il y a quelques secondes dans le cadre de l'authentification ou si sa clé privée est actuellement non chiffrée sur le disque de l'ordinateur client.
Ainsi, bien qu'il soit recommandé de chiffrer la clé privée avec une phrase de passe, la négociation d'authentification entre le client et le serveur n'utilise pas cette phrase de passe, donc la phrase de passe ne fait pas partie de l'authentification.
Quant à savoir si la clé privée est quelque chose que vous avez ou quelque chose que vous savez, Je soutiens que c'est quelque chose que vous avez, parce que vous ne transmettez pas la clé privée directement au serveur, vous prouvez que vous avez la clé privée:
La prise de contact d'authentification se déroule comme suit:
~/.ssh/authorized_keys
, génère un nonce et le chiffre avec cette clé publique.Il s'agit d'un processus différent de la transmission d'un mot de passe; vous prouvez plus que de simples connaissances, vous prouvez que vous disposez d'un système capable d'effectuer le déchiffrement d'un message chiffré avec une clé publique spécifique.
En sécurité physique, quelque chose que vous connaissez serait implémenté avec une réponse de défi: le gardien appelle un mot et vous répondez. (Cela authentifie également le gardien. Ne donnez pas le mot de passe du jour à quelqu'un simplement parce qu'il porte un uniforme.)
De même en sécurité physique, quelque chose que vous avez est une clé. Oui, la clé contient des informations faciles à copier et pouvant même être mémorisées, mais à moins que ces données ne soient découpées en un objet physique, les données ne servent à rien. Avec une clé, vous prouvez plus que des connaissances, vous prouvez que vous avez un objet capable de soulever les broches du gobelet à la bonne hauteur. Et tout comme la phrase secrète d'une clé privée ne fait pas partie de l'authentification, que l'outil utilisé pour tourner le culbuteur soit la clé voulue, une copie ou un ensemble de crochets ne fait pas non plus partie de l'authentification.
Eh bien, il y a quelques réponses qui sont correctes mais où les arguments subséquents qui font rage dans les commentaires montrent qu'ils ne sont pas assez clairs, donc je pense qu'il y a encore de la place pour souligner le point clé suivant:
Le paramètre ici est une sorte de protocole d'authentification avec deux parties:
Dans SSH, le demandeur est le client et le vérificateur est le serveur. Dans la configuration la plus courante, le serveur n'exige pas que la clé privée du client soit chiffrée avec le mot de passe, ce qui signifie ce n'est pas MFA. C'est juste le choix discrétionnaire du client de crypter sa clé privée.
Ajout à la réponse de @ MechMK1, le "facteur" dans les mécanismes d'authentification se divisent en 3 catégories -
Si vous voulez maintenant 2FA, vous devez en choisir un dans chaque catégorie. Par exemple. Empreinte digitale plus mot de passe, carte de crédit plus PIN etc etc.). Avoir deux facteurs de la même catégorie équivaut à n'en avoir qu'un seul.
Pour en revenir à votre question, la clé SSH et la phrase secrète appartiennent également à "quelque chose que vous savez" et, par conséquent, ne comptent pas comme 2FA.