DE112017004995T5 - Verfahren und Vorrichtung zum gemeinsamen Nutzen eines Sicherheitsmetadaten-Speicherplatzes - Google Patents

Verfahren und Vorrichtung zum gemeinsamen Nutzen eines Sicherheitsmetadaten-Speicherplatzes Download PDF

Info

Publication number
DE112017004995T5
DE112017004995T5 DE112017004995.4T DE112017004995T DE112017004995T5 DE 112017004995 T5 DE112017004995 T5 DE 112017004995T5 DE 112017004995 T DE112017004995 T DE 112017004995T DE 112017004995 T5 DE112017004995 T5 DE 112017004995T5
Authority
DE
Germany
Prior art keywords
memory
encryption
security metadata
converting
type
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
DE112017004995.4T
Other languages
English (en)
Inventor
David M. Durham
Siddhartha Chhabra
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 DE112017004995T5 publication Critical patent/DE112017004995T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/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/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • 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

Landscapes

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

Abstract

Das hier offenbarte Verfahren und die Vorrichtung zum gemeinsamen Nutzen eines Sicherheitsmetadaten-Speicherplatzes schlägt eine Technik vor, um zu ermöglichen, dass Metadaten durch zwei verschiedene Verschlüsselungstechniken gemeinsam genutzt werden. Ein Abschnitt eines Speichers, der unter Verwendung eines ersten Typs von Verschlüsselung verschlüsselt ist und damit assoziierte erste Sicherheitsmetadaten aufweist, wird in einen Abschnitt des Speichers gewandelt, der unter Verwendung eines zweiten Typs von Verschlüsselung verschlüsselt ist und damit assoziierte zweite Sicherheitsmetadaten aufweist. Mindestens ein Abschnitt der ersten Sicherheitsmetadaten nutzt einen Speicherplatz gemeinsam mit mindestens einem Abschnitt der zweiten Sicherheitsmetadaten für einen selben Speicherabschnitt.

Description

  • TECHNISCHES GEBIET
  • Die vorliegende Offenbarung betrifft einen Mechanismus zum Ermöglichen eines gemeinsamen Nutzens von Metadaten von einer Speicherverschlüsselungs-Engine (Memory Encryption Engine, MEE) und einer Gesamtspeicherverschlüsselung mit Integrität (Total Memory Encryption with integrity, TMEi), um einen Integritätsschutz für TMEi ohne Speicher-Overhead bereitzustellen.
  • HINTERGRUND
  • Ein Schutz eines Speichers in Rechnersystemen ist von größter Bedeutung. Der Speicher kann verschlüsselt werden, um die Vertraulichkeit, Integrität und Widergabe von Speicherdaten zu schützen. Abschnitte des Speichers können unter Verwendung verschiedener Arten von Verschlüsselung verschlüsselt werden. Jede Art von Verschlüsselung umfasst ihre eigenen entsprechenden Sicherheitsmetadaten. Zum Beispiel kann ein Abschnitt eines Speichers, wie z.B. eine Speicherseite, unter Verwendung eines ersten Typs von Verschlüsselung verschlüsselt werden und erste Sicherheitsmetadaten aufweisen, die damit assoziiert und im Speicher gespeichert sind. Derselbe Abschnitt des Speichers kann unter Verwendung eines zweiten Typs von Verschlüsselung verschlüsselt werden, mit dem ein zweiter Typ von Sicherheitsmetadaten assoziiert und im Speicher gespeichert ist. Die zum Bereitstellen dieses Schutzes erforderliche Speichermenge in Bezug auf Sicherheitsmetadaten führt dazu, dass viel Speicher durch den Schutzmechanismus beansprucht wird.
  • Als ein Beispiel ist ein Verschlüsselungsmodus als eine Gesamtspeicherverschlüsselung mit Integrität (Total Memory Encryption with integrity, TMEi) an sich bekannt, die zum Ziel hat, die Vertraulichkeit und Integrität eines Gesamtplattformspeichers zu schützen. TMEi findet auch beim Schutz vor einer Softwaredaten-Korruption Anwendung. Damit TMEi Integritätsschutz bereitstellen kann, ist es erforderlich, dass Sicherheitsmetadaten im Speicher gespeichert werden.
  • Als ein Beispiel ist ein anderer Verschlüsselungsmodus als Software Guard eXtensions (SGX) bekannt und verwendet eine Speicherverschlüsselungs-Engine (Memory Encryption Engine, MEE), um einen festen Bereich des Speichers zu schützen. Obwohl andere Typen von Verschlüsselung verwendet werden können, dient das folgende Beispiel Erläuterungszwecken. Wenn SGX und TMEi gleichzeitig auf der Plattform vorhanden sind, und unter Annahme keiner Optimierungen zum Reduzieren von Speicher-Overheads für MEE, reservieren die derzeitigen Plattformen einen großen Teil des Systemspeichers für Sicherheitsmetadaten, ein bedeutender Overhead für die Sicherheit.
  • Figurenliste
  • Merkmale und Vorteile des beanspruchten Gegenstandes werden aus der nachstehenden ausführlichen Beschreibung von damit übereinstimmenden Ausführungsformen offensichtlich sein, wobei die Beschreibung unter Bezugnahme auf die begleitenden Zeichnungen betrachtet werden soll. Es zeigen:
    • 1 ein Blockdiagramm von Metadaten-Overheads mit dem hier offenbarten Verfahren und der Vorrichtung zum gemeinsamen Nutzen eines Sicherheitsmetadaten-Speicherplatzes im Einklang mit mehreren Ausführungsformen der vorliegenden Offenbarung;
    • 2 ein Ablaufdiagramm eines Verfahrens zum gemeinsamen Nutzen eines Sicherheitsmetadaten- Speicherplatzes;
    • 3 ein Ablaufdiagramm eines anderen Verfahrens zum gemeinsamen Nutzen eines S icherheitsmetadaten- Speicherplatzes;
    • 4 ein Diagramm eines Speicherlayouts im Einklang mit mehreren Ausführungsformen der vorliegenden Offenbarung;
    • 5 ein Diagramm eines Speicherlayouts, das durch eine Seitenwandlung in EPC beeinflusst ist, im Einklang mit mehreren Ausführungsformen der vorliegenden Offenbarung; und
    • 6 ein Diagramm eines Speicherlayouts, das durch eine Seitenwandlung in Nicht-EPC beeinflusst ist, im Einklang mit mehreren Ausführungsformen der vorliegenden Offenbarung.
    • 7 ein Blockdiagramm eines Verarbeitungsmoduls gemäß verschiedenen Ausführungsformen der vorliegenden Offenbarung.
    • 8 eine Beispielkonfiguration für eine Vorrichtung gemäß verschiedenen Ausführungsformen der vorliegenden Offenbarung.
  • Obwohl die nachstehende ausführliche Beschreibung unter Bezugnahme auf Ausführungsbeispiele verfährt, sind viele Alternativen, Modifikationen und Abwandlungen davon für einen Fachmann offensichtlich.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Die vorliegende Offenbarung richtet sich auf ein Verfahren und/oder eine Vorrichtung zum gemeinsamen Nutzen eines Sicherheitsmetadaten-Speicherplatzes. In einer Ausführungsform ist ein Verfahren konfiguriert, um Befehle zum Wandeln eines Abschnitts eines Speichers von einem Zustand, in dem er unter Verwendung eines ersten Typs von Verschlüsselung verschlüsselt ist und damit assoziierte erste Sicherheitsmetadaten aufweist, in einen Abschnitt des Speichers, der unter Verwendung eines zweiten Typs von Verschlüsselung verschlüsselt ist und einen zweiten Typ von damit assoziierten Sicherheitsmetadaten aufweist, auszuführen. Das Verfahren ist ferner ausgelegt, wobei mindestens ein Abschnitt der ersten Sicherheitsmetadaten einen Speicherplatz mit mindestens einem Abschnitt der zweiten Sicherheitsmetadaten für eine selbe Speicherseite gemeinsam nutzt.
  • In einer anderen Ausführungsform ist ein Rechnersystem ausgelegt, um Befehle zum Wandeln eines Abschnitts eines Speichers, der unter Verwendung eines ersten Typs von Verschlüsselung verschlüsselt ist und damit assoziierte erste Sicherheitsmetadaten aufweist, in einen Abschnitt des Speichers, der unter Verwendung eines zweiten Typs von Verschlüsselung verschlüsselt ist und einen zweiten Typ von damit assoziierten Sicherheitsmetadaten aufweist, auszuführen. Das Rechnersystem ist ferner ausgelegt, um Befehle auszuführen, wobei mindestens ein Abschnitt der ersten Sicherheitsmetadaten einen Speicherplatz mit mindestens einem Abschnitt der zweiten Sicherheitsmetadaten für eine selbe Speicherseite gemeinsam nutzt.
  • In einer anderen Ausführungsform weist eine computerlesbare Speichervorrichtung darauf gespeicherte Befehle auf, die bei einer Ausführung durch einen oder mehrere Prozessoren zu den folgenden Operationen führen. Die Befehle veranlassen eine Operation des Wandelns eines Abschnitts des Speichers, der unter Verwendung eines ersten Typs von Verschlüsselung verschlüsselt ist und damit assoziierte erste Sicherheitsmetadaten aufweist, in einen Abschnitt des Speichers, der unter Verwendung eines zweiten Typs von Verschlüsselung verschlüsselt ist und einen zweiten Typ von damit assoziierten Sicherheitsmetadaten aufweist. Die computerlesbare Speichervorrichtung umfasst außerdem Befehle, um den einen oder die mehreren Prozessoren zum Ausführen von Befehlen zu veranlassen, wobei mindestens ein Abschnitt der ersten Sicherheitsmetadaten einen Speicherplatz mit mindestens einem Abschnitt der zweiten Sicherheitsmetadaten für eine selbe Speicherseite gemeinsam nutzt.
  • Wie hier verwendet, bezieht sich „SGX“ auf Software Guard eXtenstions (SGX) und wird verwendet, um Schutz im Kern (Core) bereitzustellen, um SGX-Enklaven (Abschnitte einer Anwendung, die durch SGX geschützt werden) zu isolieren, und um Schutz im Uncore bereitzustellen, um die Vertraulichkeit, Integrität und Wiedergabe von Enklavendaten, falls im Plattformspeicher vorhanden, zu schützen. SGX schützt einen festen Bereich des Speichers, der als Enklaven-Seitencache (Enclave Page Cache, EPC) bezeichnet wird, der einen dedizierten SGX-Speicher darstellt, der dem Betriebssystem (OS) für einen Normalgebrauch entzogen wurde. Ein Enklavendatenschutz im Systemspeicher wird durch die Speicherverschlüsselungs-Engine (Memory Encryption Engine, MEE) bereitgestellt, die Enklavendaten in EPC beim Bewegen vom Prozessorchip verschlüsselt und in Bezug auf die Integrität schützt. Die Sicherheitsmetadaten, die durch die MEE im Speicher zum Bereitstellen von Sicherheit an Enklavendaten beibehalten werden, werden beim Booten reserviert und dem Betriebssystem entzogen.
  • Wie hier verwendet, bezieht sich „MEE“ auf eine Verschlüsselungstechnik, die eine Counter-Modus-Verschlüsselung (Counter-Mode Encryption) und einen Counter-basierten Nachrichtenauthentifizierungscode (Message Authentication Code, MAC) verwendet, die einen Teil der im Speicher gespeicherten Sicherheitsmetadaten bilden. Das Nationale Institut für Standards und Technologie (National Institute of Standards and Technology, NIST) spezifiziert zwei Typen von Countern. Der erste Typ eines Counters ist ein Counter, der aus einer Nonce und einem Counter gebildet ist. Die Nonce ist zufällig und die restlichen Bytes sind Counter-Bytes (die inkrementiert werden). Der zweite Typ eines Counters ist ein Counterblock, bei dem alle Bytes Counter-Bytes sind und inkrementiert werden können, wenn Träger generiert werden.
  • Wie hier verwendet, bezieht sich „XEX“ auf eine Xor-Verschlüsselt-Xor-Verschlüsselungstechnik, die einen Blockchiffren-Betriebsmodus verwendet. Wie hier verwendet, bezieht sich „XTS“ auf einen XEX-basierten Tweaked-Codebook-Modus mit Ciphertext-Stealing unter Verwendung einer Chiffrenmodus-Verschlüsselungstechnik.
  • Wie hier verwendet, bezieht sich „TMEi“ auf eine Verschlüsselungstechnik, die eine XTS-basierte Verschlüsselung und einen mit XTS kompatiblen MAC-Algorithmus verwendet. Die MACs werden im Speicher gespeichert. Die Gesamtspeicherverschlüsselung mit Integrität (Total Memory Encryption with integrity, TMEi) stellt ein anderes Sicherheitsmerkmal dar, das einen Schutz der Vertraulichkeit und Integrität des Gesamtplattformspeichers anvisiert. TMEi findet auch beim Schutz vor einer Softwaredaten-Korruption Anwendung. Damit TMEi Integritätsschutz bereitstellen kann, ist es erforderlich, dass Sicherheitsmetadaten im Speicher gespeichert werden. TMEi erfordert 6,25 % des gesamten Speichers, der zum Speichern von Sicherheitsmetadaten reserviert ist, wenn ein 32-Bit-MAC verwendet wird. Die Speicher-Overheads variieren auf der Grundlage der verwendeten MAC-Größe und damit variiert auch die Sicherheitsstärke. In diesem Beispiel wird ein 56b-MAC als ein Beispiel für eine Übereinstimmungsgröße verwendet, um der Größe und Stärke des MEE-MAC zu entsprechen. In diesem Fall betragen die Speicher-Overheads für MAC für TMEi stattdessen 12,5 %.
  • In Zukunft werden flexible EPC- und TMEi-Schutzvarianten nebeneinander vorhanden sein und es ist wünschenswert, dass die mit diesen Technologien assoziierten System-Overheads minimiert werden.
  • Wie hier verwendet, bezieht sich „flexibler EPC“ auf Befehle, die zum Steuern der Wandlung von Seiten zwischen regulär und sicher verwendet werden, und er ermöglicht, dass nach Bedarf der gesamte Speicher als SGX-Speicher verwendet wird.
  • Wie hier verwendet, kann eine „Schaltung“ zum Beispiel einzeln oder in einer beliebigen Kombination umfassen: festverdrahtete Schaltungen, programmierbare Schaltungen, wie z.B. Rechnerprozessoren, die einen oder mehrere einzelne Befehlsverarbeitungskerne umfassen, Zustandsmaschinenschaltungen und/oder Firmware, die Befehle, welche von programmierbaren Schaltungen ausgeführt werden, speichern. Die Logik kann gemeinsam oder einzeln als eine Schaltung ausgeführt sein, die einen Teil eines größeren Systems bildet, zum Beispiel eine integrierte Schaltung (IC), eine anwendungsspezifische integrierte Schaltung (ASIC), ein System On-Chip (SoC), Desktop-Computer, Laptop-Computer, Tablet-Computer, Server, Smartphones usw.
  • Die nachstehende Beschreibung verwendet lediglich zu Erläuterungszwecken zwei Beispieltypen von Verschlüsselung (TMEi und MEE). Es versteht sich, dass andere Typen von Verschlüsselung verwendet werden können und dass die Offenbarung nicht notwendigerweise auf lediglich die als Beispiele verwendeten Typen von Verschlüsselung beschränkt ist.
  • 1 zeigt einen Sicherheitsmetadaten-Overhead in einem Speicher. In 1 ist ein Speicher 100 dargestellt. Sicherheitsmetadaten umfassen in diesem Fall MACs 102 eines ersten und eines zweiten Typs von Verschlüsselung und Counters 104 des zweiten Typs von Verschlüsselung. Zum Beispiel kann der erste Typ von Verschlüsselung TMEi sein und die MACs des ersten Typs von Verschlüsselung sind TMEi-MACs. Außerdem ist als ein Beispiel der zweite Typ von Verschlüsselung MEE und die Sicherheitsmetadaten umfassen MEE-MACs und MEE-Counters.
  • Ablaufdiagramme der hier offenbarten Verfahren sind in 1 und 2 dargestellt. Die rechteckigen Elemente sind hier als „Verarbeitungsblöcke“ gekennzeichnet und repräsentieren Computersoftware-Befehle oder Gruppen von Befehlen. Alternativ repräsentieren die Verarbeitungsblöcke Schritte, die durch funktionsweise äquivalente Schaltungen durchgeführt werden, wie z.B. eine Digitalsignalprozessorschaltung oder eine anwendungsspezifische integrierte Schaltungen (ASIC). Die Ablaufdiagramme zeigen nicht die Syntax einer konkreten Programmiersprache. Vielmehr zeigen die Ablaufdiagramme die Funktionsinformation, die ein Durchschnittsfachmann benötigt, um Schaltungen zu erstellen oder Computersoftware zu generieren, um die gemäß der vorliegenden Erfindung erforderliche Verarbeitung durchzuführen. Es ist zu beachten, dass viele routinemäßige Programmelemente wie z.B. eine Initialisierung von Schleifen und Variablen und die Verwendung temporärer Variablen, nicht gezeigt werden. Ein Durchschnittsfachmann wird verstehen, dass die konkrete beschriebene Schrittfolge lediglich veranschaulichend ist und variiert werden kann, ohne vom Erfindungsgedanken der Erfindung abzuweichen, sofern hier nicht anders angegeben. Sofern nicht anders angegeben, sind daher die nachstehend beschriebenen Schritte ungeordnet, was bedeutet, dass die Schritte, falls möglich, in einer beliebigen geeigneten oder gewünschten Reihenfolge durchgeführt werden können.
  • Unter Bezugnahme auf 2 ist ein Ablaufdiagramm für ein Verfahren zum gemeinsamen Nutzen eines Sicherheitsmetadaten-Speicherplatzes 200 dargestellt. Das Verfahren 200 beginnt mit Verarbeitungsblock 202, der ein Wandeln eines Abschnitts eines Speichers offenbart, der unter Verwendung eines ersten Typs von Verschlüsselung verschlüsselt ist und damit assoziierte erste Sicherheitsmetadaten aufweist, in einen Abschnitt des Speichers, der unter Verwendung eines zweiten Typs von Verschlüsselung verschlüsselt ist und damit assoziierte zweite Sicherheitsmetadaten aufweist. Wie bei Verarbeitungsblock 204 dargestellt, umfasst in einer bestimmten Ausführungsform der erste Typ von Verschlüsselung TMEi-Verschlüsselung (Gesamtspeicherverschlüsselung mit Integrität, Memory Encryption with integrity, TMEi) und wobei die ersten Sicherheitsmetadaten TMEi-Nachrichtenauthentifizierungscodes (Message Authentication Codes, TMEi-MACs) umfassen. Wie bei Verarbeitungsblock 206 dargestellt, umfasst in einem bestimmten Beispiel der zweite Typ von Verschlüsselung MEE-Verschlüsselung (Speicherverschlüsselung-Engine, MEE) und wobei die zweiten Sicherheitsmetadaten MEE-Counters und MEE-MACs (Message Authentication, Codes Nachrichtenauthentifizierungscodes) umfassen.
  • Der Verarbeitungsblock 208 besagt, wobei das Wandeln eines Abschnitts eines Speichers ein Wandeln einer Speicherseite umfasst. In einigen Ausführungsformen ist es effizienter, mit Speicherseiten umzugehen. Eine Speicherseite ist ein zusammenhängender Speicherblock mit fester Länge.
  • Der Verarbeitungsblock 210 trägt vor, dass das Wandeln eines Abschnitts des Speichers ein Verwenden einer Adressenabbildung umfasst, die eine Datenzeilenadresse auf eine Adresse aller Sicherheitsmetadatenzeilen abbildet, die abgerufen werden müssen, um eine Integrität einer Datenzeile zu verifizieren.
  • Der Verarbeitungsblock 212 offenbart ein gemeinsames Nutzen eines Speicherplatzes für mindestens einen Abschnitt der ersten Sicherheitsmetadaten und mindestens einen Abschnitt der zweiten Sicherheitsmetadaten für einen selben Abschnitt des Speichers. Wie ferner im Verarbeitungsblock 214 dargestellt, umfasst in einem bestimmten Beispiel das gemeinsame Nutzen von mindestens einem Abschnitt der ersten Sicherheitsmetadaten und mindestens einem Abschnitt der zweiten Sicherheitsmetadaten für einen selben Abschnitt des Speichers ein gemeinsames Nutzen des Speicherplatzes durch TMEi-MACs und MEE-MACs.
  • Der Verarbeitungsblock 216 besagt, wobei bei einem Systemrücksetzen der gesamte Speicher zu einem Speicher gewandelt wird, der unter Verwendung des ersten Typs von Verschlüsselung verschlüsselt ist und den ersten Typ von damit assoziierten Sicherheitsmetadaten aufweist.
  • 3 offenbart ein anderes Verfahren zum gemeinsamen Nutzen eines Sicherheitsmetadaten-Speicherplatzes 300.
  • Das Verfahren 300 beginnt mit Verarbeitungsblock 302, der ein Wandeln eines Abschnitts eines Speichers offenbart, der unter Verwendung eines ersten Typs von Verschlüsselung verschlüsselt ist und damit assoziierte erste Sicherheitsmetadaten aufweist, in einen Abschnitt des Speichers, der unter Verwendung eines zweiten Typs von Verschlüsselung verschlüsselt ist und der damit assoziierte zweite Sicherheitsmetadaten aufweist. Wie bei Verarbeitungsblock 304 dargestellt, umfasst in einer bestimmten Ausführungsform der erste Typ von Verschlüsselung MEE-Verschlüsselung (Speicherverschlüsselung-Engine, MEE) und wobei die ersten Sicherheitsmetadaten MEE-Counters und MEE-MACs (Message Authentication Codes, Nachrichtenauthentifizierungscodes) umfassen. Wie bei Verarbeitungsblock 306 dargestellt, umfasst in einer bestimmten Ausführungsform der zweite Typ von Verschlüsselung TMEi-Verschlüsselung (Total Memory Encryption with integrity, Gesamtspeicherverschlüsselung mit Integrität) und wobei die ersten Sicherheitsmetadaten TMEi-MACs (Message Authentication Codes, Nachrichtenauthentifizierungscodes) umfassen.
  • Der Verarbeitungsblock 308 besagt, wobei das Wandeln eines Abschnitts des Speichers ein Wandeln einer Speicherseite umfasst. Der Verarbeitungsblock 310 trägt vor, dass das Wandeln eines Abschnitts des Speichers ein Verwenden einer Adressenabbildung umfasst, die eine Datenzeilenadresse auf eine Adresse aller Sicherheitsmetadatenzeilen abbildet, die abgerufen werden müssen, um eine Integrität einer Datenzeile zu verifizieren.
  • Der Verarbeitungsblock 312 offenbart ein gemeinsames Nutzen eines Speicherplatzes für mindestens einen Abschnitt der ersten Sicherheitsmetadaten und mindestens einen Abschnitt der zweiten Sicherheitsmetadaten für einen selben Abschnitt des Speichers. Wie ferner im Verarbeitungsblock 314 dargestellt, umfasst in einem bestimmten Beispiel das gemeinsame Nutzen von mindestens einem Abschnitt der ersten Sicherheitsmetadaten und mindestens einem Abschnitt der zweiten Sicherheitsmetadaten für einen selben Abschnitt des Speichers ein gemeinsames Nutzen des Speicherplatzes durch TMEi-MACs und MEE-MACs.
  • Der Verarbeitungsblock 316 besagt, wobei bei einem Systemrücksetzen der gesamte Speicher in einen Speicher gewandelt wird, der unter Verwendung des zweiten Typs von Verschlüsselung verschlüsselt ist und den zweiten Typ von damit assoziierten Sicherheitsmetadaten aufweist.
  • Die Schutzvariationen, die durch MEE oder TMEi bereitgestellt werden, arbeiten, indem die Datenzeile zusammen mit den mit der Datenzeile assoziierten Sicherheitsmetadaten geladen wird und die aus dem Speicher geladenen Sicherheitsmetadaten verifiziert werden, um die Integrität der Zeile zu verifizieren, wenn sie sich im Speicher befand. Das System startet mit dem gesamten Speicher als regulärem Speicher, der naturgemäß durch TMEi geschützt wird. Während der Lebensdauer des Systems werden Seiten in EPC für eine Enklaven-Verwendung unter Verwendung eines Befehls, der mit flexiblem EPC bereitgestellt ist, EMKEPC, gewandelt. Gleichermaßen werden Seiten zurück zum regulären Stand unter Verwendung des flexiblen EPC-Befehls EMKNONEPC gewandelt. Bei einer Ausführung von EMKEPC kommt die EPC-Seite in den Schutz der MEE und bei einer Ausführung von EMKNONEPC wird die Seite aus dem MEE-Schutz bewegt und wird stattdessen durch die TMEi-Engine geschützt.
  • Zu einem beliebigen Zeitpunkt erhält eine Speicherseite den Schutz entweder der MEE- oder der TMEi-Engine, jedoch nie von beiden. Die vorliegende Offenbarung betrifft ein Verfahren und/oder eine Vorrichtung zum gemeinsamen Nutzen eines Metadatenbereichs für MEE und TMEi. Insbesondere wird der MAC-Bereich durch MEE und TMEi gemeinsam genutzt. Bei einem flexiblen EPC werden beim Wandeln einer Seite in einen regulären Speicher (MEE in TMEi) die mit der Seite assoziierten Counter zurückgesetzt, um beim nächsten Mal, wenn die Seite wieder in EPC (TMEi in MEE) gewandelt wird und durch eine Enklave gelesen wird, Integritätsfehler auf der Seite zu verhindern (MEE verwendet einen Rücksetz-Counter als eine Anzeige zum Überspringen einer Integritätsverifizierung). Um das gemeinsame Nutzen von Metadaten zu ermöglichen, initialisiert der Befehl des flexiblen EPC zum Wandeln in eine Nicht-EPC-Seite, zusätzlich zum Rücksetzen der mit den Datenzeilen auf einer Seite assoziierten Counter, auch die mit der Seite assoziierten MAC-Zeilen. Dies verhindert jegliche Falsche-Integritäts-Fehler, nachdem eine Seite in Nicht-EPC gewandelt wurde und in den Schutz von TMEi kommt. Die vorgeschlagene Erfindung ermöglicht einen TMEi-Schutz ohne Speicher-Overhead, was TMEi für OSVs viel attraktiver macht.
  • MEE erzeugt einen Baum von Countern und MAC-Werten über dem geschützten Speicher. Dieser Baum stellt einen Integritäts- und Wiedergabeschutz für SGX-Daten bereit, wenn sie sich im Speicher befinden. Die Verifizierung fährt dort, indem sie den Baumzweig auf eine geladene Datenzeile hochwandert, bis eine Wurzel (auf dem Chip gespeichert) erreicht ist (oder es gibt einen Treffer für eine Metadaten-Cache-Zeile im internen Metadaten-Cache). Der MEE-Baum ist selbst initialisierend. Beim Systembooten werden die Counter der höchsten Ebene im Baum auf null initialisiert, bevor jeglicher Zugriff auf MEE durchgelassen wird. Eine beliebige Datenzeile im geschützten Bereich steigt beim ersten Zugriff den Baum hoch und beim Vorfinden einer Counter-Zeile in einem initialisierten Zustand wird die Authentifizierung übersprungen und stattdessen werden die Zwischen-Metadatenzeilen vor dem Counter der obersten Ebene im Baum dem MEE-Cache in einem speziellen Initialisierungsmodus zugeführt. Von hier an erhöht ein Schreiben in die Datenzeile die Counter entlang des Baumzweigs bis zur Wurzel und ein Lesen verifiziert die Counter unter Verwendung von MACs, die in die Counter-Cache-Zeilen eingebettet sind. Bei der untersten Ebene im Baum ist jede Datenzeile mit einem MAC und einem Counter-Wert assoziiert, der auch als die Version der Cache-Zeile bekannt ist. Es liegt ein festes Abbilden von der Datenzeile auf die Baumknoten vor, das innerhalb der MEE implementiert ist, um die Knoten bei Bedarf zu laden und zu verifizieren. Ein MAC weist eine 56b-Länge auf, wodurch 8-Datenzeilen-MACs in einer MAC-Zeile gespeichert werden können.
  • 4 zeigt ein MEE-Metadaten-Abbilden 400. Das MEE-Abbilden zeigt die Datenzeilen und ihre Beziehung mit Sicherheitsmetadatenzeilen im Speicher. Das Metadatenabbilden zeigt Daten 402 und die Sicherheitsmetadaten 404. Die Sicherheitsmetadaten umfassen den MEE-MAC 406 und die MEE-Counter 106. Das Abbilden auf höhere Ebenen in den Bäumen (L0 bis LN) ist der Einfachheit halber in der Figur nicht dargestellt.
  • TMEi verwendet einen von Daten abhängigen Modus der Verschlüsselung (z.B. XTS) und weist gleichermaßen keine mit einer Cache-Zeile assoziierten Counter auf. Jede durch TMEi geschützte Cache-Zeile weist einen damit assoziierten MAC auf. Um dieselbe Sicherheitsstärke für MAC wie für die MEE aufrechtzuerhalten, wird die MAC-Länge bei 56b für die erste Ausführungsform der Erfindung gehalten.
  • Ähnlich der MEE braucht TMEi ebenfalls eine Initialisierung der MAC-Werte, um sicherzustellen, dass ein Lesen einer Datenzeile, die davor nie geschrieben wurde, nicht zu einem Integritätsfehler führt. Beim Systemrücksetzen kann der MAC-Bereich auf mehrere Weisen initialisiert werden. Als ein Beispiel kann das BIOS die MAC-Zeilen mit einem Null-MAC-Wert, der als der Anfangswert für MACs betrachtet wird, auf Null setzen. Beim Abrufen einer MAC-Zeile mit einem Nullwert wird die MAC-Verifizierung übersprungen.
  • Zu einem beliebigen Zeitpunkt wird eine Speicherseite entweder unter Verwendung der MEE (d.h. eine EPC-Seite) oder unter Verwendung von TMEi geschützt, und daher müssen die Sicherheitsmetadaten, insbesondere die MACs, nicht getrennt gespeichert werden. Da jedoch beim Wandeln einer Seite von EPC in Nicht-EPC die Seiteninhalte und entsprechende MACs nicht mehr gültig sind und wegen der Tatsache, dass TMEi und MEE verschiedene kryptografische Algorithmen verwenden, berücksichtigt auch die Seitenwandlung nicht nur das Rücksetzen der Counters, was durch die MEE als ein Hinweis für einen nicht initialisierten Speicher verwendet wird, sondern auch ein Rücksetzen der MACs, um sicherzustellen, dass die TMEi-Engine die Zeile als nicht initialisiert behandelt. Beim Wandeln von EPC in Nicht-EPC werden die TMEi-MACs auf null initialisiert. Aus einem Sicherheitsstandpunkt kann dies ermöglichen, dass eine nicht vertrauenswürdige Software die Seitenwandlung kontrolliert und dann beliebige Daten in die Anwendung einspeist. Dies ist möglich, da das Rücksetzen von MACs die TMEi-Engine dazu veranlasst, die MAC-Verifizierung zu überspringen. Um sich gegen solche Angriffe zu verteidigen, wird die TMEi-Engine beim Abrufen eines MAC im initialisierten Zustand alle Nullen zurückgeben, unabhängig davon, was vom Speicher zurückgegeben wird. Dies stellt sicher, dass ein Angreifer gewünschte Daten nicht durch Kontrolle von Seitenwandlungen in eine Anwendung einspeisen kann.
  • 4 zeigt das Speicherlayout des Speichers bei einem Zurücksetzen. Der gesamte Datenbereich wird durch TMEi geschützt und kein SGX-Speicher ist auf der Plattform vorhanden. Das Speicherlayout 400 zeigt Daten 402 und die assoziierten Sicherheitsmetadaten 404. Der Sicherheitsmetadatenbereich 404 umfasst zwei Bereiche: einen MAC-Bereich 406, der durch MEE und TMEi gemeinsam genutzt wird, und Counter 408 (Version und L0-LN), die ausschließlich durch die MEE verwendet werden. Im Speicherlayout 400 entsprechen, da alle Datenzeilen durch TMEi geschützt werden, die MAC-Zeilen TMEi-MAC-Metadaten und die Counter werden nicht verwendet.
  • 5 zeigt das aktualisierte Speicherlayout nach einem Wandeln einer durch TMEi geschützten Seite in eine durch MEE geschützte Seite für eine SGX-/Enklavenverwendung. Nach der Wandlung kommen die Datenzeilen 502, die der Seite, welche die Zeilen 504 umfasst, gehören, in den Schutz der MEE und die entsprechenden Metadatenzeilen werden aktualisiert. Die MAC-Zeilen für die Seite 506 werden nun durch die MEE verwendet und die Versionszeile 508 für die Seite wird nun ebenfalls verwendet, um Version-Counter für die Datenzeilen auf der Seite zu speichern. Es ist zu beachten, dass in 5 die Nullstellung der Versionszeile lediglich zur Klarheit geschieht, da dieser Schritt zum Zeitpunkt des Wandelns einer Seite in den regulären Zustand ausgeführt wird. Für ein System nach einem Rücksetzen zeigen die auf dem Chip gespeicherten Counter der obersten Ebene einen nicht initiierten Speicher an. Das in 5 dargestellte Szenario veranschaulicht ein System, in dem eine Seite für eine Enklavenverwendung verwendet wurde, in den regulären Zustand gewandelt und erneut in EPC für eine Enklavenverwednung gewandelt wurde. In diesem Fall weisen die auf dem Chip befindlichen Counter gültige Werte auf, die durch vorherige Enklaven-Schreibvorgänge in die Seite aktualisiert wurden, und ein Unterlassen einer Nullstellung der Version-Counter führt zu Integritätsfehlern.
  • 6 zeigt das aktualisierte Layout und Vorgänge beim Wandeln der Seite in den regulären Zustand durch das OS. Für die Seitenwandlung in Nicht-EPC unter Verwendung einer flexiblen EPC-ISA wird die in 5 gewandelte Seite zurück in den regulären Zustand unter Verwendung der flexiblen EPC-ISA, EMKNONEPC, gewandelt. In diesem Fall sind, wie vorstehend beschrieben, die Daten als 602 dargestellt und umfassen einen Bereich 606. Zusätzlich zur Nullstellung der Version-Counter 610, die mit der Seite assoziiert sind, (erforderlich, wenn die Seite in eine EPC-Seite zu einem späteren Zeitpunkt gewandelt wird), werden die MAC-Werte 608 ebenfalls auf Null gestellt, um der TMEi-Engine anzuzeigen, dass diese Datenzeilen nicht initialisiert sind und sie eine Integritätsprüfung dieser Zeilen überspringen kann, wodurch falsche Integritätsfehler vermieden werden.
  • Wie in 7 dargestellt, kann eine Verarbeitungsschaltung 702 zum Beispiel mindestens einen Verarbeitungskern 706 (z.B. Kern 706A, Kern 706B...Kern 706n, gemeinsam „Kerne 706A...n“), einen Kern-Cache 708, einen Speichercontroller 710 und eine MEE 712 umfassen. Kerne 706...n können verschiedene Datenverarbeitungsoperationen durchführen, die Daten verwenden können, welche im Kern-Cache 708 gespeichert sind. Wie hier bezeichnet, kann ein „Cache“ einen lokalen flüchtigen Speicher zum Halten von Daten umfassen, die während einer Datenverarbeitungsoperation verwendet werden können. In mindestens einer Ausführungsform kann der Kern-Cache 708 mehrere getrennte Speicherbereiche umfassen, die in Ebenen (Levels) organisiert sind, wobei die äußerste Ebene (von der z.B. Daten an eine TMEi-/MEE-Schaltung 714 gesendet und von ihr empfangen werden können) der Last-Level-Cache (LLC) ist.
  • Der Kern-Cache 708 hilft dabei, eine Datenverarbeitung zu beschleunigen, indem vermieden wird, dass Daten, die während einer Datenverarbeitungsoperation mehr als einmal verwendet werden können, wiederholt aus der Speicherschaltung 704 abgerufen werden. Der Speichercontroller 710 kann steuern, wie die Verarbeitungsschaltung 702 auf die Speicherschaltung 704 zugreifen kann, einschließlich vom Lesen von Daten aus der Speicherschaltung 704 und Schreiben von Daten in die Speicherschaltung 704.
  • Die MEE 712 kann zum Beispiel umfassen: eine TMEi-/MEE-Schaltung 714, um Speicherschutzoperationen durchzuführen, einen MEE-Ln-Counter-Speicher 716, um Counter-Daten der höchsten Ebene zu halten, und einen MEE-Cache 718, um Sicherheitsmetadaten zumindest während Speicherschutzoperationen zu halten. Im Allgemeinen können Sicherheitsmetadaten Daten umfassen, die zur Unterstützung von Speicherschutzoperationen verwendet werden. Zum Beispiel kann im Einklang mit der vorliegenden Offenbarung der Kern 706A Datenverarbeitungsoperationen durchführen, die Daten erfordern, welche durch ein Schutzsystem, wie z.B. SGX, gesichert sind. Geschützte Daten, wie z.B. eine verschlüsselte Datenzeile 720A, eine verschlüsselte Datenzeile 720B, eine verschlüsselte Datenzeile 720C und eine verschlüsselte Datenzeile 720D (gemeinsam „verschlüsselte Datenzeilen 720A...D“) im Speichermodul 704 können durch die TMEi-/MEE-Logik 714 abgerufen und entschlüsselt werden, bevor sie an den Kern 706A bereitgestellt werden. Obwohl lediglich vier verschlüsselte Datenzeilen 520A...D, die VER- und MAC-Daten in einer einzelnen Datenzeile 728 entsprechen, dargestellt sind, kann die tatsächliche Anzahl von verschlüsselten Datenzeilen 720A...D im Speichermodul 704 von einer Vielfalt von Faktoren abhängen, wie zum Beispiel der Größe des MEE-geschützten Bereichs im Speichermodul 704. In mindestens einem Implementierungsbeispiel kann jede Datenzeile 64B (Bytes) von Daten umfassen, die in einem geschützten Bereich des Speichermoduls 704, der 128 MB (Megabytes) umfasst, gespeichert sein können. Gleichermaßen können durch den Kern 706A generierte Daten, die sensibel, vertraulich usw. sein können, an die TMEi-/MEE-Logik 714 zur Verschlüsselung bereitgestellt werden, bevor sie im Speichermodul 704 gespeichert werden. Auf diese Weise kann verhindert werden, dass ein Angreifer, der Daten überwacht, die zwischen dem Verarbeitungsmodul 702 und dem Speichermodul 704 ausgetauscht werden, den Inhalt bestimmter Daten, die sensibel, vertraulich usw. sein können, bestimmt.
  • 8 zeigt eine Beispielausgestaltung einer Vorrichtung 800', die gemäß von mindestens einer Ausführungsform der vorliegenden Offenbarung verwendet werden kann. Die Aufnahme eines Apostrophs nach einem Elementnummer (z.B. 800') kann in der vorliegenden Offenbarung anzeigen, dass ein Ausführungsbeispiel des bestimmten Elements veranschaulicht wird. Zum Beispiel kann die Vorrichtung 800' in der Lage sein, eine beliebige oder alle der in 7 offenbarten Aktivitäten durchzuführen. Jedoch ist die Vorrichtung 800' hier lediglich als ein Beispiel einer Vorrichtung dargestellt, die in Ausführungsformen verwendet werden kann, welche mit der vorliegenden Offenbarung im Einklang stehen, und ist nicht als eine Beschränkung der verschiedenen Ausführungsformen auf eine bestimmte Weise der Implementierung gedacht.
  • Die Vorrichtung 800' kann zum Beispiel eine Systemschaltung 804 umfassen, um den Betrieb der Vorrichtung zu verwalten. Das Systemmodul 800' kann zum Beispiel eine Verarbeitungsschaltung 814', eine Speicherschaltung 824', eine Versorgungsschaltung 826, eine Benutzerschnittstellenschaltung 806 und eine Kommunikationsschnittstellenschaltung 808 umfassen.
  • Die Vorrichtung 800' kann ferner eine Kommunikationsschaltung 802 umfassen. Obwohl die Kommunikationsschaltung 802 derart dargestellt ist, dass sie von der Systemschaltung 804 getrennt ist, ist die in 8 gezeigte Beispielkonfiguration lediglich zum Zweck der Erläuterung bereitgestellt. Ein Teil oder die gesamte mit der Kommunikationsschaltung 802 assoziierte Funktionalität kann auch in der Systemschaltung 804 aufgenommen sein.
  • In der Vorrichtung 800' kann eine Verarbeitungsschaltung 814' einen oder mehrere Prozessoren, die in getrennten Komponenten angeordnet sind, oder alternativ einen oder mehrere Kerne 806A...n in einer einzelnen Komponente (z.B. in einer System-on-Chip-(Soc)-Konfiguration) zusammen mit einer prozessorbezogenen Unterstützungsschaltung (z.B. Überbrückungsschnittstellen usw.) umfassen. Wie in 7 dargestellt, kann die Verarbeitungsschaltung 814' mindestens Kerne 706A...n, einen Kern-Cache 708, einen Speichercontroller 710 und eine MEE 712 umfassen.
  • Die Verarbeitungsschaltung 814' kann ausgelegt werden, um verschiedene Befehle in der Vorrichtung 800' auszuführen. Befehle können einen Programmcode umfassen, der ausgelegt ist, um die Verarbeitungsschaltung 814' dazu zu veranlassen, Aktivitäten, die Lesen von Daten, Schreiben von Daten, Verarbeiten von Daten, Formulieren von Daten, Wandeln von Daten, Transformieren von Daten usw. betreffen, durchzuführen. Informationen (z.B. Befehle, Daten usw.) können in der Speicherschaltung 824' gespeichert werden. Die Speicherschaltung 824' kann einen Direktzugriffspeicher (RAM) und/oder einen Festwertspeicher (ROM) in einer festen oder entfernbaren Ausführung umfassen. Das RAM kann einen flüchtigen Speicher umfassen, der ausgelegt ist, um Informationen während des Betriebs der Vorrichtung 800' zu halten, wie zum Beispiel statisches RAM (SRAM) oder dynamisches RAM (DRAM). Das ROM kann Folgendes umfassen: nichtflüchtige (NV) Speichermodule, die auf der Grundlage von BIOS, UEFI usw. ausgelegt sind, um Befehle bereitzustellen, wenn die Vorrichtung 800' aktiviert ist, programmierbare Speicher, wie z.B. elektronische programmierbare ROMs (EPROMS), Flash usw. Andere feste/entfernbare Speicher können Folgendes umfassen, sind jedoch nicht darauf beschränkt: Magnetspeicher, wie z.B. Disketten, Festplatten usw., elektronische Speicher, wie z.B. Festkörper-Flash-Speicher (z.B. eingebettete Multimedia-Karte (eMMC) usw.), Wechselspeicherkarten oder -sticks, (z.B. eine Mikrospeichervorrichtung (uSD), einen USB usw.), optische Speicher, wie z.B. Compact-Disk-basiertes ROM (CD-ROM), Digital Video Disks (DVD), Blu-Ray-Disks usw. Wie in 7 dargestellt, kann die Speicherschaltung 704 mindestens verschlüsselte Datenzeilen 720A...D und Sicherheitsmetadaten (z.B. MEE-/TMEi-MAC-Daten 724 und MEE-Counter 726) umfassen.
  • Die Versorgungsschaltung 826 kann interne Leistungsquellen (z.B. eine Batterie, eine Brennstoffzelle usw.) und/oder externe Leistungsquellen (z.B. einen elektrochemischen oder Solargenerator, ein Stromnetz, eine externe Brennstoffzelle usw.) und entsprechende Schaltungen umfassen, die ausgelegt sind, um die Vorrichtung 500' mit zum Betrieb nötigen Strom zu versorgen. Die Benutzerschnittstellenschaltung 806 kann Hardware und/oder Software umfassen, um Benutzern die Interaktion mit der Vorrichtung 800' zu ermöglichen, wie z.B. verschiedene Eingabemechanismen (z.B. Mikrofone, Schalter, Knöpfe, Drehknöpfe, Tastaturen, Lautsprecher, berührungsempfindliche Oberflächen, einen oder mehrere Sensoren, die zum Erfassen von Bildern und/oder zum Erfassen von Nähe, Entfernung, Bewegung, Gesten, Ausrichtung, biometrischen Daten ausgelegt sind usw.) und verschiedene Ausgabemechanismen (z.B. Lautsprecher, Anzeigen, Licht-/blinkende Anzeigen, elektromechanische Komponenten für Vibration, Bewegung usw.). Die Hardware in der Benutzerschnittstellenschaltung 806 kann innerhalb der Vorrichtung 800' aufgenommen sein und/oder kann mit der Vorrichtung 800' über ein verdrahtetes oder drahtloses Kommunikationsmedium gekoppelt sein. Die Benutzerschnittstellenschaltung 806 kann unter bestimmten Bedingungen fakultativ sein, wie zum Beispiel einer Situation, in der die Vorrichtung 800' ein Server (z.B. ein Rack-Server, ein Blade-Server usw.) ist, der keine Benutzerschnittstellenschaltung 806 umfasst und sich stattdessen auf eine andere Vorrichtung (z.B. ein Verwaltungsterminal) für eine Benutzerschnittstellenfunktionalität stützt.
  • Die Schnittstellenschaltung 808 kann ausgelegt sein, um das Paket-Routing und andere Steuerfunktionen für die Kommunikationsschaltung 802 zu verwalten, die Ressourcen umfassen kann, welche zur Unterstützung drahtgebundener und/oder drahtloser Kommunikationen konfiguriert sind. In einigen Fällen kann die Vorrichtung 800' mehr als eine Kommunikationsschaltung 802 umfassen (z.B. einschließlich separater physischer Schnittstellenschaltungen für verdrahtete Protokolle und/oder drahtlose Funkgeräte), die durch eine zentralisierte Kommunikationsschnittstellenschaltung 806 verwaltet werden. Drahtgebundene Kommunikationen können serielle und parallele drahtgebundene Medien umfassen, wie zum Beispiel Ethernet, USB, Firewire, Thunderbolt, Digital Video Interface (DVI), High-Definition Multimedia Interface (HDMI) usw. Drahtlose Kommunikationen können zum Beispiel drahtlose Medien in unmittelbarer Nähe (z.B. Hochfrequenz (RF), wie z.B. basierend auf den Standards für HF-Identifikation (RFID) oder Nahfeldkommunikationen (Near Field Communications, NFC), Infrarot (IR) usw.), drahtlose Medien mit kurzer Reichweite (z.B. Bluetooth, WFAN, Wi-Fi usw.), drahtlose Medien mit langer Reichweite (z.B. zellulare Weitbereichsfunkkommunikationstechnologie, satellitengestützte Kommunikationen usw.), elektronische Kommunikationen über Schallwellen usw. umfassen. In einer Ausführungsform kann Kommunikationsschnittstellenschaltung 808 konfiguriert sein, um zu verhindern, dass drahtlose Kommunikationen, die in der Kommunikationsschaltung 608 aktiv sind, sich gegenseitig stören. Beim Durchführen dieser Funktion kann die Kommunikationsschnittstellenschaltung 808 Aktivitäten für die Kommunikationsschaltung 802 zum Beispiel auf der Grundlage der relativen Priorität von Nachrichten, die auf eine Übertragung warten, planen. Obwohl die in 8 dargestellte Ausführungsform die Kommunikationsschnittstellenschaltung 808 derart darstellt, dass sie von der Kommunikationsschaltung 802 getrennt ist, ist es auch möglich, dass die Funktionalität der Kommunikationsschnittstellenschaltung 808 und der Kommunikationsschicht 802 in derselben Schaltung aufgenommen ist.
  • Die vorstehende Beschreibung zeigte, wie die vorliegende Offenbarung verwendet werden kann, damit der MAC-Metadaten-Bereich gemeinsam durch MEE und TMEi genutzt wird, ohne Integritätsfehler zu verursachen. Die vorliegende Offenbarung führt zu keinen Speicher-Overheads für TMEi, indem sie einfach auf dem Rücken des für MEE-Metadaten reservierten Speichers getragen wird.
  • Es bestehen zusätzliche Optimierungen, um die Speicher-Overheads von MEE-Metadaten zu reduzieren. Eine Optimierung betrifft die Reduktion der MAC-/Counter-Größe. Mit dieser Optimierung wird die Größe von MAC und Countern reduziert, um den Gesamtspeicher, der für die Metadaten benötigt wird, zu verringern, während die Sicherheitseigenschaften aufrechterhalten bleiben. Bei dieser Optimierung arbeitet die vorliegende Offenbarung unverändert unter Verwendung von MACs derselben Größe wie durch die MEE verwendet, um dieselbe kryptografische Stärke zu erzielen wie SGX.
  • Eine andere Optimierung betrifft kryptografische Cache-Zeilen. Bei dieser Optimierung werden mehrere Datenzeilen mit einem einzelnen MAC und Counter-Wert assoziiert, was den gesamten Metadaten-Overhead, der von der Anzahl von Zeilen abhängt, auf denen Metadaten gemeinsam genutzt werden, effizient reduziert. Wenn diese Optimierung implementiert ist, kann die vorliegende Offenbarung auf eine von zwei Weisen wirken.
  • Eine erste Weise besteht darin, dieselbe Metadaten-Granularität für TMEi zu verwenden. Dies bedeutet im Grunde, dass ein MAC mit mehreren Zeilen assoziiert wird, auch wenn Daten TMEi-geschützt werden. Diese Option kann Auswirkungen auf die Leistungsfähigkeit dahingehend aufweisen, dass nun für jede Datenzeile, die durch den Prozessor angefordert wird, möglicherweise mehrere Zeilen geladen werden müssen, um den mit der angeforderten Zeile assoziierten MAC zu verifizieren.
  • Eine zweite Weise besteht darin, den MAC-Bereich zu verwenden, der MEE zugewiesen ist, und einen von MEE getrennten, kleineren Metadatenbereich zuzuweisen. Bei dieser Option verwendet die TMEi-Engine den MAC-Platz, der der MEE zugewiesen ist, sie benötigt aber einen zusätzlichen dedizierten Platz für die MACs für die restlichen Zeilen. Als ein Beispiel werden bei einer Granularität von 2 für diese Optimierung 2 System-Cache-Zeilen mit einem MAC-Wert assoziiert, und gleichermaßen stellt der MAC-Speicher die Hälfte von dem dar, was benötigt wird, wenn ein MAC-Wert mit jeder Datenzeile assoziiert wäre. In diesem Fall verwendet die Hälfte des Speichers, die durch TMEi geschützt wird, den der MEE zugewiesenen Bereich für MACs und die verbleibende Hälfte verwendet einen dedizierten Speicher für TMEi. Dieser dedizierte Speicher kann durch das BIOS zugewiesen und in der TMEi-Engine durch das Bios programmiert werden. Diese Option vermeidet die Notwendigkeit mehrerer Zeilenladungen für Nicht-SGX-Datenzeilen, ist aber mit dem Nachteil des zusätzlichen Systemspeichers für TMEi verbunden. Auch in diesem Fall kann sie jedoch die Speicher-Overheads, die durch TMEi erfordert werden, auf 50 % dessen reduzieren, was ohne die Erfindung erforderlich wäre.
  • Das hier offenbarte Verfahren ermöglicht ein gemeinsames Nutzen von Metadaten durch einen ersten und einen zweiten Typ von Verschlüsselung. Diese Technik basiert auf der Tatsache, dass zu einem beliebigen Zeitpunkt eine Speicherseite entweder durch einen ersten Typ von Verschlüsselung oder einen zweiten Typ von Verschlüsselung geschützt werden kann. Infolgedessen sind die für die Seite erforderlichen Metadaten entweder für MEE oder für TMEi, jedoch nie für beide vorgesehen.
  • Die folgenden Beispiele beziehen sich auf weitere Ausführungsformen. Die nachstehenden Beispiele der vorliegenden Offenbarung können ein Gegenstandmaterial, wie z.B. eine Vorrichtung, ein Verfahren, mindestens ein maschinenlesbares Medium zum Speichern von Befehlen, die bei einer Ausführung eine Maschine dazu veranlassen, Vorgänge auf der Grundlage des Verfahrens durchzuführen, eine Einrichtung zum Durchführen von Vorgängen auf der Grundlage des Verfahrens und/oder ein rekonfigurierbares Repeater-System, wie nachstehend bereitgestellt, umfassen.
  • Gemäß Beispiel 1 wird ein Rechnersystem bereitgestellt. Das Rechnersystem kann einen Prozessor, einen Speicher, der mit dem Prozessor in Kommunikation steht, und eine im Speicher gespeicherte Anwendung umfassen. Die Anwendung veranlasst den Prozessor dazu, die Operation des Wandelns eines Abschnitts des Speichers, der unter Verwendung eines ersten Typs von Verschlüsselung verschlüsselt ist und damit assoziierte erste Sicherheitsmetadaten aufweist, in den Abschnitt des Speichers, der unter Verwendung eines zweiten Typs von Verschlüsselung verschlüsselt ist und damit assoziierte zweite Sicherheitsmetadaten aufweist, auszuführen; und wobei mindestens ein Abschnitt der ersten Sicherheitsmetadaten einen Speicherplatz mit mindestens einem Abschnitt der zweiten Sicherheitsmetadaten für einen selben Abschnitt des Speichers gemeinsam nutzt.
  • Beispiel 2 kann die Elemente nach Beispiel 1 umfassen, wobei der Abschnitt des Speichers, der unter Verwendung eines ersten Typs von Verschlüsselung verschlüsselt ist, einen Abschnitt des Speichers umfasst, der unter Verwendung von TMEi-Verschlüsselung (Total Memory Encryption with integrity) verschlüsselt ist.
  • Beispiel 3 kann die Elemente nach Beispiel 1 und Beispiel 2 umfassen, wobei die ersten Sicherheitsmetadaten TMEi-MACs (Message Authentication Codes, Nachrichtenauthentifizierungscodes) umfassen.
  • Beispiel 4 kann die Elemente nach Beispiel 1 umfassen, wobei das Wandeln eines Abschnitts des Speichers unter Verwendung eines zweiten Typs von Verschlüsselung ein Verschlüsseln eines Abschnitts des Speichers unter Verwendung einer MEE-Verschlüsselung (Memory Encryption Engine) umfasst.
  • Beispiel 5 kann die Elemente nach Beispiel 1 und Beispiel 4 umfassen, wobei das Wandeln eines Abschnitts des Speichers unter Verwendung eines zweiten Typs von Verschlüsselung ein Verschlüsseln eines Abschnitts des Speichers umfasst, wobei die zweiten Sicherheitsmetadaten MEE-Counter und MEE-MACs (Message Authentication Codes, Nachrichtenauthentifizierungscodes) umfassen.
  • Beispiel 6 kann die Elemente nach Beispiel 1 umfassen, wobei der Abschnitt des Speichers, der unter Verwendung eines ersten Typs von Verschlüsselung verschlüsselt ist, einen Abschnitt des Speichers umfasst, der unter Verwendung von MEE-Verschlüsselung (Memory Encryption Engine) verschlüsselt ist.
  • Beispiel 7 kann die Elemente nach Beispiel 1 und Beispiel 6 umfassen, wobei die ersten Sicherheitsmetadaten MEE-Counter und MEE-MACs (Message Authentication Codes, Nachrichtenauthentifizierungscodes) umfassen.
  • Beispiel 8 kann die Elemente nach Beispiel 1 umfassen, wobei das Wandeln eines Abschnitts des Speichers unter Verwendung eines zweiten Typs von Verschlüsselung ein Verschlüsseln eines Abschnitts des Speichers unter Verwendung von TMEi-Verschlüsselung (Total Memory Encryption with integrity) umfasst.
  • Beispiel 9 kann die Elemente nach Beispiel 1 und Beispiel 8 umfassen, wobei das Wandeln eines Abschnitts des Speichers unter Verwendung eines zweiten Typs von Verschlüsselung ein Verschlüsseln eines Abschnitts des Speichers umfasst, wobei die zweiten Sicherheitsmetadaten TMEi-MACs (Message Authentication Codes, Nachrichtenauthentifizierungscodes) umfassen.
  • Beispiel 10 kann die Elemente nach Beispiel 1 umfassen, wobei das Wandeln eines Abschnitts des Speichers ein Wandeln einer Speicherseite umfasst.
  • Beispiel 11 kann die Elemente nach Beispiel 1 umfassen, wobei das Wandeln eines Abschnitts des Speichers ein Verwenden einer Adressenabbildung umfasst.
  • Beispiel 12 kann die Elemente nach Beispiel 1 und Beispiel 11 umfassen, wobei das Adressenabbilden eine Datenzeilenadresse auf eine Adresse aller Sicherheitsmetadatenzeilen abbildet, die abgerufen werden müssen, um eine Integrität einer Datenzeile zu verifizieren.
  • Beispiel 13 kann die Elemente nach Beispiel 1 umfassen, wobei bei einem Systemrücksetzen der gesamte Speicher in einen Speicher gewandelt wird, der unter Verwendung des ersten Typs von Verschlüsselung verschlüsselt ist.
  • Beispiel 14 kann die Elemente nach Beispiel 1 und Beispiel 13 umfassen, wobei bei einem Systemrücksetzen der gesamte Speicher in einen Speicher gewandelt wird, der unter Verwendung des ersten Typs von Verschlüsselung verschlüsselt ist und den ersten Typ von damit assoziierten Sicherheitsmetadaten aufweist.
  • Beispiel 15 kann die Elemente von Beispiel 1 und Beispiel 3 umfassen, wobei mindestens ein Abschnitt der ersten Sicherheitsmetadaten einen Speicherplatz gemeinsam mit mindestens einem Abschnitt der zweiten Sicherheitsmetadaten für einen selben Abschnitt des Speichers nutzt, ein gemeinsames Nutzen des Speicherplatzes durch TMEi-MACs und MEE-MACs umfasst.
  • Beispiel 16 kann die Elemente von Beispiel 1 und Beispiel 5 umfassen, wobei mindestens ein Abschnitt der ersten Sicherheitsmetadaten einen Speicherplatz gemeinsam mit mindestens einem Abschnitt der zweiten Sicherheitsmetadaten für einen selben Abschnitt des Speichers nutzt, ein gemeinsames Nutzen des Speicherplatzes durch TMEi-MACs und MEE-MACs umfasst.
  • Gemäß Beispiel 17 wird ein Verfahren zum gemeinsamen Nutzen eines Sicherheitsmetadaten-Speicherplatzes bereitgestellt. Das Verfahren kann ein Ausführen eines Befehls zum Wandeln eines Abschnitts des Speichers umfassen, der unter Verwendung eines ersten Typs von Verschlüsselung verschlüsselt ist und damit assoziierte erste Sicherheitsmetadaten aufweist, in den Abschnitt des Speichers, der unter Verwendung eines zweiten Typs von Verschlüsselung verschlüsselt ist und damit assoziierte zweite Sicherheitsmetadaten aufweist; und wobei mindestens ein Abschnitt der ersten Sicherheitsmetadaten einen Speicherplatz mit mindestens einem Abschnitt der zweiten Sicherheitsmetadaten für einen selben Abschnitt des Speichers gemeinsam nutzt.
  • Beispiel 18 kann die Elemente nach Beispiel 17 umfassen, wobei der Abschnitt des Speichers, der unter Verwendung eines ersten Typs von Verschlüsselung verschlüsselt ist, einen Abschnitt des Speichers umfasst, der unter Verwendung von TMEi-Verschlüsselung (Total Memory Encryption with integrity) verschlüsselt ist.
  • Beispiel 19 kann die Elemente nach Beispiel 17 und Beispiel 18 umfassen, wobei die ersten Sicherheitsmetadaten TMEi-MACs (Message Authentication Codes, Nachrichtenauthentifizierungscodes) umfassen.
  • Beispiel 20 kann die Elemente nach Beispiel 17 umfassen, wobei das Wandeln eines Abschnitts des Speichers unter Verwendung eines zweiten Typs von Verschlüsselung ein Verschlüsseln eines Abschnitts des Speichers unter Verwendung einer MEE-Verschlüsselung (Memory Encryption Engine) umfasst.
  • Beispiel 21 kann die Elemente nach Beispiel 17 und Beispiel 20 umfassen, wobei das Wandeln eines Abschnitts des Speichers unter Verwendung eines zweiten Typs von Verschlüsselung ein Verschlüsseln eines Abschnitts des Speichers umfasst, wobei die zweiten Sicherheitsmetadaten MEE-Counter und MEE-MACs (Message Authentication Codes, Nachrichtenauthentifizierungscodes) umfassen.
  • Beispiel 22 kann die Elemente nach Beispiel 17 umfassen, wobei der Abschnitt des Speichers, der unter Verwendung eines ersten Typs von Verschlüsselung verschlüsselt ist, einen Abschnitt des Speichers umfasst, der unter Verwendung von MEE-Verschlüsselung (Memory Encryption Engine) verschlüsselt ist.
  • Beispiel 23 kann die Elemente nach Beispiel 17 und Beispiel 22 umfassen, wobei die ersten Sicherheitsmetadaten MEE-Counter und MEE- MACs (Message Authentication Codes, Nachrichtenauthentifizierungscodes) umfassen.
  • Beispiel 24 kann die Elemente nach Beispiel 17 umfassen, wobei das Wandeln eines Abschnitts des Speichers unter Verwendung eines zweiten Typs von Verschlüsselung ein Verschlüsseln eines Abschnitts des Speichers unter Verwendung von TMEi-Verschlüsselung (Total Memory Encryption with integrity) umfasst.
  • Beispiel 25 kann die Elemente nach Beispiel 17 und Beispiel 24 umfassen, wobei das Wandeln eines Abschnitts des Speichers unter Verwendung eines zweiten Typs von Verschlüsselung ein Verschlüsseln eines Abschnitts des Speichers umfasst, wobei die zweiten Sicherheitsmetadaten TMEi-MACs (Message Authentication Codes, Nachrichtenauthentifizierungscodes) umfassen.
  • Beispiel 26 kann die Elemente nach Beispiel 17 umfassen, wobei das Wandeln eines Abschnitts des Speichers ein Wandeln einer Speicherseite umfasst.
  • Beispiel 27 kann die Elemente nach Beispiel 17 umfassen, wobei das Wandeln eines Abschnitts des Speichers ein Verwenden einer Adressenabbildung umfasst.
  • Beispiel 28 kann die Elemente von Beispiel 17 und Beispiel 27 umfassen, wobei das Adressenabbilden eine Datenzeilenadresse auf eine Adresse aller Sicherheitsmetadatenzeilen abbildet, die abgerufen werden müssen, um eine Integrität einer Datenzeile zu verifizieren.
  • Beispiel 29 kann die Elemente nach Beispiel 17 umfassen, wobei bei einem Systemrücksetzen der gesamte Speicher in einen Speicher gewandelt wird, der unter Verwendung des ersten Typs von Verschlüsselung verschlüsselt ist.
  • Beispiel 30 kann die Elemente nach Beispiel 17 und Beispiel 29 umfassen, wobei bei einem Systemrücksetzen der gesamte Speicher in einen Speicher gewandelt wird, der unter Verwendung des ersten Typs von Verschlüsselung verschlüsselt ist und den ersten Typ von damit assoziierten Sicherheitsmetadaten aufweist.
  • Beispiel 31 kann die Elemente von Beispiel 17 und Beispiel 19 umfassen, wobei mindestens ein Abschnitt der ersten Sicherheitsmetadaten einen Speicherplatz gemeinsam mit mindestens einem Abschnitt der zweiten Sicherheitsmetadaten für einen selben Abschnitt des Speichers nutzt, ein gemeinsames Nutzen des Speicherplatzes durch TMEi-MACs und MEE-MACs umfasst.
  • Beispiel 32 kann die Elemente von Beispiel 17 und Beispiel 31 umfassen, wobei mindestens ein Abschnitt der ersten Sicherheitsmetadaten einen Speicherplatz gemeinsam mit mindestens einem Abschnitt der zweiten Sicherheitsmetadaten für einen selben Abschnitt des Speichers nutzt, ein gemeinsames Nutzen des Speicherplatzes durch TMEi-MACs und MEE-MACs umfasst.
  • Gemäß Beispiel 33 wird eine computerlesbare Speichervorrichtung bereitgestellt, die darauf gespeicherte Befehle aufweist, welche bei einer Ausführung durch einen oder mehrere Prozessoren zu den folgenden Operationen führen: Wandeln eines Abschnitts eines Speichers, der unter Verwendung eines ersten Typs von Verschlüsselung verschlüsselt ist und damit assoziierte erste Sicherheitsmetadaten aufweist, in den Abschnitt des Speichers, der unter Verwendung eines zweiten Typs von Verschlüsselung verschlüsselt ist und damit assoziierte zweite Sicherheitsmetadaten aufweist; und gemeinsames Nutzen eines Speicherplatzes für mindestens einen Abschnitt der ersten Sicherheitsmetadaten und mindestens einen Abschnitt der zweiten Sicherheitsmetadaten für einen selben Abschnitt des Speichers.
  • Beispiel 34 kann die Elemente nach Beispiel 33 umfassen, wobei der Abschnitt des Speichers, der unter Verwendung eines ersten Typs von Verschlüsselung verschlüsselt ist, einen Abschnitt des Speichers umfasst, der unter Verwendung von TMEi-Verschlüsselung (Total Memory Encryption with integrity) verschlüsselt ist.
  • Beispiel 35 kann die Elemente nach Beispiel 33 und Beispiel 34 umfassen, wobei die ersten Sicherheitsmetadaten TMEi-MACs (Message Authentication Codes, Nachrichtenauthentifizierungscodes) umfassen.
  • Beispiel 36 kann die Elemente nach Beispiel 33 umfassen, wobei das Wandeln eines Abschnitts des Speichers unter Verwendung eines zweiten Typs von Verschlüsselung ein Verschlüsseln eines Abschnitts des Speichers unter Verwendung von MEE-Verschlüsselung (Memory Encryption Engine) umfasst.
  • Beispiel 37 kann die Elemente nach Beispiel 33 und Beispiel 36 umfassen, wobei das Wandeln eines Abschnitts des Speichers unter Verwendung eines zweiten Typs von Verschlüsselung ein Verschlüsseln eines Abschnitts des Speichers umfasst, wobei die zweiten Sicherheitsmetadaten MEE-Counter und MEE-MACs (Message Authentication Codes, Nachrichtenauthentifizierungscodes) umfassen.
  • Beispiel 38 kann die Elemente nach Beispiel 33 umfassen, wobei der Abschnitt des Speichers, der unter Verwendung eines ersten Typs von Verschlüsselung verschlüsselt ist, einen Abschnitt des Speichers umfasst, der unter Verwendung von MEE-Verschlüsselung (Memory Encryption Engine) verschlüsselt ist.
  • Beispiel 39 kann die Elemente nach Beispiel 33 und Beispiel 38 umfassen, wobei die ersten Sicherheitsmetadaten MEE-Counter und MEE- MACs (Message Authentication Codes, Nachrichtenauthentifizierungscodes) umfassen.
  • Beispiel 40 kann die Elemente nach Beispiel 33 umfassen, wobei das Wandeln eines Abschnitts des Speichers unter Verwendung eines zweiten Typs von Verschlüsselung ein Verschlüsseln eines Abschnitts des Speichers unter Verwendung von TMEi-Verschlüsselung (Total Memory Encryption with integrity) umfasst.
  • Beispiel 41 kann die Elemente nach Beispiel 33 und Beispiel 40 umfassen, wobei das Wandeln eines Abschnitts des Speichers unter Verwendung eines zweiten Typs von Verschlüsselung ein Verschlüsseln eines Abschnitts des Speichers umfasst, wobei die zweiten Sicherheitsmetadaten TMEi-MACs (Message Authentication Codes, Nachrichtenauthentifizierungscodes) umfassen.
  • Beispiel 42 kann die Elemente nach Beispiel 33 umfassen, wobei das Wandeln eines Abschnitts des Speichers ein Wandeln einer Speicherseite umfasst.
  • Beispiel 43 kann die Elemente nach Beispiel 33 umfassen, wobei das Wandeln eines Abschnitts des Speichers ein Verwenden einer Adressenabbildung umfasst.
  • Beispiel 44 kann die Elemente von Beispiel 33 und Beispiel 43 umfassen, wobei das Adressenabbilden eine Datenzeilenadresse auf eine Adresse aller Sicherheitsmetadatenzeilen abbildet, die abgerufen werden müssen, um eine Integrität einer Datenzeile zu verifizieren.
  • Beispiel 45 kann die Elemente nach Beispiel 33 umfassen, wobei bei einem Systemrücksetzen der gesamte Speicher in einen Speicher gewandelt wird, der unter Verwendung des ersten Typs von Verschlüsselung verschlüsselt ist.
  • Beispiel 46 kann die Elemente nach Beispiel 33 und Beispiel 45 umfassen, wobei bei einem Systemrücksetzen der gesamte Speicher in einen Speicher gewandelt wird, der unter Verwendung des ersten Typs von Verschlüsselung verschlüsselt ist und den ersten Typ von damit assoziierten Sicherheitsmetadaten aufweist.
  • Beispiel 47 kann die Elemente nach Beispiel 33 und Beispiel 35 umfassen, wobei mindestens ein Abschnitt der ersten Sicherheitsmetadaten einen Speicherplatz gemeinsam mit mindestens einem Abschnitt der zweiten Sicherheitsmetadaten für einen selben Abschnitt des Speichers nutzt, ein gemeinsames Nutzen des Speicherplatzes durch TMEi-MACs und MEE-MACs umfasst.
  • Beispiel 48 kann die Elemente nach Beispiel 33 und Beispiel 37 umfassen, wobei mindestens ein Abschnitt der ersten Sicherheitsmetadaten einen Speicherplatz gemeinsam mit mindestens einem Abschnitt der zweiten Sicherheitsmetadaten für einen selben Abschnitt des Speichers nutzt, ein gemeinsames Nutzen des Speicherplatzes durch TMEi-MACs und MEE-MACs umfasst.
  • Die Begriffe und Ausdrücke, die hier verwendet werden, werden als Begriffe der Beschreibung und nicht der Beschränkung verwendet, und es besteht bei der Verwendung derartiger Begriffe und Ausdrücke keine Absicht des Ausschließens von Äquivalenten der gezeigten und beschriebenen Merkmale (oder Abschnitten davon), und es versteht sich, dass verschiedene Modifikationen innerhalb des Umfangs der Ansprüche möglich sind. Demzufolge sollen die Ansprüche alle derartigen Äquivalente umfassen.

Claims (30)

  1. Rechnersystem, umfassend: einen Prozessor, einen Speicher, der mit dem Prozessor in Kommunikation steht, eine im Speicher gespeicherte Anwendung, wobei die Anwendung den Prozessor dazu veranlasst, die folgenden Operationen durchzuführen: Wandeln eines Abschnitts des Speichers, der unter Verwendung eines ersten Typs von Verschlüsselung verschlüsselt ist und damit assoziierte erste Sicherheitsmetadaten aufweist, in den Abschnitt des Speichers, der unter Verwendung eines zweiten Typs von Verschlüsselung verschlüsselt ist und damit assoziierte zweite Sicherheitsmetadaten aufweist, und wobei mindestens ein Abschnitt der ersten Sicherheitsmetadaten einen Speicherplatz mit mindestens einem Abschnitt der zweiten Sicherheitsmetadaten für einen selben Speicherabschnitt gemeinsam nutzt.
  2. Rechnersystem nach Anspruch 1, wobei der Abschnitt des Speichers, der unter Verwendung eines ersten Typs von Verschlüsselung verschlüsselt ist, einen Abschnitt des Speichers umfasst, der unter Verwendung von TMEi-Verschlüsselung (Total Memory Encryption with integrity) verschlüsselt ist und wobei die ersten Sicherheitsmetadaten TMEi-MACs (Message Authentication Codes) umfassen.
  3. Rechnersystem nach Anspruch 2, wobei das Wandeln eines Abschnitts des Speichers unter Verwendung eines zweiten Typs von Verschlüsselung, wobei die zweiten Sicherheitsmetadaten zweite Sicherheitsmetadaten-Counter und zweite Sicherheitsmetadaten-MACs (Message Authentication Codes) umfassen.
  4. Rechnersystem nach Anspruch 1, wobei der Abschnitt des Speichers, der unter Verwendung eines ersten Typs von Verschlüsselung verschlüsselt ist, einen Abschnitt des Speichers umfasst, der verschlüsselt ist, wobei die ersten Sicherheitsmetadaten erste Sicherheitsmetadaten-Counter und erste Sicherheitsmetadaten-MACs (Message Authentication Codes) umfassen.
  5. Rechnersystem nach Anspruch 4, wobei das Wandeln eines Abschnitts des Speichers unter Verwendung eines zweiten Typs von Verschlüsselung ein Verschlüsseln eines Abschnitts des Speichers unter Verwendung von TMEi-Verschlüsselung (Total Memory Encryption with integrity) umfasst und wobei die zweiten Sicherheitsmetadaten TMEi-MACs (Message Authentication Codes) umfassen.
  6. Rechnersystem nach Anspruch 1, wobei das Wandeln eines Abschnitts des Speichers ein Wandeln einer Speicherseite umfasst.
  7. Rechnersystem nach Anspruch 1, wobei das Wandeln eines Abschnitts des Speichers ein Verwenden einer Adressenabbildung umfasst, die eine Datenzeilenadresse auf eine Adresse aller Sicherheitsmetadatenzeilen abbildet, die abgerufen werden müssen, um eine Integrität einer Datenzeile zu verifizieren.
  8. Rechnersystem nach Anspruch 1, wobei bei einem Systemrücksetzen der gesamte Speicher in einen Speicher gewandelt wird, der unter Verwendung des ersten Typs von Verschlüsselung verschlüsselt ist und den ersten Typ von damit assoziierten Sicherheitsmetadaten aufweist.
  9. Rechnersystem nach einem der Ansprüche 3 oder 5, wobei der mindestens eine Abschnitt der ersten Sicherheitsmetadaten einen Speicherplatz mit mindestens einem Abschnitt der zweiten Sicherheitsmetadaten für einen selben Abschnitt des Speichers gemeinsam nutzt, ein gemeinsames Nutzen des Speicherplatzes durch TMEi-MACs und MEE-MACs umfasst.
  10. Verfahren, umfassend: Wandeln eines Abschnitts eines Speichers, der unter Verwendung eines ersten Typs von Verschlüsselung verschlüsselt ist und damit assoziierte erste Sicherheitsmetadaten aufweist, in einen Abschnitt des Speichers, der unter Verwendung eines zweiten Typs von Verschlüsselung verschlüsselt ist und damit assoziierte zweite Sicherheitsmetadaten aufweist, und gemeinsames Nutzen eines Speicherplatzes für mindestens einen Abschnitt der ersten Sicherheitsmetadaten und mindestens einen Abschnitt der zweiten Sicherheitsmetadaten für einen selben Abschnitt des Speichers.
  11. Verfahren nach Anspruch 10, wobei das Wandeln eines Abschnitts des Speichers, der unter Verwendung eines ersten Typs von Verschlüsselung verschlüsselt ist, ein Wandeln eines Abschnitts des Speichers umfasst, der unter Verwendung von TMEi-Verschlüsselung (Total Memory Encryption with integrity) verschlüsselt ist und wobei die ersten Sicherheitsmetadaten TMEi-MACs (Message Authentication Codes) umfassen.
  12. Verfahren nach Anspruch 11, wobei das Wandeln eines Abschnitts des Speichers unter Verwendung eines zweiten Typs von Verschlüsselung, wobei die zweiten Sicherheitsmetadaten zweite Sicherheitsmetadaten-Counter und zweite Sicherheitsmetadaten-MACs (Message Authentication Codes) umfassen.
  13. Verfahren nach Anspruch 10, wobei das Wandeln eines Abschnitts des Speichers unter Verwendung eines ersten Typs von Verschlüsselung ein Wandeln eines Abschnitts des Speichers umfasst, wobei die ersten Sicherheitsmetadaten erste Sicherheitsmetadaten-Counter und erste Sicherheitsmetadaten-MACs (Message Authentication Codes) umfassen.
  14. Verfahren nach Anspruch 13, wobei das Wandeln eines Abschnitts des Speichers unter Verwendung eines zweiten Typs von Verschlüsselung ein Verschlüsseln eines Abschnitts des Speichers umfasst, der unter Verwendung von TMEi-Verschlüsselung (Total Memory Encryption with integrity) verschlüsselt ist, und wobei die zweiten Sicherheitsmetadaten TMEi-MACs (Message Authentication Codes) umfassen.
  15. Verfahren nach Anspruch 10, wobei das Wandeln eines Abschnitts des Speichers ein Wandeln einer Speicherseite umfasst.
  16. Verfahren nach Anspruch 10, wobei das Wandeln eines Abschnitts des Speichers ein Verwenden einer Adressenabbildung umfasst, die eine Datenzeilenadresse auf eine Adresse aller Sicherheitsmetadatenzeilen abbildet, die abgerufen werden müssen, um eine Integrität einer Datenzeile zu verifizieren.
  17. Verfahren nach Anspruch 10, wobei bei einem Systemrücksetzen der gesamte Speicher in einen Speicher gewandelt wird, der unter Verwendung des ersten Typs von Verschlüsselung verschlüsselt ist und den ersten Typ von damit assoziierten Sicherheitsmetadaten aufweist.
  18. Verfahren nach einem der Ansprüche 12 oder 14, wobei das gemeinsame Nutzen von mindestens einem Abschnitt der ersten Sicherheitsmetadaten und mindestens einem Abschnitt der zweiten Sicherheitsmetadaten für einen selben Abschnitt des Speichers ein gemeinsames Nutzen des Speicherplatzes durch TMEi-MACs und Sicherheitsmetadaten-MACs umfasst.
  19. Computerlesbare Speichervorrichtung, die darauf gespeicherte Befehle aufweist, die bei einer Ausführung durch einen oder mehrere Prozessoren zu den folgenden Operationen führen, umfassend: Wandeln eines Abschnitts eines Speichers, der unter Verwendung eines ersten Typs von Verschlüsselung verschlüsselt ist und damit assoziierte erste Sicherheitsmetadaten aufweist, in den Abschnitt des Speichers, der unter Verwendung eines zweiten Typs von Verschlüsselung verschlüsselt ist und damit assoziierte zweite Sicherheitsmetadaten aufweist, und gemeinsames Nutzen eines Speicherplatzes für mindestens einen Abschnitt der ersten Sicherheitsmetadaten und mindestens einen Abschnitt der zweiten Sicherheitsmetadaten für einen selben Abschnitt des Speichers.
  20. Computerlesbare Speichervorrichtung nach Anspruch 19, wobei die Befehle zum Wandeln eines Abschnitts des Speichers, der unter Verwendung eines ersten Typs von Verschlüsselung verschlüsselt ist, Befehle zum Wandeln eines Abschnitts des Speichers umfassen, der unter Verwendung von TMEi-Verschlüsselung (Total Memory Encryption with integrity) verschlüsselt ist und wobei die ersten Sicherheitsmetadaten TMEi-MACs (Message Authentication Codes) umfassen.
  21. Computerlesbare Speichervorrichtung nach Anspruch 19, wobei die Befehle zum Wandeln eines Abschnitts des Speichers unter Verwendung eines zweiten Typs von Verschlüsselung ein Verschlüsseln eines Abschnitts des Speichers umfassen, wobei die zweiten Sicherheitsmetadaten zweite Sicherheitsmetadaten-Counter und zweite Sicherheitsmetadaten-MACs (Message Authentication Codes) umfassen.
  22. Computerlesbare Speichervorrichtung nach Anspruch 19, wobei die Befehle zum Wandeln eines Abschnitts des Speichers, der unter Verwendung eines ersten Typs von Verschlüsselung verschlüsselt ist, Befehle zum Wandeln eines Abschnitts des Speichers umfassen, der unter Verwendung von MEE-Verschlüsselung (Memory Encryption Engine) verschlüsselt ist und wobei die ersten Sicherheitsmetadaten MEE-Counter und MEE-MACs (Message Authentication Codes) umfassen.
  23. Computerlesbare Speichervorrichtung nach Anspruch 22, wobei die Befehle zum Wandeln eines Abschnitts des Speichers unter Verwendung eines zweiten Typs von Verschlüsselung ein Verschlüsseln eines Abschnitts des Speichers unter Verwendung von TMEi-Verschlüsselung (Total Memory Encryption with integrity) umfassen und wobei die zweiten Sicherheitsmetadaten TMEi-MACs (Message Authentication Codes) umfassen.
  24. Computerlesbare Speichervorrichtung nach Anspruch 19, wobei die Befehle zum Wandeln eines Abschnitts des Speichers Befehle zum Wandeln einer Speicherseite umfassen.
  25. Computerlesbare Speichervorrichtung nach Anspruch 19, wobei die Befehle zum Wandeln eines Abschnitts des Speichers Befehle zum Verwenden einer Adressenabbildung umfassen, die eine Datenzeilenadresse auf eine Adresse aller Sicherheitsmetadatenzeilen abbildet, die abgerufen werden müssen, um eine Integrität einer Datenzeile zu verifizieren.
  26. Computerlesbare Speichervorrichtung nach Anspruch 19, die ferner Befehle umfasst, wobei bei einem Systemrücksetzen der gesamte Speicher in einen Speicher gewandelt wird, der unter Verwendung des ersten Typs von Verschlüsselung verschlüsselt ist und den ersten Typ von damit assoziierten Sicherheitsmetadaten aufweist.
  27. Computerlesbare Speichervorrichtung nach einem der Ansprüche 21 oder 23, wobei die Befehle zum gemeinsamen Nutzen von mindestens einem Abschnitt der ersten Sicherheitsmetadaten und mindestens einem Abschnitt der zweiten Sicherheitsmetadaten für einen selben Abschnitt des Speichers Befehle zum gemeinsamen Nutzen des Speicherplatzes durch TMEi-MACs und die zweiten Sicherheitsmetadaten-MACs umfassen.
  28. System, das mindestens eine Vorrichtung umfasst, die angeordnet ist, um das Verfahren nach einem der Ansprüche 10 bis 18 durchzuführen.
  29. Vorrichtung, die eine Einrichtung zum Durchführen des Verfahrens nach einem der Ansprüche 10 bis 18 umfasst.
  30. Computerlesbare Speichervorrichtung, die darauf gespeicherte Befehle aufweist, die bei einer Ausführung durch einen oder mehrere Prozessoren zu den folgenden Operationen führen, umfassend: das Verfahren nach einem der Ansprüche 10 bis 18.
DE112017004995.4T 2016-09-30 2017-08-30 Verfahren und Vorrichtung zum gemeinsamen Nutzen eines Sicherheitsmetadaten-Speicherplatzes Pending DE112017004995T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/282,575 2016-09-30
US15/282,575 US10528485B2 (en) 2016-09-30 2016-09-30 Method and apparatus for sharing security metadata memory space
PCT/US2017/049468 WO2018063724A1 (en) 2016-09-30 2017-08-30 Method and apparatus for sharing security metadata memory space

Publications (1)

Publication Number Publication Date
DE112017004995T5 true DE112017004995T5 (de) 2019-06-27

Family

ID=61760093

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112017004995.4T Pending DE112017004995T5 (de) 2016-09-30 2017-08-30 Verfahren und Vorrichtung zum gemeinsamen Nutzen eines Sicherheitsmetadaten-Speicherplatzes

Country Status (4)

Country Link
US (2) US10528485B2 (de)
CN (1) CN109643344B (de)
DE (1) DE112017004995T5 (de)
WO (1) WO2018063724A1 (de)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9798900B2 (en) 2015-03-26 2017-10-24 Intel Corporation Flexible counter system for memory protection
KR102557993B1 (ko) 2018-10-02 2023-07-20 삼성전자주식회사 메모리 이용 효율을 향상한 보안 처리기를 포함하는 시스템 온 칩, 메모리 시스템 및 시스템 온 칩의 동작방법
US11714725B2 (en) * 2019-06-03 2023-08-01 University Of Central Florida Research Foundation, Inc. System and method for ultra-low overhead and recovery time for secure non-volatile memories
US11743241B2 (en) 2020-12-30 2023-08-29 International Business Machines Corporation Secure data movement

Family Cites Families (60)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6138230A (en) 1993-10-18 2000-10-24 Via-Cyrix, Inc. Processor with multiple execution pipelines using pipe stage state information to control independent movement of instructions between pipe stages of an execution pipeline
US6986052B1 (en) * 2000-06-30 2006-01-10 Intel Corporation Method and apparatus for secure execution using a secure memory partition
JP2002333978A (ja) 2001-05-08 2002-11-22 Nec Corp Vliw型プロセッサ
US7403615B2 (en) 2001-08-24 2008-07-22 Broadcom Corporation Methods and apparatus for accelerating ARC4 processing
US20040034785A1 (en) * 2002-08-15 2004-02-19 Horng-Ming Tai Hardware and firmware encryption mechanism using unique chip die identification
US6944256B2 (en) 2003-04-25 2005-09-13 Alcatel Ip Networks, Inc. Optimizing use of statistics counters
US7360021B2 (en) 2004-04-15 2008-04-15 International Business Machines Corporation System and method for completing updates to entire cache lines with address-only bus operations
US20060005047A1 (en) 2004-06-16 2006-01-05 Nec Laboratories America, Inc. Memory encryption architecture
FR2872357A1 (fr) 2004-06-24 2005-12-30 St Microelectronics Sa Verification d'un flux de bits
JP4569921B2 (ja) * 2004-08-04 2010-10-27 パナソニック株式会社 省電力メモリアクセス制御装置
GB2434673B (en) 2004-11-12 2009-10-14 Discretix Technologies Ltd Method, device, and system of securely storing data
KR100670005B1 (ko) * 2005-02-23 2007-01-19 삼성전자주식회사 모바일 플랫폼을 위한 메모리의 무결성을 원격으로 확인하는 확인장치 및 그 시스템 그리고 무결성 확인 방법
US20060277395A1 (en) 2005-06-06 2006-12-07 Fowles Richard G Processor performance monitoring
US8010764B2 (en) 2005-07-07 2011-08-30 International Business Machines Corporation Method and system for decreasing power consumption in memory arrays having usage-driven power management
US7801864B2 (en) * 2005-11-28 2010-09-21 Commvault Systems, Inc. Systems and methods for using metadata to enhance data identification operations
US7681050B2 (en) * 2005-12-01 2010-03-16 Telefonaktiebolaget L M Ericsson (Publ) Secure and replay protected memory storage
GB2435333B (en) 2006-02-01 2010-07-14 Hewlett Packard Development Co Data transfer device
US8095802B2 (en) * 2006-09-12 2012-01-10 International Business Machines Corporation System and method for securely saving a program context to a shared memory
US8306060B2 (en) * 2006-11-07 2012-11-06 Samsung Electronics Co., Ltd. System and method for wireless communication of uncompressed video having a composite frame format
US8200961B2 (en) 2006-11-19 2012-06-12 Igware, Inc. Securing a flash memory block in a secure device system and method
US8261091B2 (en) 2006-12-21 2012-09-04 Spansion Llc Solid-state memory-based generation and handling of security authentication tokens
JP4956292B2 (ja) 2007-06-25 2012-06-20 パナソニック株式会社 情報セキュリティ装置およびカウンタ制御方法
US7895421B2 (en) 2007-07-12 2011-02-22 Globalfoundries Inc. Mechanism for using performance counters to identify reasons and delay times for instructions that are stalled during retirement
KR100929843B1 (ko) 2007-09-28 2009-12-04 주식회사 하이닉스반도체 오버플로우하지 않는 카운터
US20090113111A1 (en) * 2007-10-30 2009-04-30 Vmware, Inc. Secure identification of execution contexts
US8171309B1 (en) 2007-11-16 2012-05-01 Marvell International Ltd. Secure memory controlled access
WO2009087972A1 (ja) * 2008-01-09 2009-07-16 Nec Corporation データ送信装置、データ受信装置、これらの方法、記録媒体、そのデータ通信システム
US7987343B2 (en) 2008-03-19 2011-07-26 International Business Machines Corporation Processor and method for synchronous load multiple fetching sequence and pipeline stage result tracking to facilitate early address generation interlock bypass
US8099636B2 (en) 2008-07-15 2012-01-17 Caterpillar Inc. System and method for protecting memory stacks using a debug unit
US8774048B2 (en) 2009-01-29 2014-07-08 Qualcomm Incorporated Link management for multimedia content mobility
US20100250965A1 (en) 2009-03-31 2010-09-30 Olson Christopher H Apparatus and method for implementing instruction support for the advanced encryption standard (aes) algorithm
US8370577B2 (en) * 2009-06-26 2013-02-05 Microsoft Corporation Metaphysically addressed cache metadata
US8521962B2 (en) 2009-09-01 2013-08-27 Qualcomm Incorporated Managing counter saturation in a filter
TWI414994B (zh) 2009-09-24 2013-11-11 Ind Tech Res Inst 可重組態處理裝置及其系統
TWI437567B (zh) 2009-12-11 2014-05-11 Phison Electronics Corp 快閃記憶體區塊管理方法及其控制器與儲存裝置
US8856534B2 (en) * 2010-05-21 2014-10-07 Intel Corporation Method and apparatus for secure scan of data storage device from remote server
JP5159849B2 (ja) 2010-09-24 2013-03-13 株式会社東芝 メモリ管理装置及びメモリ管理方法
US8751828B1 (en) 2010-12-23 2014-06-10 Emc Corporation Sharing encryption-related metadata between multiple layers in a storage I/O stack
US8862902B2 (en) 2011-04-29 2014-10-14 Seagate Technology Llc Cascaded data encryption dependent on attributes of physical memory
JP5700481B2 (ja) * 2011-06-29 2015-04-15 インテル・コーポレーション 整合性チェック及びリプレーアタックからの保護を行って、メモリを暗号化するための方法及び装置
WO2013100964A1 (en) 2011-12-28 2013-07-04 Intel Corporation Method and system for protecting memory information in a platform
US9053346B2 (en) 2011-12-28 2015-06-09 Intel Corporation Low-overhead cryptographic method and apparatus for providing memory confidentiality, integrity and replay protection
US8819455B2 (en) 2012-10-05 2014-08-26 Intel Corporation Parallelized counter tree walk for low overhead memory replay protection
CN103914389B (zh) * 2012-12-31 2018-06-15 伊姆西公司 用于管理存储器空间的方法和装置
US9442864B2 (en) 2013-12-27 2016-09-13 Intel Corporation Bridging circuitry between a memory controller and request agents in a system having multiple system memory protection schemes
US9792063B2 (en) 2014-01-15 2017-10-17 Intel Corporation Deduplication-based data security
US9513805B2 (en) 2014-04-15 2016-12-06 International Business Machines Corporation Page table including data fetch width indicator
US10019603B2 (en) 2014-04-16 2018-07-10 Synopsys, Inc. Secured memory system and method therefor
US9497027B2 (en) 2014-06-02 2016-11-15 GlobalFoundries, Inc. Encryption engine with twin cell memory array
US9413357B2 (en) 2014-06-11 2016-08-09 Cavium, Inc. Hierarchical statistically multiplexed counters and a method thereof
JP6162652B2 (ja) 2014-06-20 2017-07-12 株式会社東芝 メモリ管理装置、プログラム、及び方法
US9423971B2 (en) 2014-10-03 2016-08-23 Sandisk Technologies Llc Method and system for adaptively assigning logical block address read counters using a tree structure
US10956617B2 (en) 2014-12-12 2021-03-23 Coresecure Technologies, Llc Systems and methods for random fill caching and prefetching for secure cache memories
US9524249B2 (en) 2014-12-23 2016-12-20 Intel Corporation Memory encryption engine integration
US10185842B2 (en) 2015-03-18 2019-01-22 Intel Corporation Cache and data organization for memory protection
US9798900B2 (en) 2015-03-26 2017-10-24 Intel Corporation Flexible counter system for memory protection
US9904805B2 (en) * 2015-09-23 2018-02-27 Intel Corporation Cryptographic cache lines for a trusted execution environment
US9432183B1 (en) 2015-12-08 2016-08-30 International Business Machines Corporation Encrypted data exchange between computer systems
US10228852B1 (en) 2016-03-25 2019-03-12 Amazon Technologies, Inc. Multi-stage counters
US10261919B2 (en) * 2016-07-08 2019-04-16 Hewlett Packard Enterprise Development Lp Selective memory encryption

Also Published As

Publication number Publication date
US20200183861A1 (en) 2020-06-11
US11126566B2 (en) 2021-09-21
WO2018063724A1 (en) 2018-04-05
US10528485B2 (en) 2020-01-07
US20190213143A1 (en) 2019-07-11
CN109643344B (zh) 2023-09-05
CN109643344A (zh) 2019-04-16

Similar Documents

Publication Publication Date Title
DE112017004995T5 (de) Verfahren und Vorrichtung zum gemeinsamen Nutzen eines Sicherheitsmetadaten-Speicherplatzes
DE102019113352A1 (de) Technologien für sichere e/a mit speicherverschlüsselungs-engines
DE102009013384B4 (de) System und Verfahren zur Bereitstellung einer sicheren Anwendungsfragmentierungsumgebung
DE102019110327A1 (de) Technologien zum verifizieren von speicherintegrität über mehrere speicherbereiche hinweg
DE102013222321B4 (de) Elektronisches Gerät mit einer Vielzahl von Speicherzellen und mit physikalisch unklonbarer Funktion
DE102015205396B4 (de) Speichersystem und Verfahren zum Durchführen und Authentifizieren eines Schreibschutzes für dieses
DE112017006699T5 (de) Verfahren und einrichtung für bereichsbasierte prüfpunkte in einer speichervorrichtung
DE112011102256T5 (de) System und Verfahren zum Speichern eines Passwortwiederherstellungsgeheimnisses
DE112019000194T5 (de) Verwenden einer ausgefallenen Speichervorrichtung in einem Peer-to-Peer-Speichersystem zum durchführen einer speicherzentrischen Aufgabe
DE102020125599A1 (de) Vertrauenswürdige lokale speicherverwaltung in einer virtualisierten gpu
DE102013111339A1 (de) Sicherheitsverwaltungseinheit, Hostcontrollerschnittstelle mit derselben, Verfahren zum Betreiben einer Hostcontrollerschnittstelle und Vorrichtungen mit einer Hostcontrollerschnittstelle
DE102015102678A1 (de) Startabbild- discovery und -bereitstellung
DE102011082184A1 (de) Sicherheitsschutz für Speicherinhalt von Prozessorhauptspeicher
DE102014206992A1 (de) Zufallszahlengenerator und Verfahren zum Erzeugen von Zufallszahlen
DE112014000584T5 (de) Erreichen von Speichereffizienz bei durchgängiger Verschlüsselung unter Verwendung von nachgelagerten (Downstream-)Decryptern
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
DE102015002191A1 (de) Sicherheits-Hypervisor-Funktion
DE112018004247T5 (de) Datenverarbeitungsauslagerung unter verwendung einer speicherinternen codeausführung
DE112021000648T5 (de) Speichervorrichtung, die gegen cyber-angriffe und fehlfunktionen widerstandsfähig ist
DE102020123398A1 (de) Sicherheitsarchitektur für eine Teilrekonfiguration eines konfigurierbaren Integrierte-Schaltungs-Dies
DE102017104080A1 (de) Generalisiertes verifizierungsschema für sichere metadaten-modifizierung
DE112006004173T5 (de) Schutz eines programmierbaren Speichers gegen unberechtigte Veränderung
DE102013112897B4 (de) Nichtflüchtiger Speicher und Verfahren zum Betreiben eines nichtflüchtigen Speichers
DE112012006148B4 (de) Verfahren, Vorrichtung und Maschinenlesbares Medium zur gemeinsamen Benutzung von Puffern für Verarbeitungselemente bei einem Netzwerkgerät