DE112006001793T5 - System, Gerät und Verfahren des selektiven Erlaubens des Zugriffs durch einen Host-Prozessor auf von einem Host ausführbaren Code - Google Patents

System, Gerät und Verfahren des selektiven Erlaubens des Zugriffs durch einen Host-Prozessor auf von einem Host ausführbaren Code Download PDF

Info

Publication number
DE112006001793T5
DE112006001793T5 DE112006001793T DE112006001793T DE112006001793T5 DE 112006001793 T5 DE112006001793 T5 DE 112006001793T5 DE 112006001793 T DE112006001793 T DE 112006001793T DE 112006001793 T DE112006001793 T DE 112006001793T DE 112006001793 T5 DE112006001793 T5 DE 112006001793T5
Authority
DE
Germany
Prior art keywords
code
host
update
host processor
function
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.)
Withdrawn
Application number
DE112006001793T
Other languages
English (en)
Inventor
Hagai Bar-El
David Deitcher
Eran Rippel
David Voschina
Yoav Weiss
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.)
DISCRETIX TECHNOLOGIES Ltd
Original Assignee
DISCRETIX TECHNOLOGIES Ltd
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 DISCRETIX TECHNOLOGIES Ltd filed Critical DISCRETIX TECHNOLOGIES Ltd
Publication of DE112006001793T5 publication Critical patent/DE112006001793T5/de
Withdrawn legal-status Critical Current

Links

Classifications

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

Abstract

Ein Host-Gerät, umfassend:
einen Host-Prozessor; und
ein geschütztes Speichermodul, umfassend:
einen Speicher zum Verwahren eines von dem Host ausführbaren Codes, der von besagtem Host-Prozessor auszuführen ist; und
einen Speicher-Controller zum Authentifizieren besagten von dem Host ausführbaren Codes und zum selektiven Erlauben des Zugriffs durch besagten Host-Prozessor auf besagten von dem Host ausführbaren Code auf der Grundlage einer Authentizität besagten von dem Host ausführbaren Codes.

Description

  • QUERVERWEIS AUF VERWANDTE ANMELDUNGEN
  • Diese Anmeldung beansprucht die Priorität der am 22. Juni 2005 eingereichten vorläufigen US-Anmeldung Nr. 60/692,575, deren gesamte Offenbarung hierin durch Bezugnahme inkorporiert ist.
  • HINTERGRUND DER ERFINDUNG
  • Ein Host-Gerät kann einen Schutzmechanismus implementieren, um eine vertrauenswürdige Betriebsumgebung bereitzustellen, z. B. indem sichergestellt wird, dass der Host nur vertrauenswürdigen Code ausführt.
  • Herkömmliche Schutzmechanismen können Anpassen eines Host-Prozessors, z. B. durch Hardware-Modifikationen, beinhalten, um einen hostbasierten, sicheren Boot-Prozess auszuführen, um nur vertrauenswürdigen Code zu laden. Die Anpassung des Host-Prozessors kann kompliziert und/oder teuer sein.
  • ZUSAMMENFASSUNG EINIGER VERANSCHAULICHENDER AUSFÜHRUNGEN DER ERFINDUNG
  • Einige veranschaulichende Ausführungen der Erfindung beinhalten ein Verfahren, Gerät und/oder System des selektiven Erlaubens des Zugriffs durch einen Host-Prozessor auf einen von einem Host ausführbaren Code.
  • Gemäß einigen veranschaulichenden Ausführungen der Erfindung kann ein Host-Gerät einen Host-Prozessor beinhalten; und ein geschütztes Speichermodul. Das geschützte Speichermodul kann zum Beispiel einen Speicher zum Verwahren eines von dem Host ausführbaren Codes, der von dem Host-Prozessor auszuführen ist, beinhalten; und einen Speicher-Controller zur Authentifizierung des von dem Host ausführbaren Codes und zum selektiven Erlauben des Zugriffs durch den Host-Prozessor auf den von dem Host ausführbaren Code auf der Grundlage einer Authentizität des von dem Host ausführbaren Codes.
  • Gemäß einigen veranschaulichenden Ausführungen der Erfindung kann der von dem Host ausführbare Code einen Bootcode beinhalten, der von dem Host-Prozessor während eines Prozesses auszuführen ist, und einen Anwendungscode, der von dem Host-Prozessor nach Ausführen des Bootcodes auszufahren ist. Der Speicher-Controller kann den Bootcode authentifizieren und den Zugriff auf den sicheren Speicher sperren, wenn der Bootcode nicht authentifiziert ist.
  • Gemäß einigen veranschaulichenden Ausführungen der Erfindung kann das geschützte Modul einen dem Bootcode entsprechenden Bootcode-Authentifizierungswert verwahren. Der Speicher-Controller kann den Bootcode auf der Grundlage des Bootcode-Authentifizierungswertes authentifizieren.
  • Gemäß einigen veranschaulichenden Ausführungen der Erfindung kann der Bootcode, wenn er von dem Host-Prozessor ausgeführt wird, dazu fuhren, den Controller dazu zu veranlassen, den Anwendungscode zu authentifizieren und dem Host-Prozessor nur dann zu erlauben, auf den Anwendungscode zuzugreifen, wenn der Anwendungscode authentisch ist.
  • Gemäß einigen veranschaulichenden Ausführungen der Erfindung kann das geschützte Modul einen Gültigkeitsindikator verwahren. Der Controller kann den Indikator setzen, um anzuzeigen, ob der Anwendungscode authentisch ist. Der Bootcode kann, wenn er von dem Host-Prozessor ausgeführt wird, dazu führen, den Host-Prozessor dazu zu veranlassen, zu warten, bis der Controller den Indikator setzt.
  • Gemäß einigen veranschaulichenden Ausführungen der Erfindung kann der von dem Host ausführbare Code einen Aktualisierungscode beinhalten, der es erlaubt, den von dem Host ausführbaren Code zu aktualisieren. Der Controller kann den Aktualisierungscode authentifizieren und dem Host-Prozessor nur dann erlauben, auf den Aktualisierungscode zuzugreifen, wenn der Aktualisierungscode authentisch ist. Der Bootcode kann, wenn er von dem Host-Prozessor ausgeführt wird, dazu führen, den Host-Prozessor dazu zu veranlassen, den Aktualisierungscode auszuführen.
  • Gemäß einigen veranschaulichenden Ausführungen der Erfindung kann der von dem Host ausführbare Code einen Funktionscode beinhalten, der von dem Host-Prozessor mindestens während eines Boot-Prozesses auszuführen ist. Der Speicher-Controller kann den Funktionscode authentifizieren, den Zugriff auf den von dem Host ausführbaren Code mindestens bis der Funktionscode authentifiziert ist sperren und/oder dem Host-Prozessor nur dann erlauben, auf den Funktionscode zuzugreifen, wenn der Funktionscode authentisch ist.
  • Gemäß einigen veranschaulichenden Ausführungen der Erfindung kann der Speicher-Controller dem Host-Prozessor mindestens bis der Funktionscode authentifiziert ist lediglich einen vordefinierten Code bereitstellen. Der vordefinierte Code kann, wenn er von dem Host-Prozessor ausgeführt wird, dazu führen, den Host-Prozessor dazu zu veranlassen, mindestens zu warten, bis der Funktionscode authentifiziert ist.
  • Gemäß einigen veranschaulichenden Ausführungen der Erfindung kann das geschützte Modul einen dem Funktionscode entsprechenden Funktionscode-Authentifizierungswert verwahren. Der Speicher-Controller kann den Funktionscode auf der Grundlage des Funktionscode-Authentifizierungswertes authentifizieren.
  • Gemäß einigen veranschaulichenden Ausführungen der Erfindung kann der von dem Host ausführbare Code einen Aktualisierungscode beinhalten, der es erlaubt, den von dem Host ausführbaren Code zu aktualisieren. Der Speicher-Controller kann den Aktualisierungscode authentifizieren und den Zugriff auf den von dem Host ausführbaren Code mindestens bis der Aktualisierungscode authentifiziert ist sperren.
  • Gemäß einigen veranschaulichenden Ausführungen der Erfindung kann der Speicher-Controller den Host-Prozessor dazu veranlassen, den Aktualisierungscode auszuführen, wenn der Funktionscode nicht authentisch ist und der Aktualisierungscode authentisch ist.
  • Gemäß einigen veranschaulichenden Ausführungen der Erfindung kann das geschützte Modul einen dem Aktualisierungscode entsprechenden Aktualisierungscode-Authentifizierungswert verwahren. Der Speicher-Controller kann den Aktualisierungscode auf der Grundlage des Aktualisierungscode-Authentifizierungswertes authentifizieren.
  • Gemäß einigen veranschaulichenden Ausführungen der Erfindung kann der von dem Host ausführbare Code einen Funktionscode beinhalten, der von dem Host-Prozessor mindestens während eines Boot-Prozesses auszuführen ist. Der Speicher-Controller kann den Funktionscode authentifizieren und dem Host-Prozessor mindestens bis der Funktionscode authentifiziert ist lediglich das Ausführen einer Leseoperation auf den Funktionscode erlauben.
  • Gemäß einigen veranschaulichenden Ausführungen der Erfindung kann der Speicher-Controller, wenn der Funktionscode nicht authentisch ist, dem Host-Prozessor lediglich einen vordefinierten Code bereitstellen.
  • Gemäß einigen veranschaulichenden Ausführungen der Erfindung kann das geschützte Modul einen dem Funktionscode entsprechenden Funktions-Authentifizierungswert verwahren. Der Speicher-Controller kann den Funktionscode auf der Grundlage des Funktions-Authentifizierungswertes authentifizieren.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • Der als die Erfindung betrachtete Gegenstand wird in dem abschließenden Teil der Spezifikation besonders hervorgehoben und deutlich beansprucht. Die Erfindung lässt sich jedoch sowohl in Hinsicht auf Organisation als auch Betriebsverfahren zusammen mit Objekten, Merkmalen und Vorteilen derselben am besten durch Bezug auf die folgende detaillierte Beschreibung verstehen, wenn diese in Verbindung mit den beiliegenden Zeichnungen gelesen wird:
  • 1 ist eine schematische Darstellung eines Systems mit einem Host mit einem geschützten Speichermodul gemäß einigen veranschaulichenden Ausführungen der Erfindung;
  • 2 ist ein schematisches Ablaufdiagramm eines Verfahrens zum selektiven Erlauben des Zugriffs auf und/oder der Ausführung von von dem Host ausführbarem Code gemäß einer veranschaulichenden Ausführung der Erfindung;
  • 3 ist ein schematisches Ablaufdiagramm eines Verfahrens zum selektiven Erlauben des Zugriffs auf und/oder der Ausführung von von dem Host ausführbarem Code gemäß einer weiteren veranschaulichenden Ausführung der Erfindung; und
  • 4 ist ein schematisches Ablaufdiagramm eines Verfahrens zum selektiven Erlauben des Zugriffs auf und/oder der Ausführung von von dem Host ausführbarem Code gemäß noch einer weiteren veranschaulichenden Ausführung der Erfindung.
  • Es versteht sich, dass im Sinne der Einfachheit und Klarheit der Illustration in den Zeichnungen gezeigte Elemente nicht notwendigerweise genau oder maßstabsgetreu gezeichnet wurden. Zum Beispiel können die Abmessungen einiger Elemente relativ zu anderen Elementen der Klarheit halber übertrieben sein oder mehrere physische Komponenten in einem Funktionsblock oder Element beinhaltet sein. Ferner können Bezugszahlen in den Zeichnungen wiederholt sein, um auf entsprechende oder analoge Elemente hinzuweisen, wenn dies angebracht erscheint. Außerdem können einige der in den Zeichnungen abgebildeten Blöcke zu einer einzigen Funktion kombiniert werden.
  • DETAILLIERTE BESCHREIBUNG VON AUSFÜHRUNGEN DER ERFINDUNG
  • In der folgenden detaillierten Beschreibung werden zahlreiche spezifische Details dargelegt, um für ein vollständiges Verständnis der Erfindung zu sorgen. Der Fachmann wird jedoch verstehen, dass die vorliegende Erfindung ohne diese spezifischen Details angewendet werden kann. In weiteren Ausführungen sind wohlbekannte Verfahren, Prozeduren, Komponenten und Schaltkreise möglicherweise nicht im Detail beschrieben, um die vorliegende Erfindung nicht unverständlich zu machen.
  • Manche Teile der folgenden detaillierten Beschreibung sind in Form von Algorithmen und symbolischen Repräsentationen von Operationen auf Datenbits oder binären Digitalsignalen innerhalb eines Computerspeichers dargelegt. Diese algorithmischen Beschreibungen und Repräsentationen können Techniken sein, die von Fachmännern der Datenverarbeitung verwendet werden, um anderen Fachmännern die Grundlage ihrer Arbeit zu vermitteln. Ein Algorithmus wird hier und im Allgemeinen als eine selbstkonsistente Folge von Handlungen oder Operationen erachtet, die zu einem gewünschten Ergebnis führen. Diese beinhalten physikalische Manipulationen von physikalischen Größen. Üblicherweise, jedoch nicht notwendigerweise, nehmen diese Größen die Form von elektrischen oder magnetischen Signalen an, die in der Lage sind, gespeichert, übertragen, kombiniert, verglichen und anderweitig manipuliert zu werden. Es hat sich zuweilen, hauptsächlich aus Gründen des gewöhnlichen Sprachgebrauchs, als günstig herausgestellt, diese Signale als Bits, Werte, Elemente, Symbole, Zeichen, Terme, Zahlen oder dergleichen zu bezeichnen. Es sollte jedoch verstanden werden, dass all diese und ähnliche Begriffe mit den entsprechenden physikalischen Größen zu assoziieren sind und lediglich auf diese Größen angewandte günstige Bezeichnungen sind.
  • Falls nicht ausdrücklich anders angegeben, versteht es sich, wie aus den folgenden Diskussionen deutlich wird, dass sich in der gesamten Spezifikation Diskussionen, die Begriffe wie zum Beispiel „verarbeiten", „berechnen", „rechnen", „bestimmen" oder ähnliche verwenden, auf die Aktivität und/oder Prozesse eines Computers oder Datenverarbeitungssystems oder ähnlicher elektronischer Datenverarbeitungsvorrichtungen beziehen, die als physikalische, wie zum Beispiel elektronische Größen innerhalb der Register und/oder Speicher des Datenverarbeitungssystems repräsentierte Daten manipulieren und/oder in andere, in ähnlicher Weise als physikalische Größen innerhalb der Speicher, Register oder anderen solchen Informationsspeicher-, Übertragungs- oder Anzeigevorrichtungen des Datenverarbeitungssystems repräsentierte Daten umwandeln. Zusätzlich kann der Begriff „Vielzahl" in der gesamten Spezifikation verwendet werden, um zwei oder mehr Komponenten, Geräte, Elemente, Parameter und dergleichen zu beschreiben.
  • Ausführungen der vorliegenden Erfindung können Geräte zum Ausführen der Operationen hierin beinhalten. Diese Geräte können speziell für die gewünschten Zwecke konstruiert sein, oder sie können einen Allzweckcomputer umfassen, der selektiv von einem in dem Computer gespeicherten Computerprogramm aktiviert oder rekonfiguriert wird. Solch ein Computerprogramm kann in einem computerlesbaren Speichermedium gespeichert sein, wie zum Beispiel irgendeiner Art von Speicherplatte einschließlich Floppy-Disketten, optischen Speicherplatten, CD-ROMS, magnetooptischen Speicherplatten, Nur-Lese-Speichern (ROMs), Speichern mit wahlfreiem Zugriff (RAM), elektrisch löschbaren Nur-Lese-Speichern (EPROMs), elektrisch löschbaren und programmierbaren Nur-Lese-Speichern (EEPROMs), magnetischen oder optischen Karten, einem dynamischen RAM (DRAM), einem synchronen DRAM (SD-RAM), einem Flash-Speicher, einem flüchtigen Speicher, einem nichtflüchtigen Speicher, einem Cache-Speicher, einem Puffer, einer Kurzzeitspeichereinheit, einer Langzeitspeichereinheit oder irgendeiner Art von Medium, das in der Lage ist, elektronische Anweisungen zu speichern, und in der Lage ist, mit einem Computersystembus verbunden zu werden, ist aber nicht darauf beschränkt.
  • Ein Teil der Diskussion kann sich hier für veranschaulichende Zwecke darauf beziehen, Code auszuführen und/oder auf ihn zuzugreifen. Ausführungen der Erfindung sind jedoch nicht in dieser Hinsicht beschränkt und können zum Beispiel Ausführen von und/oder Zugreifen auf eine oder mehrere Anweisungen, eine oder mehrere Befehle oder dergleichen beinhalten.
  • Einige veranschaulichende Ausführungen der Erfindung können ein Verfahren, Gerät und/oder System zum selektiven Erlauben des Zugreifens auf und/oder Ausführens von in einem geschützten Modul verwahrtem Code durch einen Host-Prozessor beinhalten. Das geschützte Modul kann zum Beispiel einen Speicher zum Verwahren von von dem Host ausführbarem Code beinhalten; und einen Speicher-Controller zum Authentifizieren mindestens eines Teils des von dem Host ausführbaren Codes und zum selektiven Erlauben des Ausführens von und/oder Zugreifens auf den von dem Host ausführbaren Code durch einen Host-Prozessor auf der Grundlage einer Authentizität des von dem Host ausführbaren Codes.
  • Die Geräte, Systeme und/oder Verfahren gemäß einigen veranschaulichenden Ausführungen der Erfindung können das Bereitstellen einer vertrauenswürdigen Betriebsumgebung für den Host ermöglichen, z. B. indem sichergestellt wird, dass der Host nur vertrauenswürdigen Code ausführt, ohne zum Beispiel zu fordern, dass der Host und/oder Host/Prozessor zuverlässig ist. Entsprechend können die Geräte, Systeme und/oder Verfahren gemäß einigen veranschaulichenden Ausführungen der Erfindung das Bereitstellen einer vertrauenswürdigen Betriebsumgebung für den Host ermöglichen, ohne den Host-Prozessor so anzupassen, dass er einen hostbasierten sicheren Boot-Prozess ausführt.
  • Es wird auf 1 Bezug genommen, die schematisch ein System 100 gemäß einigen veranschaulichenden Ausführungen der Erfindung illustriert.
  • Gemäß einigen veranschaulichenden Ausführungen der Erfindung kann System 100 einen Host 102 beinhalten. Obwohl die vorliegende Erfindung nicht in dieser Hinsicht beschränkt ist, kann Host 102 ein tragbares Gerät beinhalten oder sein. Nicht beschränkende Beispiele solcher tragbarer Geräte schließen Mobiltelefone, Mobilfunk-Handapparate, Laptop- und Notebook-Computer, Personal Digital Assistants (PDA) und dergleichen ein. Zum Beispiel kann Host 102 einen Mobilfunk-Handapparat beinhalten oder sein. Wahlweise kann Host 102 ein nicht tragbares Gerät, z. B. ein Personal-Computer, ein Server-Computer oder dergleichen sein.
  • Gemäß einigen veranschaulichenden Ausführungen der Erfindung kann Host 102 einen Host-Prozessor 104 und ein geschütztes Speichermodul 106, wie sie nachfolgend im Detail beschrieben sind, beinhalten. Host 102 kann außerdem eine Eingabe 108, eine Ausgabe 110, einen Speicher 173 und/oder eine Netzwerkverbindung 112 beinhalten, z. B. wie sie alle nachfolgend im Detail beschrieben sind.
  • Obwohl die vorliegende Erfindung nicht in dieser Hinsicht beschränkt ist, kann geschütztes Modul 106 fest mit Host 102 verbunden oder in diesem beinhaltet sein. Zum Beispiel kann Host 102 ein Mobiltelefon oder einen Mobilfunk-Handapparat beinhalten oder sein; und Modul 106 kann zum Beispiel einen Speicher, z. B. einen Flash-Speicher, der mit dem Mobiltelefon oder Handapparat verbunden ist oder darin eingebettet ist, beinhalten oder sein.
  • Gemäß einigen veranschaulichenden Ausführungen der Erfindung kann Host-Prozessor 104 einen Hauptprozessor (CPU), einen Digitalen Signalprozessor (DSP), einen Mikroprozessor, eine Vielzahl von Prozessoren, einen Controller, einen Chip, einen Mikrochip oder irgendeinen anderen geeigneten Mehrzweck- oder spezifischen Prozessor oder Controller einschließen. Eingabe 108 kann zum Beispiel eine Tastatur, eine Maus, ein Touch-Pad oder andere geeignete Zeigegeräte oder Eingabegeräte einschließen. Ausgabe 110 kann zum Beispiel eine Flüssigkristallanzeige (LCD) oder irgendeinen anderen geeigneten Bildschirm oder Anzeige einschließen. Netzwerkverbindung 112 kann dazu ausgelegt sein, mit einem Kommunikationsnetzwerk zu interagieren. Obwohl der Umfang der vorliegenden Erfindung nicht in dieser Hinsicht beschränkt ist, kann das Kommunikationsnetzwerk ein Mobilfunk-Kommunikationsnetzwerk einschließen, wobei Host 102 zum Beispiel ein Mobilfunk-Handapparat ist. Das Mobilfunk-Kommunikationsnetzwerk kann gemäß einigen Ausführungen der Erfindung ein Mobilfunk-Kommunikationsnetzwerk laut 3rd Generation Partnership Project (3GPP), wie zum Beispiel Frequency Domain Duplexing (FDD), Global System for Mobile Communications (GSM), Wideband Code Division Multiple Access (WCDMA) und dergleichen sein. Obwohl die Erfindung nicht in dieser Hinsicht beschränkt ist, kann Netzwerkverbindung 112 zum Beispiel mindestens eine Antenne 114 beinhalten, um Signale zu/von dem Kommunikationsnetzwerk zu übertragen und/oder zu empfangen. Obwohl die Erfindung nicht in dieser Hinsicht beschränkt ist, kann System 100 außerdem zum Beispiel irgendein geeignetes Kommunikationsgerät 150, z. B. einen weiteren Host, beinhalten, um mit Host 102 z. B. über eine drahtlose oder drahtgebundene Verbindung, wie sie aus dem Stand der Technik wohlbekannt sind, zu kommunizieren.
  • Gemäß einigen veranschaulichenden Ausführungen der Erfindung kann Speicher 173 zum Beispiel einen ROM oder irgendeinen anderen geeigneten, z. B. nichtflüchtigen Speicher einschließen. Speicher 173 kann zum Beispiel von dem Host verwahrten Bootcode 175 verwahren, der von Host-Prozessor 104 während eines Boot-Prozesses von Host 102 auszuführen ist, z. B. wie nachstehend beschrieben.
  • Gemäß veranschaulichenden Ausführungen der Erfindung kann geschütztes Speichermodul 106 irgendeinen geeigneten Schutzmechanismus, z. B. irgendeine geeignete „physische" Schutzstruktur und/oder irgendeine andere geeignete Schutzkonfiguration, wie sie aus dem Stand der Technik bekannt ist, beinhalten, um unbefugte Offenbarung des Inhalts von Modul 106 zu verhindern; um einen Versuch zu verhindern, auf irgendeinen Teil des Inhalts von Modul 106 zuzugreifen; um einen Versuch zu verhindern, den Inhalt von Modul 106 zum Teil oder im Ganzen zu manipulieren oder zu verändern; und/oder um einen Versuch zu verhindern, den Betrieb von Modul 106 zu stören. Es versteht sich, dass der Begriff „Verhindern unbefugter Offenbarung gespeicherter Daten" wie hierin verwendet sich darauf beziehen kann, sicherzustellen, dass die gespeicherten Daten nicht ohne Autorisierung verstanden werden können, zum Beispiel obgleich Zugriff, z. B. teilweiser oder vollständiger physischer und/oder elektronischer Zugriff, auf die gespeicherten Daten erlangt wird. Es versteht sich weiterhin, dass der Begriff „sicheres Verwahren von Daten" wie hierin verwendet sich auf das Verwahren von Daten bei Verhinderung unbefugter Offenbarung der verwahrten Daten beziehen kann.
  • Gemäß einigen veranschaulichenden Ausführungen der Erfindung kann geschütztes Speichermodul 106 einen Speicher 128 und einen Speicher-Controller 116, der in der Lage ist, selektiv Zugriff auf Speicher 128 zu erlauben, beinhalten, wie nachstehend im Detail beschrieben. Zum Beispiel kann Controller 116 Host-Prozessor 104 selektiv Zugriff auf Speicher 128 erlauben, z. B. wie nachstehend im Detail beschrieben.
  • Gemäß einigen veranschaulichenden Ausführungen der Erfindung kann Controller 116 zum Beispiel einen Prozessor, einen Hauptprozessor (CPU), einen Digitalen Signalprozessor (DSP), einen Mikroprozessor, eine Vielzahl von Prozessoren, einen Chip, einen Mikrochip oder irgendeinen weiteren geeigneten Mehrzweck- oder spezifischen Prozessor oder Controller einschließen. Speicher 128 kann zum Beispiel einen Flash-Speicher, z. B. einen eingebetteten Flash-Speicher, einen Microdrive, eine Festplatte oder irgendeinen anderen geeigneten, z. B. nichtflüchtigen Speicher einschließen.
  • Gemäß einigen veranschaulichenden Ausführungen der Erfindung kann Speicher 128 von dem Host ausführbaren Code verwahren, der von Host-Prozessor 104 auszuführen ist.
  • Der von dem Host ausführbare Code kann zum Beispiel einen oder mehrere eines geschützten, von dem Host ausführbaren Bootcodes 130, eines geschützten, von dem Host ausführbaren Aktualisierungscodes 132, eines geschützten, von dem Host ausführbaren Anwendungscodes 134 sowie eines geschützten, von dem Host ausführbaren Funktionscodes 136 beinhalten, wie sie nachstehend im Detail beschrieben sind.
  • Gemäß einigen veranschaulichenden Ausführungen der Erfindung kann Bootcode 130 Code beinhalten, der von Host-Prozessor 104 während des Boot-Prozesses auszuführen ist. Obwohl die Erfindung nicht in dieser Hinsicht beschränkt ist, kann Host-Prozessor 104 Host-Bootcode 175 am Anfang des Boot-Prozesses von Host 102 ausführen, z. B. bevor er irgendwelchen anderen Code ausführt. Host-Bootcode 175 kann, z. B. am Ende von Host-Bootcode 175, eine Anweisung beinhalten, die dazu führt, dass Host-Prozessor 104 versucht, auf Bootcode 130 zuzugreifen, z. B. direkt nach dem Ausführen von Host-Bootcode 175. Zum Beispiel kann Bootcode 130 an einer vordefinierten Bootcode-Adresse von Speicher 130 verwahrt werden, und Host-Bootcode 175 kann, z. B. am Ende von Host-Bootcode 175, einen Befehl beinhalten, an der vordefinierten Bootadresse von Speicher 130 fortzufahren oder dorthin zu verzweigen. Obwohl die Erfindung nicht in dieser Hinsicht beschränkt ist, kann Controller 116, zum Beispiel während des Boot-Prozesses, lediglich das Ausführen einer Leseoperation auf Bootcode 130 erlauben, z. B. wie nachstehend beschrieben.
  • Gemäß einigen veranschaulichenden Ausführungen der Erfindung kann Anwendungscode 134 Code beinhalten, der von Host-Prozessor 104 nach Ausführen von Bootcode 130 auszuführen ist. Anwendungscode 134 kann dazu ausgelegt sein, während des Boot-Prozesses und/oder während eines auf den Boot-Prozess folgenden Betriebsmodus ausgeführt zu werden. Anwendungscode 134 kann irgendeinen geeigneten Code beinhalten und z. B. zu irgendeinem geeigneten, von Host-Prozessor 104 auszuführenden Programm, Prozess oder Anwendung führen. Zum Beispiel kann Anwendungscode zu einem Betriebssystem (OS), z. B. wie es aus dem Stand der Technik bekannt ist, führen.
  • Gemäß einigen veranschaulichenden Ausführungen der Erfindung kann Aktualisierungscode 132 Code beinhalten, der, wenn er von Host-Prozessor 104 ausgeführt wird, dazu führen kann, die Aktualisierung des Inhalts von Speichermodul 106 zu ermöglichen, z. B. wie nachstehend im Detail beschrieben. Zum Beispiel kann Aktualisierungscode 132, wenn er von Host-Prozessor 104 ausgeführt wird, dazu führen, Host-Prozessor 104 dazu zu veranlassen, Bootcode 130, Aktualisierungscode 132, Anwendungscode 134 und/oder Funktionscode 136 auf der Grundlage einer Aktualisierungsanforderung 142, die zu Beispiel von einem Aktualisierer 140 empfangen werden kann, zu aktualisieren. Aktualisierungscode 132 kann zum Beispiel Host-Prozessor dazu veranlassen, die Aktualisierungsanforderung zu authentifizieren und/oder zu validieren, z. B. unter Verwendung irgendeines geeigneten Validierungs- und/oder Authentifizierungsalgorithmus oder -verfahrens, z. B. wie sie aus dem Stand der Technik wohlbekannt sind.
  • Gemäß einigen veranschaulichenden Ausführungen der Erfindung kann Funktionscode 136 irgendeinen geeigneten, von Host-Prozessor 104 mindestens während des Boot-Prozesses auszuführenden Code, Z. B. wie nachfolgend im Detail beschrieben, beinhalten. Obwohl die Erfindung nicht in dieser Hinsicht beschränkt ist, kann Funktionscode 136 mindestens einen Teil von Bootcode 130, Anwendungscode 134 und/oder irgendeinem anderen geeigneten Code beinhalten.
  • Gemäß einigen veranschaulichenden Ausführungen der Erfindung kann Speichermodul 106 außerdem mindestens einen Bootcode 130 entsprechenden Bootcode-Authentifizierungswert 120 beinhalten; mindestens einen Aktualisierungscode 132 entsprechenden Aktualisierungscode-Authentifizierungswert; mindestens einen Anwendungscode 134 entsprechenden Anwendungscode-Authentifizierungswert 122; mindestens einen Aktualisierungscode 132 entsprechenden Aktualisierungscode-Authentifizierungswert 124; und/oder mindestens einen Funktionscode 136 entsprechenden Funktionscode-Authentifizierungswert 126. Zum Beispiel kann Bootcode-Authentifizierungswert 120 einen Authentifizierungswert beinhalten, der einer Version von Bootcode 130 entspricht, der vertraut wird; Anwendungscode-Authentifizierungswert 122 kann einen Authentifizierungswert beinhalten, der einer Version von Anwendungscode 134 entspricht, der vertraut wird; Aktualisierungs-Authentifizierungswert 124 kann einen Authentifizierungswert beinhalten, der einer Version von Aktualisierungscode 136 entspricht, der vertraut wird; und/oder Funktionscode-Authentifizierungswert 126 kann einen Authentifizierungswert beinhalten, der einer Version von Funktionscode 136 entspricht, der vertraut wird. Der Ausdruck "Code, dem vertraut wird", wie hierin verwendet, kann sich auf einen Code beziehen, der als autorisierter Code, zugelassener Code, genehmigter Code und/oder Code, der Host 102 und/oder irgendein anderes Element oder Komponente von System 100 nicht schädigen, zerstören und/oder angreifen kann, bestimmt, vorausgesetzt, angenommen und/oder erkannt werden kann. Entsprechend kann der Ausdruck "Code, dem nicht vertraut wird", wie hierin verwendet, sich auf einen Code beziehen, der nicht als autorisierter Code, zugelassener Code, genehmigter Code und/oder Code, der Host 102 und/oder irgendein anderes Element oder Komponente von System 100 nicht schädigen, zerstören und/oder angreifen kann, bestimmt, vorausgesetzt, angenommen und/oder erkannt wird.
  • Gemäß einigen veranschaulichenden Ausführungen der Erfindung kann das Ausführen einer oder mehrerer Operationen gemäß Ausführungen der Erfindung, z. B. wie nachstehend mit Bezug auf 2, 3 und/oder 4 beschrieben, dazu führen, dass Host 102 in einer Betriebsumgebung arbeitet, die als vertrauenswürdig angenommen werden kann. Obwohl die Erfindung nicht in dieser Hinsicht beschränkt ist, können der Bootcode, dem vertraut wird, der Anwendungscode, dem vertraut wird, der Aktualisierungscode, dem vertraut wird, und/oder der Funktionscode, dem vertraut wird, geschütztem Speichermodul 106 bereitgestellt sein und/oder in Speicher 128 durch irgendeine geeignete Anwendung, Einheit oder Modul, z. B. wenn Host 102 in der vertrauenswürdigen Betriebsumgebung arbeitet, und/oder durch einen sich durch das Ausführen von Aktualisierungscode 132 ergebenden Aktualisierungsprozess gespeichert sein.
  • Gemäß einigen veranschaulichenden Ausführungen der Erfindung kann Controller 116 Bootcode 130 auf der Grundlage von Bootcode-Authentifizierungswert 120 authentifizieren. Zum Beispiel kann Controller 116 einen Boot-Authentifizierungswert auf der Grundlage von Bootcode 130 berechnen („der berechnete Boot-Authentifizierungswert”) und den berechneten Boot-Authentifizierungswert mit Boot-Authentifizierungswert 120 vergleichen. Controller 116 kann feststellen, dass Bootcode 130 authentisch ist, zum Beispiel wenn der berechnete Boot-Authentifizierungswert mit Wert 120 übereinstimmt. Controller 116 kann Anwendungscode 134 auf der Grundlage von Anwendungscode- Authentifizierungswert 122 authentifizieren. Zum Beispiel kann Controller 116 einen Anwendungs-Authentifizierungswert auf der Grundlage von Anwendungscode 134 berechnen („der berechnete Anwendungs-Authentifizierungswert”) und den berechneten Anwendungs-Authentifizierungswert mit Anwendungs-Authentifizierungswert 122 vergleichen. Controller 116 kann feststellen, dass Anwendungscode 134 authentisch ist, zum Beispiel wenn der berechnete Anwendungs-Authentifizierungswert mit Wert 122 übereinstimmt. Controller 116 kann Funktionscode 136 auf der Grundlage von Funktionscode-Authentifizierungswert 126 authentifizieren. Zum Beispiel kann Controller 116 einen Funktions-Authentifizierungswert auf der Grundlage von Anwendungscode 136 berechnen („der berechnete Funktions-Authentifizierungswert”) und den berechneten Funktions-Authentifizierungswert mit Funktions-Authentifizierungswert 126 vergleichen. Controller 116 kann feststellen, dass Funktionscode 136 authentisch ist, zum Beispiel wenn der berechnete Funktions-Authentifizierungswert mit Wert 126 übereinstimmt. Controller 116 kann Aktualisierungscode 132 auf der Grundlage von Aktualisierungscode-Authentifizierungswert 124 authentifizieren. Zum Beispiel kann Controller 116 einen Aktualisierungs-Authentifizierungswert auf der Grundlage von Aktualisierungscode 132 berechnen („der berechnete Aktualisierungs-Authentifizierungswert”) und den berechneten Aktualisierungs-Authentifizierungswert mit Aktualisierungs-Authentifizierungswert 124 vergleichen. Controller 116 kann feststellen, dass Aktualisierungscode 132 authentisch ist, zum Beispiel wenn der berechnete Aktualisierungs-Authentifizierungswert mit Wert 124 übereinstimmt.
  • Gemäß einigen veranschaulichenden Ausführungen der Erfindung können Authentifizierungswerte 120, 122, 124 und/oder 126 irgendwelche geeigneten Authentifizierungswerte beinhalten. Obwohl die Erfindung nicht in dieser Hinsicht beschränkt ist, können ein oder mehrere Authentifizierungswerte 120, 122, 124 und/oder 126 zum Beispiel einen Hash-Wert beinhalten. Zum Beispiel kann Wert 120 einen auf der Grundlage des Bootcodes, dem vertraut wird, berechneten Hash-Wert beinhalten; Wert 122 kann einen auf der Grundlage des Anwendungscodes, dem vertraut wird, berechneten Hash-Wert beinhalten; Wert 124 kann einen auf der Grundlage des Aktualisierungscodes, dem vertraut wird, berechneten Hash-Wert beinhalten; und/oder Wert 126 kann einen auf der Grundlage des Funktionscodes, dem vertraut wird, berechneten Hash-Wert beinhalten. Entsprechend kann Controller 116 einen Hash-Wert auf der Grundlage von Bootcode 130, einen Hash-Wert auf der Grundlage von Anwendungscode 134, einen Hash-Wert auf der Grundlage von Aktualisierungscode 132 und/oder einen Hash-Wert auf der Grundlage von Funktionscode 136 berechnen. Die Authentifizierungswerte können unter Verwendung irgendeiner geeigneten Authenzifizierungs-Hardware oder -Software bestimmt werden, z. B. einer S-1-Kryptographie-Engine, wie sie aus dem Stand der Technik bekannt ist.
  • Gemäß einigen veranschaulichenden Ausführungen der Erfindung kann geschütztes Speichermodul 106 außerdem einen Gültigkeitsindikator 118 beinhalten, um anzuzeigen, ob Anwendungscode 134 für authentisch befunden wird. Controller 116 kann einen Wert von Indikator 118 zum Beispiel auf der Grundlage der Authentizität von Code 134 setzen. Obwohl die Erfindung nicht in dieser Hinsicht beschränkt ist, kann Indikator 118 zum Beispiel durch einen an einer vordefinierten Indikatoradresse von Speicher 128 oder in einem mit Controller 116 assoziierten Controller-Speicher (nicht gezeigt) verwahrten Wert implementiert sein. Zum Beispiel kann Controller 116 Indikator 118 so setzen, dass er einen ersten Wert, z. B. null, hat, der anzeigt, dass Code 134 nicht für authentisch befunden wird; oder einen zweiten Wert, z. B. eins, der anzeigt, dass Code 134 für authentisch befunden wird.
  • Obwohl die Erfindung nicht in dieser Hinsicht beschränkt ist, kann in einigen veranschaulichenden Ausführungen der Erfindung Bootcode 130, wenn er von Host-Prozessor 104 ausgeführt wird, dazu führen, Host-Prozessor 104 dazu zu veranlassen, mindestens zu warten, bis der Wert von Indikator 118 gesetzt ist; und/oder den Wert von Indikator 118 zu lesen, z. B. wie nachstehend mit Bezug auf 2 beschrieben. Zum Beispiel kann Bootcode 130, wenn er von Host-Prozessor 104 ausgeführt wird, Host-Prozessor dazu veranlassen, den Inhalt der vordefinierten Indikatoradresse zu lesen.
  • Obwohl die Erfindung nicht in dieser Hinsicht beschränkt ist, können gemäß einigen veranschaulichenden Ausführungen der Erfindung Indikator 118, Authentifizierungswert 120, Authentifizierungswert 122, Authentifizierungswert 124 und/oder Authentifizierungswert 126 in Speicher 128 verwahrt werden. In anderen Ausführungen der Erfindung können Indikator 118, Authentifizierungswert 120, Authentifizierungswert 122, Authentifizierungswert 124 und/oder Authentifizierungswert 126 sicher von Modul 106, Controller 116 und/oder irgendeinem anderen geeigneten Element oder Einheit von Modul 106 verwahrt werden, z. B. unter Verwendung irgendeiner geeigneten Schutz- und/oder Verschlüsselungskonfiguration, -anordnung und/oder -verfahren, wie sie aus dem Stand der Technik bekannt sind. In manchen veranschaulichenden Ausführungen der Erfindung kann Controller 116 Controller-Code 117 verwahren, einschließlich Code, der, wenn er von Controller 116 ausgeführt wird, dazu führen kann, dass Controller 116 eine oder mehrere der hierin beschriebenen Operationen ausführt. In anderen Ausführungen der Erfindung kann Code 117 sicher von Modul 106, Speicher 128 und/oder irgendeinem anderen geeigneten Element oder Einheit von Modul 106 verwahrt werden, z. B. unter Verwendung irgendeiner geeigneten Schutz- und/oder Verschlüsselungskonfiguration, -anordnung und/oder -verfahren, wie sie aus dem Stand der Technik bekannt sind.
  • Obwohl die Erfindung nicht in dieser Hinsicht beschränkt ist, kann gemäß einigen veranschaulichenden Ausführungen der Erfindung Controller 116 in der Lage sein, Host-Prozessor 104 selektiv einen vordefinierten Code bereitzustellen, der, wenn er von Host-Gerät 104 ausgeführt wird, dazu führen kann, dass Host-Gerät 104 wartet, solange der vordefinierte Code Host-Prozessor 104 bereitgestellt wird. Zum Beispiel kann Controller 116 Host-Prozessor 104 auf der Grundlage einer Authentizität von Codes 130, 132, 134 und/oder 136 selektiv den vordefinierten Code bereitstellen, z. B. wie nachstehend beschrieben. Der vordefinierte Code kann irgendeinen geeigneten Code beinhalten, z. B. wie er aus dem Stand der Technik bekannt ist. Zum Beispiel kann Controller 116 Host-Prozessor 104 eine vordefinierte, z. B. konstante Ausgabe bereitstellen.
  • Es wird nun auf 2 Bezug genommen, die schematisch ein Verfahren zum selektiven Erlauben des Zugriffs auf und/oder der Ausführung von von dem Host ausführbarem Code gemäß einer veranschaulichenden Ausführung der Erfindung illustriert. Obwohl die Erfindung nicht in dieser Hinsicht beschränkt ist, können eine oder mehrere Operationen des Verfahrens von 2 von Host 102 (1), Host-Prozessor 104 (1), geschütztem Modul 106 (1) und/oder Controller 116 (1) ausgeführt werden, z. B. um selektiv Zugriff auf und/oder Ausführung von von dem Host ausführbarem Code zu erlauben, z. B. einschließlich in geschütztem Modul 106 (1) verwahrtem geschütztem Bootcode 130 (1) und Anwendungscode 134 (1).
  • Wie bei Block 202 gezeigt kann das Verfahren Ausführen von von dem Host verwahrtem Bootcode beinhalten. Zum Beispiel kann Host-Prozessor 104 (1) Host-Bootcode 175 (1) ausführen, z. B. beim Booten von Host 102 (1) und/oder vor dem Ausführen irgendeiner anderen Operation. Das Verfahren kann außerdem Ausführen von Controller-Bootcode beinhalten. Zum Beispiel kann Controller 116 (1) Controller-Bootcode, der z. B. in Controller-Code 117 (1) beinhaltet ist, ausführen.
  • Wie bei Block 203 gezeigt kann das Verfahren außerdem beinhalten, für mindestens einen Teil des von dem Host ausführbaren Codes lediglich Ausführen einer Leseoperation zu ermöglichen, z. B. mindestens bis der Bootcode authentifiziert ist, wie nachstehend mit Bezug auf Block 204 beschrieben. Zum Beispiel kann Controller 116 (1) Host-Prozessor 104 (1) für mindestens Bootcode 130 (1) lediglich Ausführen einer Leseoperation erlauben, z. B. bis Bootcode 130 (1) authentifiziert ist.
  • Wie bei Block 204 gezeigt kann das Verfahren außerdem Authentifizieren des geschützten Bootcodes beinhalten. Zum Beispiel kann Controller 116 (1) auf der Grundlage von Boot-Authentifizierungswert 120 (1) Bootcode 130 (1) authentifizieren, z. B. wie nachstehend beschrieben. Obwohl die Erfindung nicht in dieser Hinsicht beschränkt ist, kann in einigen veranschaulichenden Ausführungen der Erfindung das Authentifizieren des geschützten Bootcodes während einer Zeitspanne, die mindestens teilweise mit einer Zeitspanne des Ausführens des Host-Bootcodes überlappt, ausgeführt werden.
  • Wie bei Block 206 gezeigt kann das Verfahren außerdem Sperren des Zugriffs auf das geschützte Speichermodul beinhalten, z. B. wenn der geschützte Bootcode nicht für authentisch befunden wird. Zum Beispiel kann Controller 116 (1) den Zugriff auf Speicher 128 (1) sperren, z. B. durch Ausblenden einer Ausgabe von geschütztem Speichermodul 106 (1). Zum Beispiel kann Controller 116 (1) Host-Prozessor 104 (1) eine vordefinierte, z. B. konstante, Ausgabe bereitstellen, z. B. wenn Bootcode 130 (1) nicht für authentisch befunden wird.
  • Wie bei Block 210 gezeigt kann das Verfahren außerdem Authentifizieren des Anwendungscodes beinhalten. In einem Beispiel kann Bootcode 130 (1) Code beinhalten, der, wenn er von Host-Prozessor 104 (1) ausgeführt wird, dazu führen kann, Controller 116 (1) dazu zu veranlassen, Anwendungscode 134 (1) zu authentifizieren. In einem weiteren Beispiel kann Controller 116 (1), z. B. unabhängig von irgendeiner von Host-Prozessor 104 (1) ausgeführten Operation, nach dem Authentifizieren von Bootcode 130 Anwendungscode 134 (1) authentifizieren. Controller 116 (1) kann zum Beispiel auf der Grundlage von Anwendungscode-Authentifizierungswert 122 (1) Anwendungscode 134 (1) authentifizieren.
  • Wie bei Block 211 gezeigt kann das Verfahren außerdem beinhalten, einen Gültigkeitsindikator zu setzen, um anzuzeigen, ob der Anwendungscode authentisch ist. Zum Beispiel kann Controller 116 (1) auf der Grundlage der Authentizität von Anwendungscode 134 (1) Indikator 118 (1) setzen.
  • Wie bei Block 208 gezeigt kann das Verfahren außerdem beinhalten, den Host-Prozessor dazu zu veranlassen, mindestens bis zur Authentifizierung des Anwendungscodes zu warten, z. B. mindestens bis die Authentizität des Anwendungscodes festgestellt ist. Zum Beispiel kann Bootcode 130 (1), wenn er von Host-Prozessor 104 (1) ausgeführt wird, dazu führen, Host-Prozessor 104 (1) dazu zu veranlassen, mindestens zu warten, bis der Wert von Indikator 118 (1) gesetzt ist.
  • Wie bei Block 213 und/oder 219 gezeigt kann das Verfahren außerdem Authentifizieren des Aktualisierungscodes beinhalten. Zum Beispiel kann Controller 116 ( 1) auf der Grundlage von Aktualisierungscode-Authentifizierungswert 124 (1) Aktualisierungscode 132 (1) authentifizieren.
  • In manchen veranschaulichenden Ausführungen der Erfindung kann das Verfahren Authentifizieren des Aktualisierungscodes nach Authentifizieren des Anwendungscodes beinhalten. Die Erfindung ist jedoch nicht in dieser Hinsicht beschränkt, und in anderen veranschaulichenden Ausführungen kann der Aktualisierungscode vor dem Anwendungscode authentifiziert werden.
  • Gemäß einigen veranschaulichenden Ausführungen der Erfindung kann Setzen des Gültigkeitsindikators, z. B. wie oben mit Bezug auf Block 211 beschrieben, Setzen des Gültigkeitsindikators auf der Grundlage der Authentizität sowohl des Anwendungscodes als auch des Aktualisierungscodes beinhalten. Die Erfindung ist jedoch nicht in dieser Hinsicht beschränkt, und in anderen Ausführungen kann Setzen des Gültigkeitsindikators Setzen des Gültigkeitsindikators auf der Grundlage der Authentizität nur des Anwendungscodes beinhalten.
  • Wie bei Block 206 gezeigt kann das Verfahren Sperren des Zugriffs auf das geschützte Speichermodul beinhalten, z. B. wenn der Aktualisierungscode nicht für authentisch befunden wird.
  • Wie bei Block 212 gezeigt kann das Verfahren beinhalten, Aktualisieren des von dem Host ausführbaren Codes zu ermöglichen, wenn der Anwendungscode nicht authentisch ist und der Aktualisierungscode authentisch ist. Zum Beispiel kann Bootcode 130 (1), wenn er von Host-Prozessor 104 (1) ausgeführt wird, dazu führen, dass Host-Prozessor 104 (1) Aktualisierungscode 132 (1) ausführt, z. B. wenn Gültigkeitsindikator 118 ( 1) anzeigt, dass Anwendungscode 134 (1) nicht authentisch ist.
  • Wie bei Block 214 gezeigt kann das Verfahren außerdem beinhalten, Ausführung des Anwendungscodes zu ermöglichen, z. B. wenn sowohl der Anwendungscode als auch der Aktualisierungscode authentisch sind. Zum Beispiel kann Bootcode 130 (1), wenn er von Host-Prozessor 104 (1) ausgeführt wird, dazu führen, dass Host-Prozessor 104 (1) die Warteoperation beendet und/oder versucht, Anwendungscode 134 (1) auszuführen, z. B. wenn Gültigkeitsindikator 118 (1) anzeigt, dass Anwendungscode 134 (1) authentisch ist. Controller 116 (1) kann Host-Prozessor 104 (1) erlauben, auf Anwendungscode 134 (1) zuzugreifen und/oder ihn auszuführen, z. B., wenn sowohl Anwendungscode 134 (1) als auch Aktualisierungscode 132 (1) authentisch sind.
  • Wie bei Block 239 gezeigt kann das Verfahren in einigen veranschaulichenden Ausführungen der Erfindung außerdem beinhalten, für mindestens einen Teil des von dem Host ausführbaren Codes eine Schreiboperation zu erlauben, z. B. wenn sowohl der Anwendungscode als auch der Aktualisierungscode authentisch sind, obwohl die Erfindung nicht in dieser Hinsicht beschränkt ist. Zum Beispiel kann Controller 116 (1) Host-Prozessor 104 (1) erlauben, sowohl Lese- als auch Schreiboperationen auf Codes 130, 132, 134 und/oder 136 (1) auszuführen. Es versteht sich, dass andere Ausführungen der Erfindung möglicherweise nicht beinhalten, die Schreiboperation zu erlauben, z. B. wenn sowohl der Anwendungscode als auch der Aktualisierungscode authentisch sind.
  • Es wird nun auf 3 Bezug genommen, die schematisch ein Verfahren zum selektiven Ermöglichen des Zugriffs auf und/oder der Ausführung von von dem Host ausführbarem Code gemäß einer weiteren veranschaulichenden Ausführung der Erfindung illustriert. Obwohl die Erfindung nicht in dieser Hinsicht beschränkt ist, können eine oder mehrere Operationen des Verfahrens von 3 von Host 102 (1), Host-Prozessor 104 (1), geschütztem Modul 106 (1) und/oder Controller 116 (1) ausgeführt werden, z. B. um selektiv Zugriff auf und/oder Ausführung von von dem Host ausführbarem Code zu erlauben, z. B. einschließlich in geschütztem Modul 106 (1) verwahrtem Funktionscode 136 (1) und Aktualisierungscode 132 (1).
  • Wie bei Block 302 gezeigt kann das Verfahren Ausführen von Host-Bootcode beinhalten. Zum Beispiel kann Host-Prozessor 104 (1) Host-Bootcode 175 (1) ausführen, z. B. beim Booten von Host 102 (1). Das Verfahren kann außerdem Ausführen von Controller-Bootcode beinhalten. Zum Beispiel kann Controller 116 (1) Controller-Bootcode, der z. B. in Controller-Code 117 (1) beinhaltet ist, ausführen.
  • Wie bei Block 308 gezeigt kann das Verfahren Authentifizieren des Funktionscodes beinhalten. Zum Beispiel kann Controller 116 (1) auf der Grundlage von Funktionscode-Authentifizierungswert 126 (1) Funktionscode 136 (1) authentifizieren.
  • Wie bei Block 310 gezeigt kann das Verfahren beinhalten, Ausführung des Funktionscodes zu erlauben, z. B. nur dann, wenn der Funktionscode authentisch ist. Zum Beispiel kann Controller 116 (1) Host-Prozessor 104 (1) Funktionscode 136 (1) bereitstellen, z. B. nur dann, wenn Controller 116 (1) feststellt, dass Funktionscode 136 (1) authentisch ist.
  • Wie bei Block 306 gezeigt kann das Verfahren außerdem Authentifizieren des Aktualisierungscodes beinhalten. Zum Beispiel kann Controller 116 (1) auf der Grundlage von Aktualisierungscode-Authentifizierungswert 124 (1) Aktualisierungscode 132 (1) authentifizieren.
  • Obwohl die Erfindung nicht in dieser Hinsicht beschränkt ist, kann in einigen veranschaulichenden Ausführungen der Erfindung das Authentifizieren des Funktionscodes und/oder des Aktualisierungscodes während einer Zeitspanne, die mindestens teilweise mit einer Zeitspanne des Ausführens des Host-Bootcodes überlappt, ausgeführt werden.
  • Wie bei Block 309 gezeigt kann das Verfahren außerdem beinhalten, den Zugriff auf das geschützte Speichermodul zu sperren, z. B. wenn der Aktualisierungscode nicht für authentisch befunden wird. Zum Beispiel kann Controller 116 (1) den Zugriff auf Speicher 128 (1) sperren, z. B. durch Ausblenden einer Ausgabe von geschütztem Speichermodul 106 (1). Zum Beispiel kann Controller 116 (1) Host-Prozessor 104 (1) eine vordefinierte, z. B. konstante, Ausgabe bereitstellen, z. B. wenn Aktualisierungscode 132 (1) nicht authentifiziert ist.
  • Wie bei Block 304 gezeigt kann das Verfahren außerdem beinhalten, den Zugriff auf den von dem Host ausführbaren Code mindestens bis der Aktualisierungscode authentifiziert ist zu sperren, z. B. mindestens bis sowohl der Aktualisierungscode als auch der Funktionscode authentifiziert sind. Zum Beispiel kann, wie bei Block 305 gezeigt, das Verfahren beinhalten, dem Host-Prozessor lediglich vordefinierten Code bereitzustellen, der, wenn er von dem Host-Prozessor ausgeführt wird, dazu führen kann, dass der Host-Prozessor mindestens wartet, bis der Funktionscode authentifiziert ist. In einem Beispiel kann Controller 116 (1) Host-Prozessor 104 (1) irgendwelchen geeigneten Code, z. B. wie er aus dem Stand der Technik bekannt ist, mindestens bis Aktualisierungscode 132 (1) authentifiziert ist bereitstellen. In einem Beispiel kann Controller 116 (1) Host-Prozessor 104 (1) eine vordefinierte, z. B. konstante, Ausgabe bereitstellen, z. B. mindestens bis Aktualisierungscode 132 (1) authentifiziert ist.
  • Wie bei Block 312 gezeigt kann das Verfahren beinhalten, Aktualisieren des von dem Host ausführbaren Codes zu ermöglichen, z. B. wenn der Funktionscode nicht authentisch ist. Zum Beispiel kann Controller 116 (1) Host-Prozessor 104 (1) dazu veranlassen, Aktualisierungscode 132 (1) auszuführen, z. B. wenn Funktionscode 136 (1) nicht authentisch ist. Controller 116 (1) kann Host-Prozessor 104 (1) zum Beispiel einen Verzweigungsbefehl auf eine Adresse von Aktualisierungscode 132 (1) bereitstellen.
  • Es wird nun auf 4 Bezug genommen, die schematisch ein Verfahren zum selektiven Ermöglichen des Zugriffs auf und/oder der Ausführung von Code gemäß noch einer weiteren veranschaulichenden Ausführung der Erfindung illustriert. Obwohl die Erfindung nicht in dieser Hinsicht beschränkt ist, können eine oder mehrere Operationen des Verfahrens von 4 von Host 102 (1), Host-Prozessor 104 (1), geschütztem Modul 106 (1) und/oder Controller 116 (1) ausgeführt werden, z. B. um selektiv Zugriff auf und/oder Ausführung von von dem Host ausführbarem Code zu erlauben, z. B. einschließlich in geschütztem Modul 106 (1) verwahrtem Funktionscode 136 (1).
  • Wie bei Block 402 gezeigt kann das Verfahren Ausführen von Host-Bootcode beinhalten. Zum Beispiel kann Host-Prozessor 104 (1) Host-Bootcode 175 (1) ausführen, z. B. beim Booten von Host 102 (1). Das Verfahren kann außerdem Ausführen von Controller-Bootcode beinhalten. Zum Beispiel kann Controller 116 (1) Controller-Bootcode, der z. B. in Controller-Code 117 (1) beinhaltet ist, ausführen.
  • Wie bei Block 406 gezeigt kann das Verfahren Authentifizieren des Funktionscodes beinhalten. Zum Beispiel kann Controller 116 (1) auf der Grundlage von Funktionscode-Authentifizierungswert 126 (1) Funktionscode 136 (1) authentifizieren. Obwohl die Erfindung nicht in dieser Hinsicht beschränkt ist, kann in einigen veranschaulichenden Ausführungen der Erfindung das Authentifizieren des Funktionscodes während einer Zeitspanne, die mindestens teilweise mit einer Zeitspanne des Ausführens des Host-Bootcodes überlappt, ausgeführt werden.
  • Wie bei Block 404 gezeigt kann das Verfahren beinhalten, mindestens bis der Funktionscode authentifiziert ist lediglich eine Leseoperation auf den Funktionscode zu ermöglichen. Zum Beispiel kann Controller 116 (1) Host-Prozessor 104 (1) lediglich das Lesen von Funktionscode 136 (1) erlauben, z. B. mindestens bis Controller 116 ( 1) feststellt, dass Funktionscode 136 (1) authentisch ist.
  • Wie bei Block 408 gezeigt kann das Verfahren außerdem beinhalten, das Schreiben auf den Funktionscode zu erlauben, z. B. wenn der Funktionscode authentisch ist. Zum Beispiel kann Controller 116 (1) Host-Prozessor 104 (1) erlauben, eine Schreiboperation auf Funktionscode 136 (1) auszuführen, z. B. nur dann, wenn Funktionscode 136 (1) authentisch ist.
  • Wie bei Block 410 gezeigt kann das Verfahren außerdem beinhalten, den Zugriff auf das geschützte Speichermodul zu sperren, z. B. wenn der Funktionscode nicht für authentisch befunden wird. Zum Beispiel kann Controller 116 (1) den Zugriff auf Speicher 128 ( 1) sperren, z. B. durch Ausblenden einer Ausgabe von geschütztem Speichermodul 106 ( 1). Zum Beispiel kann Controller 116 (1) Host-Prozessor 104 (1) eine vordefinierte, z. B. konstante, Ausgabe bereitstellen, z. B. wenn Aktualisierungscode 132 (1) nicht für authentisch befunden wird.
  • Ausführungen der vorliegenden Erfindung können durch Software, durch Hardware oder durch irgendeine Kombination von Software und/oder Hardware implementiert sein, je nach dem, wie es für spezielle Anwendungen oder gemäß speziellen Gestaltungsanforderungen geeignet ist. Ausführungen der vorliegenden Erfindung können Einheiten und Untereinheiten, die voneinander getrennt oder miteinander kombiniert sein können, im Ganzen oder zum Teil beinhalten und können unter Verwendung von speziellen Mehrzweck- oder allgemeinen Prozessoren oder Geräten, wie sie aus dem Stand der Technik bekannt sind, implementiert sein. Manche Ausführungen der vorliegenden Erfindung können Puffer, Register und/oder Speichereinheiten zur vorübergehenden oder langfristigen Speicherung von Daten und/oder zur Vereinfachung des Betriebs einer bestimmten Ausführung beinhalten.
  • Während bestimmte Merkmale der Erfindung hier illustriert und beschrieben wurden, können Durchschnittsfachmännern viele Modifikationen, Substitutionen, Änderungen und Äquivalente einfallen. Es versteht sich daher, dass die angefügten Patentansprüche alle solchen Modifikationen und Änderungen, die in den wahren Geist der Erfindung fallen, abdecken sollen.
  • Zusammenfassung:
  • Einige veranschaulichende Ausführungen der Erfindung beinhalten ein Verfahren, Gerät und/oder System des selektiven Erlaubens des Zugriffs durch einen Host-Prozessor auf einen von einem Host ausführbaren Code. Ein Host-Gerät kann zum Beispiel einen Host-Prozessor beinhalten; und ein geschütztes Speichermodul, umfassend: einen Speicher zum Verwahren eines von dem Host ausführbaren Codes, der von dem Host-Prozessor auszuführen ist; und einen Speicher-Controller zum Authentifizieren des von dem Host ausführbaren Codes und zum selektiven Erlauben des Zugriffs durch den Host-Prozessor auf den von dem Host ausführbaren Code auf der Grundlage einer Authentizität des von dem Host ausführbaren Codes. Weitere Ausführungen werden beschrieben und beansprucht.

Claims (30)

  1. Ein Host-Gerät, umfassend: einen Host-Prozessor; und ein geschütztes Speichermodul, umfassend: einen Speicher zum Verwahren eines von dem Host ausführbaren Codes, der von besagtem Host-Prozessor auszuführen ist; und einen Speicher-Controller zum Authentifizieren besagten von dem Host ausführbaren Codes und zum selektiven Erlauben des Zugriffs durch besagten Host-Prozessor auf besagten von dem Host ausführbaren Code auf der Grundlage einer Authentizität besagten von dem Host ausführbaren Codes.
  2. Das Host-Gerät nach Anspruch 1, wobei besagter von dem Host ausführbarer Code einen Bootcode umfasst, der von besagtem Host-Prozessor während eines Boot-Prozesses auszuführen ist, und einen Anwendungscode, der von besagtem Host-Prozessor nach Ausführen besagten Bootcodes auszuführen ist; und wobei besagter Speicher-Controller besagten Bootcode authentifizieren soll und den Zugriff auf besagten sicheren Speicher sperren soll, wenn besagter Bootcode nicht authentifiziert ist.
  3. Das Host-Gerät nach Anspruch 2, wobei besagtes geschütztes Modul einen besagtem Bootcode entsprechenden Bootcode-Authentifizierungswert verwahrt und wobei besagter Speicher-Controller besagten Bootcode auf der Grundlage besagten Bootcode-Authentifizierungswertes authentifizieren soll.
  4. Das Host-Gerät nach Anspruch 2, wobei besagter Bootcode, wenn er von besagtem Host-Prozessor ausgeführt wird, dazu führt, besagten Controller dazu zu veranlassen, besagten Anwendungscode zu authentifizieren und dem Host-Prozessor nur dann zu erlauben, auf besagten Anwendungscode zuzugreifen, wenn besagter Anwendungscode authentisch ist.
  5. Das Host-Gerät nach Anspruch 4, wobei besagtes geschütztes Modul einen Gültigkeitsindikator verwahrt, wobei besagter Controller besagten Indikator setzt, um anzuzeigen, ob besagter Anwendungscode authentisch ist, und wobei besagter Bootcode, wenn er von besagtem Host-Prozessor ausgeführt wird, dazu führt, besagten Host-Prozessor dazu zu veranlassen, zu warten, bis besagter Controller besagten Indikator setzt.
  6. Das Host-Gerät nach Anspruch 4, wobei besagter von dem Host ausführbarer Code ferner einen Aktualisierungscode umfasst, der es erlaubt, besagten von dem Host ausführbaren Code zu aktualisieren; wobei besagter Controller besagten Aktualisierungscode authentifizieren soll und besagtem Host-Prozessor nur dann Zugriff auf besagten Aktualisierungscode erlauben soll, wenn besagter Aktualisierungscode authentisch ist; und wobei besagter Bootcode, wenn er von besagtem Host-Prozessor ausgeführt wird, dazu führt, besagten Host-Prozessor dazu zu veranlassen, besagten Aktualisierungscode auszuführen.
  7. Das Host-Gerät nach Anspruch 1, wobei besagter von dem Host ausführbarer Code einen Funktionscode umfasst, der von besagtem Host-Prozessor mindestens während eines Boot-Prozesses auszuführen ist; und wobei besagter Speicher-Controller besagten Funktionscode authentifizieren soll, den Zugriff auf besagten von dem Host ausführbaren Code mindestens bis besagter Funktionscode authentifiziert ist sperren soll sowie besagtem Host-Prozessor nur dann erlauben soll, auf besagten Funktionscode zuzugreifen, wenn besagter Funktionscode authentisch ist.
  8. Das Host-Gerät nach Anspruch 7, wobei besagtes geschütztes Modul einen besagtem Funktionscode entsprechenden Funktionscode-Authentifizierungswert verwahrt und wobei besagter Speicher-Controller besagten Funktionscode auf der Grundlage besagten Funktionscode-Authentifizierungswertes authentifizieren soll.
  9. Das Host-Gerät nach Anspruch 7, wobei besagter Speicher-Controller besagtem Host-Prozessor mindestens bis besagter Funktionscode authentifiziert ist lediglich einen vordefinierten Code bereitstellen soll; und wobei besagter vordefinierter Code, wenn er von besagtem Host-Prozessor ausgeführt wird, dazu führt, besagten Host-Prozessor dazu zu veranlassen, mindestens zu warten, bis besagter Funktionscode authentifiziert ist.
  10. Das Host-Gerät nach Anspruch 7, wobei besagter von dem Host ausführbarer Code einen Aktualisierungscode umfasst, der es erlaubt, besagten von dem Host ausführbaren Code zu aktualisieren; und wobei besagter Speicher-Controller besagten Aktualisierungscode authentifizieren soll und den Zugriff auf besagten von dem Host ausführbaren Code mindestens bis besagter Aktualisierungscode authentifiziert ist sperren soll.
  11. Das Host-Gerät nach Anspruch 10, wobei besagter Speicher-Controller besagten Host-Prozessor dazu veranlassen soll, besagten Aktualisierungscode auszuführen, wenn besagter Funktionscode nicht authentisch ist und besagter Aktualisierungscode authentisch ist.
  12. Das Host-Gerät nach Anspruch 10, wobei besagtes geschütztes Modul einen besagtem Aktualisierungscode entsprechenden Aktualisierungscode-Authentifizierungswert verwahrt und wobei besagter Speicher-Controller besagten Aktualisierungscode auf der Grundlage besagten Aktualisierungscode-Authentifizierungswertes authentifizieren soll.
  13. Das Host-Gerät nach Anspruch 1, wobei besagter von dem Host ausführbarer Code einen Funktionscode umfasst, der von besagtem Host-Prozessor mindestens während eines Boot-Prozesses auszuführen ist; und wobei besagter Speicher-Controller besagten Funktionscode authentifizieren soll und besagtem Host-Prozessor mindestens bis besagter Funktionscode authentifiziert ist lediglich das Ausführen einer Leseoperation auf besagten Funktionscode erlauben soll.
  14. Das Host-Gerät nach Anspruch 13, wobei besagter Speicher-Controller besagtem Host-Prozessor, wenn besagter Funktionscode nicht authentisch ist, lediglich einen vordefinierten Code bereitstellt.
  15. Das Host-Gerät nach Anspruch 13, wobei besagtes geschütztes Modul einen besagtem Funktionscode entsprechenden Funktionscode-Authentifizierungswert verwahrt und wobei besagter Speicher-Controller besagten Funktionscode auf der Grundlage besagten Funktionscode-Authentifizierungswertes authentifiziert.
  16. Ein Verfahren des selektiven Erlaubens des Zugriffs durch einen Host-Prozessor auf einen von dem Host ausführbaren Code, wobei besagtes Verfahren umfasst: Verwahren besagten von dem Host ausführbaren Codes in einem geschützten Speichermodul; Authentifizieren besagten von dem Host ausführbaren Codes; und selektives Erlauben des Zugriffs durch besagten Host-Prozessor auf besagten von dem Host ausführbaren Code auf der Grundlage einer Authentizität besagten von dem Host ausführbaren Codes.
  17. Das Verfahren nach Anspruch 16, wobei besagter von dem Host ausführbarer Code Bootcode umfasst, der von besagtem Host-Prozessor während eines Boot-Prozesses auszuführen ist, sowie Anwendungscode, der von besagtem Host-Prozessor nach dem Ausführen besagten Bootcodes auszuführen ist; und wobei besagtes Verfahren umfasst: Authentifizieren besagten Bootcodes; und Sperren des Zugriffs auf besagten sicheren Speicher, wenn besagter Bootcode nicht authentisch ist.
  18. Das Verfahren nach Anspruch 17, umfassend sicheres Verwahren eines besagten besagtem Bootcode entsprechenden Bootcode-Authentifizierungswertes in besagtem geschütztem Speichermodul, und wobei Authentifizieren besagten Bootcodes Authentifizieren besagten Bootcodes auf der Grundlage besagten Bootcode-Authentifizierungswertes umfasst.
  19. Das Verfahren nach Anspruch 17, umfassend: Authentifizieren besagten Anwendungscodes; und Erlauben des Zugriffs durch besagten Host-Prozessor auf besagten Anwendungscode nur dann, wenn besagter Anwendungscode authentisch ist.
  20. Das Verfahren von Anspruch 19, umfassend: Verwahren eines Gültigkeitsindikators in besagtem geschütztem Modul; Setzen besagten Indikators, um anzuzeigen, ob besagter Anwendungscode authentisch sein soll; und Veranlassen, dass besagter Host-Prozessor bis zu besagtem Setzen besagten Indikators wartet.
  21. Das Verfahren nach Anspruch 19, wobei besagter von dem Host ausführbarer Code ferner Aktualisierungscode umfasst, der es erlaubt, besagten von dem Host ausführbaren Code zu aktualisieren, und wobei besagtes Verfahren umfasst: Authentifizieren besagten Aktualisierungscodes; und Veranlassen, dass besagter Host-Prozessor besagten Aktualisierungscode ausführt, wenn besagter Anwendungscode nicht authentisch ist und besagter Aktualisierungscode authentisch ist.
  22. Das Verfahren nach Anspruch 16, wobei besagter von dem Host ausführbarer Code Funktionscode umfasst, der von besagtem Host-Prozessor mindestens während eines Boot-Prozesses auszuführen ist; und wobei besagtes Verfahren umfasst: Authentifizieren besagten Funktionscodes; Sperren des Zugriffs auf besagten von dem Host ausführbaren Code mindestens bis besagter Funktionscode authentifiziert ist; und Erlauben des Zugriffs durch besagten Host-Prozessor auf besagten Funktionscode nur dann, wenn besagter Funktionscode authentisch ist.
  23. Das Verfahren nach Anspruch 22, wobei Authentifizieren besagten Funktionscodes umfasst: Verwahren eines besagtem Funktionscode entsprechenden Funktionscode-Authentifizierungswertes in besagtem geschütztem Modul; und Authentifizieren besagten Funktionscodes auf der Grundlage besagten Funktionscode-Authentifizierungswertes.
  24. Das Verfahren nach Anspruch 22, umfassend, besagtem Host-Prozessor mindestens bis besagter Funktionscode authentifiziert ist lediglich einen vordefinierten Code bereitzustellen, wobei besagter vordefinierter Code, wenn er von besagtem Host-Prozessor ausgeführt wird, dazu führt, besagten Host-Prozessor dazu zu veranlassen, mindestens zu warten, bis besagter Funktionscode authentifiziert ist.
  25. Das Verfahren nach Anspruch 22, wobei besagter von dem Host ausführbarer Code Aktualisierungscode umfasst, der es erlaubt, besagten von dem Host ausführbaren Code zu aktualisieren, und wobei besagtes Verfahren umfasst: Authentifizieren besagten Aktualisierungscodes; und Sperren des Zugriffs auf besagten von dem Host ausführbaren Code mindestens bis besagter Aktualisierungscode authentifiziert ist.
  26. Das Verfahren nach Anspruch 25, umfassend, besagten Host-Prozessor dazu zu veranlassen, besagten Aktualisierungscode auszuführen, wenn besagter Funktionscode nicht authentisch ist und besagter Aktualisierungscode authentisch ist.
  27. Der Host-Prozessor nach Anspruch 25, wobei Authentifizieren besagten Aktualisierungscodes umfasst: Verwahren eines besagtem Aktualisierungscode entsprechenden Aktualisierungscode-Authentifizierungswertes in besagtem geschütztem Modul; und Authentifizieren besagten Aktualisierungscodes auf der Grundlage besagten Aktualisierungscode-Authentifizierungswertes.
  28. Das Verfahren nach Anspruch 16, wobei besagter von dem Host ausführbarer Code Funktionscode umfasst, der von besagtem Host-Prozessor mindestens während eines Boot-Prozesses auszuführen ist; und wobei besagtes Verfahren umfasst: Authentifizieren besagten Funktionscodes; und Erlauben lediglich des Ausführens einer Leseoperation durch besagten Host-Prozessor auf besagten Funktionscode mindestens bis besagter Funktionscode authentifiziert ist.
  29. Das Verfahren nach Anspruch 28, umfassend, besagtem Host-Prozessor, wenn besagter Funktionscode nicht authentisch ist, lediglich einen vordefinierten Code bereitzustellen.
  30. Das Verfahren nach Anspruch 28, wobei Authentifizieren besagten Funktionscodes umfasst: Verwahren eines besagtem Funktionscode entsprechenden Funktions-Authentifizierungswertes in besagtem geschütztem Modul; und Authentifizieren besagten Funktionscodes auf der Grundlage besagten Funktions-Authentifizierungswertes.
DE112006001793T 2005-06-22 2006-06-22 System, Gerät und Verfahren des selektiven Erlaubens des Zugriffs durch einen Host-Prozessor auf von einem Host ausführbaren Code Withdrawn DE112006001793T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US69257505P 2005-06-22 2005-06-22
US60/692,575 2005-06-22
PCT/IL2006/000739 WO2006137073A2 (en) 2005-06-22 2006-06-22 System, device, and method of selectively allowing a host processor to access host-executable code

Publications (1)

Publication Number Publication Date
DE112006001793T5 true DE112006001793T5 (de) 2008-05-08

Family

ID=37570842

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112006001793T Withdrawn DE112006001793T5 (de) 2005-06-22 2006-06-22 System, Gerät und Verfahren des selektiven Erlaubens des Zugriffs durch einen Host-Prozessor auf von einem Host ausführbaren Code

Country Status (3)

Country Link
US (1) US7467304B2 (de)
DE (1) DE112006001793T5 (de)
WO (1) WO2006137073A2 (de)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9219755B2 (en) 1996-11-08 2015-12-22 Finjan, Inc. Malicious mobile code runtime monitoring system and methods
US8079086B1 (en) 1997-11-06 2011-12-13 Finjan, Inc. Malicious mobile code runtime monitoring system and methods
US7058822B2 (en) 2000-03-30 2006-06-06 Finjan Software, Ltd. Malicious mobile code runtime monitoring system and methods
US8396208B2 (en) 2004-12-21 2013-03-12 Sandisk Technologies Inc. Memory system with in stream data encryption/decryption and error correction
US20060239450A1 (en) * 2004-12-21 2006-10-26 Michael Holtzman In stream data encryption / decryption and error correction method
JP4698285B2 (ja) * 2005-05-19 2011-06-08 富士通株式会社 情報処理装置、情報処理方法及びコンピュータプログラム
US8468361B2 (en) * 2005-09-21 2013-06-18 Broadcom Corporation System and method for securely provisioning and generating one-time-passwords in a remote device
US7835518B2 (en) * 2006-04-03 2010-11-16 Sandisk Corporation System and method for write failure recovery
US20070230690A1 (en) * 2006-04-03 2007-10-04 Reuven Elhamias System for write failure recovery
US7613891B2 (en) * 2006-05-04 2009-11-03 Intel Corporation Methods and apparatus for providing a read access control system associated with a flash device
US8572399B2 (en) * 2006-10-06 2013-10-29 Broadcom Corporation Method and system for two-stage security code reprogramming
US7987351B2 (en) * 2006-10-06 2011-07-26 Broadcom Corporation Method and system for enhanced boot protection
US8443181B2 (en) * 2008-09-30 2013-05-14 Qualcomm Incorporated Processor boot security device and methods thereof
US9183045B2 (en) 2010-12-21 2015-11-10 Mo-Dv, Inc. System and method for data collection and exchange with protected memory devices
US8914634B2 (en) 2012-04-10 2014-12-16 Western Digital Technologies, Inc. Digital rights management system transfer of content and distribution
US9214184B2 (en) 2012-04-10 2015-12-15 Western Digital Technologies, Inc. Digital rights management system, devices, and methods for binding content to an intelligent storage device
US9171170B2 (en) * 2012-08-17 2015-10-27 Broadcom Corporation Data and key separation using a secure central processing unit
US10733288B2 (en) * 2013-04-23 2020-08-04 Hewlett-Packard Development Company, L.P. Verifying controller code and system boot code
EP3040896A1 (de) * 2014-12-30 2016-07-06 Gemalto Sa Sicheres Element
KR102336033B1 (ko) 2015-04-22 2021-12-08 에스케이하이닉스 주식회사 매립금속게이트구조를 구비한 반도체장치 및 그 제조 방법, 그를 구비한 메모리셀, 그를 구비한 전자장치
CN108171041B (zh) * 2016-12-07 2020-03-27 澜起科技股份有限公司 用于对访问存储器的应用程序进行身份验证的方法和装置
TW201833421A (zh) * 2017-03-08 2018-09-16 林 招慶 可更新韌體的電子鎖系統

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4683532A (en) * 1984-12-03 1987-07-28 Honeywell Inc. Real-time software monitor and write protect controller
GB9012949D0 (en) * 1989-08-25 1990-08-01 Ibm An apparatus and method for loading bios from a diskette in a personal computer system
FR2666671B1 (fr) * 1990-09-12 1994-08-05 Gemplus Card Int Procede de gestion d'un programme d'application charge dans un support a microcircuit.
US6401208B2 (en) * 1998-07-17 2002-06-04 Intel Corporation Method for BIOS authentication prior to BIOS execution
US6256676B1 (en) * 1998-11-18 2001-07-03 Saga Software, Inc. Agent-adapter architecture for use in enterprise application integration systems
US7685436B2 (en) * 2003-10-02 2010-03-23 Itt Manufacturing Enterprises, Inc. System and method for a secure I/O interface
EP1659472A1 (de) * 2004-11-22 2006-05-24 Research In Motion Limited Verfahren und Vorrichtung zur Authentifizierung von Software
WO2006082994A2 (en) * 2005-02-07 2006-08-10 Sony Computer Entertainment Inc. Methods and apparatus for facilitating a secure session between a processor and an external device

Also Published As

Publication number Publication date
US7467304B2 (en) 2008-12-16
WO2006137073A2 (en) 2006-12-28
US20060294513A1 (en) 2006-12-28
WO2006137073A3 (en) 2007-11-15

Similar Documents

Publication Publication Date Title
DE112006001793T5 (de) System, Gerät und Verfahren des selektiven Erlaubens des Zugriffs durch einen Host-Prozessor auf von einem Host ausführbaren Code
US11809335B2 (en) Apparatuses and methods for securing an access protection scheme
US9317450B2 (en) Security protection for memory content of processor main memory
DE102008011925B4 (de) Sicheres Initialisieren von Computersystemen
DE102006028513B4 (de) Eingabevorrichtung für biometrische Signale sowie Computersystem mit einer solchen
DE112006001933B4 (de) Stillegen eines Prozessorbusagenten
DE102009013384A1 (de) System und Verfahren zur Bereitstellung einer sicheren Anwendungsfragmentierungsumgebung
EP3097507A1 (de) Schlüsselextraktion während eines sicheren startvorgangs
DE112006001769T5 (de) System, Gerät und Verfahren zum selektiven Betreiben eines mit einem Token verbundenen Hosts
US6912633B2 (en) Enhanced memory management for portable devices
DE112011105687T5 (de) Verwendung eines Option-ROM-Speichers
CN108073528A (zh) 非易失性存储器中的存储
WO2009105055A1 (en) Memory area protection system and methods
DE102013112897B4 (de) Nichtflüchtiger Speicher und Verfahren zum Betreiben eines nichtflüchtigen Speichers
EP2564389B1 (de) Speichermodul zur gleichzeitigen bereitstellung wenigstens eines sicheren und wenigstens eines unsicheren speicherbereichs
CN109472172B (zh) 用于防止来自存储器的未授权数据访问的方法
US10824710B2 (en) Method and device for authenticating application that requests access to memory
DE112019007230T5 (de) Multimodus-Geschützter-Speicher
EP3159821B1 (de) Prozessor-system mit applet security settings
US11113399B2 (en) Electronic apparatus and control method of electronic apparatus
DE102019121577A1 (de) Mindern von seitenkanalattacken unter verwendung von executable-only-speicher (xom)
CN110971741A (zh) 锁屏密码的管理方法、管理装置及终端
DE102021126509B4 (de) Tragbare Chipvorrichtung und Verfahren zum Ausführen eines Softwaremodul-Updates in einer tragbaren Chipvorrichtung
CN111968693B (zh) 一种mcu及mcu调试接口控制方法
US20210081333A1 (en) Protection system and method for a memory

Legal Events

Date Code Title Description
8110 Request for examination paragraph 44
8125 Change of the main classification

Ipc: G06F 21/22 AFI20060622BHDE

R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06F0021220000

Ipc: G06F0021440000

R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06F0021220000

Ipc: G06F0021440000

Effective date: 20130115

R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee