web-dev-qa-db-fra.com

Quand puis-je valider une clé privée pour le contrôle de code source?

Autrement dit, dans quels cas est-il judicieux de valider une paire de clés non chiffrée pour le contrôle de source interne comme SVN ou Git?

Question connexe qui traite d'une clé privée chiffrée: Est-ce une mauvaise pratique d'ajouter une clé privée chiffrée au contrôle de code source?

28
Nathan Basanese

En général, mélanger le code et la configuration secrète (mots de passe, clés, etc.) dans le même référentiel est une mauvaise idée car, en règle générale, beaucoup plus de personnes ont besoin (ou au moins bénéficieraient) d'un accès au code que d'un accès à un secret donné. Le flux de travail courant avec les systèmes VCS consiste également à créer de nombreuses copies.

Cela ne signifie pas que vous ne pouvez pas mettre de configuration secrète dans un VCS, mais ce devrait être un référentiel séparé de votre code et son accès devrait être très étroitement contrôlé.

38
Peter Green

Lorsque la clé privée n'est rien de plus qu'un dispositif de test utilisé pour tester un processus nécessitant une clé privée et où la clé privée n'est pas réellement utilisée pour sécuriser un système.

Dans certains cas , il peut être approprié de valider une clé chiffrée . Par exemple, si le référentiel est public/open source mais qu'un système d'intégration continue nécessite l'accès à ce fichier - Travis CI le prend en charge .

Sinon, vous ne devez pas valider de clés privées.

46
thexacre

Je pense que vous devez vous demander:

Si la clé est compromise, puis-je la détecter?

et

Comment le processus de révocation affecte-t-il les autres personnes?

Par exemple: que se passe-t-il si le référentiel de contrôle des sources internes est pris en dehors du périmètre de l'entreprise, par exemple via l'ordinateur portable d'un développeur? Et si cet ordinateur portable est volé? Et si c'est un employé mécontent qui fait une copie et la conserve sur son ordinateur portable personnel?

En d'autres termes, la clé peut-elle être utilisée pour accéder à une ressource publique et si oui, quel est le dommage?

Si vos pratiques de développement nécessitent le partage d'une clé privée, ce n'est pas une clé privée par définition. Vous voudrez peut-être réfléchir à la raison pour laquelle cela se produit et si vous devez envisager un jeton d'accès par utilisateur (par exemple, oAuth, une clé API) ou d'autres solutions.

12
lorenzog

Comme cette réponse n'a pas encore été donnée, il me semble que je dois:

Jamais jamais. Vraiment jamais.

Comme déjà souligné, par définition, une clé privée doit être gardée secrète. Mais le contrôle des sources est fait pour partager et rendre l'information disponible (peut-être pour un public limité, mais de toute façon).

La raison pour laquelle vous voudrez peut-être le faire est simplement parce que vous n'avez pas les processus dont vous avez besoin. Même si vous avez l'intention d'utiliser cette clé pour un système de test qui sera effacé après chaque exécution de test, vous n'appliquez probablement pas vos intentions. Les intentions se détérioreront avec le temps et à un moment donné, la clé sera utilisée dans la production.

3
SpaceTrucker

Lorsque vous effectuez des analyses de cryptographie pour des choses comme les attaques de Man in the Middle, il est typique de définir les parties en fonction de leurs connaissances. Ainsi, les techniques permettant à Alice de parler à Bob et lui permettant de croire que le message est venu d'Alice définissent Alice comme "quelqu'un qui sait tout ce qui est important pour Alice".

En plaçant la clé privée dans le référentiel, vous devez maintenant effectuer toutes vos analyses de sécurité où la clé privée est désormais une clé privée pour "tous ceux qui pourraient télécharger le référentiel ou obtenir une copie d'une autre manière".

Si ce niveau de sécurité est suffisant pour votre clé privée, vous pouvez la placer dans le référentiel. Sinon, le placer dans le référentiel invalidera toutes vos preuves de sécurité qui dépendaient de la diffusion de la clé privée étant plus étroite que cela.

2
Cort Ammon