CN116467755A - 用于在计算单元中安全提供所要保护的计算机程序的方法 - Google Patents
用于在计算单元中安全提供所要保护的计算机程序的方法 Download PDFInfo
- Publication number
- CN116467755A CN116467755A CN202310096883.XA CN202310096883A CN116467755A CN 116467755 A CN116467755 A CN 116467755A CN 202310096883 A CN202310096883 A CN 202310096883A CN 116467755 A CN116467755 A CN 116467755A
- Authority
- CN
- China
- Prior art keywords
- computer program
- protected
- computing unit
- stored
- integrity
- 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
Links
- 238000004590 computer program Methods 0.000 title claims abstract description 144
- 238000000034 method Methods 0.000 title claims abstract description 39
- 230000006870 function Effects 0.000 claims abstract description 36
- 230000008859 change Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000013475 authorization Methods 0.000 description 1
- 238000005452 bending Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 239000000969 carrier Substances 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/121—Restricting unauthorised execution of programs
- G06F21/123—Restricting unauthorised execution of programs by using dedicated hardware, e.g. dongles, smart cards, cryptographic processors, global positioning systems [GPS] devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
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)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Storage Device Security (AREA)
Abstract
本发明涉及用于在计算单元、尤其是微控制器中安全提供所要保护的计算机程序的方法,该计算单元具有处理器、存储器和硬件安全模块,所要保护的计算机程序借助于所要保护的算法来实现功能,该方法包括:在处理器中执行存储在第一存储区中的标准计算机程序,其借助于标准算法来实现该功能;执行对计算单元和/或标准计算机程序的第一完整性检查;如果在第一完整性检查中确认完整性,则在使用存储在硬件安全模块的密钥存储器中的密钥的情况下对所要保护的计算机程序以加密形式存储在其中的第二存储区进行解密,并且将经解密的所要保护的计算机程序存储在第三存储区,并且结束标准计算机程序并在处理器中启动存储在第三存储区的所要保护的计算机程序。
Description
技术领域
本发明涉及一种用于在计算单元中安全提供所要保护的计算机程序的方法以及一种用于执行该方法的计算单元和一种用于执行该方法的计算机程序。
背景技术
机器和车辆的控制设备通过执行计算机程序来提供功能、尤其是控制功能,这些计算机程序实现相对应的算法。为了实现某种功能、例如对发动机的操控,通常可以使用不同计算机程序或算法,这些计算机程序或算法以不同方式来实现该功能。为同一功能使用不同计算机程序可能取决于特定条件的存在,该特定条件例如通过机器或车辆的现有组件得出或者也通过安全要求得出。
发明内容
按照本发明,提出了具有专利独立权利要求的特征的一种用于在计算单元中安全提供所要保护的计算机程序的方法以及一种用于执行该方法的计算单元和一种用于执行该方法的计算机程序。有利的设计方案是从属权利要求以及随后的描述的主题。
本发明利用了如下措施:首先执行存储在第一存储区中的标准计算机程序,以便提供或实现该计算单元的功能。只有在所执行的第一完整性检查成功之后,即只有在该计算单元和/或在其中执行的计算机程序的完整性被确认之后,同样实现该功能并且以加密形式存储在第二存储区中的所要保护的计算机程序才在第三存储区中被解密并且被执行,其中使该标准计算机程序结束。以这种方式,实现了:只有当在完整性检查的范围内确保没有攻击者访问该计算单元以读取所要保护的计算机程序或其确切功能、即所要保护的计算机程序受到保护免受未经允许的访问时,所要保护的计算机程序的数据或程序代码才以解密形式存在或被执行。尽管如此,该功能仍然可以至少基本上通过该标准计算机程序来被提供。
具体来说,本发明涉及在计算单元、尤其是微控制器中安全提供所要保护的计算机程序,该计算单元具有处理器、存储器和硬件安全模块,其中所要保护的计算机程序借助于所要保护的算法来实现功能。本发明包括:(首先)在处理器中执行存储在第一存储区中的标准计算机程序,该标准计算机程序借助于标准算法来实现该功能。该方法还包括:执行对该计算单元和/或该标准计算机程序的第一完整性检查;而且如果在第一完整性检查中确认完整性,则(通过硬件安全模块)在使用存储在硬件安全模块的密钥存储器中的密钥的情况下对所要保护的计算机程序以加密形式存储在其中的第二存储区进行解密,将经解密的所要保护的计算机程序存储在第三存储区中,并且结束该标准计算机程序并在处理器中启动或执行存储在第三存储区中的所要保护的计算机程序。
“功能”通常是应该通过该计算单元借助于对实现适合算法的计算机程序的执行所提供的功能。该功能尤其可以是机器或车辆的控制功能,该控制功能例如对传感器数据等等进行评估并且据此来生成用于机器或车辆的组件的控制指令。该功能通常可以通过不同计算机程序或算法来实现。在此,标准计算机程序或标准算法是指该功能的基本实现或基础实现。所要保护的计算机程序或所要保护的算法是指应该受保护以防第三方的访问、即尤其不应让第三方知道的扩展实现。如果该扩展实现基于或包含应该受保护的数据,则可能就是这种情况。例如,所要保护的算法与标准算法的区别可能会在于比如控制功能的精度、速度、性能等等得到改善。在这种情况下,应该防止对所要保护的算法的未经允许的复制,以便防止对所要保护的算法的未经允许的应用(比如对车辆的未经允许的调整)。在自主或部分自主车辆的情况下,还可能会规定:只有当确保该计算单元的机密性或完整性时才允许使用该功能的特定的扩展特性,以便防止未经允许地访问自动驾驶功能、例如通过未经允许的读取来未经允许地访问自动驾驶功能,或者防止这些自动驾驶功能被操纵。
硬件安全模块(HSM)用作该计算单元的信任锚,并且尤其是管理存储在只有HSM才能访问的存储区中的机密密钥、参考校验和参考签名、参考消息验证码等等。此外,HSM或者HSM程序被设立为:提供密码功能,尤其是用于计算校验和和消息验证码(MAC:MessageAuthentication Code)的算法,但是还有用于对数据进行加密和解密的算法。该HSM表示该计算单元的安全环境,只有在相对应的验证的情况下才能够更改该HSM中的数据和/或程序。该HSM可包括一个或多个处理器核。密码功能尤其可以以专用硬件电路的形式来实现。
在完整性检查中查明该计算单元和/或在其中执行的计算机程序的完整性是否存在,即尤其是查明对该计算单元的访问是否超出了常用功能和/或所执行的计算机程序(例如标准计算机程序)是否处于正确(未被操纵的)状态下。即,尤其是识别对该计算单元的其中旨在获得关于该计算单元的功能以及尤其是所要保护的计算机程序的功能的知识的潜在攻击。换言之,在完整性检查中,确定该计算单元和/或该计算单元的计算机程序是否处于正常(已知)状态的范围内。如果情况如此,则该完整性被确认或者该完整性检查成功。否则,该完整性未被确认或者该完整性检查不成功(失败)。
优选地,在所要保护的计算机程序被执行期间,执行对该计算单元和/或所要保护的计算机程序的第二完整性检查一次或多次;而且如果在第二完整性检查中未确认完整性,则结束所要保护的计算机程序并且在处理器中启动存储在第一存储区中的标准计算机程序,并且覆盖(或删除)第三存储区。经此,可以防止潜在攻击方通过分析在该执行期间的程序功能或者通过从第三存储区中读取经解密的所要保护的计算机程序来获得所要保护的计算机程序的知识。
优选地,第二完整性检查以定期的时间间隔或者在随机时间点被重复执行。以这种方式,可以识别在所要保护的计算机程序的运行时期间的稍后时间点开始的潜在攻击。
优选地,第一和/或第二完整性检查包括访问检查,该访问检查包括检查是否有调试器与该计算单元连接。通过该访问检查,旨在识别:在标准计算机程序或所要保护的计算机程序被执行期间,是否有第三方访问该计算单元(例如为了数据交换)。术语“访问”这里是指在涉及该功能本身的数据交换之外发生的数据交换(或数据发送和/或接收)。
“调试器”是指可用来了解计算机程序的运行的装置和/或计算机程序。尤其是,借此可以了解:哪些程序指令被执行,存储单元或处理器寄存器具有怎样的内容和/或存储单元或处理器寄存器的内容如何发生变化。借助于调试器,例如可以查找计算机程序中的错误。处理器、尤其是微控制器的处理器可具有用来支持调试器的组件和功能、比如所谓的调试模式。尤其是通过该HSM,依据这些组件或功能的状态可以识别:是否有调试器与该计算单元连接。该计算单元的接口可以被用于调试器的访问。例如,专门为调试器提供的接口,比如JTAG接口(JTAG:联合测试工作组(Joint Test Action Group))或者类似接口(尤其是在微控制器中),或者还有OBD接口(OBD:车载诊断(On-Board-Diagnose)),比如在汽车中。但是,也可以使用其它接口,例如CAN接口(CAN:控制器局域网络(Controller AreaNetwork))。在微控制器领域,尤其可以使用所谓的在线调试器(In-Circuit-Debugger),即一方面比如经由上述接口之一与该计算单元连接并且另一方面与执行调试计算机程序的计算机连接的电子设备。
第一完整性检查优选地包括第一运行时检查,该第一运行时检查包括检查第一存储区是否未发生变化。替代地或附加地,第二完整性检查优选地包括第二运行时检查,该第二运行时检查包括检查第三存储区是否未发生变化。即,第一/第二运行时检查优选地包括:检查待检查的存储区的内容相对于已知的正确内容而言是否未发生变化。这优选地通过对签名的比较来实现,其中将由该HSM管理和存储的与存储区的从中知道该存储区正确(未被操纵)的状态相对应的签名(即参考签名)与新计算出的签名值进行比较,该签名值基于该存储区的当前内容来被计算。如果新计算出的签名值与所存储的签名(参考签名)相同,则该存储区的内容(就签名比较而言)未发生变化,完整性被确认(至少在该签名检查方面,其中该运行时检查当然还可包括其它检查并且也必须在访问检查方面确认完整性)。另一方面,如果新计算出的签名值与所存储的签名(参考签名)不相同,则该存储区的内容(就签名比较而言)发生变化,并且该完整性未被确认。
优选地,如果在第一和/或第二完整性检查中未确认完整性,则在硬件安全模块的日志存储区中存储条目,该条目表明该完整性未曾被确认,并且优选地,该条目包含关于其中该完整性未曾被确认的完整性检查的信息。这使得能够在以后分析失败的完整性检查、例如这些失败的完整性检查的时间点。
优选地,如果在第二完整性检查中未确认完整性,则存储在该HSM中的表明在第二完整性检查中该完整性未被确认的次数的计数器被增加一。如果该计数器达到预定的最大数目,则在硬件安全模块中或者来自该硬件安全模块的该密钥被覆盖(或删除)和/或第二存储区被覆盖(或删除)。原则上,该最大数目可以等于一。然而,优选的是:该最大数目大于一。这种设计是有利的,原因在于:借此,如果识别出完整性检查失败超出正常水平,比如由于维护访问而超出正常水平,这可能会表明攻击者反复尝试访问所要保护的计算机程序或所要保护的算法,则使存储在第二存储区中的所要保护的计算机程序持久(或者直至该所要保护的计算机程序被重新加载为止)无法使用。
优选地,该方法包括:将所要保护的计算机程序以加密形式传输到该计算单元并且将所要保护的计算机程序以加密形式存储在第二存储区中。这些步骤在上文提到的步骤之前进行。由于在第二存储区中的所要保护的计算机程序是以加密形式被传输到该计算单元并且在那里以加密形式来被存储,可以确保:攻击方在任何时候都无法访问(未经加密的)所要保护的计算机程序。
进一步优选地,所要保护的计算机程序以未经加密的形式存在于与该计算单元不同的另一计算单元中(或者被存储在那里),其中存储在该HSM中的密钥以受密码保护的方式被传输到该另一计算单元,其中所要保护的计算机程序由该另一计算单元在使用该密钥的情况下加密,而且其中经加密的所要保护的计算机程序由该另一计算单元传输到该计算单元并且被存储在第二存储区中。该另一计算单元(例如服务器或所谓的云服务)被视为安全环境。这里,该另一计算单元和该计算单元(在该计算单元中应该提供所要保护的计算机程序)应该相互认证,使得任何一方都无法未经授权地使用另一方的信息。这里,例如可以使用安全的“Key Exchange”或密钥交换协议(比如基于RSA),以便将该密钥通知该另一计算单元。该另一计算单元借助于所接收到的密钥来对所要保护的计算机程序进行加密并且将该所要保护的计算机程序以加密形式发送给该计算单元。该密钥尤其可以通过该HSM来生成。
还进一步优选地,以加密形式的所要保护的计算机程序和该密钥存在于与该计算单元不同的另一计算单元中(或者被存储在那里),其中经加密的所要保护的计算机程序和该密钥以受密码保护的方式被传输到该计算单元,而且其中经加密的所要保护的计算机程序被存储在第二存储区中并且该密钥被存储在该HSM中或由该HSM来存储。在该变体中,例如该计算单元已经具有密钥对,而且用于验证该计算单元的密钥对的证书链也可以是已知的。在这种情况下,该计算单元将它的公钥发送给该另一计算单元,该另一计算单元利用该公钥来对该密钥进行加密并且将该密钥与经加密的所要保护的计算机程序一起发送给该计算单元。该计算单元将经加密的所要保护的计算机程序复制到第二存储区中。附加地,该计算单元借助于它的私钥来对该密钥进行解密并且将该密钥复制到该密钥存储器中。对于经加密的所要保护的计算机程序与该密钥的组合,例如可以使用“加密消息语法(Cryptographic Message Syntax)”的格式“RFC 5652”。
按照本发明的计算单元、尤其是包括HSM的计算单元、例如车辆的控制设备,被设立为、尤其是以程序技术方式被设立为:执行按照本发明的方法。
尤其是当执行的控制设备还被用于其它任务并且因而总归存在时,按照本发明的方法的以具有用于执行所有方法步骤的程序代码的计算机程序或计算机程序产品的形式的实现方案也是有利的,因为这引起了特别低的成本。最后,提供了一种机器可读存储介质,在其上存储有如上所述的计算机程序。尤其是,适合于提供该计算机程序的存储介质或数据载体是磁存储器、光存储器和电存储器,诸如硬盘、闪速存储器、EEPROM、DVD以及其它等等。通过计算机网络(因特网、内联网等等)来下载程序也是可行的。在此,这种下载可以以有线方式或以线缆方式或者以无线方式(例如经由WLAN网络,3G、4G、5G或6G连接,等等)实现。
本发明的其它优点和设计方案从说明书以及随附的附图中得到。
本发明依据实施例在附图中示意性示出并且在下文参考附图予以描述。
附图说明
图1示出了适合于实现按照本发明的方法的计算单元。
图2示出了按照本发明的优选实施方式的流程图。
具体实施方式
图1示出了适合于实现按照本发明的方法的优选实施方式的计算单元2。该适合的计算单元2包括处理器4、存储器6和硬件安全模块(HSM)8。计算单元2优选地是微控制器。处理器2可包括一个或多个处理器核。该计算单元通常也可以包括多个处理器(未示出),这些处理器分别具有一个或多个处理器核,其中该方法可以利用每个处理器以类似的方式来被实现。该计算单元可包括其它的、未示出的组件,例如接口。
存储器6可以是易失性存储器或非易失性存储器。更进一步,存储器6不仅可以包括易失性存储区而且可以包括非易失性存储区。在存储器6中提供三个存储区,即第一存储区10、第二存储区12和第三存储区14(其中该存储器也还可包括其它存储区)。在第一存储区10中存储标准计算机程序(即该第一存储区在该优选实施方式的范围内被提供用于存储标准计算机程序),即利用标准算法来实现应该通过该计算单元所提供的功能、例如在机器或车辆的控制设备中的控制或调节功能的计算机程序。在启动或重启该计算单元时,必要时在该计算单元的初始化之后或者在被另一计算机程序调用之后,首先(通过处理器4)启动或执行该标准计算机程序,例如其方式是将表明相应所要执行的程序指令被存储在其中的存储区的基本存储地址的地址指针设定到与第一存储区相对应的值。
在该优选实施方式的范围内,在第二存储区12中存储所要保护的或所要保障安全的计算机程序,该计算机程序借助于所要保护的或受保护的算法来实现该功能。所要保护的计算机程序以加密形式存储在第二存储区12中。
这里,第三存储区14被设置为:在对存储在第二存储区12中的经加密的所要保护的计算机程序进行解密之后存储所要保护的计算机程序或者所要保护的计算机程序的部分。在经解密的所要保护的计算机程序或者其部分被写入第三存储区14中之后,在第三存储区14中的经解密的所要保护的计算机程序由该处理器来执行,以便实现该功能。结束对标准计算机程序的执行。二者比如可以通过将上述地址指针设定或弯曲到与第三存储区相对应的值来实现。只有当(第一)完整性检查已成功完成时、即当完整性已被确认时,才对经加密的所要保护的计算机程序进行解密并且将其存储在第三存储区14中。
这三个存储区可以独立于彼此地是易失性或非易失性存储区。优选地,第一存储区10是非易失性存储器,比如闪速存储器或ROM存储器(ROM:Read-Only-Memory,只读存储器);第二存储区12是非易失性存储器,比如闪速存储器;并且第三存储区14是易失性或非易失性存储器,优选地是易失性存储器,比如RAM存储器(RAM:Random-Access-Memory,随机存取存储器)。
通过HSM 8对存储在第二存储区12中的经加密的所要保护的计算机程序进行解密。用于该解密的密钥存储在HSM 8的密钥存储器16中。密钥存储器16被设置在只有该HSM才能访问的存储区中。这可以是在HSM存储器(即该HSM的自己的存储器)中的存储区或者也可以是在另一存储元件(比如存储器6)中的存储区。
附加地,示出了可选的(HSM)日志存储器18,尤其是只有HSM8才能访问该日志存储器。该HSM可以将事件存储在该日志存储器中,以便记录这些事件。优选地,如果相应的完整性检查不成功、即完整性未被确认,则存储完整性检查的结果和/或关于完整性检查的信息。
图2示出了按照用于安全提供所要保护的计算机程序的方法的优选实施方式的流程图。
在图2中示出的步骤之前,在可选的、未示出的步骤中,所要保护的计算机程序以加密形式被存储在第二存储区中或者被写入该第二存储区中。优选地,这以如下方式来实现:所要保护的计算机程序以已经加密的形式被加载到该计算单元上,即由另一计算单元(该另一计算单元被认为是安全的)以加密形式以受密码保护的方式传输到该计算单元并且在那里被存储在第二存储区中。
在可选的步骤100中,调用功能,该功能通过所要保护的计算机程序借助于所要保护的算法来实现。例如,该调用可以在该计算单元的启动或重启以及初始化之后进行或者通过另一(已经被执行的)计算机程序来进行。
在步骤110中,通过该处理器来启动或执行标准计算机程序,该标准计算机程序借助于标准算法来实现该功能。
在步骤120中,检查是否存在从外部对该计算单元的访问,尤其是是否存在调试器,例如是否有调试器与该计算单元连接和/或该计算单元或该处理器是否处于调试模式。该检查称为(第一)访问检查并且优选地通过该HSM来被执行。如果存在或识别出对该计算单元的访问,尤其是如果识别出调试器,则跳回到步骤110,即继续执行标准计算机程序。
另一方面,如果没有识别出对该计算单元的访问,则在步骤140中,优选地通过该HSM来进行(第一)运行时检查,在该(第一)运行时检查中,尤其是检查标准计算机程序和/或由该计算单元所执行的其它计算机程序是否相对于已知状态而言未曾发生变化或者未曾被操纵。这例如可以借助于针对第一存储区或其中存储这些其它计算机程序的存储区所计算出的校验和、数字签名或者消息验证码来实现。相对应的参考校验和、参考签名或者参考MAC可以存储在该HSM或者只有该HSM才能访问的存储区中。如果该运行时检查不成功,即如果识别出了更改或操纵,则跳回到步骤110,即继续执行该标准计算机程序。
步骤120(访问检查)和140(运行时检查)可以共同被视为第一完整性检查,这些步骤也可以以与所示出的顺序不同的顺序被执行,例如至少部分地并行地被执行或者步骤140在步骤120之前执行。如果第一完整性检查不成功,即如果访问检查和/或运行时检查不成功,则跳回到步骤110。
另一方面,如果第一完整性检查成功,即如果尤其是在步骤140中的第一完整性检查成功(未识别出操纵),则在步骤160中,对存储在第二存储区中的经加密的所要保护的计算机程序进行解密并且将经解密的所要保护的计算机程序存储在第三存储区中或者写入第三存储区中。比如当第三存储区太小以至于无法容纳整个所要保护的计算机程序时,该解密和存储也可以分别只包括经加密的所要保护的计算机程序的部分。在这种情况下,分别对所要保护的计算机程序的在执行时所需的部分进行解密并且将其存储在第三存储区中。该解密通过该HSM在使用存储在该密钥存储器中的密钥来进行。
在步骤170中,结束标准计算机程序并且启动所要保护的计算机程序或开始执行该所要保护的计算机程序,即通过该处理器来执行经解密的、存储在第三存储区中的所要保护的计算机程序。
在步骤180中,在所要保护的计算机程序被执行期间,尤其是通过该HSM,进行第二完整性检查。第二完整性检查包括第二访问检查和/或第二运行时检查。第二访问检查和/或第二运行时检查的过程与第一访问检查和/或第一运行时检查的过程相同,其中在第二运行时检查中计算并检查用于第三存储区的校验和或MAC。
在步骤190中,如果第二完整性检查成功,即如果在访问检查中未曾发现访问和/或在运行时检查中未曾发现操纵,则跳回到步骤180(第二完整性检查)。这优选地在一定时间段之后进行,该时间段可以是预定的或者随机的。所要保护的计算机程序在步骤180和步骤190期间继续被执行,使得在均匀间隔开或随机间隔开的时间点执行第二完整性检查并且只要第二完整性检查成功就执行所要保护的计算机程序。
另一方面,如果第二完整性检查不成功,则在步骤200中停止或结束对所要保护的计算机程序的执行。同样,在这种情况下跳回到步骤110,即重新开始执行标准计算机程序,使得继续提供该功能。
在优选的步骤210中,尤其是由该HSM所引起,对第三存储区进行覆盖或删除,即删除经解密的所要保护的计算机程序。在该覆盖时,可以将标准值、例如逻辑“0”写入第三存储区的每个存储单元中或者至少写入第三存储区的其中存储有经解密的所要保护的计算机程序的部分中。替代地,可以将随机值写入存储单元中。
在优选的步骤220中,在该HSM的日志存储器中生成条目,该条目使表明失败的第二完整性检查的数目的计数器增加一和/或包含关于失败的第二完整性检查的信息,例如时间信息和/或关于失败的第二完整性检查的原因(访问检查或运行时检查)的信息。更进一步,比如当该计数器达到预定的最大数目时,可以对该HSM的密钥存储器中的密钥进行删除或覆盖和/或对第二存储区进行覆盖或删除,即删除经加密地所要保护的计算机程序。
Claims (13)
1.一种用于在计算单元(2)、尤其是微控制器中安全提供所要保护的计算机程序的方法,所述计算单元具有处理器(4)、存储器(6)和硬件安全模块(8),其中所述所要保护的计算机程序借助于所要保护的算法来实现功能,所述方法包括:
在所述处理器(4)中执行(110)存储在第一存储区(10)中的标准计算机程序,所述标准计算机程序借助于标准算法来实现所述功能;
执行对所述计算单元和/或所述标准计算机程序的第一完整性检查(120、140);而且
如果在所述第一完整性检查(120、140)中确认完整性,则
在使用存储在所述硬件安全模块(8)的密钥存储器(16)中的密钥的情况下对所述所要保护的计算机程序以加密形式存储在其中的第二存储区(12)进行解密(160),并且将经解密的所要保护的计算机程序存储在第三存储区(14)中,并且
结束所述标准计算机程序并在所述处理器中启动(170)存储在所述第三存储区(14)中的所要保护的计算机程序。
2.根据权利要求1所述的方法,所述方法包括:在所述所要保护的计算机程序被执行期间,
执行对所述计算单元(2)和/或所述所要保护的计算机程序的第二完整性检查(180)一次或多次;
如果在所述第二完整性检查(180)中未确认所述完整性,则
结束(200)所述所要保护的计算机程序并且在所述处理器中启动存储在所述第一存储区(10)中的标准计算机程序,并且
覆盖(210)所述第三存储区(14)。
3.根据权利要求2所述的方法,其中所述第二完整性检查(180)以定期的时间间隔或者在随机时间点被重复执行。
4.根据权利要求2或3所述的方法,其中如果在所述第二完整性检查(180)中未确认所述完整性,则存储在所述硬件安全模块(8)中或由所述硬件安全模块所存储的表明在所述第二完整性检查中所述完整性未被确认的次数的计数器被增加一;其中如果所述计数器达到预定的最大数目,则在所述硬件安全模块中的所述密钥被删除和/或所述第二存储区(12)被覆盖(220)。
5.根据上述权利要求中任一项所述的方法,其中所述第一完整性检查包括第一访问检查(120)和/或所述第二完整性检查(180)包括第二访问检查,其中所述第一访问检查和/或所述第二访问检查包括:检查是否有调试器与所述计算单元连接。
6.根据上述权利要求中任一项所述的方法,
其中所述第一完整性检查包括第一运行时检查(140),所述第一运行时检查包括检查所述第一存储区(10)是否未发生变化;和/或
其中所述第二完整性检查(180)包括第二运行时检查,所述第二运行时检查包括检查所述第三存储区(14)是否未发生变化。
7.根据上述权利要求中任一项所述的方法,其中如果在第一和/或第二完整性检查(120、140;180)中未确认所述完整性,则在所述硬件安全模块(8)的日志存储区(18)中存储条目,所述条目表明所述完整性未曾被确认,并且优选地,所述条目包含关于其中所述完整性未曾被确认的完整性检查的信息。
8.根据上述权利要求中任一项所述的方法,所述方法包括:将所述所要保护的计算机程序以加密形式传输和存储在所述第二存储区中。
9.根据权利要求8所述的方法,其中所述所要保护的计算机程序以未经加密的形式存在于与所述计算单元(2)不同的另一计算单元中;存储在所述硬件安全模块(8)中或由所述硬件安全模块所存储的密钥以受密码保护的方式被传输到所述该另一计算单元;所述所要保护的计算机程序由所述另一计算单元在使用所述密钥的情况下加密;而且经加密的所要保护的计算机程序由所述另一计算单元传输到所述计算单元并且被存储在所述第二存储区(12)中。
10.根据权利要求8所述的方法,其中以加密形式的所述所要保护的计算机程序和所述密钥存在于与所述计算单元(2)不同的另一计算单元中;经加密的所要保护的计算机程序和所述密钥以受密码保护的方式被传输到所述计算单元;而且所述经加密的所要保护的计算机程序被存储在所述第二存储区(12)中并且所述密钥被存储在所述硬件安全模块中或由所述硬件安全模块来存储。
11.一种包括硬件安全模块的计算单元,所述计算单元被设立为执行根据上述权利要求中任一项所述的方法的所有方法步骤。
12.一种计算机程序,当所述计算机程序在计算单元上被执行时,所述计算机程序促使所述计算单元执行根据权利要求1至10中任一项所述的方法的所有方法步骤。
13.一种机器可读存储介质,其具有被存储在其上的根据权利要求12所述的计算机程序。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102022200544.9 | 2022-01-18 | ||
DE102022200544.9A DE102022200544A1 (de) | 2022-01-18 | 2022-01-18 | Verfahren zur abgesicherten Bereitstellung eines zu schützenden Computerpro-gramms in einer Recheneinheit |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116467755A true CN116467755A (zh) | 2023-07-21 |
Family
ID=86990522
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310096883.XA Pending CN116467755A (zh) | 2022-01-18 | 2023-01-18 | 用于在计算单元中安全提供所要保护的计算机程序的方法 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN116467755A (zh) |
DE (1) | DE102022200544A1 (zh) |
-
2022
- 2022-01-18 DE DE102022200544.9A patent/DE102022200544A1/de active Pending
-
2023
- 2023-01-18 CN CN202310096883.XA patent/CN116467755A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
DE102022200544A1 (de) | 2023-07-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11662991B2 (en) | Vehicle-mounted device upgrade method and related device | |
EP2420950B1 (en) | Information processing system, information processing method, information processing program, computer readable medium and computer data signal | |
US7546468B2 (en) | Program update method and server | |
EP3883208B1 (en) | Validation of software residing on remote computing devices | |
US7370319B2 (en) | System and method for regulating execution of computer software | |
CN101103584A (zh) | 安全及后向兼容处理器以及在其上的安全软件的执行 | |
JP4791250B2 (ja) | マイクロコンピュータおよびそのソフトウェア改竄防止方法 | |
KR20180062072A (ko) | 차량용 진단기 및 그 인증서 관리 방법 | |
EP3499398A2 (en) | Secure storage of monotonic odo value inside a secure hardware elements update counter | |
WO2019059148A1 (ja) | Bios管理装置、bios管理システム、bios管理方法、及び、bios管理プログラムが格納された記録媒体 | |
CN116467755A (zh) | 用于在计算单元中安全提供所要保护的计算机程序的方法 | |
US20220292206A1 (en) | Method and device for transferring a boot code with improved data security | |
US11418505B2 (en) | Information processing apparatus, system and method | |
CN114637996A (zh) | 用于以确保安全的方式启动计算单元的方法 | |
CN106355085B (zh) | 一种可信应用运行安全控制方法 | |
CN114297679B (zh) | 一种镜像加密传输与升级的方法 | |
JP7031070B1 (ja) | プログラム処理装置、プログラム処理方法、及び、プログラム | |
CN116776397A (zh) | 用于在计算单元中验证数据的方法 | |
CN117892290A (zh) | 车辆刷写方法、装置、终端设备以及存储介质 | |
CN117874721A (zh) | 一种jar包防反编译方法 | |
KR20240077747A (ko) | Plc 및 plc의 제어방법 | |
KR20240006658A (ko) | 소프트웨어의 사용을 보안하는 방법 | |
CN115659288A (zh) | 一种变电站嵌入式装置及软件版本管控方法、终端及存储介质 | |
CN114282179A (zh) | 容器系统授权方法和服务器 | |
CN115437673A (zh) | 车载mcu升级的方法、车载mcu升级系统与服务器组 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |