2026年セキュアブート更新問題にむけて☆ド素人でも簡単手動更新術伝授まで☆
2026年6月、PCのセキュリティシステムの一つであるセキュアブートが新しい署名に更新されます。
僕のような古いジャンク流れの PC を後生大事にしてる人間からしてみれば、正直「またかよ」という印象がぬぐえません。
Windows11 に続く「第二の足切りだ」なんて考える人もいます。
今回の更新の実態と対策について、フリーのアプリケーションの紹介も含めたそこそこボリューム感ある内容の note となってますので、興味のある方はぜひお立ち寄りください。
この問題ってそもそも何?
『2026年に向けてあなたの PC のセキュアブートが更新されます』
一言でいうと、それだけです。
でもこれが結構厄介で奥深い。
更新に失敗すると 、PC が最悪動かなくなってしまうんじゃないかとも囁かれています。
で、そんな更新の中身を知り、然るべき対策を打とう、というのが本 note の趣旨であります。
これを最後まで読めば、自分で能動的にこの問題に対策できます。
筆者はまったくの畑違いのド素人ですが、この数か月で生成AIたちを相棒にして学んだ知識を備忘録として書き記します。
ド素人なので勘違いや妄想なども多々含まれているかもしれませんので、専門家の方のご指摘もお待ちしております。
では、宜しくお願いします。
セキュアブートって?
そもそも論ですが、セキュアブートって何?
セキュアブートは Windows OS で使われるセキュリティシステムの一つです。『ブート=起動』を意味します。
一般的なイメージとして、PC が立ち上がると最初に Windows 画面になってそこからアプリにつないで・・・・って感じだと思いますが、実際には電源押してから Windows が立ち上がるまでの間を BIOS という別のシステムが担当しています。
その BIOS の起動中に行われるのがセキュアブート。
セキュアブートは Windows をはじめとしてその後につながる外部機器やシステム、アプリケーションが本当に正しいものかを確認し、万一正しくなければ起動を停止する、という動きをします。
そこに忍び込んだマルウェア(ウィルス)を始めとする不具合に対応するためです。え?そんなところにもマルウェアって潜んでるの?
そう、ブートを狙ったマルウェアがあってブートキット、ルートキットと名付けられてます。
そしてセキュアブートが危険を察知して起動を停止したとき、
こんな警告や
Windows ブート マネージャーは現在のセキュリティ ポリシーによってブロックされています。
こんな警告を発して
Invaild signature detected.Check Secure Boot Policy in Setup
セキュアブート違反
無効な署名が検出されました。セットアップでセキュアブートポリシーを確認してください。
これが出ると、何度 Enter 繰り返し押しても消えてくれません。
実際の僕の PCで わざと出してみましたが、最初見た時は僕も焦りました。
こんなの急に出てきたら、心臓バクバクものですよね。
どういう仕組みなの?
さて、セキュアブートはどうやって相手が正しいか否かを判断するのか?
ここではめちゃざっくりセキュアブートの仕組みを説明します。
セキュアブートは key で構成されています。
そしてこれからつなごうとする相手に『証明書』の提示を要求します。
相手の『証明書』が正しければ key が開いてつないでくれます。
正しくない『証明書』や『証明書』なしの相手ではつないでくれません。
たとえば国際空港の入国管理局を想像してください。
『パスポート』という証明書を持ってないと入国管理官に入国は許可されませんよね。また『偽造パスポート』が見破られても入国できません。
つまりそんな感じです。
key は4種類
セキュアブートが key でできている旨の説明をしましたが、実は4種類のkey があり、それぞれ役割が異なります。
それらの key の役割を理解しているとこれからのセキュアブート更新に何が必要か、も分かってきますので、ちょっと面倒かもしれませんが、これまたざっくりとご説明いたします。
1.DB(署名データベース)
勝手に通称「デブ」
DB はセキュアブートを代表する key です。
DB は毎回起動時に接続する相手の『証明書』をチェックしています。
正しい『証明書』を持つ相手を承認する一方で、もし『証明書』が
違っていたらさっきのような警告を出して相手が Windows なら PC を
止めてしまうこともあります。
セキュアブートの通常業務を担う一番働き者の key と言えます。
2.DBx(失効データベース)勝手に通称「デブックス」
DBx はマルウェア感染したり脆弱性の高い相手の個別の特徴を探しだし
排除することを専門とする key です。
DBx は『証明書』だけでなくより個別性の高い『ハッシュ値=指紋』
というものも見ます。通称『お尋ね者 key』とも言われます。
DB が通常の管理官ならDBx は特別捜査官のような役割で、この2つの key がタッグを組んでブート時のセキュリティを守っています。
通常はこの2つの key が動いているんですが、さらにもう2つ key がいます。
3.KEK(鍵交換キー)
勝手に通称「ケク」
DB と DBx が日々奮闘している中、ハッカーは考えます
「 DB と DBx を無効化したり、偽物を送り込めばデータ盗み放題だ!」
でもそれを防止する KEK という key が存在します。
平たく言うと DB と DBx の監視役の key です。
DB と DBx に KEK 自身が発行する『証明書』を持たせて監視します。
『証明書』が違う DB や DBx が来ても受け入れません。
4.PK(プラットフォームキー)勝手に通称「ピク」
KEK のせいで DB と DBx を支配できなかったハッカーはさらに考えます
「じゃあ KEK を無効化したり、偽物を送り込もう!」
ここで PK が登場します。
PK は KEK 専用の監視 key です。PK 自身が発行する『証明書』を
KEK に持たせます。そして監視します。
もちろん『証明書』が違う KEK が来ても受け入れません。
つまり三層の監視体制でハッカーを防いでいるのです。
上には上がいるって感じです。
証明書の発行方法
ここで『証明書』についてもう少し考えます。
key の種類によって『証明書』の発行元が異なりますが、各『証明書』は簡単に偽造されないようにそれぞれの『秘密鍵』というもので署名して完成となります。
そしてそれを確認する key は手持ちの『公開鍵』と合致させて開ける仕組みです。
『秘密鍵』はその名の通り門外不出の大切な鍵=暗号で、保管してるのは通常 Microsoft もしくはその PC を作ったメーカーのみです。
1.DB や DBx が確認する『証明書』は Microsoft が所持してる『秘密鍵』
から作られます。
DB は自らが持つ『公開鍵』で『証明書』の真偽を見抜き、正しい
『証明書』の相手のみ承認します。
また DBx は『証明書』+『ハッシュ値=指紋』を見て危険な相手を
防ぎます。
2.DB と DBx が持たされる『証明書』は KEK が自ら所持する『秘密鍵』
から作られます。
KEK は『公開鍵』で正しい『証明書』を所持する DB と DBxの みを承認
し、それ以外は受け入れません。
3.KEK が持たされる『証明書』は PK が自ら所持する『秘密鍵』から
作られます。
以下同文。(ほとんどお仕事ありませんが・・・・)
これから予定されているセキュアブートキーの更新にも、それぞれの
『秘密鍵』で署名された『証明書』が必要になります。
key と人間社会
こうやって見るとセキュアブートはまるで人間社会の組織のようですね。
もしも警察に例えるなら、DB は巡査、DBx は刑事、KEK は警部、PK は警察署長でしょうか。
事件はいつも『現場』で起きていて、実際に寸暇も惜しまず仕事をしてるのは DB をはじめとする『現場』の皆さん、とでも言いましょうか。
そのころ、 PK はお茶でも飲みながら週末のことでも考えてたりして。
いや古いドラマの見過ぎですね。
リアルの警察署長さんは超多忙ですよね・・・・失礼しました。
2026年に key が更新される訳
さて、今回これらの key が2026年までに新しい key に更新されます。
なぜなら2026年に key が有効期間終了を迎えるからです。
そもそもセキュアブートが導入されたのが2012年、この年 Windows 8 が発売され、Windows 8 の新機能として登場しました。
そして最初の key が作られたのは前年の2011年。
なので key の名称に『2011』という年式が入っています。
その時、恐らくざっくりと(良く知りませんが)、有効期間を15年と定めたので2026年にちょうど期間が終了します。
その流れで2023年に交換用の新しい key が作られました。
(こちらには『2023』という年式が名前に入っています)
で、今回は DB、DBx、KEK の3つの key が更新される予定です。
この3つは通常 Microsoft が作っていて2026年が期間終了です。
PK だけは PC を販売したメーカーやその BIOS システムを作った会社(ベンダー)が作ってることが多く、有効期間も通常もっと長いので今回は基本的には交換対象外です。
key の更新は Microsoft がやってくれる?
さて、この問題が今のところ大した騒動となっていないのは、天下の Microsoft が Windows Update を通じて自動で key の更新を行うと宣言してるからに他なりません。
この辺の経緯は Microsoft が出している「セキュア ブート更新プロセスに関してよく寄せられる質問」に詳しく載ってますので読んでください。
ただし、この中でも次のように書かれています。
「デバイスが Microsoft によって管理され、診断データを Microsoft と共有している場合、ほとんどの場合、Microsoft はセキュア ブート証明書を自動的に更新しようとします。 Microsoft はセキュア ブートの更新に最善を尽くしますが、更新プログラムの適用が保証されず、顧客の操作が必要になる場合があります。 お客様は、セキュリティで保護されたブート証明書を更新する責任を最終的に負います。」
なんか、やってはみますけど上手くいかなくても僕のせいじゃないから、あとはよろしくって言ってるように聞こえません??
『ほとんどの場合』は『全部』じゃない
先ほどの文、『ほとんどの場合』って書いてますよね。これは『全部』じゃない、ということをわざわざ言ってるわけですよね。
じゃあ、自分の PC はどうなんだろう?
待ってれば、やがて自動更新の時期が来て、自ずとその答えが出ます。
でもそれまでじっとしていられない。
そう、自分の PC がある日急にあの警告が出て止まったら嫌だ!と思う人は、自分で調べようじゃないか!
そしてもし、万一『ほとんどの場合』から外れたPC だった場合には、自分の力で何とかしたい・・・・
ここから先はそういう方に向けてお話しします。
なぜなら僕自身もそういう人間だったからです。
じっと待った方が良いと思われる人(それも正しいと思います)はこの先は飛ばしてください。
まずは自分の PC の key を知ろう
これから戦う?ためには何より重要なのが『己を知る』ことです。
セキュアブートの4つの key の役割については何となくご理解いただけたとしても、自分の PC には正式に、どんな key が入っているのか把握していないと、Microsoft が自動更新の対象にしているかどうかも分かりません。
特にサポート切れの古い PC やあまりメジャーじゃないメーカーの PC あたりは対象外とされる可能性が他より高そうなのでしっかり把握しましょう。
その際、一番注目したいのはメーカーやベンダーが作る PK です。
他の key は Microsoft の管轄下にありますのである意味安心ですが、PK は メーカーや機種によっていろいろです。
そしてそのいろいろが、この後の重要な分かれ目になります。
Windows 環境じゃなぜか見られない
ところで key の詳細を、Windows 環境で見ようと思っても見られない(見られるのかもしれないけどすっごく面倒くさい)。
をいをい、Microsoft さん、自分とこのシステムなんだから見られるようにしとけよって突っ込みたくなりますが仕方がない。
そしてこれ、なぜか Windows じゃない Linux OS の Ubuntu(ウブントゥ)で見られるんです。
「え、Ubuntu で見るってことは、Ubuntu をインストールするの? OS の入替なんて、できるわけないでしょ!」と思われたあなた。
実は Ubuntu インストール用の USB を作れば実際に OS インストールしなくても USB から Ubuntu を立ち上げて見ることが出来るんです。
「何言ってるの?」と思われた方、心配しなくて結構です。
これから USB の作り方から実際の画面の出し方、key の探し方までやっていきますので。
Ubuntu Live USB の作り方
Ubuntu Live USB には USB が必要です(当たり前か)。
他のデータとは共有できないので空もしくは空にしていい 8GB 以上の USB が必要となります。
それと Rufus という無料アプリケーション。この Rufus は僕のような古いPCを再生して使ってる人間にはまさに『神アプリ』です。
しかも後ほどもっと素晴らしい使用方法もご紹介いたしますよ!
まずは下の画像をクリックして Ubuntu の ISO ファイルをダウンロードしましょう。
6GB ほどの ISO ファイルなのでそこそこ時間はかかります
次に下の画像をクリックして Rufus をインストールします。
Rufus はあっという間にインストールできます。
で、ここで USB を差して、デスクトップにできた Rufus のアイコンをクリックしてください。
右の「選択」をクリック
あとは「スタート」
また「スタート」押さないでね!
USB の起動方法
いよいよ USB を起動させます。
USB が立ち上がるように再起動させるのですが、そのままだと Windows が先に起動しちゃうので 設定変更しなければなりません。
そのためにはみんなやや躊躇する BIOS 画面に入って操作をします。
さて、BIOS 画面に入るにはいくつか手段がありますが、一番簡単なのは再起動と同時に F2 キー(もしくは別のキー、機種によって違うので調べてください)を連打し続けます。
すると BIOS 画面が立ち上がります。
(古い BIOS は青と白のツートン、最近のはカラーで設定も細やかです)
基本 BIOS は英語(日本語があるものもあります)です。
上に見出しタブがあるのでその中で『Boot (起動)』と書かれてるところがあったらそこを開きます。
すると起動の順番を決める項目があるのでそこで USB を最初にします。
あとは『Save Canges and Reset(セーブして再起動)』を選びます。
これで再び再起動をすれば USB から立ち上がってくるでしょう。
※あとで出てくる BIOS 設定でも説明してますので合わせてご覧ください
tarminal の出し方まで
最初の画面では左上にいくつかの項目が出てますが、これはそのまま(一番上を選んだまま)Enter キーを押します。
するとしばらくすると黒い画面に Ubuntu のロゴが出てきます。
続いて紫色!に変わり白い四角のダイヤログが出来ていたら右上の × をクリックして消してください。Ubuntu の初期画面です。
この画面は USB から映しているのでご安心を。USB を正しく外せばまた元の Windows に戻ります。
さて、ここで Ubuntu 版 PowerShell ともいえる tarminal を立ち上げます。
キーボード左下の ctrl + alt + T キーを一緒に押すと四角いダイヤログがでて、ここにコマンドが入力できます。
これから沢山の情報を出しますので tarminal は右上の □ をクリックして画面いっぱいに広げておきましょう。
『mokutil --pk』以下同文
最初に入れるコマンドは『mokutil --pk』です。
コマンドの最後を『kek』『db』『dbx』と入れ替えればそれぞれの key の概要が出てきますので順次見ていきましょう。
この画面で、良く見ておくべき点は、
・Fingerprint =『指紋』 key 固有の数値の羅列
DBx の犯人探しにも使われ、人間でいう『指紋』と同じ
・Issuer =『発行者』この key を作った会社や組織名
・Validity = 『有効期間』Not Before~開始日時 Not After~終了日時
・Subject = 『名称』これが key の正式名称
だいたい Issuer と同じだったりする
これらの内容は控えておいた方が良いので、スマホで画像でも撮っておきましょう。
・PK は基本的に一つ。
・KEK は Microsoft のものは必須で稀に違う KEK もあったりします。
・DB は2つないし3つ以上は入ってます。同じ Microsoft のものでも用途が
違う DB がありますのでそれぞれ撮っておきましょう。
・DBx は通常数字の羅列で意味が分かりません。ただし、他の key と
同じように読める文字の場合もあるのでその場合は撮っておきましょう。
あっ、Ubuntu の終了方法も、お伝えしとかなきゃ。
tarminal で 『sudo shutdown -h now』 で Enter です。
そしたら USB 外せ風な英語が出ますので外して、また Enter 押すと電源が切れます。
key の正式名称と新旧交代
『PK』に入ってる key
※こちらは各メーカー・ベンダーの固有名称となります
『KEK』の旧 key と目的の新 key
・Microsoft Corporation KEK CA 2011
→・Microsoft Corporation KEK 2K CA 2023
『DB』の旧 key と目的の新 key
・Microsoft Windows Production PCA 2011(Windows用)
→・Windows UEFI CA 2023 ※名称が変わってますが新 key です
・Microsoft UEFI CA 2011(Linux、その他用)
→・Microsoft UEFI CA 2023
→・Microsoft Option ROM UEFI CA 2023(新設・GOPなどある場合)
『DBx』で失効させる旧 key
・Microsoft Windows Production PCA 2011(BlackLotusで強制失効)
その他の KEK,DB,DBx
PC によってはそれ以外の key が見つかるかもしれません。
これはメーカーが作ったものや Ubuntu などの Linux系のもの、などになります。
メーカーの KEK、DB はメーカー PK と同じ Issuer です(当たり前だけど)
Linux系の key は Canonical CA ~ という名称だったりします。
メーカーのものはメーカーが BIOSアップデートなどを通して独自にセキュアブートに関わるため、また Linux系のものは Linux環境で使う場合を想定して組み込まれたものです。
なので今回問題にしてる Windows のセキュアブート更新とは直接関係ありませんのであしからず。
key の有効期間が切れるとどうなるの?
ここが勘違いしやすいところなんです。
有効期間があるってことは有効期間過ぎたら key は動かなくなる・・・・
というのはおそらく間違いです。
普通に動くはずです。
でないと古い『証明書』しか持ってないアプリなどは全部動かせなくなっちゃいますから。
今回のセキュアブート更新の基本的考え方は、ひとまずは『交換』ではなく『追加』だと思います。
形上も古い key を残したまま、新しい key を『追加』していますから。
ただし、『PCA 2011』というWindows 専用の DB key だけはブートキットのBlackLotus のせいで、今回 DBx に加えられて強制失効させられます。
例外的処置として。
よくゲーマー諸氏がグラボのGOPドライバーも動かなくなる、と心配されてますが、以上の点からそれは杞憂だと思います。
GOPドライバーを承認するのは『PCA 2011』ではなく『UEFI CA 2011』だからです。
(訂正)GOPドライバーは年式に関係なく『Option ROM UEFI CA 2023』
に引き継がれ2026年以降も承認されるようです。
つまり新署名の中で生き続けます。訂正しお詫び致します。
ただ断定はできません。あくまでも状況判断からの僕の意見です。
衝撃の激ヤバ『PK』発見
さて、ここで珍しい画像をお見せします。
これはさっきお見せしたのとは別のノート PC の PK 画像です。
良く見てください。
Issuer が『DO NOT TRUST - AMI Test PK』と書いてあります。
珍しい会社名だな~~なんて悠長に考えてる場合じゃありません。
Do not trust ・・・・信じるな!ですから。
しかも有効期間見てください。
2012年2月~2013年2月、たった1年。販売時にはすでに有効期間切れ。
ひどすぎます。
まあさっきの「有効期間が過ぎても動く」の一例ではありますが(汗)
これ、実はあってはならない販売用ではない
テスト用の PK の流出なんです。
えっ、なんで僕の PC にこんな PK が??
『PKfail』という事件
これ2024年に海外では有名になった事件です。
またの名を『PKfail』といい、
「PKfailというSecure Boot バイパスが発見された」で詳しく書かれていますが、ようは何らかの理由(恐らくコスト削減や納期短縮といった企業側の不正)によって『テストPK』のままで PC が販売されていたということ。
で、この『テストPK』、何が一番問題なのかっていうと、門外不出のはずの PK の『秘密鍵』が巷に流出しているんですよ。
なんせテスト用だからちゃんと管理されてなくて・・・・
そしてそれがハッカーの手に渡れば偽 KEK 用の『証明書』が作れちゃうわけで、偽 KEK が入り込めば DB を操って・・・・
あとはハッカーのなすがままってわけです。
セキュアブートというシステムの根幹を揺るがす大事件なわけです。
僕の PC は××製で一覧には載ってません
お伝えしますが『PKfail』が発覚した僕のノート PC の機種名は、2024年に作られた「PKfail 発覚機種リスト」には載ってません。
この PC のメーカーさん、まだリストに未公表のメーカーでもあります。
まあ国内じゃそこそこ見かける PC だと思いますよ。
そんな普通に売れ筋の一般ユーザー向けノート PC にこんな PK 載せるって、結構責任重大だと思います。
僕はそのメーカーに3回メールを送りました。この画像付けてね。
でも返ってきたのは定型文的な謝罪の言葉と、
お決まりのサポート終了の言い訳。
もうね。仕方がないよね。はっきり言って一流メーカーじゃないし。
メーカー名や機種名バラすとこの PC 使ってる他のユーザーさんに迷惑掛かるかもしれませんのでやめときます。
でもね。これ氷山の一角だと思う訳です。
僕の持ってる3台の PC のうち1台がビンゴなわけですから、あなたの持ってる PC がビンゴでない保証なんてどこにもありません。
『己を知る』ことがいかに重要かお分かりいただけたでしょうか。
修正スクリプトはあっても
ではあなたの PC が『PKfail』だった場合、どうすればいいか?
実はベンダーである AMI と Microsoft の協働で『PKfail』修正スクリプトが出ています。
これを実行すると、運が良ければ PK が Microsoft 純正の PK に変わります。
運が良ければ、ですが。
なぜなら、『テストPK』 は結構な種類が流出していますが、このスクリプトには代表的な4つの PK の『証明書』しか入っていないからです。
そして残念ながら僕の PC はこの4つの PK に該当しませんでした。
うーん。問題解決に至らずがっかりです。
Microsoft の更新計画
『PKfail』の話はいったん置いといて。
Microsoft が行おうとしているセキュアブートの更新計画。
だんだんと全貌が分かってきました。
そして時期は未定ですが、すでにお手元の PC には更新のための仕掛けが仕込まれています。
まずはエクスプローラーからCドライブ( Windows が入ってるドライブ)を開いてみてください。
その中にある Windows フォルダを開いてください。
さらに System32 フォルダを見つけて開いてください。
そこに SecureBootUpdates というフォルダがあればそれが更新を行う仕掛けです。開いてみましょう。
その中にはいろんな .bin ファイルが入ってますが、ファイル名で中身を察することができます。
この中で最も重要なのは KEKUpdateCombined.bin というファイルでしょう。
なんで KEK ファイルが最重要?
繰り返し申しますが今回の更新で Microsoft はDB、DBx、KEKの3つの key の更新を予定しています。
そのうち、DB と DBx は KEK の『秘密鍵』を使って作った『証明書』が必要だと、前に説明しました。
幸い KEK は Microsoft 製なので Microsoft は自前の『秘密鍵』で『証明書』の発行が可能です。
しかし KEK 自体の更新は事情が違います。
KEK の更新には PK の『秘密鍵』が必要なのです。
そして PK の『秘密鍵』はメーカーやベンダーが管理してますので彼らの協力が必須となります。
そこで Microsoft はKEK用 の『証明書』の作成と提出を『秘密鍵』を持つメーカーやベンダーに要請していました。
その集大成が KEKUpdateCombined.bin で、ここには各メーカーの PK による500以上の KEK 用『証明書』が入っています。
「お前になんでそんなこと分かるんだ?」と思われましたか?
このファイルを調べたり、ネットで探せばおおよそ分かります。
KEKUpdateCombined.bin を無理やり開く
このファイルはバイナリーという形式で書かれているので通常は開いても確認できないのですが、まずはコピーしてデスクトップにでも貼り付けてみてください。
今後の更新にめちゃ大切なファイルなので、直で弄っちゃダメですよ!
必ずコピーしたほうを『名前を変更』を選んで拡張子を .bin から .txt に変えます。するとファイルがメモ帳になり、これで一応開けます。
開いてみると文字化けだらけですが、良く見るとちゃんと読める部分があるのが分かります。
そしてそれは Ubuntu で見たような PK 名称と有効期間であるのがお分かりいただけます。
ええい、探すの面倒なあなたに僕からプレゼント。
実は生成 AI のうち、今のところ ChatGPT 君だけは .bin ファイルも分析できます。
彼にお願いして中身を .xlsx にしてもらいました。
ここに貼り付けますのでよければダウンロードして見てください。
ネットでも発見できるよ
この KEKUpdateCombined.bin のもとは Microsoft が各メーカーに提出をお願いした GitHub の書庫に保存されています。
この書庫も中身は.binファイルなのですが、それを.jsonにしている(つまり文字でしっかりと見られる)ファイルがありますので見てください。
ただ残念ながらこの中には有効期間がありませんので、特定は『名称』等と『指紋』からになりますが。
ファイルに自分の PK 名があるかないか?
ここが重要。
この中に自分の PC の PK 名があれば・・・ KEK 更新の可能性大
この中に自分の PC の PK 名がなければ・・ KEK 更新がほぼ不可能
入ってるのは PK の『証明書』ですから KEK を更新するのに必須アイテムです。
これがあれば Microsoft はどこかのタイミングで他のファイル( DB や DBxの)と共に自動更新を行い、みごと KEK も更新されるでしょう。
逆に PK 名 が入ってない PC は自動更新を行っても PK が「私が署名した『証明書』がないからダメ」と更新を拒否するでしょう。
ここで明暗を分けるわけです。
実は KEK 以外は手動でも更新できる
2023年、とあるブートキット(マルウェア)が猛威を振るいました。
その名を BlackLotus (すでにチョロっと登場してますが)
こいつを止めるため、Microsoft は自動更新に先駆けて key の更新を一部早める対策を講じました。
「CVE-2023-24932 に関連付けられているセキュア ブートの変更に対する Windows ブート マネージャー失効を管理する方法」がその詳細となっています。
ただし、ここでは自動更新ではなく、PC ユーザーが自らの判断で手動で適用する4つのコマンド入力という方法をとっています。
このうち1つ目のコマンドを使うことで DB を、
2つ目のコマンドで ブートローダー(※ Windows 側の『証明書』を携え、セキュアブートから引き継いで Windows を起動する入口部分)を、
それぞれ『2023』に更新できます。
さらに3つ目では DBx に DB key の 『PCA 2011』 を加えてこの key を失効させています。この DB key を使って BlackLotus が拡大したためです。
そして、この一連のコマンドを済ませた PC は 難関である KEK 更新以外はほぼ更新完了状態となります。
セキュアブート更新を早く進めたい方は、全部を自動更新に頼らずとも対策コマンドで一気にゴール目前までコマを進めることが可能です。
・PowerShell で行える4つの対策コマンド(※全て管理者で実行)
1.DB 追加コマンド
reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Secureboot /v AvailableUpdates /t REG_DWORD /d 0x40 /f
Start-ScheduledTask -TaskName "\Microsoft\Windows\PI\Secure-Boot-Update"2.ブートローダー更新コマンド
reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Secureboot /v AvailableUpdates /t REG_DWORD /d 0x100 /f
Start-ScheduledTask -TaskName "\Microsoft\Windows\PI\Secure-Boot-Update"3.DBx 失効署名追加コマンド
reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Secureboot /v AvailableUpdates /t REG_DWORD /d 0x80 /f
Start-ScheduledTask -TaskName "\Microsoft\Windows\PI\Secure-Boot-Update"4.SVN 更新用コマンド
(更新後のブートローダーとDB、DBx を記憶し、古い状態に戻せなくするSVNという仕組みの中で1カウンター上げる・・・・なんのこっちゃ)
reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Secureboot /v AvailableUpdates /t REG_DWORD /d 0x200 /f
Start-ScheduledTask -TaskName "\Microsoft\Windows\PI\Secure-Boot-Update"KEK が更新できない時
さて、僕の PC のうち、不憫な『テストPK』の PC は、まあ案の定というかKEKUpdateCombined.bin の中にも、同じ PK の『証明書』はありません。
つまり不憫な PC が KEK 更新もできず、さらに不憫に陥ってしまってるわけです。
では KEK が更新できないとどうなるのでしょうか?
2026年にセキュアブートで PC が止まる??
それは『否』
KEK だけが更新できなくても PC は起動し続けます。
DB、DBx が予定通り更新されていれば。
ただしその後が問題になります。
基本的に DB は今回のような有効期間切れ、のようなことがないと再度の更新はありませんので、そんなに気にしなくてよいです。
問題なのは DBx です。
DBx は新しい脅威が出るたびに、割と頻繁に更新されます。
KEK が新しい KEK に更新されると、そのあとから配布される DBx は当然新しい KEK に合わせた『証明書』を持つことになります。
すると古い KEK しかない PC は承認できずに DBx を受け入れません。
それが度重なるとセキュアブート自体が新しい脅威に対応できない陳腐化が進行します。
そのうち、起動してもザル状態になってしまうでしょう。
完全なセキュアブートを求めて
KEK 更新が出来ない PC には何か打つ手がないのか?
理論的には BIOS から直接 KEK を加工して完全手動で入れ込む、ということも可能らしいです。
ただし KEK 単独では例の『証明書』の関係で入れられませんので、やるとすれば全部の key 交換覚悟です。
でもこれにはプロレベルの知識と労力が必要です。とてもド素人の手に負える代物ではありません。
もはや KEK は諦めるしかないのか・・・・
ここで、僕と同じように新しい KEK が更新できない PC をお持ちの方、もしくは『テストPK』 で脆弱性が気になる方、に朗報です。
まだ日本ではほとんど知られていない、とあるアプリケーションのご紹介とその使用法をお伝えいたします。
その名は Mosby = Rufus の兄弟
Rufus は先ほど Ubuntu Live USB の時にも活躍しましたね。
本来のメイン用途は、システム要件を回避して古い PC でも Windows11 をインストールできる USB を作成する有難いアプリケーションです。
古い PC をお持ちの方なら一度はお世話になったことがあるのでは?
この Rufus を作った同じ作者(ピート・バタールさん)が Rufus の仕組みを使ってセキュアブート更新用のアプリを作ってくれています。
それが Mosby というアプリケーションです。
しかも Rufus 同様フリーアプリ。
Mosby を使うと、KEK 更新はもとより、DB も DBx も、そしてさらにはここが重要ですがオリジナル PK までも一括で更新出来ちゃいます。
これによって2026年更新問題も、かの『PKfail』問題も一挙に解決できるわけです。まさに『神アプリ Part 2』。
でも当たり前ですが英語で説明されているのと、BIOS を弄るという敷居の高いアプリなので、今回僕が人柱となって導入方法を模索しました。
覚えた全てをここに伝授させて頂きます。
ただしくれぐれも言いますが・・・・これをご覧いただき自らチャレンジされて失敗しても僕は責任を負えません。
あくまでも自己責任でお願い致します。(Microsoft と同じ言い回しですが)
必要なのは USB と Rufus だけ
Mosby を入手するにあたって必要なものは・・・・
実行用のUSB( 1G もあれば十分)とRufus だけです。
Rufus を Windows11 で使ったことのある人は同じ要領で Mosby の USB も作れます。
なんと Rufus の中にオマケで Mosby も入っているのです。
以下作り方となります。
これで終わりじゃなくて、いったん ISO ファイル作ってます。
あとは Ubuntu の時と同じで、ISO ファイル選んでUSB にインストールの流れで・・・・
キモは BIOS 操作
さて、 USB 作りは簡単だったでしょ。
でもここからがキモの部分です。
みんな苦手な BIOS 操作が必要だからです。
しかもセキュアブートキーの操作。
この部分は PC の説明書には詳しく書かれてなかったりします。
下手にユーザーに弄られて PC が動かなくなりサポート電話が鳴っても困るからでしょう。
セキュアブートは素人は手を出すな!ということなんでしょうが、それを打ち破る勇気が新しい KEK キーを手に入れるには必要なのです。
僕は例の『テストPK』の PC と、最初の PK画像の PC で試してます。
一台は Aptio という BIOS、もう一台は InsydeH2O という BIOS なので、違いも分かるように説明します。
どちらも2012~2013年ころのセキュアブート最初期の仕様です。
行う際には、できればセキュアブートキーのバックアップを取りましょう!
・・・・と言ってもやり方わからないですよね。僕もです(笑)
なのでこれだけは確認しましょう。
デフォルトキーが再インストールできる機能がついてるか。
ない場合は絶対あきらめたほうが安全です。
あともう一つ。 BitLocker 入れてる人は途中で回復キー聞かれる可能性あるので回復キーは必ず控えておきましょうね。
Setup(Custom) Mode にする。に尽きる
では概要説明から。
今回は両方とも古い BIOS なので青白の画面で文字しかありません。
もう少し新しい BIOS だとカラーで設定も細やかですが、やることはほぼ同じじゃないかと思ってます。
Mosby の USB はそのまま挿しっぱなしにしときましょう。
BIOS 画面にするには Ubuntu Live USB の時と一緒で PC を再起動と同時に F2キー (違ったら調べてください)を連打します。
『Main 画面』が出たら矢印キーで『Security 画面』 に移動します。
画面のどこかに SecureBoot に入る項目がありますのでクリックします。
このあと、設定手順は異なりますが、ある目的に合わせます。
それは一言で言うと「SetupMode(Custom)にする」ということです。
BIOS には今使用中のキーが入っています。
まずそれを Clear します。
と同時にデフォルトキーが上書きされない設定にします。
そしてセキュアブート自体は [Disabled] (停止)にします。
繰り返しますが、今使用中のキーを消して、再読みこみしないようにして、セキュアブートを切る、の3つの操作です。
そのあと 『Boot 画面』 に移り、Ubuntu の時と同じように USB から起動するようにします。
最後に『(Save &) Exit 画面』 に移って、セーブして再び再起動、これだけで Mosby が開始されます。
言葉じゃ厳しいんで画像でも説明します。
古くてスクショ機能もない BIOS なので歪んだ写真画像となり恐縮ですが・・・・
1.BIOS 操作例(Aptio編)
このあと → キーで「Security画面」に移行する
一番下の Secure Boot Management を Enter する
これがデフォルトの設定
にそれぞれ変更
下の項目が Clear Secure Boot Keys に変わったらそこで Enter
ダイヤログが出たら Yes で Enter
PK,KEK,DB,DBX が NOT INSTALLED になったのを確認後
ESC (Exit) を押して操作画面終了
Boot Opsion #1 を Enter しダイヤログを出す
その中でUSB名を選んで Enter
Save Canges and Reset を Enter
再起動がはじまり、Mosbyが立ち上がります
2.BIOS操作例(InsydeH2O編)
このあと → キーで「Security画面」に移行する
一番下の Secure Boot Option を Enter する
これがデフォルトの設定
にそれぞれ変更後
Install Default Scure Boot Keysは [No Action] のまま
F10 (Save and Exit) を押して Enter
F2 キーを連打して「Main」画面にもどり → キーで「Boot」画面に移る
USB Memory を選択後
F6 キーを押してカーソル順を一つずつ上げていく
Save Changes and Reset を Enter
再起動がはじまり、Mosby が立ち上がります
Mosby が起動したら
Mosby が起動すると画面に入力予定のファイル類が流れたあと実行コマンドを要求してきます。
ここでマニュアルでは「Mosby」と入れて Enter と書いてあります。
が、Aptioは「Mosby」だけでは進まず固まってしまいました。
これは詰んだ、と思いましたが、一旦やり直し、次のコマンドで動きました。「Mosby_x64.efi」
本来なら「Mosby」という文字だけで .nsh というファイルがその PC に合う .efi ファイルを選んで実行してくれるのですが、古いPC だと .nsh ファイルを読み込まないこともあります。
そんな PC は .efi ファイル(実行ファイル)のフルネームを入力しなければなりません。
ちなみにほとんどの PC は「Mosby_x64.efi」ファイルを使用します。
なので最初から「Mosby_x64.efi」と打ち込んだ方が確実かと思います。
「Mosby_x64.efi」と正式名を入れて Enter のほうが間違いない
そして次の画面と
ドキドキ・・・・ もち OK で Enter
最後の画面で「Yes」を選べば終了です。
パチパチ!!Yes で Enter !
さらにBIOSで最後の調整
再び再起動しますのでここでまた F2連打で BIOS に入り、『Security画面』 からセキュアブートの操作画面に入って SecureBoot を [Disabled] (停止)から [Enabled] (起動)に戻します。
最終的な BIOS の項目はこんな風になってると思います。
Aptioは
Insydeは
これですべての作業終了。
後は再びセーブして再起動で新しいセキュアブート環境で PC が動き出すはずです。
Ubuntuで確認しよう
Windows 画面が立ち上がったら成功です。
そしたら気になるのが中身。
当然皆さんはあの Ubuntu Live USB が使えますので早速確認しましょう。
さあ、まずは PK から
有効期間はなんと2055年・・・・
おお、これが Mosby の PK。
この Mosby の PK の凄いところは『秘密鍵』をランダムに生成するところです。
つまり世界に一つしかない『秘密鍵』で KEK を承認しています。
これほど堅牢な PK は他にはありません。
もちろん、この『秘密鍵』は通常ユーザーにも分からないのでさらに KEK を更新することはできません。
でも15年に一度の更新。次なんて必要ないでしょう。
もしどうしても更新が必要になったらまた Mosby を使えば済むことです。
あとは夢にまで見た新しい KEK。
どうです。この KEK 2K CA 2023というかっこいい名称!?
この KEK があればこれからも安心してフルスペックでセキュアブートを使用できます。
また DB もしっかり更新されています。
DBx の『PCA 2011』失効処置はされてませんが、これはブートローダーと関連して、起動しなくなるリスクを避けてのことだと思います。
ここの部分については、Microsoft の自動更新に任せるか、
先ほどの Microsoft の手動更新コマンドの
「2.ブートローダー更新コマンド」
「3.DBx失効署名更新コマンド」
「4.SVN 更新プログラム用コマンド」
までやっておけば完璧です。
(※Mosbyのオプションとして実行時にMosby -xと入力すればDBxの失効処置もしてくれる?ようですが僕は試せてません)
とにかく放っておいてもやってこない KEK と安全な PK の獲得こそが Mosby の大いなる成果です。
Mosby の要件確認
で、ここまで書いててなんですが、すべての PC で Mosby を使える、わけではなさそうです。
上でも書いてますが、Mosby を使うには Setup Mode にできること、つまり PK を含むすべての key が削除できて、かつ新しい key を受け入れられるシステムが備わっている、ことが必要です。
まあ大抵の PC はそうなってるみたいですが、中には PK は変更できない仕様の PC もあるようなので Mosby 実行前には確認が必要です。
とは言っても実際やってみなきゃそういう細かい仕様ってわからないですよね。
ですからそういう意味でも、失敗してもデフォルトキーの再入力ができる PC であることが Mosby チャレンジの絶対要件と言えますね。
Secure Boot は [Disabled] ですか?
間違いがなければ、残念、諦めてデフォルトキーに戻そう
もう一つ、すでに Microsoft の対策更新コマンドを実行した PC で Mosby を試された方で、万一 Mosby がうまくいかなかった場合、デフォルトキーに戻しますので対策コマンドで獲得した DB と DBx を一度失います。
でその際、ブートローダーは新しいままなのでセキュアブートを [Enabled] に戻すと起動できなくなります。
その場合はセキュアブートは[Disable]のまま、 Windows を立ち上げ、
ブートローダーも古い状態に戻さなきゃいけません。
次のコマンドでブートローダーを元に戻せます。
(※管理者で実行してください)
Mountvol s: /s
del s:\*.* /f /s /q
bcdboot %systemroot% /s S:もちろん Mosby が成功すれば必要ありません。
結局、更新は闇の中にしたかった!?
さあ、そろそろ皆さん、気づかれました?
そう、冒頭に怖いダイヤログをお見せしましたが、今までの流れで、あんなダイヤログ、簡単には出てこないんじゃ?と思われました?
鋭い!パチパチ!!
今回の更新が原因で Windows が起動しなくなるとしたら、正直なところ以下のケースくらいしかないと思います。
1.DB が古いままなのに Windows のブートローダーは更新されちゃった
2.DBx で古い DB が失効したのにブートローダーは古いままだった
そう、DB とブートローダーはワンペアで、ここが新旧合ってない時だけ、怖いダイヤログが登場するのです。
だから Microsoft は対策コマンドでも自動更新でも DB(追加) → ブートローダー(交換) → DBx失効 (旧DB削除)→ KEK の順番を必ず守ります。失敗すれば次にはコマを進めない。
PC が止まっちゃわないように。
Windows で今回の更新の進捗が見づらい理由、それは穿ってみれば闇の中にしときたかったからじゃないかと思うのです。
たとえセキュアブート更新が失敗しても PC さえいつも通り動いていれば誰も気がつきません。
無論セキュアブート自体は古いままどんどん陳腐化していきますが。
『知らぬが仏』って言葉がぴったりだと思いませんか?
でも我々はもう知っちゃいました。我々にはそんなごまかしは効きません。
PowerShellでの簡易確認
Ubuntu Live USB は key の詳細を見るにはとても役に立つツールですが、USB起動からの画面待ち、コマンド入力と、やや面倒ではあります。
単純にお目当ての key があるか、ないか、だけだったら PowerShell のコマンドで代用できますので簡易確認用としてこちらもご利用ください。
(※全て管理者で実行してください)
・新 DB の存在 True=ある False=ない
[System.Text.Encoding]::ASCII.GetString((Get-SecureBootUEFI -Name db).bytes) -match 'Windows UEFI CA 2023'・新 KEK の存在 True=ある False=ない
[System.Text.Encoding]::ASCII.GetString((Get-SecureBootUEFI kek).bytes) -match 'Microsoft Corporation KEK 2K CA 2023'・DBx で PCA2011 が失効されているか True=ある False=ない
[System.Text.Encoding]::ASCII.GetString((Get-SecureBootUEFI dbx).bytes) -match 'Microsoft Windows Production PCA 2011'・TEST PK(PKfail)の存在 True=ある False=ない
[System.Text.Encoding]::ASCII.GetString((Get-SecureBootUEFI PK).bytes) -match "DO NOT TRUST|DO NOT SHIP"・ブートローダーの年式
bootmgfw.efiの年式 2行目 bootx64.efiの年式 3行目
mountvol S: /S
(Get-PfxCertificate -FilePath "S:\EFI\Microsoft\Boot\bootmgfw.efi").issuer
(Get-PfxCertificate -FilePath "S:\EFI\Boot\bootx64.efi").issuer
mountvol S: /D最後になりますが
さて、調子に乗りすぎましたので、ぼちぼち終わりといたします。
最後まで長々と駄文にお付き合いいただきありがとうございました。
どうでしょう、皆さん・・・・セキュアブートが、少しは皆さんの身近な存在になりましたでしょうか?
TPM と並んで PC界の煙たがられ役だったセキュアブートですが、僕には今はなんだか可愛く思えます(笑)
ここまでご覧いただいた皆さんには、自らセキュアブート更新に対応する術がすでに備わっています。
皆さんは、次の3つの選択肢からお好きなものをチョイスできます。
1.やっぱり Microsoft に一任する派
KEK の自動更新が可能な PC にとっては、最も安全な選択です。
他のほとんどのユーザーと同じですが、でも皆さんは更新の内容を把握し、しっかり監視できます。
時折 Ubuntu Live USB や PowerShell で更新の進捗状況を監視しましょう。
2.対策コマンドを実行する一部先行派
KEK の自動更新が可能な PC で早く更新を進めたい人は、対策更新コマンドで KEK 以外の更新を済ませるのもいいでしょう。
こちらも Microsoft のコマンドなので自動更新に準じて安全かつ簡単です。
あとはじっくり KEK の自動更新を見守りましょう。
3.Mosby+対策コマンドのコンプリート派
KEK 更新が絶望的な PC、『PKfail』で肩身の狭い PC の一発逆転策です。
また好奇心旺盛なチャレンジャーさんにもピッタリです。
Mosby を成功させた後、対策コマンドの2から4までを実施すれば、セキュアブート更新は完結します。
あとは2038年にまたお会いしましょう!
Mosby は敷居はやや高いですが、慣れてしまえば簡単で、何度でもやりたくなります(笑)
ただ一つだけ、ちょっとひっかかってたのが。
Mosby によって PK 変更という PC の基礎部分が書き換えられることで、
一時的にMicrosoft アカウントから認識されなくなる恐れはないか・・・・
この文章にも書いてますが、結論を言うと直接は関係なさそうでした。
とにかく 2026年までに1台でも多くの PC が誰にもごまかされず(笑)、この問題から解放されることを願いつつ、note を締めくくりたいと思います。
えっ、「面倒になったらハナからセキュアブート停止すりゃいいじゃん」
ですって!
それは・・・・それを言っちゃあお終いよってことで(笑)
それでは皆さま、よき PC ライフを!また逢う日まで!


コメント