基于USBkey的虚拟实验平台动态身份认证方案设计及实现

2011-10-21 02:43翟建东张翔立周培源刘怡晨
武汉纺织大学学报 2011年3期
关键词:数字签名私钥公钥

翟建东,张翔立,周培源,侯 昕,刘怡晨



基于USBkey的虚拟实验平台动态身份认证方案设计及实现

翟建东,张翔立,周培源*,侯昕,刘怡晨

(华中科技大学 信息与系统技术研究所,湖北 武汉 430074)

本文提出了一种基于USBkey的动态身份认证方案,该方案利用公钥密码算法和USBKey的硬件保护特性,使密钥能够安全方便的分发和保存,避免了使用时间戳带来的重放攻击的潜在风险,并能抵抗假冒攻击和口令攻击。该动态身份认证方案很好地满足了虚拟实验平台身份认证系统的实际需求。

身份认证;公钥算法;USBkey

1 引言

虚拟实验平台运行在开放的网络环境中,存在着相当数量的安全漏洞和安全威胁。因此,对平台的访问者进行合法的身份认证尤其关键。虚拟实验平台的身份认证系统对平台环境中的学校、学生、实验资源提供方之间的客户关系实现完善的信用体系管理和统一的认证管理,实现对平台的用户、角色其权限的统一管理。

在现有的实际应用中,常用的身份认证方式主要有以下几种:

(1)基于用户名和密码的身份认证:随着网络技术的迅速发展,由于用户名和密码均是静态数据,由于其在网络传输过程中是以明文形式,很容易被木马和网络监听设备截获,因此这种认证方式是极不安全的。

(2)基于数字证书的身份认证:身份认证系统利用用户的数字证书来实现对用户的身份识别与权限控制,用户数字证书是由第三方颁发用于代表用户的身份,数字证书保存在USB KEY中,可以实现移动办公。同时,由于与数字证书对应的用户私钥保存在USB KEY中不能被导出,保证身份认证的安全。

(3)基于生物特征的身份认证:生物识别技术利用人的生物特征,比如指纹和声音等来进行身份识别,其代价一般较高。

2 基于USBkey动态身份认证方案设计

2.1利用ELGamal数字签名方案生成公私钥对

ELGamal数字签名方案中公私钥的生成过程简述如下[1]:设p是一个大素数,g为GF(p)域的一个本原元素,p和g公开。签名者随机选择一个密钥x作为私钥,这里x∈(1,p-1),且gcd(x,p-1)=1,公钥y=gx mod p。

2.2身份认证协议设计

该方案包括三个阶段:初始化阶段、申请USBKey阶段和认证阶段。

2.2.1初始化

在本文方案中,设计存在一个认证权威CA。CA选择一个大素数p和GF(p)域的一个本原元素g,选择一个安全Hash函数h(*)。CA选择一个随机数x作为其私钥,满足x∈(1,p-1) ,且gcd(x,p-1)=1,CA公钥y=gx mod p,{h(*)、p、g、y}作为CA的安全参数,保存在公共文件中,所有用户均可从该公共文件中获得这些参数。服务器AS也按照类似方法分别生成其公钥pkAS和xAS,将xAS安全保存并公开pkAS,所有注册用户均可获得其公钥pkAS。

2.2.2申请USBKey

(1)每一个用户Ui选择一个随机数xUi作为私钥,满足xUi∈(1,p-1),且gcd(x,p-1)=1,从CA的公共文件中获得p、g和,计算用户公钥pkUi≡gxi mod p,计算HU=h(Uid)并公开pkUi,Uid为用户身份标识。

(2)USBKey计算HU=h(Uid),向服务器AS提交用pkAS加密的EpkAS (HU,h(pwi)),pwi为用户口令。AS建立Uid序列表,存储形式如表a,收到EpkAS (HU,h(pwi))后用解密得到HU,并添加入Uid序列表中,设置对应的N值为初始值null,N用来建立HU计数器,计算h(Uid)的出现频率。CA将{ h(*)、pkAS、pkUi、xUi、HU、h(pwi)}写入USBKey。

2.2.3认证阶段

(1)用户插入USBKkey,输入Uid和pwi,USBKey计算h(Uid)和h(pwi)并验证,若通过,则U向AS发送EpkAS (h(Uid),N1),N1为随机数。

(2)AS收到EpkAS (h(Uid),N1)并解密得到,判断h(Uid) ?∈Uid序列表,若不属于则说明Ui为非法用户,终止与其会话,否则说明用户合法。然后查看对应N值,若当前N值为null则说明用户为第一次登陆,置换null为N1,若N不为null则计算用户h(Uid)的出现频率值f次/秒,若该值大于某一经验值,则认为有非法用户正常登陆或进行攻击,隔离h(Uid)并审查,否则AS将Uid序列表中的对应h(Uid)的N修改为本次会话的N1。

(3)AS产生随机数rAS,计算HAS=h(rAS),SAS(rAS),其中SAS(rAS)为AS用其私钥xAS加密rAS结果。AS向Ui发送用用户公钥pkUi 加密的EpkUi (HAS,SAS(rAS))。U收到EpkUi (HAS,SAS(rAS))后,用xUi解密得到HAS和SAS(rAS),再用pkAS对SAS(rAS)运算得到rAS,并哈希得h(rAS),判断h(rAS)?=HAS,若相等则认为服务器身份合法,为目标服务器,否则终止会话。

3 基于USBkey动态身份认证方案安全性分析

3.1假冒攻击

(1)攻击者冒充服务器AS:在认证阶段的步骤③中,攻击者即使截获到EpkUi (HAS,SAS(rAS)),由于解密所需的用户私钥xUi安全的存储在客户端的USBKey中,并没有在网络间传输,由于USBKey的硬件不可读性,攻击者无法从Key内导出用户xUi,因而无法解密EpkUi (HAS,SAS(rAS)),冒充服务器攻击不能进行[2]。

(2)攻击者冒充用户:当非法用户,即没有合法Uid的攻击者,因为在网络传输中的Uid均经过哈希运算和公钥加密,攻击者无法获得对应的私钥而不能解密,而Uid在AS端也以h(Uid)的形式保存,攻击者即使窃取h(Uid),由于Hash为单向运算也不能得到Uid,无法冒充合法用户;当一合法用户冒充另外一合法用户时,可能截获AS发送的EpkUi (HAS,SAS(rAS)),但由于没有对应的私钥,不能恢复HAS,因为无法攻击。

3.2口令猜测攻击

口令猜测攻击可分为在线口令猜测攻击和离线口令猜测攻击[3]。由于USBKey的PIN码保护,可以限定口令的输入次数,一旦超过限定值即可锁定USBKey,这样可以防止因为USBKey丢失而造成的在线口令猜测攻击;用户的口令pwi全部经过单向Hash运算存储在USBKey中,攻击者无法获得pwi明文,因而无法进行离线口令猜测攻击。

3.3重放攻击

本方案中,网络传输的随机数rUi、rAS和N1,均经过Ui或AS 的公钥加密,攻击者因无法获得私钥而无法解密来进行随机数的重放攻击。AS端的Uid计数器中,虽然N1为明文保存,但攻击者即使截获了EpkAS (h(Uid),N1),也无法获得明文N1来置换已经存在的该用户对应的N1,重放攻击无法进行。

3.4Dos攻击

AS端的Uid计数器中,AS可以记录前后两次随机数N到达的时间,求出该h(Uid)的到达频率,若小于某个经验值f次/秒,可拒绝该用户继续登录,防止Dos攻击。记录N到达时间不需要网络间设备的时钟同步,因而不需要占用额外开销。

4 虚拟实验平台身份认证系统实现

依据本文提出的基于USBkey动态身份认证方案,同时结合虚拟实验平台身份认证系统的实际需求,设计并实现了平台的身份认证系统,该身份认证系统采用B/S架构,实现对平台合法用户与非法用户的访问控制,同时实现对用户的权限控制。

4.1平台身份认证系统的架构

根据平台的身份认证需求,身份认证系统的框架图如图1所示:

图1 身份认证系统集成框架图

图2 身份认证和访问控制流程图

(1)在用户B/S架构系统Web服务器上,配置服务器的可信CA为用户根CA,只有平台CA认证体系下的用户证书才能访问平台系统[4];

(2)平台用户端(即用户使用的浏览器)必须从平台CA认证系统申请用户证书,才能登录到平台系统。申请的用户证书代表了用户的身份,登录时必须提交用户证书;在用户向平台提交敏感数据,如成绩时,必须使用该用户证书的私钥进行数字签名;为了实现用户的移动办公,保证用户证书及其私有的安全,采用USB KEY来保存用户的证书和私钥;

(3)平台系统服务器上配置服务端功能模块——CVM(证书解析模块),作为服务器的功能插件安装在平台系统服务器上,解析用户证书,获用户信息,根据用户信息查询平台系统配置的访问控制列表(ACL),获取用户的访问权限,实现平台的访问控制;

(4)用户端配置功能模块——PTA(个人信任代理),以COM控件的方式提供,配置在需要保证数据安全的Web页面上,随Web页面下载并注册,它使用用户证书的私钥对提交的表单数据进行数字签名;

(5)平台系统服务器上配置服务端功能模块——SVM(签名验证模块),以插件的方式提供给平台系统服务器,实现对用户提交的数字签名的验证;

4.2平台身份认证系统的工作流程

根据虚拟实验平台的实际需求,采用基于数字证书+数字签名的身份认证系统方案,用户登录平台系统的流程如图2所示:

(1)用户在计算机中插入保存有用户证书的USB KEY,输入用户名与密码进行平台系统登录;

(2)平台系统将用户名与密码与后台数据库比对,若正确,则向用户端发送平台服务器产生的随机数[5]。

(3)用户端浏览器利用PTA模块,利用USB KEY中的私钥对随机数进行数字签名

(4)用户选择保存在USB KEY上的用户证书以及随机数的签名结果,进行提交;

(5)平台系统服务器调用签名验证模块SVM中的函数SVM.verifySignature()验证用户对随机数的签名,调用证书验证模块CVM中的函数CVM. VerifyCertificate()对证书的有效性进行验证。如果验证成功返回结果result=0,否则返回结果result=1。

(6)用户身份验证通过后,平台服务器解析用户证书,调用证书解析模块中的cert.getSubjectNames()解析出证书的主题信息,包括证书序列号、用户平台代码等。获得用户信息,根据用户信息,查询平台系统的访问控制列表(ACL),获取用户的访问授权;

(7)获得用户的访问权限后,用户可以访问到相应权限内请求的平台资源,身份认证和访问控制流程结束,用户成功登录平台系统。

5 总结

本文设计了一种基于USBkey的动态身份认证方案,详细介绍了方案的实现,并对公开网络环境中的各种攻击手段进行了安全性分析,此方案能较好地抵御了现有的各种攻击手段,从而保证了身份认证系统的安全。同时根据虚拟实验平台对身份认证系统的需求,依据本文提出的方案,设计并实现了平台的身份认证系统,满足了虚拟实验平台的安全身份认证需求。

[1] 荆继武,林璟锵,冯登国. PKI技术[M]. 北京:科学出版社,2008.

[2] 张席,林强.一种基于不可否认数字签名的用户认证方案[J].计算机工程,2000,26(8):146-147.

[3] 沈昌祥.基于可信平台构筑积极防御的信息安全保障框架[J].信息安全与通信保密,2004, (9):17-19.

[4] 杨宇.基于PKI身份认证技术的研究与实现[D].成都:电子科技大学, 2006.

[5] Chen Y C,Yeh L Y.An efficient nonce-based authentication schemewith key agreement[J].Applied Mathematics and Computation,2005,169(2):982-994.

[6] V.tosic, W.Ma, B.Pagurek. Web service offerings infrastructure-a management Infrastructure for XML web services[J].IEEE/IFIP Network Operations and Management SymPosium,2004.

[7] M Thompson, A Essiari, S Mudumbai. Certificate-based authorization policy in a PKI environment [J]. ACM Transactions on Information and System Security, 2003,6(4):566-588.

[8] Y.Zhao, J.Q.Liu, et al. An Operating System Trusted Security Model for Important Sensitive Information System[C]. In the proceedings of IsDPE 2007, 2007. 465-468.

[9] Li MeiHong, Liu JiQiang. USB key-based approach for software Protection[J]. IEEE,Digital Object Identifier:10.1109/ ICIMA.2009. 5156582. 2009. 151-153.

[10]Polk.W.T,Hastings.N.E.,MalPani.A. Public key infrastructures that satisfy security goals Internet Computing[J].IEEE, 2003, 7(4): 60-67.

[11]Young-SukShin. Virtual experiment environment’s design for science education[J]. IEEE,2004, v2,n3: 62-67.

[12]Dawei Zhang. Network Security Middlewate Based on USB Key[Z]. IEEE Digital Object Identifier:10.1109/sec.2008. 77-81.

[13]史创明,王立新. 数字签名及PKI技术原理与应用[J]. 微计算机信息,2005 ,21( 8):122-124.

[14]刘知贵,杨立春,蒲洁,等. 基于PKI技术的数字签名身份认证系统[J]. 计算机应用研究,2004,(9):158-160.

[15]钟元生.电子商务信任管理模型研究[M].合肥:中国科学技术大学出版社,2005.

[16]马晓阳. 基于网络的虚拟电子实验室的构建与应用[J].电子科技,2008,(11):72-75.

Design and Implementation of Dynamic Authentication Scheme Based on USBKey for Virtual Experiment Platform

ZHAI Jian-dong, ZHANG Xiang-li, ZHOU Pei-yuan, HOU Xin, LIU Yi-chen

(Institute of Information & System Technology, Huazhong University of Science & Technology, Wuhan Hubei 430074, China)

This paper designs a dynamic authentication scheme based on USBkey. The public key and the USBKey hardware protection make it safe and convenient to distribute and save key. It has avoided the risk of message replay attack, and the disguised attack and password attack are also avoided. It is greatly satisfied with the actual demand of the virtual experiment platform authentication system.

Authentication; Public Key; USBkey

TP309

A

1009-5160(2011)03-0087-04

国家科技支持计划项目(2008BAH29B00).

*通讯作者:周培源(1965-),男,副教授,研究方向:嵌入式系统与信息安全.

猜你喜欢
数字签名私钥公钥
清扫机器人避障系统区块链私钥分片存储方法
比特币的安全性到底有多高
基于改进ECC 算法的网络信息私钥变换优化方法
浅析计算机安全防护中数字签名技术的应用
一种基于混沌的公钥加密方案
一种基于虚拟私钥的OpenSSL与CSP交互方案
P2X7 receptor antagonism in amyotrophic lateral sclerosis
基于数字签名的QR码水印认证系统
HES:一种更小公钥的同态加密算法
数字签名简述