具体实施方式
下面将详细描述本说明书的各个方面的特征和示例性实施例,为了使本说明书的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本说明书进行进一步详细描述。应理解,此处所描述的具体实施例仅被配置为解释本说明书,并不被配置为限定本说明书。对于本领域技术人员来说,本说明书可以在不需要这些具体细节中的一些细节的情况下实施。下面对实施例的描述仅仅是为了通过示出本说明书的示例来提供对本说明书更好的理解。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
在本说明的一个或多个实施例中,数字证书是经第三方证书授权(CertificateAuthority,CA)机构进行数字签名的包含公开密钥拥有者信息以及公开密钥的文件。本说明书实施例中的第三方CA机构,是指数字证书签发机构和用户证书签发机构。第三方CA机构可以根据证书服务器13提交的证书颁发请求签发证书,以防证书被伪造或篡改,以及对证书和密钥进行管理。
本说明书描述的实施例中,数字证书在需要进行交互信息有效性检验的数字业务场景中,可以实现非对称加密、金融合规性验证以及电子签名等功能。物联网(Internet ofThings,IoT)系统、移动终端和个人计算机(Personal Computer,PC)等互联网环境中的信息载体均可以服务于需要进行信息有效性验证的数据业务场景。
在本说明书的实施例中,用户可以包括通过浏览器处理数字业务的B类用户或C类用户。B类用户例如可以是通过浏览器处理数字业务的企业用户、签约用户等以组织形态存在的用户,C类用户可以是通过浏览器处理数字业务的个人。
在本说明书的实施例中,大量用户由于工作性质,需要使用终端设备上运行的浏览器,基于浏览器的互联网(World Wide Web,WEB)模式在网络环境中进行信息交流及商务活动。由于数字证书本身需要安装在终端设备本地,而浏览器与终端设备本地的数据传输通道的复杂度与稳定性被浏览器的多样化与操作系统的多样性所影响。
随着浏览器技术不断的升级以及不同浏览器中的权限控制,用户需要使用浏览器的控件与证书服务器端进行通讯,以实现数据业务的应用场景中参与各方之间的交互信息有效性的检验。这些浏览器的控件例如可以包括但不限于:网景插件应用程序编程接口(Netscape Plugin Application Programming Interface,NPAPI)、本地客户端(NativeClient)插件、面向对象程序技术和工具ActiveX控件、以及通过单个传输层通信控制协议(Transmission Control Protocol,TCP)连接提供浏览器和证书服务器之间进行全双工通讯(例如双向通信)信道的计算机通信协议WebSocket协议控件。
本说明书的至少一个实施例中,提供一种证书申请方法、装置、终端设备、网关设备和服务器,通过与浏览器的解耦,实现操作系统中数字证书的申请与使用与浏览器无关,使得用户在进行基于浏览器的WEB模式在网络环境中进行参与各方之间的交互信息有效性检验时,解除对浏览器及对浏览器控件的依赖的同时,保证数据业务场景中数据交互信息的可靠性。
本说明书实施例的描述中,数字证书可以包括设备证书和用户证书。其中,设备证书可以理解为用于标识指定的设备,对需要进行数据交互信息验证时使用的设备进行安全验证;用户证书可以理解为用于标识互联网数据业务中用户的身份,以及用于用户身份验证和用户签名。
下面首先通过图1和图2,描述本说明至少一个实施例的设备注册、证书驱动安装以及设备激活的具体流程。图1示出本说明书一个实施例的数字证书管理系统的架构示意图;图2示出本说明书一个实施例的设备注册、证书驱动安装以及设备激活过程中的信令流程示意图。
如图1所示,在一个实施例中,数据证书管理系统10可以包括终端设备12、证书服务器13和第三方证书授权中心14。
其中,终端设备12可以是个人计算机(Personal Computer,PC),例如手机终端、台式计算机、桌面电脑、笔记本电脑、上网本、平板电脑以及超级本等属于个人计算机的范畴。证书服务器13是可以对设备和用户进行身份认证的服务器、服务器集群以及云平台。在本说明书下述实施例的描述中,终端设备12例如可以是PC设备。
用户11,可以包括通过浏览器处理数字业务的B类用户或C类用户。B类用户例如可以是通过浏览器处理数字业务的企业用户、签约用户等以组织形态存在的用户,C类用户可以是通过浏览器处理数字业务的个人。
如图2所示,在一个实施例中,设备注册的步骤具体可以包括:
步骤S101,如图2中“1.1设备注册,设定PIN码”所示,用户在处理数字业务需要使用数字证书时,在数字业务处理的WEB页面上提交设备名称和用户识别码(PersonalIdentification Number,PIN)。由于PIN码由用户设定,只有当前使用设备的用户才知道该PIN码,因此PIN码可以视为用户在本地设置的用户密码,用于标识当前进行设备登录的用户。作为示例,PIN码可以是用户设定的指定位数的数字。
步骤S103,如图2中“1.2身份核身”所示,证书服务器13收到用户的设备注册请求时,触发对用户身份进行核实校验。本说明书实施例中,对用户身份进行核实校验的方式可以有多种,作为示例,身份核身信息可以包括但不限于短信验证码、人脸图像和指纹信息等信息。
步骤S105,如图2中“1.3生成公私钥对”所示,证书服务器13可以通过设备证书的公私钥对。
在该步骤中,生成设备证书的算法包括但不限于非对称加密算法RSA加密算法、椭圆曲线公钥密码算法SM2加密算法等。设备证书的公私钥对可以包括设备证书的公钥和设备证书的私钥。
步骤S107,如图2中“1.4申请设备证书”所示,证书服务器13可以将设备证书的公钥、设备名称和身份核身信息进行封装,生成设备证书注册请求,向第三方CA请求生成设备证书。
步骤S109,如图2中“1.5生成密钥图片”所示,证书服务器13可以基于白盒加密的方式,利用上述步骤S101中上传的PIN码作为加密钥匙,将设备证书的私钥存储在经加密的指定格式的文件中。作为示例,该经加密的指定格式的文件例如可以是加密的图片。
在该步骤中,白盒加密作为一种可以抵御白盒攻击的加密算法技术,可以将设备证书的密钥进行文件混淆,并可以在文件混淆后统一提供加密接口、解密接口、添加设备证书签名的接口以及验证设备证书签名的接口。
步骤S111,如图2中“1.6打包生成可执行文件”所示,证书服务器13可以根据经加密存储的设备证书的私钥的加密文件,打包生成证书驱动的安装文件包。该证书驱动的安装包为可执行文件。
步骤S113,如图2中“1.7返回安装驱动地址”所示,证书服务器13向终端设备12返回安装驱动地址。
继续参考图2,证书驱动安装的步骤具体可以包括:
步骤S115,如图2中“2.1安装驱动包”所示,终端设备12根据安装驱动地址获取证书驱动的安装包,利用证书驱动的安装包安装证书驱动,以将设备证书保存在设备本地。
步骤S117,如图2中“2.2初始化设备证书”所示,用户11在终端设备12安装证书驱动后,开始初始化设备证书。
在该步骤中,初始化设备证书时,用户11输入PIN码,终端设备12将该PIN码作为解密钥匙,通过特定的数学公式还原出设备证书的私钥。
步骤S119,如图1中“2.3采集本地设备信息”所示,终端设备12可以利用设备证书的私钥对采集的设备信息进行设备证书签名。
在该步骤中,设备信息例如可以包括如下信息项的一项或多项:设备的物理地址MAC地址(Media Access Control Address)、设备标识码DeviceID、设备IP地址(InternetProtocol Address)、设备所在的操作系统的操作系统信息、设备所使用网络的网络信息、中央处理器(Central Processing Unit,CPU)信息以及设备签名随机数。
其中,DeviceID时证书驱动安装完成后自动生成的设备标识码,设备签名随机数是进行设备证书签名时随机生成的数字,用于使经本次设备证书签名的原文难以再现,保证设备证书签名的唯一性和数据安全性。
继续参考图2,在一个实施例中,设备激活的步骤具体可以包括:
如图2中“2.4设备激活”所示,终端设备12根据设备证书签名的设备信息,生成设备激活请求,并发送设备激活请求至服务器13。
如图2中“2.5校验设备证书签名”所示,服务器13根据设备激活请求,利用设备证书的公钥对设备证书签名进行验证,如果验证设备签名正确,获取通过设备激活请求上报的设备信息。
如图2中“2.6绑定设备证书和用户”所示,验证设备签名正确时,绑定用户与设备证书。其中,设备证书可以标识设备信息所属的设备,用户为输入PIN码的登录当前设备的用户。
如图2中“2.7设备激活”所示,证书服务器13向终端设备12返回激活完成信息;以及如图2中“2.8设备激活”所示,终端设备12生成提示信息以提示终端设备激活完成。
通过上述实施例的描述,通过设备注册、证书驱动安装以及以及设备激活的具体流程,实现用户与设备证书的绑定。
下面通过图3和图4,描述本说明至少一个实施例的用户证书申请、用户证书安装和用户证书校验的具体流程。图3示出本说明书一个实施例的数字证书管理系统的架构示意图;图4示出本说明书一个实施例的用户证书申请、用户证书安装和用户证书校验的信令流程示意图。图3、图4与图1和图2中相同或等同的结构使用相同的标号。
如图3所示,数字证书管理系统10还可以包括网关15。本说明书实施例中网关15包括实现网络互联的计算机系统或设备。
如图4所示,在一个实施例中,用户证书申请的步骤具体可以包括:
步骤S201,如图4中“1.1启动证书驱动”所示,用户11在终端设备12启动证书驱动。首次启动证书驱动时,在终端设备12提示用户11输入PIN码,利用PIN码确定登录设备的用户。
步骤S203,如图4中“1.2登录设备”所示,证书驱动调用设备证书对包括设备标识ID的设备标识信息进行设备证书签名,将经设备证书签名的设备标识信息上报到证书服务器。
在该步骤中,设备标识信息中还可以包括设备签名随机数。
步骤S205,如图4中“校验设备证书”所示,证书服务器13调用设备证书验证证书签名。
在该步骤中,证书服务器13在验证设备证书签名时,可以利用设备证书与用户的绑定关系,通过使用的设备证书关联到登录设备的用户。
步骤S207,如图4中“1.4返回网关与配置”所示,证书服务器13验证设备证书签名通过时,可以基于设备标识信息中的设备标识ID获取与设备证书绑定的用户的信息,并向该用户登录的设备下发终端设备链接网关的配置信息。
在该步骤中,网关的配置信息可以包括设备标识信息例如设备标识码、网关密钥、网关地址以及网关订阅主题Topic名称。设备标识码用于标识需要建立与网关数据传输通道的设备;网关密钥用于对设备对网关的数据链接请求进行校验,若校验通过,则允许建立该数据传输通道;网关订阅主题名称,用于指示终端设备12需要订阅指定的主题,网关15作为消息生产者,证书服务器13将消息推送到该主题,订阅该主题的终端设备12将收到该消息。
步骤S209,如图4中“1.5长链接和订阅主题”所示,终端设备12向网关15订阅消息主题,以建立网关15与终端设备12之间的数据传输通道。
在一个实施例中,终端设备12与网关15之间的发生数据交互时建立的数据传输通道为基于长链接的数据传输通道,从而避免频繁建立与网关的数据传输通道而造成网络资源的浪费,节约网络资源。
在一个实施例中,网关15支持基于发布主题和/或订阅主题的设备通讯协议,包括消息队列遥测传输协议(Message Queuing Telemetry Transport,MQTT)。MQTT协议是属于物联网的数据传输协议,适用于网络受限环境,使用传输控制协议/因特网互联协议(Transmission Control Protocol/Internet Protocol,TCP/IP)提供网络连接,并可以提供订阅消息模式和发送消息模式,在通过网关提供一对多(例如不同设备)的消息发布时,解除与其他应用程序例如与浏览器控件的耦合。
在本说明书实施例中,基于MQTT协议,终端设备和网关建立数据传输通道后,证书服务器可以作为消息发送方,终端设备可以作为消息订阅方,网关可以作为消息代理方。具体地,当消息发送方发送一个主题对应的消息给消息代理方,消息代理方会将主题对应的消息发送给所有订阅了该主题的消息订阅方。
在本说明书实施例中,可以预先建立证书服务器与网关之间的连接,将网关作为消息代理方,负责接收所有来自证书服务器的消息数据,确定获取的消息数据对应的主题,然后将消息数据发送给订阅该主题的终端设备。
在一个实施例中,消息的主题可以理解为是消息类型,且该消息类型对应一个网关与终端设备之间的数据传输通道,终端设备订阅了主题,就会收到网关转发的该主题的消息内容。
由于MQTT协议采用发布/订阅的消息通讯模式,发布/订阅的消息通讯模式具有服务自发现的特点,通过消息主题的订阅模式,可以将服务器端(消息生产者)和终端设备(消息订阅者)更好的解耦,在利用MQTT进行消息传输的过程中,在终端设备与网关之间建立基于MQTT协议的数据连接通道,证书服务器通过网关向终端设备推送订阅主题对应的消息数据,通讯过程不需要其他配置文件或者是第三方插件支持,从而可以解除通讯双方对浏览器控件的依赖。
在一个实施例中,终端设备12安装证书驱动后,每次启动终端设备12时,可以基于MQTT协议建立终端设备12与网关15之间的长链接。
在下述说明书实施例的描述中,可以将使用MQTT协议的网关简称为MQTT网关;以及将网关向设备传输数据的通道,简称为MQTT网关与设备的下行通道。
在一个实施例中,通过MQTT网关与多个设备进行数据传输时,下行通道进行的数据通讯可以是异步通讯方式。证书服务器将指令发送到MQTT网关,MQTT网关可以通过与设备的双向通讯连接,通过异步调用机制与设备进行数据交换。
在一个实施例中,远程过程调用是使用远程过程调用协议(Remote ProcedureCall Protocol,RPC)的方式,通过网络从远程计算机上请求服务,而不需要了解底层网络技术的技术。
在该实施例中,证书服务器13可以通过网关15与终端设备12之间基于MQTT协议建立的数据传输通道,对设备本地进行远程过程调用,直接向设备推送指令或申请到的证书,从而实现与浏览器兼容性的解耦。
步骤S211,如图4中“1.6启动成功”所示,终端设备12与网关15生成建立数据传输通道后,可以向用户11发送证书驱动启动成功的提示信息。
继续参考图4,在一个实施例中,安装用户证书的步骤具体可以包括:
步骤S213,如图4中“2.1业务触发安装用户证书”所示,用户11在使用浏览器处理数据业务时,根据处理的数据业务触发安装用户证书的步骤和校验用户证书的步骤。
步骤S215,如图4中“2.2身份核实”所示,证书服务器13可以通过核身的方式验证需要申请用户证书的用户的主体信息。
在该步骤中,证书服务器13通过上述步骤S201中用户11输入的PIN码确定登录设备的用户11,以获取用户11的主体信息对该主体信息进行验证。用户的主体信息验证通过时,证书服务器13可以建立设备证书与用户的关联。
步骤S217,如图4中“2.3推送证书下发指令”所示,通过终端设备12与网关15之间建立的数据传输通道,向终端设备12推送用户证书安装指令。
在该步骤中,证书服务器13下达用户证书安装指令时,可以根据登录设备的用户关联到设备,并向该设备下发用户证书安装指令。
在一个实施例中,用户证书安装指令中包括如下推送内容:推送内容挑战码、经核实的证书主体信息和算法信息。其中,挑战码可以用于对用户证书下发指令中的推送内容进行加密验证,保证用户证书下发指令的传输过程用户的真实信息不会被泄露,算法信息用于生成用户证书的密钥对。
步骤S219,如图4中“2.4触发指令”所示,网关15通过与终端设备12之间的数据传输通道,向终端设备12发送该用户证书安装指令。
步骤S221,如图4中“2.5生成用户证书生成请求”所示,终端设备12基于算法信息生成用户证书的公私钥对,用户证书的公私钥对包括用户证书的公钥和用户证书的私钥;终端设备12将用户证书的公钥、经核实的证书主体信息以及用户证书的私钥对用户证书的公钥的签名信息进行封装,得到用户证书生成请求。
步骤S223,如图4中“2.6申请用户证书”所示,证书服务器13接收到用户证书生成请求,将用户证书生成请求转发给第三方CA机构14,请求第三方CA机构14生成用户证书。
步骤S225,如图4中“2.7下发用户证书”所示,证书服务器13将申请到的用户证书下发至终端设备12。
步骤S227,如图4中“2.8本地写入用户证书”所示,终端设备12将接收到的用户证书信息写入设备本地,以完成用户证书安装流程。
继续参考图4,在一个实施例中,校验用户证书的步骤具体可以包括:
步骤S229,如图4中“3.1业务触发校验用户证书”所示,用户11在使用浏览器处理数据业务时,根据处理的数据业务需要证书服务器13对用户证书进行校验。
步骤S231,如图4中“3.2生成证书签名指令”所示,证书服务器13生成用户证书签名指令,用户证书签名指令中的封装信息包括根据处理的数据业务生成的待签名原文、用户签名随机数、用户签名挑战码、设备标识码和用户证书编码等信息。
在该步骤中,证书服务器13下发用户证书签名指令时,是基于用户11所登录的设备进行的信息推送。
步骤S233,如图4中“3.3推送签名指令”所示,证书服务器13将用户证书签名指令下发到网关15。
步骤S235,如图4中“3.4触发签名指令”所示,网关15通过与终端设备12之间的数据传输通道,将用户证书签名指令发送到终端设备12。
步骤S237,如图4中“3.5用户证书签名”所示,终端设备12收到用户证书签名指令,基于用户证书编码选择对应的用户证书,以利用用户证书的私钥对待签名原文进行用户证书签名。
步骤S239,如图4中“3.6上报签名信息”所示,终端设备12将经用户证书签名的上报证书服务器13。
步骤S241,如图4中“3.7校验用户签名”所示,证书服务器13利用用户证书的公钥对用户签名进行验证,以验证用户证书。
步骤S243,如图4中“3.8业务校验证书完成”所示,证书服务器13验证用户证书成功时,向终端设备12返回校验用户证书成功的提示信息。
在本说明上述实施例描述的用户证书申请、用户证书安装和用户证书校验中,可以通过基于发布/订阅主题的设备通讯协议例如MQTT协议的网关与设备的下行数据传输通道,将信息推送至设备本地,从而实现用户证书与浏览器的兼容性解耦。
图5是示出根据本说明书一个实施例的证书申请方法的流程图。如图5所示,本说明书实施例中的证书申请方法500包括以下步骤:
步骤S510,通过终端设备与网关之间的数据传输通道,接收来自证书服务器的证书下发指令,数据传输通道是根据终端设备发送至网关的订阅主题名称建立的通道。
步骤S520,根据证书下发指令生成用户证书请求,发送用户证书请求至证书服务器。
步骤S530,通过数据传输通道接收证书服务器下发的用户证书。
根据本说明书实施例的证书申请方法,设备可以根据与网关之间的数据传输通道,接收来自证书服务器的证书下发指令和用户证书,从而提供一种更可靠的使用用户数字证书的方案,实现操作系统维度下数字证书的使用与浏览器的兼容。
在一个实施例中,证书下发指令,是证书服务器根据接收浏览器所请求业务的业务类型生成的,浏览器运行于终端设备。
在一个实施例中,证书申请方法500还可以包括:
步骤S540,接收证书服务器发送的网关配置信息,网关配置信息包括:设备标识码、网关密钥、网关地址和订阅主题名称,设备标识码用于标识终端设备。
步骤S542,根据网关密钥和网关地址,建立终端设备与网关的链接。
步骤S544,向网关发送设备标识码和订阅主题名称,以建立与订阅主题名称对应的数据传输通道,数据传输通道用于向终端设备传输与订阅主题名称对应的消息数据。
在该实施例中,终端设备可以通过接收的网关配置信息,建立与网关的数据传输通道,其中,网关支持基于发布主题和/或订阅主题的设备通讯协议。
在一个实施例中,设备通讯协议包括消息队列遥测传输协议。
在一个实施例中,步骤S520具体可以包括:
步骤S521,获取证书下发指令中的推送内容,推送内容包括推送内容挑战码、经核实的证书主体信息和算法信息。
步骤S523,通过算法信息生成用户证书密钥对,利用用户证书密钥对中的私钥,对用户证书密钥对中的公钥进行数字签名,得到具有用户证书签名的公钥。
步骤S525,封装具有用户证书签名的公钥和经核实的证书主体信息,得到用户证书请求。
在该实施例中,终端设备根据证书服务器推送的证书下发指令中的推送内容,生成用户证书的密钥对,并利用用户证书的私钥对用户证书的公钥进行签名后,生成用户证书请求,以使证书服务器根据该用户证书请求向第三方CA申请签发用户证书。
在一个实施例中,证书申请方法500还可以包括:
步骤S550,通过该数据传输通道接收用户证书签名指令,获取用户证书签名指令中的签名校验原文、设备标识码以及用户证书编号。
步骤S552,在具有设备标识码的终端设备,选择用户证书编码对应的用户证书,利用所选择的用户证书的密钥对中的私钥,对签名校验原文进行签名,得到具有用户证书签名的签名校验原文。
步骤S554,向证书服务器发送具有用户证书签名的签名校验原文,以用于校验用户证书。
在该实施例中,终端设备使用用户证书对签名校验原文进行签名后,请求证书服务器校验用户证书签名。
在一个实施例中,证书申请方法500还可以包括:
步骤S560,向证书服务器提交设备名称和输入的用户识别码,输入的用户识别码用于申请设备证书时的用户身份校验,设备名称用于标识申请的设备证书所属的终端设备。
步骤S562,通过接收的驱动安装地址以获取驱动安装文件,利用驱动安装文件安装证书驱动,得到驱动安装文件中打包的设备证书和经加密的密钥文件。
步骤S564,根据再次提交的用户标识码,对经加密的密钥文件进行解密,得到设备证书的密钥对中的私钥。
在该实施例中,终端设备向证书服务器请求安装设备证书,获取设备证书的密钥文件。
在一个实施例中,证书申请方法500还可以包括:
步骤S570,利用设备证书的密钥对中的私钥对获取的设备信息进行数字签名,得到具有设备证书签名的设备激活信息。
步骤S572,向证书服务器发送设备激活信息,以进行设备证书激活。
步骤S574,建立用户识别码所标识的用户与设备证书的映射关系。
在一个实施例中,设备名称和输入的用户识别码,是证书服务器通过浏览器的信息采集页面提交的信息,信息采集页面是证书服务器在浏览器处理的业务需要使用设备证书时生成的。
在该实施例中,终端设备向服务器请求设备证书激活,设备证书激活后,进行用户与设备证书的绑定,形成用户与设备证书之间的映射关系。
图6是示出根据本说明书一个实施例的证书申请方法的流程图。如图6所示,本说明书实施例中的证书申请方法600包括以下步骤:
步骤S610,接收来自证书服务器的消息数据,消息数据包括证书下发指令、用户证书或用户证书签名指令。
步骤S620,确定与消息数据对应的订阅主题名称,选择与订阅主题名称对应的数据传输通道,数据传输通道是根据终端设备发送至网关的订阅主题名称建立的通道。
步骤S630,利用数据传输通道发送消息数据。
作为一个示例,网关接收来自证书服务器的证书下发指令;确定与证书下发指令对应的订阅主题名称,选择与订阅主题名称对应的数据传输通道,利用网关与终端设备的数据传输通道,将证书下发指令发送至终端设备。
根据本说明书实施例的证书申请方法,网关将接收到的来自证书服务器的指令,通过与终端设备之间的据传输通道推送到终端设备,数据传输过程不使用浏览器控件,实现与浏览器兼容性的解耦。
在一个实施例中,证书申请方法600还可以包括:
步骤S650,接收来自终端设备的网关密钥。
步骤S652,对网关密钥验证通过时,建立终端设备与网关之间的链接。
步骤S654,接收设备标识码和订阅主题名称,建立与订阅主题名称对应的数据传输通道,设备标识码用于标识终端设备。
在该实施例中,验证网关密钥无误后,通过订阅主题的方式,建立网关向终端设备的下行数据传输通道,将证书服务器下发的指令传输到终端设备。
在一个实施例中,证书申请方法600还可以包括:
步骤S660,网关接收来自证书服务器的用户证书签名指令,用户证书签名指令用于校验用户证书。
步骤S662,利用与终端设备的数据传输通道,将用户证书签名指令发送至终端设备。
在一个实施例中,网关支持基于发布主题和/或订阅主题的设备通讯协议,设备通讯协议包括消息队列遥测传输协议。
在一个实施例中,数据传输通道是基于消息队列遥测传输协议建立的数据传输通道。
图7示出了根据本说明书另一实施例的证书申请方法的流程图。如图7所示,本说明书实施例中的证书申请方法700包括以下步骤:
步骤S710,向预先建立链接的网关发送证书下发指令,以使网关通过与终端设备的之间数据传输通道,向终端设备发送证书下发指令,其中,数据传输通道是根据终端设备发送至网关的订阅主题名称建立的通道,订阅主题名称对应的消息数据包括证书下发指令。
步骤S720,接收与证书下发指令对应的用户证书注册请求,根据用户证书注册请求申请用户证书。
步骤S730,向网关发送申请到的用户证书,以使网关通过数据传输通道,向终端设备发送用户证书。
根据本说明书实施例的证书申请方法,证书服务器向网关推送指令,以使网关通过与终端设备的数据传输通道,向终端设备传输该指令,数据传输过程不使用浏览器控件,实现与浏览器兼容性的解耦。
在一个实施例中,步骤S710具体可以包括:
步骤S711,确定接收的用户识别码所标识的设备登录用户。
步骤S713,接收具有设备证书签名的设备标识信息,获取设备标识信息对应的设备证书的密钥对。
步骤S715,利用设备证书的密钥对中的公钥,验证设备证书签名。
步骤S717,如果设备证书签名的验证结果为通过,从与设备证书具有映射关系的用户的身份信息中,获取设备登录用户的身份信息。
步骤S719,在设备登录用户的身份信息核实成功的情况下,向网关发送证书下发指令。
在该实施例中,证书服务器核实用户身份信息后,通过网关向终端设备推送证书下发指令,以使终端设备根据该证书下发指令生成用户证书请求。
在一个实施例中,证书申请方法700还可以包括:
步骤S740,如果设备证书签名的验证结果为通过,向终端设备下发网关配置信息,以使终端设备基于网关配置信息与网关建立数据传输通道。
在一个实施例中,证书申请方法700还可以包括:
步骤S750,根据接收的用户证书校验请求,确定用户证书的签名校验原文。
步骤S752,确定接收的用户识别码所标识的设备登录用户,获取设备登录用户所登录设备的设备标识信息和设备登录用户的用户证书编号。
步骤S754,封装签名校验原文、所登录设备的设备标识信息以及用户证书编码,得到用户证书签名指令,用户证书签名指令用于对用户证书进行校验。
步骤S756,向网关发送用户证书签名指令,以使网关通过数据传输通道,向终端设备发送用户证书签名指令。
在该实施例中,证书服务器通过网关与终端设备之间的数据传输通道,向终端设备推送用户证书签名指令。
在一个实施例中,证书申请方法700还可以包括:
步骤S760,接收具有用户证书签名的签名校验原文,根据用户证书的密钥对中的公钥,验证用户证书签名。
在一个实施例中,证书申请方法700还包括:
步骤S770,基于接收的设备名称和用户识别码,为设备名称对应的终端设备申请设备证书,确定设备证书的密钥对。
步骤S772,利用设备证书的密钥对中的私钥,生成设备证书的驱动安装文件,向终端设备发送驱动安装文件。
步骤S774,接收具有设备证书签名的设备激活信息,利用设备证书的密钥对中的公钥,验证设备证书签名。
步骤S776,设备证书签名验证通过时,根据设备激活信息,确定通过用户识别码识别的登录用户为与设备证书绑定的用户。
在该实施例中,证书服务器可以申请设备证书后,可以向终端设备发送证书驱动,并对设备证书进行激活。
在一个实施例中,步骤S770具体可以包括:
步骤S770-01,确定接收的用户识别码所标识的设备登录用户,核实设备登录用户的身份信息。
步骤S770-03,设备登录用户的身份信息核实成功时,生成用于申请设备证书的密钥对。
步骤S770-05,根据用于申请设备证书的密钥对中的公钥、设备名称、以及设备登录用户的身份信息,生成设备证书请求,以根据设备证书请求申请设备证书。
步骤S770-07,将申请到的设备证书的密钥对作为设备证书的密钥对。
在一个实施例中,证书服务器对用户身份信息进行核实后,申请设备证书并确定设备证书的公私钥对。
在一个实施例中,步骤S772具体可以包括:
步骤S772-01,通过指定的密钥加密方法,对设备证书的密钥对中的私钥进行加密,得到经加密的密钥文件。
在该步骤中,可以利用白盒加密技术,使用用户识别码作为静态加密密钥,对设备证书的密钥对中的私钥进行加密,得到经加密的密钥文件。
步骤S772-03,打包设备证书和经加密的密钥文件,得到设备证书的驱动安装文件。
根据本说明书实施例的证书申请方法,证书服务器可以消息队列遥测传输协议向网关推送消息,以利用网关与终端设备本地建立的数据传输通道进行通信,降低浏览器控件的信息交互收到浏览器兼容性影响的问题,实现数字证书与浏览器解耦。
图8示出了根据本说明书一实施例的证书申请装置的结构示意图。如图8所示,在一个实施例中,证书申请装置800可以包括:
证书下发指令接收模块810,用于通过终端设备与网关之间的数据传输通道,接收来自证书服务器的证书下发指令,数据传输通道是根据终端设备发送至网关的订阅主题名称建立的通道。
用户证书请求发送模块820,用于根据证书下发指令生成用户证书请求,发送用户证书请求至证书服务器。
用户证书接收模块830,用于通过数据传输通道接收证书服务器下发的用户证书。
在一个实施例中,证书下发指令,是证书服务器根据接收浏览器所请求业务的业务类型生成的,浏览器运行于终端设备。
在一个实施例中,证书申请装置800还可以包括:
网关配置接收模块,用于接收证书服务器发送的网关配置信息,网关配置信息包括:设备标识码、网关密钥、网关地址和订阅主题名称,设备标识码用于标识终端设备。
网关地址登录模块,用于根据网关密钥和网关地址,建立终端设备与网关的链接。
数据通道建立模块,用于向网关发送设备标识码和订阅主题名称,以建立与订阅主题名称对应的数据传输通道,数据传输通道用于向终端设备传输与订阅主题名称对应的消息数据。
在一个实施例中,证书申请装置800,其中,
设备通讯协议包括消息队列遥测传输协议,数据传输通道是基于消息队列遥测传输协议建立的数据传输通道。
在一个实施例中,用户证书请求发送模块820包括:
推送内容获取单元,用于获取证书下发指令中的推送内容,推送内容包括推送内容挑战码、经核实的证书主体信息和算法信息。
用户密钥对生成单元,用于通过算法信息生成用户证书密钥对,利用用户证书密钥对中的私钥,对用户证书密钥对中的公钥进行数字签名,得到具有用户证书签名的公钥。
用户证书请求单元,用于封装具有用户证书签名的公钥和经核实的证书主体信息,得到用户证书请求。
在一个实施例中,证书申请装置800还可以包括:
用户签名指令接收模块,用于通过数据传输通道接收用户证书签名指令,获取用户证书签名指令中的签名校验原文、设备标识码以及用户证书编号。
用户证书签名模块,用于在具有设备标识码的终端设备,选择用户证书编码对应的用户证书,利用所选择的用户证书的密钥对中的私钥,对签名校验原文进行签名,得到具有用户证书签名的签名校验原文。
用户签名原文发送模块,用于向证书服务器发送具有用户证书签名的签名校验原文,以用于校验用户证书。
在一个实施例中,证书申请装置800还可以包括:
用户输入信息提交模块,用于向证书服务器提交设备名称和输入的用户识别码,输入的用户识别码用于申请设备证书时的用户身份校验,设备名称用于标识申请的设备证书所属的终端设备。
证书驱动安装模块,用于通过接收的驱动安装地址以获取驱动安装文件,利用驱动安装文件安装证书驱动,得到驱动安装文件中打包的设备证书和经加密的密钥文件。
设备证书私钥获取模块,用于根据再次提交的用户标识码,对经加密的密钥文件进行解密,得到设备证书的密钥对中的私钥。
在一个实施例中,证书申请装置800还可以包括:
设备证书签名模块,用于利用设备证书的密钥对中的私钥对获取的设备信息进行数字签名,得到具有设备证书签名的设备激活信息。
设备激活信息发送模块,用于向证书服务器发送设备激活信息,以进行设备证书激活。
映射关系建立模块,用于建立用户识别码所标识的用户与设备证书的映射关系。
在一个实施例中,设备名称和输入的用户识别码,是证书服务器通过浏览器的信息采集页面提交的信息,信息采集页面是证书服务器在浏览器处理的业务需要使用设备证书时生成的。
图9示出了根据本说明书一实施例的证书申请装置的结构示意图。如图9所示,在一个实施例中,证书申请装置900可以包括:
消息数据接收模块910,用于接收来自证书服务器的消息数据,消息数据包括证书下发指令、用户证书或用户证书签名指令。
数据传输通道选择模块920,用于确定与消息数据对应的订阅主题名称,以及与订阅主题名称对应的数据传输通道,数据传输通道是根据终端设备发送至网关的订阅主题名称建立的通道。
消息数据发送模块930,用于利用数据传输通道发送消息数据。
在一个实施例中,证书申请装置900还可以包括:
密钥接收模块,用于接收来自终端设备的网关密钥。
密钥验证模块,用于对网关密钥验证通过时,建立终端设备与网关之间的链接。
主题订阅模块,用于接收设备标识码和订阅主题名称,建立与订阅主题名称对应的数据传输通道,设备标识码用于标识终端设备。
在一个实施例中,网关支持基于发布主题和/或订阅主题的设备通讯协议,设备通讯协议包括消息队列遥测传输协议。
在一个实施例中,数据传输通道是基于消息队列遥测传输协议建立的数据传输通道。
图10示出了根据本说明书另一实施例的证书申请装置的结构示意图。如图10所示,在一个实施例中,证书申请装置1000可以包括:
证书下发指令发送模块1010,用于向预先建立链接的网关发送证书下发指令,以使网关通过与终端设备的之间数据传输通道,向终端设备发送证书下发指令,其中,数据传输通道是根据终端设备发送至网关的订阅主题名称建立的通道,订阅主题名称对应的消息数据包括证书下发指令。
用户证书申请模块1020,用于接收与证书下发指令对应的用户证书注册请求,根据用户证书注册请求申请用户证书。
用户证书发送模块1030,用于向网关发送申请到的用户证书,以使网关通过数据传输通道,向终端设备发送用户证书。
在一个实施例中,证书下发指令发送模块1010具体可以包括:
登录用户识别单元,用于确定接收的用户识别码所标识的设备登录用户。
设备证书密钥对获取单元,用于接收具有设备证书签名的设备标识信息,获取设备标识信息对应的设备证书的密钥对。
设备证书签名验证单元,用于利用设备证书的密钥对中的公钥,验证设备证书签名。
用户身份信息获取单元,用于如果设备证书签名的验证结果为通过,从与设备证书具有映射关系的用户的身份信息中,获取设备登录用户的身份信息。
第一用户身份核实单元,用于在设备登录用户的身份信息核实成功的情况下,向网关发送证书下发指令。
在一个实施例中,证书申请装置1000还可以包括:
网关配置信息发送单元,用于如果设备证书签名的验证结果为通过,向终端设备下发网关配置信息,以使终端设备基于网关配置信息与网关建立数据传输通道。
在一个实施例中,证书申请装置1000还可以包括:
用户签名原文确定模块,用于根据接收的用户证书校验请求,确定用户证书的签名校验原文。
用户签名封装内容确定模块,用于确定接收的用户识别码所标识的设备登录用户,获取设备登录用户所登录设备的设备标识信息和设备登录用户的用户证书编号。
用户签名指令生成模块,用于封装签名校验原文、所登录设备的设备标识信息以及用户证书编码,得到用户证书签名指令,用户证书签名指令用于对用户证书进行校验。
用户签名指令发送模块,用于向网关发送用户证书签名指令,以使网关通过数据传输通道,向终端设备发送用户证书签名指令。
在一个实施例中,证书申请装置1000还可以包括:
用户证书签名验证模块,用于接收具有用户证书签名的签名校验原文,根据用户证书的密钥对中的公钥,验证用户证书签名。
在一个实施例中,证书申请装置1000还可以包括:
设备证书申请模块,用于基于接收的设备名称和用户识别码,为设备名称对应的终端设备申请设备证书,确定设备证书的密钥对。
证书驱动生成模块,用于利用设备证书的密钥对中的私钥,生成设备证书的驱动安装文件,向终端设备发送驱动安装文件。
设备签名验证模块,用于接收具有设备证书签名的设备激活信息,利用设备证书的密钥对中的公钥,验证设备证书签名。
用户与设备绑定模块,用于设备证书签名验证通过时,根据设备激活信息,确定通过用户识别码识别的登录用户为与设备证书绑定的用户。
在一个实施例中,设备证书申请模块具体可以包括:
第二用户身份核实单元,用于确定接收的用户识别码所标识的设备登录用户,核实设备登录用户的身份信息。
设备证书密钥对生成单元,用于设备登录用户的身份信息核实成功时,生成用于申请设备证书的密钥对。
设备证书请求单元,用于根据用于申请设备证书的密钥对中的公钥、设备名称、以及设备登录用户的身份信息,生成设备证书请求,以根据设备证书请求申请设备证书。
设备证书密钥对确定单元,用于将申请到的设备证书的密钥对作为设备证书的密钥对。
在一个实施例中,证书驱动生成模块具体可以包括:
设备证书私钥加密单元,用于通过指定的密钥加密方法,对设备证书的密钥对中的私钥进行加密,得到经加密的密钥文件。
证书驱动文件打包单元,用于打包设备证书和经加密的密钥文件,得到设备证书的驱动安装文件。
在一个实施例中,设备证书私钥加密单元具体还可以用于:利用白盒加密技术,使用用户识别码作为静态加密密钥,对设备证书的密钥对中的私钥进行加密,得到经加密的密钥文件。
需要明确的是,本说明书并不局限于上文实施例中所描述并在图中示出的特定配置和处理。为了描述的方便和简洁,这里省略了对已知方法的详细描述,并且上述描述的系统、模块和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
图11是示出能够实现根据本说明书实施例的计算设备的示例性硬件架构的结构图。
如图11所示,计算设备1100包括输入设备1101、输入接口1102、中央处理器1103、存储器1104、输出接口1105、以及输出设备1106。其中,输入接口1102、中央处理器1103、存储器1104、以及输出接口1105通过总线1110相互连接,输入设备1101和输出设备1106分别通过输入接口1102和输出接口1105与总线1110连接,进而与计算设备1100的其他组件连接。具体地,输入设备1101接收来自外部的输入信息,并通过输入接口1102将输入信息传送到中央处理器1103;中央处理器1103基于存储器1104中存储的计算机可执行指令对输入信息进行处理以生成输出信息,将输出信息临时或者永久地存储在存储器1104中,然后通过输出接口1105将输出信息传送到输出设备1106;输出设备1106将输出信息输出到计算设备1100的外部供用户使用。
在一个实施例中,图11所示的计算设备1100可以被实现为一种终端设备,该终端设备可以包括存储器,被配置为存储程序;处理器,被配置为运行存储器中存储的程序,以执行上述实施例描述的应用于终端设备的证书申请方法。
在一个实施例中,图11所示的计算设备1100可以被实现为一种网关设备,该网关可以包括存储器,被配置为存储程序;处理器,被配置为运行存储器中存储的程序,以执行上述实施例描述的应用于网关的证书申请方法。
在一个实施例中,图11所示的计算设备1100可以被实现为一种证书服务器,该证书服务器可以包括存储器,被配置为存储程序;处理器,被配置为运行存储器中存储的程序,以执行上述实施例描述的应用于证书服务器的证书申请方法。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。