GM/T 0015-2023《数字证书格式》核心要点解析
一、标准范围与总体结构(第1-5章)
适用范围:该标准明确了数字证书及证书撤销列表(CRL)的基本数据结构和字段定义,广泛适用于数字证书认证系统的开发、CA机构的运营管理,以及各类基于数字证书的安全应用实现。
主要更新内容:本版本替代了GM/T 0015-2012,技术层面进行了多项优化:新增规范性引用文件,移除部分过时术语,统一采用GB/T 16262.1规定的DER编码规则,并对扩展项进行了细化补充,例如引入统一社会信用代码扩展等。
基本构成框架:数字证书由三个核心部分组成:
tbsCertificate(待签名证书内容)、signatureAlgorithm(签名算法标识符)、signatureValue(签名值)。CRL结构与此类似,包含:
tbsCertList(待签名CRL内容)、signatureAlgorithm 和 signatureValue。
二、数字证书格式深度解析(第5.2节)
证书数据结构(5.2.2):
TBSCertificate 包含版本号、序列号、颁发者名称、有效期、主体名称、公钥信息等关键字段。signatureAlgorithm 所标识的签名算法必须与 tbsCertificate 中声明的算法保持一致。若使用SM2算法,则其参数字段(parameters)应为空值。signatureValue 是对经过DER编码后的 tbsCertificate 内容进行数字签名后生成的结果。
关键字段说明(5.2.3):
- 序列号(serialNumber):由CA分配的唯一正整数,长度不得超过20个八位组。
- 有效期(validity):时间表示方式根据年份区分:
- 对于2049年及以前的时间,采用
格式(YYMMDDHHMMSSZ);UTCTime
- 自2050年起,则需使用
格式(YYYYMMDDHHMMSSZ)。GeneralizedTime - 主体(subject):当主体的命名信息仅存在于“主体替换名称”扩展中时(即
),主字段中的主体名称应设置为空序列。subjectAltName
证书扩展域(5.2.4 - 核心内容):
每个扩展由三部分构成:扩展OID、是否关键(TRUE/FALSE)、扩展值。
CA必须支持的扩展包括:颁发机构密钥标识符、主体密钥标识符、基本限制、密钥用法、证书策略。
应用程序至少应能识别的扩展有:密钥用法、证书策略、主体替换名称、基本限制、名称限制、策略限制、扩展密钥用途。
三、重点扩展项详解
颁发机构密钥标识符(authorityKeyIdentifier, 5.2.4.2.2):
作用:用于识别签发该证书所用私钥对应的公钥,是构建信任链的重要依据。
要求:除自签名证书外,所有证书均应包含此项,且推荐包含
keyIdentifier 字段。此扩展通常标记为非关键。keyIdentifier 应通过公钥计算得出,如采用SM3杂凑算法生成摘要值。
密钥用法(KeyUsage, 5.2.4.2.4):
作用:限定公钥的具体用途,如数字签名、密钥加密、证书签名等。
关键性设定:由签发者自行决定是否设为关键。一旦标记为关键,证书只能用于指定用途,不可越界使用。
典型配置示例:
- CA证书:必须启用
keyCertSign 和 cRLSign;- 终端实体签名证书:建议启用
digitalSignature 和 nonRepudiation;- 终端实体加密证书:应启用
keyEncipherment、dataEncipherment、keyAgreement。
基本限制(basicConstraints, 5.2.4.2.12):
作用:标明证书持有者是否具备CA身份,并可设定后续证书路径的最大长度(
pathLenConstraint)。关键性要求:在CA证书中必须存在且必须标记为关键;在终端实体证书中则应设为非关键。
CRL分发点(CRLDistributionPoints, 5.2.4.2.15):
作用:指示获取CRL的位置和访问方式。
关键性说明:一般设为非关键。但如果标记为关键,应用系统必须能够从指定地址成功下载CRL,否则应拒绝该证书的有效性。
机构信息访问(authorityInfoAccess, 5.2.4.3.2):
作用:提供访问CA在线服务的方式,如获取上级CA证书(
id-ad-caIssuers)或查询OCSP响应服务(id-ad-ocsp)。关键性建议:应设置为非关键,便于灵活部署。
四、CRL格式规范(第5.3节)
CRL数据结构:与证书结构相似,主要包括被撤销证书的序列号列表、撤销发生时间,以及相关的CRL扩展项。
重要CRL扩展项:
- CRL号(cRLNumber):一个单调递增的整数,用于标识CRL的版本顺序。
- 增量CRL指示符(deltaCRLIndicator):用于表明当前CRL为增量更新类型,应标记为关键。
- 颁发分发点(issuingDistributionPoint):描述CRL覆盖的证书范围及其发布位置,应标记为关键。
五、附录核心内容(规范性附录)
附录部分提供了具体的证书结构实例和详细字段表格,是实际开发与验证过程中的权威参考。
证书类型与字段要求:附录C系统地列出了不同类型证书(如自签名CA证书、下级CA证书、终端实体签名/加密证书)中各字段的必选/可选状态及其关键性设置规则,是证书签发与校验的操作指南。
编码示例:附录D给出了一个完整的SM2数字证书ASN.1 DER编码实例,涵盖从版本号到各项扩展的实际编码形式,具有极高的实践指导意义。
六、核心要点汇总
| 方面 | 关键要求 | 说明 |
|---|---|---|
| 编码规则 | 必须使用ASN.1 DER编码 | 确保数据结构唯一性和可解析性,符合国家标准GB/T 16262.1 |
为了确保不同系统间的互操作性,应遵循统一的技术规范与标准。在密码算法的选择上,需严格符合GM/T系列国家标准要求,其中SM2签名算法的参数应设置为NULL,以保证算法实现的一致性和合规性。
在证书时间有效性方面,应根据年份合理选择编码格式:2049年及之前的时间采用UTCTime表示,而自2050年起则应使用GeneralizedTime格式。这一机制有效应对了“Y2K49”时间溢出问题,避免因时间编码限制导致的解析错误。
对于CA证书的管理,必须包含关键性的基本约束扩展(Basic Constraints),且其中的cA字段必须明确设置为TRUE,以标识其作为证书颁发机构的身份。此举有助于清晰区分CA证书与终端实体证书,强化层级信任结构。
tbsCertificate
密钥用途的配置需与证书的实际类型相匹配。例如,用于数字签名的证书和用于数据加密的证书,在密钥用法(Key Usage)扩展中的标志位应有所不同,确保密钥仅在其授权范围内被使用,防止误用或滥用。
关于CRL(证书吊销列表)的处理,系统应支持CRL分发点扩展(CRL Distribution Points),以便客户端能够定位并获取最新的吊销信息。若采用增量CRL机制,则需通过特定标识加以区分,从而实现高效、准确的证书状态验证。
在扩展项处理方面,任何应用程序在解析证书时,若遇到标记为“关键”的扩展项而无法识别或处理,应当拒绝该证书。这一策略保障了安全策略的强制执行,防止因忽略关键安全信息而导致的安全风险。


雷达卡


京公网安备 11010802022788号







