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

Figure 1. CTR encryption procedure
CBC-MAC
全名是Cipher Block Chaining Message Authentication Code,就如同其名,主要是针对message block作运算,最后输出message authentication code,达到验证message的效果(因为CTR并没有提供authentication的机制)。
CBC-MAC加解密过程主要是把Message block经由block cipher algorithm加密后,再把输出给下一个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 counter value是可以被预测到的。在[4]中,也说明了任何人都可以计算出Address 2、priority field、Packet Number还有payload的长度,此攻击可以用在任何的cipher text上(包含没有statistically defective)。
其概念主要是以空间换取时间,attacker在攻击secret key前会先建一个database。
TMTO成功率大小取决于attack是否获得大量有用的数据,在CCMP中,所有的MPDU payload size不可大于2296 bytes,若超过MAX size MSDU会将其切割成数个MPDU来传送,就以2296 bytes payload size来看,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-MAC pairs还有2^(n-m)chosen text-MAC pairs (n为block size),以CCMP所使用的block128-bit来计算,至少需2^64.5个已知的text-MAC pairs还有2^64 chosen text-MAC pairs,所花的time complexity可能不亚于brute-force的方法,再加上CTR有对最后的MIC加密,所以理论上可行,但是事实上不太实际。
3. Side channel attack
目前AES攻击手法中,比较有效的大概就是Side channel attack,不过此种攻击手法较不general,要用特定的方法针对特定的安装系统,限制较多(像有些需要在系统上有权限执行[8],压缩的metadata不能加密[7]),我觉得跟brute-force attack比起来,所花的cost不会好多少。
4. Nonce重建
CCMP的nonce依序是由三个字段所组成: priority、address(A2)、packet number。Priority 字段长度为8-bit,目前保持为零保留到以后来标示frame的优先权。A2长度为48-bit,是从MAC address得到,唯一变动的字段为最后一个packet number,但此数值依序增加1,因此可已经观察一定数量的封包后,对其CCMP header的packet number进行分析,就能得到Initial packet number,并且得到packet number现在的值。因此,nonce的值不必经过解密集可得到,安全性下降[5],如Figure 3.所示。

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

Figure 4. Reconstruction of Initial counter
Reference:
[1] “802.11i- Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer specifications”. standards.ieee.org. http://standards.ieee.org/getieee802/download/802.11i-2004.pdf. Retrieved on 2008-02-08.
[2] The Rijndael algorithm Jamil, T.; Potentials, IEEE Volume 23, Issue 2, Apr-May 2004 Page(s):36 – 38
[3] David A. McGrew, “Counter Mode Security: Analysis and Recommendations”, Cisco Systems, November, 2002
[4] Vulnerabilities of IEEE 802.11i Wireless LAN CCMP Protocol M. Junaid , Dr Muid Mufti, M.Umar Ilyas TRANSACTIONS ON ENGINEERING, COMPUTING AND TECHNOLOGY V11 FEBRUARY 2006 ISSN 1305-5313
[5] Vulnerabilities of IEEE 802.11i Wireless LAN CCMP Protocol M. Junaid , Dr Muid Mufti, M.Umar Ilyas TRANSACTIONS ON ENGINEERING, COMPUTING AND TECHNOLOGY V11 FEBRUARY 2006 ISSN 1305-5313
[6] Chosen-text attack on CBC-MAC Knudsen, L.R.; Electronics Letters Volume 33, Issue 1, 2 Jan. 1997 Page(s):48 – 49
[7] Attacking and repairing the winZip encryption scheme Conference on Computer and Communications Security archive Proceedings of the 11th ACM conference on Computer and communications security Washington DC, USA Pages: 72 – 81 Year of Publication: 2004 Tadayoshi Kohno
[8] Cache attacks and countermeasures: the case of AES DA Osvik, A Shamir, E Tromer – Lecture Notes in Computer Science, 2006
来源于:香港网站