发明内容
本发明实施例提供一种物联网设备的认证方法和物联网设备,用以解决现有技术中物联网设备的容易被模仿的问题。
本发明实施例提供一种物联网设备的认证方法,所述方法适用于预设范围内的多个物联网设备形成的区块链网络;所述方法包括:物联网设备对第一标识进行硬件加密运算,得到第二标识;其中,所述第一标识为所述物联网设备出厂时配置的,其中,所述物联网设备为所述区块链网络中的任一节点;所述物联网设备将所述第二标识写入区块链,用于使所述区块链网络中的节点验证所述物联设备的合法性。
由于本发明实施例中,物联网设备的第二标识是对第一标识加密得到的,黑客或其他非法用户不能获取到第一标识,因此不能模仿出第一标识对应的物联网设备。而且,物联网设备将第二标识写入区块链中,由于区块链中信息不可篡改,一旦信息经过验证并添加至区块链,就会永久的存储起来,单个区块链网络中的节点对信息的修改是无效的,因此,第二标识的稳定性和可靠性较高。
进一步,本发明实施例中,对物联网设备的第一标识加密采用的是硬件加密的方法,进一步提高了物联网设备标识的安全性。
一种可能的实施方式中,所述物联网设备对第一标识进行硬件加密运算,包括:所述物联网设备根据所述第一设备标识和第一公钥进行哈希运算,得到第一哈希值;其中,所述第一公钥为所述物联网设备随机生成;所述物联网设备使用第一私钥对所述第一哈希值进行硬件加密运算,得到所述第二标识;其中,所述第一私钥为所述物联网设备根据所述第一公钥生成的。
为了确保访问物联网设备的用户的身份的合法性,一种可选地实施方式中所述物联网设备将所述第二标识写入区块链之后,还包括:所述物联网设备接收用户设备发送的访问请求;所述访问请求中包括设备标识;当所述物联网设备确定接收到的所述访问请求中的设备标识与所述第二标识一致时,则允许所述用户设备访问所述物联网设备。
一种可能的实现方式中,所述允许所述用户设备访问所述物联网设备之后,还包括:所述物联网设备校验所述用户设备广播的数字签名的合法性;其中,所述数字签名为所述用户设备根据所述用户设备的第三公钥和使用记录进行哈希运算,得到第二哈希值,并使用所述用户设备的第三私钥对所述第二哈希值进行硬件加密运算得到的,其中,所述第三公钥为所述用户设备随机生成的,所述第三私钥为所述用户设备根据所述第三公钥生成的。如此,可以追溯到访问物联网设备的用户设备。
本发明实施例提供一种物联网设备,适用于预设范围内的多个物联网设备形成的区块链网络;针对所述区块链网络中的任一物联网设备,所述物联网设备,包括:加密单元,用于对第一标识进行硬件进行加密运算,得到第二标识;其中,所述第一标识为所述物联网设备出厂时配置的;处理单元,用于将所述第二标识写入区块链,用于使所述区块链网络中的节点验证所述物联设备的合法性。
一种可能的设计中,所述加密单元,用于:根据所述第一设备标识和第一公钥进行哈希运算,得到第一哈希值;其中,所述第一公钥为所述物联网设备随机生成;使用第一私钥对所述第一哈希值进行硬件加密运算,得到所述第二标识;其中,所述第一私钥为所述物联网设备根据所述第一公钥生成的。
一种可能的设计中,所述物联网设备还包括接收单元,用于:接收用户设备发送的访问请求;所述访问请求中包括设备标识;所述处理单元,还用于:确定接收到的所述访问请求中的设备标识与所述第二标识一致时,则允许所述用户设备访问所述物联网设备;
一种可能的设计中,所述处理单元,还用于:校验所述用户设备广播的数字签名的合法性;其中,所述数字签名为所述用户设备根据所述用户设备的第三公钥和使用记录进行哈希运算,得到第二哈希值,并使用所述用户设备的第三私钥对所述第二哈希值进行硬件加密运算得到的,其中,所述第三公钥为所述用户设备随机生成的,所述第三私钥为所述用户设备根据所述第三公钥生成的。
本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使所述计算机执行所述的方法。
本发明实施例提供一种计算机设备,包括:存储器,用于存储程序指令;处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行所述的方法。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
图1示出了应用本发明实施例的一种通信系统的架构示意图。如图1所示,该通信系统架构可以包括物联网设备101、用户设备102、经销商设备103和制造商设备104。物联网设备101可包括多个,用户设备102可包括多个,经销商设备103至少包括一个,制造商设备104至少包括一个。为了便于问题的说明,图1以包括两个物联网设备101、两个用户设备102、一个经销商设备103和一个制造商设备104为例说明。多个物联网设备101、多个用户设备102、至少一个经销商设备103和至少一个制造商设备104之间通过无线、红外、蓝牙、无线局域网(Wireless Local Area Network,简称WLAN)、ZigBee、Lora等的方式连接,形成区块链网络。
物联网设备101可以是智能门锁、智能家居、智能电表、智能车载等。用户设备102可以是笔记本电脑、智能手机等,用于使用户通过登录用户设备来对区块链网络中的物联网设备进行访问。
经销商设备103可以是笔记本电脑、服务器等,用于记录物联网设备101的售出交易;其中,售出交易包括制造商标识、经销商标识、购买者和物联网设备的标识。通过经销商设备记录的售出交易,可以将制造商、经销商、物联网设备和购买者进行绑定;购买者即是用户。售出交易可以用于后续用户追溯物联网设备。
制造商设备104可以是笔记本电脑、服务器等,用于使制造商在物联网设备生产和组装完成之后,将物联网设备的注册交易写入区块链。注册交易中包括物联网设备的全球唯一设备标识、物联网设备的基本信息(比如制造商标识、型号等)。可选地,制造商可以为制造的每台物联网设备申请物联网设备的全球唯一设备标识,同时可以生成一条该物联网设备注册消息。全球唯一设备标识为物联网设备出厂时配置的。为了提高注册交易的安全性,制造商设备需要先对注册交易签署数字签名,之后再将注册交易的数字签名写入区块链网络中。制造商设备104将注册交易的数字签名写入区块链的过程为:制造商设备104将每个物联网设备的注册交易的数字签名写入区块,之后向区块链网络中其它节点广播该注册交易的数字签名,当区块链网络中的其它节点验证通过后,制造商设备104将该注册交易的数字签名作为一个新的区块加入区块链中,此时,注册交易的数字签名成功写入的了区块链中。可选地,当注册交易的数字签名成功写入区块链后,标识着物联网设备的生命周期的开始。
在图1中,物联网设备101和用户设备102属于区块链网络中的完全节点,具有打包权,即物联网设备101和用户设备102既可以向区块链写入信息也可以查询区块链中的已经写入的信息。经销商设备103和制造商设备104可以为完全节点也可以为非完全节点,可以设置为经销商设备103和制造商设备104不具有查询区块链中已经写入的信息。一种可选地方式为:经销商设备103只能向区块链中写入售出交易信息,不能查询区块链中写入的其他信息;制造商设备104只能向区块链中写入注册交易信息,不能查询区块链中写入的其他信息。
为了提高物联网设备的安全性,可以将多个物联网设备101、多个用户设备102和至少一个经销商设备103形成区域性区块链。至少一个制造商设备104之间形成通用性区块链。区域性区块链指在一个预定的区域范围内的物联网设备、用户设备和经销商设备可以形成区块链,不在该预定范围内的物联网设备、用户设备、经销商设备不可以加入区域性区块链网络中。通用性区块链不受区域的限制,可以仅有各制造商设备之间形成。
基于图1所示的系统架构,图2示例性示出了本发明实施例提供的一种物联网设备的认证方法流程示意图。如图2所示,该物联网设备的认证方法包括以下步骤:
步骤201,物联网设备对第一标识进行硬件加密运算,得到第二标识。
其中,第一标识为物联网设备出厂时配置的,其中,物联网设备为区块链网络中的任一节点。
步骤202,物联网设备将第二标识写入区块链,用于使区块链网络中的节点验证物联设备的合法性。
在上述步骤201中,第一标识可以是物联网设备的媒体访问控制(MediumAccessControl,简称MAC)地址、也可以是可以唯一标识物联网设备的条形码或者二维码。第一标识也可以是制造商为制造的每台物联网设备申请物联网设备的其他全球唯一设备标识。
可选地,硬件加密运算可以是通过专用加密芯片或独立的处理芯片等实现密码运算。将加密芯片、专有电子钥匙、物联网设备的硬盘一一对应到一起时,加密芯片将把加密芯片信息、专有钥匙信息、硬盘信息进行对应并做加密运算,同时写入物联网设备硬盘的主分区表。
本发明实施例提供了一种可选地加密方式,所述物联网设备根据所述第一设备标识和第一公钥进行哈希运算,得到第一哈希值;其中,所述第一公钥为所述物联网设备随机生成;所述物联网设备使用第一私钥对所述第一哈希值进行硬件加密运算,得到所述第二标识;其中,所述第一私钥为所述物联网设备根据所述第一公钥生成的。本发明实施例提供了另一种可选地的加密方式:使用对称密钥进行加密。具体为:所述物联网设备使用对称密钥对物联网设备的第一标识进行加密,得到第二标识。
一种可选地实施方式,所述物联网设备使用随机数发生器生成一个公钥,一般来说这是一个256比特(bits)的数,使用椭圆曲线算法处理公钥生成一个私钥。其中,椭圆曲线算法包括但不限于SECP256K1算法。
在上述步骤202中,物联网设备将第二标识存储,并向区块链网络中各节点广播,当区块链网络中其它节点验证通过时,物联网设备将所述第二标识成功写入区块链中。
本发明实施例中,图1中经销设备将售出交易记录在区块链中,其中,售出交易中的物联网设备的标识可以是物联网设备的第二标识。即第二标识也可以是经销商在售出所述物联网设备的时,携带在售出交易中写入区块链网络的。
由于本发明实施例中,物联网设备的第二标识是对第一标识加密得到的,黑客或其他非法用户不能获取到第一标识,因此不能模仿出第一标识对应的物联网设备。而且,物联网设备将第二标识写入区块链中,由于区块链中信息不可篡改,一旦信息经过验证并添加至区块链,就会永久的存储起来,单个区块链网络中的节点对信息的修改是无效的,因此,第二标识的稳定性和可靠性较高。而且,对物联网设备的第一标识加密采用的是硬件加密的方法,进一步提高了物联网设备标识的安全性。
进一步,由于区块链是一种无中心节点即可达成共识机制的网络,不是由中心化机构集中存储和管理的,也可降低维护的成本。
本发明实施例中,当用户需要访问物联网设备时,用户会提供一个物联网设备标识,用于使物联网设备验证用户设备的合法性。一种可能的实施方式中,所述物联网设备接收用户设备发送的访问请求;所述访问请求中包括设备标识;当所述物联网设备确定接收到的所述访问请求中的设备标识与所述第二标识一致时,则允许所述用户设备访问所述物联网设备。所述物联网设备将所述访问请求进行广播,并将所述访问请求成功写入所述区块链网络;所述访问请求用于使用户追溯所述物联网设备的访问信息。
另一种可选地的实现方式中,当所述物联网设备接收用户的访问请求;所述访问请求中包括设备标识;当物联网设备确定访问请求中的设备标识与第二标识不一致时,拒绝用户设备的访问,因为只有合法的用户设备可获取到待访问的物联网设备的第二标识。而且,由于第二标识是对第一标识加密的得到的,即便可以获取到第二标识,也不能根据第二标识确定出第一标识,不合法的用户不能伪造出真实的第一标识。而且,第二标识是记录在区块链中的,具有不可篡改的特性。如此,可提高物联网设备校验用户设备合法性和物联网设备的安全性。
物联网设备的访问者可以是人、或者是其他具有访问能力的设备或系统、或者是物联网设备自身。物联网设备自身产生访问信息,其实就是设备自身的生成数据,比如物联网设备的电能消耗、水消耗等记录,均可用设备访问信息的形式记录在区块链中。
本发明实施例中,在物联网设备验证所述用户设备合法之后,记录所述用户设备的访问信息。为了追溯到访问物联网设备的用户设备,用户设备需要对访问信息进行数字签名,并将该数字签名进行广播,以使区块链网络中的节点验证所述数字签名。一种可能的实施方式中,所述物联网设备校验所述用户设备广播的数字签名的合法性;其中,所述数字签名为所述用户设备根据所述用户设备的第三公钥和使用记录进行哈希运算,得到第二哈希值,并使用所述用户设备的第三私钥对所述第二哈希值进行硬件加密运算得到的,其中,所述第三公钥为所述用户设备随机生成的,所述第三私钥为所述用户设备根据所述第三公钥生成的。当所述物联网设备校验该数字签名通过后,该数字签名成功写入区块链。通过用户设备的数字签名一方面可以追溯到该访问请求是由该用户签名并发送,并且具有不可以篡改性。另一方面,通过数字签名可以确定该访问请求的完整性。
当有另外的用户需要查询区块链网络中任一物联网设备的当前信息时,用户可以登录用户设备,并向待查询的物联网设备提供物联网设备的设备标识,在物联网设备验证所述提供的设备标识与本地存储的第二标识一致时,确定该用户合法。该用户在身份鉴权通过之后根据待访问的物联网设备的第二标识追溯该物联网设备的相关信息,比如访问信息。
从上述内容可以看出:由于本发明实施例中,物联网设备的第二标识是对第一标识加密得到的,黑客或其他非法用户不能获取到第一标识,因此不能模仿出第一标识对应的物联网设备。而且,物联网设备将第二标识写入区块链中,由于区块链中信息不可篡改,一旦信息经过验证并添加至区块链,就会永久的存储起来,单个区块链网络中的节点对信息的修改是无效的,因此,第二标识的稳定性和可靠性较高。而且,对物联网设备的第一标识加密采用的是硬件加密的方法,进一步提高了物联网设备标识的安全性。
进一步,由于区块链是一种无中心节点即可达成共识机制的网络,不是由中心化机构集中存储和管理的,也可降低维护的成本。
基于相同的技术构思,本发明实施例还提供一种物联网设备,该物联网设备可执行上述方法实施例。图3为本发明实施例提供了一种物联网设备的结构示意图,如图3所示,该物联网设备300包括加密单元301、处理单元302;可选地,还包括接收单元303。其中:
加密单元,用于对第一标识进行硬件进行加密运算,得到第二标识;其中,所述第一标识为所述物联网设备出厂时配置的;处理单元,用于将所述第二标识写入区块链,用于使所述区块链网络中的节点验证所述物联设备的合法性。
一种可能的实施方式中,所述加密单元,用于:根据所述第一设备标识和第一公钥进行哈希运算,得到第一哈希值;其中,所述第一公钥为所述物联网设备随机生成;使用第一私钥对所述第一哈希值进行硬件加密运算,得到所述第二标识;其中,所述第一私钥为所述物联网设备根据所述第一公钥生成的。
一种可能的设计中,所述物联网设备还包括接收单元,用于:接收用户设备发送的访问请求;所述访问请求中包括设备标识;所述处理单元,还用于:确定接收到的所述访问请求中的设备标识与所述第二标识一致时,则允许所述用户设备访问所述物联网设备;
一种可能的设计中,所述处理单元,还用于:校验所述用户设备广播的数字签名的合法性;其中,所述数字签名为所述用户设备根据所述用户设备的第三公钥和使用记录进行哈希运算,得到第二哈希值,并使用所述用户设备的第三私钥对所述第二哈希值进行硬件加密运算得到的,其中,所述第三公钥为所述用户设备随机生成的,所述第三私钥为所述用户设备根据所述第三公钥生成的。
从上述内容可以看出:由于本发明实施例中,物联网设备的第二标识是对第一标识加密得到的,黑客或其他非法用户不能获取到第一标识,因此不能模仿出第一标识对应的物联网设备。而且,物联网设备将第二标识写入区块链中,由于区块链中信息不可篡改,一旦信息经过验证并添加至区块链,就会永久的存储起来,单个区块链网络中的节点对信息的修改是无效的,因此,第二标识的稳定性和可靠性较高。
进一步,本发明实施例中,对物联网设备的第一标识加密采用的是硬件加密的方法,进一步提高了物联网设备标识的安全性。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现、当使用软件程序实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程物联网设备。所述指令可以存储在计算机存储介质中,或者从一个计算机存储介质向另一个计算机存储介质传输,例如,所述指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带、磁光盘(MO)等)、光介质(例如,CD、DVD、BD、HVD等)、或者半导体介质(例如ROM、EPROM、EEPROM、非易失性存储器(NAND FLASH)、固态硬盘(Solid StateDisk,SSD))等。本领域内的技术人员应明白,本发明实施例可提供为方法、系统、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。