CN117118759A - 用户控制服务器端密钥可靠使用的方法 - Google Patents

用户控制服务器端密钥可靠使用的方法 Download PDF

Info

Publication number
CN117118759A
CN117118759A CN202311380131.2A CN202311380131A CN117118759A CN 117118759 A CN117118759 A CN 117118759A CN 202311380131 A CN202311380131 A CN 202311380131A CN 117118759 A CN117118759 A CN 117118759A
Authority
CN
China
Prior art keywords
user
key
cloud
signature
certificate
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202311380131.2A
Other languages
English (en)
Other versions
CN117118759B (zh
Inventor
尹才敏
杨飞
陈燕
晏民
曹吕俊
黄晶星
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sichuan Digital Certificate Certification Management Center Co ltd
Original Assignee
Sichuan Digital Certificate Certification Management Center Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sichuan Digital Certificate Certification Management Center Co ltd filed Critical Sichuan Digital Certificate Certification Management Center Co ltd
Priority to CN202311380131.2A priority Critical patent/CN117118759B/zh
Publication of CN117118759A publication Critical patent/CN117118759A/zh
Application granted granted Critical
Publication of CN117118759B publication Critical patent/CN117118759B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0823Network architectures or network communication protocols for network security for authentication of entities using certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0435Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply symmetric encryption, i.e. same key used for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols

Abstract

本发明公开了一种用户控制服务器端密钥可靠使用的方法,涉及信息安全行业PKI电子认证、电子签名与云计算技术融合技术领域,包括:用户身份认证:用户向CA机构提交证书注册申请,CA机构认证用户身份;云签系统密钥生成:云签系统在系统初始化时产生系统主密钥SMK和中间密钥KEK;用户密钥生成:用户在云签系统中生成签名密钥对;用户在云签系统中进行消息签名操作;对消息进行验签;对待加密明文消息进行加密;用户在云签系统中进行消息解密操作;本发明在不降低密钥安全性的前提下提升了用户体验。

Description

用户控制服务器端密钥可靠使用的方法
技术领域
本发明涉及信息安全行业PKI电子认证、电子签名与云计算技术融合技术领域,特别是一种用户控制服务器端密钥可靠使用的方法。
背景技术
在基于云计算的PKI电子认证、电子签名应用场景中,由于用户无法使用终端USBKEY密码介质,PKI电子认证、电子签名服务机构需为证书用户提供签名密钥托管服务,当前常用技术路线是由PKI电子认证服务机构(简称:CA机构)部署一套密钥管理系统(简称:KMS),为证书用户代理产生签名私钥及证书请求,由数字证书认证系统(简称:CA系统)为用户签发数字证书,在需要签名的操作环节,互联网应用服务器通过访问KMS接口调取用户签名私钥为用户代理签名。
当前常用技术路线主要存在以下缺陷:
(1)KMS在为用户产生签名私钥及证书请求时,用户没有参与到该环节,用户私钥数据没有依托用户私有秘密信息参与计算来产生,KMS在调用用户签名私钥做数字签名时,也没有依托用户私有秘密信息参与计算,不能确保获得了用户授权许可。
(2)用户私钥存储、访问控制的安全性较差,一旦KMS系统出现黑客入侵或系统管理员有恶意行为,很难避免用户的私钥不被恶意调用。
发明内容
为解决现有技术中存在的问题,本发明的目的是提供一种用户控制服务器端密钥可靠使用的方法,本发明在不降低密钥安全性的前提下提升了用户体验。
为实现上述目的,本发明采用的技术方案是:一种用户控制服务器端密钥可靠使用的方法,包括以下步骤:
S100、用户身份认证:用户向CA机构提交证书注册申请,CA机构认证用户身份;
S200、云签系统密钥生成:云签系统在系统初始化时产生系统主密钥SMK和中间密钥KEK;
S300、用户密钥生成:用户在云签系统中生成签名密钥对,所述签名密钥对包括签名私钥SignPrivateKey和签名公钥SignPublicKey;
S400、用户在云签系统中进行消息签名操作;
S500、利用签名公钥SignPublicKey对消息进行验签;
S600、对待加密明文消息PlainText进行加密;
S700、用户在云签系统中进行消息解密操作。
作为本发明的进一步改进,所述步骤S100具体包括以下步骤:
S101、用户注册:用户访问CA机构的CA系统证书注册页面,用户输入唯一身份标识UniqueID及其他证照信息,提交证书注册申请。
S102、核验用户身份:CA系统对用户身份进行实名认证和身份核验,核验通过后,通知用户设置签名私钥生成口令PassWord;
S103、加密隐私数据:CA系统对唯一身份标识UniqueID做HASH运算得到用户唯一身份特征值HashedUniqueID,HashedUniqueID=HASH(UniqueID);对签名私钥生成口令PassWord做HMAC运算得到用户私钥生成口令特征值HashedPassWord,HashedPassWord=HMAC(UniqueID,PassWord);
S104、数据存储:CA系统将用户唯一身份特征值HashedUniqueID、用户私钥生成口令特征值HashedPassWord存储到自身数据库中。
作为本发明的进一步改进,所述步骤S200具体包括以下步骤:
S201、产生主密钥SMK:云签系统调用服务器密码机对称密钥产生接口产生内部对称密钥,即主密钥SMK;
S202、产生中间密钥KEK:云签系统调用服务器密码机对称密钥产生接口产生外部对称密钥,即中间密钥KEK;
S203、加密中间密钥KEK:云签系统调用服务器密码机对称加密接口,使用主密钥SMK对称加密中间密钥KEK,得到EncKEK,EncKEK=SymmEncrypt(SMK,KEK);
S204、数据存储:云签系统将EncKEK存储到自身数据库中。
作为本发明的进一步改进,所述步骤S300具体包括以下步骤:
S301、用户输入身份信息:用户访问云签系统用户密钥生成页面,输入唯一身份标识UniqueID和私钥生成口令PassWord;
S302、加密隐私数据:云签系统对唯一身份标识UniqueID做HASH运算得到HashedUniqueID=HASH(UniqueID);云签系统对私钥生成口令PassWord做HMAC运算得到HashedPassWord=HMAC(UniqueID,PassWord);
S303、核验用户身份:云签系统调用CA系统接口验证用户身份信息是否有效,传入HashedUniqueID、HashedPassWord、EncKEK和用户密钥操作标识参数,CA系统在数据库中进行存储并返回用户身份验证结果;
S304、产生密钥因子:若CA系统返回验证成功,云签系统调用服务器密码机为用户产生随机数RandomNumber,作为用户签名密钥因子,随机数RandomNumber用于派生签名私钥SignPrivateKey;
S305、计算签名私钥:云签系统调用服务器密码机HMAC接口,将服务器密码机内部对称密钥,即主密钥SMK作为密钥参数输入,将用户唯一身份特征值HashedUniqueID、私钥生成口令PassWord、随机数RandomNumber三者组合后作为消息参数输入,计算用户签名私钥SignPrivateKey,SignPrivateKey=HMAC(SMK,HashedUniqueID||PassWord||RandomNumber)。
S306、计算签名公钥和证书请求:云签系统基于用户签名私钥SignPrivateKey生成用户签名公钥SignPublicKey和证书请求CSR;
S307、申请用户证书:云签系统调用CA系统接口为用户申请证书,传入HashedUniqueID、证书请求CSR和EncKEK,CA系统为用户签发证书并在数据库用户表中存储HashedUniqueID、证书请求CSR、EncKEK及证书信息,CA系统返回用户签名证书SignCert、用户加密证书EncCert、用户加密密钥数字信封EncKeyEnvelope;
S308、解密中间密钥KEK:云签系统调用服务器密码机对称解密接口,使用主密钥SMK对称解密EncKEK得到KEK,KEK=SymmDecrypt(SMK,EncKEK);
S309、加密密钥因子:云签系统使用中间密钥KEK对随机数RandomNumber对称加密得到EncRandomNumber=SymmEncrypt(KEK,RandomNumber);
S310、数据存储:云签系统将HashedUniqueID、EncRandomNumber、SignCert、EncCert、EncKeyEnvelope存储到自身数据库密钥表中。
作为本发明的进一步改进,所述步骤S400具体包括以下步骤:
S401、输入用户身份信息:用户访问云签系统需要进行签名的页面,输入唯一身份标识UniqueID和私钥生成口令PassWord;
S402、加密隐私数据:云签系统对唯一身份标识UniqueID做HASH运算得到HashedUniqueID=HASH(UniqueID);云签系统对私钥生成口令PassWord做HMAC运算得到HashedPassWord=HMAC(UniqueID,PassWord);
S403、核验用户身份:云签系统调用CA系统接口验证用户身份及证书状态信息是否有效,传入HashedUniqueID、HashedPassWord、EncKEK和用户密钥操作标识参数,CA系统在数据库中进行存储并返回用户身份及证书状态验证结果;
S404、用户确认待签名消息:若CA系统返回验证成功,云签系统提示用户确认待签名消息OriginalText是否有误;
S405、查询密钥因子:若用户确认OriginalText无误,云签系统根据HashedUniqueID在数据库中查询EncKEK、EncRandomNumber、SignCert;
S406、解密中间密钥KEK:云签系统调用服务器密码机对称解密接口,使用主密钥SMK对称解密EncKEK得到KEK,KEK=SymmDecrypt(SMK,EncKEK);
S407、解密密钥因子:云签系统使用KEK对EncRandomNumber对称解密得到RandomNumber=SymmDecrypt(KEK,EncRandomNumber);
S408、计算签名私钥:云签系统调用服务器密码机HMAC接口,将服务器密码机内部对称密钥SMK作为密钥参数输入,将用户唯一身份特征值HashedUniqueID、私钥生成口令PassWord、随机数RandomNumber三者组合后作为消息参数输入,计算用户签名私钥SignPrivateKey,SignPrivateKey=HMAC(SMK,HashedUniqueID||PassWord||RandomNumber)。
S409、对消息进行签名:云签系统调用服务器密码机签名接口使用签名私钥SignPrivateKey对待签名消息OriginalText计算签名值SignValue,SignValue=Sign(SignPrivateKey,SignAlg,OriginalText),其中,SignAlg为签名算法;
S410、数据存储:云签系统将用户签名证书SignCert、待签名消息OriginalText、签名值SignValue存储到自身数据库签名表中。
作为本发明的进一步改进,所述步骤S500具体如下:
在需要验证签名的业务场景,相关依赖方访问云签系统获取已签名数据包,从签名数据包的用户签名证书SignCert导出签名公钥SignPublicKey完成验签,验签结果=VerifySign(SignPublicKey,SignAlg,OriginalText,SignValue)。
作为本发明的进一步改进,所述步骤S600具体如下:
在需要消息加密的业务场景,相关依赖方访问云签系统获取用户加密证书EncCert,从用户加密证书EncCert导出公钥EncPublicKey对待加密明文消息PlainText使用EncPublicKey加密,加密结果为密文消息CipherText,CipherText=Encrypt(EncPublicKey,PlainText)。
作为本发明的进一步改进,所述步骤S700具体包括以下步骤:
S701、输入用户身份信息:用户访问云签系统需要进行解密的页面,输入唯一身份标识UniqueID和私钥生成口令PassWord;
S702、加密隐私数据:云签系统对唯一身份标识UniqueID做HASH运算得到HashedUniqueID=HASH(UniqueID);云签系统对私钥生成口令PassWord做HMAC运算得到HashedPassWord=HMAC(UniqueID,PassWord);
S703、核验用户身份:云签系统调用CA系统接口验证用户身份及证书状态信息是否有效,传入HashedUniqueID、HashedPassWord、EncKEK和用户密钥操作标识参数,CA系统在数据库中进行存储并返回用户身份及证书状态验证结果;
S704、查询密钥因子:若CA系统返回验证成功,云签系统根据HashedUniqueID在数据库中查询EncKEK、EncRandomNumber、EncKeyEnvelope;
S705、解密中间密钥KEK:云签系统调用服务器密码机对称解密接口,使用主密钥SMK对称解密EncKEK得到KEK,KEK=SymmDecrypt(SMK,EncKEK);
S706、解密密钥因子:云签系统使用中间密钥KEK对EncRandomNumber对称解密得到RandomNumber=SymmDecrypt(KEK,EncRandomNumber);
S707、计算签名私钥:云签系统调用服务器密码机HMAC接口,将服务器密码机内部对称密钥,即主密钥SMK作为密钥参数输入,将用户唯一身份特征值HashedUniqueID、私钥生成口令PassWord、随机数RandomNumber三者组合后作为消息参数输入,计算用户签名私钥SignPrivateKey,SignPrivateKey=HMAC(SMK,HashedUniqueID||PassWord||RandomNumber);
S708、解密加密私钥:云签系统调用服务器密码机数据解密接口,使用签名私钥SignPrivateKey对用户加密密钥数字信封EncKeyEnvelope进行解密,得到加密密钥的私钥EncPrivateKey,EncPrivateKey=Decrypt(SignPrivateKey, EncKeyEnvelope);
S709、解密加密消息:云签系统调用服务器密码机数据解密接口,使用加密私钥EncPrivateKey对密文消息CipherText进行解密,得到明文消息PlainText,PlainText=Decrypt(EncPrivateKey,CipherText)。
本发明的有益效果是:
1、本发明采用将用户唯一身份标识特征值、私有秘密信息及依托服务器密码机产生的真随机数三个数据组合形成用户密钥因子,通过服务器密码机内置密钥及HMAC算法计算产生用户签名私钥,确保用户在关键的密钥生成、数字签名、消息加密环节中,必须通过CA机构的身份核验,并出示注册时设置的私有秘密信息,同时需通过服务器密码机才能计算出签名私钥,确保云计算场景中的私钥产生、调用全过程仅由用户控制和安全可靠。
2、本发明由于云签系统不存储用户签名私钥,仅存储部分密钥因子的密文,即便云签系统数据库被拖库,在没有用户私有秘密信息和服务器密码机硬件的情况下,无法计算出用户签名私钥,其安全性很高。
3、本发明“用户注册、身份认证、证书状态验证”由CA系统负责,可有效避免用户身份认证出错或被忽略、用户使用弱口令和证书状态忽略验证等问题;同时“私钥生成、私钥调用”由云签系统负责,支持云签系统在多个信息系统密码应用单位本地部署,可实现用户在跨系统使用不同云服务时,用户签名私钥“一系统一密”,增强了密钥安全性。
4、本发明有别于常规的KMS、签名验签等系统,不需要在用户PC电脑或手机上安装任何软硬件密码介质或中间件,适用于多种人机交互应用场景(小程序、H5页面、APP等)的数字签名和加解密应用,为用户提供了安全、便捷访问自己专属且受控的云端密钥,在不降低密钥安全性的前提下提升了用户体验。
附图说明
图1为本发明实施例的结构框图;
图2为本发明实施例的流程图。
具体实施方式
下面结合附图对本发明的实施例进行详细说明。
实施例
本实施例采用将用户唯一身份标识特征值、私有秘密信息及服务器密码机产生的真随机数进行组合计算派生出用户专有私钥,并通过加密输出存储到云签名服务系统(简称:云签系统)中,该云签系统可由非CA机构的其他网络运营者(简称:云签机构)运营,云签机构与CA机构、用户形成三方协同机制,在用户签名私钥产生、数字签名、消息解密等关键操作必须由三方系统协同才能完成,缺少任一一方都无法进行相应操作,以确保云计算场景中的用户私钥产生、计算、存储全过程的安全可靠、用户可控。
具体地,如图1所示,本实施例由面向用户的人机交互应用程序(比如:小程序、H5页面、APP等)、云签系统、CA系统和服务器密码机构成。
用户通过人机交互应用程序(比如:微信/支付宝小程序、H5页面、PC/手机APP等)访问CA系统注册用户信息、身份认证;云签系统初始化系统密钥,为用户生成用户密钥,调用CA系统申请证书;云签系统为用户提供数字签名、消息解密等关键操作。
如图2所示,本实施例的用户控制服务器端密钥可靠使用的方法,包括以下步骤:
S100:用户身份认证。
用户向CA机构提交证书注册申请,CA机构认证用户身份。
S101:用户注册。用户访问CA机构的CA系统证书注册页面,用户输入唯一身份标识UniqueID(比如:个人身份证号码或机构统一社会信用代码)及其他证照信息,提交证书注册申请。
S102:核验用户身份。CA系统对用户身份进行实名认证和身份核验,核验通过后,通知用户设置签名私钥生成口令PassWord。
S103:加密隐私数据。CA系统对UniqueID做HASH运算得到用户唯一身份特征值HashedUniqueID,HashedUniqueID=HASH(UniqueID);对PassWord做HMAC运算得到用户私钥生成口令特征值HashedPassWord,HashedPassWord=HMAC(UniqueID,PassWord)。
S104:数据存储。CA系统将“HashedUniqueID、HashedPassWord”存储到自身数据库中。
S200:云签系统密钥生成。
云签系统在系统初始化时产生系统主密钥SMK和中间密钥KEK。
S201:产生主密钥SMK。云签系统调用服务器密码机对称密钥产生接口产生内部对称密钥SMK(比如:索引值为1的内置密钥)。
S202:产生中间密钥KEK。云签系统调用服务器密码机对称密钥产生接口产生外部对称密钥KEK。
S203:加密中间密钥KEK。云签系统调用服务器密码机对称加密接口,使用SMK对称加密KEK,得到EncKEK,EncKEK=SymmEncrypt(SMK,KEK)。
S204:数据存储。云签系统将EncKEK存储到自身数据库中。
S300:用户密钥生成。
用户在云签系统中生成签名密钥对,签名密钥对由签名私钥SignPrivateKey和签名公钥SignPublicKey构成。
S301:用户输入身份信息。用户访问云签系统用户密钥生成页面,输入唯一身份标识UniqueID和私钥生成口令PassWord。
S302:加密隐私数据。云签系统对UniqueID做HASH运算得到HashedUniqueID=HASH(UniqueID);云签系统对PassWord做HMAC运算得到HashedPassWord=HMAC(UniqueID,PassWord)。
S303:核验用户身份。云签系统调用CA系统接口验证用户身份信息是否有效,传入HashedUniqueID、HashedPassWord、EncKEK和用户密钥操作标识(比如:密钥生成)等参数,CA系统在数据库中存储“HashedUniqueID、HashedPassWord、EncKEK、用户密钥操作标识”等信息,返回用户身份验证结果。
S304:产生密钥因子。若CA系统返回验证成功,云签系统调用服务器密码机为用户产生随机数RandomNumber,作为用户签名密钥因子,RandomNumber用于派生签名私钥SignPrivateKey。
S305:计算签名私钥。云签系统调用服务器密码机HMAC接口,将服务器密码机内部对称密钥SMK作为密钥参数输入,将用户唯一身份特征值HashedUniqueID、私钥生成口令PassWord、随机数RandomNumber三者组合后作为消息参数输入,计算用户签名私钥SignPrivateKey,SignPrivateKey=HMAC(SMK,HashedUniqueID||PassWord||RandomNumber)。
S306:计算签名公钥和证书请求。云签系统基于用户签名私钥SignPrivateKey生成用户签名公钥SignPublicKey和证书请求CSR。
S307:申请用户证书。云签系统调用CA系统接口为用户申请证书,传入HashedUniqueID、证书请求CSR、EncKEK等,CA系统为用户签发证书并在数据库用户表中存储HashedUniqueID、证书请求CSR、EncKEK及证书信息,CA系统返回用户签名证书SignCert、用户加密证书EncCert、用户加密密钥数字信封EncKeyEnvelope。
S308:解密中间密钥KEK。云签系统调用服务器密码机对称解密接口,使用SMK对称解密EncKEK,得到KEK,KEK=SymmDecrypt(SMK,EncKEK)。
S309:加密密钥因子。云签系统使用KEK对RandomNumber对称加密得到EncRandomNumber=SymmEncrypt(KEK,RandomNumber)。
S310:数据存储。云签系统将HashedUniqueID、EncRandomNumber、SignCert、EncCert、EncKeyEnvelope存储到自身数据库密钥表中。
S400:消息签名操作。
用户在云签系统中进行消息签名操作。
S401:输入用户身份信息。用户访问云签系统需要进行签名的页面,输入唯一身份标识UniqueID和私钥生成口令PassWord;
S402:加密隐私数据。云签系统对UniqueID做HASH运算得到HashedUniqueID=HASH(UniqueID);云签系统对PassWord做HMAC运算得到HashedPassWord=HMAC(UniqueID,PassWord)。
S403:核验用户身份。云签系统调用CA系统接口验证用户身份及证书状态信息是否有效,传入HashedUniqueID、HashedPassWord、EncKEK和用户密钥操作标识(比如:签名操作)参数,CA系统在数据库中存储“HashedUniqueID、HashedPassWord、EncKEK、用户密钥操作标识”等信息,返回用户身份及证书状态验证结果。
S404:用户确认待签名消息。若CA系统返回验证成功,云签系统提示用户确认待签名原文消息OriginalText是否有误。
S405:查询密钥因子。若用户确认OriginalText无误,云签系统根据HashedUniqueID在数据库中查询EncKEK、EncRandomNumber、SignCert。
S406:解密中间密钥KEK。云签系统调用服务器密码机对称解密接口,使用SMK对称解密EncKEK,得到KEK,KEK=SymmDecrypt(SMK,EncKEK)。
S407:解密密钥因子。云签系统使用KEK对EncRandomNumber对称解密得到RandomNumber=SymmDecrypt(KEK,EncRandomNumber)。
S408:计算签名私钥。云签系统调用服务器密码机HMAC接口,将服务器密码机内部对称密钥SMK作为密钥参数输入,将用户唯一身份特征值HashedUniqueID、私钥生成口令PassWord、随机数RandomNumber三者组合后作为消息参数输入,计算用户签名私钥SignPrivateKey,SignPrivateKey=HMAC(SMK,HashedUniqueID||PassWord||RandomNumber)。
S409:对消息进行签名。云签系统调用服务器密码机签名接口使用签名私钥SignPrivateKey对待签名消息OriginalText计算签名值SignValue,SignValue=Sign(SignPrivateKey,SignAlg,OriginalText),SignAlg为签名算法(比如:SM3WithSM2,下同)。
S410:数据存储。云签系统将SignCert、OriginalText、SignValue存储到自身数据库签名表中。
S500:消息验签操作。
在需要验证签名的业务场景,相关依赖方可访问云签系统获取已签名数据包“SignCert、OriginalText、SignValue”,从SignCert导出公钥SignPublicKey,按照常规方式即可完成验签,验签结果=VerifySign(SignPublicKey,SignAlg,OriginalText,SignValue)。
S600:消息加密操作。
在需要消息加密的业务场景,相关依赖方可访问云签系统获取用户加密证书EncCert,从EncCert导出公钥EncPublicKey,按照常规方式对待加密明文消息PlainText使用EncPublicKey加密,加密结果为密文消息CipherText,CipherText=Encrypt(EncPublicKey,PlainText)。
S700:消息解密操作。
用户在云签系统中进行消息解密操作。
S701:输入用户身份信息。用户访问云签系统需要进行解密的页面,输入唯一身份标识UniqueID和私钥生成口令PassWord;
S702:加密隐私数据。云签系统对UniqueID做HASH运算得到HashedUniqueID=HASH(UniqueID);云签系统对PassWord做HMAC运算得到HashedPassWord=HMAC(UniqueID,PassWord)。
S703:核验用户身份。云签系统调用CA系统接口验证用户身份及证书状态信息是否有效,传入HashedUniqueID、HashedPassWord、EncKEK和用户密钥操作标识(比如:解密操作)参数,CA系统在数据库中存储“HashedUniqueID、HashedPassWord、EncKEK、用户密钥操作标识”等信息,返回用户身份及证书状态验证结果。
S704:查询密钥因子。若CA系统返回验证成功,云签系统根据HashedUniqueID在数据库中查询EncKEK、EncRandomNumber、EncKeyEnvelope。
S705:解密中间密钥KEK。云签系统调用服务器密码机对称解密接口,使用SMK对称解密EncKEK,得到KEK,KEK=SymmDecrypt(SMK,EncKEK)。
S706:解密密钥因子。云签系统使用KEK对EncRandomNumber对称解密得到RandomNumber=SymmDecrypt(KEK,EncRandomNumber)。
S707:计算签名私钥。云签系统调用服务器密码机HMAC接口,将服务器密码机内部对称密钥SMK作为密钥参数输入,将用户唯一身份特征值HashedUniqueID、私钥生成口令PassWord、随机数RandomNumber三者组合后作为消息参数输入,计算用户签名私钥SignPrivateKey,SignPrivateKey=HMAC(SMK,HashedUniqueID||PassWord||RandomNumber)。
S708:解密加密私钥。云签系统调用服务器密码机数据解密接口,使用签名私钥SignPrivateKey对用户加密密钥数字信封EncKeyEnvelope进行解密,得到加密密钥的私钥EncPrivateKey,EncPrivateKey=Decrypt(SignPrivateKey, EncKeyEnvelope)。
S709:解密加密消息。云签系统调用服务器密码机数据解密接口,使用加密私钥EncPrivateKey对密文消息CipherText进行解密,得到明文消息PlainText,PlainText=Decrypt(EncPrivateKey,CipherText)。
以上所述实施例仅表达了本发明的具体实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。

Claims (8)

1.一种用户控制服务器端密钥可靠使用的方法,其特征在于,包括以下步骤:
S100、用户身份认证:用户向CA机构提交证书注册申请,CA机构认证用户身份;
S200、云签系统密钥生成:云签系统在系统初始化时产生系统主密钥SMK和中间密钥KEK;
S300、用户密钥生成:用户在云签系统中生成签名密钥对,所述签名密钥对包括签名私钥SignPrivateKey和签名公钥SignPublicKey;
S400、用户在云签系统中进行消息签名操作;
S500、利用签名公钥SignPublicKey对消息进行验签;
S600、对待加密明文消息PlainText进行加密;
S700、用户在云签系统中进行消息解密操作。
2.根据权利要求1所述的用户控制服务器端密钥可靠使用的方法,其特征在于,所述步骤S100具体包括以下步骤:
S101、用户注册:用户访问CA机构的CA系统证书注册页面,用户输入唯一身份标识UniqueID及其他证照信息,提交证书注册申请;
S102、核验用户身份:CA系统对用户身份进行实名认证和身份核验,核验通过后,通知用户设置签名私钥生成口令PassWord;
S103、加密隐私数据:CA系统对唯一身份标识UniqueID做HASH运算得到用户唯一身份特征值HashedUniqueID,HashedUniqueID=HASH(UniqueID);对签名私钥生成口令PassWord做HMAC运算得到用户私钥生成口令特征值HashedPassWord,HashedPassWord=HMAC(UniqueID,PassWord);
S104、数据存储:CA系统将用户唯一身份特征值HashedUniqueID、用户私钥生成口令特征值HashedPassWord存储到自身数据库中。
3.根据权利要求2所述的用户控制服务器端密钥可靠使用的方法,其特征在于,所述步骤S200具体包括以下步骤:
S201、产生主密钥SMK:云签系统调用服务器密码机对称密钥产生接口产生内部对称密钥,即主密钥SMK;
S202、产生中间密钥KEK:云签系统调用服务器密码机对称密钥产生接口产生外部对称密钥,即中间密钥KEK;
S203、加密中间密钥KEK:云签系统调用服务器密码机对称加密接口,使用主密钥SMK对称加密中间密钥KEK,得到EncKEK,EncKEK=SymmEncrypt(SMK,KEK);
S204、数据存储:云签系统将EncKEK存储到自身数据库中。
4.根据权利要求3所述的用户控制服务器端密钥可靠使用的方法,其特征在于,所述步骤S300具体包括以下步骤:
S301、用户输入身份信息:用户访问云签系统用户密钥生成页面,输入唯一身份标识UniqueID和私钥生成口令PassWord;
S302、加密隐私数据:云签系统对唯一身份标识UniqueID做HASH运算得到HashedUniqueID=HASH(UniqueID);云签系统对私钥生成口令PassWord做HMAC运算得到HashedPassWord=HMAC(UniqueID,PassWord);
S303、核验用户身份:云签系统调用CA系统接口验证用户身份信息是否有效,传入HashedUniqueID、HashedPassWord、EncKEK和用户密钥操作标识参数,CA系统在数据库中进行存储并返回用户身份验证结果;
S304、产生密钥因子:若CA系统返回验证成功,云签系统调用服务器密码机为用户产生随机数RandomNumber,作为用户签名密钥因子,随机数RandomNumber用于派生签名私钥SignPrivateKey;
S305、计算签名私钥:云签系统调用服务器密码机HMAC接口,将服务器密码机内部对称密钥,即主密钥SMK作为密钥参数输入,将用户唯一身份特征值HashedUniqueID、私钥生成口令PassWord、随机数RandomNumber三者组合后作为消息参数输入,计算用户签名私钥SignPrivateKey,SignPrivateKey=HMAC(SMK,HashedUniqueID||PassWord||RandomNumber);
S306、计算签名公钥和证书请求:云签系统基于用户签名私钥SignPrivateKey生成用户签名公钥SignPublicKey和证书请求CSR;
S307、申请用户证书:云签系统调用CA系统接口为用户申请证书,传入HashedUniqueID、证书请求CSR和EncKEK,CA系统为用户签发证书并在数据库用户表中存储HashedUniqueID、证书请求CSR、EncKEK及证书信息,CA系统返回用户签名证书SignCert、用户加密证书EncCert、用户加密密钥数字信封EncKeyEnvelope;
S308、解密中间密钥KEK:云签系统调用服务器密码机对称解密接口,使用主密钥SMK对称解密EncKEK得到KEK,KEK=SymmDecrypt(SMK,EncKEK);
S309、加密密钥因子:云签系统使用中间密钥KEK对随机数RandomNumber对称加密得到EncRandomNumber=SymmEncrypt(KEK,RandomNumber);
S310、数据存储:云签系统将HashedUniqueID、EncRandomNumber、SignCert、EncCert、EncKeyEnvelope存储到自身数据库密钥表中。
5.根据权利要求4所述的用户控制服务器端密钥可靠使用的方法,其特征在于,所述步骤S400具体包括以下步骤:
S401、输入用户身份信息:用户访问云签系统需要进行签名的页面,输入唯一身份标识UniqueID和私钥生成口令PassWord;
S402、加密隐私数据:云签系统对唯一身份标识UniqueID做HASH运算得到HashedUniqueID=HASH(UniqueID);云签系统对私钥生成口令PassWord做HMAC运算得到HashedPassWord=HMAC(UniqueID,PassWord);
S403、核验用户身份:云签系统调用CA系统接口验证用户身份及证书状态信息是否有效,传入HashedUniqueID、HashedPassWord、EncKEK和用户密钥操作标识参数,CA系统在数据库中进行存储并返回用户身份及证书状态验证结果;
S404、用户确认待签名消息:若CA系统返回验证成功,云签系统提示用户确认待签名消息OriginalText是否有误;
S405、查询密钥因子:若用户确认OriginalText无误,云签系统根据HashedUniqueID在数据库中查询EncKEK、EncRandomNumber、SignCert;
S406、解密中间密钥KEK:云签系统调用服务器密码机对称解密接口,使用主密钥SMK对称解密EncKEK得到KEK,KEK=SymmDecrypt(SMK,EncKEK);
S407、解密密钥因子:云签系统使用KEK对EncRandomNumber对称解密得到RandomNumber=SymmDecrypt(KEK,EncRandomNumber);
S408、计算签名私钥:云签系统调用服务器密码机HMAC接口,将服务器密码机内部对称密钥SMK作为密钥参数输入,将用户唯一身份特征值HashedUniqueID、私钥生成口令PassWord、随机数RandomNumber三者组合后作为消息参数输入,计算用户签名私钥SignPrivateKey,SignPrivateKey=HMAC(SMK,HashedUniqueID||PassWord||RandomNumber);
S409、对消息进行签名:云签系统调用服务器密码机签名接口使用签名私钥SignPrivateKey对待签名消息OriginalText计算签名值SignValue,SignValue=Sign(SignPrivateKey,SignAlg,OriginalText),其中,SignAlg为签名算法;
S410、数据存储:云签系统将用户签名证书SignCert、待签名消息OriginalText、签名值SignValue存储到自身数据库签名表中。
6.根据权利要求5所述的用户控制服务器端密钥可靠使用的方法,其特征在于,所述步骤S500具体如下:
在需要验证签名的业务场景,相关依赖方访问云签系统获取已签名数据包,从签名数据包的用户签名证书SignCert导出签名公钥SignPublicKey完成验签,验签结果=VerifySign(SignPublicKey,SignAlg,OriginalText,SignValue)。
7.根据权利要求5或6所述的用户控制服务器端密钥可靠使用的方法,其特征在于,所述步骤S600具体如下:
在需要消息加密的业务场景,相关依赖方访问云签系统获取用户加密证书EncCert,从用户加密证书EncCert导出公钥EncPublicKey对待加密明文消息PlainText使用EncPublicKey加密,加密结果为密文消息CipherText,CipherText=Encrypt(EncPublicKey,PlainText)。
8.根据权利要求7所述的用户控制服务器端密钥可靠使用的方法,其特征在于,所述步骤S700具体包括以下步骤:
S701、输入用户身份信息:用户访问云签系统需要进行解密的页面,输入唯一身份标识UniqueID和私钥生成口令PassWord;
S702、加密隐私数据:云签系统对唯一身份标识UniqueID做HASH运算得到HashedUniqueID=HASH(UniqueID);云签系统对私钥生成口令PassWord做HMAC运算得到HashedPassWord=HMAC(UniqueID,PassWord);
S703、核验用户身份:云签系统调用CA系统接口验证用户身份及证书状态信息是否有效,传入HashedUniqueID、HashedPassWord、EncKEK和用户密钥操作标识参数,CA系统在数据库中进行存储并返回用户身份及证书状态验证结果;
S704、查询密钥因子:若CA系统返回验证成功,云签系统根据HashedUniqueID在数据库中查询EncKEK、EncRandomNumber、EncKeyEnvelope;
S705、解密中间密钥KEK:云签系统调用服务器密码机对称解密接口,使用主密钥SMK对称解密EncKEK得到KEK,KEK=SymmDecrypt(SMK,EncKEK);
S706、解密密钥因子:云签系统使用中间密钥KEK对EncRandomNumber对称解密得到RandomNumber=SymmDecrypt(KEK,EncRandomNumber);
S707、计算签名私钥:云签系统调用服务器密码机HMAC接口,将服务器密码机内部对称密钥,即主密钥SMK作为密钥参数输入,将用户唯一身份特征值HashedUniqueID、私钥生成口令PassWord、随机数RandomNumber三者组合后作为消息参数输入,计算用户签名私钥SignPrivateKey,SignPrivateKey=HMAC(SMK,HashedUniqueID||PassWord||RandomNumber);
S708、解密加密私钥:云签系统调用服务器密码机数据解密接口,使用签名私钥SignPrivateKey对用户加密密钥数字信封EncKeyEnvelope进行解密,得到加密密钥的私钥EncPrivateKey,EncPrivateKey=Decrypt(SignPrivateKey, EncKeyEnvelope);
S709、解密加密消息:云签系统调用服务器密码机数据解密接口,使用加密私钥EncPrivateKey对密文消息CipherText进行解密,得到明文消息PlainText,PlainText=Decrypt(EncPrivateKey,CipherText)。
CN202311380131.2A 2023-10-24 2023-10-24 用户控制服务器端密钥可靠使用的方法 Active CN117118759B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311380131.2A CN117118759B (zh) 2023-10-24 2023-10-24 用户控制服务器端密钥可靠使用的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311380131.2A CN117118759B (zh) 2023-10-24 2023-10-24 用户控制服务器端密钥可靠使用的方法

Publications (2)

Publication Number Publication Date
CN117118759A true CN117118759A (zh) 2023-11-24
CN117118759B CN117118759B (zh) 2024-01-30

Family

ID=88804231

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311380131.2A Active CN117118759B (zh) 2023-10-24 2023-10-24 用户控制服务器端密钥可靠使用的方法

Country Status (1)

Country Link
CN (1) CN117118759B (zh)

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103490892A (zh) * 2013-08-28 2014-01-01 广东数字证书认证中心有限公司 数字签名方法和系统、应用服务器和云密码服务器
WO2015161683A1 (zh) * 2014-04-23 2015-10-29 福建联迪商用设备有限公司 一种统一apk签名的方法及其系统
US20170279807A1 (en) * 2016-03-23 2017-09-28 Juan José Bermúdez Safe method to share data and control the access to these in the cloud
WO2018127081A1 (zh) * 2017-01-04 2018-07-12 天地融科技股份有限公司 一种加密密钥获取方法及系统
CN110932851A (zh) * 2019-11-29 2020-03-27 四川省数字证书认证管理中心有限公司 一种基于pki的多方协同运算的密钥保护方法
CN111447214A (zh) * 2020-03-25 2020-07-24 北京左江科技股份有限公司 一种基于指纹识别的公钥密码集中服务的方法
CN114726546A (zh) * 2022-05-11 2022-07-08 北京信安世纪科技股份有限公司 数字身份认证方法、装置、设备和存储介质
CN115134132A (zh) * 2022-06-20 2022-09-30 哈尔滨工业大学(深圳) 基于无证书的身份匿名隐私保护医疗数据完整性验证方法
CN115801223A (zh) * 2023-01-13 2023-03-14 北京中宏立达科技发展有限公司 一种基于ca证书的标识密钥体系与pki体系兼容方法
CN116318606A (zh) * 2022-09-08 2023-06-23 南通大学 车联网云环境下基于同态聚合的高效电子凭证验证方法

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103490892A (zh) * 2013-08-28 2014-01-01 广东数字证书认证中心有限公司 数字签名方法和系统、应用服务器和云密码服务器
WO2015161683A1 (zh) * 2014-04-23 2015-10-29 福建联迪商用设备有限公司 一种统一apk签名的方法及其系统
US20170279807A1 (en) * 2016-03-23 2017-09-28 Juan José Bermúdez Safe method to share data and control the access to these in the cloud
WO2018127081A1 (zh) * 2017-01-04 2018-07-12 天地融科技股份有限公司 一种加密密钥获取方法及系统
CN110932851A (zh) * 2019-11-29 2020-03-27 四川省数字证书认证管理中心有限公司 一种基于pki的多方协同运算的密钥保护方法
CN111447214A (zh) * 2020-03-25 2020-07-24 北京左江科技股份有限公司 一种基于指纹识别的公钥密码集中服务的方法
CN114726546A (zh) * 2022-05-11 2022-07-08 北京信安世纪科技股份有限公司 数字身份认证方法、装置、设备和存储介质
CN115134132A (zh) * 2022-06-20 2022-09-30 哈尔滨工业大学(深圳) 基于无证书的身份匿名隐私保护医疗数据完整性验证方法
CN116318606A (zh) * 2022-09-08 2023-06-23 南通大学 车联网云环境下基于同态聚合的高效电子凭证验证方法
CN115801223A (zh) * 2023-01-13 2023-03-14 北京中宏立达科技发展有限公司 一种基于ca证书的标识密钥体系与pki体系兼容方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
赵斌: "一种云计算环境下代理TCM密码功能的方法", 计算机与数字工程 *

Also Published As

Publication number Publication date
CN117118759B (zh) 2024-01-30

Similar Documents

Publication Publication Date Title
US20210367795A1 (en) Identity-Linked Authentication Through A User Certificate System
CN108768988B (zh) 区块链访问控制方法、设备及计算机可读存储介质
CN109495274B (zh) 一种去中心化智能锁电子钥匙分发方法及系统
US7120797B2 (en) Methods for authenticating potential members invited to join a group
US8724819B2 (en) Credential provisioning
CN101212293B (zh) 一种身份认证方法及系统
CN111447214A (zh) 一种基于指纹识别的公钥密码集中服务的方法
CN112187798B (zh) 一种应用于云边数据共享的双向访问控制方法及系统
US7412059B1 (en) Public-key encryption system
CN108809936B (zh) 一种基于混合加密算法的智能移动终端身份验证方法及其实现系统
CN113051540B (zh) 一种应用程序接口安全分级治理方法
KR20110083886A (ko) 휴대용 단말기에서 다른 휴대용 단말기를 인증하는 장치 및 방법
CN104486087A (zh) 一种基于远程硬件安全模块的数字签名方法
CN112565294A (zh) 一种基于区块链电子签名的身份认证方法
CN102999710A (zh) 一种安全共享数字内容的方法、设备及系统
CN111586023A (zh) 一种认证方法、设备和存储介质
JPH10336172A (ja) 電子認証用公開鍵の管理方法
CN114331456A (zh) 一种通信方法、装置、系统以及可读存储介质
CN114091009A (zh) 利用分布式身份标识建立安全链接的方法
CN116528230A (zh) 验证码处理方法、移动终端及可信服务系统
CN117118759B (zh) 用户控制服务器端密钥可靠使用的方法
Nishimura et al. Secure authentication key sharing between personal mobile devices based on owner identity
CN114238912A (zh) 数字证书的处理方法、装置、计算机设备和存储介质
KR100681005B1 (ko) 키 로밍 방법 및 그를 위한 시스템
CN109104393B (zh) 一种身份认证的方法、装置和系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant