天天看點

公鑰基礎設施PKI 簡介

随着Internet 的普及,人們通過網際網路進行溝通越來越多,相應的通過網絡進行商務活

動即電子商務也得到了廣泛的發展。電子商務為我國企業開拓國際國内市場、利用好國内

外各種資源提供了一個千載難逢的良機。電子商務對企業來說真正展現了平等 競争、高效

率、低成本、高品質的優勢,能讓企業在激烈的市場競争中把握商機、脫穎而出。發達國

家已經把電子商務作為21 世紀國家經濟的增長重點,我國的有關部門也正在大力推進我國

企業發展電子商務。然而随着電子商務的飛速發展也相應的引發出一些Internet 安全問題。

概括起來,進行電子交易的網際網路使用者所面臨的安全問題有: 一,保密性 :如何保證電

子商務中涉及的大量保密資訊在公開網絡的傳輸過程中不被竊取;二,完整性 :如何保證

電子商務中所傳輸的交易資訊不被中途篡改及通過重複發送進行虛假交易;三,身份認證

與授權 :在電子商務的交易過程中,如何對雙方進行認證,以保證交易雙方身份的正确性;

四,抗抵賴 :在電子商務的交易完成後,如何保證交易的任何一方無法否認已發生的交易。

這些安全問題将在很大程度上限制電子商務的進一步發展,是以如何保證Internet 網上資訊

傳輸的安全,已成為發展電子商務的重要環節。

為解決這些Internet 的安全問題,世界各國對其進行了多年的研究,初步形成了一套完

整的Internet 安全解決方案,即目前被廣泛采用的PKI 技術(Public Key Infrastructure-公鑰基

礎設施),PKI(公鑰基礎設施)技術采用證書管理公鑰,通過第三方的可信任機構--認證中

心CA(Certificate Authority),把使用者的公鑰和使用者的其他辨別資訊(如名稱、e-mail、身份

證号等)捆綁在一起,在Internet 網上驗證使用者的身份。目前,通用的辦法是采用基于PKI

結構結合數字證書,通過把要傳輸的數字資訊進行加密,保證資訊傳輸的保密性、完整性,

簽名保證身份的真實性和抗抵賴。

二 PKI 的基本定義與組成

PKI 的基本定義十分簡單,所謂PKI 就是一個用公鑰概念和技術實施和提供安全服務

的具有普适性的安全基礎設施。

PKI 是一種新的安全技術,它由公開密鑰密碼技術、數字證書、證書發放機構(CA)

和關于公開密鑰的安全政策等基本成分共同組成的。PKI 是利用公鑰技術實作電子商務安全

的一種體系,是一種基礎設施,網絡通訊、網上交易是利用它來保證安全的。從某種意義上

講,PKI 包含了安全認證系統,即安全認證系統-CA 系統是PKI 不可缺的組成部分。

PKI(Public Key Infrastructure)公鑰基礎設施是提供公鑰加密和數字簽名服務的系統或

平台,目的是為了管理密鑰和證書。一個機構通過采用PKI 架構管理密鑰和證書可以建立

一個安全的網絡環境。PKI 主要包括四個部分:X.509 格式的證書(X.509 V3)和證書廢止

清單CRL(X.509 V2);CA 操作協定;CA 管理協定;CA 政策制定。一個典型、完整、

有效的PKI 應用系統至少應具有以下五個部分;

1) 認證中心CA CA 是PKI 的核心,CA 負責管理PKI 結構下的所有使用者(包括

各種應用程式)的證書,把使用者的公鑰和使用者的其他資訊捆綁在一起,在網上

驗證使用者的身份,CA 還要負責使用者證書的黑名單登記和黑名單釋出,後面有

CA 的較長的描述。

2) X.500 目錄伺服器 X.500 目錄伺服器用于釋出使用者的證書和黑名單資訊,使用者

可通過标準的LDAP 協定查詢自己或其他人的證書和下載下傳黑名單資訊。

3) 具有高強度密碼算法(SSL)的安全WWW伺服器 Secure socket layer(SSL)協定

最初由Netscape 企業發展,現已成為網絡用來鑒别網站和網頁浏覽者身份,以

及在浏覽器使用者及網頁伺服器之間進行加密通訊的全球化标準。

4) Web(安全通信平台) Web 有Web Client 端和Web Server 端兩部分,分别安裝

在用戶端和伺服器端,通過具有高強度密碼算法的SSL 協定保證用戶端和服務

器端資料的機密性、完整性、身份驗證。

5) 自開發安全應用系統 自開發安全應用系統是指各行業自開發的各種具體應用

系統,例如銀行、證券的應用系統等。

完整的PKI 包括認證政策的制定(包括遵循的技術标準、各CA 之間的上下級或同級

關系、安全政策、安全程度、服務對象、管理原則和架構等)、認證規則、運作制度的制定、

所涉及的各方法律關系内容以及技術的實作等。

三 PKI 的原理

公鑰基礎設施PKI 的原理,顧名思義PKI 是基于公鑰密碼技術的。要想深刻了解PKI

的原理,就一定要對PKI 涉及到的密碼學知識有比較透徹的了解。下面簡單介紹一下密碼

學知識。對于普通的對稱密碼學,加密運算與解密運算使用同樣的密鑰。通常,使用的加密

算法比較簡便高效,密鑰簡短,破譯極其困難,由于系統的保密性主要取決于密鑰的安全

性,是以,在公開的計算機網絡上安全地傳送和保管密鑰是一個嚴峻的問題。正是由于對

稱密碼學中雙方都使用相同的密鑰,是以無法實作資料簽名和不可否認性等功能。而與此

不同的非對稱密碼學,具有兩個密鑰,一個是公鑰一個是私鑰,它們具有這種性質:用公

鑰加密的檔案隻能用私鑰解密,而私鑰加密的檔案隻能用公鑰解密。公鑰顧名思義是公開

的,所有的人都可以得到它;私鑰也顧名思義是私有的,不應被其他人得到,具有唯一性。

這樣就可以滿足電子商務中需要的一些安全要求。比如說要證明某個檔案是特定人的,該

人就可以用他的私鑰對檔案加密,别人如果能用他的公鑰解密此檔案,說明此檔案就是這

個人的,這就可以說是一種認證的實作。還有如果隻想讓某個人看到一個檔案,就可以用

此人的公鑰加密檔案然後傳給他,這時隻有他自己可以用私鑰解密,這可以說是保密性的

實作。基于這種原理還可以實作完整性。這就是PKI 所依賴的核心思想,這部分對于深刻

把握PKI 是很重要的,而恰恰這部分是最有意思的。

比如在現實生活中,我們想給某個人在網上傳送一個機密檔案,該檔案我們隻想讓那

個人看到,我們設想了很多方法,首先我們想到了用對稱密碼将檔案加密,而在我們把加

密後的檔案傳送給他後,我們又必須得讓他知道解密用的密鑰,這樣就又出現了一個新的

問題,就是我們如何保密的傳輸該密鑰,此時我們發現傳輸對稱密鑰也不可靠。後來我們

可以改用非對稱密碼的技術加密,此時發現問題逐漸解決了。然而又有了一個新的問題産

生,那就是如何才能确定這個公鑰就是某個人的,假如我們得到了一個虛假的公鑰,比如

說我們想傳給A 一個檔案,于是開始查找A 的公鑰,但是這時B 從中搗亂,他把自己的公鑰

替換了A 的公鑰,讓我們錯誤的認為B 的公鑰就是A 的公鑰,導緻我們最終使用B 的公鑰

加密檔案,結果A 無法打開檔案,而B 可以打開檔案,這樣B 實作了對保密資訊的竊取行

為。是以就算是采用非對稱密碼技術,我們仍舊無法保證保密性的實作,那我們如何才能

确切的得到我們想要的人的公鑰呢?這時我們很自然的想到需要一個仲裁機構,或者說是

一個權威的機構,它能為我準确無誤的提供我們需要的人的公鑰,這就是CA。

這實際上也是應用公鑰技術的關鍵,即如何确認某個人真正擁有公鑰(及對應的私鑰)。

在PKI 中,為了確定使用者的身份及他所持有密鑰的正确比對,公開密鑰系統需要一個值得

信賴而且獨立的第三方機構充當認證中心(Certification Authority,CA),來确認公鑰擁有人

的真正身份。就象警察局發放的身份證一樣,認證中心發放一個叫"數字證書"的身份證明。

這個數字證書包含了使用者身份的部分資訊及使用者所持有的公鑰。象警察局對身份證蓋章一

樣,認證中心利用本身的私鑰為數字證書加上數字簽名。任何想發放自己公鑰的使用者,可以

去認證中心申請自己的證書。認證中心在鑒定該人的真實身份後,頒發包含使用者公鑰的數字

證書。其他使用者隻要能驗證證書是真實的,并且信任頒發證書的認證中心,就可以确認使用者

的公鑰。認證中心是公鑰基礎設施的核心,有了大家信任的認證中心,使用者才能放心友善的

使用公鑰技術帶來的安全服務。

四PKI 的核心部分CA

認證中心CA 作為PKI 的核心部分,CA 實作了PKI 中一些很重要的功能,概括地說,

認證中心(CA)的功能有:證書發放、證書更新、證書撤銷和證書驗證。CA 的核心功能就

是發放和管理數字證書,具體描述如下:

(1)接收驗證最終使用者數字證書的申請。

(2)确定是否接受最終使用者數字證書的申請-證書的審批。

(3)向申請者頒發、拒絕頒發數字證書-證書的發放。

(4)接收、處理最終使用者的數字證書更新請求-證書的更新。

(5)接收最終使用者數字證書的查詢、撤銷。

(6)産生和釋出證書廢止清單(CRL)。

(7)數字證書的歸檔。

(8)密鑰歸檔。

(9)曆史資料歸檔。

認證中心CA 為了實作其功能,主要由以下三部分組成:

注冊伺服器:通過 Web Server 建立的站點,可為客戶提供24×7 不間斷的服務。客戶

在網上提出證書申請和填寫相應的證書申請表。

證書申請受理和稽核機構:負責證書的申請和稽核。它的主要功能是接受客戶證書申

請并進行稽核。

認證中心伺服器:是數字證書生成、發放的運作實體,同時提供發放證書的管理、證書

廢止清單(CRL)的生成和處理等服務。

在具體實施時,CA 的必須做到以下幾點:

1) 驗證并辨別證書申請者的身份。

2) 確定CA 用于簽名證書的非對稱密鑰的品質。

3) 確定整個簽證過程的安全性,確定簽名私鑰的安全性。

4) 證書資料資訊(包括公鑰證書序列号,CA 辨別等)的管理。

5) 确定并檢查證書的有效期限。

6) 確定證書主體辨別的唯一性,防止重名。

7) 釋出并維護廢棄證書清單。

8) 對整個證書簽發過程做日志記錄。

9) 向申請人發出通知。

在這其中最重要的是CA 自己的一對密鑰的管理,它必須確定其高度的機密性,防止他

方僞造證書。CA 的公鑰在網上公開,是以整個網絡系統必須保證完整性。CA 的數字簽名

保證了證書(實質是持有者的公鑰)的合法性和權威性。使用者的公鑰有兩種産生的方式:(1)

使用者自己生成密鑰隊,然後将公鑰以安全的方式傳送給CA,該過程必須保證使用者公鑰的驗

證性和完整性。(2)CA 替使用者生成密鑰隊,然後将其以安全的方式傳送給使用者,該過程必

須確定密鑰對的機密性,完整性和可驗證性。該方式下由于使用者的私鑰為CA 所産生,是以

對CA 的可信性有更高的要求。CA 必須在事後銷毀使用者的私鑰。

一般而言公鑰有兩大類用途,就像本文前面所述,一個是用于驗證數字簽名,一個是

用于加密資訊。相應的在CA 系統中也需要配置用于數字簽名/驗證簽名的密鑰對和用于數

據加密/脫密的密鑰對,分别稱為簽名密鑰對和加密密鑰對。由于兩種密鑰對的功能不同,

管理起來也不大相同,是以在CA 中為一個使用者配置兩對密鑰,兩張證書。

CA 中比較重要的幾個概念點有:證書庫。證書庫是CA 頒發證書和撤銷證書的集中存

放地,它像網上的“白頁“一樣,是網上的一種公共資訊庫,供廣大公衆進行開放式查詢。

這是非常關鍵的一點,因為我們建構CA 的最根本目的就是獲得他人的公鑰。目前通常的做

法是将證書和證書撤消資訊釋出到一個資料庫中,成為目錄伺服器,它采用LDAP 目錄訪

問協定,其标準格式采用X.500 系列。随着該資料庫的增大,可以采用分布式存放,即采用

資料庫鏡像技術,将其中一部分與本組織有關的證書和證書撤消清單存放到本地,以提高證

書的查詢效率。這一點是任何一個大規模的PKI 系統成功實施的基本需求,也是建立一個

有效的認證機構CA 的關鍵技術之一。

另一個重要的概念是證書的撤消。由于現實生活中的一些原因,比如說私鑰的洩漏,

當事人的失蹤死亡等情況的發生,應當對其證書進行撤消。這種撤消應該是及時的,因為如

果撤消延遲的話,會使得不再有效的證書仍被使用,将造成一定的損失。在CA 中,證書的

撤消使用的手段是證書撤消清單或稱為CRL。即将廢棄的證書放入CRL 中,并及時的公布

于衆,根據實際情況不同可以采取周期性釋出機制和線上查詢機制兩種方式。

密鑰的備份和恢複也是很重要的一個環節。如果使用者由于某種原因丢失了解密資料的

密鑰,那麼被加密的密文将無法解開,這将造成資料丢失。為了避免這種情況的發生,PKI

提供了密鑰備份于解密密鑰的恢複機制。這一工作也是應該由可信的機構CA 來完成的,而

且,密鑰的備份與恢複隻能針對解密密鑰,而簽名密鑰不能做備份,因為簽名密鑰匙用于不

不可否認性的證明的,如果存有備份的話,将會不利于保證不可否認性。

還有,一個證書的有效期是有限的,這樣規定既有理論上的原因,又有實際操作的因

素。在理論上諸如關于目前非對稱算法和密鑰長度的可破譯性分析,同時在實際應用中,證

明密鑰必須有一定的更換頻度,才能得到密鑰使用的安全性。是以一個已頒發的證書需要有

過期的措施,以便更換新的證書。為了解決密鑰更新的複雜性和人工幹預的麻煩,應由PKI

本身自動完成密鑰或證書的更新,完全不需要使用者的幹預。它的指導思想是:無論使用者的證

書用于何種目的,在認證時,都會線上自動檢查有效期,當失效日期到來之前的某時間間隔

内,自動啟動更新程式,生成一個新的證書來替代舊證書。

結束語

個人感覺PKI/CA 技術很有發展前途,隻是在我國的應用才剛剛起步。另外CA 作為電

子商務的特殊實體,它必須具有權威性,這種權威性來自政府或公共組織的授予;它必須使

公衆所依賴的機構,它頒發的證書可信;它必須是公正的,不參與交易雙方的。本文僅是停

留在比較簡單的理論介紹,希望此文能讓更多人了解PKI,投入到PKI 的研究中來。

繼續閱讀