掌桥专利:专业的专利平台
掌桥专利
首页

写入安全信息的方法及装置

文献发布时间:2024-04-18 19:53:33


写入安全信息的方法及装置

技术领域

本申请涉及信息处理技术领域,具体涉及一种写入安全信息的方法及装置。

背景技术

目前,上位机可以通过写指令向目标设备发送安全信息,这样,目标设备可以执行安全信息的写操作将安全信息记录在自身的存储器中。然而,出于一些原因,目标设备通过写操作写入的安全信息可能出现错误,此时,目标设备可能无法基于安全信息进行安全通信。

例如,上述安全信息通常由服务器(例如,密钥管理服务器(Key ManagementService,KMS))管理,若KMS本身生成安全信息错误,KMS可能会将错误的安全信息发送给目标设备,相应地,目标设备基于错误的安全信息进行写操作。之后,目标设备无法基于安全信息进行安全通信。

又例如,上述安全信息可以由服务器通过上位机发送给目标设备。当上位机受到攻击,服务器发送的安全信息可能会被篡改。此时,上位机可能会将篡改后的安全信息发送给目标设备,相应地,目标设备基于篡改后的安全信息进行写操作。之后,目标设备无法基于安全信息进行安全通信。

发明内容

本申请实施例致力于提供一种写入安全信息的方法及装置。下文从几个方面进行介绍。

第一方面,提供了一种写入安全信息的方法,所述方法应用于目标设备,所述方法包括:从上位机接收写指令,所述写指令用于指示所述目标设备写入服务器生成的安全信息,所述安全信息用于所述目标设备进行安全通信;响应于所述写指令,执行所述安全信息的写操作,所述写操作用于将所述安全信息记录在所述目标设备的存储器中;在所述写操作执行完毕之后,从所述服务器获取所述安全信息的校验数据;根据所述校验数据校验所述安全信息。

第二方面,提供了一种写入安全信息的方法,所述方法应用于服务器,所述方法包括:通过上位机向目标设备发送所述目标设备的安全信息,所述安全信息用于所述目标设备进行安全通信;基于所述安全信息生成所述安全信息的校验数据,所述安全信息的校验数据用于对所述安全信息进行校验;接收所述目标设备发送的校验请求,所述校验请求用于请求所述安全信息的校验数据;响应于所述校验请求,向所述目标设备发送校验响应,所述校验响应包含所述安全信息的校验数据。

第三方面,提供了一种目标设备,包括输入/输出接口以及处理器,所述输入/输出接口与所述处理器之间通信连接,所述输入/输出接口,用于从上位机接收写指令,所述写指令用于指示所述目标设备写入服务器生成的安全信息,所述安全信息用于所述目标设备进行安全通信;所述处理器,用于响应于所述写指令,执行所述安全信息的写操作,所述写操作用于将所述安全信息记录在所述目标设备的存储器中;所述处理器,还用于在所述写操作执行完毕之后,从所述服务器获取所述安全信息的校验数据;所述处理器,还用于根据所述校验数据校验所述安全信息。

第四方面,提供一种服务器,包括输入/输出接口以及处理器,所述输入/输出接口与所述处理器之间通信连接,所述输入/输出接口,用于通过上位机向目标设备发送所述目标设备的安全信息,所述安全信息用于所述目标设备进行安全通信;所述处理器,用于基于所述安全信息生成所述安全信息的校验数据,所述安全信息的校验数据用于对所述安全信息进行校验;所述输入/输出接口,用于接收所述目标设备发送的校验请求,所述校验请求用于请求所述安全信息的校验数据;所述发送单元,还用于响应于所述校验请求,向所述目标设备发送校验响应,所述校验响应包含所述安全信息的校验数据。

第五方面,提供了一种计算机程序产品,包括计算机程序/指令,当所述计算机程序/指令处理器被执行时实现如上述各方面中任一项所述的方法。

在一些实现方式中,上述计算机程序产品包括计算机程序代码,当计算机程序代码在计算机上运行时,使得计算机执行上述各方面所示的控制方法。

在另一些实现方式中,计算机程序产品包括计算机可读介质,计算机可读介质存储有程序代码,当计算机程序代码在计算机上运行时,使得计算机执行上述各方面所示的控制方法。

在本申请中目标设备可以在写操作执行完成之后,从服务器获取安全信息的校验数据,并根据校验数据对写入的安全信息进行校验。相比于传统的安全信息写入方案中,目标设备在写入完成安全信息后便直接基于安全信息进行安全通信,有助于提高目标设备写入安全信息的准确性。

附图说明

图1所示为本申请实施例适用的场景的示意图。

图2是本申请实施例中写入安全信息的方法的示意性流程图。

图3是本申请实施例的安全信息的校验过程的示意性流程图。

图4是本申请实施例的安全信息的校验数据的示意图。

图5是本申请另一实施例中写入安全信息的方法的示意性流程图。

图6是本申请实施例的目标设备的示意图。

图7是本申请实施例的服务器的示意图。

图8是本申请另一实施例的装置的示意性框图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。

为了便于理解,下文结合图1介绍本申请实施例适用的场景。参见图1所示的场景100可以包括目标设备110,上位机120,服务器130以及服务器140。通常,为了提高目标设备110通信的安全性,服务器130可以向上位机120发送目标设备110的安全信息,相应地,上位机120可以指示目标设备110进行安全信息的写入,之后,目标设备110可以基于写入的安全信息进行安全通信。

在一些实现方式中,安全信息可以包括以下信息中的一种或多种:目标设备的身份认证密钥,目标设备的空中下载技术(Over-the-Air Technology, OTA)的加密密钥,目标设备的OTA签名密钥,以及目标设备的蓝牙密钥。

本申请实施例对目标设备不作限定。目标设备可以指写入安全信息的设备。在一些实现方式中,目标设备可以是物联网设备,例如,目标设备可以是物联网设备中的充电桩。如前文所述,安全信息可以用于安全通信。因此,在一些场景中,进行安全信息写入的目标设备可以为通信板。以充电桩为例,目标设备可以为充电桩中的通信板。

本申请实施例对上位机不作限定。上位机可以指与下位机(如目标设备等)相对应的一种计算机系统,通常由计算机软件和硬件组成。它主要用于监控和控制下位机的运行状态,以及实现数据的采集、处理和存储等功能。在工业自动化、机器人控制、仪器仪表等领域中广泛应用。在本申请实施例中,上位机可以用于指示目标设备进行安全写入。

本申请实施例对服务器130不作限定。在一些实现方式中,服务器130可以为目标设备的产线提供服务。例如,服务器130可以为目标设备提供注册服务。又例如,服务器130可以为目标设备向服务器140请求安全信息。又例如,服务器130可以提供为目标设备的固件进行更新的服务。

以目标设备为充电桩为例,例如,服务器130可以为充电桩提供计费服务。又例如,服务器130可以为充电桩提供充电服务。

本申请实施例对服务器140不作限定。在一些实现方式中,服务器140可以为物联网设备,而不仅是目标设备提供服务。其中,物联网设备可以包括Tbox、车机等设备。例如,服务器140可以为物联网设备提供固件升级服务。又例如,服务器140可以为物联网设备提供日志升级服务。

在一些实现方式中,服务器140还可以提供安全信息,此时,服务器140例如可以是KMS。当然,在本申请实施例中,为物联网设备提供服务的服务器140可以与提供安全信息的服务器是相互独立的服务器。

需要说明的是,上述服务器130和/或服务器140可以是云端服务器,当然,在本申请实施例的中,上述服务器130和/或服务器140也可以是普通的服务器。

在一些实现方式中,目标设备110与上位机120之间可以通过控制器局域网总线(Controller AreaNetwork,CAN)协议通信。在另一些实现方式中,目标设备110与服务器130之间可以通过消息队列遥测传输(Message QueuingTelemetry Transport,MQTT)协议通信。当然,在本申请实施例中,对上述各个设备之间的通信协议不作具体限定。

基于上文的介绍可知,上位机可以通过写指令向目标设备发送安全信息,这样,目标设备可以执行安全信息的写操作将安全信息记录在自身的存储器中。然而,出于一些原因,目标设备通过写操作写入的安全信息可能出现错误,此时,目标设备可能无法基于安全信息进行安全通信。

例如,上述安全信息通常由服务器(例如,KMS)管理,若KMS本身生成安全信息错误,KMS可能会将错误的安全信息发送给目标设备,相应地,目标设备基于错误的安全信息进行写操作。之后,目标设备无法基于安全信息进行安全通信。

又例如,上述安全信息可以由服务器通过上位机发送给目标设备。当上位机受到攻击,服务器发送的安全信息可能会被篡改。此时,上位机可能会将篡改后的安全信息发送给目标设备,相应地,目标设备基于篡改后的安全信息进行写操作。之后,目标设备无法基于安全信息进行安全通信。

因此,针对上述问题,本申请实施例提供了一种写入安全信息的方法,在该方法中,目标设备可以在写操作执行完成之后,从服务器获取安全信息的校验数据,并根据校验数据对写入的安全信息进行校验,有助于提高目标设备写入安全信息的准确性。

为了便于理解,下文结合图2介绍本申请实施例的写入安全信息的方法。应理解,图2所示的方法可以适用于图1所示的场景,另外,图2中的服务器可以是图1中的服务器130。

图2是本申请实施例中写入安全信息的方法的示意性流程图。图2所示的方法可以由目标设备执行,图2所示的方法包括步骤S210至步骤S240。

在步骤S210中,从上位机接收写指令。

在一些实现方式中,写指令用于指示目标设备写入服务器生成的安全信息。

在步骤S220中,响应于写指令,执行安全信息的写操作,写操作用于将安全信息记录在目标设备的存储器中。

在一些实现方式中,目标设备在接收到写指令后,可以进入安全信息写入模式,来向存储器中写入安全信息。

在一些场景中,可能出于一些原因,目标设备未成功进入安全信息写入模式,例如,目标设备未接收到写指令,此时,由于上位机和目标设备可能一直处于等待状态,导致安全信息写入所需的时间较长。因此,为了避免上述问题,目标设备在接收到写指令后,可以在预设时间内向上位机反馈是否进入安全信息写入模式。相应地,若上位机在预设时间段内未收到上述反馈,则上位机可以重新向目标设备发送写指令,有助于减少安全信息写入所需的时间。

在步骤S230中,在写操作执行完毕之后,从服务器获取安全信息的校验数据。

在一些实现方式中,若安全信息包括一种或多种密钥信息,则校验数据可以包括利用密钥信息加密后的加密数据。在另一些实现方式中,校验数据可以包括基于安全信息计算的校验码。

需要说明的是,本申请实施例对校验码的具体形式不作限定。例如,校验码可以为校验和(Checksum),校验和通常是一个二进制数,用于检测数据传输或存储中的错误。常见的校验和算法包括循环冗余校核(Cyclic Redundancy Check,CRC)、MD5信息摘要算法(MD5Message-DigestAlgorithm)等。又例如,校验码可以为奇偶校验(Parity Check)码,奇偶校验码在每个字节或字的末尾添加一个附加位,使得该字节或字的位数为偶数或奇数。如果附加位的总数为偶数,则称为偶校验;如果总数为奇数,则称为奇校验。又例如,校验码可以为Luhn校验(LuhnAlgorithm)码。

另外,在本申请实施例中,对目标设备从服务器请求校验数据的方式不作限定。在一些实现方式中,目标设备可以基于消息队列遥测传输(Message Queuing TelemetryTransport,MQTT)协议,向服务器请求校验数据。其中,MQTT是一个基于客户端-服务器的消息发布/订阅传输协议。MQTT协议是轻量、简单、开放和易于实现的,这些特点使它适用范围非常广泛。在很多情况下,包括受限的环境中,如:机器与机器(M2M)通信和物联网(IoT)。其在,通过卫星链路通信传感器、偶尔拨号的医疗设备、智能家居、及一些小型化设备中已广泛使用。当然,在本申请实施例中,目标设备还可以通过其他方式向服务器请求校验数据。

在步骤S240中,根据校验数据校验安全信息。

在本申请实施例中,针对校验数据中包含的数据类型不同,对安全信息的校验过程可能略有差异。在一些实现方式中,若校验数据可以包括利用密钥信息加密后的加密数据,则校验安全信息的过程可以包括确定目标设备中存储的密钥信息是否可以对加密数据进行解密。例如,目标设备中存储的密钥信息可以对加密数据成功解密,则可以确定安全信息校验成功。又例如,目标设备中存储的密钥信息无法对加密数据成功解密,则可以确定安全信息校验失败。

在另一些实现方式中,若校验数据可以包括基于安全信息计算的校验码(又称“第一校验码”),则校验安全信息的过程可以包括确定目标设备中存储的安全信息计算的校验码(又称“第二校验码”)与校验数据中包括的第一校验码是否相同。例如,第一校验码和第二校验码相同,则可以确定安全信息校验成功。又例如,第一校验码和第二校验码不同,则可以确定安全信息校验失败。

当然,在本申请实施例中,上述校验数据还可以包括加密数据以及校验码,此时,校验安全信息的过程可以包括确定第一校验码与第二校验码是否相同,以及目标设备中存储的密钥信息是否可以对加密数据成功解密。

也即是说,上述安全信息包括至少一种密钥信息,校验数据包括基于至少一种密钥信息加密的密文数据以及第一校验码,上述步骤S240可以包括:利用安全信息中的至少一种密钥信息对密文数据进行解密,并基于安全信息中的至少一种密钥信息计算第二校验码;基于对密文数据的解密结果、第一校验码以及第二校验码,确定安全信息的校验结果。

在一些实现方式中,若密文数据的解密成功,并且第一校验码与第二校验码相同,则安全信息的校验结果为校验成功。

在另一些实现方式中,若密文数据的解密失败,和/或第一校验码与第二校验码不同,则安全信息的校验结果为校验失败。

如前文介绍,安全信息可能包括一种或多种密钥信息,以安全信息包括多种密钥信息为例,校验数据中可以包括基于多种密钥信息分别加密的密文数据,相应地,在解密过程中,可以利用安全信息中的多种密钥信息中的每种密钥信息对对应的密文数据进行解密。下文将结合图3以及图4具体介绍安全信息的校验过程,为了简洁,在此不再赘述。当然,在本申请实施例中,校验数据中的密文数据也可以是利用多种密钥信息一起加密得到的,相应地,解密过程可以利用多种密钥信息一起对加密数据进行解密。

以安全信息包括多种密钥信息为例,校验数据中可以包括基于多种密钥信息分别生成的第一校验码,也即是说,多种密钥信息可以对应一个第一校验码,相应地,目标设备可以利用存储的多种密钥信息分别生成多个密钥信息对应的第二校验码,也即是说,多个密钥信息中的一个密钥信息可以对应一个第二校验码。此时,当多种密钥信息中的每个密钥信息对应的第一校验码与对应的第二校验码相同时,可以确定安全信息校验成功。当多种密钥信息中的某一密钥信息对应的第一校验码与对应的第二校验码不同时,可以确定安全信息校验失败。下文将结合图3具体介绍安全信息的校验过程,为了简洁,在此不再赘述。

当然,在本申请实施例中,校验数据中的第一校验码也可以是利用多种密钥信息一起生成的,相应地,安全信息的验证过程可以利用多种密钥信息一起生成第二校验码,并基于第一校验码与第二校验码是否相同,来确定安全信息验证成功或验证失败。

在一些场景中,目标设备可以通过上位机向服务器发送用于请求校验数据的校验请求。但是,上位机可能会篡改校验请求,此时,目标设备可能无法接收到安全信息的校验数据。

例如,上位机可能会被第三方攻击,导致校验请求被篡改或未被正确传输,此时,目标设备可能无法接收到安全信息的校验数据。

又例如,上位机可能为非法的上位机,此时,非法的上位机可能会篡改校验请求,导致目标设备可能无法接收到安全信息的校验数据。

又例如,上位机可能为与目标设备不匹配的上位机,此时,该上位机可能会篡改校验请求,导致目标设备可能无法接收到安全信息的校验数据。

因此,为了提高目标设备接收校验数据的成功率,目标设备可以直接向服务器发送校验请求,此时,校验请求的传输过程不经过上位机。

或者说,上述步骤S230可以包括:通过第一路径向服务器发送校验请求,校验请求用于请求校验数据;通过第二路径接收服务器发送的校验响应,校验响应包含校验数据;其中,第一路径跳过上位机,第二路径经过上位机,且上位机用于透传经过第二路径传输的校验响应。

上述第一路径跳过上位机,可以理解为传输校验请求的路径不经过上位机,或者说,校验请求的传输过程不经过上位机。

在一些实现方式中,上述上位机可以为非法的上位机、与目标设备不匹配的上位机或者第三方攻击的上位机,本申请实施例对此不作限定。

在一些实现方式中,上述未基于校验数据对安全信息进行验证的目标设备,可以理解为未在服务器注册成功的目标设备,相应地,若目标设备对安全信息验证成功后,目标设备可以完成在服务器的注册。下文将结合图3具体介绍(例如,参见步骤S355),为了简洁,在此不再赘述。

在本申请实施例中,服务器可以通过上位机向目标设备发送校验数据。但是,在一些场景下,校验数据可能会被上位机篡改,导致目标设备对安全信息的校验失效。因此,在本申请实施例中,服务器可以利用目标设备对应的会话密钥,对校验数据进行加密,并将加密后的会话密钥通过上位机发送给目标设备。当然,在本申请实施例中,为了避免校验数据被上位机篡改,校验数据可以由服务器直接发送给目标设备,此时,校验数据的传输过程可以不通过上位机。

在一些实现方式中,上述上位机可以为非法的上位机、与目标设备不匹配的上位机或者第三方攻击的上位机,本申请实施例对此不作限定。

在一些实现方式中,目标设备可以将安全信息的校验结果发送给服务器,相应地,服务器可以基于安全信息的校验结果,确定目标设备是否可以成功注册,相比于传统的方案中,若上位机请求在服务器注册目标设备后,服务器直接对目标设备进行注册,有助于避免目标设备上写入的安全信息与服务器中记录的安全信息不一致。

也即是说,在一些实现方式中,上述方法还包括:若安全信息校验成功,目标设备向服务器发送用于请求注册结果的注册结果查询请求,注册结果查询请求携带指示安全信息校验成功的指示信息;服务器可以基于指示安全信息校验成功的指示信息,确定目标设备在服务器注册成功;之后服务器可以向目标设备发送针对注册结果查询请求的查询响应,查询响应用于指示目标设备在服务器注册成功。

需要说明的是,上述服务器可以是为目标设备提供服务的服务器,例如,可以图1中的服务器130,也即是说,上述目标设备的注册可以理解为是针对服务器130而言的。

在一些实现方式中,上述服务器130在接收到校验结果之后,可以将校验结果发送给服务器140(例如,IoT服务器),之后,服务器140可以基于校验结果确定目标设备是否在服务器140上注册成功。在一些实现方式中,若安全信息校验成功,服务器130向服务器140发送指示安全信息校验成功的指示信息;服务器140可以基于指示安全信息校验成功的指示信息,确定目标设备在服务器140注册成功;之后服务器140可以向服务器130指示目标设备在服务器140注册成功。相反地,若安全信息校验失败,服务器130向服务器140发送指示安全信息校验失败的指示信息;服务器140可以基于指示安全信息校验失败的指示信息,确定目标设备在服务器140注册失败;之后服务器140可以向服务器130指示目标设备在服务器140注册失败。

在一些实现方式中,安全信息的校验数据的数据量较小(例如,校验数据的数据量小于第一阈值),此时,基于较小数据量的校验数据对安全信息进行验证,有助于减少安全信息进行校验所需的时间,以降低安全信息验证过程对目标设备的生产线的效率的影响。例如,校验数据的数据量为48字节时,基于校验数据对安全信息的验证过程所需的时间大约在10秒。

在一些实现方式中,上述对安全信息的校验过程可以是上位机指示目标设备的。在一些实现方式中,上位机可以向目标设备发送校验命令,指示目标设备对安全信息进行校验。由上位机触发目标设备对安全信息进行校验的方案,有助于降低对目标设备能力的要求。当然,在本申请实施例中,对安全信息的校验过程可以由目标设备自主判断,此时可以减少上位机和目标设备之间的信息交互。

为了便于理解,下文以目标设备为充电桩,服务器为云端服务器为例,结合图3以及图4介绍本申请实施例的安全信息的校验过程。图3所示的方法包括步骤S310至步骤S380。

在步骤S310中,上位机向充电桩发送校验命令,校验命令用于指示充电桩对已写入的安全信息进行校验。

在步骤S315中,目标设备可以向云端服务器发送校验请求,校验请求用于请求校验数据。

在步骤S320中,响应于云端服务器接收到校验请求,云端服务器生成校验数据。

参见图4所示,假设安全信息包括OTA签名密钥1、OTA加密密钥1以及BT密钥1。云端服务器可以基于上述安全信息包括的密钥分别生成校验数据。例如,针对OTA签名密钥1,云端服务器生成的校验数据1可以包括基于OTA签名密钥1加密的加密数据1,以及基于OTA签名密钥1生成的校验码1。针对OTA加密密钥1,云端服务器生成的校验数据2可以包括基于OTA加密密钥1加密的加密数据2,以及基于OTA加密密钥1生成的校验码2。针对蓝牙(Bluetooth,BT)密钥1,云端服务器生成的校验数据3可以包括基于BT密钥1加密的加密数据3,以及基于BT密钥1生成的校验码3。

之后,云端服务器可以将针对不同密钥生成的校验数据进行组装,得到目标设备的校验数据400。其中,校验数据400中包含数据部分410以及校验码部分420。其中,数据部分可以承载加密数据1~加密数据3,校验码部分420可以承载校验码1~校验码3。

在步骤S325中,云端服务器向目标设备发送校验数据。

在步骤S330中,若充电桩未收到校验数据,或充电桩与云端服务器连接失败,则充电桩确认安全信息校验失败,并执行步骤S335。

在一些实现方式中,上述充电桩未接收到校验数据,可以包括在预设时间段内充电桩未接收到校验数据。

在步骤S335中,充电桩向上位机发送安全信息校验结果,校验结果指示安全信息校验失败。

在步骤S340中,若充电桩接收到校验数据,则充电桩利用校验数据对已写入的安全信息进行校验,并执行步骤S345。

假设安全信息的校验数据如图4所示,并且充电桩已写入的安全信息包括OTA签名密钥2、OTA加密密钥2以及BT密钥2。针对OTA签名密钥2,充电桩可以利用OTA签名密钥2对加密数据1进行解密,并基于OTA签名密钥2计算校验码4。之后,若加密数据1被成功解密,并且校验码4与校验码1相同,则针对OTA签名密钥2的校验成功。

针对OTA加密密钥2,充电桩可以利用OTA加密密钥2对加密数据2进行解密,并基于OTA加密密钥2计算校验码5。之后,若加密数据2被成功解密,并且校验码5与校验码2相同,则针对OTA加密密钥2的校验成功。

针对BT密钥2,充电桩可以利用BT密钥2对加密数据3进行解密,并基于BT密钥2计算校验码6。之后,若加密数据3被成功解密,并且校验码6与校验码3相同,则针对BT密钥2的校验成功。

最终,若针对上述3种安全信息的校验均成功,则确定充电桩已写入的安全信息校验成功,则执行步骤S345至步骤S360。反之,若上述3种安全信息中有一种安全信息没有校验成功,则确定充电桩已写入的安全信息校验失败,则执行步骤S365至步骤S380。

在步骤S345中,若安全信息的校验结果为校验成功,充电桩向上位机发送安全信息的校验结果,校验结果指示安全信息校验成功。

在步骤S350中,上位机向云端服务器发送注册结果查询请求,注册结果查询请求中携带步骤S345中的校验结果。

在步骤S355中,若安全信息的校验结果为校验成功,云端服务器基于安全信息的校验结果确定充电桩注册成功。

在步骤S360中,云端服务器向上位机发送查询响应,查询响应指示充电桩注册成功。

在步骤S365中,若安全信息的校验结果为校验失败,充电桩向上位机发送安全信息的校验结果,校验结果指示安全信息校验失败。

在步骤S370中,上位机向云端服务器发送注册结果查询请求,注册结果查询请求中携带步骤S365中的校验结果。

在步骤S375中,若安全信息的校验结果为校验失败,云端服务器基于安全信息的校验结果确定充电桩注册失败,并释放已注册的充电桩。

在步骤S380中,云端服务器向上位机发送查询响应,查询响应指示充电桩注册失败。

如上文介绍,在一些场景中,安全信息可以由上位机发送给目标设备,然而,出于一些原因,上位机会对安全信息进行篡改。因此,为了提高传输安全信息的可靠性,服务器可以利用目标设备的会话密钥对安全信息进行加密,相应地,在上位机将加密后的安全信息发送给目标设备后,目标设备利用该会话密钥对安全信息进行解密。也即是说,在传输安全信息的过程中,上位机仅是对安全信息进行透传,不会获取到未加密的安全信息,降低了上位机对未加密的安全信息进行篡改的可能性。

在一些场景中,服务器可能处于一些原因未成功向目标设备发送加密的安全信息,但是服务器也不知道加密的安全信息未传输成功,需要重新传输。相应地,目标设备由于未收到加密的安全信息而一直处于等待状态,此时,两方由于均不知道加密的安全信息的传输进度,可能导致加密的安全信息的传输时间较长。

因此,为了避免上述问题,可以设置一个预设时间段(即等待时间),当经过预设时间段之后,目标设备未收到加密的安全信息,目标设备可以通过上位机重新向服务器请求加密的安全信息。相反地,在预设时间段内,目标设备收到加密的安全信息,则安全信息的传输过程成功。

在本申请实施例中,对上述预设时间段的起始时间不作限定,例如,预设时间段的起始时间可以基于目标设备向上位机发送加密的设备信息的时间确定。

当然,在本申请实施例中,上述预设时间段还可以由上位机维护,也即是说,当经过预设时间段之后,上位机未收到加密的安全信息,上位机可以通过重新向服务器请求加密的安全信息。相反地,在预设时间段内,上位机收到加密的安全信息,则安全信息的传输过程成功。

在本申请实施例中,对上述预设时间段的起始时间不作限定,例如,预设时间段的起始时间可以基于上位机接收到目标设备发送的加密的设备信息的时间确定。又例如,预设时间段的起始时间可以基于上位机请求服务器基于设备信息注册目标设备的时间确定。通常而言,上位机可以通过上述请求向服务器发送设备信息,相应地,响应于设备信息,服务器会向上位机发送加密的安全信息。

在另一些场景中,用于申请注册目标设备的设备信息也可以由上位机发送给目标设备,然而,出于一些原因,上位机会对设备信息进行篡改。因此,为了提高传输设备信息的可靠性,服务器可以利用目标设备的会话密钥对设备信息进行加密,相应地,在上位机将加密后的设备信息发送给目标设备后,目标设备利用该会话密钥对设备信息进行解密。也即是说,在传输设备信息的过程中,上位机仅是对设备信息进行透传,不会获取到未加密的设备信息,降低了上位机对未加密的设备信息进行篡改的可能性。

也即是说,在一些实现方式中,上述方法包括:目标设备通过上位机向服务器发送目标设备的设备信息,设备信息基于目标设备与服务器协商的会话密钥加密。

在一些实现方式中,设备信息可以包括目标设备的序列号(Serial No)、目标设备的国际移动设备识别码(international mobile equipment identity,IMEI)、目标设备的集成电路卡识别码(integratecircuit card identity,ICCID)、目标设备的蓝牙MAC地址(用“btMacaddr”表示)中的一种或多种。

在本申请实施例中,对设备信息的传输方式不作限定。在一些实现方式中,上位机可以向充电桩发送读请求,以请求读取目标设备的设备信息。相应地,响应于目标设备接收到读请求,目标设备利用会话密钥对设备信息进行加密,得到加密的设备信息。之后,目标设备可以将加密的设备信息发送到上位机,由上位机将加密的设备信息透传给服务器。

需要说明的是,在一些场景中,一个上位机可以为多个目标设备提供服务,因此,在目标设备向上位机发送加密的设备信息时,上位机需要确定加密的设备信息所属的目标设备,以记录哪些目标设备的设备信息被传输,哪些目标设备的安全信息未被传输。因此,在本申请实施例中,目标设备在向上位机发送加密的设备信息的同时,还可以以明文的方式发送目标设备的标识(例如,目标设备的序列号)以告知上位机加密的安全信息所属的目标设备。当然,在本申请实施例中,若上位机仅为一个目标设备提供服务,此时,目标设备在发送加密的设备信息时,可以不以明文的方式发送目标设备标识。

上文介绍了本申请实施例中会话密钥的使用方法,下文介绍本申请实施例中会话密钥的协商过程。需要说明的是,下文介绍的会话密钥的协商过程可以作为一个示例,当然,在本申请实施例中会话密钥还可以采用其他的会话密钥协商方式。

在一些实现方式中,会话密钥基于第一随机数以及第二随机数生成,上述方法包括:通过上位机向服务器发送第一随机数的密文,第一随机数的密文基于目标设备的公钥进行加密;接收服务器通过上位机发送的第二随机数的密文,第二随机数的密文是基于目标设备的公钥进行加密的;利用目标设备的私钥对第二随机数的密文进行解密,获取第二随机数;基于第一随机数以及第二随机数,生成会话密钥。

在本申请实施例中,对第一随机数以及第二随机数生成会话密钥的方式不作限定,在一些实现方式中,可以使用密钥交换协议来生成。例如,目标设备和服务器可以协商使用的密钥交换算法,如Diffie-Hellman密钥交换算法。目标设备和服务器各自生成一个随机数(即第一随机数和第二随机数),并交换这些随机数。目标设备和服务器基于这些随机数计算出一个共享密钥,作为会话密钥使用。目标设备和服务器使用该会话密钥进行加密通信。

在本申请实施例中,基于第一随机数以及第二随机数生成会话密钥的方式,有助于提高会话密钥的随机性,如此,会话密钥可以具有较高的安全性。另外,为了进一步提高会话密钥的安全性,目标设备与和服务器在每轮安全信息的写入过程中可以使用不同的会话密钥。当然,在本申请实施例中,目标设备与和服务器在每轮安全信息的写入过程中可以使用相同的会话密钥。

在一些场景中,服务器需要维护多个目标设备分别对应的会话密钥。为了便于服务器对多个会话密钥进行区分,服务器可以将会话密钥与对应的目标设备的标识(例如,目标设备的序列号)进行关联。

为了便于理解,下文以目标设备为充电桩,服务器为云端服务器为例,结合图5介绍本申请实施例的写入安全信息的方法。图5是本申请实施例的写入安全信息的方法的示意性流程图。图5所示的方法包括步骤S510至步骤S529。

在步骤S510中,上位机登录云端服务器1。其中,云端服务器1用于为充电桩生产线提供服务。

在步骤S511中,上位机通过CAN命令从充电桩处读取公钥、第一随机数和充电桩的通信板序列号。

在步骤S512中,充电桩生成高级加密标准(Advanced Encryption Standard,AES)公私密钥对、第一随机数,并利用证书授权 (Certificate Authority,CA)中的公钥对第一随机数进行加密,得到第一随机数的密文。

上述第一随机数可以为8字节。当然,在本申请实施例中,上述第一随机数还可以是其他字节的随机数。

在步骤S513中,充电桩向上位机发送公钥、第一密随机数的密文以及充电桩的通讯板序列号。

在步骤S514中,上位机将公钥、第一密随机数的密文以及充电桩的通讯板序列号透传给云端服务器1。

在步骤S515中,云端服务器1解密出第一随机数,生成第二随机数以及会话密钥。

在一些实现方式中,云端服务器1可以利用公钥对第一随机数的密文进行解密,得到第一随机数。

在一些实现方式中,云端服务器可以生成第二随机数,并利用第一随机数以及第二随机数生成会话密钥,并将会话密钥与充电桩的通信板序列号关联。

在步骤S516中,云端服务器1可以将第一随机数、第二随机数以及充电桩的通信板序列号发送给云端服务器2。

在步骤S517中,云端服务器1通过上位机向充电桩发送第二随机数的密文。

在一些实现方式中,第二随机数可以利用充电桩的公钥进行加密,得到第二随机数的密文。

在步骤S518中,充电桩利用公钥对应的私钥解密出第二随机数,并利用第一随机数以及第二随机数生成会话密钥。

在步骤S519中,上位机向充电桩发送读取指令读取充电桩的设备信息。

在步骤S520中,充电桩使用会话密钥对设备信息进行加密,得到加密后的设备信息。

在步骤S521中,充电桩通过上位机向云计算平台1发送加密后的设备信息以及充电桩序列号。

在步骤S522中,云端服务器1利用会话密钥对加密后的设备信息进行解密,得到解密后的设备信息。

在步骤S523中,云端服务器1创建表示充电桩的设备,并向云端服务器2申请充电桩的安全信息。

在步骤S524中,云端服务器2向云端服务器1发送充电桩的安全信息。

在步骤S525中,云端服务器1利用会话密钥对充电桩的安全信息进行加密,得到加密的安全信息。

在步骤S526中,云端服务器1向上位机发送加密的安全信息。

在步骤S527中,响应于接收加密的安全信息,上位机指示充电桩进入安全信息写入模式,并将加密的安全信息发送给充电桩。

在步骤S528中,充电桩可以采用会话密钥对安全信息进行解密,并完成安全信息的写入。

在步骤S529中,充电桩向上位机发送安全信息的写入结果。

在一些实现方式中,当写入结果为写入成功后,上位机触发充电桩向云端服务器1发送校验请求(参见步骤S310),以请求安全信息的校验数据。之后,充电桩基于校验数据对已写入的安全信息进行校验的方案可以参见图3所示的方案。为了简洁,在此不再赘述。

在另一些实现方式中,当写入结果为写入失败,上位机可以重新向充电桩发送加密的安全信息(即返回步骤S527),以便充电桩重新进入安全信息写入模式。

在本申请实施例中,除了上文介绍的安全信息的校验失败是上位机导致的之外(例如,上位机对安全信息进行篡改导致安全信息校验失败之外)。上述校验失败可能有多种原因。在一些实现方式中,安全信息可能在服务器处发生错误。例如,服务器记录的目标设备的安全信息错误。在另一些实现方式中,安全信息可能在目标设备处发生错误。例如,由于缓存工作状态的稳定,导致目标设备在存储安全信息时将安全信息存储错误。

相应地,针对不同的校验失败原因,本申请实施例中目标设备可以执行不同的操作。在一些实现方式中,若安全信息校验失败是上位机导致的,此时,目标设备可以重新请求服务器发送安全信息,以重新写入安全信息,例如,目标设备可以请求服务器重新执行图5所示的步骤S526,有助于减少重新请求安全信息所需信息交互。当然,如果不考虑上述原因,在本申请实施例中,目标设备还可以重新执行会话密钥的协商过程(例如,步骤S511),以重新获取安全信息。

在另一些实现方式中,若安全信息的校验失败是目标设备导致的,此时,目标设备可以重新向上位机请求安全信息。在一些场景中,上位机中存储的安全信息可以基于会话密钥加密的安全信息。

本申请实施例对,上述判断安全信息的校验失败是目标设备导致的确定方式不作具体限定。在一些实现方式中,上位机可以基于加密的安全信息生成第三校验码。相应地,目标设备对加密的安全信息进行解密获得解密后的安全信息,并写入安全信息。之后目标设备对写入的安全信息进行加密,获得加密后的安全信息,再基于加密后的安全信息生成第四校验码,并将第四校验码发送给上位机。上位机可以基于第三校验码和第四校验码确定目标设备写入的安全信息是否正确。

也即是说,若上述完全信息是基于目标设备与服务器协商的会话密钥进行加密,在步骤S230之前,上述方法还包括:上位机基于加密的安全信息生成第三校验码;在步骤S220之后,目标设备利用会话密钥对写入的安全信息进行加密,得到加密后的安全信息;基于加密后的安全信息生成第四校验码;向上位机发送第四校验码;上位机基于第四校验码和第三校验码,确定目标设备写入的安全信息是否正确。

在一些实现方式中,若第三校验码和第四校验码匹配,则目标设备写入的安全信息正确,此时,目标设备未对安全信息进行篡改。相反地,若第三校验码和第四校验码不匹配,则目标设备写入的安全信息不正确,此时,目标设备对安全信息进行篡改。

需要说明的是,在本申请实施例中,对上述第三校验码和/或第四校验码的具体形式不作限定。具体可以参见前文关于校验码的介绍。

在另一些实现方式中,若安全信息的校验失败是服务器导致的,此时,服务器可以重新获取目标设备的安全信息。例如,服务器可以重新向KMS获取目标设备的安全信息。

上文结合图1至图5,详细描述了本申请的方法实施例,下面结合图6至图8,详细描述本申请的装置实施例。应理解,方法实施例的描述与装置实施例的描述相互对应,因此,未详细描述的部分可以参见前面方法实施例。

图6是本申请实施例的目标设备的示意图,图6所示的目标设备600包括:接收单元610以及处理单元620。

接收单元610,用于从上位机接收写指令,所述写指令用于指示所述目标设备写入服务器生成的安全信息,所述安全信息用于所述目标设备进行安全通信;

处理单元620,用于响应于所述写指令,执行所述安全信息的写操作,所述写操作用于将所述安全信息记录在所述目标设备的存储器中;

所述处理单元620,还用于在所述写操作执行完毕之后,从所述服务器获取所述安全信息的校验数据;

所述处理单元620,还用于根据所述校验数据校验所述安全信息。

在一种可能的实现方式中,所述目标设备还包括:第一发送单元,用于通过第一路径向所述服务器发送校验请求,所述校验请求用于请求所述校验数据;所述接收单元,还用于通过第二路径接收所述服务器发送的校验响应,所述校验响应包含所述校验数据;其中,所述第一路径跳过所述上位机,所述第二路径经过所述上位机,且所述上位机用于透传经过所述第二路径传输的所述校验响应。

在一种可能的实现方式中,所述安全信息包括至少一种密钥信息,所述校验数据包括基于所述至少一种密钥信息加密的密文数据以及第一校验码,所述处理单元还用于:利用所述安全信息中的至少一种密钥信息对所述密文数据进行解密,并基于所述安全信息中的至少一种密钥信息计算第二校验码;基于对所述密文数据的解密结果、所述第一校验码以及第二校验码,确定所述安全信息的校验结果,其中,若所述密文数据的解密成功,并且所述第一校验码与所述第二校验码相同,则所述安全信息的校验结果为校验成功;和/或若所述密文数据的解密失败,和/或所述第一校验码与所述第二校验码不同,则所述安全信息的校验结果为校验失败。

在一种可能的实现方式中,所述目标设备还包括:第二发送单元,用于若所述安全信息校验成功,向所述服务器发送注册结果查询请求,所述注册结果查询请求携带指示所述安全信息校验成功的指示信息;所述接收单元,用于接收所述服务器发送的针对所述注册结果查询请求的查询响应,所述查询响应用于指示所述目标设备在所述服务器注册成功。

在一种可能的实现方式中,所述安全信息和/或所述校验数据基于所述目标设备与所述服务器协商的会话密钥加密。

在一种可能的实现方式中,所述目标设备包括:第三发送单元,用于通过所述上位机向所述服务器发送所述目标设备的设备信息,所述设备信息用于申请注册所述目标设备,所述设备信息基于所述目标设备与所述服务器协商的会话密钥加密。

在一种可能的实现方式中,所述会话密钥基于第一随机数以及第二随机数生成,所述处理单元,还用于:通过所述上位机向所述服务器发送所述第一随机数的密文,所述第一随机数的密文基于所述目标设备的公钥进行加密;接收所述服务器通过所述上位机发送的第二随机数的密文,所述第二随机数的密文是基于所述目标设备的公钥进行加密的;利用所述目标设备的私钥对所述第二随机数的密文进行解密,获取所述第二随机数;基于所述第一随机数以及所述第二随机数,生成所述会话密钥。

在一种可能的实现方式中,所述安全信息包括以下信息中的一种或多种:所述目标设备的身份认证密钥,所述目标设备的空中下载技术OTA的加密密钥,所述目标设备的OTA签名密钥,以及所述目标设备的蓝牙密钥。

图7是本申请实施例的服务器的示意图,图7所示的服务器700包括:发送单元710、处理单元720以及接收单元730。

发送单元710,用于通过上位机向目标设备发送所述目标设备的安全信息,所述安全信息用于所述目标设备进行安全通信;

处理单元720,用于基于所述安全信息生成所述安全信息的校验数据,所述安全信息的校验数据用于对所述安全信息进行校验;

接收单元730,用于接收所述目标设备发送的校验请求,所述校验请求用于请求所述安全信息的校验数据;

所述发送单元710,还用于响应于所述校验请求,向所述目标设备发送校验响应,所述校验响应包含所述安全信息的校验数据。

在一种可能的实现方式中,所述接收单元730,用于通过第一路径接收所述目标设备发送的校验请求,所述校验请求用于请求所述校验数据;所述发送单元710,用于通过第二路径向所述目标设备发送校验响应,所述校验响应包含所述校验数据;其中,所述第一路径跳过所述上位机,所述第二路径经过所述上位机,且所述上位机用于透传经过所述第二路径传输的所述校验响应。

在一种可能的实现方式中,所述接收单元,还用于接收所述目标设备发送的用于请求注册结果的注册结果查询请求,所述注册结果查询请求携带指示所述安全信息校验成功的指示信息;所述发送单元,还用于响应于所述注册结果查询请求,向所述目标设备发送查询响应,所述查询响应用于指示所述目标设备在所述服务器注册成功。

在一种可能的实现方式中,所述校验请求的传输过程不经过所述上位机。

在一种可能的实现方式中,所述安全信息包括至少一种密钥信息,所述校验数据包括基于所述至少一种密钥信息加密的密文数据以及第一校验码。

在一种可能的实现方式中,所述安全信息和/或所述校验数据基于所述目标设备与所述服务器协商的会话密钥加密。

在一种可能的实现方式中,所述接收单元还用于:通过所述上位机接收所述目标设备发送的所述目标设备的设备信息,所述设备信息用于申请注册所述目标设备,所述设备信息基于所述目标设备与所述服务器协商的会话密钥加密。

在一种可能的实现方式中,所述会话密钥基于第一随机数以及第二随机数生成,所述处理单元还用于:通过所述上位机接收所述第一随机数的密文,所述第一随机数的密文基于所述目标设备的公钥进行加密;生成所述第二随机数,并利用所述目标设备的公钥对所述第二随机数进行加密得到所述第二随机数的密文;通过所述上位机向所述目标设备发送所述第二随机数的密文。

在一种可能的实现方式中,所述安全信息包括以下信息中的一种或多种:所述目标设备的身份认证密钥,所述目标设备的空中下载技术OTA的加密密钥,所述目标设备的OTA签名密钥,以及所述目标设备的蓝牙密钥。

在可选的实施例中,所述处理单元620可以为处理器820,所述接收单元610可以为输入/输出接口830,所述目标设备还可以包括存储器810,具体如图8所示。

在可选的实施例中,所述发送单元710以及接收单元730可以为输入/输出接口830,所述处理单元720可以为处理器820,所述服务器还可以包括存储器810,具体如图8所示。

图8是本申请另一实施例的装置的示意性框图。图8所示的装置800可以包括:存储器810、处理器820、输入/输出接口830。其中,存储器810、处理器820、输入/输出接口830通过内部连接通路相连,该存储器810用于存储指令,该处理器820用于执行该存储器820存储的指令,以控制输入/输出接口830接收输入的数据和信息,输出操作结果等数据,并控制收发机840发送信号。

应理解,在本申请实施例中,该处理器820可以采用通用的中央处理器(centralprocessing unit,CPU),微处理器,应用专用集成电路(application specificintegrated circuit,ASIC),或者一个或多个集成电路,用于执行相关程序,以实现本申请实施例所提供的技术方案。

该存储器810可以包括只读存储器和随机存取存储器,并向处理器820提供指令和数据。处理器820的一部分还可以包括非易失性随机存取存储器。例如,处理器820还可以存储设备类型的信息。

在实现过程中,上述方法的各步骤可以通过处理器820 中的硬件的集成逻辑电路或者软件形式的指令完成。结合本申请实施例所公开的安全信息的写入方法可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器810,处理器820读取存储器810 中的信息,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。

应理解,本申请实施例中,该处理器可以为中央处理单元(central processingunit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(digital signalprocessor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现成可编程门阵列(field programmablegate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

应理解,在本申请实施例中,“与A相应的B”表示B与A相关联,根据A可以确定B。但还应理解,根据A确定B并不意味着仅仅根据A确定B,还可以根据A和/或其它信息确定B。

应理解,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。

应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、网络设备、用户设备、核心网设备、操作维护管理(operationadministration and maintenance,OAM)或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber Line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够读取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,数字通用光盘(digital video disc,DVD))或者半导体介质(例如,固态硬盘(solid state disk,SSD))等。该计算机可读存储介质可以是易失性或非易失性存储介质,或可包括易失性和非易失性两种类型的存储介质。

以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

相关技术
  • 存储系统中存储数据的写入方法、写入系统及相关装置
  • 数据写入方法、数据读取方法、装置和服务器
  • 数据写入方法、装置、设备及存储介质
  • 一种缓存写入方法、装置、设备及可读存储介质
  • 一种数据写入方法及装置、设备、存储介质
  • 写入装置、写入信息块的方法以及用于读出信息块的读出装置
  • 写入装置、记录载体和写入信息块的方法、以及用于读出信息块的读出装置
技术分类

06120116337551