Message-Id の文字列に関するセキュリティNo.47533
vauhatto さん 15/02/12 22:03
 
秀まるお2様

 秀丸メールにより、吐き出される、Message-Idは、

 【任意の英数字】+【自分のメールアドレス】
 
となっているが、そのメールについて転送等が繰り返されると、いくら
本文の個人情報を削除しても、(他のメーラーなど)場合によっては、
References ヘッターなどに自分のメールアドレスが残った状態で、第三
者に送信される恐れがあることについて、セキュリティー上、問題がある
と思われます。
 つきましては、Message-Idの吐き出しについて、メールアドレスの、
@以前の文字列について個人情報が入らないような仕様に変更していた
だきたいので、検討の方をお願いします。

 

[ ]
RE:47533 Message-Id の文字列に関するセNo.47535
秀まるお2 さん 15/02/13 08:58
 
 Message-Id:ヘッダの中身は、たしかに自分のメールアドレス(というか、た
ぶんFrom:ヘッダのメールアドレス)を元に生成してまして、たしかこの仕組み
は他のメールソフトを参考にしてそうしたような気がします。

 たしかOutlook Expressだったような気がしたんですが、Outlook Expressの生
成するMessage-Id:ヘッダは、「@」より前の部分がメールアドレスとは違うよう
です。

 ということで、僕の勘違いでこういう仕様にしてしまったような気がしてきま
した。

 ただ、From:ヘッダの「@」以降部分が入るのは、他のメールソフトもだいたい
そういう物みたいです。

 一応、From:ヘッダのメールアドレスは相手に知られて当然の物なので、それ
と同じものが入っていること自体はセキュリティ的に問題無いとは思うんですが、
他のメールソフトと違う点も含めて直した方が適当な気がします。ということで、
この辺適当に修正させていただきます。

 とりあえず、メールアドレスの「@」より前の文字列から適当なハッシュ文字
列を生成して、それを入れるように修正させていただきます。次のβ版にて対応
させてただきます。

[ ]
RE:47535 Message-Id の文字列に関するセNo.47536
たまちゃん3 さん 15/02/13 15:29
 
RFC 2822もobsoleteになって,RFC 5322になったものを眺め直して
みると,Message-IDフィールドについては

The message identifier (msg-id) itself MUST be a globally unique
identifier for a message.  The generator of the message identifier
MUST guarantee that the msg-id is unique.  There are several
algorithms that can be used to accomplish this.  Since the msg-id has
a similar syntax to addr-spec (identical except that quoted strings,
comments, and folding white space are not allowed), a good method is
to put the domain name (or a domain literal IP address) of the host
on which the message identifier was created on the right-hand side of
the "@" (since domain names and IP addresses are normally unique),
and put a combination of the current absolute date and time along
with some other currently unique (perhaps sequential) identifier
available on the system (for example, a process id number) on the
left-hand side.  Though other algorithms will work, it is RECOMMENDED
that the right-hand side contain some domain identifier (either of
the host itself or otherwise) such that the generator of the message
identifier can guarantee the uniqueness of the left-hand side within
the scope of that domain.

となって一部を除き変更がありませんでした。

@の右側については RECOMMENDED になっていますが,@の左側については

a combination of the current absolute date and time along
with some other currently unique (perhaps sequential) identifier
available on the system

がよかろうという表現になっています。

[ ]
RE:47536 Message-Id の文字列に関するセNo.47537
秀まるお2 さん 15/02/13 15:59
 
 情報ありがとうございます。

 この辺もちゃんとRFCに規定されてるとは知りませんでした。(読んでません
てした。)

 とりあえず、メールアドレスの「@」より前の部分から適当なハッシュ(32bit
-CRC)を計算して、それを8桁の16進数文字列にして入れるようにします。

 それの前につく16進数文字列については以前と同じ仕様でいいかと思います。
そこには秀丸メールが生成するメールのシリアルナンバーを256で割ったあまり
と、そのMessage-Idを生成する瞬間の時刻から生成した文字列を入れるよにして
まして、他の重ならないってことでは大丈夫かと思います。

 安全性を高めるならもっと長めがいいですが。(最近のメールソフトの
Message-Idは結構長いみたいだなぁとふと思ったけど)

[ ]