一、加密概念 加密是通過Intranet、Extranet和Internet進(jìn)行安全的信息交換的基礎(chǔ)。從業(yè)務(wù)的角度來看,通過加密實(shí)現(xiàn)的安全功能包括:身份驗(yàn)證,使收件人確信發(fā)件人就是他或她所聲明的那個(gè)人;機(jī)密性,確保只有預(yù)期的收件人能夠閱讀郵件;以及完整性,確保郵件在傳輸過程中沒有被更改。從技術(shù)的角度來看,加密是利用數(shù)學(xué)方法將郵件轉(zhuǎn)換為不可讀格式從而達(dá)到保護(hù)數(shù)據(jù)的目的的一門科學(xué)。 本文將介紹下列加密概念: 對稱密鑰加密:一個(gè)密鑰 公鑰加密:兩個(gè)密鑰 單向散列算法 數(shù)字簽名:結(jié)合使用公鑰與散列 密鑰交換:結(jié)合使用對稱密鑰與公鑰 1. 對稱密鑰加密:一個(gè)密鑰 對稱密鑰加密,也叫做共享密鑰加密或機(jī)密密鑰加密,使用發(fā)件人和收件人共同擁有的單個(gè)密鑰。這種密鑰既用于加密,也用于解密,叫做機(jī)密密鑰(也稱為對稱密鑰或會(huì)話密鑰)。對稱密鑰加密是加密大量數(shù)據(jù)的一種行之有效的方法。 對稱密鑰加密有許多種算法,但所有這些算法都有一個(gè)共同的目的---可以還原的方式將明文(未加密的數(shù)據(jù))轉(zhuǎn)換為暗文。暗文使用加密密鑰編碼,對于沒有解密密鑰的任何人來說它都是沒有意義的。由于對稱密鑰加密在加密和解密時(shí)使用相同的密鑰,所以這種加密過程的安全性取決于是否有未經(jīng)授權(quán)的人獲得了對稱密鑰。這就是它為什么也叫做機(jī)密密鑰加密的原因。希望使用對稱密鑰加密通信的雙方,在交換加密數(shù)據(jù)之前必須先安全地交換密鑰。 衡量對稱算法優(yōu)劣的主要尺度是其密鑰的長度。密鑰越長,在找到解密數(shù)據(jù)所需的正確密鑰之前必須測試的密鑰數(shù)量就越多。需要測試的密鑰越多,破解這種算法就越困難。有了好的加密算法和足夠長的密鑰,如果有人想在一段實(shí)際可行的時(shí)間內(nèi)逆轉(zhuǎn)轉(zhuǎn)換過程,并從暗文中推導(dǎo)出明文,從計(jì)算的角度來講,這種做法是行不通的。 2. 公鑰加密:兩個(gè)密鑰 公鑰加密使用兩個(gè)密鑰:一個(gè)公鑰 和一個(gè)私鑰,這兩個(gè)密鑰在數(shù)學(xué)上是相關(guān)的。為了與對稱密鑰加密相對照,公鑰加密有時(shí)也叫做不對稱密鑰加密。在公鑰加密中,公鑰可在通信雙方之間公開傳遞,或在公用儲(chǔ)備庫中發(fā)布,但相關(guān)的私鑰是保密的。只有使用私鑰才能解密用公鑰加密的數(shù)據(jù)。使用私鑰加密的數(shù)據(jù)只能用公鑰解密。與對稱密鑰加密相似,公鑰加密也有許多種算法。然而,對稱密鑰和公鑰算法在設(shè)計(jì)上并無相似之處。您可以在程序內(nèi)部使用一種對稱算法替換另一種,而變化卻不大,因?yàn)樗鼈兊墓ぷ鞣绞绞窍嗤?。而另一方面,不同公鑰算法的工作方式卻完全不同,因此它們不可互換。公鑰算法是復(fù)雜的數(shù)學(xué)方程式,使用十分大的數(shù)字。公鑰算法的主要局限在于,這種加密形式的速度相對較低。實(shí)際上,通常僅在關(guān)鍵時(shí)刻才使用公鑰算法,如在實(shí)體之間交換對稱密鑰時(shí),或者在簽署一封郵件的散列時(shí)(散列是通過應(yīng)用一種單向數(shù)學(xué)函數(shù)獲得的一個(gè)定長結(jié)果,對于數(shù)據(jù)而言,叫做散列算法)。將公鑰加密與其它加密形式(如對稱密鑰加密)結(jié)合使用,可以優(yōu)化性能。公鑰加密提供了一種有效的方法,可用來把為大量數(shù)據(jù)執(zhí)行對稱加密時(shí)使用的機(jī)密密鑰發(fā)送給某人。也可以將公鑰加密與散列算法結(jié)合使用以生成數(shù)字簽名。 數(shù)字簽名是郵件、文件或其它數(shù)字編碼信息的發(fā)件人將他們的身份與信息綁定在一起(即為信息提供簽名)的方法。對信息進(jìn)行數(shù)字簽名的過程,需要將信息與由發(fā)件人掌握的秘密信息一起轉(zhuǎn)換為叫做簽名的標(biāo)記。數(shù)字簽名用于公鑰環(huán)境中,它通過驗(yàn)證發(fā)件人確實(shí)是他或她所聲明的那個(gè)人,并確認(rèn)收到的郵件與發(fā)送的郵件完全相同,來幫助確保電子商務(wù)交易的安全。通常,數(shù)字簽名用于以明文(如電子郵件)分發(fā)數(shù)據(jù)的情形。在這種情況下,當(dāng)郵件本身的敏感性可能無法保證加密的安全性時(shí),確保數(shù)據(jù)處于其原始格式且并非由假冒者發(fā)送,是非常重要的。 下面是三種最常用的公鑰算法: RSA-適用于數(shù)字簽名和密鑰交換。Rivest-Shamir-Adleman (RSA) 加密算法是目前應(yīng)用最廣泛的公鑰加密算法,特別適用于通過 Internet 傳送的數(shù)據(jù)。這種算法以它的三位發(fā)明者的名字命名:Ron Rivest、Adi Shamir 和 Leonard Adleman。RSA 算法的安全性基于分解大數(shù)字時(shí)的困難(就計(jì)算機(jī)處理能力和處理時(shí)間而言)。在常用的公鑰算法中,RSA 與眾不同,它能夠進(jìn)行數(shù)字簽名和密鑰交換運(yùn)算。 DSA-僅適用于數(shù)字簽名。數(shù)字簽名算法 (Digital Signature Algorithm, DSA) 由美國國家安全署 (United States National Security Agency, NSA) 發(fā)明,已經(jīng)由美國國家標(biāo)準(zhǔn)與技術(shù)協(xié)會(huì) (National Institute of Standards and Technology, NIST) 收錄到聯(lián)邦信息處理標(biāo)準(zhǔn) (Federal Information Processing Standard, FIPS) 之中,作為數(shù)字簽名的標(biāo)準(zhǔn)。DSA 算法的安全性源自計(jì)算離散算法的困難。這種算法僅用于數(shù)字簽名運(yùn)算(不適用于數(shù)據(jù)加密)。 Diffie-Hellman-僅適用于密鑰交換。 Diffie-Hellman 是發(fā)明的第一個(gè)公鑰算法,以其發(fā)明者 Whitfield Diffie 和 Martin Hellman 的名字命名。Diffie-Hellman 算法的安全性源自在一個(gè)有限字段中計(jì)算離散算法的困難。Diffie-Hellman 算法僅用于密鑰交換。 3. 單向散列算法 散列-也稱為散列值 或消息摘要,是一種與基于密鑰(對稱密鑰或公鑰)的加密不同的數(shù)據(jù)轉(zhuǎn)換類型。散列就是通過把一個(gè)叫做散列算法的單向數(shù)學(xué)函數(shù)應(yīng)用于數(shù)據(jù),將任意長度的一塊數(shù)據(jù)轉(zhuǎn)換為一個(gè)定長的、不可逆轉(zhuǎn)的數(shù)字。所產(chǎn)生的散列值的長度應(yīng)足夠長,因此使找到兩塊具有相同散列值的數(shù)據(jù)的機(jī)會(huì)很少。發(fā)件人生成郵件的散列值并加密它,然后將它與郵件本身一起發(fā)送。而收件人同時(shí)解密郵件和散列值,并由接收到的郵件產(chǎn)生另外一個(gè)散列值,然后將兩個(gè)散列值進(jìn)行比較。如果兩者相同,郵件極有可能在傳輸期間沒有發(fā)生任何改變。 下面是兩個(gè)最常用的散列函數(shù): MD5。 MD5 是由 Ron Rivest 設(shè)計(jì)的可產(chǎn)生一個(gè) 128 位的散列值的散列算法。MD5設(shè)計(jì)經(jīng)過優(yōu)化以用于Intel處理器。這種算法的基本原理已經(jīng)泄露,這就是為什么它不太受歡迎的原因。 SHA-1。與 DSA 公鑰算法相似,安全散列算法1(SHA-1)也是由NSA設(shè)計(jì)的,并由NIST將其收錄到 FIPS 中,作為散列數(shù)據(jù)的標(biāo)準(zhǔn)。它可產(chǎn)生一個(gè) 160 位的散列值。SHA-1是流行的用于創(chuàng)建數(shù)字簽名的單向散列算法。 4. 數(shù)字簽名:結(jié)合使用公鑰與散列算法 可以結(jié)合使用公鑰技術(shù)與散列算法來創(chuàng)建數(shù)字簽名。數(shù)字簽名可用作數(shù)據(jù)完整性檢查并提供擁有私鑰的憑據(jù)。簽署和驗(yàn)證數(shù)據(jù)(由啟用PKI的應(yīng)用程序如Microsoft Outlook完成)的步驟如下: 發(fā)件人將一種散列算法應(yīng)用于數(shù)據(jù),并生成一個(gè)散列值。 發(fā)件人使用私鑰將散列值轉(zhuǎn)換為數(shù)字簽名。 然后,發(fā)件人將數(shù)據(jù)、簽名及發(fā)件人的證書發(fā)給收件人。 收件人將該散列算法應(yīng)用于接收到的數(shù)據(jù),并生成一個(gè)散列值。 收件人使用發(fā)件人的公鑰和新生成的散列值驗(yàn)證簽名。 對用戶而言這一過程是透明的。 散列算法處理數(shù)據(jù)的速度比公鑰算法快得多。散列數(shù)據(jù)還縮短了要簽名的數(shù)據(jù)的長度,因而加快了簽名過程。當(dāng)創(chuàng)建或驗(yàn)證簽名時(shí),公鑰算法必須且只需轉(zhuǎn)換散列值(128或160位的數(shù)據(jù))。創(chuàng)建簽名和驗(yàn)證簽名的詳細(xì)步驟取決于所采用的公鑰算法。 5. 密鑰交換:結(jié)合使用對稱密鑰與公鑰 對稱密鑰算法非常適合于快速并安全地加密數(shù)據(jù)。但其缺點(diǎn)是,發(fā)件人和收件人必須在交換數(shù)據(jù)之前先交換機(jī)密密鑰。結(jié)合使用加密數(shù)據(jù)的對稱密鑰算法與交換機(jī)密密鑰的公鑰算法可產(chǎn)生一種既快速又靈活的解決方案。 基于公鑰的密鑰交換步驟如下: 發(fā)件人獲得收件人的公鑰。 發(fā)件人創(chuàng)建一個(gè)隨機(jī)機(jī)密密鑰(在對稱密鑰加密中使用的單個(gè)密鑰)。 發(fā)件人使用機(jī)密密鑰和對稱密鑰算法將明文數(shù)據(jù)轉(zhuǎn)換為暗文數(shù)據(jù)。 發(fā)件人使用收件人的公鑰將機(jī)密密鑰轉(zhuǎn)換為暗文機(jī)密密鑰。 發(fā)件人將暗文數(shù)據(jù)和暗文機(jī)密密鑰一起發(fā)給收件人。 收件人使用其私鑰將暗文機(jī)密密鑰轉(zhuǎn)換為明文。 收件人使用明文機(jī)密密鑰將暗文數(shù)據(jù)轉(zhuǎn)換為明文數(shù)據(jù)。 同樣,這些步驟是由啟用PKI的應(yīng)用程序(如Microsoft Outlook)來完成的,并且對用戶來說是透明的。 二、公鑰基本結(jié)構(gòu)的概念 術(shù)語公鑰基本結(jié)構(gòu)(PKI)用于描述管制或操縱證書與公鑰及私鑰的策略、標(biāo)準(zhǔn)和軟件。實(shí)際上,PKI 是指由數(shù)字證書、證書頒發(fā)機(jī)構(gòu)(CA) 以及對電子交易所涉及各方的合法性進(jìn)行檢查和驗(yàn)證的其它注冊機(jī)構(gòu)組成的一套系統(tǒng)。PKI的有關(guān)標(biāo)準(zhǔn)仍處于不斷發(fā)展之中,即使這些標(biāo)準(zhǔn)已被作為電子商務(wù)的要素而廣泛實(shí)施。 PKI一般包括: 證書 證書頒發(fā)機(jī)構(gòu) (CA) 不可更改的CA層次結(jié)構(gòu) 注冊 證書登記 證書吊銷 證書鏈驗(yàn)證 1. 證書 公鑰證書,通常簡稱為證書,用于在 Internet、Extranet 和 Intranet 上進(jìn)行身份驗(yàn)證并確保數(shù)據(jù)交換的安全。證書的頒發(fā)者和簽署者就是眾所周知的證書頒發(fā)機(jī)構(gòu) (CA)。頒發(fā)證書的實(shí)體是證書的主體。公鑰證書是以數(shù)字方式簽名的聲明,它將公鑰的值與持有相應(yīng)私鑰的主體(個(gè)人、設(shè)備和服務(wù))的身份綁定在一起。通過在證書上簽名,CA 可以核實(shí)與證書上公鑰相應(yīng)的私鑰為證書所指定的主體所擁有??梢詾楦鞣N目的頒發(fā)證書,如 Web 用戶身份驗(yàn)證、Web 服務(wù)器身份驗(yàn)證、使用安全/多用途 Internet 郵件擴(kuò)充協(xié)議 (Secure/Multipurpose Internet Mail Extensions, S/MIME) 的安全電子郵件、IP 安全性 (IP Security)、安全套接字協(xié)議層/事務(wù)層安全性 (Secure Sockets Layer/Transaction Layer Security, SSL/TLS) 和代碼簽名。如果在一個(gè)組織內(nèi)部使用 Windows 2000 企業(yè)證書頒發(fā)機(jī)構(gòu),證書可用于登錄到 Windows 2000 域。證書還可以由一個(gè) CA 頒發(fā)給另一個(gè) CA,以建立證書層次結(jié)構(gòu)。 可以通過多個(gè)名稱來識(shí)別主體,如用戶主要名稱(用于最終用戶證書)、目錄名、電子郵件名稱和 DNS 域名等。證書還應(yīng)包含下列信息: 證書的有效期。 證書的序列號(hào),CA 應(yīng)保證該序列號(hào)是唯一的。 CA 的名稱以及用于簽署該證書的密鑰。 CA 所遵循的用來確定證書主體身份的策略的標(biāo)識(shí)符(稍后將詳細(xì)介紹 CA 策略)。 在證書中標(biāo)識(shí)的密鑰對(公鑰及相關(guān)的私鑰)的用法。 證書吊銷列表 (CRL) 的位置,這是一個(gè)由 CA 維護(hù)并發(fā)布的列出已被吊銷的證書的文檔。為確保其完整性,CRL 是用 CA 的私鑰簽署的。 證書提供了一個(gè)在公鑰和擁有相應(yīng)私鑰的實(shí)體之間建立關(guān)系的機(jī)制。目前最常用的證書格式通過 ITU-T X.509 版本 3 (X.509v3) 國際標(biāo)準(zhǔn)定義。RFC 2459 是X.509v3 的一個(gè)配置文件,進(jìn)一步闡明了 X.509v3 中定義的字段。Windows 2000 PKI 采用 X.509v3 標(biāo)準(zhǔn)。Windows 證書是按照 RFC 2459 中的說明編程的,但仍然叫做 X.509v3 證書。 ITU-T X.509 并非證書的唯一格式。例如,Pretty Good Privacy (PGP) 安全電子郵件依賴 PGP 所獨(dú)有的一種證書。 2. 證書頒發(fā)機(jī)構(gòu) 證書頒發(fā)機(jī)構(gòu) (CA) 是一個(gè)向個(gè)人、計(jì)算機(jī)或任何其它申請實(shí)體頒發(fā)證書的可信實(shí)體。CA 受理證書申請,根據(jù)該 CA 的策略驗(yàn)證申請人的信息,然后使用它的私鑰把其數(shù)字簽名應(yīng)用于證書。然后,CA 將該證書頒發(fā)給該證書的主體,作為 PKI 內(nèi)部的安全憑據(jù)。由于不同的 CA 使用不同的方法驗(yàn)證公鑰與主體之間的綁定,在選擇信任該頒發(fā)機(jī)構(gòu)之前,理解該 CA 的策略是非常重要的。 CA 可以是遠(yuǎn)程的第三方機(jī)構(gòu),如 VeriSign。作為選擇,也可以是您創(chuàng)建的供您所在組織使用的 CA,例如,通過安裝 Windows 2000 證書服務(wù)即可創(chuàng)建一個(gè) CA。每個(gè) CA 對證書申請人可能有完全不同的身份憑據(jù)要求,如 Windows 2000 域帳戶、職員標(biāo)記、駕駛執(zhí)照、公證請求或?qū)嶋H住址。 CA 根據(jù)也已確立的一套標(biāo)準(zhǔn)向申請人頒發(fā)證書。CA 在受理證書請求(以及頒發(fā)證書、吊銷證書和發(fā)布 CRL)時(shí)所采用的一套標(biāo)準(zhǔn)被稱為 CA 策略。通常,CA 以一種叫做證書慣例聲明 (Certification Practice Statement, CPS) 的文檔發(fā)布其策略。 CA 的類型包括以下三種: 自簽名 CA。在自簽名 CA 中,證書中的公鑰和用于驗(yàn)證證書的密鑰是相同的。一些自簽名 CA 是根 CA 。 從屬 CA。在從屬 CA 中,證書中的公鑰和用于核實(shí)證書的密鑰是不同的。一個(gè) CA 向另一個(gè) CA 頒發(fā)證書的過程叫做交叉認(rèn)證。 根 CA。根 CA 是一種特殊的 CA,它受到客戶無條件地信任,位于證書層次結(jié)構(gòu)的最高層。所有證書鏈均終止于根 CA。根頒發(fā)機(jī)構(gòu)必須對它自己的證書簽名,因?yàn)樵谧C書層次結(jié)構(gòu)中再也沒有更高的認(rèn)證機(jī)構(gòu)了。 所有自簽名 CA 都是根 CA,因?yàn)榈阶院灻?CA 時(shí)證書鏈就終止了。 3. 不可更改的 CA 層次結(jié)構(gòu) 管理員可以創(chuàng)建 CA 的層次結(jié)構(gòu),從根 CA 證書開始,然后添加中級(jí) CA,每一個(gè) CA 都可以為其從屬 CA 頒發(fā)證書。當(dāng) CA 向最終實(shí)體(用戶)頒發(fā)證書時(shí),證書鏈就終止了。 根 CA 證書的分發(fā)費(fèi)用最高,因?yàn)槿绻_始改變根證書,就必須重建整個(gè)PKI。如果根證書改變了,就必須吊銷組織內(nèi)所有客戶端的舊的根證書,并添加新的根證書。另外,必須重新頒發(fā)由根 CA 頒發(fā)的、再由從屬 CA 頒發(fā)給最終實(shí)體的所有證書。因此,在部署 CA 層次結(jié)構(gòu)時(shí),使用少量的長壽命根CA可提供最經(jīng)濟(jì)的解決方案。根CA非常重要-因?yàn)樗鼈儽粺o條件地信任,因?yàn)樗鼈兪亲C書鏈的頂點(diǎn)-因此,在分發(fā)證書時(shí)要有一個(gè)圈外的身份驗(yàn)證。也就是說,由于根 CA 是自簽名的,所以必須有人來證明根證書是真品。 因?yàn)樽罱K實(shí)體要比 CA 多得多,所以向最終實(shí)體頒發(fā)證書的 CA 使用私鑰在大量的數(shù)據(jù)上簽名。用來對數(shù)據(jù)簽名的密鑰使用得越頻繁,加密數(shù)據(jù)受到攻擊的可能性就越大。因此,為了保持安全,向最終實(shí)體頒發(fā)證書的聯(lián)機(jī) CA 必須經(jīng)常更換其簽名密鑰。 向最終實(shí)體頒發(fā)證書的 CA 具有的吊銷證書列表,要比中級(jí)或根 CA 的列表大得多(這些 CA 僅向其它 CA,更多的是從屬 CA 頒發(fā)證書)。其部分原因是因?yàn)樽罱K實(shí)體要比 CA 證書多得多。另外,有許多理由可以解釋為什么必須吊銷最終實(shí)體的證書,如職員改變了工作或離開了公司。 CA 發(fā)布吊銷證書列表(CRL),其中列出了不應(yīng)再使用的證書。被吊銷證書的有關(guān)條目將一直保留在 CRL 列表中,直至證書的有效期 結(jié)束之后,CA 才可將該證書從列表中刪除。CRL 中的條目越多,CRL 就越大,其下載時(shí)間就越長。通常,只有使用較慢的網(wǎng)絡(luò)鏈路(如撥號(hào)連接)的用戶才會(huì)遇到下載時(shí)間問題。CA 還可以管理 CRL 列表的大小。一種方法是維護(hù)多個(gè)列表,稱為分區(qū) CRL。另一種方法是,縮短已頒發(fā)證書的有效期,從而加快 CA 從列表中刪除吊銷證書的速度。 許多應(yīng)用程序必須能夠查明證書最近的吊銷狀態(tài)信息。只有一個(gè)聯(lián)機(jī) CA 能夠發(fā)布有關(guān)證書狀態(tài)的當(dāng)前信息。由脫機(jī)CA公布的吊銷狀態(tài),必須使用圈外的方法發(fā)布到聯(lián)機(jī)位置。 大多數(shù)容易受到攻擊的 CA 都是處于聯(lián)機(jī)狀態(tài)的、物理安全措施較差并簽署了大量證書的 CA。因此,建立根 CA和從屬CA時(shí),應(yīng)該平衡一下安全性和可用性。通常,建議采用三級(jí)層次結(jié)構(gòu),即一個(gè)脫機(jī)的獨(dú)立根 CA、一個(gè)脫機(jī)的獨(dú)立從屬策略 CA 和一個(gè)聯(lián)機(jī)從屬頒發(fā)企業(yè) CA。 脫機(jī)根CA。 在設(shè)計(jì) CA 的層次結(jié)構(gòu)時(shí),根CA的安全級(jí)別應(yīng)設(shè)為最高。根CA應(yīng)以脫機(jī)狀態(tài)保存在安全的位置,并且用它只簽署少量證書??赡艿脑?,應(yīng)該將CA和密鑰保存在專門的保管庫中,并且至少同時(shí)有兩位操作員進(jìn)入該保管庫,一位執(zhí)行規(guī)定的操作,另一位審核其操作。(在Windows 2000 網(wǎng)絡(luò)中,設(shè)計(jì)了獨(dú)立的 CA,以便它們脫機(jī)運(yùn)行。) 脫機(jī)中級(jí)CA。在一個(gè)根CA下面可以有一個(gè)或多個(gè)從屬CA。將中級(jí)從屬CA設(shè)為脫機(jī)的機(jī)器,可以提高該 CA 的安全性。 聯(lián)機(jī)頒發(fā)CA。 CA 鏈中最后一級(jí)的 CA 必須處于聯(lián)機(jī)狀態(tài),因此可用于受理來自眾多客戶機(jī)的證書申請。根 CA下面的聯(lián)機(jī) CA 也可以經(jīng)常發(fā)布最新的吊銷狀態(tài)信息。管理員可以頻繁地更改這種 CA 的密鑰,因?yàn)轭C發(fā)新證書的開銷(管理方面的開銷)是最低的。從屬 CA 并不完全是可任意使用的,但通過攻擊從屬 CA 并不能得到多少有價(jià)值的東西,而且高級(jí) CA 通過吊銷證書即可輕而易舉地阻擋這種攻擊。 4. 注冊 注冊就是主體向 CA 自我介紹的過程。在申請證書時(shí),注冊可以是隱含的,或通過為主體提供擔(dān)保的另一個(gè)可信實(shí)體(如智能卡登記站)來完成,或者在收到來源可信(如來自域管理員)的信息時(shí)自動(dòng)完成。一旦向 CA 進(jìn)行了注冊,只要符合按照 CA 策略建立的標(biāo)準(zhǔn),證書即被頒發(fā)給該主體。 5. 證書登記 證書登記就是最終實(shí)體進(jìn)行證書申請并從 CA 接收證書的過程。證書申請就是向 CA 提供身份信息,該信息隨后將成為所頒發(fā)證書的一部分。CA 根據(jù)一套標(biāo)準(zhǔn)受理申請,該標(biāo)準(zhǔn)可能要求進(jìn)行脫機(jī)的、非自動(dòng)的身份驗(yàn)證(圈外的身份驗(yàn)證)。如果申請被成功受理,CA 隨后將向該用戶頒發(fā)證書。 一種特殊的證書登記可通過注冊機(jī)構(gòu) (Registration Authority, RA) 來完成,RA 可為 CA 提供擔(dān)保,以便將公鑰與預(yù)期的證書持有人的身份及屬性綁定在一起。RA 是擁有特殊證書的主體。這種特殊的證書包含有可以向CA表明主體身份的信息。通常,RA 在公鑰和主體之間建立綁定,然后在主體生成的申請上簽名,以便向 CA 提供該 RA 即將為綁定擔(dān)保的證據(jù)。本質(zhì)上,使用 RA 是管理委派的一種形式-CA 委派 RA 執(zhí)行驗(yàn)證公鑰和實(shí)體之間綁定的任務(wù)。 RA 生成在主體和公鑰之間建立的牢固綁定的證書。在 Windows 2000 操作系統(tǒng)中,證書服務(wù)使用域身份驗(yàn)證來識(shí)別申請大多數(shù)類型證書的用戶身份。創(chuàng)建智能卡登錄證書的 Windows 2000 智能卡登記站由 RA 使用。RA 可驗(yàn)證智能卡收件人的身份,同時(shí)提供比域身份驗(yàn)證單獨(dú)完成的主體與公鑰之間的綁定更加牢固的綁定。 6. 證書吊銷 證書具有一個(gè)指定的壽命,但 CA 可通過稱為證書吊銷的過程來縮短這一壽命。CA 發(fā)布一個(gè)證書吊銷列表 (CRL),列出被認(rèn)為不能再使用的證書的序列號(hào)。CRL 指定的壽命通常比證書指定的壽命短得多。CA 也可以在 CRL 中加入證書被吊銷的理由。它還可以加入被認(rèn)為這種狀態(tài)改變所適用的起始日期。 可將下列情況指定為吊銷證書的理由: 泄露密鑰 泄露 CA 從屬關(guān)系改變 被取代 業(yè)務(wù)終止 證書持有(這是唯一讓您能夠改變被吊銷證書狀態(tài)的理由碼,在證書狀態(tài)有問題的情況下非常有用) 由 CA吊銷證書意味著,CA 在證書正常到期之前撤銷其允許使用該密鑰對的有關(guān)聲明。在吊銷的證書到期之后,CRL 中的有關(guān)條目被刪除,以縮短 CRL 列表的大小。 在驗(yàn)證簽名期間,應(yīng)用程序可以檢查 CRL,以確定給定證書和密鑰對是否仍然可信。如果不可信,應(yīng)用程序可以判斷吊銷的理由或日期對使用有疑問證書是否有影響。如果該證書被用來驗(yàn)證簽名,且簽名的日期早于 CA 吊銷該證書的日期,那么該簽名仍被認(rèn)為是有效的。 應(yīng)用程序獲得 CRL 之后,由客戶機(jī)緩存 CRL ,在它到期之前客戶機(jī)將一直使用它。如果 CA 發(fā)布了新的 CRL,擁有有效 CRL 的應(yīng)用程序并不使用新的 CRL,直到應(yīng)用程序擁有的 CRL 到期為止。 7. 證書鏈確認(rèn) Microsoft CryptoAPI 提供了一個(gè)標(biāo)準(zhǔn)的框架,應(yīng)用程序可用此框架來獲得加密服務(wù)和數(shù)字證書服務(wù)。除了 CryptoAPI 為 Windows 95、Windows 98、Windows NT 和 Windows 2000 提供的標(biāo)準(zhǔn)服務(wù)以外,第三方供應(yīng)商可開發(fā)并銷售他們自己的插件模塊,提供附加的加密服務(wù)。 在 Windows 網(wǎng)絡(luò)中,為新證書生成一個(gè)請求時(shí),該請求中的信息首先被從請求程序傳遞給 CryptoAPI。然后,CryptoAPI 把相應(yīng)的數(shù)據(jù)傳遞給一個(gè)稱為加密服務(wù)提供程序 (CSP)的程序,該程序安裝在您的計(jì)算機(jī)上,或安裝在您的計(jì)算機(jī)可以訪問的某種設(shè)備(如智能卡)上。CSP 是一個(gè)執(zhí)行諸如機(jī)密密鑰交換、數(shù)據(jù)的數(shù)字簽名以及公鑰身份驗(yàn)證之類的加密操作的獨(dú)立軟件模塊。