CN117677948A - 用于验证数字签名的方法、车辆计算单元和车辆 - Google Patents

用于验证数字签名的方法、车辆计算单元和车辆 Download PDF

Info

Publication number
CN117677948A
CN117677948A CN202280051268.0A CN202280051268A CN117677948A CN 117677948 A CN117677948 A CN 117677948A CN 202280051268 A CN202280051268 A CN 202280051268A CN 117677948 A CN117677948 A CN 117677948A
Authority
CN
China
Prior art keywords
hash
flash memory
block
verification
data
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
CN202280051268.0A
Other languages
English (en)
Inventor
T·威尔默
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.)
Mercedes Benz Group AG
Original Assignee
Mercedes Benz Group AG
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 Mercedes Benz Group AG filed Critical Mercedes Benz Group AG
Publication of CN117677948A publication Critical patent/CN117677948A/zh
Pending legal-status Critical Current

Links

Classifications

    • 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/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2365Ensuring data consistency and integrity
    • 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/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • 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
    • 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
    • G06F21/572Secure firmware programming, e.g. of basic input output system [BIOS]
    • 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
    • G06F21/575Secure boot
    • 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/3236Cryptographic 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 using cryptographic hash functions
    • H04L9/3239Cryptographic 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 using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Storage Device Security (AREA)

Abstract

本发明涉及一种用于验证数字签名的方法,其中通过对存储在闪存(1)中的数据应用散列函数,来创建为生成签名而接受处理的散列。本发明的特征在于至少以下方法步骤:将数据写入所述闪存(1)的至少一个存储元件(1.1);针对所述闪存(1)的每个写入的块(2):由所述闪存(1)的存储控制器(1.2)从写入每个块(2)的所述数据中计算出散列,并且将所述计算出的散列与所述数据一起存储在所述块(2)中;通过对存储在块(2)中的至少一个散列应用散列函数,由所述存储控制器(1.2)计算出验证散列(#V);针对其签名需要接受验证的块(2),由所述闪存(1)的上层系统(3)读取存储在块(2)中的至少一个散列和所述验证散列(#V);通过对所述至少一个读取的散列应用散列函数,由所述闪存(1)的所述上层系统(3)计算出校验散列(#P);将所述计算出的校验散列(#P)与所述读取的验证散列(#V)进行比较;并且,如果所述校验散列(#P)与所述验证散列(#V)匹配,则确认所述签名。

Description

用于验证数字签名的方法、车辆计算单元和车辆
技术领域
本发明涉及一种根据在权利要求1的前序部分中有更详细限定的类型的验证数字签名的方法、一种具有闪存的车辆计算单元和一种具有这种车辆计算单元的车辆。
背景技术
随着数字化程度的提高,车辆的自动化程度也越来越高。为此,车辆具有越来越多以及越来越复杂的计算单元,用于分析传感器信号和计算控制变量。这些计算单元为了提供它们的功能而执行机器可读代码。这些代码以软件的形式存储在物理数据存储器中。为了导入新功能、消除错误和/或弥补安全漏洞,这种软件通过软件升级进行更新。
当车辆计算单元初始启动时,这可例如在车辆启动时发生,从物理数据存储器中读取数据。此外,在导入软件更新时,不仅可以读取数据,还可以将数据覆盖或删除。为防止计算单元或存储在物理数据存储器中的数据被泄露,通常在此为数据设置数字签名,借助该数字签名可识别数据是否被第三方篡改或软件更新是否来自可信的发送方。由此能够确保的是,在计算单元的处理器上只执行来自可信来源的代码。
数字签名所依据的一项技术是计算所谓的散列/哈希值。为计算散列值,例如文本文件、图像、电子邮件、程序代码或程序代码块等任意数据都被用作数学函数的输入变量,该函数从对应的数据中计算出一个任意长度的数字序列。该数字序列可包括数字和/或字母。为此而使用的数学函数也称为散列函数,在理想情况下具有确定性。也就是说,通过使用相同的输入数据,借助特定的散列函数始终计算出相同的结果,即相同的散列值。散列函数在此应具有这样的效力,即不同的数据不可能得出相同的散列值。
借助校验和检查存储在物理数据存储器的存储元件中的数据是否被“正确”写入。这被称为循环冗余校验(CRC)。即,在写入和/或从数据存储器中读取数据时可能发生错误,数据因而被错误读取或写入。CRC适合用来识别随机错误。如果附加地检查数据的完整性,则需使用加密散列函数来代替校验和。为此,从写入或读取的数据中形成散列,并与比较散列进行比较。期间在系统间交换的散列可以按照成熟的签名校验方法加密传输。如果两个散列相匹配,就意味着数据被正确写入或读取。然而,数据的这种校验相对耗时,因为每次检查都必须为对应的数据形成散列值。
用于存储数据的硬盘或闪存等各种存储介质是已知的。嵌入式系统等分布式设备(例如车辆控制设备)通常使用闪存来存储相关数据。这种闪存在此也可以永久集成到计算单元中,例如对于片上系统(SOC)而言。这种闪存至少包括用于存储数据的存储元件和用于寻址相应的存储元件的存储控制器。存储元件又具有块和页的结构。在此,存储元件包括大量的块,这些块又各自包括大量的页。数据逐页存储在闪存中,并逐块擦除。
从DE 10 2020 117 552 A1中已知用于混合系统的安全混合启动系统和安全启动方法。这种混合系统包括几个不同的子系统,其中每个子系统都具有自己的用于存储软件的存储装置和自己的用于执行软件的CPU,即处理器。为了提高网络安全性,在对应的子系统或对应的混合装置的启动期间,对不同的存储装置上所包含的软件进行基于签名的真实性验证检查。这种启动方法规定,第一子系统具有第一签名,该第一签名与存储在存储装置中的第一子系统上的软件的第一散列相对应。第一软件的第一散列从第一子系统传输到第二子系统,该第二子系统具有第二签名,该第二签名与第一软件的第一散列相对应。然后通过比较对应的散列进行真实性验证检查。
发明内容
本发明的目的是提供一种验证数字签名的方法,借助该方法加快向闪存的存储元件或从闪存的存储元件中存储、读取和/或删除数据的过程。
根据本发明,该目的通过具有权利要求1的特征的验证数字签名的方法来实现。有利的设计方案和改进方案以及具有闪存的车辆计算单元和具有这种车辆计算单元的车辆从它们的独立权利要求中得出。
在一种验证说明书开头提到的类型的数字签名的方法中,通过对存储在闪存中的数据应用散列函数,来创建为生成签名而接受处理的散列。根据本发明,在此至少执行以下方法步骤:
-将数据写入闪存的至少一个存储元件;
-针对闪存的每个写入的块:由闪存的存储控制器从写入相应的块的数据中计算出散列,并且将计算出的散列与数据一起存储在该块中;
-通过对存储在块中的至少一个散列应用散列函数,由存储控制器计算出验证散列;
-针对其签名需要接受验证的块,由闪存的上层系统读取存储在块中的至少一个散列和验证散列;
-通过对该读取的至少一个散列应用散列函数,由闪存的上层系统计算出校验散列;
-将计算出的校验散列与读取的验证散列进行比较;并且
-如果校验散列与验证散列相匹配,则确认签名。
借助本发明的方法加快存储在闪存中的数据的数字签名的验证过程。由此能够更快地从闪存中读取或覆盖对应的数据。这样一来,对应的计算机系统或计算单元可以更快地启动、更快地加载要执行的软件或更快地更新存储在闪存上的软件。核心思想在于,不再需要为存储在闪存中的数据生成散列来生成校验散列;而是仅通过对存储的散列应用散列函数来计算出校验散列。相比读取用于形成软件的数据,由于数据量更小,因此能够更快地从闪存中读取散列。
任意加密的散列函数,如HAVAL、Whirlpool或安全散列算法(Secure HashAlgorithm,SHA),特别是SHA2或SHA3,都可用作散列函数。
存储在块中的单个的散列以及验证散列在此由闪存本身计算出,更准确地说,由闪存的存储控制器计算出。验证散列可以存储在闪存的存储元件的任意块中。由于存储控制器寻址对应的存储元件,因此一旦对此存在对应的请求,存储控制器也知道需要在哪里读取验证散列。闪存集成在上层系统中。上层系统是计算单元。计算单元包括处理器,用于执行以数据形式存储在闪存上的软件。还可行的是,闪存的上层系统与另一个计算单元通信连接。即,可以从闪存中读取数据,并且由上层系统转发到另一个计算单元。对应地,也可以将数据从另一个计算单元传输到上层系统,从而转移到闪存中进行存储。即,可以例如导入能够在上层系统上执行的软件的软件更新。
如果闪存的上层系统例如是要启动的车辆控制设备,就会读取以数据形式存储在闪存上的对应的软件并且由处理器执行。然而,为了读取对应的软件,必须进行成功的签名校验,以防止执行可能被篡改过的数据,从而防止执行被引入车辆控制设备的存在漏洞的软件。因此,借助本发明的方法,在进行签名校验时,不再需要为了计算校验散列而从块中读取相应的数据并且从中计算出校验散列,而只需读取已经由闪存计算出且存储在闪存中的散列并且通过对从块中读取的散列应用散列函数来计算出校验散列。这样做要快得多。如此一来,闪存的上层系统可以更快地启动、更快地启动和执行对应的软件,或更快地安装软件更新。
如果安装了软件更新,则闪存的存储元件的单个块中的数据或部分数据会被新数据替换或补充。因为数据发生变化,包含对应的变化的数据的块的对应的散列也发生变化。如果将新数据或变化的数据写入块,则闪存(即存储控制器)也针对该块计算新的散列。对应地,还需要计算新的验证散列,因为验证散列所依据的散列已发生变化。
在此可以有必要的是,更改闪存的固件和/或闪存的上层系统的固件,以便存储控制器能够在闪存的存储元件中存储计算出的散列,或者说,能够为每个块读取各自存储在块中的散列。
本发明的方法的一种有利的改进方案规定,检查至少一个块的签名,以便读取和/或覆盖存储在该块中的数据。如前所述,由此能够防止在车辆控制设备中实施或执行存在漏洞的软件。
根据该方法的另一种有利的设计方案,为闪存(即对应的存储元件)的块的至少一个写入的页生成特有/单独的页散列,并且存储在相应的页上。数据在闪存的存储元件中总是逐块存储并且在每块中以页的形式存储。要为块设置至少一个散列,对应的散列可以存储在相应的块的任意页上。然而,也可以为块的一个、几个或每个写入的页生成特有/单独的散列。对应地,可以对块的一个页散列、几个页散列或所有页散列应用散列函数,以生成验证散列。还可以针对对应的块从一个或几个页散列中计算出散列,然后将从至少一个页散列中计算出的该块散列用来计算验证散列。
一般来说可行的是,将页散列和/或块散列任意组合用于计算验证散列。然而,计算校验散列的系统必须具有使用哪些散列来进行计算的信息,以便能够实现验证散列与校验散列之间的匹配。
根据本发明方法的另一种有利的设计方案,当需要验证至少两个块的签名时,会分别验证相应的块的签名。如果软件如此大,即对应的代码必须存储在几个块中,则还必须对每个块或其中存储的数据进行完整性检查。这可以针对每个块个别地进行。即,由存储控制器针对每个块从代表相应的块的散列(适当时包括页散列)中计算出验证散列,并且存储在对应的块中。类似地,闪存的上层系统针对每个块从代表相应的块的散列中计算出校验散列,并且将校验散列与相应的验证散列进行比较。这样就允许进行特别安全的签名校验。如果数据被篡改,则可以由此直接识别出数据被破坏的块。
本发明方法的另一种有利的实施方案规定,当需要验证至少两个块的签名时,还可行的是,验证一个共同的块签名。为此,从块的相应的散列中计算出一个共同的验证散列。由此可以进一步缩短从对应的块中读取数据所需的时间,因为对应的块的签名能够更快地进行验证。在此可行的是,闪存在从几个块中读取数据之前,已经为这些对应的块生成一个共同的签名,即对应的共同的验证散列。例如可以在闪存中初始存储(即安装)软件时生成该共同的签名。这样,存储控制器就知道哪些数据属于对应的软件,以及在加载软件时必须相应地读取哪些块。然后,存储控制器就能针对这些块提前从单个块散列中计算出共同的验证散列。
不过,在安装更新时,可以有必要的是,仅替换软件的单个代码块。这些代码块可以存储在任意块和页中。这样一来,存储控制器就无法提前知道它必须访问哪些块和页。因此,该方法的一种可能的设计方案还可规定,只有在存在从不同的块中读取或写入数据的请求时,存储控制器才生成对应的验证散列。
读取和/或覆盖存储在不同的块和页中的数据特别是与安装差分/差异软件更新相关。因此优选地,在为能够在闪存的上层系统上执行的软件进行差分软件更新期间,进行签名验证。差分/差异软件更新是一种只替换已更改的代码块的软件更新。由此可以减少对应的软件更新的大小。这样一来,需要写入的数据更少,这就缩短了安装软件更新所需的时间。
在具有闪存的车辆计算单元中,根据本发明,闪存被适配为用于执行上述方法。车辆计算单元可以是任意计算单元。例如,计算单元可以是中央车载计算机、信息系统单元或车辆子系统的任意控制设备。闪存可被实施成NAND闪存或NOR闪存。闪存可具有一个或几个存储元件。一个对应的存储元件由几个块组成,在这些块中,数据逐页存储在存储单元中。存储元件可具有任意大小。例如,一个存储元件可具有100KB、64MB、1GB、128GB、1TB或类似的大小。闪存还包括用于寻址对应的存储元件的存储控制器。车辆计算单元可以与其他车辆计算单元通信连接。例如,可以从通信模块中空中(over-the-air)接收软件更新,并转发用于导入软件更新,如发动机控制软件。
根据本发明,车辆包括如前所述的车辆计算单元。车辆可以是任何车辆,如轿车、卡车、面包车、公共汽车等。借助本发明的方法和本发明的车辆计算单元,能够加速车辆的启动过程或软件加载过程。此外,软件更新也能够更快地在对应的车辆计算单元或车辆计算单元的闪存中实现。由于在访问闪存时仍要进行签名检查,因此对应的车辆计算单元的网络安全性得以保持。
附图说明
根据本发明的用于验证数字签名的方法、车辆计算单元和车辆的其他有利设计方案还从实施例中得出,这些实施例将在下文中参照附图更详细地描述。
其中:
图1显示了车辆计算单元的示意性俯视图;
图2显示了闪存的存储元件的存储结构的原理图;
图3显示了在对闪存进行读取和/或写入访问时的签名校验流程示意图。
具体实施方式
图1显示了车辆计算单元5,例如发动机控制设备或中央车载计算机。车辆计算单元5包括至少一个闪存1,因此表示闪存1的上层系统3。此外,车辆计算单元5包括处理器6,用于执行存储在闪存1上的程序代码。
闪存1还包括至少一个存储元件1.1以及存储控制器1.2。数据存储在存储元件1.1上。存储控制器1.2在此寻址相应的存储器元件1.1,从而使得在对闪存1进行写入或读取访问时也寻址正确的数据。
图2展示了存储器元件1.1的结构。即存储元件1.1包括大量的块2,在这些块中,要存储的数据逐页存储,即以至少一个页4的形式存储。在此,闪存只能逐页写入,逐块擦除。
为了提高网络安全性,在对存储在闪存1中的数据进行写入或读取访问前,进行签名验证。验证签名需要比较散列值。根据现有技术,为此从存储在闪存1中的数据中计算出至少一个散列值并且存储起来。如果现在要访问数据,则访问数据的处理器同样从读取的数据中计算出一个散列值。将这个散列值与之前计算出的散列值进行比较。如果两个散列值相匹配,则确认签名验证。然而,为此需要相对较长的时间,因为每次对数据进行读取或写入访问时都必须从数据中重新计算散列值。
根据一种本发明的方法,在将数据写入闪存1时,闪存1(即存储控制器1.2)至少为每个块2计算一个散列,并且将其与要写入的数据一起存储在相应的块2中。本发明的方法的基本思想规定,为了计算出用于签名校验的散列,现在将由闪存1计算出的散列,而非将存储在闪存1中的数据,读入对应的散列函数中。优点在于,读入由闪存1计算出的散列比读入数据本身要快得多。如此一来就能更快地进行签名校验。
为了进行签名校验,将校验散列#P(见图3)与验证散列#V进行比较。验证散列#V从至少一个块散列#B中计算出。即,将至少一个块散列#B读入散列函数中,并且从中推导出验证散列#V。将相应的块散列#B和该验证散列#V存储在块2的页4上。一般来说,为此可使用任意页4。即,如图2中用虚线三角形表示的那样,验证散列#V也可以存储在与对应的块2的块散列#B不同的页4上。
也可行的是,在将数据写入闪存1时,为块2的至少一个页4生成单个的页散列#S。即,在页4上各自存储用户数据7的某一部分,即用于实现程序的代码。闪存1(即存储控制器1.2)将用户数据7作为输入变量读入散列函数,并且从中计算出相应的块散列#B和/或页散列#S。
用户数据7,适当时与这些页散列#S一起,存储在一个相应的页4上。写入过程完成后,则针对对应的块2,借助另一个散列函数从相应的块散列#B中确定验证散列#V。然后,验证散列#V同样被存储在任意块2的任意页4上。用于计算散列的各个散列函数可以相同,也可以不同。其中,它们的效力也可以不同。
为了计算验证散列#V,也可以将其块散列#B以不同方式计算得出的块2组合起来。即,对于第一数量的块2,可以从用户数据7中计算出相应的块散列#B,而对于第二数量的块2,可以从页散列#S中计算出相应的块散列#B。
图3显示了签名校验的流程示意图。即,闪存1或更准确地说存储控制器1.2首先从要写入闪存1的数据中逐块地计算出块散列#B。在此,可以要么直接从用户数据7中计算出块散列#B,要么从页散列#S中计算出块散列#B。然后,从至少一个块散列#B中计算出验证散列#V,并且将其同样地存储在块2中。由于理论上仅一个块散列#B就足以计算出验证散列#V,因此图3中仅一个块散列#B通过实线与验证散列#V连接。虚线表示,在计算验证散列#V时,可选地使用几个块散列#B和/或页散列#S,或者只有在需要写入/读取如此大量的用户数据7,即需将这些用户数据写入几个块2或从几个块中读取时,才考虑使用几个块散列#B和/或页散列#S。
如果现在要访问用户数据7,无论是读取、写入和/或删除,访问数据的计算单元(例如车辆计算单元5)的处理器6计算出与验证散列#V适宜地相对应的校验散列#P。如果校验散列#P与验证散列#V相对应,则签名校验成功。反之,如果校验散列#P和验证散列#V不匹配,则表明用户数据7被篡改,签名校验被拒绝。
为了计算校验散列#P,处理器6使用与闪存1相同的散列函数。为了计算校验散列#P,根据本发明的方法,现在由访问闪存1的计算单元从闪存1中读取页散列#S和/或块散列#B,而非用户数据7。如果在闪存1上初始存储数据与通过对应的计算单元读取数据之间,相应的数据被篡改,那么现在从闪存1中读取的散列就不再与原始散列匹配,因为存储控制器1.2在写入数据时计算出新的块散列#B。但是,由于验证散列#V在篡改过程中不会被更改,这就导致,如果数据被篡改过,则校验散列#P与验证散列#V不匹配。
另一方面,如果存储在闪存1中的数据被可信来源更改,则在成功进行签名校验后,验证散列#V也会被重新计算。
通过在签名校验中使用成熟的加密技术,例如利用私钥和公钥进行加密和解密,能够防止泄露计算单元与闪存1之间交换的散列值。

Claims (9)

1.一种用于验证数字签名的方法,其中通过对存储在闪存(1)中的数据应用散列函数,来创建为生成签名而接受处理的散列,
其特征在于,
至少执行以下方法步骤:
-将数据写入所述闪存(1)的至少一个存储元件(1.1);
-针对所述闪存(1)的每个写入的块(2):由所述闪存(1)的存储控制器(1.2)从写入每个块(2)的所述数据中计算出散列,并且将计算出的散列与所述数据一起存储在所述块(2)中;
-通过对存储在块(2)中的至少一个散列应用散列函数,由所述存储控制器(1.2)计算出验证散列(#V);
-针对其签名需要接受验证的块(2),由所述闪存(1)的上层系统(3)读取存储在块(2)中的至少一个散列和所述验证散列(#V);
-通过对至少一个读取的散列应用散列函数,由所述闪存(1)的所述上层系统(3)计算出校验散列(#P);
-将所述计算出的校验散列(#P)与所述读取的验证散列(#V)进行比较;并且
-如果所述校验散列(#P)与所述验证散列(#V)相匹配,则确认所述签名。
2.根据权利要求1所述的方法,
其特征在于,
验证至少一个块(2)的签名,以便读取和/或覆盖存储在所述块(2)中的数据。
3.根据权利要求1或2所述的方法,
其特征在于,
针对所述闪存(1)的块(2)的至少一个写入的页(4)创建特有的页散列(#S)并且存储在相应的页(#S)上。
4.根据权利要求3所述的方法,
其特征在于,
对至少一个页散列(#S)应用散列函数,以生成块(2)的散列。
5.根据权利要求1至4中的一项所述的方法,
其特征在于,
当需要验证至少两个块(2)的签名时,分别验证相应的块(2)的签名。
6.根据权利要求1至4中的一项所述的方法,
其特征在于,
针对需要借助一个共同的签名验证至少两个块(2)的签名的情况,根据所述需要验证的块(2)的两个单个的散列计算出验证散列(#V)。
7.根据权利要求1至6中的一项所述的方法,
其特征在于,
在为能够在所述闪存(1)的所述上层系统(3)上执行的软件进行差分软件更新期间,进行签名验证。
8.一种车辆计算单元(5),具有闪存(1),
其特征在于,
所述闪存(1)被适配用于执行根据权利要求1至7中的一项所述的方法。
9.一种车辆,
其特征在于,
其具有根据权利要求8所述的车辆计算单元(5)。
CN202280051268.0A 2021-07-27 2022-07-20 用于验证数字签名的方法、车辆计算单元和车辆 Pending CN117677948A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
DE102021003840.1 2021-07-27
DE102021003840.1A DE102021003840A1 (de) 2021-07-27 2021-07-27 Verfahren zur Überprüfung digitaler Signaturen, Fahrzeug-Recheneinheit und Fahrzeug
PCT/EP2022/070300 WO2023006531A1 (de) 2021-07-27 2022-07-20 Verfahren zur überprüfung digitaler signaturen, fahrzeug-recheneinheit und fahrzeug

Publications (1)

Publication Number Publication Date
CN117677948A true CN117677948A (zh) 2024-03-08

Family

ID=82932397

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202280051268.0A Pending CN117677948A (zh) 2021-07-27 2022-07-20 用于验证数字签名的方法、车辆计算单元和车辆

Country Status (5)

Country Link
EP (1) EP4275138A1 (zh)
KR (1) KR20240024971A (zh)
CN (1) CN117677948A (zh)
DE (1) DE102021003840A1 (zh)
WO (1) WO2023006531A1 (zh)

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8291226B2 (en) * 2006-02-10 2012-10-16 Qualcomm Incorporated Method and apparatus for securely booting from an external storage device
US8572409B2 (en) 2008-09-26 2013-10-29 Stephen P. Spackman Method and apparatus for non-redundant encrypted storage
US20130111212A1 (en) * 2011-10-28 2013-05-02 GM Global Technology Operations LLC Methods to provide digital signature to secure flash programming function
US9424200B2 (en) 2013-03-15 2016-08-23 Freescale Semiconductor, Inc. Continuous run-time integrity checking for virtual memory
JP6197000B2 (ja) * 2015-07-03 2017-09-13 Kddi株式会社 システム、車両及びソフトウェア配布処理方法
DE102016221108A1 (de) * 2016-10-26 2018-04-26 Volkswagen Aktiengesellschaft Verfahren zum Aktualisieren einer Software eines Steuergeräts eines Fahrzeugs
US11329983B2 (en) * 2019-03-25 2022-05-10 Micron Technology, Inc. Validating an electronic control unit of a vehicle
US11100229B2 (en) 2019-07-18 2021-08-24 Infineon Technologies Ag Secure hybrid boot systems and secure boot procedures for hybrid systems

Also Published As

Publication number Publication date
WO2023006531A1 (de) 2023-02-02
EP4275138A1 (de) 2023-11-15
DE102021003840A1 (de) 2023-02-02
KR20240024971A (ko) 2024-02-26

Similar Documents

Publication Publication Date Title
US9021246B2 (en) Method to replace bootloader public key
US8930710B2 (en) Using a manifest to record presence of valid software and calibration
CN105938433B (zh) 用于对机动车的控制设备进行编程的方法
US20070028115A1 (en) Method for guaranteeing the integrity and authenticity of flashware for control devices
CN101308538B (zh) 检查固件完整性的方法和设备
US11803366B2 (en) Firmware updating system and method
US10423401B2 (en) Method for updating software of a control device of a vehicle
US20140058532A1 (en) Method for partial flashing of ecus
US20130081144A1 (en) Storage device and writing device
JP7113115B2 (ja) シリコンデバイスファームウェア上のロールバック攻撃を防止するセキュリティシステム、および、方法
CN108229144B (zh) 一种应用程序的验证方法、终端设备及存储介质
CN111190611A (zh) 软件安装方法
CN107949847A (zh) 车辆的电子控制单元
CN116451238A (zh) 一种ecu固件升级方法、装置、设备及可读存储介质
CN115576483A (zh) 可信计算基础的组件之间的安全身份链接
EP3499398A2 (en) Secure storage of monotonic odo value inside a secure hardware elements update counter
CN117677948A (zh) 用于验证数字签名的方法、车辆计算单元和车辆
US20230104332A1 (en) Hsm-memory-efficient means of providing hsm-based pki operations for vehicle controllers
CN107257281B (zh) Nor flash存储密钥记录的方法、装置及计算机可读存储介质
US11468159B2 (en) Memory system
US11113399B2 (en) Electronic apparatus and control method of electronic apparatus
JP2021057043A (ja) トラストアンカコンピューティング装置を備える処理システムおよび対応する方法
CN113935011A (zh) 用于执行控制设备的安全启动序列的方法
CN114756827A (zh) 一种许可证文件的管理方法、装置和设备
EP4220461A1 (en) Accelerated secure boot for embedded controllers

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