PKI基礎 (轉)

worldblog發表於2007-12-12
PKI基礎 (轉)[@more@]PKI基礎

一.前言

  全球經濟發展正在進入資訊經濟時代,知識經濟初見端倪。作為二十一世紀的主要經濟增長方式--電子商務,將給各國和世界經濟帶來巨大的變革,產生深遠的影響。電子商務透過大幅度降低交易成本,增加貿易機會,簡化貿易流程,提高貿易;電子商務提高生產力,改善物流,並推動企業和國民經濟結構的改革。對電子商務的關注和投入可以發展新興產業,創造就業機會,推動國家和全球經濟的發展。電子商務是一個新興市場,而且是一種替代傳統商務活動的新形式。它有可能徹底改變貿易活動的本質,形成一套全新的貿易活動。但如何保證Inte網上資訊傳輸的,是發展電子商務的重要環節。

  為解決Internet的安全問題,世界各國對其進行了多年的研究,初步形成了一套完整的Internet安全解決方案,即目前被廣泛採用的PKI技術(Public Key Infrastructure-公鑰基礎設施),PKI(公鑰基礎設施)技術採用證書管理公鑰,透過第三方的可信任機構--中心CA(Certificate Authority),把的公鑰和使用者的其他標識資訊(如名稱、e-、身份證號等)捆綁在一起,在Internet網上驗證使用者的身份。目前,通用的辦法是採用建立在PKI基礎之上的數字證書,透過把要傳輸的數字資訊進行和簽名,保證資訊傳輸的機密性、真實性、完整性和不可否認性,從而保證資訊的安全傳輸。

二、PKI基礎

  PKI基礎設施採用證書管理公鑰,透過第三方的可信任機構--認證中心,把使用者的公鑰和使用者的其他標識資訊捆綁在一起,在Internet網上驗證使用者的身份。PKI基礎設施把公鑰密碼和對稱密碼結合起來,在Internet網上實現金鑰的自動管理,保證網上資料的安全傳輸。
  從廣義上講,所有提供公鑰加密和數字簽名服務的系統,都可叫做PKI系統,PKI的主要目的是透過自動管理金鑰和證書,可以為使用者建立起一個安全的執行環境,使使用者可以在多種應用環境下方便的使用加密和數字簽名技術,從而保證網上資料的機密性、完整性、有效性,資料的機密性是指資料在傳輸過程中,不能被非授權者偷看;資料的完整性是指資料在傳輸過程中不能被篡改;資料的有效性是指資料不能被否認。一個有效的PKI系統必須是安全的和透明的,使用者在獲得加密和數字簽名服務時,不需要詳細地瞭解PKI是怎樣管理證書和金鑰的,一個典型、完整、有效的PKI應用系統至少應具有以下部分:

 公鑰密碼證書管理。
 的釋出和管理。
 金鑰的和恢復。
 自動金鑰。
 自動管理歷史金鑰。
 支援交叉認證。

  由於PKI基礎設施是目前比較成熟、完善的Internet網路安全解決方案,國外的一些大的網路安全公司紛紛推出一系列的基於PKI的網路安全產品,如美國的Verisign, IBM ,加拿大的Entrust、SUN等安全產品供應商為使用者提供了一系列的客戶端和端的安全產品,為電子商務的發展以及政府辦公網、EDI等提供了安全保證。簡言之,PKI(Public Key Infrastructure)公鑰基礎設施就是提供公鑰加密和數字簽名服務的系統,目的是為了管理金鑰和證書,保證網上數字資訊傳輸的機密性、真實性、完整性和不可否認性。

1.單鑰密碼演算法(加密)

  單鑰密碼演算法,又稱對稱密碼演算法:是指加密金鑰和金鑰為同一金鑰的密碼演算法。因此,資訊的傳送者和資訊的接收者在進行資訊的傳輸與處理時,必須共同持有該密碼(稱為對稱密碼)。在對稱金鑰密碼演算法中,加密運算與解密運算使用同樣的金鑰。通常,使用的加密演算法比較簡便高效,金鑰簡短,破譯極其困難;由於系統的保密性主要取決於金鑰的安全性,所以,在公開的網路上安全地傳送和保管金鑰是一個嚴峻的問題。最典型的是DES(Data Encryption Standard)演算法。

  DES(Data Encryption Standard,資料加密標準)演算法,它是一個分組加密演算法,它以64 bit位(8 byte)為分組對資料加密,其中有8 bit奇偶校驗,有效金鑰長度為56 bit。64位一組的明文從演算法的一端輸入,64位的密文從另一端輸出。DES是一個對稱演算法,加密和解密用的是同一演算法。DES的安全性依賴於所用的金鑰。

  金鑰的長度為56位。(金鑰通常表示為64位的數,但每個第8位都用作奇偶校驗,可以忽略。)金鑰可以是任意的56位的數,且可以在任意的時候改變。其中極少量的數被認為是弱金鑰,但能容易地避開它們。所有的保密性依賴於金鑰。簡單地說,演算法只不過是加密的兩個基本技術--混亂和擴散的組合。DES基本組建分組是這些技術的一個組合(先代替後置換),它基於金鑰作用於明文,這是眾所周知的輪(round)。DES有16輪,這意味著要在明文分組上16次實施相同的組合技術。此演算法只使用了標準的算術和邏輯運算,而其作用的數也最多隻有64位。

  DES對64位的明文分組進行操作,透過一個初始置換,將明文分組分成左半部分和右半部分,各32位長。然後進行16輪完全相同的運算,這些運算被稱為f,在運算過程中資料與金鑰結合。經過16輪後,左、右半部分合在一起經過一個末置換(初始置換的逆置換),這樣該演算法就完成了。在每一輪中,金鑰位移位,然後再叢金鑰的56位中選出48位。透過一個擴充套件置換將資料的右半部分擴充套件成48位,並透過一個異或操作與48位金鑰結合,透過8個s盒將這48位替代成新的32位資料,再將其置換一次。這四步運算構成了函式f。然後,透過另一個異或運算,函式f輸出與左半部分結合,其結果即成為新的右半部分,原來的右半部分成為新的左半部分。將該操作重複16次,便實現了DES的16輪運算。

  假設Bi是第i次迭代的結果,Li和Ri是Bi的左半部分和右半部分,Ki是第i輪的48位金鑰,且f是實現代替、置換及金鑰異或等運算的函式,那麼每一輪就是:

2.雙鑰密碼演算法(加密、簽名)

  雙鑰密碼演算法,又稱公鑰密碼演算法:是指加密金鑰和解密金鑰為兩個不同金鑰的密碼演算法。公鑰密碼演算法不同於單鑰密碼演算法,它使用了一對金鑰:一個用於加密資訊,另一個則用於解密資訊,通訊雙方無需事先金鑰就可進行保密通訊。其中加密金鑰不同於解密金鑰,加密金鑰公之於眾,誰都可以用;解密金鑰只有解密人自己知道。這兩個金鑰之間存在著相互依存關係:即用其中任一個金鑰加密的資訊只能用另一個金鑰進行解密。若以公鑰作為加密金鑰,以使用者專用金鑰(私鑰)作為解密金鑰,則可實現多個使用者加密的資訊只能由一個使用者解讀;反之,以使用者私鑰作為加密金鑰而以公鑰作為解密金鑰,則可實現由一個使用者加密的資訊而多個使用者解讀。前者可用於數字加密,後者可用於數字簽名。

  在透過網路傳輸資訊時,公鑰密碼演算法體現出了單金鑰加密演算法不可替代的優越性。對於參加電子交易的商戶來說,希望透過公開網路與成千上萬的客戶進行交易。若使用對稱密碼,則每個客戶都需要由商戶直接分配一個密碼,並且密碼的傳輸必須透過一個單獨的安全通道。相反,在公鑰密碼演算法中,同一個商戶只需自己產生一對金鑰,並且將公開鑰對外公開。客戶只需用商戶的公開鑰加密資訊,就可以保證將資訊保安地傳送給商戶。

  公鑰密碼演算法中的金鑰依據性質劃分,可分為公鑰和私鑰兩種。使用者產生一對金鑰,將其中的一個向外界公開,稱為公鑰;另一個則自己保留,稱為私鑰。凡是獲悉使用者公鑰的任何人若想向使用者傳送資訊,只需用使用者的公鑰對資訊加密,將資訊密文傳送給使用者便可。因為公鑰與私鑰之間存在的依存關係,在使用者安全儲存私鑰的前提下,只有使用者本身才能解密該資訊,任何未受使用者授權的人包括資訊的傳送者都無法將此資訊解密。

  RSA公鑰密碼演算法是一種公認十分安全的公鑰密碼演算法。它的命名取自三個創始人:Rivest、Shamir和Adelman。RSA公鑰密碼演算法是目前網路上進行保密通訊和數字簽名的最有效的安全演算法。RSA演算法的安全性基於數論中大素數分解的困難性,所以,RSA需採用足夠大的整數。因子分解越困難,密碼就越難以破譯,加密強度就越高。

  RSA既能用於加密又能用於數字簽名,在已提出的公開金鑰演算法中,RSA最容易理解和實現的,這個演算法也是最流行的。RSA的安全基於大數分解的難度。其公開金鑰和私人金鑰是一對大素數(100到200個十進位制數或更大)的函式。從一個公開金鑰和密文中恢復出明文的難度等價於分解兩個大素數之積。為了產生兩個金鑰,選取兩個大素數,p和q。為了獲得最大程度的安全性,兩數的長度一樣。計算乘積: ,然後隨機選取加密金鑰e,使e和(p-1)(q-1)互素。最後用歐幾里得擴充套件演算法計算解密金鑰d,以滿足

則,注意:d和n也互素。e和n是公開金鑰,d是私人金鑰。兩個素數p和q不再需要,它們應該被捨棄,但絕不可洩露。

  加密訊息m時,首先將它分成比n小的資料分組(採用二進位制數,選取小於n的2的最大次冪),也就是說,p和q為100位的素數,那麼n將有200位,每個訊息分組 應小於200位長。加密後的密文c,將由相同長度的分組 組成。加密公式簡化為
解密訊息時,取每一個加密後的分組ci並計算:

  由於: ,全部(mod n)這個公式能恢復出明文。

公開金鑰 n:兩素數p和q的乘積(p和q必須保密) e:與(p-1)(q-1)互素
私人金鑰
加密
解密


3.公開金鑰數字簽名演算法(簽名)

  DSA(Digital Signature Algorithm,數字簽名演算法,用作數字簽名標準的一部分),它是另一種公開金鑰演算法,它不能用作加密,只用作數字簽名。DSA使用公開金鑰,為接受者驗證資料的完整性和資料傳送者的身份。它也可用於由第三方去確定簽名和所籤資料的真實性。DSA演算法的安全性基於解離散對數的困難性,這類簽字標準具有較大的相容性和適用性,成為網路安全體系的基本構件之一。

  DSA簽名演算法中用到了以下引數:
  p是L位長的素數,其中L從512到1024且是64的倍數。
  q是160位長且與p-1互素的因子。
   ,其中h是小於p-1並且滿足 大於1的任意數。
  x是小於q的數。
  
  另外,演算法使用一個單向雜湊函式H(m)。標準指定了安全雜湊演算法(SHA)。三個引數p,q和g是公開的,且可以被網路中所有的使用者公有。私人金鑰是x,公開金鑰是y。
  對訊息m簽名時:
  (1) 傳送者產生一個小於q的隨機數k。
  (2) 傳送者產生:
  r和s就是傳送者的簽名,傳送者將它們傳送給接受者。
  (3) 接受者透過計算來驗證簽名:
  如果v=r,則簽名有效。
  DSA簽名:
  公開金鑰:
  p 512位到1024位的素數
  q 160位長,並與p-1互素的因子
   ,其中h是小於p-1並且滿足 大於1的任意數。
  
  私人金鑰:
 x小於q
  簽名:
  k選取小於q的隨機數
  驗證:
  如果v=r,則簽名被驗證。

4.數字簽名與數字信封

  公鑰密碼體制在實際應用中包含數字簽名和數字信封兩種方式。
  數字簽名是指使用者用自己的私鑰對原始資料的雜湊摘要進行加密所得的資料。資訊接收者使用資訊傳送者的公鑰對附在原始資訊後的數字簽名進行解密後獲得雜湊摘要,並透過與自己用收到的原始資料產生的雜湊雜湊摘要對照,便可確信原始資訊是否被篡改。這樣就保證了資料傳輸的不可否認性。
  雜湊演算法是一類符合特殊要求的雜湊函式(Hash)函式,這些特殊要求是:
接受的輸入報文資料沒有長度限制;
對任何輸入報文資料生成固定長度的摘要("數字指紋")輸出;
由報文能方便地算出摘要;
難以對指定的摘要生成一個報文,由該報文可以得出指定的摘要;
難以生成兩個不同的報文具有相同的摘要。
  數字信封的功能類似於普通訊封。普通訊封在法律的下保證只有收信人才能閱讀信的內容;數字信封則採用密碼技術保證了只有規定的接收人才能閱讀資訊的內容。   數字信封中採用了單鑰密碼體制和公鑰密碼體制。資訊傳送者首先利用隨機產生的對稱密碼加密資訊,再利用接收方的公鑰加密對稱密碼,被公鑰加密後的對稱密碼被稱之為數字信封。在傳遞資訊時,資訊接收方要解密資訊時,必須先用自己的私鑰解密數字信封,得到對稱密碼,才能利用對稱密碼解密所得到的資訊。這樣就保證了資料傳輸的真實性和完整性。

5.數字證書

  數字證書是各類實體(持卡人/個人、商戶/企業、閘道器/銀行等)在網上進行資訊交流及商務活動的身份證明,在電子交易的各個環節,交易的各方都需驗證對方證書的有效性,從而解決相互間的信任問題。證書是一個經證書認證中心數字簽名的包含公開金鑰擁有者資訊以及公開金鑰的。   從證書的用途來看,數字證書可分為簽名證書和加密證書。簽名證書主要用於對使用者資訊進行簽名,以保證資訊的不可否認性;加密證書主要用於對使用者傳送資訊進行加密,以保證資訊的真實性和完整性。

  簡單的說,數字證書是一段包含使用者身份資訊、使用者公鑰資訊以及身份驗證機構數字簽名的資料。身份驗證機構的數字簽名可以確保證書資訊的真實性。證書格式及證書內容遵循X.509標準。

6.數字證書的應用

  現有持證人甲向持證人乙傳送數字資訊,為了保證資訊傳送的真實性、完整性和不可否認性,需要對要傳送的資訊進行數字加密和數字簽名,其傳送過程如下:
  (1) 甲準備好要傳送的數字資訊(明文)。
  (2) 甲對數字資訊進行雜湊(hash)運算,得到一個資訊摘要。
  (3) 甲用自己的私鑰(SK)對資訊摘要進行加密得到甲的數字簽名,並將其附在數字資訊上。
  (4) 甲隨機產生一個加密金鑰(DES金鑰),並用此金鑰對要傳送的資訊進行加密,形成密文。
 (5) 甲用乙的公鑰(PK)對剛才隨機產生的加密金鑰進行加密,將加密後的DES金鑰連同密文一起傳送給乙。
  (6) 乙收到甲傳送過來的密文和加過密的DES金鑰,先用自己的私鑰(SK)對加密的DES金鑰進行解密,得到DES金鑰。
  (7) 乙然後用DES金鑰對收到的密文進行解密,得到明文的數字資訊,然後將DES金鑰拋棄(即DES金鑰作廢)。
  (8) 乙用甲的公鑰(PK)對甲的數字簽名進行解密,得到資訊摘要。
  (9) 乙用相同的hash演算法對收到的明文再進行一次hash運算,得到一個新的資訊摘要。
  (10) 乙將收到的資訊摘要和新產生的資訊摘要進行比較,如果一致,說明收到的資訊沒有被修改過。

三.PKI組成

  PKI是一種新的安全技術,它由公開金鑰密碼技術、數字證書、證書發放機構(CA)和關於公開金鑰的安全策略等基本成分共同組成的。PKI是利用公鑰技術實現電子商務安全的一種體系,是一種基礎設施,網路通訊、網上交易是利用它來保證安全的。從某種意義上講,PKI包含了安全認證系統,即安全認證系統-CA/RA系統是PKI不可缺的組成部分。
  PKI(Public Key Infrastructure)公鑰基礎設施是提供公鑰加密和數字簽名服務的系統或平臺,目的是為了管理金鑰和證書。一個機構透過採用PKI框架管理金鑰和證書可以建立一個安全的網路環境。PKI主要包括四個部分:X.509格式的證書(X.509 V3)和證書廢止列表CRL(X.509 V2);CA/RA操作;CA管理協議;CA政策制定。一個典型、完整、有效的PKI應用系統至少應具有以下部分;
認證中心CA CA是PKI的核心,CA負責管理PKI結構下的所有使用者(包括各種應用)的證書,把使用者的公鑰和使用者的其他資訊捆綁在一起,在網上驗證使用者的身份,CA還要負責使用者證書的黑名單登記和黑名單釋出,後面有CA的詳細描述。
X.500目錄伺服器 X.500目錄伺服器用於釋出使用者的證書和黑名單資訊,使用者可透過標準的協議查詢自己或其他人的證書和黑名單資訊。
具有高強度密碼演算法()的安全WWW伺服器 出口到中國的WWW伺服器,如的IIS、的WWW伺服器等,受出口限制,其RSA演算法的模長最高為512位,對稱演算法為40位,不能滿足對安全性要求很高的場合,為解決這一問題,採用了山東大學網路資訊保安研究所開發的具有自主版權的SSL安全模組,在SSL安全模組中使用了自主開發的SJY系列密碼裝置,並且把SSL模組整合在 WWW伺服器中,Apache WWW伺服器在WWW伺服器市場中佔有百分之50以上的份額,其可移植性和穩定性很高。
(安全通訊平臺) Web有Web Client端和Web Server端兩部分,分別在客戶端和伺服器端,透過具有高強度密碼演算法的SSL協議保證客戶端和伺服器端資料的機密性、完整性、身份驗證。
自開發安全應用系統 自開發安全應用系統是指各行業自開發的各種具體應用系統,例如銀行、證券的應用系統等。
  完整的PKI包括認證政策的制定(包括遵循的技術標準、各CA之間的上下級或同級關係、安全策略、安全程度、服務、管理原則和框架等)、認證規則、運作制度的制定、所涉及的各方法律關係內容以及技術的實現。

四.PKI核心-認證中心

1.認證中心(CA)簡介

 為保證網上數字資訊的傳輸安全,除了在通訊傳輸中採用更強的加密演算法等措施之外,必須建立一種信任及信任驗證機制,即參加電子商務的各方必須有一個可以被驗證的標識,這就是數字證書。數字證書是各實體(持卡人/個人、商戶/企業、閘道器/銀行等)在網上資訊交流及商務交易活動中的身份證明。該數字證書具有唯一性。它將實體的公開金鑰同實體本身聯絡在一起,為實現這一目的,必須使數字證書符合X.509國際標準,同時數字證書的來源必須是可靠的。這就意味著應有一個網上各方都信任的機構,專門負責數字證書的發放和管理,確保網上資訊的安全,這個機構就是CA認證機構。各級CA認證機構的存在組成了整個電子商務的信任鏈。如果CA機構不安全或發放的數字證書不具有權威性、公正性和可信賴性,電子商務就根本無從談起。

  數字證書認證中心(Certficate Authority,CA)是整個網上電子交易安全的關鍵環節。它主要負責產生、分配並管理所有參與網上交易的實體所需的身份認證數字證書。每一份數字證書都與上一級的數字簽名證書相關聯,最終透過安全鏈追溯到一個已知的並被廣泛認為是安全、權威、足以信賴的機構-根認證中心(根CA)。

  電子交易的各方都必須擁有合法的身份,即由數字證書認證中心機構(CA)簽發的數字證書,在交易的各個環節,交易的各方都需檢驗對方數字證書的有效性,從而解決了使用者信任問題。CA涉及到電子交易中各交易方的身份資訊、嚴格的加密技術和認證程式。基於其牢固的安全機制,CA應用可擴大到一切有安全要求的網上資料傳輸服務。

  數字證書認證解決了網上交易和結算中的安全問題,其中包括建立電子商務各主體之間的信任關係,即建立安全認證體系(CA);選擇安全標準(如SET、SSL);採用高強度的加、解密技術。其中安全認證體系的建立是關鍵,它決定了網上交易和結算能否安全進行,因此,數字證書認證中心機構的建立對電子商務的開展具有非常重要的意義。

  認證中心(CA),是電子商務體系中的核心環節,是電子交易中信賴的基礎。它透過自身的註冊稽核體系,檢查核實進行證書申請的使用者身份和各項相關資訊,使網上交易的使用者屬性客觀真實性與證書的真實性一致。認證中心作為權威的、可信賴的、公正的第三方機構,專門負責發放並管理所有參與網上交易的實體所需的數字證書。

2. CA/RA簡介

  開放網路上的電子商務要求為資訊保安提供有效的、可靠的保護機制。這些機制必須提供機密性、身份驗證特性(使交易的每一方都可以確認其它各方的身份)、不可否認性(交易的各方不可否認它們的參與)。這就需要依靠一個可靠的第三方機構驗證,而認證中心(CA:Certification Authority)專門提供這種服務。

  證書機制是目前被廣泛採用的一種安全機制,使用證書機制的前提是建立CA(Certification Authority --認證中心)以及配套的RA(Registration Authority --註冊審批機構)系統。

  CA中心,又稱為數字證書認證中心,作為電子商務交易中受信任的第三方,專門解決公鑰體系中公鑰的合法性問題。CA中心為每個使用公開金鑰的使用者發放一個數字證書,數字證書的作用是證明證書中列出的使用者名稱稱與證書中列出的公開金鑰相對應。CA中心的數字簽名使得者不能偽造和篡改數字證書。

  在數字證書認證的過程中,證書認證中心(CA)作為權威的、公正的、可信賴的第三方,其作用是至關重要的。認證中心就是一個負責發放和管理數字證書的權威機構。同樣CA允許管理員撤銷發放的數字證書,在證書廢止列表(CRL)中新增新項並週期性地釋出這一數字簽名的CRL。

  RA(Registration Authority),數字證書註冊審批機構。RA系統是CA的證書發放、管理的延伸。它負責證書申請者的資訊錄入、稽核以及證書發放等工作;同時,對發放的證書完成相應的管理功能。發放的數字證書可以存放於IC卡、或等介質中。RA系統是整個CA中心得以正常運營不可缺少的一部分。

3.認證中心的功能

  概括地說,認證中心(CA)的功能有:證書發放、證書更新、證書撤銷和證書驗證。CA的核心功能就是發放和管理數字證書,具體描述如下:
(1)接收驗證終端使用者數字證書的申請。
(2)確定是否接受終端使用者數字證書的申請-證書的審批。
(3)向申請者頒發、拒絕頒發數字證書-證書的發放。
(4)接收、處理終端使用者的數字證書更新請求-證書的更新。
(5)接收終端使用者數字證書的查詢、撤銷。
(6)產生和釋出證書廢止列表(CRL)。
(7)數字證書的歸檔。
(8)金鑰歸檔。
(9)歷史資料歸檔。
  認證中心為了實現其功能,主要由以下三部分組成:
  註冊伺服器:透過 Web Server 建立的站點,可為客戶提供每日24小時的服務。因此客戶可在自己方便的時候在網上提出證書申請和填寫相應的證書申請表,免去了排隊等候等煩惱。
  證書申請受理和稽核機構:負責證書的申請和稽核。它的主要功能是接受客戶證書申請並進行稽核。
  認證中心伺服器:是數字證書生成、發放的執行實體,同時提供發放證書的管理、證書廢止列表(CRL)的生成和處理等服務。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-991538/,如需轉載,請註明出處,否則將追究法律責任。

相關文章