LinuxでTPM2.0を使用してリモートの場所にあるハードドライブを安全に復号化する方法を理解するために数日を費やしました。私はセキュリティの専門家ではありません。TPM2.0との初めての戦いです。たくさん学びましたが、まだ質問があります。誰かがそれらを手伝ってくれませんか:
私が解決しようとしている問題は次のようなものです:
/
パーティション/boot
暗号化されていませんinitram
ファイル(/boot
は暗号化されていないため、initram
をいじることができます)私はこの解決策について考えました:
私はこの問題について正当な質問をすることができるレベルを達成したと思いますが、私はこれの影響や穴をさらに評価することはできません。
Linuxシステムでは、クレビスを使用してLUKSボリュームをTPM2に「バインド」し、ルートファイルシステムを自動的に復号化できます。例えば:
clevis luks bind -d /dev/sda3 tpm2 '{"pcr_ids":"0"}'
または
clevis luks bind -d /dev/sda3 tpm2 '{"pcr_ids":"0,1"}'
すでに暗号化され、パスフレーズが必要です。上記のコマンドでプロンプトが表示されます。パスフレーズをバックアップとして残すか、後で削除することができます。
PCR0の値自体をキーとして使用するかどうかはわかりません。これは、私の限られた経験では、その値にアクセスするのが非常に簡単だからです。それがPCRに対するデータの「シーリング」がどのように機能するかはわかりませんが、PCR値とシールされた値の正確な関係はわかりません。
私はクレビスを使用してLUKSボリュームをTPM2にバインドし、それがルートファイルシステムの場合は起動時に自動復号化しました。インストール中にデバイスを暗号化し、手動とキックスタートスクリプトでデバイスをバインドしました。クレビスツールはTPM2サポートを2018年の初めに追加し、RHEL 7.6がリリースされたときにRHELの「ベータ」リポジトリからそれを作りました。自動復号化は、論理ボリュームではなく、完全な/ dev/sd *ボリュームでのみ機能します。私はこのリンクがとても役に立ったと感じました: https://blog.dowhile0.org/2017/10/18/automatic-luks-volumes-unlocking-using-a-tpm2-chip/
BIOSファームウェアを変更するとPCR0が変更され、特定の設定を変更してもPCR1が変更されるはずです。選択するのに最適なPCRがわかりません。私の情報は https://trustedcomputinggroup.org/wp-content/uploads/PC-ClientSpecific_Platform_Profile_for_TPM_2p0_Systems_v51.pdf (セクション2.3.4、表1 )。