資訊與網路安全技術 第 七章 數位簽章與數位憑證  上一頁      下一頁

 

7-6 數位憑證的運作

內容:

  • 7-6-1 憑證單向認證

  • 7-6-2 憑證相互認證

利用 IC 卡儲存數位憑證(或稱為 Smart Card)是目前最普遍採用的元件,然而,當我們由 IC 卡取出憑證資料(X.509 憑證,主要是公開鑰匙),並傳送給對方時,對方如何判斷此憑證並非他人所冒用。記得前面討論過,我們希望數位憑證能像真實環境裡的各種證照的功能,並且能在網路上自由通行。譬如,當您遇到交通警察要求您出示駕駛執照時,警察最起碼由駕照的相片確認是您本人,或者是他人所偽造;另一方面,您也可以從攔截您停車之警察的警徽或相關警察證件,辨別其真偽。很不幸的,在虛擬環境裡並無法正確地觀察到出示憑證的本人面貌,因此必須有特殊的處理功能始可行,我們就單向認證與雙向的相互認證兩方面來探討。

7-6-1 憑證單向認證

7-9 為數位憑證單向認證的運作程序,事先持卡者(User A)已將私有鑰匙與數位憑證(公開鑰匙)儲存於 IC 卡上(鑰匙配對 {KRa, KUa}),其運作說明如下:當持卡者欲傳送憑證(如公開鑰匙 KUa)之前,先產生一個亂數(N1)並輸入密碼(訊號 (1))取得 IC 卡上的私有鑰匙(KRa),再向該亂數簽署(Sig 函數)之後,連同亂數及憑證(CertA)包裝成一個訊息(訊號 (2)),一併傳給伺服端,訊息如下:

SigKRa [N1] || N1 || CertA

7-9 數位憑證的單向認證

伺服端收到訊息之後,利用憑證(CertA)內的公鑰(KUa)及所收到的亂數(N1),驗證所收到的簽署碼是否正確,如果正確的話,則確定發送憑證者是公鑰擁有者本身。因為,私鑰只有持有人自己擁有,利用它的公鑰可以驗證其私鑰所簽署的數位簽章,則應該是他本人沒錯,除非持卡者自己的私鑰已被破解或冒用;或者持卡人取得 IC 卡裡私鑰的通行碼洩漏,而且 IC 卡也被他人盜用才有可能被冒名發送憑證。

7-6-2 憑證相互認證

許多情況下必須達到雙方都能確認對方的身份(雙方 IC 卡之間的確認),才能確保通訊交易的安全,其運作程序如圖 7-10 所示;可區分為兩個時相(Phase),我們還是以所標示的訊號次序來說明,並簡略使用者輸入通行碼部分。說明如下:(Alice 為發起者,Bob 為回應者)

  • 訊號 (1)Alice 發送自己的憑證CertA,包含公開鑰匙)與一個亂數(N1)給 Bob

  • 訊號 (2)Bob 收到對方的憑證之後,先不去認證憑證的正確性,而另外產生一個亂數(N2),並與 Alice 的亂數一起利用自己的私鑰簽署;之後,將亂數(N2)與簽署碼(SigKRb [N1 || N2])一併傳送給 Alice

  • 訊號 (3)Bob 將自己的憑證CertB,包含公開鑰匙)與產生一個亂數 N3 一併傳送給 Alice。接下來,Alice 由該憑證上取得 Bob 的公開鑰匙,再利用訊號 (2) 所收到的亂數與簽章碼(SigKRb [N1 || N2], N2),驗證該簽章碼是否正確,便可確定 CertB 是否是 Bob 的憑證。

  • 訊號 (4)Alice 確定對方身份無誤之後,則另外產生一個亂數 N4,與所收到的亂數 N3,一併利用自己的私鑰簽署,再將亂數與簽署碼(SigKRa [N3 || N4], N4)傳送給 Bob。接著,Bob 收到該訊之後,則取出 Alice 憑證內的公開鑰匙(CertA,訊號 (1)),並驗證所收到的簽署碼是否正確。如此一來,Bob 也可以確認 Alice 的身份是否正確。

7-10數位憑證的相互認證

在圖 7-10 中省略了使用者輸入通行碼部分;同樣的,持卡者想要由 IC 卡內取得自己的私鑰,簽署交換的亂碼時,都必須經過通行碼的確認才行。

值得特別注意的是,採用 IC 卡(智慧卡)為儲存媒體的話,無論簽署/驗證簽章演算法、加密/解密演算法、亂數產生等等關鍵性的處理,都是由 IC 卡內部的作業系統(如 COS)所完成,不需仰賴外部設備(如個人電腦或讀卡機),如此才能確保整個認證程序的安全性。

主講人:粘添壽博士

 

資訊與網路安全技術