一种适用于pdf文档的数字签名方法及装置的制造方法

文档序号:10698524阅读:183来源:国知局
一种适用于pdf文档的数字签名方法及装置的制造方法
【专利摘要】本发明公开了一种适用于PDF文档的数字签名方法及装置,涉及数字签名领域。本发明的方法包括:数字签名装置根据客户端发来的会话标识确定当前用户,根据客户端发来的合同ID获取当前保存的与所述合同ID对应的PDF合同文档,将所述PDF合同文档中的原内容进行摘要运算,使用当前用户的用户证书的私钥对摘要运算结果进行签名得到数字签名信息,将所述数字签名信息和客户端发来的当前用户设置完成的签署信息添加到所述PDF合同文档中。使用本发明提供方法和装置,可以使得PDF文档具有可鉴权性、完整性和不可否认性。
【专利说明】
一种适用于PDF文档的数字签名方法及装置
技术领域
[0001]本发明涉及数字签名领域,尤其涉及一种适用于PDF文档的数字签名方法及装置。
【背景技术】
[0002]随着互联网的普及以及在线交易技术的发展,通过互联网进行在线交易已经成为一种重要的交易方式。交易中为了保护交易各方的利益,电子合同得以出现。
[0003]通常,当事人在合同书上签名或者是加盖公章后合同才发生法律效力。然而,在PDF电子合同上签字或者盖章是很困难的,目前网络交易中的电子合同只有公章图片,大部分未经过数字签名、电子认证,这类电子合同很容易被伪造和篡改。

【发明内容】

[0004]为解决现有技术中存在的问题,本发明提出了一种适用于PDF文档的数字签名方法及装置。
[0005]本发明采用的技术方案如下:一种适用于PDF文档的数字签名方法,包括:
[0006]步骤S1、签署服务器接收到客户端发来的会话标识、合同ID和设置完成的签署信息,根据所述会话标识确定当前用户,并检查当前用户的合同签署状态是否为已签署,是则向客户端返回拒绝签署消息,否则执行步骤S2;
[0007]步骤S2、所述签署服务器根据所述合同ID获取当前保存的与所述合同ID对应的PDF合同文档;将所述PDF合同文档中的原内容进行摘要运算,使用当前用户的用户证书的私钥对摘要运算结果进行签名得到数字签名信息,将所述数字签名信息和所述设置完成的签署信息添加到所述TOF合同文档中,并将当前用户的合同签署状态修改为已签署;
[0008]步骤S3、签署服务器根据所述TOF合同文档对应的所有签署者以及所有签署者各自对应的合同签署状态判断当前用户是否是最后一个签署者,是则结束,否则返回步骤SI。
[0009]当所述签署服务器接收到客户端发来拒绝签署合同请求时,从所述拒绝签署合同请求中获取拒绝原因并记录到数据库中,设置所述合同ID对应的PDF合同文档的合同状态为已作废,结束。所述设置所述合同ID对应的PDF合同文档的合同状态为已作废之后,所述结束之前还包括向所述TOF合同文档对应的所有签署者发送合同作废通知邮件。
[0010]上述步骤S3具体为,所述签署服务器遍历所有签署者的签署状态,若全部为已签署,则确定当前用户是最后一个签署者,执行步骤S4,否则从签署状态为未签署的签署者中选定下一个签署者,并向下一个签署者发送签署通知邮件,然后返回步骤SI;
[0011]步骤S4、签署服务器设置所述TOF合同文档的合同状态为已完成,并向所有签署者发送合同签署完成通知邮件,结束。
[0012]上述步骤SI和步骤S2具体包括:
[0013]步骤al、所述签署服务器接收客户端发来的会话标识、合同ID和设置完成的签署信息,根据所述会话标识确定当前用户,并检查当前用户的合同签署状态是否为已签署,是则向客户端返回拒绝签署消息,否则执行步骤a2;
[0014]步骤a2、所述签署服务器根据所述合同ID从对象存储服务器获取与所述合同ID对应的PDF合同文档;将所述PDF合同文档中的原内容进行摘要运算,使用当前用户的用户证书的私钥对摘要运算结果进行签名得到数字签名信息;
[0015]步骤a3、所述签署服务器将所述数字签名信息和所述设置完成的签署信息添加到所述PDF合同文档中得到新的PDF合同文档,将所述新的PDF合同文档发送给所述对象存储服务器,并将当前用户的合同签署状态修改为已签署。
[0016]或者是上述步骤SI和步骤S2具体包括:
[0017]步骤Cl、所述签署服务器接收客户端发来的会话标识、合同ID和设置完成的签署信息,根据所述会话标识确定当前用户,并检查当前用户的合同签署状态是否为已签署,是则向客户端返回拒绝签署消息,否则执行步骤c2;
[0018]步骤c2、所述签署服务器根据所述合同ID获取当前保存的与所述合同ID对应的PDF合同文档,将所述PDF合同文档中的原内容进行摘要运算得到摘要运算结果,根据所述摘要运算结果和当前用户对应的证书标识组成签名请求发送给CA服务器,并接收所述CA服务器返回的数字签名信息;
[0019]步骤c3、所述签署服务器将所述设置完成的签署信息和接收到的所述数字签名信息添加到所述TOF合同文档中,并将当前用户的合同签署状态修改为已签署。
[0020]本发明提供的一种适用于PDF文档的数字签名装置,包括以下功能模块:
[0021]接收模块,用于接收客户端发来的会话标识、合同ID和设置完成的签署信息;
[0022]存储模块,用于存储PDF合同文档和用户证书;
[0023]获取模块,用于根据所述接收模块接收到的所述会话标识确定当前用户并触发判断模块,还用于收到判断模块的触发时获取存储模块中存储的当前用户的用户证书、以及与所述接收模块接收到的所述合同ID对应的TOF合同文档;
[0024]判断模块,用于当所述获取模块确定当前用户时,检查当前用户的合同签署状态是否为已签署,是则向客户端返回拒绝签署消息,否则触发所述获取模块;
[0025]摘要运算模块,用于将所述获取模块获取的所述PDF合同文档中的原内容进行摘要运算得到摘要运算结果;
[0026]数字签名模块,用于使用所述获取模块获取的当前用户的用户证书的私钥对所述摘要运算模块运算得到的所述摘要运算结果进行签名得到数字签名信息;
[0027]设置模块,用于将所述接收模块接收到的所述设置完成的签署信息和所述数字签名模块签名得到的所述数字签名信息添加到所述获取模块获取的所述TOF合同文档中,并将所述获取模块确定的当前用户的合同签署状态修改为已签署;
[0028]所述判断模块,还用于根据所述获取模块获取的所述PDF合同文档对应的所有签署者以及所有签署者各自对应的合同签署状态判断当前用户是否是最后一个签署者,是则完成合同签署,否则触发接收模块。
[0029]上述判断模块,还用于当所述接收模块接收到客户端发来的会话标识时,检查所述会话标识是否有效,是则触发所述获取模块,否则向客户端返回拒绝签署消息。
[0030]上述接收模块,还用于当接收到客户端发来拒绝签署合同请求时,触发所述设置牛旲块;
[0031]所述设置模块,还用于从所述接收模块接收到的所述拒绝签署合同请求中获取拒绝原因并记录,设置所述获取模块获取的所述roF合同文档的合同状态为已作废。还用于当设置所述获取模块获取的所述TOF合同文档的合同状态为已作废之后,向所述TOF合同文档对应的所有签署者发送合同作废通知邮件。
[0032]上述判断模块,还具体用于遍历所述获取模块获取的所述PDF合同文档对应的所有签署者的合同签署状态,若全部为已签署,则确定当前用户是最后一个签署者,触发设置模块,否则从签署状态为未签署的签署者中选定下一个签署者,向下一个签署者发送签署通知邮件,并触发所述接收模块;
[0033]相应的,所述设置模块,还用于当所述判断模块出所述TOF合同文档对应的所有签署者的合同签署状态全部为已签署时设置所述获取模块获取的所述TOF合同文档的合同状态为已完成。
[0034]进一步的,还可以是:上述存储模块,用于存储用户证书;所述PDF合同文档存储在对象存储服务器;或者是,上述存储模块,用于存储roF合同文档,所述用户证书存储在CA服务器。
[0035]本发明的有益效果:采用了本发明提供的数字签名技术的PDF文档无法被修改,降低了被伪造和篡改的风险,具有可鉴权性、完整性和不可否认性。
【附图说明】
[0036]图1是实施例1提供的一种适用于PDF文档的数字签名方法流程图;
[0037]图2是实施例2提供的一种适用于PDF文档的数字签名方法流程图;
[0038]图3是图2中所示步骤6至步骤9的一种具体细化图;
[0039]图4是图2中所示步骤6至步骤9的另一种具体细化图;
[0040]图5是图2中所示步骤6至步骤9的又一种具体细化图;
[0041 ]图6是实施例3提供的一种适用于PDF文档的数字签名方法流程图;
[0042]图7是实施例4提供的一种适用于PDF文档的数字签名装置组成框图。
【具体实施方式】
[0043]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0044]实施例1
[0045]本发明提供的一种适用于PDF文档的数字签名方法,如图1所示,包括签署服务器执行以下步骤:
[0046]步骤1、接收到客户端发来的会话标识、合同ID和设置完成的签署信息,根据所述会话标识确定当前用户;
[0047]具体的,签署服务器接收到客户端发来的合同签署操作请求时,从所述合同签署操作请求中获取合同ID和会话标识;根据所述合同ID查找到当前保存的与所述合同ID对应的合同内容图片,根据所述会话标识确定需要设置的签署信息,并将所述合同内容图片和需要设置的签署信息返回给所述客户端,然后接收客户端发来的设置完成的签署信息。
[0048]优选的,当签署服务器接收到客户端发来的合同签署操作请求时还包括:签署服务器检查所述合同签署操作请求中包含的会话标识是否有效,是则根据合同ID和会话标识查找到当前保存的与当前用户对应的合同内容图片和需要设置的签署信息并返回给所述客户端,否则向客户端返回重新登录的提示信息。当用户在客户端重新登录时,签署服务器会生成新的用于标识当前用户的会话标识并返回给客户端。
[0049]步骤2、检查当前用户的合同签署状态是否为已签署,是则向客户端返回拒绝签署消息,否则执行步骤3;
[0050]步骤3、根据所述合同ID获取当前保存的与所述合同ID对应的TOF合同文档;将所述PDF合同文档中的原内容进行摘要运算,使用当前用户的用户证书的私钥对摘要运算结果进行签名得到数字签名信息;
[0051]具体的,所述数字签名信息中包含有签名值和用户证书。所述PDF合同文档的原内容与上述合同内容图片中的内容一致。
[0052]步骤4、将所述数字签名信息和所述设置完成的签署信息添加到所述TOF合同文档中,并将当前用户的合同签署状态修改为已签署;
[0053]具体的,所述PDF合同文档中包含有用于存储原内容的区域和用于存储数字签名内容的区域,将所述数字签名信息和所述设置完成的签署信息添加到所述PDF合同文档中具体为将所述数字签名信息和所述设置完成的签署信息添加到用于存储数字签名内容的区域中。
[0054]本实施例中具体的,按照PDF签名规范,已知TOF合同文档、PDF合同文档中用于存储数字签名内容的区域(例如,PDF合同文档的某一页中通过坐标确定的矩形)、图片形式的设置完成的签署信息、证书链(例如,用户证书、用户证书的上级证书以及CA证书)和数字签名信息,调用itext接口得到TOF签名结果(即步骤4中将所述数字签名信息和所述设置完成的签署信息添加到所述TOF合同文档中之后,得到的添加了所述数字签名信息和所述设置完成的签署信息的I3DF合同文档)。
[0055]步骤5、根据所述PDF合同文档对应的所有签署者以及所有签署者各自对应的合同签署状态判断当前用户是否是最后一个签署者,是则结束,否则返回步骤I。
[0056]具体的,签署服务器遍历所有签署者的签署状态,若全部为已签署,则确定当前用户是最后一个签署者,否则确定当前用户不是最后一个签署者。
[0057]进一步的,若确定当前用户是最后一个签署者,则执行:签署服务器设置合同状态为已完成并保存到数据库中,向所述PDF合同文档对应的所有签署者发送合同签署完成通知邮件,结束;具体地,合同签署完成通知邮件中包含添加了全部签署者对应的数字签名信息和签署信息的I3DF合同文档。
[0058]若确定当前用户不是最后一个签署者则执行:签署服务器选定下一个签署状态为未签署的签署者,向下一个签署者发送签署通知邮件,结束。当下一个签署者接收到签署通知邮件后将执行上述步骤I的操作,在此不再赘述。
[0059]实施例2
[0060]如图2所示,本实施例提供的一种适用于PDF文档的数字签名方法,基于客户端和签署服务器组成的系统来实现,包括以下步骤:
[0061]步骤1、客户端启动合同订立平台,根据合同ID和会话标识生成合同签署操作请求;
[0062]具体的,当签署者接收到签署通知邮件时,客户端启动合同订立平台,提示用户输入用户信息进行登录,例如,用户信息具体包括用户帐户和密码,客户端根据用户输入的用户信息获取合同ID和会话标识,根据合同ID和会话标识生成合同签署操作请求。
[0063]优选的,本步骤还包括所述合同订立平台对当前登录用户的身份进行验证的过程,具体包括,提示用户输入短信验证码,将用户输入的短信验证码发送给签署服务器进行验证,若接收到签署服务器返回的验证成功信息则当前用户身份合法,执行步骤2,若接收到签署服务器返回的验证失败信息则当前用户身份不合法,客户端提示登录失败。
[0064]或者具体包括,提示用户进行人脸验证,将接收到的用户人脸数据发送给签署服务器进行验证,若接收到签署服务器返回的验证成功信息则当前用户身份合法,执行步骤2,若接收到签署服务器返回的验证失败信息则当前用户身份不合法,客户端提示登录失败。
[0065]一般的,可以设置通过邮件安全码、邮件安全码+短信验证码、邮件安全码+人脸数据、用户帐户+密码、用户帐户+密码+短信验证码、用户帐户+密码+人脸数据等方式对注册用户或非注册用户进行身份验证。例如通过邮件安全码进行身份验证,则步骤I可以具体为,当签署者接收到签署通知邮件时,通过邮件中包含的链接地址启动并登录合同订立平台,并向签署服务器发送包含邮件安全码的合同签署操作请求。
[0066]步骤2、客户端向签署服务器发送合同签署操作请求;
[0067]步骤3、签署服务器接收所述合同签署操作请求,从所述合同签署操作请求中获取合同ID和会话标识,根据所述合同ID查找到当前保存的与所述合同ID对应的合同内容图片,根据所述会话标识确定需要设置的签署信息;
[0068]具体的,本步骤还包括签署服务器判断所述合同ID对应的合同状态是否为已完成或已作废,是则向客户端返回合同已完成或已作废的错误提示信息,否则根据所述会话标识确定当前用户,并判断当前用户的合同签署状态是否为已签署,是则向客户端返回当前用户已签署的错误提示信息,否则执行步骤4。
[0069]进一步的,若客户端的用户登录方式为邮件安全码登录,则本步骤还可以具体为,签署服务器接收所述合同签署操作请求,根据所述合同签署操作请求中包含的邮件安全码找到与其对应的合同ID和会话标识,根据所述合同ID查找到当前保存的与所述合同ID对应的合同内容图片,根据所述会话标识确定需要设置的签署信息。
[0070]步骤4、签署服务器向客户端发送所述合同内容图片和需要设置的签署信息;
[0071]具体的,所述需要设置的签署信息包括签名、签章、公司名称,进一步还可以包括签署日期。所述合同内容图片中的合同内容与TOF合同文档的原内容一致。优选的,所述合同内容图片是将合同创建者创建的合同内容转换为图片格式并保存在签署服务器中的。
[0072]步骤5、客户端接收并显示所述合同内容图片和所述需要设置的签署信息;
[0073]优选的,在步骤5与步骤6之间,当客户端接收到用户拒绝签署的操作信息时,执行:
[0074]步骤5-1、客户端从所述用户拒绝签署的操作信息中获取拒绝原因,向签署服务器发送包含所述拒绝原因的拒绝签署合同请求;
[0075]步骤5-2、签署服务器接收所述拒绝签署合同请求,从中获取拒绝原因并记录到数据库中,设置合同状态为已作废,并向所有签署者发送合同作废通知邮件,结束。
[0076]步骤6、客户端接收用户设置的签署信息;
[0077]步骤7、客户端判断所述需要设置的签署信息是否全部设置完成,是则执行步骤8,否则继续执行步骤6;
[0078]步骤8、客户端向签署服务器发送设置完成的签署信息;
[0079]步骤9、签署服务器接收所述设置完成的签署信息,将所述设置完成的签署信息以图片形式与合同内容图片合成到一起,并用合成后的图片更新当前保存的所述合同内容图片;
[0080]进一步的,上述步骤6至步骤9可以细化为图3所示内容,具体如下:
[0081 ]步骤101、客户端接收用户输入的文字形式的签署信息;
[0082]进一步的,客户端还可以将用户输入的文字形式的签署信息转换为图片形式并在客户端显示。
[0083]步骤102、客户端判断所述需要设置的签署信息是否全部设置完成,是则执行步骤103,否则继续执行步骤101;
[0084]步骤103、客户端向签署服务器发送设置完成的签署信息;
[0085]步骤104、签署服务器接收所述设置完成的签署信息,将所述设置完成的签署信息转换为图片形式,将图片形式的签署信息与合同内容图片合成到一起,并用合成后的图片更新当前保存的所述合同内容图片。
[0086]进一步的,上述步骤6至步骤9还可以细化为图4所示内容,具体如下:
[0087]步骤201、客户端接收用户选择的图片形式的签署信息;
[0088]具体的,客户端预先保存有当前用户的图片形式的签署信息供用户选择,当用户按键选择后,客户端接收并显示当前选择的图片形式的签署信息。
[0089]步骤202、客户端判断所述需要设置的签署信息是否全部设置完成,是则执行步骤203,否则继续执行步骤201 ;
[0090]步骤203、客户端向签署服务器发送设置完成的签署信息;
[0091]步骤204、签署服务器接收所述设置完成的图片形式的签署信息,将所述设置完成的图片形式的签署信息与合同内容图片合成到一起,并用合成后的图片更新当前保存的所述合同内容图片。
[0092]进一步的,上述步骤6至步骤9还可以细化为图5所示内容,具体如下:
[0093]步骤301、当用户按下设置签署信息的按钮时,客户端从签署服务器获取图片形式的签署信息并显示;
[0094]具体的,当用户按下设置签署信息的按钮时,客户端向签署服务器发送获取签署信息请求,签署服务器根据所述获取签署信息请求中包含的会话标识确定当前用户,根据当前用户的用户证书中的信息(例如,证书颁发者的可识别名即DN项)生成图片形式的签署信息并返回给客户端。
[0095]步骤302、客户端判断所述需要设置的签署信息是否全部设置完成,是则执行步骤303,否则继续执行步骤302 ;
[0096]具体的,当客户端接收到用户按下签署完成的按钮时,判断为所述需要的设置的签署信息全部设置完成,否则判断为未设置完成。
[0097]步骤303、客户端向签署服务器发送设置完成的签署信息;
[0098]步骤304、签署服务器接收所述设置完成的图片形式的签署信息,将所述设置完成的图片形式的签署信息与合同内容图片合成到一起,并用合成后的图片更新当前保存的所述合同内容图片。
[0099]步骤10、签署服务器获取与所述合同ID对应的TOF合同文档,根据所述设置完成的签署信息确定当前用户,将roF合同文档的原内容进行摘要运算,将摘要运算结果通过当前用户的用户证书的私钥进行签名得到数字签名信息,将所述数字签名信息和所述设置完成的签署信息添加到所述roF合同文档中;
[0100]具体的,所述PDF合同文档可以存储在签署服务器中,也可以使用对象存储服务器来进行存储。所述数字签名信息中包括签名值和用户证书。所述PDF合同文档的原内容与步骤3所述合同内容图片中的内容一致。优选的,所述PDF合同文档是将合同创建者创建的合同内容转换成I3DF格式并保存在签署服务器中的。
[0101]所述TOF合同文档中包含有用于存储原内容的区域和用于存储数字签名内容的区域,具体的,将所述数字签名信息和所述设置完成的签署信息添加到所述roF合同文档中具体为,将所述数字签名信息和所述设置完成的签署信息添加到用于存储数字签名内容的区域中。
[0102]具体的,所述设置完成的签署信息中包含有会话标识,签署服务器根据所述会话标识确定当前用户。
[0103]优选的,本实施例中对所述摘要运算结果进行签名还可以由CA服务器来完成,相应的,本步骤具体为:
[0104]步骤10-1、签署服务器获取与所述合同ID对应的PDF合同文档,将PDF合同文档的原内容进行摘要运算得到摘要运算结果,将摘要运算结果和证书标识发送给CA服务器;
[0105]步骤10_2、CA服务器根据所述证书标识找到对应的用户证书的私钥,并用找到的私钥对所述摘要运算结果进行签名得到数字签名信息,然后将所述数字签名信息返回给签署服务器;
[0106]具体的,所述数字签名信息中包含有签名值和用户证书。
[0107]步骤10-3、签署服务器将所述数字签名信息和所述设置完成的签署信息添加到所述PDF合同文档中得到新的TOF合同文档,并用新的PDF合同文档更新当前保存的所述合同ID对应的TOF合同文档。
[0108]步骤11、签署服务器将所述设置完成的签署信息保存到数据库中,将当前用户的合同签署状态修改为已签署;
[0109]步骤12、签署服务器判断当前用户是否是最后一个签署者,是则执行步骤13,否则执行步骤14;
[0110]具体的,签署服务器根据保存的与所述合同ID对应的所有签署者及其签署状态判断当前用户是否是最后一个签署者,具体的,签署服务器遍历所有签署者的签署状态,若全部为已签署,则确定当前用户是最后一个签署者,执行步骤13,否则选定下一个签署状态为未签署的签署者,并执行步骤14。
[0111]优选的,签署服务器中保存有合同创建者创建的PDF合同文档、合同创建者为该PDF合同文档设定的所有签署者、合同内容图片及需要设置的签署信息。步骤13、签署服务器设置合同状态为已完成并保存到数据库中,向所述PDF合同文档对应的所有签署者发送包含所述roF合同文档的合同签署完成通知邮件,结束;
[0112]步骤14、签署服务器向下一个签署者发送签署通知邮件,结束。
[0113]具体的,当下一个签署者接收到签署通知邮件时,在客户端所执行的操作详见上述步骤I。
[0114]实施例3
[0115]如图6所示,本实施例提供的一种适用于PDF文档的数字签名方法,基于客户端、签署服务器、0SS(0bject Storage Service即对象存储,简称OSS)服务器和CA服务器(CA认证机构的服务器)组成的系统来实现,包括以下步骤:
[0116]步骤1、客户端启动合同订立平台,根据合同ID和会话标识生成合同签署操作请求;
[0117]优选的,本步骤还包括所述合同订立平台对当前登录的用户身份的合法性进行验证的过程,具体包括,提示用户进行人脸验证,将接收到的用户人脸数据发送给签署服务器进行验证,若接收到签署服务器返回的验证成功信息则当前用户身份合法,执行步骤2,若接收到签署服务器返回的验证失败信息则当前用户身份不合法,客户端提示登录失败。
[0118]步骤2、客户端向签署服务器发送合同签署操作请求;
[0119]步骤3、签署服务器接收所述合同签署操作请求,从所述合同签署操作请求中获取合同ID和会话标识,根据所述合同ID查找到当前保存的与所述合同ID对应的合同内容图片,根据所述会话标识确定需要设置的签署信息;
[0120]具体的,本步骤还包括签署服务器判断所述合同ID对应的合同状态是否为已完成或已作废,是则向客户端返回合同已完成或已作废的错误提示信息,否则根据所述会话标识确定当前用户,并判断当前用户的合同签署状态是否为已签署,是则向客户端返回当前用户已签署的错误提示信息,否则执行步骤4。
[0121]步骤4、签署服务器向客户端发送所述合同内容图片和需要设置的签署信息;
[0122]具体的,所述需要设置的签署信息可以包括签名、签章、公司名称和签署日期。
[0123]优选的,本步骤之后还包括签署服务器启动计时器,优选设置计时时间为10分钟,若开始计时的10分钟之内接收到客户端发来的设置完成的签署信息,则执行步骤9的操作,否则通过客户端向用户提示重新进行身份验证。
[0124]步骤5、客户端接收并显示所述合同内容图片和所述需要设置的签署信息;
[0125]步骤6、客户端接收用户设置的签署信息;
[0126]具体的,用户设置的签署信息可以是用户从已保存信息中选择的图片形式的签署信息,也可以是用户输入文字形式的签署信息,其具体实现方式同实施例2中的描述,在此不再赘述。
[0127]步骤7、客户端判断所述需要设置的签署信息是否全部设置完成,是则执行步骤8,否则继续执行步骤6;
[0128]步骤8、客户端向签署服务器发送设置完成的签署信息;
[0129]步骤9、签署服务器接收所述设置完成的签署信息,将所述设置完成的签署信息以图片形式与合同内容图片合成到一起,并用合成后的图片更新当前保存的所述合同内容图片,根据所述合同ID组成获取TOF合同文档请求;
[0130]步骤10、签署服务器向OSS服务器发送所述获取PDF合同文档请求;
[0131]步骤11、0SS服务器从接收到的所述获取TOF合同文档请求中得到合同ID,根据所述合同ID找到对应的TOF合同文档;
[0132]步骤12、0SS服务器向签署服务器返回所述PDF合同文档;
[0133]步骤13、签署服务器接收所述PDF合同文档,将PDF合同文档的原内容进行摘要运算得到摘要运算结果,根据所述设置完成的签署信息确定当前用户,根据所述摘要运算结果和当前用户对应的证书标识组成签名请求;
[0134]具体的,所述PDF合同文档的原内容与步骤4所述合同内容图片中的合同内容一致。优选的,所述PDF合同文档和所述合同内容图片均是根据合同创建者创建的合同内容进行格式转换得到的。
[0135]进一步的,还可以是先将所述设置完成的签署信息中的公司名称和签署日期添加至IJPDF合同文档的原内容中,再对其进行摘要运算得到摘要结果。
[0136]步骤14、签署服务器向CA服务器发送所述签名请求;
[0137]步骤15、CA服务器从接收到的所述签名请求中获取摘要运算结果和证书标识,根据所述证书标识找到对应的用户证书的私钥,将摘要运算结果通过所述用户证书的私钥进行签名得到数字签名信息;
[0138]具体的,所述数字签名信息中包含有签名值和用户证书。
[0139]步骤16、CA服务器向签署服务器返回所述数字签名信息;
[0140]步骤17、签署服务器将接收到的所述数字签名信息和所述设置完成的签署信息添加到所述roF合同文档中得到新的roF合同文档;
[0141]具体的,所述PDF合同文档中包含有用于存储原内容的区域和用于存储数字签名内容的区域,本步骤具体为,将所述数字签名信息和所述设置完成的签署信息添加到用于存储数字签名内容的区域中。
[0142]步骤18、签署服务器将所述设置完成的签署信息保存到数据库中,将当前用户的合同签署状态修改为已签署;
[0143]步骤19、签署服务器判断当前用户是否是最后一个签署者,是则执行步骤21,否则执行步骤20 ;
[0144]具体的,签署服务器根据保存的与所述合同ID对应的所有签署者及其签署状态判断当前用户是否是最后一个签署者,具体的,签署服务器遍历所有签署者的签署状态,若全部为已签署,则确定当前用户是最后一个签署者,执行步骤21,否则选定下一个签署状态为未签署的签署者,并执行步骤20。
[0145]优选的,签署服务器中保存有合同创建者设定的所有签署者、合同内容图片及需要设置的签署信息。
[0146]步骤20、签署服务器向下一个签署者发送签署通知邮件,结束。
[0147]具体的,当下一个签署者接收到签署通知邮件时,在客户端所执行的操作详见上述步骤I。
[0148]步骤21、签署服务器设置合同状态为已完成并保存到数据库中;
[0149]步骤22、签署服务器向OSS服务器发送所述新的TOF合同文档,向所述新的TOF合同文档对应的所有签署者发送发送包含所述新的PDF合同文档的合同签署完成通知邮件,结束。
[0150]步骤23、0SS服务器用接收到的所述新的PDF合同文档更新所述合同ID对应的PDF合同文档。
[0151]实施例4
[0152]本实施例提供了一种适用于TOF文档的数字签名装置,如图7所示,包括:接收模块401、存储模块402、获取模块403、判断模块404、摘要运算模块405、数字签名模块406、设置模块407,各个模块的功能具体如下:
[0153]接收模块401,用于接收客户端发来的会话标识、合同ID和设置完成的签署信息;
[0154]存储模块402,用于存储PDF合同文档和用户证书;
[0155]获取模块403,用于根据所述接收模块401接收到的所述会话标识确定当前用户并触发判断模块404,还用于收到判断模块404的触发时获取存储模块402中存储的当前用户的用户证书、以及与所述接收模块401接收到的所述合同ID对应的TOF合同文档;
[0156]判断模块404,用于当所述获取模块403确定当前用户时,检查当前用户的合同签署状态是否为已签署,是则向客户端返回拒绝签署消息,否则触发所述获取模块403;
[0157]摘要运算模块405,用于将所述获取模块403获取的所述PDF合同文档中的原内容进行摘要运算得到摘要运算结果;
[0158]数字签名模块406,用于使用所述获取模块403获取的当前用户的用户证书的私钥对所述摘要运算模块405运算得到的所述摘要运算结果进行签名得到数字签名信息;
[0159]设置模块407,用于将所述接收模块401接收到的所述设置完成的签署信息和所述数字签名模块406签名得到的所述数字签名信息添加到所述获取模块403获取的所述TOF合同文档中,并将所述获取模块403确定的当前用户的合同签署状态修改为已签署;
[0160]所述判断模块404,还用于根据所述获取模块403获取的所述TOF合同文档对应的所有签署者以及所有签署者各自对应的合同签署状态判断当前用户是否是最后一个签署者,是则完成合同签署,否则触发接收模块401。
[0161 ]进一步的,本实施例中的数字签名装置还可以是包括第一收发模块;
[0162]所述第一收发模块,用于接收客户端发来的合同签署操作请求,并触发获取模块403,还用于将所述获取模块403返回的所述合同内容图片和需要设置的签署信息发送给所述客户端;
[0163]相应的,所述存储模块402,还用于存储合同内容图片;
[0164]相应的,所述获取模块403,还用于从所述第一收发模块接收到的所述合同签署操作请求中获取合同ID和会话标识,根据所述合同ID获取所述存储模块402中保存的与所述合同ID对应的合同内容图片,根据所述会话标识确定当前用户及需要设置的签署信息,并将所述合同内容图片和需要设置的签署信息发送给所述第一收发模块;
[0165]或者是,所述获取模块403,还用于根据所述第一收发模块接收到的所述合同签署操作请求中包含的邮件安全码查找到与所述邮件安全码对应的合同ID和会话标识,根据所述合同ID获取所述存储模块402中保存的与所述合同ID对应的合同内容图片,根据所述会话标识确定需要设置的签署信息,并将所述合同内容图片和需要设置的签署信息发送给所述第一收发模块;
[0166]进一步的,本实施例中的数字签名装置还包括图片生成模块,所述图片生成模块,用于将所述接收模块401接收到的所述设置完成的签署信息以图片形式与所述获取模块403获取的所述合同内容图片合成到一起,并用合成后的图片更新存储模块402中存储的合同内容图片。
[0167]相应的,所述判断模块404,还用于当所述接收模块401接收到客户端发来的会话标识时,检查所述会话标识是否有效,是则触发所述获取模块403,否则向客户端返回拒绝签署消息。
[0168]优选的,本实施例中的数字签名装置还包括验证模块;
[0169]所述验证模块,用于对当前登录到合同订立平台的用户的身份进行验证,若通过验证则触发第一收发模块,若未通过验证则向客户端发送提示登录失败的消息。
[0170]优选的,所述第一收发模块,还用于将所述获取模块403返回的所述合同内容图片和需要设置的签署信息发送给所述客户端之后,触发判断模块404;
[0171]所述判断模块404,还用于判断所述接收模块401是否是在预设时长内接收到客户端发来所述设置完成的签署信息,是则触发设置模块407,否则向客户端发送提示设置超时的消息。
[0172]优选的,所述第一收发模块,还用于当接收到客户端发来的获取签署信息请求时,根据所述获取签署信息请求中包含的会话标识确定当前用户,根据所述存储模块402中保存的当前用户的用户证书中的信息(例如DN项信息)生成图片形式的签署信息并返回给所述客户端。
[0173]进一步的,上述接收模块401,还用于当接收到客户端发来拒绝签署合同请求时,触发所述设置模块407;
[0174]相应的,所述设置模块407,还用于从所述接收模块401接收到的所述拒绝签署合同请求中获取拒绝原因并记录,设置所述获取模块403获取的所述TOF合同文档的合同状态为已作废。
[0175]所述设置模块407,还用于当设置所述获取模块403获取的所述TOF合同文档的合同状态为已作废之后,向所述roF合同文档对应的所有签署者发送合同作废通知邮件。
[0176]优选的,所述判断模块404,具体用于遍历所述获取模块403获取的所述TOF合同文档对应的所有签署者的合同签署状态,若全部为已签署,则确定当前用户是最后一个签署者,触发设置模块407,否则从签署状态为未签署的签署者中选定下一个签署者,向下一个签署者发送签署通知邮件,并触发所述接收模块401;
[0177]相应的,所述设置模块407,还用于当所述判断模块404的判断结果为是时设置所述获取模块获取的所述roF合同文档的合同状态为已完成。
[0178]进一步的,本实施例中的数字签名装置的存储模块402,还可以只存储用户证书,而所述roF合同文档可以存储在其他装置中,例如对象存储服务器(oss服务器)。
[0179]相应的,所述获取模块403包括确定单元和第一获取单元;
[0180]所述确定单元,用于根据所述接收模块401接收到的所述会话标识确定当前用户;
[0181]所述第一获取单元,用于从对象存储服务器获取与所述接收模块401接收到的所述合同ID对应的TOF合同文档;
[0182]相应的,所述设置模块407,具体用于将所述接收模块401接收到的所述设置完成的签署信息和所述数字签名模块406签名得到的所述数字签名信息添加到所述获取模块403获取的所述TOF合同文档中得到新的PDF合同文档,以及将得到的新的PDF合同文档发送给所述对象存储服务器;用于将所述获取模块403确定的当前用户的合同签署状态修改为已签署;还用于当所述判断模块404的判断结果为是时设置所述获取模块403获取的所述PDF合同文档的合同状态为已完成。
[0183]或者是进一步的,本实施例中的数字签名装置的存储模块401,用于存储PDF合同文档,而将所述用户证书存储在其他装置中,例如CA服务器;
[0184]相应的,所述数字签名模块406包括组成单元和收发单元;
[0185]所述组成单元,用于根据所述摘要运算模块405运算得到的摘要运算结果和所述获取模块403确定的当前用户所对应的证书标识组成签名请求,并触发收发单元;
[0186]所述收发单元,用于将所述组成单元组成的所述签名请求发送给CA服务器,以及用于接收所述CA服务器返回的数字签名信息,并将所述数字签名信息发送给所述设置模块407。
[0187]以上所述,仅为本发明的【具体实施方式】,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
【主权项】
1.一种适用于PDF文档的数字签名方法,其特征是包括: 步骤S1、签署服务器接收到客户端发来的会话标识、合同ID和设置完成的签署信息,根据所述会话标识确定当前用户,并检查当前用户的合同签署状态是否为已签署,是则向客户端返回拒绝签署消息,否则执行步骤S2; 步骤S2、所述签署服务器根据所述合同ID获取当前保存的与所述合同ID对应的PDF合同文档;将所述TOF合同文档中的原内容进行摘要运算,使用当前用户的用户证书的私钥对摘要运算结果进行签名得到数字签名信息,将所述数字签名信息和所述设置完成的签署信息添加到所述TOF合同文档中,并将当前用户的合同签署状态修改为已签署; 步骤S3、签署服务器根据所述PDF合同文档对应的所有签署者以及所有签署者各自对应的合同签署状态判断当前用户是否是最后一个签署者,是则结束,否则返回步骤SI。2.根据权利要求1所述的方法,其特征是,所述步骤SI之前还包括: 步骤S0、当签署服务器接收到客户端发来的合同签署操作请求时,从所述合同签署操作请求中获取合同ID和会话标识,根据所述合同ID查找到当前保存的与所述合同ID对应的合同内容图片,根据所述会话标识确定当前用户及需要设置的签署信息,并将所述合同内容图片和需要设置的签署信息返回给所述客户端; 所述步骤SI还包括,签署服务器将所述设置完成的签署信息以图片形式与所述合同内容图片合成到一起,并用合成后的图片更新当前保存的所述合同内容图片。3.根据权利要求1所述的方法,其特征是,所述步骤SI还包括,所述签署服务器检查所述会话标识是否有效,是则执行所述根据所述会话标识确定当前用户,否则向客户端返回拒绝签署消息。4.根据权利要求1所述的方法,其特征是,所述步骤SI之前还包括: 步骤S0、当签署服务器接收到客户端发来的合同签署操作请求时,根据所述合同签署操作请求中包含的邮件安全码查找到与所述邮件安全码对应的合同ID和会话标识,根据所述合同ID查找到当前保存的与所述合同ID对应的合同内容图片,根据所述会话标识确定需要设置的签署信息,并将所述合同内容图片和需要设置的签署信息返回给所述客户端; 所述步骤SI还包括,签署服务器将所述设置完成的签署信息以图片形式与所述合同内容图片合成到一起,并用合成后的图片更新当前保存的所述合同内容图片。5.根据权利要求2或4所述的方法,其特征是:所述步骤SO之前还包括所述签署服务器对当前用户的身份进行验证,若通过验证则执行步骤S0,若未通过验证则通过客户端提示登录失败。6.根据权利要求2或4所述的方法,其特征是:所述步骤SO与步骤SI之间还包括,所述签署服务器判断是否在预设时长内接收到客户端发来的所述设置完成的签署信息,是则执行步骤SI,否则通过客户端向用户提示设置超时。7.根据权利要求2或4所述的方法,其特征是:所述步骤SO与步骤SI之间还包括,当所述签署服务器接收到客户端发来的获取签署信息请求时,所述签署服务器根据所述获取签署信息请求中包含的会话标识确定当前用户,根据当前用户的用户证书中的信息生成图片形式的签署信息并返回给客户端。8.根据权利要求1所述的方法,其特征是,还包括:当所述签署服务器接收到客户端发来拒绝签署合同请求时,从所述拒绝签署合同请求中获取拒绝原因并记录到数据库中,设置所述合同ID对应的TOF合同文档的合同状态为已作废,结束。9.根据权利要求8所述的方法,其特征是:所述设置所述合同ID对应的PDF合同文档的合同状态为已作废之后,所述结束之前还包括向所述PDF合同文档对应的所有签署者发送合同作废通知邮件。10.根据权利要求1所述的方法,其特征是:所述步骤S3具体为,所述签署服务器遍历所有签署者的签署状态,若全部为已签署,则确定当前用户是最后一个签署者,执行步骤S4,否则从签署状态为未签署的签署者中选定下一个签署者,并向下一个签署者发送签署通知邮件,然后返回步骤SI; 步骤S4、签署服务器设置所述PDF合同文档的合同状态为已完成,并向所有签署者发送合同签署完成通知邮件,结束。11.根据权利要求1所述的方法,其特征是,所述步骤SI和步骤S2具体包括: 步骤al、所述签署服务器接收客户端发来的会话标识、合同ID和设置完成的签署信息,根据所述会话标识确定当前用户,并检查当前用户的合同签署状态是否为已签署,是则向客户端返回拒绝签署消息,否则执行步骤a2; 步骤a2、所述签署服务器根据所述合同ID从对象存储服务器获取与所述合同ID对应的PDF合同文档;将所述PDF合同文档中的原内容进行摘要运算,使用当前用户的用户证书的私钥对摘要运算结果进行签名得到数字签名信息; 步骤a3、所述签署服务器将所述数字签名信息和所述设置完成的签署信息添加到所述PDF合同文档中得到新的TOF合同文档,将所述新的PDF合同文档发送给所述对象存储服务器,并将当前用户的合同签署状态修改为已签署。12.根据权利要求1所述的方法,其特征是,所述步骤SI和步骤S2具体包括: 步骤Cl、所述签署服务器接收客户端发来的会话标识、合同ID和设置完成的签署信息,根据所述会话标识确定当前用户,并检查当前用户的合同签署状态是否为已签署,是则向客户端返回拒绝签署消息,否则执行步骤c2; 步骤c2、所述签署服务器根据所述合同ID获取当前保存的与所述合同ID对应的PDF合同文档,将所述TOF合同文档中的原内容进行摘要运算得到摘要运算结果,根据所述摘要运算结果和当前用户对应的证书标识组成签名请求发送给CA服务器,并接收所述CA服务器返回的数字签名信息; 步骤c3、所述签署服务器将所述设置完成的签署信息和接收到的所述数字签名信息添加到所述TOF合同文档中,并将当前用户的合同签署状态修改为已签署。13.一种适用于PDF文档的数字签名装置,其特征是包括: 接收模块,用于接收客户端发来的会话标识、合同ID和设置完成的签署信息; 存储模块,用于存储PDF合同文档和用户证书; 获取模块,用于根据所述接收模块接收到的所述会话标识确定当前用户并触发判断模块,还用于收到判断模块的触发时获取存储模块中存储的当前用户的用户证书、以及与所述接收模块接收到的所述合同ID对应的TOF合同文档; 判断模块,用于当所述获取模块确定当前用户时,检查当前用户的合同签署状态是否为已签署,是则向客户端返回拒绝签署消息,否则触发所述获取模块; 摘要运算模块,用于将所述获取模块获取的所述PDF合同文档中的原内容进行摘要运算得到摘要运算结果; 数字签名模块,用于使用所述获取模块获取的当前用户的用户证书的私钥对所述摘要运算模块运算得到的所述摘要运算结果进行签名得到数字签名信息; 设置模块,用于将所述接收模块接收到的所述设置完成的签署信息和所述数字签名模块签名得到的所述数字签名信息添加到所述获取模块获取的所述TOF合同文档中,并将所述获取模块确定的当前用户的合同签署状态修改为已签署; 所述判断模块,还用于根据所述获取模块获取的所述PDF合同文档对应的所有签署者以及所有签署者各自对应的合同签署状态判断当前用户是否是最后一个签署者,是则完成合同签署,否则触发接收模块。14.根据权利要求13所述的装置,其特征是:所述装置还包括第一收发模块; 所述第一收发模块,用于接收客户端发来的合同签署操作请求,并触发获取模块,还用于将所述获取模块返回的所述合同内容图片和需要设置的签署信息发送给所述客户端;所述存储模块,还用于存储合同内容图片; 所述获取模块,还用于从所述第一收发模块接收到的所述合同签署操作请求中获取合同ID和会话标识,根据所述合同ID获取所述存储模块中保存的与所述合同ID对应的合同内容图片,根据所述会话标识确定当前用户及需要设置的签署信息,并将所述合同内容图片和需要设置的签署信息发送给所述第一收发模块; 所述装置还包括图片生成模块,所述图片生成模块,用于将所述接收模块接收到的所述设置完成的签署信息以图片形式与所述获取模块获取的所述合同内容图片合成到一起,并用合成后的图片更新存储模块中存储的合同内容图片。15.根据权利要求13所述的装置,其特征是:所述判断模块,还用于当所述接收模块接收到客户端发来的会话标识时,检查所述会话标识是否有效,是则触发所述获取模块,否则向客户端返回拒绝签署消息。16.根据权利要求13所述的装置,其特征是:所述装置还包括第一收发模块; 所述第一收发模块,用于接收客户端发来的合同签署操作请求,并触发获取模块,还用于将所述获取模块返回的所述合同内容图片和需要设置的签署信息发送给所述客户端;所述存储模块,还用于存储合同内容图片; 所述获取模块,还用于根据所述第一收发模块接收到的所述合同签署操作请求中包含的邮件安全码查找到与所述邮件安全码对应的合同ID和会话标识,根据所述合同ID获取所述存储模块中保存的与所述合同ID对应的合同内容图片,根据所述会话标识确定需要设置的签署信息,并将所述合同内容图片和需要设置的签署信息发送给所述第一收发模块; 所述装置还包括图片生成模块,所述图片生成模块,用于将所述接收模块接收到的所述设置完成的签署信息以图片形式与所述获取模块获取的所述合同内容图片合成到一起,并用合成后的图片更新存储模块中存储的合同内容图片。17.根据权利要求14或16所述的装置,其特征是:所述装置还包括验证模块; 所述验证模块,用于对当前用户的身份进行验证,若通过验证则触发第一收发模块,若未通过验证则向客户端发送提示登录失败的消息。18.根据权利要求14或16所述的装置,其特征是:所述第一收发模块,还用于将所述获取模块返回的所述合同内容图片和需要设置的签署信息发送给所述客户端之后,触发判断丰旲块; 所述判断模块,还用于判断所述接收模块是否在预设时长内接收到客户端发来的所述设置完成的签署信息,是则通过所述接收模块触发所述设置模块,否则向客户端发送提示设置超时的消息。19.根据权利要求14或16所述的装置,其特征是:所述第一收发模块,还用于当接收到客户端发来的获取签署信息请求时,根据所述获取签署信息请求中包含的会话标识确定当前用户,根据所述存储模块中保存的当前用户的用户证书中的信息生成图片形式的签署信息并返回给所述客户端。20.根据权利要求13所述的装置,其特征是:所述接收模块,还用于当接收到客户端发来拒绝签署合同请求时,触发所述设置模块; 所述设置模块,还用于从所述接收模块接收到的所述拒绝签署合同请求中获取拒绝原因并记录,设置所述获取模块获取的所述TOF合同文档的合同状态为已作废。21.根据权利要求20所述的方法,其特征是:所述设置模块,还用于当设置所述获取模块获取的所述I3DF合同文档的合同状态为已作废之后,向所述I3DF合同文档对应的所有签署者发送合同作废通知邮件。22.根据权利要求13所述的装置,其特征是:所述判断模块,还具体用于遍历所述获取模块获取的所述TOF合同文档对应的所有签署者的合同签署状态,若全部为已签署,则确定当前用户是最后一个签署者,触发设置模块,否则从签署状态为未签署的签署者中选定下一个签署者,向下一个签署者发送签署通知邮件,并触发所述接收模块; 所述设置模块,还用于当所述判断模块出所述PDF合同文档对应的所有签署者的合同签署状态全部为已签署时设置所述获取模块获取的所述PDF合同文档的合同状态为已完成。23.根据权利要求13所述的装置,其特征是:所述存储模块,用于存储用户证书;所述PDF合同文档存储在对象存储服务器; 所述获取模块包括确定单元和第一获取单元; 所述确定单元,用于根据所述接收模块接收到的所述会话标识确定当前用户; 所述第一获取单元,用于从对象存储服务器获取与所述接收模块接收到的所述合同ID对应的I3DF合同文档; 所述设置模块,具体用于将所述接收模块接收到的所述设置完成的签署信息和所述数字签名模块签名得到的所述数字签名信息添加到所述获取模块获取的所述TOF合同文档中得到新的TOF合同文档,以及将得到的新的PDF合同文档发送给所述对象存储服务器;用于将所述获取模块确定的当前用户的合同签署状态修改为已签署。24.根据权利要求13所述的装置,其特征是,所述存储模块,用于存储PDF合同文档;所述用户证书存储在CA服务器; 所述数字签名模块包括组成单元和收发单元; 所述组成单元,用于根据所述摘要运算模块运算得到的摘要运算结果和所述获取模块确定的当前用户所对应的证书标识组成签名请求,并触发收发单元; 所述收发单元,用于将所述组成单元组成的所述签名请求发送给CA服务器,以及用于接收所述CA服务器返回的数字签名信息,并将所述数字签名信息发送给所述设置模块。
【文档编号】G06Q30/06GK106067849SQ201610348811
【公开日】2016年11月2日
【申请日】2016年5月24日 公开号201610348811.X, CN 106067849 A, CN 106067849A, CN 201610348811, CN-A-106067849, CN106067849 A, CN106067849A, CN201610348811, CN201610348811.X
【发明人】陆舟, 于华章
【申请人】飞天诚信科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1