当前课程知识点:网络安全概述 > 第五章 无线网络安全 > 第一节 WEP的设计和问题 > Video
下面我们来换一个话题啊
我们来看一下这个无线网络安全
无线网络不用说它有多重要
因为无线网络现在是非常重要
那有一些这个统计数字已经可以看到啊
像Cisco
今年它的统计数据就说了
这个wifi和mobile-connected devices
Will generate 68% of all internet traffic
by this year
year to 2017
就是说68%的因特网的这个流量
到今年为止将会是由这个wifi
就是无线网的用户
和这个mobile手机用户而生成的
68%呀 这个是很大
已经是大部分网络流量
实际上是有这个无线用户wifi的用户
和手机用户在生成了
这个已经非常多了
还有一个像这个Wifi Alliance
它们公布的一个数据呢是说
到今年为止 71%的移动网络通讯
实际上是通过wifi网络来进行的
这个地方我小小地强调一下
wifi这个wireless的这个network
和mobile的这个network的区别
wifi是各种各样版本的
802.11 802.11a 802.11b
就是各种各样的这个不同的版本
但是呢他是802.11的network
而这个mobile-device呢
它的这个
就是手机这种通讯的协议呢是不一样的
它就是更加复杂
它的主要的这个提供的这个供应商
实际上是你的这种
移动通讯的这个手机的这种服务商
由他们来向你提供上网的这种可能
但是这个系统和wifi是两套不同的系统
它们的协议其中有相似的地方
但是呢是两套不同的协议系统
在这个课程里面呢
我们主要的是来去讲
这个wifi的security
wifi这种形式的这个无线上网啊
它的这个security的这个协议是什么样的
首先我们来看一下这个
Wired equivalent privacy
这个protocol的设计就是WEP
这个是wifi network最早用的
这个encryption的这种算法的设计
WEP 它实际上是一个
共享密码的一个编码算法
在这个WEP里面呢
它可以保证信息的confidentiality
就是信息的私密性它是可以保证的
它还可以保证这个终端的认证
就是end host的这个authorization
然后呢 还有这个数据的完整性
是data integrity
这几点在这个WEP
这个协议的设计里面是可以提供的
那WEP这个协议呢
它还有一个自我同步的这样一个特质
就是self-synchronizing
可以单独加密每一个数据帧
拿到这个加密过的这个数据帧和这个密钥呢
可以将数据帧进行解密
即使后面的数据帧有所丢失
也不会影响解密的结果
这个是它的一个特性
并且呢WEP这个协议
它实际上是比较高效的
它呢 既可以在硬件中去实现
也有可能在软件中实现
好 我们简单的复习一下
这个数据流的这个共享编码的算法啊
在这个数据流symmetric key stream cipher里面呢
这个整个的这个过程是怎么样的呢
就是说我们先有一个input
这个输入呢是一个密钥
通过这个密钥
这个密钥放到一个key stream generator里面
就是这个密钥流的一个生成算法里面
得到一段密钥流
那之后能将这个密钥流的每一个字节
和原文的每一个字节整合计算
得出密文的字节
这个就是我们之前看到过的
如果我们用m(i)代表原文中的第i位
用这个ks(i)代表这个key stream中的第i位
这个密钥流中的第i位
那c of i我们代表这个密文
Cipher text里面的第i位的话
那我们就有如下的关系
就是说才c(i)equals to ks(i)
EX or m(i)
就是对这个密钥流的第i位
和原文的第i位求异或计算
我们就可以得到这个密文中的第i位
这个cipher text的第i位
那解密的时候我们怎么样得到原文呢
就是拿密文的第i位和这个ks
这个key stream密钥流的第i位做异或计算
就可以得到原文的第i位
这个基本上就是说symmetric stream cipher
它这个工作的基本原理
那WEP基本上就是在用这样相应的算法
用的就是RC4这样的算法
那数据流编码和数据的独立性啊
基本上呢 在这个设计WEP的时候
我们的目标是希望每一个数据帧
每一个frame它都是可以被进行独立加密的
如果对这个数据帧N+1
用从数据帧n演变出来的密钥流进行加密的话
那么这个数据帧之间的加密性
就无法变得独立
所以我们不希望有这样子的事情发生
那WEP它怎么做的呢
它的方法就是
对每一帧数据重新通过共享密钥
和新的一个initiation vector
这个IV值生成一个新的密钥流
我们可以看得到
这个共享密钥key加上一个
对于当前这一个数据帧的IV值
initiation vector这个值
它们放在一起输入到
key stream的generator里面
这个密钥流的生成的这样一个函数里面
得到一个新的密钥流
但这个新的密钥流
实际上是对一个当前帧
就是对当前的这个frame的密钥流
所以对每一帧我们都重新计算
它的这个密钥流
这是它基本的这个想法
那我们看一下WEP的加密算法的
具体的是怎么样实现的啊
首先第一步我们看到
发出方对数据计算出integrity check value
这个ICV值
它是一个四个字节的这个哈希函数
用来检查数据完整性
这个是它的作用
第二步呢是说
收发双方共有一个104位的共享密钥
他们的这个shared key的长度是104位
那第三步呢是说这个发出方创建一个24位的
initiation vector 24位的IV值
并将其接入到第二步中的
那个104位的共享密钥上
加在一起一共是一个128位的一个新的密钥
第四步啊 同时发出方附上一个key ID
这个key ID是八个bite长的
就是八位长的
那第五步就是将3.中生成的那个128位的新的密钥
输入到伪随机函数中得到一个密钥流
得到这个密钥流以后
我们就可以在下面的事情
就是第六步
将这个数据帧
这个frame中的数据和ICV
第一步中的ICV
这个integrity check value
一起用而RC4算法进行加密
这个具体的步骤是像下面这样子的几步
Step. a就是第一步
是说将B个字节的密钥流和数据和ICV的组合
进行异或处理
第二步呢是将这个IV和keyID加到Step.6a中
得到的这个密文之前
生成这个数据帧的payload
然后呢再下一步呢
是将6b.中生成的这个payload
打包成802.11的数据帧
我们可以把这个过程看一下
用下面这个小图来看一下
可能会更清晰
我们首先有个数据是
这个绿色的这一个区间
是这个data
然后呢 我们有ICV值
把数据和ICV值放在一起
进行加密encryption 对吧
做完加密以后在这个加密好的
这一段密文前面放一个keyID
在这个keyID之前
再放一个initiation vector这个IV值
然后呢 整个的这个四个部分放在一起
它实际上是MAC payload
就是说我们对这一大段信息
来进行哈希函数的运算
来得到这个信息的digest就是它的摘要
这个是大概的一个算法
那在这个图里面呢
我们可以看到啊
WEP 它的加密算法有一个进一步的解释
首先呢 我们看到有一个initiation vector
这个initiation vector呢
是对每一个frame
每一帧都生成一个新的这样一个IV值
那这个IV值呢
它实际上是不需要被加密的
它直接就是在这个网络中被进行传输的
同时呢我们有一个Ks
这个Ks呢是shared key
这个Ks是104位的一个秘密 一个secret
然后呢我们把这个IV值
和这个104位的这个Ks放在一起
一共是128位了
因为IV是24位的
放到这个key sequence generator里面
这样的话对于当前这一帧
就可以生成一个密钥流
对于这个密钥流生成了以后
我们就用密钥流中
一个字节一个字节的
这些分段的这个密钥对原文
这个frame data进行加密
得到这个cipher text
那得到了这个cipher text呢
我们实际上就放到这个WEP-encrypted data
plus这个ICV这个payload里面去了
那这个payload之前
再加上这个IV值
然后再之前再附上这个802.11的header
这个新的802.11的这个数据帧就生成了
那么我们可以看到在这个数据帧里面
很多信息都是被加密处理过的
这个基本上就是这个WEP
它的这个算法做的加密过程
那解密过程呢
我们可以从下一页slide上面看得到啊
这解密过程就是说
接收方呢在从这个data payload中
提取出IV那一项
IV那一项记住了
我们是没有经历过这个加密算法的这个过程的
所以IV我们是可以看到的
拿到IV
然后将这个IV和这个共享密钥
因为共享密钥这个receiver接收方也是知道的
我们有了这个IV值 有了共享密钥
那这个接收方就可以得到那个128位的那个输入
这个输入呢
就可以放到这个key generator里面去
然后生成相应的密钥流
这个过程就跟这个发出方
当时生成密钥流的过程是一样的
那我们有了这个新的密钥流
这个新的密钥流呢
是跟前面这个共享密钥是有关的
那将这个密钥流和密文一起
再进行异或处理
我们就可以计算出
原文和这个ICV的值
这个就是decryption的过程
然后通过比较校验这个ICV
确保这个数据真的这个完整性和正确性
这里需要注意的一点是说呢
这里信息的这个完整性的检验方法
是有别于在这个message authorization code里面
这个信息检验的方法和这个电子签字里用到的方法
是有一定的区别
下面呢 我们这个再提下如何用这个nonce啊
来进行这个终端的认证
这一步我们怎么做
我们如何验证这个Alice她就是Alice
Alice确确实实是在线的呢
那我们还是用这个nounce来解决这个问题
这个过程我们以前已经看到过了
这过程呢就是基本上是这样子
Alice发给Bob一条信息说I’m Alice
然后Bob呢 会反馈给Alice一个nounce value
有一个R
这个时候呢
Alice就会用她和Bob之间的共享密钥
对这个R进行加密
并且呢 把这个加密的密文返回给Bob
那因为是共享密钥
所以Bob就可以用共享密钥把这个R再打开
你看啊 确确实实是我刚刚发给Alice的那个nounce
那由此做这个认证
大家可以看得到啊
我这个是我们基本上讲过的认证算法里面
最简单的也是最粗陋的一种方法
但是呢 它确确实实是被用上了
真正在WEP的终端认证里面
如果只是用这种粗陋的方法
它的这个问题其实是很多的
那我们WEP它具体怎么做的呢
这个最简单的这个WEP的这个设计呢
是说一个终端一个新来的这个笔记本电脑
注意我们这里面讲的是wifi的环境
所有东西都实际上是无线的啊
在这个无线的环境中
这个笔记本电脑来了
它呢 就要向这个access point
去发一个authentication request
这个access point在这个地方就像是Bob一样
对吧 这个Alice要像Bob发一个
authentication request
那这个AP 这个access point呢
就返回给这个laptop一个nonce
这个nonce是128个bytes
这个laptop呢它就将这个nonce
用他们的shared key encrypt
然后再发回给access point
这个时候access point就可以
非常正确的去decrypt这个信息
然后看得到
哦 这个nonce就是我以前发给这个终端的
从而完成对这个终端用户的认证
但是呢并不是所有的AP
access point都做这个终端认证
即使它有可能是支持WEP的
它也有可能是不做终端认证的
那AP在这个信号帧
这个beacon frame中呢
会标记是否需要做终端认证
那终端认证在AP和无线终端之间
这个建立连接之前完成
不过很遗憾 大家可以看得到
WEP的这个终端认证
实际上是非常非常粗陋的
这样子的终端认证呢就是漏洞蛮多的
我们已经学过一些方法可以对它进行攻击
那这个对802.11WEP的这个攻击啊
有一些安全漏洞我们可以看一下
如果我们有一个24比特的这个IV
这个initiate vector
那每一帧有一个IV
这就意味着这个IV值迟早会被重复使用
那这个就是一个很大的一个安全隐患
并且呢 这个IV的传输
实际上它是未经加密的
IV是在header里面有一个这个data field
就是给IV保留的
那这个IV
它在这个数据的这个header里面呢
它在这个网络中进行传输
但这个IV值不是被加密的
那因为它不被加密
所以呢 haker或者说
任何在观测这个无线网的user
都可能看得到这个IV值
那IV值又有可能重复的出现
这个就是一个很大的问题
那攻击的方法就是
比如说Trudy他可以呢
促使Alice对一段已知的原文
这个d1 d2 d3 d4进行加密
因为这个Trudy知道这个原文是什么
OK 他也看得到Alice她的
这个加密到的密文是什么
就是这个cipher text
他也可以看到
Trudy唯一不知道的是这个密钥是什么
Trudy他想要获得的就这个密钥
OK 那Trudy知道了c_i
也知道了d_i
他呢 可能可以计算出k_i
因为是简单的异或计算
所以呢 异或计算的话
Trudy他就可以算得出来
这个key stream是什么样的
但是因为这个IV值在变化
每一个frame它的IV值不一样
所以呢 即使Trudy他知道了这个frame
他是
就是说他的key stream是什么样的
但下一个只要IV值变了
他也没有办法得到这个密钥流
但是有一点不要忘了
IV值是有可能被重复使用的
并且IV值是可以被Trudy观察到的
那也就是说一旦Trudy看到
这个同样的IV值出现了
他就可以用他之前对那一个
特定的IV值计算出来的密钥流
对相应的密文进行解密
这个就是802.11
这个WEP非常不安全的一个可能
就是说我们已经已知的WEP
是一个非常非常不安全的一个协议
并且WEP呢 现在也其实是逐渐的不被用了
就是被淘汰了
就是在这个wifi这个环境中
-第一节 电子邮件e-mail的安全
--Video
-第二节 计算机网络的服务
--Video
-第三节 网络协议的分层结构
--Video
-第四节 网络数据包的传输过程
--Video
-第五节 实例演绎计算机网络通讯工程
--Video
-第一节 计算机网络为什么不安全
--Video
-第二节 网络安全技术需要提供的服务
--Video
-第三节 网络安全讨论的情景设置
--Video
-第四节 黑客有可能有哪些攻击网络安全的手段
--Video
-第五节 网络中的恶意软件
--Video
-第一节 编码解码学的基本概念
--Video
-第二节 攻击编码解码技术的方法
--Video
-第三节 共享密钥加密法
--Video
-第四节 公共密钥加密法
--Video
-第五节 鉴别认证
--Video
-第六节 信息完整性
--Video
-第一节 电子邮件E-mail的安全
--Video
-第二节 传输协议(TCP)的安全:隐秘套接字协议(SSL)
--Video
-第三节 网络层安全:IPSec
--Video
-第一节 WEP的设计和问题
--Video
-第二节 802.11i改进机制
--Video
-第一节 防火墙概念及目的
--Video
-第二节 三种防火墙
--Video
-第三节 IDS(Intrusion Detection Systems)介绍
--Video