9.2 標識撤銷列表數據格式
9.2 標識撤銷列表數據格式
9.2.1 綜述
本標準采用GB/T 16262-2006系列標準的特定編碼規則(DER)對下列標識撤銷列表項中的各項信息進行編碼,組成特定的標識撤銷列表數據結構。ASN.1 DER 編碼是關于每個元素的標識、長度和值的編碼系統。
9.2.2 IRL的數據結構
IRL數據結構的ASN.1描述如下:
IdentityList ::= SEQUENCE {
tbsIdentityList TBSIdentityList,
signatureAlgorithm AlgorithmIdentifier,
signatureValue BIT STRING
}
TBSIdentityList::= SEQUENCE {
version Version OPTIONAL,
signature AlgorithmIdentifier,
issuer Name,
thisUpdate Time,
nextUpdate Time OPTIONAL,
revokedIdentities SEQUENCE OF SEQUENCE {
userIdentity IdentitySerialNumber,
revocationDate Time,
irlEntryExtensions Extensions OPTIONAL
} OPTIONAL,
irlExtensions [0] EXPLICIT Extensions OPTIONAL
}
上述的IRL數據結構由tbsIdentityList、signatureAlgorithm和signatureValue三個域構成。這些域的含義如下:
— tbsIdentityList域包含了主體名稱和頒發者名稱、頒發日期、撤銷的標識信息和IRL的擴展信息。
— signatureAlgorithm域包含標識機構簽發該IRL所使用的算法標識符。一個算法標識符的ASN.1結構如下:
AlgorithmIdentifier ::= SEQUENCE
{
algorithm OBJECT IDENTIFIER,
parameters ANY DEFINED BY algorithm OPTIONAL
}
算法標識符用來標識一個密碼算法,其中的OBJECT IDENTIFIER 部分標識了具體的算法。其中可選參數的內容完全依賴于所標識的算法。該域的算法標識符應與tbsIdentityList中的signature標識的簽名算法項相同。此處簽名算法定義為SM2算法, SM2算法簽名以及數據格式遵循GM/T 0003-2012的定義。
9.2.3 TBSIdentityList及其數據結構
9.2.3.1 綜述
TBSIdentityList主要包含了版本號、頒發者、生效日期、下次更新日期、簽名算法、簽發機構密鑰標識符、撤銷的標識信息。有些TBSIdentityList還可以包含可選的擴展項。本條的下述段落描述這些項的語法和語義。
9.2.3.2 版本 version
本可選項描述了編碼IRL的版本號。如果使用了Extensions 項,則此項應存在,且其值應是version 2(用整數1表示)。
9.2.3.3 簽名算法 signature
本項包含標識機構簽發該IRL所使用的密碼算法的標識符,這個算法標識符應與IdentityList 中signatureAlgorithm項的算法標識符相同。使用國家密碼管理主管部門審核批準的相關算法,此處為SM3WithSM2Encryption。
9.2.3.4 頒發者 issuer
本項描述了簽名和頒發IRL的實體。它應包含一個非空的甄別名稱(DN-distinguished name)。該項被定義為Name類型。
9.2.3.5 生效日期 thisUpdate
本項標明了IRL的頒發日期,使用UTCTime or GeneralizedTime編碼。
遵循本標準的IRL頒發者在2049年之前(包括2049年)應將該時間編碼為UTCTime類型,在2050年之后,編碼為GeneralizedTime類型。
UTCTime的編碼規則同9.1.3.6.3 。
9.2.3.6 下次更新日期 nextUpdate
本項標明了下一次IRL將要發布的時間。下一次IRL可以在此時間前簽發,但不能晚于此時間簽發。使用UTCTime or GeneralizedTime編碼。
遵循本標準的IRL頒發者應在簽發的IRL中包含nextUpdate項。
遵循本標準的IRL頒發者在2049年之前(包括2049年)應將該時間編碼為UTCTime類型,在2050年之后,編碼為GeneralizedTime類型。
UTCTime的編碼規則同9.1.3.6.3 。
9.2.3.7 被撤銷的列表 Revoked Identities
該域標明被撤銷的可信標識序列號、撤銷時間和撤銷原因。
9.2.3.8 擴展項 irlExtensions
該域只可在version 2出現。如果出現,此項由一個或多個IRL擴展的序列組成。
9.2.4 IRL擴展項及其數據結構
9.2.4.1 頒發機構密鑰標識符 authorityKeyIdentifier
頒發機構密鑰標識符擴展提供了一種方式,以識別與IRL簽名私鑰相應的公鑰。當頒發者由于有多個密鑰共存或由于發生變化而具有多個簽名密鑰時使用該擴展。識別可基于頒發者的主體密鑰標識符或基于頒發者的名稱和序列號。
9.2.4.2 頒發者替換名稱 issuerAltName
本項包含一個或多個替換名稱(可使用多種名稱形式中的任一個),以供IRL頒發者使用。
9.2.4.3 標識撤銷列表號 irlNumber
標識撤銷列表號是一個非關鍵的IRL擴展,表示在給定的IRL頒發者和IRL范圍內一個單調遞增序列。這個擴展可以讓用戶方便地確定一個特定的IRL何時取代另一個IRL。標識撤銷列表號也支持鑒別一個附件的完整IRL和增量IRL。
如果IRL頒發者在一個特定范圍內除了生成完整IRL外,還生成增量IRL,完整IRL和增量IRL應共享同一個編號序列。如果完整IRL和增量IRL在同一時間頒發,它們應使用相同的標識撤銷列表號,并提供相同的撤銷信息。
如果IRL頒發者在一個特定范圍內的不同時間生成兩個IRL(兩個完整IRL,兩個增量IRL,或者一個完整IRL和一個增量IRL),這兩IRL不能使用相同的標識撤銷列表號。也就是說,如果兩個IRL的thisUpdate域不同,標識撤銷列表號應不同。
IRL號可以使用長整數。IRL驗證者應能夠處理20字節的標識撤銷列表號。遵循本標準的IRL頒發者不使用大于20字節的標識撤銷列表號。
id-ce-iRLNumber OBJECT IDENTIFIER ::= { id-ce 20 }
9.2.4.4 增量標識撤銷列表指示 Delta IRL Indicator
增量標識撤銷列表指示是一個關鍵IRL擴展,表明一個IRL是增量IRL。增量IRL包含上次發布之后的撤銷信息,而不是將所有的撤銷信息包含在一個完整IRL里。在一些環境里使用增量IRL可以顯著減少網絡流量和處理時間。
增量標識撤銷列表指示擴展包含一個類型為BaseIRLNumber的單一值。標識撤銷列表號標識了此增量IRL使用的起始IRL。遵循本標準的IRL頒發者應將參考基準IRL頒發為完整IRL。增量IRL包含所有的更新撤銷狀態。增量IRL和參考基準IRL的組合與完整IRL是等效的。
當遵循本標準的IRL頒發者生成增量IRL,此增量IRL應包含一個關鍵的增量標識撤銷列表指示擴展項。
id-ce-deltaIRLIndicator OBJECT IDENTIFIER ::= { id-ce 27 }
9.2.4.5 頒發分發點 Issuing Distribution Point
頒發分發點是一個關鍵IRL擴展,表明一個特定IRL的分發點和范圍,還表明這個IRL是否只包含了標識的撤銷或者一系列的原因代碼。
id-ce-issuingDistributionPoint OBJECT IDENTIFIER ::= { id-ce 28 }
IssuingDistributionPoint ::= SEQUENCE {
distributionPoint [0] DistributionPointName OPTIONAL,
onlyContainsUserIdentities [1] BOOLEAN DEFAULT FALSE,
onlySomeReasons [3] ReasonFlags OPTIONAL,
9.2.4.6 最新標識撤銷列表 Freshest IRL
最新標識撤銷列表擴展項表明完整IRL的增量IRL信息如何獲取。遵循本標準的IRL頒發者應將此項標識成非關鍵。此項不在增量IRL中出現。
最新標識撤銷列表擴展項的格式和數字標識的IRLDistributionPoints擴展項相同。但是,該最新標識撤銷列表擴展項中分發點域是有意義的;同時Reasons和IRLIssuer域應略去。
id-ce-freshestIRL OBJECT IDENTIFIER ::= { id-ce 46 }
9.2.4.7 標識撤銷列表條目 IRL Entry
9.2.4.7.1 原因代碼 Reason Code
原因代碼為非關鍵擴展,表明標識撤銷的原因。
代碼removeFromIRL (8)只用于增量IRL。其它代碼可以用于任意IRL。
id-ce-IRLReasons OBJECT IDENTIFIER ::= { id-ce 21 }
– reasonCode ::= { IRLReason }
IRLReason ::= ENUMERATED {
unspecified (0),
keyCompromise (1),
cACompromise (2),
affiliationChanged (3),
superseded (4),
cessationOfOperation (5),
IdentityHold (6),
– 7 不使用
removeFromIRL (8),
privilegeWithdrawn (9),
9.2.4.7.2 撤銷時間 Invalidity Date
撤銷時間是個非關鍵擴展,表明標識失效的時間。
該域包含的GeneralizedTime應使用格林威治標準時間,應按照9.1.3.6.4 的要求表示。
id-ce-invalidityDate OBJECT IDENTIFIER ::= { id-ce 24 }
9.2.4.7.3 標識頒發者 Identity Issuer
如果存在,標識頒發者擴展包含一個或多個和IRL條目對應的,從標識的頒發者域和/或頒發者替換名稱域得到的名字。
id-ce-identityIssuer OBJECT IDENTIFIER ::= { id-ce 29 }
GB/T 35287-2017 信息安全技術 網站可信標識技術指南
推薦文章: