1、ICS 35.040L80DB 23黑 龙 江 省 地 方 标 准DB 23/T XXXXXXXXX组织机构数字证书技术规范(报批稿)XXXX - XX - XX 发布 XXXX - XX - XX 实施黑 龙 江 省 质 量 技 术 监 督 局 发 布DB23/T XXXXXXXXX1目 次前言 .21 范围 32 规范性引用文件 33 术语和定义、缩略语 34 介质 55 数字证书格式 66 组织机构数字证书应用接口 97 组织机构数字证书业务规则 .19附录 A(规范性附录) 基本域说明 21附录 B(规范性附录) 扩展域说明 22附录 C(规范性附录) 组织机构数字证书模板 25附录
2、D(资料性附录) 主体命名示例 27附录 E(资料性附录) 主体可选替换名称命名示例 28附录 F(资料性附录) 组织机构数字证书编码示例 29附录 G(规范性附录) 数字证书应用接口常量定义和说明 33附录 H(资料性附录) 数字证书典型应用示例 34DB23/T XXXXXXXXX2前 言本标准的附录A、附录B、附录C和附录G为规范性附录,附录D、附录E、附录F和附录H为资料性附录。本标准由哈尔滨市标准化研究院提出。本标准由黑龙江省质量技术监督局批准。本标准主要起草单位:哈尔滨市标准化研究院、黑龙江省防伪中心。本标准主要起草人:张劲男、孟炬、史林、宋韶辉、吴彩虹、贺佳、刘晓丽。DB23/T
3、 XXXXXXXXX3组织机构数字证书技术规范1 范围本标准规定了组织机构数字证书的术语和定义、缩略语、介质、数字证书格式、组织机构数字证书应用接口及业务规则,并给出了有关格式示例。本标准既适用于电子认证服务机构、数字证书认证系统及相关产品的供应商、应用开发商的设计和开发,也适用于应用部门在黑龙江省电子政务的办公、社会管理和公共服务等政务活动,也可用于电子商务应用。本标准可应用于管理、查验和使用组织机构数字证书的机构及其相关业务和应用系统。本标准不涉及任何具体的密码运算,所有密码运算均在符合国家有关法律法规的密码设备中进行。本标准凡涉及密码相关内容,按国家有关法律、法规实施。2 规范性引用文件
4、下列文件对于本文件的应用是必不可少的。凡是注日期的引用文件,仅所注日期的版本适用于本文件。凡是不注日期的引用文件,其最新版本(包括所有的修改单)适用于本文件。GB/T 16284.4-1996 信息技术 文本通信 面向信报的文本交换系统 第4部分:抽象服务定义和规程GB/T 17969.1-2015 信息技术 开放系统互连 OSI登记机构的操作规程 第1部分:一般规程和国际对象标识符树的顶级弧ISO/IEC 9594-2:2001 信息技术 开放系统互连 目录 第2部分:模型RFC 791 互联网协议RFC 822 Internet文本邮件的标准消息格式RFC 1034 域名:概念和设施RFC
5、 1630 互联网中的通用资源标识(URL)RFC 1738 统一资源定位器(URL)RFC 3280 互联网X.509公钥基础设施 证书和证书撤销列表轮廓PKCS#7 密码消息语法标准PKCS#11 密码令牌接口标准3 术语和定义、缩略语下列术语、定义和缩略语适用于本文件。3.1 术语和定义3.1.1 数字证书DB23/T XXXXXXXXX4由证书认证机构签名的包含公开密钥拥有者信息、公开密钥、签发者信息、有效期以及一些扩展信息的数字文件。3.1.2 公钥基础设施支持公钥管理体制的基础设施,提供鉴别、加密、完整性和不可否认性服务。3.1.3 证书认证机构负责创建和分配证书,受用户信任的权威
6、机构。用户可以选择该机构为其创建密钥。3.1.4 证书注册机构 RA是CA的组成部分,对证书申请的业务受理审核子系统概称为RA,RA按照CA制定的政策和管理规范对用户的资信进行审查,以决定是否为该用户发放证书。3.1.5 密钥管理中心向CA服务提供密钥生成、密钥存储、密钥备份、密钥恢复、密钥托管和密钥运算等服务的设施或机构的统称。3.1.6 在线证书状态协议在线证书状态协议,是IETF颁布的用于检查数字证书在某一时间是否有效的标准。3.1.7 依赖方即指依赖于证书真实性的实体。在电子签名应用中,即为电子签名依赖方。3.1.8 公钥证书用户的公钥连同其他信息,并由发布该证书的证书认证机构的私钥进
7、行加密使其不可伪造。3.1.9 证书撤销列表一个已标识的列表,它指定了一套证书发布者认为无效的证书。除了普通的CRL外,还定义了一些特殊的CRL类型用于覆盖特殊领域的CRL。3.2 缩略语 DB23/T XXXXXXXXX5下列缩略语适用于本文件。ASN Abstract Syntax Notation 抽象语法表示法BASE64 设计用来把任意序列的8位字节描述为一种不易被人直接识别的形式BER Basic Encoding Rules 基本编码规则CA Certificate Authority 证书认证机构 CN Common Name 通用名CRL Certificate Revoca
8、tion List 证书撤销列表CSP Cryptographic Service Provider 加密服务提供者DER Distinguished Encoding Rules 可区分编码规则DN Distinguished Name 甄别名 KMC Key Management Centre 密钥管理中心IETF Internet Engineering Task Force 国际互联网工程任务组LDAP Lightweight Directory Access Protocol 轻量级目录访问协议OCSP Online Certificate Status Protocol 在线证书状
9、态协议OID Object Identifier 对象标识符PKCS The Public-Key Cryptography Standard 公钥密码使用标准PKI Public Key Infrastructure 公钥基础设施RA Registration Authority 证书注册机构4 介质4.1 外观外壳表面应印制“组织机构数字证书”字样,组织机构代码、统一社会信用代码、机构名称、机构地址、颁发时间等信息。4.2 信息存储信息存储的内部COS文件应采用树状结构,如图1所示:M F( 3 F 0 0 )D FD FD FK FK FK FK FE FE FE FE FE FE F数
10、字证书区域组织机构代码登记区域其它电子证照区域D F( 3 F 0 1 )K F各类扩展应用区域D FK FE FE F组织机构设立登记区域D FK FE FE F组织机构税务登记区域E FE F图 1 COS 文件系统树状结构图DB23/T XXXXXXXXX6图1中根是主控文件(MF,其标识为0x3F00),第二层包含扩展应用区域(DF,其标识为0x3F01),第三层是各类具体应用的存储区域,在其内部创建基本数据文件(EF)。存在于存储介质中的这些应用数据通过唯一应用标识符加以区分。5 数字证书格式5.1 基本结构 组织机构数字证书的基本结构由三部分组成:基本证书域TBSCertifica
11、te、签名算法域SignatureAlgorithm、签名值域SignatureValue。组织机构数字证书的基本结构,见图2。图 2 图 1 组织机构数字证书的基本结构5.2 基本证书域 基本证书域由基本域和扩展域组成。基本证书域结构,见图3。基本证书域基 本 域扩 展 域图 3 基本证书域结构5.3 基本域基本域由如下部分组成: 版本Version 序列号SerialNumber 签名算法SignatureAlgorithm 颁发者Issuer 有效期Validity 主体Subject 主体公钥信息SubjectPublicKeyInfo 颁发者唯一标识符IssuerUniqueID 主
12、体唯一标识符SubjectUniqueID基本域应符合附录A的规定。5.4 扩展域 DB23/T XXXXXXXXX7组织机构数字证书可使用扩展域。 组织机构数字证书扩展域可包含多项扩展项。每项扩展项由扩展类型、扩展关键度和扩展项值组成。组织机构数字证书可使用IETF RFC 3280中定义的如下证书扩展项: 机构密钥标识符AuthorityKeyIdentifier 主体密钥标识符SubjectKeyIdentifier 密钥用法KeyUsage 扩展密钥用途ExtendedKeyUsage 私有密钥使用期PrivateKeyUsagePeriod 证书策略CertificatePolici
13、es 策略映射PolicyMappings 主体替换名称SubjectAlternativeName 颁发者替换名称IssuerAlternativeName 主体目录属性SubjectDirectoryAttributes 基本限制BasicConstraints 名称限制NameConstraints 策略限制PolicyConstraints 证书撤销列表分发点CRLDistributionPoints 限制任意策略InhibitAnyPolicy 最新证书撤销列表FreshestCRL 机构信息访问AuthorityInformationAccess 主体信息访问SubjectInfo
14、rmationAccess除上述证书扩展项,本标准还支持如下私有扩展项: 个人身份证号码IdentifyCardNumber 个人社会保险号InsuranceNumber 组织机构代码OrganizationCode 统一社会信用代码UniformSocialCreditCode 注册号或批准文号ICRegistrationNumber 税号TaxationNumber 主体银行基本账号 SubjectBasicAccount组织机构数字证书扩展域应符合附录B的规定。组织机构数字证书模板应符合附录C的规定。5.5 签名算法域 包含CA颁发该证书所使用的密码算法的标识符,应与基本证书域中的签名算
15、法项所标识的签名算法相同。可选参数的内容完全依赖所标识的具体算法。 5.6 签名值域 包含对基本证书域进行数字签名的结果。经过ASN.1 DER编码的基本证书域作为数字签名算法的输入,签名的结果按照ASN.1编码成BIT STRING类型并保存在签名值域。 5.7 命名规范 5.7.1 主体 DB23/T XXXXXXXXX8组织机构数字证书中的主体DN应是C=CN命名空间下的X.500目录唯一名字。C(Country)属性的编码使用PrintableString,其它属性的编码使用UTF8String。主体的X.500 DN如下:C=CN S=L=O= OU= CN= a) C(Countr
16、y)应为 CN,表示中国;b) S(State)应为证书主体所在省份;c) L(Location)应为证书主体所在市州;d) O(Organization)应为证书主体所属单位的上一级单位的名称全称;e) OU(OrganizationUnit)应为证书主体或者证书主体所属单位的名称全称;f) CN(CommonName)中的内容分为 6 种:1) 机构证书中应为证书主体单位的名称;2) 设备证书中应为证书主体设备的设备编码;3) 服务器证书中应为证书主体服务器的域名或 IP,宜为域名;4) 应用系统证书中应为证书主体应用系统的应用系统编码;5) 代码签名证书中应为负责人的姓名,或者是所属单位
17、的名称。 主体命名示例参见附录D。 5.7.2 主体替换名称 组织机构数字证书的主体替换名称扩展项包含一个或多个替换名供实体使用,CA把该实体与认证的公开密钥绑定在一起。主体替换名称扩展允许把附加身份加到证书的主体上。所定义的选项包括因特网电子邮件地址、DNS名称、IP地址和统一资源标识符(URI),及纯本地定义的选项。此项说明如下:a) otherName 是按照 OTHER-Name 信息客体类别实例定义的任一种形式的名称;b) rfc822Name 是按照 Internet RFC822 定义的 Internet 电子邮件地址,机构证书、组织机构设备证书、组织机构服务器证书、组织机构应用
18、系统证书、代码签名证书宜包含电子邮件地址 Email;c) DNSName 是按照 RFC1034 定义的 Internet 域名,组织机构设备证书、组织机构服务器证书、组织机构应用系统证书可包含域名地址;d) x400Address 是按照 GB/T 16284.4-1996 定义的 O/R 地址;e) directoryName 是按照 ISO/IEC 9594-2:2001 定义的目录名称;f) ediPartyName 是通信的电子数据交换双方之间商定的形式名称,nameAssigner 成分标识了分配 partyName 中唯一名称值的机构;g) uniformResourceIde
19、ntifier 是按 Internet RFC1630 定义的用于 WWW 的UniformResourceIdentifer,RFC1738 中定义的 URL 语法和编码规则;h) iPAddress 是按照 Internet RFC791 定义的用二进制串表示的 Internet Protocol 地址;i) registeredID 是按照 GB/T 17969.1-2000 对注册的客体分配的标识符。j) directoryName 的 X.500 DN 应是 C=CN 命名空间下的 X.500 目录唯一名字。主体替换名称命名示例参见附录E。DB23/T XXXXXXXXX95.8 组
20、织机构数字证书编码示例 组织机构数字证书编码参见附录F。6 组织机构数字证书应用接口6.1 组织机构数字证书应用体系结构组织机构数字证书应用体系结构如图4所示。身 份 认 证 保 密 性 完 整 性 不 可 否 认 性应 用 程 序数 字 证 书 应 用 中 间 件应 用 程 序 接 口S / M I M E 协 议 X K M S 协 议 S S L 协 议数 字 证 书密 码 设 备 ( 加 密 机 、 密 码 卡 、 u s b k e y 等 )应 用 层接 口 层系 统 层 图 4 组织机构数字证书应用体系结构组织机构数字证书支持多种应用方式,可利用CA提供的数字证书应用程序接口进行
21、定制开发,实现登录和身份认证等基本应用,也可应用已有标准协议和标准中间件,例如:a) 安全套接层协议(SSL,Security Socket Layer),SSL 协议指定了一种在应用程序协议(如 HTTP、 Telnet、NMTP 和 FTP 等)和 TCP/IP 协议之间提供数据安全性分层的机制,它为 TCP/IP 连接提供数据加密、服务器认证、消息完整性以及可选的客户机认证;b) 安全多媒体 Internet 邮件扩展协议(S/MIME)主要用于保障电子邮件的安全传输。例如:微软的 outlook express 中使用该协议,采用数字标识、数字凭证、数字签名以及非对称密钥系统等技术,构
22、成一种签名加密的邮件收发方式;c) XML 密钥信息服务规范(XKISS),XKMS 为允许客户机应用程序认证经过加密/签名的数据提供机制。6.2 组织机构数字证书应用接口组成和功能说明组织机构数字证书应用接口位于应用系统和组织机构数字证书之间,应用程序通过调用组织机构数字证书应用接口实现身份认证、实现信息的保密性、完整性和不可否认性;组织机构数字证书应用接口通过标准接口,在密码设备中实现具体的密码运算和密钥使用。组织机构数字证书应用接口支持PKCS#11和CSP接口方式,提供的消息函数符合PKCS#7格式。组织机构数字证书应用接口由以下部分组成: 初始化函数 证书函数DB23/T XXXXX
23、XXXX10 算法服务函数 原文操作函数 文件操作函数除上述程序接口以外,CA应提供字符串编码及异常处理等辅助函数。6.2.1 初始化函数初始化函数负责创建和管理安全程序空间,加载和管理安全程序空间中所需的各种资源,完成与系统、密码设备的连接准备。可通过初始化函数加载配置文件对以下内容进行设置: 应用工作路径 系统字符集 应用程序字符集 日志文件 系统可信任的证书 CRL在具体的应用中可通过直接加载配置文件进行应用配置,不必调用初始化函数。6.2.2 证书函数证书函数用于获取和验证组织机构数字证书及提取证书信息。应用程序可通过该类函数,实现基于组织机构数字证书的身份认证、授权管理、访问控制等安
24、全机制。应先获取相关证书的CRL或证书的状态,然后调用相关函数进行证书验证,在确定证书的有效性后调用该类函数。6.2.3 算法服务函数算法服务函数用于设置签名和加密算法。不调用该函数将采用系统初始化时确定的默认算法。6.2.4 原文操作函数原文操作函数对字符串数据进行操作实现以下功能:数据签名,数据加密,验证签名数据,验证加密数据,获取签名信息,获取加密信息等操作,实现信息的保密性、完整性和不可否认性。对原文进行操作前,应使用证书函数对证书进行设置。6.2.5 文件操作函数文件操作函数对数据文件进行操作实现以下功能:数据签名,数据加密,验证签名数据,验证加密数据,获取签名信息,获取加密信息等操
25、作,实现文件信息的保密性、完整性和不可否认性。对文件进行操作前,应使用证书函数对证书进行设置。6.3 组织机构数字证书应用程序接口函数定义6.3.1 初始化函数初始化函数Init,定义如表1。表 1 初始化函数 InitDB23/T XXXXXXXXX11函数名称 Init( String str )功能 初始化签名系统参数说明 str - 配置文件路径返回值 无6.3.2 证书函数证书函数包括如下函数: 设置证书函数:SetCert 证书选择方式函数:SetCertChooseType 证书信息函数:GetCertInfo6.3.2.1 证书选择方式函数证书选择方式函数SetCertChoo
26、seType,定义如表2。表 2 证书选择方式函数 SetCertChooseType函数名称 SetCertChooseType( int nType )功能 指定证书选择的方式参数说明 nType - 证书选择的类型(0 表示只有一张证书时也弹出证书选择框,1 表示只有一张证书时将不弹出证书选择框,默认值为 0)返回值 类型为 long 0 表示成功,0 表示失败的错误码6.3.2.2 设置证书函数 设置证书函数SetCert,定义如表3。表 3 设置证书函数 SetCert函数名称SetCert(String strCertType,String strDN,String strSN,S
27、tring strEmail,String strDNIssuer,String strCertBase64)功能 通过指定参数来设置证书参数说明strCertType证书的类型(见附录G.1)strDN - 证书的主题(Distinguished Name)strSN - 证书的序列号(Serial Number)strEmail - 证书的主题中的 Email 项strDNIssuer - 证书的颁发者主题 (Distinguished Name of Issuer)strCertBase64 - 证书的 BASE64 编码返回值 成功:0失败:long型错误代码DB23/T XXXXXX
28、XXX126.3.2.3 证书信息函数 证书信息函数GetCertInfo,定义如表4。表 4 证书信息函数 GetCertInfo函数名称GetCertInfo(String strCertType,int nInfoType,String strOID)功能 获得证书中的相应信息参数说明strCertType - 证书的类型,见附录G.1nInfoType - 证书信息的类型, 见附录G.2strOID - 证书扩展标识,如果type 等于证书扩展,strOID 输入项不可为空返回值 成功:返回字符型证书信息失败:返回 null6.3.3 算法服务函数算法服务函数SetAlgorithm,
29、定义如表5。表 5 算法服务函数 SetAlgorithm函数名称SetAlgorithm(String strSignType,String strEncType)功能 设置签名算法、加密算法参数说明 strSignType - 签名算法类型strEncType - 加密算法类型返回值 成功:返回 0失败:返回错误代码6.3.4 原文操作函数原文操作函数包括如下函数: 签名函数 验证签名函数 加密函数 解密函数 添加原文函数 获得原文函数6.3.4.1 签名函数签名函数有如下两种:a) 带原文的签名函数 AttachSign,定义如表 6;DB23/T XXXXXXXXX13表 6 带原文函
30、数 AttachSign函数名称AttachSign( String strDN,byte bOrgData)功能 制作一个包含原文的数字签名参数说明 strDN - 指定证书的主题bOrgDatabyte型原文数据返回值 成功:返回一个 P7 格式的 Base64 编码签名失败:返回 nullb) 不带原文的签名函数 DetachSign,定义如表 7。表 7 不带原文函数 DetachSign函数名称DetachSign( String strDN, byte bOrgData ) 功能 制作一个不包含原文的数字签名参数说明 strDN - 指定证书的主题 bOrgDatabyte原文数据
31、 返回值 成功:返回一个P7格式的Base64编码签名 失败:返回null 6.3.4.2 验证签名函数验证签名函数有如下两种:a) 带原文签名的验证函数 VerifyAttachedSign,定义如表 8;表 8 验证函数 VerifyAttachedSign函数名称 VerifyAttachedSign( byte bAtchSignedData ) 功能 对Attached做的数字签名做验证参数说明 bAtchSignedData - Attached签名结果(Base64 编码格式)返回值 成功:返回0 失败:返回错误代码 b) 不带原文签名的验证函数 VerifyDetachedSi
32、gn,定义如表。表 9 验证函数 VerifyDetachedSign函数名称VerifyDetachedSign( byte bDtchSignedData, byte bOrgData ) 功能 Detached函数做的数字签名做验证DB23/T XXXXXXXXX14参数说明 bDtchSignedDataDetached签名结果(Base64编码格式) bOrgDatabyte原文数据 返回值 成功:返回0 失败:返回错误码 6.3.4.3 加密函数加密函数有如下两种:a) 数字证书函数 EncryptEnvelop,定义如表 10;表 10 数字证书函数 EncryptEnvelop
33、函数名称EncryptEnvelop( String strDN, byte bOrgData ) 功能 制作数字证书参数说明 strDN接收者的证书主题 bOrgDatabyte原文数组 返回值 成功:返回P7格式 Base64编码数字证书 失败:返回null b) 带签名的数字证书函数 CreateSignedEnvelop,定义如表 11。表 11 带签名数字证书函数 CreateSignedEnvelop函数名称CreateSignedEnvelop ( String strDNSignCert, String strDNEncCert, ArrayList alOrgData ) 功
34、能 指定原文、加密证书和签名证书制作带签名的数字证书参数说明strDNSignCert - 签名证书的主题 strDNEncCert - 加密证书的主题 alOrgDatabyte原文数组返回值 成功:返回P7格式 Base64编码带签名数字证书失败:返回null 6.3.4.4 解密函数解密函数有如下两种:a) 解密数字证书函数 DecryptEnvelop,定义如表 12;表 12 解密数字证书函数 DecryptEnvelop函数名称 DecryptEnvelop( byte bEnvelop ) 功能 解密EncryptEnvelop 函数制作的数字证书参数说明 bEnvelop -
35、byte型数字证书DB23/T XXXXXXXXX15返回值 成功:返回0失败:返回错误码 b) 解密带数字签名的数字证书函数 VerifySignedEnvelop,定义如表 13。表 13 解密带签名数字证书函数 VerifySignedEnvelop函数名称 VerifySignedEnvelop( byte bEnvelop ) 功能 解密并验证CreateSignedEnvelop函数制作的带签名的数字证书参数说明 bEnvelop - 数字证书返回值 成功:返回0失败:返回错误码6.3.4.5 添加原文函数添加原文的函数AddData,定义如表14。表 14 添加原文函数 AddD
36、ata函数名称 AddData( byte bOrgData )功能 添加多个原文数据参数说明 bOrgData - 原文数据返回值 成功:返回0失败:返回错误代码 6.3.4.6 获得原文函数获得原文的函数GetData,定义如表15。表 15 获得原文函数 GetData函数名称 GetData()功能 从对象中获得原文 参数说明 无返回值 如果存储对象中有原文,返回原文如果存储对象中无原文,返回null 6.3.5 文件操作函数文件操作函数包括如下函数: 签名函数 验证签名函数 加密函数 解密函数 添加原文函数 获得原文函数6.3.5.1 签名函数签名函数有如下两种:DB23/T XXX
37、XXXXXX16a) 带原文件的签名函数 AttachSign,定义如表 16;表 16 带原文件签名函数 AttachSign函数名称AttachSign( String strDN,String strFileNameIn, String strFileNameOut )功能 制作一个包含原文件的数字签名参数说明strDN - 指定证书的主题strFileNameIn原文文件名 strFileNameOut签名输出结果保存的文件名,字符型 返回值 strFileNameOut=null 返回一个P7格式的Base64 编码签名 strFileNameOut!=null 返回“ b) 不带原
38、文件的签名函数 DetachSign,定义如表 17。表 17 不带原文件签名函数 DetachSign函数名称DetachSign( String strDN, String strFileNameIn, String strFileNameOut ) 功能 制作一个不包含原文件的数字签名参数说明strDN - 签名证书的DN strFileNameIn - 文件名 strFileNameOut 签名输出结果保存的文件名 ,字符型返回值成功: strFileNameOut=null 返回一个P7 格式的Base64 编码签名strFileNameOut!=null 返回“ 失败:返回null
39、6.3.5.2 验证签名函数验证签名函数有如下两种:a) 带原文件签名的验证函数 VerifyAttachedSign,定义如表 18;表 18 带原文件签名验证函数 VerifyAttachedSign函数名称 VerifyAttachedSign( String strFileNameAttached ) 功能 通过接口参数传入文件信息,对文件的Attached 函数的数字签名做验证参数说明 strFileNameAttached - 存放Attached签名结果的文件名返回值 成功:返回0 失败:返回错误代码 b) 不带原文件签名的验证函数 VerifyDetachedSign,定义如表
40、 19。DB23/T XXXXXXXXX17表 19 不带原文件签名验证函数 VerifyDetachedSign函数名称VerifyDetachedSign( String strFileNameIn, byte bDetachedData, String strFileNameDetached ) 功能 通过接口参数传入文件信息,对文件的Detached函数的数字签名做验证参数说明strFileNameInDetached 验签名时用到的原文文件名 bDetachedDatabyte 型签名结果(Base64编码格式) strFileNameDetached - 存放detached签名结
41、果的文件名 返回值 成功:返回0 失败:返回错误码 6.3.5.3 加密函数对文件的加密函数有如下两种:a) 数字证书函数 EncryptEnvelop,定义如表 20。表 20 数字证书函数 EncryptEnvelop函数名称EncryptEnvelop( String strDN, String strFileNameIn, String strFileNameOut) 功能 制作数字证书参数说明strDN 接收者的证书主题 strFileNameIn - 需要做数字证书的文件名称数组 strFileNameOut - 数字证书结果输出的全路径文件名称 返回值成功:strFileName
42、Out=null 返回一个P7 格式的Base64 编码数字证书 strFileNameOut!=null 返回“ 失败:返回nullb) 带签名的数字证书函数 CreateSignedEnvelop,定义如表 21。表 21 带签名数字证书函数 CreateSignedEnvelop函数名称CreateSignedEnvelop ( String strDNSignCert, String strDNEncCert, String strFileNameIn, String strFileNameOut ) 功能 指定文件、加密证书和签名证书制作带签名的数字证书参数说明 strDNSignC
43、ert - 签名证书的主题 strDNEncCert - 加密证书的主题 DB23/T XXXXXXXXX18strFileNameIn - 需要做操作的文件名称 strFileNameOut - 操作结果输出的文件名称 返回值 成功:返回P7格式 Base64编码带签名数字证书失败:返回null 6.3.5.4 解密函数解密函数有如下两种:a) 解密数字证书函数 DecryptEnvelop,定义如表 22;表 22 解密数字证书函数 DecryptEnvelop函数名称 DecryptEnvelop( String strFileNameIn )功能 解密EncryptEnvelop 函数
44、制作的数字证书参数说明 strFileNameIn存放数字证书结果的文件名返回值 成功:返回0失败:返回错误码 b) 解密带数字签名的数字证书函数 VerifySignedEnvelop,定义如表 23。表 23 解密带数字签名数字证书函数 VerifySignedEnvelop函数名称 VerifySignedEnvelop( String strFileNameIn ) 功能 解密并验证CreateSignedEnvelop函数制作的带签名的数字证书参数说明 strFileNameIn - 存放数字证书结果的文件名返回值 成功:返回0失败:返回错误码6.3.5.5 添加原文件函数添加原文件
45、函数AddFile,定义如表24。表 24 添加原文件函数 AddFile函数名称 AddFile( String strFileName )功能 添加多个原文文件参数说明 strFileName - 原文文件名返回值 成功:返回0失败:返回错误代码 6.3.5.6 获得原文件函数获得原文件函数GetFile,定义如表25。表 25 获得原文件函数 GetFile函数名称 GetFile( String strFilePath )功能 从对象中获得原文文件 参数说明 strFilePath结果文件存放的路径返回值 如果存储对象中有文件名,返回文件名 DB23/T XXXXXXXXX19如果存储
46、对象中无文件名,返回“ 错误返回 null 7 组织机构数字证书业务规则7.1 组织机构数字证书签发7.1.1 证书签发中 RA 和 CA 的行为RA业务管理员使用证书登录到RA系统的业务终端,查询并审核系统的申请记录。审核通过的信息将发送到证书认证机构的CA系统,CA系统签发证书并返回给RA系统供终端实体下载。组织机构数字证书注册机构(RA)和受理点建设参见附录I。7.1.2 密钥对的安全技术控制7.1.2.1 CA 公钥的发送证书认证机构的根CA公钥,通过如下方式传输给依赖方:a) 依赖方访问证书认证机构的网站下载 CA 根证书;b) 证书认证机构到依赖方业务系统现场将 CA 根证书安装到
47、业务系统中;c) 证书认证机构通过签名电子邮件将 CA 根证书传输给依赖方;d) 证书认证机构将 CA 根证书绑定在分发给依赖方的软件中。7.1.2.2 终端实体密钥对的产生和发送对于组织机构证书和代码签名证书,终端实体的签名密钥应使用USB Key产生;对于机构设备证书、服务器证书和应用系统证书,终端实体可利用设备或服务器自带程序软件提供的密钥生成功能产生密钥对,也可采用专门硬件模块产生密钥对。终端实体的加密密钥对应由国家密码管理部门许可的、证书认证机构签发系统支持的加密机设备产生,由KMC管理。终端实体的加密私钥只保存在KMC和终端实体介质。在加密私钥从KMC到终端实体的传递过程中应采用国
48、家密码管理部门许可的算法加密。终端实体的签名证书公钥通过安全通道经RA传递到CA。终端实体的加密证书公钥,由KMC通过安全通道传递到CA。终端实体的公钥在从RA到CA以及从KMC到CA传递过程中,应采用国际密码管理部门许可的通讯协议及密码算法。7.1.2.3 密钥对使用期限密钥对的使用期限和其对应的终端实体证书的有效期一致。7.1.3 组织机构数字证书发布证书认证机构在证书签发完成后,将数字证书发布到服务器中供终端实体和依赖方查询和下载。7.2 组织机构数字证书使用7.2.1 组织机构数字证书使用范围DB23/T XXXXXXXXX20在黑龙江省组织机构电子政务、电子商务服务中涉及到身份认证、
49、数据传输、安全邮件、数据交换活动,通过本标准的应用接口与相关技术协议支持数字证书。7.2.2 依赖方的证书使用依赖方接收到经数字签名的信息后:a) 获得数字签名对应的证书及信任链;b) 确认该签名对应的证书是依赖方信任的证书;c) 检查证书的有效期,确认该证书在有效期内;d) 查询证书状态,确认该证书没有被注销;e) 证书的用途适用于对应的功能;f) 使用证书上的公钥验证签名。以上任一环节失败,依赖方拒绝接受签名信息。依赖方需发送加密信息给接受方时,应先获取接受方的加密证书,并使用证书公钥对信息加密,将加密证书连同加密信息一起发送给接受方。7.2.3 组织机构数字证书扩展应用组织机构数字证书支持在不改变证书信息的前提下,支持在省组织机构各应用系统中的通用。组织机构数字证书各参与实体,在设计、开发和使用组织机构数字证书的过程中,应实现组织机构数字证书的一证多用。7.3