現在、私は測定開始がどのように機能するのか、どのコンポーネントが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でキーを消去すると、ディレクトリが再び表示されます...不思議です。