x86-64アーキテクチャでLinuxをセキュアブート対応させる際、Microsoftが発行した証明書がどのように関与しているかを理解することは重要です。セキュアブートはUEFI仕様に基づき、ブートローダーやカーネルの署名を検証して不正なコードの実行を防ぎます。
UEFIとセキュアブートの基本
セキュアブートは、UEFIファームウェアに登録された信頼された証明書リストに基づいて、ブート時に実行されるコードを検証します。x86-64のCPU自体は署名検証の機能を持っていませんが、UEFIファームウェアがこれを行います。
Microsoft証明書の役割
多くの商用PCには、Windows互換性確保のためにMicrosoftの公開キー(DBに格納)がプリインストールされています。これにより、Microsoft署名済みブートローダーやOSがデフォルトで起動できる状態になっています。
Linuxでの対応方法
Linuxディストリビューションは、通常Microsoftの署名を使ってshimという中間ブートローダーを署名しています。shimはUEFIに登録されたMicrosoftの証明書で検証され、そこからGRUBやカーネルが読み込まれる仕組みです。したがって、x86-64 Linuxでセキュアブートを有効にする場合も、Microsoft署名済みのshimを用いることが一般的です。
カスタム証明書を使う場合
独自にカーネルやブートローダーを署名したい場合は、UEFIのキー管理(Custom Mode)を利用して、自分の署名証明書を登録することも可能です。この場合、Microsoft証明書は必須ではありませんが、事前にファームウェア設定でCustom Modeに切り替える必要があります。
まとめ
x86-64 CPU上でLinuxをセキュアブート対応させる場合、商用PCではMicrosoft署名済みshimを使うのが一般的です。これにより、UEFIがブート時にコードの正当性を検証でき、Microsoft証明書を活用する形になります。カスタム証明書を用いる場合はUEFI設定の調整が必要です。

コメント