6

次のような方法で、ほとんどの Intel チップに存在するTPM ( http://en.wikipedia.org/wiki/Trusted_Platform_Module ) をプログラムすることが可能かどうか疑問に思っています。

- decide what to store in the persistent memory
- decide which cryptographic algorithms to implement.

明らかに、機能し始めたら再プログラム可能であってはなりません (このステートメントが正しいかどうか知っていますか?)。

4

3 に答える 3

5

The behaviour of a TPM is defined by the specifications issued by the Trusted Computing Group. A TPM must exactly behave as specified, so you cannot change the functionality of a proper implemented TPM. The manufacturers of TPMs have limited abilities to update their products after shipping. For example Infineon provides firmware updates for their devices.

Intel TPMs however may be different. Some chipsets included an emulated/software TPM instead of an actual hardware TPM. Those TPMs can be updated with a BIOS update. But also in this case the update has to be provided by Intel. Recent boards like the DQ67SW have stand alone hardware TPMs not manufactured by Intel.

So the answer to your second question is: No, you cannot program/define the cryptographic algorithms a TPM uses.


Regarding your first question: Yes, you can define what to store in the persistent storage to some extend. This memory region is called Non-volatile Storage or NV. You have to define some space first using the TPM_NV_DefineSpace command. Afterwards you can read and write from/to the location using TPM_NV_ReadValue and TPM_NV_WriteValue. Defining reserves a given amount of memory in NV and also sets up the security attributes of this location. Those commands are low-level TPM commands, it is highly recommended to use a Trusted Software Stack (TSS) to interface the TPM. You can use either jTSS with jTpmTools or TrouSerS.

Some notes regarding NV:

  • There is very limited space in the NV, but the exact amount is vendor specific (usually less than 5kb). The minimum amount for the PC platform is 2048 bytes.
  • The TPM is a passive device, it cannot do anything without a command issued to it. If you want to store something in the TPM, you have to have some active piece (BIOS, Software, Chipset, CPU) that issues those commands.
  • Even most cryptographic keys are not stored within the TPM. There is a key hierarchy and only the root key (Storage Root Key - SRK) is stored in the TPM. All other keys are stored outside in an encrypted way.
于 2011-12-07T19:42:49.347 に答える
3

TPM はプログラム可能ではありません。サポートされているアルゴリズムの固定セットがあります。コードは ROM に保存されます (そうでない場合は、改ざん防止パッケージ内の EEPROM に保存され、上書きすることはできません)。

TPM は、さまざまな管理上の役割を定義します。初めて使用するときは、管理者パスワードを設定します (または、ソフトウェアが自動的に設定します。その場合は、これらのパスワードを慎重にバックアップする必要があります)。TPM を受け取ったときの状態が不明な場合は、TPM を「工場出荷時のデフォルト」にリセットできます (既存のすべてのキーと資格情報を消去します)。これは TPM のクリアと呼ばれ、通常は BIOS から実行されます。

資格情報プロファイルで、TPM によって保存および使用されるさまざまな資格情報の概要を確認できます。通常のライフサイクルの一部であるキーに加えて、独自のキーをインポートし、TPM の RNG を使用してエクスポートできないキーを作成できます。

標準のTPM 保護プロファイルがあります。IntelのTPMがそれに関して評価されているかどうかはわかりません。図 1 は、TPM ライフサイクルの図であり、キーをいつ生成できるかを示しています。

実際には、 TrouSerS (完全にオープン ソースの TPM API) を介して、または Windows の Bitlocker を介して限られた方法でTPM とやり取りすることになるでしょう。

于 2011-12-07T18:11:18.290 に答える
2

はい、TPM チップを使用して、まさにこれらの種類の操作を行うことができます。

TrouSerSスタックは、TPM チップを確実に使用するために必要なトラステッド コンピューティング ソフトウェア スタックのオープン ソース実装です。

于 2011-12-07T09:27:09.507 に答える