DE69815599T2 - Verfahren und Vorrichtung zum Schutz von Anwendungsdaten in sicheren Speicherbereichen - Google Patents
Verfahren und Vorrichtung zum Schutz von Anwendungsdaten in sicheren Speicherbereichen Download PDFInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6209—Protecting 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
-
- 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/51—Monitoring 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2211/00—Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
- G06F2211/007—Encryption, En-/decode, En-/decipher, En-/decypher, Scramble, (De-)compress
- G06F2211/008—Public Key, Asymmetric Key, Asymmetric Encryption
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing 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/2115—Third 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 Sicherheitskarte11 mit einem sicheren Modul13 , 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 Mikroprozessor15 ist mit einem Bus17 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 Bus17 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 Grafikadapter21 verbundene Farbanzeige19 , eine durch einen Adapter25 verbundene Tastatur23 und ein durch einen SCSI-Adapter29 verbundenes Festplattenlaufwerk27 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 RAM31 hinzugefügt werden kann. - Zur Ausführung durch den Mikroprozessor
15 sind im ROM33 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 RAM31 geladen und in Verbindung mit dem im ROM33 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 RAM31 anstatt im ROM33 gespeichert werden, so dass Änderungen an den grundlegenden Systemvorgängen durch Änderungen am BIOS-Programm ermöglicht werden, die sodann problemlos in den RAM31 geladen werden könnten. Ähnlich können im RAM31 gespeicherte Programme, Daten und Informationsdarstellungen im ROM33 gespeichert werden. - Wie in
1 gezeigt wird, wird ein das Verfahren der Erfindung realisierendes Programm35 vorteilhafterweise als Fertigungsprodukt ausgeführt, indem das Programm in eine CD-ROM17 oder ein anderes tragbares Speichermedium eingebettet wird. Der Datenträger37 kann von der Leseeinrichtung (reader) 39 gelesen werden, die durch den Adapter41 mit dem Bus17 verbunden ist. Außerdem kann das Programm35 als spezielle Vorrichtung ausgeführt werden, indem die ausführbaren Befehle des Programms im RAM 31, im ROM33 oder in einer Kombination von beiden und/oder im DASD27 gespeichert werden, auf die der Mikroprozessor15 über den Adapter29 zur Ausführung durch den Mikroprozessor15 zugreifen kann. - Außer der Verwendung im Hauptmikroprozessor
15 kann die Erfindung vorteilhafterweise in speziellen Einheiten verwendet werden, beispielsweise in der auch als kryptographischer Adapter11 bezeichneten Sicherheitskarte11 , die mit dem Bus17 verbunden ist. Wiederum kann das das Verfahren der Erfindung ausführende Programm35 als eine spezielle Vorrichtung realisiert werden, indem die ausführbaren Befehle des Programms im RAM 53, im ROM55 oder in einer Kombination aus beiden gespeichert und/oder aus dem DASD27 in den RAM53 geladen werden, wie oben beschrieben wird. Der kryptographische Adapter11 enthält außerdem ein kryptographisches Verarbeitungsmodul57 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 Adapterkarte11 von1 beschrieben, und die nichtsichere Anwendungsquelle für ein zertifiziertes Anwendungsprogramm gemäß der Erfindung ist der DASD27 , der ebenfalls in1 gezeigt wird. - In
2 erscheint der Betriebssystemkern101 im Zentrum der Darstellung. Der Kern101 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-) Verwalter109 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 auf2 beschrieben wird. - Der RAM
53 und der ROM55 von1 sind im sicheren Modul13 enthalten. Der RAM53 und der ROM55 enthalten das Betriebssystem, das in dieser Version der kryptographischen Adapterkarte der Erfindung ein Teil von OS/2 sein kann. Der Systemkern101 verwaltet die Speicherzuordnung und andere Ressourcen, beispielsweise den Datenverschlüsselungsstandard- (DES-) Algorithmus über die DES-Ressourcenverwaltungseinrichtung103 und den Rivest Shamir & Adleman (RSA) über die RSA-Ressourcenverwaltungseinrichtung105 . - Ein permanenter Speicher, beispielsweise ein Flash-Speicher oder ein batteriebetriebener Speicher, wird bei
107 bereitgestellt. Der reale Adressraum des permanenten Speichers107 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 Speicher107 verwendet, im Speicher53 gestoppt wird. Die Zuordnung von Adressen im Speicher107 zu einem Anwendungsprogramm wird von der SRDI-Verwaltungseinrichtung109 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 Modul13 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 DASD27 geladenes Anwendungsprogramm nicht als Teil eines Angriffs auf das System geändert oder ersetzt worden ist. Dies wird durch eine Programmladeeinrichtung111 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 von3 gezeigt wird. - In
3 wird beim Block201 für das Programm A ein eindeutiger Name NA ausgewählt und beim Block203 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 bei205 werden der Name NA und das Programm PA beim Block207 zu einem einzigen zusammenhängenden Datenobjekt verknüpft und beim Block209 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 Block213 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 Block219 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 Block221 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 Block307 werden die Ergebnisse aus den Blöcken303 und305 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 Block311 in das Programm PA und den Programmnamen NA zerlegt. Der Programmname NA wird beim Block313 in einer Datenbereichattributtabelle im Betriebssystemspeicher gespeichert, wo er von keinem anderen Programm als dem Betriebssystem selbst geändert werden kann. Beim Block315 wird das Programm geladen, und beim Block317 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 Block401 den Zugriff auf den Datenbereich D2 an. Diese Anforderung wird beim Block403 zur SRDI-Verwaltungseinrichtung109 ü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 Block407 fest, dass der Anforderername (NA) gleich dem Eignernamen (NA) ist, und der Zugriff kann erteilt werden, indem der Datenbereich D2 beim Block409 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 Block402 den Zugriff auf den Datenbereich D1 an. Diese Anforderung wird beim Block403 ü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 Block405 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)
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
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)
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)
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 |
-
1997
- 1997-06-20 US US08/877,776 patent/US6175924B1/en not_active Expired - Fee Related
-
1998
- 1998-04-14 EP EP98302844A patent/EP0886202B1/de not_active Expired - Lifetime
- 1998-04-14 DE DE69815599T patent/DE69815599T2/de not_active Expired - Lifetime
- 1998-05-12 KR KR1019980016875A patent/KR100309535B1/ko not_active IP Right Cessation
- 1998-05-19 CN CN98108393A patent/CN1097772C/zh not_active Expired - Fee Related
- 1998-06-12 JP JP16473298A patent/JP3363379B2/ja not_active Expired - Fee Related
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 |