DE102021108151A1 - SYSTEM WITH AN ISOLATED COMMUNICATION CHANNEL FOR EXECUTING A PROGRAM CODE - Google Patents

SYSTEM WITH AN ISOLATED COMMUNICATION CHANNEL FOR EXECUTING A PROGRAM CODE Download PDF

Info

Publication number
DE102021108151A1
DE102021108151A1 DE102021108151.3A DE102021108151A DE102021108151A1 DE 102021108151 A1 DE102021108151 A1 DE 102021108151A1 DE 102021108151 A DE102021108151 A DE 102021108151A DE 102021108151 A1 DE102021108151 A1 DE 102021108151A1
Authority
DE
Germany
Prior art keywords
processing unit
communication channel
program code
common communication
unit
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
DE102021108151.3A
Other languages
German (de)
Inventor
Mario Dogan
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.)
Bayerische Motoren Werke AG
Original Assignee
Bayerische Motoren Werke 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 Bayerische Motoren Werke AG filed Critical Bayerische Motoren Werke AG
Priority to DE102021108151.3A priority Critical patent/DE102021108151A1/en
Publication of DE102021108151A1 publication Critical patent/DE102021108151A1/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Hardware Redundancy (AREA)

Abstract

Beispiele betreffen ein System (10) zum Ausführen eines Programmcodes. Das vorgeschlagene System (10) umfasst zumindest eine erste Recheneinheit (11), die zum Ausführen der Software ausgebildet ist, sowie eine zweite Recheneinheit (12). Ferner ist ein gemeinsamer Kommunikationskanal (13) des Systems (10) vorgesehen, wobei in einem ersten Betriebsmodus des Systems (10) die erste Recheneinheit (11) und zweite Recheneinheit (12) mit dem gemeinsamen Kommunikationskanal (13) verbunden sind und in einem zweiten Betriebsmodus die erste Recheneinheit (11) vom gemeinsamen Kommunikationskanal (13) getrennt ist. Ein isolierter Kommunikationskanal (14) ist für einen Datenaustausch zwischen der ersten Recheneinheit (11) und zweiten Recheneinheit (12) ausgebildet. Das System ist ausgebildet, den Programmcode im ersten Betriebsmodus über den gemeinsamen Kommunikationskanal (13) zur ersten Recheneinheit (11) zu übertragen und den Programmcode im zweiten Betriebsmodus auf der ersten Recheneinheit (11) auszuführen.

Figure DE102021108151A1_0000
Examples relate to a system (10) for executing program code. The proposed system (10) comprises at least a first processing unit (11), which is designed to run the software, and a second processing unit (12). Furthermore, a common communication channel (13) of the system (10) is provided, wherein in a first operating mode of the system (10) the first processing unit (11) and second processing unit (12) are connected to the common communication channel (13) and in a second Operating mode, the first processing unit (11) is separated from the common communication channel (13). An isolated communication channel (14) is designed for data exchange between the first processing unit (11) and the second processing unit (12). The system is designed to transmit the program code in the first operating mode via the common communication channel (13) to the first processing unit (11) and to execute the program code in the second operating mode on the first processing unit (11).
Figure DE102021108151A1_0000

Description

Technisches Gebiettechnical field

Ausführungsbeispiele betreffen ein System zum Ausführen eines Programmcodes. Das vorgeschlagene System umfasst eine erste Recheneinheit, die zum Ausführen des Programmcodes ausgebildet ist, eine zweite Recheneinheit und einen gemeinsamen Kommunikationskanal, der die beiden Recheneinheiten mit anderen Komponenten des Systems verbindet. Weitere Aspekte betreffen ein Verfahren zum Betreiben des vorgeschlagenen Systems.Example embodiments relate to a system for executing program code. The proposed system includes a first processing unit that is designed to execute the program code, a second processing unit, and a common communication channel that connects the two processing units to other components of the system. Further aspects relate to a method for operating the proposed system.

Hintergrundbackground

Moderne Fahrzeuge sind immer häufiger mit dem Internet verbunden, was sie anfällig für Hackerangriffe machen kann. In der Regel ist die Internetverbindung mit einer speziellen elektronischen Steuereinheit (ECU) ausgestattet, die dann die Verbindung zu anderen Steuergeräten im Auto bereitstellt. Bei Batterie-Elektrofahrzeugen (BEV) gibt es eine weitere Verbindungsmöglichkeit zum Internet, nämlich über den Stromanschluss, wenn das Auto wieder aufgeladen wird. Das Steuergerät, das für das Laden von Batterien verwendet wird, ist in der Regel für Echtzeit-Kontrollaufgaben optimiert und nicht für eine sichere Verbindung mit dem Internet. Somit kann es als Ziel von Hackerangriffen betroffen sein.Modern vehicles are increasingly connected to the internet, which can make them vulnerable to hacking. Usually, the Internet connection is equipped with a special electronic control unit (ECU), which then provides the connection to other control units in the car. With battery electric vehicles (BEV) there is another way to connect to the internet, namely via the electrical connection when the car is being recharged. The control device used for charging batteries is usually optimized for real-time control tasks and not for a secure connection to the internet. Thus, it can be a target of hacker attacks.

Mikrocontroller, die für strenge Echtzeit-Steuerungsaufgaben und Betriebssysteme (z.B. Autosar OS) optimiert sind, sind nicht unbedingt auch für die Verbindung mit dem Internet und die ständige Prüfung durch Angreifer auf Softwareschwäche optimiert. Diese Art von Mikrocontrollern verfügt z.B. nicht über Rechen- und Speicherressourcen für das Betriebssystem, auf dem sie ausgeführt werden, um erweiterte Optionen zur Eindämmung von Softwareangriffen (z. B. ASLR oder ausführbarer Speicherplatzschutz) zu implementieren. Da diese Mikrocontroller harten Echtzeitcode ausführen, der eine garantierte Ausführungszeit erfordert, ist die Implementierung von Möglichkeiten zum Verhindern von Softwareangriffen in Nicht-Echtzeit meist keine Option.Microcontrollers that are optimized for strict real-time control tasks and operating systems (e.g. Autosar OS) are not necessarily also optimized for connecting to the internet and being constantly checked by attackers for software weaknesses. For example, these types of microcontrollers lack compute and memory resources for the operating system they are running on to implement advanced software attack mitigation options (e.g. ASLR or executable memory protection). Because these microcontrollers execute hard real-time code that requires a guaranteed execution time, implementing ways to prevent software attacks in non-real time is often not an option.

Typische moderne Mikrocontroller verfügen über mehr als eine Verarbeitungseinheit (z.B. Recheneinheit; z.B. CPU-Kern und entsprechender zugehöriger Speicher), die alle mit einem oder mehreren gängigen Systembussen verbunden sind. An diesem gemeinsamen Systembus oder Kommunikationskanal sind auch die I/O-Einheiten (Input-Output) des Mikrocontrollers angeschlossen. Sie ermöglichen es der Software des Mikrocontrollers, mit externen Systemen zu interagieren (z.B. Internetverbindung; z. B. Signalausgang zum Senden von Signalen, um Fahrfunktionen auszuführen, z.B. das Fahrzeug zu beschleunigen).Typical modern microcontrollers have more than one processing unit (e.g. processing unit; e.g. CPU core and appropriate associated memory), all connected to one or more common system buses. The I/O units (input-output) of the microcontroller are also connected to this common system bus or communication channel. They allow the microcontroller's software to interact with external systems (e.g. internet connection; e.g. signal output to send signals to perform driving functions, e.g. accelerate the vehicle).

Mikrocontroller und Betriebssysteme (z. B. Autosar OS), die für harte Echtzeit-Steuerungsaufgaben optimiert sind, sind teils nicht für die Verbindung mit dem Internet optimiert und können daher von dem Versuch, Schadsoftware aufzuspielen, betroffen sein.Microcontrollers and operating systems (e.g. Autosar OS) that are optimized for hard real-time control tasks are sometimes not optimized for connecting to the Internet and can therefore be affected by attempts to install malware.

Zusammenfassungsummary

Es ist eine Aufgabe der vorliegenden Offenbarung, verbesserte Konzepte für eine Architektur von Mikrocontrollern und ein Betreiben dieser bereitzustellen, durch welche eine Gefährdung durch Schadsoftware verringern werden kann.It is an object of the present disclosure to provide improved concepts for an architecture of microcontrollers and an operation of these, through which a threat from malware can be reduced.

Diese Aufgabe wird gelöst gemäß den Gegenständen der unabhängigen Patentansprüche. Weitere vorteilhafte Ausführungsformen werden in den abhängigen Patentansprüchen, der folgenden Beschreibung sowie in Verbindung mit den Figuren beschrieben.This object is solved according to the subject matter of the independent patent claims. Further advantageous embodiments are described in the dependent patent claims, the following description and in connection with the figures.

Entsprechend wird ein System zum Ausführen eines Programmcodes (z.B. einer Software oder ausführbaren Datei) vorgeschlagen. Das System umfasst zumindest eine erste Recheneinheit, die zum Ausführen der Software ausgebildet ist. Das System umfasst ferner zumindest eine zweite Recheneinheit. Es ist ein gemeinsamer Kommunikationskanal des Systems vorgesehen (z.B. System-BUS), wobei in einem ersten Betriebsmodus des Systems die erste und zweite Recheneinheit mit dem gemeinsamen Kommunikationskanal (z.B. unmittelbar; z.B. direkt) verbunden sind und wobei in einem zweiten Betriebsmodus zumindest die erste Recheneinheit vom gemeinsamen Kommunikationskanal getrennt ist. Der zweite Betriebsmodus kann aufgrund der Trennung der ersten Recheneinheit z.B. als Isolationsmodus oder isolierter Betriebsmodus beschrieben werden.Accordingly, a system for executing program code (e.g. software or executable file) is proposed. The system includes at least a first computing unit that is designed to run the software. The system also includes at least one second processing unit. A common communication channel of the system is provided (e.g. system BUS), with the first and second processor being connected to the common communication channel (e.g. directly; e.g. directly) in a first operating mode of the system, and with at least the first processor being connected in a second operating mode disconnected from the common communication channel. Due to the separation of the first processing unit, the second operating mode can be described, for example, as an isolation mode or isolated operating mode.

Ferner ist vorgesehen, einen isolierten Kommunikationskanal bereitzustellen, der für einen Datenaustausch zwischen der ersten und zweiten Recheneinheit ausgebildet ist. Der isolierte Kommunikationskanal kann z.B. exklusiv die erste und zweite Recheneinheit miteinander verbinden und für einen Datenaustausch exklusiv zwischen erster und zweiter Recheneinheit vorgesehen sein. Mit anderen Worten kann es möglich sein, dass keine weiteren Recheneinheit Daten über den isolierten Kommunikationskanal senden oder empfangen können. Der isolierte Kommunikationskanal kann alternativ aber auch ausgebildet sein, mehr als zwei Recheneinheiten zu verbinden (zum Beispiel können auf diese Weise ausgewählte, z.B. drei oder vier Recheneinheiten des Systems untereinander kommunizieren). Eine grundlegende Idee des isolierten Kommunikationskanals ist es, dass in einem isolierten Betriebsmodus eine jeweils vom gemeinsamen Kommunikationskanal isolierte Recheneinheit nur den Zugriff auf den isolierten Kommunikationskanal hat. So hat z.B. im zweiten Betriebsmodus die erste Recheneinheit, die vom gemeinsamen Kommunikationskanal getrennt ist, nur die Möglichkeit über den isolierten Kommunikationskanal (und auf dem Signalweg über die zweite Recheneinheit) mit dem Rest des Systems zu kommunizieren. Beispielsweise können in einem Isolationsmodus mehrere oder alle mit dem isolierten Kommunikationskanal verbundene Recheneinheiten vom gemeinsamen Kommunikationskanal getrennt werden und somit über den isolierten Kommunikationskanal miteinander kommunizieren.Provision is also made to provide an isolated communication channel, which is designed for data exchange between the first and second computing unit. The isolated communication channel can, for example, exclusively connect the first and second processing unit to one another and can be provided exclusively for data exchange between the first and second processing unit. In other words, it can be possible that no further processing unit can send or receive data via the isolated communication channel. Alternatively, the isolated communication channel can also be designed to connect more than two computing units (e.g. selected ones, e.g. three or four computing units, can be connected in this way units of the system communicate with each other). A fundamental idea of the isolated communication channel is that, in an isolated operating mode, a processing unit that is isolated from the common communication channel only has access to the isolated communication channel. For example, in the second operating mode, the first processing unit, which is separated from the common communication channel, can only communicate with the rest of the system via the isolated communication channel (and on the signal path via the second processing unit). For example, in an isolation mode, several or all processing units connected to the isolated communication channel can be separated from the common communication channel and thus communicate with one another via the isolated communication channel.

Der isolierte Betriebsmodus ist somit z.B. nicht für das ganze System spezifisch, sondern für jede Recheneinheit, die mit dem isolierten Kommunikationskanal Verbindung hat. Das heißt z.B. beide Recheneinheiten (z.B. erste und zweite Recheneinheit oder auch mehrere über den isolierten Kommunikationskanal verbundene Recheneinheiten) könnten sich in den isolierten Betriebsmodus schalten, falls das sinnvoll oder erwünscht ist - somit könnten diese beiden (oder mehreren) Recheneinheiten untereinander kommunizieren, jedoch nicht mit dem Rest des Systems kommunizieren, da die Verbindung beider (oder mehrerer) Recheneinheiten zum gemeinsamen Kommunikationskanal getrennt ist (z.B. kann dies als dritter Betriebsmodus bezeichnet werden).The isolated operating mode is therefore not specific to the entire system, for example, but to each processing unit that is connected to the isolated communication channel. This means, for example, both processing units (e.g. first and second processing unit or also several processing units connected via the isolated communication channel) could switch to the isolated operating mode if this makes sense or is desired - this means that these two (or more) processing units could communicate with each other, but not communicate with the rest of the system, since the connection of both (or more) computing units to the common communication channel is separated (e.g. this can be called third mode of operation).

Das System ist ausgebildet, den Programmcode (z.B. Software, z.B. auszuführende Datei; z.B. Computerprogramm oder App) über den gemeinsamen Kommunikationskanal zur ersten Recheneinheit zu übertragen und den Programmcode im zweiten Betriebsmodus auf der ersten Recheneinheit auszuführen. Zum Beispiel kann der Programmcode im ersten Betriebsmodus auf einem direkten Übertragungsweg von dem gemeinsamen Kommunikationskanal auf die erste Recheneinheit übertragen werden. Alternativ kann der Programmcode auch erst im zweiten Betriebsmodus auf einem indirekten Übertragungsweg über den gemeinsamen Kommunikationskanal, die zweite Recheneinheit und den isolierten Kommunikationskanal auf die erste Recheneinheit übertragen werden.The system is designed to transmit the program code (e.g. software, e.g. file to be executed; e.g. computer program or app) via the common communication channel to the first processing unit and to execute the program code in the second operating mode on the first processing unit. For example, in the first operating mode, the program code can be transmitted to the first processing unit on a direct transmission path from the common communication channel. Alternatively, the program code can also only be transmitted to the first processing unit in the second operating mode on an indirect transmission path via the common communication channel, the second processing unit and the isolated communication channel.

Das Bereitstellen des ersten und zweiten Betriebsmodus kann den Vorteil haben, steuern zu können, ob ein direkter Zugriff der ersten Recheneinheit auf den gemeinsamen Kommunikationskanal besteht oder nicht. Zum Beispiel kann vertrauenswürdiger Programmcode im ersten oder zweiten Betriebsmodus ausgeführt werden, da mit keiner Beschädigung des Systems durch die ausgeführte Software zu rechnen ist, wenn diese direkt auf den gemeinsamen Kommunikationskanal (z.B. zentraler Datenübertragungsweg des Systems) zugreifen kann. Dagegen kann unbekannter, potentiell schädlicher Programmcode (z.B. potentielle Schadsoftware) im zweiten Betriebsmodus ausgeführt werden (z.B. Isolationsmodus; z.B. Sicherheitsmodus), um zu vermeiden, dass die unbekannte Software direkten Zugriff auf den gemeinsamen Kommunikationskanal hat. Dagegen kann über den isolierten Kommunikationskanal trotzdem eine Verbindung der ersten Recheneinheit zum Rest des Systems auch im zweiten Betriebsmodus ermöglicht werden, sodass z.B. überwacht durch die zweite Recheneinheit Daten auch von der ersten Recheneinheit an den Rest des Systems (z.B. I/O Anschlüsse des Systems) übertragen werden können. Die Überwachung von einer Übertragung von Steuer- oder Ergebnisdaten des auf der ersten Recheneinheit ausgeführten Programms (z.B. Ausgabedaten des ausgeführten Programmcodes) hinsichtlich potentieller negativer Auswirkungen auf das System (z.B. Schadprogramm) kann einfacher sein, als die entsprechende Überwachung des Programmcodes selbst, der auf der ersten Recheneinheit ausgeführt wird.The provision of the first and second operating mode can have the advantage of being able to control whether or not the first processing unit has direct access to the common communication channel. For example, trustworthy program code can be executed in the first or second operating mode, since no damage to the system by the executed software is to be expected if it can directly access the common communication channel (e.g. central data transmission path of the system). On the other hand, unknown, potentially harmful program code (e.g. potential malware) can be executed in the second operating mode (e.g. isolation mode; e.g. security mode) in order to prevent the unknown software from having direct access to the common communication channel. On the other hand, the isolated communication channel can still be used to connect the first processing unit to the rest of the system, even in the second operating mode, so that e.g. the second processing unit also monitors data from the first processing unit to the rest of the system (e.g. I/O connections of the system). can be transferred. The monitoring of a transmission of control or result data of the program executed on the first processing unit (e.g. output data of the executed program code) with regard to potential negative effects on the system (e.g. malware) can be easier than the corresponding monitoring of the program code itself, which is on the first processing unit is executed.

Gemäß einem Beispiel ist vorgesehen, dass der isolierte Kommunikationskanal eine von der ersten Recheneinheit und von der zweiten Recheneinheit gemeinsam genutzte Speichereinheit umfasst. So kann z.B. die erste Recheneinheit Daten auf den gemeinsamen Speicher schreiben, die von der zweiten Recheneinheit ausgelesen werden können und umgekehrt. Der isolierte Kommunikationskanal könnte auch ein anderes, getrenntes BUS-System sein, das keinen Zugriff auf sicherheitskritische Funktionalität des Systems hat (z.B. keinen Zugriff auf den gemeinsamen Kommunikationskanal). Auf diese Weise ist es möglich, Daten von der ersten Recheneinheit risikoarm für das Gesamtsystem zur zweiten Recheneinheit zu übermitteln. An der zweiten Recheneinheit kann dann entschieden werden (z.B. mittels Überwachungssoftware), ob die von der ersten Recheneinheit empfangenen Daten unkritisch sind oder ein Risiko darstellen und je nach Ergebnis können die Daten z.B. an den gemeinsamen Kommunikationskanal weitergeleitet oder blockiert werden.According to one example, it is provided that the isolated communication channel comprises a memory unit shared by the first processing unit and by the second processing unit. For example, the first processing unit can write data to the shared memory, which can be read by the second processing unit and vice versa. The isolated communication channel could also be another, separate BUS system that does not have access to safety-critical functionality of the system (e.g. no access to the common communication channel). In this way it is possible to transmit data from the first processing unit to the second processing unit with little risk for the overall system. A decision can then be made at the second processing unit (e.g. using monitoring software) as to whether the data received from the first processing unit are uncritical or pose a risk and depending on the result the data can be forwarded to the common communication channel or blocked, for example.

Gemäß einem Beispiel ist vorgesehen, dass die erste und zweite Recheneinheit innerhalb eines gemeinsamen Mikrocontrollers ausgebildet sind. Dadurch kann sich der Vorteil ergeben, dass einzelne Recheneinheiten des Mikrocontrollers für unbekannten Programmcode genutzt werden können und gleichzeitig mit niedrigem Risiko hinsichtlich potentieller Schadsoftware auf anderen Recheneinheiten desselben Mikrocontrollers z.B. funktionskritische (z.B. sicherheitsrelevante) Funktionen ausgeführt werden können. Das Verbinden sicherheitskritischer Funktionen und unbekanntem Programmcode in einem Mikrocontroller kann durch den vorgeschlagenen isolierten Kommunikationskanal risikoarm mit geringerem Aufwand ermöglicht werden.According to one example, it is provided that the first and second arithmetic unit are formed within a common microcontroller. This can result in the advantage that individual arithmetic units of the microcontroller can be used for unknown program code and at the same time, with a low risk of potential malware on other arithmetic units of the same microcontroller, for example function-critical (eg safety-related) functions can be led. The proposed isolated communication channel can be used to connect safety-critical functions and unknown program code in a microcontroller with little risk and effort.

Gemäß einem alterativen Beispiel ist vorgesehen, dass die erste Recheneinheit in einem ersten Steuergerät ausgebildet ist und die zweite Recheneinheit in einem zweiten Steuergerät ausgebildet ist. Auf diese Weise können verschiedene Komponenten zu einem gemeinsamen System kombiniert werden, wobei ein geringes Risiko hinsichtlich Schadsoftware für andere Komponenten des Systems bei verhältnismäßig geringem Aufwand (zum Beispiel reduzierter Überwachungsaufwand) möglich sein kann.According to an alternative example, it is provided that the first arithmetic unit is formed in a first control unit and the second arithmetic unit is formed in a second control unit. In this way, different components can be combined to form a common system, with a low risk of malware for other components of the system being possible with relatively little effort (e.g. reduced monitoring effort).

Gemäß einem Beispiel ist vorgesehen, dass der Programmcode ein nicht vom System zertifizierter Programmcode ist. Es ist für die Auswirkung auf das Gesamtsystem nicht unbedingt erforderlich, dass der Programmcode, der auf der ersten Recheneinheit ausgeführt werden kann, z.B. hinsichtlich sicherheitskonformer Ausführung oder Ausführung ohne Schadsoftware (z.B. virenfrei) geprüft ist, da durch den Isolationsmodus der Rest des Systems auch beim Ausführen einer Schadsoftware unbeeinflusst bleiben kann (z.B. kann eine Überwachung der über den isolierten Kommunikationskanal ausgetauschten Daten durch eine relativ einfache Software der zweiten Recheneinheit erfolgen). Dabei kann es irrelevant sein, was für ein Programmcode auf den Recheneinheiten ausgeführt ist. Beispielsweise kann Programmcode oder Software für sicherheitskritische Anwendungen zertifiziert sein.According to one example, it is provided that the program code is a program code that is not certified by the system. For the effect on the overall system, it is not absolutely necessary for the program code that can be executed on the first computing unit to be checked, e.g. with regard to security-compliant execution or execution without malware (e.g. virus-free), since the rest of the system is also Running malware can remain unaffected (e.g. the data exchanged via the isolated communication channel can be monitored by relatively simple software in the second processing unit). In this case, it can be irrelevant what kind of program code is executed on the computing units. For example, program code or software for safety-critical applications can be certified.

Gemäß einem Beispiel ist vorgesehen, dass die erste Recheneinheit ausgebildet ist, immer dann ein Informationssignal an die zweite Recheneinheit und/oder an den gemeinsamen Kommunikationskanal zu senden, wenn ein Wechsel vom zweiten Betriebsmodus auf den ersten Betriebsmodus erfolgt. Auf diese Weise kann dem Rest des Systems zuverlässig mitgeteilt werden, wenn der Isolationsbetrieb verlassen wird und somit von unbekanntem Programmcode eine potentielle Bedrohung des Gesamtsystems erfolgen kann. Das Auslösen des Informationssignals (z.B. Interruptsignal) kann hardwaremäßig ausgeführt sein, sodass ein Unterdrücken des Informationssignals durch Schadsoftware nicht möglich ist. Wenn das Informationssignal unerwartet empfangen wird, kann das System z.B. in einen eingeschränkten Modus umschalten, beispielsweise können sicherheitsrelevante Funktionen deaktiviert werden, sodass eine unzulässige Steuerung dieser sicherheitsrelevanten Funktionen durch Schadsoftware verhindert werden kann.According to one example, it is provided that the first processing unit is designed to always send an information signal to the second processing unit and/or to the common communication channel when there is a change from the second operating mode to the first operating mode. In this way, the rest of the system can be informed reliably when the isolation mode is exited and a potential threat to the entire system can ensue from unknown program code. The information signal (e.g. interrupt signal) can be triggered by hardware so that it is not possible for malware to suppress the information signal. For example, if the information signal is received unexpectedly, the system may switch to a restricted mode, e.g. security-related functions may be disabled so that unauthorized control of these security-related functions by malware may be prevented.

Gemäß einem Beispiel ist vorgesehen, dass zumindest eine weitere Recheneinheit des Systems mit dem gemeinsamen Kommunikationskanal verbunden ist, wobei die weitere Recheneinheit ausgebildet ist, eine sicherheitskritische Funktionalität des Systems auszuführen. Die eine oder weitere sicherheitskritische Funktion kann bei Einsatz des Systems in einem Fahrzeug z.B. eine autonome Fahrfunktion sein, z.B. das automatische Beschleunigen oder ein Lenken des Fahrzeugs.According to one example, it is provided that at least one further processing unit of the system is connected to the common communication channel, with the further processing unit being designed to carry out a safety-critical functionality of the system. When the system is used in a vehicle, one or more safety-critical functions can be, for example, an autonomous driving function, e.g. automatic acceleration or steering of the vehicle.

Gemäß einem Beispiel ist vorgesehen, dass das System ausgebildet ist, den Programmcode von einer Internetverbindung aus über den gemeinsamen Kommunikationskanal zu empfangen. Durch diese Ausgestaltung kann es möglich sein, dass unbekannter Code zum Ausführen auf der ersten Recheneinheit empfangen wird (z.B. Open Source Code). Dies kann den Vorteil haben, eine große Funktionenvielfalt des Systems zu ermöglichen und die Funktionalität des Systems weiter zu entwickeln. Ein ständiges Testen neuen Programmcodes hinsichtlich des Risikos von schädlichem Einfluss auf das System muss nicht erfolgen, da durch den Isolationsbetrieb auch das Ausführen von schädlicher Software keinen unmittelbaren schädlichen Einfluss auf das Gesamtsystem, insbesondere auf sicherheitskritische Funktionen des Gesamtsystems, haben kann.According to one example, it is provided that the system is designed to receive the program code from an Internet connection via the common communication channel. This refinement may make it possible for unknown code to be executed on the first processing unit (e.g. open source code) to be received. This can have the advantage of enabling a large variety of functions of the system and further developing the functionality of the system. Constant testing of new program codes with regard to the risk of a harmful influence on the system does not have to be carried out, since the isolated operation means that the execution of harmful software cannot have any direct harmful influence on the overall system, especially on safety-critical functions of the overall system.

Gemäß einem Beispiel ist vorgesehen, dass die erste Recheneinheit zum Ausführen einer komplexeren Software ausgebildet ist als die zweite Recheneinheit. Zum Beispiel kann die erste Recheneinheit mehr Rechenleistung und/oder mehr Speicherplatz haben als die zweite Recheneinheit. Damit ist das Ausführen komplexen Programmcodes auf der ersten Recheneinheit möglich, wobei die zweite Recheneinheit einfacheren Programmcode ausführen kann, der zum Überprüfen eines möglichen Schadens durch von der ersten Recheneinheit über den isolierten Kommunikationskanal übertragenen Daten genügen kann. Die Recheneinheiten können alternativ die gleichen Kapazitäten haben.According to one example, it is provided that the first arithmetic unit is designed to execute more complex software than the second arithmetic unit. For example, the first processing unit can have more processing power and/or more storage space than the second processing unit. It is thus possible to execute complex program codes on the first processing unit, with the second processing unit being able to run simpler program code which may be sufficient for checking possible damage caused by data transmitted by the first processing unit via the isolated communication channel. Alternatively, the computing units can have the same capacities.

Ein Aspekt der vorliegenden Offenbarung betrifft ein Verfahren zum Betreiben eines Systems gemäß einem zuvor oder nachfolgend beschriebenen System. Das Verfahren umfasst die Schritte: Bereitstellen eines Programmcodes an der ersten Recheneinheit; Trennen einer direkten Verbindung zwischen erster Recheneinheit und dem gemeinsamen Kommunikationskanal, um die erste Recheneinheit vom gemeinsamen Kommunikationskanal zu isolieren; und Ausführen der Software auf der isolierten ersten Recheneinheit. Durch das vorgeschlagene Verfahren kann der Programmcode, z.B. unbekannter oder nicht zertifizierter Programmcode, in einem Isolationsmodus ausgeführt werden, sodass eine potentiell schädliche Auswirkung auf den Rest des Systems verhindert werden kann. Beispielsweise können von der isoliert betriebenen ersten Recheneinheit übertragene Daten von einem Überwachungsprogramm der zweiten Recheneinheit überprüft werden, bevor diese über den gemeinsamen Kommunikationskanal des Systems weiter übertragen werden.One aspect of the present disclosure relates to a method for operating a system according to a system described above or below. The method comprises the steps: providing a program code to the first processing unit; disconnecting a direct connection between the first processing unit and the common communication channel to isolate the first processing unit from the common communication channel; and executing the software on the isolated first computing device. With the proposed method, the program code, e.g. unknown or non-certified program code, can be executed in an isolation mode, so that there is a potentially harmful impact on the rest of the system can be prevented. For example, data transmitted by the first processing unit operated in isolation can be checked by a monitoring program of the second processing unit before they are transmitted further via the common communication channel of the system.

Gemäß einem Beispiel ist vorgesehen, dass das Bereitstellen des Programmcodes ein Empfangen des Programmcodes an der ersten Recheneinheit über den gemeinsamen Kommunikationskanal von einer Internetverbindung aus umfasst, wobei das Trennen der direkten Verbindung erfolgt, nachdem der Programmcode bereitgestellt ist. Gemäß einem alternativen Beispiel ist vorgesehen, dass das Trennen der direkten Verbindung zwischen erster Recheneinheit und dem gemeinsamen Kommunikationskanal vor dem Bereitstellen des Programmcodes erfolgt, wobei der Programmcode über den gemeinsamen Kommunikationskanal, die zweite Recheneinheit und den isolierten Kommunikationskanal an der ersten Recheneinheit bereitgestellt wird. Je nach Ausführung kann somit ermöglicht werden, den Programmcode z.B. schneller oder einfacher auf direktem Weg an die erste Recheneinheit zu übertragen oder aber auch im isolierten Betrieb z.B. neuen Programmcode an die isolierte erste Recheneinheit zu übertragen.According to one example, provision is made for the provision of the program code to include receiving the program code at the first processing unit via the common communication channel from an Internet connection, with the direct connection being disconnected after the program code has been provided. According to an alternative example, it is provided that the direct connection between the first processing unit and the common communication channel is separated before the program code is provided, the program code being provided via the common communication channel, the second processing unit and the isolated communication channel on the first processing unit. Depending on the design, it can thus be made possible to transfer the program code, e.g. faster or more simply, directly to the first processing unit, or also to transfer e.g. new program code to the isolated first processing unit in isolated operation.

Das System kann zum Beispiel folgendermaßen betrieben werden: beispielsweise befindet sich die erste Recheneinheit im isolierten Betriebsmodus und bekommt eine Internetdatei über die zweite Recheneinheit und über den isolierten Kommunikationskanal zugesendet. Die zweite Recheneinheit versucht dabei z.B. nicht, die selbst Internetdatei zu überprüfen, verarbeiten oder zu filtrieren, sondern schickt diese Datei nur an die erste Recheneinheit weiter, da in der Internetdatei potentiell eine schädliche Software liegen könnte, die sich bei Verarbeitung aktivieren könnte. Durch das vorgeschlagene Verfahren dagegen könnte auch schädliche Software keinen Schaden anrichten, weil sie erst auf der isolierten ersten Recheneinheit ausgeführt wird und im Folgenden von der ersten Recheneinheit übertragene Daten von der zweiten Recheneinheit überprüft werden können.For example, the system can be operated as follows: for example, the first processing unit is in the isolated operating mode and is sent an Internet file via the second processing unit and via the isolated communication channel. The second processing unit does not try, for example, to check, process or filter the Internet file itself, but only forwards this file to the first processing unit, since the Internet file could potentially contain malicious software that could be activated during processing. With the proposed method, on the other hand, malicious software could not cause any damage either, because it is first executed on the isolated first processing unit and data transmitted from the first processing unit can then be checked by the second processing unit.

Gemäß einem Beispiel ist vorgesehen, dass an der zweiten Recheneinheit Daten von der ersten Recheneinheit über den isolierten Kommunikationskanal empfangen werden, während die erste Recheneinheit vom gemeinsamen Kommunikationskanal isoliert betrieben wird. Wie bereits erwähnt können diese Daten dann von der zweiten Recheneinheit überprüft werden, etwa ob sie einen potentiellen Schadeinfluss auf das System haben könnten. Wenn dies der Fall ist, werden die Daten nicht an den gemeinsamen Kommunikationskanal weitergeleitet. Wenn die Überprüfung ergibt, dass die Daten sicher sind, können sie an den gemeinsamen Kommunikationskanal übertragen werden, sodass die Funktionalität des Programmcodes der an der ersten Recheneinheit ausgeführt wird bereitgestellt werden kann (z.B. durch Übertragung der vom Programmcode generierten Daten an einen Ausgang des Systems).According to one example, it is provided that data is received at the second processing unit from the first processing unit via the isolated communication channel, while the first processing unit is operated isolated from the common communication channel. As already mentioned, this data can then be checked by the second processing unit, for example whether it could potentially have a damaging effect on the system. If this is the case, the data will not be forwarded to the common communication channel. If the verification shows that the data is secure, it can be transmitted to the common communication channel so that the functionality of the program code that is executed on the first processing unit can be provided (e.g. by transmission of the data generated by the program code to an output of the system) .

Gemäß einem Beispiel ist vorgesehen, dass ein systemeigener Programmcode, der auf der zweiten Recheneinheit ausgeführt wird, weniger komplex ist als der auf der ersten Recheneinheit ausgeführte Programmcode. Ein einfacher Code kann genügen, um vom Programmcode generierte Daten hinsichtlich möglicher Schadenswirkung zu überprüfen. Damit kann der Einfluss von Schadsoftware mit geringem Aufwand verhindert werden. Die zweite Recheneinheit könnte alternativ aber auch als komplexe Software ausgeführt sein. Eine Empfehlung wäre, dass auf der zweiten Recheneinheit eine einfache Software (die mit der ersten Recheneinheit kommuniziert) ausgeführt wird (z.B. erfolgt auf der zweiten Recheneinheit keine Verarbeitung der Internetdatei), aber auch andere Ausführungen sind möglich.According to one example, it is provided that a system-specific program code that is executed on the second processing unit is less complex than the program code that is executed on the first processing unit. A simple code can suffice to check data generated by the program code with regard to possible damage. This means that the influence of malware can be prevented with little effort. Alternatively, however, the second processing unit could also be implemented as complex software. One recommendation would be that simple software (which communicates with the first processing unit) is run on the second processing unit (e.g. the second processing unit does not process the Internet file), but other implementations are also possible.

Beispielsweise ist vorgesehen, dass die zweite Recheneinheit als Proxy verwendet wird, um unberechtigten Zugriff durch die auf der ersten Recheneinheit ausgeführte Software auf den gemeinsamen Kommunikationskanal zu verhindern. Die erste Recheneinheit hat im Isolationsmodus keinen Zugriff auf den gemeinsamen Kommunikationskanal. Das heißt, dass die zweite Recheneinheit keinen Zugriff verhindern muss, vielmehr bietet sie den Zugriff (als Proxy) auf den gemeinsamen Kommunikationskanal an oder verhindert ihn entsprechend, wenn potentiell schädliche Daten detektiert werden. Möglich ist auch, dass die zweite Recheneinheit eine Funktion als Firewall zum gemeinsamen Kommunikationskanal erfüllt.For example, it is provided that the second processing unit is used as a proxy in order to prevent unauthorized access to the common communication channel by the software running on the first processing unit. In isolation mode, the first processing unit has no access to the common communication channel. This means that the second processing unit does not have to prevent access, rather it offers access (as a proxy) to the common communication channel or accordingly prevents it if potentially harmful data is detected. It is also possible that the second processing unit fulfills a function as a firewall for the common communication channel.

Gemäß einem Beispiel ist vorgesehen, dass der empfangene Programmcode ein Open-Source-Programmcode ist. Zwar ist es irrelevant, was für Daten tatsächlich auf der Recheneinheit ausgeführt werden. Jedoch ergibt sich vorteilhafterweise die Möglichkeit mit geringem Risiko jeden Programmcode ausführen zu können (z.B. muss die empfangene Software nicht für sicherheitskritischer Anwendung zertifiziert werden), weil durch die Bereitstellung des isolierten Kommunikationskanal ein direkter Einfluss schädlicher Software auf den Rest des Systems (der z.B. nicht vom gemeinsamen Kommunikationskanal isoliert ist) verhindert werden kann.According to an example it is provided that the received program code is an open source program code. It is irrelevant what kind of data is actually executed on the computing unit. However, there is the advantageous possibility of being able to run any program code with little risk (e.g. the received software does not have to be certified for safety-critical applications), because the provision of the isolated communication channel means that malicious software can have a direct influence on the rest of the system (which, for example, is not common communication channel is isolated) can be prevented.

Figurenlistecharacter list

Ausführungsbeispiele werden nachfolgend bezugnehmend auf die beiliegenden Figuren näher erläutert. Es zeigen:

  • 1 ein schematisches Beispiel eines Systems zum Ausführen eines Programmcodes;
  • 2 ein Flussdiagramm eines Verfahrens zum Betreiben eines vorgeschlagenen Systems;
  • 3 ein schematisches Beispiel eines Mikrocontrollers mit einer Recheneinheit und einem isolierten Kommunikationskanal; und
  • 4 das Beispiel des Mikrocontrollers mit der Recheneinheit, die in einem Isolationsmodus betrieben wird.
Exemplary embodiments are explained in more detail below with reference to the enclosed figures. Show it:
  • 1 a schematic example of a system for executing a program code;
  • 2 a flowchart of a method for operating a proposed system;
  • 3 a schematic example of a microcontroller with a computing unit and an isolated communication channel; and
  • 4 the example of the microcontroller with the arithmetic unit operating in an isolation mode.

Beschreibungdescription

Verschiedene Ausführungsbeispiele werden nun ausführlicher unter Bezugnahme auf die beiliegenden Zeichnungen beschrieben, in denen einige Ausführungsbeispiele dargestellt sind. In den Figuren können die Dickenabmessungen von Linien, Schichten und/oder Regionen um der Deutlichkeit Willen übertrieben dargestellt sein. Bei der nachfolgenden Beschreibung der beigefügten Figuren, die lediglich einige exemplarische Ausführungsbeispiele zeigen, können gleiche Bezugszeichen gleiche oder vergleichbare Komponenten bezeichnen.Various embodiments will now be described in more detail with reference to the accompanying drawings, in which some embodiments are illustrated. In the figures, the thickness dimensions of lines, layers, and/or regions may be exaggerated for clarity. In the following description of the accompanying figures, which only show a few exemplary embodiments, the same reference symbols can designate the same or comparable components.

Ein Element, das als mit einem anderen Element „verbunden“ oder „verkoppelt“ bezeichnet wird, mit dem anderen Element direkt verbunden oder verkoppelt sein kann oder dass dazwischenliegende Elemente vorhanden sein können. Solange nichts anderes definiert ist, haben sämtliche hierin verwendeten Begriffe (einschließlich von technischen und wissenschaftlichen Begriffen) die gleiche Bedeutung, die ihnen ein Durchschnittsfachmann auf dem Gebiet, zu dem die Ausführungsbeispiele gehören, beimisst.An element that is referred to as being “connected” or “coupled” to another element, may be directly connected or coupled to the other element, or that there may be intervening elements. Unless otherwise defined, all terms used herein (including technical and scientific terms) have the same meanings as those of ordinary skill in the art to which the exemplary embodiments pertain.

1 zeigt ein System 10 zum Ausführen eines Programmcodes (z.B. einer Software, einer ausführbaren Datei oder dergleichen). Das System 10 umfasst eine erste Recheneinheit 11, die zum Ausführen der Software ausgebildet ist und ferner zumindest eine zweite Recheneinheit 12. Es können auch weitere Recheneinheiten vorhanden sein (s. auch 3 und 4). 1 FIG. 1 shows a system 10 for executing program code (eg, software, an executable file, or the like). The system 10 includes a first processing unit 11, which is designed to run the software, and also at least one second processing unit 12. There may also be other processing units (see also 3 and 4 ).

Das System 10 weist einen gemeinsamen Kommunikationskanal 13 auf, wobei in einem ersten Betriebsmodus des Systems 10 die erste und zweite Recheneinheit 11, 12 mit dem gemeinsamen Kommunikationskanal 13 verbunden sind und wobei in einem zweiten Betriebsmodus die erste Recheneinheit 11 vom gemeinsamen Kommunikationskanal 13 getrennt ist. Es ist möglich, dass im zweiten Betriebsmodus auch die zweite Recheneinheit 12 vom gemeinsamen Kommunikationskanal 13 getrennt ist. Der gemeinsamen Kommunikationskanal 13 kann die erste und zweite Recheneinheit 11, 12 mit weiteren Komponenten verbinden, z.B. Ein- und Ausgängen des Systems (z.B. zur Anbindung an ein Netzwerk oder für eine Internetanbindung) sowie weiteren Recheneinheiten des Systems 10.The system 10 has a common communication channel 13, with the first and second processing unit 11, 12 being connected to the common communication channel 13 in a first operating mode of the system 10, and the first processing unit 11 being separated from the common communication channel 13 in a second operating mode. It is possible that the second processing unit 12 is also separated from the common communication channel 13 in the second operating mode. The common communication channel 13 can connect the first and second processor 11, 12 to other components, e.g. inputs and outputs of the system (e.g. for connection to a network or for an Internet connection) and other processors of the system 10.

Das System 10 weist zusätzlich einen isolierten Kommunikationskanal 14 auf, der für einen Datenaustausch zwischen der ersten und zweiten Recheneinheit 11, 12 ausgebildet ist. Das System 10 ist ausgebildet, den Programmcode, z.B. die Software oder auszuführende Datei, (z.B. im ersten Betriebsmodus) über den gemeinsamen Kommunikationskanal zur ersten Recheneinheit zu übertragen und den Programmcode im zweiten Betriebsmodus auf der ersten Recheneinheit auszuführen. Die Übertragung des Programmcodes kann direkt vom gemeinsamen Kommunikationskanal 13 an die erste Recheneinheit 11 erfolgen (z.B. im ersten Betriebsmodus) oder alternativ über einen indirekten Übertragungsweg über die zweite Recheneinheit 12 und den isolierten Kommunikationskanal 14 an der ersten Recheneinheit 11 bereitgestellt werden (z.B. wenn diese im zweiten Betriebsmodus vom gemeinsamen Kommunikationskanal 13 isoliert betrieben wird).The system 10 also has an isolated communication channel 14 which is designed for data exchange between the first and second processing units 11, 12. The system 10 is designed to transmit the program code, e.g. the software or file to be executed (e.g. in the first operating mode) via the common communication channel to the first processing unit and to execute the program code in the second operating mode on the first processing unit. The program code can be transmitted directly from the common communication channel 13 to the first processing unit 11 (e.g. in the first operating mode) or alternatively via an indirect transmission path via the second processing unit 12 and the isolated communication channel 14 to the first processing unit 11 (e.g. if this is second mode of operation is operated isolated from the common communication channel 13).

Ein Vorteil des Systems 10 kann sein, dass ein Ausführen des Programmcodes auf der ersten Recheneinheit 11 isoliert vom gemeinsamen Kommunikationskanal 13 und somit isoliert vom restlichen Teil des Systems 10 erfolgen kann. Dadurch kann z.B. ein möglicher Einfluss potentieller Schadprogramme, die im Programmcode enthalten sein können, auf das System 10 reduziert werden. Dennoch kann ein Austausch zwischen der ersten Recheneinheit 11 und dem restlichen System 10 über den isolierten Kommunikationskanal 14 und die zweite Recheneinheit 12 erfolgen. Somit können z.B. Dateien, die vom Programmcode erstellt wurden (z.B. Ergebnisse des ausgeführten Programmcodes), dem restlichen Teil des Systems (z.B. einem Ausgangsport des Systems) verfügbar gemacht werden, jedoch z.B. erst dann, wenn eine Software auf der zweiten Recheneinheit 12 diese Dateien geprüft hat und sichergestellt ist, dass sie keine Schadprogramme oder -funktionen enthalten. Mit anderen Worten kann ein sicherer Datenaustausch (z.B. von Anfragen an den auszuführenden Programmcode und/oder Ergebnissen des ausgeführten Programmcodes) ermöglicht werden, wobei das Ausführen selbst in isolierter Umgebung stattfinden kann und somit potentielle Risiken durch den Programmcode verringert werden können.An advantage of the system 10 can be that the program code can be executed on the first processing unit 11 isolated from the common communication channel 13 and thus isolated from the rest of the system 10 . As a result, for example, a possible influence of potential malicious programs that may be contained in the program code on the system 10 can be reduced. Nevertheless, an exchange can take place between the first processing unit 11 and the rest of the system 10 via the isolated communication channel 14 and the second processing unit 12 . Thus, for example, files created by the program code (e.g. results of the executed program code) can be made available to the remaining part of the system (e.g. an output port of the system), but only when software on the second processing unit 12 checks these files and it is ensured that they do not contain any malicious programs or functions. In other words, a secure exchange of data (e.g. of queries to the program code to be executed and/or results of the executed program code) can be made possible, with the execution itself being able to take place in an isolated environment and thus potential risks from the program code being able to be reduced.

Ein mögliches Verfahren zum Betreiben des Systems 10 ist auch in Verbindung mit der folgenden 2 näher beschrieben.One possible method of operating the system 10 is also in connection with the following 2 described in more detail.

2 zeigt ein Flussdiagramm eines Verfahrens 20 zum Betreiben des Systems 10 wie es z.B. in 1 offenbart ist. Das Verfahren 20 umfasst die Schritte:

  • - Bereitstellen 21 eines Programmcodes an der ersten Recheneinheit;
  • - Trennen 22 einer direkten Verbindung zwischen erster Recheneinheit und dem gemeinsamen Kommunikationskanal, um die erste Recheneinheit vom gemeinsamen Kommunikationskanal zu isolieren; und
  • - Ausführen 23 des Programmcodes auf der isolierten ersten Recheneinheit.
2 shows a flow chart of a method 20 for operating the system 10 as, for example, in FIG 1 is revealed. The method 20 includes the steps:
  • - Providing 21 a program code at the first processing unit;
  • - Separating 22 a direct connection between the first processing unit and the common communication channel in order to isolate the first processing unit from the common communication channel; and
  • - Execution 23 of the program code on the isolated first processing unit.

Je nach Implementierung des Verfahrens 20 kann dabei der Schritt des Bereitstellens 21 vor oder nach dem Trennen 22 der direkten Verbindung zwischen erster Recheneinheit und dem gemeinsamen Kommunikationskanal erfolgen. Dies kann abhängig davon erfolgen, ob der Programmcodes über den gemeinsamen Kommunikationskanal direkt an die erste Recheneinheit übertragen werden soll oder ob ein indirekter Übertragungsweg über den gemeinsamen Kommunikationskanal, die zweite Recheneinheit und den isolierten Kommunikationskanal erfolgen soll.Depending on the implementation of the method 20, the step of providing 21 can take place before or after the disconnection 22 of the direct connection between the first processing unit and the common communication channel. This can take place depending on whether the program code is to be transmitted directly to the first processing unit via the common communication channel or whether an indirect transmission path is to take place via the common communication channel, the second processing unit and the isolated communication channel.

Weitere Einzelheiten und Aspekte sind in Verbindung mit den vor- oder nachstehend beschriebenen Ausführungsbeispielen erwähnt. Das in 2 gezeigte Ausführungsbeispiel kann ein oder mehrere optionale zusätzliche Merkmale aufweisen, die einem oder mehreren Aspekten entsprechen, die in Verbindung mit dem vorgeschlagenen Konzept oder mit einem oder mehreren vorstehend (z.B. 1) oder nachstehend (z.B. 3-4) beschriebenen Ausführungsbeispielen erwähnt sind.Further details and aspects are mentioned in connection with the embodiments described above or below. This in 2 The embodiment shown may have one or more optional additional features corresponding to one or more aspects mentioned in connection with the proposed concept or with one or more above (e.g 1 ) or below (e.g 3-4 ) described embodiments are mentioned.

3 zeigt ein schematisches Beispiel eines Mikrocontrollers 30 mit erster und zweiter Recheneinheit 31, 32, welche an einen gemeinsamen Kommunikationskanal 33 angeschlossen sind. Am gemeinsamen Kommunikationskanal 33 sind weitere Recheneinheiten 35, 36 angeschlossen. Auf den weiteren Recheneinheit 35, 36 können z.B. kritische oder sicherheitsrelevante Funktionen ausgeführt werden (z.B. Funktionen autonomen Fahrens). Die erste und zweite Recheneinheit 31, 32 sind neben der Verbindung über den gemeinsamen Kommunikationskanal 33 ferner mittels einem isolierten Kommunikationskanal 34, z.B. einer gemeinsam genutzten Speichereinheit 34, miteinander verbunden. Der isolierte Kommunikationskanal 34 ermöglicht einen Datenaustausch zwischen zweiter Recheneinheit 32 und erster Recheneinheit 31 auch dann, wenn die erste Recheneinheit in einem Isolationsmodus betrieben wird (s. dazu auch folgende 4). 3 shows a schematic example of a microcontroller 30 with a first and second processing unit 31, 32, which are connected to a common communication channel 33. Additional processing units 35 , 36 are connected to the common communication channel 33 . Critical or safety-related functions, for example, can be executed on the further processing unit 35, 36 (for example autonomous driving functions). In addition to the connection via the common communication channel 33, the first and second processing units 31, 32 are also connected to one another by means of an isolated communication channel 34, for example a shared memory unit 34. The isolated communication channel 34 enables data to be exchanged between the second processing unit 32 and the first processing unit 31 even when the first processing unit is operated in an isolated mode (see also the following 4 ).

Weitere Einzelheiten und Aspekte sind in Verbindung mit den vor- oder nachstehend beschriebenen Ausführungsbeispielen erwähnt. Das in 3 gezeigte Ausführungsbeispiel kann ein oder mehrere optionale zusätzliche Merkmale aufweisen, die einem oder mehreren Aspekten entsprechen, die in Verbindung mit dem vorgeschlagenen Konzept oder mit einem oder mehreren vorstehend (z.B. 1-2) oder nachstehend (z.B. 4) beschriebenen Ausführungsbeispielen erwähnt sind.Further details and aspects are mentioned in connection with the embodiments described above or below. This in 3 The embodiment shown may have one or more optional additional features corresponding to one or more aspects mentioned in connection with the proposed concept or with one or more above (e.g 1-2 ) or below (e.g 4 ) described embodiments are mentioned.

4 zeigt das Beispiel des Mikrocontrollers 30 aus 3, der in einem Isolationsmodus betrieben wird. Hierfür ist eine direkte Verbindung zwischen erster Recheneinheit 31 und gemeinsamen Kommunikationskanal 33 getrennt, z.B. ist entsprechend eine Verbindung 37 getrennt (z.B. ein Schalter 37 geöffnet; z.B. ein Transistor 37 nicht leitend, sodass keine Daten direkt von der ersten Recheneinheit 31 zum gemeinsamen Kommunikationskanal 33 übertragen werden können). Die Trennung der Verbindung 37 kann physikalisch erfolgen, um eine Isolation der ersten Recheneinheit 31 vom gemeinsamen Kommunikationskanal 33 sicherer zu machen. 4 12 shows the example of the microcontroller 30. FIG 3 , operating in an isolation mode. For this purpose, a direct connection between the first processing unit 31 and the common communication channel 33 is disconnected, e.g. a connection 37 is disconnected accordingly (e.g. a switch 37 is open; e.g. a transistor 37 is not conductive, so that no data is transmitted directly from the first processing unit 31 to the common communication channel 33 can become). The connection 37 can be separated physically in order to make isolation of the first processing unit 31 from the common communication channel 33 more secure.

Ferner sind schematisch Informationssignale 38 gezeigt, die von der ersten Recheneinheit 31 zur zweiten Recheneinheit 32 und/oder zum gemeinsamen Kommunikationskanal 33 übertragen werden können. Die Informationssignale 38 werden immer dann gesendet, wenn die Verbindung 37 von einem getrennten Zustand (Isolationsmodus) in einen verbundenen Zustand geändert wird. Auf diese Weise kann den anderen Komponenten des Systems 10 (z.B. weiteren Recheneinheiten 35, 36) mitgeteilt werden, wenn ein Wechsel von einem (sicheren) Isolationsmodus in einen allgemeinen Modus stattfindet, in dem Daten von der ersten Recheneinheit 31 direkt auf den gemeinsamen Kommunikationskanal 33 übertragen werden können.Furthermore, information signals 38 are shown schematically, which can be transmitted from the first processing unit 31 to the second processing unit 32 and/or to the common communication channel 33 . The information signals 38 are sent whenever the link 37 is changed from a disconnected state (isolation mode) to a connected state. In this way, the other components of the system 10 (e.g. further processing units 35, 36) can be informed when there is a change from a (secure) isolation mode to a general mode in which data from the first processing unit 31 is sent directly to the common communication channel 33 can be transferred.

Die vorgeschlagene Offenbarung führt ein neues Architekturelement (z.B. isolierten Kommunikationskanal) in Mikrocontrollern und eine neue Arbeitsweise für Verarbeitungseinheiten ein.The proposed disclosure introduces a new architectural element (e.g. isolated communication channel) in microcontrollers and a new way of working for processing units.

Wie auch in den 3 und 4 dargestellt, verfügt ein typischer moderner Mikrocontroller über mehr als eine Verarbeitungseinheit (z.B. verfügt der Mikrocontroller 30 über die erste und zumindest zweite Recheneinheit 31, 32), die alle mit einem oder mehreren gängigen Systembussen (z.B. gemeinsamen Kommunikationskanal 33) verbunden sind.As also in the 3 and 4 shown, a typical modern microcontroller has more than one processing unit (e.g. the microcontroller 30 has the first and at least second arithmetic unit 31, 32), all of which are connected to one or more common system buses (e.g. common communication channel 33).

In 3 wird ein vorgeschlagenes Konzept dargestellt. Hier können zwei (oder mehrere) Verarbeitungseinheiten 31, 32 über einen isolierten Kommunikationskanal 34 (z.B. separater gemeinsam genutzter Speicher) kommunizieren. Der Zweck dieses Kanals besteht darin, die Kommunikation zwischen Verarbeitungseinheiten (z.B. Recheneinheiten) zu ermöglichen, die keinen Zugriff auf einen gemeinsamen Systembus (z.B. gemeinsamen Kommunikationskanal 33) erfordern. Wenn dieser Isolationskanal verfügbar ist, können oder die eine Recheneinheit (oder mehrere Verarbeitungseinheiten/Recheneinheiten) zum Isolationsmodus wechseln, wie in 4 dargestellt ist. Bei aktiviertem Isolationsbetrieb haben die Verarbeitungseinheiten keinen Zugriff mehr auf den gemeinsamen Systembus (z.B. kann die erste Recheneinheit 31 nicht mehr direkt auf den gemeinsamen Kommunikationskanal 33 zugreifen) und können nur über den isolierten Kommunikationskanal 34 mit dem Rest des Systems kommunizieren. Wenn aus technischen Gründen eine vollständige Trennung vom gemeinsamen Systembus nicht möglich ist, ist es möglich, dass nur ein klar definierter eingeschränkter Zugriff erlaubt ist (z. B. kein Zugriff der isolierten Recheneinheit auf I/O-Einheiten, aber eingeschränkter Zugriff auf einen gemeinsam genutzten Speicherteil).In 3 a proposed concept is presented. Here two (or more) Verar Processing units 31, 32 communicate over an isolated communication channel 34 (e.g. separate shared memory). The purpose of this channel is to allow communication between processing units (e.g., computational units) that do not require access to a common system bus (e.g., common communications channel 33). When this isolation channel is available, the one or more processing units/processing units can switch to isolation mode, as in 4 is shown. When isolated mode is activated, the processing units no longer have access to the common system bus (e.g. the first processing unit 31 can no longer directly access the common communication channel 33) and can only communicate with the rest of the system via the isolated communication channel 34. If, for technical reasons, complete separation from the common system bus is not possible, it is possible that only clearly defined, restricted access is permitted (e.g. no access by the isolated computing unit to I/O units, but restricted access to a common used part of memory).

Für den (kompletten) Systembuszugriff kann eine weitere Verarbeitungseinheit (z.B. zweite Recheneinheit 32) einen Proxyzugriff auf die im Isolationsmodus ausgeführten Verarbeitungseinheiten gewähren. Dieses Setup hat z.B. den Vorteil, dass ein potentiell nicht vertrauenswürdiger Code dann auf dem Kern (z.B. Rechenkern, z.B. CPU) der jeweiligen Verarbeitungseinheit oder Recheneinheit ausgeführt werden kann, die im Isolationsmodus ausgeführt wird. Selbst wenn dieser ausgeführte Code oder Programmcode kompromittiert wäre, haben die isolierten Verarbeitungseinheiten keinen Zugriff auf den gemeinsamen Systembus, sodass der mögliche Schaden für den Rest des Systems minimiert oder ganz verhindert werden kann.For (full) system bus access, another processing unit (e.g. second processing unit 32) can grant proxy access to the processing units running in isolation mode. This setup has the advantage, for example, that potentially untrustworthy code can then be executed on the core (e.g. computing core, e.g. CPU) of the respective processing unit or computing unit that is running in isolation mode. Even if this executing code or program code were compromised, the isolated processing units do not have access to the common system bus, so potential damage to the rest of the system can be minimized or prevented altogether.

Wenn es einer kompromittierten Software gelingt, die erste Verarbeitungseinheit 31 vom Isolationsmodus zurück in den normalen Arbeitsmodus zu schalten, wird durch Hardware-Design jeder Switch vom Isolationsmodus (oder einem beliebigen Zugriff auf den Systembus im Isolationsmodus) in einen anderen Arbeitsmodus ein Interruptsignal oder Informationssignal 38 auslösen (s. Signal 38 in 4). Auf diese Weise kann dem Rest des Systems bekannt gemacht werden, wenn die isolierte Verarbeitungseinheit (z.B. erste Recheneinheit 31) den Modus gewechselt hat, sodass bei Bedarf entsprechende Maßnahmen ergriffen werden können.If compromised software succeeds in switching the first processing unit 31 from isolation mode back to normal working mode, by hardware design any switch from isolation mode (or any access to the system bus in isolation mode) to another working mode will generate an interrupt signal or information signal 38 trigger (see signal 38 in 4 ). In this way, it can be made known to the rest of the system when the isolated processing unit (eg first computing unit 31) has switched modes, so that appropriate action can be taken if necessary.

Auch im Isolationsmodus kann die Möglichkeit bestehen, dass bei einer Gefährdung der isolierten Verarbeitungseinheit auch die mit dem isolierten Kommunikationskanal 34 angeschlossene Verarbeitungseinheit(n) (z.B. die zweite Recheneinheit 32) gefährdet werden kann. Um dieses Risiko zu minimieren, ist vorgesehen, dass die Software, die mit einem isolierten Kommunikationskanal interagiert, der auf einer Proxy-Verarbeitungseinheit ausgeführt wird, so einfach wie möglich und mit möglichst wenigen Codezeilen implementiert wird. Durch die einfache Ausgestaltung dieser Software kann es möglich sein, diese Software (die z.B. auf der zweiten Recheneinheit 32 läuft) mit verschiedenen Methoden (z.B. formale Verifizierungsmethoden, Peer Reviews, statische Codeanalyse, Komponententests...) besser, einfacher oder kostengünstiger zu testen. Dies kann möglich sein, da der gesamte kompliziertere (z.B. nicht vertrauenswürdige) Code auf einer Verarbeitungseinheit ausgeführt werden kann, die im Isolationsmodus betrieben wird (z.B. der ersten Recheneinheit 31 mit getrennter Verbindung 37).Even in isolation mode, there may be the possibility that if the isolated processing unit is endangered, the processing unit(s) connected to the isolated communication channel 34 (e.g. the second processing unit 32) may also be endangered. In order to minimize this risk, it is intended that the software interacting with an isolated communication channel running on a proxy processing unit be implemented as simply as possible and with as few lines of code as possible. Due to the simple design of this software, it may be possible to test this software (which runs, for example, on the second processing unit 32) better, more easily or more cost-effectively using various methods (e.g. formal verification methods, peer reviews, static code analysis, component tests...). This may be possible because all the more complicated (e.g. untrusted) code can be executed on a processing unit operating in isolation mode (e.g. the first processing unit 31 with disconnected connection 37).

Weitere Einzelheiten und Aspekte sind in Verbindung mit den vor- oder nachstehend beschriebenen Ausführungsbeispielen erwähnt. Das in 4 gezeigte Ausführungsbeispiel kann ein oder mehrere optionale zusätzliche Merkmale aufweisen, die einem oder mehreren Aspekten entsprechen, die in Verbindung mit dem vorgeschlagenen Konzept oder mit einem oder mehreren vorstehend (z.B. 1-3) oder nachstehend beschriebenen Ausführungsbeispielen erwähnt sind.Further details and aspects are mentioned in connection with the embodiments described above or below. This in 4 The embodiment shown may have one or more optional additional features corresponding to one or more aspects mentioned in connection with the proposed concept or with one or more above (e.g 1-3 ) or in the exemplary embodiments described below.

Die vorliegende Offenbarung betrifft ein System mit mehreren Recheneinheiten, von denen zumindest eine, insbesondere mehrere jeweils von einem gemeinsamen Kommunikationskanal getrennt werden können, um einen direkten Einfluss von auf der j eweiligen Recheneinheit ausgeführtem Programmcode zu reduzieren. Als Möglichkeit, dennoch einen Datenaustausch ermöglichen zu können, wird die Einführung eines isolierten Kommunikationskanals von der jeweils isolierbaren Recheneinheit vorgeschlagen. Durch die Implementierung des Isolationskanals zwischen Verarbeitungseinheiten im Mikrocontroller können z.B. folgende Vorteile erzielt werden: - nicht vertrauenswürdige Software (z.B. TCP/IP-Stack, TLS-Softwarebibliotheken, Software die von einer Internetquelle über eine Internetverbindung geladen wurde) kann vom Rest des Systems isoliert werden, indem sie auf der Verarbeitungseinheit im Isolationsmodus ausgeführt wird; - wenn die nicht vertrauenswürdige Software kompromittiert wird, kann der Einfluss auf den Rest des Systems verringert werden, da die Software z.B. keinen Zugriff auf I/O (in/out)-Einheiten des Mikrocontrollers hat (z. B. kann somit ein Einfluss der kompromittierten Software auf Funktionen eines autonom fahrenden Fahrzeugs verringert oder vermieden werden) und somit den Betrieb einer Software oder Programms, das auf anderen Verarbeitungseinheiten (z.B. den weiteren Recheneinheiten 35, 36) läuft, die Zugriffs-I/O-Einheiten benötigen, nicht stört. Es kann auch durch die Signalisierung des Moduswechsels (z.B. Ausgeben eines Informationssignals bei Wechsel vom Isolationsmodus zum verbundenen Modus) die Verarbeitungseinheit (z.B. erste Recheneinheit 11) den Rest des Systems informieren, dass der Programmcode nicht mehr isoliert ausgeführt wird. Dadurch können andere Funktionen z.B. in einen Sicherheitsmodus umgeschaltet werden bzw. sicherheitskritische Funktionen können deaktiviert werden, bis klar ist, ob der Programmcode schädlich ist oder nicht. - Durch die Möglichkeit, von der Verarbeitungseinheit im Isolationsmodus nur über eine Proxy-Verarbeitungseinheit (z.B. zweite Recheneinheit 12) auf den Rest des Systems zuzugreifen, kann die Software auf der Proxy-Verarbeitung einfach gehalten werden, da sie nur die Daten zwischen dem Systembus einer isolierten Verarbeitungseinheit weiterleiten muss. - Bei einer solchen eher einfachen Pass-Through-Software kann es z.B. einfacher sein, diese gegen Fehler zu überprüfen, als komplexerer (z.B. nicht vertrauenswürdiger) Code oder Programmcode. Eine solche einfache Pass-Through-Software ist z.B. schwieriger auszunutzen oder zu korrumpieren. - auf diese Weise kann es möglich sein, dass keine komplexe Software überprüft werden muss und dennoch eine Softwarezertifizierung für Echtzeitsysteme (z.B. ASIL D, SIL 4) zu erhalten, wodurch eine große Kostensenkung möglich sein kann.The present disclosure relates to a system with a plurality of processing units, of which at least one, in particular several, can each be separated from a common communication channel in order to reduce a direct influence of program code executed on the respective processing unit. The introduction of an isolated communication channel from the computing unit that can be isolated in each case is proposed as a possibility of still being able to enable data exchange. By implementing the isolation channel between processing units in the microcontroller, the following advantages can be achieved, for example: - Untrusted software (e.g. TCP/IP stack, TLS software libraries, software loaded from an Internet source via an Internet connection) can be isolated from the rest of the system by running on the processing unit in isolation mode; - if the untrustworthy software is compromised, the impact on the rest of the system can be reduced, since the software has e.g. no access to I/O (in/out) units of the microcontroller (e.g. an impact of the compromised software on functions of an autonomously driving vehicle can be reduced or avoided) and thus does not interfere with the operation of a software or program that runs on other processing units (e.g. the further computing units 35, 36) that require access I/O units. It can also go through the signaling of the mode change (e.g. outputting an information signal when changing from isolated mode to connected mode) informing the processing unit (e.g. first computing unit 11) the rest of the system that the program code is no longer being executed in isolation. As a result, other functions can be switched to a security mode, for example, or security-critical functions can be deactivated until it is clear whether the program code is harmful or not. - Due to the possibility of accessing the rest of the system from the processing unit in isolation mode only via a proxy processing unit (e.g. second processing unit 12), the software on the proxy processing can be kept simple, since it only transfers the data between the system bus of a isolated processing unit. - With such rather simple pass-through software, for example, it may be easier to check for errors than more complex (eg untrustworthy) code or program code. Such simple pass-through software, for example, is more difficult to exploit or corrupt. - in this way it may be possible that no complex software has to be checked and still get a software certification for real-time systems (e.g. ASIL D, SIL 4), which can result in a large cost reduction.

Das vorgeschlagene Konzept führt ein neues Architekturelement in Mikrocontrollern und eine neue Arbeitsweise für Verarbeitungseinheiten ein, die es dem Mikrocontroller z.B. ermöglicht, sicher mit dem Internet verbunden zu sein und gleichzeitig sicherheitskritische Echtzeitsteuerungsaufgaben ausführen zu können. Aspekte betreffen die Einführung eines Isolationsmodus für Mikrocontroller mit Echtzeitsoftware.The proposed concept introduces a new architectural element in microcontrollers and a new way of working for processing units that, for example, allows the microcontroller to be securely connected to the internet while still being able to perform safety-critical real-time control tasks. Aspects concern the introduction of an isolation mode for microcontrollers with real-time software.

Claims (15)

System (10) zum Ausführen eines Programmcodes, das System (10) umfassend: eine erste Recheneinheit (11), die zum Ausführen des Programmcodes ausgebildet ist; eine zweite Recheneinheit (12); einen gemeinsamen Kommunikationskanal (13) des Systems (10), wobei in einem ersten Betriebsmodus des Systems (10) die erste Recheneinheit (11) und zweite Recheneinheit (12) mit dem gemeinsamen Kommunikationskanal (13) verbunden sind, wobei in einem zweiten Betriebsmodus die erste Recheneinheit (11) vom gemeinsamen Kommunikationskanal (13) getrennt ist; und einen isolierten Kommunikationskanal (14), der für einen Datenaustausch zwischen der ersten Recheneinheit (11) und zweiten Recheneinheit (12) ausgebildet ist, wobei das System (10) ausgebildet ist, den Programmcode über den gemeinsamen Kommunikationskanal (13) zur ersten Recheneinheit (11) zu übertragen und, den Programmcode im zweiten Betriebsmodus auf der ersten Recheneinheit (11) auszuführen.System (10) for executing a program code, the system (10) comprising: a first arithmetic unit (11) which is designed to execute the program code; a second computing unit (12); a common communication channel (13) of the system (10), wherein in a first operating mode of the system (10) the first processing unit (11) and second processing unit (12) are connected to the common communication channel (13), wherein in a second operating mode the first processing unit (11) is separated from the common communication channel (13); and an isolated communication channel (14) which is designed for data exchange between the first processing unit (11) and the second processing unit (12), wherein the system (10) is designed to transmit the program code via the common communication channel (13) to the first processing unit (11) and, to execute the program code in the second operating mode on the first processing unit (11). System (10) gemäß Anspruch 1, wobei der isolierte Kommunikationskanal (13) eine von der ersten Recheneinheit (11) und von der zweiten Recheneinheit (12) gemeinsam genutzte Speichereinheit umfasst.System (10) according to claim 1 , wherein the isolated communication channel (13) comprises a memory unit shared by the first computing unit (11) and by the second computing unit (12). System (10) gemäß Anspruch 1 oder 2, wobei die erste und zweite Recheneinheit (11, 12) innerhalb eines gemeinsamen Mikrocontrollers (15) ausgebildet sind.System (10) according to claim 1 or 2 , wherein the first and second computing unit (11, 12) are formed within a common microcontroller (15). System (10) gemäß Anspruch 1 oder 2, wobei die erste Recheneinheit (11) in einem ersten Steuergerät ausgebildet ist und die zweite Recheneinheit (12) in einem zweiten Steuergerät ausgebildet ist.System (10) according to claim 1 or 2 , wherein the first arithmetic unit (11) is formed in a first control unit and the second arithmetic unit (12) is formed in a second control unit. System (10) gemäß einem der vorhergehenden Ansprüche, wobei der Programmcode ein nicht vom System (10) zertifizierter Programmcode ist.System (10) according to one of the preceding claims, wherein the program code is a non-system (10) certified program code. System (10) gemäß einem der vorhergehenden Ansprüche, wobei die erste Recheneinheit (11) ausgebildet ist, immer dann ein Informationssignal an die zweite Recheneinheit (12) und/oder an den gemeinsamen Kommunikationskanal (13) zu senden, wenn ein Wechsel vom zweiten Betriebsmodus auf den ersten Betriebsmodus erfolgt.System (10) according to one of the preceding claims, wherein the first processing unit (11) is designed to always send an information signal to the second processing unit (12) and/or to the common communication channel (13) when there is a change from the second operating mode to the first operating mode. System (10) gemäß einem der vorhergehenden Ansprüche, wobei zumindest eine weitere Recheneinheit (35, 36) des Systems (10) mit dem gemeinsamen Kommunikationskanal (13, 33) verbunden ist, wobei die weitere Recheneinheit (35, 36) ausgebildet ist, eine sicherheitskritische Funktionalität des Systems (10) auszuführen.System (10) according to one of the preceding claims, wherein at least one further processing unit (35, 36) of the system (10) is connected to the common communication channel (13, 33), the further processing unit (35, 36) being designed to perform safety-critical functionality of the system (10). System (10) gemäß einem der vorhergehenden Ansprüche, wobei das System (10) ausgebildet ist, den Programmcode von einer Internetverbindung aus über den gemeinsamen Kommunikationskanal (13) zu empfangen.System (10) according to one of the preceding claims, wherein the system (10) is adapted to receive the program code from an Internet connection via the common communication channel (13). System (10) gemäß einem der vorhergehenden Ansprüche, wobei die erste Recheneinheit (11) zum Ausführen einer komplexeren Software ausgebildet ist als die zweite Recheneinheit (12).System (10) according to one of the preceding claims, wherein the first processing unit (11) is designed to execute more complex software than the second processing unit (12). Verfahren (20) zum Betreiben eines Systems (10) gemäß einem der vorhergehenden Ansprüche, das Verfahren (20) umfassend: Bereitstellen (21) eines Programmcodes an der ersten Recheneinheit (11); Trennen (22) einer direkten Verbindung zwischen erster Recheneinheit (11) und dem gemeinsamen Kommunikationskanal (13), um die erste Recheneinheit (11) vom gemeinsamen Kommunikationskanal (13) zu isolieren; und Ausführen (23) des Programmcodes auf der isolierten ersten Recheneinheit (11).Method (20) for operating a system (10) according to one of the preceding claims, the method (20) comprising: providing (21) a program code at the first computing unit (11); Separating (22) a direct connection between the first computing unit (11) and the common communication channel (13) to the first computing isolating the unit (11) from the common communication channel (13); and executing (23) the program code on the isolated first computing unit (11). Verfahren (20) gemäß Anspruch 10, wobei das Bereitstellen (21) des Programmcodes ein Empfangen des Programmcodes an der ersten Recheneinheit (11) über den gemeinsamen Kommunikationskanal (13) von einer Internetverbindung aus im ersten Betriebsmodus umfasst, wobei das Trennen (22) der direkten Verbindung erfolgt, nachdem der Programmcode bereitgestellt (21) wurde.Method (20) according to claim 10 , wherein the provision (21) of the program code comprises receiving the program code at the first processing unit (11) via the common communication channel (13) from an Internet connection in the first operating mode, the disconnection (22) of the direct connection taking place after the program code provided (21). Verfahren (20) gemäß Anspruch 10, wobei das Trennen (22) der direkten Verbindung zwischen erster Recheneinheit (11) und dem gemeinsamen Kommunikationskanal (13) vor dem Bereitstellen (21) des Programmcodes erfolgt, wobei der Programmcode über den gemeinsamen Kommunikationskanal (13), die zweite Recheneinheit (12) und den isolierten Kommunikationskanal (14) an der ersten Recheneinheit (11) im zweiten Betriebsmodus bereitgestellt (21) wird.Method (20) according to claim 10 , wherein the separation (22) of the direct connection between the first processing unit (11) and the common communication channel (13) takes place before the provision (21) of the program code, the program code being transmitted via the common communication channel (13), the second processing unit (12) and the isolated communication channel (14) is provided (21) at the first computing unit (11) in the second operating mode. Verfahren (20) gemäß einem von Anspruch 10 bis 12, wobei an der zweiten Recheneinheit (12) Daten von der ersten Recheneinheit (11) über den isolierten Kommunikationskanal (14) empfangen werden, während die erste Recheneinheit (11) vom gemeinsamen Kommunikationskanal (13) isoliert betrieben wird.Method (20) according to any one of claim 10 until 12 , Data being received at the second processing unit (12) from the first processing unit (11) via the isolated communication channel (14), while the first processing unit (11) is operated in isolation from the common communication channel (13). Verfahren (20) gemäß einem von Anspruch 10 bis 13, wobei ein systemeigener Programmcode, der auf der zweiten Recheneinheit (12) ausgeführt wird, weniger komplex ist als der auf der ersten Recheneinheit (11) ausgeführte Programmcode.Method (20) according to any one of claim 10 until 13 , wherein a system-specific program code that is executed on the second processing unit (12) is less complex than the program code that is running on the first processing unit (11). Verfahren (20) gemäß einem von Anspruch 10 bis 14, wobei der empfangene Programmcode ein Open-Source-Programmcode ist.Method (20) according to any one of claim 10 until 14 , wherein the received program code is an open source program code.
DE102021108151.3A 2021-03-31 2021-03-31 SYSTEM WITH AN ISOLATED COMMUNICATION CHANNEL FOR EXECUTING A PROGRAM CODE Pending DE102021108151A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102021108151.3A DE102021108151A1 (en) 2021-03-31 2021-03-31 SYSTEM WITH AN ISOLATED COMMUNICATION CHANNEL FOR EXECUTING A PROGRAM CODE

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102021108151.3A DE102021108151A1 (en) 2021-03-31 2021-03-31 SYSTEM WITH AN ISOLATED COMMUNICATION CHANNEL FOR EXECUTING A PROGRAM CODE

Publications (1)

Publication Number Publication Date
DE102021108151A1 true DE102021108151A1 (en) 2022-10-06

Family

ID=83282440

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102021108151.3A Pending DE102021108151A1 (en) 2021-03-31 2021-03-31 SYSTEM WITH AN ISOLATED COMMUNICATION CHANNEL FOR EXECUTING A PROGRAM CODE

Country Status (1)

Country Link
DE (1) DE102021108151A1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060179487A1 (en) 2005-02-07 2006-08-10 Sony Computer Entertainment Inc. Methods and apparatus for secure processor collaboration in a multi-processor system
US20110047613A1 (en) 2009-08-21 2011-02-24 Walsh Daniel J Systems and methods for providing an isolated execution environment for accessing untrusted content

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060179487A1 (en) 2005-02-07 2006-08-10 Sony Computer Entertainment Inc. Methods and apparatus for secure processor collaboration in a multi-processor system
US20110047613A1 (en) 2009-08-21 2011-02-24 Walsh Daniel J Systems and methods for providing an isolated execution environment for accessing untrusted content

Similar Documents

Publication Publication Date Title
EP2823430B1 (en) Electronic control system
DE102013212525A1 (en) Data storage device for protected data exchange between different security zones
DE112019000485T5 (en) SYSTEM AND PROCEDURE FOR PROVIDING SECURITY FOR IN-VEHICLE NETWORK
EP3864548A1 (en) Method and device for isolating sensitive non-trusted program code on mobile terminals
WO2017190997A1 (en) Method and integrity checking system for perturbation-free integrity monitoring
WO2019072840A1 (en) Apparatus for protecting diagnosis commands to a controller, and corresponding motor vehicle
DE102018127330A1 (en) System-on-chip and method for operating a system-on-chip
EP3695337B1 (en) Method and confirmation device for confirming the integrity of a system
DE102012207215A1 (en) Method and device for monitoring functions of a computer system, preferably an engine control system of a motor vehicle
DE102017219242A1 (en) One-chip system, method for operating a one-chip system and motor vehicle
DE102021108151A1 (en) SYSTEM WITH AN ISOLATED COMMUNICATION CHANNEL FOR EXECUTING A PROGRAM CODE
EP3417589A1 (en) Reducing a possible attack on a weak point of a device via a network access point
EP3418933A1 (en) Edge device and method for operating an edge device
WO2016162144A1 (en) Management of interfaces in a distributed system
EP3167593B1 (en) Device, method, and computer program product for secure data communication
DE102021208459B4 (en) Method for authentic data transmission between control units in a vehicle, arrangement with control units, computer program and vehicle
WO2006076752A1 (en) Computer security system
EP3812938A1 (en) Reconfiguration of a hardware component of a technical device
DE102018210733A1 (en) Method for monitoring at least one computing unit
EP3752911A1 (en) Method for installing a program code packet onto a device, device, and motor vehicle
DE102007018777A1 (en) Control device for vehicles
DE102018208832A1 (en) A method for containing an attack on a controller
DE102022210020A1 (en) Security data processing unit for a computing unit
WO2009077271A1 (en) Method for identifying reciprocal influencing of software components
DE102021104153A1 (en) CONTROL DEVICE, TELEMATICS CONTROL UNIT AND METHOD

Legal Events

Date Code Title Description
R163 Identified publications notified