第6章 无线网安全性 Part I
第6章 内容概要 6.1 无线通信和802.11 无线局域网标准 6.2 有线等价隐私协议 6.3 Wi-Fi 访问保护协议 6.4 IEEE 802.11i/WPA2 6.5 蓝牙安全机制 6.6 无线网状网的安全性
概论 无线电通信 攻击者,有一个无线的传送和接受装置,与要攻击的无线网使用相同的无线频率,可以做到: 保密措施 拦截无线网数据 将其计算机连接到一个近处的无线网 对一个现有的无线网络插入数据包 用无线电干扰设备对特定无线网通道实施干扰 保密措施 在数据链接层实施加密算法,身份验证算法和完整性检验算法 提供有线方式访问网络的接口 高层协议和应用程序可以直接使用
无线局域网体系结构 两种体系结构 含有无线通信设备的装置通常称为移动站STA 无线接入点 (WAP) 固定无线局域网: 可与有线网相连 特定无线局域网(点对点): 不与任何固定的有线网相连 含有无线通信设备的装置通常称为移动站STA 根据 IEEE 802.11通信标准,每台STA由一个48比特MAC地址唯一确定 无线接入点 (WAP) 一端 :与一个有线局域网建立连接 另一端:在AP和STAs之间建立无线的收、发联系,实现通信 每个AP由一个服务集标识符(SSID)唯一确定
固定局域无线网示意图 信标发送:它定时对外公布其SSID及其他信息,为进入其覆盖范围内的STA与 其建立连接之用 Figure 6.1 信标发送:它定时对外公布其SSID及其他信息,为进入其覆盖范围内的STA与 其建立连接之用 信标扫描:等待信标发送,确定与哪个AP相连,然后对其发出连接请求,继 而建立与无线局域网的连接
特定无线局域网 不与任何固定的网络基础设施相连 不包含APs 允许不同的STA直接通信 若目标STA不再通信范围内,可根据情况使用若干其他STA作为中转站建立通信路径
802.11 概述 802.11是无线局域网通信标准,对应于 802.3 (Ethernet) 和802.5 (Token Ring)通信标准 它规定了无线局域网在MAC 子层和物理层的通信及安全保护机制 通用的子层协议: 802.11a: 5 Ghz 802.11b: 2.4 Ghz, 11Mbps, 室外35m, 室内110m, WEP 802.11g: 2.4 Ghz, 54Mbps 802.11i: WPA2 802.11n: 支持 MIMO
802局域网通信标准示意图 IEEE 802局域网通信标准示意图
无线通信的安全性弱点 无线通信更易于被侦听 无线信号比有线信号更容易受干扰,且在无线媒体中更容易注入无线信号 无线计算装置和嵌入式系统的计算功能和电池能源有限,不足以执行复杂运算 《计算机网络安全的理论与实践(第2版)》[美]王杰,高等教育出版社,2011年
无线通信的安全性弱点 窃听攻击 服务阻断攻击 消息重放攻击 STA-诈骗攻击 AP-诈骗攻击
第六章 内容概要 6.1 无线通信和802.11 无线局域网标准 6.2 有线等价隐私协议 6.3 Wi-Fi 访问保护协议 6.4 IEEE 802.11i/WPA2 6.5 蓝牙安全机制 6.6 无线网状网的安全性
WEP 概述 发布于1999, WEP是802.11b无线通信标准在数据链接层使用的安全协议 要求:同一无线局域网中所有的 STA’s和AP’s都共享同一个密钥 K (称之为 WEP 密钥) WEP 密钥: 40-bit, 104-bit (最通用的), 232-bit WLAN 设备可以共享多个 WEP密钥, 每个WEP密钥通过一个字节长度的ID唯一表示出来,这个ID成为密钥ID WEP 密钥常常有管理员选取 一旦选定, WEP密钥不可改变
移动设备认证和访问控制 WEP 运用挑战与响应的方式认证移动STA 为了和AP连网, STA 必须执行以下步骤: 挑战: AP收到请求后,即产生128位的随机数字符串cha 并且发送给 STA cha = a1a2…a16 (where each ai is an 8-bit string) 响应: STA产生一个24位初始向量 IV,并对 cha用 RC4序列加密算法和密钥 V||K加密,如下计算出 ri , res ,并将 res发送给 AP ri = ai ki, for i = 1,2,…,16 res = V || r1r2…r16 核实: AP 也对V||K 用RC4 产生相同的子钥序列,并计算 ai’=ri ki 同时核实是否有 ai’ = ai 其中, i = 1,2,…,16, 如果是,则STA 被认可为合法用户,并与其相连
数据完整性验证 目标: 为了确保分组信息没有被修改或没有被非法的STAs侵入 WEP 用 CRC-32 验证数据完整性,称之为完整性校验值ICV CRC-32是一种通用的检测传输错误的技术 CRC 的简单算法是用 运算和位移操作 可由芯片简单实现 获取一个k位的CRC值: M: n位的二进制字符串 P: k阶二元多项式, 其系数序列为一个 (k+1)位二进制字符串 用生成多项式(二进制数)除以P ,得到k位的 CRCk(M) 如果M||CRCk(M) 不能被P除, 意味着M 已被篡改
LLC 网帧加密 加密实施在MAC 层,将LLC 网帧加密,分为三个过程 M || CRC32(M) = m1m2….ml 令 M 为一个 LLC网帧: M || CRC32(M) = m1m2….ml 发送方产生一个24位初始向量 V, 用到RC4序列加密算法,以V||K为输入以产生一个8位的子钥序列: ci = mi ki 发送方将MAC 子层增加了载荷文件后发送给接收方 V || KeyID || c1c2…cl 通用加密形式如下: C = ((M || CRC32(M)) RC4(V||K)) 802.11b hdr IV keyID data ICV RC4 encrypted
WEP的安全缺陷 认证缺陷: 由于WEP采用的挑战-应答机制是一个简单的异或运算,因此很容易受到明文攻击 例如: 在AP和合法的STA之间恶意的拦截 (cha, res)信息对. 她计算ki=ci ri for i=1,2,…,16 她发送连接请求给 AP并等待其发出的挑战信息 cha’ 她用关键字和挑战信息运算,产生一个应答信息res,将此信息和截获的IV一起发给AP 基于WEP协议, AP 对V||K 应用 RC4 和 V||K, 产生子钥序列k1, k2, k3,… k16, 证实 ki res’ = cha’, 由此,AP认证了攻击者的非法设备,准予其连网
WEP的安全缺陷 完整性校验缺陷: CRC 弱点 CRC具有线性运算性质: CRC (x y) = CRC(x) CRC(y) 篡改数据 注入信息 碎片攻击
保密缺陷 消息干扰: Alice 发消息给 Bob: C = (M|| CRC32(M)) RC4(V||K) 攻击者拦截并修改了消息C 如下, 用另一个网帧Γ,计算得到C’ : C’ = (Γ || CRC32(Γ) C Bob接收到一个被篡改的数据 M’ = Γ M 和正确的CRC32(M’)的完整性校验值 ICV
V||(Θ|| CRC32(Θ)) RC4(V||K) 保密缺陷 注入消息: 假定 (M,C) 已知, V 是一个为产生C的初始向量 然后(M C)元算产生对M加密的子密钥序列, (子密钥产生于RC4(V||K)序列加密算法) 假定Θ 为任意一个攻击者试图注入网络的信息 注意 V 向量是经明文传输 攻击者计算 CRC32(Θ)并将其注入公式 V||(Θ|| CRC32(Θ)) RC4(V||K) 如果向量V已被使用过,那么以上消息会通过合法认证
安全缺陷 碎片攻击: 利用攻击 LLC 网帧首部,将信息注入网络中 攻击者阴谋: LLC 网帧首部8个字节为固定值 攻击者用XOR算法得到8个子密钥 攻击者阴谋: 攻击者将 64字节长的 LLC分割成 16个4字节长的片段 用 V 和前8个子钥k1, k2, …, k8 将4字节长的片段及4字节长的完整性校验值加密 将其封装在MAC包中注入网络
安全缺陷 保密缺陷 重复使用初始向量 弱密钥 一个 24位初始向量 IV ,有16,777,216个不同的子密钥序列 依据生日悖论,在处理1.24 √224 = 5102个网帧后,至少有一个随机产生的初始向量在之前出现过的概率会 > ½ 弱密钥 获得初始置换即可破译RC4密码 一些破解 WEP密码的软件工具即是根据FMS攻击原理设计的
第六章 概要 6.1 无线通信和802.11 无线局域网标准 6.2 有线等价隐私协议 6.3 Wi-Fi 访问保护协议 6.4 IEEE 802.11i/WPA2 6.5 蓝牙安全机制 6.6 无线网状网的安全性
WPA 概论 由Wi-Fi 联盟于 2003提出 基于早期the IEEE 802.11i 标准(第三稿)而制定 三个主要目的: 纠正所有已经发现的WEP中的安全弱点 确保现有WEP硬件也同样能支持WPA 确保WPA与802.11i标准兼容 采用 802.1X 协议认证用户设备 Temporal Key Integrity Protocol (TKIP): 用 Michael算法,一种特殊设计的完整性检查算法 用一种新的密钥结构防止旧信重放并使之无法从RC4 密钥获取公有初始向量
用户设备认证和存取控制 家庭小型办公组网 WPA: 企业 WPA: 为家庭或小型办公室 用WEP的预共享密钥 安全公用的无线局域网 用认证服务器 (AS) 不同的用户与AS使用不同的预共享密钥 预共享密钥以用户密码的形式出现 采用802.1X端口网络访问控制协议认证用户设备STAs
802.1X 概览 STA 向AP发连网请求. AP 向STA询问认证信息 STA 用其与AS共享的密钥给身份签名,向AP发送其身份和签名, AS 核实STA签名告知AP,AP即可根据结果决定是否准许其登录 STA 被准予连网
TKIP 密钥代 AS的第一代产生256位配对主密钥 (PMK) AS 用AS和AP之间的预共享密钥加密后将PMK发送给AP AP 用AP和STA之间的预共享密钥加密后发送PMK给STA 在每一个阶段,基于PMK和其他信息,TKIP产生4把128位的临时配对密钥 (PTK),用途如下: 数据加密密钥:数据加密用 数据MIC密钥:数据完整性校验 EAPoL密钥: 局域网扩充认证协议 EAPoL MIC密钥: EAPoL完整性校验
4 向握手 TKIP用4次握手完成一次交换临时密钥对 (PTK). AP 发送 ANonce 给STA STA 发送 SNonce 给 AP Message1 = (AMAC, Anonce, sn) STA 发送 SNonce 给 AP Message2 = (SMAC,Snonce,sn) || MIC(Snonce,sn) || RSNIESTA AP 发送应答给STA. Message3 = (AMAC, Anonce,sn+1) || MIC(Anonce,sn+1) || RSNIEAP STA 发送应答给AP Message4 = (SMAC,sn+1) || MIC(sn+1)
TKIP 信息完整性码 如果 F(l,r) 定义如下: 它用到Michael算法产生信息完整性代码(MIC) 用64位密钥生成一个 64位信息认证码 K: 将64位密钥K等分成两部分 K0和 K1 Michael 算法用密钥K产生MIC: (L1,R1) = (K0,K1), (Li+1,Ri+1) = F(Li XOR Mi, Ri) i = 1,2,…,n MIC = Ln+1Rn+1 其中F为 Feistel 替换函数 如果 F(l,r) 定义如下: r0 = r. l0 = l, r1 = r0 xor (l0 <<< 17) l1 = l0 xor32 r1, r2 = r1 xor XSWAP( l1 ), l2 = l1 xor32 r2, r3 = r2 xor ( l2 <<< 3), l3 = l2 xor32 r3, r4 = r3 xor ( l2 >>> 2), l4 = l3 xor32 r4, F(l, r) = (l4, r4 ) XSWAP(l) 将左边一半l和右边一半l互换 比CRC32更安全
Michael 算法的弱点 攻击者产生一个消息并且附上一个64位二进制字符串作为 MIC,试图在不知道密钥的情况下找到正确的 MIC 用不同的密码分析学,需要尝试攻击 229次 问题解决途径: STA 删除它的密钥并且解除与AP的连接如果在一秒钟内有两次失败的连接尝试
TKIP 密钥混合 为每一个帧用到密钥混合算法,产生一个前帧密钥. 用一个 48比特位的初始向量IV, 将其分割成3个16位的段 V2, V1, V0 密钥混合运算由两部分组成 pk1 = mix1 (at, V2 V1, kt ), pk2 = mix2 (pk1, V0, kt ), at表示发送端设备的48位 MAC地址,kt 是发送端设备的128位数据加密算法密钥, pk2 is a 128-bit per-frame key for RC4 用两个 S-匣子 S0 和S1 将一个16位字符串输入替换成另一个16位字符串作为输出 S(X) = S1(X1) S0(X0) , 其中 X = X1X0
WPA加密 发送端MAC地址 发送端密钥 MIC算法 网帧分割
WPA 安全强度和弱点 优越于 WEP 对DoS攻击显得脆弱: WPA计算M 的MIC并将其放入MAC网帧载荷,然后将M || ICV(M)分割成若干块 F1, F2, … 对每一个Fi, WPA 产生48位初始向量 IV,并产生WEP 密钥 初始向量IV以明文传输,攻击者可能截获一个MAC网帧,并将所包含的初始向量用一个更大值的初始向量取代 由于接收方不能正确的将其解码,只能被清除 由于此初始向量已被使用,导致后面以此值为初始向量的合法网帧也被清除