我想检查我的加密代码的安全性,我应该怎么做?

信息安全 加密 审计 协议
2021-09-04 13:32:51

特别是我的系统的一部分将加密信息存储在数据库中。我编写了使用现有密码实际进行加密/解密的代码。

我应该如何确保我设计的系统是安全的?

我知道的唯一选择是聘请安全顾问或公司来审核我的安全协议。感谢您提供有关此选项的任何信息以及其他选项。

3个回答

你可以

  • 审核您的代码
  • 审核您的设计
  • 对您的 Web 服务执行黑盒检查

见:http ://en.wikipedia.org/wiki/Security_testing

审核应由未参与创建服务和基础架构的人员执行。这可能是贵公司的另一个团队或部门——或一些外部咨询。

并且:在您的设计中使用经过测试的技术和组件,这意味着:不要重新发明轮子(参见http://en.wikipedia.org/wiki/Not_invented_here

检查您是否正确使用了密码学有点棘手,并且需要特殊的专业知识。我不希望典型的黑盒渗透测试是一种非常有效的检查方法,或者是一种善用你的钱的方法。相反,您可能需要安全审计或安全审查,最好由熟悉密码学的人进行。

降低风险的最佳方法之一是尽量减少您设计自己的加密方法的程度。用密码学家的话说:不要推出自己的 crypto例如,您可以使用 GPG(或加密为 OpenPGP 格式的东西)加密数据。

有关进一步的建议,请参阅有关加密和密码学的经验教训和误解。不要忘记使用身份验证(例如,使用经过身份验证的加密,或先加密后身份验证)。使用良好的密钥管理(例如,生成一个真正随机的加密密钥;不要从密码短语生成您的加密密钥)。

阅读我对“渗透测试和漏洞评估有什么区别?”的回答中列出的选项。

该答案中列出的所有步骤都可能相关,具体取决于您需要从中获得什么。以下是类别,但要获得完整解释,请访问另一个问题。

  • 发现
  • 漏洞扫描
  • 漏洞评估
  • 安全评估
  • 渗透测试
  • 安全审计
  • 安全审查