<前の日記(2006年07月23日) 次の日記(2006年07月25日)> 最新 編集

高木浩光@自宅の日記

目次 はじめに 連絡先:blog@takagi-hiromitsu.jp
訪問者数 本日: 486   昨日: 1994

2006年07月24日

Windowsの「.p7s」拡張子に対するデフォルトの関連付けは不適切

S/MIME署名されたメールをS/MIMEに対応していないMUA(電子メール利用ソフト)で表示すると、「smime.p7s」という添付ファイル付きの形で表示される(図1)。

図1: Becky!でS/MIME署名メールを表示した様子

これは、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--

RFC 2633

この添付ファイルをダブルクリックで開くとどうなるか。Windowsでは証明書ビューアが起動する(図2)。

図2: 添付ファイル「smime.p7s」を開いた様子(Windowsの場合)

ここで中身を見ていくと署名者の証明書が見つかる。ダブルクリックすると証明書が表示される(図3)。

図3: 含まれている証明書を表示した様子

ここで、証明書が正当なものと確認できたからといって、S/MIME署名メールが正当なものと判定できたと誤解してはいけない

これは単に署名に用いられた証明書を表示しただけであり、元々証明書自体は誰にでもコピーできるものだ。たとえば私が、三井住友銀行から送られてきたメールに添付されている「smine.p7s」ファイルを保存して、自分のメールに添付して誰かに送信すると、受け取った人は上の手順でダブルクリックしていくと、正当な三井住友銀行の証明書を目にすることになるだろう*1

三井住友銀行のサイトにある「メール受信用ソフト毎の確認手順」の説明でも、添付ファイルを開く方法で確認してはいけない旨の注意書きがなされている(図4)。

図4: 三井住友銀行による注意書き

このような誤解されかねない挙動をするのは、Windowsのデフォルトの拡張子設定によるものだ*2。図5のように、「.p7s」に「Crypto Shell Extensions」が関連付けされている。

図5: Windowsにおける拡張子「.p7s」のデフォルトの関連付け

署名データは署名対象の本文とセットになったときのみ意味を持つのだから、署名データ(.p7s)単体で何らかの処理ができるようになっている Windowsの設計が不適切だ*3。何にも関連付けないのが正しいのではないか。

内閣官房のメルマガのS/MIME証明書がfree 60-day trial editionというセコさ

内閣官房情報セキュリティセンター発行 のメールマガジンは、創刊当初から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

図6: 内閣官房情報セキュリティセンター発行のメルマガの証明書(第2号のもの)

「まあ、最初のうちだけ取り急ぎかな?」と思っていたところ、第3号の冒頭で、

○ 当センターのドメインは6月1日を以て bits.go.jp から nisc.go.jp に変更になりました。

内閣官房情報セキュリティセンター NISC NEWS 第3号

と書かれていた*6。「なるほど、ドメイン変更が予定されていたから臨時だったのか」と一瞬思ったが、第3号のS/MIME署名メールも、ふたたび2か月期限の証明書になっていた(図7)。

図7: 同 第3号のもの

もしかして、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ドメインの管理ってどうなってるの?)


<前の日記(2006年07月23日) 次の日記(2006年07月25日)> 最新 編集

最近のタイトル

2000|01|
2003|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|05|06|07|08|09|10|11|12|
2012|02|03|04|05|06|07|08|09|
2013|01|02|03|04|05|06|07|
2014|01|04|07|09|11|12|
2015|01|03|06|07|10|11|12|
2016|01|02|03|04|06|07|08|10|11|12|
2017|01|02|03|04|05|06|07|10|12|
2018|03|05|06|10|12|
2019|02|03|05|06|07|08|10|
2020|08|09|
2021|07|08|10|12|
2022|01|04|06|12|
2023|03|
2024|03|04|07|11|12|
2025|01|02|03|04|05|06|10|11|12|
<前の日記(2006年07月23日) 次の日記(2006年07月25日)> 最新 編集