0


可信计算期末复习(郑大信安个人总结版)

可信计算期末复习(郑大信安个人总结版)

1.可信平台模块(Trusted Platform Module,简称TPM)是一种加密协处理器。
2.可信计算组织(Trusted Computing Group,简称TCG)
3.为什么是TPM?
早期PC的制造并未重视安全,硬件上没有针对安全的相关支持。
TCG试图创建一个硬件安全锚点,这样就可以构造安全的操作系统。(信任链是通过构建一个信任根,从信任根开始到硬件平台、到操作系统、再到应用,一级认证一级一级信任一级,从而把这种信任扩展到整个计算机系统。)
受限于成本压力,许多的功能都从芯片转移到了软件上。
4.可信(trust)定义为:一个实体是可信的,当这个实体用作某一目的时,它总是以期望的方式动作。
5.可信计算(trusted computing)就是:能够按期望方式进行的计算。
6.区别可信和安全:中病毒不安全,但如果你知道病毒何时发作以及造成的后果的话,那么这台计算机是可信的。
7.TPM的历史
规范名称 特点 缺点
1.1b 1.使用CA(隐私证书认证中心)方式
2.使用RSA算法 硬件上的不兼容
1.2 1.提供标准软件接口和大多数的标准封装引脚
2.使用直接匿名认证(DAA)方式
3.可以应对字典攻击
4.架构依赖于SHA-1算法
5.对现有的应用程序编程接口没有任何更改,保留了二进制兼容性。
6.使用了HMAC。 整合1.1b的一些功能,使得规范非常复杂
2.0 1.不使用具体的算法的编码,而是使用算法标识符,从而可以使用任何算法。
8.密钥迁移:
9.穷举攻击:依次用密钥空间中的每个密钥尝试解密密文,以找到正确的密钥。
应对穷举攻击的常用方法是将密钥设置得足够长来防止穷举,或者减少一段时间内接受的攻击次数。
一个密码算法,其强度可以通过数学攻击进行检测。而最终应用的强度则是由算法和密钥长度共同决定的。
10.TPM中,所用的对称密码算法的密钥通为128位,192位或者256位。
11.TPM从1.2升级到2.0的动机源于一种针对SHA-1的哈希算法攻击。
12.一些常用安全形式和概念:
(1)消息:在双方之间传送的字节序列
(2)机密性:防止未授权方查看消息内容
(3)共享秘密:双方都知道的一个值。它可以是一个口令,也可以是双方知道的加密密钥
(4)完整性:消息在储存及传输的过程没有被修改
(5)认证:将消息关联到创建者,使接收方可以确定只有创建者能发送这条消息
(6)授权:证明用户被允许执行这个操作
(7)抗重放:防止攻击者对有效逍息进行再利用
(8)不可否认性:防止发送方否认其发送了消息。
13.安全哈希(或摘要)
密码哈希比普通哈希要复杂,它能接收一条任意长度的消息并将它压缩成一个固定长度的哈希序列
重要特征:
对于给定的消息,构造另一条与它有同样哈希值的消息是不可行的
构造两条有同样哈希值的消息是不可行的。
由哈希值解出原消息是不可行的。
14.哈希拓展
步骤:
(1)存在一个值A。
(2)A与另一个用于扩展的值B进行连接,得到消息,A||B。
(3)对得到的消息进行哈希,生成hash(A||B)。
(4)用这个哈希结果替换原来的A。
整个过程可以总结为:A←hash(A||B)
由于哈希函数的单向性,拓展后就不能通过逆运算的方法取消操作或删除历史记录。
由于哈希的结果的长度是固定的,所以对一个值可以进行无限次的记录,这对于内存有限的TPM来说是至关重要的。
拓展机制可以运用于更新PCR的值、TPM的审计日志和创建TPM认证策略中。
15.HMAC:消息认证码
HMAC是一种加密的哈希算法。它将消息与一个共享密钥(即HMAC密钥)一起经过安全哈希得到输出。
在TPM1.2和2.0中使用了HMAC,它用于向TPM证明用户已经掌握了TPM实体授权数据,这个数据即为HMAC密钥。
HMAC也能用于生成密钥,这时就需要用到密钥派生函数。
16.KDF:密钥派生函数
很多TPM协议需要不止一个秘密。因此。为例降低生产成本,TPM需要支持由单一秘密生成多种密钥。这个秘密称为种子密钥。而这个由种子密钥生成多种秘密的算法称为密钥派生函数(KDF)。
加密并不能保证完整性。
一个密码学规则:不能对两个不同的应用使用相同的密钥。
17.票据
票据是种包含连多数据的HMAC的数据结构。票据允许TPM延迟验证其执行的操作。而其中的HMAC就是用于确保一些先前的操作都已经正确执行且无需再次执行。
由于票据容量有限无法装下整套数据,这里有时会用消息的摘要取代原本的数据。
票据中用于生成HMAC的HMAC密钥不是共享秘密,它只有TPM知道。
18.TPM会在使TPM数据对外部保密、TPM的通信加密和使用TPM来协同处理密码这三种情况下使用对称密钥加密。
19.nonce
nonce是一种在密码操作中只会使用一次的数字,常用来防止重放攻击。
当用户向TPM发送请求并接收返回值时,nonce可以用于证明这个返回值是由TPM发送的。
20.非对称加密
以单向函数为基础。这种函数的一个特性就是从私钥计算出公钥很容易,但由公钥想要得到私钥却很困难。
如果私钥持有者用私钥去加密一些数据(假设密钥足够大),则每个人都能用公钥解密,而这样每个人都会知道是对应私钥的持有人加密了这个数据。这种应用叫作数字签名。
签名的数据需要遵循一种特殊的格式,称为签名方案。
21.RSA&ECC
公钥用于验证经过私钥签名的数据(签名)
私钥用于解开经过公钥加密的数据(加密)
22.TPM的使用场景:身份识别、加密、密钥存储、RNG、NVRAM、PCR、隐私启用
23.身份识别
第一个嵌入式安全芯片的使用场景是设备身份识别(设备ID)。
嵌人在芯片中的私钥用来识别芯片属于哪张卡,认证密码或PN码用来认证是谁拥有这张卡。这两者共同形成“你拥有的东西和“你知道的东西”来用于认证。
用途:在授予网络访问权限之前识别目标身份的VPN、用户签名电子邮件、用户向银行标识自己的身份,用户授权付款,用户远程登录系统等等
24.密钥存储
当芯片用于有硬盘的PC时,几乎可以无限地存储密钥。
由TPM保存的、成本低廉的密钥可以适用于以下场景:
通过使用不同密钥,仅向请求者提供最少信息的隐私敏感解决方案
不同安全级别使用不同密钥
同一台PC的多个用户使用不同的密钥
办公室中的临时电脑
25.随机数生成器(RNG)
一个好的RNG有许多用途:
生成操作系统随机数生成器种子。
生成安全协议中使用的随机数。
生成文件加密用临时(一次性使用)密钥。
生成长期使用密钥(如用于存储的密钥)。
生成蒙特卡罗软件例程的种子。
26.TPM2.0库规范
这个库规范由四个部分组成:
架构:以文本形式描述了TPM的操作规范和设计原理,还包含了TPM如何工作的细节
结构体:描绘了所使用的数据结构、结构体和联合体
命令:描述了每个命令的的输入与输出参数以及命令规定的出错条件
支持例程:这里包含了第三部分中的代码调用的支持例程代码以及这些代码的错误返回代码
27. 一些定义:
(1)授权:
(2)密码授权:一次性明文授权
①HMAC授权:
②策略或者增强授权:
③会话:
(3)句柄:一个用于标识占用TPM内存的TPM资源的标识符。
(4)字节流:在命令中实际发给TPM的字节。
(5)规范化数据:发给TPM的字节流都是规范化的命令形式,来自TPM的响应数据也是规范化的。
(6)反串行化数据:C语言结构体格式的数据
(7)串行化(序列化)数据:规范化的数据
28.TPM软件栈(TSS)
TSS包含如下几层:
特征API(FAPI):技术人员基于FAPI编写大部分用户应用程序,类似于JAVA、C#
增强系统API(ESAPI):提供一些会话管理和密码功能支持。类似于C++
系统API(SAPI):可以访问TPM的所有功能。类似C
TPM命令传输接口(TCTI):传输TPM命令和接收响应。类似于汇编
TPM访问代理(TAB):控制多进程同步访问TPM。
资源管理器(RM):负责TPM对象和会话在TPM内部存储空间的换入换出。
※TAB和RM都是可选组件。在嵌入式环境中,单进程,不需要。
设备驱动(Device Driver):负责进出TPM数据的物理传输。类似二进制编程
通常,SAPI之上的各层都是每进程层组件,SAPI层以下的组件通常都是每TPM组件。
SAPI包含四组函数:命令上下文分配函数、命令准备函数、命令执行函数和命令完成函数。
29.TPM2.0实体(entity)是TPM中一个可以通句柄真接索引到的项目。
30.所有实体类型:
永久性实体:三个持久性hierarchy、临时性hierarchy、字典攻击锁定复位、PCR、保4留句柄、明文口令授权会话和平台hierarchy NV使能
永久性实体的句柄由TPM规范定义,不能被创建和删除
持久性hierarchy(组织架构)也不可能被删除,但是它们可以被平台管理员或hierarchy管理员禁用。
非易失性实体:NV索引
TPM规范不把NV索引看作对象,因为它们有超过标准对象的属性。对它们的读和写可单独控制。它们可被配置为如PCR、计数器或者位域一样的实体,也可被设定为“一次写入”实体。
NV索引有一个关联的授权值和授权策略。授权值可以随索引所有者(owner)的意愿而改变,但是策略在创建NVRAM时被设置好后,就不能再改变。
对象:密钥和数据
所有对象对应的授权数据和授权策略。与NV索引一样,对象的策略在创建后就不能再被修改
易失性实体:各种类型的会话
31.名称是实体独一无二的标识。使用名称进行授权计算,而不使用实体的句柄,因为当一RM加载和擦除实体时,句柄可能会随时间发生变化。
32.hierarchy(组织架构)
hierarchy是一个实体集合,其相互关联,并作为一个组来被管理。
每个hierarchy的密码根都是一个种子——一个大的随机数。
三个持久性hierarchy——平台、存储、背书
这三种hierarchy有如下相同特征:
每一个都有授权值和策略。
每一个都有启用标志。
每一个都有一个种子,从中可以得出密钥和数据对象。种子是持续存在(persistenk)的
每一个都有主密钥,由主密钥可以生成子密钥。
33.平台hierarchy
平台hierarchy意在处于平台制造商的控制之下,由与平台一起卖出的早期启动代码所代表。
平台hierarchy是在TPM2.0里新出现的。
34.存储hierarchy
存储hierarchy的目标是供平台所有者使用。所有者可以是企业的IT部门,也可以是终端用户。
存储hierarchy和TPMI.2中的存储hierarchy是等同的。
35.背书hierarchy
背书hierarchy是一棵隐私敏感树,当用户关注隐私时,选择该hierarchy。
TPM和平台制造商可以证明,背书hierarchy中的主密钥,与依附于一个可信平台上的可信TPM相绑。
因为背书hierarchy是用于隐私敏感性操作的,它的使能标志、策略和授权值,与其他hierarchy都是独立的。它们处于隐私管理者(可能是终端用户)的控制下。
36.激活证书

37.空hierarchy
空hierarchy与三种持久性hierarchy类似。它可以有主密钥,基于主密钥可以创建子密钥。几点不同之处如下:
授权值是一个零长度的口令,策略为空(不能被满足)。这些不能被改变。
它不能被禁用
它有一个种子,密钥和数据对象都来源于它。这个种子不是持久性的,在每次重启时,它和proof会被重新生成不同的值。
38.hierarchy小结✨
(1)平台hierarchy通常被平台OEM(Original Equipment Manufacturer,原始设备制造商)使用,其代表是早期的启动代码。平台OEM能依赖已使能的平台hierarchy,即使终端用户关闭了其他hierarchy。
(2)存储hierarchy受控于用户,它用于隐私不敏感性操作。
(3)背书hierarchy及其TPM供应商以及OEM证书,都受控于隐私管理员,它用于隐私敏感性操作。通常激活隐私敏感性证书也在背书hierarchy中执行。
(4)空hierarchy是易失性的。会话、上下文和序列对象都在空hierarchy中,但是一个完整的易失性密钥和对象树,也可在这里创建,以确保它们在电源重启时被删除
39.密钥生成器以TPM自身的随机数发生器为基础,它不依赖于外部随机源。因此,基于弱软件随机数发生器或熵源强度不够的软件生成密钥的弱点,它都没有。
40.TPM2.0允许有不限数量的主密钥,不用持续保存
41.三个持久性hierarchy中的每一个都有一个相应的主种子:背书主种子、平台主种子和存储主种子。这些种子从来不会离开TPM。它们是密钥派生函数KDF的秘密输入。
42.用户调用TPM2 EvictControl命令,将一个密钥从易失性空间移存到非易失性空间中这样在每次加电重启后,它就可以保持已被加载(持久保存)。
43.任何密钥都不一定需要被持久保存以供使用。通常,我们希望只有少量主密钥,或许每个hierarchy有一个,会被设定为持久留存,以提高性能。
44.除了主密钥之外的其他密钥,TPM可用作密钥缓存
45.密码授权:
首先,当密钥离开TPM时,它被一个强的父加密密钥所封装(加了密的)。攻击者现在需要破解一个强的密钥,而不是一个脆弱的口令。
其次,当密钥被加载到TPM中时,它受到保护,规范中称之为词典攻击保护逻辑。每次攻击者破解密钥授权失败时,该逻辑就会记录此次失败。在经过了可配置数量次数的失败后,TPM会阻止在一个可配置时间内做进一步的尝试。(类似于手机锁屏密码在进行5次错误输入后,将会锁定,并禁用继续输入)
46.复制属性
TPM2.0密钥用两个属性来控制复制。
一个极端是,一个密钥被锁定到一个单一TPM上的单一父密钥,永远不允许被复制。
与之相反的极端是,密钥可以自由复制到另一个在相同或者另一个TPM上的父密钥下。
居中的情况是,一个密钥被锁定到一个父密钥,但是如果父密钥被移动,其也被隐式复制。这种情况为复制一个完整的密钥树分支提供了可能。如果父密钥被复制了,所有由该父密钥封装的子密钥,直到所有的子孙,在目的平台上都可用。
47. 一个受限的解密密钥实际上就是存储密钥。此密钥只能解密有明确格式的数据,包括结构体其余部分的完整性值
48. 密钥也有使用限制。它们可以被指定为仅是签名密钥或解密密钥,从而被限制为只能签名或解密确定的数据。
49.密钥也可以由其他TPM密钥所认证,依赖方能够验证公钥、密钥属性,甚至它的策略。
50.TPM2.0有4种类型的NV索引:普通(非结构化数据)、位字段、计数器和扩展数据索引。
51.可以使用标准TPM口令和策略控制来读取或写入索引。
52.混合索引通常存在于易失性存储器中,但正常关机可以将它们保存到NV存储器中。它们可以避免性能和耗损问题。
53.创建索引时,其状态为“未写入”。它的数据不能被读取或在策略中使用,直到它被写入,并且“未写入”状态本身可以在策略中使用。
54.基本应用程序包括提供证书或公钥。更高级的应用程序在策略中会使用NV授权,允许NV授权在实体之间共享。涉及位字段或计数器索引值的策略可用于密钥撤销。扩展索引提供了具有不同算法、授权或生命周期的PCR方法。
55.此外,NV索引有一组单独的命令和独特的属性来控制授权、读写锁定和字典攻击保护。
56.PCR的主要用途是提供一种密码学记录(度量)软件状态的方法,包括平台上运行的软件和该软件使用的配置数据。PCR更新计算被称为“扩展”,是单向哈希计算。这样的计算结果将无法被破解。
57.PCR新值=摘要(PCR旧值‖扩展的数据)
58.会话变体
会话变体是在会话创建时建立的,在会话的整个周期中持续存在。
会话变体决定如何建立会话,以及HMAC密钥和HMAC如何产生。
两个选择:绑定和不绑定、加盐和不加盐
绑定会话实质上将授权绑定到某些实体的授权值上,通过在会话密钥生成过程中包含绑定实体的授权值来完成绑定操作。这样会影响到与会话密钥相关的所有计算,包括HMAC、策略、加密以及解密计算。未绑定的会话在会话密钥生成过程中不绑定实体的授权。
一个加盐会话在会话密钥生产过程中增加了额外的熵,即“盐”。类似于绑定会话,这会影响所有依赖于会话密钥的计算。额外的熵作为加密的“盐”参数,以加密形式发送到TPM,传递给TPM2 StartAuthSession命令。未加盐的会话不会以这种方式增加嫡。
59.会话使用修饰符
它们在单命令的基础上修改HMAC和策略会话的行为。
继续(continue):如果没有设定,会话将在成功执行一个命令后终止。
解密(decrypt):表明第一个TPM2B命令参数以加密形式发送给TPM。
加密(encrypt):使第一个TPM2B响应参数以加密形式返回给TPM。
审计(audit):使一个正在使用会话的命令被审计。
60.这三种类型的会话都是授权操作的一种手段,至于HMAC和策略会话,可以想据众命令配置会话。口令会话是最简单的授权类型:授权行为是将明文口令传递给TPM。
61.HMAC和策略会话的区别
HMAC和策略会话的主要区别在于如何授权操作。使用HMAC会话发送的命令只有当与命令一同发送的HMAC正确时才成功。为了生成正确的HMAC,需要在调用者和TPM之间共享auth Value。换句话说,知道会话密钥和auth Value才能够计算正确的HMAC有效地授权对该实体执行的操作。不知道会话密钥或auth Value的代理不能计算正确的HMAC,从而导致命令失败。策略会话根据策略命令的正确顺序授权操作,在许多情况下,这些命令需要前提条件。
62.TPM2.0允许多种不同形式的认证,并提供能够使用外部硬件添加更多功能的工具。用于认证的每种机制统称为断言。断言包括以下内容:
口令。
HMAC。
提供数字签名的智能卡。
物理存在。
机器状态
(PCR)。
TPM状态(计数器、时间)。
外部硬件的状态(已经对指纹识别器进行了认证、GPS定位于哪里等)。
63.EA的工作步骤
(1)创建策略会话。
(2)用户使用TPM2 PolicyXXX命令向TPM会话提供一个或多个认证。
(3)在命令中使用实体时,TPM将实体关联的策略与会话策略缓冲区中的值进行比较。如果不一致,则不执行该命令。
64.拓展授权的原因:
TPM中的EA用于解决TPM实体授权的可管理性问题。通过使所有TPM实体以相同的方式获得授权,以便于学习如何使用TPM,并且还允许用户自定义授权策略以解决以下问题:
允许多种认证(口令、生物特征等)。
允许多因素认证(需要超过一种类型的认证)。
允许在不使用TPM的情况下创建策略。策略不包含任何秘密,因此可以完全用软
件创建。这并不意味着不需要秘密来满足策略。
允许认证与实体相关的策略。为了使用实体,应该可以证明哪些授权是必要的。
允许多个人员或角色满足策略。
允许将一个对象的特定角色的功能限制在特定操作或用户上。
修复了PCR脆性问题。在TPM1.2中,一旦一个实体锁定到一组度量了特定配置
的PCR,如果配置必须被更改,则该实体不能再被使用。
创建了一种改变策略行为方式的灵活方法。
65.可用EA策略创建多种断言的逻辑组合(AND和OR),断言包括口令、智能卡、TPM状态、远程机器的状态等。
66.EA是TPM2.0设计中最复杂但也最有用的新功能之一。
(拓展策略)……(待续)
67.在TPM中,审计负责记录在主机与TPM之间传递的TPM命令和响应参数。
68.TPM库支持两种审计类型:命令审计和会话审计。
69.命令审计特性:
(1)审计时以每条命令为基础的
(2)命令审计在PC客户端的TPM规范中时可选择的。
70.会话审计为每个会话提供一个审计摘要
71.一个会话在刚开启时并不是一个审计会话,而在设置了它的audit属性时,它才能成为审计会话
72.TPM提供两种审计选项。命令审计负责记录一个选定的命令集的所有实例,而不管会话。会话审计记录一个会话中的所有命令,而不管命令。
73.加密和解密会话保护在不安全的媒介上传输的秘密信息
74.有两种不同的对称密钥模式可以用来加解密会话:XOR和CFB。
(1)CFB模式提供高强度的加密,但是需要TPM和调用程序都支持一种哈希算法和一种加密算法。
(2)XOR仅需要哈希算法,而且对于需要非常少的代码量的情景是一种正确的选择,但是这种方法的安全性弱一些。
75.一般来说,除非有必要,我们不会去阻止一件事情的发生。换句话说,只要是不会导致安全问题的事件,我们都是允许它发生的。
76.TAB的责任非常简单:使裁访间M的多个进程。至少对于所有进程来说,必须保证在进程的命令字节流开始传输至TPM到进程完整地接收到来自TPM的响应字节流之间,没有其他的进程和TPM通信。
77.RM负责透明地处理所有的对象、会话以及序列与TPM交换的细节。

总结不易!

内容原件:https://www.aliyundrive.com/s/33A3Eyy83X5 提取码:2333

标签: 安全

本文转载自: https://blog.csdn.net/Trieyes_of_feng/article/details/125324920
版权归原作者 Trieyes_of_feng 所有, 如有侵权,请联系我们删除。

“可信计算期末复习(郑大信安个人总结版)”的评论:

还没有评论