本发明属于信息安全与可信计算、可信网络领域,具体涉及一种基于双代理双向匿名认证的可信远程证明系统及方法。
背景技术:
可信计算与可信网络技术是一种基于软硬件设备的网络与系统安全防护技术。通过将一个基于硬件实现的芯片tpm嵌入到系统中,强制系统执行特定的行为,使得任何非物理攻击都无法对系统安全造成威胁。远程证明技术是可信设备之间构建可信网络的重要技术手段。然而随着嵌入式设备的应用和网络攻击手段的层出不穷,远程证明技术面临着各种不同形式的攻击,传统的远程证明架构从安全性和效率上都面临着新的挑战。
目前已有许多学者提出了适用于不同平台的远程证明协议,tcg在tpm1.1技术标准中,采用了一个基于privacy-ca的身份证明方案,但是由于该方案中每次证明的过程都需要可信第三方的参与,因此效率较低。brickell等人提出直接匿名认证的方法作为可信平台模块的身份认证方法,保护了平台用户隐私,但签名长度较长,不仅效率较低,并且存在安全性问题。he等人提出了一种适用于嵌入式系统的匿名身份认证方案,方案中实现了完全匿名、可变匿名以及恶意tpm检测功能,并且在强rsa假设和ddh假设下证明是安全的,但是该方案中加入环节的效率较低。sangorr等人设计了一种基于双系统的嵌入式可信设备共享机制,通过对设备的动态重新划分,将平台设备分配给一个可信的实时操作系统和一个不可信的通用操作系统,但是该方案对设备进行了较多的限制,且实现过程较复杂。chen等介绍了在有限的硬件环境中支持各种签名方案,方案中通过不同的软件程序调用,可以实现具有不同安全性和隐私特征的签名方案和加密协议。yang等提出了一种符合tpm2.0标准规范的适用于可信移动平台的匿名身份证明方案框架,该框架面向移动设备应用,将基于椭圆曲线的daa方案与trustzone技术结合,但是该方案中移动平台用户需要较长的等待时间。camenisch等指出了tpm2.0接口规范的一些缺陷,通过对tpm2.0命令进行细微的修改,提升了匿名证明方案的安全性,防止了密钥泄露和利用恶意tpm破解匿名签名的问题。zhang等人提出了一个适用于移动环境的灵活高效的框架,基于可信任域技术进行了具体的实现,针对椭圆曲线上的daa算法有着不错的效率表现。ren等人针对车载系统设计了一种适用于车辆网络的可信车辆信息认证协议体系,使用改进的daa协议实现多信任域的安全认证,提高了多信任域的执行效率。li等人提出了一个基于代理签名技术的跨可信域匿名身份证明方案,在该方案中引入了认证服务器作为代理,对主机进行身份认证,该方案可在无线网络环境中得到试用,并且可以解决多个可信域之间漫游时的平台身份认证问题。
然而已有技术均基于验证方可信的假设,只进行了验证方对证明方单向的认证,没有考虑到验证方被恶意利用的情况,因而存在安全隐患。并且已有的远程证明技术并没有将平台的身份认证和平台的完整性认证进行有效地结合,使得现有的远程证明架构不能完整有效地实现平台间的远程证明。
技术实现要素:
本发明的目的在于提供基于双代理双向匿名认证的可信远程证明方案,从而建立高效并且安全的可信网络连接,实现可信设备之间安全可靠的网络通信。
实现本发明目的的技术解决方案为:一种基于双代理双向匿名认证的可信远程证明系统,包括发行者、客户端和服务器端,发行者向客户端和服务器端提供成员证书,所述客户端与服务器端进行远程证明和交互;其中客户端包括主机平台和认证代理,认证代理向主机平台提供代理证书,主机平台包括可信平台模块和测量代理,测量代理用于收集可信平台模块的完整性信息;服务器端也包括对应的主机平台和认证代理。
一种基于双代理双向匿名认证的可信远程证明方法,具体包括以下步骤:
步骤1:发行者与认证代理生成系统安全参数。
步骤2:认证代理生成代理证书即密钥对(σ,k),并利用可信平台模块的身份公钥pkek加密发送给主机,主机利用自身的可信平台模块验证代理证书的合法性。
步骤3:主机平台加入发行者群并获取成员证书。
步骤4:交互双方认证代理进行双向身份认证。
步骤5:认证代理请求收集主机平台的完整性信息。
步骤6:测量代理将收集的完整性信息并发送给认证代理;
步骤7:主机平台运用认证代理进行平台配置完整性认证。
本发明与现有技术相比,其显著优点为:1)本发明的远程证明方法可有效地对平台身份认证和平台完整性认证进行结合,引入的测量代理和认证代理分别负责平台完整性信息的收集和平台之间的认证,从组件级实现了系统之间的解耦,可提升各个组件的计算效率;2)平台身份认证过程采用双向认证方案,可增强对客户端的安全保护,可提升整个系统的安全性;3)平台配置完整性认证过程设计了度量时间的随机化选取方法,可避免攻击者发现度量时间点的规律和周期,可有效地防止攻击者在度量时间的间隙间进行攻击,可提高系统的安全性。
下面结合附图对本发明作进一步详细的描述。
附图说明
图1为基于双代理双向匿名认证的可信远程证明架构图。
图2为基于双代理双向匿名认证的可信远程证明流程图。
图3为平台身份匿名双向认证流程图。
图4为平台配置完整性认证流程图。
具体实施方式
结合附图,本发明的一种基于双代理双向匿名认证的可信远程证明系统,包括发行者、客户端和服务器端,发行者向客户端和服务器端提供成员证书,所述客户端与服务器端进行远程证明和交互;其中客户端包括主机平台和认证代理,认证代理向主机平台提供代理证书,主机平台包括可信平台模块和测量代理,测量代理用于收集可信平台模块的完整性信息;服务器端也包括对应的主机平台和认证代理。
一种基于上述系统的可信远程证明方法,包括以下步骤:
步骤1、发行者与客户端和服务器端的认证代理生成系统安全参数;所述系统安全参数的生成步骤为:
步骤1-1、发行者在循环群qrn上生成一个随机生成元g1;
步骤1-2、发行者随机选取两个大素数p1,q1,计算n=p1q1,其中p1,q1长度均大于βbit;
步骤1-3、发行者随机选取整数常量x,y,α,lc,ls,lb为大于1的安全参数,用于进行消息验证,且
步骤1-4、客户端认证代理随机选取大素数p2,q2,且q2|p2-1;服务器端认证代理随机选取大素数p2′,q2′,且q2′|p2′-1;
步骤1-5、客户端认证代理生成循环群
步骤1-6、客户端认证代理计算v=g2xmodp2,其中
步骤2、客户端的认证代理生成代理证书即密钥对(σ,k),并利用客户端主机平台可信平台模块的身份公钥pkek加密发送给客户端主机平台,客户端主机平台利用自身的可信平台模块验证代理证书的合法性;服务器端的认证代理生成代理证书即密钥对(σ′,k′),并利用服务器端主机平台可信平台模块的身份公钥pk′ek加密发送给服务器端主机平台,服务器端主机平台利用自身的可信平台模块验证代理证书的合法性;
所述客户端代理证书的生成步骤具体为:
步骤2-1、客户端认证代理产生随机数
步骤2-2、客户端认证代理利用ek公钥对{σ,k,ts0}加密,将
步骤2-3、客户端主机平台利用私钥进行解密得到{σ,k,ts0},并验证:
如果验证通过,则表明客户端代理证书合法,否则表明证书不合法;
服务器端代理证书的生成步骤具体为:
步骤2-a、服务器端认证代理产生随机数
步骤2-b、服务器端认证代理利用ek公钥对{σ′,k′,ts0′}加密,将{σ′,k′,ts0′}发送给服务器端主机平台,其中ts0′为服务器认证代理的时间戳;
步骤2-c、服务器端主机平台利用私钥进行解密得到{σ′,k′,ts0′},并验证:
如果验证通过,则表明服务器端证书合法,否则表明证书不合法。
步骤3、服务器端和客户端的主机平台均加入发行者群并获取成员证书;
步骤4、客户端和服务器端利用各自的认证代理进行双向身份认证;具体步骤包含:
步骤4-1、将客户端作为证明方,服务器端作为验证方,证明方认证代理产生随机数
步骤4-2、证明方认证代理计算t1=ebmodn,t2=g1bmodn,证明方可信平台模块计算
步骤4-3、证明方可信平台模块利用验证方认证代理的公钥pkv对消息{c,w1,w2,t1,t2,ts0′}加密,发送消息
步骤4-4、验证方认证代理利用私钥skv对消息解密得到{c,w1,w2,t1,t2,ts0′},验证
如果通过验证,则表明身份合法,否则表明身份不合法;
步骤4-5、当验证方完成对证明方的身份认证之后,验证方成为新的证明方,证明方成为新的验证方,重复上述步骤完成认证。
步骤5、客户端的认证代理请求收集客户端主机平台的完整性信息;其收集时间选取计算方法如下:
其中,m为一素数;seed,c,
步骤6、客户端的测量代理将收集的完整性信息并发送给客户端的认证代理;所述完整性信息为一个五元组:
<timestamp,biosinfo,osloaderinfo,kernelinfo,appinfo>
其中timestamp为度量时间戳,biosinfo为基本输入输出系统二进制文件哈希值,osloaderinfo为系统启动加载器二进制文件哈希值,kernelinfo为操作系统内核二进制文件哈希值,appinfo为平台应用程序二进制文件哈希值。
步骤7、客户端和服务器端的主机平台运用各自的认证代理进行平台配置完整性认证。所述平台配置完整性认证步骤具体包含:
步骤7-1、验证方的认证代理生成一个随机数nonce,并将nonce及要获取的平台配置寄存器编号发送给证明方;
步骤7-2、证明方的认证代理装载身份证明密钥aik,将指定的平台配置寄存器编号与nonce连接,并通过可信平台模块对其进行签名;
步骤7-3、证明方的测量代理读取平台配置存储数据结构的根哈希值并与nonce串联,发送给认证代理并用可信平台模块进行签名;
步骤7-4、证明方的测量代理找到请求服务程序的认证路径发送给该方的认证代理;
步骤7-5、证明方的认证代理将认证路径、签名的根哈希、pcr的值发送给验证方;
步骤7-6、验证方的认证代理检查nonce,验证aik签名、pcr值的完整性和正确性;
步骤7-7、验证方的认证代理利用认证路径重新计算根哈希并进行比对,如果一致则平台配置完整性验证通过,否则不通过。
本发明采用代理机制实现远程接入中平台身份认证和平台完整性证明两个过程,在平台身份认证阶段采用双向认证机制增加了对客户端的安全保护,可提升系统的安全性。运用高效的平台配置完整性证明方法,可实现对主机平台配置信息的动态度量,提高远程证明架构中各个实体通信交互的可信性。
下面结合实施例进行具体描述。
实施例
基于双代理双向匿名认证的可信远程证明方法包括以下内容:
步骤1、发行者与客户端和服务器端的认证代理生成系统安全参数,系统安全参数的生成步骤为:
步骤1-1、发行者在循环群qrn上生成一个随机生成元g1;本专利中选取g1为2669597303;
步骤1-2、发行者随机选取两个大素数p1,q1,计算n=p1q1,其中p1,q1长度均大于βbit;本专利选取的β为256;p1,q1分别为97985640718190290855605084481148118842802914326800162027866004272981675833567,84217074406779409851505327696016547197204527644318158769774017589886007414227。则n为8252063995159785976335093887553009122989366395596087806526933150877896557299939416121509209989432773053973964100837004016623891333643122254614832479957709。
步骤1-3、发行者随机选取整数常量x,y,α,lc,ls,lb为大于1的安全参数,用于进行消息验证,且
步骤1-4、客户端认证代理随机选取大素数p2,q2;服务器端认证代理随机选取大素数p2′,q2′;本专利选取的p2,q2分别为112833099540622784789272329199185398576739799559486553268897583953209297253583,67441232722338633866874435626705597265097353404980027406524802001617671692013,p2′,q2′分别为92793798129649407510488808367306289907764282375440354422678635572918734171223,82196851173467502190140218941087191794514367506088343091900644179673017146077;
步骤1-5、客户端认证代理生成循环群
步骤1-6、客户端认证代理计算v=g2xmodp2,其中
步骤2、客户端的认证代理生成代理证书即密钥对(σ,k),并利用客户端主机平台可信平台模块的身份公钥pkek加密发送给客户端主机平台,客户端主机平台利用自身的可信平台模块验证代理证书的合法性;服务器端的认证代理生成代理证书即密钥对(σ′,k′),并利用服务器端主机平台可信平台模块的身份公钥pk′ek加密发送给服务器端主机平台,服务器端主机平台利用自身的可信平台模块验证代理证书的合法性;客户端代理证书的生成步骤具体为:
步骤2-1、客户端认证代理产生随机数
步骤2-2、客户端认证代理利用ek公钥对{σ,k,ts0}加密,将
步骤2-3、客户端主机平台利用私钥进行解密得到{σ,k,ts0},并验证:
服务器端代理证书的生成步骤具体为:
步骤2-a、服务器端认证代理产生随机数
步骤2-b、服务器端认证代理利用ek公钥对{σ′,k′,ts0′}加密,将{σ′,k′,ts0′}发送给服务器端主机平台,其中ts0′为服务器认证代理的时间戳;
步骤2-c、服务器端主机平台利用私钥进行解密得到{σ′,k′,ts0′},并验证:
步骤3、服务器端和客户端的主机平台均加入发行者群并获取成员证书;
步骤4、客户端和服务器端利用各自的认证代理进行双向身份认证;客户端和服务器端利用各自的认证代理进行双向身份认证步骤具体包含:
步骤4-1、将客户端作为证明方,服务器端作为验证方,证明方认证代理产生随机数
步骤4-2、证明方认证代理计算t1=ebmodn,t2=g1bmodn,证明方可信平台模块计算
步骤4-3、证明方可信平台模块利用验证方认证代理的公钥pkv对消息{c,w1,w2,t1,t2,ts0′}加密,发送消息
步骤4-4、验证方认证代理利用私钥skv对消息解密得到{c,w1,w2,t1,t2,ts0′},验证
将上述参数带入等式进行计算,等式成立,验证通过,表明身份合法;
步骤4-5、当验证方完成对证明方的身份认证之后,验证方成为新的证明方,证明方成为新的验证方,重复上述步骤完成认证。
步骤5、客户端的认证代理请求收集客户端主机平台的完整性信息;其收集时间选取计算方法如下:
其中,m为一素数;seed,c,
步骤6、客户端的测量代理将收集的完整性信息并发送给客户端的认证代理,所述完整性信息为一个五元组:
<timestamp,biosinfo,osloaderinfo,kernelinfo,appinfo>
其中timestamp为度量时间戳,biosinfo为基本输入输出系统二进制文件哈希值,osloaderinfo为系统启动加载器二进制文件哈希值,kernelinfo为操作系统内核二进制文件哈希值,appinfo为平台应用程序二进制文件哈希值。
步骤7、客户端和服务器端的主机平台运用各自的认证代理进行平台配置完整性认证。所述平台配置完整性认证步骤如图4所示,具体包含:
步骤7-1:验证方的认证代理生成一个随机数nonce,并将nonce及要获取的平台配置寄存器编号发送给证明方;
步骤7-2:证明方的认证代理装载身份证明密钥aik,将指定的平台配置寄存器编号与nonce连接,并通过可信平台模块对其进行签名;
步骤7.3:证明方的测量代理读取平台配置存储数据结构的根哈希值并与nonce串联,发送给认证代理并用可信平台模块进行签名;
步骤7.4:证明方的测量代理找到请求服务程序的认证路径发送给该方的认证代理;
步骤7.5:证明方的认证代理将认证路径、签名的根哈希、pcr的值发送给验证方;
步骤7.6:验证方的认证代理检查nonce,验证aik签名、pcr值的完整性和正确性;
步骤7.7:验证方的认证代理利用认证路径重新计算根哈希并进行比对,如果一致则平台配置完整性验证通过,否则不通过。
本发明的远程证明方法可有效地对平台身份认证和平台完整性认证进行结合,引入的测量代理和认证代理分别负责平台完整性信息的收集和平台之间的认证,从组件级实现了系统之间的解耦,可提升各个组件的计算效率。