3

我正在尝试将 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_* 调用,我将不胜感激。

谢谢,桑迪普

4

1 回答 1

2

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

一旦你调用FIPS_mode_set(并假设它返回非零),你正在使用 NIST 批准的 DRBG。从 OpenSSL 的随机数 wiki 页面

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

于 2013-12-02T05:19:42.303 回答