DE69815599T2 - Verfahren und Vorrichtung zum Schutz von Anwendungsdaten in sicheren Speicherbereichen - Google Patents

Verfahren und Vorrichtung zum Schutz von Anwendungsdaten in sicheren Speicherbereichen Download PDF

Info

Publication number
DE69815599T2
DE69815599T2 DE69815599T DE69815599T DE69815599T2 DE 69815599 T2 DE69815599 T2 DE 69815599T2 DE 69815599 T DE69815599 T DE 69815599T DE 69815599 T DE69815599 T DE 69815599T DE 69815599 T2 DE69815599 T2 DE 69815599T2
Authority
DE
Germany
Prior art keywords
program
name
memory
certified
dpn
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
Application number
DE69815599T
Other languages
English (en)
Other versions
DE69815599D1 (de
Inventor
Todd Weston Arnold
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE69815599D1 publication Critical patent/DE69815599D1/de
Application granted granted Critical
Publication of DE69815599T2 publication Critical patent/DE69815599T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6209Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/007Encryption, En-/decode, En-/decipher, En-/decypher, Scramble, (De-)compress
    • G06F2211/008Public Key, Asymmetric Key, Asymmetric Encryption
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2115Third party

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)

Description

  • Die vorliegende Erfindung betrifft ein Verfahren und eine Vorrichtung zur Kontrolle der Echtheit von Anwendungsprogrammen; die aus einem unsicheren Speicher empfangen wurden, und zur Steuerung des Datenzugriffs durch solche Programme, wenn sie in einer sicheren Umgebung in einem Computer ausgeführt werden, um die Systemsicherheit zu bewahren.
  • Die Verwendung von einer Vorrichtung und von programmierten Verfahren, um Anwendungsprogramme am Zugriff oder an der Änderung von geschützten Speicherbereichen in einem Datenverarbeitungssystem zu hindern, ist in der Betriebssystemtechnik bekannt. Beispiele sind die US-Patentschriften 5 144 659 und 5 289 540 von Richard P. Jones. Jones beschreibt Hardware in Form eines programmierbaren zusätzlichen Speichers und einer Steuereinheit auf einer Plattenlaufwerk-Anpassungskarte, die die Steuerlogik-, Adressen- und Datensignalpfade zwischen der Zentraleinheit und dem Dateispeicher erfasst. Sobald die Hardware und die zugeordnete Software des Jones-Systems installiert worden sind, steuert das Betriebssystem das Dateisystem nicht mehr bzw. hat keinen Zugriff mehr auf dieses. Im Jones-System speichert der zusätzliche Speicher Signaturen aller gültigen Dateien. Die Dateisignaturen sind einfach zyklische Redundanzcodes (CRC). Solche Signaturen können gegen Virus-Angriffe schützen, indem sie erkennen, dass die Datei seit der letzten Berechnung des CRC durch einen Virus geändert wurde. Eine solche Signatur kann nicht gegen Hacker-Angriffe schützen, da nach einer Änderung eines Programms einfach ein neuer CRC berechnet, und angehängt werden kann.
  • In neuerer Zeit sind Berechtigungsebenen (privilege levels) in die Hardware-Zentraleinheit (CPU) selbst integriert worden, die beispielsweise Speichersegmente mit einer Ebene null vor einer direkten Adressierung durch auf der Ebene 3 ausgeführte Anwendungsprogramme schützen. Ein Beispiel ist in dem von Advanced Micro Devices im Januar 1994 veröffentlichten Am486 Mikroprozessor Software Users Manual auf den Seiten A-28 bis A-34 zu finden. Obwohl diese Schaltungen eine direkte Adressierung von einem Speicher auf der Überwachungsebene (supervisor level memory space) durch Anwendungsprogramme der Ebene 3 verhindern, kommt es vor, dass ein solcher Zugriff notwendig ist, und es gibt keinen Mechanismus im Mikroprozessor, um zu ermitteln, ob das Anwendungsprogramm berechtigt ist und ob die Daten, auf die zugegriffen werden muss, dem berechtigten Programm zugewiesen werden.
  • Die Verwendung einer Verschlüsselung zur-Überprüfung der Identität von Benutzern und der Echtheit von Programmen oder ID-Karten ist bekannt. Ein Beispiel für eine solche Technik ist die verschlüsselte 4755-Anpassungskarte von IBM. Die Lehre nach dem aktuellen Stand der Technik zeigt jedoch nicht, wie permanente Daten in einem sicheren Bereich geschützt werden können, wenn Anwendungen aus nichtsicheren Quellen geladen werden.
  • In Computersystemen, die mehrere Anwendungsprogramme ausführen und die Fähigkeit zum Speichern von langfristigen Daten für jene Programme aufweisen, besteht ein Bedarf für einen Schutz jedes Datenbereichs vor anderen Anwendungsprogrammen als demjenigen, das diesen Bereich erzeugte. Der Begriff "andere Programme" beinhaltet sowohl vollkommen andere Programme als auch Programme, die möglicherweise versuchen, sich als das Programm auszugeben, das die Daten erzeugte. Neue Versionen irgendeines Programms müssen jedoch in der Lage sein, auf die von früheren Versionen desselben Programms erzeugten Datenbereiche zuzugreifen.
  • In diesem bestimmten Szenario befinden sich die Daten permanent im Computerspeicher, während dies in Bezug auf die Anwendungsprogramme nicht der Fall ist. Die Anwendungsprogramme werden aus dem Speicher gelöscht, wenn sie nicht mehr benötigt werden, und anschließend werden sie zu einem späteren Zeitpunkt erneut geladen, wenn ihre Dienste wieder benötigt werden. Die von jedem Anwendungsprogramm verwendeten Datenbereiche bleiben im Computer, wobei sie in einem permanenten Datenträger gespeichert und vom Betriebssystem des Computers verwaltet werden. Wenn ein Anwendungsprogramm erneut geladen wird, muss ihm der Zugriff auf die ihm zugeordneten Daten erteilt, werden, es muss ihm jedoch nicht gestattet werden, auf Daten zuzugreifen, die anderen Anwendungsprogrammen zugeordnet werden. Auf ähnliche Weise müssen gleichzeitig ablaufende Anwendungsprogramme nicht in der Lage sein, auf die Daten des jeweils anderen zuzugreifen. Das Programmspeichermedium selbst, aus dem die Anwendungsprogramme erneut geladen werden, ist nicht unbedingt auf irgendeine Weise geschützt, folglich müssen die Anwendungsprogramme so strukturiert sein, dass sie ihren eigenen Schutz vor Änderung aufweisen, und dass sie geschützte Daten enthalten können, die verwendet werden können, um sie sicher den ihnen zugewiesenen Datenbereichen zuzuordnen.
  • Die europäische Patentanmeldung 778520 beschreibt ein System und Verfahren zum Ausführen überprüfbarer Programme mit einer Einrichtung zum Verwenden von nichtüberprüfbaren Programmen aus einer vertrauenswürdigen Quelle. Ein Computersystem enthält eine Programmausführungseinrichtung (program executer), die neutrale Programme mit überprüfbarer Architektur (verifiable architecture neutral programs) ausführt, und eine Klassenladeeinrichtung (class loader), die das Laden und die Ausführung von nichtüberprüfbaren Programmen verhindert, es sei denn (A), das nichtüberprüfbare Programm befindet sich in einem vertrauenswürdigen Verwahrungsort für solche Programme, oder (B) das nichtüberprüfbare Programm ist indirekt überprüfbar mit Hilfe einer digitalen Signatur auf dem nichtüberprüfbaren Programm, die beweist, dass das Programm von einer vertrauenswürdigen Quelle erzeugt wurde.
  • Die vorliegende Erfindung überwindet die Nachteile und Begrenzungen des Standes der Technik durch die Bereitstellung eines Verfahrens, einer Vorrichtung und eines Computerprogrammproduktes, wie sie in den angehängten Ansprüchen beansprucht werden. Die Erfindung überprüft leistungsfähig die Echtheit eines Anwendungsprogramms, das aus einem nichtsicheren Bereich in einen sicheren Bereich geladen wird, und ordnet dem überprüften Anwendungsprogramm bereits bestehende Datenbereiche im permanenten Speicher unter Ausschluss anderer Anwendungsprogramme zu.
  • Ein Vorteil der erfindungsgemäßen sicheren Zugriffssteuerung für permanente Datenbereiche ist, dass Anwendungsprogramme aus einem nichtsicheren Speicher geladen werden können und den Zugriff auf permanente Daten erhalten können, ohne die Sicherheit zu gefährden.
  • Noch ein weiterer Vorteil der Erfindung ist, dass die Berechtigungsebenen eines Prozessors zum Schutz von permanenten Daten verwendet werden können, während Anwendungsprogrammen der Zugriff auf die Daten gestattet wird, selbst wenn diese sieh nicht im permanenten Speicher befinden.
  • Ausführungsformen der Erfindung werden nun mit Bezugnahme auf die begleitenden Zeichnungen beschrieben, in denen:
  • 1 ein Blockschaltbild eines Computersystems ist, in dem die Erfindung verwendet werden kann.
  • 2 ein Blockschaltbild des verbesserten Betriebssystems gemäß der Erfindung ist.
  • 3 ein Flussdiagramm einer Anwendungsprogramm-Zertifizierungsprozesses gemäß der Erfindung ist.
  • 4 ein Flussdiagramm eines Ladevorgangs und einer Überprüfung eines Anwendungsprogramms gemäß der Erfindung ist.
  • 5 ein Flussdiagramm eines Anwendungsprogrammzugriffs auf einen Datenbereich ist.
  • Mit Bezugnahme auf 1 wird für die Beschreibung der vorliegenden Erfindung im Zusammenhang einer bestimmten Ausführungsform eine typische Personal-Computer-Architektur gezeigt, beispielsweise die in vielen IBM Personal Computern verwendete Konfiguration. Die vorliegende Erfindung kann außerdem in anderen digitalen Computerarchitekturen verwendet werden, beispielsweise in Minicomputer- und Großrechnerumgebungen, in lokalen und überregionalen Computernetzen. Es ist lediglich erforderlich, dass der Computer physisch sicher ist, um Angreifer daran zu hindern, die Schaltungen des Computers zu untersuchen oder zu ändern. Unter jenen Umständen, in denen der Computer sich nicht selbst physisch sicher machen kann, kann eine Sicherheitskarte 11 mit einem sicheren Modul 13, wie es beispielsweise in den US-Patentschriften 5 159 629 und 5 027 397 gezeigt wird, in der Ausführungsform der Erfindung verwendet werden.
  • Das Verarbeitungselement der Personal-Computer-Architektur ist ein Mikroprozessor 15, der beispielsweise ein INTEL 80486-, ein Pentium-Prozessor oder ein ähnlicher Prozessor sein kann. Der Mikroprozessor 15 ist mit einem Bus 17 verbunden, der einen Satz von Datenzeilen, einen Satz von Adressenzeilen und einen Satz von Steuerzeilen umfasst. Eine Vielzahl von E/A-Einheiten, die Speichereinheiten beinhalten, sind über gesonderte Adapter mit dem Bus 17 verbunden. Die E/A-Einheiten können Standardmerkmale des Personal Computers oder Steckeinrichtungen (plug-in options) sein. Zu diesen Einheiten können beispielsweise eine durch einen Grafikadapter 21 verbundene Farbanzeige 19, eine durch einen Adapter 25 verbundene Tastatur 23 und ein durch einen SCSI-Adapter 29 verbundenes Festplattenlaufwerk 27 gehören, wie es in IBM Computern und IBM-kompatiblen Computern bekanntermaßen der Fall ist. Die anderen Einheiten sind entweder als Teil des Personal Computers enthalten oder sind als Steckoptionen von der IBM Corporation und anderen Lieferanten erhältlich.
  • Der Arbeitsspeicher (RAM) 31 und der Nur-Lese-Speicher (ROM) 33 sind als Standardausrüstung in einem Personal Computer enthalten, obwohl über eine Steckeinrichtung zur Speichererweiterung zusätzlicher Arbeitsspeicher zur Ergänzung des RAM 31 hinzugefügt werden kann.
  • Zur Ausführung durch den Mikroprozessor 15 sind im ROM 33 eine Vielzahl von Befehlen gespeichert, die als das Basic Input/Output System oder BIOS bekannt sind. Das BIOS steuert die grundlegenden E/A-Vorgänge des Computers. Ein Betriebssystem, zum Beispiel die IBM OS/2-Betriebssystemsoftware von IBM Corporation, die allgemein mit der IBM Personal-Computer-Familie verwendet wird, wird in den RAM 31 geladen und in Verbindung mit dem im ROM 33 gespeicherten BIOS ausgeführt. Fachleute werden verstehen, dass das Personal-Computer-System so konfiguriert werden könnte, dass Teile des BIOS oder das gesamte BIOS im RAM 31 anstatt im ROM 33 gespeichert werden, so dass Änderungen an den grundlegenden Systemvorgängen durch Änderungen am BIOS-Programm ermöglicht werden, die sodann problemlos in den RAM 31 geladen werden könnten. Ähnlich können im RAM 31 gespeicherte Programme, Daten und Informationsdarstellungen im ROM 33 gespeichert werden.
  • Wie in 1 gezeigt wird, wird ein das Verfahren der Erfindung realisierendes Programm 35 vorteilhafterweise als Fertigungsprodukt ausgeführt, indem das Programm in eine CD-ROM 17 oder ein anderes tragbares Speichermedium eingebettet wird. Der Datenträger 37 kann von der Leseeinrichtung (reader) 39 gelesen werden, die durch den Adapter 41 mit dem Bus 17 verbunden ist. Außerdem kann das Programm 35 als spezielle Vorrichtung ausgeführt werden, indem die ausführbaren Befehle des Programms im RAM 31, im ROM 33 oder in einer Kombination von beiden und/oder im DASD 27 gespeichert werden, auf die der Mikroprozessor 15 über den Adapter 29 zur Ausführung durch den Mikroprozessor 15 zugreifen kann.
  • Außer der Verwendung im Hauptmikroprozessor 15 kann die Erfindung vorteilhafterweise in speziellen Einheiten verwendet werden, beispielsweise in der auch als kryptographischer Adapter 11 bezeichneten Sicherheitskarte 11, die mit dem Bus 17 verbunden ist. Wiederum kann das das Verfahren der Erfindung ausführende Programm 35 als eine spezielle Vorrichtung realisiert werden, indem die ausführbaren Befehle des Programms im RAM 53, im ROM 55 oder in einer Kombination aus beiden gespeichert und/oder aus dem DASD 27 in den RAM 53 geladen werden, wie oben beschrieben wird. Der kryptographische Adapter 11 enthält außerdem ein kryptographisches Verarbeitungsmodul 57 zum leistungsfähigen Ausführen von Algorithmen, wie etwa dem Datenverschlüsselungsstandard- (DES-) Algorithmus (Data Encryption Standard (DES) algorithm) und dem Rivest Shamir & Adleman- (RSA-) Algorithmus als Beispiele für erhältliche Algorithmen.
  • Die bevorzugte Ausführungsform der vorliegenden Erfindung wird in ein Betriebssystem aufgenommen und zu einem Teil von diesem gemacht, beispielsweise dem IBM OS/2-Betriebssystem, das in Blockschaltbildform in 2 gezeigt wird. Zur Vereinfachung der Beschreibung wird die Erfindung als Teil der sicheren kryptographischen Adapterkarte 11 von 1 beschrieben, und die nichtsichere Anwendungsquelle für ein zertifiziertes Anwendungsprogramm gemäß der Erfindung ist der DASD 27, der ebenfalls in 1 gezeigt wird.
  • In 2 erscheint der Betriebssystemkern 101 im Zentrum der Darstellung. Der Kern 101 führt die vielen Systemsteuerfunktionen aus, die benötigt werden, um das leistungsfähige Schreiben und Ausführen von Anwendungsprogrammen im Computer zu ermöglichen.
  • Eine Speicherzuweisung zu einer Anwendung ist eine der wichtigsten von einem Betriebssystem ausgeführten Steuerfunktionen.
  • Wie im Kapitel 4 "Speicherverwaltung" des von Ed Iacobucci geschriebenen und 1998 veröffentlichten OS/2 Programmers Guide beschrieben wird, ordnet das OS/2-Betriebssystem jedem Anwendungsprogramm lokale Adressräume zu und bildet diese lokalen Adressräume mittels lokaler Deskriptortabellen (Local Descriptor Tables) auf den realen Speicher ab.
  • Infolgedessen gibt es eine natürliche Trennung zwischen den Speichersegmenten von Anwendungsprogrammen. Das heißt, einem Anwendungsprogramm zugeordnete Segmente können nicht von einem anderen Anwendungsprogramm eingesehen oder geändert werden.
  • Das oben beschriebene Verfahren, das von Betriebssystemen verwendet wird, die auf dem Intel 80286 und höheren Mikroprozessoren ausgeführt werden, ist gut geeignet für Anwendungen, bei denen sich sowohl die Anwendungsprogramme als auch ihre Datenbereiche vorübergehend im Speicher befinden, und es kann eine lokale Deskriptortabelle eingerichtet werden und jedes Mal, wenn ein Anwendungsprogramm in den flüchtigen Speicher geladen wird, wird neuer Speicher zugeordnet. In Situationen, in denen die Daten in einem permanenten Speicher bleiben müssen, beispielsweise einem Flash-Speicher, muss eine Möglichkeit bereitgestellt werden, um den fortlaufend bestehenden Speicherbereich einem Anwendungsprogramm sicher erneut zuzuordnen, dessen Echtheit überprüft wurde und das erneut in den Speicher geladen wurde.
  • Vor der Ausführung eines Anwendungsprogramms, das beispielsweise aus einer DASD-Einheit geladen wurde, die sich außerhalb der sicheren Umgebung befindet, muss die Echtheit des Anwendungsprogramms überprüft werden. Andernfalls ist möglicherweise ein unzulässiges Programm (imposter program) geladen worden, und dieses kann die sichere Umgebung angreifen. Außerdem muss die erneute Zuweisung von einem permanenten Speicherbereich zu dem geladenen Programm die Trennung aufrechterhalten und darf nicht zulassen, dass dem neu geladenen Programm ein Speicherbereich eines anderen Anwendungsprogramms zugeordnet wird.
  • Die Überprüfung der Echtheit wird in der Ladeeinrichtung 111 gemäß der Erfindung durch eine vorhergehende Zertifizierung von Anwendungsprogrammen und eine Überprüfung von Anwendungsprogrammen ausgeführt, bevor sie in den sicheren Speicher geladen werden. Die Trennung wird durch den Security Relevant Data Item- (SRDI-) Verwalter 109 gemäß der Erfindung ausgeführt, indem die Kennzeichnungsfelder in einer Datenbereichtabelle (Data Area Table) mit der Anwendungsprogrammidentität verglichen werden. Die Datenbereichtabelle wird für eine neuartige Verbesserung des Betriebssystems verwaltet, die nun mit erneuter Bezugnahme auf 2 beschrieben wird.
  • Der RAM 53 und der ROM 55 von 1 sind im sicheren Modul 13 enthalten. Der RAM 53 und der ROM 55 enthalten das Betriebssystem, das in dieser Version der kryptographischen Adapterkarte der Erfindung ein Teil von OS/2 sein kann. Der Systemkern 101 verwaltet die Speicherzuordnung und andere Ressourcen, beispielsweise den Datenverschlüsselungsstandard- (DES-) Algorithmus über die DES-Ressourcenverwaltungseinrichtung 103 und den Rivest Shamir & Adleman (RSA) über die RSA-Ressourcenverwaltungseinrichtung 105.
  • Ein permanenter Speicher, beispielsweise ein Flash-Speicher oder ein batteriebetriebener Speicher, wird bei 107 bereitgestellt. Der reale Adressraum des permanenten Speichers 107 wird in die globale Deskriptortabelle abgebildet und ist daher für das Betriebssystem stets verfügbar und bleibt bestehen, wenn die Ausführung einer Anwendung, die den Speicher 107 verwendet, im Speicher 53 gestoppt wird. Die Zuordnung von Adressen im Speicher 107 zu einem Anwendungsprogramm wird von der SRDI-Verwaltungseinrichtung 109 der Erfindung bearbeitet.
  • Eine verbesserte Programmladeeinrichtung gemäß der Erfindung wird bei 111 bereitgestellt, um ein Anwendungsprogramm aus dem ungeschützten DASD 113 oder irgendeinem anderen ungeschützten externen Datenträger erneut zu laden. Der für die Schaltungen im sicheren Modul 13 bereitgestellte physische Schutz kann angemessen bereitgestellt werden, die Kosten und die Komplexität für den physischen Schutz einer DASD-Einheit vor einem Angriff sind zu diesem Zeitpunkt jedoch nicht zweckmäßig. Dementsprechend ist es notwendig sicherzustellen, dass ein aus dem DASD 27 geladenes Anwendungsprogramm nicht als Teil eines Angriffs auf das System geändert oder ersetzt worden ist. Dies wird durch eine Programmladeeinrichtung 111 unter Verwendung von Verschlüsselungsressourcen ausgeführt, die dem Betriebssystem zur Verfügung stehen.
  • Bevor ein Anwendungsprogramm geladen und verwendet wird, wird es vom Eigner oder Hersteller des Computersystems oder irgendeiner anderen zentralen Stelle zertifiziert, die für die Steuerung und die Sicherheit des Systems verantwortlich ist. Die Zertifizierung wird unter Verwendung der kryptographischen Einrichtungen der Sicherheitskarte 11 gemäß der Erfindung ausgeführt, wie im Flussdiagramm von 3 gezeigt wird.
  • In 3 wird beim Block 201 für das Programm A ein eindeutiger Name NA ausgewählt und beim Block 203 gespeichert. Der Name muss keine speziellen Eigenschaften besitzen, sondern muss lediglich innerhalb der Domäne von Namen von Programmen eindeutig sein, die durch diese bestimmte Berechtigungsstelle zertifiziert werden. Als Eingabe bei 205 werden der Name NA und das Programm PA beim Block 207 zu einem einzigen zusammenhängenden Datenobjekt verknüpft und beim Block 209 gespeichert. Obwohl andere Verfahren möglich sind, erfolgt die Verknüpfung in der bevorzugten Ausführungsform durch Verkettung von NA an PA. Das verknüpfte Objekt wird als PANA bezeichnet.
  • Beim Block 211 wird ein Hash-Wert über PANA berechnet, um H(PANA) zu erhalten. H(PANA) weist unabhängig von der Größe von PANA eine übereinstimmende Länge auf. Außerdem können Verfahren mit öffentlichem Schlüssel normalerweise nur Daten verschlüsseln, die kleiner als die Größe des Schlüssel-Moduls sind, beispielsweise 1024 Bits für einen typischen RSA-Schlüssel.
  • Beim Block 215 berechnet die Zertifizierungsberechtigungsstelle (certifying authority) eine digitale Signatur DSIG über H(PANA) unter Verwendung eines privaten Schlüssels KPR, der beim Block 213 aus einem sicheren permanenten Speicher abgerufen wird. Das Ergebnis dieser Verschlüsselung ist die digitale Signatur DSIG. KP R ist der private Schlüssel eines Paars aus einem öffentlichen/privaten Schlüssel. Der entsprechende öffentliche Schlüssel KPU wird in jedem Computersystem zur Verfügung gestellt, in dem die Berechtigungsstelle die Verwendung von mit KPR zertifizierten Programmen erwartet.
  • Die digitale Signatur kann unter Verwendung von irgendeinem von mehreren bereits bekannten Verfahren berechnet werden, darunter – jedoch nicht darauf begrenzt – die Algorithmen RSA und DAS und die Algorithmen mit Hash-Verfahren SHA-1, MDS, MD4 und MDC.
  • DISG wird beim Block 217 an das verknüpfte Programm-/Namen-Objekt PANA angehängt und beim Block 219 gespeichert, so dass die Signatur DSIG mit dem Programm übertragen wird, wenn es verteilt und in ein Computersystem geladen wird. Dieses endgültige verteilte Objekt, das das Programm, den Namen und die digitale Signatur enthält, wird als zertifiziertes Programm A (CPA) bezeichnet. Das zertifizierte Programm kann nun beim Block 221 an Endbenutzerpositionen verteilt werden, die einen sicheren Bereich mit einem permanenten Speicher und einem Betriebssystem gemäß der Erfindung aufweisen.
  • Wenn ein Betriebssystem gemäß der Erfindung ein Programm in ein Computersystem lädt, überprüft es die Echtheit des Programms selbst und des Programmnamens, indem es die angehängte digitale Signatur DSIG überprüft. Wie oben dargelegt wurde, steht der öffentliche Schlüssel KPU jedem Computersystem zur Verfügung, in dem das Programm PA verwendet werden muss.
  • Mit Bezugnahme auf 4 führt das Betriebssystem des Computers gemäß der Erfindung die folgenden Schritte aus, wenn es das Programm zur Ausführung lädt:
  • Beim Block 301 wird das zertifizierte Programmobjekt CPA in die digitale Signatur DSIG und das verknüpfte Programm-/Namen-Objekt PANA zerlegt.
  • Die Überprüfung, ob DSIG eine gültige Signatur für das Programm und seinen Namen im Objekt PANA ist, wird unter Verwendung des öffentlichen Schlüssels KPU gemäß den folgenden Schritten ausgeführt. Als Erstes wird die digitale Signatur DSIG beim Block 303 unter Verwendung des öffentlichen Schlüssels KPU entschlüsselt. Falls die Signatur DSIG in der Tat mit dem entsprechenden privaten Schlüssel erzeugt wurde, ist das Ergebnis dieser Entschlüsselung der Hash-Wert H'(PANA).
  • Als Nächstes wird der Hash-Wert H(PANA) beim Block 305 auf dieselbe Weise wie während der Zertifizierung berechnet. Beim Block 307 werden die Ergebnisse aus den Blöcken 303 und 305 verglichen, um festzustellen, ob H'(PANA) = H(PANA). Falls sie gleich sind, prüft und beweist die digitale Signatur, dass PANA von der Zertifizierungsberechtigungsstelle signiert wurde, und außerdem beweist sie, dass PANA nicht geändert wurde.
  • Falls die Signatur nicht korrekt ist, wird der Ladeprozess beim Block 309 abgebrochen. Falls die Signatur korrekt ist, wird das Objekt PANA, beim Block 311 in das Programm PA und den Programmnamen NA zerlegt. Der Programmname NA wird beim Block 313 in einer Datenbereichattributtabelle im Betriebssystemspeicher gespeichert, wo er von keinem anderen Programm als dem Betriebssystem selbst geändert werden kann. Beim Block 315 wird das Programm geladen, und beim Block 317 wird die Ausführung des Programms PA gestartet.
  • Alle programmeigenen permanenten Datenbereiche werden vom Betriebssystem des Computers verwaltet. Ein Anwendungsprogramm kann nicht direkt auf diese zugreifen, ohne eine Anforderung zu den Betriebssystemdiensten zu übertragen.
  • Wenn ein Programm die Zuweisung eines neuen permanenten Datenbereichs beim Betriebssystem anfordert, sucht das Betriebssystem den Namen des Programms und speichert ihn auf eine Weise, dass er diesem permanenten Datenbereich dauerhaft zugeordnet wird. Folglich wird jedem permanenten Datenbereich ein permanentes unveränderliches Eignernamenfeld zugeordnet.
  • Wenn ein Programm zu einem späteren Zeitpunkt den Zugriff auf einen bestehenden Datenbereich anfordert, überprüft das Betriebssystem, ob das anfordernde Programm der Erzeuger und folglich der Eigner des Datenbereichs ist. Es vergleicht den Namen des Programms, den es zum Zeitpunkt des Programmladevorgangs gespeichert hatte, mit dem Eignernamen, der mit dem Datenbereich selbst verbunden ist. Falls die beiden nicht identisch sind, wird dem Programm kein Zugriff auf den angeforderten Datenbereich erteilt. Dieser Mechanismus verhindert, dass irgendein Programm Zugang zu den Daten irgendeines anderen Programms erhält, falls garantiert werden kann, dass der Programmname nicht auf irgendeine Weise gefälscht werden kann. Diese Garantie wird durch die Programmzertifizierung und die oben beschriebenen Programmladeprozesse bereitgestellt.
  • Es wird verstanden, dass der Vergleich des eindeutigen Anwendungsprogrammnamens mit dem Eignernamen des Datenbereichs keine exakte Übereinstimmung sein muss, und andere teilweisen oder vollständigen Vergleiche sind in manchen Systemen besser geeignet. Beispielsweise kann es eine Familie von Programmen geben, die den Zugriff auf denselben permanenten Datenbereich benötigen, und zur Ausführung einer solchen Zugriffserteilung können alle Namen durch die Berechtigungsstelle so zugewiesen werden, dass sie mit denselben Zeichen beginnen, jedoch mit unterschiedlichen Suffixen enden. Die XYZ-Familie von Programmen kann XYZA, XYZB usw. enthalten. In diesem Beispiel ist es lediglich notwendig, dass der xyz-Teil des Namens mit dem Eignernamen des permanenten Datenbereichs übereinstimmt. Ebenso müssen Übereinstimmungen nicht exakte Übereinstimmungen sein, sondern können Komplemente, umgekehrte andere Zeichen und andere solche Varianten sein, ohne vom Anwendungsbereich der Erfindung abzuweichen.
  • Die Datenbereichzugriffssteuerung wird im Flussdiagramm von 5 dargestellt, wobei die folgenden Schritte ausgeführt werden. Das Anwendungsprogramm A, das den Namen NA hat, fordert beim Block 401 den Zugriff auf den Datenbereich D2 an. Diese Anforderung wird beim Block 403 zur SRDI-Verwaltungseinrichtung 109 übertragen, wobei sie den Pfaden mit gestrichelten Linien folgt. Die SRDI- Verwaltungseinrichtung ruft den Namen NA ab, den sie beim Ladevorgang dieses Programms für das Programm A speicherte. Die SRDI-Verwaltungseinrichtung überprüft sodann den dem Datenbereich D2 zugeordneten Eignernamen.
  • Die SRDI-Verwaltungseinrichtung vergleicht die beiden Werte beim Block 405, und stellt beim Block 407 fest, dass der Anforderername (NA) gleich dem Eignernamen (NA) ist, und der Zugriff kann erteilt werden, indem der Datenbereich D2 beim Block 409 der lokalen Deskriptortabelle des Programms A zugewiesen wird.
  • Außerdem zeigt 5 in Pfaden mit durchgezogenen Linien einen Versuch zum Zugreifen auf einen Datenbereich, der einem anderen Programm zugeordnet ist, wobei die folgenden Schritte ausgeführt werden. Das Anwendungsprogramm A, das den Namen NA hat, fordert beim Block 402 den Zugriff auf den Datenbereich D1 an. Diese Anforderung wird beim Block 403 über die Pfade mit durchgezogenen Linien zur SRDI-Verwaltungseinrichtung übertragen. Die SRDI-Verwaltungseinrichtung ruft den Namen ab, den sie beim Ladevorgang dieses Programms für das Programm A speicherte. Wiederum ist dieser Name NA. Anschließend überprüft die SRDI-Verwaltungseinrichtung den dem Datenbereich D1 zugeordneten Eignernamen und stellt fest, dass dieser Name NB ist. Beim Block 405 vergleicht die SRDI-Verwaltungseinrichtung die beiden Werte, und da der Anforderername (NA) nicht gleich dem Eignernamen (NB) ist, wird der Zugriff ohne Speicherzuteilung verweigert, und daher kann das Programm A nicht auf Daten zugreifen, die dem Programm B zugeordnet sind. Obwohl der Vergleich in dieser bevorzugten Ausführungsform in Bezug auf exakte Übereinstimmung ausgeführt wurde, wird es verstanden, dass alternativ andere Vergleiche ausgeführt werden können, um den Programmnamen mit dem Namen des Dateneigners zu vergleichen.
  • Es wird verstanden, dass das Gestatten des Zugriffs auf einen Datenbereich in einem permanenten Speicher durch eine Zuweisung, wie sie oben beschrieben wurde, oder durch tatsächliches Kopieren von Daten aus einem Bereich, der der SRDI-Verwaltungseinrichtung auf der Schutzebene null von ihrer lokalen Deskriptortabelle zugeordnet wurde, in einen anderen Bereich im RAM ausgeführt werden kann. Dieser andere Bereich im RAM wird von der lokalen Deskriptortabelle der SRDI-Verwaltungseinrichtung auf der Ebene null zugeordnet und wird außerdem dem anfordernden Anwendungsprogramm über seine lokale Deskriptortabelle auf der Ebene drei zugeordnet.
  • Diese Erfindung stellt eine sichere Möglichkeit zum Zuordnen von permanenten Daten in einem sicheren Bereich zu vorübergehenden Anwendungsprogrammen bereit, die sich außerhalb des sicheren Bereichs befinden. Wenn ein Programm geladen wird, wird dessen Echtheit überprüft, und automatisch werden ihm Datenbereiche zugeordnet, die es erzeugte, und kein Programm kann den Zugriff auf irgendeinen Datenbereich erhalten, der von einem anderen Programm erzeugt wurde.

Claims (9)

  1. Verfahren zum Zertifizieren der Echtheit eines Programms P, so dass das Programm P außerhalb eines sicheren Bereichs gespeichert und in den sicheren Bereich geladen und in diesem ausgeführt werden kann, das die folgenden Vorgänge umfasst: Auswählen eines eindeutigen Namens N für das Programm P; Verknüpfen von N und P in einem einzigen zusammenhängenden Objekt PN; Berechnen einer digitalen Signatur DPN aus PN unter Verwendung eines privaten Schlüssels eines Algorithmus für ein privates/öffentliches Schlüsselpaar; Anhängen der digitalen Signatur DPN an das Objekt PN, um ein zertifiziertes Programm zu erhalten; Verteilen eines öffentlichen Schlüssels, der dem privaten Schlüssel des Algorithmus für ein privates/öffentliches Schlüsselpaar entspricht, der in jedem sicheren Bereich verfügbar ist, in den das Programm P geladen und in dem es ausgeführt wird.
  2. Verfahren zum Laden eines Programms, das gemäß dem Verfahren nach Anspruch 1 zertifiziert wurde, aus einem externen Speicher in einen sicheren Bereich zur Ausführung im sicheren Bereich, wobei das Verfahren die folgenden Vorgänge umfasst: Anfordern eines im sicheren Bereich befindlichen Betriebssystems, um ein zertifiziertes Programm zu laden; Abrufen des zertifizierten Programms aus dem externen Speicher in einen Betriebssystemspeicher im geschützten Modus; Trennen der digitalen Signatur DPN vom Objekt PN des zertifizierten Programms im Speicher im geschützten Modus im sicheren Bereich; Überprüfen unter Verwendung eines öffentlichen Schlüssels, der dem privaten Schlüssel eines Algorithmus für ein öffentliches/privates Schlüsselpaar entspricht, der zum Erzeugen von DPN verwendet wurde, ob die digitale Signatur DPN eine gültige Signatur für das Objekt PN ist; Trennen eines Programms P von einem Namen N des Objektes PN; Laden des Programms P in den Speicher zur Ausführung; Speichern des Namens N in den geschützten Betriebssystemspeicher zur späteren Verwendung beim Erteilen des Zugriffs auf eine in einem Speicher im sicheren Bereich gespeicherte Datendatei durch das Programm P.
  3. Verfahren nach Anspruch 2, das außerdem die folgenden Vorgänge umfasst: Empfangen einer Anforderung vom Programm P für den Zugriff auf ein Datenobjekt im Betriebssystem; Abrufen des Namens N des Programms-P aus dem geschützten Speicher; Abrufen eines Eignernamens n aus dem Datenobjekt D; Vergleichen des Namens N mit dem Eignernamen n; Erteilen des Zugriffs auf das Datenobjekt D durch das Programm P, wenn der Name N und der Eignername n übereinstimmen; Verweigern des Zugriffs auf das Datenobjekt D durch das Programm P, wenn der Name N und der Eignername n nicht übereinstimmen.
  4. Vorrichtung zum Zertifizieren der Echtheit eines Programms P, so dass das Programm P außerhalb eines sicheren Bereichs gespeichert und in den sicheren Bereich geladen und in diesem ausgeführt werden kann, die Folgendes umfasst: Mittel zum Auswählen eines eindeutigen Namens N für das Programm P; Mittel zum Verknüpfen von N und P in einem einzigen zusammenhängenden Objekt PN; Mittel zum Berechnen einer digitalen Signatur DPN aus PN unter Verwendung eines privaten Schlüssels eines Algorithmus für ein privates/öffentliches Schlüsselpaar; Mittel zum Anhängen der digitalen Signatur DPN an das Objekt PN, um ein zertifiziertes Programm zu erhalten; Mittel zum Verteilen eines öffentlichen Schlüssels, der dem privaten Schlüssel des Algorithmus für ein privates/öffentliches Schlüsselpaar entspricht, der in jedem sicheren Bereich verfügbar ist, in den das Programm P geladen und in dem es ausgeführt wird.
  5. Vorrichtung zum Laden eines Programms, das gemäß dem Verfahren nach Anspruch 1 zertifiziert wurde, aus einem externen Speicher in einen sicheren Bereich zur Ausführung im sicheren Bereich, die Folgendes umfasst: Mittel zum Anfordern eines im sicheren Bereich befindlichen Betriebssystems, um ein zertifiziertes Programm zu laden; Mittel zum Abrufen des zertifizierten Programms aus dem externen Speicher in einen Betriebssystemspeicher im geschützten Modus; Mittel zum Trennen der digitalen Signatur DPN vom Objekt PN des zertifizierten Programms im Speicher im geschützten Modus im sicheren Bereich; Mittel zum Überprüfen unter Verwendung eines öffentlichen Schlüssels, der dem privaten Schlüssel eines Algorithmus für ein öffentliches/privates Schlüsselpaar entspricht, der zum Erzeugen von DPN verwendet wurde, ob die digitale Signatur DPN eine gültige Signatur für das Objekt PN ist; Mittel zum Trennen eines Programms P von einem Namen N des Objektes PN; Mittel zum Laden des Programms P in den Speicher zur Ausführung; Mittel zum Speichern des Namens N im geschützten Betriebssystemspeicher zur späteren Verwendung beim Gestatten des Zugriffs auf eine in einem Speicher im sicheren Bereich gespeicherte Datendatei durch das Programm P.
  6. Vorrichtung nach Anspruch 5, die außerdem Folgendes umfasst: Mittel zum Empfangen einer Anforderung vom Programm P für den Zugriff auf ein Datenobjekt im Betriebssystem; Mittel zum Abrufen des Namens N des Programms P aus dem geschützten Speicher; Mittel zum Abrufen eines Eignernamens n aus dem Datenobjekt D; Mittel zum Vergleichen des Namens N mit dem Eignernamen n; Mittel zum Erteilen des Zugriffs auf das Datenobjekt D durch das Programm P, wenn der Name N und der Eignername n übereinstimmen, und zum Verweigern des Zugriffs auf das Datenobjekt D durch das Programm P, wenn der Name N und der Eignername n nicht übereinstimmen.
  7. Computerprogrammprodukt mit einem computerlesbaren Medium, das eine darauf aufgezeichnete Computerprogrammlogik zum Zertifizieren der Echtheit eines Programms P aufweist, so dass das Programm P außerhalb eines sicheren Bereichs gespeichert und in den sicheren Bereich geladen und in diesem ausgeführt werden kann, wobei das Programmprodukt Folgendes umfasst: Mittel zum Auswählen eines eindeutigen Namens N für das Programm P; Mittel zum Verknüpfen von N und P in einem einzigen zusammenhängenden Objekt PN; Mittel zum Berechnen einer digitalen Signatur DPN aus PN unter Verwendung eines privaten Schlüssels eines Algorithmus für ein privates/öffentliches Schlüsselpaar; Mittel zum Anhängen der digitalen Signatur DPN an das Objekt PN, um ein zertifiziertes Programm zu erhalten; Mittel zum Verteilen eines öffentlichen Schlüssels, der dem privaten Schlüssel des Algorithmus für ein privates/öffentliches Schlüsselpaar entspricht, der in jedem sicheren Bereich verfügbar ist, in den das Programm P geladen und in dem es ausgeführt wird.
  8. Computerprogrammprodukt mit einem computerlesbaren Medium, das eine darauf aufgezeichnete Computerprogrammlogik zum Laden eines gemäß dem Verfahren nach Anspruch 1 zertifizierten Programms aus einem externen Speicher in einen sicheren Bereich zur Ausführung im sicheren Bereich aufweist, wobei das Programmprodukt Folgendes umfasst: Mittel zum Anfordern eines im sicheren Bereich befindlichen Betriebssystems, um ein zertifiziertes Programm zu laden; Mittel zum Abrufen des zertifizierten Programms aus dem externen Speicher in den Betriebssystemspeicher im geschützten Modus; Mittel zum Trennen der digitalen Signatur DPN vom Objekt PN des zertifizierten Programms im Speicher im geschützten Modus im sicheren Bereich; Mittel zum Überprüfen unter Verwendung eines öffentlichen Schlüssels, der dem privaten Schlüssel eines Algorithmus für ein öffentliches/privates Schlüsselpaar entspricht, der zum Erzeugen von DPN verwendet wurde, ob die digitale Signatur DPN eine gültige Signatur für das Objekt PN ist; Mittel zum Trennen eines Programms P von einem Namen N des Objektes PN; Mittel zum Laden des Programms P in den Speicher zur Ausführung; Mittel zum Speichern des Namens N im geschützten Betriebssystemspeicher zur späteren Verwendung beim Erteilen des Zugriffs auf eine in einem Speicher im sicheren Bereich gespeicherte Datendatei durch das Programm P.
  9. Computerprogrammprodukt nach Anspruch 8, das außerdem Folgendes umfasst: Mittel zum Empfangen einer Anforderung vom Programm P zum Zugriff auf ein Datenobjekt im Betriebssystem; Mittel zum Abrufen des Namens N des Programms P aus dem geschützten Speicher; Mittel zum Abrufen eines Eignernamens n aus dem Datenobjekt D; Mittel zum Vergleichen des Namens N mit dem Eignernamen n; Mittel zum Erteilen des Zugriffs auf das Datenobjekt D durch das Programm P, wenn der Name N und der Eignername n übereinstimmen, und zum Verweigern des Zugriffs auf das Datenobjekt D durch das Programm P, wenn der Name N und der Eignername n nicht übereinstimmen.
DE69815599T 1997-06-20 1998-04-14 Verfahren und Vorrichtung zum Schutz von Anwendungsdaten in sicheren Speicherbereichen Expired - Lifetime DE69815599T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/877,776 US6175924B1 (en) 1997-06-20 1997-06-20 Method and apparatus for protecting application data in secure storage areas
US877776 1997-06-20

Publications (2)

Publication Number Publication Date
DE69815599D1 DE69815599D1 (de) 2003-07-24
DE69815599T2 true DE69815599T2 (de) 2004-05-13

Family

ID=25370695

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69815599T Expired - Lifetime DE69815599T2 (de) 1997-06-20 1998-04-14 Verfahren und Vorrichtung zum Schutz von Anwendungsdaten in sicheren Speicherbereichen

Country Status (6)

Country Link
US (1) US6175924B1 (de)
EP (1) EP0886202B1 (de)
JP (1) JP3363379B2 (de)
KR (1) KR100309535B1 (de)
CN (1) CN1097772C (de)
DE (1) DE69815599T2 (de)

Families Citing this family (129)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0893769A4 (de) * 1996-03-22 2005-06-29 Hitachi Ltd Verfahren und gerät zum verwalten eines computernetzwerks
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
US9219755B2 (en) 1996-11-08 2015-12-22 Finjan, Inc. Malicious mobile code runtime monitoring system and methods
JPH11296423A (ja) * 1998-04-06 1999-10-29 Matsushita Electric Ind Co Ltd ファイル管理システム、ファイル管理装置および媒体
US7711714B2 (en) * 1998-09-22 2010-05-04 Hitachi, Ltd. Method and a device for sterilizing downloaded files
US6321238B1 (en) * 1998-12-28 2001-11-20 Oracle Corporation Hybrid shared nothing/shared disk database system
FI990461A0 (fi) 1999-03-03 1999-03-03 Nokia Mobile Phones Ltd Menetelmä ohjelmiston lataamiseksi palvelimelta päätelaitteeseen
US6565443B1 (en) * 1999-09-14 2003-05-20 Innovative Gaming Corporation System and method for verifying the contents of a mass storage device before granting access to computer readable data stored on the device
US6748592B1 (en) * 2000-02-14 2004-06-08 Xoucin, Inc. Method and apparatus for protectively operating a data/information processing device
JP2001243079A (ja) * 2000-03-02 2001-09-07 Omron Corp 情報処理システム
US6957332B1 (en) * 2000-03-31 2005-10-18 Intel Corporation Managing a secure platform using a hierarchical executive architecture in isolated execution mode
US6934817B2 (en) * 2000-03-31 2005-08-23 Intel Corporation Controlling access to multiple memory zones in an isolated execution environment
US20060059352A1 (en) * 2000-05-09 2006-03-16 Microsoft Corporation Restricted software and hardware usage on a computer
FR2810138B1 (fr) * 2000-06-08 2005-02-11 Bull Cp8 Procede de stockage securise d'une donnee sensible dans une memoire d'un systeme embarque a puce electronique, notamment d'une carte a puce, et systeme embarque mettant en oeuvre le procede
US6976162B1 (en) * 2000-06-28 2005-12-13 Intel Corporation Platform and method for establishing provable identities while maintaining privacy
US7793111B1 (en) 2000-09-28 2010-09-07 Intel Corporation Mechanism to handle events in a machine with isolated execution
KR20020034862A (ko) * 2000-11-02 2002-05-09 권문상 컴퓨터의 응용프로그램의 비밀값 제어방법
US6988196B2 (en) * 2000-12-22 2006-01-17 Lenovo (Singapore) Pte Ltd Computer system and method for generating a digital certificate
US7225441B2 (en) * 2000-12-27 2007-05-29 Intel Corporation Mechanism for providing power management through virtualization
US6907600B2 (en) 2000-12-27 2005-06-14 Intel Corporation Virtual translation lookaside buffer
US7818808B1 (en) 2000-12-27 2010-10-19 Intel Corporation Processor mode for limiting the operation of guest software running on a virtual machine supported by a virtual machine monitor
US7035963B2 (en) * 2000-12-27 2006-04-25 Intel Corporation Method for resolving address space conflicts between a virtual machine monitor and a guest operating system
JP2002208922A (ja) * 2001-01-12 2002-07-26 Ntt Docomo Inc 暗号化装置および復号装置ならびに認証情報付与装置、暗号化方法、復号方法、認証情報付与方法
US20020133702A1 (en) * 2001-03-16 2002-09-19 Stevens Curtis E. Methods of granting access to a protected area
US7272831B2 (en) * 2001-03-30 2007-09-18 Intel Corporation Method and apparatus for constructing host processor soft devices independent of the host processor operating system
EP1388061A4 (de) * 2001-05-17 2010-11-03 Decru Inc Auf verschlüsselung basierendes sicherheitssystem für die netzwerkspeicherung
US7925894B2 (en) * 2001-07-25 2011-04-12 Seagate Technology Llc System and method for delivering versatile security, digital rights management, and privacy services
US7036020B2 (en) * 2001-07-25 2006-04-25 Antique Books, Inc Methods and systems for promoting security in a computer system employing attached storage devices
US7257844B2 (en) 2001-07-31 2007-08-14 Marvell International Ltd. System and method for enhanced piracy protection in a wireless personal communication device
US7463739B2 (en) * 2001-08-02 2008-12-09 Safenet, Inc. Method and system providing improved security for the transfer of root keys
US7191440B2 (en) * 2001-08-15 2007-03-13 Intel Corporation Tracking operating system process and thread execution and virtual machine execution in hardware or in a virtual machine monitor
US20030059049A1 (en) * 2001-09-24 2003-03-27 Mihm Thomas J. Method and apparatus for secure mobile transaction
US7103529B2 (en) * 2001-09-27 2006-09-05 Intel Corporation Method for providing system integrity and legacy environment emulation
US7024555B2 (en) 2001-11-01 2006-04-04 Intel Corporation Apparatus and method for unilaterally loading a secure operating system within a multiprocessor environment
US7137004B2 (en) * 2001-11-16 2006-11-14 Microsoft Corporation Manifest-based trusted agent management in a trusted operating system environment
US20030105830A1 (en) * 2001-12-03 2003-06-05 Duc Pham Scalable network media access controller and methods
US20030126454A1 (en) * 2001-12-28 2003-07-03 Glew Andrew F. Authenticated code method and apparatus
JP2003216448A (ja) * 2002-01-17 2003-07-31 Ntt Docomo Inc 移動通信端末及びデータ送信方法
US20030154372A1 (en) * 2002-02-12 2003-08-14 Barszcz Chester J. Secure remote data acquisition method and system
US7631196B2 (en) * 2002-02-25 2009-12-08 Intel Corporation Method and apparatus for loading a trustable operating system
US7124273B2 (en) 2002-02-25 2006-10-17 Intel Corporation Method and apparatus for translating guest physical addresses in a virtual machine environment
JP2003271457A (ja) * 2002-03-14 2003-09-26 Sanyo Electric Co Ltd データ記憶装置
US7069442B2 (en) 2002-03-29 2006-06-27 Intel Corporation System and method for execution of a secured environment initialization instruction
US7127548B2 (en) * 2002-04-16 2006-10-24 Intel Corporation Control register access virtualization performance improvement in the virtual-machine architecture
US7139890B2 (en) 2002-04-30 2006-11-21 Intel Corporation Methods and arrangements to interface memory
US8335915B2 (en) * 2002-05-14 2012-12-18 Netapp, Inc. Encryption based security system for network storage
US6820177B2 (en) 2002-06-12 2004-11-16 Intel Corporation Protected configuration space in a protected environment
US7142674B2 (en) * 2002-06-18 2006-11-28 Intel Corporation Method of confirming a secure key exchange
US6996748B2 (en) * 2002-06-29 2006-02-07 Intel Corporation Handling faults associated with operation of guest software in the virtual-machine architecture
US7124327B2 (en) * 2002-06-29 2006-10-17 Intel Corporation Control over faults occurring during the operation of guest software in the virtual-machine architecture
US7334124B2 (en) * 2002-07-22 2008-02-19 Vormetric, Inc. Logical access block processing protocol for transparent secure file storage
US6931530B2 (en) 2002-07-22 2005-08-16 Vormetric, Inc. Secure network file access controller implementing access control and auditing
US6678828B1 (en) * 2002-07-22 2004-01-13 Vormetric, Inc. Secure network file access control system
US7509683B2 (en) * 2002-08-26 2009-03-24 Hewlett-Packard Development Company, L.P. System and method for authenticating digital content
US7143288B2 (en) * 2002-10-16 2006-11-28 Vormetric, Inc. Secure file system server architecture and methods
US7165181B2 (en) * 2002-11-27 2007-01-16 Intel Corporation System and method for establishing trust without revealing identity
US20040117532A1 (en) * 2002-12-11 2004-06-17 Bennett Steven M. Mechanism for controlling external interrupts in a virtual machine system
US7073042B2 (en) * 2002-12-12 2006-07-04 Intel Corporation Reclaiming existing fields in address translation data structures to extend control over memory accesses
US20040117318A1 (en) * 2002-12-16 2004-06-17 Grawrock David W. Portable token controlling trusted environment launch
US20040128345A1 (en) * 2002-12-27 2004-07-01 Robinson Scott H. Dynamic service registry
US7900017B2 (en) 2002-12-27 2011-03-01 Intel Corporation Mechanism for remapping post virtual machine memory pages
US7076802B2 (en) 2002-12-31 2006-07-11 Intel Corporation Trusted system clock
US20040128528A1 (en) * 2002-12-31 2004-07-01 Poisner David I. Trusted real time clock
JP3880933B2 (ja) * 2003-01-21 2007-02-14 株式会社東芝 耐タンパマイクロプロセッサ及びキャッシュメモリ搭載プロセッサによるデータアクセス制御方法
JP4338989B2 (ja) * 2003-02-20 2009-10-07 パナソニック株式会社 メモリデバイス
DE10331874A1 (de) * 2003-07-14 2005-03-03 Robert Bosch Gmbh Fernprogrammieren eines programmgesteuerten Geräts
US20050044292A1 (en) * 2003-08-19 2005-02-24 Mckeen Francis X. Method and apparatus to retain system control when a buffer overflow attack occurs
US8079034B2 (en) * 2003-09-15 2011-12-13 Intel Corporation Optimizing processor-managed resources based on the behavior of a virtual machine monitor
US7424709B2 (en) * 2003-09-15 2008-09-09 Intel Corporation Use of multiple virtual machine monitors to handle privileged events
US7739521B2 (en) * 2003-09-18 2010-06-15 Intel Corporation Method of obscuring cryptographic computations
US7610611B2 (en) * 2003-09-19 2009-10-27 Moran Douglas R Prioritized address decoder
US20050080934A1 (en) 2003-09-30 2005-04-14 Cota-Robles Erik C. Invalidating translation lookaside buffer entries in a virtual machine (VM) system
US7177967B2 (en) * 2003-09-30 2007-02-13 Intel Corporation Chipset support for managing hardware interrupts in a virtual machine system
US7237051B2 (en) * 2003-09-30 2007-06-26 Intel Corporation Mechanism to control hardware interrupt acknowledgement in a virtual machine system
US20050086471A1 (en) * 2003-10-20 2005-04-21 Spencer Andrew M. Removable information storage device that includes a master encryption key and encryption keys
US8352726B2 (en) * 2003-11-07 2013-01-08 Netapp, Inc. Data storage and/or retrieval
US7636844B2 (en) * 2003-11-17 2009-12-22 Intel Corporation Method and system to provide a trusted channel within a computer system for a SIM device
JP4578088B2 (ja) * 2003-11-20 2010-11-10 大日本印刷株式会社 情報処理装置、情報処理システム及びプログラム
US8156343B2 (en) 2003-11-26 2012-04-10 Intel Corporation Accessing private data about the state of a data processing machine from storage that is publicly accessible
EP1538509A1 (de) * 2003-12-04 2005-06-08 Axalto S.A. Methode zum Absichern einer Programmausführung gegen Strahlungsangriffe
US8037314B2 (en) 2003-12-22 2011-10-11 Intel Corporation Replacing blinded authentication authority
US20050152539A1 (en) * 2004-01-12 2005-07-14 Brickell Ernie F. Method of protecting cryptographic operations from side channel attacks
JP4335707B2 (ja) * 2004-02-06 2009-09-30 Necエレクトロニクス株式会社 プログラム改竄検出装置、及びプログラム改竄検出プログラムおよびプログラム改竄検出方法
US7802085B2 (en) 2004-02-18 2010-09-21 Intel Corporation Apparatus and method for distributing private keys to an entity with minimal secret, unique information
US20050216920A1 (en) * 2004-03-24 2005-09-29 Vijay Tewari Use of a virtual machine to emulate a hardware device
US7356735B2 (en) * 2004-03-30 2008-04-08 Intel Corporation Providing support for single stepping a virtual machine in a virtual machine environment
US8024730B2 (en) 2004-03-31 2011-09-20 Intel Corporation Switching between protected mode environments utilizing virtual machine functionality
US7620949B2 (en) 2004-03-31 2009-11-17 Intel Corporation Method and apparatus for facilitating recognition of an open event window during operation of guest software in a virtual machine environment
US7305592B2 (en) * 2004-06-30 2007-12-04 Intel Corporation Support for nested fault in a virtual machine environment
CN1324471C (zh) * 2004-08-18 2007-07-04 中兴通讯股份有限公司 对指定进程私有数据区和堆栈区实施保护的方法
US7802110B2 (en) * 2004-08-25 2010-09-21 Microsoft Corporation System and method for secure execution of program code
US7516495B2 (en) * 2004-09-10 2009-04-07 Microsoft Corporation Hardware-based software authenticator
US7840962B2 (en) * 2004-09-30 2010-11-23 Intel Corporation System and method for controlling switching between VMM and VM using enabling value of VMM timer indicator and VMM timer value having a specified time
US8146078B2 (en) 2004-10-29 2012-03-27 Intel Corporation Timer offsetting mechanism in a virtual machine environment
KR100589541B1 (ko) * 2004-11-25 2006-06-14 소프트캠프(주) 접근이 통제되는 가상디스크들 간의 온라인을 통한데이터의 보안전송시스템과 이를 통한 보안전송방법
US8924728B2 (en) * 2004-11-30 2014-12-30 Intel Corporation Apparatus and method for establishing a secure session with a device without exposing privacy-sensitive information
US8533777B2 (en) 2004-12-29 2013-09-10 Intel Corporation Mechanism to determine trust of out-of-band management agents
US7395405B2 (en) * 2005-01-28 2008-07-01 Intel Corporation Method and apparatus for supporting address translation in a virtual machine environment
US20060236100A1 (en) * 2005-04-19 2006-10-19 Guruprasad Baskaran System and method for enhanced layer of security to protect a file system from malicious programs
US8898452B2 (en) * 2005-09-08 2014-11-25 Netapp, Inc. Protocol translation
US7617541B2 (en) * 2005-09-09 2009-11-10 Netapp, Inc. Method and/or system to authorize access to stored data
US7809957B2 (en) 2005-09-29 2010-10-05 Intel Corporation Trusted platform module for generating sealed data
US7657754B2 (en) * 2005-12-08 2010-02-02 Agere Systems Inc Methods and apparatus for the secure handling of data in a microcontroller
US9177176B2 (en) * 2006-02-27 2015-11-03 Broadcom Corporation Method and system for secure system-on-a-chip architecture for multimedia data processing
US8014530B2 (en) 2006-03-22 2011-09-06 Intel Corporation Method and apparatus for authenticated, recoverable key distribution with no database secrets
US8429724B2 (en) 2006-04-25 2013-04-23 Seagate Technology Llc Versatile access control system
US7539890B2 (en) * 2006-04-25 2009-05-26 Seagate Technology Llc Hybrid computer security clock
US8028166B2 (en) * 2006-04-25 2011-09-27 Seagate Technology Llc Versatile secure and non-secure messaging
JP4902294B2 (ja) * 2006-08-18 2012-03-21 クラリオン株式会社 カーナビゲーション装置、並びに、データベース管理方法およびプログラム
US8042155B1 (en) 2006-09-29 2011-10-18 Netapp, Inc. System and method for generating a single use password based on a challenge/response protocol
US8190905B1 (en) 2006-09-29 2012-05-29 Netapp, Inc. Authorizing administrative operations using a split knowledge protocol
US8245050B1 (en) 2006-09-29 2012-08-14 Netapp, Inc. System and method for initial key establishment using a split knowledge protocol
US8607046B1 (en) 2007-04-23 2013-12-10 Netapp, Inc. System and method for signing a message to provide one-time approval to a plurality of parties
US8611542B1 (en) 2007-04-26 2013-12-17 Netapp, Inc. Peer to peer key synchronization
US8824686B1 (en) 2007-04-27 2014-09-02 Netapp, Inc. Cluster key synchronization
KR20080104591A (ko) * 2007-05-28 2008-12-03 삼성전자주식회사 메모리 보호 방법 및 장치
US8196182B2 (en) 2007-08-24 2012-06-05 Netapp, Inc. Distributed management of crypto module white lists
US9774445B1 (en) 2007-09-04 2017-09-26 Netapp, Inc. Host based rekeying
FR2926381A1 (fr) * 2008-01-11 2009-07-17 Sagem Securite Sa Methode de transfert securise de donnees
EP2256658A1 (de) * 2009-05-26 2010-12-01 Gemalto SA Verfahren zur Ausführung einer in eine tragbare elektronische Vorrichtung eingebetteten Anwendung
KR20120067136A (ko) * 2010-12-15 2012-06-25 삼성전자주식회사 전자 장치 및 이에 적용되는 파일 삭제 방지 방법
JP5583857B2 (ja) * 2011-11-04 2014-09-03 エスケー プラネット カンパニー、リミテッド セキュアドメインとノーマルドメインとの間の保安連動方法及び保安アプリケーションダウンロードの管理方法、管理サーバー、端末機、及びこれを適用した管理システム
US9069955B2 (en) 2013-04-30 2015-06-30 International Business Machines Corporation File system level data protection during potential security breach
JP2014235326A (ja) * 2013-06-03 2014-12-15 富士通セミコンダクター株式会社 システム、情報処理装置、セキュアモジュール、および検証方法
CN107070665B (zh) * 2017-04-28 2018-06-12 北京海泰方圆科技股份有限公司 一种数字签名的方法及装置
CN109190411A (zh) * 2018-07-25 2019-01-11 百富计算机技术(深圳)有限公司 一种操作系统的主动安全防护方法、系统及终端设备
CN110909391A (zh) * 2019-12-04 2020-03-24 四川虹微技术有限公司 一种基于risc-v的安全存储方法
CN110929304A (zh) * 2019-12-04 2020-03-27 四川虹微技术有限公司 一种基于risc-v的内存保护方法

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4328542A (en) * 1979-11-07 1982-05-04 The Boeing Company Secure implementation of transition machine computer
US5148461A (en) * 1988-01-06 1992-09-15 Jupiter Toy Co. Circuits responsive to and controlling charged particles
US4868877A (en) * 1988-02-12 1989-09-19 Fischer Addison M Public key/signature cryptosystem with enhanced digital signature certification
US5144659A (en) * 1989-04-19 1992-09-01 Richard P. Jones Computer file protection system
US5027397A (en) 1989-09-12 1991-06-25 International Business Machines Corporation Data protection by detection of intrusion into electronic assemblies
US5048085A (en) * 1989-10-06 1991-09-10 International Business Machines Corporation Transaction system security method and apparatus
JP2886969B2 (ja) * 1990-10-29 1999-04-26 株式会社日立製作所 プログラム変換方法
US5182770A (en) * 1991-04-19 1993-01-26 Geza Medveczky System and apparatus for protecting computer software
US5412717A (en) * 1992-05-15 1995-05-02 Fischer; Addison M. Computer system security method and apparatus having program authorization information data structures
JPH0612251A (ja) * 1992-06-24 1994-01-21 Nec Shizuoka Ltd プログラム起動装置
JPH0628264A (ja) * 1992-07-10 1994-02-04 Mitsubishi Electric Corp 半導体記憶装置及びそのアクセス方法
US5412718A (en) * 1993-09-13 1995-05-02 Institute Of Systems Science Method for utilizing medium nonuniformities to minimize unauthorized duplication of digital information
US5526428A (en) * 1993-12-29 1996-06-11 International Business Machines Corporation Access control apparatus and method
US5724425A (en) 1994-06-10 1998-03-03 Sun Microsystems, Inc. Method and apparatus for enhancing software security and distributing software
US5579393A (en) * 1994-06-21 1996-11-26 Escan, Inc. System and method for secure medical and dental record interchange
US6009523A (en) 1995-02-08 1999-12-28 Sega Enterprises, Ltd. Information processing apparatus with security checking function
US5604800A (en) * 1995-02-13 1997-02-18 Eta Technologies Corporation Personal access management system
US5727061A (en) * 1995-02-13 1998-03-10 Eta Technologies Corporation Personal access management systems
JP3624971B2 (ja) * 1995-10-02 2005-03-02 松下電器産業株式会社 ソフトウエア利用制御方法
US5692047A (en) 1995-12-08 1997-11-25 Sun Microsystems, Inc. System and method for executing verifiable programs with facility for using non-verifiable programs from trusted sources
JP3580333B2 (ja) * 1996-04-10 2004-10-20 日本電信電話株式会社 暗号認証機能の装備方法
JPH09288503A (ja) * 1996-04-22 1997-11-04 Fuji Electric Co Ltd Plc用サポートシステム導入方法
US5778070A (en) * 1996-06-28 1998-07-07 Intel Corporation Method and apparatus for protecting flash memory

Also Published As

Publication number Publication date
JP3363379B2 (ja) 2003-01-08
JPH1124919A (ja) 1999-01-29
CN1203394A (zh) 1998-12-30
KR100309535B1 (ko) 2001-11-15
US6175924B1 (en) 2001-01-16
EP0886202B1 (de) 2003-06-18
EP0886202A3 (de) 1999-11-10
DE69815599D1 (de) 2003-07-24
KR19990006432A (ko) 1999-01-25
EP0886202A2 (de) 1998-12-23
CN1097772C (zh) 2003-01-01

Similar Documents

Publication Publication Date Title
DE69815599T2 (de) Verfahren und Vorrichtung zum Schutz von Anwendungsdaten in sicheren Speicherbereichen
DE69725833T2 (de) Gesicherte zweiteilige Benutzer-Authentifizierung in einem Rechnernetz
DE60102555T2 (de) Verhinderung der map-aktivierten modulmaskeradeangriffe
DE60129967T2 (de) Auf biometrie basierende beglaubigung in einer nichtflüchtigen speichervorrichtung
DE69727198T2 (de) Durchführen digitaler Unterschriften für Datenströme und Archive
DE19781829C2 (de) Verfahren und Vorrichtung zum Schützen eines Flash-Speichers
DE69731714T2 (de) Dynamische Dienstklassen für eine internationale kryptographische Struktur
DE10196006B4 (de) Erzeugen einer Schlüsselhierarchie zur Verwendung in einer isolierten Ausführungsumgebung
DE69733123T2 (de) Verfahren und vorrichtung zur verhinderung eines unbefugten schreibzugriffes zu einem geschützten nichtflüchtigen speicher
DE102008021567B4 (de) Computersystem mit sicherem Hochlaufmechanismus auf der Grundlage einer Verschlüsselung mit symmetrischem Schlüssel
DE112005003340B4 (de) Mechanismus zum Bestimmen der Vertrauenswürdigkeit von Außerbandverwaltungsagenten
DE69534757T2 (de) System und Verfahren zur sicheren Speicherung und Verteilung von Daten unter Verwendung digitaler Unterschriften
DE3689569T2 (de) Verfahren zur Systemdateiensicherung und Datenverarbeitungseinheit zu dessen Durchführung.
DE69531112T2 (de) Mechanismus zum verknüpfen von dateien auf einem emulierten system mit dem zentralsystem für den zugriff durch emulierte systembenutzer
DE69724946T2 (de) Programmvermietungssystem und Verfahren zur Vermietung von Programmen
DE60204049T2 (de) Systeme, verfahren und einrichtungen zur sicheren datenverarbeitung
DE69819485T2 (de) Verfahren und vorrichtung zur sicheren verarbeitung kryptographischer schlüssel
DE10392470B4 (de) System und Verfahren zum Ausführen von Initialisierungsbefehlen einer gesicherten Umgebung
DE112018002031T5 (de) Sichern einer betriebssystemkonfiguration unter verwendung von hardware
DE112020000694T5 (de) Erzeugung und ausführung von sicheren containern
DE202018002074U1 (de) System zur sicheren Speicherung von elektronischem Material
DE112014000584T5 (de) Erreichen von Speichereffizienz bei durchgängiger Verschlüsselung unter Verwendung von nachgelagerten (Downstream-)Decryptern
DE10292364T5 (de) Sichere Maschinenplattform, die mit Betriebssystemen und awendungsspezifischen Steuerprogrammen eine Schnittstelle bildet
DE112009004762T5 (de) System und verfahren zum durchführen einer verwaltunosoperation
DE102007057900A1 (de) Authentifikationen von verdächtigen Daten unter Verwendung von Schlüsseltabellen

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8320 Willingness to grant licences declared (paragraph 23)
8328 Change in the person/name/address of the agent

Representative=s name: DUSCHER, R., DIPL.-PHYS. DR.RER.NAT., PAT.-ANW., 7