メッセージが複数の受信者に送信される場合、対称キーはすべての受信者の公開キーによって個別に暗号化されます。
対称セッション キーは、必要に応じて、送信者に対して非対称に暗号化されます。
暗号化されたすべての対称キーが一緒にパッケージ化されます
受信者ごとに、暗号化されたキー、使用された証明書のシリアル番号などを持つブロックがあります。
次に、このランダムなセッション キーは、各受信者の公開キーを使用して暗号化され、SMIME メッセージが送信されます。
これはそうではありません。上記の手順で十分です。生成された対称セッション キーは、受信者 (および送信者) ごとに非対称に暗号化する必要があります。
CMS RFC5652およびS/MIME RFC5751で定義されています。S/MIME メッセージは、MIME ボディと CMS コンテンツ タイプで構成されます。受信者 (および送信者) ごとに CMS が必要RecipientInfo Type
です。このタイプには、どの暗号鍵がどの受信者に属しているかという情報があります。
openssl cms -inform smime -in Test_enc.mbox -cmsout -print
CMS_ContentInfo:
contentType: pkcs7-envelopedData (1.2.840.113549.1.7.3)
d.envelopedData:
version: <ABSENT>
originatorInfo: <ABSENT>
recipientInfos:
d.ktri:
version: <ABSENT>
d.issuerAndSerialNumber:
issuer: C=.., ST=.., L=.., O=.., OU=.., CN=..
serialNumber: 16756039346226544442
keyEncryptionAlgorithm:
algorithm: rsaEncryption (1.2.840.113549.1.1.1)
parameter: NULL
encryptedKey:
0000 - 07 b9 dc b8 97 ed ea b0-8f 9c 30 fa 0c f6 a0 ..........0....
...
01fe - f0 62 .b
d.ktri:
version: <ABSENT>
d.issuerAndSerialNumber:
issuer: C=.., ST=.., L=.., O=.., OU=.., CN=..
serialNumber: 16756039346226544442
keyEncryptionAlgorithm:
algorithm: rsaEncryption (1.2.840.113549.1.1.1)
parameter: NULL
encryptedKey:
0000 - 07 b9 dc b8 97 ed ea b0-8f 9c 30 fa 0c f6 a0 ..........0....
...
01fe - f0 62 .b
このメールは自分用に暗号化されているため、ブロックは送信者と受信者として 2 回含まれています。
- 受信側での復号化はどのように行われますか?
- 受信者はすべての暗号化されたセッション キーを反復処理し、セッション キーの復号化を試みていますか?
- 50 人の受信者がいる場合、受信者はすべての受信者の暗号化されたテキストをセッション キー用に復号化する必要がありますか?
受信者は、正しい暗号化キーを見つけるために、リストissuer
内serial number
の適切なものを検索するだけで済みます。recipientInfos