<前の日記(2005年02月18日) 次の日記(2005年02月20日)> 最新 編集

高木浩光@自宅の日記

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

2005年02月19日

官公庁の担当者は署名なしアプレットの存在を知らないのか

官公庁や自治体がサービスを始めた電子申請・届出システムのほとんどは、ク ライアント側でJRE (Java 2 Runtime Environment)の使用を前提としており、 利用者にそれをインストールさせているのだが、JREには、年に1、2回程度の 頻度でセキュリティ脆弱性が発覚している。JREはきわめて汎用性の高いミド ルウェアである(ほとんどOSに近い)ため、脆弱性の発覚は、利用者のWeb利 用全般に危険をもたらすことになる。

もし、JREがほとんどのパソコンで購入時から組み込まれているならば、JRE の脆弱性の発覚に対してアップデート作業を行うのは、パソコン購入者の責任 であり、その必要性を購入者に周知する義務が販売者やメーカーにあることに なる。これは、Windows Updateがそうであるのと同じ理屈からだ。

しかし実際はそうではなく、JREを官公庁や自治体が新規にインストールさせ ているのが現状である。省庁によっては、その省庁のシステム専用のプログラ ムのインストーラがJREも同時にインストールするところもあり、この場合は 明らかに、またそれ以外の場合であっても、JREの脆弱性に対して対応を周知 する義務が、各省庁や自治体にあることになる。そうした考え方から、約3年 前にこのような報道があった。

その後、JREをインストールさせている各省庁は、JREの脆弱性が発覚するた びに必ず告知を出すようになった。このような慣行ができあがったことはすば らしいことで、さすが役所ならではのことであろう*1。その流 れの中に、昨日の日記「「受動的攻撃 の被害 = 利用者の自業自得」が最高裁基準」で書いた最高裁からの告知

本申立てプログラムの稼働に必要な中間プログラム(JRE : Java Runtime Environment)の脆弱性について

はある。

ところが、裁判所オンライン申立てシステムでは、「脆弱性が発見されました」 と事実の通知こそしているものの、どうすればよいかの説明が、

ついては,JREをパソコンにインストールした状態で,信頼できないサイトを閲覧したり,出所不明のアプレット(プログラム)を実行したりすることのないようにしてください。

裁判所オンライン申立てシステムに関するお知らせ, 最高裁判所

で済まされてしまっている。このような対応は他省庁には見当たらない。

なぜこうなってしまったのか。その謎を解く鍵は、環境省、金融庁、内閣府、 総務省、および公的個人認証サービス都道府県協議会が出している同じ告知の 文章にありそうだ。図1〜5にそれらを示す。

図5: 公的個人認証サービス都道府県協議会の告知
JRE (Java Runtime Environment) のセキュリティ上の脆弱性について

これらのいずれにも「身元不明なアプレットの実行を承諾しないように」とい う文があるが、これらを書いた人は、JREの脆弱性がアプレットにどのように 危険性をもたらすかについて根本的に誤った理解をしているとしか考えられない。

なぜなら、「承諾」もなにも、普通のJavaアプレットはページを開いただけで 即座に実行が開始されるものだからだ。事実、以下にあるように、この日記 ページを見た人は既にアプレットの実行を許している。

あなたのコンピュータにはJavaがインストールされていないようですので、 あなたは承諾はしてはいません。

では、環境省、金融庁、内閣府、総務省、公的個人認証協議会が言う「承諾」 とは何なのだろうか? おそらくそれはこれ(図6)のことだろう。

図6: 署名付きJavaアプレットが起動されようとする ときに現れる「承諾」確認ウィンドウ

これは、署名付きアプレットが起動されようとしているときに現れる「確認」 ウィンドウである。「確認」とは、このアプレットを実行することを承諾する かを利用者に確認することを指す。

この確認ウィンドウが現れるのは、アプレットが署名付きのものである場合で あり、署名なしのアプレットでは何ら確認なしに、即座に実行が開始される。

署名付きの場合にだけ確認ステップがあるのは、署名付きアプレットの実行を 「承諾」した場合、そのアプレットは、どんな処理でも実行を許される(つま り、ファイルを読むとか、ファイルに書き出すとかいった処理の実行を許され る)のに対し、署名なしのアプレットでは、そうした処理の実行が許されてい ないからだ。

元々Javaアプレットは、「サンドボックス」と呼ばれる強いセキュリティ制約 の上で動作する、Web上のプログラムとして、最初登場した。Webを閲覧しただ けで動き始める、よそのサイトからのプログラムが、閲覧者のコンピュータの ファイルにアクセスするようなことがあってはならないので、そうした処理を 禁止していた。禁止されているからこそ、安心して閲覧できる。 そこが登場当初のJavaの最大の特徴であった。

しかし、そうした制約があると、アプレットにできることは限られたものとな る。ゲームとか、アニメーションとか、コンピュータシミュレーションとか、 そういったものにしか使えず、ビジネスには使えないと言われていた。そこで 後になって登場したのが、署名付きJavaアプレットである。

各省庁が電子申請・届出システムのために署名付きアプレットを使っているの は、それらのアプレットが、利用者のコンピュータ内のファイルを読み取った り、書き込んだりするためである。なぜなら、電子申請・届出システムのアプ レットは、作成途中の届出書類を利用者のコンピュータ上にファイルとして保 存したり、保存してあるものを読み出して送信する機能を備えているからだ。

署名付きアプレットはどんな処理でも実行可能であるから、利用者の確認なし に実行が開始されるようなことがあってはならない。利用者は、その署名が誰 によってなされているかを、PKIの仕組みによって確実にそうだと確認したう え、その署名者を信用する(悪いことをしようとしているプログラムではない だろうと信用する)ときだけ、「はい」ボタンを押して実行を許可するわけだ。

そして、JREに脆弱性が見つかったというのは、たいていの場合、サンドボッ クスを突破できる欠陥が見つかったことを意味している。つまり、署名なしの アプレットがファイルを読んだり書いたりできてしまうということだ。Webを 閲覧しただけでファイルを盗まれたり、ファイルを破壊されたり、スパイウェ アを埋め込まれたりするといった被害に遭う可能性があるということだ。

そのようなJREの脆弱性において、「承諾」というものは何ら関係がない。

身元不明なアプレットの実行を絶対に承諾しないようにしてください。

というのは、まるっきり頓珍漢である*2

おそらく、環境省、金融庁、内閣府、総務省、的個人認証協議会の告知文を書 いた人たちは、「アプレット = 署名付きアプレット」だと思い込んでいるの だろう。自分達が提供しているアプレットが署名付きだから、そこしか見てい ないのだろう。署名なしアプレットの存在そのものを知らないのだろう。

ちなみに、財務省、外務省、厚生労働省の同様の告知文には、この頓珍漢な文 は見当たらない。

  • 財務省 Java 2 Runtime Environment(JRE)脆弱性について

    3.当面の対処方法

    (略)

    動作検証が完了するまでの間、財務省電子申請システムをご利用するにあたっ て、 JREをご利用されている方は、電子申請システムを利用した後にJREをオ フにする操作 (下記4)を実施していただきますようお願いいたします。

  • 外務省 Java Plug-in(JRE)の脆弱性について

    当面の対策方法

    このような被害を回避するため、お手数ですが、汎用受付等システムを利用さ れる場合以外は「Java Plug-in(JRE)」をアンインストールしておくことを 推奨いたします。

  • 厚生労働省 Java 2 Runtime Environment(JRE)の セキュリティ・ホールに関するお知らせ

    【回避策】

    1.電子申請・届出システムにアクセスするとき以外は、JRE を無効にします。 無効にする方法は、こちらをご参照ください。

    2.電子申請・届出システムにアクセスする前に、他のサイトにアクセスしな いようにします。

環境省、金融庁、内閣府、総務省、公的個人認証協議会の文書が、ほぼ同じ文 面になっているのも興味深い。ひとたびどこかが誤ったことを書いてしまうと、 (役所の文書に誤りはないことになっているので)別のところがそれを真似て 書いてしまう。無断リンク禁止教が広まったのと同様に、役所は誤った理解が 伝染しやすい土壌があるのではなかろうか。

そして伝染時にはしばしば変異が生ずる。環境省、金融庁、内閣府、総務省、 公的個人認証協議会の文書では、対応方法として2つを挙げている。一つ目が、 「身元不明のアプレットを承諾しないように」であり、二つ目は「JREをオフ にせよ」である*3し かし、最高裁判所は、見よう見まねでこの注意喚起文を書くにあたり、このう ちの一つ目だけにしてしまった。それで、

ついては,JREをパソコンにインストールした状態で,信頼できないサイトを 閲覧したり,出所不明のアプレット(プログラム)を実行したりすることのな いようにしてください。

などという(きょうび Microsoftでさえ言わない)ことを書いてしまった―― そういうことなのではなかろうか。

セキュリティに関わる文書を書くときは、必ずセキュリティのことがわかる技 術者のチェックを受けるべきである。署名なしアプレットの存在を知らないよ うな人が、一般市民に対してセキュリティに関する対応を指示するのは間違っ ている。素人が「津波の心配はありません」などと言ったりしないのと同じこ とだ。

「よくある質問」は本当によくあるのか?

国土交通省オンライン申請システムの「よくあるご質問」に 面白いことが書いてあった。


「フィンガープリント」の確認を行わなかったらどうなりますか。


「フィンガープリント」とは、拇印や指紋という意味です。 入手した電子証明書の信頼性を確認するために、広く公開している(ここでは 総務省ホームページや国土交通省ホームページで公開しています)フィンガー プリントと入手した電子証明書のフィンガープリントが一致するかを確認します。 一致すれば、自己署名証明書などの電子証明書が正しく入手できているという確認ができます。国土交通省では、この電子証明書を 用いて安全な通信を行っています。申請者の方と国土交通 省の間の安全な通信のため必要な確認ですので、「フィンガープリント」の値をご確認ください

国土交通省オンライン申請システム よくあるご質問

確認しなかったらどうなるか? という問いなのに、答えていない。

本来ならばこう書くべきところだ。


フィンガープリントを確認していない自己署名証明書は、偽物である可能性を 否定できません。まだ安全性を確保できていない通信路上で入手したものは、 通信中にデータが改竄されている可能性が否定できないためです。偽の自己署 名証明書をルート認証機関としてインストールしてしまうと、あなたのコンピュー タは様々な危険にさらされることになります。たとえば、フィッシング詐欺に 騙されやすくなったり、トロイの木馬を実行してしまいやすくなったり、 偽の電子申請システムに情報を送信してしまったり、通信データを盗聴される などの危険性があります。

フィンガープリントが一致すれば、証明書が正しく入手できているという確認 ができます。国土交通省では、申請者の方と国土交通省の間の安全な通信のた めにこの証明書を用いていますので、証明書が偽物でないかを確認するために、 必ず「フィンガープリント」の値をご確認ください。


自分で用意した設問だろうに、どうして自分で答えられないのか、 まったく理解に苦しむ。

*1 同様の問題は Acrobat Readerなどにも存在するが、こちらは解決されていない。首相官邸の「新着情報」の ページなどのように、Acrobat Readerのインストールが必要だとしている 官公庁は多いが、Acrobat Readerに脆弱性が発覚したときに、それらのサイト がその情報を閲覧者に周知するといったことは行われていない。

*2 「承諾」ステップが存在する、 署名付きアプレットの場合には、脆弱性があろうとなかろうと、どのみち、 身元不明なアプレットの実行を承諾しないようにしないといけないわけで、 脆弱性が見つかったから承諾しないようにというのも、それまた頓珍漢な 話だ。もしかして、そのことすらこの人たちは理解していないのではないかと さえ思えてくる。そう考えると、信頼されていない証明書だと警告が出ている にもかかわらず「はい」を押させる彼らの神経も理解できる。

*3 法律の文章によくあるように、and なのか or なのか が不明だという点も興味深い。おそらく and のつもりなのだろうが。

本日のTrackBacks(全1件) [TrackBack URL: http://takagi-hiromitsu.jp/diary/tb.rb/20050219]
きまぐれ日記 (2005年02月21日 09:04)

この手の変やなつは確かによく見かける。というか、FAQなんぞにキーワードや手がかりなしに気ままな質問文を並べ立てられても探しにくい。それよりも、FAQはFAQで必要だけれども、そもそも本文で説明されていてしかるべきことを、FAQにしか書いてないサイトが多すぎる気が..

検索

<前の日記(2005年02月18日) 次の日記(2005年02月20日)> 最新 編集

最近のタイトル

2024年03月23日

2024年03月19日

2024年03月16日

2024年03月13日

2024年03月11日

2023年03月27日

2022年12月30日

2022年12月25日

2022年06月09日

2022年04月01日

2022年01月19日

2021年12月26日

2021年10月06日

2021年08月23日

2021年07月12日

2020年09月14日

2020年08月01日

2019年10月05日

2019年08月03日

2019年07月08日

2019年06月25日

2019年06月09日

2019年05月19日

2019年05月12日

2019年03月19日

2019年03月16日

2019年03月09日

2019年03月07日

2019年02月19日

2019年02月11日

2018年12月26日

2018年10月31日

2018年06月17日

2018年06月10日

2018年05月19日

2018年05月04日

2018年03月07日

2017年12月29日

2017年10月29日

2017年10月22日

2017年07月22日

2017年06月04日

2017年05月13日

2017年05月05日

2017年04月08日

2017年03月10日

2017年03月05日

2017年02月18日

2017年01月08日

2017年01月04日

2016年12月30日

2016年12月04日

2016年11月29日

2016年11月23日

2016年11月05日

2016年10月25日

2016年10月10日

2016年08月23日

2016年07月23日

2016年07月16日

2016年07月02日

2016年06月12日

2016年06月03日

2016年04月23日

2016年04月06日

2016年03月27日

2016年03月14日

2016年03月06日

2016年02月24日

2016年02月20日

2016年02月11日

2016年02月05日

2016年01月31日

2015年12月12日

2015年12月06日

2015年11月23日

2015年11月21日

2015年11月07日

2015年10月20日

2015年07月02日

2015年06月14日

2015年03月15日

2015年03月10日

2015年03月08日

2015年01月05日

2014年12月27日

2014年11月12日

2014年09月07日

2014年07月18日

2014年04月23日

2014年04月22日

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|
<前の日記(2005年02月18日) 次の日記(2005年02月20日)> 最新 編集