TRUSTEDCOMPUTINGTPMTRUSTEDBOOT1Outline可信平台的基本特性可信计算平台的基本体系可信平台模块(TPM)部件软件接口和服务TCG编程接口TrustedBoot2TrustedComputingAnobjectistrustedifandonlyifitoperatesasexpected.Anobjectistrustworthyifandonlyifitisproventooperateasexpected.3TCGArchitecture4Agenda可信平台的基本特性可信计算平台的基本体系可信平台模块(TPM)部件软件接口和服务TCG编程接口TrustedBoot5FundamentalTrustedPlatformFeaturesProtectedCapabilitiesAttestationIntegrityMeasurement,StorageandReporting6保护能力(ProtectedCapability)保护区域:可信平台模块中存放敏感信息的存储区,如平台配置寄存器(PCR)。保护能力:可信平台模块提供的可以对保护区域进行访问的功能,以命令的形式提供,即TPM命令。7对外证明(Attestation)(Cont..)TPM的身份标识真实身份:唯一地标识一个确定的TPM的一对密钥—真实身份密钥(EK),EK公钥+EK私钥工作身份:与某个TPM的EK关联的一对密钥—工作身份密钥(AIK),AIK公钥+AIK私钥8对外证明(Attestation)对平台进行的证明可信的第三方告诉外部实体:“该平台与一个确定的TPM相关联,你可以相信它提供的完整性度量报告”。由平台进行的证明平台告诉外部实体:“某某完整性度量结果是我提供的”。用平台上的TPM的AIK对PCR寄存器的值进行签名。9完整性度量完整性度量:获取影响平台完整性(可信性)的平台特性的度量值,并把该度量值的摘要存放到PCR中。被度量的值:程序代码或内嵌数据的表示度量产生的摘要:被度量的值的哈希值10完整性存储和报告PCR寄存器保存度量产生的摘要的方法PCR[n]SHA1(PCR[n]+M_data)对外证明记录在PCR中的度量结果。11Agenda可信平台的基本特性可信计算平台的基本体系可信平台模块(TPM)部件软件接口和服务TCG编程接口TrustedBoot12可信计算平台的信任根13RTMRTM是一个可靠地进行完整性度量的计算引擎,以CRTM(corerootoftrustformeasurement)为度量根。CRTM是系统启动后执行的第一段代码,它初始化系统启动后的执行顺序,执行最初的可信度量,然后引导TPM开始工作。CRTM是平台执行RTM时的执行代码,一般存储在BIOS中。14RTSRTS是一个准确的记录完整度量的摘要值和顺序计算引擎,它将完整性度量保存在日志中,将它们的散列值保存在PCR中。PCR/RTMactasRTS15RTRRTR是一个可信的实体来精确和正确的报告信息。使用PCR和RSA以不可伪造的方式向外界报告平台状态。EK/TPMactasRTR16TrustedBuildingBlocks(TBB)可信构件块(TBB):平台中必须纳入到信任根之中的部件,处于保护区域和保护能力的范围之外。TheCRTM,ConnectionoftheCRTMstoragetoamotherboard,TheconnectionoftheTPMtoamotherboardmechanismsfordeterminingPhysicalPresence17ExampleofaTBB18信任边界(TheTrustBoundary)TBB和根信任的组合形成了一个可信边界在该范围内,可以完成对平台的最小配置的完整性的度量、存储和报告信任边界的扩充把通过度量的组件纳入到信任范围之中19信任链(TransitiveTrust)20建立过程可信计算平台将BIOS引导块作为完整性度量可信根,TPM作为完整性报告可信根。从平台加电开始,BIOS的引导模块度量BIOS的完整性值并将该值存储在TPM上,同时在自己可写的那块内存中记录日志;接着BIOS度量硬件和ROMS,将度量得到的完整性值存在TPM中,在内存中记日志;接着OSLoader度量OS,OS度量应用和新的OS组件。当操作系统启动后,由用户决定是否继续信任这个平台系统。这样一个信任链的建立过程保证了系统平台的可信性。21完整性测量(IntegrityMeasurement)measurementeventsmeasuredvalues-arepresentationofembeddeddataorprogramcodemeasurementdigests-ahashofmeasuredvaluesstorageThemeasurementdigestisstoredintheTPMusingRTRandRTSfunctionality.measuredvaluesmaybestoredinStoredMeasurementLog22StoredMeasurementLog(SML)SML记录了摘要值的序列,TPM将这些摘要值保存在相应的PCR。updatestoaPCRPCR[n]SHA-1(PCR[n]+measureddata)SMLdoesnotresideintheTPM.23procedure24MeasurementonLinuxAnexamplefromaLinuxbasedimplementationoftrustedcomputing25LinuxApplicationMeasurements26IntegrityReportingProtocol27协议说明1.请求方发出获取一个或多个PCR寄存器值的请求;2.平台上的度量机制采集SML记录信息;3.度量机制从TPM中获取PCR寄存器的值;4.TPM用AIK对PCR寄存器的值进行签名;5.平台的度量机制采集与TPM关联的凭证,并把SML记录信息、凭证和经过签名的PCR寄存器的值提供给请求方;6.请求方验证请求的响应结果:它计算度量产生的摘要,将其与PCR寄存器的值进行对比,并评估平台的凭证,检查签名信息。28信息交换保护功能(1)绑定(Binding)发送方用接收方的公钥对信息进行加密设实体ES拟把信息M发送给实体ER,ER的公钥和私钥分别是KPUB-ER和KPRI-ER,用KPUB-ER对M进行加密得到KPUB-ER{M},就相当于把M和ER绑定在一起,因为只有用KPRI-ER才能对KPUB-ER{M}进行解密,而只有ER才拥有PPRI-ER。如果实体ER是一个TPM,则以上绑定就是把信息M绑定到特定的TPM上29信息交换保护功能(2)签名(Signing)计算被签名的数据的哈希值,并用私钥对该哈希值进行加密设实体ES的公钥和私钥分别为KPUB-ES和KPRI-ES,ES对信息M进行签名的方法是:首先计算M的哈希值H(M),然后用KPRI-ES对该哈希值进行加密,得到的结果{H(M)}KPRI-ES就称为ES对M的签名如果实体ES是一个TPM,则以上签名就是特定的TPM对信息M的签名。30信息交换保护功能(3)封装(Sealing)选择一组PCR寄存器的值,用一个公钥对该组PCR寄存器的值和一个对称密钥进行加密,然后用该对称密钥对待封装的信息进行加密31ProcedureforSealing/Unsealing32信息交换保护功能(4)封装的签名(Sealed-Signing)先把一组特定的PCR寄存器的值组合到待签名的信息之中,再进行签名33密钥和数据的存储保护方法34Comments(Cont..)TPM中的RTS负责保护存储在TPM中的信息的安全,特别是保护TPM生成的密钥的安全。TPM中的存储空间非常有限,存放不下多少密钥,大量的密钥只能存放在TPM外的存储介质中。TPM中存放密钥的存储区称为密钥槽,TPM外的存储介质中存放密钥的存储区称为密钥槽的缓存,简称密钥缓存。35CommentsTPM外称为KCM的软件负责密钥缓存的管理,管理密钥在TPM与缓存之间的传送存储保护服务除了保护密钥以外,也可以保护数据。如果实体E无法识别数据D,则对于实体E而言,D属于不透明数据。受保护的信息(包括密钥和数据)从TPM内传送到TPM外之前,需要进行加密,SRK是用于进行这样的加密的根密钥。在为TPM建立属主的过程中,可以创建SRK。如果为TPM创建新的SRK,那么由原来的SRK加密的信息就难以再解密了。36密钥属性可迁移在一个TPM中生成的密钥可以传送到另一个TPM中使用。不可迁移在一个TPM中生成的密钥只限在该TPM中使用。37密钥类型(1)SigningkeysSigningkeysareasymmetricgeneralpurposekeysusedtosignapplicationdataandmessages.Signingkeyscanbemigratableornon-migratable.StoragekeysStoragekeysareasymmetricgeneralpurposekeysusedtoencryptdataorotherkeys.Storagekeysareusedforwrappingkeysanddatamanagedexternally38密钥类型(2)IdentityKeysIdentityKeys(a.k.a.AIKkeys)arenon-migratablesigningkeysthatareexclusivelyusedtosigndataoriginatedbytheTPMEndorsementKeyEndorsementKey(EK)isanon-migratabledecryptionkeyfortheplatform.ItisusedtodecryptownerauthorizationdataatthetimeaplatformownerisestablishedandtodecryptmessagesassociatedwithAIKcreation.39密钥类型(3)BindkeysBindkeysmaybeusedtoencryptsmallamountsofdata(suchasasymmetrickey)ononeplatformanddecryptitonanotherLegacyKeysLegacyKeysarekeyscreatedoutsidetheTPM.TheyareimportedtotheTPMafterwhichmaybeusedforsigningandencryptionoperations.Theyarebydefinitionmigratable.AuthenticationKeysAuthenticationKeysaresymmetrickeysusedtoprotecttransportsessionsinvolvingtheTPM.40LoadingTPMKeys(1)41LoadingTPMKeys(2)42LoadingTPMKeys(3)43LoadingTPMKeys(4)44Agenda可信平台的基本特性可信计算平台的基本体系可信平台模块(TPM)部件软件接口和服务TCG编程接口TrustedBoot45TPM组件体系结构46Comments输入/输出组件:对通信总线上的信息流进行管理非易失性存储器:存放真实身份密钥(EK)、存储根密钥(SRK)、属主的授权数据和永久的标记。PCR寄存器:供操作系统和应用软件使用工作身份密钥(AIK):永