web-dev-qa-db-ja.com

TPMのEKの公開キー(ハッシュ)を使用してデバイスのフィンガープリントを作成できますか?

質問 TPMを使用してプラットフォーム認証を実行する方法 は、基本的にTPMのEKを使用してホスト/デバイスを「認証」できるかどうかを尋ねています。そして answers の一つは言います

これはプライバシーの問題となるため、保証キー(EK)に直接アクセスすることはできません。この一意の識別子を使用してシステムを追跡できます。

しかし、EKの公開鍵ハッシュ(および、おそらく公開鍵も)は、(マシンにアクセスできる場合は)公開されています。たとえば、

PS C:\windows\system32> get-tpmendorsementkeyinfo -hash "Sha256"


IsPresent                : True
PublicKey                : System.Security.Cryptography.AsnEncodedData
PublicKeyHash            : 18e3b568aeb17b4e75f3838d7b01ffe63c52d976950943a10968761b5bfe3f4d
ManufacturerCertificates : {[Subject]
                             TPMVersion=id:0808, TPMModel=ST19NP18PVMT, TPMManufacturer=id:53544D20

                           [Issuer]
                             CN=STM TPM EK Intermediate CA 01, O=STMicroelectronics NV, C=CH

...

EKの公開キーハッシュが一意のホスト/デバイスを識別するのに十分でないのはなぜですか? (必要なのは「指紋」であり、それで暗号化/復号化しないことを前提としています。)

実際、これは、AIKの生成とその公開鍵の使用を提案する質問に対して、他の answer によって提案されたものです。 (しかし、EKの公開キーだけを使用できるのに、なぜAIKを生成する追加の手順が必要なのですか?)

更新:@Andreは、以下のコメントで、EKはデバイスによってリセットおよび再生成できると述べています。知らなかった、ありがとう! Microsoftは、「保証キーは、Trusted Platform Module(TPM)セキュリティハードウェアに、通常は製造時に永久的に埋め込まれる暗号化キーです」と述べています。 in technet、here -ただし、通常は「常にではない」という意味です。 これ 「Trusted Computing Platforms:TCPA Technology in Context」(124ページ)の本の結果は、元々秘密裏書き鍵がデバイスで生成された方法について説明していますが、製造上の問題を引き起こしたため、後で緩和されました、そして今、メーカーはデバイスからEKを生成し、それをデバイスに注入します。最後に、本 "TPM 2.0の実用ガイド:新しいセキュリティ時代におけるトラステッドプラットフォームモジュールの使用" は、重要な警告に同意します:EKはリセットできますが、長期間有効な証明書を使用する場合(一部の認証シナリオで使用されている一部のTPMチップメーカーが保持しているものを含む)はすべて無効になります。

したがって、この質問の目的のために:いつでもデバイスの同じ指紋を常に取得できるように、指紋が完全に永続的である必要はないとしましょう。むしろ、指紋が一意である必要があるとしましょう。これにより、このデバイスを別のデバイスと混同しないようになります(ただし、このデバイスとそれ自体との関係が失われる可能性があります)。その解釈で:EKの公開鍵(ハッシュ)を使用して、デバイスを一意にフィンガープリントできますか?

1
davidbak

EKはリセットできません。 TPMが実在/信頼できる(たとえば、ソフトウェアベースではない)およびTCG準拠であることを識別するのは、この証明書です。

EKがプライベートであることについての声明は、リモート認証のコンテキストでのサードパーティを指します。デバイスをフィンガープリントするために他の多くの方法でローカルマシンにすでにいる誰かではありません。

つまり、EKを介して直接リモート認証を行う場合、常に同じIDを公開することになります。 AIKを使用すると、IDをいくつでも持つことができ、CAだけが実際のIDを知っています(パブリックEK)。

そのため、答えは、リモート認証のコンテキストではNOであり、すでにシステム上にある誰かのコンテキストではYESです。

2
northox