web-dev-qa-db-fra.com

Où stockez-vous votre clé GPG privée personnelle?

Donc, je veux commencer à utiliser pass , mais j'ai besoin d'une clé GPG pour cela. Cette application stockera tous mes mots de passe, ce qui signifie qu'il est très important que je ne perde pas ma clé privée, une fois générée.

Les disques durs cassent, les fournisseurs de cloud ne sont généralement pas fiables. Non pas que je ne leur fasse pas confiance pour ne pas jouer avec ma clé, mais leur sécurité peut être compromise et tous mes mots de passe peuvent être trouvés.

Alors, où puis-je stocker en toute sécurité ma clé privée GPG?

199
Florian Margaine

J'aime stocker le mien sur papier.

En utilisant un générateur JavaScript (lire: hors ligne) code QR , je crée une image de ma clé privée sous la forme ASCII blindée, puis l'imprime. Notez à côté le ID clé et le stocker dans un endroit physiquement sécurisé.

Voici quelques-uns qui devraient fonctionner pour vous, quel que soit le système d'exploitation que vous utilisez, tant que vous disposez d'un navigateur prenant en charge JavaScript.

Pour les utilisateurs de Windows:

Cliquez ici pour télécharger le générateur de code QR JavaScript: https://github.com/davidshimjs/qrcodejs/archive/04f46c6a0708418cb7b96fc563eacae0fbf77674.Zip

Extrayez les fichiers quelque part, puis procédez à la modification index.html selon les instructions ci-dessous.

Pour les utilisateurs de MacOS ou Unix:

$ # This specific version is to avoid the risk that if someone hijacks `davidshimjs`'s 
$ # repository (or he goes rogue), you will still be using the version that I vetted.
$ # For the truly paranoid you don't trust GitHub either, and you will want to verify the code you download yourself.
$ wget https://github.com/davidshimjs/qrcodejs/archive/04f46c6a0708418cb7b96fc563eacae0fbf77674.Zip
$ unzip qrcodejs-04f46c6a0708418cb7b96fc563eacae0fbf77674.Zip
$ cd qrcodejs-04f46c6a0708418cb7b96fc563eacae0fbf77674/
$ # We need to edit index.html so that it supports pasting your PGP key
$ # Open the file in a text editor like Notepad, vi, or nano
$ vi index.html

Changer la ligne 11 de:

<input id="text" type="text" value="http://jindo.dev.naver.com/collie" style="width:80%" /><br />

à:

<textarea id="text" type="text" value="http://jindo.dev.naver.com/collie" style="width:80%" /></textarea><br />

Naviguez maintenant vers le répertoire que vous obtenez ici avec Explorer, Finder ou Nautilus, etc.

Par exemple:

$ pwd
/Users/george/Documents/Code/qrcodejs/qrcodejs-04f46c6a0708418cb7b96fc563eacae0fbf77674
$ open .

Viewing the directory in Finder

Maintenant, double-cliquez sur le index.html fichier que vous venez d'éditer et d'enregistrer.

QR code being generated

Vous aurez très probablement besoin de diviser votre clé PGP en quartiers ou même plus petit pour créer de beaux gros codes QR que vous pourrez facilement scanner plus tard. Après avoir collé dans la zone de texte, cliquez loin de la zone de texte et votre code QR devrait apparaître. Enregistrez chacun au fur et à mesure et nommez-les de manière appropriée afin de connaître leur commande!

Après avoir créé tous les codes, scannez-les avec, par exemple, une application de scanner de code QR pour téléphone portable. Pour les paranoïaques, gardez cet appareil hors ligne une fois que vous avez installé un lecteur de codes-barres, puis effectuez un nettoyage complet et une réinitialisation d'usine de l'appareil avant de le remettre en ligne. Cela empêchera l'application QR scanner de fuir votre clé PGP.


Si vous avez une grande clé ou beaucoup de clés, je recommande paperbak , mais assurez-vous d'écrire des instructions sur la façon de récupérer les données plus tard. Tout aussi important que la façon dont vous le sauvegardez est la façon dont vous le restaurez à partir d'une sauvegarde. J'essaierais probablement cela avec des données factices juste pour être sûr de savoir exactement comment cela fonctionne.

Il convient de noter que vous pouvez protéger votre clé privée avec une phrase secrète, donc même si elle est hébergée avec un fournisseur de cloud, ils ne peuvent pas voir votre clé privée, mais toute la sécurité de votre mot de passe est réduite à cette phrase de passe plutôt qu'à la clé privée complète, sans oublier que les fournisseurs de cloud peuvent disparaître du jour au lendemain.

164
deed02392

Les jours où ma paranoïa est comme une tomate mûre, me suppliant de la cueillir, je divise la clé privée (naturellement elle est déjà protégée par un mot de passe) en deux, puis je fais une troisième chaîne en les XOR-ensemble. Ensuite, j'utilise un cryptage de mot de passe simple (gpg --symmetric) sur chaque chaîne, et placez chacune sur un serveur distant sur un continent différent. Idéalement, chaque serveur distant est avec un fournisseur de services Internet ou un fournisseur de cloud différent.

Mais comme le médicament fonctionnait - au moins jusqu'à ce que je réalise à quel point ambitieux le NSA a été - ce que j'ai réellement fait dans le passé est simplement crypté la (toute) clé privée (encore une fois) en utilisant gpg --symmetric) et le mettre sur mon smartphone.

Maintenant, après avoir lu les autres réponses, je trouve l'idée de trois codes QR, intégrés dans trois photos de famille, d'une beauté aveuglante. Le temps d'une médecine plus forte?

55
Darren Cook

Ce n'est pas ce que j'utilise actuellement, mais j'y pense:

  1. Crypter la clé privée avec une clé de cryptage symétrique très longue
  2. Utilisez Shamir's Secret Sharing pour diviser la clé de chiffrement symétrique en 7 morceaux (comme Voldemort), nécessite au moins 5 partages pour réussir la fusion.
  3. Découvrez où mettre 7 sauvegardes secrètes , quelques idées:
    • carte multimédia dans un coffre-fort à la maison
    • papier imprimé dans mon portefeuille
    • dans Dropbox
    • coffre-fort à l'étranger
    • implants cutanés
    • enterré dans la tombe d'un mec aléatoire
    • tatoué à serpent animal venimeux

De cette façon, je peux perdre l'accès à quelques partages et toujours en mesure d'accéder à la clé; tandis qu'un attaquant devrait compromettre 5 endroits différents sécurisés individuellement où il est facile pour moi d'accéder mais difficile pour les sbires du seigneur des ténèbres maléfiques dans cette voiture noire devant la maison <met sur papier d'aluminium>.

28
Lie Ryan

Une option consiste à crypter votre clé à l'aide d'une phrase secrète et à stocker la clé cryptée sur un service cloud.

J'ai la clé sur mon ordinateur portable (disque dur chiffré) et sur un conteneur Truecrypt sur un disque dur externe comme sauvegarde. Ok, ce n'est pas un risque nul de perte de données, mais c'est à un niveau acceptable pour moi.

17
paj28

Vous pouvez conserver votre clé privée dans un lecteur flash et conserver ce lecteur dans un casier. Assurez-vous également que vous n'utilisez pas ce lecteur flash pour des activités susceptibles de l'infecter avec des logiciels malveillants.

15
Jor-el

Je garde la clé (et d'autres données sensibles comme une liste de nom d'utilisateur/mot de passe) cryptées dans un conteneur truecrypt . Ce conteneur est protégé par une phrase secrète massive. Le conteneur est également sauvegardé sur le stockage en nuage afin que les modifications effectuées par l'un de mes ordinateurs soient synchronisées.

Ce n'est pas parfait, mais si le fournisseur de cloud meurt, je l'ai toujours synchronisé sur mes ordinateurs. Si le fichier lui-même est compromis, ils devraient craquer la phrase vraie et la phrase de passe clé.

6
Josh Vander Hook

J'utiliserais la stéganographie pour placer la clé cryptée dans une série de 100 photos que je télécharge sur plusieurs stockage cloud (box, dropbox et ovh) par exemple.
Donc, vous devez d'abord savoir qu'il y a quelque chose sur ces images, découvrir quoi et déchiffrer.
C'est un peu extrême mais il résiste mieux au feu que le papier.

4
Kiwy

J'ai deux clés, une moins sécurisée stockée sur l'ordinateur et une autre dans une OpenPGP Card . Ce dernier est aussi sûr que possible car la clé privée ne laisse jamais la puce sur la carte. (Bien que, il y a des années, pour une meilleure sécurité, j'ai dû légèrement modifier gpg pour utiliser le clavier sécurisé de mon lecteur de carte au lieu d'obtenir le PIN du clavier du PC qui peut être sujet à des attaques par enregistreur de frappe).)

4
JimmyB

J'aime vraiment l'idée d'avoir une sauvegarde de dernier recours à très long terme sur papier. (À côté d'un CD d'archivage crypté dans un emplacement sécurisé.) Je ne trouve tout simplement pas un générateur QR qui prend en charge toute la longueur d'une clé privée, et je ne fais confiance à paperbak qu'après avoir corrigé la génération de la clé AES (en plus, il semble être Windows uniquement).

J'ai trouvé optar qui encodera n'importe quelle longueur de données dans un format lisible par machine, mais pour l'instant, vous devez le compiler manuellement à partir de C. [Il ne devrait pas être difficile de mettre quelque chose dans Homebrew pour Mac, et peut-être qu'un samaritain peut maintenir une version de Windows, si cela s'avère bien fonctionner.]

paperkey devrait être bon pour imprimer/utiliser l'OCR pour restaurer une clé privée et créer un minimum de caractères pour un générateur de code-barres/code QR.

3
Duke

Je stocke le mien dans un fichier crypté KeePassX, ce fichier est enregistré dans un référentiel git que je clone sur toutes les machines dont j'ai besoin pour utiliser les mots de passe. L'avantage supplémentaire est que je peux garder les mots de passe synchronisés tandis que si le serveur pour une raison quelconque détruit le fichier, je peux toujours utiliser l'un des référentiels clonés. Si je suis paranoïaque, je peux mettre un volume truecrypt contenant le fichier crypté KeePassX.

Git me donne également des versions afin que je puisse toujours revenir aux versions précédentes de mon fichier de mots de passe, c'est preatty neet.

3
dendini

Procédez comme suit:

  1. Choisissez deux nombres que vous aimez: R et C.
  2. Accédez à votre ligne de clé privée R et à la colonne C et mémorisez le caractère X que vous y trouverez.
  3. Remplacez ce caractère par toute autre valeur aléatoire.
  4. Stockez en toute sécurité votre clé privée modifiée sur plusieurs services cloud (différents emplacements géographiques.

La clé qui y est stockée est inutile sans R, C et X (étant donné que vous connaissez l'astuce, bien sûr). Si on peut se permettre le temps de trouver R, C et X, eh bien ... bonne chance maintenant en devinant mon mot de passe.

La mémorisation de R, C et X devrait également être très facile du point de vue de celui qui introduit le changement.

Indice: ne le faites pas au tout début ou à la fin de la chaîne. Il y a des modèles à suivre, il serait très facile de deviner le changement.

0
Victor Schröder

Vous pouvez essayer de le mémoriser ...

Il pourrait être possible d'utiliser un algorithme de type gzip pour les humains pour compresser et mémoriser. Vous pouvez encoder un morceau et mémoriser cela,

0
0xcaff

La clé privée est déjà cryptée. Le chiffrer symétriquement une fois de plus ne ferait pas de mal cependant. Après cela, le souci devrait être la sécurité physique. La durabilité et la sécurité des supports hors site devraient être les principales considérations. Une clé USB est probablement correcte pendant au moins dix ans tant que les ports USB sont disponibles. Mettez la clé dans un endroit sûr. Un coffre-fort ou un bon coffre-fort hors site sont de bonnes possibilités. Cela devrait permettre une récupération dans le cas où le système que vous utilisez maintenant se casse d'une manière irrécupérable. étiqueter et dater la clé usb. Une copie cryptée du certificat de révocation de la clé doit également être stockée avec elle. faire quelques doublons si vous vous inquiétez de l'échec de la clé USB.

0
Rick

clause de non-responsabilité: vous indiquant un morceau de code que j'écris/ma propre "petite" solution

Pour résoudre ce genre de problèmes (et plus généralement "archiver" des trucs importants de taille moyenne sur papier) je travaille sur qrdump , un moyen de

  • 1) Divisez vos données en parties suffisamment petites pour tenir dans les codes QR
  • 2) vidage vers une série de codes qr
  • 3) assembler les qr-codes avec une mise en page prédéfinie dans un pdf.

Bien entendu, la transformation inverse est également implémentée.

Par exemple:

bash-4.4$ FOLDER_TESTS=$(mktemp -d)
bash-4.4$ cd $FOLDER_TESTS/
bash-4.4$ head -c 4096 </dev/urandom > dummy.dat # create a random file, 4096 bytes
bash-4.4$ sha256sum dummy.dat 
02f2c6dd472f43e9187043271257c1bf87a2f43b771d843e45b201892d9e7b84  dummy.dat
bash-4.4$ bash ~/Desktop/Git/qrdump/src/qrdump.sh --create-A4 --base64 --safe-mode --output ./pdf_dump.pdf --input dummy.dat # crete a printable qr-codes pdf of the file
SAFE to use: success restoring check
bash-4.4$ rm dummy.dat # the file is removed, so from now on only way to get it back is to restore from the pdf
bash-4.4$ bash ~/Desktop/Git/qrdump/src/qrdump.sh --base64 --read-A4 --input pdf_dump.pdf --output ./ # restore
bash-4.4$ sha256sum dummy.dat # the digest should be the same as the initial one to confirm good restore
02f2c6dd472f43e9187043271257c1bf87a2f43b771d843e45b201892d9e7b84  dummy.dat

Si vous êtes intéressé, plus ici:

https://github.com/jerabaul29/qrdump

0
Zorglub29