アリスがメッセージM = "I love security"に署名し、それをBobに送信する前にBobの公開鍵で暗号化するとします。よく知られているように、ボブはこれを復号して署名付きメッセージを取得し、署名付きメッセージをチャーリーの公開鍵などで暗号化して、結果の暗号文をチャーリーに転送できます。アリスは対称鍵暗号を使用してこの「攻撃」を防ぐことができますか?
ボブがデータをチャーリーに漏らしたのはあなたの問題ですか?これについて本当にできることは何もありません。ボブがデータを読み取れる場合は、いつでも他の人と共有できます。対称鍵暗号が使用された場合、ボブは暗号化されたメッセージだけでなく、鍵自体をチャーリーに送信することができます。さらに良いことに、彼はまだ復号化されたメッセージだけを残すことができます。ボブがデータの意図した受信者である場合、ボブが何かをするのを防ぐ方法はありません。
Oleksiの回答 に加えて、データのタイプに応じて、AはBに秘密保持契約に署名してもらい、作品内に一意の識別子を秘密裏に埋め込むことができます(画像/ビデオの透かしのような、メッセージは非表示ステガノグラフィーのように最下位ビット内、またはソースコード内の変数の名前を変更します)。このデータがBに渡されたことを識別します。データが後で公にリークされた場合、リークされたデータを調べてBをソースとして識別できます。リークして損害を訴えるか、少なくとも将来的に機密情報のストリームからBを遮断する。
シークレット識別子を入力する方法がわかっている場合は許可されますが、コピーする前にスクランブルをかけることができますが、これはBがデータを貴重なシークレットとして扱うことを保証するのに役立ちます。
これは中間者攻撃ではありません。それは意図的な情報開示シナリオです。ボブがメッセージを復号化できる場合、ボブは自分が選択した人にメッセージを漏らす可能性があります。
あなたの質問は、実際にはDRM(デジタル著作権管理またはデジタル制限管理)についてです。暗号文が、専有プログラムでしか理解できない専有フォーマットのままである平文に復号化する場合、そのプログラムはattemptなどの方法でデータ漏洩を防ぐことができます。
もちろん、DRMは常に回避できます。 DRMは、暗号化とデータ形式を解読したり、プロプライエタリプログラムをリバースエンジニアリングしたり、キーを盗んだり、プログラムがコンピューターと対話する方法を妨害したりすることによって破られる可能性があります。ボブの最も基本的な回避策は、画面の写真を撮ることです。
このスレッドは少し古いですが、明確にするために、元の質問は署名と暗号化が「不正な転送」の対象であり、したがって欠陥があるという事実に言及している可能性があります。アリスが「愛しています」というメッセージを生成し、それに署名し、ボブの公開鍵で暗号化してボブに送信するとします。次に、ボブは自分の秘密鍵でそれを復号化し、(何らかの理由で)チャーリーの鍵で再暗号化して、チャーリーに送信することができます。チャーリーはアリスがメッセージに署名したことを確信できますが、誰がそれを暗号化したのかわからないため、メッセージがアリスによって彼に送信されることを意図していたと誤解する可能性があります。
@mudasserは尋ねました、これは対称鍵を使用して解決できますか?
同じ欠陥がアリスであることを明らかにするには、ボブとチャーリーがすべて同じ鍵を所有している必要がありますが、チャーリーはボブがそれを持っていることを知らない必要があります。これは、鍵の交換と保持の両方の安全なプロセスに依存する、鍵自体がどれだけ適切に秘密に保たれるかにかかっています。
この問題に対するより良い解決策は、アリスが署名する前に、元のメッセージで(またはそれとともに)意図された受信者を明示的にすることです。私の例では、アリスのメッセージが「ボブへ、私はあなたを愛している」と言っていたなら、チャーリーは彼が意図された受信者であると誤解されなかったでしょう。