Firefoxを使用して*1、NEDOのサイトにアクセスする。 一番下に「著作権 ・リンクについて」という部分がある。
上記条件に合致すれば下記登録フォームに必要事項 を記入 し送信して下さるだけで、リンクして下さって結構です。と、電話番号か住所の送信を要求している*3。
このページは暗号化され ていますが、あなたがこのページで入力する情報は暗号化されていない接続を 通して送られようとしており、第三者が簡単に傍受できます。との警告が出る。
暗号化されると見せかけて暗号化なしに送信するというから設定ミスの脆弱性 かと思ったところ、単に mailto: で送信するフォームだった。というわけで、 これ(オレオレを除く)は仕様なのだろう*4。
というか、たぶん誰も使ってない。
「国民のための情報セキュリティサイト」に、「SSL の仕組み」という解説があるが、この説明には誤りがある。
利用者がSSLを利用できるサーバーとデータをやり取りする場合には、Webサーバーと利用者のコンピュータが相互に確認を行いながらデータを送受信するようになるため、インターネットにおける通信内容の暗号化及びなりすましの防止が実現されます。
として、下の図が示されているが、ここにはサーバ証明書が本物であることを 検証する仕組み(PKI)が完全に省かれている。
そこにある用語辞典の「サーバー証明書」の項目には次のように書かれている。
■サーバー証明書(サーバー・しょうめいしょ)
Webサーバーに対して発行される電子証明書のこと。
Webページの発行元のサーバーを運用しているWebサイトが実在していることを証明するものです。通常は、Webサイトを運営している団体が、信頼できる第三者機関に申請することで発行されます。
この証明書には、暗号化に用いる公開鍵が格納されていて、 この鍵を使うことによりクライアントと安全に通信できるようになります。
サーバ証明書が実在証明のためとあとは単なる暗号用の鍵にすぎないと思わ れているふしがある。「信頼できる」という表現も不適切 (1月20日 の日記参照)だろう。
サーバ証明書のことを単なる暗号鍵だと勘違いしていると、「技術的には認証 局による署名は不必要なもの」という誤った考えを導き、認証局による署名が 単なる実在証明だと勘違いしていると、「うちには実在証明なんていらん*5」とい う誤った結論に陥ってしまう。
証明書が本物であることが機械的に検証できることこそがSSLの本質なのであ り、それを伝えない解説は、こうした誤解を拡大させてしまう。「国民のため」 であるなら、訂正したほうがよいのではないか。
*1 IEを使った場合は、3つのサプライズになる。 (サプライズ3とサプライズ4が一体になる。)
*2 第一種オレオレ証明書: 不特定多数に利用させることを想定していて、ルート 証明書もサーバ証明書もインストールさせるつもりのないもの。 第二種オレオレ証明書: 不特定多数に利用させることを想定していて、ルート 証明書かサーバ証明書をインストールするよう促しているが、インストール方 法として安全な手段が用意されていないもの。 第三種オレオレ証明書: 不特定多数に利用させることを想定していて、ルート 証明書かサーバ証明書をインストールするよう促しており、安全なインストー ル方法が用意されているもの。 第四種オレオレ証明書: 特定の者だけに利用させることを想定しているもの。 第五種オレオレ証明書: 正規の認証局から取得したサーバ証明書で運用されて いるが、一部のブラウザでその認証局がルートとして登録されていない場合。
*3 これらの情報が使われる ことはまずないだろう。リンク先をトップページにと要求しているので、 NEDOのドメイン名が変更になってサイトが引越しになるときにのみ、 ここへリンク申請した人々に対して引越しの連絡をするのだろうが、 その程度のことで電話してきたり、住所に葉書で連絡をとったりしてくれると は到底考えられない。リンクしようとする者に対して全く意味のない労力をか けさせ、リンク申請受付係に全く意味のない仕事をさせ、ここで集まった個人 情報はまったく価値がないのに漏洩リスクに対策コストがかけられる。
*4 入力ページを https:// に したのは、送信先アドレスを通信路上で改竄されないようにするためか?
*5 「うちの組織の方が権威があるのに、どこの馬の骨ともわからないような会社に実在を 証明してもらうなんてどう考えてもおかしいだろ」といった発想。
FirefoxがSSL 2.0を廃止する予定 という話が出ている。SSL 2.0では、プロトコルの冒頭部分で使用する暗号 の種類を決める際に、その部分が通信路上で改竄される攻撃を受ける可能性が あり(なにしろまだSSL通信は始まっていないのだから)、それによって使用 する暗号強度をダウングレードさせられる危険性などの問題があった。SSL 3.0では、この問題を解決するために冒頭の最後で改竄がなかったかをハッシュ 値で確認するよう対策されるなど、改善が施されている。
ブラウザには使用するSSLのバージョンを指定する設定が用意されている(図1)。 複数のバージョンがオンに設定されている場合、サーバ側が提示してくる利用 可能なバージョンと突き合せて、利用可能な最も新しいものを自動選択して使 うようになっている。
そのため、サーバ側がSSL 2.0しかサポートしていないWebサイトにアクセスす ると、弱いプロトコルで通信させられることになるので、ユーザの自衛策とし て、ブラウザの設定で「SSL 2.0を使用する」をオフにしておいた方がよいと いうことになる。
ところが、ちまたには、この「SSL 2.0を使用する」をオンにしろと指示して いるサイトがけっこうある。
自治体の事例。
§ 電子申請を行う前に
実際に電子申請をする前に、以下の確認をしてください。
ブラウザ(インターネットエクスプローラ)のメニューの、[ツール]→[インターネッ トオプション]→[詳細設定]タブの[セキュリティ]の項において、次の2つの項目にチ ェックが入っているかどうか確認し、チェックが入っていない場合はチェックを入れて ください。
・ SSL 2.0 を使用する
・ SSL 3.0 を使用する
インターネットを利用した通信を安全に行うため、SSLと呼ばれる通信を暗 号化する手段を導入しています。
SSLを利用するには、WebブラウザでSSLを使用できるように設定する 必要があります。 本システムでは、”SSL3.0”と”SSL2.0”を使用します。
ツール→インターネットオプション→詳細設定→セキュリティ→「SSL 2.0 を 使用する」「SSL 3.0 を使用する」をチェックする。
岡山市も岡崎市も、SSL 2.0なんか使っていないだろうと思われるが、 「なんだかよくわからないので 2.0も3.0もオンにさせとけ」といったところか。
通信事業者の事例。
以下の項目を確認してください。
-「SSL 2.0を使用する」の設定になっている
-「SSL 3.0を使用する」の設定になっている
Yahoo! BBモバイルをご利用いただくには、JavaスクリプトとSSLに対応したブラウザが必要です。
・「SSL 2.0を使用する」の設定になっていること
・「SSL 3.0を使用する」の設定になっていること(略)を、それぞれご確認ください。
Internet Week もか。
当登録ページではお取引の安全性と個人情報の保護、安定したサービス実現の ために、下記ブラウザのご利用をお願いしております。
下記ブラウザをご利用の場合は128ビットSSL暗号化通信により、情報は最高水準のセキュリティで保護されます。
(略)
[セキュリティ]の項目で、[SSL 2.0を使用する]と[SSL 3.0を使用す る]の両方にチェックを付け、[OK]をクリックします。
プロフェッショナルであるはずのマイクロソフトによる解説もひどい。
[設定] ボックスの [セキュリティ] にある [SSL 2.0 を使用する] チェック ボックスおよび [SSL 3.0 を使用する] チェック ボックスをオンにし (オンになっていない場合)、[OK] をクリックします。
128ビットを使うためというタイトルのFAQなのに、40ビットへのダウングレー ドを許可せよと言っているようなものだ。
3.0をオフにせよと指示している珍妙な事例もあった。
2.SSLの設定
「SSL 2.0を使用する」、 「SSL 3.0を使用しない」設定にする必要が あります。
(「SSL 3.0を使用する」としておいても、サポートお問い合わせページへア クセスできる場合があります。)
こんな指示は全く必要がない。
なんでもかんでも指示しておけば親切だと思われるという勘違いでもあるのか?
設定の指示 | 罪深さ | 希少性 | 必然性 | |
---|---|---|---|---|
1 | 「署名済みActiveXコントロールのダウンロード」を有効にしてください | 凶悪 | けっこうある | 皆無 |
2 | 「スクリプトを実行しても安全だとマークされていないActiveXコントロールの初期化とスクリプトの実行」を有効にしてください | 凶悪 | しばしばある | 皆無 |
3 | 「未署名のActiveXコントロールのダウンロード」を有効にしてください | 凶悪 | 稀にある | 皆無 |
4 | 「スクリプトによる貼り付け処理の許可」を有効にしてください | 最悪 | よくある | ほとんどない |
5 | 「無効なサイト証明書について警告する」をオフにしてください | 最悪 | 稀にある | 皆無 |
6 | 「このゾーンのサイトにはすべてサーバーの確認(https:)を必要とする」のチェックを外してください かつ 信頼済みサイトゾーンのセキュリティレベルは「低」に | 危険 | よくある | ない |
7 | 「混在したコンテンツを表示する」を有効にしてください | 危険 | 稀にある | 皆無 |
8 | 「SSL 2.0を使用する」を有効にしてください | 危険 | 稀にある | めったにない |
9 | 「サードパーティのCookie」を受け入れるにしてください | 不適切 | よくある | ない |
10 | 「ActiveXコントロールに対して自動的にダイアログを表示」を有効にしてください | 不適切 | しばしばある | 皆無 |
11 | 「ファイルのダウンロード時に自動的にダイアログを表示」を有効にしてください | 不適切 | しばしばある | ほとんどない |
12 | 「ダウンロードしたプログラムの署名を確認する」をオフにしてください | 不適切 | 稀にある | 皆無 |
13 | 「ポップアップブロックの使用」を無効にしてください | 不適切 | けっこうある | 皆無 |
14 | 「スクリプトを実行しても安全だとマークされていないActiveXコントロールの初期化とスクリプトの実行」をダイアログにしてください | 不適切 | しばしばある | ない |
15 | 「未署名のActiveXコントロールのダウンロード」をダイアログにしてください | 不適切 | しばしばある | ない |
昨日の日記は、 必要もないのにSSL 2.0を有効にせよと指示しているサイトの例だったが、 本当にSSL 2.0でないとアクセスできないサイトというのは、どうやら非常に 珍しいようで、探してもそうそう見つかるものでもない。
次のサイトがひとつ見つかったので、SSL 2.0をオフにしてここにアクセスし てみると、どんな結果になるか体験できる。
FirefoxでSSL 2.0をオフにして上のURLにアクセスすると下の図の警告が出る。
OpenSSLのdebugモードで接続してみたところ次のようになった。
$ openssl s_client -debug -connect www.hellowork.go.jp:443 CONNECTED(00000003) write to 100438D0 [10044220] (142 bytes => 142 (0x8E)) 0000 - 80 8c 01 03 01 00 63 00-00 00 20 00 00 39 00 00 ......c... ..9.. 0010 - 38 00 00 35 00 00 16 00-00 13 00 00 0a 07 00 c0 8..5............ 0020 - 00 00 33 00 00 32 00 00-2f 03 00 80 00 00 66 00 ..3..2../.....f. 0030 - 00 05 00 00 04 01 00 80-08 00 80 00 00 63 00 00 .............c.. 0040 - 62 00 00 61 00 00 15 00-00 12 00 00 09 06 00 40 b..a...........@ 0050 - 00 00 65 00 00 64 00 00-60 00 00 14 00 00 11 00 ..e..d..`....... 0060 - 00 08 00 00 06 04 00 80-00 00 03 02 00 80 ae e6 ................ 0070 - 27 b1 5e 25 b3 4a 4e 7f-3e 61 4a c2 cd b9 df b8 '.^%.JN.>aJ..... 0080 - c8 2b d4 48 4c a5 d6 3e-39 39 8f 78 f3 cf .+.HL..>99.x.. read from 100438D0 [10049780] (7 bytes => 7 (0x7)) 0000 - 84 80 04 00 01 00 02 ....... read from 100438D0 [10052A9F] (1147 bytes => 1147 (0x47B)) 0000 - 04 59 00 0c 00 10 30 82-04 55 30 82 03 c2 a0 03 .Y....0..U0..... (略) --- Ciphers common between both SSL endpoints: RC4-MD5 EXP-RC4-MD5 DES-CBC-MD5 DES-CBC3-MD5 --- SSL handshake has read 1256 bytes and written 269 bytes --- New, SSLv2, Cipher is DES-CBC3-MD5 Server public key is 512 bit SSL-Session: Protocol : SSLv2 Cipher : DES-CBC3-MD5 Session-ID: ................................... (略)
8月2日の日記「どんなにセキュリティ機能を追加してもそれを設定で殺させる虫が湧いてくる」で、 「ActiveXコントロールに対して自動的にダイアログを表示」という設定項目 について、
と心配していたが、既にそうした混乱が生じていたようだ。この項目はデフォルトで「無効にする」に設定されており、「無効にする」のときに安全機能が働く。「無効にする」にすると機能が働くという、ひねくれた命名になっているので、ここで混乱してはいけない。
自治体などのように自分とこのサイトを使わせるためにセキュリティレベルを 下げさせているサイトはここでは論外にするとして、次のようなサイトでさえ も、この設定を「有効にする」に設定することをアドバイスしている。
IEのセキュリティレベルを上げる
(略) ActiveXコントロールに対して自動的にダイアログを表示
「ActiveX」を実行する際、この項目を有効にしておけば確認のダイアログが表示 されます。これを有効にしておけば安全でしょう。
これらのページは、セキュリティを厳しい設定にすることを意図した解説なの で、これは単純に「有効にする」と「無効にする」の効果を間違えたのだと思 われる。
前者は、「自動的にダイアログを表示」を無効にしているとActiveXコントロー ルの署名確認ダイアログが出ない(いきなりインストールされる)と勘違いし たのではないか。
後者は、「自動的にダイアログを表示」の「ダイアログ」が、情報バー (Service Pack 2の新機能でブラウザ上部に現れる黄色い部分)のことを指し ていると勘違いしたのだろう。
こういう紛らわしい名前を付けるマイクロソフトが悪い*1。
8月1日の 日記では検索して大手サイトだけ抽出したのだったが、以下のサイトを漏 もらしていた。公平性の意味でも挙げておく。
VAIO Update を使用する上での注意点
以下の項目を有効にしてください。
- ActiveX コントロールとプラグインの実行
- スクリプトを実行しても安全だとマークされている ActiveX コントロールの スクリプトの実行
- 署名済み ActiveX コントロールのダウンロード
*1 サーバ証明書 に対する理解として「オレオレ証明書でも盗聴はされない」という誤解 (実際にはパケット改竄によって能動的な盗聴が可能)が 広まった原因もマイクロソフトだったし。