公民网络电子身份标识格式规范

声明

本文是学习公民网络电子身份标识格式规范. 而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们

范围

本标准规定了公民网络电子身份标识的组成及密钥对产生要求、格式要求和编码规则。

本标准适用于公民网络电子身份标识相关系统的设计、开发、测试、生产和应用。

规范性引用文件

下列文件对于本文件的应用是必不可少的。凡是注日期的引用文件,仅注日期的版本适用于本文件。凡是不注日期的引用文件,其最新版本(包括所有的修改单)适用于本文件。

GB 18030 信息技术 中文编码字符集

GB/T 20518 信息安全技术 公钥基础设施 数字证书格式

GB/T 25069 信息安全技术 术语

GB/T 32905-2016 信息安全技术 SM3密码杂凑算法

GB/T 32918.2-2016 信息安全技术 SM2椭圆曲线公钥密码算法
第2部分:数字签名算法

GB/T 32918.4-2016 信息安全技术 SM2椭圆曲线公钥密码算法
第4部分:公钥加密算法

术语和定义

GB/T 25069中界定的以及下列术语和定义适用于本文件。

  1. \
    公民网络电子身份标识 citizen cyber electronic identity\
    与公民真实身份具有一一对应关系,用于在线识别网络空间中公民真实身份的电子标识。

  2. \
    公民网络电子身份标识码 citizen cyber electronic identity code\
    使用公民真实身份有效证件的证件号码、公民姓名、证件类型代码和128个字节随机数的字串按特定的规则处理后得到的字符编码,由版本号、杂凑值和预留位三部分组成。

缩略语

下列缩略语适用于本文件。

ASN.1:抽象语法记法I(abstract syntax notation one)

eID:公民网络电子身份标识(citizen cyber electronic identity)

HID:杂凑值编码(hash ID)

OID:对象标识符(object identifier)

组成及密钥对产生要求

公民网络电子身份标识组成

公民网络电子身份标识采用数字证书形式,由一对非对称密钥和含有其公钥及相关信息的数字证书组成。

公民网络电子身份标识非对称密钥对产生

公民网络电子身份标识的非对称密钥对由智能卡、智能密码钥匙等载体的安全芯片产生,包括公钥和私钥,其中私钥不可导出。

公民网络电子身份标识非对称密钥对产生算法

公民网络电子身份标识密钥对产生算法应符合GB/T 32918.4-2016的要求。

格式要求

概述

公民网络电子身份标识格式应符合表1的格式要求。

表1的各数据项按GB/T 20518的规定进行定义。数据项的中文编码应符合GB
18030的要求,用2个到4个字节表示,其余字符用1个字节表示。数据交换时,各数据项按序号顺序排列。

  1. 公民网络电子身份标识格式

表1公民网络电子身份标识格式(续)

版本号

版本号(version)是公民网络电子身份标识的数字证书版本。该数据项类型应为整型,长度为1个字节,其ASN.1的结构如下:

Version ::= INTEGER {v3(2)}

序列号

序列号(serialNumber)是公民网络电子身份标识的数字证书对应的唯一编号。该数据项应为长整型,长度不大于20个字节。其ASN.1的结构如下:

CertificateSerialNumber ::= INTEGER

签名算法

签名算法(signatureAlgorithm)是公民网络电子身份标识数字证书所使用的数字签名算法,应符合GB/T
32918.2-2016的要求。该数据项应为字符型,长度为8个字节。其ASN.1的结构如下:

Id-AlgorithmIdentifier OBJECT IDENTIFIER ::= {1.2.156.10197.1.501}

AlgorithmIdentifier ::= SEQUENCE {

algorithm OBJECT IDENTIFIER,

parameters ANY DEFINED BY algorithm OPTIONAL}

颁发机构

颁发机构组成

颁发机构(issuer)由颁发机构的名称、组织、国家的标识及颁发机构序号组成。

名称

该数据项应为字符型,长度不大于16个字节。其ASN.1的结构如下:

RelativeDistinguishedName ::= SET OF AttributeTypeAndValue

AttributeTypeAndValue ::= SEQUENCE {

type AttributeType,

value AttributeValue }

AttributeType ::= OBJECT IDENTIFIER

AttributeValue ::= ANY DEFINED BY AttributeType

DirectoryString ::= CHOICE {

printableString PrintableString(SIZE(1…MAX)),

utf8String UTF8String(SIZE(1…MAX)) }

组织

该数据项应为字符型,长度为18个字节。值为颁发机构对应的统一社会信用代码或组织机构代码。

国家

该数据项应为字符型,长度为2个字节。值为中国的英文简称CN。

序号

该数据项应为字符型,长度为6个字节。值为000001-999999之间的顺序编码。

有效期

有效期(validity)是一个时间段,由公民网络电子身份标识的生效日期和失效日期组成。该数据项长度为30个字节。生效日期和失效日期数据项均为时间型,长度均为15个字节。该时间段的值应为5年。其ASN.1的结构如下:

validity Validity

Validity ::= SEQUENCE {

notBefore CertificateValidityDate,

notAfter CertificateValidityDate }

CertificateValidityDate ::= CHOICE {

utcTime UTCTime,

generalTime GeneralizedTime }

公民网络电子身份标识持有者信息

持有者信息组成

持有者信息(subject)由持有者的名称、组织、国家的标识组成。其中持有者的名称由公民网络电子身份标识码表示。

名称

该数据项应为字符型,长度为48个字节。值为公民网络电子身份标识码,其ASN.1的结构如下:

RelativeDistinguishedName ::= SET OF AttributeTypeAndValue

AttributeTypeAndValue ::= SEQUENCE {

type AttributeType,

value AttributeValue }

AttributeType ::= OBJECT IDENTIFIER

AttributeValue ::= ANY DEFINED BY AttributeType

DirectoryString ::= CHOICE {

printableString PrintableString(SIZE(1…MAX)),

utf8String UTF8String(SIZE(1…MAX)) }

组织

该数据项应为字符型,长度为18个字节。值为公民网络电子身份标识持有者对应的统一社会信用码或组织机构代码,可以为空。

国家

该数据项应为字符型,长度为2个字节。值为中国的英文简称CN。

公民网络电子身份标识持有者公钥信息

持有者公钥信息(subjectPublicKeyInfo)包括公民网络电子身份标识的公钥及公钥算法的标识符,应符合GB/T
32918.2-2016的要求。该数据项应为字符型,长度不少于130个字节。其ASN.1的结构如下:

Id-subjectPublicKeyInfo OBJECT IDENTIFIER ::= {1.2.156.10197.1.301}

SubjectPublicKeyInfo ::= SEQUENCE {

algorithm AlgorithmIdentifier,

subjectPublicKey BIT STRING }

扩展项

扩展项组成

扩展项(extensions)定义的颁发机构密钥标识符、标识持有者密钥标识符、密钥用法、扩展密钥用途、证书策略、基本限制、撤销列表分发点、浏览器证书类型、颁发机构信息访问等扩展项的OID应符合GB/T
20518中5.2.3.2的要求。其ASN.1的结构如下:

id-ce OBJECT IDENTIFIER ::= { joint-iso-ccitt(2) ds(5) 29 }

颁发机构的密钥标识符

密钥标识符(authorityKeyIdentifier)用于验证在公民网络电子身份标识或撤销列表上签名的颁发机构公钥。该数据项为字符型,长度为64个字节。其ASN.1的结构如下:

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 ::= OCTET STRING

标识持有者密钥标识符

持有者密钥标识符(subjectKeyIdentifier)用于标识公民网络电子身份标识持有者的公钥。该数据项为字符型,长度为64个字节。其ASN.1的结构如下:

id-ce-subjectKeyIdentifier OBJECT IDENTIFIER ::= {id-ce 14}

SubjectKeyIdentifier ::= KeyIdentifier

密钥用法

密钥用法(keyUsage)用于标识公民网络电子身份标识中公钥的用法,包括但不限于数字签名和抗抵赖。该数据项为字符型,长度为2个字节。其ASN.1的结构如下:

id-ce-keyUsage OBJECT IDENTIFIER ::= {id-ce 15}

KeyUsage ::= BIT STRING {

digitalSignature (0),

nonRepudiation (1) }

密钥用法扩展

密钥用法扩展(extKeyUsage)用于标识公民网络电子身份标识中公钥的具体用途,包括但不限于客户端鉴别和电子邮件保护。该数据项为字符型,长度为29个字节。其ASN.1的结构如下:

id-ce-extKeyUsage OBJECT IDENTIFIER :: {id-ce 37}

ExtKeyUsageSyntax ::=SEQUENCE SIZE (1‥MAX) OF KeyPurposeId\
KeyPurposeId::=OBJECT IDENTIFIER

证书策略

证书策略(certificatePolicies)用于标识公民网络电子身份标识发放所依据的策略及其应用目的。该数据项为字符型,长度为54个字节。其ASN.1的结构如下:

id-ce-certificatePolicies OBJECT IDENTIFIER ::= { id-ce 32 }

CertificatePolicies ::= SEQUENCE {

critical BOOLEAN DEFAULT FALSE,

extnValue OCTET STRING }

撤销列表分发点

撤销列表分发点(CRLDistributionPoints)用于标识获得撤销列表信息的分发点序列。分发点应包含证书序列号,撤销时间,撤销列表存储的一个X.500或目录服务项对应的名称,宜包含撤销列表分发点、颁发机构、撤销原因。该数据项应为字符型,长度不大于128个字节。其ASN.1的结构如下:

id-ce-CRLDistributionPoints OBJECT IDENTIFIER ::= { id-ce 31 }

CRLDistributionPoints ::= SEQUENCE {

critical BOOLEAN DEFAULT FALSE,

extnValue OCTET STRING }

浏览器证书类型

浏览器证书类型(browserCertType)用于标识公民网络电子身份标识所支持的浏览器证书类型。该数据项为字符型,长度为17个字节。其ASN.1的结构如下:

Id-ce-browserCertTypeIdentifier OBJECT IDENTIFIER ::=
{2.16.840.1.113730.1.1}

BrowserCertTypeIdentifier ::= SEQUENCE {

critical BOOLEAN DEFAULT FALSE,

extnValue OCTET STRING }

颁发机构信息访问

颁发机构信息访问(authorityInfoAccess)用于标识公民网络电子身份标识颁发机构信息。该数据项为字符型,长度为62个字节。其ASN.1的结构如下:

id-pe-authorityInfoAccess OBJECT IDENTIFIER ::= { id-pe 1 }

AuthorityInfoAccess ::= SEQUENCE {

critical BOOLEAN DEFAULT FALSE,

extnValue OCTET STRING }

签名值

签名值(signatureValue)用于标识公民网络电子身份标识颁发机构对公民网络电子身份标识的签名内容。该数据项为字符型,长度至少为64个字节。其ASN.1的结构如下:

Id-AlgorithmIdentifier OBJECT IDENTIFIER ::= {1.2.156.10197.1.501}

AlgorithmIdentifier ::= SEQUENCE {

algorithm OBJECT IDENTIFIER,

parameters ANY DEFINED BY algorithm OPTIONAL }

编码规则

编码格式

公民网络电子身份标识码共48个字节,由版本号、杂凑值和预留位三部分组成:

a) 第1个字节表示版本号,记为eID_version;

b) 第2个至第45个字节表示杂凑值,记为HID;

c) 第46个至第48个字节表示预留位,记为eID_code_rvb。

HID计算方法

HID为字符串,计算方法如下:

HID=Base64[(SM3)[IDnumber|name|type|random_hash]]

其中"|"含义表示字符串连接。

IDnumber、 name、
type和random_hash分别是有效证件的证件号码、公民姓名、证件类型代码和128个字节随机数的字串。证件类型代码见表1。将IDnumber、name、type、random_hash依次顺序连接,采用符合GB/T
32905-2016要求的算法进行杂凑运算得出的二进制信息的Base64编码,共44个字节。

表1 证件类型代码

[]{#BKCKWX .anchor}参 考 文 献

  1. GB/T 2260-2007 中华人民共和国行政区划代码

  2. GB/T 2659-2000 各国和地区名称代码

  3. GB/T 16262.1-2006 抽象语法记法—(ASN.1)
    第1部分:基本记法规范(ISO/IEC 8824-1:2002, IDT)

  4. GB/T 16262.2-2006 抽象语法记法—(ASN.1)
    第21部分:客体信息规范(ISO/IEC 8824-2:2002, IDT)

  5. GB/T 16262.3-2006 抽象语法记法—(ASN.1) 第3部分:约束规范(ISO/IEC
    8824-3:2002, IDT)

  6. GB/T 16262.4-2006 抽象语法记法—(ASN.1)
    第4部分:ASN.1规范的参数化(ISO/IEC 8824-4:2002, IDT)

  7. GB/T 16264.8-2005 信息技术 开放系统互连目录
    第8部分:公钥和属性证书框架(ISO/IEC 9594-8:2002,IDT)

  8. GB/T 32918.1-2016 信息安全技术 SM2椭圆曲线公钥密码算法 第1部分:总则

  9. GB/T 32918.3-2016 信息安全技术 SM2椭圆曲线公钥密码算法
    第3部分:密钥交换协议

  10. RFC 2045 Multipurpose Internet Mail Extensions(MIME) Part One:
    Format of Internet Message Bodies

________________________________

延伸阅读

更多内容 可以 公民网络电子身份标识格式规范. 进一步学习

联系我们

GB-T 27476.7-2022 检测实验室安全 第7部分:工效学因素.pdf

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值