风也温柔

计算机科学知识库

md5解密算法java 【缺陷周话】第 30 期:不安全的哈希算法

  md5解密算法java_md5算法可以被解密吗_python md5解密算法

  聚焦源代码安全,网罗国内外最新资讯!

  *声明:《缺陷周话》栏目系列文章由360代码卫士团队原创出品。未经许可,禁止转载。

  代码审计是使用静态分析发现源代码中安全缺陷的方法,辅助开发或测试人员在软件上线前较为全面地了解安全问题,防患于未然,因此一直以来都是学术界和产业界研究的热点,并已成为安全开发生命周期SDL和等保障体系的重要技术手段。

  360代码卫士团队基于自主研发的国内首款源代码安全检测商用工具,以及十余年漏洞技术研究的积累,推出“缺陷周话”系列栏目。每周针对CWE、OWASP等标准中的一类缺陷,结合实例和工具使用进行详细介绍,旨在为广大开发和安全人员提供代码审计的基础性标准化教程。

  缺陷周话• 第30期

  不安全的哈希算法

  1、不安全的哈希算法

  哈希算法是使用哈希函数将任意长度的消息映射成为一个长度较短且长度固定的值,这个经过映射的值为哈希值。它是一种单向加密体制,即一个从明文到密文的不可逆映射,只有加密过程md5解密算法javamd5解密算法java,没有解密过程。而不安全的哈希算法则可以逆向推出明文。在密码学中,哈希算法主要用于消息摘要和签名来对整个消息的完整性进行校验md5解密算法java 【缺陷周话】第 30 期:不安全的哈希算法,所以需要哈希算法无法推导输入的原始值,这是哈希算法安全性的基础。目前常用的哈希算法包括MD4、MD5、SHA等。本篇文章以JAVA语言源代码为例,分析不安全的哈希算法缺陷产生的原因以及修复方法。详细请参见::m()。

  2、 不安全的哈希算法的危害

  使用不安全的哈希算法形成数字签名来校验数据源的身份会影响数据的完整性和机密性,导致校验方式失效。

  从2018年1月至2019年4月,CVE中共有15条漏洞信息与其相关。部分漏洞如下:

  CVE漏洞概况

  CVE-2019-1828

  320(1.4.2.22之前的固件版本)和RV325双千兆路由器允许未经身份验证的远程攻击者在基于Web管理界面中的漏洞访问管理凭据。存在此漏洞,因为受影响的设备对用户凭据使用弱加密算法。攻击者可以通过中间人攻击和解密截获的凭据利用此漏洞以管理员权限访问受影响的设备。

  CVE-2018-6619

  nel(EHCP)v0.37.12.b通过利用无盐的弱哈希算法,使攻击者更容易破解数据库密码。

  CVE-2018-15326

  3C00,具有弱加密算法安全漏洞。支持使用不安全加密算法进行SSL/TLS协议协商。在通信中使用了不安全的加密算法,未经身份验证的远程攻击者可以利用此漏洞破解加密数据并导致信息泄露。

  3、示例代码

  示例源于 (),源文件名:.java。

  3.1缺陷代码

  md5算法可以被解密吗_md5解密算法java_python md5解密算法

  上述示例代码操作是将请求参数转换为哈希值的操作,在第45行获取请求参数 。在第53行获取一个MD5转换器,在第55行~70行将获取的请求参数值转换为字节数组,第71行将字节数组作为参数传入MD5转换器,第73行获得转换后的字节数组。由于MD5是已经公认已破解的哈希算法,使用该哈希算法来处理数据会损害数据的机密性,导致信息泄露。

  使用360代码卫士对上述示例代码进行检测,可以检出“不安全的哈希算法”缺陷,显示等级为低。在代码行第53行报出缺陷,如图1所示:

  md5算法可以被解密吗_python md5解密算法_md5解密算法java

  图1:不安全的哈希算法的检测示例

  3.2 修复代码

  python md5解密算法_md5算法可以被解密吗_md5解密算法java

  在上述修复代码中,第54行使用SHA-512算法取代MD5算法保证数据完整性和安全性。

  使用360代码卫士对修复后的代码进行检测,可以看到已不存在“不安全的哈希算法”缺陷。如图2:

  python md5解密算法_md5算法可以被解密吗_md5解密算法java

  图2:修复后检测结果

  4、 如何避免不安全的哈希算法

  在安全性要求较高的系统中,应采用散列值>=224比特的SHA系列算法(如SHA-224、SHA-256、SHA-384和SHA-512)来保证敏感数据的完整性。

  关联阅读

  文章来源:http://mp.weixin.qq.com/s?src=11×tamp=1677057996&ver=4366&signature=qUYiQFWnq6d9FvDZoYtkaJ8sbIU8xfLxFYfRgDwSFt4LX*UEcwDntPqqKomZ8jrTOBfyBevOZAgHrwv6IpeZ7TJVHHIIPVGGyEN1oEhkIkT-32I2g2jfSDu9jWg9R2BV&new=1