前言
为了确保电子印章的完整性、不可伪造性,以及合法用户才能使用,需要定义一个安全的电子印章数据格式,通过数字签名,将印章图像数据与签章者等印章属性进行安全绑定,形成安全电子印章
电子印章:一种由电子印章制章者数字签名的安全数据
制章者:电子印章系统中具有电子印章制作和管理权限的机构
注:电子印章中的图像和相关信息应经制章者进行数字签名,电子印章中的制章者证书应是该机构的单位证书
印章数据结构
V4
电子印章由印章信息,制章者证书、签名算法标识、签名值等组成
印章信息
数据结构
印章头
其中:ID:固定值“ES”
version:电子印章数据结构版本号,本标准设定数值是4,代表当前版本是v4
Vid:电子印章厂商标识,在互联互通时,用于识别不同的软件厂商实现
印章标识:esID:区分电子印章的唯一标识编码,用于查找和索引其他信息
印章属性:印章类型、印章名称、签章者证书信息类型、签章者证书信息列表、制作时间、有效期起始时间、有效期终止时间
其中:
type:代表印章类型,可根据业务需要自定义
name:印章名称
certListType:签章者证书信息类型,1-数字证书,2-数字证书的杂凑值
certList:签章者证书信息列表,一个或多个签章者证书或签章者证书杂凑值组成的列表
createDate:印章制作时间
validStart:印章有效期起始时间
validEnd:印章有效期终止时间
印章图像数据:图像类型、图像数据、图像显示宽度、图像显示高度
其中:
type:印章图像数据格式类型,如GIF,BMP,JPG,PNG,SVG等
data:印章图像数据,机构的电子印章宜采用相关国家管理部门指定的印模
width:图像显示宽度(单位为毫米,mm)
height:图像显示高度(单位为毫米mm)
自定义数据
制章者证书
cert:对电子印章进行签名的制章者的数字证书,应符合GB/T 20518中Certificate定义,按DER编码格式存放
签名算法标识
signAlgID:代表签名算法OID标识,应该符合GB/T 33560的规定
示例:基于SM2算法和SM3算法的签名OID为1.2.156.10197.1.501
签名值
signedValue:制章者对电子印章格式中印章信息域SES_SealInfo,按SEQUENCE方式组成的信息内容进行数字签名所得的
v1
印章信息
印章头信息
印章属性信息
印章图片信息
印章签名信息
电子印章验证流程
a) 验证电子印章数据格式的正确性
按照电子印章格式解析电子印章,验证是否符合如上所定义的电子印章数据格式
如果电子印章数据格式不正确,则验证失败,返回错误代码并退出验证流程
b) 验证电子印章签名值是否正确
根据印章信息、制章者证书、签名算法标识来验证电子印章中的签名值是否正确
如果电子印章签名验证失败,返回错误代码并退出验证流程
c) 验证电子印章制章者证书的有效性
验证制章者证书的有效性,验证项至少包括:制章者证书信任链验证,制章者证书有效期验 证、制章者证书是否被撤销、密钥用法是否正确
d) 验证电子印章的有效期
根据印章属性中的印章有效期起始时间和有效期终止时间,验证电子印章是否过期
如果电子印章已经过期,则验证失败,返回错误代码并退出验证流程
如果上述步骤都验证成功,则电子印章验证正确有效,可正常退出验证流程