一种数字签名方法和系统及其智能终端和业务系统与流程

文档序号:17637230发布日期:2019-05-11 00:27阅读:285来源:国知局
一种数字签名方法和系统及其智能终端和业务系统与流程

本发明涉及互联网安全技术,更具体地说,涉及一种数字签名方法和系统及其智能终端和业务系统。



背景技术:

数字签名是一种解决数据完整性和来源可追溯的解决方案,通过用户预先生成的密钥向可信第三方机构申请的数字证书来确保用户的可信身份,发送方使用私钥加密经过散列算法生成的散列值形成数字签名,接收方使用发送方公钥验证解密散列值,并通过同样散列算法对原文散列,对比两个散列值确认数字签名的有效性。

目前在个人电脑上,互联网应用以WEB访问页面方式为主,互联网应用的数字签名需要通过浏览器操作。浏览器作为个人电脑与互联网应用的交互入口,为了保持安全性,需要对通过互联网访问个人电脑本地资源的权限进行严格控制,一般需要通过第三方签名的控件支持本地文件操作,数字证书密钥本地生成、保管、应用的需求,需要数字证书解决方案提供商提供对应的第三方控件对数字证书进行操作,包括对数字签名的支持。

数字签名是通过浏览器数字证书控件操作数字证书、密钥和数字签名的过程,密钥的存储方式可以通过软件密钥容器或包含加密芯片的加密硬件存储。因而,现有技术方案需要用户在浏览器上下载安装第三方控件。目前个人电脑操作系统涉及微软WINDOWS、苹果MAC OS以及不同厂牌的LINUX等,浏览器包括微软IE6、7、8、9、10、苹果safari、火狐firefox、谷歌chrome、以及基于上述浏览器的定制化版本,例如腾讯、奇虎、百度等厂商推出的浏览器。不同操作系统、不同浏览器的安全设置不同,浏览器的安全控制、控件的接受程度、方式、默认处理方式等不同,带来大量的兼容性问题,导致数字证书在数字签名应用中的大量用户体验问题,降低了数字证书数字签名应用的普及性,数字签名在用户身份认证、交易完整性保护等方面的优越性不能及时有效的得到应用。

目前还有MPKI(Managed Public Key Infrastructure)等带外通信完成数字签名应用的解决方案,该方案通过MPKI机制通过短信通道以数据短信推送方式推送到指定手机号码,通过内置PKI应用的SIM卡完成数字签名。这种方式由于数据短信承载内容有限,只能推送签名散列值完成数字签名,终端侧不能验证签名内容原文,不能验证数字签名请求来源,存在第三方攻击风险。



技术实现要素:

本发明要解决的技术问题在于,针对现有技术的上述缺陷,提供一种基于带外通信的数字签名方法和系统及其智能终端和业务系统,不需要第三方控件且能实现数据完整性和真实性。

根据本发明的第一方面,本发明为解决其技术问题而提出一种数字签名方法,包括如下步骤:

S1、通过浏览器发起用户需要使用数字签名的业务请求;

S2、由业务系统基于所述业务请求,获得待签名信息和用户数字证书唯一标识,产生所述待签名信息对应的第一签名信息散列值,并使用业务系统数字证书对所述待签名信息、第一签名信息散列值和用户数字证书唯一标识进行数字签名,生成访问所述数字签名后的信息的签名服务URL,并将所述签名服务URL编码形成可信图形码;

S3、由浏览器展示业务系统发送的可信图形码;

S4、通过智能终端扫描浏览器展示的可信图形码,解码获得签名服务URL;

S5、由智能终端使用用户数字证书签名所述签名服务URL,并携带生成的用户数字签名访问所述签名服务URL;

S6、由业务系统验证所述用户数字签名通过后,发送所述签名服务URL对应的待签名信息、第一签名信息散列值、用户数字证书唯一标识和业务系统数字签名给智能终端;

S7、由智能终端验证所述业务系统数字签名通过后,根据所述待签名信息计算第二签名信息散列值,并在所述第二签名信息散列值与获得的第一签名信息散列值一致时,对所述待签名信息完成用户数字签名,将用户数字签名结果发送给业务系统;

S8、由业务系统接收所述用户数字签名结果,并在验证用户数字证书和数字签名通过后,将所述用户数字签名结果返回给浏览器。

根据本发明第一方面的一个实施例中,所述步骤S2中形成可信图形码进一步包括:生成所述使用业务系统数字证书进行数字签名的签名信息时间戳,并将所述签名信息时间戳与所述签名服务URL一起编码形成所述可信图形码;

所述步骤S4进一步包括:解码获得所述签名信息时间戳;

所述步骤S5进一步包括:由智能终端验证所述签名信息时间戳以确认所述签名服务URL地址无误后,使用用户数字证书签名所述签名服务URL,并携带生成的用户数字签名访问所述签名服务URL。

根据本发明第一方面的一个实施例中,所述步骤S3进一步包括:由浏览器展示提示用户使用智能终端扫描所述可信图形码以完成数字签名的信息。

根据本发明的第二方面,本发明为解决其技术问题而提出一种数字签名系统,包括通信连接的浏览器、业务系统和智能终端,其中:

所述浏览器用于发起用户需要使用数字签名的业务请求,展示业务系统基于所述业务请求形成并发送的可信图形码,并接收业务系统返回的用户数字签名结果以完成所述业务请求;

所述业务系统用于基于浏览器发起的所述业务请求,获得待签名信息和用户数字证书唯一标识,产生所述待签名信息对应的第一签名信息散列值,并使用业务系统数字证书对所述待签名信息、第一签名信息散列值和用户数字证书唯一标识进行数字签名,生成访问所述数字签名后的信息的签名服务URL,并将所述签名服务URL编码形成可信图形码;

所述智能终端用于扫描浏览器展示的可信图形码,解码获得签名服务URL,以及使用用户数字证书签名所述签名服务URL,并携带生成的用户数字签名访问所述签名服务URL;

所述业务系统还用于基于智能终端对签名服务URL的访问验证所述用户数字签名通过后,发送所述签名服务URL对应的待签名信息、第一签名信息散列值、用户数字证书唯一标识和业务系统数字签名给智能终端;

所述智能终端还用于验证所述业务系统数字签名通过后,根据所述待签名信息计算第二签名信息散列值,并在所述第二签名信息散列值与获得的第一签名信息散列值一致时,对所述待签名信息完成用户数字签名,将用户数字签名结果发送给业务系统;

所述业务系统还用于接收智能终端发送的用户数字签名结果,在验证用户数字证书和数字签名通过后,将所述用户数字签名结果返回给浏览器。

根据本发明第二方面的一个实施例中,所述业务系统形成可信图形码进一步包括:生成所述使用业务系统数字证书进行数字签名的签名信息时间戳,并将所述签名信息时间戳与所述签名服务URL一起编码形成所述可信图形码;

所述智能终端解码可信图形码进一步包括:解码获得所述签名信息时间戳;

所述智能终端访问签名服务URL进一步包括:验证所述签名信息时间戳以确认所述签名服务URL地址无误后,使用用户数字证书签名所述签名服务URL,并携带生成的用户数字签名访问所述签名服务URL。

根据本发明第二方面的一个实施例中,所述浏览器在展示业务系统发送的可信图形码时,进一步展示提示用户使用智能终端扫描所述可信图形码以完成数字签名的信息。

根据本发明的第三方面,本发明为解决其技术问题而提出一种用于数字签名的智能终端,包括:

扫描模块,用于扫描浏览器展示的可信图形码,解码获得签名服务URL;

URL访问模块,用于使用用户数字证书签名所述签名服务URL,并携带生成的用户数字签名访问所述签名服务URL;

接收模块,接收业务系统发送的所述签名服务URL对应的待签名信息、第一签名信息散列值、用户数字证书唯一标识和业务系统数字签名;

数字签名模块,用于验证所述业务系统数字签名通过后,根据所述待签名信息计算第二签名信息散列值,并在所述第二签名信息散列值与获得的第一签名信息散列值一致时,对所述待签名信息完成用户数字签名;

发送模块,用于将用户数字签名结果发送给业务系统。

根据本发明第三方面的一个实施例中,所述扫描模块还解码获得签名信息时间戳;

所述URL访问模块验证所述签名信息时间戳以确认所述签名服务URL地址无误后,使用用户数字证书签名所述签名服务URL,并携带生成的用户数字签名访问所述签名服务URL。

根据本发明的第四方面,本发明为解决其技术问题而提出一种用于数字签名的业务系统,其特征在于,包括:

可信图形码生成模块,用于基于浏览器发起的用户需要使用数字签名的业务请求,获得待签名信息和用户数字证书唯一标识,产生所述待签名信息对应的第一签名信息散列值,并使用业务系统数字证书对所述待签名信息、第一签名信息散列值和用户数字证书唯一标识进行数字签名,生成访问所述数字签名后的信息的签名服务URL,并将所述签名服务URL编码形成可信图形码;

第一发送模块,用于将可信图形码发送给浏览器进行展示;

数字签名服务模块,用于接收智能终端通过扫描所述可信图形码对签名服务URL的访问,并在验证用户数字签名通过后,发送所述签名服务URL对应的待签名信息、第一签名信息散列值、用户数字证书唯一标识和业务系统数字签名给智能终端;

验证模块,用于接收智能终端发送的用户数字签名结果,并验证用户数字证书和数字签名;

第二发送模块,用于将通过验证的所述用户数字签名结果返回给浏览器。

根据本发明第四方面的一个实施例中,所述可信图形码生成模块还生成所述使用业务系统数字证书进行数字签名的签名信息时间戳,并将所述签名信息时间戳与所述签名服务URL一起编码形成所述可信图形码。

实施根据本发明的数字签名方法和系统及其智能终端和业务系统具有以下有益效果:

(1)通过可信图形码建立带外使用数字签名机制:以可信图形码为纽带,建立业务系统、智能终端、浏览器的会交互过程,完成浏览器和业务系统的带外数字签名应用,个人电脑不用存储数字证书和密钥,从而避免了个人电脑用户密钥泄露和滥用问题;

(2)通过带外方式解决数字签名浏览器控件兼容性问题:通过带外方式使用数字证书数字签名,避免了浏览器控件兼容性带来的数字证书数字签名技术复杂性和用户体验问题;

(3)通过业务系统和智能终端实现带外数字证书签名机制:业务系统和智能终端通过数字签名验证,验证数字证书用户和交易用户的符合性,签名内容的真实有效性,在保证带外数字签名与浏览器数字证书和数字签名的效果统一的前提下,用户数字证书、数字签名使用复杂度降低,安全可视性提高。

附图说明

下面将结合附图及实施例对本发明作进一步说明,附图中:

图1是本发明一个实施例的数字签名方法的流程图;

图2是本发明一个实施例中浏览器、业务系统和智能终端之间的交互过程的示意图;

图3是本发明一个实施例的数字签名系统的逻辑框图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

图1示出了根据本发明一个实施例的数字签名方法100的流程图。如图1所示,该数字签名方法100包括如下步骤:

步骤S110中,通过浏览器发起用户需要使用数字签名的业务请求。例如,用户可通过个人电脑浏览器向业务系统发起使用数字签名的业务请求。

随后步骤S120中,由业务系统基于所述业务请求,获得待签名信息和用户数字证书唯一标识,产生所述待签名信息对应的第一签名信息散列值,并使用业务系统数字证书对所述待签名信息、第一签名信息散列值和用户数字证书唯一标识进行数字签名,生成访问所述数字签名后的信息的签名服务URL,并将所述签名服务URL编码形成可信图形码。

随后步骤S130中,由浏览器展示业务系统发送的可信图形码。同时,浏览器还可展示信息提醒用户使用智能终端来扫描该可信图形码以完成数字签名。

随后步骤S140中,通过智能终端扫描浏览器展示的可信图形码,解码获得签名服务URL。

随后步骤S150中,由智能终端使用用户数字证书签名所述签名服务URL,并携带生成的用户数字签名访问所述签名服务URL。

随后步骤S160中,由业务系统验证所述用户数字签名通过后,发送所述签名服务URL对应的待签名信息、第一签名信息散列值、用户数字证书唯一标识和业务系统数字签名给智能终端。

随后步骤S170中,由智能终端验证所述业务系统数字签名通过后,根据所述待签名信息计算第二签名信息散列值,并在所述第二签名信息散列值与获得的第一签名信息散列值一致时,对所述待签名信息完成用户数字签名,将用户数字签名结果发送给业务系统。

随后步骤S180中,由业务系统接收所述用户数字签名结果,并在验证用户数字证书和数字签名通过后,将所述用户数字签名结果返回给浏览器以完成业务请求。

图2示出了根据本发明一个具体实施例的数字签名方法中浏览器、业务系统和智能终端之间的交互过程。具体如图2所示:

首先,步骤S201中,浏览器基于用户的需求向业务系统发起使用数字签名的业务请求。

随后步骤S202中,业务系统从业务请求中获得用户提交的待签名信息(即需要进行数字签名的内容)和用户数字证书唯一标识。

随后步骤S203中,业务系统基于获得的待签名信息产生第一签名信息散列值。例如,业务系统可使用散列函数例如MD5、SHA1算法对待签名信息进行计算得到该签名信息散列值。

随后步骤S204中,业务系统使用业务系统数字证书对上述待签名信息、第一签名信息散列值和用户数字证书唯一标识进行数字签名,得到上述信息的业务系统数字签名。

随后步骤S205中,业务系统生成签名服务URL和签名信息时间戳。该签名服务URL是访问所述数字签名后的信息的资源HTTP地址,可按照一定的编码规则生成。该签名信息时间戳是使用业务系统数字证书进行数字签名的时间点。

随后步骤S206中,业务系统将签名服务URL和签名信息时间戳一起编码形成可信图形码。图形码的编码方法可采用本领域技术人员熟知的各种合适的编码技术。

随后步骤S207中,业务系统将该可信图形码发送给浏览器。

随后步骤S208中,浏览器展示业务系统发送的可信图形码,并还展示扫描图形码的提示信息,以提示用户使用智能终端扫描该可信图形码完成数字签名。

随着步骤S209中,智能终端基于用户的操作扫描浏览器展示的可信图形码,解码获得签名服务URL和签名信息时间戳。

随后步骤S210中,智能终端验证该签名信息时间戳,即判断业务发生的时间以避免出现重放和造假,确保签名服务URL地址无误。

随后步骤S211中,智能终端使用用户数字证书对签名服务URL进行签名,生成用户数字签名。

随后步骤S212中,智能终端携带该用户数字签名访问签名服务URL对应的资源地址。

随后步骤S213中,业务系统验证该访问请求所携带的用户数字签名,以确认用户数字证书与该签名服务URL所对应的用户数字证书唯一标识是否一致。只有在二者一致的情况下,才能完成本发明的数字签名。

随后步骤S214中,在验证二者一致的情况下,业务系统将签名服务URL所对应的待签名信息、第一签名信息散列值、用户数字证书唯一标识和业务系统数字签名发送给智能终端。

随后步骤S215中,智能终端验证收到的业务系统数字签名,以确认待签名信息、第一签名信息散列值和用户数字证书唯一标识真实无修改。

随后步骤S216中,智能终端基于获得的待签名信息产生第二签名信息散列值。例如,智能终端使用与业务系统相同的散列函数例如MD5、SHA1算法对待签名信息进行计算得到该签名信息散列值。

随后步骤S217中,智能终端将其自己生产的第二签名信息散列值与从业务系统获得的第一签名散列值进行比对,只有在二者一致的情况下,才能继续完成用户数字签名。

随后步骤S218中,智能终端使用数字签名算法,对待签名信息完成用户数字签名。

随后步骤S219中,智能终端将用户数字签名结果发送给业务系统。

随后步骤S220中,业务系统验证用户数字签名结果所携带的用户数字证书和用户数字签名,以确认该用户数字签名结果的真实性和完整性。

随后步骤S221中,业务系统将通过上述验证的用户数字签名结果返回给浏览器。

随后步骤S222中,浏览器接收用户数字签名结果,完成业务请求。

本发明的上述数字签名方法,充分参照了国际标准(PKI)、国家标准以及相关的行业标准,以可信图形码为载体,解决了个人电脑使用数字证书、数字签名的浏览器控件兼容性问题,和MPKI带外数字签名中签名请求方和签名内容验证的问题,在保证带外数字签名与浏览器数字证书、数字签名效果一致性的前提下,建立了一种用户数字证书、数字签名使用复杂度降低、安全可视性提高的带外通信数字签名机制。

基于以上介绍的数字签名方法,本发明还提出一种数字签名系统。图3示出了根据本发明一个实施例的数字签名系统300的逻辑框图。如图3所示,该数字签名系统300包括通信连接的浏览器310、业务系统320和智能终端330。浏览器310用于向业务系统320发起用户需要使用数字签名的业务请求,展示业务系统320基于所述业务请求形成并发送的可信图形码,并接收业务系统320返回的用户数字签名结果以完成业务请求。业务系统320用于基于浏览器310发起的业务请求,获得待签名信息和用户数字证书唯一标识,产生所述待签名信息对应的第一签名信息散列值,并使用业务系统数字证书对所述待签名信息、第一签名信息散列值和用户数字证书唯一标识进行数字签名,生成访问所述数字签名后的信息的签名服务URL,并将所述签名服务URL编码形成可信图形码发送给浏览器310。智能终端330基于浏览器310的提示扫描浏览器310展示的可信图形码,解码获得签名服务URL,以及使用用户数字证书签名所述签名服务URL,并携带生成的用户数字签名访问所述签名服务URL。业务系统320还用于基于智能终端330对签名服务URL的访问验证用户数字签名,并在验证通过后,发送签名服务URL所对应的待签名信息、第一签名信息散列值、用户数字证书唯一标识和业务系统数字签名给智能终端330。智能终端330还用于验证获得的业务系统数字签名,并在验证通过后,根据所述待签名信息计算第二签名信息散列值,并在所述第二签名信息散列值与获得的第一签名信息散列值一致时,对所述待签名信息完成用户数字签名,将用户数字签名结果发送给业务系统320。业务系统320接收智能终端330发送的用户数字签名结果,验证用户数字证书和数字签名以确认该用户数字签名结果的真实性和完整性,然后将该用户数字签名结果返回给浏览器310。浏览器310收到用户数字签名结果,便可完成业务请求。

具体如图3所示,业务系统320进一步包括可信图形码生成模块321、第一发送模块322、数字签名服务模块323、验证模块324和第二发送模块325。其中,可信图形码生成模块321基于浏览器310发起的用户需要使用数字签名的业务请求,获得待签名信息和用户数字证书唯一标识,产生所述待签名信息对应的第一签名信息散列值,并使用业务系统数字证书对所述待签名信息、第一签名信息散列值和用户数字证书唯一标识进行数字签名,生成访问所述数字签名后的信息的签名服务URL,并将所述签名服务URL编码形成可信图形码。第一发送模块322用于将可信图形码发送给浏览器310进行展示。数字签名服务模块323用于接收智能终端330通过扫描所述可信图形码对签名服务URL的访问,并在验证用户数字签名通过后,发送所述签名服务URL对应的待签名信息、第一签名信息散列值、用户数字证书唯一标识和业务系统数字签名给智能终端330。验证模块324用于接收智能终端330发送的用户数字签名结果,并验证用户数字证书和数字签名。第二发送模块325用于将通过验证的所述用户数字签名结果返回给浏览器310。

具体如图3所示,智能终端330进一步包括扫描模块331、URL访问模块332、接收模块333、数字签名模块334和发送模块335。其中,扫描模块331用于扫描浏览器310展示的可信图形码,解码获得签名服务URL。URL访问模块332用于使用用户数字证书签名所述签名服务URL,并携带生成的用户数字签名访问所述签名服务URL。接收模块333用于接收业务系统发送的所述签名服务URL对应的待签名信息、第一签名信息散列值、用户数字证书唯一标识和业务系统数字签名。数字签名模块334用于验证所述业务系统数字签名,并在验证通过后根据所述待签名信息计算第二签名信息散列值,并在所述第二签名信息散列值与获得的第一签名信息散列值一致时,对所述待签名信息完成用户数字签名。发送模块335用于将用户数字签名结果发送给业务系统320。

进一步的优选实施例中,业务系统320的可信图形码生成模块321还生成所述使用业务系统数字证书进行数字签名的签名信息时间戳,并将所述签名信息时间戳与所述签名服务URL一起编码形成所述可信图形码。智能终端330的扫描模块331扫描可信图形码还可解码获得签名信息时间戳,URL访问模块332在访问该签名服务URL之前,先验证所述签名信息时间戳以确认签名服务URL地址无误。

本发明的上述数字签名系统以业务系统生成数字签名信息可信图形码为基础,通过智能终端(例如手机)扫描验证可信图形码后完成数字签名,相关签名信息送到业务系统,业务系统反馈结果到个人电脑浏览器,完成数字签名过程。该过程不需要通过控件访问个人电脑密钥,通过可信图形码建立个人电脑、智能终端、业务系统间的带外交互,完成数字签名,提升了用户安全体验,降低了用户数字证书使用复杂度,是一种业务系统快速部署数字签名技术实现数据完整性、真实性的安全新型创新数字证书应用。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

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