信息安全技术签名验签服务器技术规范_第1页
信息安全技术签名验签服务器技术规范_第2页
信息安全技术签名验签服务器技术规范_第3页
信息安全技术签名验签服务器技术规范_第4页
信息安全技术签名验签服务器技术规范_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

签名验签服务器技术规范

1范围

本标准规定了签名验签服务器的功能要求、安全要求、接口要求和消息协议语法规范等

有关内容。

本标准适用于签名验签服务器的研制设计、应用开发、管理和使用,也可用于指导签名

验签服务器的检测。

2规范性引用文件

下列文件对于本文件的应用是必不可少的。凡是注日期的引用文件,仅注日期的版本适

用于本文件,凡是不注日期的引用文件,其最新版本(包括所有的修改单)适用于本文件。

GB/T9813-2000微型计算机通用规范

GB/T19713-2005信息技术安全技术公钥基础设施在线证书状态协议

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

GB/T25056-2010信息安全技术证书认证系统密码及其相关安全技术规范

GB/T25069-2010信息安全技术术语

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

GB/T32918-2016信息安全技术SM2椭圆曲线公钥密码算法

GB/T33560-2017信息安全技术密码应用标识规范

GB/TAAAA信息安全技术SM2密码算法使用规范

GB/TBBBB信息安全技术SM2密码算法加密签名消息语法规范

GB/TCCCC信息安全技术密码设备应用接口规范

GB/TDDDD信息安全技术智能密码钥匙应用接口规范

GM/T0020证书应用综合服务接口规范

3术语和定义

下列术语和定义适用于本文件。

3.1

3.2安全域securitydomain

在信息系统中,单一安全策略下运行的实体的汇集。例如,由单个或一组认证机构采用

同一安全策略创建的各公钥证书的汇集。

3.3

3.4签名验签服务器signandverifyserver

用于服务端的,为应用实体提供基于PKI体系和数字证书的数字签名、验证签名等运算

功能的服务器,可以保证关键业务信息的真实性、完整性和不可否认性。

3.5

3.6应用实体applicationentity

签名验签服务

xxxx-XX-XX发布xxxx-XXXX实施

中华人民共和国国家质量监督检验检疫总局

中国国家标准化管理委员会

GB/TXXXXX—XXXX

器的服务对象,可以是个人、机构或系统,其私钥存储在签名验签服务器的密码设备中,能

够使用签名验签服务器进行签名及验签运算。

3.7

3.8用户user

与应用实体进行通信或认证的个人、机构或系统,其数字证书可导入到签名验签服务器

中。

3.9

3.10SM2算法SM2algorithm

由GB/T32918定义的一种算法。

3.11

3.12SM3算法SM3aIgorithm

由GB/T32905定义的一种算法。

4缩略语

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

API应用程序接口(ApplicationProgramInterface)

CA证书认证机构(CertificationAuthority)

CRL证书撤销列表(CertificateRevocationList)

LDAP轻量级目录访问协议(LightweightDirectoryAccessProtocol)

OCSP在线证书状态查询协议(OnlineCertificateStatusProtocol)

PKCS公钥密码标准(Public-KeyCryptographyStandard)

PK1公钥密码基础设施(PublicKeyInfrastructure)

5签名验签服务器的功能要求

5.1初始化功能

签名验签服务器的初始化主要包括系统配置、生成管理员等,使设备处于正常工作状态。

5.2与CA基础设施的连接配置功能

5.2.1CRL连接配置

签名验签服务器应支持CRL连接配置功能,通过配置管理界面,提供从CRL发布点获取

CRL、导入CRL等功能。

5.2.2OCSP连接配置

签名验签服务器可支持OCSP连接配置功能,通过配置管理界面,进行OCSP服务的连接

配置管理。OCSP连接配置应遵循GB/T19713-2005o

5.3应用管理功能

签名验签服务器的应用管理功能主要包括应用实体的注册、配置密钥、设置私钥授权码

等,并按照安全机制对应用实体的信息进行安全存储。应用实体注册的内容应包括设置应用

实体名称、配置密钥索引号、导入证书、设置IP地址(可选)等。

2

5.4证书管理和验证功能

5.4.1应用实体的密钥产生、证书申请

在签名验签服务器注册的应用实体,应由签名验签服务器产生应用实体的签名密钥对和

证书请求,并支持通过管理界面导入应用实体的签名证书、加密证书和加密密钥对。加密密

钥对的保护结构应遵循GB/TDDDD中6.4.10的要求。

5.4.2用户证书导入和存储

签名验签服务器应支持用户证书、根证书或证书链的导入,导入时应对证书的有效性进

行验证。

5.4.3应用实体的证书更新

应用实体的证书更新时应保存原来的证书,以防止以前的签名不能验证。

5.4.4证书验证

签名验签服务器应支持对证书的有效性的验证,包括验证证书有效期、验证证书签名有

效性、验证证书状态。

5.4.5备份/恢复

签名验签服务器应支持备份/恢复功能,包括密钥、证书等数据的备份/恢复。

备份操作产生的备份文件可存储到签名验签服务器外的存储介质中,应采取措施保证备

份文件的完整性。

5.5数字签名功能

签名验签服务器应支持SM2算法的数字签名功能,提供对数据、消息、文件等多种格式

的运算方式。

当签名验签服务器的公钥算法为SM2算法时,数据的结构遵循GB/TAAAA或GB/TBBBB,

5.6日志管理功能

签名验签服务器应提供日志记录、查看、审计和导出功能,具备相应的配置管理和查看

界面。日志内容分为系统管理日志、异常事件、系统服务日志等,包括登录认证、系统配

置、密钥管理等操作,认证失败、非法访问等异常事件的记录,以及与设备管理中心连接,

对相应操作进行记录,对应用接口的调用进行日志记录。

5.7时间源同步功能

签名验签服务器应能够配置时间源服务器,自动同步时间。

6签名验签服务器的安全要求

6.1密码设备要求

签名验签服务器应使用国家密码管理局审批的密码设备。调用密码设备的接口API应遵

循GB/TCCCCo

GB/TXXXXX—XXXX

6.2系统要求

签名验签服务器所使用的操作系统应进行安全加固,裁减一切不需要的模块,关闭所有

不需要的端口和服务。

6.3使用要求

签名验签服务器只接受合法的操作指令,并防止非授权用户的使用。

6.4管理要求

6.4.1管理工具

签名验签服务器通过管理工具实现对该签名验签服务器的管理功能。

6.4.2管理员身份鉴别

签名验签服务器的管理界面应具备完善的身份鉴别机制,通过智能密码钥匙、智能1C

卡等硬件介质与口令相结合的方式实现管理员身份的鉴别。管理员登录成功后,通过管理界

面进行应用管理、证书管理、系统配置以及日志查询等管理操作。

6.4.3设备管理

6.4.3.1设备初始化

签名验签服务器的初始化,除应由厂商进行的操作外,系统配置、密钥的生成(恢复)

与安装、生成管理员等均应由用户方设备管理人员完成。

6.4.3.2设备自检

签名验签服务器应具备自检功能,包括自身自检和密码设备自检。签名验签服务器使用

的密码设备应具备状态和功能自检功能,能够进行密码算法正确性检查、随机数发生器检查、

存储密钥和数据的完整性检查等。签名验签服务器的自身自检包括密码功能检测、存储信息

的完整性检查等。在检查不通过时应报警并停止工作。

6.5设备物理安全防护

签名验签服务器在工艺设计、硬件配置等方面要采取相应的保护措施,保证设备基本的

物理安全防护功能。

6.6网络部署要求

签名验签服务器应部署在应用系统的安全域内,只为安全域内的应用实体和用户服务,

不能为安全域外的用户使用,不能连接互联网。

6.7服务接口

以消息包方式提供服务的签名验签服务器,其接口应遵循附录A的要求,响应码的定义

应遵循附录D的要求。

以WEB方式提供服务的签名验签服务器,其接口应遵循附录B或附录C的要求,响应码

的定义应遵循附录D的要求。

以应用程序接口提供服务的签名验签服务器,其接口应遵循GM/T0020的要求。

应用实体可以通过内部网络、USB或者其他接口形式与签名验签服务器连接。

4

6.8环境适应性

签名验签服务器的工作环境应遵循GB/T9813中关于“气候环境适应性”的要求。

6.9可靠性

签名验签服务器的平均无故障工作时间应不低于20000小时。

GB/TXXXXX—XXXX

附录A

(规范性附录)

消息协议语法规范

A.1概述

签名验签服务的消息协议接口采用请求响应模式,如图A.1所示。协议模型由请求者、

响应者和它们之间的交互协议组成。通过本协议,请求者将数字签名、验证数字签名等请求

发送给响应者,由响应者完成签名验签服务并返回结果。本规范中的接口消息协议包括导出

证书、解析证书、验证证书有效性、数字签名、验证数字签名、消息签名、验证消息签名等

服务功能,每个服务都按照请求一响应的步骤执行。请求者可通过本协议获得签名验签功能,

而不必关心下层PKT公钥密码基础设施的实现细节。

签名验签请求

请求者响应者

签名验签响应

图A.1签名验签服务消息协议

请求者组织业务服务请求,发送到响应者,并延缓自身的事务处理过程,等待响应者响

应返回;响应者接收到来自请求者的业务服务请求后,检查请求的合法性,根据请求类型处

理服务请求,并将处理结果返回给请求者。

下面的协议内容将按照图A.1所示的框架进行。

A.2协议内容

协议内容如下:

a)请求:

也称业务服务请求,包含请求者业务请求的类型、性质以及特性数据等,该请求将被发

送到响应者并得到服务。服务请求包括如下数据:

一一协议版本(当前版本为1);

一一请求类型:

----请求包;

一一请求时间。

b)响应:

指响应者对来自请求者请求的处理响应。响应者的响应包括如下数据:

一一协议版本(当前版本为1):

——响应类型;

----响应包;

6

----响应时间。

C)异常情况:

当响应者处理发生错误时,需要向请求者发送错误信息。错误可以是下列两类:

——请求失败:响应者验证来自请求者业务请求数据失败,请求者收到该响应后应重新

组织业务请求数据进行发送。

——内部处理失败:响应者处理请求者业务请求过程中发生内部错误,响应者通知请求

者该请求处理失败,请求者需重新组织业务请求数据进行发送。

本规范采用抽象语法表示法(ASN.1)来描述具体协议内容。如果无特殊说明,默认使

用ASN.1显式标记。

A.3请求协议

A.3.1请求数据格式

请求者请求数据的基本格式如下:

SVSRequest::=SEQUENCE{

versionVersionDEFAULTvl,

reqTypeReqType,

requestRequest,

reqTime[0]IMPLICITGeneralizedTimeOPTIONAL,

reqTimeStampToken[1]IMPLICITReqTimeStampTokenOPTIONAL,

extAttributes[2]IMPLICITExtAttributesOPTIONAL

}

其中:

Version::=INTEGER{vl(0))

ReqType::=INTEGER{

exportCert(0),

parseCert(1),

validateCert(2),

signData(3),

verifySignedData(4),

signDatalnit(5),

signDataUpdate(6),

signDataFinal(7),

verifySignedDatalnit(8),

GB/TXXXXX—XXXX

verifySignedDataUpdate(9),

verifySignedDataFinal(10),

signMessage(11),

verifySignedMessage(12)

)

Request::=OCTETSTRING{

exportUserCertReq[0]IMPLICTExportUserCertReq,

parseCertReq[1]IMPLICTParseCertReq,

validateCertReq[2]IMPLICTValidateCertReq,

signDataReq[3]IMPLICTSignDataReq,

verifySignedDataReq[4]IMPLICTVerifySignedDataReq,

signDatalnitReq[5]IMPLICTSignDatalnitReq,

signDataUpdateReq[6]IMPLICTSignDataUpdateReq,

signDataFinalReq[7]IMPLICTSignDataFinalReq,

verifySignedDatalnitReq[8]IMPLICTVerifySignedDatalnitReq,

verifySignedDataUpdateReq[9]IMPLICTVerifySignedDataUpdateReq,

verifySignedDataFinalReq[10]IMPLICTVerifySignedDataFinalReq,

signMessageReq[11]IMPLICTSignMessageReq,

verifySignedMessageReq[12]IMPLICTVerifySignedMessageReq

ReqTimeStampToken::=TimeStampToken

ExtAttributes::=SETOFAttribute

A.3.2SVSRequest及其结构解释

SVSRequest包含了请求语法中的重要信息,本节将对该结构作详细的描述和解释。

a)协议版本

本项描述了请求语法的版本号,当前版本为1,取整型值0。

b)请求类型

本项描述了不同业务的请求类型值,0~999为保留值,不可占用。

c)请求包

请求包与请求类型值之间的对应关系如表A.1所示。

表A.1请求包与请求类型值的对应关系

8

请求类型字符描述请求类型值申请包说明

exportCert0导出证书申请包

parseCert1解析证书申请包

validateCert2验证证书有效性申请包

signData3单包数字签名申请包

verifySignedData4单包验证数字签名申请包

signDataInit5多包数字签名初始化申请包

signDataUpdate6多包数字签名更新申请包

signDataFinal7多包数字签名结束申请包

verifjrSignedData!nit8多包验证数字签名初始化申请包

verifySignedDatallpdate9多包验证数字签名更新申请包

verifySignedDataFinal10多包验证数字签名结束申请包

signMessage11单包消息签名申请包

verifjrSignedMessage12单包验证消息筌名申请包

d)请求时间

本项描述请求生成时间,该时间即为请求者产生请求的时间,采用GeneralizedTime

语法表示。

e)请求时间戳

request内容的时间戳。如包含此项数据,签名服务器应验证该时间戳。

f)扩展数据

依据实际业务需求添加的扩展数据。

A.4响应协议

GB/TXXXXX-XXXX

A.4.1响应数据格式

响应者响应的基本格式如下:

SVSRespond:SEQUENCE{

versionVersionDEFAULTvl,

respTypeRespType,

respondRespond,

respTime[0]IMPLICITGeneralizedTimeOPTIONAL,

respTimeStampToken[1]IMPLICITRespTimeStampTokenOPTIONAL,

extAttributes[2]IMPLICITExtAttributesOPTIONAL

)

其中:

Version::二INTEGER{vl(0)}

RespType::=INTEGER{

exportCert(0),

parseCert(1),

validateCert(2),

signData(3),

verifySignedData(4),

signDatalnit(5),

signDataUpdate(6),

signDataFinal⑺,

verifySignedDatalnit(8),

verifySignedDataUpdate(9),

verifySignedDataFinal(10),

signMessage(11),

verifySignedMessage(12)

)

Respond:-OCTETSTRING{

exportUserCertResp[0]IMPLICTExportUserCertResp,

parseCertResp[1]IMPLICTParseCertResp,

validateCertResp[2]IMPLICTValidateCertResp,

10

signDataResp[3]IMPLICTSignDataResp,

verifySignedDataResp[4]IMPLICTVerifySignedDataResp,

signDatalnitResp[5]IMPLICTSignDatalnitResp,

signDataUpdateResp[6]IMPLICTSignDataUpdateResp,

signDataFinalResp[7]IMPLICTSignDataFinalResp,

verifySignedDatalnitResp[8]IMPLICTVerifySignedDatalnitResp,

verifySignedDataUpdateResp[9]IMPLICTVerifySignedDataUpdateResp,

verifySignedDataFinalResp[10]IMPLICTVerifySignedDataFinalResp,

signMessageResp[11]IMPLICTSignMessageResp,

verifySignedMessageResp[12]IMPLICTVerifySignedMessageResp

)

respTimeStampToken::=TimeStampToken

ExtAttributes::=SETOFAttribute

A.4.2SVSRespond及其结构解释

SVSRespond包含了响应语法中的重要信息,本节将对该结构作详细的描述和解释。

a)协议版本

本项描述了响应语法的版本号,当前版本为1,取整型值0。

b)响应类型

本项描述了不同业务的响应类型值,0~999为保留值,不可占用。

c)响应包

响应包与响应类型值之间的对应关系如表A.2所示。

表A.2响应包与相应类型值的对应关系

应答类型字符描述应答类型值响应包说明

exportCert0导出证书响应包

parseCert1解析证书响应包

validateCert2验证证书有效性响应包

signData3单包数字签名响应包

verifySignedData4单包验证数字签名响应包

GB/TXXXXX—XXXX

signDatalnit5多包数字签名初始化响应包

signDataUpdate6多包数字签名更新响应包

signDataFinal7多包数字签名结束响应包

verifySignedDatalnit8多包验证数字签名初始化响应包

verifySignedDataUpdate9多包验证数字签名更新响应包

verifySignedDataFinal10多包验证数字签名结束响应包

signMessage11单包消息签名响应包

verifySignedMessage12单包验证消息签名响应包

d)响应时间

本项描述响应生成时间,该时间即为响应者产生响应的时间,采用GeneralizedTime语

法表示。

e)响应时间戳

respond内容的时间戳。如包含此项数据,客户端应验证该时间戳。

f)扩展数据

依据实际业务需求添加的扩展数据。

A.5协议接口功能说明

A.5.1导出证书

----ExportCertReq包

ExportCertReq包为导出证书请求格式包,当reqType取值exportCert时,请求

包采用本子包,其具体格式如下:

ExportCertReq::=SEQUENCE{

identificationOCTETSTRING

identification表明要导出证书的标识。

----ExportCertResp包

12

ExportCertResp包为导出证书响应格式包,当respType取值exportCert时,响

应包采用本子包,其具体格式如下:

ExportCertResp::=SEQUENCE{

respValueINTEGER,

certCertificateOPTIONAL

)

respValue表明响应码,0表示成功,非0表示错误。

cert表明导出的证书。

A.5.2解析证书

----ParseCertReq包

ParseCertReq包为解析证书请求格式包,当reqType取值parseCert时,请求包

采用本子包,其具体格式如下:

ParseCertReq::=SEQUENCE{

infoTypeINTEGER,

certCertificate

)

infoType表明要解析证书信息的类型,详细定义见GB/T33560-2017中的6.3.4

证书解析项标识;

cert表示要解析的数字证书。

----ParseCertResp包

ParseCertResp包为解析证书响应格式包,当respType取值parseCert时,响应

包采用本子包,其具体格式如下:

ParseCertResp::=SEQUENCE{

respValueINTEGER,

infoOCTETSTRINGOPTIONAL

)

respValue表明响应码,0表示成功,非0表示错误。

info表示获取的证书信息。

A.5.3验证证书有效性

----ValidateCertReq包

ValidateCertReq包为验证证书有效性请求格式包,当reqType取值validateCert

时,请求包采用本子包,其具体格式如下:

ValidateCertReq::=SEQUENCE{

GB/TXXXXX-XXXX

certCertificate,

ocspBOOLEANDEFAULTFALSE

)

cert表示要验证证书有效性的数字证书;

0csp表示是否获取证书OCSP状态,默认值为FALSE。

----ValidateCertResp包

ValidateCertResp包为验证证书有效性响应格式包,当respType取值

validateCert时,响应包采用本子包,其具体格式如下:

ValidateCertResp::=SEQUENCE{

respValueINTEGER,

stateINTEGEROPTIONAL

)

respValue表明响应码,0表示成功,非0表示错误;

state表明获取的证书OCSP状态标识。

A.5.4单包数字签名

----SignDataReq包

SignDataReq包为单包数字签名请求格式包,当reqType取值signData时,请求

包采用本子包,其具体格式如下:

SignDataReq::=SEQUENCE{

signMethodINTEGER,

keyindexINTEGER,

keyValueOCTETSTRING,

signerlDLen[0]IMPLICTINTEGEROPTIONAL,

signerlD[1]IMPLICTOCTETSTRINGOPTIONAL,

inDataLenINTEGER,

inDataOCTETSTRING

)

signMethod表明使用的签名算法类型,详细定义见GB/T33560-2017中的6.2.4

签名算法标识;

keyindex表示签名者私钥的索引值,如十进制1表示索引值为1的密钥;

keyValue表示签名者私钥权限标识码;

signerlDLen表示签名者的ID长度,当signMethod为SGD_SM3_SM2时有效;

signerlD表示签名者的ID值,当signMethod为SGD_SM3_SM2时有效;

14

inDataLen表示待签名的数据原文长度;

inData表示待签名的数据原文。

----SignDataResp包

SignDataResp包为单包数字签名响应格式包,当respType取值signData时,响

应包采用本子包,其具体格式如下:

SignDataResp::=SEQUENCE{

respValueINTEGER,

signatureOCTETSTRINGOPTIONAL

)

respValue表明响应码,0表示成功,非。表示错误;

signature表示签名值,当公钥算法为RSA时,数据的结构遵循PKCS#1;当公钥算

法为SM2时,数据的结构遵循GB/TAAAAo

A.5.5单包验证数字签名

----VerifySignedDataReq包

VerifySignedDataReq包为单包验证数字签名请求格式包,当reqType取值

verifySignedData时,请求包采用本子包,其具体格式如下:

VerifySignedDataReq::=SEQUENCE{

signMethodINTEGER,

typeINTEGER,

cert[0]IMPLICTCertificateOPTIONAL,

certSN[1]IMPLICTOCTETSTRINGOPTIONAL,

signerlDLen[2]IMPLICTINTEGEROPTIONAL,

signerlD[3]IMPLICTOCTETSTRINGOPTIONAL,

inDataLenINTEGER,

inDataOCTETSTRING,

signatureOCTETSTRING,

verifyLevelINTEGER

)

signMethod表明使用的签名算法类型,详细定义见GB/T33560-2017中的6.2.4

签名算法标识;

type表示使用验证数字签名时使用证书或证书序列号,1表示使用证书,2表示使

用证书序列号;

cert表示签名证书,type取值1时有效;

GB/TXXXXX—XXXX

certSN表示签名证书序列号,type取值2时有效;

signerlDLen表示签名者的ID长度,当signMethod为SGDSM3SM2时有效;

signerlD表示签名者的ID值,当signMethod为SGDSM3SM2时有效;

inDataLen表示待签名的数据原文长度;

inData表示待签名的数据原文;

signature表示签名值,当公钥算法为RSA时,数据的结构遵循PKCSttl;当公钥算

法为SM2时,数据的结构遵循GB/TAAAA;

verifyLevel表示证书验证级别,0:验证时间,1:验证时间和根证书签名,2:验

证时间、根证书签名和CRL。

----VerifySignedDataResp包

VerifySignedDataResp包为单包验证数字签名响应格式包,当respType取值

verifySignedData时,响应包采用本子包,其具体格式如下:

VerifySignedDataResp::=SEQUENCE{

respValueINTEGER

)

respValue表明响应码,0表示成功,非。表示错误。

A.5.6多包数字签名初始化

----SignDatalnitReq包

SignDatalnitReq包为多包数字签名初始化请求格式包,当reqType取值

signDatalnit时,请求包采用本子包,其具体格式如下:

SignDatalnitReq::=SEQUENCE{

signMethodINTEGER,

signerPublicKey[0]IMPLICTOCTETSTRINGOPTIONAL,

signerlDLen[1]IMPLICTINTEGEROPTIONAL,

signerlD[2]IMPLICTOCTETSTRINGOPTIONAL,

)

signMethod表明使用的签名算法类型,详细定义见GB/T33560-2017中6.2.4签

名算法标识;

signerPublicKey表示签名者公钥,当signMethod为SGD_SM3_SM2时有效:

signerlDLen表示签名者的ID长度,当signMethod为SGD_SM3_SM2时有效:

signerlD表示签名者的ID值,当signMethod为SGD_SM3_SM2时有效;

----SignDatalnitResp包

SignDatalnitResp包为多包数字签名初始化响应格式包,当respType取值

16

signDatalnit时,响应包采用本子包,其具体格式如下:

SignDatalnitResp::=SEQUENCE{

respValueINTEGER,

SessionlDOCTETSTRINGOPTIONAL

)

respValue表明响应码,0表示成功,非。表示错误;

SessionTD表示会话标识。

A.5.7多包数字签名更新

----SignDataUpdateReq包

SignDatalnitReq包为多包数字签名更新请求格式包,当reqType取值

signDataUpdate时,请求包采用本子包,其具体格式如下:

SignDataUpdateReq::=SEQUENCE{

SessionlDOCTETSTRING,

inDataLenINTEGER,

inDataOCTETSTRING

)

SessionlD表示会话标识;

inDataLen表示数据明文长度;

inData表示数据明文。

----SignDataUpdateResp包

SignDataUpdateResp包为多包数字签名更新响应格式包,当respType取值

signDataUpdate时,响应包采用本子包,其具体格式如下:

SignDataUpdateResp::=SEQUENCE{

respValueINTEGER,

SessionlDOCTETSTRINGOPTIONAL

)

respValue表明响应码,0表示成功,非0表示错误;

SessionlD表示会话标识。

A.5.8多包数字签名结束

----SignDataFina1Req包

SignDataReq包为多包数字签名结束请求格式包,当reqType取值signDataFinal

GB/TXXXXX-XXXX

时,请求包采用本子包,其具体格式如下:

SignDataFinalReq::=SEQUENCE{

keyindexINTEGER,

keyValueOCTETSTRING,

SessionlDOCTETSTRING

)

keyindex表示签名者私钥的索引值,如十进制1表示索引值为1的密钥;

keyValue表示签名者私钥权限标识码;

SessionlD表示会话标识。

----SignDataFina1Resp包

SignDataResp包为多包数字签名结束响应格式包,当respType取值signDataFinal

时,响应包采用本子包,其具体格式如下:

SignDataFinalResp::=SEQUENCE{

respValueINTEGER,

signatureOCTETSTRINGOPTIONAL

)

respValue表明响应码,0表示成功,非。表示错误;

signature表示签名值,当公钥算法为RSA时,,数据的结构遵循PKCS#1;当公钥算

法为SM2时,数据的结构遵循GB/TAAAAo

A.5.9多包验证数字签名初始化

----VerifySignedDatalnitReq包

VerifySignedDataInitReq包为多包验证数字签名初始化请求格式包,当reqType

取值verifySignedDatalnit时,请求包采用本子包,其具体格式如下:

VerifySignedDatalnitReq::=SEQUENCE{

signMethodINTEGER,

signerPublicKey[0]IMPLICTOCTETSTRINGOPTIONAL,

signerlDLen[1]IMPLICTINTEGEROPTIONAL,

signerll)[2]IMPLICTOCTETSTRINGOPTIONAL,

)

signMethod表明使用的签名算法类型,详细定义见GB/T33560-2017中6.2.4签

名算法标识;

signerPublicKey表示签名者公钥。当signMethod为SGDSM3SM2时有效;

signerlDLen表示签名者的ID长度,当signMethod为SGD.SM3SM2时有效;

18

signerlD表示签名者的ID值,当signMethod为SGDSM3SM2时有效;

----VerifySignedDatalnitResp包

VerifySignedDatalnitResp包为多包验证数字签名初始化响应格式包,当

respType取值verifySignedDatalnit时,响应包采用本子包,其具体格式如下:

VerifySignedDatalnitResp::=SEQUENCE{

respValueINTEGER,

SessionlDOCTETSTRINGOPTIONAL

)

respValue表明响应码,0表示成功,非0表示错误;

SessionlD表示会话标识。

A.5.10多包验证数字签名更新

----VerifySignedDataUpdateReq包

VerifySignedDataUpdateReq包为多包验证数字签名更新请求格式包,当reqType

取值verifySignedDataUpdate时,请求包采用本子包,其具体格式如下:

VerifySignedDataUpdateReq::=SEQUENCE{

SessionlDOCTETSTRING,

inDataLenINTEGER,

inDataOCTETSTRING

}

SessionlD表示会话标识;

inDataLen表示数据明文长度;

inData表示数据明文。

----VerifySignedDataUpdateResp包

VerifySignedDataUpdateResp包为多包验证数字签名更新响应格式包,当

respType取值verifySignedDataUpdate时,响应包采用本子包,其具体格式如下:

VerifySignedDataUpdateResp::=SEQUENCE{

respValueINTEGER,

SessionlDOCTETSTRINGOPTIONAL

)

respValue表明响应码,0表示成功,非0表示错误;

SessionlD表示会话标识。

A.5.11多包验证数字签名结束

GB/TXXXXX-XXXX

----VerifySignedDataFina1Req包

VerifySignedDataReq包为多包验证数字签名结束请求格式包,当reqType取值

verifySignedDataFinal时,请求包采用本子包,其具体格式如下:

VerifySignedDataFinalReq::=SEQUENCE{

typeINTEGER,

cert[0]IMPLICTCertificateOPTIONAL,

certSN[1]IMPLICTOCTETSTRINGOPTIONAL,

SessionlDOCTETSTRING,

signatureOCTETSTRING,

verifyLevelINTEGER

)

type表示使用验证数字签名时使用证书或证书序列号,1表示使用证书,2表示使

用证书序列号;

cert表示签名证书,type取值1时有效;

certSN表示签名证书序列号,type取值2时有效;

SessionlD表示会话标识;

signature表示签名值,当公钥算法为RSA时,数据的结构遵循PKCS#1;当公钥算

法为SM2时,数据的结构遵循GB/TAAAAo

verifyLevel表示证书验证级别,0:验证时间,1:验证时间和根证书签名,2:验

证时间、根证书签名和CRL。

----VerifySignedDataFinalResp包

VerifySignedDataFinalResp包为多包验证数字签名结束响应格式包,当respType

取值verifySignedDataFinal时,响应包采用本子包,其具体格式如下:

VerifySignedDataFinalResp::=SEQUENCE{

respValueINTEGER

)

respValue表明响应码,0表示成功,非0表示错误。

A.5.12消息签名

----SignMessageReq包

SignMessageReq包为消息签名请求格式包,当reqType取值signMessage时,请

求包采用本子包,其具体格式如下:

SignMessageReq::=SEQUENCE{

signMethodINTEGER,

20

keyindexINTEGER,

keyValueOCTETSTRING,

signerlDLen[0]IMPLICTINTEGEROPTIONAL,

signerlD[1]IMPLICTOCTETSTRINGOPTIONAL,

inDataLenINTEGER,

inDataOCTETSTRING,

originalText[0]IMPLICTBOOLEANOPTIONAL,

certificateChain[1]IMPLICTBOOLEANOPTIONAL,

crl[2]IMPLICTBOOLEANOPTIONAL,

signMethod表明使用的签名算法类型,详细定义见GB/T33560-2017中6.2.4签

名算法标识;

keyindex表示签名者私钥的索引值,如十进制1表示索引值为1的密钥;

keyValue表示签名者私钥权限标识码;

signerlDLen表示签名者的ID长度,当signMethod为SGD_SM3_SM2时有效;

signerlD表示签名者的1D值,当signMethod为SGD_SM3_SM2时有效;

inDataLen表示待签名的数据长度;

inData表示待签名的数据;

originalText表示是否附加原文选项;

certificateChain表示是否附加证书链选项;

crl表示是否附加黑名单选项。

----SignMessageResp包

SignMessageResp包为消息签名响应格式包,当respType取值signMessage时,

响应包采用本子包,其具体格式如下:

SignMessageResp::=SEQUENCE{

respV

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论