硬件安全模塊(英語(yǔ):hardware security module,縮寫HSM)是一種用于保護(hù)和管理強(qiáng)認(rèn)證系統(tǒng)所使用的密鑰,并同時(shí)提供相關(guān)密碼學(xué)操作的計(jì)算機(jī)硬件設(shè)備。硬件安全模塊一般通過擴(kuò)展卡或外部設(shè)備的形式直接連接到電腦或網(wǎng)絡(luò)服務(wù)器。
設(shè)計(jì)HSM提供篡改留證(tamper evidence/proof)、篡改抵抗(tamper evidence)兩種方式的防篡改功能,前者設(shè)計(jì)使得篡改行為會(huì)留下痕跡,后者設(shè)計(jì)使得篡改行為會(huì)令HSM銷毀密鑰一類的受保護(hù)信息。每種HSM都會(huì)包括一個(gè)或多個(gè)安全協(xié)處理器,用于阻止篡改或總線探測(cè)。
許多HSM系統(tǒng)提供可靠的密鑰備份機(jī)制,使機(jī)密數(shù)據(jù)可以通過智能卡或其他設(shè)備安全地處理或轉(zhuǎn)移。
由于HSM通常是公鑰基礎(chǔ)設(shè)施(PKI)或網(wǎng)上銀行一類關(guān)鍵基礎(chǔ)設(shè)施的一部分,一般會(huì)同時(shí)使用多個(gè)HSM以實(shí)現(xiàn)高可用性。一些HSM具備雙電源、無(wú)需停機(jī)更換配件(如冷卻風(fēng)扇)等設(shè)計(jì),以確保在數(shù)據(jù)中心等環(huán)境中的高可用性要求。
少數(shù)HSM可以讓用戶在其內(nèi)部處理器上運(yùn)行專門開發(fā)的模塊。在一些場(chǎng)景下,這種設(shè)計(jì)相當(dāng)實(shí)用,例如用戶可以在這種安全、受控的環(huán)境下運(yùn)行一些特殊的算法或者業(yè)務(wù)邏輯,哪怕攻擊者取得了計(jì)算機(jī)的完全控制權(quán)限,存儲(chǔ)在HSM(連接到計(jì)算機(jī))中的程序也無(wú)法被提取或篡改。一般HSM允許用戶使用C、.NET、Java等編程語(yǔ)言開發(fā)這種專用程序。值得注意的是,用戶自定義的程序與HSM本身的程序之間存在隔離,這使程序的存在不會(huì)影響到HSM本身的安全。1
安全性考慮到硬件安全模塊(HSM)在應(yīng)用程序與基礎(chǔ)設(shè)施的安全中扮演的關(guān)鍵角色,此類密碼學(xué)模塊通常都會(huì)經(jīng)過Common Criteria、FIPS 140等受到國(guó)際承認(rèn)的認(rèn)證。這將為用戶提供產(chǎn)品設(shè)計(jì)與實(shí)現(xiàn)上的保障,同時(shí)確保相應(yīng)的密碼學(xué)算法能按預(yù)期方式正確工作。FIPS 140安全認(rèn)證最高認(rèn)證等級(jí)為L(zhǎng)evel 4(整體),目前僅有極少數(shù)HSM成功通過這一等級(jí)的認(rèn)證,大部分設(shè)備處于Level 3等級(jí)。1
使用硬件安全模塊可在任何涉及到密鑰的場(chǎng)景下使用。通常來說,這些密鑰具有較高的價(jià)值,一旦泄露會(huì)導(dǎo)致嚴(yán)重的后果。
硬件安全模塊的功能通常包括:
板載密碼學(xué)安全密鑰生成
板載密碼學(xué)安全密鑰存儲(chǔ)與管理
加密且敏感資料的使用
卸載(代辦)應(yīng)用程序服務(wù)器的對(duì)稱與非對(duì)稱加密計(jì)算。
HSM也用于數(shù)據(jù)庫(kù)透明加密的密鑰管理。
對(duì)于密鑰在內(nèi)的敏感信息,HSM同時(shí)提供邏輯層面與物理層面的保護(hù),以防止未經(jīng)授權(quán)的訪問或者可能的入侵。
盡管HSM主要用于處理公鑰密碼學(xué)使用的密鑰對(duì)(可能以數(shù)字證書的形式存在,如X.509格式證書),一些情況下也處理對(duì)稱密碼學(xué)使用的對(duì)稱密鑰或者任意類型的數(shù)據(jù)。
一些HSM系統(tǒng)也用作硬件密碼學(xué)加速器。盡管此類HSM在對(duì)稱密碼學(xué)相關(guān)的運(yùn)算性能上不如那些為對(duì)稱密碼學(xué)加速特化設(shè)計(jì)的硬件,但它們?cè)谶M(jìn)行公鑰密碼學(xué)操作時(shí)能大大減輕連接到的主機(jī)的CPU運(yùn)算負(fù)荷。它們一般每秒能完成1~10,000次1024位RSA簽名操作。由于自2010年起,NIST推薦選取2048位及以上的RSA密鑰長(zhǎng)度,在更長(zhǎng)密鑰下保證速度就變得越來越重要了。對(duì)此,有些HSM已經(jīng)支持同等安全程度僅需更短密鑰的橢圓曲線密碼學(xué)(ECC) 。
PKI應(yīng)用場(chǎng)景 (證書頒發(fā)機(jī)構(gòu)硬件安全模塊)在PKI場(chǎng)景下,證書頒發(fā)機(jī)構(gòu)(CA)及注冊(cè)機(jī)構(gòu)(RA)可能使用HSM生成、儲(chǔ)存、使用密鑰對(duì)。此時(shí),設(shè)備必須具備以下的基本特性:
高等級(jí)的邏輯及物理安全保護(hù)
需要多用戶同時(shí)參與的授權(quán)方案 (參見Blakley-Shamir方案)
日志記錄及審計(jì)
密鑰安全備份
另一方面,由于線上或線下的PKI操作一般都需要注冊(cè)機(jī)構(gòu)人工審核(DV驗(yàn)證除外),處理速度瓶頸在于人工流程,因此該場(chǎng)景下設(shè)備性能相對(duì)次要。2
卡交易應(yīng)用場(chǎng)景 (銀行硬件安全模塊)用于卡交易系統(tǒng)的HSM一般會(huì)比用于CA的HSM更加輕量,同時(shí)通常也不會(huì)提供標(biāo)準(zhǔn)API。此類設(shè)備主要可被分為以下兩類:
ATM、POS終端中的HSM用于:
當(dāng)用戶使用卡時(shí),加密輸入的PIN碼
加載密鑰到受保護(hù)的內(nèi)存區(qū)域
授權(quán)與自定義模塊用于:
使用在線數(shù)據(jù)驗(yàn)證加密的PIN數(shù)據(jù)塊
與ATM控制器共同使用,以便通過檢查CVV2碼或調(diào)用EMV卡內(nèi)組件,驗(yàn)證借記卡/信用卡的交易合法性
支持智能卡(例如EMV卡)的安全操作API
重復(fù)加密PIN數(shù)據(jù)塊以便發(fā)送至其它授權(quán)設(shè)備
支持POS ATM網(wǎng)絡(luò)管理協(xié)議
支持基于de facto標(biāo)準(zhǔn)的設(shè)備間密鑰/數(shù)據(jù)交換API
生成并打印包含PIN的密碼卡
生成磁條卡數(shù)據(jù) (PVV,CVV)
生成卡密鑰集并支持智能卡的自定義處理過程
PCI安全標(biāo)準(zhǔn)委員會(huì)是負(fù)責(zé)制定并維護(hù)卡交易系統(tǒng)HSM標(biāo)準(zhǔn)的主要機(jī)構(gòu)。2
SSL鏈接建立需要使用HTTPS(SSL/TLS)的性能敏感應(yīng)用,通過使用帶SSL加速功能的HSM, 可以獲得一定的性能提升。SSL的RSA操作需要進(jìn)行大整數(shù)乘法等操作,不同于通用CPU,HSM通過針對(duì)這些操作的特化設(shè)計(jì),能以更高的效率完成這些操作。一般HSM每秒可完成1~10,000次的1024位RSA操作。隨著RSA密鑰長(zhǎng)度不斷增加,因此而導(dǎo)致的速度下降已經(jīng)成為一個(gè)重要問題。對(duì)此,有些HSM已經(jīng)支持同等安全程度僅需更短密鑰的橢圓曲線密碼學(xué)(ECC) 。特定型號(hào)的HSM的操作速度已經(jīng)可以達(dá)到20,000次每秒。2
DNSSEC越來越多的域名注冊(cè)商開始使用HSM來存儲(chǔ)簽名DNS區(qū)域文件使用的密鑰。OpenDNSSEC是一個(gè)可在HSM環(huán)境下管理DNS區(qū)域文件簽名的開源工具。
DNS根區(qū)的DNSSEC部署于2007年1月27日正式開始,該任務(wù)由ICANN與VeriSign在美國(guó)商務(wù)部的支持下共同完成。詳情可參見Root DNSSEC's website。2
本詞條內(nèi)容貢獻(xiàn)者為:
吳晨濤 - 副研究員 - 上海交通大學(xué)