基于改进的Diameter/EAP-MD5的SWIM认证方法
2014-01-06吴志军赵婷雷缙
吴志军,赵婷,雷缙
(中国民航大学 天津市智能信号处理重点实验室,天津 300300)
1 引言
随着我国民航业务的全面扩展和信息化建设的迅速发展,整个民航领域的企业、单位和部门越来越依赖通信网开展业务交易、进行内部资源共享、实现协调决策。基于面向服务架构(SOA, service oriented architecture)的民航广域信息管理系统(SWIM, system wide information management)服务架构应运而生,为相互独立的空中交通管理(ATM, air traffic management)系统之间提供资源整合、数据共享和统一服务,构建系统级的航空信息管理体系[1,2]。
SWIM具有数据高速交互和信息共享的优势,包括很多航空业务关键数据和保密信息在内,越来越多的业务数据在SWIM网络中传输和交换,面临的安全威胁也越来越突出,数据安全和隐私保护成为SWIM发展必然要面临的课题[3,4],只有对SWIM用户身份做出可靠的确认才能有效地保证合法用户接入 SWIM 网络并对其使用的相应资源进行保护[5],同时阻止非法航空用户对SWIM网络进行恶意访问和破坏[6]。
本文根据 SWIM 的体系结构,结合我国民航SWIM具体布局,采用新一代AAA(authentication、authorization、accounting)协议——Diameter协议,实现SWIM系统的安全认证,保障SWIM共享数据的安全和隐私保护。
2 SWIM安全认证框架
SWIM是一个虚拟信息池,存储实时的航空飞行数据、监视数据和气象信息等,ATM要求必须保证 SWIM 数据的保密性、完整性和可用性[6]。Diameter协议包括基础协议[7,8]和各种应用协议,完全支持IPsec安全协议,并提供可选的安全传输层(TLS, transport layer security)协议对数据进行保护,可以实现网络层、传输层及应用层的加密认证功能,以保证国际民航组织(ICAO, international civil aviation organization)对SWIM的要求[6]。
2.1 SWIM服务架构的安全技术
欧洲SWIM-SUIT计划定义了SWIM信息和服务模型[1],将SWIM用户的身份认证和访问控制作为安全服务的一个子项;联邦航空局(FAA, federal aviation administration)的下一代交通运输系统NextGen (next generation air transportation system)构建XML网关基础设施为SWIM提供安全服务[5];欧洲的SWIM-SUIT计划进入了工程实施阶段,并且已经与美国的SWIM网络开展了互联工作,通过两者的互联,欧美在SWIM网络融合和系统交互的过程中建议采用PKI网络安全认证技术。国际民航组织于2010年10月出台了SWIM相关的网络服务安全标准[6],该标准将SWIM的网络安全技术分为3层:网络层采用基于IPsec协议的逐跳安全机制;传输层采用基于SSL/TLS协议的端到端安全机制;应用层则负责实现XML安全、消息安全、访问控制、身份管理、安全管理等。
2.2 新一代AAA协议—Diameter协议
可提供AAA服务的现行Radius协议因其本身固有的缺陷,例如,C/S模式、基于UDP面向非连接的传输、没有失败恢复机制、认证与授权必须成对出现等,限制了它的进一步发展。而新一代AAA协议——Diameter协议克服了Radius协议的诸多缺陷,如采用Peer-to-Peer模式、基于TCP/SCTP面向连接的传输协议、提供可靠的失败恢复机制、认证与授权分离等,拥有优良的兼容性、标准的规范化、极强的可扩展性和更高的安全性,更容易进行新应用的扩展以满足新的需求[7]。目前,IETF、3GPP、3GPP2、ETSI TISPAN、Packet Cable、MSF、ITU等标准组织已经普遍接受 Diameter协议,在GSM/UMTS、CDMA、LTE、有线电视等网络中采用Diameter协议来做它的AAA接口。
2.3 基于Diameter/EAP协议的SWIM认证架构
根据我国空中交通管理体系的民航空管局、地区空管局、空管分局站三层管理架构,SWIM面向的是空中交通管理各级组织及其下属的各级用户,采用Diameter协议为SWIM提供用户身份认证可以更好地解决全国民航空中交通管理业务分布式应用和跨域认证的问题。Diameter在中国SWIM中部署结构如图1所示。
基于 Diameter/EAP协议的认证系统与 SWIM架构的星型拓扑结构相互契合,其结构实际上是一个以用户、接入服务器(包括重定向服务器和代理服务器)、认证服务器为主,注册服务器为辅,注册信息和认证信息数据库为支撑的节点结构,如图2 所示[3]。
在认证过程中,SWIM用户采用NAI(network access identify),即“user@realm”的结构进行注册,其中,user是用户名,realm是管理域名,恰好可与用户所在区域相对应,由NAI的realm可以得知用户的注册网络。每次登录时提交认证请求,接入服务器主要进行协议转换和消息转发,并识别用户的realm信息,将其认证请求转发至相应的Diameter认证服务器,Diameter服务器依托注册信息数据库对用户进行最终认证,同时依据用户的realm信息为其提供漫游管理,最后将用户的认证状态记录于认证信息数据库。
3 Diameter/EAP-MD5协议分析及改进
标准的Diameter/EAP-MD5认证在为SWIM提供基本的用户认证服务中存在一定的安全隐患。本文在针对标准的Diamter/EAP-MAD5认证流程进行安全隐患分析的基础上,提出改进的 Diameter/EAP-MD5认证协议,并将其应用到SWIM中。
图1 SWIM中的Diameter部署
图2 SWIM架构下基于Diameter/EAP协议的认证模块结构
3.1 标准的Diameter/EAP-MD5认证流程
EAP-MD5是一个IETF的开放标准,其认证无需证书,部署简单。标准的Diameter/EAP-MD5认证流程如图3所示[9,10]。
图3 Diameter/EAP-MD5标准认证
1) NAS向 Diameter认证服务器发送 NULL Message,标志认证过程的开始。
2) Diameter认证服务器向NAS发送DER消息,要求用户提供身份信息。
3) NAS将 DER消息解封后重新封装成EAP-Request消息后转发给用户。
4) 用户将身份信息以明文形式包含在 EAPResponse消息中返回NAS。
5) NAS提取用户身份信息后将其封装在DEA消息中转发给Diameter认证服务器。
6) Diameter认证服务器将接收到的用户ID与数据库中存储的信息对比,若不匹配则发布认证失败消息,若匹配则向NAS发送DER消息,其中包含服务器端产生的随机数。
7) NAS提取其中的随机数并向用户转发EAP-Request消息。
8) 用户使用接收到的随机数与密码做散列运算,并将结果同用户ID一同发往NAS。
9) NAS将该 EAP-Response消息重新封装在DER消息中发往Diameter认证服务器。
10) Diameter服务器本地计算原随机数与用户名对应密码的散列值,并与接收到的散列值作比较,若相同则返回认证成功消息,若不同则返回认证失败消息。
11) NAS向用户转发相应的 EAP-Success/Failure消息。
3.2 标准的Diameter/EAP-MD5认证安全性分析
标准的Diameter/EAP-MD5认证在SWIM安全服务架构的具体实现中存在一定的安全隐患,若直接应用到SWIM网络中,不仅会造成航空用户信息的泄露,更有可能威胁到整个SWIM网络。标准的 Diameter/EAP-MD5认证可能存在的缺陷和漏洞主要表现在以下3个方面[11,12]。
1) 认证过程中用户 ID始终明文传输,机密性的缺失往往是致命的。一旦这些用户的身份信息被攻击者截获,若用来对服务器或数据库进行各种注入式攻击,则会导致更多敏感甚至机密数据的泄露。SWIM用户涉及机场、航空公司、空管局及其下属单位等,以管制员为例,若攻击者截获该管制员ID,借此破译其认证密码,则极有可能凭借管制员权限查看到相应保密级别的信息,严重的有可能威胁到航空飞行安全,甚至危及到国家领空的安全。
2) NAS /Diameter Client只起到转发作用,其身份未被确认,一旦被攻击者仿冒,则很容易进行中间人攻击,造成用户信息和服务器信息的双重泄露,即使用户和服务器之间传输的消息是经过加密的,若此消息被截获,也可利用猜测攻击获得相关明文甚至是密钥。SWIM信息池包含海量的飞行数据、监视数据、气象信息等,NAS的仿冒者极有可能在服务器返回用户请求的过程中截获这些信息从事非法活动。
EAP的安全性说明要求EAP使用的认证方法应实现双向认证,而EAP-MD5仅实现了服务器对用户的认证,并没有实现用户对服务器的认证。若用户盲目地向攻击者仿冒的服务器提供个人信息,则会造成不必要的损失。
3.3 改进的Diameter/EAP-MD5认证流程
在分析标准Diameter/EAP-MD5认证过程存在缺陷和漏洞的基础上,本文针对这些安全缺陷和漏洞做出相应的改进[11~15],保证其在SWIM的实际应用中提供更强的安全性。以下均以用户client@huabei.net为例,进行说明改进的Diameter/EAP-MD5协议在 SWIM中的认证过程,如图 4所示。
图4 Diameter/EAP-MD5改进认证
改进的Diameter/EAP认证可分为3个阶段[11]。
第1阶段:SWIM用户与NAS之间的相互认证。
1) NAS向 Diameter认证服务器发送 NULL Message,标志认证过程的开始。
2) Diameter认证服务器向NAS发送DER消息,要求用户提供身份信息。
3) NAS将 DER消息解封后重新封装成EAP-Request消息后转发给用户。
4) 用户产生一随机数R1,使用与NAS共享的AES算法对称密钥K1将用户ID和R1同时加密后封装在EAP-Response消息中发往NAS,若NAS持有相应的K1,则可实现与用户的相互认证并提取用户ID,否则认证失败。
第2阶段:用户对服务器的认证。
5) NAS使用K1解密消息后得到用户ID和随机数R1,判断用户的reaml信息以确定转发至哪个 Diameter认证服务器,然后使用与 Diameter认证服务器约定的 AES算法对称密钥K2对其进行加密后封装在 DER消息中转发给 Diameter认证服务器。
6) Diameter服务器使用K2解密消息得到用户ID并加以判断,若未存用户ID,则对用户域名加以判断,如仍不匹配则发布认证失败消息,若已存在用户ID,则生成随机数R2,连同与R1一起做散列运算H(R1,R2)返回给NAS。
7) NAS使用K2得到R2后再用K1进行加密,将H(R1,R2)一同包含在向用户发送的EAP-Request消息中。
8) 用户通过K1得到R2之后自行计算R1、R2的散列值并与接收到的H(R1,R2)对比,若不相同则对Diameter服务器重新发起认证,若相同则向NAS发送包含用户ID和H(ID,PW,R2)的EAP-Response消息。
第3阶段:服务器对用户的认证。
9) NAS使用K1得到用户ID后用K2加密,连同H(ID,PW,R2)一起向 Diameter服务器发送Diameter-EAP-Request消息。
10) Diameter服务器对比接收到的H(ID,PW,R2)与本地的计算结果,若一致则认证成功,若不一致则认证失败,回复相应的Success/Failure消息。
11) NAS向用户转发EAP-Success/EAP-Failure消息。
以上过程针对标准Diameter/EAP-MD5认证方法中存在的用户身份信息明文传输,未对 NAS进行身份确认,为实现用户与服务器的双向认证等主要缺陷实现了改进。
4 仿真实验和结果分析
本节基于改进的Diameter/EAP-MD5认证协议在仿真的SWIM环境下进行实验,并对实验数据和结果进行分析。
4.1 实验环境
按照SWIM架构下基于Diameter/EAP协议的认证模块结构(如图2所示),根据SOA模型搭建模拟的SWIM环境。其中,用户、NAS(双网卡)、Diameter认证服务器均安装Red Hat Linux 5.5系统和由OpenDiameter组织开发的opendiameter-1.0.7-i软件包,部署Diameter协议运行环境;进行用户身份XML文档(以user@huabei.net为例)、各PC的IP地址及端口号、服务器后方注册数据库和认证状态信息数据库的配置分别在用户 PC、NAS和Diameter认证服务器端启动认证客户端程序、NAS程序以及服务器认证程序,先后实现 Diameter/EAP-MD5标准和改进认证方法,调整参数并统计实验数据。
4.2 Diameter/EAP-MD5改进认证的时间复杂度分析
SWIM网络具有庞大的航空用户群和海量的数据。由于航空安全飞行要求数据实时通信,SWIM安全访问要求具有很强的实时性,对认证系统的时间复杂度性能提出较高的要求。身份认证作为航空用户访问SWIM网络的门户,同样需要达到合理的时间复杂度要求。
Diameter/EAP-MD5认证改进前后三方收发消息的条数未改变,已知随机数位数与认证安全性之间存在正比例关系,仿真实验中对认证改进前后随机数位数分别为16 bit、32 bit,密钥长度分别为128 bit、256 bit,AES加密算法时的认证时间做100次抽样,记录数据如表1所示。
对表1所列抽样数据进行统计,结果表明改进前后的单次平均认证时间仅相差约16 ms;随机数16 bit与32 bit的单次平均认证时间相差不足3 ms;密钥长度128 bit与256 bit的单次平均认证时间相差约8 ms。为使参数变化情况下认证时间差更加直观,对其进行100次时间累加,得到的时间复杂度实验结果如图5所示。
表1 100次抽样结果(单位:ms)
图5 时间复杂度实验统计结果
从图5中可以看出,认证改进前后以及随机数位数分别为16 bit(AES128)、32 bit(AES128)和16 bit(AES256)的100次累加认证时间分别为18 435.647 ms、20 062.956 ms、20 312.956 ms和 20 869.308 ms,即改进的Diameter/EAP-MD5认证比标准认证平均每次多花费16.273 ms;随机数位长对改进认证的时间复杂度影响是32 bit比16 bit平均每次多花费2.5 ms;密钥长度256 bit比128 bit的单次平均每次多花费7.964 ms。而一般登录的页面响应时间在2 s内为宜,网络延时在 30 ms内为宜,可见改进的Diameter/ EAP-MD5认证在时间复杂度上的牺牲几乎可以忽略不计。
4.3 Diameter/EAP-MD5改进认证的安全性分析
改进后的Diameter/EAP-MD5协议认证方法的安全性从以下几个方面分析。
1) 机密性:不同于标准认证的用户ID明文传输,改进的认证方法中用户与NAS之间、NAS和认证服务器之间分别采用约定的对称密钥K1、K2对消息进行加密。
2) 双向认证:标准的Diameter/EAP-MD5认证仅实现服务器对用户的认证相比,改进的Diameter/EAP-MD5认证流程中,用户和NAS之间依靠对称密钥K1实现了双向认证,同时用户利用本地产生的随机数R1和认证服务器产生的随机数R2实现了对服务器的认证。
3) 抵御重放攻击:每一次新的认证,用户生成新的随机数R1,Diameter认证服务器生成新的随机数R2,且R1位长可选,2个随机数的配合使重放攻击的可能性大大降低。
4) 猜测攻击:攻击者若想分析得到用户ID和密码,首先需要截获用户、NAS和 Diameter服务器之间的通信数据,此时K1、K2提供第一道保障,其次,用户ID与R1相互连接,而每次认证所产生的R1不同,若无法确定R1的长度,则依然无法分离出用户ID。
5) 角色仿冒:在实现了用户、NAS、Diameter服务器之间的两两认证之后仍要做一次R1、R2的散列运算以供Diameter服务器验证,其目的是为了再次确认完成用户与 NAS之间的相互认证和用户对服务器的认证之后各主体并未发生变化,有效防范攻击者仿冒合法用户或者NAS。
基于上述分析可以看出,改进后的 Diameter/EAP-MD5认证协议在SWIM的数据安全和隐私保护方面具有较高的安全性,可以避免SWIM敏感信息的外泄和阻止非法航空用户的访问。
5 结束语
本文综合考虑我国民航发展现状、安全基础设施部署难度以及安全强度要求等情况,设计采用Diameter协议为民航SWIM架构提供安全认证服务。Diameter/EAP认证模块结构与SWIM的星型拓扑结构相互契合,为其软硬件的部署提供了十分有利的条件。改进后的Diameter/EAP-MD5认证未增加流程消息数,并在几乎没有增加时间复杂度的基础上对双向认证、抵御重放攻击、机密性、防猜测攻击和防角色仿冒等方面都做了部分改善,从而提高了网络AAA服务基础设施的安全性和准入严格性,强化了 SWIM 系统安全服务,同时采用NAI格式的用户ID,从而更加适宜SWIM系统结构。
然而,改进方法中增加了用户、NAS和Diameter认证服务器之间的对称密钥,这又从另一方面加大了密钥分配的难度,今后的工作重点应放在开发一种可动态分配密钥的 Diameter/EAP-MD5认证方法上,权衡考虑高安全性和低密钥分配难度的折衷。
[1] DARIO D C, ANTONIO S, GEORG T. SWIM- a next generation ATM information bus-the SWIM-SUIT prototype[A]. 2010 14th IEEE International Enterprise Distributed Object Computing Conference Workshops (EDOCW)[C]. 2010.41- 46.
[2] 吕小平, 齐鸣. 浅谈SWIM[J]. 民航管理, 2009,(5): 68-69.LV X P, QI M. A brief discussion of SWIM[J]. Civil Aviation Management, 2009, (5): 68-69.
[3] BOB S. Security architecture for system wide information management[A]. The 24th 2005 Digital Avionics Systems Conference (DASC 2005)[C]. 2005.
[4] BOB S. System-wide information management (SWIM) demonstration security architecture[A]. 2006 IEEE/AIAA 25th Digital Avionics Systems Conference[C]. 2006. 1-12.
[5] Federal Aviation Administration. System Wide Information Management (SWIM) eXtensible Markup Language (XML) Gateway Requirements[S]. 2009.
[6] International Civil Aviation Organization. Web service security standards[A]. Aeronautical Telecommunication Network Implementation Coordination Group-Eighth Working Group Meeting[C]. Christchurch New Zealand, 2010.
[7] 邱锡鹏, 刘海鹏. Diameter协议研究[J]. 计算机科学, 2013, 30(2):75-78.QIU X P, LIU H P. Research on diameter protocols[J]. Computer Science, 2013, 30(2):75-78.
[8] IETF RFC3588. Diameter Base Protocol[S]. 2003.
[9] IETF RFC3748. Extensible Authentication Protocol(EAP)[S]. 2004.
[10] IETF RFC 4072, Diameter Extensible Authentication Protocol(EAP)Application[S]. 2005.
[11] 陈凤其,姚国祥. 一种基于Hash函数的EAP认证协议[J]. 计算机系统应用, 2010, 19(6): 74-77.CHEN F Q, YAO G X. A hash-based EAP authentication protocl[J].Computer Systems & Applications, 2010, 19(6):74-77.
[12] 陈世伟, 金晨辉. MD5碰撞攻击中的充要条件集[J]. 软件学报,2009,20(6):1617-1624.CHEN S W, JIN C H. Set of necessary and sufficient conditions in collision attacks on MD5[J]. Journal of Software, 2009, 20(6):1617-1624.
[13] 赵志新, 祝跃飞, 梁立明. 无线局域网隧道认证协议 PEAP的分析与改进[J]. 信息工程大学学报, 2005, 6(3):52-55.ZHAO Z X, ZHU Y F, LIANG L M. The analysis and mend of PEAP protocol in WLAN[J]. Journal of Information Engineering University,2005,6(3):52-55.
[14] 吉晓东. 支持身份隐藏的EAP-PSK协议改进[J]. 南通大学学报(自然科学版), 2007, 6(2):74-77.JI X D. Improvement of EAP-PSK protocol enabling identity privacy[J]. Journal of Nantong University (Natural Science), 2007,6(2):74-77.
[15] 王志中. MD5算法在口令认证中的安全性改进[J]. 电脑知识与技术, 2012, 8(2):296-297.WANG Z Z. Security improvement of MD5 algorithm in password authentication[J]. Computer Knowledge and Technology, 2012, 8(2):296-297.