2012-07-10

セキュアブート時代の汎用コンピューターの確保方法

Windows 8のリリースが間近に迫り、我々の汎用コンピューターの入手に危機が迫ってきた。セキュアブートという危機である。もし、読者が汎用コンピューター、すなわち利用者の自由に動くコンピューターを入手したいと思うならば、以下の忠告に従うべきである。

まず、いま実働するハードウェアは、どんなに昔のものであろうとも、必ず保存しなければならない。なぜならば、それが入手可能な最後の汎用コンピューターかもしれないからだ。

セキュアブートは、技術的には悪くない。ただし、問題は認証局が、事実上Microsoftのみということだ。私のようにMicrosoftを信用しない利用者は、当然Microsoftキーによって署名されたソフトウェアは信頼しない。すなわち、セキュアブートはデフォルトでは信用できないという事になる。

セキュアブートでは、ハードウェアにデフォルトでインストールされている公開鍵がある。この公開鍵は、ハードウェアベンダー独自のものと、それからMicrosoftのキーである。セキュアブートの規格上は、デフォルトのキーも含めて、キーを無効化できるとある。つまり、MSキーを無効化すれば、そのハードウェアは不自由なMicrosoft Windowsを含めた、Microsoftによって認証されたソフトウェアを実行しなくなる。これは素晴らしいことだ。もし、話がこの通りに進めば、だが。

セキュアブートの規格上は、セキュアブート機能を無効化できるとある。セキュアブートを無効化すれば、従来の、すなわち今使っているハードウェアと全く同じ動作をする。これは素晴らしいことだ。もし、話がこの通りに進めば、だが。

多くのハードウェアにはバグがある。特に、マザーボードはバグの宝庫である。多くのマザーボードのハードウェアベンダーは、不自由なMicrosoft Windowsが正しく動作することを一番の目的としており、それ以外のOSの動作は保証していない。もちろん、マザーボードは規格に従って作られているのだが、多くのマザーボードは、規格違反な挙動をする。たまたま、Windowsがその規格違反な挙動でも動作するために、不具合は見落とされているのだ。本来ならば、このような規格違反のハードウェアはリコールされてしかるべきだが、残念ながら市場の圧力はそこまで強くない。そもそも、大抵のハードウェアには規格違反の挙動があり、ソフトウェア側で対処されているのが現状だ。対処不可能な深刻な不具合はリコールされる。例えば、Pentiumの浮動小数点数バグやCougar PointのSATAバグなどだ。

さて、セキュアブートにキーを追加することや、無効化することは、規格上定められている。しかし、一体どのようにして行うのかということは、規格化されていない。そのため、ベンダー各社ともてんでバラバラの実装をするだろう。しかも、まともにテストされないことも予想される。彼らの主目的は不自由なWindowsの動作であって、たまたまWindowsが動作している規格違反は、見逃される。セキュアブートへのキーの追加や削除が本当に動くのか、無効化して本当に正しく動くのか。非常に怪しい。

そのため、我々がすることは、様子見だ。セキュアブートを実装していないハードウェア。これは従来のハードウェアと変わりがないので、使ってもよい。セキュアブートを実装しているハードウェア、これには注意が必要だ。正しく規格通りに、キーの追加削除、セキュアブート自体の無効化手段を提供しているかどうかを調べ、目的とするOSが正しく動作するかどうかの報告を待ってから、使うべきだ。さもなければ、ハードウェアの奴隷になってしまう。

Microsoftを信用しない我々がセキュアブートを使う方法は二つある。まず簡単なのは、無効化してしまうこと。これにより、従来のハードウェアと変わりのない動作をするはずだ。もし無効化機能が不具合無く実装されていればの話だが。もうひとつは、Microsoftのキーを無効化した上で、自分の信頼するキー、あるいは自前のキーをハードウェアにインストールし、そのキーで署名されたOSをインストールすることだ。これも、正しく実装されていれば可能だ。

第一、「セキュアブート」という名称はけしからん。なにか、それ自体がセキュアであるかのうような誤った印象を与える。セキュアブートが実際にやっているのは、未署名のコードの実行拒否と、署名されてから利用者の手元に届くまで、改変されていないということを示すだけである。もちろん、これは認証局を信用しなければ成り立たない。しかし、Microsoftを信用しない我々にとって、もとよりこれはセキュアではない。

セキュアブートは技術的には悪くないが、残念ながら、その実装は、Microsoftを唯一の認証局を崇めるものになっている。

No comments:

Post a Comment

You can use some HTML elements, such as <b>, <i>, <a>, also, some characters need to be entity referenced such as <, > and & Your comment may need to be confirmed by blog author. Your comment will be published under GFDL 1.3 or later license with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.