作者:Roberto Gallo 博士
在这篇第二篇短文中,我的目标是让您了解使 HSM 成为独特技术的因素(有时很微妙)。希望你喜欢它!如果你错过了第一个,请查看 开始.
只是为了组织讨论并且让你和我谈论同样的事情,我参考了 OASIS 对计算服务的定义。我使用它是因为它足够通用,可以涵盖我所知道的任何和所有 HSM 提供的服务:“一种能够访问一个或多个功能的机制,其中访问是使用规定的接口提供的,并且按照服务描述所指定的约束和策略执行。”
考虑到这一点,您可以将 HSM 的服务分为四类,下面(以及下一篇文章)将对其进行更详细的描述:加密、密钥管理、AAA 和安全代码执行。
我们将从加密开始。
加密服务
这些服务是否与加密/解密、数字签名/验证、消息认证等直接相关?这里的一些关键词是 AES、TDES、RSA、ECDSA、HMAC。这些服务直接用于实现众所周知的安全目标,我相信您已经听说过:“机密性”,“身份验证”,“不可否认性”和“数据完整性”等(是的,还有许多其他安全目标 - 请查看 应用密码学手册 再多一些)。
从历史上看,这些服务最先出现在 HSM 中,其原因至今仍然存在:
1.性能。
例如,RSA 2048 私钥操作(签名、解密)需要几百万条算术指令才能完成。如今,借助多核、多千兆赫的计算机,可以在不到一毫秒的时间内实现这一目标,但在 1980 世纪 1990 年代和 XNUMX 年代,这一操作可能需要数秒,从而阻碍了许多应用的发展。
即使在今天,当存在 SSL 隧道建立等高输出场景时,人们可能仍然会选择使用 HSM 作为原始性能。然而我想说,这可能是当今人们投资 HSM 的最不重要的原因。惊讶吗?我希望不是。
对于追求高性能的 HSM,通常通过两种不同的互补机制来实现:(a)并行性和(b)硬件加速操作。事实上,HSM 中使用的某些加密芯片可以拥有超过一百个并行计算单元,每个计算单元都有专门的电路,能够执行特定于算法的操作,也就是说,比通用处理器少十倍的时钟周期!
2. 安全密钥处理。
我认为这是最基本的 HSM 服务,但却被许多安全专业人士忽视了。在定义“安全密钥处理”之前,我将与您分享几个示例:
- 如果(普通)用户拥有的密钥被标记为私有和敏感,即使是最有权限的 HSM 超级用户也无法读取或使用它!;
- 在生成时,密钥可以被标记为不可导出,这样即使密钥所有者也无法读取或导出,只能使用它!;
- 即使拥有物理设备访问权限,好奇的管理员或对手也无法了解或使用不属于他们的密钥!;
这些用例对您来说都是新的吗?如果没有,那就太好了!如果是,那么只要您掌握了背后的感觉就可以:HSM 的加密服务是关于控制密钥的使用,以便只有合法所有者才能以精确的方式使用它。这就是我对“安全密钥处理”的非正式定义。
滥用和篡改企图要么被阻止,要么被记录,留下物理篡改痕迹,或导致敏感材料的毁坏。很酷的对策,对吧?
每个供应商在实现上述属性方面都有自己的秘诀,并且它们确实取决于设备功能和对行业标准的遵守情况,但最常见的项目是:
- 完善的业务逻辑隔离密钥和用户并实施特定的安全策略;
- 与此类业务逻辑交互的接口(例如, KMIP, PKCS#11, OpenSSL 引擎, 卡皮/压缩天然气等),即执行加密运算的手段;
- 删除超级用户或至少削弱他们的权力;
- 通过硬连线电路或使用不可绕过的安全启动序列以及受硬件保护的信任根来防止业务逻辑被篡改;
- 安全功能硬件分离;
- 物理篡改证明机制,例如密封、环氧树脂外壳等;
- 对于某些设备,主动防篡改机制,例如穿孔传感器、电压操纵传感器、归零电路等;
此时,我建议您停下来思考:“在装有 Linux 发行版的 COTS Dell 服务器中,人们有多大可能获得严肃的‘安全密钥处理’?”
如果你将这个模因心理化了,那你就对了:“一个人不能简单地……”
由于加密与密钥一样安全,因此安全密钥处理可能是 HSM 使用背后最重要的驱动力。
好吧,为了简短起见,本文就到此为止了。