淺談加密算法以及加密系統(tǒng)架構(gòu)
背景
隨著信息互聯(lián)網(wǎng)的高速發(fā)展,金融行業(yè)對信息安全的重視程度在不斷增強(qiáng)。金融行業(yè)對信息安全的要求為信息系統(tǒng)的軟硬件以及數(shù)據(jù)受到保護(hù),不被破壞、泄露等,保證系統(tǒng)可以安全可靠地運(yùn)行。信息安全中的關(guān)鍵技術(shù)在于加密技術(shù),面對互聯(lián)網(wǎng)技術(shù)更新速度快的趨勢,金融行業(yè)對加密系統(tǒng)也提出了新的挑戰(zhàn),為保證銀行內(nèi)部系統(tǒng)的安全運(yùn)營,有效支持業(yè)務(wù)的向前發(fā)展,如何選擇加密算法以及合理部署加密系統(tǒng)架構(gòu)將是對銀行業(yè)的一大挑戰(zhàn)。
一、加密體制分類
加密體制可以分為對稱加密體制和非對稱加密體制。對稱加密體制是指加密/解密的密鑰是同一個密鑰,信息接收雙方都知道密鑰以及加解密算法,該算法主要用來對敏感數(shù)據(jù)信息進(jìn)行加密。非對稱加密體制是指加密/解密使用不同的密鑰,通常有兩個密鑰,稱為“公鑰”和“私鑰”,它們兩個配合使用才能打開加密文件。
1.1 對稱加密算法
對稱加密體制是假設(shè)通信雙方能夠通過一個安全信道協(xié)商一個會話密鑰,雙方通信時,發(fā)送者A利用加密密鑰k及加密算法將原消息m加密成密文c;接收者B收到密文c后,利用解密算法及密鑰k對密文解密得到原始消息m。
圖1:對稱加密模型
1.2 非對稱加密算法
非對稱加密體制又稱公鑰加密體制,非對稱加密模型如圖2所示。
圖2:非對稱加密模型
非對稱加密體制的特點(diǎn)如下:
1)消息的接收者有一對公鑰和私鑰,公鑰用于加密數(shù)據(jù),私鑰用于解密數(shù)據(jù)。在使用公鑰加密算法前,需要一個初始化過程安全地生成用戶的公鑰和私鑰,并將公鑰發(fā)布出去。
2)公鑰是公開的數(shù)據(jù),可以通過一定的方法讓任何用戶可以得到,即公鑰不對外保密。
3)利用公鑰及密文,在不知道私鑰的情況下,計算對應(yīng)的明文非常困難。
二、常見的加密算法
加密算法分為對稱加密算法、非對稱加密算法以及散列算法。
對稱加密算法
對稱加密算法常見有:DES、3DES、AES。
DES(DataEncryption Standard):
算法中數(shù)據(jù)以64比特分組進(jìn)行加密,有效密鑰長度為56位,數(shù)據(jù)加密標(biāo)準(zhǔn),速度較快,適用于加密大量數(shù)據(jù)的場合。
3DES(TripleDES):
是基于DES算法,用3個或2個DES密鑰加密一串明文,密碼長度最少為112位,最多168位,對一塊數(shù)據(jù)用三個不同的密鑰進(jìn)行三次加密,相比于DES,其強(qiáng)度更高。
AES(AdvancedEncryption Standard):
是一種帶有可變塊長和可變密鑰長度的迭代分組加密方法,分組長度為128位,密鑰長度為128位、192位或256位,高級加密標(biāo)準(zhǔn),其速度快,安全級別高。
非對稱加密算法
非對稱加密算法常見有RSA、DSA、ECC。
RSA:
是一個支持變長密鑰的公共密鑰算法,需要加密的文件塊的長度也是可變的。
DSA(DigitalSignature Algorithm):
數(shù)字簽名算法,是一種標(biāo)準(zhǔn)的數(shù)字簽名標(biāo)準(zhǔn)。它主要用于數(shù)字簽名和認(rèn)證,和RSA不同地方在于它不能用作加密、解密以及密鑰交換,只用于簽名。
ECC(EllipticCurves Cryptography):
橢圓曲線密碼編碼學(xué)。ECC和RSA相比,優(yōu)勢在于抗攻擊性強(qiáng)、計算量小,處理速度快、存儲空間占用小、帶寬要求低。
散列算法
散列算法常見有MD5、SHA1、SHA256。
MD5(MessageDigest Algorithm 5):
其算法以任意長度的消息文件為輸入,產(chǎn)生一個128比特的摘要作為輸出,是一種單向散列算法,非可逆,相同的明文產(chǎn)生相同的密文。
SHA1(SecureHash Algorithm 1):
其算法以任意長度的消息文件作為輸入,產(chǎn)生一個160比特的摘要作為輸出。
SHA256(SecureHash Algorithm 256):
是SHA2的一種,對于任意長度的消息,SHA256都會產(chǎn)生一個256位的哈希值,內(nèi)部狀態(tài)大小為256位。
三種算法的比較
對稱加密算法使用同一個密鑰加密和解密,速度快,適合給大量數(shù)據(jù)加密。對稱加密的客戶端與服務(wù)端使用的密鑰一樣,容易被破解,安全性不高。
非對稱加密算法使用公鑰加密,私鑰解密,私鑰簽名公鑰驗簽,安全性比對稱加密高,但是速度比較慢。非對稱加密的客戶端與服務(wù)端使用的密鑰不一樣,不易被破解,安全性高。
散列算法主要做防篡改簽名,它可以輸入任意長度的串都會得到一個固定長度的串。
國密算法
國密即國家密碼局認(rèn)定的國產(chǎn)密碼算法,其中包括對稱加密算法、橢圓曲線非對稱加密算法及雜湊算法,具體有SM2、SM3、SM4等。因其國密算法的安全性高以及國產(chǎn)密碼算法等特點(diǎn),現(xiàn)階段,G行的加密系統(tǒng)所采用的算法即為國密算法。
SM2
橢圓曲線非對稱加密算法,密碼強(qiáng)度為256位。該算法基于ECC,256位的SM2密碼強(qiáng)度高于2048位的RSA密碼強(qiáng)度,安全性較高,主要用于實(shí)現(xiàn)數(shù)字簽名和數(shù)據(jù)加密等功能。
SM3
雜湊算法,也稱為哈希算法,輸出的哈希值長度為256比特,其安全性要高于MD5算法以及SHA1算法,主要用于計算消息的摘要,檢驗消息的完整性。
SM4
分組對稱加密算法,數(shù)據(jù)分組長度為128比特,密鑰分組長度也為128比特,在安全性上面要高于3DES算法,主要用于實(shí)現(xiàn)數(shù)據(jù)的加密/解密運(yùn)算,保證數(shù)據(jù)和信息的機(jī)密性。
三、加密的常見功能
1)防止機(jī)密數(shù)據(jù)被泄露或篡改;
2)防止特權(quán)用戶查看私人數(shù)據(jù)文件;
3)防止不速之客查看機(jī)密的數(shù)據(jù)文件;
4)使入侵者不能輕易地查找一個系統(tǒng)的文件。
數(shù)據(jù)加密可在網(wǎng)絡(luò)OSI七層協(xié)議(OSI是Open System Interconnect的縮寫,意為開放式系統(tǒng)互聯(lián))的多層上實(shí)現(xiàn)、所以從加密技術(shù)應(yīng)用的邏輯位置看,有三種方式:
鏈路加密:
通常把網(wǎng)絡(luò)層以下的加密叫鏈路加密,主要用于保護(hù)通信節(jié)點(diǎn)間傳輸?shù)臄?shù)據(jù),加解密由置于線路上的密碼設(shè)備實(shí)現(xiàn)。
節(jié)點(diǎn)加密:
是對鏈路加密的改進(jìn)。在協(xié)議傳輸層上進(jìn)行加密,主要是對源節(jié)點(diǎn)和目標(biāo)節(jié)點(diǎn)之間傳輸數(shù)據(jù)進(jìn)行加密保護(hù),克服了鏈路加密在節(jié)點(diǎn)處易遭非法存取的缺點(diǎn)。
端對端加密
網(wǎng)絡(luò)層以上的加密稱為端對端加密。對應(yīng)用層的數(shù)據(jù)信息進(jìn)行加密,易于用軟件實(shí)現(xiàn),且成本低,但密鑰管理問題困難,主要適合大型網(wǎng)絡(luò)系統(tǒng)中信息在多個發(fā)方和收方之間傳輸?shù)那闆r。
四、密鑰管理體系
4.1 密鑰的生命周期
在任何安全系統(tǒng)中,密鑰的安全管理都是一個關(guān)鍵的環(huán)節(jié),如果密鑰得不到有效的保護(hù),那么設(shè)計再好的密碼體系又有什么用呢。所謂密鑰管理是指在參與通信的各方中建立密鑰并保護(hù)密鑰的一整套過程和機(jī)制。如果密鑰是一成不變的,那么密鑰管理就會非常簡單了,但是安全策略要求用戶要定期或者不定期的對密鑰進(jìn)行更換。在一個健全的密鑰管理體系中,密鑰是有其自身的產(chǎn)生、使用和消亡的過程,這些過程就構(gòu)成了子密鑰的生命周期。
密鑰的生命周期有4種主要狀態(tài):
4.2 密鑰管理生命周期
密鑰管理中系統(tǒng)所處的一系列不同的狀態(tài)被稱為密鑰管理生命周期,在密鑰生命周期的4種狀態(tài)下,密鑰管理生命周期的狀態(tài)如圖3所示。
圖3:密鑰管理生命周期
4.3 密鑰的層次結(jié)構(gòu)
把密鑰組織成層次結(jié)構(gòu)是一種有效保護(hù)密鑰的方法,除了在層次結(jié)構(gòu)底層的密鑰外,其他層次的密鑰的目的都是為了保護(hù)其下層的密鑰,而最底層的密鑰則是用來保護(hù)數(shù)據(jù)通信的安全。按照層次結(jié)構(gòu)劃分,將密鑰分為以下三類:
1)主密鑰:處于密鑰層次結(jié)構(gòu)的最高層,沒有其他密鑰保護(hù)主密鑰,所以主密鑰只能用人工建立的方式。
2)加密密鑰的密鑰:在密鑰傳輸協(xié)議中加密其他密鑰,可以保護(hù)其下層的密鑰安全傳輸。
3)數(shù)據(jù)密鑰:處于密鑰層次結(jié)構(gòu)的最下層,用于加密用戶的數(shù)據(jù),以使數(shù)據(jù)能夠安全傳輸。
這種層次結(jié)構(gòu)的方法限制了密鑰的使用,從而減少密鑰暴露的可能,使密鑰被攻擊的風(fēng)險大大降低。
五、加密平臺系統(tǒng)部署架構(gòu)
金融機(jī)構(gòu)通常會采購硬件加密機(jī)來完成數(shù)據(jù)的加解密算法需求,由于加密機(jī)設(shè)備的特殊安全設(shè)計,可以保證密鑰信息的高度安全:一、加密機(jī)通過邏輯設(shè)計保證密鑰明文不會暴露到加密機(jī)外部,所有涉密數(shù)據(jù)均在加密機(jī)內(nèi)部完成運(yùn)算;二、加密機(jī)具有自毀裝置,密鑰不可能通過物理方式非法獲取。另外,加密機(jī)采用高性能國產(chǎn)算法處理芯片,保證一臺加密機(jī)可以在一秒鐘內(nèi)處理幾十萬次的加密運(yùn)算。
以G行的加密系統(tǒng)部署為例,G行為提高密鑰統(tǒng)一安全管控水平,降低密鑰管理成本和運(yùn)行成本,建立了加密機(jī)綜合管理系統(tǒng),通過該系統(tǒng)為全行所有系統(tǒng)提供統(tǒng)一的安全加密運(yùn)算請求。加密機(jī)綜合管理系統(tǒng)的主要功能包括兩方面,其一為由密鑰管理平臺承載的密鑰管理功能,實(shí)現(xiàn)全行各類密鑰的集中產(chǎn)生、存儲、下發(fā)等密鑰管理功能;其二為加密平臺承載的加密算法服務(wù),為全行業(yè)務(wù)應(yīng)用系統(tǒng)提供集中統(tǒng)一的數(shù)據(jù)加解密服務(wù),主要包括報文MAC生成與驗證,用戶密碼轉(zhuǎn)換與校驗,涉密數(shù)據(jù)的加密與解密,數(shù)據(jù)報文的簽名與驗簽。由于加密平臺是加密機(jī)綜合管理系統(tǒng)的核心業(yè)務(wù)功能,主要介紹一下加密平臺的應(yīng)用邏輯架構(gòu),如圖4所示。
圖4:加密系統(tǒng)應(yīng)用邏輯架構(gòu)圖
為保障加密請求的交易成功率,加密平臺整體采用了三層負(fù)載均衡的邏輯架構(gòu),分別為:API端的負(fù)載均衡、接入服務(wù)的負(fù)載均衡、加密機(jī)接入的負(fù)載均衡。在這三層負(fù)載均衡框架下,可以保證交易系統(tǒng)成功率達(dá)到100%。
5.1 主要功能模塊
加密平臺的主要應(yīng)用功能模塊主要包括:
加密API:
部署在各個應(yīng)用系統(tǒng),由各個應(yīng)用系統(tǒng)直接調(diào)用發(fā)起加密算法請求。API在設(shè)計上采用了輪詢、超時、重發(fā)、故障探測與自動恢復(fù)等機(jī)制來保證成功率。
加密平臺一般x臺一組形成一個集群,加密API輪流將加密請求發(fā)送到后面的n個加密平臺,超時設(shè)置一般小于z毫秒,當(dāng)請求超時時自動重發(fā)到下一臺加密平臺,如果加密平臺返回碼為系統(tǒng)錯誤(非業(yè)務(wù)錯誤)時,API也會再次將請求自動發(fā)送到下一個平臺;當(dāng)請求某個加密平臺連續(xù)失敗次數(shù)達(dá)到設(shè)定次數(shù)時,會將該加密平臺置為異常,不再向該平臺發(fā)送請求,然后在固定時間間隔發(fā)起探測交易,如果探測成功再加入正常處理隊列。
Server1:
接收加密API的服務(wù)請求,對報文進(jìn)行格式校驗,根據(jù)密鑰名稱、交易碼確認(rèn)需要路由到的后臺加密機(jī),將交易請求放到對應(yīng)的共享內(nèi)存。為保障交易處理效率,加密平臺會預(yù)先將密鑰加載到內(nèi)存,并進(jìn)行排序。當(dāng)server1需要獲取密鑰屬性時,可以快速使用二分法查找算法找到對應(yīng)的密鑰。由于加密平臺需要面向全行數(shù)百個系統(tǒng)提供服務(wù),server1會面臨連結(jié)數(shù)過高的問題,server1采用多端口以及鏈路匯聚的方式解決。server1同時啟動十幾個偵聽端口對外提供服務(wù),使交易均衡分布在各個端口,同時預(yù)留一些端口作為容災(zāi)備份。另外,借鑒nginx鏈路匯聚的方式,采用epoll技術(shù),使得一個服務(wù)進(jìn)程可以最大承載數(shù)萬的連接請求。
Server2:
負(fù)責(zé)接收共享內(nèi)存中的請求報文,將請求報文轉(zhuǎn)換為加密機(jī)識別格式的請求報文,發(fā)送到對應(yīng)的加密機(jī)。該模塊實(shí)現(xiàn)主要的業(yè)務(wù)處理功能,通過基礎(chǔ)的加密機(jī)指令,形成近百個通用報文數(shù)據(jù)加解密請求,為上游提供服務(wù)。由于對稱密鑰、非對稱密鑰在處理效率上存在數(shù)十倍的差距,為避免互相干擾需要將加密機(jī)分為對稱密鑰加密機(jī)組、非對稱密鑰加密機(jī)組。每個server2進(jìn)程僅連接其中一個加密機(jī),同時啟動多個server2進(jìn)程并發(fā)處理共享內(nèi)存的加密請求。server2由加密機(jī)異常探測功能,當(dāng)發(fā)現(xiàn)加密機(jī)異常時,server2會將加密機(jī)設(shè)置為異常狀態(tài),然后server2自動退出處理,再由專門的服務(wù)程序進(jìn)行異常加密機(jī)的恢復(fù)探測。
密鑰管理功能:
由于通常加密請求僅是各種算法運(yùn)行,不會涉及數(shù)據(jù)的更新,因此加密平臺單獨(dú)將密鑰跟新相關(guān)的功能獨(dú)立出來。密鑰更新操作主要為密鑰的新增和同步密鑰。涉及的模塊主要包括server3和server4,server3用于處理密鑰管理交易,server4負(fù)責(zé)與數(shù)據(jù)庫進(jìn)行直接交互。
Server5:
負(fù)責(zé)將密鑰的更新操作同步到同組的其他加密服務(wù)器。
由于每一筆金融業(yè)務(wù)處理會涉及多支交易,每支交易在多個系統(tǒng)流轉(zhuǎn)中又會多次調(diào)用加密請求,因此加密平臺的處理效率對業(yè)務(wù)的整體處理效率有很大影響,在系統(tǒng)部署和程序設(shè)計時必須特別關(guān)注處理效率。目前加密平臺在部署上采用貼近調(diào)用系統(tǒng)分機(jī)房、分網(wǎng)絡(luò)域多集群分布式部署的方式。在這種部署模式下,加密平臺可以達(dá)到每筆加密請求響應(yīng)時間在ams左右,并能在高并發(fā)用戶下,提供極高的TPS的處理性能。
5.2 問題與挑戰(zhàn)
隨著銀行系統(tǒng)的發(fā)展,接入系統(tǒng)快速增長,分布式部署的加密平臺服務(wù)器數(shù)量也快速增長,帶來的首要問題是管理問題,包括:客戶端API的管理、加密平臺的管理、密鑰的管理。
API的管理問題主要是:加密系統(tǒng)不能完全掌握和控制各系統(tǒng)的API配置方式、使用方式及運(yùn)行狀態(tài),存在配置信息不規(guī)范,使用方式不標(biāo)準(zhǔn),運(yùn)行異常不能及時發(fā)現(xiàn)的問題。
加密平臺的管理問題主要是:加密平臺服務(wù)器多,集中維護(hù)管理困難,操作復(fù)雜,應(yīng)急處置效率不高的問題。
密鑰管理的問題主要是:加密平臺分布式部署后缺乏集中的密鑰管理中心,密鑰同步操作復(fù)雜,操作風(fēng)險高,容易出現(xiàn)多服務(wù)器間密鑰同步遺漏錯誤的問題。另外,還存在一個加密請求涉及多個密鑰但這些密鑰跨加密機(jī)不允許直接操作的問題。
隨著互聯(lián)網(wǎng)、大數(shù)據(jù)、云計算、人工智能、區(qū)塊鏈等技術(shù)創(chuàng)新與傳統(tǒng)金融服務(wù)的融合,未來的銀行信息系統(tǒng)也將朝著全面云化等技術(shù)體系演進(jìn)。當(dāng)越來越多的組件融合在一起,基于云的加密和密鑰管理廣泛應(yīng)用趨勢將逐漸加速,云技術(shù)能提供更靈活的安全服務(wù),在數(shù)據(jù)訪問、密鑰管理和數(shù)據(jù)保留策略方面取得更長遠(yuǎn)進(jìn)步;未來為建設(shè)集中的加密管控系統(tǒng),可以將加密系統(tǒng)與云技術(shù)結(jié)合,在云上更加高效集中的配置管理加密系統(tǒng),銀行系統(tǒng)建設(shè)的架構(gòu)將進(jìn)一步豐富銀行的基礎(chǔ)服務(wù)能力。
六、總結(jié)與展望
信息加密技術(shù)作為金融行業(yè)的安全運(yùn)營的重要一環(huán),其重要性不可忽略。隨著加密算法的公開化和解密技術(shù)的發(fā)展,加密算法的種類越來越豐富,其應(yīng)用場景涉及到用戶登錄、身份驗證及交易等,不同的應(yīng)用場景會使用到不同的加密算法來達(dá)到目標(biāo)。
伴隨著社會數(shù)字化的趨勢,未來加密算法將會持續(xù)深入地運(yùn)用到銀行業(yè)的系統(tǒng)中,技術(shù)方向也將朝著分布式架構(gòu)的路線更加深入演進(jìn);加密系統(tǒng)的應(yīng)用運(yùn)維管理工作將會更加合理,應(yīng)急工具與監(jiān)控的不斷完善與豐富也將促進(jìn)系統(tǒng)運(yùn)維的效率進(jìn)一步提高,增強(qiáng)運(yùn)維中心安全運(yùn)營的保障能力。




















 
 
 






 
 
 
 