S/MIME署名されたメールをS/MIMEに対応していないMUA(電子メール利用ソフト)で表示すると、「smime.p7s」という添付ファイル付きの形で表示される(図1)。
これは、RFC 2633にあるように、S/MIMEが、署名データをMIMEの添付ファイルの形式で付加するように設計されているからだ。
3.4.3.3 Sample multipart/signed Message
Content-Type: multipart/signed;
protocol="application/pkcs7-signature";
micalg=sha1; boundary=boundary42
--boundary42
Content-Type: text/plain
This is a clear-signed message.
--boundary42
Content-Type: application/pkcs7-signature; name=smime.p7s
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename=smime.p7s
ghyHhHUujhJhjH77n8HHGTrfvbnj756tbB9HG4VQpfyF467GhIGfHfYT6
4VQpfyF467GhIGfHfYT6jH77n8HHGghyHhHUujhJh756tbB9HGTrfvbnj
n8HHGTrfvhJhjH776tbB9HG4VQbnj7567GhIGfHfYT6ghyHhHUujpfyF4
7GhIGfHfYT64VQbnj756
--boundary42--
この添付ファイルをダブルクリックで開くとどうなるか。Windowsでは証明書ビューアが起動する(図2)。
ここで中身を見ていくと署名者の証明書が見つかる。ダブルクリックすると証明書が表示される(図3)。
ここで、証明書が正当なものと確認できたからといって、S/MIME署名メールが正当なものと判定できたと誤解してはいけない。
これは単に署名に用いられた証明書を表示しただけであり、元々証明書自体は誰にでもコピーできるものだ。たとえば私が、三井住友銀行から送られてきたメールに添付されている「smine.p7s」ファイルを保存して、自分のメールに添付して誰かに送信すると、受け取った人は上の手順でダブルクリックしていくと、正当な三井住友銀行の証明書を目にすることになるだろう*1。
三井住友銀行のサイトにある「メール受信用ソフト毎の確認手順」の説明でも、添付ファイルを開く方法で確認してはいけない旨の注意書きがなされている(図4)。
このような誤解されかねない挙動をするのは、Windowsのデフォルトの拡張子設定によるものだ*2。図5のように、「.p7s」に「Crypto Shell Extensions」が関連付けされている。
署名データは署名対象の本文とセットになったときのみ意味を持つのだから、署名データ(.p7s)単体で何らかの処理ができるようになっている Windowsの設計が不適切だ*3。何にも関連付けないのが正しいのではないか。
内閣官房情報セキュリティセンター発行 のメールマガジンは、創刊当初からS/MIME署名されている。
○ 当センターからのメールは電子証明書(署名者:NISC Information Systems Officer、メールアドレス:nisc-news@bits.go.jp)によって署名されています。電子証明書のないメールや、異なる署名情報が付いているメールは当センターからのものではありませんので、くれぐれもご注意下さい。
○ 当センターからのメールにはファイルは一切添付されておりませんが、お使いのメールソフトによっては電子証明書が添付ファイル(smime.p7s)として表示される場合があります。*4
内閣官房情報セキュリティセンター NISC NEWS 創刊号
しかし、使用されている証明書の有効期限が2か月と短い。5月18日に送られてきた第2号の署名の有効期限は6月20日(図6)で、1か月間しか読むことができなかった*5。
「まあ、最初のうちだけ取り急ぎかな?」と思っていたところ、第3号の冒頭で、
○ 当センターのドメインは6月1日を以て bits.go.jp から nisc.go.jp に変更になりました。
内閣官房情報セキュリティセンター NISC NEWS 第3号
と書かれていた*6。「なるほど、ドメイン変更が予定されていたから臨時だったのか」と一瞬思ったが、第3号のS/MIME署名メールも、ふたたび2か月期限の証明書になっていた(図7)。
もしかして、VeriSign の free 60-day trial edition を常用するつもりなのだろうか?
むろん、オレオレ認証局を安直に入れさせて憚らないどこぞの省より十万倍ましだというのは、もはや説明するまでもなく理解されるところだ。
*1 Outlook ExpressなどのS/MIME対応MUAで受信した場合でも、S/MIME形式でない方法で単にファイル「smime.p7s」が添付されたメールを受信した場合、改竄されているとの警告は出ない。(署名されているとのマークも出ないが。)したがって、正しいS/MIME署名メールで「smime.p7s」の添付ファイルが見えないようにうなっているMUA(Outlook Expressなど)では、「smime.p7s」の添付ファイルが見えるときは異常だと理解しなくてはならない。(混乱を避けるため、Outlook Expressしか使わないユーザは、秀丸やBecky!でS/MIME署名メールがどうなっているか、知らないでいるほうがよい。)
*2 秀丸メールについても、せっかくS/MIME対応しているのだから、smime.p7sが添付ファイルとして見えないように工夫した方がよいとは言える。Becky!のS/MIMEプラグインもそのようにした方がよい。
*3 仮にこれを「脆弱性」としてMicrosoft社に通告しても同社は脆弱性とは認めないだろうから、ここに書いて利用者に対する注意喚起としつつ、同社の知り合いには意見しておくことにする。
*4 添付されているのは証明書ではなく署名なのだが。たしかに証明書も含まれてはいるが、Windowsでダブルクリックしたときの挙動(証明書だけが表示される)に惑わされていないか?
*5 警告を無視して読むことはできる。
*6 普通ならここで、「ドメイン変更を自称するこのメール自体が偽だったら? 前号で予告もされてなかったしな。」と疑うべきところだが、go.jp ドメインなので、まあ疑う必要はないといったところか。(でも、go.jpドメインの管理ってどうなってるの?)
いつも頼りにしてます。高木先生。 「なるほど、ドメイン変更が予定されていたから臨時だったのか」と一瞬思った 高木浩光@自宅の日記 - Windowsの「.p7s」拡張子に対するデフォルトの関連付けは不適切, 内閣官房のメルマガのS/MIME証明書がfree 60-day trial edition....
今日は我が家からも富士山が見えたらしい。 まえに通っていた定食屋で「こんなんあったなあ」と話をした。 「うんうん。好きだったよねえ、あれ」と、カミサンは覚えていたよう。 「つくれる?」と聞いてみたら「やってみましょう」とのお答え。 【肉豆腐定食】。すき焼き..