前言:
本期技术分享,小星将与大家就“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小时接受客户需求,及时提供标准一致的安全服务。
作为一家以技术先导的企业,星云博创始终坚持在网络安全、数据安全、态势感知、等级保护、合规性安全管理等领域进行技术创新,利用安全分析、大数据分析、人工智能等技术,对网络空间安全要素、安全风险进行深度挖掘与关联分析,构建了多层次的纵深防御体系,持续推出态势感知平台、静态脱敏系统、终端安全监测系统等一系列优秀的安全产品和行业解决方案,广泛应用于政府、运营商、医疗、教育、电力、能源等多个领域,让风险无所遁形。