信頼できるオンデマンド・サービス
 |
| 著者の丸山 宏氏 |
信頼できるオンデマンド・サービスはどのようなものでしょうか? それにはいろいろな要因が考えられます。まず、このオンデマンド・サービスを提供している会社に対する様々なレベルの信頼があります。また、サービスの品質に関する様々な契約事項を確認しなければなりません。さらに、サービスに接続するためのプロトコルに、SSLやWS-Securityなど、どのような認証や暗号化の仕組みが提供されているかも重要なポイントです。
しかし、これらのすべては、このオンデマンド・サービスを提供するインフラストラクチャがセキュアに保たれていない限り、意味をなさないものになってしまいます。もし、オンデマンド・サービスを提供するインフラストラクチャに脆弱性があるのならば、そのインフラストラクチャを利用しているすべてのサービスに対する信頼が崩れるからです。
従って、オンデマンド・サービスを利用する前に、サービスの提供会社がしっかりした情報セキュリティマネジメントの手順を持ち、決められたポリシーに基づいてシステムの管理がなされていることを確認する必要があります。これらの事項も、サービス品質契約の中に当然含まれているべきものです。
しかしながら、今まで、オンデマンド・サービスの顧客が、現在接続しているサービスのインフラストラクチャに脆弱性が無いことを確認する技術的手段が存在していませんでした。たとえ、サービス品質契約の中に、高いセキュリティを確保するための運用ポリシーを謳っていたとしても、実際に接続中のサービスのインフラに問題があるのかないのかを知ることはできなかったのです。2003年4月に設立された業界標準団体「Trusted Computing Group (TCG)」はその状況を変えようとしています。
TCGのもたらすもの
TCGの技術は、「Trusted Platform Module 」(TPM)と呼ばれるハードウエア・チップの規格を中心にしています。このTPMには2つの機能があります。1つは、暗号化ハードウエアとしての機能です。
公開鍵暗号系は素晴らしいテクノロジですが、良く知られているように、秘密にしておくべき暗号鍵が盗まれてしまったら、そもそものセキュリティの前提がくずれてしまいます。もし、暗号鍵をハードディスクに入れているならば、この鍵のコピーが知らないうちに作成されているかもしれません。
従って、鍵のコピーができないように鍵をハードウエア・チップに中に閉じ込めてしまうことが有効です。もちろん、鍵を使えなければ意味がありませんから、鍵の使用そのものもチップの中で行います。すなわち、チップが、暗号アルゴリズムの回路も持っているということになります。これが、TPMの第1の機能です。よく知られているスマートカードによる暗号鍵トークンはこのような技術の1つと言えましょう。したがって、ここまでは特に目新しい技術とは言えません。
もう1つの機能は、ソフトウエアの完全性(Integrity)を計測し、報告する機能です。この機能を使うと、現在実行中のソフトウエアがどのようなものかを、遠隔地から正確に知ることができます。もちろん、複雑なソフトウエア・システムのすべての計測をハードウエアだけで行うのは、非常にコストが高くつくでしょうから、この計測は「ソフトウェアの助けを借りて」行うことになります。もしこの「計測を行うソフトウエア」が信頼できず、嘘をつくことがある可能性があったらどうでしょうか? TCGはこの問題を、「Trusted Bootstrap Sequence」というテクニックで、巧みに解いています。
まず、マシンがパワーオン、あるいはリセットされたときに実行される、最初の数十キロバイトのコードは書き換えができず、従って信頼できるものとします。このコードが次に実行されるコードの完全性を計測し、それをTPMチップに報告します。チップは、この値を任意の改ざんができないような方法で格納します。さらに、この計測されたコードが次のコードを計測し、チップに報告する、という形で、「信頼のチェーン」を作ります。この結果、マシンのブートストラップが終わった時点で、チップの中にはマシンのBIOS、OSローダー、OSカーネルに関する計測結果が残ることになります。
このマシンの計測結果を知りたい、オンデマンド・サービスの利用者はどうすればよいのでしょうか? 利用者は、このチップに対して直接コマンドを送ります。このコマンドに対して、チップは前述のソフトウエア計測値を、それに対するデジタル署名を付けて送り返します。その結果、利用者はそのプラットフォームでどのようなソフトウエアが動いているかを、正確に知ることができるのです。
IBMの取り組み
IBMはTCGの前身である「Trusted Computing Platform Alliance」 (TCPA)のころから、 このフォーラムのプロモータとして、常に大きな貢献をしてきました。IBMにとって一番大きな決断は、2002年4月以降発売されている事実上すべてのノートPC「ThinkPad」に、TCGチップを搭載したことです。これによって、少なくともハードウエア上では、 ThinkPadはTCGのすべての機能を利用できるようになりました。該当のThinkPadをお持ちの方は、IBMの「PCセキュリティ・ソリューションのページ」で、対応するソフトウエアをダウンロードすることができ ます。これによって、TPMの第1の機能、すなわち暗号鍵を安全にチップの中に格納 する機能が使えるようになります。例えばSSLの個人認証の鍵、Windowsのログインパスワード、それに「Lotus Notes」の認証鍵などです。
しかし、今のところ、Windowsの上ではTPMの第2の機能、すなわちソフトウエアの完全性を計測する機能は使えません。この機能が本当に役に立つためには、オペレーティング・システムのサポートが必要不可欠ですが、マイクロソフトがまだこの機能のサポートをWindowsに組み込んでいないからです。
私たち東京基礎研究所では、Windowsではなく、オープンソースのLinuxを使って、 Trusted Bootstrapを行うプラットフォームの試作を行っています。さらに、Linuxとして、「強制アクセス制御(Mandatory Access Control)ポリシー」、すなわち、ユーザーが勝手に変更できないアクセス制御ポリシーを可能にする、「SELinux」 (Security Enhanced Linux)を組み合わせています。
このプラットフォーム上で動くオンデマンド・サービスを考えて見ましょう。お客様は、TCGの仕組みによって、正確にどのようなOS(ここではSELinux)が動いているかを、細部のバージョンやアクセス制御ポリシーも含めて知ることができます。お客様は、この特定のプラットフォーム構成に、現在知られいてる脆弱性が無いことを、CERTやベンダーの情報を元に確認します。その結果、お客様はこのオンデマンド・サービスは、確かにセキュリティ上強固なプラットフォームで動いていることを知ることができ、安心してこのサービスを使えるようになるわけです。
TCGは著作権保護技術か?
TCGに対して欧米でよく聞かれる意見の一つに、TCGは著作権保護技術であるという誤解があります。確かに、TCGテクノロジをクライアント・プラットフォームに適用した場合、そのプラットフォームがよりセキュアになりますから、その意味では、著作権保護に役立つとも言えます。しかし、TCGはハードウェアに対する攻撃を全く想定していません。従って、ハードウェアの技術を持つ攻撃者が真剣に攻撃を行えば、コンテンツのコピーを行うことはたやすくできます。
一方、この記事で述べたように、TCGの技術が本当に意味をなすのは、オンデマンド・サービスを実行するインフラのような、サーバー・プラットフォームにおいてのことです。従って、TCGを著作権保護技術とみなすのはそのポテンシャルを大きく誤解することになるといえましょう。
おわりに
TCGの仕組みは複雑で、理解するのに時間がかかるかもしれません。かく言う私自身も、この仕組みがセキュアであることを納得するのに数か月もかかりました。しかし、この仕組みが、オンデマンド・コンピューティング、ひいてはインターネットの安全性に大きな影響を与えることは、疑問の余地がありません(少なくとも私の目からは)。今後の展開に是非ご注目ください。
(丸山 宏/日本IBM 東京基礎研究所シニア・テクニカル・スタッフ 兼 IBMビジネスコンサルティング・サービス テクニカル・コンサルタント)