一 可信计算介绍
当前,数字经济飞速发展,数据已成为与土地、劳动力、资本、技术并列的核心生产要素。国内首部可信数据空间能力标准,《可信数据空间 能力要求》也于今年7月1日正式发布。绿盟科技深度参与标准建设,今年也正式发布了“可信数据空间”、“可信连接器”等面向数据要素流通的解决方案[1]。作为最早一批投入隐私计算安全研究的安全厂商,绿盟可信数据空间解决方案的一大特色就是“安全可信”。本篇文章将介绍绿盟可信数据空间、可信连接器中的核心技术之一——可信计算。
图1:绿盟可信数据空间架构
可信计算(Trusted Computing,TC)是一种基于硬件安全机制的防护手段,确保目标实体始终以预期的方式运行。可信计算的概念由可信计算组织所提出,旨在建立一个根信任(Root of Trust)的机制,从而确保系统中的各个组件和操作是可信的。可信计算涉及硬件、软件和系统的综合安全性,包括设备启动、认证、隔离和管理等。
可信计算的基本思想是:通过硬件建立一个可信根,基于可信根建立一条从可信根到硬件平台、操作系统,最终到应用实体的信任链,并逐级提供可信背书,最终实现应用实体的可信。我国也在不断探索,提出了主动免疫可信计算(又称可信计算3.0)的思想,不但能够被动防御已知威胁,还能够主动预测与应对未知攻击,增强系统整体的安全性。目前我国针对可信计算已发布多种国家标准,如可信平台控制模块标准(GB/T 40650—2021)[2]、可信计算规范体系结构标准(GB/T 38638—2020)等[3]。
由于可信计算更侧重于“可信”这一概念,因此该技术主要被应用于建立可证明没有被攻击者篡改的运行环境。一般要求可信计算的信任根硬件具有密钥存储、度量验证的能力,当硬件设备度量到目标内容符合预期或通过验证时,则对目标授予对应密钥,完成授权。因此,可信计算应用范围较为广泛,无论是云计算、物联网、移动互联场景还是传统的基础设施安全防护,可信计算都可以为它们提供”可信“这一能力,确保目标环境、系统或组件的可信度。
二. 可信计算的核心技术:TPM与TPCM
可信计算的概念起源于1985年,美国国防部制定了《可信计算机系统评估准则》(TCSEC),首次提出了可信计算基(Trusted Computing Base,TCB)的概念,并将TCB作为系统安全的基础。最早的可信计算通过容错技术实现,主要通过容错算法、冗余备份、故障排除等方式实现对主机的可靠性提供保障。一般称此阶段为可信计算1.0。
1999年,Intel、IBM、微软等巨头公司成立了可信计算平台联盟(TCPA),并于2003年改组为可信计算组织,开始制定一系列可信计算的标准与规范。TCG对应建立可信,所提出的思想是:在计算机系统中建立一个可信根,再基于可信根建立一条信任链,通过逐级信任的方式,将信任通过信任链扩展到整个系统中。信任根包含可信度量根(Root of Trust for Measurement,RTM)、可信存储根(Root of Trust for Storage,RTS)和可信报告根(Root of Trust for Report,RTR),分别用于度量平台状态、保护敏感数据以及提供数字签名。
基于上述思想,TCG制定了可信平台模块(Trusted Platform Module,TPM)规范,并将TPM作为可信根。TPM一种集成在计算机主板上的安全芯片,主要用于存储加密密钥、密码和证书等安全数据。TPM最初的版本是1.1b,于2003年发布,随后TCG在2005年推出了改进版TPM 1.2,增加了对SHA-1算法的支持。TPM的出现标志着可信计算进入2.0阶段。
一般来说,TPM由安全的易失性存储器与非易失性存储器、随机数生成器、密码协处理器、执行引擎等组件组成,如图2所示。每个TPM中都会有一对使用公钥密码的根存储密钥对,其中私钥部分不会对外暴露。因此,可用根存储密钥的公钥对数据进行加密并存入TPM中,当度量验证通过时,TPM会用根私钥对数据进行解密。此外,根私钥还可以用于提供远程证明的能力,TPM使用根私钥对所要背书的信息进行签名,生成远程证明报告。安全存储器可用于存储密钥等机密信息,为TPM提供密封存储功能。TPM中包含多个平台配置寄存器(Platform Configuration Register,PCR),一般用于存储度量值,也就是度量目标的哈希值。基于这些组件,TPM具备了安全存储、密钥管理、度量验证、远程证明等能力。
图2 TPM的构成
在利用TPM实现可信启动的过程中,使用PCR存储 不同阶段需要度量的信息,如硬件信息、BIOS、内核、initrd等,比如在BIOS启动阶段,TPM与PCR中的对应值做对比,如果一致,则说明BIOS没有被篡改,继续下一步的启动与度量过程。此外,TPM还可以利用其密封存储功能为加密部分提供密钥,比如当系统对根分区加密后,TPM验证了initrd没有被篡改,则可以在initrd挂载根分区阶段中,释放根分区加密密钥,完成对根分区的解密再进一步挂载,从而为系统根分区提供了机密性保障。
然而TPM 1.2版本存在一定缺陷,首先其公钥采用RSA算法,与ECC算法相比存在同等安全性下密钥长度更长、运算速度较慢的缺点;其次TPM 1.2中没有引入对称密码引擎,缩写了其应用场景;此外,TPM 1.2中采用的哈希函数为SHA-1算法,存在一定安全隐患。
我国也高度重视可信计算这一领域,积极推动可信计算的研究与发展。为实现自主可控,我国为对标与改进TPM,提出了可信密码模块(Trusted Cryptography Module,TCM),成为了我国可信计算技术体系的重要基石。如图3所示,其创新性主要体现在三个方面:以国密算法作为基础;采用对称与非对称密码相结合;采用双证书体系(平台证书和用户证书)。
图3 TCM的构成
2015年TCG发布了TPM 2.0规范。TPM 2.0对TPM 1.2做了较大改进,包括吸收TPM 1.2与TCM的优点,引入了对称密码算法的支持,支持了多种密码算法等。更重要的是,TPM 2.0不再限制TPM必须以安全芯片的形式存在,而仅提供一种可能实现的方式,这使得不同形式的TPM开始出现,包括基于TEE的TPM、虚拟化TPM(vTPM)等。
三. 可信计算3.0:主动免疫技术
尽管TPM 2.0已有了巨大进步,其泛用性与易用性都得到了增强,但其本质依旧为一种被动的安全机制。对此,我国网络安全专家沈昌祥院士提出了主动免疫可信计算的概念,也称为“可信计算3.0”。主动免疫是指可信部件可以主动监控计算部件,能够位计算部件提供身份识别、状态度量、保密存储等功能,能够预防与阻断未知的攻击行为,为网络信息系统提供了”免疫“的能力。
如图4所示,主动免疫的核心是计算与防护并存的双体系架构,通过软硬结合的方式,在保证计算部件功能流程不变的情况下,并行建立一个逻辑上独立的防护部件,为计算部件提供安全防护。防护部件由可信密码模块TCM(Trusted Cryptography Module)、可信平台控制模块TPCM(Trusted Platform Control Module)和可信软件基TSB(Trusted Software Bse)构成。其中TPCM作为可信根,可主动对计算部件进行度量并实时控制;而可信软件基则作为一个中间层,对上承接可信管理机制,实施主动监控,对下调度TPCM等可信硬件资源,协同完成主动度量与控制。
图4: 双体系防护架构
如图5所示,TPCM与TPM/TCM类似,是一个集成在可信平台中的硬件模块,内部集成了可信度量根RTM、可信存储根RTS与可信报告根RTR,作为信任源头存在。TPCM在TCM的基础上增加了信任根控制功能,实现密码与控制相结合以TPCM为根的主动控制和度量功能。TPCM先于CPU启动,对BIOS进行验证,改变了可信平台模块作为被动设备的传统思路,将可信平台模块设计为主动控制节点,实现了TPCM对整个平台的主动控制。
图5: TPCM组件构成
基于TCM与TPCM,可信计算3.0构造了一个逻辑上可以独立运行的可信子系统,并通过这一子系统能够对目标系统、程序等内容通过主动监控的方式提供可信、可控、可管的安全防护能力,实现纵深防护,提升了攻击难度和成本。
四. 可信计算VS机密计算
可信计算与机密计算有着相辅相成的关系。一方面,两者都是基于硬件安全模块提供安全隔离与防护,建立信任机制。区别在于可信计算更侧重于建立信任,其安全存储区域仅用于存储密钥、度量值等关键信息,当信任关系达成时释放对应关键信息。而机密计算则更注重于机密环境的构建,除了存储密钥外,机密计算还会由安全硬件为程序执行环境提供安全隔离与防护。换言之,可信计算能够确保程序执行环境的可信度,但无法保护其机密性,一旦主机被攻击者入侵,其内部敏感信息依旧存在泄露风险。而机密计算则是能够保障在主机被入侵的情况下,攻击者依旧无法窥探安全空间中的内容。
另一方面,可信计算与机密计算均采用同样的思路来为受保护的环境提供安全证明,即从信任根出发的信任链构建,但在实际的信任背书过程中又略有不同。在可信计算中,信任根一般依托TPM存在。以可信启动某根分区加密主机为例,一般情况下,机器管理员需要预先将设备BIOS、GRUB、系统内核、initrd等启动过程中涉及组件的哈希作为度量值存入TPM的PCR中,并将系统根分区解密密码也密封至TPM中。此时启动主机,TPM会先验证对BIOS的度量结果是否与PCR中BIOS度量值一致,若一致则说明BIOS可信,并继续启动流程,引导GRUB,并以类似的方式验证GRUB是否可信。通过上述过程,可依次度量BIOS、GRUB、内核、initrd是否可信,并且在度量initrd可信后,输出根分区加密密码,由initrd解密并挂载根分区,完成系统启动。此时启动主机的用户只要信任TPM,即可根据链式关系信任BIOS等组件,最终信任主机系统环境为可信环境。
机密计算的信任链与上述内容略有不同,其信任链不但可用于启动机密计算环境,还可用于远程证明,为机密计算环境中的工作负载提供可信背书,其信任根一般由CPU厂商提供。以远程证明为例,由于机密计算大多由CPU上机密计算组件提供安全能力,一般CPU厂商会在其出厂CPU中生成公私钥对,并由厂商为CPU公钥签名生成证书。当主机完成安全配置,机密计算模块开始运行时,该模块会生成公私钥对,并由CPU私钥为模块公钥进行签名生成证书。当用户要对机密计算环境中某一内容请求远程证明报告时,机密计算模块首先会验证这一内容是否处于安全环境中,若验证正确,则使用机密计算模块的私钥对请求内容生成数字签名,并生成证明报告以及相应证书链。用户在验证时,可先用机密计算模块公钥验证要换成证明报告的真实性,再用CPU公钥验证机密计算模块证书中模块公钥的真实性。对应CPU证书,用户可从厂商处获取根公钥,用于验证CPU公钥的真实性。此时,只要用户信任厂商提供的根密钥,即可根据链式关系进一步信任CPU、机密计算模块以及最终的签名内容,完成对远程证明的信任。
五. 小结
本篇文章,我们介绍了绿盟可信数据空间解决方案其中的关键技术,可信计算技术的起源与发展,以及不同阶段中可信计算的核心技术,包括可信计算2.0中的TPM与TCM,可信计算3.0的TPCM等。可以看出,可信计算与可信执行环境有很多相似之处,可以说可信计算与可信执行环境是相互依存的关系。但不同的是,可信执行环境更注重于对执行环境机密性与完整性的保障,而可信计算则更注重于”可信“这一概念,偏向于确保系统与计算组件的完整性。
可信计算的技术核心在于如何确保可信根的安全,国外通过TPM实现基于安全硬件的信任根,并内置了密钥管理、安全存储、数字签名等能力提供了被动防御的能力。今年RSAC创新沙盒10强之一的Smallstep是 一家为专注于零信任、身份、证书管理的安全公司[4]。Smallstep使用可信硬件TPM实现了终端设备身份的验证,帮助零信任从用户鉴权延伸到终端设备的鉴权。Smallstep也凭借这样创新特性,入选了Gartner报告“Effectively Manage Your Organization’s Certificates”[5]。在之前的RSAC系列文章解读中,我们对Smallstep进行了详细的分析,感兴趣的读者可以参考[6]。
我国则地提出了具有主动防御能力的可信计算3.0体系,通过安全可控的TCM、TPCM等安全硬件,实现为计算部件提供主动的身份识别、状态度量、保密存储等能力,为关键基础设施提供更强的安全防护能力。相信未来可信计算将成为我国网络安全的重要基石,以可信计算3.0为基础的可信CPU、可信BIOS、可信操作系统、可信服务器、可信计算机、可信防火墙等产品将成为未来重要发展方向。
参考文献
1. https://mp.weixin.qq.com/s/w9wcpWFHrSI24SMc1Oilzw.
2.https://openstd.samr.gov.cn/bzgk/gb/newGbInfo?hcno=18C7FD6FBC935007E0ACEA03DDF28AD0
3.https://std.samr.gov.cn/gb/search/gbDetailed?id=A47A713B763F14ABE05397BE0A0ABB25
4.https://smallstep.com/
5. https://www.gartner.com/document/5216363
6. https://mp.weixin.qq.com/s/cCYh4ogG8X9KIJHTMuW67g
责任编辑:陈佛忠
推荐站内搜索:最好用的开发软件、免费开源系统、渗透测试工具云盘下载、最新渗透测试资料、最新黑客工具下载……
还没有评论,来说两句吧...