关于无线局域网应用中的安全
发布时间:2008/5/29 0:00:00 访问次数:441
university of california at berkeley(美国加州柏克莱大学)的三名研究人员,nikita borisov、ian goldberg、以及dabid wagner,在去年发现wep编码的重大漏洞;除此之外,在2001年8月,密码学家scott fluhrer、itsik mantin、以及adi shamir在一篇论文中,指出了rc4编码的缺点,而rc4正是wep的基础。就在几天后,2001年8月底,rice university(美国莱斯大学)的学生与两名at&t(美国电报电话公司)实验室的员工(adam stubblefield与john joannidis、aviel d. rubin),将这两篇论文的内容化为实际的程序代码。令人惊讶的是,其中完全没有牵扯到任何特殊装置,你只要有一台可以连上无线网络的个人计算机,从网络上下载更新过的驱动程序,接下来就可以开始记录网络上来往的所有封包,再加以译码即可。
wep的运作方式
在许多无线局域网中,wep键值(key)被描述成一个字或位串,用来给整个网络做认证。
目前wep使用2种编码大小,分别是64与128位,其中包含了24位的初始向量(iv,initialization vector)与实际的秘密键值(40与104位)。大家耳熟能详的40位编码模式,其实相当于64位编码。这标准中完全没有考虑到键值的管理问题;唯一的要求是,无线网卡与基地台必须使用同样的算法则。通常局域网的每一个用户都会使用同样的加密键值;然而,局域网用户会使用不同的iv,以避免封包总是使用同样wep键值所「随机」产生的rc4内容。
在封包送出之前,会经过一个「忠诚检查(ic,integrity check)」,并产生一个验证码,其作用是避免数据在传输过程中,遭到黑客窜改。rc4接下来会从秘密键值与iv处,产生一个keystream,再用这个keystream对数据与ic做互斥运算(xor,exclusive-or)。首先iv会以一般文字方式传送出去,然后才是加密后的数据。只要将iv、已知的键值、以及rc4的keystream再做一次互斥运算,我们就可以将数据还原。
弱点:初始向量(iv,initialization vector)
40或64位编码可以填入4组键值;然而我们只使用了第一组。
wep编码的弱点在于iv实作的基础过于薄弱。例如说,如果黑客将两个使用同样iv的封包记录起来,再施以互斥运算,就可以得到iv的值,然后算出rc4的值,最后得到整组数据。
如果我们使用的初始向量为24位,那我们就可以在繁忙的网络点上(例如以11mbps的频宽,不断传送1500字节的封包),以不到5小时的时间算出结果。以这样的例子来说,总数据量为24gb。因此,要在几小时的时间内,记录所有传输的封包,并以笔记本计算机算出其结果,是绝对可行的事情。
由于该标准并没有规定iv所产生的相关事宜,所以并不是每家厂商都用到iv的24个位,并在短时间内就重复用到相同的iv,好让整个程序快一点。所以黑客所要记录的封包就更少了。以lucent(朗讯)的无线网卡来说,每次激活时它就会将iv的初始值设为0,然后再往上递增。黑客只要记录无线网络上几个用户的数据内容,马上就可以找到使用同样iv的封包。
fluhrer、martin、shamir三人也发现,设计不良的iv有可能会泄漏键值的内容(信心水准为5%),所以说只要记录400~600万个封包(顶多8.5 gb的数据量),就有可能以iv来算出所有的wep键值。
更进一步探讨,如果wep键值的组合不是从16进位表,而是从ascii表而来,那么因为可用的字符数变少,组合也会变少。那么被黑客猜中的机率就会大增,只要一两百万个封包,就可以决定wep的值。
网络上可找到的入侵工具
adam stubblefield在其论文中详尽的描述了整个过程,却仅限于理论;但现在网络上四处可见这些免费的入侵工具程序。与stubblefield所提的类似,所有程序支持的几乎清一色是prism-2芯片。使用这芯片的包括了compaq(康柏)wl100、友讯(d-link)dwl-650、linksys wpc11、以及smc 2632w等,都是市面上常见的产品。会选用这芯片的原因是因为其linux驱动程序(wlan-ng)不需要登入网络,即可监听封包。这程序会先搜寻设计不良、有漏洞的iv,然后记录500~1,000万不等的封包,最后在剎那间将wep键值算出来。
黑客可以采取主动式攻击
由于以上所说的被动式攻击(单纯的纪录封包)十分可靠、有效,所以主动式攻击反而失去了其重要性。不过毫无疑问的,黑客也可以主动的侵
university of california at berkeley(美国加州柏克莱大学)的三名研究人员,nikita borisov、ian goldberg、以及dabid wagner,在去年发现wep编码的重大漏洞;除此之外,在2001年8月,密码学家scott fluhrer、itsik mantin、以及adi shamir在一篇论文中,指出了rc4编码的缺点,而rc4正是wep的基础。就在几天后,2001年8月底,rice university(美国莱斯大学)的学生与两名at&t(美国电报电话公司)实验室的员工(adam stubblefield与john joannidis、aviel d. rubin),将这两篇论文的内容化为实际的程序代码。令人惊讶的是,其中完全没有牵扯到任何特殊装置,你只要有一台可以连上无线网络的个人计算机,从网络上下载更新过的驱动程序,接下来就可以开始记录网络上来往的所有封包,再加以译码即可。
wep的运作方式
在许多无线局域网中,wep键值(key)被描述成一个字或位串,用来给整个网络做认证。
目前wep使用2种编码大小,分别是64与128位,其中包含了24位的初始向量(iv,initialization vector)与实际的秘密键值(40与104位)。大家耳熟能详的40位编码模式,其实相当于64位编码。这标准中完全没有考虑到键值的管理问题;唯一的要求是,无线网卡与基地台必须使用同样的算法则。通常局域网的每一个用户都会使用同样的加密键值;然而,局域网用户会使用不同的iv,以避免封包总是使用同样wep键值所「随机」产生的rc4内容。
在封包送出之前,会经过一个「忠诚检查(ic,integrity check)」,并产生一个验证码,其作用是避免数据在传输过程中,遭到黑客窜改。rc4接下来会从秘密键值与iv处,产生一个keystream,再用这个keystream对数据与ic做互斥运算(xor,exclusive-or)。首先iv会以一般文字方式传送出去,然后才是加密后的数据。只要将iv、已知的键值、以及rc4的keystream再做一次互斥运算,我们就可以将数据还原。
弱点:初始向量(iv,initialization vector)
40或64位编码可以填入4组键值;然而我们只使用了第一组。
wep编码的弱点在于iv实作的基础过于薄弱。例如说,如果黑客将两个使用同样iv的封包记录起来,再施以互斥运算,就可以得到iv的值,然后算出rc4的值,最后得到整组数据。
如果我们使用的初始向量为24位,那我们就可以在繁忙的网络点上(例如以11mbps的频宽,不断传送1500字节的封包),以不到5小时的时间算出结果。以这样的例子来说,总数据量为24gb。因此,要在几小时的时间内,记录所有传输的封包,并以笔记本计算机算出其结果,是绝对可行的事情。
由于该标准并没有规定iv所产生的相关事宜,所以并不是每家厂商都用到iv的24个位,并在短时间内就重复用到相同的iv,好让整个程序快一点。所以黑客所要记录的封包就更少了。以lucent(朗讯)的无线网卡来说,每次激活时它就会将iv的初始值设为0,然后再往上递增。黑客只要记录无线网络上几个用户的数据内容,马上就可以找到使用同样iv的封包。
fluhrer、martin、shamir三人也发现,设计不良的iv有可能会泄漏键值的内容(信心水准为5%),所以说只要记录400~600万个封包(顶多8.5 gb的数据量),就有可能以iv来算出所有的wep键值。
更进一步探讨,如果wep键值的组合不是从16进位表,而是从ascii表而来,那么因为可用的字符数变少,组合也会变少。那么被黑客猜中的机率就会大增,只要一两百万个封包,就可以决定wep的值。
网络上可找到的入侵工具
adam stubblefield在其论文中详尽的描述了整个过程,却仅限于理论;但现在网络上四处可见这些免费的入侵工具程序。与stubblefield所提的类似,所有程序支持的几乎清一色是prism-2芯片。使用这芯片的包括了compaq(康柏)wl100、友讯(d-link)dwl-650、linksys wpc11、以及smc 2632w等,都是市面上常见的产品。会选用这芯片的原因是因为其linux驱动程序(wlan-ng)不需要登入网络,即可监听封包。这程序会先搜寻设计不良、有漏洞的iv,然后记录500~1,000万不等的封包,最后在剎那间将wep键值算出来。
黑客可以采取主动式攻击
由于以上所说的被动式攻击(单纯的纪录封包)十分可靠、有效,所以主动式攻击反而失去了其重要性。不过毫无疑问的,黑客也可以主动的侵