发明内容
为了解决上述技术缺陷之一,本申请提供了一种设备注册方法和装置,一种设备认证方法和装置,一种设备数据传输方法和装置,以及一种电子设备及计算机可读存储介质,在设备的注册、认证以及数据传输等操作中,降低设备接入难度。
该技术方案如下所示:
第一方面,本申请提供一种设备注册方法,应用于设备上,包括如下步骤:
在本设备注册前,读取本设备上电产生的第一SRAM值,并根据所述第一SRAM值生成登记信息发送至注册服务器进行保存;
在本设备注册时,读取本设备上电产生的第二SRAM值,根据所述第二SRAM值生成注册请求发送至所述注册服务器;其中,所述注册服务器根据所述注册请求从登记信息中查找与所述第二SRAM值相匹配的第一SRAM值,完成本设备的注册流程。
在一个实施例中,在完成本设备的注册流程之后,还包括:
接收所述注册服务器反馈的公钥,并根据所述公钥与业务服务器进行业务交互;
其中,所述公钥为所述注册服务器根据所述登记信息派生生成的非对称密钥对得到。
第二方面,本申请提供一种设备注册装置,应用于设备上,包括:
登记信息发送模块,用于在本设备注册前,读取本设备上电产生的第一SRAM值,并根据所述第一SRAM值生成登记信息发送至注册服务器进行保存;
注册请求发送模块,用于在本设备注册时,读取本设备上电产生的第二SRAM值,根据所述第二SRAM值生成注册请求发送至所述注册服务器;其中,所述注册服务器根据所述注册请求从登记信息中查找与所述第二SRAM值相匹配的第一SRAM值,完成本设备的注册流程。
第三方面,本申请提供另一种设备注册方法,应用于注册服务器上,包括如下步骤:
在设备注册前,接收各个设备发送的登记信息并进行登记;其中,所述登记信息包括各个设备上电产生的第一SRAM值;
在设备注册时,接收目标设备发送的注册请求;其中,所述注册请求为所述目标设备依据设备上电产生的第二SRAM值生成;
根据所述注册请求在所保存的登记信息中查找与所述第二SRAM值相匹配的第一SRAM值,完成所述目标设备的注册流程。
在一个实施例中,所述接收各个设备发送的登记信息并进行登记的步骤,包括:
依据所述登记信息中的第一SRAM值计算各个设备的第一UUID,并依据各个设备的第一UUID建立设备UUID库;
所述根据所述注册请求在所保存的登记信息中查找与所述第二SRAM值相匹配的第一SRAM值的步骤,包括:
依据所述注册请求中的第二SRAM值计算所述目标设备的第二UUID;
根据所述目标设备的第二UUID从所述设备UUID库查询相匹配的第一UUID;
确认对所述目标设备进行注册。
在一个实施例中,在完成所述目标设备的注册流程的步骤之后,还包括:
根据所述目标设备的第一UUID生成非对称密钥对的公钥与私钥;
将所述公钥下发至所述目标设备进行保存,用于所述目标设备与业务服务器进行业务交互。
在一个实施例中,所述的方法还包括:
根据各个设备的第一UUID分别生成非对称密钥对的公钥与私钥,并生成各个设备的私钥与相应第一UUID的映射表。
第四方面,本申请提供另一种设备注册装置,其特征在于,应用于注册服务器上,包括:
登记信息接收模块,用于在设备注册前,接收各个设备发送的登记信息并进行登记;其中,所述登记信息包括各个设备上电产生的第一SRAM值;
注册请求接收模块,用于在设备注册时,接收目标设备发送的注册请求;其中,所述注册请求为所述目标设备依据设备上电产生的第二SRAM值生成;
注册请求处理模块,用于根据所述注册请求在所保存的登记信息中查找与所述第二SRAM值相匹配的第一SRAM值,完成所述目标设备的注册流程。
第五方面,本申请提供一种设备认证方法,应用于设备上,包括如下步骤:
在本设备上产生随机数,根据预存的公钥加密所述随机数得到加密数据;其中,所述公钥为所述注册服务器根据所述登记信息派生生成的非对称密钥对得到;
读取本设备上电产生的第三SRAM值,根据所述第三SRAM值、随机数和加密数据生成认证请求,发送到业务服务器进行认证;其中,所述业务服务器从所述注册服务器获取本设备的私钥,对所述认证请求进行认证,所述公钥和私钥为非对称加密对。
第六方面,本申请提供一种设备认证装置,应用于设备上,包括:
随机数加密模块,用于在本设备上产生随机数,根据预存的公钥加密所述随机数得到加密数据;其中,所述公钥为注册服务器对本设备的登记信息进行非对称加密得到;
认证请求模块,用于读取本设备上电产生的第三SRAM值,根据所述第三SRAM值、随机数和加密数据生成认证请求,发送到业务服务器进行认证;其中,所述业务服务器从所述注册服务器获取本设备的私钥,对所述认证请求进行认证,所述公钥和私钥为非对称加密对。
第七方面,本申请提供另一种设备认证方法,应用于业务服务器上,包括如下步骤:
接收目标设备发送的认证请求;其中,所述认证请求为目标设备依据设备上电产生的第三SRAM值、随机数和加密数据生成,所述加密数据为所述目标设备根据预存的公钥加密产生的随机数得到,所述公钥为所述注册服务器根据所述登记信息派生生成的非对称密钥对得到;
根据所述第三SRAM值从所述注册服务器获取所述目标设备的私钥;其中,所述公钥和私钥为非对称加密对;
利用所述目标设备的私钥对所述认证请求进行认证。
在一个实施例中,所述利用所述目标设备的私钥对所述认证请求进行认证的步骤,包括:
使用所述私钥解密所述认证请求中的加密数据,得到加密数据原文;
若所述加密数据原文等于所述随机数,则认证通过,否则认证不通过。
第八方面,本申请提供另一种设备认证装置,应用于业务服务器上,包括:
认证响应模块,用于接收目标设备发送的认证请求;其中,所述认证请求为目标设备依据设备上电产生的第三SRAM值、随机数和加密数据生成,所述加密数据为所述目标设备根据预存的公钥加密产生的随机数得到,所述公钥为注册服务器对目标设备的登记信息进行非对称加密得到;
私钥拉取模块,用于根据所述第三SRAM值从注册服务器中获取所述目标设备的私钥;其中,所述公钥和私钥为非对称加密对;
认证处理模块,用于利用所述目标设备的私钥对所述认证请求进行认证。
第九方面,本申请提供一种设备数据传输方法,应用于设备上,包括如下步骤:
在本设备发起数据传输时,根据所述公钥对传输数据进行加密得到加密传输数据;
将本设备上电产生的第四SRAM值和所述加密传输数据打包传输至业务服务器;其中,所述业务服务器根据所述私钥对所述加密传输数据进行解密得到原始数据。
第十方面,本申请提供一种设备数据传输装置,应用于设备上,包括:
数据加密模块,用于在本设备发起数据传输时,根据所述公钥对传输数据进行加密得到加密传输数据;
数据传输模块,用于将本设备上电产生的第四SRAM值和所述加密传输数据打包传输至业务服务器;其中,所述业务服务器根据所述私钥对所述加密传输数据进行解密得到原始数据。
第十一方面,本申请提供另一种设备数据传输方法,应用于业务服务器上,包括如下步骤:
接收所述目标设备上传的数据包;其中,所述数据包包括目标设备上电产生的第四SRAM值和加密传输数据,所述加密传输数据为目标设备根据所述公钥对传输数据进行加密得到;
根据第四SRAM值从注册服务器中从注册服务器中获取所述目标设备的私钥;
根据所述私钥对所述加密传输数据进行解密得到原始数据。
第十二方面,本申请提供另一种设备数据传输装置,应用于业务服务器上,包括:
数据接收模块,用于接收所述目标设备上传的数据包;其中,所述数据包包括目标设备上电产生的第四SRAM值和加密传输数据,所述加密传输数据为目标设备根据所述公钥对传输数据进行加密得到;
私钥拉取模块,用于根据第四SRAM值从注册服务器中从注册服务器中获取所述目标设备的私钥;
数据解密模块,用于根据所述私钥对所述加密传输数据进行解密得到原始数据。
第十三方面,本申请提供一种电子设备,其包括:
一个或多个处理器;
存储器;
一个或多个应用程序,其中所述一个或多个应用程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序配置用于:执行应用于所述设备上的方法。
第十四方面,本申请提供一种计算机设备,其包括:
一个或多个处理器;
存储器;
一个或多个应用程序,其中所述一个或多个应用程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序配置用于:执行应用于所述注册服务器和/或业务服务器上的方法。
第十五方面,本申请提供一种计算机可读存储介质,所述存储介质存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以上所述任意一种方法。
本申请提供的技术方案带来的有益效果是:
(1)本申请的设备注册技术方案,在注册前,读取设备上电产生的第一SRAM值,并生成登记信息发送至注册服务器进行保存,在设备注册时,再读取设备上电产生的第二SRAM值生成注册请求发送至注册服务器,注册服务器根据注册请求从登记信息中查找到与第二SRAM值相匹配的第一SRAM值,完成设备的注册流程。该技术方案,通过前置的注册步骤,可以有效防止未注册与仿造的设备获取支撑硬件运行的软件或者开启核心功能,在设备注册时仅需要将SRAM值读取出来注册到注册服务器即可,无需在生产线上对设备进行烧录证书等操作,便于设备接入,提升了设备认证接入的灵活性。
进一步地,注册服务器根据设备的第一UUID生成非对称密钥对的公钥与私钥,将公钥下发至设备进行保存,设备可以使用该密钥与业务服务器进行业务交互;该技术方案,利用设备SRAM 的PUF特性生成设备硬件级别唯一标识UUID,根据UUID又可以生成唯一的非对称密钥对,通过设备唯一的密钥实现设备与业务服务器之间进行一机一密的注册、认证以及数据传输等操作,降低了设备接入难度。
(2)本申请的设备认证技术方案,在设备上产生随机数,根据预存的公钥加密随机数得到加密数据,利用设备上电产生的第三SRAM值、随机数和加密数据生成认证请求发送到业务服务器进行认证,业务服务器从注册服务器获取本设备的私钥,对认证请求进行认证;该技术方案在保证一机一密的安全强度的前提下,降低了设备认证过程的技术难度。
(3)本申请的设备数据传输技术方案,在设备发起数据传输时,根据公钥对传输数据进行加密得到加密传输数据,利用设备上电产生的第四SRAM值和加密传输数据打包传输至业务服务器,业务服务器根据私钥对加密传输数据进行解密得到原始数据;该技术方案在保证一机一密的安全强度的前提下,降低了设备数据传输过程的技术难度。
具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能解释为对本申请的限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
下面针对于本申请中涉及的部分术语和关键词进行解析。
SRAM:Static Random Access Memory,中文注释为静态随机存取存储器,属于随机存取存储器的一种,在保持通电时,SRAM中储存的数据恒常保持。
PUF:Physical Unclonable Function,中文注释为物理不可克隆功能块,提供了一个物理上定义的“数字指纹”输出(响应)作为唯一标识符,基于芯片制造过程中的随机偏差,每个PUF具有唯一性并且物理不可克隆。
UUID:Universally Unique Identifier,中文注释为通用唯一识别码。
IoT:The Internet of Things,中文注释为物联网,是指通过各种信息传感器、射频识别技术、全球定位系统、红外感应器、激光扫描器等各种装置与技术。
本实施例的设备可以是各种类型电子设备,如IoT设备,注册服务器是管理各个设备的服务端平台;参考图1,图1是本申请中设备与注册服务器的连接拓扑图,图中以IoT设备为例,注册服务器可以负责管理多个IoT设备1-n,各个设备可以与业务服务器进行业务交互。
参考图2,图2是一个实施例的设备注册方法的流程图,该方案可以应用于设备上,包括如下步骤:
S11,在本设备注册前,比如在设备出厂时,读取本设备上电产生的第一SRAM值,并根据所述第一SRAM值生成登记信息发送至注册服务器进行保存。
S12,在本设备注册时,即设备需要进行激活/初始化时,读取本设备上电产生的第二SRAM值,根据所述第二SRAM值生成注册请求发送至所述注册服务器;其中,所述注册服务器根据所述注册请求从登记信息中查找与所述第二SRAM值相匹配的第一SRAM值,完成本设备的注册流程。
本申请的设备注册技术方案,通过前置的注册步骤,可以有效防止未注册与仿造的设备获取支撑硬件运行的软件或者开启核心功能,在设备注册时仅需要将SRAM值读取出来注册到注册服务器即可,无需在生产线上对设备进行烧录证书等操作,便于设备接入,提升了设备认证接入的灵活性。
在一个实施例中,本申请的设备注册方法,设备在完成本设备的注册流程之后,还可以接收注册服务器反馈的公钥,并根据该公钥与业务服务器进行业务交互,该公钥为注册服务器根据登记信息派生生成的非对称密钥对得到。
本实施例的技术方案,在注册完成后,注册服务器可以根据登记信息派生出包括公钥和私钥的非对称密钥对,将公钥下发至设备,设备可以接收该公钥并保存,后续即可通过设备唯一的公钥实现设备与业务服务器之间进行一机一密的认证以及数据传输等操作,从而降低设备接入难度。
对应于上述设备注册方法,下面阐述一种设备注册装置的实施例。
参考图3,图3是一个实施例的设备注册装置结构示意图,应用于设备上,包括:
登记信息发送模块11,用于在本设备注册前,读取本设备上电产生的第一SRAM值,并根据所述第一SRAM值生成登记信息发送至注册服务器进行保存;
注册请求发送模块12,用于在本设备注册时,读取本设备上电产生的第二SRAM值,根据所述第二SRAM值生成注册请求发送至所述注册服务器;其中,所述注册服务器根据所述注册请求从登记信息中查找与所述第二SRAM值相匹配的第一SRAM值,完成本设备的注册流程。
本申请的设备注册装置与设备注册方法一一对应,在上述设备注册方法实施例中的技术特征及其技术效果均适应于设备注册装置实施例中,特此声明。
参考图4,图4是另一个实施例的设备注册方法的流程图,该方案可以应用于注册服务器上,包括如下步骤:
S21,在设备注册前,如设备出厂时,接收各个设备发送的登记信息并进行登记;其中,所述登记信息包括各个设备上电产生的第一SRAM值。
S22,在设备注册时,即设备需要进行激活/初始化时,接收目标设备发送的注册请求;其中,所述注册请求为所述目标设备依据设备上电产生的第二SRAM值生成。
S23,根据所述注册请求在所保存的登记信息中查找与所述第二SRAM值相匹配的第一SRAM值,完成所述目标设备的注册流程。
本申请的设备注册技术方案,通过前置的注册步骤,可以有效防止未注册与仿造的设备获取支撑硬件运行的软件或者开启核心功能,在设备注册时仅需要将SRAM值读取出来注册到注册服务器即可,无需在生产线上对设备进行烧录证书等操作,便于设备接入,提升了设备认证接入的灵活性。
在一个实施例中,对于步骤S21的接收各个设备发送的登记信息并进行登记的步骤,可以依据所述登记信息中的第一SRAM值计算各个设备的第一UUID,并依据各个设备的第一UUID建立设备UUID库;具体的,UUID是设备的通用唯一识别码,通过UUID唯一绑定硬件设备,保证注册的身份信息最高级别的安全强度,无法被篡改。
对于步骤S23的根据所述注册请求在所保存的登记信息中查找与所述第二SRAM值相匹配的第一SRAM值的步骤,可以包括如下:
(1)依据所述注册请求中的第二SRAM值计算所述目标设备的第二UUID;具体的,依据上述计算第一UUID的同样算法,计算第二UUID。
(2)根据所述目标设备的第二UUID从所述设备UUID库查询相匹配的第一UUID;具体的,通过同样算法计算第二UUID,如果第一SRAM值与第二SRAM值是相等的,对应地,设备UUID库可以查询到第二UUID相匹配的第一UUID。
(3)确认对所述目标设备进行注册;具体的,在查询到设备UUID库存在该目标设备的UUID后,确认该目标是合法设备,注册通过。
进一步的,本申请的设备注册方法,还可以在完成所述目标设备的注册流程的步骤之后,根据目标设备的第一UUID派生生成非对称密钥对的公钥与私钥,然后将公钥下发至目标设备进行保存,用于目标设备与业务服务器进行业务交互。
更进一步的,本申请的设备注册方法,还可以根据各个设备的第一UUID分别生成的非对称密钥对的私钥生成各个设备的私钥与相应第一UUID的映射表;通过映射表,可以记录私钥与UUID之间的对应关系,后续进行设备认证时,可以根据设备上传SRAM值利用相同算法计算UUID,从而根据该UUID查询到相应的私钥。
本实施例的技术方案,注册服务器根据设备的第一UUID生成非对称密钥对的公钥与私钥,将公钥下发至设备进行保存,使得设备可以使用该密钥与业务服务器进行业务交互;该技术方案利用设备SRAM的PUF特性生成设备硬件级别唯一标识UUID,根据UUID又可以生成唯一的非对称密钥对,通过设备唯一的密钥实现设备与业务服务器之间进行一机一密的注册、认证以及数据传输等操作,降低了设备接入难度。
对应于上述设备注册方法,下面阐述另一种设备注册装置的实施例。
参考图5,图5是另一个实施例的设备注册装置结构示意图,应用于注册服务器上,包括:
登记信息接收模块21,用于在设备注册前,接收各个设备发送的登记信息并进行登记;其中,所述登记信息包括各个设备上电产生的第一SRAM值;
注册请求接收模块22,用于在设备注册时,接收目标设备发送的注册请求;其中,所述注册请求为所述目标设备依据设备上电产生的第二SRAM值生成;
注册请求处理模块23,用于根据所述注册请求在所保存的登记信息中查找与所述第二SRAM值相匹配的第一SRAM值,完成所述目标设备的注册流程。
本申请的设备注册装置与设备注册方法一一对应,在上述设备注册方法实施例中的技术特征及其技术效果均适应于设备注册装置实施例中,特此声明。
本申请的设备注册技术方案,在注册前,读取设备上电产生的第一SRAM值,并生成登记信息发送至注册服务器进行保存,在设备注册时,再读取设备上电产生的第二SRAM值生成注册请求发送至注册服务器,注册服务器根据注册请求从登记信息中查找到与第二SRAM值相匹配的第一SRAM值,完成设备的注册流程。该技术方案,通过前置的注册步骤,可以有效防止未注册或者仿造的设备获取支撑硬件运行的软件或者开启核心功能,在设备注册时,仅需要将SRAM值读取出来注册到注册服务器即可,无需在生产线上对设备进行烧录证书等操作,便于设备接入,提升了设备认证接入的灵活性。
基于上述各实施例的方案,下面阐述一个示例的设备与注册服务器进行注册流程图。
参考图6,图6是一个示例的设备与注册服务器进行注册的交互图,如图中,该交互流程主要包括如下步骤:
s601,在设备出厂时,设备读取SRAM值发送至注册服务器;
s602,注册服务器接收SRAM值并计算设备UUID,利用各个设备的UUID建立UUID库;
s603,设备激活/初始化时,设备读取SRAM值并发送注册请求至注册服务器;
s604,注册服务器接收SRAM值并计算UUID;
s605,利用计算的UUID查询UUID库;
s606,查询UUID库中是否存在该计算的UUID,若是,注册(激活/初始化)成功,并执行s607,否则注册失败;
s607,根据UUID生成非对称密钥对priv_key与pub_key;
s608,生成设备UUID与私钥priv_key之间的映射表;其中,映射表的作用主要是便于后续业务服务器通过SRAM值来拉取私钥priv_key进行认证鉴权;
s609,将公钥pub_key下发到设备;
s610,设备接收公钥pub_key并保存,用于与业务服务器进行交互。
上述实施例的技术方案,本申请利用电子设备的存储芯片中广泛存在的SRAM作为PUF,基于存储芯片在制造过程中差异,及其表现在不同的存储芯片上电初始值完全不同的特性,在存储芯片未初始化的情况下上电并读出SRAM值,以设备唯一的位模式进行响应,将其登记到注册服务器;在进行激活/初始化时,同一个存储芯片加电并再次读出SRAM值,将存储芯片读出的SRAM值发送至注册服务器进行注册,由于前后两次读出的SRAM PUF响应与初始位模式是基本相同的,从而确定了该设备为合法设备允许其注册,实现了设备注册流程,无需在生产线上对设备进行烧录证书等操作。
另外,基于SRAM PUF生成设备唯一的密钥,即根据存储芯片的SRAM PUF的特性并在注册服务器上根据算法生成对应设备的唯一标识UUID,然后根据UUID生成唯一的非对称密钥对,将私钥存于注册服务器,将公钥存于设备,从而在后续可以实现设备与业务服务器之间进行一机一密的身份认证以及数据加密等操作。
下面阐述本申请设备认证技术方案的实施例,本实施例中认证过程可以是指认证/鉴权过程。
参考图7,图7是一个实施例的设备认证方法流程图,应用于设备上,包括如下步骤:
S31,在本设备上产生随机数,根据预存的公钥加密所述随机数得到加密数据;具体的,对于随机数,可以是设备获取的任意随机变量,例如,可以去时间戳作为随机数。
对于公钥,可以为注册服务器对本设备的登记信息进行非对称加密得到;对于非对称加密处理,可以参考本申请的设备注册方法的实施例。
S32,读取本设备上电产生的第三SRAM值,根据所述第三SRAM值、随机数和加密数据生成认证请求,发送到业务服务器进行认证。
业务服务器接收到的认证请求后,从所述注册服务器获取本设备的私钥,对所述认证请求进行认证,所述公钥和私钥为非对称加密对。
本申请的设备认证技术方案,在保证一机一密的安全强度的前提下,降低了设备认证过程的技术难度。
下面阐述本申请的设备认证装置的实施例。
参考图8,图8是一个实施例的设备认证装置,应用于设备上,包括:
随机数加密模块31,用于在本设备上产生随机数,根据预存的公钥加密所述随机数得到加密数据;其中,所述公钥为注册服务器对本设备的登记信息进行非对称加密得到;
认证请求模块32,用于读取本设备上电产生的第三SRAM值,根据所述第三SRAM值、随机数和加密数据生成认证请求,发送到业务服务器进行认证;其中,所述业务服务器从所述注册服务器获取本设备的私钥,对所述认证请求进行认证,所述公钥和私钥为非对称加密对。
本申请的设备认证装置与设备认证方法一一对应,在上述设备认证方法实施例中的技术特征及其技术效果均适应于设备认证装置实施例中,特此声明。
参考图9,图9是另一个实施例的设备认证方法流程图,应用于业务服务器上,包括如下步骤:
S41,接收目标设备发送的认证请求。
对于认证请求,可以为目标设备依据设备上电产生的第三SRAM值、随机数和加密数据生成,所述加密数据为所述目标设备根据预存的公钥加密产生的随机数得到,所述公钥为注册服务器对目标设备的登记信息进行非对称加密得到。
S42,根据所述第三SRAM值从所述注册服务器获取所述目标设备的私钥;上述公钥和私钥为非对称加密对,可以基于本申请的设备注册流程中注册服务器保存的非对称加密对,利用设备的SRAM值从注册服务器中拉取私钥。
具体的,利用设备的SRAM值计算UUID,利用私钥与UUID之间的映射表,从而查询到该设备对应的私钥。
S43,利用所述目标设备的私钥对所述认证请求进行认证。
本申请的设备认证技术方案,在保证一机一密的安全强度的前提下,降低了设备认证过程的技术难度。
在一个实施例中,对于步骤S43的利用所述目标设备的私钥对所述认证请求进行认证的步骤,可以包括如下:
(1)使用所述私钥解密所述认证请求中的加密数据,得到加密数据原文;具体的,利用非对称密钥对随机数在设备端进行加密和在业务服务器端进行解密处理。
(2)若所述加密数据原文等于所述随机数,则认证通过,否则认证不通过;具体的,通过加密解密过程,判断到加密数据原文等于原来发送的随机数,确认该目标设备为合法设备,认证通过。
下面阐述本申请的另一种设备认证装置实施例。
参考图10,图10是另一个实施例的设备认证装置结构示意图,应用于业务服务器上,包括:
认证响应模块41,用于接收目标设备发送的认证请求;其中,所述认证请求为目标设备依据设备上电产生的第三SRAM值、随机数和加密数据生成,所述加密数据为所述目标设备根据预存的公钥加密产生的随机数得到,所述公钥为注册服务器对目标设备的登记信息进行非对称加密得到;
私钥拉取模块42,用于根据所述第三SRAM值从所述注册服务器获取所述目标设备的私钥;其中,所述公钥和私钥为非对称加密对;
认证处理模块43,用于利用所述目标设备的私钥对所述认证请求进行认证。
本申请的设备认证装置与设备认证方法一一对应,在上述设备认证方法实施例中的技术特征及其技术效果均适应于设备认证装置实施例中,特此声明。
基于上述各实施例的方案,下面阐述一个示例的设备与业务服务器进行认证流程图。
参考图11,图11是一个示例的设备与业务服务器进行认证的交互图,如图中,该交互流程主要包括如下步骤:
S1101,设备发起业务交互请求时,获取随机数a;
S1102,通过注册获取的公钥pub_key加密随机数a生成加密数据a_en;
S1103,读取设备上电的SRAM值,将SRAM值、随机数a和加密数据a_en生成认证请求SRAM+a+a_en,发送至业务服务器;
S1104,业务服务器根据SRAM值从注册服务器拉取设备的私钥priv_key;其中,业务服务器将设备的SRAM值发送到注册服务器,注册服务器根据SRAM值计算到UUID,再根据UUID在映射表查找对应的私钥priv_key进行认证鉴权;
S1105,使用私钥priv_key解密a_en得加密数据原文a_en_de;
S1106,判断随机数a是否等于加密数据原文a_en_de;若是,认证通过,否则认证不通过。
综合上述各实施例的技术方案,利用设备上产生的随机数,在设备端使用预存的公钥进行加密,在业务服务器端中,通过从注册服务器拉取非对称密钥对的私钥进行解密,利用加密和解密处理,再判断加密数据原文是否与随机数一致,从而确定设备的合法性,完成了业务服务器对设备的认证过程,基于本申请提供的注册流程基础上,本申请技术方案能够大幅度降低设备认证过程的技术难度。
下面阐述本申请的设备数据传输技术方案的实施例,本实施例的设备数据传输主要是设备对需要传输的数据进行加密传输到业务服务器的过程。
参考图12,图12是一个实施例的设备数据传输方法流程图,应用于设备上,包括如下步骤:
S51,在本设备发起数据传输时,根据所述公钥对传输数据进行加密得到加密传输数据。
S52,将本设备上电产生的第四SRAM值和所述加密传输数据打包传输至业务服务器;其中,所述业务服务器根据所述私钥对所述加密传输数据进行解密得到原始数据。
参考图13,图13是一种设备数据传输装置结构示意图,应用于设备上,包括:
数据加密模块51,用于在本设备发起数据传输时,根据所述公钥对传输数据进行加密得到加密传输数据;
数据传输模块52,用于将本设备上电产生的第四SRAM值和所述加密传输数据打包传输至业务服务器;其中,所述业务服务器根据所述私钥对所述加密传输数据进行解密得到原始数据。
本申请的设备数据传输装置与设备数据传输方法一一对应,在上述设备数据传输方法实施例中的技术特征及其技术效果均适应于设备数据传输装置实施例中,特此声明。
参考图14,图14是另一个实施例的设备数据传输方法流程图,应用于业务服务器上,包括如下步骤:
S61,接收所述目标设备上传的数据包。
对于数据包,包括目标设备上电产生的第四SRAM值和加密传输数据,所述加密传输数据为目标设备根据所述公钥对传输数据进行加密得到;
上述公钥和私钥为非对称加密对,可以基于本申请的设备注册流程中注册服务器保存的非对称加密对,利用设备的SRAM值从注册服务器中拉取私钥。
具体的,利用设备的SRAM值计算UUID,利用UUID与密钥之间的映射表,从而查询到该设备对应的私钥。
S62,根据第四SRAM值从注册服务器中从注册服务器中获取所述目标设备的私钥;
S63,根据所述私钥对所述加密传输数据进行解密得到原始数据。
本申请的设备数据传输技术方案,在保证一机一密的安全强度的前提下,降低了设备数据传输过程的技术难度。
参考图15,图15是另一种设备数据传输装置结构示意图,应用于业务服务器上,包括:
数据接收模块61,用于接收所述目标设备上传的数据包;其中,所述数据包包括目标设备上电产生的第四SRAM值和加密传输数据,所述加密传输数据为目标设备根据所述公钥对传输数据进行加密得到;
私钥拉取模块62,用于根据第四SRAM值从注册服务器中从注册服务器中获取所述目标设备的私钥;
数据解密模块63,用于根据所述私钥对所述加密传输数据进行解密得到原始数据。
本申请的设备数据传输装置与设备数据传输方法一一对应,在上述设备数据传输方法实施例中的技术特征及其技术效果均适应于设备数据传输装置实施例中,特此声明。
基于上述各实施例的方案,下面阐述一个示例的设备与业务服务器进行认证流程图。
参考图16,图16是一个示例的设备与业务服务器进行数据传输的交互图,如图中,该交互流程主要包括如下步骤:
S1601,设备发起数据传输时,利用注册时获取的公钥pub_key对传输数据进行加密,得到加密传输数据data_en;
S1602,设备将数据包SRAM+data_en发送到业务服务器;
S1603,业务服务器在接收到数据包SRAM+data_en后,根据SRAM值从注册服务器拉取取设备的私钥priv_key;
S1604,利用私钥priv_key解密加密传输数据data_en得到原始数据。
综合上述实施例的技术方案,本申请利用注册时获取的公钥pub_key对传输数据进行加密,结合设备上电读取的SRAM值打包发送到业务服务器,业务服务器根据SRAM从注册服务器拉取私钥priv_key,对加密传输数据data_en进行解密,从而可以得到原始数据,实现数据加密传输过程。
下面阐述本申请的电子设备、计算机设备及计算机设备存储介质的实施例。
基于与本申请的实施例中所示的方法相同的原理,本申请的实施例中还提供了一种电子设备,该电子设备可以包括但不限于:
处理器和存储器;
存储器,用于存储计算机操作指令;
处理器,用于通过调用计算机操作指令执行实施例中应用于设备上的设备注册、认证及数据传输方法。
基于与本申请的实施例中所示的方法相同的原理,本申请的实施例中还提供了一种计算机设备,该计算机设备可以包括但不限于:
处理器和存储器;
存储器,用于存储计算机操作指令;
处理器,用于通过调用计算机操作指令执行实施例中应用于设备上的设备注册、认证及数据传输方法。
与现有技术相比,本申请中的电子设备和计算机设备的技术方案,是的电子设备在注册时仅需要将存储芯片的SRAM值读取出来注册到相应的服务端平台即可,无需在生产线上进行烧录证书等操作,便于接入。在进行设备认证的同时一会提供一机一密的秘钥用于后续业务的交互。通过前置的注册步骤,可以有效防止未注册与仿造的设备获取支撑硬件运行的软件或者开启核心功能。使用硬件设备的SRAM PUF 生成设备硬件级别唯一标识UUID;将设备硬件级别UUID的唯一性应用到IoT设备的激活、认证与数据加密整个交互过程,在保证一机一密的安全强度的前提下,降低了接入的难度。
如图17所示,图17是一个实施例的计算机设备结构示意图,该计算机设备包括:处理器1701和存储器1703。其中,处理器1701和存储器1703相连,如通过总线1702相连。可选地,计算机设备1700还可以包括收发器1704。
需要说明的是,实际应用中收发器1704不限于一个,该计算机设备1700的结构并不构成对本申请实施例的限定。
处理器1701可以是CPU(Central Processing Unit,中央处理器),通用处理器,DSP(Digital Signal Processor,数据信号处理器),ASIC(Application SpecificIntegrated Circuit,专用集成电路),FPGA(Field Programmable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器1701也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。
总线1702可包括一通路,在上述组件之间传送信息。总线1702可以是PCI(Peripheral Component Interconnect,外设部件互连标准)总线或EISA(ExtendedIndustry Standard Architecture,扩展工业标准结构)总线等。总线1702可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器1703可以是ROM(Read Only Memory,只读存储器)或可存储静态信息和指令的其他类型的静态存储设备,RAM(Random Access Memory,随机存取存储器)或者可存储信息和指令的其他类型的动态存储设备,也可以是EEPROM(Electrically ErasableProgrammable Read Only Memory,电可擦可编程只读存储器)、CD-ROM(Compact DiscRead Only Memory,只读光盘)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
存储器1703用于存储执行本申请方案的应用程序代码,并由处理器1701来控制执行。处理器1701用于执行存储器1703中存储的应用程序代码,以实现前述方法实施例所示的内容。
其中,计算机设备包括但不限于:移动电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。图17示出的计算机设备仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
下面阐述本申请的计算机可读存储介质的实施例。
本申请提供的计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,当其在计算机上运行时,使得计算机可以执行前述方法实施例中相应内容。
应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
需要说明的是,本申请上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
上述计算机可读介质可以是上述计算机设备中所包含的;也可以是单独存在,而未装配入该计算机设备中。
上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该计算机设备执行时,使得该计算机设备执行上述实施例所示的方法。
可以以一种或多种程序设计语言或其组合来编写用于执行本申请的操作的计算机程序代码,上述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,模块的名称在某种情况下并不构成对该模块本身的限定。
以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。