笠原一輝のユビキタス情報局
Windows 11はなぜTPMが必要で、CPU制限が厳しいのか? その理由を詳しく説明
2021年6月30日 11:21
Windows 11 Insider Previewの公開が始まった。既に実際に導入したという方も多いだろう。そして、Windows 10ユーザーにとっての大きな関心事となっていた、どの世代のCPUであればWindows 11へアップグレードできるのかについても大きな動きがあった。
以下の関連記事で紹介されている通り、Microsoftは、当初よりIntelとAMDそれぞれ1世代ずつ古いCPUまでサポートすることにして、Intelなら第7世代Core以降、AMDなら初代Ryzen(厳密にはZenアーキテクチャのCPU)以降に対応すると発表した。
Microsoftはその発表内容の中で、ハードウェアの基準を高くした理由について、「より高次元のセキュリティへの対応」、「ドライバの安定性」、そして「アプリケーションの互換性の維持」という3つを挙げている。その説明をよく読んでいくと、今回ハードウェアの基準を上げたのは、それらの理由のうち、特にセキュリティを高めるためであることが見えてきた。
混乱があったWindows 11にアップグレードできるCPU、製品版では要件を第7世代Core/Zen1に緩和
大きな話題になったWindows 11の要件。以下の前回の連載記事で説明したように、当初Microsoftが、Intelであれば第8世代Core以降、AMDであればRyzen 2000シリーズ以降という要件があることについて、大きな声で伝えていなかったこともあり、ちょっとした混乱があった。
だが、Microsoftがユーザーの不安を察したのか、Windows 11 Insider Previewのリリースに合わせて、このやや厳しめなCPUの要件を緩和してきた。具体的には、足切りの基準をIntel、AMDそれぞれ1世代前のCPUとなる第7世代Core、初代Ryzenに緩和すると明らかにしたのだ。そのほかの条件、TPMやセキュアブートなどの要件はこれまでと変わらず適用される。
【表】Windows 11のGA版におけるハードウェア要件 | |
---|---|
プロセッサ | 1GHz以上で2コア以上の64bit互換プロセッサまたはSoC (Intelなら第7世代Core以降、AMDなら初代Ryzen以降) |
メモリ | 4GB以上 |
ストレージ | 64GB以上 |
システムファームウェア | セキュアブート対応 |
TPM | TPM 2.0 |
ビデオカード | DirectX 12以上(WDDM 2.0に対応) |
ディスプレイ | 9型以上で8bitカラーの720pディスプレイ以上 |
この新しい要件はWindows 11がGA(General Availability、一般提供のこと)になった時に適用されるものだ。
Insider Previewに関しては、Devチャネルとベータチャネルを利用しているユーザーで、6月24日までに一度でもWindows Insiderに登録したことがあるMicrosoftアカウントや企業/学校アカウントには、CPUとTPMの要件は例外的に緩和される。
なお、この緩和はあくまでInsider Previewの間だけで、Release PreviewやGA以降は現在MicrosoftがWebサイトで公開している基準が適用される見通しだ。
米国時間6月24日の発表から、数日でこうした対策を打ってきたのは巨大企業であるMicrosoftにしてはとても速い動きで、それだけMicrosoftが予想していたよりも反応が大きく、やれるだけのことをやったということなのだろう。
CPUへの要件が厳しいのは、VBS/HVCIなどのセキュリティの強化に最新のCPUが必要だから
このInsider Preview版の公開と同時にMicrosoftは製品版での基準を緩めることを発表したが、同時に、なぜこうしたやや厳しめなハードウェア要件が必要なのかを同社のブログで説明した(英文)。
それによれば、Windows 11でハードウェアの要件を厳しくしている理由は3つあるという。
- (1)セキュリティ強化にともないVBS/HVCIを有効化する新しいハードウェアが必要
- (2)OSの安定性のためWindows Driver Modelへの対応が必要
- (3)アプリケーションの互換性の維持
(2)と(3)に関しては安定性や後方互換性のために必要という話で、どの世代のOSのバージョンアップでも必ず求められることだ。実のところハードウェアの世代にはあまり関係がない。ここで重要になってくるのが(1)のVBSとHVCIの2つだ。
VBSとは、Virtualization-Based Securityの略で、日本語では「仮想化ベースのセキュリティ」となり、Windowsに標準搭載されているHyper-Vを利用してセキュリティを高める仕組みになる。
仮想化技術には、OSの上にアプリケーションとして実行する仮想化ソフトウェア(Type2ハイパーバイザーと呼ばれることもある、Windowsで言えばVirtual PCやVMware Playerなどのこと)と、全てのOSがその上で動作するハイパーバイザー(ベアメタル・ハイパーバイザーなどと呼ばれる)の2種類がある。
Hyper-Vは後者のより高度な仮想化ソフトウェアで、Windows 10/11には標準で搭載されている。
VBSではこのHyper-Vを利用し、OSのより重要な部分となるVSM(Virtual Secure Module)と通常のWindows OSに分離して実行する。
そして、そのVSMを起動する時に、ドライバやOSのコードなどがきちんと署名されていて、安全かどうかをチェックする仕組みであるHVCI(Hypervisor-Enforced Code Integrity、ハイパーバイザーによるコードの整合性の強制)を利用することで、OSの重要な部分を安全に起動できる。
2つのVMはそれぞれ異なるメモリ空間で動作しており、通常のWindows OSにマルウェアが入り込んでも、VSMで守られているカーネルなどに侵入するのは格段に難しくなる。言い換えれば、セキュリティが大幅に向上するということだ。Microsoftは前述のブログの中でVBSとHVCIを有効にすることで、マルウェアの攻撃を60%も排除できると説明している。
このVBSとHVCIは、Windows 10の初期ビルドでは搭載されていなかったが、途中のビルドからサポートされるようになった。現在でもWindows 10では標準で有効化されておらず、ユーザーが明示的にオンにしたときだけ機能するようになっている。
ただし、OEMメーカーの選択次第で、この機能を有効にして出荷することもできる。実際、Microsoftは自社デバイスであるSurfaceシリーズでは、Surface Laptop 3/4、Surface Pro 7+、Surface Pro Xなどで有効にして出荷している。
後述するハードウェアが要件を満たしていて、デバイスドライバなどがHVCIに全て対応していれば、Windows 10でもVBSを有効化可能だ。具体的には、Windowsセキュリティで「デバイスセキュリティ-コア分離の詳細」と選んで表示される「メモリ整合性」をオンにすることで、VBSとHVCIを有効にできる。
HVCIを実用的に利用するには第7世代Core以降、Zen 2アーキテクチャ以降のCPUが必要に
Windows 11では、このVBSとHVCIが標準で有効にされる計画だ。既に述べた通り、それによりセキュリティは高まり、マルウェアなどに対する防御力はVBSやHVCIが有効になっていないWindows 10と比べて大幅に高まる。
しかし、そのトレードオフとして、VBSとHVCIを有効にするために、ハードウェアの要件が厳しくなる。
これらの機能をサポートするには、最低限IntelのVTやAMDのAMD-Vといった仮想化アクセラレーション機能が必須となるほか、VTやAMD-Vの拡張命令となるSLAT(Second Level Address Translation)などに対応している必要がある。
このほか、VT-dやAMD-ViなどのI/O仮想化、TPM 2.0への対応(単体/CPU内蔵問わず)、UEFIメモリレポートへの対応、さらにはHVCIに対応したデバイスドライバなどが必要になる(詳しくはMicrosoftのWebサイト「仮想化ベースのセキュリティ(VBS)」を参照)。今ホットな話題になっているTPM 2.0は、このVBSのためにも必要なのだ。
さらに、HVCIに対応するためには、MBEC(Mode-Based Execute Control)と呼ばれる仮想化技術の拡張命令への対応が奨励されている。
具体的には、ハイパーバイザーがコードの正常性を確認する時に、CPUがこのMBECに対応しているとより高速に行なえる。Intelなら、「MBEC」(Mode-based execute control for EPT)、AMDなら「GMET」(Guest Mode Execute Trap)、QualcommならArmの「TTS2UXN」(Translation table stage 2 Unprivileged Execute-never)と呼ばれている。
CPUがこれらに対応していれば、HVCIを有効にしていても性能低下はほとんどないが、これが有効ではない場合にはCPU負荷が増えて性能が低下する可能性がある。
IntelのCPUでMBECに対応しているのが第7世代Core(Kaby Lake)以降であり、AMDのCPUで言えばZen 2アーキテクチャを搭載したCPU以降なのだ。
これらがWindows 11に厳しい要件を設定している理由だと考えられる。Microsoftの言う通り、VBS/HVCIを有効にするには、確かに新しい世代のCPUが必要なのだ。
セキュリティの強化を取るか、ユーザーの「アップグレードを」という声に配慮するか、Microsoftにとっても難しい選択
こうして見ていくと、Microsoftの引いた線もそれなりに根拠があることが分かる。
そしてHVCIに対応するために必要なMBECに対応するCPUが第7世代Core以降なので、そこまでサポートするCPUを拡張するというのは論理的だ。
ただ、AMD側のAMD-VのGMETへの対応はZen 2世代以降となるので、初代Zenへの拡張はそこからはみ出すということになる。ZenアーキテクチャのCPUでHVCIを有効にした場合には当然性能の低下はあるだろうが、そこは割り切ってということなのだろう。
今回の騒動は、Microsoftがセキュリティ強化のトレードオフをきちんと説明しないで、いきなり古いハードウェアを切り捨てますとやってしまったのが、騒動の失敗の本質と言えるだろう。
ユーザーにすれば、VBSやHVCIに対応することは、PCの安全性が高まるという観点でメリットは大きい。そのメリットとトレードオフであるならば、古いハードウェアはサポートされないというのもある程度は納得がいくだろう。
もちろん非対応のハードウェアを使っているユーザーは不満を持つ。強化されたセキュリティ機能や性能の低下があってもいいからWindows 11を使いたいというユーザーの声に対し、Microsoftがどこまで応えるのか、Windows 11のリリースまで悩ましい時期が続くことになる。