电子印章的实现方法和服务器、客户端及可读存储介质与流程

文档序号:14785650发布日期:2018-06-27 22:28阅读:387来源:国知局
电子印章的实现方法和服务器、客户端及可读存储介质与流程

本发明涉及信息安全技术领域,尤其涉及一种电子印章的实现方法和服务器、客户端及可读存储介质。



背景技术:

随着电子政务和电子商务的发展,大量加盖电子印章的电子文档(例如公文、合同等)通过网络在不同用户之间进行传递,以提高工作的效率。这些电子文档通常使用存储有电子印章的硬件进行加盖电子印章的操作,然而电子印章存储在硬件中,由个人管理,存在遗失的问题。

因此,如何避免电子印章的遗失,成为亟待解决的问题。



技术实现要素:

本发明的实施例提供一种电子印章的实现方法和服务器、客户端及可读存储介质,从而有效地避免了电子印章的遗失。

本发明的一方面提供了一种电子印章的实现方法,包括:接收客户端发送的电子印章的使用请求,使用请求携带电子印章的识别信息;根据识别信息向客户端返回电子印章的第一印章数据。

在本发明的一个实施例中,在根据识别信息向客户端返回电子印章的第一印章数据之前,该方法还包括:根据使用请求向客户端发送随机码,其中随机码用于身份验证;接收客户端返回的数字签名,其中数字签名由客户端使用第一密码设备存储的签名私钥对随机码进行签名生成;使用签名公钥对数字签名进行验证签名,若验证签名通过则代表身份验证通过,签名私钥和签名公钥组成签名密钥对,签名密钥对与电子印章唯一绑定,其中,根据识别信息向客户端返回电子印章的第一印章数据,包括:在身份验证通过时,根据识别信息向客户端返回电子印章的第一印章数据。

在本发明的一个实施例中,在根据识别信息向客户端返回电子印章的第一印章数据之前,该方法还包括:检测第一印章数据的状态是否正常,其中,根据识别信息向客户端返回电子印章的第一印章数据,包括:在检测状态为正常时,根据识别信息向客户端返回电子印章的第一印章数据。

在本发明的一个实施例中,该方法还包括:接收客户端发送的盖章日志,以便根据盖章日志追溯电子印章的使用情况。

在本发明的一个实施例中,该方法还包括:接收客户端发送的印章元数据,并基于印章元数据生成第二印章数据;使用制章签名私钥对第二印章数据进行签名,生成第三印章数据;使用加密公钥对第三印章数据进行加密,生成第一印章数据,以便客户端使用第二密码设备存储的加密私钥对第一印章数据进行解密,加密私钥和加密公钥组成加密密钥对,加密密钥对与第二密码设备唯一绑定。

在本发明的一个实施例中,印章元数据包括签名证书和加密证书,在接收印章元数据之后,该方法还包括:向证书授权机构发送签名证书和加密证书的验证请求;接收证书授权机构返回的验证结果,验证结果用于指示签名证书和加密证书是否合法,其中,基于印章元数据生成第二印章数据,包括:在验证结果为合法时,基于印章元数据生成第二印章数据。

本发明的再一方面提供了一种电子印章的实现方法,包括:向服务器发送电子印章的使用请求,使用请求携带电子印章的识别信息;接收服务器返回的电子印章的第一印章数据。

在本发明的一个实施例中,在接收服务器返回的电子印章的第一印章数据之前,该方法还包括:接收服务器发送的随机码,随机码用于身份验证;使用第一密码设备存储的签名私钥对随机码进行签名,生成数字签名,以便服务器使用签名公钥对数字签名进行验证签名,签名公钥和签名私钥组成签名密钥对,签名密钥对与电子印章唯一绑定,其中,接收服务器返回的电子印章的第一印章数据,包括:在服务器验证数字签名通过时,接收服务器返回的电子印章的第一印章数据。

在本发明的一个实施例中,该方法还包括:使用第二密码设备存储的加密私钥对第一印章数据进行解密,生成第三印章数据;读入电子文档;使用第一密码设备存储的签名私钥对电子文档进行签名,生成盖章电子文档,盖章电子文档包括第三印章数据;向服务器发送盖章日志,盖章日志用于追溯电子印章的使用情况。

在本发明的一个实施例中,在使用第一密码设备存储的签名私钥对电子文档进行签名之前,该方法还包括:使用制章签名公钥对第三印章数据进行验证签名,其中,使用第一密码设备存储的签名私钥对电子文档进行签名,包括:在验证签名通过时,使用第一密码设备存储的签名私钥对电子文档进行签名。

本发明的另一方面提供了一种服务器,包括:接收模块,用于接收客户端发送的电子印章的使用请求,使用请求携带电子印章的识别信息;发送模块,用于根据识别信息向客户端返回电子印章的第一印章数据。

在本发明的一个实施例中,该服务器还包括:验证模块,用于根据使用请求向客户端发送随机码,其中随机码用于身份验证,并接收客户端返回的数字签名,其中数字签名由客户端使用第一密码设备存储的签名私钥对随机码进行签名生成,还使用签名公钥对数字签名进行验证签名,若验证签名通过则代表身份验证通过,签名私钥和签名公钥组成签名密钥对,签名密钥对与电子印章唯一绑定,其中,发送模块在身份验证通过时,根据识别信息向客户端返回电子印章的第一印章数据。

在本发明的一个实施例中,该服务器还包括:检测模块,用于检测第一印章数据的状态是否正常,其中,发送模块在检测状态为正常时,根据识别信息向客户端返回电子印章的第一印章数据。

在本发明的一个实施例中,接收模块还接收并存储客户端发送的盖章日志,以便根据盖章日志追溯电子印章的使用情况。

在本发明的一个实施例中,接收模块还接收客户端发送的印章元数据,并基于印章元数据生成第二印章数据;该服务器还包括:加密模块,用于使用制章签名私钥对第二印章数据进行签名,生成第三印章数据,并使用加密公钥对第三印章数据进行加密,生成第一印章数据,以便客户端使用第二密码设备存储的加密私钥对第一印章数据进行解密,加密私钥和加密公钥组成加密密钥对,加密密钥对与第二密码设备唯一绑定。

在本发明的一个实施例中,印章元数据包括签名证书和加密证书,发送模块还向证书授权机构发送签名证书和加密证书的验证请求;接收模块还接收证书授权机构返回的验证结果,验证结果用于指示签名证书和加密证书是否合法,其中,接收模块在验证结果为合法时,基于印章元数据生成第二印章数据。

本发明的又一方面提供了一种客户端,包括:发送模块,用于向服务器发送电子印章的使用请求,使用请求携带电子印章的识别信息;接收模块,用于接收服务器返回的电子印章的第一印章数据。

在本发明的一个实施例中,接收模块还接收服务器发送的随机码,随机码用于身份验证;该客户端还包括加密模块,用于使用第一密码设备存储的签名私钥对随机码进行签名,生成数字签名,以便服务器使用签名公钥对数字签名进行验证签名,签名公钥和签名私钥组成签名密钥对,签名密钥对与电子印章唯一绑定,其中,接收模块在服务器验证数字签名通过时,接收服务器发送的电子印章的第一印章数据。

在本发明的一个实施例中,该客户端还包括:解密模块,用于使用第二密码设备存储的加密私钥对第一印章数据进行解密,生成第三印章数据;加密模块还读入电子文档,并使用第一密码设备存储的签名私钥对电子文档进行签名,生成盖章电子文档,盖章电子文档包括第三印章数据;发送模块还向服务器发送盖章日志,盖章日志用于追溯电子印章的使用情况。

在本发明的一个实施例中,解密模块还使用制章签名公钥对第三印章数据进行验证签名,其中,加密模块在验证签名通过时,使用第一密码设备存储的签名私钥对电子文档进行签名。

本发明的又一方面提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机可执行指令,计算机可执行指令用于执行如上各方面所述的电子印章的实现方法。

本发明实施例可以实现电子印章的集中管理,当用户需要使用电子印章时,直接向服务器申请使用即可,从而有效地避免了电子印章的遗失。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获取其他的附图。

图1是根据本发明一个实施例的电子印章系统的示意性框架图。

图2是根据本发明一个实施例的电子印章的实现方法的示意性流程图。

图3是根据本发明另一个实施例的电子印章的实现方法的示意性流程图。

图4是根据本发明再一个实施例的电子印章的实现方法的示意性流程图。

图5是根据本发明一个实施例的电子印章的实现过程的示意性流程图。

图6是根据本发明一个实施例的服务器的示意性结构图。

图7是根据本发明另一个实施例的服务器的示意性结构图。

图8是根据本发明一个实施例的客户端的示意性结构图。

图9是根据本发明另一个实施例的客户端的示意性结构图。

图10是根据本发明一个实施例的用于实现电子印章的计算机装置的框图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

图1是根据本发明一个实施例的电子印章系统100的示意性框架图。

电子印章系统100可以包括密码设备110、客户端120和服务器130。客户端120可以通过传输网络与服务器130通信,密码设备110可以通过接口连接到客户端120上,客户端120可以使用密码设备110进行密码运算。

图2是根据本发明一个实施例的电子印章的实现方法的示意性流程图。图2的方法可以由图1的服务器130执行,如图2所示,该方法包括:

210,接收客户端发送的电子印章的使用请求,该使用请求携带电子印章的识别信息。

在电子印章系统中,所谓电子印章技术是指以数字技术模拟传统实物印章,实现对电子文件加盖印章,其加盖的电子文件可以具有与实物印章加盖的纸张文件具有相同的外观、相同的有效性和相似的使用方式。用户在加盖电子印章前,需要先获取电子印章的数据。在本发明实施例中,电子印章的数据存储在服务器上。例如,服务器可以设置数据库,数据库用于存储电子印章的数据。其中,数据库中存在识别字段,根据识别字段中的识别信息,可以对不同的电子印章的数据进行区分。除此之外,服务器可以是一台服务器,由若干台服务器组成的服务器集群,或者云计算服务中心等。

当用户需要加盖电子印章时,用户可以通过客户端向服务器发送使用请求,服务器根据使用请求响应客户端,返回电子印章的数据。其中,客户端可以为移动终端或者PC终端等,客户端可以是个人的,也可以是企业的,用户可以通过客户端软件或者网页提交电子印章的使用申请。另外,电子印章的识别信息作为电子印章之间的区别信息,可以包括签名证书、属性组合信息、编号等信息中的至少一项。例如,签名证书作为数字证书的一种,由证书授权机构(Certificate Authority,CA机构)发行,人们可以在网上用它来识别对方的身份。属性组合信息可以为电子印章名称和电子印章拥有者名称的组合等。服务器可以根据该标识信息确定待使用的电子印章。当电子印章的识别信息为签名证书时,签名证书可以从密码设备中获取,也可以从证书授权机构获取,只要合法,这里不做限定。待使用的电子印章的数据可以称为电子印章的第一印章数据。该第一印章数据可以处于加密的状态,也可以处于非加密的状态。非加密的第一印章数据可以包括印章元数据、制章者的签名信息等。

220,根据识别信息向客户端返回电子印章的第一印章数据。

具体地,服务器可以根据识别信息向客户端返回电子印章的第一印章数据。其中,当服务器中存储的第一印章数据处于加密状态时,第一印章数据的加密原则可以基于PKI(Public Key Infrastructure,公钥基础设施)体系,非对称加密方式。例如,第一印章数据在加密之前可以称为第三印章数据,基于PKI体系,服务器可以使用加密公钥对第三印章数据进行加密,生成第一印章数据,客户端可以使用加密私钥对第一印章数据进行解密,生成第三印章数据,以便客户端使用第三印章数据对待盖章文档加盖电子印章。其中,加密公钥和加密私钥组成加密密钥对,加密私钥存储在密码设备内,且加密私钥不能备份,在这里,存储加密私钥的密码设备可以称为第二密码设备,加密密钥对和第二密码设备唯一绑定。密码设备可以为智能密码钥匙(USB-Key)、IC卡(Integrated Circuit Card,集成电路卡)、指纹仪、光盘或软盘等。

本发明实施例可以实现电子印章的集中管理,当用户需要使用电子印章时,直接向服务器申请使用即可,从而有效地避免了电子印章的遗失。

在本发明的另一个实施例中,在根据识别信息向客户端返回电子印章的第一印章数据之前,图2方法可以还包括:根据使用请求向客户端发送身份验证请求;接收并验证客户端返回的身份信息,其中,根据识别信息向客户端返回电子印章的第一印章数据,包括:在验证通过时,根据识别信息向客户端返回电子印章的第一印章数据。

具体地,服务器在向客户端返回第一印章数据之前,可以先进行身份验证。例如,当服务器收到客户端发送的电子印章的使用请求之后,可以向客户端发送身份验证请求,该身份验证请求可以包括随机码、需要用户填写用户名和密码的窗口或网页等。客户端可以根据身份验证请求向服务器返回身份信息,在服务器验证通过时,可以表明申请使用该电子印章的客户端具有合法使用该电子印章的权限。

通过身份验证过程的加入,可以有效地限制电子印章的获取,进而避免电子印章的数据被非法使用。

在本发明的另一个实施例中,身份验证请求具体包括随机码,在根据识别信息向客户端返回电子印章的第一印章数据之前,图2方法还包括:根据使用请求向客户端发送随机码,随机码用于身份验证;接收客户端返回的数字签名,数字签名由客户端使用第一密码设备存储的签名私钥对随机码进行签名生成;使用签名公钥对数字签名进行验证签名,若验证签名通过则代表身份验证通过,签名私钥和签名公钥组成签名密钥对,签名密钥对与电子印章唯一绑定,其中,根据识别信息向客户端返回电子印章的第一印章数据,包括:在身份验证通过时,根据识别信息向客户端返回电子印章的第一印章数据。

具体地,可以利用随机码进行身份验证,验证过程可以采用PKI体系中的数字签名。例如,服务器验证过程可以包括:使用签名公钥对数字签名进行解密签名,生成第一杂凑值;使用哈希函数(Hash Function)对随机码进行运算,生成第二杂凑值,该随机码可以是服务器向客户端发送时预留的随机码;比较第一杂凑值和第二杂凑值是否一致,若一致则代表验证通过。签名公钥可以从签名证书获取,而签名证书可以是服务器存储的,其中,在制作电子印章时,提交的电子印章的数据包括签名证书,服务器的数据库存储有电子印章的数据,数据库中存在签名证书的字段。另外,签名证书也可以是服务器从证书授权机构获取的,只要签名公钥合法,这里不做限定。其中,签名公钥和签名私钥组成签名密钥对,签名密钥对与电子印章唯一绑定,签名私钥存储在密码设备中,且签名私钥不能备份,在这里,存储签名私钥的密码设备可以称为第一密码设备。用户在使用第一密码设备存储的签名私钥前,可以先进行身份验证,根据密码设备的不同,验证的方式也不同。例如,密码设备为USB-Key时,身份验证方式可以为PIN(Personal Identification Number,个人识别密码)码,密码设备为指纹仪时,身份验证方式可以为指纹。当电子印章属于企业公章类时,密码设备的使用者可以为企业的授权人员,当电子印章属于个人名章或者个人签名类时,密码设备的使用者可以为个人。这里的数字签名可以称为第一数字签名。

数字签名的验证,采用非对称加密方式,可以有效地进行身份验证,从而避免电子印章的数据被非法访问。

在本发明的另一个实施例中,每次发送的随机码的信息内容均不同。

具体地,当每次发送的随机码的信息内容存在相同的情况时,由随机码生成的第一数字签名可能被非法获取,进而存在电子印章的第一印章数据被非法获取的情况,导致身份验证无意义。

每次发送的随机码的信息内容均不同,可以有效地避免上述非法获取情况的发生。

可选地,作为另一个实施例,身份验证请求具有包括需要用户填写用户名和口令的窗口或网页,在根据识别信息向客户端返回电子印章的第一印章数据之前,图2方法还可以包括:接收用户名和口令;比较该用户名和口令与服务器中存储的用户名和口令是否一致,若一致则表示验证通过。

具体地,当客户端收到需要用户填写用户名和口令的窗口或网页后,用户向服务器提交用户名和口令。服务器中可以设置数据库,该数据库用于存储多个用户的用户名和口令,其中数据库中存储的口令可以为加密后的口令。

用户名和口令验证的方式,也可以有效地进行身份验证,从而避免电子印章的数据被非法获取。

在本发明的另一个实施例中,在根据识别信息向客户端返回电子印章的第一印章数据之前,图2方法还包括:检测第一印章数据的状态是否正常,其中,根据识别信息向客户端返回电子印章的第一印章数据,包括:在检测状态为正常时,根据识别信息向客户端返回电子印章的第一印章数据。

具体地,第一印章数据可以存储在服务器中的数据库,在数据库中,存在状态字段,用于标注第一印章数据的状态。第一印章数据的状态主要分为正常和非正常,在正常状态时,可以使用第一印章数据,在非正常状态时,限制使用第一印章数据。非正常状态可以包括电子印章被注销、挂失等。例如,当用户向电子印章系统提交注销电子印章的申请时,印章管理员可以将该电子印章的状态更改为注销,此时该电子印章的状态处于非正常的状态,用户无法使用第一印章数据。

电子印章的集中存储,可以实现管理员对电子印章的集中管理和控制,进而制约电子印章的使用。

在本发明的另一个实施例中,图2方法还包括:接收客户端发送的盖章日志,以便根据盖章日志追溯电子印章的使用情况。

具体地,在盖章时,客户端会向服务器传送盖章日志,盖章日志作为事件回滚的依据,可以追溯电子印章的使用情况,进而可以时时监控电子印章的使用情况。盖章日志可以包括使用者IP、所加盖文件、加盖日期等。

盖章日志的存在,可以监控电子印章的使用情况,当非法使用电子印章的情况发生时,通过管理员对电子印章数据库的管控,可以迅速制约电子印章的使用。

图3是根据本发明另一个实施例的电子印章的实现方法的示意性流程图。图3的方法可以由图1的服务器130执行,如图3所示,该方法包括:

310,接收客户端发送的印章元数据,并基于印章元数据生成第二印章数据。

具体地,在制章时,第一印章数据的生成基于印章元数据,印章元数据可以包括印章名称、印章颜色、印章大小、印章所绑定证书、印模图片等。用户可以通过客户端访问制章网页,通过制章网页向服务器提交印章元数据。服务器接收印章元数据后,可以将印章元数据按照既定的规则进行组织,生成一个具有规则的二进制数据流,这个二进制数据流可以称作第二印章数据。

320,使用制章签名私钥对第二印章数据进行签名,生成第三印章数据。

例如,为了确保电子印章数据的合法性,可以使用制章签名私钥对第二印章数据进行签名,生成第三印章数据,以便使用制章签名公钥对第三印章数据进行验证签名。制章签名公钥和制章签名私钥组成制章签名密钥对,制章签名对与制章签名证书一一对应,制章签名证书由证书授权机构颁发,制章签名证书包含制章者的信息,制章签名对归制章者所有。第三印章数据可以包括制章数字签名和第二印章数据。制章数字签名的生成过程可以包括:使用哈希函数对第二印章数据进行运算,生成第三杂凑值;使用制章签名私钥对第三杂凑值进行加密签名,生成制章数字签名。

通过对第二印章数据的签名,既可以保证数据的合法性,也可以知晓制章者的身份。

330,使用加密公钥对第三印章数据进行加密,生成第一印章数据,以便客户端使用第二密码设备存储的加密私钥对第一印章数据进行解密。

具体地,加密公钥和加密私钥组成加密密钥对,该加密密钥对与该第二密码设备唯一绑定。基于PKI体系,加密密钥对可以实现对电子印章数据进行加密和解密。加密私钥存储在第二密码设备内,且不能备份。在使用第二密码设备存储的加密私钥前,可以先进行身份的验证。例如,第二密码设备为USB-Key,在使用USB-Key内存储的加密私钥前,需要先输入PIN码,用于验证身份。

通过PKI体系的非对称加密方式,既保证了服务器中存储的电子印章数据的安全性,又限制了电子印章数据的使用,只有能够解密电子印章数据的用户,才能正常加盖电子印章。

在本发明的另一个实施例中,印章元数据包括签名证书和加密证书,其中,签名证书包括签名公钥,加密证书包括加密公钥,在接收印章元数据之后,还包括:向证书授权机构发送签名证书和加密证书的验证请求;接收证书授权机构返回的验证结果,验证结果用于指示签名证书和加密证书是否合法;其中,基于印章元数据生成第二印章数据,包括:在验证结果为合法时,基于印章元数据生成第二印章数据。

具体地,加密密钥对和加密证书唯一绑定,签名密钥对和签名证书唯一绑定。印章元数据中包括签名证书和加密证书,进而电子印章的第一印章数据对应唯一的签名密钥对,该第一印章数据也对应唯一的加密密钥对。签名密钥对中的签名私钥存储在第一密码设备内,加密密钥对中的加密私钥存储在第一密码设备内,签名私钥和加密私钥均不能备份,进而该第一印章数据对应唯一的第一密码设备,该第一印章数据也对应唯一的第二密码设备。其中,第一密码设备和第二密码设备可以是同一个设备,也可以是不同的设备。由于签名证书和加密证书确保了该第一印章数据对应密码设备的唯一性,因此在使用签名证书和加密证书进行制章前,可以先验证签名证书和加密证书的合法性。签名证书和加密证书由证书授权机构(CA机构)颁发,证书授权机构可以验证签名证书和加密证书的合法性。

通过验证签名证书和加密证书的合法性,确保了印章元数据的合法性。

图4是根据本发明再一个实施例的电子印章的实现方法的示意性流程图。图4的方法可以由图1的客户端120执行,如图4所示,该方法包括:

410,向服务器发送电子印章的使用请求,该使用请求携带电子印章的识别信息。

作为图2服务器的对应端,具体的描述可以参考对图2方法的描述,这里不再赘述。

420,接收服务器返回的电子印章的第一印章数据。

具体的描述可以参考对图2方法的描述,这里不再赘述。

本发明实施例可以实现电子印章的集中管理,当用户需要使用电子印章时,直接向服务器申请使用即可,从而有效地避免了电子印章的遗失。

在本发明的另一个实施例中,在向服务器发送电子印章的使用请求之后,图4方法可以还包括:接收服务器发送的身份验证请求;向服务器返回身份信息,其中接收服务器发送的电子印章的数据,包括:在服务器验证身份信息通过时,接收服务器发送的电子印章的数据。

具体的描述可以参考对图2方法的实施例的描述,这里不再赘述。

在本发明的另一个实施例中,身份验证请求包括随机码,在接收服务器返回的电子印章的第一印章数据之前,还包括:接收服务器发送的随机码,随机码用于身份验证;使用第一密码设备存储的签名私钥对随机码进行签名,生成数字签名,以便服务器使用签名公钥对数字签名进行验证签名,签名公钥和签名私钥组成签名密钥对,签名密钥对与电子印章唯一绑定,其中,接收服务器返回的电子印章的第一印章数据,包括:在服务器验证数字签名通过时,接收服务器发送的电子印章的第一印章数据。

具体地,数字签名的生成过程可以包括:使用哈希函数对随机码进行运算,生成第一杂凑值,这里的随机码是服务器发送给客户端的;使用密码设备存储的签名私钥对第一杂凑值进行加密签名,生成数字签名,这个数字签名是上述第一数字签名。其它的描述可以参考对图2方法的实施例的描述,这里不再赘述。

在本发明的另一个实施例中,每次接收的随机码的信息内容均不同。

具体地,当每次接收的随机码的信息内容存在相同的情况时,由随机码生成的数字签名在向服务器返回时可能被非法获取,进而存在电子印章的数据被非法获取的情况,导致身份验证无意义。

每次接收的随机码的信息内容均不同,可以有效地避免电子印章的数据被非法获取。

可选地,作为另一个实施例,身份验证请求包括需要用户填写用户名和口令的窗口或网页,其中向服务器返回身份信息,该身份信息包括:用户名和口令。

具体地,当客户端收到需要用户填写用户名和口令的窗口或网页后,用户可以输入用户名和口令,并向服务器提交该用户名和口令。服务器中可以设置数据库,数据库中存储有多个用户的用户名和口令。当服务器收到上述用户的用户名和口令后,可以与数据库中存储的用户名和口令进行对比,当对比结果为一致时,表示验证通过,当对比结果为不一致时,表示验证未通过。这里,数据库中存储的口令可以为加密后的口令。

用户名和口令验证的方式,也可以有效地确定用户的身份,从而避免电子印章的数据被非法获取。

在本发明的另一个实施例中,图4方法还包括:使用第二密码设备存储的加密私钥对第一印章数据进行解密,生成第三印章数据;读入电子文档;使用第一密码设备存储的签名私钥对电子文档进行签名,生成盖章电子文档,该盖章电子文档包括第三印章数据;向服务器发送盖章日志,该盖章日志用于追溯电子印章的使用情况。

具体地,用户将第二密码设备与客户端进行连接,进而客户端可以使用第二密码设备存储的加密私钥。第一印章数据由服务器对第三印章数据使用加密公钥加密生成,客户端在使用第一印章数据之前,使用第二密码设备存储的加密私钥对第一印章数据进行解密,生成第三印章数据。另外,上述的电子文档可以是Web网页、PDF文档等,也可以是电子数据,这里不做限定。客户端使用第一密码设备存储的签名私钥对电子文档进行签名,生成的盖章电子文档,除了包括第三印章数据外,还可以包括第二数字签名。这个第二数字签名的生成过程包括:使用哈希函数对电子文档进行运算,生成第四杂凑值;使用第一密码设备存储的签名私钥对第四杂凑值进行加密签名,生成第二数字签名。该盖章电子文档的接收者,可以使用签名公钥对第二数字签名进行签名验证,进而确认接收的盖章电子文档是否发生篡改。其它的描述可以参考对图2方法的实施例的描述,这里不再赘述。

在本发明的另一个实施例中,在使用第一密码设备存储的签名私钥对电子文档进行签名之前,图4方法还包括:使用制章签名公钥对第三印章数据进行验证签名,其中,使用第一密码设备存储的签名私钥对电子文档进行签名,包括:在验证签名通过时,使用第一密码设备存储的签名私钥对电子文档进行签名。

具体地,客户端在使用第一密码设备存储的签名私钥对电子文档进行签名之前,可以先进行第三印章数据的验证。第三印章数据由服务器使用制章签名私钥对第二印章数据进行加密生成,第三印章数据包括制章数字签名和第二印章数据,因此可以使用制章签名公钥对第三印章数据进行验证签名。验证签名的过程可以包括:使用制章签名公钥对制章数字签名进行解密签名,生成第三杂凑值;使用哈希函数对第二印章数据进行运算,生成第五杂凑值;比较第三杂凑值和第五杂凑值是否一致,若一致则代表验证通过。

对第三印章数据的验证,可以避免加盖电子印章使用的第三印章数据是经过篡改的数据,保证了第三印章数据的合法性。

下面结合具体例子,更加详细地描述本发明的实施例。

图5是根据本发明一个实施例的电子印章的实现过程的示意性流程图。

504,客户端向服务器发送制章页面的访问请求。

当用户需要制作电子印章的时候,可以通过制章页面申请制作电子印章。

507,服务器向客户端返回制章页面。

服务器响应客户端发送的制章页面访问请求,将制章页面返回给客户端。

510,客户端读取USB-Key中的签名证书和加密证书。

电子印章的数据包括签名证书和加密证书,在制作电子印章时,用户将USB-Key插入客户端,使客户端可以读取USB-Key中存储的签名证书和加密证书。签名证书和加密证书由CA机构(Certificate Authority,证书授权中心)颁发,CA机构可以验证签名证书和加密证书的合法性。

514,在制章页面填写印章元数据。

印章元数据,除了包括签名证书和加密证书外,还包括印章名称、印章颜色、印章大小、印模图片等。其中,签名证书和加密证书是电子印章所绑定的证书。用户可以通过制章页面向服务器提交印章元数据。

517,客户端向服务器提交印章元数据。

用户可以通过制章网页填入印章名称、印章颜色、印章大小、印模图片、印章所绑定的证书等印章元数据,并通过客户端将这些印章元数据提交给服务器。

520,服务器向CA机构发送签名证书和加密证书的验证请求。

服务器在收到客户端提交的印章元数据后,需要对印章元数据中的签名证书和加密证书的合法性进行验证。服务器提取印章元数据中的签名证书和加密证书,向CA机构发送签名证书和加密证书的合法性验证请求。

524,CA机构向服务器返回验证结果。

CA机构验证后,向服务器返回验证结果。当验证结果为非法时,服务器向客户端发送证书非法消息,用于提示用户签名证书和加密证书中至少有一个非法。当验证结果为合法时,执行527。

527,服务器将印章元数据生成第二印章数据。

服务器接收印章元数据后,可以将印章元数据按照既定的规则进行组织,生成一个具有规则的二进制数据流,这个二进制数据流可以称作第二印章数据。

530,服务器使用制章签名私钥对第二印章数据进行签名,生成第三印章数据。

为了保证印章数据的合法性,基于PKI体系,服务器可以使用哈希函数对第二印章数据进行运算,生成第三杂凑值;再使用制章签名私钥对第三杂凑值进行加密签名,生成制章数字签名;将制章数字签名和第二印章数据进行组织,生成第三印章数据。第三印章数据包括第二印章数据和制章数字签名。其中,制章签名私钥和制章签名公钥组成制章签名密钥对,制章签名密钥对归制章者所有。

534,服务器使用加密公钥对第三印章数据进行加密,生成第一印章数据。

为了确保第三印章数据的机密性,基于PKI体系,服务器可以使用加密证书中的加密公钥对第三印章数据进行加密,生成第一印章数据。另外,可以使用加密私钥对第一印章数据进行解密,生成第三印章数据。其中,加密公钥和加密私钥组成加密密钥对,加密私钥存储在USB-Key中,且不能备份,因此加密密钥对与USB-Key唯一绑定。

537,服务器将第一印章数据存储在数据库中。

服务器中设置有数据库,用于集中存储第一印章数据,管理员可以通过管理数据库来实现对电子印章的管控。

540,客户端读取USB-Key中的签名证书。

当用户需要加盖电子印章时,用户可以将USB-Key插入到客户端,使客户端可以读取USB-Key中签名证书。USB-Key作为一种智能密码钥匙,可以用于存储签名密钥对、签名证书、加密密钥对和加密证书,签名密钥对与电子印章唯一绑定,加密密钥对与USB-Key唯一绑定,签名密钥对包括签名公钥和签名私钥,加密密钥对包括加密公钥和加密私钥,签名私钥无法备份,加密私钥也无法备份。在利用USB-Key内的签名私钥或加密私钥前,需要先输入PIN码用于验证用户的身份。

544,客户端向服务器发送电子印章的使用请求。

客户端向服务器发送电子印章的使用请求,该使用请求携带签名证书,该使用请求用于请求使用第一印章数据。其中,服务器可以为单一服务器、服务器群或者云计算服务中心,服务器设置有数据库,用于实现第一印章数据的集中存储。数据库中包括签名证书的字段,且签名证书作为不同的第一印章数据之间的识别信息,服务器可以根据使用请求中携带的签名证书,确定待使用的第一印章数据。

服务器在收到签名证书后,也可以先向CA机构发送签名证书的验证请求。在服务器接收CA机构返回的验证结果为验证通过时,执行547;在验证结果为验证未通过时,服务器向客户端返回验证未通过信息。

547,服务器向客户端返回随机码。

服务器收到客户端发送的电子印章的使用请求后,生成一个随机码,用于身份验证,这个随机码的信息内容每次生成的都不相同。

550,客户端将随机码根据签名私钥生成第一数字签名。

客户端在收到服务器发送的随机码后,使用USB-Key中存储的签名私钥对随机码进行签名,生成第一数字签名。生成第一数字签名的具体过程包括:客户端使用哈希函数对随机码进行运算,生成第一杂凑值;使用USB-Key中存储的签名私钥对随机码进行加密签名,生成第一数字签名。具体地,在使用USB-Key中存储的签名私钥之前,需要用户先输入PIN码,用于验证身份。

554,客户端将第一数字签名发送给服务器。

客户端将生成的第一数字签名发送给服务器,以便服务器根据签名公钥对第一数字签名进行验证签名,以确认USB-Key内存储的签名私钥和请求使用的电子印章是否匹配。

557,服务器使用签名公钥对第一数字签名进行验证。

服务器收到第一数字签名后,使用签名证书中的签名公钥对第一数字签名进行验证签名,这里的签名证书是服务器中存储的签名证书。具体的验证过程可以包括:使用签名公钥对第一数字签名进行解密签名,生成第一杂凑值;使用哈希函数对随机码进行运算,生成第二杂凑值,该随机码是服务器向客户端发送时预留的;比较第一杂凑值和第二杂凑值是否一致,若一致则代表验证通过。

当服务器验证通过时,执行步骤560;当服务器验证未通过时,服务器向客户端发送验证未通过信息,用于提示用户验证未通过,无法正常使用电子印章的数据。

560,服务器检测数据库中第一印章数据的状态。

服务器在向客户端发送第一印章数据之前,需要先检测数据库中第一印章数据的状态。该数据库中,包括状态的字段,状态类型主要包括正常和非正常。其中正常代表第一印章数据可以正常使用,因此服务器在向客户端发送第一印章数据之前,先检测第一印章数据的状态是否处于正常的状态。若第一印章数据的状态处在正常的状态,则执行564;若第一印章数据的状态处在非正常的状态,则向服务器发送无法使用信息,用于提示用户第一印章数据无法正常使用。非正常的状态可以包括第一印章数据被注销、挂失等。

564,服务器向客户端返回第一印章数据。

签名证书和第一印章数据一一对应,服务器可以根据签名证书确定待使用的第一印章数据,并向客户端返回第一印章数据。

567,客户端使用加密私钥对第一印章数据进行解密,生成第三印章数据。

客户端收到服务器返回的第一印章数据后,使用USB-Key内存储的加密私钥对第一印章数据进行解密,生成第三印章数据。加密私钥存储在USB-Key内,且不能备份。加密私钥和加密公钥组成加密密钥对,加密密钥对与USB-Key唯一绑定。在利用加密私钥进行解密之前,用户需要先输入PIN码,用于验证身份。

570,客户端根据制章签名公钥验证第三印章数据。

客户端在利用第三印章数据加盖电子印章之前,需要先验证第三印章数据的合法性。第三印章数据包括第二印章数据和制章数字签名,具体验证第三印章数据的过程包括:客户端使用制章签名公钥对制章数字签名进行解密签名,生成第三杂凑值;使用哈希函数对第二印章数据进行运算,生成第五杂凑值;比较第三杂凑值和第五杂凑值是否一致,若一致则代表验证通过。在验证通过时,执行574;在验证未通过时,显示验证未通过信息,用于提示用户第三印章数据验证未通过。

574,客户端对待盖章文档进行盖章。

客户端先读入待盖章文档,再利用USB-Key内存储的签名私钥对待盖章文档加盖电子印章,生成盖章文档。加盖电子印章的过程可以包括:使用哈希函数对待盖章文档进行运算,生成第四杂凑值;再使用USB-Key内存储的签名私钥对第四杂凑值进行加密签名,生成第二数字签名,并将第二数字签名和第三印章数据加入待盖章文档中,生成盖章文档。客户端在对待盖章文档进行盖章之后,生成盖章日志。盖章日志包括用户信息、所加盖文件信息、加盖日期等,其中用户信息可以包括用户IP。

577,客户端向服务器发送盖章日志。

服务器接收并存储盖章日志,以便根据盖章日志追溯第一印章数据的使用情况。

上面描述了根据本发明实施例的电子印章的实现方法,下面结合图6至图9描述根据本发明实施例的服务器和客户端。

图6是根据本发明一个实施例的服务器600的示意性结构图。服务器600包括:接收模块610和发送模块620。服务器600可以为图2至图5中的服务器。

接收模块610接收客户端发送的电子印章的使用请求,该使用请求携带电子印章的识别信息。发送模块620根据识别信息向客户端返回电子印章的第一印章数据。

本发明实施例可以实现电子印章的集中管理,当用户需要使用电子印章时,直接向服务器申请使用即可,从而有效地避免了电子印章的遗失。

服务器600的接收模块610和发送模块620的操作和功能可以参考图2的方法,为了避免重复,在此不再赘述。

图7是根据本发明另一个实施例的服务器700的示意性结构图。服务器700包括:接收模块710和发送模块720。接收模块710和发送模块720与图6的接收模块610和发送模块620类似,为了避免重复,在此不再赘述。

在本发明的一个实施例中,服务器700还包括:验证模块730,根据使用请求向客户端发送随机码,其中随机码用于身份验证,并接收客户端返回的数字签名,其中数字签名由客户端使用第一密码设备存储的签名私钥对随机码进行签名生成,还使用签名公钥对数字签名进行验证签名,若验证签名通过则代表身份验证通过,签名私钥和签名公钥组成签名密钥对,签名密钥对与电子印章唯一绑定。其中,发送模块720在身份验证通过时,根据识别信息向客户端返回电子印章的第一印章数据。

在本发明的另一个实施例中,服务器700还包括:检测模块740,检测第一印章数据的状态是否正常。其中,发送模块720在检测状态为正常时,根据识别信息向客户端返回电子印章的第一印章数据。

在本发明的另一个实施例中,接收模块710还接收客户端发送的盖章日志,以便根据盖章日志追溯电子印章的使用情况。

在本发明的另一个实施例中,接收模块710还接收客户端发送的印章元数据,并基于印章元数据生成第二印章数据。服务器700还包括加密模块750,使用制章签名私钥对第二印章数据进行签名,生成第三印章数据,并使用加密公钥对第三印章数据进行加密,生成第一印章数据,以便客户端使用第二密码设备存储的加密私钥对第一印章数据进行解密,加密私钥和加密公钥组成加密密钥对,加密密钥对与第二密码设备唯一绑定。

在本发明的另一个实施例中,印章元数据包括签名证书和加密证书,发送模块720还向证书授权机构发送签名证书和加密证书的验证请求。接收模块710还接收证书授权机构返回的验证结果,验证结果用于指示签名证书和加密证书是否合法。其中,接收模块710在验证结果为合法时,基于印章元数据生成第二印章数据。

服务器700的接收模块710、发送模块720、验证模块730、检测模块740和加密模块750的操作和功能可以参考图2和图3的实施例的方法,为了避免重复,在此不再赘述。

图8是根据本发明一个实施例的客户端800的示意性结构图。客户端800包括:发送模块810和接收模块820。客户端800可以为图2至图5的客户端。

发送模块810向服务器发送电子印章的使用请求,使用请求携带电子印章的识别信息。接收模块820接收服务器返回的电子印章的第一印章数据。

本发明实施例可以实现电子印章的集中管理,当用户需要使用电子印章时,直接向服务器申请使用即可,从而有效地避免了电子印章的遗失。

客户端800的发送模块810和接收模块820的操作和功能可以参考图4的方法,为了避免重复,在此不再赘述。

图9是根据本发明另一个实施例的客户端900的示意性结构图。客户端900包括:发送模块910和接收模块920。发送模块910和接收模块920和图8的发送模块810和接收模块820类似,为了避免重复,在此不再赘述。

在本发明的另一个实施例中,接收模块920还接收服务器发送的随机码,随机码用于身份验证。客户端900还包括加密模块930,使用第一密码设备存储的签名私钥对随机码进行签名,生成数字签名,以便服务器使用签名公钥对数字签名进行验证签名,签名公钥和签名私钥组成签名密钥对,签名密钥对与电子印章唯一绑定。其中,接收模块920在服务器验证数字签名通过时,接收服务器发送的电子印章的第一印章数据。

在本发明的另一个实施例中,客户端900还包括解密模块940,使用第二密码设备存储的加密私钥对第一印章数据进行解密,生成第三印章数据。加密模块930还读入电子文档,并使用第一密码设备存储的签名私钥对电子文档进行签名,生成盖章电子文档,盖章电子文档包括第三印章数据。发送模块910还向服务器发送盖章日志,盖章日志用于追溯电子印章的使用情况。

在本发明的另一个实施例中,解密模块940还使用制章签名公钥对第三印章数据进行验证签名,其中,加密模块930在验证签名通过时,使用第一密码设备存储的签名私钥对电子文档进行签名。

客户端900的发送模块910、接收模块920、加密模块930和解密模块940的操作和功能可以参考图4的实施例的方法,为了避免重复,在此不再赘述。

图10是根据本发明一个实施例的用于实现电子印章的计算机装置1000的框图。

参照图10,装置1000包括处理组件1010,其进一步包括一个或多个处理器,以及由存储器1020所代表的存储器资源,用于存储可由处理组件1010的执行的指令,例如应用程序。存储器1020中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件1010被配置为执行指令,以执行上述电子印章的实现方法。

装置1000还可以包括一个电源组件被配置为执行装置1000的电源管理,一个有线或无线网络接口被配置为将装置1000连接到网络,和一个输入输出(I/O)接口。装置1000可以操作基于存储在存储器1020的操作系统,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM或类似。

一种非临时性计算机可读存储介质,当存储介质中的指令由上述装置1000的处理器执行时,使得上述装置1000能够执行一种电子印章的实现方法,包括:接收客户端发送的电子印章的使用请求,该使用请求携带电子印章的识别信息;根据识别信息向客户端返回电子印章的第一印章数据。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序校验码的介质。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1