【TPM2.0原理及应用指南】 1-3章

码字不易,求求点个赞呗
可信计算技术理念描述

第一章 TPM的历史

可信平台模块(TPM)是一种加密协处理器。
可信计算组织(TCG)
直接匿名认证(DAA)
认证可迁移密钥(Certified Migratable Key,CMK)
隐私证书认证中心(CA)
平台配置寄存器(PCR)是TPM中的动态内存区,用来保持系统的引导序列度量结果的完整性。PCR可与身份密钥一起用于证明系统引导顺序是否正常。

第二章 基础安全概念

2.1 密码攻击

  • 穷举攻击
  • 针对算法本身的攻击

密码算法应该避免以下缺陷:

  • 算法弱点:选择被认可的算法
  • 穷举攻击:扩大密钥长度,让用户选择需要的密钥长度

2.2 安全相关定义

消息:在双方间传送的字节序列
机密性:防止未授权方查看消息neir
共享秘密:双方都知道的一个值
完整性:消息在储存及传输的过程中没有被修改
认证:将消息关联到创建者,使接收方可以确定只有创建者能发送这条消息
授权:证明用户被允许执行这个操作
抗重放:防止攻击者对有效消息进行再利用
不可否认性:防止发送方否认其发送了消息

2.3 密码大家族

  • 安全哈希(摘要)
    密码哈希比普通哈希要复杂,能接收一条任意长度的消息并将它压缩成固定长度的哈希序列。安全哈希用于哈希扩展操作、HMAC、票据、非对称密钥数字签名和密钥派生函数。为保证机密性,安全哈希有以下重要特征:
    • 对于给定的消息,构造另一条与它有同样哈希的消息是不可行的
    • 构造两条有同样哈希值的消息是不可行的
    • 由哈希值解出原消息是不可行的
  • 哈希扩展
    一旦消息被扩展,就不能通过逆运算取消操作或删除历史记录。
    • 扩展机制用于更新平台配置寄存器(PCR)的值,扩展入PCR的值能够表示平台状态
    • 也可用于审计日志种,审计日志记录了TPM的请求及回复信息
  • HMAC:消息认证码
    它将消息同一个共享密钥一起哈希之后得出
    • 可用于向TPM证明用户已经掌握了TPM实体授权数据
    • 用于存储在外部的结构的完整性,即证明没有被攻击者篡改
    • 也可用于生成密钥,这时就需要密钥派生函数
  • KDF:密钥派生函数
    TPM需要支持由单一秘密生成多种密钥,这个秘密称为种子密钥,而由种子密钥生成多种秘密的算法称为密钥派生函数(FDF)。TPM使用一种特殊算法使HMAC可作为KDF用,通常它使用种子密钥作为HMAC密钥去将一些变化的数据HMAC化来生成密钥。(这体现一个基本的密码学原则:不能对两个不同的应用使用相同的密钥)
  • 认证或授权票据
    票据是一种包含许多数据的HMAC的数据结构,票据允许TPM延迟验证其执行的操作。因为票据容量有限无法装下整套数据,有时会用消息的摘要取代原本的数据。票据中用于生成HMAC的HMAC密钥不是共享秘密,它只有TPM知道。
  • 对称密钥
    在以下三种情况下会使用:TPM数据对外部保密、TPM通信加密、使用TPM来协同处理密码
    • 对称密钥算法模式 :
      • 电子密码本(ECB):只是简单加密,相同数据分组产生相同密文
      • 密码分组链接(CBC)
      • 密码反馈(CFB)
      • 输出反馈(OFB)
      • 计数器(CTR)

加密可保证保密性,但并不能提供完整性及认证机制。
加密信息无法证明消息是否是近期产生的,这个功能由nonce实现

  • nonce
    是一种在密码操作中只会使用一次的数字,常用于防止重放攻击。为确保消息没有被重放,接收方会生成一个nonce并将其发送给发送方。发送方把nonce放入消息之中。通常TPM nonce会与一个请求消息一起参与HMAC的计算,在消息使用完毕后,TPM会更改nonce,若请求方仍使用旧的nonce,则会验证失败。nonce许保证足够大,不会出现循环。
  • 非对称密钥
    • RSA,使用大数质数分解作为单向函数。一般数字签名不是直接对数据签名,而是由数据生成摘要,对摘要签名。
    • ECC,基于有限域的椭圆曲线。同等强度下ECC密钥比RSA密钥短小很多。
      • ECDH(Diffie-Hellman)实现密钥传递:ECC和RSA的不同是,ECC需要两步,而RSA只需要一步。在TPM上需要使用ECDH时,首先(在软件中)生成另一个ECDH密钥,第二步,用新生成的ECDH密钥中的私钥和TPM ECDH密钥种的公钥生成一个临时随机数,将随机数输入到KDF中生成一个对称密钥。简单来说,RSA可直接提供对称密钥,而ECDH需要自己生成。
      • ECDSA(椭圆曲线数字签名算法):同RSA区别是,由于ECC密钥很小,所以必须保证正在签名的消息的哈希值不会过大。

2.4 公钥认证

如何确保公钥可信,可以创建数字证书,证书包括用户的公钥部分及密钥的属性,证书由CA的密钥签名。

第3章 TPM 2.0 快速教程

TPM1.2 规范主要想要解决以下问题:

  • 设备识别
  • 密钥安全生成
  • 密钥安全存储
  • NVRAM存储
  • 设备健康证明:证明系统的健康情况,若系统受到破坏,则可能不可信

TPM 2.0 还拓展了以下功能:

  • 算法灵活性
  • 增强授权:多因素和多用户身份认证授权策略
  • 密钥快速加载:通过对称密钥算法加载密钥
  • 非脆弱性PCR:过去密钥与设备状态锁定时会导致管理问题,因为通常情况下,设备状态必须由授权状态更改时,密钥也必须更改,现在不是这样了。
  • 灵活管理:不同种类授权可以分开
  • 按名称识别资源

3.1 TPM 1.2 的使用场景

  • 身份识别
  • 加密
  • 密钥存储
  • 随机数发生器(RNG)
  • NVRAM存储:带有限制访问属性,它可以存储密钥,一旦PC关闭,密钥则不可用,这保证了可以向用户提供一些数据,而不用担心由于意外或者恶意的意图而被擦除,NVRAM提供以下功能:
    • 存储用于证书链的根密钥:他们不能被修改
    • 存储背书密钥(EK):EK由制造商存储,用于在产品交付期间解密证书并将密码传递给TPM,设计目的是保护敏感隐私。
    • 存储用于表示机器状态的:例如在统一可扩展固件接口UEFI安全启动实现种使用。
    • 在磁盘可用之前使用的解密密钥的存储:如用于自加密驱动的密钥
  • 平台配置寄存器(PCR):可将TPM中PCR视为引导过程中度量的结果存储的地方。
  • 隐私启用:EK不能直接用于标识特定的TPM,相反TPM提供了一个协议用来生成身份证明密钥(AIK),这个密钥可以作为TPM平台的伪身份密钥。提供使用隐私CA的协议意味着EK可以用于证明AIK源于TPM,而不会证明AIK源自哪个TPM。

3.2 TPM 2.0 额外的使用场景

  • 算法灵活性
  • 增强授权
    新的EA允许存在许多新的情况:多因素多用户认证、资源仅使用n次、资源仅在某些时间段使用、撤销使用资源、资源被不同的人使用的方法。
    • 密码(明文)
    • HMAC密钥(也在TPM 1.2中)
    • 签名(例如,通过智能卡)
    • 使用附加数据签名
    • 至少在启动时,PCR值作为系统状态的代理
    • 位置作为特定命令来源地点的代理
    • 时间
    • 内部计数器值
    • NV索引值
    • NV索引:可以基于NV索引是否已写入来授权
    • 物理存在
  • 密钥快速加载(TPM 2.0新功能)
    TPM 1.2 中,当一个密钥初始化加载时,它必须使用密钥的父密钥私钥进行耗时的私钥解密。这段话有点绕,我的理解是,在1.2中每次计算的密钥在加电断电周期内会存在,断电就删除,但是TPM 2.0 可以将密钥存储在外部存储器中,这样每次加电断电都可以读取了,而不用再次计算。
  • 非脆弱性PCR(TPM 2.0 新功能)
    PCR值通常表示机器的状态,较小编号的PCR表示系统的引导过程,较高的PCR表示内核启动后的事件。**密钥和数据都可以锁定到具有特定值的特定PCR,这种行为叫做密封。**但如果密钥或数据被锁定到代表BIOS的PCR,则升级BIOS则很难,这就是脆弱性PCR。在TPM 2.0 中,可以将事项密封为由特定签名者批准的PCR值,而不是特定的PCR值,即只有当PCR处于被特定机构批准(通过数字签名)的状态时,才能让TPM发布一个秘密。
  • 灵活管理
    TPM 1.0 规范中,在同一时间,TPM只存在两个授权:所有者授权和存储根密钥(SRK)授权,所有者授权用于许多目的
    • 重置字典攻击计数器
    • 将TPM重置为出厂设置
    • 防止SRK被了解众所周知的秘密的人修改
    • 防止创建AIK,为除了TPM所有者的终端用户提供隐私
    • 通过防止创建和删除NVRAM索引,避免NVRAM受到除了了解所有者授权的用户之外的人威胁

TPM2.0 中,所有者授权的各种用途所代表的角色在规范中被分开了,这是通过给予角色不同的授权和策略,以及使它们在TPM中具有不同的hierarchy来实现的。

  • 按名称识别资源(TPM2.0新功能)
    TPM1.0中,资源通过句柄而不是加密名称来识别,因此,若两个资源有相同的授权,低级软件可能被欺骗而改变识别资源的句柄,于是用户可能被欺骗,对不同的行为授予预期不同的授权。TPM2.0中,资源通过名称标识,密码与名称绑定,从而消除了这种攻击。在名称中包含了密钥策略,所以名称可以用作证明授权使用密钥意味着什么。
  • 18
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
A Practical Guide to TPM 2.0: Using the Trusted Platform Module in the New Age of Security is a straight-forward primer for developers. It shows security and TPM concepts, demonstrating their use in real applications that the reader can try out. Simply put, this book is designed to empower and excite the programming community to go out and do cool things with the TPM. The approach is to ramp the reader up quickly and keep their interest.A Practical Guide to TPM 2.0: Using the Trusted Platform Module in the New Age of Security explains security concepts, describes the TPM 2.0 architecture, and provides code and pseudo-code examples in parallel, from very simple concepts and code to highly complex concepts and pseudo-code. The book includes instructions for the available execution environments and real code examples to get readers up and talking to the TPM quickly. The authors then help the users expand on that with pseudo-code descriptions of useful applications using the TPM. What you’ll learn TPM 2.0 architecture fundamentals, including changes from TPM 1.2 TPM 2.0 security concepts Essential application development techniques A deep dive into the features of TPM 2.0 A primer on the execution environments available for application development. Learn as you go! Who this book is for Application software developers, OS developers, device-driver developers, and embedded-device specialists, who will benefit from mastering TPM 2.0 capabilities and building their own applications quickly. This book will give them the tools they need to experiment with and understand the technology. Software architects who need to understand the security guarantees provided by TPMs Managers who fund the projects that use TPMs. Non-technical users who may want to know why TPMs are on their computers and how to make use of them.
### 回答1: tpm-rev-2.0-part-3-commands-01.38.pdf 是一个文档,讨论了 Trusted Platform Module(TPM)版本2.0的命令。TPM是一种硬件安全模块,可用于在计算机系统中保护关键信息的安全性。该文档详细介绍了不同的命令,如读写命令、生成密钥命令、缓存命令、实体命令等。通过了解这些命令,用户可以了解如何使用TPM保护他们的数据和系统。 TPM命令可以通过应用程序接口(API)或命令行界面(CLI)使用。该文档列出了每个命令的语法和参数,并提供了示例代码和输出。此外,该文档还涵盖了TPM的状态和错误代码,以及可用于查询和控制TPM功能的附加命令。 该文档是面向开发人员和系统管理员的,适合已经有一定计算机知识基础的读者。阅读该文档可以帮助用户了解TPM如何工作,以及如何在他们的系统中使用它。使用TPM可以提高系统的安全性,保护用户的敏感信息和数据。 ### 回答2: tpm-rev-2.0-part-3-commands-01.38.pdf 是一份文档,其中包含了 TPM(Trusted Platform Module,可信平台模块)2.0 的指令集。TPM是一种安全芯片,可以用于保护计算机系统的安全,例如通过加密和数字签名来防止篡改、仿冒和恶意软件攻击。该文档包含了命令、响应码、数据输入输出等信息,以帮助开发人员了解和实现TPM的功能。一些命令涉及到密钥生成、证书颁发、数据加密和认证等方面,可以用于构建各种安全应用。同时,文档也描述了TPM的错误代码和执行结果,以便开发人员诊断和解决问题。需要注意的是,由于该文档针对TPM 2.0版本,因此在实际应用中可能需要根据具体情况进行相应的调整和修改。总之,该文档对于想要开发并应用TPM的个人或组织来说是一个非常重要的参考资料。 ### 回答3: tpm-rev-2.0-part-3-commands-01.38.pdf这个文档是TPM(Trusted Platform Module)2.0的命令文档,该文档提供了TPM 2.0的命令集,这些命令用于与TPM交互和控制TPM主板的行为。文档涵盖了许多命令,包括管理命令和普通命令,这些命令用于执行诸如生成加密密钥、认证、加密和解密等功能。 该文档主要涉及到命令的部分和结构,文档中清晰地描述了每个命令的作用和用法,使开发人员和系统管理员可以更好地了解TPM 2.0的功能和应用。知道这些命令可以帮助用户将TPM 2.0集成到其系统中,并可确保系统的安全性。 总体而言,tpm-rev-2.0-part-3-commands-01.38.pdf文档是TPM 2.0的一个重要资源,它提供了详细的信息和指导,使用户可以轻松地在其系统中集成TPM,并充分利用TPM 2.0的安全功能。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Godams

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值