CN108885668A - 用于用户数据的完整性检查的方法、处理器和设备 - Google Patents

用于用户数据的完整性检查的方法、处理器和设备 Download PDF

Info

Publication number
CN108885668A
CN108885668A CN201780020422.7A CN201780020422A CN108885668A CN 108885668 A CN108885668 A CN 108885668A CN 201780020422 A CN201780020422 A CN 201780020422A CN 108885668 A CN108885668 A CN 108885668A
Authority
CN
China
Prior art keywords
processor
check value
safety
shielded
during
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
CN201780020422.7A
Other languages
English (en)
Other versions
CN108885668B (zh
Inventor
D.默利
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.)
Siemens AG
Original Assignee
Siemens 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 Siemens AG filed Critical Siemens AG
Publication of CN108885668A publication Critical patent/CN108885668A/zh
Application granted granted Critical
Publication of CN108885668B publication Critical patent/CN108885668B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • 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/60Protecting data
    • G06F21/604Tools and structures for managing or administering access control systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (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)
  • Automation & Control Theory (AREA)
  • Storage Device Security (AREA)

Abstract

本发明涉及一种用于借助于处理器对用户数据进行完整性检查的方法,该方法包括如下方法步骤:在安全性受保护的运行模式期间计算关于用户数据的第一校验值。该方法包括另一方法步骤:在安全性受保护的运行模式期间,将第一校验值存储在处理器的安全性受保护的存储模块中。该方法包括另一方法步骤:在运行时间模式期间计算关于用户数据的第二校验值。该方法包括另一方法步骤:在运行时间模式期间通过处理器将第一校验值与第二校验值进行比较。该方法包括另一方法步骤:在运行时间模式期间通过处理器来提供控制信息,其中该控制信息包括比较的结果。

Description

用于用户数据的完整性检查的方法、处理器和设备
技术领域
本发明涉及一种用于用户数据的完整性检查的方法和处理器。
背景技术
嵌入式系统包括纳入于技术上下文中的硬件和软件组件的组合。所述嵌入式系统的任务尤其是对系统进行控制、调节或监控。这些嵌入式系统使微处理器、FPGA、RAM存储器、闪速存储器以及各种各样的外围设备集于一个平台内。对这些设备的保护越来越重要,以便可以确保正常的运行。
对此的最重要的要求之一是完整性,也就是说防止对设备的未经授权的操纵。例如,必须有关完整性对公钥进行检查,以便保证这些公钥可证实未被改变。完整性保护被分成两个方面:
1) 对非易失性存储的数据的完整性保护,所述非易失性存储的数据包含对设备的启动(Booten)和设备的基本功能。在关断状态下,这些数据也可能被操纵。保护措施是安全启动(Secure Boot)和类似机制。
2) 对运行时间数据的完整性保护,所述运行时间数据在设备的运行期间被计算并且为了进一步的计算而需要所述运行时间数据。这些数据可能被攻击者操纵,该攻击者在运行时间获得对设备的访问。
从现有技术公知文献US 8531247 B2、文献US 8892616 B2、文献US 8300811 B2、文献US 9147088 B2、文献EP 2605445 B1、文献EP 2870565 A1、文献EP 2891102 A1和文献US 8843761 B2。
发明内容
本发明的任务是提供一种方法和一种处理器,该方法和该处理器允许安全性高地执行对用户数据的完整性检查。
该任务通过在独立权利要求中说明的特征来解决。在从属权利要求中示出了本发明的有利的扩展方案。
按照第一方面,本发明涉及一种用于借助于处理器对用户数据进行完整性检查的方法,该方法包括如下方法步骤:在安全性受保护的运行模式期间计算关于用户数据的第一校验值。该方法包括另一方法步骤:在安全性受保护的运行模式期间,将第一校验值存储在处理器的安全性受保护的存储模块中。该方法包括另一方法步骤:在运行时间模式期间计算关于用户数据的第二校验值。该方法包括另一方法步骤:在运行时间模式期间通过处理器将第一校验值与第二校验值进行比较。该方法包括另一方法步骤:在运行时间模式期间通过处理器来提供控制信息,其中该控制信息包括比较的结果。
结合本专利申请,“处理器”例如可以被理解为机器或电子电路。处理器尤其可以是FPGA(英文Field Programmable Gate Array(现场可编程门阵列))、集成电路(英文Integrated Circuit,IC)、中央处理器(英文Central Processing Unit,CPU)、微处理器或微控制器。处理器也可以被理解为虚拟化处理器,该虚拟化处理器也被称作软CPU(Soft-CPU)。例如,也可涉及可编程处理器,该可编程处理器配备有用于实施所提到的按照本发明的方法的配置步骤,或者该可编程处理器利用配置步骤被配置成使得该可编程处理器具有设备、系统或系统的部分的按照本发明的特征。
结合本专利申请,“安全性受保护的存储模块”例如可以被理解为如下存储模块,尤其是处理器可以以读取的方式访问该存储模块。尤其是,阻止对安全性受保护的存储模块的处理器外部的直接访问。优选地,尤其可以在安全性受保护的运行模式、例如处理器的安全性受保护的运行模式期间通过处理器以写的方式访问该存储模块。如果数据、例如校验值应该被存储在安全性受保护的存储模块中,那么这些数据被转交给处理器的接口或传输模块。例如,处理器的可构造为控制模块的控制电路接着优选地依据运行模式、例如安全性受保护的运行模式或运行时间模式来决定是将数据存储到安全性受保护的存储模块中还是可以读取安全性受保护的存储模块的数据。
结合本专利申请,“传输模块”例如可以被理解为接口或总线,其尤其适合于传输和/或接收数据。传输模块例如可以在处理器内部传输和/或接收数据。替代地,传输模块可以是以下接口或总线,借助于该接口或该总线来将数据传输给处理器和/或从该处理器接收数据。
结合本专利申请,“校验值”例如可被理解为哈希值、数字签名和/或校验和,所述校验和例如是借助于关于用户数据的函数、例如校验值函数来计算的。在此,检验值函数可以是单向函数、尤其是加密哈希函数、例如实现密钥散列消息认证码算法(Keyed-HashMessage Authentication Code Algorithmus,HMAC)的函数。
结合本专利申请,“安全性受保护的运行模式”例如可以被理解为如下运行模式,在该运行模式期间,优选地只实施值得信任的功能、例如操作系统的功能。“安全性受保护的运行模式”例如可以是设备的启动阶段,该设备尤其是在启动过程结束之后例如通过中断或机器指令来结束安全性受保护的运行模式。但是,安全性受保护的运行模式也可以是如下运行模式,该运行模式例如可以在制造设备以及用按照本发明的处理器对设备进行测试期间被接通。例如,在安全性受保护的运行模式期间,只能实施值得信任的程序代码,该程序代码例如是由设备制造商进行数字签名过的。在安全性受保护的运行模式期间,尤其只处理设备内部的数据,并且尤其阻止与其它设备或网络的通信。在安全性受保护的运行模式期间,例如出发点可以是:程序代码或用户数据没有被未获授权者操纵或者不能被未获授权者操纵。
例如,借助于安全机制、例如机械开关、尤其是以跳线(Jumper)形式的机械开关、加密函数、尤其是以数字签名、数字证书或密码形式的加密函数,可以保护对安全性受保护的运行模式的接通。
结合本专利申请,“运行时间模式”例如可以被理解为如下运行模式,在该运行模式的情况下,操作系统、尤其是应用代码例如实施设备制造商陌生来源的软件组件。在运行时间模式期间,例如出发点可以是:程序代码或用户数据被未获授权者操纵。运行时间模式和安全性受保护的运行模式优选地相互排斥。这尤其意味着:在安全性受保护的运行模式期间不能接通运行时间模式,而在运行模式期间不能接通安全性受保护的运行模式。
结合本专利申请,“运行时间”例如可以被理解为设备的从接通该设备直至关断该设备的运行时间。在此,运行时间例如包括:值得信任的时间段,在该值得信任的时间段期间尤其接通安全性受保护的运行模式;和可能不值得信任的时间段,在该可能不值得信任的时间段期间尤其是关断安全性受保护的运行模式并且在该可能不值得信任的时间段期间尤其是接通运行时间模式。
结合本专利申请,“在处理器外部”例如可以被理解为:例如组件和/或功能不是该处理器的完整组成部分。这些组件和/或功能例如可以通过操作系统的软件组件来实现并且尤其可以访问该处理器及其接口。优选地,可以只通过其接口来访问该处理器。
结合本专利申请,“在处理器内部”例如可以被理解为:例如组件和/或功能是该处理器的完整组成部分。这些组件和/或功能例如可以通过该处理器上的电路、尤其是逻辑电路来实现。尤其不能直接访问在处理器内部的组件和/或功能。优选地,通过所限定的接口来进行访问。
结合本专利申请,“用户数据”例如可以被理解为程序组件、配置信息、测量数据和/或控制数据,所述程序组件、配置信息、测量数据和/或控制数据尤其也可以被加密。
该方法是尤其有利的,因为第一校验值,或者也称作原始校验值,可以直接被存储在处理器、尤其是FPGA中,例如可以被存储在FPGA的存储块(所谓的Block RAM(块RAM))中或被存储在触发器(Flip-Flop)中。借此,尤其不需要在完整性检查时将第一校验值传输给操作系统。
由此,例如可以实现:避免了在处理器上实现校验值函数、例如加密函数、尤其是以单向函数形式的加密函数来计算校验值、即第一校验值和/或第二校验值。换言之,由此尤其实现:通过处理器可以检查用户数据的完整性,而不在处理器上管理和/或存储针对用来计算校验值的校验值函数的资源或者不在处理器上管理和/或存储机密密钥。因此,借此尤其可能的是,在处理器之外、即在处理器外部计算第一校验和和/或第二校验和。
但是也可能的是,例如在处理器上实现校验值函数,用来计算校验值、即第一校验值和/或第二校验值。借此,例如可能的是,第一校验值和/或第二校验值由处理器自己、即在处理器内部计算。
尤其是,在计算第一校验值之后,第一校验值如上面提及的那样在一个方法步骤中被存储在安全性受保护的存储模块中。这尤其是与第一校验值是在处理器内部被计算还是在处理器外部被计算无关地实现。
相应的情况尤其适用于第二校验值,因为该第二校验值也可以在存储器内部或在存储器外部计算。如果需要,第二校验值可以被传输给处理器用来进行比较。
在该方法的第一实施方式中,安全性受保护的存储模块在处理器的运行时间期间可写一次或者安全性受保护的存储模块可写一次。
通过安全性受保护的存储模块可写一次的方式,例如在安全性受保护的运行模式期间,尤其可以使第一校验值优选地以不能改变的方式存储在安全性受保护的存储模块中。这例如可以在处理器或使用该处理器的设备的运行时间实现一次,替代地,安全性受保护的存储模块例如可以在其整个使用寿命期间只被写一次。在这种情况下,当安全性受保护的运行模式接通时,例如尤其是可以在安全性受保护的存储模块上一次性存储第一校验值,其中安全性受保护的运行模式优选地只在制造处理器或制造使用该处理器的设备期间被接通。
在该方法的另一实施方式中,在安全性受保护的运行模式期间,附加地将机密存储在安全性受保护的存储模块中。
该方法尤其是有利的,以便例如使用附加的加密函数和/或具有机密的安全机制,例如非对称加密方法的加密公钥和/或加密私钥,和/或对称方法的对称加密密钥。借此,例如可以对用户数据进行加密或解密。
在该方法的另一实施方式中,如果在将第一校验值和第二校验值进行比较时确定一致性足够,那么在进行提供时附加地提供机密。
该方法尤其是有利的,以便例如提供加密密钥来对用户数据进行解密。由此,例如可以针对用户数据实现尽可能高的加密保护(或者也包括安全性)。
在该方法的另一实施方式中,如果在将第一校验值和第二校验值进行比较时确定一致性足够,那么将该机密用作加密函数的输入参数。
该方法尤其是有利的,以便例如提供加密密钥来对用户数据进行解密。由此,例如可以针对用户数据实现尽可能高的加密保护(或者也包括安全性)。
在该方法的另一实施方式中,在预先给定的时间段之内,等待第二校验值来进行比较,其中该预先给定的时间段尤其是借助于看门狗来计算,其中在超过该预先给定的时间段时提供控制信息。
该方法尤其是有利的,以便例如通过在预先给定的时间段之内的完整性检查强迫对用户数据的高度加密保护。
在该方法的另一实施方式中,处理器借助于在处理器内部实现的校验值函数来计算第一校验值和/或第二校验值。
该方法尤其是有利的,以便例如实现用户数据的完整性检查的尽可能高的安全性。
在该方法的另一实施方式中,利用软件组件,借助于在处理器外部实现的校验值函数来计算第一校验值和/或第二校验值。
该方法尤其是有利的,以便例如实现用户数据的完整性检查的尽可能高的安全性和灵活的实现方案。尤其是,在实现该处理器时,可以省去校验值函数的在处理器内部的实现。经此可以实现:例如可以使用极不同的校验值函数或不同的加密函数。
按照另一方面,本发明涉及一种用于对用户数据进行完整性检查的处理器。该处理器包括安全性受保护的存储模块,用于在安全性受保护的运行模式期间存储第一校验值。附加地,该处理器包括比较模块,用于在运行时间模式期间将第一校验值与第二校验值进行比较。附加地,该处理器包括提供模块,用于在运行时间模式期间提供控制信息,其中该控制信息包括比较的结果。
在该处理器的第一实施方式中,该处理器包括:第一传输模块,用于在安全性受保护的运行模式期间传输第一校验值;和/或用于在运行时间模式期间传输第二校验值。
在该处理器的另一实施方式中,安全性受保护的运行模式和/或运行时间模式都是该处理器和/或具有该处理器的设备的运行模式。
按照另一方面,本发明涉及一种用于对用户数据进行完整性检查的设备。该设备包括处理器、尤其是按照本发明的处理器,就像上文所描述的处理器。该处理器包括安全性受保护的存储模块,用于在安全性受保护的运行模式期间存储第一校验值。附加地,该处理器包括比较模块,用于在运行时间模式期间将第一校验值与第二校验值进行比较。附加地,该处理器包括提供模块,用于在运行时间模式期间提供控制信息,其中该控制信息包括比较的结果。附加地,该设备包括第一计算模块,用于在安全性受保护的运行模式期间计算关于用户数据的第一校验值。附加地,该设备包括第二计算模块,用于在运行时间模式期间计算关于用户数据的第二校验值。
在该设备的第一实施方式中,安全性受保护的运行模式和/或运行时间模式都是该处理器和/或该设备的运行模式。
在该设备的另一实施方式中,该设备包括:第二传输模块,用于在安全性受保护的运行模式期间将第一校验值传输给处理器;和/或第三传输模块,用于在运行时间模式期间将第二校验值传输给处理器。
在该设备的另一实施方式中,该设备包括处理模块,用于处理该处理器的控制信息。
此外,还要求保护一种具有用于执行所提到的按照本发明的方法的程序指令的计算机程序产品。
附加地,要求保护该计算机程序产品的变型方案,该变型方案具有程序指令,用于配置建造设备、例如3D打印机或者适合于建造处理器/设备的设备,其中该建造设备利用程序指令来配置成使得建造所提到的按照本发明的处理器或按照本发明的设备。
此外,还要求保护一种用于存储和/或提供计算机程序产品的提供装置。提供装置例如是数据载体,所述数据载体存储和/或提供计算机程序产品。替代地和/或附加地,提供装置例如是网络服务、计算机系统、服务器系统、尤其是分布式计算机系统、基于云的计算机系统和/或虚拟计算机系统,其优选地以数据流的形式存储和/或提供计算机程序产品。
例如作为以程序数据块和/或指令数据块的形式的下载、优选地作为文件、尤其是作为下载文件,或者作为完整的计算机程序产品的数据流、尤其是作为下载数据流来实现所述提供。但是,所述提供例如也可以作为部分下载来实现,所述部分下载由多个部分组成并且尤其是通过对等网络来下载或者作为数据流来提供。这种计算机程序产品例如在使用以数据载体的形式的提供装置的情况下被读入到系统中并且实施程序指令,使得按照本发明的方法在计算机上实施,或者建造设备被配置成使得该建造设备建造按照本发明的处理器或按照本发明的设备。
附图说明
本发明的上面描述的特性、特征和优点以及它们如何实现的方式和方法结合实施例的下面的描述更清楚并且更明显地被理解,所述实施例结合附图进一步予以阐述。在此以示意图:
图1示出了所公开的方法的第一实施例的流程图;
图2示出了第二实施例的实现所公开的方法的处理器;
图3示出了第三实施例的实现所公开的方法的处理器;
图4示出了第四实施例的实现所公开的方法的处理器;
图5示出了具有实现所公开的方法的处理器的第五实施例的设备。
在所述附图中,只要不另作说明,功能相同的元素就配备有相同的附图标记。
具体实施方式
图1示出了所公开的方法的第一实施例的流程图。
该方法能够借助于设备的处理器来执行对用户数据的完整性检查。换言之,该方法可以借助于校验值函数、例如哈希函数来检查数据或用户数据的完整性。校验值函数尤其根据具有任意长度的用户数据、例如消息来计算具有预先确定的固定长度的校验值。
为此,在第一方法步骤110中,在安全性受保护的运行模式期间计算关于用户数据的第一校验值。换言之,在也可被称作安全性受保护的运行模式的第一时间点,计算关于用户数据、例如消息的校验值、例如哈希值。第一校验值也可以被称作原始值或参考值。
在第二方法步骤120中,在安全性受保护的运行模式期间将第一校验值存储在处理器的安全性受保护的存储模块中。
安全性受保护的运行模式或者在存储第一校验值之后直接结束,或者如果需要,在结束安全性受保护的运行模式之前,首先还实施其它功能。
在结束安全性受保护的运行模式之后,接通运行时间模式。为了在运行时间模式期间检查用户数据的完整性,在第三方法步骤中,在运行时间模式期间计算关于用户数据的第二校验值。
将第二校验值传送给处理器,使得处理器可以在第四方法步骤中将第一校验值与第二校验值进行比较。替代地,可以将所需的信息、例如用户数据或用户数据的存储地址传送给处理器,使得处理器自己可以计算第二校验值并且紧接着执行第一校验值与第二校验值的比较。
换言之,在运行时间模式期间在处理器内部检查用户数据的完整性。
在已经执行第一校验值与第二校验值的比较之后,处理器在第五方法步骤150中在运行时间模式期间提供控制信息,其中该控制信息包括比较的结果。
优选地,第一校验和与第二校验和应该是相同的,使得处理器可以确认用户数据的完整性。然而,如果确定第一校验和与第二校验和的一致性不足,那么处理器例如可以利用控制信息来关断处理器或设备的功能。
换言之,在稍后的时间点、也称作运行时间模式,计算关于在该时间点当前的用户数据的第二校验值。将所确定的第二校验值与之前确定的校验值进行比较。在一致性足够的情况下,用户数据不曾被改变并且保证了用户数据的完整性。因此,通过使用校验值函数、例如哈希函数,不必比较和存储任意长的用户数据,而是只须比较和存储较短的校验值、尤其是第一校验值。在此,起决定性作用的是第一校验值在处理器中的安全存储。
通过例如该方法的借助于嵌入式系统中的FPGA的实现方案,可以避免通过在处理器外部的组件、例如软件组件访问安全相关的数据、例如第一校验值。
利用该方法可能的是,以防操纵的方式将第一校验和直接存储在处理器上。这优选地可以对于处理器的每个安全性受保护的存储模块在每次运行时间都发生一次。在进行完整性检查时,将当前的校验值、例如第二校验值转交给处理器并且将其与所存储的第一校验值进行比较。在值一致时,保证了完整性。
如果校验值不一致,那么数据已被改变了。处理器例如将该结果通知给设备的系统软件,该系统软件接着例如可以停止实施程序代码。
例如,可以将SHA256方法或SHA3方法用作校验值函数。
在一个变型方案中,在处理器上实现用于多个第一校验值的安全性受保护的存储模块,例如基于块RAM或触发器来实现用于多个第一校验值的安全性受保护的存储模块。
在另一变型方案中,借助于比较模块、例如比较器来实现比较,以便将第一校验值和第二校验值进行比较。
在另一变型方案中,控制模块决定是应该存储校验值还是应该将校验值进行比较。控制模块例如也可以接通和/或关断安全性受保护的运行模式或者运行时间模式。
如果第一校验值已在安全性受保护的存储模块中被存储一次,那么该第一校验值优选地直至设备关断都不能被覆写,而是还只能被用于比较。
在另一变型方案中,除了第一校验值之外,还将机密存储在安全性受保护的存储模块中。这例如可以被实现为通过在处理器外部的软件组件将参数转交给处理器,在转交给处理器之后,所述在处理器外部的软件组件将该机密丢弃。如果稍后通过处理器确定第二校验值与第一校验值一致,那么处理器交还之前存储的机密。
替代地,在第二校验值正确的情况下,将该机密用于加密函数、例如数字签名或加密函数。
在另一变型方案中,在处理器中附加地实现看门狗、即如下功能,该功能针对每个所存储的第一校验值最晚在预先限定数目个时间单位之后等待提供正确的第二校验值。
如果情况不是如此,则控制信息可能会停用处理器或设备的其它模块或者功能、例如经由以太网网络和/或接口和/或加密函数和/或中央处理器的网络通信。
在另一变型方案中,处理器实现校验值函数,用于计算第一校验值和/或第二校验值。校验值函数可以主动地从工作存储器加载用户数据并且计算关于这些用户数据的第一校验值和/或第二校验值。为此,例如在安全性受保护的运行模式期间将存储地址和所要检查的字节的数目转交给处理器。接着,该处理器可以优选地在安全性受保护的运行模式期间自己计算第一校验值并且将该第一校验值存储在安全性受保护的存储模块中。
如果应该计算第二校验值,那么例如将处理器应该独立地计算第二校验值的命令传送给该处理器。处理器在运行时间模式期间借助存储地址和字节的数目来计算第二校验值并且将第一校验值与第二校验值进行比较。
替代地,处理器可以独立地定期地尤其在预先限定的或能预先限定的时间段之内在运行时间模式下关于用户数据来计算第二校验和并且紧接着将其与第一校验值进行比较。
图2示出了第二实施例的实现所公开的方法的处理器200。
处理器200包括:第一接口211,用于输入;第二接口212,用于命令输入;第三接口213,用于提供控制信息、尤其是具有比较的结果的控制信息;可选的第四接口214,用于提供控制信息、尤其是用来接通以及用来关断处理器或其中构造有处理器的设备的功能的信息;控制模块20;安全性受保护的存储模块240;以及比较模块250。控制模块230、安全性受保护的存储模块240和比较模块250都通过第一处理器内部总线彼此间通信连接。
第一接口211、第二接口212、第三接口213和第四接口214也可以构造为集成接口或者构造为两个或三个接口,视功能上的要求而定。
安全性受保护的存储模块240在安全性受保护的运行模式期间存储第一校验值。
比较模块250在运行时间模式期间将第一校验值与第二校验值进行比较。
在运行时间模式期间,通过提供模块来提供控制信息,其中控制信息包括比较的结果。
提供模块例如可以是控制模块230,或者由控制模块230和第三接口213和/或第四接口214形成。
第一接口211例如用于输入关于用户数据的用户数据信息。用户数据信息例如可以包括用户数据本身和/或存放用户数据的存储地址和/或用户数据的字节的数目(即大小声明),以便可以读取该存储地址的用户数据。
第二接口212例如用于命令输入。命令输入例如可包括:用于将校验值、例如第一校验值存储在安全性受保护的存储模块中的命令。命令输入也可以是:用于计算第一校验值和/或第二校验值的命令和/或用于执行第一校验值与第二校验值的比较的命令。
第三接口213和可选的第四接口214用于提供控制信息。视实现方案而定,可以通过第三接口213来提供第一校验值与第二校验值比较的结果。通过可选的第四接口214,例如可以借助于控制信息来关断处理器和/或包括该处理器的设备的功能。为此,控制信息例如可以包括禁止或开启相对应的功能的信息。
换言之,图2示出了在图1中描述的方法的以处理器、例如FPGA的形式的实现方案。首先,根据任意的数据或用户数据,在值得信任的时间点、这里称为安全性受保护的运行模式计算第一校验值并且将其寄送给处理器。
通过将加载命令发送到第二接口,将第一校验值存放在安全性受保护的存储模块(例如块RAM)中。这允许对存储模块上的每个存储空间优选地在处理器或设备的运行时间期间只可能进行唯一的一次。在稍后的时间点,第二校验和可以随时重新被计算并且其完整性可以通过处理器来检查。在此,当前的校验值、也称作第二校验值被寄送给处理器并且将用于使第一校验和与第二校验和进行比较的命令优选地通过第二接口传送给处理器。处理器加载相对应的第一校验值并且借助于比较器将该第一校验值与第二校验值进行比较。在一致性足够的情况下,确保了完整性并且提供控制信息,该控制信息确认第二校验和的正确性。
在校验值的一致性不足时,数据或用户数据以及相对应地其校验值已经发生变化。可选地,可以将比较的结果用于激活或停用功能、其它处理器、包括该处理器的设备的模块或者它们的组合。
图3示出了第二实施例的实现所公开的方法的处理器300。
处理器300是在图2中示出的处理器的一个变型方案。相应地,关于特征、其工作原理和技术效果的描述类似地适用于图3。
除了已知的来自图2的特征之外,处理器300还包括第五接口314、看门狗360和在处理器内部的计算模块370,所述在处理器内部的计算模块可以被构造为第一计算模块和/或第二计算模块的集成计算模块。计算模块370例如可以是控制模块230的完整组成部分。
首先,通过第一接口211将存储器中的地址和字节的数目转交给处理器,它们说明了用户数据以及用户数据的大小。紧接着,借助于计算模块370针对用户数据来计算第一校验值并且将其存放在安全性受保护的存储模块240中。从该时间点开始,看门狗360定期地利用对第二校验值的计算和第一校验值与第二校验值的比较来开始对用户数据的检查。
在校验值的一致性不足时,数据或用户数据以及相对应地其校验值已经发生变化。可选地,可以将比较的结果用于激活或停用功能、其它处理器、包括该处理器的设备的模块或者它们的组合。
图4示出了第二实施例的实现所公开的方法的处理器400。
处理器400是在图2和/或图3中示出的处理器的一个变型方案。相应地,关于特征、其工作原理和技术效果的描述类似地适用于图4。
处理器400包括第六接口410,该第六接口410形成第一接口和/或第二接口和/或第三接口和/或第四接口和/或第五接口的集成接口。
第六接口410是控制模块230的一部分或者通过第二内部总线与控制模块230连接。
控制模块230、比较模块250和安全性受保护的存储模块240借助于第一处理器内部总线来通信连接。
如已经在上文的实施例中阐述的那样,提供装置由控制模块230和/或第六接口410形成。
图5示出了如下实施例的设备500,该实施例包括之前描述的处理器之一、即实现按照本发明的方法的处理器。设备500例如可以是现场设备或测量设备。
设备500包括处理器400和计算模块520,该计算模块520尤其是形成由第一计算模块521和第二计算模块522构成的集成计算模块。计算模块520通过第三总线503与处理器400的第六接口410通信连接。
在该实施例中,关于用户数据的第一校验值由该设备在启动阶段期间借助于计算模块520、尤其是第一计算模块521来计算,并且利用相对应的命令来传送给处理器,以便将该第一校验值存放在安全性受保护的存储模块240中。
如果该设备已经结束启动阶段并且处在运行时间模式下,那么可以借助于处理器400来检查用户数据的完整性。为此,计算模块520、尤其是第二计算模块522形成第二校验值并且利用相对应的命令将该第二校验值传送给处理器400,使得该处理器400执行第二校验和与第一校验和的比较并且通过第六接口410将具有比较的结果的控制信息提供给该设备。
该设备还可以包括第七接口510,利用该第七接口510,该设备例如通过网络540、例如以太网来与工作站530连接。该工作站可包括:显示设备532、例如监视器;和输入设备、例如键盘或计算机鼠标533。
如果例如通过处理器400确定第二校验值与第一校验值的一致性不足,那么处理器可以将消息寄送给该工作站并且优选地使该设备停用。
尽管本发明已经详细地通过实施例进一步图解说明和描述,但是本发明并不限于所公开的例子,而且其它变型方案可以由本领域技术人员从中推导出来,而不脱离本发明的保护范围。

Claims (18)

1.用于借助于处理器、尤其是FPGA对用户数据进行完整性检查的方法,所述方法包括如下方法步骤:
- 在安全性受保护的运行模式期间计算关于所述用户数据的第一校验值;
- 在所述安全性受保护的运行模式期间将所述第一校验值存储在所述处理器的安全性受保护的存储模块中;
- 在运行时间模式期间计算关于所述用户数据的第二校验值;
- 在所述运行时间模式期间通过所述处理器将所述第一校验值与所述第二校验值进行比较;
- 在所述运行时间模式期间通过所述处理器来提供控制信息,其中所述控制信息包括比较的结果。
2.根据权利要求1所述的方法,其中所述安全性受保护的存储模块在所述处理器的运行时间期间可写一次或者所述安全性受保护的存储模块可写一次。
3.根据权利要求1或2所述的方法,其中在所述安全性受保护的运行模式期间附加地将机密存储在所述安全性受保护的存储模块中。
4.根据权利要求3所述的方法,其中如果在将所述第一校验值和所述第二校验值进行比较时确定一致性足够,那么在进行提供时附加地提供所述机密。
5.根据权利要求3或4所述的方法,其中如果在将所述第一校验值和所述第二校验值进行比较时确定一致性足够,那么将所述机密用作加密函数的输入参数。
6.根据上述权利要求之一所述的方法,其中在预先给定的时间段之内,等待所述第二校验值来进行比较,其中所述预先给定的时间段尤其是借助于看门狗来计算,其中在超过所述预先给定的时间段时提供所述控制信息。
7.根据上述权利要求之一所述的方法,其中所述处理器借助于在处理器内部实现的校验值函数来计算所述第一校验值和/或所述第二校验值。
8.根据上述权利要求之一所述的方法,其中利用软件组件,借助于在处理器外部实现的校验值函数来计算所述第一校验值和/或所述第二校验值。
9.用于对用户数据进行完整性检查的处理器,所述处理器具有:
- 安全性受保护的存储模块,用于在安全性受保护的运行模式期间存储第一校验值;
- 比较模块,用于在运行时间模式期间将所述第一校验值与第二校验值进行比较;
- 提供模块,用于在所述运行时间模式期间提供控制信息,其中所述控制信息包括比较的结果。
10.根据权利要求9所述的处理器,其中所述处理器包括:第一传输模块,用于在所述安全性受保护的运行模式期间传输所述第一校验值,和/或用于在所述运行时间模式期间传输所述第二校验值。
11.根据权利要求9或10所述的处理器,其中所述安全性受保护的运行模式和/或所述运行时间模式都是所述处理器和/或具有所述处理器的设备的运行模式。
12. 用于对用户数据进行完整性检查的设备,所述设备具有:
- 处理器、尤其是根据权利要求9-11之一所述的处理器,所述处理器包括
-- 安全性受保护的存储模块,用于在安全性受保护的运行模式期间存储第一校验值;
-- 比较模块,用于在运行时间模式期间将所述第一校验值与第二校验值进行比较;
-- 提供模块,用于在所述运行时间模式期间提供控制信息,其中所述控制信息包括比较的结果;
- 第一计算模块,用于在所述安全性受保护的运行模式期间计算关于所述用户数据的第一校验值;
- 第二计算模块,用于在所述运行时间模式期间计算关于所述用户数据的第二校验值。
13.根据权利要求12所述的设备,其中所述安全性受保护的运行模式和/或所述运行时间模式都是所述处理器和/或所述设备的运行模式。
14.根据权利要求12或13所述的设备,其中所述设备包括:第二传输模块,用于在所述安全性受保护的运行模式期间将所述第一校验值传输给所述处理器;和/或第三传输模块,用于在所述运行时间模式期间将所述第二校验值传输给所述处理器。
15.根据权利要求12-14之一所述的设备,其中所述设备包括处理模块,用于处理所述处理器的控制信息。
16.计算机程序产品,其具有程序指令,用于执行根据权利要求1-8之一所述的方法。
17.计算机程序产品,其具有用于建造设备的程序指令,所述建造设备借助于所述程序指令来配置成使得建造根据权利要求9-11之一所述的处理器。
18.用于根据权利要求16或17所述的计算机程序产品的提供装置,其中所述提供装置存储和/或提供所述计算机程序产品。
CN201780020422.7A 2016-03-31 2017-03-17 用于用户数据的完整性检查的方法、处理器和设备 Active CN108885668B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
DE102016205289.6 2016-03-31
DE102016205289.6A DE102016205289A1 (de) 2016-03-31 2016-03-31 Verfahren, Prozessor und Gerät zur Integritätsprüfung von Nutzerdaten
PCT/EP2017/056403 WO2017167589A1 (de) 2016-03-31 2017-03-17 Verfahren, prozessor und gerät zur integritätsprüfung von nutzerdaten

Publications (2)

Publication Number Publication Date
CN108885668A true CN108885668A (zh) 2018-11-23
CN108885668B CN108885668B (zh) 2022-11-29

Family

ID=58398158

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780020422.7A Active CN108885668B (zh) 2016-03-31 2017-03-17 用于用户数据的完整性检查的方法、处理器和设备

Country Status (5)

Country Link
US (1) US11568088B2 (zh)
EP (1) EP3437012B1 (zh)
CN (1) CN108885668B (zh)
DE (1) DE102016205289A1 (zh)
WO (1) WO2017167589A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110784323A (zh) * 2019-10-08 2020-02-11 西安极光航空航天科技有限公司 一种基于md5算法的fpga加密方法及装置
CN112219186A (zh) * 2018-09-04 2021-01-12 奥迪股份公司 用于将程序代码包安装到设备中的方法以及设备和机动车

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10740186B2 (en) * 2017-05-15 2020-08-11 The Boeing Company High data integrity processing system
EP3726438A1 (de) 2017-10-23 2020-10-21 Siemens Aktiengesellschaft Verfahren und steuersystem zum steuern und/oder überwachen von geräten
WO2019081434A1 (de) * 2017-10-23 2019-05-02 Siemens Aktiengesellschaft Verfahren und steuersystem zum steuern und/oder überwachen von geräten
EP3669498B1 (de) 2017-10-23 2021-04-07 Siemens Aktiengesellschaft Verfahren und steuersystem zum steuern und/oder überwachen von geräten
CN111602372B (zh) 2018-01-22 2022-12-09 西门子股份公司 用于控制和/或监控设备的方法和控制系统
US11231958B2 (en) 2018-01-22 2022-01-25 Siemens Aktiengesellschaft Method and control system for controlling and/or monitoring devices
EP3763089B1 (de) 2018-04-18 2022-06-01 Siemens Aktiengesellschaft Verfahren und steuersystem zum steuern und/oder überwachen von geräten
EP3591559A1 (de) * 2018-07-03 2020-01-08 Siemens Aktiengesellschaft Steuereinheit und betriebsverfahren für eine integritätsselbstüberwachung geeignet für ein insbesondere in einer automatisierungsumgebung verwendbares gerät
US11620184B2 (en) 2021-08-16 2023-04-04 Nxp B.V. Runtime integrity checking for a memory system

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102214277A (zh) * 2010-04-01 2011-10-12 中国科学院计算技术研究所 创建多核处理器虚拟机系统可信环境的方法及装置
CN103093150A (zh) * 2013-02-18 2013-05-08 中国科学院软件研究所 一种基于可信芯片的动态完整性保护方法
US20140068276A1 (en) * 2012-08-29 2014-03-06 Canon Kabushiki Kaisha Information processing apparatus

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6272631B1 (en) * 1997-06-30 2001-08-07 Microsoft Corporation Protected storage of core data secrets
GB2412763A (en) * 2004-04-02 2005-10-05 Michael Joseph Murphy Score based prediction system for betting on sporting events
US7822993B2 (en) * 2004-08-27 2010-10-26 Microsoft Corporation System and method for using address bits to affect encryption
DE102005025325B4 (de) * 2005-05-31 2007-06-28 Siemens Ag Verfahren zur Übertragung und zur Überprüfung von Synchronisierungs-Nachrichten
US7681050B2 (en) * 2005-12-01 2010-03-16 Telefonaktiebolaget L M Ericsson (Publ) Secure and replay protected memory storage
DE102007038763A1 (de) 2007-08-16 2009-02-19 Siemens Ag Verfahren und Vorrichtung zur Sicherung eines Programms gegen eine Kontrollflussmanipulation und gegen einen fehlerhaften Programmablauf
DE102007040343B4 (de) 2007-08-27 2010-12-30 Siemens Ag Vorrichtung und Verfahren zum Erzeugen einer Zufallsbitfolge
US8775824B2 (en) * 2008-01-02 2014-07-08 Arm Limited Protecting the security of secure data sent from a central processor for processing by a further processing device
DE102008018678B4 (de) 2008-04-14 2011-02-03 Siemens Aktiengesellschaft Vorrichtung und Verfahren zum Erzeugen einer Zufallsbitfolge
US8464011B2 (en) * 2008-10-27 2013-06-11 Advanced Micro Devices, Inc. Method and apparatus for providing secure register access
DE102008061483A1 (de) 2008-12-10 2010-06-24 Siemens Aktiengesellschaft Verfahren und Vorrichtung zum Verarbeiten von Daten
US8555089B2 (en) * 2009-01-08 2013-10-08 Panasonic Corporation Program execution apparatus, control method, control program, and integrated circuit
CN101996445B (zh) * 2009-08-28 2015-05-13 中兴通讯股份有限公司 智能卡远程控制的方法和系统
DE102010017935A1 (de) * 2010-04-22 2011-10-27 Siemens Aktiengesellschaft Vorrichtung und Verfahren zur Stabilisierung eines Strombezuges
DE102011007572A1 (de) 2011-04-18 2012-10-18 Siemens Aktiengesellschaft Verfahren zur Überwachung eines Tamperschutzes sowie Überwachungssystem für ein Feldgerät mit Tamperschutz
US8838982B2 (en) * 2011-09-21 2014-09-16 Visa International Service Association Systems and methods to secure user identification
DE102011088502B3 (de) 2011-12-14 2013-05-08 Siemens Aktiengesellschaft Verfahren und Vorrichtung zur Absicherung von Blockchiffren gegen Template-Attacken
DE102012217743B4 (de) 2012-09-28 2018-10-31 Siemens Ag Überprüfung einer Integrität von Eigenschaftsdaten eines Gerätes durch ein Prüfgerät
DE102013200017A1 (de) 2013-01-02 2014-07-03 Siemens Aktiengesellschaft RFID-Tag und Verfahren zum Betreiben eines RFID-Tags
EP2965254B1 (en) * 2013-03-08 2020-05-13 Robert Bosch GmbH Systems and methods for maintaining integrity and secrecy in untrusted computing platforms

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102214277A (zh) * 2010-04-01 2011-10-12 中国科学院计算技术研究所 创建多核处理器虚拟机系统可信环境的方法及装置
US20140068276A1 (en) * 2012-08-29 2014-03-06 Canon Kabushiki Kaisha Information processing apparatus
CN103093150A (zh) * 2013-02-18 2013-05-08 中国科学院软件研究所 一种基于可信芯片的动态完整性保护方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112219186A (zh) * 2018-09-04 2021-01-12 奥迪股份公司 用于将程序代码包安装到设备中的方法以及设备和机动车
CN112219186B (zh) * 2018-09-04 2021-11-19 奥迪股份公司 用于将程序代码包安装到设备中的方法以及设备和机动车
US11880273B2 (en) 2018-09-04 2024-01-23 Audi Ag Method for installing a program code packet onto a device, device, and motor vehicle
CN110784323A (zh) * 2019-10-08 2020-02-11 西安极光航空航天科技有限公司 一种基于md5算法的fpga加密方法及装置

Also Published As

Publication number Publication date
WO2017167589A1 (de) 2017-10-05
US11568088B2 (en) 2023-01-31
EP3437012B1 (de) 2022-08-24
EP3437012A1 (de) 2019-02-06
DE102016205289A1 (de) 2017-10-05
US20190095647A1 (en) 2019-03-28
CN108885668B (zh) 2022-11-29

Similar Documents

Publication Publication Date Title
CN108885668A (zh) 用于用户数据的完整性检查的方法、处理器和设备
CN111095213B (zh) 嵌入式程序的安全引导方法、装置、设备及存储介质
EP3462353B1 (en) Network interface device and method
CN106687980B (zh) 管理程序和虚拟机保护
Buhren et al. One glitch to rule them all: Fault injection attacks against amd's secure encrypted virtualization
US11132468B2 (en) Security processing unit of PLC and bus arbitration method thereof
CN108781210A (zh) 具有可信执行环境的移动设备
ES2773950T3 (es) Sistema informático asegurado con autenticación asíncrona
CN110325995A (zh) 安全的工业控制平台
US9208355B1 (en) Apparatus, system and method for providing cryptographic key information with physically unclonable function circuitry
US20110289294A1 (en) Information processing apparatus
CN105094082B (zh) 用于执行在控制设备之间的通信的方法
CN101983375A (zh) 将密码模块绑定到平台
CN102637250A (zh) 用于验证处理系统部件的方法和装置
CN105892348B (zh) 用于运行控制设备的方法
KR20090095843A (ko) 보안 기능을 갖는 프로세서 장치
CN109086578A (zh) 一种软件授权使用的方法、设备及存储介质
CN110401538A (zh) 数据加密方法、系统以及终端
CN107534551A (zh) 加密数据
CN107798233A (zh) 分级信任链的未来约束
CN103348355A (zh) 用于管理安全状态转换的方法和设备
EP3338214B1 (en) Secure computation environment
US10713392B2 (en) Network interface device and method
KR101656092B1 (ko) 비동기적인 인증을 갖는 보안 컴퓨팅 시스템
CN110932853A (zh) 一种基于可信模块的密钥管理装置和密钥管理方法

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
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20190214

Address after: Munich, Germany

Applicant after: Siemens Mobile LLC

Address before: Munich, Germany

Applicant before: Siemens AG

CB02 Change of applicant information
CB02 Change of applicant information

Address after: Munich, Germany

Applicant after: Siemens Transportation Co.,Ltd.

Address before: Munich, Germany

Applicant before: Siemens Mobile LLC

TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20220215

Address after: Munich, Germany

Applicant after: SIEMENS AG

Address before: Munich, Germany

Applicant before: Siemens Transportation Co.,Ltd.

GR01 Patent grant
GR01 Patent grant