DE102019110327A1 - Technologien zum verifizieren von speicherintegrität über mehrere speicherbereiche hinweg - Google Patents

Technologien zum verifizieren von speicherintegrität über mehrere speicherbereiche hinweg Download PDF

Info

Publication number
DE102019110327A1
DE102019110327A1 DE102019110327.4A DE102019110327A DE102019110327A1 DE 102019110327 A1 DE102019110327 A1 DE 102019110327A1 DE 102019110327 A DE102019110327 A DE 102019110327A DE 102019110327 A1 DE102019110327 A1 DE 102019110327A1
Authority
DE
Germany
Prior art keywords
integrity
data
value
read data
main 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
DE102019110327.4A
Other languages
English (en)
Inventor
Siddhartha Chhabra
Vincent Von Bokern
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.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of DE102019110327A1 publication Critical patent/DE102019110327A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • 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
    • 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/602Providing cryptographic facilities or services
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems
    • G06F3/0622Securing storage systems in relation to access
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0653Monitoring storage devices or systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3242Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45583Memory management, e.g. access or allocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1052Security improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/40Specific encoding of data in memory or cache
    • G06F2212/402Encrypted data
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/09Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/34Encoding or coding, e.g. Huffman coding or error correction

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Human Computer Interaction (AREA)
  • Power Engineering (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Probability & Statistics with Applications (AREA)
  • Storage Device Security (AREA)

Abstract

Es werden Technologien zum Verifizieren der Integrität von Bereichen physischen Speichers beschrieben, die mehreren Domänen zugewiesen sind. Bei Ausführungsformen beinhalten oder bewirken die Technologien: das Erzeugen eines ersten Integritätswerts als Reaktion auf einen Schreibbefehl von einer ersten Domäne; das Erzeugen eines zweiten Integritätswerts als Reaktion auf einen Lesebefehl und Verifizieren der Integrität von Lesedaten, die Ziel des Lesebefehls sind, zumindest zum Teil durch Vergleichen des ersten Integritätswerts mit dem zweiten Integritätswert.

Description

  • GEBIET
  • Die vorliegende Offenbarung betrifft Technologien zum Verifizieren von Speicherintegrität über mehrere Speicherbereiche hinweg. Insbesondere betrifft die vorliegende Offenbarung Systeme, Vorrichtungen, Verfahren und computerlesbare Medien zum Verifizieren von Speicherintegrität im Kontext von physischen Speicherbereichen, die einer oder mehreren Domänen zugeordnet sind, wie beispielsweise einer oder mehreren virtuellen Maschinen.
  • HINTERGRUND
  • Virtualisierung in Informationsverarbeitungssystemen ermöglicht, dass mehrere Instanzen eines oder mehrerer Betriebssysteme (BS) auf einem einzigen Informationsverarbeitungssystem (z.B. einem Computer, Server oder dergleichen) ausgeführt werden, obwohl jedes BS dafür gestaltet ist, das System und seine Ressourcen vollständig und direkt zu steuern. Virtualisierung wird häufig mithilfe von Software, Firmware, oder Hardware wie beispielsweise einem Virtual Machine Monitor (VMM; auch als ein Hypervisor bekannt) realisiert, der dafür konfiguriert ist, jedem BS eine virtuelle Maschine (VM) zu präsentieren, die über virtuelle Ressourcen (z.B. einen oder mehrere virtuelle Prozessoren, virtuellen Hauptspeicher (RAM), virtuellen Speicher (storage) und dergleichen) verfügt, die das BS steuern kann. Der VMM kann dafür konfiguriert sein, eine Systemumgebung zum Umsetzen von Richtlinien aufrechtzuerhalten, durch die physische Ressourcen des Systems den virtuellen Maschinen zugewiesen werden - d.h. die Virtualisierungsumgebung. Jedes BS und jede andere auf einer virtuellen Maschine ausgeführte Software kann als ein „Gast“ oder eine „Gastsoftware“ bezeichnet werden, während ein „Host“ oder „Hostsoftware“ sich auf einen VMM oder andere Software beziehen kann, die außerhalb der Virtualisierungsumgebung (d.h. außerhalb jeglicher virtuellen Maschine) ausgeführt wird.
  • Einige Systeme, die Virtualisierung unterstützen, weisen eine Speichersteuereinheit auf, die dafür konfiguriert ist, virtuelle Speicheradressen (virtuellem Speicher zugeordnet, der einer virtuellen Maschine zugewiesen ist) in physische Speicheradressen (des Hostsystems) zu übersetzen. Die Speichersteuereinheit kann außerdem dafür konfiguriert sein, Bereiche physischen Host-Hauptspeichers (z.B. Direktzugriffsspeicher) zu isolieren und zu schützen, die unterschiedlichen von der Hostvorrichtung unterstützten virtuellen Maschinen zugeordnet sind. Isolierung und Schutz der physischen Speicherbereiche können unter Verwendung bereichsbasierter Steuerungen, kryptografischer Verfahren oder anderer Mittel aufrechterhalten werden.
  • Bei einer Speichersteuereinheit können bereichsbasierte Steuerungen verwendet werden, um Bereichen physischen Speichers eines Hostsystems Gastdomänen (z.B. virtuelle Maschinen) zuzuordnen, die auf dem Host ausgeführt werden. In derartigen Fällen kann, wenn ein Lese- oder Schreibbefehl in die Speichersteuereinheit eintritt, die Speichersteuereinheit feststellen, welche Domäne (virtuelle Maschine) den Befehl erstellt hat, und welche Bereiche des physischen Speichers des Hosts Ziel des Befehls sind (oder genauer ausgedrückt, welcher Bereich physischen Speichers physische Speicheradressen enthält, die auf virtuelle Adressen der virtuellen Maschine der den Befehl ausgebenden Domäne abgebildet werden). Ein Prozessor kann die Speichersteuereinheit zum Ausführen des Befehls veranlassen, wenn die Domäne autorisiert ist, aus dem physischen Speicherbereich, der Ziel der Anforderung ist, zu lesen/in diesen zu schreiben, oder der Prozessor kann ein Ausführen des Befehls verweigern, wenn die Domäne nicht autorisiert ist, auf diesen physischen Speicherbereich zuzugreifen.
  • Der Inhalt von physischem Hostspeicher kann auch durch Verwenden kryptografischer Verfahren wie beispielsweise MKTME (multiple key total memory encryption) geschützt werden. Bei MKTME ist eine Speichersteuereinheit dafür konfiguriert, die Daten, die in dem einer Domäne (virtuellen Maschine) zugewiesenen physischen Speicherplatz gespeichert sind, vor nicht autorisiertem Zugriff durch eine andere Domäne (virtuelle Maschine) durch Verschlüsseln von in den physischen Speicher zu schreibenden Daten mit einem Verschlüsselungsschlüssel zu schützen, der spezifisch für den Gast ist, der die Schreiboperation anfordert (d.h. ein „Verschlüsselungsschlüssel pro Domäne“). Dadurch können nicht autorisierte Leseoperationen von Daten durch eine zweite Domäne (virtuelle Maschine) in einem ersten, einer ersten Domäne (virtuellen Maschine) zugewiesenen, physischen Speicherbereich verhindert werden, da der Inhalt des ersten physischen Speicherbereichs mit dem Verschlüsselungsschlüssel der ersten Domäne verschlüsselt ist - auf den die zweite Domäne keinen Zugriff hat.
  • Während bereichsbasierte Steuerungen und MKTME unterschiedlichen Domänen zugewiesene physische Speicherbereiche wirksam isolieren und schützen können, bieten sie keinen Mechanismus zum Prüfen der Integrität von Daten, die in physischem Speicher eines Hostsystems gespeichert werden. Folglich können derartige Verfahren Angriffen ausgesetzt sein, bei denen eine nicht autorisierte Domäne (angreifende Domäne) eine nicht autorisierte Schreiboperation in einem Speicherbereich verursacht, der einer anderen Domäne (angegriffene Domäne) zugewiesen ist, was eine nicht autorisierte Modifikation des Inhalts von physischem Speicher zur Folge hat, welcher der angegriffenen Domäne zugewiesen ist. Außerdem ist der angegriffenen Domäne möglicherweise unbekannt, dass der Inhalt ihres zugewiesenen physischen Speichers durch eine nicht autorisierte Schreiboperation verändert wurde.
  • Bei Technologien wie beispielsweise der Secure-Enclave-Technologie von INTEL ® (z.B. realisiert unter Verwendung von Intel® Software Guard Extensions (SGX)) wird eine Speicherverschlüsselungs-Engine (memory encryption engine, MEE) genutzt, die Vertraulichkeit, Integrität und Hardware-Replay-Schutz unter Verwendung eines einzigen Schlüssels aufrechterhalten kann. Zum Beispiel kann die bei einer Secure-Enclave-Realisierung verwendete MEE einen Metadaten-Baum über einem geschützten Bereich physischen Speichers aufbauen. Die Integrität von aus dem geschützten Speicherbereich gelesenen Daten kann durch „Begehen“ des Metadaten-Baums verifiziert werden. Obwohl wirksam zum Verifizieren der Integrität von in der Enklave (enclave) gespeicherten Daten, kann ein Begehen des Metadaten-Baums Mehrfachzugriff auf Speicher jedes Mal beinhalten, wenn auf die in der Enklave gespeicherten Daten zugegriffen wird. Daher können Secure Enclaves starke Fähigkeiten zum Schutz von Daten und zur Integritätsverifizierung bieten. Bei einigen Anwendungen kann jedoch ein etwas verringertes Niveau an Security Assurance (relativ zu dem von einer Secure Enclave bereitgestellten) als akzeptabel betrachtet werden - besonders in Fällen, in denen eine verringerte Latenz der Integritätsverifizierung gewünscht wird. Integritätsverifizierungs-Technologien, die vor physischen Angriffen schützen, sind ebenfalls von Interesse.
  • In Anbetracht des Vorstehenden ist ein Interesse an Technologien gewachsen, durch die ein „leichter“ Mechanismus zum Sicherstellen von Speicherintegrität über isolierte Speicherdomänen hinweg bereitgestellt wird, und der vor physischen Angriffen (z.B. externer Modifikation von DRAM-Inhalt) schützen kann.
  • Figurenliste
  • Merkmale und Vorteile von Ausführungsformen des beanspruchten Gegenstands werden im Verlauf der folgenden ausführlichen Beschreibung und bei Bezugnahme auf die Zeichnungen ersichtlich, in denen gleiche Bezugszeichen gleiche Teile beschreiben, und in denen:
    • 1 ein Blockschaubild ist, das ein Beispiel eines Systems zum Aufrechterhalten einer Isolierung zwischen zugewiesenen Bereichen physischen Hauptspeichers einer Hostvorrichtung veranschaulicht.
    • 2 ein Blockschaubild ist, das ein Beispiel eines Systems zum Aufrechterhalten einer Integrität zugewiesener Bereiche physischen Hauptspeichers einer Hostvorrichtung in Übereinstimmung mit der vorliegenden Offenbarung veranschaulicht.
    • 3 ein Blockschaubild ist, das ein Beispiel einer Integritäts-Engine in Übereinstimmung mit der vorliegenden Offenbarung veranschaulicht.
    • 4A ein Blockschaubild ist, das ein Beispiel eines Datenschreibflusses in Übereinstimmung mit der vorliegenden Offenbarung veranschaulicht.
    • 4B ein Ablaufplan beispielhafter Operationen eines Beispiels für ein Verfahren zum Schreiben von Daten in Übereinstimmung mit der vorliegenden Offenbarung ist.
    • 5A ein Blockschaubild ist, das ein Beispiel eines Datenleseflusses in Übereinstimmung mit der vorliegenden Offenbarung veranschaulicht.
    • 5B ein Ablaufplan beispielhafter Operationen eines Beispiels für ein Verfahren zum Verifizieren der Integrität von Daten ist, die in einem Bereich physischen Hauptspeichers einer Hostvorrichtung gespeichert sind, in Übereinstimmung mit der vorliegenden Offenbarung.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Die Technologien der vorliegenden Offenbarung werden hier unter Bezugnahme auf veranschaulichende Ausführungsformen für bestimmte Anwendungen beschrieben. Aus Gründen der Veranschaulichung und einer leichten Verständlichkeit werden die hier beschriebenen Technologien in dem Kontext eines virtualisierten Systems erörtert, in dem physischer Hauptspeicher (z.B. Direktzugriffsspeicher) einer Hostvorrichtung verschiedenen Domänen (z.B. virtuellen Maschinen) zugewiesen ist, die in dem Kontext einer von der Hostvorrichtung realisierten virtualisierten Umgebung ausgeführt werden. Derartige Erörterungen dienen lediglich als Beispiel, und alle oder ein Teil der hier beschriebenen Technologien können in anderen Kontexten verwendet werden. Zum Beispiel können die hier beschriebenen Technologien in dem Kontext jedes Speichersystems verwendet werden, in dem Speicherintegrität zwischen isolierten Speicherbereichen gewünscht wird, wie, aber ohne darauf beschränkt zu sein, ein nicht virtualisiertes System. Fachleute des relevanten Fachgebiets/der relevanten Fachgebiete mit Zugang zu den hier gebotenen Lehren werden zusätzliche Modifikationen, Anwendungen und Ausführungsformen innerhalb des Schutzbereichs dieser Offenbarung sowie weitere Gebiete erkennen, in denen Ausführungsformen der vorliegenden Offenbarung von Nutzen wären.
  • Die Begriffe „Host“ und „Hostvorrichtung“ werden hier synonym verwendet, um auf das breite Spektrum elektronischer Vorrichtungen Bezug zu nehmen, die derart konfiguriert sein können, dass sie eine Speicherarchitektur aufweisen, bei der Speicherbereiche (z.B. RAM) unterschiedlichen Domänen zugewiesen sind. Aus Gründen der Veranschaulichung werden die Domänen in dem Kontext eines virtualisierten Systems beschrieben und können daher als virtuelle Maschinen verstanden werden. Wie vorstehend angemerkt, können jedoch die hier beschriebenen Technologien in jedem Kontext realisiert werden, in dem eine Verifizierung der Integrität des Inhalts von physischem Speicher eines Hostsystems gewünscht wird. Zu nicht einschränkenden Beispielen für geeignete Hostvorrichtungen zählen Kameras, Mobiltelefone, Computerterminals, Desktopcomputer, ein verteiltes Datenverarbeitungssystem, elektronische Lesegeräte, Faxgeräte, Kioske, Netbook-Computer, Notebook-Computer, Internetvorrichtungen, Zahlungsterminals, Persönliche digitale Assistenten, Medienabspiel- und/oder -aufnahmegeräte, Server, Set-Top-Boxen, Smartphones, Persönliche Tablet-Computer, Fernsehgeräte, Ultra-mobile Persönliche Computer, kabelgebundene Telefone, Kombinationen davon und dergleichen. Derartige Vorrichtungen können tragbar oder stationär sein. Ohne darauf beschränkt zu sein, haben die hier beschriebenen Hostvorrichtungen bevorzugt die Form eines Desktop-Computers, Servers, verteilten Datenverarbeitungssystems oder dergleichen.
  • Der Begriff „Hauptspeicher“ wird hier verwendet, um Speicher zu bezeichnen, welcher der CPU durch Anweisungen zum Laden/Speichern zur Verfügung steht (im Gegensatz zur Verwendung eines Treibers und einer Eingabe-/Ausgabe-Steuereinheit, die zum Lesen aus/Schreiben in Speicher, z.B. einer Hostvorrichtung (physischer Hauptspeicher) oder einer Domäne/virtuellen Maschine (virtueller Hauptspeicher) verwendet wird. Zu Beispielen für Hauptspeicher, der verwendet werden kann, zählen (z.B. flüchtiger oder nicht flüchtiger) Direktzugriffsspeicher (random access memory, RAM), wie beispielsweise, aber ohne darauf beschränkt zu sein, Double-Data-Rate- (DDR-) RAM (z.B. DDR2, DDR3, DDR4, DDR5, Low-Power-DDR (LPDDR)), dreidimensionaler Crosspoint-Speicher, INTEL® OPTANE®-Speicher oder jeder andere gegenwärtig vorhandene oder zukünftig entwickelte Speicher. Ohne darauf beschränkt zu sein, liegt bei Ausführungsformen der hier beschriebene Hauptspeicher in der Form von DDR oder dreidimensionalem Crosspoint-Speicher vor, der Integritätswertbits (z.B. Metadatenbits) und Datenspeicherbits enthält. Im Gegensatz dazu werden die Begriffe „Platte“ „Speicher“ und „Speichervorrichtung“ hier synonym verwendet, um eine oder mehrere nicht flüchtige Speichervorrichtungen zu bezeichnen, die zum Bereitstellen nicht flüchtigen Datenspeichers verwendet werden können. Zu nicht einschränkenden Beispielen für Speichervorrichtungen, die hier verwendet werden können, zählen magnetische Speichervorrichtungen (z.B. magnetische Festplattenlaufwerke, magneto-optische Laufwerke, thermisch unterstützte magnetische Aufzeichnungsvorrichtungen, magnetische Platten usw.), Solid-State-Speichervorrichtungen (z.B. Speichervorrichtungen, bei denen nicht flüchtiger Solid-State-NOT-AND- (NAND-) oder NOT-OR- (NOR-) Speicher eingesetzt wird), Speichersticks und/oder -karten, darunter nicht flüchtiger Speicher, Kombinationen davon und dergleichen.
  • Der Begriff „Verschlüsselungsoperationen“ wird hier verwendet, um allgemein, wie jeweils anwendbar, die Verschlüsselung von Klartext in Geheimtext, die Entschlüsselung von Geheimtext in Klartext oder eine Kombination davon zu bezeichnen. Der Begriff „Verschlüsselungsoperationen“ sollte daher so aufgefasst werden, dass er sowohl Verschlüsselung als auch Entschlüsselung von Daten umfasst, wobei die geeignete Interpretation auf Grundlage des Kontexts gegeben wird, in dem die Formulierung verwendet wird.
  • Der Begriff „Modul“ wird hier verwendet, um Software, Firmware und/oder Schaltungen zu bezeichnen, die dafür konfiguriert ist/sind, um eine oder mehrere Operationen in Übereinstimmung mit der vorliegenden Offenbarung durchzuführen. Software kann als ein Softwarepackage, Code, Anweisungen, Anweisungssätze und/oder Daten verkörpert werden, die auf nicht flüchtigen computerlesbaren Speichermedien aufgezeichnet sind. Firmware kann als Code, Anweisungen oder Anweisungssätze und/oder Daten verkörpert werden, die in Speichervorrichtungen hartcodiert (z.B. nicht flüchtig) werden. „Schaltungen“ kann, wie der Begriff hier bei einer beliebigen Ausführungsform verwendet wird, zum Beispiel einzeln oder in beliebiger Kombination festverdrahtete Schaltungen, programmierbare Schaltungen wie beispielsweise feldprogrammierbare Gate-Arrays (field programmable gate arrays, FPGAs), anwendungsspezifische integrierte Schaltkreise (application specific integrated circuits, ASICs), Universal-Computerprozessoren, die einen oder mehrere einzelne Anweisungen verarbeitende Kerne umfassen, Zustandsmaschinenschaltungen, Software und/oder Firmware umfassen, die Anweisungen speichern/speichert, die von programmierbaren Schaltungen ausgeführt werden. Die hierin beschriebenen Module können insgesamt oder einzeln als Schaltungen (z.B. als zumindest teilweise in Hardware realisierte Logik) verkörpert werden, welche die Gesamtheit oder einen Teil einer oder mehrerer Hostvorrichtungen bilden.
  • Moderne Datenverarbeitungssysteme sind häufig als eine Hostvorrichtung konfiguriert, die mehrere Domänen unterstützt, wie beispielsweise, aber ohne darauf beschränkt zu sein, eine oder mehrere virtuelle Maschinen. Jeder Domäne können virtuelle Ressourcen zugewiesen werden, die auf die Gesamtheit oder einem Teil der physischen Ressourcen der Hostvorrichtung abgebildet werden oder diesen auf andere Weise entsprechen (z.B. durch einen Virtual Machine Monitor VMM oder Hypervisor). Zum Beispiel kann jeder Domäne die Gesamtheit oder ein Teil der physischen Verarbeitungsressourcen, der Hauptspeicherressourcen (physischer RAM), des physischen Speichers, der Eingabe-/Ausgabevorrichtungs-Fähigkeiten usw. einer Hostvorrichtung zugewiesen werden. Eine Zuweisung von Hostressourcen zu der/den Domäne(n) kann in Übereinstimmung mit einer oder mehreren Virtualisierungsrichtlinien erfolgen, die durch den VMM/Hypervisor umgesetzt werden. Aus Gründen der Sicherheit und anderen Gründen können unterschiedliche Bereiche physischen Hauptspeichers der Hostvorrichtung verschiedenen Domänen zugewiesen werden und können gegeneinander isoliert oder auf andere Weise voreinander geschützt werden. Eine Isolierung der physischen Speicherbereiche kann unter Verwendung bereichsbasierter Steuerungen aufrechterhalten werden, und der Inhalt der physischen Speicherbereiche kann kryptografisch geschützt werden, z.B. unter Verwendung domänenspezifischer Verschlüsselungsschlüssel (d.h., Verschlüsselungsschlüssel, die für jede Domäne einzigartig sind, und auf die nur die Domäne zugreifen kann, der sie zugeordnet sind).
  • 1 ist ein Blockschaubild eines Systems zum Aufrechterhalten einer Speicherisolierung in dem Kontext von Virtualisierung. In diesem Fall liegt das System 100 in der Form einer Hostvorrichtung vor, die gemeinsam genutzte Hardware 102 und einen Virtual Machine Monitor (VMM) 112 aufweist. Der VMM 112 kann als Hostsoftware (z.B. ausgeführt auf der gemeinsam genutzten Hardware 102) realisiert werden, wie Fachleute verstehen werden. In jedem Fall ist der VMM 112 (und das System 100 insgesamt) dafür konfiguriert, Virtualisierung zu unterstützen, sodass eine Mehrzahl von Domänen (z.B. virtuelle Maschinen) in einer Virtualisierungsumgebung ausgeführt werden kann, die durch den VMM 112 hergestellt oder auf andere Weise unterstützt wird. Dieses Konzept wird in 1 veranschaulicht, die das System 100 als eine erste Domäne D1 und eine N-te Domäne DN hostend zeigt, obwohl jede geeignete Anzahl von Domänen durch das System 100 gehostet werden kann.
  • Zu der gemeinsam genutzten Hardware 102 zählen im Allgemeinen physische Ressourcen einer Hostvorrichtung. Aus Gründen der Klarheit und einer leichten Verständlichkeit zeigt 1 die gemeinsam genutzte Hardware 102 als eine Speichersteuereinheit 103, einen Prozessor 110 und Hauptspeicher (z.B. RAM) 107 aufweisend, aber verschiedene andere physische Ressourcen des Systems 100, die zu der gemeinsam genutzten Hardware 102 zählen können, wurden weggelassen. Zum Beispiel können zu der gemeinsam genutzten Hardware 102 auch andere Ressourcen wie beispielsweise Speicherressourcen (z.B. von einer oder mehreren nicht flüchtigen Speichervorrichtungen), Datenübertragungsressourcen (z.B. kabelgebundene und/oder drahtlose Netzwerkressourcen), Videoverarbeitungsressourcen (z.B. von einer oder mehreren dedizierten Videoverarbeitungskomponenten wie beispielsweise Grafikkarten), Kombinationen davon und dergleichen zählen. Die vereinfachte Darstellung der gemeinsam genutzten Hardware 102 wird auf die anderen FIG. übertragen, insbesondere auf 2.
  • Das System 100 (oder genauer ausgedrückt der VMM 112) ist dafür konfiguriert, virtuelle Ressourcen den Domänen D1, DN zuzuweisen, wobei diese virtuellen Ressourcen der Gesamtheit oder einem Teil der physischen Ressourcen entsprechen, die von der gemeinsam genutzten Hardware 102 bereitgestellt werden. Auf diese Weise kann die gemeinsam genutzte Hardware 102 D1 und DN zugewiesen werden. Zum Beispiel kann der VMM 112 D1 und DN virtuellen Speicher zuweisen. Der Prozessor 110 kann dafür konfiguriert sein, den virtuellen Speicher von D1 auf einen ersten Bereich 109 des Hauptspeichers 107 abzubilden, und den virtuellen Speicher von DN auf einen zweiten Bereich 111 des Hauptspeichers 109 abzubilden zu DN. Während des Betriebs des Systems 100 können D1 und/oder DN aktiv sein und Code ausführen, z.B. einen oder mehrere virtuelle Prozessoren. Während ihre virtuellen Prozessoren Code ausführen, können D1 und DN Lese- und Schreibbefehle an ihre jeweiligen virtuellen Hauptspeicher ausgeben. Die Speichersteuereinheit 103 kann dafür konfiguriert sein festzustellen, von welcher Domäne der Lese-/Schreibbefehl ausgegeben wurde, und die entsprechende Aktion durch Lesen/Schreiben von Daten aus/in entsprechende(n) physische(n) Speicheradressen der Bereiche 109, 111 ausführen. Die Speichersteuereinheit 103 kann außerdem dafür konfiguriert sein, die Speicherbereiche 109, 111 gegeneinander zu isolieren (z.B. mithilfe bereichsbasierter Steuerungen).
  • Es wird angemerkt, dass, während 1 und 2 die Verwendung einer Speichersteuereinheit 103, 203 als eine eigenständige Komponente gemeinsam genutzter Hardware zeigen, eine derartige Konfiguration nicht erforderlich ist. Tatsächlich können bei Ausführungsformen die hier beschriebenen Speichersteuereinheiten eigenständige Vorrichtungen sein oder können einstückig mit einer anderen Komponente gemeinsam genutzter Hardware einer Hostvorrichtung, wie beispielsweise einem oder mehreren Prozessoren (z.B. der Prozessor 110), einer dedizierten Speichersteuereinheit (z.B. auf einer Grundplatine), Kombinationen davon oder dergleichen sein. Ohne darauf beschränkt zu sein, sind bei Ausführungsformen die hier beschriebenen Speichersteuereinheiten einstückig mit einem oder mehreren physischen Prozessoren einer Hostvorrichtung. Zum Beispiel sind bei Ausführungsformen die hier beschriebenen Speichersteuereinheiten einstückig mit dem Prozessor 110. In diesem Zusammenhang kann der Prozessor 110 jeder geeignete Universalprozessor oder jeder geeignete anwendungsspezifische integrierte Schaltkreis sein. Ohne darauf beschränkt zu sein, ist bei Ausführungsformen die Speichersteuereinheit 103 einstückig mit dem Prozessor 110, und bei dem Prozessor 110 handelt es sich um einen oder mehrere Einzel- oder Mehrkernprozessoren, hergestellt von der INTEL® Corporation, APPLE® Corporation, AMD® Corporation, SAMSUNG® Corporation, NVIDIA® Corporation, Kombinationen davon oder dergleichen.
  • Obwohl die Speichersteuereinheit 103 bereichsbasierte Steuerungen oder andere Techniken realisieren kann, um einen Zugriff auf die Bereiche 109, 111 durch eine nicht autorisierte Domäne einzuschränken, können derartige Techniken durch hypothetische zukünftige Hardwareangriffe kompromittiert werden. Daher kann die Speichersteuereinheit 103 auch dafür konfiguriert werden, den Inhalt der Speicherbereiche 109, 111 vor nicht autorisiertem Zugriff zu schützen. Zum Beispiel kann die Speichersteuereinheit 103 den Inhalt der Speicherbereiche 109, 111 kryptografisch schützen. In diesem Zusammenhang kann die Speichersteuereinheit 103 eine Schlüsselverwaltungs- und Verschlüsselungs-Engine (key management and encryption engine, KMEE) 105 aufweisen, die domänenspezifische Verschlüsselungsschlüssel zum Verschlüsseln oder Entschlüsseln des Inhalts der Bereiche 109, 111 nutzt. Bei domänenspezifischen Verschlüsselungsschlüsseln handelt es sich um Verschlüsselungsschlüssel, die spezifisch für eine Domäne sind, der sie zugeordnet sind, und auf die eine andere Domäne nicht zugreifen kann. Daher kann die KMEE 105 einen ersten Verschlüsselungsschlüssel, der spezifisch für den Bereich 109 ist, und einen zweiten Verschlüsselungsschlüssel nutzen, der spezifisch für den Bereich 111 ist. Auf den ersten Verschlüsselungsschlüssel kann möglicherweise nur D1 zugreifen, während auf den zweiten Verschlüsselungsschlüssel möglicherweise nur DN zugreifen kann. In jedem Fall kann die KMEE 105 (oder, allgemeiner ausgedrückt, die Speichersteuereinheit 103) domänenspezifische Verschlüsselungsschlüssel verwenden, um Daten zu verschlüsseln, bevor sie in die Bereiche 109, 111 des Hauptspeichers 107 geschrieben werden. Die KMEE 105 (oder allgemeiner ausgedrückt, die Speichersteuereinheit 103) kann auch einen domänenspezifischen Entschlüsselungsschlüssel verwenden (der z.B. derselbe wie ein entsprechender domänenspezifischer Verschlüsselungsschlüssel sein oder von diesem abgeleitet sein kann), um Daten zu entschlüsseln, während sie aus einem zugewiesenen Bereich des Hauptspeichers 107 gelesen werden. In Fällen, bei denen der Verschlüsselungs- und Entschlüsselungsschlüssel derselbe ist, kann die KMEE 105 so verstanden werden, dass sie symmetrische Verschlüsselungsoperationen realisiert.
  • Genauer ausgedrückt kann, wenn D1 aktiv ist, ein virtueller Prozessor von D1 die Ausgabe eines Schreibbefehls veranlassen, um zu bewirken, dass eine Schreiboperation in virtuellen Speicher vorgenommen wird, der D1 zugewiesen ist. Als Reaktion kann die Speichersteuereinheit 103 feststellen, dass der Schreibbefehl von D1 ausgegeben wurde. Die Speichersteuereinheit 103 kann dann die Daten, die das Ziel der Anforderung sind („Schreibdaten“), mit einem ersten Verschlüsselungsschlüssel verschlüsseln, der spezifisch für D1 ist, und die sich ergebenden verschlüsselten Schreibdaten in dem Bereich 109 des Hauptspeichers 107 speichern. Im Gegensatz dazu kann, wenn DN aktiv ist, ein virtueller Prozessor von DN die Ausgabe eines Schreibbefehls veranlassen, um zu bewirken, dass eine Schreiboperation in virtuellen Speicher vorgenommen wird, der DN zugewiesen ist. Die Speichersteuereinheit 103 kann feststellen, dass der Schreibbefehl von DN ausgegeben wurde. Die Speichersteuereinheit kann dann die dem Schreibbefehl zugeordneten Schreibdaten unter Verwendung eines zweiten Verschlüsselungsschlüssels verschlüsseln, der spezifisch für DN ist, und die sich ergebenden verschlüsselten Schreibdaten in dem Bereich 109 des Hauptspeichers 107 speichern.
  • In dem Lesekontext können D1 und DN die Ausgabe von Lesebefehlen bewirken, die virtuelle Adressen ihres jeweiligen virtuellen Speichers zum Ziel haben. Als Reaktion kann die Speichersteuereinheit 103 feststellen, von welcher Domäne ein Lesebefehl ausgegeben wurde. Die Speichersteuereinheit 103 kann dann die Daten, die Ziel des Lesebefehls sind, aus den identifizierten physischen Adressen lesen, z.B. wie jeweils anwendbar aus den Bereichen 109, 111. Da der Inhalt der Bereiche 109, 111 mit einem domänenspzifischen Verschlüsselungsschlüssel verschlüsselt ist, werden die von der Speichersteuereinheit 103 gelesenen Daten in der Form von Geheimtext vorliegen. Dementsprechend kann die Speichersteuereinheit 103 ferner den Lesebefehl durch Entschlüsseln des aus den Bereichen 109, 111 gelesenen Geheimtexts mit einem entsprechenden Entschlüsselungsschlüssel abarbeiten.
  • In dem Fall von aus dem Bereich 109 gelesenem Geheimtext kann der Entschlüsselungsschlüssel von dem ersten Verschlüsselungsschlüssel (d.h. dem domänenspezifischen Verschlüsselungsschlüssel, der dem Bereich 109 zugeordnet ist) abgeleitet werden. Alternativ kann in dem Fall von aus dem Bereich 111 gelesenem Geheimtext der Entschlüsselungsschlüssel von dem zweiten Verschlüsselungsschlüssel (d.h. dem domänenspezifischen Verschlüsselungsschlüssel, der dem Bereich 111 zugeordnet ist) abgeleitet werden. Da die Domänen D1, DN nur Zugriff auf ihren jeweiligen Verschlüsselungsschlüssel haben, ist der Inhalt des Bereichs 109 vor einem nicht autorisierten Lesebefehl von DN (mit dem Bereich 109 als Ziel) geschützt, und der Inhalt des Bereichs 111 ist vor einem nicht autorisierten Lesebefehl von D1 (mit dem Bereich 111 als Ziel) geschützt. Genauer ausgedrückt wäre, obwohl DN potentiell den Inhalt des Bereichs 109 erlangen könnte, der Inhalt Geheimtext und für DN unverständlich, da ihr der Verschlüsselungsschlüssel von D1 fehlt. In ähnlicher Weise wäre, obwohl D1 potentiell den Inhalt des Bereichs 111 erlangen könnte, der Inhalt Geheimtext und für D1 unverständlich, da ihr der Verschlüsselungsschlüssel von DN fehlt.
  • Zusammengefasst ist das System 100 dafür konfiguriert, eine Isolierung der Speicherdomänen 109, 111 unter Verwendung bereichsbasierter Steuerungen aufrechtzuerhalten und kryptografisch den Inhalt der Bereiche 109, 111 mit domänenspezifischen Verschlüsselungs- und Entschlüsselungsschlüsseln vor nicht autorisierten Leseoperationen zu schützen. Jedoch bietet das System 100 keinen Mechanismus zum Prüfen der Integrität von Daten, die in den zugewiesenen Speicherbereichen 109, 111 gespeichert sind. Folglich können derartige Verfahren Angriffen ausgesetzt sein, bei denen eine nicht autorisierte (angreifende) Domäne eine nicht autorisierte Schreiboperation in einen Speicherbereich verursacht, der einer anderen (angegriffenen) Domäne zugewiesen ist.
  • Zum Beispiel kann eine bösartige Entität, die in DN ausgeführt wird, die Ausgabe nicht autorisierter Schreibbefehle bewirken, die den physischen Speicher zum Ziel haben, der D1 zu gewiesen ist, d.h. den Bereich 109. Ausgehend von der Annahme, dass der oder die Mechanismen, die durch das System 100 realisiert werden, um den Bereich 109 gegen andere Bereiche des Hauptspeichers 107 zu isolieren (z.B. bereichsbasierte Steuerungen) nicht kompromittiert wurden, kann eine Ausführung der nicht autorisierten Schreibbefehle, die den Bereich 109 zum Ziel haben, verweigert werden. Wurden derartige Mechanismen jedoch kompromittiert, kann der von DN ausgegebene nicht autorisierte Schreibbefehl bewirken, dass die Speichersteuereinheit 103 nicht autorisierte Daten in den Bereich 109 schreibt - wodurch potenziell die Integrität von darin gespeicherten Daten kompromittiert wird.
  • Verschiedene Angriffe wurden entwickelt, um die Isolierung von Speicherbereichen mithilfe bereichsbasierter Steuerungen zu umgehen. Ein derartiger Angriff ist der sogenannte „Rowhammer-Angriff“. Unter Verwendung des Rowhammer-Angriffs kann eine in DN ausgeführte bösartige Entität bewirken, dass die Speichersteuereinheit 103 wiederholt und schnell auf den Reihenpuffer des Hauptspeichers 107 zugreift, was bewirkt, dass Bit-Flip-Zufallsfehler in dem Bereich 109 auftreten. Derartige Bit-Flips können potenziell Möglichkeiten für die in DN ausgeführte bösartige Entität schaffen, zu bewirken, dass nicht autorisierte Daten in den Bereich 109 geschrieben werden. Diese nicht autorisierten Daten werden möglicherweise von D1 nicht erkannt, da das System 100 keinen Mechanismus zum Verifizieren der Integrität von Daten bietet, die in den Hauptspeicher 107 (oder, genauer ausgedrückt, in dessen zugewiesene Bereiche 109, 111) geschrieben werden.
  • Unter Beachtung des Vorstehenden betreffen Aspekte der vorliegenden Offenbarung Technologien zum Aufrechterhalten der Integrität von Bereichen physischen Speichers, die mehreren Domänen zugewiesen sind. Zu den hier beschriebenen Technologien zählen Vorrichtungen, Systeme, Verfahren und computerlesbare Medien, welche die Erzeugung eines ersten Integritätswerts als Reaktion auf einen von einer ersten Domäne ausgegebenen Schreibbefehl bewirken, wobei der Schreibbefehl einen Bereich physischen Hauptspeichers (zugewiesener Speicherbereich) einer Hostvorrichtung (z.B. RAM), welcher der ersten Domäne zugewiesen ist, zum Ziel hat (d.h. diesem zugeordnet wird). Bei Ausführungsformen ist der erste Integritätswert eine Datenstruktur, die (z.B. mithilfe einer Speichersteuereinheit) zumindest zum Teil aus der (optional gekürzten) Ausgabe einer ersten Integritätsoperation an dem Klartext der zu schreibenden Daten als Reaktion auf den Schreibbefehl (hier nachfolgend: „Klartext-Schreibdaten“) und der (optional gekürzten) Ausgabe einer zweiten Integritätsoperation an Geheimtext erzeugt wird, der durch Verschlüsseln der Schreibdaten mit einem Verschlüsselungsschlüssel (hier nachfolgend: „verschlüsselte Schreibdaten“) erstellt wird. Als Reaktion auf den Schreibbefehl kann der erste Integritätswert zusammen mit den verschlüsselten Schreibdaten in den zugewiesenen Speicherbereich geschrieben werden. Zum Beispiel kann der Integritätswert in den zugewiesenen Speicherbereich als Metadaten geschrieben werden, die verschlüsselten Schreibdaten zugeordnet sind. Bei Ausführungsformen wird der erste Integritätswert in Metadatenbits in dem zugewiesenen Speicherbereich geschrieben, und die verschlüsselten Schreibdaten werden in Datenspeicherbits in dem zugewiesenen Speicherbereich geschrieben.
  • Als Reaktion auf einen von der ersten Domäne ausgegebenen Lesebefehl kann die Integrität der zu lesenden Daten (z.B. Lesedaten) aus einem zugewiesenen Speicherbereich durch Bestimmen eines zweiten Integritätswerts aus dem Klartext und Geheimtext der zu lesenden Daten (d.h. Klartext-Lesedaten und verschlüsselte Lesedaten) und Vergleichen des zweiten Integritätswerts mit dem ersten Integritätswert verifiziert werden. Zum Beispiel kann eine Speichersteuereinheit einen Lesebefehl von einer ersten Domäne empfangen, wobei der Lesebefehl physische Speicheradressen in einem ersten Bereich physischen Hauptspeichers einer der ersten Domäne zugewiesenen Hostvorrichtung zum Ziel hat (z.B. diesen zugeordnet ist). Als Reaktion auf den Lesebefehl kann die Speichersteuereinheit verschlüsselte Lesedaten aus den physischen Speicheradressen lesen, die Ziel des Lesebefehls sind, wie auch einen ersten Integritätswert, der den verschlüsselten Lesedaten zugeordnet ist. Die verschlüsselten Lesedaten können in Datenspeicherbits des zugewiesenen Speicherbereichs gespeichert werden, und der erste Integritätswert kann in Metadatenbits gespeichert werden, die den Datenspeicherbits zugeordnet sind.
  • Die Speichersteuereinheit kann die verschlüsselten Lesedaten entschlüsseln, um Klartext-Lesedaten zu erlangen. Die Speichersteuereinheit kann außerdem einen zweiten Integritätswert zumindest zum Teil auf Grundlage der verschlüsselten Lesedaten und Klartext-Lesedaten erzeugen. Bei Ausführungsformen ist der zweite Integritätswert eine Datenstruktur, die zumindest zum Teil aus der (optional gekürzten) Ausgabe einer ersten Integritätsoperation, durchgeführt an Klartext-Lesedaten, und der (optional gekürzten) Ausgabe einer zweiten Integritätsoperation, durchgeführt an den verschlüsselten Lesedaten, erzeugt wird. Die Integrität von Daten, die Ziel des Lesebefehls sind, kann dann durch Vergleichen des zweiten Integritätswerts mit dem ersten Integritätswert verifiziert werden. Wenn der erste und zweite Integritätswert gleich sind (oder sich um weniger als einen Schwellenbetrag unterscheiden - kann, obwohl dies ein verringertes Sicherheitsniveau mit sich bringen würde, die Integritätsverifizierung bestanden werden. Wenn der erste und zweite Integritätswert unterschiedlich sind (oder sich um mehr als einen Schwellenbetrag unterscheiden - kann jedoch, wiederum bei einem verringerten Sicherheitsniveau) die Integritätsverifizierung fehlschlagen. In dem letzteren Fall können Operationen durchgeführt werden, um die Auswirkungen des geänderten Inhalts des zugewiesenen Bereichs physischen Hostspeichers auf die Operation der ersten Domäne und/oder das Hostsystem zu mildern.
  • Es wird nun auf 2 Bezug genommen, die in Übereinstimmung mit der vorliegenden Offenbarung ein Beispiel eines Systems 200 zum Verifizieren der Integrität von Daten zeigt, die in zugewiesenen Bereichen physischen Hauptspeichers gespeichert sind. Wie das System 100 wird das System 200 in 2 im Kontext von Virtualisierung gezeigt. Daher kann das System 200 als eine Hostvorrichtung oder ein Hostsystem verstanden werden, das gemeinsam genutzte Hardware 202 und einen Virtual Machine Monitor (VMM) 212 aufweist. Der VMM 212 kann in Hardware, Firmware oder Software realisiert werden und kann dafür konfiguriert werden, eine Virtualisierungsumgebung zum Hosten einer oder mehrerer Domänen (virtueller Maschinen) in Übereinstimmung mit einer oder mehreren Virtualisierungsrichtlinien herzustellen. Zum Beispiel kann der VMM 212 die Gesamtheit oder einen Teil gemeinsam genutzter Hardware einer oder mehreren virtuellen Domänen zuweisen, z.B. den Domänen D1, DN, wie in 2 gezeigt.
  • Die gemeinsam genutzte Hardware 202 kann zahlreiche derselben Komponenten aufweisen wie die gemeinsam genutzte Hardware 102 aus 1. Zum Beispiel kann die gemeinsam genutzte Hardware 202 gemeinsam genutzte physische Verarbeitungsressourcen (z.B. den Prozessor 110), gemeinsam genutzten physischen Speicher, gemeinsam genutzte Datenübertragungsressourcen, Kombinationen davon und dergleichen aufweisen. Die gemeinsam genutzte Hardware 202 weist auch eine Speichersteuereinheit 203 auf. Wie die Speichersteuereinheit 103 kann die Speichersteuereinheit 203 dafür konfiguriert sein, Lese- und Schreibbefehle zu empfangen, die virtuelle Speicheradressen virtuellen Speichers zum Ziel haben, der D1, DN zugewiesen ist, und Daten aus entsprechenden physischen Adressen gemeinsam genutzten Hauptspeichers 207 zu lesen/in diese zu schreiben. Außerdem kann, wie die Speichersteuereinheit 103, die Speichersteuereinheit 203 dafür konfiguriert sein, die Bereiche 209 und 211 gegen einander zu isolieren (z.B. mithilfe bereichsbasierter Zugriffssteuerungen), und den Inhalt der Bereiche 209, 211 kryptografisch zu schützen (z.B. unter Verwendung domänenspezifischer Verschlüsselungs-/Entschlüsselungsschlüssel, die von der KMEE 105 verwaltet werden). Daher kann, wie in 2 gezeigt, die Speichersteuereinheit 203 dafür konfiguriert sein, einen ersten und zweiten Bereich 209, 211 gegeneinander zu isolieren, D1 zugeordneten Geheimtext von Daten (D1-Geheimtext) in dem Bereich 209 zu speichern, und DN zugeordneten Geheimtext (DN-Geheimtext) in dem Bereich 211 zu speichern.
  • Wie die Speichersteuereinheit 103 kann die Speichersteuereinheit 203 eine eigenständige Komponente sein oder kann einstückig mit einer anderen Komponente der gemeinsam genutzten Hardware 202 sein. Zum Beispiel kann die Speichersteuereinheit 203 einstückig mit einem oder mehreren physischen Prozessoren wie beispielsweise dem Prozessor 110, einer Grundplatine, einer Zusatzkarte oder anderen Komponente der gemeinsam genutzten Hardware 202 sein, wie vorstehend in Verbindung mit der Speichersteuereinheit 103 aus 1 beschrieben. Ohne darauf beschränkt zu sein, ist bei Ausführungsformen die Speichersteuereinheit 203 einstückig mit dem Prozessor 110, wobei es sich bei dem Prozessor 110 um einen oder mehrere physische Einzel- oder Mehrkernprozessoren handelt.
  • Außer zum Isolieren zugewiesener Speicherbereiche des Hauptspeichers 207 gegeneinander und zum Schützen ihres Inhalts mithilfe von Verschlüsselung, ist die Speichersteuereinheit 203 auch dafür konfiguriert, eine Verifizierung von Daten zu ermöglichen, die in zugewiesenen Bereichen des Hauptspeichers 207 gespeichert sind. In diesem Zusammenhang kann die Speichersteuereinheit 203 eine Integritäts-Engine 205 aufweisen. Im Allgemeinen kann die Integritäts-Engine 205 in der Form von Hardware (Schaltungen), Firmware und/oder Software vorliegen, die dafür konfiguriert ist/sind, Integritätsverifizierungsoperationen in Übereinstimmung mit der vorliegenden Offenbarung durchzuführen. Bei nicht einschränkenden Ausführungsformen liegt die Integritäts-Engine 205 in der Form von Schaltungen vor, die dafür konfiguriert sind, Integritätsverifizierungsoperationen in Übereinstimmung mit der vorliegenden Offenbarung durchzuführen. Alternativ oder zusätzlich kann die Integritäts-Engine 205 einen Prozessor aufweisen oder in einer solchen Form vorliegen, der dafür konfiguriert ist, Anweisungen auszuführen, die in einem computerlesbaren Speichermedium (z.B. einem Treiber, von der Speichersteuereinheit ausgeführter eingebetteter Firmware oder einem dedizierten Integritätsprozessor oder dergleichen) gespeichert sind, um die Speichersteuereinheit 203 zu veranlassen, Integritätsverifizierungsoperationen in Übereinstimmung mit der vorliegenden Offenbarung durchzuführen. Es sollte außerdem beachtet werden, dass, obwohl die Integritäts-Engine 205 als in der Speichersteuereinheit 203 befindlich gezeigt wird, eine derartige Konfiguration nicht erforderlich ist. Zum Beispiel kann die Integritäts-Engine 205 eine eigenständige Komponente sein, oder sie kann in andere gemeinsam genutzte Hardware einbezogen sein, wie beispielsweise den Prozessor 110.
  • Die Integritätsverifizierungsoperationen beinhalten im Allgemeinen ein Vergleichen eines zweiten Integritätswerts als Reaktion auf einen von einer ersten Domäne ausgegebenen Lesebefehl mit einem ersten Integritätswert, der als Reaktion auf einen von der ersten Domäne ausgegebenen Schreibbefehl erzeugt wird. Bei Ausführungsformen hat der Schreibbefehl erste physische Adressen eines ersten zugewiesenen Bereich des Hauptspeicherss einer Hostvorrichtung zum Ziel, und der Lesebefehl hat Daten zum Ziel, die in diesen ersten physischen Adressen gespeichert sind. Als Reaktion auf den Schreibbefehl kann die Speichersteuereinheit 203 den ersten Integritätswert sowie verschlüsselte Schreibdaten (d.h. Geheimtext der zu schreibenden Daten) in ersten physischen Adressen eines ersten zugewiesenen Bereich des Hauptspeicherss speichern. Die Speichersteuereinheit 203 kann ferner bewirken, dass der erste Integritätswert als Metadaten in dem ersten zugewiesenen Bereich in Zusammenhang mit den verschlüsselten Schreibdaten gespeichert wird, wie z.B. in 2 gezeigt.
  • Die Speichersteuereinheit 203 kann den ersten Integritätswert auf jede geeignete Weise erzeugen. Bei Ausführungsformen ist die Speichersteuereinheit dafür konfiguriert, den ersten Integritätswert als Reaktion zumindest zum Teil zu erzeugen durch: Durchführen erster Integritätsoperationen an Klartext der Daten, die Ziel des Schreibbefehls sind (z.B. Klartext-Schreibdaten), um eine erste Ausgabe zu erstellen; Durchführen zweiter Integritätsoperationen an Geheimtext der Schreibdaten (z.B. verschlüsselten Schreibdaten), um eine zweite Ausgabe zu erstellen; und Kombinieren mindestens der ersten und zweiten Ausgabe, um den ersten Integritätswert zu erzeugen. Die Speichersteuereinheit 203 kann dann bewirken, dass die verschlüsselten Schreibdaten und der erste Integritätswert in den ersten zugewiesenen Bereich des Hauptspeichers 207 geschrieben werden. Zum Beispiel und wie vorstehend angemerkt, kann die Speichersteuereinheit bewirken, dass die verschlüsselten Schreibdaten in Datenspeicherbits in einem zugewiesenen Bereich des Hauptspeichers 207 (z.B. der Bereich 209) geschrieben werden, und bewirken, dass der erste Integritätswert in Metadatenbits gespeichert wird, die den Datenspeicherbits zugeordnet sind, in welche die verschlüsselten Schreibdaten geschrieben werden.
  • Bei Ausführungsformen und wie ferner in Verbindung mit 4A und 4B beschrieben, können die ersten Integritätsoperationen ein Durchführen einer zyklischen Redundanzprüfung (cyclic redundancy check, CRC) an dem Klartext der Schreibdaten beinhalten, um einen ersten CRC-Wert als eine erste Ausgabe zu erzeugen. Bei derartigen Ausführungsformen können die zweiten Integritätsoperationen ein Berechnen eines ersten Nachrichtenauthentifizierungscodes (message authentication code, MAC) zumindest zum Teil auf Grundlage von Geheimtext der Schreibdaten beinhalten, wobei der erste MAC als die zweite Ausgabe verwendet wird. Der erste MAC kann zumindest zum Teil auf Grundlage der verschlüsselten Schreibdaten, einer oder mehrerer der ersten physischen Adressen, die Ziel des Schreibbefehls sind, und eines Integritätsschlüssels erzeugt werden. Der zum Erzeugen des MAC verwendete Integritätsschlüssel kann ein domänenspezifischer Integritätsschlüssel sein, oder er kann von allen Domänen gemeinsam genutzt werden, die von einem Hostsystem gehostet werden. Ohne darauf beschränkt zu sein, wird bei Ausführungsformen der Integritätsschlüssel von allen Domänen gemeinsam genutzt, die von einem Hostsystem gehostet werden. Wie leicht einzusehen ist, wird durch eine Verwendung eines gemeinsam genutzten Integritätsschlüssels die Notwendigkeit vermieden, domänenspezifische Integritätsschlüssel zu verwalten und zu sichern.
  • Bei Ausführungsformen ist der Integritätsschlüssel nicht in dem System festgelegt und kann auf eine Anzahl unterschiedlicher Arten geändert oder variiert werden. Zum Beispiel kann der Integritätsschlüssel als Reaktion auf ein oder mehrere Systemereignisse, wie beispielsweise ein Systemstart, ein Abschalten des Systems, eine System-Reaktivierung aus dem Ruhezustand, Kombinationen davon und dergleichen geändert oder variiert werden.
  • Mehrere Verfahren zum Berechnen eines Nachrichtenauthentifizierungscodes sind bekannt, und jedes geeignete Verfahren kann zum Erzeugen des ersten MAC verwendet werden. Bei Ausführungsformen ist der Nachrichtenauthentifizierungscode ein Hashbasierter Nachrichtenauthentifizierungscode (hash based message authentication code, HMAC; auch als ein Keyed-Hash-Nachrichtenauthentifizierungscode bekannt). Ein HMAC ist eine Art MAC, die unter Verwendung einer kryptografischen Hashfunktion und eines geheimen kryptografischen Schlüssels bestimmt wird. Jede geeignete kryptografische Hashfunktion kann zum Bestimmen eines HMAC verwendet werden, wie beispielsweise eine oder mehrere Varianten des sicheren Hashalgorithmus (secure hash algorithm, SHA), wie beispielsweise SHA-2, SHA-3 (z.B. SHA-256) usw. oder dergleichen. Ohne darauf beschränkt zu sein, ist bei Ausführungsformen die Speichersteuereinheit 203 dafür konfiguriert, den ersten MAC unter Verwendung eines SHA-256-HMAC-Algorithmus und des Integritätsschlüssels zu erzeugen. Zum Beispiel kann die Speichersteuereinheit 203 den ersten MAC berechnen, wie nachfolgend in Gleichung (I) gezeigt:
    1. (I) MAC_FN(Ikey, Geheimtext, physische Adresse, Metadaten), wobei MAC_FN die MAC-Funktion (z.B. SHA256-HMAC) ist, Ikey der Integritätsschlüssel ist, Geheimtext verschlüsselte Schreibdaten sind, physische Adresse die physische Speicheradresse(n) ist/sind, die Ziel des Schreibbefehls ist/sind, und Metadaten beliebige andere Daten sind, die ebenfalls enthalten sein können. Selbstverständlich können auch andere Verfahren zum Erzeugen des ersten MAC verwendet werden.
  • Wie vorstehend angemerkt, kann die Speichersteuereinheit 203 dafür konfiguriert sein, einen ersten Integritätswert durch Kombinieren der ersten Ausgabe (erster Integritätsoperationen) mit der zweiten Ausgabe (zweiter Integritätsoperationen) zu erzeugen. In Fällen, in denen die erste Ausgabe ein erster CRC-Wert und die zweite Ausgabe ein erster MAC ist, kann der erste Integritätswert von der Speichersteuereinheit 203 durch Kombinieren des ersten CRC-Werts und des ersten MAC auf eine beliebige geeignete Weise erzeugt werden. Ohne darauf beschränkt zu sein, ist bei Ausführungsformen die Speichersteuereinheit 203 dafür konfiguriert, den ersten Integritätswert durch Durchführen von Exklusives-ODER- (XOR-) Operationen unter Verwendung des ersten CRC-Werts und des ersten MAC zu erzeugen. Die Speichersteuereinheit 203 kann außerdem den ersten CRC-Wert und/oder den ersten MAC kürzen, bevor sie kombiniert werden, um z.B. die Speichermenge zu beschränken, die zum Speichern des ersten Integritätswerts benötigt wird.
  • Wie vorstehend angemerkt, beinhalten die Integritätsverifizierungsoperationen ein Vergleichen eines zweiten Integritätswerts, als Reaktion auf einen von einer ersten Domäne ausgegebenen Lesebefehl, mit einem ersten Integritätswert. Im Allgemeinen wird der zweite Integritätswert im Wesentlichen auf dieselbe Weise wie der erste Integritätswert erzeugt, wird aber statt unter Verwendung von Klartext und Geheimtext von Schreibdaten, die Ziel eines Schreibbefehls sind, unter Verwendung von Klartext und Geheimtext von Lesedaten bestimmt, die Ziel des Lesebefehls sind. Genauer ausgedrückt, liest als Reaktion auf einen von der ersten Domäne ausgegebenen Lesebefehl die Speichersteuereinheit 203 Daten, die Ziel des Lesebefehls sind, aus dem ersten Bereich des Hauptspeichers (z.B. verschlüsselte Lesedaten), wie auch einen ersten Integritätswert, der den verschlüsselten Lesedaten zugeordnet ist. Die Speichersteuereinheit 203 entschlüsselt dann die verschlüsselten Lesedaten, um Klartext-Lesedaten zu erstellen. Die Speichersteuereinheit kann dann den zweiten Integritätswert zumindest zum Teil erzeugen durch: Durchführen dritter Integritätsoperationen an den Klartext-Lesedaten, um eine dritte Ausgabe zu erstellen; Durchführen vierter Integritätsoperationen an den verschlüsselten Lesedaten, um eine vierte Ausgabe zu erstellen; und Kombinieren der dritten und vierten Ausgabe, um den zweiten Integritätswert zu erzeugen. Wie die erste und zweite Ausgabe können die dritte und vierte Ausgabe gekürzt werden, bevor sie kombiniert werden, um die Speichermenge zu beschränken, die zum Speichern des zweiten Integritätswerts benötigt wird.
  • Abgesehen von den Daten, an denen gearbeitet wird, sind die dritten Integritätsoperationen dasselbe wie die ersten Integritätsoperationen, die bei der Erstellung des ersten Integritätswerts verwendet werden; die vierten Integritätsoperationen sind dasselbe wie die zweiten Integritätsoperationen, die bei der Erstellung des ersten Integritätswerts verwendet werden; und die dritte und vierte Ausgabe werden auf dieselbe Weise kombiniert wie die erste und zweite Ausgabe bei der Erstellung des ersten Integritätswerts. Anders ausgedrückt, werden identische Operationen bei den ersten und dritten Integritätsoperationen und den zweiten und vierten Integritätsoperationen durchgeführt, aber an (potenziell) anderen Daten. Genauer ausgedrückt, werden mithilfe der bei der Erzeugung des ersten Integritätswerts verwendeten ersten und zweiten Integritätsoperationen Operationen an Klartext- und verschlüsselten Schreibdaten (d.h., Daten, die der Gegenstand eines Schreibbefehls sind und in einen ersten zugewiesenen Bereich des Hauptspeichers geschrieben werden sollen) ausgeführt, während mithilfe der dritten und vierten Operationen Operationen an Klartext- und verschlüsselten Lesedaten (d.h., Daten, die zuvor in einem ersten zugewiesenen Bereich des Hauptspeichers gespeichert wurden) ausgeführt werden. Daher umfassen bei Ausführungsformen die dritten Integritätsoperationen ein Erzeugen eines CRC-Werts aus Klartext-Schreibdaten und ein Erzeugen eines MAC aus Geheimtext-Schreibdaten, z.B. auf dieselbe Weise wie vorstehend in Bezug auf die Erstellung des ersten Integritätswerts beschrieben.
  • Wie vorstehend angemerkt, kann die Speichersteuereinheit die Integrität von Daten, die in einem zugewiesenen Bereich des Hauptspeichers gespeichert werden, durch Vergleichen des ersten Integritätswerts mit dem zweiten Integritätswert verifizieren. Angenommen, die Daten, die Ziel des Lesebefehls sind (verschlüsselte Lesedaten), wurden nicht manipuliert (geändert), nachdem sie in den ersten zugewiesenen Bereich als Reaktion auf einen Schreibbefehl geschrieben wurden, dann werden der erste Integritätswert und der zweite Integritätswert gleich sein oder können sich um weniger als einen Schwellenbetrag unterscheiden (z.B. bei einer Ausführungsform mit geringerer Sicherheit). In diesem Fall kann die Speichersteuereinheit 203 bestimmen, dass die Integritätsverifizierung bestanden wurde (d.h., dass die Integrität der Lesedaten verifiziert ist). Wenn die verschlüsselten Lesedaten, die Ziel des Lesebefehls sind, geändert wurden (z.B. durch eine nicht autorisierte Schreiboperation in den ersten zugewiesenen Bereich oder einen anderen Angriff), werden der erste Integritätswert und der zweite Integritätswert jedoch unterschiedlich sein oder können sich um mehr als einen Schwellenbetrag unterscheiden (wiederum bei einer Ausführungsform mit geringerer Sicherheit). In diesem Fall kann die Speichersteuereinheit 203 bestimmen, dass die Integritätsverifizierung fehlgeschlagen ist (d.h., dass die Integrität der Lesedaten kompromittiert wurde).
  • Zurück zu 2 und 3: Wie vorstehend angemerkt, kann die Speichersteuereinheit 203 die Integritäts-Engine 205 aufweisen, oder die Integritäts-Engine kann eine eigenständige Komponente oder in eine andere Komponente wie beispielsweise den Prozessor 110 integriert sein. Unabhängig davon kann die Integritäts-Engine 205 in Hardware, Firmware oder Software realisiert werden, und kann dafür konfiguriert sein, Integritätsoperationen in Übereinstimmung mit der vorliegenden Offenbarung durchzuführen oder deren Durchführung zu bewirken. Bei Ausführungsformen und wie in 3 gezeigt, kann die Integritäts-Engine 205 ein CRCM-Modul (cyclic redundancy check module, Modul zur zyklischen Redundanzprüfung) 205, ein MAC-Erzeugungsmodul (MAC generation module, MGM) 305, ein optionales Kürzungsmodul 307, ein Integritätswert-Erzeugungsmodul (integrity value generation module, IVGM) 309 sowie ein Integritätsverifizierungsmodul (integrity verification module, IVM) 311 aufweisen. Bei Ausführungsformen können derartige Module einzeln oder in Verbindung miteinander arbeiten, um Integritätsoperationen in Übereinstimmung mit der vorliegenden Offenbarung durchzuführen oder deren Durchführung zu bewirken.
  • Beispielhaft werden spezifische Operationen, die möglicherweise von den Modulen aus 3 durchgeführt werden, jetzt in Verbindung mit dem in 2 gezeigten virtualisierten System 200 beschrieben. Als eine Grundlinie wird angenommen, dass das System 200 mehrere Domänen (D1, DN) hostet, denen jeweils virtueller Speicher zugewiesen wird, der auf einen entsprechenden Bereich des physischen Hauptspeichers 207 abgebildet wird. Genauer ausgedrückt, ist die Speichersteuereinheit 203 bei diesen Ausführungsformen dafür konfiguriert, Lese-/Schreibbefehle abzuarbeiten, die virtuelle Adressen von D1, DN zum Ziel haben, die auf physische Adressen eines ersten und zweiten Bereichs 209, 211 des Hauptspeichers 207 abgebildet werden. Überdies ist bei dieser Ausführungsform die Speichersteuereinheit 203 dafür konfiguriert, die Bereiche 209, 211 unter Verwendung bereichsbasierter Steuerungen zu isolieren und den Inhalt der Bereiche 209, 211 unter Verwendung domänenspezifischer Verschlüsselungsschlüssel kryptografisch zu schützen. Um dieses Beispiels willen wird angenommen, dass D1 eine aktive Domäne ist, die möglicherweise Gegenstand eines Angriffs von DN ist. Daher kann D1 als die „angegriffene Domäne“ verstanden werden, und DN kann als die „angreifende Domäne“ verstanden werden.
  • Wenn sie aktiv ist, kann D1 Schreibbefehle ausgeben, die virtuelle Adressen in ihrem virtuellen Speicher zum Ziel haben. Als Reaktion kann die Speichersteuereinheit 203 feststellen, dass diese Schreibbefehle von D1 ausgingen. Wie vorstehend erörtert, kann die Speichersteuereinheit 203 (oder genauer ausgedrückt, die KMEE 105) die Daten, die Ziel des Schreibbefehls sind (d.h. Schreibdaten) unter Verwendung eines domänenspezifischen Verschlüsselungsschlüssels verschlüsseln, der spezifisch für D1 ist, wonach die Speichersteuereinheit 203 bewirken kann, dass die sich ergebenden verschlüsselten Schreibdaten in physische Adressen in dem Bereich 209 geschrieben werden.
  • Vor, nach oder gleichzeitig mit dem Schreiben der verschlüsselten Schreibdaten kann die Integritäts-Engine 205 einen ersten Integritätswert erzeugen. Im Allgemeinen ist die Integritäts-Engine 205 dafür konfiguriert, einen ersten Integritätswert auf dieselbe Weise wie vorstehend beschrieben zu erzeugen. Zum Beispiel kann das CRCM 301 dafür konfiguriert sein, erste Integritätsoperationen an den Klartext-Schreibdaten durchzuführen oder deren Durchführung zu bewirken. Die ersten Integritätsoperationen können ein Durchführen von CRC-Operationen an den Klartext-Schreibdaten sein oder beinhalten, um einen CRC-Wert zu erstellen. Zu derselben oder einer anderen Zeit kann die KMEE 105 die Klartext-Schreibdaten verschlüsseln, um verschlüsselte Schreibdaten zu erstellen.
  • Gleichzeitig oder zu einer anderen Zeit kann das MGM 305 zweite Integritätsoperationen zum Erstellen einer zweiten Ausgabe durchführen oder deren Durchführung bewirken. Die zweiten Integritätsoperationen können dieselben wie die zuvor beschriebenen sein. Zum Beispiel ist bei Ausführungsformen das MGM 305 dafür konfiguriert, das Erzeugen eines MAC zumindest zum Teil auf Grundlage verschlüsselter Schreibdaten und eines Integritätsschlüssels (Ikey) durchzuführen oder die Durchführung zu bewirken.
  • Der CRC-Wert und der MAC-Wert können dann als erste und zweite Ausgabe für die Erzeugung eines ersten Integritätswerts verwendet werden, wie zuvor erläutert. Zum Beispiel kann das IVGM 309 dafür konfiguriert sein, den CRC-Wert und den MAC-Wert zu kombinieren oder deren Kombination zu bewirken, um einen ersten Integritätswert auf eine beliebige geeignete Weise zu erstellen. Bei Ausführungsformen ist das IVGM 309 dafür konfiguriert, einen ersten Integritätswert durch Durchführen von Exklusives-ODER- (XOR-) Operationen unter Verwendung des CRC-Werts und des MAC-Werts zu erstellen. Die Speichersteuereinheit 203 kann dann bewirken, dass der erste Integritätswert (z.B. als Metadaten) in dem ersten Bereich 209 in Zusammenhang mit den verschlüsselten Schreibdaten gespeichert wird. Dieses Konzept wird in 2 gezeigt, die einen ersten Bereich 209 des Hauptspeichers als D1-Geheimtext und D1-Metadaten enthaltend zeigt, wobei D1-Geheimtext die verschlüsselten Schreibdaten sind, und D1-Metadaten der erste Integritätswert sind, der den verschlüsselten Schreibdaten zugeordnet ist. Da sich dieses Konzept auf andere Domänen (z.B. DN) erstreckt, zeigt 2 auch den Bereich 211 als DN-Geheimtext und DN-Metadaten enthaltend, wobei DN-Geheimtext verschlüsselte Schreibdaten sind, geschrieben als Reaktion auf einen von DN ausgegebenen Schreibbefehl, und DN-Metadaten ein erster Integritätswert sind, der auf dieselbe vorstehend beschriebene Weise erzeugt und geschrieben und DN-Geheimtext zugeordnet wurde.
  • Bei Ausführungsformen enthält der Hauptspeicher 207 eine Mehrzahl von Bits, wobei die Mehrzahl von Bits (z.B. durch die Speichersteuereinheit 203 oder den Prozessor 110) in Metadatenbits und Datenspeicherbits zugewiesen werden kann, und wobei die Metadatenbits auf entsprechende Datenspeicherbits abgebildet oder diesen auf andere Weise zugeordnet werden. In derartigen Fällen können verschlüsselte Schreibdaten in die Datenspeicherbits des Hauptspeichers 207 geschrieben werden, und der erste Integritätswert kann in Metadatenbits geschrieben werden, die den Datenspeicherbits zugeordnet sind, in welche die verschlüsselten Schreibdaten geschrieben werden. Als Reaktion auf eine Leseoperation kann die Speichersteuereinheit 203 bewirken, dass verschlüsselte Lesedaten, die Ziel des Lesebefehls sind, aus Datenspeicherbits gelesen werden. Gleichzeitig oder zu einer anderen Zeit kann die Speichersteuereinheit 203 außerdem bewirken, dass der erste Integritätswert aus den Metadatenbits gelesen wird, die den Datenspeicherbits zugeordnet sind, in denen die verschlüsselten Lesedaten gespeichert werden.
  • Nochmals mit Bezug auf 2 und 3: Die Integritäts-Engine 205 kann dafür konfiguriert sein, Integritätsoperationen durchzuführen, um die Integrität der verschlüsselten Lesedaten zu verifizieren, die Ziel des Lesebefehls sind. Zum Beispiel kann die KMEE 105 die verschlüsselten Lesedaten unter Verwendung eines domänenspezifischen Entschlüsselungsschlüssels entschlüsseln, der von einem D1 zugeordneten domänenspezifischen Verschlüsselungsschlüssel abgeleitet wird, wobei Klartext-Lesedaten erstellt werden. Das CRCM 301 kann dann dritte Integritätsoperationen an den Klartext-Lesedaten durchführen, um eine dritte Ausgabe zu erzeugen. Bei Ausführungsformen können die dritten Integritätsoperationen ein Durchführen von CRC-Operationen an den Klartext-Lesedaten beinhalten, um einen CRC-Wert als eine dritte Ausgabe zu erzeugen. Bemerkenswerterweise sind die gemäß den dritten Integritätsoperationen durchgeführten CRC-Operationen dieselben wie die CRC-Operationen, die von dem CRCM 301 gemäß den vorstehend genannten ersten Integritätsoperationen durchgeführt werden. Das MGM 305 kann dafür konfiguriert sein, zu derselben oder einer anderen Zeit vierte Integritätsoperationen unter Verwendung der verschlüsselten Lesedaten durchzuführen. Bei Ausführungsformen beinhalten die vierten Integritätsoperationen ein Erzeugen eines MAC zumindest zum Teil auf Grundlage der verschlüsselten Lesedaten und eines Integritätsschlüssels (Ikey). Bemerkenswerterweise sind die gemäß den vierten Integritätsoperationen durchgeführten Operationen dieselben wie die gemäß einer Ausführung der vorstehend genannten zweiten Integritätsoperationen durchgeführten. Optional kann das Kürzungsmodul 307 die dritte und vierte Ausgabe (d.h. den CRC-Wert und den MAC) kürzen, um Speicher zu einzusparen (z.B. auf dieselbe Weise wie die erste und zweite Ausgabe), oder die dritte und vierte Ausgabe werden möglicherweise nicht gekürzt (z.B., wenn die erste und zweite Ausgabe nicht gekürzt wurden).
  • Das IVGM 309 kann dann den (optional gekürzten) CRC-Wert und den (optional gekürzten) MAC verwenden, um die Erzeugung eines zweiten Integritätswerts zu erzeugen oder zu bewirken. Bei Ausführungsformen kann das IVGM 309 den zweiten Integritätswert durch Durchführen von Exklusives-ODER- (XOR-) Operationen unter Verwendung des CRC-Werts und des MAC-Werts erzeugen. Zusammengefasst können die zum Erzeugen des zweiten Integritätswerts durchgeführten Operationen im Wesentlichen dieselben wie die zum Erzeugen des ersten Integritätswerts durchgeführten Operationen sein, können aber potenziell unterschiedliche Startdaten verarbeiten.
  • Das IVM 311 ist im Allgemeinen dafür konfiguriert, Integritätsverifizierungsoperationen an den verschlüsselten Lesedaten durchzuführen oder deren Durchführung zu bewirken. Bei Ausführungsformen kann das IVM 311 die Integrität der verschlüsselten Lesedaten durch Vergleichen des ersten Integritätswerts und des zweiten Integritätswerts verifizieren. Wie vorstehend angemerkt kann, wenn der erste und zweite Integritätswert gleich sind oder sich um weniger als einen Schwellenbetrag unterscheiden, das IVM 311 feststellen, dass die Integrität der verschlüsselten Lesedaten aufrechterhalten wurde (d.h. bestanden). Wenn der erste und zweite Integritätswert unterschiedlich sind oder sich um mehr als einen Schwellenbetrag unterscheiden, kann das IVM 311 jedoch feststellen, dass die Integrität der Geheimtext-Lesedaten kompromittiert wurde, z.B. durch eine von DN (als eine angreifende Domäne) versuchte nicht autorisierte Schreiboperation oder durch eine andere Art von Angriff.
  • Ein anderer Aspekt der vorliegenden Offenbarung betrifft Verfahren zum Ermöglichen einer Verifizierung der Integrität von Daten, die in einem einer Domäne zugewiesenen Bereich des Hauptspeichers gespeichert sind. In diesem Zusammenhang wird auf 4A bis 5B Bezug genommen. 4A ist ein Blockschaubild, das ein Beispiel eines Datenschreibflusses in Übereinstimmung mit der vorliegenden Offenbarung veranschaulicht, gemäß dem ein erster Integritätswert erzeugt wird. 4B ist ein Ablaufplan beispielhafter Operationen eines Beispiels für ein Verfahren 400 zum Schreiben von Daten in Übereinstimmung mit der vorliegenden Offenbarung.
  • Wie in 4B gezeigt, beginnt das Verfahren 400 bei Block 401. Das Verfahren kann dann parallel zu Block 403 und 407 fortschreiten. Gemäß Block 403 kann ein CRC-Wert auf Grundlage von Klartext von Daten berechnet werden, die das Ziel eines von einer ersten Domäne (D1) ausgegebenen Schreibbefehls sind (d.h. Klartext-Schreibdaten). Gemäß Block 407 werden die Klartext-Schreibdaten mit einem domänenspezifischen Verschlüsselungsschlüssel verschlüsselt. Diese Operationen sind in 4A veranschaulicht, die D1-Klartext (d.h. Klartext-Schreibdaten) als eine Eingabe für die Berechnung eines CRC-Werts und für einen Verschlüsselungsblock veranschaulicht, wobei der D1-Verschlüsselungsschlüssel ein D1 zugeordneter domänenspezifischer Verschlüsselungsschlüssel ist. Eine Berechnung des CRC-Werts kann durch eine Speichersteuereinheit (z.B. die Speichersteuereinheit 203) und/oder eines oder mehrere von deren Modulen (z.B. das CRCM 301 aus 3) durchgeführt werden.
  • Nach einer Berechnung des CRC gemäß Block 403 kann das Verfahren zu einem optionalen Block 405 fortschreiten, gemäß dem der CRC-Wert optional gekürzt werden kann. Diese Operation ist in 4A durch den Ausgabepfeil veranschaulicht, der sich von dem CRC-Berechnungsblock zu einem optionalen Kürzungsblock erstreckt. In Übereinstimmung mit der vorstehenden Beschreibung kann eine Kürzung des CRC-Werts durch eine Speichersteuereinheit (z.B. die Speichersteuereinheit 203) oder eines von deren Modulen (z.B. das optionale Kürzungsmodul 307 in 3) durchgeführt werden.
  • Durch ein Verschlüsseln der Klartext-Schreibdaten gemäß Block 407 werden verschlüsselte Schreibdaten erzeugt. Das Verfahren kann dann von Block 407 zu Block 409 fortschreiten, gemäß dem ein MAC zumindest zum Teil auf Grundlage der verschlüsselten Schreibdaten erzeugt werden kann. Zum Beispiel und wie in 4A gezeigt, kann ein MAC auf Grundlage der verschlüsselten Schreibdaten, der physischen Adresse des Speicherbereichs, der Ziel des Schreibbefehls ist, und eines Integritätsschlüssels (Ikey) erzeugt werden, der domänenspezifisch sein oder von Domänen gemeinsam genutzt werden kann, die von einem System gehostet werden, auf dem das Verfahren durchgeführt wird. Wie vorstehend erörtert, kann der MAC durch jedes geeignete Verfahren erstellt werden, wie beispielsweise durch Ausführen von Operationen in Übereinstimmung mit dem SHA-256-HMAC-Algorithmus an den verschlüsselten Schreibdaten unter Verwendung des Ikey. Derartige Operationen können zum Beispiel durch das MGM 305 durchgeführt werden, wie zuvor in Verbindung mit 3 beschrieben.
  • Das Verfahren kann dann zu einem optionalen Block 411 fortschreiten, gemäß dem der MAC optional gekürzt werden kann. Diese Operation ist in 4A durch den Ausgabepfeil veranschaulicht, der sich von dem MAC-Berechnungsblock zu einem optionalen Kürzungsblock erstreckt. In Übereinstimmung mit der vorstehenden Beschreibung kann eine Kürzung des MAC durch eine Speichersteuereinheit (z.B. die Speichersteuereinheit 203) oder eines von deren Modulen (z.B. das optionale Kürzungsmodul 307 in 3) durchgeführt werden.
  • Nach einem Erzeugen des (optional gekürzten) CRC-Werts und des optional gekürzten MAC, kann das Verfahren zu Block 413 fortschreiten, gemäß dem ein erster Integritätswert erzeugt werden kann. Zum Beispiel und wie vorstehend beschrieben, kann der erste Integritätswert erzeugt werden, indem der CRC-Wert und der MAC auf jede geeignete Weise kombiniert werden. Bei Ausführungsformen wird der erste Integritätswert durch Durchführen einer XOR-Operation des CRC-Werts mit dem MAC erzeugt, wie zuvor erläutert. Dieses Konzept wird in 4A durch die Ausgabepfeile von den optionalen Kürzungs-Blöcken zu dem IV1-Erzeugungsblock (IV1 = first integrity value) veranschaulicht.
  • Das Verfahren kann dann zu Block 415 fortschreiten, gemäß dem der erste Integritätswert und die verschlüsselten Schreibdaten in einen zugewiesenen Bereich des Hauptspeichers einer Hostvorrichtung geschrieben werden können. Wie vorstehend erörtert, kann eine Speichersteuereinheit bewirken, dass die verschlüsselten Schreibdaten in Datenspeicherblöcke in dem zugewiesenen Speicherbereich geschrieben werden, und bewirken, dass der erste Integritätswert in Metadatenblöcke geschrieben wird, die diesen Datenspeicherblöcken zugeordnet sind. Das Verfahren kann dann zu Entscheidungsblock 417 fortschreiten, gemäß dem eine Entscheidung getroffen werden kann, ob das Verfahren fortgesetzt werden soll. Wenn ja, kann das Verfahren zu Block 401 zurückspringen und wiederholt werden. Wenn aber nicht, kann das Verfahren zu Block 419 fortschreiten und enden.
  • 5A ist ein Blockschaubild, das ein Beispiel eines Datenleseflusses in Übereinstimmung mit der vorliegenden Offenbarung veranschaulicht, und 5B ist ein Ablaufplan beispielhafter Operationen eines Beispiels eines Verfahrens 500 zum Verifizieren der Integrität von Daten, die in einen zugewiesenen Speicherbereich geschrieben werden, in Übereinstimmung mit der vorliegenden Offenbarung. Wie in 5B gezeigt, beginnt das Verfahren 500 bei Block 501. Das Verfahren kann dann parallel zu Block 503 und 507 fortschreiten.
  • Gemäß Block 503 kann ein zweiter MAC zumindest zum Teil auf Grundlage verschlüsselter Lesedaten, die die das Ziel einer Lesedomäne sind, ausgegeben von einer ersten Domäne (z.B. D1) und eines Integritätsschlüssels (Ikey) bestimmt werden. Der zweite MAC kann auf dieselbe Weise wie der gemäß Block 409 aus 4B erzeugte erste MAC erzeugt werden. Nach dem Erzeugen des zweiten MAC kann das Verfahren zu einem optionalen Block 505 fortschreiten, gemäß dem der zweite MAC optional gekürzt werden kann. Diese Operationen werden in 5A gezeigt, die verschlüsselte Lesedaten (Geheimtext), die physischen Adressen, die Ziel des Lesebefehls sind, und den Integritätsschlüssel (Ikey) als Eingaben für einen MAC-Block zeigt, wobei der Ausgabepfeil des MAC-Blocks zu einem optionalen Verkürzungsblock führt.
  • Gemäß Block 507 können die verschlüsselten Lesedaten durch eine Speichersteuereinheit oder eines oder mehrere von deren Modulen entschlüsselt werden, wie vorstehend beschrieben. Zum Beispiel können die verschlüsselten Lesedaten mit einem domänenspezifischen Entschlüsselungsschlüssel entschlüsselt werden, der von einem D1 zugeordneten domänenspezifischen Verschlüsselungsschlüssel abgeleitet wird. Diese Operationen sind in 5A veranschaulicht, die einen domänenspezifischen Verschlüsselungsschlüssel (D1-Verschlüsselungsschlüssel) sowie Geheimtext (verschlüsselte Lesedaten) als Eingabe für einen Entschlüsselungsblock zeigt. Das Ergebnis derartiger Operationen sind Klartext-Lesedaten.
  • Das Verfahren kann dann zu Block 509 fortschreiten, gemäß dem ein zweiter CRC-Wert auf Grundlage des Lesedaten-Klartexts erzeugt wird. Eine Berechnung des zweiten CRC-Werts kann durch eine Speichersteuereinheit (z.B. die Speichersteuereinheit 203) und/oder eines oder mehrere von deren Modulen (z.B. das CRCM 301 aus 3) durchgeführt werden. Nach einer Berechnung des zweiten CRC-Werts gemäß Block 509 kann das Verfahren zu dem optionalen Block 511 fortschreiten, gemäß dem der zweite CRC optional gekürzt werden kann. Diese Operation ist in 5A durch den Ausgabepfeil veranschaulicht, der sich von dem CRC-Berechnungsblock zu einem optionalen Kürzungsblock erstreckt. In Übereinstimmung mit der vorstehenden Beschreibung kann eine Kürzung des zweiten CRC-Werts durch eine Speichersteuereinheit (z.B. die Speichersteuereinheit 203) oder eines von deren Modulen (z.B. das optionale Kürzungsmodul 307 in 3) durchgeführt werden.
  • Nach einem Erzeugen des (optional gekürzten) zweiten CRC-Werts und des optional gekürzten MAC, kann das Verfahren zu Block 513 fortschreiten, gemäß dem ein zweiter Integritätswert erzeugt werden kann. Zum Beispiel und wie vorstehend beschrieben, kann der zweite Integritätswert auf dieselbe Weise wie der erste Integritätswert erzeugt werden. Zum Beispiel kann der zweite Integritätswert durch Durchführen einer XOR-Operation des zweiten CRC-Werts mit dem zweiten MAC erzeugt werden, wie zuvor erläutert. Dieses Konzept wird in 5A durch die Ausgabepfeile von den optionalen Kürzungsblöcken zu dem IV2-Erzeugungsblock (IV2 = second integrity value) veranschaulicht.
  • Das Verfahren kann dann zu Block 515 fortschreiten, gemäß dem eine Integritätsprüfung durchgeführt werden kann. Wie zuvor erläutert, kann die Integritätsprüfung durch Vergleichen des zweiten Integritätswerts mit dem ersten Integritätswert durchgeführt werden. Nach einem derartigen Vergleich kann das Verfahren zu Entscheidungsblock 517 fortschreiten, gemäß dem eine Entscheidung getroffen werden kann, ob der erste und zweite Integritätswert übereinstimmen. Wenn der erste und zweite Integritätswert gleich sind oder sich um weniger als einen Schwellenbetrag unterscheiden, ist das Ergebnis von Block 517 Ja, und das Verfahren kann zu Block 519 fortschreiten, gemäß dem die Integritätsprüfung als erfolgreich (d.h., die Integrität der verschlüsselten Lesedaten ist bestätigt) gemeldet werden kann. Wenn der erste und zweite Integritätswert verschieden sind oder sich um mehr als einen Schwellenbetrag unterscheiden, ist das Ergebnis von Block 517 NEIN, und das Verfahren kann zu Block 521 fortschreiten, gemäß dem die Integritätsprüfung als ein Fehlschlag (d.h., die Integrität der verschlüsselten Lesedaten wurde kompromittiert) gemeldet werden kann.
  • In jedem Fall kann das Verfahren von Block 519 oder 521 zu Block 523 fortschreiten, gemäß dem eine Entscheidung getroffen werden kann, ob das Verfahren fortgesetzt werden soll. Wenn ja, kann das Verfahren zu Block 501 zurückspringen. Wenn aber nicht, kann das Verfahren zu Block 525 fortschreiten und enden.
  • Ein anderer Aspekt der vorliegenden Offenbarung betrifft ein computerlesbares Speichermedium, das computerlesbare Anweisungen enthält, die, wenn sie von einem Prozessor ausgeführt werden, bewirken, dass der Prozessor (oder eine den Prozessor enthaltende Vorrichtung) Integritätsoperationen in Übereinstimmung mit der vorliegenden Offenbarung durchführt. Wenn es verwendet wird, kann das computerlesbare Speichermedium in der Form eines Erzeugnisses vorliegen. Bei einigen Beispielen kann es sich bei dem computerlesbaren Speichermedium um ein nicht flüchtiges computerlesbares Medium oder maschinenlesbares Medium wie beispielsweise, aber ohne darauf beschränkt zu sein, ein optisches, magnetisches oder Halbleiterspeichermedium handeln. In jedem Fall kann das Speichermedium verschiedene Arten durch Computer ausführbarer Anweisungen speichern, beispielsweise Anweisungen für die Operationen des Verfahrens aus 4B und/oder 5B. Zu nicht einschränkenden Beispielen für geeignete computerlesbare Speichermedien, die möglicherweise verwendet werden, zählen beliebige materielle Medien, die zum Speichern elektronischer Daten imstande sind, darunter flüchtiger Speicher oder nicht flüchtiger Speicher, entfernbarer oder nicht entfernbarer Speicher, löschbarer oder nicht löschbarer Speicher, beschreibbarer oder wiederbeschreibbarer Speicher und so weiter. Zu Beispielen für durch Computer ausführbare Anweisungen kann jede geeignete Art von Code zählen, wie beispielsweise Quellcode, kompilierter Code, interpretierter Code, ausführbarer Code, statischer Code, dynamischer Code, objektorientierter Code, visueller Code und dergleichen.
  • Beispiele
  • Die folgenden Beispiele betreffen weitere Ausführungsformen. Die folgenden Beispiele der vorliegenden Offenbarung können Gegenstände (subject material) umfassen wie beispielsweise ein System, eine Vorrichtung, ein Verfahren, ein computerlesbares Speichermedium, das Anweisungen speichert, die, wenn sie ausgeführt werden, eine Maschine veranlassen, auf dem Verfahren beruhende Handlungen durchzuführen, und/oder Mittel zum Durchführen von auf dem Verfahren beruhenden Handlungen, wie im Folgenden dargelegt.
  • Beispiel 1: Gemäß diesem Beispiel wird ein Verfahren zum Verifizieren der Integrität von in Hauptspeicher einer Hostvorrichtung gespeicherten Daten bereitgestellt, das beinhaltet, mithilfe einer Speichersteuereinheit der Hostvorrichtung: Erzeugen eines ersten Integritätswerts als Reaktion auf einen Schreibbefehl von einer ersten Domäne, wobei der Schreibbefehl erste physische Adressen eines ersten zugewiesenen Bereichs des Hauptspeichers zum Ziel hat; Erzeugen eines zweiten Integritätswerts als Reaktion auf einen Lesebefehl von der ersten Domäne, wobei der Lesebefehl in den ersten physischen Adressen gespeicherte Lesedaten zum Ziel hat; und Verifizieren der Integrität der Lesedaten zumindest zum Teil durch Vergleichen des ersten Integritätswerts mit dem zweiten Integritätswert, wobei: ein Erzeugen des ersten Integritätswerts beinhaltet: Durchführen erster Integritätsoperationen an Klartext von Schreibdaten, die Ziel des Schreibbefehls sind, um eine erste Ausgabe zu erstellen; Durchführen zweiter Integritätsoperationen an Geheimtext der Schreibdaten, die als Reaktion auf den Schreibbefehl geschrieben werden sollen, um eine zweite Ausgabe zu erstellen; Kombinieren der ersten und zweiten Ausgabe, um den ersten Integritätswert zu erzeugen; und das Verfahren ferner beinhaltet, mithilfe der Speichersteuereinheit: Bewirken, dass der erste Integritätswert in den ersten zugewiesenen Bereich des Hauptspeichers geschrieben wird.
  • Beispiel 2: Dieses Beispiel beinhaltet einzelne oder alle der Merkmale aus Beispiel 1, wobei: die ersten Integritätsoperationen ein Durchführen einer zyklischen Redundanzprüfung (CRC) ausgehend von dem Klartext der Schreibdaten umfassen, um einen ersten CRC-Wert zu erzeugen; die zweiten Integritätsoperationen ein Erzeugen eines ersten Nachrichtenauthentifizierungscodes (MAC) aus dem Geheimtext der Schreibdaten umfassen; und die erste Ausgabe der erste CRC-Wert ist, und die zweite Ausgabe der erste MAC ist.
  • Beispiel 3: Dieses Beispiel beinhaltet einzelne oder alle der Merkmale aus Beispiel 2, wobei der erste MAC zumindest zum Teil auf Grundlage des Geheimtexts der Schreibdaten, einer oder mehrerer der ersten physischen Adressen und eines Integritätsschlüssels erzeugt wird.
  • Beispiel 4: Dieses Beispiel beinhaltet einzelne oder alle der Merkmale aus einem der Beispiele 1 bis 3, wobei ein Erzeugen des zweiten Integritätswerts beinhaltet: Lesen von Geheimtext der Lesedaten, die Ziel des Lesebefehls sind, aus den ersten physischen Adressen; Entschlüsseln des Geheimtexts der Lesedaten, um Klartext-Lesedaten zu erlangen; Durchführen dritter Integritätsoperationen an den Klartext-Lesedaten, um eine dritte Ausgabe zu erlangen; und Durchführen vierter Integritätsoperationen an den Geheimtext-Lesedaten, um eine vierte Ausgabe zu erlangen; und Kombinieren der dritten und vierten Ausgabe, um den zweiten Integritätswert zu erzeugen.
  • Beispiel 5: Dieses Beispiel beinhaltet einzelne oder alle der Merkmale aus Beispiel 4, wobei: die dritten Integritätsoperationen ein Durchführen einer zyklischen Redundanzprüfung (CRC) an den Klartext-Lesedaten umfassen, um einen zweiten CRC-Wert zu erzeugen; die vierten Integritätsoperationen ein Erzeugen eines zweiten Nachrichtenauthentifizierungscodes (MAC) aus den Geheimtext-Lesedaten umfassen; und die dritte Ausgabe der zweite CRC-Wert ist, und die vierte Ausgabe der zweite MAC ist.
  • Beispiel 6: Dieses Beispiel beinhaltet einzelne oder alle der Merkmale aus Beispiel 5, wobei der zweite MAC zumindest zum Teil auf Grundlage der Geheimtext-Lesedaten, einer oder mehrerer der ersten physischen Adressen und eines Integritätsschlüssels erzeugt wird.
  • Beispiel 7: Dieses Beispiel beinhaltet einzelne oder alle der Merkmale aus einem der Beispiele 1 bis 6, wobei das Verfahren ferner beinhaltet, mithilfe der Speichersteuereinheit: gleichzeitiges Lesen des ersten Integritätswerts und der Geheimtext-Lesedaten aus dem ersten zugewiesenen Bereich des Hauptspeichers.
  • Beispiel 8: Dieses Beispiel beinhaltet einzelne oder alle der Merkmale aus einem der Beispiele 1 bis 7, wobei: ein Verifizieren der Integrität der Lesedaten erfolgreich ist, wenn der erste Integritätswert und der zweite Integritätswert gleich sind; und ein Verifizieren der Integrität der Lesedaten fehlschlägt, wenn der erste Integritätswert und der zweite Integritätswert unterschiedlich sind.
  • Beispiel 9: Dieses Beispiel beinhaltet einzelne oder alle der Merkmale aus Beispiel 8, wobei: ein Verifizieren der Integrität der Lesedaten ausschließlich auf dem Vergleich des ersten Integritätswerts mit dem zweiten Integritätswert beruht.
  • Beispiel 10: Dieses Beispiel beinhaltet einzelne oder alle der Merkmale aus einem der Beispiele 1 bis 9, wobei das Verfahren ferner beinhaltet, mithilfe der Speichersteuereinheit: Isolieren des ersten zugewiesenen Bereichs des Hauptspeichers gegen einen zweiten zugewiesenen Bereich des Hauptspeichers; wobei der erste zugewiesene Bereich einer ersten Domäne der Hostvorrichtung zugeordnet ist, und der zweite zugewiesene Bereich einer zweiten Domäne der Hostvorrichtung zugeordnet ist.
  • Beispiel 11: Dieses Beispiel beinhaltet einzelne oder alle der Merkmale aus Beispiel 10, wobei die Speichersteuereinheit den ersten zugewiesenen Bereich gegen den zweiten zugewiesenen Bereich unter Verwendung bereichsbasierter Steuerungen isolieren soll.
  • Beispiel 12: Dieses Beispiel beinhaltet einzelne oder alle der Merkmale aus Beispiel 10 oder 11, wobei das Verfahren ferner beinhaltet, mithilfe der Speichersteuereinheit: Verschlüsseln von Daten, die in den ersten zugewiesenen Bereich des Hauptspeichers geschrieben werden sollen, mit einem ersten domänenspezifischen Verschlüsselungsschlüssel, und Verschlüsseln von Daten, die in den zweiten zugewiesenen Bereich des Hauptspeichers geschrieben werden sollen, mit einem zweiten domänenspezifischen Verschlüsselungsschlüssel.
  • Beispiel 13: Dieses Beispiel beinhaltet einzelne oder alle der Merkmale aus Beispiel 1, wobei das Verfahren ferner beinhaltet, mithilfe der Speichersteuereinheit: Bewirken, dass Geheimtext der Schreibdaten in erste Datenspeicherbits in dem ersten zugewiesenen Bereich des Hauptspeichers geschrieben wird; und Bewirken, dass der erste Integritätswert in erste Metadatenbits in dem ersten zugewiesenen Bereich des Hauptspeichers geschrieben wird; wobei die ersten Metadatenbits den ersten Datenspeicherbits zugeordnet sind.
  • Beispiel 14: Gemäß diesem Beispiel wird eine nicht flüchtiges computerlesbares Speichermedium bereitgestellt, das Anweisungen aufweist, die, wenn sie von einem Prozessor eines Hostsystems ausgeführt werden, die Durchführung der folgenden Operationen bewirken, die beinhalten, mithilfe einer Speichersteuereinheit einer Hostvorrichtung: Erzeugen eines ersten Integritätswerts als Reaktion auf einen Schreibbefehl von einer ersten Domäne, wobei der Schreibbefehl erste physische Adressen eines ersten zugewiesenen Bereichs des Hauptspeichers zum Ziel hat; Erzeugen eines zweiten Integritätswerts als Reaktion auf einen Lesebefehl von der ersten Domäne, wobei der Lesebefehl in den ersten physischen Adressen gespeicherte Lesedaten zum Ziel hat; und Verifizieren der Integrität der Lesedaten zumindest zum Teil durch Vergleichen des ersten Integritätswerts mit dem zweiten Integritätswert; wobei: ein Erzeugen des ersten Integritätswerts beinhaltet: Durchführen erster Integritätsoperationen an Klartext von Schreibdaten, die Ziel des Schreibbefehls sind, um eine erste Ausgabe zu erstellen; Durchführen zweiter Integritätsoperationen an Geheimtext der Schreibdaten, die als Reaktion auf den Schreibbefehl geschrieben werden sollen, um eine zweite Ausgabe zu erstellen; Kombinieren der ersten und zweiten Ausgabe, um den ersten Integritätswert zu erzeugen; und das Verfahren ferner beinhaltet, mithilfe der Speichersteuereinheit: Bewirken, dass der erste Integritätswert in den ersten zugewiesenen Bereich des Hauptspeichers geschrieben wird.
  • Beispiel 15: Dieses Beispiel beinhaltet einzelne oder alle der Merkmale aus Beispiel 14, wobei: die ersten Integritätsoperationen ein Durchführen einer zyklischen Redundanzprüfung (CRC) ausgehend von dem Klartext der Schreibdaten umfassen, um einen ersten CRC-Wert zu erzeugen; die zweiten Integritätsoperationen ein Erzeugen eines ersten Nachrichtenauthentifizierungscodes (MAC) aus dem Geheimtext der Schreibdaten umfassen; die erste Ausgabe der erste CRC-Wert ist, und die zweite Ausgabe der erste MAC ist.
  • Beispiel 16: Dieses Beispiel beinhaltet einzelne oder alle der Merkmale aus Beispiel 15, wobei der erste MAC zumindest zum Teil auf Grundlage des Geheimtexts der Schreibdaten, einer oder mehrerer der ersten physischen Adressen und eines Integritätsschlüssels erzeugt wird.
  • Beispiel 17: Dieses Beispiel beinhaltet einzelne oder alle der Merkmale aus einem der Beispiele 14 bis 16, wobei ein Erzeugen des zweiten Integritätswerts beinhaltet: Lesen von Geheimtext der Lesedaten, die Ziel des Lesebefehls sind, aus den ersten physischen Adressen; Entschlüsseln des Geheimtexts der Lesedaten, um Klartext-Lesedaten zu erlangen; Durchführen dritter Integritätsoperationen an den Klartext-Lesedaten, um eine dritte Ausgabe zu erlangen; und Durchführen vierter Integritätsoperationen an den Geheimtext-Lesedaten, um eine vierte Ausgabe zu erlangen; und Kombinieren der dritten und vierten Ausgabe, um den zweiten Integritätswert zu erzeugen.
  • Beispiel 18: Dieses Beispiel beinhaltet einzelne oder alle der Merkmale aus Beispiel 17, wobei: die dritten Integritätsoperationen ein Durchführen einer zyklischen Redundanzprüfung (CRC) an den Klartext-Lesedaten umfassen, um einen zweiten CRC-Wert zu erzeugen; die vierten Integritätsoperationen ein Erzeugen eines zweiten Nachrichtenauthentifizierungscodes (MAC) aus den Geheimtext-Lesedaten umfassen; und die dritte Ausgabe der zweite CRC-Wert ist, und die vierte Ausgabe der zweite MAC ist.
  • Beispiel 19: Dieses Beispiel beinhaltet einzelne oder alle der Merkmale aus Beispiel 18, wobei der zweite MAC zumindest zum Teil auf Grundlage der Geheimtext-Lesedaten, einer oder mehrerer der ersten physischen Adressen und eines Integritätsschlüssels erzeugt wird.
  • Beispiel 20: Dieses Beispiel beinhaltet einzelne oder alle der Merkmale aus einem der Beispiele 14 bis 19, wobei die Anweisungen, wenn sie von dem Prozessor ausgeführt werden, ferner die Durchführung der folgenden Operationen mithilfe der Speichersteuereinheit bewirken, die beinhalten: gleichzeitiges Lesen des ersten Integritätswerts und der Geheimtext-Lesedaten aus dem ersten zugewiesenen Bereich des Hauptspeichers.
  • Beispiel 21: Dieses Beispiel beinhaltet einzelne oder alle der Merkmale aus einem der Beispiele 14 bis 20, wobei: ein Verifizieren der Integrität der Lesedaten erfolgreich ist, wenn der erste Integritätswert und der zweite Integritätswert gleich sind; und ein Verifizieren der Integrität der Lesedaten fehlschlägt, wenn der erste Integritätswert und der zweite Integritätswert unterschiedlich sind.
  • Beispiel 22: Dieses Beispiel beinhaltet einzelne oder alle der Merkmale aus Beispiel 21, wobei: ein Verifizieren der Integrität der Lesedaten ausschließlich auf dem Vergleich des ersten Integritätswerts mit dem zweiten Integritätswert beruht.
  • Beispiel 23: Dieses Beispiel beinhaltet einzelne oder alle der Merkmale aus einem der Beispiele 14 bis 22, wobei die Anweisungen, wenn sie von dem Prozessor ausgeführt werden, ferner die Durchführung der folgenden Operationen mithilfe der Speichersteuereinheit zur Folge haben, die beinhalten: Isolieren des ersten zugewiesenen Bereichs des Hauptspeichers gegen einen zweiten zugewiesenen Bereich des Hauptspeichers; wobei der erste zugewiesene Bereich einer ersten Domäne der Hostvorrichtung zugeordnet ist, und der zweite zugewiesene Bereich einer zweiten Domäne der Hostvorrichtung zugeordnet ist.
  • Beispiel 24: Dieses Beispiel beinhaltet einzelne oder alle der Merkmale aus Beispiel 23, wobei die Speichersteuereinheit den ersten zugewiesenen Bereich gegen den zweiten zugewiesenen Bereich unter Verwendung bereichsbasierter Steuerungen isolieren soll.
  • Beispiel 25: Dieses Beispiel beinhaltet einzelne oder alle der Merkmale aus einem der Beispiele 23 und 24, wobei die Anweisungen, wenn sie von dem Prozessor ausgeführt werden, ferner die Durchführung der folgenden Operationen mithilfe der Speichersteuereinheit bewirken, die beinhalten: Verschlüsseln von Daten, die in den ersten zugewiesenen Bereich des Hauptspeichers geschrieben werden sollen, mit einem ersten domänenspezifischen Verschlüsselungsschlüssel, und Verschlüsseln von Daten, die in den zweiten zugewiesenen Bereich des Hauptspeichers geschrieben werden sollen, mit einem zweiten domänenspezifischen Verschlüsselungsschlüssel.
  • Beispiel 26: Dieses Beispiel beinhaltet einzelne oder alle der Merkmale aus Beispiel 14, wobei die Anweisungen, wenn sie von dem Prozessor ausgeführt werden, ferner die Durchführung der folgenden Operationen mithilfe der Speichersteuereinheit zur Folge haben, die beinhalten: Bewirken, dass Geheimtext der Schreibdaten in erste Datenspeicherbits in dem ersten zugewiesenen Bereich des Hauptspeichers geschrieben wird; und Bewirken, dass der erste Integritätswert in erste Metadatenbits in dem ersten zugewiesenen Bereich des Hauptspeichers geschrieben wird; wobei die ersten Metadatenbits den ersten Datenspeicherbits zugeordnet sind.
  • Beispiel 27: Gemäß diesem Beispiel wird eine Speichersteuereinheit zum Ermöglichen einer Integritätsverifizierung von Daten bereitgestellt, die in Hauptspeicher einer Hostvorrichtung gespeichert sind, welche Schaltungen aufweist, die konfiguriert sind zum: Erzeugen eines ersten Integritätswerts als Reaktion auf einen Schreibbefehl von einer ersten Domäne, wobei der Schreibbefehl erste physische Adressen eines ersten zugewiesenen Bereichs des Hauptspeichers zum Ziel hat; Erzeugen eines zweiten Integritätswerts als Reaktion auf einen Lesebefehl von der ersten Domäne, wobei der Lesebefehl in den ersten physischen Adressen gespeicherte Lesedaten zum Ziel hat; und Verifizieren der Integrität der Lesedaten zumindest zum Teil durch Vergleichen des ersten Integritätswerts mit dem zweiten Integritätswert, wobei: die Schaltungen den ersten Integritätswert zumindest zum Teil erzeugen sollen durch: Durchführen erster Integritätsoperationen an Klartext von Schreibdaten, die Ziel des Schreibbefehls sind, um eine erste Ausgabe zu erstellen; Durchführen zweiter Integritätsoperationen an Geheimtext der Schreibdaten, die als Reaktion auf den Schreibbefehl geschrieben werden sollen, um eine zweite Ausgabe zu erstellen; und Kombinieren der ersten und zweiten Ausgabe, um den ersten Integritätswert zu erzeugen; und die Schaltungen ferner dafür konfiguriert sind, zu bewirken, dass der erste Integritätswert in den ersten zugewiesenen Bereich des Hauptspeichers geschrieben wird.
  • Beispiel 28: Dieses Beispiel beinhaltet einzelne oder alle der Merkmale aus Beispiel 27, wobei: die ersten Integritätsoperationen ein Durchführen einer zyklischen Redundanzprüfung (CRC) ausgehend von dem Klartext der Schreibdaten umfassen, um einen ersten CRC-Wert zu erzeugen; die zweiten Integritätsoperationen ein Erzeugen eines ersten Nachrichtenauthentifizierungscodes (MAC) aus dem Geheimtext der Schreibdaten umfassen; die erste Ausgabe der erste CRC-Wert ist, und die zweite Ausgabe der erste MAC ist.
  • Beispiel 29: Dieses Beispiel beinhaltet einzelne oder alle der Merkmale aus Beispiel 28, wobei die Schaltungen den ersten MAC zumindest zum Teil auf Grundlage des Geheimtexts der Schreibdaten, einer oder mehrerer der ersten physischen Adressen und eines Integritätsschlüssels erzeugen sollen.
  • Beispiel 30: Dieses Beispiel beinhaltet einzelne oder alle der Merkmale aus einem der Beispiele 27 bis 29, wobei die Schaltungen den zweiten Integritätswert zumindest zum Teil erzeugen sollen durch: Lesen von Geheimtext der Lesedaten, die Ziel des Lesebefehls sind, aus den ersten physischen Adressen; Entschlüsseln des Geheimtexts der Lesedaten, um Klartext-Lesedaten zu erlangen; Durchführen dritter Integritätsoperationen an den Klartext-Lesedaten, um eine dritte Ausgabe zu erlangen; und Durchführen vierter Integritätsoperationen an den Geheimtext-Lesedaten, um eine vierte Ausgabe zu erlangen; und Kombinieren der dritten und vierten Ausgabe, um den zweiten Integritätswert zu erzeugen.
  • Beispiel 31: Dieses Beispiel beinhaltet einzelne oder alle der Merkmale aus Beispiel 30, wobei: die dritten Integritätsoperationen ein Durchführen einer zyklischen Redundanzprüfung (CRC) an den Klartext-Lesedaten umfassen, um einen zweiten CRC-Wert zu erzeugen; die vierten Integritätsoperationen ein Erzeugen eines zweiten Nachrichtenauthentifizierungscodes (MAC) aus den Geheimtext-Lesedaten umfassen; und die dritte Ausgabe der zweite CRC-Wert ist, und die vierte Ausgabe der zweite MAC ist.
  • Beispiel 32: Dieses Beispiel beinhaltet einzelne oder alle der Merkmale aus Beispiel 31, wobei die Schaltungen den zweiten MAC zumindest zum Teil auf Grundlage der Geheimtext-Lesedaten, einer oder mehrerer der ersten physischen Adressen und eines Integritätsschlüssels erzeugen sollen.
  • Beispiel 33: Dieses Beispiel beinhaltet einzelne oder alle der Merkmale aus einem der Beispiele 27 bis 32, wobei die Schaltungen ferner zum gleichzeitigen Lesen des ersten Integritätswerts und der Geheimtext-Lesedaten aus dem ersten zugewiesenen Bereich des Hauptspeichers konfiguriert sind.
  • Beispiel 34: Dieses Beispiel beinhaltet einzelne oder alle der Merkmale aus einem der Beispiele 27 bis 33, wobei: ein Verifizieren der Integrität der Lesedaten erfolgreich ist, wenn der erste Integritätswert und der zweite Integritätswert gleich sind; und ein Verifizieren der Integrität der Lesedaten fehlschlägt, wenn der erste Integritätswert und der zweite Integritätswert unterschiedlich sind.
  • Beispiel 35: Dieses Beispiel beinhaltet einzelne oder alle der Merkmale aus Beispiel 34, wobei: die Schaltungen die Integrität der Lesedaten ausschließlich auf Grundlage des Vergleichs des ersten Integritätswerts mit dem zweiten Integritätswert verifizieren sollen.
  • Beispiel 36: Dieses Beispiel beinhaltet einzelne oder alle der Merkmale aus einem der Beispiele 27 bis 35, wobei: die Schaltungen ferner zum Isolieren des ersten zugewiesenen Bereichs des Hauptspeichers gegen einen zweiten zugewiesenen Bereich des Hauptspeichers konfiguriert sind; und der erste zugewiesene Bereich einer ersten Domäne der Hostvorrichtung zugeordnet ist, und der zweite zugewiesene Bereich einer zweiten Domäne der Hostvorrichtung zugeordnet ist.
  • Beispiel 37: Dieses Beispiel beinhaltet einzelne oder alle der Merkmale aus Beispiel 36, wobei die Schaltungen den ersten zugewiesenen Bereich gegen den zweiten zugewiesenen Bereich unter Verwendung bereichsbasierter Steuerungen isolieren sollen.
  • Beispiel 38: Dieses Beispiel beinhaltet einzelne oder alle der Merkmale aus Beispiel 35 oder 36, wobei die Schaltungen ferner konfiguriert sind zum: Verschlüsseln von Daten, die in den ersten zugewiesenen Bereich des Hauptspeichers geschrieben werden sollen, mit einem ersten domänenspezifischen Verschlüsselungsschlüssel, und Verschlüsseln von Daten, die in den zweiten zugewiesenen Bereich des Hauptspeichers geschrieben werden sollen, mit einem zweiten domänenspezifischen Verschlüsselungsschlüssel.
  • Beispiel 39: Dieses Beispiel beinhaltet einzelne oder alle der Merkmale aus Beispiel 27, wobei die Schaltungen ferner konfiguriert sind zum: Bewirken, dass Geheimtext der Schreibdaten in erste Datenspeicherbits in dem ersten zugewiesenen Bereich des Hauptspeichers geschrieben wird; und Bewirken, dass der erste Integritätswert in erste Metadatenbits in dem ersten zugewiesenen Bereich des Hauptspeichers geschrieben wird; wobei die ersten Metadatenbits den ersten Datenspeicherbits zugeordnet sind.
  • Wie möglicherweise anerkannt werden wird, bieten die Technologien der vorliegenden Offenbarung einen relativ „leichten“ Mechanismus, um die Verifizierung der Integrität von Speicher zu ermöglichen, der über mehrere Domänen hinweg zugewiesen ist. Da bei den hier beschriebenen Technologien die Verwendung eines Verschlüsselungsschlüssels pro Domäne genutzt wird, aber die Verwendung eines Integritätsschlüssels pro Domäne nicht erforderlich ist, wird die Komplexität einer Verwaltung von Integritätsschlüsseln pro Domäne vermieden. Darüber hinaus können während Schreiboperationen erzeugte erste Integritätswerte in Metadatenbits gespeichert werden, die Datenspeicherbits zugeordnet sind, welche die verschlüsselten Schreibdaten speichern. Infolgedessen können während Leseoperationen verschlüsselte Lesedaten und ein den verschlüsselten Daten zugeordneter erster Integritätswert gleichzeitig (oder nahezu gleichzeitig) aus einem zugewiesenen Speicherbereich als Reaktion auf einen Lesebefehl gelesen werden. Dadurch kann ein Übermaß an Speicherzugriffen verringert oder beseitigt werden, was zu einer entsprechenden Abnahme des zur Realisierung von Integritätsverifizierung erforderlichen Aufwands führt.
  • Die hierin verwendeten Begriffe und Ausdrücke werden als beschreibende und nicht als einschränkende Begriffe verwendet, und es besteht bei der Verwendung derartiger Begriffe und Ausdrücke keine Absicht, irgendwelche Äquivalente der gezeigten und beschriebenen Merkmale (oder von Teilen davon) auszuschließen, und es wird anerkannt, dass verschiedene Modifikationen innerhalb des Schutzbereichs der Ansprüche möglich sind. Demzufolge sollen die Ansprüche alle derartigen Äquivalente abdecken.

Claims (37)

  1. Verfahren zum Verifizieren der Integrität von Daten, die in Hauptspeicher einer Hostvorrichtung gespeichert sind, das umfasst, mithilfe einer Speichersteuereinheit der Hostvorrichtung: Erzeugen eines ersten Integritätswerts als Reaktion auf einen Schreibbefehl von einer ersten Domäne, wobei der Schreibbefehl erste physische Adressen eines ersten zugewiesenen Bereichs des Hauptspeichers zum Ziel hat; Erzeugen eines zweiten Integritätswerts als Reaktion auf einen Lesebefehl von der ersten Domäne, wobei der Lesebefehl Lesedaten zum Ziel hat, die in den ersten physischen Adressen gespeichert sind; und Verifizieren der Integrität der Lesedaten zumindest zum Teil durch Vergleichen des ersten Integritätswerts mit dem zweiten Integritätswert; wobei: ein Erzeugen des ersten Integritätswerts umfasst: Durchführen erster Integritätsoperationen an Klartext von Schreibdaten, die Ziel des Schreibbefehls sind, um eine erste Ausgabe zu erstellen; Durchführen zweiter Integritätsoperationen an Geheimtext der Schreibdaten, die als Reaktion auf den Schreibbefehl geschrieben werden sollen, um eine zweite Ausgabe zu erstellen; Kombinieren der ersten und zweiten Ausgabe, um den ersten Integritätswert zu erzeugen; und Schreiben des ersten Integritätswerts in den ersten zugewiesenen Bereich des Hauptspeichers.
  2. Verfahren nach Anspruch 1, wobei: die ersten Integritätsoperationen ein Durchführen einer zyklischen Redundanzprüfung (CRC) ausgehend von dem Klartext der Schreibdaten umfassen, um einen ersten CRC-Wert zu erzeugen; die zweiten Integritätsoperationen ein Erzeugen eines ersten Nachrichtenauthentifizierungscodes (MAC) aus dem Geheimtext der Schreibdaten umfassen; die erste Ausgabe der erste CRC-Wert ist, und die zweite Ausgabe der erste MAC ist.
  3. Verfahren nach Anspruch 1, wobei ein Erzeugen des zweiten Integritätswerts umfasst: Lesen von Geheimtext der Lesedaten, die Ziel des Lesebefehls sind, aus den ersten physischen Adressen; Entschlüsseln des Geheimtexts der Lesedaten, um Klartext-Lesedaten zu erlangen; Durchführen dritter Integritätsoperationen an den Klartext-Lesedaten, um eine dritte Ausgabe zu erlangen; und Durchführen vierter Integritätsoperationen an den Geheimtext-Lesedaten, um eine vierte Ausgabe zu erlangen; und Kombinieren der dritten und vierten Ausgabe, um den zweiten Integritätswert zu erzeugen.
  4. Verfahren nach Anspruch 3, wobei: die dritten Integritätsoperationen ein Durchführen einer zyklischen Redundanzprüfung (CRC) an den Klartext-Lesedaten umfassen, um einen zweiten CRC-Wert zu erzeugen; die vierten Integritätsoperationen ein Erzeugen eines zweiten Nachrichtenauthentifizierungscodes (MAC) aus den Geheimtext-Lesedaten umfassen; und die dritte Ausgabe der zweite CRC-Wert ist, und die vierte Ausgabe der zweite MAC ist.
  5. Verfahren nach Anspruch 1, wobei: ein Verifizieren der Integrität der Lesedaten erfolgreich ist, wenn der erste Integritätswert und der zweite Integritätswert gleich sind; und ein Verifizieren der Integrität der Lesedaten fehlschlägt, wenn der erste Integritätswert und der zweite Integritätswert unterschiedlich sind.
  6. Verfahren nach Anspruch 1, das ferner umfasst, mithilfe der Speichersteuereinhei t: Isolieren des ersten zugewiesenen Bereichs des Hauptspeichers gegen einen zweiten zugewiesenen Bereich des Hauptspeichers; wobei der erste zugewiesene Bereich einer ersten Domäne der Hostvorrichtung zugeordnet ist, und der zweite zugewiesene Bereich einer zweiten Domäne der Hostvorrichtung zugeordnet ist.
  7. Verfahren nach Anspruch 6, wobei die Speichersteuereinheit Folgendes soll: Isolieren des ersten zugewiesenen Bereichs gegen den zweiten zugewiesenen Bereich unter Verwendung bereichsbasierter Steuerungen; und Verschlüsseln von Daten, die in den ersten zugewiesenen Bereich des Hauptspeichers geschrieben werden sollen, mit einem ersten domänenspezifischen Verschlüsselungsschlüssel, und Verschlüsseln von Daten, die in den zweiten zugewiesenen Bereich des Hauptspeichers geschrieben werden sollen, mit einem zweiten domänenspezifischen Verschlüsselungsschlüssel.
  8. Verfahren nach Anspruch 1, das ferner umfasst, mithilfe der Speichersteuereinhei t: Bewirken, dass Geheimtext der Schreibdaten in erste Datenspeicherbits in dem ersten zugewiesenen Bereich des Hauptspeichers geschrieben wird; und Bewirken, dass der erste Integritätswert in erste Metadatenbits in dem ersten zugewiesenen Bereich des Hauptspeichers geschrieben wird; wobei die ersten Metadatenbits den ersten Datenspeicherbits zugeordnet sind.
  9. Nicht flüchtiges computerlesbares Speichermedium, das Anweisungen umfasst, die, wenn sie von einem Prozessor eines Hostsystems ausgeführt werden, die Durchführung der folgenden Operationen mithilfe einer Speichersteuereinheit einer Hostvorrichtung bewirken, die umfassen: Erzeugen eines ersten Integritätswerts als Reaktion auf einen Schreibbefehl von einer ersten Domäne, wobei der Schreibbefehl erste physische Adressen eines ersten zugewiesenen Bereichs des Hauptspeichers zum Ziel hat; Erzeugen eines zweiten Integritätswerts als Reaktion auf einen Lesebefehl von der ersten Domäne, wobei der Lesebefehl Lesedaten zum Ziel hat, die in den ersten physischen Adressen gespeichert sind; und Verifizieren der Integrität der Lesedaten zumindest zum Teil durch Vergleichen des ersten Integritätswerts mit dem zweiten Integritätswert; wobei: ein Erzeugen des ersten Integritätswerts umfasst: Durchführen erster Integritätsoperationen an Klartext von Schreibdaten, die Ziel des Schreibbefehls sind, um eine erste Ausgabe zu erstellen; Durchführen zweiter Integritätsoperationen an Geheimtext der Schreibdaten, die als Reaktion auf den Schreibbefehl geschrieben werden sollen, um eine zweite Ausgabe zu erstellen; Kombinieren der ersten und zweiten Ausgabe, um den ersten Integritätswert zu erzeugen; und Schreiben des ersten Integritätswerts in den ersten zugewiesenen Bereich des Hauptspeichers.
  10. Nicht flüchtiges computerlesbares Speichermedium nach Anspruch 9, wobei: die ersten Integritätsoperationen ein Durchführen einer zyklischen Redundanzprüfung (CRC) ausgehend von dem Klartext der Schreibdaten umfassen, um einen ersten CRC-Wert zu erzeugen; die zweiten Integritätsoperationen ein Erzeugen eines ersten Nachrichtenauthentifizierungscodes (MAC) aus dem Geheimtext der Schreibdaten umfassen; die erste Ausgabe der erste CRC-Wert ist, und die zweite Ausgabe der erste MAC ist.
  11. Nicht flüchtiges computerlesbares Speichermedium nach Anspruch 9, wobei ein Erzeugen des zweiten Integritätswerts umfasst: Lesen von Geheimtext der Lesedaten, die Ziel des Lesebefehls sind, aus den ersten physischen Adressen; Entschlüsseln des Geheimtexts der Lesedaten, um Klartext-Lesedaten zu erlangen; Durchführen dritter Integritätsoperationen an den Klartext-Lesedaten, um eine dritte Ausgabe zu erlangen; und Durchführen vierter Integritätsoperationen an den Geheimtext-Lesedaten, um eine vierte Ausgabe zu erlangen; und Kombinieren der dritten und vierten Ausgabe, um den zweiten Integritätswert zu erzeugen.
  12. Nicht flüchtiges computerlesbares Speichermedium nach Anspruch 11, wobei: die dritten Integritätsoperationen ein Durchführen einer zyklischen Redundanzprüfung (CRC) an den Klartext-Lesedaten umfassen, um einen zweiten CRC-Wert zu erzeugen; die vierten Integritätsoperationen ein Erzeugen eines zweiten Nachrichtenauthentifizierungscodes (MAC) aus den Geheimtext-Lesedaten umfassen; und die dritte Ausgabe der zweite CRC-Wert ist, und die vierte Ausgabe der zweite MAC ist.
  13. Nicht flüchtiges computerlesbares Speichermedium nach Anspruch 9, wobei die Anweisungen, wenn sie von dem Prozessor ausgeführt werden, ferner die Durchführung der folgenden Operationen mithilfe der Speichersteuereinheit bewirken, die umfassen: gleichzeitiges Lesen des ersten Integritätswerts und der Geheimtext-Lesedaten aus dem ersten zugewiesenen Bereich des Hauptspeichers.
  14. Nicht flüchtiges computerlesbares Speichermedium nach Anspruch 9, wobei: ein Verifizieren der Integrität der Lesedaten erfolgreich ist, wenn der erste Integritätswert und der zweite Integritätswert gleich sind; und ein Verifizieren der Integrität der Lesedaten fehlschlägt, wenn der erste Integritätswert und der zweite Integritätswert unterschiedlich sind.
  15. Nicht flüchtiges computerlesbares Speichermedium nach Anspruch 14, wobei: ein Verifizieren der Integrität der Lesedaten ausschließlich auf dem Vergleich des ersten Integritätswerts mit dem zweiten Integritätswert beruht.
  16. Nicht flüchtiges computerlesbares Speichermedium nach Anspruch 9, wobei die Anweisungen, wenn sie von dem Prozessor ausgeführt werden, ferner die Durchführung der folgenden Operationen mithilfe der Speichersteuereinheit zur Folge haben, die umfassen: Isolieren des ersten zugewiesenen Bereichs des Hauptspeichers gegen einen zweiten zugewiesenen Bereich des Hauptspeichers; wobei der erste zugewiesene Bereich einer ersten Domäne der Hostvorrichtung zugeordnet ist, und der zweite zugewiesene Bereich einer zweiten Domäne der Hostvorrichtung zugeordnet ist.
  17. Nicht flüchtiges computerlesbares Speichermedium nach Anspruch 9, wobei die Anweisungen, wenn sie von dem Prozessor ausgeführt werden, ferner die Durchführung der folgenden Operationen mithilfe der Speichersteuereinheit zur Folge haben, die umfassen: Bewirken, dass Geheimtext der Schreibdaten in erste Datenspeicherbits in dem ersten zugewiesenen Bereich des Hauptspeichers geschrieben wird; und Bewirken, dass der erste Integritätswert in erste Metadatenbits in dem ersten zugewiesenen Bereich des Hauptspeichers geschrieben wird; wobei die ersten Metadatenbits den ersten Datenspeicherbits zugeordnet sind.
  18. Speichersteuereinheit zum Ermöglichen einer Integritätsverifizierung von Daten, die in Hauptspeicher einer Hostvorrichtung gespeichert sind, wobei die Speichersteuereinheit Schaltungen umfasst, die konfiguriert sind zum: Erzeugen eines ersten Integritätswerts als Reaktion auf einen Schreibbefehl von einer ersten Domäne, wobei der Schreibbefehl erste physische Adressen eines ersten zugewiesenen Bereichs des Hauptspeichers zum Ziel hat; Erzeugen eines zweiten Integritätswerts als Reaktion auf einen Lesebefehl von der ersten Domäne, wobei der Lesebefehl Lesedaten zum Ziel hat, die in den ersten physischen Adressen gespeichert sind; und Verifizieren der Integrität der Lesedaten zumindest zum Teil durch Vergleichen des ersten Integritätswerts mit dem zweiten Integritätswert; wobei: die Schaltungen den ersten Integritätswert zumindest zum Teil erzeugen sollen durch: Durchführen erster Integritätsoperationen an Klartext von Schreibdaten, die Ziel des Schreibbefehls sind, um eine erste Ausgabe zu erstellen; Durchführen zweiter Integritätsoperationen an Geheimtext der Schreibdaten, die als Reaktion auf den Schreibbefehl geschrieben werden sollen, um eine zweite Ausgabe zu erstellen; und Kombinieren der ersten und zweiten Ausgabe, um den ersten Integritätswert zu erzeugen; und Schreiben des ersten Integritätswerts in den ersten zugewiesenen Bereich des Hauptspeichers.
  19. Speichersteuereinheit nach Anspruch 18, wobei: die ersten Integritätsoperationen ein Durchführen einer zyklischen Redundanzprüfung (CRC) ausgehend von dem Klartext der Schreibdaten umfassen, um einen ersten CRC-Wert zu erzeugen; die zweiten Integritätsoperationen ein Erzeugen eines ersten Nachrichtenauthentifizierungscodes (MAC) aus dem Geheimtext der Schreibdaten umfassen; die erste Ausgabe der erste CRC-Wert ist, und die zweite Ausgabe der erste MAC ist.
  20. Speichersteuereinheit nach Anspruch 18, wobei die Schaltungen den zweiten Integritätswert zumindest zum Teil erzeugen sollen durch: Lesen von Geheimtext der Lesedaten, die Ziel des Lesebefehls sind, aus den ersten physischen Adressen; Entschlüsseln des Geheimtexts der Lesedaten, um Klartext-Lesedaten zu erlangen; Durchführen dritter Integritätsoperationen an den Klartext-Lesedaten, um eine dritte Ausgabe zu erlangen; und Durchführen vierter Integritätsoperationen an den Geheimtext-Lesedaten, um eine vierte Ausgabe zu erlangen; und Kombinieren der dritten und vierten Ausgabe, um den zweiten Integritätswert zu erzeugen.
  21. Speichersteuereinheit nach Anspruch 20, wobei: die dritten Integritätsoperationen ein Durchführen einer zyklischen Redundanzprüfung (CRC) an den Klartext-Lesedaten umfassen, um einen zweiten CRC-Wert zu erzeugen; die vierten Integritätsoperationen ein Erzeugen eines zweiten Nachrichtenauthentifizierungscodes (MAC) aus den Geheimtext-Lesedaten umfassen; und die dritte Ausgabe der zweite CRC-Wert ist, und die vierte Ausgabe der zweite MAC ist.
  22. Speichersteuereinheit nach Anspruch 18, wobei: ein Verifizieren der Integrität der Lesedaten erfolgreich ist, wenn der erste Integritätswert und der zweite Integritätswert gleich sind; und ein Verifizieren der Integrität der Lesedaten fehlschlägt, wenn der erste Integritätswert und der zweite Integritätswert unterschiedlich sind.
  23. Speichersteuereinheit nach Anspruch 18, wobei: die Schaltungen ferner zum Isolieren des ersten zugewiesenen Bereichs des Hauptspeichers gegen einen zweiten zugewiesenen Bereich des Hauptspeichers konfiguriert sind, und der erste zugewiesene Bereich einer ersten Domäne der Hostvorrichtung zugeordnet ist, und der zweite zugewiesene Bereich einer zweiten Domäne der Hostvorrichtung zugeordnet ist.
  24. Speichersteuereinheit nach Anspruch 23, wobei die Schaltungen Folgendes sollen: Isolieren des ersten zugewiesenen Bereichs gegen den zweiten zugewiesenen Bereich unter Verwendung bereichsbasierter Steuerungen; und Verschlüsseln von Daten, die in den ersten zugewiesenen Bereich des Hauptspeichers geschrieben werden sollen, mit einem ersten domänenspezifischen Verschlüsselungsschlüssel, und Verschlüsseln von Daten, die in den zweiten zugewiesenen Bereich des Hauptspeichers geschrieben werden sollen, mit einem zweiten domänenspezifischen Verschlüsselungsschlüssel.
  25. Speichersteuereinheit nach Anspruch 18, wobei die Schaltungen ferner konfiguriert sind zum: Bewirken, dass Geheimtext der Schreibdaten in erste Datenspeicherbits in dem ersten zugewiesenen Bereich des Hauptspeichers geschrieben wird; und Bewirken, dass der erste Integritätswert in erste Metadatenbits in dem ersten zugewiesenen Bereich des Hauptspeichers geschrieben wird; wobei die ersten Metadatenbits den ersten Datenspeicherbits zugeordnet sind.
  26. System zum Verifizieren der Integrität von Daten, die in Hauptspeicher einer Hostvorrichtung gespeichert sind, das umfasst, mithilfe einer Speichersteuereinheit der Hostvorrichtung: Mittel zum Erzeugen eines ersten Integritätswerts als Reaktion auf einen Schreibbefehl von einer ersten Domäne, wobei der Schreibbefehl erste physische Adressen eines ersten zugewiesenen Bereichs des Hauptspeichers zum Ziel hat; Mittel zum Erzeugen eines zweiten Integritätswerts als Reaktion auf einen Lesebefehl von der ersten Domäne, wobei der Lesebefehl Lesedaten zum Ziel hat, die in den ersten physischen Adressen gespeichert sind; und Mittel zum Verifizieren der Integrität der Lesedaten zumindest zum Teil durch Vergleichen des ersten Integritätswerts mit dem zweiten Integritätswert; wobei das Mittel zum Erzeugen des ersten Integritätswerts umfasst: Mittel zum Durchführen erster Integritätsoperationen an Klartext von Schreibdaten, die Ziel des Schreibbefehls sind, um eine erste Ausgabe zu erstellen; Mittel zum Durchführen zweiter Integritätsoperationen an Geheimtext der Schreibdaten, die als Reaktion auf den Schreibbefehl geschrieben werden sollen, um eine zweite Ausgabe zu erstellen; Mittel zum Kombinieren der ersten und zweiten Ausgabe, um den ersten Integritätswert zu erzeugen; und Mittel zum Schreiben des ersten Integritätswerts in den ersten zugewiesenen Bereich des Hauptspeichers.
  27. System nach Anspruch 26, wobei das Mittel zum Durchführen der ersten Integritätsoperationen an Klartext von Schreibdaten, die Ziel des Schreibbefehls sind, um die erste Ausgabe zu erstellen, ferner umfasst: Mittel zum Durchführen einer zyklischen Redundanzprüfung (CRC) ausgehend von dem Klartext der Schreibdaten, um einen ersten CRC-Wert zu erzeugen; wobei das Mittel zum Durchführen der zweiten Integritätsoperationen ferner umfasst: Mittel zum Erzeugen eines ersten Nachrichtenauthentifizierungscodes (MAC) aus dem Geheimtext der Schreibdaten.
  28. System nach Anspruch 26, wobei das Mittel zum Erzeugen des zweiten Integritätswerts umfasst: Mittel zum Lesen von Geheimtext der Lesedaten, die Ziel des Lesebefehls sind, aus den ersten physischen Adressen; Mittel zum Entschlüsseln des Geheimtexts der Lesedaten, um Klartext-Lesedaten zu erlangen; Mittel zum Durchführen dritter Integritätsoperationen an den Klartext-Lesedaten, um eine dritte Ausgabe zu erlangen; und Mittel zum Durchführen vierter Integritätsoperationen an den Geheimtext-Lesedaten, um eine vierte Ausgabe zu erlangen; und Mittel zum Kombinieren der dritten und vierten Ausgabe, um den zweiten Integritätswert zu erzeugen.
  29. System nach Anspruch 28, wobei das Mittel zum Durchführen dritter Integritätsoperationen an den Klartext-Lesedaten, um eine dritte Ausgabe zu erlangen, ferner umfasst: Mittel zum Durchführen einer zyklischen Redundanzprüfung (CRC) an den Klartext-Lesedaten, um einen zweiten CRC-Wert zu erzeugen; und wobei das Mittel zum Durchführen vierter Integritätsoperationen an den Geheimtext-Lesedaten, um eine vierte Ausgabe zu erlangen, ferner umfasst: Mittel zum Erzeugen eines zweiten Nachrichtenauthentifizierungscodes (MAC) aus den Geheimtext-Lesedaten.
  30. System nach Anspruch 26, wobei die Mittel zum Verifizieren der Integrität der Lesedaten, zumindest zum Teil durch Vergleichen des ersten Integritätswerts mit dem zweiten Integritätswert, ferner umfassen: Mittel zum Erkennen einer erfolgreichen Datenintegrität, wenn der erste Integritätswert und der zweite Integritätswert gleich sind; und Mittel zum Erkennen einer nicht erfolgreichen Datenintegrität, wenn der erste Integritätswert und der zweite Integritätswert unterschiedlich sind.
  31. System nach Anspruch 26, das ferner umfasst: Mittel zum Isolieren des ersten zugewiesenen Bereichs des Hauptspeichers gegen einen zweiten zugewiesenen Bereich des Hauptspeichers; wobei der erste zugewiesene Bereich einer ersten Domäne der Hostvorrichtung zugeordnet ist, und der zweite zugewiesene Bereich einer zweiten Domäne der Hostvorrichtung zugeordnet ist.
  32. System nach Anspruch 31, das ferner umfasst: Mittel zum Isolieren des ersten zugewiesenen Bereichs gegen den zweiten zugewiesenen Bereich unter Verwendung bereichsbasierter Steuerungen; Mittel zum Verschlüsseln von Daten, die in den ersten zugewiesenen Bereich des Hauptspeichers geschrieben werden sollen, mit einem ersten domänenspezifischen Verschlüsselungsschlüssel, und Mittel zum Verschlüsseln von Daten, die in den zweiten zugewiesenen Bereich des Hauptspeichers geschrieben werden sollen, mit einem zweiten domänenspezifischen Verschlüsselungsschlüssel.
  33. System nach Anspruch 26, das ferner umfasst: Mittel zum Bewirken, dass Geheimtext der Schreibdaten in erste Datenspeicherbits in dem ersten zugewiesenen Bereich des Hauptspeichers geschrieben wird; und Mittel zum Bewirken, dass der erste Integritätswert in erste Metadatenbits in dem ersten zugewiesenen Bereich des Hauptspeichers geschrieben wird; wobei die ersten Metadatenbits den ersten Datenspeicherbits zugeordnet sind.
  34. System zum Verifizieren von Datenintegrität, wobei das System dafür eingerichtet ist, das Verfahren nach einem der Ansprüche 1 bis 8 durchzuführen.
  35. Chipsatz, der zum Durchführen des Verfahrens nach einem der Ansprüche 1 bis 8 eingerichtet ist.
  36. Maschinenlesbares Medium bzw. maschinenlesbare Medien, die eine Mehrzahl von Anweisungen umfassen, die, als Reaktion darauf, dass sie auf einer Datenverarbeitungsvorrichtung ausgeführt werden, die Datenverarbeitungsvorrichtung veranlassen, das Verfahren nach einem der Ansprüche 1 bis 8 durchzuführen.
  37. Vorrichtung, die zum Verifizieren von Datenintegrität konfiguriert ist, wobei die Vorrichtung dafür eingerichtet ist, das Verfahren nach einem der Ansprüche 1 bis 8 durchzuführen.
DE102019110327.4A 2018-06-29 2019-04-18 Technologien zum verifizieren von speicherintegrität über mehrere speicherbereiche hinweg Pending DE102019110327A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/023,683 2018-06-29
US16/023,683 US10922439B2 (en) 2018-06-29 2018-06-29 Technologies for verifying memory integrity across multiple memory regions

Publications (1)

Publication Number Publication Date
DE102019110327A1 true DE102019110327A1 (de) 2020-01-02

Family

ID=65231136

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102019110327.4A Pending DE102019110327A1 (de) 2018-06-29 2019-04-18 Technologien zum verifizieren von speicherintegrität über mehrere speicherbereiche hinweg

Country Status (3)

Country Link
US (1) US10922439B2 (de)
CN (1) CN110658986A (de)
DE (1) DE102019110327A1 (de)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10452446B1 (en) * 2017-06-07 2019-10-22 Rockwell Collins, Inc. High integrity multi-core processing
US11212318B2 (en) * 2019-04-05 2021-12-28 Cisco Technology, Inc. Verifying service advertisements using attestation-based methods
US11575504B2 (en) 2019-06-29 2023-02-07 Intel Corporation Cryptographic computing engine for memory load and store units of a microarchitecture pipeline
US11580234B2 (en) 2019-06-29 2023-02-14 Intel Corporation Implicit integrity for cryptographic computing
US11250165B2 (en) 2019-12-20 2022-02-15 Intel Corporation Binding of cryptographic operations to context or speculative execution restrictions
US20200257827A1 (en) * 2019-06-29 2020-08-13 Intel Corporation Memory write for ownership access in a core
US11403234B2 (en) 2019-06-29 2022-08-02 Intel Corporation Cryptographic computing using encrypted base addresses and used in multi-tenant environments
KR20210103228A (ko) * 2020-02-13 2021-08-23 에스케이하이닉스 주식회사 메모리 시스템 및 이의 동작 방법
EP3913512A1 (de) * 2020-05-21 2021-11-24 BAE SYSTEMS plc Computervorrichtung auf einem chip
US20230168915A1 (en) * 2020-05-21 2023-06-01 Bae Systems Plc On-die computer apparatus
US20210089388A1 (en) * 2020-07-14 2021-03-25 Intel Corporation System, Apparatus And Method For Providing Protection Against Silent Data Corruption In A Link
CN112379840B (zh) * 2020-11-17 2023-02-24 海光信息技术股份有限公司 终端的数据保护方法、装置和终端
US11669625B2 (en) 2020-12-26 2023-06-06 Intel Corporation Data type based cryptographic computing
US11580035B2 (en) 2020-12-26 2023-02-14 Intel Corporation Fine-grained stack protection using cryptographic computing
CN113177214A (zh) * 2021-04-29 2021-07-27 百度在线网络技术(北京)有限公司 图像发布、审核方法、相关装置及计算机程序产品
CN114564724A (zh) * 2021-12-30 2022-05-31 海光信息技术股份有限公司 虚拟机内存完整性保护方法、装置、电子设备及存储介质
CN114564754A (zh) * 2021-12-30 2022-05-31 海光信息技术股份有限公司 一种dram内存完整性保护方法、装置、电子设备及存储介质

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6959384B1 (en) * 1999-12-14 2005-10-25 Intertrust Technologies Corporation Systems and methods for authenticating and protecting the integrity of data streams and other data
US7305084B2 (en) * 2002-07-24 2007-12-04 Qualcomm Incorporated Fast encryption and authentication for data processing systems
US6950517B2 (en) * 2002-07-24 2005-09-27 Qualcomm, Inc. Efficient encryption and authentication for data processing systems
US7836387B1 (en) * 2005-04-29 2010-11-16 Oracle America, Inc. System and method for protecting data across protection domain boundaries
US20080044012A1 (en) * 2006-08-15 2008-02-21 Nokia Corporation Reducing Security Protocol Overhead In Low Data Rate Applications Over A Wireless Link
GB2443244A (en) * 2006-10-05 2008-04-30 Hewlett Packard Development Co Authenticated Encryption Method and Apparatus
JP5749257B2 (ja) * 2009-06-26 2015-07-15 トラステッド ロジック データ検証方法
US20120047580A1 (en) * 2010-08-18 2012-02-23 Smith Ned M Method and apparatus for enforcing a mandatory security policy on an operating system (os) independent anti-virus (av) scanner
US9164924B2 (en) * 2011-09-13 2015-10-20 Facebook, Inc. Software cryptoprocessor
US9213653B2 (en) * 2013-12-05 2015-12-15 Intel Corporation Memory integrity
US9882720B1 (en) * 2014-06-27 2018-01-30 Amazon Technologies, Inc. Data loss prevention with key usage limit enforcement
JP6484519B2 (ja) * 2015-07-15 2019-03-13 日立オートモティブシステムズ株式会社 ゲートウェイ装置およびその制御方法
US10382410B2 (en) * 2016-01-12 2019-08-13 Advanced Micro Devices, Inc. Memory operation encryption
US20180165224A1 (en) * 2016-12-12 2018-06-14 Ati Technologies Ulc Secure encrypted virtualization
US10949546B2 (en) * 2017-08-02 2021-03-16 Samsung Electronics Co., Ltd. Security devices, electronic devices and methods of operating electronic devices
US10733313B2 (en) * 2018-02-09 2020-08-04 Arm Limited Counter integrity tree for memory security
FR3076151B1 (fr) * 2017-12-22 2020-11-06 Oberthur Technologies Procede de determination d’une somme d’integrite, programme d’ordinateur et entite electronique associes
US11520913B2 (en) * 2018-05-11 2022-12-06 International Business Machines Corporation Secure execution support for A.I. systems (and other heterogeneous systems)
US10846437B2 (en) * 2018-06-28 2020-11-24 Intel Corporation Compressed integrity check counters in memory

Also Published As

Publication number Publication date
CN110658986A (zh) 2020-01-07
US10922439B2 (en) 2021-02-16
US20190042796A1 (en) 2019-02-07

Similar Documents

Publication Publication Date Title
DE102019110327A1 (de) Technologien zum verifizieren von speicherintegrität über mehrere speicherbereiche hinweg
DE102018115491A1 (de) System, vorrichtung und verfahren zur seitengranularen, softwaregesteuerten speicherverschlüsselung mit mehreren schlüsseln
DE112012003988B4 (de) Schützen des Arbeitsspeichers eines virtuellen Gasts
DE102008006759B4 (de) Prozessor-Anordnung und Verfahren zum Betreiben der Prozessor-Anordnung ohne Verringerung der Gesamtsicherheit
DE102019109088A1 (de) Schutz von schlüsseln und sensitiven daten gegen angriffe in einer mikroprozessorarchitektur
DE19782169C2 (de) Kryptographisch geschütztes Seitenwechsel-Subsystem
DE102011082184A1 (de) Sicherheitsschutz für Speicherinhalt von Prozessorhauptspeicher
DE102018123710A1 (de) Kryptografische Speicherinhaberschaftstabelle für eine sichere öffentliche Cloud
DE102018101307A1 (de) Techniken für SGX-Enklaven-Fernauthentifizierung
DE112016002285T5 (de) Adressvalidierung unter verwendung von signaturen
EP3259698B1 (de) Autonom bootendes system mit einem sicherheitsmodul
DE102019126125A1 (de) System, vorrichtung und verfahren zum integritätsschutz von kunden-arbeitslasten in einer mehrkunden-datenverarbeitungsumgebung
DE102019110309A1 (de) Integritätsschutz mit geringem overhead und hoher verfügbarkeit für vertrauensdomänen
DE102018129420A1 (de) Indirektionsverzeichnis für den kryptografischen speicherschutz
DE102016002549A1 (de) Verfahren zur mehrschichtig geschützten Sicherung von (Anmelde-) Daten insbesondere Passwörtern
DE112010005842T5 (de) Verwürfeln einer Adresse und Verschlüsseln von Schreibdaten zum Speichern einer Speichervorrichtung
DE102020125599A1 (de) Vertrauenswürdige lokale speicherverwaltung in einer virtualisierten gpu
DE112010004885T5 (de) Bereitstellen von Integritätsüberprüfung und -bestätigung in einer verborgenen Ausführungsumgebung
DE102018115683A1 (de) Domänenübergreifende sicherheit in kryptographisch partionierter cloud
DE102018109397A1 (de) Techniken für sicherheitschip-speicher für vertrauenswürdige ausführungsumgebungen
DE102018125747A1 (de) Unterstützung für eine höhere anzahl von gleichzeitigenschlüsseln in einer kryptografie-engine mit mehrerenschlüsseln
DE112008003931T5 (de) Systeme und Verfahren für Datensicherheit
DE102020208234A1 (de) Sichere Adressübersetzungsdienste unter Verwendung von Nachrichtenauthentifizierungscodes und Invalidierungsverfolgung
DE202014011089U1 (de) System zum Kopieren von Dateien zwischen verschlüsselten und unverschlüsselten Datenspeichereinrichtungen
DE102010054614A1 (de) Eindringen in eine gesicherte EDV-Umgebung unter Verwendung mehrerer authentifizierter Codemodule