• 沒有找到結果。

第二章 背景知識介紹

第二節 公開金鑰基礎建設

2.1 公開金鑰基礎建設(PKI)與電子憑證

公開金鑰基礎建設(Public Key Infrastructure,PKI)是以公開金鑰密碼學技 術為基礎而衍生的架構,公開金鑰密碼技術為非對稱式演算法,以 RSA 演算法為 開金鑰密碼系統(Certificate-base Public Key Cryptosystem) ,也就是藉由公正的 第三者(CA)發給合法的數位憑證(Digital Certificate),在公開金鑰基礎建設模型 中,有以下四個主要元件:

1. 憑證使用者(Certificate User):使用者自己產生一組金鑰對之後,分別交給註 冊中心與憑證中心以取得一份憑證,或者在需要與另外一位使用者溝通時,

向憑證儲藏中心要求查詢這一位使用者的憑證。

2. 註冊中心(Registration Authority,RA):使用者將金鑰對交給註冊中心驗證之 後,註冊中心會產生一份經過認可但尚未簽署的憑證,交由憑證中心來完成 簽署。

3. 憑證中心(Certification Authority,CA):憑證中心在憑證上簽章,完成簽署手 續,並且存入憑證儲藏中心,讓憑證可以經由查詢而得到,如果憑證出現問 題,或者依使用者要求,憑證中心可以依照一定的程序來廢止憑證。

4. 憑證儲藏中心(Certification Repository):這裡儲存憑證中心簽署過的憑證,和 一份憑證廢止清單(Certificate Revocation List,CRL),上面列出了所有遭到 憑證廢止中心公告廢止的憑證,讓使用者可以隨時查詢得到最新的結果。

圖 2-5.PKI 的架構

在公開金鑰基礎建設中扮演最重要的角色就是憑證,憑證中最基本的資料包含公 開金鑰、使用者(Subject)的身分、憑證序號、憑證有效期限、簽發憑證的憑證中 心、及憑證中心所簽署的簽章,目前憑證最通用的標準是X.509 v3(ITU-T X.509 version 3),此標準提供最好的通用性及延展性。

2.2 X.509 憑證服務

X.509是國際電信組織(ITU-T)所制定的X.500目錄服務(directory serv -ice) 系列文件的其中之一,X.509 公開金鑰憑證規格歷經三次沿革,目前的版本為版 本三,三個版本間的差異性如下。

․X.509 版本一:1988 年提出,為X.500目錄服務中的一部份,定義出標準的憑 證格式。

․X.509 版本二:1993 年提出,在憑證中增加了兩個欄位,可以用來支援作目 錄存取控制。

․X.509 版本三:1996 年6 月提出。此版本在版本二中加入了預備的額外擴充 (extension)欄位,特殊的擴充欄位型態可能會被標準化或是被任何公司組織 所定義和註冊。ITU-T 定義了X.509 版本三的擴充欄位型態如:主體識別 (subject identification)、金鑰屬性(Key attribute)、策略映射(policy mapping)與憑證路徑限制(certificate path constraints)等。

在TBS (To Be Sign)憑證中發行者與主體唯一識別碼只有在X.509 版本二後才支 援,故若有此兩欄位,則憑證中版本欄位必是版本二或三,而擴充欄位則是在版 本三後才支援。

圖 2-6 X.509 三版本公開金鑰電子憑證比較 上圖說明了X.509v3憑證的組成欄位,以下說明各欄位的意義:

․Version: X.509憑證版本,其中第三版較前兩個版本多了一個擴充欄位(Exten

-sions)。

․Certificate serial number: 憑證中心所發出的憑證序號,此序號在該憑 證中心是唯一的。

․Signature Algorithm: 用來簽署這份憑證的簽章演算法代號。

․Issuer name: 憑證中心的身分,以X.500來表示。

․Period of validity: 包含兩個日期,利用"Not before"和"Not after"

兩個欄位來區隔憑證的有效期限。

․Subject name: 擁有這份憑證的使用者的身分。

․Subject's public key info: 憑證擁有者的公開金鑰資訊,包含公開金 鑰,演算法代號等。

․Issuer unique name: 憑證中心的唯一識別身分。

․Subject unique name: 憑證擁有者唯一識別身分。

․Extension: 其他擴充欄位。

․Signature: 整份憑證的簽章是由憑證中心來簽署的。

CA 發行憑證時採用公開金鑰演算法,利用CA 的私密金鑰依照憑證中指定的簽

圖 2-7 x.509 的金字塔制度

在 X.509 中,每一個合格的憑證上,都會有一個簽名。最下層的憑證 上,會有一個認證中心 (CA) 的簽名,表示這個認證中心 (CA) 檢查過,確認 所有者資料無誤。中間的認證中心 (CA) 上,也會有管轄它的最高層認證中心 (Root CA) 的簽名,表示最高層認證中心授權給它,可以簽發別人的憑證。只有 最高層認證中心上,因為它已經是最大,沒有再上層可以給它簽名了,所以只好 自己簽自己,憑證上的簽名是自己簽的。程式自己會認得幾家可靠的認證中心 (CA)碰到不認得伺服器的憑證 (Certificate)時 ,只要那個憑證上,有自己認得 的認證中心 (CA) 簽名保證過,那個憑證就沒有問題。

相關文件