PKI 基礎知識

PKI 基礎知識

(摘自Microsoft Windows 2000 Server白皮書,2000年7月5日發(fā)布)

摘要

本白皮書介紹了加密和公鑰基本結構(PKI)的概念和使用 Microsoft Windows 2000 Server 操作系統(tǒng)中的證書服務的基礎知識。如果您還不熟悉加密和公鑰技術,先閱讀本白皮書將有助于理解 Windows 2000 Web 站點上有關這些主題的其它技術白皮書。

引言

Microsoft Windows 2000 證書服務提供的集成的公鑰基本結構(PKI)使電子商務能夠在安全的環(huán)境中進行。本白皮書介紹了加密和 PKI 的概念。理解這些相關概念是理解證書服務功能的先決條件,證書服務是 Microsoft Windows 2000 Server 操作系統(tǒng)中的一個組件。

加密概念

加密是通過 Intranet、Extranet 和 Internet 進行安全的信息交換的基礎。從業(yè)務的角度來看,通過加密實現(xiàn)的安全功能包括: 身份驗證 ,使收件人確信發(fā)件人就是他或她所聲明的那個人; 機密性 ,確保只有預期的收件人能夠閱讀郵件;以及 完整性 ,確保郵件在傳輸過程中沒有被更改。從技術的角度來看,加密是利用數(shù)學方法將郵件轉換為不可讀格式從而達到保護數(shù)據(jù)的目的的一門科學。

本節(jié)介紹下列加密概念:

對稱密鑰加密:一個密鑰;

公鑰加密:兩個密鑰;

單向散列算法;

數(shù)字簽名:結合使用公鑰與散列;

密鑰交換:結合使用對稱密鑰與公鑰。

前三個小節(jié)分別定義并說明對稱密鑰加密、公鑰加密和散列算法。后兩個小節(jié)說明 組合使用 這些技術的方法-尤其是,將公鑰算法與散列算法相結合以創(chuàng)建數(shù)字簽名,以及將對稱算法與公鑰算法相結合使交換密(私)鑰成為可能。

對稱密鑰加密:一個密鑰

對稱密鑰加密,也叫做共享密鑰加密或機密密鑰加密,使用發(fā)件人和收件人共同擁有的單個密鑰。這種密鑰既用于加密,也用于解密,叫做 機密密鑰 (也稱為 對稱密鑰 或 會話密鑰 )。對稱密鑰加密是加密大量數(shù)據(jù)的一種行之有效的方法。.

對稱密鑰加密有許多種算法,但所有這些算法都有一個共同的目的-以可還原的方式將 明文 (未加密的數(shù)據(jù))轉換為 暗文 。暗文使用加密密鑰編碼,對于沒有解密密鑰的任何人來說它都是沒有意義的。由于對稱密鑰加密在加密和解密時使用相同的密鑰,所以這種加密過程的安全性取決于是否有未經(jīng)授權的人獲得了對稱密鑰。這就是它為什么也叫做機密密鑰加密的原因。希望使用對稱密鑰加密通信的雙方,在交換加密數(shù)據(jù)之前必須先安全地交換密鑰。

衡量對稱算法優(yōu)劣的主要尺度是其密鑰的長度。密鑰越長,在找到解密數(shù)據(jù)所需的正確密鑰之前必須測試的密鑰數(shù)量就越多。需要測試的密鑰越多,破解這種算法就越困難。有了好的加密算法和足夠長的密鑰,如果有人想在一段實際可行的時間內(nèi)逆轉轉換過程,并從暗文中推導出明文,從計算的角度來講,這種做法是行不通的。

公鑰加密:兩個密鑰

公鑰加密使用兩個密鑰- 一個公鑰 和 一個私鑰 ,這兩個密鑰在數(shù)學上是相關的。為了與對稱密鑰加密相對照,公鑰加密有時也叫做不對稱密鑰加密。在公鑰加密中,公鑰可在通信雙方之間公開傳遞,或在公用儲備庫中發(fā)布,但相關的私鑰是保密的。只有使用私鑰才能解密用公鑰加密的數(shù)據(jù)。使用私鑰加密的數(shù)據(jù)只能用公鑰解密。在圖 1 中,發(fā)件人擁有收件人的公鑰,并用它加密了一封郵件,但只有收件人掌握解密該郵件的有關私鑰。

圖 1 公鑰加密要求使用一個公鑰和一個私鑰。

與對稱密鑰加密相似,公鑰加密也有許多種算法。然而,對稱密鑰和公鑰算法在設計上并無相似之處。您可以在程序內(nèi)部使用一種對稱算法替換另一種,而變化卻不大,因為它們的工作方式是相同的。而另一方面,不同公鑰算法的工作方式卻完全不同,因此它們不可互換。

公鑰算法是復雜的數(shù)學方程式,使用十分大的數(shù)字。公鑰算法的主要局限在于,這種加密形式的速度相對較低。實際上,通常僅在關鍵時刻才使用公鑰算法,如在實體之間交換對稱密鑰時,或者在簽署一封郵件的散列時(散列是通過應用一種單向數(shù)學函數(shù)獲得的一個定長結果,對于數(shù)據(jù)而言,叫做散列算法)。將公鑰加密與其它加密形式(如對稱密鑰加密)結合使用,可以優(yōu)化性能。公鑰加密提供了一種有效的方法,可用來把為大量數(shù)據(jù)執(zhí)行對稱加密時使用的機密密鑰發(fā)送給某人。也可以將公鑰加密與散列算法結合使用以生成數(shù)字簽名。

若要進一步了解關于將公鑰加密與對稱密鑰加密或散列算法結合使用的信息,請參見下面兩節(jié):“數(shù)字簽名: 結合使用公鑰與散列算法”和“密鑰交換:結合使用對稱密鑰與公鑰”

將公鑰加密用于數(shù)字簽名

數(shù)字簽名是郵件、文件或其它數(shù)字編碼信息的發(fā)件人將他們的身份與信息綁定在一起(即為信息提供簽名)的方法。對信息進行數(shù)字簽名的過程,需要將信息與由發(fā)件人掌握的秘密信息一起轉換為叫做簽名的標記。數(shù)字簽名用于公鑰環(huán)境中,它通過驗證發(fā)件人確實是他或她所聲明的那個人,并確認收到的郵件與發(fā)送的郵件完全相同,來幫助確保電子商務交易的安全。

通常,數(shù)字簽名用于以明文(如電子郵件)分發(fā)數(shù)據(jù)的情形。在這種情況下,當郵件本身的敏感性可能無法保證加密的安全性時,確保數(shù)據(jù)處于其原始格式且并非由假冒者發(fā)送,是非常重要的。

要了解如何結合使用公鑰與散列算法來創(chuàng)建數(shù)字簽名,請參見下面的“數(shù)字簽名: 結合使用公鑰與散列算法”一節(jié)

常用公鑰算法

下面是三種最常用的公鑰算法:

RSA -適用于數(shù)字簽名和密鑰交換。 Rivest-Shamir-Adleman (RSA) 加密算法是目前應用最廣泛的公鑰加密算法,特別適用于通過 Internet 傳送的數(shù)據(jù)。這種算法以它的三位發(fā)明者的名字命名:Ron Rivest、Adi Shamir 和 Leonard Adleman。RSA 算法的安全性基于分解大數(shù)字時的困難(就計算機處理能力和處理時間而言)。在常用的公鑰算法中,RSA 與眾不同,它能夠進行數(shù)字簽名和密鑰交換運算。Microsoft Base Cryptographic Service Provider (Microsoft Base CSP 1 ) 支持 RSA 加密算法,并且 Microsoft Enhanced Cryptographic Service Provider (Microsoft Enhanced CSP 2 ) 已經(jīng)內(nèi)置到包括 Microsoft Internet Explorer 在內(nèi)的許多軟件產(chǎn)品中。

DSA -僅適用于數(shù)字簽名。 數(shù)字簽名算法 (Digital Signature Algorithm, DSA) 由美國國家安全署 (United States National Security Agency, NSA) 發(fā)明,已經(jīng)由美國國家標準與技術協(xié)會 (National Institute of Standards and Technology, NIST) 收錄到聯(lián)邦信息處理標準 (Federal Information Processing Standard, FIPS) 之中,作為數(shù)字簽名的標準。DSA 算法的安全性源自計算離散算法的困難。這種算法僅用于數(shù)字簽名運算(不適用于數(shù)據(jù)加密)。Microsoft CSP 支持 DSA 算法。

Diffie-Hellman -僅適用于密鑰交換。 Diffie-Hellman 是發(fā)明的第一個公鑰算法,以其發(fā)明者 Whitfield Diffie 和 Martin Hellman 的名字命名。Diffie-Hellman 算法的安全性源自在一個有限字段中計算離散算法的困難。Diffie-Hellman 算法僅用于密鑰交換。Microsoft Base DSS 3 和 Diffie-Hellman CSP 都支持 Diffie-Hellman 算法。

單向散列算法

散列-也稱為 散列值 或 消息摘要 ,是一種與基于密鑰(對稱密鑰或公鑰)的加密不同的數(shù)據(jù)轉換類型。散列就是通過把一個叫做散列算法的單向數(shù)學函數(shù)應用于數(shù)據(jù),將任意長度的一塊數(shù)據(jù)轉換為一個定長的、不可逆轉的數(shù)字。所產(chǎn)生的散列值的長度應足夠長,因此使找到兩塊具有相同散列值的數(shù)據(jù)的機會很少。發(fā)件人生成郵件的散列值并加密它,然后將它與郵件本身一起發(fā)送。而收件人同時解密郵件和散列值,并由接收到的郵件產(chǎn)生另外一個散列值,然后將兩個散列值進行比較。如果兩者相同,郵件極有可能在傳輸期間沒有發(fā)生任何改變。

常用的單向散列函數(shù)

下面是兩個最常用的散列函數(shù):

MD5。 MD5 是由 Ron Rivest 設計的可產(chǎn)生一個 128 位的散列值的散列算法。MD5 設計經(jīng)過優(yōu)化以用于 Intel 處理器。這種算法的基本原理已經(jīng)泄露,這就是為什么它不太受歡迎的原因。

SHA-1。 與 DSA 公鑰算法相似,安全散列算法 1(SHA-1)也是由 NSA 設計的,并由 NIST 將其收錄到 FIPS 中,作為散列數(shù)據(jù)的標準。它可產(chǎn)生一個 160 位的散列值。SHA-1 是流行的用于創(chuàng)建數(shù)字簽名的單向散列算法。

數(shù)字簽名:結合使用公鑰與散列算法

可以結合使用公鑰技術與散列算法來創(chuàng)建數(shù)字簽名。數(shù)字簽名可用作數(shù)據(jù)完整性檢查并提供擁有私鑰的憑據(jù)。

簽署和驗證數(shù)據(jù)(由啟用 PKI 的應用程序如 Microsoft Outlook 完成)的步驟如下:

發(fā)件人將一種散列算法應用于數(shù)據(jù),并生成一個散列值。

發(fā)件人使用私鑰將散列值轉換為數(shù)字簽名。

然后,發(fā)件人將數(shù)據(jù)、簽名及發(fā)件人的證書發(fā)給收件人。

收件人將該散列算法應用于接收到的數(shù)據(jù),并生成一個散列值。

收件人使用發(fā)件人的公鑰和新生成的散列值驗證簽名。

對用戶而言這一過程是透明的。

散列算法處理數(shù)據(jù)的速度比公鑰算法快得多。散列數(shù)據(jù)還縮短了要簽名的數(shù)據(jù)的長度,因而加快了簽名過程。當創(chuàng)建或驗證簽名時,公鑰算法必須且只需轉換散列值(128 或 160 位的數(shù)據(jù))。創(chuàng)建簽名和驗證簽名的詳細步驟取決于所采用的公鑰算法。

密鑰交換:結合使用對稱密鑰與公鑰

對稱密鑰算法非常適合于快速并安全地加密數(shù)據(jù)。但其缺點是,發(fā)件人和收件人必須在交換數(shù)據(jù)之前先交換機密密鑰。結合使用加密數(shù)據(jù)的對稱密鑰算法與交換機密密鑰的公鑰算法可產(chǎn)生一種既快速又靈活的解決方案。

基于公鑰的密鑰交換步驟如下:

發(fā)件人獲得收件人的公鑰。

發(fā)件人創(chuàng)建一個隨機機密密鑰(在對稱密鑰加密中使用的單個密鑰)。在 Windows 2000 中,CryptoAPI 4 可用于創(chuàng)建機密密鑰。(有關 CryptoAPI 的詳細信息,請參見下面的“證書鏈驗證”一節(jié)。)

發(fā)件人使用機密密鑰和對稱密鑰算法將明文數(shù)據(jù)轉換為暗文數(shù)據(jù)。

發(fā)件人使用收件人的公鑰將機密密鑰轉換為暗文機密密鑰。

發(fā)件人將暗文數(shù)據(jù)和暗文機密密鑰一起發(fā)給收件人。

收件人使用其私鑰將暗文機密密鑰轉換為明文。

收件人使用明文機密密鑰將暗文數(shù)據(jù)轉換為明文數(shù)據(jù)。

同樣,這些步驟是由啟用 PKI 的應用程序(如 Microsoft Outlook)來完成的,并且對用戶來說是透明的。

公鑰基本結構的概念

術語公鑰基本結構(PKI)用于描述管制或操縱證書與公鑰及私鑰的策略、標準和軟件。實際上,PKI 是指由數(shù)字證書、證書頒發(fā)機構 (CA) 以及對電子交易所涉及各方的合法性進行檢查和驗證的其它注冊機構組成的一套系統(tǒng)。PKI 的有關標準仍處于不斷發(fā)展之中,即使這些標準已被作為電子商務的要素而廣泛實施。

本節(jié)幫助您理解什么是 PKI 以及創(chuàng)建 PKI 需要哪些服務。這些 PKI 概念將在下面幾個小節(jié)中討論:

證書;

證書頒發(fā)機構 (CA);

不可更改的 CA 層次結構;

注冊;

證書登記;

證書吊銷;

證書鏈驗證。

證書

公鑰證書,通常簡稱為?證書,用于在 Internet、Extranet 和 Intranet 上進行身份驗證并確保數(shù)據(jù)交換的安全。證書的頒發(fā)者和簽署者就是眾所周知的 證書頒發(fā)機構 (CA),將在下一節(jié)中介紹。頒發(fā)證書的實體是證書的 主體 。

公鑰證書是以數(shù)字方式簽名的聲明,它將公鑰的值與持有相應私鑰的主體(個人、設備和服務)的身份綁定在一起。通過在證書上簽名,CA 可以核實與證書上公鑰相應的私鑰為證書所指定的主體所擁有。

可以為各種目的頒發(fā)證書,如 Web 用戶身份驗證、Web 服務器身份驗證、使用安全/多用途 Internet 郵件擴充協(xié)議 (Secure/Multipurpose Internet Mail Extensions, S/MIME) 的安全電子郵件、IP 安全性 (IP Security)、安全套接字協(xié)議層/事務層安全性 (Secure Sockets Layer/Transaction Layer Security, SSL/TLS) 和代碼簽名。如果在一個組織內(nèi)部使用 Windows 2000 企業(yè)證書頒發(fā)機構(在“Windows 2000 Certificate Services”白皮書中說明),證書可用于登錄到 Windows 2000 域。證書還可以由一個 CA 頒發(fā)給另一個 CA,以建立證書層次結構。

可以通過多個名稱來識別主體,如用戶主要名稱(用于最終用戶證書)、目錄名、電子郵件名稱和 DNS 域名等。證書還應包含下列信息:

證書的有效期。

證書的序列號,CA 應保證該序列號是唯一的。

CA 的名稱以及用于簽署該證書的密鑰。

CA 所遵循的用來確定證書主體身份的策略的標識符(稍后將詳細介紹 CA 策略)。

在證書中標識的密鑰對(公鑰及相關的私鑰)的用法。

證書吊銷列表 (CRL) 的位置,這是一個由 CA 維護并發(fā)布的列出已被吊銷的證書的文檔。為確保其完整性,CRL 是用 CA 的私鑰簽署的。

證書提供了一個在公鑰和擁有相應私鑰的實體之間建立關系的機制。目前最常用的證書格式通過 ITU-T X.509 版本 3 (X.509v3) 國際標準定義。RFC 2459 是 X.509v3 的一個配置文件,進一步闡明了 X.509v3 中定義的字段。Windows 2000 PKI 采用 X.509v3 標準。Windows 證書是按照 RFC 2459 中的說明編程的,但仍然叫做 X.509v3 證書。(有關 ITU-T X.509 的詳細信息,請參見“Windows 2000 證書服務”白皮書。)

ITU-T X.509 并非證書的唯一格式。例如,Pretty Good Privacy (PGP) 安全電子郵件依賴 PGP 所獨有的一種證書。

證書頒發(fā)機構

證書頒發(fā)機構 (CA) 是一個向個人、計算機或任何其它申請實體頒發(fā)證書的可信實體。CA 受理證書申請,根據(jù)該 CA 的策略驗證申請人的信息,然后使用它的私鑰把其數(shù)字簽名應用于證書。然后,CA 將該證書頒發(fā)給該證書的主體,作為 PKI 內(nèi)部的安全憑據(jù)。由于不同的 CA 使用不同的方法驗證公鑰與主體之間的綁定,在選擇信任該頒發(fā)機構之前,理解該 CA 的策略是非常重要的(稍后解釋)。

CA 可以是遠程的第三方機構,如 GeoTrust。作為選擇,也可以是您創(chuàng)建的供您所在組織使用的 CA,例如,通過安裝 Windows 2000 證書服務即可創(chuàng)建一個 CA。每個 CA 對證書申請人可能有完全不同的身份憑據(jù)要求,如 Windows 2000 域帳戶、職員標記、駕駛執(zhí)照、公證請求或實際住址。

CA 策略

CA 根據(jù)也已確立的一套標準向申請人頒發(fā)證書。CA 在受理證書請求(以及頒發(fā)證書、吊銷證書和發(fā)布 CRL)時所采用的一套標準被稱為 CA 策略 。通常,CA 以一種叫做證書慣例聲明 (Certification Practice Statement, CPS) 的文檔發(fā)布其策略。

不應將 CA 策略與 Windows 2000 的術語“組策略”相混淆,后者通常與域帳戶和應用程序部署服務(如 IntelliMirror)相關聯(lián)。(關于 Windows 2000 中的 CA 策略以及組策略在 Windows 2000 PKI 中所扮演的角色的信息,請分別參見“Windows 2000 證書服務”白皮書中“Windows 2000 CA 策略”和“CA 證書分發(fā)”部分。)

證書頒發(fā)機構的類型

CA 的類型 5 包括以下三種:

自簽名 CA?。 在自簽名 CA 中,證書中的公鑰和用于驗證證書的密鑰是相同的。一些自簽名 CA 是根 CA(參見第三項)。

從屬 CA?。 在從屬 CA 中,證書中的公鑰和用于核實證書的密鑰是不同的。一個 CA 向另一個 CA 頒發(fā)證書的過程叫做 交叉認證 。

根 CA?。 根 CA 是一種特殊的 CA,它受到客戶無條件地信任,位于證書層次結構的最高層。所有證書鏈均終止于根 CA。根頒發(fā)機構必須對它自己的證書簽名,因為在證書層次結構中再也沒有更高的認證機構了。

所有自簽名 CA 都是根 CA,因為到自簽名 CA 時證書鏈就終止了。

Windows 2000 只能指定一個自簽名 CA 為根 CA。將一個 CA 指定為根 CA 的決策由個人在企業(yè)級或本地做出。

不可更改的 CA 層次結構

管理員可以創(chuàng)建 CA 的層次結構,從根 CA 證書開始,然后添加中級 CA,每一個 CA 都可以為其從屬 CA 頒發(fā)證書。當 CA 向最終實體(用戶)頒發(fā)證書時,證書鏈就終止了。

根 CA 證書的分發(fā)費用最高,因為如果您開始改變根證書,就必須重建整個 PKI。如果根證書改變了,就必須吊銷組織內(nèi)所有客戶端的舊的根證書,并添加新的根證書。另外,必須重新頒發(fā)由根 CA 頒發(fā)的、再由從屬 CA 頒發(fā)給最終實體的所有證書。因此,在部署 CA 層次結構時,使用少量的長壽命根 CA 可提供最經(jīng)濟的解決方案。根 CA 非常重要-因為它們被無條件地信任,因為它們是證書鏈的頂點-因此,在分發(fā)證書時要有一個圈外的身份驗證。也就是說,由于根 CA 是自簽名的,所以必須有人來證明根證書是真品。

因為最終實體要比 CA 多得多,所以向最終實體頒發(fā)證書的 CA 使用私鑰在大量的數(shù)據(jù)上簽名。用來對數(shù)據(jù)簽名的密鑰使用得越頻繁,加密數(shù)據(jù)受到攻擊的可能性就越大。因此,為了保持安全,向最終實體頒發(fā)證書的聯(lián)機 CA 必須經(jīng)常更換其簽名密鑰。

向最終實體頒發(fā)證書的 CA 具有的吊銷證書列表,要比中級或根 CA 的列表大得多(這些 CA 僅向其它 CA,更多的是從屬 CA 頒發(fā)證書)。其部分原因是因為最終實體要比 CA 證書多得多。另外,有許多理由可以解釋為什么必須吊銷最終實體的證書,如職員改變了工作或離開了公司。

CA 發(fā)布吊銷證書列表(CRL),其中列出了不應再使用的證書。被吊銷證書的有關條目將一直保留在 CRL 列表中,直至證書的 有效期 結束之后,CA 才可將該證書從列表中刪除。CRL 中的條目越多,CRL 就越大,其下載時間就越長。通常,只有使用較慢的網(wǎng)絡鏈路(如撥號連接)的用戶才會遇到下載時間問題。CA 還可以管理 CRL 列表的大小。一種方法是維護多個列表,稱為分區(qū) CRL。另一種方法是,縮短已頒發(fā)證書的有效期,從而加快 CA 從列表中刪除吊銷證書的速度。(關于 CRL 的詳細信息,請參見“證書吊銷”一節(jié)。)

許多應用程序必須能夠查明證書最近的吊銷狀態(tài)信息。只有一個聯(lián)機 CA 能夠發(fā)布有關證書狀態(tài)的當前信息。由脫機 CA 公布的吊銷狀態(tài),必須使用圈外的方法發(fā)布到聯(lián)機位置。

大多數(shù)容易受到攻擊的 CA 都是處于聯(lián)機狀態(tài)的、物理安全措施較差并簽署了大量證書的 CA。因此,建立根 CA 和從屬 CA 時,應該平衡一下安全性和可用性。通常,建議采用三級層次結構,即一個脫機的獨立根 CA、一個脫機的獨立從屬策略 CA 和一個聯(lián)機從屬頒發(fā)企業(yè) CA。

脫機根 CA?。 在設計 CA 的層次結構時,根 CA 的安全級別應設為最高。根 CA 應以脫機狀態(tài)保存在安全的位置,并且用它只簽署少量證書。可能的話,應該將 CA 和密鑰保存在專門的保管庫中,并且至少同時有兩位操作員進入該保管庫,一位執(zhí)行規(guī)定的操作,另一位審核其操作。(在 Windows 2000 網(wǎng)絡中,設計了獨立的 CA,以便它們脫機運行。)

脫機中級 CA?。 在一個根 CA 下面可以有一個或多個從屬 CA。將中級從屬 CA 設為脫機的機器,可以提高該 CA 的安全性。

聯(lián)機頒發(fā) CA?。 CA 鏈中最后一級的 CA 必須處于聯(lián)機狀態(tài),因此可用于受理來自眾多客戶機的證書申請。根 CA 下面的聯(lián)機 CA 也可以經(jīng)常發(fā)布最新的吊銷狀態(tài)信息。管理員可以頻繁地更改這種 CA 的密鑰,因為頒發(fā)新證書的開銷(管理方面的開銷)是最低的。從屬 CA 并不完全是可任意使用的,但通過攻擊從屬 CA 并不能得到多少有價值的東西,而且高級 CA 通過吊銷證書即可輕而易舉地阻擋這種攻擊。

注冊

注冊 就是主體向 CA 自我介紹的過程。在申請證書時,注冊可以是隱含的,或通過為主體提供擔保的另一個可信實體(如智能卡登記站)來完成,或者在收到來源可信(如來自域管理員)的信息時自動完成。一旦向 CA 進行了注冊,只要符合按照 CA 策略建立的標準,證書即被頒發(fā)給該主體。

證書登記

證書登記 就是最終實體進行證書申請并從 CA 接收證書的過程。證書申請就是向 CA 提供身份信息,該信息隨后將成為所頒發(fā)證書的一部分。CA 根據(jù)一套標準受理申請,該標準可能要求進行脫機的、非自動的身份驗證(圈外的身份驗證)。如果申請被成功受理,CA 隨后將向該用戶頒發(fā)證書。

Windows 2000 PKI 支持向 Microsoft 企業(yè) CA 和 Microsoft 獨立 CA 或第三方 CA(如 GeoTrust)進行證書登記。Windows 2000 證書登記支持是以一種獨立于傳輸?shù)姆绞綄崿F(xiàn)的,并以使用工業(yè)標準公鑰加密標準 PKCS-10 的證書申請郵件和包含產(chǎn)生的證書或證書鏈的 PKCS-7 響應為基礎。(Windows 使用 PKCS-7 中包含的 PKCS-10 進行更新。這使 Windows 可以用現(xiàn)有的證書對申請進行數(shù)字簽名。)目前,Windows 2000 對支持 RSA 和 DSA 密鑰與簽名的證書提供支持。(有關 PKCS 的詳細信息,請參見“Windows 2000 證書服務”白皮書。)

通過注冊機構進行證書登記

一種特殊的證書登記可通過注冊機構 (Registration Authority, RA) 來完成,RA 可為 CA 提供擔保,以便將公鑰與預期的證書持有人的身份及屬性綁定在一起。RA 是擁有特殊證書的主體。這種特殊的證書包含有可以向 CA 表明主體身份的信息。通常,RA 在公鑰和主體之間建立綁定,然后在主體生成的申請上簽名,以便向 CA 提供該 RA 即將為綁定擔保的證據(jù)。本質上,使用 RA 是管理委派的一種形式-CA 委派 RA 執(zhí)行驗證公鑰和實體之間綁定的任務。

RA 生成在主體和公鑰之間建立的牢固綁定的證書。在 Windows 2000 操作系統(tǒng)中,證書服務使用域身份驗證來識別申請大多數(shù)類型證書的用戶身份。創(chuàng)建智能卡登錄證書的 Windows 2000 智能卡登記站由 RA 使用。RA 可驗證智能卡收件人的身份,同時提供比域身份驗證單獨完成的主體與公鑰之間的綁定更加牢固的綁定。

證書吊銷

證書具有一個指定的壽命,但 CA 可通過稱為證書吊銷的過程來縮短這一壽命。CA 發(fā)布一個證書吊銷列表 (CRL),列出被認為不能再使用的證書的序列號。CRL 指定的壽命通常比證書指定的壽命短得多。CA 也可以在 CRL 中加入證書被吊銷的理由。它還可以加入被認為這種狀態(tài)改變所適用的起始日期。

可將下列情況指定為吊銷證書的理由:

泄露密鑰;

泄露 CA;

從屬關系改變;

被取代;

業(yè)務終止;

證書持有(這是唯一讓您能夠改變被吊銷證書狀態(tài)的理由碼,在證書狀態(tài)有問題的情況下非常有用)。

由 CA 吊銷證書意味著,CA 在證書正常到期之前撤銷其允許使用該密鑰對的有關聲明。在吊銷的證書到期之后,CRL 中的有關條目被刪除,以縮短 CRL 列表的大小。

在驗證簽名期間,應用程序可以檢查 CRL,以確定給定證書和密鑰對是否仍然可信(有些應用程序使用 CryptoAPI 中的 Microsoft 證書鏈驗證 API 來完成此任務)。如果不可信,應用程序可以判斷吊銷的理由或日期對使用有疑問證書是否有影響。如果該證書被用來驗證簽名,且簽名的日期早于 CA 吊銷該證書的日期,那么該簽名仍被認為是有效的。

應用程序獲得 CRL 之后,由客戶機緩存 CRL ,在它到期之前客戶機將一直使用它。如果 CA 發(fā)布了新的 CRL,擁有有效 CRL 的應用程序并 不 使用新的 CRL,直到應用程序擁有的 CRL 到期為止。

證書鏈確認

Microsoft CryptoAPI 提供了一個標準的框架,應用程序可用此框架來獲得加密服務和數(shù)字證書服務。除了 CryptoAPI 為 Windows 95、Windows 98、Windows NT 和 Windows 2000 提供的標準服務以外,第三方供應商可開發(fā)并銷售他們自己的插件模塊,提供附加的加密服務。

在 Windows 網(wǎng)絡中,為新證書生成一個請求時,該請求中的信息首先被從請求程序傳遞給 CryptoAPI。然后,CryptoAPI 把相應的數(shù)據(jù)傳遞給一個稱為加密服務提供程序 (CSP) 的程序,該程序安裝在您的計算機上,或安裝在您的計算機可以訪問的某種設備(如智能卡)上。CSP 是一個執(zhí)行諸如機密密鑰交換、數(shù)據(jù)的數(shù)字簽名以及公鑰身份驗證之類的加密操作的獨立軟件模塊。任何 Windows 2000 服務或應用程序都可以向 CSP 請求加密操作。

Windows 2000 的證書鏈創(chuàng)建機制試圖建立一個證書路徑(證書鏈),下起最終實體證書(如用戶證書),上至 CA 根證書:

證書鏈機制搜索證書(如果有的話)中的頒發(fā)機構密鑰標識符 (AKI) 字段,以便在某個系統(tǒng)證書存儲器中找到父(頒發(fā)者)證書。如果 AKI 中包含 Issuer 和 SerialNumber 字段的值,證書鏈機制將在系統(tǒng)證書存儲器中查找特定的父證書;否則,它將使用密鑰標識符的值來查找匹配的父證書。如果證書中沒有 Issuer、Serial Number 和 Key Identifier 字段的值,那么證書鏈機制將使用 IssuerName 字段來查找匹配的父證書。

如果證書鏈機制根據(jù)上述字段未在系統(tǒng)存儲器中找到匹配的父證書,它將搜索證書中的頒發(fā)機構信息訪問 (Authority Information Access, AIA) 字段。它使用該字段中的信息(如果有的話)從指定位置 (如超文本傳輸協(xié)議 (HTTP) 6 http://www.microsoft.com .位置或輕型目錄訪問協(xié)議 (LDAP) 7 位置)檢索父證書。

這一過程將針對用戶最終實體證書的每一個父證書重復進行,直到在本地的可信根存儲器中找到一個自簽名證書為止。自簽名證書是這樣一種證書:它的主體名稱和頒發(fā)者名稱相同,它的公鑰可用來驗證與該證書相關的簽名。

小結

加密通過提供數(shù)據(jù)加密和其他用戶的身份驗證的功能來達到保護用戶之目的。這種技術允許電子郵件的收件人驗證發(fā)件人,確保只有預期的收件人能夠閱讀郵件,并向收件人保證郵件在傳輸過程中沒有被改變。本白皮書介紹了對稱密鑰加密、公鑰加密、散列算法、數(shù)字簽名和密鑰交換的加密概念。

公鑰基本結構 (PKI) 包含用于管理證書、公鑰和私鑰的技術和標準,以驗證電子交易所涉及的各方身份。本白皮書解釋了證書、證書頒發(fā)機構、不可更改的 CA 層次結構、注冊、證書登記、證書吊銷和證書鏈驗證的 PKI 概念。

理解加密和 PKI 將有助于您理解 Windows 2000 Server 操作系統(tǒng)提供的證書服務功能如何在一個安全的環(huán)境中進行電子商務。

其它信息

加密服務提供程序(CSP)是一個獨立的軟件模塊,用于執(zhí)行各種加密操作,如機密密鑰交換、數(shù)據(jù)的數(shù)字簽名以及公鑰身份驗證。

Microsoft Enhanced Cryptographic Provider 除了具有與 Microsoft Base Cryptographic Provider 相同的功能以外,還通過支持更長的密鑰長度與附加的加密算法,提供更可靠的安全性。由于放寬了導出限制,這個版本的 CSP 不再像以前的版本那樣重要。

數(shù)字簽名安全標準 (Digital Signature Security Standard, DSS) 是一個把 DSA 用于簽名算法、SHA-1 用作郵件散列算法的標準。

Microsoft 為 Windows 95、Windows 98、Windows NT 和 Windows 2000 提供了一個特殊的名為 CryptoAPI (有時也稱為 CAPI) 的加密應用程序編程接口 (API)。CryptoAPI 提供了一個標準的框架,應用程序可通過它來獲得加密和數(shù)字簽名服務。

不要將這些一般類型的 CA 與 Windows 2000 證書服務專用的企業(yè) CA 和獨立 CA 相混淆。安裝 Windows 2000 證書服務時,請在兩種不同的 CA 策略中選擇一種,不同的 CA 策略在處理證書時具有不同的特性。這兩種 CA 策略叫做 企業(yè)策略 和 獨立策略 :使用企業(yè)策略的 CA 被稱為企業(yè) CA,而是用獨立策略的 CA 叫做獨立 CA。企業(yè)策略和獨立策略在如何處理與 Active Directory 的交互、如何處理身份驗證以及是否使用 Windows 2000 提供的證書模板等方面是不同的。無論是 Windows 2000 企業(yè) CA,還是 Windows 2000 獨立 CA,都可以是自簽名 CA(即同時也是根 CA),也可以是從屬 CA。

HTTP 是用于在萬維網(wǎng) (World Wide Web) 上傳輸信息的協(xié)議。HTTP 地址采用下列格式:

作為直接在 TCP/IP 上運行的一個目錄服務協(xié)議,LDAP 是用于添加、修改和刪除存儲在 Active Directory 中的信息的主要目錄訪問協(xié)議,也是用于查詢和檢索 Active Directory 中的數(shù)據(jù)的主要目錄訪問協(xié)議。Active Directory 客戶端必須用 LDAP 獲取 Active Directory 中的信息或維護 Active Directory 中的信息。Active Directory 使用 LDAP 來實現(xiàn)與其它 LDAP 兼容的客戶端應用程序的互操作性。如果有相應的權限,您可使用任何與 LDAP 兼容的客戶端應用程序,瀏覽、查詢、添加、修改或刪除 Active Directory 中的信息。


轉:https://blog.csdn.net/mystudyblog0507/article/details/79710648

?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • 本文摘自 騰訊bugly 的文章《全站 HTTPS 來了》,內(nèi)容有修改。 大家在使用百度、谷歌或淘寶的時候,是否注...
    bnotes閱讀 3,881評論 1 9
  • 多年前的那個夏日 陽光 在平靜中破開了山腳的石頭 我遠遠的看著它 那么多繁雜的如蟬鳴的歲月 我在心里默念 我斷然不...
    覔芳齋閱讀 256評論 4 3
  • 我是不小心打擾你世界的過客 美麗的野草 你淹沒在世間的塵土中 固守著你的靈魂 塵土堆壘的圍墻守衛(wèi)著你 一個小小的微...
    tank藍調閱讀 450評論 1 4
  • 失眠的人啊 你在想什么 失落的時候抱住那片屬于自己的夜 不要讓別人看到你那裸露的軟弱 今夜我不是強者 我有酒 但誰...
    子歡閱讀 331評論 1 5
  • 前邊我們談過在走進大學前要學會忘記,是讓你站在新的起跑線上時,無論是精神狀態(tài)還是學習方法,都能有脫胎換骨的變化,更...
    易州貢米閱讀 332評論 0 2

友情鏈接更多精彩內(nèi)容