可信计算授权协议安全隐患一览

来源:百度文库 编辑:神马文学网 时间:2024/06/13 05:27:34
2010-11-24 20:39
可信计算授权协议安全隐患一览
TCG的规范中定义的授权协议主要有OIAP,OSAP等,还有用于保障命令数据的Transport Session。经过国内外专家的研究,目前发现了这些协议存在一定的安全隐患,本文将对这些协议的攻击和应用方法进行概述。授权协议的安全性依赖于授权数据(authdata)的机密性,如果攻击者知道,或者猜测到授权会话的授权口令,授权协议将没有任何安全性而言。当前的TPM授权协议都能够保证会话的完整性,基于授权口令简单保护一些关键数据的机密性(主要是新建密钥的授权口令,封装数据的保护口令等)。
由于TPM授权协议相对简单实用,效率也比较高,满足基本安全需求,只不过存在一些特定情形下的安全隐患而已。
1.命令数据机密性
OIAP/OSAP只能保证TPM和User之间通讯消息的完整性,但是无法保证机密性。TCG提供了传输会话机制建立会话密钥,对TPM命令包进行加密从而保证消息数据的机密性。
2.重放攻击
这是对于OIAP/OSAP会话在特殊情形下的一种攻击,因为TPM和User对于会话状态信息的不一致,User可能认为某次会话失败,而TPM可能还在等待这次会话执行,恶意攻击者通过截获会话消息,在特定情形下重放消息从而实现攻击。解决这种攻击的办法也比较简单,在会话中增加一个计数器保证TPM和User两方对于会话状态都能确认。
3.弱授权数据的offline dictionary attack
由于User选择的授权口令都比较简单,攻击者能够根据会话中的HMAC结果,离线的猜测授权口令的方式实现攻击。如果猜测的口令HMAC计算与授权会话的HMAC值相等,表明口令正确,攻击者就能够重新构造新的授权会话实现非法操作。解决离线字典攻击的方法,可以构造稍微复杂的基于弱口令的密钥协商,例如SPEKE(Simple Password Exponential Key Exchange)协议,使用弱口令采用Diffie-Hellman协商一个健壮的会话密钥保护授权会话。
4.共享授权数据的TPM spoofing attack
在很多特定应用中,用户之间是共享特定密钥的授权数据的。例如一个系统中的多个关联应用都共享TPM的特定密钥的授权数据,这样这些应用使用TPM都相对简单一些,还有在一个虚拟平台上多个虚拟机都要访问TPM,这些虚拟机之间肯定是要共享SRK授权数据。由于共享了授权数据,攻击者能够通过截获OIAP/OSAP协议中User的消息,然后伪造共享授权数据的密钥(例如伪造SRK密钥),然后使用共享授权数据应答User能够验证通过的消息。这样造成的结果是User的全部数据都受到攻击者的控制,树形存储保护体系不安全,攻击者能够轻易的使用私钥获得全部的用户保护信息。针对这个问题,有学者提出SKAP(Session Key Authorization Protocol)协议,通过User发送TPM公钥加密的数据,确保只能是TPM才能创建两方的共享密钥K1,K2。密钥K1用于HMAC,K2用于加密新机密信息(例如新授权值)。
这些授权协议存在的安全隐患仅仅是在特定情况下才会出现,OIAP/OSAP提供了基本的安全保证,如果需要更安全的授权协议,那么就得使用SPEKE,SKAP等改进协议。最后我将授权会话协议及其能够克服的安全隐患整理成如下的一览表。
Class
Integrity
Confidentiality
Weak authdata
(offline guessing attack)
Shared authdata
(TPM spoofing attack)
OIAP/OSAP

×
×
×
Transport Session


×

SPEKE



×
SKAP