7. 資料
7.1. S/MIME のメールメッセージ
7.1.1. 標準仕様
(1) RSA暗号アルゴリズム
RFC 3560 "Use of the RSAES-OAEP Key Transport Algorithm in Cryptographic Message Syntax (CMS)"
RSA公開鍵暗号方式を使った暗号化の処理について記述しています。
RFC 4056 "Use of the RSASSA-PSS Signature Algorithm in Cryptographic Message Syntax (CMS)"
RSA公開鍵暗号方式を使ったデジタル署名の処理について記述しています。
(2) 暗号データのフォーマット
RFC 3852 “Cryptographic Message Syntax (CMS)”
デジタル署名データ、暗号化データのフォーマットについて記述しています。RSA Data
Security Inc.が公開した仕様PKCS#7をベースに作成されているため、慣例的
に”PKCS#7”と呼ばれることもあります。
(3) S/MIMEの電子メールメッセージのフォーマット
RFC 2311 "S/MIME Version 2 Message Specification"
RFC 2633 "S/MIME Version 3 Message Specification"
RFC 3851 "S/MIME Version 3.1 Message Specification"
CMSのオプションとS/MIMEのメールメッセージについて記述しています。
(4) アプリケーションでの証明書と失効リストの取扱方法 RFC 2312 "S/MIME Version 2 Certificate Handling"
RFC 2632 "S/MIME Version 3 Certificate Handling"
RFC 3850 "S/MIME Version 3.1 Certificate Handling"
(5) S/MIME V3の拡張機能
セキュリティラベル、デジタル署名付き受信確認メッセージの仕様です。
RFC 2634 "Enhanced Security Services for S/MIME"
(6) 証明書署名要求
RFC2986" PKCS #10: Certification Request Syntax Specification Version 1.7"
認証局への証明書署名要求データのフォーマットについて記述しています。
(7) 公開鍵証明書と失効リスト
RFC 3280 "Internet X.509 Public Key Infrastructure Certificate and CRL Profile"
163 (8) PKCS(Public-Key Cryptography Standards)28
もともと、S/MIMEは米国のRSA Data Security Inc.29が中心なって開発された、電子メ ールの暗号プロトコルです。そのため、S/MIMEで用いられる暗号文のデータフォーマッ
トはPKCS(Public Key Crypt System)と呼ばれるRSA Data Security Inc.が開発して仕
様を基本にしているのです。
28 https://www.rsa.com/rsalabs/node.asp?id=2124
29 RSA Data Security Inc.は2006年6月、EMCに買収されてEMCの1部門となった。
164
7.1.2. 標準仕様と電子メール作成までの処理の流れ
S/MIMEのメールメッセージは図 7-1のようにRFCに基づき処理されます。
図 7-1 処理の流れと標準仕様
i. 元メールから所定のダイジェスト関数でダイジェスト値の計算をします。あるいは、秘密 鍵を生成し共通鍵暗号を使って暗号化します。
ii. RFC 4056、RFC 3560に従い、デジタル署名のダイジェスト値、暗号化の共通鍵を入力と
してRSA公開鍵暗号の処理をします。
iii. RSA公開鍵暗号で作成したデータと付随する情報をRFC 3852に規定されたフォーマット
にします。
iv. 作成したCMSデータをBASE64にエンコードして、RFC 3851に規定されている、MIME
ヘッダーをつけた添付ファイルにします。ただし、S/MIMEはInternet Draftであった段 階からアプリケーションが存在したため、一部の古い電子メールソフトでは、Internet
165
Draftの段階で定義されていたMIMEヘッダーを使っています。
7.1.3. MIMEヘッダー
7.1.3.1. メールのMIMEヘッダー
(1) 暗号化または、デジタル署名を含む暗号化されたメッセージ
RFC
Content-Type: application/pkcs7-mime; smime-type=enveloped-data; name=smime.p7m Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename=smime.p7m
Internet Draft
Content-Type: application/x-pkcs7-mime; name=smime.p7m Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename=smime.p7m (2) デジタル署名
RFC
Content-Type: application/pkcs7-mime; smime-type=signed-data; name=smime.p7m Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename=smime.p7m
Internet Draft
Content-Type: application/x-pkcs7-mime; name=smime.p7m Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename=smime.p7m (3) クリアデジタル署名
RFC
Content-Type: application/pkcs7-signature; name=smime.p7s Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename=smime.p7s
Internet Draft
Content-Type: application/x-pkcs7-signature; name=smime.p7s Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename=smime.p7s (4) 証明書
RFC
Content-Type: application/pkcs7-mime; smime-type=cert-only; name=smime.p7c Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename=smime.p7c
Internet Draft
Content-Type: application/x-pkcs7-mime; name=smime.p7c Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename=smime.p7c
166
7.1.4. S/MIMEメールメッセージの例
(1) クリアデジタル署名 multipart/signed の場合 To: Hiroyuki Sawano <[email protected] >
From: Taro Yamada <[email protected] >
Subject: Digital Sign MIME-Version: 1.0
Content-Type: multipart/signed; protocol="application/x-pkcs7-signature"; micalg=sha1;
boundary="---ms8B7876C5A4971B52E1D24E61"
This is a cryptographically signed message in MIME format.
---ms8B7876C5A4971B52E1D24E61 Content-Type: text/plain; charset=iso-2022-jp Content-Transfer-Encoding: 7bit
こんにちは、
明日の打ち合わせの件ですが、(JISコード)
---ms8B7876C5A4971B52E1D24E61
Content-Type: application/x-pkcs7-signature; name="smime.p7s"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="smime.p7s"
Content-Description: S/MIME Cryptographic Signature
MIIQDwYJKoZIhvcNAQcCoIIQADCCD/wCAQExCzAJBgUrDgMCGgUAMAsGCSqGSIb3DQEHAaCC Dn0wggnHMIIJMKADAgECAhA4kcRP4QGC7RTq2FZKZF0TMA0GCSqGSIb3DQEBBAUAMGIxETAP
(中略)
MjQ2MzRaMB4GCSqGSIb3DQEJDzERMA8wDQYIKoZIhvcNAwICASgwDQYJKoZIhvcNAQEBBQAE QBOPytJm3nmFp6lYXCZHlDyG9VULk8hhgyU0vAHELLV/9Grx4+5fVbeerP/YXSmoZx8G6CTw J7/hi+ooJvN4cuM=
---ms8B7876C5A4971B52E1D24E61--
(2) PKCS#7 signedData の場合
To: Hiroyuki Sawano <[email protected] >
From: Taro Yamada <[email protected] >
Subject: Digital Sign MIME-Version: 1.0
Content-Type: application/x-pkcs7-mime; name="smime.p7m"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="smime.p7s"
MIAGCSqGSIb3DQEHAqCAMIACAQExDjAMBggqhkiG9w0CBQUAMIAGCSqGSIb3DQEHAaCAJIAEbkNv bnRlbnQtVHlwZTogdGV4dC9wbGFpbg0KQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVk
(中略)
hvcNAQkEMRIEEFE6IM/MZQmTGdlaAG17hE4wDQYJKoZIhvcNAQEBBQAEQC+f4FYqZiV4QgzS3BAB YpazDyMF61HtuVOU5rZ9lguQzFB/nH6K+G0cF1+hAmaGdpFkC3lCVh0Py2XnMPg5TvoAAAAAAAAA AA==
(3) 暗号化
To: Hiroyuki Sawano <[email protected] >
From: Taro Yamada <[email protected] >
Subject: Digital Envelop MIME-Version: 1.0
Content-Type: application/x-pkcs7-mime; name="smime.p7m"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="smime.p7m"
Content-Description: S/MIME Encrypted Message
MIAGCSqGSIb3DQEHA6CAMIACAQAxgc8wgcwCAQAwdjBiMREwDwYDVQQHEwhJbnRlcm5ldDEX MBUGA1UEChMOVmVyaVNpZ24sIEluYy4xNDAyBgNVBAsTK1ZlcmlTaWduIENsYXNzIDEgQ0Eg
(中略)
Bh0SaWCqCd9p0OpbNnHyi2G3tvMEuC74u+nvWjZT8fXeBAggdxGjYOObZQQIUHE0vqb2lnIA AAAAAAAAAAAA
167 (4) デジタル署名+暗号化
To: Hiroyuki Sawano <[email protected] >
From: Taro Yamada <[email protected] >
Subject: Digital Sign And Digital Envelop MIME-Version: 1.0
Content-Type: application/x-pkcs7-mime; name="smime.p7m"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="smime.p7m"
Content-Description: S/MIME Encrypted Message
MIAGCSqGSIb3DQEHA6CAMIACAQAxgc8wgcwCAQAwdjBiMREwDwYDVQQHEwhJbnRlcm5ldDEX MBUGA1UEChMOVmVyaVNpZ24sIEluYy4xNDAyBgNVBAsTK1ZlcmlTaWduIENsYXNzIDEgQ0Eg LSBJbmRpdmlkdWFsIFN1YnNjcmliZXICEDiRxE/hAYLtFOrYVkpkXRMwDQYJKoZIhvcNAQEB
(中略)
BJ/HfTc8/7A5BBBpHHa3fZXWmE4T/uRhx4NiBDCGvxP7QFMih9lWyt6FPuCfmwwHJOrjqBkQ eORM8+HsW8F50a47Pk7VZ6cEBs7NXw8ECIhY5KF/fCVhAAAAAAAAAAAAAA==