硬件安全模組
硬件安全模組(英語: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).