当前位置:网站首页>【TPM2.0原理及应用指南】 12、13、14章
【TPM2.0原理及应用指南】 12、13、14章
2022-07-07 15:38:00 【Godams】
第12章 平台配置寄存器
平台配置寄存器PCR是TPM基本的特征之一。它的主要用途是提供一种密码学记录(度量)软件状态的方法,包括平台上运行的软件和该软件使用的配置数据。PCR更新计算被称为“扩展”,是一种单向哈希计算。这样的计算结果将无法被破解。
TPM不对度量结果做出判断,TPM PCR只记录值。
12.1 PCR值
PCR的主要用例是表示平台软件状态。它记录着到现在为止,在平台上运行的关键软件(和配置)的历史。TPM在上电时通常按照TPM平台规定,将所有PCR初始化为全0或全1.调用者不能直接写PCR值。PCR值:
PCR新值=摘要(PCR旧值||扩展的数据)
重新启动后,一个平台从可信软件开始,该可信软件称为可信度量根的核心(CRTM),CRTM度量(计算摘要值)下一个要运行的软件,并将该摘要扩展进一个偶数编号PCR,然后将该软件的配置数据扩展进奇数编号PCR。
这个过程的安全性取决于CRTM的安全性。作为第一个运行的软件,CRTM无法被度量或验证。它是可信的根源。
PCR数量
实际中,一个TPM包含多个PCR。PC客户端平台要求24个PCR,这个最小的预计值就是PC中实际PCR的数量。平台TPM规范指定了PCR的属性,平台软件规范标准化了PCR度量哪些结果。
PCR授权
授权是PCR常见用途。除非特定的PCR具有特定的值,否则一个实体拥有的策略可以阻止该实体被使用。该策略可以指定PCR的子集和PCR的值。除非PCR处于此状态,否则将不满足策略且不能访问该实体。
PCR用于授权的典型用途是将实体的使用权与平台软件状态相结合,同时也可以实现其他用途。例如,口令可以扩展到PCR中,从而解锁对软件的访问。当不再需要访问时,可以将PCR重置(如果允许)或扩展为其他值。
12.2 PCR验证
验证是PCR的更高级用例。在非TPM平台中,远程软件通常不能确定平台的软件状态。即使通过严格的软件手段报告状态,受影响软件也可以轻易的期骗远程方。
TPM验证提供软件状态的密码学证明。度量是无法撤销的。PCR不能回滚到以前的值。
通过TPM签名验证,远程方知道平台软件的状态。它现在必须确定软件状态十分安全。远程方必须将度量值的哈希值与白名单相匹配,这可能需要来自第三方软件提供商的协作。
这是可信计算概念的本质。PCR提供了一种信任软件模块链的方式,该方式确切反映了平台的软件状态,但是这种方式对软件是否安全不做任何判断。
PCR属性
每个PCR都有几个属性。这些属性在TPM库规范中定义,但是哪些PCR具有哪些属性由平台特定的规范来规定。一般来说,大多数PCR按照约定分配给特定的软件,但是有一些是未分配的且开放给应用程序使用。
DRTM:动态信任根
PCR授权与策略
与其他实体一样,PCR也可能具有授权值或策略。库规范允许针对一个PCR或一组PCR设置授权值或策略。PC客户端TPM没有授权和策略,因为PC客户端无需授权PCR访问。基本原理是授权会增加启动时间,而启动时间通常是一个重要参数。
PCR算法
PCR可以在库中分配,每个PCR库对应于一个哈希算法。该命令允许以任意组合分配PCR,并且可以将一个PCR分配给多个PCR库,同事PCR具有多种算法。TPM2_Extend命令现在必须指定PCR索引和摘要,同时也要指定一个算法。如果没有PCR包含那个指定的算法,则忽略扩展操作。
因此,理论上,软件将执行多个度量,创建多个摘要,然后将每个摘要扩展到对应的库。PC客户端规范仅需要一个具有所有PCR的库。
总的来说:PCR有两个用途,他们的值可能在签名的验证中体现:
- 依赖方可以确定平台软件的可信状态
- PCR可以用于根据PCR值授权使用其他对象的策略
第13章 授权与会话
授权控制了对TPM中实体的访问,为TPM提供了很多安全保证。
会话是在后续命令中授权和维护状态的工具。
13.1 会话相关概念
- 会话变体
它们是在会话创建时建立的,在会话的整个生命周期中持续存在。他们决定如何建立会话,以及HMAC密钥和HMAC如何产生,这里有四个参数,绑定和未绑定(将授权绑定到某些实体的授权值上),加盐和为加盐(密钥产生过程中) - 会话使用修饰符
- 继续:如果没设定,会话将在成功执行一个命令后终止
- 解密:表明第一个TPM2B命令参数以加密形式发送给TPM
- 加密:第一个TPM2B响应参数以加密形式返回给TPM
- 审计:使一个正在使用的会话的命令被审计
13.2 口令、HMAC和策略会话
口令会话是最简单的授权类型:授权行为将明文口令传递给TPM。如果TPM正在被远程访问,这又明显的安全问题:口令会话是旨在用于本地访问的。在TPM中,有一个单一的、始终可用的口令会话,用于授权单个TPM命令,在后续使用之间不保持状态。因此,口令会话无需启动。
HMAC授权是以更安全的方式使用简单口令的方法。HMAC会话使用两个随机数,一个来自于调用方,另一个来自TPM,用来防止重放攻击。HMAC会话在会话生命周期中维持状态,并可用于对TPM实体的多个行为授权。
策略会话,也成为策略增强(EA),建立在HMAC会话之上,并增加额外的授权级别。策略授权通过基于TPM命令序列、TPM状态和外部设备(如指纹识别器、视网膜扫描仪和智能卡)的授权来增强此功能。
13.3 会话与授权
会话:会话是授权的载体。但它也用于授权以外的目的,有与授权协同或完全独立于授权的用途。
以下是需要注意的地方:
- 授权可以是口令、HMAC、或者策略授权
- 口令授权永远不能用于使用修饰符的会话
- HMAC和策略会话可用于授权,也可用于设置任何授权无关的会话用修饰符
- 命令的授权域是指定所有这些授权、会话和会话修饰符的地方
- 命令修饰符可在用于授权的会话以及不用于授权的会话中使用
- 不用于授权的会话也可以在命令和响应字节流的授权区中
- 策略会话可用于加密、解密但不能用于审计
- HAMC会话可用于加密、解密、审计
授权域是在命令和响应字节流中指定会话和授权的位置。
口令授权:最简单的授权方式
13.7 开启HMAC和策略会话
命令在启动会话时,必须是以下会话类型之一:HMAC、策略或试用策略
会话的基本特征在会话启动时确定,这些特征是会话是否绑定、是否加盐、会话密钥的强度、抗重放保护的强度、参数加密和解密的强度。
加盐与未加盐:
绑定与未绑定:
13.8 HMAC和策略会话的区别
13.9 HMAC会话
HMAC会话从三个方面保证了安全性:
- 会话密钥:只有调用者和TPM知道会话绑定的authValue值和salt值,这些值都被用于计算会话密钥
- HMAC:会话密钥和实体的authValue都用于生成HMAC密钥
- 随机数:让随机数参与HMAC计算,预防重放攻击
13.10 策略会话
也称扩展授权(EA)
一个策略通常会被计算两次:一次在构建策略实体时刻,一次在构建策略摘要时刻
13.11 组合授权生命周期
一个授权生命周期典型步骤如下:
- 对于HMAC或策略会话而言,authValue或authPolicy必须在实体创建前确定
- 使用一个授权值、策略哈希创建一个可访问的实体
- 计算HMAC,对于不用HMAC的策略会话,可跳过这步
- 在HMAC或策略授权下,启动HMAC授权
- 使用授权操作进行授权
- 在HMAC会话的条件下,计算期望响应HMAC,并对TPM返回的响应进行验证
第14章 扩展授权策略(EA)
对实体使用策略的总和称为策略
简单断言、基于命令的断言、多因素认证、多用户/复合授权、可以随时更改的灵活策略
EA的工作步骤:
- 创建策略会话
- 用户向TPM提供一个或多个认证
- 在命令中使用实体时,TPM将实体关联的策略与会话策略缓冲区中的值比较
不同类型的策略
- 简单断言策略
- 多断言策略
- 复合策略:引入OR逻辑
- 灵活的策略:使用通配符或后面再定义的占位符
命令的位置(locality):用于指示发送到TPM的命令来源于哪个软件栈
TPM内部状态(引导计数器和计时器)
外部设备状态(GPS、指纹识别器等):
外部设备由一对公私钥表示,设备的状态可以是使用设备私钥进行签名(与TPM产生的随机数一起)的任何东西。
通配符策略:由与通配符有关联的公开密钥的私钥拥有
基于命令的断言:可以限定策略,以便只使用特定的命令
边栏推荐
- AI来搞财富分配比人更公平?来自DeepMind的多人博弈游戏研究
- LeetCode 403. Frog crossing the river daily
- 如何在博客中添加Aplayer音乐播放器
- 电脑无法加域,ping域名显示为公网IP,这是什么问题?怎么解决?
- 状态模式 - Unity(有限状态机)
- mysql使用笔记一
- Skimage learning (3) -- gamma and log contrast adjustment, histogram equalization, coloring gray images
- mysql实现两个字段合并成一个字段查询
- 第二十四届中国科协湖南组委会调研课题组一行莅临麒麟信安调研考察
- A tour of grpc:03 - proto serialization / deserialization
猜你喜欢
How to add aplayer music player in blog
Skimage learning (2) -- RGB to grayscale, RGB to HSV, histogram matching
Reflections on "product managers must read: five classic innovative thinking models"
SIGGRAPH 2022最佳技术论文奖重磅出炉!北大陈宝权团队获荣誉提名
QML初学
麒麟信安加入宁夏商用密码协会
LeetCode刷题day49
【Seaborn】组合图表:FacetGrid、JointGrid、PairGrid
Matplotlib绘制三维图形
Siggraph 2022 best technical paper award comes out! Chen Baoquan team of Peking University was nominated for honorary nomination
随机推荐
On Apache Doris Fe processing query SQL source code analysis
【源码解读】| LiveListenerBus源码解读
LeetCode刷题day49
QML初学
【饭谈】那些看似为公司着想,实际却很自私的故事 (一:造轮子)
防火墙系统崩溃、文件丢失的修复方法,材料成本0元
LeetCode 312. 戳气球 每日一题
The process of creating custom controls in QT to encapsulating them into toolbars (II): encapsulating custom controls into toolbars
Pycharm IDE下载
【视频/音频数据处理】上海道宁为您带来Elecard下载、试用、教程
QT 图片背景色像素处理法
QT picture background color pixel processing method
centos7安装mysql笔记
Jenkins发布uniapp开发的H5遇到的问题
邮件服务器被列入黑名单,如何快速解封?
[Seaborn] implementation of combined charts and multi subgraphs
[source code interpretation] | source code interpretation of livelistenerbus
From Devops to mlops: how do it tools evolve to AI tools?
LeetCode 1986. The minimum working time to complete the task is one question per day
浅浅理解.net core的路由