代码之家  ›  专栏  ›  技术社区  ›  jimBeaux27

升级Swift依赖的加密算法

  •  0
  • jimBeaux27  · 技术社区  · 4 年前

    我正在使用开源MobSF安全框架来扫描我的Swift项目的源代码及其依赖项,以查找漏洞。大多数事情看起来都很好,但我担心这表明我的依赖项中的加密算法(MD5、SHA1)不够安全。

    解决这个问题的标准做法是什么?我确保为其中的大多数分支拉最新的分支,但他们似乎坚持使用过时的算法。我不愿意进去,不得不更改他们的源代码,但每次重建Podfile时都会被删除。

    0 回复  |  直到 4 年前
        1
  •  1
  •   Rob Napier    4 年前

    首先,这取决于他们为什么使用这些算法。对于某些用途,MD5或SHA-1不存在安全问题,它们可能是与现有标准兼容或向后兼容所必需的。

    例如,使用SHA-1作为哈希,PBKDF2是完全安全的。它不需要非常强大的哈希函数来维护自身的安全性。使用MD5甚至是安全的。使用PBKDF2切换到SHA-2并不能提高安全性,它只是“安全卫生”,即“避免在代码中存在已知问题的算法,即使它们在特定用例中不会造成问题。”安全卫生是一种很好的做法,但它与安全不是一回事。

    对于其他用例,哈希函数的安全性至关重要。如果一个框架使用MD5对任意消息进行身份验证,那就完全失败了。不要认为这个答案暗示算法无关紧要。是的!但并非在所有用例中。如果你想解码信用卡刷卡交易,你可能需要DES在你的代码中,这就是 可怕的 坏了,但你仍然需要它,因为磁条就是这样加密的。它不会让你的框架变得“不安全”

    当你说“但他们似乎坚持使用过时的算法”时,我想你的意思是你打开了一个PR,他们拒绝了它,在这种情况下,我认为他们有一个很好的理由(比如在没有实际安全问题的情况下向后兼容)。如果你没有,那么显然第一步就是开一家公关公司。

    这就是说,如果你想改变这一点,因为你觉得有一个实际的安全问题,他们不会解决,或者纯粹是为了卫生,那么使用CocoaPods,你会分叉项目,修改它,并使用 the source attribute pod 关键词。

    我自己维护一个加密框架,经常从使用这些扫描仪的开发人员那里得到错误的错误报告。确保你知道扫描仪告诉你什么,以及如何评估结果。假阳性非常常见。这些工具很有用,但是你需要一些专业知识来阅读他们的报告。