签名证书签名

证书签名  时间:2021-04-29  阅读:()

XXXX-XX-XX发布XXXX-XX-XX实施目次前言Ⅱ1范围12规范性引用文件13术语和定义14缩略语25签名验签服务器的功能要求25.
1初始化功能25.
2与CA基础设施的连接配置功能25.
3应用管理功能25.
4证书管理和验证功能35.
5数字签名功能35.
6日志管理功能35.
7时间源同步功能36签名验签服务器的安全要求36.
1密码设备要求36.
2系统要求46.
3使用要求46.
4管理要求46.
5设备物理安全防护46.
6网络部署要求46.
7服务接口46.
8环境适应性56.
9可靠性5附录A(规范性附录)消息协议语法规范6附录B(规范性附录)基于HTTP的签名消息协议语法规范24附录C(规范性附录)基于HTTP的签名消息协议语法规范26附录D(规范性附录)响应码定义和说明29前言本标准依据GB/T1.
1-2009给出的规则起草.
请注意本文件的某些内容可能涉及专利.
本文件的发布机构不承担识别这些专利的责任.
本标准由国家密码管理局提出.
本标准由全国信息安全标准化技术委员会(SAC/TC260)归口.
本标准起草单位:山东得安信息技术有限公司、成都卫士通信息产业股份公司、无锡江南信息安全工程技术中心、兴唐通信科技有限公司、上海格尔软件股份有限公司、长春吉大正元信息技术股份有限公司、上海市数字证书认证中心有限公司、北京数字认证股份有限公司、北京创原天地科技有限公司、北京三未信安科技发展有限公司、北京信安世纪科技有限公司.

本标准主要起草人:刘平、孔凡玉、马洪富、罗俊、徐明翼、王妮娜、郑强、赵丽丽、韩玮、李述胜、王晓晨、高志权、汪宗斌.
签名验签服务器技术规范范围本标准规定了签名验签服务器的功能要求、安全要求、接口要求和消息协议语法规范等有关内容.
本标准适用于签名验签服务器的研制设计、应用开发、管理和使用,也可用于指导签名验签服务器的检测.
规范性引用文件下列文件对于本文件的应用是必不可少的.
凡是注日期的引用文件,仅注日期的版本适用于本文件,凡是不注日期的引用文件,其最新版本(包括所有的修改单)适用于本文件.
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证书应用综合服务接口规范术语和定义下列术语和定义适用于本文件.
安全域securitydomain在信息系统中,单一安全策略下运行的实体的汇集.
例如,由单个或一组认证机构采用同一安全策略创建的各公钥证书的汇集.
签名验签服务器signandverifyserver用于服务端的,为应用实体提供基于PKI体系和数字证书的数字签名、验证签名等运算功能的服务器,可以保证关键业务信息的真实性、完整性和不可否认性.
应用实体applicationentity签名验签服务器的服务对象,可以是个人、机构或系统,其私钥存储在签名验签服务器的密码设备中,能够使用签名验签服务器进行签名及验签运算.
用户user与应用实体进行通信或认证的个人、机构或系统,其数字证书可导入到签名验签服务器中.
SM2算法SM2algorithm由GB/T32918定义的一种算法.
SM3算法SM3algorithm由GB/T32905定义的一种算法.
缩略语下列缩略语适用于本文件.
API应用程序接口(ApplicationProgramInterface)CA证书认证机构(CertificationAuthority)CRL证书撤销列表(CertificateRevocationList)LDAP轻量级目录访问协议(LightweightDirectoryAccessProtocol)OCSP在线证书状态查询协议(OnlineCertificateStatusProtocol)PKCS公钥密码标准(Public-KeyCryptographyStandard)PKI公钥密码基础设施(PublicKeyInfrastructure)签名验签服务器的功能要求初始化功能签名验签服务器的初始化主要包括系统配置、生成管理员等,使设备处于正常工作状态.
与CA基础设施的连接配置功能CRL连接配置签名验签服务器应支持CRL连接配置功能,通过配置管理界面,提供从CRL发布点获取CRL、导入CRL等功能.
OCSP连接配置签名验签服务器可支持OCSP连接配置功能,通过配置管理界面,进行OCSP服务的连接配置管理.
OCSP连接配置应遵循GB/T19713-2005.
应用管理功能签名验签服务器的应用管理功能主要包括应用实体的注册、配置密钥、设置私钥授权码等,并按照安全机制对应用实体的信息进行安全存储.
应用实体注册的内容应包括设置应用实体名称、配置密钥索引号、导入证书、设置IP地址(可选)等.

证书管理和验证功能应用实体的密钥产生、证书申请在签名验签服务器注册的应用实体,应由签名验签服务器产生应用实体的签名密钥对和证书请求,并支持通过管理界面导入应用实体的签名证书、加密证书和加密密钥对.
加密密钥对的保护结构应遵循GB/TDDDD中6.
4.
10的要求.
用户证书导入和存储签名验签服务器应支持用户证书、根证书或证书链的导入,导入时应对证书的有效性进行验证.
应用实体的证书更新应用实体的证书更新时应保存原来的证书,以防止以前的签名不能验证.
证书验证签名验签服务器应支持对证书的有效性的验证,包括验证证书有效期、验证证书签名有效性、验证证书状态.
备份/恢复签名验签服务器应支持备份/恢复功能,包括密钥、证书等数据的备份/恢复.
备份操作产生的备份文件可存储到签名验签服务器外的存储介质中,应采取措施保证备份文件的完整性.
数字签名功能签名验签服务器应支持SM2算法的数字签名功能,提供对数据、消息、文件等多种格式的运算方式.
当签名验签服务器的公钥算法为SM2算法时,数据的结构遵循GB/TAAAA或GB/TBBBB.
日志管理功能签名验签服务器应提供日志记录、查看、审计和导出功能,具备相应的配置管理和查看界面.
日志内容分为系统管理日志、异常事件、系统服务日志等,包括登录认证、系统配置、密钥管理等操作,认证失败、非法访问等异常事件的记录,以及与设备管理中心连接,对相应操作进行记录,对应用接口的调用进行日志记录.

时间源同步功能签名验签服务器应能够配置时间源服务器,自动同步时间.
签名验签服务器的安全要求密码设备要求签名验签服务器应使用国家密码管理局审批的密码设备.
调用密码设备的接口API应遵循GB/TCCCC.
系统要求签名验签服务器所使用的操作系统应进行安全加固,裁减一切不需要的模块,关闭所有不需要的端口和服务.
使用要求签名验签服务器只接受合法的操作指令,并防止非授权用户的使用.
管理要求管理工具签名验签服务器通过管理工具实现对该签名验签服务器的管理功能.
管理员身份鉴别签名验签服务器的管理界面应具备完善的身份鉴别机制,通过智能密码钥匙、智能IC卡等硬件介质与口令相结合的方式实现管理员身份的鉴别.
管理员登录成功后,通过管理界面进行应用管理、证书管理、系统配置以及日志查询等管理操作.

设备管理6.
4.
3.
1设备初始化签名验签服务器的初始化,除应由厂商进行的操作外,系统配置、密钥的生成(恢复)与安装、生成管理员等均应由用户方设备管理人员完成.
6.
4.
3.
2设备自检签名验签服务器应具备自检功能,包括自身自检和密码设备自检.
签名验签服务器使用的密码设备应具备状态和功能自检功能,能够进行密码算法正确性检查、随机数发生器检查、存储密钥和数据的完整性检查等.
签名验签服务器的自身自检包括密码功能检测、存储信息的完整性检查等.
在检查不通过时应报警并停止工作.

设备物理安全防护签名验签服务器在工艺设计、硬件配置等方面要采取相应的保护措施,保证设备基本的物理安全防护功能.
网络部署要求签名验签服务器应部署在应用系统的安全域内,只为安全域内的应用实体和用户服务,不能为安全域外的用户使用,不能连接互联网.
服务接口以消息包方式提供服务的签名验签服务器,其接口应遵循附录A的要求,响应码的定义应遵循附录D的要求.
以WEB方式提供服务的签名验签服务器,其接口应遵循附录B或附录C的要求,响应码的定义应遵循附录D的要求.
以应用程序接口提供服务的签名验签服务器,其接口应遵循GM/T0020的要求.
应用实体可以通过内部网络、USB或者其他接口形式与签名验签服务器连接.
环境适应性签名验签服务器的工作环境应遵循GB/T9813中关于"气候环境适应性"的要求.
可靠性签名验签服务器的平均无故障工作时间应不低于20000小时.
附录A(规范性附录)消息协议语法规范A.
1概述签名验签服务的消息协议接口采用请求响应模式,如图A.
1所示.
协议模型由请求者、响应者和它们之间的交互协议组成.
通过本协议,请求者将数字签名、验证数字签名等请求发送给响应者,由响应者完成签名验签服务并返回结果.
本规范中的接口消息协议包括导出证书、解析证书、验证证书有效性、数字签名、验证数字签名、消息签名、验证消息签名等服务功能,每个服务都按照请求--响应的步骤执行.
请求者可通过本协议获得签名验签功能,而不必关心下层PKI公钥密码基础设施的实现细节.

图A.
1签名验签服务消息协议请求者组织业务服务请求,发送到响应者,并延缓自身的事务处理过程,等待响应者响应返回;响应者接收到来自请求者的业务服务请求后,检查请求的合法性,根据请求类型处理服务请求,并将处理结果返回给请求者.

下面的协议内容将按照图A.
1所示的框架进行.
A.
2协议内容协议内容如下:请求:也称业务服务请求,包含请求者业务请求的类型、性质以及特性数据等,该请求将被发送到响应者并得到服务.
服务请求包括如下数据:协议版本(当前版本为1);请求类型;请求包;请求时间.
响应:指响应者对来自请求者请求的处理响应.
响应者的响应包括如下数据:协议版本(当前版本为1);响应类型;响应包;响应时间.
异常情况:当响应者处理发生错误时,需要向请求者发送错误信息.
错误可以是下列两类:请求失败:响应者验证来自请求者业务请求数据失败,请求者收到该响应后应重新组织业务请求数据进行发送.
内部处理失败:响应者处理请求者业务请求过程中发生内部错误,响应者通知请求者该请求处理失败,请求者需重新组织业务请求数据进行发送.
本规范采用抽象语法表示法(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::=TimeStampTokenExtAttributes::=SETOFAttributeA.
3.
2SVSRequest及其结构解释SVSRequest包含了请求语法中的重要信息,本节将对该结构作详细的描述和解释.
协议版本本项描述了请求语法的版本号,当前版本为1,取整型值0.
请求类型本项描述了不同业务的请求类型值,0~999为保留值,不可占用.
请求包请求包与请求类型值之间的对应关系如表A.
1所示.
表A.
1请求包与请求类型值的对应关系请求类型字符描述请求类型值申请包说明exportCert0导出证书申请包parseCert1解析证书申请包validateCert2验证证书有效性申请包signData3单包数字签名申请包verifySignedData4单包验证数字签名申请包signDataInit5多包数字签名初始化申请包signDataUpdate6多包数字签名更新申请包signDataFinal7多包数字签名结束申请包verifySignedDataInit8多包验证数字签名初始化申请包verifySignedDataUpdate9多包验证数字签名更新申请包verifySignedDataFinal10多包验证数字签名结束申请包signMessage11单包消息签名申请包verifySignedMessage12单包验证消息签名申请包请求时间本项描述请求生成时间,该时间即为请求者产生请求的时间,采用GeneralizedTime语法表示.
请求时间戳request内容的时间戳.
如包含此项数据,签名服务器应验证该时间戳.
扩展数据依据实际业务需求添加的扩展数据.
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::=TimeStampTokenExtAttributes::=SETOFAttributeA.
4.
2SVSRespond及其结构解释SVSRespond包含了响应语法中的重要信息,本节将对该结构作详细的描述和解释.
协议版本本项描述了响应语法的版本号,当前版本为1,取整型值0.
响应类型本项描述了不同业务的响应类型值,0~999为保留值,不可占用.
响应包响应包与响应类型值之间的对应关系如表A.
2所示.
表A.
2响应包与相应类型值的对应关系应答类型字符描述应答类型值响应包说明exportCert0导出证书响应包parseCert1解析证书响应包validateCert2验证证书有效性响应包signData3单包数字签名响应包verifySignedData4单包验证数字签名响应包signDataInit5多包数字签名初始化响应包signDataUpdate6多包数字签名更新响应包signDataFinal7多包数字签名结束响应包verifySignedDataInit8多包验证数字签名初始化响应包verifySignedDataUpdate9多包验证数字签名更新响应包verifySignedDataFinal10多包验证数字签名结束响应包signMessage11单包消息签名响应包verifySignedMessage12单包验证消息签名响应包响应时间本项描述响应生成时间,该时间即为响应者产生响应的时间,采用GeneralizedTime语法表示.
响应时间戳respond内容的时间戳.
如包含此项数据,客户端应验证该时间戳.
扩展数据依据实际业务需求添加的扩展数据.
A.
5协议接口功能说明A.
5.
1导出证书ExportCertReq包ExportCertReq包为导出证书请求格式包,当reqType取值exportCert时,请求包采用本子包,其具体格式如下:ExportCertReq::=SEQUENCE{identificationOCTETSTRING}identification表明要导出证书的标识.
ExportCertResp包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{certCertificate,ocspBOOLEANDEFAULTFALSE}cert表示要验证证书有效性的数字证书;ocsp表示是否获取证书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,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表示待签名的数据原文.
SignDataResp包SignDataResp包为单包数字签名响应格式包,当respType取值signData时,响应包采用本子包,其具体格式如下:SignDataResp::=SEQUENCE{respValueINTEGER,signatureOCTETSTRINGOPTIONAL}respValue表明响应码,0表示成功,非0表示错误;signature表示签名值,当公钥算法为RSA时,数据的结构遵循PKCS#1;当公钥算法为SM2时,数据的结构遵循GB/TAAAA.
A.
5.
5单包验证数字签名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.
VerifySignedDataResp包VerifySignedDataResp包为单包验证数字签名响应格式包,当respType取值verifySignedData时,响应包采用本子包,其具体格式如下:VerifySignedDataResp::=SEQUENCE{respValueINTEGER}respValue表明响应码,0表示成功,非0表示错误.
A.
5.
6多包数字签名初始化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时有效;SignDataInitResp包SignDataInitResp包为多包数字签名初始化响应格式包,当respType取值signDataInit时,响应包采用本子包,其具体格式如下:SignDataInitResp::=SEQUENCE{respValueINTEGER,SessionIDOCTETSTRINGOPTIONAL}respValue表明响应码,0表示成功,非0表示错误;SessionID表示会话标识.
A.
5.
7多包数字签名更新SignDataUpdateReq包SignDataInitReq包为多包数字签名更新请求格式包,当reqType取值signDataUpdate时,请求包采用本子包,其具体格式如下:SignDataUpdateReq::=SEQUENCE{SessionIDOCTETSTRING,inDataLenINTEGER,inDataOCTETSTRING}SessionID表示会话标识;inDataLen表示数据明文长度;inData表示数据明文.
SignDataUpdateResp包SignDataUpdateResp包为多包数字签名更新响应格式包,当respType取值signDataUpdate时,响应包采用本子包,其具体格式如下:SignDataUpdateResp::=SEQUENCE{respValueINTEGER,SessionIDOCTETSTRINGOPTIONAL}respValue表明响应码,0表示成功,非0表示错误;SessionID表示会话标识.
A.
5.
8多包数字签名结束SignDataFinalReq包SignDataReq包为多包数字签名结束请求格式包,当reqType取值signDataFinal时,请求包采用本子包,其具体格式如下:SignDataFinalReq::=SEQUENCE{keyIndexINTEGER,keyValueOCTETSTRING,SessionIDOCTETSTRING}keyIndex表示签名者私钥的索引值,如十进制1表示索引值为1的密钥;keyValue表示签名者私钥权限标识码;SessionID表示会话标识.
SignDataFinalResp包SignDataResp包为多包数字签名结束响应格式包,当respType取值signDataFinal时,响应包采用本子包,其具体格式如下:SignDataFinalResp::=SEQUENCE{respValueINTEGER,signatureOCTETSTRINGOPTIONAL}respValue表明响应码,0表示成功,非0表示错误;signature表示签名值,当公钥算法为RSA时,数据的结构遵循PKCS#1;当公钥算法为SM2时,数据的结构遵循GB/TAAAA.
A.
5.
9多包验证数字签名初始化VerifySignedDataInitReq包VerifySignedDataInitReq包为多包验证数字签名初始化请求格式包,当reqType取值verifySignedDataInit时,请求包采用本子包,其具体格式如下:VerifySignedDataInitReq::=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时有效;VerifySignedDataInitResp包VerifySignedDataInitResp包为多包验证数字签名初始化响应格式包,当respType取值verifySignedDataInit时,响应包采用本子包,其具体格式如下:VerifySignedDataInitResp::=SEQUENCE{respValueINTEGER,SessionIDOCTETSTRINGOPTIONAL}respValue表明响应码,0表示成功,非0表示错误;SessionID表示会话标识.
A.
5.
10多包验证数字签名更新VerifySignedDataUpdateReq包VerifySignedDataUpdateReq包为多包验证数字签名更新请求格式包,当reqType取值verifySignedDataUpdate时,请求包采用本子包,其具体格式如下:VerifySignedDataUpdateReq::=SEQUENCE{SessionIDOCTETSTRING,inDataLenINTEGER,inDataOCTETSTRING}SessionID表示会话标识;inDataLen表示数据明文长度;inData表示数据明文.
VerifySignedDataUpdateResp包VerifySignedDataUpdateResp包为多包验证数字签名更新响应格式包,当respType取值verifySignedDataUpdate时,响应包采用本子包,其具体格式如下:VerifySignedDataUpdateResp::=SEQUENCE{respValueINTEGER,SessionIDOCTETSTRINGOPTIONAL}respValue表明响应码,0表示成功,非0表示错误;SessionID表示会话标识.
A.
5.
11多包验证数字签名结束VerifySignedDataFinalReq包VerifySignedDataReq包为多包验证数字签名结束请求格式包,当reqType取值verifySignedDataFinal时,请求包采用本子包,其具体格式如下:VerifySignedDataFinalReq::=SEQUENCE{typeINTEGER,cert[0]IMPLICTCertificateOPTIONAL,certSN[1]IMPLICTOCTETSTRINGOPTIONAL,SessionIDOCTETSTRING,signatureOCTETSTRING,verifyLevelINTEGER}type表示使用验证数字签名时使用证书或证书序列号,1表示使用证书,2表示使用证书序列号;cert表示签名证书,type取值1时有效;certSN表示签名证书序列号,type取值2时有效;SessionID表示会话标识;signature表示签名值,当公钥算法为RSA时,数据的结构遵循PKCS#1;当公钥算法为SM2时,数据的结构遵循GB/TAAAA.
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,keyIndexINTEGER,keyValueOCTETSTRING,signerIDLen[0]IMPLICTINTEGEROPTIONAL,signerID[1]IMPLICTOCTETSTRINGOPTIONAL,inDataLenINTEGER,inDataOCTETSTRING,originalText[0]IMPLICTBOOLEANOPTIONAL,certificateChain[1]IMPLICTBOOLEANOPTIONAL,crl[2]IMPLICTBOOLEANOPTIONAL,}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表示待签名的数据;originalText表示是否附加原文选项;certificateChain表示是否附加证书链选项;crl表示是否附加黑名单选项.
SignMessageResp包SignMessageResp包为消息签名响应格式包,当respType取值signMessage时,响应包采用本子包,其具体格式如下:SignMessageResp::=SEQUENCE{respValueINTEGER,signedMessageOCTETSTRINGOPTIONAL}respValue表明响应码,0表示成功,非0表示错误;signedMessage表示消息签名数据,当公钥算法为RSA时,消息的结构遵循PKCS#7;当公钥算法为SM2时,消息的结构遵循GB/TBBBB.
A.
5.
13验证消息签名VerifySignedMessageReq包VerifySignedMessageReq包为验证消息签名请求格式包,当reqType取值verifySignedMessage时,请求包采用本子包,其具体格式如下:VerifySignedMessageReq::=SEQUENCE{inDataLenINTEGEROPTIONAL,inDataOCTETSTRINGOPTIONAL,signerIDLen[0]IMPLICTINTEGEROPTIONAL,signerID[1]IMPLICTOCTETSTRINGOPTIONAL,signedMessageOCTETSTRING}inDataLen表示数据原文长度,消息签名不附加原文时有效;inData表示数据原文,消息签名不附加原文时有效;signerIDLen表示签名者的ID长度,当消息签名的签名算法为SGD_SM3_SM2时有效;signerID表示签名者的ID值,当消息签名的签名算法为SGD_SM3_SM2时有效;signedMessage表示输入的消息签名数据,当公钥算法为RSA时,消息的结构遵循PKCS#7;当公钥算法为SM2时,消息的结构遵循GB/TBBBB.
VerifySignedMessageResp包VerifySignedMessageResp包为验证消息签名响应格式包,当respType取值verifySignedMessage时,响应包采用本子包,其具体格式如下:VerifySignedMessageResp::=SEQUENCE{respValueINTEGER}respValue表明响应码,0表示成功,非0表示错误.
附录B(规范性附录)基于HTTP的签名消息协议语法规范B.
1概述附录A中描述的ASN.
1格式是一种二进制格式,考虑到签名验证服务将被广泛用于各种WEB系统,而WEB系统更善于处理文本,为此在附录A的基础上,另行设计了一套基于HTTP协议消息协议接口,便于各类WEB系统调用.

其工作原理与附录A中的请求响应模式类似,不同的是将消息格式从二进制的ASN.
1格式,转换为易于在WEB应用和HTTP协议中传递的文本格式.
本附录只描述了从附录A的消息格式到对应HTTP格式的转换规则,而不再复述附录A中每个请求,响应的业务含义.
B.
2ASN.
1数据类型到HTTP格式的转化规则表B.
1ASN.
1数据类型到HTTP格式的转化规则ASN.
1类型HTTP字段类型示例INTEGER数字的10进制文本表示比如1将被转换为"1"BOOLEAN文本TRUE和FALSEGeneralizedTime带时区格式的时间字符串YYYYMMDDhhmm[ss[.
s.
.
.
]]{Z|+hhmm|-hhmm}20131001120000Z+0800OCTETSTRING对OCTETSTRING进行BASE64编码后的结果验证证书有效性申请包Certificate对DER格式的证书进行BASE64编码后的结果B.
3附录A中的请求与HTTP请求的转换规则附录A中的请求转换为HTTP请求时,原则如下:所有请求采用HTTP的POST模式;reqType作为URL的最终一级资源名,目录允许自定义,如:/SignServer/SignData;HTTPHeader中的Content-Type为application/x-www-form-urlencoded;HTTPHeader中的Content-Length为附录A中请求数据的实际长度;HTTPBody为ASN.
1编码的请求数据.
一个转换的实例如下:POST/SignServer/SignData1.
1\r\nContent-Type:application/x-www-form-urlencoded\r\nContent-Length:请求数据长度\r\n\r\nASN.
1数据注1:将reqType直接作为WEB路径,而不是自定义的HTTP字段,是为了在通用的WEB负载设备上进行负载.
注2:允许自定义URL目录目的是允许灵活部署多套服务,对前端应用加以区分.
注3:Content-Type和Content-Length是HTTP协议的标准字段,此处按照其原意进行使用.
注4:HTTP协议中的其他标准字段,与本附录无关,在此不再标出.
注5:对HTTP协议中的其他标准字段的使用,签名服务器可以做相应处理也可以不做处理.
B.
4附录A中的响应与HTTP响应的转换附录A中的响应转换为HTTP响应时,原则如下:包含HTTP响应码,响应码按照原意使用,在本附录中不再列出.
HTTPHeader中的Content-Type为application/x-www-form-urlencoded.
HTTPHeader中的Content-Length为附录A中请求数据的实际长度.
HTTPBody为ASN.
1编码的响应数据.
一个转换的实例如下:HTTP200OK\r\nContent-Type:application/x-www-form-urlencoded\r\nContent-Length:请求数据长度\r\n\r\nASN.
1数据注1:Content-Type和Content-Length是HTTP协议的标准字段,此处按照其原意进行使用.
注2:HTTP协议中的其他标准字段,与本附录无关,在此不再标出.
注3:对HTTP协议中的其他标准字段的使用,签名服务器可以做相应处理也可以不做处理.
附录C(规范性附录)基于HTTP的签名消息协议语法规范C.
1概述附录A中描述的ASN.
1格式是一种二进制格式,考虑到签名验证服务将被广泛用于各种WEB系统,而WEB系统更善于处理文本,为此在附录A的基础上,另行设计了一套基于HTTP协议消息协议接口,便于各类WEB系统调用.

半月湾($59.99/年),升级带宽至200M起步 三网CN2 GIA线路

在前面的文章中就有介绍到半月湾Half Moon Bay Cloud服务商有提供洛杉矶DC5数据中心云服务器,这个堪比我们可能熟悉的某服务商,如果我们有用过的话会发现这个服务商的价格比较贵,而且一直缺货。这里,于是半月湾服务商看到机会来了,于是有新增同机房的CN2 GIA优化线路。在之前的文章中介绍到Half Moon Bay Cloud DC5机房且进行过测评。这次的变化是从原来基础的年付49....

虎跃云-物理机16H/32G/50M山东枣庄高防BGP服务器低至550元每月!

虎跃科技怎么样?虎跃科技(虎跃云)是一家成立于2017年的国内专业服务商,专业主营云服务器和独立服务器(物理机)高防机房有着高端华为T级清洗能力,目前产品地区有:山东,江苏,浙江等多地区云服务器和独立服务器,今天虎跃云给大家带来了优惠活动,为了更好的促销,枣庄高防BGP服务器最高配置16核32G仅需550元/月,有需要的小伙伴可以来看看哦!产品可以支持24H无条件退款(活动产品退款请以活动规则为准...

搬瓦工VPS:高端线路,助力企业运营,10Gbps美国 cn2 gia,1Gbps香港cn2 gia,10Gbps日本软银

搬瓦工vps(bandwagonhost)现在面向中国大陆有3条顶级线路:美国 cn2 gia,香港 cn2 gia,日本软银(softbank)。详细带宽是:美国cn2 gia、日本软银,都是2.5Gbps~10Gbps带宽,香港 cn2 gia为1Gbps带宽,搬瓦工是目前为止,全球所有提供这三种带宽的VPS(云服务器)商家里面带宽最大的,成本最高的,没有第二家了! 官方网站:https...

证书签名为你推荐
支持ipadphpcms模板请教 phpcms v9 如何设置新模板为系统默认模板?企业ssl证书ssl证书多少钱一年?cisco2960思科2960如何划分vlan?重庆杨家坪猪肉摊主杀人昨天重庆九龙坡出了严重交通事故吗什么是支付宝支付宝是什么开心001开心001与开心网怎么不一样,哪个是真的?我爱试用网电信爱玩4G定向流量包开通需要交费吗电子商务世界世界前十大电子商务企业名字即时通平台寻找娱乐高科技产品
美国加州vps 花生壳域名贝锐 罗马假日广场 赵容 host1plus 圣迭戈 密码泄露 地址大全 韩国网名大全 炎黄盛世 php空间推荐 服务器干什么用的 河南移动m值兑换 t云 免费的域名 英雄联盟台服官网 免费php空间 成都主机托管 中国联通宽带测试 北京主机托管 更多