微波EDA网,见证研发工程师的成长!
首页 > 通信和网络 > 通信网络技术文库 > 基于层次移动IPv6接入认证设计与实现

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

时间:04-21 来源:电信快报 点击:

由器发出的路由通告(RA)。

2)MN触发DHCPv6客户端发送DHCP Solicit消息去发现DHCPv6服务器。

3)当服务器收到请求消息后,构造相应的Advertisement消息发给DHCPv6客户端。

4)DHCPv6客户端收到响应消息发出DHCP Request消息,在消息选项中添加新的用户名和密码密文选项。

5)DHCPv6服务器收到消息后,从中提取用户名和密文后,对密文进行解密,发送AAA认证请求消息到本地AAA服务器(AA AL)。

6)AAAL,收到认证请求消息后将其转发到家乡AAA服务器(AAAH)。

7)AAAH收到认证请求消息后,验证用户名和密码。返回认证回复消息。

8)AAAL,服务器将收到的认证回复消息转发到AAA客户端。

9)AAA客户端对收到的认证回复进行处理,构造Reply消息响应客户端请求,

10)MN根据收到的Reply消息进行判断,至此整个认证过程完成。

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接入认证消息流程图

3.2 AAA交互过程

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

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

3.3 包过滤

在接入路由器上安装包过滤器

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top