DE102019220450A1 - Vorrichtung mit einer Schnittstelle und Verfahren zum Betreiben einer Vorrichtung mit einer Schnittstelle - Google Patents

Vorrichtung mit einer Schnittstelle und Verfahren zum Betreiben einer Vorrichtung mit einer Schnittstelle Download PDF

Info

Publication number
DE102019220450A1
DE102019220450A1 DE102019220450.3A DE102019220450A DE102019220450A1 DE 102019220450 A1 DE102019220450 A1 DE 102019220450A1 DE 102019220450 A DE102019220450 A DE 102019220450A DE 102019220450 A1 DE102019220450 A1 DE 102019220450A1
Authority
DE
Germany
Prior art keywords
computer program
prg1
external unit
interface
analysis flag
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
DE102019220450.3A
Other languages
English (en)
Inventor
Manuel Jauss
Timo Lothspeich
Mustafa Kartal
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.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
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 Robert Bosch GmbH filed Critical Robert Bosch GmbH
Priority to DE102019220450.3A priority Critical patent/DE102019220450A1/de
Publication of DE102019220450A1 publication Critical patent/DE102019220450A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/572Secure firmware programming, e.g. of basic input output system [BIOS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

Verfahren (300) zum Betreiben einer Vorrichtung (100), die eine Schnittstelle (120) zum Datenaustausch mit einer externen Einheit (200) aufweist und wenigstens eine erste Speichereinrichtung (130) zum nichtflüchtigen Speichern eines ersten Analyse-Flags (FA), und wenigstens eine zweite Speichereinrichtung (140) zum Speichern von wenigstens einem, insbesondere durch eine Recheneinrichtung (110) der Vorrichtung (100) ausführbaren, Computerprogramm (PRG1), wobei das Verfahren (300) die folgenden Schritte umfasst: Prüfen (310), ob das erste Analyse-Flag (FA) in der ersten Speichereinrichtung (130) gesetzt ist, und wenn das erste Analyse-Flag gesetzt ist, ein Schritt (320a) zum Übertragen des wenigstens eine Computerprogramms (PRG1), von der externen Einheit (200) über die Schnittstelle (120) in die zweite Speichereinrichtung (140) der Vorrichtung (100) ausgeführt wird, und/oder in ein Schritt (320b) zum Ausführen des Computerprogramms (PRG1) durch die Recheneinrichtung (110) ausgeführt wird, und wenn das erste Analyse-Flag (FA) nicht gesetzt ist, der Schritt zum Übertragen und/oder der Schritt zum Ausführen nicht ausgeführt wird.

Description

  • Stand der Technik
  • Die Offenbarung betrifft ein Verfahren zum Betreiben einer Vorrichtung, die eine Schnittstelle zum Datenaustausch mit einer externen Einheit aufweist.
  • Die Offenbarung betrifft ferner eine Vorrichtung mit einer Schnittstelle zum Datenaustausch mit einer externen Einheit.
  • Offenbarung der Erfindung
  • Bevorzugte Ausführungsformen beziehen sich auf ein Verfahren zum Betreiben einer Vorrichtung, die eine Schnittstelle zum Datenaustausch mit einer externen Einheit aufweist und wenigstens eine erste Speichereinrichtung zum nichtflüchtigen Speichern eines ersten Analyse-Flags, und wenigstens eine zweite Speichereinrichtung zum Speichern von wenigstens einem, insbesondere durch eine Recheneinrichtung der Vorrichtung ausführbaren, Computerprogramm, wobei das Verfahren die folgenden Schritte umfasst: Prüfen, ob das erste Analyse-Flag in der zweiten Speichereinrichtung gesetzt ist, und wenn das erste Analyse-Flag gesetzt ist, ein Schritt zum Übertragen des wenigstens eine Computerprogramms, von der externen Einheit über die Schnittstelle in die zweite Speichereinrichtung der Vorrichtung ausgeführt wird, und/oder in ein Schritt zum Ausführen des Computerprogramms durch die Recheneinrichtung ausgeführt wird, und wenn das erste Analyse-Flag nicht gesetzt ist, der Schritt zum Übertragen und/oder der Schritt zum Ausführen nicht ausgeführt wird.
  • Das erste Analyse-Flag dient im Allgemeinen als ein Statusindikator zum Kennzeichnen eines bestimmten Zustands. Das erste Analyse-Flag kann gesetzt, gelöscht oder geprüft werden. Erfindungsgemäß wird anhand des ersten Analyse-Flags der Zugriff über die Schnittstelle der Vorrichtung freigegeben oder verweigert.
  • Gemäß einer bevorzugten Ausführungsform umfasst das Computerprogramm einen Bootloader für die Recheneinrichtung. Der Bootloader kann, sobald er ausgeführt wird, dann beispielsweise das nachfolgende Laden und/oder Ausführen wenigstens eines weiteren Computerprogramms durch die Recheneinrichtung steuern.
  • Bei weiteren bevorzugten Ausführungsformen handelt es sich bei dem Computerprogramm um ein Computerprogramm zum Steuern der Ausführung einer Software, insbesondere einer Prüfsoftware, insbesondere einer End-of-Line (EoL) Software. Gemäß weiteren bevorzugten Ausführungsformen kann das Computerprogramm auch die Prüfsoftware, insbesondere die End-of-Line (EoL) Software, oder Teile davon umfassen. Die Schnittstelle zum Übertragen des Computerprogramms wird im Folgenden auch EoL-Schnittstelle genannt.
  • Bei weiteren bevorzugten Ausführungsformen wird die Vorrichtung durch Ausführen des Computerprogramms und/oder Übertragen des Computerprogramms in einen Analyse-Zustand versetzt. Vorteilhafterweise gibt das erste Analyse-Flag an, ob die Erfindung in den Analyse-Zustand versetzt werden kann. Erfindungsgemäß erfolgt das Ausführen und/oder Übertragen des Computerprogramms, also ein Zugriff über die EoL Schnittstelle, nur, wenn das Analyse-Flag gesetzt ist. Ein unerlaubtes Ausführen und/oder Übertragen kann als anhand des Analyse-Flags verhindert und so eine Betriebssicherheit der Vorrichtung erhöht werden.
  • Bei weiteren bevorzugten Ausführungsformen ist vorgesehen, dass die Vorrichtung, wenn das erste Analyse-Flag nicht gesetzt ist, in einen Applikations-Zustand versetzt wird.
  • Vorteilhafterweise wird das erfindungsgemäße Verfahren bei einem Bootvorgang der Vorrichtung ausgeführt, wobei in Abhängigkeit des Analyse-Flags die Vorrichtung weiter entweder in einen Analyse-Zustand oder in einen Applikationszustand versetzt werden kann.
  • Bei weiteren bevorzugten Ausführungsformen ist das Computerprogramm vorteilhafterweise dazu ausgebildet ist, Operationen, insbesondere systemnahe Operationen, insbesondere eine Hardware-Prüfung, insbesondere Hardware-Endprüfung, der Vorrichtung, und/oder eine Bedatung der Vorrichtung, insbesondere Übertragen von wenigstens einer Funktion und/oder wenigstens einer Konfiguration, auszuführen. Beispielsweise kann das Computerprogramm auch zum Ausführen einer Aktivierungssoftware, insbesondere eine Function-on-Demand Aktivierungssoftware zum Freischalten von Funktionen der Vorrichtung, ausgebildet sein. Gemäß weiteren Ausführungsformen kann das Computerprogramm auch die Aktivierungssoftware oder Teile davon umfassen.
  • Bei weiteren bevorzugten Ausführungsformen ist die Vorrichtung ein Steuergerät (Electronic Control Unit, ECU), insbesondere für ein Kraftfahrzeug, beispielsweise für eine Brennkraftmaschine eines Kraftfahrzeugs. Bei weiteren bevorzugten Ausführungsformen ist die Anwendung des Prinzips gemäß den Ausführungsformen jedoch nicht auf den Kraftfahrzeugbereich bzw. den Bereich von Steuergeräten beschränkt.
  • Bei weiteren bevorzugten Ausführungsformen ist die wenigstens eine zweite Speichereinrichtung eine Speichereinrichtung zum flüchtigen Speichern von wenigstens einem, insbesondere durch die Vorrichtung ausführbaren, Computerprogramm. Dies kann beispielsweise vorteilhaft sein, wenn das Computerprogrammes, insbesondere ein Computerprogramm zum Steuern der Ausführung einer Prüfsoftware, insbesondere einer End-of-Line (EoL) Software, oder der Prüfsoftware, insbesondere die End-of-Line (EoL) Software, oder Teilen davon, nicht permanent in der Speichereinrichtung gespeichert werden soll.
  • Bei weiteren bevorzugten Ausführungsformen umfasst das Computerprogramm privilegierte Rechte, insbesondere kann beim Ausführen des Computerprogramms, insbesondere beim Ausführen einer Prüfsoftware, insbesondere einer End-of-Line (EoL) Software, ein Zugriff auf Hardware der Vorrichtung und/oder das Auslesen und/oder Schreiben von Speichereinrichtungen der Vorrichtung möglich sein. Ein potenzieller Missbrauch dieser privilegierten Rechte kann anhand dem erfindungsgemäßen Verfahren vermieden werden.
  • Bei weiteren bevorzugten Ausführungsformen umfasst die erste Speichereinrichtung einen Speicherbereich mit privilegierten Zugriffsrechten. Vorteilhafterweise ist der Schreib- und/oder Lesezugriff auf diesen Speicherbereich nur durch ein Software-Sicherheitsmodul (SSM) möglich.
  • Bei weiteren bevorzugten Ausführungsformen ist vorgesehen, dass die erste Speichereinrichtung ein Hardware-Sicherheitsmodul (HSM), insbesondere ein Kryptographie-Modul, umfasst, oder Teil eines Hardware-Sicherheitsmodul (HSM), insbesondere eines Kryptographie-Modul, ist. Das Hardware-Sicherheitsmodul ist beispielsweise zur Ausführung von kryptographischen Verfahren bzw. Algorithmen oder zumindest von Teilen hiervon ausgebildet.
  • Bei weiteren bevorzugten Ausführungsformen ist vorgesehen, dass das Hardware-Sicherheitsmodul (HSM) über einen geschützten, insbesondere separaten, Speicher zur Speicherung des ersten Analyse-Flags verfügt.
  • Bei weiteren bevorzugten Ausführungsformen ist vorgesehen, dass das Verfahren weiter umfasst: Prüfen, ob ein weiteres Analyse-Flag gesetzt ist, und wenn das weitere Analyse-Flag gesetzt ist, der Schritt zum Prüfen des ersten Analyse-Flag ausgeführt wird. Dies kann sich insbesondere aus Performance- bzw. Taktzeitgründen beim Bootvorgang der Vorrichtung als vorteilhaft erweisen. Das erste Analyse-Flag, das in der ersten Speichereinrichtung der Vorrichtung gespeichert ist, wird nur dann geprüft, wenn das weitere Analyse-Flag auch gesetzt ist. Das weitere Analyse-Flag ist beispielsweise in einer hoch performant auslesbaren Speichereinrichtung der Vorrichtung, insbesondere in einem Arbeitsspeicher, RAM, random access memory, insbesondere einem Retention RAM, abgespeichert. Ein Retention RAM ist ein flüchtiger Speicher, dessen Speicherinhalt bei einem Soft-/Software-Reset erhalten bleibt. Bei einem Hard-/Hardware-Reset wird der Speicher zurückgesetzt.
  • Bei weiteren bevorzugten Ausführungsformen ist vorgesehen, dass, wenn das erste Analyse-Flag gesetzt ist, zwischen dem Schritt des Prüfens des ersten Analyse-Flag und dem Schritt des Übertragens des Computerprogramms ein Schritt zum Authentisieren der externen Einheit und/oder eines Benutzers der externen Einheit ausgeführt wird, wobei nach erfolgreichem Authentisieren der Schritt zum Übertragen des wenigstens eine Computerprogramms, über die Schnittstelle in die zweite Speichereinrichtung der Vorrichtung ausgeführt wird, und nach nicht erfolgreichem Authentisieren das wenigstens eine Computerprogramms, nicht übertragen wird.
  • Bei weiteren bevorzugten Ausführungsformen ist vorgesehen, dass das Verfahren weiter umfasst: Authentifizieren des übertragenen Computerprogramms, wobei nach erfolgreichem Authentifizieren des übertragenen Computerprogramms das Ausführen des übertragenen Computerprogramms durch die Vorrichtung erfolgt, und nach nicht erfolgreichem Authentifizieren des Computerprogramms das Nicht-Ausführen des übertragenen Computerprogramms erfolgt. Das Authentifizieren umfasst insbesondere eine Integritäts -und/oder Authentizitätsprüfung des übertragenen Computerprogramms.
  • Bei weiteren bevorzugten Ausführungsformen ist vorgesehen, dass das Verfahren nach wenigstens einem der vorhergehenden Ansprüche, wobei das Authentisieren der externen Einheit und/oder eines Benutzers der externen Einheit und/oder das Authentifizieren des übertragenen Computerprogramms unter Verwendung eines signaturbasierten oder schlüsselabhängigen, prüfsummenbasierten auch als Message Authentification Code, MAC, bezeichneten, Ansatzes erfolgt. Bei dem signaturbasierten Ansatz wird die Signatur mit einem privaten Schlüssel durch einen zugehörigen, öffentlichen Schlüssel verifiziert. Bei dem schlüsselabhängigen, prüfsummenbasierten Ansatz wird auf Basis eines geheimen Schlüssels eine Prüfsumme, auch als Message Authentification Code, MAC, bezeichnet, berechnet und anhand des geheimen Schlüssels verifiziert.
  • Bei weiteren bevorzugten Ausführungsformen ist vorgesehen, dass das Authentisieren der externen Einheit und/oder eines Benutzers der externen Einheit und/oder das Authentifizieren des übertragenen Computerprogramms unter Verwendung von wenigstens einem kryptographischen, insbesondere privaten, Schlüssel, erfolgt. Vorteilhafterweise kann das Authentisieren und/oder Authentifizieren unter Verwendung eines asymmetrischen Schlüsselpaars oder unter Verwendung eines signierten, kryptographischen Hash oder unter Verwendung einer schlüsselabhängigen, kryptographischen Prüfsumme erfolgen.
  • Vorteilhafterweise werden zum Authentisieren der externen Einheit und/oder eines Benutzers der externen Einheit und zum Authentifizieren des übertragenen Computerprogramms voneinander verschiedene Schlüssel verwendet.
  • Bei weiteren bevorzugten Ausführungsformen ist vorgesehen, dass das Authentisieren der externen Einheit und/oder eines Benutzers der externen Einheit und/oder das Authentifizieren des übertragenen Computerprogramms weiter umfasst: Erzeugen einer Challenge, insbesondere umfassend eine Zufallszahl und/oder eine Pseudozufallszahl, Übertragen der Challenge an die externe Einheit und Empfangen der Challenge von der externen Einheit. Das Signieren der Challenge erfolgt durch die externe Einheit. Bei dem signaturbasierten Ansatz signiert die externe Einheit die Challenge mit dem kryptographischen, insbesondere privaten Schlüssel. Der zugehörige öffentliche Schlüssel zur Verifikation des privaten Schlüssels ist in der Vorrichtung gespeichert. Bei dem schlüsselabhängigen, prüfsummenbasierten Ansatz überträgt die externe Einheit eine schlüsselabhängige Prüfsumme, auch als Message Authentification Code, MAC, bezeichnet, wobei der Message Authentification Code basierend auf einem geheimen Schlüssel berechnet wird. Zur Verifikation des Message Authentification Code ist der geheime Schlüssel in der Vorrichtung gespeichert.
  • Bei weiteren bevorzugten Ausführungsformen ist vorgesehen, dass das Verfahren weiter umfasst: Setzen des ersten und/oder weiteren Analyse-Flags. Durch Setzen des ersten und gegebenenfalls des weiteren Analyse-Flags wird der Zugriff über die EoL-Schnittstelle freigegeben ohne irreversible Änderungen an der Hardware der Vorrichtung vorzunehmen.
  • Bei weiteren bevorzugten Ausführungsformen ist vorgesehen, dass das Verfahren weiter umfasst: Löschen des ersten und/oder weiteren Analyse-Flags. Durch Löschen des ersten und gegebenenfalls des weiteren Analyse-Flags wird der Zugriff über die EoL-Schnittstelle abgeriegelt ohne irreversible Änderungen an der Hardware der Vorrichtung vorzunehmen.
  • Bei weiteren bevorzugten Ausführungsformen ist vorgesehen, dass das Setzen und/oder Löschen des ersten und/oder weiteren Analyse-Flags durch die externe Einheit und/oder eines Benutzers der externen Einheit erfolgt.
  • Bei weiteren bevorzugten Ausführungsformen ist vorgesehen, dass vor dem Setzen und/oder Löschen ein Schritt zum Authentisieren der externen Einheit und/oder eines Benutzers der externen Einheit ausgeführt wird, und das Setzen und/oder Löschen nur nach erfolgreichem Authentisieren erfolgt. Es kann sich demgegenüber auch als vorteilhaft erweisen, wenn das Löschen des ersten und/oder des weiteren Analyse-Flags ohne vorhergehende Authentisierung erfolgen kann.
  • Bei weiteren bevorzugten Ausführungsformen ist vorgesehen, dass das Prüfen des ersten und/oder weiteren Analyse-Flags in Abhängigkeit einer Nutzungsphase, insbesondere eine Phase eines Lebenszyklus, der Vorrichtung ausgeführt wird.
  • Weitere bevorzugte Ausführungsformen beziehen sich auf eine Vorrichtung mit einer Schnittstelle zum Datenaustausch mit einer externen Einheit und mit wenigstens einer ersten Speichereinrichtung zum nichtflüchtigen Speichern eines ersten Analyse-Flags und mit wenigstens einer zweiten Speichereinrichtung zum Speichern von wenigstens einem, insbesondere durch die Vorrichtung ausführbaren Computerprogramm, insbesondere zum Steuern einer Ausführung einer Prüfsoftware, insbesondere einer End-of-Line Software, wobei die Vorrichtung zum Ausführen des Verfahrens gemäß den Ausführungsformen ausgebildet ist.
  • Bei weiteren bevorzugten Ausführungsformen ist die Schnittstelle der Vorrichtung vorzugsweise bidirektionale, Kommunikationsschnittstelle (Adressbus und/oder Datenbus und/oder serieller Kommunikationsbus oder dergleichen), über die die Vorrichtung zum Datenaustausch mit einer externen Einheit, insbesondere zum Prüfen der Vorrichtung, verbindbar ist.
  • Bei weiteren bevorzugten Ausführungsformen ist die zweite Speichereinrichtung eine Speichereinrichtung zum flüchtigen Speichern des wenigstens einen, insbesondere durch die Vorrichtung ausführbaren, Computerprogramms. Bei weiteren bevorzugten Ausführungsformen ist die zweite Speichereinrichtung ein Arbeitsspeicher, RAM, random access memory.
  • Bei weiteren bevorzugten Ausführungsformen ist vorgesehen, dass die Schnittstelle eine Prüf- und/oder Diagnoseschnittstelle, insbesondere eine Ethernet- oder CAN-Schnittstelle, ist.
  • Bei weiteren bevorzugten Ausführungsformen umfasst die erste Speichereinrichtung einen Speicherbereich mit privilegierten Zugriffsrechten. Vorteilhafterweise ist der Schreib- und/oder Lesezugriff auf diesen Speicherbereich nur durch ein Software-Sicherheitsmodul (SSM) möglich.
  • Bei weiteren bevorzugten Ausführungsformen ist vorgesehen, dass die erste Speichereinrichtung ein Hardware-Sicherheitsmodul (HSM), insbesondere ein Kryptographie-Modul, umfasst, oder Teil eines Hardware-Sicherheitsmodul (HSM), insbesondere eines Kryptographie-Modul, ist. Das Hardware-Sicherheitsmodul ist beispielsweise zur Ausführung von kryptographischen Verfahren bzw. Algorithmen oder zumindest von Teilen hiervon ausgebildet.
  • Bei weiteren bevorzugten Ausführungsformen ist vorgesehen, dass das Hardware-Sicherheitsmodul (HSM) über einen geschützten, insbesondere separaten, Speicher zur Speicherung des ersten Analyse-Flags verfügt.
  • Bei weiteren bevorzugten Ausführungsformen hat nur die Vorrichtung, insbesondere die Recheneinrichtung der Vorrichtung, die zur Ausführung des Verfahrens gemäß den Ausführungsformen ausgebildet ist, Lesezugriff auf den geschützten, insbesondere separaten, Speicher, insbesondere auf das in dem Hardware-Sicherheitsmodul gespeicherte erste Analyse-Flag. Vorteilhafterweise kann auch vorgesehen sein, dass das Hardware-Sicherheitsmodul eine Kopie des ersten Analyse-Flags in einer Speichereinrichtung, insbesondere einen Shared RAM Memory, auf die die Recheneinrichtung Zugriff hat, hinterlegt.
  • Bei weiteren bevorzugten Ausführungsformen ist vorgesehen, dass die Vorrichtung eine Recheneinrichtung, insbesondere durch eine Recheneinrichtung eines Computers, insbesondere durch eine Recheneinrichtung einer Vorrichtung gemäß den Ausführungsformen, insbesondere zum Ausführen des Verfahrens gemäß den Ausführungsformen, aufweist.
  • Bei weiteren bevorzugten Ausführungsformen weist die Recheneinrichtung der Vorrichtung wenigstens eines der folgenden Elemente auf: einen Mikroprozessor, einen Mikrocontroller, einen digitalen Signalprozessor (DSP), einen programmierbaren Logikbaustein (z.B. FPGA, field programmable gate array), einen ASIC (anwendungsspezifischen integrierten Schaltkreis), eine Hardwareschaltung. Bei weiteren bevorzugten Ausführungsformen sind auch Kombinationen hieraus denkbar.
  • Weitere bevorzugte Ausführungsformen beziehen sich auf ein computerlesbares Speichermedium, umfassend Befehle, insbesondere in Form eines Computerprogramms, die bei der Ausführung durch einen Computer, insbesondere durch eine Recheneinrichtung eines Computers, insbesondere durch eine Recheneinrichtung einer Vorrichtung gemäß den Ausführungsformen, diesen veranlassen, das Verfahren gemäß den Ausführungsformen auszuführen. Bei weiteren bevorzugten Ausführungsformen kann vorgesehen sein, dass das Speichermedium die erste Speichereinrichtung der Vorrichtung umfasst oder Teil der ersten Speichereinrichtung der Vorrichtung ist.
  • Weitere bevorzugte Ausführungsformen beziehen sich auf ein Computerprogramm, das computerlesbare Instruktionen umfasst, bei deren Ausführung durch einen Computer, insbesondere durch eine Recheneinrichtung eines Computers, insbesondere durch eine Recheneinrichtung einer Vorrichtung gemäß den Ausführungsformen, das Verfahren gemäß den Ausführungsformen abläuft.
  • Weitere bevorzugte Ausführungsformen beziehen sich auf ein Datenträgersignal, das das Computerprogramm gemäß den Ausführungsformen überträgt.
  • Weitere bevorzugte Ausführungsformen beziehen sich auf eine Verwendung des Verfahrens gemäß den Ausführungsformen und/oder der Vorrichtung gemäß den Ausführungsformen und/oder des Computerprogramms gemäß den Ausführungsformen zum Aktivieren, insbesondere Reaktivieren einer Schnittstelle, insbesondere einer Prüf-, insbesondere einer End-of-Line (EoL) - Schnittstelle, und/oder zum Deaktivieren der Schnittstelle der Vorrichtung einer Vorrichtung zum Übertragen eines durch die Vorrichtung ausführbaren Computerprogramms, insbesondere zum Steuern einer Ausführung einer Prüfsoftware, insbesondere einer End-of-Line (EoL) Software in Abhängigkeit eines ersten und/oder eines weiteren Analyse-Flags FA, FR.
  • Weitere bevorzugte Ausführungsformen beziehen sich auf eine Verwendung des Verfahrens gemäß den Ausführungsformen und/oder der Vorrichtung gemäß den Ausführungsformen und/oder des Computerprogramms gemäß den Ausführungsformen zum Freigeben oder Nicht-Freigeben der Ausführung eines durch die Vorrichtung ausführbaren, über die Schnittstelle der Vorrichtung übertragenen Computerprogramms.
  • Weitere Merkmale, Anwendungsmöglichkeiten und Vorteile der Erfindung ergeben sich aus der nachfolgenden Beschreibung von Ausführungsbeispielen der Erfindung, die in den Figuren der Zeichnung dargestellt sind. Dabei bilden alle beschriebenen oder dargestellten Merkmale für sich oder in beliebiger Kombination den Gegenstand der Erfindung, unabhängig von ihrer Zusammenfassung in den Patentansprüchen oder deren Rückbeziehung sowie unabhängig von ihrer Formulierung bzw. Darstellung in der Beschreibung bzw. in der Zeichnung.
  • In der Zeichnung zeigt:
    • 1 ein vereinfachtes Blockdiagramm einer Vorrichtung gemäß bevorzugten Ausführungsformen und eine externe Einheit;
    • 2 schematisch ein vereinfachtes Flussdiagramm von Teilen eines Verfahrens gemäß weiteren bevorzugten Ausführungsformen;
    • 3 schematisch ein vereinfachtes Flussdiagramm von Teilen eines Verfahrens gemäß weiteren bevorzugten Ausführungsformen;
    • 4 schematisch ein vereinfachtes Flussdiagramm von Teilen eines Verfahrens gemäß weiteren bevorzugten Ausführungsformen;
    • 5 schematisch ein vereinfachtes Flussdiagramm von Teilen eines Verfahrens gemäß weiteren bevorzugten Ausführungsformen, und
    • 6 schematisch ein vereinfachtes Flussdiagramm von Teilen eines Verfahrens gemäß weiteren bevorzugten Ausführungsformen.
  • 1 zeigt schematisch ein vereinfachtes Blockdiagramm einer Vorrichtung 100 gemäß bevorzugten Ausführungsformen. Bei der Vorrichtung 100 handelt es sich bevorzugt um ein Steuergerät (Electronic Control Unit, ECU).
  • Bei weiteren bevorzugten Ausführungsformen kann die Vorrichtung 100 als Steuergerät, insbesondere für ein Kraftfahrzeug, beispielsweise für eine Brennkraftmaschine eines Kraftfahrzeugs, ausgebildet sein. Bei weiteren bevorzugten Ausführungsformen ist die Anwendung des Prinzips gemäß den Ausführungsformen jedoch nicht auf den Kraftfahrzeugbereich bzw. den Bereich von Steuergeräten beschränkt.
  • Die Vorrichtung 100 weist bevorzugt wenigstens eine Recheneinrichtung 110 auf, der beispielsweise eine Speichereinrichtung 130, 140 zugeordnet sein kann, insbesondere zur zumindest zeitweisen Speicherung wenigstens eines Computerprogramms PRG1, PRG2, insbesondere zur Steuerung eines Betriebs der Vorrichtung 100. Bei weiteren bevorzugten Ausführungsformen können in der Speichereinrichtung 130, 140 mehrere Computerprogramme gespeichert sein, z.B. ein Bootloader, also ein Computerprogramm, das einen Startprozess der Vorrichtung bzw. der Recheneinrichtung 110 der Vorrichtung 100 bzw. das Aufrufen weiterer Computerprogramme PRG1, PRG2, insbesondere nach dem Startprozess, steuern kann, sowie die weiteren Computerprogramme PRG1, PRG2, bei denen es sich beispielsweise um ein Betriebssystem und/oder Anwendungsprogramme der Vorrichtung 100 handelt.
  • Bei weiteren bevorzugten Ausführungsformen weist die Recheneinrichtung 110 wenigstens eines der folgenden Elemente auf: einen Mikroprozessor, einen Mikrocontroller, einen digitalen Signalprozessor (DSP), einen programmierbaren Logikbaustein (z.B. FPGA, field programmable gate array), einen ASIC (anwendungsspezifischen integrierten Schaltkreis), eine Hardwareschaltung. Bei weiteren bevorzugten Ausführungsformen sind auch Kombinationen hieraus denkbar.
  • Die Vorrichtung 100 weist eine Schnittstelle 120 auf. Bei der Schnittstelle 120 kann es sich beispielsweise um eine, vorzugsweise bidirektionale, Kommunikationsschnittstelle (Adressbus und/oder Datenbus und/oder serieller Kommunikationsbus oder dergleichen) handeln, über die die Vorrichtung 100 zum Datenaustausch mit einer externen Einheit 200, insbesondere zum Prüfen der Vorrichtung 100, verbindbar ist. Bei der externen Einheit handelt es sich beispielsweise um einen Computer, insbesondere einen Prüfcomputer, der eine Recheneinheit sowie zumindest einen mit der Recheneinheit verbundene Speichereinheit aufweist, und auf der eine Software, insbesondere eine Prüfsoftware, ausführbar gespeichert ist. Zum Prüfen der Vorrichtung 100, beispielsweise im Rahmen einer End-of-Line (EoL) Prüfung, insbesondere am Ende des Fertigungsprozesses der Vorrichtung 100, wird über die Schnittstelle 120 ein Computerprogramm PRG1, insbesondere zum Steuern einer Ausführung einer Prüfsoftware, insbesondere einer End-of-Line (EoL) Software, von der externen Einheit 200 in die Vorrichtung 100, insbesondere in eine Speichereinrichtung 140 der Vorrichtung 100, übertragen.
  • Bei weiteren bevorzugten Ausführungsformen ist vorgesehen, dass die Schnittstelle 120 eine, insbesondere universelle, Prüf- und/oder Diagnoseschnittstelle, insbesondere eine Ethernet- oder CAN-Schnittstelle, ist.
  • Vorteilhafterweise ist über die Schnittstelle 120 eine Prüfung, insbesondere Hardware und/oder Software Prüfung der Vorrichtung 100 möglich. Dabei ist über die Schnittstelle 120, insbesondere beim Ausführen einer Prüfsoftware, insbesondere einer End-of-Line (EoL) Software, ein Zugriff auf Hardware der Vorrichtung 100 möglich. Um einen potenziellen Missbrauch dieses Zugriffs über die Schnittstelle 120 zu verhindern, soll die Schnittstelle 120 mit geeigneten Maßnahmen abgesichert werden. Vorteilhafte Ausführungsformen von solchen Maßnahmen zur Absicherung der Schnittstelle 120 werden im Folgenden unter Bezugnahme auf die 1 bis 6 beschrieben.
  • Gemäß einer bevorzugten Ausführungsform umfasst die Vorrichtung 100 wenigstens eine erste Speichereinrichtung 130 zum nichtflüchtigen Speichern eines ersten Analyse-Flags FA und wenigstens eine zweite Speichereinrichtung 140 zum Speichern des wenigstens einen, insbesondere durch die Vorrichtung ausführbaren, Computerprogramm PRG1, insbesondere zum Steuern einer Ausführung einer Prüfsoftware, insbesondere einer End-of-Line (EoL) Software.
  • Bei der zweiten Speichereinrichtung 140 zum Speichern des Computerprogramms PRG1 handelt es sich beispielsweise um eine Speichereinrichtung zum flüchtigen Speichern des Computerprogramms PRG1, beispielsweise um einen Arbeitsspeicher, RAM, random access memory. Im Rahmen des Prüfens der Vorrichtung 100, beispielsweise im Rahmen einer End-of-Line (EoL) Prüfung, insbesondere am Ende des Fertigungsprozesses der Vorrichtung 100, wird über die Schnittstelle 120 das Computerprogramm PRG1 in die Speichereinrichtung 140 der Vorrichtung 100, übertragen.
  • Bei weiteren bevorzugten Ausführungsformen umfasst das Computerprogramm PRG1 privilegierte Rechte, insbesondere kann beim Ausführen des Computerprogramms PRG1, insbesondere beim Ausführen einer Prüfsoftware, insbesondere einer End-of-Line (EoL) Software, ein Zugriff auf Hardware der Vorrichtung 100 und/oder das Auslesen und/oder Schreiben von Speichereinrichtungen der Vorrichtung 100 möglich sein. Um einen potenziellen Missbrauch dieser privilegierten Rechte zu verhindern, kann es vorteilhaft sein, das Computerprogramm PRG1 nach dem Ausführen aus der zweiten Speichereinrichtung 140 der Vorrichtung 100 zu löschen.
  • Aufgrund des charakteristischen Verhaltens von flüchtigen Speichern wird das Computerprogramm PRG1 insbesondere beim Durchführen eines Hardware-, HW/Power-off Resets, insbesondere Abschalten einer Versorgungsspannung der Vorrichtung 100, aus der zweiten Speichereinrichtung 140 gelöscht. Das Löschen des Computerprogramms PRG1 erfolgt also mit Durchführen des HW/ Power-off Resets, ein explizites Löschen ist nicht erforderlich. Ferner beansprucht das Computerprogramm PRG1 durch Verorten im flüchtigen Speicher keinen, insbesondere permanenten, Speicher der ersten Speichereinrichtung 130.
  • Bei dem Computerprogramm PRG1 handelt es sich insbesondere um ein Computerprogramm zum Steuern der Ausführung einer Prüfsoftware, insbesondere einer End-of-Line (EoL) Software. Gemäß weiteren bevorzugten Ausführungsformen kann das Computerprogramm PRG1 auch die Prüfsoftware, insbesondere die End-of-Line (EoL) Software, oder Teile davon umfassen. Das Computerprogramm PRG1 ist vorteilhafterweise dazu ausgebildet ist, Operationen, insbesondere systemnahe Operationen, insbesondere eine Hardware-Prüfung, insbesondere Hardware-Endprüfung, der Vorrichtung 100, und/oder eine Bedatung der Vorrichtung 100, insbesondere Übertragen und/oder Freischalten von wenigstens einer Funktion und/oder wenigstens einer Konfiguration, auszuführen.
  • Bei weiteren bevorzugten Ausführungsformen ist das Computerprogramm PRG1 vorteilhafterweise zum Setzen und/oder Löschen des ersten und/oder des weiteren Analyse-Flags FA, FR ausgebildet. Das Computerprogramm PRG1 umfasst vorteilhafterweise computerlesbare Instruktionen, bei deren Ausführung durch die Vorrichtung 100, insbesondere durch die Recheneinrichtung 110 der Vorrichtung 100 das Setzen und/oder das Löschen der Analyse-Flags FA, FR ausgeführt wird, vgl. hierzu die nachfolgenden Beschreibungen unter Bezugnahme auf 5 und 6.
  • Das Computerprogramm PRG1 kann insbesondere als eine Datei, insbesondere Hex-Datei, oder sukzessive als mehrere, insbesondere für sich exekutierbare-Dateien, insbesondere Hex-Dateien, in die zweite Speichereinrichtung 140 übertragen werden, wobei der Begriff Hex-Datei jegliche maschinenlesbare Codeform umfassen kann. Insbesondere kann die Übertragung des Computerprogramms PRG1 als Gesamt-Hex-Datei oder als mehrere Einzel-Hex-Dateien vorteilhafterweise an verfügbaren Speicherplatz der zweiten Speichereinrichtung 140 angepasst werden.
  • Bei der ersten Speichereinrichtung 130 handelt es sich beispielsweise einen Speicherbereich mit privilegierten Zugriffsrechten. Vorteilhafterweise ist der Schreib- und/oder Lesezugriff auf diesen Speicherbereich nur durch ein Software-Sicherheitsmodul (SSM) möglich. Ein Software-Sicherheitsmodul umfasst insbesondere ein in Software implementiertes Verschlüsselungsprogramm in welchem wenigstens ein Verschlüsselungsalgorithmus implementiert ist. Gemäß einer Ausführungsform verwaltet das Software-Sicherheitsmodul kryptographische Schlüsselmaterial, insbesondere zum Ausführen des Verschlüsselungsalgorithmus. Bei weiteren bevorzugten Ausführungsformen ist vorgesehen, dass das Software-Sicherheitsmodul das Verfahren gemäß den Ausführungsformen zumindest teilweise oder vollständig ausführt, insbesondere einen Schritt zum Setzen und/oder Löschen des ersten Analyse-Flags FA. Bei weiteren bevorzugten Ausführungsformen ist vorgesehen, dass das Software-Sicherheitsmodul das erste Analyse-Flag FA verwaltet (insbesondere setzt und/oder löscht), und/oder prüft. Bei weiteren bevorzugten Ausführungsformen ist vorgesehen, dass das Software-Sicherheitsmodul dazu ausgebildet ist, ein Ergebnis des Prüfens des ersten Analyse-Flags FA an eine weitere Einheit, z.B. die Recheneinrichtung 110, auszugeben.
  • Bei weiteren bevorzugten Ausführungsformen ist vorgesehen, dass die erste Speichereinrichtung 130 ein Hardware-Sicherheitsmodul (HSM), insbesondere ein Kryptographie-Modul, umfasst, oder Teil eines Hardware-Sicherheitsmodul (HSM), insbesondere eines Kryptographie-Modul, ist. Das Hardware-Sicherheitsmodul ist beispielsweise zur Ausführung von kryptographischen Verfahren bzw. Algorithmen oder zumindest von Teilen hiervon ausgebildet. Gemäß einer Ausführungsform verwaltet das Hardware-Sicherheitsmodul kryptographische Schlüsselmaterial, insbesondere zum Ausführen von kryptographischen Verfahren bzw. Algorithmen. Bei weiteren bevorzugten Ausführungsformen ist vorgesehen, dass das Hardware-Sicherheitsmodul (HSM) über einen geschützten, insbesondere separaten, Speicher zum Speichern des ersten Analyse-Flags FA verfügt. Besonders bevorzugt hat nur die Vorrichtung 100, insbesondere die Recheneinrichtung 110 der Vorrichtung 100, die zur Ausführung des Verfahrens gemäß den Ausführungsformen ausgebildet ist, Lesezugriff auf das in dem Hardware-Sicherheitsmodul gespeicherte erste Analyse-Flag FA. Bei weiteren bevorzugten Ausführungsformen ist vorgesehen, dass das Hardware-Sicherheitsmodul bzw. Kryptographiemodul das Verfahren gemäß den Ausführungsformen zumindest teilweise oder vollständig ausführt, insbesondere einen Schritt zum Setzen und/oder Löschen des ersten Analyse-Flags FA. Bei weiteren bevorzugten Ausführungsformen ist vorgesehen, dass das Hardware-Sicherheitsmodul bzw. Kryptographiemodul das erste Analyse-Flag FA verwaltet (insbesondere setzt und/oder löscht), und/oder prüft. Bei weiteren bevorzugten Ausführungsformen ist vorgesehen, dass das Hardware-Sicherheitsmodul bzw. Kryptographiemodul dazu ausgebildet ist, ein Ergebnis des Prüfens des ersten Analyse-Flags FA an eine weitere Einheit, z.B. die Recheneinrichtung 110, auszugeben.
  • Die Vorrichtung 100, insbesondere die Recheneinrichtung 110 der Vorrichtung 100, ist zum Ausführen eines Verfahrens 300 ausgebildet, das im Folgenden unter Bezugnahme auf die Figuren beschrieben wird.
  • Weitere bevorzugte Ausführungsformen beziehen sich auf ein Verfahren 300 zum Betreiben der Vorrichtung 100, wobei das Verfahren 300 vorteilhafterweise im Rahmen und/oder im Anschluss eines Startvorgangs bzw. eines Bootvorgangs der Vorrichtung 100 ausgeführt wird. Das Verfahren 300 gemäß den Ausführungsformen umfasst die folgenden Schritte, vgl. auch das vereinfachte Flussdiagramm aus 2:
    • Prüfen 310, ob das erste Analyse-Flag FA in der ersten Speichereinrichtung 130 gesetzt ist, und wenn das erste Analyse-Flag gesetzt ist, Ausführen eines Schritts 320a zum Übertragen des wenigstens eine Computerprogramms PRG1, von der externen Einheit 200 über die Schnittstelle 120 in die zweite Speichereinrichtung 140 der Vorrichtung 100, und/oder Ausführen eines Schritts 320b zum Ausführen des Computerprogramms durch die Recheneinrichtung, und wenn das erste Analyse-Flag FA nicht gesetzt ist, der Schritt zum Übertragen 320a und/oder der Schritt zum Ausführen 320b nicht ausgeführt wird.
  • Vorteilhafterweise wird, wenn das erste Analyse-Flag FA nicht gesetzt ist, die Vorrichtung 100 in einem Schritt 330 in einen Applikations-Zustand versetzt. Vorteilhafterweise kann ein weiterer, insbesondere optionaler Schritt zum Abfragen, ob eine Programmierungsanfrage, insbesondere eine Reprogrammierungsanfrage, insbesondere zum Programmieren der Vorrichtung 100 mit einem Anwendungsprogramm, vorliegt, vorgesehen sein. Abhängig von dem Ergebnis der Abfrage werden dann vorteilhafterweise weitere, insbesondere optionale, Schritte zum Ausführen einer Programmierung, insbesondere einer Reprogrammierung, oder Ausführen einer Anwendung ausgeführt.
  • Im Anschluss an das Übertragen 320a wird das Computerprogramms PRG1 vorteilhafterweise ausgeführt (in 2 nicht dargestellt).
  • Nach Ausführen des Computerprogramms PRG1 wird das Computerprogramm PRG1, insbesondere beim Durchführen eines HW/ Power-off Resets, insbesondere Abschalten einer Versorgungsspannung der Vorrichtung 100, aus der zweiten Speichereinrichtung 140 gelöscht. Die Reservierung von Speicherplatz durch das Computerprogramm PRG1 erfolgt also ausschließlich temporär, insbesondere im Rahmen des Prüfens der Vorrichtung 100, insbesondere im Rahmen einer End-of-Line (EoL) Prüfung. Anschließend kann der entsprechende Speicherplatz der zweiten Speichereinrichtung 140, beispielsweise beim Verwenden der Vorrichtung 100 im Normalbetrieb, beispielsweise als Steuergerät in einem Kraftfahrzeug, zum Ausführen von weiteren Funktionen, Anwendungen der Vorrichtung 100 verwendet werden.
  • Bei weiteren bevorzugten Ausführungsformen erfolgt das Übertragen 320a und/oder Ausführen 320b des Computerprogramms PRG1 von der externen Einheit 200 über die Schnittstelle 120 in die zweite Speichereinrichtung 140 in Abhängigkeit des ersten Analyse-Flags FA.
  • Bei weiteren bevorzugten Ausführungsformen ist vorgesehen, dass in einem Schritt 340 geprüft wird, ob ein weiteres Analyse-Flag FR gesetzt ist, und wenn das weitere Analyse-Flag FR gesetzt ist, der Schritt 310 zum Prüfen des ersten Analyse-Flag FA ausgeführt wird.
  • Das weitere Analyse-Flag ist beispielsweise in einer hoch performant auslesbaren Speichereinrichtung der Vorrichtung, insbesondere in einem Arbeitsspeicher, RAM, random access memory abgespeichert. Dies kann sich insbesondere aus Performance- bzw. Taktzeitgründen beim Bootvorgang der Vorrichtung als vorteilhaft erweisen. Das erste Analyse-Flag FA, das in der ersten Speichereinrichtung 130 der Vorrichtung 100 gespeichert ist, wird gemäß dieser Ausführungsform nur dann geprüft, wenn das weitere Analyse-Flag FR auch gesetzt ist.
  • Das weitere Analyse-Flag FR beispielsweise in der zweiten Speichereinrichtung 140 gespeichert.
  • Weitere bevorzugte Ausführungsformen des Verfahrens werden im Folgenden unter Bezugnahme auf 3 erläutert.
  • Bei weiteren bevorzugten Ausführungsformen ist vorgesehen, dass zwischen dem Schritt 310 des Prüfens des ersten Analyse-Flags FA und dem Schritt des Übertragens 320a des Computerprogramms ein Schritt 350 zum Authentisieren der externen Einheit 200 und/oder eines Benutzers der externen Einheit 200 ausgeführt wird, wobei nach erfolgreichem Authentisieren der Schritt 320a zum Übertragen des wenigstens eine Computerprogramms PRG1, über die Schnittstelle 120 in die zweite Speichereinrichtung 140 der Vorrichtung 100 ausgeführt wird, und nach nicht erfolgreichem Authentisieren das wenigstens eine Computerprogramms PRG1, nicht übertragen wird.
  • Bei weiteren bevorzugten Ausführungsformen ist ein Schritt 360 zum Authentifizieren des übertragenen Computerprogramms PRG1 vorgesehen, wobei nach erfolgreichem Authentifizieren des übertragenen Computerprogramms PRG1 das Ausführen 320b des übertragenen Computerprogramms PRG1 durch die Vorrichtung 100 erfolgt, und nach nicht erfolgreichem Authentifizieren das Computerprogramms PRG1 nicht ausgeführt wird. Das Authentifizieren 360 umfasst insbesondere eine Integritäts -und/oder Authentizitätsprüfung des übertragenen Computerprogramms
  • Bei weiteren bevorzugten Ausführungsformen ist vorgesehen, dass das Authentisieren 350 der externen Einheit 200 und/oder eines Benutzers der externen Einheit 200 und/oder das Authentifizieren 360 des übertragenen Computerprogramms PRG1 unter Verwendung eines signaturbasierten oder schlüsselabhängigen, prüfsummenbasierten Ansatzes erfolgt.
  • Bei weiteren bevorzugten Ausführungsformen ist vorgesehen, dass das Authentisieren 350 der externen Einheit 200 und/oder eines Benutzers der externen Einheit 200 und/oder das Authentifizieren 360 des übertragenen Computerprogramms PRG1 unter Verwendung von wenigstens einem kryptographischen, insbesondere privaten, Schlüssel, erfolgt. Vorteilhafterweise kann das Authentisieren und/oder Authentifizieren unter Verwendung eines asymmetrischen Schlüsselpaars oder unter Verwendung eines signierten, kryptographischen Hash oder unter Verwendung einer schlüsselabhängigen, kryptographischen Prüfsumme erfolgen.
  • Bei weiteren bevorzugten Ausführungsformen ist vorgesehen, dass das Authentisieren 350 der externen Einheit 200 und/oder eines Benutzers der externen Einheit 200 und/oder das Authentifizieren 360 des übertragenen Computerprogramms PRG1 weiter umfasst: Erzeugen einer Challenge, insbesondere umfassend eine Zufallszahl und/oder eine Pseudozufallszahl, Übertragen der Challenge an die externe Einheit 200 und Empfangen der Challenge von der externen Einheit 200.
  • Das Authentisieren 350 der externen Einheit 200 und/oder eines Benutzers der externen Einheit 200 und/oder das Authentifizieren 360 des übertragenen Computerprogramms PRG1 wird für den signaturbasierten Ansatz nun unter Bezugnahme auf 3 und 4 beschrieben.
  • Das Authentisieren der externen Einheit 200 und/oder eines Benutzers der externen Einheit 200 gegenüber der Vorrichtung 100 umfasst insbesondere das Stellen einer Sicherheitsanfrage durch die externen Einheit 200 und/oder des Benutzers der externen Einheit 200. In einem Schritt 400 wird daraufhin eine Challenge, insbesondere umfassend eine Zufallszahl und/oder eine Pseudozufallszahl erzeugt und an die externe Einheit 200, insbesondere als Antwort auf die gestellte Sicherheitsanfrage, übertragen 410.
  • Bei weiteren Ausführungsformen ist vorgesehen, dass das Erzeugen 400 der Challenge per HSM oder durch Generieren mittels einer geeigneten Software erfolgt. Die externe Einheit 200 und/oder der Benutzer der externen Einheit 200 signiert die Challenge mit einem, insbesondere projektspezifischen, privaten Schlüssel und überträgt eine Response an die Vorrichtung 100.
  • In einem Schritt 420 empfängt die Vorrichtung 100 die Response. In einem Schritt 430 verifiziert die Vorrichtung 100 die empfangene Response mittels eines zum privaten Schlüssel der externen Einheit 200 und/oder des Benutzers der externen Einheit 200 passenden weiteren, insbesondere öffentlichen, Schlüssels.
  • Im Falle einer erfolgreichen Verifikation 430, wenn die Response authentisch ist, wird das Computerprogramm PRG1 im Schritt 320a übertragen. Im Falle einer nicht erfolgreichen Verifikation wird das Computerprogramm nicht übertragen.
  • Gemäß der dargestellten Ausführungsform ist weiter vorgesehen, dass das Verfahren weiter umfasst: Authentifizieren 360 des übertragenen Computerprogramms PRG1, wobei das Ausführen 320b des Computerprogramms PRG1 erst nach erfolgreichem Authentifizieren 360 erfolgt.
  • Zu diesem Zweck signiert die externe Einheit 200 und/oder der Benutzer der externen Einheit das Computerprogramm PRG1 ebenfalls mit einem, insbesondere projektspezifischen, privaten Schlüssel und überträgt das signierte Computerprogramm PRG1 an die Vorrichtung 100. Die Vorrichtung 100 empfängt das signierte Computerprogramm PRG1.
  • In einem Schritt 440 verifiziert die Vorrichtung 100 das empfangene signierte Computerprogramm PRG1 mittels eines zum privaten Schlüssel der externen Einheit 200 und/oder des Benutzers der externen Einheit 200 passenden weiteren, insbesondere öffentlichen, Schlüssels.
  • Im Falle einer erfolgreichen Verifikation 440, wenn also der verifiziert werden kann, dass das Computerprogram PRG1 integer ist, wird das Computerprogramm PRG1 im Schritt 320b ausgeführt. Im Falle einer nicht erfolgreichen Verifikation 440 wird das Computerprogramm PRG1 nicht ausgeführt.
  • Weitere bevorzugte Ausführungsformen des Verfahrens werden im Folgenden unter Bezugnahme auf 5 erläutert
  • Bei weiteren bevorzugten Ausführungsformen umfasst das Verfahren 300 einen Schritt 500 zum Setzen ersten Analyse-Flags FA. Das Setzen 500 des ersten Analyse-Flags FA erfolgt beispielsweise mittels einem Software-Sicherheitsmodul (SSM) oder einem Hardware-Sicherheitsmodul (HSM).
  • Gemäß einer weiteren Ausführungsform umfasst das Verfahren 300 einen Schritt 510 zum Setzen des weiteren Analyse-Flags FR.
  • Das Versetzen der Vorrichtung 100 in einen Analyse-Zustand durch Setzen des ersten und gegebenenfalls des weiteren Analyse-Flags FA, FR ermöglicht das Aktivieren des Analyse-Zustands ohne des Systemverhalten der Vorrichtung irreversibel zu ändern. Vorteilhafterweise ermöglicht dies die Wiederverwendbarkeit der Vorrichtung 100.
  • Gemäß weiterer bevorzugter Ausführungsformen umfasst das Verfahren 300 einen Schritt 520 zum Löschen des ersten Analyse-Flags FA, vgl. 6. Das Löschen 520 des ersten Analyse-Flags erfolgt beispielsweise mittels einem Software-Sicherheitsmodul oder einem Hardware-Sicherheitsmodul.
  • Gemäß einer weiteren Ausführungsform umfasst das Verfahren 300 weiter einen Schritt 530 zum Löschen des weiteren Analyse-Flags FR.
  • Auf diese Weise kann Absicherung des EoL-Zugangs Aktivieren des Analyse-Zustands ohne des Systemverhalten der Vorrichtung irreversibel zu ändern.
  • Bei weiteren bevorzugten Ausführungsformen ist vorgesehen, dass das Setzen 500, 510 und/oder Löschen 520, 530 des ersten und/oder weiteren Analyse-Flags FA, FR durch die externe Einheit und/oder eines Benutzers der externen Einheit 200 erfolgt.
  • Bei weiteren bevorzugten Ausführungsformen ist vorgesehen, dass vor dem Setzen 500, 510 und/oder Löschen 520, 530 ein Schritt zum Authentisieren 350 der externen Einheit 200 und/oder eines Benutzers der externen Einheit 200 ausgeführt wird, und das Setzen und/oder Löschen nur nach erfolgreichem Authentisieren erfolgt. Der Schritt 350 zum Authentisieren erfolgt beispielsweise wie bereits vorstehend beschrieben.
  • Bei weiteren Ausführungsformen kann ein automatisches Löschen des ersten und/oder weiteren Analyse-Flags FA, FR vorgesehen sein. Ein automatisches Löschen kann insbesondere durch einen Hardware Reset (reboot) oder nach einer bestimmten Anzahl von durchgeführten Hardware Resets oder nach Ablauf einer vorgebbaren Zeit erfolgen.
  • Bei weiteren bevorzugten Ausführungsformen ist vorgesehen, dass das Prüfen 310, 340 des ersten und/oder weiteren Analyse-Flags FA, FR in Abhängigkeit einer Nutzungsphase, insbesondere eine Phase eines Lebenszyklus, der Vorrichtung 100 ausgeführt wird. Nutzungsphasen der Vorrichtung 100 sind gemäß bevorzugten Ausführungsformen beispielsweise eine erste Nutzungsphase, auch als Produktionsphase (Tier1-Produktion) bezeichnet, eine zweite Nutzungsphase, auch als Lagerphase (Lager) bezeichnet, eine dritte Nutzungsphase, auch als Feldphase (OEM-Produktion/ Feld) bezeichnet, eine vierte Nutzungsphase, auch als Rückläuferphase (Rückläuferanalyse) bezeichnet. In der ersten Nutzungsphase wird die Vorrichtung 100 produziert und befindet sich beim Hersteller (Tier1). In dieser Phase wird, insbesondere im Anschluss an den Herstellungsprozess der Vorrichtung 100, vorteilhafterweise eine Prüfung der Vorrichtung 100, beispielsweise eine End-of-Line (EoL) Prüfung, durchgeführt. In der der zweiten Nutzungsphase wird die Vorrichtung 100 zumindest zeitweise, insbesondere in einer Lagereinrichtung des Herstellers oder in einer externen Lagereinrichtung, gelagert. In dieser Phase wird, insbesondere vor einer Auslieferung an einen Kunden, insbesondere OEM, vorteilhafterweise eine erneute Prüfung der Vorrichtung 100, beispielsweise eine End-of-Line (EoL) Prüfung, durchgeführt. In der dritten Nutzungsphase wird die Vorrichtung 100 beim Kunden, insbesondere bei einem OEM oder im Feld, verwendet. Während dieser Nutzungsphase soll keine Prüfung der Vorrichtung 100, insbesondere keine EoL-Prüfung, möglich sein. In der vierten Nutzungsphase ist die Vorrichtung 100 wieder beim Hersteller und wird dort beispielsweise im Rahmen einer Rückläuferanalyse (erneut) überprüft. Das erfindungsgemäße Verfahren kann insbesondere zum Reaktivieren der Schnittstelle 120 im Rahmen der Rückläuferanalyse und zum Deaktivieren der Schnittstelle 120 nach Abschluss der Rückläuferanalyse verwendet werden.
  • Weitere Ausführungsformen betreffen die Verwendung des Verfahrens 300 gemäß den Ausführungsformen und/oder der Vorrichtung 100 gemäß den Ausführungsformen zum Aktivieren, insbesondere Reaktivieren der Schnittstelle 120 der Vorrichtung 100, insbesondere einer Prüf-, insbesondere einer End-of-Line (EoL) -Schnittstelle, und/oder zum Deaktivieren der Schnittstelle 120 der Vorrichtung 100 zum Übertragen eines durch die Vorrichtung 100 ausführbaren Computerprogramms PRG1, insbesondere zum Steuern einer Ausführung 360 einer Prüfsoftware, insbesondere einer End-of-Line (EoL) Software in Abhängigkeit eines ersten und/oder eines weiteren Analyse-Flags FA, FR.

Claims (17)

  1. Verfahren (300) zum Betreiben einer Vorrichtung (100), die eine Schnittstelle (120) zum Datenaustausch mit einer externen Einheit (200) aufweist und wenigstens eine erste Speichereinrichtung (130) zum nichtflüchtigen Speichern eines ersten Analyse-Flags (FA), und wenigstens eine zweite Speichereinrichtung (140) zum Speichern von wenigstens einem, insbesondere durch eine Recheneinrichtung (110) der Vorrichtung (100) ausführbaren, Computerprogramm (PRG1), wobei das Verfahren (300) die folgenden Schritte umfasst: Prüfen (310), ob das erste Analyse-Flag (FA) in der ersten Speichereinrichtung (130) gesetzt ist, und wenn das erste Analyse-Flag gesetzt ist, ein Schritt (320a) zum Übertragen des wenigstens eine Computerprogramms (PRG1), von der externen Einheit (200) über die Schnittstelle (120) in die zweite Speichereinrichtung (140) der Vorrichtung (100) ausgeführt wird, und/oder in ein Schritt (320b) zum Ausführen des Computerprogramms (PRG1) durch die Recheneinrichtung (110) ausgeführt wird, und wenn das erste Analyse-Flag (FA) nicht gesetzt ist, der Schritt zum Übertragen und/oder der Schritt zum Ausführen nicht ausgeführt wird.
  2. Verfahren (300) nach Anspruch 1, wobei das Verfahren weiter umfasst: Prüfen (340), ob ein weiteres Analyse-Flag (FR) gesetzt ist, und wenn das weitere Analyse-Flag (FR) gesetzt ist, der Schritt (310) zum Prüfen des ersten Analyse-Flag (FA) ausgeführt wird.
  3. Verfahren (300) nach wenigstens einem der vorhergehenden Ansprüche, wobei, wenn das erste Analyse-Flag (FA) gesetzt ist, zwischen dem Schritt des Prüfens (310) des ersten Analyse-Flags (FA) und dem Schritt des Übertragens (320b) des Computerprogramms (PRG1) ein Schritt zum Authentisieren (350) der externen Einheit (200) und/oder eines Benutzers der externen Einheit (200) ausgeführt wird, wobei nach erfolgreichem Authentisieren (350) der Schritt (320a) zum Übertragen des wenigstens eine Computerprogramms (PRG1), über die Schnittstelle (120) in die zweite Speichereinrichtung (140) der Vorrichtung (100) ausgeführt wird, und nach nicht erfolgreichem Authentisieren (350) das wenigstens eine Computerprogramms (PRG1), nicht übertragen wird.
  4. Verfahren (300) nach wenigstens einem der vorhergehenden Ansprüche, wobei das Verfahren weiter umfasst: Authentifizieren (360) des übertragenen Computerprogramms (PRG1), wobei nach erfolgreichem Authentifizieren (360) des übertragenen Computerprogramms (PRG1) das Ausführen (320a) des übertragenen Computerprogramms (PRG1) durch die Vorrichtung (100) erfolgt, und nach nicht erfolgreichem Authentifizieren (360) des Computerprogramms (PRG1) das übertragene Computerprogramm (PRG1) nicht ausgeführt wird.
  5. Verfahren (300) nach wenigstens einem der vorhergehenden Ansprüche, wobei das Authentisieren (350) der externen Einheit (200) und/oder eines Benutzers der externen Einheit (200) und/oder das Authentifizieren (360) des übertragenen Computerprogramms (PRG1) unter Verwendung eines signaturbasierten oder schlüsselabhängigen, prüfsummenbasierten Ansatzes erfolgt.
  6. Verfahren (300) nach wenigstens einem der vorhergehenden Ansprüche, wobei das Verfahren weiter umfasst: Setzen (500, 520) des ersten und/oder weiteren Analyse-Flags (FA, FR).
  7. Verfahren (300) nach wenigstens einem der vorhergehenden Ansprüche, wobei das Verfahren (300) weiter umfasst: Löschen (520, 530) des ersten und/oder weiteren Analyse-Flags (FA, FR).
  8. Verfahren (300) nach wenigstens einem der Ansprüche 6 oder 7, wobei das Setzen (500, 510) und/oder Löschen (520, 530) des ersten und/oder weiteren Analyse-Flags (FA, FR) durch die externe Einheit (200) und/oder eines Benutzers der externen Einheit (200) erfolgt.
  9. Verfahren nach Anspruch 8, wobei vor dem Setzen (500, 510) und/oder Löschen (520, 530) ein Schritt zum Authentisieren (350) der externen Einheit (200) und/oder eines Benutzers der externen Einheit (200) ausgeführt wird, und das Setzen (500, 510) und/oder Löschen (520, 530) nur nach erfolgreichem Authentisieren (350) erfolgt.
  10. Verfahren nach wenigstens einem der vorhergehenden Ansprüche, wobei der Schritt des Prüfens (310, 340) des ersten und/oder des weiteren Analyse-Flags (FA, FR) in Abhängigkeit einer Nutzungsphase der Vorrichtung (100) ausgeführt wird.
  11. Vorrichtung (100) mit einer Schnittstelle (110) zum Datenaustausch mit einer externen Einheit (200) und mit wenigstens einer ersten Speichereinrichtung (130) zum nichtflüchtigen Speichern eines ersten Analyse-Flags (FA) und mit wenigstens einer zweiten Speichereinrichtung (140) zum Speichern von wenigstens einem, insbesondere durch die Vorrichtung (100) ausführbaren Computerprogramm (PRG1), insbesondere zum Steuern einer Ausführung (360) einer Prüfsoftware, insbesondere einer End-of-Line (EoL) Software, wobei die Vorrichtung (100) zum Ausführen des Verfahrens (300) nach wenigstens einem der Ansprüche 1 bis 10 ausgebildet ist.
  12. Vorrichtung (100) nach Anspruch 11, wobei die Schnittstelle (120) eine Prüf- und/oder Diagnoseschnittstelle, insbesondere eine Ethernet- oder CAN-Schnittstelle, ist.
  13. Vorrichtung (100) nach wenigstens einem der Ansprüche 11 oder 12, wobei die erste Speichereinrichtung (130) ein Hardware-Sicherheitsmodul (HSM), insbesondere ein Kryptographie-Modul, umfasst, oder Teil eines Hardware-Sicherheitsmodul (HSM), insbesondere eines Kryptographie-Modul, ist.
  14. Vorrichtung (100) nach wenigstens einem der Ansprüche 11 bis 13, wobei die Vorrichtung (100) eine Recheneinrichtung (110), insbesondere zum Ausführen des Verfahrens (300) nach wenigstens einem der Ansprüche 1 bis 10, aufweist.
  15. Computerlesbares Speichermedium (SM), umfassend Befehle, insbesondere in Form eines Computerprogramms (PRG2), die bei der Ausführung durch einen Computer, insbesondere durch eine Recheneinrichtung eines Computers, insbesondere durch eine Recheneinrichtung (110) einer Vorrichtung (100) nach wenigstens einem der Ansprüche 11 bis 14, diesen veranlassen, das Verfahren (300) nach wenigstens einem der Ansprüche 1 bis 10 auszuführen.
  16. Computerprogramm (PRG2), das computerlesbare Instruktionen umfasst, bei deren Ausführung durch einen Computer, insbesondere durch eine Recheneinrichtung eines Computers, insbesondere durch eine Recheneinrichtung (110) einer Vorrichtung (100) nach wenigstens einem der Ansprüche 11 bis 14, das Verfahren nach wenigstens einem der Ansprüche 1 bis 10 abläuft.
  17. Verwendung des Verfahrens (300) nach wenigstens einem der Ansprüche 1 bis 10 und/oder der Vorrichtung (100) nach wenigstens einem der Ansprüche 11 bis 14 und/oder des computerlesbaren Speichermediums (SM) nach Anspruch 15 und/oder des Computerprogramms (PRG2) nach Anspruch 16 zum Aktivieren, insbesondere Reaktivieren einer Schnittstelle 120, insbesondere einer Prüf-, insbesondere einer End-of-Line (EoL) - Schnittstelle, und/oder zum Deaktivieren der Schnittstelle (120) der Vorrichtung (100) zum Übertragen eines durch die Vorrichtung (100) ausführbaren Computerprogramms (PRG1), insbesondere zum Steuern einer Ausführung (360) einer Prüfsoftware, insbesondere einer End-of-Line (EoL) Software in Abhängigkeit eines ersten und/oder eines weiteren Analyse-Flags (FA, FR).
DE102019220450.3A 2019-12-20 2019-12-20 Vorrichtung mit einer Schnittstelle und Verfahren zum Betreiben einer Vorrichtung mit einer Schnittstelle Pending DE102019220450A1 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102019220450.3A DE102019220450A1 (de) 2019-12-20 2019-12-20 Vorrichtung mit einer Schnittstelle und Verfahren zum Betreiben einer Vorrichtung mit einer Schnittstelle

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102019220450.3A DE102019220450A1 (de) 2019-12-20 2019-12-20 Vorrichtung mit einer Schnittstelle und Verfahren zum Betreiben einer Vorrichtung mit einer Schnittstelle

Publications (1)

Publication Number Publication Date
DE102019220450A1 true DE102019220450A1 (de) 2021-06-24

Family

ID=76206436

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102019220450.3A Pending DE102019220450A1 (de) 2019-12-20 2019-12-20 Vorrichtung mit einer Schnittstelle und Verfahren zum Betreiben einer Vorrichtung mit einer Schnittstelle

Country Status (1)

Country Link
DE (1) DE102019220450A1 (de)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102010008816A1 (de) * 2010-02-22 2011-08-25 Continental Automotive GmbH, 30165 Verfahren zur Online-Kommunikation
US20170093866A1 (en) * 2015-09-25 2017-03-30 Argus Cyber Security Ltd. System and method for controlling access to an in-vehicle communication network
US20180060589A1 (en) * 2016-09-01 2018-03-01 Nxp B.V. Apparatus and associated method for authenticating firmware

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102010008816A1 (de) * 2010-02-22 2011-08-25 Continental Automotive GmbH, 30165 Verfahren zur Online-Kommunikation
US20170093866A1 (en) * 2015-09-25 2017-03-30 Argus Cyber Security Ltd. System and method for controlling access to an in-vehicle communication network
US20180060589A1 (en) * 2016-09-01 2018-03-01 Nxp B.V. Apparatus and associated method for authenticating firmware

Similar Documents

Publication Publication Date Title
DE102017202423A1 (de) Gesteuerte sichere Codeauthentifizierung
DE102013108020A1 (de) Authentifizierungsschema zum Aktivieren eines Spezial-Privileg-Modus in einem gesicherten elektronischen Steuergerät
DE102012109615B4 (de) Verwendung eines Manifests zur Präsenzaufzeichnung von gültiger Software und Kalibrierung
DE102013108022A1 (de) Verfahren zum Aktivieren des Entwicklungsmodus eines gesicherten elektronischen Steuergeräts
DE102012109617A1 (de) Verfahren zum Ersetzen eines öffentlichen Schlüssels eines Bootloaders
DE102015209108A1 (de) Verfahren und Entscheidungsgateway zum Autorisieren einer Funktion eines eingebetteten Steuergerätes
DE102016205289A1 (de) Verfahren, Prozessor und Gerät zur Integritätsprüfung von Nutzerdaten
DE102016221108A1 (de) Verfahren zum Aktualisieren einer Software eines Steuergeräts eines Fahrzeugs
DE102016210788B4 (de) Komponente zur Verarbeitung eines schützenswerten Datums und Verfahren zur Umsetzung einer Sicherheitsfunktion zum Schutz eines schützenswerten Datums in einer solchen Komponente
WO2011107319A2 (de) Verfahren zum verifizieren eines speicherblocks eines nicht-flüchtigen speichers
EP3811261B1 (de) Kryptografiemodul und betriebsverfahren hierfür
DE112019005417T5 (de) Sichern von Datenprotokollen in Arbeitsspeichervorrichtungen
DE102014210282A1 (de) Erzeugen eines kryptographischen Schlüssels
DE102020216048A1 (de) Vorrichtung mit einer Schnittstelle und Verfahren zum Betreiben einer Vorrichtung mit einer Schnittstelle
DE102019220450A1 (de) Vorrichtung mit einer Schnittstelle und Verfahren zum Betreiben einer Vorrichtung mit einer Schnittstelle
DE102014222181A1 (de) Verfahren zum Betreiben eines Steuergeräts
DE102020207866A1 (de) Verfahren zum Durchführen einer abgesicherten Startsequenz eines Steuergeräts
DE102021212994B3 (de) Verfahren zur Erkennung von auf eine Manipulation hindeutenden Anomalien während eines sicheren Startvorgangs einer softwaregesteuerten Vorrichtung
DE102020212988A1 (de) Sicheres Hochfahren eines Computersystems
DE102022202691A1 (de) Verfahren zur Durchführung einer abgesicherten Startsequenz einer Recheneinheit
DE102020207863A1 (de) Verfahren zur sicheren Aktualisierung von Steuergeräten
DE102022200544A1 (de) Verfahren zur abgesicherten Bereitstellung eines zu schützenden Computerpro-gramms in einer Recheneinheit
DE102022209628A1 (de) Verfahren zum Überprüfen von Daten in einer Recheneinheit
DE102021003840A1 (de) Verfahren zur Überprüfung digitaler Signaturen, Fahrzeug-Recheneinheit und Fahrzeug
DE102020216071A1 (de) Verfahren zum Betreiben einer Vorrichtung, ein Steuergerät eines Kraftfahrzeugs, und Vorrichtung

Legal Events

Date Code Title Description
R163 Identified publications notified