mk-mode BLOG

このブログは自作の自宅サーバに構築した Debian GNU/Linux で運用しています。
PC・サーバ構築等の話題を中心に公開しております。(クローンサイト: GitHub Pages

ブログ開設日2009-01-05
サーバ連続稼働時間
Reading...
Page View 合計
Reading...
今日
Reading...
昨日
Reading...

UNIX MBOX - 「pgp-signature」について!

[ pc_tips ] [ Mail, Ruby ]

こんばんは。

Ruby で UNIX MBOX メールデータを解析していると、添付ファイル(厳密には添付ファイルとは言えないですが)に “pgp-signature” が設定されているものがありました。 (当方のデータには4件ほどあり、そのうちファイル名が設定されているものは1件でしたが)

実際には、メールヘッダの “Content-Type” に

1
2
3
4
Content-Type: multipart/signed;
 boundary="pgp-sign-Multipart_Wed_Sep__8_21:19:07_2010-1";
 micalg=pgp-sha1;
 protocol="application/pgp-signature"

のように設定され、また本文が

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
--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