一种建立设备间通信的方法、装置和系统
【技术领域】
本发明涉及计算机应用技术领域,特别涉及一种建立设备间通信的方法、装置和系统。
【背景技术】
为了增强设备间通信的安全性,目前市面上存在一些加密通信,例如HTTPS(HyperText Transfer Protocol over Secure Socket Layer,基于安全的超文本传输协议)。HTTPS中,服务端与客户端之间通过预先约定的加密算法传递会话密钥,但由于客户端对会话密钥的处理过程均在通常的OS(Operating System,操作系统)中进行,所以会话密钥极易被截取,因此其安全等级会随着OS漏洞爆出而大打折扣,无法满足诸如金融等背景应用的安全需求。
【发明内容】
有鉴于此,本发明提供了一种建立设备间通信的方法、装置和设备,以便于提高设备间通信的安全性。
具体技术方案如下:
本发明提供了一种建立设备间通信的方法,该方法包括:
第一设备接收第二设备发送的加密后的会话密钥;
在可信环境中利用第一设备私钥解密所述加密后的会话密钥,并利用解密得到的会话密钥与所述第二设备进行数据通信。
根据本发明一优选实施方式,在所述第一设备接收第二设备发送的加密后的会话密钥之前,还包括:
所述第一设备将第一设备的标识信息发送给第二设备,以便所述第二设备确定与所述第一设备的标识信息对应的第一设备公钥,并向所述第一设备发送利用所述第一设备公钥加密后的会话密钥。
根据本发明一优选实施方式,所述第一设备的标识信息在所述可信环境中存储。
根据本发明一优选实施方式,所述第一设备的标识信息预先由标识服务设备分配和维护;
所述第一设备的标识信息对应的第一设备公钥预先由标识服务设备分配和维护,并供所述第二设备获取,且所述第一设备私钥预先写入所述第一设备的可信环境中。
根据本发明一优选实施方式,所述第一设备为客户端设备,所述第二设备为服务端设备。
根据本发明一优选实施方式,在所述第一设备接收第二设备发送的加密后的会话密钥之前,还包括:
所述第一设备发送第一设备公钥给所述第二设备,以便所述第二设备利用所述第一设备公钥加密会话密钥后返回给所述第一设备。
根据本发明一优选实施方式,所述第一设备公钥和第一设备私钥由标识服务设备生成并提供给所述第一设备,且所述第一设备私钥预先写入所述第一设备的可信环境中。
根据本发明一优选实施方式,所述第一设备和所述第二设备均为客户端设备。
根据本发明一优选实施方式,所述可信环境包括:
可信芯片,或者,
利用虚拟化机制隔离出的安全环境。
本发明还提供了一种建立设备间通信的方法,该方法包括:
第二设备获取第一设备公钥;
利用第一设备公钥对会话密钥进行加密后发送给第一设备;
利用所述会话密钥与所述第一设备进行数据通信。
根据本发明一优选实施方式,所述第二设备获取第一设备公钥包括:
所述第二设备接收所述第一设备的标识信息;
从标识服务设备获取所述第一设备的标识信息对应的第一设备公钥。
根据本发明一优选实施方式,该方法还包括:
若所述第二设备接收到所述标识服务设备发送的所述第一设备的标识信息不合法的响应,或者不存在所述第一设备的标识信息对应的第一设备公钥的响应,则向所述第一设备返回通信建立失败的响应。
根据本发明一优选实施方式,所述第一设备为客户端设备,所述第二设备为服务端设备。
根据本发明一优选实施方式,所述第二设备获取第一设备公钥包括:
所述第二设备接收所述第一设备发送的第一设备公钥。
根据本发明一优选实施方式,在所述利用第一设备公钥对会话密钥进行加密后发送给第一设备之前,还包括:
所述第二设备分配随机的会话密钥。
根据本发明一优选实施方式,所述第二设备在可信环境中执行所述分配随机的会话密钥以及对会话密钥进行加密的步骤。
本发明还提供了一种建立设备间通信的方法,该方法包括:
标识服务设备接收第二设备发送的第一设备的标识信息;
向所述第二设备返回所述第一设备的标识信息对应的第一设备公钥,以便所述第二设备利用第一设备公钥对会话密钥进行加密后发送给第一设备,所述会话密钥用于第一设备与第二设备之间的数据通信。
根据本发明一优选实施方式,该方法还包括:
所述标识服务设备维护预先为所述第一设备分配的标识信息,并维护预先针对所述第一设备生成的第一设备公钥和第一设备私钥。
根据本发明一优选实施方式,该方法还包括:
所述第一设备私钥预先写入所述第一设备的可信环境。
根据本发明一优选实施方式,该方法还包括:
若所述标识服务设备确定所述第一设备的标识信息不合法,则向所述第二设备返回所述第一设备的标识信息不合法的响应;或者,
若所述标识服务设备确定不存在所述第一设备的标识信息对应的第一设备公钥,则向所述第二设备返回不存在所述第一设备的标识信息的响应。
本发明还提供了一种建立设备间通信的装置,设置于第一设备,该装置包括:
密钥接收单元,用于接收第二设备发送的加密后的会话密钥;
可信执行单元,用于在可信环境中利用第一设备私钥解密所述加密后的会话密钥,并利用解密得到的会话密钥,进行所述第一设备与所述第二设备之间的数据通信。
根据本发明一优选实施方式,该装置还包括:
标识发送单元,用于将所述第一设备的标识信息发送给第二设备,以便所述第二设备确定与所述第一设备的标识信息对应的第一设备公钥,并向所述第一设备发送利用所述第一设备公钥加密后的会话密钥。
根据本发明一优选实施方式,可信执行单元请求并获取所述第一设备的标识信息;
所述可信执行单元,还用于应所述标识发送单元的请求,从安全存储区域获取所述第一设备的标识信息并返回给所述标识发送单元。
根据本发明一优选实施方式,所述第一设备的标识信息预先由标识服务设备分配和维护;
所述第一设备的标识信息对应的第一设备公钥预先由标识服务设备生成和维护,并供所述第二设备获取,且所述第一设备私钥预先写入所述第一设备的安全存储区域。
根据本发明一优选实施方式,所述第一设备为客户端设备,所述第二设备为服务端设备。
根据本发明一优选实施方式,该装置还包括:
公钥发送单元,用于发送第一设备公钥给所述第二设备,以便所述第二设备利用所述第一设备公钥加密会话密钥后返回给所述第一设备。
根据本发明一优选实施方式,所述第一设备公钥和第一设备私钥由标识服务设备生成并提供给所述第一设备,且所述第一设备私钥预先写入所述第一设备的安全存储区域中。
根据本发明一优选实施方式,所述第一设备和所述第二设备均为客户端设备。
根据本发明一优选实施方式,所述可信执行单元包括:
可信芯片,或者,
利用虚拟化机制隔离出的安全模块。
本发明还提供了一种建立设备间通信的装置,设置于第二设备,该装置包括:
公钥获取单元,用于获取第一设备公钥;
密钥处理单元,用于利用第一设备公钥对会话密钥进行加密后发送给第一设备;
数据通信单元,用于利用所述会话密钥,进行所述第二设备与所述第一设备之间的数据通信。
根据本发明一优选实施方式,所述公钥获取单元,具体用于:
接收所述第一设备的标识信息;
从标识服务设备获取所述第一设备的标识信息对应的第一设备公钥。
根据本发明一优选实施方式,该装置还包括:
响应发送单元,用于若所述公钥获取单元接收到所述标识服务设备发送的所述第一设备的标识信息不合法的响应,或者不存在所述第一设备的标识信息对应的第一设备公钥的响应,则向所述第一设备返回通信建立失败的响应。
根据本发明一优选实施方式,所述第一设备为客户端设备,所述第二设备为服务端设备。
根据本发明一优选实施方式,所述公钥获取单元,具体用于接收所述第一设备发送的第一设备公钥。
根据本发明一优选实施方式,该装置还包括:
密钥生成单元,用于分配随机的会话密钥。
根据本发明一优选实施方式,所述密钥生成单元和所述密钥处理单元设置于可信环境中。
本发明还提供了一种建立设备间通信的装置,设置于标识服务设备,该装置包括:
接收单元,用于接收第二设备发送的第一设备的标识信息;
确定单元,用于确定所述第一设备的标识信息对应的第一设备公钥;
发送单元,用于向所述第二设备返回所述第一设备公钥,以便所述第二设备利用第一设备公钥对会话密钥进行加密后发送给第一设备,所述会话密钥用于第一设备与第二设备之间的数据通信。
根据本发明一优选实施方式,该装置还包括:
信息维护单元,用于维护预先为所述第一设备分配的标识信息,并维护预先针对所述第一设备生成的第一设备公钥和第一设备私钥。
根据本发明一优选实施方式,所述发送单元,还用于若所述确定单元确定所述第一设备的标识信息不合法,则向所述第二设备返回所述第一设备的标识信息不合法的响应;或者,
若所述确定单元确定不存在所述第一设备的标识信息对应的第一设备公钥,则向所述第二设备返回不存在所述第一设备的标识信息的响应。
本发明还提供了一种建立设备间通信的系统,该系统包括第一设备和第二设备。
根据本发明一优选实施方式,该系统还包括标识服务设备。
由以上技术方案可以看出,在本发明中,设备的私钥和对会话密钥的解密都在可信环境中执行,从而避免了因OS漏洞而引起密钥和会话密钥被截取,提高了设备间通信的安全性。
【附图说明】
图1为本发明所基于的系统架构图;
图2为本发明实施例提供的主要方法流程图;
图3为本发明实施例提供的客户端设备与服务端设备建立通信的方法流程图;
图4为本发明实施例提供的客户端设备之间建立通信的方法流程图;
图5为本发明实施例提供的与图3对应的具体实现方法流程图;
图6为本发明实施例提供的与图4对应的具体实现方法流程图;
图7为本发明实施例提供的第一种装置结构图;
图8为本发明实施例提供的第二种装置结构图;
图9为本发明实施例提供的第三种装置结构图;
图10为本发明实施例提供的一种应用场景示意图;
图11为本发明实施例提供的另一种应用场景示意图。
【具体实施方式】
为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。
在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。
应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。
本发明所基于的系统架构如图1中所示,包括第一设备和第二设备。其中,第一设备可以为客户端设备,第二设备可以为服务端设备,即建立客户端设备和服务端设备之间的安全通信。或者,第一设备和第二设备均为客户端设备,即建立客户端设备之间的安全通信。
客户端设备可以包括但不限于:智能移动终端、智能家电设备、网络设备、可穿戴式设备、智能医疗设备、PC(个人计算机)等。其中智能移动设备可以包括诸如手机、平板电脑、笔记本电脑、PDA(个人数字助理)等。智能家电设备可以包括诸如智能电视、智能空调、智能热水器、智能冰箱、智能空气净化器等等。网络设备可以包括诸如交换机、无线AP、服务器等。可穿戴式设备可以包括诸如智能手表、智能眼镜、智能手环等等。智能医疗设备可以包括诸如智能体温计、智能血压仪、智能血糖仪等等。服务端设备可以为服务器、交换机、路由器等。
这些客户端设备和服务端设备在架构上都可以包含一些基本组件,如总线、处理系统、存储系统、一个或多个输入/输出系统、和通信接口等。总线可以包括一个或多个导线,用来实现服务器或终端设备各组件之间的通信。处理系统包括各类型的用来执行指令、处理进程或线程的处理器或微处理器。存储系统可以包括存储动态信息的随机访问存储器(RAM)等动态存储器,和存储静态信息的只读存储器(ROM)等静态存储器,以及包括磁或光学记录介质与相应驱动的大容量存储器。输入系统供用户输入信息到服务端设备或客户端设备,如按键、键盘、鼠标、触摸式屏幕、手写笔、声音识别系统、或生物测定系统等。输出系统包括用来输出信息的显示器、打印机、扬声器等。通信接口用来使服务端设备或客户端设备与其它系统或系统进行通信。通信接口之间可通过有线连接、无线连接、或光连接连接到网络中。
图2为本发明实施例提供的主要方法流程图,如图2中所示,该方法可以主要包括以下步骤:
在201中,第二设备获取第一设备公钥,并利用第一设备公钥对会话密钥进行加密。
第二设备可以从服务器端获取第一设备公钥,例如第二设备可以利用第一设备的标识信息从标识服务设备获取第一设备公钥,这种情况可以适用于第二设备为服务端设备时。第二设备也可以从第一设备获取第一设备公钥,这种情况可以适用于第一设备为客户端设备时。具体将在后续实施例中详细描述。
其中会话密钥可以由第二设备生成或分配,但为了保证安全性,需要会话密钥具有一定的随机性,该会话密钥用于后续第一设备和第二设备之间的数据通信。
在202中,第二设备将加密后的会话密钥发送给第一设备。
在203中,第一设备在可信环境中利用第一设备私钥解密接收到的会话密钥。
第一设备私钥预先存储于第一设备的可信环境中,并在可信环境中执行对会话密钥的解密,从而保证会话密钥的安全性。在本发明实施例中,该可信环境可以是利用诸如ARM TrustZone或Secure Element或TI M-Shield等机制在硬件上隔离出的安全区域,也可以是利用虚拟化机制隔离出一个独立的安全环境。可信环境保证了存入的第一设备私钥不可篡改和擦除,以及会话密钥解密的私密性。
在204中,第一设备利用解密得到的会话密钥与第二设备之间进行数据通信。
后续第一设备与第二设备之间进行数据通信时,均采用该会话密钥进行数据的加解密。例如第一设备发送数据给第二设备时,采用该会话密钥对数据进行加密后发送给第二设备,第二设备利用该会话密钥对第一设备发送的数据进行解密。第二设备发送数据给第一设备时,也采用该会话密钥对数据进行加密后发送给第一设备,第一设备利用该会话密钥对第二设备发送的数据进行解密。
下面分别以客户端设备与服务端设备建立安全通信、客户端设备设备与客户端设备建立安全通信为例,对本发明提供的方法进行详细描述。
图3为本发明实施例提供的客户端设备与服务端设备建立通信的方法流程图,如图3中所示,该方法可以具体包括以下步骤:
在301中,客户端设备获取自身的ID信息。
在本发明实施例中,客户端设备的ID信息用于唯一标识客户端设备,可以采用但不限于:IMEI、MAC地址等等。作为一种优选的实施方式,客户端设备的身份标识可以由标识服务设备分配,并提供给客户端设备,例如在客户端设备的出厂阶段提供给标识写入设备,由标识写入设备将客户端设备的ID写入客户端设备。
出于客户端设备ID信息安全性的考虑,客户端设备的ID信息可以存储于安全环境,例如安全存储区域,从而保证ID信息不被篡改。
本步骤可以在客户端设备需要与服务端设备建立通信连接时触发执行,可以由客户端设备触发执行。也可以由服务端设备触发执行,例如客户端设备接收到服务端设备的连接请求时,执行本步骤。
在302中,客户端设备将自身的ID信息发送给服务端设备。
在303中,服务端设备将客户端设备的ID信息发送给标识服务设备,以向标识服务设备请求客户端设备公钥。
在本实施例中,服务端设备利用客户端设备的ID信息,从标识服务设备获取客户端设备公钥。
在304中,标识服务设备确定客户端设备的ID信息对应的客户端设备公钥。
在本发明实施例中,标识服务设备可以负责统一维护客户端设备的ID信息与客户端设备公钥之间的对应关系,该对应关系可以预先保存至标识服务设备。
作为一种优选的实施方式,合法客户端设备的ID信息可以由标识服务设备分配和维护,并在合法客户端设备的出厂阶段提供给标识写入设备,由标识写入设备写入合法客户端设备的可信环境中。
在本步骤中,标识服务设备可以首先对接收到的客户端设备的ID信息进行合法性判断,即判断接收到的客户端设备的ID信息是否为本地维护的ID信息,如果是,则确定该客户端设备的ID信息合法,可以继续确定该ID信息对应的客户端设备公钥;否则,确定该客户端设备的ID信息不合法,可以向服务端设备返回该客户端设备的ID信息不合法的响应,服务端设备确定通信建立失败,并可以向客户端设备返回通信建立失败的响应。
客户端设备公钥和客户端设备私钥是成对的密钥,可以由标识服务设备生成,并将客户端私钥提供给客户端设备维护,即写入客户端设备的可信环境(可以在客户端设备的出厂阶段执行,也可以在其他能够保证信息安全的阶段执行),标识服务设备在本地维护客户端设备的ID信息与客户端公钥之间的对应关系。
如果标识服务设备能够确定出客户端设备的ID信息对应的客户端设备公钥,则执行305;如果本地没有维护该客户端设备的ID信息对应的客户端设备公钥,则可以向服务端设备返回不存在客户端设备公钥的响应,由服务端设备确定通信建立失败,并可以向客户端设备返回通信建立失败的响应。
在305中,标识服务设备将客户端设备公钥返回给服务端设备。
在306中,服务端设备生成会话密钥,并利用客户端设备公钥加密会话密钥。
会话密钥可以是依据一定算法产生的随机密钥,可以是对称式的密钥,也可以是非对称式的密钥。鉴于会话密钥的产生和利用已经是较为成熟的技术,在此不做详述,本步骤的重点在于利用客户端设备公钥加密会话密钥,以保证会话密钥能够安全私密地传递给客户端设备。
除了实时生成会话密钥的方式之外,也可以预先生成并维护一个会话密钥池,在本步骤中服务端设备从会话密钥池中随机分配一个会话密钥。通常会话密钥具有一定的有效期,当超过有效期之后,会话密钥失效,失效的会话密钥可以重新被分配给一个新的通信连接。后续实施例中会话密钥的分配方式也可以采用以上两种中的一种,后续不再赘述。
在307中,服务端设备将加密后的会话密钥发送给客户端设备。
由于服务端设备通常是单一业务类型的服务器,并不具备其他应用,因此服务端设备本身具有一定的安全级别,也可以看做服务端设备本身就是一个可信环境。
在308中,客户端设备在可信环境中获取客户端设备私钥,并利用客户端设备私钥解密会话密钥。
由于会话密钥是利用客户端设备公钥加密的,因此只有客户端私钥才能够对其解密,在本发明实施例中,客户端设备私钥只能从可信环境中获取,因此保证了该会话密钥仅能够由客户端设备解密得到,并且由于对会话密钥的解密也在可信环境中执行,因此保证了会话密钥不被其他设备获取和篡改。
在309中,客户端设备利用解密得到的会话密钥与服务端设备之间进行数据通信。
后续客户端设备与服务端设备之间的数据通信都采用会话密钥进行加密和解密。如果会话密钥是对称式密钥,那么客户端设备和服务端设备采用相同的密钥进行数据的加密和解密。如果会话密钥是非对称密钥,那么客户端设备和服务端设备采用密钥对中的一个进行数据的加密和解密。
客户端设备在利用会话密钥与服务端设备之间进行数据通信时,在可信环境下对数据进行加密和解密。
图4为本发明实施例提供的客户端设备之间建立通信的方法流程图,在本实施例中以设备A和设备B为例进行描述,如图4中所示,该方法可以具体包括以下步骤:
在401中,设备A发送设备A的公钥信息给设备B。
本步骤可以在设备A需要与设备B建立通信连接时触发执行,即可以由设备A触发执行。也可以由设备B触发执行,例如设备A接收到设备B的连接请求时,执行本步骤。
与图3所示实施例类似地,本实施例中,设备A的公钥和私钥可以由标识服务设备预先生成并提供给设备A,其中设备A的私钥预先写入设备A的可信环境中。
在402中,设备B在可信环境中生成会话密钥,并利用设备A的公钥信息对会话密钥进行加密。
同样,会话密钥可以是依据一定算法产生的随机密钥,可以是对称式的密钥,也可以是非对称式的密钥。
在403中,设备B将加密后的会话密钥发送给设备A。
在404中,设备A在可信环境中利用设备A的私钥对会话密钥进行解密。
由于会话密钥是利用设备A公钥加密的,因此只有设备A的私钥才能够对其解密,在本发明实施例中,设备A的私钥只能从可信环境中获取,因此保证了该会话密钥仅能够由设备A解密得到,并且由于对会话密钥的解密也在可信环境中执行,因此保证了会话密钥不被其他设备获取和篡改。
在405中,设备A利用解密得到的会话密钥与设备B之间进行数据通信。
后续设备A与设备B之间的数据通信都采用会话密钥进行加密和解密。如果会话密钥是对称式密钥,那么设备A和设备B采用相同的密钥进行数据的加密和解密。如果会话密钥是非对称密钥,那么设备A和设备B采用密钥对中的一个进行数据的加密和解密。
设备A在利用会话密钥与设备B之间进行数据通信时,在可信环境下对数据进行加密和解密。
下面通过两个实施例对图3和图4中客户端设备的具体实现方式进行描述。
图5为本发明实施例提供的与图3对应的具体实现方法流程图,客户端设备被细化为客户端、安全服务模块和可信环境模块。如图5中所示,该方法可以具体包括以下步骤:
在501a中,客户端向安全服务模块请求客户端设备的ID信息。
在501b中,安全服务模块解析该请求后,向可信环境模块请求客户端设备的ID信息。
在501c中,可信环境模块获取并向安全服务模块返回存储的客户端设备的ID信息。
客户端设备的ID信息预先存储于安全环境,由可信环境模块负责维护和处理。
在501d中,安全服务模块将客户端设备的ID信息返回给客户端。
上述步骤501a~501d对应于图3中的步骤301。
在502中,由客户端将客户端设备的ID信息发送给服务端设备。
步骤503~507同图3中的303~307。
在508a中,客户端接收服务端设备发送的加密后的会话密钥,并提供给安全服务模块。
在508b中,安全服务模块请求可信环境模块解密会话密钥。
在508c中,可信环境模块获取客户端设备私钥,并利用客户端设备私钥解密会话密钥。
上述步骤508a~508c对应于图3中的步骤308。
在509a中,可信环境模块利用会话密钥加密数据。
在509b中,可信环境模块将加密后的数据发送给安全服务模块。
在509c中,安全服务模块将加密后的数据提供给客户端。
在509d中,由客户端将加密后的数据发送给服务端设备。
在509e中,服务端设备用会话密钥解密数据。
对于服务端设备利用会话密钥加密后的数据发送给客户端后,由客户端经由安全服务模块发送给可信环境模块,由可信环境模块利用会话密钥进行解密。该过程在图5中未示出。509a~509e的过程对应于图3中的步骤309。
图6为本发明实施例提供的与图4对应的具体实现方法流程图,客户端设备被细化为蓝牙应用和可信环境模块。如图6中所示,该方法可以具体包括以下步骤:
在601中,设备A的蓝牙应用向设备B的蓝牙应用发送设备A的公钥信息。
在602a中,设备B的蓝牙应用将设备A的公钥发送给设备B的可信环境模块。
在602b中,设备B的可信环境模块生成并存储会话密钥。
在602c中,设备B的可信环境模块利用设备A的公钥加密会话密钥。
602a~602c的过程对应于图4中的步骤402。
在603a中,设备B的可信环境模块将加密后的会话密钥发送给设备B的蓝牙应用。
在603b中,设备B的蓝牙应用将加密后的会话密钥发送给设备A的蓝牙应用。
在603c中,设备A的蓝牙应用将加密后的会话密钥发送给设备A的可信环境模块。
603a~603c的过程对应于图4中的步骤403。
在604中,设备A的可信环境模块利用设备A的私钥解密会话密钥。
在605a中,设备A的可信环境模块利用会话密钥加密数据。
在605b中,设备A的可信环境模块将加密后的数据发送给设备A的蓝牙应用。
在605c中,设备A的蓝牙应用将加密后的数据通过蓝牙发送给设备B的蓝牙应用。
在605d中,设备B的蓝牙应用将加密后的数据发送给设备B的可信环境模块。
在605e中,设备B的可信环境模块利用会话密钥解密加密后的数据。
后续设备B的可信环境模块利用会话密钥将发送给设备A的数据进行加密,将加密后的数据通过蓝牙应用发送给设备A的蓝牙应用,由设备A的蓝牙应用将机密后的数据提供给设备A的可信环境模块,设备A的可信环境模块利用会话密钥解密数据。该过程在图6中未示出。605a~605e的过程对应于图4中的步骤405。
以上是对本发明所提供方法进行的描述,下面结合实施例对本发明所提供的装置进行详细描述。
图7为本发明实施例提供的第一种装置结构图,该装置可以设置于上述实施例中的第一设备中,如图7中所示,该装置可以包括:密钥接收单元01和可信执行单元02,还可以包括:标识发送单元03。各组成单元的主要功能如下:
密钥接收单元01负责接收第二设备发送的加密后的会话密钥。具体可以包括但不限于以下两种方式:
第一种方式:由标识发送单元03将第一设备的标识信息发送给第二设备,以便第二设备确定与第一设备的标识信息对应的第一设备公钥,并向第一设备发送利用第一设备公钥加密后的会话密钥。
其中,标识发送单元03可以向可信执行单元02请求并获取第一设备的标识信息;可信执行单元02应标识发送单元03的请求,从安全存储区域获取第一设备的标识信息并返回给标识发送单元03。
第一设备的标识信息可以预先由标识服务设备分配和维护。例如在客户端设备的出厂阶段提供给标识写入设备,由标识写入设备将客户端设备的ID写入客户端设备。出于客户端设备ID信息安全性的考虑,客户端设备的ID信息可以存储于安全环境,例如安全存储区域,从而保证ID信息不被篡改。
第一设备的标识信息对应的第一设备公钥也可以预先由标识服务设备生成和维护,并供第二设备获取,且第一设备私钥预先写入第一设备的安全存储区域。
这种实现方式,可以应用于第一设备为客户端设备,第二设备为服务端设备的场景。
第二种方式:由公钥发送单元发送第一设备公钥给第二设备,以便第二设备利用第一设备公钥加密会话密钥后返回给第一设备,这种方式图中未示出。
同样,上述的第一设备公钥和第一设备私钥可以由标识服务设备生成并提供给第一设备,且第一设备私钥预先写入第一设备的安全存储区域中。
这种实现方式,可以应用于第一设备和第二设备均为客户端设备的场景。
可信执行单元02负责在可信环境中利用第一设备私钥解密加密后的会话密钥,并利用解密得到的会话密钥,进行第一设备与第二设备之间的数据通信。
其中可信执行单元02可以是利用诸如ARM TrustZone或Secure Element或TI M-Shield等机制在硬件上隔离出的安全区域,例如采用可信芯片的形式。也可以是利用虚拟化机制隔离出的安全模块。
图8为本发明实施例提供的第二种装置结构图,该装置可以设置于上述的第二设备,如图8中所示,该装置可以包括:公钥获取单元11、密钥处理单元12和数据通信单元13,还可以包括响应发送单元14和密钥生成单元15。各组成单元的主要功能如下:
公钥获取单元11负责获取第一设备公钥。具体地,可以采用但不限于以下两种方式:
第一种方式:公钥获取单元11接收第一设备的标识信息,从标识服务设备获取第一设备的标识信息对应的第一设备公钥。
若公钥获取单元11接收到标识服务设备发送的第一设备的标识信息不合法的响应,或者不存在第一设备的标识信息对应的第一设备公钥的响应,则响应发送单元14可以向第一设备返回通信建立失败的响应。
这种情况可以适用于第一设备为客户端设备,第二设备为服务端设备的场景。
第二种方式,公钥获取单元11接收第一设备发送的第一设备公钥。
这种情况可以适用于第一设备和第二设备均为客户端设备的场景。
密钥处理单元12负责利用第一设备公钥对会话密钥进行加密后发送给第一设备。
数据通信单元13负责利用会话密钥,进行第二设备与第一设备之间的数据通信。
上述的会话密钥可以由密钥生成单元15负责生成,会话密钥可以是依据一定算法产生的随机密钥,可以是对称式的密钥,也可以是非对称式的密钥。
为了保证会话密钥的安全性,作为一种优选的实施方式,密钥生成单元15和密钥处理单元12可以设置于可信环境中。
图9为本发明实施例提供的第三种装置结构图,该装置可以设置于上述方法实施例中的标识服务设备,如图9中所示,该装置可以包括:接收单元21、确定单元22和发送单元23,还包括信息维护单元24。各组成单元的主要功能如下:
接收单元21负责接收第二设备发送的第一设备的标识信息。
确定单元22负责确定第一设备的标识信息对应的第一设备公钥。
发送单元23负责向第二设备返回第一设备公钥,以便第二设备利用第一设备公钥对会话密钥进行加密后发送给第一设备,会话密钥用于第一设备与第二设备之间的数据通信。
信息维护单元24负责维护预先为第一设备分配的标识信息,并维护预先针对第一设备生成的第一设备公钥和第一设备私钥。其中第一设备的标识信息可以由该标识服务设备分配,并在第一设备的出厂阶段提供给标识写入设备,写入第一设备。第一设备公钥和第一设备私钥也可以由该标识服务设备生成,并在第一设备的出厂阶段提供给标识写入设备,写入第一设备的安全存储区域。
另外,若确定单元22确定第一设备的标识信息不合法,则发送单元23向第二设备返回第一设备的标识信息不合法的响应。若确定单元22确定不存在第一设备的标识信息对应的第一设备公钥,则发送单元23可以向第二设备返回不存在第一设备的标识信息的响应。
下面列举几个具体的应用场景:
第一种应用场景:如图10所示,标识服务设备预先针对智能汽车生成智能汽车的ID信息,并针对智能汽车生成公钥-私钥对,将智能汽车的ID信息和私钥下发给标识写入设备,以便在该智能汽车出厂阶段,由标识写入设备将智能汽车的ID信息和私钥写入智能汽车的可信芯片中。
当智能汽车希望通过诸如物联网等与服务器端建立连接,从而享受业务服务器的服务时,诸如从业务服务器获取导航信息、路况信息、控制信息等等时,将该智能汽车的ID信息发送给业务服务器,业务服务器将该ID信息发送给标识服务设备,由标识服务设备将该智能汽车的ID信息对应的公钥发送给业务服务器。业务服务器利用智能汽车的公钥对生成的随机的会话密钥进行加密,将加密后的会话密钥发送给智能汽车。智能汽车接收到该会话密钥后提供给可信芯片,由可信芯片获取智能汽车的私钥后,利用私钥对接收到的加密后的会话密钥进行解密,后续就利用解密后得到的会话密钥与业务服务器进行数据通信。从而保证了智能汽车与业务服务器之间的数据通信安全。
第二种应用场景:如图11所示,标识服务设备预先针对智能手表生成智能手表的ID信息,并针对智能手表生成公钥-私钥对,将智能手表的ID信息和私钥下发给标识写入设备,以便在该智能手表出厂阶段,由标识写入设备将智能手表的ID信息和私钥写入智能手表的可信芯片中。
当智能手表要与手机建立连接从而进行数据交互时,将智能手表的公钥发送给手机,手机中的可信芯片利用该智能手表的公钥对生成的会话密钥进行加密后,发送给智能手表。
智能手表接收到加密后的会话密钥后,由可信芯片获取智能手表的私钥,并利用私钥对加密后的会话密钥进行解密。后续利用解密后得到的会话密钥与手机之间进行数据通信,从而保证智能手表与手机之间的数据通信安全。
除了上述应用场景之外,本发明还可以应用于其他应用场景,诸如智能电视与视频服务器之间的安全通信、智能手机与智能家电设备之间的安全通信,等等,在此不再一一穷举。
由以上描述可以看出,本发明提供的方法、装置和系统可以具备以下优点:
1)在本发明中,设备的私钥和对会话密钥的解密都在可信环境中执行,从而避免了因OS漏洞而引起密钥和会话密钥被截取,提高了设备间通信的安全性。
2)能够适用于客户端设备之间以及客户端与服务端设备之间等多种应用场景,灵活满足多种应用需求。
3)当进行客户端设备与服务端设备之间的安全通信时,通过标识服务设备对设备标识的合法性以及设备标识与设备公钥之间对应关系的合法性进行把控,更进一步增加了客户端设备与服务端设备之间通信的安全性。
在本发明所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。