【问题标题】:How to use DRBG from OpenSSL FIPS Object module v2.0如何使用 OpenSSL FIPS 对象模块 v2.0 中的 DRBG
【发布时间】:2012-12-05 10:28:48
【问题描述】:

我正在尝试将 OpenSSL FIPS 对象模块 v2.0 与基本 OpenSSL 库 (1.0.1c) 一起使用,以使我的应用程序符合 FIPS 140-2 标准。问题是我无法弄清楚如何使用 FIPS 对象模块中的 DRBG API 来替换我的 RAND_* 调用。

我可以看到很少有在 OpenSSL 模块中调用 RAND_bytes 的实例,并且还在其他库/源文件(OpenSSL 之外)中使用它们。 http://www.openssl.org/docs/fips/UserGuide-2.0.pdf 中提供的用户文档讨论了各自的 API,但没有说明哪些调用需要映射到其各自的 RAND_* 对应项。

我曾尝试在各种论坛上查找此信息,但到目前为止还不是很幸运。如果有人可以帮助我了解如何使用这些调用并替换当前正在使用的 RAND_* 调用,我将不胜感激。

谢谢, 桑迪普

【问题讨论】:

  • RAND_ API 是一个接口。您不会替换任何 RAND_ 调用。相反,您注册 DRBG(可能会在您调用 FIPS_mode() 或其他东西时自动完成),然后您的 RAND_ 调用将使用它而不是默认的 RNG 实现。

标签: openssl fips


【解决方案1】:

问题是我无法弄清楚如何使用 DRBG API 来自 FIPS 对象模块,用于替换我的 RAND_* 调用。

一旦您调用FIPS_mode_set(并假设它返回非零),您就使用了 NIST 批准的 DRBG。来自 OpenSSL 的Random Numbers wiki page

默认 DRBG 是 256 位 CTR AES 使用派生函数... 使用 FIPS 随机数生成器,只需使用 RAND_bytes 作为 前面描述过。请注意,对 FIPS_mode_set 的调用必须成功 以便在 FIPS 140 模式下运行。

【讨论】:

  • 赞成这个古老的答案,但问题仍然是这些引擎是否可用无需切换到 FIPS 模式。对于使用 RNG 来说,这可能是一个太大的步骤。
猜你喜欢
  • 1970-01-01
  • 2021-11-15
  • 2017-01-29
  • 2018-08-24
  • 2017-09-26
  • 2016-04-11
  • 1970-01-01
  • 2013-09-08
  • 1970-01-01
相关资源
最近更新 更多