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