高性能密碼適用性分析
引言
密碼技術(shù)是保護(hù)網(wǎng)絡(luò)與信息系統(tǒng)安全的核心技術(shù),廣泛地應(yīng)用到金融、交通、通信等各行各業(yè),為國(guó)家安全和經(jīng)濟(jì)民生發(fā)展發(fā)揮著重要作用。然而,現(xiàn)在仍有大量的系統(tǒng)在使用MD5、SHA1、RC4 和 DES 這些不安全的算法。
此外,部分系統(tǒng)未按照國(guó)家相關(guān)標(biāo)準(zhǔn)正確規(guī)范地使用密碼技術(shù)及服務(wù),勢(shì)必給信息系統(tǒng)帶來(lái)了嚴(yán)重的安全隱患。
因此,確保信息系統(tǒng)安全穩(wěn)定地運(yùn)行,需要做好商用密碼應(yīng)用安全性評(píng)估,以保證商用密碼合規(guī)、正確、有效地應(yīng)用。由于國(guó)產(chǎn)密碼算法自身的性能等原因,使得商用密碼算法未大面積地應(yīng)用,提高商用密碼性能也是當(dāng)前主要任務(wù)之一。
信息系統(tǒng)密碼應(yīng)用安全性評(píng)估,是規(guī)范密碼應(yīng)用、維護(hù)網(wǎng)絡(luò)空間安全的基本要求,同時(shí)密碼測(cè)評(píng)又可促進(jìn)國(guó)產(chǎn)密碼在各個(gè)行業(yè)的廣泛應(yīng)用。
當(dāng)前,國(guó)密算法在系統(tǒng)應(yīng)用中的推廣和普及程度還不夠。制約國(guó)密算法推廣普及的最重要的一個(gè)原因就是性能。
本文列舉了密碼測(cè)評(píng)工作對(duì)國(guó)密算法高性能實(shí)現(xiàn)的多種需求,并對(duì)各種需求下的密碼適用性進(jìn)行初步分析。
一、信息系統(tǒng)密碼應(yīng)用的基本要求
1. 商用密碼安全性評(píng)估
商用密碼應(yīng)用安全性評(píng)估,簡(jiǎn)稱密評(píng),是指在釆用商用密碼技術(shù)、產(chǎn)品和服務(wù)集成建設(shè)的網(wǎng)絡(luò)和信息系統(tǒng)中,對(duì)其密碼應(yīng)用的合規(guī)性、正確性和有效性等進(jìn)行評(píng)估。
合規(guī)性是指密碼算法、密碼協(xié)議、密鑰管理、密碼產(chǎn)品和服務(wù)使用合規(guī),即按照《商用密碼管理?xiàng)l例》等密碼法規(guī)和行業(yè)相關(guān)的密碼使用要求,使用符合國(guó)家密碼法規(guī)和標(biāo)準(zhǔn)規(guī)定的商用密碼算法,使用經(jīng)過(guò)國(guó)家密碼管理局審批的密碼產(chǎn)品或服務(wù);按照《信息系統(tǒng)密碼應(yīng)用基本要求》等標(biāo)準(zhǔn), 進(jìn)行相應(yīng)的密碼應(yīng)用建設(shè)方案設(shè)計(jì)。
正確性是指密碼算法、密碼協(xié)議、密鑰管理、密碼產(chǎn)品和服務(wù)使用正確,即系統(tǒng)中釆用的標(biāo)準(zhǔn)密碼算法、協(xié)議和密鑰管理機(jī)制按照相應(yīng)的密碼國(guó)家和行業(yè)標(biāo)準(zhǔn)進(jìn)行正確的設(shè)計(jì)和實(shí)現(xiàn);密碼保障系統(tǒng)建設(shè)或改造過(guò)程中密碼產(chǎn)品和服務(wù)的部署和應(yīng)用正確。
有效性是指信息系統(tǒng)中釆用的密碼協(xié)議、密鑰管理系統(tǒng)、密碼應(yīng)用子系統(tǒng)和密碼安全防護(hù)機(jī)制不僅設(shè)計(jì)合理,而且在系統(tǒng)運(yùn)行過(guò)程中能夠發(fā)揮密碼效用,保障信息的機(jī)密性、完整性、真實(shí)性、抗抵賴性。
2. 信息系統(tǒng)密碼應(yīng)用的基本要求
根據(jù) GM/T 0054 《信息系統(tǒng)密碼應(yīng)用基本要求》從 4 個(gè)方面對(duì)信息系統(tǒng)的密碼應(yīng)用進(jìn)行評(píng)估,即總體要求、密碼技術(shù)應(yīng)用要求、密鑰管理和安全管理。
密碼技術(shù)應(yīng)用要求、密鑰管理和安全管理從四個(gè)不同的安全等級(jí)進(jìn)行要求,總體要求提出了對(duì)密碼算法、密碼協(xié)議、密碼產(chǎn)品和密碼服務(wù)要滿足相關(guān)標(biāo)準(zhǔn)和符合國(guó)家密碼管理部門(mén)的要求。
(1) 密碼技術(shù)應(yīng)用要求
GM/T 0054 《信息系統(tǒng)密碼應(yīng)用基本要求》密碼技術(shù)應(yīng)用要求分為物理和環(huán)境安全、網(wǎng)絡(luò)和通信安全、計(jì)算和設(shè)備安全以及應(yīng)用和數(shù)據(jù)安全。
其中,物理和環(huán)境安全實(shí)現(xiàn)對(duì)信息系統(tǒng)所在機(jī)房等重要區(qū)域的物理防護(hù),密碼應(yīng)用要求涉及重要區(qū)域的物理訪問(wèn)控制,以及電子門(mén)禁系統(tǒng)進(jìn)出記錄和視頻監(jiān)控音像記錄的存儲(chǔ)完整性。
網(wǎng)絡(luò)和通信安全實(shí)現(xiàn)對(duì)信息系統(tǒng)與經(jīng)由外部網(wǎng)絡(luò)連接的實(shí)體進(jìn)行網(wǎng)絡(luò)通信時(shí)的安全防護(hù),密碼應(yīng)用要求主要涉及通信過(guò)程中實(shí)體身份真實(shí)性、數(shù)據(jù)機(jī)密性和數(shù)據(jù)完整性,以及網(wǎng)絡(luò)邊界訪問(wèn)控制和設(shè)備接入控制。
計(jì)算和設(shè)備安全實(shí)現(xiàn)對(duì)信息系統(tǒng)中各類(lèi)設(shè)備和計(jì)算環(huán)境的安全防護(hù),密碼應(yīng)用要求主要涉及對(duì)登錄設(shè)備用戶的身份鑒別、遠(yuǎn)程管理通道的建立、可信計(jì)算環(huán)境的建立、重要可執(zhí)行程序來(lái)源的真實(shí)性,以及系統(tǒng)資源訪問(wèn)控制信息、設(shè)備的重要信息資源敏感安全標(biāo)記、重要可執(zhí)行程序完整性、日志記錄的完整性。
應(yīng)用和數(shù)據(jù)安全實(shí)現(xiàn)對(duì)信息系統(tǒng)中應(yīng)用及其數(shù)據(jù)的安全防護(hù),密碼應(yīng)用主要涉及應(yīng)用的用戶身份鑒別、訪問(wèn)控制, 以及應(yīng)用相關(guān)重要數(shù)據(jù)的存儲(chǔ)安全、傳輸安全和相關(guān)行為的不可否認(rèn)性。
其中重要數(shù)據(jù)應(yīng)根據(jù)密碼解決方案以及實(shí)際需求來(lái)確定,一般地,重要數(shù)據(jù)包括但不限于鑒別數(shù)據(jù)、重要業(yè)務(wù)數(shù)據(jù)、重要個(gè)人信息、重要審計(jì)數(shù)據(jù)、重要配置數(shù)據(jù)、重要視頻數(shù)據(jù)等。
(2) 密鑰管理
信息系統(tǒng)密鑰管理應(yīng)包括對(duì)密鑰的生成、存儲(chǔ)、分發(fā)、導(dǎo)入、導(dǎo)出、使用、備份、恢復(fù)、歸檔與銷(xiāo)毀等全生命周期進(jìn)行管理和策略制定的全過(guò)程。
(3) 安全管理
安全管理從管理制度、人員管理、建設(shè)運(yùn)行和應(yīng)急處置四個(gè)方面提出了第一級(jí)到第四級(jí)的密碼應(yīng)用安全管理要求,需要健全責(zé)任主體管理機(jī)制來(lái)確保密碼技術(shù)被正確、合規(guī)和有效地實(shí)施。
二、密碼技術(shù)及高性能需求
隨著應(yīng)用場(chǎng)景的不同,各種應(yīng)用環(huán)境對(duì)密碼算法的性能及安全性需求出現(xiàn)了不同的要求。下面將從物理和環(huán)境、網(wǎng)絡(luò)和通信、設(shè)備和計(jì)算和應(yīng)用和數(shù)據(jù)四個(gè)層面從密評(píng)角度分析國(guó)密算法在性能方面對(duì)其影響。
1. 物理和環(huán)境安全
物理和環(huán)境安全是信息系統(tǒng)安全最基礎(chǔ)部分,需要利用密碼技術(shù)有效地保護(hù)進(jìn)入機(jī)房等重要場(chǎng)所的人員身份的真實(shí)性以及視頻、進(jìn)出記錄數(shù)據(jù)的完整性。
一般采用基于 SM7 算法的非接觸式邏輯加密卡或者基于 SM1/SM7算法的非接觸式 CPU 卡方式實(shí)現(xiàn)一卡一密進(jìn)行身份鑒別。
基于非接觸式 IC 卡門(mén)禁系統(tǒng)的密碼應(yīng)用包含 3 個(gè)子系統(tǒng):應(yīng)用系統(tǒng)、密鑰管理系統(tǒng)和發(fā)卡系統(tǒng)。門(mén)禁系統(tǒng)密碼應(yīng)用示意圖如圖 1 所示:
圖 1 門(mén)禁系統(tǒng)密碼應(yīng)用示意圖
對(duì)于視頻數(shù)據(jù)的完整性保護(hù)一般采用對(duì)數(shù)據(jù)做 MAC 計(jì)算或者做數(shù)字簽名,由于視頻數(shù)據(jù)產(chǎn)生都是動(dòng)態(tài)的、實(shí)時(shí)的,直接對(duì)完整的所有視頻數(shù)據(jù)做 MAC 計(jì)算或數(shù)字簽名效率非常低, 影響方案的可實(shí)施性。
為了提高計(jì)算效率,可以采取將視頻相關(guān)信息,如用戶名、設(shè)備編號(hào)、幀序列號(hào)等,隱藏在視頻編碼壓縮域中,在視頻解碼階段,計(jì)算 MAC 值并與原來(lái) MAC 值對(duì)比。
2. 網(wǎng)絡(luò)和通信安全
信息系統(tǒng)中各個(gè)部件之間的互聯(lián)互通需要網(wǎng)絡(luò)來(lái)實(shí)現(xiàn)。網(wǎng)絡(luò)層需要實(shí)現(xiàn)以下密碼功能:對(duì)通信雙方的身份進(jìn)行鑒別、對(duì)通信過(guò)程中的數(shù)據(jù)做完整性保護(hù)、通信過(guò)程中的敏感數(shù)據(jù)或整個(gè)報(bào)文做機(jī)密性保護(hù)、對(duì)網(wǎng)絡(luò)邊界訪問(wèn)控制信息或系統(tǒng)資源訪問(wèn)控制信息的完整性進(jìn)行保護(hù)和建立一條安全信息傳輸通道對(duì)網(wǎng)絡(luò)中的安全設(shè)備進(jìn)行集中管理。
另外,對(duì)于四級(jí)系統(tǒng), 連接到內(nèi)部網(wǎng)絡(luò)的設(shè)備需要做認(rèn)證。保護(hù)網(wǎng)絡(luò)通信完全可以采用 SSL/TLS 協(xié)議或者 IPSec 協(xié)議。
SSL 協(xié)議、IPSec 協(xié)議都是一種網(wǎng)絡(luò)層的綜合密碼協(xié)議,為網(wǎng)絡(luò)通信過(guò)程提供了數(shù)據(jù)的機(jī)密性、完整性以及數(shù)據(jù)源的身份鑒別和抗重放攻擊。通常在網(wǎng)絡(luò)層部署 SSL VPN 或 IPSec VPN 設(shè)備。
由于我國(guó)密碼行業(yè)標(biāo)準(zhǔn)支持“雙證書(shū) + 雙中心”機(jī)制,即加密證書(shū)和簽名證書(shū),用于數(shù)據(jù)加密的密鑰對(duì)由密鑰管理中心生成,用于數(shù)字簽名的密鑰由用戶生成。采用符合國(guó)密標(biāo)準(zhǔn)雙證書(shū)機(jī)制提高了安全性,另一方面,對(duì)于用戶和系統(tǒng)而言,帶來(lái)了一定的效率降低以及管理成本上升,其次,服務(wù)器端做簽名驗(yàn)證時(shí), SM2 數(shù)字簽名的驗(yàn)證算法需要做多倍點(diǎn)運(yùn)算, 其算法效率較 RSA 簽名驗(yàn)證算法低。
對(duì)于通信數(shù)據(jù)的機(jī)密性可采用 SM4 算法對(duì)數(shù)據(jù)加密保護(hù),完整性可采用 HMAC-SM3 算法。SM4 算法的性能較 AES 有一定差距,在某些實(shí)時(shí)性要求高的通信加密應(yīng)用場(chǎng)景中,SM4 算法可能難以滿足需求,此時(shí)可考慮采用序列算法, 如我國(guó)的 ZUC 算法,但目前 TLS/SSL 協(xié)議尚不支持 ZUC 算法。
為了保證網(wǎng)絡(luò)邊界訪問(wèn)控制信息、系統(tǒng)資源訪問(wèn)控制信息的完整性,可以配置合規(guī)的 SSL 或 IPSec VPN 設(shè)備,利用設(shè)備自身的密碼保護(hù)機(jī)制對(duì)訪問(wèn)控制列表的完整性進(jìn)行保護(hù)。
然而, 一些系統(tǒng)僅僅部署了防火墻等安全產(chǎn)品,市面上這些防火墻等安全產(chǎn)品并未使用密碼技術(shù)或者使用了未認(rèn)證的密碼模塊。
- 首先,未使用或者使用了不合規(guī)的密碼技術(shù)的安全產(chǎn)品會(huì)影響到系統(tǒng)通信過(guò)程中的安全性;
- 其次,這些安全產(chǎn)品增加密碼功能必然對(duì)系統(tǒng)的性能有所降低。為了提高性能同時(shí)又保證其安全性,自然對(duì)密碼算法的高性能實(shí)現(xiàn)提出了要求。
綜上所述,為提高系統(tǒng)通信過(guò)程的安全性且對(duì)系統(tǒng)通信的性能影響不大,就必然對(duì)國(guó)密算法高性能實(shí)現(xiàn)提出了更高的要求。做好國(guó)密算法的高性能實(shí)現(xiàn),可以幫助國(guó)密算法更好地普及。
3. 設(shè)備和計(jì)算安全
設(shè)備和計(jì)算層面主要利用密碼技術(shù)保證終端設(shè)備、服務(wù)器、安全設(shè)備和操作系統(tǒng)等算法運(yùn)行及計(jì)算環(huán)境安全。計(jì)算與設(shè)備層需要實(shí)現(xiàn)以下密碼功能:對(duì)系統(tǒng)中登錄設(shè)備的用戶進(jìn)行身份鑒別、對(duì)系統(tǒng)日志、訪問(wèn)控制信息、重要程序或文件、重要信息資源敏感標(biāo)記進(jìn)行完整性保護(hù)以及遠(yuǎn)程管理時(shí)身份鑒別信息需做機(jī)密性保護(hù)。
設(shè)備與計(jì)算層面的用戶登錄認(rèn)證中的用戶一般是指登錄到設(shè)備的管理員、運(yùn)維人員等, 實(shí)現(xiàn)身份鑒別常用的方法利用智能密碼鑰匙對(duì)管理員進(jìn)行身份鑒別,遠(yuǎn)程管理時(shí),鑒別信息的機(jī)密性通過(guò) https 協(xié)議登錄到堡壘機(jī),然后由SSH 協(xié)議加密傳輸?shù)侥繕?biāo)服務(wù)器。
目前,SSH 協(xié)議不支持國(guó)密算法,所以,急需兼容國(guó)密算法的 SSH 協(xié)議及相關(guān)產(chǎn)品和標(biāo)準(zhǔn),以保證用戶登錄安全。
設(shè)備與計(jì)算層面的完整性保護(hù)實(shí)現(xiàn)方式有兩種:一種是使用內(nèi)置的密碼模塊如加密卡、密碼芯片、軟件密碼模塊等;另外一種是通過(guò)在外部部署密碼機(jī)或者智能密碼鑰匙等密碼產(chǎn)品,尤其是外部部署的加密設(shè)備,一般對(duì)性能要求較高。
當(dāng)前,操作系統(tǒng)、芯片等領(lǐng)域在國(guó)產(chǎn)化方面還有所欠缺,使用合規(guī)的密碼技術(shù)才能有效地彌補(bǔ)系統(tǒng)的安全性,同時(shí)也對(duì)國(guó)產(chǎn)密碼算法的性能提出了更高的要求。
4. 應(yīng)用和數(shù)據(jù)安全
應(yīng)用和數(shù)據(jù)層面主要是對(duì)信息系統(tǒng)中業(yè)務(wù)應(yīng)用以及系統(tǒng)的業(yè)務(wù)數(shù)據(jù)、用戶身份鑒別數(shù)據(jù)、系統(tǒng)資源訪問(wèn)控制信息、重要資源信息敏感標(biāo)記和日志等安全提出基于密碼技術(shù)的要求。
應(yīng)用與數(shù)據(jù)層需要實(shí)現(xiàn)以下密碼功能:對(duì)登錄的用戶進(jìn)行身份鑒別、保證系統(tǒng)資源訪問(wèn)控制信息和重要資源信息敏感標(biāo)記和日志的完整性、對(duì)傳輸和存儲(chǔ)過(guò)程中數(shù)據(jù)的機(jī)密性和完整性進(jìn)行保護(hù)、重要程序的安裝及卸載進(jìn)行安全控制,對(duì)于四級(jí)信息系統(tǒng),需要實(shí)現(xiàn)抗抵賴性。
在某些對(duì)數(shù)據(jù)源頭需要利用密碼技術(shù)提供保護(hù)的應(yīng)用場(chǎng)景下,僅僅依賴于網(wǎng)絡(luò)層和設(shè)備層提供的密碼技術(shù)是不夠的,仍需要在應(yīng)用和數(shù)據(jù)層提供密碼技術(shù)進(jìn)行保護(hù)。
例如,網(wǎng)絡(luò)層的密碼算法的不安全實(shí)現(xiàn)導(dǎo)致系統(tǒng)不安全,如“OpenSSL 心臟出血”漏洞,此時(shí)如果數(shù)據(jù)在應(yīng)用層也是加密處理的,數(shù)據(jù)傳輸過(guò)程中的機(jī)密性依然有保證。反之,數(shù)據(jù)經(jīng)網(wǎng)絡(luò)層和應(yīng)用層面的兩次加密,顯然對(duì)通信的性能有所降低,同時(shí)增加了成本。故而,只有提高國(guó)密算法的性能才能降低這些不利的影響。
系統(tǒng)的應(yīng)用涉及各行各業(yè),每種應(yīng)用需求都不一樣,所需要保護(hù)的數(shù)據(jù)也不同。在該層面所涉及的密碼技術(shù)及實(shí)現(xiàn)方式與上述兩個(gè)層面基本相同,所面臨的問(wèn)題也類(lèi)似,如用戶身份鑒別、訪問(wèn)控制信息完整性保護(hù)等。重要數(shù)據(jù)存儲(chǔ)加密和重要程序加載卸載的安全控制這部分需求是上述層面所沒(méi)有的。
存儲(chǔ)的機(jī)密性一般可以采用內(nèi)置的密碼模塊對(duì)數(shù)據(jù)加密保護(hù)或者將重要的數(shù)據(jù)傳輸?shù)椒?wù)器密碼機(jī)中,利用服務(wù)器密碼機(jī)進(jìn)行加密,將密文存儲(chǔ)在數(shù)據(jù)庫(kù)中,部分用戶直接利用數(shù)據(jù)庫(kù)自帶的加密功能進(jìn)行機(jī)密性保護(hù)。
對(duì)于業(yè)務(wù)用戶特別多的行業(yè)或場(chǎng)景,其加密存儲(chǔ)對(duì)算法的性能要求非常高,此時(shí),SM4 算法性能與 AES 算法相比有一定差距,特別是 AES 算法利用英特爾芯片指令集—AES-NI 加速優(yōu)化后差距更加明顯。重要程序加載卸載的安全一般可以借助數(shù)字簽名技術(shù)對(duì)其代碼簽名或者做 MAC 運(yùn)算保護(hù)其完整性。
三、其他應(yīng)用場(chǎng)景
隨著信息技術(shù)的飛速發(fā)展,智能手機(jī)等電子產(chǎn)品隨處可見(jiàn),方便了人們的生活、辦公, 如手機(jī)銀行、移動(dòng)辦公等,帶來(lái)便利的同時(shí)也引入了新的安全問(wèn)題。近年來(lái),對(duì)移動(dòng)終端及其 APP 的軟硬件攻擊層出不窮。
為了保護(hù)智能終端的數(shù)據(jù)安全,可以采用白盒加密或者協(xié)同簽名等技術(shù)。密碼算法的白盒實(shí)現(xiàn)可以有效地保護(hù)密鑰在算法運(yùn)行過(guò)程中被攻擊,但是其實(shí)現(xiàn)的查找表的規(guī)模非常大,較算法的標(biāo)準(zhǔn)實(shí)現(xiàn)所需要的存儲(chǔ)空間較大、運(yùn)行效率較低,不適合資源受限的場(chǎng)景下應(yīng)用。
協(xié)同簽名技術(shù)的基本思想是用戶的簽名私鑰不再僅由用戶產(chǎn)生,其子私鑰分別由用戶和后臺(tái)服務(wù)器各自生成,對(duì)文件的簽名需要雙方利用各自的私鑰對(duì)文件交互式計(jì)算,最終生成簽名結(jié)果,實(shí)現(xiàn)方式如圖 2 所示。
林等提出的方案在產(chǎn)生協(xié)同簽名的密鑰對(duì)時(shí),客戶端和服務(wù)器端分別需要做一次模逆運(yùn)算和一次點(diǎn)乘運(yùn)算,計(jì)算各自的子密鑰對(duì),且服務(wù)器端與客戶端要做兩次交互。
協(xié)同簽名產(chǎn)生過(guò)程中客戶端與服務(wù)器端需要交互兩次,其中客戶端需要計(jì)算一次點(diǎn)乘運(yùn)算,服務(wù)器端需要計(jì)算兩次點(diǎn)乘運(yùn)算,較標(biāo)準(zhǔn)的 SM2 數(shù)字簽名算法效率下降不少。
Lindell 提出基于同態(tài)加密函數(shù) Paillier 實(shí)現(xiàn)了的協(xié)同簽名方案,其實(shí)現(xiàn)方法與林的方案相似,不同的是簽名過(guò)程中的隨機(jī)數(shù)借助同態(tài)函數(shù)保護(hù)。
客戶端需要計(jì)算一次點(diǎn)乘計(jì)算、一次Paillier 加密運(yùn)算和一次解密運(yùn)算,服務(wù)器端需要計(jì)算一次點(diǎn)乘、一次加法同態(tài)運(yùn)算和一次乘法同態(tài)運(yùn)算,其效率相對(duì)更低。
圖 2 協(xié)同簽名示意圖
四、結(jié)語(yǔ)
密碼技術(shù)是保護(hù)網(wǎng)絡(luò)與信息系統(tǒng)安全的核心技術(shù)。信息系統(tǒng)安全穩(wěn)定的運(yùn)行離不開(kāi)商用密碼應(yīng)用安全性評(píng)估,以確保商用密碼合規(guī)、正確、有效地應(yīng)用。
由于國(guó)產(chǎn)密碼算法自身的性能等原因,使得商用密碼未大面積應(yīng)用,還需提高商用密碼性能以便更好地推廣商密算法, 實(shí)現(xiàn)信息系統(tǒng)的安全自主可控。