DE102015205396A1 - Speichersystem und Verfahren zum Durchführen und Authentifizieren eines Schreibschutzes für dieses - Google Patents

Speichersystem und Verfahren zum Durchführen und Authentifizieren eines Schreibschutzes für dieses Download PDF

Info

Publication number
DE102015205396A1
DE102015205396A1 DE102015205396.2A DE102015205396A DE102015205396A1 DE 102015205396 A1 DE102015205396 A1 DE 102015205396A1 DE 102015205396 A DE102015205396 A DE 102015205396A DE 102015205396 A1 DE102015205396 A1 DE 102015205396A1
Authority
DE
Germany
Prior art keywords
information
memory
request
write protection
storage device
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.)
Granted
Application number
DE102015205396.2A
Other languages
English (en)
Other versions
DE102015205396B4 (de
Inventor
Jaegyu LEE
Jisoo Kim
Young-Jin Park
Bo-ram SHIN
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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from KR1020140117786A external-priority patent/KR102196971B1/ko
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of DE102015205396A1 publication Critical patent/DE102015205396A1/de
Application granted granted Critical
Publication of DE102015205396B4 publication Critical patent/DE102015205396B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/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/145Protection 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 virtual, e.g. for virtual blocks or segments before a translation mechanism
    • 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
    • G06F12/1441Protection 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 for a range
    • 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/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1466Key-lock mechanism
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1072Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in multilevel memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1441Resetting or repowering
    • 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)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

In einer Ausführungsform umfasst das Verfahren das Empfangen, an einem Speichergerät, einer Anfrage. Die Anfrage enthält einen Anfragenachricht-Authentifizierungscode und Schreibschutzinformationen. Die Schreibschutzinformationen enthalten Startadressinformationen und/oder Längeninformationen. Die Startadressinformationen geben eine Logikblockadresse an, an welcher ein Speicherbereich in einem nicht-flüchtigen Speicher des Speichergeräts beginnt, und die Längeninformationen geben eine Länge des Speicherbereichs an. Das Verfahren umfasst auch das Erzeugen, an dem Speichergerät, eines Nachrichtenauthentifizierungscodes basierend auf (1) den Startadressinformationen und/oder den Längeninformationen, und (2) einem an dem Speichergerät gespeicherten Schlüssel, das Authentifizieren, an dem Speichergerät, der Anfrage basierend auf dem erzeugten Nachrichtenauthentifizierungscode und dem Anfragenachricht-Authentifizierungscode, und das Verarbeiten, an dem Speichergerät, der Anfrage basierend auf dem Ergebnis der Authentifizierung.

Description

  • Querverweis auf verwandte Anmeldungen
  • Es wird Priorität gemäß 35 U.S.C. §119 auf der Grundlage der vorläufigen US-Patentanmeldung Nr. 61/971,673 vom 28. März 2014 und der koreanischen Patentanmeldung Nr. 10-2014-0117786 , die am 4. September 2014 am koreanischen Patentamt eingereicht wurde, beansprucht, wobei der gesamte Inhalt der oben genannten Patentanmeldungen hier unter Bezugnahme eingeschlossen ist.
  • Hintergrund
  • Die hier beschriebenen erfinderischen Konzepte betreffen ein Speichersystem und insbesondere ein Speichersystem und ein Schreibschutzverfahren für dieses.
  • Ein Speichersystem umfasst einen Host und ein Speichergerät. Der Host und das Speichergerät sind über verschiedene standardisierte Schnittstellen wie etwa Serial ATA (SATA), Universal Flash Storage (UFS), Small Computer System Interface (SCSI), Serial Attached SCSI (SAS) und Embedded MMC (eMMC) verbunden.
  • In einem herkömmlichen Speichergerät kann jeder einen Schreibschutz unter Verwendung eines vorbestimmten Befehls setzen und aufheben. Auch der Typ des Schreibschutzes wird unter Verwendung eines Befehls gesetzt. Und wenn der Schreibschutz gesetzt ist, kann jeder den Schreibschutz aufheben oder die Einstellung des Schreibschutzes ändern.
  • Zum Beispiel sind ein Bootloader oder ein Kernel-Image eines Betriebssystems schreibgeschützt. Weil jeder den Schreibschutz aufheben oder dessen Einstellung ändern kann, werden der Bootloader oder das Kernel-Image gefährlichen, unzulässigen Zugriffen wie etwa einem Rooting ausgesetzt.
  • Zusammenfassung
  • Wenigstens eine Ausführungsform betrifft ein nicht-transitorisches, computerlesbares Medium.
  • In einer Ausführungsform speichert das nicht-transitorische, computerlesbare Medium einen Datenaufbau, der eine Schreibschutzoperation eines Speichergeräts während der Ausführung der Schreibschutzoperation für einen nicht-flüchtigen Speicher in dem Speichergerät steuert, wobei der Datenaufbau eine Speicherpartitionskennzeichnung, die eine Partition des nicht-flüchtigen Speichers identifiziert, Startadressinformationen, die eine Logikblockadresse für einen Speicherbereich in der identifizierten Speicherpartition angeben, und Längeninformationen, die eine Länge des Speicherbereichs in der identifizierten Speicherpartition angeben, enthält und wobei der Datenaufbau weiterhin Typinformationen enthält, die das Speichergerät bezüglich eines Typs von Schreibschutz anweisen, der für den Speicherbereich für die Schreibschutzoperation vorzusehen ist.
  • Wenn in einer Ausführungsform die Längeninformationen ein Bezugswert sind, geben die Längeninformationen an, dass der Schreibschutz auf die gesamte identifizierte Speicherpartition anzuwenden ist.
  • In einer Ausführungsform enthält der Datenaufbau weiterhin Beschreibbar-Informationen, die angeben, ob der Schreibschutz auf den Speicherbereich anzuwenden ist.
  • In einer Ausführungsform geben die Typinformationen einen Typ an, der aus einer Gruppe ausgewählt wird, die wenigstens einen ersten Typ enthält, wobei der erste Typ angibt, dass die Beschreibbar-Informationen nach jedem Hochfahren des Speichers geändert werden können und dass die Beschreibbar-Informationen angeben, dass der Schreibschutz beim Hochfahren des Speichers anzuwenden ist.
  • In einer Ausführungsform enthält die Gruppe den ersten Typ, einen zweiten Typ und einen dritten Typ, wobei der zweite Typ angibt, dass die Beschreibbar-Informationen geändert werden können und dass die Beschreibbar-Informationen keine Anwendung eines Schreibschutzes nach dem Hochfahren des Speichers angebeben, und wobei der dritte Typ angibt, das die Beschreibbar-Informationen geändert werden können.
  • Wenigstens eine Ausführungsform betrifft ein Speichergerät.
  • In einer Ausführungsform enthält das Speichergerät einen ersten Speicher. Der erste Speicher ist ein nicht-flüchtiger Speicher. Das Speichergerät enthält weiterhin einen zweiten Speicher, der konfiguriert ist zum Speichern einer Speicherpartitionskennzeichnung, die eine Partition des ersten Speichers identifiziert, von Startadressinformationen, die eine Logikblockadresse für einen Speicherbereich in der identifizierten Speicherpartition angeben, und von Längeninformationen, die eine Länge des Speicherbereichs in der identifizierten Speicherpartition angeben. Der zweite Speicher ist konfiguriert zum Speichern von Beschreibbar-Informationen in Assoziation mit den Startadressinformationen und den Längeninformationen. Die Beschreibbar-Informationen geben an, ob ein Schreibschutz auf den Speicherbereich anzuwenden ist.
  • In einer Ausführungsform ist der zweite Speicher konfiguriert zum Speichern von Typinformationen in Assoziation mit den Startadressinformationen und den Längeninformationen, wobei die Typinformationen einen Typ von Schreibschutz angeben, der für den Speicherbereich vorzusehen ist.
  • Wenigstens eine Ausführungsform betrifft ein Verfahren.
  • In einer Ausführungsform umfasst das Verfahren das Empfangen, an einem Speichergerät, einer Anfrage. Die Anfrage enthält einen Anfragenachricht-Authentifizierungscode und Schreibschutzinformationen. Die Schreibschutzinformationen enthalten Startadressinformationen und/oder Längeninformationen. Die Startadressinformationen geben eine Logikblockadresse an, an welcher ein Speicherbereich in einem nicht-flüchtigen Speicher des Speichergeräts beginnt, und die Längeninformationen geben die Länge des Speicherbereichs an. Das Verfahren umfasst weiterhin: das Erzeugen, an dem Speichergerät, eines Nachrichtenauthentifizierungscodes basierend auf (1) der Startadressinformationen und/oder der Längeninformationen und (2) einem an dem Speichergerät gespeicherten Schlüssel; das Authentifizieren, an dem Speichergerät, der Anfrage basierend auf dem erzeugten Nachrichtenauthentifizierungscode und dem Anfragenachricht-Authentifizierungscode; und das Verarbeiten, an dem Speichergerät, der Anfrage basierend auf dem Ergebnis der Authentifizierung.
  • In einer Ausführungsform enthalten die Schreibschutzinformationen die Startadressinformationen und die Längeninformationen, wobei das Erzeugen den erzeugten Nachrichtenauthentifizierungscode basierend auf den Startadressinformationen, den Längeninformationen und dem Schlüssel erzeugt.
  • In einer Ausführungsform enthalten die Schreibschutzinformationen die Startadressinformationen, die Längeninformationen und eine Partitionskennzeichnung. Die Partitionskennzeichnung identifiziert eine Partition in dem nicht-flüchtigen Speicher des Speichergeräts, wobei die Partition den Speicherbereich enthält. Weiterhin erzeugt das Erzeugen den erzeugten Nachrichtenauthentifizierungscode basierend auf den Startadressinformationen, den Längeninformationen, der Partitionskennzeichnung und dem Schlüssel.
  • In einer Ausführungsform enthalten die Schreibschutzinformationen die Startadressinformationen, die Längeninformationen, die Partitionskennzeichnung und Beschreibbar-Informationen, die angeben, ob ein Schreibschutz auf den Speicherbereich anzuwenden ist, wobei das Erzeugen den erzeugten Nachrichtenauthentifizierungscode basierend auf den Startadressinformationen, den Längeninformationen, der Partitionskennzeichnung, den Beschreibbar-Informationen und dem Schlüssel erzeugt.
  • In einer Ausführungsform enthalten die Schreibschutzinformationen die Startadressinformationen, die Längeninformationen, die Partitionskennzeichnung, die Beschreibbar-Informationen und Typinformationen, die einen Typ von Schreibschutz für den Speicherbereich angeben, wobei das Erzeugen den erzeugten Nachrichtenauthentifizierungscode basierend auf den Startadressinformationen, den Längeninformationen, der Partitionskennzeichnung, den Beschreibbar-Informationen, den Typinformationen und dem Schlüssel erzeugt.
  • In einer Ausführungsform geben die Typinformationen einen Typ an, der aus einer Gruppe ausgewählt ist, die wenigstens einen ersten Typ enthält, wobei der erste Typ angibt, dass die Beschreibbar-Informationen nach dem Hochfahren des Speichers geändert werden können und dass die Beschreibbar-Informationen angeben, den Schreibschutz beim Hochfahren des Speichers anzuwenden.
  • In einer Ausführungsform enthält die Gruppe den ersten Typ, einen zweiten Typ und einen dritten Typ. Der zweite Typ gibt an, dass die Beschreibbar-Informationen geändert werden können und dass die Beschreibbar-Informationen keine Anwendung des Schreibschutzes nach dem Hochfahren des Speichers angeben. Der dritte Typ gibt an, dass die Beschreibbar-Informationen geändert werden können.
  • In einer Ausführungsform erzeugt das Erzeugen einen Hash-basierten Nachrichtenauthentifizierungscode.
  • In einer Ausführungsform authentifiziert die Authentifizierung die Anfrage, wenn der erzeugte Nachrichtenauthentifizierungscode mit dem Anfragenachricht-Authentifizierungscode übereinstimmt, und verarbeitet das Verarbeiten die Anfrage, wenn die Anfrage authentifiziert wird.
  • In einer Ausführungsform fragt die Anfrage das Speichergerät an, die Schreibschutzinformationen mit in der Anfrage enthaltenen Informationen zu aktualisieren.
  • In einer Ausführungsform umfasst das Verarbeiten das Inkrementieren eines Aktualisierungszählers, wenn das Verarbeiten die Anfrage verarbeitet, und das Senden einer Antwortnachricht, wenn das Verarbeiten die Anfrage verarbeitet. Die Antwortnachricht enthält einen Zählwert des Aktualisierungszählers.
  • In einer Ausführungsform umfasst das Verarbeiten das Senden einer Antwortnachricht in Antwort auf die Anfrage, wenn das Verarbeiten die Anfrage verarbeitet.
  • In einer Ausführungsform enthält das Verarbeiten das Speichern der Schreibschutzinformationen.
  • In einer weiteren Ausführungsform umfasst das Verfahren das Empfangen, an einem Speichergerät, eines Schreibbefehls zum Schreiben von Daten in einen ersten Bereich eines nicht-flüchtigen Speichers in dem Speichergerät, und das Bestimmen, an dem Speichergerät, ob der Schreibbefehl zu verarbeiten ist, basierend auf gespeicherten Schreibschutzinformationen für einen oder mehrere Speicherbereiche, die durch den ersten Bereich abgedeckt werden, für jeden Speicherbereich. Die Schreibschutzinformationen enthalten Startadressinformationen, die eine Logikblockadresse eines Starts des Speicherbereichs angeben, Längeninformationen, die eine Länge des Speicherbereichs angeben, und Beschreibbar-Informationen, die angeben, ob ein Schreibschutz auf den Speicherbereich anzuwenden ist.
  • In einer Ausführungsform bestimmt das Bestimmen, den Schreibbefehl nicht zu verarbeiten, wenn der erste Bereich einen der Speicherbereiche überlappt, mit denen Beschreibbar-Informationen assoziiert sind, die eine Anwendung des Schreibschutzes angeben.
  • In einer Ausführungsform bestimmt das Bestimmen, dass der erste Bereich einen der Speicherbereiche überlappt, wenn eine mit dem Schreibbefehl assoziierte Adresse in einen der Speicherbereiche fällt.
  • In einer Ausführungsform enthalten die Schreibschutzinformationen für jeden Speicherbereich weiterhin eine Partitionskennzeichnung, wobei die Partitionskennzeichnung eine Partition in dem nicht-flüchtigen Speicher identifiziert und wobei die Partition den Speicherbereich enthält. Wenn die Längeninformationen auf einen Bezugswert gesetzt sind, geben die Längeninformationen an, dass die gesamte identifizierte Partition schreibgeschützt ist. Das Bestimmen bestimmt, den Schreibbefehl nicht zu verarbeiten, wenn der erste Bereich einen der Speicherbereiche überlappt, mit denen Längeninformationen assoziiert sind, die auf den Bezugswert gesetzt sind.
  • In einer anderen Ausführungsform umfasst das Verfahren das Speichern von Schreibschutzinformationen für einen Speicherbereich eines nicht-flüchtigen Speichers. Die Schreibschutzinformationen enthalten Beschreibbar-Informationen und Typinformationen. Die Beschreibbar-Informationen geben an, ob ein Schreibschutz auf den Speicherbereich anzuwenden ist, und die Typinformationen geben einen Typ an, der aus einer Gruppe ausgewählt ist, die wenigstens einen ersten Typ enthält. Das Verfahren umfasst weiterhin das Gestatten einer Änderung der Beschreibbar-Informationen nach jedem Hochfahren des Speichers, wenn die Typinformationen der erste Typ sind, und das Setzen der Beschreibbar-Informationen, um das Anwenden des Schreibschutzes nach dem Hochfahren des Speichers anzugeben, wenn die Typinformationen der erste Typ sind.
  • In einer weiteren Ausführungsform umfasst das Verfahren das Senden einer Anfrage an ein Speichergerät, wobei die Anfrage anfragt, dass das Speichergerät Schreibschutzinformationen für einen Speicherbereich eines nicht-flüchtigen Speichers in dem Speichergerät aktualisiert. Die Anfrage enthält Schreibschutzinformationen. Die Schreibschutzinformationen enthalten Startadressinformationen, die eine Logikblockadresse eines Starts des Speicherbereichs angeben, Längeninformationen, die eine Länge des Speicherbereichs angeben, und Beschreibbar-Informationen, die angeben, ob ein Schreibschutz auf den Speicherbereich anzuwenden ist.
  • Eine weitere Ausführungsform betrifft ein Speichergerät.
  • In einer Ausführungsform enthält das Speichergerät einen nicht-flüchtigen Speicher und einen Controller. Der Controller ist konfiguriert, um eine Anfrage zu empfangen. Die Anfrage enthält einen Anfragenachricht-Authentifizierungscode und Schreibschutzinformationen. Die Schreibschutzinformationen enthalten Startadressinformationen und/oder Längeninformationen. Die Startadressinformationen geben eine Logikblockadresse an, an welcher ein Speicherbereich des nicht-flüchtigen Speichers beginnt, und die Längeninformationen geben eine Länge des Speicherbereichs an. Der Controller ist konfiguriert zum Erzeugen eines Nachrichtenauthentifizierungscodes basierend auf (1) den Startadressinformationen und/oder den Längeninformationen und (2) einem an dem Speichergerät gespeicherten Schlüssel. Der Controller ist konfiguriert zum Authentifizieren der Anfrage basierend auf dem erzeugten Nachrichtenauthentifizierungscode und dem Anfragenachricht-Authentifizierungscode. Und der Controller ist konfiguriert zum Verarbeiten der Anfrage basierend auf dem Ergebnis der Authentifizierung.
  • In einer anderen Ausführungsform enthält das Speichergerät einen nicht-flüchtigen Speicher und einen Controller. Der Controller ist konfiguriert zum Empfangen eines Schreibbefehls für das Schreiben von Daten in einen ersten Bereich eines nicht-flüchtigen Speichers in dem Speichergerät und zum bestimmen, ob der Schreibbefehl verarbeitet wird, basierend auf den gespeicherten Schreibschutzinformationen für einen oder mehrere Speicherbereiche, die durch den ersten Bereich abgedeckt werden. Für jeden Speicherbereich enthalten die Schreibschutzinformationen Startadressinformationen, die eine Logikblockadresse eines Starts des Speicherbereichs angeben, Längeninformationen, die eine Länge des Speicherbereichs angeben, und Beschreibbar-Informationen, die angeben, ob ein Schreibschutz auf den Speicherbereich anzuwenden ist.
  • Kurzbeschreibung der Figuren
  • Die oben genannten und andere Aufgaben und Merkmale werden durch die folgende Beschreibung mit Bezug auf die beigefügten Zeichnungen verdeutlicht, wobei in den verschiedenen Figuren durchgehend gleiche Bezugszeichen verwendet werden, um gleiche Teile anzugeben, sofern dies nicht eigens anders spezifiziert wird.
  • 1 ist ein Blockdiagramm, das schematisch ein Speichersystem zeigt.
  • 2 ist ein Blockdiagramm, das schematisch ein Flash-Speicher-basiertes UFS-System zeigt.
  • 3 ist ein Blockdiagramm, das schematisch ein Speichersystem gemäß einer Ausführungsform der erfinderischen Konzepte zeigt.
  • 4 ist ein Konzeptdiagramm, das eine Ausführungsform zeigt, in welcher ein Schreibschutzbereich durch die Logikblockadresse angegeben wird, die durch einen Host vorgesehen wird.
  • 5 ist ein Konzeptdiagramm, das eine Ausführungsform zeigt, in der die gesamte Partition eines Speicherbereichs schreibgeschützt wird.
  • 6 ist ein Konzeptdiagramm, das eine Ausführungsform zeigt, in der ein Schreibschutz(WP)-Deskriptor auf einen „NV-P”-Typ gesetzt ist.
  • 7 ist ein Zeitdiagramm, das eine Anfrage und eine Antwort für das Sperren oder Entsperren eines Schreibschutzes eines Speichersystems gemäß einer Ausführungsform der erfinderischen Konzepte zeigt.
  • 8 ist ein Konzeptdiagramm, das ein Verfahren zum Berechnen eines HMAC zeigt.
  • 9 ist ein Flussdiagramm, das schematisch ein HMAC-Authentifizierungsverfahren des Speichersystems von 3 zeigt.
  • 10 ist ein Flussdiagramm, das ein Schreibschutz-Ausführungsverfahren des Speichersystems von 3 zeigt.
  • 11 ist ein Konzeptdiagramm, das schematisch eine Ausführungsform zeigt, in der ein oder mehrere Bereiche eines Speichersystems gemäß einer Ausführungsform der erfinderischen Konzepte schreibgeschützt sind.
  • 12 ist ein Blockdiagramm, das schematisch eine Hardwarekonfiguration für ein Speichergerät basierend auf einem Flash-Speicher von 3 zeigt.
  • 13 ist ein Blockdiagramm, das schematisch einen Softwareschichtaufbau zeigt.
  • 14 ist ein Blockdiagramm, das ein Solid-State-Drive (SSD) zeigt, auf das ein Speichergerät gemäß den erfinderischen Konzepten angewendet ist.
  • 15 ist ein Blockdiagramm, das schematisch den SSD-Controller von 14 zeigt.
  • 16 ist ein Blockdiagramm, das schematisch ein elektronisches Gerät zeigt, in der ein Speichergerät gemäß einer Ausführungsform der erfinderischen Konzepte enthalten ist.
  • 17 ist ein Blockdiagramm, das schematisch eine Speicherkarte zeigt, auf die ein Speichergerät eines Benutzergeräts gemäß einer Ausführungsform der erfinderischen Konzepte angewendet ist.
  • Ausführliche Beschreibung
  • Im Folgenden werden Ausführungsformen im Detail mit Bezug auf die beigefügten Zeichnungen beschrieben. Die erfinderischen Konzepte können jedoch auch in verschiedenen anderen Formen verkörpert werden und sind nicht auf die hier beschriebenen Ausführungsformen beschränkt. Die Ausführungsformen sind Beispiele zur Verdeutlichung der Offenbarung und erläutern die erfinderischen Konzepte für den Fachmann. Dementsprechend werden bekannte Prozesse, Elemente und Techniken für einige der Ausführungsformen der erfinderischen Konzepte nicht beschrieben. Sofern nicht anders angegeben, werden in den beigefügten Zeichnungen und in der Beschreibung durchgehend gleiche Bezugszeichen verwendet, um einander entsprechende Elemente anzugeben. In den Zeichnungen können die Größen und relativen Größen von Schichten und Bereichen der Deutlichkeit halber übertrieben dargestellt sein.
  • Es ist zu beachten, dass die Bezeichnungen „erste”, „zweite”, „dritte” usw. hier verwendet werden, um verschiedene Elemente, Komponenten, Bereiche, Schichten und/oder Abschnitte zu beschreiben, wobei diese Elemente, Komponenten, Bereiche, Schichten und/oder Abschnitte jedoch nicht auf diese Bezeichnungen beschränkt sind. Die Bezeichnungen werden lediglich verwendet, um die verschiedenen Elemente, Komponenten, Bereiche, Schichten oder Abschnitte voneinander zu unterscheiden. Ein in der folgenden Beschreibung mit der Bezeichnung „erste” bezeichnetes Element, Komponente, Bereich, Schicht oder Abschnitt könnte also auch als mit der Bezeichnung „zweite” bezeichnet werden, ohne dass deshalb die Lehre der erfinderischen Konzepte verlassen wird.
  • Insbesondere werden relative Bezeichnungen wie „unter”, „untere”, „über”, „obere” usw. der Einfachheit halber verwendet, um die Beziehung eines Elements oder Merkmals zu anderen Elementen oder Merkmalen wie in den Figuren gezeigt zu beschreiben. Es ist zu beachten, dass relative räumliche Bezeichnungen auch verschiedene Ausrichtungen der Einrichtung während der Nutzung oder des Betriebs zusätzlich zu den in den Figuren gezeigten bedeuten können. Wenn zum Beispiel die in den Figuren gezeigte Einrichtung auf den Kopf gestellt wird, sind die mit „unten” oder „untere” bezeichneten Elemente oder Merkmale „oben” oder „über” den anderen Elementen oder Merkmalen angeordnet. Die Bezeichnungen „unten” oder „untere” können also sowohl eine Ausrichtung nach oben wie auch eine Ausrichtung nach unten bedeuten. Die Einrichtung kann auch anders ausgerichtet (um 90 Grad oder zu einer anderen Ausrichtung gedreht) sein, wobei die hier verwendeten räumlichen relativen Bezeichnungen in diesem Fall entsprechend zu interpretieren sind. Außerdem ist zu beachten, dass, wenn eine Schicht als „zwischen” zwei anderen Schichten angeordnet beschrieben wird, dies derart zu interpretieren ist, dass es sich um die einzige Schicht zwischen den zwei Schichten handeln kann oder auch eine oder mehrere andere dazwischen liegende Schichten vorhanden sein können.
  • Die hier verwendete Terminologie dient dazu, bestimmte Ausführungsformen zu beschreiben und schränkt die erfinderischen Konzepte in keiner Weise ein. Wenn hier Einrichtungen im Singular beschrieben werden, kann es sich auch um mehrere Einrichtungen handeln, sofern dies nicht durch den Kontext anders vorgegeben wird. Und wenn das Wort „umfassen” verwendet wird, ist dies derart zu verstehen, dass die genannten Merkmale, Ganzzahlen, Schritte, Operationen, Elemente und/oder Komponenten vorhanden sind, wobei jedoch auch eine oder mehrere andere Merkmale, Ganzzahlen, Schritte, Operationen, Elemente und/oder Komponenten und/oder Gruppen derselben vorhanden sein können. Dies gilt auch für das Wort „enthalten”. Weiterhin ist das Wort „Beispiel derart zu verstehen, dass es sich um ein veranschaulichendes Beispiel handelt.
  • Wenn davon gesprochen wird, dass ein Element oder eine Schicht an einem anderen Element oder einer anderen Schicht angeordnet, damit verbunden, damit gekoppelt oder dazu benachbart ist, kann es direkt daran angeordnet, damit verbunden, damit gekoppelt oder dazu benachbart sein oder können weitere dazwischen angeordnete Elemente oder Schichten vorhanden sein. Wenn dagegen gesagt wird, dass ein Element direkt an einem anderen Element oder einer Schicht angeordnet ist, direkt damit verbunden ist, direkt damit gekoppelt ist oder unmittelbar dazu benachbart ist, sind keine weiteren dazwischen angeordneten Elemente oder Schichten vorhanden.
  • Sofern nicht anders definiert, weisen alle hier verwendeten Begriffe (einschließlich von technischen und wissenschaftlichen Begriffen) die dem Fachmann auf dem Gebiet der erfinderischen Konzepte vertraute Bedeutung auf. Es ist weiterhin zu beachten, dass die in entsprechenden Nachschlagewerken angegebenen Definitionen dieser Begriffe im Kontext des technischen Gebiets und nicht in einem idealisierten Sinn oder einem übermäßig formalen Sinn zu interpretieren sind, sofern dies nicht eigens so angegeben wird.
  • 1 ist ein Blockdiagramm, das schematisch ein Speichersystem zeigt. Wie in 1 gezeigt, enthält ein Speichersystem 1000 einen Host 1100 und ein Speichergerät 1200. Der Host 1100 und das Speichergerät 1200 können über verschiedene standardisierte Schnittstellen wie etwa Serial ATA (SATA), Universal Flash Storage (UFS), Small Computer System Interface (SCSI), Serial Attached SCSI (SAS) und Embedded MMC (eMMC) verbunden sein.
  • Wie in 1 gezeigt, sind eine Host-Schnittstelle 1101 und eine Geräteschnittstelle 1201 über Datenleitungen DIN und DOUT verbunden, um Daten oder Signale auszutauschen, und weiterhin über eine Stromleitung PWR für eine Stromversorgung verbunden. Der Host 1100 enthält einen internen Speicher 1105, einen Host-Controller 1130 und einen Pufferspeicher 1140.
  • Der interne Speicher 1105 speichert ein Anwendungsprogramm 1110 und einen Gerätetreiber 1120. Der interne Speicher 1105 kann in dem Host-Controller 1130 eingebettet sein. Das Anwendungsprogramm 1110 kann eines von verschiedenen Anwendungsprogrammen für die Ausführung durch den Host 1100 sein. Der Gerätetreiber 1120 kann Peripheriegeräte, die über eine Verbindung mit dem Host 1100 verwendet werden, und zum Beispiel das Speichergerät 1200 treiben. Die Anwendung 1110 und der Gerätetreiber 1120 können separate Softwaremodule sein, die auf dem Host-Controller 1130 betrieben werden. Der Host-Controller 1130 tauscht Daten mit dem Speichergerät 1200 über die Host-Schnittstelle 1101 aus. In einer Ausführungsform enthält der Host-Controller 1130 eine oder mehrere zentrale Verarbeitungseinheiten (CPUs), die das Anwendungsprogramm 1110 und den Gerätetreiber 1120 ausführen. In einer alternativen Ausführungsform enthält der Host-Controller 1130 Hardware-Logikschaltungen, die durch das Anwendungsprogramm 1110 und den Gerätetreiber 1120 als Formware konfiguriert werden. In einer weiteren Ausführungsform kann der Host-Controller 1130 eine Kombination aus CPUs und Hardware-Logikschaltungen sein.
  • Der Pufferspeicher 1140 wird als ein Hauptspeicher und/oder ein Cachespeicher des Hosts 1100 verwendet und wird auch als ein Treiberspeicher für Treibersoftware wie etwa die Anwendung 1110 oder den Gerätetreiber 1120 verwendet.
  • Das Speichergerät 1200 ist mit dem Host 1100 über die Geräteschnittstelle 1201 verbunden. Das Speichergerät 1200 enthält einen nicht-flüchtigen Speicher 1210, einen Geräte-Controller 1230 und einen Pufferspeicher 1240. Der nicht-flüchtige Speicher 1210 kann Folgendes umfassen: einen Flash-Speicher, einen MRAM, einen PRAM, einen FeRAM usw. Der Geräte-Controller 1230 steuert den Gesamtbetrieb des nicht-flüchtigen Speichers 1210 einschließlich einer Schreiboperation, einer Leseoperation, einer Löschoperation usw. Der Geräte-Controller 1230 kann eine oder mehrere programmierte CPUs, konfigurierte Hardware-Logikschaltungen oder eine Kombination aus diesen enthalten. Der Geräte-Controller 1230 tauscht eine Adresse mit dem nicht-flüchtigen Speicher 1210 oder dem Pufferspeicher 1240 oder Daten mit dem nicht-flüchtigen Speicher 1210 oder dem Pufferspeicher 1240 über einen Datenbus aus.
  • Der Pufferspeicher 1240 kann verwendet werden, um aus dem nicht-flüchtigen Speicher 1210 gelesene oder in demselben zu speichernde Daten vorübergehend zu speichern. Der Pufferspeicher 1240 kann mit einem flüchtigen Speicher oder einem nicht-flüchtigen Speicher implementiert sein. Der Pufferspeicher 1240 kann in dem Geräte-Controller 1230 eingebettet oder zusammen mit dem Geräte-Controller 1230 integriert sein.
  • Das Speichersystem 1000 von 1 kann auf ein mobiles Gerät oder ein anderes elektronisches Gerät angewendet werden, das auf einem Flash-Speicher basiert. Weiter unten wird beispielhaft auf ein Universal Flash Storage (UFS) Bezug genommen, um die Konfiguration und das Betriebsverfahren des Speichersystems 1000 von 1 zu beschreiben.
  • 2 ist ein Blockdiagramm, das schematisch ein Flash-basiertes UFS-System zeigt. Wie in 2 gezeigt, umfasst ein UFS-System 2000 einen UFS-Host 2100 und ein UFS-Gerät 2200.
  • Der UFS-Host 2100 enthält einen internen Speicher 2105, einen Host-Controller 2130 und einen Puffer-RAM 2140. Der interne Speicher 2105 speichert Anwendungsprogramme 2110 und Gerätetreiber 2120. Der Host-Controller 2130 kann wie der Host-Controller 1130 eine oder mehrere CPUs, Hardware-Logikschaltungen oder eine Kombination aus diesen enthalten, die die Anwendung 2110 und die Gerätetreiber 2120 ausführen. Wie in 2 gezeigt ist der Host-Controller 2130 derart konfiguriert, dass er eine Befehlswarteschlange 2131, einen Host-DMA 2132 und einen Energiemanager 2133 enthält. Durch den Controller 2130 erzeugte Befehle (z. B. ein Schreibbefehl) zum Ausführen der UFS-Anwendung 2110 und des Gerätetreibers 2120 werden durch die Befehlswarteschlange 2131 des Host-Controllers 2130 verwaltet. Die Befehlswarteschlange 2131 verwaltet sequentiell Befehle, die für das UFS-Gerät 2200 vorzusehen sind. Zu dem Host-DMA 2132 werden Befehle vorgesehen, die in der Befehlswarteschlange 2131 gespeichert sind. Der Host-DMA 2132 sendet die Befehle an das UFS-Gerät 2200 über eine Host-Schnittstelle 2101.
  • Das UFS-Gerät 2200 enthält einen Flash-Speicher 2210, einen Geräte-Controller 2230 und einen Puffer-RAM 2240. Der Geräte-Controller 2230 enthält eine oder mehrere programmierte CPUs, konfigurierte Hardware-Logikschaltungen oder eine Kombination aus diesen. In dieser Konfiguration enthält die Host-Steuereinrichtung 2230 einen Befehlsmanager 2232, einen Flash-DMA 2233, einen Sicherheitsmanager 2234, einen Puffermanager 2235, eine Flash-Übersetzungsschicht (FTL) 2236 und einen Flash-Manager 2237.
  • Ein von dem UFS-Host 2100 an das UFS-Gerät 2200 übertragener Befehl wird zu dem Befehlsmanager 2232 über eine Geräteschnittstelle 2201 vorgesehen. Der Befehlsmanager 2232 analysiert einen von dem UFS-Host 2100 vorgesehenen Befehl und authentifiziert den Befehl mittels des Sicherheitsmanagers 2234. Der Befehlsmanager 2232 weist den Puffer-RAM 2240 zu, um Daten über den Puffermanager 2235 zu empfangen. Wenn er für eine Datenübertragung bereit ist, sendet der Befehlsmanager 2232 ein RTT (READY_TO_TRANSFER) UPIU an den UFS-Host 2100. Ein Paket basierend auf dem UFS-Standard wird als UPIU bezeichnet.
  • Der UFS-Host 2100 sendet Daten an den UFS-Dienst 2200 in Antwort auf das RTT UPIU. Die Daten werden an das UFS-Gerät 2200 über den Host-DMA 2132 und die Host-Schnittstelle 2101 gesendet. Das UFS-Gerät 2200 speichert die empfangenen Daten in dem Puffer-RAM 2240 über den Puffermanager 2235. Die in dem Puffer-RAM 2240 gespeicherten Daten werden zu dem Flash-Manager 2237 über den Flash-DMA 2233 vorgesehen. Der Flash-Manager 2237 speichert Daten an einer ausgewählten Adresse des Flash-Speichers 2210 basierend auf Adressmappinginformationen der FTL 2236.
  • Wenn eine Datenübertragungsoperation und eine Programmoperation für einen Befehl abgeschlossen wurden, kann das UFS-Gerät 2200 ein Antwortsignal an den UFS-Host 2100 über eine Schnittstelle senden und kann den UFS-Host 2100 über den Abschluss des Befehls informieren. Der UFS-Host 2100 informiert den Gerätetreiber 2120 und die Anwendung 2110, die auf dem Host-Controller 2130 ausgeführt werden, darüber, ob ein Befehl in Entsprechung zu dem Antwortsignal verarbeitet wird, und beendet dann eine Operation auf dem Befehl.
  • Das Vorsehen von Zuverlässigkeit und Sicherheit bei der Verwendung des UFS-Systems 2000 in einem mobilen Gerät umfasst das Setzen und Aufheben von Schreibschutzdaten. Das UFS-System 2000 gemäß einer Ausführungsform der erfinderischen Konzepte kann einen Befehl mittels eines Key-ed Crypto Hash, eines privaten Schlüssels und einer Anfragezählung authentifizieren.
  • Die erfinderischen Konzepte können den Schreibschutz über eine Authentifizierungsprozedur setzen oder aufheben oder können ein Attribut oder den Typ des Schreibschutzes ändern. Weiterhin können die erfinderischen Konzepte einen Schreibschutzbereich durch eine Einheit einer Logikblockadresse LBA des Hosts 2100 angeben.
  • I. Aufbau des WP(Schreibschutz)-Deskriptors
  • 3 ist ein Blockdiagramm, das eine andere Ausführungsform der erfinderischen Konzepte zeigt. In einer Ausführungsform kann der Host 3100 gleich dem Host 2100 sein. Das Speichergerät 3200 kann gleich dem Speichergerät 2200 sein. In einer anderen Ausführungsform kann das Speichergerät 3200 die Hardwarekonfiguration von 12 aufweisen.
  • 12 ist ein Blockdiagramm, das schematisch eine Hardwarekonfiguration eines Speichergeräts basierend auf dem Flasch-Speicher-basierten UFS-System von 3 zeigt. 13 ist ein Blockdiagramm, das schematisch einen Softwareschichtaufbau zeigt, der durch die CPU 3210 in dem Speicher-Controller 3200b des Speichergeräts 3200 ausgeführt wird.
  • Wie in 12 gezeigt, enthält das Speichergerät 3200 einen Flash-Speicher 3200a und einen Speicher-Controller 3200b. Der Speicher-Controller 3200b ist mit dem Host 3100 über einen Host-Schnittstellen-Controller 3201 und mit dem Flash-Speicher 3200a über einen Flash-Schnittstellen-Controller 3202 verbunden. Der Speicher-Controller 3200b enthält eine zentrale Verarbeitungseinheit (CPU) 3210, einen Code-RAM 3221, einen Daten-RAM 3222, einen Puffer-RAM 3223, einen ROM 3230, einen Direktspeicherzugriff (DMA) 3240 zum direkten Zugreifen auf einen Speicher, einen Hash-basierten Nachrichtenauthentifizierungscode (HMAC) 3250 für die Datensicherheit, einen AES (Advanced Encryption Standard) 3260 und eine ECC (Fehlerkorrekturcodierung) 3270 zum Korrigieren von Datenfehlern. Der DMA 3240, der HMAC 3250, der AES 3260 und die ECC 3270 sind Hardware-Logikschaltungen.
  • Die CPU 3210 steuert den Gesamtbetrieb des Speicher-Controllers 3200b. Zum Beispiel lädt die CPU 3210 beim Booten einen in dem Flash-Speicher 3200a oder dem ROM 3230 gespeicherten Boot-Code in den Code-RAM 3221, um das Booten des Speichergeräts 3200 zu steuern.
  • Wie in 13 gezeigt, enthält ein Softwareschichtaufbau des Speichergeräts 3200 eine Host-Schnittstellenschicht (HIL) 110, eine Sicherheitsschicht (SEL) 115, eine Flash-Übersetzungsschicht (FTL) 120, eine Flash-Schnittstellenschicht (FIL) 130 und eine Flash-Wiederherstellungsschicht (FRL) 140.
  • Basierend auf der Host-Schnittstellenschicht (HIL) 110 kann die CPU 3210 Operationen zum Empfangen von Daten von einem Host über den Host-Schnittstellen-Controller 3201 steuern und die empfangenen Daten an dem Daten-RAM 3221 speichern. Die HIL 110 kann den Befehlsmanager 3232 enthalten. Wenn Daten mit dem Host ausgetauscht werden, verwendet die CPU 3210 die Sicherheitsschicht (SEL) 115, um einen Host-Befehl zu authentifizieren und einen schreibzuschützenden Bereich zu setzen. Die Sicherheitsschicht (SEL) 115 kann den Sicherheitsmanager 3234 enthalten.
  • Auf der Basis der Flash-Schnittstellenschicht (FIL) 130 sieht die CPU 3210 an dem Daten-RAM 3222 oder dem Puffer-RAM 3223 gespeicherte Daten zu dem Flash-Speicher 3200a über den Flash-Schnittstellen-Controller 3202 vor. Die CPU 3210 verwaltet ein Adressmapping des Flash-Speichers 3200a in Abhängigkeit von der Flash-Übersetzungsschicht (FTL) 120. Die CPU 3210 verwaltet eine Wiederherstellungsoperation des Flash-Speichers 3200a in Abhängigkeit von der Flash-Wiederherstellungsschicht (FRL) 140.
  • Der WP-Deskriptor ist an einem nicht-flüchtigen Speicher wie etwa einem Flash-Speicher 2210 oder 3200a oder an einem ROM (nicht gezeigt) gespeichert und wird in einen flüchtigen Speicher wie etwa einen DRAM oder einen SRAM (z. B. den Puffer 2240 oder 3223) beim Hochfahren geladen. Der WP-Deskriptor wird verwendet, um den Schreibschutz zu setzen oder aufzuheben oder um ein Attribut des Schreibschutzes zu ändern.
  • Die folgende Tabelle 1 zeigt einen Aufbau und gibt eine Beschreibung des WP-Deskriptors. Tabelle 1
    Name Beschreibung
    PID (Partitions-ID) Partitions-ID für die Anwendung eines Schreibschutzes
    Start-LBA Startadresse für einen Schreibschutz
    Länge Schreibzuschützende Größe
    Wenn die Länge ,0' ist, wird die gesamte Partition schreibgeschützt
    Beschreibbar Ob ein Schreibschutz anzuwenden ist, wird durch True/False angegeben
    Typ P Aufrechterhalten des Schreibschutzes bis zum Herunterfahren oder einem Hardware(HW)-Reset Immer Ändern von Beschreibbar zu True nach dem Hochfahren Wenn False, bleibt False bis zu HW-Reset oder Hochfahren
    Typ NV-P Immer Ändern von Beschreibbar zu False nach Herunterfahren oder HW-Reset, auch wenn Beschreibbar durch eine Anfrage geändert und angewendet wird
    Typ NV Ändern von Beschreibbar nur durch eine Anfrage
  • Wie in der Tabelle 1 angegeben, besteht der WP-Deskriptor aus ,Partitions-ID' (PID), ,Start-LBA', ,Länge', ,Beschreibbar' und ,Typ'. Die Partitions-ID (PID) wird verwendet, um eine schreibzuschützende Partition des Flash-Speichers zu identifizieren. Die Start-LBA gibt eine Startadresse eines schreibzuschützenden logischen Blocks an. Die Länge ist die Größe eines schreibzuschützenden Bereichs.
  • 4 ist ein Konzeptdiagramm, das eine Ausführungsform zeigt, in der ein Schreibschutzbereich teilweise durch die Logikblockadresse eines Hosts definiert wird. Wie in 4 gezeigt, ist eine Partitions-ID ,1'. Das heißt, dass eine erste Partition identifiziert wird. Eine Start-LBA und eine Länge eines WP-Deskriptors sind jeweils ,100' und ,900'. Der Schreibschutzbereich beginnt also an der LBA 100 und endet an der LBA 1000. Die Start-LBA und die Länge definieren nämlich den Speicherbereich der Partition, der schreibgeschützt werden kann.
  • 5 ist ein Konzeptdiagramm, das eine Ausführungsform zeigt, in welcher die gesamte Partition schreibgeschützt ist. Wenn wie in der Tabelle 1 gezeigt die Länge eines WP-Deskriptors auf ,0' gesetzt ist, ist die gesamte Partition schreibgeschützt. In einer in 5 gezeigten Ausführungsform sind eine Partitions-ID und eine Länge eines WP-Deskriptors jeweils ,1' und ,0'. Es wird also die gesamte Partition 1 schreibgeschützt.
  • In der Tabelle 1 gibt ,Beschreibbar” an, ob ein Schreibschutz angewendet wird. ,Beschreibbar' kann auf ,True' oder ,False' gesetzt werden. Ein Bereich, in dem ,Beschreibbar' auf ,True' gesetzt ist, ist beschreibbar und damit nicht schreibgeschützt. Ein Bereich, in dem ,Beschreibbar' auf ,False' gesetzt ist, ist schreibgeschützt.
  • In der Tabelle 1 ist der Schreibschutz in drei Typen unterteilt. Ein ,P'-Typ ist ein Typ, in dem der Schreibschutz bis zum Herunterfahren oder einem Hardware-Reset aufrechterhalten wird. Nach dem Hochfahren wird ,Beschreibbar' immer auf ,True' gesetzt. Wenn es auf ,False' gesetzt ist, wird ,Beschreibbar' bis zum Herunterfahren oder einem Hardware-Reset nicht geändert. Ein ,NV'-Typ ist ein Typ, in dem ,Beschreibbar' nur durch die Anfrage eines Hosts 2100 oder 3100 geändert wird. Ein ,NV-P'-Typ ist ein Typ, in dem ,Beschreibbar' durch eine Anfrage des Hosts 2100 oder 3100 geändert wird. Wenn jedoch ein WP-Deskriptor auf den ,NV-P'-Typ gesetzt ist, wird ,Beschreibbar' immer nach dem Herunterfahren oder einem Hardware-Reset zu ,False' geändert.
  • 6 ist ein Konzeptdiagramm, das eine Ausführungsform zeigt, in der ein WP-Deskriptor auf einen ,NV-P'-Typ gesetzt ist. Wie in 6 gezeigt, sind ,Partitions-ID' (PID), ,Start-LBA', ,Länge', ,Beschreibbar' und ,Typ' eines WP-Deskriptors jeweils auf ,1', ,100', ,900', ,True' und ,NV-P' gesetzt. Bei einem Herunterfahren oder einem Hardware-Reset eines Speichersystems 2000 oder 3000 wird ,Beschreibbar' zu ,False' geändert, weil der WP-Deskriptor auf den ,NV-P'-Typ gesetzt ist. Im schreibgeschützten Zustand ist ein Bereich (von LBA 100 bis LBA 1000) nicht beschreibbar.
  • Die folgende Tabelle 2 zeigt ein Beispiel für die Anfangswerte des WP-Deskriptors von 3 zur Verdeutlichung. Der WP-Deskriptor kann die in der Tabelle 2 angegebenen Werten in einem Anfangszustand aufweisen. Tabelle 2
    PID (Partitions-ID) Start-LBA Länge Beschreibbar Typ
    1 0 0 True P
    2 0 0 True P
    3 0 0 True P
    ... ... ... ... ...
    n 0 0 True P
  • In der Tabelle 2 ist ein Speicherbereich eines Speichergeräts 2200 oder 3200 in n Partitionen geteilt. Die Start-LBAs und Größen der Partitionen PID1 bis PIDn sind auf ,0' gesetzt. Die gesamte Partition wird schreibgeschützt, weil eine Länge auf ,0' gesetzt ist. In jeder der Partitionen PID1 bis PIDn ist ,Beschreibbar' auf ,True' gesetzt und ist der Typ auf ,P' gesetzt.
  • Die folgende Tabelle 3 zeigt ein Beispiel zur Verdeutlichung einer Konfiguration eines WP-Deskriptors zu einem Zeitpunkt während des Betriebs eines Speichersystems 2000 oder 3000. Tabelle 3
    PID (Partitions-ID) Start-LBA Länge Beschreibbar Typ
    1 0 5000 False P
    2 0 4000 True NV-P
    3 9000 10000 True P
    ... ... ... ... ...
    n 0 2000 False NV
  • In der Tabelle 3 sind die Start-LBA und die Länge einer ersten Partition PID1 jeweils auf ,0' und ,5000' gesetzt. ,Beschreibbar' ist auf ,False' gesetzt, und der Schreibschutztyp ist P. Die Start-LBA und die Länge einer zweiten Partition PID2 sind jeweils auf ,0' und ,4000' gesetzt. ,Beschreibbar' ist auf ,True' gesetzt, und der Schreibschutztyp ist ,NV-P'. Das heißt, dass ,Beschreibbar' eines Schreibschutzbereichs LBA 0 bis LBA 4000 der zweiten Partition PID2 durch eine Anfrage eines Hosst 3100 geändert werden kann und ,Beschreibbar' nach einem Herunterfahren oder einem Hardware-Reset immer zu ,False' geändert wird.
  • Die Start-LBA und die Länge einer dritten Partition PID3 sind jeweils ,9000' und ,10000'. ,Beschreibbar' ist auf ,True' gesetzt und der Schreibschutztyp ist ,P'. Die Start-LBA und die Länge einer n-ten Partition PIDn sind jeweils ,0' und ,2000'. ,Beschreibbar' ist auf ,False' gesetzt, und der Schreibschutztyp ist ,NV'. ,Beschreibbar' der n-ten Partition PIDn kann nur durch eine Anfrage des Hosts 3100 geändert werden.
  • Die folgende Tabelle 4 zeigt ein Beispiel, in dem ein WP-Deskriptor nach einem Herunterfahren oder einem Hardware(HW)-Reset geändert wurde. Tabelle 4
    PID (Partitions-ID) Start-LBA Länge Beschreibbar Typ
    1 0 5000 True P
    2 0 4000 False NV-P
    3 9000 10000 True P
    ... ... ... ... ...
    n 0 2000 False NV
  • In der Tabelle 4 ist ,Beschreibbar' der ersten Partition PID1 von ,False' zu ,True' im Vergleich zu der Tabelle 3 geändert. In der Tabelle 3 ist ,Beschreibbar' einer zweiten Partition PID2 auf ,True' gesetzt. Bei einem Herunterfahren oder einem Hardware-Reset wird ,Beschreibbar' des WP-Deskriptors von ,True' zu ,False' geändert, weil der Schreibschutztyp ,NV-P' ist. ,Beschreibbar' einer dritten Partition PID3 hält ,True' aufrecht. ,Beschreibbar' kann durch eine Anfrage des Host 3100 geändert werden, weil der Schreibschutztyp einer n-ten Partition PIDn ,NV' ist.
  • II. Anfrage und Antwort für das Setzen eines Schreibschutzes
  • In den erfinderischen Konzepten wird angenommen, dass ein Host 3100 und ein Speichergerät 3200 einen privaten Schlüssel auf sichere Weise gemeinsam verwenden.
  • 7 ist ein Zeitdiagramm, das eine Anfrage und eine Antwort für das Setzen oder Aufheben eines Schreibschutzes eines Speichersystems gemäß einer Ausführungsform der erfinderischen Konzepte zeigt. Wie in 7 gezeigt, sieht der Host 3100 für das Speichergerät 3200 eine Anfrage zum Setzen und Aufheben eines Schreibschutzes vor. Das Speichergerät 3200 empfängt die Anfrage des Hosts 3100 und sieht eine Antwort in Entsprechung zu der Anfrage vor.
  • Wie in 7 gezeigt, kann der Host 3100 für das Speichergerät 3200 vier Typen von Anfragen zum Setzen und Aufheben eines Schreibschutzes vorsehen. Das heißt, dass der Host 3100 für das Speichergerät 3200 eine WP-Deskriptor-Aktualisierungszähler-Leseanfrage, eine WP-Deskriptor-Leseanfrage, eine WP-Deskriptor-Aktualisierungsanfrage und eine Ergebnis-Leseanfrage vorsieht.
  • Das Speichergerät 3200 sieht für den Host 3100 drei Typen von Antworten auf eine Anfrage des Hosts 3100 vor. Das heißt, dass das Speichergerät 3200 für den Host 3100 eine WP-Deskriptor-Aktualisierungszähler-Leseantwort, eine WP-Deskriptor-Leseantwort und eine Ergebnis-Leseantwort vorsieht. Der Host 3100 kann Antworten von dem Speichergerät 3200 zu verbleibenden anderen Anfragen als der WP-Deskriptor-Aktualisierungsanfrage empfangen.
  • Die folgende Tabelle 5 zeigt den Aufbau eines Datenrahmens für die Verarbeitung jeder Anfrage und Antwort. Tabelle 5
    Name Beschreibung
    Anfrage/Antwort Vier Anfragetypen für das Setzen und Aufheben eines Schreibschutzes
    Typ und für das Ändern von dessen Konfiguration: (1) 0x1: WP-Deskriptor-Aktualisierungszähler-Leseanfrage (2) 0x2: WP-Deskriptor-Leseanfrage (3) 0x3: WP-Deskriptor-Aktualisierungsanfrage (4) 0x4: Ergebnis-Leseanfrage Drei Antworttypen für das Setzen und Aufheben eines Schreibschutzes und für das Ändern von dessen Konfiguration: (1) 0x5: WP-Deskriptor-Aktualisierungszähler-Leseantwort (2) 0x6: WP-Deskriptor-Leseantwort (3) 0x7: Ergebnis-Leseantwort
    WP-Deskriptor-Aktualisierungszähler Bis jetzt angefragter WP-Deskriptor-Aktualisierungszähler
    Nonce Zufallszahl zum Verhindern einer Replay-Attacke
    WP-Deskriptor anzuwendender WP-Deskriptor (Anfragetyp = 0x3) angewendeter WP-Deskriptor (Antworttyp = 0x6)
    Ergebnis Ergebnis auf Anfrage Ursachen für Erfolg oder Fehlschlag
    HMAC MMAC zum Prüfen auf eine authentifizierte Anfrage
  • Der Host 3100 sieht für das Speichergerät 3200 einen Datenrahmen vor, der wie in der Tabelle 5 organisiert ist, um eine Operation in Entsprechung zu jeder Anfrage durchzuführen. Dabei können die Ergebnisse der WP-Deskriptor-Aktualisierungszähler-Leseanfrage und der WP-Deskriptor-Leseanfrage jeweils durch entsprechende Antworten geprüft werden. Im Gegensatz dazu kann ein Ergebnis der WP-Deskriptor-Aktualisierungsanfrage durch die Ergebnis-Leseanfrage geprüft werden.
  • In der Tabelle 5 bedeutet ,WP-Deskriptor-Aktualisierungszähler' einen bis jetzt angefragten Zählerwert. ,Nonce” ist eine Zufallszahl zum Verhindern einer Replay-Attacke. ,WP-Deskriptor' bedeutet einen anzuwendenden WP-Deskriptor oder einen angewendeten WP-Deskriptor. ,Ergebnis' ist ein Ergebnis zu einer Anfrage und gibt an, ob eine Frage erfolgreich ist oder fehlschlägt, und gibt weiterhin die Ursache für das Fehlschlagen an. ,HMAC' (Hash-based Message Authentification Code) wird verwendet, um eine Anfrage zu authentifizieren. Der Host 3100 berechnet den HMAC für ,WP-Deskriptor-Aktualisierungsanfrage' mittels eines Schlüssels und einer Nachricht.
  • 8 ist ein Konzeptdiagramm, das ein Verfahren zum Berechnen eines HMAC beschreibt. HMAC (Hash-based Message Authentification Code) kann durch einen in 12 gezeigten Sicherheitsmanager 3234 oder durch den HMAC 3250 berechnet werden. Wie in 8 gezeigt, berechnet der Sicherheitsmanager 3234 den HMAC mittels eines privaten Schlüssels und einer Nachricht. Die Nachricht enthält ,Anfragetyp', ,WP-Deskriptor-Aktualisierungszähler', ,Nonce', ,WP-Deskriptor' und ,Ergebnis'. Der Sicherheitsmanager 3234 berechnet den HMAC mittels MD5, SHA1, SHA256 usw.
  • Im Folgenden werden die in 7 gezeigten Anfragen und Antworten beschrieben.
  • 1. WP-Deskriptor-Aktualisierungszähler-Leseanfrage/-antwort
  • Ein Host 3100 fragt einen bis jetzt angefragten WP-Deskriptor-Aktualisierungszähler an, um einen Schreibschutz zu setzen. Der Host 3100 sieht für ein Speichergerät 3200 eine WP-Deskriptor-Aktualisierungszähler-Leseanfrage vor, um anzufragen, wie oft ein WP-Deskriptor aktualisiert wurde.
  • Die folgende Tabelle 6 zeigt einen Datenrahmen der WP-Deskriptor-Aktualisierungszähler-Leseanfrage. Tabelle 6
    Name Beschreibung
    Anfragetyp 0x1
    WP-Deskriptor-Aktualisierungszähler 0x0
    Nonce Durch den Host erzeugte Zufallszahl
    WP-Deskriptor 0x0
    Ergebnis 0x0
    HMAC 0x0
  • In der Tabelle 6 ist ,Anfragetyp' ,0x1', ist ,WP-Deskriptor-Aktualisierungszähler' ,0x0' (weiter unten beschrieben) und ist ,Nonce' eine Zufallszahl, die ein Host erzeugt. Die CPU in dem Host kann einen Zufallszahlgenerator enthalten. ,WP-Deskriptor' ist ,0x0', ,Ergebnis' ist ,0x0' und HMAC ist ,0x0'.
  • Das Speichergerät 3200 sieht für den Host 3100 eine in der folgenden Tabelle 7 gezeigte Antwort auf die in der Tabelle 6 gezeigte Anfrage vor. Das heißt, dass der Host 3100 einen wie in der folgenden Tabelle 7 organisierten Datenrahmen liest und einen aktuellen WP-Deskriptor-Aktualisierungszähler prüft. Tabelle 7
    Name Beschreibung
    Antworttyp 0x5
    WP-Deskriptor-Aktualisierungszähler Aktueller Wert des mobilen Speichers
    Nonce Durch den Host erzeugte Zufallszahl
    WP-Deskriptor 0x0
    Ergebnis Ausführungsergebnis der Anfrage
    HMAC Durch den mobilen Speicher berechnetes HMAC
  • In der Tabelle 7 ist ,Antworttyp' ,0x5' und gibt ,WP-Deskriptor-Aktualisierungszähler' an, wie oft das Speichergerät 3200 den ,WP-Deskriptor' aktualisiert hat. Der Sicherheitsmanager 3234 kann einen Zähler enthalten, der jedesmal inkrementiert wird, wenn der WP-Deskriptor aktualisiert wird. ,Nonce' ist eine Zufallszahl, die ein Host erzeugt und die in der Anfrage empfangen wird. ,WP-Deskriptor' ist ,0x0', ,Ergebnis' ist ein Ergebnis der Ausführung einer Anfrage und ,HMAC' ist ein durch einen Sicherheitsmanager 3234 berechneter Wert.
  • Das Speichergerät 3200 berechnet ,MHAC' unter Verwendung von in der folgenden Tabelle 8 gezeigten Werten, wenn ein in der Tabelle 7 gezeigter Datenrahmen erzeugt wird. Tabelle 8
    Name Beschreibung
    Privater Schlüssel Gemeinsam verwendeter privater Schlüssel
    Antworttyp 0x5
    WP-Deskriptor-Aktualisierungszähler Aktueller Wert des mobilen Speichers
    Nonce Durch den Host erzeugte Zufallszahl
    WP-Deskriptor 0x0
    Ergebnis Ausführungsergebnis der Anfrage
  • In der Tabelle 8 ist ,Privater Schlüssel' ein Schlüssel, den der Host 3100 und das Speichergerät 3200 gemeinsam verwenden (und der z. B. zuvor während der Herstellung in dem ROM 3230 gespeichert wurde). ,Antworttyp' ist ,0x5', und ,WP-Deskriptor-Aktualisierungszähler' gibt an, wie oft das Speichergerät 3200 ,WP-Deskriptor' bis jetzt aktualisiert hat. ,Nonce' ist eine Zufallszahl, die ein Host erzeugt. ,WP-Deskriptor' ist ,0x0', und ,Ergebnis' ist ein Ergebnis der Ausführung einer Anfrage. Der Host 3100 liest einen Datenrahmen und berechnet dann den HMAC. Der Host 3100 authentifiziert eine Antwort unter Verwendung des HMAC und prüft einen ,Nonce'-Wert, um eine Replay-Attacke zu verhindern.
  • 2. WP-Deskriptor-Leseanfrage
  • Um einen Schreibschutz zu setzen, liest der Host 3100 einen derzeit angewendeten WP-Deskriptor und prüft dann die aktuelle Einstellung und Konfiguration. Der Host 3100 sieht eine ,WP-Deskriptor-Leseanfrage' für das Speichergerät 3200 vor. Die folgende Tabelle 9 zeigt einen Datenrahmen für ,WP-Deskriptor-Leseanfrage'. Tabelle 9
    Name Beschreibung
    Anfragetyp 0x2
    WP-Deskriptor-Aktualisierungszähler 0x0
    Nonce Durch den Host erzeugte Zufallszahl
    WP-Deskriptor 0x0
    Ergebnis 0x0
    HMAC 0x0
  • In der Tabelle 9 ist ,Anfragetyp' ,0x2', ist ,WP-Deskriptor-Aktualisierungszähler' ,0x0' und ist ,Nonce' eine Zufallszahl, die ein Host erzeugt. ,WP-Deskriptor' ist ,0x0', ,Ergebnis' ist ,0x0' und ,HMAC' ist ,0x0'.
  • Das Speichergerät 3200 sieht für den Host 3100 eine in der folgenden Tabelle 10 gezeigte Antwort auf die in der Tabelle 9 gezeigte Anfrage vor. Der Host 3100 liest einen in der Tabelle 10 gezeigten Datenrahmen und prüft ,WP-Deskriptor'. Tabelle 10
    Name Beschreibung
    Antworttyp 0x6
    WP-Deskriptor-Aktualisierungszähler 0x0
    Nonce Durch den Host erzeugte Zufallszahl
    WP-Deskriptor Aktueller Wert des mobilen Speichers
    Ergebnis Ausführungsergebnis der Anfrage
    HMAC Durch den mobilen Speicher in der Tabelle 11 berechneter HMAC
  • In der Tabelle 11 ist ,Antworttyp' ,0x6' und ist ,WP-Deskriptor-Aktualisierungszähler' ,0x0'. ,Nonce' ist eine Zufallszahl, die ein Host erzeugt. ,WP-Deskriptor' ist ein aktueller ,WP-Deskriptor'-Wert des Speichergeräts 3200, und ,Ergebnis' ist das Ergebnis der Ausführung einer Anfrage. ,HMAC' ist ein Wert, den ein Sicherheitsmanager 3234 oder der HMAC 3250 berechnet.
  • Das Speichergerät 3200 berechnet ,HMAC' unter Verwendung der in der folgenden Tabelle 11 gezeigten Werte, wenn es den in der Tabelle 10 gezeigten Datenrahmen erzeugt. Tabelle 11
    Name Beschreibung
    Privater Schlüssel Gemeinsam verwendeter privater Schlüssel
    Anfragetyp 0x6
    WP-Deskriptor-Aktualisierungszähler 0x0
    Nonce Durch den Host erzeugte Zufallszahl
    WP-Deskriptor Aktueller Wert des mobilen Speichers
    Ergebnis Ausführungsergebnis der Anfrage
  • In der Tabelle 11 ist ,Privater Schlüssel' ein Schlüssel, den der Host 3100 und das Speichergerät 3200 gemeinsam verwenden. ,Antworttyp' ist ,0x6' und ,WP-Deskriptor-Aktualisierungszähler' ist ,0x0'. ,Nonce' ist eine Zufallszahl, die ein Host erzeugt, ,WP-Deskriptor' ist ein aktueller ,WP-Deskriptor'-Wert des Speichergeräts 3200, und ,Ergebnis' ist ein Ergebnis der Ausführung einer Anfrage. Ein Sicherheitsmanager 3234 oder HMAC 3250 liest einen in der Tabelle 11 gezeigten Datenrahmen und berechnet dann den HMAC.
  • 3. WP-Deskriptor-Aktualisierungsanfrage
  • Um den Schreibschutz neu zu setzen, konfiguriert der Host 3100 den anzuwendenden ,WP-Deskriptor' neu und fragt eine Aktualisierung an dem Speichergerät 3200 unter Verwendung des derart konfigurierten WP-Deskriptors an. Um eine Aktualisierung von ,WP-Deskriptor' anzufragen, erzeugt der Host 3100 den HMAC unter Verwendung von in der folgenden Tabelle 12 gezeigten Eingabewerten. Tabelle 12
    Name Beschreibung
    Privater Schlüssel Gemeinsam verwendeter privater Schlüssel
    Anfragetyp 0x3
    WP-Deskriptor-Aktualisierungszähler Aktueller Wert des mobilen Speichers
    Nonce 0x0
    WP-Deskriptor Zu ändernder Deskriptor
    Ergebnis 0x0
  • In der Tabelle 12 ist ,Privater Schlüssel' ein Schlüssel, den der Host 3100 und das Speichergerät 3200 gemeinsam verwenden. ,Antworttyp' ist ,0x3' und ,WP-Deskriptor-Aktualisierungszähler' gibt an, wie oft das Speichergerät 3200 ,WP-Deskriptor' bis jetzt aktualisiert hat. ,Nonce' ist eine Zufallszahl, die ein Host erzeugt. ,WP-Deskriptor' ist ein zu ändernder ,WP-Deskriptor'-Wert, und ,Ergebnis' ist ,0x0'.
  • Die folgende Tabelle 13 zeigt einen Datenrahmen für ,WP-Deskriptor-Aktualisierungsanfrage'. Der Host 3100 sieht für das Speichergerät 3200 einen Datenrahmen vor, der wie in der Tabelle 13 gezeigt organisiert ist. Tabelle 13
    Name Beschreibung
    Anfragetyp 0x3
    WP-Deskriptor-Aktualisierungszähler Aktueller Wert des mobilen Speichers
    Nonce 0x0
    WP-Deskriptor Zu ändernder Deskriptor
    Ergebnis 0x0
    HMAC Durch den Host in der Tabelle 12 berechneter HMAC
  • In der Tabelle 13 ist ,Antworttyp' ,0x3' und gibt ,WP-Deskriptor-Aktualisierungszähler' an, wie oft das Speichergerät 3200 ,WP-Deskriptor' bis jetzt aktualisiert hat. ,Nonce' ist ,0x0', ,WP-Deskriptor' ist ein zu ändernder Wert von ,WP-Deskriptor', und ,Ergebnis' ist ,0x0'. ,HMAC' ist ein Wert, den der Host 3100 unter Verwendung eines in der Tabelle 12 gezeigten Datenrahmens berechnet.
  • Der Host 3100 sieht einen in der Tabelle 13 gezeigten Datenrahmen für das Speichergerät 3200 vor, um ,WP-Deskriptor' zu aktualisieren. Das Speichergerät 3200 empfängt eine WP-Deskriptor-Aktualisierungsanfrage, verarbeitet die Anfrage normal und erhöht einen WP-Deskriptor-Aktualisierungszähler.
  • 4. Ergebnis-Leseanfrage/-antwort
  • Der Host 3100 fragt eine Aktualisierung für ,WP-Deskriptor' an und verwendet dann „Ergebnis-Leseanfrage', um das Ergebnis der Anfrage zu prüfen. Für die Ergebnis-Leseanfrage konfiguriert der Host 3100 einen Datenrahmen wie in der folgenden Tabelle 14 gezeigt und sieht diese dann für das Speichergerät 3200 vor. Tabelle 14
    Name Beschreibung
    Anfragetyp 0x4
    WP-Deskriptor-Aktualisierungszähler 0x0
    Nonce 0x0
    WP-Deskriptor 0x0
    Ergebnis 0x0
    HMAC 0x0
  • In der Tabelle 14 ist ,Antworttyp' ,0x4' und ist ,WP-Deskriptor-Aktualisierungszähler' ,0x0'. ,Nonce' ist ,0x0', ,WP-Deskriptor' ist ,0x0' und ,Ergebnis' ist ,0x0'. ,HMAC' ist ,0x0'. Das Speichergerät 3200 sieht für den Host 3100 eine in der folgenden Tabelle 15 gezeigte Antwort auf die in der Tabelle 14 gezeigte Anfrage vor. Der Host 3100 liest den in der Tabelle 15 gezeigten Datenrahmen und prüft das Ergebnis der Aktualisierung von ,WP-Deskriptor'. Tabelle 15
    Name Beschreibung
    Antworttyp 0x7
    WP-Deskriptor-Aktualisierungszähler Aktueller Wert des mobilen Speichers
    Nonce 0x0
    WP-Deskriptor 0x0
    Ergebnis Ausführungsergebnis der Anfrage
    HMAC Durch den mobilen Speicher berechneter HMAC
  • In der Tabelle 15 ist ,Antworttyp' ,0x7' und gibt ,WP-Deskriptor-Aktualisierungszähler' an, wie oft das Speichergerät 3200 den ,WP-Deskriptor' bis dahin aktualisiert hat. ,Nonce' ist ,0x0', ,WP-Deskriptor' ist ,0x0' und ,Ergebnis' ist das Ergebnis der Ausführung einer Anfrage. ,HMAC' ist der Wert, den der Sicherheitsmanager 3234 berechnet. Der Sicherheitsmanager 3234 oder der HMAC 2350 berechnet ,HMAC' unter Verwendung der Werte in der folgenden Tabelle 16, wenn der in der Tabelle 15 gezeigte Datenrahmen erzeugt wird. Tabelle 16
    Name Beschreibung
    Privater Schlüssel Gemeinsam verwendeter privater Schlüssel
    Antworttyp 0x7
    WP-Deskriptor-Aktualisierungszähler Aktueller Wert des mobilen Speichers
    Nonce 0x0
    WP-Deskriptor 0x0
    Ergebnis Ausführungsergebnis der Anfrage
  • In der Tabelle 16 ist ,Privater Schlüssel' ein Schlüssel, den der Host 3100 und das Speichergerät 3200 gemeinsam verwenden. ,Antworttyp' ist ,0x7', und ,WP-Deskriptor-Aktualisierungszähler' gibt an, wie oft das Speichergerät 3200 ,WP-Deskriptor' bis dahin aktualisiert hat. ,Nonce' ist ,0x0', ,WP-Deskriptor' ist ,0x0' und ,Ergebnis' ist das Ergebnis der Ausführung einer Anfrage. Der Host 3100 liest den in der Tabelle 16 gezeigten Datenrahmen und berechnet ,HMAC'.
  • III. Authentifizierung der WP-Deskriptor-Aktualisierungsanfrage
  • 9 ist ein Flussdiagram, das schematisch ein HMAC-Authentifizierungsverfahren eines Speichersystems von 3 zeigt. 9 zeigt ein Verfahren, in dem das Speichergerät 3200 ,WP-Deskriptor-Aktualisierungsanfrage' authentifiziert.
  • In Schritt S110 empfängt ein Befehlsmanager 3232 eines Speichergeräts 3200 eine WP-Deskriptor-Aktualisierungsanfrage von einem Host 3100. Das Speichergerät 3200 aktualisiert die Einstellung eines Schreibschutzes in Antwort auf die WP-Deskriptor-Aktualisierungsanfrage. Das heißt, dass das Speichergerät 3200 einen anzuwendenden WP-Deskriptor neu konfiguriert.
  • In Schritt S120 parst der Befehlsmanager 3232 einen Datenrahmen der WP-Deskriptor-Aktualisierungsanfrage. Die oben beschriebene Tabelle 13 zeigt einen Datenrahmen der WP-Deskriptor-Aktualisierungsanfrage. Wie in der Tabelle 13 gezeigt, enthält der Datenrahmen ,Anfragetyp', ,WP-Deskriptor-Aktualisierungszähler, ,WP-Deskriptor', ,Nonce', ,Ergebnis' und ,HMAC'.
  • In Schritt S130 berechnet ein Sicherheitsmanager 3234 des Speichergeräts 3200 den HMAC unter Verwendung eines gemeinsam genutzten privaten Schlüssels, der mit Bezug auf 8 beschrieben wurde. Das heißt, dass der Sicherheitsmanager 3234 den HMAC unter Verwendung des privaten Schlüssels und einer Nachricht berechnet. Die Nachricht kann ,Anfragetyp', ,WP-Deskriptor-Aktualisierungszähler', ,Nonce', ,WP-Deskriptor' und ,Ergebnis' enthalten. Der Sicherheitsmanager 3234 kann den HMAC unter Verwendung von MD5, SHA1, SHA256 usw. berechnen. Alternativ hierzu berechnet der HMAC 3250 den HMAC und sieht das Ergebnis für den Sicherheitsmanager 3234 vor.
  • In dem Schritt S140 vergleicht der Sicherheitsmanager 3234 den HMAC, der aus dem Datenrahmen der WP-Deskriptor-Aktualisierungsanfrage erhalten wird, mit dem in Schritt S130 berechneten HMAC. Wie in der Tabelle 13 gezeigt, enthält der von einem Host 1300 vorgesehene Datenrahmen ,HMAC'. Der Sicherheitsmanager 3234 authentifiziert die WP-Deskriptor-Aktualisierungsanfrage, indem er den HMAC von dem Host 3100 mit dem durch das Speichergerät 3200 berechneten HMAC vergleicht.
  • In Schritt S150 bestimmt der Sicherheitsmanager 3234, ob die WP-Deskriptor-Aktualisierungsanfrage gültig ist, in Abhängigkeit von dem Vergleichsergebnis von Schritt S140. Wenn der HMAC von dem Host 3100 gleich dem durch das Speichergerät 3200 berechneten HMAC ist, bestimmt der Sicherheitsmanager 3234, das die WP-Deskriptor-Aktualisierungsanfrage gültig ist. Wenn der HMAC von dem Host 3100 von dem in dem Speichergerät 3200 berechneten HMAC verschieden ist, bestimmt der Sicherheitsmanager 3234, dass die WP-Deskriptor-Aktualisierungsanfrage ungültig ist.
  • Wenn die WP-Deskriptor-Aktualisierungsanfrage gültig ist, aktualisiert der Sicherheitsmanager 3234 in Schritt S160 den WP-Deskriptor in Antwort auf die WP-Deskriptor-Aktualisierungsanfrage. Wenn die WP-Deskriptor-Aktualisierungsanfrage ungültig ist, lehnt der Sicherheitsmanager 3234 die WP-Deskriptor-Aktualisierungsanfrage ab.
  • IV. Ausführung des Schreibschutzes
  • 10 ist ein Flussdiagramm, das ein Verfahren zum Ausführen eines Schreibschutzes in dem Speichersystem von 3 beschreibt. Wenn ein Schreibbefehl oder ein Löschbefehl von einem Host 3100 empfangen wird, führt das Speichergerät 3200 eine Operation zum Schreiben von Daten an einem Adressbereich durch oder verhindert diese in Abhängigkeit davon, ob ein Schreibschutz ausgeführt wird.
  • In Schritt S210 empfängt ein Befehlsmanager 3232 des Speichergeräts 3200 einen Schreibbefehl von dem Host 3100. In Schritt S220 parst der Befehlsmanager 3232 einen Parameter des Schreibbefehls. Der Parameter des Schreibbefehls kann eine Start-LBA, eine Länge und eine Partitions-ID (PID) enthalten. In Schritt S230 ruft ein Sicherheitsmanager 3234 des Speichergeräts 3200 sdA von einem WP-Deskriptor ab.
  • In Schritt S240 vergleicht der Sicherheitsmanager 3234 eine Partitions-ID PID_h des Schreibbefehls mit einer Partitions-ID PID_d des WP-Deskriptors. ,PID_h' kommt von dem Host 3100, und ,PID_d' resultiert aus dem Speichergerät 3200. Der Sicherheitsmanager 3234 bestimmt, ob die Partitions-ID PID_h des Schreibbefehls gleich der Partitions-ID PID_d des WP-Deskriptors ist.
  • Wenn die Partitions-ID PID_h des Schreibbefehls von der Partitions-ID PID_d des WP-Deskriptors verschieden ist, wird in Schritt S245 bestimmt, ob der WP-Deskriptor der letzte WP-Deskriptor ist. Wenn der WP-Deskriptor nicht der letzte ist, schreitet das Verfahren zu Schritt S230 fort und wird der nächste WP-Deskriptor erhalten. Wenn der WP-Deskriptor der letzte ist, schreitet das Verfahren zu Schritt S295 fort, in dem der Schreibbefehl ausgeführt wird.
  • Wenn in Schritt S250 die Partitions-ID PID_h des Schreibbefehls gleich der Partitions-ID PID_d des WP-Deskriptors ist, schreitet das Verfahren zu Schritt S250 fort, in dem der Sicherheitsmanager 3234 ,Beschreibbar' des WP-Deskriptors prüft. Zum Beispiel bestimmt der Sicherheitsmanager 3234, ob ,Beschreibbar' des WP-Deskriptors auf ,False' gesetzt ist. Wenn ,Beschreibbar' des WP-Deskriptors nicht auf ,False' gesetzt ist, schreitet das Verfahren zu Schritt S245 fort.
  • Wenn ,Beschreibbar' des WP-Deskriptors auf ,False' gesetzt ist, prüft in Schritt S260 das Speichergerät 3200 eine Länge des WP-Deskriptors. Das Speichergerät 3200 prüft, ob die Länge des WP-Deskriptors auf ,0' gesetzt ist. Wenn dies der Fall ist, lehnt das Speichergerät 3200 in Schritt S290 den Schreibbefehl ab. Wie mit Bezug auf die Tabelle 1 beschrieben, bedeutet eine auf ,0' gesetzte Länge des WP-Deskriptors, dass die gesamte Partition schreibgeschützt ist.
  • Wenn die Länge des WP-Deskriptors nicht auf ,0' gesetzt ist, prüft in Schritt S270 der Sicherheitsmanager 3234 einen durch die Start-LBA angegebenen Schreibschutzbereich und die Länge des WP-Deskriptors.
  • In Schritt S280 bestimmt der Sicherheitsmanager 3234, ob die Logikblockadresse LBA in dem Schreibbefehl in dem Schreibschutzbereich liegt. Wenn die Logikblockadresse LBA in dem Schreibbefehl außerhalb des Schreibschutzbereichs liegt, schreitet das Verfahren zu Schritt S245 fort.
  • Wenn die Logikblockadresse LBA des Schreibbefehls in dem Schreibschutzbereich liegt, lehnt in Schritt S290 das Speichergerät 3200 den Schreibbefehl ab. Das heißt, dass das Speichergerät 3200 einen Speicherbereich in Entsprechung zu der Logikblockadresse LBA und der Länge in dem WP-Deskriptor schreibschützt.
  • 11 ist ein Konzeptdiagramm, das schematisch eine Ausführungsform zeigt, in der ein oder mehrere Speicherbereiche eines Speichersystems gemäß einer Ausführungsform der erfinderischen Konzepte schreibgeschützt werden. In einem Speichersystem 3000 von 3 können ein oder mehrere Bereiche einer Partition schreibgeschützt werden. Alternativ hierzu kann eine Vielzahl von Bereichen in einer Vielzahl von Partitionen schreibgeschützt werden. Wie in 11 gezeigt, enthält eine erste Partition PID1 zwei schreibgeschützte Bereiche. Ein erster schreibgeschützter Bereich WP1 reicht von LBA 500 bis LBA 1000, und ein zweiter schreibgeschützter Bereich WP2 reicht von LBA 2000 bis LBA 3000. Eine zweite Partition PID2 enthält einen schreibgeschützten Bereich. Ein dritter schreibgeschützter Bereich WP3 reicht von LBA 1100 bis LBA 2200. Eine dritte Partition enthält drei schreibgeschützte Bereiche. Ein vierter schreibgeschützter Bereich WP4 reicht von LBA 100 bis LBA 600, ein fünfter schreibgeschützter Bereich WP5 reicht von LBA 1300 bis LBA 2000 und ein sechster schreibgeschützter Bereich WP6 reicht von LBA 2900 bis LBA 3300. Eine gesamte n-te Partition PIDn wird schreibgeschützt. Ein LBA-Zuweisungsweg des WP-Deskriptors kann geändert werden, um eine Vielzahl von schreibgeschützten Bereichen an einer Partition zu setzen.
  • Ein Speichersystem gemäß einer Ausführungsform der erfinderischen Konzepte betrifft ein Schreibschutzverfahren unter Verwendung von ,Key-ed Crypto Hash'. Zum Beispiel ist HMAC eine Form von ,Key-ed Crypto Hash'. Wenn ein Befehl unter Verwendung von ,Key-ed Crypto Hash' authentifiziert wird, kann eine Änderung an einer Einstellung des Schreibschutzes nur durch einen Host vorgenommen werden, der einen gemeinsam mit dem Speichergerät verwendeten privaten Schlüssel aufweist. Auf diese Weise kann verhindert werden, dass Daten durch einen nicht authentifizierten Host geändert werden. Weiterhin authentifiziert das Speichersystem gemäß einer Ausführungsform der erfinderischen Konzepte einen Befehl und setzt gleichzeitig einen schreibzuschützenden Speicherbereich durch die Logikblockadresse.
  • In den erfinderischen Konzepten wird die Einstellung des Schreibschutzes durch eine Authentifizierung bewerkstelligt, die unter Verwendung von ,Key-ed Crypto Hash', ,Privater Schlüssel', ,Anfragezählung' usw. durchgeführt wird, und wird ein Schreibschutzbereich durch eine Einheit einer Logikblockadresse eines Hosts gesetzt. Weiterhin kann eine unbeabsichtigte Änderung in den Daten unterbunden werden, indem verhindert wird, dass ein nicht authentifizierter Host den Schreibschutz setzt. Außerdem führt der Host den Schreibschutz dynamisch und flexibel durch, indem er einen Schreibschutzbereich durch die Logikblockadresse ändert.
  • Das Speichersystem gemäß einer Ausführungsform der erfinderischen Konzepte kann auf verschiedene Produkte angewendet werden. Das Speichersystem gemäß einer Ausführungsform der erfinderischen Konzepte kann in elektronischen Geräten wie etwa einem Personal Computer, einer Digitalkamera, einem Camcorder, einen handgehaltenen Telefon, einem MP3-Player, einem Portable Media Player (PMP), einem PlayStation Player (PSP) und einem Personal Digital Assistant (PDA) implementiert werden. Ein Speichermedium des Speichersystems kann durch Speichergeräte wie etwa eine Speicherkarte, einen USB-Speicher und ein Solid-State-Drive (SSD) implementiert werden.
  • 14 ist ein Blockdiagramm, das ein Solid-State-Drive zeigt, auf das ein Speichergerät gemäß den erfinderischen Konzepten angewendet ist. Wie in 14 gezeigt, enthält ein Solid-State-Drive (SSD)-System 4000 einen Host 4100 und einen SSD 4200.
  • Das SSD 4200 tauscht Signale SGL mit dem Host 4100 über einen Signalsteckverbinder 4211 aus und wird über einen Stromsteckverbinder 4221 mit Strom versorgt. Das SSD 4200 enthält eine Vielzahl von Flash-Speichern 4201 bis 420n, einen SSD-Controller 4210 und eine Hilfsstromversorgung 4220.
  • Die Vielzahl von Flash-Speichern 4201 bis 420n können als ein Speichermedium des SSD 4200 verwendet werden. Das SSD 4200 kann nicht nur den Flash-Speicher verwenden, sondern kann auch nicht-flüchtige Speichergeräte wie etwa PRAM (Phase Change Random Access Memory (RAM)) MRAM (Magnetoresistive RAM), ReRAM (Resistive RAM) und FRAM (Ferroelectric RAM) verwenden. Die Flash-Speicher 4201 bis 420n sind mit dem SSD-Controller 4210 über eine Vielzahl von Kanälen CH1 bis CHn verbunden. Ein Kanal ist mit einem oder mehreren Flash-Speichern verbunden. Die mit einem Kanal verbundenen Flash-Speicher können mit dem gleichen Datenbus verbunden sein.
  • Der SSD-Controller 4210 tauscht Signale SGL mit dem Host 4100 über einen Signalsteckverbinder 4211 aus. Die Signale SGL können Folgendes umfassen: einen Befehl, eine Adresse und Daten. Der SSD-Controller 4210 ist ausgebildet, um Daten in oder aus einem entsprechenden Flash-Speicher in Antwort auf einen Befehl des Hosts 4100 zu schreiben oder zu lesen. Der SSD-Controller 4210 wird weiter unten mit Bezug auf 15 näher beschrieben.
  • Die Hilfsstromversorgung 4220 ist mit dem Host 4100 über den Stromsteckverbinder 4221 verbunden. Die Hilfsstromversorgung 4220 wird durch einen Strom PWR aus dem Host 4100 geladen. Die Hilfsstromversorgung 4220 kann innerhalb oder außerhalb des SSD 4200 angeordnet sein. Zum Beispiel kann die Hilfsstromversorgung 4220 auf einer Hauptplatine angeordnet sein, um eine Hilfsstromversorgung zu dem SSD 4200 zuzuführen.
  • 15 ist ein Blockdiagramm, das schematisch einen SSD-Controller von 14 zeigt. Wie in 15 gezeigt, enthält der SSD-Controller 4210 eine NVM(nicht-flüchtiger Speicher)-Schnittstelle 4211, eine Host-Schnittstelle 4212, eine ECC-Schaltung 4213, eine zentrale Verarbeitungseinheit (CPU) 4214 und einen Pufferspeicher 4215.
  • Die NVM-Schnittstelle 4211 kann von dem Pufferspeicher 4215 übertragene Daten auf die Kanäle CH1 bis CHn verteilen. Die NVM-Schnittstelle 4211 sendet von Flash-Speichern 4201 bis 420n gelesene Daten zu dem Pufferspeicher 4215. Die NVM-Schnittstelle 4211 kann zum Beispiel eine Flash-Speicherschnittstellenweise verwenden. Das heißt, dass der SSC-Controller 4210 eine Lese-, eine Schreib- und eine Löschoperation in der Flash-Speicherschnittstellenweise durchführen kann.
  • Die Host-Schnittstelle 4212 kann eine Schnittstelle mit einem SSD 4200 in Übereinstimmung mit dem Protokoll des Hosts 4100 vorsehen. Die Host-Schnittstelle 4212 kann mit dem Host 4100 über USB (Universal Serial Bus), SCSI (Small Computer System Interface), PCI-Express, ATA, PATA (Parallel ATA), SATA (Serial ATA), SAS (Serial Attached SCSI) usw. kommunizieren. Die Host-Schnittstelle 4212 kann auch eine Diskemulation durchführen, sodass der Host 4100 die SSD 4200 als ein Festplattenlaufwerk (HDD) erkennen kann.
  • Die ECC-Schaltung 4213 erzeugt einen Fehlerkorrekturcode ECC unter Verwendung von an den Flash-Speicher 4201 bis 420n übertragenen Daten. Der auf diese Weise erzeugte Fehlerkorrekturcode ECC wird in Ersatzbereichen des Flash-Speichers 4201 bis 420n gespeichert. Die ECC-Schaltung 4213 erfasst einen Fehler in aus dem Flash-Speicher 4201 bis 420n gelesenen Daten. Wenn der erfasste Fehler korrigiert werden kann, kann die ECC-Schaltung 4213 den erfassten Fehler korrigieren.
  • Die CPU 4214 analysiert und verarbeitet Signale, die von einem Host 4100 empfangen werden (siehe 14). Die CPU 4214 steuert den Host 4100 über die Host-Schnittstelle 4212 oder die Flash-Speicher 4201 bis 420n über die NVM-Schnittstelle 4211. Die CPU 4214 steuert die Flash-Speicher 4201 bis 420n unter Verwendung einer Firmware für den Betrieb einer SSD 4200.
  • Der Pufferspeicher 4215 speichert vorübergehend von dem Host 4100 bereitgestellte Schreibdaten oder von einem Flash-Speicher gelesenen Daten. Weiterhin speichert der Pufferspeicher 4215 Metadaten für das Speichern in den Flash-Speichern 4201 bis 420n oder Cachedaten. Bei einem plötzlichen Herunterfahren werden die Metadaten oder Cachedaten an dem Pufferspeicher 4215 in den Flash-Speichern 4201 bis 420n gespeichert. Der Pufferspeicher 4215 kann mit einem DRAM, einem SRAM usw. implementiert werden.
  • 16 ist ein Blockdiagramm, das schematisch ein elektronisches Gerät zeigt, das ein Speichergerät gemäß einer Ausführungsform der erfinderischen Konzepte enthält. Ein elektronisches Gerät 5000 kann durch einen Personal Computer oder durch handgehaltene elektronische Geräte wie etwa einen Notebook-Computer, ein Mobiltelefon, einen PDA und eine Kamera implementiert werden.
  • Wie in 16 gezeigt, enthält das elektronische Gerät 5000 ein Speichersystem 5100, eine Stromversorgung 5200, eine Hilfsstromversorgung 5250, eine zentrale Datenverarbeitungseinheit (CPU) 5300, einen Speicher mit wahlfreiem Zugriff (RAM) 5400 und eine Benutzerschnittstelle 5500. Das Speichersystem 5100 enthält einen Flash-Speicher 5110 und einen Speicher-Controller 5120.
  • 17 ist ein Blockdiagramm, das schematisch eine Speicherkarte zeigt, auf die ein Speichergerät eines Benutzergeräts gemäß einer Ausführungsform der erfinderischen Konzepte angewendet ist. Ein Speicherkartensystem 6000 enthält einen Host 6100 und eine Speicherkarte 6200. Der Host 6100 enthält einen Host-Controller 6110 und eine Host-Verbindungseinheit 6120. Die Speicherkarte 6200 enthält eine Kartenverbindungseinheit 6210, einen Karten-Controller 6220 und einen Flash-Speicher 6230.
  • Der Host 6100 schreibt Daten auf die Speicherkarte 6200 und liest Daten von der Speicherkarte 6200. Der Host-Controller 6110 sieht für die Speicherkarte 6200 einen Befehl (z. B. einen Schreibbefehl), ein durch einen Takterzeuger (nicht gezeigt) in dem Host 6100 erzeugtes Taktsignal CLK und Daten über die Host-Verbindungseinheit 6120 vor.
  • Der Karten-Controller 6220 speichert Daten in dem Flash-Speicher 6230 in Antwort auf einen über die Karten-Verbindungseinheit 6210 eingegebenen Befehl. Die Daten werden in Synchronisation mit einem durch einen Takterzeuger (nicht gezeigt) in dem Karten-Controller 6220 erzeugten Takt gespeichert. Der Flash-Speicher 6230 speichert von dem Host 6100 übertragene Daten. Wenn zum Beispiel der Host 6100 eine Digitalkamera ist, kann die Speicherkarte 6200 Bilddaten speichern.
  • Die erfinderischen Konzepte wurden anhand von beispielhaften Ausführungsformen beschrieben, wobei dem Fachmann deutlich sein sollte, dass verschiedene Änderungen und Modifikationen vorgenommen werden können, ohne dass deshalb der Umfang der erfinderischen Konzepte verlassen wird. Zum Beispiel ist der Umfang der erfinderischen Konzepte nicht auf ein Flash-Speichergerät beschränkt. Die erfinderischen Konzepte können auf alle Speichergeräte angewendet werden, die Adressen unter Verwendung einer Übersetzungsschicht wandeln. Es ist also zu beachten, dass die vorstehend beschriebenen Ausführungsformen nicht einschränkend, sondern beispielhaft zu verstehen sind.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • KR 10-2014-0117786 [0001]

Claims (21)

  1. Speichergerät, das umfasst: einen ersten Speicher, wobei der erste Speicher ein nicht-flüchtiger Speicher ist, und einen zweiten Speicher, der konfiguriert ist zum Speichern einer Speicherpartitionskennzeichnung, die eine Partition des ersten Speichers identifiziert, von Startadressinformationen, die eine Logikblockadresse für einen Speicherbereich in der identifizierten Speicherpartition angeben, und von Längeninformationen, die eine Länge des Speicherbereichs in der identifizierten Speicherpartition angeben, wobei der zweite Speicher konfiguriert ist zum Speichern von Beschreibbar-Informationen in Assoziation mit den Startadressinformationen und den Längeninformationen, wobei die Beschreibbar-Informationen angeben, ob ein Schreibschutz auf den Speicherbereich anzuwenden ist.
  2. Speichergerät nach Anspruch 1, wobei der zweite Speicher konfiguriert ist zum Speichern von Typinformationen in Assoziation mit den Startadressinformationen und den Längeninformationen, wobei die Typinformationen einen für den Speicherbereich vorzusehenden Typ von Schreibschutz angeben.
  3. Verfahren, das umfasst: Empfangen, an einem Speichergerät, einer Anfrage, wobei die Anfrage einen Anfragenachricht-Authentifizierungscode und Schreibschutzinformationen enthält, wobei die Schreibschutzinformationen Startadressinformationen und/oder Längeninformationen enthalten, wobei die Startadressinformationen eine Logikblockadresse angeben, an welcher ein Speicherbereich in einem nicht-flüchtigen Speicher des Speichergeräts beginnt, und die Längeninformationen eine Länge des Speicherbereichs angeben, und Erzeugen, an dem Speichergerät, eines Nachrichtenauthentifizierungscodes basierend auf (1) den Startadressinformationen und den Längeninformationen, und (2) einem Schlüssel, der an dem Speichergerät gespeichert ist, und Verarbeiten, an dem Speichergerät, der Anfrage basierend auf dem Ergebnis der Authentifizierung.
  4. Verfahren nach Anspruch 3, wobei: die Schreibschutzinformationen sowohl die Startadressinformationen als auch die Längeninformationen enthalten, und das Erzeugen den erzeugten Nachrichtenauthentifizierungscode basierend auf den Startadressinformationen, den Längeninformationen und dem Schlüssel erzeugt.
  5. Verfahren nach Anspruch 4, wobei: die Schreibschutzinformationen die Startadressinformationen, die Längeninformationen und eine Partitionskennzeichnung enthalten, wobei die Partitionskennzeichnung eine Partition in dem nicht-flüchtigen Speicher des Speichergeräts identifiziert, wobei die Partition den Speicherbereich enthält, und das Erzeugen den erzeugten Nachrichtenauthentifizierungscode basierend auf den Startadressinformationen, den Längeninformationen, der Partitionskennzeichnung und dem Schlüssel erzeugt.
  6. Verfahren nach Anspruch 3, wobei: die Schreibschutzinformationen die Startadressinformationen, die Längeninformationen, die Partitionskennzeichnung und Beschreibbar-Informationen, die angeben, ob ein Schreibschutz auf den Speicherbereich anzuwenden ist, enthalten, und das Erzeugen den erzeugten Nachrichtenauthentifizierungscode basierend auf den Startadressinformationen, den Längeninformationen, der Partitionskennzeichnung, den Beschreibbar-Informationen und dem Schlüssel erzeugt.
  7. Verfahren nach Anspruch 6, wobei: die Schreibschutzinformationen die Startadressinformationen, die Längeninformationen, die Partitionskennzeichnung, die Beschreibbar-Informationen und Typinformationen, die einen Typ von Schreibschutz für den Speicherbereich angeben, enthalten, und das Erzeugen den erzeugten Nachrichtenauthentifizierungscode basierend auf den Startadressinformationen, den Längeninformationen, der Partitionskennzeichnung, den Beschreibbar-Informationen, den Typinformationen und dem Schlüssel erzeugt.
  8. Verfahren nach Anspruch 7, wobei die Typinformationen einen Typ angeben, der aus einer Gruppe ausgewählt ist, die wenigstens einen ersten Typ enthält, wobei der erste Typ angibt, dass die Beschreibbar-Informationen nach dem Hochfahren des Speichers geändert werden können und dass die Beschreibbar-Informationen angeben, den Schreibschutz beim Hochfahren des Speichers anzuwenden.
  9. Verfahren nach Anspruch 8, wobei: die Gruppe den ersten Typ, einen zweiten Typ und einen dritten Typ enthält, der zweite Typ angibt, dass die Beschreibbar-Informationen geändert werden können und dass die Beschreibbar-Informationen keine Anwendung des Schreibschutzes nach dem Hochfahren des Speichers angeben, und der dritte Typ angibt, dass die Beschreibbar-Informationen geändert werden können.
  10. Verfahren nach Anspruch 3, wobei das Erzeugen einen Hash-basierten Nachrichtenauthentifizierungscode erzeugt.
  11. Verfahren nach Anspruch 3, wobei: die Authentifizierung die Anfrage authentifiziert, wenn der erzeugte Nachrichtenauthentifizierungscode mit dem Anfragenachricht-Authentifizierungscode übereinstimmt, und das Verarbeiten die Anfrage verarbeitet, wenn die Anfrage authentifiziert wird.
  12. Verfahren nach Anspruch 3, wobei die Anfrage das Speichergerät anfragt, die Schreibschutzinformationen mit in der Anfrage enthaltenen Informationen zu aktualisieren.
  13. Verfahren nach Anspruch 12, wobei das Verarbeiten umfasst: das Inkrementieren eines Aktualisierungszählers, wenn das Verarbeiten die Anfrage verarbeitet, und das Senden einer Antwortnachricht, wenn das Verarbeiten die Anfrage verarbeitet, wobei die Antwortnachricht einen Zählwert des Aktualisierungszählers enthält.
  14. Verfahren nach Anspruch 3, wobei das Verarbeiten umfasst: Senden einer Antwortnachricht in Antwort auf die Anfrage, wenn das Verarbeiten die Anfrage verarbeitet.
  15. Verfahren nach Anspruch 3, wobei das Verarbeiten umfasst: Speichern der Schreibschutzinformationen.
  16. Verfahren, das umfasst: Empfangen, an einem Speichergerät, eines Schreibbefehls zum Schreiben von Daten in einen ersten Bereich eines nicht-flüchtigen Speichers in dem Speichergerät, und Bestimmen, an dem Speichergerät, ob der Schreibbefehl zu verarbeiten ist, basierend auf gespeicherten Schreibschutzinformationen für einen oder mehrere Speicherbereiche, die durch den ersten Bereich abgedeckt werden, für jeden Speicherbereich, wobei die Schreibschutzinformationen enthalten: Startadressinformationen, die eine Logikblockadresse eines Starts des Speicherbereichs angeben, Längeninformationen, die eine Länge des Speicherbereichs angeben, und Beschreibbar-Informationen, die angeben, ob ein Schreibschutz auf den Speicherbereich anzuwenden ist.
  17. Verfahren nach Anspruch 16, wobei das Bestimmen bestimmt, den Schreibbefehl nicht zu verarbeiten, wenn der erste Bereich einen der Speicherbereiche überlappt, mit denen Beschreibbar-Informationen assoziiert sind, die eine Anwendung des Schreibschutzes angeben.
  18. Verfahren nach Anspruch 16, wobei das Bestimmen bestimmt, dass der erste Bereich einen der Speicherbereiche überlappt, wenn eine mit dem Schreibbefehl assoziierte Adresse in einen der Speicherbereiche fällt.
  19. Verfahren nach Anspruch 16, wobei: für jeden Speicherbereich die Schreibschutzinformationen weiterhin enthalten: eine Partitionskennzeichnung, wobei die Partitionskennzeichnung eine Partition in dem nicht-flüchtigen Speicher identifiziert und wobei die Partition den Speicherbereich enthält, und wenn die Längeninformationen auf einen Bezugswert gesetzt werden, die Längeninformationen angeben, dass die gesamte identifizierte Partition schreibgeschützt ist, und das Bestimmen bestimmt, den Schreibbefehl nicht zu verarbeiten, wenn der erste Bereich einen der Speicherbereiche überlappt, mit denen Längeninformationen assoziiert sind, die auf den Bezugswert gesetzt sind.
  20. Speichergerät, das umfasst: einen nicht-flüchtigen Speicher, und einen Controller, der konfiguriert ist zum Empfangen einer Anfrage, wobei die Anfrage einen Anfragenachricht-Authentfizierungscode und Schreibschutzinformationen enthält, wobei die Schreibschutzinformationen Startadressinformationen und/oder Längeninformationen enthalten, wobei die Startadressinformationen eine Logikblockadresse angeben, an welcher ein Speicherbereich des nicht-flüchtigen Speichers beginnt, und die Längeninformationen eine Länge des Speicherbereichs angeben, wobei: der Controller konfiguriert ist zum Erzeugen eines Nachrichtenauthentifizierungscodes basierend auf (1) den Startadressinformationen und/oder den Längeninformationen und (2) einem an dem Speichergerät gespeicherten Schlüssel, der Controller konfiguriert ist zum Authentifizieren der Anfrage basierend auf dem erzeugten Nachrichtenauthentifizierungscode und dem Anfragenachricht-Authentifizierungscode; und der Controller konfiguriert ist zum Verarbeiten der Anfrage basierend auf dem Ergebnis der Authentifizierung.
  21. Speichergerät, das umfasst: einen nicht-flüchtigen Speicher, und einen Controller, wobei der Controller konfiguriert ist zum Empfangen eines Schreibbefehls für das Schreiben von Daten in einen ersten Bereich eines nicht-flüchtigen Speichers in dem Speichergerät und zum Bestimmen, ob der Schreibbefehl verarbeitet wird, basierend auf den gespeicherten Schreibschutzinformationen für einen oder mehrere Speicherbereiche, die durch den ersten Bereich abgedeckt werden, für jeden Speicherbereich, wobei die Schreibschutzinformationen enthalten: Startadressinformationen, die eine Logikblockadresse eines Starts des Speicherbereichs angeben, Längeninformationen, die eine Länge des Speicherbereichs angeben, und Beschreibbar-Informationen, die angeben, ob ein Schreibschutz auf den Speicherbereich anzuwenden ist.
DE102015205396.2A 2014-03-28 2015-03-25 Speichersystem und Verfahren zum Durchführen und Authentifizieren eines Schreibschutzes für dieses Active DE102015205396B4 (de)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US201461971673P 2014-03-28 2014-03-28
US61/971,673 2014-03-28
KR1020140117786A KR102196971B1 (ko) 2014-03-28 2014-09-04 스토리지 시스템, 그것의 쓰기 방지 수행 방법, 그리고 그것의 쓰기 방지 인증 방법
KR10-2014-0117786 2014-09-04
US14/631,349 2015-02-25
US14/631,349 US9984007B2 (en) 2014-03-28 2015-02-25 Storage system and method for performing and authenticating write-protection thereof

Publications (2)

Publication Number Publication Date
DE102015205396A1 true DE102015205396A1 (de) 2015-10-15
DE102015205396B4 DE102015205396B4 (de) 2021-10-28

Family

ID=54190579

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102015205396.2A Active DE102015205396B4 (de) 2014-03-28 2015-03-25 Speichersystem und Verfahren zum Durchführen und Authentifizieren eines Schreibschutzes für dieses

Country Status (2)

Country Link
US (2) US9984007B2 (de)
DE (1) DE102015205396B4 (de)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150112075A (ko) * 2014-03-26 2015-10-07 삼성전자주식회사 스토리지 장치 및 스토리지 장치의 동작 방법
KR102196971B1 (ko) * 2014-03-28 2020-12-31 삼성전자주식회사 스토리지 시스템, 그것의 쓰기 방지 수행 방법, 그리고 그것의 쓰기 방지 인증 방법
US10339079B2 (en) * 2014-06-02 2019-07-02 Western Digital Technologies, Inc. System and method of interleaving data retrieved from first and second buffers
US10235048B2 (en) * 2014-06-30 2019-03-19 Huawei Technologies Co., Ltd. Data processing method and smart device
US9645948B2 (en) * 2015-01-16 2017-05-09 Hamilton Sundstrand Corporation Access key generation for computer-readable memory
JP6421042B2 (ja) * 2015-01-16 2018-11-07 ルネサスエレクトロニクス株式会社 情報処理装置
JP6258399B2 (ja) * 2016-05-16 2018-01-10 ウィンボンド エレクトロニクス コーポレーション 半導体装置
CN108171041B (zh) * 2016-12-07 2020-03-27 澜起科技股份有限公司 用于对访问存储器的应用程序进行身份验证的方法和装置
KR102392844B1 (ko) * 2017-03-10 2022-05-03 삼성전자주식회사 메모리 컨트롤러 및 그것을 포함하는 저장 장치
KR102395190B1 (ko) 2017-07-31 2022-05-06 삼성전자주식회사 호스트와 인터페이스를 수행하는 스토리지 장치, 호스트 및 스토리지 장치의 동작방법
US20190095187A1 (en) * 2017-09-28 2019-03-28 Trillium Incorporated Incremental updates in static libraries
US10558393B2 (en) * 2017-10-20 2020-02-11 Qualcomm Incorporated Controller hardware automation for host-aware performance booster
KR102415330B1 (ko) * 2018-01-08 2022-06-30 삼성전자주식회사 스토리지 장치의 동작 방법 및 시스템
KR20220101018A (ko) * 2018-03-23 2022-07-18 마이크론 테크놀로지, 인크. 저장 디바이스의 인증 변경
CN110781532B (zh) 2018-07-12 2023-12-15 慧荣科技股份有限公司 开卡装置及利用开卡装置验证并启用数据储存装置的方法
TWI690805B (zh) * 2018-07-12 2020-04-11 慧榮科技股份有限公司 開卡裝置及利用開卡裝置驗證並且啟用一資料儲存裝置之方法
JP7187362B2 (ja) * 2019-03-15 2022-12-12 キオクシア株式会社 ストレージ装置及び制御方法
WO2020255997A1 (ja) 2019-06-21 2020-12-24 京セラ株式会社 電子機器、車両、及び制御方法
CN112116942B (zh) * 2019-06-21 2023-04-07 北京自动化控制设备研究所 一种利用fpga对flash进行分段保护的电路
CN111581441B (zh) * 2019-08-30 2022-06-17 上海忆芯实业有限公司 用于聚类计算的加速器
US11237837B2 (en) 2020-01-27 2022-02-01 Dell Products L.P. System and method for managing devices during reboot
US11314521B2 (en) * 2020-01-27 2022-04-26 Dell Products L.P. System and method for managing component updates
KR20210113906A (ko) * 2020-03-09 2021-09-17 에스케이하이닉스 주식회사 컴퓨팅 시스템 및 그 동작 방법
US11714561B2 (en) * 2020-07-17 2023-08-01 Samsung Electronics Co., Ltd. System, device and method for writing data to protected region
US11343079B2 (en) * 2020-07-21 2022-05-24 Servicenow, Inc. Secure application deployment
US20240061602A1 (en) * 2022-08-22 2024-02-22 Micron Technology, Inc. Power safety configurations for logical address space partitions

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140117786A (ko) 2013-03-27 2014-10-08 주식회사 엘지화학 고속 충전특성이 향상된 리튬 이차전지

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3937925A (en) * 1974-06-25 1976-02-10 Ibm Corporation Modular transaction terminal with microprocessor control
US6279114B1 (en) 1998-11-04 2001-08-21 Sandisk Corporation Voltage negotiation in a single host multiple cards system
CN100442393C (zh) 1999-10-21 2008-12-10 松下电器产业株式会社 半导体存储卡的访问装置、初始化方法和半导体存储卡
US8296467B2 (en) 2000-01-06 2012-10-23 Super Talent Electronics Inc. Single-chip flash device with boot code transfer capability
JP4489915B2 (ja) * 2000-07-31 2010-06-23 大日本印刷株式会社 暗証コード照合機能をもった携帯型情報処理装置
JP2005157542A (ja) 2003-11-21 2005-06-16 Matsushita Electric Ind Co Ltd 記録媒体及び記録媒体アクセス制限方法
JP4452557B2 (ja) 2004-05-27 2010-04-21 株式会社日立製作所 Worm保証付きリモートコピー
WO2005124530A2 (en) 2004-06-21 2005-12-29 Kabushiki Kaisha Toshiba Method for controlling memory card and method for controlling nonvolatile semiconductor memory
GB2433815B (en) * 2004-10-26 2009-02-25 Spansion Llc Non-volatile memory device
US7414803B2 (en) * 2005-05-19 2008-08-19 Quantum Corporation Write protected magnetic storage media and associated methods
US20080250509A1 (en) 2007-04-04 2008-10-09 Nokia Corporation Write Protection For Memory Devices
JP2008226442A (ja) 2008-04-17 2008-09-25 Spansion Llc 半導体記憶装置
US8452934B2 (en) 2008-12-16 2013-05-28 Sandisk Technologies Inc. Controlled data access to non-volatile memory
US8392683B1 (en) 2009-11-30 2013-03-05 Micron Technology, Inc. Dynamic range unlock or lock memory device and method to operate the same
US9886282B2 (en) 2010-10-25 2018-02-06 Bally Gaming, Inc. Computer BIOS protection and authentication
US11232022B2 (en) 2010-10-29 2022-01-25 Samsung Electronics Co., Ltd. Memory system, data storage device, user device and data management method thereof having a data management information matching determination
US8621620B2 (en) 2011-03-29 2013-12-31 Mcafee, Inc. System and method for protecting and securing storage devices using below-operating system trapping
US9087199B2 (en) 2011-03-31 2015-07-21 Mcafee, Inc. System and method for providing a secured operating system execution environment
JP2013061799A (ja) * 2011-09-13 2013-04-04 Toshiba Corp 記憶装置、記憶装置の制御方法およびコントローラ
US9411748B2 (en) 2011-12-20 2016-08-09 Intel Corporation Secure replay protected storage
TWI447580B (zh) 2012-04-03 2014-08-01 Phison Electronics Corp 管理記憶體空間的方法、記憶體控制器與記憶體儲存裝置
JP5433757B2 (ja) 2012-10-04 2014-03-05 株式会社東芝 メモリ装置、ホスト装置、及びシステム
KR102039537B1 (ko) 2013-03-15 2019-11-01 삼성전자주식회사 불휘발성 저장 장치 및 그것의 운영체제 이미지 프로그램 방법
US9696772B2 (en) * 2014-02-21 2017-07-04 Arm Limited Controlling access to a memory

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140117786A (ko) 2013-03-27 2014-10-08 주식회사 엘지화학 고속 충전특성이 향상된 리튬 이차전지

Also Published As

Publication number Publication date
DE102015205396B4 (de) 2021-10-28
US9984007B2 (en) 2018-05-29
US10324864B2 (en) 2019-06-18
US20150278118A1 (en) 2015-10-01
US20180307625A1 (en) 2018-10-25

Similar Documents

Publication Publication Date Title
DE102015205396B4 (de) Speichersystem und Verfahren zum Durchführen und Authentifizieren eines Schreibschutzes für dieses
DE102015017399B3 (de) Speichergerät, Betriebsverfahren des Speichergeräts und elektronisches Gerät mit dem Speichergerät
DE112017006699T5 (de) Verfahren und einrichtung für bereichsbasierte prüfpunkte in einer speichervorrichtung
CN110457236B (zh) 存储***以及对存储***执行和验证写保护的方法
DE112018000181T5 (de) System und verfahren für die schnelle ausführung von kapselinternen befehlen
DE112018000228T5 (de) System und Verfahren zur Verarbeitung und Arbitrierung von Übermittlungs- und Beendigungswarteschlangen
DE112018000233T5 (de) System und Verfahren zur Verarbeitung und Arbitrierung von Übermittlungs- und Beendigungswarteschlangen
DE102009013384B4 (de) System und Verfahren zur Bereitstellung einer sicheren Anwendungsfragmentierungsumgebung
DE112016004148T5 (de) Systeme und Verfahren zur Befehlsautorisierung
DE102013108394A1 (de) Verfahren zum Verwalten eines Schlüssels für sicheres Speichern von Daten und Vorrichtung dafür
DE102018114266A1 (de) Nichtflüchtige speichervorrichtung mit sicherem lesen
DE112018000230T5 (de) System und Verfahren zur spekulativen Befehlsausführung unter Verwendung des Steuerungsspeicherpuffers
DE102012110692A1 (de) Datenspeichervorrichtung, die eine unterteilte Datei in verschiedenen Speichermedien speichert, sowie Datenverwaltungsverfahren
DE102011082184A1 (de) Sicherheitsschutz für Speicherinhalt von Prozessorhauptspeicher
DE102018115683A1 (de) Domänenübergreifende sicherheit in kryptographisch partionierter cloud
DE112018000839T5 (de) Datenspeichervorrichtung, die eingerichtet ist, um Vorgänge unter Verwendung einer drahtlosen Schnittstelle durchzuführen
DE112016001972T5 (de) Sicherer Zugriff in einem Mikrokontrollersystem
DE112021000648T5 (de) Speichervorrichtung, die gegen cyber-angriffe und fehlfunktionen widerstandsfähig ist
DE102020127800A1 (de) Ein-chip-system und verfahren zu dessen betrieb
DE102013112897A1 (de) Nichtflüchtiger Speicher und Verfahren zum Betreiben eines nichtflüchtigen Speichers
DE102020103846A1 (de) Verfahren zum Betreiben eines Speichersystems mit Gegenmaßnahme gegen Replay-Angriff und Speichersystem, das dasselbe durchführt
DE112019007230T5 (de) Multimodus-Geschützter-Speicher
DE112018002501T5 (de) Speichersystem und verfahren zum ausführen dateibasierter firmwarebefehle und erfassen von antwortdaten
DE102022126673A1 (de) Verwendung einer physisch nicht klonbaren funktion zur erzeugung einer speicherkennung
DE112021000149T5 (de) Verschlüsselung einer datenspeicherungsvorrichtung

Legal Events

Date Code Title Description
R082 Change of representative

Representative=s name: KUHNEN & WACKER PATENT- UND RECHTSANWALTSBUERO, DE

R012 Request for examination validly filed
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R130 Divisional application to

Ref document number: 102015017399

Country of ref document: DE

R020 Patent grant now final