常瑜 王欣
1 密碼技術特性
密碼技術可以為信息網絡中的電子化信息,如網上銀行業務中發生和傳遞的各種信息,在其產生、交換、使用和存儲等過程中提供四種安全保證:
第一是機密性,機密性或隱私性保護保證信息不被非法獲得;
第二是完整性,數據完整性保護保證信息不被無意或有意改動;
第三是真實性,真實性保證信息的發送方和接收方的身份得到惟一性確認,這樣信息的發送和接收雙方就都知道信息的來源和去處;
第四是不可否認性,不可否認性提供對數據完整性和來源的第三方驗證,不可否認性服務可以在發生訴訟時提供重要的法律證據。
使用密碼技術可以提供上述安全保證,并可以將其具體化為密碼服務系統,也就是說,將上述安全保證具體轉化為密碼服務系統的加密、解密、簽名和驗證簽名操作,這被稱為密碼服務。
2 數字證書
有人把數字證書俗稱為“網絡身份證”,其是以密碼技術為核心,結合政策法規、安全管理于一體,用于在互聯網信息世界中標志用戶身份的電子身份憑證和電子簽章載體。
2.1 對稱密碼算法與公鑰密碼算法
對稱密鑰加密的特點是加密和解密使用相同的密鑰,它要求發送者和接收者在安全通信之前先商定一個密鑰,經過加密的信息可以通過非安全的媒介,自由地從一個地方發送到另一個地方。用對稱密鑰加密技術構成的密碼系統的安全性依賴于密鑰保密,泄漏密鑰就意味著加密所帶來的安全性不復存在,只要消息需要加密保護,密鑰就必須保密。
對稱密鑰加密技術的最大局限性在于必須設計出一些方法來安全地分發和管理作為系統核心的密鑰,通常稱為密鑰管理。當涉及到很多個當事方時,就會導致巨大的幕后工作量和時間延誤;而且,為了將密鑰泄露導致的損失降至最低,必須經常變更密鑰,這就又增加了幕后工作的復雜性。
公開密鑰加密也叫非對稱密鑰加密,它的特點是加密和解密使用不同的密鑰,這兩把密鑰在數學上是相關的,加密密鑰可以公開,稱為公鑰;解密密鑰必須保密,稱為私鑰。公開密鑰算法的安全性是基于知道公鑰并且不能通過計算推導出私鑰這個前提的。
比如用戶A想要使用用戶B的公鑰將信息加密發送給用戶B,他就要從在線公鑰數據庫中找到用戶B的公鑰,而用戶B可以使用自己惟一的私鑰來進行解密。這種方法就保證了信息的機密性,因為用戶A知道只有用戶B才可以解密并閱讀這份信息。
公開密鑰算法在計算上的復雜性,使得它的加密和解密效率大大低于對稱密鑰算法,所以公鑰加密技術不用來加密大的文件。聯合使用對稱密鑰加密技術和公開密鑰加密技術進行加密保護會更為有效和快捷。例如,用戶A生成一個一次性的對稱密鑰并用它對文件進行加密,然后再使用用戶B的公鑰對一次性的對稱密鑰加密,將經過加密的對稱密鑰和文件發送給用戶B;用戶B利用自己的私鑰解密對稱密鑰,然后用對稱密鑰解密文件,這種方式稱為數字信。
如果把公鑰和私鑰反過來使用,用私鑰加密而用公鑰解密,就是數字簽名的基礎,并據此進行身份認證,保證數據的完整性和不可否認性。例如,如果用戶B想對一份電子文件進行數字簽名,他就可以用其私鑰對其進行加密。因為他的公鑰是公開的,因此任何知道他的公鑰的人都可以解密文件,而私鑰只有用戶B自己有,這就構成了用戶B數字簽名的基礎。
公開密鑰加密技術的使用克服了對稱密鑰加密技術的局限性,與對稱密鑰加密技術聯合使用可以完整地提供機密性、完整性、真實性和不可否認性的安全保證,并且很好地克服了密鑰管理的復雜性。用公開密鑰加密技術構成的密碼系統的安全性依賴于私鑰的保密,泄漏私鑰就意味著加密所帶來的安全性和簽名所帶來的不可否認性不復存在,所以私鑰必須保密。
2.2 簽名技術需要解決的問題
公鑰密碼技術讓公鑰公開、私鑰保密,解決了密碼系統中密鑰分發的復雜性和安全性問題,使密碼技術得以在保障計算機信息系統安全中廣泛應用,并將安全問題最終歸結為如何證明和保證公鑰的真實性和有效性的問題。
當然,在網上銀行業務這樣的實際應用中,還有兩個問題必須要解決:一是如何確定一個用戶的公鑰確實屬于這個用戶,并保證用戶與其公鑰之間的聯系真實有效;另外就是如何保證用戶的私鑰在被破壞、丟失時或者在有關機構需要取證時能夠解密數據。
第一個問題的解決方法是建立一個大家都能信任的權威機構,由這個權威機構用自己的簽名密鑰對用戶的名稱、用戶的公鑰和其他一些識別信息進行數字簽名,形成一個將用戶與其公鑰聯系起來的電子信任狀,這個電子信任狀就稱為數字證書,而這個權威機構就稱為CA(Certificate Authority)。由CA簽發的數字證書貯存在一個目錄或其他數據庫中,用戶可以像查電話簿一樣查找別人的證書,證書中CA的簽名保證證書中的公鑰確實屬于持有該證書的人。
第二個問題的解決方法是使用兩套密鑰分別用于加密和數字簽名,簽名密鑰用于解決真實性和非否認性的問題,而加密密鑰用于解決數據機密性的問題。而備份加密私鑰的地方稱為密鑰管理中心KMC(Key Management Center),通常加密密鑰由它產生,其公鑰也由CA簽發為數字證書。這樣,數字證書的安全性和可靠性都可以得到保證。
2.3 數字證書的管理
用戶的簽名私鑰自己產生并保存,其公鑰由CA簽發為簽名證書。簽名私鑰不可以備份,以免破壞其不可否認性。
用戶的加密私鑰由KMC產生,其公鑰由CA簽發為加密證書。加密私鑰通過安全的手段發給用戶的同時也備份在KMC。KMC按照密鑰的有效期管理密鑰,密鑰超過有效期,用戶可以再申請一個新的密鑰。在用戶方,超過有效期的密鑰不能再使用;在KMC方,超過有效期的密鑰也不能刪除,只能將其歸入歷史密鑰檔案,用戶或有關機構可以申請恢復這個密鑰,用這個密鑰來解密在有效期內加密過的文件。
CA按照一整套安全和管理策略,管理數字證書的生成、簽發、更新、撤銷和中止。同時,CA和KMC也組成了數字證書的認證系統。
2.4 數字證書和電子簽名在網銀的應用策略
在應用系統中,簽名方使用自己的簽名私鑰對信息或證據簽名,驗證方使用該用戶的簽名證書來驗證簽名,由于證書與用戶的身份綁定,驗證證書也可以驗證用戶的身份,從而實現完整性、真實性和不可否認性的安全保證。發送方使用接收方的加密證書來保護會話密鑰,用會話密鑰加密信息,接收方用自己的私鑰解密會話密鑰,再用會話密鑰解密信息,從而實現機密性的保證。
用戶的身份必須是真實可靠的,簽名才能有實際意義,這是使用數字簽名的基礎。CFCA通過在銀行設立證書的注冊審批機構,即RA來審核用戶的身份。RA系統一般為兩層結構,在商業銀行的總行等證書應用的機構總部設置總部RA;而在商業銀行的分/支行等證書應用機構的分支機構設置本地RA(簡稱LRA)。銀行在審核用戶身份時還包括用戶的帳戶等金融資信信息,并將通過審核的用戶信息安全傳輸到CFCA。
銀行對于CFCA來說有兩個角色,首先銀行作為CFCA的證書注冊審批機構RA,是CFCA認證服務的一個重要環節,相當于CFCA認證系統的延伸。從這個意義上,銀行應審核用戶的身份信息,保證用戶身份的真實性,CFCA應保證CA系統的安全運行,為通過審核的用戶發放數字證書;銀行的另一個角色就是作為證書的使用者(例如銀行操作人員的證書、網站證書等),在這個意義上,銀行應保管好證書的私鑰,在證書不可用時要及時通知CA。CFCA則通過數字證書向銀行提供信息安全傳輸和信息不可否認性的服務。例如,曾經有國內一個銀行的用戶,對網銀的一筆交易產生疑問,認為自己沒有做過這筆交易。為此,銀行要求CFCA對這筆交易的有效性進行技術確認。
今后隨著《電子簽名法》的實施,類似的這種爭議或糾紛就能有法可以,能更好地保障銀行和用戶的權益。
參考文獻
[1]魯士文.計算機網絡習題與解析[M],北京:清華大學出版社,2008.
[2]張曾科.計算機網絡[M].北京:清華大學出版社,2003.
[3]Eric A Fisch. Secure Computers and Networks[M].New York:CRC Press,2002.
[4]劉兵.計算機網絡實驗教程[M].北京:中國水利水電出版社,2009.
[5]J.Postel.RFC791: Internet Protocol[S].September 1981.
作者簡介
常瑜,男,吉林省通化市人。
王欣,女,吉林省通化市人。