笠原一輝のユビキタス情報局

Windows 11はなぜTPMが必要で、CPU制限が厳しいのか? その理由を詳しく説明

Windows 11 Insider Previewの画面、Surface Pro Xに導入している

 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にバージョンアップされたPC

 大きな話題になった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以上
システムファームウェアセキュアブート対応
TPMTPM 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が必要だから

Windows 10のシステム情報でVBS(仮想化ベースのセキュリティ)/HVCI(ハイパーバイザーによるコードの整合性の強制)が有効になっているところ(システム情報=msinfo32.exeで確認できる)

 この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などで有効にして出荷している。

Windows 10でのWindowsセキュリティのコア分離をオンにするとVBSなどが有効になる

 後述するハードウェアが要件を満たしていて、デバイスドライバなどがHVCIに全て対応していれば、Windows 10でもVBSを有効化可能だ。具体的には、Windowsセキュリティで「デバイスセキュリティ-コア分離の詳細」と選んで表示される「メモリ整合性」をオンにすることで、VBSとHVCIを有効にできる。

HVCIを実用的に利用するには第7世代Core以降、Zen 2アーキテクチャ以降のCPUが必要に

Windows 11デバイスでのシステム情報、対応しているハードウェアでは標準でVBS(仮想化ベースのセキュリティ)/HVCI(ハイパーバイザーによるコードの整合性の強制)が有効になる。

 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のリリースまで悩ましい時期が続くことになる。