DE112015005602T5 - System und Verfahren zum Unterstützen von sicherer Objekten unter Verwendung einer Überwachungseinrichtung zur Speicherzugriffsteuerung - Google Patents

System und Verfahren zum Unterstützen von sicherer Objekten unter Verwendung einer Überwachungseinrichtung zur Speicherzugriffsteuerung Download PDF

Info

Publication number
DE112015005602T5
DE112015005602T5 DE112015005602.5T DE112015005602T DE112015005602T5 DE 112015005602 T5 DE112015005602 T5 DE 112015005602T5 DE 112015005602 T DE112015005602 T DE 112015005602T DE 112015005602 T5 DE112015005602 T5 DE 112015005602T5
Authority
DE
Germany
Prior art keywords
secure
data
secure object
software
memory
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.)
Pending
Application number
DE112015005602.5T
Other languages
English (en)
Inventor
William Eric Hall
Richard Harold Boivie
Guerney Hunt
Dimitrios Pendarakis
David Robert Safford
Kattamuri Ekanadham
Mohit Kapur
Kenneth Alan Goldman
Bhushan Pradip Jain
Enriquillo Valdez
Peter Anthony Sandon
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
Priority claimed from US14/839,691 external-priority patent/US10628579B2/en
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE112015005602T5 publication Critical patent/DE112015005602T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • 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/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1408Protection against unauthorised use of memory or access to memory by using cryptography

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (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)

Abstract

Ein Prozessor in einem Computersystem, wobei der Prozessor einen Mechanismus enthält, der ein sicheres Objekt unterstützt, das Daten beinhaltet, die geschützt werden, so dass andere Software in dem Computersystem auf diese Daten nicht zugreifen oder diese unbemerkt verfälschen kann, wodurch sowohl Vertraulichkeit als auch Integrität der Daten des sicheren Objekts geschützt werden, während die Daten des sicheren Objekts dem sicheren Objekt selbst während des Ausführens des sicheren Objekts zur Verfügung gestellt werden. Dieser Mechanismus enthält einen Krypto-Mechanismus, der Daten des sicheren Objekts entschlüsselt und daran Integritätsprüfungen ausführt, wenn die Daten des sicheren Objekts von einem externen Speichersystem in das Computersystem verschoben werden, und einen Integritätswert der Daten des sicheren Objekts verschlüsselt und aktualisiert, wenn die Daten des sicheren Objekts aus dem Computersystem zu dem externen Speichersystem verschoben werden, und einen Speicherschutzmechanismus, der die Vertraulichkeit und Integrität von Daten des sicheren Objekts schützt, wenn sich diese Daten in dem Speicher des Computersystems befinden.

Description

  • GEBIET DER ERFINDUNG
  • Die vorliegende Anmeldung bezieht sich auf Sicherheit in einem Computersystem, bei dem die Daten in einem bestimmten Software-Modul (ein „sicheres Objekt“) vor anderer Software in dem System geschützt werden.
  • HINTERGRUND DER ERFINDUNG
  • Die US-Patentanmeldung mit der laufenden Nummer 12/492 738, eingereicht am 26. Juni 2009, von Richard H. Boivie, mit dem Titel "Support for Secure Objects in a Computer System", jetzt erteilt als US-Patent Nr. 8 819 446 , führte das Konzept eines ‘Sicheren Objekts’ (Secure Object), das Code und Daten für ein Computersystem beinhaltet, das vor anderer Software in dem System kryptografisch geschützt ist, und eine Computerarchitektur zum Unterstützen dieser sicheren Objekte ein. Die US-Patentanmeldung mit der laufenden Nummer 12/878 696, eingereicht am 9. Sept. 2010, von Richard H. Boivie, mit dem Titel "Cache Structure for a Computer System Providing Support for Secure Objects", die US-Patentanmeldung mit der laufenden Nummer 13/033 367, eingereicht am 23. Feb. 2011, von Boivie und Williams, mit dem Titel "Secure Object Having Protected Region, Integrity Tree and Unprotected Region", jetzt erteilt als US-Patent Nr. 8 578 175 , die US-Patentanmeldung mit der laufenden Nummer 13/033 455, eingereicht am 23. Feb. 2011, von Boivie und Williams, mit dem Titel "Building and Distributing Secure Object Software", jetzt erteilt als US-Patent Nr. 8 954 752 , und die US-Patentanmeldung mit der laufenden Nummer 13/226 079, eingereicht am 6. Sept. 2011, von Boivie und Pendarakis, mit dem Titel "Protecting Application Programs from Malicious Software or Malware" führten zusätzliche Strukturen und Mechanismen zum Schützen der Vertraulichkeit und Integrität von Sicheren Objekten vor anderer Software ein, darunter “Malware“, die ein Angreifer möglicherweise in ein anvisiertes Computersystem einführen könnte.
  • KURZDARSTELLUNG DER ERFINDUNG
  • Im Hinblick auf die vorhergehenden und weitere Probleme, Nachteile und Minuspunkte der oben erwähnten Hintergrundtechnik werden durch einen beispielhaften Aspekt der offenbarten Erfindung ein neues System und Verfahren zum Bereitstellen einer Unterstützung für sichere Objekte bereitgestellt.
  • Bei der vorliegenden Erfindung wird eine Unterstützung für sichere Objekte auf eine Weise bereitgestellt, bei der keine Verschlüsselung oder Entschlüsselung erforderlich ist, wenn Daten zwischen einer CPU und einem externen Speicher verschoben werden, und somit wird eine Unterstützung für sichere Objekte auf eine Weise bereitgestellt, die effizienter ist und eine höhere Leistungsfähigkeit gewährleisten kann.
  • Bei einem Aspekt der vorliegenden Erfindung wird ein Prozessor in einem Computersystem bereitgestellt, wobei der Prozessor einen Mechanismus beinhaltet, der ein sicheres Objekt unterstützt, das Daten aufweist, die so geschützt werden, dass andere Software in diesem Computersystem auf diese Daten nicht zugreifen oder diese unbemerkt manipulieren kann, wodurch sowohl Vertraulichkeit als auch Integrität der Daten des sicheren Objekts geschützt werden und gleichzeitig die Daten des sicheren Objekts während des Ausführens des sicheren Objekts dem sicheren Objekt selbst zur Verfügung gestellt werden, wobei dieser Mechanismus einen Krypto-Mechanismus enthält, der Daten des sicheren Objekts entschlüsselt und daran Integritätsprüfungen ausführt, wenn diese Daten des sicheren Objekts von einem externen Speichersystem in das Computersystem verschoben werden, und Daten des sicheren Objekts verschlüsselt und einen Integritätswert für diese aktualisiert, wenn diese Daten des sicheren Objekts aus dem Computersystem zu dem externen Speichersystem verschoben werden, und einen Speicherschutzmechanismus beinhaltet, der die Vertraulichkeit und Integrität von Daten des sicheren Objekts schützt, wenn sich diese Daten in dem Speicher des Computersystems befinden.
  • Ein weiterer beispielhafter Aspekt der offenbarten Erfindung besteht darin, dass ein Verfahren zum Schützen der Vertraulichkeit und Integrität eines sicheren Objekts bereitgestellt wird, das in einem Computersystem ausgeführt wird, durch Schützen der Speicherseiten, die Eigentum des sicheren Objekts sind, durch folgende Schritte: Zuweisen einer Kennung zu einem sicheren Objekt, Bezeichnen der Speicherseiten, die Eigentum eines sicheren Objekts sind, mit der Kennung des sicheren Objekts, Führen einer Tabelle Überwachung der Zugangssteuerung (Access Control Monitor ACM) für die Speicherseiten des Systems, Steuern des Zugangs auf Speicherseiten durch Überwachen von Lade- und Speicherbefehlen und Vergleichen von Daten in der ACM-Tabelle mit der Kennung der Software, die diese Befehle ausführt, und Begrenzen des Zugangs auf eine Speicherseite auf den Eigentümer der Speicherseite.
  • Ein weiterer beispielhafter Aspekt der offenbarten Erfindung besteht darin, dass ein Verfahren zum Schützen der Vertraulichkeit und Integrität eines sicheren Objekts bereitgestellt wird, das in einer CPU ausgeführt wird, durch Schützen des CPU-Zustands des sicheren Objekts, wenn andere Software wie beispielsweise ein Betriebssystem oder ein Einheiten-Treiberprogramm das Ausführen eines sicheren Objekts unterbricht, wobei eine Überwachungseinrichtung der Zugangssteuerung den CPU-Zustand des sicheren Objekts sicher speichert, bevor die Unterbrechungssoftware ausgeführt wird, wodurch der CPU-Zustand eines sicheren Objekts vor anderer Software geschützt wird.
  • Es wurden hier also bestimmte Ausführungsformen der Erfindung recht umfangreich hervorgehoben, damit ihre genaue Beschreibung besser verstanden wird und der aktuelle Beitrag zum Stand der Technik besser erkannt wird. Es gibt natürlich zusätzliche Ausführungsformen der Erfindung, die nachfolgend beschrieben werden und den Gegenstand der daran angefügten Ansprüche bilden.
  • Es sollte klar sein, dass die Erfindung nicht auf ihre Anwendung auf die Details der Konstruktion und auf die Anordnung der Komponenten beschränkt ist, die in der folgenden Beschreibung dargestellt oder in den Zeichnungen veranschaulicht ist. Die Erfindung kann Ausführungsformen zusätzlich zu jenen enthalten, die beschrieben und auf verschiedene Arten realisiert und ausgeführt werden. Es sollte außerdem klar sein, dass die hier verwendete Ausdrucksweise und Terminologie sowie die Zusammenfassung zum Zweck der Beschreibung dienen und nicht als einschränkend betrachtet werden sollten.
  • Daher ist dem Fachmann klar, dass das Konzept, auf dem diese Offenbarung beruht, in einfacher Weise als Grundlage für das Entwerfen weiterer Strukturen, Verfahren und Systeme zum Ausführen der verschiedenen Zwecke der vorliegenden Erfindung genutzt werden kann. Es ist deswegen wichtig, dass die Ansprüche so betrachtet werden, dass sie derartige gleichwertige Konstruktionen beinhalten, insofern sie nicht vom Umfang der vorliegenden Erfindung abweichen.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • Die beispielhaften Aspekte der Erfindung werden aus der folgenden genauen Beschreibung der beispielhaften Ausführungsformen der Erfindung bei Bezugnahme auf die Zeichnungen besser verstanden.
  • 1 veranschaulicht den kryptografischen Schutz von Daten in einem sicheren Objekt bei früheren Anwendungen.
  • 2 wird bei der Erläuterung des Schutzes von sicheren Objekten bei der aktuellen Erfindung verwendet.
  • 3 veranschaulicht, wie sichere Objekte verwendet werden können, um eine durchgängige Sicherheit für Anwendungssoftware bereitzustellen.
  • 4 veranschaulicht, wie sichere Objekte verwendet werden können, um für virtuelle Maschinen und für Anwendungen in virtuellen Maschinen eine durchgängige Sicherheit bereitzustellen.
  • 5 veranschaulicht einen Überblick einer beispielhaften Ausführungsform der Überwachungseinrichtung der Zugangssteuerung (ACM).
  • 6 veranschaulicht eine Hierarchie von Schutzdomänen einer beispielhaften Ausführungsform.
  • 7 veranschaulicht ein beispielhaftes Hardware/Datenverarbeitungs-System, um die beispielhafte Ausführungsform der Erfindung darin aufzunehmen.
  • 8 veranschaulicht ein nichtflüchtiges signaltragendes Speichermedium zum Speichern von maschinenlesbaren Befehlen eines Programms, das die beispielhafte Ausführungsform der Erfindung umsetzt.
  • GENAUE BESCHREIBUNG VON BEVORZUGTEN AUSFÜHRUNGSFORMEN
  • Die Erfindung wird nunmehr unter Bezugnahme auf die Zeichnungsfiguren beschrieben, in denen gleiche Bezugszeichen durchgängig ähnliche Teile bezeichnen. Es wird betont, dass gemäß der üblichen Praxis die zahlreichen Merkmale nicht unbedingt maßstabsgerecht sind. Im Gegenteil können die Abmessungen der zahlreichen Merkmale zur Klarheit willkürlich vergrößert oder verkleinert sein. Beispielhafte Ausführungsformen werden nachfolgend für Erläuterungszwecke bereitgestellt und schränken die Ansprüche nicht ein.
  • Die offenbarte Erfindung bezieht sich allgemein auf eine Ausführungsform von sicheren Objekten ohne verschlüsselten Speicher und bezieht sich insbesondere, jedoch nicht einschränkend, auf ein Verwenden von sicheren Objekten zum Schützen virtueller Maschinen in einem System, bei dem das gleichzeitige Ausführen von mehreren virtuellen Maschinen unterstützt wird, um einzelne Anwendungen in einer virtuellen Maschine vor anderer Software zu schützen, darunter andere Software in der virtuellen Maschine.
  • Unterstützen von sicheren Objekten ohne Verschlüsseln von Speichern
  • In den früheren Patentanmeldungen, die oben erwähnt wurden und wie in 1 dargestellt, werden private Daten eines sicheren Objekts kryptografisch geschützt, wenn sie sich außerhalb des Chips 10 der CPU (Zentraleinheit) befinden, wobei die Kryptografie sowohl Vertraulichkeit als auch Integrität dieser Daten vor weiterer Software schützt. Die privaten Daten sind „unverschlüsselt“, wenn sie sich in dem CPU-Chip 10 im Universalregister oder in On-Chip-Cache-Speichern befinden, die CPU stellt jedoch sicher, dass andere Software keinen Zugang auf diese privaten Daten hat. Die CPU speichert den Zustand eines sicheren Objekts sicher und ruft ihn wieder ab, darunter die Inhalte der Universalregister, bei einer Unterbrechung oder Kontextumschaltung, und die CPU verfolgt die Software, die eine On-Chip-Cache-Zeile „besitzt“ und verhindert, dass „andere Software“ auf private Daten in einer On-Chip-Cache-Zeile zugreift.
  • Die vorliegende Anwendung bezieht sich auf eine Variation bei der Ausführungsart, die ähnliche Schutzvorkehrungen bereitstellt. Wie bei den früheren Patentanmeldungen schützt die aktuelle Erfindung die Vertraulichkeit und Integrität von privaten Daten eines sicheren Objektsvor anderer Software, darunter privilegierte Software wie ein Betriebssystem, Einheitentreiber oder privilegierte Anwendungen- oder Malware, die privilegierte Software „infiziert“ und Root-Privilegien erbt. Bei der vorliegenden Erfindung erfolgt das jedoch in einer Weise mit geringerem Leistungsaufwand und geringerem räumlichen Aufwand.
  • Bei der ursprünglichen Ausführungsart sicherer Objekte sind die privaten Daten eines sicheren Objekts nur dann unverschlüsselt, wenn sie sich in dem CPU-Chip befinden.
  • Bei der modifizierten Ausführungsart der aktuellen Anwendung sind die privaten Daten eines sicheren Objekts unverschlüsselt, wenn sie sich in dem CPU-Chip 110 und im Systemspeicher 120 befinden, wie in 2 dargestellt, und eine Überwachungseinrichtung der Zugangssteuerung (ACM) schützt im Speicher befindliche private Daten vor anderer Software. Die ACM kann vollständig in Hardware implementiert sein, ein Fachmann wird jedoch erkennen, dass Abschnitte der ACM außerdem in Mikrocode, Firmware oder Software implementiert sein können.
  • Wie bei den früheren Anwendungen enthält ein sicheres Objekt kryptografisch geschützte Daten, Integritäts-Daten und einen „Befehl esm“, der zum Beginnen einer sicheren Betriebsart verwendet wird. (Es wird angemerkt, dass es sich bei dem „Befehl esm“ um einen eigentlichen CPU-Befehl handeln könnte oder dieser als eine Aufruf- oder Software-Unterbrechung an die ACM umgesetzt werden könnte.)
  • Wie bei den früheren Anwendungen verarbeitet der „Befehl esm“ einen Operanden, um bestimmte Daten über ein sicheres Objekt zu erhalten, darunter den Krypto-Schlüssel, der die privaten Daten des sicheren Objekts schützt. Der „Befehl esm“ weist außerdem dem sicheren Objekt eine Kennung (Identität) zu. Wie bei der früheren Ausführungsart wird diese Kennung in ein CPU-Register geladen, das der CPU ermöglicht, Daten zu bezeichnen, um den „Eigentümer“ dieser Daten anzugeben.
  • Wie oben festgestellt sind bei der vorliegenden Erfindung private Daten eines sicheren Objekts im Speicher unverschlüsselt. Diese privaten Daten werden verschlüsselt, wenn sie zu einer Auslagerungseinheit ausgelagert werden wie beispielsweise eine Festplatte, und werden entschlüsselt, wenn sie eingelagert werden.
  • Wenn ein sicheres Objekt einen Seitenfehler erzeugt, wird die verschlüsselte Seite eingelagert, und die ACM entschlüsselt die Seite, bevor das sichere Objekt das Ausführen wieder aufnimmt. Wenn eine Seite, die private Daten enthält, ausgelagert werden soll, entschlüsselt die ACM die Seite, bevor die Seite zu der Auslagerungseinrichtung ausgegeben wird. (Wie in den früheren Anmeldungen erläutert steht der Schlüssel für diese Verschlüsselung und Entschlüsselung für andere Software nicht zur Verfügung.)
  • Bei geeigneter Hardware-Unterstützung kann die ACM diese Verschlüsselung und Entschlüsselung auf eine Weise ausführen, die für vorhandene Betriebssystem-Software transparent ist. Bei einer Ausführungsform werden Speicherschutzschlüssel wie jene verwendet, die in Servern des IBM® System z® zum Bezeichnen der Seiten des physischen Speichers verwendet werden (bei IBM und System z handelt es sich um Handelsmarken der International Business Machine Corporation, die weltweit in vielen Gerichtsbarkeiten registriert sind). In diesem Fall würde der Speicherschutzschlüssel für eine Seite die Kennung des sicheren Objekts enthalten, das Eigentümer dieser Seite ist. Wie oben erläutert würde die Kennung für ein sicheres Objekt als Teil eines „Befehls esm“ zugewiesen. Wenn das Betriebssystem eine Seite von einer Festplatte einbringt, wird der Speicherschutzschlüssel für die Seite die Kennung des Betriebssystems enthalten. Wenn ein sicheres Objekt erstmals versucht, Zugang zu einer Seite zu erhalten, nachdem sie eingelagert wurde, stimmt die Kennung des sicheren Objekts nicht mit der Kennung der Speicherseite überein, und es erfolgt eine Unterbrechung „Eigentümer-Nichtübereinstimmung“. Die ACM bearbeitet diese Unterbrechung und ändert die Eigentümerschaft der Seite zu dem sicheren Objekt und entschlüsselt anschließend die Seite und nimmt das Ausführen des sicheren Objekts wieder auf. Wenn das Betriebssystem später versucht, eine Seite auszulagern, die Eigentum eines sicheren Objekts ist, tritt eine weitere Eigentümer-Nichtübereinstimmung auf. In diesem Fall wird die ACM die Unterbrechung abfangen und die Seite verschlüsseln und anschließend die Eigentümerschaft der Seite auf Betriebssystem ändern und das Ausführen des Betriebssystems wiederaufnehmen. (Wenn alternativ das Betriebssystem ein Auslagern durch Starten eines DMA zur Festplatte auslöst, könnte das Betriebssystem der ACM mitteilen, dass es vorgesehen ist, das Auslagern vor dem Beginnen des DMA umzuschalten, so dass die ACM die Seite verschlüsseln kann, ohne dass eine DMA-Operation unterbrochen oder ausgesetzt werden muss.)
  • Zwar werden bei den oben beschriebenen beispielhaften Ausführungsformen Speicherschutzschlüssel zum Bezeichnen von Speicherseiten verwendet, ein Fachmann wird jedoch erkennen, dass die Erfindung unter Verwendung anderer Mechanismen realisiert werden kann, z.B. indem Eigentümerschaft-Bezeichnungen Seitentabelleneinträgen (PTEs) und/oder Translation-Lookaside-Puffern (TLBs) in einer Adressenübersetzungs-Hardware angefügt werden.
  • Wie oben erwähnt stellt die Erfindung, die in der vorliegenden Patentanmeldung erörtert wird, ähnliche Schutzmaßnahmen wie die früheren Patentanmeldungen für sichere Objekte, jedoch mit mehreren Vorteilen bereit. Der Leistungsaufwand ist bei der aktuellen Erfindung geringer, da Krypto- und Integritätsverarbeitung lediglich dann erfolgen, wenn Datenseiten zwischen dem Speicher und einer Speichereinheit verschoben werden. Bei der früheren Ausführungsart erfolgen Krypto- und Integritätsverarbeitung immer dann, wenn eine Cache-Zeile zwischen der CPU und dem externen Speicher verschoben wird. Außerdem ist der Platzbedarf bei der aktuellen Erfindung bedeutend geringer, da die Ausführungsart (design) lediglich einen Integritätswert pro Speicherseite erfordert (z.B. 1 Wert pro 4K Bytes) anstelle von einem Integritätswert pro Cache-Zeile (wobei es sich dabei um 128 Bytes oder 64 Bytes oder eine andere verhältnismäßig kleine Anzahl von Bytes in Abhängigkeit von der jeweiligen CPU-Architektur handeln könnte) wie bei den früheren Anwendungen erläutert.
  • Verwenden von sicheren Objekten zum Schützen von virtuellen Maschinen und Anwendungen in virtuellen Maschinen
  • Wie bei den früheren Patentanmeldungen erläutert und in 3 dargestellt können sichere Objekte 210 verwendet werden, um einzelne Anwendungen 220, 222, 224 vor der anderen Software in einem System zu schützen. Wie in 4 dargestellt können sichere Objekte 300 außerdem verwendet werden, um virtuelle Maschinen 310, 312, 314 in einem System zu schützen, das das gleichzeitige Ausführen mehrerer virtueller Maschinen 330 unterstützt. Das wäre in einer Cloud-Datenverarbeitungsumgebung nützlich, beispielsweise zum Schützen einer virtuellen Maschine eines Benutzers vor der Software des Cloud-Dienstanbieters sowie vor den virtuellen Maschinen anderer Benutzer. Sichere Objekte 300 können außerdem verwendet werden zum Schützen einzelner Anwendungen in einer virtuellen Maschine vor der anderen Software in der virtuellen Maschine.
  • Bei einer Ausführungsform können sichere Objekte 300 verwendet werden zum Schützen virtueller Maschinen in einer Linux/KVM-Umgebung 320 (bei Linux handelt es sich um ein eingetragenes Warenzeichen von Linus Torvals in den Vereinigten Staaten, anderen Ländern oder beiden). Bei KVM (kerngestützte virtuelle Maschine) handelt es sich um ein Linux-Teilsystem, bei dem eine Überwachungseinrichtung (ein Monitor) einer virtuellen Maschine (oder Hypervisor) einem Linux-System 320 hinzugefügt wird. Bei einem Linux/KVM-System werden virtuelle Maschinen als reguläre Linux-Prozesse implementiert, daher können diese virtuellen Maschinen in der gleichen Weise geschützt werden wie gewöhnliche Anwendungen bei den gegenwärtigen oder früheren Anwendungen. Aus einer virtuellen Maschine kann eine sichere virtuelle Maschine (oder SVM) in ähnlicher Weise gemacht werden, wie bei den früheren Anwendungen aus einer Anwendung ein sicheres Objekt gemacht wird. Bei einer Ausführungsform wird am Anfang des Codes der virtuellen Maschine (z.B. ein BS-Abbild) ein Befehl esm angefügt, Wrappers werden für Kommunikationen außerhalb der virtuellen Maschine angefügt (ähnlich zu den Wrappers, die in den früheren Anwendungen beschrieben sind), und die virtuelle Maschine ist integritätsgeschützt (und wahlweise verschlüsselt) wie in den früheren Anwendungen erläutert. Die SVM kann dann auf Linux/KVM in einer CPU mit dem Support durch sichere Objekte betrieben werden, der in den gegenwärtigen oder früheren Anwendungen beschrieben ist. Der Schutz durch sichere Objekte schützt die Daten in der SVM, aber es liegt in der Zuständigkeit der SVM, Daten zu schützen, die die SVM verlassen wie beispielsweise Pakete, die zu einem fernen System gesendet werden (beispielsweise unter Verwendung von Mechanismen wie Transport Layer Security (TLS) oder IPsec) und Daten, die in ein Dateisystem geschrieben werden (unter Verwendung eines Mechanismus wie dm-crypt). Es ist zu berücksichtigen, wie bei den früheren Anwendungen ist der Schutzmechanismus für sichere Objekte zuständig für sicheres Speichern und Abrufen des Zustands von sicheren Objekten, die in diesem Fall sicheren virtuellen Maschinen entsprechen.
  • Wie in einer der früheren Patentanmeldungen erläutert (US-Patentanmeldung mit der laufenden Nummer 13/226 079), kann der Schutz Sicheres Objekt so eingerichtet sein, dass sowohl die Vertraulichkeit als auch die Integrität von Daten oder lediglich die Integrität von Daten geschützt sind. Wie in dieser Anmeldung erläutert können verschiedene Abschnitte eines sicheren Objekts auf unterschiedliche Weise geschützt werden. Der Schutz Sicheres Objekt kann so eingerichtet sein, dass die Integrität, nicht jedoch die Vertraulichkeit des Kern-Codes in einer Secure Virtual Maschine geschützt sind, während sowohl Vertraulichkeit als auch Integrität der anderen Daten in der SVM geschützt sind. Das würde ermöglichen, dass ein Hypervisor wie beispielsweise Linux/KVM „Kernel Samepage Merging“ ausführt, so dass z.B. dieselben Kerncodeseiten für verschiedene virtuelle Maschinen verwendet werden könnten, wobei trotzdem Vertraulichkeits- und Integritätsschutz für die anderen Daten in diesen virtuellen Maschinen gewährleistet sind.
  • Zwar ist die hier beschriebene Ausführungsform für ein Linux/KVM-System vorgesehen, ein Fachmann wird jedoch erkennen, dass die Erfindung in anderen Umgebungen realisiert werden kann, bei denen virtuelle Maschinen unterstützt werden.
  • Der Schutz Sicheres Objekt kann außerdem verwendet werden, um einzelne Anwendungen in sicheren oder gewöhnlichen/nichtsicheren virtuellen Maschinen zu schützen. In jedem Fall hat eine virtuelle Maschine ein Dateisystem, und das Dateisystem kann eine Anwendung enthalten, die als sicheres Objekt erstellt wurde. Bei einer Ausführungsform hat die sichere Anwendung einen kryptografisch geschützten Bereich, einen Befehl esm und Systemaufruf-Wrappers und wurde als Sicheres Objekt erstellt, wie in der US-Patentanmeldung mit der laufenden Nummer 13/033 455, jetzt US-Patent Nr. 8 954 752 erläutert. Bei dieser Ausführungsform wird die sichere Anwendung wie jede andere Anwendung in der (sicheren oder nichtsicheren) virtuellen Maschine gestartet und führt dann einen Befehl esm aus, um eine sichere Betriebsart zu beginnen. Die Ausführung der sicheren Anwendung verläuft wie in den früheren Anwendungen erläutert, obwohl der Support Sicheres Objekt außerdem über einen Kontextwechsel in einer virtuellen Maschine informiert sein muss, so dass er den Zustand einer sicheren Anwendung sicher speichern und abrufen kann, wenn ein Kontextwechsel erfolgt.
  • In ähnlicher Weise kann der Schutz Sicheres Objekt verwendet werden, um „Container“ (wie beispielsweise Linux-Container) zu schützen, die in einer sicheren virtuellen Maschine, in einer gewöhnlichen nichtsicheren virtuellen Maschine oder in einem Betriebssystem betrieben werden, das auf einer Hardware „Bare Metal“ abläuft.
  • Es gibt verschiedene Instanziierungen von Linux-Containern, darunter LXC und Docker (bei Docker handelt es sich um ein Warenzeichen von Docker, Inc., das weltweit in vielen Gerichtsbarkeiten registriert ist). Zwar stellen Hypervisors eine Virtualisierung auf der Hardware-Abstraktionsschicht bereit, Container stellen eine Virtualisierung auf der Betriebssystem-Schicht bereit. So wie Hypervisor-Gäste ausgeführt werden, als ob sie in ihrem eigenen speziellen Betriebssystem ausgeführt werden, werden Container so ausgeführt, als ob sie in ihrem eigenen speziellen Betriebssystem ausgeführt werden. Container verwenden Kern-Merkmale, darunter Namenräume, Cgroups und Möglichkeiten, um jedem Container das Erscheinungsbild eines speziellen Betriebssystem-Kerns zu geben. Bei Containern handelt es sich in gewissem Sinn teilweise um einzelne native Anwendungen und teilweise um virtuelle Maschinen, bei denen viele Anwendungen ausgeführt werden. Sichere Objekte können verwendet werden zum Schützen von Containern ähnlich zu der Art, wie Sichere Objekte verwendet werden, um Anwendungen und virtuelle Maschinen zu schützen. Eine Container-Abbilddatei kann in ähnlicher Weise wie ein Abbild einer virtuellen Maschine geschützt werden, wobei ein Befehl esm zum Entschlüsseln des Abbildschlüssels verwendet wird. Die einzelnen Prozesse in dem Container können wie in der ursprünglichen Beschreibung des Schutzes auf der Anwendungsschicht geschützt werden. Wie im Fall von sicheren Anwendungen und sicheren VMs ist die Software in einem sicheren Container für das Sichern von Daten zuständig, die den Container verlassen. Und wie im Fall von sicheren Anwendungen könnten Systemaufruf-Wrapper für Aufrufe an das Betriebssystem verwendet werden. Bei Bedarf können bestimmte Systemaufrufe (z.B. Dateisystem-Primitive) in einem „Bibliothek-BS“ („Library OS“) enthalten sein, das sich in einer sicheren Anwendung oder einem sicheren Container befindet, um den Aufwand möglichst gering zu halten, der andernfalls möglicherweise erforderlich wäre, um Daten zu schützen, die die sichere Anwendung oder den sicheren Container bei einem Systemaufruf verlassen oder von außerhalb eintreffen.
  • Die vorliegende offenbarte Erfindung unterstützt außerdem sichere Bereiche in einer Anwendung. Wie in einer der oben aufgelisteten früheren Patentanmeldungen erläutert (US-Patentanmeldung mit der laufenden Nummer 12/492 738, eingereicht am 26. Jun. 2009, jetzt US-Patent Nr. 8 819 446 ), können in einer Anwendung die Befehle esm und lsm verwendet werden, um besonders sensitive Abschnitte einer Anwendung vor „anderer Software“ zu schützen, darunter andere Software in der Anwendung.
  • Überwachungseinrichtung zur Zugangssteuerung (ACM)
  • Wie oben erläutert erweitert die vorliegende Erfindung die früheren Anwendungen auf verschiedene Arten.
  • Die vorliegende Erfindung unterstützt das Verwenden von Kennzeichnungen zum Schützen von Speicherseiten.
  • Die vorliegende Erfindung unterstützt außerdem das gemeinsame Nutzen von Daten durch sichere Objekte unter Verwendung von Kennzeichnungen für die Daten, die gemeinsam genutzt werden sollen. Diese Kennzeichnungen können bei Cache-Speicherzeilen bei einer Umsetzung, bei der Cache-Speicherzeilen wie bei den oben erwähnten früheren Patentanmeldungen bezeichnet werden, oder auf Speicherseiten angewendet werden, wie in der vorliegenden Anmeldung genau erläutert wird. Eine Kennzeichnung, die außerdem als eine „Farbe“ („Color“) benannt wird, bezeichnet eine bestimmte Sicherheitsdomäne 450 n (wobei n eine Ganzzahl ist), und auf die Daten, die durch eine vorgegebene Farbe benannt sind, kann durch jede beliebige Software zugegriffen werden, die diese Farbe in ihrer „Farbpalette“ beinhaltet. Wenn eine Speicherseite von mehreren Sicheren Objekten gemeinsam genutzt wird, wird die Farbe dieser Speicherseite in der Palette von jedem dieser Sicheren Objekte erscheinen. Zum Beispiel hat 450 1 die Farbe Rot, 450 2 hat die Farbe Grün und 450 3 hat die Farbe Blau.
  • Die offenbarte Erfindung unterstützt außerdem Sichere Objekte, die sich in anderen Sicheren Objekten befinden wie eine Sichere Anwendung oder ein Sicherer Container in einer Sicheren Virtuellen Maschine.
  • Eine Ausführungsform beinhaltet einen Access Control Monitor (ACM) 470, der den Zugang zum Speicher 410 überwacht und steuert. Ein Überblick über den ACM 470 ist in 5 dargestellt. Unten links ist ein Prozessor 420 gemeinsam mit seinen Verbindungen zu Registern 434 und zum Speicher 410 über eine Lade-Speicher-Einheit 480 gezeigt. Bei dem Prozessor kann es sich um einen „herkömmlichen“ Prozessor handeln. Bei der offenbarten Erfindung ist der Prozessor 420 durch eine zusätzliche Logikschaltung aufgerüstet, die als ACM-Hardware (ACM-HW) bezeichnet wird. Die ACM-Hardware 432 fängt Lade- und Speicherbefehle ab und verarbeitet spezielle ACM-Trap-Befehle. Die ACM-Hardware 432 führt bestimmte Prüfungen an Lade- und Speicherbefehlen aus und kann eine bestimmte zusätzliche Verarbeitung ausführen, bevor die Lade- und Speicherbefehle zu der Lade- und Speichereinheit 480 geleitet werden.
  • In 5 ist die Software, die in einem ACM-System 470 ausgeführt wird, als eine Sammlung von Domänen 450 n an der Oberseite der Figur gezeigt. Jede Domäne 450 n enthält eine Sammlung von Software-Modulen, bei denen dieselben Sicherheitsprivilegien vorhanden sind. Die erste Domäne 450 0 enthält den BS-Code (Betriebssystemcode) sowie alle gewöhnlichen nichtsicheren Prozesse, die in dem BS ausgeführt werden. (Bei einem weiteren Beispiel könnte die erste Domäne einen Hypervisor 512 (6) sowie gewöhnliche nichtsichere virtuelle Maschinen enthalten, die in diesem Hypervisor betrieben werden.) Bei der zweiten Domäne handelt es sich um eine sichere Domäne ACM-SW 450 1, die bestimmte ACM-Funktionen in Software ausführen kann. Wie zuvor festgestellt kann die ACM in Hardware oder in bestimmten Kombinationen aus Hardware und Software umgesetzt werden. Die in 5 gezeigten Grenzen können zwischen Hardware 432 und Software 450 1 geändert werden. „Komplexe Funktionen“ wie beispielsweise das Verschlüsseln und Entschlüsseln von Speicherseiten oder das Erzeugen oder Validieren von Integritätswerten könnten möglicherweise in der ACM-SW 450 1 umgesetzt sein. Bei den anderen Domänen 450 2 und 450 3 handelt es sich um Sichere Objekte, bei denen es sich um sichere Anwendungen oder sichere virtuelle Maschinen oder sichere Container handeln kann. Die Rolle der ACM, eine Kombination aus 432 und 450 1, in 5 besteht darin, die Vertraulichkeit und Integrität von Daten in allen diesen Sicheren Objekten vor der gesamten anderen Software in dem System, darunter der BS/Hypervisor, zu schützen.
  • Die ACM-HW 432 ist als Zustandsmaschine organisiert, die auf Anforderungen anspricht und Antworten zurückgibt wie in 5 gezeigt. Bei der oben gezeigten „Cloud“ 494 handelt es sich um „Glue-Logik“ 494, die verschiedene Signale in ACM-Anforderungen übersetzt und geeignete ACM-Antworten an den Prozessor 420 zurückgibt.
  • Die Funktionen, die bei einer Ausführungsform der ACM bereitgestellt werden, und die Datenstrukturen, die zum Implementieren dieser Ausführungsform verwendet werden, werden nachfolgend beschrieben.
  • Bei dieser Ausführungsform wird in der ACM-HW 432 ein Katalog von Seiten geführt, die durch das von der ACM-HW 432 verwendete BS zugeordnet werden, um Sicherheitsbeschränkungen zu erzwingen, ohne in die Details der Mechanismen zur Adressenübersetzung einsteigen zu müssen, die von der CPU-Hardware 420 verwendet werden. Bei einer weiteren Variante verwaltet die ACM-HW 432 die Tabellen, die von der CPU (Zentraleinheit) oder dem Prozessor 420 verwendet werden, und das BS richtet Aufrufe an die ACM-HW 432 zum Aktualisieren dieser Tabellen. Aus einer Sicherheitsperspektive sind die beiden Schemen gleichwertig, wobei der Unterschied darin besteht, dass die ACM-HW 432 in einem Fall die Änderungen verfolgen muss, die von dem BS bewirkt werden, und im anderen Fall die Hardware-Tabellen verwalten muss.
  • Bei der ACM-HW 432 kann es sich um eine Logikschaltung handeln oder alternativ um Software, die in einem nichtflüchtigen Aufzeichnungsmedium gespeichert wird und durch einen Prozessor ausführbar ist.
  • Eine der Funktionen, die bei dieser Ausführungsform bereitgestellt werden, erzeugt eine neue ACM, z.B. ACM1 in 6. Unter Verwendung dieser Primitive kann man eine Hierarchie von Schutzdomänen erzeugen wie in 6 gezeigt. Jede neu erzeugte ACM in 6, ACM1 bis ACM4 in 532 besitzt seinen eigenen Satz von Farben und verwaltet seinen eigenen Satz von Domänen. Zu jedem Zeitpunkt arbeitet der Prozessor 520 im Auftrag einer Domäne, die durch eine zugehörige ACM in 532 gesteuert wird. Ein Unterbrechungsvektor verfolgt die ACM in 532, an die eine Unterbrechung gerichtet werden sollte. Anfangs gehören alle Unterbrechungen zu der ursprünglichen ACM, ACM0 in 532, jedoch kann eine ACM, ACM0 bis ACM4 in 532, Unterbrechungen zu anderen Domänen delegieren. Bei einer Ausführungsform ruft ein BS 510 NewDomain auf, um eine neue sichere Domäne mit einer neuen Farbe zu erzeugen.
  • Beispielsweise ist eine Anwendung App 1 grün und eine Anwendung App 2 ist blau.
  • Nach dem Erzeugen einer neuen sicheren Domäne kann ein BS, z.B. 510, NewACM unter Verwendung der gerade erzeugten Domäne als Zieldomäne für eine neue ACM aufrufen. Bei der neuen ACM, die erzeugt wird, z.B. ACM in 532, handelt es sich um eine virtuelle ACM, die mit der ACM-HW 530 verbunden ist, die schließlich für eine Trennung zuständig ist, wobei die virtuellen ACMs ACM1 bis ACM4 in 532 ihre Anforderungen rekursiv zu der ACM-HW 530 leiten.
  • Bei einer Ausführungsform von ACM 432 und 450 1 in 5 werden die nachfolgend aufgeführten Datenstrukturen verwendet, um die Funktionen bereitzustellen, die nachfolgend beschrieben werden. Es ist zu beachten, dass die Werte, die für Tabellengrößen und Feldbreiten (z.B. für Farben) verwendet werden, sowie weitere Details dieser Ausführungsform lediglich Zwecken der Darstellung dienen. Es sollte klar sein, dass die vorliegende Erfindung nicht auf diese präzise Ausführungsform beschränkt ist und zahlreiche Änderungen und Modifikationen von einem Fachmann vorgenommen werden können, ohne vom Umfang der vorliegenden Erfindung abzuweichen.
  • Datenstrukturen:
    • 1. Farben, Farbfelder und Freifarben-Bit-Vektor (Free Color Bit Vector, FCBV). Eine Farbe entspricht einer Sicherheitsdomäne. Bei dem Freifarben-Bit-Vektor handelt es sich um einen 1K-Bit-Vektor, der bis zu 1024 Farben unterstützt. Anfänglich sind nur Nullen vorhanden. Zum Zuordnen einer neuen Farbe wird das erste Nullbit positioniert und auf 1 eingestellt, um anzugeben, dass die Farbe zugeordnet wurde. Der Index wird in einen 10-Bit-Wert umgesetzt, der als Farbfeld bei anderen Datenstrukturen verwendet wird. Jedes sichere Objekt 300 hat wenigstens eine Farbe (seine „primäre“ Farbe, die gleich ihrer Kennung des sicheren Objekts ist). Ein sicheres Objekt kann außerdem zusätzliche Farben für Seiten haben, die mit anderer Software gemeinsam genutzt werden. Schließlich wird eine Farbe durch die gesamte Software verwendet, die nicht Teil eines sicheren Objekts ist. Speicherseiten haben ebenfalls Farben. Bei der Farbe einer privaten (nicht gemeinsam genutzten) Speicherseite handelt es sich um die des aktuellen Eigentümers der Seite.
    • 2. Paletten: Bei einer Palette handelt es sich um den Satz von Farben, auf die ein sicheres Objekt 300 Zugriff hat. Sie kann als ein 1K-Bit-Vektor umgesetzt sein. Jedes sichere Objekt 300 hat eine eindeutige Farbe für seine privaten Seiten. Es kann außerdem zusätzliche Farben haben für Seiten, bei denen es bereit ist, sie mit anderen gemeinsam zu nutzen, und für Seiten, bei denen andere sichere Objekte 300 bereit sind, sie mit ihm gemeinsam zu nutzen. Wenn ein ausgeführtes Programm versucht, auf eine Seite zuzugreifen, jedoch die Farbe dieser Seite nicht in seiner Palette vorhanden ist, wird eine Farben-Nichtübereinstimmungs-Unterbrechung (eine Verallgemeinerung einer Eigentümer-Nichtübereinstimmung) erzeugt. Wie oben erläutert werden ACM 432 und 450 1 diese Unterbrechung behandeln, den Eigentümer (Farbe) der Seite ändern und die Seite wie zuvor erläutert verschlüsseln oder entschlüsseln.
    • 3. Zustandstabelle: eine Tabelle mit 1K Einträgen, die den Zustand von bis zu 1K sicheren Objekten sicher speichert. Wenn ein sicheres Objekt 300 unterbrochen wird, werden ACM 432 und 450 1 den Zustand des sicheren Objekts 300 in einem Eintrag in dieser Tabelle sicher speichern, bevor die Steuerung an eine geeignete Unterbrechungs-Verarbeitung übergeben wird. Der i-te Eintrag in der Tabelle wird für das sichere Objekt verwendet, das die Kennung (oder Primärfarbe) i hat. Ein sicheres Objekt wird sicher wiederaufgenommen, wenn das BS einen “Wiederaufnahme-“Aufruf an die ACM richtet und den Index des sicheren Objekts spezifiziert, das wiederaufgenommen werden soll. Der Eintrag in dieser Tabelle enthält die folgenden Felder. a. ST[i].pc. Der Programmzähler, bei dem das sichere Objekt 300 die Ausführung wiederaufnimmt. b. ST[i].state. Der Registerzustand des sicheren Objekts 300. c. ST[i].palette. Die Palette des sicheren Objekts 300. d. ST[i].color. Die Primärfarbe (d.h. die Kennung) des sicheren Objekts
    • 4. Register Momentaner Zustand (CS) und Momentane Palette (CP). Bei CS handelt es sich um ein 10-Bit-Register, das die Kennung/Primärfarbe des momentan ausgeführten sicheren Objekts enthält. Es wird außerdem als ein Index für die Zustandstabelle verwendet. Bei CP handelt es sich um ein 1K-Bit-Vektor-Register, das die Palette des momentan ausgeführten sicheren Objekts enthält. Diese Palette wird mit der Farbe einer Speicherseite während eines Speicherzugriffs verglichen. Wenn die Farbe der Seite in der Palette vorhanden ist, ist der Zugriff zulässig. Andernfalls wird eine Farben-Nichtübereinstimmungs-Unterbrechung erzeugt.
    • 5. Farbfelder, die Seitentabelleneinträgen (PTEs) und TLB-Einträgen (TLBEs) angefügt werden. Jeder Seitentabelleneintrag (PTE) und jeder TLB-Eintrag (TLBE) wird mit einem 10-Bit-Farbfeld erweitert, das verwendet wird, um zu ermitteln, ob die Farbe einer Speicherseite, auf die zugegriffen wird, in der Palette der Software vorhanden ist, die momentan ausgeführt wird.
    • 6. Farbtabelle (CT): Eine Tabelle mit 1K Einträgen, jeweils einer für jede Farbe. Ein Eintrag enthält die folgenden Informationen für eine Farbe. a. CT[i].key. Ein optionaler Krypto-Schlüssel, der, wenn spezifiziert, verwendet wird, um eine Seite bei einer Farben-Nichtübereinstimmungs-Unterbrechung zu verschlüsseln oder zu entschlüsseln. b. CT[i].handle. Eine optionale Dateikennung (handle), die, wenn spezifiziert, angibt, dass eine Farbe für eine gemeinsam genutzte Seite verwendet wird. c. CT[i].class. Eine optionale Sicherheitsklasse, die die Sicherheitsklasse des Eigentümers einer gemeinsam genutzten Seite angibt. d. CT[i].rwxBits. Ein optionales Feld, das die Zugriffsrechte angibt, die der Eigentümer einer gemeinsam genutzten Seite für andere zur Verfügung gestellt hat.
  • Basisfunktionen:
  • Erzeugen eines neuen sicheren Objekts. Wenn eine Anwendung oder ein Container oder eine virtuelle Maschine einen Aufruf „Beginne sichere Betriebsart“ (esm) aufruft, führt die ACM 432 und 450 1 Folgendes aus
    • a. Erzeugen eines neuen Eintrags in der Zustandstabelle für das neu erzeugte sichere Objekt 300
    • b. Zuweisen einer Kennung/Primärfarbe für das neu erzeugte sichere Objekt
    • c. Entschlüsseln des Operanden des esm-„Befehls“ unter Verwendung eines Systemschlüssels, der für andere Software nicht zur Verfügung steht, um bestimmte Daten über das neue sichere Objekt zu erhalten, darunter der symmetrische Schlüssel, der zum Entschlüsseln des sicheren Objekts 300 verwendet wird. (Der Operand könnte möglicherweise entschlüsselt werden wie in der US-Patentschrift Nr. 578 175 erläutert.) Die Startadresse für sichere Ausführung wird ebenfalls von dem entschlüsselten Operanden erhalten.
    • d. Speichern geeigneter Daten in dem FCBV, der Zustandstabelle, der Farbtabelle, dem CS und dem CP, die oben beschrieben wurden, und
    • e. Wiederaufnehmen der Ausführung des neu erzeugten sicheren Objekts 300 in einer sicheren Betriebsart an der Startadresse für sichere Ausführung, die oben bezeichnet wurde.
  • Vorverarbeitung von Unterbrechungen. Wenn eine Unterbrechung auftritt, während ein sicheres Objekt 300 ausgeführt wird, speichern die ACM 432 und 450 1 den Zustand des sicheren Objekts 300 in der oben beschriebenen Zustandstabelle sicher, bevor die Steuerung an die geeignete Unterbrechungs-Verarbeitung übergeben wird.
  • Sicher wiederaufnehmen. Wenn ein BS 510 oder ein Hypervisor 512 ein zuvor unterbrochenes sicheres Objekt 300 wiederaufnehmen möchte, bewirkt es bzw. er einen Aufruf „Wiederaufnehmen“ an seine steuernde ACM, z.B. ACM1 in 532, die den Zustand sicher wiederherstellt und das Ausführen des zuvor unterbrochenen sicheren Objekts wiederaufnimmt.
  • Behandeln von Farben-Nichtübereinstimmungs-Unterbrechungen. Eine Farben-Nichtübereinstimmungs-Unterbrechung wird durch eine ACM behandelt. Wenn die Unterbrechung auftritt, während nichtsichere Software ausgeführt wird, verschlüsselt ACM 530 die Seite. Wenn die Unterbrechung auftritt, wenn ein sicheres Objekt 300 abläuft, verschlüsselt ACM 530 die Seite. Der erste Fall könnte als eine Unterbrechung „Verschlüsseln zum Auslagern“ bezeichnet werden. Dieser Code der ACM 530 „Verschlüsseln zum Auslagern“ könnte außerdem direkt von einem BS 510 oder einem Hypervisor 512 aufgerufen werden, so dass die ACM 530 nicht mitten in eine DMA-Operation springen muss, wie oben erläutert wurde. Der zweite Fall könnte als eine Unterbrechung „Entschlüsseln für sichere Ausführung“ bezeichnet werden.
  • Zusätzliche Funktionen für sicheres gemeinsames Nutzen von Speichersegmenten Linux-Systeme und andere Systeme unterstützen einen von verschiedenen Anwendungen gemeinsam genutzten Speicher. ACM ergänzt das durch Unterstützen von gemeinsam genutzten Speichersegmenten, die vor der anderen Software in einem System geschützt werden, darunter Betriebssystem-Software und Hypervisor-Software.
  • Ein sicheres Objekt kann eine neue Farbe und einen neuen Krypto-Schlüssel für ein Speichersegment erzeugen, das es gemeinsam nutzen möchte, und anschließend diese neue Farbe mit einem oder mehreren Stellen gemeinsam nutzen. Ein gemeinsames Nutzen kann durch das Verwenden eines Handle realisiert werden, der zwischen zusammenwirkenden Stellen übergeben werden kann. Der Eigentümer eines Speichersegments kann die ACM bitten, einen Handle für das Speichersegment zu erzeugen, und die ACM wird eine neue Farbe und einen neuen Krypto-Schlüssel dem Speichersegment zuweisen.
  • Die ACM wird daraufhin die neue Farbe der Palette des Eigentümers anfügen und einen Handle für das Speichersegment an den Eigentümer zurückgeben, den der Eigentümer dann mit anderen Stellen gemeinsam nutzen kann. Eine weitere Stelle kann dann den Handle der ACM anbieten, die dann die zugehörige Farbe ihrer Palette hinzufügt. Die Speicherseiten, die dieser Farbe zugehörig sind, sind dann für den Eigentümer und die Stellen zugänglich, mit denen der Eigentümer den Handle gemeinsam nutzt. Diese Speicherseiten sind somit für keine andere Software zugänglich. Zum Gewährleisten der Sicherheit ist ein Handle schwer zu erraten wie beispielsweise ein Zufallsreihe aus 128 Bits oder eine Zufallsreihe aus 256 Bits. (Bei einem alternativen Entwurf könnte der Eigentümer des gemeinsam genutzten Speichersegments den Handle für das Segment erzeugen.)
  • Ein Eigentümer eines Speichersegments kann außerdem die Art des Zugriffs spezifizieren, den eine andere Stelle auf das Segment haben kann. Er tut das, wenn ein Handle angefordert wird, indem die Zugriffsrechte spezifiziert werden, die er für andere sichere Objekte zur Verfügung stellen möchte (z.B. über eine Reihe von rwx-Bits, um anderen Stellen die Erlaubnis zu erteilen, Befehle aus dem gemeinsam genutzten Segment zu lesen, zu schreiben bzw. auszuführen).
  • Gemeinsames Nutzen bei Steuerelementen für obligatorischen Zugriff
  • ACM unterstützt außerdem Steuerelemente für obligatorischen Zugriff aus einer Menge von Sicherheitsklassen. Ein sicheres Objekt wird beim Einrichten auf der Grundlage von Daten in seinem esm-Operanden einer Sicherheitsklasse zugewiesen. ACM verwendet eine quadratische Beschränkungsmatrix (CM) zum Erzwingen von Steuerelementen für obligatorischen Zugriff unter den Klassen. CM enthält eine Zeile für jede Sicherheitsklasse und eine Spalte für jede Klasse. Ein Eintrag CM[i, j] gibt z.B. über rwx-Bits an, ob ein sicheres Objekt der Klasse i einem anderen sicheren Objekt der Klasse j eine Erlaubnis zum Lesen, Schreiben oder Ausführen an einem Speichersegment erteilen kann, das der Klasse i gehört. Diese Beschränkungsmatrix kann in der ACM „hart codiert“ sein oder über einen Standard-Sicherheitsmechanismus als digitale Signatur, über ein sicheres Transportprotokoll oder über einen anderen Sicherheitsmechanismus, der nach dem Stand der Technik bekannt ist, bereitgestellt werden. (Es ist zu beachten, dass es sich bei der Klasse eines sicheren Objekts um eine „Klasse mit universellem Zugriff“ handeln kann, wie im IBM Forschungsbericht RC 21673 Multi-Organizational Mandatory Access Controls for Commercial Applications, Paul Karger, 22. Februar 2000 und IBM Forschungsbericht 21717, A New Mandatory Security Policy Combining Secrecy and Integrity, Paul Karger, Vernon Austel und David Toll, 15. März 2000 definiert.)
  • ACM Primitive bei einer Ausführungsform
  • Die oben beschrieben Funktionalität kann über die folgenden ACM-Primitive bereitgestellt werden.
  • 1. NewAcm r, c
  • Beschränkungen: können lediglich durch eine BS-Domäne ausgegeben werden (mit Ausnahme ganz am Anfang): r ist eine gültige zugeordnete Seite, die auf die momentane Domäne zugreifen kann; c ist eine gültige Farbe einer sicheren Domäne, die in eine neue Acm geändert wird.
  • Aktionen: r bedeutet gelesen, gemessen, entschlüsselt und installiert wie der acmSw-Code für diesen neuen acm-Befehl; Standard-Domänen OsDomain(0) und acmSw(1) werden für diesen acm-Befehl eingerichtet; Steuerung wird an das aufrufende BS zurückgegeben, wodurch Erfolg oder Misserfolg angegeben wird.
  • 2. NewDomain r
  • Beschränkungen: r ist eine gültige zugeordnete Seite, die auf die momentane Domäne zugreifen werden kann.
  • Aktionen: eine neue Domäne wird erzeugt; r bedeutet gelesen, gemessen, entschlüsselt und installiert wie die Software für die neue Domäne; da es Zeit in Anspruch nimmt, wird eine Antwort „anhängig“ sofort gegeben; bei Beendigung wird eine BS-Unterbrechung erhoben, die Erfolg oder Misserfolg angibt; im Erfolgsfall wird die neue Farbe der neuen Domäne zurückgegeben.
  • 3. Wiederaufnahme c
  • Beschränkungen: nur ein BS kann dieses Primitiv aufrufen; c (c > 1) ist die Farbe einer gültigen und ausführbaren sicheren Domäne.
  • Aktionen: wenn momentan eine sichere Domäne ausgeführt wird, wird ihr Zustand gespeichert; pc wird auf die angegebene Domäne eingestellt, und die Ausführung wird dort fortgesetzt; wenn es sich bei der wiederaufgenommene Domäne um einen anderen acm-Befehl handelt, wird ihre momentane Domäne (rekursiv) wiederaufgenommen.
  • 4. Zuordnen r, c
  • Beschränkungen: nur ein BS kann dieses Primitiv aufrufen; r ist eine reelle Adresse, die momentan nicht zugeordnet ist; c muss eine gültige Farbe gemäß diesem acm-Befehl sein.
  • Aktionen: die Seite r wird gelöscht, und sie wird der Farbe c zugeordnet; Da es Zeit in Anspruch nimmt, wird eine Antwort „anhängig“ sofort gegeben; bei Beendigung wird eine BS-Unterbrechung erhoben, die Erfolg oder Misserfolg angibt.
  • 5. Zuordnung aufheben r, c
  • Beschränkungen: nur ein BS kann dieses Primitiv aufrufen; r ist eine reelle Adresse die momentan der Farbe c zugeordnet sein muss.
  • Aktionen: bei der Seite r wird die Zuordnung aufgehoben, und sie wird gelöscht, und sie kann später für jede Domäne neu zugeordnet werden; wenn r gemeinsam genutzt wird, verlieren alle gemeinsamen Nutzer den Zugriff auf diese Seite; da es Zeit in Anspruch nimmt, wird eine Antwort „anhängig“ sofort gegeben; bei Beendigung wird eine BS-Unterbrechung erhoben, die Erfolg oder Misserfolg angibt.
  • 6. Move r, c, c′, dir
  • Beschränkungen: r muss c zugeordnet worden sein; c' muss eine gültige Farbe sein und dir ist 0 oder 1.
  • Aktionen: wenn dir 0 ist, muss c eine sichere Domäne sein (mit einem Schlüssel k); r wird unter Verwendung von k verschlüsselt und c' neu zugeordnet; wenn dir 1 ist, muss c' eine sichere Domäne sein (mit einem Schlüssel k); r wird unter Verwendung von k entschlüsselt und an c’ übertragen; da das Zeit in Anspruch nimmt, wird eine Antwort „anhängig“ sofort gegeben; bei Beendigung wird eine BS-Unterbrechung erhoben, die Erfolg oder Misserfolg angibt.
  • 7. SwResp op, andere params
  • Beschränkungen: nur acmSw kann dieses Primitiv aufrufen; es gibt an, dass die Operation op beendet ist; Erfolg oder Misserfolg wird angezeigt.
  • Aktionen: die restlichen Parameter sind für acm intern zum Speichern in acmHw-Tabellen.
  • 8. DirectExtInt intNum, c
  • Beschränkungen: nur acmSw kann dieses Primitiv aufrufen; bei einem Unterbrechungsvektor handelt es sich um eine Zuordnung: von der Unterbrechungsnummer zur acm-Nummer; momentan muss die Unterbrechung für intNum dem ausführenden acm zugeordnet werden; in dem ausführenden acm muss a eine gültige Farbe sein, die für eine Domäne steht, bei der es sich um einen weiteren acm handelt.
  • Aktionen: die Zuordnung für intNum wird auf den acm geändert, der c entspricht.
  • 9 ExtInt intNum, andere params
  • Beschränkungen: ausgegeben durch eine externe Einheit während des Ausführens einer Domäne.
  • Aktionen: wenn eine sichere Domäne momentan ausgeführt wird, wird ihr Zustand gespeichert; die Steuerung wird an das BS an eine voreingestellte Adresse extIntAddress übertragen; in der entsprechenden Domäne werden die anderen Parameter (von der Einheit) zu der Unterbrechungs-Dienstroutine geleitet.
  • 10. Access r, rwx
  • Beschränkungen: ausgegeben durch eine Domäne, bei der ein Zugriff (angegeben durch rwx) auf eine Seite r angegeben wird; bei r muss es sich um eine gültige Seite handeln, die einer bestimmten Farbe c zugeordnet ist; bei der aktuellen Palette muss ein Eintrag für die Farbe c mit kompatiblen rwx-Berechtigungen vorhanden sein.
  • Aktionen: die Operation ist berechtigt, wenn die oben genannten Prüfungen korrekt bestanden werden, andernfalls wird eine BS-Unterbrechung erhoben, die einen Zugriffsfehler angibt.
  • 11. SysCall params
  • Beschränkungen: ausgegeben durch eine Domäne, wobei ein Dienstaufruf mit relevanten Parametern angegeben wird.
  • Aktionen: wenn durch einen Nicht-BS-Prozess ausgegeben, wird eine BS-Unterbrechung erhoben, die die Parameter weitergibt; wenn durch ein BS ausgegeben, wird sie zu einem acm auf einer niedrigeren Ebene umgeleitet (falls vorhanden).
  • 12. OwnerHandle r, rwx
  • Beschränkungen: ausgegeben durch eine sichere Domäne, die eine oder mehrere Speicherseiten gemeinsam nutzen möchte; der Aufrufer spezifiziert den Typ des Zugriffs (rwx), den er einem gemeinsamen Nutzer gewähren möchte
  • Aktion: acm erzeugt eine neue Farbe und einen neuen Schlüssel für die Speicherseiten, fügt die neue Farbe der Palette des Aufrufers hinzu und gibt einen Handle für den Speicher zurück, den der Aufrufer mit einer anderen sicheren Domäne gemeinsam nutzen kann.
  • 13. SharerHandle handle
  • Beschränkungen: ausgegeben durch eine sichere Domäne, um die Farbe für ein gemeinsam genutztes Speichersegment ihrer Palette hinzuzufügen.
  • Aktion: fügt die Farbe der Palette des Aufrufers hinzu, wenn dadurch die Beschränkungen in der Beschränkungsmatrix nicht verletzt werden
  • Zwar wurde die Erfindung in Form von mehreren beispielhaften Ausführungsformen beschrieben, ein Fachmann wird jedoch erkennen, dass die Erfindung mit Modifikationen im Umfang der angefügten Ansprüche realisiert werden kann.
  • Es ist des Weiteren zu beachten, dass die Absicht der Anmelder darin besteht, Ersetzungen aller Anspruchselemente einzuschließen, auch wenn sie später bei einer Verfolgung abgeändert werden.
  • Weitere beispielhafte Hardware-Umsetzung
  • 7 veranschaulicht eine weitere Hardware-Konfiguration eines Datenverarbeitungs/Computer-Systems 600 gemäß der Erfindung, das vorzugsweise wenigstens einen Prozessor oder eine Zentraleinheit (CPU) 610 enthält, bei dem bzw. der die Techniken der Erfindung in einer Form eines Softwareprogramms implementiert werden kann.
  • Die CPUs 610 sind über ein Bussystem 612 mit einem Direktzugriffsspeicher (RAM) 614, einem Festwertspeicher (ROM) 616, einem Eingabe/Ausgabe-(E/A-)Adapter 618 (zum Verbinden von peripheren Einheiten wie Platteneinheiten 621 und Bandlaufwerken 640 mit dem Bus 612), einem Benutzeroberflächen-Adapter 622 (zum Verbinden einer Tastatur 624, einer Maus 626, eines Lautsprechers 628, eines Mikrofons 632 und/oder einer anderen Benutzeroberflächen-Einheit mit dem Bus 612), einem Datenübertragungsadapter 634 zum Verbinden eines Datenverarbeitungssystems mit einem Datenverarbeitungsnetz, dem Internet, einem Intranet, einem Personen-Bereichsnetz (PAN) usw. und einem Anzeigeadapter 636 verbunden, der den Bus 612 mit einer Anzeigeeinheit 638 und/oder einem Drucker 639 (z.B. ein digitaler Drucker oder dergleichen) verbindet.
  • Zusätzlich zu der oben beschriebenen Hardware/Software-Umgebung beinhaltet ein anderer Aspekt der Erfindung ein durch einen Computer umgesetztes Verfahren zum Ausführen des obigen Verfahrens. Dieses Verfahren kann beispielsweise in der speziellen Umgebung implementiert sein, die oben erläutert wurde.
  • Ein derartiges Verfahren kann z.B. durch Betreiben eines Computers umgesetzt sein, der durch eine digitale Vorrichtung zur Datenverarbeitung verkörpert ist, um eine Abfolge von maschinenlesbaren Befehlen auszuführen. Diese Befehle können sich in zahlreichen Typen von signaltragenden Medien befinden.
  • Daher ist dieser Aspekt der vorliegenden Erfindung auf ein programmiertes Produkt gerichtet, das signaltragende Speichermedien aufweist, die ein Programm aus maschinenlesbaren Befehlen materiell verkörpern, die durch einen digitalen Datenprozessor ausführbar sind, der die CPU 610 und die oben genannte Hardware beinhaltet, um das Verfahren der Erfindung auszuführen.
  • Diese signaltragenden Speichermedien können beispielsweise einen RAM enthalten, der in der CPU 610 enthalten ist, wie beispielsweise durch die Speichereinrichtung mit schnellem Zugriff dargestellt ist.
  • Alternativ können die Befehle in weiteren signaltragenden Speichermedien 700 enthalten sein, wie beispielsweise eine magnetische Datenspeicherdiskette 710 oder eine optische Speicherdiskette 720 (8), auf die durch die CPU 610 direkt oder indirekt zugegriffen werden kann.
  • Unabhängig davon, ob sie auf der Diskette 710, auf der optischen Platte 720, in dem Computer/CPU 610 oder an anderer Stelle vorhanden sind, können die Befehle in einer Vielzahl von maschinenlesbaren Datenspeichermedien gespeichert sein wie beispielsweise ein DASD-Speicher (z.B. ein herkömmliches „Festplattenlaufwerk“ oder ein RAID-Array), ein Magnetband, ein elektronischer Festwertspeicher (z.B. CD-ROM, WORM, DVD, digitales optisches Band usw.) Papier-(Loch-)Karten oder andere geeignete signaltragende Speichermedien, darunter Speichereinheiten in Übertragungsmedien wie beispielsweise Datenübertragungsverbindungen und drahtlose Einheiten und in zahlreichen Formaten wie beispielsweise digitale und analoge Formate. Bei einer veranschaulichenden Ausführungsform der Erfindung können die maschinenlesbaren Befehle Software-Objektcode beinhalten.
  • Deswegen kann es sich bei der vorliegenden Erfindung um ein System, ein Verfahren und/oder ein Computerprogrammprodukt handeln. Das Computerprogrammprodukt kann ein oder mehrere computerlesbare Speichermedien mit computerlesbaren Programmbefehlen enthalten, um zu bewirken, dass ein Prozessor Aspekte der vorliegenden Erfindung ausführt.
  • Bei dem computerlesbaren Speichermedium kann es sich um eine materielle Einheit handeln, die Befehle zum Verwenden durch eine Befehlsausführungseinheit halten und speichern kann. Bei dem computerlesbaren Speichermedium kann es sich beispielsweise um eine elektronische Speichereinheit, eine magnetische Speichereinheit, eine optische Speichereinheit, eine elektromagnetische Speichereinheit, eine Halbleiter-Speichereinheit oder jede geeignete Kombination der Vorhergehenden handeln, ist jedoch nicht auf diese beschränkt. Eine nicht erschöpfende Liste von spezielleren Beispielen des computerlesbaren Speichermediums enthält Folgendes: eine tragbare Computerdiskette, eine Festplatte, einen Direktzugriffsspeicher (RAM), einen Festwertspeicher (ROM), einen löschbaren programmierbaren Festwertspeicher (EPROM oder Flash-Speicher), einen statischen Direktzugriffsspeicher (SRAM), einen tragbaren Compactdisk-Festwertspeicher (CD-ROM), eine digitale Versatile-Disk (DVD), einen Speicherstick, eine Diskette (Floppy Disk), eine mechanisch codierte Einheit wie beispielsweise Lochkarten oder erhabene Strukturen in einer Nut, in denen Befehle aufgezeichnet sind, oder jede geeignete Kombination des Vorhergehenden. Ein hier verwendetes computerlesbares Speichermedium sollte nicht so ausgelegt werden, dass es sich dabei per se um vergängliche Signale handelt wie beispielsweise Funkwellen oder andere sich frei ausbreitende elektromagnetische Wellen, elektromagnetische Wellen, die sich durch einen Hohlleiter oder andere Übertragungsmedien ausbreiten (z.B. Lichtimpulse, die ein Lichtwellenleiterkabel durchlaufen) oder elektrische Signale, die durch eine Leitung übertragen werden.
  • Computerlesbare Programmbefehle, die hier beschrieben werden, können von einem computerlesbaren Speichermedium zu betreffenden Datenverarbeitungs/Verarbeitungs-Einheiten oder über ein Netzwerk, z.B. das Internet, ein Lokalbereichsnetz, ein Weitverkehrsnetz und/oder ein drahtloses Netzwerk zu einem externen Computer oder einer externen Speichereinheit heruntergeladen werden. Das Netzwerk kann Kupfer-Übertragungskabel, Lichtwellenleiter, drahtlose Übertragungen, Router, Firewalls, Switches, Gateway-Computer und/oder Edge-Server aufweisen. Eine Netzwerk-Adapterkarte oder eine Netzwerk-Schnittstelle in jeder Datenverarbeitungs/Verarbeitungs-Einheit empfängt computerlesbare Programmbefehle von dem Netzwerk und leitet die computerlesbaren Programmbefehle zum Speichern in einem computerlesbaren Speichermedium in der betreffenden Datenverarbeitungs/Verarbeitungs-Einheit weiter.
  • Bei computerlesbaren Programmbefehlen zum Ausführen von Operationen der vorliegenden Erfindung kann es sich um Assembler-Befehle, Befehle mit Befehlssatz-Architektur (ISA), Maschinenbefehle, maschinenabhängige Befehle, Mikrocode, Firmware-Befehle, Zustandseinstellungsdaten oder Quellencode bzw. Objektcode handeln, die in jeder Kombination aus einer oder mehreren Programmiersprachen geschrieben sind, darunter eine objektorientierte Programmiersprache wie Smalltalk, C++ oder dergleichen und herkömmliche prozedurale Programmiersprachen wie etwa die Programmiersprache "C" oder ähnliche Programmiersprachen. Die computerlesbaren Programmbefehle können nur auf dem Computer eines Benutzers, teilweise auf dem Computer eines Benutzers, als ein eigenständiges Software-Paket, teilweise auf dem Computer eines Benutzers und teilweise auf einem fernen Computer oder nur auf dem fernen Computer oder Server ausgeführt werden. In dem zuletzt genannten Szenario kann der ferne Computer mit dem Computer des Benutzers durch jeden Netzwerktyp verbunden sein, darunter ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetz (WAN), oder die Verbindung kann zu einem externen Computer (z.B. über das Internet unter Verwendung eines Internet-Dienstanbieters) hergestellt werden. Bei einigen Ausführungsformen können elektronische Schaltungsanordnungen, darunter beispielsweise eine programmierbare logische Schaltungsanordnung, vor Ort programmierbare Gate-Arrays (FPGA) oder programmierbare Logik-Arrays (PLA) die computerlesbaren Programmbefehle ausführen, indem Zustandsdaten der computerlesbaren Programmbefehle genutzt werden, um die elektronische Schaltungsanordnung zu personalisieren, um Aspekte der vorliegenden Erfindung auszuführen.
  • Aspekte der vorliegenden Erfindung werden hier unter Bezugnahme auf Ablaufplan-Darstellungen und/oder Blockschaltbilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es ist klar, dass jeder Block der Ablaufplan-Darstellungen und/oder Blockschaltbilder und Kombinationen von Blöcken in den Ablaufplan-Darstellungen und/oder Blockschaltbildern durch computerlesbare Programmbefehle umgesetzt werden können.
  • Diese computerlesbaren Programmbefehle können einem Prozessor eines Universalcomputers, eines Spezialcomputers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu bilden, so dass Befehle, die über den Prozessor des Computers oder der anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführt werden, Mittel zum Umsetzen der Funktionen/Wirkungen, die in dem Block oder den Blöcken des Ablaufplans und/oder Blockschaltbilds spezifiziert sind, erzeugen.
  • Diese computerlesbaren Programmbefehle können außerdem in einem computerlesbaren Speichermedium gespeichert sein, das einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung und/oder andere Einheiten anweisen kann, in einer bestimmten Weise zu funktionieren, so dass das computerlesbare Speichermedium mit darin gespeicherten Befehlen einen Herstellungsgegenstand aufweist, der Befehle enthält, die Aspekte der Funktion/Wirkung umsetzen, die in dem Block oder den Blöcken des Ablaufplans und/oder Blockschaltbilds spezifiziert sind.
  • Die computerlesbaren Programmbefehle können außerdem in einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder eine andere Einheit geladen werden, um eine Reihe von Funktionsschritten zu bewirken, die auf dem Computer, der anderen programmierbaren Datenverarbeitungsvorrichtung oder der anderen Einheit ausgeführt werden sollen, um einen durch einen Computer umgesetzten Prozess zu erzeugen, so dass die Befehle, die auf dem Computer, der anderen programmierbaren Vorrichtung oder der anderen Einheit ausgeführt werden, die Funktionen/Wirkungen, die in dem Block oder Blöcken des Ablaufplans und/oder Blockschaltbilds spezifiziert sind, umsetzen.
  • Der Ablaufplan und die Blockdarstellungen in den Figuren veranschaulichen die Architektur, Funktionalität und Operation von möglichen Umsetzungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedener Ausführungsformen der vorliegenden Erfindung. In diesem Zusammenhang kann jeder Block in dem Ablaufplan oder in Blockdarstellungen ein Modul, Segment oder Abschnitt von Befehlen repräsentieren, der einen oder mehrere ausführbare Befehle zum Umsetzen der spezifizierten logischen Funktion(en) aufweist. Bei einigen alternativen Umsetzungen können die in dem Block angegebenen Funktionen möglicherweise nicht in der in den Figuren angegebenen Reihenfolge auftreten. Zum Beispiel können zwei Blöcke, die nacheinander gezeigt sind, tatsächlich im Wesentlichen gleichzeitig ausgeführt werden oder die Blöcke können gelegentlich in Abhängigkeit von der beteiligten Funktionalität in der umgekehrten Reihenfolge ausgeführt werden. Es wird außerdem angemerkt, dass jeder Block in den Blockdarstellungen und/oder Ablaufplan-Darstellungen und Kombinationen von Blöcken in den Blockdarstellungen und/oder der Ablaufplan-Darstellung durch Systeme, die auf spezieller Hardware beruhen, die die spezifizierten Funktionen oder Wirkungen ausführen, oder Kombinationen aus spezieller Hardware und Computerbefehlen umgesetzt werden können.
  • Die zahlreichen Merkmale und Vorteile der Erfindung werden aus der genauen Beschreibung deutlich, und es ist daher vorgesehen, dass die angefügten Ansprüche alle derartigen Merkmale und Vorteile abdecken, die in den Umfang der Erfindung fallen. Da ein Fachmann des Weiteren zahllose Modifikationen und Variationen in Betracht ziehen kann, soll die Erfindung nicht auf die exakte Konstruktion und Operation, die veranschaulicht und beschrieben wurden, beschränkt sein, und demzufolge können alle geeigneten Modifikationen und Ersetzungen Anwendung finden, die in den Umfang der Erfindung fallen.

Claims (24)

  1. Prozessor in einem Computersystem, wobei der Prozessor einen Mechanismus aufweist, der ein sicheres Objekt unterstützt, das Daten aufweist, die so geschützt sind, dass andere Software in diesem Computersystem auf diese Daten nicht zugreifen oder diese unbemerkt verfälschen kann, wodurch sowohl Vertraulichkeit als auch Integrität der Daten des sicheren Objekts geschützt werden, während die Daten des sicheren Objekts dem sicheren Objekt selbst während des Ausführens des sicheren Objekts zur Verfügung gestellt werden, wobei dieser Mechanismus aufweist: einen Krypto-Mechanismus, der Daten des sicheren Objekts entschlüsselt und einer Integritätsprüfung unterzieht, wenn diese Daten des sicheren Objekts von einem externen Speichersystem in das Computersystem verschoben werden, und einen Integritätswert für die Daten des sicheren Objekts verschlüsselt und aktualisiert, wenn diese Daten des sicheren Objekts aus dem Computersystem zu dem externen Speichersystem verschoben werden; und einen Speicherschutzmechanismus, der die Vertraulichkeit und Integrität von Daten des sicheren Objekts schützt, wenn sich diese Daten in dem Speichersystem des Computersystems befinden.
  2. Prozessor nach Anspruch 1, wobei der Speicherschutzmechanismus Bezeichnungen verwendet, um den Eigentümer einer Speicherseite anzugeben.
  3. Prozessor nach Anspruch 1, wobei der Speicherschutzmechanismus Speicherschutzschlüssel als Bezeichnungen verwendet, die den Eigentümer einer Speicherseite angeben.
  4. Prozessor nach Anspruch 1, wobei der Speicherschutzmechanismus darauf beruht, dass Eigentümerschaft-Bezeichnungen einem Adressenübersetzungsmechanismus einer CPU (Zentraleinheit) hinzugefügt werden.
  5. Prozessor nach Anspruch 1, wobei der Prozessor einen Mechanismus zum Schützen von virtuellen Maschinen und einzelnen Anwendungen in virtuellen Maschinen aufweist, wobei der Prozessor aufweist: einen Mechanismus zum Unterstützen von sicheren Objekten, die aus virtuellen Maschinen aufgebaut wurden; und einen Mechanismus zum Unterstützen von sicheren Objekten in einer virtuellen Maschine.
  6. Prozessor nach Anspruch 1, der einen von zwei oder mehr sicheren Objekten gemeinsam genutzten Speicher unterstützt, wobei die Vertraulichkeit und Integrität des gemeinsam genutzten Speichers vor der anderen Software in dem Computersystem geschützt werden.
  7. Prozessor nach Anspruch 6, der eine gesteuerte gemeinsame Nutzung zwischen sicheren Objekten auf der Grundlage von Klassen, Steuerelementen des obligatorischen Zugriffs und Beschränkungsmatrizen unterstützt.
  8. Prozessor nach Anspruch 7, der Klassen des universellen Zugriffs unterstützt.
  9. Prozessor nach Anspruch 6, wobei die Seite durch eine Überwachungseinrichtung zur Zugangssteuerung (Access Control Monitor) entschlüsselt wird.
  10. Verfahren zum Schützen von Vertraulichkeit und Integrität eines sicheren Objekts, das in einem Computersystem ausgeführt wird, durch Schützen der Speicherseiten, die Eigentum des sicheren Objekts sind, durch folgende Schritte: Zuweisen einer Kennung zu einem sicheren Objekt; Bezeichnen der Speicherseiten, die Eigentum eines sicheren Objekts sind, mit der Kennung des sicheren Objekts; Führen einer Tabelle der Überwachungseinrichtung für Zugangssteuerung (ACM) für die Speicherseiten in dem System; Steuern des Zugriffs auf Speicherseiten durch Überwachen von Lade- und Speicherbefehlen und Vergleichen von Daten in der ACM-Tabelle mit der Kennung der Software, die diese Befehle ausführt; und Beschränken des Zugriffs auf eine Speicherseite auf den Eigentümer der Speicherseite.
  11. Verfahren nach Anspruch 10, wobei Führen einer ACM-Tabelle aufweist: Erzeugen eines Eintrags in der Tabelle, wenn eine Seite von einer externen Speichereinrichtung in den Speicher gebracht wird, um anzugeben, dass die Seite im Speicher Eigentum des Softwaremoduls ist, das die Seite in den Speicher gebracht hat.
  12. Verfahren nach Anspruch 11, wobei die Seite entschlüsselt wird, nachdem sie in den Speicher gebracht wurde.
  13. Verfahren nach Anspruch 12, das des Weiteren aufweist, wenn eine Speicherseite wieder in den externen Speicher zurückgeschrieben wird, Verschlüsseln der Seite, bevor sie in den Speicher zurückgeschrieben wird.
  14. Verfahren nach Anspruch 12, das des Weiteren nach dem Entschlüsseln einer Seite ein Vermessen der Seite aufweist, um sicherzustellen, dass die Seite noch nicht modifiziert wurde.
  15. Verfahren nach Anspruch 14, wobei das Vermessen ein Berechnen einer Prüfsumme der Seite und/oder Berechnen eines Hash-Werts für die Seite aufweist.
  16. Verfahren nach Anspruch 10, das ferner Schützen der Vertraulichkeit und Integrität eines sicheren Objekts aufweist, das in einer CPU ausgeführt wird, durch Schützen des CPU-Zustands eines sicheren Objekts, wenn andere Software in Form eines Betriebssystems, eines Hypervisors oder einer Unterbrechungs-Verarbeitung das Ausführen eines sicheren Objekts unterbricht, wobei eine Überwachungseinrichtung den CPU-Zustand des sicheren Objekts sicher speichert, bevor die Unterbrechungssoftware ausgeführt wird, um dadurch den CPU-Zustand eines sicheren Objekts vor anderer Software zu schützen.
  17. Verfahren nach Anspruch 16, wobei eine Überwachungseinrichtung für Zugangssteuerung, wenn andere Software in Form eines Betriebssystems, eines Hypervisors oder einer Unterbrechungs-Verarbeitung ein Ausführen eines zuvor unterbrochenen sicheren Objekts wiederaufnimmt, den Zustand des sicheren Objekts sicher wiederherstellt, während die Zustandsdaten vor anderer Software geschützt werden.
  18. Verfahren nach Anspruch 10, das ferner aufweist: Verwenden von sicheren Objekten in einem Computersystem zum Schützen von virtuellen Maschinen in einem System, das ein gleichzeitiges Ausführen mehrerer virtueller Maschinen unterstützt, so dass Daten in einer virtuellen Maschine geschützt sind, so dass andere Software in dem Computersystem auf diese Daten nicht zugreifen oder diese unbemerkt verfälschen kann, wodurch sowohl Vertraulichkeit als auch Integrität der virtuellen Maschine geschützt sind, während die Daten in der virtuellen Maschine der virtuellen Maschine selbst während des Ausführens der virtuellen Maschine zur Verfügung gestellt werden; Bilden eines sicheren Objekts aus dem Abbild einer virtuellen Maschine; und Ausführen des sicheren Objekts in einem System, das das Ausführen von sicheren Objekten unterstützt.
  19. Verfahren, das aufweist: Verwenden von sicheren Objekten in einem Computersystem zum Schützen des Codes und von Daten, die in einem Software-Container ausgeführt werden, vor der anderen Software in dem Computersystem, darunter andere Software, die in demselben Betriebssystem ausgeführt wird wie der Software-Container.
  20. Verfahren nach Anspruch 19, wobei es sich bei dem Software-Container um einen LINUX-Container in Form eines LXC-Containers oder ein Docker-Containers handelt, das ferner ein Verwenden von sicheren Objekten in einem Computersystem zum Schützen von virtuellen Maschinen in einem System aufweist, das ein gleichzeitiges Ausführen von mehreren virtuellen Maschinen unterstützt, so dass die Daten in einer virtuellen Maschine geschützt sind, so dass andere Software in dem Computersystem auf diese Daten nicht zugreifen oder diese unbemerkt verfälschen kann, wodurch sowohl Vertraulichkeit als auch Integrität der virtuellen Maschine geschützt werden, während die Daten in der virtuellen Maschine der virtuellen Maschine selbst während des Ausführens der virtuellen Maschine zur Verfügung gestellt werden.
  21. Verfahren, das aufweist: Verwenden von sicheren Objekten in einem Computersystem zum Schützen von virtuellen Maschinen in einem System, das das gleichzeitige Ausführen von mehreren virtuellen Maschinen unterstützt, wobei Daten in einer virtuellen Maschine geschützt sind, so dass andere Software in dem Computersystem auf diese Daten nicht zugreifen oder diese unbemerkt verfälschen kann, um sowohl Vertraulichkeit als auch Integrität der virtuellen Maschine zu schützen, während die Daten in der virtuellen Maschine der virtuellen Maschine selbst während des Ausführens der virtuellen Maschine zur Verfügung gestellt werden; Bilden eines sicheren Objekts aus dem Abbild einer virtuellen Maschine, und Ausführen des sicheren Objekts in einem System, das das Ausführen von sicheren Objekten unterstützt.
  22. Verfahren nach Anspruch 21, das ferner ein Schützen der Vertraulichkeit und Integrität eines sicheren Objekts aufweist, das in einer CPU (Zentraleinheit) ausgeführt wird, durch Schützen des CPU-Zustands eines sicheren Objekts, wenn andere Software in Form eines Betriebssystems oder einer Unterbrechungs-Verarbeitung das Ausführen eines sicheren Objekts unterbricht.
  23. Verfahren nach Anspruch 22, wobei eine Überwachungseinrichtung der Zugriffssteuerung den CPU-Zustand des sicheren Objekts sicher speichert, bevor die unterbrechende Software ausgeführt wird, wodurch der CPU-Zustand eines sicheren Objekts vor anderer Software geschützt wird.
  24. Computerprogrammprodukt, das ein computerlesbares Speichermedium mit einem darin gespeicherten computerlesbaren Programm aufweist, wobei das computerlesbare Programm beim Ausführen in einer Datenverarbeitungseinheit bewirkt, dass die Datenverarbeitungseinheit eines der Verfahren nach einem der Ansprüche 10 bis 23 ausführt.
DE112015005602.5T 2014-12-15 2015-12-11 System und Verfahren zum Unterstützen von sicherer Objekten unter Verwendung einer Überwachungseinrichtung zur Speicherzugriffsteuerung Pending DE112015005602T5 (de)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201462092062P 2014-12-15 2014-12-15
US62/092,062 2014-12-15
US14/839,691 2015-08-28
US14/839,691 US10628579B2 (en) 2009-06-26 2015-08-28 System and method for supporting secure objects using a memory access control monitor
PCT/IB2015/059549 WO2016097954A1 (en) 2014-12-15 2015-12-11 System and method for supporting secure objects using memory access control monitor

Publications (1)

Publication Number Publication Date
DE112015005602T5 true DE112015005602T5 (de) 2017-09-07

Family

ID=56126028

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112015005602.5T Pending DE112015005602T5 (de) 2014-12-15 2015-12-11 System und Verfahren zum Unterstützen von sicherer Objekten unter Verwendung einer Überwachungseinrichtung zur Speicherzugriffsteuerung

Country Status (4)

Country Link
US (1) US11907361B2 (de)
JP (1) JP6580138B2 (de)
DE (1) DE112015005602T5 (de)
WO (1) WO2016097954A1 (de)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3267351A1 (de) * 2016-07-07 2018-01-10 Gemalto Sa Methode für das sichere verwalten eines docker image
CN107247648B (zh) * 2016-09-30 2020-07-17 北京赢点科技有限公司 基于Docker实现远程项目***监管的方法、装置及***
US11237859B2 (en) 2018-11-28 2022-02-01 Red Hat Israel, Ltd. Securing virtual machines in computer systems
US11029991B2 (en) * 2019-03-08 2021-06-08 International Business Machines Corporation Dispatch of a secure virtual machine
US11206128B2 (en) 2019-03-08 2021-12-21 International Business Machines Corporation Secure paging with page change detection
US11403409B2 (en) 2019-03-08 2022-08-02 International Business Machines Corporation Program interruptions for page importing/exporting
US11347529B2 (en) * 2019-03-08 2022-05-31 International Business Machines Corporation Inject interrupts and exceptions into secure virtual machine
CN114912138A (zh) * 2020-12-28 2022-08-16 M·伦佩尔 使用硬件安全等级的安全计算的体系结构、***及其方法
US20230421363A1 (en) * 2022-06-28 2023-12-28 Fmr Llc Secure storage and transmission of a cryptocurrency encryption key

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5757919A (en) * 1996-12-12 1998-05-26 Intel Corporation Cryptographically protected paging subsystem
KR101015456B1 (ko) * 2002-11-18 2011-02-22 에이알엠 리미티드 디바이스에 의한 메모리로의 억세스 제어
US7743241B1 (en) 2003-09-12 2010-06-22 American Megatrends, Inc. Securing the contents of data storage devices within a computer
EP1870814B1 (de) * 2006-06-19 2014-08-13 Texas Instruments France Verfahren und Vorrichtung für sicheren, nachfragebasierten Seitenabruf für Prozessorvorrichtungen
US7657754B2 (en) * 2005-12-08 2010-02-02 Agere Systems Inc Methods and apparatus for the secure handling of data in a microcontroller
US20080086603A1 (en) 2006-10-05 2008-04-10 Vesa Lahtinen Memory management method and system
JP2009199414A (ja) 2008-02-22 2009-09-03 Renesas Technology Corp マイクロコンピュータ
CN101465727B (zh) * 2008-12-17 2011-02-02 成都市华为赛门铁克科技有限公司 一种保证通信安全的方法、网络设备、装置和通信***
US8336079B2 (en) 2008-12-31 2012-12-18 Hytrust, Inc. Intelligent security control system for virtualized ecosystems
US8738932B2 (en) * 2009-01-16 2014-05-27 Teleputers, Llc System and method for processor-based security
US8954752B2 (en) * 2011-02-23 2015-02-10 International Business Machines Corporation Building and distributing secure object software
US8578175B2 (en) 2011-02-23 2013-11-05 International Business Machines Corporation Secure object having protected region, integrity tree, and unprotected region
US9846789B2 (en) * 2011-09-06 2017-12-19 International Business Machines Corporation Protecting application programs from malicious software or malware
US8819446B2 (en) * 2009-06-26 2014-08-26 International Business Machines Corporation Support for secure objects in a computer system
US9298894B2 (en) 2009-06-26 2016-03-29 International Business Machines Corporation Cache structure for a computer system providing support for secure objects
US8397306B1 (en) 2009-09-23 2013-03-12 Parallels IP Holdings GmbH Security domain in virtual environment
JP5316592B2 (ja) * 2011-06-09 2013-10-16 富士通セミコンダクター株式会社 セキュアプロセッサ用プログラム
US9106411B2 (en) 2012-09-30 2015-08-11 Apple Inc. Secure escrow service

Also Published As

Publication number Publication date
US20200218799A1 (en) 2020-07-09
JP2018502371A (ja) 2018-01-25
US11907361B2 (en) 2024-02-20
JP6580138B2 (ja) 2019-09-25
WO2016097954A1 (en) 2016-06-23

Similar Documents

Publication Publication Date Title
DE112015005602T5 (de) System und Verfahren zum Unterstützen von sicherer Objekten unter Verwendung einer Überwachungseinrichtung zur Speicherzugriffsteuerung
DE112012003988B4 (de) Schützen des Arbeitsspeichers eines virtuellen Gasts
DE102018123710A1 (de) Kryptografische Speicherinhaberschaftstabelle für eine sichere öffentliche Cloud
DE69815599T2 (de) Verfahren und Vorrichtung zum Schutz von Anwendungsdaten in sicheren Speicherbereichen
US10628579B2 (en) System and method for supporting secure objects using a memory access control monitor
EP2488986B1 (de) Verfahren und vorrichtung zum betreiben einer virtuellen maschine gemäss einer zugeordneten rechteinformation
DE102019110327A1 (de) Technologien zum verifizieren von speicherintegrität über mehrere speicherbereiche hinweg
DE102020125599A1 (de) Vertrauenswürdige lokale speicherverwaltung in einer virtualisierten gpu
DE102018129420A1 (de) Indirektionsverzeichnis für den kryptografischen speicherschutz
DE112014000584T5 (de) Erreichen von Speichereffizienz bei durchgängiger Verschlüsselung unter Verwendung von nachgelagerten (Downstream-)Decryptern
DE112017004980T5 (de) Technologien für objektorientiertes speichermanagement mit erweiterter segmentierung
DE102018203482A1 (de) Vertrauliche Verifikation von FPGA-Code
DE112014000965T5 (de) Verarbeiten eines Gastereignisses in einem hypervisorgesteuerten System
DE102012215196A1 (de) Schützen von Anwendungsprogrammen vor zerstörerischer Software oder Malware
DE112020000694T5 (de) Erzeugung und ausführung von sicheren containern
DE102011077218B4 (de) Zugriff auf in einer Cloud gespeicherte Daten
DE112020000223B4 (de) Gemeinsame speichernutzung zwischen einer sicheren domäne und einer nicht sicheren entität
DE112020005625T5 (de) Binden sicherer objekte eines sicherheitsmoduls an einen sicheren gast
DE112020000303T5 (de) Testen von speicherschutz-hardware in einer umgebung einer sicheren virtuellen maschine
DE112018004390T5 (de) Sichere zugriffsverwaltung für werkzeuge innerhalb einer sicheren umgebung
DE112020000289T5 (de) Abfrage und überlassung von sicherem speicher
DE112020005517T5 (de) Prozessgestütztes virtualisierungssystem zum ausführen eines sicheren anwendungsprozesses
DE112020000285T5 (de) Programmunterbrechungen für Seiten-Import/-Export
DE102023202297A1 (de) Wahrung der vertraulichkeit von mandanten in einer cloud-umgebung beim einsatz von sicherheitsdiensten
DE112020000286T5 (de) Sicheres ein-/auslagern mit seitenänderungserkennung

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R084 Declaration of willingness to licence