分類
CISSP

公開金鑰認證

公開金鑰認證(英語:Public key certificate),又稱數位憑證(digital certificate)或身分憑證(identity certificate)。是用於公開金鑰基礎建設的電子檔案,用來證明公開金鑰擁有者的身分。此檔案包含了公鑰資訊、擁有者身分資訊(主體)、以及數位憑證認證機構(發行者)對這份檔案的數位簽章,以保證這個檔案的整體內容正確無誤。擁有者憑著此檔案,可向電腦系統或其他使用者表明身分,從而對方獲得信任並授權存取或使用某些敏感的電腦服務。電腦系統或其他使用者可以透過一定的程序核實憑證上的內容,包括憑證有否過期、數位簽章是否有效,如果你信任簽發的機構,就可以信任憑證上的金鑰,憑公鑰加密與擁有者進行可靠的通訊。

簡而言之,認證機構用自己的私鑰對需要認證的人(或組織機構)的公鑰施加數位簽章並生成憑證,即憑證的本質就是對公鑰施加數位簽章。[1]

數位憑證的其中一個最主要好處是在認證擁有者身分期間,擁有者的敏感個人資料(如出生日期、身分證號碼等)並不會傳輸至索取資料者的電腦系統上。透過這種資料交換模式,擁有者既可證實自己的身分,亦不用過度披露個人資料,對保障電腦服務存取雙方皆有好處。

人們透過信任數位憑證認證機構的根憑證、及其使用公開金鑰加密作數位簽章核發的公開金鑰認證,形成信任鏈架構,已在TLS實作並在全球資訊網HTTPS、在電子郵件的SMTPS和STARTTLS廣泛應用。業界現行的標準是國際電信聯盟電信標準化部門制定的X.509[2],並由IETF發行的RFC 5280詳細述明。而在不少國家/地區,都已立法承認使用數位憑證所作的數位簽章擁有等同親筆簽章的法律效力(如歐洲聯盟[3][4]香港[5][6]台灣[7]美國加拿大)。

憑證種類[編輯]

根憑證(自簽憑證)、中介憑證和終端實體(TLS伺服器/客戶端)憑證的關係

自簽憑證[編輯]

在用於小範圍測試等目的的時候,使用者也可以自己生成數位憑證,但沒有任何可信賴的人簽章,這種自簽章憑證通常不會被廣泛信任,使用時可能會遇到電腦軟體的安全警告[8]

根憑證[編輯]

主條目:根憑證

根憑證獲得廣泛認可,通常已預先安裝在各種軟體(包括作業系統瀏覽器電子郵件軟體等),作為信任鏈的起點,來自於公認可靠的政府機關(如香港郵政[9]台灣網路資訊中心)、軟體公司(如Google[10]Let’s Encrypt)、憑證頒發機構公司(如VeriSign)等,與各大軟體商透過嚴謹的核認程序才在不同的軟體廣泛部署。由於部署程序複雜費時,需要行政人員的授權及機構法人身分的核認,一張根憑證有效期可能長達十年以上。在某些企業,也可能會在內部電腦自行安裝企業自簽的根憑證,以支援內部網路企業級軟體;但是這些憑證可能未被廣泛認可,只在企業內部適用。

中介憑證[編輯]

認證機構的一個重要任務就是為客戶簽發憑證,雖然廣泛認可的認證機構都已擁有根憑證,相對應的私鑰可用以簽署其他憑證,但因為金鑰管理和行政考慮,一般會先行簽發中介憑證,才為客戶作數位簽署。中介憑證的有效期會較根憑證為短,並可能對不同類別的客戶有不同的中介憑證作分工。

授權憑證[編輯]

主條目:授權憑證

授權憑證又稱屬性憑證,本身沒有公鑰,必須依附在一張有效的數位憑證上才有意義,其用處是賦予相關擁有人簽發終端實體憑證的權力;某些情況下,如果只在短期內授予憑證機構簽發權力,便可以不改變(縮短)該機構本身持有的憑證的有效期。這種情況,類似於某人持有長達十年期的護照,而只透過簽發短期入境簽證,來個別賦予護照持有人額外權力。

終端實體憑證[編輯]

其他不會用作簽發其他憑證的,都可稱為終端實體憑證,在實際的軟體中部署,以便建立加密通道時應用。

TLS伺服器憑證[編輯]

伺服器通常以域名形式在網際網路上提供服務,伺服器憑證上主體通用名稱就會是相應的域名,相關機構名稱則寫在組織單位一欄上。伺服器憑證(包括公鑰)和私鑰會安裝於伺服器(例如Apache),等待客戶端連接時協定加密細節。客戶端的軟體(如瀏覽器)會執行認證路徑驗證演算法以確保安全,如果未能肯定加密通道是否安全(例如憑證上的主體名稱不對應網站域名、伺服器使用了自簽憑證、或加密演算法不夠強),可能會警告使用者。

萬用字元憑證[編輯]

主條目:萬用字元憑證

如果伺服器憑證上主體的通用名稱(或主體別名)一欄以萬用字元前綴,則該憑證可以用於旗下的所有子域名,特別適合較具規模、或設有多個子網站的機構一次過申領,套用於多個伺服器上;即使未來建立新的子域名,也可以套用。但萬用字元不可用於擴展認證憑證上。

內容欄位[編輯]

一般遵從X.509格式規範的憑證,會有以下的內容,它們以欄位的方式表示[12]

  • 版本:現行通用版本是 V3
  • 序號:用以辨識每一張憑證,特別在復原憑證的時候有用
  • 主體:擁有此憑證的法人自然人身分或機器,包括:
    • 國家(C,Country)
    • 州/省(S,State)
    • 地域/城市(L,Location)
    • 組織/單位(O,Organization)
    • 通用名稱(CN,Common Name):在TLS應用上,此欄位一般是網域
  • 發行者:以數位簽章形式簽署此憑證的數位憑證認證機構
  • 有效期開始時間:此憑證的有效開始時間,在此前該憑證並未生效
  • 有效期結束時間:此憑證的有效結束時間,在此後該憑證作廢
  • 公開金鑰用途:指定憑證上公鑰的用途,例如數位簽章、伺服器驗證、使用者端驗證等
  • 公開金鑰
  • 公開金鑰指紋
  • 數位簽章
  • 主體別名:例如一個網站可能會有多個網域(www.wikipedia.org, zh.wikipedia.org, zh.m.wikipedia.org 都是維基百科)、一個組織可能會有多個網站(*.wikipedia.org, *.wikibooks.org, *.wikidata.org 都是維基媒體基金會旗下的網域),不同的網域可以一併使用同一張憑證,方便實作應用及管理

申領及使用[編輯]

向憑證機構申領簽發電子憑證的過程

數位憑證一般由數位憑證認證機構簽發,簡單的程序如下:

申領[編輯]

  1. 鮑伯在自己的機器上使用密碼學安全偽亂數生成器產生一對足夠強的密鑰,鮑伯的私鑰不會向任何人傳送。
  2. 鮑伯把他的公鑰,連同主體訊息、使用目的等組成憑證簽署請求,傳送給認證機構伊凡
  3. 伊凡(用另外一些管道)核實鮑伯的身分。
  4. 如果伊凡信任這個請求,他便使用鮑伯的公鑰和主體訊息,加上憑證有效期、用途等限制條件,組成憑證的基本資料。
  5. 伊凡用自己的私鑰對鮑勃的公鑰加上數位簽章並生成憑證。
  6. 伊凡把生成的憑證傳送給鮑伯(伊凡也可以透過憑證透明度公布他簽發了新的憑證)。

使用[編輯]

主條目:公開金鑰加密 § 加密過程

  1. 鮑伯可以隨便把憑證向外發布。
  2. 鮑伯與愛麗絲事先可能互不認識,但鮑伯與愛麗絲都信任伊凡,愛麗絲使用認證機構伊凡的公鑰驗證數位簽章,如果驗證成功,便可以信任鮑勃的公鑰是真正屬於鮑伯的。[1]
  3. 愛麗絲可以使用憑證上的鮑勃的公鑰加密明文,得到密文並傳送給鮑伯。
  4. 鮑伯可以可以用自己的私鑰把密文解密,得到明文。

資料來源:https://zh.wikipedia.org/wiki/%E5%85%AC%E9%96%8B%E9%87%91%E9%91%B0%E8%AA%8D%E8%AD%89

作者: stevencho

從事資訊工作二十多年,對資安極具熱情,在 Network Security, Endpoint Security, 及 Mobile Security 等資安領域有超過十年以 上的經驗。曾任職精誠資訊資安產品代理部門技術經理,負責 資安產品之技術支援與大型企業導入專案。此外,他也取得了 ISO 27001 主導稽核員證書及 Check Point 的 CCSA 與 CCSE 等防 火牆產品的專業證照。