CN115879080A - 证书认证方法及装置 - Google Patents
证书认证方法及装置 Download PDFInfo
- Publication number
- CN115879080A CN115879080A CN202111146415.6A CN202111146415A CN115879080A CN 115879080 A CN115879080 A CN 115879080A CN 202111146415 A CN202111146415 A CN 202111146415A CN 115879080 A CN115879080 A CN 115879080A
- Authority
- CN
- China
- Prior art keywords
- certificate
- terminal
- server
- signature
- authentication
- 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.)
- Pending
Links
Images
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请提供了一种证书认证方法及装置,属于计算机技术领域。本申请中,当终端上更新了新证书时,由于新证书中包含根据该终端的旧证书的私钥生成的签名,因此,认证服务器可以使用终端的旧证书中的公钥来验证终端的新证书中的签名,在新证书中的签名验证通过的情况下,说明该认证请求的新证书是来自该终端的(即,对该终端认证通过),从而在终端上已经切换成新证书时,即使认证服务器上保存的仍然是该终端的老证书,也可以实现对该终端进行证书认证。因而,本申请的方案可以在保证证书认证的安全性的基础上,避免新旧证书切换期间由于终端和认证服务器上证书不同步导致认证失败的情况,从而实现平滑地认证。
Description
技术领域
本申请涉及计算机技术领域,特别涉及一种证书认证方法及装置。
背景技术
证书认证是一种基于数字证书的身份鉴别方式。证书认证涉及三个角色:终端、证书签发服务器以及认证服务器。证书签发服务器负责为终端签发证书。终端会使用签发的证书向认证服务器发起认证流程。认证服务器会根据证书进行认证。
在证书认证场景下经常存在替换证书的需求。例如,当终端使用的证书过期、私钥文件丢失、损坏或发生泄漏等情况发生时,通常需要从证书签发服务器获取新证书,且将旧证书切换为新证书。
目前,在上述过程中,会存在因认证服务器上保存的终端的证书与终端上保存的证书不一致而导致终端认证失败的问题;即,在新旧证书切换期间,现有技术存在无法平滑地进行认证的问题。
发明内容
本申请实施例提供了一种证书认证方法及装置,有助于在新旧证书切换期间实现平滑地认证。所述技术方案如下。
第一方面,提供了一种证书认证方法。从认证服务器的角度来看,所述方法包括:接收来自终端的认证请求,所述认证请求包括第一证书以及所述终端的标识,所述第一证书包括签名;根据保存的标识与证书之间的关联关系,确定与所述终端的标识关联的第二证书;根据所述第二证书的公钥对所述第一证书中的签名进行验证。
在以上方法中,当终端上更新了证书时,由于新证书中包含根据该终端的旧证书的私钥生成的签名,因此,认证服务器可以使用终端的旧证书中的公钥来验证终端的新证书中的签名,在新证书中的签名验证通过的情况下,说明该认证请求的新证书是来自该终端的(即,对该终端认证通过),从而在终端上的证书已经切换成新证书时,即使认证服务器上保存的证书仍然是该终端的老证书,也可以实现对该终端进行证书认证。因而,本申请的方案可以在保证证书认证的安全性的基础上,避免新旧证书切换期间由于终端和认证服务器上证书不同步导致认证失败的情况,从而实现平滑地认证。
可选地,所述根据所述第二证书的公钥对所述第一证书中的签名进行验证包括:
根据所述第二证书的公钥以及所述第一证书中的第一信息,对所述第一证书中的签名进行验证;或者,
根据所述第二证书的公钥及所述终端的标识关联的第二信息,对所述第一证书中的签名进行验证。
可选地,所述第一信息为可识别名DN。
可选地,所述接收来自终端的认证请求之前,所述方法还包括:
接收所述终端的标识和所述第二证书,将所述终端的标识与所述第二证书加入到所述保存的标识与证书之间的关联关系中。
可选地,所述方法还包括:接收第一服务器的证书;根据所述第一服务器的证书,验证所述第一证书是否由所述第一服务器签发。
第一服务器是提供签发证书服务的设备,第一服务器也可以称为证书签发服务器。
认证服务器通过利用签发者(如第一服务器)的证书,验证设备发来的证书是否由特定的签发者签发,从而避免非法机构签发的证书认证通过的情况,进一步提高认证的安全性。
可选地,所述接收来自终端的认证请求之后,所述方法还包括:在所述第一证书中的签名通过验证的情况下,将所述保存的标识与证书之间的关联关系中与所述终端的标识关联的所述第二证书更新为所述第一证书。
认证服务器在发现本地保存的证书为旧证书时,认证服务器通过将本地保存的证书替换为新证书,当后续认证服务器再次接收到终端的认证请求时,认证服务器能够直接使用本地保存的新证书对终端进行认证,从而避免认证服务器后续再次基于旧证书中的公钥对签名进行认证会产生的开销,从而更加便捷和高效。
第二方面,提供了一种证书获取方法,所述方法由终端执行,所述方法包括:
生成证书请求文件,所述证书请求文件包括根据所述终端的原证书的私钥生成的签名;
生成证书签发请求,所述证书签发请求指示第一服务器根据所述证书请求文件签发包括所述签名的证书;
向所述第一服务器发送所述证书签发请求;
接收来自所述第一服务器的目标证书,所述目标证书包括所述签名。
第一服务器是提供签发证书服务的设备,第一服务器也可以称为证书签发服务器。
终端通过使用原证书中的私钥生成签名,在证书请求文件中携带该签名,利用该证书请求文件来请求新证书,从而获得包含原证书的私钥签名的新证书。一方面,方便认证服务器通过原证书的公钥进行签名验证从而验证新证书的合法性,另一方面,能够自动化地替换证书,从而提高替换证书的效率。
可选地,所述签名是根据所述原证书的私钥对所述目标证书中的第一信息进行加密得到的;或者,
所述签名是根据所述原证书的私钥对所述第一信息的哈希值进行加密得到的;或者,
所述签名是根据所述原证书的私钥对所述终端的标识关联的第二信息进行加密得到的;或者,
所述签名是根据所述原证书的私钥对所述第二信息的哈希值进行加密得到的。
可选地,所述第一信息为可识别名DN。
可选地,所述接收来自所述第一服务器的目标证书之后,所述方法还包括:
根据所述目标证书生成认证请求,所述认证请求包括所述终端的标识和所述目标证书;
向第二服务器发送所述认证请求。
第二服务器是提供认证服务的设备,第二服务器也可以称为认证服务器。
可选地,所述向第二服务器发送所述认证请求之前,所述方法还包括:
向所述第二服务器发送所述终端的标识与所述原证书之间的关联关系,以便于所述第二服务器根据所述关联关系确定所述原证书。
可选地,所述向第二服务器发送所述认证请求之前,所述方法还包括:
向所述第二服务器发送所述第一服务器的证书,以便于所述第二服务器根据所述第一服务器的证书验证所述第一证书是否由所述第一服务器签发。
可选地,所述证书签发请求包括所述证书请求文件;或者,所述方法还包括:向所述第一服务器发送所述证书请求文件。
第三方面,提供了一种服务器,该服务器具有实现上述第一方面或第一方面任一种可选方式的功能。该服务器包括至少一个单元,至少一个单元用于实现上述第一方面或第一方面任一种可选方式所提供的方法。
在一些实施例中,服务器中的单元通过软件实现,服务器中的单元是程序模块。在另一些实施例中,服务器中的单元通过硬件或固件实现。第三方面提供的服务器的具体细节可参见上述第一方面或第一方面任一种可选方式,此处不再赘述。
第四方面,提供了一种终端,所述终端包括:
处理单元,用于生成证书请求文件,所述证书请求文件包括根据所述终端的原证书的私钥生成的签名;
所述处理单元,还用于生成证书签发请求,所述证书签发请求指示第一服务器根据所述证书请求文件签发包括所述签名的证书;
发送单元,用于向所述第一服务器发送所述证书签发请求;
接收单元,用于接收来自所述第一服务器的目标证书,所述目标证书包括所述签名。
可选地,所述签名是所述处理单元根据所述原证书的私钥对所述目标证书中的第一信息进行加密得到的;或者,
所述签名是所述处理单元根据所述原证书的私钥对所述第一信息的哈希值进行加密得到的;或者,
所述签名是所述处理单元根据所述原证书的私钥对所述终端的标识关联的第二信息进行加密得到的;或者,
所述签名是所述处理单元根据所述原证书的私钥对所述第二信息的哈希值进行加密得到的。
可选地,所述处理单元,还用于根据所述目标证书生成认证请求,所述认证请求包括所述终端的标识和所述目标证书;
所述发送单元,还用于向第二服务器发送所述认证请求。
可选地,所述发送单元,还用于向所述第二服务器发送所述终端的标识与所述原证书之间的关联关系,以便于所述第二服务器根据所述关联关系确定所述原证书。
可选地,所述发送单元,还用于向所述第二服务器发送所述第一服务器的证书,以便于所述第二服务器验证所述目标证书是否由所述第一服务器签发。
在一些实施例中,终端中的单元通过软件实现,终端中的单元是程序模块。在另一些实施例中,终端中的单元通过硬件或固件实现。第四方面提供的终端的具体细节可参见上述第二方面或第二方面任一种可选方式,此处不再赘述。
第五方面,提供了一种服务器,该服务器包括:处理器,所述处理器与存储器耦合,所述存储器中存储有至少一条计算机程序指令,所述至少一条计算机程序指令由所述处理器加载并执行,以使所述服务器实现上述第一方面或第一方面任一种可选方式所提供的方法。第五方面提供的服务器的具体细节可参见上述第一方面或第一方面任一种可选方式,此处不再赘述。
第六方面,提供了一种终端,该终端包括:处理器,所述处理器与存储器耦合,所述存储器中存储有至少一条计算机程序指令,所述至少一条计算机程序指令由所述处理器加载并执行,以使所述终端实现上述第二方面或第二方面任一种可选方式所提供的方法。第六方面提供的终端的具体细节可参见上述第二方面或第二方面任一种可选方式,此处不再赘述。
第七方面,提供了一种计算机可读存储介质,该存储介质中存储有至少一条指令,该指令在计算机上运行时,使得计算机执行上述第一方面或第一方面任一种可选方式所提供的方法。
第八方面,提供了一种计算机可读存储介质,该存储介质中存储有至少一条指令,该指令在计算机上运行时,使得计算机执行上述第二方面或第二方面任一种可选方式所提供的方法。
第九方面,提供了一种计算机程序产品,所述计算机程序产品包括一个或多个计算机程序指令,当所述计算机程序指令被计算机加载并运行时,使得所述计算机执行上述第一方面或第一方面任一种可选方式所提供的方法。
第十方面,提供了一种计算机程序产品,所述计算机程序产品包括一个或多个计算机程序指令,当所述计算机程序指令被计算机加载并运行时,使得所述计算机执行上述第二方面或第二方面任一种可选方式所提供的方法。
第十一方面,提供了一种芯片,该芯片包括可编程逻辑电路和/或程序指令,当该芯片运行时用于实现如上述第一方面或第一方面的任一可选方式所提供的方法。
第十二方面,提供了一种芯片,该芯片包括可编程逻辑电路和/或程序指令,当该芯片运行时用于实现如上述第二方面或第二方面任一种可选方式所提供的方法。
第十三方面,提供了一种网络系统,该网络系统包括上述第三方面所述的服务器以及第四方面所述的终端,或者该网络系统包括上述第五方面所述的服务器以及第六方面所述的终端。
附图说明
图1是本申请实施例提供的一种证书认证系统的架构示意图;
图2是本申请实施例提供的一种证书认证方法的流程图;
图3是本申请实施例提供的一种证书获取方法的流程图;
图4是本申请实施例提供的一种物联网中身份认证系统的架构示意图;
图5是本申请实施例提供的一种证书认证方法的流程图;
图6是本申请实施例提供的一种申请证书的流程图;
图7是本申请实施例提供的一种基于申请的新证书进行认证的流程图;
图8是本申请实施例提供的一种服务器的结构示意图;
图9是本申请实施例提供的一种终端的结构示意图;
图10是本申请实施例提供的一种服务器的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
下面对本申请实施例涉及的一些术语概念做解释说明。
(1)哈希(hash)运算
哈希运算是一种将任意长度的输入数据通过哈希函数转换为固定长度的输出结果的方式。哈希运算的输出结果即哈希值。哈希运算也称消息摘要或者消息散列。哈希值也称摘要信息、数字摘要或者数字指纹。哈希函数包括而不限于安全散列算法(secure hashalgorithm,SHA)256、信息摘要算法5(message digest algorithm,MD5)等。哈希值的长度通常远小于哈希运算时使用的输入数据。例如,采用SHA256函数得到的哈希值的长度为128位,采用MD5函数得到的哈希值的长度为256位。
(2)数字签名(digital signature,以下简称签名)
签名是指使用私钥对某些信息进行加密从而生成的密文。签名的数据形式例如是一个字符串。基于签名鉴别信息的实现方式包括而不限于以下两种实现方式。
实现方式一、签名者使用私钥对信息本身加密从而生成签名。签名者将信息和签名一起发送给验证者。验证者接收到信息和签名后,验证者使用签名者的公钥对签名进行解密从而得到解密结果。验证者对解密结果和接收到的信息进行比对。如果解密结果和信息一致,则验证者对签名验证通过;如果解密结果和信息不一致,则验证者对签名验证不通过。
实现方式二、签名者对信息进行哈希运算,以得到哈希值1。然后签名者使用签名者的私钥对哈希值1加密从而生成签名。签名者将签名和信息一起发送给验证者。验证者使用签名者的公钥对签名进行解密,得到哈希值1。并且,验证者对接收到的信息进行哈希运算,以得到哈希值2。验证者对解密得到的哈希值1和哈希运算得到的哈希值2进行比对。如果哈希值1和哈希值2一致,则验证者对签名验证通过;如果哈希值1和哈希值2不一致,则验证者对签名验证不通过。
上述实现方式一和实现方式二均能够实现鉴别信息是否来自于合法的签名者的功能。在采用实现方式二的情况下,由于信息的哈希值的长度通常远小于信息本身的长度,从而极大地提高了签名的效率。
(3)证书
证书即数字证书,是计算机网络中用来证明身份的信息,作用相当于日常生活中的身份证。证书包含证书持有者的基本信息以及证书持有者的公钥,可选地还包含证书签发机构(certification authority,CA)对证书的签名、扩展信息(extension)等。其中,CA对证书的签名是使用CA的私钥对证书的摘要进行加密得到的。
(4)证书签名请求(certificate signing request,CSR)文件
CSR文件是一种用于申请数字证书的文件。证书申请者将CSR文件提交给证书颁发机构后,证书颁发机构会使用证书颁发机构的证书的私钥进行签名从而生成证书。CSR文件包含公钥、DN(可识别名,distinguished name)、扩展信息以及数字签名等。例如,CSR文件包括证书请求信息(CertificationRequestInfo)、对证书请求信息的签名以及签名算法的标识。其中,证书请求信息包含DN、公钥和扩展信息。CSR文件中的数字签名是根据证书申请者的私钥生成的,证书颁发机构会对CSR文件中的数字签名进行校验。CSR文件通常和数据传输阶段用于加解密的公钥和私钥同时生成,CSR文件中的公钥和私钥配对使用。CSR文件通常是base64格式编码的文本文件。
(5)可识别名(distinguished name,DN)
DN是证书持有者(用户或设备)的标识。DN包括而不限于证书持有者的通用名称(common name,CN,例如域名)、商业名字(organization,O)、部门名字(organizationalunit,OU)、城镇、省、州、国家名字或者邮箱地址等。
在一些研究中,尝试通过以下流程替换证书:当用户(例如,设备管理员)从证书签发服务器处获取到终端的新证书后,首先,向认证服务器发送终端标识与新证书之间的关联关系;认证服务器接收到新的关联关系后,认证服务器将终端标识关联的证书更新为新证书;然后,用户将新证书烧录到终端上;然后,终端可以使用新证书向认证服务器发起认证请求。
然而,在采用上述方法时,认证服务器更新关联关系与终端烧录新证书这两个过程是相互割裂的,这两个过程并不是无缝的过程。也就是说,从认证服务器更新关联关系到终端烧录新证书(终端获取新证书)是存在一定的时间间隔的,在这个时间间隔中,会因认证服务器上保存的终端的证书与终端上保存的证书不一致而导致终端认证失败的问题,例如,出现认证服务器上保存的与终端关联的证书已经是新证书,而终端上保存的证书仍是旧证书而导致终端认证失败的情况。这就导致,终端在新旧证书切换期间发起认证请求后会认证失败,无法平滑地进行认证。
有鉴于此,本申请实施例提供了一种证书认证方法,当终端上更新了证书时,由于新证书中包含根据该终端的旧证书的私钥生成的签名,因此,认证服务器可以使用终端的旧证书中的公钥来验证终端的新证书中的签名,在新证书中的签名验证通过的情况下,说明该认证请求的新证书是来自该终端的(即,对该终端认证通过),从而在终端上的证书已经切换成新证书时,即使认证服务器上保存的证书仍然是该终端的老证书,也可以实现对该终端进行证书认证。因而,本申请的方案可以在保证证书认证的安全性的基础上,避免新旧证书切换期间由于终端和认证服务器上证书不同步导致认证失败的情况,从而实现平滑地认证,从而解决以上方法产生的问题。
下面对本申请实施例的系统架构举例说明。
图1是本申请实施例提供的一种证书认证系统10的架构示意图。证书认证系统10包括终端11、认证服务器12以及证书签发服务器13。下面通过(1)至(3),对图1中各个设备的典型产品形态、作用、连接关系举例说明。
(1)终端11
在证书认证流程中,终端11充当发起方的角色。具体地,终端11上保存有终端11的证书。终端11根据证书生成认证请求,认证请求包含证书。终端11向认证服务器12发送认证请求,从而触发认证服务器12基于证书认证终端11的身份。
终端11也称用户设备。终端11存在多种可能产品形态。例如,终端11包括而不限于物联网(internet of things,IoT)设备、平板电脑、桌面型电脑、膝上型电脑、笔记本电脑、超级移动个人计算机(Ultra-mobile Personal Computer,UMPC)、手持计算机、上网本、个人数字助理(Personal Digital Assistant,PDA)、手机、智慧城市中的传感器节点(比如,智能水表,智能电表,智能空气检测设备),智慧家居中的智能设备(比如智能摄像头,投影仪,显示屏,电视机,音响,电冰箱,洗衣机等)、娱乐终端(比如增强现实(augmentedreality,AR),虚拟现实(virtual reality,VR)等可穿戴设备),智能办公中智能设备(比如,打印机,投影仪等),车联网中的车联网设备。日常生活场景中的基础设施设备(比如自动售货机,商超的自助导航台,自助收银设备,自助点餐机等)。
可选地,终端11上安装了浏览器软件或者业务客户端软件,终端11通过浏览器软件或者业务客户端软件访问证书签发服务器13提供的证书签发服务和/或认证服务器12提供的认证服务。业务客户端软件包括而不限于物联网应用、游戏客户端、网络购物客户端、即时通讯应用、新闻推送应用、在线视频应用、音频播放应用、社交应用等等。物联网应用包括而不限于工业应用、物流应用和生活应用等。
图1示出的证书认证系统10中存在一个终端的场景仅是举例,证书认证系统10中终端的数量可选地更多或更少。例如终端仅为一个,又如终端为几十个或几百个,或者更多数量,本实施例对终端的数量不做限定。
终端11与证书签发服务器13以及认证服务器12通过有线网络或者无线网络相连。可选地,终端11部署在局域网中,证书签发服务器13以及认证服务器12部署在互联网中。可选地,终端11与证书签发服务器13以及认证服务器12之间的网络连接经过了一个或多个网络设备。网络设备用于转发终端11与证书签发服务器13以及认证服务器12交互的数据。网络设备包括而不限于路由器、交换机、防火墙等。
(2)认证服务器12
认证服务器12用于基于证书认证终端11的身份。在证书认证流程中,认证服务器12充当响应方的角色。具体地,认证服务器12接收终端11发送的认证请求。认证服务器12通过对终端11的证书进行验证,从而完成对终端11的身份认证。可选地,认证服务器12还根据认证结果向终端11发送认证响应,认证响应用于指示认证的结果是认证通过还是认证失败。
可选地,认证服务器12部署有物联网平台,认证服务器12通过物联网平台为终端11上的物联网应用提供后台服务。
图1示出的系统中包含一台认证服务器12的场景仅是举例。可选地,系统中存在多台认证服务器,该多台认证服务器以负载均衡方式为各个终端提供认证服务。
(3)证书签发服务器13
证书签发服务器13用于提供签发证书的服务。具体地,证书签发服务器13接收证书签发请求,响应于该证书签发请求,使用证书签发服务器13的证书为终端11签发证书,将签发的证书发送至终端11。
图1示出的系统中包含一台证书签发服务器13的场景仅是举例,系统中证书签发服务器的数量可选地更多或更少。例如系统中部署有多台证书签发服务器,多台证书签发服务器以负载均衡方式提供证书签发服务。
图1示出的认证服务器12或者证书签发服务器13存在多种可能产品形态。例如,认证服务器12或者证书签发服务器13包括而不限于应用服务器或者网页服务器。应用服务器包括而不限于游戏服务器、视频应用服务器、文件服务器、搜索引擎服务器、即时通信服务器等等。网页服务器也称万维网(world wide web,web)服务器或者网站服务器。证书签发服务器13可选地是独立的物理服务器,或者是多个物理服务器构成的服务器集群或者分布式系统,或者是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(content delivery network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。
认证服务器12和证书签发服务器13的实现方式包括合设和分设。图1以证书签发服务器13和认证服务器12为例进行说明的,即证书签发服务器13和认证服务器12为相互有通信耦合的不同物理设备。在另一些实施例中,在证书签发服务器13和认证服务器12通过合设的方式实现,即证书签发服务器13和认证服务器12位于同一物理设备中,该物理设备既提供证书签发服务,也提供基于证书认证的服务。
以上介绍的终端11、证书签发服务器13以及认证服务器12可选地是独立的硬件设备、或者是包含多个硬件设备的集群或者分布式系统,或者是基于云计算以及网络功能虚拟化(network functions virtualization,NFV)技术所实现的虚拟化设备。虚拟化设备包括而不限于虚拟机或容器。
图2是本申请实施例提供的一种证书认证方法的流程图。该方法的交互主体包括终端和认证服务器。
图2所示方法所基于的系统架构可选地如上述图1所示。例如,结合图1来看,图2所示方法中的终端为图1中的终端11,图2所示方法中的认证服务器为图1中的认证服务器12。
图2所示方法涉及同一个终端的多个证书。为了区分不同的证书,用“第一证书”、“第二证书”区分描述终端不同的证书。可选地,图2所示方法应用于替换终端证书的场景,第二证书是替换前的证书,第一证书是替换后的证书。第二证书也可称为原证书(或者说旧证书),第一证书也可称为目标证书(或者说新证书)。
图2所示方法中一个证书中可选地包含多个签名。为了区分不同的签名,用“第一签名”、“第二签名”区分描述不同的签名。
图2所示方法包括以下S201至S205。
S201、终端生成认证请求。
认证请求用于请求认证终端的身份。认证请求包括第一证书和终端的标识。
第一证书为终端的证书。第一证书包括公钥以及第一签名。终端如何获取第一证书包括多种实现方式,下面结合两种获取第一证书的方式举例说明。
获取方式一、用户向证书签发服务器请求第一证书,用户将证书签发服务器返回的第一证书保存至终端。
例如,当用户(如终端的设备管理员)发现终端的证书过期,或者证书对应的私钥丢失,或者证书损坏或私钥发生泄露等情况时,用户通过全球广域网(World Wide Web,web)界面或者应用程序或者调用应用程序编程接口(Application ProgrammingInterface,API)等方式,向证书签发服务器请求终端的新证书。证书签发服务器响应于用户的请求,为终端签发新证书(终端的新证书即第一证书),向用户提供第一证书。用户获得证书签发服务器返回的第一证书之后,将第一证书通过烧录或者其他方式保存至终端。
获取方式二、终端向证书签发服务器请求第一证书,终端接收证书签发服务器返回的第一证书。
可选地,由终端主动向证书签发服务器发起证书签发请求,从而自动获得第一证书。这种方式的具体流程以及终端发起证书签发请求的触发条件可参考后文中图3对应的介绍。
第一签名是根据终端的第二证书的私钥生成的签名。第一签名的概念解释可参考本文术语概念部分(2)的介绍。第一签名的具体生成方式包括多种实现方式,下面以终端负责生成第一签名为例,结合生成方式A和生成方式B对第一签名的生成方式举例说明。在另一些实施例中,由终端之外的其他实体生成第一签名,例如由用户计算第一签名,比如说由终端的设备管理员计算第一签名。则下述生成方式A和生成方式B中的终端可替换为用户(设备管理员)。
生成方式A、终端以证书包含的信息作为加密对象从而生成第一签名。
可选地,终端具体以第一证书所需包含的信息作为加密对象从而生成第一签名。下面以终端根据第一证书中的第一信息生成第一签名为例进行说明。
第一信息是第一证书包含的任意一种信息,或者第一信息是第一证书包含的任意多种信息的组合。可选地,第一信息为DN。可替代地,第一信息为颁发者名称(如第一服务器的标识),或者第一信息为用户或终端所属的公司名称,或者第一信息为用户或终端所属的部门名称,或者第一信息为用户或终端所在的城市等,本实施例对使用第一证书的哪种信息充当生成签名时使用的第一信息不做限定。第一信息的具体确定方式可参考下文中实现方式(I)和实现方式(II)的介绍。
生成方式A包括而不限于以下生成方式A-1和生成方式A-2。
生成方式A-1、终端根据第二证书的私钥对第一信息进行加密,从而得到第一签名。
生成方式A-2、终端对第一信息进行哈希运算,从而得到第一信息的哈希值。终端根据第二证书的私钥对第一信息的哈希值进行加密,从而得到第一签名。哈希运算的概念可参考本文术语概念解释部分(1)的介绍,在此不做赘述。
可替代地,终端具体以第二证书所需包含的信息作为加密对象从而生成第一签名,相应的,上述生成方式A-1和生成方式A-2中的第一信息替换为第二证书中的某种信息。
生成方式B、终端以与终端的标识关联的第二信息作为加密对象从而生成第一签名。
第二信息的具体类型包括多种情况。可选地,第二信息是终端的标识本身。或者,第二信息不是终端的标识,而是预先与终端的标识建立有关联关系的其他信息。例如,第二信息为用户的标识,比如说,第二信息为用户名、用户的手机号、用户的邮箱地址等。又如,第二信息为终端的IP地址。第二信息的具体确定方式可参考下文中实现方式(I)和实现方式(II)的介绍。
生成方式B包括而不限于以下生成方式B-1和生成方式B-2。
生成方式B-1、终端根据第二证书的私钥对终端的标识关联的第二信息进行加密,得到第一签名。
生成方式B-2、终端对终端的标识关联的第二信息进行哈希运算,从而得到第二信息的哈希值。终端根据第二证书的私钥对第二信息的哈希值进行加密,得到第一签名。
上述第一信息和第二信息的确定方式包括而不限于实现方式(I)和实现方式(II)。
实现方式(I)终端和认证服务器通过协商的方式,确定第一信息或者第二信息。
以终端和认证服务器通过协商的方式确定第二信息为例,在一种可能的实现方式中,协商的流程包括:终端生成协商请求。协商请求用于协商根据第二信息验证第一证书中的签名。可选地,协商请求携带第二信息,或者协商请求携带第二信息的标识。可选地,协商请求携带终端的标识。终端向认证服务器发送协商请求。认证服务器接收协商请求,认证服务器保存第二信息与终端的标识之间的对应关系;认证服务器生成协商应答。协商应答指示同意根据第二信息验证第一证书中的签名。认证服务器向终端发送协商应答。同理地,终端和认证服务器可选地通过协商的方式确定第一信息,则本段描述的协商流程中的第二信息可替换为第一信息。
可选地,上述协商流程在认证第一证书之前执行,或者上述协商流程在认证第一证书的过程中执行,本实施例对上述协商流程的时机不做限定。
实现方式(II)用户分别向终端和认证服务器配置第一信息或者第二信息。
例如,用户分别在终端和认证服务器上通过命令行、web界面、应用、API接口或者其他方式进行配置操作,配置第一信息或第二信息。终端和认证服务器分别根据配置操作,确定第一信息或第二信息。
第一签名在第一证书中的位置包括多种实现方式。可选地,第一证书包括扩展(extension)字段,第一签名携带在第一证书的扩展字段中。可替代地,第一签名携带在第一证书的备注字段或者主体字段中。可替代地,在第一证书中新增一个自定义的第一字段,第一签名携带在第一证书的第一字段中,本实施例对第一签名在第一证书中的位置不做限定。
在一些实施例中,第一证书还包括第二签名。
第二签名是指证书签发者的签名,第二签名用于验证第一证书是否由指定的证书签发者签发。以指定第一服务器充当证书签发者为例,第二签名是第一服务器根据第一服务器的私钥生成的签名。例如,第二签名是第一服务器根据第一服务器的私钥对第一证书(第一证书本身或者第一证书的哈希值)进行加密得到的。
在一些实施例中,第一证书还包括用户的身份信息、颁发者信息或者有效日期等。
终端的标识用于标识终端。终端的标识包括而不限于设备ID(Device ID)、媒体存取控制位址(Media Access Control Address,MAC)地址、国际移动设备身份码(International Mobile Equipment Identity,IMEI)、移动设备识别码(MobileEquipment Identifier,MEID)、电子序列号(Electronic Serial Number,ESN)、通用唯一识别码(Universally Unique Identifier,UUID)、唯一设备标识码(Unique DeviceIdentifier,UDID)等。
第二证书包括公钥。在一些实施例中,第二证书还包括用户的身份信息、颁发者信息或者有效日期等。
第二证书的私钥是指与第二证书包含的公钥配对使用的私钥。换句话说,第二证书的私钥与第二证书包含的公钥组成了一个密钥对。
可选地,由终端负责生成第二证书对应的密钥对。可替代地,由用户生成第二证书对应的密钥对。例如,由用户通过命令行、web界面、应用、API接口或者其他方式对终端触发配置操作,配置第二证书对应的密钥对。其中,第二证书对应的密钥对包括第二证书中的公钥以及该公钥对应的私钥。
S202、终端向认证服务器发送认证请求。
S203、认证服务器接收来自终端的认证请求。
S204、认证服务器根据认证服务器保存的标识与证书之间的关联关系,确定与终端的标识关联的第二证书。
认证服务器解析认证请求,从而获得认证请求携带的终端的标识。认证服务器以终端的标识为索引,查询保存的标识与证书之间的关联关系,从而得到保存的关联关系中与终端的标识关联的第二证书。
标识与证书之间的关联关系包括多个终端的标识以及该多个终端各自的证书。该多个终端包括本实施例中发起认证的终端,可选地还包括认证服务器所服务的其他终端。可选地,认证服务器在接收来自终端的认证请求之前,认证服务器还接收本实施例中发起认证的终端发送的该终端的标识和证书,相应地,认证服务器将接收到的该终端的标识和证书加入到保存的标识与证书之间的关联关系中。
如何向认证服务器提供终端的标识与第二证书之间的关联关系包括多种实现方式。可选地,由用户(如设备管理员)调用认证服务器提供的API接口或者web界面或者其他方式,将终端的标识与第二证书之间的关联关系提供给认证服务器,认证服务器接收用户提供的终端的标识与第二证书之间的关联关系。可替代地,终端向认证服务器发送终端的标识与第二证书之间的关联关系,以便于认证服务器根据关联关系确定第二证书。认证服务器接收终端发送的终端的标识与第二证书之间的关联关系。
S205、认证服务器根据第二证书的公钥对第一证书中的第一签名进行验证。
第二证书的公钥是指第二证书包含的公钥。
认证服务器具体如何验证第一签名包括多种实现方式,下面以验证方式A和验证方式B为例进行说明。验证方式A对应于上文介绍的第一签名的生成方式A。第一签名的验证方式B对应于上文介绍的第一签名的生成方式B。
验证方式A、认证服务器根据第二证书的公钥以及第一证书中的第一信息,验证第一签名。
验证方式A包括而不限于下述验证方式A-1和验证方式A-2。验证方式A-1对应于上文介绍的生成方式A-1。验证方式A-2对应于上文介绍的生成方式A-2。
验证方式A-1、认证服务器从第一证书获得第一信息。认证服务器根据第二证书的公钥对第一签名进行解密,从而得到解密结果。认证服务器对解密结果和第一信息进行比对。如果对解密结果和第一信息一致,则认证服务器对第一签名验证通过;如果解密结果和第一信息不一致,则认证服务器对第一签名验证不通过。
验证方式A-2、认证服务器从第一证书获得第一信息。认证服务器对第一信息进行哈希运算,从而得到第一信息的哈希值。认证服务器根据第二证书的公钥对第一签名进行解密,从而得到解密结果。认证服务器对解密结果和第一信息的哈希值进行比对。如果解密结果和第一信息的哈希值一致,则认证服务器对第一签名验证通过;如果解密结果和第一信息的哈希值不一致,则认证服务器对第一签名验证不通过。
验证方式B、认证服务器根据第二证书的公钥及终端的标识关联的第二信息,验证第一签名。
可选地,认证服务器获取第二信息的实现方式包括:认证服务器以认证请求携带的终端的标识为索引,查询认证服务器上预先保存的标识与验证签名时使用的信息之间的关联关系,从而得到与终端的标识关联的第二信息。
验证方式B包括而不限于下述验证方式B-1和验证方式B-2。验证方式B-1对应于上文介绍的生成方式B-1。验证方式B-2对应于上文介绍的生成方式B-2。
验证方式B-1、认证服务器根据第二证书的公钥对第一签名进行解密,从而得到解密结果。认证服务器对解密结果和第二信息进行比对。如果对解密结果和第二信息一致,则认证服务器对第一签名验证通过;如果解密结果和第二信息不一致,则认证服务器对第一签名验证不通过。
验证方式B-2、认证服务器对第二信息进行哈希运算,从而得到第二信息的哈希值。认证服务器根据第二证书的公钥对第一签名进行解密,从而得到解密结果。认证服务器对解密结果和第二信息的哈希值进行比对。如果解密结果和第二信息的哈希值一致,则认证服务器对第一签名验证通过;如果解密结果和第二信息的哈希值不一致,则认证服务器对第一签名验证不通过。
可选地,在第一证书中的第一签名通过验证的情况下,认证服务器还执行以下S206。
S206、在第一证书中的第一签名通过验证的情况下,认证服务器将保存的标识与证书之间的关联关系中与终端的标识关联的第二证书更新为第一证书。
认证服务器在发现本地保存的证书为旧证书时,认证服务器通过将本地保存的证书替换为新证书,当后续认证服务器再次接收到终端的认证请求时,认证服务器能够直接使用本地保存的新证书对终端进行认证,从而避免认证服务器后续再次基于旧证书中的公钥对签名进行认证会产生的开销,从而更加便捷和高效。
本实施例提供的方法,当终端上更新了证书时,由于新证书中包含根据该终端的旧证书的私钥生成的签名,因此,认证服务器可以使用终端的旧证书中的公钥来验证终端的新证书中的签名,在新证书中的签名验证通过的情况下,说明该认证请求的新证书是来自该终端的(即,对该终端认证通过),从而在终端上的证书已经切换成新证书时,即使认证服务器上保存的证书仍然是该终端的老证书,也可以实现对该终端进行证书认证。因而,本申请的方案可以在保证证书认证的安全性的基础上,避免新旧证书切换期间由于终端和认证服务器上证书不同步导致认证失败的情况,从而实现平滑地认证。
图2所示实施例侧重介绍对第一签名进行验证的过程。可选地,认证服务器不仅对第一签名进行验证,认证服务器还获取证书签发服务器的证书,认证服务器根据证书签发服务器的证书,验证第一证书是否由第一服务器签发。
认证服务器验证第一证书是否由第一服务器签发的实现方式例如包括:认证服务器从证书签发服务器的证书获得证书签发服务器的公钥。认证服务器从第一证书获得第二签名。认证服务器根据证书签发服务器的公钥对第二签名进行验证。第二签名验证通过,表明第一证书是由第一服务器签发的。第二签名验证不通过,表明第一证书不是由第一服务器签发的。第一证书可能是非法机构签发的证书。
验证第二签名的实现方式与验证第一签名的实现方式同理。例如,认证服务器对第一证书进行哈希运算,从而得到第一证书的哈希值。认证服务器根据证书签发服务器的公钥对第二签名进行解密,从而得到解密结果。认证服务器对解密结果和第一证书的哈希值进行比对。如果解密结果和第一证书的哈希值一致,则认证服务器对第二签名验证通过;如果解密结果和第一证书的哈希值不一致,则认证服务器对第二签名验证不通过。
认证服务器如何获取证书签发服务器的证书包括多种实现方式。可选地,由用户(如设备管理员)通过调用认证服务器提供的API接口或者web界面或者其他方式,将证书签发服务器的证书提供给认证服务器,认证服务器接收用户提供的证书签发服务器的证书。可替代地,终端向认证服务器发送证书签发服务器的证书,以便于认证服务器根据证书签发服务器的证书验证第一证书是否由证书签发服务器签发。认证服务器接收终端发送的证书签发服务器的证书。
验证签发关系的过程与对第一签名进行验证的过程的时序存在多种可能情况,下面结合三种情况举例说明。
情况一、认证服务器先执行验证第一证书是否由证书签发服务器签发的过程,后执行对第一签名进行验证的过程。
例如,认证服务器先验证第一证书是否由证书签发服务器签发。在第一证书确实由证书签发服务器签发的情况下,认证服务器再对第一签名进行验证。在第一证书不是由证书签发服务器签发的情况下,认证服务器确定第一证书认证失败,取消执行对第一签名进行验证的过程。
情况二、认证服务器先执行对第一签名进行验证的过程,后执行验证第一证书是否由证书签发服务器签发的过程。
例如,认证服务器先对第一签名进行验证。在第一签名验证通过的情况下,认证服务器再验证第一证书是否由证书签发服务器签发。在第一签名验证不通过的情况下,认证服务器确定第一证书认证失败,取消执行验证第一证书是否由证书签发服务器签发的过程。
情况三、认证服务器同时执行对第一签名进行验证的过程以及验证第一证书是否由证书签发服务器签发的过程。
例如,认证服务器对第一签名进行验证,并验证第一证书是否由证书签发服务器签发。如果第一签名验证不通过或者第一证书不是由证书签发服务器签发,则第一证书认证失败。
如果第一签名验证通过且第一证书是由证书签发服务器签发,则第一证书认证通过。
认证服务器通过验证第一证书是否由第一服务器签发,能够避免非法机构签发的证书认证通过的情况,从而进一步提高安全性。
下面对图2所示方法中描述的第一证书的获取方式二的具体流程进行介绍。
图3是本申请实施例提供的一种证书获取方法的流程图。该方法的交互主体包括终端和证书签发服务器。
可选地,图2所示方法中的终端通过实施图3所示方法,从而自动获得第一证书,节省用户的工作量。
图3所示方法包括多种可能的触发条件。例如,终端监测本地保存的证书中的过期时间。如果当前时间到达证书中的过期时间,或者当前时间与证书中的过期时间之间的时间间隔到达阈值时,则终端启动图3所示方法,从而在证书快到期时自动更新证书。又如,如果终端检测到本地保存的某个证书存在安全风险,例如有木马病毒访问该证书对应的私钥,则终端启动图3所示方法,从而自动更新本地保存的证书。
可选地,终端在执行图3所示方法之前,先输出提示信息,该提示信息用于向用户确认是否更新本次保存的证书。如果终端检测到用户对提示信息的确认操作,则终端启动图3所示方法。
图3所示方法所基于的系统架构可选地如上述图1所示。例如,结合图1来看,图3所示方法中的终端为图1中的终端11,图3所示方法中的证书签发服务器为图1中的证书签发服务器13。
图3所示方法包括以下S301至S307。
S301、终端生成证书请求文件。
证书请求文件用于申请第一证书。证书请求文件例如是CSR文件。证书请求文件包括根据终端的第二证书的私钥生成的第一签名以及第一证书所需包含的信息。例如,证书请求文件包括DN。
S302、终端生成证书签发请求。
S303、终端向证书签发服务器发送证书签发请求。
证书签发请求指示证书签发服务器根据证书请求文件签发包括签名的证书。在一种可能的实现中,证书签发请求包括证书请求文件。在另一种可能的实现中,证书签发请求包括证书请求文件的标识或者证书请求文件的保存地址。证书请求文件的标识例如为证书请求文件的文件名,证书请求文件的保存地址例如为证书请求文件的统一资源定位器(Uniform Resource Locator,URL)地址。在另一种可能的实现中,终端先向证书签发服务器发送证书请求文件,之后终端再向证书签发服务器发送证书请求文件。
S304、证书签发服务器接收来自终端的证书签发请求。
S305、证书签发服务器根据证书请求文件生成包括第一签名的第一证书。
证书签发服务器解析证书请求文件,从而得到证书请求文件包含的第一签名以及第一证书所需包含的信息。证书签发服务器将第一签名以及第一证书的信息写入到初始证书中,从而得到包括第一签名的第一证书。可选地,证书签发服务器还根据证书签发服务器的私钥对第一证书(第一证书本身或者第一证书的哈希值)进行加密,得到第二签名。证书签发服务器将第二签名写入到第一证书中,得到包括第一签名和第二签名的第一证书。
S306、证书签发服务器向终端发送第一证书。
S307、终端接收来自证书签发服务器的第一证书。
本实施例提供的方法,终端通过使用原证书中的私钥生成签名,在证书请求文件中携带该签名,利用该证书请求文件来请求新证书,从而获得包含原证书的私钥签名的新证书。一方面,方便认证服务器通过原证书的公钥进行签名验证从而验证新证书的合法性,另一方面,能够自动化地替换证书,从而提高替换证书的效率。
下面结合物联网平台对物联网设备进行身份认证的场景,对本申请实施例举例说明。
在物联网平台中,证书认证凭借安全可靠的特性,为广大物联网平台所支持,被物联网行业所广泛使用。
在证书认证场景下,当用户客户端使用的证书过期、私钥丢失、私钥损坏或私钥发生泄漏等情况发生时,就需要替换证书。
本实施例为此提供了一种能够安全替换证书的技术方案。在物联网设备与物联网平台使用证书认证方式进行安全信道建立和身份认证的过程中,如果具有替换证书的需要,可使用本实施例解决替换证书的难题。
图4是本申请实施例提供的一种物联网中身份认证系统的架构示意图。图4所示的系统架构中包含物联网设备、物联网平台、用户以及证书签发模块。物联网平台设置有认证模块。
图4是图1的一个具体示例。具体地,图4中的物联网设备是对图1中终端11的举例说明。图4中的物联网平台中部署有图1中的认证服务器12,物联网平台中的认证模块设置于图1中的认证服务器12中。图4中的证书签发模块设置于图1中的证书签发服务器13中。
图4中的各个实体可用于执行图2或图3所示方法。其中,图4中物联网设备是对图2或图3所示方法中的终端的举例说明,图4中物联网平台中部署有图2所示方法中认证服务器,物联网平台中的认证模块设置于图2所示方法中认证服务器中。图4中的证书签发模块设置于图3所示方法中的证书签发服务器13中。
下面结合图4所示的系统架构描述一种证书认证的具体方法,详见下述实例1。
实例1
如图4所示,实例1的详细过程包含如下S401至S407。
S401、用户向证书签发模块申请签发物联网设备的证书。
用户例如是物联网设备所在的厂商中的设备管理员。用户可能管理了多个物联网设备,实例1以用户管理的一个物联网设备为例进行说明。图5是用户、物联网设备、物联网平台与证书签发模块之间的交互流程图,图4中的S401是图5中的S401。
S402、用户通过调用平台的接口、或者web界面或其他预置手段,将物联网设备的证书、签发物联网设备证书的CA的证书、物联网设备的标识等物联网设备的信息、以及物联网设备的标识与物联网设备证书之间的关联关系预置到平台上。
具体地,如图5中的S4021所示,用户从证书签发模块获取CA的证书。如图5中的S4022所示,用户向物联网平台上传CA的证书。如图5中的S4023所示,用户创建物联网设备的标识,向物联网平台上传物联网设备的标识。如图5中的S4024所示,用户向物联网平台上传物联网设备的证书。如图5中的S4025所示,用户建立物联网设备的标识与物联网设备的证书之间的关联关系,向物联网平台上传物联网设备的标识与物联网设备的证书之间的关联关系。
S403、用户将物联网平台的地址、物联网设备的信息(包括而不限于物联网设备的标识)、物联网设备的证书以及证书对应的私钥烧录到物联网设备。
S404、物联网设备连接物联网平台。具体地,物联网设备使用物联网设备的证书及私钥向物联网平台发起连接请求。物联网设备与物联网平台建立安全信道。物联网平台使用预置的CA的证书认证物联网设备的证书通过后,物联网平台校验物联网设备的标识与物联网设备的证书之间的关联关系,从而完成安全信道的建立及平台对设备的认证过程。
S405、用户申请证书签发模块签发新证书。
图6示出了S405的具体流程的示意图,如图6所示,用户生成新证书的密钥对和证书请求文件(如CSR文件)。用户使用摘要算法对证书请求文件中的DN进行哈希运算,从而得到DN的哈希值。用户使用原证书对应的私钥对DN的哈希值进行加密得到签名。用户在证书请求文件中自定义扩展字段,扩展字段承载的内容为前述使用原证书对应的私钥得到的签名。用户将证书请求文件提交给证书签发模块。证书签发模块接收用户提交的证书请求文件,根据证书请求文件签发出新证书,新证书携带了该扩展字段及其内容。
S406、用户替换新证书。
用户通过包括但不限于固件升级等手段,将物联网设备上的原证书以及原证书对应的私钥替换为新证书以及新证书对应的私钥。完成替换后,物联网设备使用新证书及新证书对应的私钥与物联网平台对接。
S407、新证书认证过程。
图7示出了S407的具体流程的示意图,如图7所示,物联网设备使用物联网设备的标识、新证书及对应私钥向物联网平台中的认证模块发送连接请求。连接请求例如为图7中S4071示出的安全套接字协议(Secure Sockets Layer,SSL)/传输层安全(TransportLayer Security,TLS)握手请求。物联网设备与物联网平台建立安全信道。如图7中的S4072所示,物联网平台中的认证模块校验预置的CA证书与新证书是否有签发关系,即新证书是否由证书签发模块签发。如果CA证书与新证书没有签发关系,即新证书并不是由证书签发模块签发的,则认证失败。如果CA证书与新证书有签发关系,即新证书是由证书签发模块签发的,则认证模块执行S4073,校验认证模块保存的关联关系中是否存在与此次通信使用的物联网设备的标识关联的证书。如果认证模块保存的关联关系中不存在与此次通信使用的物联网设备的标识关联的证书,则认证失败。如果认证模块保存的关联关系中存在与此次通信使用的物联网设备的标识关联的证书,则认证模块执行S4074,即,认证模块校验物联网设备的标识关联的证书与此次通信的设备证书是否一致。若物联网设备的标识关联的证书(即原证书)与此次通信的设备证书一致,则认证通过。若物联网设备的标识关联的证书与此次通信的设备证书不一致,则认证模块执行S4075至S4076,即获取此次通信的设备证书中扩展字段的内容,判断此次通信的设备证书是否不存在扩展字段或者此次通信的设备证书的扩展字段是否内容为空。如果此次通信的设备证书不存在扩展字段或者此次通信的设备证书的扩展字段的内容为空,则认证不通过。如果此次通信的设备证书的扩展字段的内容不为空,则认证模块执行S4077,即对此次通信的设备证书的DN进行哈希运算从而获得DN的哈希值。认证模块使用物联网设备的标识关联的证书(即原证书)中的公钥以及DN的哈希值,对此次通信的设备证书的扩展字段中的签名进行验证。如S4078所示,若扩展字段中的签名验证通过,则此次通信的设备证书认证通过。若扩展字段中的签名验证不通过,则此次通信的设备证书认证失败。
总结来看,通过以上各个实施例提供的方法,能够在证书认证场景下,安全平滑地替换证书。进一步地,替换证书过程无需新增接口;并且,替换证书过程不依赖其他认证体系。并且,更新认证方保存的证书与设备之间的关联关系的过程和替换设备的证书以及证书对应的私钥这两个过程不割裂,实现平滑无损地替换;并且,证书替换完成后,新证书生效,老证书立刻失效,从而避免新证书替换后旧证书不失效的情况带来的安全风险。并且,证书签发模块不感知过多信息,从而降低了抢注风险。
图8是本申请实施例提供的一种服务器600的结构示意图,服务器600包括接收单元601和处理单元602。
可选地,结合图1所示的应用场景来看,图8所示的服务器600是图1中的认证服务器12。
可选地,结合图2来看,图8所示的服务器600是图2所示方法流程中的认证服务器,接收单元601用于支持服务器600执行S203,处理单元602用于支持服务器600执行S204至S206。可选地,服务器600还包括存储单元。存储单元用于支持服务器600保存标识与证书之间的关联关系。接收单元601和处理单元602实现上述功能的更多细节请参考前面各个方法实施例中的描述,在这里不再重复。
可选地,结合图4或图5来看,图8所示的服务器600是图4或图5中物联网平台部署的服务器,服务器600中接收单元601和处理单元602用于实现认证模块的功能。
可选地,结合图7来看,图8所示的服务器600用于执行图7所示的方法。
图8所描述的装置实施例仅仅是示意性的,例如,上述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
服务器600中的各个单元全部或部分地通过软件、硬件、固件或者其任意组合来实现。
在采用软件实现的情况下,例如,上述处理单元602是由图10中的至少一个处理器801读取存储器802中存储的程序代码后,生成的软件功能单元来实现。
在采用硬件实现的情况下,例如,图8中上述各个单元由服务器中的不同硬件分别实现,例如处理单元602由图10中的至少一个处理器801中的一部分处理资源(例如多核处理器中的一个核或两个核)实现,或者采用现场可编程门阵列(field-programmable gatearray,FPGA)、或协处理器等可编程器件来完成。接收单元601由图10中的网络接口803实现。
图9是本申请实施例提供的一种终端700的结构示意图,终端700包括处理单元701、发送单元702和接收单元703。
可选地,结合图1所示的应用场景来看,图9所示的终端700是图1中的终端11。
可选地,结合图2来看,图9所示的终端700是图2所示方法流程中的终端,处理单元701用于支持终端700执行S201,发送单元702用于支持终端700执行S202。
可选地,结合图3来看,图9所示的终端700是图3所示方法流程中的终端,处理单元701用于支持终端700执行S301至S302,发送单元702用于支持终端700执行S303。接收单元703用于支持终端700执S307,
处理单元701、发送单元702和接收单元703实现上述功能的更多细节请参考前面各个方法实施例中的描述,在这里不再重复。
图9所描述的装置实施例仅仅是示意性的,例如,上述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
下面对服务器的基本硬件结构举例说明。
图10是本申请实施例提供的一种服务器800的结构示意图。服务器800包括至少一个处理器801、存储器802以及至少一个网络接口803。
可选地,结合图1所示的应用场景来看,图10所示的服务器800是图1中的认证服务器12。
可选地,结合图2来看,图10所示的服务器800是图2所示方法流程中的认证服务器,网络接口803用于支持服务器600执行S203,存储器802用于保存标识与证书之间的关联关系,处理器801用于支持服务器600执行S204至S206。
可选地,结合图4或图5来看,图10所示的服务器800是图4或图5中物联网平台部署的服务器,服务器600中接收单元601和处理单元602用于实现认证模块的功能。
可选地,结合图7来看,图10所示的服务器800用于执行图7所示的方法。处理器801用于支持服务器600执行图7中S4071至S4078。
处理器801例如是通用中央处理器(central processing unit,CPU)、网络处理器(network processer,NP)、图形处理器(graphics processing unit,GPU)、神经网络处理器(neural-network processing units,NPU)、数据处理单元(data processing unit,DPU)、微处理器或者一个或多个用于实现本申请方案的集成电路。例如,处理器801包括专用集成电路(application-specific integrated circuit,ASIC),可编程逻辑器件(programmable logic device,PLD)或其组合。PLD例如是复杂可编程逻辑器件(complexprogrammable logic device,CPLD)、现场可编程逻辑门阵列(field-programmable gatearray,FPGA)、通用阵列逻辑(generic array logic,GAL)或其任意组合。
存储器802例如是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其它类型的静态存储设备,又如是随机存取存储器(random access memory,RAM)或者可存储信息和指令的其它类型的动态存储设备,又如是电可擦可编程只读存储器(electrically erasable programmable read-only Memory,EEPROM)、只读光盘(compactdisc read-only memory,CD-ROM)或其它光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其它磁存储设备,或者是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其它介质,但不限于此。可选地,存储器802独立存在,并通过内部连接804与处理器801相连接。或者,可选地存储器802和处理器801集成在一起。
网络接口803使用任何收发器一类的装置,用于与其它设备或通信网络通信。网络接口803例如包括有线网络接口或者无线网络接口中的至少一项。其中,有线网络接口例如为以太网接口。以太网接口例如是光接口,电接口或其组合。无线网络接口例如为无线局域网(wireless local area networks,WLAN)接口,蜂窝网络网络接口或其组合等。
在一些实施例中,处理器801包括一个或多个CPU,如图10中所示的CPU0和CPU1。
在一些实施例中,服务器800可选地包括多个处理器,如图10中所示的处理器801和处理器805。这些处理器中的每一个例如是一个单核处理器(single-CPU),又如是一个多核处理器(multi-CPU)。这里的处理器可选地指一个或多个设备、电路、和/或用于处理数据(如计算机程序指令)的处理核。
在一些实施例中,服务器800还包括内部连接804。处理器801、存储器802以及至少一个网络接口803通过内部连接804连接。内部连接804包括通路,在上述组件之间传送信息。可选地,内部连接804是单板或总线。可选地,内部连接804分为地址总线、数据总线、控制总线等。
在一些实施例中,服务器800还包括输入输出接口806。输入输出接口806连接到内部连接804上。
可选地,处理器801通过读取存储器802中保存的程序代码810实现上述实施例中的方法,或者,处理器801通过内部存储的程序代码实现上述实施例中的方法。在处理器801通过读取存储器802中保存的程序代码810实现上述实施例中的方法的情况下,存储器802中保存实现本申请实施例提供的方法的程序代码。
处理器801实现上述功能的更多细节请参考前面各个方法实施例中的描述,在这里不再重复。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分可互相参考,每个实施例重点说明的都是与其他实施例的不同之处。
A参考B,指的是A与B相同或者A为B的简单变形。
本申请实施例的说明书和权利要求书中的术语“第一”和“第二”等是用于区别不同的对象,而不是用于描述对象的特定顺序,也不能理解为指示或暗示相对重要性。例如,第一签名和第二签名用于区别不同的签名,而不是用于描述签名的特定顺序,也不能理解为第一签名比第二签名更重要。
本申请实施例,除非另有说明,“至少一个”的含义是指一个或多个,“多个”的含义是指两个或两个以上。
上述实施例可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例描述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘SolidState Disk(SSD))等。
以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
Claims (15)
1.一种证书认证方法,其特征在于,所述方法包括:
接收来自终端的认证请求,所述认证请求包括第一证书以及所述终端的标识,所述第一证书包括签名;
根据保存的标识与证书之间的关联关系,确定与所述终端的标识关联的第二证书;
根据所述第二证书的公钥对所述第一证书中的签名进行验证。
2.根据权利要求1所述的方法,其特征在于,所述根据所述第二证书的公钥对所述第一证书中的签名进行验证包括:
根据所述第二证书的公钥以及所述第一证书中的第一信息,对所述第一证书中的签名进行验证;或者,
根据所述第二证书的公钥及所述终端的标识关联的第二信息,对所述第一证书中的签名进行验证。
3.根据权利要求2所述的方法,其特征在于,所述第一信息为可识别名DN。
4.根据权利要求1至3中任一项所述的方法,其特征在于,所述接收来自终端的认证请求之前,所述方法还包括:
接收所述终端的标识和所述第二证书,将所述终端的标识与所述第二证书加入到所述保存的标识与证书之间的关联关系中。
5.根据权利要求1至4中任一项所述的方法,其特征在于,所述方法还包括:
接收第一服务器的证书;
根据所述第一服务器的证书,验证所述第一证书是否由所述第一服务器签发。
6.根据权利要求1至5中任一项所述的方法,其特征在于,所述接收来自终端的认证请求之后,所述方法还包括:
在所述第一证书中的签名通过验证的情况下,将所述保存的标识与证书之间的关联关系中与所述终端的标识关联的所述第二证书更新为所述第一证书。
7.一种服务器,其特征在于,所述服务器包括:
接收单元,用于接收来自终端的认证请求,所述认证请求包括第一证书以及所述终端的标识,所述第一证书包括签名;
处理单元,用于根据保存的标识与证书之间的关联关系,确定与所述终端的标识关联的第二证书;
所述处理单元,还用于根据所述第二证书的公钥对所述第一证书中的签名进行验证。
8.根据权利要求7所述的服务器,其特征在于,所述处理单元,用于根据所述第二证书的公钥以及所述第一证书中的第一信息,对所述第一证书中的签名进行验证;或者,根据所述第二证书的公钥及所述终端的标识关联的第二信息,对所述第一证书中的签名进行验证。
9.根据权利要求8所述的服务器,其特征在于,所述第一信息为可识别名DN。
10.根据权利要求7至9中任一项所述的服务器,其特征在于,所述接收单元,还用于接收所述终端的标识和所述第二证书;
所述处理单元,还用于将所述终端的标识与所述第二证书加入到所述保存的标识与证书之间的关联关系中。
11.根据权利要求7至10中任一项所述的服务器,其特征在于,所述接收单元,还用于接收第一服务器的证书;
所述处理单元,还用于根据所述第一服务器的证书,验证所述第一证书是否由所述第一服务器签发。
12.根据权利要求7至11中任一项所述的服务器,其特征在于,所述处理单元,还用于在所述第一证书中的签名通过验证的情况下,将所述保存的标识与证书之间的关联关系中与所述终端的标识关联的所述第二证书更新为所述第一证书。
13.一种服务器,其特征在于,所述服务器包括:处理器,所述处理器与存储器耦合,所述存储器中存储有至少一条计算机程序指令,所述至少一条计算机程序指令由所述处理器加载并执行,以使所述服务器实现权利要求1-6中任一项所述的方法。
14.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令,所述指令在计算机上运行时,使得计算机执行如权利要求1至权利要求6中任一项所述的方法。
15.一种计算机程序产品,其特征在于,所述计算机程序产品包括一个或多个计算机程序指令,当所述计算机程序指令被计算机加载并运行时,使得所述计算机执行权利要求1-6中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111146415.6A CN115879080A (zh) | 2021-09-28 | 2021-09-28 | 证书认证方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111146415.6A CN115879080A (zh) | 2021-09-28 | 2021-09-28 | 证书认证方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115879080A true CN115879080A (zh) | 2023-03-31 |
Family
ID=85755758
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111146415.6A Pending CN115879080A (zh) | 2021-09-28 | 2021-09-28 | 证书认证方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115879080A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116707805A (zh) * | 2023-08-07 | 2023-09-05 | 北京云驰未来科技有限公司 | 一种基于云端更换iot设备秘钥的方法及系统 |
-
2021
- 2021-09-28 CN CN202111146415.6A patent/CN115879080A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116707805A (zh) * | 2023-08-07 | 2023-09-05 | 北京云驰未来科技有限公司 | 一种基于云端更换iot设备秘钥的方法及系统 |
CN116707805B (zh) * | 2023-08-07 | 2023-10-20 | 北京云驰未来科技有限公司 | 一种基于云端更换iot设备秘钥的方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7457173B2 (ja) | モノのインターネット(iot)デバイスの管理 | |
CN111010382B (zh) | 在区块链网络中处理数据请求的方法和装置 | |
US10623272B2 (en) | Authenticating connections and program identity in a messaging system | |
US9967290B2 (en) | Systems and methods for automating client-side discovery of public keys of external contacts that are secured by DANE using DNSSEC | |
US20210144017A1 (en) | Method and apparatus for replacing identity certificate in blockchain network, storage medium, and computer device | |
US20130339740A1 (en) | Multi-factor certificate authority | |
US11277404B2 (en) | System and data processing method | |
US20230370265A1 (en) | Method, Apparatus and Device for Constructing Token for Cloud Platform Resource Access Control | |
CN112491776B (zh) | 安全认证方法及相关设备 | |
CN110247758B (zh) | 密码管理的方法、装置及密码管理器 | |
CN113614691A (zh) | 供传统虚拟交付器件使用的连接租用系统和相关方法 | |
JP2024505692A (ja) | ブロックチェーンネットワークに基づくデータ処理方法、装置及びコンピュータ機器 | |
CN110958119A (zh) | 身份验证方法和装置 | |
CN110247917B (zh) | 用于认证身份的方法和装置 | |
TWI569167B (zh) | 安全的統一雲端儲存 | |
CN110365632B (zh) | 计算机网络系统中的认证方法、数据处理设备 | |
US20100011207A1 (en) | Service Oriented Architecture Device | |
CN115879080A (zh) | 证书认证方法及装置 | |
US10972455B2 (en) | Secure authentication in TLS sessions | |
CN115278671A (zh) | 网元鉴权方法、装置、存储介质和电子设备 | |
CN108228280A (zh) | 浏览器参数的配置方法及装置、存储介质、电子设备 | |
US10033535B2 (en) | Multifaceted assertion directory system | |
CN115967508A (zh) | 数据访问控制方法及装置、设备、存储介质、程序产品 | |
WO2021108420A1 (en) | Method and system for facilitating an identification of an application | |
CN115828309B (zh) | 一种服务调用方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |