2 votes

Comment définir une phrase de passe pour une clé privée AWS X.509 ?

J'ai fait la rotation de mon certificat X.509 et de ma clé privée AWS (à ne pas confondre avec la paire de clés privée / publique ssh) aujourd'hui et j'ai décidé de définir une phrase de passe sur ma clé privée pour mieux la protéger. J'ai donc fait un peu de recherche et j'ai exécuté :

openssl rsa -in awsprivatekey.pem -des3 -out awsprivatekey.pem.new

et entré une phrase de passe pour la clé privée. Après avoir essayé d'utiliser les outils de l'api ec2, j'ai obtenu une erreur :

java.io.IOException: DER length more than 4 bytes

Cela est devenu évident lorsque j'ai fait des recherches sur le sujet et que j'ai trouvé ce lien les outils api ec2 ne prennent pas en charge une clé privée avec un mot de passe

Je suis troublé par le manque d'informations à ce sujet et par le statu quo qui consiste à avoir des clés privées non protégées avec un élément aussi crucial qu'Amazon EC2.

Avez-vous des suggestions sur la façon de mieux protéger ma clé privée ?

3voto

Ian Points 11

J'ai fait les mêmes vérifications préalables et je suis également préoccupé par le fait que tous les outils et la documentation destinés aux clients semblent promouvoir de mauvaises pratiques en matière de sécurité. Je réponds à la question "voulez-vous vraiment entrer à nouveau une phrase de passe pour chaque commande que vous entrez ?". -- Oui, ou du moins je suis heureux qu'un outil comme ssh-agent l'entre pour moi. Je ne veux jamais trouver aucune de mes clés privées ou phrases de passe dans un texte plat sur mon système de fichiers. Je suis étonné que la réponse standard soit simplement "cryptez tout votre système de fichiers".

Même si je monte et crypte juste un répertoire .ec2 et que je planque tout dedans, je dois toujours faire attention à ne pas suivre la documentation qui suggère de définir ma clé secrète comme une variable d'environnement dans mon bash_profile script. Alors peut-être que je vais juste la mettre dans un script sur mon répertoire .ec2 et la passer dans la ligne de commande -- oh attendez, maintenant mon mot de passe est assis dans mon historique (je ne peux toujours pas croire qu'os x n'est pas assez gentil pour ne pas stocker les lignes que je préfixe avec un espace). Donc, j'ai vraiment besoin de crypter tout mon répertoire utilisateur juste pour être sûr. Et pourquoi exactement le processus asymétrique d'utilisation des certificats x.509 est-il déprécié et remplacé par le processus d'authentification par "clé secrète" ? Au moins, le premier me permet de stocker la clé privée dans un fichier - le second me demande de la passer en argument (dont la valeur se retrouve partout dans mon historique et mes script).

Le problème est qu'il existe tous ces grands protocoles de sécurité, mais que personne ne veut prendre le temps de les comprendre. Au lieu de cela, ils veulent juste que les choses fonctionnent - en conséquence, ils suivent aveuglément une documentation étape par étape qui a été écrite par quelqu'un qui a aveuglément suivi la documentation étape par étape de quelqu'un d'autre. Personne ne pose de questions à ce sujet parce qu'ils ne comprennent pas et veulent simplement que ça marche. Le résultat est la prolifération de pratiques de sécurité vraiment mauvaises.

1voto

user85259 Points 175

Gardez-les sur le disque crypté de TrueCrypt. Ils seront stockés en sécurité tant que vous n'en aurez pas besoin, et vous ne le monterez qu'une fois que vous aurez vraiment besoin de les utiliser. TrueCrypt crée un fichier, qui est ensuite monté comme disque virtuel.

Edit : Si vous devez la protéger dans un code qui n'est pas interactif, vous pouvez évidemment crypter la clé privée et la décrypter dans un code d'application. Il existe une multitude de échantillons comment décrypter un fichier avec Java .

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X