数字证书申请、使用的实现方法和装置
技术领域
本说明书涉及网络通信技术领域,尤其涉及一种数字证书申请的实现方法和装置、一种数字证书使用的实现方法和装置。
背景技术
信息技术的飞速发展,使互联网渗入到社会生活的各个方面。在电子商务、网络金融、网络政务等对参与各方之间的交互有信息完整性、不可更改、不可抵赖等要求的应用场景中,通常采用数字证书来满足这些要求。
数字证书是一种权威性的电子文档,相当于网络环境中的一种身份证,用于证明在网上进行信息交流及商务活动的各主体(如人、服务器等)的身份。数字证书由权威机构发行,每一个数字证书包含了主体身份的部分信息、主体所持有的公开密钥及认证机构的数字签名。
随着电子商务、网络金融的业务种类日益丰富,应用数字证书的业务也不断增加。不同的业务对安全性的要求可能有所不同,因此安装在设备上每个应用程序中通常都有多张不同可信度的数字证书。如何以少量的证书来满足不同业务的需求,成为数字证书发展中面临的问题。
发明内容
有鉴于此,本说明书提供一种数字证书申请的实现方法,包括:
接收客户端的证书申请请求,所述证书申请请求中包括客户端的设备标识和所述证书的核身要求;所述核身要求指定至少一种要素核身方式;
在客户端通过核身要求指定的要素核身方式的身份认证后,将证书下发给客户端;
保存所述设备标识、所述证书标识、所述证书的已通过核身方式的对应关系。
本说明书提供的一种计算机设备,包括:存储器和处理器;所述存储器上存储有可由处理器运行的计算机程序;所述处理器运行所述计算机程序时,执行上述数字证书申请的实现方法所述的步骤。
本说明书提供的一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器运行时,执行上述数字证书申请的实现方法所述的步骤。
本说明书提供的一种数字证书使用的实现方法,服务端维护有客户端的设备标识、所述客户端的已有证书标识、所述已有证书的已通过核身方式的对应关系,所述方法包括:
接收客户端的证书使用请求,所述证书使用请求中包括客户端的设备标识和所述证书的核身要求;所述核身要求指定至少一种要素核身方式;
根据所述对应关系,查找与所述设备标识对应的、并且满足核身要求的已有证书标识;所述满足核身要求的已有证书标识为:已通过核身方式中包括核身要求指定的每种要素核身方式的已有证书标识;
向客户端发送证书使用指令,所述证书使用指令中包括满足核身要求的已有证书标识。
本说明书提供的一种计算机设备,包括:存储器和处理器;所述存储器上存储有可由处理器运行的计算机程序;所述处理器运行所述计算机程序时,执行上述数字证书使用的实现方法所述的步骤。
本说明书还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器运行时,执行上述数字证书使用的实现方法所述的步骤。
本说明书提供的一种数字证书使用的实现方法,应用在客户端,所述方法包括:
向服务端发送证书使用请求,所述证书使用请求中包括客户端的设备标识和所述证书的核身要求;所述核身要求指定至少一种要素核身方式,供服务端根据维护的客户端的设备标识、已有证书标识、所述已有证书的已通过核身方式的对应关系,查找已通过核身方式中包括所述核身要求指定的每种要素核身方式的、与所述证书使用请求中设备标识对应的已有证书标识;
从服务端接收证书使用指令,所述证书使用指令中包括满足核身要求的已有证书标识;
采用具有证书使用指令中已有证书标识的证书进行签名。
本说明书提供的一种计算机设备,包括:存储器和处理器;所述存储器上存储有可由处理器运行的计算机程序;所述处理器运行所述计算机程序时,执行数字证书使用的实现方法所述的步骤。
本说明书还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器运行时,执行上述数字证书使用的实现方法所述的步骤。
由以上技术方案可见,本说明书的实施例中,在数字证书申请时,在服务端保存客户端的设备标识、证书标识、该证书的已通过核身方式的对应关系,使得当该证书的已通过核身方式能够满足某项业务对证书的核身要求时,该项业务可以使用该证书而不需申请新的证书,从而在满足业务需求的条件下将证书复用于多项业务,节约了设备的资源,减少了用户操作;
本说明书的实施例中,在数字证书使用时,在服务端维护客户端所在设备标识、已有证书标识、已有证书的已通过核身方式的对应关系,在收到客户端证书使用请求后,根据证书核身要求指定的要素核身方式,基于对应关系查找满足核身要求的已有证书标识,并指令客户端使用满足核身要求的已有证书,使得当客户端的已有证书能够满足某项业务对证书的核身要求时,该项业务可以使用已有证书而不需申请新的证书,从而在满足业务需求的条件下将证书复用于多项业务,节约了设备的资源,减少了用户操作。
附图说明
图1是本说明书实施例一中一种应用在服务端的数字证书申请的实现方法的流程图;
图2是本说明书实施例二中一种应用在服务端的数字证书使用的实现方法的流程图;
图3是本说明书实施例二中一种应用在客户端的数字证书使用的实现方法的流程图;
图4是本说明书应用示例中一种在申请数字证书时,证书SDK模块、证书管理服务器、核身服务器和CA服务器之间的交互流程图;
图5是本说明书应用示例中一种在使用数字证书时,证书SDK模块、证书管理服务器和核身服务器之间的交互流程图;
图6是客户端或服务端所在设备的一种硬件结构图;
图7是本说明书实施例中一种应用在服务端的数字证书申请的实现装置的逻辑结构图;
图8是本说明书实施例中一种应用在服务端的数字证书使用的实现装置的逻辑结构图;
图9是本说明书实施例中一种应用在客户端的数字证书使用的实现装置的逻辑结构图。
具体实施方式
数字证书的可信度通常由颁发证书时用户需要通过的核身方式(身份认证方式)来决定,例如,如果用户在申请证书A时需要通过账户密码和短信两种核身方式的身份认证,在申请证书B时需要通过账户密码、短信和人脸三种核身方式的身份认证,则证书B的可信度高于证书A。很多应用场景中,业务对证书的要求通常也是指定证书要通过的核身方式。如果用户在使用第一项业务时申请的证书能够满足第二项业务对证书的要求,第二项业务可以直接使用该证书而不必申请新的证书,从而减少用户需要申请、客户端需要维护的证书数量。此外,如果已有的证书不能满足一项业务对证书的要求,可以以已有证书的已通过核身方式为基础,由用户补充新的核身方式来已有证书进行升级,使已有证书满足该业务的要求,而无需申请新的证书和令用户重复已经通过的身份认证,进一步减少了用户操作和客户端的证书数量。
本说明书的实施例一提出一种新的数字证书申请的实现方法,客户端在证书申请请求中携带设备标识和证书的核身要求,服务端下发证书并保存设备标识、证书标识和已通过核身方式的对应关系,该对应关系由服务端用来在某个证书的已通过合身方式满足某项业务的核身要求时,将该证书用于该项业务,从而使得证书能够复用于多项业务,减少了客户端的证书数量,也减少了用户申请证书的操作。
本说明书的实施例一和实施例二中,客户端和服务端通过网络相互可访问。其中,客户端可以是设备操作系统中的一个用来在设备层管理证书的功能模块,可以是一个App(应用程序),也可以是App中的一个用来管理该App内证书的功能模块,不做限定。客户端可以运行在各种设备上,如手机、平板电脑、PC(Personal Computer,个人电脑)、笔记本、服务器等设备。服务端可以运行在一个物理或逻辑服务器上,也可以是由两个或两个以上分担不同职责的物理或逻辑服务器、相互协同来实现本说明书实施例中服务端的各项功能。本说明书的实施例一和实施例二对客户端、服务端所在设备的种类,以及客户端与服务端之间通信网络的类型、协议等均不做限定。
本说明书的实施例一和实施例二中,证书的核身要求用来指定一种到多种核身方式,区别起见以下将这些核身方式称之为要素核身方式。例如,一个证书的核身要求为短信和人脸,则该证书有两个要素核身方式,分别是短信和人脸。要素核身方式表达了证书的可信度,在申请该证书时需要通过每种要素核身方式的身份认证。当第一个证书的要素核身方式包含了所有第二个证书的要素核身方式时,第一个证书已经满足了第二证书的核身要求,第一个证书具有的可信度至少不低于第二个证书,用第一个证书代替第二个证书进行数字签名所具有的效率同样至少不低于采用第二个证书的数字签名。
在本说明书的实施例一和实施例二的一些应用场景中,证书的核身要求可以由一个到多个核身方式组构成,每个核身方式组指定一种到多种要素核身方式,证书的核身要求可以由任意一个核身方式组内的所有要素核身方式来构成;也就是说,当核身要求的任意一个核身方式组内的每种要素核身方式都曾经通过身份认证时,即满足了该核身要求。例如,一个证书的核身要求包括2个核身方式组,第一个核身方式组有三个要素核身方式(账户密码、短信和人脸),第二个核身方式组有两个要素核身方式(人脸和指纹),则用户通过账户密码、短信和人脸的身份认证,即满足了该证书的核身要求;用户通过人脸和指纹的身份认证,也同样满足了该证书的核身要求;但是用户只通过了账户密码和人脸的身份认证,由于这两种核身方式的组合与该证书指定的要素核身方式不同,不满足该证书的核身要求。
本说明书的实施例一中,数字证书申请的实现方法的流程如图1所示,该方法应用在服务端。
步骤110,接收客户端的证书申请请求。
当客户端申请新的数字证书时,将客户端所在设备的标识、所申请证书的核身要求封装在证书申请请求中,发送给服务端。证书的核身要求通常由客户端所在设备上要进行的业务来决定。设备标识可以是任何能够唯一代表该设备的信息,如IMEI(International Mobile Equipment Identity,国际移动设备身份码)、UUID(UniversallyUnique Identifier,通用唯一识别码)、MAC(Media Access Control,媒体介入控制)地址等。
服务端从接收的证书申请请求中提取客户端设备标识和证书的核身要求,按照核身要求指示该客户端进行身份认证。
步骤120,在客户端通过核身要求指定的要素核身方式的身份认证后,将证书下发给客户端。
用户在客户端逐一进行证书的核身要求指定的每种要素核身方式的身份验证。在用户成功完成上述每个身份认证过程后,服务端可以获知客户端已经通过每种要素核身方式的身份认证,已经满足核身要求,服务端将客户端的证书下发给客户端。
在步骤110和120中,根据实际应用场景中服务端和客户端的实现、以及对证书申请的安全性要求,服务端指示客户端进行身份认证、客户端进行身份认证、服务端获知客户端通过认证、服务端下发证书的具体过程可以采用不同的交互流程实现,例如现有技术中证书申请过程中的各种交互流程,不再赘述。
步骤130,保存客户端设备标识、下发的证书标识、下发证书的已通过核身方式的对应关系。
服务端将接收下发证书的客户端的设备标识、下发证书的证书标识、和下发证书的已通过核身方式(包括用户在证书申请过程中在客户端通过的每种要素核身方式)的对应关系,保存在可访问的存储位置。其中,证书标识是在服务端能够唯一代表一个证书的信息,例如可以是证书的序列号、证书在服务端证书数据库中的索引等。
在一些应用场景中,可能有不同的用户使用同一个设备来进行业务,或者同一个用户在同一个设备上使用不同的账户来进行业务。在这些应用场景中,客户端在证书申请请求中封装用户标识、所在设备的设备标识和所申请证书的核身要求,服务端保存用户标识、客户端所在设备标识、下发证书标识、和下发证书的已通过核身方式的对应关系。其中,用户标识是在服务端能够唯一代表一个用户账户的信息,例如,用户账户名称、用户账户在服务端的识别码等。这些应用场景中,客户端需要提供用户标识和设备标识,服务端才能在保存的对应关系中查找到已经下发给具有相同设备标识的客户端、并且属于具有该用户标识的用户的证书(即客户端的已有证书)。
可见,本说明书的实施例一中,服务端从客户端在证书申请请求中提取设备标识和证书的核身要求,在客户端通过每种要素核身方式的身份认证后,下发证书并保存设备标识、证书标识和已通过核身方式的对应关系,该对应关系能够在某个证书的已通过核身方式满足某项业务对证书的核身要求时,将该证书复用于该项业务,在满足业务需求的条件下减少了证书数量,节约了设备的资源,减少了用户操作。
本说明书的实施例二提出一种新的数字证书使用的实现方法,服务端根据客户端发送的证书核身要求指定的要素核身方式,在该客户端所在设备的已有证书中查找满足核身要求的已有证书标识,并指令客户端使用满足核身要求的已有证书,从而使得已有证书能够在满足业务需求的前提下复用于多项业务,减少了客户端的证书数量,也减少了用户申请证书的操作。
本说明书的实施例二中,服务端维护有客户端所在设备的设备标识、客户端的已有证书标识和该已有证书的已通过核身方式的对应关系。其中,已有证书是服务端已经下发给该客户端的证书;某个已有证书的已通过核身方式包括在申请和使用该证书的过程中,用户通过身份认证的每种核身方式。
类似于实施例一,在可能有不同的用户使用同一个设备来进行业务,或者同一个用户在同一个设备上使用不同的账户来进行业务的应用场景中,服务端维护有使用客户端的用户标识、客户端所在设备的设备标识、客户端的已有证书标识和该已有证书的已通过核身方式的对应关系。在这些应用场景中,服务端同时采用用户标识和设备标识来查找对应的已有证书标识。
本实施例中,对设备标识、已有证书标识(一种证书标识)、核身要求、要素核身方式的说明请参见实施例一,不再重复。
本说明书的实施例二中,数字证书使用的实现方法运行在服务端的流程如图2所示,运行在客户端的流程如图3所示。
在客户端,步骤310,向服务端发送证书使用请求。
在服务端,步骤210,接收客户端的证书使用请求。
当客户端所在设备进行某项业务,需要使用数字证书时,客户端将所在设备的设备标识(或用户标识及设备标识)、和该项业务对证书的核身要求封装在证书使用请求中,发送给服务端。
在服务端,步骤220,根据维护的对应关系,查找与设备标识对应的、并且满足核身要求的已有证书标识。
服务端从接收的证书使用请求中提取设备标识(或用户标识及设备标识)、和证书的核身要求,在本端维护的对应关系中,找到对应于证书使用请求中设备标识(或对应于用户标识及设备标识)的每个已有证书标识,如果某个已有证书标识的已通过核身方式中包括该证书使用请求携带的核身要求指定的每种要素核身方式,则该已有证书标识为满足该核身要求的已有证书标识。
在服务端,步骤230,向客户端发送证书使用指令,证书使用指令中包括满足核身要求的已有证书标识。
在客户端,步骤320,从服务端接收证书使用指令。
在客户端,步骤330,采用具有证书使用指令中已有证书标识的证书进行签名。
如果服务端找到满足该证书使用请求中核身要求的已有证书标识,则向客户端发送证书使用指令,在证书使用指令中携带满足核身要求的已有证书标识。客户端在收到证书使用指令后,采用证书使用指令中服务端指定的已有证书来进行签名。
如果服务端找到的满足核身要求的已有证书标识超过一个,服务端可以将其中的一个在证书使用指令中发送给客户端;也可以将其中的部分或全部在证书使用指令中发送给客户端,由客户端选择其中的一个已有证书标识,用具有该标识的已有证书来进行签名。
如果与证书使用请求中设备标识对应的(或与用户标识及设备标识对应的)每个已有证书标识都不满足核身要求,服务端在与设备标识对应的(或与用户标识及设备标识对应的)已有证书标识中,查找已通过核身方式与证书使用请求中核身要求指定的要素核身方式中至少有一种核身方式相同的已有证书标识。如果存在这样的已有证书标识,服务端在其中确定一个到多个来将其作为可升级证书标识,可升级证书标识的已通过核身方式与核身要求指定的要素核身方式中有一种到多种核身方式是相同的。如果服务端找不到可升级证书标识,也即当所有已有证书标识的已通过核身方式都与核身要求指定的每种要素核身方式均不相同时,服务端可以指令客户端进行新证书的申请流程(参见实施例一)。
服务端在确定可升级证书标识时,可以将与证书使用请求中设备标识对应的(或与用户标识及设备标识对应的)、升级核身方式数量最少的已有证书标识作为可升级证书标识。如果核身要求包括两个或两个以上的核身方式组,则可以遍历每个核身方式组来发现升级核身方式数量最少的已有证书标识。在一种实现方式中,可以在服务端采用贪婪算法、A*算法(一种用于查找最优解的算法)或Top K算法(一种用来查找最符合要求的K个目标对象的算法)来选择出升级核身方式数量最少的已有证书标识,并确定其中的至少一个作为可升级证书标识。
对每种可升级证书标识,服务端比较证书使用请求中核身要求指定的要素核身方式、与可升级证书标识的已通过核身方式,将要素核身方式中不同于已通过核身方式的所有核身方式作为该可升级证书的升级核身方式。也就是说,升级核身方式是满足核身要求所需要、但某个可升级证书尚未通过的核身方式。
服务端将可升级证书标识的升级核身方式发送给客户端。如果可升级证书标识超过一个,可以由服务端选择其中一个的可升级证书标识的升级核身方式发送给客户端;也可以由服务端将至少两个可升级证书标识及其升级核身方式发送给客户端,当客户端从服务端接收的可升级证书标识超过一个时,可以选择其中一个可升级证书标识,采用所选择的可升级证书标识的每种升级核身方式进行身份认证。在客户端可以由业务运行功能模块来选择可升级证书标识,也可以由用户来选择,本实施例中不做限定。
在一个例子中,当与设备标识对应的(或与用户标识及设备标识对应的)已有证书标识不满足核身要求、并且服务端发现存在可升级证书标识时,向客户端发送已有证书可升级的通知。客户端收到已有证书可升级的通知,提示用户可以对已有的证书采用附加身份认证的方式来进行升级,向用户询问是否进行升级。如果客户端收到用户的确认操作,则向服务端发送已有证书升级的确认;如果收到用户的拒绝操作,则启动新证书的申请流程。服务端收到客户端进行已有证书升级的确认后,再向客户端发送可升级证书标识的升级核身方式。
客户端在从服务端收到至少一个可升级证书标识的升级核身方式后,采用一个可升级证书标识的升级核身方式来进行身份认证。在客户端通过该可升级证书标识的每种升级核身方式的身份认证后,该可升级证书标识已满足证书使用请求中的核身要求,服务端将该可升级证书标识封装在证书使用指令中发送给客户端。客户端收到证书使用指令,采用具有证书使用指令中具有证书使用指令中可升级证书标识的证书进行签名。
这样,当已有证书不能满足某项业务的核身要求时,如果已有证书的已通过核身方式中有与核身要求指定的要素核身方式相同的核身方式,可以通过令用户进行升级核身方式的身份认证,对已有证书进行升级,使其称为满足该项业务核身要求的证书,避免了申请新的证书,并且用户只需进行部分要素核身方式的身份认证,也减少了用户的操作,提高了用户的效率。
类似于实施例一,本实施例中,根据实际应用场景中服务端和客户端的实现、以及对证书申请的安全性要求,客户端进行身份认证、服务端获知客户端通过认证、服务端下发证书使用指令的具体过程可以采用不同的交互流程实现,例如现有技术中证书使用过程中的各种交互流程,不再赘述。
在客户端通过某个可升级证书标识的每种升级核身方式的身份认证后,服务端根据客户端通过的升级核身方式,更新所维护的对应关系中该可升级证书标识的已通过核身方式,在该可升级证书标识的已通过核身方式中添加客户端通过的所有升级核身方式。
可见,在本说明书的实施例二中,在服务端维护客户端所在设备标识、已有证书标识、和已有证书的已通过核身方式的对应关系,服务端根据客户端发送的证书核身要求指定的要素核身方式,在该客户端所在设备的已有证书中查找满足核身要求的已有证书标识,并指令客户端使用满足核身要求的已有证书,使得当客户端的已有证书能够满足某项业务对证书的核身要求时,该项业务可以使用已有证书而不需申请新的证书,减少了客户端的证书数量,也减少了用户申请证书的操作。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
在本说明书的一个应用示例中,第三方支付平台的服务端包括证书管理服务器和核身服务器。第三方支付平台的客户端App运行在用户终端上,App中包括证书SDK(Software Development Kit,软件开发工具包)模块。本应用实例中,新的证书由负责发放、管理和废除数字证书的CA(Certificate Authority,证书认证)机构的CA服务器来发放。
当用户在客户端App内申请证书时,证书SDK模块、证书管理服务器、核身服务器和CA服务器之间的交互流程如图4所示。
证书SDK模块将用户标识、客户端所在设备的标识、业务对证书的核身要求封装在证书申请请求中,发送给证书管理服务器。
证书管理服务器提取证书申请请求中证书核身要求指定的要素核身方式,向核身服务器查询该用户和该设备可用的核身方式。如果核身服务器返回的可用核身方式包括核身要求指定的要素核身方式,证书管理服务器向证书SDK模块返回可用核身方式列表,否则告知SDK模块不支持当前证书的申请。
证书SDK模块收到可用核身方式列表,如果核身要求包括超过一个核身方式组,则按照可用核身方式列表选择一个核身方式组的要素核身方式作为核身要求指定的要素核身方式,告知用户申请证书需要进行哪几项核身方式的身份认证。
通过用户的操作,证书SDK模块与核身服务器逐个采用核身要求指定的要素核身方式进行身份认证。
在用户通过每种要素核身方式的身份认证后,证书SDK模块向证书管理服务器发送核身通过通知。证书SDK模块在核身通过通知中携带证书申请信息,证书申请信息包括所申请证书要求提供的各种信息,如CSR(Cerificate Signing Request,证书请求文件)、公开密钥等。
证书管理服务器向核身服务器查询用户要素核身方式的身份认证结果,在收到核身服务器的确认后,向CA服务器提交证书请求,证书请求中携带CSR、公开密钥、证书SDK模块所在设备的标识等。
在收到CA服务器颁发的证书后,证书管理服务器记录用户标识、设备标识、已有证书序列号(一种已下发证书的证书标识)和该已有证书的要素核身方式的对应关系,并将证书发送给证书SDK模块。
证书SDK模块安装收到的证书,在安装成功后向证书管理服务发送证书安装成功的通知。在收到证书安装成功的通知后,证书管理服务器将记录的对应关系持久化保存起来。
当用户在客户端App内运行某项业务,该业务需要使用证书时,证书SDK模块、证书管理服务器和核身服务器之间的交互流程如图5所示。
用户通过客户端App向证书SDK模块申请数字证书签名,将用户标识、证书的核身要求和待签名原文传递给证书SDK模块。其中,证书的核身要求可以包括两个或两个以上的核身方式组,每个核身方式组可以指定一个到多个要素核身方式。
证书的核身要求可以采用核身方式的逻辑表达式来转义,例如,表达式[SMS&&FACE||IDCARD&&EMAIL&&FINGERPRINT],表示核身要求包括两个核身方式组,第一个核身方式组的要素核身方式是短信和人脸,第二个核身方式组的要素核身方式是身份证、邮件和指纹。
证书SDK模块向证书管理服务器发送证书使用请求,证书使用请求中携带用户标识、设备标识、证书的核身要求和待签名原文。
证书管理服务器在维护的对应关系中,查询对应于用户标识及设备标识的已有证书序列号中,是否有满足核身要求的已有证书序列号。对包括若干核身方式组的核身要求,当已有证书序列号的已通过核身方式包括任意一个核身方式组指定的每种要素核身方式时,该已有证书序列号满足核身要求。证书管理服务器通过动态脚本语言将核身要求转换为可运行的决策逻辑,来对已有证书序列号是否满足核身要求进行判断。
如果存在满足核身要求的已有证书序列号,证书管理服务器向证书SDK模块发送证书使用指令(图5中未示出),携带满足核身要求的已有证书序列号。证书SDK模块使用证书管理服务器在证书使用指令中指定序列号的已有证书进行数字签名(图5中未示出)。
当不存在满足核身要求的已有证书序列号时,证书管理服务器在已有证书序列号中,查找已通过核身方式与核身要求指定的要素核身方式至少有一个相同的已有证书序列号,采用贪婪算法在这些已有证书序列号中挑选出升级核身方式数量最少的作为可升级证书序列号(一种可升级证书标识)。证书管理服务器将可升级证书序列号及其升级核身方式发送给证书SDK模块。
证书SDK模块告知用户有一个已有证书可用来签名,不需要再重新安装,但是需要额外再做一些身份认证,来升级证书。在得到用户的确认操作后,证书SDK模块启动身份认证流程,通过用户的操作,证书SDK模块与核身服务器逐个采用一个可升级证书序列号的升级核身方式进行身份认证。
在用户通过每种升级核身方式的身份认证后,证书SDK模块向证书管理服务器发送核身通过通知。
证书管理服务器向核身服务器查询用户升级核身方式的身份认证结果,在收到核身服务器的确认后,证书管理服务器更新维护的对应关系,将用户通过的升级核身方式添加到对应关系中与用户标识、设备标识对应的已有证书序列号的已通过核身方式中。
证书管理服务器向客户端发送证书使用指令,其中携带服务端生成的签名内容、待签名原文、用户标识、满足核身要求的已有证书序列号、服务端证书签名等。
证书SDK模块在收到证书使用指令后,使用其中指定序列号的已有证书,对签名内容进行签名。
与上述流程实现对应,本说明书的实施例还提供了一种数字证书申请的实现装置、一种应用在服务端的数字证书使用的实现装置、和一种应用在客户端的数字证书使用的实现装置。这三种装置均可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为逻辑意义上的装置,是通过客户端或服务端所在设备的CPU(Central Process Unit,中央处理器)将对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,除了图6所示的CPU、内存以及存储器之外,数字证书申请的实现装置或数字证书使用的实现装置所在的设备通常还包括用于进行无线信号收发的芯片等其他硬件,和/或用于实现网络通信功能的板卡等其他硬件。
图7所示为本说明书实施例提供的一种数字证书申请的实现装置,应用在服务端,所述装置包括证书申请请求接收单元、证书下发单元和对应关系保存单元,其中:证书申请请求接收单元用于接收客户端的证书申请请求,所述证书申请请求中包括客户端的设备标识和所述证书的核身要求;所述核身要求指定至少一种要素核身方式;证书下发单元用于在客户端通过核身要求指定的要素核身方式的身份认证后,将证书下发给客户端;对应关系保存单元用于保存所述设备标识、所述证书标识、所述证书的已通过核身方式的对应关系。
可选的,所述核身要求包括至少一个核身方式组,每个核身方式组指定至少一种要素核身方式;所述核身要求指定的要素核身方式,包括:核身要求的一个核身方式组指定的所有要素核身方式。
可选的,所述证书申请请求中还包括:用户标识;所述保存设备标识、所述证书标识、所述证书的已通过核身方式的对应关系;包括:保存用户标识、所述设备标识、所述证书标识、所述证书的已通过核身方式的对应关系。
图8所示为本说明书实施例提供的一种数字证书使用的实现装置,服务端维护有客户端的设备标识、所述客户端的已有证书标识、所述已有证书的已通过核身方式的对应关系,所述装置包括证书使用请求接收单元、可用证书查找单元和证书复用指令发送单元,其中:证书使用请求接收单元用于接收客户端的证书使用请求,所述证书使用请求中包括客户端的设备标识和所述证书的核身要求;所述核身要求指定至少一种要素核身方式;可用证书查找单元用于根据所述对应关系,查找与所述设备标识对应的、并且满足核身要求的已有证书标识;所述满足核身要求的已有证书标识为:已通过核身方式中包括核身要求指定的每种要素核身方式的已有证书标识;证书复用指令发送单元用于向客户端发送证书使用指令,所述证书使用指令中包括满足核身要求的已有证书标识。
一种实现方式中,所述装置还包括可升级证书标识单元、升级核身方式发送单元和升级证书使用指令发送单元,其中:可升级证书标识单元用于当与所述设备标识对应的已有证书标识不满足核身要求时,确定至少一个与所述设备标识对应的已有证书标识作为可升级证书标识,所述可升级证书标识的已通过核身方式与所述要素核身方式中至少有一种相同;升级核身方式发送单元用于向客户端发送可升级证书标识的升级核身方式,所述升级核身方式为所述要素核身方式中与所述可升级证书标识的已通过核身方式不同的所有核身方式;升级证书使用指令发送单元用于在客户端通过一个可升级证书标识的每种升级核身方式的身份认证后,向客户端发送证书使用指令,所述证书使用指令中包括满足核身要求的可升级证书标识。
上述实现方式中,所述装置还可以包括对应关系更新单元,用于根据客户端通过的升级核身方式,更新所维护的对应关系中所述满足核身要求的可升级证书标识对应的已通过核身方式。
上述实现方式中,所述可升级证书标识单元具体用于:当所述设备标识对应的已有证书标识不满足核身要求时,确定至少一个与所述设备标识对应的、升级核身方式数量最少的已有证书标识作为可升级证书标识。
上述实现方式中,所述可升级证书标识单元确定至少一个与所述设备标识对应的升级核身方式数量最少的已有证书标识,包括:采用贪婪算法、A*算法或Top K算法选择升级核身方式数量最少的已有证书标识。
上述实现方式中,所述可升级证书标识单元具体用于:当与所述设备标识对应的已有证书标识不满足核身要求、并且存在与所述设备标识对应的可升级证书标识时,向客户端发送已有证书可升级的通知;在收到客户端进行已有证书升级的确认后,确定至少一个与所述设备标识对应的已有证书标识作为可升级证书标识。
上述实现方式中,所述升级核身发送单元具体用于:向客户端发送至少两个可升级证书标识及其升级核身方式,供客户端选择其中一个可升级证书标识,采用所选择的可升级证书标识的升级核身方式进行身份认证。
上述实现方式中,所述对应关系包括:用户标识、客户端的设备标识、所述客户端的已有证书标识、所述已有证书的已通过核身方式的对应关系;所述证书使用请求中还包括:用户标识;所述与设备标识对应的已有证书标识包括:所述用户标识、所述设备标识对应的已有证书标识。
可选的,所述核身要求包括至少一个核身方式组,每个核身方式组指定至少一种要素核身方式;所述由核身要求指定的至少一种要素核身方式,包括:核身要求的一个核身方式组指定的所有要素核身方式。
图9所示为本说明书实施例提供的一种数字证书使用的实现装置,包括证书使用请求发送单元、证书复用指令接收单元和证书复用单元,其中:证书使用请求发送单元用于向服务端发送证书使用请求,所述证书使用请求中包括客户端的设备标识和所述证书的核身要求;所述核身要求指定至少一种要素核身方式,供服务端根据维护的客户端的设备标识、已有证书标识、所述已有证书的已通过核身方式的对应关系,查找已通过核身方式中包括所述核身要求指定的每种要素核身方式的、与所述证书使用请求中设备标识对应的已有证书标识;证书复用指令接收单元用于从服务端接收证书使用指令,所述证书使用指令中包括满足核身要求的已有证书标识;证书复用单元用于采用具有证书使用指令中已有证书标识的证书进行签名。
一种实现方式中,所述装置还可以包括升级核身方式接收单元、升级证书使用指令接收单元和升级证书使用单元,其中:升级核身方式接收单元用于从服务端接收至少一个可升级证书标识的升级核身方式;所述可升级证书标识为已通过核身方式与所述要素核身方式中至少有一种相同的、与所述设备标识对应的已有设备标识;所述升级核身方式为所述要素核身方式中与所述可升级证书标识的已通过核身方式不同的所有核身方式;升级证书使用指令接收单元用于在通过一个可升级证书标识的每种升级核身方式的身份认证后,从服务端接收证书使用指令,所述证书使用指令中包括满足核身要求的可升级证书标识;升级证书使用单元用于采用具有证书使用指令中可升级证书标识的证书进行签名。
上述实现方式中,所述升级核身方式接收单元具体用于:从服务端接收已有证书可升级的通知;在收到用户的确认操作后,向服务端发送已有证书升级的确认;从服务端接收至少一个可升级证书标识的升级核身方式。
上述实现方式中,所述装置还可以包括可升级证书选择单元,用于当从服务端接收的可升级证书标识超过一个时,选择其中一个可升级证书标识,采用所选择的可升级证书标识的每种升级核身方式进行身份认证。
上述实现方式中,所述服务端维护的对应关系包括:用户标识、客户端的设备标识、所述客户端的已有证书标识、所述已有证书的已通过核身方式的对应关系;所述证书使用请求中还包括:用户标识;所述与设备标识对应的已有证书标识包括:所述用户标识、所述设备标识对应的已有证书标识。
可选的,所述核身要求包括至少一个核身方式组,每个核身方式组指定至少一种要素核身方式;所述由核身要求指定的至少一种要素核身方式,包括:核身要求的一个核身方式组指定的所有要素核身方式。
本说明书的实施例提供了一种计算机设备,该计算机设备包括存储器和处理器。其中,存储器上存储有能够由处理器运行的计算机程序;处理器在运行存储的计算机程序时,执行本说明书实施例中应用在服务端的数字证书申请的实现方法的各个步骤。对应用在服务端的数字证书申请的实现方法的各个步骤的详细描述请参见之前的内容,不再重复。
本说明书的实施例提供了一种计算机设备,该计算机设备包括存储器和处理器。其中,存储器上存储有能够由处理器运行的计算机程序;处理器在运行存储的计算机程序时,执行本说明书实施例中应用在服务端的数字证书使用的实现方法的各个步骤。对应用在服务端的数字证书使用的实现方法的各个步骤的详细描述请参见之前的内容,不再重复。
本说明书的实施例提供了一种计算机设备,该计算机设备包括存储器和处理器。其中,存储器上存储有能够由处理器运行的计算机程序;处理器在运行存储的计算机程序时,执行本说明书实施例中应用在客户端的数字证书使用的实现方法的各个步骤。对应用在客户端的数字证书使用的实现方法的各个步骤的详细描述请参见之前的内容,不再重复。
本说明书的实施例提供了一种计算机可读存储介质,该存储介质上存储有计算机程序,这些计算机程序在被处理器运行时,执行本说明书实施例中应用在服务端的数字证书申请的实现方法的各个步骤。对应用在服务端的数字证书申请的实现方法的各个步骤的详细描述请参见之前的内容,不再重复。
本说明书的实施例提供了一种计算机可读存储介质,该存储介质上存储有计算机程序,这些计算机程序在被处理器运行时,执行本说明书实施例中应用在服务端的数字证书使用的实现方法的各个步骤。对应用在服务端的数字证书使用的实现方法的各个步骤的详细描述请参见之前的内容,不再重复。
本说明书的实施例提供了一种计算机可读存储介质,该存储介质上存储有计算机程序,这些计算机程序在被处理器运行时,执行本说明书实施例中应用在客户端的数字证书使用的实现方法的各个步骤。对应用在客户端的数字证书使用的实现方法的各个步骤的详细描述请参见之前的内容,不再重复。
以上所述仅为本说明书的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本说明书的实施例可提供为方法、系统或计算机程序产品。因此,本说明书的实施例可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书的实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。