Est-il prudent de donner ma clé publique SSH au travail?

60

Je travaille actuellement à distance pour un certain nombre d'organisations qui ont besoin de moi pour accéder régulièrement à leurs serveurs à des fins de maintenance et de mises à niveau. Est-il sécuritaire pour moi d'ajouter ma clé publique SSH RSA au .ssh/authorized_keysfichier pour me permettre de me connecter beaucoup plus rapidement / sans avoir à chercher des mots de passe? Je présume qu'il serait impossible de générer la clé privée à partir de la clé publique, mais ai-je raison de supposer?

En allant un peu plus loin, y aurait-il un risque de sécurité à publier le contenu de ma clé publique RSA sur Internet? Je sais que si ma clé privée est obtenue, j'ai de gros problèmes, mais à part cela, existe-t-il de véritables menaces à la sécurité?

Naftuli Kay
la source

Réponses:

77

Oui, il est impossible de récupérer la clé privée à partir de la clé publique. Si cela était possible, le RSA serait fondamentalement détruit, ce qui constituerait une grande nouvelle (briser le RSA compromettrait non seulement la sécurité des communications Internet, mais permettrait également toutes sortes de fraudes bancaires, entre autres).

Se connecter avec une clé publique au lieu d'un mot de passe tend en fait à renforcer la sécurité. Si votre mot de passe n'est pas assez puissant, il peut être forcé par un attaquant disposant d'une bande passante suffisante. Si l'attaquant ne dispose pas d'une copie de votre fichier de clé privée, la clé RSA ne peut pas être forcée brute (une clé de 1024 bits équivaut à un mot de passe de 160 caractères composé de lettres et de chiffres aléatoires et sensibles à la casse). . Quelqu'un qui surveille par-dessus votre épaule sera peut-être en mesure de voir votre mot de passe et votre phrase secrète, mais avec une clé, ils auraient également besoin de la clé.

Les clés privées ne sont pas toujours plus sécurisées que les mots de passe. Si l'attaquant obtient une copie de vos fichiers de clé privée (par exemple en volant votre ordinateur portable ou votre support de sauvegarde), il peut essayer de forcer la phrase secrète de force, et elle peut le faire à grande vitesse car vous n'avez aucun moyen de limiter la taux (contrairement aux suppositions de mot de passe qui doivent être faites en ligne). Si votre phrase secrète est suffisamment bonne et que vous remarquez le vol immédiatement, vous aurez encore le temps de révoquer la clé.

Une clé publique introduit un élément d'exposition à la confidentialité: si quelqu'un sait que vous avez utilisé la même clé publique pour vous connecter à A et pour vous connecter à B, il sait que la même personne est connectée à A et à B. un suspect que vous avez également la clé privée, de sorte que vous perdez une partie de l'anonymat. Mais c'est généralement mineur, surtout si vous ne stockez que la clé dans ~/.sshlaquelle seuls les administrateurs système (qui savent également de quelle adresse IP vous êtes connecté) peuvent la voir.

Mis à part ces considérations de sécurité, une clé privée présente de nombreux avantages pratiques. Vous n'avez pas besoin de taper votre mot de passe aussi souvent, et en particulier, vous pouvez exécuter des scripts automatisés qui ne vous le demandent pas une fois que vous avez entré votre clé dans ssh-agent ou similaire. Vous n'avez pas besoin de taper votre mot de passe aussi souvent, vous pouvez donc vous permettre de le rendre plus entropique (plus long, plus difficile à taper). Vous n'avez pas besoin de taper votre mot de passe aussi souvent, il y a donc moins de risque qu'il soit surveillé par un observateur humain ou une caméra.

Gilles, arrête de faire le mal
la source
@NaftuliTzviKay En fait, il y a quelque chose qui devrait être considéré ici et qui est négligé. Pour pouvoir utiliser votre clé publique, le système sur lequel vous vous appuyez doit avoir accès à votre clé privée. C'est très bien. Si cette clé privée est stockée sur ce système, elle est vulnérable et le système distant le devient. Deux choses aident avec ceci, les dossiers personnels cryptés et un mot de passe sur votre clé. Par conséquent, pour atteindre l’augmentation totale de la sécurité offerte par l’ICP, vous perdrez un peu d’efficacité. Vous, ou votre organisation, devez effectuer une analyse de risque pour déterminer où tracer la ligne.
Xalorous
16

La réponse de Gilles est généralement bonne, sauf

... surtout si vous ne stockez que la clé dans ~ / .ssh, où seuls les administrateurs système (qui savent également de quelle adresse IP vous êtes connecté) peuvent la voir.

Vos clés ssh ~/.sshpeuvent également être lues par tout logiciel exécuté sous votre propre compte. Ce qui est probablement la plupart des logiciels que vous utilisez. Vous devez donc faire confiance à ce logiciel et à ceux qui l’ont écrit.

Stephen Blott
la source
2
Vous devez toujours utiliser des clés SSH chiffrées pour cette raison
ItalyPaleAle