您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 数据库 > TPM核心功能(第6-7-8次课)
可信计算技术原理与应用邹德清华中科技大学2011年5月3日第4章TPM核心功能1TPM架构2安全度量和报告3远程证明4数据保护5TPM密钥管理TPM架构•非易失性存储(Non-VolatileStorage)•平台配置寄存器PCR•身份认证密钥(Attes.Id.K.)•程序代码(ProgramCode)•随机数生成器RNG•SHA-1引擎•密钥生成(KeyGen.)•可选状态配置(Opt-in)•执行引擎(Execengine)•输入输出I/OTPM内部功能和特性•Non-VolatileStorage非易失性存储–Non-volatilestorageisusedtostoreEndorsementKey(EK),StorageRootKey(SRK),ownerauthorizationdataandpersistentflags.非易失性存储器用于存储授权密钥(EK),存储根密钥(SRK),所有者授权数据和持久性标志。•AttestationIdentityKeys(AIK)认证身份密钥(AIK)–AttestationIdentityKeysmustbepersistent,butitisrecommendedthatAIKkeysbestoredasBlobsinpersistentexternalstorage(outsidetheTPM),ratherthanstoredpermanentlyinsideTPMnon-volatilestorage.–认证身份密钥必须是持久的,但它建议AIK的密钥像blobs存储在持续的外部存储(TPM以外),而不是永久存储在TPM的非易失性存储的。TPM内部功能和特性•I/O–Protocolen-/decoding–EnforceaccesspoliciesassociatedwithOpt-inorotherTPMfunctions–协议en-/decoding;执行访问政策相关的OPT-in或其他TPM功能•ProgramCode–Programcodecontainsfirmwareformeasuringplatformdevices.Logically,thisistheCoreRootofTrustforMeasurement(CRTM).–程序代码包含固件用于测量平台设备。从逻辑上讲,这是信托的核心根对于测量(CRTM)。•RandomNumberGenerator(RNG)–RNGisthesourceofrandomnessintheTPM–TheTPMusestheserandomvaluesfornonces,keygenerationandrandomnessinsignatures.–allowsimplementationofaPseudoRandomNumberGenerator(PRNG)algorithm–TheRNGoutputmayormaynotbeshieldeddata(bytheTPMorbyexternalcaller)TPM内部功能和特性RNG是TPM中的随机性源;RNG是TPM中的随机性源TPM的使用这些随机值作为随机数,密钥生成和随机性在签名中。允许执行一个伪随机数生成器(PRNG)算法RNG的输出可能会或可能不会屏蔽数据(由TPM或由外部呼叫者)•SHA-1Engine–ASHA-1messagedigestengineisusedforcomputingsignatures,creatingkeyBlobsandforgeneralpurposeuse.–SHA-1消息摘要引擎用于计算签名,创建关键Blobs和一般用途。•HMACengine–ComputestheHMACdigestauthDigestresultingfromasecretandarbitrarydata计算HMAC摘要authDigest秘密和任意数据•authDigest←HMAC(secret,data)–MainlyusedinTPM’sauthenticationprotocols主要用于在TPM的身份验证协议•providestwopiecesofinformationtotheTPM:proofofknowledgeoftheauthorizationdataandproofthattherequestarrivingisauthorizedandhasnomodificationsmadetothecommandintransit.提供了两条TPM的信息:证明授权资料的知识和证明了请求到达获授权并在运输过程中命令没有作出任何修改。•SeeOSAP/OIAPprotocols请参阅相应的OSAP/OIAP协议TPM内部功能和特性•RSAKeyGeneration–TCGstandardizestheRSAalgorithmforuseinTPMmodules.ItsrecentreleaseintothepublicdomainmakesitagoodcandidateforTCG.TheRSAkeygenerationengineisusetocreatesigningkeysandstoragekeys.–TCG的规范了TPM模块使用RSA算法。其最近发布到公共领域使得它成为TCG的一个很好的选择。使用的RSA密钥生成引擎创建签名密钥和存储密钥。•RSAEngine–TheRSAengineisusedforsigningwithsigningkeys,encryption/decryptionwithstoragekeys,anddecryptionwiththeEK.–使用RSA引擎签名签名密钥,加密/解密存储密钥和解密EK。TPM内部功能和特性•Opt-In–providesmechanismsandprotectionstoallowtheTPMtobeturnedon/off,enabled/disabled,activated/deactivated.提供机制和保护,使TPM来打开/关闭,启用/禁用,启动/停用。–StoresTPMstateinformation展示TPM的状态信息–Enforcestate-dependentlimitations执行国家依赖限制•ExecutionEngine–Theexecutionenginerunsprogramcode.ItperformsTPMinitializationandmeasurementtaking.执行引擎运行的程序代码。它执行TPM初始化和测量得到。•PlatformConfigurationRegisters(PCR)–APCRisa160-bit/20-bytestoragelocationwhichisusedtostoreintegritymeasurements.–一个PCR是160-bit/20-byte存储位置它是用来存储完整性测量。–WhetheraPCRmustbeusedtostoreaspecificmeasurement(e.g.theCRTM,BIOS…OptionROMcode…),or,whetheritisavailableforgeneraluse,isspecifiedinplatformspecificspecifications.–是否PCR必须使用存储一个特定的测量(如CRTM,BIOS...OptionROM代码...),或者,是否是用于一般用途,被指定在特定平台规格。TPMIntegrationintoPC‐HardwareTPM集成到电脑硬件2安全度量和报告•平台的运行状态–因系统而异,主要包括内核镜像、进程信息列表、应用的二进制可执行程序–TPM存储空间有限,不可能存放与运行状态相关的完整信息,而只能存储其摘要•PCR–平台状态寄存器用来记录系统运行状态的寄存器–TCG规范要求实现的一组寄存器,至少有16个(TCG1.1规范)–TCG1.2规范中引进了8个额外的平台状态寄存器用于实现动态可信度量–平台状态信息的SHA-1散列值存储在平台状态寄存器中,平台状态寄存器就能够代表机器的运行状态PCR的安全访问•为了防止PCR值被恶意代码随便篡改或伪造,TPM限制对平台状态寄存器的操作–不能像普通字符设备的寄存器那样通过端口映射来随意进行读写操作–平台状态寄存器位于TPM内部,其内部数据受到TPM的保护PCR的安全访问•对PCR内容的读取是不受限制的•TPM只允许两种操作来修改PCR的值:重置操作(Reset)和扩展操作(Extend)•重置操作发生在机器断电或者重新启动之后,PCR的值自动重新清零(TCG1.2新引入的寄存器除外)PCR的安全访问•系统运行过程中,只能通过扩展操作来改变PCR的内容。扩展操作:PCR[i]=SHA-1(PCR[i]||newMeasurement)–扩展操作是不可逆的,即先扩展度量值A再扩展度量值B所得到的PCR值跟先扩展B再扩展A的结果是不同的–通过扩展,PCR能够记录一个无限长的度量值序列,这一系列度量值组成的序列反应了系统状态的变迁–这个扩展序列中的某一个度量值被改变了,之后的度量序列都会受到影响平台状态度量日志•平台状态信息可以日志的形式放置在TPM外部的度量日志文件中•PCR中通过扩展来记录度量日志信息的摘要,以供以后对度量日志进行验证•虽然理论上来说,一个PCR维护的度量序列就能够记录整个平台的状态值,但PCR并不只用于校验度量日志,因此在启动过程中用到了多个PCR平台状态寄存器用途PCR用途0核心BIOS,通电自检BIOS,嵌入式非必需ROM1主板配置2非必需ROM代码3非必需ROM配置数据4初始程序导入5初始程序导入配置数据6状态转移(待机,休眠等)7保留做OEM使用8-15未指定信任链产生与完整性度量•恶意代码能够在这个启动序列中的某一个环节上截取控制权,那么它就能够任意篡改和控制之后的启动序列•必须有一种强有力的信任机制来评估系统启动过程是否已经被攻击者所篡改•TPM硬件提供的完整性度量机制能够为启动过程提供可信评估,让机器使用者能够在系统被篡改后能够对此作出正确判断信任链机制•信任传递机制–在信任当前某一环节的前提下,由该环节去评估下一个环节的安全性,确定下一环节可信之后再将控制权转交给下一环节,然后依次向后推进–整个启动序列中都遵循“先度量,再执行”的原则,当前阶段的代码负责度量下一阶段即将要执行的代码,然后再将度量值扩展到PCR寄存器中,这样循环往复,这就构成了信任链。启动过程中信任链的建立BIOS启动块通电自检BIOSGrubLinux内核镜像1.度量1.度量1.度量2.扩展PCR3.写入日志4.移交控制2.扩展PCR2.扩展PCR4.移交控制4.移交控制3.写入日志3.写入日志3.写入日志度量日志TPM信任链•源头(BIOS启动模块)在启动过程中是没有受到度量,即存在一个假设--这个源头是安全可信的•大多数PC系统使用的是可刷写的BIOS固件,这就使得攻击者有可能通过修改BIOS从而摧毁信任根•符合TCG规范的系统必须拥有不可更改的BIOS代码。这段代码可以是一段短小的固化BIOS代码,它来度量其余的大段BIOS,但是最初执行的代码必须是固化不可修改的度量日志•各阶段代码的详细配置信息和对PCR值扩展的操作的历史记录是保存在度量日志中的•度量日志存储在磁盘上,而磁盘属于不可信的外存,因此度量日志是可能被攻击者篡改的•对保存在磁盘上的度量日志并不需要进行额外的保护•攻击者即使篡改了度量日志,但由于PCR中记录的度量值是不可伪造的,用户对度量日志进行摘要就会发现与度量值不匹配可信启动•基于TPM的可信启动并不能强制保证启动过程是可信的,而只是忠实的记录启动过程的完整性状态,交由用户在启动完成之后做可信判断•TPM本身并不能够控制CPU的执行过程启动记录报告•对启动过程完成了度量记录之后,就必须将记录的状态信息安全地报告给要做可信判断
本文标题:TPM核心功能(第6-7-8次课)
链接地址:https://www.777doc.com/doc-3865908 .html