基于层次移动IPv6接入认证设计与实现(二)

日期: 2008-06-17 来源:TechTarget中国

3、软件实现过程


在软件体系的设计上,在HMIPv6的基础上修改和添加对DHCPv6配置地址的处理。本文采用MIPL即Mobile IPv6 for Linux,版本为2.0-rc2,层次移动IP基于此实现。DHCPv6采用的是dibbler软件来实现,版本为0.3.1;AAA协议采用的是FreeRADIUS开源软件,版本为1.0.4,它包含服务器端和客户端两部分。服务器端有MYSQL开源软件,版本为4.1.7,包过滤采用Netfilter机制。


3.1 DHCPv6消息处理


在层次移动IP的启动过程中,当MN收到路由通告,发现与自己的路由缓存中维护的路由前缀不一样时,发送一个信号量启动DHCPv6客户端子进程,开始接入认证过程。在DHCPv6协议中创建用户名、密码和认证失败选项,在填充选项内容时,用户名和密码通过对MN的配置文件进行读取操作,由AAA服务器预先分配给用户。


在获取密码后通过标准的DES加密算法对原始密码采用双方协商好的密钥进行加密。由于DES只能对不大于8字节的字符进行加密,所以在加密过程中先计算原始密码的长度,如果小于或等于8字节则直接进行加密;如果大于8字节则截取前8个字节进行加密,再对剩余的字节进行相同的加密过程,把生成的密码拷贝到密码选项中。为了简化运算,在该文中默认密码字节不大于16字节,一般能满足实际运用。


在客户端消息选项中,添加用户名和密码选项的标识OPTION_CLIENT_NAI和OPTION_CLIENT_PASSWORD,通过标识对相应的选项进行处理。当客户端在构建Request消息时,把定义好的用户名和密码标识通过系统函数添加到Request消息中,完成后发送该消息给服务器。


DHCPv6服务器端收到Request消息后,通过switch语句对OPTION_CLIENT_ NAI和OPTION_CLIENT_PASSWORD标识进行处理,获取选项中的用户名和密码密文字符,其中通过DES解密算法对收到的密文使用原先加密用的密钥进行解密。假如密文大于8个字节,则先对前8个字节进行解密,之后在对剩余的字节进行解密。把解密好的密码和用户名通过字符读取操作存到AAA的配置文件中。


完成后在DHCPv6服务器创建子进程来启动AAA客户端程序,并且构造Reply报文,在其中创建一个消息队列来等待接收AAA客户端认证完成后返回的认证结果。如果收到认证成功标识,则从地址池中获取一个合法地址添加到该消息选项中完成后发送Reply消息。并且将MN的MAC地址和IP地址发送到包过滤器的访问控制列表(ACL)中;如果收到认证失败标识,则在构造的Reply消息中添加一个认证失败信息选项,该认证选项标识为OPTION_AUTH_FAIL。将认证失败信息添加到该选项中,并且删除准备分配给客户端的合法地址选项,完成后发送Reply消息。


MN对收到的Reply报文进行判断,使用switch语句对消息中各选项进行处理。如果认证成功则含有地址选项标识,从中获取合法地址分配给接口使用,MN可以使用当地网络提供的服务或者完成切换绑定认证[5]过程。如果认证失败,不含有地址选项,而含有OPTION_AUTH_FAIL选项,MN可以获取该选项中相应的出错信息,进行再次认证或是退出该网络。该过程的主要消息流程如图2所示。


图2 DHCPv6接入认证消息流程图


图2 DHCPv6接入认证消息流程图


3.2 AAA交互过程


当DHCPv6服务器调用子进程执行AAA客户端程序后,AAA客户端将把从MN传过来的密码和用户名添加到认证请求选项中,向AAAL进行认证。AAAL将收到的消息转发给AAAH服务器,AAAH收到认证请求后进行认证。如用户名和密码正确,则返回Accecpt响应消息,标志认证成功;如用户名或者密码错误,则返回Reject响应消息,标志认证失败。AAAL收到认证回复消息后记录认证信息,下次认证时只需询问AAAL,减少认证步骤。


AAA客户端对收到的认证回复消息进行判断,通过创建消息队列,将认证回复中的认证结果标志传递给DHCPv6服务器。


3.3 包过滤


在接入路由器上安装包过滤器软件,它工作在网络层,根据ACL列表对每个通过的包进行访问控制,列表中维护IP地址和MAC地址绑定选项,防止合法IP地址被伪造。ACL列表的更新由DHCPv6服务器完成,认证成功后将相应的IP地址和MAC地址添加到ACL列表中,当DHCPv6分配的地址过期后负责删除该绑定选项。接入认证开始只允许DHCPv6协议和AAA协议的消息包通过,认证成功后只允许绑定列表中维护的IP地址消息包通过,有效地控制了假冒攻击。


4、测试结果


实验拓扑原理图如3所示:


图3 实验拓扑图


图3 实验拓扑图


首先修改层次移动IP的地址配置机制,使其采用有状态地址配置,在家乡代理(HA)、接入路由器1(AR1)、AR2和AR3安装dibbler软件和包过滤软件,在服务器上安装RADIUS软件。


分别在MN上启动HMIPv6程序,在HA上启动HMIPv6程序和DHCPv6服务器程序,在AR1、AR2和AR3上启动DHCPv6服务器端程序和路由通告协议。在服务器上启动AAA服务器端程序。通过手动修改ESSID在家乡与不同的MAP域之间进行切换,完成在切换过程的接入认证过程。


实验完成了从家乡到MAP1中的AR1、AR2和MAP2中的AR3的切换过程的接入认证,以及从MAP1到MAP2切换的接入认证过程。在切换的过程中MN触发接入认证过程,只有使用正确的用户名和密码才能完成接入,获得合法的IP地址。切换完成后采用该地址作为转交地址进行绑定注册和认证过程。如果用户采用了错误的用户名或者密码,则在切换过程中不能获得IP地址,接入认证失败,不能完成切换过程,MN被拒绝加入相应的网络。


结果证明,完成接入认证过程仅需要2s左右,这是完成DHCPv6协议重复地址检测过程和AAA协议信息交互所需的时间,没有增加附加的延时,并且在认证成功的同时给MN分配了一个合法的IP地址作为在线转交地址。


5、结束语


本文结合HMIPv6、DHCPv6和AAA协议实现了对MN在不同的网络间切换的接入认证过程,对用户提供了可靠的安全保证,解决了无线接入存在的安全问题;同时便于运营商对接入用户的管理和维护;采用DHCPv6作为接入认证方式还可以提供对地址的有效管理和附加参数的配置(如DNS等)。


下一阶段主要是考虑如何缩短认证过程时间,实现无缝切换,并且考虑在双栈下实现接入认证过程,这些也是未来研究的热点和重点。


参考文献


1 D Johnson,C Perkins,J Arkko.Mobility Support in IPv6.RFC 3775,June 2004.


2 H Soliman,C castelluccia,K E1 Malki,et a1.Hierarchical Mobile IPv6 Mobility Management(HMIPv6).RFC 4140,August 2005.


3 J Bound,B Volz,T Lemon,et al. Dynamic Host Configuration Protocol for IPv6(DHCPv6).RFC 3315,July 2003.


4 C Rigney,A Rubens,W Simpson,S.Willens.Remote Authentication Dial In User Service.RFC 2865.June 2000.


5 A Patel,K Leung,M Khalil,H Akhtar. Authentication Protocol for Mobile IPv6.RFC 4285.January 2006.

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

相关推荐

  • IP地址0.0.0.0能做什么?

    IP地址0.0.0.0是一个不可路由的IPv4地址,具有多种用途,主要作为默认或占位符地址。尽管0.0.0.0在计算机网络上有多种用途,但它不是通用的设备地址……

  • 无视IPv6连接?后果自负!

    如果你无视IPv6在你网络的影响,你可能给你自己带来更大的伤害。此外,你还需要考虑的是,IPv6连接不只是“网络的事”。

  • IPv6扩展报头:是好是坏?

    IETF最近的一项研究表明,当部署扩展报头时,发送到公网服务器的IPv6数据包丢包率在10%至50%。

  • 如何避免IPv6“友邻发现”威胁?

    IPv6友邻发现是IPv6协议套件的一个核心部件。如果企业正着手准备部署IPv6,那么一定要了解“友邻发现(ND)”及其漏洞。