證書(shū)基本結(jié)構(gòu)與編碼_第1頁(yè)
證書(shū)基本結(jié)構(gòu)與編碼_第2頁(yè)
證書(shū)基本結(jié)構(gòu)與編碼_第3頁(yè)
證書(shū)基本結(jié)構(gòu)與編碼_第4頁(yè)
證書(shū)基本結(jié)構(gòu)與編碼_第5頁(yè)
已閱讀5頁(yè),還剩26頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第四章證書(shū)根本結(jié)構(gòu)與編碼本節(jié)內(nèi)容證書(shū)根本結(jié)構(gòu)證書(shū)描述方法證書(shū)編碼證書(shū)根本結(jié)構(gòu)一張數(shù)字證書(shū)由證書(shū)內(nèi)容、簽名算法和簽名結(jié)果組成證書(shū)內(nèi)容簽名算法簽名結(jié)果證書(shū)的根本結(jié)構(gòu)證書(shū)根本結(jié)構(gòu)證書(shū)內(nèi)容包括版本號(hào)——為了更好的升級(jí)、擴(kuò)展證書(shū)主體Subject主體公鑰內(nèi)容簽發(fā)者Issuer序列號(hào)——證書(shū)唯一標(biāo)識(shí)有效期擴(kuò)展項(xiàng)。。。證書(shū)根本結(jié)構(gòu)證書(shū)實(shí)例證書(shū)根本結(jié)構(gòu)版本號(hào)數(shù)字證書(shū)有自己的格式,而這個(gè)格式可能會(huì)不斷改進(jìn)。為了讓所有應(yīng)用系統(tǒng)正確地識(shí)別證書(shū)內(nèi)容,需考慮向前和向后兼容。因此,在證書(shū)中標(biāo)明自己的格式版本有利于應(yīng)用程序根據(jù)不同的格式定義來(lái)正確閱讀不同的證書(shū)。證書(shū)主體證書(shū)的持有者〔訂戶〕不僅具有證書(shū)的使用權(quán),而且具有證書(shū)的所有權(quán)。不僅可以把證書(shū)復(fù)制或傳遞給別人,更重要的是,證書(shū)主體擁有證書(shū)中的身份、公鑰和對(duì)應(yīng)的私鑰。證書(shū)根本結(jié)構(gòu)主體公鑰信息PKI是算法無(wú)關(guān)的,實(shí)際中可以使用多種算法公鑰信息中首先需要指明所用的公鑰算法,隨后才是公鑰信息本身簽發(fā)者CA序列號(hào)證書(shū)編號(hào)如果簽發(fā)者命名能滿足唯一性要求的話,用“簽發(fā)者〞和“序列號(hào)〞就可以唯一的標(biāo)識(shí)任何一張數(shù)字證書(shū)。證書(shū)根本結(jié)構(gòu)有效期持有數(shù)字證書(shū)也就享有了證書(shū)簽發(fā)結(jié)構(gòu)通過(guò)證書(shū)提供的平安效勞,其中還包含著責(zé)任和一些法律義務(wù)。訂戶享受的效勞是有時(shí)效性的,因此,數(shù)字證書(shū)應(yīng)具有一個(gè)有效期。長(zhǎng)期使用同一密鑰是不平安的,而且證書(shū)持有者的信息經(jīng)過(guò)一段時(shí)間可能會(huì)改變,所以需要為證書(shū)設(shè)置一個(gè)包含起、止時(shí)間的“有效期〞。本質(zhì)上是CA負(fù)責(zé)維護(hù)證書(shū)狀態(tài)的時(shí)間范圍,在此時(shí)間內(nèi)CA擔(dān)保證書(shū)持有者和公鑰綁定關(guān)系的正確性。證書(shū)描述方法證書(shū)的描述需要使用精確的語(yǔ)言將內(nèi)容準(zhǔn)確的、無(wú)二義的表達(dá)出來(lái),以便PKI系統(tǒng)中的各個(gè)組件都能正確的處理證書(shū),各種應(yīng)用系統(tǒng)也能正確的從證書(shū)中獲取公鑰和持有者的信息。根本要求:簡(jiǎn)明的、無(wú)歧義的自然語(yǔ)言?多種語(yǔ)言同語(yǔ)種中一詞多義和一義多詞程序設(shè)計(jì)語(yǔ)言?有較嚴(yán)格的語(yǔ)法和較清晰的數(shù)據(jù)結(jié)構(gòu)表達(dá)方式但由于平臺(tái)相關(guān)的編譯器不同,同一數(shù)據(jù)類型在不同系統(tǒng)中的實(shí)現(xiàn)就可能有差異。程序語(yǔ)言在內(nèi)容的順序上也沒(méi)有嚴(yán)格規(guī)定。證書(shū)描述方法ASN.1語(yǔ)法記法標(biāo)準(zhǔn)AbstractSyntaxNotationone抽象語(yǔ)法表示法是描述數(shù)據(jù)的表示、編碼、傳輸、解碼的靈活的記法。它提供了一套正式、無(wú)歧義和精確的規(guī)那么以描述獨(dú)立于特定計(jì)算機(jī)硬件的對(duì)象結(jié)構(gòu)。ASN.1是ISO和ITU-T的聯(lián)合標(biāo)準(zhǔn),最初是1984年的CCITTX.409:1984的一局部。由于其廣泛應(yīng)用,1988年ASN.1移到獨(dú)立標(biāo)準(zhǔn)X.208,1995年進(jìn)行全面修訂后變成X.680系列標(biāo)準(zhǔn)。ASN.1本身只定義了表示信息的抽象句法,但是沒(méi)有限定其編碼的方法。證書(shū)描述方法ASN.1語(yǔ)法記法標(biāo)準(zhǔn)〔續(xù)〕簡(jiǎn)單類型BITSTRING比特串BOOLEAN布爾型INTEGER整數(shù)NULL空值OBJECTIDENTIFIER對(duì)象標(biāo)識(shí)符OCTETSTRING字節(jié)串PrintableString可打印字符串UTCTime“協(xié)調(diào)世界時(shí)”GeneralizedTime通用時(shí)間ASN.1中常用的簡(jiǎn)單數(shù)據(jù)類型證書(shū)描述方法ASN.1語(yǔ)法記法標(biāo)準(zhǔn)〔續(xù)〕構(gòu)造類型復(fù)雜事物可以視為簡(jiǎn)單的事物集合或序列。集合是順序無(wú)關(guān)的,而序列是順序有關(guān)的。構(gòu)造類型被用來(lái)描述復(fù)雜的事物,包括假設(shè)干字段〔簡(jiǎn)單類型或其他構(gòu)造類型〕。ASN.1定義了四種構(gòu)造方式,描述有序和無(wú)序的各種情況。證書(shū)描述方法ASN.1語(yǔ)法記法標(biāo)準(zhǔn)〔續(xù)〕構(gòu)造類型(1)SEQUENCE表示1個(gè)或多個(gè)字段組成的有序序列例如:ReportEntry::=SEQUENCE{authorOCTETSTRING,titleOCTETSTRING,bodyOCTETSTRING,biblioBookBibliography}用戶定義的類型名和標(biāo)識(shí)符大小寫(xiě)規(guī)定類型名首字母為大寫(xiě)的駝峰式,如“ReportEntry〞標(biāo)識(shí)符首字母為小寫(xiě)的駝峰式,如“biblioBook〞證書(shū)描述方法ASN.1語(yǔ)法記法標(biāo)準(zhǔn)〔續(xù)〕構(gòu)造類型(2)SEQUENCEOF表示0個(gè)或多個(gè)特定類型字段的有序序列例如:Report::=SEQUENCESIZE(100)OFReportEntryReport::=SEQUENCESIZE(MAX)OFReportEntry證書(shū)描述方法ASN.1語(yǔ)法記法標(biāo)準(zhǔn)〔續(xù)〕構(gòu)造類型(3)SET表示1個(gè)或多個(gè)字段組成的無(wú)序集合例如:Menu::=SET{ sandwichFood, cokeBeverage}證書(shū)描述方法ASN.1語(yǔ)法記法標(biāo)準(zhǔn)〔續(xù)〕構(gòu)造類型(4)SETOF表示0個(gè)或多個(gè)特定類型字段的無(wú)序集合例如:Class::=SETSIZE(50)OFStudent證書(shū)描述方法ASN.1語(yǔ)法記法標(biāo)準(zhǔn)〔續(xù)〕構(gòu)造類型基于各種構(gòu)造方式,將根本數(shù)據(jù)類型經(jīng)過(guò)層次嵌套,最終構(gòu)造出能描述任何抽象事物的數(shù)據(jù)結(jié)構(gòu)。例如:Bibliography::=SEQUENCE{ authorOCTETSTRING titleOCTETSTRING publisherOCTETSTRING yearOCTETSTRING}證書(shū)描述方法ASN.1語(yǔ)法記法標(biāo)準(zhǔn)〔續(xù)〕其他關(guān)鍵字CHOICEANYOPTIONALDEFAULT證書(shū)描述方法ASN.1語(yǔ)法記法標(biāo)準(zhǔn)〔續(xù)〕證書(shū)的描述實(shí)例最廣泛的證書(shū)格式是X.509v3標(biāo)準(zhǔn)。整體結(jié)構(gòu)X.509證書(shū)分為三大局部:證書(shū)內(nèi)容tbsCertificate簽名算法signatureAlgorithm簽名結(jié)果signatureValue使用ASN.1語(yǔ)法描述如下:Certificate::=SEQUENCE{ tbsCertificateTBSCertificate signatureaAlgorithmAlgorithmIdentifier signatureValueBITSTRING}證書(shū)描述方法ASN.1語(yǔ)法記法標(biāo)準(zhǔn)〔續(xù)〕證書(shū)的描述實(shí)例其中,簽名算法〔signatureAlgorithm〕為CA對(duì)tbsCertificate進(jìn)行簽名所使用的算法;類型為AlgorithmIdentifier,其ASN.1語(yǔ)法描述如下: AlgorithmIdentifier::=SEQUENCE{ algorithmOBJECTIDENTIFIER, parametersANYDEFINEDBYalgorithmOPTIONAL }algorithm同時(shí)說(shuō)明了雜湊函數(shù)和數(shù)字簽名算法,常見(jiàn)的有:MD5withRSAEncryption,OID為SHAwithRSAEncryption,OID為簽名結(jié)果〔signatureValue〕是CA對(duì)tbsCertificate進(jìn)行簽名的結(jié)果,類型為BITSTRING。證書(shū)描述方法ASN.1語(yǔ)法記法標(biāo)準(zhǔn)〔續(xù)〕證書(shū)的描述實(shí)例證書(shū)內(nèi)容〔tbsCertificate〕是需要被CA簽名的消息,ASN.1描述如下:

TBSCertificate::=SEQUENCE{ version [0]EXPLICITVersionDEFAULTv1, serialNumberCertificateSerialNumber, signatureAlgorithmIdentifier, issuerName, validityValidity, subjectName, subjectPublicKeyInfoSubjectPublicKeyInfo, issuerUniqueID[1]IMPLICITUniqueIentifierOPTIONAL, subjectUniqueID[2]IMPLICITUniqueIentifierOPTIONAL, extensions[3]EXPLICITExtensionsOPTIONAL}證書(shū)編碼利用ASN.1可以準(zhǔn)確地定義證書(shū)應(yīng)該包含的內(nèi)容。即ASN.1可以定義證書(shū)應(yīng)該包含的內(nèi)容的準(zhǔn)確類型。無(wú)二義性的內(nèi)容類型的實(shí)際取值發(fā)送或存儲(chǔ)內(nèi)容的編碼問(wèn)題可以說(shuō)ASN.1解決的是高層設(shè)計(jì)者之間的交流問(wèn)題,編碼方法要解決的是機(jī)器間的交流問(wèn)題。編碼的作用就是將各種用ASN.1定義的數(shù)據(jù)類型的值對(duì)應(yīng)到比特流,以便在不同通信實(shí)體之間傳遞,而且使得各通信實(shí)體對(duì)于所傳遞的信息理解沒(méi)有歧義?!癟LV〞方式可以完整表示特定類型的數(shù)據(jù)類型type、長(zhǎng)度length和值value解碼時(shí),首先識(shí)別數(shù)據(jù)的類型,即可選定處理的方法;然后得到數(shù)據(jù)的長(zhǎng)度,即可進(jìn)行處理的準(zhǔn)備工作;最后就可以正確的得到數(shù)據(jù)本身的值。證書(shū)編碼“TLV〞方式的編碼很多,如BasicEncodingRules〔BER〕和DistinguishedEncodingRules〔DER〕等編碼需要處理的問(wèn)題包括各種簡(jiǎn)單數(shù)據(jù)類型的編碼規(guī)那么各種數(shù)據(jù)類型構(gòu)造方式的編碼規(guī)那么證書(shū)編碼簡(jiǎn)單類型的編碼ASN.1類型名稱Type值A(chǔ)SN.1類型名稱Type值BOOLEAN01OBJECTIDENTIFIER06INTEGER02PrintableString13BITSTRING03UTCTime17OCTETSTRING04GeneralizedTime18NULL05常用簡(jiǎn)單類型的Type值〔十六進(jìn)制〕證書(shū)編碼簡(jiǎn)單類型編碼實(shí)例BOOLEAN兩種可能取值:TRUE和FALSE在DER編碼中,Type=01,Length=01,編碼為

TLVTRUE0101FFFALSE010100證書(shū)編碼簡(jiǎn)單類型編碼實(shí)例〔續(xù)〕INTEGER整數(shù)類型5337的DER編碼為 TLV020214D9如果整數(shù)非常大,比方256字節(jié)020100123456……如何解釋??證書(shū)編碼簡(jiǎn)單類型編碼實(shí)例〔續(xù)〕INTEGER整數(shù)類型長(zhǎng)度編碼機(jī)制如果數(shù)據(jù)本身長(zhǎng)度不大于127〔即0x7F〕,稱為“短形式〞,Length占1個(gè)字節(jié),直接將長(zhǎng)度值賦給Length。如果數(shù)據(jù)本身長(zhǎng)度大于127,稱為“長(zhǎng)形式〞,把數(shù)據(jù)的長(zhǎng)度L表示為字節(jié)碼,計(jì)算其長(zhǎng)度n,然后把n與0x80“位或〞〔BIT-OR〕運(yùn)算的結(jié)果賦給Length的第一個(gè)字節(jié)。證書(shū)編碼整數(shù)編碼實(shí)例:0x123456編碼為 TLV 02031234560x1234…34〔長(zhǎng)0100字節(jié)〕即n=2,編碼為 TLV 028201001234…340x1234…EF〔長(zhǎng)123456字節(jié)〕即n=3,編碼為 TLV 02831234561234…EF證書(shū)編碼構(gòu)造類型數(shù)據(jù)的編碼序列構(gòu)造類型SEQUENCE和SEQUENCEOF的Type相同,都是30,Value局部為序列內(nèi)所有工程的編碼的依次排列,Length為這些工程編碼的總長(zhǎng)度。temperatureCapturedSEQUENCE(7)OFINTEGER::={21,15,5,2,5,10,5}DER編碼為TLVTLV301502011502010F02010502010202010502010A020105證書(shū)編碼構(gòu)造類型數(shù)據(jù)的編碼(續(xù))集合構(gòu)造類型SET和SETOF的Type相同,都是31,Value局部為集合內(nèi)所有工程的編碼,Length為這些工程編碼的總長(zhǎng)度。需注意:集合構(gòu)造類型中的各字段是并列的,邏輯上不分先后,但為了編碼的唯一性,在DER編碼中,編碼的排列是有一定順序的。SET按標(biāo)簽的順序排列,SETOF按“字典升序〞排列,即將各工程的DER結(jié)果看作字節(jié)碼從小到大排列。temperatureCapturedSET(7)OF

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論