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

码字不易,求求点个赞呗
【TPM2.0原理及应用指南】 1-3章_第1张图片

第一章 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中,资源通过名称标识,密码与名称绑定,从而消除了这种攻击。在名称中包含了密钥策略,所以名称可以用作证明授权使用密钥意味着什么。

你可能感兴趣的:(笔记,安全)