我生成了用于上传验证的 md5 内容哈希,但最近我注意到这对于在启用 FIPS 的机器上运行的任何用户都会失败。 FIPS 禁用 openssl md5,当我尝试初始化 hashlib 时会导致 ValueError。通常我会改用 SHA,但我依赖于需要 content-md5 header 的外部服务。

我的问题是:有没有办法强制 Python 使用非 openssl 散列函数?有一些关于添加 usedforsecurity 标志的 here 讨论,但它似乎没有去任何地方。

最佳答案

“我如何从 FIPS 模式机器发送 content-md5 header ”的答案是 您在启用 FIPS 模式时不要使用非 FIPS 验证的算法 因为您可能会违反联邦法规或组织政策因此,由于 FIPS 启用机器的唯一重要原因是是否有监管(或可能是预防政策)要求这样做。

this github issues list 中也有一些讨论,建议 content-md5 必须是可选的。

根据监管要求,您不能使用 MD5,因为它不是 FIPS 兼容算法,因此不能有 FIPS 验证(!)实现。

您需要执行以下操作之一:

  • 使该服务不需要 content-md5 header
  • 使用不同的服务
  • 使用不同的原始机器,该机器不需要处于 FIPS 模式

  • 如果您的管理层需要引用,请直接从 nist.gov 查看 Annex A Approved Security Functions for FIPS PUB 140-2

    关于python - 有没有办法在python中为hashlib使用非openssl md5?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35586302/

    10-12 18:37