CN116710914A - 边缘设备的密钥撤销 - Google Patents

边缘设备的密钥撤销 Download PDF

Info

Publication number
CN116710914A
CN116710914A CN202180087734.6A CN202180087734A CN116710914A CN 116710914 A CN116710914 A CN 116710914A CN 202180087734 A CN202180087734 A CN 202180087734A CN 116710914 A CN116710914 A CN 116710914A
Authority
CN
China
Prior art keywords
key
instructions
software
revocation
instruction
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202180087734.6A
Other languages
English (en)
Inventor
J·N·西蒙
T·L·朴
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Analog Devices Inc
Original Assignee
Analog Devices Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Analog Devices Inc filed Critical Analog Devices Inc
Publication of CN116710914A publication Critical patent/CN116710914A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0891Revocation or update of secret information, e.g. encryption key update or rekeying
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/04Key management, e.g. using generic bootstrapping architecture [GBA]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Stored Programmes (AREA)
  • Storage Device Security (AREA)

Abstract

本文描述了在不能在设备的本地网络之外通信的设备上远程执行密钥撤销的技术。这些技术涉及在发送到设备的软件更新指令中包括密钥撤销指令。设备可以使用一个或多个密钥来验证软件更新指令,以确定它们在设备上执行是否安全。例如,该设备可以验证软件更新指令是否已经由可信软件提供商发送。该设备可以执行包括在软件更新指令中的密钥撤销指令,以撤销对密钥中的密钥的使用,并启动使用新密钥来代替被撤销的密钥。

Description

边缘设备的密钥撤销
相关申请
本申请要求根据《美国法典》第35卷第119(e)节享有题为“边缘设备的密钥撤销”的美国临时申请的权益,该申请于2020年12月31日提交,代理人案卷号为G0766.70338US00,通过引用将其全部并入本文。
技术领域
本文描述的实施例涉及在设备上远程执行密钥撤销,该设备仅限于该设备的本地网络内的通信。
背景技术
设备可以使用密钥来执行诸如加密和/或解密数据之类的加密操作。设备使用的密钥可能需要从操作中移除。例如,设备可能需要停止使用一个密钥进行加密和/或解密,并用新的密钥替换该密钥。该设备可以执行密钥撤销过程以撤销对一个密钥的使用,并启动使用新密钥来代替被撤销的密钥。
发明内容
本文描述了在不能在设备的本地网络之外通信的设备上远程执行密钥撤销的技术。这些技术涉及在发送到设备的软件更新指令中包括密钥撤销指令。设备可以使用一个或多个密钥来验证软件更新指令,以确定它们在设备上执行是否安全。例如,该设备可以验证软件更新指令是否已经由可信软件提供商发送。该设备可以执行包括在软件更新指令中的密钥撤销指令,以撤销对密钥中的密钥的使用,并启动使用新密钥来代替被撤销的密钥。
在一些实施例中,设备可以使用多个密钥来验证软件更新指令,每个密钥与不同的一方相关联。例如,一个密钥可以用于验证软件提供商的签名,而另一个密钥则可以用于验证设备的用户的签名。该设备可以被配置为当使用两个密钥验证软件更新指令时执行包括在软件更新指令中的撤销指令。多个密钥的使用提供了额外的安全层,防止设备执行不适当的密钥撤销,因为对手需要访问来自两个不同方的两个单独的密钥才能启动密钥撤销。
根据一些实施例,提供一种用于在受限于设备的本地网络内的通信的设备上执行密钥撤销的方法。该设备存储第一密钥和第二密钥。该方法包括:使用所述设备的处理器来执行:从所述设备的本地网络内的主机系统接收用于更新安装在所述设备上的软件的指令,其中所述指令包括用于撤销所述第一密钥的指令;和执行所述指令,其中所述指令的执行使得所述设备:撤销对所述第一密钥的使用;和启动使用第三密钥来代替第一密钥。
根据一些实施例,提供一种形成本地网络的一部分并且限于在所述本地网络内进行通信的设备。该设备包括:无线通信电路;存储器,被配置为存储第一密钥和第二密钥;和处理器,所述处理器被配置为:使用所述无线通信电路从所述本地网络内的主机系统接收用于更新安装在所述设备上的软件的指令,其中所述指令包括用于撤销所述第一密钥的指令;和执行所述指令,其中所述指令的执行使得所述设备:撤销对所述第一密钥的使用;和启动使用第三密钥来代替第一密钥。
一种用于在不具有到所述设备的连接的情况下在所述设备上执行密钥撤销的系统。该设备具有第一密钥。该系统包括:无线通信电路;和处理器,所述处理器被配置为:向所述设备的本地网络内的主机系统发送用于更新安装在所述设备上的软件的指令,其中所述指令在由所述设备执行时使得所述设备:撤销对所述设备的第一密钥的使用;和启动使用第二密钥来代替第一密钥。
一种仅限于在设备的本地网络内进行通信的设备。所述设备包括:无线通信电路;存储器,所述存储器被配置为存储第一密钥;和处理器,所述处理器被配置为:使用所述无线通信电路从所述本地网络内的主机系统接收用于更新安装在所述设备上的软件的指令,其中所述指令包括用于撤销所述第一密钥的指令;使用所述第一密钥验证所述指令;并且在使用密钥验证指令之后,执行所述指令,其中所述指令的执行使得所述设备:撤销对所述第一密钥的使用;并且启动使用第二密钥来代替第一密钥。
附图说明
图1示出了其中可以实现本文所描述的技术的一些实施例的示例系统。
图2示出了根据本文所描述的技术的一些实施例的设备的示例软件体系结构。
图3示出了根据本文所描述的技术的一些实施例的软件更新指令的示例集合。
图4A示出了根据本文描述的技术的一些实施例的将第一密钥放置在设备上的软件提供商系统。
图4B示出了根据本文所述技术的一些实施例的与图2A的设备的用户将第二密钥放置在该设备上相关联的系统。
图5示出了根据本文描述的技术的一些实施例的设备执行密钥撤销的示例过程。
图6示出了根据本文描述的技术的一些实施例的验证软件更新指令的示例过程。
图7示出了根据本文所述技术的一些实施例的系统在设备上发起密钥撤销的示例过程。
图8示出了可以用于实现本文所述技术的一些实施例的示例计算机系统。
具体实施方式
某些计算设备-有时被称为“边缘设备”-无法在本地网络之外进行通信,因此依赖主机系统在本地网络以外进行通信。例如,边缘设备可以依赖位于边缘设备附近的主机系统来通过互联网与系统通信。无法访问本地网络(“外部系统”)或无法物理访问边缘设备的系统仅限于通过主机系统与边缘设备通信。作为说明性示例,边缘设备可以是密封在电池背面内部的电池监测设备。当电池被安装和使用在产品(例如汽车)中时,电池监测装置可以监测电池的状况。当电池监测设备部署在产品上时,电池监测设备可能无法通过互联网进行通信,因此制造商的计算机系统可被限制为通过靠近电池监测设备的主机系统与电池监测设备进行通信(例如,检索监测数据)。
边缘设备可以存储用于执行加密操作的一个或多个密钥。密码操作可以包括加密数据和/或解密数据。例如,边缘设备可以使用密钥来解密数字签名的数据,以验证数字签名。作为另一示例,边缘设备可以使用密钥来加密数据作为设备的数字签名。边缘设备也可以使用密钥来验证设备上安装的软件。安装在边缘设备上的软件可能已经由一个或多个外部系统(例如软件提供商的系统、边缘设备的用户的系统和/或另一外部系统)使用密钥进行数字签名。边缘设备可以存储与用于对软件进行数字签名的密钥相对应的密钥,并使用其存储的密钥来验证软件是否来自可信来源,例如来自软件提供商。作为说明性示例,设备可以存储与用于对安装在设备上的软件进行数字签名的私钥相对应的公钥。在该示例中,在允许软件操作设备之前,设备可以使用其存储的公钥来验证软件的数字签名。
在边缘设备的整个生命周期内,可能需要甚至有必要执行密钥撤销,其中边缘设备对密钥的使用被停止(“撤销”),并开始使用新密钥。例如,如果存储在软件提供商的计算机系统上的私钥被泄露,则可能需要撤销设备上的相应密钥,以保护设备不易接收来自制造商的计算机系统的未经授权的通信。例如,对抗性实体可以使用被泄露的私钥向设备发送软件,并且可能获得对设备的未经授权的控制。如果不撤销与私钥相对应的密钥,设备将无法检测到对抗性实体提供的软件未经授权使用。该问题可能进一步复杂化,因为边缘设备可能是许多边缘设备中的一个,每个边缘设备都使用密钥来验证设备上的软件。因此,密钥可以被存储在用户的设备的车队上。在不从设备组撤销密钥的情况下,对抗性实体可能获得对整个设备组的未经授权的控制。作为说明性示例,车队传感器组中的每一个可以存储与安装在传感器上的软件提供商的私钥相对应的公钥,并且在允许软件控制传感器之前使用该密钥在加载软件时验证软件。如果对手获得了对软件提供商私钥的访问权,则对手可能能够将其自己的软件传输到使用私钥签名的车队传感器。由于车队传感器仍将使用与私钥相对应的密钥,因此车队传感器将加载对手的软件并允许其控制传感器。
发明人已经认识到,由于与边缘设备通信的限制,在边缘设备上执行远程密钥撤销是困难的。需要发起密钥撤销的系统(例如,软件提供商系统)不能直接与边缘设备通信。相反,边缘设备上的密钥撤销将由可以与边缘设备进行通信的中间主机系统发起(例如,通过本地网络)。然而,从主机系统接收密钥撤销指令的边缘设备不能验证密钥撤销请求是否有效,因为该边缘设备不能与第三方验证机构通信以验证该请求的有效性。例如,边缘设备无法通过互联网访问独立的第三方认证机构,以验证密钥撤销请求是由受信任的软件提供商系统生成的。边缘设备将不知道发送请求的主机系统是否已被破坏,或者从主机系统接收到的密钥撤销请求是否由对抗性实体发起。传统技术不允许在没有第三方验证机构的情况下在边缘设备上安全地执行远程密钥撤销。
发明人已经开发了在边缘设备上安全地执行远程密钥撤销而不需要第三方验证机构的技术。该技术提供了一种远程密钥撤销过程,该过程不依赖于主机系统来发起远程密钥撤销。这防止了受损害的主机系统或与主机系统通信的受损害的系统在边缘设备上执行未经授权的密钥撤销。这些技术利用安全的软件更新过程来执行密钥撤销。
本文所描述的技术的一些实施例使用安全软件更新过程来在仅限于设备的本地网络内的通信的设备上执行密钥撤销。该技术将用于执行密钥撤销的软件指令嵌入到提供给设备的软件更新指令中。当该设备接收到软件更新指令时,该设备可以验证并执行软件指令,并且作为结果,撤销密钥的使用并且开始使用新密钥来代替被撤销的密钥。这些技术将边缘设备上的密钥撤销的发起限制为用于更新边缘设备上软件的安全软件更新过程,因此不允许主机系统发起密钥撤销。在一些实施例中,设备的本地网络缺乏设备可以用来验证由设备接收的指令的任何第三方验证权限。因此,该设备可能无法与任何这样的第三方验证机构通信。通过在软件更新指令中嵌入密钥撤销指令,一些实施例消除了设备参与通信(例如,在质询-响应协议中)以请求密钥撤销的需要。这消除了对手通过拦截设备发送的执行密钥撤销的请求来提供其自己的新密钥以代替被撤销的密钥的机会。相反,设备使用其一个或多个密钥来验证提供给设备的软件更新指令。如果软件更新指令被验证,则执行密钥撤销,否则不执行。
本文描述的技术的一些实施例使用边缘设备的可信软件平台来执行远程密钥撤销。即使设备的密钥被泄露,可信软件平台也可以允许设备执行密钥撤销。设备的可信软件平台使用两个密钥,每个密钥由单独的一方提供,以验证设备上加载的软件。可信软件平台包括串行加载的多个软件层。软件层可以包括一个或多个可信引导加载程序,其在使软件能够操作设备之前使用两个密钥来验证软件。
因此,本文描述的技术通过允许以安全的方式执行密钥撤销来提高边缘设备的安全性。由于边缘设备无法与第三方验证机构通信,传统技术将要求边缘设备在没有验证指令是由可信来源(例如设备制造商和/或安装在设备上的软件提供商)发送的情况下执行撤销指令,或者以其他方式不包括边缘设备中的密钥撤销功能并且因此易受获得对与该设备的密钥相对应的密钥的访问的对手(例如,获取与存储在该设备上的公钥相对应的私钥的对手)的影响。本文所描述的技术提供了一种更安全的边缘设备,其包括用于防止来自受损的外部系统的通信的密钥撤销功能,以及验证密钥撤销指令来自可信来源的能力。
一些实施例可以允许一次性撤销,其中边缘设备存储指示密钥是否已被撤销的标志。一些实施例可以允许预定数量的密钥撤销,其中边缘设备在每次撤销期间从一组密钥中进行选择。一些实施例可以允许无限数量的撤销,其中每个撤销更新密钥。本文描述的技术的一些实施例包括密钥选择机制,该密钥选择机制向边缘设备指示停止使用一个密钥,并开始使用另一个密钥。安全密钥机制可以使用指示密钥被撤销的标志和新密钥的指示。
图1示出了示例系统100,其中可以实现本文所描述的技术的一些实施例。系统100包括本地网络110内的设备102和主机系统104,以及通过网络108与主机系统104通信的软件提供商系统106。设备102是边缘设备。如图1所示,设备102被限制为与设备的本地网络110内的设备进行通信。设备102不能通过网络108与软件提供商系统106通信,或者不能以其他方式直接与软件提供商系统106通信。
网络108可以是软件提供商系统106可以通过其与主机系统104通信的任何合适的通信网络。在一些实施例中,网络108可以包括一个或多个车辆网络。例如,网络108可以包括控制器局域网(CAN),软件提供商系统106可以通过该控制器局域网与主机系统106通信。网络108可以包括电子控制单元(ECU),其通过CAN与主机系统104和软件提供商系统106通信。在一些实施例中,网络108可以包括局域网(LAN)。在一些实施例中,网络108可以包括远程网络(例如,互联网)。在一些实施例中,网络108可以是软件提供商系统106和主机系统104之间的本地连接。
设备102包括各种组件。如图1所示,设备102包括处理器102A、无线通信电路102B和存储器102C。在一些实施例中,设备102可以包括片上系统(SoC),片上系统包括处理器102A、无线通信电路102B和存储器102C。
处理器102A包括被配置为执行软件指令的电子电路。例如,处理器102A可以包括微控制器、微处理器、嵌入式处理器、数字信号处理器(DSP)、图形处理单元(GPU)、神经处理单元(NPU)和/或另一合适的处理器。
处理器102A可以被配置为执行密钥撤销。处理器102A可以通过执行存储在设备102上(例如,在存储器102C中)的软件指令来执行撤销。处理器102A可以被配置为通过从设备102的本地网络110内的主机系统104接收用于更新安装在设备110上的软件的指令来执行密钥撤销。用于更新安装在设备110上的软件的指令可以包括用于对安装在设备上的软件进行更新的软件指令。例如,软件指令可以包括用于安装在设备上的软件应用程序的更新的软件映像。指令可以进一步包括用于撤销密钥(例如,存储在存储器102C中)的指令。当处理器102A执行密钥撤销指令时,它们使设备102撤销对一个密钥的使用,并开始使用另一个密钥来代替被撤销的密钥。在一些实施例中,当由处理器102A执行撤销指令时,撤销指令可以使得处理器102A从设备102的存储器102C访问新密钥,并且将设备102配置为在后续操作中使用新密钥来代替第一密钥。例如,撤销指令可以使得处理器102A从设备102的闪存访问新密钥。在一些实施例中,撤销指令可以包括新密钥。在这样的实施例中,处理器102A可以将撤销指令中的新密钥复制到其存储器102C中,并且在随后的操作中使用新密钥来代替第一密钥。
作为说明性示例,设备102可以是其上安装有用于电子控制车辆(例如,气候系统控制、巡航控制、自动驾驶、制动和/或车辆的另一方面)的软件的车辆控制器设备。主机系统104可以是车辆的中央电子控制单元(ECU),设备102通过该ECU接收软件更新。在该示例中,车辆控制器设备可以接收对其控制软件的更新,该更新还包括密钥撤销指令。例如,由于软件提供商系统106的破坏,其中对手获得了对与设备102的先前密钥相对应的私钥的访问,车辆控制器设备可以接收包括密钥撤销指令的更新。这样,对手可以将其自己的软件指令发送到用私钥签名的设备102。由于车辆控制器设备无法访问第三方验证机构(例如,通过互联网),车辆控制器设备将无法确定软件指令是由对手发送的。
再次返回图1,无线通信电路102B可以包括收发器,该收发器允许设备102与设备102的范围内的一个或多个外部系统(例如,主机系统104)通信。例如,收发器可以是蓝牙收发器、红外(IR)收发器、无线电收发器或其他合适类型的收发器。无线通信电路102B可以被配置为在设备102的本地网络(例如,网络110)中进行通信。设备102可以使用无线通信电路102B来从外部系统发送和/或接收数据。例如,设备102可以使用无线通信电路102B来发送和接收分组中的数据。在一些实施例中,无线通信电路可以限于设备102的本地网络110内的通信。本地网络110可以具有在无线通信电路102B附近的边界。例如,无线通信电路102B可以被限制为与无线通信电路102B的阈值距离内的外部系统通信。阈值距离可以是距离无线通信电路102B的10英尺、20英尺、30英尺、40英尺、50英尺、100英尺、200英尺或其他合适的距离。在一些实施例中,本地网络110可以是无线本地网络(WLAN)。例如,WLAN可以包括被配置为通过射频发送和接收数据的路由器。在一些实施例中,本地网络110可以是无线通信电路102B与一个或多个外部系统之间的通信网络。
存储器102C可以包括可以被配置为存储信息的硬件。例如,存储器102C可以包括用于存储信息的集成电路。存储器102C可以包括非易失性存储器,例如闪存、一次性可编程(OTP)存储器、只读存储器(ROM)、可编程只读存储器(PROM)、可擦除可编程只读存储(EPROM)和/或电可擦除可编程只读存储器(EEPROM)。存储器102C可以包括易失性存储器,例如静态随机存取存储器(SRAM)和/或动态随机访问存储器(DRAM)。
如图1所示,存储器102C被配置为存储一个或多个密钥。密钥可以是用于执行加密操作的加密密钥,包括数据的认证、数据的加密、数据的解密、签名的生成和/或验证、软件指令的验证和/或其他加密操作。在一些实施例中,密钥可以由一组字符组成。例如,密钥可以是随机生成的字符串。在一些实施例中,可以使用密钥生成算法来生成密钥。例如,可以使用确定性随机比特生成器(DRBG)或伪随机数生成器(PRNG)来生成密钥,以获得随机值。在一些实施例中,可以使用密钥生成算法从随机值生成密钥。在另一示例中,可以使用诸如高级加密标准(AES)密钥生成算法或Rivest-Shamir-Adleman(RSA)密钥生成方法之类的密钥生成算法从随机值生成密钥。在一些实施例中,密钥可以包括非对称密钥。存储在存储器102C中的非对称密钥可以是与私钥相对应的公钥。在一些实施例中,密钥可以包括对称密钥。存储在存储器102C中的对称密钥可以与存储在另一个系统中的密钥相同。
在一些实施例中,密钥可以包括由多个外部系统生成的多个密钥。多个密钥中的每个密钥可以由相应的外部系统生成。在一些实施例中,第一密钥可以由软件提供商系统106生成,并且第二密钥可以由与设备102的用户相关联的系统生成。与设备102的用户相关联的系统在本文中也可以被称为“用户系统”。为了说明,软件提供商系统106可以与设备的制造商相关联。当设备102与制造商在一起时,制造商可以使用软件提供商系统106来生成密钥(例如,对称密钥或公钥),该密钥然后被存储在存储器102C中。设备102的用户(例如,购买设备102的实体)可以使用用户系统来生成存储在存储器102C中的密钥(例如,对称密钥或公钥)。
在一些实施例中,密钥可以包括由外部系统生成的单个密钥。在一些实施例中,密钥可以由软件提供商系统106生成。例如,当设备102与制造商在一起时,软件提供商系统106可以生成密钥并将密钥存储在存储器102C中。在一些实施例中,密钥可以由用户系统生成。例如,密钥可以由用户系统生成,并在部署设备102之前存储在设备102的存储器102C中。
在一些实施例中,密钥可以包括在撤销之后使用的一个或多个密钥。在执行撤销之后使用的密钥在本文中也可以称为“撤销密钥”。例如,密钥可以包括设备被配置用于加密操作的第一密钥,以及设备被配置为在撤销第一密钥之后使用的撤销密钥。当设备执行撤销时,设备可以停止使用第一密钥,并启动使用撤销密钥来执行密码操作。在一些实施例中,密钥可以包括多个撤销密钥。在这样的实施例中,每次设备102执行撤销时,设备102可以撤销对先前密钥的使用,并启动对多个撤销密钥之一的使用。例如,密钥可以包括2个、3个、4个、5个或更多个撤销密钥。在一些实施例中,密钥可以包括单个撤销密钥。在这样的实施例中,设备102可以被限制为执行一个撤销。在一些实施例中,撤销密钥可以在部署设备102以供使用之前存储在存储器102C中。例如,撤销密钥可以在设备102的制造期间存储在存储器102C中。在另一示例中,撤销密钥可以由设备的用户在部署设备102以供使用之前存储在存储器102C中。在一些实施例中,存储器102C中的存储空间的量可以限制可以存储在其中的密钥的数量。例如,存储器102C中的存储空间的量可以将密钥的数量限制为2、3、4或5个密钥。
图2示出了根据本文所描述的技术的一些实施例的设备102的示例软件体系结构200。如图2所示,软件架构200包括第一引导加载程序202、第二引导加载程序204、操作软件206、通信软件208和空中传送(OTA)处理软件214。在一些实施例中,第一引导加载程序202可以是不可变的硬件引导加载程序(例如,在ROM中),并且第二引导加载程序204可以是执行附加验证的可选后续引导加载程序。在一些实施例中,第二引导加载程序204可以存储在闪存中。
设备102可以被配置为在将操作软件206加载到设备102上时使用第一引导加载程序202和第二引导加载程序204。每个引导加载程序202、204可以包括存储在设备102的存储器102C中的一组指令,这些指令被执行以将操作软件206加载到设备102的内存中。例如,第一引导加载程序202可以存储在只读存储器(ROM)中,并且第二引导加载程序204可以存储在闪存中。设备102可以被配置为使用引导加载程序202、204来分阶段顺序地加载操作软件206。在一些实施例中,每个引导加载程序202、204可以被配置为使用其自己的相应密钥来验证操作软件206。例如,第一引导加载程序202可以使用第一密钥来验证操作软件206的第一签名,并且第二引导加载程序204可以使用第二密钥来验证运行软件206的第二签名。第一签名可以由软件提供商系统生成,并且第二签名可以由用户系统生成。在第一引导加载程序202和第二引导加载程序204中的每一个被配置为使用其自己的相应密钥来验证操作软件206、对手将操作软件加载到设备102上的实施例中,对手将不得不向设备102发送包括使用两个不同方(例如软件提供商和用户)的两个单独密钥生成的两个独立签名的软件。
如图2所示,操作软件206可以使用通信软件208来操作设备的无线通信电路210。无线通信电路210可以是本文参考图1描述的无线通信电路102B。通信软件208可以允许设备102从主机系统104发送和接收数据。通信软件208可以被配置为使用无线通信电路210从主机系统104接收软件更新指令212。软件更新指令可以包括密钥撤销指令。如图2所示,软件更新指令处理214由第二引导加载程序204执行。软件更新指令处理214由第二引导加载程序执行,因为软件更新可以包括对引导加载程序202、204的更新。在一些实施例中,可以限制操作软件206修改引导加载程序202、204。限制操作软件206修改引导加载程序202、204可以确保引导加载程序202、204免受任何对手的攻击,并且因此可以被信任来更新设备102上的软件。在这样的实施例中,软件更新可以不由操作软件206执行。
尽管图2的示例实施例包括两个引导加载程序,但是在一些实施例中,设备的软件架构可以包括一个引导加载器。引导加载程序可以被配置为执行本文所述的引导加载程序202、204的处理。在一些实施例中,引导加载程序可以是不可变的硬件引导加载程序。例如,不可变硬件引导加载程序可以是ROM引导加载程序。在一些实施例中,软件架构可以包括一个或多个后续可选引导加载程序,这些引导加载程序可被配置为执行额外验证。在这样的实施例中,可选的引导加载程序可能不需要将操作软件加载到设备上,或者验证软件指令(例如,包括密钥撤销指令)。
主机系统104可以包括本地网络110内的一个或多个计算设备。主机系统104可以位于设备102的附近,其中设备102可以与主机系统通信(例如,使用无线通信电路102B)。主机系统104可以被配置为通过位于设备的本地网络110之外的网络108进行通信。如图1所示,主机系统104可以通过网络108与软件提供商系统106通信。例如,主机系统104可以包括允许主机系统104通过互联网进行通信的无线通信电路。作为说明性示例,主机系统104可以是车辆的中央电子控制单元(ECU),而设备102可以是用于车辆的特定部件(例如,气候控制、巡航控制、自动驾驶和/或制动)的车辆控制器设备。
软件提供商系统106可以包括设备102的本地网络110之外的一个或多个计算设备。在一些实施例中,软件提供商系统106可以与设备102的制造商相关联。软件提供商系统106可以提供用于设备102的操作的软件。例如,设备102可以是车辆控制器设备,并且软件提供商系统106可以为设备102提供软件应用程序以执行其车辆控制操作。在另一示例中,设备102可以是传感器,并且软件提供商系统106可以提供操作传感器以收集测量值的软件应用程序。在另一示例中,设备102可以是相机,并且软件提供商系统106可以提供用于执行相机在捕获图像时使用的图像处理和增强的软件指令。
软件提供商系统106可以被配置为在设备102上远程执行密钥撤销。软件提供商系统106可以被配置为通过生成包括密钥撤销指令的软件更新指令来远程撤销设备102上的密钥。软件提供商系统106可以通过网络108将软件更新指令发送到主机系统104,用于发送到设备102。在一些实施例中,软件提供商系统106可以被配置为:(1)生成软件更新指令以包括对安装在设备102上的软件的更新和密钥撤销指令;以及(2)并且将认证信息与所生成的软件指令集一起包括。在一些实施例中,认证信息可以是数字签名。在一些实施例中,认证信息可以是使用对称算法生成的认证码。在一些实施例中,认证信息可以是由软件提供商系统106加密的软件更新指令的加密散列。对安装在设备102上的软件的更新可以是软件映像,并且密钥撤销指令可以包括软件指令,当由设备102的处理器执行时,该软件指令使得设备停止使用密钥并且开始使用新密钥来代替撤销的密钥进行密码操作。设备102当前用于验证由软件提供商系统106发送的信息和指令的密钥可以用于验证软件更新指令。例如,软件提供商系统106可以使用与设备102存储的公钥相对应的私钥对软件更新指令进行数字签名。在另一示例中,软件提供商系统106可以使用也由设备102存储的对称密钥对软件更新指令进行数字签名。在一些实施例中,软件提供商系统106可以被配置为使用新密钥(例如,新私钥)对软件更新进行签名,使得设备102可以使用作为执行撤销指令的结果而要使用的对应的新密钥(如,新公钥)来验证软件更新。设备102可以被配置为使用其新密钥来验证更新的软件(例如,当将软件加载到设备102上时)。
图3示出了根据本文所描述的技术的一些实施例的软件更新指令300的示例集合。软件更新指令300可以由图1的软件提供商系统106生成。
软件更新指令300包括一组密钥撤销指令302。密钥撤销指令302可以由设备102的处理器执行。当被执行时,密钥撤销指令302可以使设备102停止使用第一密钥进行加密操作,并启动使用新密钥进行后续加密操作。例如,密钥撤销指令302可以使处理器更新与存储在存储器中的第一密钥相关联的指示不再使用第一密钥的标志和/或更新与存储器中的新密钥相关联、指示将使用新密钥的标志。在另一示例中,密钥撤销指令302可以使设备102从设备的存储器102C中移除第一密钥。在另一示例中,密钥撤销指令302可以识别存储新密钥的设备102的存储器中的位置,设备102将从该位置获得用于加密操作的密钥。在另一示例中,撤销指令302可以修改设备102的存储器102C中的变量,该变量使得设备102使用新密钥来代替第一密钥。软件更新指令300包括软件映像304。软件映像304可以是用于安装在设备上的软件的更新的软件映像。例如,软件映像304可以更新由设备102执行的操作,解决设备102的软件中的bug,或者以其他方式修改设备102的程序。
图3的软件更新指令300用两个签名进行签名:由软件提供商系统106使用第一密钥生成的第一签名300A和由用户系统使用第二密钥生成的第二签名300B。设备102可以被配置为使用两个签名来验证软件更新指令300(例如,如在本文参考图6描述的过程600中执行的)。在该实施例中,为了使对手能够向设备102发送软件映像和/或密钥撤销指令,对手必须访问第一密钥和第二密钥,以便生成两个签名。如使用第二密钥生成的签名300B周围的虚线所示,在一些实施例中,软件更新指令300可以仅使用使用第一密钥生成的署名300A来签名。在这样的实施例中,软件更新指令300可以由软件提供商系统106而不是用户系统签名。
如图3所示,用签名304A对软件映像302进行签名,该签名304A使用将在设备102执行密钥撤销指令302之后使用的新密钥生成。设备102可以使用新密钥来验证新的软件映像304。例如,当在上电之后加载软件时,设备102可以使用新密钥来验证新软件映像304。软件映像304还使用使用(例如用户系统的)第二密钥生成的签名304B进行签名。除了使用新密钥生成的签名304A之外,设备102还可以使用签名304B来验证软件映像304。在一些情况下,新的软件映像304在功能上可以与当前在设备上的软件映像相同。在这种情况下,可以提供新的软件映像304以提供新的密钥和/或签名304B。因此,软件更新指令300可以用于在不更新软件功能的情况下执行密钥撤销。
如签名304B的虚线所示,在一些实施例中,软件图像304可以用签名304A签名而不使用签名304B。例如,用户系统可以不对软件映像304进行签名。在另一示例中,用户系统可以签署软件更新指令300,但软件提供商系统可以不签署。在一些实施例中,软件更新指令100由一个实体(例如,软件提供商系统或用户系统)签署,并且由不签署软件更新指令100的另一实体(例如用户系统或软件提供商系统)递送(例如,到主系统)。例如,软件提供商系统可以签署软件指令300,并且用户系统可以向主机系统递送软件更新指令300。在这样的实施例中,对手仍然需要访问两个独立的系统(即签名系统和递送系统)以获得访问权限,从而能够向设备提供密钥撤销指令。
图4A示出了根据本文所述技术的一些实施例的将第一密钥放置在设备410上的软件提供商系统400。在一些实施例中,软件提供商系统400可以是图1的软件提供商106,并且设备410可以是图2的设备102。
软件提供商系统400执行密钥生成402。在图4A的示例中,软件提供商系统400执行私钥/公钥对生成,其中软件提供商系统400生成由私钥402A和对应的公钥402B组成的密钥对。私钥402A可以不在软件提供商系统400之外共享,而相应的公钥402B可以分布在软件供应商系统400之外。在一些实施例中,软件提供商系统400可以被配置为使用密钥生成402来生成签名算法的非对称密钥对。例如,软件提供商系统400可以生成用于Rivest-Shamir-Adleman(RSA)、椭圆曲线数字签名算法(ECDSA)、数字签字算法(DSA)或其他数字签字方案的非对称密钥对。在另一示例中,软件提供商系统400可以执行密钥生成402以生成对称密钥。
软件提供商系统400将公钥402B和签名发送到设备410。如图4A所示,软件提供商系统400将公钥402B和/或签名发送到设备410以存储在设备410的存储器440中。在一些实施例中,软件提供商系统400可以通过物理连接将公钥402B发送到设备410。例如,软件提供商系统400可以使用联合测试动作组(JTAG)连接、串行外围接口(SPI)、I2C连接、低点计数(EPC)接口、通用串行总线(USB)连接、以太网连接、火线连接、串行端口连接或其他合适的物理连接来连接到设备410。在一些实施例中,软件提供商系统400可以通过无线连接将公钥402B发送到设备410。例如,软件提供商系统400可以使用蓝牙、红外、Wi-Fi或其他合适的无线连接连接到设备410。在一些实施例中,软件提供商系统400可以被配置为在制造期间向设备410发送公钥402B。软件提供商系统400可以与设备410的制造商相关联。在将设备410发送给用户之前,软件提供商系统400可以将公钥402B发送给设备410。
如图4A所示,软件提供商系统400还使用私钥402A执行签名生成408以生成签名。软件提供商系统400将生成的签名发送到设备410以存储在存储器440中。与用于生成签名的私钥402A相对应的公钥402B随后可以被用户系统用来验证加载在设备410的存储器440中的签名是软件提供商的有效签名。在一些实施例中,软件提供商系统400可以被配置为通过使用私钥402A加密数据以获得加密数据来生成签名。存储在设备410的存储器440中的公钥402B可以由用户系统用来验证存储在设备410中的签名是有效的(例如,使用RS A、ECDSA或其他合适的数字签名方案)。
尽管在图4A的示例中,软件提供商系统400生成私钥/公钥对,但是在一些实施例中,软件供应商系统400可以被配置为生成对称密钥。在这样的实施例中,系统400可以生成被发送到设备410以存储在存储器440中的单个密钥。软件提供商系统400可以使用相同的密钥来加密消息认证标签。用户系统可以使用密钥来验证消息认证标签没有改变。
图4B示出了根据本文描述的技术的一些实施例的与图2A的设备410的用户相关联的用户系统430,该用户系统将第二密钥放置在设备410上。在图4B的示例中,用户系统430执行私钥/公钥对生成432,其中用户系统430生成由私钥432A和对应的公钥432B组成的密钥对。私钥432A可以不在用户系统430之外共享,而对应的公钥432B可以分布在用户系统430外。在一些实施例中,用户系统430可以被配置为执行密钥生成432以获得签名算法的非对称密钥对。本文参考图4A描述了示例算法。在一些实施例中,用户系统430可以被配置为执行密钥生成432以生成对称密钥。
如图4A所示,用户系统430将公钥432B发送到设备410,以存储在设备410的存储器440中。在一些实施例中,用户系统430可以被配置为通过物理连接向设备410发送公钥402B。例如,用户系统430可以通过通用串行总线(USB)连接、以太网连接、火线连接、串行端口连接或其他合适的物理连接将公钥432B发送到设备410。在一些实施例中,用户系统430可以被配置为通过无线连接向设备410发送公钥402B。例如,用户系统430可以使用蓝牙连接、红外连接、Wi-Fi连接或其他合适的无线连接将公钥432B发送到设备410。在一些实施例中,用户系统430可以被配置为在部署之前向设备410发送公钥432B。例如,设备410可以从制造商处获得。在从制造商处获得设备410之后,用户系统430可以向设备410发送公钥432B。用户系统430还可以被配置为验证存储在设备410的存储器440中的软件提供商系统的公共,如本文参考图4A所述。
尽管在图4B的示例中,用户系统430生成私钥/公钥对,但是在一些实施例中,用户体系430可以被配置为生成对称密钥。在这样的实施例中,系统430可以被配置为生成单个密钥,该单个密钥被发送到设备410以存储在存储器440中。
图5示出了根据本文描述的技术的一些实施例的用于设备执行密钥撤销的示例过程500。过程500可以由本文中参考图2描述的设备102来执行。在一些实施例中,过程500可以允许设备执行密钥撤销,而不必向另一个系统请求密钥撤销。例如,过程500可以在设备不向系统传送执行密钥撤销的请求的情况下执行。
过程500开始于框502,在框502处,设备从主机系统(例如,本文参考图1描述的主机系统104)接收用于更新安装在设备上的软件的指令。本文参考图3描述了一组示例指令。指令可以已经从软件提供商系统(例如软件提供商系统106)提供给主机系统。该设备可以被配置为通过与该设备的本地网络内的主机系统的连接来接收用于更新软件的指令。在一些实施例中,设备可以通过与主机系统的物理连接接收用于更新安装在设备上的软件的指令。例如,该设备可以嵌入在车辆中,并且主机系统可以是通过有线连接连接到该设备的车辆的ECU。在一些实施例中,设备可以通过无线连接接收用于更新安装在设备上的软件的指令。例如,该设备可能能够在该设备的本地网络中与主机系统无线通信。
接下来,过程500进行到框504,其中设备使用一个或多个密钥来验证在框502接收到的指令。该设备可以被配置为使用密钥来验证指令是从可信源接收的。例如,设备可以使用密钥来验证指令是由软件提供商系统(例如,设备的制造商)生成的指令。在一些实施例中,设备可以被配置为使用密钥来验证指令。例如,设备可以使用该密钥来使用数字签名方案(例如,RSA、ECDSA或其他数字签名方案)验证指令中包括的数字签名。在这个例子中,验证可以包括:(1)使用密钥执行操作;以及(2)基于操作的结果来验证数字签名。该设备可以通过确定结果是否与预期结果匹配来基于操作的结果来验证数字签名。在另一示例中,设备可以使用密钥(例如,其中密钥是对称密钥)来验证消息认证标签。
在一些实施例中,设备可以被配置为使用多个密钥来验证指令。在部署设备以供使用之前,多个密钥可已经存储在设备上。例如,设备可以使用由软件提供商(例如,设备制造商)存储在设备上的密钥和由设备的用户存储在设备中的密钥来验证指令。密钥可已经存储在如本文参考图4A-4B所述的设备上。过程600描述了设备可以执行以使用多个密钥验证指令的示例过程。
接下来,过程500进行到框506,其中设备执行指令。设备的处理器可以被配置为执行指令。在一些实施例中,设备可以被配置为使用设备的引导加载程序来执行指令。例如,该设备可以使用如关于图2的参考214所描述的引导加载程序来执行指令。
接下来,过程500进行到框508,其中设备撤销第一密钥的使用,并启动使用新密钥来代替第一密钥。作为在框506执行指令的结果,该设备可以执行框508的步骤。这些指令使设备执行吊销。在一些实施例中,设备可以设置标志使设备撤销对所述第一密钥的使用,并且启动存储在设备的存储器中的新密钥的使用。例如,该标志可以激活软件功能,该软件功能在执行时使设备撤销对所述第一密钥的使用,并启动新密钥的使用。在一些实施例中,指令可以包括新密钥,并且设备可以用指令中包括的新密钥替换第一密钥。在一些实施例中,设备可以从设备的存储器读取新密钥,并用新密钥替换第一密钥。在一些实施例中,设备可以修改与第一密钥相关联的标志,以指示不再使用第一密钥(例如,在执行验证、加密和/或其他过程中)。在一些实施例中,设备可以更新索引,该索引的值指示存储在设备的存储器中的多个密钥中的相应一个。更新后的索引可以指示新密钥来代替第一密钥。例如,设备可以通过递增索引来更新索引。在另一示例中,设备可以通过将索引随机设置为与其当前值不同的值来更新索引。
在一些实施例中,作为撤销第一密钥的一部分,设备可以撤销对与第一密钥相关联的数据的使用。该数据可以由设备结合第一密钥来使用以执行验证。在一些实施例中,数据可以是用于验证数字签名的一组数据的散列。例如,设备可以将使用第一密钥获得的数字签名的解密与数据(例如,数据集的散列)进行比较,以验证数字签名。该设备可以撤销对与第一密钥相关联的数据的使用,并启动对与新密钥相关联新数据的使用。该设备可以用与新密钥相关联的新数据来替换与第一密钥相关联的数据,或者以其他方式更新使得该设备随后使用具有新密钥的新数据的指示(例如,索引或标志)。
图6示出了根据本文描述的技术的一些实施例的验证软件更新指令的示例过程600。过程600可以由本文中参考图1描述的设备102来执行。在一些实施例中,过程600可以作为本文参考图5描述的过程500的框508的一部分来执行。在一些实施例中,过程600还可以由设备在每次启动时执行,以验证在加载软件之前安装的软件。
执行过程600的设备可以配置有多引导程序软件架构(例如,如本文参考图2所述)。该设备可以具有第一引导加载程序和第二引导加载程序。第一和第二引导加载程序在本文中也可以分别称为主引导加载程序和次引导加载程序。每个引导加载程序可以被配置为在执行验证时使用相应的密钥。第一引导加载器可以被配置为使用第一密钥(例如,由软件提供商提供的密钥),并且第二引导加载器可以配置为使用第二密钥(例如由设备的用户提供的钥匙)。在一些实施例中,第一引导加载程序和第二引导加载程序中的每一个可以被配置为使用第一密钥和第二密钥。可以使用与第一密钥和第二密钥相对应的两个密钥来加密软件指令。在一些实施例中,可以使用两个密钥对指令进行数字签名。例如,第一密钥和第二密钥可以是公钥,并且可以使用与第一公钥和第二公钥相对应的第一私钥和第二私钥对软件指令进行数字签名。软件提供商系统可以使用第一私钥来对指令进行签名,并且用户系统可以使用第二私钥来对该指令进行签名。
过程600开始于框602,其中设备使用第一引导加载程序来使用第一密钥验证指令。该设备可以从该设备的存储器(例如ROM或闪存)加载第一引导加载程序。第一引导加载程序可以被配置为使用第一密钥(例如,第一公钥或第一对称密钥)来验证指令。第一引导加载程序可以被配置为使用第一密钥来验证包括在指令中的第一数字签名。在该示例中,第一引导加载程序可以通过以下方式使用密钥来验证第一数字签名:(1)使用第一密钥对第一数字签名的加密数据进行解密,以获得对加密数据的解密;以及(2)基于解密来验证第一数字签名。第一引导加载程序可以通过确定解密是否与解密的预期输出匹配来基于解密来验证第一数字签名。例如,加密数据可以是一组数据的散列的加密。在该示例中,第一引导加载程序可以确定加密数据的解密是否与数据集的散列匹配,以验证数字签名。如果解密与数据集的散列匹配,则第一引导加载程序可以确定第一数字签名有效。如果解密与数据集的散列不匹配,则第一引导加载程序可以确定第一数字签名无效。
接下来,过程600进行到框604,其中设备确定指令是否在框602处被验证。如果在框602对指令的验证失败,则过程600前进到框612,在框612中,设备阻止指令的执行。在框612处,该设备可以停止指令的执行。因此,该设备可以不执行任何密钥撤销或软件更新。该设备可以继续使用先前版本的软件,并继续使用当前密钥进行验证。
如果设备在框602验证了指令(例如,通过确定第一数字签名有效),则过程600前进到框606,其中设备使用第二引导加载程序来使用第二密钥验证指令。该设备可以从该设备的存储器(例如ROM或闪存)加载第二引导加载程序。第二引导加载程序可以被配置为使用第二密钥(例如,第二公钥或第二对称密钥)来验证指令。第二引导加载程序可以被配置为使用第二密钥来验证包括在指令中的第二数字签名。在该示例中,第二引导加载程序可以通过以下方式使用密钥来验证第二数字签名:(1)使用第二密钥对第二数字签字的加密数据进行解密,以获得对加密数据的解密;以及(2)基于解密来验证第二数字签名。第二引导加载程序可以通过确定解密是否与解密的预期输出匹配来基于解密来验证第二数字签名。例如,加密数据可以是一组数据的散列的加密。在该示例中,第二引导加载程序可以确定加密数据的解密是否与数据集的散列匹配,以验证数字签名。如果解密与数据集的散列匹配,则第二引导加载程序可以确定第二数字签名有效。如果解密与数据集的散列不匹配,则第二引导加载程序可以确定第二数字签名无效。
接下来,过程600进行到框608,其中设备确定指令是否在块606处被验证。如果在框606对指令的验证失败,则过程600前进到框612,其中设备如上所述阻止指令的执行。如果在方框606验证了指令,则过程600前进到框610,其中设备允许执行指令。例如,指令可以由第二引导加载程序或由设备的操作软件执行。指令可以如本文参考图5所描述的过程500的框506和508所描述的那样执行。
图7示出了根据本文描述的技术的一些实施例的用于系统在设备上执行密钥撤销的示例过程700。在一些实施例中,过程700可以由软件提供商系统106执行以撤销设备102上的密钥,如本文参考图1所述。
过程700开始于方框702,其中系统获得生成密钥撤销指令。当密钥撤销指令由设备执行时,可以使设备撤销对第一密钥的使用,并用新密钥替换它,如本文参考图5描述的过程500的框506-508所述。例如,系统可以生成包括编码密钥撤销指令的代码的文件。
接下来,过程700进行到框704,其中系统获得软件更新。系统更新可以是用于安装在设备上的软件的更新的软件映像。在一些实施例中,系统可以被配置为通过将源代码编译成可执行软件映像来获得软件映像。例如,系统可以将源代码编译成二进制文件,该二进制文件可以由设备加载和执行。在一些实施例中,该系统可以被配置为通过从另一个系统接收软件映像来获得软件映像。例如,软件映像可能是通过在另一个系统上编译源代码生成的,然后发送到执行过程700的系统。
接下来,过程700进行到框706,其中系统使用新密钥对软件更新进行数字签名。新密钥可以对应于在执行撤销之后由设备代替第一密钥使用的新密钥。在一些实施例中,新密钥可以是与要在设备上使用的新公钥相对应的新私钥。在一些实施例中,新密钥可以是也要在设备上使用的新对称密钥。该系统可以被配置为通过生成将被包括在软件更新中的数字签名来对软件更新进行数字签名。该系统可以被配置为通过以下方式生成数字签名:(1)获得一组数据;以及(2)使用新密钥对数据集进行加密,以获得加密的数据集作为数字签名。在一些实施例中,系统可以被配置为通过散列数据(例如,文本数据)来获得数据集,以获得数据集。该系统可以使用新的密钥对散列后的数据集进行加密。通过使用新密钥对软件更新进行数字签名,可以在撤销指令执行之后由设备使用设备的相应新密钥来验证软件更新。
接下来,过程700进行到框708,其中系统生成包括撤销指令和软件更新的软件更新指令。在一些实施例中,该系统可以被配置为生成包括软件更新和撤销指令的一个或多个文件。例如,系统可以生成包括软件更新的文件(例如,软件映像)和包括撤销指令的文件。系统可以将这两个文件存储在单个数据包中作为软件更新指令。本文参考图3描述了可以由系统生成的软件更新指令的示例集合。
接下来,过程700进行到框710,其中系统使用与设备当前被配置用于验证的密钥相对应的第一密钥对软件更新指令进行数字签名。该系统可以通过生成包括在软件更新指令中的数字签名来对软件更新指令进行数字签名。本文描述了使用密钥生成数字签名的技术。该设备可以被配置为使用与第一密钥相对应的密钥来验证软件更新指令。例如,设备可以使用与第一密钥相对应的公钥来验证软件更新指令。在另一示例中,第一密钥可以是对称密钥,并且设备可以使用第一对称密钥来验证软件更新指令。
接下来,过程700进行到框712,其中系统发送软件更新指令。在一些实施例中,该系统可以被配置为向用户系统发送软件更新指令。用户系统可以对软件更新指令进行数字签名。在一些实施例中,用户系统可以验证执行过程700的系统的数字签名,并且如果用户系统确定数字签名有效,则用户系统可以通过生成其自己的数字签名来对软件更新指令进行数字签名。用户系统然后可以将软件更新指令发送到主机系统(例如,主机系统104)以用于发送到设备。在一些实施例中,用户系统可以向主机系统发送软件更新指令,而无需对软件更新指令进行数字签名。在这样的实施例中,软件更新指令可以由单个实体(例如,执行过程700的系统)签名。该设备可以通过验证包括在软件更新指令中的两个数字签名来验证软件更新指令。在一些实施例中,执行过程700的系统可以被配置为将软件更新指令发送到主机系统而不将它们发送到用户系统。该设备可以通过验证包括在软件更新指令中的系统的数字签名来验证软件更新指令。向设备发送软件更新指令可以使得设备执行本文参考图5描述的过程500。该设备可以撤销对密钥的使用,并开始使用另一个密钥来代替被撤销的密钥。
在一些实施例中,系统可以被配置为在不接收由设备生成的任何请求的情况下发送包括密钥撤销指令的软件更新指令。例如,系统可以在不参与与设备的任何通信协议的情况下发送软件更新指令。如本文参考图4所述,设备可以(例如,通过主机系统)接收指令而不请求指令。这可以消除对手拦截任何此类请求和/或将其自己的密钥发送到设备的机会。
图8示出了可以用于实现本文所述技术的实施例的示例计算机系统800的框图。计算设备800可以包括一个或多个计算机硬件处理器802和非瞬态计算机可读存储介质(例如,存储器804和一个或更多个非易失性存储设备806)。处理器802可以控制向(1)存储器804写入数据和从存储器804读取数据;以及(2)非易失性存储设备806。为了执行本文所描述的任何功能,处理器802可以执行存储在一个或多个非暂时性计算机可读存储介质(例如,存储器804)中的一个或更多个处理器可执行指令,该一个或更少个处理器可执行指令可以用作存储处理器可执行的指令以供处理器802执行的非暂时性计算可读存储介质。
术语“程序”或“软件”在本文中以一般意义使用以指代可用于对计算机或其他处理器(物理或虚拟)进行编程以实现如上所述的实施例的各个方面的任何类型的计算机代码或处理器可执行指令集。此外,根据一个方面,当执行时执行本文所提供的公开的方法的一个或多个计算机程序不需要驻留在单个计算机或处理器上,而是可以以模块化的方式分布在不同的计算机或处理器之间,以实现本文所提供公开的各个方面。
处理器可执行指令可以是由一个或多个计算机或其他设备执行的多种形式,例如程序模块。通常,程序模块包括执行任务或实现抽象数据类型的例程、程序、对象、组件、数据结构等。通常,程序模块的功能可以是组合的或分布式的。

Claims (20)

1.一种用于在受限于设备的本地网络内的通信的设备上执行密钥撤销的方法,所述设备存储第一密钥和第二密钥,所述方法包括:
使用所述设备的处理器来执行:
从所述设备的本地网络内的主机系统接收用于更新安装在所述设备上的软件的指令,其中所述指令包括用于撤销所述第一密钥的指令;以及执行所述指令,其中所述指令的执行使得所述设备:
撤销对所述第一密钥的使用;和
启动使用第三密钥来代替第一密钥。
2.根据权利要求1所述的方法,其中所述设备不具有互联网连接。
3.根据权利要求1所述的方法,其中所述设备不能与第三方验证机构通信。
4.根据权利要求1所述的方法,还包括使用所述处理器来执行:
使用所述设备的所述第一密钥和所述第二密钥来验证所述指令;以及
在使用设备的第一密钥和第二密钥验证指令之后执行所述指令。
5.根据权利要求4所述的方法,其中使用所述设备的所述第一密钥和所述第二密钥来验证所述指令包括:
使用所述设备的第一引导加载程序,使用所述第一密钥来验证所述指令;和
使用所述设备的第二引导加载程序,使用所述第二密钥来验证所述指令。
6.根据权利要求5所述的方法,其中执行所述指令包括使用所述第二引导加载程序来执行所述指示。
7.根据权利要求4所述的方法,其中:
所述指令包括使用所述第一密钥生成的第一签名和使用所述第二密钥生成的第二签名;和
验证所述指令包括使用所述第一密钥和所述第二密钥来验证所述第一签名和所述第二签名。
8.根据权利要求1所述的方法,其中所述第一密钥由与安装在所述设备上的所述软件的提供商相关联的系统生成,并且所述第二密钥由与所述设备的用户相关联的系统生成。
9.根据权利要求1所述的方法,其中所述第一密钥的撤销能够执行多达预定次数。
10.根据权利要求9所述的方法,其中所述预定次数是一次。
11.根据权利要求1所述的方法,进一步包括:
从所述设备的本地网络内的主机系统接收用于更新安装在所述设备上的软件的另一指令集,其中所述另一指令集合包括用于撤销所述第二密钥的指令;和
执行所述附加的指令集,其中所述附加的指令集的执行使得所述设备:
撤销对所述第二密钥的使用;和
开始使用第四密钥来代替所述第二密钥。
12.一种形成本地网络的一部分并且限于在所述本地网络内进行通信的设备,所述设备包括:
无线通信电路;
存储器,被配置为存储第一密钥和第二密钥;和
处理器,所述处理器被配置为:
使用所述无线通信电路从所述本地网络内的主机系统接收用于更新安装在所述设备上的软件的指令,其中所述指令包括用于撤销所述第一密钥的指令;和
执行所述指令,其中所述指令的执行使得所述设备:
撤销对所述第一密钥的使用;和
启动使用第三密钥来代替第一密钥。
13.根据权利要求12所述的设备,其中所述设备不具有互联网连接。
14.根据权利要求12所述的设备,其中所述设备不能与第三方验证机构通信。
15.根据权利要求12所述的设备,其中所述指令进一步使得所述处理器:
使用所述设备的所述第一密钥和所述第二密钥来验证所述指令,其中所述指令的执行是在验证所述设备的所述第一密钥和所述第二密钥之后执行的。
16.根据权利要求15所述的设备,其中:
所述存储器被配置为存储用于加载安装在所述设备上的软件的第一引导加载程序和第二引导加载程序的指令;和
使用所述设备的所述第一密钥和所述第二密钥来验证所述指令包括:
使用所述第一引导加载程序,使用所述第一密钥验证指令;和
使用所述第二引导加载程序,使用所述第二密钥验证指令。
17.一种用于在不具有到所述设备的连接的情况下在所述设备上执行密钥撤销的系统,所述设备具有第一密钥,所述系统包括:
无线通信电路;和
处理器,所述处理器被配置为:
使用所述无线通信电路向所述设备的本地网络内的主机系统发送用于更新安装在所述设备上的软件的指令,其中所述指令在由所述设备执行时使得所述设备:
撤销对所述设备的第一密钥的使用;和
启动使用第二密钥来代替所述第一密钥。
18.根据权利要求17所述的系统,其中所述处理器还被配置为使用所述第一密钥对所述指令进行签名。
19.根据权利要求17所述的系统,其中所述指令包括软件映像,并且所述处理器还被配置为使用所述第二密钥对所述软件映像进行签名。
20.根据权利要求17所述的系统,其中所述处理器还被配置为通过在所述指令中包括密钥撤销指令和更新的软件映像来生成所述指令。
CN202180087734.6A 2020-12-31 2021-12-10 边缘设备的密钥撤销 Pending CN116710914A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US202063132992P 2020-12-31 2020-12-31
US63/132,992 2020-12-31
PCT/US2021/062879 WO2022146657A1 (en) 2020-12-31 2021-12-10 Key revocation for edge devices

Publications (1)

Publication Number Publication Date
CN116710914A true CN116710914A (zh) 2023-09-05

Family

ID=79287947

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180087734.6A Pending CN116710914A (zh) 2020-12-31 2021-12-10 边缘设备的密钥撤销

Country Status (5)

Country Link
US (1) US20220209946A1 (zh)
EP (1) EP4272365A1 (zh)
JP (1) JP2024503602A (zh)
CN (1) CN116710914A (zh)
WO (1) WO2022146657A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11652626B2 (en) * 2020-02-18 2023-05-16 International Business Machines Corporation Safeguarding cryptographic keys from modification or deletion

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10033534B2 (en) * 2015-12-01 2018-07-24 Intel Corporation Methods and apparatus to provide for efficient and secure software updates

Also Published As

Publication number Publication date
US20220209946A1 (en) 2022-06-30
EP4272365A1 (en) 2023-11-08
WO2022146657A1 (en) 2022-07-07
JP2024503602A (ja) 2024-01-26

Similar Documents

Publication Publication Date Title
US11074371B2 (en) Systems, methods and apparatuses for secure storage of data using a security-enhancing chip
US10708062B2 (en) In-vehicle information communication system and authentication method
CN107085675B (zh) 受控安全代码验证
EP3362936B1 (en) Trusted platforms using minimal hardware resources
US9430658B2 (en) Systems and methods for secure provisioning of production electronic circuits
JP4912879B2 (ja) プロセッサの保護された資源へのアクセスに対するセキュリティ保護方法
CN110050437B (zh) 分布式证书注册的装置和方法
US10482255B2 (en) Controlled secure code authentication
US10771467B1 (en) External accessibility for computing devices
WO2017066017A1 (en) Migrating secrets using hardware roots of trust for devices
JP2013031151A (ja) 暗号通信システムおよび暗号通信方法
CN107534551B (zh) 提供加密数据的方法、计算设备和计算机可读介质
KR20070084326A (ko) 이동 단말기에서의 구성 파라미터 갱신
JP2010011400A (ja) 共通鍵方式の暗号通信システム
JP2016152623A (ja) 操作から保護する方法
JP2016025628A (ja) 情報処理システム、および電子機器
US20160277182A1 (en) Communication system and master apparatus
US20220209946A1 (en) Key revocation for edge devices
US10404718B2 (en) Method and device for transmitting software
US10067770B2 (en) Platform key hierarchy
JP6014214B2 (ja) 暗号通信システムおよび暗号通信方法
US20240086170A1 (en) Software update system and software update method
CN117857045A (zh) 证书更新方法和驱动该方法的设备的证书更新系统
CN111641507A (zh) 一种软件通信体系结构组件注册管理方法和装置
JP2014178906A (ja) 認証方法、認証プログラムおよび認証装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination