安文政
(中國電信股份有限公司日照分公司研發(fā)中心 山東 日照 276800)
隨著信息技術(shù)的快速發(fā)展和全球化進程的加速,網(wǎng)絡(luò)數(shù)據(jù)傳輸已經(jīng)滲透到人們的日常生活和工作中,成為不可或缺的一部分。然而,由于網(wǎng)絡(luò)環(huán)境的復(fù)雜性和開放性,文件傳輸過程中存在著諸多安全隱患,如數(shù)據(jù)泄露、篡改和竊取等。因此,如何確保文件的安全傳輸一直是信息行業(yè)關(guān)注的熱門話題之一。
基于國家安全戰(zhàn)略的考慮,我國從2009 年開始加大了對國產(chǎn)密碼算法的推廣。信創(chuàng),作為國家戰(zhàn)略布局,旨在實現(xiàn)信息技術(shù)領(lǐng)域的科技自立自強,保障國家信息安全。“十四五”規(guī)劃中明確指出,到2025 年,行政辦公及電子政務(wù)系統(tǒng)要全部完成國產(chǎn)化替代。國資委79 號文件《關(guān)于開展對標世界一流企業(yè)價值創(chuàng)造行動的通知》部署了國、央企信創(chuàng)國產(chǎn)化的具體要求和推進時間表,要求到2027 年100%完成信創(chuàng)替代。當前,關(guān)鍵基礎(chǔ)設(shè)施行業(yè)的信創(chuàng)化進入快速推進期,國密應(yīng)用的替換和強制要求已成為必然。
國產(chǎn)SM 密碼算法作為國產(chǎn)密碼算法中的一類,已經(jīng)被廣泛應(yīng)用于各種安全領(lǐng)域。SM 算法具有自主可控、安全強度高、運算速度快等優(yōu)點,為信息記錄的安全存儲、安全傳輸提供了新的解決方案。它不僅提高了數(shù)據(jù)傳輸?shù)陌踩裕€為國家信息安全戰(zhàn)略的實施提供了有力支持。
目前,SM 系列算法分為SM1、SM2、SM3、SM4、SM7 和SM9。其中,SM1、SM4 和SM7 是對稱算法,SM2 和SM9 是非對稱算法,而SM3 是摘要算法[1]。
(1)SM1 是一種對稱加密算法,其算法并不公開。在調(diào)用該算法時,需要通過加密芯片接口來實現(xiàn)。由于SM1算法具有較高的安全性,因此在數(shù)據(jù)傳輸、存儲和訪問控制等方面都有廣泛的應(yīng)用。此外,SM1 還可以用于數(shù)字簽名、身份認證等安全應(yīng)用中,以確保數(shù)據(jù)的完整性和可信度。其加密強度與高級加密標準(advanced encryption standard,AES)相當。
(2)SM2 是一種非對稱加密算法,它基于橢圓曲線密碼學(xué)(elliptic curve cryptography,ECC)算法,其算法是公開的。由于該算法基于ECC,所以其簽名速度與密鑰生成速度都快于RSA(Rivest-Shamir-Adleman)。更重要的是,ECC 256 位(SM2 采用的就是ECC 256 位的一種)安全強度比RSA 2048 位還要高。這使得SM2 適用于數(shù)字簽名、密鑰協(xié)商、數(shù)據(jù)加密等場景[2]。SM2 數(shù)字簽名算法與ECDSA 算法的性能受兩者選用的雜湊函數(shù)影響,但總體上性能相近;當數(shù)據(jù)量較少時,SM2 公鑰加密算法與ECIES 算法性能取決于加密數(shù)據(jù)的規(guī)模,隨著數(shù)據(jù)量增多,后者的性能顯著優(yōu)于前者[3]。
(3)SM3 是一種消息摘要算法,其性能與SHA-256 算法相近[3]。這個算法是公開的,主要用于數(shù)據(jù)完整性校驗和數(shù)字簽名等場景。它可以產(chǎn)生一個256 位的校驗結(jié)果。
(4)SM4 是一種對稱加密分組密碼算法,其算法是公開的。它被設(shè)計用于加密大數(shù)據(jù)量,具有128 位的密鑰長度和分組長度。這種設(shè)計使得它既高效又安全,非常適用于數(shù)據(jù)加密和密鑰協(xié)商等場景。根據(jù)一些測試,SM4 的性能介于AES 與三重數(shù)字加密標準(triple data encryption standard,3DES)之間[3]。
(5)SM7 是一種對稱加密算法,其算法不公開,采用分組加密算法,分組長度為128 位,密鑰長度也為128 位。這種設(shè)計使得SM7 非常適合于非接觸式IC 卡的使用場景,包括但不限于身份識別類應(yīng)用(如門禁卡等),票務(wù)類應(yīng)用(大型賽事門票、展會門票),支付與通卡類應(yīng)用(積分消費卡、校園一卡通、企業(yè)一卡通等)[4]。
(6)SM9 是基于非對稱密碼體制的標識密碼算法,其算法是公開的。標識密碼將用戶的標識(如手機號碼、微信號、網(wǎng)卡MAC 等)作為公鑰,省略了交換數(shù)字證書和公鑰的過程,使得安全系統(tǒng)變得易于部署和管理,非常適合端對端離線安全通信、云端數(shù)據(jù)加密、基于屬性加密、基于策略加密的各種場合[5]。
在進行文件傳輸時,特別是通過HTTP 等方式下載文件,通過查看網(wǎng)頁源碼或抓包工具極易得到文件原始地址,得到原始地址后,會導(dǎo)致文件下載難以管控。另外,對于無紙化會議等場景,個別重要文件需要保密存儲、限制有權(quán)限的用戶下載、限制查看權(quán)限等保密需求,傳統(tǒng)的明文文件下載及查看方式都是不能滿足的。
而傳統(tǒng)的加密方法,多為簡單的對稱加密,如ZIP 壓縮文件包的加密方式,需要將密鑰存儲于客戶端(或隨文件下發(fā)),一旦客戶端程序被反編譯或數(shù)據(jù)被抓包、窮舉破解,極易發(fā)現(xiàn)密鑰進而解密文件。
政府機關(guān)、部分國企,已經(jīng)對新研發(fā)系統(tǒng)要求國產(chǎn)化、使用國密算法。
本文以重要會議文件的存儲、下載、客戶端查看過程為例,詳細闡述了如何通過SM2、SM3、SM4 三種常用的國密算法對文件進行加解密或摘要處理的過程。為便于理解,我們將過程中涉及到的用戶、密鑰、文件均配以標識符。
(1)原始文件的加密存儲:原始文件通過使用非對稱加密算法進行加密存儲,以確保即使在非法復(fù)制的情況下也無法查看。在文件提供方將原始明文文件A 上傳到服務(wù)器S 后,服務(wù)器S 的加密系統(tǒng)將使用SM2 非對稱加密算法生成非對稱密鑰的公鑰和私鑰,并使用公鑰對原始明文文件A 進行非對稱加密以生成加密文件B 并保存,同時刪除明文文件A。服務(wù)器S 將在適當?shù)奈恢帽4嫠借€和加密文件的對應(yīng)關(guān)系,建議將私鑰存儲在USB 介質(zhì)或另一臺機器上(必須有訪問驗證)以提高安全性。
(2)處理下載請求:當文件使用者U 請求下載文件時,文件服務(wù)器S 將使用私鑰解密文件B 以獲得臨時明文文件流A-Temp(為增強安全性,不寫入硬盤,僅存儲于內(nèi)存中)。同時,服務(wù)器S 將使用文件使用者U 的賬號UName 或其他標識型信息(假如使用者U 的客戶端也有這些信息)U-Info 以及隨機數(shù)Rand(可為4 ~8 位隨機數(shù)字,用于下發(fā)到文件使用者U 的手機)等進行字符串重組,通過SM3 摘要算法生成密鑰種子Seed,并使用密鑰種子Seed 生成對稱密鑰K,然后使用對稱密鑰K 對臨時明文文件流A-Temp 進行SM4 對稱加密以生成加密文件C 并寫入磁盤、生成下載網(wǎng)址URL-Down。加密完成后,將清空臨時明文文件流A-Temp。
(3)客戶端解密并查看文件:服務(wù)器S 將調(diào)用短信接口,向文件使用者U 的手機發(fā)送包含隨機數(shù)Rand 的短信。文件使用者U 的客戶端將使用與步驟(2)中相同的算法(包括使用者U 的標識型信息U-Info、從短信接收到的隨機數(shù)Rand 等信息來生成密鑰種子Seed),通過SM3摘要算法計算得到對稱密鑰K,然后使用該密鑰K 對步驟(2)中下發(fā)的文件網(wǎng)址URL-Down 進行下載,從而獲得加密文件C 并使用密鑰K 進行解密,最終生成明文文件A(文件A 并不保存到使用者U 的終端硬盤或其他存儲介質(zhì)上,僅可查看)。
(4)善后事宜:當文件使用者U 的客戶端完成解密并查看文件后,將通知服務(wù)器S。服務(wù)器S 將刪除加密文件C,清除下載網(wǎng)址URL-Down,從而完成此次文件加密傳輸過程。
整個過程如圖1 所示。
圖1 文件加解密處理過程流程圖
圖2 為原始文件上傳服務(wù)器的過程。上傳文件時選擇加密選項,服務(wù)器會采用SM2 非對稱算法,生成密鑰對并加密文件。
圖2 上傳文件過程
圖3 為服務(wù)端加、解密過程,可以看到,服務(wù)端采用非對稱解密速度非常快,僅需37 ms。加密時由于需要讀取原始文件和產(chǎn)生密鑰對,耗時1 863 ms(圖3 中顯示文件大小為256 228 Bytes,換算為kB 的計算方法為:256 228/1 024=250.22 kB,為圖2 中所顯示的文件大?。?/p>
圖3 服務(wù)端加解密
圖4 為手機客戶端(測試機為華為暢享10 S,中低端配置手機)對文件解密的臨時日志,產(chǎn)生的密鑰長度為128 位,對于接收到的235.63 kB 的密文,僅需要126 ms即可解密并正常查看。
圖4 手機客戶端解密日志
特點1:密鑰不存儲于客戶端,也不通過網(wǎng)絡(luò)下發(fā),而是通過手機短信每次僅發(fā)送部分字符作為密鑰種子,由自主研發(fā)的算法重新生成密鑰,保證了安全性。
特點2:原始文件經(jīng)過SM2 非對稱加密存儲于服務(wù)器,安全性極高(資料顯示,采用SM2 等加密算法存儲的文件安全性高于3DES 方式,而通過窮舉法解密3DES 文件,約需要數(shù)年才能解密)。
特點3:服務(wù)端非對稱密鑰加解密保證存儲的安全性,加解密速度快(可接受范圍時間),解決了非對稱密鑰方式在手機等移動終端上解密耗時大的問題;手機等移動終端采用對稱解密方式,能更快解密文件,提升用戶體驗。
特點4:每次下載都隨機生成對稱密鑰,只有使用者的手機等移動終端才能收到密鑰種子的部分信息,只有使用解密客戶端才能解密文件,安全程度高(此過程會影響文件查看效率,可根據(jù)文件安全級別,選擇該功能)。
特點5:沒有固定的文件存儲網(wǎng)址,每次下載都是新生成的,保護了文件免遭濫下載。
本方案已在筆者所在城市的某政府機關(guān)和部分國企的無紙化會議項目中得到應(yīng)用。該系統(tǒng)主要提供會議設(shè)置、文件保管、與會者在線閱讀、筆記等功能。通過采用國密算法和服務(wù)端國產(chǎn)化,實現(xiàn)了文件的加密存儲、傳輸和無緩存閱讀。實施一年多來,已處理會議電子文件不低于3 000 份,同時獲得了安全性和處理效率方面的好評。
SM 密碼算法作為國產(chǎn)密碼算法的杰出代表,在信息技術(shù)創(chuàng)新應(yīng)用中發(fā)揮著越來越關(guān)鍵的作用。
首先,SM 密碼算法顯著提高了系統(tǒng)安全性。相比傳統(tǒng)的加密算法,SM 密碼算法的靈活搭配使用,能夠有效地防范黑客入侵和數(shù)據(jù)泄露。同時,隨著硬件和操作系統(tǒng)的國產(chǎn)化,系統(tǒng)的整體安全性會得到更全面的保障。
其次,SM 密碼算法具有高自主可控性。由我國自主研發(fā)的SM 密碼算法具有完全自主知識產(chǎn)權(quán)。這意味著,在信息安全領(lǐng)域,我們不再完全依賴于國外技術(shù),而是可以自主實現(xiàn)技術(shù)突破和產(chǎn)業(yè)升級。同時,由于SM 密碼算法的自主可控性,政府和企業(yè)在使用過程中,能夠更好地保障數(shù)據(jù)安全和隱私權(quán)益,有效避免一些后門軟件的植入或竊取信息。
再次,SM 密碼算法具有良好的軟硬件性能。在加密速度方面,SM 密碼算法的運算效率不亞于國外同類算法。這使得SM 密碼算法在處理大量數(shù)據(jù)時,能夠更好地滿足實時性要求,優(yōu)化了信息系統(tǒng)的性能。
最后,SM 密碼算法支持多種平臺和硬件環(huán)境,具有良好的可移植性。在多款國產(chǎn)化服務(wù)端系統(tǒng)、安卓、鴻蒙等客戶端系統(tǒng)測試中均無使用障礙,可以更容易地將其集成到現(xiàn)有信息系統(tǒng)中,降低了企業(yè)和開發(fā)者的技術(shù)門檻和成本。
總之,應(yīng)用SM 密碼算法可以提高信息系統(tǒng)的安全性、自主可控性,并優(yōu)化系統(tǒng)性能。同時,可以降低對外部技術(shù)的依賴,提高自主創(chuàng)新能力和國家安全水平。此外,它可以進一步推動我國信息技術(shù)產(chǎn)業(yè)的發(fā)展和壯大,提高我國在全球信息技術(shù)領(lǐng)域的地位和影響力。未來可以進一步拓展SM 密碼算法的使用場景,替換掉國外密碼算法,真正做到“國產(chǎn)化”。