应用程序通过 PKCS #11、KMIP、Java JCA 提供程序、Windows CNG 或厂商和云平台的 API 与 HSM 通信;密钥从不离开 HSM,离开的只有签名或解密后的数据。其安全保证通常以 FIPS 140-3(或 140-2)验证级别 2 或 3 表示,或者以通用准则(Common Criteria)认证表示。公开受信任的 CA 必须把密钥存放在这类设备中;自2023年起,公开受信任的代码签名密钥也必须在硬件中生成和存储。
云密钥管理服务(AWS KMS、Google Cloud KMS、Azure Key Vault Managed HSM)把由 HSM 支持的密钥作为 API 资源提供,并配有 IAM 策略和审计日志。它们的 ECDSA 签名调用返回 DER 编码的签名,用于 JWS ES256 令牌时必须转换为原始 r‖s 格式,这是一个常见的集成错误。
选型前要核实的限制:支持的算法和曲线(对 Ed25519、secp256k1 和后量子算法的支持因型号和固件而异)、每次签名的吞吐量和延迟、密钥备份与克隆流程,以及大消息是否必须使用预哈希签名。