9.1 可信標識對象數據格式
9.1 可信標識對象數據格式
9.1.1 綜述
本標準采用GB/T 16262-2006定義的編碼規則對網站可信標識中的各項信息進行編碼,組成特定的網站可信標識數據結構。ASN.1 DER 編碼是關于每個元素的標識、長度和值的編碼系統。
9.1.2 可信標識的數據結構
可信標識數據結構的ASN.1描述如下:
SiteID ::= SEQUENCE {
tbsSiteID TBSSiteID,
signatureAlgorithm AlgorithmIdentifier,
signatureValue BIT STRING
}
TBSSiteID ::= SEQUENCE {
version [0] EXPLICIT Version OPTIONAL DEFAUT v1,
serialNumber [1] EXPLICIT SiteIDSerialNumber,
issuer UTF8String,
level [2] EXPLICIT Level,
validity [3] EXPLICIT Validity,
siteName UTF8String,
siteAlias UTF8String, OPTIONAL
siteHome UTF8String, OPTIONAL
sealInfo UTF8String,
siteOwner UTF8String,
ownerType UTF8String,
siteDomains [5] EXPLICIT SiteDomains,
siteAddress [6] EXPLICIT SiteAddress,
extensions [7] EXPLICIT Extensions OPTIONAL 擴展項
}
Version ::= INTEGER { v1(0) }
SiteIDSerialNumber ::= INTEGER
Level::= INTEGER {1,2,3,4,5}
Validity ::= SEQUENCE {
notBefore Time,
notAfter Time
}
Time ::= CHOICE {
utcTime UTCTime,
generalTime GeneralizedTime
}
SiteDomains ::= SEQUENCE OF UTF8String
SiteAddress ::= SEQUENCE OF UTF8String
Extensions ::= SEQUENCE SIZE (1..MAX) OF Extension
Extension ::= SEQUENCE {
extnID OBJECT IDENTIFIER,
critical BOOLEAN DEFAULT FALSE,
extnValue OCTET STRING
}
上述的網站可信標識數據結構由tbsSiteID, signatureAlgorithm和signatureValue三個域構成。這些域的含義如下:
— tbsSiteID域是待簽名原文,包含了網站主體信息、頒發者信息、可信標識的有效期以及其他的相關信息。
— signatureAlgorithm域包含簽發機構簽發該可信標識對象所使用的密碼算法的標識符。一個算法標識符的ASN.1結構如下:
AlgorithmIdentifier::= SEQUENCE {
algorithm OBJECT IDENTIFIER,
parameters ANY DEFINED BY algorithm OPTIONAL }
算法標識符用來標識一個密碼算法,其中的OBJECT IDENTIFIER 部分標識了具體的算法。其中可選參數的內容完全依賴于所標識的算法。目前簽名算法標識為SM3WithSM2Encryption,無參數。關于SM2簽名算法,遵循GM/T 0003-2012的定義。
9.1.3 TBSSiteID及其數據結構
9.1.3.1 綜述
TBSSiteID包含了網站可信標識結構的主要信息。這些信息主要有網站主體信息、頒發者的名稱、主體的有效期、標識等級、版本號和序列號,有些TBSSiteID還可以包含擴展項。本條的下述段落描述這些項的語法和語義。
9.1.3.2 版本 version
本項描述了可信標識的版本號,當前應為V1(0)。
9.1.3.3 序列號 serialNumber
本項是標識權威機構分配給每個可信標識的一個正整數,一個標識權威機構簽發的每個網站可信標識的序列號應是唯一的(這樣,通過頒發者的名字和序列號就可以唯一地確定一個標識),標識權威機構應保證序列號是非負整數。序列號可以是長整數,網站可信標識用戶應能夠處理長達20個8位字節的序列號值。標識權威機構應確保不使用大于20個8位字節的序列號。
9.1.3.4 頒發者 Issuer
本項標識了網站可信標識簽名和標識頒發的實體名稱。該項被定義為UTF8String類型。
9.1.3.5 等級 level
本項描述認證等級,當前為1。數字越大,等級越高,需驗證內容越多,驗證內容的信息應在sealInfo地址指向的詳情頁面中。
9.1.3.6 有效期 validity
9.1.3.6.1 綜述
本項是一個時間段,在這個時間段內,標識權威機構擔保它將維護關于網站可信標識狀態的信息。該項被表示成一個具有兩個時間值的SEQUENCE類型數據:網站可信標識有效期的起始時間(notBefore)和網站可信標識有效期的終止時間(notAfter)。NotBefore和 NotAfter這兩個時間都可以作為UTCTime類型或者GeneralizedTime類型進行編碼。
9.1.3.6.2 編碼類型要求
遵循本標準的標識權威機構在2049年之前(包括2049年)應將該時間編碼為UTCTime類型,在2050年之后,編碼為GeneralizedTime類型。
9.1.3.6.3 世界時間 UTCTime
本項是為國際應用設立的一個標準ASN.1類型,在這里只有本地時間是不夠的。UTCTime通過兩個低位數確定年,時間精確到1min或1s。UTCTime包含Z(用于Zulu,或格林威治標準時間)或時間差。
在本項中,UTCTime值應用格林威治標準時間(Zulu)表示,并且應包含秒,即使秒的數值為零(即時間格式為YYMMDDHHMMSSZ)。系統對年字段(YY)應如下解釋:
9.1.3.6.4 通用時間類型 GeneralizedTime
本項是一個標準ASN.1類型,表示時間的可變精確度。GeneralizedTime字段能包含一個本地和格林威治標準時間之間的時間差。
9.1.3.7 網站名稱 siteName
本項描述了網站可信標識相對應的網站名稱,該項被定義為UTF8String類型。
9.1.3.8 網站別名 siteAlias
本項描述了網站可信標識相對應的網站別名或者簡稱,該項主要用于在終端中的簡要顯示,被定義為UTF8String類型,其長度不超過12字符。
9.1.3.9 網站主頁 siteHome
本項描述了網站可信標識相對應的網站首頁地址,該項被定義為UTF8String類型。
9.1.3.10 簽章頁面地址 sealInfo
本項描述了網站可信標識相對應的網站信息詳情頁面地址,詳情頁面中將顯示更詳細的認證信息。該項被定義為UTF8String類型。
9.1.3.11 網站所有者 siteOwner
本項描述了網站可信標識相對應的網站所有者名稱,該項被定義為UTF8String類型。
9.1.3.12 網站所有者類型
本項描述了網站可信標識相對應的網站所有者類型,該項目被定義為UTF8String類型,可以為政府機關、事業單位、企業單位、社會團體、個人用戶、其它。
9.1.3.13 網站域名 siteDomains
本項是網站的一個或多個域名的序列(SEQUENCE),每個域名定義為UTF8String類型。域名可以使用通配符表示,例如*.abc.com表示所有abc.com的子域名。
9.1.3.14 網站地址 siteAddress
本項是網站相對應的IP地址序列,表示該網站可以在該IP地址部署。每個地址項被定義為UTF8String類型。IP地址支持IPv4和IPv6, 每個IP地址可以用點分十進制表示,例如192.168.1.1、0:0:0:212:12:23:34,IPv4也可以用CIDR格式表示,例如192.168.1.0/24。當用通配符*表示IP地址時,表示該網站IP地址不固定,可無需驗證。
9.1.4 網站可信標識擴展域及其數據結構
9.1.4.1 網站可信標識擴展
本標準定義的可信標識擴展項提供了把一些附加屬性同可信標識相關聯的方法以及可信標識結構的管理方法。可信標識允許定義標準擴展項和專用擴展項。每個網站可信標識中的擴展可以定義成關鍵性的和非關鍵性的。一個擴展含有三部分,它們分別是擴展類型、擴展關鍵度和擴展項值。擴展關鍵度(extension criticality)告訴一個可信標識的使用者是否可以忽略某一擴展類型。應用系統如果不能識別關鍵的擴展時,應拒絕接受該可信標識,如果不能識別非關鍵的擴展,則可以忽略該擴展項的信息。
本條定義一些標準的擴展項。需要特別注意的是,在實際應用過程中,如果采用了關鍵性的擴展,可能導致在一些通用的應用中無法使用該可信標識。
每個擴展項包括一個對象標識符OID和一個ASN.1結構。當網站可信標識中出現一個擴展時,OID作為extnID項出現,其對應的ASN.1編碼結構就是8bit字符串extnValue的值。一個擴展中包含一個布爾型的值用來表示該擴展的關鍵性,其缺省值為FALSE,即非關鍵的。每個擴展的正文指出了關鍵性項的可接收的值。
遵循本標準的標識權威機構應支持IRL分發點、頒發者密鑰標識符等擴展。標識權威機構還可以支持本標準定義之外的其他的擴展。頒發者應注意,如果這些擴展被定義為關鍵的,則可能會給互操作性帶來障礙。遵循本標準的應用應至少能夠識別IRL分發點、頒發者密鑰標識符信息。
本項定義網站可信標識的標準擴展,每個擴展與GB/T 16264.8-2005中定義的一個OID相關。這些OID都是id-ce的成員,其定義如下:
9.1.4.2 頒發機構密鑰標識符 authorityKeyIdentifier
頒發機構密鑰標識符擴展提供了一種方式,以識別與標識簽名私鑰相應的公鑰。當頒發者由于有多個密鑰共存或由于發生變化而具有多個簽名密鑰時使用該擴展。識別可基于頒發者證書中的主體密鑰標識符或基于頒發者的名稱和序列號。
相應IA產生的標識應包括authorityKeyIdentifier擴展的keyIdentifier項,以便于鏈的建立。
id-ce-authorityKeyIdentifier OBJECTIDENTIFIER ::= {id-ce 35}
AuthorityKeyIdentifier ::= SEQUENCE {
keyIdentifier [0] KeyIdentifier OPTIONAL,
authorityCertIssuer [1] GeneralNames OPTIONAL,
authorityCertSerialNumber [2] CertificateSerialNumber OPTIONAL }
(WITH COMPONENTS {…,authorityCertIssuer PRESENT, authorityCertSerialNumber PRESENT} │
WITH COMPONENTS {…,authorityCertIssuer ABSENT, authorityCertSerialNumber ABSENT})
KeyIdentifier項的值應從用于證實標識簽名的公鑰導出或用產生唯一值的方法導出。公開密鑰的密鑰標識符KeyIdentifier可采用下述兩種通用的方法生成:
a) keyIdentifier由BIT STRING subjectPublicKey值的256-bit SM3散列值組成(去掉標簽、長度和若干不使用的字節);
b) keyIdentifier 由0100加上后跟的BIT STRING subjectPublicKey值的SM3散列值中最低位的60bit組成。
SM3算法遵循GM/T 0004-2012的定義。
9.1.4.3 網站可信標識撤銷列表分發點 IRLDistributionPoints
IRL分發點擴展用來描述如何獲得IRL信息,本擴展僅作為可信標識擴展使用。本項指定了IRL分發點或可信標識用戶的查閱點以確定可信標識是否已被撤銷。可信標識用戶能從可用分發點獲得一個IRL,或者可以從標識權威機構目錄項獲得當前完整的IRL。
9.1.4.3.1 定義
id-ce-IRLDistributionPoints OBJECT IDENTIFIER ::={ id-ce 105 }
IRLDistPointsSyntax::=SEQUENCE SIZE (1..MAX) OF DistributionPoint
DistributionPoint::=SEQUENCE{
distributionPoint [0] DistributionPointName OPTIONAL,
reasons [1] ReasonFlags OPTIONAL,
iRLIssuer [2] GeneralNames OPTIONAL
DistributionPointName::=CHOICE{
fullName [0] GeneralNames,
nameRelativeToIRLIssuer [1] RelativeDistinguishedName
}
ReasonFlags::=BITSTRING{
unused (0),
keyCompromise (1),
CACompromise (2),
affiliationChanged (3),
superseded (4),
cessationOfOperation (5),
certificateHold (6)
9.1.4.3.2 說明
distributionPoint字段描述如何能夠獲得IRL的位置。如果此字段缺省,分發點名稱默認為IRL頒發者的名稱。
當使用fullName替代名稱或應用默認時,分發點名稱可以有多種名稱形式。同一名稱(至少用其名稱形式之一)應存在于頒發IRL的分發點擴展的distrubutionPoint字段中。不要求可信標識使用系統能處理所有名稱形式。它可以只處理分發點提供的諸多名稱形式中的一種。如果不能處理某一分發點的任何名稱形式,但能從另一個信任源得到必要的撤銷信息,例如另一個分發點。
如果IRL分發點被賦于一個直接從屬于IRL頒發者的目錄名稱的目錄名,則只能使用nameRelativeToIRLIssuer字段。此時,nameRelativeToIRLIssuer字段傳送與IRL頒發者目錄名稱有關的可甄別名。
Reasons字段指明由此IRL所包含的撤銷原因。如果沒有reasons字段,相應的IRL分發點發布包含此可信標識(如果此可信標識已被撤銷)的項的IRL,而不管撤銷原因。否則,reasons值指明相應的IRL分發點所包含的那些撤銷原因。
IRLIssuer字段描述頒發和簽署IRL的機構。如果沒有此字段,IRL頒發者的名稱默認為可信標識頒發者的名稱。
此擴展可以是關鍵的或非關鍵的,由可信標識頒發者選擇,建議該擴展設置為非關鍵的,但應用應支持該擴展。
如果該擴展描述為關鍵,標識權威機構則要保證分發點包含所用的撤銷原因代碼keyCompromise兼容。
如果此擴展描述為非關鍵的,當可信標識使用系統未能識別此擴展項類型時,則只有在下列情況中,該系統可忽略此擴展:
—— — 它能從標識權威機構獲得一份完整IRL并檢查它;
—— — 根據本地策略不要求撤銷檢查;
GB/T 35287-2017 信息安全技術 網站可信標識技術指南
推薦文章: