web-dev-qa-db-ja.com

DMcryptでTPMを使用していますか?

TPMを使用して一部の秘密キーを保存することはできますか?これはフルディスク暗号化ではなく、既存のLUKSと互換性があり、別のキーを追加してTPMに保存するだけです。

16
daisy

Tpm-luks [1]を試してください。これは、TPMのNVRAMとLUKSキースロットの両方に新しいシークレットを格納するのに役立つスクリプトです。

これでうまくいくはずです:

$ tpm-luks -c -d <device>

LUKSデバイスは次の方法で見つけることができます。

# blkid -t TYPE=crypto_LUKS

私はごく最近tpm-luksをリリースしたので、git ATMでのみ使用できます。

[1] https://github.com/shpedoikal/tpm-luks

13
shpedoikal

私が知っていることから、実際にはこれを妨げるものは何もありませんが、コードはまだ書かれていません。ただし、次を参照することができます http://publib.boulder.ibm.com/infocenter/lnxinfo/v3r0m0/index.jsp?topic=%2Fliaai%2Fecrypts%2Fliaaiecryptfs.htm

アイデアは、tpm_sealdataを使用してファイルを暗号化することです。これは、ブートがいじられていない場合にのみロックを解除できます。

Trusted grubと呼ばれるパッチを当てたバージョンのgrubを使用する必要がある場合があります。これはgrub2に統合されたとは思いません。

ファイルのロックが解除されたら、それをcryptsetupのキーとしてフィードし、失敗した場合は通常の「パスワードの確認」ダイアログを実行して、ハードウェアがいじられた場合に起動できるようにします。しかしもちろん、それはシステムがデフォルトでパスワードなしで起動することを意味します。

4
Misc

ちなみに、tpm-luksに小さな変更を加えて、TPM NVRAMのルートパーティションのLUKキーを保護するために、アプリケーションと連携させました。スクリプトは魅力のように機能します。ルートパーティションではなく、他のパーティションやファイルでも簡単です。 PCR 0〜9および12と13に基づいてキーをNVRAMに関連付けました。BIOSはNIST SP800-147に準拠する必要があることに注意してください。一部のMITER研究者が穴を発見しました。

1
Bill