一、加密概(gai)念 加(jia)密是通(tong)過Intranet、Extranet和Internet進行安全(quan)的(de)(de)信息(xi)交換的(de)(de)基(ji)礎。從(cong)業務的(de)(de)角度來看,通(tong)過加(jia)密實現的(de)(de)安全(quan)功能(neng)包括(kuo):身份(fen)驗證,使收件(jian)人(ren)確信發件(jian)人(ren)就是他(ta)或(huo)她(ta)所聲明的(de)(de)那(nei)個人(ren);機密性,確保(bao)(bao)只有(you)預期(qi)的(de)(de)收件(jian)人(ren)能(neng)夠(gou)閱(yue)讀(du)郵件(jian);以及完(wan)整性,確保(bao)(bao)郵件(jian)在(zai)傳輸過程中(zhong)沒有(you)被更改(gai)。從(cong)技術的(de)(de)角度來看,加(jia)密是利用數(shu)學方法將郵件(jian)轉(zhuan)換為不(bu)可讀(du)格式從(cong)而達(da)到保(bao)(bao)護數(shu)據的(de)(de)目的(de)(de)的(de)(de)一門科學。 本文將介(jie)紹下列(lie)加密概念: 對稱(cheng)密鑰加密:一(yi)個(ge)密鑰 公(gong)鑰加密:兩(liang)個密鑰 單向(xiang)散列算(suan)法(fa) 數字(zi)簽名(ming):結合使用公鑰與散列 密鑰交換(huan):結合使(shi)用對稱密鑰與公(gong)鑰 1. 對稱(cheng)密(mi)鑰(yao)加密(mi):一(yi)個(ge)密(mi)鑰(yao) 對稱密(mi)(mi)(mi)(mi)(mi)鑰(yao)加密(mi)(mi)(mi)(mi)(mi),也叫(jiao)做共享(xiang)密(mi)(mi)(mi)(mi)(mi)鑰(yao)加密(mi)(mi)(mi)(mi)(mi)或機密(mi)(mi)(mi)(mi)(mi)密(mi)(mi)(mi)(mi)(mi)鑰(yao)加密(mi)(mi)(mi)(mi)(mi),使(shi)用發(fa)件人和(he)收件人共同(tong)擁有的(de)(de)單個(ge)密(mi)(mi)(mi)(mi)(mi)鑰(yao)。這種密(mi)(mi)(mi)(mi)(mi)鑰(yao)既用于(yu)(yu)加密(mi)(mi)(mi)(mi)(mi),也用于(yu)(yu)解(jie)密(mi)(mi)(mi)(mi)(mi),叫(jiao)做機密(mi)(mi)(mi)(mi)(mi)密(mi)(mi)(mi)(mi)(mi)鑰(yao)(也稱為對稱密(mi)(mi)(mi)(mi)(mi)鑰(yao)或會話(hua)密(mi)(mi)(mi)(mi)(mi)鑰(yao))。對稱密(mi)(mi)(mi)(mi)(mi)鑰(yao)加密(mi)(mi)(mi)(mi)(mi)是(shi)加密(mi)(mi)(mi)(mi)(mi)大(da)量(liang)數據(ju)的(de)(de)一種行之有效的(de)(de)方法。 對(dui)稱密(mi)(mi)(mi)鑰(yao)(yao)加(jia)(jia)密(mi)(mi)(mi)有(you)許多種(zhong)算法,但所有(you)這些算法都(dou)有(you)一(yi)個共同的(de)(de)目的(de)(de)---可以(yi)還(huan)原的(de)(de)方(fang)式(shi)將明(ming)文(wen)(未(wei)加(jia)(jia)密(mi)(mi)(mi)的(de)(de)數(shu)據)轉換(huan)為暗文(wen)。暗文(wen)使用(yong)加(jia)(jia)密(mi)(mi)(mi)密(mi)(mi)(mi)鑰(yao)(yao)編碼(ma),對(dui)于沒有(you)解(jie)(jie)密(mi)(mi)(mi)密(mi)(mi)(mi)鑰(yao)(yao)的(de)(de)任(ren)何人來說(shuo)它(ta)都(dou)是(shi)沒有(you)意義的(de)(de)。由于對(dui)稱密(mi)(mi)(mi)鑰(yao)(yao)加(jia)(jia)密(mi)(mi)(mi)在加(jia)(jia)密(mi)(mi)(mi)和(he)解(jie)(jie)密(mi)(mi)(mi)時(shi)使用(yong)相同的(de)(de)密(mi)(mi)(mi)鑰(yao)(yao),所以(yi)這種(zhong)加(jia)(jia)密(mi)(mi)(mi)過程的(de)(de)安全性取決(jue)于是(shi)否有(you)未(wei)經授權的(de)(de)人獲得了對(dui)稱密(mi)(mi)(mi)鑰(yao)(yao)。這就是(shi)它(ta)為什(shen)么(me)也叫做(zuo)機密(mi)(mi)(mi)密(mi)(mi)(mi)鑰(yao)(yao)加(jia)(jia)密(mi)(mi)(mi)的(de)(de)原因(yin)。希望使用(yong)對(dui)稱密(mi)(mi)(mi)鑰(yao)(yao)加(jia)(jia)密(mi)(mi)(mi)通信的(de)(de)雙方(fang),在交換(huan)加(jia)(jia)密(mi)(mi)(mi)數(shu)據之前必(bi)須先安全地交換(huan)密(mi)(mi)(mi)鑰(yao)(yao)。 衡量對(dui)稱算法(fa)(fa)(fa)優劣的(de)主要尺度(du)(du)(du)是(shi)其(qi)密鑰(yao)(yao)(yao)(yao)的(de)長度(du)(du)(du)。密鑰(yao)(yao)(yao)(yao)越(yue)長,在(zai)找(zhao)到解密數(shu)據所需的(de)正確密鑰(yao)(yao)(yao)(yao)之前(qian)必(bi)須測試(shi)的(de)密鑰(yao)(yao)(yao)(yao)數(shu)量就越(yue)多(duo)。需要測試(shi)的(de)密鑰(yao)(yao)(yao)(yao)越(yue)多(duo),破解這(zhe)種算法(fa)(fa)(fa)就越(yue)困難(nan)。有(you)了好的(de)加密算法(fa)(fa)(fa)和(he)足夠長的(de)密鑰(yao)(yao)(yao)(yao),如果有(you)人想(xiang)在(zai)一(yi)段實際可行(xing)的(de)時間內(nei)逆轉(zhuan)轉(zhuan)換過程(cheng),并從暗(an)文(wen)中推導(dao)出明文(wen),從計算的(de)角度(du)(du)(du)來講,這(zhe)種做(zuo)法(fa)(fa)(fa)是(shi)行(xing)不(bu)通的(de)。 2. 公鑰(yao)加密:兩個(ge)密鑰(yao) 公(gong)(gong)鑰(yao)(yao)(yao)(yao)(yao)(yao)(yao)加(jia)(jia)(jia)密(mi)(mi)(mi)(mi)(mi)(mi)使(shi)(shi)(shi)(shi)用(yong)(yong)(yong)(yong)兩(liang)個(ge)密(mi)(mi)(mi)(mi)(mi)(mi)鑰(yao)(yao)(yao)(yao)(yao)(yao)(yao):一(yi)(yi)個(ge)公(gong)(gong)鑰(yao)(yao)(yao)(yao)(yao)(yao)(yao) 和一(yi)(yi)個(ge)私(si)鑰(yao)(yao)(yao)(yao)(yao)(yao)(yao),這(zhe)兩(liang)個(ge)密(mi)(mi)(mi)(mi)(mi)(mi)鑰(yao)(yao)(yao)(yao)(yao)(yao)(yao)在(zai)(zai)數(shu)(shu)學上(shang)是相(xiang)關的(de)。為了與(yu)(yu)對(dui)稱密(mi)(mi)(mi)(mi)(mi)(mi)鑰(yao)(yao)(yao)(yao)(yao)(yao)(yao)加(jia)(jia)(jia)密(mi)(mi)(mi)(mi)(mi)(mi)相(xiang)對(dui)照,公(gong)(gong)鑰(yao)(yao)(yao)(yao)(yao)(yao)(yao)加(jia)(jia)(jia)密(mi)(mi)(mi)(mi)(mi)(mi)有時(shi)(shi)也(ye)叫(jiao)做不對(dui)稱密(mi)(mi)(mi)(mi)(mi)(mi)鑰(yao)(yao)(yao)(yao)(yao)(yao)(yao)加(jia)(jia)(jia)密(mi)(mi)(mi)(mi)(mi)(mi)。在(zai)(zai)公(gong)(gong)鑰(yao)(yao)(yao)(yao)(yao)(yao)(yao)加(jia)(jia)(jia)密(mi)(mi)(mi)(mi)(mi)(mi)中,公(gong)(gong)鑰(yao)(yao)(yao)(yao)(yao)(yao)(yao)可(ke)在(zai)(zai)通(tong)信雙(shuang)方之(zhi)間公(gong)(gong)開傳遞(di),或(huo)在(zai)(zai)公(gong)(gong)用(yong)(yong)(yong)(yong)儲備(bei)庫中發(fa)(fa)布,但相(xiang)關的(de)私(si)鑰(yao)(yao)(yao)(yao)(yao)(yao)(yao)是保密(mi)(mi)(mi)(mi)(mi)(mi)的(de)。只(zhi)有使(shi)(shi)(shi)(shi)用(yong)(yong)(yong)(yong)私(si)鑰(yao)(yao)(yao)(yao)(yao)(yao)(yao)才能(neng)解(jie)密(mi)(mi)(mi)(mi)(mi)(mi)用(yong)(yong)(yong)(yong)公(gong)(gong)鑰(yao)(yao)(yao)(yao)(yao)(yao)(yao)加(jia)(jia)(jia)密(mi)(mi)(mi)(mi)(mi)(mi)的(de)數(shu)(shu)據(ju)。使(shi)(shi)(shi)(shi)用(yong)(yong)(yong)(yong)私(si)鑰(yao)(yao)(yao)(yao)(yao)(yao)(yao)加(jia)(jia)(jia)密(mi)(mi)(mi)(mi)(mi)(mi)的(de)數(shu)(shu)據(ju)只(zhi)能(neng)用(yong)(yong)(yong)(yong)公(gong)(gong)鑰(yao)(yao)(yao)(yao)(yao)(yao)(yao)解(jie)密(mi)(mi)(mi)(mi)(mi)(mi)。與(yu)(yu)對(dui)稱密(mi)(mi)(mi)(mi)(mi)(mi)鑰(yao)(yao)(yao)(yao)(yao)(yao)(yao)加(jia)(jia)(jia)密(mi)(mi)(mi)(mi)(mi)(mi)相(xiang)似,公(gong)(gong)鑰(yao)(yao)(yao)(yao)(yao)(yao)(yao)加(jia)(jia)(jia)密(mi)(mi)(mi)(mi)(mi)(mi)也(ye)有許(xu)多(duo)種(zhong)(zhong)算(suan)法(fa)(fa)(fa)。然(ran)而,對(dui)稱密(mi)(mi)(mi)(mi)(mi)(mi)鑰(yao)(yao)(yao)(yao)(yao)(yao)(yao)和公(gong)(gong)鑰(yao)(yao)(yao)(yao)(yao)(yao)(yao)算(suan)法(fa)(fa)(fa)在(zai)(zai)設(she)計上(shang)并無相(xiang)似之(zhi)處。您可(ke)以在(zai)(zai)程(cheng)序內部使(shi)(shi)(shi)(shi)用(yong)(yong)(yong)(yong)一(yi)(yi)種(zhong)(zhong)對(dui)稱算(suan)法(fa)(fa)(fa)替換(huan)另一(yi)(yi)種(zhong)(zhong),而變化卻不大,因(yin)為它(ta)們的(de)工作方式(shi)是相(xiang)同(tong)的(de)。而另一(yi)(yi)方面,不同(tong)公(gong)(gong)鑰(yao)(yao)(yao)(yao)(yao)(yao)(yao)算(suan)法(fa)(fa)(fa)的(de)工作方式(shi)卻完(wan)全不同(tong),因(yin)此它(ta)們不可(ke)互(hu)換(huan)。公(gong)(gong)鑰(yao)(yao)(yao)(yao)(yao)(yao)(yao)算(suan)法(fa)(fa)(fa)是復雜(za)的(de)數(shu)(shu)學方程(cheng)式(shi),使(shi)(shi)(shi)(shi)用(yong)(yong)(yong)(yong)十(shi)分大的(de)數(shu)(shu)字(zi)。公(gong)(gong)鑰(yao)(yao)(yao)(yao)(yao)(yao)(yao)算(suan)法(fa)(fa)(fa)的(de)主要局(ju)限在(zai)(zai)于,這(zhe)種(zhong)(zhong)加(jia)(jia)(jia)密(mi)(mi)(mi)(mi)(mi)(mi)形(xing)式(shi)的(de)速度相(xiang)對(dui)較(jiao)低。實際上(shang),通(tong)常僅在(zai)(zai)關鍵(jian)時(shi)(shi)刻才使(shi)(shi)(shi)(shi)用(yong)(yong)(yong)(yong)公(gong)(gong)鑰(yao)(yao)(yao)(yao)(yao)(yao)(yao)算(suan)法(fa)(fa)(fa),如在(zai)(zai)實體(ti)之(zhi)間交換(huan)對(dui)稱密(mi)(mi)(mi)(mi)(mi)(mi)鑰(yao)(yao)(yao)(yao)(yao)(yao)(yao)時(shi)(shi),或(huo)者在(zai)(zai)簽署一(yi)(yi)封郵件的(de)散(san)(san)列時(shi)(shi)(散(san)(san)列是通(tong)過應用(yong)(yong)(yong)(yong)一(yi)(yi)種(zhong)(zhong)單向數(shu)(shu)學函(han)數(shu)(shu)獲得的(de)一(yi)(yi)個(ge)定長結(jie)果,對(dui)于數(shu)(shu)據(ju)而言,叫(jiao)做散(san)(san)列算(suan)法(fa)(fa)(fa))。將公(gong)(gong)鑰(yao)(yao)(yao)(yao)(yao)(yao)(yao)加(jia)(jia)(jia)密(mi)(mi)(mi)(mi)(mi)(mi)與(yu)(yu)其它(ta)加(jia)(jia)(jia)密(mi)(mi)(mi)(mi)(mi)(mi)形(xing)式(shi)(如對(dui)稱密(mi)(mi)(mi)(mi)(mi)(mi)鑰(yao)(yao)(yao)(yao)(yao)(yao)(yao)加(jia)(jia)(jia)密(mi)(mi)(mi)(mi)(mi)(mi))結(jie)合使(shi)(shi)(shi)(shi)用(yong)(yong)(yong)(yong),可(ke)以優化性能(neng)。公(gong)(gong)鑰(yao)(yao)(yao)(yao)(yao)(yao)(yao)加(jia)(jia)(jia)密(mi)(mi)(mi)(mi)(mi)(mi)提(ti)供(gong)了一(yi)(yi)種(zhong)(zhong)有效的(de)方法(fa)(fa)(fa),可(ke)用(yong)(yong)(yong)(yong)來把為大量(liang)數(shu)(shu)據(ju)執行對(dui)稱加(jia)(jia)(jia)密(mi)(mi)(mi)(mi)(mi)(mi)時(shi)(shi)使(shi)(shi)(shi)(shi)用(yong)(yong)(yong)(yong)的(de)機密(mi)(mi)(mi)(mi)(mi)(mi)密(mi)(mi)(mi)(mi)(mi)(mi)鑰(yao)(yao)(yao)(yao)(yao)(yao)(yao)發(fa)(fa)送給某人。也(ye)可(ke)以將公(gong)(gong)鑰(yao)(yao)(yao)(yao)(yao)(yao)(yao)加(jia)(jia)(jia)密(mi)(mi)(mi)(mi)(mi)(mi)與(yu)(yu)散(san)(san)列算(suan)法(fa)(fa)(fa)結(jie)合使(shi)(shi)(shi)(shi)用(yong)(yong)(yong)(yong)以生成(cheng)數(shu)(shu)字(zi)簽名。 數(shu)字(zi)(zi)簽名是(shi)(shi)郵件(jian)、文(wen)件(jian)或其它(ta)數(shu)字(zi)(zi)編碼(ma)信(xin)息(xi)的(de)發件(jian)人(ren)將(jiang)他們的(de)身份與信(xin)息(xi)綁定在一起(即為信(xin)息(xi)提供(gong)簽名)的(de)方法。對信(xin)息(xi)進(jin)行數(shu)字(zi)(zi)簽名的(de)過(guo)程(cheng),需要(yao)(yao)將(jiang)信(xin)息(xi)與由發件(jian)人(ren)掌(zhang)握(wo)的(de)秘密信(xin)息(xi)一起轉(zhuan)換為叫做(zuo)簽名的(de)標記。數(shu)字(zi)(zi)簽名用于公鑰環(huan)境中,它(ta)通(tong)過(guo)驗證發件(jian)人(ren)確(que)實是(shi)(shi)他或她所聲(sheng)明的(de)那個人(ren),并確(que)認收到的(de)郵件(jian)與發送的(de)郵件(jian)完(wan)全相(xiang)同,來(lai)幫助(zhu)確(que)保電(dian)子商務交易的(de)安全。通(tong)常,數(shu)字(zi)(zi)簽名用于以明文(wen)(如電(dian)子郵件(jian))分發數(shu)據(ju)的(de)情形。在這種情況下(xia),當郵件(jian)本(ben)身的(de)敏感性可(ke)能無法保證加(jia)密的(de)安全性時,確(que)保數(shu)據(ju)處于其原(yuan)始格(ge)式且并非由假冒(mao)者(zhe)發送,是(shi)(shi)非常重要(yao)(yao)的(de)。 下面(mian)是(shi)三種最常(chang)用的公鑰算法(fa): RSA-適用(yong)(yong)(yong)于(yu)數(shu)字(zi)簽名(ming)和(he)密鑰(yao)交換。Rivest-Shamir-Adleman (RSA) 加(jia)密算法(fa)(fa)是目前應(ying)用(yong)(yong)(yong)最廣(guang)泛的公鑰(yao)加(jia)密算法(fa)(fa),特別適用(yong)(yong)(yong)于(yu)通過 Internet 傳送的數(shu)據。這種算法(fa)(fa)以它的三位發明者(zhe)的名(ming)字(zi)命名(ming):Ron Rivest、Adi Shamir 和(he) Leonard Adleman。RSA 算法(fa)(fa)的安(an)全(quan)性基于(yu)分(fen)解大數(shu)字(zi)時的困難(就(jiu)計算機(ji)處(chu)理能(neng)力和(he)處(chu)理時間(jian)而言)。在常用(yong)(yong)(yong)的公鑰(yao)算法(fa)(fa)中,RSA 與(yu)眾不同(tong),它能(neng)夠(gou)進行數(shu)字(zi)簽名(ming)和(he)密鑰(yao)交換運算。 DSA-僅適(shi)用于數字簽(qian)名(ming)。數字簽(qian)名(ming)算(suan)(suan)法(fa) (Digital Signature Algorithm, DSA) 由(you)美(mei)國國家安全署 (United States National Security Agency, NSA) 發明,已經(jing)由(you)美(mei)國國家標(biao)準(zhun)(zhun)與技術(shu)協會 (National Institute of Standards and Technology, NIST) 收錄到聯邦信息處理標(biao)準(zhun)(zhun) (Federal Information Processing Standard, FIPS) 之(zhi)中,作為數字簽(qian)名(ming)的(de)標(biao)準(zhun)(zhun)。DSA 算(suan)(suan)法(fa)的(de)安全性源自計(ji)算(suan)(suan)離(li)散算(suan)(suan)法(fa)的(de)困難。這種算(suan)(suan)法(fa)僅用于數字簽(qian)名(ming)運算(suan)(suan)(不(bu)適(shi)用于數據(ju)加密)。 Diffie-Hellman-僅適用于密鑰(yao)交(jiao)換(huan)。 Diffie-Hellman 是發(fa)明的(de)第一個(ge)公鑰(yao)算(suan)法(fa),以(yi)其發(fa)明者 Whitfield Diffie 和 Martin Hellman 的(de)名(ming)字命(ming)名(ming)。Diffie-Hellman 算(suan)法(fa)的(de)安全性源自在一個(ge)有限字段中(zhong)計算(suan)離(li)散算(suan)法(fa)的(de)困難(nan)。Diffie-Hellman 算(suan)法(fa)僅用于密鑰(yao)交(jiao)換(huan)。 3. 單向散(san)列算法(fa) 散(san)(san)列(lie)(lie)(lie)-也(ye)稱為散(san)(san)列(lie)(lie)(lie)值(zhi) 或消息(xi)摘(zhai)要,是一種與基(ji)于(yu)密(mi)(mi)鑰(yao)(yao)(對稱密(mi)(mi)鑰(yao)(yao)或公鑰(yao)(yao))的(de)(de)(de)(de)加(jia)密(mi)(mi)不同的(de)(de)(de)(de)數(shu)據(ju)轉換(huan)類(lei)型。散(san)(san)列(lie)(lie)(lie)就(jiu)是通過把(ba)一個(ge)叫做散(san)(san)列(lie)(lie)(lie)算法的(de)(de)(de)(de)單向(xiang)數(shu)學函數(shu)應(ying)用于(yu)數(shu)據(ju),將任意長度的(de)(de)(de)(de)一塊數(shu)據(ju)轉換(huan)為一個(ge)定(ding)長的(de)(de)(de)(de)、不可(ke)逆轉的(de)(de)(de)(de)數(shu)字(zi)。所產生(sheng)的(de)(de)(de)(de)散(san)(san)列(lie)(lie)(lie)值(zhi)的(de)(de)(de)(de)長度應(ying)足夠長,因此使(shi)找到(dao)兩塊具有相(xiang)同散(san)(san)列(lie)(lie)(lie)值(zhi)的(de)(de)(de)(de)數(shu)據(ju)的(de)(de)(de)(de)機會很少。發件(jian)人(ren)生(sheng)成郵(you)件(jian)的(de)(de)(de)(de)散(san)(san)列(lie)(lie)(lie)值(zhi)并加(jia)密(mi)(mi)它,然后將它與郵(you)件(jian)本身一起(qi)發送。而(er)收件(jian)人(ren)同時(shi)解密(mi)(mi)郵(you)件(jian)和(he)散(san)(san)列(lie)(lie)(lie)值(zhi),并由接收到(dao)的(de)(de)(de)(de)郵(you)件(jian)產生(sheng)另外一個(ge)散(san)(san)列(lie)(lie)(lie)值(zhi),然后將兩個(ge)散(san)(san)列(lie)(lie)(lie)值(zhi)進行比較(jiao)。如果兩者相(xiang)同,郵(you)件(jian)極有可(ke)能在傳輸期間沒(mei)有發生(sheng)任何改變(bian)。 下面是兩個最常(chang)用的散列函(han)數: MD5。 MD5 是由 Ron Rivest 設(she)計(ji)的(de)(de)可產生一個 128 位的(de)(de)散列(lie)值的(de)(de)散列(lie)算法。MD5設(she)計(ji)經過優化以用(yong)于Intel處理器(qi)。這(zhe)種算法的(de)(de)基(ji)本原理已(yi)經泄露,這(zhe)就是為(wei)什(shen)么它不太(tai)受歡(huan)迎的(de)(de)原因。 SHA-1。與 DSA 公鑰算(suan)法相似(si),安全散(san)(san)(san)列(lie)算(suan)法1(SHA-1)也是由(you)NSA設計的(de),并由(you)NIST將其(qi)收錄到(dao) FIPS 中,作為散(san)(san)(san)列(lie)數(shu)據的(de)標準。它可(ke)產生一(yi)個(ge) 160 位的(de)散(san)(san)(san)列(lie)值。SHA-1是流行的(de)用于創建數(shu)字簽名的(de)單向散(san)(san)(san)列(lie)算(suan)法。 4. 數字(zi)簽名:結合使用公(gong)鑰與散列算(suan)法 可以結合(he)使用公(gong)鑰(yao)技術與散列算法來創(chuang)建(jian)數字(zi)簽名。數字(zi)簽名可用作數據完整性檢查并提供擁有私鑰(yao)的(de)憑據。簽署和(he)驗證數據(由啟用PKI的(de)應用程序如Microsoft Outlook完成)的(de)步驟如下: 發(fa)件人將一(yi)種(zhong)散列(lie)算法(fa)應用(yong)于(yu)數據(ju),并(bing)生成一(yi)個散列(lie)值(zhi)。 發件人使用(yong)私(si)鑰將散列值轉(zhuan)換為數字簽名。 然后(hou),發件人將數(shu)據、簽名及發件人的證書發給收(shou)件人。 收件人將(jiang)該散(san)列算法應用(yong)于接(jie)收到的(de)數(shu)據,并生成一個散(san)列值。 收件人(ren)使用(yong)發件人(ren)的公鑰和新(xin)生(sheng)成的散列(lie)值驗證簽名。 對(dui)用戶而言這一過程是(shi)透明的。 散(san)列(lie)算(suan)法(fa)處理(li)數(shu)據的(de)(de)速度比公(gong)鑰算(suan)法(fa)快得多。散(san)列(lie)數(shu)據還縮短了要簽(qian)名的(de)(de)數(shu)據的(de)(de)長度,因而加快了簽(qian)名過程。當創建(jian)或驗(yan)證(zheng)簽(qian)名時,公(gong)鑰算(suan)法(fa)必須且只需轉換(huan)散(san)列(lie)值(zhi)(128或160位的(de)(de)數(shu)據)。創建(jian)簽(qian)名和驗(yan)證(zheng)簽(qian)名的(de)(de)詳細步(bu)驟取(qu)決于所采用的(de)(de)公(gong)鑰算(suan)法(fa)。 5. 密(mi)鑰(yao)交換:結合使(shi)用對稱密(mi)鑰(yao)與(yu)公鑰(yao) 對稱密(mi)鑰(yao)算(suan)法(fa)非(fei)常(chang)適合(he)于快速并(bing)安全地加密(mi)數據。但其缺(que)點是,發件(jian)人和收件(jian)人必須在交換數據之前先(xian)交換機密(mi)密(mi)鑰(yao)。結合(he)使用加密(mi)數據的對稱密(mi)鑰(yao)算(suan)法(fa)與(yu)交換機密(mi)密(mi)鑰(yao)的公(gong)鑰(yao)算(suan)法(fa)可產生(sheng)一種既(ji)快速又靈活的解(jie)決方(fang)案。 基于公鑰的密鑰交換步(bu)驟如下: 發(fa)件(jian)人(ren)獲得收件(jian)人(ren)的公鑰(yao)。 發件人創建一個隨機(ji)機(ji)密(mi)(mi)密(mi)(mi)鑰(在對稱(cheng)密(mi)(mi)鑰加密(mi)(mi)中使用(yong)的(de)單個密(mi)(mi)鑰)。 發件人使用機(ji)密密鑰(yao)(yao)和(he)對稱(cheng)密鑰(yao)(yao)算法將明文數據(ju)轉(zhuan)換為暗(an)文數據(ju)。 發(fa)件人使用收件人的(de)公鑰(yao)將機(ji)密密鑰(yao)轉換為暗文機(ji)密密鑰(yao)。 發件(jian)人(ren)將暗文數據和暗文機密(mi)(mi)密(mi)(mi)鑰一起發給收件(jian)人(ren)。 收件人(ren)使用(yong)其私鑰(yao)將暗文機密(mi)密(mi)鑰(yao)轉換為明文。 收(shou)件人(ren)使用明文機(ji)密密鑰將(jiang)暗文數(shu)據轉換(huan)為明文數(shu)據。 同樣,這些步驟是由啟用PKI的(de)應用程序(如Microsoft Outlook)來完成的(de),并且對用戶(hu)來說是透(tou)明(ming)的(de)。 二、公鑰基本(ben)結構的概念 術(shu)語公鑰(yao)基本結構(gou)(PKI)用于(yu)描述管(guan)制(zhi)或操縱證(zheng)書與公鑰(yao)及私鑰(yao)的(de)策(ce)略、標(biao)(biao)準和軟件(jian)。實(shi)際上,PKI 是指由數字證(zheng)書、證(zheng)書頒發機構(gou)(CA) 以及對電子交(jiao)易所涉及各方(fang)的(de)合法(fa)性進(jin)行(xing)檢查和驗證(zheng)的(de)其它注(zhu)冊(ce)機構(gou)組成的(de)一套系統(tong)。PKI的(de)有關標(biao)(biao)準仍處于(yu)不斷發展之中(zhong),即使這(zhe)些標(biao)(biao)準已被作為電子商務的(de)要素而廣(guang)泛實(shi)施。 PKI一(yi)般包括(kuo): 證書 證書頒(ban)發機構(gou) (CA) 不可更(geng)改的(de)CA層次結構 注冊 證書(shu)登記 證書吊銷 證(zheng)書鏈驗證(zheng) 1. 證(zheng)書 公(gong)鑰(yao)證(zheng)書(shu)(shu)(shu)(shu)(shu)(shu),通(tong)常(chang)簡稱為(wei)證(zheng)書(shu)(shu)(shu)(shu)(shu)(shu),用(yong)于在(zai)(zai) Internet、Extranet 和(he) Intranet 上(shang)進行(xing)身(shen)份驗(yan)(yan)證(zheng)并確保(bao)數(shu)(shu)據交換的(de)安(an)(an)(an)(an)全(quan)。證(zheng)書(shu)(shu)(shu)(shu)(shu)(shu)的(de)頒(ban)(ban)發(fa)(fa)者和(he)簽署(shu)者就是(shi)眾所周(zhou)知的(de)證(zheng)書(shu)(shu)(shu)(shu)(shu)(shu)頒(ban)(ban)發(fa)(fa)機構 (CA)。頒(ban)(ban)發(fa)(fa)證(zheng)書(shu)(shu)(shu)(shu)(shu)(shu)的(de)實(shi)體是(shi)證(zheng)書(shu)(shu)(shu)(shu)(shu)(shu)的(de)主體。公(gong)鑰(yao)證(zheng)書(shu)(shu)(shu)(shu)(shu)(shu)是(shi)以(yi)(yi)數(shu)(shu)字(zi)方式(shi)簽名的(de)聲明,它(ta)將公(gong)鑰(yao)的(de)值與(yu)持有(you)相應私(si)鑰(yao)的(de)主體(個(ge)人、設備和(he)服務(wu))的(de)身(shen)份綁定在(zai)(zai)一(yi)起。通(tong)過在(zai)(zai)證(zheng)書(shu)(shu)(shu)(shu)(shu)(shu)上(shang)簽名,CA 可(ke)以(yi)(yi)核實(shi)與(yu)證(zheng)書(shu)(shu)(shu)(shu)(shu)(shu)上(shang)公(gong)鑰(yao)相應的(de)私(si)鑰(yao)為(wei)證(zheng)書(shu)(shu)(shu)(shu)(shu)(shu)所指(zhi)定的(de)主體所擁有(you)。可(ke)以(yi)(yi)為(wei)各種目(mu)的(de)頒(ban)(ban)發(fa)(fa)證(zheng)書(shu)(shu)(shu)(shu)(shu)(shu),如 Web 用(yong)戶(hu)身(shen)份驗(yan)(yan)證(zheng)、Web 服務(wu)器身(shen)份驗(yan)(yan)證(zheng)、使用(yong)安(an)(an)(an)(an)全(quan)/多用(yong)途 Internet 郵(you)件(jian)擴充協(xie)議 (Secure/Multipurpose Internet Mail Extensions, S/MIME) 的(de)安(an)(an)(an)(an)全(quan)電子郵(you)件(jian)、IP 安(an)(an)(an)(an)全(quan)性 (IP Security)、安(an)(an)(an)(an)全(quan)套接字(zi)協(xie)議層(ceng)/事務(wu)層(ceng)安(an)(an)(an)(an)全(quan)性 (Secure Sockets Layer/Transaction Layer Security, SSL/TLS) 和(he)代碼簽名。如果在(zai)(zai)一(yi)個(ge)組(zu)織內(nei)部(bu)使用(yong) Windows 2000 企業證(zheng)書(shu)(shu)(shu)(shu)(shu)(shu)頒(ban)(ban)發(fa)(fa)機構,證(zheng)書(shu)(shu)(shu)(shu)(shu)(shu)可(ke)用(yong)于登錄到 Windows 2000 域。證(zheng)書(shu)(shu)(shu)(shu)(shu)(shu)還可(ke)以(yi)(yi)由一(yi)個(ge) CA 頒(ban)(ban)發(fa)(fa)給另一(yi)個(ge) CA,以(yi)(yi)建立證(zheng)書(shu)(shu)(shu)(shu)(shu)(shu)層(ceng)次結構。 可以通過多(duo)個名稱(cheng)來(lai)識別主體,如(ru)用戶主要名稱(cheng)(用于最(zui)終用戶證書)、目錄名、電(dian)子(zi)郵件名稱(cheng)和(he) DNS 域名等。證書還應(ying)包(bao)含下列信息: 證書的有效期。 證書的序列號,CA 應保證該(gai)序列號是唯一的。 CA 的(de)名稱以及(ji)用于簽署該(gai)證書的(de)密鑰。 CA 所(suo)遵循(xun)的用來確定證書主體身份(fen)的策略的標識符(稍(shao)后將詳細介(jie)紹 CA 策略)。 在(zai)證書中標(biao)識(shi)的(de)(de)密(mi)鑰對(公鑰及相關的(de)(de)私鑰)的(de)(de)用法(fa)。 證(zheng)書吊銷列表(biao) (CRL) 的位置,這(zhe)是(shi)一個(ge)由 CA 維護并發布的列出(chu)已被吊銷的證(zheng)書的文檔。為確保(bao)其(qi)完整性,CRL 是(shi)用(yong) CA 的私鑰簽署的。 證(zheng)書(shu)(shu)提供了一個在公(gong)鑰和(he)擁有相應私鑰的(de)實體(ti)之間建立關系的(de)機(ji)制。目前最常用(yong)的(de)證(zheng)書(shu)(shu)格式(shi)通(tong)過 ITU-T X.509 版本 3 (X.509v3) 國際(ji)標準定義(yi)。RFC 2459 是(shi)X.509v3 的(de)一個配(pei)置文件,進一步闡明(ming)了 X.509v3 中定義(yi)的(de)字段。Windows 2000 PKI 采(cai)用(yong) X.509v3 標準。Windows 證(zheng)書(shu)(shu)是(shi)按照 RFC 2459 中的(de)說明(ming)編(bian)程的(de),但仍(reng)然叫做 X.509v3 證(zheng)書(shu)(shu)。 ITU-T X.509 并非證(zheng)書(shu)(shu)的(de)唯一格式(shi)。例如,Pretty Good Privacy (PGP) 安全電子郵(you)件依賴 PGP 所獨有的(de)一種證(zheng)書(shu)(shu)。 2. 證(zheng)書頒發(fa)機構(gou) 證(zheng)(zheng)(zheng)書頒發機(ji)構(gou) (CA) 是(shi)一(yi)個(ge)向個(ge)人(ren)、計(ji)算機(ji)或(huo)任何其(qi)它申請實(shi)體(ti)(ti)頒發證(zheng)(zheng)(zheng)書的(de)(de)(de)可信(xin)實(shi)體(ti)(ti)。CA 受理證(zheng)(zheng)(zheng)書申請,根據(ju)該(gai) CA 的(de)(de)(de)策略(lve)驗證(zheng)(zheng)(zheng)申請人(ren)的(de)(de)(de)信(xin)息,然后(hou)使用它的(de)(de)(de)私鑰(yao)把其(qi)數字(zi)簽(qian)名應用于(yu)證(zheng)(zheng)(zheng)書。然后(hou),CA 將該(gai)證(zheng)(zheng)(zheng)書頒發給該(gai)證(zheng)(zheng)(zheng)書的(de)(de)(de)主體(ti)(ti),作為 PKI 內部的(de)(de)(de)安(an)全憑據(ju)。由于(yu)不同(tong)的(de)(de)(de) CA 使用不同(tong)的(de)(de)(de)方(fang)法(fa)驗證(zheng)(zheng)(zheng)公鑰(yao)與主體(ti)(ti)之間的(de)(de)(de)綁定,在選擇(ze)信(xin)任該(gai)頒發機(ji)構(gou)之前,理解該(gai) CA 的(de)(de)(de)策略(lve)是(shi)非常重要的(de)(de)(de)。 CA 可(ke)以是遠程的(de)第三方機構,如 VeriSign。作為選擇,也可(ke)以是您創建的(de)供您所在組(zu)織使(shi)用的(de) CA,例如,通過安裝 Windows 2000 證(zheng)書服務即可(ke)創建一(yi)個 CA。每個 CA 對證(zheng)書申請(qing)人(ren)可(ke)能有(you)完(wan)全不同的(de)身份憑(ping)據要求(qiu),如 Windows 2000 域帳戶、職員標記(ji)、駕駛(shi)執照、公(gong)證(zheng)請(qing)求(qiu)或實(shi)際(ji)住址(zhi)。 CA 根據也已確(que)立的一(yi)套(tao)標準向申請人(ren)頒(ban)發證(zheng)書(shu)(shu)。CA 在受理證(zheng)書(shu)(shu)請求(以(yi)及頒(ban)發證(zheng)書(shu)(shu)、吊銷證(zheng)書(shu)(shu)和發布(bu)(bu) CRL)時所采用的一(yi)套(tao)標準被稱(cheng)為 CA 策略。通常(chang),CA 以(yi)一(yi)種叫做(zuo)證(zheng)書(shu)(shu)慣例聲明 (Certification Practice Statement, CPS) 的文檔發布(bu)(bu)其策略。 CA 的類型(xing)包括(kuo)以(yi)下三種: 自(zi)簽(qian)名 CA。在自(zi)簽(qian)名 CA 中(zhong),證書中(zhong)的(de)公鑰和用(yong)于(yu)驗(yan)證證書的(de)密鑰是相同(tong)的(de)。一些自(zi)簽(qian)名 CA 是根 CA 。 從(cong)屬(shu) CA。在從(cong)屬(shu) CA 中(zhong),證書(shu)中(zhong)的公鑰和用于(yu)核實證書(shu)的密鑰是不同的。一個(ge) CA 向另一個(ge) CA 頒發證書(shu)的過(guo)程叫做交(jiao)叉認證。 根(gen) CA。根(gen) CA 是一種特殊的 CA,它受(shou)到(dao)客戶無條件地信任,位(wei)于證(zheng)書(shu)層(ceng)次結構的最高層(ceng)。所有(you)證(zheng)書(shu)鏈均終(zhong)止于根(gen) CA。根(gen)頒(ban)發機構必須(xu)對它自己的證(zheng)書(shu)簽名(ming),因為在證(zheng)書(shu)層(ceng)次結構中再也(ye)沒有(you)更高的認證(zheng)機構了。 所有(you)自(zi)簽名 CA 都是根(gen) CA,因為到自(zi)簽名 CA 時證書(shu)鏈就終止(zhi)了。 3. 不可更(geng)改的 CA 層次結(jie)構 管理員可以創建 CA 的層次結構,從根 CA 證書(shu)開始(shi),然后添加中級 CA,每一個 CA 都(dou)可以為其從屬(shu) CA 頒(ban)發(fa)(fa)證書(shu)。當 CA 向最終實體(用(yong)戶)頒(ban)發(fa)(fa)證書(shu)時,證書(shu)鏈(lian)就(jiu)終止了。 根(gen)(gen)(gen)(gen)(gen) CA 證(zheng)書(shu)(shu)(shu)的(de)分(fen)(fen)發(fa)(fa)費用(yong)最(zui)高(gao),因(yin)為(wei)如(ru)果您(nin)開始改(gai)變根(gen)(gen)(gen)(gen)(gen)證(zheng)書(shu)(shu)(shu),就必(bi)須(xu)重(zhong)建整個(ge)PKI。如(ru)果根(gen)(gen)(gen)(gen)(gen)證(zheng)書(shu)(shu)(shu)改(gai)變了,就必(bi)須(xu)吊銷組織內所有(you)客戶端的(de)舊的(de)根(gen)(gen)(gen)(gen)(gen)證(zheng)書(shu)(shu)(shu),并添加新的(de)根(gen)(gen)(gen)(gen)(gen)證(zheng)書(shu)(shu)(shu)。另外(wai),必(bi)須(xu)重(zhong)新頒(ban)(ban)發(fa)(fa)由根(gen)(gen)(gen)(gen)(gen) CA 頒(ban)(ban)發(fa)(fa)的(de)、再(zai)由從屬 CA 頒(ban)(ban)發(fa)(fa)給最(zui)終實(shi)體(ti)的(de)所有(you)證(zheng)書(shu)(shu)(shu)。因(yin)此,在部署 CA 層次結構時,使用(yong)少量(liang)的(de)長壽命根(gen)(gen)(gen)(gen)(gen)CA可提(ti)供最(zui)經濟的(de)解決方案。根(gen)(gen)(gen)(gen)(gen)CA非常(chang)重(zhong)要(yao)-因(yin)為(wei)它們被無條件地信任,因(yin)為(wei)它們是(shi)證(zheng)書(shu)(shu)(shu)鏈(lian)的(de)頂點-因(yin)此,在分(fen)(fen)發(fa)(fa)證(zheng)書(shu)(shu)(shu)時要(yao)有(you)一個(ge)圈(quan)外(wai)的(de)身份驗證(zheng)。也(ye)就是(shi)說,由于根(gen)(gen)(gen)(gen)(gen) CA 是(shi)自(zi)簽名(ming)的(de),所以必(bi)須(xu)有(you)人來證(zheng)明根(gen)(gen)(gen)(gen)(gen)證(zheng)書(shu)(shu)(shu)是(shi)真品。 因為最終(zhong)實(shi)(shi)體(ti)要比 CA 多得(de)(de)多,所以向(xiang)最終(zhong)實(shi)(shi)體(ti)頒發(fa)證書(shu)的(de)(de) CA 使(shi)用(yong)私鑰在大量的(de)(de)數據上簽(qian)名。用(yong)來對數據簽(qian)名的(de)(de)密鑰使(shi)用(yong)得(de)(de)越(yue)頻繁,加密數據受到攻擊的(de)(de)可(ke)能(neng)性就(jiu)越(yue)大。因此,為了保持安全,向(xiang)最終(zhong)實(shi)(shi)體(ti)頒發(fa)證書(shu)的(de)(de)聯機 CA 必須(xu)經(jing)常更換其簽(qian)名密鑰。 向(xiang)最(zui)終實體頒發(fa)證(zheng)(zheng)(zheng)書的(de) CA 具(ju)有(you)的(de)吊(diao)銷(xiao)證(zheng)(zheng)(zheng)書列(lie)表(biao)(biao),要比中級或根 CA 的(de)列(lie)表(biao)(biao)大得多(這些 CA 僅(jin)向(xiang)其(qi)它 CA,更多的(de)是從屬 CA 頒發(fa)證(zheng)(zheng)(zheng)書)。其(qi)部分原因(yin)是因(yin)為最(zui)終實體要比 CA 證(zheng)(zheng)(zheng)書多得多。另外,有(you)許多理由可以解釋(shi)為什么必須吊(diao)銷(xiao)最(zui)終實體的(de)證(zheng)(zheng)(zheng)書,如(ru)職員(yuan)改變了(le)工作或離開了(le)公司(si)。 CA 發布吊銷(xiao)證(zheng)書(shu)(shu)(shu)(shu)列(lie)(lie)(lie)(lie)表(biao)(CRL),其(qi)中(zhong)列(lie)(lie)(lie)(lie)出了不應再使用的(de)證(zheng)書(shu)(shu)(shu)(shu)。被吊銷(xiao)證(zheng)書(shu)(shu)(shu)(shu)的(de)有關條目(mu)將(jiang)(jiang)一直保留在 CRL 列(lie)(lie)(lie)(lie)表(biao)中(zhong),直至證(zheng)書(shu)(shu)(shu)(shu)的(de)有效期 結束之后,CA 才(cai)可(ke)將(jiang)(jiang)該證(zheng)書(shu)(shu)(shu)(shu)從(cong)(cong)列(lie)(lie)(lie)(lie)表(biao)中(zhong)刪除(chu)。CRL 中(zhong)的(de)條目(mu)越(yue)(yue)多(duo),CRL 就越(yue)(yue)大,其(qi)下(xia)載時間(jian)就越(yue)(yue)長。通常,只有使用較慢的(de)網絡(luo)鏈路(lu)(如撥號連接(jie))的(de)用戶才(cai)會遇到下(xia)載時間(jian)問題。CA 還可(ke)以管理(li) CRL 列(lie)(lie)(lie)(lie)表(biao)的(de)大小(xiao)。一種方(fang)法是(shi)維護多(duo)個列(lie)(lie)(lie)(lie)表(biao),稱為分區 CRL。另(ling)一種方(fang)法是(shi),縮短已頒發證(zheng)書(shu)(shu)(shu)(shu)的(de)有效期,從(cong)(cong)而加快(kuai) CA 從(cong)(cong)列(lie)(lie)(lie)(lie)表(biao)中(zhong)刪除(chu)吊銷(xiao)證(zheng)書(shu)(shu)(shu)(shu)的(de)速度。 許多應用程序必須能(neng)夠查明證書(shu)最近的(de)吊銷狀態信息。只有一個聯機 CA 能(neng)夠發布有關(guan)證書(shu)狀態的(de)當前信息。由(you)脫(tuo)機CA公布的(de)吊銷狀態,必須使用圈(quan)外的(de)方法(fa)發布到聯機位(wei)置。 大多(duo)數容易受到攻(gong)擊的(de) CA 都是(shi)處于聯(lian)(lian)機(ji)(ji)狀(zhuang)態(tai)的(de)、物(wu)理安(an)全措施較差并簽署了大量(liang)證書的(de) CA。因此,建立根(gen) CA和從(cong)屬(shu)CA時(shi),應該平衡一(yi)下安(an)全性(xing)(xing)和可用性(xing)(xing)。通常(chang),建議(yi)采用三級(ji)層次結構,即一(yi)個脫機(ji)(ji)的(de)獨(du)立根(gen) CA、一(yi)個脫機(ji)(ji)的(de)獨(du)立從(cong)屬(shu)策略 CA 和一(yi)個聯(lian)(lian)機(ji)(ji)從(cong)屬(shu)頒發(fa)企業 CA。 脫(tuo)機(ji)根CA。 在設計 CA 的(de)層次結構時,根CA的(de)安(an)全級別應設為最(zui)高(gao)。根CA應以脫(tuo)機(ji)狀態保存(cun)在安(an)全的(de)位(wei)(wei)置,并且用它只簽署少量證(zheng)書。可能的(de)話,應該將(jiang)CA和密鑰保存(cun)在專門(men)的(de)保管庫(ku)中,并且至少同時有兩(liang)位(wei)(wei)操作員進入該保管庫(ku),一位(wei)(wei)執行(xing)規定的(de)操作,另一位(wei)(wei)審核其操作。(在Windows 2000 網絡中,設計了獨立(li)的(de) CA,以便(bian)它們脫(tuo)機(ji)運(yun)行(xing)。) 脫機(ji)(ji)中級(ji)CA。在一個根CA下面(mian)可(ke)(ke)以(yi)有(you)一個或多個從屬CA。將中級(ji)從屬CA設為脫機(ji)(ji)的(de)機(ji)(ji)器,可(ke)(ke)以(yi)提(ti)高(gao)該 CA 的(de)安全性。 聯(lian)機頒(ban)發(fa)(fa)CA。 CA 鏈中最(zui)后(hou)一級(ji)的(de) CA 必須處(chu)于聯(lian)機狀(zhuang)態(tai)(tai),因此可用于受理(li)(li)來自眾多(duo)(duo)客戶(hu)機的(de)證書申請。根(gen) CA下面(mian)的(de)聯(lian)機 CA 也可以(yi)經常發(fa)(fa)布最(zui)新的(de)吊銷狀(zhuang)態(tai)(tai)信息。管理(li)(li)員可以(yi)頻(pin)繁地更改這種(zhong)(zhong) CA 的(de)密鑰(yao),因為頒(ban)發(fa)(fa)新證書的(de)開銷(管理(li)(li)方(fang)面(mian)的(de)開銷)是最(zui)低的(de)。從屬 CA 并(bing)不完全是可任意使用的(de),但通過攻擊從屬 CA 并(bing)不能得到多(duo)(duo)少有價(jia)值的(de)東西,而且高級(ji) CA 通過吊銷證書即可輕而易舉地阻擋這種(zhong)(zhong)攻擊。 4. 注冊 注(zhu)冊就是主(zhu)體(ti)向 CA 自(zi)(zi)我介紹的(de)(de)過程。在(zai)申請證書(shu)(shu)時(shi),注(zhu)冊可(ke)以是隱含的(de)(de),或(huo)通過為(wei)主(zhu)體(ti)提供擔(dan)保的(de)(de)另(ling)一個可(ke)信(xin)實體(ti)(如(ru)智能(neng)卡登(deng)記站)來(lai)(lai)完成,或(huo)者在(zai)收(shou)到來(lai)(lai)源可(ke)信(xin)(如(ru)來(lai)(lai)自(zi)(zi)域管理員)的(de)(de)信(xin)息(xi)時(shi)自(zi)(zi)動(dong)完成。一旦(dan)向 CA 進行(xing)了(le)注(zhu)冊,只要(yao)符合按(an)照 CA 策略建立的(de)(de)標準,證書(shu)(shu)即(ji)被頒(ban)發給該主(zhu)體(ti)。 5. 證(zheng)書登記(ji) 證(zheng)書(shu)(shu)登記就(jiu)是(shi)最(zui)終實體(ti)進(jin)行證(zheng)書(shu)(shu)申(shen)(shen)請(qing)(qing)并從 CA 接收證(zheng)書(shu)(shu)的(de)(de)過程(cheng)。證(zheng)書(shu)(shu)申(shen)(shen)請(qing)(qing)就(jiu)是(shi)向 CA 提供身(shen)份(fen)信(xin)息(xi),該信(xin)息(xi)隨后(hou)將(jiang)成(cheng)為(wei)所頒(ban)發證(zheng)書(shu)(shu)的(de)(de)一(yi)(yi)部分。CA 根據一(yi)(yi)套標(biao)準受(shou)理申(shen)(shen)請(qing)(qing),該標(biao)準可能要求進(jin)行脫(tuo)機的(de)(de)、非自動(dong)的(de)(de)身(shen)份(fen)驗證(zheng)(圈外的(de)(de)身(shen)份(fen)驗證(zheng))。如(ru)果申(shen)(shen)請(qing)(qing)被(bei)成(cheng)功受(shou)理,CA 隨后(hou)將(jiang)向該用戶頒(ban)發證(zheng)書(shu)(shu)。 一種(zhong)特殊(shu)的證(zheng)(zheng)(zheng)書登記可(ke)通過(guo)注冊機構 (Registration Authority, RA) 來完成,RA 可(ke)為(wei) CA 提供(gong)擔保,以便將公(gong)鑰(yao)與預(yu)期(qi)的證(zheng)(zheng)(zheng)書持有(you)(you)人的身份及(ji)屬性(xing)綁定在一起。RA 是擁(yong)有(you)(you)特殊(shu)證(zheng)(zheng)(zheng)書的主(zhu)體(ti)(ti)(ti)。這(zhe)種(zhong)特殊(shu)的證(zheng)(zheng)(zheng)書包(bao)含有(you)(you)可(ke)以向(xiang)(xiang)CA表明主(zhu)體(ti)(ti)(ti)身份的信息。通常,RA 在公(gong)鑰(yao)和主(zhu)體(ti)(ti)(ti)之間建(jian)立綁定,然后在主(zhu)體(ti)(ti)(ti)生(sheng)成的申請上簽(qian)名(ming),以便向(xiang)(xiang) CA 提供(gong)該 RA 即(ji)將為(wei)綁定擔保的證(zheng)(zheng)(zheng)據。本質上,使用(yong) RA 是管(guan)理(li)委(wei)派的一種(zhong)形式(shi)-CA 委(wei)派 RA 執行(xing)驗(yan)證(zheng)(zheng)(zheng)公(gong)鑰(yao)和實(shi)體(ti)(ti)(ti)之間綁定的任務(wu)。 RA 生(sheng)成在(zai)(zai)主體和(he)公(gong)鑰之間(jian)建(jian)立的牢(lao)固綁定(ding)的證(zheng)書(shu)(shu)。在(zai)(zai) Windows 2000 操作系(xi)統中,證(zheng)書(shu)(shu)服(fu)務使用(yong)(yong)域身份(fen)驗證(zheng)來識(shi)別申請(qing)大多(duo)數類型(xing)證(zheng)書(shu)(shu)的用(yong)(yong)戶身份(fen)。創建(jian)智(zhi)能(neng)(neng)卡(ka)登(deng)錄(lu)證(zheng)書(shu)(shu)的 Windows 2000 智(zhi)能(neng)(neng)卡(ka)登(deng)記站由 RA 使用(yong)(yong)。RA 可驗證(zheng)智(zhi)能(neng)(neng)卡(ka)收件人(ren)的身份(fen),同時(shi)提供比域身份(fen)驗證(zheng)單獨完(wan)成的主體與(yu)公(gong)鑰之間(jian)的綁定(ding)更加(jia)牢(lao)固的綁定(ding)。 6. 證書吊銷 證(zheng)書(shu)具有一個指(zhi)定的(de)(de)壽(shou)命,但(dan) CA 可通(tong)過稱為(wei)證(zheng)書(shu)吊銷(xiao)(xiao)的(de)(de)過程來縮短(duan)(duan)這一壽(shou)命。CA 發布(bu)一個證(zheng)書(shu)吊銷(xiao)(xiao)列表(biao) (CRL),列出(chu)被(bei)認為(wei)不能再使用的(de)(de)證(zheng)書(shu)的(de)(de)序列號。CRL 指(zhi)定的(de)(de)壽(shou)命通(tong)常比(bi)證(zheng)書(shu)指(zhi)定的(de)(de)壽(shou)命短(duan)(duan)得多。CA 也可以在 CRL 中加(jia)入證(zheng)書(shu)被(bei)吊銷(xiao)(xiao)的(de)(de)理由。它還可以加(jia)入被(bei)認為(wei)這種(zhong)狀(zhuang)態改變所適用的(de)(de)起(qi)始日期。 可將下列情況指定為吊銷(xiao)證書(shu)的理(li)由: 泄露密鑰(yao) 泄露 CA 從屬關(guan)系改變(bian) 被(bei)取代 業務(wu)終止 證(zheng)(zheng)書(shu)持有(這是唯一(yi)讓您能(neng)夠改變被吊銷(xiao)證(zheng)(zheng)書(shu)狀態的(de)理由碼,在證(zheng)(zheng)書(shu)狀態有問(wen)題的(de)情況(kuang)下非(fei)常有用) 由 CA吊(diao)銷證(zheng)書(shu)意(yi)味著(zhu),CA 在證(zheng)書(shu)正常(chang)到期之(zhi)(zhi)前撤銷其允(yun)許使用該密(mi)鑰對的(de)有關聲明。在吊(diao)銷的(de)證(zheng)書(shu)到期之(zhi)(zhi)后,CRL 中的(de)有關條目被(bei)刪除,以縮(suo)短 CRL 列(lie)表的(de)大小。 在(zai)驗(yan)(yan)證(zheng)簽名期間(jian),應用程序可(ke)(ke)以(yi)檢查 CRL,以(yi)確定給定證(zheng)書(shu)和密鑰對(dui)是否(fou)(fou)仍然(ran)可(ke)(ke)信(xin)。如果不可(ke)(ke)信(xin),應用程序可(ke)(ke)以(yi)判(pan)斷吊(diao)銷的理由(you)或日期對(dui)使用有(you)疑問證(zheng)書(shu)是否(fou)(fou)有(you)影(ying)響。如果該(gai)證(zheng)書(shu)被用來驗(yan)(yan)證(zheng)簽名,且簽名的日期早于 CA 吊(diao)銷該(gai)證(zheng)書(shu)的日期,那么該(gai)簽名仍被認為是有(you)效的。 應(ying)用(yong)(yong)程(cheng)序獲(huo)得(de) CRL 之后(hou),由(you)客戶(hu)機(ji)緩(huan)存 CRL ,在它到(dao)期之前客戶(hu)機(ji)將(jiang)一直使用(yong)(yong)它。如果 CA 發布了新(xin)(xin)的(de) CRL,擁(yong)有(you)有(you)效 CRL 的(de)應(ying)用(yong)(yong)程(cheng)序并不使用(yong)(yong)新(xin)(xin)的(de) CRL,直到(dao)應(ying)用(yong)(yong)程(cheng)序擁(yong)有(you)的(de) CRL 到(dao)期為止(zhi)。 7. 證書鏈確認 Microsoft CryptoAPI 提(ti)供(gong)了(le)一個(ge)標(biao)準的(de)框(kuang)架,應用(yong)程序可用(yong)此框(kuang)架來獲得加密服(fu)務和數字證書(shu)服(fu)務。除了(le) CryptoAPI 為 Windows 95、Windows 98、Windows NT 和 Windows 2000 提(ti)供(gong)的(de)標(biao)準服(fu)務以(yi)外(wai),第三(san)方供(gong)應商可開發并銷售他們(men)自己的(de)插件模塊,提(ti)供(gong)附加的(de)加密服(fu)務。 在(zai) Windows 網絡中,為新證書生成一個(ge)請求(qiu)時,該請求(qiu)中的(de)信息首先被(bei)從請求(qiu)程(cheng)序傳遞給 CryptoAPI。然(ran)后,CryptoAPI 把相應的(de)數(shu)據傳遞給一個(ge)稱為加密(mi)服(fu)務提供(gong)程(cheng)序 (CSP)的(de)程(cheng)序,該程(cheng)序安裝在(zai)您(nin)的(de)計算(suan)機(ji)(ji)上,或(huo)安裝在(zai)您(nin)的(de)計算(suan)機(ji)(ji)可以訪問的(de)某種(zhong)設備(如智能卡)上。CSP 是一個(ge)執行諸(zhu)如機(ji)(ji)密(mi)密(mi)鑰(yao)交(jiao)換、數(shu)據的(de)數(shu)字(zi)簽名以及公鑰(yao)身份驗證之類的(de)加密(mi)操(cao)作的(de)獨(du)立軟(ruan)(ruan)件模塊。