Ruby で UNIX MBOX メールデータを解析していると、添付ファイル(厳密には添付ファイルとは言えないですが)に “pgp-signature” が設定されているものがありました。 (当方のデータには4件ほどあり、そのうちファイル名が設定されているものは1件でしたが)
実際には、メールヘッダの “Content-Type” に
1 2 3 4 |
|
のように設定され、また本文が
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
|
のようになっているものです。
この “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" は公開鍵に関するもののようですが、当方のメールデータには今のところ存在しないので、とりあえずは調査は保留としています。
詳細は、以下を参照してください。
以上。