Introduction

備忘録。

今更な内容だが、どういう意味って話。

error

What’s this?

そもそもは、第二世代の仮想マシンに Utunbut 20.04 をインストールしようとして起きた現象。

セキュアブートを無効にすればインストールはできるけど、そんな脳死的な理解でいいのか?と思い調べた。

セキュアブートでは、ブートプロセス中に起動した各コンポーネントに付与されたデジタル署名と UEFI BIOS に内蔵された信頼済み証明書のセットと照合されて検証が実行される。
要するに、不正な署名がついたコンポーネントやそもそもデジタル署名がついていないコンポーネントは拒絶する仕組み。

では Utunbut 20.04 のインストールイメージが不正なものか?と言われれば答えは NO。
セキュアブートに対応していないわけがない。

では UEFI BIOS 内に、コンポーネントのデジタル署名に使われた信頼済みの証明書がない?

これが答え。

error

Hyper-V のデフォルト設定では、セキュアブート有効時のテンプレートは Microsoft Windows になっている。

この設定を変更する必要があるが、上記のそれぞれの意味は Hyper-V マネージャーでのセキュア ブートの設定 に記載がある。

テンプレート名 説明
Microsoft Windows Windows オペレーティング システムの仮想マシンのセキュア ブートを有効にする場合に選択します。
Microsoft UEFI 証明機関 Linux ディストリビューション オペレーティング システムの仮想マシンを安全にブートする場合に選択します。
オープン ソースのシールド VM このテンプレートは、Linux ベースのシールドされた VM のセキュア ブートを有効にする場合に利用します。

予想だが、 Microsoft Windows の証明書と Microsoft UEFI 証明機関 の証明書は別物になっているのだろう。

ちなみに、上の オープン ソースのシールド VM って何よ?って感じだが、Linux シールド VM テンプレート ディスクを作成する によれば

シールドされた VM は、セキュリティで保護されたテンプレート ディスクから作成されます。 テンプレート ディスクには VM のオペレーティング システムとメタデータ (/boot および /root パーティションのデジタル署名など) が含まれており、デプロイ前にコア OS コンポーネントが変更されていないことが保証されます。

とある。
以降の説明も長すぎて理解するのも疲れるが、要するに改ざんされていないことが保証された VM ということなのだろう。

ここに書かれていることを踏まえ、第二世代の Linux 仮想マシンを起動するなら

  • セキュアブートを有効
    • Microsoft UEFI 証明機関 を使用
    • オープン ソースのシールド VM を使用
  • セキュアブートを無効

の三つの選択肢があり、事実上、 Microsoft UEFI 証明機関 を選択するか、またはセキュアブート無効が正解となる。