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 PDFInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/575—Secure boot
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/572—Secure firmware programming, e.g. of basic input output system [BIOS]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
- Stored Programmes (AREA)
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.
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, - 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 System100 gemäß einigen veranschaulichenden Ausführungen der Erfindung illustriert. - Gemäß einigen veranschaulichenden Ausführungen der Erfindung kann System
100 einen Host102 beinhalten. Obwohl die vorliegende Erfindung nicht in dieser Hinsicht beschränkt ist, kann Host102 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 Host102 einen Mobilfunk-Handapparat beinhalten oder sein. Wahlweise kann Host102 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-Prozessor104 und ein geschütztes Speichermodul106 , wie sie nachfolgend im Detail beschrieben sind, beinhalten. Host102 kann außerdem eine Eingabe108 , eine Ausgabe110 , einen Speicher173 und/oder eine Netzwerkverbindung112 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 Host102 verbunden oder in diesem beinhaltet sein. Zum Beispiel kann Host102 ein Mobiltelefon oder einen Mobilfunk-Handapparat beinhalten oder sein; und Modul106 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. Eingabe108 kann zum Beispiel eine Tastatur, eine Maus, ein Touch-Pad oder andere geeignete Zeigegeräte oder Eingabegeräte einschließen. Ausgabe110 kann zum Beispiel eine Flüssigkristallanzeige (LCD) oder irgendeinen anderen geeigneten Bildschirm oder Anzeige einschließen. Netzwerkverbindung112 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 Host102 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 Netzwerkverbindung112 zum Beispiel mindestens eine Antenne114 beinhalten, um Signale zu/von dem Kommunikationsnetzwerk zu übertragen und/oder zu empfangen. Obwohl die Erfindung nicht in dieser Hinsicht beschränkt ist, kann System100 außerdem zum Beispiel irgendein geeignetes Kommunikationsgerät150 , z. B. einen weiteren Host, beinhalten, um mit Host102 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. Speicher173 kann zum Beispiel von dem Host verwahrten Bootcode175 verwahren, der von Host-Prozessor104 während eines Boot-Prozesses von Host102 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 Modul106 zu verhindern; um einen Versuch zu verhindern, auf irgendeinen Teil des Inhalts von Modul106 zuzugreifen; um einen Versuch zu verhindern, den Inhalt von Modul106 zum Teil oder im Ganzen zu manipulieren oder zu verändern; und/oder um einen Versuch zu verhindern, den Betrieb von Modul106 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 Speicher128 und einen Speicher-Controller116 , der in der Lage ist, selektiv Zugriff auf Speicher128 zu erlauben, beinhalten, wie nachstehend im Detail beschrieben. Zum Beispiel kann Controller116 Host-Prozessor104 selektiv Zugriff auf Speicher128 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. Speicher128 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-Prozessor104 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 Aktualisierungscodes132 , eines geschützten, von dem Host ausführbaren Anwendungscodes134 sowie eines geschützten, von dem Host ausführbaren Funktionscodes136 beinhalten, wie sie nachstehend im Detail beschrieben sind. - Gemäß einigen veranschaulichenden Ausführungen der Erfindung kann Bootcode
130 Code beinhalten, der von Host-Prozessor104 während des Boot-Prozesses auszuführen ist. Obwohl die Erfindung nicht in dieser Hinsicht beschränkt ist, kann Host-Prozessor104 Host-Bootcode175 am Anfang des Boot-Prozesses von Host102 ausführen, z. B. bevor er irgendwelchen anderen Code ausführt. Host-Bootcode175 kann, z. B. am Ende von Host-Bootcode175 , eine Anweisung beinhalten, die dazu führt, dass Host-Prozessor104 versucht, auf Bootcode130 zuzugreifen, z. B. direkt nach dem Ausführen von Host-Bootcode175 . Zum Beispiel kann Bootcode130 an einer vordefinierten Bootcode-Adresse von Speicher130 verwahrt werden, und Host-Bootcode175 kann, z. B. am Ende von Host-Bootcode175 , einen Befehl beinhalten, an der vordefinierten Bootadresse von Speicher130 fortzufahren oder dorthin zu verzweigen. Obwohl die Erfindung nicht in dieser Hinsicht beschränkt ist, kann Controller116 , zum Beispiel während des Boot-Prozesses, lediglich das Ausführen einer Leseoperation auf Bootcode130 erlauben, z. B. wie nachstehend beschrieben. - Gemäß einigen veranschaulichenden Ausführungen der Erfindung kann Anwendungscode
134 Code beinhalten, der von Host-Prozessor104 nach Ausführen von Bootcode130 auszuführen ist. Anwendungscode134 kann dazu ausgelegt sein, während des Boot-Prozesses und/oder während eines auf den Boot-Prozess folgenden Betriebsmodus ausgeführt zu werden. Anwendungscode134 kann irgendeinen geeigneten Code beinhalten und z. B. zu irgendeinem geeigneten, von Host-Prozessor104 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-Prozessor104 ausgeführt wird, dazu führen kann, die Aktualisierung des Inhalts von Speichermodul106 zu ermöglichen, z. B. wie nachstehend im Detail beschrieben. Zum Beispiel kann Aktualisierungscode132 , wenn er von Host-Prozessor104 ausgeführt wird, dazu führen, Host-Prozessor104 dazu zu veranlassen, Bootcode130 , Aktualisierungscode132 , Anwendungscode134 und/oder Funktionscode136 auf der Grundlage einer Aktualisierungsanforderung142 , die zu Beispiel von einem Aktualisierer140 empfangen werden kann, zu aktualisieren. Aktualisierungscode132 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-Prozessor104 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 Funktionscode136 mindestens einen Teil von Bootcode130 , Anwendungscode134 und/oder irgendeinem anderen geeigneten Code beinhalten. - Gemäß einigen veranschaulichenden Ausführungen der Erfindung kann Speichermodul
106 außerdem mindestens einen Bootcode130 entsprechenden Bootcode-Authentifizierungswert120 beinhalten; mindestens einen Aktualisierungscode132 entsprechenden Aktualisierungscode-Authentifizierungswert; mindestens einen Anwendungscode134 entsprechenden Anwendungscode-Authentifizierungswert122 ; mindestens einen Aktualisierungscode132 entsprechenden Aktualisierungscode-Authentifizierungswert124 ; und/oder mindestens einen Funktionscode136 entsprechenden Funktionscode-Authentifizierungswert126 . Zum Beispiel kann Bootcode-Authentifizierungswert120 einen Authentifizierungswert beinhalten, der einer Version von Bootcode130 entspricht, der vertraut wird; Anwendungscode-Authentifizierungswert122 kann einen Authentifizierungswert beinhalten, der einer Version von Anwendungscode134 entspricht, der vertraut wird; Aktualisierungs-Authentifizierungswert124 kann einen Authentifizierungswert beinhalten, der einer Version von Aktualisierungscode136 entspricht, der vertraut wird; und/oder Funktionscode-Authentifizierungswert126 kann einen Authentifizierungswert beinhalten, der einer Version von Funktionscode136 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 Host102 und/oder irgendein anderes Element oder Komponente von System100 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 Host102 und/oder irgendein anderes Element oder Komponente von System100 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/oder4 beschrieben, dazu führen, dass Host102 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 Speichermodul106 bereitgestellt sein und/oder in Speicher128 durch irgendeine geeignete Anwendung, Einheit oder Modul, z. B. wenn Host102 in der vertrauenswürdigen Betriebsumgebung arbeitet, und/oder durch einen sich durch das Ausführen von Aktualisierungscode132 ergebenden Aktualisierungsprozess gespeichert sein. - Gemäß einigen veranschaulichenden Ausführungen der Erfindung kann Controller
116 Bootcode130 auf der Grundlage von Bootcode-Authentifizierungswert120 authentifizieren. Zum Beispiel kann Controller116 einen Boot-Authentifizierungswert auf der Grundlage von Bootcode130 berechnen („der berechnete Boot-Authentifizierungswert”) und den berechneten Boot-Authentifizierungswert mit Boot-Authentifizierungswert120 vergleichen. Controller116 kann feststellen, dass Bootcode130 authentisch ist, zum Beispiel wenn der berechnete Boot-Authentifizierungswert mit Wert120 übereinstimmt. Controller116 kann Anwendungscode134 auf der Grundlage von Anwendungscode- Authentifizierungswert122 authentifizieren. Zum Beispiel kann Controller116 einen Anwendungs-Authentifizierungswert auf der Grundlage von Anwendungscode134 berechnen („der berechnete Anwendungs-Authentifizierungswert”) und den berechneten Anwendungs-Authentifizierungswert mit Anwendungs-Authentifizierungswert122 vergleichen. Controller116 kann feststellen, dass Anwendungscode134 authentisch ist, zum Beispiel wenn der berechnete Anwendungs-Authentifizierungswert mit Wert122 übereinstimmt. Controller116 kann Funktionscode136 auf der Grundlage von Funktionscode-Authentifizierungswert126 authentifizieren. Zum Beispiel kann Controller116 einen Funktions-Authentifizierungswert auf der Grundlage von Anwendungscode136 berechnen („der berechnete Funktions-Authentifizierungswert”) und den berechneten Funktions-Authentifizierungswert mit Funktions-Authentifizierungswert126 vergleichen. Controller116 kann feststellen, dass Funktionscode136 authentisch ist, zum Beispiel wenn der berechnete Funktions-Authentifizierungswert mit Wert126 übereinstimmt. Controller116 kann Aktualisierungscode132 auf der Grundlage von Aktualisierungscode-Authentifizierungswert124 authentifizieren. Zum Beispiel kann Controller116 einen Aktualisierungs-Authentifizierungswert auf der Grundlage von Aktualisierungscode132 berechnen („der berechnete Aktualisierungs-Authentifizierungswert”) und den berechneten Aktualisierungs-Authentifizierungswert mit Aktualisierungs-Authentifizierungswert124 vergleichen. Controller116 kann feststellen, dass Aktualisierungscode132 authentisch ist, zum Beispiel wenn der berechnete Aktualisierungs-Authentifizierungswert mit Wert124 übereinstimmt. - Gemäß einigen veranschaulichenden Ausführungen der Erfindung können Authentifizierungswerte
120 ,122 ,124 und/oder126 irgendwelche geeigneten Authentifizierungswerte beinhalten. Obwohl die Erfindung nicht in dieser Hinsicht beschränkt ist, können ein oder mehrere Authentifizierungswerte120 ,122 ,124 und/oder126 zum Beispiel einen Hash-Wert beinhalten. Zum Beispiel kann Wert120 einen auf der Grundlage des Bootcodes, dem vertraut wird, berechneten Hash-Wert beinhalten; Wert122 kann einen auf der Grundlage des Anwendungscodes, dem vertraut wird, berechneten Hash-Wert beinhalten; Wert124 kann einen auf der Grundlage des Aktualisierungscodes, dem vertraut wird, berechneten Hash-Wert beinhalten; und/oder Wert126 kann einen auf der Grundlage des Funktionscodes, dem vertraut wird, berechneten Hash-Wert beinhalten. Entsprechend kann Controller116 einen Hash-Wert auf der Grundlage von Bootcode130 , einen Hash-Wert auf der Grundlage von Anwendungscode134 , einen Hash-Wert auf der Grundlage von Aktualisierungscode132 und/oder einen Hash-Wert auf der Grundlage von Funktionscode136 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ültigkeitsindikator118 beinhalten, um anzuzeigen, ob Anwendungscode134 für authentisch befunden wird. Controller116 kann einen Wert von Indikator118 zum Beispiel auf der Grundlage der Authentizität von Code134 setzen. Obwohl die Erfindung nicht in dieser Hinsicht beschränkt ist, kann Indikator118 zum Beispiel durch einen an einer vordefinierten Indikatoradresse von Speicher128 oder in einem mit Controller116 assoziierten Controller-Speicher (nicht gezeigt) verwahrten Wert implementiert sein. Zum Beispiel kann Controller116 Indikator118 so setzen, dass er einen ersten Wert, z. B. null, hat, der anzeigt, dass Code134 nicht für authentisch befunden wird; oder einen zweiten Wert, z. B. eins, der anzeigt, dass Code134 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-Prozessor104 ausgeführt wird, dazu führen, Host-Prozessor104 dazu zu veranlassen, mindestens zu warten, bis der Wert von Indikator118 gesetzt ist; und/oder den Wert von Indikator118 zu lesen, z. B. wie nachstehend mit Bezug auf2 beschrieben. Zum Beispiel kann Bootcode130 , wenn er von Host-Prozessor104 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 , Authentifizierungswert120 , Authentifizierungswert122 , Authentifizierungswert124 und/oder Authentifizierungswert126 in Speicher128 verwahrt werden. In anderen Ausführungen der Erfindung können Indikator118 , Authentifizierungswert120 , Authentifizierungswert122 , Authentifizierungswert124 und/oder Authentifizierungswert126 sicher von Modul106 , Controller116 und/oder irgendeinem anderen geeigneten Element oder Einheit von Modul106 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 Controller116 Controller-Code117 verwahren, einschließlich Code, der, wenn er von Controller116 ausgeführt wird, dazu führen kann, dass Controller116 eine oder mehrere der hierin beschriebenen Operationen ausführt. In anderen Ausführungen der Erfindung kann Code117 sicher von Modul106 , Speicher128 und/oder irgendeinem anderen geeigneten Element oder Einheit von Modul106 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-Prozessor104 selektiv einen vordefinierten Code bereitzustellen, der, wenn er von Host-Gerät104 ausgeführt wird, dazu führen kann, dass Host-Gerät104 wartet, solange der vordefinierte Code Host-Prozessor104 bereitgestellt wird. Zum Beispiel kann Controller116 Host-Prozessor104 auf der Grundlage einer Authentizität von Codes130 ,132 ,134 und/oder136 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 Controller116 Host-Prozessor104 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 von2 von Host102 (1 ), Host-Prozessor104 (1 ), geschütztem Modul106 (1 ) und/oder Controller116 (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 Modul106 (1 ) verwahrtem geschütztem Bootcode130 (1 ) und Anwendungscode134 (1 ). - Wie bei Block
202 gezeigt kann das Verfahren Ausführen von von dem Host verwahrtem Bootcode beinhalten. Zum Beispiel kann Host-Prozessor104 (1 ) Host-Bootcode175 (1 ) ausführen, z. B. beim Booten von Host102 (1 ) und/oder vor dem Ausführen irgendeiner anderen Operation. Das Verfahren kann außerdem Ausführen von Controller-Bootcode beinhalten. Zum Beispiel kann Controller116 (1 ) Controller-Bootcode, der z. B. in Controller-Code117 (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 Block204 beschrieben. Zum Beispiel kann Controller116 (1 ) Host-Prozessor104 (1 ) für mindestens Bootcode130 (1 ) lediglich Ausführen einer Leseoperation erlauben, z. B. bis Bootcode130 (1 ) authentifiziert ist. - Wie bei Block
204 gezeigt kann das Verfahren außerdem Authentifizieren des geschützten Bootcodes beinhalten. Zum Beispiel kann Controller116 (1 ) auf der Grundlage von Boot-Authentifizierungswert120 (1 ) Bootcode130 (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 Controller116 (1 ) den Zugriff auf Speicher128 (1 ) sperren, z. B. durch Ausblenden einer Ausgabe von geschütztem Speichermodul106 (1 ). Zum Beispiel kann Controller116 (1 ) Host-Prozessor104 (1 ) eine vordefinierte, z. B. konstante, Ausgabe bereitstellen, z. B. wenn Bootcode130 (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 Bootcode130 (1 ) Code beinhalten, der, wenn er von Host-Prozessor104 (1 ) ausgeführt wird, dazu führen kann, Controller116 (1 ) dazu zu veranlassen, Anwendungscode134 (1 ) zu authentifizieren. In einem weiteren Beispiel kann Controller116 (1 ), z. B. unabhängig von irgendeiner von Host-Prozessor104 (1 ) ausgeführten Operation, nach dem Authentifizieren von Bootcode130 Anwendungscode134 (1 ) authentifizieren. Controller116 (1 ) kann zum Beispiel auf der Grundlage von Anwendungscode-Authentifizierungswert122 (1 ) Anwendungscode134 (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 Controller116 (1 ) auf der Grundlage der Authentizität von Anwendungscode134 (1 ) Indikator118 (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 Bootcode130 (1 ), wenn er von Host-Prozessor104 (1 ) ausgeführt wird, dazu führen, Host-Prozessor104 (1 ) dazu zu veranlassen, mindestens zu warten, bis der Wert von Indikator118 (1 ) gesetzt ist. - Wie bei Block
213 und/oder219 gezeigt kann das Verfahren außerdem Authentifizieren des Aktualisierungscodes beinhalten. Zum Beispiel kann Controller116 (1 ) auf der Grundlage von Aktualisierungscode-Authentifizierungswert124 (1 ) Aktualisierungscode132 (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 Bootcode130 (1 ), wenn er von Host-Prozessor104 (1 ) ausgeführt wird, dazu führen, dass Host-Prozessor104 (1 ) Aktualisierungscode132 (1 ) ausführt, z. B. wenn Gültigkeitsindikator118 (1 ) anzeigt, dass Anwendungscode134 (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 Bootcode130 (1 ), wenn er von Host-Prozessor104 (1 ) ausgeführt wird, dazu führen, dass Host-Prozessor104 (1 ) die Warteoperation beendet und/oder versucht, Anwendungscode134 (1 ) auszuführen, z. B. wenn Gültigkeitsindikator118 (1 ) anzeigt, dass Anwendungscode134 (1 ) authentisch ist. Controller116 (1 ) kann Host-Prozessor104 (1 ) erlauben, auf Anwendungscode134 (1 ) zuzugreifen und/oder ihn auszuführen, z. B., wenn sowohl Anwendungscode134 (1 ) als auch Aktualisierungscode132 (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 Controller116 (1 ) Host-Prozessor104 (1 ) erlauben, sowohl Lese- als auch Schreiboperationen auf Codes130 ,132 ,134 und/oder136 (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 von3 von Host102 (1 ), Host-Prozessor104 (1 ), geschütztem Modul106 (1 ) und/oder Controller116 (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 Modul106 (1 ) verwahrtem Funktionscode136 (1 ) und Aktualisierungscode132 (1 ). - Wie bei Block
302 gezeigt kann das Verfahren Ausführen von Host-Bootcode beinhalten. Zum Beispiel kann Host-Prozessor104 (1 ) Host-Bootcode175 (1 ) ausführen, z. B. beim Booten von Host102 (1 ). Das Verfahren kann außerdem Ausführen von Controller-Bootcode beinhalten. Zum Beispiel kann Controller116 (1 ) Controller-Bootcode, der z. B. in Controller-Code117 (1 ) beinhaltet ist, ausführen. - Wie bei Block
308 gezeigt kann das Verfahren Authentifizieren des Funktionscodes beinhalten. Zum Beispiel kann Controller116 (1 ) auf der Grundlage von Funktionscode-Authentifizierungswert126 (1 ) Funktionscode136 (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 Controller116 (1 ) Host-Prozessor104 (1 ) Funktionscode136 (1 ) bereitstellen, z. B. nur dann, wenn Controller116 (1 ) feststellt, dass Funktionscode136 (1 ) authentisch ist. - Wie bei Block
306 gezeigt kann das Verfahren außerdem Authentifizieren des Aktualisierungscodes beinhalten. Zum Beispiel kann Controller116 (1 ) auf der Grundlage von Aktualisierungscode-Authentifizierungswert124 (1 ) Aktualisierungscode132 (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 Controller116 (1 ) den Zugriff auf Speicher128 (1 ) sperren, z. B. durch Ausblenden einer Ausgabe von geschütztem Speichermodul106 (1 ). Zum Beispiel kann Controller116 (1 ) Host-Prozessor104 (1 ) eine vordefinierte, z. B. konstante, Ausgabe bereitstellen, z. B. wenn Aktualisierungscode132 (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 Block305 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 Controller116 (1 ) Host-Prozessor104 (1 ) irgendwelchen geeigneten Code, z. B. wie er aus dem Stand der Technik bekannt ist, mindestens bis Aktualisierungscode132 (1 ) authentifiziert ist bereitstellen. In einem Beispiel kann Controller116 (1 ) Host-Prozessor104 (1 ) eine vordefinierte, z. B. konstante, Ausgabe bereitstellen, z. B. mindestens bis Aktualisierungscode132 (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 Controller116 (1 ) Host-Prozessor104 (1 ) dazu veranlassen, Aktualisierungscode132 (1 ) auszuführen, z. B. wenn Funktionscode136 (1 ) nicht authentisch ist. Controller116 (1 ) kann Host-Prozessor104 (1 ) zum Beispiel einen Verzweigungsbefehl auf eine Adresse von Aktualisierungscode132 (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 von4 von Host102 (1 ), Host-Prozessor104 (1 ), geschütztem Modul106 (1 ) und/oder Controller116 (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 Modul106 (1 ) verwahrtem Funktionscode136 (1 ). - Wie bei Block
402 gezeigt kann das Verfahren Ausführen von Host-Bootcode beinhalten. Zum Beispiel kann Host-Prozessor104 (1 ) Host-Bootcode175 (1 ) ausführen, z. B. beim Booten von Host102 (1 ). Das Verfahren kann außerdem Ausführen von Controller-Bootcode beinhalten. Zum Beispiel kann Controller116 (1 ) Controller-Bootcode, der z. B. in Controller-Code117 (1 ) beinhaltet ist, ausführen. - Wie bei Block
406 gezeigt kann das Verfahren Authentifizieren des Funktionscodes beinhalten. Zum Beispiel kann Controller116 (1 ) auf der Grundlage von Funktionscode-Authentifizierungswert126 (1 ) Funktionscode136 (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 Controller116 (1 ) Host-Prozessor104 (1 ) lediglich das Lesen von Funktionscode136 (1 ) erlauben, z. B. mindestens bis Controller116 (1 ) feststellt, dass Funktionscode136 (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 Controller116 (1 ) Host-Prozessor104 (1 ) erlauben, eine Schreiboperation auf Funktionscode136 (1 ) auszuführen, z. B. nur dann, wenn Funktionscode136 (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 Controller116 (1 ) den Zugriff auf Speicher128 (1 ) sperren, z. B. durch Ausblenden einer Ausgabe von geschütztem Speichermodul106 (1 ). Zum Beispiel kann Controller116 (1 ) Host-Prozessor104 (1 ) eine vordefinierte, z. B. konstante, Ausgabe bereitstellen, z. B. wenn Aktualisierungscode132 (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)
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- Das Verfahren nach Anspruch 28, umfassend, besagtem Host-Prozessor, wenn besagter Funktionscode nicht authentisch ist, lediglich einen vordefinierten Code bereitzustellen.
- 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.
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)
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 |
US20070230690A1 (en) * | 2006-04-03 | 2007-10-04 | Reuven Elhamias | System for write failure recovery |
US7835518B2 (en) * | 2006-04-03 | 2010-11-16 | Sandisk Corporation | System and method 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 |
US8831217B2 (en) | 2012-04-10 | 2014-09-09 | Western Digital Technologies, Inc. | Digital rights management system and methods for accessing content from an intelligent storage |
US9171170B2 (en) * | 2012-08-17 | 2015-10-27 | Broadcom Corporation | Data and key separation using a secure central processing unit |
CN105144185B (zh) * | 2013-04-23 | 2018-06-05 | 惠普发展公司,有限责任合伙企业 | 验证控制器代码和系统启动代码 |
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)
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 |
JP4522372B2 (ja) * | 2005-02-07 | 2010-08-11 | 株式会社ソニー・コンピュータエンタテインメント | プロセッサと外部のデバイスとの間にセキュアセッションを実現する方法および装置 |
-
2006
- 2006-06-22 WO PCT/IL2006/000739 patent/WO2006137073A2/en active Application Filing
- 2006-06-22 US US11/472,539 patent/US7467304B2/en active Active
- 2006-06-22 DE DE112006001793T patent/DE112006001793T5/de not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
WO2006137073A2 (en) | 2006-12-28 |
US7467304B2 (en) | 2008-12-16 |
WO2006137073A3 (en) | 2007-11-15 |
US20060294513A1 (en) | 2006-12-28 |
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 | |
US20240037045A1 (en) | Apparatuses and methods for securing an access protection scheme | |
DE102009013384B4 (de) | System und Verfahren zur Bereitstellung einer sicheren Anwendungsfragmentierungsumgebung | |
US9317450B2 (en) | Security protection for memory content of processor main memory | |
DE112006001933B4 (de) | Stillegen eines Prozessorbusagenten | |
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 | |
CN109472172B (zh) | 用于防止来自存储器的未授权数据访问的方法 | |
DE112011105687T5 (de) | Verwendung eines Option-ROM-Speichers | |
DE102013112897A1 (de) | Nichtflüchtiger Speicher und Verfahren zum Betreiben eines nichtflüchtigen Speichers | |
CN108073528A (zh) | 非易失性存储器中的存储 | |
US10824710B2 (en) | Method and device for authenticating application that requests access to memory | |
DE112019007230T5 (de) | Multimodus-Geschützter-Speicher | |
EP2637173A2 (de) | Speichermodul zur gleichzeitigen Bereitstellung wenigstens eines sicheren und wenigstens eines unsicheren Speicherbereichs | |
CN110908597B (zh) | 适应性锁定范围管理的方法、数据存储装置及其控制器 | |
CN109697172B (zh) | 用于暂存存储内容的存储器装置和方法 | |
EP3159821B1 (de) | Prozessor-system mit applet security settings | |
US11113399B2 (en) | Electronic apparatus and control method of electronic apparatus | |
US10732955B2 (en) | Electronic apparatus and information processing system | |
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调试接口控制方法 | |
CN112486862A (zh) | 用于存储器的保护系统和方法 |
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 |