DE102014114899A1 - Verfahren und Vorrichtung zur Nutzung in einem Datenverarbeitungssystem - Google Patents

Verfahren und Vorrichtung zur Nutzung in einem Datenverarbeitungssystem Download PDF

Info

Publication number
DE102014114899A1
DE102014114899A1 DE102014114899.1A DE102014114899A DE102014114899A1 DE 102014114899 A1 DE102014114899 A1 DE 102014114899A1 DE 102014114899 A DE102014114899 A DE 102014114899A DE 102014114899 A1 DE102014114899 A1 DE 102014114899A1
Authority
DE
Germany
Prior art keywords
software
code
executed
software code
integrity check
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
DE102014114899.1A
Other languages
English (en)
Inventor
Stephen R. Hanna
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 DE102014114899.1A priority Critical patent/DE102014114899A1/de
Publication of DE102014114899A1 publication Critical patent/DE102014114899A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • 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
    • 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

Abstract

Hierin ist ein Verfahren zur Verwendung beim Betrieb eines softwaregesteuerten Geräts offenbart. Das Verfahren umfasst ein Laden von Softwarecode, der ausgeführt werden soll, wenn das Gerät betrieben wird, ein Durchführen einer Integritätsprüfung an dem Softwarecode, und ein Signalisieren eines Flags, das ein Ergebnis der Integritätsprüfung anzeigt. Hierin ist ein Gerät zur Verwendung unter Softwaresteuerung offenbart. Das Gerät umfasst ein Anschlussende, das dazu konfiguriert ist, an eine Speichereinheit zu koppeln, die auszuführenden Softwarecode speichert, ein Register, das dazu konfiguriert ist, den auszuführenden Softwarecode zu halten, einen Prozessor, der dazu konfiguriert ist, Softwarecode auszuführen, um das Gerät zu betreiben, und ein Signalausgabeelement, das dazu konfiguriert ist, ein Flag zu signalisieren. Der Prozessor ist dazu konfiguriert, den auszuführenden Softwarecode aus der Speichereinheit in das Register zu laden, eine Integritätsprüfung an dem auszuführenden Softwarecode durchzuführen, und an dem Signalausgabeelement ein Flag bereitzustellen, das ein Ergebnis der Integritätsprüfung anzeigt.

Description

  • Die Industrie hat ein gesichertes Computerwesen auf der Grundlage einer gesicherten Hardware-Root entwickelt, um Computerinfrastruktur und Milliarden von Endpunkten zu schützen.
  • Implementierung von Software mit kryptographischen Möglichkeiten, um ein System gegen nicht autorisierte Änderungen und Angriffe wie etwa Schadsoftware und Rootkits zu schützen, kann Vertrauen in das System herstellen. Das Computerwesen erstreckt sich auf verschiedene Geräte und die Infrastruktur entwickelt sich. Dementsprechend wird Software auf ein Konzept gesicherter Systeme über Computer hinaus, die mit einem gesicherten Gerät versehen sind, auf sonstige Geräte im Bereich von Festplattenantrieben und Mobiltelefonen erstreckt.
  • Technologien für ein gesichertes Computerwesen, die in der Industrie entwickelt wurden, sind nunmehr in Unternehmenssystemen, Speichersystemen, Netzwerken, eingebetteten Systemen und Mobilgeräten im Einsatz und können Cloud Computing und virtuell realisierte Systeme absichern. Tausende von Lieferanten bieten eine Vielzahl von gesicherten computergestützten Produkten einschließlich Hardware, Anwendungen und Diensten an.
  • Im Ergebnis sind Systeme, Netzwerke und Anwendungen sicherer, weniger anfällig gegenüber Viren und Schadsoftware und somit nicht nur verlässlicher, sondern auch einfacher einzurichten und leichter zu verwalten.
  • KURZFASSUNG
  • Das folgende stellt eine vereinfachte Kurzfassung dar, um ein grundlegendes Verständnis in einer oder mehrerer Hinsicht der Erfindung zu beschaffen. Diese Kurzfassung ist keine weitreichendere Übersicht über die Erfindung, und weder ist beabsichtigt, Schlüsselelemente oder kritische Elemente der Erfindung zu identifizieren, noch den Umfang derselben in groben Zügen auszuführen. Vielmehr besteht der primäre Zweck dieser Kurzfassung darin, einige Konzepte der Erfindung in einer vereinfachten Form als ein Vorspiel zu einer ausführlicheren Beschreibung zu präsentieren, die später präsentiert wird.
  • In einer Hinsicht wird ein Verfahren bereitgestellt, wie es in dem unabhängigen Verfahrensanspruch definiert ist. In einer anderen Hinsicht wird ein Gerät bereitgestellt, wie es in dem unabhängigen Geräteanspruch definiert ist. In noch einer weiteren Hinsicht wird ein computerlesbares Medium bereitgestellt, das Befehlscode speichert, wie es in dem unabhängigen Anspruch für ein computerlesbares Medium, das Befehlscode speichert, definiert ist. Die abhängigen Ansprüche definieren Ausführungsformen gemäß der Erfindung in einer oder mehrerer Hinsicht. Man beachte, dass Merkmale dieser Ausführungsformen miteinander kombiniert werden können, sofern nicht speziell das Gegenteil gesagt ist. Beispielsweise können Elemente von Verfahrens Ausführungsformen in Ausführungsformen des Gerätes implementiert werden. Beispielsweise können Merkmale einer Ausführungsform des Geräts verwendet werden, um Schritte einer Ausführungsform des Verfahrens durchzuführen.
  • Hierin beschrieben sind Ausführungsformen die auf ein Verfahren bezogen sind, ein Gerät und ein computerlesbares Medium, das Befehlscode speichert. Die beschriebenen Ausführungsformen können beispielsweise auf dem Gebiet des Betreibens eines softwaregesteuerten Gerätes nützlich sein. Im Vergleich mit herkömmlichen Lösungen kann wenigstens eine Wirkung darin bestehen, dass ein Flag eine Grundlage bilden kann, auf der der Nutzer darauf vertraut, dass das Gerät ordnungsgemäß funktioniert.
  • Diese Kurzfassung wird mit dem Verständnis eingereicht, dass sie nicht dazu verwendet wird, die Ansprüche auszulegen oder den Umfang oder die Bedeutung der Ansprüche zu beschränken. Diese Kurzfassung ist nicht dazu vorgesehen, Schlüsselmerkmale oder wesentliche Merkmale des beanspruchten Gegenstandes zu identifizieren, noch ist beabsichtigt, dass er als eine Hilfe bei der Bestimmung des Umfangs des beanspruchten Gegenstandes verwendet wird. Sonstige Verfahren, Vorrichtungen und Systeme sind ebenfalls offenbart. Jene, die vom Fach sind, werden beim Lesen der nachfolgenden detaillierten Beschreibung und auf Betrachtung der anliegenden Zeichnungen zusätzliche Merkmale und Vorteile erkennen.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • 1 ist ein Blockdiagramm, das ein Gerät gemäß einigen Ausführungsformen schematisch darstellt.
  • 2 zeigt eine Draufsicht auf einen Abschnitt einer Kochplatte mit einer Ansicht einer Bedientafel gemäß einigen Ausführungsformen des in 1 dargestellten Gerätes.
  • 3 zeigt eine Roboterstaubsaugervorrichtung gemäß einigen Ausführungsformen des Gerätes, das in 1 dargestellt ist.
  • 4 ist eine schematische Ansicht, die ein Fahrzeugbildschirmgerät gemäß einigen Ausführungsformen des in 1 dargestellten Gerätes zeigt.
  • 5 ist ein Ablaufplan, der Schritte eines Verfahrens gemäß einigen Ausführungsformen in einer Betriebsablauffolge eines Geräts zeigt, wie es in den 1 bis 4 gezeigt ist.
  • 6 ist ein Ablaufplan, der Schritte eines Verfahrens gemäß einigen Ausführungsformen in einer Betriebsablauffolge eines Geräts zeigt, wie es in den 1 bis 4 gezeigt ist.
  • AUSFÜHRLICHE BESCHREIBUNG DER ERFINDUNG
  • Der beanspruchte Gegenstand wird unten unter Bezugnahme auf die Zeichnungen beschrieben. Die ausführliche Beschreibung nimmt die anliegenden Figuren im Bezug. Dieselben Ziffern werden in allen Zeichnungen verwendet, um gleiche Merkmale und Komponenten in Bezug zu nehmen. Zum Zwecke der Erklärung werden viele spezielle Details ausgeführt, um ein tiefgreifendes Verständnis für den beanspruchten Gegenstand zu schaffen. Es dürfte jedoch offensichtlich sein, dass der beanspruchte Gegenstand ohne diese speziellen Details umgesetzt werden kann.
  • 1 ist ein Blockdiagramm, das ein Verarbeitungssystem schematisch zeigt, das in einem Gerät 110 gemäß einigen Ausführungsformen implementiert ist. Gerät 110 ist in einigen Ausführungsformen als ein Haushaltsgerät wie etwa ein Thermostat, ein Kocher oder ein Staubsauger bereitgestellt; in anderen Ausführungsformen ist Gerät 110 in einem Fahrzeugsteuerungssystem wie etwa einem Armaturenbrett, bereitgestellt, in noch anderen Ausführungsformen ist Gerät 110 als ein Unterhaltungssystem bereitgestellt. Gerät 110 umfasst eine oder mehrere funktionale Komponenten, die in Hardware und/oder in Software implementiert sind, wie etwa einen Mikroprozessor 120, eine Nutzerbedientafel 130, die mit dem Mikroprozessor 120 über eine Bedientafelverbindung 121 gekoppelt ist, eine Bildschirmeinheit 160, die mit dem Mikroprozessor 120 mittels einer Anzeigeverbindung 122 gekoppelt ist, und eine Netzwerkschnittstelle 140, die mit dem Mikroprozessor 120 mittels einer Schnittstellenverbindung 123 gekoppelt ist. Gerät 110 ist an eine Speichereinheit 150 mittels einer Speicherverbindung 124 gekoppelt. Ferner umfasst Gerät 110 eine Anzeigeeinheit 170, die mit dem Mikroprozessor 120 über eine Anzeigeverbindung 125 gekoppelt ist. Das Verarbeitungssystem von Gerät 110 kann eine oder mehrere funktionale Komponenten im Gerät 110 umfassen.
  • Gemäß einigen Ausführungsformen ist Speichereinheit 150 konfiguriert, um computer-ausführbaren Befehlscode zu speichern. Solcher computer-ausführbarer Befehlscode ist Softwarecode zum Verwenden beim Betrieb des Geräts 110. Insbesondere beinhaltet gemäß einigen Ausführungsformen der computer-ausführbare Befehlscode wenigstens einen Abschnitt, der dazu entworfen ist, von dem Mikroprozessor 120 ausgeführt zu werden. Bei einigen Implementierungen führt der computer-ausführbare Befehlscode, wenn er auf dem Mikroprozessor 120 ausgeführt wird, Funktionen durch, die in einem Standard für gesicherte Plattformmodule (Trusted Platform Module: TPM) definiert sind, damit konsistent sind und/oder dementsprechende Definitionen unterstützen. Gemäß einigen Ausführungsformen ist Speichereinheit 150 in dem Gerät 110 enthalten. Einigen Ausführungsformen ist Speichereinheit 150 außerhalb des Gerätes 110. Bei einigen Ausführungsformen bildet wenigstens ein Abschnitt von Speichereinheit 150 einen Teil von Mikroprozessor 120, beispielsweise als ein eingebetteter Speicher. Bei einigen Ausführungsformen ist wenigstens ein Abschnitt des eingebetteten Speichers als eine gesicherte Root zum Speichern bereitgestellt. Speichereinheit 150 kann verteilt sein und somit in mehreren Komponenten oder sonstigen Elementen angeordnet sein. Bei einigen Beispielen ist Speichereinheit 150 sowohl innerhalb als auch außerhalb des Gerätes 110 verteilt. Bei einigen Ausführungsbeispielen ist wenigstens ein Abschnitt der Speichereinheit 150 außerhalb des Geräts 110, wobei ein Koppeln der Speichereinheit 150 von einem Netzwerk über Netzwerkschnittstelle 140 bereitgestellt werden kann. In einigen Implementierungen weist Speichereinheit 150 in dem Umfang, dass Speichereinheit 150 innerhalb des Geräts 110 ist, gespeicherten Befehlscode auf, der konfiguriert ist, um ausgeführt zu werden, sobald Gerät 110 mit Spannung versorgt wird, beispielsweise wenn Gerät 110 angeschaltet wird. Bei einigen Implementierungen ist Befehlscode, der konfiguriert ist, um ausgeführt zu werden, sobald Gerät 110 mit Spannung versorgt wird, beispielsweise beim Booten von Mikroprozessor 120, in Speichereinheit 150 nur insoweit gespeichert, wie Speichereinheit 150 einen Abschnitt von Mikroprozessor 120 bildet.
  • Gemäß einigen Ausführungsformen ist Mikroprozessor 120 konfiguriert, um den Betrieb des Geräts 110 zu steuern. Insbesondere ist Mikroprozessor 120 konfiguriert, um Gerät 110 so zu steuern, dass Gerät 110 einem Nutzer Funktionalität gemäß der Erwartung des Nutzers hinsichtlich der Frage, wie Gerät 110 funktionieren sollte, bereitstellt. Beispielsweise kann der Nutzer bei einer Ausführungsform, in der Gerät 110 in einem Fahrzeugsteuerungssystem bereitgestellt ist, erwarten, dass Gerät 110 Komponenten des Fahrzeuges sicher steuert. Der Nutzer erwartet beispielsweise, dass die Geschwindigkeitsanzeige des Fahrzeugs eine Fahrzeuggeschwindigkeit korrekt anzeigt, dass die Bremsen des Fahrzeuges auf einen Nutzer, der die Bremssteuerung betätigt, richtig reagieren, und dass Bremslichter sicher eine Verwendung der Bremsen anzeigen, damit dritte Verkehrsteilnehmer dies beachten und sich darauf einstellen können. Dementsprechend erwartet der Nutzer, dass Gerät 110 diese Komponenten steuert, so dass die erwartete Funktionalität bereitgestellt wird. Somit kann in Ausführungsformen, in denen Gerät 110 konfiguriert ist, um die Erwartungen des Nutzers zu erfüllen, wenigstens eine Wirkung darin liegen, dass der Nutzer sich darauf verlassen kann, dass die von dem Gerät 110 gesteuerten Komponenten entweder richtig funktionieren oder, wenigstens gemäß einigen Ausführungsformen, Hinweis darauf gegeben wird, falls der Betrieb der gesteuerten Komponenten nicht sicher ist.
  • Gemäß einigen Ausführungsformen umfasst Mikroprozessor 120 ein Register 126, das eingerichtet ist, um ausführbaren Befehlscode von Speichereinheit 150 zur Verwendung bei der Ausführung des Befehlscodes zu empfangen. Bei einigen Ausführungsformen ist Register 126, wenigstens teilweise, mit Referenzdaten versehen, die in Register 126 gespeichert sind, wobei die Referenzdaten bereitgestellt werden, um als Referenz beim Prüfen der Integrität verwendet zu werden, wie unten beschrieben wird. Bei einigen Implementierungen ist Register 126 wenigstens teilweise als ein nur lesbarer Speicher (ROM) bereitgestellt und wenigstens einige Referenzdaten sind in dem ROM Teil von Register 126 fest gespeichert.
  • Gemäß einigen Ausführungsformen beinhaltet Mikroprozessor 120 einen Bootspeicher 127, der konfiguriert ist, um Befehle zu speichern, die auszuführen sind, sobald Mikroprozessor 120 mit Spannung versorgt wird, d. h. bevor sonstige Befehle ausgeführt werden. Bei einigen Ausführungsformen sind Befehle im Bootspeicher 127 fest gespeichert, beispielsweise als Code, der in einem nur lesbaren Speicher bereitgestellt ist. Wenigstens eine Wirkung kann darin liegen, dass während einer Lebensdauer des Mikroprozessors 120 Befehle, die anfänglich ausgeführt werden, sobald Mikroprozessor 120 mit Spannung versorgt wird, stets dieselben sein werden. In einigen Ausführungsformen sind Register 126 und/oder Speicher 127 als eine gesicherte Root bereitgestellt. In einigen Implementierungen ist Bootspeicher 127 als eine vollständige Menge von gesicherten Roots bereitgestellt und weist wenigstens eine minimale Menge von Funktionen auf, die konfiguriert sind um eine Beschreibung von Plattformeigenschaften zu ermöglichen, die auf die Vertrauenswürdigkeit der Plattform einwirken.
  • Gemäß einigen Ausführungsformen ist Nutzerbedientafel 130 konfiguriert, damit ein Nutzer Daten zur Übertragung über Verbindung 121 an Mikroprozessor 120 eingeben kann, und zum Nutzen beim Steuern durch Mikroprozessor 120. Mittel zum Nutzen beim Eingeben von Daten über Nutzerbedientafel 130 hängen von der Funktionalität ab, zu deren Bereitstellung Gerät 110 konfiguriert ist. Beispielsweise könnte eine Nutzerbedientafel 130 eines Infotainmentsystems zur Verwendung in einem Fahrzeug im wesentlichen einen Touchscreen beinhalten, der konfiguriert ist, um Befehle und Daten entsprechend einem Nutzer zu empfangen, der mit einer Bilddarstellung interagiert, die auf dem Touchscreen bereitgestellt wird. Gemäß einigen Beispielen beinhaltet eine Nutzerbedientafel, die einen Teil eines Fahrzeugsteuerungssystems bildet, eines oder mehreres von einem Blinklicht, einem Joystick oder sonstigen Steuerungsknopf, der konfiguriert ist, um wahlweise auf eine unter mehreren angezeigten Menüoptionen eingestellt zu werden, Tasten um Daten einzutippen, Knöpfe zum Drücken, die konfiguriert sind, um ein Gerät wie etwa ein Licht an-/abzuschalten, Pedale, die eingerichtet sind, um Druck von den Füßen des Nutzers zu empfangen, oder dergleichen. Nutzerbedientafel 130 ist gemäß einigen Ausführungsformen mit Sensorelementen versehen, um eine Betätigung eines zugeordneten Tafelelements durch den Nutzer zu erfassen. Gemäß einigen Ausführungsformen ist Nutzerbedientafel 130 mit einer Schaltungsanordnung versehen, die konfiguriert ist, um ein Analogsignal zu erfassen und eine entsprechende digitale Signalisierung an Mikroprozessor 120 auszugeben.
  • Gemäß einigen Ausführungsformen ist Bildschirmeinheit 160 konfiguriert, um Daten, die von Mikroprozessor 120 über Verbindung 122 empfangen sind, auszugeben, damit ein Nutzer sie liest oder sonst Information, die von den Daten repräsentiert wird, bemerkt. Mittel zum Nutzen beim Ausgeben von Daten durch Bildschirmeinheit 160 hängen von der Funktionalität ab, für deren Bereitstellung Gerät 110 konfiguriert ist. Beispielsweise könnte eine Bildschirmeinheit 160 eines Infotainmentsystems zur Verwendung in einem Fahrzeug im wesentlichen einen Touchscreen beinhalten, der konfiguriert ist, um Befehlsknöpfe und Daten entsprechend einem Nutzer anzuzeigen, der mit Bilddarstellung interagiert, die auf dem Touchscreen bereitgestellt wird. Allerdings sind auch Geräte, die andere Sinne als visuelle Sinne des Nutzers ansprechen, wie etwa ein Lautsprecher, als „Anzeige” in der vorliegenden Offenbarung in Erwägung zu ziehen. Gemäß einigen Beispielen beinhaltet die Bildschirmeinheit 160, die einen Teil eines Fahrzeugsteuerungssystems bildet, eines oder mehreres von: einem Blinklicht, einem Menü, das konfiguriert ist, um mehrere Optionen anzuzeigen, um einen Kontrollknopf wahlweise einzustellen, einer Anzeige, um eingetippte Daten zu zeigen, Leuchten, die jede einem anderen Knopf zugeordnet sind und die konfiguriert sind, um von dem zugeordneten Knopf an-/abgeschaltet zu werden, einer Anzeige, um einen gemessenen Wert in Antwort auf eine Nutzeraktion anzuzeigen, zum Beispiel beim Betätigen von Pedalen, die konfiguriert sind, um von den Füßen des Nutzers Druck aufzunehmen, und dergleichen.
  • Gemäß einigen Ausführungsformen ist Netzwerkschnittstelle 140 konfiguriert, um Daten, die über Verbindung 123 von Mikroprozessor 120 empfangen wurden, an ein Kommunikationsnetzwerk (nicht gezeigt) zu übermitteln und/oder um Daten, die von dem Kommunikationsnetzwerk über Verbindung 123 empfangen sind, an Mikroprozessor 120 zu übermitteln. Wenigstens eine Wirkung liegt darin, das Netzwerkschnittstelle 140 Gerät 110 an das Kommunikationsnetzwerk koppelt. Beispielsweise können Verkehrsinformationsdaten, die von einem Server bereitgestellt sind, der einen Teil des Kommunikationsnetzwerkes bildet, an Gerät 110 zur Verwendung in Gerät 110 kommuniziert werden. Als ein anderes Beispiel kann eine Betriebssystem-Software, die Befehle zum Ausführen durch Mikroprozessor 120 beinhaltet, um Gerät 110 zu betreiben, wobei die Betriebssystem-Software von einem Server bereitgestellt wird, der einen Teil des Kommunikationsnetzwerkes bildet, an Gerät 110 als ein Softwareupdate kommuniziert werden, um von Mikroprozessor 120 beim künftigen Betrieb von Gerät 110 ausgeführt zu werden. In einigen Implementierungen ist Netzwerkschnittstelle 140 zur Verwendung mit dem Internet konfiguriert.
  • Gemäß einigen Ausführungsformen umfasst Anzeigeeinheit 170 eine grüne Leuchtdiode (LED) 171 und eine rote LED 172. Anzeigeeinheit 170 ist konfiguriert, um auf Empfang des Flag-Signals über Anzeigeverbindung 125 von Mikroprozessor 120 entweder LED 171 oder LED 172 anzuschalten, um so Licht gemäß dem empfangenen Flag-Signal auszustrahlen. In einigen Implementierungen wird die Integrität von Gerät 110, insbesondere von Software zum Ausführen von Befehlen durch Mikroprozessor 120, getestet, sobald sie in Register 126 geladen ist, wie unten eingehender beschrieben wird. Mikroprozessor 120 ist konfiguriert, um unter Verwendung von Anzeigeverbindung 125 das Flag-Signal an Anzeigeeinheit 170 zu übertragen, wenn das Testergebnis auf eine Integrität von Gerät 110 hinweist. In einigen Implementierungen ist Anzeigeeinheit 170 konfiguriert, um auf Empfang des Flag-Signals, das auf die Integrität von Gerät 110 hinweist, die grüne LED 171 anzuschalten, um grünes Licht auszustrahlen.
  • Hierin sind LED 171 und 172 als Anzeigen lediglich genannt, um ein Beispiel einer Lichtquelle zur Verwendung von Farbe zu geben, um einen Nutzer über einen Zustand hinsichtlich der Integrität von Gerät 110 zu informieren. Sonstige Lichtquellen wie etwa eine Glühlampe oder eine Halogenleuchte können ebenfalls implementiert sein. Ferner sind hierin die Farben ”grün” und ”rot” lediglich als Beispiele genannt; sonstige Farben können gewählt sein und, wenn ein Nutzer die beiden Leuchten ansonsten unterscheiden kann, müssen sich die Farben voneinander nicht unterscheiden. In einigen Ausführungsformen beinhaltet Anzeigeeinheit 170 eine einzige Quelle von Licht, die jedoch so gesteuert werden kann, dass sie wahlweise Licht in wenigstens zwei verschiedenen Farben ausstrahlt. In einigen Beispielen ist die einzige Lichtquelle mit einem Farbfiltergerät kombiniert, das konfiguriert ist, um wahlweise für Licht verschiedener Farben durchlässig zu sein, wie etwa einem „grünen” Filter und einem „roten” Filter. In einigen Ausführungsformen beinhaltet Anzeigeeinheit 170 eine einzige Lichtquelle, wie unten noch eingehender beschrieben wird, und ist konfiguriert, um lediglich auf ein einziges Flag zu reagieren, während sonstige Flags ignoriert werden. In einigen Implementierungen ist die einzige Lichtquelle dazu konfiguriert, in Antwort auf das Flag-Signal zu blinken, wobei Varianten des Flag-Signals jeweils einer anderen Frequenz oder einem anderen sonstigen Blinkmuster des Flag-Signals zugeordnet sind. In einigen Implementierungen ist Anzeigeeinheit 170 konfiguriert, um Klang auszustrahlen, der hinweist auf, oder wenigstens Anhaltspunkte gibt für eine Bestätigung der Integrität durch die Prüfung, beispielsweise indem ein sanfter Summen der Klang ausgestrahlt wird, und/oder für ein Scheitern der Bestätigung der Integrität, beispielsweise indem ein unangenehmer Brummton ausgestrahlt wird. In einigen Ausführungsformen bildet die Anzeigeeinheit einen Teil der Bildschirmeinheit 160. In einigen Implementierungen ist die Bildschirmeinheit 160 auch die Anzeigeeinheit 170. Beispielsweise ist in einer Implementierung die Bildschirmeinheit 160 dazu konfiguriert, das Flag-Signal von dem Mikroprozessor 120 zu empfangen und in Antwort auf das Flag-Signal einen Bildschirm an und aus blinken zu lassen.
  • Gemäß Beispielen, die hierin offenbart sind, ist Gerät 110 konfiguriert, um Vertrauen in Computerwesen-Plattformen zu ermöglichen. In einigen Implementierungen ist eine Komponente von Gerät 110, ein funktionaler Abschnitt von Gerät 110 und/oder das gesamte Gerät 110 entsprechend Spezifikationen konfiguriert, die in einer Spezifikation eines gesicherten Plattform Moduls (TPM) definiert sind. Man sollte jedoch verstehen, dass TPM lediglich eine beispielhafte Anwendung des Konzepts, der Verfahren, der Gerätekomponenten und sonstigen Vorrichtungen ist, die hierin offenbart sind; man kann sonstige Anwendungen der Offenbarung hierin und/oder sonstiger Implementierungen der Offenbarung hierin in einer Vorrichtung, die zu der TPM Spezifikation keinen Bezug aufweist, in Betracht ziehen. In einigen Implementierungen bildet Gerät 110 einen Teil eines Systems wie etwa eines TPM, das eine Menge von Systemelementen aufweist, auf die hierin auch als Komponenten Bezug genommen wird, die erforderlich sind, um eine vorbestimmte minimale Funktionalität bereitzustellen, die nötig ist, um Eigenschaften zu beschreiben, die auf eine Vertrauenswürdigkeit einer Plattform einwirken. Diese Systemelemente müssen gesichert sein, weil jegliches Fehlverhalten eines solchen Systemelements nicht erfassbar ist. Deshalb wird auf solche Systemelemente/Systemkomponenten nachfolgend als gesicherte Roots Bezug genommen. Während es nicht möglich ist festzustellen, ob eine gesicherte Root sich ordnungsgemäß verhält, ist es möglich zu wissen, wie Roots implementiert sind. Ein Zertifikat beschafft Gewähr dafür, dass die gesicherte Root auf eine Art und Weise implementiert ist, die sie vertrauenswürdig macht. Beispielsweise kann ein Zertifikat bei einer Implementierung, in der das System als ein TPM bereitgestellt ist, einen Hersteller und/oder einen ermittelten Gewähr-Level (EAL) der TPM identifizieren. Diese Zertifizierung schafft Vertrauen in die gesicherten Roots, die in dem TPM implementiert sind. Zusätzlich kann ein Zertifikat von einem Plattformhersteller Gewähr schaffen, dass das TPM ordnungsgemäß auf einer Maschine installiert ist, die einer vorgegebenen Spezifikation entspricht, so dass die gesicherte Root, die von der Plattform bereitgestellt ist, vertraut werden darf.
  • Beispielhafte Implementierungen von Gerät 110 in einem Kochgerät werden nun unter Bezug auf 2 beschrieben, die eine Draufsicht auf einen Abschnitt einer Kochoberfläche 1 eines Kochgerätes 1 bei Betrachtung einer Steuertafel 2 zeigt. Oberhalb der Steuertafel 2 sind zwei von insgesamt vier Kochplatten 3a bis d gezeigt, die mittels der Steuertafel 2 zur Betätigung vorgesehen sind. Steuertafel 2 ist beispielsweise als eine Rasteranordnung mit kapazitiven Sensoren ausgebildet und weist eine Anzahl von (Sensor-)Knöpfen 4, 5a bis d, 6a bis d, 7 bis 13 auf, die in einer Reihe angeordnet sind, und ferner Anzeigetafeln 14a bis d und 15. Kochgerät 1 beinhaltet einen Mikroprozessor (in 2 nicht gezeigt), der in einigen Ausführungsformen, wie oben unter Bezug auf 1 beschrieben, konfiguriert ist, an wenigstens einige der kapazitiven Sensorrasteranordnungsknöpfe 4, 5a bis d, 6a bis d, 7 bis 13 der Steuertafel 2 ähnlich wie bei der Kopplung der Nutzerbedientafel 130 an den Mikroprozessor 120 zu koppeln, die oben unter Bezugnahme auf 1 offenbart ist. Das Kochgerät 1 beinhaltet eine Speichereinheit (in 2 nicht gezeigt), die konfiguriert ist, um Befehlscode zur Ausführung durch den Mikroprozessor während des Betriebs des Kochgeräts 1 zu speichern. Der Mikroprozessor ist in einigen Ausführungsformen wie oben unter Bezug auf 1 beschrieben an die Speichereinheit von Kochgerät 1 gekoppelt, ähnlich wie die Kopplung von Mikroprozessor 120 an Speichereinheit 150, die oben unter Bezugnahme auf 1 offenbart ist. Noch genauer gesagt umfasst der Mikroprozessor ein Register (in 2 nicht gezeigt), das konfiguriert ist, um ausführbaren Befehlscode von der Speichereinheit zum Verwenden im Betrieb des Kochgeräts 1 zu empfangen. Ferner umfasst der Mikroprozessor einen Bootspeicher (in 2 nicht gezeigt), der konfiguriert ist, um ausführbaren Befehlscode zur Verwendung beim Beginn des Betriebs von Kochgerät 1 zu halten.
  • Ferner weist gemäß Ausführungsformen, die hierin offenbart sind, Steuertafel 2 eine Integritätsanzeige 16 zum Ausstrahlen von Licht (wie etwa eine Leuchtdiode (LED) oder dergleichen) auf. Integritätsanzeige 16 zum Ausstrahlen von Licht ist an den Mikroprozessor ähnlich gekoppelt, wie die Kopplung, die oben unter Bezugnahme auf Gerät 110, das in 1 dargestellt ist, beschrieben ist, und sie ist konfiguriert, um zu leuchten, wenn eine Integritätsprüfung, die gemäß Ausführungsformen, die hierin offenbart sind, die Integrität jener Softwareabschnitte bestätigt, die der Integritätsprüfung unterworfen wurden, wie unten eingehender unter Bezugnahme auf 5 beschrieben wird. Gemäß einigen Ausführungsformen weist Steuertafel zwei auch eine Leuchtanzeige 17 für ein Scheitern des Integritätstests auf (wie etwa eine Leuchtdiode (LED) oder dergleichen). Leuchtanzeige 17 für ein Scheitern des Integritätstests ist ähnlich an den Mikroprozessor gekoppelt, wie die Kopplung, die oben unter Bezugnahme auf Gerät 110, das in 1 dargestellt ist, beschrieben wurde, und sie ist konfiguriert, um zu leuchten, wenn eine Integritätsprüfung gemäß Ausführungsformen, die hierin offenbart sind, hinsichtlich einer Bestätigung der Integrität jener Softwareabschnitte, die der Integritätsprüfung unterworfen wurden, gescheitert ist, wie unten eingehender unter Bezug auf 5 beschrieben wird.
  • Eine beispielhafte Implementierung von Gerät 110 in einem Roboterstaubsauger wird nun unter Bezugnahme auf 3 beschrieben, die eine Roboterstaubsaugervorrichtung 20 in einer beispielhaften Konfiguration gemäß einigen Ausführungsformen zeigt. Die Vorrichtung 20 beinhaltet eine Abdeckung 22, die von Abschnitten 100, 101, 104 und 106 gebildet ist, mit Öffnungen 24a bis 24h in dem Stoßfängerabschnitt (Stoßfänger) 104. Es gibt auch eine Steuertafel (Benutzerschnittstelle) 25, die von den Hauptabschnitten 100, 101 unterstützt wird. Diese Steuertafel 25 beinhaltet einen Steuerdrehknopf 26a und eine Anzeige 26b (LED Anzeige oder dergleichen) sowie eine Steckdose 27 zur Aufnahme eines Kabels (Steckerendes oder dergleichen) zum Laden der Vorrichtung 20 in einem elektrischen Auslass oder dergleichen. Eine Leine 28 erstreckt sich ebenfalls von dieser Steuertafel 25. Die Vorrichtung 20 beinhaltet Sensoren, die Teil von Erfassungssystemen sind. Türerfassungssensoren 30a, 30b in Öffnungen 31a, 31b befinden sich auf oder nahe der Steuertafel 25 auf der oberen Seite der Vorrichtung 20. Die Vorderseite der Vorrichtung 20 beinhaltet Kontursensoren 34, 35 in Öffnungen 24a, 24bB zum Erfassen seitlicher Hindernisse und Wände, Sensoren 36a, 36b in Öffnungen 24c und 24d zum Erfassen frontaler Hindernisse, Ecksensoren 37 in Öffnungen 24e, einen Regalerfassungssensor 38 in Öffnung 24f und Fernsteuerungssensoren 40 in oberen Öffnungen 24g und seitlichen Öffnungen 24h. Diese Sensoren 40 empfangen Signale, üblicherweise Infrarot (IR) Lichtsignale, von einer Fernsteuerung 44 oder einem kodierten Sender.
  • Roboterstaubsaugervorrichtung 20 beinhaltet einen Mikroprozessor (in 3 nicht gezeigt) der in einigen Ausführungsformen ähnlich dem Mikrocontroller 120 von Gerät 110, das oben unter Bezugnahme auf 1 beschrieben ist, an Eingabeelemente der Roboterstaubsaugervorrichtung 20 gekoppelt ist. Gemäß einigen Ausführungsformen ist der Mikroprozessor an Steuerungsdrehknopf 26a gekoppelt, um Steuerungsdrehknopf-Einstellsignale von Steuerungsdrehknopf 26h zu empfangen. Gemäß einigen Ausführungsformen ist der Mikroprozessor an wenigstens einen der Sensoren gekoppelt, die oben unter Bezugnahme auf 3 beschrieben sind, und konfiguriert, um Sensorerfassungssignale von dem jeweiligen Sensor 30a, 30b, 34, 35, 36a, 36b, 40 zu empfangen, die eine erfasste physikalische Größe repräsentieren. In einigen Implementierungen ist der Mikroprozessor konfiguriert, um die empfangenen Signale zu verarbeiten, insbesondere beim Steuern der Roboterreinigungsvorrichtung 20. Roboterreinigungsvorrichtung 20 beinhaltet eine Speichereinheit (in 3 nicht gezeigt), die konfiguriert ist, um Befehlscode zum Ausführen durch den Mikroprozessor beim Betrieb der Roboterreinigungsvorrichtung 20 zu speichern. Der Mikroprozessor ist in einigen , Ausführungsformen ähnlich dem Mikroprozessor 120 von Gerät 110, das oben unter Bezugnahme auf 1 beschrieben ist, an die Speichereinheit der Roboterreinigungsvorrichtung 20 gekoppelt, ähnlich wie bei der Kopplung von Mikroprozessor 120 an Speichereinheit 150, die oben unter Bezugnahme auf 1 offenbart ist. Noch genauer umfasst der Mikroprozessor ein Register (in 3 nicht gezeigt), das konfiguriert ist, um ausführbaren Befehlscode von der Speichereinheit zur Verwendung im Betrieb der Roboterreinigungsvorrichtung 20 zu empfangen. Ferner umfasst der Mikroprozessor einen Bootspeicher (in 3 nicht gezeigt), der konfiguriert ist, um ausführbaren Befehlscode zum Verwendung bei Inbetriebnahme der Roboterreinigungsvorrichtung 20 zu halten.
  • Gemäß einigen Ausführungsformen weist Steuertafel 25 eine Integritätsleuchtanzeige 18 (wie etwa eine Leuchtdiode (LED) oder dergleichen) auf. Integritätsleuchtanzeige 18 ist an den Mikroprozessor gekoppelt ähnlich wie bei der Kopplung, die oben unter Bezugnahme auf Gerät 110 beschrieben ist, das in 1 dargestellt ist, und ist konfiguriert, um zu leuchten, wenn eine Integritätsprüfung gemäß Ausführungsformen, die hierin offenbart sind, damit scheiterte, die Integrität jener Softwareabschnitte zu bestätigen, die der Integritätsprüfung unterworfen wurden. Gemäß einigen Ausführungsformen weist Steuertafel 25 auch eine Leuchtanzeige 19 (wie etwa eine Leuchtdiode (LED) oder dergleichen) für ein Scheitern des Integritätstests auf. Leuchtanzeige 19 für ein Scheitern des Integritätstests ist an den Mikroprozessor gekoppelt ähnlich wie bei der Kopplung, die oben unter Bezugnahme auf Gerät 110 beschrieben ist, das in 1 dargestellt ist, und ist konfiguriert, um zu leuchten, wenn eine Integritätsprüfung gemäß Ausführungsformen, die hierin offenbart sind, damit scheiterte, Integrität jener Softwareabschnitte zu bestätigen, die der Integritätsprüfung unterworfen wurden.
  • Eine beispielhafte Implementierung von Gerät 110 in der Fernsteuerung 44 wird nun weiterhin unter Bezugnahme auf 3 beschrieben, die Fernsteuerung 44 in einer beispielhaften Konfiguration gemäß einigen Ausführungsformen. Fernsteuerung 44, ungeachtet Ausführungsformen, bei denen Fernsteuerung 44 konfiguriert ist, um mit mehreren Geräten zu kommunizieren, wie etwa Haushalts- und/oder Heimunterhaltungsgeräten, ist Fernsteuerung 44 zur Verwendung mit Roboterstaubsaugervorrichtung 20 konfiguriert. Fernsteuerung 44 weist eine Anzahl von Tasten 45 auf, die konfiguriert sind, damit ein Nutzer Daten und/oder Befehle zur Übertragung beispielsweise an Roboterstaubsaugervorrichtung 20 eingibt. Fernsteuerung 44 weist eine Anzeige 46 auf, die konfiguriert ist, um Informationen anzuzeigen, damit der Nutzer sie beispielsweise während des Betriebs der Fernsteuerung 44 liest. Fernsteuerung 44 weist einen Sender 49 für elektromagnetische Signale auf, der beispielsweise als ein Infrarotlichtsender vorgesehen ist, der konfiguriert ist, um Infrarotlicht auszustrahlen, das moduliert ist, um eine Signalisierung zu tragen, die Daten und/oder Befehle repräsentiert, die an die Roboterreinigungsvorrichtung 20 zu kommunizieren sind. Gemäß einigen Ausführungsformen ist der Sender 49 für elektromagnetische Signale konfiguriert, um elektromagnetische Wellen zu empfangen, die Signalisierung tragen, wodurch beispielsweise Roboterreinigungsvorrichtung 20 an Fernsteuerung 44 eine Rückmeldung kommunizieren kann.
  • Fernsteuerung 44 beinhaltet einen Mikroprozessor (in 3 nicht gezeigt), der in einigen Ausführungsformen, wie oben unter Bezugnahme auf 1 beschrieben ist, an wenigstens eine der Anzahl von Tasten 45 gekoppelt ist, ähnlich wie bei der Kopplung der Tafel 130 an Mikroprozessor 120, die oben unter Bezugnahme auf 1 offenbart ist. Fernsteuerung 44 beinhaltet eine Speichereinheit (in 3 nicht gezeigt), die konfiguriert ist, um Befehlscode zum Ausführen durch den Mikroprozessor während des Betriebs der Fernsteuerung 44 zu speichern, um so im Gebrauch von Fernsteuerung 44 die oben offenbarte Roboterreinigungsvorrichtung 20 zu programmieren oder sonst zu steuern. Der Mikroprozessor ist in einigen Ausführungsformen, wie oben unter Bezugnahme auf 1 beschrieben ist, an die Speichereinheit von Fernsteuerung 44 gekoppelt, ähnlich wie bei der Kopplung von Mikroprozessor 120 an Speichereinheit 150, die oben unter Bezugnahme auf 1 offenbart ist. Insbesondere umfasst der Mikroprozessor ein Register (in 3 nicht gezeigt), das konfiguriert ist, um ausführbaren Befehlscode von der Speichereinheit zur Verwendung im Betrieb von Fernsteuerung 44 zu empfangen. Ferner umfasst der Mikroprozessor einen Bootspeicher (in 3 nicht gezeigt), der konfiguriert ist, um ausführbaren Befehlscode zum Verwenden bei Inbetriebnahme der Fernsteuerung 44 zu halten.
  • Gemäß einigen Ausführungsformen weist Fernsteuerung 44 eine lichtausstrahlende Integritätsanzeige 48 (wie etwa eine Leuchtdiode (LED) oder dergleichen) auf. Lichtausstrahlende Integritätsanzeige 48 ist an den Mikroprozessor gekoppelt, ähnlich wie bei der Kopplung, die oben unter Bezugnahme auf Gerät 110 beschrieben ist, das in 1 dargestellt ist, und sie ist konfiguriert, um zu leuchten, wenn eine Integritätsprüfung gemäß Ausführungsformen, die hierin offenbart sind, Integrität jener Softwareabschnitte nicht bestätigt, die der Integritätsprüfung unterworfen wurden. Gemäß einigen Ausführungsformen weist Steuerung 44 auch eine Leuchtanzeige 49 (wie etwa eine Leuchtdiode (LED) oder dergleichen) für ein Scheitern des Integritätstests auf. Leuchtanzeige 49 für ein Scheitern des Integritätstests ist an den Mikroprozessor gekoppelt, ähnlich wie bei der Kopplung, die oben unter Bezugnahme auf das Gerät 110, dass in 1 dargestellt ist, beschrieben ist, und sie ist konfiguriert, um zu leuchten, wenn eine Integritätsprüfung gemäß Ausführungsformen, die hierin offenbart sind, damit scheiterte, die Integrität jener Softwareabschnitte zu bestätigen, die der Integritätsprüfung unterworfen wurden.
  • Eine beispielhafte Implementierung von Gerät 110 als ein Fahrzeugbildschirmgerät wird nun unter Bezugnahme auf 4 beschrieben, die eine schematische Ansicht ist, die ein Fahrzeugbildschirmgerät 90 gemäß einigen Ausführungsformen zeigt. Wie in 4 gezeigt ist, umfasst Fahrzeugbildschirmgerät 90, angeordnet in einem Messblock 1, eine Geschwindigkeitsanzeige 93, eine Motor-Drehgeschwindigkeitsanzeige (hierin nachfolgend als Tacho in Bezug genommen) 95, eine Reiseentfernungsanzeige 97, Kraftstoff-Messanzeige (nicht gezeigt) und eine Motorwassertemperatur-Messanzeige (nicht gezeigt) innerhalb eines Messanzeigenblocks 91. Die Geschwindigkeitsanzeige 93 weist einen Namenstafelabschnitt 93a, einen Zeigerabschnitt 93b und einen Randringabschnitt 93c auf, und der Tacho 95 weist einen Namenstafelabschnitt 95a, einen Zeigerabschnitt 95b und einen Randringabschnitt 95c auf. Die Reiseentfernungsanzeige 97 weist eine Bildschirm-LCD 97a auf. Ferner ist ein Reiseentfernungsanzeigenschalter 99 in dem Messblock 1 vorgesehen.
  • Fahrzeugbildschirmgerät 90 umfasst einen Mikroprozessor (in 4 nicht gezeigt), der in einigen Ausführungsformen, wie oben unter Bezugnahme auf 1 beschrieben wurde, an Messblock 1 gekoppelt ist. In einigen Ausführungsformen ist der Mikroprozessor zusammen mit Messblock 1 angeordnet; in einigen Ausführungsformen ist der Mikroprozessor an einem Ort bereitgestellt, der von dem Messblock 1 entfernt ist. Ähnlich wie Mikroprozessor 120 von Gerät 110 an Tafel 130 gekoppelt ist, wie oben unter Bezugnahme auf 1 offenbart wurde, ist der Mikroprozessor des Fahrzeugbildschirmgeräts 90 an den Reiseentfernungsanzeigenschalter 99 gekoppelt und er ist konfiguriert, um Schaltsignalisierung von dem Reiseentfernungsanzeigenschalter 99 zum Verarbeiten zu empfangen. Ähnlich wie Mikroprozessor 120 von Gerät 110 an Bildschirm 160 gekoppelt ist, wie oben unter Bezugnahme auf 1 offenbart wurde, ist der Mikroprozessor in einigen Ausführungsformen an wenigstens eines gekoppelt von Geschwindigkeitsanzeige 93, Tacho 95, Reiseentfernungsanzeige, Kraftstoffmengenanzeige und Motorwassertemperatur Messanzeige.
  • Fahrzeugbildschirmgerät 90 beinhaltet eine Speichereinheit (in 4 nicht gezeigt) die konfiguriert ist, um Befehlscode zum Ausführen durch den Mikroprozessor während des Betriebs des Fahrzeugbildschirmgeräts 90 zu speichern. Der Mikroprozessor ist in einigen Ausführungsformen oben unter Bezugnahme auf 1 beschrieben an die Speichereinheit von Gerät 1 gekoppelt, ähnlich wie bei der Kopplung von Mikroprozessor 120 an Speichereinheit 150, die oben unter Bezugnahme auf 1 offenbart ist. Bei einigen Ausführungsformen der Speichereinheit ist sie mit Messblock 1 gemeinsam angeordnet; in einigen Ausführungsformen der Speichereinheit ist sie an einem Ort bereitgestellt, der von dem Messblock 1 entfernt ist. Ferner umfasst der Mikroprozessor ein Register (in 4 nicht gezeigt), das konfiguriert ist, um ausführbaren Befehlscode von der Speichereinheit zum Verwenden im Betrieb des Fahrzeugbildschirmgeräts 90 zu empfangen. Ferner umfasst der Mikroprozessor einen Bootspeicher (in 4 nicht gezeigt), der konfiguriert ist, um ausführbaren Befehlscode zum Verwenden bei Inbetriebnahme des Fahrzeugbildschirmgeräts 90 zu halten.
  • Ferner weist Fahrzeugbildschirmgerät 90 gemäß einigen Ausführungsformen auch eine Integrität-Leuchtanzeige 92 (wie etwa eine Leuchtdiode (LED) oder dergleichen) auf. Integrität-Leuchtanzeige 92 ist an den Mikroprozessor gekoppelt, ähnlich wie bei der Kopplung, die oben unter Bezugnahme auf Gerät 110, das in 1 dargestellt ist, beschrieben wurde, und sie ist konfiguriert, um zu leuchten, wenn eine Integritätsprüfung gemäß Ausführungsformen, die hierin offenbart sind, eine Integrität jener Softwareabschnitte nicht bestätigt, die der Integritätsprüfung unterworfen wurden. Gemäß einigen Ausführungsformen weist Fahrzeugbildschirmgerät 90 auch eine Leuchtanzeige 98 (wie etwa eine Leuchtdiode (LED) oder dergleichen) für ein Scheitern des Integritätstests auf. Leuchtanzeige 98 für ein Scheitern des Integritätstests ist an den Mikroprozessor gekoppelt, ähnlich wie bei der Kopplung, die oben unter Bezugnahme auf Gerät 110 beschrieben ist, das in 1 dargestellt ist, und sie ist konfiguriert, um zu leuchten, wenn eine Integritätsprüfung gemäß Ausführungsformen, die hierin offenbart sind, damit scheiterte, die Integrität jener Softwareabschnitte zu bestätigen, die der Integritätsprüfung unterworfen wurden.
  • Der Betrieb von Gerät 110 gemäß einigen Ausführungsformen wird unter Bezugnahme auf 5 beschrieben, bei der es sich um ein Flussdiagramm handelt, dass Schritte eines Verfahrens in einem Betriebsablauf von Gerät 110 gemäß einigen Implementierungen darstellt. Gemäß einigen Ausführungsformen wird das Verfahren während des Bootens von Gerät 110 durchgeführt. Alternativ auch Hochfahren genannt, bedeutet Booten von Gerät 110 das Anschalten von Gerät 110 einschließlich des Vorbereitens von Mikroprozessor 120, um das Gerät 110 zu steuern, d. h. ein Betriebssystem auf Mikroprozessor 120 zum Laufen zu bringen.
  • In einem OFF-Zustand ist Gerät 110 ausgeschaltet. Mikroprozessor 120 ist nicht mit Spannung versorgt oder wenigstens ist Mikroprozessor 120 im wesentlichen nicht mit Spannung versorgt. In der LED-Einheit 170 strahlen die grüne LED 171 und die rote LED 172 kein Licht aus.
  • Ein Nutzer schaltet Gerät 110 an oder initialisiert sonst einen Übergang von einem OFF-Zustand in einen ON-Zustand, in dem wenigstens ein wesentlicher Abschnitt von Mikroprozessor 120, der während des üblichen Betriebs von Mikroprozessor 120 verwendet wird, mit Spannung versorgt wird. An diesem Punkt strahlen in Anzeigeeinheit 170 grüne LED 171 und rote LED 172 weiterhin kein Licht aus.
  • Anfänglich, bei S510, lädt Mikroprozessor 120 initialen Befehlscode aus dem Bootspeicher 127. Somit beginnt Mikroprozessor 120 die Ausführung einer Bootsequenz, die während eines Bootvorgangs durchzuführen ist. Die Bootsequenz beinhaltet gemäß einigen Ausführungsformen ein Durchführen einer Selbstdiagnose hinsichtlich einer oder mehrerer Systemkomponenten 120, 130, 140, 160 von Gerät 110. Gemäß einigen Ausführungsformen beinhaltet die Bootsequenz ein Laden von Treibersoftware, die dazu angepasst ist, Systemkomponenten 120, 130, 140, 160 zu steuern. Lediglich als ein Beispiel zum Zweck der Darstellung beinhaltet die Bootsequenz ein Laden eines Netzwerkschnittstellentreiber-Programms, das bei der Kommunikation von Gerät 110 hilft. Der Fachmann versteht, dass in üblichen Implementierungen sonstige Software und/oder Komponenten von Software Teil von Befehlscode bilden, der ebenfalls geladen wird, wenn der Mikroprozessor gebootet wird. Zum Zwecke beispielhafter Darstellung ist in dieser Beschreibung die Netzwerk Schnittstellen Treibersoftware als eine gesicherte Root vorbestimmt. Man sollte verstehen, dass in sonstigen Implementierungen auch sonstige Software anstelle von oder zusätzlich zu der Netzwerkschnittstellentreiber-Software eine gesicherte Root bildet.
  • Bei S520 lädt Mikroprozessor 120 beim Ausführen des anfänglichen Befehlscodes gemäß der Bootsequenz beispielsweise Schnittstellentreiber-Code aus dem Speicher 150, der, wenn er auf Mikroprozessor 120 ausgeführt wird, Netzwerkschnittstelle 140 steuert.
  • Bei S530 führt Mikroprozessor 120, während er noch den initialen Befehlscode ausführt, einen Integritätstest an dem Schnittstellentreiber-Code durch, der vom Speicher 150 geladen ist, um ein Testergebnis zu erhalten. Man sollte verstehen, dass ein Beispiel eines Falles, in dem Mikroprozessor 120 von Gerät 110 bootet, bei dem angenommen wird, dass die Integrität lediglich des Treibersoftware-Codes zum Steuern der Netzwerkschnittstelle 140 zu überprüfen ist, lediglich zum Zwecke der Darstellung beschrieben ist. Bei einigen Implementierungen wird mehr als lediglich eine einzelne Komponente getestet um das Testergebnis zu erhalten. In einigen Implementierungen kann die Integrität von sonstigem Softwarecode, der gemäß der Bootsequenz geladen wird, entweder anstelle von oder zusätzlich zu der Netzwerkschnittstellentreiber-Software zu testen sein. In einigen Implementierungen ist der anfängliche Befehlscode konfiguriert, um die Integrität all jenen Softwarecodes zu testen, der gemäß der Bootsequenz zur Ausführung während des Betriebs von Gerät 110 geladen wird. Dementsprechend werden in solchen Implementierungen bei S530 sämtliche Komponenten getestet, um das Testergebnis zu erhalten.
  • Hinsichtlich des Integritätstests, auf den bisweilen auch als „Messung der Integrität” Bezug genommen wird, ist in einigen Implementierungen wenigstens ein Abschnitt des Softwarecodes, der Gegenstand des Testens ist, als Parameterwert definiert, der – in einigen Ausführungen Bit für Bit, in einigen Ausführungsformen zufällig ausgewählte Unter-Bitsequenz für zufällig ausgewählte Unter-Bitsequenz – mit einem Referenzsoftwarecode zu vergleichen ist. In einigen Implementierungen ist der wenigstens eine Abschnitt von Softwarecode, der Gegenstand des Tests ist, zufällig ausgewählt. Wenigstens eine Wirkung ist, dass es schwieriger für einen Angreifer ist, vorher zu sehen, wie der Test verläuft. Dementsprechend ist es weniger wahrscheinlich, dass ein Manipulieren von Softwarecode, der Gegenstand des Tests ist, unbemerkt bleibt. Das Testergebnis bestätigt Integrität, wenn das Vergleichen keinen Softwarecode identifiziert, der von dem Referenzsoftwarecode abweicht.
  • Weiter hinsichtlich des Integritätstests ist in einigen Implementierungen wenigstens ein Abschnitt des Softwarecodes, der Gegenstand des Tests ist, gehasht, um einen Parameterwert zu definieren, der – in einigen Implementierungen Bit für Bit, in einigen Implementierungen zufällig ausgewählte Unter-Bitsequenz für zufällig ausgewählte Unter-Bitsequenz – mit einer Referenzbitsequenz zu vergleichen ist. In einigen Ausführungsformen handelt es sich bei der Referenzbitsequenz um ein Ergebnis vom Hashen eines Abschnitts von Referenzsoftwarecode, der dem Abschnitt des Softwarecodes entspricht, der Gegenstand des Testens ist. Das Testergebnis bestätigt Integrität, wenn das Vergleichen keine Bitwerte identifiziert, die von der Referenzbitsequenz abweichen.
  • Noch weiter hinsichtlich des Integritätstests ist in einigen Implementierungen ein Parameterwert, der zu vergleichen ist – in einigen Implementierungen Bit für Bit, in einigen Implementierungen zufällig ausgewählte Unter-Bitsequenz für zufällig ausgewählte Unter-Bitsequenz – als ein Ergebnis einer Ausführung von Befehlen definiert, die in dem wenigstens einen Abschnitt von Softwarecode enthalten sind, der Gegenstand des Testens ist. Dieser Parameterwert ist mit einer Referenzbitsequenz zu vergleichen. In einigen Implementierungen ist die Referenzbitsequenz ein Ergebnis eines Ausführens von Befehlen, die in einem entsprechenden Referenzsoftwarecode enthalten sind. In einigen Ausführungsformen erzeugt Befehlscode, der auszuführen ist, um den Parameterwert zu erhalten, ein Ergebnis, das ansonsten hinsichtlich des Betriebs und/oder der Funktion von Gerät 110 keinen Bezug aufweist. Wenigstens eine Wirkung liegt darin, dass der Befehlscode, der auszuführen ist, um den Parameterwert zu erhalten, im Hinblick auf Verarbeitungsressourcen, die zum Vollenden der Ausführung verwendet werden, optimiert werden kann, um ein vorbestimmtes Maß von Bestätigung der Integrität zu erreichen.
  • Wenn bei S540 das Ergebnis des Integritätstests die Integrität bestätigt, dann überträgt bei S570 Mikroprozessor 120 über Anzeigeverbindung 125 ein Flag-Signal, das auf Integrität hinweist, an die Anzeigeeinheit 170. Anzeigeeinheit 170 empfängt das Flag-Signal und schaltet dementsprechend die grüne LED 171 an, um Integrität anzuzeigen. Gleichfalls wird, wo das offenbarte Verfahren in Ausführungsformen durchgeführt wird, die in 2 bis 4 dargestellt und oben unter Bezugnahme auf 2 bis 4 beschrieben sind, LED 16, 18, 48, 92 verwendet, um Bestätigung der Integrität anzuzeigen. Wenigstens eine Wirkung kann darin liegen, dass ein Nutzer, der Anzeigeeinheit 170 beobachtet, aus dem Umstand, dass die grüne LED 171 leuchtet, schließen kann, dass der Integritätstest abgeschlossen ist. Eine weitere Wirkung kann darin liegen, dass ein Nutzer, der Anzeigeeinheit 170 beobachtet, aus dem Umstand, dass die grüne LED 170 leuchtet, erfahren kann, dass der Integritätstest erfolgreich bestanden wurde, und schließen kann, dass die Integrität von Gerät 110 wenigstens in dem Maße bestätigt ist, in dem Komponenten von Gerät 110 Gegenstand des Integritätstests sind. In einigen Implementierungen, bei denen für die Farbe des LED-Lichtes grün gewählt ist, assoziiert der Nutzer üblicherweise das grüne Licht damit, dass das Gerät in Ordnung und bereit zur Nutzung ist. Wenigstens eine Wirkung liegt darin, dass im wesentlichen keine weitere Erklärung erforderlich sein kann, beispielsweise auf einem Gehäuse von Gerät 110, um den Nutzer über eine Bedeutung des grünen Lichtes zu instruieren. Der Nutzer, der das Licht der grünen LED 171 sieht, interpretiert das grüne Licht als ein Zeichen, dass das Gerät 110 in Ordnung ist, insbesondere kann der Nutzer es dahingehend interpretieren, dass die Software des in Gerät 110 verwendeten Betriebssystems fehlerfrei ist, autorisiert und nicht manipuliert.
  • Bei S580 wird eine Ausführung von Code entsprechend dem Betrieb von Gerät 110 so ausgeführt, dass die Bedürfnisse des Nutzers befriedigt werden. Beispielsweise fährt der Prozessor 120 unter Verwendung des Schnittstellentreiber-Softwarecodes, dessen Integrität getestet und bestätigt wurde, damit fort, die Netzwerkschnittstelle 140 zu steuern, Mikroprozessor 120 fährt fort, eine Kommunikationsverbindung zu sonstigen Geräten herzustellen, die an ein Netzwerk gekoppelt sind, mit dem Mikroprozessor 120 über die Netzwerkschnittstelle 140 verbunden ist.
  • Wenn wiederum bei S540 das Integritätstestergebnis Integrität nicht bestätigt, dann überträgt bei S550 Mikroprozessor 120 über Hinweisverbindung 125 ein Flag-Signal an Anzeigeeinheit 170, das darauf hinweist, dass die Integrität nicht bestätigt wurde. Anzeigeeinheit 170 empfängt das Flag-Signal und schaltet dementsprechend die rote LED 172 an, um auf die fehlende Integrität von Gerät 110 hinzuweisen. Ähnlich wird, wo das offenbarte Verfahren in Ausführungsformen durchgeführt wird, die in 2 bis 4 dargestellt und unter Bezugnahme auf 2 bis 4 oben beschrieben sind, LED 17, 19, 49, 98 verwendet, um auf einen Mangel an Integrität hinzuweisen. Wenigstens eine Wirkung ist, dass ein Nutzer, der die Anzeigeeinheit 170 beobachtet, aus dem Umstand, dass die rote LED 172 leuchtet, schließen kann, dass der Integritätstest nicht bestanden wurde und und die Integrität von Gerät 110 irgendwie verletzt wurde. In einigen Implementierungen ist, wie hierin unter Bezugnahme auf 1 beschrieben, für die Farbe von LED 172 rot gewählt. Ein Nutzer assoziiert üblicherweise ein rotes Licht mit einer Fehlfunktion. Somit ist, wenn die rote LED 172 leuchtet, keine weitere Erklärung erforderlich, beispielsweise auf einem Gehäuse von Gerät 110, um den Nutzer darüber zu instruieren, welche Bedeutung das Licht hat. Dementsprechend wird ein Nutzer, wenn er die rote LED leuchten sieht, üblicherweise davon abgehalten, darauf zu vertrauen, dass das Gerät 110 ordentlich funktioniert, und möglicherweise dahingehend gewarnt, bei einem Experten um Rat nach zu suchen.
  • In einigen Ausführungsformen wird bei S560 die Ausführung von Code gestoppt. Beispielsweise wird in einigen Implementierungen Gerät 110 in einen vorbestimmten Zustand gebracht, in dem der Betrieb unterbrochen ist, und Gerät 110 auf vom Nutzer beispielsweise an Tafel 130 eingegebene Befehle nicht antwortet. In einigen Implementierungen wird Gerät 110 von der Spannungsversorgung abgeschnitten, um so eine Minderung des Stromverbrauchs zu bewirken. In einigen Ausführungsformen beinhaltet Anzeigeeinheit 170 ein Kapazitätselement, das konfiguriert ist, um sich über die rote LED 172 zu entladen, sollte Gerät 110 von der Spannungsversorgung abgeschnitten sein. Wenigstens eine Wirkung ist, dass der Nutzer die unterbrochene Spannungsversorgung richtigerweise mit der Fehlfunktion, die von dem Gerät 110 selbst gefunden wurde, eher assoziieren kann als mit einem Versagen des Geräts während des Betriebs, weil die rote LED 172 so konfiguriert ist, dass sie für eine Weile selbst fortfährt zu leuchten, nachdem Gerät 110 von der Spannungsversorgung getrennt ist. In einigen Ausführungsformen wird die Ausführung von Code fortgesetzt, allerdings während die rote LED 172 am Leuchten gehalten wird, um so den Nutzer fortgesetzt über die Tatsache zu informieren, dass nicht darauf vertraut werden sollte, dass Gerät 110 ordentlich funktioniert.
  • Nunmehr wird der Betrieb von Gerät 110 gemäß einigen Ausführungsformen unter Bezugnahme auf 6 beschrieben, die ein Flussdiagramm ist, dass Schritte eines Verfahrens in einem Betriebsablauf von Gerät 110 gemäß einigen Implementierungen darstellt.
  • Gerät 110 befindet sich in einem unsicheren Betriebszustand. Mikroprozessor 120 führt Code aus, dessen Integrität nicht geprüft ist. In LED-Einheit 170, strahlen grüne LED 171 und rote LED 172 kein Licht aus.
  • Anfänglich gibt bei S610 ein Nutzer unter Verwendung von Tafel 130 einen Befehl in Gerät 110 ein, der danach verlangt, dass Mikroprozessor 120 ein sicheres Softwarestück ausführt, dass Befehlscode enthält, dem vertraut werden muss; zum Zwecke der Beschreibung der vorliegend beschriebenen Ausführungsform wird auf diesen Befehlscode als erforderlicher Befehlscode Bezug genommen. Beispielsweise kann das sichere Softwarestück eine Treibersoftware sein. Die Treibersoftware, die in Verbindung mit einer Netzwerkkommunikation erforderlich ist, beinhaltet Befehlscode, der, wenn er auf Mikroprozessor 120 ausgeführt wird, die Netzwerkschnittstelle 140 steuert. Man sollte verstehen, dass das Beispiel lediglich zum Zwecke der Darstellung dient; sonstige Softwarestücke, Betriebssystem, Treiber zum Steuern von Peripherie und/oder sonstigen Komponenten von Gerät 110, Anwendungssoftware und dergleichen, können sichere Software sein, die gesicherten Befehlscode beinhaltet.
  • An diesem Punkt fahren grüne LED 171 und rote LED 172 in Anzeigeeinheit 170 fort, nicht zu leuchten.
  • Noch bei S610 lädt Mikroprozessor 120 den erforderlichen Befehlscode aus der Speichereinheit 150 zur Ausführung durch Mikroprozessor 120. Ferner liest Mikroprozessor 120 vorbestimmte Daten in einigen Ausführungsformen von Register 126. Vorbestimmte Daten sind dem erforderlichen Befehlscode zugeordnet und informieren Mikroprozessor 120, ob eine Integritätsprüfung an dem Befehlscode vor Ausführung eines bestimmten Befehlscodes durchgeführt werden muss oder nicht. In einigen Implementierungen ist die Zuordnung in Mikroprozessor 120 fest verdrahtet. In einigen Ausführungsformen ist die Zuordnung beispielsweise mittels eines Headers einer Unterroutine oder eines Headers einer Funktion ausgedrückt, der einer Unterroutine und/oder Funktion vorsteht, die den erforderlichen Befehlscode umfasst.
  • Wenn bei S620 Mikroprozessor 120 bestimmt, dass eine Integritätsprüfung am erforderlichen Befehlscode, der vom Speicher 150 geladen ist, nicht durchgeführt werden muss, dann fährt der Betrieb von Gerät 110 bei S680 ohne eine Prüfung von Befehlen fort.
  • Bei S680 wird eine Ausführung des erforderlichen Befehlscodes entsprechend einem Betrieb von Gerät 110 durchgeführt, um die Bedürfnisse des Nutzers zu befriedigen. Beispielsweise fährt Mikroprozessor 120 unter Verwendung des Schnittstellentreiber-Softwarecodes zum Steuern der Netzwerkschnittstelle 140, dessen Integrität getestet und bestätigt wurde, damit fort, eine Kommunikationsverbindung zu sonstigen Geräten herzustellen, die an ein Netzwerk gekoppelt sind, mit dem Mikroprozessor 120 durch die Netzwerkschnittstelle 140 verbunden ist.
  • Wenn wiederum bei S620 Mikroprozessor 120 gemäß einigen Ausführungsformen auf der Grundlage von Informationen, die aus Register 126 gelesen sind, feststellt, dass dem Befehlscode sicher vertraut werden muss, dann bestimmt Mikroprozessor 120, dass eine Integritätsprüfung am erforderlichen Befehlscode zumindest einmal durchgeführt werden muss.
  • Bei S625 liest Mikroprozessor 120 gemäß einigen Ausführungsformen weitere Daten von Register 126, die repräsentieren, ob die Integrität des erforderlichen Befehlscodes, der aus Speicher 150 geladen wurde, schon überprüft wurde. Falls Mikroprozessor 120 feststellt, dass die Integrität des erforderlichen Befehlscodes vorher getestet wurde, fährt unter der Annahme, dass kein Erfordernis besteht, die Integrität des erforderlichen Befehlscodes erneut zu testen, bei S680 der Betrieb von Gerät 110 fort. Wenigstens eine Wirkung kann darin liegen, dass nicht erforderliches Verarbeiten bezüglich der Integritätsprüfung vermieden wird, während Vertrauen in den erforderlichen Befehlscode gegen über Befehlscode, der während des Betriebs von Gerät 110 nicht vorher einer Integritätsprüfung unterworfen wurde, immer noch verbessert ist.
  • In einigen Implementierungen ist Mikroprozessor 120 trotz früheren Testens, beispielsweise wie oben unter Bezugnahme auf 5 beschrieben, konfiguriert oder programmiert, um die Integrität des erforderlichen Befehlscodes erneut zu messen. In einigen Ausführungsformen werden vorherige Daten, die beim Testen erzeugt wurden, beispielsweise ein Parameterwert, der abgeleitet wurde, um einen vorherigen Test des erforderlichen Befehlscodes abzuschließen, beim Ableiten eines Parameterwertes, der in den vorliegenden Integritätstests zu verwenden ist, verwendet. Wenigstens eine Wirkung liegt darin, es für einen Angreifer zu erschweren, ein manipuliertes Testergebnis zu beschaffen, das den Anschein erweckt, Integrität zu bestätigen, wo in Wirklichkeit keine Integrität vorliegen mag.
  • Wenn wiederum bei S625 Mikroprozessor 120 feststellt, dass der erforderliche Befehlscode, der von Speichereinheit 150 geladen ist, getestet werden muss, dann führt bei S630 Mikroprozessor 120 einen Integritätstests an dem Schnittstellentreibercode durch, der von Speicher 150 geladen wurde, um ein Testergebnis zu erhalten.
  • Wenn bei S640 das Ergebnis des Integritätstests Integrität bestätigt, dann überträgt Mikroprozessor 120 bei S670 über Anzeigeverbindung 125 ein Flag-Signal an Anzeigeeinheit 170, das auf Integrität hinweist. Anzeigeeinheit 170 empfängt das Flag-Signal und schaltet dementsprechend die grüne LED 171 an, um Integrität anzuzeigen. Gleichermaßen wird, wo das offenbarte Verfahren in Ausführungsformen durchgeführt wird, die in 2 bis 4 dargestellt sind und oben unter Bezugnahme auf 2 bis 4 beschrieben sind, LED 16, 18, 48, 92 dazu verwendet, Bestätigung der Integrität anzuzeigen. Wenigstens eine Wirkung kann darin liegen, dass ein Nutzer, der Anzeigeeinheit 170 beobachtet, aus dem Umstand, dass die grüne LED 171 leuchtet, schließen kann, dass ein Integritätstest abgeschlossen wurde. Eine weitere Wirkung kann darin liegen, dass ein Nutzer, der Anzeigeeinheit 170 beobachtet, aus dem Umstand, dass die grüne LED 170 leuchtet, erfahren kann, dass der Integritätstest erfolgreich bestanden wurde, und daraus folgern, dass die Integrität des Geräts 110 zumindest in dem Maße bestätigt ist, wie Komponenten von Gerät 110 Gegenstand des Integritätstests sind. In einigen Implementierungen, in denen grün für die Farbe des LED Lichts gewählt ist, assoziiert der Nutzer, wie oben unter Bezugnahme auf 5 beschrieben, das grüne Licht üblicherweise damit, dass das Gerät in Ordnung und zum Nutzen geeignet ist.
  • Bei S680 wird wie schon oben beschrieben die Ausführung des erforderlichen Befehlscodes entsprechend dem Betrieb von Gerät 110 durchgeführt, um die Bedürfnisse des Nutzers zu befriedigen.
  • Wenn wiederum bei S640 das Ergebnis des Integritätstests Integrität nicht bestätigt, dann überträgt Mikroprozessor 120 bei S650 über Anzeigeverbindung 125 ein Flag-Signal an Anzeigeeinheit 170, das darauf hinweist, dass die Integrität nicht bestätigt ist. Anzeigeeinheit 170 empfängt das Flag-Signal und schaltet dementsprechend die rote LED 172 an, um Fehlen von Integrität des Geräts 110 anzuzeigen. Gleichermaßen wird, wo das offenbarte Verfahren in Ausführungsformen durchgeführt wird, in 2 bis 4 dargestellt und oben unter Bezugnahme auf 2 bis 4 beschrieben sind, LED 17, 19, 49, 98 verwendet, um ein Fehlen von Integrität anzuzeigen. Wie oben unter Bezugnahme auf 5 beschrieben ist, liegt wenigstens eine Wirkung darin, dass ein Nutzer, der Anzeigeeinheit 170 beobachtet, aus dem Umstand, dass die rote LED 172 leuchtet, schließen kann, dass der Integritätstest nicht bestanden wurde, und folgern kann, dass die Integrität von Gerät 110 irgendwie beeinträchtigt wurde. Dementsprechend wird der Nutzer, wenn er die rote LED erleuchtet sieht, üblicherweise davon abgehalten, darauf zu vertrauen, dass Gerät 110 ordentlich funktioniert, und wahrscheinlich gewarnt sein, bei einem Experten um Rat nach zu suchen.
  • In einigen Ausführungsformen wird bei S660 die Ausführung von Code gestoppt. Wie oben unter Bezugnahme auf 5 beschrieben wurde, wird in einigen Implementierungen Gerät 110 in einen vorbestimmten Zustand unterbrochenen Betriebs gebracht, in dem Gerät 110 auf vom Nutzer beispielsweise an Tafel 130 eingegebene Befehle nicht mehr antwortet. In einigen Implementierungen wird Gerät 110 von der Spannung getrennt, um so eine Verminderung des Stromverbrauchs zu bewirken. In einigen Ausführungsformen beinhaltet Anzeigeeinheit 170 ein Kapazitätselement, das konfiguriert ist, um sich über die rote LED 172 zu entladen, sollte Gerät 110 von der Spannungsversorgung getrennt sein. Wenigstens eine Wirkung liegt darin, dass der Nutzer richtigerweise die Stromabschaltung mit der Fehlfunktion assoziieren kann, die von dem Gerät 110 selbst gefunden wurde, im Unterschied zu einem Versagen von Gerät 110 während des Betriebs, weil die rote LED 172 so konfiguriert ist, dass sie für eine Weile fortfährt zu leuchten, selbst nachdem Gerät 110 von der Spannungsversorgung getrennt wurde. In einigen Ausführungsformen wird die Ausführung von Code fortgesetzt, jedoch während die rote LED 172 am Leuchten gehalten wird, um so den Nutzer über die Tatsache informiert zu halten, dass nicht darauf vertraut werden sollte, dass Gerät 110 ordentlich funktioniert.
  • Während in den Ausführungsformen, die unter Bezugnahme auf die 2 bis 4 beschrieben wurden, die Anzeigeeinheit 170 ein erstes Leuchtelement 171 enthält, das dazu konfiguriert ist, auf eine Bestätigung der Integrität von Gerät 110 hinzuweisen, und ein zweites Licht Ausstrahlungselement, das konfiguriert ist, um darauf hinzuweisen, dass die Integrität des Geräts 110 nicht bestätigt wurde, und während die oben unter Bezugnahme auf 5 und 6 beschriebenen Implementierungen dementsprechend eine Verwendung des ersten Leuchtelements 171 und des zweiten Leuchtelements 172 offenbaren, kann in einigen Implementierungen lediglich ein einzelnes Signalisierungselement vorgesehen sein. In einigen Ausführungsformen ist das einzelne Signalisierungselement konfiguriert, um anzuzeigen, dass die Bestätigung der Integrität nicht erfolgreich war. In anderen Ausführungsformen ist das einzelne Signalisierungselement konfiguriert, um die Bestätigung der Integrität anzuzeigen. Wenigstens eine Wirkung kann darin liegen, dass das einzelne Signalisierungselement, wenn es betätigt ist, auf einen Abschluss des Integritätstests als solchen hinweist, ebenso wie auf die zugeordnete Aussage bezüglich der Integrität, während eine Verwendung von strukturellen Ressourcen, beispielsweise einer Anzahl von LED, niedrig gehalten wird, insbesondere wo eine einzelne LED verwendet wird.
  • Diese Beschreibung beschreibt in einer Hinsicht gemäß einigen Ausführungsformen ein Verfahren zum Benutzen beim Betreiben eines softwaregesteuerten Gerätes. Einige Ausführungsformen umfassen ein Laden von Softwarecode, der beim Betreiben des Gerätes auszuführen ist, und ein Durchführen einer Integritätsprüfung am Softwarecode. Einige Ausführungsformen umfassen ein Signalisieren eines Flags, das auf ein Ergebnis der Integritätsprüfung hinweist. Wenigstens eine Wirkung kann sein, dass das Flag eine Grundlage für den Benutzer bilden kann, darauf zu vertrauen, dass das Gerät gemäß dem Design funktioniert.
  • In einigen Ausführungsformen beinhaltet die Integritätsprüfung ein Vergleichen eines Parameters des Softwarecodes, der auszuführen ist, mit einem vorbestimmten Parameterwert. Bei einigen Ausführungsformen ist der vorbestimmte Parameterwert von wenigstens einem Codeabschnitt einer Referenzsoftware abgeleitet. Bei einigen Ausführungsformen ist der wenigstens eine Codeabschnitt der Referenzsoftware der gesamte Code der Referenzsoftware. Das Durchführen der Integritätsprüfung beinhaltet ein Ableiten des Parameters des auszuführenden Softwarecodes von wenigstens einem Abschnitt des auszuführenden Softwarecodes, der dem wenigstens einen Codeabschnitt der Referenzsoftware entspricht.
  • Bei einigen Ausführungsformen beinhaltet das Ableiten des Parameters des auszuführenden Softwarecodes ein Auswählen des wenigstens einen Codeabschnitts der Referenzsoftware. Wenigstens eine Wirkung kann sein, dass die Auswahl von einer Nutzung des Geräts zu einer anderen verschieden sein kann, um es einem Angreifer schwerer zu machen, eine Referenz vorherzusehen, die beim Durchführen der Integritätsprüfung verwendet wird. Bei einigen Ausführungsformen erfolgt das Auswählen zufällig. Wenigstens eine Wirkung kann darin bestehen, dass ein Angreifer es schwer finden wird, die Referenz vorherzusagen, die beim Durchführen der Integritätsprüfung verwendet wird.
  • Bei einigen Ausführungsformen ist der vorbestimmte Parameterwert der wenigstens eine Codeabschnitt der Referenzsoftware. Bei einigen Ausführungsformen beinhaltet das Ausführen der Integritätsprüfung ein Vorbestimmen, ob der wenigstens eine Abschnitt der auszuführenden Software gleich dem wenigstens einen ausgewählten Codeabschnitt der Referenzsoftware ist. Bei einigen Ausführungsformen ist der vorbestimmte Parameterwert ein Hash des wenigstens einen Codeabschnitts der Referenzsoftware. Dementsprechend beinhaltet das Ableiten des Parameters des auszuführenden Softwarecodes ein Bilden eines Hashs von dem wenigstens einen Abschnitt des auszuführenden Softwarecodes, um den Parameter des auszuführenden Softwarecodes zu erhalten. Bei einigen Ausführungsformen ist der vorbestimmte Parameterwert ein Ergebnis, das von der Ausführung des wenigstens einen Codeabschnitts der Referenzsoftware erhalten wird. Bei einigen Ausführungsformen beinhaltet das Durchführen der Integritätsprüfung ein Ausführen des wenigstens einen Abschnitts des auszuführenden Softwarecodes. Beispielsweise ist der vorbestimmte Parameterwert ein Ergebnis, dass von einer Herausforderung wie etwa einem Puzzle erhalten wird. In einigen Ausführungsformen stellt die Ausführung des wenigstens einen Codeabschnitts der Referenzsoftware eine Antwort dar, wie etwa eine Musterantwort zu dem Puzzle. Wenigstens eine Wirkung kann sein, dass die Herausforderung keinen Bezug zur Funktionalität des Gerätes aufweisen muss. Die Herausforderung kann entworfen sein, um es besonders schwer zu machen, sie zu lösen. Zum Beispiel kann die Herausforderung so entworfen sein, dass die Antwort einen diskreten Logarithmus erfordert.
  • Bei einigen Ausführungsformen wird die Integritätsprüfung vor Inbetriebnahme des Gerätes durchgeführt. Wenigstens eine Wirkung kann darin bestehen, dass die Nutzung des Gerätes vermieden werden kann, falls das Prüfungsergebnis Hinweis darauf gibt, dass die Integrität des Gerätes verletzt ist. Bei einigen Ausführungsformen geht das Durchführen der Integritätsprüfung dem Laden der Betriebssoftware zur Nutzung beim Betreiben des Gerätes voraus. Wenigstens eine Wirkung kann darin liegen, dass das Laden der Betriebssoftware zum Nutzen beim Betreiben des Gerätes vermieden werden kann, falls das Prüfungsergebnis Hinweis darauf gibt, dass die Integrität des Gerätes verletzt ist. Somit kann irgendeine schlechte Wirkung verletzter Software vermieden werden. Insbesondere kann jeglichem Versuch von schlechtem Code aus dem Weg gegangen werden, die Integritätsprüfung zu übergehen. Bei einigen Ausführungsformen geht das Durchführen der Integritätsprüfung dem Testen von Hardwarekomponenten des Gerätes voraus. Bei einigen Ausführungsformen geht das Durchführen der Integritätsprüfung der Initialisierung von Hardwarekomponenten des Gerätes voraus.
  • Bei einigen Ausführungsformen folgt das Durchführen der Integritätsprüfung auf die Inbetriebnahme des Gerätes. Wenigstens eine Wirkung kann darin liegen, dass während des Betriebs des Gerätes die Integrität des Gerätes bestätigt werden kann. Bei einigen Ausführungsformen wird eine erste Integritätsprüfung vor dem Laden von Betriebssoftware zum Verwenden beim Betrieb des Gerätes durchgeführt. Weitere Integritätsprüfungen werden nachfolgend während des Betriebs des Gerätes durchgeführt.
  • Bei einigen Ausführungsformen beinhaltet das Durchführen der Integritätsprüfung ein Ableiten des Parameters des auszuführenden Softwarecodes auf der Grundlage eines vorher abgeleiteten Parameters des Softwarecodes, der ausgeführt wurde. Wenigstens eine Wirkung kann darin liegen, dass ein vorangegangenes Integritätsprüfungsergebnis dazu benutzt werden kann, einen Umfang von Verarbeitung zu verringern, der erforderlich ist, um die vorliegenden Integritätsprüfung durchzuführen. Bei einigen Ausführungsformen beinhaltet das Ableiten des Parameters des auszuführenden Softwarecodes ein Ableiten eines vorläufigen Parameters des auszuführenden Softwarecodes und ein Kombinieren des vorläufigen Parameters mit dem vorher abgeleiteten Parameter. Beispielsweise wird das Kombinieren durchgeführt, indem der vorläufige Parameter zu dem vorherigen Parameter addiert wird.
  • Diese Beschreibung beschreibt in einer Hinsicht gemäß einigen Ausführungsformen einen Prozessor, auf den hierin auch als Mikroprozessor Bezug genommen wird, zur Verwendung beim Verifizieren von Software. Der Prozessor ist dazu konfiguriert, einen Parameter bereitzustellen, der Softwarecode zugeordnet ist, der beim Betrieb eines Gerätes ausgeführt werden soll. In einigen Implementierungen ist der Prozessor dazu konfiguriert, den Softwarecode, der beim Betrieb des Gerätes ausgeführt werden soll, zu laden, um so den Parameter von dem Softwarecode abzuleiten. In einigen Implementierungen ist wenigstens ein Abschnitt des Softwarecodes der Parameter. Der Prozessor ist ferner dazu konfiguriert, unter Verwendung des Parameters eine Integritätsprüfung an dem Softwarecode durchzuführen und ein Flag zu signalisieren, das ein Ergebnis der Integritätsprüfung anzeigt. In einigen Implementierungen ist der Prozessor dazu konfiguriert, Code auszuführen, der Befehle derart beinhaltet, dass wenigstens einige Schritte des Verfahrens, das oben beschrieben ist, durchgeführt werden. Beispielsweise beinhaltet in einigen Implementierungen die Integritätsprüfung ein Vergleichen des Parameters des Softwarecodes, der ausgeführt werden soll mit einem vorbestimmten Parameterwert. Gemäß einigen Ausführungsformen, bei denen der vorbestimmte Parameterwert von wenigstens einem Abschnitt des Codes einer Referenzsoftware abgeleitet ist, beinhaltet das Durchführen der Integritätsprüfung ein Ableiten des Parameters von dem Softwarecode, der ausgeführt werden soll, von wenigstens einem Abschnitt des Softwarecodes, der ausgeführt werden soll, der dem wenigstens einen Abschnitt des Codes der Referenzsoftware entspricht. In einigen Ausführungsformen beinhaltet die Integritätsprüfung ein Ableiten des Parameters des Softwarecodes, der ausgeführt werden soll, auf der Grundlage eines zuvor abgeleiteten Parameters des Softwarecodes der ausgeführt ist.
  • Diese Beschreibung beschreibt in einer Hinsicht gemäß einigen Ausführungsformen ein Gerät zur Verwendung unter Softwaresteuerung. Das Gerät umfasst ein Anschlussende, das zum Koppeln über eine Verbindung mit dem Anschlussende an eine Speichereinheit, die auszuführenden Softwarecode speichert, konfiguriert ist, ein Register, einen Prozessor, der zum Ausführen von Softwarecode konfiguriert ist, um das Gerät zu betreiben, und ein Signalausgabeelement, das zum Signalisieren eines Flags konfiguriert ist. In einigen Ausführungsformen ist das Register dazu konfiguriert, den auszuführenden Softwarecodes zu halten.
  • In einigen Ausführungsformen beinhaltet das Gerät einen zweiten Prozessor. Der zweite Prozessor beinhaltet das Anschlussende und/oder das Register. In einigen Ausführungsformen ist der zweite Prozessor an das Signalausgabeelement gekoppelt. Der zweite Prozessor ist dazu konfiguriert, aus der Speichereinheit einen Parameter in das Register zu laden, der dem Softwarecode, der ausgeführt werden soll, zugeordnet ist. In einigen Implementierungen ist der Parameter der auszuführende Softwarecode selbst; in einigen Implementierungen ist der Parameter von dem auszuführenden Softwarecode abgeleitet. Ferner ist der zweite Prozessor dazu konfiguriert, eine Integritätsprüfung auf dem auszuführenden Softwarecode durchzuführen. Wenigstens eine Wirkung besteht darin, dass der zweite Prozessor im wesentlichen oder, in einigen Ausführungsformen vollständig, daran gehindert ist, Befehle auszuführen, die mit dem Durchführen von anderen Aufgaben des Prozessorbetriebs als der Verifikation der Integrität der Software in Beziehung stehen, wie etwa Anwendungsaufgaben. In einigen Implementierungen ist der zweite Prozessor der Ausführung von Befehlen gewidmet, die mit dem Verifizieren der Integrität von Software in Beziehung stehen. Somit ist eine Wahrscheinlichkeit besonders niedrig, dass die Sicherheit von Befehlen verletzt wäre, die auszuführen sind, um die Integritätsprüfung durchzuführen.
  • Bei einigen Ausführungsformen beinhaltet der erste Prozessor das Anschlussende und/oder das Register. Bei einigen Ausführungsformen ist der erste Prozessor an das Signalausgabeelement gekoppelt. Der Prozessor ist konfiguriert, um den auszuführenden Softwarecode von der Speichereinheit in das Register zu laden. Bei einigen Ausführungsformen ist der erste Prozessor konfiguriert, eine Integritätsprüfung an dem auszuführenden Softwarecode durchzuführen. Somit sind in einigen Ausführungsformen der erste Prozessor und der zweite Prozessor in einem einzelnen Prozessor implementiert. Wenigstens eine Wirkung liegt darin, dass der Schaltungsentwurf kompakt sein kann, weil die Funktionalität von Aufgabendurchführung und Verifikation in einem Prozessor bereitgestellt werden.
  • Daher sollte man hierin verstehen, dass, wo allgemein auf einen Prozessor Bezug genommen wird, der Prozessor als eine Gesamtheit von Prozessoren und/oder Prozessorkernen implementiert werden kann, wobei eine strukturelle Trennung zwischen den einzelnen Prozessoren und/oder Kernen einen Unterschied in der Konfiguration widerspiegelt, wie er oben unter Bezugnahme auf den ersten Prozessor und den zweiten Prozessor beschrieben ist, um die Sicherheit durch ein Trennen von Schaltungsanordnungen zu verbessern, die der Ausführung von Aufgaben gewidmet und/oder dafür konfiguriert sind, von Schaltungsanordnungen, die der Codeverifikation gewidmet und/oder dafür konfiguriert sind. Man sollte auch verstehen, dass in einigen Implementierungen der erste Prozessor und der zweite Prozessor in einem einzelnen Schaltkreis implementiert sind. In einigen Implementierungen sind der erste Prozessor und der zweite Prozessor als Funktionen implementiert, die von einem einzelnen Prozessor bereitgestellt werden.
  • Bei einigen Ausführungsformen weist der Prozessor eine Logikschaltung auf, die konfiguriert ist, um die Integritätsprüfung durchzuführen. In einigen Implementierungen ist die Logikschaltungsanordnung des Prozessors dazu konfiguriert, die Integritätsprüfung im wesentlichen durchzuführen, ohne überhaupt irgendeinen Befehlscode zu involvieren, um die Integritätsprüfung abzuschließen. Bei einigen Ausführungsformen ist der Prozessor konfiguriert, dem Signalausgabe Element ein Flag bereitzustellen, das auf ein Ergebnis der Integritätsprüfung hinweist. Bei einigen Ausführungsformen weist das Flag als Ergebnis auf eine erfolgreiche Integritätsprüfung hin. Bei einigen Ausführungsformen weist das Flag als Ergebnis auf eine gescheiterte Integritätsprüfung hin. Gemäß einigen Ausführungsformen umfasst das Gerät ein anderes Signalausgabeelement, das konfiguriert ist, um ein anderes Flag zu signalisieren, das auf ein anderes Ergebnis hinweist als das Ergebnis, auf das von dem Flag hingewiesen wird, das an dem Signalausgabeelement signalisiert wird. Somit wird beispielsweise, solange keine Integritätsprüfung abgeschlossen wurde, kein Ergebnis-Flag signalisiert. Ist dann die Integritätsprüfung abgeschlossen, kann entweder das eine Signalausgabeelement oder das andere Signalausgabeelement das sich ergebende Flag signalisieren, das auf das Ergebnis der Integritätsprüfung hinweist. Wenigstens eine Wirkung kann darin liegen, dass ein Nutzer aus dem Umstand, dass keines der Signalausgabe Elemente ein Flag signalisiert, schließen kann, dass die Integritätsprüfung des Gerätes nicht abgeschlossen ist. Bei einigen Ausführungsformen ist das Signalausgabeelement als ein Leuchtelement bereitgestellt. Insbesondere ist der Prozessor konfiguriert, um das Leuchtelement so zu steuern, dass Licht, das von dem Leuchtelement ausgestrahlt wird, das Flag signalisiert.
  • Bei einigen Ausführungsformen ist das Gerät konfiguriert, um gemäß einem Standard mit gesichertem Plattform-Modul (Trusted Platform Module Standard) zu arbeiten. Dementsprechend beinhaltet bei einigen Ausführungsformen die Integritätsprüfung ein Durchführen einer Prüfung an wenigstens einem von gesicherter Mess-Root (Measurement root of trust:RTM), gesicherter Speicher-Root (Storage root of trust:RTS) und gesicherter Bericht-Root (Reporting root of trust:RTR). Wenigstens eine Wirkung besteht darin, Vertrauen in eine Implementierung mit einer gesicherten Plattform herzustellen.
  • Diese Beschreibung beschreibt in einer Hinsicht gemäß einigen Ausführungsformen ein computerlesbares Medium, das Befehlscode speichert. Der Befehlscode veranlasst bei Ausführung einen Prozessor dazu, Softwarecode zu laden, der beim Betreiben eines Gerätes auszuführen ist, das ein Signalausgabe Element aufweist, das an den Prozessor gekoppelt ist. In einigen Implementierungen geschieht das Laden der Software vor dem Betreiben des Gerätes. Ferner kann der Befehlscode beim Ausführen den Prozessor dazu veranlassen, eine Integritätsprüfung an dem Softwarecode durchzuführen und an dem Signalausgabeelement ein Flag bereitzustellen, das auf ein Ergebnis der Integritätsprüfung hinweist, um das Flag zu signalisieren. Wenigstens eine Wirkung kann darin bestehen, dass das Flag eine Grundlage bilden kann, auf der der Nutzer darauf vertrauen kann, dass das Gerät ordnungsgemäß funktioniert.
  • Bei einigen Ausführungsformen ist die Integritätsprüfung konfiguriert, um ein Vergleichen eines Parameters des auszuführenden Softwarecodes mit einem vorbestimmten Parameterwert zu beinhalten, der vom Code einer Referenzsoftware abgeleitet ist. Bei einigen Ausführungsformen ist der vorbestimmte Parameterwert ein Hash von wenigstens einem Abschnitt vom Code der Referenzsoftware. Dementsprechend beinhaltet das Ableiten des Parameters des auszuführenden Softwarecodes ein Hashen eines entsprechenden Abschnitts von auszuführenden Softwarecode, um den Parameter des auszuführenden Softwarecodes zu erhalten.
  • So wie hierin benutzt kann der Begriff „Modul” sich auf jegliche bekannte oder später entwickelte Hardware, Software, Firmware, oder Kombination derselben beziehen, die in der Lage ist, die Funktionalität durchzuführen, die dem Element zugeordnet ist.
  • So wie hierin benutzt bezeichnet der Begriff „Anschlussende” eine Leitung oder sonstiges Schaltungselement oder eine Schaltung, die konfiguriert ist, um gekoppelte Komponenten zu verbinden. Bei einigen Ausführungsformen können zwei Anschlussenden, d. h. ein erstes Anschlussende und ein zweites Anschlussende, im wesentlichen eine Verbindung sein, wenn sie beieinanderliegend und/oder in einer physikalischen Struktur implementiert sind, beispielsweise als eine Signalbusleitung.
  • So wie hierin benutzt bezeichnen die Worte „Prozessor” und ”Mikroprozessor” jegliche Schaltungsanordnung, die wenigstens eine arithmetische Logikeinheit (ALU) umfasst und konfiguriert ist, um arithmetische Operationen und/oder logische Operationen und/oder Eingabe/Ausgabe Operationen gemäß Befehlen eines ausführbaren Computer-Softwarecodes durchzuführen. Ein Teil oder die gesamte Schaltung kann integriert sein, um wenigstens eine integrierte Schaltung zu bilden.
  • So wie hierin benutzt sollten die Artikel „ein” und „eine” allgemein als „ein/e oder mehrere” ausgelegt werden. Der Begriff ”prozessorlesbares Medium” beinhaltet Prozessorspeichermedien.
  • So wie hierin benutzt werden die Verben „testen” und „prüfen” im wesentlichen als Synonyme verwendet, die eine Untersuchung eines Objektes bedeuten, das hinsichtlich eines vorbestimmten Kriteriums getestet oder geprüft wird, um ein Boolsches Ergebnis der Untersuchung zu erhalten, wonach das Kriterium erfüllt ist oder nicht. Beispielsweise ist bei der Formulierung „Prüfen der Integrität eines Stückes von Software Code” das Objekt das Stück von Softwarecode, das Kriterium ist die Integrität, und das Ergebnis ist entweder „Integrität bestätigt” oder „Scheitern des Testes/keine Bestätigung der Integrität”.
  • So wie hierin benutzt bedeutet das Wort „Fehlverhalten” eines Prozesses, dass das verarbeiten eines Signals und/oder von Daten von einer Erwartung abweicht, die ein Entwerfer des Prozessablaufs hinsichtlich der Frage hatte, wie der Prozessablauf funktionieren, arbeiten oder auf sonstige Weise Ergebnis produzieren werde. Fehlverhalten weist somit hin auf einen Fehler im Entwurf, auf ein manipulieren mit dem entworfenen Prozessablauf, um einen unautorisierten Prozessablauf zu erhalten, auf fehlerhafte Ausrüstung, die zum durchführen des Prozesses verwendet wird, und dergleichen.
  • So wie hierin benutzt bezeichnet die Formulierung „gesicherte Root” eine Komponente, die stets auf eine erwartete Weise funktionieren muss, weil Fehlverhalten der Komponente nicht erfasst werden kann.
  • Man muss verstehen, dass die Merkmale der verschiedenen Ausführungsformen die hierin beschrieben sind, miteinander kombiniert werden dürfen. Wenngleich spezifische Ausführungsformen hierin illustriert und beschrieben wurden, werden jene, die gewöhnliche Kenntnisse im Fach haben, erkennen, dass eine Vielfalt von anderen und/oder gleichwertigen Implementierungen für die spezifischen gezeigten und beschriebenen Ausführungsformen substituiert werden können. Hierin beispielsweise erläuterte Implementierungen/Ausführungsformen können verschiedene Komponenten am selben Ort aufweisen. Die Implementierungen hierin sind als beispielhafte Ausführungsformen beschrieben. Die Erfinder beabsichtigen, dass die beschriebenen beispielhaften Ausführungsformen/Implementierungen in erster Linie Beispiele sind. Die Reihenfolge in der die Ausführungsbeispiele/Implementierungen und Verfahren/Prozesse beschrieben sind, soll nicht als eine Beschränkung aufgefasst werden. Obwohl die Offenbarung hinsichtlich einer oder mehrerer Implementierungen gezeigt und beschrieben ist, werden jene, die vom Fach sind, auf der Grundlage vom Lesen und Verstehen dieser Beschreibung und der anliegenden Zeichnungen gleichwertige Veränderungen und Modifikationen erkennen. Beispielsweise können, wo einige Implementierungen oben hinsichtlich einer ersten und einer zweiten Funktionalität beschrieben wurden, sonstige Implementierungen, die nicht gezeigt sind, lediglich die erste Funktionalität (nicht die zweite Funktionalität) beinhalten, oder sie können lediglich die erste Funktionalität (nicht die zweite Funktionalität) beinhalten. Sonstige Permutationen und Kombinationen der oben offenbarten Konzepte werden ebenfalls als innerhalb des Umfangs der Offenbarung liegend in Betracht gezogen. Die Offenbarung beinhaltet all diese Modifikationen und Veränderungen und wird lediglich vom Umfang der folgenden Ansprüche beschränkt. Insbesondere sind hinsichtlich der verschiedenen Funktionen, die von den oben beschriebenen Komponenten (beispielsweise Elemente und/oder Ressourcen) durchgeführt werden die Begriffe, die zum beschreiben dieser Komponenten verwendet sind, vorgesehen, sofern es nicht anderweitig angezeigt ist, jenen Komponenten zu entsprechen, die die spezifizierte Funktion der beschriebenen Komponente (beispielsweise dass sie funktional gleichwertig ist) beschreiben, wenn sie auch nicht strukturell gleichwertig zu der offenbarten Struktur ist, die die Funktion in den hierin illustrierten beispielhaften Implementierungen der Offenbarung durchführt.
  • Einige oder sämtliche Verfahrensschritte, die hierin beschrieben sind, dürfen von (oder unter Verwendung von) einem Hardwaregerät, wie beispielsweise einem Mikroprozessor, einem programmierbaren Computer oder einer elektronischen Schaltung ausgeführt werden. In Abhängigkeit gewisser Implementierungserfordernisse können Ausführungsformen der Erfindung in Hardware oder in Software implementiert sein. Eine Ausführungsform beinhaltet ein Verarbeitungsmittel, beispielsweise einen Computer, oder ein programmierbares Logikgerät, konfiguriert oder angepasst, um eines der hierin beschriebenen Verfahren durchzuführen. Eine Ausführungsform beinhaltet einen Computer, auf dem ein Computerprogramm zum durchführen eines der hierin beschriebenen Verfahren installiert ist. Bei einigen Ausführungsformen kann ein programmierbares Logikgerät (beispielsweise eine feldprogrammierbare Gatterrasteranordnung) mit einem Mikroprozessor zusammenarbeiten, um eines der hierin beschriebenen Verfahren durchzuführen. In einigen Ausführungsformen kann eine feldprogrammierbare Gatterrasteranordnung mit einem Mikroprozessor zusammen arbeiten, um eines der hierin offenbarten Verfahren durchzuführen. Allgemein können die Verfahren von jeglichem Hardwaregerät durchgeführt werden. Die offenbarten Anordnungen können teilweise oder ganz unter Verwendung von logischen Schaltungen oder eines VLSI Entwurfs in Hardware implementiert werden.

Claims (20)

  1. Ein Verfahren zum Benutzen beim Betreiben eines softwaregesteuerten Gerätes, das Verfahren umfassend: Laden von Softwarecode, der auszuführen ist, wenn das Gerät betrieben wird, Durchführen einer Integritätsprüfung auf dem Softwarecode, und Signalisieren eines Flags, das auf ein Ergebnis der Integritätsprüfung hinweist.
  2. Das Verfahren nach Anspruch 1, wobei die Integritätsprüfung ein Vergleichen eines Parameters des Softwarecodes, der auszuführen ist, mit einem vorbestimmten Parameterwert beinhaltet.
  3. Das Verfahren nach Anspruch 2, wobei der vorbestimmte Parameterwert von wenigstens einem Codeabschnitt einer Referenzsoftware abgeleitet wird, und wobei das Durchführen der Integritätsprüfung ein Ableiten des Parameters des auszuführenden Softwarecodes von wenigstens einem Abschnitt des auszuführenden Softwarecodes beinhaltet, der dem wenigstens einen Codeabschnitt der Referenzsoftware entspricht.
  4. Das Verfahren nach Anspruch 3, wobei das Ableiten des Parameters des auszuführenden Softwarecodes ein Auswählen des wenigstens einen Codeabschnitts der Referenzsoftware beinhaltet.
  5. Das Verfahren nach Anspruch 4, wobei das Auswählen zufällig erfolgt.
  6. Das Verfahren nach Anspruch 4, wobei der vorbestimmte Parameterwert der wenigstens eine Codeabschnitt der Referenzsoftware ist, und wobei das Ausführen der Integritätsprüfung ein Vorbestimmen beinhaltet, ob der wenigstens eine Abschnitt der auszuführenden Software gleich dem wenigstens einen ausgewählten Codeabschnitt der Referenzsoftware ist.
  7. Das Verfahren nach Anspruch 2, wobei der vorbestimmte Parameterwert ein Hash des wenigstens einen Codeabschnitts der Referenzsoftware ist, und wobei das Ableiten des Parameters des auszuführenden Softwarecodes ein Bilden eines Hashs von dem wenigstens einen Abschnitt des auszuführenden Softwarecodes beinhaltet, um den Parameter des auszuführenden Softwarecodes zu erhalten.
  8. Das Verfahren nach Anspruch 2, wobei der vorbestimmte Parameterwert ein Ergebnis ist, das von der Ausführung des wenigstens einen Codeabschnitts der Referenzsoftware erhalten wird, und wobei das Durchführen der Integritätsprüfung ein Ausführen des wenigstens einen Abschnitts des auszuführenden Softwarecodes beinhaltet.
  9. Das Verfahren nach Anspruch 1, wobei die Integritätsprüfung vor Inbetriebnahme des Gerätes durchgeführt wird.
  10. Das Verfahren nach Anspruch 1, wobei das Durchführen der Integritätsprüfung auf die Inbetriebnahme des Gerätes folgt.
  11. Das Verfahren nach Anspruch 10, wobei die Integritätsprüfung ein Ableiten des Parameters des auszuführenden Softwarecodes auf der Grundlage eines vorher abgeleiteten Parameters des Softwarecodes beinhaltet, der ausgeführt wurde.
  12. Ein Prozessor zur Verwendung beim Verifizieren von Software, wobei der Prozessor dazu konfiguriert ist, einen Parameter bereitzustellen, der Softwarecode zugeordnet ist, der beim Betrieb eines Gerätes ausgeführt werden soll, unter Verwendung des Parameters eine Integritätsprüfung an dem Softwarecode durchzuführen, und ein Flag zu signalisieren, das ein Ergebnis der Integritätsprüfung anzeigt.
  13. Der Prozessor nach Anspruch 12, wobei die Integritätsprüfung ein Vergleichen des Parameters des Softwarecodes, der ausgeführt werden soll, mit einem vorbestimmten Parameterwert beinhaltet.
  14. Der Prozessor nach Anspruch 13, wobei der vorbestimmte Parameterwert von wenigstens einem Abschnitt des Codes einer Referenzsoftware abgeleitet ist, und wobei das Durchführen der Integritätsprüfung ein Ableiten des Parameters von dem Softwarecode, der ausgeführt werden soll, von wenigstens einem Abschnitt des Softwarecodes beinhaltet, der ausgeführt werden soll, der dem wenigstens einen Abschnitt des Codes der Referenzsoftware entspricht.
  15. Der Prozessor nach einem der Ansprüche 13 bis 14, wobei die Integritätsprüfung ein Ableiten des Parameters des Softwarecodes, der ausgeführt werden soll, auf der Grundlage eines zuvor abgeleiteten Parameters des Softwarecodes, der ausgeführt wurde, beinhaltet.
  16. Ein Gerät zur Verwendung unter Softwaresteuerung, umfassend: ein Anschlussende, das zum Koppeln an eine Speichereinheit, die auszuführenden Softwarecode speichert, ein Register, und einen ersten Prozessor, der zum Ausführen von Softwarecode konfiguriert ist, um das Gerät zu betreiben, wobei das Gerät ferner umfasst: ein Signalausgabeelement, das zum Signalisieren eines Flags konfiguriert ist, und einen zweiten Prozessor, der dazu konfiguriert ist, aus der Speichereinheit einen Parameter in das Register zu laden, der dem auszuführenden Softwarecode zugeordnet ist, unter Verwendung des Parameters eine Integritätsprüfung an dem auszuführenden Softwarecode durchzuführen, und dem Signalausgabeelement ein Flag bereitzustellen, das auf ein Ergebnis der Integritätsprüfung hinweist.
  17. Das Gerät nach Anspruch 16, wobei das Signalausgabeelement als ein Leuchtelement bereitgestellt ist, und wobei der zweite Prozessor dazu konfiguriert ist, das Leuchtelement so zu steuern, dass Licht, das von dem Leuchtelement ausgestrahlt wird, das Flag signalisiert.
  18. Ein computerlesbares Medium, auf dem Befehlscode gespeichert ist, wobei der Befehlscode bei Ausführung den Prozessor dazu veranlasst, Softwarecode zu laden, der beim Betreiben eines Gerätes auszuführen ist, das ein Signalausgabeelement aufweist, das an den Prozessor gekoppelt ist, vor Inbetriebnahme des Geräts eine Integritätsprüfung an dem Softwarecode durchzuführen, und an dem Signalausgabeelement ein Flag bereitzustellen, das auf ein Ergebnis der Integritätsprüfung hinweist, um das Flag zu signalisieren.
  19. Das computerlesbare Medium nach Anspruch 18, wobei die Integritätsprüfung dazu konfiguriert ist, ein Vergleichen eines Parameters des auszuführenden Softwarecodes mit einem vorbestimmten Parameterwert zu beinhalten, der vom Code einer Referenzsoftware abgeleitet ist.
  20. Das computerlesbare Medium nach Anspruch 19, wobei der vorbestimmte Parameterwert ein Hash von wenigstens einem Abschnitt vom Code der Referenzsoftware ist, und wobei das Ableiten des Parameters des auszuführenden Softwarecodes ein Hashen eines entsprechenden Abschnitts von auszuführendem Softwarecode beinhaltet, um den Parameter des auszuführenden Softwarecodes zu erhalten.
DE102014114899.1A 2014-10-14 2014-10-14 Verfahren und Vorrichtung zur Nutzung in einem Datenverarbeitungssystem Pending DE102014114899A1 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102014114899.1A DE102014114899A1 (de) 2014-10-14 2014-10-14 Verfahren und Vorrichtung zur Nutzung in einem Datenverarbeitungssystem

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102014114899.1A DE102014114899A1 (de) 2014-10-14 2014-10-14 Verfahren und Vorrichtung zur Nutzung in einem Datenverarbeitungssystem

Publications (1)

Publication Number Publication Date
DE102014114899A1 true DE102014114899A1 (de) 2016-04-14

Family

ID=55643962

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102014114899.1A Pending DE102014114899A1 (de) 2014-10-14 2014-10-14 Verfahren und Vorrichtung zur Nutzung in einem Datenverarbeitungssystem

Country Status (1)

Country Link
DE (1) DE102014114899A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102019201487A1 (de) * 2019-02-06 2020-08-06 Robert Bosch Gmbh Verfahren und Vorrichtung zur Integritätsprüfung eines Künstlichen-Intelligenz-Moduls eines Roboters und Verfahren sowie System zur serverseitigen Integritätsprüfung

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100174921A1 (en) * 2009-01-07 2010-07-08 Microsoft Corporation Device side host integrity validation
US20120198514A1 (en) * 2009-08-04 2012-08-02 Carnegie Mellon University Methods and Apparatuses for User-Verifiable Trusted Path in the Presence of Malware

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100174921A1 (en) * 2009-01-07 2010-07-08 Microsoft Corporation Device side host integrity validation
US20120198514A1 (en) * 2009-08-04 2012-08-02 Carnegie Mellon University Methods and Apparatuses for User-Verifiable Trusted Path in the Presence of Malware

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102019201487A1 (de) * 2019-02-06 2020-08-06 Robert Bosch Gmbh Verfahren und Vorrichtung zur Integritätsprüfung eines Künstlichen-Intelligenz-Moduls eines Roboters und Verfahren sowie System zur serverseitigen Integritätsprüfung

Similar Documents

Publication Publication Date Title
US9563313B2 (en) Display panels with touch functions and fault detection method thereof
DE102013108022A1 (de) Verfahren zum Aktivieren des Entwicklungsmodus eines gesicherten elektronischen Steuergeräts
DE102011016340A1 (de) Sicheres Bereitstellen von Sitzungsschlüsselinformation für die Benutzerzustimmung zum Remote-Management eines Computergeräts
EP3304403B1 (de) Verfahren zum sicheren booten eines computersystems und computersystem
US20140278313A1 (en) Simulation methods and systems for an aircraft
US11120136B1 (en) Managing system firmware
JP2005513356A (ja) 自動車の機能ユニットを制御する方法および装置
DE102014114899A1 (de) Verfahren und Vorrichtung zur Nutzung in einem Datenverarbeitungssystem
DE112012006608T5 (de) Steuerungslogikanalysator und Verfahren dafür
DE102021101891A1 (de) Bestimmen , ob eine aktion zur berechnung ausgeführt werden soll gerät basierend auf der analyse von endorsement-informationen eines sicherheits-coprozessors
Ray Safety, security, and reliability: The automotive robustness problem and an architectural solution
DE102019201515A1 (de) Fahrzeugkommunikationsnetzwerk und -verfahren
DE102022119774A1 (de) Verfahren und System zur Durchführung einer sicheren Boot-Prozedur unter Verwendung einer mehrstufigen Sicherheitsverifizierung in einem Mikrocontroller eines Fahrzeugs
CN115123226A (zh) 一种acc跟车距离调节的显示交互方法和系统
KR101683655B1 (ko) 차량용 운영 체제의 복구 방법 및 이를 위한 장치
DE102021208865A1 (de) Beschleunigte verifikation der kraftfahrzeug-software in fahrzeugen
DE102021127242A1 (de) System und Verfahren zum Signieren und Verriegeln einer Boot-Informationsdatei für ein Host-Computersystem
DE202016008498U1 (de) Steuergerät für ein Fahrzeug
DE102012217312B4 (de) Verfahren und System zur Aktualisierung von Code in Verarbeitungssystemen
DE112005002423T5 (de) Verfahren, Vorrichtung und System zum Beibehalten einer dauernden drahtlosen Netzwerkverbindung
EP3752911A1 (de) Verfahren zum installieren eines programmcodepakets in ein gerät sowie gerät und kraftfahrzeug
WO2018103915A1 (de) Geräteeinheit geeignet für den betrieb im geschützten und/oder offenen betriebszustand sowie zugehöriges verfahren
KR102275869B1 (ko) 차량 제어 장치 및 차량 제어 방법
CN109752644A (zh) 一种混线检测方法
EP3451215A1 (de) Hardwareeinrichtung und verfahren zum betreiben und herstellen einer hardwareeinrichtung

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R082 Change of representative

Representative=s name: VIERING, JENTSCHURA & PARTNER MBB PATENT- UND , DE

R082 Change of representative

Representative=s name: VIERING, JENTSCHURA & PARTNER MBB PATENT- UND , DE