€•ÓŒsphinx.addnodes”Œdocument”“”)”}”(Œ rawsource”Œ”Œchildren”]”(Œ translations”Œ LanguagesNode”“”)”}”(hhh]”(hŒ pending_xref”“”)”}”(hhh]”Œdocutils.nodes”ŒText”“”ŒChinese (Simplified)”…””}”Œparent”hsbaŒ attributes”}”(Œids”]”Œclasses”]”Œnames”]”Œdupnames”]”Œbackrefs”]”Œ refdomain”Œstd”Œreftype”Œdoc”Œ reftarget”Œ-/translations/zh_CN/security/tpm/tpm-security”Œmodname”NŒ classname”NŒ refexplicit”ˆuŒtagname”hhh ubh)”}”(hhh]”hŒChinese (Traditional)”…””}”hh2sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ-/translations/zh_TW/security/tpm/tpm-security”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒItalian”…””}”hhFsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ-/translations/it_IT/security/tpm/tpm-security”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒJapanese”…””}”hhZsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ-/translations/ja_JP/security/tpm/tpm-security”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒKorean”…””}”hhnsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ-/translations/ko_KR/security/tpm/tpm-security”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒPortuguese (Brazilian)”…””}”hh‚sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ-/translations/pt_BR/security/tpm/tpm-security”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒSpanish”…””}”hh–sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ-/translations/sp_SP/security/tpm/tpm-security”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubeh}”(h]”h ]”h"]”h$]”h&]”Œcurrent_language”ŒEnglish”uh1h hhŒ _document”hŒsource”NŒline”NubhŒcomment”“”)”}”(hŒ%SPDX-License-Identifier: GPL-2.0-only”h]”hŒ%SPDX-License-Identifier: GPL-2.0-only”…””}”hh·sbah}”(h]”h ]”h"]”h$]”h&]”Œ xml:space”Œpreserve”uh1hµhhh²hh³ŒG/var/lib/git/docbuild/linux/Documentation/security/tpm/tpm-security.rst”h´KubhŒsection”“”)”}”(hhh]”(hŒtitle”“”)”}”(hŒ TPM Security”h]”hŒ TPM Security”…””}”(hhÏh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhhÊh²hh³hÇh´KubhŒ paragraph”“”)”}”(hXThe object of this document is to describe how we make the kernel's use of the TPM reasonably robust in the face of external snooping and packet alteration attacks (called passive and active interposer attack in the literature). The current security document is for TPM 2.0.”h]”hXThe object of this document is to describe how we make the kernel’s use of the TPM reasonably robust in the face of external snooping and packet alteration attacks (called passive and active interposer attack in the literature). The current security document is for TPM 2.0.”…””}”(hhßh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KhhÊh²hubhÉ)”}”(hhh]”(hÎ)”}”(hŒ Introduction”h]”hŒ Introduction”…””}”(hhðh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhhíh²hh³hÇh´K ubhÞ)”}”(hXˆThe TPM is usually a discrete chip attached to a PC via some type of low bandwidth bus. There are exceptions to this such as the Intel PTT, which is a software TPM running inside a software environment close to the CPU, which are subject to different attacks, but right at the moment, most hardened security environments require a discrete hardware TPM, which is the use case discussed here.”h]”hXˆThe TPM is usually a discrete chip attached to a PC via some type of low bandwidth bus. There are exceptions to this such as the Intel PTT, which is a software TPM running inside a software environment close to the CPU, which are subject to different attacks, but right at the moment, most hardened security environments require a discrete hardware TPM, which is the use case discussed here.”…””}”(hhþh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Khhíh²hubeh}”(h]”Œ introduction”ah ]”h"]”Œ introduction”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´K ubhÉ)”}”(hhh]”(hÎ)”}”(hŒ/Snooping and Alteration Attacks against the bus”h]”hŒ/Snooping and Alteration Attacks against the bus”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhjh²hh³hÇh´KubhÞ)”}”(hXòThe current state of the art for snooping the `TPM Genie`_ hardware interposer which is a simple external device that can be installed in a couple of seconds on any system or laptop. Recently attacks were successfully demonstrated against the `Windows Bitlocker TPM`_ system. Most recently the same `attack against TPM based Linux disk encryption`_ schemes. The next phase of research seems to be hacking existing devices on the bus to act as interposers, so the fact that the attacker requires physical access for a few seconds might evaporate. However, the goal of this document is to protect TPM secrets and integrity as far as we are able in this environment and to try to insure that if we can't prevent the attack then at least we can detect it.”h]”(hŒ.The current state of the art for snooping the ”…””}”(hj%h²hh³Nh´NubhŒ reference”“”)”}”(hŒ `TPM Genie`_”h]”hŒ TPM Genie”…””}”(hj/h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”Œname”Œ TPM Genie”Œrefuri”ŒKhttps://www.nccgroup.trust/globalassets/about-us/us/documents/tpm-genie.pdf”uh1j-hj%Œresolved”KubhŒº hardware interposer which is a simple external device that can be installed in a couple of seconds on any system or laptop. Recently attacks were successfully demonstrated against the ”…””}”(hj%h²hh³Nh´Nubj.)”}”(hŒ`Windows Bitlocker TPM`_”h]”hŒWindows Bitlocker TPM”…””}”(hjFh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”Œname”ŒWindows Bitlocker TPM”j?ŒThttps://dolosgroup.io/blog/2021/7/9/from-stolen-laptop-to-inside-the-company-network”uh1j-hj%jAKubhŒ system. Most recently the same ”…””}”(hj%h²hh³Nh´Nubj.)”}”(hŒ1`attack against TPM based Linux disk encryption`_”h]”hŒ.attack against TPM based Linux disk encryption”…””}”(hj[h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”Œname”Œ.attack against TPM based Linux disk encryption”j?ŒNhttps://www.secura.com/blog/tpm-sniffing-attacks-against-non-bitlocker-targets”uh1j-hj%jAKubhX— schemes. The next phase of research seems to be hacking existing devices on the bus to act as interposers, so the fact that the attacker requires physical access for a few seconds might evaporate. However, the goal of this document is to protect TPM secrets and integrity as far as we are able in this environment and to try to insure that if we can’t prevent the attack then at least we can detect it.”…””}”(hj%h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Khjh²hubhÞ)”}”(hŒÎUnfortunately, most of the TPM functionality, including the hardware reset capability can be controlled by an attacker who has access to the bus, so we'll discuss some of the disruption possibilities below.”h]”hŒÐUnfortunately, most of the TPM functionality, including the hardware reset capability can be controlled by an attacker who has access to the bus, so we’ll discuss some of the disruption possibilities below.”…””}”(hjvh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K%hjh²hubeh}”(h]”Œ/snooping-and-alteration-attacks-against-the-bus”ah ]”h"]”Œ/snooping and alteration attacks against the bus”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´KubhÉ)”}”(hhh]”(hÎ)”}”(hŒMeasurement (PCR) Integrity”h]”hŒMeasurement (PCR) Integrity”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhjŒh²hh³hÇh´K*ubhÞ)”}”(hX%Since the attacker can send their own commands to the TPM, they can send arbitrary PCR extends and thus disrupt the measurement system, which would be an annoying denial of service attack. However, there are two, more serious, classes of attack aimed at entities sealed to trust measurements.”h]”hX%Since the attacker can send their own commands to the TPM, they can send arbitrary PCR extends and thus disrupt the measurement system, which would be an annoying denial of service attack. However, there are two, more serious, classes of attack aimed at entities sealed to trust measurements.”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K,hjŒh²hubhŒenumerated_list”“”)”}”(hhh]”(hŒ list_item”“”)”}”(hŒíThe attacker could intercept all PCR extends coming from the system and completely substitute their own values, producing a replay of an untampered state that would cause PCR measurements to attest to a trusted state and release secrets ”h]”hÞ)”}”(hŒìThe attacker could intercept all PCR extends coming from the system and completely substitute their own values, producing a replay of an untampered state that would cause PCR measurements to attest to a trusted state and release secrets”h]”hŒìThe attacker could intercept all PCR extends coming from the system and completely substitute their own values, producing a replay of an untampered state that would cause PCR measurements to attest to a trusted state and release secrets”…””}”(hj¶h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K2hj²ubah}”(h]”h ]”h"]”h$]”h&]”uh1j°hj­h²hh³hÇh´Nubj±)”}”(hŒËAt some point in time the attacker could reset the TPM, clearing the PCRs and then send down their own measurements which would effectively overwrite the boot time measurements the TPM has already done. ”h]”hÞ)”}”(hŒÊAt some point in time the attacker could reset the TPM, clearing the PCRs and then send down their own measurements which would effectively overwrite the boot time measurements the TPM has already done.”h]”hŒÊAt some point in time the attacker could reset the TPM, clearing the PCRs and then send down their own measurements which would effectively overwrite the boot time measurements the TPM has already done.”…””}”(hjÎh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K7hjÊubah}”(h]”h ]”h"]”h$]”h&]”uh1j°hj­h²hh³hÇh´Nubeh}”(h]”h ]”h"]”h$]”h&]”Œenumtype”Œarabic”Œprefix”hŒsuffix”Œ.”uh1j«hjŒh²hh³hÇh´K2ubhÞ)”}”(hXRThe first can be thwarted by always doing HMAC protection of the PCR extend and read command meaning measurement values cannot be substituted without producing a detectable HMAC failure in the response. However, the second can only really be detected by relying on some sort of mechanism for protection which would change over TPM reset.”h]”hXRThe first can be thwarted by always doing HMAC protection of the PCR extend and read command meaning measurement values cannot be substituted without producing a detectable HMAC failure in the response. However, the second can only really be detected by relying on some sort of mechanism for protection which would change over TPM reset.”…””}”(hjíh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K