人人开源 密码校验
密码学的目的是使信息保密,而开源的目的是使代码公开。因此,我们不应该对密码学算法开源吗?
多个人多次问过我,所以我认为这是一个值得解决的问题。 许多开发人员似乎对加密和安全系统(特定于应用程序的加密系统实现)的印象是保密的,如果他们的详细信息不公开。
这离事实还远。
根据Kerckhoffs的原理 ,也称为香农准则:
敌人知道这个系统。 人们应该在这样的假设下设计系统:敌人会立即完全熟悉它们。 #安全#开源#隐私
为什么这是一个好的规则,有几个原因,让我们仔细研究一下。
1.混淆不是加密
如果开发人员在假定攻击者不了解其代码详细信息的情况下进行操作,则可能会诱使他们尝试建立依赖于此的安全性。
例如,假设敌人会认为数据已加密,或者无法猜测其编码方式 ,那么他们可能会以混乱的方式对数据进行编码而不是加密数据 。
坏。
当需要保密时,请务必加密。
2.你可能吸
如果您使用自己的加密货币,则可能会忽略开放源代码版本中已解决的漏洞。 顺便说一句, 我并不是说您特别想写加密货币 ,而是意味着没有人(或组织)可以合理地负责审查所有可能的攻击媒介。 开源使全世界的开发人员社区可以帮助揭示代码问题。
您不仅可能在基础数学和算法方面遇到问题,而且您的应用程序级实现也可能会存在漏洞。 对于您的自定义算法,没有遵循的行业标准最佳实践。
3.获取新更新
通过使用定期更新的流行加密库,您的代码将不会受到最近发现的对所使用算法的攻击的攻击。
利用社区的优势,并在可能的时候通过贡献来回报!
Golang: https ://golang.org/pkg/crypto/
节点: https : //nodejs.org/api/crypto.html
Python: https : //pypi.org/project/cryptography/
谢谢阅读
Twitter上的车道: @wagslane
Dev.to上的车道: wagslane
订阅Qvault: https ://qvault.io
翻译自: https://hackernoon.com/three-reasons-why-open-source-cryptography-is-more-secure-vxk63zzu
人人开源 密码校验