发明内容
有鉴于此,本发明实施例提供一种用户数字证书私钥管理方法和系统,以实现用户加密证书的私钥在传输、安装、备份和恢复过程中保密性、完整性和可靠性。
本发明实施例是这样实现的:
一种用户数字证书私钥管理方法,包括:
加密卡应密钥管理中心KMC请求,生成加密证书Enc-Cert密钥对,该Enc-Cert密钥对包括私钥和公钥;
所述加密卡利用预先获得的发自用户端的USB Key的预设密钥对中的公钥加密所述Enc-Cert密钥对中的私钥,得到数字信封Env-User,将该Env-User通过KMC传送给权威认证机构CA;
CA根据Enc-Cert密钥对中的公钥签发Enc-Cert,并将该Enc-Cert及Env-User提供给USB Key;
USB Key根据所述预设密钥对中的私钥解密所述Env-User,得到所述Enc-Cert密钥对中的私钥及加密证书。
优选的,上述方法还包括:对所述Enc-Cert密钥对中的私钥进行备份。
优选的,上述方法中,按照以下步骤对所述Enc-Cert密钥对中的私钥进行备份:
利用预先生成的KMC公钥加密所述加密证书的私钥,得到由KMC公钥加密的数字信封Env_KMC;
通过拉格朗日插值多项式算法,把所述Env_KMC进行分解,得到预设数量的Env_KMC部分;
利用相应数量的KMC管理员公钥分别对各Env_KMC部分进行加密,并将加密结果存储于数据库中;
删除加密卡中的用户加密证书的密钥对、Env_KMC及所有Env_KMC部分。
优选的,上述方法还包括:备份KMC管理员私钥;按照以下步骤进行:
在与所述预设数量相同数量的USB Key中分别生成临时密钥对,并传递给加密卡;
加密卡利用所述各临时密钥对中的公钥对各KMC管理员私钥进行加密,得到相应数量的KMC管理员私钥密文,并分别提供给各USB Key保存;
所述各USB Key利用临时密钥对中的私钥对各KMC管理员私钥密文进行解密,得到KMC管理员私钥,并安装;
利用预先生成的KMC公钥对各KMC管理员私钥进行加密后,导入预设数据库;
删除所述加密卡中的KMC管理员的私钥及相应的密文。
优选的,上述方法还包括:对KMC私钥进行备份。
优选的,所述对Enc-Cert密钥对中的私钥、KMC管理员私钥及KMC私钥的备份过程是在离线状态下进行的,所述预设数据库为离线数据库。
优选的,所述预设密钥对为签名证书的密钥对,按照以下步骤获得:
USB Key生成用于构建签名证书Sign-Cert的密钥对,并向CA发送Sign-Cert请求信息,该请求信息包括所述用于构建Sign-Cert的密钥对及生成Sign-Cert的用户信息;
CA签发Sign-Cert,并向KMC发送Enc-Cert密钥对请求信息,该请求信息携带所述Sign-Cert;
KMC将该Enc-Cert密钥对请求信息发送给所述加密卡;
所述加密卡从所述Enc-Cert密钥对请求信息中获得Sign-Cert的密钥对。
优选的,所述预设密钥对为临时密钥对,按照以下步骤获得:
USB Key生成用于构建Sign-Cert的密钥对,并向CA发送Sign-Cert请求信息,该请求信息包括所述用于构建Sign-Cert的密钥对及生成Sign-Cert的用户信息;
接收CA签发的Sign-Cert,并安装;
生成临时密钥对,用所述Sign-Cert签名所述临时密钥对中的临时公钥,并将所述Sign-Cert签名、所述临时公钥随同Enc-Cert请求信息通过CA提供给KMC,由该KMC向加密卡发送Enc-Cert密钥对请求信息;
所述加密卡从所述Enc-Cert密钥对请求信息中获得所述临时密钥对。
本发明实施例同时还提供了一种用户数字证书私钥管理系统,包括:用户端、密钥管理中心KMC、权威认证机构CA和加密卡;
其中:
所述KMC包括:
第一请求单元,用于应用户端数字证书请求,发送加密证书Enc-Cert密钥对生成请求;
转发单元,用于将加密卡发送的信息转发给CA;
所述加密卡包括:
Enc-Cert密钥对生成单元,用于针对所述Enc-Cert密钥对生成请求,生成Enc-Cert密钥对;
第一处理单元,用于利用预先获得的发自用户端的USB Key的预设密钥对中的公钥,加密所述Enc-Cert密钥对中的私钥,得到数字信封Env-User,将该Env-User发送给KMC;
所述CA用于根据Enc-Cert密钥对中的公钥签发Enc-Cert,并将该Enc-Cert及Env-User提供给用户端,由所述用户端根据所述预设密钥对中的私钥解密所述Env-User,得到所述Enc-Cert密钥对中的私钥。
优选的,所述KMC还包括:
第二处理单元,利用预先获得的KMC公钥加密所述Enc-Cert的密钥对中的私钥,得到由KMC公钥加密的数字信封Env_KMC;
拉格朗日算法单元,用于通过拉格朗日插值多项式算法,把所述Env_KMC进行分解,得到预设数量的Env_KMC部分;
第三处理单元,利用相应数量的KMC管理员公钥分别对各Env_KMC部分进行加密,并将加密结果存储于数据库中;
所述加密卡还包括:
删除单元,用于在所述KMC将加密结果存储于数据库中后,删除加密卡中的Enc-Cert的密钥对、Env_KMC及所有Env_KMC部分。
从上述的技术方案可以看出,与现有技术相比,本发明实施例中,加密卡利用USB Key提供的密钥对的公钥对加密证书的私钥进行加密,保证了在该加密证书的私钥在传输过程中的安全性,并且保证了只有提供密钥对的USB Key才能利用密钥对中的私钥对加密的加密证书进行解密和安装,保证了加密证书的私钥的安装安全性。
另外,本发明实施例还进一步对加密证书的私钥进行备份,利用KMC密钥对的公钥对加密证书的私钥进行加密后,通过拉格朗日插值多项式将加密结果分解成若干部分,并采用多个KMC管理员密钥分别进行加密,保证了加密证书的私钥备份的安全性和可靠性。另外,还对KMC私钥和KMC管理员私钥也进行了备份,保证了加密证书的私钥的可恢复性。
具体实施方式
面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面首先对本文出现的技术名词或术语进行解释,以方便本领域技术人员对本文技术方案的理解:
USB Key:是一种USB接口的硬件设备,它内置单片机或智能卡芯片,有一定的存储空间,可以存储用户的私钥以及数字证书,利用USB Key内置的公钥算法实现对用户身份的认证。
CA:权威认证机构(Certificate Authority),主要具有完成生成/签发证书、生成/签发证书撤销列表(CRL)、发布证书和CRL到目录服务器、维护证书数据库和审计日志库等功能。
KMC:密钥管理中心(Key Manage Center),主要用于向CA服务提供相关密钥服务,如密钥生成、密钥存储、密钥备份、密钥恢复、密钥托管和密钥运算等。
为了使得本领域技术人员更好理解本发明技术方案,下面结合附图和实施例进行详细描述。
请参考图1,为本发明实施例一提供的一种用户数字证书私钥管理方法的流程图。
包括以下步骤:
步骤S101、加密卡应KMC请求,生成加密证书(Enc-Cert)的密钥对。
步骤S102、利用预先获得的预设密钥对中的公钥加密所述Enc-Cert的密钥对中的私钥,得到数字信封(Env-User)。
所述预设密钥对来自USB Key。
步骤S103、将该Env-User通过KMC传送给CA。
步骤S104、CA利用所述Enc-Cert的公钥签发加密证书。
步骤S105、CA将该Enc-Cert及Env-User提供给用户端的USB Key。
步骤S106、USB Key根据预设密钥对中的私钥解密所述数字信封,得到所述Enc-Cert的私钥。
所述预设密钥对可以是签名证书的密钥对或者是临时生成的密钥对,也可以是其他密钥,只要是由请求密钥管理的用户端USB Key发出并唯一可由该USB Key解密即可。
下面分别通过实施例二和实施例三具体说明。
如图2所示,为本发明实施例二提供的一种用户数字证书私钥管理方法的流程图。
具体包括以下步骤:
步骤S201、用户端在本地USB Key中生成用于构建签名证书(Sign-Cert)的密钥对。
步骤S202、用户端在本地USB Key生成Sign-Cert申请请求消息(Req1),该Req包括上述密钥对及签发签名证书需要提交的用户信息。
步骤S203、向CA发送所述Req1。
步骤S204、CA接收到所述Req1,并核实该Req1属实后,签发Sign-Cert。
步骤S205、CA向KMC发送生成加密证书(Enc-Cert)密钥对的申请请求消息(Req2),该Req2包括所述Sign-Cert。
步骤S206、KMC请求加密卡生成Enc-Cert的密钥对。
步骤S207、加密卡在内部生成一对所述Enc-Cert的密钥对。
步骤S208、加密卡使用所述Sign-Cert中的签名公钥加密所述Enc-Cert的密钥对中的私钥,得到所述Sign-Cert的公钥的数字信封(Env-User)。
步骤S209、加密卡将所述Env-User发送给KMC。
步骤S210、KMC将所述Env-User发送给CA。
步骤S211、CA根据获取Enc-Cert的密钥对中的公钥签发Enc-Cert,并将Enc-Cert、Sign-Cert和Env-User下发给用户端。
步骤S212、用户端在本地的USB Key内安装Enc-Cert和Sign-Cert,使用USB Key内的Sign-Cert的私钥解密所述Env-User,得到Enc-Cert的私钥,并安装。
本发明实施例巧妙利用Sign-Cert的公钥对Enc-Cert的私钥进行加密,无需引入额外的加密信息,并可保证Enc-Cert的私钥在传输过程中的安全性。并且,只有在存在Sign-Cert的私钥的USB Key中才能解密并安装,避免了Enc-Cert的私钥签发过程中存在的风险。
需要说明的是,在使用场景规定用户端本地的USB Key产生的Sign-Cert的密钥对仅能用于签名和验证签名,而不能用于加密时,Enc-Cert的私钥在传输过程中的安全性可以由USB Key产生的临时密钥对保证。
请参考图3,为本发明实施例三提供的一种用户数字证书私钥管理方法的流程图。
具体包括以下步骤:
步骤S301、用户端在本地USB Key中生成用于构建Sign-Cert的密钥对。
步骤S302、用户端生成Sign-Cert申请请求消息Req1,该Req1中上述密钥对和签发证书需要提交的用户信息。
步骤S303、向CA发送Req1。
步骤S304、CA接收所述Req1,核实信息属实后,签发Sign-Cert。
步骤S305、用户端在USB Key内部安装所述Sign-Cert。
步骤S306、在所述USB Key内生成一对临时密钥对(Temp_Key),用Sign-Cert签名临时公钥(Temp_Pub_Key),该Temp_Key包括Temp_Pub_Key和临时私钥(Temp_PRI_Key)。
步骤S307、向CA发送Enc-Cert申请请求消息Req3、Temp_Pub_Key和签名(Sign-TempKey)。
步骤S308、CA对所述Sign_TempKey进行验证,在验证通过时,将所述Temp_Pub_Key和Req3发送给KMC。
步骤S309、KMC请求加密卡生成Enc-Cert的密钥对。
步骤S310、加密卡在内部生成一对Enc-Cert的密钥对。
步骤S311、加密卡使用所述Temp_Pub_Key加密所述Enc-Cert的密钥对中的私钥,得到由所述Temp_Pub_Key加密的数字信封Env-User。
步骤S312、加密卡将所述Env-User传送给KMC。
步骤S313、KMC将所述Env-User发送给CA。
步骤S314、CA根据预先获取的Enc-Cert的密钥对中的公钥签发Enc-Cert。
步骤S315、CA将该Enc-Cert和Env-User下发给用户端。
步骤S316、用户端在USB Key内安装所述Enc-Cert,使用USB Key内的Temp_Pri_Key解密所述Env_User,得到所述Enc-Cert的私钥并安装。
本实施例提供了另一种保证Enc-Cert的密钥对的私钥在传输过程中安全性的方法,同样保证了Enc-Cert的私钥传输的安全性,并且,只有在存在相应临时私钥的USB Key中才能解密并安装,避免Enc-Cert的密钥在签发过程中存在的风险。同时,CA和KMC可以对用户端发送的临时公钥签名进行签名验证,防止伪造该临时公钥的情况的出现。
在其他实施例提供的用户数字证书私钥管理方法中,在生成Enc-Cert的密钥对后,还包括对该Enc-Cert的密钥对中的私钥的备份。
请参考图4,为本发明上述实施例提供的用户数字证书私钥管理方法中的Enc-Cert的密钥对中的私钥的备份流程图。
具体包括以下步骤:
步骤S401、在加密卡中生成KMC密钥对,该KMC密钥对包括KMC公钥和KMC私钥
步骤S402、加密卡将所述KMC密钥对并传递给KMC。
步骤S403、KMC利用KMC公钥加密所述Enc-Cert的私钥,得到由KMC公钥加密的数字信封Env_KMC。
步骤S404、通过拉格朗日插值多项式算法,把所述Env_KMC进行分解,分解成预设数量的Env_KMC部分。
步骤S405、利用预先生成的相应数量的KMC管理员公钥(PUB_Key)分别对各Env_KMC部分进行加密,并将加密结果存储于数据库中。
步骤S406、删除加密卡中的用户加密证书的密钥对、Env_KMC及所有Env_KMC部分。
所述预设数量可以根据用户需求进行设置,例如可以等于5,即:通过拉格朗日插值多项式算法,将Env_KMC分解成5个Env_KMC部分(分别为L1、L2、L3、L4和L5),利用预先生成的5个KMC管理员公钥(PUB_Key1、PUB_Key2、PUB_Key3、PUB_Key4和PUB_Key5)分别对所述5个Env_KMC部分进行加密,得到5个加密结果(分别为L1’、L2’、L3’、L4’和L5’),并存储于预设数据库中,实现备份。利用KMC公钥对Enc-Cert的私钥进行加密属于一次加密,将加密后的结果分解成5份,用KMC管理员公钥进行加密属于二次加密,进一步保证了备份的安全性。
本实施例利用KMC公钥加密Enc-Cert的私钥,得到Env_KMC后,利用拉格朗日插值多项式算法将Env_KMC分解成多份,并利用预先生成的KMC管理员公钥进行加密,并将加密结果存储于预设数据库中进行备份,实现了Enc-Cert的私钥的完整的备份策略。另外,经过上述备份后,要求必须有KMC私钥及足够数量的KMC管理员私钥(PRI_Key)才能进行解密以获取Enc-Cert的私钥。例如,如果分成5个Env_KMC部分,按照拉格朗日插值多项式的性质可知,在同时具有任意三个或者三个以上的KMC管理员私钥才能恢复出所述Env_KMC,并且在具有KMC私钥的情况下才能获取Enc-Cert的私钥,由此提高了Enc-Cert的私钥备份的安全性。需要说明的是,拉格朗日插值多项式算法性质又实现了在有三个KMC管理员私钥便可恢复Env_KMC的特性,这使得当五个KMC管理员私钥丢失时,仍然可以恢复出Enc-Cert的私钥。
在本发明另外一些实施例中,对用于加密Enc-Cert的私钥的KMC密钥及KMC管理员私钥也进行了备份。
对KMC管理员私钥的备份过程如图5所示,包括以下步骤:
步骤S501、预设数量的USB_Key中分别生成临时密钥对。
该预设数量与上述Env_KMC的分解份数相等。
步骤S502、将该临时密钥对经KMC传递给加密卡。
步骤S503、加密卡利用该临时密钥对中的公钥对上述KMC管理员的私钥进行加密,得到相应数量的KMC管理员私钥密文。
步骤S504、将各KMC管理私钥密文分别提供给各USB Key保存。
步骤S505、各USB Key利用各临时密钥对中的私钥对各KMC管理员私钥密文进行解密,得到KMC管理员私钥,并安装。
步骤S506、利用预先生成的KMC密钥对中的公钥对各KMC管理员私钥进行加密后,导入预设数据库。
步骤S507、删除所述加密卡中的KMC管理员的私钥及相应的密文。
本发明实施例实现了KMC管理员私钥的安全传输及安装,还保证了KMC管理员私钥的备份和恢复。
假设存在5个USB Key(分别为USB Key1、USB Key2、USB Key3、USB Key4和USB Key5),其产生5份临时密钥对。利用5对临时密钥对分别对5个KMC管理员的私钥进行加密,得到5个KMC管理员私钥密文。利用预先生成的KMC密钥对加密5个KMC管理员的私钥后,导入预设数据库。
对于KMC私钥的备份过程可以如下:
在一个加密卡(加密卡1)中生成KMC密钥对,该KMC密钥对包括KMC公钥和KMC私钥,将该加密卡中KMC密钥对复制到另一加密卡(加密卡2)中,进行备份。加密卡1将所述KMC密钥对发送给KMC后,在加密卡1中删除所述KMC密钥对。
需要说明的是,在另外一些实施例中,为了进一步保证备份过程的安全性,上述对KMC管理员私钥及KMC私钥的备份过程均是在离线的状态下进行的,所述预设数据库为离线数据库。
针对上述部分或全部方法实施例子,本发明实施例还公开了一种用户数字证书私钥管理系统。
请参考图6,为本发明实施例提供的一种用户数字证书私钥管理系统的结构示意图。
该系统包括:用户端61、CA62、KMC63和加密卡64。
其中:
所述KMC63至少包括:
第一请求单元631,用于应用户端数字证书请求,发送加密证书Enc-Cert密钥对生成请求。
转发单元632,用于将加密卡发送的信息转发给CA。
所述加密卡64至少包括Enc-Cert密钥对生成单元641和第一处理单元642。所述Enc-Cert密钥对生成单元641用于针对所述Enc-Cert密钥对生成请求,生成Enc-Cert密钥对。所述第一处理单元642用于利用预先获得的预设密钥对中的公钥,加密所述Enc-Cert密钥对中的私钥,得到数字信封Env-User,将该Env-User发送给KMC63。所述预先获得的预设密钥对是由用户端61在USB Key中生成,并提供的。
所述CA用于根据Enc-Cert密钥对中的公钥签发Enc-Cert,并将该Enc-Cert及Env-User提供给用户端,由所述用户端根据所述预设密钥对中的私钥解密所述Env-User,得到所述Enc-Cert密钥对中的私钥。
所述预设密钥对可以是Sign-Cert的密钥对,也可以是临时密钥对。
本系统的具体工作过程可以参考上述方法实施例部分内容,在此不再赘述。
在其他实施例中,所述KMC63还可以包括第二处理单元631、拉格朗日算法单元632和第三处理单元633;所述加密卡64还包括删除单元643。
第二处理单元631、拉格朗日算法单元632和第三处理单元633和删除单元643进行配合,以实现Enc-Cert的密钥对中的私钥的备份操作。具体过程如下:
首先,第二处理单元631利用预先获得的KMC公钥加密所述Enc-Cert的密钥对中的私钥,得到由KMC公钥加密的数字信封Env_KMC。然后,拉格朗日算法单元632通过拉格朗日插值多项式算法,把所述Env_KMC进行分解,得到预设数量的Env_KMC部分。接着,第三处理单元633利用相应数量的KMC管理员公钥分别对各Env_KMC部分进行加密,并将加密结果存储于数据库中。最后,删除单元643用于在所述KMC将加密结果存储于数据库中后,删除加密卡中的Enc-Cert的密钥对、Env_KMC及所有Env_KMC部分,完成对Enc-Cert的密钥对中的私钥的备份。
在其他实施例中,所述KMC63和加密卡64还包含其他功能单元,用于与用户端61和CA62配合完成对上述KMC私钥和KMC管理员私钥的备份,具体过程可以参考前文方法部分的实施例内容。
本领域技术人员可以理解,可以使用许多不同的工艺和技术中的任意一种来表示信息、消息和信号。例如,上述说明中提到过的消息、信息都可以表示为电压、电流、电磁波、磁场或磁性粒子、光场或以上任意组合。
专业人员还可以进一步应能意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。