web-dev-qa-db-fra.com

Pourquoi l'utilisation d'une clé SSH est-elle plus sécurisée que l'utilisation de mots de passe?

Si les gens utilisent un mot de passe pour se connecter à un serveur UNIX, il peut être contraint d'expirer le mot de passe, puis ils le modifient.

Si les gens utilisent une clé ssh et n'ont pas de mot de passe, pas d'expiration de mot de passe, rien ne les oblige à changer régulièrement leur clé SSH.

Question: Quelle solution est la plus sécurisée? Pourquoi le "howto" pour durcir un serveur conseille-t-il toujours d'utiliser une clé ssh, pas des mots de passe?

UPDATE : sans compter la faiblesse de la force brute - concernant les mots de passe, car ils pourraient être devinés s'il n'y a pas de solution de type Fail2ban.

72

Les clés et les mots de passe ont leurs avantages et leurs inconvénients. La raison pour laquelle les "howtos" et autres conseillent d'utiliser la clé SSH est qu'ils trouvent leurs inconvénients moins inquiétants que les inconvénients des mots de passe.

Les clés SSH sont longues et complexes, bien plus que n'importe quel mot de passe. Mais comme vous le dites, ils n'ont pas d'expiration et ils se trouvent sur le disque où ils peuvent être volés. D'un autre côté, ils ne sont pas transmis au système distant (sauf le transfert de clé, natch) quels mots de passe doivent être.

Les mots de passe sont généralement, de façon prévisible, inévitablement faibles. Bien qu'il soit possible d'avoir des mots de passe forts, il a été démontré à maintes reprises que les gens utiliseront des mots de passe faibles et auront de mauvaises pratiques en matière de mots de passe ... schémas simples, courts, basés sur Word ("p @ ssw0rd!"), Écrivez les bas, les utiliser sur plusieurs sites, les baser sur leur numéro de téléphone, la date de naissance de leurs enfants, leur propre nom. Vous signalez que les clés n'expirent pas, mais pourquoi les mots de passe expirent-ils? Pour garantir qu'une attaque par force brute est moins susceptible de casser un mot de passe avant qu'il ne soit remplacé. Pas un problème qui affecte les clés.

Et, mis à part les mauvais mots de passe, même les "bons" mots de passe sont vulnérables à la force brute (en ligne ou hors ligne) dans les bonnes conditions. Ils doivent être transmis à l'autre système ou à tout autre endroit où l'utilisateur peut être trompé en les envoyant par erreur.

La balance des preuves suggère fortement que les mots de passe sont plus faibles et les clés plus solides.

61
gowenfawr

Avec les mots de passe, le mot de passe est envoyé au serveur, donc la sécurité du mot de passe dépend de la façon dont le serveur protège tout ce qu'il utilise pour vérifier les mots de passe (par exemple, le /etc/shadow fichier). Lorsque vous utilisez une clé SSH, votre clé privée reste du côté client et aucune valeur secrète n'est jamais envoyée au serveur. Même si le serveur est sous contrôle hostile, ou si vous êtes en quelque sorte amené à vous connecter à un faux serveur, votre clé SSH reste en sécurité. Un faux serveur n'obtient pas suffisamment d'informations sur votre clé pour la récupérer ou faire du MitM. En ce sens, les clés SSH sont plus robustes que les mots de passe contre les compromis côté serveur.

D'un autre côté, une clé SSH doit être stockée quelque part, sur un ordinateur, ce qui peut être une vulnérabilité. Vous devez protéger votre clé privée avec une phrase secrète; sinon, un ordinateur portable volé se transforme en compromis de compte. Inversement, un mot de passe peut être stocké dans votre cerveau niquement, ce qui (prétendument) le rend moins susceptible de fuir.

Ainsi, on peut affirmer que les clés SSH sont "plus sécurisées" que les mots de passe, mais l'inverse peut également être avancé. Ça dépend du contexte. La plupart des HowTos estiment que les clés sont meilleures, car il se trouve que, en moyenne, les utilisateurs humains ont un bilan horrible pour les mots de passe. Les utilisateurs choisissent des mots de passe faibles et les réutilisent (la réutilisation des mots de passe est très très mauvaise).

36
Tom Leek

Si ce que je comprends dans votre mise à jour, si vous pouvez fournir la même entropie dans vos mots de passe vs clés, qu'en ce qui concerne sa sécurité, c'est sans objet. Vous pourriez faire valoir que les clés sont meilleures car elles fourniraient une meilleure "expérience utilisateur" car vous ne taperiez pas les mots de passe à chaque fois.

Je pense que plus à votre point d'origine, nous discutons de la gérabilité des mots de passe SSH vs clés SSH. Oui, les mots de passe peuvent se voir attribuer des politiques, qui permettent des mesures de sécurité de base (expiration du mot de passe IE, historique des mots de passe, longueur du mot de passe mix-max, etc.) mais cela ne change pas l'habitude humaine, et cela ne plaît pas non plus aux utilisateurs où la sécurité devient encombrante. production (Un équilibre au niveau organisationnel).

Les clés fournissent une méthode pour maintenir un degré d'entropie et de gérabilité tout en fournissant une méthode d'accès qui n'encombre pas un utilisateur (Une fois que votre paire de clés est configurée, vous pouvez vous authentifier sans mot de passe jusqu'à ce qu'elle soit révoquée.)

En plus de cela, sachez que les clés peuvent être protégées par mot de passe et fournir une autre couche.

4
Shane Andrie