€•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Œ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 ”…””}”(hjhžhhŸNh NubhŒ reference”“”)”}”(hŒ `TPM Genie`_”h]”hŒ TPM Genie”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”Œname”Œ TPM Genie”Œrefuri”ŒKhttps://www.nccgroup.trust/globalassets/about-us/us/documents/tpm-genie.pdf”uh1jhjŒ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 ”…””}”(hjhžhhŸNh Nubj)”}”(hŒ`Windows Bitlocker TPM`_”h]”hŒWindows Bitlocker TPM”…””}”(hj2hž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”uh1jhjj-KubhŒ system. Most recently the same ”…””}”(hjhžhhŸNh Nubj)”}”(hŒ1`attack against TPM based Linux disk encryption`_”h]”hŒ.attack against TPM based Linux disk encryption”…””}”(hjGhž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”uh1jhjj-KubhX— 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.”…””}”(hjhž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.”…””}”(hjbhž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”…””}”(hj{hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h¹hjxhž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.”…””}”(hj‰hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÉhŸh³h K,hjxhž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—hjxhž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 Kuh1jIh KØhjÖhžhhŸh³jWKubeh}”(h]”Œ+null-primary-key-certification-in-userspace”ah ]”h"]”Œ+null primary key certification in userspace”ah$]”h&]”uh1h´hhhžhhŸh³h Kœubeh}”(h]”h ]”h"]”h$]”h&]”Œsource”h³uh1hŒcurrent_source”NŒ current_line”NŒsettings”Œdocutils.frontend”ŒValues”“”)”}”(h¹NŒ generator”NŒ datestamp”NŒ source_link”NŒ source_url”NŒ toc_backlinks”Œentry”Œfootnote_backlinks”KŒ sectnum_xform”KŒstrip_comments”NŒstrip_elements_with_classes”NŒ strip_classes”NŒ report_level”KŒ halt_level”KŒexit_status_level”KŒdebug”NŒwarning_stream”NŒ traceback”ˆŒinput_encoding”Œ utf-8-sig”Œinput_encoding_error_handler”Œstrict”Œoutput_encoding”Œutf-8”Œoutput_encoding_error_handler”j³Œerror_encoding”Œutf-8”Œerror_encoding_error_handler”Œbackslashreplace”Œ language_code”Œen”Œrecord_dependencies”NŒconfig”NŒ id_prefix”hŒauto_id_prefix”Œid”Œ dump_settings”NŒdump_internals”NŒdump_transforms”NŒdump_pseudo_xml”NŒexpose_internals”NŒstrict_visitor”NŒ_disable_config”NŒ_source”h³Œ _destination”NŒ _config_files”]”Œ7/var/lib/git/docbuild/linux/Documentation/docutils.conf”aŒfile_insertion_enabled”ˆŒ raw_enabled”KŒline_length_limit”M'Œpep_references”NŒ pep_base_url”Œhttps://peps.python.org/”Œpep_file_url_template”Œpep-%04d”Œrfc_references”NŒ rfc_base_url”Œ&https://datatracker.ietf.org/doc/html/”Œ tab_width”KŒtrim_footnote_reference_space”‰Œsyntax_highlight”Œlong”Œ smart_quotes”ˆŒsmartquotes_locales”]”Œcharacter_level_inline_markup”‰Œdoctitle_xform”‰Œ docinfo_xform”KŒsectsubtitle_xform”‰Œ image_loading”Œlink”Œembed_stylesheet”‰Œcloak_email_addresses”ˆŒsection_self_link”‰Œenv”NubŒreporter”NŒindirect_targets”]”Œsubstitution_defs”}”Œsubstitution_names”}”Œrefnames”}”(Œ tpm genie”]”jaŒwindows bitlocker tpm”]”j2aŒ.attack against tpm based linux disk encryption”]”jGaŒtcg ek credential profile”]”jýaŒ"tcg tpm v2.0 provisioning guidance”]”j.auŒrefids”}”Œnameids”}”(jÓjÐhýhújujrjìjéjjjVjSj}jzj¤j¡jËjÈjjŠjTjQjaj^jmjjjyjvj…j‚uŒ nametypes”}”(jÓ‰hý‰ju‰jì‰j‰jV‰j}‰j¤‰jˉj‰jTˆjaˆjmˆjyˆj…ˆuh}”(jÐh¶húhÙjrjjéjxjjïjSjjzjYj¡j€jÈj§jŠjÖjQjKj^jXjjjdjvjpj‚j|uŒ footnote_refs”}”Œ citation_refs”}”Œ autofootnotes”]”Œautofootnote_refs”]”Œsymbol_footnotes”]”Œsymbol_footnote_refs”]”Œ footnotes”]”Œ citations”]”Œautofootnote_start”KŒsymbol_footnote_start”KŒ id_counter”Œ collections”ŒCounter”“”}”…”R”Œparse_messages”]”Œtransform_messages”]”Œ transformer”NŒ include_log”]”Œ decoration”Nhžhub.