一部のシステムの更新を作成していますが、署名の機密性、整合性、および有効性を維持するために更新を暗号化したいと考えています。ファイルを秘密鍵で暗号化し、クライアントに送信して、公開鍵で復号化できるようにしたいと考えています。しかし、GPG が機能する方法は、パブリックで暗号化してプライベートで復号化することです。秘密鍵を送信したくないので、変更して公開鍵を他の人に送信できます。それを行う方法はありますか?
5 に答える
あなたが意味することは、「暗号化」ではなく、gpg 用語で「署名」と呼ばれます。
署名とは、基本的に秘密鍵で暗号化し、公開鍵で復号化することです。
使用する
gpg --sign myfile.ext
または、電子メール クライアントの署名機能を使用します。
署名すると、明らかに、「公開」キーにアクセスできる人なら誰でもファイルのコンテンツを読み取ることができます (「公開」キーは通常、まあ... publicであるため、これにより、誰もがコンテンツを解読できます)。
受信者のみがコンテンツをデコードできる方法を探している場合は、受信者のみが復号化トークンにアクセスできる方法でデータを暗号化する必要があります。明らかに、受信者はそのようなトークンを持っている必要があります(つまり、公開鍵でエンコードするので、秘密鍵でデコードできます)
アップデート
簡単に言うと、完全性を保証したい場合(つまり、受信者は、データがあなたと他の誰からのものであることを確実に知っている)、データに署名する必要があります。機密性を保証する(つまり、受信者のみがデータを読み取ることができる) 場合は、データを暗号化する必要があります。
署名と暗号化は実際には同じものです。唯一の違いは、誰がキーにアクセスできるかです。
署名では、秘密鍵を使用してデータを暗号化し、公開鍵で復号化できます (また、誰もが公開鍵にアクセスできるため、誰もが復号化でき、データが署名されていることを誰もが検証できます)。あなた)
暗号化では、受信者の公開鍵を使用してデータを暗号化し、受信者は秘密鍵を使用して復号化します (そのため、受信者だけがそれを読み取ることができます。ただし、暗号化されたデータは誰でも送信できます。受信者は、それが実際に送信されたものであるという保証はありません)。送信者だけがそれを読むことができることが保証されています)。
機密性と完全性の両方が必要な場合は、署名と暗号化の両方を行う必要があります。これが機能するには、あなたと受信者の両方が (異なる) 公開/秘密キーのペアを持っている必要があります。
結論
署名と暗号化は同じものであるため、関連するキーの可用性を完全に制御できる限り、両方を使用してデータの有効性と整合性を保証できます。
ドキュメントを暗号化するために GnuPG が秘密鍵を公開する必要があるというのは事実ではありません。秘密鍵を誰にも公開しないでください。
GnuPG は、非対称暗号化と対称暗号化という 2 つの異なる暗号化方式をサポートしています。
非対称暗号化では、受信者の公開鍵を知る必要があります。名前がすでに示しているように、これらのキーは秘密ではなく、すべての人に知られているため、これは通常問題になりません。再度復号化するには、受信者だけが知っている秘密鍵のみを使用できます。GnuPG を使用した非対称暗号化は、--encrypt
オプションで行われます。
受信者の公開鍵がわからない場合は、両方の当事者が同じ鍵を共有する対称暗号化を使用できます。もちろん、これには共有秘密を送信するための安全なチャネルが必要です。対称暗号化の場合は、オプションを使用します。ここでは公開鍵も秘密鍵も必要ありませんが、共有鍵の安全な交換により、対称暗号化は攻撃を受けやすくなります。--symmetric
整合性と説明責任のみが必要な場合(文書を検出せずに変更することはできず、誰が作成/署名したかを確認できます) 、秘密鍵--sign
を使用して署名を作成するオプションを使用できます。あなたの公開鍵にアクセスできる人なら誰でもこの署名をチェックして、整合性と説明責任の両方を確認できます。ただし、この署名は暗号化されていないため、誰でも元のメッセージの内容を読むことができることに注意してください。結果の .gpg ファイルはバイナリ データのように見えますが、圧縮されたテキストのみが含まれ、暗号化されたテキストは含まれていません。指定して圧縮を無効にすることもできます--compress-level 0
出力ファイルには元のメッセージがプレーンテキストで含まれていることがわかります。したがって、機密性が必要な場合は、このオプションを使用しないでください。
その明示的な目的のために別個の鍵ペアを用意し、公開鍵を秘密にしたまま秘密鍵を配布する必要がある場合があります(そうです、用語に関しては逆になります)。次に、通常は公開鍵を使用して更新を暗号化するだけで、受信者は秘密鍵を使用して更新を復号化できます。