【发布时间】:2014-11-01 21:27:34
【问题描述】:
首先,我是 OpenSSL 世界的初学者。对于任何基本的野蛮错误,我提前道歉。
考虑一个流程:
- 使用硬件初始化 OpenSSL 引擎(我们称之为 EngineHW)。
- 调用 OpenSSL 函数,例如X509_sign。
如何检查调用的函数是否在硬件上执行?
如何验证 EngineHW 函数是否被调用?如果 EngineHW 没有定义函数怎么办 - OpenSSL 会回退到它拥有的任何默认引擎吗?
这个问题与断言质量有关——因为我有硬件可以为我做加密,所以我认为使用软件是一种回归(至少对于重要的功能)。
【问题讨论】:
-
你在暗示command line use吗?
-
我在暗示任何解决方案 :( 可以通过静态、动态链接代码中的 API 调用,如果有帮助,甚至可以重建 OpenSSL。
-
最简单的检查方法当然是确保私钥或密钥永远不会离开 HSM,尽管我必须承认这与日志不同。您最好检查一下您的 HSM 文档(如果适用,智能卡可能不会记录太多)。
-
owlstead,感谢 cmets,我确实使用 HSM 上的密钥测试了一些加密流,而那些确实从未将密钥导出到 HSM 之外,因此我确信它们可以工作。但是不需要密钥的操作呢?像证书验证、哈希函数、随机数等...我将研究 OpenSSL、我的引擎、我的驱动程序、我的驱动程序文档
-
是的,我知道这很棘手。我会快速查看顶级源代码,看看是否记录了任何内容。如果引擎本身也记录日志,那当然会有所帮助。我现在只能投票。
标签: cryptography openssl hsm