用户控制服务器端密钥可靠使用的方法与流程

文档序号:36227497发布日期:2023-11-30 13:40阅读:48来源:国知局
用户控制服务器端密钥可靠使用的方法与流程

本发明涉及信息安全行业pki电子认证、电子签名与云计算技术融合,特别是一种用户控制服务器端密钥可靠使用的方法。


背景技术:

1、在基于云计算的pki电子认证、电子签名应用场景中,由于用户无法使用终端usbkey密码介质,pki电子认证、电子签名服务机构需为证书用户提供签名密钥托管服务,当前常用技术路线是由pki电子认证服务机构(简称:ca机构)部署一套密钥管理系统(简称:kms),为证书用户代理产生签名私钥及证书请求,由数字证书认证系统(简称:ca系统)为用户签发数字证书,在需要签名的操作环节,互联网应用服务器通过访问kms接口调取用户签名私钥为用户代理签名。

2、当前常用技术路线主要存在以下缺陷:

3、(1)kms在为用户产生签名私钥及证书请求时,用户没有参与到该环节,用户私钥数据没有依托用户私有秘密信息参与计算来产生,kms在调用用户签名私钥做数字签名时,也没有依托用户私有秘密信息参与计算,不能确保获得了用户授权许可。

4、(2)用户私钥存储、访问控制的安全性较差,一旦kms系统出现黑客入侵或系统管理员有恶意行为,很难避免用户的私钥不被恶意调用。


技术实现思路

1、为解决现有技术中存在的问题,本发明的目的是提供一种用户控制服务器端密钥可靠使用的方法,本发明在不降低密钥安全性的前提下提升了用户体验。

2、为实现上述目的,本发明采用的技术方案是:一种用户控制服务器端密钥可靠使用的方法,包括以下步骤:

3、s100、用户身份认证:用户向ca机构提交证书注册申请,ca机构认证用户身份;

4、s200、云签系统密钥生成:云签系统在系统初始化时产生系统主密钥smk和中间密钥kek;

5、s300、用户密钥生成:用户在云签系统中生成签名密钥对,所述签名密钥对包括签名私钥signprivatekey和签名公钥signpublickey;

6、s400、用户在云签系统中进行消息签名操作;

7、s500、利用签名公钥signpublickey对消息进行验签;

8、s600、对待加密明文消息plaintext进行加密;

9、s700、用户在云签系统中进行消息解密操作。

10、作为本发明的进一步改进,所述步骤s100具体包括以下步骤:

11、s101、用户注册:用户访问ca机构的ca系统证书注册页面,用户输入唯一身份标识uniqueid及其他证照信息,提交证书注册申请。

12、s102、核验用户身份:ca系统对用户身份进行实名认证和身份核验,核验通过后,通知用户设置签名私钥生成口令password;

13、s103、加密隐私数据:ca系统对唯一身份标识uniqueid做hash运算得到用户唯一身份特征值hasheduniqueid,hasheduniqueid=hash(uniqueid);对签名私钥生成口令password做hmac运算得到用户私钥生成口令特征值hashedpassword,hashedpassword=hmac(uniqueid,password);

14、s104、数据存储:ca系统将用户唯一身份特征值hasheduniqueid、用户私钥生成口令特征值hashedpassword存储到自身数据库中。

15、作为本发明的进一步改进,所述步骤s200具体包括以下步骤:

16、s201、产生主密钥smk:云签系统调用服务器密码机对称密钥产生接口产生内部对称密钥,即主密钥smk;

17、s202、产生中间密钥kek:云签系统调用服务器密码机对称密钥产生接口产生外部对称密钥,即中间密钥kek;

18、s203、加密中间密钥kek:云签系统调用服务器密码机对称加密接口,使用主密钥smk对称加密中间密钥kek,得到enckek,enckek=symmencrypt(smk,kek);

19、s204、数据存储:云签系统将enckek存储到自身数据库中。

20、作为本发明的进一步改进,所述步骤s300具体包括以下步骤:

21、s301、用户输入身份信息:用户访问云签系统用户密钥生成页面,输入唯一身份标识uniqueid和私钥生成口令password;

22、s302、加密隐私数据:云签系统对唯一身份标识uniqueid做hash运算得到hasheduniqueid=hash(uniqueid);云签系统对私钥生成口令password做hmac运算得到hashedpassword=hmac(uniqueid,password);

23、s303、核验用户身份:云签系统调用ca系统接口验证用户身份信息是否有效,传入hasheduniqueid、hashedpassword、enckek和用户密钥操作标识参数,ca系统在数据库中进行存储并返回用户身份验证结果;

24、s304、产生密钥因子:若ca系统返回验证成功,云签系统调用服务器密码机为用户产生随机数randomnumber,作为用户签名密钥因子,随机数randomnumber用于派生签名私钥signprivatekey;

25、s305、计算签名私钥:云签系统调用服务器密码机hmac接口,将服务器密码机内部对称密钥,即主密钥smk作为密钥参数输入,将用户唯一身份特征值hasheduniqueid、私钥生成口令password、随机数randomnumber三者组合后作为消息参数输入,计算用户签名私钥signprivatekey,signprivatekey=hmac(smk,hasheduniqueid||password||randomnumber)。

26、s306、计算签名公钥和证书请求:云签系统基于用户签名私钥signprivatekey生成用户签名公钥signpublickey和证书请求csr;

27、s307、申请用户证书:云签系统调用ca系统接口为用户申请证书,传入hasheduniqueid、证书请求csr和enckek,ca系统为用户签发证书并在数据库用户表中存储hasheduniqueid、证书请求csr、enckek及证书信息,ca系统返回用户签名证书signcert、用户加密证书enccert、用户加密密钥数字信封enckeyenvelope;

28、s308、解密中间密钥kek:云签系统调用服务器密码机对称解密接口,使用主密钥smk对称解密enckek得到kek,kek=symmdecrypt(smk,enckek);

29、s309、加密密钥因子:云签系统使用中间密钥kek对随机数randomnumber对称加密得到encrandomnumber=symmencrypt(kek,randomnumber);

30、s310、数据存储:云签系统将hasheduniqueid、encrandomnumber、signcert、enccert、enckeyenvelope存储到自身数据库密钥表中。

31、作为本发明的进一步改进,所述步骤s400具体包括以下步骤:

32、s401、输入用户身份信息:用户访问云签系统需要进行签名的页面,输入唯一身份标识uniqueid和私钥生成口令password;

33、s402、加密隐私数据:云签系统对唯一身份标识uniqueid做hash运算得到hasheduniqueid=hash(uniqueid);云签系统对私钥生成口令password做hmac运算得到hashedpassword=hmac(uniqueid,password);

34、s403、核验用户身份:云签系统调用ca系统接口验证用户身份及证书状态信息是否有效,传入hasheduniqueid、hashedpassword、enckek和用户密钥操作标识参数,ca系统在数据库中进行存储并返回用户身份及证书状态验证结果;

35、s404、用户确认待签名消息:若ca系统返回验证成功,云签系统提示用户确认待签名消息originaltext是否有误;

36、s405、查询密钥因子:若用户确认originaltext无误,云签系统根据hasheduniqueid在数据库中查询enckek、encrandomnumber、signcert;

37、s406、解密中间密钥kek:云签系统调用服务器密码机对称解密接口,使用主密钥smk对称解密enckek得到kek,kek=symmdecrypt(smk,enckek);

38、s407、解密密钥因子:云签系统使用kek对encrandomnumber对称解密得到randomnumber=symmdecrypt(kek,encrandomnumber);

39、s408、计算签名私钥:云签系统调用服务器密码机hmac接口,将服务器密码机内部对称密钥smk作为密钥参数输入,将用户唯一身份特征值hasheduniqueid、私钥生成口令password、随机数randomnumber三者组合后作为消息参数输入,计算用户签名私钥signprivatekey,signprivatekey=hmac(smk,hasheduniqueid||password||randomnumber)。

40、s409、对消息进行签名:云签系统调用服务器密码机签名接口使用签名私钥signprivatekey对待签名消息originaltext计算签名值signvalue,signvalue=sign(signprivatekey,signalg,originaltext),其中,signalg为签名算法;

41、s410、数据存储:云签系统将用户签名证书signcert、待签名消息originaltext、签名值signvalue存储到自身数据库签名表中。

42、作为本发明的进一步改进,所述步骤s500具体如下:

43、在需要验证签名的业务场景,相关依赖方访问云签系统获取已签名数据包,从签名数据包的用户签名证书signcert导出签名公钥signpublickey完成验签,验签结果=verifysign(signpublickey,signalg,originaltext,signvalue)。

44、作为本发明的进一步改进,所述步骤s600具体如下:

45、在需要消息加密的业务场景,相关依赖方访问云签系统获取用户加密证书enccert,从用户加密证书enccert导出公钥encpublickey对待加密明文消息plaintext使用encpublickey加密,加密结果为密文消息ciphertext,ciphertext=encrypt(encpublickey,plaintext)。

46、作为本发明的进一步改进,所述步骤s700具体包括以下步骤:

47、s701、输入用户身份信息:用户访问云签系统需要进行解密的页面,输入唯一身份标识uniqueid和私钥生成口令password;

48、s702、加密隐私数据:云签系统对唯一身份标识uniqueid做hash运算得到hasheduniqueid=hash(uniqueid);云签系统对私钥生成口令password做hmac运算得到hashedpassword=hmac(uniqueid,password);

49、s703、核验用户身份:云签系统调用ca系统接口验证用户身份及证书状态信息是否有效,传入hasheduniqueid、hashedpassword、enckek和用户密钥操作标识参数,ca系统在数据库中进行存储并返回用户身份及证书状态验证结果;

50、s704、查询密钥因子:若ca系统返回验证成功,云签系统根据hasheduniqueid在数据库中查询enckek、encrandomnumber、enckeyenvelope;

51、s705、解密中间密钥kek:云签系统调用服务器密码机对称解密接口,使用主密钥smk对称解密enckek得到kek,kek=symmdecrypt(smk,enckek);

52、s706、解密密钥因子:云签系统使用中间密钥kek对encrandomnumber对称解密得到randomnumber=symmdecrypt(kek,encrandomnumber);

53、s707、计算签名私钥:云签系统调用服务器密码机hmac接口,将服务器密码机内部对称密钥,即主密钥smk作为密钥参数输入,将用户唯一身份特征值hasheduniqueid、私钥生成口令password、随机数randomnumber三者组合后作为消息参数输入,计算用户签名私钥signprivatekey,signprivatekey=hmac(smk,hasheduniqueid||password||randomnumber);

54、s708、解密加密私钥:云签系统调用服务器密码机数据解密接口,使用签名私钥signprivatekey对用户加密密钥数字信封enckeyenvelope进行解密,得到加密密钥的私钥encprivatekey,encprivatekey=decrypt(signprivatekey, enckeyenvelope);

55、s709、解密加密消息:云签系统调用服务器密码机数据解密接口,使用加密私钥encprivatekey对密文消息ciphertext进行解密,得到明文消息plaintext,plaintext=decrypt(encprivatekey,ciphertext)。

56、本发明的有益效果是:

57、1、本发明采用将用户唯一身份标识特征值、私有秘密信息及依托服务器密码机产生的真随机数三个数据组合形成用户密钥因子,通过服务器密码机内置密钥及hmac算法计算产生用户签名私钥,确保用户在关键的密钥生成、数字签名、消息加密环节中,必须通过ca机构的身份核验,并出示注册时设置的私有秘密信息,同时需通过服务器密码机才能计算出签名私钥,确保云计算场景中的私钥产生、调用全过程仅由用户控制和安全可靠。

58、2、本发明由于云签系统不存储用户签名私钥,仅存储部分密钥因子的密文,即便云签系统数据库被拖库,在没有用户私有秘密信息和服务器密码机硬件的情况下,无法计算出用户签名私钥,其安全性很高。

59、3、本发明“用户注册、身份认证、证书状态验证”由ca系统负责,可有效避免用户身份认证出错或被忽略、用户使用弱口令和证书状态忽略验证等问题;同时“私钥生成、私钥调用”由云签系统负责,支持云签系统在多个信息系统密码应用单位本地部署,可实现用户在跨系统使用不同云服务时,用户签名私钥“一系统一密”,增强了密钥安全性。

60、4、本发明有别于常规的kms、签名验签等系统,不需要在用户pc电脑或手机上安装任何软硬件密码介质或中间件,适用于多种人机交互应用场景(小程序、h5页面、app等)的数字签名和加解密应用,为用户提供了安全、便捷访问自己专属且受控的云端密钥,在不降低密钥安全性的前提下提升了用户体验。

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