ubnt解决方案
查看: 8146|回复: 8

[分享] CCMP无线网络安全

[复制链接]

191

回帖

8045

积分

37 小时

在线时间

中校

注册时间
2009-7-16
金币
7816 个
威望
0 个
荣誉
0 个

尚未签到

发表于 2009-8-14 18:29 |显示全部楼层
1. CCMP 简介CCMP主要是两个算法所组合而成的,分别是CTR mode以及CBC-MAC mode。CTRmode为加密算法,CBC-MAC用于讯息完整性的运算。在IEEE 802.11i 规格书中,CCMP为defaultmode,在所谓的RSN network中,扮演相当重要的角色[1]。以下将分别简介CTR mode以及CBC-MAC。
CTR
全名是Advanced Encryption Standard (AES) in Counter Mode,在CCMP使用的AES是based on Rijndael Algorithm所发展出的算法[2],主要是经过NIST修改并且认证,不再有TKIPprotocol支持WEP系统的既有攻击,所以在安全强度上,有一定的水平。Figure 1. 为CTR加密的流程图。

Figure 1. CTR encryption procedure
CBC-MAC
全名是Cipher Block Chaining Message AuthenticationCode,就如同其名,主要是针对message block作运算,最后输出message authenticationcode,达到验证message的效果(因为CTR并没有提供authentication的机制)。
CBC-MAC加解密过程主要是把Message block经由block cipheralgorithm加密后,再把输出给下一个block当input使用。一开始第一个block没有input所以IV用0代入。在CCMP里会把低位的64-bit无条件的去掉,只取高位64-bit当做MIC。Figure 2. 为CBC-MAC的流程图。

Figure 2. CBC-MAC procedure

2. CCMP潜在的危险1. TMTO Pre-computation Attack
[3]中已经证明了CCMP的initial countervalue是可以被预测到的。在[4]中,也说明了任何人都可以计算出Address 2、priority field、PacketNumber还有payload的长度,此攻击可以用在任何的cipher text上(包含没有statistically defective)。
其概念主要是以空间换取时间,attacker在攻击secret key前会先建一个database。
TMTO成功率大小取决于attack是否获得大量有用的数据,在CCMP中,所有的MPDU payload size不可大于2296bytes,若超过MAX size MSDU会将其切割成数个MPDU来传送,就以2296 bytes payloadsize来看,CTR里的counter在同个session中只是很简单的在递加,加上没有限制一个session中可以传几个MPDU,所以有许多可用的资料来进行TMTO attack,简而言之,若counter value是可以被预测到的话,就有机会发生TMTO attack。
目前有许多研究讨论如何防止CCMP遭受TMTO attack,在[5]中,提出Nonce construction改善的有效方法(如random nonce、random priority field等等)。
2. Chosen-Text Attack
以[6]提出的方法来说,chosen-text最少需要2^(n+1/2)个已知的text-MACpairs还有2^(n-m)chosen text-MAC pairs (n为blocksize),以CCMP所使用的block128-bit来计算,至少需2^64.5个已知的text-MAC pairs还有2^64 chosentext-MAC pairs,所花的timecomplexity可能不亚于brute-force的方法,再加上CTR有对最后的MIC加密,所以理论上可行,但是事实上不太实际。
3. Side channel attack
目前AES攻击手法中,比较有效的大概就是Side channelattack,不过此种攻击手法较不general,要用特定的方法针对特定的安装系统,限制较多(像有些需要在系统上有权限执行[8],压缩的metadata不能加密[7]),我觉得跟brute-force attack比起来,所花的cost不会好多少。
4. Nonce重建
CCMP的nonce依序是由三个字段所组成: priority、address(A2)、packet number。Priority字段长度为8-bit,目前保持为零保留到以后来标示frame的优先权。A2长度为48-bit,是从MACaddress得到,唯一变动的字段为最后一个packet number,但此数值依序增加1,因此可已经观察一定数量的封包后,对其CCMPheader的packet number进行分析,就能得到Initial packet number,并且得到packetnumber现在的值。因此,nonce的值不必经过解密集可得到,安全性下降[5],如Figure 3.所示。

Figure 3. Nonce reconstruction scheme
5. Initial Conter重建
在802.11i中,无论是payload或是MIC都是使用countermode来进行加密,加密的方法是将明文经过加密后的counter blockvalue进行XOR,所得即为密文。同理,若是将密文和加密后的counter block value进行XOR就可得到明文。
在CCMP中,对counter block value进行加密的方加密法为AES,而counter blockvalue是由initial counter block value开始计算,经过一个messageblock即加1,因此只需要求得initial counter block value即可得到现在counter blockvalue,并和cipher text进行XOR求得plaintext。
而counter block value是由三个数据所组成:flag、nonce、length ofpayload。Flag字段总共为8bits,前两个bit为保留值,目前还没定义,可为任意值;中间三个bit要保持为零;而最后三个bit用来记录第三栏数据length ofpayload的长度(byte),换句话说,若是用q个byte去记录length ofpayload,则flag的最后三个bit将设为[q-1]3。Nonce字段可利用前一项所叙述的缺点,不需要对内文作解密即可得到。然而只有最后一栏length ofpayload的长度不固定,由flag的最后三个bit所决定,是用二进制表示法来记录整个封包payload的长度(byte)。
在IEEE 802.11 MPDUs中,payload的最大长度为2312 bytes (2296 Data + 8 MIC + 8CCMP Header),若是数据大于2296bytes,则数据将被分割放在不同的封包中,因此在有数个封包需要传送时,第一封包的payload长度将会是2296bytes。因此initial counter block value的flag、nonce、length ofpayload都可以被计算出来[5],如Figure 4.所示。

Figure 4. Reconstruction of Initial counter

原文在这里http://www.expren.com/blog/wifi/ ... s-network-security/

105

回帖

464

积分

53 小时

在线时间

少尉

注册时间
2009-8-4
金币
347 个
威望
1 个
荣誉
0 个
累计签到:3 天
连续签到:0 天
[LV.20]漫游旅程
发表于 2009-8-15 00:52 |显示全部楼层
坐下第一,试试:victory:
回复

使用道具 举报

3

回帖

5

积分

1 小时

在线时间

预备兵

注册时间
2009-8-14
金币
2 个
威望
0 个
荣誉
0 个

尚未签到

发表于 2009-8-15 00:59 |显示全部楼层
ggggggggggggggg
回复

使用道具 举报

112

回帖

204

积分

17 小时

在线时间

少尉

注册时间
2009-4-20
金币
88 个
威望
0 个
荣誉
0 个

尚未签到

发表于 2009-11-8 20:25 |显示全部楼层
要钱的就算了
回复

使用道具 举报

62

回帖

920

积分

17 小时

在线时间

中尉

注册时间
2009-6-8
金币
852 个
威望
0 个
荣誉
0 个

尚未签到

发表于 2009-11-13 01:23 |显示全部楼层
这个也要钱啊?
回复

使用道具 举报

137

回帖

2823

积分

24 小时

在线时间

高级工程师

高级工程师

注册时间
2004-7-7
金币
2636 个
威望
3 个
荣誉
0 个

尚未签到

发表于 2009-11-25 18:21 |显示全部楼层
1. CCMP 简介CCMP主要是两个算法所组合而成的,分别是CTR mode以及CBC-MAC mode。CTRmode为加密算法,CBC-MAC用于讯息完整性的运算。在IEEE 802.11i 规格书中,CCMP为defaultmode,在所谓的RSN network中,扮演相当重要的角色[1]。以下将分别简介CTR mode以及CBC-MAC。
CTR
全名是Advanced Encryption Standard (AES) in Counter Mode,在CCMP使用的AES是based on Rijndael Algorithm所发展出的算法[2],主要是经过NIST修改并且认证,不再有TKIPprotocol支持WEP系统的既有攻击,所以在安全强度上,有一定的水平。Figure 1. 为CTR加密的流程图。

Figure 1. CTR encryption procedure
CBC-MAC
全名是Cipher Block Chaining Message AuthenticationCode,就如同其名,主要是针对message block作运算,最后输出message authenticationcode,达到验证message的效果(因为CTR并没有提供authentication的机制)。
CBC-MAC加解密过程主要是把Message block经由block cipheralgorithm加密后,再把输出给下一个block当input使用。一开始第一个block没有input所以IV用0代入。在CCMP里会把低位的64-bit无条件的去掉,只取高位64-bit当做MIC。Figure 2. 为CBC-MAC的流程图。

Figure 2. CBC-MAC procedure

2. CCMP潜在的危险1. TMTO Pre-computation Attack
[3]中已经证明了CCMP的initial countervalue是可以被预测到的。在[4]中,也说明了任何人都可以计算出Address 2、priority field、PacketNumber还有payload的长度,此攻击可以用在任何的cipher text上(包含没有statistically defective)。
其概念主要是以空间换取时间,attacker在攻击secret key前会先建一个database。
TMTO成功率大小取决于attack是否获得大量有用的数据,在CCMP中,所有的MPDU payload size不可大于2296bytes,若超过MAX size MSDU会将其切割成数个MPDU来传送,就以2296 bytes payloadsize来看,CTR里的counter在同个session中只是很简单的在递加,加上没有限制一个session中可以传几个MPDU,所以有许多可用的资料来进行TMTO attack,简而言之,若counter value是可以被预测到的话,就有机会发生TMTO attack。
目前有许多研究讨论如何防止CCMP遭受TMTO attack,在[5]中,提出Nonce construction改善的有效方法(如random nonce、random priority field等等)。
2. Chosen-Text Attack
以[6]提出的方法来说,chosen-text最少需要2^(n+1/2)个已知的text-MACpairs还有2^(n-m)chosen text-MAC pairs (n为blocksize),以CCMP所使用的block128-bit来计算,至少需2^64.5个已知的text-MAC pairs还有2^64 chosentext-MAC pairs,所花的timecomplexity可能不亚于brute-force的方法,再加上CTR有对最后的MIC加密,所以理论上可行,但是事实上不太实际。
3. Side channel attack
目前AES攻击手法中,比较有效的大概就是Side channelattack,不过此种攻击手法较不general,要用特定的方法针对特定的安装系统,限制较多(像有些需要在系统上有权限执行[8],压缩的metadata不能加密[7]),我觉得跟brute-force attack比起来,所花的cost不会好多少。
4. Nonce重建
CCMP的nonce依序是由三个字段所组成: priority、address(A2)、packet number。Priority字段长度为8-bit,目前保持为零保留到以后来标示frame的优先权。A2长度为48-bit,是从MACaddress得到,唯一变动的字段为最后一个packet number,但此数值依序增加1,因此可已经观察一定数量的封包后,对其CCMPheader的packet number进行分析,就能得到Initial packet number,并且得到packetnumber现在的值。因此,nonce的值不必经过解密集可得到,安全性下降[5],如Figure 3.所示。

Figure 3. Nonce reconstruction scheme
5. Initial Conter重建
在802.11i中,无论是payload或是MIC都是使用countermode来进行加密,加密的方法是将明文经过加密后的counter blockvalue进行XOR,所得即为密文。同理,若是将密文和加密后的counter block value进行XOR就可得到明文。
在CCMP中,对counter block value进行加密的方加密法为AES,而counter blockvalue是由initial counter block value开始计算,经过一个messageblock即加1,因此只需要求得initial counter block value即可得到现在counter blockvalue,并和cipher text进行XOR求得plaintext。
而counter block value是由三个数据所组成:flag、nonce、length ofpayload。Flag字段总共为8bits,前两个bit为保留值,目前还没定义,可为任意值;中间三个bit要保持为零;而最后三个bit用来记录第三栏数据length ofpayload的长度(byte),换句话说,若是用q个byte去记录length ofpayload,则flag的最后三个bit将设为[q-1]3。Nonce字段可利用前一项所叙述的缺点,不需要对内文作解密即可得到。然而只有最后一栏length ofpayload的长度不固定,由flag的最后三个bit所决定,是用二进制表示法来记录整个封包payload的长度(byte)。
在IEEE 802.11 MPDUs中,payload的最大长度为2312 bytes (2296 Data + 8 MIC + 8CCMP Header),若是数据大于2296bytes,则数据将被分割放在不同的封包中,因此在有数个封包需要传送时,第一封包的payload长度将会是2296bytes。因此initial counter block value的flag、nonce、length ofpayload都可以被计算出来[5],如Figure 4.所示。

Figure 4. Reconstruction of Initial counter
转载请注明出自<中国无线门户> http://www.anywlan.com/,本贴地址:http://www.anywlan.com/thread-36180-1-1.html
联系人:王先生  手  机:13816401500   QQ:1282586541
神脑EnGenius无线覆盖 无线监控 无线点餐
http://www.engeniustec.com
回复

使用道具 举报

364

回帖

382

积分

50 小时

在线时间

少尉

注册时间
2010-2-1
金币
11 个
威望
0 个
荣誉
0 个

尚未签到

发表于 2010-2-13 13:46 |显示全部楼层
dddddddddddddddddddddddddddddddddddd
回复

使用道具 举报

350

回帖

661

积分

119 小时

在线时间

中尉

注册时间
2009-8-1
金币
240 个
威望
2 个
荣誉
0 个
累计签到:1 天
连续签到:0 天
[LV.20]漫游旅程
发表于 2010-7-18 14:55 |显示全部楼层
:handshake看看,呵呵~
回复

使用道具 举报

9

回帖

538

积分

73 小时

在线时间

中尉

注册时间
2009-11-2
金币
501 个
威望
2 个
荣誉
1 个
累计签到:56 天
连续签到:0 天
[LV.100]试剑无线
发表于 2014-3-26 23:13 |显示全部楼层
额额额,网页打不开,,,,
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册 微信登录

本版积分规则

Archiver | 手机版 | 无线门户 ( 粤ICP备11076993号|粤公网安备44010602008359号 ) |网站地图

GMT+8, 2025-10-10 00:57

返回顶部 返回列表