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

下載本文檔

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

文檔簡介

數(shù)字證書的結(jié)構(gòu)、描述與編碼前言

計算機和網(wǎng)絡(luò)技術(shù)的發(fā)展將人類帶入信息化社會,隨之而來的是倍受關(guān)注的信息安全問題?,F(xiàn)代密碼學(xué)己成為信息安全技術(shù)的核心,基于數(shù)字簽名的數(shù)字證書是現(xiàn)代密碼學(xué)主要研究的內(nèi)容之一。數(shù)字證書技術(shù)在身份識別和認證、數(shù)據(jù)完整性、抗抵賴等方面具有其他技術(shù)所無法替代的作用,它在軍事、電子商務(wù)和電子政務(wù)等領(lǐng)域有著極廣泛的應(yīng)用。

數(shù)字證書在信息傳輸中起著驗證用戶身份,保證信息傳遞的安全性、合法性和完整性等作用,它在公鑰基礎(chǔ)設(shè)施中是重要的一環(huán)。應(yīng)用第三方軟件對數(shù)字證書解析存在著安全性無法徹底保障,證信息分析不徹底等諸多問題,因此對數(shù)字證書的驗證過程的研究分析,實現(xiàn)數(shù)字證書驗證代碼的完全自主開發(fā),為保證信息傳輸安全,建立有效的公鑰基礎(chǔ)設(shè)施起了重要的作用。

本篇的目的是對數(shù)字證書進行詳盡的分析,包括數(shù)字證書的基本結(jié)構(gòu)、描述方法、編碼以及X.509數(shù)字證書實例等。主要內(nèi)容數(shù)字證書的基本結(jié)構(gòu)數(shù)字證書的描述方法數(shù)字證書的編碼X.509數(shù)字證書結(jié)構(gòu)X.509數(shù)字證書詳細描述X.509數(shù)字證書實例數(shù)字證書的基本結(jié)構(gòu)一張數(shù)字證書由證書內(nèi)容、簽名算法和簽名結(jié)果組成證書內(nèi)容簽名算法簽名結(jié)果證書的基本結(jié)構(gòu)數(shù)字證書的基本結(jié)構(gòu)證書實例:在Internet選項-內(nèi)容數(shù)字證書的基本結(jié)構(gòu)證書內(nèi)容包括:

版本號

證書主體

主體公鑰內(nèi)容

簽發(fā)者

序列號

有效期

擴展項數(shù)字證書的基本結(jié)構(gòu)

版本號

數(shù)字證書有自己的格式,而這個格式可能會不斷改進。為了讓所有應(yīng)用系統(tǒng)正確地識別證書內(nèi)容,需考慮向前和向后兼容。因此,在證書中標明自己的格式版本有利于應(yīng)用程序根據(jù)不同的格式定義來正確閱讀不同的證書。

證書主體1)證書的持有者(訂戶)2)不僅具有證書的使用權(quán),而且具有證書的所有權(quán)3)不僅可以把證書復(fù)制或傳遞給別人,更重要的是,證書主體擁有證書中的身份、公鑰和對應(yīng)的私鑰

主體公鑰內(nèi)容1)PKI是算法無關(guān)的,實際中可以使用多種算法2)公鑰信息中首先需要指明所用的公鑰算法,隨后才是公鑰信息本身

簽發(fā)者證書管理機構(gòu)------CA注:CA是PKI系統(tǒng)中通信雙方都信任的實體,被稱為可信第三方(TrustedThirdParty,簡稱TTP)數(shù)字證書的基本結(jié)構(gòu)

序列號1)證書編號2)如果簽發(fā)者命名能滿足唯一性要求的話,用“簽發(fā)者”和“序列號”就可以唯一的標識任何一張數(shù)字證書

有效期

1)持有數(shù)字證書也就享有了證書簽發(fā)結(jié)構(gòu)通過證書提供的安全服務(wù),其中還包含著責(zé)任和一些法律義務(wù)

2)訂戶享受的服務(wù)是有時效性的,因此,數(shù)字證書應(yīng)具有一個有效期。

3)長期使用同一密鑰是不安全的,而且證書持有者的信息經(jīng)過一段時間可能會改變,所以需要為證書設(shè)置一個包含起、止時間的“有效期”。

4)本質(zhì)上是CA負責(zé)維護證書狀態(tài)的時間范圍,在此時間內(nèi)CA擔(dān)保證書持有者和公鑰綁定關(guān)系的正確性

擴展項

提供為用戶或者公開密鑰和證書管理等級制度相結(jié)合的附加屬性的方法數(shù)字證書的描述方法

證書的描述需要使用精確的語言將內(nèi)容準確的、無二義的表達出來,以便PKI系統(tǒng)中的各個組件都能正確的處理證書,各種應(yīng)用系統(tǒng)也能正確的從證書中獲取公鑰和持有者的信息?;疽?/p>

1)簡明的2)無歧義

自然語言和程序設(shè)計語言無法滿足要求

1)自然語言

a.多種語言

b.同語種中一詞多義和一義多詞

2)程序設(shè)計語言

a.有較嚴格的語法和較清晰的數(shù)據(jù)結(jié)構(gòu)表達方式

b.但由于平臺相關(guān)的編譯器不同,同一數(shù)據(jù)類型在不同系統(tǒng)中的實現(xiàn)就可能有差異。程序語言在內(nèi)容的順序上也沒有嚴格規(guī)定。

ASN.1(AbstractSyntaxNotationone)抽象語法表示法可以滿足要求ASN.1語法紀法標準是一種既簡單,又沒有歧義的內(nèi)容描述語言。數(shù)字證書的描述方法

ASN.1語法記法標準

1)AbstractSyntaxNotationone抽象語法表示法

2)是描述數(shù)據(jù)的表示、編碼、傳輸、解碼的靈活的記法。它提供了一套正式、無歧義和精確的規(guī)則以描述獨立于特定計算機硬件的對象結(jié)構(gòu)。

3)ASN.1是ISO和ITU-T的聯(lián)合標準,最初是1984年的CCITTX.409:1984的一部分。由于其廣泛應(yīng)用,1988年ASN.1移到獨立標準X.208,1995年進行全面修訂后變成X.680系列標準。

4)ASN.1本身只定義了表示信息的抽象句法,但是沒有限定其編碼的方法。ASN.1首先定義一定數(shù)量的“簡單類型”,然后通過構(gòu)造出各種較復(fù)雜的“構(gòu)造類型”

1)簡單類型

2)構(gòu)造類型

3)其它關(guān)鍵字數(shù)字證書的描述方法簡單類型BITSTRING比特串(O和1組成)BOOLEAN布爾型(取TRUE或FALSE)INTEGER整數(shù)NULL空值OBJECTIDENTIFIER對象標識符OCTETSTRING字節(jié)串PrintableString可打印字符串UTCTime“協(xié)調(diào)世界時”(UTC)GeneralizedTime通用時間數(shù)字證書的描述方法構(gòu)造類型SEQUENCE表示1個或多個字段組成的有序序列SEQUENCEOF表示0個或多個特定類型字段的有序序列SET表示1個或多個字段組成的無序集合SETOF表示0個或多個特定類型字段的無序集合其它關(guān)鍵字CHOICEANYOPTIONALDEFAULT數(shù)字證書的編碼

利用ASN.1可以準確地定義證書應(yīng)該包含的內(nèi)容。即ASN.1可以定義證書應(yīng)該包含的內(nèi)容的準確類型。

無二義性的內(nèi)容類型的實際取值

可以說ASN.1解決的是高層設(shè)計者之間的交流問題,編碼方法要解決的是機器間的交流問題。

編碼的作用就是將各種用ASN.1定義的數(shù)據(jù)類型的值對應(yīng)到比特流,以便在不同通信實體之間傳遞,而且使得各通信實體對于所傳遞的信息理解沒有歧義。1)“TLV”方式可以完整表示特定類型的數(shù)據(jù)2)類型type、長度length和值value3)解碼時,首先識別數(shù)據(jù)的類型,即可選定處理的方法;然后得到數(shù)據(jù)的長度,即可進行處理的準備工作;最后就可以正確的得到數(shù)據(jù)本身的值。數(shù)字證書的編碼簡單類型的編碼BOOLEAN布爾型的數(shù)據(jù),只有兩種可能的取值“TRUE”(0xFF)和“FALSE”(0x00)INTEGER整數(shù)類型BITSTRINGOCTETSTRING字符碼串NULL一個特殊的值,表示“無”或“空”O(jiān)BJECTIDENTIFIER對象標識符OIDPrintableString任意長度的ASCII字符串UTCTime協(xié)調(diào)世界時GeneralizedTime類似UTCTime數(shù)字證書的編碼構(gòu)造類型及其他SEQUENCE表示1個或多個字段組成的有序序列SEQUENCEOF表示0個或多個特定類型字段的有序序列SET表示1個或多個字段組成的無序集合SET

OF表示0個或多個特定類型字段的無序集合CHOICEOPTIONALANYDEFAULTX.509數(shù)字證書結(jié)構(gòu)X.509數(shù)字證書結(jié)構(gòu)的基本部分

版本號

標識證書的版本序列號標識證書的唯一整數(shù),由證書頒發(fā)者分配的本證書的唯一標識符。簽名用于簽證書的算法標識,由對象標識符加上相關(guān)的參數(shù)組成,用于說明本證書所用的數(shù)字簽名算法。例如,SHA-1和RSA的對象標識符就用來說明該數(shù)字簽名是利用RSA對SHA-1雜湊加密。頒發(fā)者證書頒發(fā)者的可識別名(DN)。有效期

證書有效期的時間段。本字段由”NotBefore”和”NotAfter”兩項組成,它們分別由UTC時間或一般的時間表示(在RFC2459中有詳細的時間表示規(guī)則)。主體

證書擁有者的可識別名,這個字段必須是非空的,除非你在證書擴展中有別名。主體公鑰信息主體的公鑰(以及算法標識符)。頒發(fā)者唯一標識符

標識符—證書頒發(fā)者的唯一標識符主體唯一標識符

證書擁有者的唯一標識符X.509數(shù)字證書結(jié)構(gòu)X.509數(shù)字證書結(jié)構(gòu)的擴展部分

發(fā)行者密鑰標識符

證書所含密鑰的唯一標識符,用來區(qū)分同一證書擁有者的多對密鑰。密鑰使用

一個比特串,指明(限定)證書的公鑰可以完成的功能或服務(wù),如:證書簽名、數(shù)據(jù)加密等。如果某一證書將KeyUsage擴展標記為“極重要”,而且設(shè)置為“keyCertSign”,則在SSL通信期間該證書出現(xiàn)時將被拒絕,因為該證書擴展表示相關(guān)私鑰應(yīng)只用于簽寫證書,而不應(yīng)該用于SSL。CRL分布點指明CRL的分布地點私鑰的使用期指明證書中與公鑰相聯(lián)系的私鑰的使用期限,它也有NotBefore和NotAfter組成。若此項不存在時,公私鑰的使用期是一樣的證書策略

由對象標識符和限定符組成,這些對象標識符說明證書的頒發(fā)和使用策略有關(guān)策略映射

表明兩個CA域之間的一個或多個策略對象標識符的等價關(guān)系,僅在CA證書里存在主體別名指出證書擁有者的別名,如電子郵件地址、IP地址等,別名是和DN綁定在一起的頒發(fā)者別名

指出證書頒發(fā)者的別名,如電子郵件地址、IP地址等,但頒發(fā)者的DN必須出現(xiàn)在證書的頒發(fā)者字段主體目錄屬性

指出證書擁有者的一系列屬性??梢允褂眠@一項來傳遞訪問控制信息。X.509證書詳細描述Certificate

::=

SEQUENCE

{tbsCertificate

TBSCertificate,signatureAlgorithm

AlgorithmIdentifier,signatureValue

BITSTRING}TBSCertificate

::=

SEQUENCE

{version

[0]

EXPLICITVersionDEFAULTv1,serialNumber

CertificateSerialNumber,signature

AlgorithmIdentifier,issuer

Name,

validity

Validity,

subject

Name,

subjectPublicKeyInfoSubjectPublicKeyInfo,issuerUniqueID

[1]

IMPLICITUniqueIdentifierOPTIONAL,subjectUniqueID[2]

IMPLICITUniqueIdentifierOPTIONAL,extensions

[3]

EXPLICITExtensionsOPTIONAL}Version

::=

INTEGER

{

v1(0),v2(1),v3(2)

}CertificateSerialNumber

::=

INTEGERAlgorithmIdentifier

::=

SEQUENCE

{algorithm

OBJECTIDENTIFIER,parameters

ANYDEFINEDBYalgorithmOPTIONAL

}證書全部內(nèi)容開始,結(jié)構(gòu)化不定長編碼證書主體證書簽名算法標識證書簽名值(注1)證書版本號證書序列號(注2)證書簽名算法標識證書發(fā)行者名稱證書有效期證書主體名稱證書公鑰證書發(fā)行者ID(可選),只在證書版本2、3中才有證書主體ID(可選),只在證書版本2、3中才有證書擴展段(可選),只在證書版本3中才有注1:證書簽名值,是使用signatureAlgorithm部分指定的簽名算法對tbsCertificate證書主題部分簽名后的值注2:證書序列號,對同一CA所頒發(fā)的證書,序列號唯一標識證書X.509證書詳細描述Parameters:Dss-Parms

::=

SEQUENCE

{p

INTEGER,q

INTEGER,g

INTEGER

}SignatureValue:Dss-Sig-Value

::=

SEQUENCE

{

r

INTEGER,

s

INTEGER

}Name::=CHOICE{

RDNSequence}RDNSequence::=SEQUENCEOFRelativeDistinguishedNameRelativeDistinguishedName::=SETOFAttributeTypeAndValueAttributeTypeAndValue::=SEQUENCE{type

AttributeType,value

AttributeValue}AttributeType::=OBJECTIDENTIFIERAttributeValue::=ANYDEFINEDBYAttributeType

parameters,DSA(DSS)算法時的parameters,RSA算法沒有此參數(shù)sha1DSA簽名算法時,簽名值X.509證書詳細描述Validity::=SEQUENCE{

溫馨提示

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

評論

0/150

提交評論