設計
HSM提供篡改留證(tamper evidence/proof)、篡改抵抗(tamper evidence)兩種方式的
防篡改功能,前者設計使得篡改行為會留下
痕跡,後者設計使得篡改行為會令HSM銷毀密鑰一類的受保護信息。每種HSM都會包括一個或多個安全
協處理器,用於阻止篡改或
匯流排探測。
許多HSM系統提供可靠的密鑰備份機制,使機密數據可以通過
智慧卡或其他設備安全地處理或轉移。
由於HSM通常是
公鑰基礎設施(PKI)或
網上銀行一類關鍵
基礎設施的一部分,一般會同時使用多個HSM以實現高可用性。一些HSM具備雙電源、無需停機更換配件(如冷卻風扇)等設計,以確保在
數據中心等環境中的高可用性要求。
少數HSM可以讓用戶在其內部處理器上運行專門開發的模組。在一些場景下,這種設計相當實用,例如用戶可以在這種安全、受控的環境下運行一些特殊的
算法或者業務邏輯,哪怕攻擊者取得了計算機的完全控制許可權,存儲在HSM(連線到計算機)中的程式也無法被提取或篡改。一般HSM允許用戶使用
C、
.NET、
Java等
程式語言開發這種專用程式。值得注意的是,用戶自定義的程式與HSM本身的程式之間存在隔離,這使程式的存在不會影響到HSM本身的安全。
安全性
考慮到硬體安全模組(HSM)在
應用程式與基礎設施的安全中扮演的關鍵角色,此類密碼學模組通常都會經過Common Criteria、FIPS 140等受到國際承認的認證。這將為用戶提供產品設計與實現上的保障,同時確保相應的密碼學算法能按預期方式正確工作。FIPS 140安全認證最高認證等級為Level 4(整體),僅有極少數HSM成功通過這一等級的認證,大部分設備處於Level 3等級。
使用
硬體安全模組可在任何涉及到
密鑰的場景下使用。通常來說,這些密鑰具有較高的價值,一旦泄露會導致嚴重的後果。
硬體安全模組的功能通常包括:
板載密碼學安全密鑰生成
板載密碼學安全密鑰存儲與管理
加密且敏感資料的使用
卸載(代辦)應用程式伺服器的
對稱與
非對稱加密計算。
對於密鑰在內的敏感信息,HSM同時提供邏輯層面與物理層面的保護,以防止未經授權的訪問或者可能的入侵。
儘管HSM主要用於處理
公鑰密碼學使用的密鑰對(可能以數字證書的形式存在,如X.509格式證書),一些情況下也處理對稱密碼學使用的對稱密鑰或者任意類型的數據。
一些HSM系統也用作硬體密碼學加速器。儘管此類HSM在對稱密碼學相關的運算性能上不如那些為對稱密碼學加速特化設計的硬體,但它們在進行公鑰密碼學操作時能大大減輕連線到的主機的CPU運算負荷。它們一般每秒能完成1~10,000次1024位
RSA簽名操作。由於自2010年起,
NIST推薦選取2048位及以上的RSA密鑰長度,在更長密鑰下保證速度就變得越來越重要了。對此,有些HSM已經支持同等安全程度僅需更短密鑰的
橢圓曲線密碼學(ECC) 。
PKI套用場景 (證書頒發機構硬體)
在
PKI場景下,證書頒發機構(CA)及註冊機構(RA)可能使用HSM生成、儲存、使用密鑰對。此時,設備必須具備以下的基本特性:
另一方面,由於線上或線下的PKI操作一般都需要註冊機構人工審核(DV驗證除外),處理速度瓶頸在於人工流程,因此該場景下設備性能相對次要。
卡交易套用場景 (銀行硬體安全模組)
用於卡交易系統的HSM一般會比用於CA的HSM更加輕量,同時通常也不會提供標準
API。此類設備主要可被分為以下兩類:
授權與自定義模組用於:
PCI安全標準委員會是負責制定並維護卡交易系統HSM標準的主要機構。
SSL連結建立
需要使用
HTTPS(
SSL/
TLS)的性能敏感套用,通過使用帶SSL加速功能的HSM, 可以獲得一定的性能提升。SSL的
RSA操作需要進行大整數乘法等操作,不同於通用CPU,HSM通過針對這些操作的特化設計,能以更高的效率完成這些操作。一般HSM每秒可完成1~10,000次的1024位RSA操作。隨著RSA密鑰長度不斷增加,因此而導致的速度下降已經成為一個重要問題。對此,有些HSM已經支持同等安全程度僅需更短密鑰的
橢圓曲線密碼學(ECC) 。特定型號的HSM的操作速度已經可以達到20,000次每秒。
DNSSEC
越來越多的域名註冊商開始使用HSM來存儲簽名DNS區域檔案使用的密鑰。OpenDNSSEC是一個可在HSM環境下管理DNS區域檔案簽名的開源工具。
DNS根區的DNSSEC部署於2007年1月27日正式開始,該任務由
ICANN與
VeriSign在
美國商務部的支持下共同完成。詳情可參見Root DNSSEC's website。