CN104219049A - 用以改进安全闪存编程的方法 - Google Patents

用以改进安全闪存编程的方法 Download PDF

Info

Publication number
CN104219049A
CN104219049A CN201410232357.2A CN201410232357A CN104219049A CN 104219049 A CN104219049 A CN 104219049A CN 201410232357 A CN201410232357 A CN 201410232357A CN 104219049 A CN104219049 A CN 104219049A
Authority
CN
China
Prior art keywords
key certificate
software
public
ciphering signature
level
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.)
Granted
Application number
CN201410232357.2A
Other languages
English (en)
Other versions
CN104219049B (zh
Inventor
A.I.阿尔拉巴迪
J.D.罗萨
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.)
GM Global Technology Operations LLC
Original Assignee
GM Global Technology Operations LLC
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 GM Global Technology Operations LLC filed Critical GM Global Technology Operations LLC
Publication of CN104219049A publication Critical patent/CN104219049A/zh
Application granted granted Critical
Publication of CN104219049B publication Critical patent/CN104219049B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1408Protection against unauthorised use of memory or access to memory by using cryptography
    • 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/3263Cryptographic 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 certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • 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/006Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving public key infrastructure [PKI] trust models
    • H04L9/007Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving public key infrastructure [PKI] trust models involving hierarchical structures
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1052Security improvement
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/24Key scheduling, i.e. generating round keys or sub-keys for block encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/64Self-signed certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/72Signcrypting, i.e. digital signing and encrypting simultaneously
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/84Vehicles

Abstract

本公开涉及用以改进安全闪存编程的方法。提供了方法来将软件对象安全地装载到电子控制单元中。所述方法包括:接收第一软件对象,其包括次级公共密钥证书、第一加密签名和第一软件组。一旦第一软件对象被接收后,用嵌入的根级公共密钥验证第一次级公共密钥,用第一次级公共密钥证书验证第一加密签名,并用第一加密签名验证第一软件组。当第一软件组是有效的时,则将第一次级公共密钥证书和第一软件组存储到非易失性存储器。一旦被存储后,接收接续软件对象,其只包括来自编程源的接续加密签名和接续软件组。用所存储的次级公共密钥证书验证接续加密签名,并用接续加密签名验证接续软件组。

Description

用以改进安全闪存编程的方法
技术领域
本技术领域主要涉及计算装置的安全编程。特别地,提供方法来降低装载证书安全软件编程所需的带宽要求。
背景技术
当计算装置被第一次编程或在以后被重新编程时,使用数字签名加密方法是常见的。数字签名是一种数学结构,用于证明数字消息或文档的真实性,并给予接受者原因来相信消息是由已知的发送者生成的,并且消息在传输中未被改变。数字签名通常用于软件分发、金融交易、以及检测赝品或篡改是很重要的其它情况。
数字签名采用一种不对称加密术,并且在许多方面相当于传统的手写签名。然而,恰当实施的数字签名比手写类型更难以伪造。数字签名的消息可以是可表示为位元字串的任何东西,比如电子邮件、计算机程序、证书、数据、合同、或经由一些其它加密协议发送的消息。
简言之,待装载软件的计算装置通常包括根级公共密钥,其被预先安装或嵌入它的存储器中。待装载的任何新软件都具有嵌入其中的证书,其已经由相对应的根级私有密钥或其存在于受信任的实体处的变型签名。本文中,根级(公共、私有)密钥的变型是从属公共密钥。
从属私有密钥,也称为次级私有密钥,被使用在根级私有密钥的访问将被最小化时。从属公共密钥,也称为次级公共密钥,被包含在由根级私有密钥签名的证书中,并且该证书自身与文件内容一起被交付。次级私有密钥于是用于签署被传递和上传到计算装置的文件内容。
当上传新软件文件到计算装置中时,嵌入的根级公共密钥用于验证(或证明)与软件文件一起传来的数字证书是真实的。新的软件文件通常在远程编程工具或其它类型的编程设备处形成。编程工具在本领域中众所周知的,从而在本文中将不做论述,以为简单和简洁之故。
软件通过引导装载程序上传到计算装置中,所述引导装载程序是初级软件对象,其通常存在于操作系统内核中,所述操作系统内核执行上传和安装软件到计算装置的存储器中的任务。引导装载程序是本领域中众所周知的,从而将不更详细地论述其详情,以为简单和简洁之故。
一旦数字认证文件被接收在计算装置处后,通过嵌入的根级公共密钥来验证包含次级公共密钥的数字证书。证书签名验证是本领域中众所周知的,从而将不更详细地论述其详情,以为简单和简洁之故,并且在本文中被称为“验证”。
一旦数字证书被验证后,数字证书中的次级公共密钥于是进而用于验证在相关联应用软件或数据文件上的数字签名。以下,应用软件、数据文件、校准包、数据包或用于待装载到ECU中的系统操作的“数据”也可以被称为被装载文件结构的“软件部分”。“软件部分”不是指证书、密钥或用于安全目的的其它数字对象。
常规上,如果有必要装载多个软件应用、校准包或数据文件,则相同证书通常被附加至软件部分中的每个数据文件,并从编程工具重复地传输至计算装置的处理器。用于软件部分中的每个数据文件的次级密钥证书的这种重传需要消耗容量已经有限的数据总线上的过多带宽,并且对于由处理器进行的实际重新验证来说需要不必要的处理时间。因此,希望开发对计算装置编程的创新方法,来使用于验证所上传软件的带宽和处理器开销最小化。
此外,从后续详细描述和所附权利要求书,结合附图和前述技术领域和背景技术来理解,本发明的其它所需特征和特性将变得清楚明了。
发明内容
提供了一种用于将多个软件对象装载到含有根级公共密钥的计算装置中的方法。所述方法包括:接收来自编程源的第一软件对象,所述第一软件对象进一步包括次级公共密钥证书、第一加密签名和第一数据组;以及验证第一数据组。当所述第一数据组是有效的时,将所述次级公共密钥证书存储在所述计算装置的存储器中,并将所述第一数据组写入所述计算装置的存储器中。所述方法进一步包括:接收来自所述编程源的第二软件对象,所述第二软件对象包括来自所述编程源的第二加密签名、第二数据组,但是缺乏所述次级公共密钥证书。再进一步,所述方法包括:用所存储的次级公共密钥证书验证所述第二加密签名;以及用所述第二加密签名验证所述第二软件对象,并将所述第二数据组写入所述计算装置的存储器。
提供了一种用于将多个软件对象装载到计算装置中的方法,所述计算装置含有嵌入的公共根级密钥和所存储的第一次级公共密钥证书,这时存在与被装载的第二软件对象相关联的不同的后续次级加密公共密钥证书。所述方法包括:接收来自编程源的第一软件对象,其包括第一次级公共密钥证书、加密签名和第一软件组。所述方法进一步包括:确定所接收的第二软件对象关联于与所述第一次级公共密钥证书不同的所述后续次级公共密钥证书。当所述后续次级公共密钥证书相同于所述第一次级公共密钥证书时,则验证关联于所述第二软件对象的加密签名,并将所述第二软件对象写入所述计算装置的非易失性存储器。当所述后续次级公共密钥证书不同于所存储的第一次级公共密钥证书时,则用所嵌入的公共根级密钥验证所述后续次级公共密钥证书。所述方法进一步包括:使用所述后续次级公共密钥证书验证所述加密签名,以及用它们的加密签名验证所述第二软件对象。当所述第二软件对象是有效的时,则将所述后续次级公共密钥证书存储到所述非易失性存储器,并将所述第二软件对象写入非易失性存储器。
一种交通工具被提供并包括电子受控装置、被构造成控制所述电子受控装置的电子控制单元(ECU)、和引导装载程序。所述引导装载程序被构造成通过以下方式将软件装载到ECU中:接收来自编程源的第一软件对象,其包括第一次级公共密钥证书、第一加密签名和第一软件组;用公共根级加密密钥验证第一次级加密密钥证书;以及使用第一次级公共密钥证书验证第一加密签名。所述方法进一步包括:将第一软件组写入计算装置的非易失性存储器,以及用第一加密签名验证第一软件组。当第一软件组是有效的时,则通过计算装置接受第一次级加密密钥证书和第一软件组。所述方法还包括:接收来自编程源的接续软件对象,其只包括来自编程源的接续加密签名数据头和接续软件组;用所存储的次级公共密钥证书验证所述接续加密签名;以及用所述接续加密签名验证所述接续软件组,并使所述接续软件组被计算装置接受。
附图说明
下面将结合以下附图来描述示例性实施例,附图中相似附图标记表示相似要素,并且附图中:
图1是被构造成将软件装载到电子控制单元(ECU)中的交通工具的示例性框图;
图2是常规应用文件和校准数据文件的结构的示例性图示;
图3是根据本文所描述实施例的常规应用文件和校准数据文件的结构的示例性图示;
图4是用于装载与相同次级公共密钥证书相关联的多个数据文件的逻辑图;
图5是用于装载与至少一个不同次级公共密钥证书相关联的多个数据文件的逻辑图。
具体实施方式
关联于本文所公开的实施例描述的多个例示性部件和逻辑块可以由以下器件实施或执行:通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑装置、离散门或晶体管逻辑、离散硬件部件、或其被设计成执行本文所描述的功能的任意组合。通用处理器可以是微处理器,但是在替代方案中,处理器可以是任何常规处理器、控制器、微控制器、或状态机。处理器还可以被实施为计算装置的组合例如DSP和微处理器的组合、多个微处理器、一个或多个微处理器结合DSP芯、或任何其它这种构造。
词语“示例性”在本文中专门用于意指“用作一个示例、实例或例证”。在本文中被描述为“示例性”的任何实施例并不一定应解释为优选于或优于其它实施例。
关联于本文所公开的实施例所描述的方法或算法的步骤可以被直接实施在硬件中、由处理器执行的软件模块中、或两者的组合中。软件可以存在于RAM存储器、快闪存储器、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移除盘、CD-ROM、或本领域中公知的任何其它形式的存储介质中。一示例性存储介质联接至处理器,使得处理器可向存储介质读取信息和写入信息。在替代方案中,存储介质可以集成于处理器。处理器和存储介质可以存在于ASIC中。
在本文中,关系术语比如第一和第二等可以仅用于区分一个实体或动作与另一实体或动作,而不一定在这类实体或动作之间要求或暗示任何实际的这种关系或顺序。序数词比如“第一”、“第二”、“第三”等仅仅表示复数个中的不同个体,并不暗示任何顺序或序列,除非通过权利要求语言有特别定义。任一权利要求中的文本的序列并不暗示流程步骤必须按与这种序列相应的时间或逻辑顺序执行,除非通过权利要求的语言有特别定义。流程步骤可以按任何顺序互换而不背离本发明的范围,只要这种互换不与权利要求语言相矛盾以及在逻辑上不是荒谬的。
此外,根据上下文,用于描述不同元件之间的关系的比如“连接”或“联接至”等词语并不暗示必须在这些元件之间进行直接的物理连接。例如,两个元件可以通过一个或多个附加元件物理地、电子地、逻辑地或以任何其它方式彼此连接。
图1是根据多个实施例的包含公用引导装载程序8的交通工具1的简化功能框图。交通工具1可以是包含由计算装置或电子控制单元(ECU)5控制的一个或多个电子受控装置3的任何交通工具。尽管描绘为汽车地面交通工具,但是本文的描述并不旨在局限于此。交通工具还可以包括航空器和水运工具、以及当前已知或将来开发的所有类型的其它陆地交通工具。ECU可以是被构造成用于任何用途的任何类型的计算装置。
电子受控装置3可以具有电源4(例如,电池)和传感器套件2,其包括任何数量或类型的传感器,如可以被确定为有利于特定情况的。来自传感器套件2的输出信号可以经由数据总线11传输至ECU 5。
ECU 5至少包括引导装载程序8,其被构造成将文件(例如,应用软件、校准数据、数据文件等)的内容或“软件部分”从编程工具10装载到ECU 5中,所述编程工具10被描绘为位于交通工具外。然而,编程工具10的位置并不旨在局限于外部位置。编程工具10也可以位于交通工具1的内部。在优选实施例中,ECU 5是安全计算装置,如可以是本领域的普通技术人员已知的或者可以在将来被设计出的。
ECU 5包括处理器7和至少一个易失性或非易失性存储装置6。非易失性存储装置6可以是本领域中公知的任何非易失性记忆存储装置。非易失性存储装置的非限制性示例包括只读存储器、快闪存储器、电可擦除只读存储器(EEPROM)和可能在当前存在或在将来存在的类似物。
引导装载程序8是软件对象,其被写入和嵌入操作装置中,所述操作装置将其它内容比如操作系统内核、应用软件和校准数据装载到存储器中。在优选实施例中,引导装载程序8有权访问安全存储器,在其中可以存在嵌入式加密代码、密钥和证书比如根级公共密钥9。这些加密代码、密钥和证书还可以被存储在不安全存储器中。然而,这种不安全存储器可能负面地影响以下在本文中公开的安全方法和系统。
尽管本文所公开的主题与其它类型的加密/验证技术(例如,对称数字密钥验证)是兼容的,但是以下公开的多个实施例将在不对称数字密钥验证的框架中进行论述,以便于论述和简单明了。
简言之,数字签名方案通常由三种算法构成:
1) 密钥生成算法,其选择私有密钥并输出私有密钥和相对应的公共密钥(这里为根级公共密钥和根级私有密钥)。
2) 签名算法,其在被给予消息和私有密钥的情况下,生成签名。
3) 签名验证算法,其在被给予消息、公共密钥和签名的情况下,接受或拒绝消息的真实性主张。
算法的两个主要性能是所需的。第一,由固定消息(比如一散列的消息)生成的签名和固定私有密钥应该通过使用相对应的公共密钥验证该消息的真实性。第二,对于不具备私有密钥的一方来说,应该不可能以计算方式生成有效的签名。
典型的不对称数字密钥验证使用两个不同但是在数学上相关的密钥来签署然后验证数字证书:私有密钥和公共密钥。私有密钥只对发送单元已知,而根级公共密钥9被给予任何接收计算机,比如ECU 5。
通常,通过以与文件的内容相关联的相对应公共密钥解密嵌入式签名来验证文件。然后对该文件的内容采集一散列。如果该散列匹配于所解密的签名,则该文件得到验证。这种解密方式仅仅是示例性的。可以存在其它等同的解密方法和变型,并在不背离本文的创造性主题的范围的情况下使用。这个以及其它验证方法是本领域中众所周知的,在本文中将不做进一步描述,以为清楚和简洁之故。此后使用的术语“验证”是指本领域中使用的任何适当的验证算法,其可以被发现有利于满足设计要求。
图2是一组示例性数据文件的简化再现,所述数据文件可以常规上经由引导装载程序8被编程工具10装载到ECU 5中。在该再现中,绘出了应用软件文件110和校准数据文件150,但是它们在图中的顺序仅仅是示例性的,并非旨在进行限制。示例性应用软件文件110包括应用软件116、加密签名114和次级公共密钥证书112。次级公共密钥证书112由根级私有密钥(未示出)签名。示例性校准数据文件150也包括次级公共密钥证书112、加密签名152和校准数据154自身。加密签名114和152包含用于相应数据文件的数字签名。
图3是根据下文描述的新颖实施例的一组示例性的所需数据文件的简化再现,其可以被编程工具10装载到ECU 5中。在该再现中,根据本文的实施例的应用软件文件110和校准数据文件150被示出,但是它们在图中的顺序仅仅是示例性的,并非旨在进行限制。示例性应用软件文件110包括应用软件116、加密签名114和次级公共密钥证书112。示例性校准数据文件150只包括加密签名152和校准数据154自身。在本文所公开的实施例中,不需要包括次级公共密钥证书112。
下文描述的方法的优点是:当装载软件时,对于在包括次级公共密钥证书的第一文件之后装载的每个接续文件而言,通过省略传输次级公共密钥证书112的需要,来降低对数据总线11的带宽要求。例如,如果应用软件文件110的装载要求后续或接续装载21个校准数据文件150,则常规上次级公共密钥证书112要被传输22次,每个文件一次。
然而,通过将得到验证的次级公共密钥证书112存储到存储器6中,或者甚至是存储到易失性存储器比如随机存取存储器中,可以降低所需的计算资源的量。因此,可以通过不必为每个文件传输次级公共密钥证书112,来更有效地将多个接续文件装载到ECU 5中。次级公共密钥证书112可以附加至被上传的任一软件对象。然而,次级公共密钥证书112只需在次级公共密钥证书112不同于前一版本时附加至软件对象(例如,112、114、116、152、154)。
除了本文所公开的示例性方法之外,还存在以下示例性方法的众多相似的替代变型,取决于次级公共密钥证书在所上传的多个文件中存在于何处或者证书被如何存储在存储器中。在阅读申请人的说明书之后,这些变型对本领域技术人员来说将是显而易见的。例如,次级公共密钥证书112可以位于实际应用软件116中或校准数据154内。
图4是方法200的示例性逻辑流程图,所述方法200可以用于有效地装载多个文件,假定的是所有文件只使用一个次级公共密钥证书112。方法200还允许专用密钥替换文件包被省略。应当指出的是:所示步骤可以被分解为多个子步骤和组合在一起的子步骤,而不背离本公开的范围。此外,这些步骤可以被重新排列,以便生成替代的但是在功能上等同的实施例。
在本示例中,应用软件116和一个或多个校准数据文件154被装载。本方法开始于步骤206处,这时引导装载程序8接收来自编程工具10的应用软件文件110。在步骤212处,引导装载程序8使用在制造时嵌入ECU存储器6中的根级公共密钥9,来验证应用软件文件110的次级公共密钥证书112。如果无效,则该步骤在步骤260处生成错误。一旦被根级公共密钥9得到验证后,次级公共密钥证书112于是用于在步骤218处验证应用软件116的加密签名114中的数字签名。
一旦加密签名114在步骤224处得到验证后,应用软件116进而在步骤230处部分地基于来自加密签名114的数字签名得到验证。应用软件116被写入存储器6。另外,在步骤230处,得到验证的次级公共密钥证书112还被存储于存储器6,以供后续在步骤242处使用。应用软件文件110向存储器6的写入在步骤231处完成。
在等同替代实施例中,应用软件116可以首先在步骤230处被写入快闪存储器6,然后随之在步骤224处由引导装载程序8验证。在该情况下,引导装载程序8将只在应用软件116被验证之后允许应用软件116。该实施例可能有利于以下情况:ECU存储器缓存(未示出)小到不能保持整个应用软件116。因此,较大的主非易失性存储器6可以被用作引导装载程序8的替代缓存。
在步骤236处,引导装载程序8接收下一文件,其在本示例中为校准数据文件150。在步骤242处,使用在步骤231处存储于存储器6中的次级公共密钥证书112以相同或等同于在步骤212处使用的方式来验证任何接续文件的加密签名152。校准数据154在步骤248处写入存储器6,并在步骤254处由得到验证的加密签名152验证。
如以上论述的,在等同实施例中,校准数据154可以首先在步骤248处写入快闪存储器,然后随之在步骤231处由引导装载程序8验证。在该情况下,引导装载程序8将只在校准数据154被验证之后允许校准数据154。该实施例可能有利于以下情况:ECU存储器缓存(未示出)小到不能保持整个校准数据154。因此,较大的主非易失性存储器6可以被用作替代缓存。
如果该校准数据是在决定点254处从编程工具10传输的最后数据,则方法200结束于270。否则,方法200循环回到步骤236,在这里接收下一文件。
图5是方法300的示例性逻辑流程图,所述方法300可以用于有效地装载多个文件,假定的是某些文件使用了不同的接续次级公共密钥证书112。在该情况下,不同的次级公共密钥证书在有限的基础上与其相关联的软件一起被利用。在本示例中,应用软件116和一个或多个校准数据文件154被装载。本方法开始于步骤306处,这时引导装载程序8接收来自编程工具10的软件对象(例如,文件110/150)。
在步骤312处,引导装载程序8确定何时所接收的文件(110或150)关联于与先前已经存储在ECU存储器6中的次级公共密钥证书不同的次级公共密钥证书112。
当所接收的文件关联于已经存储在ECU存储器6中的次级公共密钥证书时,接续软件组(110/150)的加密签名114由存储的次级公共密钥证书来验证,其进而在步骤315处用于验证接续软件组。接续软件组于是被写入ECU存储器6。
当所接收的文件不关联于已经存储在ECU存储器6中的次级公共密钥证书时,所接收文件的次级公共密钥证书112则在步骤318处由嵌入的根级公共密钥9来验证。如果它无法得到验证,则在360处生成错误。进而,在步骤324处使用得到验证的次级公共密钥证书112来验证加密签名114。
在步骤330处,第二(或接续)组的应用软件116于是被相关联的得到验证的加密签名114验证,并在步骤336处写入存储器6。如以上论述的,存储器6还可以被用作替代存储器缓存,其中第二软件组在步骤336处被存储到存储器6,并随后在步骤330处被验证。
如果第二组的应用软件116是最后一组待装载的软件,则方法结束于370。否则,方法300循环回到步骤306。
虽然在前述详细描述中给出了至少一个示例性实施例,但是应该理解的是存在大量的变型。还应该理解的是:一个示例性实施例或多个示例性实施例只是示例,并不旨在以任何方式限制本公开的范围、适用性或构造。相反,前述详细描述将为本领域技术人员提供便利的线路图来实施一个示例性实施例或多个示例性实施例。应该明白的是:可在要素的功能和配置中做出各种变化,而不背离如在所附权利要求及其法律等同方案中阐述的本公开的范围。

Claims (8)

1. 一种用于将多个软件对象装载到含有根级公共密钥的计算装置中的方法,所述方法包括:
接收来自编程源的第一软件对象,所述第一软件对象包括次级公共密钥证书、第一加密签名和第一数据组;
验证所述第一数据组;
当所述第一数据组是有效的时,则将所述次级公共密钥证书存储在所述计算装置的存储器中,并将所述第一数据组写入所述计算装置的存储器;
接收来自所述编程源的第二软件对象,所述第二软件对象包括来自所述编程源的第二加密签名、第二数据组,并缺乏所述次级公共密钥证书;
用所存储的次级公共密钥证书验证所述第二加密签名;
用所述第二加密签名验证所述第二软件对象;以及
将所述第二数据组写入所述计算装置的存储器。
2. 如权利要求1所述的方法,进一步包括:用所述根级公共密钥验证所述次级公共密钥证书。
3. 如权利要求1所述的方法,进一步包括:使用得到验证的第一次级公共密钥证书来验证所述第一加密签名。
4. 如权利要求1所述的方法,其中,所述第一数据组由所述第一加密签名验证。
5. 如权利要求1所述的方法,其中,所述根级公共密钥是异步公共根级加密密钥。
6. 一种用于将多个软件对象装载到计算装置中的方法,所述计算装置含有嵌入的公共根级密钥和所存储的第一次级公共密钥证书,这时存在与被装载的第二软件对象相关联的不同的后续次级公共密钥证书,所述方法包括:
接收来自编程源的第一软件对象,其包括第一次级公共密钥证书、加密签名和第一软件组;
确定所接收的第二软件对象关联于与所述第一次级公共密钥证书不同的所述后续次级公共密钥证书;
当所述后续次级公共密钥证书相同于所述第一次级公共密钥证书时,则用所述第一次级公共密钥证书验证关联于所述第二软件对象的加密签名,并将所述第二软件对象写入所述计算装置的非易失性存储器;
当所述后续次级公共密钥证书不同于所存储的第一次级公共密钥证书时,则用所嵌入的公共根级密钥验证所述后续次级公共密钥证书;
使用所述后续次级公共密钥证书来验证所述加密签名;
用它们的加密签名来验证所述第二软件对象;以及
当所述第二软件对象是有效的时,则将所述后续次级公共密钥证书存储到所述非易失性存储器,并将所述第二软件对象写入非易失性存储器。
7. 如权利要求6所述的方法,其中,所嵌入的公共根级密钥是异步公共加密密钥。
8. 一种交通工具,包括:
电子受控装置;
电子控制单元(ECU),其被构造成控制所述电子受控装置;和
引导装载程序,所述引导装载程序被构造成将软件装载到所述ECU中,方法是:
     接收来自编程源的第一软件对象,其包括第一次级公共密钥证书、第一加密签名和第一软件组;
     用根级公共密钥验证所述第一次级公共密钥证书;
     使用所述第一次级公共密钥证书来验证所述第一加密签名;
     将所述第一软件组写入所述ECU的非易失性存储器;
     用所述第一加密签名验证所述第一软件组;
     当所述第一软件组是有效的时,则将所述第一次级公共密钥证书和所述第一软件组存储到所述非易失性存储器;
     接收来自所述编程源的接续软件对象,其只包括来自所述编程源的接续加密签名和接续软件组;
     用所述第一次级公共密钥证书验证所述接续加密签名;以及
     用所述接续加密签名验证所述接续软件组,并将所述接续软件组写入所述非易失性存储器。
CN201410232357.2A 2013-05-29 2014-05-29 用以改进安全闪存编程的方法 Active CN104219049B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/904,715 2013-05-29
US13/904,715 US9270468B2 (en) 2013-05-29 2013-05-29 Methods to improve secure flash programming
US13/904715 2013-05-29

Publications (2)

Publication Number Publication Date
CN104219049A true CN104219049A (zh) 2014-12-17
CN104219049B CN104219049B (zh) 2018-05-08

Family

ID=51899614

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410232357.2A Active CN104219049B (zh) 2013-05-29 2014-05-29 用以改进安全闪存编程的方法

Country Status (3)

Country Link
US (2) US9270468B2 (zh)
CN (1) CN104219049B (zh)
DE (1) DE102014208385A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107729757A (zh) * 2016-08-10 2018-02-23 福特全球技术公司 软件更新之前的软件认证
CN110501935A (zh) * 2018-05-17 2019-11-26 隆巴第尼有限责任公司 用于将软件对象写入内燃机的电子控制单元的方法及设备
CN107729757B (zh) * 2016-08-10 2024-05-17 福特全球技术公司 软件更新之前的软件认证

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102015220227A1 (de) 2015-10-16 2017-04-20 Volkswagen Aktiengesellschaft Verfahren und System für eine asymmetrische Schlüsselherleitung
JP6217728B2 (ja) * 2015-10-19 2017-10-25 トヨタ自動車株式会社 車両システムおよび認証方法
DE102016007498A1 (de) 2016-06-18 2017-12-21 Audi Ag Manipulationssichere Bereitstellung einer Funktionalität eines Assistenzsystems eines Kraftfahrzeugs
GB2553295B (en) * 2016-08-25 2020-12-16 Samsung Electronics Co Ltd Managing communications between a broadcast receiver and a security module
DE102016221108A1 (de) * 2016-10-26 2018-04-26 Volkswagen Aktiengesellschaft Verfahren zum Aktualisieren einer Software eines Steuergeräts eines Fahrzeugs
JP6683588B2 (ja) * 2016-11-10 2020-04-22 Kddi株式会社 再利用システム、サーバ装置、再利用方法、及びコンピュータプログラム
US11074348B2 (en) * 2017-08-24 2021-07-27 International Business Machines Corporation Securing and changing immutable data in secure bootup
DE102017222387A1 (de) * 2017-12-11 2019-06-13 Bayerische Motoren Werke Aktiengesellschaft Verfahren und System zum Autorisieren einer älteren Applikation eines Steuergeräts eines Fahrzeugs
US10430178B2 (en) 2018-02-19 2019-10-01 GM Global Technology Operations LLC Automated delivery and installation of over the air updates in vehicles
DE102018211139A1 (de) 2018-07-05 2020-01-09 Robert Bosch Gmbh Steuergerät sowie Verfahren zu dessen Betrieb
DE102020216380A1 (de) 2020-12-21 2022-06-23 Robert Bosch Gesellschaft mit beschränkter Haftung Verfahren zum Betreiben eines Steuergeräts, auf dem mehrere Applikationen ausgeführt werden
US11917086B2 (en) * 2021-12-16 2024-02-27 Gm Cruise Holdings Llc Short-lived symmetric keys for autonomous vehicles

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020004905A1 (en) * 1998-07-17 2002-01-10 Derek L Davis Method for bios authentication prior to bios execution
US6560706B1 (en) * 1998-01-26 2003-05-06 Intel Corporation Interface for ensuring system boot image integrity and authenticity
CN1645288A (zh) * 2003-12-16 2005-07-27 微软公司 确保软件更新仅在特定设备或设备类上安装或运行
EP1198922B1 (en) * 1999-05-07 2005-11-02 Telefonaktiebolaget LM Ericsson (publ) Secure distribution and protection of encryption key information
CN1902561A (zh) * 2004-01-08 2007-01-24 国际商业机器公司 用于根据智能密钥设备建立信任框架的方法和系统
US20090326759A1 (en) * 2006-04-11 2009-12-31 Daniel Hensel Enhancement of the functionality of series software in a control unit
CN102915412A (zh) * 2011-08-04 2013-02-06 波音公司 使用散列值的软件部件验证

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6560706B1 (en) * 1998-01-26 2003-05-06 Intel Corporation Interface for ensuring system boot image integrity and authenticity
US20020004905A1 (en) * 1998-07-17 2002-01-10 Derek L Davis Method for bios authentication prior to bios execution
EP1198922B1 (en) * 1999-05-07 2005-11-02 Telefonaktiebolaget LM Ericsson (publ) Secure distribution and protection of encryption key information
CN1645288A (zh) * 2003-12-16 2005-07-27 微软公司 确保软件更新仅在特定设备或设备类上安装或运行
CN1902561A (zh) * 2004-01-08 2007-01-24 国际商业机器公司 用于根据智能密钥设备建立信任框架的方法和系统
US20090326759A1 (en) * 2006-04-11 2009-12-31 Daniel Hensel Enhancement of the functionality of series software in a control unit
CN102915412A (zh) * 2011-08-04 2013-02-06 波音公司 使用散列值的软件部件验证

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107729757A (zh) * 2016-08-10 2018-02-23 福特全球技术公司 软件更新之前的软件认证
CN107729757B (zh) * 2016-08-10 2024-05-17 福特全球技术公司 软件更新之前的软件认证
CN110501935A (zh) * 2018-05-17 2019-11-26 隆巴第尼有限责任公司 用于将软件对象写入内燃机的电子控制单元的方法及设备
CN110501935B (zh) * 2018-05-17 2024-03-12 隆巴第尼有限责任公司 用于将软件对象写入内燃机的电子控制单元的方法及设备

Also Published As

Publication number Publication date
CN104219049B (zh) 2018-05-08
US20140359296A1 (en) 2014-12-04
US9270468B2 (en) 2016-02-23
DE102014208385A1 (de) 2014-12-04
US20160140056A1 (en) 2016-05-19

Similar Documents

Publication Publication Date Title
CN104219049A (zh) 用以改进安全闪存编程的方法
EP2852090B1 (en) Data authentication method and apparatus thereof
TWI398152B (zh) 用於鑑別與一驗證系統電氣通信之物品之身份的方法
US11063749B2 (en) Cryptographic key management based on identity information
US10984107B2 (en) Secure boot
JP2006524377A (ja) 制御ユニット用のフラッシュウェアの正確性及び完全性を保証する方法
US11296872B2 (en) Delegation of cryptographic key to a memory sub-system
CN111740854B (zh) 用于安全装置通信的设备、方法和系统
US11783044B2 (en) Endpoint authentication based on boot-time binding of multiple components
US11356256B2 (en) Secure vehicular part communication
KR102234825B1 (ko) 암호 동작들의 안전한 수행
WO2022192046A1 (en) In-memory signing of messages with a personal identifier
US20190007220A1 (en) Method, Security Device and Security System
CN113678400A (zh) 用于安全电子控制单元更新的本地分类账块链
US20130117578A1 (en) Method for verifying a memory block of a nonvolatile memory
CN109445705A (zh) 固件认证方法及固态硬盘
CN111740834A (zh) 安全传感器通信
JP2022527163A (ja) 暗号ハッシュを用いたメモリに格納されたデータの正当性確認
KR20200116010A (ko) 아이덴티티 정보에 기초한 암호 키 관리
CN116506134B (zh) 数字证书管理方法、装置、设备、系统及可读存储介质
CN113826071A (zh) 空中更新确认
CN113632413A (zh) 使用存储器作为区块链中的块
CN113647050A (zh) 基于块链的存储器命令验证
US11736453B2 (en) Secure key storage devices
CN109150813A (zh) 一种设备的验证方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant