可信平台模块,或受信任的平台模块(英语:Trusted Platform Module,缩写:TPM),是一项安全密码处理器英语Secure cryptoprocessor国际标准,旨在使用设备中集成的专用微控制器(安全硬件)处理设备中的加密密钥。TPM的技术规范英语Specification (technical standard)由称为可信计算组织英语Trusted Computing Group(TCG)的资讯业联合体编写。国际标准化组织(ISO)和国际电工委员会(IEC)已于2009年将规范标准化为ISO/IEC 11889[1]

Thumb
符合TPM 1.2版标准的受信任的平台模块的组件

中华人民共和国商用密码产品销售管理以前规定“任何单位或个人不得销售境外的密码产品”,因此早期市场销售的资讯装置不搭载TPM。[2]

历史

可信平台模块(TPM)由一个名为可信计算组织英语Trusted_Computing_Group(TCG)的资讯业联合体构思。它发展成为《TPM主要规范版本1.2》(英语:TPM Main Specification Version 1.2),该规范于 2009 年由国际标准化组织(ISO)和国际电工委员会(IEC)标准化,编号为ISO/IEC 11889:2009。[3]《TPM主要规范版本1.2》版本修订116于2011年3月3日完成修订并最终确定。[4][5]

2014 年4月9日,可信计算组织英语Trusted_Computing_Group宣布对其规范进行重大升级,命名为《TPM库规范2.0》(英语:TPM Library Specification 2.0)。[6]该组织继续致力于该标准的工作,包括勘误表、算法添加和新命令,其最新版本于2019年11月发布,版本号为2.0。[7]该版本成为ISO/IEC 11889:2015标准。

当新版本发布时,可信计算组织将其分为多个部分。每个部分都包含一个文档,这些文档构成了新TPM规范的全部内容。

  • 第1部分:架构(更名自“设计原则”)
  • 第2部分:TPM的结构
  • 第3部分:命令
  • 第4部分:支持例程(增加于TPM 2.0)

概述

可信平台模块(TPM)提供:

  • 硬件随机数生成器[8][9]
  • 用于安全生成有限用途的加密密钥的设施。
  • 远程认证: 创建硬件和软件配置的几乎不可伪造的哈希密钥摘要。可以使用哈希值来验证硬件和软件是否已被更改。负责对设置进行哈希处理的软件决定摘要的范围。
  • 绑定英语Late_binding: 数据使用TPM绑定密钥进行加密,TPM绑定密钥是从存储密钥派生的唯一RSA密钥。包含TPM的电脑可以创建加密密钥并对其进行加密,以便只有TPM才能解密它们。此过程通常称为包装或绑定密钥,有助于保护密钥不被泄露。每个TPM都有一个主包装密钥,称为存储根密钥,它存储在TPM本身中。用户级RSA密钥容器与特定用户的Windows用户配置文件一起存储,可用于加密和解密在该特定用户身份下运行的应用程式的资讯。[10][11]
  • 密封存储英语Sealed storage: 指定要解密(解封)数据的TPM状态。[12][13]
  • 其他可信计算功能,用于解密(解封)数据。[14]

电脑程序可以使用TPM进行硬件设备的身份验证,因为每个TPM晶片在生产时都烧录了一个唯一的密钥背书密钥 (EK)。嵌入硬件的安全性比纯软件解决方案提供了更多保护。[15]在某些国家/地区,其使用受到限制。[16]

用途

平台完整性

TPM的主要用途是确保平台的完整性。在这种情况下,“完整性”意味着“按预期运行”,“平台”是指任何电脑设备,无论其操作系统如何。这是为了确保引导过程从硬件和软件的可信组合开始,并持续到操作系统完全启动并运行应用程式

当使用TPM时,固件和操作系统负责确保完整性。

例如,统一可扩展固件接口(UEFI)可以使用TPM来形成信任根英语Trust_anchor:TPM包含多个平台配置寄存器(PCR),允许安全存储和报告与安全相关的指标。这些指标可用于检测先前配置的更改并决定如何继续。此类用例可以在Linux统一密钥设置(LUKS)、 [17]BitLocker[18]和PrivateCore vCage内存加密中找到。(见下文。)

通过TPM实现平台完整性的另一个示例是使用Microsoft Office 365许可和Outlook Exchange。[19]

TPM 用于平台完整性的另一个例子是可信执行技术英语Trusted_Execution_Technology(TXT),它创建了一个信任链。它可以远程证明电脑正在使用指定的硬件和软件。[20]

磁碟加密

全磁碟加密实用程序(例如dm-crypt)可以使用此技术来保护用于加密电脑存储设备的密钥,并为包括固件和引导扇区在内的可信引导路径提供完整性身份验证[21]

其他用途和问题

任何应用程式都可以将TPM晶片用于:

还存在其他用途,其中一些用途引发了隐私问题。TPM的“物理存在”功能通过要求对诸如激活、停用、清除或更改 TPM 所有权等操作进行 BIOS/UEFI 级别的确认来解决其中一些问题,该确认由实际出现在机器控制台的人员执行。[24][25]

机构使用

美国国防部(DoD)规定“为支持国防部而采购的新电脑资产(例如,伺服器、台式电脑、手提电脑、瘦客户端、平板电脑、智能电话、个人数字助理、行动电话)将包括TPM 1.2或更高版本,其中国防资讯系统局英语Defense_Information_Systems_Agency(DISA)安全技术实施指南英语Security_Technical_Implementation_Guide(STIG)要求,并且此类技术可用。”国防部预计TPM将用于设备识别、身份验证、加密和设备完整性验证。[26]

TPM实现

Thumb
安装在主板上的ASUS可信平台模块

手提电脑

2006年,开始销售内建TPM晶片的新手提电脑。未来,这个概念可以与电脑中现有主板晶片或可以使用 TPM 功能的任何其他设备(例如手机)共存。在PC上,LPC总线串行外设接口(SPI)总线用于连接到TPM晶片。

可信计算组织英语Trusted_Computing_Group(TCG)已经认证了由英飞凌科技新唐科技意法半导体制造的TPM晶片,[27]并已将TPM供应商ID分配给超威半导体爱特梅尔博通IBM、英飞凌、英特尔联想美国国家半导体、Nationz Technologies、新唐科技、高通瑞昱半导体标准微系统公司、意法半导体、三星、Sinosun、德州仪器华邦电子[28]

TPM 2.0 实现

TPM 2.0有五种不同实现类型(按安全性从高到低排列):[29][30]

  • 独立TPM 是在其自己的防篡改半导体封装中实现TPM功能的专用晶片。它们是最安全的,通过了 FIPS-140 认证,具有3级物理安全[31],相对于软件中实现的例程,它们对攻击的抵抗力更强,并且它们的封装需要实现一定的防篡改能力。例如,汽车制动控制器中的TPM通过复杂的方法防止骇客入侵。[32]
  • 集成TPM 是另一个晶片的一部分。虽然它们使用可以抵抗软件错误的硬件,但它们不需要实现防篡改功能。英特尔已在其部分晶片组中集成了TPM。
  • 固件TPM(fTPM)是基于固件(例如 UEFI)的解决方案,在 CPU 的可信执行环境中运行。英特尔、AMD 和高通已经实现了固件 TPM。
  • 虚拟TPM(vTPM)由虚拟机内部运行的软件隐藏的隔离执行环境中的虚拟机监控程序提供并依赖于该程序,以保护其代码免受虚拟机中软件的攻击。它们可以提供与固件 TPM 相当的安全级别。谷歌云平台已经实现了vTPM。[33]
  • 软件TPM 是 TPM 的软件仿真器,其运行时获得的保护不超过操作系统中常规程序获得的保护。它们完全依赖于运行环境,因此它们提供的安全性不超过正常执行环境可以提供的安全性。它们对于开发目的很有用。

开源实现

TPM 2.0规范的官方TCG参考实现由微软开发。它在BSD许可证下获得许可,并且源代码可在GitHub上获得。[34]

2018 年,英特尔开源了其可信平台模块2.0(TPM2)软件栈,支持Linux和Microsoft Windows。[35]源代码托管在GitHub上,并在BSD许可证下获得许可。[36][37]

英飞凌资助开发了一个开源TPM中间件,该中间件符合TCG的软件栈(TSS)增强系统API(ESAPI)规范。[38]它由弗劳恩霍夫协会安全资讯科技研究所(SIT)开发。[39]

IBM的软件TPM 2.0是TCG TPM 2.0规范的实现。它基于TPM规范第3部分和第4部分以及微软捐赠的源代码。它包含完成实现的其他文件。源代码托管在 SourceForge[40]GitHub[41] 上,并在 BSD 许可证下获得许可。

2022 年,AMD宣布,在某些情况下,他们的fTPM实现会导致性能问题。BIOS更新中提供了修复程序。[42][43]

TPM 1.2与TPM 2.0

虽然TPM 2.0涵盖了许多相同的用例并具有相似的功能,但细节有所不同。TPM 2.0不向后兼容TPM 1.2。[44][45][46]

More information 规范, TPM 1.2 ...
规范 TPM 1.2 TPM 2.0
架构 完整的规范旨在包含一个特定于平台的保护配置文件,该配置文件引用了一个通用的三部分TPM 1.2 库。[5]实际上,只为TPM 1.2创建了一个PC客户端保护配置文件。PDA蜂窝的保护配置文件原本打算定义,[5]但从未发布。 完整的规范包含一个特定于平台的规范,该规范引用了一个通用的四部分TPM 2.0库。[47][7] 特定于平台的规范定义了该平台的库的哪些部分是强制性的、可选的或禁止的;并详细说明了该平台的其他要求。[47] 特定于平台的规范包括PC客户端,[48]移动设备,[49]和Automotive-Thin。[50]
算法 SHA-1RSA是必需的。[51] AES 是可选的。[51]三重DES曾经是早期版本TPM 1.2中的可选算法,[52] 但已从TPM 1.2版本103中删除。[53] PKCS#1中定义的MGF1基于哈希的掩码生成函数是必需的。[51] PC客户端平台TPM配置文件(PTP)规范要求使用SHA-1SHA-256进行哈希处理;RSA、使用NIST P-256曲线的ECC用于公钥密码学和非对称数码签名生成和验证;HMAC 用于对称数码签名生成和验证;128位AES用于 对称密钥算法;TCG PC客户端平台 TPM 配置文件(PTP)规范要求使用PKCS#1中定义的MGF1基于哈希的掩码生成函数。[54]还定义了许多其他算法,但它们是可选的。[55]请注意,三重DES已添加到 TPM 2.0库中,但有限制以拒绝弱密钥英语Weak_key[56]此外,在早期版本中强制要求的、使用 Barreto-Naehrig ECC曲线的椭圆密码学直接匿名证明英语Direct_Anonymous_Attestation(ECDAA)在PC客户端配置文件版本 1.59 中已变为可选。[54]
密码原语 随机数生成器公钥加密算法加密哈希函数、掩码生成函数、数码签名 生成和验证以及直接匿名证明英语Direct_Anonymous_Attestation是必需的。[51]对称密钥算法异或 是可选的。[51]密钥生成也是必需的。[57] TCG PC客户端平台TPM配置文件(PTP)规范要求使用随机数生成器公钥加密算法加密哈希函数对称密钥算法数码签名生成和验证、掩码生成函数和异或[54]对于TCG PC客户端平台TPM配置文件(PTP)规范,使用Barreto–Naehrig 256位曲线的基于ECC直接匿名证明英语Direct_Anonymous_Attestation是可选的。[54]TPM 2.0通用库规范还要求密钥生成密钥派生函数[58]
层级 一个(存储) 三个(平台、存储和背书)
根密钥 一个(SRK RSA-2048) 每个层级多个密钥和算法
授权 HMAC、PCR、局部性、物理存在 密码、HMAC和策略(涵盖 HMAC、PCR、局部性和物理存在)。
NVRAM 非结构化数据 非结构化数据、计数器、位图、扩展、PIN通过与否。
Close

TPM 2.0策略授权包括1.2 HMAC、局部性、物理存在和PCR。它添加了基于非对称数码签名的授权、对另一个授权密钥的间接授权、计数器和时间限制、NVRAM值、特定命令或命令参数以及物理存在。它允许对这些授权原语进行AND和OR运算以构建复杂的授权策略。[59]

接受度

中华人民共和国商用密码产品销售管理以前规定“任何单位或个人不得销售境外的密码产品”,因此早期市场销售的资讯装置不搭载TPM。[2]2005年前后,中国开始推行国产密码技术TCM系统(Trusted Cryptographic Module)。[60]

可信计算组织英语Trusted_Computing_Group(TCG)在某些领域推广这项技术时遇到了阻力,一些作者认为这项技术可能存在与可信计算无关的用途,这可能会引发隐私问题。这些担忧包括滥用软件远程验证来决定允许运行哪些软件,以及可能以用户完全无法察觉的方式将用户采取的操作记录到数据库中。[61]

TrueCrypt磁碟加密实用程序及其派生产品VeraCrypt不支持TPM。最初的TrueCrypt开发人员认为,TPM的唯一目的是“防止需要攻击者拥有管理员权限或物理访问电脑的攻击”。对电脑拥有物理或管理访问权限的攻击者可以绕过TPM,例如,通过安装硬件击键记录器、重置TPM或捕获内存内容并检索TPM发出的密钥。谴责性文字甚至声称TPM完全是多余的。[62]VeraCrypt发布者复制了最初的说法,除了将“TrueCrypt”替换为“VeraCrypt”之外没有任何更改。[63]作者的观点是正确的,即在获得不受限制的物理访问权限或管理员权限后,绕过现有的其他安全措施只是时间问题。[64][65]但是,阻止拥有管理员权限的攻击者从来都不是TPM的目标之一(有关详细资讯,请参阅§ 用途),并且TPM可以阻止某些物理篡改[17][20][23][24][25]

2015 年,理查德·斯托曼建议将“可信计算”一词替换为“背叛计算”,因为如果密码密钥对用户保密,则电脑可能会被设置为系统地不服从其所有者。他还认为,2015年用于PC的TPM目前并不危险,并且没有理由在电脑中包含TPM或在软件中支持TPM,因为业界尝试使用该技术进行DRM的尝试失败了,但2022年发布的TPM2正是他警告过的“背叛计算”威胁。[66]

攻击

2010年,克里斯托弗·塔尔诺夫斯基英语Christopher_Tarnovsky黑帽大会上展示了针对TPM的攻击,他声称能够从单个TPM中提取秘密。在对Infineon SLE 66 CL PC插入探针并监视内部总线进行6个月的研究后,他成功实现了这一点。[67][68]

如果存在物理访问权限,则配备TPM 1.2的电脑容易受到冷启动攻击,只要系统处于开启状态或可以在不输入密码的情况下从关机、睡眠休眠状态启动即可,这是使用BitLocker全磁碟加密的Windows电脑的默认设置。[69]有人提出了一种修复方法,该方法已在TPM 2.0规范中采用。

2009 年,TPM 1.2中共享授权数据的概念被发现存在缺陷。获得数据访问权限的攻击者可以欺骗来自TPM的响应。[70]有人提出了一种修复方法,该方法已在TPM 2.0规范中采用。

2015年,作为斯诺登事件英语2010s_global_surveillance_disclosures的一部分,据透露,美国中央情报局的一个团队在2010年的一次内部会议上声称,他们对TPM进行了差分功率分析攻击,并成功提取了秘密。[71][72]

2017年11月之前的主要可信启动英语Trusted_Execution_Technology#TBOOT行版都受到测量动态信任根(DRTM)攻击(CVE-2017-16837)的影响,该攻击会影响在英特尔可信执行技术(TXT)英语Trusted_Execution_Technology#TBOOT上运行启动例程的电脑。[73]

2018年,有人报告了用于测量静态信任根(SRTM)的TPM 2.0规范中的一个设计缺陷(CVE-2018-6622)。它允许攻击者重置和伪造平台配置寄存器,这些寄存器旨在安全地保存用于启动电脑的软件测量值。[74]修复它需要特定于硬件的固件补丁。[74]攻击者滥用电源中断和TPM状态恢复来欺骗TPM,使其误以为它在未被篡改的组件上运行。[73]

2021年,Dolos Group展示了对独立TPM的攻击,其中TPM晶片本身具有一定的防篡改能力,但其通信总线的其他端点却没有。他们在全磁碟加密密钥通过主板传输时读取了它,并使用它解密了手提电脑的SSD。[75]

2017年弱密钥生成争议

2017年10月,据报道,由英飞凌开发并在其TPM中广泛使用的代码库包含一个名为ROCA的漏洞,该漏洞会生成弱RSA密钥对,从而允许从公钥推断出私钥。因此,所有依赖此类弱密钥的隐私的系统都容易受到攻击,例如身份盗窃或欺骗。[76]

将加密密钥直接存储在TPM中而不进行盲化英语Blinding_(cryptography)的密码系统可能特别容易受到此类攻击,因为如果攻击者可以提取加密密钥,则密码和其他因素将毫无意义。[77]

英飞凌已向使用其TPM的制造商发布了固件更新。[78]

可用性

目前,几乎所有PC和手提电脑制造商都在其产品中提供了TPM。

TPM

TPM 由多家供应商提供:

  • 英飞凌提供TPM晶片和TPM软件,它们作为 OEM 版本随新电脑一起交付,英飞凌还单独提供符合TCG标准的TPM技术产品。例如,英飞凌在2004年向Broadcom公司授权了TPM管理软件。[79]
  • 微芯(前身为 Atmel)制造的TPM设备声称符合可信平台模块规范1.2版修订版116,并提供多种接口(LPC、SPI 和 I2C)、模式(FIPS 140-2 认证和标准模式)、温度等级(商用和工业级)和封装(TSSOP和QFN)。[80][81][82] 其TPM支持PC和嵌入式设备。[80]它还提供 TPM 开发包,以支持将其TPM设备集成到各种嵌入式设计中。[83]
  • 新唐科技为PC应用提供 TPM 设备。新唐还通过 I2C 和 SPI 主机接口为嵌入式系统和物联网(IoT)应用提供TPM设备。新唐的TPM符合共同准则(CC),保证等级为EAL 4,并增加了ALC_FLR.1、AVA_VAN.4 ALC_DVS.2,FIPS_140-2英语FIPS_140-2等级为2,物理安全性和EMI/EMC等级为3,并符合可信计算组织英语Trusted_Computing_Group的要求,所有这些都在一个设备中得到支持。华邦电子生产的TPM现在是新唐的一部分。[84]
  • 意法半导体自2005年以来一直为PC平台和嵌入式系统提供TPM。产品包括[85]具有多个接口的独立设备,支持串行外设接口(SPI)和I²C以及不同的认证等级(消费级、工业级和汽车级)。TPM产品已通过共同准则(CC)认证EAL4+,并增加了ALC_FLR.1和 AVA_VAN.5,FIPS_140-2英语FIPS_140-2 2级认证,物理安全等级为3,并且还通过了可信计算组织英语Trusted_Computing_Group(TCG)认证。

还有混合类型;例如,TPM 可以集成到以太网控制器中,从而无需单独的主板组件。[86][87]

现场升级

现场升级是TCG用于更新TPM固件的术语。更新可以在TPM 1.2和TPM 2.0之间,或在固件版本之间进行。一些供应商限制了1.2和2.0之间的转换次数,而一些供应商则限制回滚到以前的版本。[来源请求]平台OEM(如惠普[88]提供升级工具。

自2016年7月28日起,所有新的Microsoft设备型号、系列或系列(或通过重大更新(如 CPU、显卡)更新现有型号、系列或系列的硬件配置)都默认实现并启用了TPM 2.0。

虽然TPM 1.2部件是独立的硅组件,通常焊接到主板上,但TPM 2.0可以作为独立的(dTPM)硅组件在一个半导体封装中使用,也可以作为集成组件并入一个或多个半导体封装中——与同一封装中的其他逻辑单元一起使用,还可以作为基于固件(fTPM)的组件在通用片上系统(SoC)上的可信执行环境(TEE)中运行。[89]

虚拟TPM

  • Google计算引擎将虚拟化TPM(vTPM)作为Google Cloud的Shielded VM产品的一部分提供。[90]
  • libtpms 库提供了可信平台模块(TPM 1.2 和 TPM 2.0)的软件仿真。它的目标是将 TPM 功能集成到虚拟机管理程序中,主要是集成到Qemu中。[91]

操作系统

平台

  • 谷歌在其安全模型中将TPM包含在Chromebook中。[99]
  • 甲骨文在其 X 系列和T系列系统(如 T3 或 T4 系列伺服器)中提供TPM。[100]Solaris 11中包含对此的支持。[101]
  • 2006年,随着首批采用英特尔处理器的Macintosh机型的推出,苹果开始在Mac中配备TPM。苹果从未提供过官方驱动程式,但有一个GPL下的端口可用。[102]自2006年以来,苹果就没有推出过配备TPM的电脑。[103]
  • 2011年,台湾制造商微星推出了其Windpad 110W平板电脑,该平板电脑配备了AMD CPU和英飞凌安全平台TPM,并预装了3.7版控制软件。该晶片默认情况下处于禁用状态,但可以使用随附的预安装软件启用。[104]

虚拟化

  • VMware ESXi虚拟机管理程序自4.x版本开始支持TPM,从5.0版本开始默认启用。[105][106]
  • Xen虚拟机管理程序支持虚拟化TPM。每个guest都获得其自己唯一的、模拟的软件TPM。[107]
  • KVMQEMU结合使用,支持虚拟化 TPM。截至2012年 (2012-Missing required parameter 1=month!),它支持将物理TPM晶片直通到单个专用guest。2017年12月发布的QEMU 2.11还为guest提供了模拟 TPM。[108]
  • VirtualBox从2022年10月发布的7.0版本开始支持虚拟TPM 1.2和2.0设备。[109]

软件

  • 微软操作系统Windows Vista及更高版本将该晶片与其包含的名为BitLocker的磁碟加密组件结合使用。微软曾宣布,从2015年1月1日起,所有电脑都必须配备TPM 2.0模块才能通过Windows 8.1硬件认证英语Hardware_certification[110]但是,在2014 年 12月对Windows认证计划的审查中,这成为了一项可选要求。但是,连接待机英语InstantGo系统需要TPM 2.0。[111] 从Windows 10 1511和Windows Server 2016开始,在 Hyper-V 上运行的虚拟机可以拥有自己的虚拟 TPM 模块。[112] Microsoft Windows 包含两个与 TPM 相关的命令tpmtool(可用于检索有关 TPM 资讯的实用程序)和tpmvscmgr(允许在电脑上创建和删除TPM虚拟智慧卡命令行工具)。[113][114]

参见

参考资料

外部链接

Wikiwand in your browser!

Seamless Wikipedia browsing. On steroids.

Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.

Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.