硬件安全模塊
硬件安全模塊(英語:Hardware security module,縮寫HSM)是一種用於保障和管理強認證系統所使用的數字密鑰,並同時提供相關密碼學操作的計算機硬件設備。硬件安全模塊一般通過擴展卡或外部設備的形式直接連接到電腦或網絡服務器。
設計
[編輯]HSM提供篡改留證(tamper evidence/proof)、篡改抵抗(tamper evidence)兩種方式的防篡改功能,前者設計使得篡改行為會留下痕跡,後者設計使得篡改行為會令HSM銷毀密鑰一類的受保護信息。[1]每種HSM都會包括一個或多個安全協處理器,用於阻止篡改或總線探測。
許多HSM系統提供安全備份外部密鑰的機制。密鑰可以以封包形式備份並存儲在計算機磁盤或其他介質上,或安全的便攜式設備(如智能卡或其他安全令牌)存儲於外部。[2]
由於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同時提供邏輯層面與物理層面的保護,以防止未經授權的訪問或者可能的入侵。[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。此類設備主要可被分為以下兩類:
- 當用戶使用卡時,加密輸入的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 (頁面存檔備份,存於網際網路檔案館)。
參見
[編輯]參考資料
[編輯]- ^ Electronic Tamper Detection Smart Meter Reference Design. freescale. [26 May 2015]. (原始內容存檔於2015-06-14).
- ^ Using Smartcard/Security Tokens. mxc software. [26 May 2015]. (原始內容存檔於2018-06-21).
- ^ Support for Hardware Security Modules. paloalto. [26 May 2015]. (原始內容存檔於2015年5月26日).
- ^ Transitions: Recommendation for Transitioning the Use of Cryptographic Algorithms and Key Lengths (PDF). NIST. January 2011 [March 29, 2011]. (原始內容 (PDF)存檔於2011-09-04).
- ^ F. Demaertelaere. Hardware Security Modules (PDF). Atos Worldline. [26 May 2015]. (原始內容 (PDF)存檔於2015-09-06).
- ^ Barco Silex FPGA Design Speeds Transactions In Atos Worldline Hardware Security Module. Barco-Silex. January 2013 [April 8, 2013]. (原始內容存檔於2017-09-17).
- ^ SafeNet Network HSM - Formerly Luna SA Network-Attached HSM. Gemalto. [2017-09-21]. (原始內容存檔於2017-10-27).
- ^ ICANN Begins Public DNSSEC Test Plan for the Root Zone. [2015-08-17]. (原始內容存檔於2015-09-23).