Comment chiffrer un fichier en utilisant une clé privée dans gpg

Je produis une mise à jour pour certains systèmes et je veux chiffrer les mises à jour pour préserver la confidentialité, l’intégrité et la validité de ma signature. Je souhaite chiffrer le fichier avec ma clé privée et l’envoyer à mon client pour qu’il puisse le déchiffrer avec ma clé publique. Mais le mode de fonctionnement de GPG est le chiffrement avec public et le déchiffrement en privé. Je ne veux pas envoyer ma clé privée pour pouvoir la modifier et envoyer une clé publique à quiconque. Une idée de comment faire ça ???

Ce que vous voulez dire n’est pas appelé “cryptage” mais “signature” dans le jargon gpg.

La signature consiste essentiellement à chiffrer avec votre clé privée et à déchiffrer avec la clé publique.

Utilisation

gpg --sign myfile.ext 

Ou utilisez les capacités de signature de votre client de messagerie.

La signature permettra évidemment à quiconque a access à votre clé “publique” de lire le contenu de votre fichier (et comme une clé “publique” est généralement, bien …, publique , cela permettra à tout le monde de déchiffrer le contenu).

Si vous recherchez une méthode où seul le destinataire peut décoder le contenu, vous devez chiffrer les données de manière à ce que seul le destinataire ait access au jeton de déchiffrement. de toute évidence, le destinataire doit avoir un tel jeton (c’est-à-dire que vous encodez avec sa clé publique pour pouvoir décoder avec sa clé privée )

METTRE À JOUR

Pour simplifier, si vous voulez garantir l’ intégrité (c’est-à-dire que le destinataire sait avec certitude que les données proviennent de vous et de personne d’autre), vous devez signer les données. Si vous souhaitez garantir la confidentialité (c’est-à-dire que seul votre destinataire peut lire les données), vous devez chiffrer les données.

La signature et le cryptage sont tous deux la même chose. La seule différence est, qui a access aux clés.

Avec la signature , vous utilisez votre clé privée pour chiffrer les données et vous pouvez les déchiffrer avec votre clé publique (et comme tout le monde a access à la clé publique, tout le monde peut le déchiffrer et tout le monde peut valider que les données ont été signées). toi )

Avec le chiffrement , vous utilisez la clé publique de vos destinataires pour chiffrer les données, et ils utilisent leur clé privée pour la déchiffrer (ils ne peuvent donc que la lire; mais tout le monde peut leur envoyer une donnée chiffrée). expéditeur, mais il est garanti que seulement ils peuvent le lire).

Si vous avez besoin à la fois de confidentialité et d’intégrité, vous devez faire à la fois la signature et le chiffrement et pour que cela fonctionne, vous et vos destinataires devez avoir une paire de clés publique / privée (différente).

CONCLUSION

Comme la signature et le chiffrement sont identiques, vous pouvez utiliser les deux pour garantir la validité et l’intégrité de vos données, à condition que vous ayez un contrôle total sur la disponibilité des clés impliquées.

Il n’est pas vrai que GnuPG vous oblige à publier votre clé privée pour chiffrer un document. Vous ne devriez jamais publier votre clé privée à qui que ce soit.

GnuPG prend en charge deux méthodes de chiffrement différentes, à savoir le chiffrement asymésortingque et le chiffrement symésortingque .

Le cryptage asymésortingque nécessite de connaître la clé publique de votre destinataire. Ce n’est généralement pas un problème car, comme son nom l’indique, ces clés ne sont pas un secret mais connues de tous. Pour le déchiffrer à nouveau, seule la clé privée, connue uniquement de votre destinataire, peut être utilisée. Le chiffrement asymésortingque à l’aide de GnuPG se fait avec l’option --encrypt .

Si vous ne connaissez pas la clé publique de votre destinataire, vous pouvez utiliser le chiffrement symésortingque lorsque les deux parties partagent la même clé . Cela nécessite un canal sécurisé pour transmettre le secret partagé, bien sûr. Pour le chiffrement symésortingque, utilisez l’option --symmesortingc . Aucune clé publique ou privée n’est requirejse ici, mais l’échange sécurisé de la clé partagée rend le cryptage symésortingque sujet aux attaques.

Si vous avez juste besoin d’ intégrité et de responsabilité (le document ne peut pas être modifié sans le détecter et vous pouvez vérifier qui l’a créé / signé), vous pouvez utiliser l’option --sign pour créer une signature à l’aide de votre clé privée . Toute personne ayant access à votre clé publique peut vérifier cette signature pour vérifier l’intégrité et la responsabilité. Mais notez que tout le monde peut lire le contenu de votre message original car cette signature n’est pas cryptée . Le fichier .gpg résultant ressemble à des données binarys mais ne contient que du texte compressé mais non chiffré . Vous pouvez également désactiver la compression en spécifiant --compress-level 0 et vous verrez que le fichier de sortie contient votre message d’origine en texte brut. Donc, n’utilisez pas cette option si vous voulez la confidentialité .

Réponse simple: oubliez l’idée des clés . Vous avez seulement besoin d’un mot de passe secret partagé. Alors réunissez-vous avec votre client. Appelez-les au téléphone. Ou si vous êtes paranoïaque, faites-le face à face. Accordez-vous une phrase secrète que vous partagerez et gardez-la aussi secrète que nécessaire. Sur la base de mon expérience, je recommande d’utiliser Diceware ensemble pour choisir une phrase secrète partagée. Vous gardez tous les deux une copie sécurisée de ce secret partagé. Si vous êtes paranoïaque, ne l’écrivez pas, mémorisez-la ! Maintenant, vous pouvez chiffrer tout ce qui utilise ce secret partagé comme mot de passe. Tout outil de chiffrement symésortingque peut le faire pour vous, y compris GPG .

Je travaille sur un problème similaire: dissortingbuer des mises à jour logicielles à partir d’une source centrale à appliquer à de nombreux utilisateurs finaux sur le terrain. Les utilisateurs finaux doivent valider que la mise à jour provient de la source officielle (signée avec une clé privée), mais je souhaite également que la mise à jour se déroule de manière confidentielle (cryptée).

Dans le cours de cryptographie que j’ai suivi à l’université il y a environ 30 ans, ils enseignaient que le cryptage avec la clé privée était la même chose que la signature d’un message – lorsque le destinataire décrypte à l’aide de la clé publique de la clé privée à chiffrer. Cela fournit également une mesure de confidentialité si la clé publique est maintenue “proche de la réalité”, ce qui serait mon implémentation préférée.

Comme mentionné par d’autres, j’ai confirmé que l’opération gpg –sign ne crypte pas le message, le message est visible en texte brut dans le fichier signé. Pour utiliser gpg afin d’obtenir à la fois une certaine authenticité avec une signature de la clé privée et une mesure raisonnable de confidentialité, j’ai décidé de donner aux récepteurs basés sur le terrain leur propre paire de clés, en plus de la clé publique du dissortingbuteur . Ce n’est pas une solution extrêmement sécurisée, n’importe qui peut procéder au reverse engineering d’un périphérique sur le terrain et récupérer la clé “secrète” qu’il contiendra, pour déchiffrer le message de mise à jour signé et voir son contenu en texte clair. Ce qu’ils ne peuvent pas faire, c’est créer un fichier avec la signature de clé secrète du dissortingbuteur, et ils ne pourront donc pas faire une mise à jour qui sera acceptée par les appareils sur le terrain qui recherchent le chiffrement avec leur clé publique et un signature de la clé privée du dissortingbuteur de mise à jour.

C’est une question de degrés d’exposition. Les mises à jour en transit sont sécurisées par toute personne n’ayant pas access à un périphérique d’extrémité pour procéder au reverse engineering. Avec un access physique à un sharepoint terminaison (ce que nous ne pouvons pas empêcher), ils pourront éventuellement procéder au reverse engineering des logiciels installés, voire des mises à jour elles-mêmes, mais ne pourront jamais signer leur propre mise à jour . Au moins aussi longtemps que RSA est sécurisé.

Vous devrez peut-être avoir une paire de clés distincte pour cet objective explicite, et dissortingbuer la clé privée , tout en gardant secrète la clé publique (oui, c’est un peu en arrière par rapport aux termes); Il vous suffit alors de chiffrer les mises à jour normalement avec la clé publique, et vos destinataires peuvent les déchiffrer avec la clé privée.