代码缺陷解读:加密强度不足缺陷漏洞及使用过时方法缺陷

本文旨在科普软件安全相关知识,帮助初级网络安全人员了解代码缺陷,助力企业有效防范软件安全漏洞,提升网络安全防护能力。

▲ 加密强度不足缺陷漏洞

一、什么是加密强度不足?

大多数密码系统都需要足够的密钥大小来抵御暴力攻击。软件使用理论上合理的加密方案存储或传输敏感数据,但强度不足以达到所需的保护级别。

RSA是目前最有影响力和最常用的公钥加密算法,它能够抵抗到目前为止已知的绝大多数密码攻击,已被ISO推荐为公钥数据加密标准。只有短的RSA钥匙才可能被强力方式解破。只要当钥匙的长度足够长时,用RSA加密的信息实际上是难以被解破。

RSA的安全性依赖于大数的因子分解,但并没有从理论上证明破译RSA的难度与大数分解难度等价,而且密码学界多数人士倾向于因子分解不是NP问题。

人们已能分解140多个十进制位的大素数,这就要求使用更长的密钥,带来的问题是速度减慢;另外,人们正在积极寻找攻击RSA的方法,如选择密文攻击,一般攻击者是将某一信息作一下伪装(Blind),让拥有私钥的实体签署。然后,经过计算可得到它所想要的信息。

二、加密强度不足缺陷的构成条件有哪些?

软件使用强度不足以提供所需的保护级别的加密方案。

三、加密强度不足缺陷会造成哪些后果?

加密强度不足的程序可能会受到暴力攻击,如果暴力攻击成功,恶意攻击者则进入系统进行破坏。

四、加密强度不足缺陷的防范和修补方法有哪些?

使用本领域专家目前认为比较强的加密方案。例如使用RSA算法,密钥越长,它就越难破解。目前被破解的最长RSA密钥是768个二进制位。也就是说,长度超过768位的密钥,还无法破解。因此,1024位的RSA密钥基本安全,2048位的密钥极其安全,建议使用2048位的密钥。

五、加密强度不足缺陷样例:

用Wukong软件检测上述程序代码,则可以发现代码中存在着“加密强度不足” 导致的代码缺陷,如下图:

加密强度不足缺陷在CWE中被编号为CWE-326:InadequateEncryption Strength

 

▲ 使用过时方法缺陷漏洞

一、什么是使用过时方法缺陷?

代码使用了不推荐使用的或已经过时的方法,这表明该代码没有得到积极地审查或维护。

随着编程语言的发展,由于以下原因,方法有时会过时:

1、语言进步

2、更深入理解如何安全有效地执行操作

3、改变了某些特定操作的规范/惯例

通常,被删除的方法会被更新的对等方法所取代,后者以某种不同的方式执行同一任务。

二、使用过时方法缺陷的构成条件有哪些?

代码使用了不推荐使用的或已经过时的方法。

三、使用过时方法缺陷会造成哪些后果?

使用过时方法可能导致程序质量下降。

四、使用过时方法缺陷的防范和修补方法有哪些?

请参阅过时方法的文档,以确定为什么不推荐使用该过时的方法,并了解实现相同功能的替代方法。

五、使用过时方法缺陷样例(Date类中的大部分方法都已经被Calendar类中的方法所取代):

用Wukong软件检测上述程序代码,则可以发现代码中存在着“使用过时方法” 导致的代码缺陷,如下图(Date类中的大部分方法都已经被Calendar类中的方法所取代)

使用过时方法缺陷在CWE中被编号为CWE-477:Useof Obsolete Function

posted @ 2021-06-10 14:13  中科天齐软件原生安全  阅读(629)  评论(0编辑  收藏  举报