セキュアブート証明書の2026年問題とは?

セキュアブートは、BIOS(UEFI)内の証明書であるDBを用いてOSブートローダの署名を検証することで、改ざんされたOSの起動を防ぐ仕組みである。

 

DBの更新は、より上位の証明書であるKEK(Key Exchange Key)によって署名された更新のみが許可される。さらに、KEKの更新は信頼の起点であるPlatform Key(PK)によって認証される。

これらの証明書はBIOS上のUEFIセキュア変数として格納され、UEFI Forumが定義したSecure BootのChain of Trustを構成する。

 

Platform Key(PK):PCメーカー、M/Bメーカーが設定
└ Key Exchange Key(KEK):Microsoft KEK CA 2011
└ DB:Microsoft Windows Production PCA 2011、UEFI CA 2011
└ Windows bootloader

          <証明書の階層構造(Chain of Trust)>

 

WindowsPCでは、Microsoftが2011年に発行したUEFI証明書が、KEKおよびDBに登録されている。これらの証明書は2026年6月から10月にかけて有効期限を迎えるため、新しい証明書への更新が必要となっている。

この証明書更新に適切に対応できないシステムは、将来的にSecure Boot環境で新しいOSやブートローダが起動できなくなる可能性がある。

この問題が「セキュアブート証明書の2026年問題」である。

どのようにアップデートされるか?

Windows Updateにより、KEKとDB、次いでブートローダが更新される。
既に2025年後半から更新データは配信済みであり、順次更新される計画である。
なので、比較的最近のPCなら気にしなくてもよい(既に更新されている場合もある)。
 
確実な確認方法ではないとおもうが、イベントビューアのWindowsログ>>システムで、イベントID:1801、ソース:TPM-WMIのエラーがここ2週以内にある場合、KEKを更新できない何らかの問題が起きている可能性がある。
 

なんで更新されないの??

一言で言うと、BIOSが問題を抱えているから。
「古いPC」および「まともでないメーカー製のPC/マザーボード」であるため。
要は、メーカーが製品をEOLとみなしているか、最初からサポートするつもりがない(売り逃げ)ために、KEKの更新プロセスのバグや、KEKを更新するためのPKに問題があるのに、BIOSが更新されず放置されているケースやね。。。
 
問題のあるPKというのが、『PKfail(CVE-2024-8105)』という、BIOSベンダーの提供するテスト用のPKを、多くのPCメーカー(DELL,hp,lenovo)やマザーボードメーカーがそのまま使っていて、さらにそのテスト用PKの秘密鍵がgithubを通じて漏洩してしまったことで、セキュリティ上の意味がなくなってしまった問題。
 
思いっきり簡単に言えば、スマホのロック解除できる共通のマジックナンバーが大公開されてるようなセキュリティインシデントだった。

問題あるPKの確認方法

証明書チェック用のスクリプトが、githubにある。
https://github.com/cjee21/Check-UEFISecureBootVariables
 
Githubの使い方知らん原始人は、緑色のCodeボタン押して、Download ZIPで一式落とせるって覚えとこうな。


Windowsボタンを右クリックでもして、ターミナル(管理者)を実行し、上記zipの展開先に移動して、

Check UEFI PK, KEK, DB and DBX.cmd を実行

すると、つらつらとBIOSからCA情報を読み取って表示される。

スクロールで戻って、Current UEFI PKがAMI Test PKだったら、ビンゴ。

発行体のCNは「DO NOT TRUST(信じるな)」のほかに「DO NOT SHIP(出荷するな)」というのもある。てか、よくこんなの製品に載せたよな・・・
 
あと、KEKやDBの更新状況が、このスクリプトで確認できる。

PKfailの修正方法

BIOS(UEFI)の更新によって修正するのがスタンダードな方法。
まともなメーカーの製品なら、BIOSアップデートが提供されてると思う。
PCメーカーまたは、マザーボードメーカーのサポートページを確認しよう。

大手メーカーでも、旧製品のサポートは5年程度で打ち切る傾向にあるので、この問題が発覚した2024年当時で5年前…2018年以前の機種は厳しいかもしれない。
 
▼スーパーマイクロ●
Supermicroは、2017以前はEOLとして切り捨て。あと「過失」を一切認めない以下の記載がアメリカっぽくて素晴らしい。
 It was determined that some Supermicro products used insecure Platform Keys (PK) which represent the Root of Trust for BIOS. These insecure keys were generated by American Megatrends International (AMI), and they were supplied as a reference example to Supermicro.
「安全ではないキーの使用が判明」「このキーはAMIが生成したもので、リファレンス例として提供されたもの」→それを製品に入れた過失には触れない。

(サラリーマン金太郎 第79話より)

▼ギガバイト

PKfailに関する告知があって、J1800からKabylakeあたりまでの環境が修正対象になっている。ギガのリビジョン商法には思うところはあるが、ちゃんとサポートする姿勢は偉い。

 

▼まともでない中華メーカー

DTET(SkyBarium)CYX(NiPoGi)GMK(GMKtec)N100系中華ミニPCは、全てPKfailだった。GMKtecは、iGPUの動作クロックを上げるBIOS提供してたが、それもPKfailだった。当然のように売り逃げ放置

更新データを提供してくれないなら、自分でパッチを当てるしかない。
以降は、Bitlockerが無効になっていることを前提に、自己責任でやってほしい。

①I'm feeling luckyコース(CERTCC/PKfail)

AMIとMSが作った修正パッチを試す。AMI Tesk PKのうち、4つのPKについてはこれで修正できる。
Github知らん猿は、緑色のCodeボタン押して、Download ZIPで一式落とせるって覚えとこうな【再掲】。



Windowsボタンを右クリックでもして、ターミナル(管理者)を実行し、上記zipの展開先に移動して、
Updateamipk.ps1 -confirm を実行しよう。

AMI Test key found in PK. AMI PK update is needed と表示された場合。
You are lucky!!このパッチでWindows OEM PKに更新できる。

Updateamipk.ps1 だけでも更新されるが、ログも残したいなら
Updateamipk.ps1 2>&1 | Out-File -Filepath Updateamipklog.txt と入力しよう

ちなみに、中華ミニPCは、これで全部修正出来た。

②Mosbyでオレオレ証明書に書き換えるコース
上のCERTCC/PKfailは、比較的新しい4つのAMI tesk PKにしか対応していない。
Skylake、Kabylake以前のPCは、たぶん非対応だと思う。

ならばどうするか・・・
PKが更新されないならPKを作れば良い
就職できないから会社を作った、のび太のように。
(ドラえもん第一話より)

それを簡単にやってくれるのがMosby
USBブートローダの定番ソフトである、Rufusで入れることが出来る。

Rufusを実行し、選択を「ダウンロード」にする
 
アップデートの確認を「無効」にしていると、「ダウンロード」は選択できない。
忠誠心の高いユーザー向けの機能なので、毎月あたりに設定して、アプリを再起動しよう。
 
「ダウンロード」ウインドウは、こんな感じに選択していく
 
メインウインドウに戻ったら、こんな感じに設定して書き込む(画面は書き込み済み)



、BIOSの設定。
 

【重要事項】まず、セキュアブートの鍵をClearすること
次に、セキュアブートを無効にすること
(セキュアブートを無効にするだけだと、UEFI変数にキーが残っててエラーが出る)

 

設定したら、USBでPCを立ち上げる。


心を無にして、Mosbyを実行する。Mosby_x64.efiと入力するのが確実だが、
nshが自動選択してくれるのでMosbyだけでも多分動く。

最初にNOTICEで、

サードパーティー製じゃないユニーク値をセットすっぞ、ええか?

的なことを聞かれてるので

OK しよう。退路は無い。

押すと、X.509の証明書をMosby Generated PKとして生成して、KEKやDBとセットで書き換えてくれる。

 

次の表示は

うまくいったで。でもな武器や防具は装備しないと意味ないように、セキュアブートも有効化せんと意味無いんや。再起動して、設定するか??

・・・的なことを書いてるので、Yesマンに徹してBIOS設定でSecureBoot有効化したら、ミッションコンプリートだ。

 

30年有効の署名だから、PCがぶっ壊れるまでは使えるはず(Ivybridgeはいつぶっ壊れるのか)。

あとは、
Check UEFI PK, KEK, DB and DBX.cmdで、

Secure Boot status: Enabledで、もろもろ更新されてることを確認したら対策終了♪

 

ちなみに、BIOS設定はCMOS(SRAM)に記録されるけど、証明書はNVRAM(SPI フラッシュロム)に記録されるので、電池切れやCMOSクリアでは証明書は飛ばない

 

ただし、BIOS更新したり、明示的にセキュリティキーの操作(キークリア、デフォルト値の読み込みなど)をしたら飛ぶので、①AMI Tesk PK更新も②Mosbyもやり直しとなる。その点は気をつけよう。