信息安全技术签名消息协议语法规范响应码定义和说明.docx

上传人:b****1 文档编号:14550692 上传时间:2023-06-24 格式:DOCX 页数:30 大小:29.39KB
下载 相关 举报
信息安全技术签名消息协议语法规范响应码定义和说明.docx_第1页
第1页 / 共30页
信息安全技术签名消息协议语法规范响应码定义和说明.docx_第2页
第2页 / 共30页
信息安全技术签名消息协议语法规范响应码定义和说明.docx_第3页
第3页 / 共30页
信息安全技术签名消息协议语法规范响应码定义和说明.docx_第4页
第4页 / 共30页
信息安全技术签名消息协议语法规范响应码定义和说明.docx_第5页
第5页 / 共30页
信息安全技术签名消息协议语法规范响应码定义和说明.docx_第6页
第6页 / 共30页
信息安全技术签名消息协议语法规范响应码定义和说明.docx_第7页
第7页 / 共30页
信息安全技术签名消息协议语法规范响应码定义和说明.docx_第8页
第8页 / 共30页
信息安全技术签名消息协议语法规范响应码定义和说明.docx_第9页
第9页 / 共30页
信息安全技术签名消息协议语法规范响应码定义和说明.docx_第10页
第10页 / 共30页
信息安全技术签名消息协议语法规范响应码定义和说明.docx_第11页
第11页 / 共30页
信息安全技术签名消息协议语法规范响应码定义和说明.docx_第12页
第12页 / 共30页
信息安全技术签名消息协议语法规范响应码定义和说明.docx_第13页
第13页 / 共30页
信息安全技术签名消息协议语法规范响应码定义和说明.docx_第14页
第14页 / 共30页
信息安全技术签名消息协议语法规范响应码定义和说明.docx_第15页
第15页 / 共30页
信息安全技术签名消息协议语法规范响应码定义和说明.docx_第16页
第16页 / 共30页
信息安全技术签名消息协议语法规范响应码定义和说明.docx_第17页
第17页 / 共30页
信息安全技术签名消息协议语法规范响应码定义和说明.docx_第18页
第18页 / 共30页
信息安全技术签名消息协议语法规范响应码定义和说明.docx_第19页
第19页 / 共30页
信息安全技术签名消息协议语法规范响应码定义和说明.docx_第20页
第20页 / 共30页
亲,该文档总共30页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

信息安全技术签名消息协议语法规范响应码定义和说明.docx

《信息安全技术签名消息协议语法规范响应码定义和说明.docx》由会员分享,可在线阅读,更多相关《信息安全技术签名消息协议语法规范响应码定义和说明.docx(30页珍藏版)》请在冰点文库上搜索。

信息安全技术签名消息协议语法规范响应码定义和说明.docx

信息安全技术签名消息协议语法规范响应码定义和说明

附录A

(规范性附录)

消息协议语法规范

A.1概述

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

协议模型由请求者、响应者和它们之间的交互协议组成。

通过本协议,请求者将数字签名、验证数字签名等请求发送给响应者,由响应者完成签名验签服务并返回结果。

本规范中的接口消息协议包括导出证书、解析证书、验证证书有效性、数字签名、验证数字签名、消息签名、验证消息签名等服务功能,每个服务都按照请求--响应的步骤执行。

请求者可通过本协议获得签名验签功能,而不必关心下层PKI公钥密码基础设施的实现细节。

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

请求者组织业务服务请求,发送到响应者,并延缓自身的事务处理过程,等待响应者响应返回;响应者接收到来自请求者的业务服务请求后,检查请求的合法性,根据请求类型处理服务请求,并将处理结果返回给请求者。

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

A.2协议内容

协议内容如下:

a)请求:

也称业务服务请求,包含请求者业务请求的类型、性质以及特性数据等,该请求将被发送到响应者并得到服务。

服务请求包括如下数据:

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

2——请求类型;

3——请求包;

4——请求时间。

b)响应:

指响应者对来自请求者请求的处理响应。

响应者的响应包括如下数据:

5——协议版本(当前版本为1);

6——响应类型;

7——响应包;

8——响应时间。

c)异常情况:

当响应者处理发生错误时,需要向请求者发送错误信息。

错误可以是下列两类:

9——请求失败:

响应者验证来自请求者业务请求数据失败,请求者收到该响应后应重新组织业务请求数据进行发送。

10——内部处理失败:

响应者处理请求者业务请求过程中发生内部错误,响应者通知请求者该请求处理失败,请求者需重新组织业务请求数据进行发送。

本规范采用抽象语法表示法(ASN.1)来描述具体协议内容。

如果无特殊说明,默认使用ASN.1显式标记。

A.3请求协议

A.3.1请求数据格式

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

SVSRequest:

:

=SEQUENCE{

versionVersionDEFAULTv1,

reqTypeReqType,

requestRequest,

reqTime[0]IMPLICITGeneralizedTimeOPTIONAL,

reqTimeStampToken[1]IMPLICITReqTimeStampTokenOPTIONAL,

extAttributes[2]IMPLICITExtAttributesOPTIONAL

}

其中:

Version:

:

=INTEGER{v1(0)}

ReqType:

:

=INTEGER{

exportCert(0),

parseCert

(1),

validateCert

(2),

signData(3),

verifySignedData(4),

signDataInit(5),

signDataUpdate(6),

signDataFinal(7),

verifySignedDataInit(8),

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,

signDataInitReq[5]IMPLICTSignDataInitReq,

signDataUpdateReq[6]IMPLICTSignDataUpdateReq,

signDataFinalReq[7]IMPLICTSignDataFinalReq,

verifySignedDataInitReq[8]IMPLICTVerifySignedDataInitReq,

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请求包与请求类型值的对应关系

请求类型字符描述

请求类型值

申请包说明

exportCert

0

导出证书申请包

parseCert

1

解析证书申请包

validateCert

2

验证证书有效性申请包

signData

3

单包数字签名申请包

verifySignedData

4

单包验证数字签名申请包

signDataInit

5

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

signDataUpdate

6

多包数字签名更新申请包

signDataFinal

7

多包数字签名结束申请包

verifySignedDataInit

8

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

verifySignedDataUpdate

9

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

verifySignedDataFinal

10

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

signMessage

11

单包消息签名申请包

verifySignedMessage

12

单包验证消息签名申请包

d)请求时间

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

e)请求时间戳

request内容的时间戳。

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

f)扩展数据

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

A.4响应协议

A.4.1响应数据格式

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

SVSRespond:

:

=SEQUENCE{

versionVersionDEFAULTv1,

respTypeRespType,

respondRespond,

respTime[0]IMPLICITGeneralizedTimeOPTIONAL,

respTimeStampToken[1]IMPLICITRespTimeStampTokenOPTIONAL,

extAttributes[2]IMPLICITExtAttributesOPTIONAL

}

其中:

Version:

:

=INTEGER{v1(0)}

RespType:

:

=INTEGER{

exportCert(0),

parseCert

(1),

validateCert

(2),

signData(3),

verifySignedData(4),

signDataInit(5),

signDataUpdate(6),

signDataFinal(7),

verifySignedDataInit(8),

verifySignedDataUpdate(9),

verifySignedDataFinal(10),

signMessage(11),

verifySignedMessage(12)

}

Respond:

:

=OCTETSTRING{

exportUserCertResp[0]IMPLICTExportUserCertResp,

parseCertResp[1]IMPLICTParseCertResp,

validateCertResp[2]IMPLICTValidateCertResp,

signDataResp[3]IMPLICTSignDataResp,

verifySignedDataResp[4]IMPLICTVerifySignedDataResp,

signDataInitResp[5]IMPLICTSignDataInitResp,

signDataUpdateResp[6]IMPLICTSignDataUpdateResp,

signDataFinalResp[7]IMPLICTSignDataFinalResp,

verifySignedDataInitResp[8]IMPLICTVerifySignedDataInitResp,

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响应包与相应类型值的对应关系

应答类型字符描述

应答类型值

响应包说明

exportCert

0

导出证书响应包

parseCert

1

解析证书响应包

validateCert

2

验证证书有效性响应包

signData

3

单包数字签名响应包

verifySignedData

4

单包验证数字签名响应包

signDataInit

5

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

signDataUpdate

6

多包数字签名更新响应包

signDataFinal

7

多包数字签名结束响应包

verifySignedDataInit

8

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

verifySignedDataUpdate

9

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

verifySignedDataFinal

10

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

signMessage

11

单包消息签名响应包

verifySignedMessage

12

单包验证消息签名响应包

d)响应时间

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

e)响应时间戳

respond内容的时间戳。

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

f)扩展数据

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

A.5协议接口功能说明

A.5.1导出证书

11——ExportCertReq包

ExportCertReq包为导出证书请求格式包,当reqType取值exportCert时,请求包采用本子包,其具体格式如下:

ExportCertReq:

:

=SEQUENCE{

identificationOCTETSTRING

}

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

12——ExportCertResp包

ExportCertResp包为导出证书响应格式包,当respType取值exportCert时,响应包采用本子包,其具体格式如下:

ExportCertResp:

:

=SEQUENCE{

respValueINTEGER,

certCertificateOPTIONAL

}

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

cert表明导出的证书。

A.5.2解析证书

13——ParseCertReq包

ParseCertReq包为解析证书请求格式包,当reqType取值parseCert时,请求包采用本子包,其具体格式如下:

ParseCertReq:

:

=SEQUENCE{

infoTypeINTEGER,

certCertificate

}

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

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

14——ParseCertResp包

ParseCertResp包为解析证书响应格式包,当respType取值parseCert时,响应包采用本子包,其具体格式如下:

ParseCertResp:

:

=SEQUENCE{

respValueINTEGER,

infoOCTETSTRINGOPTIONAL

}

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

info表示获取的证书信息。

A.5.3验证证书有效性

15——ValidateCertReq包

ValidateCertReq包为验证证书有效性请求格式包,当reqType取值validateCert时,请求包采用本子包,其具体格式如下:

ValidateCertReq:

:

=SEQUENCE{

certCertificate,

ocspBOOLEANDEFAULTFALSE

}

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

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

16——ValidateCertResp包

ValidateCertResp包为验证证书有效性响应格式包,当respType取值validateCert时,响应包采用本子包,其具体格式如下:

ValidateCertResp:

:

=SEQUENCE{

respValueINTEGER,

stateINTEGEROPTIONAL

}

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

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

A.5.4单包数字签名

17——SignDataReq包

SignDataReq包为单包数字签名请求格式包,当reqType取值signData时,请求包采用本子包,其具体格式如下:

SignDataReq:

:

=SEQUENCE{

signMethodINTEGER,

keyIndexINTEGER,

keyValueOCTETSTRING,

signerIDLen[0]IMPLICTINTEGEROPTIONAL,

signerID[1]IMPLICTOCTETSTRINGOPTIONAL,

inDataLenINTEGER,

inDataOCTETSTRING

}

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

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

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

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

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

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

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

18——SignDataResp包

SignDataResp包为单包数字签名响应格式包,当respType取值signData时,响应包采用本子包,其具体格式如下:

SignDataResp:

:

=SEQUENCE{

respValueINTEGER,

signatureOCTETSTRINGOPTIONAL

}

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

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

A.5.5单包验证数字签名

19——VerifySignedDataReq包

VerifySignedDataReq包为单包验证数字签名请求格式包,当reqType取值verifySignedData时,请求包采用本子包,其具体格式如下:

VerifySignedDataReq:

:

=SEQUENCE{

signMethodINTEGER,

typeINTEGER,

cert[0]IMPLICTCertificateOPTIONAL,

certSN[1]IMPLICTOCTETSTRINGOPTIONAL,

signerIDLen[2]IMPLICTINTEGEROPTIONAL,

signerID[3]IMPLICTOCTETSTRINGOPTIONAL,

inDataLenINTEGER,

inDataOCTETSTRING,

signatureOCTETSTRING,

verifyLevelINTEGER

}

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

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

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

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

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

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

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

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

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

verifyLevel表示证书验证级别,0:

验证时间,1:

验证时间和根证书签名,2:

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

20——VerifySignedDataResp包

VerifySignedDataResp包为单包验证数字签名响应格式包,当respType取值verifySignedData时,响应包采用本子包,其具体格式如下:

VerifySignedDataResp:

:

=SEQUENCE{

respValueINTEGER

}

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

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

21——SignDataInitReq包

SignDataInitReq包为多包数字签名初始化请求格式包,当reqType取值signDataInit时,请求包采用本子包,其具体格式如下:

SignDataInitReq:

:

=SEQUENCE{

signMethodINTEGER,

signerPublicKey[0]IMPLICTOCTETSTRINGOPTIONAL,

signerIDLen[1]IMPLICTINTEGEROPTIONAL,

signerID[2]IMPLICTOCTETSTRINGOPTIONAL,

}

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

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

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

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

22——SignDataInitResp包

SignDataInitResp包为多包数字签名初始化响应格式包,当respType取值signDataInit时,响应包采用本子包,其具体格式如下:

SignDataInitResp:

:

=SEQUENCE{

respValueINTEGER,

SessionIDOCTETSTRINGOPTIONAL

}

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

SessionID表示会话标识。

A.5.7多包数字签名更新

23——SignDataUpdateReq包

SignDataInitReq包为多包数字签名更新请求格式包,当reqType取值signDataUpdate时,请求包采用本子包,其具体格式如下:

SignDataUpdateReq:

:

=SEQUENCE{

SessionIDOCTETSTRING,

inDataLenINTEGER,

inDataOCTETSTRING

}

SessionID表示会话标识;

inDataLen表示数据明文长度;

inData表示数据明文。

24——SignDataUpdateResp包

SignDataUpdateResp包为多包数字签名更新响应格式包,当respType取值signDataUpdate时,响应包采用本子包,其具体格式如下:

SignDataUpdateResp:

:

=SEQUENCE{

respValueINTEGER,

SessionIDOCTETSTRINGOPTIONAL

}

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

SessionID表示会话标识。

A.5.8多包数字签名结束

25——Sign

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 解决方案 > 其它

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2