Comment verrouiller des fichiers secrets avec GPG
Dans ce guide, j’expliquerai les options à votre disposition pour chiffrer des fichiers à l’aide d’un logiciel open source sur un ordinateur Linux, Mac ou Windows. Vous pouvez ensuite transporter ces informations numériques à distance et dans le temps, vers vous-même ou vers d’autres.
Le programme « GNU Privacy Guard » (GPG) une version open-source de PGP (Pretty Good Privacy), permet :
- Cryptage à l’aide d’un mot de passe.
- Messagerie secrète utilisant la cryptographie à clé publique/privée
- Authentification des messages/données (à l’aide de signatures numériques et de vérification)
- Authentification par clé privée (utilisée dans Bitcoin)
Première option
La première option est ce que je vais démontrer ci-dessous. Vous pouvez crypter un fichier en utilisant n’importe quel mot de passe que vous aimez. Toute personne disposant du mot de passe peut alors déverrouiller (déchiffrer) le fichier pour le visualiser. Le problème est de savoir comment envoyer le mot de passe à quelqu’un de manière sécurisée ? Nous revenons au problème initial.
Deuxième option
La deuxième option résout ce dilemme (comment faire ici). Au lieu de verrouiller le fichier avec un mot de passe, nous pouvons le verrouiller avec la clé publique de quelqu’un — ce « quelqu’un » est le destinataire prévu du message. La clé publique provient d’une clé privée correspondante, et la clé privée (que seul « quelqu’un » possède) est utilisée pour déverrouiller (déchiffrer) le message. Avec cette méthode, aucune information sensible (non cryptée) n’est jamais envoyée. Très beau!
La clé publique est quelque chose qui peut être distribué sur Internet en toute sécurité. Le mien est ici, par exemple. Ils sont généralement envoyés à des serveurs de clés. Les serveurs de clés sont comme des nœuds qui stockent des clés publiques. Ils conservent et synchronisent des copies des clés publiques des personnes. En voici un :
Vous pouvez entrer mon e-mail et trouver ma clé publique dans le résultat. je l’ai aussi stocké ici et vous pouvez comparer ce que vous avez trouvé sur le serveur.
Troisième option
La troisième option ne concerne pas les messages secrets. Il s’agit de vérifier qu’un message n’a pas été altéré lors de sa délivrance. Cela fonctionne en ayant quelqu’un avec une clé privée signe certaines données numériques. Les données peuvent être une lettre ou même un logiciel. Le processus de signature crée une signature numérique (un grand nombre dérivé de la clé privée et des données qui sont signées). Voici à quoi ressemble une signature numérique :
C’est un fichier texte qui commence par un signal « début » et se termine par un signal « fin ». Entre les deux se trouve un tas de texte qui en code en fait un nombre énorme. Ce nombre est dérivé de la clé privée (un nombre géant) et des données (qui sont en fait toujours un nombre également ; toutes les données sont des zéros et des uns pour un ordinateur).
N’importe qui peut vérifier que les données n’ont pas été modifiées depuis que l’auteur original les a signées en prenant le :
- Clé publique
- Données
- Signature
La sortie de la requête sera TRUE ou FALSE. TRUE signifie que le fichier que vous avez téléchargé (ou message) n’a pas été modifié depuis que le développeur l’a signé. Très cool! FAUX signifie que les données ont changé ou que la mauvaise signature est appliquée.
Option 4
L’option quatre est comme l’option trois, sauf qu’au lieu de vérifier si les données n’ont pas été modifiées, alors VRAI signifiera que la signature a été produite par la clé privée associée à la clé publique offerte. En d’autres termes, la personne qui a signé a la clé privée de la clé publique que nous avons.
Fait intéressant, c’est tout ce que Craig Wright aurait à faire pour prouver qu’il est Satoshi Nakamoto. Il n’a pas besoin de dépenser de pièces.
Nous avons déjà les adresses (similaires aux clés publiques) qui appartiennent à Satoshi. Craig peut alors produire une signature avec sa clé privée à ces adresses, combinée à n’importe quel message tel que « Je suis vraiment Satoshi, haha! » et nous pouvons alors combiner le message, la signature et l’adresse, et obtenir un résultat TRUE s’il est Satoshi, et un résultat CRAIG_WRIGHT_IS_A_LIAR_AND_A_FRAUD s’il ne l’est pas.
Option trois et quatre – La différence.
C’est en fait une question de confiance. Si vous pensez que l’expéditeur possède la clé privée de la clé publique que vous possédez, la vérification vérifie que le message n’a pas changé.
Si vous ne faites pas confiance à la relation clé privée / clé publique, la vérification ne porte pas sur le changement de message, mais sur la relation clé.
C’est l’un ou l’autre pour un résultat FAUX.
Si vous obtenez un résultat TRUE, alors vous savez que DEUX la relation de clé est valide ET que le message n’a pas été modifié depuis que la signature a été produite.
Obtenez GPG pour votre ordinateur
GPG est déjà livré avec les systèmes d’exploitation Linux. Si vous avez la malchance d’utiliser un Mac, ou Dieu nous en préserve, un ordinateur Windows, vous devrez télécharger un logiciel avec GPG. Les instructions de téléchargement et comment l’utiliser sur ces systèmes d’exploitation peuvent être trouvées ici.
Vous n’avez besoin d’utiliser aucun des composants graphiques du logiciel, tout peut être fait à partir de la ligne de commande.
Crypter des fichiers avec un mot de passe
Créez le fichier secret. Cela peut être un simple fichier texte, ou un fichier zip contenant de nombreux fichiers, ou un fichier archive (tar). En fonction de la sensibilité des données, vous pouvez envisager de créer le fichier sur un ordinateur isolé. Soit un ordinateur de bureau construit sans composants WiFi, et ne jamais être connecté à Internet par câble, soit vous pouvez construire un Raspberry Pi Zero v1.3 à très bon marché, avec instructions ici.
À l’aide d’un terminal (Linux/Mac) ou de CMD.exe (Windows), modifiez votre répertoire de travail à l’endroit où vous placez le fichier. Si cela n’a aucun sens, effectuez une recherche sur Internet et en cinq minutes, vous apprendrez à naviguer dans le système de fichiers spécifique à votre système d’exploitation (recherchez : « Invite de commande du système de fichiers de navigation YouTube » et incluez le nom de votre système d’exploitation).
Depuis le bon répertoire, vous pouvez chiffrer le fichier (« file.txt » par exemple) comme ceci :
gpg -c fichier.txt
C’est « gpg », un espace, « -c », un espace, puis le nom du fichier.
Vous serez ensuite invité à entrer un mot de passe. Cela chiffrera le nouveau fichier. Si vous utilisez GPG Suite sur Mac, notez que « Enregistrer dans le trousseau » est coché par défaut (voir ci-dessous). Vous voudrez peut-être ne pas enregistrer ce mot de passe s’il est particulièrement sensible.
Quel que soit le système d’exploitation que vous utilisez, le mot de passe sera enregistré pendant 10 minutes dans la mémoire. Vous pouvez l’effacer comme ceci :
gpg-connect-agent reloadagent /bye
Une fois votre fichier crypté, le fichier d’origine restera (non crypté) et un nouveau fichier sera créé. Vous devez décider si vous allez supprimer l’original ou non. Le nom du nouveau fichier sera le même que l’original mais il y aura un « .gpg » à la fin. Par exemple, « file.txt » créera un nouveau fichier appelé « file.txt.gpg ». Vous pouvez ensuite renommer le fichier si vous le souhaitez, ou vous auriez pu nommer le fichier en ajoutant des options supplémentaires dans la commande ci-dessus, comme ceci :
gpg -c –output MonFichierSecret.txt fichier.txt
Ici, nous avons « gpg », un espace, « -c », un espace, « -output », un espace, le nom de fichier que vous voulez, un espace, le nom du fichier que vous chiffrez.
C’est une bonne idée de s’entraîner à déchiffrer le fichier. C’est une façon :
gpg fichier.txt.gpg
Il s’agit simplement de « gpg », d’un espace et du nom du fichier crypté. Vous n’avez pas besoin de mettre d’options.
Le programme GPG devinera ce que vous voulez dire et tentera de déchiffrer le fichier. Si vous le faites immédiatement après avoir crypté le fichier, vous ne serez peut-être pas invité à entrer un mot de passe car le mot de passe est toujours dans la mémoire de l’ordinateur (pendant 10 minutes). Sinon, vous devrez entrer le mot de passe (GPG l’appelle une phrase de passe).
Vous remarquerez avec la commande « ls » (Mac/Linux) ou la commande « dir » (Windows), qu’un nouveau fichier a été créé dans votre répertoire de travail, sans l’extension « .gpg ». Vous pouvez le lire à partir de l’invite de commande avec (Mac/Linux) :
chat fichier.txt
Une autre façon de déchiffrer le fichier consiste à utiliser cette commande :
gpg -d fichier.txt.gpg
C’est la même chose qu’avant mais avec une option « -d » également. Dans ce cas, un nouveau fichier n’est pas créé, mais le contenu du fichier est imprimé à l’écran.
Vous pouvez également déchiffrer le fichier et spécifier le nom du fichier de sortie comme ceci :
gpg -d –output fichier.txt fichier.txt.gpg
Ici nous avons « gpg », un espace, « -d » qui n’est pas strictement nécessaire, un espace, « -output », un espace, le nom du nouveau fichier que nous voulons, un espace, et enfin le nom du fichier nous décryptons.
Envoi du fichier crypté
Vous pouvez maintenant copier ce fichier sur une clé USB ou l’envoyer par e-mail. Il est crypté. Personne ne peut le lire tant que le mot de passe est bon (assez long et compliqué) et ne peut pas être déchiffré.
Vous pouvez vous envoyer ce message dans un autre pays en le stockant dans un e-mail ou dans le cloud.
Certaines personnes idiotes ont stocké leurs clés privées Bitcoin dans le cloud dans un état non crypté, ce qui est ridiculement risqué. Mais si le fichier contenant les clés privées Bitcoin est crypté avec un mot de passe fort, c’est plus sûr. Cela est particulièrement vrai s’il ne s’appelle pas « Bitcoin_Private_Keys.txt.gpg » – Ne faites pas ça !
AVERTISSEMENT : Il est important de comprendre que je ne vous encourage en aucun cas à mettre les informations de votre clé privée Bitcoin sur un ordinateur (les portefeuilles matériels ont été créés pour vous permettre de ne jamais avoir à le faire). Ce que j’explique ici est pour des cas particuliers, sous ma direction. Mes élèves du programme de mentorat sauront ce qu’ils font et n’utiliseront qu’un ordinateur isolé, et connaîtront tous les risques et problèmes potentiels, ainsi que les moyens de les éviter. S’il vous plaît, ne tapez pas de phrases clés dans un ordinateur à moins que vous ne soyez un expert en sécurité et que vous sachiez exactement ce que vous faites, et ne me blâmez pas si votre bitcoin est volé !
Le fichier crypté peut également être envoyé à une autre personne et le mot de passe peut être envoyé séparément, peut-être avec un autre appareil de communication. C’est le moyen le plus simple et le moins sûr, par rapport à l’option 2 expliquée au début de ce guide.
Il existe en fait toutes sortes de façons de construire la livraison d’un message secret à distance et dans le temps. Si vous connaissez ces outils, réfléchissez bien et soigneusement à tous les risques et scénarios, un bon plan peut être élaboré. Ou, je suis disponible pour aider.
Bonne chance et bon Bitcoining !
Ceci est un article invité par Arman The Parman. Les opinions exprimées sont entièrement les leurs et ne reflètent pas nécessairement celles de BTC Inc ou Bitcoin Magazine.