APP下载

几种密钥交换算法和协议防止中间人攻击的分析与比较

2015-03-15陈珍英

太原城市职业技术学院学报 2015年12期
关键词:中间人攻击者解密

陈珍英

(福州英华职业学院,福建 福州 350018)

Whitefield与Martin Hellman在1976年提出了一个奇妙的密钥交换协议,称为Diffie-Hellman密钥交换协议/算法 (Diffie-Hellman Key Exchange/Agreement Algorithm),通常称作DH算法。这个算法的优势在于正在安全通信的双方可以用这个算法来确定对称密钥,然后可以用这个密钥进行加密和解密。然而,经过一系列的经验与实践证明:这个密钥交换协议(算法)只能用于密钥的交换,而不能进行消息数据的加密和解密。所以,Diffie-Hellman是一种建立密钥的方法,而不是加密方法。需要通信的双方确定要用的密钥之后,要使用其他对称密钥进行加密和解密消息。DH算法的有效性,多半依赖于计算离散对数的难度程度上。

一、Diffie-Hellman密钥交换算法

(一)协议过程

图1 DH算法协议过程

如何来理解“DH算法的有效性是基于计算离散对数的难度上”?首先要从它的协议过程来看。协议过程流程图如下:到B的响应返回的消息后,利用已选择的大数X,计算(gymod n)x=gxymod n。如此,A与B就共享了一个秘密的密钥gxymod n。因此我们说DH算法是制造密钥的算法(协议)。

在A、B对话中,作为攻击者本身,能够得到A、B之间通信的消息,它要计算出私密密钥,必须计算出X、Y,但是单纯只根据gxmod n,或者gymod n要求出X或者Y,是很复杂和困难的,这也说明了离散对数求解的困难度。

(二)DH特征

DH算法有两个特征:(1)需要时才生成密钥,缩短密钥存储时间过长,给攻击者创造破解的时间和机会。

(2)密钥交换无需预先存在基础结构。

(三)DH算法不足

DH算法的不足:(1)无法知道双方身份的任何信息。(2)易导致阻塞性攻击,即计算的密集性过于频繁,攻击者请求大量的密钥,受攻击者花费较多的资源来计算无用的幂系数,而不是做真正地在做保护或加密工作。(3)没有办法防卫重演攻击。(4)易受中间人攻击。

针对DH算法的第一个不足,需要辩证地来看,无法知道双方身份的任何信息其实在某种安全领域是需要的,目前匿名追踪以及群签名的发展是在保护发送方和接收方的身份信息。

而对于DH算法易受中间人攻击的不足,理论上按两个方向进行优化,一是纯粹防止中间人攻击,而是引入“第三者”作为“中间人”防止中间人攻击。

对于纯粹的中间人攻击可如下简单图示:

图1-1算法协议过程实现前提有两个:

(1)A、B必须同时知道两个大的质数n,g且(n-1)/2和(g-1)/2都是质数,这两个数字都是公开的,都可被除A、B另外的人知道。

(2)A、B各自选择的大数X、Y必须保密。在这个协议流程图中可以看到,B收到A发送的消息后,利用已确定的大数Y,计算(gxmod n)y=gxymod n,同样,A在得

图2中间人攻击过程转换图

图2中的C称之为第三方,C和A通信时充当B,和B通信时扮演A,A、B、C三方两两协商定义出了一个密钥,然后C就可以窃听、外传甚至泄露通信消息和数据。

引入“中间人”防止中间人攻击其实是DH的优化,而这个“中间人”是什么?怎么合理设定“中间人”,在文章后面会相继阐述。

二、Oakley密钥交换算法

Oakley是一个密钥交换协议,它允许认证过的双方通过不安全的网络交换秘钥的一部分元素,这一过程是通过DH算法(Diffie-Hellmankeyexchange)来实现的。鉴于DH算法的不足,Oakley算法可以算是对其进行优化,特别是在阻止中间人攻击上。Oakley使用三种不同的算法鉴别中间人攻击:(1)数字签名。(2)公开密钥加密。(3)对称密钥加密。

针对洪泛攻击时DH算法的脆弱性,Oakley算法采用了cookie程序机制来对抗阻塞攻击,可以使A、B双方协商一个全局参数集合;又可以用现时来抵挡重演攻击。密钥决定协议的三个组件是:(1)cookie交换(可选,无状态)。( 2)Diffe-Hellman半密钥交换。( 3)验证。

Oakley的特点是在DH算法基础上附加了一些加密算法如RSA算法、散列算法等。它是使用附加的算法加密来增加源密钥的安全性。用于加密的源密钥不仅要使用DH算法,还和通信双方所使用的安全验证的方法密切相关。

Oakley在Internet密钥交换协议中使用广泛。Internet密钥交换协议IKE是早期的Oakley算法和SkEME的安全协议结合而成的综合性协议,其中Oakley算法指定了密钥交换的顺序,并描述清楚提供的服务,SkEME协议则交代了密钥交换的具体方法。

三、基于第三方认证的密钥交换算法

基于第三方签名认证密钥算法可以有效地防止中间人攻击。其过程是:(1)生成并发送报文。(2)数据加密。(3)接收方利用报文进行身份验证。(4)接收数据。(5)数据解密。

可以用以下几张简单的流程图来描述基于第三方签名认证过程:

图3 生成报文并发送报文的流程

图4加密过程

图5解密过程

图6生成报文并发送报文的流程

基于第三方签名认证的密钥交换算法是一种具有保密和鉴别能力的密钥交换算法,在VPN网络中有广泛的应用。这种签名算法相比于DH算法来说引入了“中间人”,这就是文章前面所提及的用“中间人”来防止“中间人”的做法。但是笔者认为,这个“中间人”是不是百分百的可信赖是值得探讨的。在可认证的、可信任的信道中,“第三方”也就是所谓的“中间人”在安全性存在一定稳定信任域,但是如果中间人是存在于非认证的信道上呢?因此考虑到“中间人”的信任度,我们是用感知和经验还是用可量化的方式进行刻画?显然,不能用感知和经验,这个做法太冒险。而量化的方式换句话说就是用计算的方式从大量的数据中训练出一个信任阈值,但是这个计算量涉及到数据分析的复杂度和计算量大的问题。当然,这也就成为了基于第三方签名认证密钥交换算法的一个缺点,因在保证安全和效率的前提下,最大可能地降低可信赖第三方的参与,依赖度越小影响力就越小,影响力越小安全系数就越高。

四、其他基于DH算法的优化算法/协议

虽然引入公开密钥加密的算法以及某些证书机制可以避免攻击,但是算法仍是非常的复杂。为了解决这个问题,有人提出了SAKA协议,称为简单密钥交换协议。该协议是基于DH算法的,这个协议也是可以抵抗中间人攻击的。该协议双方A、B预先共享一个密钥P,同时系统使用两个在DH中定义的公开参数g和n,n是一个大素数,在得出n之前需要进行素数检测。该协议过程如下:

(1)使用预先定义的函数从密钥P中得出两个整数Q和 Q-1mod( n-1)

(2)A选择一个随机整数a,并且发给B:X=gaQmodn。

(3)B选择一个随机整数b,并且发给B:Y=gbQmodn。

(4)A计算K1=YaQ-1mod n=gabmod n

(5)B计算K2=Xb Q-1mod n=gabmod n

如此,A与B共享一个密钥K=K1=K2,为了身份认证,A计算K1Qmod n发送给B,B计算K2Qmod n发送给A,A与B分别用Q-1对收到的值作指数进行运算,找出密钥检验能否与自己所生成的密钥相同,如果相同则相信彼此,否则就拒绝接收相应信息。如此,显然可以防止中间人攻击。

也有学者提出N-PAKE协议,即基于口令认证的密钥交换协议。这种方法的基础也是DH算法,N-PAK这种可证的两方口令认证密钥交换协议可以抵御服务器泄露攻击和离线字典攻击,当然也可以防止中间人攻击。

密钥的管理在整个安全协议中占据非常重要的作用,分为密钥的分配和交换。而密钥交换作为核心问题,必须在提高速度和解决各个算法弊端的基础上不断优化,一个有效的密钥交换机制的实现应尽量引入密钥的安全传送和安全措施,不以牺牲存储空间或者计算速度为代价的前提下,逐步提高安全性。

[1]刘志会.基于RSA密钥交换算法的研究[D].辽宁工程科技大学,2005.

[2]方勇,周安民,刘嘉勇,蔡建.Oakley密钥确定协议[J].计算机工程与应用,2003(24).

[3]王继林,伍前红,陈德人,王育民.匿名技术的研究进展[J].通信学报,2005( 2).

[4]项顺伯,彭志平,柯文德.一种可证安全的口令认证密钥交换协议[J].计算机工程,2013( 1).

猜你喜欢

中间人攻击者解密
夹在妻子和弟弟中间,怎样当好中间人?
炫词解密
解密“一包三改”
炫词解密
正面迎接批判
重庆转口贸易优势分析及政策建议——利用信息不对称和中间人理论
正面迎接批判
《天盛律令》对买卖借典“中间人”的规制
跟杨绛学做“中间人”
有限次重复博弈下的网络攻击行为研究