美文网首页Fortify代码漏洞修复专题
无效的或有风险的加密算法

无效的或有风险的加密算法

作者: Franchen | 来源:发表于2019-06-12 16:33 被阅读0次

描述

使用无效的或有风险的加密算法会产生不必要的风险,导致敏感信息暴露。

案例

DES

问题

  • 对称加密算法问题
    • Q1:如使用了过时的加密算法(如RC4/DES/3DES)
    • Q2:设置了不安全的加密模式(ECB)
    • Q3:不正确地处理初始向量(IV)

分析

Q1

DES:数据加密标准是IBM提出的,第一个基于Lucifer算法的加密技术。作为第一个加密标准,自然会带有些许瑕疵漏洞使其不是特别的安全。

3DES:三重DES是DES的加强版,提供了DES的三重安全性。他和DES使用同样的算法,只是做了三次加密来提升安全级别。

AES:高级加密标准是由美国国家标准技术研究院(NIST)提出的,旨在取代DES加密技术。

Blowfish:由Bruce Schneier发明的一种在世界范围被广泛使用的加密方式。Blowfish使用16到448位不同长度的密钥对数据进行16次加密。

性能对比:

算法 位数 备注 性能 资源
RC4 40 有风险 - -
DES 56 有风险 22.5MB/s
3DES 112/168 中等 21.3MB/s
AES 128/192/256 符合要求 51.2MB/s
Blowfish 256-448 符合要求 64MB/s

Q2

ECB不需要初始向量(IV),因此在于输入和输出存在非常明显的关联,攻击者可以从输出轻松地猜出输入数据。


Q3

为了方便,大多数开发者使用一个固定的初始向量(IV)用于加解密,这样使得相同的输入会产生相同的输出。根据历史经验,攻击者可以截获输出,然后猜出输入的含义,当再次捕捉到相同的输出后,即可破解出输入。

处理

采用AES(128/192/256位)加密算法 [Java代码参考]

采用Blowfish加密算法[Java代码参考]

相关文章

网友评论

    本文标题:无效的或有风险的加密算法

    本文链接:https://www.haomeiwen.com/subject/skelfctx.html