前言:
本期技術分享,小星將與大家就“cbc反轉攻擊”進行解析,向大家展示加密過程、解密過程以及CBC的攻擊危害。
(一)術語解析
CBC全稱為Cipher Block Chaining模式(密文分組鏈接模式),“分組“是指加密和解密過程都以分組的形式進行。每?個分組大小為128bits(16字節),如果明?的長度不是16字節的整數倍,需要對最后?個分組進行填充(padding),使得最后?個分組的長度為16字節。“鏈接”是指密文分組像鏈條?樣相互連接在?起。
(二)加密過程
1. CBC模式的加密:
加密時,第?個明文分組,需要通過和IV(初始化向量)進行異或處理之后,才可以進行加密處理;每?個明文分組(除了第?個明文分組以外),加密之前都需要和前?個密文分組進行異或處理后,才可以進行加密處理。
2. 加密過程詳解:
(1)將明文的第?個分組與IV進行異或,送?加密模塊進行加密,得到第?個密文分組。
(2)從第?個明文分組開始,將明文分組與前?個密文分組進行異或處理。
(3)將第2步得到的結果送?加密模塊進行加密。
(4)拼接每?個密文分組以形成密文。
因此,這種模式最重要的特點就是——通過前?部分的密文來生成后?部分的密文。
(三)解密過程
1. 前提條件設置:
AES算法選取16字節,DES算法選取8字節。
2. 解密過程詳解:
其實只要理解了加密過程,反過來看解密過程就顯得容易了。與加密過程一樣,利用前?塊的密文參與到下一塊的密文還原過程中。
(1)從密文中提取IV,并將密文分組。
(2)使用密鑰對第一組的密文解密,將其與IV進文xor后獲得明文。
(3)使用密鑰對第二組密文解密,并與第2步中的密文進行xor以獲得明文。
(4)重復第2、3步 ,直到獲得最后?組密文。
(三)CBC的攻擊危害
CBC的攻擊危害是指在不知道Key(秘鑰)的情況下篡改明文。通過上面的錯誤傳播我們可以得知,解密時若修改了前?個密文分組,該分組是會對后?個解密后的明文分組產生影響。
備注:這里的修改是指可以將前?個密文中的任意比特進行修改(0、1進行翻轉)。
此處,我們可以發現:前?塊的Ciphertext是用來產生下?塊的明文。如果我們改變了前?塊Ciphertext中的任意?個字節,并與下?塊解密后的密文進行xor,我們將會得到?個不同的明文。重要的是,這個明文是可以由我們所控制。有鑒于此,我們可以選擇欺騙服務端或者繞過過濾器進行翻轉。
因為涉及到異或,在具體翻轉前,我們簡要介紹異或的概念。
1 XOR 0=1
0 XOR 1=1
0 XOR 0=0
1 XOR 1=1
0 異或任何值 都為其本身
翻轉過程演示:
(1)當我們的?個值C是由A和B異或得到時:C = A XOR B。
(2)我們能夠顯然得知:A XOR B XOR C =0。
(3)當我們得知B和C的值后,若想要得到A的值也會變得相對簡單了。此時,A = B XOR C。
如上顯示,A XOR B XOR C等于0。憑借此公式,我們就可以在XOR運算的末尾處,設置自己的值后進行改變。
(四)了解小星,了解星云博創
星云博創科技有限公司(簡稱“星云博創”)成立于2016年,是國內新興的網絡安全產品、可信安全管理平臺、專業安全服務與解決方案的綜合提供商。星云博創設北京為北方總部,廣州為南方總部,并于成都、合肥、南昌、貴州、武漢、太原、哈爾濱等多個城市設立分支機構。同時,星云博創為不斷完善客戶服務體系和應急響應體系,在全國10余個省、市、自治區、直轄市建立三級服務支持中心,7×24小時接受客戶需求,及時提供標準一致的安全服務。
作為一家以技術先導的企業,星云博創始終堅持在網絡安全、數據安全、態勢感知、等級保護、合規性安全管理等領域進行技術創新,利用安全分析、大數據分析、人工智能等技術,對網絡空間安全要素、安全風險進行深度挖掘與關聯分析,構建了多層次的縱深防御體系,持續推出態勢感知平臺、靜態脫敏系統、終端安全監測系統等一系列優秀的安全產品和行業解決方案,廣泛應用于政府、運營商、醫療、教育、電力、能源等多個領域,讓風險無所遁形。