一种双向认证方法及系统的制作方法

文档序号:7965287阅读:253来源:国知局
专利名称:一种双向认证方法及系统的制作方法
技术领域
本发明涉及计算机网络通信领域,特别是涉及一种基于双线性对的无证书双向认证方法及系统。

背景技术
无线局域网(Wireless local-area network,WLAN)以其频带免费、组网灵活、不受地形限制、易于迁移等优点,引起人们越来越多的关注。同时,基于WLAN技术构建的一种新的网络结构-无线网状网(Wireless Mesh Networks,WMN)也进入了人们的视野。WMN克服了WLAN中接入点(Accss Point,AP)的覆盖范围有限的问题,能提供相对较大区域的无线覆盖。随着无线网络通信的迅速发展,安全问题日益突出。由于无线网络中的数据是通过射频无线电传输,这样恶意的攻击者就容易窃听。与有线网络比较,无线网络难以采用物理手段控制,因此保护无线网络的安全难度要远大于保护有线网络。基于安全考虑必须专门为WLAN和WMN设计防护机制,以保护传输数据的机密性、完整性和不可否认性,同时也要对请求接入网络的用户进行身份认证和访问控制。
因此,IEEE于2004年7月颁布了IEEE802.11i标准,规定了无线局域网中的用户接入控制和数据加密机制。目前WLAN安全标准和WMN的草案中均采用IEEE802.11i作为安全解决方案。IEEE802.11i标准中提出了无线局域网新安全体系-鲁棒性安全网络(RobustSecurity Network,RSN)以实现更加可靠的网络安全。RSN体系结构主要分为两部分数据加密机制和安全关联管理,如图1所示。其中数据加密机制主要包含动态密钥完整性协议(Temporal Key Integrity Protocol,TKIP)和高级加密标准(Advanced Encryption Standard,AES)。RSN安全关联管理机制包括RSN安全能力协商过程、802.1X认证过程和802.1X密钥协商过程。并且IEEE802.11i选择了IEEE802.1X基于端口的接入控制协议,实现了申请者(Supplicant)、认证者(Authentication)和认证服务器(Authentication Server,AS)在网络设备的物理接入级对接入设备进行认证和控制,它提供了一种即可用于有线网络也可用于无线网络的用户认证和密钥管理的框架,可以控制用户只有在认证通过以后才能连接到网络。
成员的安全接入问题是建立和维护一个WLAN和WMN面临的一个关键问题。目前802.11i中采用802.1X的扩展认证协议(Extensible Authentication Protocol,EAP)认证来实现一个成员的安全接入。
EAP-TLS是802.1X EAP中的默认协议,是一种基于传输层安全(Transport Layer Security,TLS)的认证方式,认证服务器与申请者采用TLS协议协商会话密钥。该协议要求双方都有公钥证书,并通过公钥证书实现服务器与客户的双向认证。基于公钥证书的认证技术需要公钥基础设施(Public Key Infrastructure,PKI),但是目前PKI还不成熟,并且PKI本身也存在着一些难以解决的问题。PKI体系的核心是认证中心(Certificate Authority,CA)。CA需要完成证书发放、证书更新、证书撤销和证书验证等。
在整个协议交互过程中,通信双方分别执行以下操作 1.交换hello消息用于协商算法,交换随机数,验证是否是会话重复连接。
2.交换必须的密码参数,使得申请者和服务器能够协商某个密钥。
3.交换证书和密码信息,使得申请者和服务器能够相互向对方认证。
4.通过交换随机数,由主密钥生成会话密钥。
5.验证对方已经计算了相同的安全参数,确认握手已经完成,并且没有受到攻击者的篡改。
上述步骤通过下面描述的四次消息交换实现,为了更好的说明该协议,我们只描述TLS握手协议的一个简化版本,参见图2,具体过程如下 Hello消息交换申请者发送“Supplicant Hello(请求会话)”消息发起会话连接,服务器必须用“Authentication Server Hello(收到请求)”消息应答,否则连接失败。这两条消息包含协议版本号、随机数、会话标识和密码套件。版本号用来告诉对方自己使用的协议版本号。随机数用作新鲜性标识符和产生双方之间的对主密钥(Pair-wise Master Key,PMK)。会话标识唯一标识当前的会话连接。密码套件是申请者支持的一些密码选项,认证服务器从中做出选择并告诉申请者。
服务器证书和密钥交换数据在Hello消息交换之后,服务器应该发送自己的“Authentication Server Certificate(认证服务器证书)”让申请者认证。之后是“KeyExchange(密钥交换)”,用于发送密钥交换的密钥信息。同时通过“Certificate Request(请求证书)”消息要求申请者提供证书。最后服务器发送“Authentication Server Hello Done(会话完成)”表示Hello消息交换结束。
客户响应申请者发送自己的“Supplicant Certificate(申请者证书)”让对方验证,然后发送“Supplicant Key Exchange(密钥交换)”消息携带用于PMK的密钥信息。TLS的密钥交换支持RSA和DH密钥交换两种方式,可以在hello消息中的密码套件中进行协商。如果是RSA,则在该域中发送RSA加密的密钥信息;如果是DH,则发送DH公钥值。同时在“CertificateVerify(证书校验)”消息中发送一个数字签名,让认证服务器明确验证申请者的证书。
最后的消息交换申请者首先发送“Supplicant Finished(申请完成)”消息,该消息中包含带有密钥的消息鉴别码(Message Authentication Code,MAC),以便允许认证服务器确认申请者执行了正确的握手程序。作为响应,服务器发送一个类似的消息“Authentication ServerFinished(认证完成)”,其中也包含带密钥的MAC,以便申请者进行同样的确认。
该协议存在如下的缺点 1.该协议要求双方都有公钥证书,在公钥基础设施PKI没有广泛部署时,实践中操作起来比较困难。PKI的部署是一项复杂的工程,存在很多制约因素。在完善的PKI平台搭建好之前很难做到系统之间的互联互通。
2.公钥证书的管理比较困难,证书需要单独的目录进行存放,证书的审批、证书的发放、证书的更新、证书的查询和撤销、产生和发布证书废止列表、数字证书的归档、密钥归档、历史数据归档等这些问题都会影响协议的实现及执行。
3.该协议不对用户身份进行保护,会造成双方身份信息的暴露,特别是申请者的身份。


发明内容
为了解决现有技术中公钥认证管理困难和不能保护用户身份的问题,本发明提供了一种双向认证方法及系统。
由于本发明方案中采用的是基于双线性对的无证书密码系统,现将基于双线性对的无证书密码系统涉及到的概念介绍如下 双线性映射设G1、G2是两个阶为q的循环群,其中q为一个大素数(例如160比特以上的)。G1、G2分别为加法群和乘法群。G1、G2上的双线性映射eG1×G1→G2是指满足如下性质的映射 (1)双线性e(aP,bQ)=e(P,Q)ab,其中P、Q∈G1,a、b∈N; (2)非退化性;如果P,Q∈G1都不是G1的单位元,则e(P,Q)≠1; (3)可计算性存在一个有效算法,对于任意的P、Q∈G1,可有效地计算e(P,Q)。
目前,可用的双线性映射有椭圆曲线和Abel代数簇上的Weil映射和Tate映射。本发明技术方案的安全性基于下列数学问题的计算困难性 (1)G1上的Computational Diffie-Hellmnn(CDH)问题设G1是阶为q的循环群,q为一大素数,P是G1的生成元。随机选取<aP,bP>(a、b∈Zq*未知),计算abP∈G1。
(2)Bilinear Diffie-Hellman(BDH)问题设G1、G2是两个阶为q的循环群,其中q为一大素数。 eG1×G1→G2是一个双线性映射,P是G1的生成元。随机选取<aP,bP,cP>(a、b、c∈Zq*未知),计算e(P,P)abc∈G2。
本发明所述技术方案如下 一种双向认证方法,所述方法包括以下步骤 步骤A生成系统参数和认证服务器及申请者的公私钥; 步骤B申请者与认证服务器建立会话连接; 步骤C申请者验证所述认证服务器的身份,验证通过后生成对主密钥,用申请者的私钥生成消息M1的签名,然后向认证服务器发送M1的签名; 步骤D认证服务器用所述申请者的公钥验证M1的签名;验证通过后,生成对主密钥,并把所述对主密钥通过安全信道发送给认证者。
当密钥交换方式为DH密钥交换方式时,所述方法具体包括以下步骤 步骤A1生成系统参数和认证服务器及申请者的私钥,相应的公钥由认证服务器和申请者各自选择的秘密参数和各自相应的的身份信息生成; 步骤B1申请者选择一个随机数NS,然后向认证服务器发送请求会话消息,所述消息携带选择的随机数NS; 步骤C1认证服务器选择用于DH密钥交换的公共参数,并用私钥对所选择的公共参数进行签名,同时选择一个随机数NAS,向申请者发送应答消息,所述消息携带所述随机数NAS、公共参数的签名; 步骤D1申请者用认证服务器的公钥对所述公共参数的签名进行验证,验证通过后,选择用于DH密钥交换的公共参数,然后根据公共参数和随机数NS、NAS生成主会话密钥,根据主会话密钥生成对主密钥,用所述申请者私钥对M1进行签名,然后向认证服务器发送请求认证消息,所述消息携带申请者的公共参数和M1的签名; 步骤E1认证服务器根据所述申请者的公钥验证M1的签名,验证通过后,向申请者发送认证响应消息;同时根据申请者的公共参数和随机数NS、NAS生成主会话密钥,根据主会话密钥生成对主密钥,并把所述对主密钥通过安全信道发送给认证者。
当密钥交换方式为公钥加密交换方式时,所述方法具体包括以下步骤 步骤A2生成系统参数和认证服务器及申请者的私钥,相应的公钥由认证服务器和申请者各自选择的秘密参数和各自相应的的身份信息生成; 步骤B2申请者选择一个随机数NS,然后向认证服务器发送请求会话消息,所述消息携带选择的随机数NS; 步骤C2认证服务器收到所述请求会话消息后,选择一个随机数NAS,向申请者发送应答消息,所述消息携带选择的随机数; 步骤D2申请者随机选择一个密钥和一个大于160比特的素数,并用认证服务器的公钥和所述素数对所述密钥加密,然后根据所述密钥和随机数NS、NAS生成主会话密钥,根据主会话密钥生成对主密钥,用所述申请者私钥对消息M1进行签名,向认证服务器发送请求认证消息,所述消息携带M1的签名和公钥加密后的密钥; 步骤E2认证服务器用私钥对加密后的密钥进行解密得到所述密钥,用申请者的公钥验证所述M1的签名;验证通过后,根据所述密钥和随机数NS、NAS生成主会话密钥,根据主会话密钥生成对主密钥,并通过安全信道发送给认证者;然后向申请者发送认证响应消息。
所述申请者对M1进行签名后,还包括根据主会话密钥生成M1的消息鉴别码,然后在所述请求认证消息中携带M1的鉴别码; 相应地,所述认证服务器验证M1的签名后验证M1的鉴别码;验证通过后,根据主会话密钥生成消息M2的鉴别码,并在认证响应消息中携带M2的鉴别码; 申请者收到所述认证响应消息后,验证M2的鉴别码,如果验证通过,生成的对主密钥有效,否则无效,认证结束。
所述生成系统参数和认证服务器及申请者的公私钥采用的是基于双线性对的无证书密码系统。
所述申请者生成的主会话密钥后,还包括用所述主会话密钥对申请者的身份进行加密,同时在请求认证消息中携带加密了的申请者的身份,相应地,认证服务器生成主会话密钥后,还包括用所述主会话密钥对经过加密的申请者身份进行解密。
所述请求会话消息中还包括申请者所支持的密钥交换方式; 相应地,所述认证服务器收到所述请求会话消息后,还包括选择密钥交换方式的步骤,并在向申请者发送应答消息中携带选择的密钥交换方式。
本发明还提供了一种双向认证系统,所述系统包括以下模块 系统参数初始化模块,用于生成系统参数和认证服务器及申请者的公私钥; 建立会话连接模块,用于申请者与认证服务器建立会话连接; 验证服务器身份模块,用于申请者验证服务器的身份,验证通过后生成对主密钥,用申请者的私钥生成消息M1的签名,然后向认证服务器发送M1的签名; 验证申请者身份模块,用于认证服务器用申请者的公钥验证M1的签名;验证通过后,生成对主密钥,并把所述对主密钥通过安全信道发送给认证者。
所述建立会话连接模块具体包括 会话请求模块,用于申请者向认证服务器发送请求会话消息; 应答模块,用于认证服务器收到所述会话请求模块的请求会话消息后,向申请者发送应答消息; 所述验证服务器身份模块具体包括请求认证模块,用于申请者收到所述应答模块的应答消息后,验证认证服务器的身份,验证通过后生成对主密钥,用申请者的私钥生成消息M1的签名,然后向认证服务器发送请求认证消息,所述消息携带M1的签名; 所述验证申请者身份模块具体包括认证响应模块,用于认证服务器收到所述请求认证模块的请求认证消息后,用申请者的公钥验证M1的签名;验证通过后,生成对主密钥,并把所述对主密钥通过安全信道发送给认证者。
所述系统参数初始化模块具体采用基于双线性对的无证书密码系统,生成系统参数和认证服务器及申请者的公私钥。
所述会话请求模块还包括密钥交换方式单元,用于存放申请者所支持的密钥交换方式; 相应地,所述应答模块还包括选择密钥交换方式单元,用于认证服务器收到所述会话请求模块发送的请求会话消息后,根据所述密钥交换方式单元选择具体的密钥交换方式,并在向申请者发送应答消息中携带选择的密钥交换方式。
所述请求认证模块还包括加密单元,用于加密申请者的身份; 相应地,所述认证响应模块还包括解密单元,用于对加密后的申请者身份进行解密。
本发明技术方案带来的有益效果是 1.采用公钥加密/DH密钥交换,产生高安全强度的密钥,同时采用了双方的随机数来保证密钥的新鲜性和防止重放攻击。另外双方采用私钥签名/公钥加密来完成双向身份认证,和HMAC保证消息的完整性和密钥确认,可有效抵抗中间人攻击,并保护了协商密码套件的完整性; 2.移动设备的身份ID是用主会话密钥加密传输的,主会话密钥MSK只有申请者和认证服务器可以计算出来,而攻击者则面临BDH难题无法得到MSK,从而实现了用户身份保护; 3.申请者和认证服务器的双方身份认证是采用基于双线性对的签名实现的,因此消息无法伪造,同时也有效地防止了中间人攻击、重放攻击、伪装、会话劫持等攻击方式,完成了显式密钥认证。
4.通过基于双线性对的无证书密码系统的认证及密钥管理协议,实现了WLAN中成员的认证,该方案由于不需要公钥证书,因此大大降低了系统的建设和维护成本,提高了系统的运行效率。



图1是现有技术RSNA体系结构图; 图2是现有技术802.1X EAP-TLS中的认证过程示意图; 图3是本发明提供的采用DH密钥交换方式的双向认证方法流程图; 图4是本发明实施例2中RSNA的建立过程示意图; 图5是本发明提供的采用公钥加密交换方式的双向认证方法流程图; 图6是本发明提供的双向认证系统示意图。

具体实施例方式 下面结合附图和具体实施例对本发明作进一步说明,但不作为对本发明的限定。
本发明采用了基于双线性对的无证书密码系统实现密钥交换和双向身份认证。
在基于双线性对的无证书公钥密码系统中需要一个称为密钥产生中心(Private KeyGenerator,PKG)可信第三方,但PKG和CA不同,它仅仅是选择并计算系统的公开参数,给用户/申请者分发部分长期私钥。公钥是用户根据自己的身份信息和随机选择的秘密参数生成的且可以自验证,任意的用户可在任何时候独立的进行验证,所以没必要对用户公钥进行签名来保证其真实性。另外,PKG可以在认证服务器上。
本发明具体方案如下 参见图3,本发明提供了一种双向认证方法,首先是系统初始化,生成系统参数和认证者及认证者服务器的公私钥,具体初始化过程如下 步骤101系统初始化,生成系统的公共参数;具体实现过程如下 PKG选择大素数q(大于160个比特位)和阶为q的加法群G1、乘法群G2以及G1的生成元P,并且eG1×G1→G2为G1和G2上的双线性映射。设h1{0,1}*→G1和h2Zq×G1×{0,1}*→Zq为哈希函数,h3{0,1}*×Zq×G1→{0,1}*为密钥推导函数。PKG还要随机选择系统主密钥s∈Zq并计算Ppub=sP∈G1。最后PKG公布系统的公共参数 {e,G1,G2,q,P,Ppub,h1,h2,h3}。
步骤102生成用户(认证服务器和申请者)的公私钥。主要包括从PKG处获取部分私钥和计算自己的私钥及公钥三部分内容。
(1)获取部分私钥用户将其身份ID∈{0,1}*发送给PKG后,PKG计算QID=h1(ID)∈G1和DID=sQID∈G1,并把部分私钥DID通过安全信道返回给相应的用户。
(2)计算长期私钥用户根据从PKG那里得到的部分私钥DID,随机选择秘密参数x∈Zq并计算自己的私钥SID=xDID=xsQID∈G1。
(3)计算可验证公钥用户计算并公布自己的公钥PKID=(XID,YID)=(xsP,xQID)。其它任意用户可以如下验证其公钥的合法性e(YID,Ppub)=e(QID,XID)。
当用户即申请者(ID为S)需要进行数据通信时,首先需要与认证服务器(ID为AS)进行互认证,因为在WLAN中申请者与认证服务器无法直接通信,所以它们之间的信息发送是通过认证者进行的,具体认证过程如下 步骤103申请者通过认证者发送一个消息给认证服务器,发起会话连接,所述消息中携带协议版本号、一个随机数Ns、会话标识和密码套件;版本号用来告诉认证服务器自己使用的协议版本号。随机数用作新鲜性标识符和产生双方之间的对主密钥PMK。会话标识唯一标识当前的会话连接。密码套件是申请者支持的一些密码选项,包括申请者所支持的密钥交换方式,所述密钥交换方式有DH密钥交换和公钥加密交换方式等,该密钥交换方式可以由申请者指定,也可以让认证服务器从中做出选择并告诉申请者。
步骤104认证服务器收到所述消息后,从所述密码套件中选择密钥交换方式,本实施例选择的密钥交换方式为DH交换;根据选择的DH密钥交换方式,生成用于DH密钥交换的公共参数bPpub,其中b∈Zq为认证服务器选择的随机数,并用认证服务器的私钥SAS对公共参数bPpub进行签名SIGAS=bSAS,因为e(bSAS;P)=e(bsQAS,P)=e(QAS,bsP)=e(QAS,bPpub),所以公式SIGAS=bSAS右边不需要Ppub。通过认证者发送一个消息给申请者,所述消息携带所述DH交换方式、签名SIGAS、协议版本号、认证服务器选择的随机数NAS、会话标识和密码套件。
步骤105申请者收到所述消息后,查看所述认证服务器选择的密钥交换方式。用IDAS对签名SIGAS进行验证e(SIGAS,P)=e(YAS,bPpub),其中YAS=xQAS=xh1(IDAS),通过对签名进行验证来完成对认证服务器的认证和对公共参数的完整性检查。
验证通过后,申请者选择用于所述DH交换方式的公共参数aPpub,其中a∈Zq为申请者选择的随机数;然后根据所述认证服务器的公共参数bPpub、所述申请者的公共参数aPpub和双方的随机数NS、NAS生成主会话密钥MSK=h3(h3(abPpub)|NS|NAS)。
用所述申请者私钥SS对消息M1进行签名SIGS=h2(M1)SS,用所述主会话密钥MSK对申请者的身份进行加密{IDS}MSK,同时生成消息M1的消息鉴别码MACS=SHA-1(MSK|IDS|M1),这里的消息M1指申请者计算签名之前收到和发送及当前准备发送的所有消息的集合。
最后通过认证者发送消息给认证服务器,以便认证服务器能够验证申请者的身份和之前发送、接受到的消息的完整性,所述消息携带消息M1的鉴别码、消息M1的签名、加密的申请者身份和申请者的公共参数。
步骤106认证服务器收到所述消息后,根据得到的申请者的公共参数和双方的随机数NS、NAS计算出主会话密钥MSK=h3(h3(abPpub)|NS|NAS),并利用计算出的主会话密钥解密加密后的申请者身份得到申请者的身份IDS。
然后通过等式e(SIGS,P)=e(h2(M1)YS,Ppub)验证消息M1的签名,其中YS=xQS=xh1(IDS),验证通过则说明申请者是合法的,再验证消息M1的鉴别码,如果验证通过则消息完整性没有遭到破坏,具体验证方法为认证服务器计算消息M1的鉴别码MACS=SHA-1(MSK|IDS|M1),因为M1是双方都知道的,计算鉴别码MACs的主会话密钥MSK也是双方都知道的。然后用计算的消息M1的鉴别码和收到消息M1的鉴别码进行对比,如果一致则说明消息没有经过篡改,并且申请者也得到了相同的主会话密钥,从而完成了主会话密钥确认。
验证通过后,计算消息M2的鉴别码MACAS=SHA-1(MSK|IDAS|M2),将所述消息M2的鉴别码MACAS发送给申请者。这里M2指认证服务器计算鉴别码之前收到和发送及当前准备发送的所有消息的集合。
最后通过公式PMK=h3(MSK|NS|NAS)计算生成用于申请者和认证者之间四步握手的对主密钥PMK,并通过安全信道将所述对主密钥PMK发送给认证者。
步骤107所述申请者收到所述消息M2的鉴别码MACAS后,验证所述消息M2的鉴别码,具体验证方法是通过计算MACAS=SHA-1(MSK|IDAS|M2)生成消息M2的鉴别码,用生成的鉴别码与接收到得鉴别码进行比较,如果相同则说明验证通过,否则未通过。验证通过后,通过公式PMK=h3(MSK|NS|NAS)计算生成用于申请者和认证者之间四步握手的对主密钥PMK。
步骤106和步骤107中生成用于认证者和申请者之间四步握手的对主密钥也可以在预共享密钥的认证方式用双方预共享的密钥作为对主密钥,所述预共享密钥的认证方式的预共享密钥可以为双方通过电话协商方式,或者通过面对面直接协商的方式等。
步骤105至步骤107中提到的验证如果不通过的话,就向对方发出验证失败的告警信息并终止当前的会话,即终止协议执行。
步骤108完成对主密钥的生成后,申请者和认证者进行四步握手,验证对主密钥PMK的正确性和新鲜性,并验证密码套件的一致性,同时生成临时对主密钥PTK和临时群组密钥GTK(Group Transient Key,GTK)。
步骤109申请者和认证者的认证结束,在PTK,GTK和协商的密码套件的保护下,开始通过数据保密协议进行安全的数据通信。
实施例1 为了对方案更详细的描述,下面我们给出一种可用于802.11i中的具体实例,该实例可作为一种的新的EAP认证方法,具体描述如下 1.申请者发送“Supplicant Hello(请求会话)”消息发起会话连接,消息中包含协议版本号、随机数NS、会话标识和密码套件。密码套件是申请者支持的一些密码选项,其中密钥交换方式由DH和公钥加密交换两种方式,在所提出技术方案中建议把DH交换作为首选密钥交换方式,因为这样方案的安全性更好。
2.认证服务器用“Authentication Server Hello(收到请求)”消息应答,从申请者支持的密码套件中做出选择并告诉申请者。在Hello消息之后,服务器发送自己的身份IDAS和用于DH交换的公共参数bPpub,同时服务器要通过对DH交换的公共参数进行签名(SIGAS=bSAS)来保证公共参数的完整性和进行身份认证。最后服务器发送“Authentication Server Key Exchange(会话完成)”表示Hello消息交换结束。
3.申请者首先验证AS的签名e(SIGAS,P)=e(YAS,bPpub)。签名正确的话则申请者选择用于DH密钥交换的公共参数aPpub,然后根据认证服务器用于DH密钥交换的公共参数bPpub计算出主会话密钥MSK=h3(h3(abPpub)|NS|NAS)。根据计算出来的主会话密钥用对称加密算法对身份加密{IDS}MSK,并且计算之前发送和接收的所有消息的签名SIGS=h2(M1)SS来实现身份认证和消息完整性保护。最后用“Supplicant Finished(申请完成)”消息发送MACS=SHA-1(MSK|IDS|M1)完成显示密钥确认。
4.认证服务器收到消息后,根据公共参数aPub计算出主会话密钥MSK=h3(h3(abPpub)|NS|NAS),并且解密申请者的身份得到IDS。然后验证申请者的签名e(SIGS,P)=e(h2(M1)YS,Ppub)和消息M1的MAC。验证通过后,向申请者发送“Authentication ServerFinished(认证完成)”消息,该消息中包含MACAS=SHA-1(MSK|IDAS|M2),以便允许申请者确认服务器执行了正确的握手程序,即密钥确认。最后计算认证者和申请者用于四步握手的对主密钥PMK=h3(MSK|NS|NAS),并把对主密钥PMK发送给认证者。
5.申请者验证MACAS=SHA-1(MSK|IDAS|M2),通过后计算认证者和申请者用于四步握手的对主密钥PMK=h3(MSK|NS|NAS)。
上述申请者与认证服务器之间的信息发送都是通过认证者进行传递的。
实施例2 参见图4,基于本发明提供的技术方案和802.11i中的具体实例,一个准备接入当前WLAN或WMN的移动设备要进行如下RSNA的建立过程 阶段1网络发现阶段 在这个阶段,申请者有两种方式来发现网络接入设备(Authenticator,认证者)及其具有的安全能力。一种是被动扫描由认证者周期性的广播信标帧(Beacon帧);另一种是主动扫描申请者发送探测(Probe Request)每个信道,对方以探测响应帧(Probe Response)进行应答。
阶段2802.11开放系统认证和关联阶段 在该阶段,申请者和认证者之间进行802.11开放系统认证(802.11 Authentication Request,802.11 Authentication Response),并通过关联请求和关联响应(802.11 Association Request,802.11 Association Response)协商密码套件中的密码选项等内容。该阶段结束后,双方状态为已认证和已关联。但是,这并没有进行实际的认证,并且802.1X端口仍然没有打开,不能进行数据交换。
阶段3802.1X EAP认证阶段 802.1X EAP认证在申请者和认证服务器之间进行。采用所提出的基于身份密码系统的认证DH密钥交换体制,申请者和认证服务器进行安全的双向认证,并产生主会话密钥MSK。申请者利用MSK推导出PMK;认证服务器同样利用MSK推导出PMK,并通过安全信道把PMK发送给认证者。如果采用预共享密钥的认证方式的话,则该阶段可省略而直接进入下一阶段。
阶段4四步握手阶段 一个RSNA必须在成功的四步握手之后才能建立。四步握手由申请者和认证者执行,用于确认上一阶段产生的PMK正确性和新鲜性,验证双方选择的密码套件的一致性并产生临时对密钥PTK以及临时群组密钥GTK。至此,RSNA建立,802.1X端口打开以允许数据交换。
阶段5安全的数据通信阶段 申请者和认证者完成认证,在PTK,GTK和协商的密码套件的保护下,开始通过数据保密协议进行安全的数据通信。
参见图5,本发明还提供了另一种双向认证方法,该认证方法的密钥交换方式为公钥加密交换方式。
在一个基于身份的公钥密码系统(Identity Based Cryptogrpphy,IBC)中,用户不是生成一对随机的公钥/私钥,而是由用户选择公开可知的身份信息(如网络访问标识符NAI、Email地址、电话号码、门牌号码等)作为公钥,由通信网络上认定的私钥分发中心PKG(Private KeyGenerator,PKG)按照这些公开可知的身份信息为该用户提供一个私钥。当一个用户需要与另一个用户通信时,他只需知道对方的NAI、Email地址、电话号码或门牌号码就可以进行加密通信,这样可以减去繁琐的证书发放和管理机制。
该认证方法首先是系统初始化,生成系统参数和认证服务器及认证者的公私钥,具体初始化过程的步骤201至步骤203同实施例1中步骤101至步骤102,这里不再赘述。
步骤204认证服务器收到所述消息后,从所述密码套件中选择密钥交换方式,本实施例选择的密钥交换方式为公钥加密交换方式,这种方式的安全性低于DH密钥交换方式,但是其安全性能够满足无线局域网的要求,认证服务器通过认证者发送一个消息给申请者,所述消息携带协议版本号、会话标识、密码套件、公钥加密交换方式、认证服务器的身份IDAS和认证服务器选择的随机数NAS。
步骤205申请者收到所述信息后,查看认证服务器选择的密钥交换方式,得知认证选择的是公钥加密交换方式,申请者随机选择一个会话密钥MK和一个大于160比特位的大素数r∈Zq,并用认证服务器的公钥YAS和所述大素数r对所述会话密钥MK加密ENC=MKh2(e(YAS,Ppub)r)。
然后根据所述密钥MK和两个随机数NS、NAS生成主会话密钥MSK=h3(MK|NS|NAS),用所述主会话密钥MSK对申请者的身份进行加密{IDS}MSK,用所述申请者私钥SS对消息M1进行签名SIGS=h2(M1)SS,同时计算生成消息M1的消息鉴别码MACS=SHA-1(MSK|IDS|M1),这里的消息M1指申请者计算签名之前收到和发送及当前准备发送的所有消息的集合。
最后通过认证者发送消息给认证服务器,所述消息携带消息M1的鉴别码、消息M1的签名、加密的申请者身份和公钥加密后的密钥。
步骤206认证服务器收到所述消息后,用私钥SAS对加密后的会话密钥进行解密MK=ENCh2(e(SAS,rP))得到所述会话密钥MK,只有真正的认证服务器才能用自己的私钥对加密的会话密钥进行解密,这样就达到了验证认证服务器的身份的目的,根据会话密钥和随机数NS、NAS计算公式MSK=h3(MK|NS|NAS)得到主会话密钥,根据主会话密钥解密加密的申请者的身份,得到申请者的身份IDS。
认证服务器用认证服务器的公钥验证所述申请者对消息M1的签名SIGSe(SIGS,P)=e(h2(M1)YS,Ppub),其中QS=h1(IDS),验证通过则说明申请者是合法的,并验证消息M1的鉴别码MACS,具体验证方法同步骤106相应部分,这里不再详述,验证通过则说明消息M1的完整性没有遭到破坏,如果两个验证有一个没通过就终止协议。
验证通过后,认证服务器计算生成消息M2的鉴别码MACAS=SHA-1(MSK|IDAS|M2),这里M2指认证服务器计算鉴别码之前收到和发送及当前准备发送的所有消息的集合,并通过认证者将所述消息M2的鉴别码MACAS发送给申请者。
最后计算生成用于申请者和认证者之间四步握手的对主密钥PMK=h3(MSK|NS|NAS),并通过安全信道将所述对主密钥PMK发送给认证者。
步骤207所述申请者收到所述消息M2的鉴别码MACAS后,验证所述消息M2的鉴别码,具体验证方法和步骤107相同,这里不再详述。验证通过后,计算用于申请者和认证者之间四步握手的对主密钥PMK=h3(MSK|NS|NAS)。
步骤206和步骤207中生成用于认证者和申请者之间四步握手的对主密钥在预共享密钥的认证方式用双方预共享的密钥作为对主密钥,所述预共享密钥的认证方式中的预共享密钥可以为双方通过电话协商方式或者通过面对面直接协商的方式等。
步骤205至步骤207中提到的验证如果不通过的话,就向对方发出验证失败的告警信息并终止当前的会话。
实施例3 为了对本发明更详细的描述,同样给出一种可用于802.11i中的具体实例,该实例可作为一种的新的EAP认证方法。
具体描述如下 1.申请者发送“请求会话”消息发起会话连接,消息中包含协议版本号、随机数、会话标识和密码套件。
2.服务器用“收到请求”消息应答,从申请者支持的密码套件中做出选择并告诉申请者。在Hello消息之后,服务器发送自己的身份IDAS。最后服务器发送“会话完成”表示Hello消息交换结束。
3.申请者首先选择双方之间的共享密钥MSK,用其加密自己的身份来实现身份保护。同时用AS的公钥进行加密ENC=MKh2(e(YAS,Ppub)r),并计算MSK=h3(MK|NS|NAS),用MSK加密自己的身份。然后计算之前发送和接受的所有消息的签名SIGS=h2(M1)SS来实现身份认证和消息完整性保护。最后用“申请完成”消息发送MACS=SHA-1(MSK|IDS|M1)完成显示密钥确认。
4.服务器收到消息后,根据自己的私钥SAS对ENC解密MK=ENCh2(e(SAS,rP)),并计算MSK=h3(MK|NS|NAS),从而解密申请者的身份得到IDS。然后验证申请者的签名e(SIGS,P)=e(h2(M1)YS,Ppub)和消息M1的MAC。验证通过后,向申请者发送“认证完成”消息,该消息中包含MACAS=SHA-1(MSK|IDAS|M2),以便允许申请者确认服务器执行了正确的握手程序,即密钥确认。最后计算双方用于四步握手的对主密钥PMK=h3(MSK|NS|NAS),并通过安全信道发送给认证者。
5.申请者验证MACAS=SHA-1(MSK|IDAS|M2),通过后计算双方用于四步握手的对主密钥PMK=h3(MSK|NS|NAS)。
步骤208完成对主密钥PMK的生成后,申请者和认证者进行四步握手,验证对主密钥PMK的正确性和新鲜性,并验证密码套件的一致性,同时生成临时对主密钥PTK和临时群组密钥GTK。
步骤209申请者和认证者的认证结束,在PTK,GTK和协商的密码套件的保护下,开始通过数据保密协议进行安全的数据通信。
采用该技术方案,一个准备接入当前WLAN和WMN的移动设备同样要进行网络发现阶段、802.11开放系统认证和关联阶段、802.1X EPA认证阶段、四步握手阶段和安全的数据通信阶段,各个阶段具体过程同实施例1,这里不在赘述。
参见图6,一种双向认证系统,该系统包括以下模块 系统参数初始化模块,用于生成系统参数和认证服务器及申请者的公私钥; 建立会话连接模块,用于申请者与认证服务器建立会话连接; 验证服务器身份模块,用于申请者验证服务器的身份,验证通过后生成对主密钥,用申请者的私钥生成消息M1的签名,然后向认证服务器发送M1的签名; 验证申请者身份模块,用于认证服务器用申请者的公钥验证M1的签名;验证通过后,生成对主密钥,并把对主密钥通过安全信道发送给认证者。
其中,建立会话连接模块具体包括 会话请求模块,用于申请者向认证服务器发送请求会话消息; 应答模块,用于认证服务器收到会话请求模块的请求会话消息后,向申请者发送应答消息。
验证服务器身份模块具体包括 请求认证模块,用于申请者收到应答模块的应答消息后,验证认证服务器的身份,验证通过后生成对主密钥,用申请者的私钥生成消息M1的签名,然后向认证服务器发送请求认证消息,该消息携带M1的签名。
验证申请者身份模块具体包括 认证响应模块,用于认证服务器收到所述请求认证模块的请求认证消息后,用申请者的公钥验证M1的签名;验证通过后,生成对主密钥,并把对主密钥通过安全信道发送给认证者。
该系统参数初始化模块具体采用基于双线性对的无证书密码系统,生成系统参数和认证服务器及申请者的公私钥。
同时,为了使申请者和认证服务器在进行双方身份认证时,能够选择其他认证方式进行认证,增加系统认证的灵活性,在会话请求模块中添加一个密钥交换方式单元,用于存放申请者所支持的密钥交换方式;相应地, 应答模块添加一个选择密钥交换方式单元,用于认证服务器收到会话请求模块发送的请求会话消息后,根据密钥交换方式单元选择具体的密钥交换方式,并在向申请者发送应答消息中携带选择的密钥交换方式。
为了保护申请者的身份,在请求认证模块中添加一个加密单元,用于加密申请者的身份; 相应的认证响应模块添加一个解密单元,用于对加密后的申请者身份进行解密。
以上所述的实施例,只是本发明较优选的具体实施方式
,本领域的技术人员在本发明技术方案范围内进行的通常变化和替换,或者采用其他的基于无证书密码学的签名和加密算法部应包含在本发明的保护范围内。
权利要求
1.一种双向认证方法,其特征在于,所述方法包括以下步骤
步骤A生成系统参数和认证服务器及申请者的公私钥;
步骤B申请者与认证服务器建立会话连接;
步骤C申请者验证所述认证服务器的身份,验证通过后生成对主密钥,用申请者的私钥生成消息M1的签名,然后向认证服务器发送M1的签名;
步骤D认证服务器用所述申请者的公钥验证M1的签名;验证通过后,生成对主密钥,并把所述对主密钥通过安全信道发送给认证者。
2.如权利要求1所述的双向认证方法,其特征在于,当密钥交换方式为DH密钥交换方式时,所述方法具体包括以下步骤
步骤A1生成系统参数和认证服务器及申请者的私钥,相应的公钥由认证服务器和申请者各自选择的秘密参数和各自相应的的身份信息生成;
步骤B1申请者选择一个随机数NS,然后向认证服务器发送请求会话消息,所述消息携带选择的随机数NS;
步骤C1认证服务器选择用于DH密钥交换的公共参数,并用私钥对所选择的公共参数进行签名,同时选择一个随机数NAS,向申请者发送应答消息,所述消息携带所述随机数NAS、公共参数的签名;
步骤D1申请者用认证服务器的公钥对所述公共参数的签名进行验证,验证通过后,选择用于DH密钥交换的公共参数,然后根据公共参数和随机数NS、NAS生成主会话密钥,根据主会话密钥生成对主密钥,用所述申请者私钥对M1进行签名,然后向认证服务器发送请求认证消息,所述消息携带申请者的公共参数和M1的签名;
步骤E1认证服务器根据所述申请者的公钥验证M1的签名,验证通过后,向申请者发送认证响应消息;同时根据申请者的公共参数和随机数NS、NAS生成主会话密钥,根据主会话密钥生成对主密钥,并把所述对主密钥通过安全信道发送给认证者。
3.如权利要求1所述的双向认证方法,其特征在于,当密钥交换方式为公钥加密交换方式时,所述方法具体包括以下步骤
步骤A2生成系统参数和认证服务器及申请者的私钥,相应的公钥由认证服务器和申请者各自选择的秘密参数和各自相应的的身份信息生成;
步骤B2申请者选择一个随机数NS,然后向认证服务器发送请求会话消息,所述消息携带选择的随机数NS;
步骤C2认证服务器收到所述请求会话消息后,选择一个随机数NAS,向申请者发送应答消息,所述消息携带选择的随机数;
步骤D2申请者随机选择一个密钥和一个大于160比特的素数,并用认证服务器的公钥和所述素数对所述密钥加密,然后根据所述密钥和随机数NS、NAS生成主会话密钥,根据主会话密钥生成对主密钥,用所述申请者私钥对消息M1进行签名,向认证服务器发送请求认证消息,所述消息携带M1的签名和公钥加密后的密钥;
步骤E2认证服务器用私钥对加密后的密钥进行解密得到所述密钥,用申请者的公钥验证所述M1的签名;验证通过后,根据所述密钥和随机数NS、NAS生成主会话密钥,根据主会话密钥生成对主密钥,并通过安全信道发送给认证者;然后向申请者发送认证响应消息。
4.如权利要求1至3中任一权利要求所述的双向认证方法,其特征在于,
所述申请者对M1进行签名后,还包括根据主会话密钥生成M1的消息鉴别码,然后在所述请求认证消息中携带M1的鉴别码;
相应地,所述认证服务器验证M1的签名后验证M1的鉴别码;验证通过后,根据主会话密钥生成消息M2的鉴别码,并在认证响应消息中携带M2的鉴别码
申请者收到所述认证响应消息后,验证M2的鉴别码,如果验证通过,生成的对主密钥有效,否则无效,认证结束。
5.如权利要求1所述的双向认证方法,其特征在于,所述生成系统参数和认证服务器及申请者的公私钥采用的是基于双线性对的无证书密码系统。
6.如权利要求2或3所述的双向认证方法,其特征在于,所述申请者生成的主会话密钥后,还包括用所述主会话密钥对申请者的身份进行加密,同时在请求认证消息中携带加密了的申请者的身份,相应地,认证服务器生成主会话密钥后,还包括用所述主会话密钥对经过加密的申请者身份进行解密。
7.如权利要求2或3所述的双向认证方法,其特征在于,所述请求会话消息中还包括申请者所支持的密钥交换方式;
相应地,所述认证服务器收到所述请求会话消息后,还包括选择密钥交换方式的步骤,并在向申请者发送应答消息中携带选择的密钥交换方式。
8.一种双向认证系统,其特征在于,所述系统包括以下模块
系统参数初始化模块,用于生成系统参数和认证服务器及申请者的公私钥;
建立会话连接模块,用于申请者与认证服务器建立会话连接;
验证服务器身份模块,用于申请者验证所述认证服务器的身份,验证通过后生成对主密钥,用申请者的私钥生成消息M1的签名,然后向认证服务器发送M1的签名;
验证申请者身份模块,用于认证服务器用所述申请者的公钥验证M1的签名;验证通过后,生成对主密钥,并把所述对主密钥通过安全信道发送给认证者。
9.如权利要求8所述的双向认证系统,其特征在于,
所述建立会话连接模块具体包括
会话请求模块,用于申请者向认证服务器发送请求会话消息;
应答模块,用于认证服务器收到所述会话请求模块的请求会话消息后,向申请者发送应答消息;
所述验证服务器身份模块具体包括请求认证模块,用于申请者收到所述应答模块的应答消息后,验证认证服务器的身份,验证通过后生成对主密钥,用申请者的私钥生成消息M1的签名,然后向认证服务器发送请求认证消息,所述消息携带M1的签名;
所述验证申请者身份模块具体包括认证响应模块,用于认证服务器收到所述请求认证模块的请求认证消息后,用申请者的公钥验证M1的签名;验证通过后,生成对主密钥,并把所述对主密钥通过安全信道发送给认证者。
10.如权利要求8或9所述的双向认证系统,其特征在于,
所述系统参数初始化模块具体采用基于双线性对的无证书密码系统,生成系统参数和认证服务器及申请者的公私钥。
11.如权利要求9所述的双向认证系统,其特征在于,
所述会话请求模块还包括密钥交换方式单元,用于存放申请者所支持的密钥交换方式;
相应地,所述应答模块还包括选择密钥交换方式单元,用于认证服务器收到所述会话请求模块发送的请求会话消息后,根据所述密钥交换方式单元选择具体的密钥交换方式,并在向申请者发送应答消息中携带选择的密钥交换方式。
12.如权利要求9所述的双向认证系统,其特征在于,
所述请求认证模块还包括加密单元,用于加密申请者的身份;
相应地,所述认证响应模块还包括解密单元,用于对加密后的申请者身份进行解密。
全文摘要
本发明提供了一种双向认证方法及系统,属于网络通信领域。为了解决现有公钥认证技术中证书管理复杂,不能保护用户身份的缺点,本发明提供了一种双向认证方法,所述方法包括系统初始化生成系统参数、申请者发起会话请求与认证服务器建立连接、申请者与认证服务器进行相互身份认证并生成用于四步握手的对主密钥的步骤。本发明还提供了一种双向认证系统,所述系统包括系统参数初始化模块、建立会话连接模块、验证服务器身份模块和验证申请者身份模块。采用本发明提供的技术方案能够降低系统的建设及维护成本,并提高系统运行效率和实现保护申请者身份的目的。
文档编号H04L9/32GK101119196SQ200610104170
公开日2008年2月6日 申请日期2006年8月3日 优先权日2006年8月3日
发明者曹春杰, 马建峰, 姚忠辉, 裴庆祺, 巍 王, 超 杨, 王良民 申请人:西安电子科技大学, 华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1