特集

セキュアブート証明書の期限切れ、簡単にチェックする方法

Windows セキュリティのセキュアブート項目

 Microsoftのセキュアブート証明書が6月から10月にかけて期限切れとなる問題が注目を集めている。これまで弊誌でも何度か記事で紹介しているが、Windows環境の場合セキュアブート証明書はWindows Update経由で配布されるため、気づかないうちに更新されることが多い。また、一部デバイスでは互換性の問題で、まだ提供されていない場合もある。状況が複雑なため、自分が使っているPCのセキュアブート証明書がどのような状態なのか、把握していないユーザーも多いだろう。

 このたびMicrosoftが6月29日に公開したドキュメントで、自分が使っているPCのセキュアブート証明書の状態を簡単に把握できる方法が明らかとなった。その方法とは、「Windows セキュリティ」と呼ばれるアプリの「デバイス セキュリティ」タブを参照するものだ。

 デバイス セキュリティでは、「コア分離」や「セキュリティ プロセッサ」といった項目に続いて「セキュア ブート」という項目がある。ここでセキュアブート証明書の状態も確認できるようになっている。

 たとえば編集部の最新PCでは「セキュア ブートがオンになっており、必要なすべての証明書の更新が適用されました。これ以上の証明書の変更は必要ありません」と表示される。つまり、この環境ではセキュアブート証明書の期限切れ問題がないということだ。

 一方、ちょっと古くしばらく放置して更新していなかったPCの場合、Windows 25H2および6月のセキュリティパッチを当てた後でも、「セキュア ブートはオンになっていますが、デバイスは古いブート信頼構成を使用しており、サービス可能な状態を維持するために更新する必要があります」と表示された。この環境ですぐにWindows Update経由で証明書がインストールされることはなかったが、しばらく使っていればそのうちインストールされる可能性が大だ。

KEK/DB/DBXの更新がこれから自動で行なわれるであろうパターン

 編集部の環境は上記の2通りしかなかったが、Microsoftのドキュメントではこのほかに2パターンあることが明らかとなっている。

 1つ目は既知の問題で、セキュアブート証明書をインストールする前に、OEMもしくはPCメーカーからファームウェアのアップデートを入手する必要があるが、標準のアップデートチャネルを通してファームウェアが提供される見込みがあり、そのあとに新セキュアブート証明書がインストールされるもの。

既知の問題を抱えているグループでは、ファームウェア更新を含めて自動的に行なわれ、更新される見込みがある

 2つ目は、同様にファームウェアの更新が必要なものの、OEMやPCメーカーによるサポートが終了しているか、そもそもアップデートを提供できない、あるいは自動適用できないパターンだ。この場合はメーカーのページを確認してファームウェアの手動更新があるかどうかをチェックするか、諦めるしかないだろう。

セキュアブートがオンだが、自動更新はできず、手動更新もしくはそもそもできないパターン

そもそもセキュアブート証明書の期限の問題とは

 最後に、改めてなぜセキュアブート証明書の期限切れが問題になっているのか整理したい。

 セキュアブート証明書は、OSのブートローダーがウイルスなどによって改ざんされていないかどうかをチェックするためのもの。現実世界でたとえるならば、セキュアブート証明書はドアの「錠」に相当するもので、改ざんされていないブートローダーは正しい「鍵(=署名)」を持ってその錠を解錠してOSを起動する。

 そしてその錠には、セキュアブート署名データベース「DB(Authorized Signature Database)」と、セキュアブート失効署名データベース「DBX(Forbidden Signature Database)」の2種類がある。DBは「正しい署名であれば解錠できるもの」で、DBXは「たとえブートローダーが正しい署名を持っていても、悪用が確認されたため通さないようにする署名のブラックリスト」である。

 以降はややこしいのでざっくり説明すると、DBに登録されている古い署名と新しいブートローダーの新しい署名の組み合わせでは起動できないし、古い署名がDBXに登録されてしまうと、古いブートローダーも起動できない。

ブートローダーの署名DB証明書DBX証明書ブートの可否備考
新署名新署名登録されていない目指すべきところ
新署名旧署名登録されていないあるべきではない状態
旧署名新署名登録されていないあるべきではない状態
旧署名旧署名登録されているあるべきではない状態だが、予定はある(時期未定)
旧署名旧署名登録されていない更新できなければこちらだが、脆弱性を抱える

 ともあれ、脆弱性を回避しつつOSをブートさせるためには、DBとDBXの更新が必要となるわけだが、この更新にはKEK(Key Exchange Key)と呼ばれる別の証明書が必要であり、このKEKが6月に期限を迎えたのだ。

 KEKもDBもDBXもMicrosoftが管理しているため、Windows Update経由で順次更新すればよいわけだが、ややこしいことに、KEKを更新するためには最上位の「PK(Platform Key)」が別途必要で、これはOEM/PCメーカーがファームウェア内で署名しているものなのだ。よって、サポートが終了しているPCや、何らかの理由や制限で更新できない場合、KEKもDBもDBXも古いままとなる。

 とはいえ、上の表にも記しているが、「旧署名のDBと旧署名のブートローダー」の組み合わせで問題になるのは脆弱性だ。「新署名のDBと旧署名のブートローダー」、「旧署名のDBと新署名のブートローダー」、「旧署名が登録されたDBXと旧署名のブートローダー」の3パターンは、いずれもPCが起動不能になる“脆弱性以上の最悪のパターン”であり、Microsoftとしてはなんとしてもこの事態を避けようとするだろう(DBXに旧署名が登録されるのは時間の問題ではあるのだが)。

 よって、ユーザーとしては深く考えずに、ひとまずWindows セキュリティでセキュアブートの状態を確認し、先述の最後のパターン――つまりPCメーカーのサポートが終了しており、ファームウェアの更新の可能性がなく、KEK/DB/DBXを更新できる見込みがない――が表示された場合にのみ、セキュリティに細心の注意を払いつつ、PCの買い替えを考えるのが最善の策だ。