OWASP-Top2-(Cryptographic Failures 加密失败)
Cryptographic Failures 加密失败
以前称为敏感数据泄露,这是广泛的症状而不是根本原因。此处重新关注与密码学相关的漏洞,这些漏洞通常会导致敏感数据泄露或系统受损。
这类漏洞我目前理解的是采用的加密方式手段不是相对最安全的,比如可被彩虹表对应到的hash值等等
这是网上找到的
对于所有此类数据:
-
是否有任何数据以明文形式传输?这涉及 HTTP、SMTP 和 FTP 等协议。外部互联网流量是危险的。验证所有内部流量,例如,负载平衡器、Web 服务器或后端系统之间的流量。
-
默认情况下或在较旧的代码中是否使用任何旧的或弱的加密算法?
-
是否正在使用默认加密密钥、生成或重复使用弱加密密钥,或者是否缺少适当的密钥管理或轮换?
-
是否未强制执行加密,例如,是否缺少任何用户代理(浏览器)安全指令或标头?
-
用户代理(例如,应用程序、邮件客户端)是否不验证收到的服务器证书是否有效?
举个栗子:
密码数据库使用未加盐或简单的哈希来存储每个人的密码。文件上传缺陷允许攻击者检索密码数据库。所有未加盐的哈希值都可以通过预先计算的哈希值彩虹表公开。
这里涉及到加盐salt,意思是说在密文前面或者后面随机生成的一串字符串,然后和密文拼接到一起进行hash加密,这样可以对抗彩虹表。
是不是salt+hash后就绝对安全呢?
当然不是,安全只是相对的:
使用简单或快速散列函数生成的散列可能会被 GPU 破解,即使它们被加盐。
比如MD5和SHA1
说到这里就再来加深一下md5和hash算法
MD5和Hash的区别
首先,MD5与hash都是单向加密的算法,可以把一些信息进行单向加密成固定长度的散列码。(hash算法即常说的散列算法)
其次,MD5也是hash算法的一种,常见的hash算法还有SHA1,SHA2等
MD5也被称为信息摘要算法,由于其算法复杂不够,容易被暴力破解的。
SHA1算法也存在和MD5一样的问题。
还有SHA2、SHA256、SHA512等,这些算法的复杂度相对要高,但是依然是可被破解的只是破解成本被增加了,但是一些常用的文本信息(比如密码)的散列码被一些专业厂端记录下来了,还是容易被破解的,怎么办呢?
加盐就是比较好的方法.
这里想起一个社工的手段,在一些咖啡厅餐厅开放一个免费容易连接的钓鱼wifi,通过wireshark这些进行监听(应该有更好的伪装手段)
整个连接到wifi的人都将被监听,小一些的可以信息泄露,大一点访问一些购物网站,如果cookie能被利用就能获取到更多的信息,
甚至csrf等...
目前就了解到这,要说更深入的这方面漏洞还有些抽象。。。