CN110717198B - 运行针对设备的通过软件来构建的处理单元的装置和方法 - Google Patents
运行针对设备的通过软件来构建的处理单元的装置和方法 Download PDFInfo
- Publication number
- CN110717198B CN110717198B CN201910629547.0A CN201910629547A CN110717198B CN 110717198 B CN110717198 B CN 110717198B CN 201910629547 A CN201910629547 A CN 201910629547A CN 110717198 B CN110717198 B CN 110717198B
- Authority
- CN
- China
- Prior art keywords
- data
- hardware
- arrangement
- unit
- bit string
- 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.)
- Active
Links
- 238000012545 processing Methods 0.000 title claims abstract description 37
- 238000000034 method Methods 0.000 title claims description 27
- 230000008859 change Effects 0.000 claims abstract description 11
- 230000015654 memory Effects 0.000 claims description 22
- 230000005540 biological transmission Effects 0.000 claims description 8
- 238000003860 storage Methods 0.000 claims description 5
- 230000006870 function Effects 0.000 description 7
- 238000004590 computer program Methods 0.000 description 6
- 230000008901 benefit Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- ZXQYGBMAQZUVMI-GCMPRSNUSA-N gamma-cyhalothrin Chemical compound CC1(C)[C@@H](\C=C(/Cl)C(F)(F)F)[C@H]1C(=O)O[C@H](C#N)C1=CC=CC(OC=2C=CC=CC=2)=C1 ZXQYGBMAQZUVMI-GCMPRSNUSA-N 0.000 description 4
- 238000004519 manufacturing process Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000006399 behavior Effects 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 230000003936 working memory Effects 0.000 description 3
- 230000006378 damage Effects 0.000 description 2
- 230000005670 electromagnetic radiation Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000000704 physical effect Effects 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 230000001550 time effect Effects 0.000 description 2
- 101100264195 Caenorhabditis elegans app-1 gene Proteins 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000007257 malfunction Effects 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 239000004065 semiconductor Substances 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/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/76—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in application-specific integrated circuits [ASIC] or field-programmable devices, e.g. field-programmable gate arrays [FPGA] or programmable logic devices [PLD]
-
- 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
-
- 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/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/72—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
-
- 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/125—Restricting unauthorised execution of programs by manipulating the program code, e.g. source code, compiled code, interpreted code, machine code
-
- 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
- G06F21/54—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 by adding security routines or objects to programs
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
- H04L63/1466—Active attacks involving interception, injection, modification, spoofing of data unit addresses, e.g. hijacking, packet injection or TCP sequence number attacks
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Computing Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
本发明要求保护一种用于运行针对设备、尤其是现场设备(TFD)的通过软件来构建的处理单元(SDS)的装置(TFDC),其中该装置根据预先给定的和/或能预先给定的架构包括至少一个处理器(CPU)和多个硬件单元,该装置具有:安全单元(IOS;MS),所述安全单元设立用于:引起在至少一个数据流的数据位串的布置方面的改变,用来保护所述硬件单元以防操纵,所述至少一个数据流被提供给所述处理单元(SDS)和/或被引导到所述处理单元(SDS)。处理单元是可信的,也就是说受保护以防来自外部的操纵和攻击。数据流优选地在设备上进入。在此以及在下文,“多个”指的是数目为一个或多个。
Description
技术领域
本发明涉及一种用于运行针对设备(Gerät)、尤其是现场设备的通过软件来构建(gestalten)的处理单元的装置(Vorrichtung)和方法。
背景技术
存在利用IT安全机制来保护产品,例如设备(例如控制单元/控制设备、物联网(IoT)设备、嵌入式设备)、设备组件或软件组件以防操纵和/或以防反向工程的需求。例如,已经在网络物理***、自动化***或者生产***、运行技术和其它设施的智能设备中、例如在物联网(IoT)的设备中使用密码学的(kryptographisch)IT安全机制。
集成半导体模块以及尤其是处理器(CPU)是在关键的基础设施中使用的控制设备的基础。一般公知如下问题:硬件CPU可能具有有意的弱点(后门、硬件木马)。此外,硬件实现通常同样无意地具有如软件那样的弱点。
对于CPU的工业应用来说,尤其是CPU的完整性非常重要。由此应该保证:CPU没有如下弱点,在操作运行中,由于该弱点而出现误操作或者破坏(切断开关(Kill Switch))。在此,特别是如下攻击是相关的,所述攻击通过外部数据(例如网络通信)到达CPU并且导致破坏。
在本说明书的范围内,术语“Security(安全)”或“安全性”基本上涉及数据的安全性或保护、保密性和/或完整性及其传输,而且也涉及在访问相对应的数据时的安全性、保密性和/或完整性。在数据传输时或在数据访问时的认证也属于术语“安全性”,如其在本说明书的范围内所使用的那样。在这种情况下,模块可以表现为硬件和/或功能单元,所述硬件和/或功能单元可以软件式地和/或固件式地来设计。例如可以借助于处理器和/或用于存储程序指令的存储单元来实施该功能。
在本说明书中,防操纵超出了术语“Security(安全)”。在这种情况下,不仅使用所提到的密码学或安全方法,而且可靠地保证数据传输免遭来自外部的攻击或未授权访问。
工业设备、例如控制设备、现场设备、IoT设备或IoT网关都使用多个密码学密钥,例如用于认证,用于保护所存储的数据和程序代码的完整性,用于检查固件更新并且对固件更新进行解密,而且用于保护项目数据(Projektierungsdaten)和配置数据的完整性以及必要时的机密性。为了传输数据、尤其是控制数据,所提到的设备可以配备数据接口,该数据接口可以有线地来构造和设立,而且该数据接口可以构造和设立用于无线接口,例如WLAN接口、移动无线电(例如UMTS、LTE、5G)接口、蓝牙接口或NFC接口(NFC:近场通信(NearField Communication))。借助于该数据接口,设备可以连接到网络上或与其它设备进行通信。
在这种情况下,能使用其它无线或基于无线电的传输技术(例如Safety overWLAN(WLAN上的安全)、诸如ProfiSafe、WiMax、Cloud Robotics、GSM、UMTS、LTE、5G、用于自主车辆或自动驾驶的车辆到X通信(Vehicle-2-X-Communication)、基于无线电的列车保护(Zugsicherung)ETCS)。也可以通过卫星导航***(GPS、Galileo、Beidou、Glonass)基于无线电地接收位置信息(PVT:位置、速度、时间),所述位置信息被用于设备的控制功能。
可能的是:将CPU实现为在可编程数字模块(FPGA)上的软CPU。然而,在实际中,在此通常同样使用软CPU的设计库,使得在此设计的使用者也不能排除在该设计中包含弱点。
还可能的是模拟器/仿真器,以便在其它计算机***上模拟单个的CPU或者整个计算机***。例如有报道:微软正研究(arbeiten an)针对基于ARM的计算机的x86仿真,以便也能够在没有x86-CPU的情况下执行常见的Windows程序。可设想的是如下模拟器/仿真器,所述模拟器/仿真器部分地自由地可用(例如RISC V Simulator rv8)。还可能的是:在网络浏览器(Web-Browser)中执行CPU模拟器并且在该模拟器中执行Linux***。可设想的是:CPU具有所谓的管理引擎(Management Engines),利用所述管理引擎可以与所安装的操作***无关地来管理计算机***。
在安全环境下,从文献“Martin Süßkraut, Jörg Kaienburg: Safety-CriticalSmart Systems with Software Coded Processing, Smart Systems Integration,Copenhagen, 2015”公知一种软件编码处理(Software Coded Processing)。
存在如下需求:提供可信的处理器,尤其是针对嵌入式工业设备或***提供可信的处理器。
发明内容
本发明的任务是:相对于上面提到的现有技术改善尤其是在工业环境下的方法和装置或设备(Vor- bzw. Einrichtungen)。
该任务通过在独立权利要求中说明的特征来解决。在从属权利要求中示出了本发明的有利的扩展方案。
本发明要求保护一种用于运行针对设备、尤其是现场设备的通过软件来构建的处理单元的装置,其中该装置根据预先给定的和/或能预先给定的架构包括至少一个处理器和多个硬件单元,该装置具有:
安全单元,该安全单元设立用于:引起或进行在至少一个数据流的一个或多个数据位串的布置方面的改变,用来保护硬件单元以防(从外部的)操纵,该至少一个数据流被提供给处理单元和/或被引导(leiten)到该处理单元。
处理单元是可信的,也就是说受保护以防从外部的操纵和攻击。数据流优选地在设备上进入(eingehen am Gerät)。
这里以及在下文,“多个”指的是数目为一个或多个。
本发明遵循如下方案:以经改善的可信度(Vertrauenswürdigkeit)来在标准计算机硬件上执行软件(尤其是工业控制***的控制代码)(Trusted Execution on UntrustedHardware Platforms(在不可信的硬件平台上的可信执行))。
用于外界的输入和输出数据(I/O数据)通过一种单独的数据锁(Datenschleuse)来传输。这具有如下优点:处理器的输入/输出接口不能从外部访问。由此,实现了到通过软件来构建的处理单元和来自通过软件来构建的处理单元的受保护的数据路径,使得从外部阻止了对真正的硬件或硬件单元的访问。数据在数据锁之间优选地“随机化地”(也就是说随机布置地)通过数据路径来传输(scrambled = 置乱,encrypted = 加密),使得局外人不具有如下控制:处理器的硬件接口实际可看到哪些数据。以高度可靠性地确保了外部数据没有到达“物理”(硬件)。由此,防止攻击者可能从外部充分利用在处理器硬件中可能存在的弱点,或者至少使其变得困难。
本发明的一个扩展方案规定:处理单元能够由数据位串的经改变的布置来以如此程度重建数据位串的布置,使得经重建的数据位串的数据位能够在硬件单元的辅助下由处理器来处理。
本发明的一个扩展方案规定:控制单元被设立用于:基于构建该处理单元的软件(虚拟,仿真)并且借助于预先给定的和/或能预先给定的架构,控制经重建的数据位串在处理器与硬件单元之间的引导或传输。
结合本发明,“软件构建”意味着:该处理单元的单元(Einheit)是虚拟的,也就是说通过软件来构建,或能执行的软件代码或程序代码形成一个或多个单元。处理单元的控制单元可以构造为仿真器。在当前情况下,仿真器是一种程序,该程序可以模仿(nachbilden)计算机而且这样能够实现:在具有另一架构的计算机(在当前情况下:软件定义***(software defined System))上使用用于该计算机的、在当前情况下该装置的软件。
“软件定义(software defined)”尤其应被理解为:由单元构成的(= 架构)处理单元的功能性在这些单元上并不是固定地预先给定。功能性到单元的分配通过软件来定义或规定。
这样,类似于在软件固化措施(Software-Härtungsmaßnahmen)中那样可以实现固化的软件定义的或虚拟的CPU。即使所使用的硬件CPU(或***的其它芯片)可能有在硬件中的弱点,也使攻击者对这些弱点的充分利用变得困难。
本发明的一个扩展方案规定:对(例如来自以太网的)数据位串的布置的改变能通过将来自数据位串中的数据位封装成多个(长度相同或长度可变的)(IP)数据包来实现。
本发明的一个扩展方案规定:对数据位串的布置的改变通过对数据包的时间上延迟(能预先给定)的传输来实现。因此,外部接口(输入/输出接口等等)的时间行为(Zeitverhalten)可以随机地(random)来构建。
本发明的一个扩展方案规定:数据包的顺序(根据随机原理)是置乱的(verwürfeln)或被置乱。
本发明的一个扩展方案规定:在自身布置方面被改变的数据位串形成经确保的数据路径。
本发明的一个扩展方案规定:数据位串的布置的改变是通过密码学加密来引起的或通过密码学加密来被引起或能通过密码学加密来引起。
本发明的一个扩展方案规定:控制单元还具有存储单元,该存储单元设立用于存储来自被改变的数据位串中的数据。
本发明的一个扩展方案规定:数据可以(位置上(örtlich)、时间上)随机地被保存(ablegen)在存储单元中(随机化)。
本发明的另一方面是一种用于运行针对设备、尤其是现场设备的通过软件来构建的处理单元的方法,该方法使用根据预先给定的和/或能预先给定的架构而具有至少一个处理器并具有多个硬件单元的装置,该方法具有如下步骤:
- 改变至少一个数据流的一个或多个数据位串的布置,用来保护硬件单元以防(从外部的)操纵,该至少一个数据流被提供给该处理单元和/或被引导到该处理单元。
当首要的保护目标涉及正确的功能性(完整性)时,本发明尤其有利地能被应用。这尤其是在工业应用中、例如在关键的基础设施中是该情况。本发明还实现:以可靠的方式使例如被称作管理引擎的处理器或硬件CPU的附加功能是不能实现的,其中利用该管理引擎可以与真正存在的操作***无关地启动和管理计算机***。这尤其是有利的,因为商业上通用的CPU具有这种附加功能,然而使用者不能使所述附加功能停用或者至少不能使所述附加功能完全停用。
还规定一种计算机程序(产品),该计算机程序(产品)包括程序代码,该程序代码可以由至少一个处理器来执行,而且该程序代码引起:该至少一个处理器实施按照本发明的(运行)方法及其实施方式。计算机程序可以在上文提到的类型的设备或单元上运行或者作为计算机程序产品存储在计算机可读介质上。
附加地,具有用于配置制造设备(Erstellungsgerät)的程序指令的计算机程序(产品)的变型方案例如可以是3D打印机、计算机***或者适合用于制造处理器和/或设备的生产机器。
该方法和计算机程序(产品)可以根据上面提到的装置的扩展方案/实施方式以及该方法和计算机程序(产品)的扩展方案/实施方式来构造。
附图说明
本发明的上面描述的特性、特征和优点以及如何实现其的方式和方法与对实施例的下面的描述相结合地变得更清楚并且更明确地可理解,所述实施例结合附图进一步予以阐述。在此以示意图的方式:
该附图示出了(物理的、外部可访问的)输入/输出接口,例如GPIO端口GPIO、SDCard接口SDC、RS232、USB、Eth,这些输入/输出接口分别通过加扰单元(Scrambling-Einheit)IOS优选地随机化地(随机布置和/或随机保存)经由数据路径(scrambled = 置乱,encrypted = 加密)来获得在“数据锁”与通过软件来构建的处理单元SDS之间的数据,其中该处理单元包括虚拟CPU vCPU、虚拟工作存储器vRAM、虚拟输入/输出接口vIO和虚拟闪速存储器vFl以及所属的操作***OS和必要时安装在其上的应用App1、App2。此外,用于存储器vRAM和vFl的或在存储器vRAM和vFl中的数据可以通过存储器加扰单元MS随机地或置乱地保存。因此,局外人不具有如下控制:硬件CPU CPU的硬件接口实际可看到(zu sehenbekommen)哪些数据。以高度可靠性地确保了外部数据没有到达“物理”(硬件)。加扰单元IOS也可以被称作安全单元。这种加扰单元可以在必要时与存储器加扰单元MS共同构成安全单元。
具体实施方式
加扰单元IOS可以使用随机值作为加扰参数。多个加扰组件IOS可以使用相同的、不同的加扰参数或者分别使用对于IOS组件来说特定的加扰参数。加扰参数可存在于软件定义的CPU SDCPU中,以便撤消该加扰。但是也可能的是:软件定义的CPU SDCPU被设计用于,对被加扰的数据进行处理,而不撤消该加扰。尤其是当在加扰时数据根据加扰参数来转码(例如通过使值与加扰参数相加或相乘)时,这一点是可能的。加扰参数可以通过随机数发生器来确定。加扰参数例如可以在调试(Inbetriebnahme)时、在维护、设备起动(Boot(启动))和/或反复地在运行中被设置或更新。
在加扰(置乱)时,数据值例如可以被加密,其中加扰参数被用作密码学密钥,该密码学密钥可以与加扰参数逐位地(bitweise)进行XOR(异或(Exklusiv Oder))逻辑运算。在此,输入/输出参数的位长度可保持不变。同样可能的是:在加扰的情况下,位长度变得更大,尤其是变成两倍或变成三倍,也就是说数据冗余地编码,例如根据加扰参数算术上编码(arithmetisch codiert)。这可以使由软件定义的CPU SDCPU对被加扰的数据的处理变得简化。
本发明基于:硬件木马通过特殊的条件、如传感器值或输入模式被激活。因而,提出了一种用于CPU或基于CPU的***的架构,其中外部输入数据或传感器数据没有到达真正的硬件,而是只到达了软件定义的CPU模拟。由此,在其下的硬件CPU的可能存在的弱点至少不能从外部(尤其是通过网络接口)被激活或充分利用。在这种情况下,控制***或控制设备TFD(例如现场设备、电子控制单元、有存储器可编程的控制器、工业IoT设备)的程序代码(固件、操作***、应用程序代码)以模拟/仿真来执行,该模拟/仿真在硬件CPU上执行。也就是说,控制单元SDCPU以表现为CPU模拟器或***仿真器的方式来执行控制程序代码,其中该CPU模拟器或***仿真器在控制设备TFD的核心部分TFDC上执行。控制设备TFD的被设计为核心部分的装置TFDC包括:通过软件来构建的处理单元SDS以及根据预先给定的或能预先给定的硬件架构的硬件***或硬件单元HS,该硬件单元至少包括硬件处理器或硬件CPUCPU和其他一个或多个硬件单元,例如工作存储器RAM、闪速存储器FI和输入/输出接口IO以及操作***OS。
因此,在其上执行控制***的关键的程序代码的CPU是一种软件定义的CPU,该软件定义的CPU在附图中与控制单元SDCPU相同或至少可比。这具有如下优点:可以使硬件CPU的弱点更难被程序代码充分利用或者不能被程序代码充分利用。也可能的是:必要时通过模拟器/仿真器的更新(如果必要的话)来更新软件定义的CPU,而不必更换真正的硬件。例如,虚拟X86-CPU可以在RISC V硬件CPU上被仿真(或者反过来,RISC V CPU在硬件X86-CPU上被仿真)。
此外,控制单元SDCPU(例如寄存器、缓存、RAM存储器、闪速存储器)的工作数据还随机地布置,优选地在每次***启动时或在每个SDCPU实例(SDCPU-Instanz)中都是不同的。由此,进一步使得对所使用的硬件CPU的弱点(硬件木马)的充分利用变得困难。攻击者不具有如下控制:硬件CPU实际可看到哪些数据。为此,通过SDCPU仿真器来随机地布置或置乱工作数据,所述工作数据保持(halten)在硬件***中的硬件工作存储器和硬件寄存器中。这些工作数据可以通过数据路径来接收或发送,使得这些被接收到的数据必要时已经在它们的数据位串中(已)被改变和/或这些数据在它们的数据位串中以被改变或随机布置的方式被发送。
对(经由网络接口、例如以太网的)数据位串的布置的改变能通过将来自数据位串中的数据位封装成多个(长度相同或长度可变的)(IP)数据包来实现。在自身布置方面被改变的数据位串可以形成经确保的数据路径。可以通过密码学加密来引起对数据位串的布置的改变。
之前提到的加扰单元IOS确保:从外部接收到的或者向外部发送的数据不是以明文存在于硬件***上或存在于硬件***的接口上(而且因而不可能实际上在那里触发(antriggern)硬件木马)。在控制单元SDCPU的软件层上,在运行时间才使数据变成(bringen in)明文形式。此外,在此,同样将虚拟存储器vRAM、vFI中的存储内容置乱。替代“置乱(Verwürfelung)”、例如与随机值的简单的XOR或者与随机值的相加或相乘,优选地可以使用密码学加密(例如基于AES)。在此,该密码学加密并非首要地用于保护所传输的数据的机密性或完整性,而是用于:使得不能从外部直接访问数据或直接提供特定的明文数据给硬件CPU。尤其是,借此可以防止特定的明文数据通过网络接口到达硬件CPU。
此外,通过对输入/输出接口的加扰/加密,可靠地实现了:可能存在于硬件***(也就是说硬件CPU)中的管理引擎ME不能被寻址(ansprechbar)。
还可能的是:数据锁随机地(random)构建外部接口的时间行为。由此,使得通过时间效应来推断出在控制单元SDCPU中的执行(边信道(Seitenkanal))变得困难。
同样可能的是:该时间行为通过数据锁决定性地、与控制单元SDCPU的实际的执行时长无关地形成。为此,可以在准确的、由数据锁确定的时间点输出发出的应答消息,其中该应答消息被分配给进入的请求消息。从SDCPU获得的应答被中间存储并且在所确定的时间点才向外部输出。在该实施方式情况下也困难化或防止:可能通过时间效应来推断出在控制单元SDCPU中的执行。
在另一实施方式中,输出数据可以随机地被延迟或者只在确定的时间点向外部给出(与输入数据的时间点无关)。
还可以在软件定义的CPU中设置附加的安全措施。由此,可以简单地使用特殊的、一般由相应的硬件芯片生产商专营的安全功能、如Secure Boot(安全启动)。附加的运行时间完整性监控也可以在深的近CPU的层上与真正的IC硬件无关地被实现。换言之,利用这种软件定义的CPU可以灵活地实现如下安全措施,这些安全措施在硬件中不可用或不能实际上实现:
• 与硬件CPU安全功能无关的安全启动:密钥/哈希值被递交(übergeben)给控制单元SDCPU,以便限制在可信的软件上的加载(由此,可以与硬件CPU的HW特定的安全启动无关地实现SDCPU的安全启动)。这一点是有利的,因为在硬件CPU上对安全启动的实际实施常常是耗费的,而且因为为此需要特殊的工具和一般不能访问的安全文档(Sicherheits-Dokumentation)。
• 对实际上当前被执行的程序代码的证明(Attestation)。这能够使局外人检查控制单元SDCPU的运行时间完整性,也就是说检查在控制单元上执行哪个软件。这超出了对在PC(个人计算机(Personal Computer))上的TPM(可信平台模块(Trusted PlatformModule))的证明,因为不是确认已加载了哪个软件,而是确认哪个软件实际上被执行。如果在运行时间被加载的软件***纵,例如通过对软件的弱点的充分利用,则这可以在控制单元SDCPU中被识别出。
• 对软件定义的CPU的内部状态的运行时间监控:这能够实现:也从外部监控软件定义的CPU的内部状态数据(例如寄存器),这在常规的硬件CPU情况下在操作运行中是不可能的(如果有的话,也仅是耗费的)。
• 被执行的程序代码的虚拟“指纹识别(Fingerprinting)”,而实际上不必测量物理效应(耗电分布,电磁辐射)。经此,可以实现完整性监控,该完整性监控分析软件定义的CPU的被模拟的物理副作用(也就是说不是软件定义的CPU的实际的物理耗电分布/电磁辐射,而是由软件定义的CPU模拟的、仅数字地虚拟地存在的关于所模拟的物理效应的信息)。
还可能的是:在不同的硬件CPU上两次或多次执行相同的软件定义的CPU。可以鉴于一致性来检查软件定义的CPU实例的输出数据和/或内部状态数据。
尽管本发明是详细地通过优选的实施例进一步图解说明和描述的,但是本发明并不限于所公开的示例,而且其它变型方案可以由本领域技术人员从中推导出来,而不偏离本发明的保护范围。
上文描述的过程或方法流程的实现方案可以依据如下指令来实现,所述指令存在于计算机可读的存储介质上或者存在于易失性计算机存储器(在下文概括地称为计算机可读的存储器)中。计算机可读的存储器例如是易失性存储器、如缓存、缓冲或RAM,以及非易失性存储器、如可移动磁盘、硬盘,等等。
在此,上面描述的功能或步骤可以以至少一个指令组(Instruktionssatz)的形式存在于计算机可读的存储器上/计算机可读的存储器中。在此,这些功能或步骤没有绑定到(binden an)特定指令组上或绑定到指令组的特定形式上或者绑定到特定存储介质上或者绑定到特定处理器上或者绑定到特定实施方案上,而且可以通过软件、固件、微码。硬件、处理器、集成电路等等以单独运行的方式(im Alleinbetrieb)或以任意的组合的方式来实施。在此,可以使用各种各样的处理策略,例如由单个的处理器的串行处理或者多重处理(Multiprocessing)或多任务处理或并行处理等等。
这些指令可以存储在本地存储器中,但是也可能的是,将这些指令保存在远程***上并且经由网络来访问该远程***。
术语“处理器”、“中央信号处理装置”、“控制单元”或“数据分析装置”如这里所使用的那样包括最广义的处理装置,即例如服务器、通用处理器、图形处理器、数字信号处理器、专用集成电路(ASIC)、可编程逻辑电路(如FPGA)、分立式模拟或数字电路和它们的任意的组合,包括所有本领域技术人员已知的或者在将来研发的其它处理装置在内。在此,处理器可由一个或多个装置或设备或单元组成。如果一个处理器由多个装置组成,那么这些装置可以被设计或配置用于并行地或串行地处理或执行指令。
Claims (21)
1.一种用于运行针对现场设备的通过软件来构建的处理单元的装置,其中所述装置根据预先给定的和/或能预先给定的架构包括至少一个处理器和多个硬件单元,所述装置具有:
安全单元,所述安全单元设立用于:引起在至少一个数据流的数据位串的布置方面的改变,用来保护所述硬件单元以防操纵,所述至少一个数据流被提供给所述处理单元和/或被引导到所述处理单元。
2.根据权利要求1所述的装置,其特征在于,所述数据流被确定用于由所述处理器来处理和/或被确定用于存储在一个或多个硬件单元中。
3.根据权利要求1所述的装置,其特征在于,所述处理单元能够由所述数据位串的经改变的所述布置来以如此程度重建所述数据位串的所述布置,使得经重建的所述数据位串的数据位能够在所述硬件单元的辅助下由所述处理器来处理。
4.根据权利要求3所述的装置,其特征在于,控制单元被设立用于:基于构建所述处理单元的软件并且借助于预先给定的和/或能预先给定的架构,控制所述经重建的数据位串在处理器与所述硬件单元之间的引导。
5.根据权利要求1所述的装置,其特征在于,对所述数据位串的所述布置的所述改变能通过将来自所述数据位串中的数据位封装成多个数据包来实现。
6.根据权利要求5所述的装置,其特征在于,对所述数据位串的所述布置的所述改变通过对所述数据包的时间上延迟的传输来实现。
7.根据权利要求5或6所述的装置,其特征在于,所述数据包的顺序是置乱的。
8.根据权利要求1至6之一所述的装置,其特征在于,在自身布置方面被改变的所述数据位串形成经确保的数据路径。
9.根据权利要求1至6之一所述的装置,其特征在于,所述数据位串的所述布置的所述改变是通过密码学加密来引起的或能通过密码学加密来引起。
10.根据权利要求4所述的装置,其特征在于,所述控制单元还具有存储单元,所述存储单元设立用于存储来自被改变的数据位串中的数据。
11.根据权利要求10所述的装置,其特征在于,所述数据能随机地被保存在所述存储单元中。
12.一种用于运行针对现场设备的通过软件来构建的可信、即保护以防从外部的操纵和攻击的处理单元的方法,所述方法使用根据预先给定的和/或能预先给定的架构而具有至少一个处理器并具有多个硬件单元的装置,所述方法具有如下步骤:
-改变至少一个数据流的一个或多个数据位串的布置,用来保护所述硬件单元以防操纵,所述至少一个数据流被提供给所述处理单元和/或被引导到所述处理单元。
13.根据权利要求12所述的方法,其特征在于,所述数据流被确定用于由所述处理器来处理和/或被确定用于存储在一个或多个硬件单元中。
14.根据权利要求12或13所述的方法,其特征在于,由所述数据位串的经改变的所述布置来以如此程度重建所述数据位串的所述布置,使得经重建的所述数据位串的数据位在所述硬件单元的辅助下由所述处理器来处理。
15.根据权利要求14所述的方法,其特征在于,控制单元被设立用于:基于构建所述处理单元的软件并且借助于预先给定的和/或能预先给定的架构,控制所述经重建的数据位串在处理器与所述硬件单元之间的引导。
16.根据权利要求12或13所述的方法,其特征在于,对所述数据位串的所述布置的所述改变通过将来自所述数据位串中的数据位封装成多个数据包来实现。
17.根据权利要求16所述的方法,其特征在于,对所述数据位串的所述布置的所述改变通过对所述数据包的时间上延迟的传输来实现。
18.根据权利要求16所述的方法,其特征在于,所述数据包的顺序被置乱。
19.根据权利要求12或13所述的方法,其特征在于,在自身布置方面被改变的所述数据位串形成经确保的数据路径。
20.根据权利要求15所述的方法,其特征在于,所述控制单元还具有存储单元,所述存储单元设立用于存储来自被改变的数据位串中的数据。
21.根据权利要求20所述的方法,其特征在于,所述数据随机地被保存在所述存储单元中。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP18183287.4 | 2018-07-13 | ||
EP18183287.4A EP3595256A1 (de) | 2018-07-13 | 2018-07-13 | Vorrichtung und verfahren zum betreiben einer durch software gestalteten verarbeitungseinheit für ein gerät |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110717198A CN110717198A (zh) | 2020-01-21 |
CN110717198B true CN110717198B (zh) | 2023-12-19 |
Family
ID=63047124
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910629547.0A Active CN110717198B (zh) | 2018-07-13 | 2019-07-12 | 运行针对设备的通过软件来构建的处理单元的装置和方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11334689B2 (zh) |
EP (1) | EP3595256A1 (zh) |
CN (1) | CN110717198B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102021203323A1 (de) | 2021-04-01 | 2022-10-06 | Robert Bosch Gesellschaft mit beschränkter Haftung | Verfahren, System und Domäne zum Bereitstellen einer Sicherheits-Ausführungsumgebung für sicherheitsrelevante Anwendungen |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1685297A (zh) * | 2001-11-01 | 2005-10-19 | 英特尔公司 | 在多处理器环境中单方地加载安全操作***的装置和方法 |
EP1635575A1 (en) * | 2004-09-13 | 2006-03-15 | CyberLink Corp. | System and method for embedding scene change information in a video bitstream |
CN1802612A (zh) * | 2003-04-17 | 2006-07-12 | 菲尔德巴士基金 | 用于现场总线体系结构中实现安全仪表***的***和方法 |
CN101256606A (zh) * | 2007-02-19 | 2008-09-03 | Arm有限公司 | 休眠用于处理安全数据的处理装置 |
CN103221961A (zh) * | 2010-10-20 | 2013-07-24 | 超威半导体公司 | 包括用于保护多用户敏感代码和数据的架构的方法和装置 |
CN103368612A (zh) * | 2012-03-21 | 2013-10-23 | 英飞凌科技股份有限公司 | 通过切换至沉默对电子设备通讯进行控制方法和设备 |
CN104778141A (zh) * | 2015-02-10 | 2015-07-15 | 浙江大学 | 一种基于控制***可信架构的tpcm模块及可信检测技术 |
CN105409158A (zh) * | 2013-08-08 | 2016-03-16 | 英特尔公司 | 提供安全密码散列回合功能的指令和逻辑 |
EP3185194A1 (en) * | 2015-12-24 | 2017-06-28 | Gemalto Sa | Method and system for enhancing the security of a transaction |
US9923921B1 (en) * | 2017-01-05 | 2018-03-20 | Votiro Cybersec Ltd. | Disarming malware in digitally signed content |
TW201824062A (zh) * | 2016-12-29 | 2018-07-01 | 華為技術有限公司 | 用於處理安全訊息的設備、單晶片系統和實現安全操作系統切換的方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103238305A (zh) * | 2010-05-28 | 2013-08-07 | 安全第一公司 | 用于安全数据储存的加速器*** |
-
2018
- 2018-07-13 EP EP18183287.4A patent/EP3595256A1/de active Pending
-
2019
- 2019-07-10 US US16/507,507 patent/US11334689B2/en active Active
- 2019-07-12 CN CN201910629547.0A patent/CN110717198B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1685297A (zh) * | 2001-11-01 | 2005-10-19 | 英特尔公司 | 在多处理器环境中单方地加载安全操作***的装置和方法 |
CN1802612A (zh) * | 2003-04-17 | 2006-07-12 | 菲尔德巴士基金 | 用于现场总线体系结构中实现安全仪表***的***和方法 |
EP1635575A1 (en) * | 2004-09-13 | 2006-03-15 | CyberLink Corp. | System and method for embedding scene change information in a video bitstream |
CN101256606A (zh) * | 2007-02-19 | 2008-09-03 | Arm有限公司 | 休眠用于处理安全数据的处理装置 |
CN103221961A (zh) * | 2010-10-20 | 2013-07-24 | 超威半导体公司 | 包括用于保护多用户敏感代码和数据的架构的方法和装置 |
CN103368612A (zh) * | 2012-03-21 | 2013-10-23 | 英飞凌科技股份有限公司 | 通过切换至沉默对电子设备通讯进行控制方法和设备 |
CN105409158A (zh) * | 2013-08-08 | 2016-03-16 | 英特尔公司 | 提供安全密码散列回合功能的指令和逻辑 |
CN104778141A (zh) * | 2015-02-10 | 2015-07-15 | 浙江大学 | 一种基于控制***可信架构的tpcm模块及可信检测技术 |
EP3185194A1 (en) * | 2015-12-24 | 2017-06-28 | Gemalto Sa | Method and system for enhancing the security of a transaction |
TW201824062A (zh) * | 2016-12-29 | 2018-07-01 | 華為技術有限公司 | 用於處理安全訊息的設備、單晶片系統和實現安全操作系統切換的方法 |
US9923921B1 (en) * | 2017-01-05 | 2018-03-20 | Votiro Cybersec Ltd. | Disarming malware in digitally signed content |
Non-Patent Citations (1)
Title |
---|
基于RDIF的机房访客定位与跟随***设计与实现;胡洋;《中国优秀硕士学位论文全文数据库 信息科技辑》(第01期);I138-1997 * |
Also Published As
Publication number | Publication date |
---|---|
EP3595256A1 (de) | 2020-01-15 |
US11334689B2 (en) | 2022-05-17 |
CN110717198A (zh) | 2020-01-21 |
US20200019733A1 (en) | 2020-01-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9806883B2 (en) | Secure provision of a key | |
Waidner et al. | Security in industrie 4.0-challenges and solutions for the fourth industrial revolution | |
Abad et al. | On-chip control flow integrity check for real time embedded systems | |
CN107408072B (zh) | 用于随机化指令的方法、介质和装置 | |
US10305679B2 (en) | Method for implementing a communication between control units | |
CN105892348B (zh) | 用于运行控制设备的方法 | |
CN103518359A (zh) | 实现云计算网络防攻击的方法、设备和网络 | |
JP2019057167A (ja) | コンピュータプログラム、デバイス及び判定方法 | |
Potteiger et al. | Integrated moving target defense and control reconfiguration for securing cyber-physical systems | |
Cotret et al. | Protection of heterogeneous architectures on FPGAs: An approach based on hardware firewalls | |
US20220150056A1 (en) | Method for configuring a security module with at least one derived key | |
Nasahl et al. | Attacking autosar using software and hardware attacks | |
CN110717198B (zh) | 运行针对设备的通过软件来构建的处理单元的装置和方法 | |
CN105162578A (zh) | 应用于通用数字信号处理器的加密电路 | |
EP3511858A1 (en) | Update of mac security settings in autonomous industrial control devices | |
Ayub et al. | How are industrial control systems insecure by design? A deeper insight into real-world programmable logic controllers | |
US10404718B2 (en) | Method and device for transmitting software | |
Gjendemsjø | Creating a weapon of mass disruption: Attacking programmable logic controllers | |
Hristozov et al. | A TOCTOU attack on DICE attestation | |
US12008099B2 (en) | Method for safety responses to security policy violations | |
Spensky et al. | TRUST. IO: protecting physical interfaces on cyber-physical systems | |
Pakmehr et al. | Applying Zero Trust Principles to Distributed Embedded Engine Control Systems | |
CN105095766B (zh) | 用于处理控制设备中的软件功能的方法 | |
Potteiger et al. | Security in mixed time and event triggered cyber-physical systems using moving target defense | |
Vargas et al. | A tiered security analysis of industrial control system devices |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |