「セキュアブート(Secure Boot)」とは、UEFIと同時に用いられる、システムのブートコード領域を保護するための機能だ。ブートコードを改ざんしてシステムを乗っ取るようなタイプのウイルスなどの活動を防ぐためのものである。セキュアブート機能を持つシステムでWindows 8/8.1(およびWindows Server 2012/R2)を利用すればこの機能が自動的に有効になる。ただし必須ハードウェア要件ではないので、利用できないシステムもあるが、可能なら有効にしておきたい。
セキュアブートが有効なシステムでは、ファームウェアやブートコード、OSカーネル、デバイスドライバーなどが改ざんされていないかどうかをブートの各シーケンスに沿って順に検証され、検証をパスしたものだけが実行される。各コードにはその出自を表す証明書が付けられており、正しい証明書を持ったコードだけが実行できるようになっている。
64bit版のWindows 8.1をUEFIモードでインストールした場合、UEFIのセキュアブートの機能が利用できるなら、自動的にそれを利用するようになっている。セキュアブートが有効になっていれば、前掲のmsinfo32コマンドの結果に「セキュア ブートの状態 有効」と表示される。
セキュアブートを利用するためにユーザーが行うべき作業は特にない。ファームウェア設定画面でUEFIとセキュアブートの機能を有効にしておけば、Windows 8.1が自動的にそれを検出して利用するからだ。セキュリティのための機能を提供するTPMチップがないシステムでもセキュアブートは利用できる。ただしUEFIの機能拡張として実装されているため、その利用にはUEFIモードでインストールされているWindows 8/8.1やWindows Server 2012/Windows Server 2012 R2などのOSが必要となる。
セキュアブートが有効になっているシステムに対して、違反となるような操作を行ったり、セキュアブートに対応していないOS(Windows 7など)をインストール(起動)しようとすると、その実行が阻止される。その場合にどのような状態になるかはシステムや状態に依存する。例えばブートセクターの内容を変更するような操作を行うと、次のようなメッセージを表示され、操作がブロックされる。
またセキュアブート非対応の起動メディアでシステムを起動しようとすると、次のようなメッセージが表示され、実行できない。これは、64bit版のWindows 7をセキュアブートが有効なシステムへ追加でインストールさせようとした場合の画面例である。
このような場合は、ファームウェア設定画面を呼び出して一時的にセキュアブートを無効にする。セキュアブート対応OSと非対応のOSを時々切り替えて使う、というようなシステムなら、ずっと無効にしておく(Windows 8を使うときだけオンに切り替える、というような使い方は想定されていない)。設定画面の呼び出し方法については先の説明を参照していただきたい。
なお、手動で無効にすればセキュアブート非対応のOSでもインストールできることから分かるように、これはあくまでも不正なプログラムがブートセクターを書き換えたりするのを防ぐ機能である。セキュアブート非対応のOS(Windows 8よりも前のWindows OSやLinuxなど)を利用できないようにする機能ではないし、ブートシーケンスが終わった後のシステムを保護するものでもない。BIOSの設定画面にアクセスできるユーザーならば、容易に設定を変更してシステム内部にアクセスしたり、新しいOSをインストールしたりできる。これらを防ぎたいなら、例えばファームウェア設定画面でパスワードをセットしておいたり、BitLockerのような暗号化システムと組み合わせるなどの、従来通りの手法が必要となる。
今回はWindows 8.1におけるUEFIとセキュアブートのサポートについて見てきた。最近ではUEFIを採用したシステムが広く普及している。Windows 8の高速な起動やシャットダウンなどの能力を生かすためには、ぜひUEFIを有効にして活用したい。特にSSDなどの高速なデバイスと組み合わせると、以前のWindows XPやWindow 7などとは比較にならないくらい高速に起動し、快適に利用できるだろう。
Copyright© Digital Advantage Corp. All Rights Reserved.