DE102022129350A1 - Fahrzeug, Vorrichtung, Computerprogramm und Verfahren zum Laden von Daten - Google Patents

Fahrzeug, Vorrichtung, Computerprogramm und Verfahren zum Laden von Daten Download PDF

Info

Publication number
DE102022129350A1
DE102022129350A1 DE102022129350.5A DE102022129350A DE102022129350A1 DE 102022129350 A1 DE102022129350 A1 DE 102022129350A1 DE 102022129350 A DE102022129350 A DE 102022129350A DE 102022129350 A1 DE102022129350 A1 DE 102022129350A1
Authority
DE
Germany
Prior art keywords
data
character string
predetermined
condition
verifying
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
DE102022129350.5A
Other languages
English (en)
Inventor
Veit Kleeberger
Alexander Zeh
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.)
Infineon Technologies AG
Original Assignee
Infineon Technologies 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 Infineon Technologies AG filed Critical Infineon Technologies AG
Priority to DE102022129350.5A priority Critical patent/DE102022129350A1/de
Priority to US18/494,431 priority patent/US20240155336A1/en
Priority to CN202311474392.0A priority patent/CN117993022A/zh
Publication of DE102022129350A1 publication Critical patent/DE102022129350A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/03Protecting confidentiality, e.g. by encryption
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07CTIME OR ATTENDANCE REGISTERS; REGISTERING OR INDICATING THE WORKING OF MACHINES; GENERATING RANDOM NUMBERS; VOTING OR LOTTERY APPARATUS; ARRANGEMENTS, SYSTEMS OR APPARATUS FOR CHECKING NOT PROVIDED FOR ELSEWHERE
    • G07C5/00Registering or indicating the working of vehicles
    • G07C5/008Registering or indicating the working of vehicles communicating information to a remotely located station

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

Die vorliegende Offenbarung bezieht sich auf ein Fahrzeug, eine Vorrichtung (100), ein Computerprogramm und ein Verfahren (10) zum Laden von Daten, wie z.B. bei einem Bootvorgang. Das Verfahren umfasst ein Empfangen (11) zumindest einer Zeichenfolge zum Verifizieren der Daten. Ferner umfasst das Verfahren ein Verifizieren (12) der Daten, wobei das Verifizieren der Daten ein vollständiges Überprüfen der gesamten Zeichenfolge umfasst. Des Weiteren sieht das Verfahren ein Laden (13) der Daten basierend auf der Überprüfung der Zeichenfolge vor.

Description

  • Technisches Gebiet
  • Die vorliegende Offenbarung bezieht sich auf ein Fahrzeug, eine Vorrichtung, ein Computerprogramm und ein Verfahren zum Laden von Daten. Insbesondere aber nicht ausschließlich beziehen sich Ausführungsbeispiele der vorliegenden Offenbarung auf ein Konzept zum Laden von Daten bei einem Bootvorgang.
  • Hintergrund
  • Sichere Bootverfahren spielen heutzutage in der Automobilelektronik und anderen technischen Anwendungen, bei denen Funktionalitäten zu einem großen Teil über Software definiert sind, eine wichtige Rolle. Die Software muss dabei ausreichend vor Manipulation geschützt werden, damit eine gewünschte Funktionalität gewährleistet ist und eine Einführung von Schadsoftware verhindert wird.
  • Die Sicherheit eines (sicheren) Bootverfahrens hängt von demjenigen Teil eines Systems ab, der kompromittiert werden müsste, um eine andere Funktionalität einzuführen, sowie vom Aufwand für die Durchführung einer solchen Änderung (auch als Angriffsmöglichkeit oder Angriffsmachbarkeit, engl.: „attack feasibility“, bezeichnet). Müssen mehr Teile kompromittiert oder in einer bestimmten Reihenfolge gestört werden, sinkt die Machbarkeit der erfolgreichen Einführung einer bösartigen Software.
  • Bestehende Sicherheitsmechanismen sehen zum Beispiel die Anwendung eines Arbeitsnachweises vor, englisch als „Proof-of-Work“ (PoW; Mehrzahl: PoWs) bezeichnet. PoW ist eine Form eines kryptografischen Beweises, mit dem nachgewiesen werden kann, dass ein bestimmter Rechenaufwand (engl.: „computational constraint“) betrieben wurde. Das Konzept wurde ursprünglich eingeführt, um Denial-of-Service-Angriffe abzuwenden, indem eine Instanz, welche einen bestimmten Dienst einfordert, einen PoW durchführen muss. Ein PoW verringert also die attack feasibility eines bereitgestellten Dienstes, da ein Angreifer mehr Zeit aufwenden muss, um eine zulässige Anfrage zu stellen.
  • In manchen Anwendungen kann aber eine noch geringere oder besser skalierbare attack feasibility gewünscht sein. Es besteht daher ein Bedarf nach einem verbesserten Konzept zum Laden von Daten, z.B. bei einem Bootvorgang.
  • Diesem Bedarf tragen die beigefügten unabhängigen Ansprüche Rechnung. Vorteilhafte Weiterbildungen sind Gegenstand der abhängigen Ansprüche.
  • Zusammenfassung
  • Ausführungsbeispiele der vorliegenden Offenbarung schaffen ein Verfahren zum Laden von Daten, wie z.B. bei einem Bootvorgang. Das Verfahren umfasst ein Empfangen zumindest einer Zeichenfolge zum Verifizieren der Daten. Ferner umfasst das Verfahren ein Verifizieren der Daten. Das Verifizieren der Daten umfasst ein vollständiges Überprüfen der gesamten Zeichenfolge. Des Weiteren sieht das Verfahren ein Laden der Daten basierend auf der Überprüfung der Zeichenfolge vor. Durch das vollständige Überprüfen der gesamten Zeichenfolge bietet das vorgeschlagene Verfahren im Vergleich zu anderen Sicherheitsmechanismen, z.B. solchen, die auf einem PoW beruhen, eine geringere attack feasibility.
  • In manchen Ausführungsbeispielen umfasst die Zeichenfolge einen kryptographischen Schlüssel (im Zusammenhang des vorliegenden Kontexts auch nur als „Schlüssel“ bezeichnet) und/oder zumindest einen vorbestimmten Wert zum Verifizieren der Daten. Dies erlaubt beispielsweise die Anwendung zusammen mit kryptographischen Verschlüsselungsverfahren und/oder beliebigen anderen Sicherheitsmechanismen.
  • Zusätzlich oder alternativ umfasst die Zeichenfolge einen für die Daten spezifischen Hashwert. Entsprechend kann das Überprüfen der Bootinformation ein vollständiges Überprüfen des Hashwertes umfassen. Dies kann in der Praxis eine noch geringere attack feasibility ermöglichen.
  • Optional kann der Hashwert basierend auf einem kryptographischen Schlüssel der Daten, Dateninformationen und/oder Konfigurationsinformationen über die Daten erzeugt werden.
  • In manchen Ausführungsbeispielen umfasst das vollständige Überprüfen der Zeichenfolge ein Überprüfen, ob die Zeichenfolge eine vorbestimmte Bedingung erfüllt. Das Laden der Daten kann dann erfolgen, wenn die Bedingung erfüllt ist.
  • In der Praxis kann die vorbestimmte Bedingung eine Bedingung an ein Ergebnis einer auf die gesamte Zeichenfolge angewandten vorbestimmten Funktion umfassen.
  • Die Bedingung ist dann beispielsweise erfüllt, wenn das Ergebnis (exakt) einem Vergleichswert entspricht. Optional kann die Bedingung auch dann erfüllt sein, wenn das Ergebnis nicht mehr als um eine vorbestimmte Abweichung von einem vorbestimmten Vergleichswert des Ergebnisses abweicht.
  • Die vorbestimmte Bedingung umfasst beispielsweise eine Bedingung an eine Gesamtanzahl eines vorbestimmten Zeichens in der Zeichenfolge und/oder an eine Anzahl von Zeichen der Zeichenfolge innerhalb eines vorbestimmten Zeichenbereichs.
  • Optional umfasst die vorbestimmte Funktion eine Funktion zum Bestimmen des Hamming-Gewichts der Zeichenfolge. Die vorbestimmte Bedingung ist dann beispielsweise erfüllt, wenn das Hamming-Gewicht einem vorbestimmten Wert entspricht.
  • In manchen Ausführungsbeispielen umfasst das Verfahren ferner ein Verifizieren der Zeichenfolge anhand eines Nachweises (z.B. PoW) über einen Aufwand zum Erzeugen der Zeichenfolge. Dies erlaubt eine flexiblere Skalierbarkeit der attack feasibility und die Einbeziehung physikalischer Eigenschaften, wie später näher erläutert wird.
  • Der Nachweis erfolgt beispielsweise dadurch, dass die Zeichenfolge eine vorbestimmte Anzahl eines vorbestimmten Zeichens umfasst.
  • In manchen Ausführungsbeispielen kann das Verfahren in einem Fahrzeug ausgeführt werden. Die Daten können dabei zum Betreiben einer Komponente des Fahrzeugs vorgesehen sein. Dadurch kann eine Integrität der Daten beim Betreiben des Fahrzeugs erhöht werden. Dementsprechend kann dies zu einer erhöhten Sicherheit beim Betreiben des Fahrzeugs unter Verwendung der Daten führen.
  • Weitere Ausführungsbeispiele schaffen ein Computerprogramm, umfassend Befehle, die bei der Ausführung des Programms durch einen Computer diesen veranlassen, das Verfahren/die Schritte eines Verfahrens gemäß der vorliegenden Offenbarung ausführen.
  • Andere Ausführungsbeispiele schaffen eine Vorrichtung zum Laden von Daten, wie z.B. bei einem Bootvorgang. Die Vorrichtung umfasst eine oder mehrere Schnittstellen zur Kommunikation und eine Datenverarbeitungsschaltung, welche eingerichtet ist, um unter Verwendung der einen oder mehreren Schnittstellen das Verfahren gemäß der vorliegenden Offenbarung auszuführen.
  • Die Datenverarbeitungsschaltung kann einen Speicher zum Speichern eines Computerprogramms gemäß der vorliegenden Offenbarung zum Ausführen des Verfahrens umfassen.
  • In manchen Ausführungsbeispielen kann der Speicher als Festwertspeicher ausgeführt sein. Dies erschwert gegenüber anderen Speichern, z.B. Speichern, auf die schreiben zugegriffen werden kann, eine Manipulation eines Speicherinhalts. Dies kann in der Praxis eine höhere Sicherheit bieten.
  • In der Praxis kann die Vorrichtung ferner einen digitalen Speicher mit ein oder mehreren elektronischen Sicherungen zum Speichern einer Referenz zur Überprüfung der Zeichenfolge umfasst. Die elektronischen Sicherungen können so ausgeführt sein, dass sie nur irreversibel ausgelöst werden können, so dass Manipulationen der elektronischen Sicherungen, welche anhand der Referenz erkennbar sind, weniger leicht verschleiert werden können.
  • Das vorgeschlagene Konzept kann insbesondere im Automobilbereich angewendet werden, z.B. zur Sicherung von Fahrzeugen.
  • Ausführungsbeispiele beziehen sich daher auf ein Fahrzeug, umfassend eine Vorrichtung gemäß der vorliegenden Offenbarung.
  • Figurenkurzbeschreibung
  • Einige Beispiele von Vorrichtungen und/oder Verfahren werden nachfolgend bezugnehmend auf die beiliegenden Figuren lediglich beispielhaft näher erläutert. Es zeigen:
    • 1 ein Flussdiagramm zur schematischen Darstellung eines Ausführungsbeispiels eines Verfahrens zum Laden von Daten bei einem Bootvorgang;
    • 2 ein Flussdiagramm zur schematischen Darstellung eines weiteren Ausführungsbeispiels;
    • 3 ein Flussdiagramm zur schematischen Darstellung eines weiteren Ausführungsbeispiels;
    • 4 ein Blockdiagramm zur schematischen Darstellung einer Datenspeicherung bei einem weiteren Ausführungsbeispiel;
    • 5 ein Blockdiagramm zur schematischen Darstellung eines Ausführungsbeispiels mit einer Mehrzahl an PoWs;
    • 6 ein Flussdiagramm zur schematischen Darstellung eines weiteren Ausführungsbeispiels;
    • 7 ein Blockdiagramm zur schematischen Darstellung einer Datenspeicherung bei einem weiteren Ausführungsbeispiel;
    • 8 ein Blockdiagramm zur schematischen Darstellung einer Anwendung eines Ausführungsbeispiels bei einem sequenziellen Bootvorgang; und
    • 9 ein Blockdiagramm zur schematischen Darstellung eines Ausführungsbeispiels einer Vorrichtung gemäß der vorliegenden Offenbarung.
  • Beschreibung
  • Einige Beispiele werden nun ausführlicher Bezug nehmend auf die beiliegenden Figuren beschrieben. Weitere mögliche Beispiele sind jedoch nicht auf die Merkmale dieser detailliert beschriebenen Ausführungsformen beschränkt. Diese können Modifikationen der Merkmale sowie Entsprechungen und Alternativen zu den Merkmalen aufweisen. Ferner soll die Terminologie, die hierin zum Beschreiben bestimmter Beispiele verwendet wird, nicht einschränkend für weitere mögliche Beispiele sein.
  • Gleiche oder ähnliche Bezugszeichen beziehen sich in der gesamten Beschreibung der Figuren auf gleiche oder ähnliche Elemente beziehungsweise Merkmale, die j eweils identisch oder auch in abgewandelter Form implementiert sein können, während sie die gleiche oder eine ähnliche Funktion bereitstellen. In den Figuren können ferner die Stärken von Linien, Schichten und/oder Bereichen zur Verdeutlichung übertrieben sein.
  • Wenn zwei Elemente A und B unter Verwendung eines „oder“ kombiniert werden, ist dies so zu verstehen, dass alle möglichen Kombinationen offenbart sind, d. h. nur A, nur B sowie A und B, sofern nicht im Einzelfall ausdrücklich anders definiert. Als alternative Formulierung für die gleichen Kombinationen kann „zumindest eines von A und B“ oder „A und/oder B“ verwendet werden. Das gilt Äquivalent für Kombinationen von mehr als zwei Elementen.
  • Wenn eine Singularform, z. B. „ein, eine“ und „der, die, das“ verwendet wird und die Verwendung nur eines einzelnen Elements weder explizit noch implizit als verpflichtend definiert ist, können weitere Beispiele auch mehrere Elemente verwenden, um die gleiche Funktion zu implementieren. Wenn eine Funktion im Folgenden als unter Verwendung mehrerer Elemente implementiert beschrieben ist, können weitere Beispiele die gleiche Funktion unter Verwendung eines einzelnen Elements oder einer einzelnen Verarbeitungsentität implementieren. Es versteht sich weiterhin, dass die Begriffe „umfasst“, „umfassend“, „aufweist“ und/oder „aufweisend“ bei deren Gebrauch das Vorhandensein der angegebenen Merkmale, Ganzzahlen, Schritte, Operationen, Prozesse, Elemente, Komponenten und/oder einer Gruppe derselben beschreiben, dabei aber nicht das Vorhandensein oder das Hinzufügen eines oder mehrerer anderer Merkmale, Ganzzahlen, Schritte, Operationen, Prozesse, Elemente, Komponenten und/einer Gruppe derselben ausschließen.
  • Ein „Bootvorgang“ oder „Booten“ (von engl.: to boot), Hochfahren, Starten oder auch Urladen bezeichnet das Laden eines Betriebssystems eines Computers oder anderen Gerätes, wie es in der Regel nach dem Einschalten erfolgt. Das Wort „booten“ ist eine Kurzform vom englischen „bootstrap loading“, sinngemäß laden per „Bootstrap“. Der Bootvorgang eines Geräts verläuft herkömmlicherweise in mehreren Stufen. Nach dem Einschalten wird zunächst ein einfaches Programm aus einem kleinen Festwertspeicher (ROM) gelesen. Dieses Programm erlaubt ein Starten eines komplexeren Programms, das dann beispielsweise ein Betriebssystem startet. Das komplexere Programm kann dabei mittels eines (kryptographischen) Schlüssels verifiziert werden. Wie auch bei anderen Prozessen zum Laden von Daten, könnte zur Manipulation oder Einschleusung von Schadsoftware beim Bootvorgang der Schlüssel manipuliert werden. Es besteht daher ein Bedarf an einem verbesserten Konzept zum Laden von Daten, wie z.B. bei einem Bootvorgang. Weiterhin besteht bei manchen Anwendungen der Bedarf nach einer größeren Flexibilität bei einer Skalierung der attack feasibility. Nachfolgend seien in Bezug auf die beiliegenden Figuren Ausführungsbeispiele der vorliegenden Offenbarung, welche dem genannten Bedarf Rechnung tragen, beispielhaft näher erläutert.
  • 1 zeigt ein Flussdiagramm zur schematischen Darstellung eines Ausführungsbeispiels eines Verfahrens 100 zum Laden von Daten, z.B. bei einem Bootvorgang. Die Daten können dabei jedwede Art von Daten oder Information umfassen. Beim Bootvorgang können die Daten beispielsweise eine Software/einen Quellcode/ein Computerprogramm umfassen, welches bzw. welcher im Zuge des Bootvorgangs geladen werden soll. Allgemein können die Daten aber auch jedwede andere Information enthalten.
  • Das Verfahren 100 umfasst ein Empfangen 110 zumindest einer Zeichenfolge zum Verifizieren der Daten. Hierfür wird die Zeichenfolge aus einem entsprechenden Speicher geladen, in welchem sie gespeichert ist. Zum Schutz kann der Speicher gegenüber unerwünschten Manipulationen gesichert sein.
  • Die Zeichenfolge kann im Kontext der vorliegenden Offenbarung als eine Zeichenkette, Zeichenreihe oder als ein String mit einer endlichen Folge von Zeichen (z.B. Buchstaben, Ziffern, Sonderzeichen und Steuerzeichen) aus einem definierten Zeichensatz verstanden werden. Die Zeichenfolge umfasst also zum Beispiel eine endliche Reihenfolge an aufeinanderfolgenden Stellen mit jeweils einem solchen Zeichen. Ein Fachmann, der von der vorliegenden Offenbarung profitiert, wird dabei zu schätzen wissen, dass die Zeichenfolge in der Praxis j edwede (digitale) Information umfassen kann, welche für eine Verifizierung der Daten geeignet ist. In der Praxis kann die Zeichenfolge einen kryptographischen Schlüssel oder die Daten (z.B. Software) umfassen. In manchen Ausführungsbeispielen kann die Zeichenfolge zugunsten einer höheren Sicherheit auch eine verschlüsselte Form des kryptographischen Schlüssels oder der Daten umfassen.
  • Das Verfahren 100 umfasst ferner ein Verifizieren 120 der Daten. Unter dem Verifizieren der Daten kann dabei ein Vorgang zum Validieren verstanden werden, bei welchem geprüft wird, ob die Daten vertrauenswürdig oder nicht vertrauenswürdig sind, um zu vermeiden, dass nicht vertrauenswürdige oder schädliche Daten, z.B. Schadsoftware, geladen wird. Das Verifizieren 120 der Daten sieht dabei ein vollständiges Überprüfen der gesamten Zeichenfolge vor. Das Überprüfen schließt also jedes der Zeichen bzw. jede Stelle der Zeichenfolge ein. Es wird beim Überprüfen der Zeichenfolge somit jedes der Zeichen berücksichtigt. Dies bietet gegenüber herkömmlichen Bootvorgängen, z.B. Bootvorgängen, bei denen im Rahmen eines PoW lediglich eine Anzahl führender Nullen geprüft und nach dem ersten Zeichen ungleich Null abgebrochen wird, eine höhere Sicherheit gegenüber Angriffen.
  • Während bei einem PoW Manipulationen, bei welchen die Anzahl führender Nullen gleichbleibt, unerkannt bleiben, können dagegen durch das vollständige Überprüfen Veränderungen der Zeichenfolge erkannt oder detektiert werden. Das vorgeschlagene Konzept verringert dadurch die attack feasibility, ohne den Bootvorgang wesentlich zu beeinträchtigen. In der Praxis können unter Anwendung des vorgeschlagenen Konzepts Angriffe leichter erkannt und verhindert werden. Dies erschwert beispielsweise das Einschleusen von Schadsoftware beim Bootvorgang durch eine Manipulation eines Schlüssels zur Verifizierung der Schadsoftware.
  • Das Verfahren 100 umfasst ferner ein Laden 130 der Daten basierend auf der Überprüfung der Zeichenfolge. Dadurch kann festgestellt werden, ob die Daten vertrauenswürdig sind. Das Laden der Daten erfolgt dann beispielsweise nur, wenn die Verifizierung der Daten anhand der Zeichenfolge erfolgreich war, sprich, wenn die Daten bei der Verifizierung anhand der Zeichenfolge als vertrauenswürdig eingestuft wurden. Wenn die Verifizierung ergibt, dass die Daten nicht vertrauenswürdig sind, kann dagegen von dem Laden der Daten abgesehen werden.
  • Weitere Aspekte und Merkmale des vorgeschlagenen Verfahrens 100 seien nachfolgen in Bezug auf weitere Figuren näher erläutert.
  • Wie nachfolgend näher erläutert, bestehen verschiedene Ansätze zur Verwirklichung des vorgeschlagenen Verfahrens 100.
  • 2 zeigt schematisch ein Ausführungsbeispiel gemäß einem ersten verfahrensgemäßen Ansatz, wobei ein Hash-Wert H als Zeichenfolge zur Verifizierung dient. Zum besseren Verständnis sei das Ausführungsbeispiel im nachfolgenden beispielhaft in Bezug auf eine Anwendung des vorgeschlagenen Verfahrens 100 bei einem Bootvorgang beschreiben. Es sei jedoch angemerkt, dass das Verfahren 100 allgemein auch bei anderen Anwendungen zur Verifizierung von Daten eingesetzt werden kann.
  • Im vorliegenden Ausführungsbeispiel seien die Daten mit D' bezeichnet. Vorliegend umfassen die Daten D' Nutzdaten, z.B. eine Software/einen Quellcode, welche/r bei dem Bootvorgang geladen werden soll. Bei einer Anwendung in einem Fahrzeug umfassen die Daten D' beispielsweise Software oder andere Daten zum Betreiben einer Komponente des Fahrzeugs, zum Beispiel eines Brems- oder Lenksystems. Alternativ oder zusätzlich können hierfür auch ein kryptographischer Schlüssel, Dateninformationen (z.B. Metainformationen zu Nutzdaten) und/oder Konfigurationsdaten verwendet werden. Der Fachmann wird zu schätzen wissen, dass das vorgeschlagene Konzept für sämtliche kryptographische Schlüssel, also z.B. sowohl Schlüssel zur asymmetrischen Verschlüsselung als auch Schlüssel zur symmetrischen Verschlüsselung, anwendbar ist.
  • Vorliegend wird die Zeichenfolge basierend auf den Daten D' erzeugt. Die Zeichenfolge ist beispielsweise ein für die Daten D' spezifischer Hash-Wert H. Zur Erzeugung des Hash-Werts H wird eine Hash-Funktion 20 auf die Daten D' angewandt. Konkret wird die Hash-Funktion 20 auf ein Datenpaket, umfassend die Daten D' und einen vorbestimmten Wert N angewandt. Der Wert N kann auch als „Nonce“ verstanden werden, auch wenn der Wert N in der Praxis anders als Nonces zur Erzeugung der Zeichenfolge wiederverwendet werden kann. Außerdem wird bei der Erzeugung des Hash-Wertes ein Initialisierungsvektor (IV) verwendet. Bei der Verwendung des IVs wird beispielsweise ein erster Klartextblock des erhaltenen Datenpakets oder der Daten D' mit dem IV XOR-verknüpft. Für eine sichere Verschlüsselung kann der IV in Ausführungsbeispielen einen Block von Zufallsdaten umfassen.
  • Zur Verifizierung der Daten D' kann dann der Hash-Wert H vor dem Laden der Daten D' gemäß dem vorgeschlagenen Verfahren 100 vollständig überprüft werden. Dabei wird der Hash-Wert H beispielsweise auf eine vorbestimmte Eigenschaft geprüft, welche von jedem der Zeichen des Hash-Wertes abhängt, sprich einer Eigenschaft, zu welcher jedes der Zeichen beiträgt. Die Eigenschaft ist also dergestalt, dass sie sich ändert, sobald eines der Zeichen geändert wird.
  • Im vorliegenden Beispiel ist die Eigenschaft z.B. dadurch bestimmt oder davon abhängig, ob der Hash-Wert 20 eine vorbestimmte Bedingung erfüllt. Ob der Hash-Wert dabei die Bedingung erfüllt oder nicht kann dabei von einem einzelnen der Zeichen des Hash-Wertes an einer beliebigen Stelle des Hash-Wertes abhängen. Das Laden der Daten D' erfolgt dann beispielsweise nur, wenn die Bedingung erfüllt ist.
  • Vorliegend ist oder umfasst die vorbestimmte Bedingung beispielsweise eine Bedingung an ein Ergebnis einer auf die gesamte Zeichenfolge angewandten vorbestimmten Funktion F(H). Die Bedingung kann daher auch als Funktionsbedingung oder funktionale Bedingung (engl. „functional constraint“, FC) und die Verifizierung anhand der funktionalen Bedingung als „Funktionsnachweis“ (engl. „proof of function“, PoF) angesehen werden. Wie der Fachmann zu schätzen wissen wird, kann dabei eine beliebige Funktion angewandt werden, welche jedes Zeichen des Hash-Wertes berücksichtigt, sprich, dessen Ergebnis von jedem Zeichen der Hash-Wertes abhängt. Vorliegend ist die Funktion F(H) beispielsweise eine Funktion zum Bestimmen des Hamming-Gewichts des Hash-Wertes H. Die vorbestimmte Bedingung ist beispielsweise dann erfüllt, wenn das Hamming-Gewicht F(H) einem vorbestimmten Wert der FC entspricht. FC ist im Kontext der vorliegenden Erfindung auch als der vorbestimmte Wert der funktionalen Bedingung zu verstehen. N kann dementsprechend so gewählt werden, dass die Bedingung erfüllt ist.
  • Das Überprüfen der Zeichenfolge sieht also beispielsweise ein Anwenden der Funktion F zur Bestimmung des Hamming-Gewichts F(H) des Hash-Wertes H und ein Vergleichen des Hamming-Gewichts F(H) mit dem Wert gemäß der funktionalen Bedingung FC vor. Die Daten D' gelten dann als vertrauenswürdig und werden geladen, wenn F(H) = FC. Andernfalls gelten die Daten D' als nicht vertrauenswürdig. In dem Fall wird von einem Laden der Daten D' abgesehen, um zu verhindern, dass Schadsoftware beim Bootvorgang geladen wird.
  • Der Fachmann wird zu schätzen wissen, dass die Funktion in der Praxis eine andere Funktion sein oder umfassen kann. Die Funktion ist oder umfasst beispielsweise eine Funktion zum Bestimmen einer Gesamtanzahl von Nullen oder eines anderen vorbestimmten Zeichens. Optional umfasst die Bedingung eine Bedingung an eine Anzahl von Zeichen der Zeichenfolge innerhalb eines vorbestimmten Zeichenbereichs. In Ausführungsbeispielen, bei denen die Zeichenfolge nicht binär ist und Zeichen aus einem Zeichenbereich (oder Feld) der Größe q (z.B.: 1, ..., q) umfasst, kann die Funktion z.B. eine Funktion zur Bestimmung einer Gesamtanzahl von Zeichen größer/kleiner (gleich) q/2 sein. Die Bedingung kann dann jeweils erfüllt sein, wenn die Gesamtanzahl einem vorbestimmten Wert entspricht.
  • Optional kann die Bedingung eine vorbestimmte Abweichung des Ergebnisses zulassen. Die Bedingung ist beispielsweise erfüllt, wenn das Ergebnis nicht mehr als um eine vorbestimmte Abweichung von einem vorbestimmten Vergleichswert des Ergebnisses abweicht. Bezugnehmend auf das vorliegende Beispiel gelten die Daten D' also beispielsweise auch als vertrauenswürdig, wenn das Ergebnis nicht um mehr als die vorbestimmte Abweichung von dem vorbestimmten Wert abweicht. Die Bedingung kann beispielsweise für sämtliche Hash-Werte H = (H', H'') erfüllt sein, wobei H'' ein gleichermaßen zulässiges „ECC-parity“ (ECC: engl. „Error Correcting Code“) Tupel von H' ist. H' sind dabei die Hash-Werte, welche die vorbestimmte Bedingung präzise/exakt erfüllen, während H'' die Bedingung nur unter Berücksichtigung der zulässigen Abweichung erfüllen. In Bezug auf das genannte Ausführungsbeispiel kann beispielsweise eine zulässige Abweichung von 1 von dem Wert FC vorgesehen sein. Der Fachmann wird dabei zu schätzen wissen, dass die Abweichung je nach Sicherheitsanforderungen beliebig angepasst werden kann.
  • Wie nachfolgend in Bezug auf 3 näher erläutert, kann das Verfahren 100 auch einen PoW umfassen.
  • Wie 3 zeigt, sieht das Verfahren 100 beispielsweise zusätzlich ein Verifizieren des Hash-Wertes H anhand eines Nachweises über einen Aufwand zum Erzeugen des Hash-Wertes, sprich einen PoW betreffend die Erzeugung des Hash-Wertes H vor. Hierfür wird der Hash-Wert H auf das Vorliegen einer Rechenbedingung CC (engl. „computational constraint“) geprüft. Vorliegend ist die Rechenbedingung beispielsweise erfüllt, wenn der Hash-Wert H eine vorbestimmte Anzahl führender Nullen oder eines anderen führenden Zeichens aufweist. Der Wert N kann dann derart gewählt werden, so dass der Hash-Wert sowohl FC als auch CC erfüllt. Eine Erzeugung von N erfordert dabei eine Rechenzeit, die von der gewählten Schwierigkeit zur Erfüllung von CC und FC abhängt. Je nach Anwendungsfall kann die Generierung von N zur Verifizierung vertrauenswürdiger Daten während oder vor einer Produktion einer Anwendung der vorliegenden Offenbarung erfolgen.
  • Wie der Fachmann verstehen wird, bietet die zusätzliche Anwendung des PoW eine bessere und flexiblere Skalierbarkeit der attack feasibility und kann in der Praxis auch auf eine andere Weise umgesetzt sein. Insbesondere kann durch die zusätzliche Anwendung des PoW eine Schwierigkeit zur Erfüllung der funktionalen Bedingung bei gleichbleibender Sicherheit verringert werden, was auch einer einfacheren technischen Umsetzung zugutekommt, wie nachfolgend näher erläutert wird.
  • Im Zusammenhang mit dem vorgeschlagenen Verfahren 100 kann in Anwendungsbeispielen eine bestimmte Verteilung von Informationen auf verschiedenen Speichern angewandt werden.
  • 4 zeigt ein Blockdiagramm zur schematischen Darstellung einer beispielhaften Speicherung von Daten und Information im Zusammenhang mit dem vorgeschlagenen Konzept. Wie gezeigt, können bei Anwendungen des vorgeschlagenen Verfahrens 100, verschiedene Speicher 41, 42 und 43 zur Speicherung vorgesehen sein. Vorliegend ist ein Festwertspeicher 41, auch Nur-Lese-Speicher (englisch: „read-only memory, ROM“) genannt, zur Speicherung einer Bootsoftware („BOOT SW“) vorgesehen, welche den Bootvorgang ausführt. Der Festwertspeicher 41 wird daher vorliegend auch als „Boot-ROM“ bezeichnet. Neben der Bootsoftware sind auf dem Festwertspeicher 41 der Wert FC der funktionalen Bedingung und die Rechenbedingung CC bzw. ein Wert der Rechenbedingung gespeichert. Wie der Fachmann zu schätzen wissen wird, können Daten auf dem Festwertspeicher 41 nicht ohne Weiteres manipuliert werden, weshalb der Festwertspeicher 41 gegenüber anderen Speichern, insbesondere der Speicher 42 und 43 eine höhere Hardwaresicherheit oder Manipulationssicherheit aufweisen kann.
  • Der Speicher 43 speichert die Software SW, welche beim Bootvorgang geladen werden soll, und ist vorliegend beispielsweise als Flash-Speicher („Flash-EEPROM“) ausgeführt. Neben der Software SW sind auf dem Flash-Speicher 43 vorliegend auch ein öffentlicher Schlüssel PK (engl: „public key“) zum Verschlüsseln der Software SW, der Wert N („NONCE_KEY“) und eine Softwaresignatur SIGN_SK(SW) („SW_SIGNATURE“) abgespeichert. Zur Verifizierung wird basierend auf PK und N ein Hash-Wert #Y'=H(PK, N) erzeugt.
  • Der Speicher 42 speichert eine Referenz #Y = H(PK, N) zur Überprüfung von #Y' = H(PK, N) durch einen Vergleich von #Y und #Y'. Der Speicher 42 kann dabei derart ausgebildet sein, so dass Änderungen eines Speicherinhalts irreversibel sind, sprich, dass Änderungen nicht wieder rückgängig gemacht werden können. Vorliegend umfasst der Speicher 42 beispielsweise eine Mehrzahl an elektronischen Sicherungen, sogenannten „EFuses“, zur Speicherung des Hash-Wertes. Die Referenz #Y kann dabei durch einen Schaltungszustand der EFuses gespeichert sein, welcher nur irreversibel veränderbar ist. Die EFuses können ihren Zustand zum Beispiel nur von „0“ zu „1“ wechseln, aber nicht umgekehrt. #Y ist also nur irreversibel veränderbar, was eine zuverlässigere Erkennung von Manipulationen ermöglicht.
  • Der Anwendungsfall sieht beispielsweise vor, dass die Software SW für den Bootvorgang verfahrensgemäß durch die Bootsoftware BOOT SW geprüft und geladen wird. Im vorliegenden Fall ist vorgesehen, dass die SW unter Verwendung des Schlüssels PK verifiziert wird. Mögliche Angriffe können daher vorsehen, den Schlüssel PK zur Einschleusung unerwünschter Daten oder Software zu manipulieren. Die vorliegende Offenbarung bietet daher insbesondere einen Ansatz zur Verifizierung von kryptographischen Schlüsseln, um solchen Angriffen entgegenzuwirken.
  • Zur Verifizierung werden beispielsweise verfahrensgemäß folgende Schritte ausgeführt:
    1. 1) Berechnen von #Y' = H(PK, N) basierend auf dem öffentlichen Schlüssel PK und dem Wert N, welche im Flash-Speicher 43 hinterlegt sind;
    2. 2) Berechnen von #Z' = CountZeros(#Y' = H(PK, N), wobei #Z' eine Gesamtanzahl an Nullen in #Y' angibt;
    3. 3) Berechnen eines (weiteren) Hash-Wertes Hash(PK, N) gemäß der Rechenbedingung CC als Rechennachweis PoW, basierend auf PK und N (optional)
    4. 4) Überprüfen, ob #Z' = FC erfüllt ist, wobei FC im vorliegenden Beispiel eine vorbestimmten Gesamtanzahl an Nullen in H(PK, N) angibt;
    5. 5) Überprüfen, ob PoW (Hash(PK, N)) die Rechenbedingung CC erfüllt (optional); und
    6. 6) Überprüfen, ob #Y' = #Y erfüllt ist.
  • Die Software SW wird dann als vertrauenswürdig eingestuft und für den Bootvorgang aus dem Flash-Speicher 43 geladen, wenn die Bedingungen der Schritte 4), 5) und 6) erfüllt sind.
  • Ansonsten wird die Software SW als nicht vertrauenswürdig eingestuft und von einem Laden der Software wird abgesehen.
  • Der vorgeschlagene Abgleich des Hash-Wertes #Y' mit #Y in Schritt 6) bietet dabei einen Abgleich mit physikalischen, irreversibel veränderlichen Eigenschaften, nämlich dem Schaltungszustand der EFuses, wodurch sich gegenüber anderen Ansätzen eine höhere Sicherheit der Verifizierung bzw. eine geringere attack feasibility ergibt.
  • Die Anwendung eines PoW (siehe Schritt 5)) erlaubt bei konstanter attack feasibility eine kürzere Zeichenfolge bzw. einen kürzeren Hash-Wert #Y. Dementsprechend benötigt z.B. #Y eine geringere Speicherkapazität. Durch die Anwendung des PoW werden also zugunsten einer geringeren technischen Komplexität und geringeren Kosten weniger EFuses zur Speicherung benötigt. Die Verwendung des PoW erlaubt also einen bevorzugten Kompromiss zwischen einer benötigten Chipfläche (für die EFuses) und einem Rechenaufwand zum Erfüllen der Rechenbedingung. In der Praxis fordert die Rechenbedingung CC beispielsweise, dass der PoW eine vorbestimmte Anzahl führender Nullen aufweist. Wie in 3 gezeigt, entspricht PoW der Zeichenfolge, also z.B. #Y'.
  • Es sei darauf hingewiesen, dass das beschriebene Vorgehen nicht auf den die Verwendung des öffentlichen Schlüssels PK beschränkt ist und alternativ oder zusätzlich Software, ein Softwareabbild, Konfigurationsdaten und/oder dergleichen verwendet werden kann.
  • Außerdem können bei dem Bootvorgang auch mehrere Zeichenfolgen, z.B. mehrere Hash-Werte, mittels der funktionalen Bedingungen überprüft werden. In der Praxis werden beim Bootvorgang beispielsweise mehrere Komponenten initialisiert, welche jeweils einen eigenen Schlüssel und damit eine eigene Zeichenfolge bzw. einen eigenen Hash-Wert zur Verifizierung nutzen können. Optional können auch mehrere Hash-Werte je Komponente verifiziert werden. Die Anzahl an EFuses kann dabei mit der Anzahl den Zeichenfolgen bzw. Hash-Werten skalieren, welche zur Verifizierung verwendet werden und hierfür in den EFuses gespeichert sind.
  • Ebenso können mehrere PoWs vorgesehen sein, wie anhand 5 näher erläutert werden soll.
  • Wie in 5 gezeigt, kann neben einer ersten Rechenbedingung CC1 (z.B. CC), die wie vorhergehend beschrieben zur Verifizierung des Hash-Wertes #Y' mittels eines ersten PoW verwendet wird, (mindestens) eine zweite Rechenbedingung CC2 für einen zweiten PoW verwendet werden. Neben der Verifizierung des Schlüssels, wird CC2 vorliegend beispielsweise zur Verifizierung einer Softwaresignatur SW_SIGNATURE angewandt. In anderen Ausführungsbeispielen können hierfür aber auch zum Beispiel ein weiterer kryptographischer Schlüssel oder andere Daten/Informationen verwendet werden. Im vorliegenden Fall umfasst die Softwaresignatur SW_SIGNATURE beispielsweise einen weiteren Hash-Wert SIGN_SK(SW, NI) („Hash (SW, NI)“), welcher basierend auf der Software SW und einem (beliebigen) Abbild NI des Wertes N erzeugt wurde.
  • Die Verifizierung umfasst dann beispielsweise ferner folgende Schritte:
    • 3a) Berechnen eines (weiteren) Hash-Wertes Hash(SW, NI) als Rechennachweis PoW*, basierend auf SW und NI; und
    • 5a) Überprüfen, ob PoW* die Rechenbedingung CC2 erfüllt
  • Die Software SW wird dann als vertrauenswürdig eingestuft und geladen, wenn auch CC2 erfüllt ist. Andernfalls wird vom Laden der Software SW abgesehen.
  • Der Fachmann wird verstehen, dass gleichermaßen zusätzlich oder alternativ auch eine weitere funktionale Bedingung („FC2“) zur Verifizierung angewandt werden kann.
  • Der Fachmann wird außerdem zu schätzen wissen, dass die funktionale Bedingung nicht nur auf den Hash-Wert der Daten oder dem Schlüssel, sondern auch auf die Daten oder den Schlüssel selbst angewandt werden kann. Vorliegend kann die funktionale Bedingung z.B. auf eine Eingabemenge zur Erzeugung des Hash-Werts angewendet werden kann, wie nachfolgend in Bezug auf 6 erläutert ist.
  • Bezugnehmend auf das Beispiel aus 2 und 3 kann die funktionale Bedingung beispielsweise auf das Datenpaket (D', N) angewandt werden. Entsprechend wird zur Verifizierung beispielsweise das Hamming-Gewicht des Datenpakets zur Überprüfung auf Übereinstimmung mit dem vorbestimmten Hamming-Gewicht gemäß der funktionalen Bedingung verglichen. N ist also so zu wählen, dass (D', N) der funktionalen Bedingung entspricht und beispielsweise das vorbestimmte Hamming-Gewicht aufweist.
  • Alternativ können zur Verifizierung auch N und ein kryptographischer Schlüssel verwendet werden, wie anhand eines Ausführungsbeispiels gemäß 7 gezeigt ist.
  • Das in 7 gezeigte Ausführungsbeispiel sieht beispielsweise vor, dass ein symmetrischer Schlüssel K zusammen mit N zur Verifizierung verwendet wird. Wie gezeigt, sind hierfür K und N in dem Speicher 42 gespeichert. In dem Speicher 41 sind beispielsweise weiterhin die Bootsoftware SW, FC und CC gespeichert.
  • Dabei ist FC beispielsweise in Abhängigkeit von K und/oder N definiert. Im vorliegenden Beispiel ist der vorbestimmte Wert FC für die Gesamtanzahl der Nullen definiert, z.B. gemäß: FC := f loor(len(N) + len(K))/2). Optional kann jedwede andere Definition für FC in Abhängigkeit von N und/oder K gewählt werden.
  • Zusätzlich kann zur Verifizierung ein PoW vorgesehen sein, bei welchem ein Hash-Wert Hash(N, K) auf Übereinstimmung mit CC geprüft wird.
  • Die Verifizierung umfasst dann beispielsweise folgende Schritte:
    1. 1) Berechnen von #Z', wobei #Z' eine Gesamtanzahl der Nullen in N und K zusammen angibt;
    2. 2) Berechnen von PoW = Hash(N, K) basierend auf N und K (optional);
    3. 3) Überprüfen, ob #Z' = FC; und
    4. 4) Überprüfen, ob PoW = CC (optional).
  • Für den Fall, dass 3) und optional auch 4) erfüllt sind, wird die Software SW geladen und andernfalls vom Laden der Software SW abgesehen.
  • Für den Fall, dass die funktionale Bedingung für das Hamming-Gewicht definiert ist, ergibt sich unter der Annahme, dass n := len(N), k := len(K) und wt(K) das Hamming-Gewicht von K ist (beziehungsweise wt(N) das Hamming-Gewicht von N), für einen konstanten Wert FC, dass n ≥ k, um sämtliche Fälle abzudecken. Vorgeschlagen wird n = k  und  F C = n + k 2 = n
    Figure DE102022129350A1_0001
     
    Figure DE102022129350A1_0002
    zu setzen. Die Anzahl an Vektoren bei einem gegebenen Hamming-Gewicht und einer gegebenen Länge n ist dann gegeben durch: „n aus k“, also: C ( n , k ) = n ! w ! ( n w ) !
    Figure DE102022129350A1_0003
  • Dabei hängt die Anzahl der möglichen Werte für N dann vom Hamming-Gewicht von K ab. In den Grenzfällen (ausgenommen die Fälle bei denen K binär ist und ausschließlich 1 oder 0 enthält) wt(K) = k - 1 und wt(K) = 1 sind dann n Werte für N möglich.
  • Die Rechenbedingung kann derart definiert sein, dass zu deren Erfüllung für ein gegebenen Schlüssel K ein Wert N bestimmt werden muss, so dass H(K, N) die Rechenbedingung erfüllt und für den Fall, dass Schaltzustände von EFuses nur von 0 nach 1 aber nicht umgekehrt geändert werden können, für sämtliche andere Schlüssel K' mit wt(K') > wt(K) und N' mit wt(N') > wt(N) die Rechenbedingung nicht erfüllt ist. In dem Fall ist eine Verwirklichung ohne zusätzliche EFuses für #Z(N, K) möglich. Der Raum möglicher Lösungen für N' und K' ist dann ausreichend groß.
  • Wie in Bezug auf 8 näher erläutert, kann das vorgeschlagene Konzept zum Beispiel bei einem Bootvorgang mehrfach zur Anwendung kommen, z.B. je Stufe wenigstens einmal.
  • Entsprechend N, K, CC und FC können hierfür K0, N0, CC0 und FC0 zur Verifizierung bei einer ersten Stufe 91 des Bootvorgangs gespeichert und angewendet werden, um ein Software-Abbild A (engl. „Image A“) zu laden, welches eine Software A, eine weitere funktionale Bedingung FC1 und eine weitere Rechenbedingung CC1 sowie einen weiteren Schlüssel K1 umfasst. Analog zur ersten Stufe können dann K1, CC1 und FC1 zusammen mit einem weiteren Wert N1 in einer weiteren Stufe 92 des Bootvorgangs zur Verifizierung der Software SW A verwendet werden. N1 kann ebenfalls in Speicher 42 abgespeichert sein.
  • Das hierin vorgeschlagene Konzept kann zum Beispiel in Anwendungen für ein Fahrzeug verwirklicht sein, zum Beispiel zur Initialisierung einer Fahrzeugkomponente, wie dem Brems- oder Lenksystem des Fahrzeugs. Das Verfahren 100 kann entsprechend durch das Fahrzeug ausgeführt werden. Der Fachmann wird allerdings zu schätzen wissen, dass das vorgeschlagene Konzept analog auch in anderen Anwendungen eingesetzt werden kann.
  • Das vorgeschlagene Verfahren 100 kann in der Praxis in einem Computerprogramm implementiert sein. Entsprechend schaffen Ausführungsbeispiele ein Computerprogramm, umfassend Befehle, die bei der Ausführung des Programms durch einen Computer diesen veranlassen, das Verfahren/die Schritte eines Verfahrens gemäß einem der vorhergehenden Ansprüche auszuführen.
  • Wie anhand 9 näher erläutert, kann das vorgeschlagene Konzept auch in einer Vorrichtung umgesetzt sein.
  • 9 zeigt ein Blockdiagramm zur schematischen Darstellung eines Ausführungsbeispiels einer Vorrichtung 100 zum Laden von Daten bei einem Bootvorgang gemäß der vorliegenden Offenbarung.
  • Die Vorrichtung 100 umfasst eine oder mehrere Schnittstellen 110 zur Kommunikation und eine Datenverarbeitungsschaltung 120 welche eingerichtet ist, um unter Verwendung der einen oder mehreren Schnittstellen 110 ein Verfahren gemäß der vorliegenden Offenbarung auszuführen.
  • Die ein oder mehreren Schnittstellen 110 können entsprechend zum Empfangen der Zeichenfolge und Laden der Software ausgebildet sein. In der Praxis können die Schnittstellen 110 dabei jedwede kabelgebundene und/oder kabellose Schnittstelle umfassen. Die Schnittstellen 110 können in der Praxis als externe Schnittstellen und/oder interne Schnittstellen der Datenverarbeitungsschaltung 120, z.B. als „Sockel“ oder „Slot“ der Datenverarbeitungsschaltung, ausgeführt sein. Alternativ können sie als optische Schnittstellen ausgeführt sein.
  • Die Datenverarbeitungsschaltung 120 kann in der Praxis jedwede programmierbare Hardware umfassen. Beispiele einer solchen programmierbaren Hardware können beispielsweise einen Prozessor, einen Computerprozessor (CPU = Central Processing Unit), einen Grafikprozessor (GPU = Graphics Processing Unit), einen Computer, ein Computersystem, einen anwendungsspezifischen integrierten Schaltkreis (ASIC = Application-Specific Integrated Circuit), einen integrierten Schaltkreis (IC = Integrated Circuit), ein Ein-Chip-System (SOC = System on Chip), ein programmierbares Logikelement oder ein feldprogrammierbares Gatterarray mit einem Mikroprozessor (FPGA = Field Programmable Gate Array) umfassen.
  • Zur Ausführung der vorgeschlagenen Verfahrens 100 kann die Datenverarbeitungsschaltung 120 zur Ausführung eines entsprechenden Computerprogramms ausgebildet sein. Hierfür kann das Computerprogramm auf einem (digitalen) Speichermedium vorliegen und hiervon abgerufen werden. Die Vorrichtung 100 kann entsprechend ein solches Speichermedium umfassen. Das Speichermedium kann daher maschinen- oder computerlesbar sein. Manche Ausführungsbeispiele umfassen also einen Datenträger, der elektronisch lesbare Steuersignale aufweist, die in der Lage sind, mit einem programmierbaren Computersystem oder einer programmierbare Hardwarekomponente derart zusammenzuwirken, dass eines der hierin beschriebenen Verfahren durchgeführt wird. Ein Ausführungsbeispiel ist somit ein Datenträger (oder ein digitales Speichermedium oder ein computerlesbares Medium), auf dem das Programm zum Durchführen eines der hierin beschriebenen Verfahren aufgezeichnet ist. In manchen Ausführungsbeispielen ist der Speicher zur Speicherung des Computerprogramms zum Schutz vor Manipulationen als Festwertspeicher ausgeführt.
  • Wie im Zusammenhang mit dem Verfahren 100 erläutert, kann die Vorrichtung 100 ferner einen digitalen Speicher mit ein oder mehreren elektronischen Sicherungen zum Speichern einer Referenz zur Überprüfung der Zeichenfolge umfassen.
  • In manchen Ausführungsbeispielen kann die beschriebene Vorrichtung 100 in einem Fahrzeug installiert sein.
  • Die Aspekte und Merkmale, die im Zusammenhang mit einem bestimmten der vorherigen Beispiele beschrieben sind, können auch mit einem oder mehreren der weiteren Beispiele kombiniert werden, um ein identisches oder ähnliches Merkmal dieses weiteren Beispiels zu ersetzen oder um das Merkmal in das weitere Beispiel zusätzlich einzuführen.
  • Es versteht sich, dass die Offenbarung mehrerer, in der Beschreibung oder den Ansprüchen offenbarter Schritte, Prozesse, Operationen oder Funktionen nicht als zwingend in der beschriebenen Reihenfolge befindlich ausgelegt werden soll, sofern dies nicht im Einzelfall explizit angegeben oder aus technischen Gründen zwingend erforderlich ist. Daher wird durch die vorhergehende Beschreibung die Durchführung von mehreren Schritten oder Funktionen nicht auf eine bestimmte Reihenfolge begrenzt. Ferner kann bei weiteren Beispielen ein einzelner Schritt, eine einzelne Funktion, ein einzelner Prozess oder eine einzelne Operation mehrere Teilschritte, -funktionen, -prozesse oder -operationen einschließen und/oder in dieselben aufgebrochen werden.
  • Wenn einige Aspekte in den vorhergehenden Abschnitten im Zusammenhang mit einer Vorrichtung oder einem System beschrieben wurden, sind diese Aspekte auch als eine Beschreibung des entsprechenden Verfahrens zu verstehen. Dabei kann beispielsweise ein Block, eine Vorrichtung oder ein funktionaler Aspekt der Vorrichtung oder des Systems einem Merkmal, etwa einem Verfahrensschritt, des entsprechenden Verfahrens entsprechen. Entsprechend dazu sind Aspekte, die im Zusammenhang mit einem Verfahren beschrieben werden, auch als eine Beschreibung eines entsprechenden Blocks, eines entsprechenden Elements, einer Eigenschaft oder eines funktionalen Merkmals einer entsprechenden Vorrichtung oder eines entsprechenden Systems zu verstehen.
  • Die folgenden Ansprüche werden hiermit in die detaillierte Beschreibung aufgenommen, wobei jeder Anspruch als getrenntes Beispiel für sich stehen kann. Ferner ist zu beachten, dass - obwohl ein abhängiger Anspruch sich in den Ansprüchen auf eine bestimmte Kombination mit einem oder mehreren anderen Ansprüchen bezieht - andere Beispiele auch eine Kombination des abhängigen Anspruchs mit dem Gegenstand jedes anderen abhängigen oder unabhängigen Anspruchs umfassen können. Solche Kombinationen werden hiermit explizit vorgeschlagen, sofern nicht im Einzelfall angegeben ist, dass eine bestimmte Kombination nicht beabsichtigt ist. Ferner sollen auch Merkmale eines Anspruchs für jeden anderen unabhängigen Anspruch eingeschlossen sein, selbst wenn dieser Anspruch nicht direkt als abhängig von diesem anderen unabhängigen Anspruch definiert ist.

Claims (18)

  1. Verfahren (10) zum Laden von Daten, wie z.B. bei einem Bootvorgang, das Verfahren umfassend: Empfangen (11) zumindest einer Zeichenfolge zum Verifizieren der Daten; Verifizieren (12) der Daten, wobei das Verifizieren der Daten ein vollständiges Überprüfen der gesamten Zeichenfolge umfasst; und Laden (13) der Daten basierend auf der Überprüfung der Zeichenfolge.
  2. Das Verfahren gemäß Anspruch 1, wobei die Zeichenfolge einen kryptographischen Schlüssel und/oder zumindest einen vorbestimmten Wert zum Verifizieren der Daten umfasst.
  3. Das Verfahren gemäß Anspruch 1 oder 2, wobei die Zeichenfolge einen für die Daten spezifischen Hashwert umfasst, und wobei das Überprüfen der Zeichenfolge ein vollständiges Überprüfen des Hashwertes umfasst.
  4. Das Verfahren gemäß Anspruch 3, wobei der Hashwert basierend auf einem kryptographischen Schlüssel der Daten, Dateninformationen und/oder Konfigurationsinformationen über die Daten erzeugt wurde.
  5. Das Verfahren gemäß einem der vorhergehenden Ansprüche, wobei das vollständige Überprüfen der Zeichenfolge ein Überprüfen, ob die Zeichenfolge eine vorbestimmte Bedingung erfüllt, umfasst, und wobei das Laden der Daten erfolgt, wenn die Bedingung erfüllt ist.
  6. Das Verfahren gemäß Anspruch 5, wobei die vorbestimmte Bedingung eine Bedingung an ein Ergebnis einer auf die gesamte Zeichenfolge angewandten vorbestimmten Funktion umfasst.
  7. Das Verfahren gemäß Anspruch 6, wobei die Bedingung erfüllt ist, wenn das Ergebnis nicht mehr als um eine vorbestimmte Abweichung von einem vorbestimmten Vergleichswert des Ergebnisses abweicht.
  8. Das Verfahren gemäß einem der Ansprüche 5 bis 7, wobei die vorbestimmte Bedingung eine Bedingung an eine Gesamtanzahl eines vorbestimmten Zeichens in der Zeichenfolge und/oder eine Anzahl von Zeichen der Zeichenfolge innerhalb eines vorbestimmten Zeichenbereichs umfasst.
  9. Das Verfahren gemäß den Anspruch 6, wobei die vorbestimmte Funktion eine Funktion zum Bestimmen des Hamming-Gewichts der Zeichenfolge umfasst, und wobei die vorbestimmte Bedingung erfüllt ist, wenn das Hamming-Gewicht einem vorbestimmten Wert entspricht.
  10. Das Verfahren gemäß einem der vorhergehenden Ansprüche, das Verfahren ferner umfassend ein Verifizieren der Zeichenfolge anhand eines Nachweises über einen Aufwand zum Erzeugen der Zeichenfolge.
  11. Das Verfahren gemäß Anspruch 10, wobei der Nachweis dadurch erfolgt, dass die Zeichenfolge eine vorbestimmte Anzahl eines vorbestimmten führenden Zeichens umfasst.
  12. Das Verfahren gemäß einem der vorhergehenden Ansprüche, wobei das Verfahren in einem Fahrzeug ausgeführt wird, und wobei die Daten zum Betreiben einer Komponente des Fahrzeugs vorgesehen ist.
  13. Ein Computerprogramm, umfassend Befehle, die bei der Ausführung des Programms durch einen Computer diesen veranlassen, das Verfahren/die Schritte eines Verfahrens gemäß einem der vorhergehenden Ansprüche auszuführen.
  14. Eine Vorrichtung (100) zum Laden von Daten, wie z.B. bei einem Bootvorgang, die Vorrichtung umfassend: eine oder mehrere Schnittstellen (110) zur Kommunikation; und eine Datenverarbeitungsschaltung (120) welche eingerichtet ist, um unter Verwendung der einen oder mehreren Schnittstellen das Verfahren nach einem der Ansprüche 1 bis 12 auszuführen.
  15. Die Vorrichtung gemäß Anspruch 14, wobei die Datenverarbeitungsschaltung einen Speicher zum Speichern eines Computerprogramms gemäß Anspruch 13 zum Ausführen des Verfahrens umfasst.
  16. Die Vorrichtung gemäß Anspruch 15, wobei der Speicher als Festwertspeicher ausgeführt ist.
  17. Die Vorrichtung gemäß einem der vorhergehenden Ansprüche, wobei die Vorrichtung einen digitalen Speicher mit ein oder mehreren elektronischen Sicherungen zum Speichern einer Referenz zur Überprüfung der Zeichenfolge umfasst.
  18. Ein Fahrzeug, umfassend eine Vorrichtung gemäß einem der Ansprüche 14 bis 17.
DE102022129350.5A 2022-11-07 2022-11-07 Fahrzeug, Vorrichtung, Computerprogramm und Verfahren zum Laden von Daten Pending DE102022129350A1 (de)

Priority Applications (3)

Application Number Priority Date Filing Date Title
DE102022129350.5A DE102022129350A1 (de) 2022-11-07 2022-11-07 Fahrzeug, Vorrichtung, Computerprogramm und Verfahren zum Laden von Daten
US18/494,431 US20240155336A1 (en) 2022-11-07 2023-10-25 Vehicle, device, computer program and method for loading data
CN202311474392.0A CN117993022A (zh) 2022-11-07 2023-11-07 用于加载数据的交通工具、设备、存储介质和方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102022129350.5A DE102022129350A1 (de) 2022-11-07 2022-11-07 Fahrzeug, Vorrichtung, Computerprogramm und Verfahren zum Laden von Daten

Publications (1)

Publication Number Publication Date
DE102022129350A1 true DE102022129350A1 (de) 2024-05-08

Family

ID=90732421

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102022129350.5A Pending DE102022129350A1 (de) 2022-11-07 2022-11-07 Fahrzeug, Vorrichtung, Computerprogramm und Verfahren zum Laden von Daten

Country Status (3)

Country Link
US (1) US20240155336A1 (de)
CN (1) CN117993022A (de)
DE (1) DE102022129350A1 (de)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150012737A1 (en) 2013-07-04 2015-01-08 Microsemi SoC Corporation Secure Boot for Unsecure Processors
US20200226264A1 (en) 2017-09-30 2020-07-16 Huawei Technologies Co., Ltd. Secure boot and apparatus, and terminal device
US20220182248A1 (en) 2019-08-06 2022-06-09 Huawei Technologies Co., Ltd. Secure startup method, controller, and control system
US20220350891A1 (en) 2021-04-29 2022-11-03 Infineon Technologies Ag Fast secure booting method and system

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150012737A1 (en) 2013-07-04 2015-01-08 Microsemi SoC Corporation Secure Boot for Unsecure Processors
US20200226264A1 (en) 2017-09-30 2020-07-16 Huawei Technologies Co., Ltd. Secure boot and apparatus, and terminal device
US20220182248A1 (en) 2019-08-06 2022-06-09 Huawei Technologies Co., Ltd. Secure startup method, controller, and control system
US20220350891A1 (en) 2021-04-29 2022-11-03 Infineon Technologies Ag Fast secure booting method and system

Also Published As

Publication number Publication date
US20240155336A1 (en) 2024-05-09
CN117993022A (zh) 2024-05-07

Similar Documents

Publication Publication Date Title
DE60126968T2 (de) System zum schutz von dynamischen und statischen daten gegen unerlaubten manipulationen
DE102008021567B4 (de) Computersystem mit sicherem Hochlaufmechanismus auf der Grundlage einer Verschlüsselung mit symmetrischem Schlüssel
DE112008003931T5 (de) Systeme und Verfahren für Datensicherheit
DE102015209108A1 (de) Verfahren und Entscheidungsgateway zum Autorisieren einer Funktion eines eingebetteten Steuergerätes
DE112005002845T5 (de) Verfahren, Vorrichtung und System zur sicheren Datenspeicherung
DE102016221108A1 (de) Verfahren zum Aktualisieren einer Software eines Steuergeräts eines Fahrzeugs
DE102017002153A1 (de) Übergang von einer booleschen Maskierung zu einer arithmetischen Maskierung
DE102014208838A1 (de) Verfahren zum Betreiben eines Steuergeräts
DE102013013179A1 (de) Verfahren zum Betreiben eines Sicherheitselements
DE102014117971A1 (de) Verfahren zur Datenverarbeitung zum Ermitteln, ob bei einer Ausführung eines Programms ein Fehler aufgetreten ist, und Datenverarbeitungsanordnungen zum Erzeugen von Programm-Code
DE102020121075A1 (de) Einrichtung und Verfahren zur Authentifizierung von Software
DE102016210788A1 (de) Komponente zur Verarbeitung eines schützenswerten Datums und Verfahren zur Umsetzung einer Sicherheitsfunktion zum Schutz eines schützenswerten Datums in einer solchen Komponente
EP1540880B1 (de) Geschützte kryptographische berechnung
DE112018002723B4 (de) System, verfahren und vorrichtung zur verschleierung von vorrichtungsoperationen
DE112019007421T5 (de) Speichergerät mit sicherer testmoduseingabe
DE102018213615A1 (de) Kryptografiemodul und Betriebsverfahren hierfür
DE102022129350A1 (de) Fahrzeug, Vorrichtung, Computerprogramm und Verfahren zum Laden von Daten
WO2016096118A1 (de) Verfahren zum betreiben einer computereinheit sowie eine solche computereinheit
EP3248136B1 (de) Verfahren zum betreiben einer computereinheit mit einer sicheren laufzeitumgebung sowie eine solche computereinheit
EP3667529B1 (de) Verfahren und vorrichtung zum authentisieren einer fpga-konfiguration
EP3798873B1 (de) Verfahren zum schützen einer computer-implementierten anwendung vor manipulation
DE102012015158A1 (de) Gegen Ausspähen geschützte kryptographische Berechnung
DE102015209120A1 (de) Recheneinrichtung und Betriebsverfahren hierfür
DE102017202787A1 (de) Verfahren und Validierungseinheit zum Steuern des Ladens von in IT-Systemen, insbesondere Eingebetteten Systemen, benutzbaren Krypto-Schlüsseln, insbesondere "Key BLOBs"
DE102021126509B4 (de) Tragbare Chipvorrichtung und Verfahren zum Ausführen eines Softwaremodul-Updates in einer tragbaren Chipvorrichtung

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication