hsm - TriCore HSM 通用通信
问题描述
我是 HSM 的新手,我没有找到任何有关详细通信的信息。HSM 和主机应用程序之间的通信如何工作?我知道有一些驱动程序,但我想了解密钥解密和加密的部分。应用程序如何加密消息?它怎么知道具体的Key?
谢谢你的支持。
干杯,霍斯特
解决方案
当 HSM 采用设备形式时,将有一个低级协议,类似于 */IP(TCP 或 UDP),或者当它是 PCIe 卡时是 PCIe 驱动程序,或者当它是 USB 驱动程序时是一种 USB 外形尺寸。
最重要的是 HSM 自己的通信协议。这是“通信”协议,而不是加密系统。
在通信协议之上,将是一个加密系统。基于标准的加密系统类似于 PKCS#11 或 CAPI/CSP/CNG 或 JCE。HSM 也可能拥有自己的本地加密系统,并且在大多数情况下,基于标准的加密系统只是通往专有系统的桥梁。
因此,HSM 如何准备密钥以供使用,以及您的应用程序如何使用密钥完全取决于 HSM 和您的应用程序。
一般来说,您的应用程序将:
- 登录(如果您的 HSM 会话是双控制(或“4 眼”)感知的,这可能不止一次发生)。
- 查找、打开或准备要使用的密钥(不同的 HSM 使用不同的习语)。此“密钥”可能是加密(“包装”)blob,也可能是密钥句柄。
- 向 HSM 提供密钥、数据和标志以及请求。签名/验证/加密/解密/包装/解包/散列/...
HSM 将
- 接受密钥、数据、标志和操作请求,使用或对输入执行操作,然后丢弃密钥和输入数据。
- 返回操作的结果。
您可以使用基于软件的 HSM 模拟器(SoftHSM,Utimaco GmbH 的 CryptoServer 模拟器)来研究如何在本地环境中使用它们。
推荐阅读
- python - 使用 Amazon SageMaker 部署模型时出现问题(ValueError:Estimator 未与训练作业关联)
- excel - VBA 下载包含希伯来语的图像 URL
- wxwidgets - Meson - 如何指定使用哪个 wxgtk 版本?
- python - 如何使用 BeautifulSoup 使用 python 从这个网页中抓取数据?
- if-statement - Azure DevOps YAML if 语句中的变量不等于字符串
- javascript - 将日期的输入限制在javascript中的特定范围内
- answer-set-programming - 如何在 cligo 中使用数据结构而不是命令行参数 - (ASP)
- css - 我怎样才能使每个盒子不与右边的盒子重叠?
- javascript - 为什么导航栏在移动视图中不起作用?
- factorial - 因子空间复杂度