セキュアブートがWindows8および10でどのように機能するか、およびLinuxにとっての意味

最近のPCには、「セキュアブート」と呼ばれる機能が有効になっています。これはUEFIのプラットフォーム機能であり、従来のPCBIOSに代わるものです。PCメーカーが「Windows10」または「Windows8」のロゴステッカーをPCに貼り付けたい場合、Microsoftは、セキュアブートを有効にし、いくつかのガイドラインに従うことを要求しています。

残念ながら、Linuxディストリビューションをインストールすることもできず、非常に面倒な場合があります。

セキュアブートがPCのブートプロセスを保護する方法

セキュアブートは、Linuxの実行をより困難にするように設計されているだけではありません。セキュアブートを有効にすることには実際のセキュリティ上の利点があり、Linuxユーザーでもその恩恵を受けることができます。

従来のBIOSはすべてのソフトウェアを起動します。PCを起動すると、構成した起動順序に従ってハードウェアデバイスがチェックされ、それらからの起動が試行されます。通常のPCは、通常、Windowsブートローダーを見つけて起動します。これにより、完全なWindowsオペレーティングシステムが起動します。Linuxを使用している場合、BIOSはほとんどのLinuxディストリビューションで使用されているGRUBブートローダーを見つけて起動します。

ただし、ルートキットなどのマルウェアがブートローダーを置き換える可能性があります。ルートキットは、何も問題がないことを示すことなく通常のオペレーティングシステムをロードし、システム上で完全に見えず、検出されないままにすることができます。BIOSは、マルウェアと信頼できるブートローダーの違いを認識していません。検出したものをすべて起動するだけです。

セキュアブートはこれを阻止するように設計されています。Windows8および10PCには、UEFIに保存されているMicrosoftの証明書が付属しています。UEFIは、起動する前にブートローダーをチェックし、Microsoftによって署名されていることを確認します。ルートキットまたは別のマルウェアがブートローダーを置き換えたり、改ざんしたりした場合、UEFIはブートローダーを許可しません。これにより、マルウェアがブートプロセスを乗っ取って、オペレーティングシステムから自分自身を隠すのを防ぎます。

マイクロソフトがLinuxディストリビューションをセキュアブートで起動する方法

この機能は、理論的には、マルウェアから保護するために設計されています。したがって、Microsoftは、とにかくLinuxディストリビューションの起動を支援する方法を提供しています。そのため、UbuntuやFedoraなどの一部の最新のLinuxディストリビューションは、セキュアブートが有効になっている場合でも、最新のPCで「正常に機能」します。Linuxディストリビューションは、Microsoft Sysdevポータルにアクセスするために99ドルの一時料金を支払うことができ、そこでブートローダーの署名を申請できます。

Linuxディストリビューションには、通常、「シム」が署名されています。シムは、LinuxディストリビューションのメインGRUBブートローダーを起動するだけの小さなブートローダーです。Microsoftが署名したshimは、Linuxディストリビューションによって署名されたブートローダーが起動していることを確認し、Linuxディストリビューションが正常に起動します。

Ubuntu、Fedora、Red Hat Enterprise Linux、およびopenSUSEは現在、セキュアブートをサポートしており、最新のハードウェアを調整することなく動作します。他にもあるかもしれませんが、これらは私たちが知っているものです。一部のLinuxディストリビューションは、Microsoftによる署名の申請に哲学的に反対しています。

セキュアブートを無効化または制御する方法

セキュアブートがすべて実行した場合、Microsoftが承認していないオペレーティングシステムをPCで実行することはできません。ただし、古いPCのBIOSと同様に、PCのUEFIファームウェアからセキュアブートを制御できる可能性があります。

セキュアブートを制御する方法は2つあります。最も簡単な方法は、UEFIファームウェアにアクセスして完全に無効にすることです。 UEFIファームウェアは、署名されたブートローダーを実行していることを確認せず、何でも起動します。 Linuxディストリビューションを起動したり、セキュアブートをサポートしていないWindows7をインストールしたりすることもできます。 Windows 8および10は正常に動作しますが、セキュアブートでブートプロセスを保護することによるセキュリティ上の利点が失われるだけです。

セキュアブートをさらにカスタマイズすることもできます。SecureBootが提供する署名証明書を制御できます。新しい証明書のインストールと既存の証明書の削除の両方を自由に行うことができます。たとえば、PCでLinuxを実行している組織は、Microsoftの証明書を削除し、代わりに組織独自の証明書をインストールすることを選択できます。これらのPCは、その特定の組織によって承認および署名されたブートローダーのみを起動します。

個人もこれを行うことができます。独自のLinuxブートローダーに署名して、自分でコンパイルして署名したブートローダーのみをPCが起動できるようにすることができます。これが、セキュアブートが提供する制御とパワーの一種です。

マイクロソフトがPCメーカーに要求するもの

マイクロソフトは、PCベンダーがPCに「Windows10」または「Windows8」の認定ステッカーを貼る必要がある場合に、セキュアブートを有効にすることを要求するだけではありません。Microsoftは、PCメーカーが特定の方法でそれを実装することを要求しています。

Windows 8 PCの場合、製造元はセキュアブートをオフにする方法を提供する必要がありました。マイクロソフトは、PCメーカーにセキュアブートキルスイッチをユーザーの手に渡すように要求しました。

Windows 10 PCの場合、これは必須ではなくなりました。PCメーカーは、セキュアブートを有効にすることを選択できますが、ユーザーにそれをオフにする方法を提供しません。ただし、実際にこれを行っているPCメーカーはありません。

同様に、PCメーカーは、Windowsを起動できるように、Microsoftのメインの「MicrosoftWindows Production PCA」キーを含める必要がありますが、「Microsoft CorporationUEFICA」キーを含める必要はありません。この2番目のキーは推奨されるだけです。これは、MicrosoftがLinuxブートローダーに署名するために使用する2番目のオプションのキーです。Ubuntuのドキュメントはこれを説明しています。

つまり、すべてのPCが、セキュアブートをオンにして署名済みのLinuxディストリビューションを起動する必要はありません。繰り返しますが、実際には、これを実行したPCは見たことがありません。おそらく、Linuxをインストールできないラップトップの唯一のラインを作りたいと思っているPCメーカーはないでしょう。

少なくとも今のところ、主流のWindows PCでは、必要に応じてセキュアブートを無効にでき、セキュアブートを無効にしなくても、Microsoftによって署名されたLinuxディストリビューションを起動する必要があります。

Windows RTでセキュアブートを無効にできませんでしたが、WindowsRTは機能していません

関連:Windows RTとは何ですか?Windows8とはどのように異なりますか?

上記のすべては、標準のIntelx86ハードウェア上の標準のWindows8および10オペレーティングシステムに当てはまります。ARMでは異なります。

Windows RT(MicrosoftのSurfaceRTおよびSurface2に同梱されていたARMハードウェア用のWindows8のバージョン)では、セキュアブートを無効にできませんでした。現在でも、Windows 10 Mobileハードウェア、つまりWindows10を実行している電話でセキュアブートを無効にすることはできません。

これは、MicrosoftがARMベースのWindowsRTシステムをPCではなく「デバイス」と見なしてほしいと考えていたためです。MicrosoftがMozillaに語ったように、WindowsRTは「もはやWindowsではありません」。

ただし、WindowsRTは現在機能していません。ARMハードウェア用のWindows10デスクトップオペレーティングシステムのバージョンはないので、これはもう心配する必要はありません。ただし、MicrosoftがWindows RT 10ハードウェアを復活させた場合、そのハードウェアでセキュアブートを無効にできない可能性があります。

画像クレジット:ジョン・ブリストウ大使基地