SCI、SSCI、EI、SCOPUS指导服务
论文翻译润色 论文预审评估 质量分析报告 期刊匹配推荐

与学术顾问沟通

TCG重放攻击技术规范与解决方案

分类:项目管理论文发表 时间:2011-05-18 09:03 关注:(1)

TCG重放攻击技术规范与解决方案

程志伟

摘要

本文证明了独立对象授权协议(OIAP)个性化设计中存在的缺陷,OIAP是可信平台模块(TPM)的基本构件,TPM是可信计算平台(TP)的核心,符合可信计算组织(TCG)标准。特别是在模型检测器的支持下,我们还证实了该协议容易受到危害TP行为正确性的重放攻击。我们也提出了相应对策,以避免上述协议受到类似攻击或是任何重放攻击。

关键词:独立对象授权协议,重放攻击,解决方案

1.引言

计算机安全机构在构建更安全的信息和通信技术系统方面,有一个最新的发展趋势,那就是以可信计算平台(TP)为基础构建系统。大致的说,TP是包含内置可信组件的计算平台,这些可信组件可用于创建平台内的安全服务,例如安全启动、数字签名、软件完整性检查等。

2.符号

本节对文中将用到的符号进行说明。

下面我们将用大写字母来表示二进制字母表中的字符串,而大写黑体字母表示通用实体,例如主机、硬/软件组件、一般用户等。

• X.Y表示X连接Y

• A→B:M表示A发送信息M到B

• Si表示授权会话i

• A′, A″, • • •表示伪随机数A的更多“实例”,例如A′表示产生于相同伪随机数发生器但不同于A的另一个伪随机数,所以A和 A′有着相同的特性等。

3.授权协议

TP利用授权协议每次一条主题发出一条指令(此类指令参见[5])要求访问某一受保护资源。授权协议的主要作用范围是按照所涉及资源的保密性和完整性等政策向授权主题发放访问权利。

TCG规范定义了两个主要授权协议:独立对象授权协议(OIAP)和特定对象授权协议(OSAP)。当多次发出同一的指令,可能访问不同的受保护资源时,OIAP开放一条授权会话。OSAP工作方式相似,但在仅有一条授权会话的情况下,每条指令都能访问同一受保护资源。本文着重描述OIAP。

OIAP运作如下。U作是一条普通主题希望通过TPM T使用受保护资源R,AR是U和T之间共享的一条秘密。而且

• GC是U要在R上执行的授权指令,即GC是为了被使用需要授权的一条指令。授权协议用来满足这样的需求。

• Rc是一条成功的返回代码

• Re是一条无效的授权代码

• D是与GC有关的数据(可以是空的)

• RES是GC在R上执行的结果(可以是空的)

• Ne是一个160位不可预测的随机偶数,用来提供全新的属性(后面有更多介绍)

• No是一个160位不可预测的随机奇数,与Ne属性相同

• Auth = {GC.S1.Ne.No}是关键密码函数上的数据串

用来计算检测损坏的数据传输

起初U向T发送指令CMD OIAP请求开放一条授权会话(图1第1步),然后T发回需要处理授权会话的会话信息(图1第2步)。如果步骤执行正确,U将向T发送指令GC执行,指令包含识别AR的证明(图1第3步)。然后T将验证信息真实性和完整性,如果符合标准T则代表U执行GC,并向U发送得到的结果(图1第4步),反之T则关闭连接。图1表现了上述的OIAP,当resAuth = {Rx.GC.S1.N′e.No}时,根据第4步的选择Rx为Rc(正确)或Re(错误)。



图1 OIAP示意图

另一方面,基于TCG的TP可以配置HMAC检测信息包改变,但不能区分普通网络错误和MiTM导致的数据包损坏。将在第5节所描述的OIAP攻击中发挥重要作用。

4.攻击

攻击者可能以以下方式进行连续的重放攻击([19, 14])。用户与TPM交换完协议的前两条信息(图2第1、2步)攻击者截获下一条来自用户的信息(图2第3步),并存储以便将该信息注入到另一个运行的协议。同时攻击者发送一条重置信息欺骗用户(切记攻击者位于用户和TP间的通信信道中间)。这个信息像是一条“合法”回复信息,如图1所示步骤4a那样的一个发送,但里面有一些错误位,造成一个临时网络错误的假象。而且我们认为,因为是常见操作,所以当有错误[1]发生时客户应用程序会关闭连接,虽然规范里没有明确的规定。

这一程序段的末端有一个面向TPM的开放授权上的会话,用户并不知道。攻击者就在这里等待用户的下一步动作再作出适当的决定。

看到第一次连接尝试失败用户会:

(a). 打开一个新的授权会话并在不同数据上执行重新发送故障指令;

(b).在相同数据上执行重新发送故障指令

(c).执行另一种授权指令。

考虑到攻击者已经能够开始攻击,以入侵者的角度来看显然只有方案(a)会因为有针对性的实施攻击产生严重后果。实际上,选择方案(c)将运行另一个协议,可能一开始就再次受到攻击。而选择方案(b)除了由请求引起的一次DoS攻击外不会产生严重影响,用户和攻击者分别来回传送重置信息。相反如果用户选择方案(a)可能发生最后阶段的攻击。实际上,攻击者利用上述仍开放的授权会话和截获的信息能重写TPM受保护资源,完全损害平台的正确行为。

这种攻击的后果就是,活跃的破坏者能随意重放任何(捕获的)授权指令,可能修改用户在TP信任度。例如,TCG规范提供一个被隔离的位置,叫做非易失性(NV)存储区,某种程度上受到TPM保护,只有受保护的能力可以修改它的值。如果用这样的区域存放重要的完整性测量值,进行上面提到的攻击,将允许攻击者重写存储的“最新”值覆盖之前捕获的“过时”的值。这样的话攻击者就可以用更新测量过的软件数据包或数据替换代表系统安全风险的旧的数据,避免TP检测。

为了方便说明,我们用X*表示冒充实体X的入侵者,并把攻击划分为三个阶段,即针对截取信息的信息存储阶段(图2)、针对观察用户行为的信息重发阶段(图3)和最后实施攻击的重放攻击阶段(图4)。



图2 OIAP信息存储攻击阶段



图3 OIAP信息重发攻击阶段



图4OIAP重放攻击阶段

5. 协议模型检测

我们正式的分析OIAP以数学证明存在设计缺陷。我们采用由Gerald J. Holzmann[13]开发的基于Büchi自动机5上的一种模型检测器SPIN来进行分析。给出一个系统M(适当的模拟)和特性P(通常以线性时序逻辑中的命题表示),模型检测器能验证在M可能穿程的任何序列状态下P是否有效。更确切的说,SPIN分别用automatonM和automaton¬P表示作为Büchi自动机的M和无效P,然后计算automatonM和automaton¬P认可的语言的逻辑乘I。如果结果是空的,那么在M每种可能的序列状态下特性P都被验证。相反非空语言I的每个短语都是M的状态,其中P未被验证。文中所指的M为执行OIAP的系统,P为不存在缺陷的协议规定的命题。

为模拟系统,SPIN有自己的描述语言PROMELA。PROMELA语言允许基于状态的非确定性计算表达。计算流受防护命令`a la Dijkstra控制,不同顺序进程之间的通信用Hoare’s CSP原语表达[11]。检测过的性能可以表达为线性时序逻辑(LTL)中的公式、系统或进程的不变式、Büchi自动机或是“不显示”命令。

SPIN一直用于查找网络协议中的缺陷[12],用于安全方面还是十分新鲜的。PROMELA不提供任何安全原语,例如加密或散列法或现有的模型检测器(参见Brutus [8]),所以我们建立一个OIAP模型,抽离了加密散列函数的使用。

我们所面临的挑战性问题是,我们想要检测对抗重放攻击的OIAP强度,所以不仅要模拟协议本身还要模拟攻击者。为此我们用能产生有效的OIAP相关指令的进程来模拟攻击者。另外我们还假设攻击者不能伪造散列,因为我们认为TCG 规范明确部署了HMAC使用,作为抵抗数据包损害攻击的保护6。下面我们将介绍所使用的模型和得出的结果。

5.1.应该保护的协议模型

PROMELA模型由进程(我们称之为施动者)、信息通道和变量组成。施动者是全局目标在分析中代表系统的并行实体。模拟信息不用考虑HMAC,因为我们要分析的是重放攻击的强度。作为施动者我们还设定了Caller、MiTM和TPM。下文中的Dolev-Yao [9]模型用来表示位于调用程序和TPM间通信信道中间的入侵者(MiTM),我们定义了两个半双工无缓冲物理信道caller_mitm_wire和mitm_tpm_wire,表示用于Caller/TPM通信的特殊逻辑通道,如图5所示。

然后利用PROMELA我们按下面的标准(执行代码见附录A)模拟Caller、MiTM和TPM。

访问者严格遵循OIAP规则,能够:

1.执行授权的指令打开与TPM的授权会话

2.向TPM发送授权的指令请求使用受保护的对象;授权会话必须之前就已打开,即TPM_OIAP必须在发送授权指令之前就发布;

3. 从TPM接收授权指令回复

TPM也严格按照TCG规范运作,因此它能够:

1.通过设定所有相关协议信息依照访问者请求打开协议会话,例如TPM所需的或必须发送回访问者的随机数

2.验证完指令一致性即证明和完整性以后,执行作用于TPM受保护的对象的授权指令,

3.向caller发送关于刚发布的授权指令的回复,不论情况顺利与否

MiTM位于caller和PM间的通信信道中间,并且不需要遵循协议规则。实际上,MiTM模型行为像活跃的破坏者,能冒充其他用户并且有可能修改或重放信息[9]。模拟他的模型能够:

1.像caller一样打开与TPM的授权绘话。但是不会产生授权指令,因为MiTM不知道授权共享秘密

2.转发来自caller的合法信息到TPM,反之亦然

3.存储运送中的信息

4.在准备执行的重放攻击里注入之前存储的信息

5.发送残缺的数据包关闭开放的授权会话



图5 MiTM环境

一旦定义了系统的模型,就必须形式化系统应该满足的特性。为了让定义该特性,我们分成三个会话状态,失效、成功和未知。

协议会话期间,当TPM收到随机数、会话参量等有错误参量的请求指令是就进入失效状态。TPM收到这样的错误指令,就会关闭之前打开的连接。相反如果指令是有效的,TPM就会执行然后进入成功状态,向Caller发回指令答复。其他情况下TPM会话状态未知。

Caller方面,当Caller接收到错误参量的指令答复时使用失效状态。如果放生这样的情况,Caller关闭连接进入失效状态。相反如果caller接收正确的指令答复,则进入安全状态并关闭会话。其他情况下caller状态被设置为未知。利用这三种状态,我们如下定义OIAP逻辑性质。

要执行一次重放攻击,MiTM必须在TPM中注入捕获的授权指令并执行这一指令,不需任何caller知识。如果发生这种规避,理论上caller会话进入两种状态,失效状态或成功状态。实际上,后面一种情况不可能发生,因为MiTM不具备回复合法授权指令答复的能力,除非他知道受保护目标资源的共享秘密。另一方面,TPM授权会话进入未知或成功。因此,如果caller授权会话进入失效状态TPM会话进入成功状态,MiTM就能成功执行重放攻击,如第5节所述。

MiTM没有成功的系统有以下特点:

正确性1(协议会话) S为OIAP的一组会话, Tt和Tc分别为TPM和Caller 在会话期间的状态。假设ts∈Tt,cs∈Tc,必然相同的授权会话s∈S,则



换言之,性质1意味着TPM和caller会话状态应该是同步的7。

5.2. 分析结果

模型M和上述协议暴露了两个主要OIAP缺点,一个是DoS攻击还有一个更危险的问题涉及到TCG规范采用的计数器重放机制。

虽然TCG规范已经验证过DoS攻击,但在本文中并不是问题(尽管它也存在),计数器重放测量弱点确实是个严重的安全性问题。因为很可能如图6所描述的那样执行连续的重放攻击。更确切地说,当TPM代表Caller开放OIAP会话后,MiTM存储caller发出的授权指令,并重置(也就是被迫关闭)刚打开的授权会话。这是caller进入失效状态,相应会话仍开放的TPM设为未知状态。MiTM终究能重放之前捕获的授权信息,而不需要caller。这时,caller的状态没有任何改变,而TPM进入成功状态。所以我们说,这与上述的逻辑性质相比,将导致相关各方之间不一致的会话。



图6. OIAP 重放攻击 图7. OIAP 重放攻击解决方案

6.解决方案

正如刚才所说,滚动随机数是OIAP用来避免重放攻击所采用的机制。但是我们的攻击表明该机制并没有充分证明这一点,就像其他程序设计者提到的([16, 15])滚动随机数并不是抵抗重放攻击的一颗银弹。

在具体情况下该攻击是可能的,因为相关方之间有多个开放会话但缺乏一致同步的“会话认识”。实际上,我们的重放攻击的最后,T和U有关于会话状态不同的认识。

为避免这一情况我们设计了对策,根据各方之间所有授权的交换信息的介绍,由用户计算新领域的值。该区域是一个掩码,代表关于之前开放的授权会话状态的用户认知。用户按照以下规则计算其值:

•如果授权会话i认定为开放或是未知状态,i位设为0

•如果授权会话i认定为失败,即之前发送的授权指令收到重置或错误信息的回应(参见图2步骤3b),i位设为1

使用被HMAC保护免受窜改的信息,TPM意识到关于确定连接的用户认知,并能检测所有不一致。此外,一旦发现自己认知和用户认知不一致(比如,用户S1失效,TPM S1未知),则关闭相应会话。使用这种方式,任何攻击者利用未决会话是不可能的,如第5节所述。

显然掩码的大小将限制开放授权会话的数目,因此掩码区域应该大到足以代表合理的数字。

7.结论

本文分析了可信计算小组提出的可信计算平台的核心组件。尤其是重点分析了独立对象授权协议,用于TPM受保护资源。

虽然TCG规范极力设法保护该协议免受重放和MiTM攻击(更精确的数据包损坏操作),但我们的分析表明该协议在设计上有缺陷,重放攻击的确是可能的。

我们也提出了解决问题的解决方案,对提出的方案中的会话状态的记录和分配进行改进,通过允许一方检测MiTM存在进行进一步的错误检测。最后,调查该问题的工作正在进行中。

参考文献:

[1] 成慧娥. 脉冲编码调制原理[J]. 中州煤炭, 1993, (04) .

[2] 陶宏才,何大可. 基于攻击层次的重放攻击分类[J]. 西南交通大学学报, 2007, (03) .

[3] 欧阳琰,王贵槐,陈先桥,初秀民. 基于CAN总线的汽车仪表盘电控单元设计[J]. 武汉理工大学学报(信息与管理工程版), 2009, (01) .

[4] 袁志强,王世勋,何嘉斌. 远距离无线开关的设计与应用[J]. 控制工程, 2005, (S1) .

[5] 逯海军,祝跃飞. 产生“一次一密”会话密钥的抗重放攻击鉴别协议[J]. 计算机应用, 2003, (07) .

[6] 陈金鹰,陈斌,蔡方凯,王绪本,郑恭明. 无线开关传感网络研究[J]. 电子器件, 2009, (02) .

[7] 王端骧. 脉冲编码调制概述[J]. 电信科学, 1959, (07) .

 

期刊目录网是一家专业从事国内国外期刊学术论文发表指导,著作出版,发明专利的权威平台,提供文章翻译、文章润色、文章预审、期刊推荐、发表支持、书号申请、出书指导、专利申请等评职称相关学术成果服务。是您评职称学术成果指导首选权威平台。

AllSet微信公众号
说明:1、微信扫码或搜AllSet学术并关注
2、发送SCI/SSCI期刊全名告知分区
3、按提示可下载SCI、SSCI、EI期刊目录
Copyright © 2013-2022 www.qikanmulu.com,All Rights Reserved