终端可信远程证明的细粒度属性分析算法
2018-10-23刘建华
钱 锦 刘建华
(1.西安邮电大学计算机学院 西安 710061)(2.西安邮电大学信息中心 西安 710061)
1 引言
如今相对脆弱的终端成为了信息安全的薄弱环节,对终端的安全证明提出了更高的要求,可信计算组织TCG(Trusted Computing Group)认为如果终端的行为总是以预期的方式,达到预期的目标,那么这样的实体是可信的[12]。
TCG通过嵌入在硬件的可信平台模块(Trust⁃ed Platform Module,TPM)实现了自下往上的安全模式,基于TPM,远程证明实现了端对端的终端系统信任关系。TCG提出的可信计算体系中,远程证明是基于二进制散列值,因此被称为二进制证明[13~14],但是它最大的缺点是对平台配置隐私的暴露,证明过程中都要求出示整个平台的配置的完整性度量值[15]。
针对二进制证明的缺点,Sadeghi等提出利用属性取代二进制完整性值作为度量和证明的基础[16],属性证明旨在解决二进制远程证明的私密性、扩展性、可升级性等问题,使证明者即使没有获得该平台的配置信息也能证明该平台是可信的[11]。
然而现有的基于属性的远程证明还存在很多缺陷:1)现有的属性证明的粒度很粗,都是对整个平台的安全属性进行证明。2)属性的撤销很困难[1]。
本文基于属性远程证明,针对属性证明粒度很粗的特点,设计分析算法,对不同终端的的安全要求进行细粒度分析,诸如真实性、抗抵赖性、保密性等,在具体问题中对这些性质的权重要求还会有偏差,这些都可以由服务提供者(Service Provider,SP)自己根据需求决定,通过算法分析得到理想的结果后再对其进行远程证明,旨在解决基于属性的远程证明粒度粗的问题,提高远程证明的可靠性。
2 远程属性证明模型
远程属性证明系统包含五个主要部分[1]:生产厂商(S),撤销和发布属性证书的证书认证机构(CA),用户本身,即需要被远程证明的主机(U),服务提供者,即提出远程证明的一端(SP),验证中心,验证属性证书是否已被撤销(VC)。
用户收到服务提供者对平台属性的证明请求后,最终选出最符合安全要求的终端平台,计算平台属性签名向服务提供者提供远程证明,具体如下图1所示。
图1 远程属性证明模型图
属性远程证明过程如下图2所示。
图2 远程属性证明过程图
属性远程证明过程伪代码:
1 global define ca_attribute;
2 global define secure_request;
3 global define update_attribute;
4 global define origin_attribute;
5def attes(t):
6 while(1)://始终监听证明请求
7 i(fsecure_request):
8 u=compare(u1,u2,u3);//
算法分析
9 if(u_ca_attribute)://查
看证书
10 remote_attest
(u);//属性证明
11 exit 0;
12 def check():
13 if(update_attribute ! =origin_attri⁃bute)://更新属性证书
14 update(attribute);
15 exit 0;
3 属性证明
3.1 相关定义
现有的属性证明粒度很粗,是对整个平台的安全属性进行证明,无法对平台的配置状态和运行状态进行更加细致的安全证明[1],本文提出的算法重新定义了属性,将属性的意义扩展了,凸显了细粒度的特性。
定义1(属性)属性Ap表示为一系列终端平台的安全属性Ai,对于终端,Ai表示为“终端平台软硬件符合的安全指标或描述”,形式化表示如下:
定义2(证明请求)证明请求Rp表示为一系列安全要求对()组成的集合,对于待验证终端,()表示为“服务提供方对应用终端提出的安全要求以及该安全要求在总的终端选择决策中占的权重”。形式化表示如下:
定义3(安全要求权重比)安全要求权重比Wp表示为一系列安全要求权重比Wij的集合,Wij由计算得到,表示不同安全要求对于最终决策的影响力,计算公式如下:
Wp的形式化表示如下:
3.2 属性分析算法
算法采用层次分析法(AHP)对平台属性进行分析,参数主要基于证明请求Rp和安全要求权重比Wp,主要步骤如下:
1)构造阶梯层次机构
图3 层次分析法模型
2)构造两两比较判断矩阵
构造准测层的成对比较矩阵A0、A1、A2、A3,对于每一个矩阵,其结构即A2根据用户端的组件属性证书确定各个因素之间的比较尺度,而A3则根据服务提供端发出的对不同服务的安全要求权重比Wp来决定,其中
3)一致性校验
4)层次排序
在构造了成对比较矩阵后,对于方案层B相对于准则层A的排序,我们分别用A0、A1、A2的最大特征根n的归一化向量分别表示方案层相对于准测层的排序,而准则层A相对于目标层Z的排序则用A3的最大特征根n的归一化向量{a1,a2,a3,…,am}进行排序,
则方案层相对于目标层的层次总排序即B层方案对总目标的权值为,B1:a1b11+a2b12+a3b13+…+amb1m,B2:a1b21+a2b22+a3b23+…+amb2m,B3:a1b31+a2b32+a3b33+…+amb3m,B1,B2,B3分别表示在对所有准则综合判定的基础上的方案权值大小,最终根据这个权值的大小决策。
5)决策
最后的决策按照B层方案对总目标的权值大小,进行决策,选取较大的方案,即从P1,P2,P3中选取了一个作为证明对象,符合了服务提供端的安全要求。
方案确定后再对该方案进行远程证明,而不需要对所有的相关组件进行属性证明,使属性证明更加细粒度。
4 算法验证与实现
通过在终端平台写算法脚本,接受来自服务提供端的安全请求,完成属性分析,伪代码如下:
1 def attribute_attest:
2 generate_matrix( Rp,Wp);//构造成对比较矩阵,Rp、Wp为服务提供方的安全参数
3i(fconsistency_check())://进行一致性校验
4 W1=calculate(matrix,λ);//计算权重
5 W2=calculate(matrix,λ);
6 W3=calculate(matrix,λ);
7 result=max(W1,W2,W3);//最终决策
8 return result;
我们在Ubuntu 14.04平台上通过Xen搭建了vTPM,并安装了TPM模拟器,实现了两个可信平台,一个作为服务器,一个作为客户端,具体TPM信息如图4所示。
采用网上支付情形做实例,分别对计算机网络安全环境、操作系统安全、数据库安全等属性安全入手,进行属性分析,做远程证明,终端运行算法代码的时间可忽略不计,我们考虑单纯的属性远程证明时间和本文算法下的属性远程证明时间,证明性能对比结果如图5所示。
图5 属性证明性能对比图
由上图容易发现证明一个插件数量众多的组件耗费的时间可观,使用属性远程证明只需证明系统能够大大减少证明时间,提高证明效率,在用户端增加了分析算法后能对组件进行分析,选取最合适的终端。
5 结语
通过本文算法能够有效找出最符合服务提供者安全性要求的终端平台,成功应对了当出现更加细致的证明需求时,属性证明过于简单的问题。在算法分析中只涉及性能参数的对比,并不涉及终端的类型、版本等隐私信息,在安全性上有保障,在效率上有提高。