DE19781829C2 - Verfahren und Vorrichtung zum Schützen eines Flash-Speichers - Google Patents
Verfahren und Vorrichtung zum Schützen eines Flash-SpeichersInfo
- Publication number
- DE19781829C2 DE19781829C2 DE19781829A DE19781829A DE19781829C2 DE 19781829 C2 DE19781829 C2 DE 19781829C2 DE 19781829 A DE19781829 A DE 19781829A DE 19781829 A DE19781829 A DE 19781829A DE 19781829 C2 DE19781829 C2 DE 19781829C2
- Authority
- DE
- Germany
- Prior art keywords
- memory
- flash memory
- register
- logic gate
- access
- 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.)
- Expired - Lifetime
Links
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/22—Safety or protection circuits preventing unauthorised or accidental access to memory cells
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1408—Protection against unauthorised use of memory or access to memory by using cryptography
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1416—Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
- G06F12/1425—Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
- G06F12/1433—Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block for a module or a part of a module
-
- 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]
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
- G11C16/102—External programming circuits, e.g. EPROM programmers; In-circuit programming or reprogramming; EPROM emulators
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
- G11C16/102—External programming circuits, e.g. EPROM programmers; In-circuit programming or reprogramming; EPROM emulators
- G11C16/105—Circuits or methods for updating contents of nonvolatile memory, especially with 'security' features to ensure reliable replacement, i.e. preventing that old data is lost before new data is reliably written
Description
Die vorliegende Erfindung bezieht sich auf ein Verfahren
und eine Vorrichtung zum Schützen eines Flash-Speichers in
einem Computersystem vor unbeabsichtigten oder nicht autori
sierten Modifikationen.
Gegenwärtig beginnt ein PC, wenn er erstmalig initiali
siert oder zurückgesetzt wird, die Ausführung eines Basis-
Eingabe/Ausgabe-Systemprogramms (BIOS) an einem vorgegebenen
Speicherplatz. Das BIOS führt zunächst einen Einschalt-
Selbsttest (POST) aus, bei welchem sämtliche System-Hard
ware-Einheiten (wie beispielsweise der Interrupt-Controller,
der DMA-Controller und Zeitgeber/Zähler) getestet und für
den normalen Betrieb programmiert werden. Nachdem der POST
abgeschlossen ist, sucht das BIOS einen weiteren vorgegebe
nen Speicherbereich nach BIOS-Erweiterungssoftware ab.
BIOS-Erweiterungssoftware kann auf Hardware-Erweite
rungs-Einsteckkarten vorhanden sein. Typischerweise haben
Graphikadapterkarten, LAN-Adapterkarten und andere Hardwa
reerweiterungs-Einsteckkarten BIOS-Erweiterungssoftware.
BIOS-Erweiterungssoftware gestattet es der Erweiterungshard
ware, ihre eigenen Interrupt-Dienstprogramme in den BIOS-
Funktionssatz abzubilden, wodurch der Funktionssatz an die
Verwendung der Kunden-Hardware angepaßt wird.
Der BIOS-Funktionssatz wird in Form von Software-Inter
rupts definiert, was bedeutet, daß das BIOS und irgendwelche
BIOS-Erweiterungssoftware die Interrupt/Vektortabelle modi
fizieren muß (BIOS-Software ist unter der Annahme geschrie
ben, daß der Prozessor im reellen Modus arbeitet). Programme
verwenden den BIOS-Funktionssatz, indem sie Software-Inter
rupts erzeugen, welche die Adresse einer bestimmten BIOS-
Funktion in der Interrupt-Vektortabelle finden und die
Steuerung auf das Interrupt-Dienstprogramm übertragen.
Eine übliche, von DOS-Programmen verfolgte Prozedur be
steht darin, die Interrupt-Vektortabelle zu modifizieren, um
BIOS-Aufrufe (oder andere Interrupts, wie beispielsweise Ta
statureingaben) abzufangen, irgendwelche relevanten Daten zu
überprüfen oder zu verarbeiten und dann die Steuerung des
Prozessors an das ursprüngliche Ziel-BIOS-Programm weiterzu
leiten. Wenn beispielsweise eine Taste auf der Tastatur ge
drückt wird, wird ein Hardware-Interrupt erzeugt, welches
das BIOS veranlaßt, die relevanten Daten aus der Tastatur
schnittstelle zu holen, die Daten in der erforderlichen
Weise zu übersetzen und sie in einer Warteschlange zu spei
chern. Später kann ein Programm ein Software-Interrupt er
zeugen, das das BIOS auffordert, die nächste Tastatureingabe
von der Tastatur zur Verfügung zu stellen.
Da das BIOS das erste Programm ist, das die Steuerung
des Prozessors nach dem Rücksetzen erlangt, ist es kritisch
für irgendwelche Sicherheitsanordnungen. Folglich muß das
BIOS vor Modifikationen während der Zeiten geschützt werden,
in denen die Maschine sich in einem ungesicherten Betriebs
modus befindet, insbesondere in den Fällen, in denen das
BIOS im Flash-Speicher gespeichert wird. Das BIOS ist im
Flash-Speicher gespeichert, um eine Aktualisierung und Um
programmierung des BIOS vor Ort zu gestatten.
Typischerweise wird der Zugriff auf das BIOS von einem
System-Controller-Chip oder -Chipsatz gesteuert. Der System-
Controller verkörpert sämtliche Standard-PC-Architekturfunk
tionen, wie beispielsweise Interrupt-Controller, DMA-Con
troller und Speicher-Controller. Diese Zugriffssteuerung um
faßt eine Umprogrammierungsfunktion zum Modifizieren des
Flash-Speichers ebenso wie Funktionen zum Zugreifen auf den
Flash-Speicher zum Ausführen des in dem BIOS enthaltenen
Programms.
Eine übliche Lösung, die gegenwärtig verwendet wird, um
eine unabsichtliche Modifikation eines Flash-Speichers zu
verhindern, ist es, eine Registerblockieranordnung zu ver
wenden, bei der zwei oder mehr Register mit speziellen Wer
ten in einer speziellen Sequenz beschrieben werden müssen,
um die Umprogrammierung des Flash-Speichers zu gestatten.
Ein Beispiel der gegenwärtigen Flash-Speicherschutzanordnung
ist in Fig. 1 veranschaulicht, wo ein Register A2, ein er
ster Schlüssel 4, ein erster Komparator 6, ein Register B8,
ein zweiter Schlüssel 10, ein zweiter Komparator 14 und ein
UND-Gatter 12 gezeigt sind. Das Register A2 empfängt Daten
von dem Datenpfad 16, wenn es ein "Schreibfreigabe"-Signal
auf der Schreibleitung 18 empfängt. Der Wert des Registers A
2 wird mit dem Wert des ersten Schlüssels 4 durch den Kompa
rator 6 verglichen. Der Komparator 6 erzeugt ein Schreib
freigabesignal an das UND-Gatter 12, sofern der Wert des Re
gisters A2 gleich dem Wert des ersten Schlüssels 4 ist. In
ähnlicher Weise vergleicht der Komparator 14 den in dem Re
gister B8 enthaltenen Wert und den zweiten Schlüssel 10 und
erzeugt ein "BIOS-Schreibfreigabe"-Signal auf der Signallei
tung 20, wenn der in dem Register B enthaltene Wert gleich
dem in dem zweiten Schlüssel 10 enthaltenen Wert ist.
Normalerweise enthalten nach dem Rücksetzen des die Re
gisterverriegelung gemäß Fig. 1 enthaltenden Systems das
Register A2 und das Register B8 den Wert Null. Zusätzlich
kann auf das Register B8 zum Empfangen eines Werts nicht
zugegriffen werden, da der Komparator 6 eine logische Null
an das UND-Gatter 12 ausgibt, da der in dem Register A2
enthaltene Wert (d. h. Null) nicht gleich dem in dem Schlüs
sel 4 enthaltenen Wert (d. h. der Hexadezimalzahl
"0x00AA55FF") ist. Um ein Flash-Löschen und -Programmieren
zu ermöglichen, muß das Register B8 einen Wert von
"0xFF55AA00" enthalten. Um einen Zugriff auf das Register B
8 zu ermöglichen, muß das Register A2 einen Wert von
"0x00AA55FF" enthalten, wie es in Fig. 1 gezeigt ist.
Somit muß, um die Umprogrammierung des Flash-BIOS-Pro
gramms im Flash-Speicher zu ermöglichen, das Register A2
zunächst mit dem Wert "0x00AA55FF" über die Verwendung des
Datenpfads 16 und der Schreibsignalleitung 18 geladen wer
den. Wenn das Register A2 so konfiguriert worden ist, gibt
der Komparator das "Schreibfreigabe"-Signal an das UND-Gat
ter 12 aus, welches es einem nachfolgenden Schreibsignal auf
der Schreibsignalleitung 18 gestattet, das Register B8 mit
dem Wert "0xFF55AA00" über die Verwendung des Datenpfads 16
zu konfigurieren. Wenn das Register B8 so konfiguriert ist,
gibt der Komparator 14 ein "BIOS-Schreibfreigabe"-Signal
über die Signalleitung 20 aus, um den Zugriff auf den (nicht
gezeigten) Flash-Speicher für eine Umprogrammierung zu ge
statten.
Obwohl das Schema des Schreibens zweier spezieller Werte
in einer speziellen Sequenz in zwei spezifische Register
speicherplätze die Wahrscheinlichkeit eines versehentlichen
Löschens reduziert, verhindert das Schema nicht ein unbeab
sichtigtes oder böswilliges Löschen oder Umprogrammieren des
Flash-Speichers, weil die Zugriffssequenz in irgendeiner
Form durch den Hardware-Entwickler zur Verwendung durch ei
nen Dritten BIOS-Programmentwickler veröffentlicht werden
muß.
Aufgabe der Erfindung ist es daher, ein Schutzschema zu
schaffen, welches nur autorisierten Personen gestattet, den
Flash-Speicher zu modifizieren, ohne daß eine für jede zu
schützende Maschine einzigartige Hardware vorgesehen werden
muß.
Aus der deutschen Offenlegungsschrift DE 195 25 105 A1
ist ein Computersystem bekannt, bei dem ein BIOS in einem
Flash-Speicher gespeichert ist und bei einem Boot-Vorgang in
einen Schatten-RAM kopiert und anschließend nur von dort aus
abgearbeitet werden kann. Für eine Aktualisierung des BIOS
wird das neue BIOS in einen Update-Programmspeicher ge
schrieben und ein Update-Flag gesetzt. Beim nächsten Initia
lisieren des Systems wird das neue BIOS aus dem Update-Pro
grammspeicher in den Flash-BIOS-Speicher kopiert.
Aus der europäischen Patentanmeldungsveröffentlichung
Nr. 0 514 289 A1 ist ein Computersystem bekannt, bei dem die
Daten (einschließlich Programme) eines BIOS zusammen mit ei
nem Passwort zunächst in einem EEPROM gespeichert sind, auf
den in einer von der normalen Art und Weise abweichenden
Weise zugegriffen werden kann. Nach dem Einschalten des Com
puters werden die Daten aus dem EEPROM gelesen und, mit Aus
nahme des Passworts, in einen CMOS-Speicher gespeichert. Da
auf den EEPROM nicht zugegriffen werden kann und nur das
BIOS in dem CMOS-Speicher gelesen werden kann, ist es nicht
autorisierten Personen unmöglich, das Passwort zu erlangen.
Die o. g. Aufgabe wird erfindungsgemäß durch ein Verfah
ren mit den Merkmalen des Anspruchs 1 bzw. eine Vorrichtung
mit den Merkmalen des Anspruchs 7 gelöst.
Um den Schutz des ein Programm, wie beispielsweise ein
Basis-Eingabe/Ausgabe-System, enthaltenden Flash-Speichers
vor nicht autorisierten Umprogrammierungsbemühungen zu
schaffen, wird eine Systemspeichersteuereinrichtung vorgese
hen, welche einen Modus zur Verfügung stellt, in dem der
Prozessor darauf beschränkt ist, nur auf den Flash-Speicher
zugreifen zu können (d. h. einen Modus, in dem der Prozessor
nur Befehle aus dem Flash-Speicher und nicht aus irgendeinem
anderen Speicher, wie beispielsweise einem Hauptspeichersy
stem oder einen Cache, ausführen kann). Dieser Modus kann
durch Setzen oder Löschen eines Steuerregisters der System
speichersteuereinrichtung freigegeben oder gesperrt werden.
Der Standardmodus nach dem Rücksetzen des Systems wäre dann
die Einschränkung der Befehlsausführung auf das Programm in
dem Flash-Speicher.
Zusätzlich sollte die Speichersteuereinrichtung einen
Registersatz enthalten, der verwendet werden kann, um be
grenzte Bereiche der Zugreifbarkeit auf Speicherbereiche au
ßerhalb des Flash-Speichers (d. h. Bereiche in dem Hauptsy
stemspeicher) zu definieren. Diese Register wären nur dann
für den Prozessor zugreifbar, wenn die Steuereinrichtung in
dem eingeschränkten Zugriffsmodus arbeitet (d. h., wenn der
Prozessor nur Befehle aus dem Flash-Speicher ausführt). Der
Registersatz besteht aus einem oder mehreren Paaren von Re
gistern, wobei jedes Paar aus einem Basis-Register und einem
Grenze-Register besteht. Das Basis- und das Grenze-Register
definieren einen Speicherbereich, der über den Flash-Spei
cher hinausgeht, welcher für den Prozessor zugreifbar ist,
wenn das System in dem eingeschränkten Modus arbeitet. Der
Standardwert nach dem Rücksetzen ist 0 (d. h., nach dem
Rücksetzen ist kein "erweiterter" Speicherzugriff in dem
eingeschränkten Modus gestattet).
Zusätzlich wird ein Flash-Speicher-Programmierregister
verwendet, um ein Löschen und Umprogrammieren des Flash-
Speichers zu ermöglichen. Das Flash-Speicher-Programierregi
ster ist verriegelt, um die genannten Funktionen nur dann zu
gestatten, wenn die Speichersteuereinrichtung in dem einge
schränkten Modus arbeitet.
Um einen Flash-Speicher umzuprogrammieren, müßte die
folgende Prozedur verwendet werden:
- 1. Ein Flash-Speicher-Aktualisierungprogramm, das ein neues Flash-Speicherabbild für den Flash-Speicher enthält, wird in den Hauptsystemspeicher geladen und ausgeführt. Das Flash-Speicher-Aktualisierungsprogramm enthält eine digitale Signatur oder "Unterschrift", welche durch den privaten Schlüssel des Verkäufers "unterzeichnet" wurde; die digitale Unterschrift ist der ursprüngliche Hash-Wert des Flash-Spei cher-Aktualisierungsprogramms, der mit dem privaten Schlüs sel des Verkäufers verschlüsselt ist.
- 2. Das Flash-Speicher-Aktualisierungsprogramm ruft eine spezielle Funktion in dem aktuellen, in dem Flash-Spei cher enthaltenen Programm auf, die zur Installation des neuen Flash-Speicherabbilds auffordert. Dieser Aufruf spezi fiziert die Adresse und Größe des Flash-Speicher-Aktualisie rungsprogramms, das im Hauptsystemspeicher angeordnet ist.
- 3. Das aktuelle Programm versetzt die Speichersteuer einrichtung in einen eingeschränkten Betriebsmodus und ge stattet einen erweiterten Speicherzugriff auf denjenigen Ab schnitt des Systemspeichers, der das Flash-Speicher-Aktuali sierungsprogramm enthält.
- 4. Das aktuelle Programm überprüft dann die Quelle und den Inhalt des Flash-Speicher-Aktualisierungsprogramms (welches das neue Flash-Speicher-Abbild enthält), indem: (a) die digitale Unterschrift unter Verwendung des öffentlichen Schlüssels des Verkäufers, der in dem aktuellen Programm ge speichert ist, entschlüsselt wird, um den ursprünglichen Hash-Wert zu erlangen; (b) unabhängig ein Hash-Wert für das Flash-Speicher-Aktualisierungsprogramm, welches sich im Hauptsystemspeicher aufhält, berechnet wird; und (c) der ur sprüngliche, aus dem Entschlüsseln der digitalen Unter schrift erlangte Hash-Wert mit dem unabhängig erzeugten Has h-Wert verglichen wird, um eine Übereinstimmung zu finden.
- 5. Sofern die Hash-Werte übereinstimmen, was anzeigt, daß das in dem Hauptspeicher enthaltene Flash-Speicher-Ak tualisierungsprogramm von dem autorisierten Erzeuger her rührt UND nicht modifiziert worden ist, so gestattet dann das in dem Flash-Speicher enthaltene aktuelle Progamm ein Umprogrammieren des Flash-Speichers und gibt die Steuerung des Prozessors an das Flash-Speicher-Aktualisierungsprogramm zurück.
- 6. Das Flash-Speicher-Aktualisierungsprogramm löscht dann den Flash-Speicher und kopiert das neue Flash-Speicher abbild in den Flash-Speicher. Der neue Programmcode enthält die gleichen Spezialfunktionen wie das aktuelle Programm, um zukünftige Aktualisierungen vor Ort zu gestatten, und dar über hinaus eine Kopie des öffentlichen Schlüssels des Ver käufers. Zusätzlich kann bei einem anderen bevorzugten Aus führungsbeispiel jede nachfolgende Version des Flash-Spei cher-Aktualisierungsprogramms einen aktualisierten oder un terschiedlichen Schlüssel enthalten. Bei diesem anderen be vorzugten Ausführungsbeispiel, bei dem jede unterschiedliche Version des Aktualisierungsprogramms einen unterschiedlichen Schlüssel aufweist, wären mehrere Unterschriften erforder lich, eine für jeden Schlüssel, der zuvor verwendet wurde, um zu sichern, daß irgendwelche früheren Versionen des Pro gramms aktualisiert werden können, ohne sämtliche dazwi schenliegenden Revisionen zu durchlaufen. Darüber hinaus würde jedes Aktualisierungsprogramm sämtliche vorhergehenden Schlüssel enthalten, um zu sichern, daß der Flash-Speicher auch auf eine vorhergehende Version des Programmcodes zu rückprogrammiert ("downgraded") werden kann.
- 7. Das Flash-Speicher-Aktualisierungsprogramm, was noch immer aus dem Hauptsystemspeicher heraus ausgeführt wird, überträgt dann die Steuerung des Prozessors auf das in dem neuen Flash-Speicherabbild enthaltene Programm, welches sich jetzt im Flash-Speicher befindet und welches wiederum die Speichersteuereinrichtung in den normalen Betrieb zu rückversetzt und seine normale Initialisierungssequenz be ginnt, so als ob ein Rücksetzen aufgetreten wäre.
Das vorgesehene Sicherheitsschema erfordert es nicht,
daß das System in einem sicheren Modus initialisiert wird,
und kann nach einer normalen Initialisierungsprozedur des
Systems implementiert werden. So würde bei Rücksetzen des
Systems das in dem Flash-Speicher angeordnete Programm (wie
beispielsweise das BIOS) die Steuerung über den Prozessor
erlangen, die Speichersteuereinrichtung so setzen, daß sie
einen unbeschränkten Zugriff auf den Systemspeicher gestat
tet, und normal fortfahren. Wenn es gewünscht wird, daß das
Programm in dem Flash-Speicher aktualisiert werden soll, be
ginnt die Ausführung mit dem oben beschriebenen Schritt 1,
wobei es nicht erforderlich ist, daß der Prozessor oder das
System vor der Ausführung des Flash-Speicher-Aktualisie
rungsprogramms in einen speziellen Modus versetzt wird.
Durch die Verwendung des obigen Schutzschemas können nur
Halter des privaten Schlüssels des Verkäufers Software zum
Modifizieren des aktuellen Programms verteilen. Die Fähig
keit, nicht verwendeten Speicher während des Flash-Umpro
grammierungsprozesses zu sperren, hindert jeden Code, der
nicht kryptographisch überprüft worden ist, daran, die
Steuerung des Systems zu erlangen. Zusätzlich wäre es Erwei
terungen des aktuellen Programms, welche nicht in dem Flash-
Speicher oder dem autorisierten Speicherraum enthalten sind,
nicht gestattet, ausgeführt zu werden, was somit "bösartige"
Programme, die in einer Erweiterung enthalten sind, daran
hinderte, unautorisierte Modifikationen des Flash-Speichers
vorzunehmen. Der einzige Weg, den Sicherheitsprozeß zu un
tergraben, besteht darin, den Betrieb der Hardware zu ändern
oder den privaten Schlüssel des Verkäufers bloßzustellen.
Die fundamentale Integrität des ursprünglichen Codes selbst
und irgendwelcher Aktualisierungen kann durch ökonomische
und administrative Mittel gesichert werden und erfordert
folglich keine Hardware-Unterstützung, welche für jede Ma
schine einzigartig ist.
Diese Erfindung hängt darüber hinaus nicht von dem BIOS
ab, das die Steuerung vom Beginn des Anfangsladeprozesses zu
übernehmen hat, um ein Durchkreuzen einer unautorisierten
Modifikation zu sichern.
Diese Lösung zum Schützen empfindlicher Register in Ge
räten wird nicht nur zum Freigeben einer Flash-Programmie
rung verwendet, sondern darüber hinaus für andere Anwendun
gen, bei denen eine versehentliche Modifikation eines Hard
ware-Registers zu schwerwiegenden Konsequenzen führen könn
te.
Andere Aufgaben, Merkmale und Vorteile der Erfindung
werden aus den begleitenden Zeichnungen und aus der unten
folgenden detaillierten Beschreibung ersichtlich.
Fig. 1 veranschaulicht eine bekannte Registerverriege
lung zum Verhindern einer Modifikation eines BIOS.
Fig. 2 veranschaulicht ein System, das nach einem be
vorzugten Ausführungsbeispiel der Erfindung konfiguriert
ist.
Fig. 3 veranschaulicht ein Ablaufdiagramm, das einen
bevorzugten Betrieb der Erfindung enthält.
Die vorliegende Erfindung schafft ein Verfahren und eine
Einrichtung zum Vermeiden nicht autorisierter Modifikationen
von Flash-Speichern. Zu Zwecken der Erläuterung sind spezi
elle Ausführungsbeispiele angegeben, um ein besseres Ver
ständnis der vorliegenden Erfindung zu erreichen. Für den
Fachmann wird es jedoch beim Lesen dieser Offenbarung klar,
daß die Erfindung auch ohne diese Details ausgeführt werden
kann. Darüber hinaus sind, obwohl die vorliegende Erfindung
anhand der Verwendung des Flash-Speichers beschrieben wird,
die meisten, wenn nicht alle Aspekte der Erfindung ebenso
auf Speicher im allgemeinen anwendbar. Darüber hinaus werden
gut bekannte Elemente, Einrichtungen, Prozeßschritte und
dergleichen nicht im Detail beschrieben, um eine Verdunklung
der vorliegenden Erfindung zu vermeiden.
Außerdem wird auf Verschlüsselungsverfahren Bezug genom
men, wie beispielsweise das kryptografische System mit öf
fentlichem Schüssel von Rivest, Shamir, Adlemann (RSA), wel
ches sowohl für die Verschlüsselung als auch für digitale
Unterschriften verwendet werden kann. Ohne vom Geist und Um
fang der Erfindung abzuweichen, kann jedoch ein beliebiges
kryptografisches System verwendet werden, welches die Au
thentisierung der Quelle und des Nachrichteninhalts gestat
tet. Im wesentlichen wird die Kryptografie mit öffentlichem
Schlüssel als sicheres System verwendet, um die Quelle und
den Inhalt gesicherter Software zu überprüfen und um die
beim größten Teil der Kryptografie verwendeten Schlüssel zu
schützen.
Es wird darüber hinaus auf eine andere Technik, die
"Hashing" genannt wird, Bezug genommen. Diese Technik ist
ähnlich einer Prüfsummenoperation, aber mathematisch stren
ger, was die Möglichkeit, die gleiche Prüfsumme an zwei un
terschiedlichen Datenblöcken zu erhalten, auf einen vernach
lässigbaren Anteil reduziert. Das "Hashing" ist ein Element
bei dem Schlüssel und der Überprüfung und bei der Unter
schrift. Ein Hash-Wert ist eine Zahl, die für einen Informa
tionsblock einzigartig ist, so daß dann, wenn irgendein Teil
der Information in dem Informationsblock modifiziert wird,
ein nachfolgend erzeugter Hash-Wert unterschiedlich sein
wird. Ob eine Prüfsummen- oder eine Hash-Operation verwendet
wird und welcher Hash-Algorithmus physisch verwendet wird,
ist für die hier beschriebene Erfindung nicht relevant. Der
artige Entscheidungen sollen demjenigen überlassen bleiben,
der das jeweilige sichere Softwaresystem, das auf der siche
ren Plattform arbeitet, implementiert.
Eine "Unterschrift" wird für einen Informationsblock er
zeugt, indem ein Sender einen Hash-Wert unter Verwendung der
Daten in dem Informationsblock erzeugt und dann den erzeug
ten Hash-Wert mit dem privaten Schlüssel des Senders ver
schlüsselt. Somit ist der verschlüsselte Hash-Wert die Un
terschrift des Verkäufers für diesen Informationsblock.
Um den von dem Verkäufer herrührenden Informationsblock
zu validieren und um darüber hinaus festzustellen, ob keine
Änderungen an dem Informationsblock vorgenommen worden sind,
erzeugt der Empfänger einen Hash-Wert über den Informations
block und entschlüsselt dann die Unterschrift unter Verwen
dung des öffentlichen Schlüssels des Verkäufers, um den je
nigen Hash-Wert zu erlangen, der ursprünglich erzeugt wurde.
Wenn der von dem Empfänger erzeugte Hash-Wert mit dem aus
der dem Informationsblock anhaftenden Unterschrift herausge
arbeiteten entschlüsselten Hash-Wert übereinstimmt, dann
kann man darauf vertrauen, daß der empfangene Informations
block von dem Verkäufer herrührt und ohne Änderungen empfan
gen worden ist.
Fig. 2 veranschaulicht ein System, daß gemäß einem be
vorzugten Ausführungsbeispiel der vorliegenden Erfindung
konfiguriert ist und das aufweist: einen Prozessor 102, eine
Speichersteuereinrichtung 104, einen Systemspeicher 106, ei
nen Flash-Speicher 108, einen Speicheradressen/Fenster-De
tektor 110, ein Systemspeicher-Zugriffsfreigaberegister 112,
eine Speicherfenstersteuerung 114, eine Flash-Speicher-Pro
grammierlogik 116, ein Flash-Speicher-Programmierfreigabere
gister 118, ein erstes UND-Gatter 120, ein ODER-Gatter 122,
ein zweites UND-Gatter 124 und ein NICHT-Gatter 126.
Wie es in Fig. 2 dargestellt ist, ist der Prozessor 102
über eine Datensignalleitung 202 und eine Adreßsignalleitung
204 mit der Speichersteuereinrichtung 104 gekoppelt. Die
Speichersteuereinrichtung 104 ist mit dem Systemspeicher 106
über die Verwendung einer Speicherdatensignalleitung 206 und
einer Speicheradreßsignalleitung 208 gekoppelt. Die Spei
cherfenstersteuerung 114 ist ebenfalls mit der Speicherda
tensignalleitung 206 gekoppelt. Die Speicherfenstersteuerung
114 stellt darüber hinaus ein Ausgangssignal über die Be
reichssignalleitung 214 an den Speicheradressen/Fenster-De
tektor 110 zur Verfügung.
Die Speichersteuereinrichtung und der Prozessor 102 sind
über die Verwendung einer Cache-Freigabesignalleitung 210
und Adreßsignalleitung 204 mit dem Speicheradressen/Fenster-
Detektor 110 gekoppelt. Der Speicheradressen/Fenster-Detek
tor 110 ist darüber hinaus mit dem ersten UND-Gatter 120 ge
koppelt, dessen Ausgang mit dem Systemspeicher-Zugriffsfrei
gaberegister 112 gekoppelt ist, um das Schreiben von Werten
in das Systemspeicher-Zugriffsfreigaberegister 112 zu kon
trollieren. Der Ausgang des Systemspeicher-Zugriffsfreigabe
registers 112 und ein Zugriffsfreigabe-Ausgangssignal aus
dem Speicheradressen/Fenster-Detektor 110 werden über das
ODER-Gatter 122 und über Verwendung einer Zugriffsfreigabe
signalleitung 212 der Speichersteuereinrichtung 104 eingege
ben und von dieser empfangen. Der Ausgang des Systemspei
cher-Zugriffsfreigaberegisters wird darüber hinaus dem
NICHT-Gatter 126 eingegeben.
Das Ausgangssignal des NICHT-Gatters 126 wird der Spei
cherfenstersteuereinrichtung 114 bzw. dem zweiten UND-Gatter
124 eingegeben. Das Ausgangssignal des zweiten UND-Gatters
124 wird dem Flash-Speicher-Programmierfreigaberegister 118
eingegeben, dessen Ausgang darüber hinaus mit der Flash-
Speicher-Programmierlogik 116 verbunden ist. Die Flash-Spei
cher-Progammierlogik 116 ist mit dem Flash-Speicher 108 ge
koppelt.
Die Speichersteuereinrichtung 104 übersetzt die Adressen
des von dem Prozessor 102 verwendeten Adreßraums in irgend
welche Adressen, wie sie von anderen Systemkomponenten benö
tigt werden. Unabhängig davon, ob beispielsweise der
Prozessor 102 versucht, Befehle auszuführen oder auf Daten
aus dem Flash-Speicher 108 oder Systemspeicher 106
zuzugreifen, gehen somit sämtliche Daten und Befehle durch
die Speichersteuereinrichtung 104 hindurch. Die
Speichersteuereinrichtung 104 kann den Prozessor 102 daran
hindern, auf den Systemspeicher 106 zuzugreifen, indem sie
die Anforderung, die zum Adreßraum gehört, der zum Zugreifen
auf den Systemspeicher 106 verwendet wird, nicht übersetzt.
Die Speichersteuereinrichtung 104 ist in der Lage, in einem
Modus zu arbeiten, der Nichts cache-speichert. Bei dem
bevorzugten Ausführungsbeispiel gestattet die
Speichersteuereinrichtung 104 den Zugriff auf den
Systemspeicher 106, während sie ein Zugriffsfreigabesignal
über die Zugriffsfreigabesignalleitung 212 empfängt. Darüber
hinaus weist die Speichersteuereinrichtung einen Modus auf,
bei der ein Zugriff auf einen außerhalb des Prozessors
angeordneten Cache-Speicher (einen Ebene-2-Cache) nicht
verarbeitet wird. Dieser Modus wird in der unten be
schriebenen Weise von dem Speicheradressen/Fenster-Detektor
110 gesteuert.
Das Systemspeicher-Zugriffsfreigaberegister 112 wird
verwendet, um das Zugriffsfreigabesignal über die Zugriffs
freigabesignalleitung 212 während des normalen Betriebs zu
erzeugen. Durch Modifikation des Systemspeicher-Zugriffs
freigaberegisters 112 wird der Zugriff auf den Systemspei
cher 106 entweder freigegeben oder gesperrt, d. h. sämtliche
Anforderungen zum Zugriff auf den Systemspeicher 106 werden
durch den in dem Systemspeicher-Zugriffsfreigaberegister 112
enthaltenen Wert gesteuert. Jedoch kann der Zugriff auf den
Systemspeicher 106 unabhängig von dem in dem Systemspeicher-
Zugriffsfreigaberegister 112 enthaltenen Wert durch den
Speicheradressen/Fenster-Detektor 110 in der unten beschrie
benen Weise gestattet werden.
Bei einem bevorzugten Ausführungsbeispiel enthält das
Systemspeicher-Zugriffsfreigaberegister 112 ein einziges Bit
und kann als Flip-Flop implementiert sein. Wenn das System
speicher-Zugriffsfreigaberegister 112 den logischen Wert "0"
enthält, gestattet es die Speichersteuereinrichtung 104 dem
Prozessor 102 nicht, den Systemspeicher 106 zuzugreifen, so
fern nicht der Speicheradressen/Fenster-Detektor eine logi
sche "1" zum ODER-Gatter 122 erzeugt, um einen logischen
Wert "1" an die Speichersteuereinrichtung 104 über die Zu
griffsfreigabesignalleitung 212 zur Verfügung zu stellen.
Somit wird bei dem bevorzugten Ausführungsbeispiel das Zu
griffsfreigabesignal durch einen logischen Wert "1" reprä
sentiert.
Bei dem bevorzugten Ausführungsbeispiel wird beim Hoch
fahren, so beispielsweise wenn ein Hardware-Rücksetzen vor
genommen wurde, das Systemsspeicher-Zugriffsfreigaberegister
112 gesperrt, d. h. das Systemspeicher-Zugriffsfreigaberegi
ster 112 enthält eine logische "0", womit der Zugriff auf
den Systemspeicher 106 gesperrt wird. Somit kann nur auf das
BIOS-Programm im Flash-Speicher 108 zur Ausführung zugegrif
fen werden. Während des Systeminitialisierungsprozesses geht
der Rücksetz-Vektor in das BIOS und startet die Ausführung
in dem BIOS, wobei eines der ersten Dinge, die ausgeführt
werden, das Schreiben in das Systemspeicher-Zugriffsfreiga
beregister 112 ist, um sämtliche Zugriffe auf den System
speicher 106 zu gestatten.
Der Speicheradressen/Fenster-Detektor 110, welcher die
Fähigkeit hat, die von dem Prozessor 102 über die Verwendung
der Adreßsignalleitung 204 gegriffenen Adressen zu überwa
chen, stellt sicher, daß nur ein im Flash-Speicher 108 ab
laufendes Programm das Systemspeicher-Zugriffsfreigaberegi
ster 112 modifizieren kann, um es der Speichersteuereinrich
tung 104 zu gestatten, einen Zugriff auf den Systemspeicher
106 zur Verfügung zu stellen. So kann ein im Systemspeicher
106 betriebenes Programm nicht das Systemspeicher-Zugriffs
freigaberegister 112 modifizieren, da der Speicheradres
sen/Fenster-Detektor 110 einen Zugriff auf das Systemspei
cher-Zugriffsfreigaberegister 112 nur dann gestatten wird,
wenn es erfaßt, daß der Prozessor 102 ein in dem Flash-Spei
cher 108 enthaltenes Programm ausführt.
Der Speicheradressen/Fensterdetektor 110 arbeitet auf
der Grundlage der Tatsache, daß bei einer linearen Adreßab
bildung typischerweise der oberen 64 Kilobyte in dem ersten
Megabyte der ursprünglichen PC-Architektur für das BIOS zu
gewiesen sind und daß irgendwelche Erweiterungen des BIOS in
einem Bereich unterhalb der dem BIOS zugewiesenen 64 Kilo
byte zusammen mit irgendeinem anderen "Programmspeicher"
enthalten sind. So sind die BIOS-Erweiterungen für Inter
rupt-Controller und andere Programme und Daten in einem an
deren Speicherbereich enthalten als die in dem Flash-Spei
cher 108 enthaltenen Programme. Wenn eine Maschine wirklich
PC-kompatibel ist, so sind die Adreßbereiche, aus welchen
das BIOS ausgeführt werden wird, bekannt.
Zusätzlich kann, wie oben beschrieben, der Speicher
adressen/Fenster-Detektor 110 das Sperren des Zugriffs auf
den Systemspeicher 106 durch das Systemspeicher-Zugriffs
freigaberegister 112 aufheben, indem er ein Signal mit einem
logischen Wert "1" zum ODER-Gatter 122 erzeugt. Der Spei
cheradressen/Fenster-Detektor 110 setzt sich über die Sper
rung des Zugriffs auf den Systemspeicher 106 auf diejenigen
Adressen hinweg, die in der Speicherfenstersteuerung 114
enthalten sind, wie unten beschrieben wird.
Darüber hinaus kann der Speicheradressen/Fenster-Detek
tor 110 ein Cache-Speichern entweder lokal für den Prozessor
102 (ein Ebene-1-Cache) oder für einen außerhalb des Prozes
sors angeordneten Cache (einen Ebene-2-Cache) über die Er
zeugung eines Cache-Sperrsignal über die Cachefreigabesi
gnalleitung 210 zum Prozessor 102 bzw. zur Speichersteuer
einrichtung 104 sperren.
Somit kann der Speicheradressen/Fenster-Detektor 110 ein
Steuersignal senden, daß ein Cache-Speichern an der Spei
chersteuereinrichtung 104 und am Prozessor 102 gestattet,
und der Speicheradressen/Fenster-Detektor 110 kann außerdem
ein Freigabesignal aussenden, daß es einem Schreibsignal ge
stattet, durch das Speicherzugriffs-Freigaberegister 112
weitergeleitet zu werden. Der Speicheradressen/Fenster-De
tektor 110 kann Adressen überwachen um zu erfassen, ob die
CPU in dem richtigen Bereich ausführt.
Die Speicherfenstersteuerung 114 öffnet einen Bereich
von "gültigen" Speicheradressen, innerhalb derer der Prozes
sor 102 auf das Aktualisierungsprogramm zugreifen kann, in
dem der Speicheradressen/Fenster-Detektor 110 das Zugriffs
freigabesignal aussendet, daß es der Speichersteuereinrich
tung 104 wieder gestattet, einen Zugriff auf den Systemspei
cher 106 während bestimmter Punkte zur Verfügung zu stellen.
Bei einem bevorzugten Ausführungsbeispiel enthält die Spei
cherfenstersteuerung 114 ein (nicht gezeigtes) Basis-Regi
ster und ein (nicht gezeigtes) Grenze-Register. Die Spei
cherfenstersteuerung 114 ist nur dann zugreifbar, wenn das
Systemspeicher-Zugriffsfreigaberegister 112 in den gesperr
ten Zustand versetzt ist.
Fig. 3 veranschaulicht ein Reihe von Operationen zum Um
programmieren des Flash-Speichers 108 gemäß der vorliegenden
Erfindung.
Im Block 302 wird ein Flash-Speicher-Aktualisierungspro
gramm, das ein neues Flash-Speicher-Abbild (z. B. ein neues
BIOS-Abbild) für den Flash-Speicher 108 der das aktuelle
BIOS enthält, in den Systemspeicher 106 geladen und ausge
führt. Das Flash-Speicher-Aktualisierungsprogramm enthält
eine digitale Unterschrift, welche durch den privaten
Schlüssel des Verkäufers "unterschrieben" ist; die digitale
Unterschrift ist der ursprüngliche Hash-Wert des Flash-Spei
cher-Aktualisierungsprogramms, nachdem der ursprüngliche
Hash-Wert mit dem privaten Schlüssel des Verkäufers ver
schlüsselt worden ist. Die Operation fährt dann im Block 304
fort.
Im Block 304 ruft das Flash-Speicher-Aktualisierungspro
gramm, nachdem das Flash-Speicher-Aktualisierungsprogramm
die Ausführung beginnt, eine spezielle Funktion in dem aktu
ellen Flash-Speicher 108 enthaltenen Programm auf, die die
Installation des neuen Flash-Speicherabbilds anfordert. Die
ser Aufruf spezifiziert die Adresse und Größe des in dem Sy
stemspeicher 106 angeordneten Flash-Speicher-Aktualisie
rungsprogramms. Folglich übergibt das Flash-Speicher-Aktua
lisierungsprogramm, das das neue BIOS-Abbild enthält, wenn
es seine Ausführung beginnt, die Steuerung an das in dem
Flash-Speicher 108 enthaltenen Programm (das aktuelle BIOS),
welches zum Aktualisieren des aktuellen BIOS auffordert.
Die Adresse und Größe des Flash-Speicher-Aktualisie
rungsprogramms wird in dem Basis-Register bzw. dem Grenze-
Register, die in der Speicherfenstersteuereung 114 enthalten
sind, gespeichert. Wie oben erwähnt, kann die Speicherfen
stersteuerung 114 mehr als ein Paar von Basis-Register und
Grenze-Register enthalten, um Situationen zu berücksichti
gen, bei denen das Flash-Speicheraktualisierungsprogramm
nicht in einem zusammenhängenden Adreßraum enthalten ist.
Im Block 306, nachdem der Prozessor nach dem aktuellen,
in dem Flash-Speicher 108 enthaltenen Programm begonnen hat
zu arbeiten, sperrt der Speicheradressen/Fenster-Detektor
110 zunächst die Cache-Speicherung durch den Prozessor 102
und die Speichersteuereinrichtung 104, indem er ein Cache-
Sperrsignal über die Cache-Freigabesignalleitung 210 aussen
det. Es sei angemerkt, daß Cache-Speicherungen nicht notwen
digerweise während sämtlicher Phasen der Aktualisierung ge
sperrt werden müssen. Die Cache-Speicher müssen einer Flush-
Operation unterzogen werden (d. h. sämtliche Daten und Be
fehle gelöscht werden), bis das Flash-Speicher-Aktualisie
rungsprogramm (und das beigefügte neue Flash-Speicherabbild)
authentisiert ist.
Der Prozessor 102 holt einen Befehl aus dem Flash-Spei
cher 108 (z. B. dem BIOS) heran, und dieser Befehl ist ein
Register-I/O-Schreibbefehl. Das BIOS wünscht ein Schreiben
in das Systemspeicher-Zugriffsfreigaberegister 112, um den
Zugriff auf den Systemspeicher 106 zu sperren. Wenn der
Schreibbefehl mit einem Busschreibzyklus gesendet ist,
stellt der Speicheradressen/Fenster-Detektor 110 fest, daß
das vorhergehende Befehls-Heranholen, das den Register-I/O-
Schreibbefehl herbeigeführt hat, von innerhalb des BIOS (aus
dem Flash-Speicher) herrührt, und der Speicheradres
sen/Fenster-Detektor 110 gestattet ein Abschließen des Regi
ster-I/O-Schreibbefehls, da der Register-I/O-Schreibbefehl
aus dem BIOS kam.
Wenn der Prozessor 102 ein in dem Systemspeicher 106
enthaltenes Programm ausführt und er einen Register-I/O-
Schreibbefehl zum Modifizieren des Systemspeicher-Zugriffs
freigaberegisters 112 ausgeben würde, würde der Busschreib
zyklus für den Register-I/O-Schreibbefehl blockiert werden,
da der Speicheradressen/Fenster-Detektor 110 feststellt, daß
der Register-I/O-Schreibbefehl von dem das in dem System
speicher 106 enthaltene Programm ausführenden Prozessor 102
herbeigeführt wurde. Folglich kann nur das in dem Flash-
Speicher 108 enthaltene Programm den Zustand des Systemspei
cher-Zugriffsfreigaberegisters 112 modifizieren.
Darüber hinaus erzeugt der Speicheradressen/Fenster-De
tektor 110, wenn er erfaßt, daß der Prozessor 102 aus einem
physikalischen Adreßraum im Flash-Speicher 108 ausführt, d.
h. daß der Prozessor 102 Befehlscode aus dem aktuellen BIOS
ausführt, ein Signal, das eine logische "1" repräsentiert,
an das erste UND-Gatter 120, um ein Sperren des Systemspei
cher-Zugriffsfreigaberegisters 112 zu gestatten, indem ein
Signal mit einem logischen Wert von "0" in das Systemspei
cher-Zugriffsfreigaberegister 112 geschrieben wird. Da das
Systemspeicher-Zugriffsfreigaberegister 112 einen logischen
Wert "0" enthält, wird das Ausgangssignal des ODER-Gatters
122 eine logische "0", solange nicht der Speicheradres
sen/Fenster-Detektor ein Signal mit einem logischen Wert von
"1" ausgibt, d. h., der Zugriff auf den Systemspeicher 106
wird nur dann gestattet, wenn der Speicheradressen/Fenster-
Detektor 110 einen logischen Wert von "1" zu dem ODER-Gatter
122 ausgibt.
Wie oben erwähnt, enthält die Speicherfenstersteuerung
114 Register, welcher einen Satz von zugreifbaren Adreßräu
men im Systemspeicher 106 definieren, nachdem der System
speicher 106 "abgesperrt" (down locked) worden ist. Der
Speicheradressen/Fenster-Dektektor 110 gestattet einen Zu
griff auf einen Abschnitt des Systemspeichers 106, der durch
die Speicherfenstersteuerung 114 definiert ist, wobei er
sich über das Totalverbot des Zugreifens auf den Systemspei
cher 106, das durch das Setzen des Systemspeicher-Zugriffs
freigaberegisters 112 verursacht wurde, "hinwegsetzt", indem
er die in der Speicherfenstersteuerung 114 enthaltenen Regi
ster liest. Wenn der Prozessor 102 das Heranholen von Daten
oder Befehlen aus diesem Satz von zugreifbaren Adreßräumen
anfordert, sendet der Speicheradressen/Fenster-Detektor 110
eine Zugriffsfreigabe-Aufhebung aus, um Zugriffe auf die zu
greifbaren Adreßräume zu gestatten, obwohl das Systemspei
cher-Zugriffsfreigaberegister 112 anderenfalls den System
speicher 106 "abgesperrt" hat. Insbesondere gestattet der
Speicheradressen/Fenster-Detektor 110 nur der Speichersteue
reinrichtung 104, einen Zugriff auf den Systemspeicher 106
zur Verfügung zu stellen, d. h., der Speicheradres
sen/Fenster-Detektor 110 gibt ein Signal über die Zugriffs
freigabesignalleitung mit einem logischen Wert "1" an die
Speichersteuereinrichtung 104 aus, wenn der angeforderte Zu
griff sich innerhalb des durch die Register in der Speicher
fenstersteuerung 114 definierten Adreßraums befindet.
So versetzt das aktuelle Programm in dem Flash-Speicher
108 die Speichersteuereinrichtung 104 in einen
"beschränkten" Betriebsmodus, welcher den Systemspeicher 106
sperrt, so daß der Prozessor 102 nicht beliebig auf den Sy
stemspeicher 106 zugreifen kann. Dann gibt das aktuelle Pro
gramm in dem Flash-Speicher 108 einen erweiterten Speicher
zugriff auf Abschnitte des Systemspeichers frei, die das
Flash-Speicher-Aktualisierungsprogramm enthalten.
Im Block 308 überprüft dann das aktuell im Flash-Spei
cher 108 vorhandene Programm die Quelle und den Inhalt des
Flash-Speicher-Aktualisierungsprogramms (welches das neue
Flash-Speicherabbild enthält), indem: (a) die digitale Un
terschrift oder Signatur unter Verwendung des in dem aktuel
len Programm gespeicherten öffentlichen Schlüssels des Ver
käufers entschlüsselt wird, um den usprünglichen Hash-Wert
zu erlangen; (b) unabhängig ein Hash-Wert für das Flash-
Speicher-Aktualisierungsprogramm, welches sich im Hauptsy
stemspeicher aufhält, berechnet wird; und (c) der aus der
Entschlüsselung der digitalen Unterschrift erlangte ur
sprüngliche Hash-Wert mit dem unabhängig erzeugten Hash-Wert
verglichen wird, um eine Übereinstimmung zu finden.
Wenn die Hash-Werte übereinstimmen, was anzeigt, daß das
in dem Hauptspeicher enthaltene Flash-Speicher-Aktualisie
rungsprogramm von dem autorisierten Erzeuger herrührt UND
nicht modifiziert worden ist, dann fährt die Operation im
Block 310 fort. Wenn die Hash-Werte nicht übereinstimmen,
wird die Aktualisierung abgebrochen. Bei einem alternativen
Ausführungsbeispiel kann der Benutzer über die fehlgegangene
Aktualisierung in einem weiteren Schritt (nicht gezeigt) be
nachrichtigt werden.
Im Block 310 gibt das in dem Flash-Speicher 108 enthal
tene aktuelle Programm die Neuprogrammierung des Flash-Spei
chers 108 frei, indem das Flash-Speicher-Programmierfreiga
beregister 118 mit einem Programmierfreigabesignal gesetzt
wird und die Steuerung des Prozessors 102 auf das im System
speicher 106 enthaltene Flash-Speicher-Aktualisierungspro
gramm an einem vorgebenen Eintrittspunkt übertragen wird.
Wie oben beschrieben, hat das Systemspeicher-Zugriffsfreiga
beregister 112, solange es sich in dem freigebenen Zustand
befindet, eine Verriegelung zurück zum Flash-Speicherpro
grammierfreigaberegister, die eine Umprogrammierung des
Flash-Speichers 108 nicht gestattet. Um das Systemspeicher-
Zugriffsfreigaberegister 112 in den gesperrten Zustand zu
versetzen, welcher einer Zugriff auf das Flash-Speicher-Pro
grammierfreigaberegister freigibt, ist es erforderlich, daß
der Prozessor 102 das in dem Flash-Speicher 108 enthaltene
ursprüngliche autorisierte Programm (z. B. das BIOS) aus
führt. Bei diesem System kann nur das in dem Flash-Speicher
108 enthaltene ursprüngliche Programm sich selbst autorisie
ren, ersetzt zu werden.
Im Block 312 löscht das Flash-Speicher-Aktualisierungs
programm unter Verwendung der Flash-Speicher-Programmierlo
gik 116 den Flash-Speicher 108 und kopiert das neue Flash-
Speicherabbild in den Flash-Speicher 108. Der neue Programm
code enthält die gleichen speziellen Funktionen wie das ak
tuelle Programm, einschließlich einer Kopie des öffentlichen
Schlüssels des Verkäufers, um zukünftige Aktualisierungen
vor Ort zu unterstützen. Die Operation fährt dann mit dem
Block 314 fort.
Im Block 314 überträgt das noch aus dem Systemspeicher
106 ausgeführte Flash-Speicher-Aktualisierungsprogramm die
Steuerung oder Kontrolle über den Prozessor 102 auf das in
dem neuen Flash-Speicherabbild enthaltene Programm, welches
sich jetzt im Flash-Speicher 108 befindet und welches wie
derum die Speichersteuereinrichtung 104 in den normalen Be
trieb zurückbringt und seine normale Initialisierungssequenz
startet, so als ob ein Rücksetzen aufgetreten wäre. Die Ak
tualisierungsoperation endet dann.
Beim normalen Betrieb erlangt das Programm im Flash-
Speicher 108 (BIOS) die Steuerung unmittelbar nach einem
Hardware-Rücksetzen. Das BIOS initialisiert dann die gesamte
Hardware und lädt dann das Betriebssystem, bevor es die
Steuerung auf das Betriebssystem überträgt. Die vorliegende
Erfindung funktioniert entsprechend der normalen Situation,
da sie in der Lage ist, in einem nicht-sicheren Betriebsmo
dus zu starten und dann in einen sicheren Betriebsmodus um
zuschalten, um das BIOS zu aktualisieren und dann zurückzu
gehen und zu reinitialisieren und neu zu starten. Folglich
erfordert das Schutzschema es nicht, daß das System anfäng
lich in einem sicheren Modus startet.
Obwohl das Flash-Speicher-Aktualisierungsprogramm die
gesmate Flash-Speicher-Aktualisierungsfunktion startet, be
steht der tatsächliche Schlüssel für die Sicherheit in dem
System darin, zu sichern, daß nur dann, wenn der Prozessor
102 Befehle aus dem Flash-Speicher 108 ausführt, es möglich
ist, in einen sicheren Betriebsmodus zu wechseln, d. h. nur
dann, wenn der Prozessor 102 Befehle aus dem Flash-Speicher
108 ausführt, ist es möglich, das Systemspeicher-Zugriffs
freigaberegister 112 zu modifizieren.
Zusätzlich schützt das System gegen Umgehungsversuche,
bei denen ein bösartiges Interupt zu den BIOS-Erweiterungen
zugeführt wird, weil es erzwingt, daß der Prozessor 102 nur
aus dem speziellen physikalischen Bereich des Speichers her
aus ausführen kann, der durch das autorisierte Flash-Spei
cher-Programm belegt ist, und keine andere Software auf die
Register zugreifen kann, die die Fähigkeit zum Ausführen der
Aktualisierung steuert.
Es ist außerdem klar, daß, obwohl bei dem bevorzugten
Ausführungsbeispiel die Schlüsselüberprüfung ausschließlich
in Software ausgeführt worden ist, d. h., die Entschlüsse
lung der Unterschrift und die unabhängie Erzeugung des Hash-
Werts für das Aktualisierungsprogramm durch die Verwendung
des Befehlscode aus dem Flash-Speicher 108 ausführenden Pro
zessors 102 ausgeführt wurde, es klar ist, daß die Ent
schlüsselung und der Vergleich der Hash-Werte durch die Ver
wendung anderer Verfahren ausgeführt werden kann, die eine
anwendungsspezifische integrierte Schaltung einschließen.
Während die vorliegende Erfindung insbesondere unter Be
zugnahme auf die verschiedenen Figuren beschrieben worden
ist, ist es klar, daß die Figuren nur der Veranschaulichung
dienen und nicht im Sinne einer Einschränkung des Umfangs
der Erfindung zu verstehen sind. Viele Änderungen und Modi
fikationen können durch einen Fachmann an der Erfindung aus
geführt werden, ohne vom Geist und Umfang der Erfindung ab
zuweichen.
Claims (14)
1. Verfahren zum Schützen eines Flash-Speichers in einem
Computersystem vor unbeabsichtigten oder nicht autorisierten
Modifikationen, wobei das Computersystem ferner einen Pro
zessor, einen Systemspeicher und eine Speichersteuereinrich
tung aufweist, umfassend die Schritte:
Laden eines ein neues Flash-Speicherabbild und eine di gitale Unterschrift enthaltenden Flash-Speicheraktualisie rungsprogramms in einen Abschnitt des Systemspeichers;
Konfigurieren der Speichersteuereinrichtung, um den Pro zessor derart einzuschränken, daß er nur auf den Flash-Spei cher und den Abschnitt des Systemspeichers zugreifen kann;
Überprüfen des Flash-Speicher-Aktualisierungsprogramms unter Verwendung der digitalen Unterschrift; und
Aktualisieren des Flash-Speichers nur dann, wenn das Flash-Speicher-Aktualisierungsprogramm authentisch ist.
Laden eines ein neues Flash-Speicherabbild und eine di gitale Unterschrift enthaltenden Flash-Speicheraktualisie rungsprogramms in einen Abschnitt des Systemspeichers;
Konfigurieren der Speichersteuereinrichtung, um den Pro zessor derart einzuschränken, daß er nur auf den Flash-Spei cher und den Abschnitt des Systemspeichers zugreifen kann;
Überprüfen des Flash-Speicher-Aktualisierungsprogramms unter Verwendung der digitalen Unterschrift; und
Aktualisieren des Flash-Speichers nur dann, wenn das Flash-Speicher-Aktualisierungsprogramm authentisch ist.
2. Verfahren nach Anspruch 1, dadurch gekennzeichnet,
daß der Ladeschritt umfaßt:
Laden des Flash-Speicher-Aktualisierungsprogramms in ei nen Satz von in dem Systemspeicher enthaltenen Adressen, wo bei der Satz von Adressen eine Startadresse und eine Länge hat;
Laden eines Basis-Registers mit der Startadresse; und
Laden eines Grenze-Registers mit der Länge.
Laden des Flash-Speicher-Aktualisierungsprogramms in ei nen Satz von in dem Systemspeicher enthaltenen Adressen, wo bei der Satz von Adressen eine Startadresse und eine Länge hat;
Laden eines Basis-Registers mit der Startadresse; und
Laden eines Grenze-Registers mit der Länge.
3. Verfahren nach Anspruch 2, dadurch gekennzeichnet,
daß der Konfigurierungsschritt umfaßt:
Liefern eines Speicherzugriffssperrsignals an die Spei chersteuereinrichtung; und
Setzen eines Speicheradressenfensterdetektors, um ein Speicherzugriffsfreigabesignal an die Speichersteuereinrich tung zu erzeugen.
Liefern eines Speicherzugriffssperrsignals an die Spei chersteuereinrichtung; und
Setzen eines Speicheradressenfensterdetektors, um ein Speicherzugriffsfreigabesignal an die Speichersteuereinrich tung zu erzeugen.
4. Verfahren nach Anspruch 3, dadurch gekennzeichnet,
daß der Konfigurierschritt das Liefern eines Cache-Zugriffs
sperrsignals an die Speichersteuereinrichtung und den Pro
zessor umfaßt.
5. Verfahren nach Anspruch 1, dadurch gekennzeichnet,
daß der Überprüfungsschritt die Schritte umfaßt:
Entschlüsseln der digitalen Unterschrift, um einen ur sprünglichen Hash-Wert zu erlangen;
Berechnen eines unabhängigen Hash-Werts für das Flash- Speicher-Aktualisierungsprogramm; und
Vergleichen des ursprünglichen Hash-Werts und des unab hängigen Hash-Werts hinsichtlich einer Übereinstimmung.
Entschlüsseln der digitalen Unterschrift, um einen ur sprünglichen Hash-Wert zu erlangen;
Berechnen eines unabhängigen Hash-Werts für das Flash- Speicher-Aktualisierungsprogramm; und
Vergleichen des ursprünglichen Hash-Werts und des unab hängigen Hash-Werts hinsichtlich einer Übereinstimmung.
6. Verfahren nach Anspruch 1, dadurch gekennzeichnet,
daß der Aktualisierungsschritt umfaßt:
Setzen eines Flash-Speicher-Programmierfreigaberegi sters, um eine Programmierung des Flash-Speichers zu ermög lichen; und
Ausführen des Flash-Speicher-Aktualisierungsprogramms.
Setzen eines Flash-Speicher-Programmierfreigaberegi sters, um eine Programmierung des Flash-Speichers zu ermög lichen; und
Ausführen des Flash-Speicher-Aktualisierungsprogramms.
7. Vorrichtung zum Schützen eines Flash-Speichers in ei
nem Computersystem vor unbeabsichtigten oder nicht autori
sierten Modifikationen, wobei das Computersystem ferner ei
nen Prozessor, einen Systemspeicher und eine Speichersteuer
einrichtung aufweist, mit:
einem mit dem Prozessor, der Speichersteuereinrichtung, einem ersten Eingang eines ersten logischen Gatters und ei nem ersten Eingang eines zweiten logischen Gatters gekoppel ten Speicheradressen/Fenster-Detektor, wobei das erste logi sche Gatter einen mit der Speichersteuereinrichtung gekop pelten Ausgang und das zweite logische Gatter einen zweiten Eingang zum Empfangen eines Systemspeicher-Zugriffsfreigabe signals aufweist;
einer mit dem Systemspeicher, der Speichersteuereinrich tung, dem Flash-Speicher, dem Speicheradressen/Fenster-De tektor, einem Ausgang eines dritten logischen Gatters und einem ersten Eingang eines vierten logischen Gatters gekop pelte Speicherfenstersteuerung, wobei das vierte logische Gatter einen zweiten Eingang zum Empfangen eines Flash-Spei cher-Programmierfreigabesignals aufweist;
einem mit einem Ausgang des zweiten logischen Gatters, einem zweiten Eingang des ersten logischen Gatters und einem Eingang des dritten logischen Gatters gekoppeltes System speicher-Zugriffsfreigaberegister;
einem mit einem Ausgang des vierten logischen Gatters gekoppeltes Flash-Speicher-Programmierfreigaberegister; und
einer mit dem Flash-Speicher-Programmierfreigaberegister und dem Flash-Speicher gekoppelte Flash-Speicher-Program mierschaltung.
einem mit dem Prozessor, der Speichersteuereinrichtung, einem ersten Eingang eines ersten logischen Gatters und ei nem ersten Eingang eines zweiten logischen Gatters gekoppel ten Speicheradressen/Fenster-Detektor, wobei das erste logi sche Gatter einen mit der Speichersteuereinrichtung gekop pelten Ausgang und das zweite logische Gatter einen zweiten Eingang zum Empfangen eines Systemspeicher-Zugriffsfreigabe signals aufweist;
einer mit dem Systemspeicher, der Speichersteuereinrich tung, dem Flash-Speicher, dem Speicheradressen/Fenster-De tektor, einem Ausgang eines dritten logischen Gatters und einem ersten Eingang eines vierten logischen Gatters gekop pelte Speicherfenstersteuerung, wobei das vierte logische Gatter einen zweiten Eingang zum Empfangen eines Flash-Spei cher-Programmierfreigabesignals aufweist;
einem mit einem Ausgang des zweiten logischen Gatters, einem zweiten Eingang des ersten logischen Gatters und einem Eingang des dritten logischen Gatters gekoppeltes System speicher-Zugriffsfreigaberegister;
einem mit einem Ausgang des vierten logischen Gatters gekoppeltes Flash-Speicher-Programmierfreigaberegister; und
einer mit dem Flash-Speicher-Programmierfreigaberegister und dem Flash-Speicher gekoppelte Flash-Speicher-Program mierschaltung.
8. Vorrichtung nach Anspruch 7, dadurch gekennzeichnet,
daß das erste logische Gatter ein ODER-Gatter ist.
9. Vorrichtung nach Anspruch 7, dadurch gekennzeichnet,
daß das zweite logische Gatter ein UND-Gatter ist.
10. Vorrichtung nach Anspruch 7, dadurch gekennzeichnet,
daß das dritte logische Gatter ein NICHT-Gatter ist.
11. Vorrichtung nach Anspruch 7, dadurch gekennzeichnet,
daß das vierte logische Gatter ein UND-Gatter ist.
12. Vorrichtung nach Anspruch 7, dadurch gekennzeichnet,
daß der Systemspeicher einen Cache-Speicher enthält.
13. Vorrichtung nach Anspruch 7, dadurch gekennzeichnet,
daß die Speicherfenstersteuerung einen Registersatz enthält.
14. Vorrichtung nach Anspruch 13, dadurch gekennzeich
net, daß der Registersatz ein Basis-Register und ein Grenze-
Register umfaßt.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/673,301 US5778070A (en) | 1996-06-28 | 1996-06-28 | Method and apparatus for protecting flash memory |
PCT/US1997/011301 WO1998000846A1 (en) | 1996-06-28 | 1997-06-25 | Method and apparatus for protecting flash memory |
Publications (1)
Publication Number | Publication Date |
---|---|
DE19781829C2 true DE19781829C2 (de) | 2001-02-22 |
Family
ID=24702093
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19781829T Pending DE19781829T1 (de) | 1996-06-28 | 1997-06-25 | Verfahren und Vorrichtung zum Schützen von Flash-Speicher |
DE19781829A Expired - Lifetime DE19781829C2 (de) | 1996-06-28 | 1997-06-25 | Verfahren und Vorrichtung zum Schützen eines Flash-Speichers |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19781829T Pending DE19781829T1 (de) | 1996-06-28 | 1997-06-25 | Verfahren und Vorrichtung zum Schützen von Flash-Speicher |
Country Status (8)
Country | Link |
---|---|
US (3) | US5778070A (de) |
KR (1) | KR100294829B1 (de) |
CN (1) | CN1229513B (de) |
AU (1) | AU3644897A (de) |
DE (2) | DE19781829T1 (de) |
GB (1) | GB2330228B (de) |
TW (1) | TW347515B (de) |
WO (1) | WO1998000846A1 (de) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE10137505B4 (de) * | 2001-07-16 | 2005-06-23 | Francotyp-Postalia Ag & Co. Kg | Anordnung und Verfahren zum Ändern der Funktionalität eines Sicherheitsmoduls |
Families Citing this family (160)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE19525916A1 (de) * | 1995-07-04 | 1997-01-09 | Siemens Ag | Verfahren zum Aktualisieren des Speicherinhaltes eines elektronischen Speichers eines elektronischen Gerätes |
US5778070A (en) * | 1996-06-28 | 1998-07-07 | Intel Corporation | Method and apparatus for protecting flash memory |
US6275911B1 (en) * | 1996-09-20 | 2001-08-14 | Denso Corporation | Memory writing device for an electronic device |
GB2317722B (en) | 1996-09-30 | 2001-07-18 | Nokia Mobile Phones Ltd | Memory device |
DE19716015A1 (de) * | 1997-04-17 | 1998-10-29 | Ibm | Einbringen von Information auf einer Chipkarte |
US6119212A (en) * | 1997-04-23 | 2000-09-12 | Advanced Micro Devices, Inc. | Root size decrease on a UNIX based computer system |
KR100258966B1 (ko) * | 1997-05-02 | 2000-06-15 | 윤종용 | 시리얼 통신을 이용한 바이오스 업그레이드 방법 |
US6175924B1 (en) * | 1997-06-20 | 2001-01-16 | International Business Machines Corp. | Method and apparatus for protecting application data in secure storage areas |
US6272631B1 (en) * | 1997-06-30 | 2001-08-07 | Microsoft Corporation | Protected storage of core data secrets |
US7246098B1 (en) * | 1997-07-15 | 2007-07-17 | Silverbrook Research Pty Ltd | Consumable authentication protocol and system |
US6009524A (en) * | 1997-08-29 | 1999-12-28 | Compact Computer Corp | Method for the secure remote flashing of a BIOS memory |
US6611599B2 (en) * | 1997-09-29 | 2003-08-26 | Hewlett-Packard Development Company, L.P. | Watermarking of digital object |
US6094702A (en) * | 1997-10-30 | 2000-07-25 | Micron Technology, Inc. | Method and apparatus for enabling access to computer system resources |
US20020069316A1 (en) * | 1998-04-15 | 2002-06-06 | Mattison Phillip E. | Method and apparatus for protecting flash memory |
US6275931B1 (en) * | 1998-06-22 | 2001-08-14 | Elsag International N.V. | Method and apparatus for upgrading firmware boot and main codes in a programmable memory |
US6735696B1 (en) * | 1998-08-14 | 2004-05-11 | Intel Corporation | Digital content protection using a secure booting method and apparatus |
US6463535B1 (en) * | 1998-10-05 | 2002-10-08 | Intel Corporation | System and method for verifying the integrity and authorization of software before execution in a local platform |
AUPP734298A0 (en) * | 1998-11-26 | 1998-12-24 | Aristocrat Leisure Industries Pty Ltd | Electronic casino gaming with authentication and improved security |
JP3219064B2 (ja) * | 1998-12-28 | 2001-10-15 | インターナショナル・ビジネス・マシーンズ・コーポレーション | デジタルデータ認証システム |
FR2788353B1 (fr) * | 1999-01-11 | 2001-02-23 | St Microelectronics Sa | Microprocesseur avec circuits de protection pour securiser l'acces a ses registres |
US6408387B1 (en) * | 1999-01-22 | 2002-06-18 | Intel Corporation | Preventing unauthorized updates to a non-volatile memory |
DE19911794B4 (de) * | 1999-03-17 | 2005-10-06 | Robert Bosch Gmbh | Verfahren und Vorrichtung zur Absicherung bei Veränderung des Speicherinhalts von Steuergeräten |
US6643374B1 (en) | 1999-03-31 | 2003-11-04 | Intel Corporation | Duty cycle corrector for a random number generator |
US6795837B1 (en) | 1999-03-31 | 2004-09-21 | Intel Corporation | Programmable random bit source |
US6757827B1 (en) | 1999-04-26 | 2004-06-29 | Unisys Corporation | Autonomously secured image data |
WO2001004753A1 (en) * | 1999-07-14 | 2001-01-18 | Recourse Technologies, Inc. | System and method for tracking the source of a computer attack |
US6981155B1 (en) * | 1999-07-14 | 2005-12-27 | Symantec Corporation | System and method for computer security |
US7117532B1 (en) * | 1999-07-14 | 2006-10-03 | Symantec Corporation | System and method for generating fictitious content for a computer |
US6715074B1 (en) * | 1999-07-27 | 2004-03-30 | Hewlett-Packard Development Company, L.P. | Virus resistant and hardware independent method of flashing system bios |
US7814337B2 (en) * | 2000-01-06 | 2010-10-12 | Super Talent Electronics, Inc. | Secure flash-memory card reader with host-encrypted data on a flash-controller-mastered bus parallel to a local CPU bus carrying encrypted hashed password and user ID |
US6826697B1 (en) | 1999-08-30 | 2004-11-30 | Symantec Corporation | System and method for detecting buffer overflow attacks |
US6996843B1 (en) | 1999-08-30 | 2006-02-07 | Symantec Corporation | System and method for detecting computer intrusions |
US7065657B1 (en) | 1999-08-30 | 2006-06-20 | Symantec Corporation | Extensible intrusion detection system |
US7085936B1 (en) | 1999-08-30 | 2006-08-01 | Symantec Corporation | System and method for using login correlations to detect intrusions |
US7203962B1 (en) | 1999-08-30 | 2007-04-10 | Symantec Corporation | System and method for using timestamps to detect attacks |
US6647400B1 (en) | 1999-08-30 | 2003-11-11 | Symantec Corporation | System and method for analyzing filesystems to detect intrusions |
DE19950118C2 (de) * | 1999-10-18 | 2002-03-07 | Texas Instruments Deutschland | Verfahren zum Verhindern eines unbefugten Zugriffs auf einen Speicher |
US6671407B1 (en) * | 1999-10-19 | 2003-12-30 | Microsoft Corporation | System and method for hashing digital images |
US6581159B1 (en) * | 1999-12-23 | 2003-06-17 | Intel Corporation | Secure method of updating bios by using a simply authenticated external module to further validate new firmware code |
FI111567B (fi) * | 1999-12-27 | 2003-08-15 | Nokia Corp | Menetelmä ohjelmamoduulin lataamiseksi |
US6757832B1 (en) * | 2000-02-15 | 2004-06-29 | Silverbrook Research Pty Ltd | Unauthorized modification of values in flash memory |
US7073064B1 (en) * | 2000-03-31 | 2006-07-04 | Hewlett-Packard Development Company, L.P. | Method and apparatus to provide enhanced computer protection |
US6625729B1 (en) * | 2000-03-31 | 2003-09-23 | Hewlett-Packard Company, L.P. | Computer system having security features for authenticating different components |
US6687721B1 (en) | 2000-03-31 | 2004-02-03 | Intel Corporation | Random number generator with entropy accumulation |
US7089595B1 (en) | 2000-03-31 | 2006-08-08 | Intel Corporation | Device and method for disabling an override hardware pin assertion |
US6792438B1 (en) * | 2000-03-31 | 2004-09-14 | Intel Corporation | Secure hardware random number generator |
WO2001077837A1 (en) * | 2000-04-11 | 2001-10-18 | Mathis Richard M | Method and apparatus for computer memory protection and verification |
TW461997B (en) * | 2000-05-24 | 2001-11-01 | Asustek Comp Inc | Write protection method of programmable chipset software |
JP2002014871A (ja) * | 2000-06-29 | 2002-01-18 | Fujitsu Ltd | コンテンツチェック方法、コンテンツ更新方法、および処理装置 |
US6986052B1 (en) * | 2000-06-30 | 2006-01-10 | Intel Corporation | Method and apparatus for secure execution using a secure memory partition |
US7032114B1 (en) | 2000-08-30 | 2006-04-18 | Symantec Corporation | System and method for using signatures to detect computer intrusions |
US7484081B1 (en) * | 2000-10-10 | 2009-01-27 | Altera Corporation | Method and apparatus for protecting designs in SRAM-based programmable logic devices |
US6724220B1 (en) | 2000-10-26 | 2004-04-20 | Cyress Semiconductor Corporation | Programmable microcontroller architecture (mixed analog/digital) |
US8176296B2 (en) | 2000-10-26 | 2012-05-08 | Cypress Semiconductor Corporation | Programmable microcontroller architecture |
US6938164B1 (en) * | 2000-11-22 | 2005-08-30 | Microsoft Corporation | Method and system for allowing code to be securely initialized in a computer |
US6728876B1 (en) * | 2000-12-27 | 2004-04-27 | Cisco Technology, Inc. | Method and apparatus to use non-volatile read/write memory for bootstrap code and processes by relocating write instructions |
US7350083B2 (en) * | 2000-12-29 | 2008-03-25 | Intel Corporation | Integrated circuit chip having firmware and hardware security primitive device(s) |
DE10113531A1 (de) * | 2001-03-20 | 2002-10-17 | Infineon Technologies Ag | Datenträger |
US6996721B2 (en) * | 2001-03-27 | 2006-02-07 | Micron Technology, Inc. | Flash device security method utilizing a check register |
US8458689B2 (en) * | 2001-03-30 | 2013-06-04 | Roderick A. Barman | Method and apparatus for reprogramming engine controllers |
US20020144121A1 (en) * | 2001-03-30 | 2002-10-03 | Ellison Carl M. | Checking file integrity using signature generated in isolated execution |
US7096497B2 (en) | 2001-03-30 | 2006-08-22 | Intel Corporation | File checking using remote signing authority via a network |
US20020147918A1 (en) * | 2001-04-05 | 2002-10-10 | Osthoff Harro R. | System and method for securing information in memory |
US7356188B2 (en) * | 2001-04-24 | 2008-04-08 | Microsoft Corporation | Recognizer of text-based work |
US6975743B2 (en) * | 2001-04-24 | 2005-12-13 | Microsoft Corporation | Robust and stealthy video watermarking into regions of successive frames |
US7020775B2 (en) | 2001-04-24 | 2006-03-28 | Microsoft Corporation | Derivation and quantization of robust non-local characteristics for blind watermarking |
US6996273B2 (en) * | 2001-04-24 | 2006-02-07 | Microsoft Corporation | Robust recognizer of perceptually similar content |
US6973574B2 (en) * | 2001-04-24 | 2005-12-06 | Microsoft Corp. | Recognizer of audio-content in digital signals |
CA2449138A1 (en) * | 2001-05-30 | 2002-12-05 | Endress + Hauser Wetzer Gmbh + Co. Kg | Paperless recorder for tamper-proof recording of product process information |
US7484105B2 (en) * | 2001-08-16 | 2009-01-27 | Lenovo (Singapore) Ptd. Ltd. | Flash update using a trusted platform module |
JP4121333B2 (ja) * | 2001-08-27 | 2008-07-23 | 株式会社リコー | 画像形成装置,プログラム更新方法および記録媒体 |
US7406674B1 (en) * | 2001-10-24 | 2008-07-29 | Cypress Semiconductor Corporation | Method and apparatus for generating microcontroller configuration information |
US7272832B2 (en) * | 2001-10-25 | 2007-09-18 | Hewlett-Packard Development Company, L.P. | Method of protecting user process data in a secure platform inaccessible to the operating system and other tasks on top of the secure platform |
US8042093B1 (en) | 2001-11-15 | 2011-10-18 | Cypress Semiconductor Corporation | System providing automatic source code generation for personalization and parameterization of user modules |
US20030126459A1 (en) * | 2001-12-28 | 2003-07-03 | Chin-Jun Kao | Method of protecting basic input/output system |
US20030135744A1 (en) * | 2002-01-11 | 2003-07-17 | International Business Machines Corporation | Method and system for programming a non-volatile device in a data processing system |
US7017004B1 (en) * | 2002-03-29 | 2006-03-21 | Microsoft Corporation | System and method for updating contents of a flash ROM |
US7398554B1 (en) * | 2002-04-02 | 2008-07-08 | Winbond Electronics Corporation | Secure lock mechanism based on a lock word |
US20050251305A1 (en) * | 2002-06-03 | 2005-11-10 | Junkei Sato | Electronic control apparatus |
US20040003265A1 (en) * | 2002-06-26 | 2004-01-01 | International Business Machines Corporation | Secure method for BIOS flash data update |
US7095873B2 (en) * | 2002-06-28 | 2006-08-22 | Microsoft Corporation | Watermarking via quantization of statistics of overlapping regions |
US7006703B2 (en) | 2002-06-28 | 2006-02-28 | Microsoft Corporation | Content recognizer via probabilistic mirror distribution |
US20040015709A1 (en) * | 2002-07-18 | 2004-01-22 | Bei-Chuan Chen | Software delivery device and method for providing software copy protection |
JP2004054834A (ja) * | 2002-07-24 | 2004-02-19 | Matsushita Electric Ind Co Ltd | プログラム開発方法、プログラム開発支援装置およびプログラム実装方法 |
EP1795993B1 (de) * | 2002-07-30 | 2018-02-28 | Fujitsu Limited | Verfahren und Gerät zur Wiedergabe von Information mit einem Sicherheitsmodul |
US6948041B2 (en) * | 2002-10-24 | 2005-09-20 | Micron Technology, Inc. | Permanent memory block protection in a flash memory device |
DE60304602T2 (de) * | 2002-11-18 | 2006-12-28 | Arm Ltd., Cherry Hinton | Ausnahmearten innerhalb eines sicheren verarbeitungssystems |
FR2848702B1 (fr) * | 2002-12-12 | 2005-03-18 | A S K | Procede securise de modification de donnees enregistrees dans une carte a memoire |
US7409721B2 (en) * | 2003-01-21 | 2008-08-05 | Symantac Corporation | Network risk analysis |
US7284136B2 (en) * | 2003-01-23 | 2007-10-16 | Intel Corporation | Methods and apparatus for implementing a secure resume |
EP1447733A1 (de) * | 2003-02-17 | 2004-08-18 | Hewlett-Packard Development Company, L.P. | Datenverarbeitungssystem und Verfahren |
JP2004287541A (ja) * | 2003-03-19 | 2004-10-14 | Matsushita Electric Ind Co Ltd | 不揮発性メモリのアクセス制御システム |
US7644288B2 (en) * | 2003-03-19 | 2010-01-05 | Ricoh Company, Ltd. | Image forming apparauts that checks authenticity of an update program |
US20090267747A1 (en) * | 2003-03-31 | 2009-10-29 | Rivest Ronald L | Security and Data Collision Systems and Related Techniques for Use With Radio Frequency Identification Systems |
TWI266240B (en) * | 2003-05-20 | 2006-11-11 | Via Tech Inc | A method preventing to re-write MAC address of DMI's peripheral devices |
US6842371B2 (en) * | 2003-06-03 | 2005-01-11 | Micron Technology, Inc. | Permanent master block lock in a memory device |
US20040268143A1 (en) * | 2003-06-30 | 2004-12-30 | Poisner David I. | Trusted input for mobile platform transactions |
US7240201B2 (en) * | 2003-08-01 | 2007-07-03 | Hewlett-Packard Development Company, L.P. | Method and apparatus to provide secure communication between systems |
US7177888B2 (en) | 2003-08-01 | 2007-02-13 | Intel Corporation | Programmable random bit source |
US7228432B2 (en) * | 2003-09-11 | 2007-06-05 | Angelo Michael F | Method and apparatus for providing security for a computer system |
US8332652B2 (en) * | 2003-10-01 | 2012-12-11 | International Business Machines Corporation | Computing device that securely runs authorized software |
US7225318B2 (en) * | 2003-10-08 | 2007-05-29 | Intel Corporation | Dynamic prefetch in continuous burst read operation |
US7496958B2 (en) * | 2003-10-29 | 2009-02-24 | Qualcomm Incorporated | System for selectively enabling operating modes of a device |
US7831832B2 (en) * | 2004-01-06 | 2010-11-09 | Microsoft Corporation | Digital goods representation based upon matrix invariances |
US20050165690A1 (en) * | 2004-01-23 | 2005-07-28 | Microsoft Corporation | Watermarking via quantization of rational statistics of regions |
US7382880B2 (en) * | 2004-01-26 | 2008-06-03 | Hewlett-Packard Development Company, L.P. | Method and apparatus for initializing multiple security modules |
US7930503B2 (en) * | 2004-01-26 | 2011-04-19 | Hewlett-Packard Development Company, L.P. | Method and apparatus for operating multiple security modules |
CN1926541A (zh) * | 2004-03-17 | 2007-03-07 | Abb研究有限公司 | 用于数据一致性验证的设备和方法 |
US7770014B2 (en) * | 2004-04-30 | 2010-08-03 | Microsoft Corporation | Randomized signal transforms and their applications |
JP2006067488A (ja) * | 2004-08-30 | 2006-03-09 | Mitsubishi Electric Corp | 携帯通信端末 |
US8612772B1 (en) | 2004-09-10 | 2013-12-17 | Altera Corporation | Security core using soft key |
US8566616B1 (en) | 2004-09-10 | 2013-10-22 | Altera Corporation | Method and apparatus for protecting designs in SRAM-based programmable logic devices and the like |
US20060080540A1 (en) * | 2004-10-08 | 2006-04-13 | Robert Arnon | Removable/detachable operating system |
US7130209B2 (en) * | 2004-10-15 | 2006-10-31 | Atmel Corporation | Flexible OTP sector protection architecture for flash memories |
US7809949B2 (en) * | 2005-07-26 | 2010-10-05 | Apple Inc. | Configuration of a computing device in a secure manner |
US9489496B2 (en) | 2004-11-12 | 2016-11-08 | Apple Inc. | Secure software updates |
US7523350B2 (en) * | 2005-04-01 | 2009-04-21 | Dot Hill Systems Corporation | Timer-based apparatus and method for fault-tolerant booting of a storage controller |
US7711989B2 (en) * | 2005-04-01 | 2010-05-04 | Dot Hill Systems Corporation | Storage system with automatic redundant code component failure detection, notification, and repair |
WO2007004219A2 (en) * | 2005-07-04 | 2007-01-11 | Discretix Technologies Ltd. | System, device and method of verifying that a code is executed by a processor |
KR100970040B1 (ko) * | 2005-08-03 | 2010-07-16 | 엔엑스피 비 브이 | 보안키 보호 방법, 보안키 보호 방법에 사용되는 실행 전용 루틴을 구비한 컴퓨터 판독가능 저장 매체 및 보안 단말기 |
US8135958B2 (en) * | 2005-11-22 | 2012-03-13 | International Business Machines Corporation | Method, system, and apparatus for dynamically validating a data encryption operation |
US8914557B2 (en) | 2005-12-16 | 2014-12-16 | Microsoft Corporation | Optimizing write and wear performance for a memory |
US7500095B2 (en) | 2006-03-15 | 2009-03-03 | Dell Products L.P. | Chipset-independent method for locally and remotely updating and configuring system BIOS |
US8019994B2 (en) * | 2006-04-13 | 2011-09-13 | Hewlett-Packard Development Company, L.P. | Authentication of a request to alter at least one of a BIOS and a setting associated with the BIOS |
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 |
US7603587B2 (en) * | 2006-05-26 | 2009-10-13 | Intel Corporation | Updating a memory block without status logging |
US7987358B1 (en) * | 2006-06-09 | 2011-07-26 | Xilinx, Inc. | Methods of authenticating a user design in a programmable integrated circuit |
US8863230B1 (en) * | 2006-06-09 | 2014-10-14 | Xilinx, Inc. | Methods of authenticating a programmable integrated circuit in combination with a non-volatile memory device |
US8001385B2 (en) * | 2006-06-21 | 2011-08-16 | Intel Corporation | Method and apparatus for flash updates with secure flash |
US8190919B2 (en) * | 2006-11-07 | 2012-05-29 | Spansion Llc | Multiple stakeholder secure memory partitioning and access control |
US8161353B2 (en) | 2007-12-06 | 2012-04-17 | Fusion-Io, Inc. | Apparatus, system, and method for validating that a correct data segment is read from a data storage device |
US8402201B2 (en) | 2006-12-06 | 2013-03-19 | Fusion-Io, Inc. | Apparatus, system, and method for storage space recovery in solid-state storage |
US8151082B2 (en) * | 2007-12-06 | 2012-04-03 | Fusion-Io, Inc. | Apparatus, system, and method for converting a storage request into an append data storage command |
DE112006004173T5 (de) * | 2006-12-15 | 2009-11-12 | Agere Systems, Inc. | Schutz eines programmierbaren Speichers gegen unberechtigte Veränderung |
US7802069B2 (en) * | 2007-03-07 | 2010-09-21 | Harris Corporation | Method and apparatus for protecting flash memory |
US9053323B2 (en) * | 2007-04-13 | 2015-06-09 | Hewlett-Packard Development Company, L.P. | Trusted component update system and method |
US9354890B1 (en) | 2007-10-23 | 2016-05-31 | Marvell International Ltd. | Call stack structure for enabling execution of code outside of a subroutine and between call stack frames |
US8095775B1 (en) * | 2007-11-21 | 2012-01-10 | Marvell International Ltd. | Instruction pointers in very long instruction words |
US7841436B2 (en) | 2008-01-21 | 2010-11-30 | Amigo Mobility International | Personal mobility vehicle |
US8132253B2 (en) * | 2008-04-21 | 2012-03-06 | Dell Products L.P. | Memory security override protection for manufacturability of information handling systems |
US9032151B2 (en) * | 2008-09-15 | 2015-05-12 | Microsoft Technology Licensing, Llc | Method and system for ensuring reliability of cache data and metadata subsequent to a reboot |
US7953774B2 (en) | 2008-09-19 | 2011-05-31 | Microsoft Corporation | Aggregation of write traffic to a data store |
CN101839928B (zh) * | 2009-03-19 | 2013-04-24 | 北京普源精电科技有限公司 | 数字示波器和数据存取方法 |
US20110099423A1 (en) * | 2009-10-27 | 2011-04-28 | Chih-Ang Chen | Unified Boot Code with Signature |
US8621169B2 (en) * | 2009-12-10 | 2013-12-31 | Blackberry Limited | Method for address space layout randomization in execute-in-place code |
US9582443B1 (en) | 2010-02-12 | 2017-02-28 | Marvell International Ltd. | Serial control channel processor for executing time-based instructions |
US8884920B1 (en) | 2011-05-25 | 2014-11-11 | Marvell International Ltd. | Programmatic sensing of capacitive sensors |
US9098694B1 (en) | 2011-07-06 | 2015-08-04 | Marvell International Ltd. | Clone-resistant logic |
US9069553B2 (en) | 2011-09-06 | 2015-06-30 | Marvell World Trade Ltd. | Switching tasks between heterogeneous cores |
US8842840B2 (en) | 2011-11-03 | 2014-09-23 | Arvind Gidwani | Demand based encryption and key generation and distribution systems and methods |
US9880908B2 (en) | 2013-04-23 | 2018-01-30 | Hewlett-Packard Development Company, L.P. | Recovering from compromised system boot code |
CN105144185B (zh) | 2013-04-23 | 2018-06-05 | 惠普发展公司,有限责任合伙企业 | 验证控制器代码和系统启动代码 |
US9275697B2 (en) | 2013-10-03 | 2016-03-01 | Western Digital Technologies, Inc. | Utilizing destructive features as RAM code for a storage device |
KR102429906B1 (ko) | 2015-10-13 | 2022-08-05 | 삼성전자주식회사 | 스토리지 장치, 상기 스토리지 장치와 통신하는 호스트 및 상기 스토리지 장치를 포함하는 전자 장치 |
US10185633B2 (en) * | 2015-12-15 | 2019-01-22 | Intel Corporation | Processor state integrity protection using hash verification |
US10768819B2 (en) * | 2016-07-22 | 2020-09-08 | Pure Storage, Inc. | Hardware support for non-disruptive upgrades |
FR3057086B1 (fr) * | 2016-10-04 | 2018-11-23 | Stmicroelectronics (Rousset) Sas | Procede de gestion d'une mise a jour d'au moins un microcode au sein d'une unite de traitement, par exemple un microcontroleur, et unite de traitement correspondante |
WO2020159533A1 (en) | 2019-02-01 | 2020-08-06 | Hewlett-Packard Development Company, L.P. | Security credential derivation |
US11520662B2 (en) | 2019-02-11 | 2022-12-06 | Hewlett-Packard Development Company, L.P. | Recovery from corruption |
JP7263101B2 (ja) * | 2019-04-26 | 2023-04-24 | キヤノン株式会社 | 情報処理装置、データ検証方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0514289A1 (de) * | 1991-04-16 | 1992-11-19 | Hewlett-Packard Company | Rechner-Schutzsystem |
DE19525105A1 (de) * | 1994-06-29 | 1996-01-25 | Mitsubishi Electric Corp | Informationsverarbeitungssystem |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE69033262T2 (de) * | 1989-04-13 | 2000-02-24 | Sandisk Corp | EEPROM-Karte mit Austauch von fehlerhaften Speicherzellen und Zwischenspeicher |
US5022077A (en) * | 1989-08-25 | 1991-06-04 | International Business Machines Corp. | Apparatus and method for preventing unauthorized access to BIOS in a personal computer system |
US6009495A (en) * | 1989-12-29 | 1999-12-28 | Packard Bell Nec | Protected address range in an electrically erasable programmable read only memory |
US5421006A (en) * | 1992-05-07 | 1995-05-30 | Compaq Computer Corp. | Method and apparatus for assessing integrity of computer system software |
US5412717A (en) * | 1992-05-15 | 1995-05-02 | Fischer; Addison M. | Computer system security method and apparatus having program authorization information data structures |
JP3328321B2 (ja) * | 1992-06-22 | 2002-09-24 | 株式会社日立製作所 | 半導体記憶装置 |
US5465299A (en) * | 1992-12-03 | 1995-11-07 | Hitachi, Ltd. | Electronic document processing system and method of forming digital signature |
US5592641A (en) * | 1993-06-30 | 1997-01-07 | Intel Corporation | Method and device for selectively locking write access to blocks in a memory array using write protect inputs and block enabled status |
JP3310060B2 (ja) * | 1993-09-13 | 2002-07-29 | 株式会社東芝 | 記憶装置および同装置の制御プログラム書換え方法 |
US5442704A (en) * | 1994-01-14 | 1995-08-15 | Bull Nh Information Systems Inc. | Secure memory card with programmed controlled security access control |
US5568641A (en) * | 1995-01-18 | 1996-10-22 | Hewlett-Packard Company | Powerfail durable flash EEPROM upgrade |
US5727061A (en) * | 1995-02-13 | 1998-03-10 | Eta Technologies Corporation | Personal access management systems |
US5675645A (en) * | 1995-04-18 | 1997-10-07 | Ricoh Company, Ltd. | Method and apparatus for securing executable programs against copying |
US5721877A (en) * | 1995-05-31 | 1998-02-24 | Ast Research, Inc. | Method and apparatus for limiting access to nonvolatile memory device |
US5748940A (en) * | 1995-08-17 | 1998-05-05 | Compaq Computer Corporation | Secure updating of non-volatile memory |
US5757915A (en) * | 1995-08-25 | 1998-05-26 | Intel Corporation | Parameterized hash functions for access control |
US5781635A (en) * | 1995-12-29 | 1998-07-14 | Intel Corporation | Method and apparatus for improved digital message transaction model |
EP0880840A4 (de) * | 1996-01-11 | 2002-10-23 | Mrj Inc | Vorrichtung zur steuerung des zugriffs und der verteilung von digitalem eigentum |
US5778070A (en) * | 1996-06-28 | 1998-07-07 | Intel Corporation | Method and apparatus for protecting flash memory |
-
1996
- 1996-06-28 US US08/673,301 patent/US5778070A/en not_active Expired - Lifetime
-
1997
- 1997-06-25 DE DE19781829T patent/DE19781829T1/de active Pending
- 1997-06-25 AU AU36448/97A patent/AU3644897A/en not_active Abandoned
- 1997-06-25 CN CN971973881A patent/CN1229513B/zh not_active Expired - Fee Related
- 1997-06-25 WO PCT/US1997/011301 patent/WO1998000846A1/en active IP Right Grant
- 1997-06-25 DE DE19781829A patent/DE19781829C2/de not_active Expired - Lifetime
- 1997-06-25 KR KR1019980710731A patent/KR100294829B1/ko not_active IP Right Cessation
- 1997-06-25 GB GB9828576A patent/GB2330228B/en not_active Expired - Lifetime
- 1997-06-26 TW TW086108930A patent/TW347515B/zh not_active IP Right Cessation
-
1998
- 1998-04-15 US US09/060,679 patent/US6363463B1/en not_active Expired - Lifetime
-
2001
- 2001-12-19 US US10/033,850 patent/US6615355B2/en not_active Expired - Lifetime
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0514289A1 (de) * | 1991-04-16 | 1992-11-19 | Hewlett-Packard Company | Rechner-Schutzsystem |
DE19525105A1 (de) * | 1994-06-29 | 1996-01-25 | Mitsubishi Electric Corp | Informationsverarbeitungssystem |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE10137505B4 (de) * | 2001-07-16 | 2005-06-23 | Francotyp-Postalia Ag & Co. Kg | Anordnung und Verfahren zum Ändern der Funktionalität eines Sicherheitsmoduls |
Also Published As
Publication number | Publication date |
---|---|
US5778070A (en) | 1998-07-07 |
KR20000022308A (ko) | 2000-04-25 |
GB2330228A (en) | 1999-04-14 |
CN1229513A (zh) | 1999-09-22 |
US20020065978A1 (en) | 2002-05-30 |
KR100294829B1 (ko) | 2001-08-07 |
GB9828576D0 (en) | 1999-02-17 |
WO1998000846A1 (en) | 1998-01-08 |
DE19781829T1 (de) | 1999-06-17 |
CN1229513B (zh) | 2010-06-02 |
TW347515B (en) | 1998-12-11 |
GB2330228B (en) | 2001-02-28 |
US6363463B1 (en) | 2002-03-26 |
AU3644897A (en) | 1998-01-21 |
US6615355B2 (en) | 2003-09-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE19781829C2 (de) | Verfahren und Vorrichtung zum Schützen eines Flash-Speichers | |
DE112018002031B4 (de) | Sichern einer betriebssystemkonfiguration unter verwendung von hardware | |
DE102008011925B4 (de) | Sicheres Initialisieren von Computersystemen | |
DE69815599T2 (de) | Verfahren und Vorrichtung zum Schutz von Anwendungsdaten in sicheren Speicherbereichen | |
DE102008021567B4 (de) | Computersystem mit sicherem Hochlaufmechanismus auf der Grundlage einer Verschlüsselung mit symmetrischem Schlüssel | |
DE69725833T2 (de) | Gesicherte zweiteilige Benutzer-Authentifizierung in einem Rechnernetz | |
DE60306952T2 (de) | Zuordnung von virtuellen zu physischen speicheradressen in einem system mit einem sicheren bereich und einem nicht sicheren bereich | |
DE60304602T2 (de) | Ausnahmearten innerhalb eines sicheren verarbeitungssystems | |
DE60308215T2 (de) | Prozessorschaltung zwischen sicheren und nicht sicheren modi | |
DE10195999B3 (de) | Computersystem mit einer in einem Chipsatz enthaltenen Speichersteuereinrichtung zum Kontrollieren von Zugriffen auf einen isolierten Speicher für eine isolierte Ausführung | |
DE69531112T2 (de) | Mechanismus zum verknüpfen von dateien auf einem emulierten system mit dem zentralsystem für den zugriff durch emulierte systembenutzer | |
DE112010004885T5 (de) | Bereitstellen von Integritätsüberprüfung und -bestätigung in einer verborgenen Ausführungsumgebung | |
DE112009002502T5 (de) | Multilayer inhalte-schützender Mikrocontoller | |
DE112009005466T5 (de) | Verfahren und Vorrichtung zum Bereitstellen einer sicheren Anwendungsausführung | |
WO2016131553A1 (de) | Autonom bootendes system mit einem sicherheitsmodul | |
DE102013200161A1 (de) | Datenverschlüsselung/-Komprimierung auf der Grundlage einer Speicheradressübersetzung | |
DE112007000363T5 (de) | Verfahren zum Bereitstellen sicherer Firmware | |
DE112009004762T5 (de) | System und verfahren zum durchführen einer verwaltunosoperation | |
DE112016000576T5 (de) | Sicheres Booten eines Computers von einer für den Benutzer vertrauenswürdigen Einheit aus | |
DE102008063335A1 (de) | Datenverarbeitungssystem, Verfahren zum Ausführen eines Verschlüsselungsalgorithmus und Verfahren zum Vorbereiten der Ausführung eines Verschlüsselungsalgorithmus | |
DE102010054614A1 (de) | Eindringen in eine gesicherte EDV-Umgebung unter Verwendung mehrerer authentifizierter Codemodule | |
DE10196440T5 (de) | Steuern des Zugriffs auf mehrere isolierte Speicher in einer isolierten Ausführungsumgebung | |
DE102020121075A1 (de) | Einrichtung und Verfahren zur Authentifizierung von Software | |
DE112018006401T5 (de) | Transparent zugeordnete flash-memory-sicherheit | |
EP2911080A1 (de) | Verfahren und Vorrichtung zum sicheren Initialisieren eines Computers |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
8125 | Change of the main classification |
Ipc: G06F 12/14 |
|
8607 | Notification of search results after publication | ||
D2 | Grant after examination | ||
8364 | No opposition during term of opposition | ||
R071 | Expiry of right |