gpt4 book ai didi

windows - 如何检查 openssl 库是否使用经过 FIPS 验证的密码术

转载 作者:行者123 更新时间:2023-12-03 11:06:47 25 4
gpt4 key购买 nike

我已经打开了第三方提供的 OpenSSL 二进制文件(libeay32.dllssleay32.dll)。我需要检查并验证那些提供的运行时库是否使用符合 FIPS 140-2 的加密算法。有没有办法检查这个?

最佳答案

Is there any way to check this?

是的,有很多方法。最简单的方法是从命令行运行 openssl version。如果它的 FIPS 验证了密码,那么它会说这样的话:

> openssl version
Version: OpenSSL 1.0.1f-fips 6 Jan 2014

在 Linux 上执行此操作的相关问题位于 How to check FIPS 140-2 support in OpenSSL?。 . Windows 有很大的不同,所以这个问题应该保持开放。

虽然前一个问题是 Linux,但您可以在 Windows 上使用 dumpbinfindstrings 做同样的事情。请务必打开开发人员提示符(而不是常规命令提示符)以确保 dumpbin 等工具在路径上。

以下是您可以检查的一些内容(来自下面讨论的幻灯片):

  • 存在预期的用户空间符号
    • FIPS_mode_set()、FIPS_module_mode_set()、FIPS_mode()、FIPS_module_mode()
  • 存在预期的内部符号
    • FIPS_text_start()、FIPS_text_end()、FIPS_rodata_start[]、FIPS_rodata_end[]、FIPS_signature[20];
  • FIPS_set_mode(1) 被调用并且没有失败
    • ERR_get_error 返回 0x0f06d065
    • CRYPTO_R_FIPS_MODE_NOT_SUPPORTED 已返回 FTW!
  • 使用字符串
    • “FIPS 2.0 验证模块 2012 年 3 月 14 日”
    • “FIPS 2.0.1 验证测试模块 2012 年 6 月 12 日”
    • 等等
  • 已知答案测试
    • 可执行文件 RO 部分中的二进制字符串数据
    • 检查 *.c 文件中的静态值
    • 各种子目录:aes、cmac、des、……、ecdsa、dsa、……
    • 自测文件:aes_selftest.c、dsa_selftes.c、……

下面是 fips/rand/fips_drbg_selftest.h 中的二进制字符串示例:

0x2e,0xbf,0x98,0xf9,0x85,0x27,0x8b,0xff,
0x36,0xb9,0x40,0x0b,0xc0,0xa1,0xa0,0x13,
0x20,0x06,0xcc,0xe6,0x2a,0x03,0x77,0x7d,
0xee,0xde,0xcc,0x34,0xe3,0xcd,0x77,0xea,
0xd0,0x3e,0xbe,0xdd,0xf6,0x15,0xfb,0xa7,
0xd7,0x8e,0xd0,0x2e,0x2f,0x82,0x4c,0xc7,
0x87,0xb1,0x6f,0xc5,0xf8,0x5c,0x78,0xde,
0x77,0x9b,0x15,0x9a,0xb9,0x3c,0x38,0x38

我还将关于该主题的幻灯片上传到 OpenSSL wiki。它叫做Building Applications using OpenSSL Validated Cryptography: Notes from the Field for Developers and Auditors .您需要从幻灯片 18 左右开始查看 Material 。

我为 OWASP 制作了幻灯片但是没有兴趣收到它。我知道 Stack Overflow 不喜欢 OpenSSL wiki 上的链接,但我不知道如何在此处提供 35+ 幻灯片。

关于windows - 如何检查 openssl 库是否使用经过 FIPS 验证的密码术,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36279595/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com