Ad-hoc网络由一系列不依靠任何预先定义的网络基础结构来实现网络功能并实现网络管理的移动节点组成,它能够在没有任何中心管理设备的情况下自动形成、合并及划分。随着Ad-hoc网络应
用的不断增多,Ad-hoc网络的安全问题变得越来越严重。有线等同安全协议( WEP)是IEEE 802. 11标准所定义的一种安全协议,已经有许多文献对WEP算法的安全问题进行分析,并给出了更为安全的替代算法。公钥加密技术已经在许多现有网络中得到使用,它能为系统提供比较有力的支持。然而,公钥加密算法过多的计算量却限制了其在Ad-hoc网中的使用。

本文结合Ad-hoc网络特性引入动态加密技术,将加密函数的复杂性转变为动态密钥加密和密钥管理,并以此降低加密操作在计算方面的复杂性。使用动态加密技术的好处在于能有效地应对系统密文被破解的情况。因为在动态加密技术中,某次破解所得到的密钥与其它加密数据并没有任何关系,因此动态加密机制在安全性方面要比静态加密方案好得多。本文提出的动态加密技术属于流加密技术,仍使用对称加密技术,通过引入流加密技术可以在原加密方案中增加时间维参量。动态密钥被一个由门限方法生成的中心机构来进行初始化,随后将这个动态密钥发送到相应的通信方。该方案的优点在于可以减少终端用户间交换的对称加密密钥量;以最小的计算开销实现连续快速的身份认证;整个动态认证过程是以通信各方动态密钥的连续生成为基础。

一、Ad-hoc网的常用加密算法

1、WEP算法

IEEE 802. 11标准使用WEP算法作为加密操作的基础,WEP算法的加密密钥用来在发送数据前实现对数据包的加密。WEP使用RC4流密码加密算法,流密码操作是将一个短密钥扩展成一个无限长的伪随机密钥流,发送方利用异或(XOR)操作将明文变换成密文,接收方拥有同样的密钥,它会利用这个对应密钥再生成一个相同的解密密钥流,通过将解密密钥流与加密密文之间的XOR操作实现对密文解密。为了保证数据包在传输过程中不被改变,在WEP算法中,数据包要使用完整性校验(IC)选项。为了避免对两段明文使用相同的密钥流进行加密,WEP使用初始向量(IV)对共享密钥依次进行加密来为每个数据包提供一个不同的RC4密码,IV也同样包括在数据包中。虽然这些方案在理论上能够确保系统的安全性,但是这些方法在实际应用中并不能得到有效使用,从而使系统在安全性方面存在严重缺陷。

2、TKIP算法

TKIP算法通过对WEP算法实施一系列变换所得到更有效的加密算法。TKIP算法能够在现有硬件系统基础上实施,并且不会对现有系统造成任何损害。其密钥混合功能能够用来构建多达216个
IV,也就是说,TKIP密码体制至少在对216个数据包处理之后再实施密钥更新,通过使用专门的生成密钥规则来仔细选择新的临时密钥,工作站和接入点通过使用重新生成密钥机制得到新的临时密钥。必须要保证TKIP在这个交换过程的安全性,否则攻击者就可以通过冒充重新生成密钥,从而对临时密钥造成威胁。重新生成密钥机制对系统的安全保护是非常重要的,但仅仅通过这个机制并不足以提供完全的安全保护。

二、同步动态加密系统

本文提到的加密方法仍基于流密码加密体制,并通过所有参与方的相互认证来实现数据安全交换。所有加密密钥都是以上次使用的加密密钥与当前发送或者接收数据包为参数,用公式表示为:

动态加密技术在Ad-hoc网络中的应用

式中,为密钥生成函数。

在密钥生成函数中包含数据信息,这就要求密码分析过程必须要获得当前的数据信息和前面的密钥来猜测新密钥。因为每个数据都要生成一个新密钥,所以在明文与密文之间就能够产生足够大的熵,密文值可能是对任何明文的加密结果,这要依赖其使用的密钥。这种复杂性在已知的加密方案中并没有使用。

为了实现高速数据传输目标,必须要保证设计算法采用简单加密函数,所以本方案仍使用XOR来作为加解密函数。XOR函数的简单性可以补偿密钥生成过程由于字节缓冲所带来的复杂性,字节
缓存是通过一个动态变换表来实现的。为了达到更高的安全性并避免各种可能的攻击,本方案减少了在终端用户之间、接入点之间和认证服务器之间的认证,最重要的是,系统在认证过程的动态密钥生成期间可以保证移动用户和AS/AP之间的同步性。

如果共享对称认证密钥的任意两个节点的连接被中断,就要启动同步密钥的重新生成机制,即使是在离线状态下也是如此。除非一个节点已经被认证服务器提前认证,否则,对于一个非成员终端用户而言不可能拥有与AS相同的同步动态密钥。对较为明确节点的认证过程仅仅执行一次操作,这次认证过程是在移动节点第一次与AS建立连接的时候实现的,随后的认证过程都是以隐蔽方式进行,并不需要交换任何明文与密钥信息,但是需要一个安全的通信信道来减少其计算负荷。本系统包含两种类型的动态密钥,一种是DAK,另一种是DSK.AS需要在注册的移动终端处生成DAK信息。DSK会在AP之间或者节点之间的所有通信会话过程中生成,而且仅仅在会话过程中生成。

1、DAK的管理和使用

图1给出了动态密钥安全管理的系统结构。

动态加密技术在Ad-hoc网络中的应用

AS的主要功能是为节点(node)和AP之间提供安全的相互认征。终端用户的认证过程如下:

1)每个无线网卡都有一个IDP(MAC地址,IDAK),所有IDPs都被安全地存储在AS中。这种方法能够避免采用传统证书来实施认证,并且能够将node/AP的MAC地址与IDAK绑定在一起。

2) AS与node之间建立相同的动态DAK生成装置,来生成相同的DAKs序列。

3)对于任何认证过程的需求,node和AS都会保持他们原有的密钥生成器并通过同步操作来获得相同密钥。对DAK生成器实施保持的目的在于允许处理速度较慢的节点与处理速度较快的节点实现同步。只有在慢速节点与快速节点之间得到了相同的DAK密钥以后,慢速节点才能够重新开始DAK的生成过程。该DAK会在认证过程中充当认证协议的加解密密钥。然后,这两个节点会从相同的DAK中重新生成DAK.当一个移动终端第一次申请建立连接时,经过AS认证的本地AP会将建立连接请求通知给AS.然后,在终端用户和AS之间生成一个通信子进程,每个子进程都会在整个通信会话过程中代表其父进程来运行,这样做可以防止由于同步或认证过程发生失败所带来的影响。因为所有用户与AS是同步的,所以它们要具有相同的DAK,在双方生成相同的随机DAK.该DAK在初始认证过程会当作加解密密钥来使用。当对用户成功认证之后,本地AP会接收到所有的认证信息,其中包含有终端用户的DAK.从该过程以后,AP就会充当AS的角色,将AS的功能移交AP的目的足为了减少在切换过程中所必需的时间消耗。当切换用户时,AP会对终端用户进行认证,新生成的DAK会被周期性地加以缓存,以保证在切换过程中终端用户与接入点之间实现快速同步。

2、通过动态会话密钥的安全通信会话

当AS接收到从一个AP到另外一个AP的会话建立请求时,AS会对两个AP实施认证并生成一个初始DSKAPS,通过每个AP的DAK将信息以加密的形式发送给两个AP。图2中给出DSKAPS的生成模型,它被当成一个加密密钥,目的是对AP之间的通信提供安全保护。当两个节点( nodes)请求建立一个安全连接时,与源用户相连的接入点会生成一个DSKnod。并将这个DSK通过DAK加密操作安全地发送到源用户。然后,将相同的DSKnode。通过共享的DSKAPS发送给AP.ItB。最后,APdes用DAKdes对DSKnode进行解密,将解密结果发送给目的用户。其中,第一个DSKnode用来实现DSK的初始化,随后,这两个通信用户就可以通过重新生成相同序列的DSK来对数据进行加密,每个数据要用一个密钥进行加密。当整个会话结束之后,DSK会被通信双方抛弃。

动态加密技术在Ad-hoc网络中的应用

3、动态加密解密过程

图3给出了动态加密解密算法的处理流程。

动态加密技术在Ad-hoc网络中的应用

图中,D和K用来生成Ctmp,它们会按照变换表(PT)进行依次变换来生成系统密文C。为了对Ctmp进行缓冲,PT会按照相应的密钥K一起生成,PT的字节会从1~m逐个扫描,并使用输入的序列
号和相应的输入值作为临时密文两个交换字节的编号。整个变换过程包括加密和解密两个过程。当在1—m之间进行加密操作时,通过CtmP[PT[f]将Ctmp[i]进行重新排序,并得到最终的密文序列。解密过程以相反的变换表来实现,解密过程的变换表是当前密钥K的一个反向序列。对于1~m之间的任意i,执行:

动态加密技术在Ad-hoc网络中的应用

变换的结果足得到一个临时密文Ctmp,然后将这个结果会与当前的密钥K和数据D进行XOR操作。加密操作以后的发送者和解密操作的接收者通过使用发送和接收数据来执行密钥管理操作。

4、用户与AP之间的认证过程

当安装有(MAC2.IDAK)无线网卡的终端用户向本地AP首次发送认证请求时,接入点会将这个认证请求发送给AS.并将其DAK发送给AP。可以得知这个AP已经被AS认证过,并且每个AP都是
通过AS被邻近的AP所认证。图4详细说明了终端用户第一次认证的请求过程。其中,E(N)代表用终端用户的DAK对N进行加密。

动态加密技术在Ad-hoc网络中的应用

5、切换过程

当用户与相连的APi通信信号变弱以后,该用户就会寻找具有更强信号的AP,如果这个过程正好发生在它与AP2刚刚断开连接之后,那么终端用户就会与AP2马上建立连接6否则,用户将向APi发送一个切换请求,其中还会包含有AP2的信息。图5说明了整个切换过程。

动态加密技术在Ad-hoc网络中的应用

通常情况下,AP1和AP2是相邻的并且是以有线方式连接的。所以,它们是已经被AS认证过的。遵照“被一个可信用户信任的用户仍然是可信的”理论。AP1会向AP2发送一个安全的切换要求,其中包含有用户的认证信息。当这两个AP已经被相互认证,那么AP之间的通信就是安全的,这个安全性是以AS的DAK信息来保证的。然后,AP1会向用户发送一个安全的断开联系消息,此时AP2并不立刻将该用户的信息去除而是等待一个Δt时间。这样能够防止其再次切换所带来的麻烦。

三、密钥管理

本系统的密钥管理过程可以在线方式和离线方式两种方式来实现。当以在线方式工作时,共享相同密钥的双方在实施完数据加密后要重新生成密钥。该过程通过对当前的数据与密钥进行Hash运算得到新密钥,该Hash函数的结果将作为下一次加密的新密钥。离线模式的动态密钥生成尾将上次发送或者接收到的数据与当前的密钥值作为重新生成密钥的种子。注意到:在线模式的同步操作是在发送和接收数据时实现的。为了在离线模式下实现系统同步,需要对每个密钥保留一个计数器,当持有密钥的双方重新开始通信时,他们会检查当前的计数值并将这两个计数值进行统一化处理以实现密钥重生成过程。该方案的密钥管理与流密码非常相似,但是该方案在数据中引入了更多的动态过程,随机过程的实现是通过在加密过程中引入随机数,并在存在安全连接请求时避免使用相同的初始密钥而以离线方式重新生成密钥来实现。密钥管理过程如下:

1)扩展密钥是密钥K自身长度的两倍,K、D、FrpK要被分成m/2个域,并将这些域编号为l—m/2。K和D的每个域长度都足2个字节,而FrpK是4个字节6在扩展域Ea:pK中的任意域中的连续4个字节都被编号为4r -3,4r-2,4r-l和4r,在K、D域r中的连续两个字节被编号为2r-l和2r.在ErpK中对域的填充以如下方式实现。

2)在2m长的ExpK中任意选择m个字节。

3)生成m个数字序列,每个数字都对应一个选择数据的编号,并将其放在下一个新生成的密钥中。为了实现同步要求,该操作在密钥的双方持有者中都要执行。

四、性能比较

将本文提出的动态加密与认证方案与其它常用的无线加密软件进行比较,试验结果表明,该方案比现有的AES.3DES.WEP等加解密方案更为快速。表1给出了相应的试验结果。

动态加密解密方法处理速度之所以快的原因就在于其加解密函数实现起来的简便性。该算法已经将加密函数的复杂性转换为动态密钥加密和对动态密钥的管理上。另外,该方案对于密钥截获攻击也具有非常好的抵御能力。在整个操作过程中,初始密钥仅仅被加密一次,并可以对共享相同动态密钥的一组终端实施连续认证。因为对无线通信过程中带宽要求不断增加,所以这种快速加密系统将是一种非常有效的选择,另外这种快速认证机制对于移动通信环境也是非常适合的,它能够减轻由于频繁切换所带来的安全性和速度之间的矛盾。

小知识之Ad hoc网络

Ad hoc网络是一种特殊的无线移动网络。网络中所有结点的地位平等,无需设置任何的中心控制结点。网络中的结点不仅具有普通移动终端所需的功能,而且具有报文转发能力。