公開金鑰認證

本页使用了标题或全文手工转换,现处于澳门繁体模式
求聞百科,共筆求聞

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

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

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

人們透過信任數碼證書認證機構的根證書、及其使用公開金鑰加密作數碼簽章核發的公開金鑰認證,形成信任鏈架構,已在TLS實作並在萬維網HTTPS、在電子郵件的SMTPS和STARTTLS廣泛應用。業界現行的標準是國際電信聯盟電信標準化部門制定的X.509[2],並由IETF發行的RFC 5280詳細述明。而在不少國家或地區,都已立法承認使用數碼憑證所作的數碼簽章擁有等同親筆簽章的法律效力。

證書種類

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

自簽證書

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

根證書

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

中介證書

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

授權憑證

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

終端實體證書

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

TLS伺服器證書

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

萬用字元證書

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

TLS客戶端證書

有時候,某些TLS伺服器可能會在建立加密通道時,要求客戶端提供客戶端證書,以驗證身份控制存取權限。客戶端證書包含電子郵件地址或個人姓名,而不是主機名。但客戶端證書比較不常見,因為考慮到技術門檻及成本因素,通常都是由服務提供者驗證客戶身份,而不是依賴第三方認證機構。通常,需要使用到客戶端證書的服務都是內聯網的企業級軟件,他們會設立自己的內部根證書,由企業的技術人員在企業內部的電腦安裝相關客戶端證書以便使用。在公開的互聯網,大多數網站都是使用登入密碼Cookie來驗證用戶,而不是客戶端證書。

客戶端證書在RPC系統中更常見,用於驗證連接設備的許可授權。

內容欄位

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

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

申領及使用

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

申領

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

使用

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

儲存格式

電子證書可以二進制Base64形式儲存,常見的副檔名有 .cer、.crt、.der和.pem。如果把證書和私鑰一起儲存,則可以使用PKCS#12(.p12)格式[6]

  • DER用於二進制DER編碼的證書。
  • PEM用於不同類型的X.509v3檔案,是以「 - BEGIN ...」字首的ASCII(Base64)數據。
  • CER和CRT幾乎同義,證書可以被編碼為二進制DER或ASCII PEM。
  • PKCS7 檔案,也被稱為 P7B,通常用於 Java Keystores 和 Microsoft IIS(Windows)。它們是 ASCII 檔案,可以包含證書和 CA 證書。
  • PKCS12 檔案,也被稱為 PFX 檔案,通常用於在 Micrsoft IIS(Windows)中匯入和匯出證書鏈。

審核級別

法人團體申領數碼憑證的時候,可以視乎其法人的地位及其實際需要申領不同級別的憑證,認證機構會作相應的審核,越進階別的通常都牽涉越嚴謹的行政程序,及需付出更高昂的費用。各大憑證機構和網頁瀏覽器軟件商透過CA/瀏覽器討論區共同建立和維護相關的指導方針[7]

域名驗證(DV)

這是最基本的審核級別,如果申領代表可以證明他擁有管理某域名的權力,認證機構就可以發放域名驗證(DV)證書。認證機構通常使用自動機制(例如自動證書管理環境[8]或透過電郵確認)審核域名擁有權,所以成本也較低[9]

組織驗證(OV)

如果申領代表可以證明他擁有管理某域名的權力,而且相關組織是實際存在的法人,認證機構可以發放組織驗證(OV)證書。審核程序通常需要經過人手處理。

擴充驗證(EV)

這是最嚴格的審核級別,審核過程可能牽涉專業法律人員的調查及獨立審計人員的確認,成本也自然更高[10];成功獲得擴充驗證證書的網站,現代瀏覽器通常會在地址列以綠色表示相關機構的法人名稱及所屬國家代碼[11]。擴充驗證證書的主體名稱或主體別名上不可以有萬用字元。

弱點與防禦

公開金鑰基礎建設的弱點,在於人們必須循數碼憑證上的信任鏈找到根證書,並信任核髮根證書的數碼證書認證機構,一旦憑證機構被黑客入侵,黑客可以在人們不知情下簽發了偽冒他人身份的證書,以中間人攻擊進行欺詐。業界已研發不同的防禦方法,例如憑證機構可以透過證書透明度公佈新簽發的電子憑證,讓大眾檢查手上收到的電子憑證是否可能未被正式授權(中間人攻擊不會「公佈」他偽冒了別人簽發了欺詐憑證),網站管理員也可以定期檢查是否有不明機構發出了未被授權的憑證。另一方面,HTTPS網站可以使用HPKP指明其固定的公鑰,讓中間人的欺詐憑證無法使用。另外,而OCSPOCSP裝訂也在發展中,讓用戶軟件可以透過第三方檢查憑證是否有效。

在公鑰基礎設施以外,信任網絡則採用去中心化的概念,取代了依賴數碼證書認證機構的公鑰基礎設施,因為每一張電子證書在信任鏈中最終只由一個根證書授權信任,信任網絡的公鑰則可以累積多個用戶的信任。

參見

參考文獻

  1. 1.0 1.1 結城浩. 图解密码技术(第3版). 人民郵電出版社. 2016: 231頁. ISBN 978-7-115-42491-4. 
  2. Public-key and attribute certificate frameworks. ITU-T. 2016-12-08 [2017-07-10] (英語). 
  3. 什麼是「您的连线并不安全」?. mozilla.org. [2017-07-07]. Firefox 會檢驗網站憑證的正確性以及連線的加密強度以確保您的私隱。如果憑證無法被驗證,或連線使用了不夠強的加密演算法,Firefox 會中斷與網站的連線,並顯示下列錯誤頁面……自我簽署的憑證能保護您的資料免受竊聽,但無法讓您確認資料的接收者是誰。常見於無法公開連線的企業內聯網路,您可以對這類網站忽略此警告。 
  4. 关于香港邮政电子证书. 香港郵政. [2017-07-12]. 香港郵政在二零零零年成立香港第一家在《電子交易條例》(香港法例第553章)下的認可公共核證機關。現時,香港郵政核證機關發出符合電子交易條例要求的「認可數碼證書」。根據《電子交易條例》,使用該條例下認可的數碼證書作出的數碼簽署與書面的簽署具同等法律效力。 
  5. Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile. IETF. [2017-07-10] (英語). This section presents a profile for public key certificates that will foster interoperability and a reusable PKI. This section is based upon the X.509 v3 certificate format and the standard certificate extensions defined in [X.509]. [...] This section also defines private extensions required to support a PKI for the Internet community. 
  6. Mac OS X 10.6: 关于憑证格式. 蘋果電腦. [2017-07-18] (繁體中文(中國台灣)). 
  7. About the CA/Browser Forum. CA/瀏覽器討論區. [2017-07-14] (英語). the CA/Browser Forum advances industry best practices to improve the ways that certificates are used to the benefit of Internet users and the security of their communications 
  8. Automated Certificate Management Environment (acme). IETF. [2017-07-12] (英語). ACME certificate management must allow the CA to verify, in an automated manner, that the party requesting a certificate has authority over the requested identifiers, including the subject and subject alternative names. The processing must also confirm that the requesting party has access to the private key that corresponds to the public key that will appear in the certificate. 
  9. Information for the Public/Domain Validation (DV). CA/瀏覽器討論區. [2017-07-12] (英語). A Domain Validated SSL certificate is issued after proof that the owner has the right to use their domain is established. This is typically done by the CA sending an email to the domain owner (as listed in a WHOIS database). Once the owner responds, the certificate is issued. [...] The certificate only contains the domain name. Because of the minimal checks performed, this certificate is typically issued quicker than other types of certificates. 
  10. About EV SSL. CA/瀏覽器討論區. [2017-07-12] (英語). The primary objectives of an EV SSL Certificate are to: Identify the legal entity that controls a web site by providing reasonable assurance to the user of an Internet browser that the web site the user is accessing is controlled by a specific legal entity identified in the EV Certificate by name, address of Place of Business, Jurisdiction of Incorporation or Registration and Registration Number or other disambiguating information 
  11. 我怎麼知道是否连上安全的网站?/绿色锁头. mozilla.org. [2017-07-12] (繁體中文(中國台灣)). 綠色鎖頭圖示將另外以綠色字型呈現公司或組織的名稱,代表該網站使用了 Extended Validation (EV) certificate。與其他類型的憑證相較,EV 屬於特別的網站憑證,需完成極繁複的檢驗程序。/在使用 EV 憑證的網站,網站識別鈕會顯示綠色鎖頭、合法的公司或組織的名稱和網站擁有者的位置,因此你可以知道是誰在營運這個網站。舉例來說,網站識別鈕會顯示 mozilla.org 是由 Mozilla 基金會所擁有。