一种基于数字证书的双向身份认证方法研究

时间:2022-03-19 06:07:01

一种基于数字证书的双向身份认证方法研究

摘 要:计算机网络的快速发展使得更多的资源可以通过网络远程获得,因此,网络安全中的身份认证问题成为研究的重中之重,本文使用USB Key作为数字证书的载体,设计了一种新的基于数字证书的身份认证方案,通过第三方认证机构实现了用户和服务器间的双向身份认证,提高了安全性。

关键词:数字证书;USB Key;双向认证

中图分类号:TP393.08

互联网络的蓬勃发展引领了一种新的生活方式,用户可以通过远程网络获得所需资源,但是,用户在充分利用这些技术为自己服务的同时也遭受到了计算机网络的攻击,例如,信息窃取、网络诈骗、用户身份冒充攻击等安全问题不断出现。因此,如何保证合法用户安全访问网络资源成为目前网络安全技术的一个重要课题。

保证合法用户安全访问网络资源最重要的一个问题就是如何实现客户端和服务器相互间的身份验证,避免钓鱼网站骗取用户的私人信息或者冒充用户从服务器获取敏感信息。本文设计了一种基于数字证书的双向身份认证方案,不仅实现了用户和网站间的双向身份认证,而且可以防止攻击者的冒名攻击、重放攻击等。

本文的基于数字证书的身份认证方案需要用户、网站、认证服务器、以及数字证书系统的支持。首先,用户和网站在上网和向公众提供服务前应携带自己的有效证件到当地的CA/RA机构申请数字证书,RA当场验明用户及网站真实身份后,向用户和网站颁发数字证书,它是公民及网站在网络社会的身份凭证,用于证明用户的身份。其次,认证服务器在用户注册以及登陆网站时,对用户和网站的身份进行认证,保护合法用户安全访问网络资源。

本文使用USB Key作为数字证书的载体,USB Key是一种利用USB接口与客户端的PC机连接,具有一个内置的CPU,支持多种加密算法,并可以根据不同的算法对主句进行加密、解密,秘钥不会被导出至计算机内存。同时,USB Key采用双因子身份认证方式,用户必须同时拥有USB Key及PIN码才能使用数字证书和秘钥[1]。因此,使用USB Key作为数字证书载体具有携带方便、安全性高的优点。

1 核心流程

用户申请到数字证书后,在访问网站时,需首先在该网站上进行注册,注册时除了填写账户名、口令之外,还需要通过数字证书证明个人真实身份,数字证书在传输过程中通过加密进行保护,然后发送到网站,网站在处理用户的注册操作时根据注册协议将用户信息提交到认证服务器上,认证服务器验证用户身份合法性,并将认证的结果发送到网站,若认证通过,网站允许该用户注册账户,否则,拒绝用户注册[2]。

用户在登陆网站时,首先插入数字证书载体USB Key,将自己的账户名及加密后的数字证书发送到网站;网站收到用户传送过来的数据后,首先根据用户名验证用户是否是该网站的合法用户,若不是则拒绝用户登陆,否则将用户和自己的数字证书发送到认证服务器;认证服务器调用证书系统中该用户和网站的数字证书,验证用户和网站的真实身份,若二者全部是合法用户,则将认证结果返回给用户和网站,同意用户登陆网站,否则拒绝用户登陆。

2 身份认证协议设计

2.1 协议符号约定

UserID:用户名

PW:用户密码

A:用户

B:网站服务器

C:认证服务器

X||Y:两个字符串X和Y的连接

RX:主体X产生的随机数

IX:主体X的数字证书

UIX:主体X的唯一标识符

(M)X+和(M)X-:使用主体X的公钥和私钥对数据M进行加密和解密

KX和KX-1:表示主体X的公钥和私钥。

2.2 注册阶段

(1)A―>B:用户向网站提交注册申请。

(2)B―>A:网站响应用户注册请求。

(3)A―>B:E1=(((IA)A-,UserID,PW)B+)。

1)用户填写UserID和PW。

2)USB Key自动使用用户私钥对数字证书进行签名得到(IA)A-。

3)使用网站公钥对(IA)A-,UserID,PW进行加密并发送至网站。

(4)B―>C:E 2=((IA)A-,(IB)B-)C+。

1)网站接收到用户发送的数据后使用私钥解密,得到(IA)A-,UserID,PW;

2)使用私钥签名网站数字证书IB,得到(IB)B-;

3)使用认证服务器的公钥加密(IA)A-,(IB)B-,并将结果发送至认证服务器。

(5)C―>B。

1)认证服务器接收到网站发送的数据后,使用私钥解密数据,并分别使用用户和网站的公钥解密各自数字证书。

2)访问证书系统,验证网站证书和用户证书,若验证失败,则拒绝用户注册网站,否则,通知网站允许用户注册。

(6)网站收到认证服务器发送来的允许用户注册信息后,在网站注册用户账户,并将注册信息发送给用户。

2.3 认证阶段

用户插入USB Key、输入PIN码,通过PIN验证后进入下面的身份认证阶段,否则提示错误信息并结束认证[3]。认证流程如下:

(1)A―>B:E1=((IA)A-,UserID,RA)B+。用户A登陆网站B,输入用户名UserID,在USB Key中生成随机数RA,用私钥签名数字证书得到(IA)A-,并用网站服务器的公钥对(IA)A-,UserID,RA加密,然后发送至网站。

(2)B―>C:E2=((IA)A-,(IB)B-,RA,RB)C+。网站收到用户发送过来的数据后,用私钥解密,然后根据UserID判断该用户是否为合法用户,如果不是合法用户则提示用户重新认证,如果成立则继续往下执行协议。

1)产生随机数RB。

2)用私钥对网站数字证书签名,得到(IB)B-。

3)将(IA)A-,(IB)B-,RA,RB用认证服务器的公钥加密,然后发送至认证服务器。

(3)C-->B:E3=(((UNA||RA)C-,RB)A+,(UNB||RB)C-)B+。认证服务器接收网站传来的数据,用私钥解密,得到(IA)A-,(IB)B-,并分别使用用户和网站的公钥解密(IA)A-,(IB)B-,得到用户和网站的数字证书,并与证书库中用户和网站的证书相比较,若有其中任何一个不相同,则中断连接,否则:

1)取出认证服务器中存放的用户及网站的唯一标识符,用私钥分别对(UNA||RA)、(UNB||RB)进行签名,得到(UNA||RA)C-,(UNB||RB)C-。

2)使用用户公钥对((UNA||RA)C-,RB)进行加密,得到((UNB||RA)C-,RB)A+。

3)使用网站公钥对((UNA||RA)C-,RB)A+,(UNB||RB)C-进行加密,然后发送至网站。

(4)B―>A:E4=((UNA||RA)C-,RB)A+。网站接收认证服务器发送的数据后,使用私钥解密,同时用认证服务器的公钥解密(UNB||RB)C-,与存储于网站中的(UNB||RB)比较,若不相同,则中止连接,若相同,则将((UNA||RA)C-,RB)A+发送至客户端。

(5)A―>B:E5=(PW,RB)B+。客户端接收网站发送的数据后,使用私钥解密,同时用认证服务器的公钥解密(UNA||RA)C-,与存储于USB Key中的(UNA||RA)比较,若不相同,则中断连接,若相同,使用网站公钥对(PW,RB)加密并将结果发送至网站。

(6)网站收到(PW,RB)B+后,用B-解密得到PW,RB,验证RB通过后,再根据PW验证用户的身份,验证通过后,则允许用户登陆网站[4]。

以上过程中,任何一步的验证失败,都表明双向认证失败,将结束认证过程,拒绝用户访问网站资源。

3 安全性分析

3.1 抵御身份冒充攻击

在第一步中,攻击者即便窃取了用户的UserID和PW,也会因无法获知用户的数字证书而无法通过第三步中认证服务器的认证,因此不能冒充用户的身份。

如果用户被诱导至一个钓鱼网站,在第三步中,认证服务器通过证书系统检测到钓鱼网站不具有合法的数字证书,中断连接,钓鱼网站因此无法骗取用户隐私信息。

3.2 抵御重放攻击

用户和网站在每次进行身份认证时,产生不同的随机数,每次使用的口令均不相同,且无法进行预测,因此攻击者即便截获了某一次的认证信息,这些认证信息在下一次进行认证时也会成为无效信息。因次,协议有效的防止了攻击者截获之前的认证信息进行重放攻击。

3.3 双向身份认证

协议通过第三方认证机构实现了用户和服务器间的双向身份认证,协议在第三步和第五步实现了网站对认证服务器和客户端的认证,在第四步实现了客户端对认证服务器和网站的认证。该协议克服了传统的静态身份认证方案单向身份认证的缺点,实现了双向身份认证,提高了安全性。

4 结束语

针对传统的身份认证方案的缺点,本文提出了一种新的基于数字证书的双向身份认证方案,在注册和登陆阶段分别对用户和网站的身份实行认证,并使用身份冒充攻击、重放攻击证明该协议的安全性,更重要的是,新方案完全满足一个双向身份认证的要求,克服了一些薄弱环节,在有效规范用户上网行为的同时避免了用户被诱骗到钓鱼网站,具有安全性和高效性。

参考文献:

[1]游新娥.身份认证技术研究与分析[J].湘潭师范学院学报,2009(01).

[2]马丁,龙恺.基于互联网实名制的电子交易强认证方法[J].通信技术,2013(12):86-88.

[3]朱旭东.基于USBKey的双向身份鉴别方案设计[J].淮阴工学院学报,2009(06).

[4]王斌君,韦杨,巩荣.B/S环境下反网络钓鱼双向身份鉴别系统的设计与实现[A].全国计算机安全学术交流会论文集(第二十五卷)[C],2010(09):54-57.

作者简介:龚雪(1987-),女,河南南阳人,在读硕士研究生,研究方向:信息安全及计算机犯罪侦查。

作者单位:中国人民公安大学,北京 100038

上一篇:基于静态波束综合的波束域预处理算法 下一篇:基于虚拟机的计算机操作系统远程部署