G06F21/64 G06F21/60
1.一种一次性数字证书申请及签名系统,其特征在于:包括证书申请签名模块、密钥服务模块、密码设备管理模块、密码设备、传输接口;
证书申请签名模块包括证书请求的组装,证书申请、证书签名功能;
密钥服务模块负责调用密码设备,密码设备使用非对称密码算法生成临时性密钥对、签名、销毁临时性密钥对;
密码设备管理模块实现密码设备的初始化;
传输接口负责接收调用方的请求数据,对请求数据进行校验后发送至证书申请签名模块,以及将数字证书及签名值返回给调用方。
2.一种一次性数字证书申请及签名方法,其特征在于,包括如下步骤:
S1,调用方验证用户信息后,提交用户身份信息以及需要签名的数据到CAASS;
S2,CAASS调用硬件密码设备,使用非对称密码算法为用户生成临时性密钥对;
S3,CAASS将用户信息与用户的公钥结合,并使用用户私钥进行签名得到证书签发请求,将证书签发请求发送至CA机构申请签发证书;
S4,CA机构审核用户身份信息通过后,签发数字证书并返回给CAASS;
S5,CAASS将需要签名的数据调用密码设备中用户私钥进行签名得到签名值,签名完成后销毁密码设备中用户的临时性密钥对;证书申请签名模块将数字证书和签名后的签名值返回给调用方。
3.根据权利要求2所述的一次性数字证书申请及签名方法,其特征在于:
临时性密钥对在硬件密码设备中生成;密码设备以用户身份信息、设备驱动、硬件噪声源加入熵源,生成临时性非对称密码算法密钥对,证书申请和签名在一个事务中完成且对数据签名后立即销毁临时性密钥对,保证生成的临时性密钥对的唯一性。
4.根据权利要求2或3所述的一次性数字证书申请及签名方法,其特征在于:
当存在不止一个需要签名的数据,调用方将需要签名的数据按照预设的规则拼接得到待签名字符串,将待签名字符串发送给CAASS;CAASS接收到拼接后的待签名字符串后,分割得到需要签名的数据,然后使用私钥分别签名,得到需要签名的数据对应的签名数据;CAASS用预设的规则进行拼接得到签名字符串,返回给调用方;调用方分割签名字符串得到签名数据。
5.根据权利要求4所述的一次性数字证书申请及签名方法,其特征在:
各个需要签名的数据之间用连接符连接;CAASS签名得到的签名数据之间用连接符连接。
6.根据权利要求2所述的一次性数字证书申请及签名方法,其特征在于,S5中进一步包括:
调用时间戳服务器接口对签名值加盖时间戳,返回调用方签名证书、签名值、签名值的时间戳。
本发明应用于公开密钥基础设施系统(PKI)领域,特别是涉及电子签名、电子签章的信息安全、数据业务等领域。
数字签名是非对称密钥加密技术与数字摘要技术的应用,主要包括发送方的信息签名和接收方的信息签名认证。
数字签名作为一种实现签名认证的重要技术,能够提供身份验证、数据完整性、不可抵赖等安全服务。同时还需要保证信息的本身传输的安全性,对数字签名进行加密,防止攻击者冒充签名。
非对称密码算法,指的是加密和解密使用不同密钥的密码算法。其中一个密钥(公钥)是公开的,另一个密钥(私钥)是保密的,且由公钥求解私钥是不可行的。公钥和私钥是一对,称为非对称密码算法密钥对。
传统的数字证书申请及签名步骤比较繁琐,以个人申请USBKey证书为例,所需步骤如下:
1)将个人信息录入到证书注册系统(RA),经审核通过后进入到待签发状态。
2)在USBKey介质中生成非对称密码算法密钥对,进一步调用私钥对个人信息及公钥信息签名生成证书请求。将证书请求发送给RA并由RA发送至发证系统(CA)签发证书。
3)CA系统制作数字证书,将数字证书返回给RA(如果申请双证书会返回签名证书、加密证书和加密后的加密证书私钥),RA将数字证书返回给个人,最终写入到USBKey介质中,至此数字证书签发完成。
4)在做数字签名时,需要将USBKey连接到PC,输入PIN码完成签名。
使用USBKey证书,私钥在USBKey介质中生成且受安全芯片保护,调用私钥时需要验证用户设置的PIN口令,私钥不可被复制或导出。通过物理硬件介质以及PIN的形成双因素认证保护,从安全性角度讲,USBKey介质证书是安全可靠的。然而,USBKey证书的使用高度依赖于驱动程序和电脑软硬件环境,很容易出现无法使用USBKey证书的问题,USBKey证书还存在无法在移动终端(手机、平板等)使用的问题,并且USBKey介质存在一定的硬件成本。
现在,基于USBKey证书还存在无法在移动终端使用的问题,出现了以移动密码安全模块为存储介质的移动数字证书解决方案,即通过移动密码安全模块保护用户私钥的安全。此方法解决了USBKey证书无法在移动终端使用的问题,然而移动密码模块需要集成到到移动APP中并且依赖于移动APP,在很多用户只需要办理一次性业务的场景下,让用户下载一个APP使用对用户来说是很不好的体验;在很多需要高频使用证书签名的业务场景中(比如医生做处方签名),让用户(医生)频繁拿出移动终端使用移动证书签名也是很不好的体验。
为解决上述问题,业内有厂商推出所谓的“云证书”的解决方案,即在云端(或服务器端)为用户生成非对称密码算法密钥对并保存,然后构造证书请求由CA机构签发证书,将证书同时也保存在云端(或服务器端),为保护私钥的安全,该解决方案通常会设置校验码,有的会对私钥做加密存储,尽管如此,该方案在做私钥签名时,私钥会以完整的形态出现在内存中,存在被复制、被导出的可能。这种方式实际上将用户的私钥托管在服务端供服务端调用,很难证明其满足《电子签名法》中“电子签名制作数据用于电子签名时,属于电子签名人专有”这一条件,所做的数字签名可能将无法受到《电子签名法》的保护。
针对上述技术问题,本发明提出一种一次性数字证书申请及签名系统及方法。
为达到上述目的,本发明采用的技术方案为一次性数字证书申请及签名系统,包括证书申请签名模块、密钥服务模块、密码设备管理模块、密码设备、传输接口。
证书申请签名模块功能主要包括证书请求的组装,证书申请、证书签名等功能;
密钥服务模块负责调用密码设备,密码设备使用非对称密码算法生成临时性密钥对、签名、销毁临时性密钥对;
密码设备管理模块包括对密码设备(比如密码机、密码卡)的初始化、管理等功能;
传输接口负责接收调用方的请求数据,对请求数据进行校验后发送至证书申请签名模块,以及将数字证书及签名值返回给调用方。
本发明还公开一种一次性数字证书申请及签名方法,具体包括以下步骤:
S1、调用方(例如业务系统)在验证用户信息后,提交用户身份信息以及需要签名的数据到CAASS。
S2、CAASS调用硬件密码设备,使用非对称密码算法(包括但不限于RSA、DSA、ECC、SM2等非对称密码算法)为用户生成临时性密钥对,保证生成的临时性密钥对的唯一性。
S3、CAASS将用户信息与用户的公钥结合,并使用用户私钥进行签名得到证书签发请求,将该证书签发请求发送至CA机构申请签发证书。所申请证书的有效期极短(以秒或分钟为单位),只需保证在该有效期内能完成签名即可。
S4、CA机构审核用户身份信息通过后,签发数字证书并返回给CAASS。
S5、CAASS将需要签名的数据调用密码设备中用户私钥进行签名得到签名值,签名完成后将密码设备中用户的临时性密钥对销毁(销毁后不可恢复),证书申请签名模块将数字证书和签名后的签名值返回给调用方。
进一步的,在上述步骤中,临时性密钥对在硬件密码设备(比如密码机、密码卡)中生成;密码设备以用户身份信息、设备驱动、硬件噪声源等加入熵源,为用户生成临时性密钥对。私钥不可从硬件密码设备中导出、不可复制,证书申请和签名在一个事务中完成且对数据签名后立即销毁临时性密钥对,从而保证了生成的临时性密钥对在其生命周期内(从生成到销毁)为当前用户专有专用。
作为一种优选的方式,当存在不止一个需要签名的数据,调用方将需要签名的数据按照预设的规则拼接得到待签名字符串,将待签名字符串发送给CAASS,从而将需要签名的数据扩展为对多组数据进行签名。CAASS接收到待签名字符串后,分割得到需要签名的数据,然后使用私钥分别签名得到需要签名的数据对应的签名数据;然后用预设的规则进行拼接得到签名字符串,返回给调用方。调用方分割得到签名数据。
优选的,各个需要签名的数据之间用连接符连接;CAASS签名得到的签名数据之间用连接符连接。
进一步的,在S5中,调用时间戳服务器接口对签名值加盖时间戳,返回调用方签名证书、签名值、签名值的时间戳。从而明确签名值的签名时间。
本案提出的发明内容,相对于使用USBKey证书以及移动证书的来说,具备以下优点:
1)不依赖USBKey介质,没有容易丢失和使用不方便的问题。
2)不需要额外安装移动APP,满足某些场景下高频签名的使用需求。
3)一次性完成数字证书申请及签名,同时保证用户专有、专用私钥,私钥用完即销毁且不可恢复。
4)CAASS提供基于HTTP、TCP等协议的服务接口供调用方调用,无平台、系统、终端使用限制。
图1为本发明实施例的一次性数字证书申请及签名系统逻辑架构图。
图2为本发明实施例的一次性数字证书申请及签名方法流程图。
为了便于本领域技术人员的理解,下面结合实施例与附图对本发明作进一步的说明。
一次性数字证书申请及签名系统(以下简称CAASS)的逻辑架构图如图1所示,一次性数字证书申请及签名系统,包括证书申请签名模块、密钥服务模块、密码设备管理模块、日志审计模块、权限管理模块、密码设备、传输接口。
证书申请签名模块功能主要包括证书请求的组装,证书申请、证书签名等功能;
密钥服务模块负责调用密码设备完成生成临时性密钥对、签名、销毁临时性密钥对等功能。
密码设备管理模块包括对密码设备(密码机和密码卡)的初始化、管理等功能。
日志审计模块提供系统日志及操作日志的审计功能。
权限管理模块提供系统权限分配、鉴权、管理员管理等功能。
传输接口负责接收调用方的请求数据,对请求数据进行校验后发送至证书申请签名模块,以及将数字证书及签名值返回给调用方。传输接口提供证书申请及签名接口,用于实现应用层的业务系统(调用方)与CAASS之间的数据传输,并使用SSL传输保护协议保证数据传输的安全性。
如图2所示,一次性数字证书申请及签名方法,具体步骤如下:
1)建立一套一次性数字证书申请及签名系统,主要提供一次性数字证书申请及签名服务。
2)调用方(例如业务系统)在验证用户信息后,提交用户身份信息以及需要签名的数据到CAASS。
3)CAASS调用密码设备(比如密码机、密码卡),以用户身份信息、设备驱动、硬件噪声源等加入熵源,使用非对称密码算法为用户生成临时性密钥对(包括但不限于RSA、DSA、ECC、SM2等),保证生成的临时性密钥对的唯一性。私钥不可从硬件密码设备中导出、不可复制,证书申请和签名在一个事务中完成且对数据签名后立即销毁临时性密钥对,从而保证了生成的临时性密钥对在其生命周期内(从生成到销毁)为当前用户专有专用。
4)CAASS将用户信息与用户的公钥结合,并使用用户私钥进行签名得到证书签发请求,将该证书签发请求发送至CA机构申请签发证书。所申请证书的有效期极短(以秒或分钟为单位),只需保证在该有效期内能完成签名即可。
5)CA机构审核用户身份信息通过后,签发数字证书并返回给CAASS。
6)CAASS将需要签名的数据调用硬件密码设备中用户私钥进行签名,签名完成后将硬件密码设备中用户的临时性密钥对销毁(销毁后不可恢复)。调用时间戳服务器接口对签名值加盖时间戳,返回调用方签名证书、签名值、签名值的时间戳。从而明确签名值的签名时间。
可以将需要签名的数据按照预设的规则拼接后发送给CAASS,从而将需要签名的数据扩展为对多组数据进行签名。例如需要一次性对字符串D1,字符串D2,字符串D3分别进行签名,可以将D1+连接符+D2+连接符+D3进行拼接得到字符串D,将字符串D发送到CAASS。CAASS接收到字符串D后,以连接符进行分割,分别得到D1,D2,D3,然后使用私钥分别签名得到D1,D2,D3对应的签名S1,S2,S3,同样可以将S1+连接符+S2+连接符+S3进行拼接得到签名字符串S,返回给调用方。调用方以连接符进行分割,分别得到签名S1,S2,S3。其中连接符形式不限。
本实施例的方法,相对于使用USBKey证书以及移动证书的来说,具备以下优点:
1)不依赖USBKey介质,没有容易丢失和使用不方便的问题。
2)不需要额外安装移动APP,满足某些场景下高频签名的使用需求。
3)一次性完成数字证书申请及签名,同时保证用户专有、专用私钥,私钥用完即销毁且不可恢复。
4)CAASS提供基于HTTP、TCP等协议的服务接口供调用方调用,无平台、系统、终端使用限制。
以上的实施例仅为说明本发明的技术思想,不能以此限定本发明的保护范围,凡是按照本发明提出的技术思想,在技术方案基础上所做的任何改动,均落入本发明保护范围之内。
本文发布于:2024-09-24 04:27:01,感谢您对本站的认可!
本文链接:https://www.17tex.com/tex/4/85517.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |