LinuCレベル3 プラットフォームスペシャリスト 仮想化基盤の構築 問31
仮想化基盤の構築/仮想化環境のセキュリティ設定仮想TPM(TPM 2.0)を割り当てたLinuxゲストで、LUKS2で暗号化した /dev/vda3 を、起動時の測定値(PCR 7に記録されるSecure Bootの状態)が変わっていない限り、パスフレーズを入力せずに解錠できるようにしたい。鍵を登録するコマンドとして適切なものはどれか。
当サイトのオリジナル問題(LinuCレベル3 プラットフォームスペシャリストの出題範囲「仮想化基盤の構築」に対応。実際の試験問題ではありません)
- Asystemd-cryptenroll --tpm2-device=auto --tpm2-pcrs=7 /dev/vda3
- Bsystemd-cryptenroll --recovery-key /dev/vda3
- Csystemd-cryptenroll --fido2-device=auto --fido2-with-client-pin=yes /dev/vda3
- Dsystemd-cryptenroll --password /dev/vda3
正解:A
解説
systemd-cryptenrollの--tpm2-deviceは、LUKS2ボリュームの鍵をTPM2チップに封印(シール)して登録するオプションで、--tpm2-pcrsで指定したPCRの値が登録時と一致するときだけTPMが鍵を取り出せます。PCR 7にはSecure Bootの状態が記録されるため、Secure Bootの設定や鍵データベースが変わると自動解錠できなくなり、改ざんされた起動経路では鍵が渡りません。仮想マシンでは、swtpm等で提供される仮想TPMがこのTPM2チップの役割を果たします。起動時に自動解錠させるには、あわせて /etc/crypttab の該当行に tpm2-device=auto を指定し、initramfsを作り直しておきます。万一に備え、既存のパスフレーズや回復キーのスロットは残しておくのが一般的です。
選択肢ごとの解説
- A正しい。--tpm2-deviceで鍵をTPM2に封印して登録し、--tpm2-pcrs=7でSecure Bootの状態が変わっていないときだけ解錠できるようにします。
- B誤り。--recovery-keyは、紛失時などに使う回復キーを生成して登録するオプションです。解錠には生成されたキーの入力が必要で、TPMによる自動解錠にはなりません。
- C誤り。--fido2-deviceは、FIDO2対応のセキュリティキー(USBトークン等)に鍵を結び付けるオプションです。解錠にはトークンの接続(とPIN)が必要で、TPMの測定値とは関係しません。
- D誤り。--passwordは、新しいパスフレーズを追加のキースロットに登録するオプションです。解錠のたびにそのパスフレーズの入力が必要になります。