L'administrateur du serveur m'a envoyé une clé privée à utiliser. Pourquoi?

73

Je suis censé accéder à un serveur afin de lier les serveurs intermédiaires et actifs d'une entreprise à notre boucle de déploiement. Un administrateur de leur côté a configuré les deux instances, puis a créé un utilisateur sur le serveur pour nous permettre de SSH en tant que. C'est ce à quoi je suis habitué.

Dans mon esprit, je leur enverrais maintenant ma clé publique qui pourrait être placée dans leur dossier de clés autorisées. Cependant, au lieu de cela, ils m'ont envoyé un nom de fichier id_rsaqui contient -----BEGIN RSA PRIVATE KEY-----un courrier électronique à l'intérieur du fichier . Est-ce normal?

J'ai regardé autour de moi et je peux trouver des tonnes de ressources sur la génération et la configuration de mes propres clés à partir de rien, mais rien sur le fait de partir des clés privées du serveur. Devrais-je utiliser cela pour générer une clé pour moi ou?

Je voudrais demander directement à l’administrateur système, mais je ne veux pas paraître idiot et perdre tout le monde entre nous. Dois-je simplement ignorer la clé qu'il m'a envoyée et leur demander de mettre ma clé publique dans leur dossier autorisé?

Toby
la source
6
Je n'appellerais pas cela normal ni normal, mais puisque vous avez la clé privée (en supposant qu'ils l'a déjà ajoutée comme autorisée), vous pouvez l'utiliser comme vous le feriez avec toute autre clé privée. Vous n'avez pas besoin de la clé publique correspondante, mais si vous le souhaitez, vous pouvez toujours la générer: askubuntu.com/a/53555/158442
muru
34
Obtenir -----BEGIN RSA PRIVATE KEY-----le courrier électronique est la prochaine chose effrayante après avoir vu un utilisateur nommé '); DROP DATABASE;--dans votre table de noms d'utilisateurs.
Dmitry Grigoryev
62
@DmitryGrigoryev n'a rien d'effrayant de voir en '); DROP DATABASE;--tant que nom d'utilisateur dans votre table de base de données - cela montre que vous
échappez
19
Vous ne pouvez certainement pas "l'utiliser comme vous utiliseriez une autre clé privée". Celui-ci n'est pas privé. Ergo cela ne peut pas remplir la fonction pour laquelle il a été créé. Il devrait être jeté et l’administrateur UNIX sévèrement réprimé. @muru
user207421
7
Toute personne possédant cette clé privée a accès aux nouveaux serveurs. On peut supposer que l’administrateur a toujours accès sans avoir besoin de la clé, puisqu’il a été en mesure de configurer le serveur, ce qui évite toute menace d’accès non autorisé de sa part. Cependant, puisque c'est votre clé, il peut désormais vous imiter de manière fiable. Il est également possible que quelqu'un d'autre que vous lisait le courrier électronique et puisse également se faire passer pour vous.
user253751

Réponses:

116

Dans mon esprit, je leur enverrais maintenant ma clé publique qui pourrait être placée dans leur dossier de clés autorisées.

Ce qui est "dans votre esprit" comme ce qui devrait maintenant arriver est correct.

Le courrier électronique n’est pas un moyen de communication sécurisé. Par conséquent, du point de vue de la sécurité, vous (et eux) devriez considérer que la clé privée est compromise.

En fonction de vos compétences techniques et de votre volonté diplomatique, vous pouvez effectuer plusieurs tâches différentes. Je recommanderais l'un des suivants:

  1. Générez votre propre paire de clés et attachez la clé publique à un courrier électronique que vous leur envoyez, en disant:

    Merci! Le courrier électronique n'étant pas une méthode de distribution sécurisée pour les clés privées, pourriez-vous plutôt mettre ma clé publique en place? C'est attaché.

  2. Remerciez-les et demandez-leur s'ils s'opposent à ce que vous installiez votre propre paire de clés, car la clé privée qu'ils ont envoyée doit être considérée comme compromise après avoir été envoyée par courrier électronique.

    Générez votre propre paire de clés, utilisez la clé qu'ils vous ont envoyée pour vous connecter pour la première fois et utilisez cet accès pour modifier le authorized_keysfichier afin qu'il contienne la nouvelle clé publique (et supprimez la clé publique correspondant à la clé privée compromise).

En bout de ligne: vous ne ressemblerez pas à un idiot. Mais, l’autre administrateur pourrait très facilement ressembler à un idiot. Une bonne diplomatie pourrait éviter cela.


Modifier en réponse aux commentaires de MontyHarder:

Aucune des mesures que je préconise ne consiste à "réparer les choses sans dire à l'autre administrateur ce qu'il a mal fait"; Je viens de le faire subtilement sans le jeter sous le bus.

Cependant, j'ajouterai que je suivrais aussi (poliment) si les indices subtils n'étaient pas relevés:

Bonjour, j'ai vu que vous n'aviez pas répondu à mon commentaire sur le courrier électronique en tant que canal non sécurisé. Je veux être confiant que cela ne se reproduira plus:

Comprenez-vous pourquoi je parle de la manipulation sécurisée des clés privées?

Meilleur,

Toby

Wildcard
la source
9
+1 meilleure réponse. Et j'ajouterais: soyez particulièrement prudent, car ce système s'est révélé incompétent. Mieux vaut avoir le dos couvert quand (et non si ) il / elle va bousiller le serveur pour de bon.
dr01
2
Merci. J'ai utilisé un phrasé délicat et j'ai envoyé ma clé publique. Tout semble résolu, mais je vais retirer l'autorisation de la clé qu'il m'a envoyée maintenant.
Toby
27
Ce n’est pas que l’autre administrateur "puisse ressembler à un idiot". C'est que l'autre administrateur a fait quelque chose d'idiot. Je ne peux penser qu’à un scénario dans lequel une clé privée devrait être partagée entre des machines. C’est là qu’un groupe de serveurs est accessible via le même nom (résolution DNS alternée, etc.) et doit présenter la même clé d’hôte SSH pour que les processus automatisés accepteront qu’ils portent ce nom. Et dans ce cas, la même personne serait l’administrateur de tous les serveurs et se chargerait des transferts sans intervention de tiers.
Monty Harder
21
@zwol Dans mon travail, nous avons une philosophie "sans reproche" qui comprend que nous ferons des erreurs, mais accorde la priorité à ne pas commettre la même erreur deux fois. Mais pour ne pas commettre deux fois la même erreur, vous devez savoir que c'est une erreur, c'est pourquoi je ne peux pas voter à la hausse, ce qui suggère que le PO résout les problèmes sans dire à l'autre administrateur ce qu'il a mal fait. J'ai choisi d'appeler l' erreur "idiote" plutôt que d'appeler les noms d'administrateurs précisément pour la raison que vous expliquez. (Mais je ne suis pas sûr que votre conclusion entre parenthèses énonce une distinction significative.)
Monty Harder
8
@ LightnessRacesinOrbit, je suppose que vous avez peut-être une compréhension incomplète du sens du mot "diplomatie". Avez-vous essayé de mettre de l'ordre dans un bon dictionnaire, tel que le Troisième nouveau dictionnaire international de Webster?
Wildcard
34

Dois-je simplement ignorer la clé qu'il m'a envoyée et leur demander de mettre ma clé publique dans leur dossier autorisé?

Oui, c'est exactement ce que vous devriez faire. Le problème avec les clés privées est qu'elles sont privées , ce qui signifie que vous êtes seul à posséder votre clé privée. Depuis que vous avez reçu cette clé de l'administrateur, il l'a aussi. Ainsi, il peut vous imiter à tout moment.

Peu importe que la clé vous ait été envoyée via un canal sécurisé ou non: même si vous avez reçu votre clé privée en personne, cela ne changerait rien. Bien que je sois d’accord avec les commentaires selon lesquels l’envoi par courrier électronique de clés de cryptographie sensibles est la cerise sur le gâteau: votre administrateur ne prétend même pas qu’une politique de sécurité est en place.

Dmitry Grigoryev
la source
6
Et comme le PO n'a aucun moyen de savoir à quel point la machine de l'administrateur est sécurisée (d'après le récit, probablement très incertaine), il devrait supposer que la clé privée est (ou sera) également divulguée à d'autres personnes. L'envoi d'une clé privée par e-mail n'est qu'un bonus pour Infertess Clause.
dr01
1
Vous pouvez supposer qu'un administrateur capable de créer des utilisateurs n'aura pas besoin de votre clé privée pour vous imiter.
Max Ried
3
@MaxRied Cela peut être difficile à faire avec des journaux de sécurité appropriés en place. Avec votre clé privée, il n'a même pas besoin de se moquer des journaux. C'est comme avoir la possibilité de réinitialiser votre mot de passe plutôt que de le connaître.
Dmitry Grigoryev
@DmitryGrigoryev Il pourrait toujours ajouter une autre clé à votre fichier allowed_keys ...
Max Ried
4
@ MaxRied dont je parlais /var/log/secureou similaire , je suis à peu près sûr que le tour de l'espace ne va pas tromper celui-ci.
Dmitry Grigoryev
14

Pour moi, il semble que l’administrateur ait généré une paire de clés privée / publique pour vous, ajouté la clé publique à allowed_keys et vous envoie la clé privée. De cette façon, vous ne devez utiliser cette clé privée que pour vos sessions SSH avec le serveur. Inutile de générer vous-même une paire de clés ou d'envoyer à l'administrateur une clé publique sur votre clé privée éventuellement corrompue (pensez toujours au pire des cas: P).

Cependant, je ne ferais pas confiance à la clé privée qui vous est envoyée via un courrier non chiffré.

Mon approche serait la suivante: utilisez la clé privée pour vous connecter une fois, ajoutez votre propre clé publique à la authorised_keys sur le serveur (en remplacement de la clé publique d'origine) et jetez cette clé privée d'e-mail. Vous pouvez ensuite remercier l’administrateur qui vous a fourni la clé privée, mais vous préféreriez que ces informations / clés ne soient pas envoyées par courrier électronique (/ du tout).

utilisateur204269
la source
3
@Toby La seule raison pour laquelle je peux imaginer qu'ils envoient la clé privée, c'est qu'ils ne comprennent pas les outils qu'ils utilisent. Et vous pouvez utiliser -ila ligne de commande pour choisir la clé privée à utiliser.
Kasperd
18
@kasperd La raison pour laquelle je peux imaginer est un administrateur système surchargé qui a décidé que les tracas d'essayer d'expliquer à des utilisateurs moins férus de technologie comment générer correctement une paire de clés et envoyer clé publique retour.
mattdm
1
Excellent point que vous pouvez résoudre ce problème vous-même. Mieux vaut le faire vous-même tout de suite que d’attendre que l’administrateur installe la clé publique pour une nouvelle paire de clés. Éviter d'utiliser la clé privée qui n'est plus secrète n'aide en rien. cela donne simplement à tous les oreilles indiscrètes potentielles plus de temps pour l'utiliser avant que vous puissiez entrer et le retirer authorized_keys(après avoir ajouté + testé votre propre).
Peter Cordes
4
@mattdm C'est ... tout à fait logique, mais effrayant. Une personne qui ne peut pas générer une paire de clés et m'envoyer la clé publique ne fera probablement pas beaucoup mieux avec une clé privée que je lui ai donnée.
Monty Harder
1
@mattdm, c'est assez, mais comme c'est moi qui lui ai demandé de faire tout cela, j'ai du mal à croire qu'il pensait que je ne savais pas comment me connecter à ssh. Les mesures qu'il a prises étaient plutôt déroutantes, car je ne connaissais que la méthode de base commune consistant à utiliser des clés publiques. : x
Toby