apache / apache/cloudstack

vTPM on KVM does not persist data (ACS 4.20.1.0, Ubuntu 24.04)

オープン
#11,842 コメント 15 件 リアクション 0 件 担当者 0 名 GitHub で見る
component:documentation
主要言語
Java
スター
3.1k
フォーク
1.4k
平均マージ
6日 19時間
マージ済み PR(30日)
32

説明

>### problem

after a shutdown, the /var/lib/libvirt/swtpm/ which holds the tpm data is gone. When starting the vm again, the folder is re-created with empty tpm files.

I am using a similar tpm definition in manually configured kvm guests, if those vm are powered off the folder remains.

### versions

4.20.1.0
Ubuntu 24.04

### The steps to reproduce the bug

```
root@VM-647bf7bc-bdca-48fa-8329-8b7a103f9ab6:~# echo "Hello, TPM!" > datafile
root@VM-647bf7bc-bdca-48fa-8329-8b7a103f9ab6:~# tpm2_nvwrite -C o -i datafile 0x1500016
root@VM-647bf7bc-bdca-48fa-8329-8b7a103f9ab6:~# tpm2_nvread -C o 0x1500016
WARN: Reading full size of the NV index
Hello, TPM!
```

Instance power cycle, and tryi to read our value again from the tpm

```
root@VM-647bf7bc-bdca-48fa-8329-8b7a103f9ab6:~# tpm2_nvread -C o 0x1500016
WARN: Reading full size of the NV index
WARNING:esys:src/tss2-esys/api/Esys_NV_ReadPublic.c:309:Esys_NV_ReadPublic_Finish() Received TPM Error
ERROR:esys:src/tss2-esys/esys_tr.c:243:Esys_TR_FromTPMPublic_Finish() Error NV_ReadPublic ErrorCode (0x0000018b)
ERROR:esys:src/tss2-esys/esys_tr.c:398:Esys_TR_FromTPMPublic() Error TR FromTPMPublic ErrorCode (0x0000018b)
ERROR: Esys_TR_FromTPMPublic(0x18B) - tpm:handle(1):the handle is not correct for the use
ERROR: Unable to run tpm2_nvread
root@VM-647bf7bc-bdca-48fa-8329-8b7a103f9ab6:
```

### What to do about it?

_No response_

コントリビューションガイド

コントリビューションガイドを開く

調査の方向性

まず Ubuntu 24.04 で power-cycle シーケンスを再現し、VM のシャットダウン時にディレクトリ /var/lib/libvirt/swtpm/ がどのように扱われるかを調べます。再起動後も TPM NV 値を読み取ることができ、ディレクトリが空の TPM ファイルとともに再作成されなければ完了です。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
linux, ubuntu
領域
infrastructure, operating-systems, security
issue の種類
バグ
難易度
4/5
見積もり時間
3〜5日
活発さ
静か
明瞭さ
おおむね明確
初心者へのやさしさ
48/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。