GRUB2、SecureBoot、およびカーネル署名で遊んでいます。セキュアブートでバグの可能性を見つけたと思いますが、最初にこれらのプロセスの理解を確認したいと思います。
セキュアブートが有効になっている場合、ファームウェアにロードされたキーで署名されたバイナリのみを起動できるため、すべてのブートローダーに署名する必要があります。典型的な例は、シムとGRUBです。
ブートが失敗した場合、またはインポートまたは削除するキーがある場合、ShimはMoakManagerを昼食し、それでよければ、実際のブートローダーであるGRUBを起動する必要があります。
問題は、OpenSSlで作成した新しいキーで署名したGRUBのカスタムバージョンをgrub-mkstandalone
で生成したところです。まだファームウェアにインポートしていないキーで、shimはセキュアブートからのレポートなしで起動できました。
mokutil --list-enrolled
でキーをチェックしましたが、正規の証明書のみを報告しました。
したがって、要約すると:
EFIパーティションには次のものがあります。
grubx64.efi
という名前.起動時にSHIMはGRUBおよびGRUBをランチしてUbuntuを正常に起動できました。
一部のセキュアブートが最初のブートローダーのサインのみをチェックし、他のローダーが自分自身とプリロードしたモジュールを検証し、ユーザーが最終的にロードする責任がある場合、ここでのセキュリティの懸念は非常に高くなります。
さらにテストを行いますが、バグチケットを開く必要があるかもしれません。
何か案は?
私はあなたの理解が正しいと信じています、exceptshimx64.efi
はパッケージを介してバイナリ形式で配信されること、 notgrub-install
を介してローカルに生成されます。 (grub-install
は、ESPにinstallshimx64.efi
である可能性があります。)ああ、MoakManagerではなくMokManagerです。
バグレポートを提出する前に、手順を再トレースし、ローカルでコンパイルされたGRUBを介して起動していることを100%確認する必要があります。たとえば、誤ってバイナリを間違った場所に置いたり、efibootmgr
を実行してブート順序を調整し忘れたりするのは簡単です。 (カスタムgrubx64.efi
のインストール方法については説明していません。標準のUbuntuバイナリを上書きするのですか、それとも新しいバイナリを別の場所に置いてefibootmgr
経由で[およびShimのコピー]を登録しますか? )Sudo efibootmgr -v
を実行して、ブートの詳細を確認できます。 BootOrder
およびBootCurrent
の行に注意してください。前者は起動オプションの試行順序を示し、後者はコンピューターの起動に使用されたオプションを示します。各ブートオプションを説明するさまざまなBoot####
行と番号を相互参照する必要があります。独自のGRUBをUbuntuのGRUBとは別にインストールした場合、セキュアブートエラーのためにファームウェアがサイレントにバイパスし、その後、Ubuntu Shim/GRUBに戻ったことが考えられます。見て。
別の可能性は、コンピューターでセキュアブートが実際に有効になっていないことです。この可能性は次のように確認できます。
$ hexdump /sys/firmware/efi/efivars/SecureBoot-8be4df61-93ca-11d2-aa0d-00e098032b8c
0000000 0016 0000 0001
0000005
この例では、出力の最初の行(0000000 0016 0000 0001
)は1
で終わります。これは、セキュアブートがアクティブであることを示しています。 0
で終わる場合、コンピューターでセキュアブートが無効になっています。
他の可能性の1つは、ローカルキーをファームウェアのdbリストに何らかの形でインストールした可能性があることです。ただし、これは難しい作業なので、偶然に気づかずにそれを行ったことはほとんどありません。 (これを設定する方法の詳細については、 主題の私のページ を参照してください。)この可能性については、主に完全性のために言及しています。この方法でセキュアブートをマスターしようとする以前の試みの言及を省略していない限り、それは私にはほとんどありません。
バグが発生している場合は、Shimまたはファームウェアにある可能性があります。
もう1つ注意すべき点は、grub-mkstandalone
などのGRUB固有のツールにしかなじみがないことです。私はrEFIndを管理しているので、それを使用することを好みます。そのため、GRUBツールに関する私の知識は、それほど深いものではありません。したがって、GRUB固有であるため、重要な詳細が欠落している可能性があります。