首页> 中国专利> 一种支持长期验证签名的签名方法、签署服务器及系统

一种支持长期验证签名的签名方法、签署服务器及系统

摘要

本发明公开一种支持长期验证签名的签名方法、签署服务器及系统,属于信息安全技术领域。该系统包括签署服务器和时间戳服务器,其中,签署服务器包括:第一接收模块、第一保存模块、第一获取模块、第二获取模块、确定模块、第三获取模块、查找模块、第一组织模块、第一发送模块、第二接收模块、第一追加模块、生成模块和更新模块;时间戳服务器包括:第二保存模块、第四接收模块、LTV签名模块、第二追加模块、时间戳生成模块、第二组织模块和第二发送模块。本发明提供的方法、签署服务器以及系统,当签署用户的签名证书有效期结束之后,使用电子合同阅读软件打开签署用户签署的合同文档时,用户可以明确地知道电子合同文档是否合法。

著录项

  • 公开/公告号CN107294706A

    专利类型发明专利

  • 公开/公告日2017-10-24

    原文格式PDF

  • 申请/专利权人 飞天诚信科技股份有限公司;

    申请/专利号CN201710433142.0

  • 发明设计人 陆舟;于华章;

    申请日2017-06-09

  • 分类号H04L9/08(20060101);H04L9/32(20060101);

  • 代理机构

  • 代理人

  • 地址 100085 北京市海淀区学清路9号汇智大厦B楼17层

  • 入库时间 2023-06-19 03:35:50

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-08-30

    授权

    授权

  • 2017-11-24

    实质审查的生效 IPC(主分类):H04L9/08 申请日:20170609

    实质审查的生效

  • 2017-10-24

    公开

    公开

说明书

技术领域

本发明涉及信息安全技术领域,尤其涉及一种支持长期验证签名的签名方法、签署服务器及系统。

背景技术

随着互联网的普及,在互联网进行的电子商务交易已经成为一种重要的交易方式。在电子商务的交易中为了保护交易各方的利益,电子合同得以出现,为了防止电子合同被非法篡改,交易各方需要对电子合同进行签名。

现有技术中,当签署用户验证签名用的用户证书有效期结束后,使用电子合同阅读软件(例如,阅读软件为:Adobe Acrobat Reader)打开签署服务器中的签署用户签署完成的合同文档时,会显示签名未知或签名无效的警告,用户无法区分签署合同文档是被篡改了、还是签名证书过期了,从而无法确定电子合同文档是否合法。

发明内容

本发明为解决上述现有技术中存在的技术问题提供一种支持长期验证签名的签名方法、签署服务器及系统。

在本发明中涉及到LTV签名、LTV签名请求,其中LTV汉语含义是长期验证,英文全称为long term verification;LTV签名请求为长期验证的签名请求,是可以支持长期验证签名的签名请求;LTV签名为长期验证的签名,是可以支持长期验签的签名。

本发明提供的一种支持长期验证签名的签名方法,包括以下步骤:

步骤S1:签署服务器接收来自客户端的包括合同标识和会话标识的用户设置信息,根据所述合同标识获取自身保存的待签署合同文档,根据所述用户设置信息获取合同内容数据,根据所述会话标识确定签署用户;

步骤S2:所述签署服务器获取所述待签署合同文档中的验证相关信息,根据所述验证相关信息中最新的时间戳数据找到所述验证相关信息中的证书撤销列表信息,根据所述证书撤销列表信息和自身保存的所述签署用户的用户证书组织LTV签名请求,将所述LTV签名请求发送给时间戳服务器;

步骤S3:所述签署服务器接收来自所述时间戳服务器的LTV签名的验证相关信息,并将所述LTV签名的验证相关信息追加到所述验证相关信息中,所述LTV签名的验证相关信息中包括LTV签名的签名证书、所述签名证书的私钥对所述用户证书和所述证书撤销列表信息签名生成的签名信息、LTV签名的时间戳数据和追加所述用户证书后的所述证书撤销列表信息;

步骤S4:所述签署服务器根据所述合同内容数据、追加所述LTV签名的验证相关信息之后的所述验证相关信息生成签署完成的合同文档;

步骤S5:所述签署服务器将所述签署用户的签署状态修改为已签署。

本发明提供的另一种支持长期验证签名的签名方法,包括以下步骤:

步骤M1:签署服务器接收来自客户端的包括合同标识和会话标识的用户设置信息,根据所述合同标识获取自身保存的待签署合同文档,根据所述用户设置信息获取合同内容数据,根据所述会话标识确定签署用户;

步骤M2:所述签署服务器获取所述待签署合同文档中的验证相关信息,根据所述验证相关信息中最新的时间戳数据找到所述验证相关信息中的证书撤销列表信息,根据所述证书撤销列表信息和自身保存的所述签署用户的用户证书组织LTV签名请求,将所述LTV签名请求发送给时间戳服务器;

步骤M3:所述时间戳服务器使用LTV签名的签名证书的私钥对所述LTV签名请求中的所述证书撤销列表信息和所述签署用户的用户证书进行签名生成签名信息;

步骤M4:所述时间戳服务器将所述签署用户的用户证书追加到所述证书撤销列表信息中,根据当前时间生成LTV签名的时间戳数据,根据所述LTV签名的签名证书、所述签名证书的私钥对所述用户证书和所述证书撤销列表信息签名生成的签名信息、追加所述用户证书后的所述证书撤销列表信息和LTV签名的时间戳数据组织LTV签名的验证相关信息,并将所述LTV签名的验证相关信息发送给所述签署服务器;

步骤M5:所述签署服务器接收来自所述时间戳服务器的LTV签名的验证相关信息,并将所述LTV签名的验证相关信息追加到所述验证相关信息中,所述LTV签名的验证相关信息中包括LTV签名的签名证书、所述签名证书的私钥对所述用户证书和所述证书撤销列表信息签名生成的签名信息、LTV签名的时间戳数据和追加所述用户证书后的所述证书撤销列表信息;

步骤M6:所述签署服务器根据所述合同内容数据、追加所述LTV签名的验证相关信息之后的所述验证相关信息生成签署完成的合同文档;

步骤M7:所述签署服务器将所述签署用户的签署状态修改为已签署。

本发明提供的一种支持长期验证签名的签署服务器,包括:

第一接收模块,用于收来自客户端的包括合同标识和会话标识的用户设置信息;

第一保存模块,用于保存待签署合同文档和签署用户的用户证书;

第一获取模块,用于根据所述第一接收模块接收的所述合同标识获取所述第一保存模块保存的待签署合同文档;

第二获取模块,用于根据所述第一接收模块接收的所述用户设置信息获取合同内容数据;

确定模块,用于根据所述第一接收模块接收的所述会话标识确定签署用户;

第三获取模块,用于从所述第一获取模块获取到的所述待签署合同文档中获取验证相关信息;

查找模块,用于根据所述第三获取模块获取的所述验证相关信息中的时间戳数据找到所述验证相关信息中的证书撤销列表信息;

第一组织模块,用于根据所述查找模块找到的所述证书撤销列表信息和所述第一保存模块保存的所述签署用户的用户证书组织LTV签名请求;

第一发送模块,用于将所述第一组织模块组织的所述LTV签名请求发送给时间戳服务器;

第二接收模块,用于接收来自所述时间戳服务器的LTV签名的验证相关信息;所述LTV签名的验证相关信息中包括LTV签名的签名证书、所述签名证书的私钥对所述用户证书和所述证书撤销列表信息签名生成的签名信息、LTV签名的时间戳数据和追加所述用户证书后的所述证书撤销列表信息;

第一追加模块,用于将所述第二接收模块接收的所述LTV签名的验证相关信息追加到所述第三获取模块获取的所述验证相关信息中;

生成模块,用于根据所述第二获取模块获取的所述合同内容数据、所述第一追加模块追加所述LTV签名的验证相关信息之后的所述验证相关信息生成签署完成的合同文档;

更新模块,用于在所述生成模块生成所述签署完成的合同文档之后,将所述签署用户的签署状态修改为已签署。

本发明提供的一种支持长期验证签名的系统,包括:签署服务器和时间戳服务器;

其中,签署服务器包括:

第一接收模块,用于收来自客户端的包括合同标识和会话标识的用户设置信息;

第一保存模块,用于保存待签署合同文档和签署用户的用户证书;

第一获取模块,用于根据所述第一接收模块接收的所述合同标识获取所述第一保存模块保存的待签署合同文档;

第二获取模块,用于根据所述第一接收模块接收的所述用户设置信息获取合同内容数据;

确定模块,用于根据所述第一接收模块接收的所述会话标识确定签署用户;

第三获取模块,用于获取所述第一获取模块获取的所述待签署合同文档的验证相关信息;

查找模块,用于根据所述第三获取模块获取的所述验证相关信息中最新的时间戳数据找到所述验证相关信息中的证书撤销列表信息;

第一组织模块,用于根据所述查找模块找到的所述证书撤销列表信息和所述第一保存模块保存的所述签署用户的用户证书组织LTV签名请求;

第一发送模块,用于将所述第一组织模块组织的所述LTV签名请求发送给时间戳服务器;

第二接收模块,用于接收来自所述时间戳服务器的LTV签名的验证相关信息;所述LTV签名的验证相关信息中包括LTV签名的签名证书、所述签名证书的私钥对所述用户证书和所述证书撤销列表信息签名生成的签名信息、LTV签名的时间戳数据和追加所述用户证书后的所述证书撤销列表信息;

第一追加模块,用于将所述第二接收模块接收的所述LTV签名的验证相关信息追加到所述第三获取模块获取的所述验证相关信息中;

生成模块,用于根据所述第二获取模块获取的所述合同内容数据、所述第一追加模块追加所述LTV签名的验证相关信息之后的所述验证相关信息生成签署完成的合同文档;

更新模块,用于所述生成模块生成所述签署完成的合同文档之后,将所述签署用户的签署状态修改为已签署;

所述时间戳服务器包括:

第二保存模块,用于保存LTV签名的签名证书以及所述LTV签名的签名证书的私钥;

第四接收模块,用于接收来自所述签署服务器的所述LTV签名请求;

LTV签名模块,用于使用所述第二保存模块保存的所述LTV签名的签名证书的私钥对所述第四接收模块接收的所述LTV签名请求中的所述证书撤销列表信息和所述签署用户的用户证书进行签名生成签名信息;

第二追加模块,用于将所述第四接收模块接收的所述签署用户的用户证书追加到所述第四接收模块接收的所述证书撤销列表信息中;

时间戳生成模块,用于所述第四接收模块接收到来自所述签署服务器的所述LTV签名请求之后,根据当前时间生成LTV签名的时间戳数据;

第二组织模块,用于根据所述第二保存模块保存的所述LTV签名的签名证书、所述LTV签名模块生成的所述签名证书的私钥对所述用户证书和所述证书撤销列表信息签名生成的签名信息、所述第二追加模块追加所述用户证书后的所述证书撤销列表信息和所述时间戳生成模块生成的所述LTV签名的时间戳数据组织所述LTV签名的验证相关信息;

第二发送模块,用于将所述第二组织模块组织的所述LTV签名的验证相关信息发送给所述签署服务器。

本发明的有益效果是:当签署用户的签名证书有效期结束之后,使用电子合同阅读软件打开签署用户签署的合同文档时,可以使用签署合同文档中LTV签名的验证相关信息对签署的合同文档进行验证,使用户可以区分签署合同文档是被篡改了、还是签名证书过期了,从而可以明确地知道电子合同文档是否合法。

附图说明

图1所示为本发明实施例1中一种支持长期验证签名的签名方法流程图;

图2所示为本发明实施例2中一种支持长期验证签名的签名方法流程图;

图3所示为本发明实施例3中一种支持长期验证签名的签名方法流程图;

图4所示为本发明实施例4中一种支持长期验证签名的签署服务器的模块组成框图;

图5所示为本发明实施例5中一种支持长期验证签名的系统的模块组成框图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。

实施例1

本实施例提供一种支持长期验证签名的签名方法,包括以下步骤,如图1所示:

步骤S1:签署服务器接收来自客户端的包括合同标识和会话标识的用户设置信息,根据合同标识获取自身保存的待签署合同文档,根据用户设置信息获取合同内容数据,根据会话标识确定签署用户;

步骤S2:签署服务器获取待签署合同文档中的验证相关信息,根据验证相关信息中最新的时间戳数据找到验证相关信息中的证书撤销列表信息,根据证书撤销列表信息和自身保存的签署用户的用户证书组织LTV签名请求,将LTV签名请求发送给时间戳服务器;

步骤S3:签署服务器接收来自时间戳服务器的LTV签名的验证相关信息,并将LTV签名的验证相关信息追加到验证相关信息中,LTV签名的验证相关信息中包括LTV签名的签名证书、签名证书的私钥对用户证书和证书撤销列表信息签名生成的签名信息、LTV签名的时间戳数据和追加用户证书后的证书撤销列表信息;

步骤S4:签署服务器根据合同内容数据、追加LTV签名的验证相关信息之后的验证相关信息生成签署完成的合同文档;

步骤S5:签署服务器将签署用户的签署状态修改为已签署。

可选地,本实施例上述步骤S2中,签署服务器根据验证相关信息中最新的时间戳数据找到验证相关信息中的证书撤销列表信息,具体为:签署服务器遍历验证相关信息中所有时间戳数据,找到最新的时间戳数据,根据最新的时间戳数据找到最新的证书撤销列表信息。

进一步地,上述签署服务器找到最新的时间戳数据之后,还包括:签署服务器根据最新的时间戳数据找到最新的签名响应,LTV签名请求中还包括最新的签名响应;相应地,上述LTV签名的验证相关信息中还包括LTV签名的签名响应。

具体地,上述最新的签名响应中包括最新的签名响应值和最新的签名证书;相应地,上述LTV签名的签名响应中包括LTV签名的签名证书和LTV签名的签名响应值。

可选地,本实施例上述步骤S1之前,还包括:

步骤S01:签署服务器接收来自客户端的签署操作请求,从签署操作请求中获取合同标识和签署用户的会话标识,根据合同标识查找到自身保存的与合同标识对应的合同内容图片,根据会话标识确定需要设置的签署信息,将合同内容图片和需要设置的签署信息发送给客户端。

可选地,本实施例上述步骤S1之后、步骤S2之前,还包括:

步骤S021:签署服务器判断待签署合同文档是否已经执行过签名操作,是则执行步骤S2;否则执行步骤S022;

步骤S022:签署服务器使用自身保存的签署用户的用户证书的私钥对合同内容数据进行签名生成签名数据,并生成常规签名的证书撤销列表信息,根据当前时间生成常规签名的时间戳数据;

步骤S023:签署服务器根据签名数据、常规签名的证书撤销列表信息和常规签名的时间戳数据生成待签署合同文档的验证相关信息;

本实施例中,当签署服务器生成验证相关信息之后,第一次执行LTV签名时,上述步骤S2中,签署服务器根据验证相关信息中最新的时间戳数据找到验证相关信息中的证书撤销列表信息,具体为:签署服务器根据待签署合同文档的常规签名的时间戳数据找到常规签名的证书撤销列表信息。

具体地,上述步骤S021中,签署服务器判断待签署合同文档是否已经执行过签名操作,具体为:签署服务器遍历与待签署合同文档对应的所有签署者,判断是否有签署者的签署状态为已签署,是则执行过签名操作,否则没有执行过签名操作。

具体地,上述步骤S022中,签署服务器使用自身保存的签署用户的用户证书的私钥对合同内容数据进行签名生成签名数据,具体为:签署服务器将合同内容数据进行摘要运算,将摘要运算结果通过签署用户的用户证书的私钥进行签名生成签名数据。

可选地,本实施例上述步骤S2中,签署服务器获取待签署合同文档中的验证相关信息,具体为:签署服务器调用文档驱动程序从待签署合同文档中获取验证相关信息;

相应地,上述步骤S4具体为:签署服务器调用文档驱动程序根据合同内容数据、追加LTV签名的验证相关信息之后的验证相关信息生成签署完成的合同文档。

可选地,本实施例上述步骤S4之后,还包括:签署服务器使用生成的签署完成的合同文档更新自身保存的待签署合同文档。

可选地,本实施例上述签署服务器将LTV签名请求发送给时间戳服务器之前,还包括:签署服务器向时间戳服务器发送签署用户的用户名和密码,并接收来自时间戳服务器对用户名和密码的验证信息;相应地,上述签署服务器将LTV签名请求发送给时间戳服务器,具体为:签署服务器接收到时间戳服务器对用户名和密码的验证信息为验证通过的信息时,将LTV签名请求发送给时间戳服务器。

进一步地,上述签署服务器接收来自时间戳服务器对用户名和密码的验证信息为验证未通过的信息时,还包括:签署服务器将签署用户的签署状态修改为签署失败。

可选地,本实施例上述签署完成的合同文档中包括:合同内容数据域和验证域;

相应地,上述步骤S4具体为:签署服务器将合同内容数据嵌入合同内容数据域,将追加LTV签名的验证相关信息之后的验证相关信息嵌入验证域;

上述步骤S2中,签署服务器获取待签署合同文档中的验证相关信息,具体为:签署服务器从待签署合同文档的验证域中获取验证相关信息。

进一步地,上述验证域包括时间戳数据域、验证数据域和主数据域;相应地,上述签署服务器将追加LTV签名的验证相关信息之后的验证相关信息嵌入验证域,具体为:签署服务器将追加LTV签名的验证相关信息之后的验证相关信息嵌入主数据域,将LTV签名的签名证书、LTV签名的签名证书的私钥对用户证书和证书撤销列表签名生成的签名信息、追加用户证书后的证书撤销列表信息嵌入验证数据域,将LTV签名的时间戳数据嵌入时间戳数据域。

可选地,本实施例上述步骤S1中,签署服务器根据合同标识获取自身保存的待签署合同文档,具体为:签署服务器根据合同标识和预设的源文件路径获取待签署合同文档;相应地,上述步骤S4之后,还包括:签署服务器根据合同标识和预设的目标文件目录生成目标文件路径,并根据目标文件路径保存签署完成的合同文档。

可选地,本实施例中,上述签署服务器中还保存用户证书的证书链信息;相应地,上述LTV签名请求中还包括用户证书的证书链信息;上述追加用户证书后的证书撤销列表信息中还包括用户证书的证书链信息。

可选地,本实施例中,上述签署服务器根据用户设置信息获取合同内容数据,具体为:签署服务器根据用户设置信息中合同标识获取对应的合同内容图片,将用户设置信息以图片形式与合同内容图片合成到一起,并使用合成后的图片更新当前保存的合同内容图片,根据合成后的图片获取合同内容数据;

或者,上述签署服务器根据用户设置信息获取合同内容数据,具体为:签署服务器从待签署合同文档中获取合同内容,根据合同内容和用户设置信息获取合同内容数据。

本实施例的有益效果是:签署服务器通过时间戳服务器对合同文档中最新的验证相关信息进行签名,即便在签署者的用户证书过期之后,时间戳服务器中的LTV签名的签名证书仍然有效,因此可以实现对合同文档中LTV签名的长期验证。

实施例2

本实施例提供一种支持长期验证签名的签名方法,包括以下步骤,如图2所示:

步骤M1:签署服务器接收来自客户端的包括合同标识和会话标识的用户设置信息,根据合同标识获取自身保存的待签署合同文档,根据用户设置信息获取合同内容数据,根据会话标识确定签署用户;

步骤M2:签署服务器获取待签署合同文档中的验证相关信息,根据验证相关信息中最新的时间戳数据找到验证相关信息中的证书撤销列表信息,根据证书撤销列表信息和自身保存的签署用户的用户证书组织LTV签名请求,将LTV签名请求发送给时间戳服务器;

步骤M3:时间戳服务器使用LTV签名的签名证书的私钥对LTV签名请求中的证书撤销列表信息和签署用户的用户证书进行签名生成签名信息;

步骤M4:时间戳服务器将签署用户的用户证书追加到证书撤销列表信息中,根据当前时间生成LTV签名的时间戳数据,根据LTV签名的签名证书、签名证书的私钥对用户证书和证书撤销列表信息签名生成的签名信息、追加用户证书后的证书撤销列表信息和LTV签名的时间戳数据组织LTV签名的验证相关信息,并将LTV签名的验证相关信息发送给签署服务器;

步骤M5:签署服务器接收来自时间戳服务器的LTV签名的验证相关信息,并将LTV签名的验证相关信息追加到验证相关信息中,LTV签名的验证相关信息中包括LTV签名的签名证书、签名证书的私钥对用户证书和证书撤销列表信息签名生成的签名信息、LTV签名的时间戳数据和追加用户证书后的证书撤销列表信息;

步骤M6:签署服务器根据合同内容数据、追加LTV签名的验证相关信息之后的验证相关信息生成签署完成的合同文档;

步骤M7:签署服务器将签署用户的签署状态修改为已签署。

可选地,本实施例上述步骤M2中,签署服务器根据验证相关信息中最新的时间戳数据找到验证相关信息中的证书撤销列表信息,具体为:签署服务器遍历验证相关信息中所有时间戳数据,找到最新的时间戳数据,根据最新的时间戳数据找到最新的证书撤销列表信息。

进一步地,上述签署服务器找到最新的时间戳数据之后,还包括:签署服务器根据最新的时间戳数据找到最新的签名响应,LTV请求中还包括最新的签名响应;相应地,上述LTV签名的验证相关信息中还包括LTV签名的签名响应。

具体地,上述最新的签名响应中包括最新的签名响应值和最新的签名证书;相应地,上述LTV签名的签名响应中包括LTV签名的签名证书和LTV签名的签名响应值。

可选地,本实施例中,上述步骤M1之前,还包括:

步骤M01:签署服务器接收来自客户端的签署操作请求,从签署操作请求中获取合同标识和签署用户的会话标识,根据合同标识查找到自身保存的与合同标识对应的合同内容图片,根据会话标识确定需要设置的签署信息,将合同内容图片和需要设置的签署信息发送给客户端。

可选地,上述步骤M1之后、步骤M2之前,还包括:

步骤M021:签署服务器判断待签署合同文档是否已经执行过签名操作,是则执行步骤M2;否则执行步骤M022;

步骤M022:签署服务器使用自身保存的签署用户的用户证书的私钥对合同内容数据进行签名生成签名数据,并生成常规签名的证书撤销列表信息,根据当前时间生成常规签名的时间戳数据;

步骤M023:签署服务器根据签名数据、常规签名的证书撤销列表信息和常规签名的时间戳数据生成待签署合同文档的验证相关信息;

本实施例中,签署服务器生成待签署合同文档的验证相关信息之后,第一次执行LTV签名时,上述步骤M2中,签署服务器根据验证相关信息中的时间戳数据找到验证相关信息中的证书撤销列表信息,具体为:签署服务器根据待签署合同文档的常规签名的时间戳数据找到常规签名的证书撤销列表信息。

具体地,上述签署服务器判断待签署合同文档是否已经执行过签名操作,具体为:签署服务器遍历与待签署合同文档对应的所有签署者,判断是否有签署者的签署状态为已签署,是则执行过签名操作,否则没有执行过签名操作。

具体地,上述步骤M022中,签署服务器使用自身保存的签署用户的用户证书的私钥对合同内容数据进行签名生成签名数据,具体为:签署服务器将合同内容数据进行摘要运算,将摘要运算结果通过签署用户的用户证书的私钥进行签名生成签名数据。

可选地,本实施例上述步骤M2中,签署服务器获取待签署合同文档中的验证相关信息,具体为:签署服务器调用文档驱动程序从待签署合同文档中获取验证相关信息;相应地,上述步骤M6具体为:签署服务器调用文档驱动程序根据合同内容数据、追加LTV签名的验证相关信息之后的验证相关信息生成签署完成的合同文档。

可选地,本实施例中,上述步骤M6之后,还包括:签署服务器使用生成的签署完成的合同文档更新自身保存的待签署合同文档。

可选地,本实施例上述步骤M2中,签署服务器将LTV签名请求发送给时间戳服务器之前,还包括:

步骤A1:签署服务器向时间戳服务器发送签署用户的用户名和密码,接收到来自时间戳服务器的验证信息为验证未通过的信息时,将签署用户的签署状态修改为签署失败;

签署服务器将LTV签名请求发送给时间戳服务器,具体为:签署服务器接收到来自时间戳服务器的验证信息为验证通过的信息时,将LTV签名请求发送给时间戳服务器;

相应地,上述步骤M3之前,还包括:

步骤A2:时间戳服务器接收来自签署服务器的签署用户的用户名和密码,对签署用户的用户名和密码进行验证,验证通过则根据用户名找到LTV签名的签名证书,向所述签署服务器发送验证通过的信息,执行步骤M3;验证未通过则向签署服务器发送验证失败的信息。

可选地,本实施例中,上述签署完成的合同文档中包括合同内容数据域和验证域;

相应地,上述步骤M6具体为:签署服务器将合同内容数据嵌入合同内容数据域,将追加LTV签名的验证相关信息之后的验证相关信息嵌入验证域;

上述步骤M2中,签署服务器获取待签署合同文档中的验证相关信息,具体为:签署服务器从待签署合同文档的验证域中获取验证相关信息。

具体地,上述验证域包括时间戳数据域、验证数据域和主数据域;

相应地,上述签署服务器将追加LTV签名的验证相关信息之后的验证相关信息嵌入验证域,具体为:签署服务器将追加LTV签名的验证相关信息之后的验证相关信息嵌入主数据域,将LTV签名的签名证书、LTV签名的签名证书的私钥对用户证书和证书撤销列表签名生成的签名信息、追加用户证书后的证书撤销列表信息嵌入验证数据域,将LTV签名的时间戳数据嵌入时间戳数据域。

可选地,本实施例上述步骤M1中,签署服务器根据合同标识获取自身保存的待签署合同文档,具体为:签署服务器根据合同标识和预设的源文件路径获取待签署合同文档;相应地,上述步骤M6之后,还包括:签署服务器根据合同标识和预设的目标文件目录生成目标文件路径,并根据目标文件路径保存签署完成的合同文档。

可选地,本实施例中,上述签署服务器中还保存用户证书的证书链信息;相应地,上述LTV签名请求中还包括用户证书的证书链信息;上述追加用户证书后的证书撤销列表信息中还包括用户证书的证书链信息。

可选地,本实施例中,上述签署服务器根据用户设置信息获取合同内容数据,具体为:签署服务器根据用户设置信息中的合同标识获取对应的合同内容图片,将用户设置信息以图片形式与合同内容图片合成到一起,并使用合成后的图片更新当前保存的合同内容图片,根据合成后的图片获取合同内容数据;

或者,上述签署服务器根据用户设置信息获取合同内容数据,具体为:签署服务器从待签署合同文档中获取合同内容,根据合同内容和用户设置信息获取合同内容数据。

实施例3

本实施例提供一种支持长期验证签名的签名方法,如图3所示,包括:

步骤101:签署服务器接收来自客户端的合同签署操作请求,从合同签署操作请求中获取合同标识和会话标识,根据合同标识查找到当前保存的与合同标识对应的合同内容图片,根据会话标识确定需要设置的签署信息。

进一步地,步骤101中还包括签署服务器判断合同标识对应的合同状态是否为已完成或已作废,是则向客户端返回合同已完成或已作废的错误提示信息,否则根据会话标识确定当前签署用户,并判断当前签署用户的合同签署状态是否为已签署,是则向客户端返回当前签署用户已签署的错误提示信息,否则执行步骤102。

优选的,当签署服务器接收到客户端发来的合同签署操作请求时还包括:签署服务器检查合同签署操作请求中包含的会话标识是否有效,是则根据合同标识和会话标识查找到当前保存的与当前签署用户对应的合同内容图片和需要设置的签署信息并返回给所述客户端,否则向客户端返回重新登录的提示信息。当用户在客户端重新登录时,签署服务器会生成新的用于标识当前签署用户的会话标识并返回给客户端。

步骤102:签署服务器向客户端发送合同内容图片和需要设置的签署信息。

具体的,需要设置的签署信息包括签名、签章、公司名称,进一步地还可以包括签署日期。合同内容图片中的合同内容与PDF合同文档的原内容一致。优选的,合同内容图片是将合同创建者创建的合同内容转换为图片格式并保存在签署服务器中的。进一步优选地,合同内容图片是将合同创建者创建的合同内容转换为图片格式并保存在签署服务器中子服务系统OSS服务系统中的。

步骤103:签署服务器接收来自客户端的包括合同标识和会话标识的用户设置信息。

步骤104:签署服务器根据合同标识获取待签署合同文档,根据用户设置信息确定当前签署用户,根据用户设置信息获取合同内容数据。

具体的,根据用户设置信息获取合同内容数据,具体为:签署服务器根据用户设置信息中的合同标识获取对应的合同内容图片,将用户设置信息以图片形式与合同内容图片合成到一起,并使用合成后的图片更新当前保存的合同内容图片,根据合成后的图片获取合同内容数据。

或者,根据用户设置信息获取合同内容数据,具体为:签署服务器从待签署合同文档中获取合同内容,根据合同内容和用户设置信息获取合同内容数据。

具体地,用户设置信息中包含有会话标识,签署服务器根据会话标识确定当前签署用户。

本实施例中,待签署合同文档可以存储在签署服务器中,也可以使用签署服务器中的对象存储服务器(Object Storage Service,简称OSS)来进行存储。待签署合同文档的原内容与步骤101合同内容图片中的内容一致。

可选地,步骤102之后、步骤103之前,还包括:

步骤b1、客户端接收并显示合同内容图片和需要设置的签署信息;

步骤b2、客户端接收用户设置的签署信息;

步骤b3、客户端判断需要设置的签署信息是否全部设置完成,是则执行步骤b4,否则继续执行步骤b2;

步骤b4、客户端向签署服务器发送用户设置信息。

优选的,在步骤b1与步骤b2之间,当客户端接收到用户拒绝签署的操作信息时,还包括:

步骤b1-1、客户端从用户拒绝签署的操作信息中获取拒绝原因,向签署服务器发送包含拒绝原因的拒绝签署合同请求;

步骤b1-2、签署服务器接收拒绝签署合同请求,从中获取拒绝原因并记录到数据库中,设置合同状态为已作废,并向所有签署者发送合同作废通知邮件,结束。

本实施例中,在步骤101之前,还包括:

步骤1:客户端启动合同订立平台,根据合同标识和会话标识生成合同签署操作请求。

具体的,当签署者接收到签署通知邮件时,客户端启动合同订立平台,提示用户输入用户设置信息进行登录,例如,用户设置信息具体包括用户名和密码,客户端根据用户输入的用户设置信息获取合同标识和会话标识,根据合同标识和会话标识生成合同签署操作请求。

步骤105:签署服务器判断待签署合同文档是否已经执行过签名操作,是则执行步骤107,否则执行步骤106。

具体的,签署服务器找到与合同标识对应的所有签署者,判断是否有签署者的签署状态为已签署,是则执行步骤107,否则执行步骤106。进一步具体的,签署服务器遍历所有签署者的签署状态,若其中一个签署者的状态为已签署,则执行步骤107,否则执行步骤106。

步骤106:签署服务器对待签署合同文档执行常规签名操作,将执行常规签名操作之后的合同文档作为待签署合同文档,执行步骤107。

具体地,签署服务器对待签署合同文档执行常规签名操作,具体包括:

步骤f1:签署服务器将获取的合同内容数据进行摘要运算,将摘要运算结果通过当前签署用户的用户证书的私钥进行签名得到常规签名的签名数据,并生成常规签名的证书撤销列表信息,根据当前时间生成常规签名的时间戳数据;

步骤f2:签署服务器将签名数据、常规签名的证书撤销列表信息和常规签名的时间戳数据加入待签署合同文档的验证相关信息中。

进一步地,步骤f1中,还包括:签署服务器生成常规签名的签名响应值,并根据当前签署用户的用户证书和常规签名的签名响应值组织常规签名的签名响应。相应地,步骤f2中还包括:签署服务器将签名响应加入待签署合同文档的验证相关信息中。

本实施例中,当常规签名成功时,常规签名的签名响应值为预设的成功响应值,常规签名的证书撤销列表为空;当签名失败时,结束流程,并将当前签署用户的签署状态修改为失败。

本实施例中,证书撤销列表(Certificate Revocation List,简写为CRL)指定了一套证书发布者认为无效的证书,证书撤销的理由包括:泄露密钥、泄露CA、从属关系改变、被取代、业务终止等。

步骤107:签署服务器判断用户设置信息中是否设置了LTV签名选项,是则执行步骤108,否则将当前签署用户的签署状态修改为已签署,执行步骤112。

在本实施例中,在合同创建时,合同创建者将合同文档设置为支持LTV签名,后续签署合同的所有签署者都具有支持LTV签名的功能;在合同创建时,合同创建者将合同文档设置为不支持LTV签名,后续签署合同的所有签署者都不具有支持LTV签名的功能。

步骤108:签署服务器获取待签署合同文档的验证相关信息,遍历验证相关信息中所有时间戳数据找到最新的时间戳数据,根据最新的时间戳数据找到最新的验证相关信息。

具体地,最新的验证相关信息中包括最新的时间戳数据、最新的证书撤销列表信息;进一步具体地,最新的验证相关信息中还包括最新的签名响应。

具体地,当最新的时间戳数据为常规签名的时间戳数据时,最新的时间戳数据为常规签名的时间戳。例如,常规签名的时间戳数据为2016-08-23 13:59:50;

当最新的时间戳数据为LTV签名的时间戳数据时,最新的时间戳数据包括LTV签名的时间戳和LTV签名的签名域值。例如,LTV签名的时间戳数据为Signature3,其中Signature为LTV签名的时间戳,3为LTV签名的签名域值。

步骤109:签署服务器获取当前签署用户的用户证书信息,根据最新的验证相关信息和当前签署用户的用户证书信息组织LTV签名请求,并将LTV签名请求发送给时间戳服务器。

具体地,当前签署用户的用户证书信息包括当前签署用户签名用的当前签署用户证书;进一步具体地,当前签署用户的用户证书信息还包括当前签署用户证书的证书链信息。

优选地,步骤108之后、步骤109之前,还包括:

步骤A:签署服务器按对待签署合同文档中最新的验证相关信息进行验证,验证通过时执行步骤109;否则将当前签署用户的签署状态修改为签署失败。

具体地,步骤A具体包括:

步骤a1:签署服务器读取最新的验证相关信息中的证书撤销列表和最新的验证相关信息所对应的证书信息,判断证书撤销列表中是否具有证书信息列表中的证书,是则验证失败,将当前签署用户的签署状态修改为签署失败;否则执行步骤109;

可选地,步骤A还可以包括:

步骤a2:签署服务器使用最新签验证相关信息的签名响应中的用户证书验证签名值,验证通过时执行步骤109;验证未通过时将当前签署用户的签署状态修改为签署失败。

优选地,步骤108之后、步骤109之前,还包括:

步骤c:签署服务器当前签署用户的证书信息验证当前签署用户证书是否有效,是则执行步骤109;否则将当前签署用户的签署状态修改为签署失败。

步骤110:签署服务器接收来自时间戳服务器的当前LTV签名的验证相关信息,将当前LTV签名的验证相关信息追加到获取的验证相关信息中。

具体地,当前LTV签名的验证相关信息包括当前LTV签名的签名证书、当前签名证书的私钥对当前签署用户证书和当前证书撤销列表的签名信息、当前LTV签名的时间戳数据和追加当前签署用户证书后的当前证书撤销列表信息。进一步具体地,当前LTV签名的验证相关信息中还包括当前LTV签名的签名响应。

步骤111:签署服务器根据待签署合同文档的合同内容数据、追加当前LTV签名的验证相关信息之后的验证相关信息生成签署完成的合同文档,将当前签署用户的签署状态修改为已签署。

步骤112:签署服务器判断当前签署用户是否为最后一个签署者,是则执行步骤114,否则执行步骤113。

具体的,签署服务器根据保存的与合同标识对应的所有签署者及其签署状态判断当前签署用户是否是最后一个签署者。进一步具体的,签署服务器遍历所有签署者的签署状态,若全部为已签署,则确定当前签署用户是最后一个签署者,执行步骤114,否则选定下一个签署状态为未签署的签署者,并执行步骤113。

优选的,签署服务器中保存有合同创建者设定的所有签署者、合同内容图片及需要设置的签署信息。

步骤113:签署服务器向下一个签署者发送通知邮件。

步骤114:签署服务器将待签署文档的状态修改为已完成,并将完成签署的文档保存到数据库中,向待签署文档的所有签署者发送签署完成通知。

进一步地,步骤114中签署完成通知中包含签署完成的合同文档。

可选地,本实施例步骤104中,签署服务器根据合同标识获取待签署的合同文档可以具体为:签署服务器根据合同标识和预设的源文件路径获取待签署合同文档;

相应地,步骤114中还包括:签署服务器根据合同标识和预设的目标文件目录生成目标文件路径,并根据目标文件路径保存签署完成的合同文档。

可选地,本实施例上述步骤f1,具体为:签署服务器调用文档驱动程序获取待签署合同文档的合同内容数据,对获取的合同内容数据进行摘要运算,将摘要运算结果通过当前签署用户的用户证书的私钥进行签名得到常规签名的签名值,并生成常规签名的验证相关信息,根据当前时间生成常规签名的时间戳数据;

相应地,步骤f2具体包括:

步骤f21:签署服务器调用文档驱动程序在待签署合同文档中增设常规签名的安全存储区和常规签名的时间域;

步骤f22:签署服务器将常规签名的签名值、常规签名的证书撤销列表信息、当前签署用户的用户证书信息和常规签名的时间戳数据进行编码;

步骤f23:签署服务器调用文档驱动程序将编码后的常规签名的签名值、编码后的常规签名的证书撤销列表信息、编码后的当前签署用户的用户证书信息添加到常规签名的安全存储区中,调用文档驱动程序将编码后的常规签名的时间戳数据添加到常规签名的时间域中;

相应地,步骤108具体为:签署服务器通过调用文档驱动程序遍历待签署合同文档中所有时间域的时间戳数据,找到最新的时间戳数据,根据最新的时间戳数据找到对应的安全存储区,从对应的安全存储区中获取最新的验证相关信息。

相应地,上述步骤111具体包括:

步骤1111:签署服务器调用文档驱动程序在待签署合同文档中增设当前安全存储区和当前时间域;

步骤1112:签署服务器将合同内容数据和当前LTV签名的验证相关信息进行编码;

具体地,签署服务器将当前LTV签名的验证相关信息进行编码,具体为:签署服务器将当前LTV签名的时间戳数据、当前LTV签名证书的证书信息和当前LTV签名的签名值进行编码。

步骤1113:签署服务器调用文档驱动程序将编码后的当前LTV签名的时间戳数据添加到当前时间域中,调用文档驱动程序将、编码后的当前LTV签名的验证相关信息、编码后的当前LTV签名证书的证书信息和编码后的当前LTV签名的签名值添加到当前安全存储区中。

进一步地,上述步骤f2中,还包括:签署服务器调用文档驱动程序在待签署合同文档中增设主安全存储区和主时间域,并将编码后的常规签名的签名值、编码后的常规签名的验证相关信息、编码后的当前签署用户的用户证书的证书链信息添加到主安全存储区中,调用文档驱动程序将编码后的常规签名的时间戳数据添加到主时间域中;

相应地,上述步骤111中,还包括:签署服务器调用文档驱动程序将编码后的当前LTV签名的时间戳数据添加到主时间域中,调用文档驱动程序将编码后的当前LTV签名的验证相关信息添加到主安全存储区中。

本实施例中,待签署文档为PDF格式文档;相应地,文档驱动程序具体为PDF文档驱动程序。

本实施例中,上述步骤109之后、步骤110之前,还包括时间戳服务器的操作步骤:

步骤M1:时间戳服务器接收来自签署服务器的LTV签名请求,使用自身保存的LTV签名的签名证书的私钥对接收的LTV签名请求中的证书撤销列表信息和用户证书进行签名生成签名信息;

步骤M2:时间戳服务器将当前签署用户的用户证书追加到当前证书撤销列表中,根据当前时间生成当前LTV签名的时间戳数据,根据当前LTV签名的签名证书、当前签名证书的私钥对用户证书和证书撤销列表签名生成的签名信息、追加用户证书后的证书撤销列表信息和LTV签名的时间戳数据组织当前LTV签名的验证相关信息,并将当前LTV签名的验证相关信息发送给签署服务器。

进一步具体地,当前LTV签名的验证相关信息的LTV签名的证书撤销列表中还包括当前签署用户的证书链信息。

本实施例中,LTV签名的签名证书的有效期可以无限延长。例如,当LTV签名的签名证书的有效期为10年,在有效期到期之前,时间戳服务器可以延长LTV签名的签名证书的有效期,延长后有效期为20年。

可选地,步骤109中,LTV签名请求中还包括当前签署用户的用户名和密码,相应地,步骤M1之前还包括:时间戳服务器判断自身是否保存有与接收的用户名和密码匹配的用户名和密码,是则执行步骤M1,否则返回签名失败信息。本实施例中,时间戳服务器中保存着与执行LTV签名的LTV签名证书对应的签署者的用户名和密码。

进一步地,步骤M1中还包括:时间戳服务器根据用户名选择自身保存的与接收的用户名对应的LTV签名的签名证书。

可选地,本实施例中,上述签署完成的合同文档中包括:合同内容数据域和验证域;

相应地,上述步骤111具体为:签署服务器将合同内容数据嵌入合同内容数据域,将追加LTV签名的验证相关信息之后的验证相关信息嵌入验证域,将当前签署用户的签署状态修改为已签署;

上述步骤108中,签署服务器获取待签署合同文档中的验证相关信息,具体为:签署服务器从待签署合同文档的验证域中获取验证相关信息。

具体地,上述验证域包括时间戳数据域、验证数据域和主数据域;

上述签署服务器将追加LTV签名的验证相关信息之后的验证相关信息嵌入验证域,具体为:签署服务器将追加LTV签名的验证相关信息之后的验证相关信息嵌入主数据域,将LTV签名的签名证书、LTV签名的签名证书的私钥对用户证书和证书撤销列表签名生成的签名信息、追加用户证书后的证书撤销列表信息嵌入验证数据域,将LTV签名的时间戳数据嵌入时间戳数据域。

在本发明中涉及到LTV签名、LTV签名请求,其中LTV汉语含义是长期验证,英文全称为long term verification;LTV签名请求为长期验证的签名请求;LTV签名为长期验证的签名。

本发明中,在合同阅读软件打开合同文档时,即便签署者的用户证书过期,但时间戳服务器的LTV签名的签名证书会一直有效,因此可以保证长期有效的验证。当签署用户的用户证书过期时,只要对LTV签名的数据进行验证通过,并且显示LTV签名有效,就可以确定显示无效的常规签名实际是有效的,只是用户证书过了有效期。

实施例4

本实施例提供一种支持长期验证签名的签署服务器,如图4所示,包括:

第一接收模块401,用于收来自客户端的包括合同标识和会话标识的用户设置信息;

第一保存模块402,用于保存待签署合同文档和签署用户的用户证书;

第一获取模块403,用于根据第一接收模块401接收的合同标识获取第一保存模块402保存的待签署合同文档;

第二获取模块404,用于根据第一接收模块401接收的用户设置信息获取合同内容数据;

确定模块405,用于根据第一接收模块401接收的会话标识确定签署用户;

第三获取模块406,用于获取从第一获取模块403获取到的待签署合同文档中获取验证相关信息;

查找模块407,用于根据第三获取模块406获取的验证相关信息中最新的时间戳数据找到验证相关信息中的证书撤销列表信息;

第一组织模块408,用于根据查找模块407找到的证书撤销列表信息和第一保存模块402保存的签署用户的用户证书组织LTV签名请求;

第一发送模块409,用于将第一组织模块408组织的LTV签名请求发送给时间戳服务器;

第二接收模块410,用于接收来自时间戳服务器的LTV签名的验证相关信息;LTV签名的验证相关信息中包括LTV签名的签名证书、签名证书的私钥对用户证书和证书撤销列表信息签名生成的签名信息、LTV签名的时间戳数据和追加用户证书后的证书撤销列表信息;

第一追加模块411,用于将第二接收模块410接收的LTV签名的验证相关信息追加到第三获取模块406获取的验证相关信息中;

生成模块412,用于根据第二获取模块404获取的合同内容数据、第一追加模块411追加LTV签名的验证相关信息之后的验证相关信息生成签署完成的合同文档;

更新模块413,用于在生成模块412生成签署完成的合同文档之后,将签署用户的签署状态修改为已签署。

可选地,本实施例中,上述查找模块407,具体用于:遍历第三获取模块406获取的验证相关信息中所有时间戳数据,找到最新的时间戳数据,根据最新的时间戳数据找到最新的证书撤销列表信息。

进一步地,上述查找模块407,还用于根据第三获取模块406获取的验证相关信息中的最新的时间戳数据找到最新的签名响应;第一组织模块408组织的LTV签名请求中还包括最新的签名响应;相应地,上述第二接收模块410接收的LTV签名的验证相关信息中还包括LTV签名的签名响应。

具体地,上述第三获取模块406获取到的最新的签名响应中包括最新的签名响应值和最新的签名证书;相应地,上述LTV签名的签名响应中包括LTV签名的签名证书和LTV签名的签名响应值。

可选地,本实施例中,上述签署服务器还包括第三接收模块,用于接收来自客户端的签署操作请求,从签署操作请求中获取合同标识和签署用户的会话标识;

相应地,上述第一保存模块402,还用于保存合同内容图片;

上述查找模块407,还用于根据第三接收模块接收的合同标识查找到第一保存模块402保存的与合同标识对应的合同内容图片;

上述确定模块405,还用于根据第三接收模块接收的会话标识确定需要设置的签署信息;

上述第一发送模块409,还用于将查找模块407找到的合同内容图片和确定模块405确定的需要设置的签署信息发送给客户端。

可选地,本实施例中,上述签署服务器还包括判断模块、签名模块和验证相关信息生成模块;

判断模块,用于判断第一获取模块403获取的待签署合同文档是否已经执行过签名操作;

相应地,上述第三获取模块406,具体用于判断模块判断第一获取模块403获取的待签署合同文档已经执行过签名操作时,获取第一获取模块403获取的待签署合同文档的验证相关信息;

上述第一保存模块402,还用于保存用户证书的私钥;

签名模块,用于判断模块判断第一获取模块403获取的待签署合同文档没有执行过签名操作时,使用第一保存模块402保存的签署用户的用户证书的私钥对合同内容数据进行签名生成签名数据;

上述生成模块412,还用于签名模块生成签名数据时,生成常规签名的证书撤销列表信息,根据当前时间生成常规签名的时间戳数据;

验证相关信息生成模块,用于根据签名模块生成的签名数据、生成模块412生成的常规签名的证书撤销列表信息和常规签名的时间戳数据生成待签署合同文档的验证相关信息中;

上述第三获取模块406,具体用于获取验证相关信息生成模块生成的待签署合同文档的验证相关信息。

具体地,上述判断模块,具体用于:遍历与第一获取模块403获取的待签署合同文档对应的所有签署者,判断是否有签署者的签署状态为已签署,是则执行过签名操作,否则没有执行过签名操作。

具体地,上述签名模块,具体用于:将第二获取模块404获取的合同内容数据进行摘要运算,将摘要运算结果通过第一保存模块402保存的签署用户的用户证书的私钥进行签名生成签名数据。

可选地,本实施例中,上述第三获取模块406,具体用于:调用文档驱动程序从第一获取模块403获取的待签署合同文档中获取验证相关信息;

相应地,上述生成模块412,具体用于:调用文档驱动程序根据第二获取模块404获取的合同内容数据、第一追加模块411追加LTV签名的验证相关信息之后的验证相关信息生成签署完成的合同文档。

可选地,本实施例中,上述更新模块413,还用于使用生成模块412生成的签署完成的合同文档更新第一保存模块402保存的待签署合同文档。

可选地,本实施例中,上述签署服务器还包括验证发送模块和验证接收模块;

上述第一保存模块402,还用于保存用户名和密码。

具体地,第一保存模块保存的用户名和密码为签署服务器在执行LTV签名之前保存的,也可以是第一获取模块从第一接收模块接收的用户设置信息中获取的。

验证发送模块,用于向时间戳服务器发送第一保存模块保存的签署用户的用户名和密码;

验证接收模块,用于接收来自时间戳服务器对用户名和密钥验证的信息;

相应地,上述第一发送模块409,具体用于验证接收模块接收到时间戳服务器对用户名和密码的验证信息为验证通过的信息时,将第一组织模块408组织LTV签名请求发送给时间戳服务器。

进一步地,上述更新模块413,还用于:上述验证接收模块接收来自时间戳服务器对用户名和密码的验证信息为验证未通过的信息时,将签署用户的签署状态修改为签署失败。

可选地,本实施例中,上述生成模块412生成的签署完成的合同文档中包括合同内容数据域和验证域;具体地,上述生成模块412包括第一生成子模块和第二生成子模块;

第一生成子模块,用于将第二获取模块404获取的合同内容数据嵌入合同内容数据域;

第二生成子模块,用于将第一追加模块411追加LTV签名的验证相关信息之后的验证相关信息嵌入验证域;

相应地,上述第三获取模块406,具体用于:从第一获取模块403获取的待签署合同文档的验证域中获取验证相关信息。

进一步具体地,上述验证域包括时间戳数据域、验证数据域和主数据域;相应地,上述第二生成子模块,具体用于:将第一追加模块411追加LTV签名的验证相关信息之后的验证相关信息嵌入主数据域,将LTV签名的签名证书、LTV签名的签名证书的私钥对用户证书和证书撤销列表签名生成的签名信息、追加用户证书后的证书撤销列表信息嵌入验证数据域,将LTV签名的时间戳数据嵌入时间戳数据域。

可选地,本实施例中,上述签署服务器还包括存储模块和生成模块412;

相应地,上述第一保存模块402,还用于保存预设的源文件路径;

上述第一获取模块403,具体用于:根据第一接收模块401接收的合同标识和第一保存模块402保存的预设的源文件路径获取待签署合同文档;

生成模块412,用于根据第一接收模块401接收的合同标识和第一保存模块402保存的预设的目标文件目录生成目标文件路径;

存储模块,用于根据生成模块412生成的目标文件路径保存签署完成的合同文档。

可选地,本实施例中,上述保存模块,还用于保存用户证书的证书链信息;相应地,上述第一组织模块408组织的LTV签名请求中还包括用户证书的证书链信息;上述第二接收模块410接收的追加用户证书后的证书撤销列表信息中还包括用户证书的证书链信息。

可选地,本实施例中,上述第二获取模块404,具体用于:根据第一接收模块401接收的用户设置信息中的合同标识获取对应的合同内容图片,将第一接收模块401接收的用户设置信息以图片形式与合同内容图片合成到一起,并使用合成后的图片更新当前保存的合同内容图片,根据合成后的图片获取合同内容数据;

或者,上述第二获取模块404,具体用于:从第一获取模块403获取的待签署合同文档中获取合同内容,根据合同内容和第一接收模块401接收的用户设置信息获取合同内容数据。

实施例5

本实施例提供一种支持长期验证签名的系统,如图5所示,包括:签署服务器和时间戳服务器;

其中,签署服务器包括:

第一接收模块401,用于收来自客户端的包括合同标识和会话标识的用户设置信息;

第一保存模块402,用于保存待签署合同文档和签署用户的用户证书;

第一获取模块403,用于根据第一接收模块401接收的合同标识获取第一保存模块402保存的待签署合同文档;

第二获取模块404,用于根据第一接收模块401接收的用户设置信息获取合同内容数据;

确定模块405,用于根据第一接收模块401接收的会话标识确定签署用户;

第三获取模块406,用于获取第一获取模块403获取的待签署合同文档的验证相关信息;

查找模块407,用于根据第三获取模块406获取的验证相关信息中最新的时间戳数据找到验证相关信息中的证书撤销列表信息;

第一组织模块408,用于根据查找模块407找到的证书撤销列表信息和第一保存模块402保存的签署用户的用户证书组织LTV签名请求;

第一发送模块409,用于将第一组织模块408组织的LTV签名请求发送给时间戳服务器;

第二接收模块410,用于接收来自时间戳服务器的LTV签名的验证相关信息;LTV签名的验证相关信息中包括LTV签名的签名证书、签名证书的私钥对用户证书和证书撤销列表信息签名生成的签名信息、LTV签名的时间戳数据和追加用户证书后的证书撤销列表信息;

第一追加模块411,用于将第二接收模块410接收的LTV签名的验证相关信息追加到第三获取模块406获取的验证相关信息中;

生成模块412,用于根据第二获取模块404获取的合同内容数据、第一追加模块411追加LTV签名的验证相关信息之后的验证相关信息生成签署完成的合同文档;

更新模块413,用于生成模块412生成签署完成的合同文档之后,将签署用户的签署状态修改为已签署;

时间戳服务器包括:

第二保存模块501,用于保存LTV签名的签名证书以及LTV签名的签名证书的私钥;

第四接收模块502,用于接收来自签署服务器的LTV签名请求;

LTV签名模块503,用于使用第二保存模块501保存的LTV签名的签名证书的私钥对第四接收模块502接收的LTV签名请求中的证书撤销列表信息和签署用户的用户证书进行签名生成签名信息;

第二追加模块504,用于将第四接收模块502接收的签署用户的用户证书追加到第四接收模块502接收的证书撤销列表信息中;

时间戳生成模块505,用于第四接收模块502接收到来自签署服务器的LTV签名请求之后,根据当前时间生成LTV签名的时间戳数据;

第二组织模块506,用于根据第二保存模块501保存的LTV签名的签名证书、LTV签名模块503生成的签名证书的私钥对用户证书和证书撤销列表信息签名生成的签名信息、第二追加模块504追加用户证书后的证书撤销列表信息和时间戳生成模块505生成的LTV签名的时间戳数据组织LTV签名的验证相关信息;

第二发送模块507,用于将第二组织模块506组织的LTV签名的验证相关信息发送给签署服务器。

可选地,本实施例中,上述查找模块407,具体用于:遍历第三获取模块406获取的验证相关信息中所有时间戳数据,找到最新的时间戳数据,根据最新的时间戳数据找到最新的证书撤销列表信息。

进一步地,上述查找模块407,还用于根据第三获取模块406获取的验证相关信息中的最新的时间戳数据找到最新的签名响应;第一组织模块408组织的LTV签名请求中还包括最新的签名响应;相应地,上述第二接收模块410接收的LTV签名的验证相关信息中还包括LTV签名的签名响应。

具体地,上述最新的签名响应中包括最新的签名响应值和最新的签名证书;相应地,上述LTV签名的签名响应中包括LTV签名的签名证书和LTV签名的签名响应值。

可选地,本实施例中,上述签署服务器还包括第三接收模块,用于接收来自客户端的签署操作请求,从签署操作请求中获取合同标识和签署用户的会话标识;

相应地,上述第一保存模块402,还用于保存合同内容图片;

上述查找模块407,还用于根据第三接收模块接收的合同标识查找到第一保存模块402保存的与合同标识对应的合同内容图片;

上述确定模块405,还用于根据第三接收模块接收的会话标识确定需要设置的签署信息;

上述第一发送模块409,还用于将查找模块407找到的合同内容图片和确定模块405确定的需要设置的签署信息发送给客户端。

可选地,本实施例中,上述签署服务器还包括判断模块、签名模块和验证相关信息生成模块;

判断模块,用于判断第一获取模块403获取的待签署合同文档是否已经执行过签名操作;

相应地,上述第三获取模块406,具体用于判断模块判断第一获取模块403获取的待签署合同文档已经执行过签名操作时,获取第一获取模块403获取的待签署合同文档的验证相关信息;

上述第一保存模块402,还用于保存用户证书的私钥;

签名模块,用于判断模块判断第一获取模块403获取的待签署合同文档没有执行过签名操作时,使用第一保存模块402保存的签署用户的用户证书的私钥对合同内容数据进行签名生成签名数据;

上述生成模块412,还用于签名模块生成签名数据时,生成常规签名的证书撤销列表信息,根据当前时间生成常规签名的时间戳数据;

验证相关信息生成模块,用于根据签名模块生成的签名数据、生成模块412生成的常规签名的证书撤销列表信息和常规签名的时间戳数据生成待签署合同文档的验证相关信息;

上述第三获取模块406,具体用于获取验证相关信息生成模块生成的待签署合同文档的验证相关信息。

具体地,上述判断模块,具体用于:遍历与第一获取模块403获取的待签署合同文档对应的所有签署者,判断是否有签署者的签署状态为已签署,是则执行过签名操作,否则没有执行过签名操作。

具体地,上述签名模块,具体用于:将第二获取模块404获取的合同内容数据进行摘要运算,将摘要运算结果通过第一保存模块402保存的签署用户的用户证书的私钥进行签名生成签名数据。

可选地,本实施例中,上述第三获取模块406,具体用于:调用文档驱动程序从第一获取模块403获取的待签署合同文档中获取验证相关信息;

相应地,上述生成模块412,具体用于:调用文档驱动程序根据第二获取模块404获取的合同内容数据、第一追加模块411追加LTV签名的验证相关信息之后的验证相关信息生成签署完成的合同文档。

可选地,本实施例中,上述更新模块413,还用于使用生成模块412生成的签署完成的合同文档更新第一保存模块402保存的待签署合同文档。

可选地,本实施例中,上述签署服务器还包括验证发送模块和验证接收模块;

相应地,上述第一保存模块402,还用于保存用户名和密码。

具体地,第一保存模块保存的用户名和密码为签署服务器在执行LTV签名之前保存的,也可以是第一获取模块从第一接收模块接收的用户设置信息中获取的。

验证发送模块,用于向时间戳服务器发送第一保存模块402保存的签署用户的用户名和密码;

验证接收模块,用于接收来自时间戳服务器对用户名和密码的验证信息;

上述第一发送模块409,具体用于验证接收模块接收到时间戳服务器对用户名和密码的验证信息为验证通过的信息时,将第一组织模块408组织LTV签名请求发送给时间戳服务器;

上述更新模块413,还用于:上述验证接收模块接收来自时间戳服务器对用户名和密码的验证信息为验证未通过信息时,将签署用户的签署状态修改为签署失败;

时间戳服务器还包括第五接收模块和验证模块;

第五接收模块,还用于接收来自签署服务器的签署用户的用户名和密码;

验证模块,用于对第五接收模块接收的签署用户的用户名和密码进行验证,验证通过则根据用户名找到LTV签名的签名证书;

第二发送模块,还用于验证模块验证结果为通过时,向签署服务器发送验证通过的信息;验证模块验证结果为未通过时,向签署服务器发送验证未通过的信息。

可选地,本实施例中,上述生成模块412生成的签署完成的合同文档中包括合同内容数据域和验证域;具体地,上述生成模块412包括第一生成子模块和第二生成子模块;

第一生成子模块,用于将第二获取模块404获取的合同内容数据嵌入合同内容数据域;

第二生成子模块,用于将第一追加模块411追加LTV签名的验证相关信息之后的验证相关信息嵌入验证域;

相应地,上述第三获取模块406,具体用于:从第一获取模块403获取的待签署合同文档的验证域中获取验证相关信息。

具体地,上述验证域包括时间戳数据域、验证数据域和主数据域;

相应地,上述第二生成子模块,具体用于:将第一追加模块411追加LTV签名的验证相关信息之后的验证相关信息嵌入主数据域,将LTV签名的签名证书、LTV签名的签名证书的私钥对用户证书和证书撤销列表签名生成的签名信息、追加用户证书后的证书撤销列表信息嵌入验证数据域,将LTV签名的时间戳数据嵌入时间戳数据域。

可选地,本实施例中,上述签署服务器还包括存储模块和生成模块412;

相应地,上述第一保存模块402,还用于保存预设的源文件路径;

上述第一获取模块403,具体用于:根据第一接收模块401接收的合同标识和第一保存模块402保存的预设的源文件路径获取待签署合同文档;

生成模块412,用于根据第一接收模块401接收的合同标识和第一保存模块402保存的预设的目标文件目录生成目标文件路径;

存储模块,用于根据生成模块412生成的目标文件路径保存签署完成的合同文档。

可选地,上述第一保存模块402,还用于保存用户证书的证书链信息;

相应地,上述第一组织模块408组织的LTV签名请求中还包括用户证书的证书链信息;上述第二接收模块410接收的追加用户证书后的证书撤销列表信息中还包括用户证书的证书链信息。

可选地,本实施例中,上述第二获取模块404,具体用于:根据第一接收模块401接收的用户设置信息中的合同标识获取对应的合同内容图片,将第一接收模块401接收的用户设置信息以图片形式与合同内容图片合成到一起,并使用合成后的图片更新当前保存的合同内容图片,根据合成后的图片获取合同内容数据;

或者,上述第二获取模块404,具体用于:从第一获取模块403获取的待签署合同文档中获取合同内容,根据合同内容和第一接收模块401接收的用户设置信息获取合同内容数据。

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

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号