X509文件擴(kuò)展名編碼格式加密方式_第1頁(yè)
X509文件擴(kuò)展名編碼格式加密方式_第2頁(yè)
X509文件擴(kuò)展名編碼格式加密方式_第3頁(yè)
X509文件擴(kuò)展名編碼格式加密方式_第4頁(yè)
X509文件擴(kuò)展名編碼格式加密方式_第5頁(yè)
已閱讀5頁(yè),還剩12頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、X509 文件擴(kuò)展名首先我們要理解文件的擴(kuò)展名代表什么。DER、PEM、CRT和CER這些擴(kuò)展名經(jīng)常令人困惑。很多人錯(cuò)誤地認(rèn)為這些擴(kuò)展名可以互相代替。盡管的確有時(shí)候有些擴(kuò)展名是可以互換的,但是最好你能確定證書(shū)是如何編碼的,進(jìn)而正確地標(biāo)識(shí)它們。正確地標(biāo)識(shí)證書(shū)有助于證書(shū)的管理。這些擴(kuò)展名對(duì)openssl是沒(méi)有意義的編碼 (也用于擴(kuò)展名)· .DER = 擴(kuò)展名DER用于二進(jìn)制DER編碼的證書(shū)。這些證書(shū)也可以用CER或者CRT作為擴(kuò)展名。比較合適的說(shuō)法是“我有一個(gè)DER編碼的證書(shū)”,而不是“我有一個(gè)DER證書(shū)”。· .PEM = 擴(kuò)展名PEM用于A(yíng)S

2、CII(Base64)編碼的各種X.509 v3 證書(shū)。文件開(kāi)始由一行" BEGIN “開(kāi)始。常用的擴(kuò)展名· .CRT = 擴(kuò)展名CRT用于證書(shū)。證書(shū)可以是DER編碼,也可以是PEM編碼。擴(kuò)展名CER和CRT幾乎是同義詞。這種情況在各種unix/linux系統(tǒng)中很常見(jiàn)。· CER = CRT證書(shū)的微軟型式。可以用微軟的工具把CRT文件轉(zhuǎn)換為CER文件(CRT和CER必須是相同編碼的,DER或者PEM)。擴(kuò)展名為CER的文件可以被IE識(shí)別并作為命令調(diào)用微軟的cryptoAPI(具體點(diǎn)就是rudll32.exe cryptext.dll, Cyrp

3、tExtOpenCER),進(jìn)而彈出一個(gè)對(duì)話(huà)框來(lái)導(dǎo)入并/或查看證書(shū)內(nèi)容。· .KEY = 擴(kuò)展名KEY用于PCSK#8的公鑰和私鑰。這些公鑰和私鑰可以是DER編碼或者PEM編碼。CRT文件和CER文件只有在使用相同編碼的時(shí)候才可以安全地相互替代。在通信系統(tǒng)中,為了讓通信雙方對(duì)通信媒介中傳輸?shù)男畔a(chǎn)生一致的理解,通信雙方就必須明確所交換的信息類(lèi)型與格式,ASN.1便是ITU-T為支持這種要求而制定的。在目前的通信領(lǐng)域中,由ASN.1所描述的信息或信息流若要在網(wǎng)絡(luò)的各節(jié)點(diǎn)間進(jìn)行傳送,就必須先在發(fā)送端對(duì)他進(jìn)行編碼,轉(zhuǎn)換成物理媒介(網(wǎng)絡(luò))可以傳輸?shù)陌宋晃唤M(OCTET)串的形式,然后

4、才能通過(guò)網(wǎng)絡(luò)發(fā)送到目的節(jié)點(diǎn);接收端再按約定的規(guī)則對(duì)其進(jìn)行解碼,把它從8位位組串的形式恢復(fù)成應(yīng)用實(shí)體直接可用的形式,從而完成信息的傳輸和接收1. ASN.1的基本編碼規(guī)則BER(Basic Encoding Rules)ISO在推出ASN.1的同時(shí)也推出了基本編碼規(guī)則BER。實(shí)際上這是一種傳送語(yǔ)法,它可以把復(fù)雜的用抽象語(yǔ)法描述的數(shù)據(jù)結(jié)構(gòu)表示成簡(jiǎn)單的數(shù)據(jù)流,從而便于在通信線(xiàn)路上傳送。BER以8bit為一個(gè)基本傳送單位。對(duì)于每個(gè)所傳送的值,無(wú)論是基本類(lèi)型還是構(gòu)造類(lèi)型,都由TLV三個(gè)字段組成,TLV分別指類(lèi)型標(biāo)識(shí)符域(TAG),數(shù)據(jù)長(zhǎng)度域(LENGTH)和數(shù)據(jù)域(VALUE)字段。其中,數(shù)據(jù)域可以多重

5、嵌套其他數(shù)據(jù)元素的TLV字段,BER編碼的具體格式如下所示類(lèi)型標(biāo)識(shí)符域(T)數(shù)據(jù)長(zhǎng)度域(L)TLVTLV數(shù)據(jù)域(V)· 類(lèi)型標(biāo)識(shí)符域占用一個(gè)字節(jié),從低位為1開(kāi)始編號(hào),8和7位表示Tag類(lèi)型,第6位是0表示編碼類(lèi)型是基本類(lèi)型,第5 1位是Tag值,各個(gè)位表示的意義如下:bit取值表示含義8 70    0Universal (簡(jiǎn)單類(lèi)型)0    1Application(應(yīng)用類(lèi)型)1    0context-specific(上下文類(lèi)型)1    1private(專(zhuān)

6、用類(lèi)型)60原始類(lèi)型1構(gòu)造類(lèi)型5 1 TAG值· 數(shù)據(jù)長(zhǎng)度域擁有短形式和長(zhǎng)形式兩種1. 短形式的數(shù)據(jù)長(zhǎng)度域只有一個(gè)字節(jié),第8位為0,其他低7位給出數(shù)據(jù)長(zhǎng)度。2. 長(zhǎng)形式的數(shù)據(jù)長(zhǎng)度域有 2 127個(gè)字節(jié)第一個(gè)字節(jié)的的第8位為1,其他低7位給出后面該域使用的字節(jié)的數(shù)量,從該域的第二個(gè)字節(jié)開(kāi)始給出數(shù)據(jù)的長(zhǎng)度· 數(shù)據(jù)域給出了具體的數(shù)據(jù)值。該域的編碼對(duì)不同的數(shù)據(jù)類(lèi)型不一樣·2. ASN.1的緊縮編碼規(guī)則PER(Packet Encoding Rules)BER解決了不同終端系統(tǒng)之間的表示問(wèn)題,但也帶來(lái)了大量的冗余信息增加了通信量的開(kāi)銷(xiāo)。對(duì)應(yīng)用而言,編碼開(kāi)銷(xiāo)出現(xiàn)在編

7、碼格式TLV三個(gè)字段的每個(gè)部分。緊縮編碼規(guī)則(Packed Encoding Rules, PER)就是在BER的基礎(chǔ)上,以減少編碼開(kāi)銷(xiāo)為目的而設(shè)計(jì)的編碼規(guī)則。使用PER的一個(gè)重要的前提是,用戶(hù)數(shù)據(jù)是單個(gè)ASN.1類(lèi)別,且接收方也有一個(gè)相同的ASN.1描述?;诖?,PER可以?huà)仐塀ER按步就班的編碼規(guī)則,省略對(duì)數(shù)據(jù)結(jié)構(gòu)的編碼,PER編碼仍然采用TLV格式,盡管類(lèi)型和長(zhǎng)度字段經(jīng)??梢院雎浴EcBER編碼相比PER編碼主要使用了三方面減小編碼結(jié)果長(zhǎng)度的技術(shù),省略類(lèi)型標(biāo)識(shí)符,長(zhǎng)度段的編碼更加精簡(jiǎn)和對(duì)數(shù)字類(lèi)型的編碼更加精簡(jiǎn)。· 省略類(lèi)型標(biāo)識(shí)符 省略類(lèi)型標(biāo)識(shí)符在編碼中似乎是一個(gè)重在部分

8、,但實(shí)際上通常是不必要的,由于網(wǎng)絡(luò)通信雙方都遵循統(tǒng)一的網(wǎng)絡(luò)協(xié)議,因此它們不可以從數(shù)據(jù)結(jié)構(gòu)中推導(dǎo)出特定元素的類(lèi)型和標(biāo)識(shí),就可以在編碼中省略類(lèi)型標(biāo)識(shí)符· 長(zhǎng)度段的編碼更加精簡(jiǎn) BER的長(zhǎng)度段的編碼都是字節(jié),而且BER長(zhǎng)度的編碼不考慮具體條件,然而PER的長(zhǎng)度字段根據(jù)編碼的類(lèi)型的不同,有不同的單位。這些單位可以是比特、字節(jié)、元素、字符等,這也是PER利用數(shù)據(jù)結(jié)構(gòu)已知的優(yōu)勢(shì)來(lái)減少編碼量的又一方式;而且根據(jù)具體的條件限制,PER的長(zhǎng)度段還可以大幅度削減,譬如當(dāng)數(shù)據(jù)類(lèi)型的長(zhǎng)度固定時(shí),該數(shù)據(jù)項(xiàng)的長(zhǎng)度可以不編碼。· 對(duì)數(shù)字類(lèi)型的編碼更加精簡(jiǎn) 在對(duì)Integer等數(shù)字類(lèi)型

9、(包括Integer和一些類(lèi)型的長(zhǎng)度值編碼的情況)進(jìn)行編碼時(shí),BER采取的是直接對(duì)數(shù)值進(jìn)行編碼;而PER采取的是對(duì)數(shù)據(jù)的偏移值offset進(jìn)行編碼。所謂偏移值就是實(shí)際值減去下界的值。例如:Integer(123456789 . 123456790),在PER編碼中123456790的offset=1,因此PER只需對(duì)1進(jìn)行編碼,這樣對(duì)于那些下界類(lèi)型很大的整數(shù),可以節(jié)省大量字節(jié),且編碼本身非常簡(jiǎn)潔。證書(shū)文件編碼格式介紹OpenSSL中雖然使用PEM作為基本的文件編碼格式,但是,由于不同的對(duì)象其封裝和標(biāo)準(zhǔn)格式不太一樣,所以經(jīng)常會(huì)導(dǎo)致讀者產(chǎn)生迷惑。一、數(shù)據(jù)編碼格式   

10、     首先介紹一下ASN.1(Abstract Syntax Notation One)標(biāo)準(zhǔn),這是一種描述數(shù)字對(duì)象的方法和標(biāo)準(zhǔn)。ASN1是一種結(jié)構(gòu)化的數(shù)字對(duì)象描述語(yǔ)言,它包括兩部分:數(shù)據(jù)描述語(yǔ)言(ISO 8824)和數(shù)據(jù)編碼規(guī)則(ISO 8825)。ASN.1的數(shù)據(jù)描述語(yǔ)言允許用戶(hù)自定義基本的數(shù)據(jù)類(lèi)型,并可以通過(guò)簡(jiǎn)單的數(shù)據(jù)類(lèi)型組成更復(fù)雜的數(shù)據(jù)類(lèi)型。比如:一個(gè)復(fù)雜的數(shù)據(jù)對(duì)象,如X.509證書(shū),就是在其他一些數(shù)據(jù)類(lèi)型上定義的,而其他數(shù)據(jù)類(lèi)型又是在更基本的數(shù)據(jù)類(lèi)型上建立的,直到回溯到定義的最基本的數(shù)據(jù)類(lèi)型。    &

11、#160;   ASN.1提供了多種數(shù)據(jù)編碼方法。包括了BER、DER、PER和XER等。這些編碼方法規(guī)定了將數(shù)字對(duì)象轉(zhuǎn)換成應(yīng)用程序能夠處理、保存和網(wǎng)絡(luò)傳輸?shù)亩M(jìn)制編碼形式的一組規(guī)則。目前經(jīng)常被采用的是BER(Basic Encode Rules)編碼,但是BER編碼具有編碼不唯 一的性質(zhì),也就是說(shuō),一個(gè)相同的對(duì)象通過(guò)BER編碼可能會(huì)產(chǎn)生幾種不同的編碼數(shù)據(jù)。所以,在OpenSSL和其他密碼學(xué)相關(guān)軟件中經(jīng)常使用BER的一個(gè)子DER(Distinguished Encoding Rules)。對(duì)于每一個(gè)ASN.1對(duì)象,使用DER編碼得出的二制編碼碼數(shù)據(jù)是唯 一的。 &

12、#160;      PEM編碼全稱(chēng)是Privacy Enhanced Mail,是一種保密郵件的編碼標(biāo)準(zhǔn)。通常來(lái)說(shuō),對(duì)信息的編碼過(guò)程基本如下。1. 信息轉(zhuǎn)換為ASCII碼或其他編碼方式,比如采用DER編碼。2. 使用對(duì)稱(chēng)加密算法加密經(jīng)過(guò)編碼的信息。3. 使用BASE64對(duì)加密碼后的信息進(jìn)行編碼。4. 使用一些頭定義對(duì)信息進(jìn)行封裝,主要包含了進(jìn)行正確解碼需要的信息,頭定義的格式形式如下:Proc-Type:4,ENCRYPTEDDEK-Info:cipher-name,ivec其中,第一個(gè)頭信息標(biāo)注了該文件是否進(jìn)行了加密,該頭信息可能的值包括E

13、NCRYPTED(信息已經(jīng)加密和簽名),MIC-ONLY(信息經(jīng)過(guò)數(shù)據(jù)簽名但沒(méi)有加密),MIC-CLEAR(信息經(jīng)過(guò)數(shù)字簽名但是沒(méi)有加密,也沒(méi)有進(jìn)行編碼,可使用非PEM格式閱讀),以及CLEAR;第二個(gè)頭信息標(biāo)注了加密的算法及對(duì)稱(chēng)加密塊算法使用的初始向量。5. 在這些信息的前面加上如下形式頭標(biāo)注信息:-BEGIN PRIVACY-ENHANCED MESSAGE-在這些信息的后面加上如下形尾標(biāo)注信息:-END PRIVACY-ENHANCED MESSAGE-OpenSSL的PEM編碼基本上是基于DER編碼之上的,也就是說(shuō),它在上述第一步采用的是DER編碼,所以,從本質(zhì)上來(lái)說(shuō),OpenSSL的

14、PEM編碼就是在DER編碼基礎(chǔ)上進(jìn)行BASE64編碼,然后添加一些頭尾信息組成的。二、證書(shū)標(biāo)準(zhǔn)        數(shù)據(jù)編碼格式提供了封裝數(shù)據(jù)的基本方法,但是,對(duì)于具體的數(shù)據(jù)對(duì)象,比如證書(shū),根據(jù)其包含的內(nèi)容的不同,還有更具體的表達(dá)式。        1、X.509證書(shū)        目前總的來(lái)說(shuō)有三種常用的證書(shū)編碼格式:X.509證書(shū)、PKCS#12證書(shū)和PKCS#7證書(shū)。X.509證書(shū)是最經(jīng)

15、常使用的證書(shū),它僅包含了公鑰信息而沒(méi)有私鑰信息,是可以公開(kāi)進(jìn)行發(fā)布的,所以X.509證書(shū)對(duì)象一般都不需要加密。        X.509證書(shū)的格式通常如下:                 相關(guān)的可讀解釋信息(省略)             

16、;    -BEGIN CERTIFICATE-                 PEM編碼的X.509證書(shū)內(nèi)容(省略)                 -END CERTIFICATE-     &

17、#160;           除了“-BEGIN CERTIFICATE-”和“-END CERTIFICATE-”頭尾格式外,還可能有這樣不同的標(biāo)識(shí)符:“-BEGIN X.509 CERTIFICATE-”、“-END X.509 CERTIFICATE-”或者“-BEGIN TRUSTED CERTIFICATE-”、“-END TRUSTED          CERTIFICATE-”  

18、;      在OpenSSL實(shí)際簽發(fā)的證書(shū)文件中最前面的很多可讀的證書(shū)明文解釋?zhuān)皇菫榱嗽黾幼C書(shū)文件的可讀性,并不代表真正的數(shù)據(jù)。在其他軟件中,比如Windows軟件,可能并不支持這些額外的明文信息,所以,先要將“-BEGIN CERTIFICATE-”之前的所有可讀信息去掉??梢允謩?dòng)刪除,也可以使用PEM到PEM的證書(shū)格式轉(zhuǎn)換去掉這些明文可讀信息。        在Windows平臺(tái),X.509證書(shū)文件的后綴名經(jīng)常是der、cer或者crt,都是可以被自動(dòng)識(shí)別的。對(duì)于Op

19、enSSL來(lái)說(shuō),后綴名是沒(méi)有實(shí)際意義的。      2、Netscape證書(shū)標(biāo)準(zhǔn)        Netscape提供了一種名為Netscap證書(shū)序列(Netscape Cerificate Sequence)的格式來(lái)封裝一系列證書(shū)(實(shí)際上里面采用了一個(gè)PKCS#7格式來(lái)封裝證書(shū))。以便能夠一次性地下載或者傳輸多個(gè)數(shù)字證書(shū)。所以,某些時(shí)候,Netscape證書(shū)序列可以替代PKCS#7的作用,用來(lái)打包一系列證書(shū)。     

20、0;  Netscape證書(shū)序列雖然不一定能夠得到微軟的支持,但是在其他一些開(kāi)源軟件和Linux軟件中卻得到了廣泛的支持。三、證書(shū)封裝        1、PKCS#12證書(shū)        PKCS#12 證書(shū)不同于X.509證書(shū),它可以包含一個(gè)或多個(gè)證書(shū),并且還可以包含證書(shū)對(duì)應(yīng)的私鑰。PKCS#12的私鑰是經(jīng)過(guò)加密的,密鑰由用戶(hù)提供的口令產(chǎn)生。所以,無(wú)論在使用PKCS#12證書(shū)的時(shí)候一般會(huì)要用用戶(hù)輸入密鑰口令。   

21、     PKCS#12證書(shū)文件在Windwos平臺(tái)和Mozzila中支持的后綴名是p12或者pfx,如果要在IE或者M(jìn)ozzila 中正確使用自己的證書(shū),那么一般來(lái)說(shuō)都要求轉(zhuǎn)換成包含公鑰和私鑰的PKCS#12證書(shū)忖入到相關(guān)軟件中。        2、PKCS#7        PKCS#7可以封裝一個(gè)或多個(gè)X.509證書(shū)或者PKCS#6證書(shū)(PKCS#6是一種證書(shū)格式,但是并不經(jīng)常使用)、相關(guān)證書(shū)鏈上的CA證書(shū),并

22、且可以包含CRL信息。PKCS#7不包含私鑰信息。PKCS#7可以將驗(yàn)證證書(shū)需要的整個(gè)證書(shū)上的證書(shū)都包含進(jìn)來(lái),從而方便證書(shū)的發(fā)布和正確使用。這樣就可以直接把PKCS#7證書(shū)發(fā)給驗(yàn)證方驗(yàn)證,免去了把以上的驗(yàn)證內(nèi)容一個(gè)一個(gè)發(fā)給接書(shū)方的煩瑣了。        PKCS#7文件在Windows平臺(tái)的合法后綴名是p7b。        3、PKCS#8        PKCS#8標(biāo)準(zhǔn)是一個(gè)非常簡(jiǎn)單

23、的標(biāo)準(zhǔn),它主要用于封裝私鑰和其他相關(guān)的屬性信息。一般來(lái)說(shuō),PKCS#8格式的私鑰都是被加密的,支持PKCS#5和PKCS#12標(biāo)準(zhǔn)定義的算法,當(dāng)然,私鑰也可以不加密。PKCS#8標(biāo)準(zhǔn)一方面可以增強(qiáng)私鑰的安全性,另一方面也為用戶(hù)提供了一種簡(jiǎn)單的確立信任關(guān)系的方式,這主要是基于私鑰特別名稱(chēng)和最高層可信者的權(quán)威公鑰等屬性信息。        OpenSSL提供的經(jīng)過(guò)PEM編碼的PKCS#8標(biāo)準(zhǔn)的文件,分為加密和非加密的兩種方式。加密的PKCS#8密鑰標(biāo)識(shí)如下:      

24、  BEGIN ENCRYPTED PRIVATE KEY        END ENCRYPTED PRIVATE KEY        非加密的PKCS#8密鑰標(biāo)識(shí)如下:        BEGIN PRIVATE KEY        END PRIVATE KEY 四、密鑰編碼 &#

25、160;      密鑰有多種形式的,很多情況下,需要把這些密鑰保存下來(lái)。通常使用PEM和DER兩種編碼方式對(duì)要保存的密鑰進(jìn)行編碼。        DER 編碼存儲(chǔ)的密鑰文件是不可讀的,如果用文本編輯器打開(kāi)它,將看到一些難以理解的符號(hào),因?yàn)檫@是一個(gè)二進(jìn)制編碼的文件。PEM則不一樣,它要友好得多,因?yàn)镻EM經(jīng)過(guò)BASE64編碼。用文本編輯器打開(kāi)PEM編碼的密鑰文件,可以看到跟證書(shū)類(lèi)似,它們真正的編碼都包含在類(lèi)似于:-BEGIN XXXXXX-和-END XXXXXX- 這樣的符

26、號(hào)對(duì)內(nèi)。        密鑰總的來(lái)說(shuō)有兩種,一種是可以公開(kāi)的(比如公開(kāi)密鑰對(duì)的公鑰),一種是不能公開(kāi)的(比如公開(kāi)密鑰對(duì)的私鑰)。反映在編碼上,有的密鑰文件需要加密,有的就不需要加密。一個(gè)經(jīng)過(guò)加密的PEM編碼密鑰文件在上述的符號(hào)內(nèi)會(huì)增加一些頭信息,這些頭信息主要是為密鑰解密的時(shí)候提供有用的信息,包括標(biāo)記密鑰加密狀態(tài)、使用加密算法及初始賂量(對(duì)于塊加密算法來(lái)說(shuō))。例如:-BEGIN RSA PRIVATE KEY-Proc-Type:4,ENCRYPTEDDEK-Info:DES-ED3-CBC,86B0167E005535D2

27、(加密內(nèi)容密鑰部分)-END RSA PRIVATE KEY-        以上的PEM編碼的是RSA(RSA PRIVATE KEY)私鑰,該密鑰經(jīng)過(guò)了加密(ENCRYPTED),使用的是3DES的CBC方式(DES-EDE3-CBC),使用的IV向量是“86B0167E005535D2”。五、其他標(biāo)準(zhǔn)        證書(shū)吊銷(xiāo)列表(CRL)是用戶(hù)驗(yàn)證證書(shū)的重要參考資料,它主要包含了無(wú)效的證書(shū)列表,告訴用戶(hù)哪些證書(shū)已經(jīng)吊銷(xiāo)或無(wú)效的。如果 沒(méi)有CRL,可以

28、選擇另一種驗(yàn)證方式,那就是使用在線(xiàn)證書(shū)服務(wù)協(xié)議(OCSP)。OCSP并不總是能夠使用,比如你的網(wǎng)絡(luò)有時(shí)候可能不能接通OCSP服務(wù)器。CRL 是一種相對(duì)方使用和獨(dú)立的解決方案,只要獲取了CA中心提供的在有效期內(nèi)的CRL,基本上就能對(duì)證書(shū)的有效性進(jìn)行驗(yàn)證。PEM格式編碼的CRL一般包含在一對(duì)符號(hào)內(nèi):“-BEGIN X.509 CRL-”和“-END X.509 CRL-”。也可以使用DER格式保存CRL。驗(yàn)證證書(shū)的過(guò)程證書(shū)的結(jié)構(gòu)中的關(guān)鍵內(nèi)容包括:序列號(hào)、公鑰、用戶(hù)名稱(chēng)、簽發(fā)者、CA簽名和其他一些附屬信息等。證書(shū)驗(yàn)證過(guò)程就是依賴(lài)于這信息和公鑰對(duì)應(yīng)的私鑰進(jìn)行。通常的證書(shū)驗(yàn)證過(guò)程包括以下要點(diǎn): 

29、;       1、確認(rèn)證書(shū)內(nèi)容是正確的和完整的,沒(méi)有被篡改,CA簽名是正確的;        2、確認(rèn)證書(shū)是有效的,在有效期內(nèi)并且沒(méi)有被吊銷(xiāo)(CRL中沒(méi)有該證書(shū)序列號(hào));        3、確認(rèn)CA證書(shū)是可以被信任的證書(shū),如果CA證書(shū)不是根證書(shū),還要繼續(xù)對(duì)CA證書(shū)進(jìn)行驗(yàn)證;        4、通過(guò)與用戶(hù)的交互,基于證書(shū)中的公鑰

30、和公開(kāi)密鑰算法確認(rèn)用戶(hù)的身份。       確認(rèn)用戶(hù)身份的過(guò)程是基于公開(kāi)密鑰算法的,基本過(guò)程如下:        1、被驗(yàn)證方發(fā)送自己的用戶(hù)證書(shū)給驗(yàn)證書(shū);        2、驗(yàn)證方提取證書(shū)中的公鑰,并產(chǎn)生一個(gè)隨機(jī)數(shù)Rp,使用該公鑰加密該隨機(jī)數(shù)得到加密的隨機(jī)數(shù)Re并發(fā)給被驗(yàn)證方;        3、被驗(yàn)證方使用自己的私鑰解密Re得

31、到Rep并發(fā)回給驗(yàn)證方;        4、驗(yàn)證方對(duì)比Rp和Rep,如果一致,則驗(yàn)證通過(guò),否則,驗(yàn)證不通過(guò)。      如果被驗(yàn)證方能夠正確解密使用該證書(shū)上的公鑰加密的信息,即可認(rèn)為被驗(yàn)證方確實(shí)是證書(shū)的持有人,也就可以確定其身份。      無(wú)論何種類(lèi)型的證書(shū),其驗(yàn)證過(guò)程都是基本一致的,當(dāng)然,根據(jù)具體的情況,其驗(yàn)證協(xié)議和要求提供的材料可能有一些區(qū)別。關(guān)于證書(shū)驗(yàn)證的有很多種情況。  

32、60;   OpenSSL提供了證書(shū)驗(yàn)證的一些指令,包括普通驗(yàn)證和一種標(biāo)準(zhǔn)的OCSP協(xié)議處理指令。加密模式 密碼學(xué)中的高級(jí)加密標(biāo)準(zhǔn)(Advanced Encryption Standard,AES),又稱(chēng)Rijndael加密法,是美國(guó)聯(lián)邦政府采用的一種區(qū)塊加密標(biāo)準(zhǔn)。        大多數(shù)密碼算法都是將明文切成固定長(zhǎng)度的多個(gè)塊,以塊為單位進(jìn)行加密,而不是逐個(gè)字節(jié)地加密數(shù)據(jù)。如果要加密超過(guò)塊大小的數(shù)據(jù),就需要涉及填充和鏈加密模式,文中提到的ECB和CBC等就是指鏈加密模式。不管什么樣的密碼算法,任何

33、時(shí)候當(dāng)同樣的明文塊從算法前端輸入,同樣的密文塊就從后端輸出。入侵者可以充分發(fā)掘這種特性來(lái)協(xié)助攻破密碼系統(tǒng)。下面舉個(gè)例子來(lái)說(shuō)明。下面這個(gè)表描述的是三個(gè)人的年終獎(jiǎng)金額度。  Alice  8000     Bob  12000                    Trudy     

34、0;                  3000        老板授權(quán)秘書(shū)MM整理好這張表后,秘書(shū)MM將其加密,然后提交給財(cái)務(wù)部門(mén)。為了清楚地描述問(wèn)題,這里假設(shè)這張表的每個(gè)字段都是64位,而且剛好秘書(shū)MM用的加密算法的加密塊長(zhǎng)度也是64位,那么加密結(jié)果可能就是像下面這個(gè)樣子:    As9d8912h3a98q 9SDJKVN

35、I    9d89821as89982mHSLkpanm    09djhASDFQWER78sdfHD,zx    0812UtWEQ23;X/;DSKg5p    78723G/CC;D;LFSDF/;LXPASh        /.,;ISOFIWERIIOC7kjJKJDFNSAn          

36、 假設(shè)在秘書(shū)MM發(fā)送這段密文之前,不巧讓Trudy看到了。盡管Trudy看不懂這個(gè)表的內(nèi)容,但是當(dāng)秘書(shū)MM抱怨就兩個(gè)字段的表為什么么要定死每個(gè)字段長(zhǎng)度為64位的時(shí)候,Trudy獲得了足夠的信息。她知道由于自己剛和老板吵過(guò)嘴,獎(jiǎng)金肯定沒(méi)有其它人高,于是她嘗試將這些密文塊的順序調(diào)整了一下,變成下面這個(gè)樣子:    As9d8912h3a98q 9SDJKVNI       0812UtWEQ23;X/;DSKg5p    09djhASDFQWER78sdfHD,zx 

37、   /.,;ISOFIWERIIOC7kjJKJDFNSAn    78723G/CC;D;LFSDF/;LXPASh    9d89821as89982mHSLkpanm               僅僅是調(diào)整一下密文塊的順序,財(cái)務(wù)部解密消息的時(shí)候完全察覺(jué)不到有任何異常。盡管Trudy還是不知道獎(jiǎng)金是多少,但是可以很有把握地相信自己的獎(jiǎng)金會(huì)比原來(lái)高。為了對(duì)抗這種問(wèn)題,需要采取某種加密

38、模式,需要把各個(gè)密文塊關(guān)聯(lián)起來(lái),使得密文任何一處有異常更改,都會(huì)導(dǎo)致整個(gè)密文作廢。常見(jiàn)的加密模式有以下這。               1) 電子密碼本(Electronic Code Book,ECB):                就上面講的有問(wèn)題的這種模式,每塊明文都對(duì)應(yīng)自己的密文塊,互不相

39、干。在 ECB 模式中,每塊明文都是獨(dú)立于其他塊加密的。雖然這樣做比較高效(可以并行執(zhí)行多個(gè)數(shù)據(jù)塊的加密),但這種方法有一個(gè)很大的問(wèn)題。例如,在 ECB 模式中,對(duì)相同明文塊的加密總是產(chǎn)生相同的密文塊,這為某些類(lèi)型的密碼分析攻擊打開(kāi)了方便之門(mén)。ECB 方式通常被認(rèn)為不適合保護(hù)敏感數(shù)據(jù)。 優(yōu)點(diǎn):1.簡(jiǎn)單;2.有利于并行計(jì)算;3.誤差不會(huì)被傳送;缺點(diǎn):1.不能隱藏明文的模式;2.可能對(duì)明文進(jìn)行主動(dòng)攻擊;              2) 密碼塊鏈接(Cipher

40、 Block Chaining,CBC):                在 CBC 模式中,文本塊是連續(xù)加密的,在加密當(dāng)前明文塊之前,用前一次塊加密的結(jié)果修改當(dāng)前明文塊。這個(gè)過(guò)程改進(jìn)了加密的一些特征(例如,相同的明文塊不會(huì)產(chǎn)生相同的密文塊),但是由于其加密過(guò)程是連續(xù)的,CBC 方式不支持加密的并行化。CBC 方式使用一個(gè)稱(chēng)作初始化向量(Initialization Vector,IV)的附加文本來(lái)開(kāi)始鏈接過(guò)程。IV 用于修改被加密的第一個(gè)明文塊

41、。         優(yōu)點(diǎn):    1.不容易主動(dòng)攻擊,安全性好于ECB,適合傳輸長(zhǎng)度長(zhǎng)的報(bào)文,是SSL、IPSec的標(biāo)準(zhǔn)。  缺點(diǎn):    1.不利于并行計(jì)算;    2.誤差傳遞;    3.需要初始化向量IV         3) 密碼反饋(Cipher Feedback,CFB):  

42、;              在 CFB 模式中,先加密前一個(gè)塊,然后將得到的結(jié)果與明文相結(jié)合產(chǎn)生當(dāng)前塊,從而有效地改變用于加密當(dāng)前塊的密鑰。這里密鑰的值是不斷變化的,這個(gè)過(guò)程與流加密類(lèi)似,但是性能則遠(yuǎn)不如流加密。與 CBC 方式一樣,這里要使用一個(gè)初始化向量作為加密過(guò)程的種子。    優(yōu)點(diǎn):1.隱藏了明文模式;2.分組密碼轉(zhuǎn)化為流模式;3.可以及時(shí)加密傳送小于分組的數(shù)據(jù);缺點(diǎn):1.不利于并行計(jì)算;2.誤差傳送:一個(gè)明文單元損

43、壞影響多個(gè)單元;3.唯一的IV;         4) 輸出反饋(Output Feedback,OFB):                在 OFB 方式中,使用一個(gè)種子或 IV 來(lái)開(kāi)始加密過(guò)程。加密種子后,將加密結(jié)果與明文塊結(jié)合產(chǎn)生密文。之后被加密的種子再度被加密,如此重復(fù)此過(guò)程,直到遍及全部明文。同樣,結(jié)果類(lèi)似于流加密。   

44、60;       優(yōu)點(diǎn):1.隱藏了明文模式;2.分組密碼轉(zhuǎn)化為流模式;3.可以及時(shí)加密傳送小于分組的數(shù)據(jù);缺點(diǎn):1.不利于并行計(jì)算;2.對(duì)明文的主動(dòng)攻擊是可能的;3.誤差傳送:一個(gè)明文單元損壞影響多個(gè)單元;        5) 流密碼模式:                用一個(gè)密鑰加密一個(gè)初始向量

45、生成一個(gè)輸出塊,然后用同樣的密鑰對(duì)這個(gè)輸出塊進(jìn)行加密以得到第二個(gè)輸出塊,再用同樣的密鑰對(duì)這個(gè)輸出塊進(jìn)行加密得到第三個(gè)輸出塊,以此類(lèi)推。所有這些塊的序列叫做密鑰流。逐塊輸出密鑰流時(shí),就逐塊與明文異或,輸出的就是密文。         6) 計(jì)數(shù)器模式:用一個(gè)密鑰加密一個(gè)初始向量生成輸出塊,然后將初始向量加1再用同樣的密鑰加密輸出第二個(gè)輸出塊,以此類(lèi)推。輸出的塊序列也是密鑰流,逐塊輸出密鑰流時(shí),就逐塊與明文異或,輸出的就是密文。       

46、;  7) CTS(密碼文本竊用模式):處理任何長(zhǎng)度的純文本并產(chǎn)生長(zhǎng)度與純文本長(zhǎng)度匹配的密碼文本。除了最后兩個(gè)純文本塊外,對(duì)于所有其他塊,此模式與CBC 模式的行為相同。 常見(jiàn)證書(shū)格式及相互轉(zhuǎn)換PKCS 全稱(chēng)是 Public-Key Cryptography Standards ,是由 RSA 實(shí)驗(yàn)室與其它安全系統(tǒng)開(kāi)發(fā)商為促進(jìn)公鑰密碼的發(fā)展而制訂的一系列標(biāo)準(zhǔn),PKCS 目前共發(fā)布過(guò) 15 個(gè)標(biāo)準(zhǔn)。 常用的有:PKCS#7 Cryptographic Message Syntax StandardPKCS#10 Certification Request StandardPKCS#12 Personal Information Exchange Syntax StandardX.509是常見(jiàn)通用的證書(shū)格式。所有的證書(shū)都符合為Public Key Infrastructure (PKI) 制定的 ITU-T X509 國(guó)際標(biāo)準(zhǔn)。PKCS#7 常用的后綴是: .P7B .P7C .SPCPKCS#12 常用的后綴有: .P12 .PFXX.509 DER 編碼(ASCII)的后綴是: .DER .CER .CRT

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論