web-dev-qa-db-ja.com

PGPが電子メールのCCフィールドを使用するのはなぜですか?

PGPがCCでどのように機能するのか疑問に思いました。私の理解では、電子メールを[email protected]に送信し、CCで[email protected]を使用すると、Enigmailは電子メールを暗号化する必要がありますすべてのユーザーに1回メールを送信し、2つの電子メールを送信します。

しかし、実際には[email protected]が彼の電子メールをチェックする場合、彼はまだメインの受信者ではなくCCとしてリストされています(これは、電子メールがすべての人に対して一度暗号化された場合に当てはまります) )。

では、どのように機能するのでしょうか?

33
WeGi

OpenPGP形式 (PGPが実装)では、特定の電子メールを複数の受信者に対して暗号化でき、受信者ごとのサイズのオーバーヘッドはわずかです。これは、電子メールの暗号化では実際に ハイブリッド暗号化 が使用されるためです。

  • メールを暗号化するために、新しいランダム対称鍵[〜#〜] k [〜#〜]が生成されます。
  • 電子メールの大部分は、[〜#〜] k [〜#〜]をキーとして使用して、対称暗号化アルゴリズムで暗号化されます。
  • [〜#〜] k [〜#〜]は、受信者のRSAまたはElGamal公開鍵で非対称に暗号化されます。

これは、非対称暗号化(RSA、ElGamal)の処理可能なサイズが非常に制限されており、計算コストも高いためです。対称暗号化アルゴリズムでは、メガバイトのデータを処理するのに問題はありません。

そのセットアップで、2人の受信者に同じメールを送信すると、[〜#〜] k [〜#〜]を使用した対称暗号化が行われます1回だけ;ただし、キー[〜#〜] k [〜#〜]は2回暗号化されます。1回は最初の受信者の公開キーで、もう1回は2番目の受信者の公開鍵。したがって、各受信者は暗号化された電子メールに数百バイトしか追加しません。これは「Cc:」が機能する方法です。これは、電子メールも受け取った各受信者に明らかになることに注意してください。

この「Cc:」メカニズムは、見かけ上の受信者が1人だけの場合にも使用されます。これは、PGPが目的の受信者と自分の両方の電子メールを暗号化するためです。これにより、後で「送信済み」フォルダ。したがって、基本的なPGP電子メールにはすでに2人の受信者がいます。

53
Tom Leek

トムの優れた説明にいくつかの情報を追加するには、メッセージが暗号化されていることを暗号化されたセッションキーのリストから検出できるため、BCCが実際にBCCであることを本当に確認したい場合は、BCCに注意する必要があります。他のPGPキー。正確には、PGPキーのキーIDですが、ほとんどのキーはPGPキーサーバーに格納されているため、キーの所有者を検出することは難しくありません。

16
martijnbrinkers