comment crypter un fichier à l'aide de la clé privée dans gpg
Je suis produisant une mise à jour pour certains systèmes, et je veux crypter les mises à jour pour garder la confidentialité, l'intégrité et la validité de ma signature. Je veux crypter le fichier avec ma clé privée et de les envoyer à mes clients afin qu'ils puissent décrypter avec ma clé publique. Mais la façon dont GPG fonctionne le chiffrement est publique et de décrypter avec le privé. Je ne veux pas envoyer ma clé privée afin que je puisse le modifier et envoyer la clé publique de quelqu'un d'autre . Aucune idée de comment faire cela???
- Mais la façon dont GPG fonctionne le chiffrement est publique et de décrypter avec le privé. Sûrement pas. Que nécessiterait la publication de votre clé privée qui ne sera jamais fait. Où avez-vous tirer cette conclusion à partir de?
- Cette question semble être hors-sujet, car il n'est pas sur la programmation ou le développement. Voir Quels sont les sujets que pouvez-vous nous parler ici dans le Centre d'Aide. Peut-être Super-Utilisateur ou la Sécurité de l'Information de la Pile d'Échange serait un meilleur endroit pour demander cela. Voir aussi Où dois-je poster des questions à propos de Dev Ops?.
Vous devez vous connecter pour publier un commentaire.
Ce que vous entendez n'est pas appelé "cryptage", mais "signature" dans gpg lingo.
Signature est fondamentalement chiffrement à l'aide de votre clé privée et le déchiffrement avec la clé publique.
Utilisation
Ou utiliser votre client e-mail signature capacités.
Signature aura évidemment de permettre à n'importe qui ayant accès à votre clé "publique" pour lire le contenu de votre fichier (et depuis une clé "publique" est généralement, bien..., public, cela permettra tout le monde pour déchiffrer le contenu).
Si vous êtes à la recherche d'une méthode, où seul le destinataire peut déchiffrer le contenu, alors vous avez besoin pour chiffrer les données de façon à ce que seul le destinataire a accès au décryptage de jeton. évidemment, le destinataire devez disposer d'un tel jeton (qui est: vous encodez avec leur public clé, de sorte qu'ils peuvent décoder avec leur privé clé)
Mise à JOUR
Pour faire simple: si vous voulez vous assurer intégrité (ce qui est: le destinataire ne sait pour sûr, que les données proviennent de vous et personne d'autre), vous devez signe les données.
Si vous voulez garantir confidentialité (qui est: seul le destinataire peut lire les données), vous devez chiffrer les données.
Les deux signature et de chiffrement sont vraiment la même chose.
La seule différence est, qui a accès aux clés.
Avec signature, vous utilisez votre clé privée pour crypter les données, et il peut être déchiffré qu'avec la clé publique (et comme tout le monde a accès à la clé publique, tout le monde peut le décrypter, et donc tout le monde peut vérifier que les données ont été signés par vous)
Avec chiffrement, vous utilisez vos destinataires à clé publique pour chiffrer les données, et ils utilisent leur clé privée pour déchiffrer le message (si seulement ils peuvent le lire; mais tout le monde peut envoyer une donnée chiffrée, ils n'ont aucune garantie qu'il vient vraiment de l'expéditeur, mais il est garanti que seuls ils peuvent le lire).
Si vous avez besoin de confidentialité et d'intégrité, ce que vous devez faire à la fois la signature et de chiffrement, et pour que cela fonctionne, vous et vos destinataires doivent avoir une (autre) paire clé publique/privée.
CONCLUSION
Depuis tant de signature et de chiffrement sont la même chose, vous pouvez utiliser à la fois pour garantir la validité et l'intégrité de vos données, aussi longtemps que vous avez le plein contrôle sur la disponibilité des clés impliquées.
public
) est publiée quelque part (d'où le nom). si vous n'avez pas le publier (mais de le donner à votre destinataire par le biais de certains autres sécurisé moyen) alors c'est tout comme enregistrer en tant que quoi que ce soit.--sign' with my gpg implementation (1.4.12; as packaged in Debian), the resulting file (
myfile.ext.gpg) is definitely encrypted. probably your version of
gpg` utiliseclearsign
oudetach-sign
(comme évoqué par @lanzz) comme valeur par défaut pour le signer; n'hésitez pas à signaler un bug avec la commande gpg ou de mise à niveau de votre version.--sign
permet de décrypter le message à l'aide de la public clé. Comme son nom l'indique, le public clé n'est pas une clé secrète, mais généralement connus pour les autres. Si vous voulez de confidentialité, vous ne devez pas chiffrer à l'aide de la privé clés et cacher le public clé mais un autre secret partagé à la place.--sign
de mon gpg (1.4.11 de Ubuntu) n'est pas de produire un document chiffré (qui nécessiterait précisant--sign
et--encrypt
à chiffrer pour un destinataire spécifique en fonction de la page de manuel). Qui est, vous pouvez utiliser--decrypt
de lire le texte en clair sans avoir la clé publique, vous ne pouvez pas vérifier si la signature est correcte ou non. Donc @HamidRezaMoradi est correcte et qu'un seul--sign
ne peut pas être utilisé pour assurer la confidentialité ici (le texte en clair est juste compressé mais pas crypté).Il n'est pas vrai que GnuPG vous oblige à publier votre privé clé pour chiffrer un document. Vous devriez jamais publier votre clé privée à n'importe qui.
GnuPG prend en charge deux méthodes de chiffrement, asymétrique et symétrique de chiffrement.
Asymétrique de chiffrement nécessite de connaître les clé publique de votre destinataire. Ce n'est généralement pas un problème, car comme son nom l'indique, ces touches ne sont pas un secret, mais connu de tout le monde. Pour décrypter seulement l' clé privée peut être utilisé, qui n'est connue que de votre destinataire. Le chiffrement asymétrique à l'aide de GnuPG est fait avec le
--encrypt
option.Si vous ne connaissez pas la public clé de votre destinataire, vous pouvez utiliser symétrique cryptage où les deux parties partager la même clé. Cela nécessite un canal sécurisé pour la transmission du secret partagé, bien sûr. Pour le chiffrement symétrique, utilisez le
--symmetric
option. Ni le public, ni d'une clé privée est nécessaire ici, mais l'échange sécurisé de la clé partagée permet de chiffrement symétrique sujettes à des attaques.Si vous avez juste besoin intégrité et responsabilité (le document ne peut pas être modifié sans le détecter et vous êtes en mesure de vérifier qui a créé/signé) alors vous pouvez utiliser le
--sign
option pour créer une signature à l'aide de votre clé privée. Tout le monde ayant accès à votre clé publique pouvez vérifier cette signature pour vérifier l'intégrité et la reddition de comptes. Mais notez que tout le monde pouvez lire votre contenu du message d'origine parce que cette signature est pas de cryptage. Le résultant .gpg-fichier de données binaires, mais ne contient comprimé mais pas chiffré texte. Vous pouvez également désactiver la compression en spécifiant--compress-level 0
et vous verrez que le fichier de sortie contient l'original de votre message en clair. Donc n'utilisez pas cette option si vous souhaitez confidentialité.Je suis en train de travailler sur un problème similaire: distribuer des mises à jour de logiciels à partir d'une source centrale pour être appliqué à de nombreux utilisateurs finaux dans le domaine. Les utilisateurs finaux ont besoin de valider que la mise à jour est venu de la source officielle (signé avec la clé privée), mais je veux aussi de la mise à jour de voyager de manière confidentielle (crypté).
Dans la cryptographie cours, j'ai eu à l'Université ~il y a 30 ans maintenant, ils ont appris que le chiffrement avec une clé privée a été la même chose que la signature d'un message - lorsque le destinataire déchiffre à l'aide de la clé publique, le fait qu'ils n'obtiennent pas de charabia confirme l'utilisation de la clé privée pour chiffrer. Cela fournit également une mesure de la confidentialité si la clé publique est maintenue à un niveau proche de la veste," ce qui serait mon préféré de mise en œuvre.
Comme mentionné par d'autres, j'ai confirmé que la commande gpg --sign opération ne permet pas de chiffrer le message, le message est visible en clair dans le fichier signé. Pour utiliser gpg pour accomplir certains de l'authenticité d'une signature à partir de la clé privée, et une mesure raisonnable de confidentialité, j'ai décidé de la solution de donner le domaine des récepteurs basés sur leur propre paire de clés, en plus de la clé publique de la mise à jour du distributeur. Ce n'est pas un état de sécurité de la solution, n'importe qui peut désosser un périphérique dans le domaine et de mettre la main sur le "secret" de la clé qu'il tiendra, avec qui ils peuvent déchiffrer la signature de message de mise à jour et de voir son contenu clair. Ce qu'ils ne peuvent pas faire est de créer un fichier avec le distributeur secret de la clé de signature sur elle, et ils ne peuvent donc pas faire une mise à jour de leur propre qui sera accepté par les appareils sur le terrain qui sont à la recherche pour le chiffrement avec la clé publique, et une signature de la mise à jour du distributeur fermées à clé.
C'est une question de degrés d'exposition. Les mises à jour dans les transports en commun sont sécurisés par des personnes qui n'ont pas accès à un point de terminaison de l'appareil à l'ingénierie inverse. Avec un accès physique à un point de terminaison (quelque chose que nous ne pouvons pas empêcher), ils finiront par être en mesure de désosser le logiciel installé, et même les mises à jour eux-mêmes, mais ils ne seront jamais en mesure de signer de leur propre mise à jour et de le pousser à l'onu-les machines compromises. Au moins aussi longtemps que le RSA est sécurisé.
Réponse Simple: oubliez l'idée de clés. Vous avez seulement besoin d'un secret partagé passphrase. Afin de se réunir avec votre client. Appeler sur le téléphone. Ou si vous êtes paranoïaque, le faire face à face. D'accord sur un mot de passe vous permettra de partager et de le garder aussi secret que vous avez besoin. Basé sur mon expérience, je recommande d'utiliser diceware ensemble afin de choisir une phrase de passe partagé. Les deux d'entre vous garder une copie sécurisée de secret partagé. Si vous êtes paranoïaque, ne pas l'écrire—mémoriser! Maintenant, vous pouvez chiffrer quelque chose en utilisant que le secret partagé que le mot de passe. Tout de chiffrement symétrique outil peut faire pour vous, y compris GPG.
Vous pourriez avoir besoin d'avoir une paire de clés pour que l'objectif explicite, et de distribuer les privé clés, tout en gardant la clé publique de secret (oui, c'est un peu en arrière par rapport à ces conditions); alors que vous venez de chiffrer les mises à jour normalement avec la clé publique, et vos destinataires peuvent les déchiffrer avec la clé privée.