加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 湛江站长网 (https://www.0759zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

对称加密与攻击案例分析

发布时间:2019-06-12 17:22:18 所属栏目:建站 来源:有价值炮灰
导读:副标题#e# 本文主要介绍常见的对称加密算法和它们的原理,然后分析一些实际存在的密码学攻击案例,包括流加密密钥重用漏洞、ECB块重排攻击以及CBC的Padding Oracle攻击等。 一、对称加密 当今我们所使用的加密算法,大致可以分为两类,即对称加密与非对称加

然后修改密文,将前两个块(8字节)替换,然后使用相同的密钥进行解密:

  1. $ xxd admin1.enc 
  2. 00000000: c61e 1284 1a6e 6853 0293 07cd 88f3 026e  .....nhS.......n 
  3. 00000010: e0b2 7169 3ee4 0b9a                      ..qi>... 
  4. $ openssl des-ecb -nosalt -d -in admin1.enc 
  5. usernameadmin=0;=pan 

可以看到,该攻击方法确实是对ECB块加密算法有效的。

类似的利用方式还有在能够解密的情况下,将其他密文的对应块替换到自己的密文块中,从而获取其他密文块的明文数据。比如上述例子如果可以通过cookie获取用户名,那么可以将其他密文块放到用户名部分从而获取其他加密的信息。

该攻击和其他类似的攻击其实有一个共同点,我们无法获取和猜解原始数据,但可以通过修改密文数据并让服务器去成功解密。因此应对此攻击的方法就很明显了,即在加密后再添加MAC校验。

注意这里说的是先加密后MAC,如果顺序反了,那在处理数据时就要先解密再校验MAC,这有可能会导致一系列安全问题,比如下面将提到的密文填塞(Padding Oracle)攻击。

3. Padding Oracle Attack

在介绍该攻击之前,可以先回顾一下关于填充的知识。在PKCS#7系统中,我们可以通过最后一个块的最后一个字节得知填充的大小以及校验填充是否合法。

密文填塞(Padding Oracle Attack)攻击通常出现在CBC块加密模式以及PKCS#7填充的情况下。如果服务器在解密数据时对于填充合法的密文和填充不合法的密文有不同的返回,我们就能利用这种先验知识(Oracle)来填塞数据。

(编辑:PHP编程网 - 湛江站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!