对一种基于口令的密钥交换协议的分析和改进

2016-09-20 02:47王耀民熊刚强广东医学院信息工程学院东莞523808
现代计算机 2016年6期
关键词:离线口令攻击者

王耀民,熊刚强(广东医学院信息工程学院,东莞 523808)

对一种基于口令的密钥交换协议的分析和改进

王耀民,熊刚强
(广东医学院信息工程学院,东莞 523808)

0 引言

现今社会是一个信息社会,人们通过网络进行大量的数据交换。而网络上的信息安全环境又是非常恶劣的。同时人们在交换信息时往往会涉及到银行卡信息,身份证信息等一些对个人来说非常重要的信息。这些信息一旦被某些犯罪份子得到,会对信息所有人造成经济上或者精神上的损失。为了保证这些信息的安全,需要对通信双方通过网络传输的数据进行加密。最可行的办法是通信双方的发送方在通过网络发送信息的时候使用一定的加密算法对双方的通信信息进行加密。接收方在收到发送方发送的信息之后使用相对应的解密算法对接收到的信息进行解密。为了达到这个目的,就需要通信双方在通信之前,协商建立一个会话密钥。口令具有方便记忆,操作简便的特性。因此基于口令的秘钥交换协议是目前使用最为广泛的一种密钥交换协议。为了方便记忆,人们往往选用生日、身份证号码、电话号码等信息作为自己的口令[1]。这些信息的信息熵非常的低,不能够抵抗离线字典攻击。为了增加口令的信息熵,一般采取以下两种方法[2]。一种使用公钥密码算法或者对称密码法对用户的口令进行加密对用户的口令进行加密。或者是同时使用公钥密码和对称密码算法对用户的口令进行加密。一种是既不使用公钥密码算法也不使用对称密码算法而是采取其他方法来增加用户口令的信息熵。一个安全的基于口令的密钥交换协议应该具有以下特征[1,3-4]:

(1)双向认证,通信双方必须能够互相认证彼此的身份。

(2)动态性,会话秘钥必须是动态的,通信双方所建立的会话秘钥应该不包含任何关于口令的信息。

(4)能够抵抗中间人攻击,一旦攻击者发起中间人攻击,能够被通讯双方的,任何一方及时发现。

(5)能够抵抗重放攻击,攻击者不能够利用所记录的通信双方之前的信息发起重放攻击。

(6)能够抵靠内部人员攻击:参加通信双方的任意一方不能利用自己的口令得到其他协议参与方的口令。

2010年,Chang等人在文章一当中提出一种基于口令的三方密钥协商协议[5]。在Chang当然所提出的密钥协议当中使用异或算法和单向哈希函数来代替公钥密码算法和对称密码算法对用户的口令进行加密。由于执行异或算法和单向哈希函数对用户的口令进行加密,因此该协议具有非常高的计算效率。并且Chang等人在文章中使用“随机预言机”对他们提出的协议进行了证明,并据此声称他们的协议是可证明安全的。但是经过我们进行安全分析后发现,Chang等人提出的协议不能够抵抗离线字典攻击,不是一种安全的基于口令的密钥交换协议。

本文首先对Chang等人提出的协议进行安全分析,写出对Chang等人提出的协议进行攻击的模型。然后对Chang等人提出的协议进行改进,克服其不能够抵抗离线字典攻击的缺点。并对本文提出的协议进行安全分析指出其是一种安全的基于口令的三方密钥交换协议。

1 Chang提出的协议介绍

1.1文中所用的符号介绍

A,B:进行密钥交换的通信双方;

S:认证服务器;

Pwx:通信方X的口令;

H():单向哈希函数;

⊕:异或运算;

Idx:通信方X的身份标识;

A→B:通信方A向通信方B发送消息;

Zq:一个q阶的乘法可交换群;

pkx:通信方X的公钥;

skx:通信方X的私钥;

E(I)x:使用密钥X对信息I进行加密;

D(I)x:使用密钥X对信息I进行解密;

1.2Chang等人提出的协议

在本节当中,我们将对Chang等人在2010年提出的基于口令的三方密钥交换协议进行详细的介绍,Chang等人提出的协议中,参与通信的用户与认证服务器共享口令。执行如下步骤[5]:

(1)A→S:

A向认证服务器S发送,请求建立会话密钥。

(2)S→A:

S收到A发送的请求后,首先查找对应用户的口令 pwA、pwB并选择两个随机数es1,es2∈Zq计算 Rs1= ges1mod p,Rs2=ges2mod p。然后利用Rs1、Rs2、pwA、pwB计算RS1⊕pwA,RS2⊕pwB并将其发送给A。

(3)A→B:

A在收到S发送的信息后,利用自己的口令pwA计算RS1⊕pwA⊕pwA得到RS1。选择一个随机数eA∈Zq,计算RA=geAmod p,RAS1=ReSA1mod p。将发送给通信方B。

(4)B→S:

B在收到A发送的信息后,使用自己的口令PWB计算RS2⊕pwB⊕pwB得到RS2。选择一个随机数eB∈Zq,计算RB=geBmod p,RBS2=Res2Bmod p,KB=ReABmod p。将发送给认证服务器S。

(5)S→A:

S在收到B发送的信息后,计算Rs1A=ReAs1mod p,验证h(RS1A,RS1,idA,idB)是否与h(RAS1,RS1,idA,idB)。如果相等则证明通信方A是合法用户。计算RS1B=RBes2 mod p,验证h(RBS2,RS2,idA,idB)与h(RS2B,RS2,idA,idB)是否相等。如果相等则证明通信方B是合法用户。将发送给通信方A。

(6)A→B:

(7)A在收到S发送的信息后,利用在第三步生成的RAS1和收到的RB计算h(RAS1,RB),然后与收到的h (RS1A',RB)比较,验证两者是否相等。如果相等,则证明信息是由认证服务器S发送的。计算KA=ReBAmod p,h (KA,RB),与收到的h(KB,RA)相比较,如果两者相等,则证明通信方B是合法用户,并且B有能力计算双方的会话密钥SK=h(geAeBmod p,idA,idB),最后将发送给通信方B。

1.3攻击模型

Chang等人提出的密钥交换协议是基于Diffie-Hellman问题的一种密钥交换协议,Chang等人也给出了其在随机预言机下的相关证明,宣称其提出的密钥交换协议是安全的。一个安全的密钥交换协议应该像前文提到的那样,不仅能够抵抗离线字典攻击,而且应该能够抵抗离线字典攻击。同时不能够泄漏任何关于用户口令的信息,Chang等人提出的密钥交换协议经过我们分析后,其不能够抵抗离线字典攻击。下面我们给出其具体的攻击模型。

攻击者对Chang等人提出的密钥交换协议的攻击可以分为如下两个阶段:

第一阶段,窃听攻击:

(1)A向认证服务器S发送通信请求,并将自己的idA和另一通信方的idB发送给服务器S。

(2)认证服务器S在收到A发送的idA和idB后,选择两个随机数es1,es2∈Zq。计算RS1⊕pwA,RS2⊕pwB并将其发送给A。由于攻击者始终在监听网络上的信息,所以服务器在发送RS1⊕pwA,RS2⊕pwB给合法用户A的同时,攻击者也同时可以监听到这条信息,并将其记录下来。

第二阶段,离线字典攻击:

(1)假设PWI为一个口令集合,其包含了用户所有可能选择的口令。攻击者在记录服务器发送给A的RS1⊕pwA,RS2⊕pwB后,选择任意一个pwi∈PWI,计算

PAi=(RS1⊕pwA⊕pwi)qmod p和 PBi=(RS2⊕pwB⊕pwi)qmod p。

(2)如果PAi和PBi不等于1,则攻击者可以确定pwi不是用户A或用户B的口令。

攻击者重复步骤1,2直到求出用户A和用户B的口令。因此Chang等人提出的协议不能够抵抗离线字典攻击。

2 协议改进

通过第二节的分析,我们发现Chang等人提出的协议不能抵抗离线字典攻击,而这个缺点在Chang等人给出的证明中并没有发现。通过分析发现,Chang等人提出的协议不能抵抗离线字典攻击的主要原因是在协议的第二阶段中,服务器发送的信息除了使用了异或操作对用户口令进行加密处理以外,没有采取任何其他的方法对用户的口令进行加密处理。虽然只使用异或操作对用户口令进行加密,能够从很大程度上提高整个协议的计算效率,但正是因为只使用了异或操作对用户的口令进行加密处理,使得攻击者能够发起像本文前面提的离线字典攻击,从而得到用户口令。而攻击者在得到用户的口令后,就可以冒充合法用户与其他的合法用户进行通信。从而引起整个安全系统的崩溃。

因此为克服Chang等人提出的密钥交换协议的缺点,本文对Chang等人提出的协议的改进主要集中克服Chang等人提出的协议只使用异或算法对用户口令进行加密的缺点。本文对Chang等提出的协议主要为以下两点:第一,引入公钥加密算法对协议中的敏感信息进行加密,以确保整个协议的安全性。第二,由于异或算法无法保证用户口令的安全性,所以本文对Chang等人的第二个改进就是去除协议中使用异或算法的部分改用指数算法对用户口令进行加密。本文提出的协议分为以下两个阶段:

初始化阶段:

(1)用户注册:用户选择自己的id和口令,提交给认证服务器S。认证服务器S在收到用户的注册请求后保存用户的id和口令。选择自己的公私钥对pkx和skx。公布自己的公钥pkx,并保存私钥skx,确保其无法被攻击者获得。

(2)认证服务器选择一定的公钥加密算法,并选择自己的公私钥对pks和sks。公布自己的公钥pks,并保存私钥sks,确保其无法被攻击者获得。

会话密钥建立阶段:

(1)A→S:QA

A选择一个随机数NA,计算QA=E(idA,idB,NA)PKS,将QA发送给认证服务器S。

(2)S→A:

认证在服务器在收到A发送的QA后计算(idA,idB,NA)=D(idA,idB,NA)SKS,查找 idA,idB对应的 pwA和pwB,选择两个随机数es1,es2∈Zq,利用解密得到NA,计算RS1=ges1+pwA+NA,RS2=ges2+pwB+NA。将RS1和RS2发送给通信方A。

(3)A→B:

(4)A在收到S发送的信息后使用自己的口令和

(5)B→S:

(6)S→A:

认证服务器S在收到通信方B发送的信息后,计算RS1A=mod p,验证h(RS1A',RS1,idA,idB)是否与h (RAS1,RS1,idA,idB)。如果相等则证明通信方A是合法用户。计算RS2B=mod p,验证h(RS2B,RS2,idA,idB)与h (RBS2,RS2,idA,idB)是否相等。如果相等则证明通信方B是合法用户。通信双方验证通过后,将发送给通信方A。

(7)A→B:

A在收到S发送的信息后,利用在第三步生成的RAS1和收到的RB计算h(RAS1,RB),然后与收到的h(RS1A',RB)比较,验证两者是否相等。如果相等,则证明信息是由认证服务器S发送的。计算KA=mod p,h(KA,RB),与收到的h(KB,RA)相比较,如果两者相等,则证明通信方B是合法用户,并且B有能力计算双方的会话密钥 SK=h(geAeBmod p,idA,idB),最后将发送给通信方B。

3 安全分析

本文所提出的密钥交换主要是为了改进Chang等人提出的协议不能够抵抗离线字典攻击的缺点,针对所提出的协议的改进进行分析。

首先Chang等人提出的协议不能够抵抗离线字典攻击的主要原因是在协议的第二步中认证服务器向通信方A发送的信息,仅仅使用了异或算法对用户的口令进行了加密,从而使得攻击者可以用穷举攻击的方法得到用户的口令。

本文对Chang等人提出的协议的主要的改进在于在协议开始时由通信方A选择一个随机数,并使用认证服务器的公钥对用用户选择的随机数进行加密。攻击者在没有有服务器私钥的情况下无法获得用户选择的随机数。如果攻击者想要获得通信方A选择的随机数,就必须攻破公钥密码算法。而到目前为止还没有有效的针对公钥密码算法的攻击方法。服务器在收到用户发送的信息后,使用收到的通信方A选择的随机数对用户口令进行加密,并将Chang等提出的协议中的异或算法变为指数算法。服务器每次发送给通信方A的认证数据都不同,使攻击者无法对协议发起穷举攻击。因而本文所提出的协议是一种安全的可以抵抗离线字典攻击的密钥交换协议。

4 结语

由于用户在选择口令时,往往会选择容易记忆的信息(电话号码、生日、门牌号等)。导致用户口令的信息熵非常的低。非常容易被攻击者使用离线字典攻击得到。因此基于口令的三方密钥交换协议最大的威胁是离线字典攻击,本文对文献提出的协议进行了分析改进,使其能够抵抗离线字典攻击,是一种安全的基于口令的三方密钥交换协议。

[1]Mohammad Sabzinejad Farash,Mahmoud Ahmadian Attari.An Efficient Client-Client Password-Based Authentication Scheme with Provable Security.J Supercomput 70:1002-1022.2014.

[2]Farash MS,Bayat M,AttariMA.Vulnerability of Two Multiple-Key Agreement Protocols.ComputElectr Eng 37(2):199-204.2011.

[3]Chung HR,Ku WC.Three Weaknesses in a Simple Three-Party Key ExChange Protocol.Inf Sci 178(1):220-229.2011.

[4]Yang H,Zhang Y,Zhou Y,Fu X,Liu H,Vasilakos AV.Provably Secure Three-Party Authenticated Key Agreement Protocol Using Smart Cards.Comput Netw 58:29-38.2014.

[5]Chang TY,Hwang MS,Yang WP.A Communication-Efficient Three-Party Password Authenticated Key Exchange Protocol.Inf Sci 181:217-226.2011.

Password;Information Security;Key Exchange

Security Analysis and Improvements of a Key Exchange Protocol Based on Password

WANG Rao-min,XIONG Gang-qiang
(School of Information Engineering,Guangdong Medical College,Dongguan 523808)

1007-1423(2016)06-0003-05

10.3969/j.issn.1007-1423.2016.06.001

王耀民(1981-),男,山东烟台人,硕士,讲师,研究方向为信息安全

2015-12-17

2016-02-10

最近几年很多基于口令的三因素密钥交换被提了出来。2010年Chang等人提出一种基于口令的三方密钥交换协议,并对其进行证明,宣称其是一种安全高效的密钥交换协议。对Chang等人提出的协议进行介绍,并进行安全分析,证明其不能抵抗离线典攻击。然后对Chang等人提出的协议进行改进,使其能够抵抗离线字典攻击。对改进的协议进行安全分析。

口令;信息安全;密钥交换

广东医学院青年基金(No.XQ1355)、国家自然科学基金面上项目(No.61170320)

熊刚强(1967-),男,湖南常德人,博士,副教授,研究方向为计算机图形图像

In recent years,a lot of three factor key exchange based on password is proposed.In 2010,Chang et al proposed a three party key exchange protocol based on password,which was proved to be a safe and efficient key exchange protocol.Introduce the protocol proposed by Chang et al.,and carries out security analysis.It is proved that it cannot resist the off code attack.Then the protocol of Chang et al is improved,which can resist the off-line dictionary attack.Presents the security analysis of the improved protocol.

猜你喜欢
离线口令攻击者
基于卷积神经网络的离线笔迹鉴别系统
基于贝叶斯博弈的防御资源调配模型研究
异步电机离线参数辨识方法
新版Windows 10补丁离线安装更简单
高矮胖瘦
口 令
正面迎接批判
正面迎接批判
好玩的“反口令”游戏
健身气功·五禽戏教学口令