PKI的發展
美國的PKI建設過程經歷了1996年之前的無序、1996—2002年間以FBCA為核心的體系搭建、2003之後策略管理和體系建設並舉的三個階段。1996年以前,很多政府部門自建PKI系統,例如美國郵政服務部門、社會安全部門、
美國國防部、能源部、美國商標與知識產權局等。1996年美國提出聯邦橋接計畫,2001年正式公布,計畫最終建立一個覆蓋美國80個機構、19個部的PKI以保護電子政府的
通信安全。
美國聯邦PKI體系主要由聯邦的橋認證機構(Federal Bridge CA,FBCA)、首級認證機構(Principal CA,
PCA)和次級認證機構(Subordinate CA,
SCA)等組成。聯邦PKI的體系結構中沒有採用根CA,而採用了首級CA。
這是因為在美國,信任域的結構是多種多樣的,美國聯邦PKI體系結構可以支持分級(樹狀)維構、網狀結構和信任列表等。聯邦的橋CA是聯邦PKI體系中能核心組織,是不同信任域之間能橋樑,主要負責為不同信任域能首級CA頒發交叉認證的證書,建立各個信任域的擔保等級與聯邦CA的擔保等級之間的映射關係,更新交叉認證證書,發布交叉認證證書註銷黑名單。但是聯邦的橋CA不要求一個機構在與另一個機構發生信任關係時必須述循聯邦PKI所確定的這種映射關係,而是可以採用它認為合適的映射關係確定彼此之間的信任。
歐洲在PKI基礎建設方面也成績顯著。已頒布了93/1999EC法規,強調技術中立、隱私權保護、國內與國外相互認證以及無歧視等原則。為了解決各國PKI之間的協同工作問題,它採取了一系列措施:積極資助相關研究所、大學和企業研究PKI相關技術;資助PKI互操作性相關技術研究,並建立CA網路及其頂級CA。並於2000年10月成立了歐洲橋CA指導委員會,於2001年3月23日成立了歐洲橋CA。
我國的PKI技術從1998年開始起步,政府和各有關部門對PKI產業的發展給予了高度重視。2001年PKI技術被列為“十五”863計畫信息安全主題重大項目,並於同年10月成立了
國家863計畫信息安全基礎設施研究中心。國家電子政務工程中明確提出了要構建PKI體系。我國已全面推動PKI技術研究與套用。2004年8月28日,十屆全國人大常委會第十一次會議28日表決通過了
電子簽名法,規定電子簽名與手寫簽名或者蓋章具有同等的法律效力。這部法律的誕生極大地推動了我國的PKI建設。
1998年國內第一家以實體形式運營的上海CA中心(SHECA)成立,此後,PKI技術在我國的商業銀行、政府採購以及網上購物中得到了廣泛套用。國內的CA機構大致可分為區域型、行業型、商業型和企業型四類,並出現了得安科技、創原世紀、國創科技、吉大正元、國瑞數碼等一批PKI服務提供商。
PKI系統組成
一個典型的PKI系統包括PKI策略、軟硬體系統、證書機構CA、註冊機構RA、證書發布系統和PKI套用等。
PKI安全策略
建立和定義了一個組織信息安全方面的指導方針,同時也定義了密碼系統使用的處理方法和原則。它包括一個組織怎樣處理密鑰和有價值的信息,根據風險的級別定義安全控制的級別。
證書機構CA
證書機構CA是PKI的信任基礎,它管理公鑰的整個生命周期,其作用包括:發放證書、規定證書的有效期和通過發布證書廢除列表(CRL)確保必要時可以廢除證書。
註冊機構RA
註冊機構RA提供用戶和CA之間的一個接口,它獲取並認證用戶的身份,向CA提出證書請求。它主要完成收集用戶信息和確認用戶身份的功能。這裡指的用戶,是指將要向認證中心(即CA)申請數字證書的客戶,可以是個人,也可以是集團或團體、某政府機構等。註冊管理一般由一個獨立的註冊機構(即RA)來承擔。它接受用戶的註冊申請,審查用戶的申請資格,並決定是否同意CA給其簽發數字證書。註冊機構並不給用戶簽發證書,而只是對用戶進行資格審查。因此,RA可以設定在直接面對客戶的業務部門,如銀行的營業部、機構認識部門等。當然,對於一個規模較小的PKI套用系統來說,可把註冊管理的職能由認證中心CA來完成,而不設立獨立運行的RA。但這並不是取消了PKI的註冊功能,而只是將其作為CA的一項功能而已。PKI國際標準推薦由一個獨立的RA來完成註冊管理的任務,可以增強套用系統的安全。
證書發布系統
證書發布系統負責證書的發放,如可以通過用戶自己,或是通過
目錄伺服器發放。目錄伺服器可以是一個組織中現存的,也可以是PKI方案中提供的。
PKI的套用
PKI的套用非常廣泛,包括套用在web伺服器和瀏覽器之間的通信、電子郵件、電子數據交換(EDI)、在Internet上的信用卡交易和虛擬私有網(VPN)等。
通常來說,CA是證書的簽發機構,它是PKI的核心。眾所周知,構建密碼服務系統的核心內容是如何實現密鑰管理。公鑰體制涉及一對密鑰(即私鑰和公鑰),私鑰只由用戶獨立掌握,無須在網上傳輸,而公鑰則是公開的,需要在網上傳送,故公鑰體制的密鑰管理主要是針對公鑰的管理問題,較好的方案是
數字證書機制。
相關標準
PKI的標準可分為兩個部分:一類用於定義PKI,而另一類用於PKI的套用,下面主要介紹定義PKI的標準。
ASN.1基本編碼規則的規範——X.209(1988)。ASN.1是描述在網路上傳輸信息格式的標準方法。它有兩部分:第一部分(ISO 8824/ITU X.208)描述信息內的數據、數據類型及序列格式-也就是數據的語法;第二部分(ISO8825/ITU X.209)描述如何將各部分數據組成訊息.也就是數據的基本編碼規則。這兩個協定除了在PKI體系中被套用外,還被廣泛套用於通信和計算機的其他領域。
目錄服務系統標準——X.500(1993)。X.500是一套已經被
國際標準化組織(
ISO)接受的目錄服務系統標準,它定義了一個機構如何在全局範圍內共享其名字和與之相關的對象。X.500是層次性的.其中的管理域(機構、分支、部門和工作組)可以提供這些域內的用戶和資源信息。在PKI體系中,X.500被用來唯一標識一個實體.該實體可以是機構、組織、個人或一台伺服器。X.500被認為是實現目錄服務的最佳途徑,但X.500的實現需要較大的投資,並且比其他方式速度慢;但其優勢是具有信息模型、多功能和開放性。
IDAP輕量級目錄訪問協定一IDAP V3。LDAP規範(RFCl487)簡化了笨重的X.500
目錄訪問協定,並且在功能性、數據表示、編碼和傳輸方面部進行了相應的修改,1997年.LDAP第3版本成為網際網路標準。IDAP V3已經在PKI體系中被廣泛套用於證書信息發布、CRI。信息發布、CA政策以及與信息發布相關的各個方面。
數字證書標準 X.509(1 993)。X.5(19是南
國際電信聯盟(ITU—T)制定的數字證書標準、在X.500確保用戶名稱唯一性的基礎上.X.509為X.500用戶名稱提供了通信實體的鑑別機制並規定了實體鑑別過程中廣泛適用的證書語法和
數據接口。X.509的最初版本公布於l 988年,由用戶公開密鑰和
用戶標識符組成此外還包括版本號、證書序列號、CA標識符、簽名算法標識、簽發者名稱、證書有效期等信息。這一標準的最新版本是X.509 V3,該版數字證書提供了一個擴展信息欄位.用來提供更多的靈活性及特殊套用環境下所需的信息傳送。
OCSP線上證二拉狀態協定。OCSP(OnIine Certificate Status Protocol)是
IETF頒布的用於檢查數字證書在某一交易時刻是否仍然有效的標準。該標準提供給PKI用戶一條方便快捷的數字證書狀態查詢通道.使PKI體系能夠更有效、更安全地在各個領域中被廣泛套用。
PKCS系列標準。PKCS是南美RSA數據安全公司及其合作夥伴制定的一組公鑰密碼學標準,其中包括證書申請、
證書更新、證書作廢表發布、擴展證書內容以及數字簽名、
數字信封的格式等方面的一系列相關協定。
信任模型
實際網路環境中不可能只有一個CA.多個認證機構之間的信任關係必須保證原有的PKI戶不必依賴和信任專一的CA,否則將無法進行擴展、管理和包含。 信任模型建立的目的是確保一個認征機構簽發的證書能夠被另一個認證機構的用戶所信任。常見的信任模型包括以下四種:
嚴格層次信任模型
嚴格層次信任模型是一個以主從CA關係建立的分級PKl結構√芭可以描繪為一棵倒轉的樹,在這棵樹上,根代表一個對整個PKI域內的所有實體都有特別意義的CA:根CA,在根CA的下面是多層子CA.與非CA的PKI實體相對應的樹葉通常被稱作終端用戶。
在嚴格層次信任模型中,上層CA為下層頒發證書,所有的實體都信任根CA,以根CA作為信任點。信任關係是單向的,上層CA可以而且必須認證下層CA,但下層CA不能認證上層CA,根CA通常不直接為終端用戶頒發證書而只為子CA頒發證書。兩個不同的終端用戶進行互動時,雙方都提供自己的證書和數字簽名,通過根CA來對證書進行有效性和真實性的認證。只要找到一條從根CA到一個證書的認證路徑,就可以實現對證書的驗證。
分散式信任模型
與嚴格層次信任模型中的所有實體都信任唯一CA相反,分散式信任模型把信任分布在兩個或多個CA上,在分散式信任模型中,CA間存在著交叉認證。因為存在多個信任點,單個CA安全性的削弱不會影響到整個PKI。因此該信任模型具有更好的靈活性但其路徑發現比較困難,因為從終端用戶到信任點建立證書的路徑是不確定的。
以用戶為中心的信任模型
在以用戶為中心的信任模型中,每個用戶自己決定信任哪些證書和拒絕哪些證書,沒有可信的第三方作為CA,用戶就是自己的根CA。通常,用戶的信任對象一般為關係密切的用戶。
以剛戶為中心的信任模型具有安全性高和用戶可控性強的優點.但是其使其范闈較小,因為要依賴用戶自身的行為和決策能力,這在技術水平較高的群體中是可行的,而在一般的群體中是不現實的。
交叉認證模型
交叉認證是一種把以前無關的CA連線在一起的機制.可以使得它們各自終端用戶之間的安全通信成為可能.有兩種類型的交叉認證:域內交叉認證和域間交叉認證。
安全服務
PKI的套用非常廣泛,其為網上金融、網上銀行、網上證券、電子商務、電子政務等網路中的數據交換提供了完備的安全服務功能。PKI作為安全基礎設施,能夠提供身份認證、
數據完整性、數據保密性、數據公正性、不可抵賴性和時間戳六種安全服務。
身份認證
由於網路具有開放性和匿名性等特點,非法用戶通過一些技術手段假冒他人身份進行網上欺詐的門檻越來越低,從而對合法用戶和系統造成極大的危害。身份認證的實質就是證實被認證對象是否真實和是否有效的過程,被認為是當今網上交易的基礎。在PKI體系中,
認證中心(Certification Authority,CA)為系統內每個合法用戶辦一個網上身份認證,即身份證。
數據完整性
數據的完整性就是防止非法篡改信息,如修改、複製、插入、刪除等。在交易過程中,要確保交易雙方接收到的數據與原數據完全一致,否則交易將存在安全問題。如果依靠觀察的方式來判斷數據是否發生過改變,在大多數情況下是不現實的。在網路安全中,一般使用散列函式的方法(Hash函式,也稱
密碼雜湊函式)來保證通信時數據的完整性。通過
Hash算法我們將任意長度的數據通過變換為長度固定的數字摘要(
訊息認證碼,MAC),並且原始數據中任何一位的改變都將會在相同的計算條件下產生截然不同的數字摘要。
這一特性使得人們很容易判斷原始數據是否發生非法篡改,從而很好地保證了數據的完整性和準確性。PKI系統主要採用的散列算法有SHA一1和MD一5。
數據保密性
數據的保密性就是對需要保護的數據進行加密,從而保證信息在傳輸和存儲過程中不被未授權人獲取。在PKl系統中,所有的保密性都是通過密碼技術實現的。密鑰對分為兩種,一種稱作加密密鑰對,用作加解密;另一種稱作簽名密鑰對,用作簽名。一般情況下,用來加解密的密鑰對並不對實際的大量數據進行加解密,只是用於協商會話密鑰,而真正用於大量數據加解密的是會話密鑰。
在實際的數據通信中,首先傳送方產生一個用於實際數據加密的對稱算法密鑰,此密鑰被稱為會話密鑰,用此密鑰對所需處理的數據進行加密。然後,傳送方使用接收方加密密鑰對應的公鑰對會話密鑰進行加密,連同經過加密處理的數據一起傳送給接收方。接收方收到這些信息後,首先用自己加密密鑰對中的私鑰解密會話密鑰,然後用會話密鑰對實際數據進行解密。
數據公正性
PKI中支持的公正性是指數據認證。也就是說,公證人要證明的是數據的正確性,這種公正取決於數據驗證的方式,與公正服務和一般社會公證人提供的服務是有所不同的。在PKI中,被驗證的數據是基於對原數據Hash後數字摘要的數字簽名、公鑰在數學上的正確性和私鑰的合法性。
不可抵賴性
不可抵賴性保證參與雙方不能否認自己曾經做過的事情。在PKI系統中,不可抵賴性來源於數字簽名。由於用戶進行數字簽名的時候.簽名私鑰只能被簽名者自己掌握,系統中的其他實體不能做出這樣的簽名,因此,在私鑰安全的假設下簽名者就不能否認自己做出的簽名。保護簽名私鑰的安全性是不可抵賴問題的基礎。
時間戳服務
時間戳也叫安全時間戳,是一個可信的時間權威,使用一段可以認證的數據來表示。
PKl中權威時間源提供的時間並不需要正確,僅僅需要用戶作為一個參照“時間”,以便完成基於PKI的事務處理,如時間A發生在時間B的前面等。一般的PKI系統中都設定一個時鐘統一PKI時間。當然也可以使用時間官方事件源所提供的時間,其實現方法是從網中這個時鐘位置獲得安全時間,要求實體在需要的時候向這些權威請求在數據上蓋上時間戳。一份文檔上的時間戳涉及對時間和文檔內容的哈希值的簽名,權威的簽名提供了數據的真實性和完整性。一個PKI系統中是否需要實現時間戳服務,完全依照套用的需求來決定。
數字簽名
由於單一的、獨一無二的私鑰創建了簽名,所以在被簽名數據與私鑰對應的實體之間可以建立一種聯繫,這種聯繫通過使用實體公鑰驗證簽名來實現。如果簽名驗證正確,並且從諸如可信實體簽名的公鑰證書中知道了用於驗證簽名的公鑰對應的實體,那么就可以用數字簽名來證明被數字簽名數據確實來自證書中標識的實體。
因此,PK的數字簽名服務分為兩部分:簽名生成服務和簽名驗證服務。簽名生成服務要求能夠訪問簽名者的私鑰,由於該私鑰代表了簽名者,所以是敏感信息,必須加以保護。如果被盜,別人就可以冒充簽名者用該密鑰簽名。因此,簽名服務通常是安全應用程式中能夠安全訪問簽名私鑰的那一部分。相反,簽名驗證服務要開放一些,公鑰一旦被可信簽名者簽名,通常就被認為是公共信息。驗證服務接收簽名數據、簽名、公鑰或公鑰證書,然後檢查簽名對所提供的數據是否有效。它返回驗證成功與否的標識。