「TCG 规范解读」第8章 TPM工作组 TPM 1.2中 SHA1的使用

news/2024/3/28 19:14:03/文章来源:https://blog.csdn.net/BillyThe/article/details/129136436

 可信计算组织(Ttrusted Computing Group,TCG)是一个非盈利的工业标准组织,它的宗旨是加强在相异计算机平台上的计算环境的安全性。TCG于2003年春成立,并采纳了由可信计算平台联盟(the Trusted Computing Platform Alliance,TCPA)所开发的规范。现在的规范都不是最终稿,都还在不断的更新中,比如:TPM的规范就从原来的v1.0更新到v1.2,现在还在不断的修订。

SHA1-Impact_V2.0

简介


本文档列出了TPM v1.2规范中SHA-1的使用情况,并对2005年发现的碰撞袭击对其影响进行了评估。总的来说,TCG 采取了一些预防措施来防止碰撞攻击,例如在做哈希前使用新的随机生成值或外部未知的随机生成值。此外,在数据中使用固定结构阻碍了攻击者操纵数据以有效地执行冲突攻击的发生。我们确实发现了一种极端情况,即RSA签名命令在签名之前可能会对输入进行散列,在这种情况下,TCG 不经意的选择了 TPM 之外的数值来连接到待签名数据,如果外部选择新的随机生成的值,在这里不会有问题,否则 TPM 需要提供保护 SHA-1 碰撞攻击的其他方式。

SHA 引擎的主要目的

TPM 包含了以下命令来实现一个通用目的的 SHA-1 引擎:

  • TPM_SHA1Start
  • TPM_SHA1Update
  • TPM_SHA1Complete
  • TPM_SHA1CompleteExtend

 这个能力有助于 SHA-1 哈希的计算,TPM 暴露这些命令方便平台使用。TPM 在执行 SHA-1 会话过程中禁用了其他任何命令的处理。如果在TPM_SHA1Start和TPM_SHA1Complete/TPM_SHA1CompleteExtend中收到TPM_SHA1CompleteExtend以外任何命令,TPM 会将会话无效。

影响

SHA-1 引擎只是一个服务,所以碰撞攻击影响对其自身而言是不确定的。SHA-1 引擎是 TPM 的必要组件,下面章节中描述了 TPM 如何使用这个服务,进一步的讨论在这些场景下碰撞攻击的影响。

PCR 扩展

TPM_Extend 命令使用 SHA-1 和 PCR 寄存器连结,输入是 20 个字节,通常是在 TPM 外部进行计算的。TPM 使用 SHA-1 来扩展一个 PCR 如下:

New_PCR_Value = SHA-1(Old_PCR_Value || Input_Digest).

影响:

TPM_Extend的输入参数是高度结构化的,即只有20字节的输入,那么攻击者只能操作者 20 字节而不是原文,这样的去构造碰撞是非常困难的。

审计摘要 Audit digest

除了审计命令本身以外,TPM 能够对其他任何命令进行审计。TPM 管理员(拥有者)可以控制那些命令需要被审计,当 TPM 命令执行可审计命令时(默认情况下,128个命令中有23个命令是可审计的),会使用 SHA-1 来对命令的输入进行哈希,然后扩展到审计摘要寄存器,这个寄存器在TPM_Startup或者之前审计会话关闭后被设置为 NULL,扩展的方式和 PCR 扩展相同。摘要同时合并一个标签和TPM_COUNTER_VALUE结构,增加了更多的结构。当 TPM 响应一个可审计命令时,TPM 同时也会对输出参数做哈希,并且扩展到摘要审计寄存器中。所有的哈希和扩展操作都使用 SHA-1,只有 5 个审计命令不使用 SHA -1 引擎。

影响:

所有的 TPM 命令和响应都是高度结构化的,即使攻击者有能力改变输入参数,他也无法操作 TPM 的响应。攻击者无法控制 TPM 响应的输出参数,因此无法成功进行上述的碰撞攻击

PCR 引用

TPM 有两个 PCR 引用命令,TPM_Quote和TPM_Quote2,这个命令会用SHA-1来讲 PCR 寄存器连接起来。输入是一个最多 5 字节的索引,用来选择 PCR 寄存器子集。TPM 填充一个包含这些 PCR 的结构,将其哈希并签名。输出是选择的 PCR 组的 SHA-1 签名。

影响:

TPM Quote 的输入是高度结构化的参数,潜在的攻击者只能操作 5 个字节,以选择不同的 PCR 集合。即使攻击者通过 TPM_Extend 指令成功的操作了 PCR,该动作也会触发其他依赖 PCR 的安全特性。这相当于修改了原像,即 SHA-1 无法解决。尽管 quote 结构能够包含 20 字节的外部数据供攻击者使用,实际上也很难形成实用的攻击。所以攻击者无法通过操作该命令的输入来实时碰撞攻击。

RSA 签名

TPM 有一个 RSA 签名命令,TPM_Sign,会在生成签名前用到 SHA-1。这个命令处理三种不同的场景。前两种场景是提供的数据大小小于签名密钥长度,因此 TPM 不会对数据进行哈希。最后一种情况是,TPM 创建一个结构包含字符串“SIGN”、一个防重放攻击的nonce以及将要别签名的数据。SHA-1 会对这个结构进行哈希、签名作为响应输出。

影响

说实话,增加防止重放攻击的nonce已经能够阻止潜在的攻击了,不行的是 TCG 选择了外部生成 nonce 而不是在 TPM 内部随机生成,这给攻击者提供的操作空间。这种情况下,攻击者有可能操作函数输入创建能够影响签名的碰撞攻击。然而,TPM 的完整性和其他函数的安全性仍然保持完整的。

密钥结构(Blobs)

下面的密钥结构包含了 SHA-1 计算的摘要:

  • TPM_STORE_ASYMKEY 
  • TPM_SEALED_DATA
  • TPM_MIGRATE_ASYMKEY
  • TPM_CERTIFY_INFO
  • TPM_CERTIFY_INFO2
  • TPM_DELEGATE_KEY_BLOB

这些密钥结构频繁嵌入加密区域里的公共区域的摘要,还有整个密钥结构的摘要,提供统计学意义上唯一的标识。

影响

一些摘要用来保护固定共有结构,攻击者几乎没有可操作空间。另一些摘要被加密了,也就是说操作这些数据等同于要破解 RSA,这样可以看出攻击者也很难能利用碰撞攻击搞事情。

对称算法的 IV 和 Counter

TPM 基于 SHA-1 对于 TPM 生成的随机数和用户提供的数值来生成初始向量 IV 和 初始计数值。

影响:

既然 SHA-1 的输入是 TPM 产生的随机数,攻击者就无法操作这些输入来进行碰撞攻击,也就无法控制 IV 和 Counter来攻击对称加密算法。

授权会话 Authorization Sessions

TPM 建立并维持这些授权会话,HMAC 算法使用 SHA-1 来提供完整性以及防重放特性。

影响

TPM 使用内部生成的新鲜的随机数来生成 nounce,所以这些会话都能抵抗 SHA-1 碰撞攻击。

DAA

TPM 使用 SHA-1 来验证 DAA 算法本身的摘要,这也是协议内部固定的结构。同时也用 SHA-1 来对算法参数和固定结构进行哈希

影响

DAA 的参数是固定大小的非随机数值,结构也是固定的。攻击者没有太多机会操纵参数和结构实现碰撞攻击,除非破解 DAA 算法本身

身份密钥 Identity Keys

TPM 能够创建、激活身份密钥,当激活身份密钥时,TPM 会创建并验证固定密钥结构和其他结构的摘要值。

影响:

固定的结构/格式使得攻击者无机可乘

传输会话

TPM 传输会话具有记录日志功能选项。即使没有日志选项,也有很多传输会话命令会有一些生成 SHA-1 摘要的调用。

影响

同上,固定结构,无法攻击。

通过上下文命令保存 TPM 资源

TPM 能够通过 TPM_SAVECONTEX 命令来保存 TPM 资源,同时通过 TPM_LOADCONTEX 来重新加载这些资源。TPM 使用 SHA-1 来计算整个上下文的完整性,然后对敏感区域和随机生成的攻击者无法得知的随机数进行加密。在加载资源时,会验证摘要值。

影响

这种机制能够阻止碰撞攻击。

代理 delegation

TPM 允许需要管理员权限的个别命令代理给一些用户而不用授权其所有权限。用户也可以通过密钥授权代理密钥。代理表单的摘要是通过 SHA-1 计算的,来验证这些摘要、对称密码的 IV 和密钥流。

影响

因为密钥流是用来保护授权数值的,这个不是必须的,所以我们对其进行考虑。IV 的创建使用新鲜的随机数生成的随机值,能够抵抗碰撞攻击。最后代理块是高度结构化的,并且哈希中包含了攻击者无法得知的随机值,所以这些摘要也能抵抗碰撞攻击。

迁移

TPM 允许特定密钥迁移到其他地方。更复杂使用场景是密钥的认证迁移,即从一个 TPM直接或间接的到另一个 TPM。使用 SHA-1 来计算结构化的哈希并验证摘要

影响:

既然迁移授权的摘要中包含随机生成的数值,攻击者并不知道,所以这个能够抵抗碰撞攻击。密钥和密钥结构是高度结构化的,私有区域也是加密的。操纵加密区域等同于破解 RSA 2048 算法,这个在目前来说也是不可能的。因此攻击者无法进行使用密钥摘要进行碰撞攻击。对于那些复合密钥摘要也是同样的。

参考


1.TCG 工作组规范合集

2. 更多 TPM 应用信息参考 

  • Ken Goldman, e-mail dated July 7, 2006
  • Michael Szydlo, “SHA1 Collisions can be Found in 2^63 Operations”, http://www.rsa.com/rsalabs/node.asp?id=2927, RSA Laboratories, August 19, 2005. TCG, “TPM Main Part 1 Design Principles”, v1.2, revision 103, October 26, 2006
  • TCG, “TPM Main Part 2 TPM Structures”, v1.2, revision 103, October 26, 2006
  • TCG, “TPM Main Part 3 Commands”, v1.2, revision 103, October 26, 2006 Wikipedia, “SHA Hash Functions”, http://en.wikipedia.org/wiki/SHA_hash_functions, March 31, 2010 

术语


TCG,可信计算组织;

TPM,可信平台模块;

可信度量,主体通过密码学方法对客体进行度量的方法;

皮格马利翁效应心理学指出,赞美、赞同能够产生奇迹,越具体,效果越好~

“收藏夹吃灰”是学“器”练“术”非常聪明的方法,帮助我们避免日常低效的勤奋~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_71955.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何使用 ChatGPT 编写 SQL JOIN 查询

通过清晰的示例和解释,本文展示了 ChatGPT 如何简化和简化创建复杂 MySQL 查询的过程,使用户更容易与数据库交互并检索他们需要的数据。无论您是初学者还是经验丰富的开发人员,本文都提供了有关如何利用 ChatGPT 来增强您的 MySQL 查询编写技…

微信公众号抽奖怎么做_分享微信抽奖小程序制作的好处

在H5游戏中,抽奖是最受消费者喜爱的模式之一。将H5微信抽奖活动结合到营销中,可以带来意想不到的效果,带流量和曝光率,所以许多企业也会在做活动时添加上不同类型的H5微信抽奖活动。编辑那么,新手怎么搭建微信抽奖活动…

钓鱼网站+persistence植入后门程序+创建用户

本实验实现1: 利用MS14-064漏洞,会生成一个网址,诱导用户点击,打开后,会直接连接到发起攻击的主机上,即可攻击成功。 本实验实现2: 一旦入侵成功,则拿到控制目标主机的部分权限&…

【论文阅读】SSR-Net: 一个小型的 软分段回归网络 用于年龄估计

原始题目SSR-Net: A Compact Soft Stagewise Regression Network for Age Estimation中文名称SSR-Net: 一个小型的 软分段回归网络 用于年龄估计发表时间2018年7月13日平台IJCAI-18来源台湾中央研究院、国立台湾大学文章链接https://www.ijcai.org/proceedings/2018/0150.pdf开…

2023-02-20干活小计:

所以我今天的活开始了: In this paper, the authors target the problem of Multimodal Name Entity Recognition(MNER) as an improvement on NER(text only) The paper proposes a multimodal fusion based on a heterogeneous graph of texts and images to mak…

Renegade:基于MPC+Bulletproofs构建的anonymous DEX

1. 引言 白皮书见: Renegade Whitepaper: Protocol Specification, v0.6 开源代码见: https://github.com/renegade-fi/renegade(Renegade p2p网络每个节点的核心网络和密码逻辑)https://github.com/renegade-fi/mpc-bulletpr…

OpenShift 4 - 将 VMware 虚机迁移至 OpenShift Virtualization(视频)- 温迁移

《OpenShift / RHEL / DevSecOps 汇总目录》 说明:本文已经在支持 OpenShift 4.12 的 OpenShift 环境中验证 文章目录了解 Warm Migration为 VMware VM 配置 CBT用 Warm Migration 方式迁移 VMware VM创建 Migration plan执行 Migration plan演示视频了解 Warm Migr…

漫画 | Python是一门烂语言?

这个电脑的主人是个程序员,他相继学习了C、Java、Python、Go, 但是似乎总是停留在Hello World的水平。 每天晚上,夜深人静的时候,这些Hello World程序都会热火朝天地聊天但是,这一天发生了可怕的事情随着各个Hello wor…

小程序(十)签到业务流程分析

文章目录一、如何获取地理信息?二、如何判定某地区新冠疫情的风险等级?系统的人脸签到模块包含的功能非常丰富,不仅仅只有人脸识别的签到功能,而且还可以根据用户签到时候的地理定位,计算出该地区是 新冠疫情 的 高风险…

【可视化实战】Python 绘制出来的数据大屏真的太惊艳了

今天我们在进行一个Python数据可视化的实战练习,用到的模块叫做Panel,我们通过调用此模块来绘制动态可交互的图表以及数据大屏的制作。 而本地需要用到的数据集,可在kaggle上面获取 https://www.kaggle.com/datasets/rtatman/188-million-us…

【STM32笔记】__WFI();进入不了休眠的可能原因(系统定时器SysTick一直产生中断)

【STM32笔记】__WFI();进入不了休眠的可能原因(系统定时器SysTick一直产生中断) 【STM32笔记】低功耗模式配置及避坑汇总 前文: blog.csdn.net/weixin_53403301/article/details/128216064 【STM32笔记】HAL库低功耗模式配置&am…

UnsupportedOperationException

原因&#xff1a;返回值为list时&#xff0c;返回值类型应为具体的类型参考文章&#xff1a;(139条消息) mybatis中返回结果类型为集合类型&#xff08;List、Map&#xff09;_毒毒毒毒丶的博客-CSDN博客_mybatis返回list<map>集合UnsupportedOperationException 是用于表…

【算法基础】线性、二分法查找

问题&#xff1a; 现有数组int[] arr new int[]{1,3,5,63,2,55,78}&#xff0c;找出值为2的元素&#xff0c;并返回其下标。 1. 线性查找&#xff08;顺序查找&#xff09; 声明两个变量&#xff1a;查找的元素、保存索引的变量用for循环依次遍历 注意&#xff1a; 这里只查…

TCP的三次握手、四次挥手

文章目录前言一、一些重要字段的含义二、TCP总括图三、三次握手详细过程1.第一次握手2.第二次握手3.第三次握手三次握手小结4.为什么必须要进行三次握手&#xff0c;两次或四次就不行四、四次挥手1.第一次挥手2.第二次挥手3.第三次挥手4.第四次挥手四次挥手简述前言 一个TCP的…

gulimall技术栈笔记

文章目录1.项目背景1.1电商模式1.2谷粒商城2.项目架构图3.项目技术&特色4.项目前置要求5.分布式基础概念5.1微服务5.2集群&分布式&节点5.3远程调用5.4负载均衡5.5服务注册/发现&注册中心5.6配置中心5.7服务熔断&服务降级5.7.1服务熔断5.7.2服务降级5.8API网…

Allegro如何通过报表的方式检查单板上是否有假器件操作指导

Allegro如何通过报表的方式检查单板上是否有假器件操作指导 在做PCB设计的时候,输出生产文件之前,必须保证PCB上不能存在假器件,如下图,是不被允许的 当PCB单板比较大,如何通过报表的方式检查是否存在假器件,具体操作如下 点击Tools点击Reports

【华为云-开发者专属集市】DevCloud+ECS、MySQL搭建WordPress

文章目录AppBazaar官网选择与购买项目项目概况操作过程购买DevCloud服务创建项目添加制品库应用部署购买ECS添加部署模板并执行任务故障排除安装及访问WordPress登录网站管理后台访问网站完善部署模板资源释放使用总结AppBazaar官网 首先&#xff0c;我们来到AppBazaar的官网&…

大数据Hadoop教程-01大数据导论与Linux基础

目录 01、大数据导论 02、Linux操作系统概述 P007 P008 P009 P010 P011 P012 P013 P014 P015 P016 P017 01、大数据导论 企业数据分析方向 现状分析&#xff08;分析当下的数据&#xff09;&#xff1a;现阶段的整体情况&#xff0c;各个部分的构成占比、发展、变…

揭开JavaWeb中Cookie与Session的神秘面纱

文章目录1&#xff0c;会话跟踪技术的概述2&#xff0c;Cookie2.1 Cookie的基本使用2.2 Cookie的原理分析2.3 Cookie的使用细节2.3.1 Cookie的存活时间2.3.2 Cookie存储中文3&#xff0c;Session3.1 Session的基本使用3.2 Session的原理分析3.3 Session的使用细节3.3.1 Session…

通过命令行快速了解电脑CPU架构

Linux 和 MacOS 使用终端&#xff08;小黑窗&#xff09;执行下面的命令&#xff0c;根据输出结果查表&#xff1a; uname -m输出 的内容分别对应架构 输出对应架构i386, i686i386x86_64amd64arm, armelarm_garbagearmv7l, armhfarmv7*mipsmips*mips64mips64*Window 按 WinR …