无线局域网认证机制的分析与设计
2009-10-26魏志晖
魏志晖
摘要:该文首先介绍了某公司在无线局域网方面的要求,然后结合公司这种需求,我们把自创的安全性认证机制服务器自动更新用户密码的方案应用到公司的无线局域网构建之中,并取得良好效果。
关键词:无线局域网;安全;认证机制
中图分类号:TP393.17文献标识码:A文章编号:1009-3044(2009)22-0000-00
1 项目概况
华南地区有一所服装贸易公司根据贸易经营特点,计划建立无线局域网系统。在公司的内部设置数据服务器。公司为每位员工配备手提电脑,公司统一分配加密函数f给每位员工,使员工可以通过手提电脑上网或者召开临时会议,这样就方便了大家随时的上网,加强了联系。组织结构包括了数个部门及其主管经理,而公司的决策权只掌握在总经理的手中。我们建立了统一的数据中心,各部门可以共享数据中心的数据,然而销售部门在外面工作时,访问数据中心,就必须有网络连接到数据中心。所以,公司为了大家方便的工作,在内部建立了无线网络。
几个业务需求:
1)公司销售人员携带手提电脑与客户洽谈生意,及时地把销售数据上传到数据库中供给部门和经理查看。
2)每位上层管理人员利用手提电脑与属下进行业务数据分析。
3)总经理无论何时何地都能打开自己的手提电脑,查看主要的销售数据。
4)销售人员与客户谈生意,必须在客户面前登陆公司服务器下载相关的资料,而且不可能遮遮奄奄,显得不大方,所以输入的密码可能会爆光。
5)公司不同级别的人员下载数据的权限也是不一样的,当管理人员利用手提电脑与属下进行业务数据分析,也有可能泄露个人的密码。
6)总经理在公众场合上网,密码也可能被看到。
我们无线局域网的建立首要解决的问题就是密码的问题,也就是说,在密码暴露后,还能保证信息的安全。
2 无线局域网安全机制方案的选用和部分设计方案
本人负责公司无线局域网安全性认证机制的设计,我通过分析该系统的硬件特点和业务特点以及安全性的需求对安全性的认证方案进行选用。在选用的过程中,我主要考虑了以下的三种方案:
1)WEP安全性认证。此认证方法是传统的认证,它是采用静态密钥的,安全性比较薄弱。所以此认证方案不考虑。
2)IEEE802.1x认证。身份认证过程采用了数字证书的认证,而且是在客户端和服务器端交互的认证,安全性高。但是考虑到系统业务的特殊性,需要在密码暴露的情况下,仍然能保证通信的安全性,IEEE802.1x无法满足这些要求,所以也不适合。
3)服务器自动更新用户密码。此方法是参考IEEE802.1x方法得出的,采用服务器自动更新密钥和变元,然后返回给客户端,让客户端也不断的更新密钥和变元。此方案采用的密钥算法是Rijndael算法,可以保证有效的保证数据的安全性;所以在这个特殊的业务需求中,采用服务器自动更新用户密码的方案是最适合不过的。
我设计的服务器自动更新用户密码的方案主要具有以下的几个特点:
1)每登录一次后,服务器会自动更新登录的密码。这样不断动态地更新客户端的密码可以有效地提高网络安全,可以在密码泄露后,盗用者也无法按照原来的密码登录。
2)能避免服务器发送的密码或数据被剽窃。因为即使被截取也只是变元X,而没有固定存在客户端和服务器的加密f函数,所以截取人无法得知f(X)。加密算法是Rijndael,密钥长度128/192/256,安全强度高。
3)通过不定时的有线更新密码Nr表,具有更强保密性。客户端必须不定时的有线更新Nr表,使得Rijndael算法具有变化的循环次数,也就是得到更新的f,使保密性更高。
我的安全性认证机制(服务器自动更新用户密码)的想法是在802.1.x和EAP认证无法解决特定问题的基础上得出的,它也继承了802.1.x和EAP认证机制的优点。服务器自动更新用户密码的原理主要包括端口控制原理、通信认证的流程和加密密钥这几个方面。
服务器自动更新用户密码的原理是用户申请加入AP的第一次获得一个初始的密码,当用户第一次登陆AP后,服务器将会返回下一次用户需要输入的密码,用户再下一次输入的时候,只能用服务器返回的密码,先前的密码是已经作废的,按照这种过程一直循环下去。具体的操作流程如图1所示:
1)用户申请开通网络获得初始密码(A1…An),输入初始密码在客户端中加密后发送到服务器上去验证。
2)如果服务器验证通过,它将为用户生成随机变元(X1…Xn)和新的密钥f,通过f(X1…Xn)生成密码,保存在服务器的数据库中。否则,用户无法上网,退出服务。
3)服务器给客户端返回生成的变元(X1…Xn)和新的密钥f。
4)客户端通过新的密钥加密变元生成新的密码保存在客户端,用户记住这个密码,这个密码也就是用户下一次登陆的密码。
5)下次登陆输入新的密码。
6)服务器验证新的密码,如果客户输入的新密码和服务器的数据库中存有该用户的密码一致,那么用户可以登录到网络。服务器端生成随机数(Y1…Yn)和更新秘钥为g。用g(Y1…Yn)生成新密码保存在服务器数据库。
7)服务器给客户端返回新的密钥和变元(Y1…Yn)。然后循环4)到7)步的过程。
在服务器自动更新客户端密码中,我们使用的加密算法是Rijndael算法。采用该算法可以不断的更新服务器上和客户端的密钥。
Rijndael算法是比利时的Joan Daemen和Vincent Rijmen设计的分组算法,具有可变数据块长度和可变密钥长度的特点。数据块长度与密钥长度可分别为128,192或256bits。算法主要包括密钥调度以及Nr(Nr由密钥长度与数据块长度决定)次循环运算,密钥调度从加密密钥生成循环子密钥,Nr次循环前Nr-1次均相同,最后一次循环稍有不同[1]。
主要表现在以下几个方面:
1)安全性。Rijndael算法式一种基于有限域-有限环的算法,又同时保证了算法可逆。
2)执行效率高。
3)算法适应性好。
在本方案的设计里,考虑到企业的特点之外,还有考虑到数据被截取的可能性的存在,我对Rijndael算法在Nr上进行了改进。有必要使用Nr表进行有线的更新,在服务器建立一个只能用有线连接的自动更新Nr表的软件。销售人员、经理等人必须在有限的次数或者是有限的时间内,回到公司服务器进行有线连接更新Nr表。Nr循环次数从原先由Nb和Nk决定,可以建立为由登陆次数和Nb、Nk三种参数所构成的表,如表1所示。由服务器客户端都同时记录登陆次数,每次登陆之后都采用服务器客户端约定好的f进行更新。
通过对Rinjnael算法的修改,我们可以避免无线网络认证中,发送和返回相互两个过程被空中截取的危险。即使被盗取了,盗取者只是得到了变元(X1…Xn)或者是一个旧的f(X1…Xn),而当销售人员之前一次登陆之后,服务器和销售人员的电脑已经开始修改成新的密钥g,盗取者无法获得服务器的数据,隐蔽性提高了。而且随着循环次数的变化,破解的复杂度会增加很多倍。
3 小结
无线局域网正在急速地发展,而无线局域网的安全性问题越来越受到大家的关注。如果谁能在安全性方面取得突破,那么将会占据无线网的市场。所以对无线网络的安全方面的研究是值得我们去探讨的,去突破创新的。
参考文献:
[1] J.Daemon,V.Rijmen.“ASE Proposal:Rijndael,”Internet Draft,1999.9.
[2] S.Fluhrer,I.Mantin,and A.Shamir,Weaknesses in the key schedule algorithm of RC4,in Proc.4th Annual Workshop on Selected Areas of Cryptography,2001.
[3] J.Daemon,V.Rijmen.“ASE Proposal:Rijndael,”Internet Draft,1999.9.