Ruby:使用存储在TPM中的密钥

时间:2014-08-19 14:15:27

标签: ruby ssl tpm

我正在寻找一种在必要的证书存储在TPM中时打开HTTPS连接的方法。

现在我正在使用HTTPClient打开连接,只要证书存储在磁盘上,一切正常。

  http = HTTPClient.new
  request = "#{address}/#{command}"
  http.ssl_config.set_client_cert_file("#{CLIENT_CERT}",
                                       "#{CLIENT_KEY}")

如果客户端私钥存储在TPM中,我该怎么办?

1 个答案:

答案 0 :(得分:0)

您有两种可能性:

  • 将密钥存储在TPM的非易失性存储器中
  • '密封'包含密钥的文件

要在Ruby中执行此操作,您可以:

  • 自己实施必要的命令,让代码与操作系统的TPM驱动程序通信
  • 编写使用TrouSerS
  • 的C API的代码
  • 调用一些命令行工具,例如TrouSerSjTSS或IBM tpm_utils
  • 提供的工具

但是,从结构的角度来看,我不确定这是否是您正在寻找的东西。通过TPM加载密钥仅在启动时可行。如果您想为每个请求执行此操作,则会导致性能下降。此外,你需要注意从内存中安全擦除密钥,否则就没有意义了。