UNIX MBOX - 「pgp-signature」について!
Updated:
Ruby で UNIX MBOX メールデータを解析していると、添付ファイル(厳密には添付ファイルとは言えないですが)に “pgp-signature” が設定されているものがありました。 (当方のデータには4件ほどあり、そのうちファイル名が設定されているものは1件でしたが)
実際には、メールヘッダの “Content-Type” に
Content-Type: multipart/signed;
boundary="pgp-sign-Multipart_Wed_Sep__8_21:19:07_2010-1";
micalg=pgp-sha1;
protocol="application/pgp-signature"
のように設定され、また本文が
--pgp-sign-Multipart_Wed_Sep__8_21:19:07_2010-1
Content-Type: text/plain; charset=ISO-2022-JP
(((( 本 文 ))))
--pgp-sign-Multipart_Wed_Sep__8_21:19:07_2010-1
Content-Type: application/pgp-signature
Content-Transfer-Encoding: 7bit
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (FreeBSD)
iEYEABECAAYFAkyHfzsACgkQkgvvx5/Z4e6YiACgx0cQgNChewArCAmFwEu2oOIs
lhkAn1uONVihjS9YkMyYbqTyT4rlpTL8
=IRdX
-----END PGP SIGNATURE-----
--pgp-sign-Multipart_Wed_Sep__8_21:19:07_2010-1--
のようになっているものです。
この “pgp-signature” とは、本文をPGP署名していることを表しているようです。
RFC 3156 (以前の RFC 2015)によって細かく定められています。
書式は、上記の例のようになっていないといけません。 【メールヘッダ部分】
- “Content-Type” のタイプに “multipart” を、サブタイプに “signed” を指定。
- 本文を分割するために “boundary” パラメータに文字列を指定。
- protocol パラメータに PGP署名を表す “application/pgp-signature” を指定。
- micalg パラメータに プロトコルを指定。 (RFC 3156 では、”pgp-md5”, “pgp-sha1”, “pgp-ripemd160”, “pgp-md2”, “pgp-tiger192”, “pgp-haval-5-160” が指定可能)
【メール本文部分】
- メール本文の部分とPGP署名の部分が必要。
- PGP署名部分のヘッダ “Content-Type” のタイプに “application” サブタイプに “pgp-signature” を指定。
PGP署名 “pgp-signature” については簡単ですが以上です。
さらに、PGPに関しては “pgp-signature” 以外に、”pgp-encrypted”、”pgp-keys” もあるようです。 “pgp-encrypted” は暗号化に関するもの、”pgp-keys” は公開鍵に関するもののようですが、当方のメールデータには今のところ存在しないので、とりあえずは調査は保留としています。
詳細は、以下を参照してください。
以上。
Comments