硬件安全模块

硬件安全模块可在任何涉及到密钥的场景下使用。通常来说,这些密钥具有较高的价值,一旦泄露会导致严重的后果。

硬件安全模块的功能通常包括:

板载密码学安全密钥生成

板载密码学安全密钥存储,至少是顶级和最敏感的密钥,通常称为主密钥

密钥管理

加密且敏感资料的使用

卸载(代办)应用程序服务器的对称与非对称加密计算。

HSM也用于数据库透明加密的密钥管理。

对于密钥在内的敏感信息,HSM同时提供逻辑层面与物理层面的保护,以防止未经授权的访问或者可能的入侵。[3]

尽管HSM主要用于处理公钥密码学使用的密钥对(可能以数字证书的形式存在,如X.509格式证书),一些情况下也处理对称密码学使用的对称密钥或者任意类型的数据。

一些HSM系统也用作硬件密码学加速器。尽管此类HSM在对称密码学相关的运算性能上不如那些为对称密码学加速特化设计的硬件,但它们在进行公钥密码学操作时能大大减轻连接到的主机的CPU运算负荷。它们一般每秒能完成1~10,000次1024位RSA签名操作。由于自2010年起,NIST推荐选取2048位及以上的RSA密钥长度,[4] 在更长密钥下保证速度就变得越来越重要了。对此,有些HSM已经支持同等安全程度仅需更短密钥的椭圆曲线密码学(ECC) 。

PKI应用场景 (证书颁发机构硬件安全模块)

编辑

在PKI场景下,证书颁发机构(CA)及注册机构(RA)可能使用HSM生成、储存、使用密钥对。此时,设备必须具备以下的基本特性:

高等级的逻辑及物理安全保护

需要多用户同时参与的授权方案 (参见Blakley-Shamir方案)

日志记录及审计

密钥安全备份

另一方面,由于线上或线下的PKI操作一般都需要注册机构人工审核(DV验证除外),处理速度瓶颈在于人工流程,因此该场景下设备性能相对次要。

卡交易应用场景 (银行硬件安全模块)

编辑

支付系统使用的电子交易硬件安全模块

用于卡交易系统的HSM一般会比用于CA的HSM更加轻量,同时通常也不会提供标准API。此类设备主要可被分为以下两类:

ATM、POS终端中的HSM用于:

当用户使用卡时,加密输入的PIN码

加载密钥到受保护的内存区域

授权与自定义模块用于:

使用在线数据验证加密的PIN数据块

与ATM控制器共同使用,以便通过检查CVV2码或调用EMV卡内组件,验证借记卡/信用卡的交易合法性

支持智能卡(例如EMV卡)的安全操作API

重复加密PIN数据块以便发送至其它授权设备

支持POS ATM网络管理协议

支持基于de facto标准的设备间密钥/数据交换API

生成并打印包含PIN的密码卡

生成磁条卡数据 (PVV, CVV)

生成卡密钥集并支持智能卡的自定义处理过程

PCI安全标准委员会是负责制定并维护卡交易系统HSM标准的主要机构。

SSL链接建立

编辑

需要使用HTTPS(SSL/TLS)的性能敏感应用,通过使用带SSL加速功能的HSM, 可以获得一定的性能提升。SSL的RSA操作需要进行大整数乘法等操作,不同于通用CPU,HSM通过针对这些操作的特化设计,能以更高的效率完成这些操作。一般HSM每秒可完成1~10,000次的1024位RSA操作。[5] 随着RSA密钥长度不断增加,因此而导致的速度下降已经成为一个重要问题。对此,有些HSM[6] 已经支持同等安全程度仅需更短密钥的椭圆曲线密码学(ECC) 。特定型号的HSM的操作速度已经可以达到20,000次每秒。[7]

DNSSEC

编辑

越来越多的域名注册商开始使用HSM来存储签名DNS区域文件使用的密钥。OpenDNSSEC是一个可在HSM环境下管理DNS区域文件签名的开源工具。

DNS根区的DNSSEC部署于2007年1月27日正式开始,该任务由ICANN与VeriSign在美国商务部的支持下共同完成。[8] 详情可参见Root DNSSEC's website (页面存档备份,存于互联网档案馆)。

Top