IEEE 802.16安全机制的研究与实现

来源:互联网 发布:db2 oracle sqlserver 编辑:程序博客网 时间:2024/06/12 19:54

文章编号:

IEEE 802.16安全机制的研究与实现

高长喜, 杜海涛, 周亚建, 钮心忻

(北京邮电大学网络与交换国家重点实验室 信息安全中心, 北京 100876)

摘要: 分析并讨论了IEEE 802.16标准的安全机制,并指出了其安全缺陷和最新标准的相关安全改进工作。在安全机制分析的基础上,设计了802.16d标准安全系统的软件架构并在Linux平台下以可动态加载的内核模块的形式实现了其安全子层协议栈。通过仿真MAC层及PHY层的功能,对安全子层软件实现进行了性能验证及兼容性测试,结果表明,该系统完全实现了IEEE 802.16d标准的设计目标。

    : IEEE 802.16; 安全机制; WiMAX; Linux内核模块

中图分类号: TP393                   文献标识码: A

Research and Implementation of Security Mechanism of IEEE 802.16

GAO Chang-xi, DU Hai-tao, ZHOU Ya-jian, NIU Xin-xin, YANG Yi-xian

(Information Security Center, State Key Laboratory of Networking and Switching Technology, Beijing University of Posts and Telecommunications, Beijing 100876, China)

Abstract: IEEE 802.16 standards and the security mechanisms are analyzed, its security deficiencies and the improvements in the latest standard are also pointed out. Based on the analysis of the security mechanisms, software architecture of 802.16d standard security system is proposed and its security protocol stack is implemented in the form of loadable kernel module of Linux. Performance and conformance test of the software implementation is given by simulating MAC and PHY layer, and the results indicate that the system can fully satisfy the design objectives of IEEE 802.16d standard.

Key words: IEEE 802.16; Security Mechanism; WiMAX; Linux Kernel Module


0引言

IEEE 802.16标准是一种无线城域网(WMAN)技术,它能为固定和游牧的设备提供低成本、高效率、大范围的宽带无线接入,作为 “最后一英里”接入解决方案,是对传统的有线和无线接入方式的补充。目前IEEE 802.16主要包括802.16d[1]802.16e[2]两个主流空中接口标准,其中802.16d是固定无线接入的标准,802.16e则是支持移动特性的标准。

由于无线传输信道的开放性,无线网络比有线网络面临更多的安全威胁,主要包括非法接入网络、伪基站与伪网络、网络窃听、重放报文攻击、拒绝服务(DoS)攻击等。为了抵御和消除这些威胁,IEEE 802.16的安全需求主要体现在认证、鉴权、数据加密和密钥协商等方面。基于这些需求分析,本文将研究IEEE 802.16标准提供的安全机制,并讨论其安全缺陷及相关安全性改进。

为了推进IEEE 802.16标准的普及和应用,提供安全保证的安全子层协议栈的软件实现是一项必须进行的工作,然而,这方面的研究显得相对不足。基于对其安全机制的分析,本文在Linux平台下以可动态加载的内核模块的形式设计和实现了IEEE 802.16d标准的安全子层协议栈,并通过导出的服务接入点(SAP)接口与仿真的其余各层协议进行耦合,测试验证了该协议模块功能的有效性,并且该协议实现也通过了IEEE 802.16 Conformance[3]测试标准。

1         802.16的安全机制

IEEE 802.16定义了宽带无线接入系统空中接口物理层(PHY)和媒体访问控制层(MAC)的技术规范,其中MAC层定义了完整的QoS机制和安全机制,它可分为汇聚子层(CS)、公共部分子层(CPS)和安全子层(也称加密子层, PS)三部分。MAC层通过安全子层来实现安全策略,它提供了用户站(SS)与基站(BS)之间的安全认证、安全密钥交换和加密。

IEEE 802.16d安全机制具体可以分为PKM协议、安全关联(SA)、加密算法等几方面,802.16e则对其做了一些改进以满足移动性带来的新安全需求,下面将分别进行详细介绍。

1.1    PKM协议

PKM协议使用X.509证书(含有SS的公钥和MAC地址)RSA公钥算法和3-DES来保护SSBS之间的密钥交换,其中鉴权密钥(AK)状态机和业务流加密密钥(TEK)状态机是PKM协议的核心。

密钥交换过程如图1所示。鉴权过程和TEK密钥交换过程支持周期性的再认证和传输加密密钥的更新,同时,为了避免在重新鉴权过程中业务传输的中断,前后两个AK的生命周期必须有重叠的部分,称之为重新鉴权过渡期。在过渡期里,BSSS必须能够同时维护两个AK的存在,以保证TEK状态机在过渡期不会受到中断,只有处于被授权状态的SS才能够维持TEK的不断更新。

1.2    安全关联

安全关联定义了一个BS与多个SS之间共享的安全通道的属性。在802.16中实际使用了两种安全关联:鉴权安全关联(Authorization SA)和数据安全关联(Data SA)。安全关联是通过PKMAK状态机和TEK状态机来建立的,分为两步完成:

第一步,根据AK状态机的流程,在认证过程完成后,其目的是在SS端和BS端各建立这样一套鉴权安全关联[4]

一个鉴别SSX.509证书;

一个160-bitAK,用于传输连接的鉴权;

一个4-bit的数,用以表示AK个数;

AK时限,范围为170天,缺省7天;

一个用于分发TEK的密钥加密密钥KEK(目前采用112bit3-DES密钥)KEK= Truncate-128(SHA1(((AK | 044)5364))

一个HMAC-KEY-D,用于对下行密钥分发消息进行认证,HMAC-KEY-D=SHA1((AK | 044)3A64)

一个HMAC-KEY-U,用于对上行密钥分发消息进行认证,HMAC-KEY-U=SHA1((AK | 044)5C64)
一组经过鉴权的Data SA列表。

可以看出,当这个SA完全建立的时候,SS已经通过认证,连接的安全通道属性已经配置完成。

第二步,在鉴权安全关联建立后,根据其SA列表给每个数据通信建立其对应的Data SA,同时启动相应的TEK状态机。Data SA结构如下:

一个16-bit SA标识或SAID

密码算法(DES CBC模式及其它算法);

两组时限重叠的TEK

两个2-bit 密钥标识,对应每个TEK

TEK生存期,默认值为半天;

两个TEK64-bit初始化向量;

SA的类型:Primary SAStatic SADynamic SA,每个SA都用一个唯一的SAID来标识。

TEK状态机为这些Data SA填入相应的TEK后,SSBS就可以进行具体的数据通信。

1.3    加密算法

IEEE 802.16中涉及的加密算法包括RSADES-CBCAES-CCM3-DES等。

BS加密分配给SSAK时采用RSA公钥算法,并采用RSAES-OAEP加密机制。此外,IEEE 802.16还使用RSA算法对数字证书进行签名。

加密业务数据时采用DESAES算法并将用TEK用作密钥,具体表现为DES-CBCAES-CCM模式。基于DES-CBC的加密方案具有较低的安全性,AES-CCM则结合了计数器(CTR)模式用于数据加密和CBC-MAC模式用于数据完整性保护,另外还采用了包序列号(PN)方法防止重放攻击。

PKM协议采用3-DES算法加密BS分配给SSTEK,采用KEK作为密钥。

1.4    802.16e802.16d安全机制的改进

802.16d的安全子层的工作流程可以看出,其安全机制存在如下问题[5]:单项认证;认证机制缺乏扩展性;缺乏组播密钥协商;密码算法缺乏保护,可能造成降级攻击;SS可能带来DoS攻击隐患;重认证不够有效等。

以上所述问题在IEEE 802.16e标准中进行了全面改进,PKM协议升级为PKMv2SS也变为移动站(MS),具体改进如下:

1) 双向认证,同时在传递证书的消息里增加了随机数字段,防止重放攻击。

2) 可扩展认证框架:提出了新的EAP认证框架,使得整个接入认证系统具有高可扩展性和强安全性。常见EAP认证机制包括EAP-MD5EAP-TLSEAP-TTLSPEAPLEAP等。

3) 组播密钥管理:802.16e中考虑增加多播/组播业务的支持,因此设计了组播密钥的管理系统。

2         802.16d安全机制的软件实现

尽管802.16d标准的安全机制尚有瑕疵,但相对于IEEE 802.16其它系列标准而言,其安全性已达到可商用程度且市场需求已经成熟,因此,选择软件实现IEEE 802.16d的安全机制具有强烈的现实意义。

安全子层的协议栈代码表现为802.16d芯片驱动程序中的安全模块,而SSBS设备采用的通常为嵌入式实时操作系统,例如VxWorksMontaVista Linux等。Linux操作系统不但内核高效、稳定而且开放源代码,因此本文选择Linux作为系统平台,以可动态加载的内核模块[6]形式来实现了安全子层协议栈。

2.1    总体架构

整个802.16d安全系统将包括BS端安全模块、SS端安全模块、AAA服务器(RADIUS Server)CA认证中心等几部分,总体架构如图1所示。

2.2    BS端安全模块

BS端安全子层软件主要包括AK管理、RADIUS客户端、TEK管理、配置管理、加解密、输入及输出等模块,其总体架构如图2所示。


AK管理模块负责管理BS子网中所有SS的鉴权与AK鉴权密钥的更新与同步;RADIUS客户端模块使得BS充当RADIUS客户端角色,实现对SS的认证、授权和审计;TEK管理模块负责BS子网中所有SSTEK密钥表的管理以及TEK的定时更新与同步;配置管理模块负责开放BS管理员对BSPKM配置文件管理的接口,主要包括BS子网中SS支持SA的配置、BS加解密套件的配置等;加解密模块则提供业务流加解密所需的函数接口;输入输出模块则负责接收来自MAC模块及发送去往MAC模块的PKM管理消息。

2.3    SS端安全模块

 

 

 


SS端安全子层软件主要包括AK状态机、TEK状态机、加解密服务、管理消息分发等模块,其总体架构如图3所示。

 

 

AK状态机内核线程和TEK状态机内核线程各自维护自己的消息队列,管理消息分发内核线程则负责接收由MAC模块发送过来的消息,并根据消息类型和定义的状态机列表来调度分发相应的消息到AKTEK的消息队列。两个状态机由收到的消息和各种状态下的Timeout机制来驱动,其根据消息类型和状态机当前状态进行相应的操作。

2.4    AAA服务器

为了增强系统的灵活性,提供扩展的认证、鉴权、记账、用户管理、安全审计等功能,建立后台的AAA服务器是非常必要的。AAA服务器除了提供以上安全功能之外,还可以提供更安全的共享密钥中心功能。AAA服务器可以为多个BS所共享,实现全网状态下的统一认证、授权、审计。其具体实现环境为Linux C+MySQL+Tomcat5+JDK1.4

2.5    CA认证中心

为了实现基于证书和公钥密码体制的认证和密钥传递,作为802.16d的提供商,需要能提供CA认证中心的功能,主要包括密钥中心功能,即实现密钥的产生、更新、恢复和存储;证书签发功能,即实现SS证书,设备制造商证书的签发(默认出厂就存在),CRL的签发等;证书发布功能,即实现证书的管理、存储、发布、证书的查询、撤销等。其具体实现环境为Windows + Visual C++6 + OpenSSL

3         技术实现及实验验证的关键点

本文实现安全子层软件时选用的Linux内核版本为2.4.20gcc版本为3.2.2,并通过仿真MAC层及无线信道的功能进行了性能验证及IEEE 802.16 Conformance兼容性测试。实验结果表明,该系统能很好的满足标准的设计目标,可以应用到实际环境中稳定运行。下面将描述软件实现及实验验证中涉及的关键技术。

1)关键数据结构。AK状态机和TEK状态机作为安全子层的核心模块,其数据结构至关重要。

AK状态机结构:

struct ak_sm{

enum ak_sm_state state;       /*状态机当前状态*/

struct list_head ak_msg_list;    /*消息队列*/

struct timer_list *timer;          /*指向ak定时器*/

struct authorization_sa  auth_sa; /*Authorization SA*/

struct rw_semaphore ak_sem;   /*ak_struct信号量*/

struct rw_semaphore msg_sem;  /*消息队列信号量*/

        };

TEK状态机结构:

struct tek_sm_struct{

struct list_head list;              /*状态机列表*/

enum tek_sm_state state;    /*状态机当前状态*/

struct list_head  tek_msg_list; /*消息队列*/

struct timer_list *timer;             /*指向tek定时器*/

struct data_sa data_sa;           /*DATA SA info*/

pid_t     tek_thread_pid;      /*状态机线程PID*/

struct rw_semaphore  tek_sem;  /*data_sa信号量*/

struct rw_semaphore msg_sem;  /*消息队列信号量*/

              };

2)与MAC模块的接口。安全子层作为MAC层协议栈的一个子协议,与其它层的通信都通过MAC,因此双方都需要导出接口供对方调用。

消息接口原型:int send_msg_mac2pkm(void *msg)

int send_msg_pkm2mac(void *msg)

加解密接口原型:int mac802_16d_crypto(u16 said, u8 *phy_syn_field, u8 syn_field_len, u8 *input, u16 ilen, u8 *output, u16 *olen, u8 *eks, u8 enc_or_dec)

3)内核空间与用户空间通信。本文在仿真时采用用户空间socket通信机制模拟MACPHY层的消息收发,因此必须有一种机制来解决位于内核空间的安全模块与用户空间的仿真程序进行通信的问题,本文采用了高效的netlink套接字方式。

4         结束语

作为一种充满广阔前景的宽带无线接入技术,IEEE 802.16标准受到业界越来越多的关注,国际上也已于几年前成立WiMAX联盟来推动其发展,其与其它成熟技术的结合(WLAN)和竞争(3G)也是技术热点。相信本文的工作对IEEE 802.16标准的完善和推广应用会起一定的作用。

参考文献:

[1]       IEEE 802.16-2004. IEEE Standard for Local and Metropolitan Area Networks Part 16: Air Interface for Fixed Broadband Wireless Access Systems[S].

[2]       IEEE 802.16e-2005. IEEE Standard for Local and Metropolitan Area Networks Part 16: Air Interface for Fixed And Mobile Broadband Wireless Access Systems[S].

[3]       IEEE Std 802.16™/Conformance01-2003. IEEE Standard for Conformance to IEEE 802.16 Part 1: Protocol Implementation Conformance Statement (PICS) Proforma for 10–66 GHz WirelessMAN-SC Air Interface[S].

[4]       Johnson D, Walker J. Overview of IEEE 802.16 Security[J]. IEEE Security & Privacy, 2004,2(3): 40-48.

[5]       李惠忠, 陈惠芳, 赵问道. IEEE 802.16安全漏洞及其解决方案[J]. 现代电信科技, 2005(1): 24-27.

[6]       Rubini A, Corbet J. Linux设备驱动程序(第二版)[M]. 北京:中国电力出版社,2002. 25-46, 329-345.

作者简介: 高长喜(1978—),男,博士生,信息安全专业,主要研究方向为无线网络安全技术、IP网络流量测量与控制等。

E-mail:    gaochangxi@gmail.com