□??〕ê幽鲜∷畔⒅行模?/p>
PKI/CA在水利電子政務中的應用前景展望
□常俊超(河南省水利信息中心)
PKI/CA能為各種電子政務應用提供可信的網絡運行環境,實現可靠的用戶身份認證,保護網絡上傳輸數據的機密性、完整性、真實性和不可否認性。作者通過對PKI/CA相關技術的論述,指出了當前水利電子政務應用系統存在的安全隱患,提出了使用PKI相關技術解決安全隱患的方案,對PKI/CA技術在水利電子政務中的應用前景進行了展望。
PKI;身份認證;數字簽名;數據加密
PKI(Public Key Infrastructure)即公鑰基礎設施,是用公鑰理論和技術實施、遵循既定標準并且能為網絡業務提供加密和數字簽名等密碼服務及所必須的密鑰和證書管理的一套技術和規范。PKI由公鑰技術、數字證書、證書發放機構和關于公鑰的安全策略等基本部分共同組成,PKI通過自動管理密鑰和數字證書,為用戶建立起一個安全的網絡運行環境,使用戶在多種應用環境下可以方便地使用加密和數字簽名技術,防止信息被篡改、偽造和假冒,確保網絡上傳輸數據信息的機密性、真實性、完整性和不可否認性。PKI是信息安全的核心,是目前國際上公認的保障開放式網絡環境下網絡和信息系統安全的最可靠、最可行、最有效的辦法。
PKI的基礎是公鑰加密理論和技術,與公鑰加密技術對應的是對稱密鑰加密技術。加密就是對消息明文進行處理,使其不可讀,通過對消息明文的隱藏,達到安全性的目的。密鑰是一種參數,它是在明文轉換為密文或將密文轉換為明文的算法中輸入的參數數據。
在公鑰加密中,每個用戶有兩個密鑰:公鑰和私鑰,這兩個密鑰之間存在著相互依存關系,即用其中任一個密鑰加密的信息只能用另一個密鑰進行解密。雖然公鑰與私鑰是成對出現的,但卻不能根據公鑰計算出私鑰。在進行加密通信前,公鑰必須先公開,信息的發送方用接收方的公鑰完成對數據的加密,形成密文,接收方用自己的私鑰完成對密文的解密,最終形成明文。在傳輸過程中,即使密文被別人截獲,也無法破解,因為該密文只有使用接收者的私鑰才能完成解密,而私鑰只有接收方一個人秘密掌握。非對稱密鑰加密技術有加密和認證兩種模型。目前,國際上流行的公鑰加密算法有RSA、ElGamal等。
散列函數也稱為消息摘要(Message Digest)、哈希(hash)函數或雜湊函數,它能將任意長度的二進制值映射為固定長度的較小二進制值,這個小的二進制值稱為散列值或消息摘要。散列值是一段數據唯一且極其緊湊的數值表示形式。任意兩個消息具有完全相同消息摘要的概率近于零,并且消息數據的任何一個微小的變化,都將導致散列值的顯著變化。
散列函數不是一種加密機制,它對要傳輸的數據進行運算生成消息摘要,確保數據在傳輸過程中沒有被修改而變化,保證信息的完整性和不可抵賴性。常見的散列函數算法有MD 5、SHA-1等。
數字簽名是公鑰密碼技術的一個重要應用,通過數字簽名,可以保證在通信過程中數據信息的完整性和不可否認性。
數字簽名包括對數據的簽名和對簽名的驗證兩個部分,其過程如圖1所示。

圖1 數字簽名和驗證簽名過程圖
第一步,發送方A對待簽名的文件做哈希運算,得到文件的哈希值。
第二步,A用他的私人密鑰對文件的哈希值進行加密,得到文件的數字簽名。
第三步,A將文件和文件的數字簽名一起發送給接收方B。
第四步,B用A發送的文件產生該文件的哈希值,同時用A的公開密鑰對該文件的數字簽名做解密運算。若解密得到的哈希值與自己產生的哈希值匹配,就能確認該數字簽名是發送方A的,所傳輸的信息沒有被篡改,確保了信息的完整性。
其中需要說明的是私鑰只有發送方A擁有,因此其他人無法代替發送方A簽名,這樣發送方A就無法否認簽名。而發送方A的公鑰是公開的,簽名算法無法對所簽的文件進行保密,如果需要保密,可以先用發送方A的私鑰對文件進行簽名,再用接收方B的公鑰對文件進行加密,這也被稱為二級加密。
由上述過程可以看出,數字簽名可以對發送的文件信息進行鑒別和驗證,防止文件信息在傳輸過程中被惡意篡改,保證文件信息在通信過程中的完整性和不可否認性。
數字證書是一種權威性的電子文件,它就像網絡計算環境中的一種身份證,證明某一主體(如人、服務器等)的身份及其公開密鑰的合法性,又稱為數字ID,數字證書通過第三方權威認證,幫助各個實體識別對方身份并證明自己的身份,具有真實性和防抵賴功能。
數字證書包含用戶身份信息、用戶公鑰信息以及第三方權威認證機構數字簽名的數據,數字證書采用公鑰體制,即利用一對互相匹配的密鑰進行加密、解密。每個用戶自己設定一把特定的僅為本人所掌握的私有密鑰(私鑰),用它進行解密和簽名;同時設定一把公共密鑰(公鑰)并由本人公開,為一組用戶所共享,用于加密和驗證簽名。
數字證書的產生過程如下:申請者首先利用非對稱密鑰算法產生一對公鑰和私鑰;然后用證書申請算法把自己的標識和公鑰變成數字證書申請文件,把數字申請文件傳遞給認證中心申請數字證書。認證中心首先核實申請者身份,以確信請求確實由用戶發送而來,然后利用自己的私鑰對證書申請文件、證書信息進行數字簽名,形成申請者的數字證書,用戶使用自己的數字證書進行各種相關網絡活動。
PKI是由PKI策略、軟硬件系統、認證中心(CA)、注冊機構(RA)、證書簽發系統和PKI應用等構成的安全體系,組成如圖2所示:

圖2 PKI組成圖
認證機構CA:CA(Certificate Authority)是PKI的核心組成部分,是PKI應用中權威的、可信任的、公正的第三方機構,它負責數字證書的簽發、驗證、更新、備份、吊銷和密鑰管理。
注冊機構RA:RA是用戶和CA的接口,它所獲得的用戶標識的正確性是CA頒發證書的關鍵。RA不僅支持面對面的登記,也可以支持遠程登記,如通過電子郵件、瀏覽器等方式登記。PKI系統中可以沒有RA,此時RA的功能由CA來承擔,最終用戶直接和CA進行交互。
證書庫:證書庫是CA頒發證書和撤消證書的集中存放地,可供公眾進行開放式的查詢,用戶可以從此處獲得其他用戶的證書和公鑰。
河南省水利信息化經過多年建設,取得了一定的成果:建設了覆蓋河南省水利系統各單位的計算機網絡系統,實現了數據、語音和視頻信息的互連互通,建設了公眾服務系統、電子郵件系統、視頻監控系統、綜合辦公等應用系統,由于沒有采用PKI相關技術,目前大部分應用系統存在如下安全隱患:
一是用戶身份無法確認:由于各應用系統大多采用“用戶名+口令”的方式進行用戶身份認證,這種認證方式的口令容易被破解,通過登錄的用戶名無法有效判斷系統用戶的真實身份,導致非法用戶可以偽造、假冒身份。
二是缺乏機密性保護:由于大多數應用系統通過HTTP協議進行信息傳輸,而HTTP協議是明文傳輸,敏感信息有可能在傳輸過程中被非法用戶截取,從而導致數據失密。
三是缺乏完整性保護:信息在傳輸過程中有可能被惡意篡改或部分信息丟失。
四是缺乏抗抵賴性:信息收發雙方如果對信息產生分歧,雙方都無法出具對另一方相關行為進行仲裁的依據。
PKI技術,可以很好地解決目前水利電子政務各應用系統中出現的這些安全問題,消除由此帶來的安全隱患。
基于CA數字證書的身份認證方式是近幾年發展起來的一種方便、安全的身份認證技術??蓪底肿C書保存到客戶端計算機,但更方便、更安全的是采用軟硬件相結合的強雙因子認證模式,將用戶數字證書和密鑰保存在USBKey中,并用口令進行保護。USBKey是一種USB接口的硬件設備,它內置單片機或智能卡芯片,利用內置的密碼算法實現對用戶身份的認證?;赨SBKey身份認證系統主要采用沖擊/響應的認證模式,實現對用戶的身份認證。
該認證模式在用戶訪問系統前,把存儲有數字證書和私鑰的USB-KEY插到客戶端計算機USB接口,在訪問系統進行身份驗證時,提示輸入保護密碼,先由客戶端向服務器發出一個驗證請求。服務器接到此請求后生成一個隨機數并通過網絡傳輸給客戶端(此為沖擊)??蛻舳藢⑹盏降碾S機數提供給USB-KEY,由使用該隨機數與存儲在USB-KEY中的密鑰進行簽名運算(如HMAC-MD 5)并得到一個結果作為認證證據傳給服務器(此為響應)。與此同時,服務器也使用該隨機數與存儲在服務器數據庫中的該客戶密鑰進行相同的簽名運算,如果服務器的運算結果與客戶端傳回的響應結果相同,則認為客戶端是一個合法用戶。
基于CA數字證書的身份認證可以廣泛應用于各種業務應用系統,如需要大量用戶登錄系統后處理公文、公務的綜合辦公系統、公文交換系統、材料交換系統和電子郵件系統,需要管理員登錄后臺進行管理維護的公眾服務網站系統,用于支持第三方CA認證的網絡管理設備,如VPN系統和防火墻系統,實現對用戶身份的安全可靠認證。確保非法用戶“進不來”,CA和單點登陸(SSO)相關技術結合,開發基于CA數字證書的單點登陸系統,實現水利系統各業務應用系統和網絡設備用戶資源的統一管理和認證,不但可以提高系統的安全性,而且還能提高系統的可用性和易用性,降低開發費用,大大促進水利信息化的發展。
數字簽名可以確保通過計算機網絡傳輸的數據信息的真實性、完整性和不可否認性,確保數據信息“搞不亂”,用戶行為“賴不掉”。
數字簽名在電子政務各應用系統有廣泛的應用前景:應用到綜合辦公系統工作流處理過程中,可以對公文或公務流轉任一環節處理結果進行數字簽名,確保處理結果的完整性和不可否認性;應用到公文交換系統,以電子印章形式,實現對所發公文信息的數字簽名,確保公文信息的真實性、完整性和不可否認性;電子郵件系統應用數字簽名技術,用戶可以選擇發送帶數字簽名的電子郵件,對方收到帶數字簽名的電子郵件后可以對數字簽名進行驗證,以確認郵件是否是你發出的,郵件內容有沒有經過任何篡改,確認郵件內容的真實可靠和不可抵賴,以實現安全的電子郵件。
加密是保證數據機密性的重要手段,使非法用戶“看不懂”加密數據,加密技術有對稱密鑰加密技術、公鑰加密技術、對稱和公鑰組合加密技術等。
對稱密鑰加密技術計算方法簡單,密鑰簡短,計算量小,加密速度快,加密效率高,破譯極其困難,占用的計算資源少,適合對大量數據進行加密,但密鑰的管理和分配問題比較困難。公鑰加密算法較好地解決了公鑰的分配問題,但計算復雜度高,加解密速度較慢,適用于小數據量數據加密。
在實際的加密通信過程中,為了保證加密運算的速度和解決密鑰分配問題,一般同時使用這兩種加密技術,取長補短,相輔相成,應用SSL(Security Socket Layer)協議加密數據就是二者結合的一個典型應用。SSL協議是目前Internet上點到點之間尤其是客戶端與服務器端之間進行安全數據通信所采用的最主要的協議。
SSL協議可分為記錄協議(SSL Record Protocol)和握手協議(SSL Handshake Protocol),記錄協議建立在可靠的傳輸協議(如TCP)之上,為高層協議提供數據封裝、壓縮和加密等基本功能的支持;握手協議建立在記錄協議之上,用于在實際的數據傳輸開始前,通訊雙方進行身份認證、協商加密算法和MAC算法以及加密密鑰等。SSL握手協議的詳細過程如下:

圖3 SSL協議握手過程圖
1.客戶端將它所支持的算法列表連同一個隨機數(該隨機數在密鑰產生過程中用作輸入)發送給服務器端。
2.服務器端從列表的內容中選擇一種加密算法,并將其連同一份包含服務器端公有密鑰的證書發送給客戶端。該證書還包含了用于認證目的的服務器標識,服務器端同時也提供了一個隨機數,作為密鑰產生過程部分的輸入。
3.客戶端對服務器端的證書進行驗證,并抽取服務器端的公有密鑰。然后,再產生一個稱為pre-master-secret的隨機密碼串,并使用服務器端的公有密鑰對其進行加密。最后,客戶端將加密后的信息發送給服務器端。
4.客戶端與服務器端根據pre-master-secret以及客戶端與服務器端的隨機數獨立計算出加密和MAC密鑰。
5.客戶端將所有握手消息的MAC值發送給服務器端。
6.服務器端將所有握手消息的MAC值發送給客戶端。SSL握手過程的描述如圖3所示;
信息的發送方和接收方用協商的密鑰和加密算法,實現對信息的加密和解密,從而實現了對信息的加密傳輸,保證了信息在網絡傳輸的機密性。
在SSL握手過程結束后,客戶端和服務器端就使用的加密算法達到了一致,并擁有了一組與該加密算法一起使用的加密密鑰。更重要的是,他們可以確信攻擊者沒有干擾握手過程,所以磋商過程反映了通信雙方的真實意圖。
HTTPS協議內置于瀏覽器中,是SSL協議的具體實現,HTTPS協議使用SSL在發送方把原始數據進行加密,然后在接收方進行解密,加密和解密需要發送方和接收方通過交換共知的密鑰來實現,因此,所傳送的數據不容易被網絡黑客截獲和解密。
盡管加密保護了數據的機密性,但需要消耗一定的計算資源,影響應用系統的反應速度,所以,在具體應用中,應該靈活選用,僅對敏感數據進行加密。
PKI是保障信息安全不可或缺的基礎性設施,是保障開放式網絡環境下網絡和信息系統安全的最可靠、最可行、最有效的辦法。水利作為國家的基礎產業,面臨難得的發展機遇,河南省水利信息化,有大量的敏感數據需要保護,因此,在新一輪的信息化建設中,有必要把PKI作為基礎性安全保障設施優先考慮,盡早建設,以技術手段,加強對敏感數據的保護,保障各種水利業務應用系統、電子政務系統的安全。
[1]關振勝.公鑰基礎設施PKI與認證機構CA[M].北京:電子工業出版,2002:1-22.
[2]洪琳,李展.數字簽名、數字信封和數字證書[J].計算機應用,2002,20(2):41-42.
[3]AndrewS.Tanenbaum.計算機網絡[M].第4版.潘愛民譯.北京:清華大學出版社,2004,8:23-47.
[4]程徐彬,畢紅軍.基于OpenSSL的用戶證書管理系統研究[J].信息安全與通信保密,2008,09:72-73.
[5]李濤.網絡安全概論[M].北京:電子工業出版社,2004.
??〕?,36歲,河南省水利信息中心工程師,主要從事軟件開發。
2011-02-08