一种基于远程硬件安全模块的数字签名方法

文档序号:7824378阅读:298来源:国知局
一种基于远程硬件安全模块的数字签名方法
【专利摘要】本发明涉及一种基于远程硬件安全模块的数字签名方法,其实现步骤包括:HSM组的每个HSM向CA注册;用户组的每个用户向CA注册;单个用户通过系统与单个HSM建立安全通道;单个HSM为单个用户生成并返回数字签名。本发明通过取消系统对用户的认证、引入CA为用户和HSM颁发数字证书、使用安全通道技术完成用户对HSM的认证、使用口令和安全验证短信的方式完成HSM对用户的认证和签名内容的确认,实现了一种安全有效的基于HSM的数字签名方法,解决了【背景技术】中效率和安全性较低的问题。
【专利说明】一种基于远程硬件安全模块的数字签名方法

【技术领域】
[0001]本发明涉及信息安全领域,特别是涉及一种基于远程硬件安全模块的数字签名方法。

【背景技术】
[0002]硬件安全模块(HSM)在原始定义上是一种物理上防止篡改,功能上能够完成所需密码算法的硬件设备。Stathis Mavrovoun1tis和Mick Ganley在2014年出版了《SecureSmart Embedded Devices,Platforms and Applicat1ns》,其中的第 17 章介绍的正是HSM,包括了基本的需求和一些常见的攻击。该著作中的表17.3包含当前能够达到FIPS 140-2四级安全标准的一些HSM产品,包括IBM,AEP,HP等公司的成熟产品。随着技术的进步,在安全的操作环境中,硬件安全模块可以采用虚拟化技术来实现。
[0003]HSM产品的存在为我们设计安全协议提供了新的选择。当考虑数字签名时,我们发现当前用户完成数字签名大都是通过USB KEY等客户端硬件完成。这些客户端硬件与具有USB接口的计算设备连接,由用户负责该计算设备上运行环境的安全性,并在客户端硬件中完成数字签名。例如当前中国工商银行的USB KEY就是通过这种方式让客户签名,对银行的相关操作完成授权的。
[0004]然而,在移动设备上,当前的技术存在一些限制。首先,大多数的移动设备并没有提供相应类型的USB接口,因而大部分客户端硬件无法直接在移动设备上使用;其次,针对移动设备的类USB KEY设备大都是单独的设备,如果用户单独携带,增加了丢失的风险,如果由用户存放在固定位置,会降低使用的便利性;最后,硬件设备的损耗是不可避免的问题,频繁的插拔会引起接口损坏。总之,目前的解决方案并不适合移动场景下的数字签名这类应用。
[0005]鉴于这些问题,目前出现了一种云端服务器为移动设备提供签名的技术。Orthacker,Centner和Kittl在2011年首先探讨了这一问题。他们在论文“QualifiedMobile Server Signature”中讨论了通过远程服务器提供有效的数字签名的可能性。这里“有效的数字签名”与我国《电子签名法》中规定的几个要素是相匹配的,即该数字签名满足以下几点要求:
[0006](I)电子签名制作数据用于电子签名时,属于电子签名人专有;
[0007](2)签署时电子签名制作数据仅由电子签名人控制;
[0008](3)签署后对电子签名的任何改动能够被发现;
[0009](4)签署后对数据电文内容和形式的任何改动能够被发现。
[0010]Orthacker, Centner和Kittl认为只要服务器是在安全的运行环境下,用户是被强认证的,用户到签名生成设备之间的通道是安全的,服务器在用户授权下所生成的数字签名也是有效的。在具体实施上,他们建议使用用户的口令,用户的SIM卡来完成对用户的认证,使用HSM来保证服务器端的安全运行环境,HSM安装在可控可信的系统中,该系统和用户之间的安全通道用传输层安全协议(TLS)来保护,SIM卡和HSM之间的通道则依赖无线网络运行商提供的安全通道来保护。在具体协议上,他们建议用户首先通过TLS通道把自己的口令交给安装了 HSM的系统,由该系统使用其存储的与用户私钥相关的秘密数据和用户的口令获得HSM加密的用户私钥,之后发送给HSM,HSM发送验证码给用户,当用户返回验证码后,由HSM完成数字签名。
[0011]Kinastowski在2013年提议把数字签名直接做成云服务。在论文“DigitalSignature as a Cloud-based Service,,中,Kinastowski 继承了 Orthacker, Centner 和Kittl的观点,认为可以通过强认证、安全通道和可控的服务器环境来完成云端的数字签名。在具体协议上,他们使用一次性口令(OTP)来保护用户待加密的内容,依赖HSM的公钥来保护用户的口令,并由HSM直接获得用户加密后的文档、口令、以及存储在系统中的使用HSM的密钥和用户的口令加密的用户私钥,并由HSM完成数字签名。
[0012]通过比较Orthacker,Centner和Kittl的协议和Kinastowski的协议,我们看到Orthacker, Centner和Kittl并没有给出文档的传输方式,同时过度依赖与HSM相连的系统的安全性,事实上,在Orthacker,Centner和Kittl的协议中,如果该系统是不诚实的,它完全可以获得仅有HSM加密的用户私钥,并截取HSM发送的验证码,从而代替用户签名。这意味着该系统在服务器签名中是极为关键的元素。而Kinastowski的协议则通过把加密后的文档,口令以及加密的私钥全部直接交给HSM,由HSM直接完成对用户的认证,缓解了Orthacker,Centner和Kittl对系统过度依赖的问题。然而,Kinastowski的协议非常依赖用户口令,并且该口令在用户向系统认证阶段,以及用户向HSM认证阶段都是一致的,这导致其协议在口令的保护方面比较脆弱。系统依旧能够利用用户的口令来让HSM完成该用户的数字签名。另外,Kinastowski的协议中,用户需要提交加密的文档,当文档很大时,会给用户端的浏览器造成极大的负担。
[0013]由此我们得出结论,目前人们虽然在利用强认证协议、HSM和安全通道这几个方面来完成基于云端服务器的签名基本达成了共识,却还没有一种安全有效的方法来基于HSM实现数字签名。


【发明内容】

[0014]本发明的目的在于提供基于远程硬件安全模块实现数字签名的方法,解决【背景技术】中用户口令保护脆弱、浏览器负担较大、缺乏安全有效的方法实现数字签名的问题。
[0015]为实现上述目的,本发明给出以下方法:
[0016]1、该方法涉及证书权威机构(CA)、用户组、硬件安全模块(HSM)组,HSM组所连接的系统(以下简称系统)四个部分,包括以下步骤:
[0017]I) HSM组的每个HSM向CA注册的步骤;
[0018]2)用户组的每个用户向CA注册的步骤;
[0019]3)单个用户通过系统与单个HSM建立安全通道的步骤;
[0020]4)单个HSM为单个用户生成并返回数字签名的步骤。
[0021]2、每个HSM向CA注册的步骤包括:
[0022]I)系统向HSM发出初始化指令,包括生成证书请求证书的基本信息;
[0023]2) HSM生成该HSM用于数字签名的公/私钥对、用于数据加密的公/私钥对、和用于数据加密的对称密钥;
[0024]3) HSM将用于数字签名的私钥、用于数据加密的私钥、用于数据加密的对称密钥存储在HSM的安全存储区;
[0025]4)HSM使用生成证书请求证书的基本信息、该HSM的识别信息、用于数字签名的公钥、和用于数字签名的私钥生成用于数字签名的证书请求证书;
[0026]5)HSM使用生成证书请求证书的基本信息、该HSM的识别信息、用于数据加密的公钥和用于数据加密的私钥生成用于数据加密的证书请求证书;
[0027]6)HSM将用于数字签名的证书请求证书和用于数据加密的证书请求证书经由系统提交给CA ;
[0028]7) CA验证HSM的两个证书请求证书的有效性,其中任意一个无效则拒绝签发数字证书,否则基于用于数字签名的证书请求证书和CA的私钥生成用于数字签名的数字证书,并基于用于数据加密的证书请求证书和CA的私钥生成用于数据加密的数字证书;
[0029]8) CA返回用于数字签名的数字证书和用于数据加密的数字证书给系统;
[0030]9)系统存储HSM的数字证书。
[0031]3、每个用户向CA注册的步骤包括:
[0032]I)用户向CA提交手机号码,电子邮件等注册信息;
[0033]2) CA向系统查询空闲的HSM ;
[0034]3)系统查询连接的HSM组,获得空闲的HSM列表,将列表中一个HSM的用于数字签名的数字证书和用于数据加密的数字证书经CA转交给用户;
[0035]4)用户使用HSM的用于数据加密的数字证书中的公钥加密自己的私钥提取口令,并把密文提交给CA ;
[0036]5)CA把用户的手机号码、电子邮件等注册信息和加密的该用户的私钥提取口令经由系统提交给对应的HSM ;
[0037]6)该HSM首先生成用户用于数字签名的公/私钥对,然后把用户的手机号码输入HSM的HASH算法,获得该用户的索引值,然后使用用户的注册信息、生成的索引值、用户用于数字签名的私钥来生成用户的用于数字签名的证书请求证书,然后使用HSM用于数据加密的私钥解密用户的私钥提取口令,然后使用密钥生成函数把HSM用于数据加密的对称密钥、用户的私钥提取口令、和用户的手机号码做为输入,输出一个用户私钥加密密钥,然后使用该用户私钥加密密钥、用户用于数字签名的私钥获取加密的用户数字签名私钥,最后HSM返回用户的索引值、加密的用户数字签名私钥、和用户的用于数字签名的证书请求证书给系统,其中获取加密的用户数字签名私钥时,所采用的算法是HSM对称加密体制中的加密算法,该加密算法在实现上具有完整性保护的功能,例如AES-CCM算法;
[0038]7)系统存储用户的索引值和加密的用户数字签名私钥,转发用户的用于数字签名的证书请求证书给CA ;
[0039]8) CA基于用户的用于数字签名的证书请求证书和CA的私钥生成用户的用于数字签名的数字证书,并提交给用户;
[0040]9)用户存储用于数字签名的数字证书;
[0041]4、单个用户通过系统与单个HSM建立安全通道的步骤包括:
[0042]I)用户向系统提交HSM用于数据加密的数字证书,要求与数字证书所指明的HSM建立安全通道;
[0043]2)系统通过用户提交的数字证书中HSM的识别信息查询HSM组,如果该HSM空闲,则通知用户与该HSM建立安全通道,否则提示用户等待并周期查询该HSM的状态,当可用时通知用户与该HSM建立安全通道;
[0044]3)用户与该HSM建立安全通道,单向认证HSM的真实性,并生成保护数据完整性和机密性的密钥。
[0045]5、单个HSM为单个用户生成并返回数字签名的步骤包括:
[0046]1)HSM通过安全通道提示用户输入私钥提取口令、手机号码和待签名内容;其中待签名内容可以是完整的待签名文档,也可以是文档的HASH值,或者是部分的文档的信息和文档的HASH值。这里的文档可以是程序、数据块等任意电子签名制作数据。
[0047]2)用户通过安全通道向HSM提交自己的私钥提取口令、手机号码和待签名内容;
[0048]3) HSM把用户的手机号码输入HSM的HASH算法,获得该用户的索引值,提交系统;
[0049]4)系统返回给HSM用户的索引值所对应的加密的用户数字签名私钥;
[0050]5) HSM使用密钥生成函数把HSM用于数据加密的对称密钥、用户的私钥提取口令、和用户的手机号码做为输入,输出一个用户私钥加密密钥,然后使用该用户私钥加密密钥、加密的用户数字签名私钥解密获取用户的数字签名私钥;
[0051]6)HSM生成安全短消息,包括随机数、本地时钟的时间、用户待签名内容的信息、和使用HSM的用于数字签名的私钥生成的关于该短消息内容的数字签名,然后发送该安全短消息给用户;
[0052]7)用户验证安全短消息的数字签名是否有效,验证待签名内容是否正确,验证通过则通过安全通道提交收到的随机数,完成数字签名确认的操作;
[0053]8)HSM确认随机数的一致性,然后使用用户的数字签名私钥对待签名内容进行数字签名,返回数字签名结果给用户。
[0054]为了支持上述数字签名方法,本发明要求硬件安全模块在实现上包括以下模块:HSM公钥加密体制、HSM数字签名体制、HSM对称加密体制、HSM密钥生成函数、HSM短消息发送模块、HSM安全存储区、HASH算法、随机数生成算法、用户数字签名体制、证书请求证书生成算法、安全通道建立模块、本地时钟模块。
[0055]本发明具有以下优点:
[0056]首先,用户通过浏览器提交给HSM的待签名内容可以仅仅是HASH值,因而在需要签名的消息过大时,无需传输整个消息,只需要传输固定大小的HASH值,提高了签名的效率。其次,用户只需要向系统提交HSM的数字证书,无需提供自身的口令等信息,减少了口令的使用次数,提高了口令的安全性。再次,本发明中用户和HSM之间具有双向的认证关系,用户在建立安全通道时认证HSM,而HSM则通过用户私钥提取口令的有效性判断用户的身份。最后,本发明中HSM使用用户的私钥签名之前需要得到用户的确认。总的来看,本发明提供了一种安全有效的基于远程硬件安全模块的数字签名方法。
[0057]本发明所提供的基于远程硬件安全模块的数字签名方法,可以用于移动办公,移动电子政务,移动电子商务等需要通过移动设备完成符合《电子签名法》要求的有效电子签名的场景,要求移动设备能够接收短消息,能够连接互联网。

【专利附图】

【附图说明】
[0058]下面结合附图和【具体实施方式】来对本发明进行详细的阐述。
[0059]图1基于远程硬件安全模块实现数字签名的方法框架;
[0060]图2HSM向CA注册的过程示例;
[0061]图3用户向CA注册的过程示例;
[0062]图4用户通过系统与HSM建立安全通道的过程示例;
[0063]图5HSM为用户生成数字签名的过程示例;
[0064]图6HSM的功能模块示意图

【具体实施方式】
[0065]该方案包括证书权威机构(CA)、用户、HSM组和系统这样四个部分。具体实施时首先由HSM组的每一个HSM向CA注册;之后由用户向CA注册;在需要生成数字签名时,用户通过系统与HSM建立安全通道,然后由HSM为用户生成数字签名。下面以移动办公场景为例来说明具体实施过程。
[0066]实施例1
[0067]假设存在证书权威机构CA,该CA提供了连接HSM组的系统,并提供了 HSM组,用于提供云签名服务。该CA的某个用户,张三,是某公司的部门经理,需要使用该项云签名服务来提供有效的电子签名,以便在外地出差时能够处理公司的业务。
[0068]HSM组的每个HSM在本实施例中支持如下算法、体制和模块:RSA_OAEP公钥加密体制、符合RFC4359的数字签名体制、AES-CCM对称加密体制、符合RFC5869的密钥生成函数、GSM短消息发送模块、防篡改防探测的安全存储区、HASH算法SHA-256、BBS随机数生成算法、用户的DSA数字签名体制、证书请求证书生成算法PKCS10#、安全通道建立模块TLS、本地时钟。
[0069]完成数字签名的实施过程如下:
[0070](I)CA内部的HSM管理人员操作系统,向HSM组的每一个HSM发出初始化命令,触发每一个HSM向CA的注册过程。每一个HSM在系统中都有一个唯一的标识,该标识是HSM的物理地址,为了叙述方便,我们把第j个HSM的物理地址称为id_j,如图2所示。下面以id_j模块为例来说明HSM向CA注册的过程。HSM组的其它模块采取相同的过程。
[0071](2)在系统触发id_j向CA注册后,id_j启动自己的HSM公钥加密体制中的密钥生成算法,为自己生成用于加密的公钥pk~e_j和用于解密的私钥sk~e_j ;启动自己的HSM数字签名体制中的密钥生成算法,为自己生成用于签名的私钥Sk~s_j和用于验证签名的公钥pk~s_j ;启动自己的HSM对称密钥加密体制中的密钥生成算法,为自己生成用于对称加密和解密的密钥ssk_j。之后Sk~e_j,sk~s_j和ssk_j存储在id_j的HSM安全存储区。然后id_j模块与HSM管理人员交互,为公钥pk~e_j和pk~s_j按照证书请求证书生成算法,例如pkcs#10规范,生成证书请求证书,其中包含id_j这一唯一标识符。CA得到证书请求证书之后,验证其有效性,在验证有效之后为id_j模块签发数字证书,否则拒绝签发数字证书。假设CA为id_j模块颁发的数字证书分别称为Cert~e_j和Cert~S_j。这两个数字证书保存在与HSM组相连接的系统中。因此,在初始化完成之后,系统存储了 HSM组中每一个模块的数字证书,每一个模块中存在三个私钥,CA为每一个模块签发了两张数字证书。
[0072](3)当用户张三向CA申请云签名服务时,触发该用户向CA的注册过程。张三需要向CA提供自己的手机号码,电子邮件等注册信息,用于以后的电子签名确认过程。在本实施例中假设张三提供了自己的手机号码。另外张三需要向CA提供的注册信息还包括姓名,单位等个人信息,用于CA为张三生成数字证书。CA向系统请求空闲的HSM,并得到空闲HSM的数字证书。假设空闲的HSM为id_j,CA得到的数字证书是Cert~e_j和Cert ~s_j。CA将Cert"e_j和Cert~s_j交给张三。张三验证Cert~e_j和Cert~s_j的有效性,无效则放弃操作。否则保存在自己的移动设备中。张三然后把自己的私钥提取口令psss_z用Cert~e_j的公钥加密,得到加密的密文C_pass = E(pk~e_j,pass_z),交给CA。CA将用户的手机号码、注册信息,C_pass交给系统,系统交给id_j模块。模块id_j启动用户数字签名体制中的密钥生成算法,为用户张三生成用于签名的私钥sk~S_Z和用于验证签名的公钥pk~s_z。然后id_j模块启动HASH算法,计算用户手机号码的HASH值,得到Cjndex。之后id_j模块使用用户的注册信息为公钥pk~s_z按照证书请求证书生成算法,例如pkcS#10规范,生成证书请求证书,并在其中包含C_index字段。然后id_j模块解密C_pass,得到pass_z。然后id_j启动HSM密钥生成函数,输入pass_Z、ssk_j和张三的手机号码,得到用户私钥加密密钥pek_z。然后id_j模块启动HSM对称加密体制中的对称加密算法,把pek_z作为加密密钥,把sk~s_z作为明文,加密后得到密文C_priv。模块id_j输出C_priv和证书请求证书。系统存储C_priv和C_index。系统把证书请求证书提交给CA。CA生成用户关于pk"s_z的公钥证书。
[0073](4)当张三需要使用移动设备生成电子签名时,张三需要打开系统提供的APP或者网页等客户端,用以通过系统向HSM请求数字签名。假设张三通过网页访问系统的云签名服务,张三需要签署的是一个文档DOC。张三通过网页向系统提交自己储存的HSM的证书Cert~e_j,系统通过证书中的id_j确认该模块是否空闲,如果该模块空闲,则通知用户开始建立安全信道,否则用户需要等待。用户张三的浏览器与模块id_j执行安全通道建立协议,例如执行TLS协议如下的密码套件:
[0074]TLS_RSA_WITH_AES_128_CBC_SHA。
[0075]TLS协议可以保证用户对id_j模块的认证,同时完成安全通道的建立,安全通道使用128比特密钥的AES算法按照CBC的模式加密,使用SHA保证密文的完整性。
[0076](5)模块id_j提示张三输入手机号码、pass_z和文档待签名内容。用户输入自己的手机号码、pass_z和待签署文档的HASH值,这些值都在安全通道中传输。之后HSM启动HASH算法,计算用户手机号码的HASH值,得到Cjndex。然后HSM把Cjndex提交给系统,获得密文C_priv。模块id_j启动密钥生成函数,输入pass_Z、ssk_j和张三的手机号码,得到用户私钥加密密钥pek_z。模块id_j启动对称解密算法,获得用户的私钥Sk~S_z ;如果解密失败,则id_j向系统返回错误,终止签名过程。否则模块id_j启动短消息发送模块,向用户的手机发送安全短消息,确认即将对某个HASH值进行签名,并对短消息的内容、当前时间和随机数,用私钥sk~s_j计算数字签名,一起发送给用户。用户张三应当有适当的软件可以检验短消息的安全性,即使用pk~s_j的公钥验证短消息的来源。验证通过后,张三确认待签署的HASH值和自己发送给模块id_j的HASH值一致,然后确认数字签名,把随机数通过安全通道返回给HSM的模块id_j。当模块id_j收到收到用户发送的随机数之后,id_j使用张三的私钥sk~s_z对DOC的HASH值进行数字签名,返回给用户关于DOC的签名值。张三的浏览器把该签名附在DOC的后面,形成最终的数字签名。
[0077]实施例2
[0078]实施例2与实施例1相同,除了步骤(3)中,用户张三向CA提交的个人信息为电子邮件,并在后续的处理中,把用到手机号码的计算全部更改为电子邮件地址;在步骤(5)中,用户张三向HSM提交电子邮件地址,并在后续操作中使用电子邮件来确认签名,即HSM向张三的电子邮件地址发送安全电子邮件,等待用户返回电子邮件中的随机数,确认签名。此时HSM可以没有短消息发送模块,但是需要支持电子邮件发送的功能。
[0079]实施例3
[0080]实施例3综合了实施例1和2,同时使用用户手机号码和电子邮件来让用户确认,需要用户输入两个随机数,可以提供更好的安全性,同时也要求HSM同时支持短消息发送模块和电子邮件模块。
[0081]实施例4
[0082]实施例4与实施例1相同,除了在步骤3中及后续步骤中,用户向HSM提交私钥提取口令时,用的是张三的生物特征信息,例如张三的指纹信息,该指纹信息经过数字化之后也可以作为私钥提取口令。在后续使用私钥提取口令的位置,全部使用的是张三的生物特征信息。
[0083]实施例5
[0084]实施例5与实施例1相同,除了在步骤5中,用户直接向HSM提交DOC的信息,而不是HASH值。在后续操作中,用到DOC的HASH值的位置,全部用DOC本身替代。
【权利要求】
1.一种基于远程硬件安全模块的数字签名方法,包括证书权威机构、用户组、硬件安全模块组、硬件安全模块所连接的系统,其特征在于包括以下步骤: 1)硬件安全模块组的每个硬件安全模块向证书权威机构注册; 2)用户组的每个用户向证书权威机构注册; 3)单个用户通过所述硬件安全模块所连接的系统与单个硬件安全模块建立安全通道; 4)单个硬件安全模块为单个用户生成并返回数字签名。
2.根据权利要求1所述的方法,其特征在于,所述的每个硬件安全模块向证书权威机构注册的步骤包括: 1)系统向硬件安全模块发出初始化指令,包括生成证书请求证书的基本信息; 2)硬件安全模块生成该硬件安全模块用于数字签名的公/私钥对、用于数据加密的公/私钥对、和用于数据加密的对称密钥; 3)硬件安全模块将用于数字签名的私钥、用于数据加密的私钥、用于数据加密的对称密钥存储在硬件安全模块的安全存储区; 4)硬件安全模块使用生成证书请求证书的基本信息、该硬件安全模块的识别信息、用于数字签名的公钥、和用于数字签名的私钥生成用于数字签名的证书请求证书; 5)硬件安全模块使用生成证书请求证书的基本信息、该硬件安全模块的识别信息、用于数据加密的公钥和用于数据加密的私钥生成用于数据加密的证书请求证书; 6)硬件安全模块将用于数字签名的证书请求证书和用于数据加密的证书请求证书经由系统提交给证书权威机构; 7)证书权威机构验证硬件安全模块的两个证书请求证书的有效性,其中任意一个无效则拒绝签发数字证书,否则基于用于数字签名的证书请求证书和证书权威机构的私钥生成用于数字签名的数字证书,并基于用于数据加密的证书请求证书和证书权威机构的私钥生成用于数据加密的数字证书; 8)证书权威机构返回用于数字签名的数字证书和用于数据加密的数字证书给系统; 9)系统存储硬件安全模块的数字证书。
3.根据权利要求1所述的方法,其特征在于,所述的每个用户向证书权威机构注册的步骤包括: 1)用户向证书权威机构提交手机号码,电子邮件等注册信息; 2)证书权威机构向系统查询空闲的硬件安全模块; 3)系统查询连接的硬件安全模块组,获得空闲的硬件安全模块列表,将列表中一个硬件安全模块的用于数字签名的数字证书和用于数据加密的数字证书经证书权威机构转交给用户; 4)用户使用硬件安全模块的用于数据加密的数字证书中的公钥加密自己的私钥提取口令,并把密文提交给证书权威机构; 5)证书权威机构把用户的手机号码、电子邮件等注册信息和加密的该用户的私钥提取口令经由系统提交给对应的硬件安全模块; 6)该硬件安全模块首先生成用户用于数字签名的公/私钥对,然后把用户的手机号码输入硬件安全模块的HASH算法,获得该用户的索引值,然后使用用户的注册信息、生成的索引值、用户用于数字签名的私钥来生成用户的用于数字签名的证书请求证书,然后使用硬件安全模块用于数据加密的私钥解密用户的私钥提取口令,然后使用密钥生成函数把硬件安全模块用于数据加密的对称密钥、用户的私钥提取口令、和用户的手机号码做为输入,输出一个用户私钥加密密钥,然后使用该用户私钥加密密钥、用户用于数字签名的私钥获取加密的用户数字签名私钥,最后硬件安全模块返回用户的索引值、加密的用户数字签名私钥、和用户的用于数字签名的证书请求证书给系统; 7)系统存储用户的索引值和加密的用户数字签名私钥,转发用户的用于数字签名的证书请求证书给证书权威机构; 8)证书权威机构基于用户的用于数字签名的证书请求证书和证书权威机构的私钥生成用户的用于数字签名的数字证书,并提交给用户; 9)用户存储用于数字签名的数字证书。
4.根据权利要求1所述的方法,其特征在于,所述的单个用户通过系统与单个硬件安全模块建立安全通道的步骤包括: 1)用户向系统提交硬件安全模块用于数据加密的数字证书,要求与数字证书所指明的硬件安全模块建立安全通道; 2)系统通过用户提交的数字证书中硬件安全模块的识别信息查询硬件安全模块组,如果该硬件安全模块空闲,则通知用户与该硬件安全模块建立安全通道,否则提示用户等待并周期查询该硬件安全模块的状态,当可用时通知用户与该硬件安全模块建立安全通道; 3)用户与该硬件安全模块建立安全通道,单向认证硬件安全模块的真实性,并生成保护数据完整性和机密性的密钥。
5.根据权利要求1所述的方法,其特征在于,所述的单个硬件安全模块为单个用户生成并返回数字签名的步骤包括: 1)硬件安全模块通过安全通道提示用户输入私钥提取口令、手机号码和待签名内容; 2)用户通过安全通道向硬件安全模块提交自己的私钥提取口令、手机号码和待签名内容; 3)硬件安全模块把用户的手机号码输入硬件安全模块的HASH算法,获得该用户的索引值,提交系统; 4)系统返回给硬件安全模块用户的索引值所对应的加密的用户数字签名私钥; 5)硬件安全模块使用密钥生成函数把硬件安全模块用于数据加密的对称密钥、用户的私钥提取口令、和用户的手机号码做为输入,输出一个用户私钥加密密钥,然后使用该用户私钥加密密钥、加密的用户数字签名私钥解密获取用户的数字签名私钥; 6)硬件安全模块生成安全短消息,包括随机数、本地时钟的时间、用户待签名内容的信息、和使用硬件安全模块的用于数字签名的私钥生成的关于该短消息内容的数字签名,然后发送该安全短消息给用户; 7)用户验证安全短消息的数字签名是否有效,验证待签名内容是否正确,验证通过则通过安全通道提交收到的随机数,完成数字签名确认的操作; 8)硬件安全模块确认随机数的一致性,然后使用用户的数字签名私钥对待签名内容进行数字签名,返回数字签名结果给用户。
6.根据权利要求1所述的方法,其特征在于,所述的硬件安全模块包括硬件安全模块公钥加密体制、硬件安全模块数字签名体制、硬件安全模块对称加密体制、硬件安全模块密钥生成函数、硬件安全模块短消息发送模块、硬件安全模块安全存储区、HASH算法、随机数生成算法、用户数字签名体制、证书请求证书生成算法、安全通道建立模块、本地时钟模块。
7.根据权利要求5所述的方法,其特征在于,所述的待签名内容包括待签名文档的HASH 值。
【文档编号】H04L9/32GK104486087SQ201410849864
【公开日】2015年4月1日 申请日期:2014年12月23日 优先权日:2014年12月23日
【发明者】田海博, 方乃正 申请人:中山大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1