Image: ASUS製Infineon TPMのファームウェアを更新する

結構前に取り上げた「Infineon製TPMチップの脆弱性 (CVE-2017-15361) が発覚」の続報。ASUSはサポートする気がないのか音沙汰ないが、海外の有志の方がSupermicroから供給されている Infineon TPM Firmware Update Tools でASUSのマザーボード上でもファームウェアをアップデートできると言うので、これを試したら見事に成功した。

UEFI Shellでの更新方法

ファームウェア更新ツールの使用方法は、Windows PE環境で実行する方法とUEFI Shellから実行する方法があるようだが、今回はUEFI Shellを使うことにする。

まず、Supermicro社のFTPサーバー ftp://ftp.supermicro.com/driver/TPM/ から “9665FW update package_1.1.zip” をダウンロードして適当な場所に展開する。後でコマンド入力するので短めなフォルダー名に変えておいて、FAT32フォーマット済みのUSBメモリに移す。

ASUSのマザーボードはUEFI Shellのイメージファイルを別途入手する必要がある。 https://github.com/tianocore/edk2/blob/master/ShellBinPkg/UefiShell/X64/Shell.efi?raw=true から “Shell.efi” を入手し、先ほどのUSBメモリのルートディレクトリに移す。EFI Shellを使うのが久々すぎて、これでいいのやら分からん。

WindowsでBitLocker使用中の場合は念のためキーをバックアップしておいて、作業中は毎度の再起動前に一時無効にする。または、無効にしておく。脆弱性付TPMを使用した環境でBitLockerドライブを作成していた場合は暗号化キーに脆弱性があると思われるので、一度BitLockerを無効にしてファームウェア更新後に再度有効にするのが望ましい(時間が掛かるので面倒だが)。

作業のためUEFI BIOSの各種設定を変えておく。具体的にどう変えるのかというと、どこまで変える必要があるのか検証したわけじゃないのだけど、私はPRIME X370-PROで以下の設定を行った。

  • 詳細 → AMD fTPM configuration → TPM Device Selection で「Descrete TPM」を「Firmware TPM」に変更。
  • 起動 → セキュアブートメニュー → OSタイプ で「UEFIモード」を「非UEFIモード」に変更。

他にも起動関係でいくつか触ったかもしれないが、影響はないと思う。

UEFI設定保存・再起動後に詳細メニューから「終了」→「EFI Shellを起動」を選択してEFI Shellを立ち上げる。

Image: ASUS PRIME X370-PRO UEFI BIOS Utility

EFI Shell起動後、Mapping tableにデバイスのドライブ名(マウントポイントという方がしっくり来る?)がずらっと出る。USBの文字が入っているのがUSBメモリのドライブっぽいので、FS0やFS1をあたってみる。

コマンドラインでFS0:を実行してカレントディレクトリをFS0:に移す。dirを実行するとカレントディレクトリのファイル一覧が出る。DOSと同じ要領なので難しくも何ともないが、初心者に教えるにはハードルが高そうだ。

Image: EFI Shell

cdコマンドを使ってファームウェア更新ツールを置いたディレクトリにカレントディレクトリを設定し、9665.nshを実行する。.nshと付いているが、これはバッチファイルみたいなものだろう。

Image: EFI Shell

“Updating the TPM firmware …“と表示されていればファームウェアの更新が行われている。

Image: EFI Shell

ファームウェア更新が正常に完了すれば”TPM Firmware Update completed successfully.“のメッセージの後に現在のTPMファームウェアのバージョンが表示される。TPM firmware version が「4.43.257.0」(TPM1.2の場合)または「5.62.3126.0」(TPM2.0の場合)になっていればOK。

Image: EFI Shell

再起動後、UEFI BIOSの設定を復旧させる。Windows起動後、TPMの管理 (tpm.mmc) を開いて「状態」欄が「TPMは使用する準備ができています。」のメッセージのみ表示されていることと、「TPM製造元のバージョン」が先と同じ「5.62.3126.0」になっていればOK。

Image: EFI Shell

参考サイト


P.S. 1月4日の記事の「今年最初で最後のPC記事になりそうな悪寒」とは何だったのか。。。予告は裏切るためのもの。


※コメント欄が表示されない場合はdisqusについてJavascriptが有効であることを確認して下さい。コメントはスパム防止フィルターによる承認制のため、投稿してもすぐに反映されない場合があります。

管理人 : Akamaki (akm)

は、PCとVTuberに夢中になっている電気技術者です。

私はレトロコンピューティングの愛好家ですが、そのようなリグはもう収集していません。

私の活動はトップページで見ることができます。読んでくれてありがとう!