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

2023-10-31 01:59
文章标签 应用 原理 指南 tpm2.0

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

这篇关于【TPM2.0原理及应用指南】 1-3章的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:https://blog.csdn.net/qq_35481726/article/details/125172137
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/312053

相关文章

PostgreSQL中rank()窗口函数实用指南与示例

《PostgreSQL中rank()窗口函数实用指南与示例》在数据分析和数据库管理中,经常需要对数据进行排名操作,PostgreSQL提供了强大的窗口函数rank(),可以方便地对结果集中的行进行排名... 目录一、rank()函数简介二、基础示例:部门内员工薪资排名示例数据排名查询三、高级应用示例1. 每

nginx -t、nginx -s stop 和 nginx -s reload 命令的详细解析(结合应用场景)

《nginx-t、nginx-sstop和nginx-sreload命令的详细解析(结合应用场景)》本文解析Nginx的-t、-sstop、-sreload命令,分别用于配置语法检... 以下是关于 nginx -t、nginx -s stop 和 nginx -s reload 命令的详细解析,结合实际应

SpringBoot结合Docker进行容器化处理指南

《SpringBoot结合Docker进行容器化处理指南》在当今快速发展的软件工程领域,SpringBoot和Docker已经成为现代Java开发者的必备工具,本文将深入讲解如何将一个SpringBo... 目录前言一、为什么选择 Spring Bootjavascript + docker1. 快速部署与

创建Java keystore文件的完整指南及详细步骤

《创建Javakeystore文件的完整指南及详细步骤》本文详解Java中keystore的创建与配置,涵盖私钥管理、自签名与CA证书生成、SSL/TLS应用,强调安全存储及验证机制,确保通信加密和... 目录1. 秘密键(私钥)的理解与管理私钥的定义与重要性私钥的管理策略私钥的生成与存储2. 证书的创建与

Python包管理工具pip的升级指南

《Python包管理工具pip的升级指南》本文全面探讨Python包管理工具pip的升级策略,从基础升级方法到高级技巧,涵盖不同操作系统环境下的最佳实践,我们将深入分析pip的工作原理,介绍多种升级方... 目录1. 背景介绍1.1 目的和范围1.2 预期读者1.3 文档结构概述1.4 术语表1.4.1 核

PowerShell中15个提升运维效率关键命令实战指南

《PowerShell中15个提升运维效率关键命令实战指南》作为网络安全专业人员的必备技能,PowerShell在系统管理、日志分析、威胁检测和自动化响应方面展现出强大能力,下面我们就来看看15个提升... 目录一、PowerShell在网络安全中的战略价值二、网络安全关键场景命令实战1. 系统安全基线核查

Java操作Word文档的全面指南

《Java操作Word文档的全面指南》在Java开发中,操作Word文档是常见的业务需求,广泛应用于合同生成、报表输出、通知发布、法律文书生成、病历模板填写等场景,本文将全面介绍Java操作Word文... 目录简介段落页头与页脚页码表格图片批注文本框目录图表简介Word编程最重要的类是org.apach

PostgreSQL的扩展dict_int应用案例解析

《PostgreSQL的扩展dict_int应用案例解析》dict_int扩展为PostgreSQL提供了专业的整数文本处理能力,特别适合需要精确处理数字内容的搜索场景,本文给大家介绍PostgreS... 目录PostgreSQL的扩展dict_int一、扩展概述二、核心功能三、安装与启用四、字典配置方法

Python设置Cookie永不超时的详细指南

《Python设置Cookie永不超时的详细指南》Cookie是一种存储在用户浏览器中的小型数据片段,用于记录用户的登录状态、偏好设置等信息,下面小编就来和大家详细讲讲Python如何设置Cookie... 目录一、Cookie的作用与重要性二、Cookie过期的原因三、实现Cookie永不超时的方法(一)

Linux中压缩、网络传输与系统监控工具的使用完整指南

《Linux中压缩、网络传输与系统监控工具的使用完整指南》在Linux系统管理中,压缩与传输工具是数据备份和远程协作的桥梁,而系统监控工具则是保障服务器稳定运行的眼睛,下面小编就来和大家详细介绍一下它... 目录引言一、压缩与解压:数据存储与传输的优化核心1. zip/unzip:通用压缩格式的便捷操作2.