`/sys/kernel/security/tpm0/binary_bios_measurements`はいつどのように公開されますか?

`/sys/kernel/security/tpm0/binary_bios_measurements`はいつどのように公開されますか?

現在、私は測定開始がどのように機能するのか、どのコンポーネントがtpm2のどのPCRに何を記録するのかを理解しようとしています。

uefiセキュアブートが有効になり、tpm2がkvm仮想マシンに接続されているテスト設定があります。私はtpm2_pcrread合理的な出力を提供するtpmサポートなどを使って自分のカーネルをコンパイルしました。それでは、tpmイベントの内部を見てみたいです。でもダメです/sys/kernel/security/tpm0、だからダメですbinary_bios_measurement。 ubuntu 23.10 isoでライブで起動すると、ファイルが存在し、tpm2_eventlogから読み取ることができます。そのため、Ubuntuからカーネルをインポートしてシステムを起動しましたが、ここでも機能しません /sys/kernel/security/tpm0。いいえ、これを公開するカーネルモジュールがないようです。または、Ubuntuでは、systemdはこのパスを生成します。これに関する文書が見つかりませんでした。このパス/ファイルをどこで、誰が作成したのかを知る方法がわかりません。これを公開する方法を知っている人はいますか binary_bios_measurement? PS。私のLinuxでは、systemdの代わりにOpenRcを使用しています。

答え1

securityfs仮想ファイルシステムをインストールしましたか?

何も出力されない場合はインストールされてgrep ^securityfs /proc/mountsいません。手動インストール:

sudo mount -t securityfs none /sys/kernel/security

常にインストールするには、ファイルに次の行を追加します/etc/fstab

none  /sys/kernel/security  securityfs  defaults  0 0

答え2

数時間の試行錯誤とカーネルコードの読み取りの終わりに偶然解決策を見つけましたが、実際の原因は見つかりませんでした。

GRUB 2.06を使用しています。 Ubuntu(2.12)に同梱されているGRUBのバージョンを試したとき、ディレクトリが突然tpm0現れました。そのため、このバージョンを使用してGRUBを直接コンパイルしましたが、見つからないディレクトリが存在しました。

GRUBが2.06から測定ブートをサポートしていることを読んで少し驚きました。それ以外の場合でも、ブートローダはこのパスを公開するカーネルとどのような関係がありますか?

修正する

今はさらに驚きました。 GRUBに署名sbsignし、PK、KEK、dbをインストールしましたefivars。突然ディレクトリが消えた。 BIOSでキーを消去すると、ディレクトリが再び表示されます...不思議です。

関連情報