-
QUERVERWEIS AUF VERWANDTE ANMELDUNGN
-
Es wird die Priorität der
koreanischen Patentanmeldung Nr. 10-2012-0116890 , welche am 19. Oktober 2012 eingereicht wurde, und deren Gegenstand hiermit durch Bezugnahme mit eingebunden ist, beansprucht.
-
HINTERGRUND
-
Das erfinderische Konzept bezieht sich auf Hostcontrollerschnittstellen. Genauer bezieht sich das erfinderische Konzept auf Sicherheitsverwaltungseinheiten in Hostcontrollerschnittstellen, welche in der Lage sind, eine Sicherheitsstrategie gemäß einem Bereich einer entsprechenden Speichervorrichtung zu verwalten. Das erfinderische Konzept bezieht sich ebenso auf Verfahren zum Betreiben einer Hostcontrollerschnittstelle, welche die Sicherheitsverwaltungseinheit aufweist, sowie auf Vorrichtungen, welche solche Hostcontrollerschnittstellen aufweisen.
-
Datensicherheit ist ein wichtiger Gesichtspunkt beim Entwurf und Betrieb von Speichervorrichtungen innerhalb zeitgemäßer Computersysteme. Eine effektive Herangehensweise für eine Datensicherheit muss einen unautorisierten Zugriff auf gespeicherte Daten verhindern, ob solch ein Zugriff vorsieht, zu lesen, zu manipulieren, zu ändern, zu falsifizieren, zu fälschen oder die gespeicherten Daten zu extrahieren. Eine effektive Herangehensweise für die Datensicherheit muss auch verhindern, dass eine externe Ursache einen Zugriff auf gespeicherte Daten durch einen legitimierten Verwender blockiert.
-
Ein Datenbus (und entsprechende Datensignale, welche durch den Datenbus kommuniziert werden) zwischen einer Hostcontrollerschnittstelle und einer entsprechenden Speichervorrichtung sind oftmals ein Ziel während einer Datenspeicherung. Als ein Ergebnis werden viele herkömmliche Systeme die Daten, welche zwischen der Hostcontrollerschnittstelle und der Speichervorrichtung kommuniziert werden, verschlüsseln. Verschiedene Verschlüsselungsverfahren und/oder Verschlüsselungsmodule können in Zusammenhang mit der Hostcontrollerschnittstelle für diesen Zweck verwendet werden. Solch herkömmliche Herangehensweisen arbeiten ziemlich gut, solange die Datensicherheitsstrategie auf alle gespeicherten Daten über alle Bereich der Speichervorrichtung angewandt wird.
-
Das heißt, dass, wenn ein sogenannter ”sicherer Prozessor” (secure processor) verwendet wird, um eine bestimmte Datensicherheitsstrategie für die Speichervorrichtung zu verwalten, ein signifikanter Overhead beziehungsweise signifikante Betriebslasten entstehen, wenn eine Datenverarbeitung durch einen ”nicht-sicheren Prozessor” durchgeführt werden muss. Als Auswirkung verschlechtert das Schalten des Prozessors zwischen Daten, welche verschiedene Datensicherheitsstrategien haben, die Gesamtleistungsfähigkeit in dem konstituierenden Computersystem.
-
KURZFASSUNG
-
Bestimmte Ausführungsformen des erfinderischen Konzepts sehen Sicherheitsverwaltungseinheiten vor, welche eine Sicherheitsstrategietabelle aufweisen, welche verwendet werden kann, um Sicherheitsstrategien gemäß einem bestimmten Bereich einer Speichervorrichtung unterschiedlich zu verwalten. Die Verwendung solcher Sicherheitsverwaltungseinheiten tendiert dazu, den Berechnungs-Overhead innerhalb eines Computersystems zu minimieren, welcher herkömmlicherweise aufgrund von Änderungen in der Sicherheitsstrategie auftritt. Bestimmte Ausführungsformen des erfinderischen Konzepts sehen eine Hostcontrollerschnittstelle vor, welche diesen Typ von Sicherheitsverwaltungseinheit aufweist. Bestimmte Ausführungsformen des erfinderischen Konzepts sehen Verfahren zum Betreiben der Hostcontrollerschnittstelle vor, welche diesen Typ von Sicherheitsverwaltungseinheit aufweist, sowie Vorrichtungen mit einer solchen Hostcontrollerschnittstelle.
-
In einer Ausführungsform sieht das erfinderische Konzept ein Verfahren vor, welches Folgendes aufweist: ein Empfangen eines Puffer-Descriptors beziehungsweise einer Pufferkennzeichnung, welcher Sektorinformationen aufweist, von einem Hauptspeicher, ein Abrufen von Daten durch Verwenden einer Quelladresse, welche in dem Puffer-Descriptor enthalten ist, ein Auswählen eines Eintrags aus einer Sicherheitsstrategietabelle unter Verwendung der Sektorinformationen und ein Bestimmen, ob die abgerufenen Daten unter Verwendung einer Sicherheitsstrategie, welche durch den ausgewählten Eintrag definiert ist, zu verschlüsseln sind.
-
In einer anderen Ausführungsform sieht das erfinderische Konzept eine Sicherheitsverwaltungseinheit vor, die Folgendes aufweist: eine Sicherheitsstrategietabelle, welche in einem Speicher gespeichert ist und einen ersten und einen zweiten Eintrag aufweist, welche jeweils eine erste und eine zweite Sicherheitsstrategie für einen ersten und einen zweiten Bereich einer Speichervorrichtung definieren, und eine Sektorzugriffssteuerlogik, welche konfiguriert ist, um zwischen dem ersten und dem zweiten Eintrag in Antwort auf Sektorinformationen, welche in einem Puffer-Descriptor enthalten sind, auszuwählen, und um ein erstes Steuersignal vorzusehen, welches anzeigt, ob Daten gemäß der ersten Sicherheitsstrategie oder der zweiten Sicherheitsstrategie zu verschlüsseln sind.
-
In einer anderen Ausführungsform sieht das erfinderische Konzept eine Hostcontrollerschnittstelle vor, welche Folgendes aufweist: einen Speichercontroller, welcher Daten von einem Hauptspeicher unter Verwendung einer Quelladresse liest, welche in einem Puffer-Descriptor enthalten ist, und einen Sektorschlüssel in Antwort auf Sektorinformationen vorsieht, welche in dem Puffer-Descriptor enthalten sind, eine Sicherheitsverwaltungseinheit, welche einen Eintrag aus einer Sicherheitsstrategietabelle, welche in einem Speicher gespeichert ist, in Antwort auf den Sektorschlüssel auswählt und ein erstes Steuersignal vorsieht, welches eine Sicherheitsstrategie gemäß dem ausgewählten Eintrag definiert, und einen Datenprotektor beziehungsweise Datenschützer, welcher bestimmt, ob eine Verschlüsselungsoperation auf den Daten in Antwort auf das erste Steuersignal durchzuführen ist, wobei die Sicherheitsstrategietabelle eine Mehrzahl von Einträgen aufweist, wovon jeder jeweils eine entsprechende Sicherheitsstrategie für wenigstens einen einer Mehrzahl von Bereichen in einer Speichervorrichtung definiert.
-
In einer anderen Ausführungsform sieht das erfinderische Konzept ein Computersystem vor, welches eine Speichervorrichtung aufweist, welche eine Mehrzahl von Bereichen aufweist, eine zentrale Verarbeitungseinheit (CPU = Central Processing Unit), welche einen Puffer-Descriptor erzeugt, während sie eine Anwendung ausführt, welche auf einen Bereich unter der Mehrzahl von Bereichen zugreift, einen Hauptspeicher, welcher den Puffer-Descriptor und Daten speichert, und eine Hostcontrollerschnittstelle, welche die Daten von dem Hauptspeicher unter Verwendung einer Quelladresse liest, welche in dem Puffer-Descriptor enthalten ist, einen einer Mehrzahl von Einträgen in Antwort auf Sektorinformationen auswählt und bestimmt, ob eine Verschlüsselungsoperation auf den Daten durchzuführen ist basierend auf einer Sicherheitsstrategie, welche durch den ausgewählten Eintrag definiert ist, wobei jeder der Mehrzahl von Einträgen eine unterschiedliche Sicherheitsstrategie für jeden der Mehrzahl von Bereichen in der Speichervorrichtung verwaltet.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
1 ist ein Blockschaltbild eines Computersystems gemäß Ausführungsformen des erfinderischen Konzepts;
-
2 ist ein Blockschaltbild eines Computersystems gemäß einer anderen Ausführungsform des erfinderischen Konzepts;
-
3 ist ein Konzeptdiagramm, welches ein Beispiel eines Puffer-Descriptors zeigt, welcher in den Computersystemen der 1 und 2 verwendet werden kann;
-
4 ist ein Blockschaltbild eines teilweisen Speicherabbilds für die Speichervorrichtung der 1;
-
5 ist ein Blockschaltbild, welches eine Hostcontrollerschnittstelle veranschaulicht, welche in dem Computersystem der 1 und 2 verwendet werden kann;
-
6 ist ein Konzeptdiagramm, welches eine Sicherheitsstrategietabelle veranschaulicht, welche in der Sicherheitsverwaltungseinheit der 5 verwendet werden kann;
-
7 ist ein Blockschaltbild, welches die Sicherheitsverwaltungseinheit der 5 weiter veranschaulicht;
-
8 ist ein Betriebsdiagramm, welches eine Initialisierungsoperation für eine direkte Speicherzugriffsoperation gemäß Ausführungsformen des erfinderischen Konzepts veranschaulicht;
-
9, einschließlich der 9A und 9B, ist ein Flussdiagramm, welches ein Betriebsverfahren für eine direkte Speicherzugriffsoperation gemäß Ausführungsformen des erfinderischen Konzepts veranschaulicht;
-
10 ist eine Konzeptzeichnung, welche eine andere Sicherheitsstrategietabelle veranschaulicht, welche in der Sicherheitsverwaltungseinheit der 5 verwendet werden kann.
-
11 ist ein teilweises Flussdiagramm, welches weiterhin einen Abschnitt der direkten Speicherzugriffsoperation der 9 veranschaulicht wie sie durch die Sicherheitsstrategietabelle der 10 modifiziert ist;
-
12 ist eine Liste von Signalen, welche in einer Sicherheitsstrategietabelle gespeichert werden können, wenn eine eingebettete Multimediakarte (eMMC = embedded Multimedia Cart) in einer Ausführungsform des erfinderischen Konzepts verwendet wird;
-
13 ist Konzeptdiagramm noch einer anderen Sicherheitsstrategietabelle, welche in der Sicherheitsverwaltungseinheit der 5 enthalten sein kann;
-
14 ist eine Konzeptzeichnung, welche ein anderes Beispiel eines Puffer-Descriptors zeigt, welcher in den Computersystemen der 1 und 2 verwendet werden kann;
-
15, 16 und 17 sind jeweilige Blockschaltbilder, welche ein anderes Beispiel einer Hostcontrollerschnittstelle veranschaulichen, welche in den Computersystemen der 1 und 2 verwendet werden kann; und
-
18 ist ein Blockschaltbild eines Computersystems gemäß einer anderen Ausführungsform des erfinderischen Konzepts.
-
DETAILLIERTE BESCHREIBUNGEN
-
Ausführungsformen des erfinderischen Konzepts werden nun in einigen zusätzlichen Details unter Bezugnahme auf die beigefügten Zeichnungen beschrieben werden. Das erfinderische Konzept kann jedoch in vielen unterschiedlichen Formen ausgeführt werden und sollte nicht als auf nur die veranschaulichten Ausführungsformen beschränkt betrachtet werden. Vielmehr sind diese Ausführungsformen vorgesehen, sodass diese Offenbarung gewissenhaft und vollständig sein wird, und den Umfang des erfinderischen Konzepts Fachleuten vollständig vermitteln wird. Über die Beschreibung und Zeichnungen hinweg bezeichnen gleiche Bezugszahlen und Kennzeichnungen gleiche oder ähnliche Elemente.
-
Es wird verstanden werden, dass wenn auf ein Element Bezug genommen wird als ”verbunden” oder ”gekoppelt” mit einem anderen Element, es direkt mit dem anderen Element verbunden oder gekoppelt sein kann, oder zwischenliegende Elemente gegenwärtig sein können. Im Gegensatz hierzu gibt es, wenn auf ein Element Bezug genommen wird als ”direkt verbunden” oder ”direkt gekoppelt” mit einem anderen Element keine zwischenliegenden Elemente. Wenn hierin verwendet, schließt der Begriff ”und/oder” eine beliebige und alle Kombinationen von einem oder mehreren der zugeordneten aufgelisteten Gegenstände ein und kann abgekürzt werden als ”/”.
-
Es wird verstanden werden, dass, obwohl die Begriffe erster/erste/erstes, zweiter/zweite/zweites, etc. hierin verwendet werden können, um verschiedene Elemente zu beschreiben, diese Elemente durch diese Begriffe nicht beschränkt werden sollten. Diese Begriffe werden nur verwendet, um ein Element von einem anderen zu unterscheiden. Beispielsweise könnte ein erstes Signal ein zweites Signal genannt werden, und ähnlich könnte ein zweites Signal ein erstes Signal genannt werden, ohne von den Lehren der Offenbarung abzuweichen.
-
Die Terminologie, welche hierin verwendet wird, ist lediglich zum Zweck des Beschreibens bestimmter Ausführungsformen und ist nicht vorgesehen, um für das erfinderische Konzept beschränkend zu sein. Wenn hierin verwendet, sind die Singularformen ”einer/einer/eines” und ”der/die/das” vorgesehen, um auch die Pluralformen einzuschließen, solange der Zusammenhang nicht deutlich Anderweitiges anzeigt. Es wird weiterhin verstanden werden, dass die Begriffe ”weist auf” und/oder ”aufweisend” oder ”enthält” und/oder ”enthaltend”, wenn sie in dieser Beschreibung benutzt werden, die Anwesenheit von genannten Merkmalen, Bereichen, ganzen Zahlen, Schritten, Operationen, Elementen und/oder Bestandteilen beziehungsweise Komponenten spezifizieren, jedoch nicht die Anwesenheit oder Hinzufügung von einem oder mehreren anderen Merkmalen, Bereichen, ganzen Zahlen, Schritten, Operationen, Elementen, Komponenten und/oder Gruppen davon ausschließen.
-
Solange nicht anderweitig definiert, haben alle Begriffe (einschließlich technischer und wissenschaftlicher Begriffe), welche hierin verwendet werden, dieselbe Bedeutung, wie sie allgemein durch Fachleute in dem Fachgebiet, zu welchem dieses erfinderische Konzept gehört, verstanden werden. Es wird weiterhin verstanden werden, dass Begriffe, wie diejenigen, welche in herkömmlich verwendeten Wörterbüchern definiert sind, als eine Meinung habend interpretiert werden sollten, welche konsistent mit ihrer Bedeutung in dem Zusammenhang des relevanten Fachgebiets und/oder der vorliegenden Anmeldung sind, und nicht in einem idealisierten oder übermäßig formalen Sinne interpretiert werden, solange nicht ausdrücklich hierin so definiert.
-
Der Begriff ”Computersystem” wird hierin verwendet, um breit eine digitale Plattform zu bezeichnen, welche in der Lage ist, einige Formen von Datenverarbeitung auf Daten durchzuführen, welche in einer Datenspeichervorrichtung zu speichern sind und/oder Daten, welche von einer Datenspeichervorrichtung empfangen werden. Ein Computersystem wird eine Logikschaltung aufweisen, welche allgemein ein ”Prozessor” genannt werden kann. In bestimmten Ausführungsformen des erfinderischen Konzepts kann gesagt werden, dass der Prozessor des Computersystems eine oder mehrere Anwendungen in Übereinstimmung mit einem konstituierenden Betriebssystem (OS = Operating System) ”ausführt”.
-
Die Daten (beispielsweise Lese-/Schreibdaten), welche einbezogen sind durch oder bezogen sind auf die Ausführung einer Anwendung durch den Prozessor können in einem ”Hauptspeicher” gespeichert sein. Demnach können die ”Daten”, welche in dem Hauptspeicher gespeichert sind, Programmdaten sein, welche einen Befehl innerhalb der Anwendung definieren und/oder aktuelle Daten (beispielsweise Verwenderdaten, Nutzlastdaten, Berechnungsdaten, etc.), welche in Antwort auf einen Befehl (Befehle) durch den Prozessor abgewickelt werden oder erzeugt werden.
-
Wie durch Fachleute verstanden wird, kann ein Computersystem mehr als eine Anwendung nacheinanderfolgend oder gleichzeitig ausführen (das heißt in wenigstens einer Ausführungszeit überlappend sein). Allgemein können Daten zwischen Anwendungen geteilt werden beziehungsweise von diesen gemeinsam verwendet werden, jedoch nur solange als diese Daten eine ”Sicherheitsdefinition” besitzen, welche in der Lage ist, schlüssig durch jede Anwendung verstanden zu werden. Bestimmte Datendefinitionen jedoch, welche einer Anwendung zugeordnet sind, können durch eine andere Anwendung nicht verstanden werden. Beispielsweise betreiben bestimmte Smartcards eine Sicherheitsanwendung, welche einen Sicherheitsschlüssel verwendet, welcher notwendig ist, um eine Validierung, Authentifizierung und/oder Entschlüsselung von Daten durchzuführen. Ein Schützen von Sicherheitsschlüsseln und/oder zugeordneten Daten, welche in Bezug auf einen Sicherheitsschlüssel definiert sind (gemeinsam oder individuell hierin nachstehend ”Sicherheitsschlüssel-benötigte Daten”) ist ein wichtiger Gesichtspunkt bei jeglicher Herangehensweise für eine Datensicherheit.
-
1 (Fig.) ist ein Blockschaltbild, welches ein Computersystem gemäß bestimmten Ausführungsformen des erfinderischen Konzepts veranschaulicht. Bezug nehmend auf 1 weist ein Computersystem 1000 eine zentrale Verarbeitungseinheit (CPU = Central Processing Unit) 1100, einen Hauptspeicher 1200, einen Hauptspeichercontroller 1300, eine Hostcontrollerschnittstelle 1400 und eine Datenspeichervorrichtung 1500 auf. Das Computersystem 1000 kann eine mobile Vorrichtung wie beispielsweise ein mobiles Telefon oder ein Laptopcomputer, ein Personal Computer, ein Servercomputer, eine programmierbare Heim-Einrichtung beziehungsweise Heimgerät oder ein Computersystem für alle Zwecke oder bestimmte Zwecke wie beispielsweise ein Main Frame Computer sein.
-
Die CPU 1100 steuert den Gesamtbetrieb des Computersystems 1000, und in der veranschaulichten Ausführungsform der 1 weist sie eine sichere CPU 1110 und eine nicht-sichere CPU 1120 auf. Die sichere CPU 1110 kann verwendet werden, um Computersystem-Bootoperationen und (einen) bestimmte(n) Authentifizierungsvorgang(-vorgänge) auszuführen. Im Gegensatz hierzu ist es der nicht-sicheren CPU 1120 nicht erlaubt, auf ein Sicherheitsmodul oder Daten, welche in einem ”verschlüsselten Datenbereich” gespeichert sind, zuzugreifen.
-
Beispielsweise wird angenommen, dass das Computersystem 1000 eine mobile Vorrichtung ist, welche in der Lage ist, eine Anwendung auszuführen, welche ein hohes Niveau an Datensicherheit benötigt (beispielsweise eine Bankanwendung oder eine Börsenmakleranwendung). Dieser Typ von ”Hochsicherheitsanwendung” ist einer, welcher eine Datenzertifizierung oder Authentifizierung benötigt und als solches muss er durch die sichere CPU 1110 ausgeführt werden. Das Computersystem 1000 kann jedoch auch in der Lage sein, mehrere ”Niedrigsicherheitsanwendungen” (beispielsweise ein E-Buch oder eine Spielanwendung) unter Verwendung der nicht-sicheren CPU 1120 auszuführen.
-
Demzufolge kann, wenn eine ”gegenwärtige Anwendung” (das heißt eine Anwendung, welche gegenwärtig durch die CPU 1100 ausgeführt wird) auf Daten, welche in der Speichervorrichtung 1500 gespeichert sind, zugreift, die CPU 1100 einen ”Puffer-Descriptor” (BD = Buffer Descriptor) erzeugen, welcher einen gespeicherten Ort für zugeordnete Daten (beispielsweise Lese-/Schreibdaten) identifiziert, und dann den Puffer-Descriptor zusammen mit den Daten in dem Hauptspeicher 1200 speichern, obgleich jeder erzeugte Puffer-Descriptor in einem bestimmten Puffer-Descriptor(BD)-Bereich 1210 des Hauptspeichers 1200 gespeichert werden kann. In diesem Zusammenhang kann der Hauptspeicher 1200 als ein Datenspeichermedium verstanden werden, welches verwendet wird, um vorübergehend Daten zu speichern (beispielsweise ein Systemspeicher oder ein Cachespeicher). Demnach kann der Hauptspeicher 1200 verwendet werden, um Daten gemäß einer Filesystemform zu speichern und/oder um (einen) Puffer-Descriptor(en) zu speichern, welcher (welche) durch die CPU 1100 in dem BD-Bereich 1210 erzeugt wird (werden).
-
In Zusammenhang mit der CPU 1100 kann der Hauptspeichercontroller 1300 verwendet werden, um den Hauptspeicher 1200 zu steuern. Der Hauptspeichercontroller 1300 kann konfiguriert sein, sodass er eine Mehrzahl von Busschnittstellenports beziehungsweise Busschnittstellenanschlüssen unterstützt und dadurch kann der Hauptspeichercontroller 1300 mit der sicheren CPU 1110, der nicht-sicheren CPU 1120 und der Hostcontrollerschnittstelle 1400 verbunden sein.
-
Die Hostcontrollerschnittstelle 1400 sieht eine Hardware-basierte Schnittstelle vor, welche in der Lage ist, Daten (beispielsweise DATA und DATA') zwischen dem Hauptspeicher 1200 und der Speichervorrichtung 1500 zu kommunizieren. In bestimmten Ausführungsformen des erfinderischen Konzepts kann die Hostcontrollerschnittstelle 1400 eine Direktspeicherzugriffs(DMA = Direct Memory Access)-Masterfunktion vorsehen. Eine Hostcontrollerschnittstelle 1400, welche die DMA-Masterfunktion hat, kann verwendet werden, um eine ”sichere Transaktion” zu erzeugen, welche eine gegebene ”Sicherheitsdefinition” oder ”Sicherheitsniveau” hat, wie sie bzw. es durch die sichere CPU 1110 etabliert wird. Sie kann auch verwendet werden, um eine ”nicht-sichere Transaktion” zu erzeugen, welche kein bestimmtes Sicherheitsniveau (oder ein relativ niedriges Sicherheitsniveau) hat, wie es durch die nicht-sichere CPU 1120 etabliert wird. Gemäß bestimmten Ausführungsformen des erfinderischen Konzepts können die Hostcontrollerschnittstelle 1400 und die Speichervorrichtung 1500 unter Verwendung einer seriellen ATA(SATA-)Schnittstelle kommunizieren, und ein Sektor kann als eine Adresseinheit verwendet werden.
-
Es wird angenommen, dass die Speichervorrichtung 1500 ein Datenspeichermedium ist, welches in der Lage zu einer langfristigen (nicht flüchtigen) Speicherung von großen Datenmengen (beispielsweise Software, Verwenderdaten, etc.) ist. Wie in 1 gezeigt ist, kann die Speichervorrichtung 1500 einen Verschlüsselungsbereich 1510, welcher vorgesehen ist, um sicherheitsnotwendige Daten zu speichern, und einen Nicht-Verschlüsselungsbereich 1520 aufweisen, welcher vorgesehen ist, um allgemeine Daten oder nicht-sicherheitsnotwendige Daten zu speichern. Nur Hochsicherheitsanwendungen, welche sicherheitsnotwendige Daten von dem Verschlüsselungsbereich 1510 erzeugen und auf diese zugreifen, können auf den Verschlüsselungsbereich 1510 zugreifen.
-
2 ist ein Blockschaltbild, welches ein Computersystem gemäß bestimmten Ausführungsformen des erfinderischen Konzepts veranschaulicht. Bezug nehmend auf 2 weist ein Computersystem 2000 eine CPU 2100, einen Hauptspeicher 2200, einen Hauptspeichercontroller 2300, eine Hostcontrollerschnittstelle 2400 und eine Speichervorrichtung 2500 auf. Die CPU 2100, der Hauptspeicher 2200, der Hauptspeichercontroller 2300 und die Hostcontrollerschnittstelle 2400 kommunizieren über einen Systembus 2600.
-
Verglichen mit dem Computersystem 1000 der 1 wird angenommen, dass der Speichercontroller 2300 in dem Computersystem 2000 der 2 nur einen einzelnen Busschnittstellenport unterstützt. Demzufolge kann die CPU 2100 elektrisch mit entweder dem Speichercontroller 2300 oder der Hostcontrollerschnittstelle 2400 über den Systembus 2600 zu einem beliebigen gegebenen Zeitpunkt verbunden sein.
-
Die CPU 2100 kann in entweder einem sicheren Modus 2110 oder einem nicht-sicheren Modus 2120 arbeiten. Jeder dieser Betriebsmodi kann gemäß einer gegenwärtigen Anwendung, welche durch die CPU 2100 ausgeführt wird, bestimmt werden. Wenn die CPU 2100 in Antwort auf eine Anwendung niedriger Sicherheit in dem nicht-sicheren Modus 2120 arbeitet, kann sie nicht gleichzeitig auf ein Sicherheitsmodul oder einen verschlüsselten Speicherbereich zugreifen.
-
Die Struktur und der Betrieb der Hostcontrollerschnittstelle 2400 der 2 können im Wesentlichen ähnlich zu denjenigen der Hostcontrollerschnittstelle 1400 der 1 sein.
-
3 ist ein Konzeptdiagramm, welches eine mögliche Datenstruktur für einen Puffer-Descriptor veranschaulicht, welcher in einer Ausführungsform des erfinderischen Konzepts verwendet werden kann. Bezug nehmend auf die 1, 2 und 3 weist ein Puffer-Descriptor eine Quelladresse 11, eine Zieladresse 12, eine Datenlänge 13 und einen Zeiger beziehungsweise Pointer auf NEXT-Ziel 14 bzw. das nächste Ziel 14 auf.
-
Die Quelladresse 11 zeigt einen Ort an, an welchem Quelldaten (das heißt Daten, welche zu verarbeiten sind) gespeichert sind. Die Zieladresse 12 zeigt einen Ort an, an welchem resultierende Daten (das heißt die nachfolgend verarbeiteten Daten) gespeichert werden. Die Datenlänge 13 zeigt eine Größe von Daten, welche zu kommunizieren sind an, und der Zeiger auf NEXT-Ziel 14 zeigt Ort einer nächsten Speicherzugriffsoperation folgend auf die gegenwärtige Speicherzugriffsoperation an.
-
Während einer Leseoperation erzeugt die CPU 1100/2100 einen Puffer-Descriptor 10, welcher Lesedaten (DATA'), welche in der Speichervorrichtung 1500/2500 gespeichert sind, zugeordnet ist. Hier kann die Quelladresse 11 des Puffer-Descriptors 10 eine Adresse der Speichervorrichtung 1500 oder 2500 aufweisen, und die Zieladresse 12 kann den Hauptspeicher 1200 oder 2200 aufweisen.
-
Während einer Schreiboperation erzeugt die CPU 1100/2100 den Puffer-Descriptor 10, welcher Schreibdaten (DATA), welche vorübergehend in dem Hauptspeicher 1200/2200 gespeichert sind und in die Speichervorrichtung 1500/2500 zu programmieren sind, zugeordnet ist. Hier kann die Quelladresse 11 des Puffer-Descriptors 10 eine Adresse in dem Hauptspeicher 1200/2200 sein, während die Zieladresse 12 eine Adresse in der Speichervorrichtung 1500/2500 sein kann.
-
Hierin nachstehend werden beispielhafte Strukturen und Operationen beziehungsweise ein Betrieb für bestimmte Hostcontrollerschnittstellen 1400/2400 in einigen zusätzlichen Details unter Bezugnahme auf die 5, 15, 16 und 17 beschrieben werden.
-
4 ist ein Blockschaltbild, welches ein mögliches Beispiel eines teilweisen Speicherabbilds für die Speichervorrichtung 1500 der 1 veranschaulicht. Die Speichervorrichtung 1500 kann in einer magnetischen Speichervorrichtung wie einem Festplattenlaufwerk (HDD = Hard Disk Drive), einer optischen Speicherplatte wie beispielsweise einer Kompaktdisc (CD = Compact Disk) oder einem flashbasierten Speicher wie beispielsweise einem Festkörperlaufwerk (SSD = Solid State Drive), einer Multimediakarte (MMC = Multi Media Card), einer eingebetteten MMC (eMMC = embedded MMC) oder einem Universalflashspeicher (UFS = Universal Flash Storage) ausgeführt sein.
-
Unter der Annahme, dass eine HDD verwendet wird, können Informationen auf einer magnetischen Platte, welche sich mit einer hohen Geschwindigkeit dreht, gespeichert werden. Daten können von der magnetischen Platte gelesen und/oder zu dieser geschrieben werden unter Verwendung einer oder mehrerer Lese-/Schreibköpfe. Verglichen mit HDDs führen herkömmliche SSDs Leseoperationen mit einer relativ hohen Geschwindigkeit durch, jedoch Schreiboperationen mit relativ niedriger Geschwindigkeit.
-
Die MMC ist eine lösbare oder anfügbare Vorrichtung, welche Daten verschiedener digitaler Vorrichtungen wie beispielsweise einem Mobiltelefon, einem Smartphone, einer mobilen Internetvorrichtung (MID = Mobil Internet Device), einem Computer oder einer Digitalkamera speichert und verschiebt bzw. bewegt, und sie ist durch einen Speicherplatz zum Speichern von Daten und einem Abschnitt, der für einen Betrieb und eine Steuerung verantwortlich ist, konfiguriert.
-
Der UFS ist eine flashbasierte Speichervorrichtung, welche eine niedrige Leistungsaufnahme beziehungsweise einen niedrigen Leistungsverbrauch hat. Die UFS kann als eine serielle Hochgeschwindigkeitsschnittstelle verwendet werden, während sie eine Speicherfähigkeit wie eine SSD, eine eingebaute Befehlsreihungsfunktion zum Verbessern einer Direktzugriffsfunktion und eine eingebaute Leistungsersparnisfunktion einer seriellen Schnittstelle hat.
-
Im Allgemeinen kann die Speichervorrichtung 1500 eine Adresseinheit von CHS (Zylinder, Kopf und Sektor) oder eine logische Blockadresse (LBA = Logical Block Adress) haben. Die LBA wird verwendet, um einen Ort eines Datenblocks in der Speichervorrichtung 1500 zu bezeichnen. Die LBA kann eine Adresse oder einen Block (das heißt einen Index) bezeichnen. Ein Sektor und logische Blöcke können ein ganzzahliges Vielfaches von 512 Byte wie 512 Byte oder 1024 Byte sein.
-
Bezug nehmend auf 4 weist die Speichervorrichtung 1500A eine Mehrzahl von Bereichen 31–34 und 38 auf, wovon jeder jeweils in der Lage ist, Daten zu speichern, welche eine unterschiedliche Sicherheitsdefinition (oder Sicherheitsstrategie) haben. Gemäß einem Typ der Speichervorrichtung kann jeder der Mehrzahl von Bereiche in eine Segmenteinheit, eine Sektoreinheit oder eine Partitionseinheit unterteilt sein.
-
Eine bestimmte Sicherheitsstrategie kann während einer DMA-Operation gemäß einem vorgeschriebenen Sicherheitsniveau für die gegenwärtige Anwendung bestimmt werden. Demnach bestimmt die Sicherheitsstrategie der gegenwärtigen Anmeldung, ob ein Zugriff auf einen bestimmten Bereich zur Verfügung steht, ob Daten, welche in dem bestimmten Bereich gespeichert sind, verschlüsselt sind, und ob beispielsweise eine Schreiboperation zur Verfügung steht.
-
Demnach kann in dem veranschaulichten Beispiel der 4 auf einen ersten Bereich 31 nur durch sichere Anwendungen, welche eine bestimmte Sicherheitsstrategie haben, zugegriffen werden. Demnach speichert der erste Bereich 31 nur verschlüsselte Daten und es sind nur Leseoperationen für die verschlüsselten Daten, welche in dem ersten Bereich 31 gespeichert sind, zugelassen. Ein dritter Bereich 33 ist ähnlich definiert.
-
Auf einen zweiten Bereich 32 jedoch kann durch nicht-sichere Anwendungen zugegriffen werden, er ist in der Lage, nur Klartext (nicht-verschlüsselte) Daten zu speichern, und sowohl Lese- als auch Schreiboperationen sind zugelassen.
-
Auf einen vierten Bereich 34 kann durch nicht-sichere Anwendungen zugegriffen werden, er ist in der Lage, verschlüsselte Daten zu speichern, und nur Leseoperationen sind zugelassen, und ein achter Bereich 38 ist ähnlich definiert.
-
5 ist ein Blockschaltbild, welches ein mögliches Beispiel einer Hostcontrollerschnittstelle weiter veranschaulicht, welche in dem Computersystem der 1 verwendet werden kann. Bezug nehmend auf die 1 und 5 weist eine Hostcontrollerschnittstelle 1400A einen Speichercontroller 310, eine Sicherheitsverwaltungseinheit 320, einen Datenprotektor beziehungsweise Datenschützer 330 und ein Register 340 vom Transaktionstyp auf.
-
Der Speichercontroller 310 steuert Datenzugriffsoperationen, welche auf Daten gerichtet sind, welche in der Speichervorrichtung 1500 gespeichert sind. Wenn Daten, die in der Speichervorrichtung 1500 gespeichert werden, durch einen Sektor identifiziert werden, kann das herkömmlich verstandene XTS-AES-Verfahren des Allozierens eines Sektorschlüssels für jeden Sektor als eine Herangehensweise für die Verschlüsselung der Daten verwendet werden, welche in der Speichervorrichtung 1500 gespeichert sind.
-
In dem veranschaulichten Beispiel der 5 empfängt der Speichercontroller 310 einen Puffer-Descriptor (BD) von dem Hauptspeicher 1200. Der Speichercontroller 310 kann dann (beispielsweise) eine Quelladresse, welche in dem Puffer-Descriptor enthalten ist, verwenden, um bestimmte Daten (DATA), welche in dem Hauptspeicher 1200 gespeichert sind, zu identifizieren.
-
Zusätzlich sieht der Speichercontroller 310 einen Sektorschlüssel (SECTOR_KEY) für den Datenprotektor 330 in Übereinstimmung mit Sektorinformationen, welche in dem Puffer-Descriptor BD enthalten sind, vor. Die Sektorinformationen, welche in dem Puffer-Descriptor BD enthalten sind, können durch den Speichercontroller 310 als Informationen verwendet werden, welche eine entsprechende Sektoradresse (SECTOR_ADD) erzeugen, welche zu der Speichervorrichtung 1500 kommuniziert wird. Hier kann ein Sektorschlüssel einmalig beziehungsweise eindeutig beziehungsweise einzigartig aus Sektorinformationen erzeugt werden unabhängig davon wie der Speichercontroller 310 die Sektorinformationen während Datenverarbeitungsoperationen nachfolgend verwendet.
-
In bestimmten Ausführungsformen des erfinderischen Konzepts weist die Sicherheitsverwaltungseinheit 320 eine Sicherheitsstrategietabelle auf, welche mehrere Einträge hat, wobei jeder Eintrag eine Sicherheitsstrategie für einen bestimmten Bereich der Speichervorrichtung 1500 verwaltet. Ein mögliches Beispiel einer Sicherheitsstrategietabelle wird in einigen zusätzlichen Details unter Bezugnahme auf 6 beschrieben werden.
-
Demzufolge kann die Sicherheitsverwaltungseinheit 320 einen der Sicherheitsstrategietabelleneinträge in Antwort auf einen gegebenen Sektorschlüssel (SECTOR_KEY) auswählen, welcher durch den Speichercontroller 310 vorgesehen ist. Die Sicherheitsverwaltungseinheit 320 kann ein Verschlüsselungs-/Entschlüsselungs-Anzeigesignal ED, welches bestimmt, ob eine Verschlüsselungsoperation auf Daten gemäß einer Sicherheitsstrategie, welche in dem ausgewählten Eintrag enthalten ist, durchzuführen ist, an den Datenprotektor 330 ausgeben. Weiterhin kann die Sicherheitsverwaltungseinheit 320 ein Zugriffsanzeigesignal IAE ausgeben, welches bestimmt, ob eine Zugriffsoperation (beispielsweise eine Lese-/Schreiboperation) gemäß der Sicherheitsstrategie, welche durch den ausgewählten Eintrag angezeigt wird, zuzulassen ist. Das heißt, dass das Lese-/Schreibsignal (R/W), welches durch den Speichercontroller 310 vorgesehen ist, durch die Sicherheitsverwaltungseinheit 320 in Übereinstimmung mit dem Zugriffsanzeigesignal IAE unterbrochen wird.
-
In Antwort auf das Verschlüsselungs-/Entschlüsselungsanzeigesignal ED, welches durch die Sicherheitsverwaltungseinheit 320 vorgesehen ist, kann der Datenprotektor 330 verwendet werden, um (eine) Verschlüsselungs-/Entschlüsselungs-Operation(en) auf Schreibdaten (DATA), welche zu der Speichervorrichtung 1500 zu schreiben sind, und Lesedaten (DATA'), welche von der Speichervorrichtung 1500 über die Hostcontrollerschnittstelle 1400A abgerufen werden, durchzuführen. Beispielsweise kann der Datenprotektor 330 bestimmen, ob eine Verschlüsselungsoperation, eine Entschlüsselungsoperation oder eine Bypassoperation für Lese-/Schreibdaten durchzuführen ist, basierend auf einem Verschlüsselungs-/Entschlüsselungsanzeigesignal ED.
-
Wenn eine Verschlüsselungsoperation auf Schreibdaten (DATA) durchgeführt wird, kann der Datenprotektor 330 eine Verschlüsselungsoperation unter Verwendung des Sektorschlüssels (SECTOR_KEY), welcher durch den Speichercontroller 310 vorgesehen ist, durchführen.
-
Das Register 340 vom Transaktionstyp kann verwendet werden, um Sicherheitsniveauinformationen, welche der gegenwärtigen Anwendung zugeordnet sind, in Übereinstimmung (beispielsweise) mit dem empfangenen Puffer-Descriptor BD zu speichern. Das heißt, dass das Register 340 vom Transaktionstyp Zustandsinformationen speichern kann, welche anzeigen, ob eine DMA-Operation, welche in der Hostcontrollerschnittstelle 1400A durchgeführt wird, eine Transaktion vom sicheren Typ ist, welche ein gegebenes Sicherheitsniveau hat, oder eine Transaktion vom nicht-sicheren Typ. Ein Sicherheitsniveausignal (S/NS) gemäß jedem Transaktionstyp wird zu der Sicherheitsverwaltungseinheit 320 kommuniziert. Hier wird angenommen, dass die jeweilige Operation der Sicherheitsverwaltungseinheit 320 und der Datenprotektor 330 sowie die Informationen, welche in dem Register 340 vom Transaktionstyp gespeichert sind, nur durch die Sicherheits-CPU 1110 geändert werden können.
-
6 ist eine Konzeptzeichnung, welche ein mögliches Beispiel einer Sicherheitsstrategietabelle veranschaulicht, welche in dem Sicherheitsverwaltungssystem der 5 enthalten sein kann.
-
Bezug nehmend auf 6 weist eine Sicherheitsstrategietabelle 322A mehrere Einträge auf, wobei jeder Eintrag eine bestimmte Sicherheitsstrategie für einen oder mehrere Bereiche (beispielsweise Sektoren) der Speichervorrichtung 1500 verwaltet.
-
Die Sicherheitsstrategietabelle 322A der 6 weist nur acht (8) Einträge 41–44 und 48 auf. Jeder der Einträge 41–44 und 48 setzt eine Sektoradresse, welche in einem Basissektoradressregister als eine Startadresse gespeichert ist, um jeden Bereich (Range) der Bereiche, welche in der Speichervorrichtung 1500 enthalten sind, auszudrücken, und setzt eine Größe jedes Bereichs. Hier kann die Größe (SIZE) jedes Bereichs, welche dem Eintrag 41–44 und 48 entspricht, gleich oder unterschiedlich gesetzt beziehungsweise gewählt werden.
-
In jedem der Einträge 41–44 und 48 sind Informationen enthalten, welche anzeigen, ob die gespeicherten Daten in Hinsicht auf die Sicherheitsstrategie gültig oder ungültig (VALID/INVALID) sind. Die Sicherheitsstrategie kann weiterhin anzeigen, ob ein Lese-(R) und/oder ein Schreib-(W)Zugriff für einen bestimmten Bereich der Speichervorrichtung 1500 zugelassen ist. Die Sicherheitsstrategie kann weiterhin anzeigen, ob ein Zugriff auf einer sicheren (5) oder einer nicht-sicheren (NS)-Basis für einen bestimmten Bereich der Speichervorrichtung 1500 zuzulassen ist. Letztendlich kann die Sicherstrategie anzeigen, ob eine Verschlüsselungs(Enc)-Operation in Relation zu Daten, welche zu dem Bereich geschrieben oder aus dem Bereich gelesen werden, durchgeführt werden kann.
-
In dem veranschaulichten Beispiel der 6 wird angenommen, dass die Daten, welche in den Bereichen (Sektoren) gespeichert werden, welche mit den Einträgen 41 bis 44 verknüpft sind, VALID beziehungsweise gültig sind.
-
Ein erster Bereich hat eine Größe von A Sektoren von einer Adresse an, welche in dem Basissektoradressregister 1 gespeichert ist. Nur eine Leseoperation kann in dem ersten Bereich durchgeführt werden, auf den ersten Bereich kann nur durch eine Anwendung zugegriffen werden, welche ein Sicherheitsniveau hat, und verschlüsselte Daten können in dem ersten Bereich gespeichert werden.
-
Ein zweiter Bereich hat eine Größe von B Sektoren von einer Adresse an, welche im Basissektoradressregister 2 gespeichert ist. Sowohl eine Lese- als auch eine Schreiboperation können in dem zweiten Bereich durchgeführt werden, auf den zweiten Bereich kann nicht nur durch eine Anwendung zugegriffen werden, welche ein Sicherheitsniveau hat, sondern auch durch eine Anwendung, welche ein Nicht-Sicherheitsniveau hat, und nicht verschlüsselte Daten (NonEnc) können in dem zweiten Bereich gespeichert werden.
-
Ein dritter Bereich hat eine Größe von C Sektoren von einer Adresse an, welche in einem Basissektoradressregister 3 gespeichert ist. Sowohl eine Lese- als auch eine Schreiboperation können in dem dritten Bereich durchgeführt werden, auf den dritten Bereich kann nur durch eine Anwendung zugegriffen werden, welche ein Sicherheitsniveau hat, und verschlüsselte Daten können in dem dritten Bereich gespeichert werden.
-
Ein vierter Bereich hat eine Größe von D Sektoren von einer Adresse an, welche in einem Basissektoradressregister 4 gespeichert ist. Nur eine Leseoperation kann in dem vierten Bereich durchgeführt werden, auf den vierten Bereich kann nicht nur durch eine Anwendung, welche ein Sicherheitsniveau hat zugegriffen werden, sondern auch durch eine Anwendung, welche ein Nichtsicherheitsniveau hat, und verschlüsselte Daten können in dem vierten Bereich gespeichert werden.
-
Im Gegensatz zu dem Vorangehenden sind die Daten, welche in einem fünften Bereich gespeichert sind, welcher dem achten Eintrag 48 zugeordnet ist, ungültig.
-
Unterschiedliche Steuerverfahren können verwendet werden, um eine bestimmte Sicherheitsstrategie (und einen entsprechenden Eintrag in der Sicherheitsstrategietabelle 322A) gemäß verschiedenen Ausführungsformen des erfinderischen Konzepts zu etablieren beziehungsweise aufzustellen.
-
7 ist ein Blockschaltbild, welches weiterhin die Sicherheitsverwaltungseinheit 320 der 5 veranschaulicht. Bezug nehmend kollektiv auf die 1, 5, 6 und 7 weist die Sicherheitsverwaltungseinheit 320 eine Tabellenzugriffssteuerlogik 321, eine Sektorzugriffssteuertabelle 322 und eine Sektorzugriffssteuerlogik 323 auf. Die Sicherheitsstrategietabelle 322A, welche in 6 veranschaulicht ist, ist ein Beispiel für die Sektorzugriffssteuertabelle 322.
-
Die Tabellenzugriffssteuerlogik 321 kann eine Sicherheitsstrategie in jedem Bereich der Speichervorrichtung 150, welcher in der Sektorzugriffssteuertabelle 322 gespeichert ist, in Antwort auf einen Tabellenaktualisierungsbefehl TU_CMD, welche von der sicheren CPU 1110 ausgegeben wird, ändern. Wenn der Tabellenaktualisierungsbefehl TU_CMD von der nicht sicheren CPU 1120 zugeführt wird, überträgt die Tabellenzugriffssteuerlogik 321 kein Sicherheitsstrategieänderungssignal TU an die Sektorzugriffssteuertabelle 322, sondern überträgt ein Fehlersignal TUE zu der nicht-sicheren CPU 1120.
-
Die Tabellenzugriffssteuerlogik 321 kann ein Sicherheitsstrategieänderungssignal TU zum Ändern wenigstens eines Eintrags der Sektorzugriffssteuertabelle 322 in Antwort auf einen Tabellenaktualisierungsbefehl TU_CMD ändern, welcher von der sicheren CPU 1110 ausgegeben wird.
-
Demnach kann eine Sektorzugriffssteuertabelle, auf welche auch Bezug genommen wird als die Sicherheitsstrategietabelle 322, mehrere Einträge enthalten, wobei jeder Eintrag eine Sicherheitsstrategie für einen oder mehrere Bereiche der Speichervorrichtung 1500 verwaltet. Beispielsweise kann die Sektorzugriffssteuerlogik 323 der 7 verwendet werden, um einen Sektorschlüssel (SECTOR_KEY) und ein Zugriffsoperationssignal (R/W) von dem Speichercontroller 310 zu empfangen, und ein Sicherheitsniveausignal (S/NS) von dem Register 340 des Transaktionstyps.
-
Die Sektorzugriffssteuerlogik 323 kann dann Eintragsauswahlinformationen (SNI) zum Auswählen eines einer Mehrzahl von Basissektoradressregistern in Antwort auf einen Sektorschlüssel an die Sicherheitsstrategietabelle 322 kommunizieren. Die Sicherheitsstrategietabelle 322 kommuniziert einen Auswahleintrag (SNE), welcher dem ausgewählten Basissektoradressregister entspricht, in Antwort auf Eintragsauswahlinformationen an die Sektorzugriffssteuerlogik 323.
-
Das heißt, dass die Sektorzugriffssteuerlogik 323 einen der Einträge der Sicherheitsstrategietabelle 322 basierend auf einem Sektorschlüssel auswählen kann. Die Sektorzugriffsteuerlogik 323 kann ein Verschlüsselungs-/Entschlüsselungs-Anzeigesignal (ED), welches anzeigt, ob Daten gemäß einer Sicherheitsstrategie, welche in dem ausgewählten Eintrag (SNE) enthalten ist, verschlüsselt sind, an den Datenprotektor 330 ausgeben, und sie kann ein Adressanzeigesignal (IAE) an den Speichercontroller 310 ausgeben.
-
Der Speichercontroller 310 kann eine Sektoradresse (SECTOR_ADD) und die verschlüsselten Daten (DATA') an die Speichervorrichtung 1500 in Antwort auf das Zugriffsanzeigesignal IAE ausgeben. Die Speichervorrichtung 1500 kann die verschlusselten Daten (DATA') in einem Bereich speichern, welcher der Sektoradresse entspricht. In diesem Fall kann die Sektoradresse wenigstens eines der Zieladresse 12 und der Datenlänge 13 aufweisen.
-
8 ist ein Betriebsdiagramm, welches eine Anfangsoperation beziehungsweise Initiationsoperation veranschaulicht, welche während einer DMA-Operation gemäß bestimmten Ausführungsformen des erfinderischen Konzepts durchgeführt werden kann. Bezug nehmend auf die 1, 5 und 8 initiiert die sichere CPU die Sicherheitsverwaltungseinheit 320 und den Datenprotektor 330 (S 110).
-
Danach versetzt die sichere CPU 1110 das Register 340 vom Transaktionstyp in einen nicht-sicheren Zustand, so dass die nicht-sichere CPU 1120 ausgeführt wird (S 120). Wenn die nicht-sichere CPU 1120 eine Anwendung abarbeitet, erzeugt die nicht-sichere CPU 1120 einen Puffer-Descriptor BD, und der erzeugte Puffer-Descriptor BD wird in dem Speicherbereich 1210 des Hauptspeichers 1200 durch den Hauptspeichercontroller 1300 gespeichert.
-
Wenn eine Startadresse des Puffer-Descriptor BD auf den Speichercontroller 310 zeigt (S 140), wird die Startadresse in dem Startregister 311 gespeichert (S 150). Danach kann eine DMA-Operation basierend auf der Startadresse, welche in dem Startregister 311 des Speichercontroller 310 gespeichert ist, gestartet werden.
-
9 einschließlich der 9A und 9B ist ein Flussdiagramm, welches ein Betriebsverfahren zusammenfasst, wobei eine Direktzugriffsspeicher(DMA = Direct Memory Access)-Operation gemäß Ausführungsformen des erfinderischen Konzepts durchgeführt werden kann.
-
Bezug nehmend auf die 1, 5, 9A und 9B liest der Speichercontroller 310 einen Puffer-Descriptor BD, welcher Sektorinformationen enthält, von dem Speicherbereich 1210 des Hauptspeichers 1200 durch ein Verwenden einer Startadresse, welche in dem Startregister 311 gespeichert ist (S 211). Hier wird der Puffer-Descriptor (BD) durch eine Anwendung zum Zugreifen auf einen bestimmten Bereich der Speichervorrichtung 1500 entsprechend den Sektorenformationen erzeugt. Der Puffer-Descriptor wird dem Speichercontroller 310 durch den Datenprotektor 330 zugeführt.
-
Der Speichercontroller 310 liest oder ruft Daten (DATA), welche in dem Hauptspeicher 1200, beispielsweise einem Speicherbereich, welcher der Quelladresse entspricht, gespeichert sind, durch Verwenden einer Quelladresse (beispielsweise 11 der 3), welche in dem Puffer-Descriptor enthalten ist, ab (S 212).
-
Der Speichercontroller 310 erzeugt einen Sektorschlüssel (SECTOR_KEY) basierend auf Sektorinformationen, welche in dem Puffer-Descriptor BD enthalten sind, und überträgt den Sektorschlüssel an die Sicherheitsverwaltungseinheit 320 und den Datenprotektor 330 (S 213).
-
Die Sicherheitsverwaltungseinheit 320 wählt einen einer Mehrzahl von Einträgen, welche in der Sicherheitsstrategietabelle 322 enthalten sind, in Antwort auf einen Sektorschlüssel aus, welcher von dem Speichercontroller 310 ausgegeben wird (S 214). Hier weist die Sicherheitsstrategietabelle 322 Einträge auf, welche jeweils eine Sicherheitsstrategie für jeden der Bereiche, welche in der Speichervorrichtung 1500 enthalten sind, verwaltet.
-
Die Sicherheitsverwaltungseinheit 320 bestimmt, ob die abgerufenen Daten unter Verwendung der Sicherheitsstrategie, welche in dem ausgewählten Eintrag (S 215) enthalten ist, verschlüsselt sind. Wenn eine Verschlüsselungsoperation auf den abgerufenen Daten durchgeführt werden muss, kann der Datenprotektor 330 Daten beispielsweise unter Verwendung des Sektorschlüssels verschlüsseln. Wenn jedoch eine Verschlüsselungsoperation auf den abgerufenen Daten nicht durchgeführt werden muss, leitet der Datenprotektor 330 die Daten um und überträgt sie an den Speichercontroller 310.
-
Als ein erster Bestimmungsschritt zum Bestimmen, ob Daten in einen bestimmten Bereich der Speichervorrichtung 1500 zu schreiben sind, vergleicht die Sicherheitsverwaltungseinheit 320 Sicherheitsniveauinformationen, welche in dem ausgewählten Eintrag enthalten sind mit Sicherheitsniveauinformationen einer Anwendung (S 216). Hier werden die Sicherheitsniveauinformationen der Anwendung in dem Register 340 vom Transaktionstyp gespeichert und an die Sicherheitsverwaltung 320 als ein Sicherheitsniveausignal (S/NS) übertragen.
-
Die Sicherheitsverwaltungseinheit 320 kann Zugriff einer Anwendung auf einen entsprechenden Bereich, beispielsweise einen entsprechenden Sektorbereich, der Speichervorrichtung 1500 zulassen, wenn Sicherheitsniveauinformationen (beispielsweise S oder NS der 6), welche in einer Sicherheitsstrategietabelle enthalten sind (beispielsweise 322A der 6), gleich zu Sicherheitsniveauinformationen der Anwendung sind (S 217).
-
Die Sicherheitsverwaltungseinheit 320 lässt jedoch keinen Zugriff einer Anwendung auf einen entsprechenden Bereich, beispielsweise einen entsprechenden Sektorbereich, der Speichervorrichtung 1500 zu, wenn die Sicherheitsniveauinformationen, welche in der Sicherheitsstrategietabelle enthalten sind, nicht gleich den Sicherheitsniveauinformationen der Anwendung sind (S 223).
-
Als ein zweiter Bestimmungsschritt zum Bestimmen, ob Daten in einen bestimmten Bereich der Speichervorrichtung 1500 zu schreiben sind, vergleicht die Sicherheitsverwaltungseinheit 320 Zugriffsoperationsinformation, welche in dem ausgewählten Eintrag enthalten sind mit Eingabe-/Ausgabe-Operationsinformationen der Daten (S 218). Hier werden die Eingabe-/Ausgabe-Operationsinformationen der Daten an die Sicherheitsverwaltungseinheit 320 als ein Zugriffsbetriebssignal (R/W) von dem Speichercontroller 310 übertragen.
-
Die Sicherheitsverwaltungseinheit 320 kann einen Zugriff einer Anwendung auf einen entsprechenden Bereich, beispielsweise einen entsprechenden Sektorbereich der Speichervorrichtung 1500, zulassen, wenn Zugriffsoperationsinformationen, welche in einer Sicherheitsstrategietabelle enthalten sind, gleich zu Eingabe-/Ausgabe-Operationsinformationen für die Daten sind (S 219).
-
Die Sicherheitsverwaltungseinheit 320 lässt jedoch keinen Zugriff einer Anwendung auf einen entsprechenden Bereich, beispielsweise einen entsprechenden Sektorbereich, der Speichervorrichtung 1500 zu, wenn Zugriffsoperationsinformationen, welche in der Sicherheitsstrategietabelle enthalten sind, nicht gleich zu Eingabe-/Ausgabe-Operationsinformationen der Daten sind (S 223).
-
9 veranschaulicht nur ein Beispiel, in welchem jeder Bestimmungsschritt S 216 und S218 sequenziell voranschreitet; ein Datenverschlüsselungsoperationsschritt S 215 jedoch, ein erster Bestimmungsschritt 216 und ein zweiter Bestimmungsschritt S 218 können unabhängig voranschreiten oder wenigstens zwei Schritte können zu der gleichen Zeit voranschreiten.
-
Wenn ein Datenzugriff auf einen bestimmten Bereich der Speichervorrichtung 1500 zugelassen wird, wird eine Direktspeicherzugriffs(DMA)-Operation ausgeführt. Der Speichercontroller 310 wartet auf eine Vollendung der DMA-Operation auf einen bestimmen Bereich der Speichervorrichtung 1500 (S 220).
-
Wenn die DMA-Operation vollendet ist, und ein Puffer-Descriptor sequenziell beziehungsweise nacheinander folgend verkörpert ist, überprüft der Speichercontroller 310, ob ein nächster Puffer-Descriptor gültig ist (S 221). Wenn der nächste Puffer-Descriptor gültig ist, kehrt der Speichercontroller 310 zu einem Schritt des Lesens des nächsten Puffer-Descriptors aus dem Hauptspeicher 1200 zurück (S 211). Wenn jedoch ein nächster Puffer-Descriptor nicht gegenwärtig oder nicht gültig ist, vollendet der Speichercontroller 310 die DMA-Operation (S 222).
-
Der Speichercontroller 310 erzeugt Zustandsinformationen eines Falls, wenn die DMA-Operation erfolgreich vollendet ist oder die DMA-Operation aufgrund einer Fehlfunktion, auf einen entsprechenden Sektorbereich zuzugreifen, fehl schlägt, und eine nicht-sichere CPU 1120 empfängt die Zustandsinformationen von dem Speichercontroller 310 (S 225).
-
10 ist ein Konzeptdiagramm, welches ein anderes Beispiel einer Sicherheitsstrategietabelle veranschaulicht, welche in Bezug auf bestimmte Ausführungsformen des erfinderischen Konzepts verwendet werden kann, und 11 ist ein Flussdiagramm, welches ein Betriebsverfahren zusammenfasst, welches der Sicherheitsstrategietabelle der 10 zugeordnet ist.
-
Wenn die Speichervorrichtung 1500 viele Bereiche mit vielen entsprechenden Einträgen in der Sicherheitsverwaltungseinheit 320 aufweist, können Hardware-Ressourcen zunehmend verbraucht werden. Wenn eine Sicherheitsstrategietabelle, welche alle Einträge aufweist, in dem Hauptspeicher 1200 gespeichert wird, und eine Tabelle in der Sicherheitsverwaltungseinheit 320 wie ein Übersetzungspuffer beziehungsweise Translation Lookaside Buffer arbeitet, kann ein Hardwareverbrauch verringert werden.
-
Die Sicherheitsstrategietabelle, welche in der Sicherheitsverwaltungseinheit der 5 enthalten ist. Bezug nehmend auf 10 weist eine Sicherheitsstrategietabelle 322B Einträge 51 bis 55 auf, von welchen jeder eine Sicherheitsstrategie für jeden der Bereiche verwaltet, die in der Speichervorrichtung 1500 enthalten sind.
-
Die Anzahl von Einträgen, welche in einer Sicherheitsstrategietabelle 322B enthalten ist, kann verschiedentlich gewählt beziehungsweise gesetzt werden, und eine Größe eines s-Bereichs der Speichervorrichtung 1500, welcher jedem Eintrag entspricht, kann gleichermaßen gesetzt werden. Gemäß einer beispielhaften Ausführungsform des vorliegenden erfinderischen Konzepts wird eine virtuelle Adresse in der Sicherheitsstrategietabelle 322B gespeichert, und die virtuelle Adresse mag nicht in Einklang mit einer physikalischen Adresse sein.
-
In jedem Eintrag 51 bis 55 sind Informationen darüber, ob ein Wert, welcher in jedem Eintrag 51 bis 55 der Sicherheitsstrategietabelle 322B gespeichert ist, gültig oder nicht gültig VALID/INVALID ist, und eine Sicherheitsstrategie gespeichert.
-
Die Sicherheitsstrategie kann wenigstens eines davon aufweisen, ob ein Zugriff READ/WRITE auf jedem Bereich der Speichervorrichtung 1500, welcher jedem Eintrag 51 bis 55 entspricht, durch eine Leseoperation und eine Schreiboperation zuzulassen ist, ob ein Zugriff SECURE/NO-SECURE auf jeden Bereich gemäß einem Sicherheitsniveau zuzulassen ist, und ob eine Verschlüsselungsoperation ENCRYPTION/NO-ENCRYPTION auf Eingabe-/Ausgabedaten für jeden Bereich durchzuführen ist.
-
Beispielsweise sind, da die Gültigkeit VALID/INVALID eines ersten Eintrags 51 gültig VALID ist, Werte, welche in dem ersten Eintrag 51 gespeichert sind, welcher einem ersten Bereich der Speichervorrichtung 1500 entspricht, gültig. Nur eine Leseoperation R kann in dem ersten Bereich durchgeführt werden, auf den ersten Bereich kann nur durch eine Anwendung zugegriffen werden, welche ein Sicherheitsniveau S hat, und verschlüsselte Daten können in dem ersten Bereich gespeichert werden.
-
Da die Gültigkeit VALID/INVALID eines zweiten Eintrags 52 gültig VALID ist, sind Werte, welche in dem zweiten Eintrag 55 gespeichert sind, welcher einem zweiten Bereich der Speichervorrichtung 1500 entspricht, gültig. Sowohl eine Leseoperation als auch eine Schreiboperation R/W können in dem zweiten Bereich durchgeführt werden, auf den zweiten Bereich kann nicht nur durch eine Anwendung, welche ein Sicherheitsniveau S hat, zugegriffen werden, sondern auch durch eine Anwendung, welche ein Nicht-Sicherheitsniveau NS hat, und nicht verschlüsselte Daten NonEnc können in dem zweiten Bereich gespeichert werden.
-
Da die Gütigkeit VALID/INVALID eines dritten Eintrages gültig VALID ist, sind Werte, welche in dem dritten Eintrag 53, welcher einem dritten Bereich der Speichervorrichtung 1500 entspricht, gültig. Sowohl eine Leseoperation als auch eine Schreiboperation R/W können in dem dritten Bereich durchgeführt werden, auf den dritten Bereich kann nur durch eine Anwendung zugegriffen werden, welche ein Sicherheitsniveau S hat, und verschlüsselte Daten Enc können in dem dritten Bereich gespeichert werden.
-
Da die Gültigkeit VALID/INVALID eines vierten Eintrags 54 gültig VALID ist, sind Werte, welche in dem vierten Eintrag 54, welcher einem vierten Bereich des Speicherbereichs 1500 entspricht, gültig. Nur eine Leseoperation R kann in dem vierten Bereich durchgeführt werden, auf den vierten Bereich kann ebenso durch eine Anwendung zugegriffen werden, welche ein Nicht-Sicherheitsniveau NS hat, und verschlüsselte Daten Enc können in dem vierten Bereich gespeichert werden.
-
Da die Gültigkeit VALID/INVALID eines letzten Eintrags 55 ungültig INVALID ist, sind Werte, welche in dem letzten Eintrag 55, welcher einem letzten Bereich der Speichervorrichtung 150 entspricht, gespeichert sind, ungültig. Ein Verfahren zum Wählen eines Bereichs in der Sicherheitsstrategietabelle 322B und eines Typs der Sicherheitsstrategie, welches beschrieben ist, kann verschiedentlich geändert werden.
-
11 ist ein teilweises Flussdiagramm, welches eine DMA-Operation zusammenfasst, welche in Übereinstimmung mit der Sicherheitsstrategietabelle der 10 durchgeführt wird. Die Verfahrensschritte der 11 können diejenigen zwischen angezeigten Knoten A und B in 9 ersetzen.
-
Bezug nehmend auf die 1, 5, 9, 10 und 11 wählt die Sicherheitsverwaltungseinheit 320 aus oder sucht nach einem von Einträgen, welche in der Sicherheitsstrategietabelle 322B enthalten sind, und zwar in Antwort auf einen Sektorschlüssel SECTOR_KEY, welcher von dem Speichercontroller 311 ausgegeben wird (S 311). Hier weist die Sicherheitsstrategietabelle 322B Einträge auf, welche jeweils eine Sicherheitsstrategie für jeden der Bereiche verwalten, welcher in der Speichervorrichtung 1500 enthalten ist.
-
Die Sicherheitsverwaltungseinheit 320 bestimmt, ob ein Eintrag, welcher einem Sektorschlüssel (SECTOR_KEY) entspricht, in der Sicherheitsstrategietabelle 322B enthalten ist (S 312).
-
Wenn die Sicherheitsstrategietabelle 322B den ausgewählten Eintrag nicht enthält (S 312), lädt der Speichercontroller 310 eine Sicherheitsstrategietabelle, welche in dem Hauptspeicher 1200 gespeichert ist, zu der Sicherheitsverwaltungseinheit 320 und die Sicherheitsverwaltungseinheit 320 liest eine Sicherheitsstrategie für einen entsprechenden Eintrag aus der entsprechenden geladenen Sicherheitsstrategietabelle (S 313).
-
Wenn die Sicherheitsstrategietabelle 322B den ausgewählten Eintrag aufweist, wird bestimmt, ob die abgerufenen Daten unter Verwendung der Sicherheitsstrategie, welche in dem ausgewählten Eintrag enthalten ist, zu verschlüsseln sind (S 315).
-
Wenn eine Verschlüsselungsoperation auf den abgerufenen Daten durchgeführt werden muss, kann der Datenprotektor 330 Daten unter Verwendung des Sektorschlüssels verschlüsseln. Wenn jedoch die Verschlüsselungsoperation auf den Daten nicht durchgeführt werden muss, leitet der Datenprotektor 330 die Daten zu dem Speichercontroller 310 um und überträgt diese dorthin.
-
Die 12 und 13 dienen gemeinsam dazu, eine eingebettete Multimediakarte (eMMC) zu charakterisieren, welche als eine Datenspeichervorrichtung in bestimmten Ausführungsformen des erfinderischen Konzepts verwendet werden kann. Die eMMC kann ein Speicherkartenstandard eines Flashspeichers sein, und die eMMC ist ein Standard einer eingebetteten MMC, welche als ein Standard in JEDEC gesetzt ist. Die eMMC spielt eine Rolle beim Speichern von Multimediadaten, sodass sie in verschiedenen Typen von digitalen Vorrichtungen über die Grenzen einer Festplatte oder einer Compactdisc hinaus verwendet werden kann.
-
12 ist eine Liste von Signalen, welche in einer Sicherheitsstrategietabelle in Bezug auf die eMMC gespeichert werden können. Bezug nehmend auf 12 zeigt BEGIN eine Sektoradresse an, zu der die Partitionierung beginnt; ENG zeigt eine Sektoradresse an, zu der die Partition endet; SR bezeichnet, ob eine Leseoperation durchgeführt werden kann, wenn die gegenwärtige Anwendung ein Sicherheitsniveau hat; SW bezeichnet, ob eine Schreiboperation durchgeführt werden kann, wenn die gegenwärtige Anwendung ein Sicherheitsniveau hat; NSR bezeichnet, ob eine Leseoperation durchgeführt werden kann, wenn die gegenwärtige Anwendung ein Nicht-Sicherheitsniveau hat; NSW bezeichnet, ob eine Schreiboperation durchgeführt werden kann, wenn die gegenwärtige Anwendung ein Nicht-Sicherheitsniveau hat; UFK zeigt an, ob ein Fuse-Key bzw. Absicherungsschlüssel während einer Verschlüsselung verwendet werden kann; ECB zeigt die Verwendung eines elektronischen Codebuch(ECB = Elektronic Code Book)-Modus an; ENC bezeichnet, ob eine Verschlüsselungsoperation benötigt wird; und VALID bezeichnet die Gültigkeit eines Wertes, welcher in einem Eintrag einer Tabelle gespeichert ist.
-
13 veranschaulicht ein anderes Beispiel einer Sicherheitsstrategietabelle, welche in der Sicherheitsverwaltungseinheit der 5 enthalten sein kann. Bezug nehmend auf die 12 und 13 wird Speicherplatz, welcher durch eine eMMC 1500C vorgesehen ist, in eine Mehrzahl von Partitionen 71, 72 und 73 unterteilt, wovon jede eine unterschiedliche Sicherheitsstrategie hat. Die Sicherheitsstrategietabelle 322C weist Einträge auf, von welchen jeder eine Sicherheitsstrategie für jede der Mehrzahl von Partitionen 71, 72 und 73, welche jeweils in der eMMC 1500C enthalten sind, verwaltet.
-
Jeder Eintrag wählt eine Start-(oder Beginn-)Sektoradresse BEGIN und ein Endsektoradresse END, um einen Bereich der Mehrzahl von Partitionen 71, 72 und 73, welche in der eMMC 1500C enthalten sind, auszudrücken.
-
Zusätzlich speichert jeder Eintrag Informationen darüber, ob ein Wert, welcher in jedem Eintrag einer Sicherheitsstrategietabelle gespeichert ist, gültig und eine Sicherheitsstrategie ist.
-
Die Sicherheitsstrategie kann wenigstens eine einer Leseoperation SR bei einem Sicherheitsniveau für eine Partition, welche jedem Eintrag entspricht, einer Schreiboperation SW bei einem Sicherheitsniveau, einer Leseoperation NSR bei einem Nicht-Sicherheitsniveau, einer Schreiboperation NSW bei einem Nicht-Sicherheitsniveau, einem Verschlüsselungsmodus ECP und einer Verschlüsselungsoperation ENC von Eingabe-/Ausgabedaten aufweisen, wie unter Bezugnahme auf 12 beschrieben ist.
-
Beispielsweise sind, da ein Gültigkeitswert VALID eines ersten Eintrags 61 gleich 1 ist, Werte des ersten Eintrags 61, welcher einer ersten Partition 71 der Speichervorrichtung 1500 entspricht, gültig. Ein Bereich der ersten Partition 71 hat einen Umfang von einem Bereich, welcher 00000000 entspricht, welcher eine Startadresse ist, bis zu einem Bereich, welcher 000FFFFF entspricht, welcher eine Endadresse ist. Die erste Partition 71 speichert ein Bootprogramm oder eine Bootabbildung beziehungsweise ein Bootimage, sodass nur eine Leseoperation in der ersten Partition 71 bei einem Nicht-Sicherheitsniveau durchgeführt werden kann. Eine Verschlüsselungsoperation muss jedoch auf Daten, welche in der ersten Partition 71 gespeichert sind, nicht durchgeführt werden.
-
Da ein Gültigkeitswert VALID eines zweiten Eintrags 62 gleich 1 ist, sind Werte des zweiten Eintrags 62, welcher einer zweiten Partition 72 der Speichervorrichtung 1500 entspricht, gültig. Ein Bereich der zweiten Partition 72 hat einen Umfang von einem Bereich, welcher 001000000 entspricht, welches eine Startadresse ist, bis zu einem Bereich, welcher 00EFFFFF entspricht, welcher eine Endadresse ist. Die zweite Partition 72 speichert ein Verwenderfilesystem, sodass sowohl eine Leseoperation als auch eine Schreiboperation in der zweiten Partition 72 bei einem Nicht-Sicherheitsniveau durchgeführt werden können. Eine Verschlüsselungsoperation muss jedoch auf Daten durchgeführt werden, welche in der zweiten Partition 72 gespeichert sind beziehungsweise werden.
-
Da ein Gültigkeitswert VALID eines dritten Eintrags 63 gleich 1 ist, sind Werte des dritten Eintrags 63, welcher einer dritten Partition 73 der Speichervorrichtung 1500 entspricht, gültig. Ein Bereich der dritten Partition 73 hat einen Umfang von einem Bereich, welcher 00F00000 entspricht, welcher eine Startadresse ist, bis zu einem Bereich, welcher 00FFFFFF entspricht, welcher eine Endadresse ist. Die dritte Partition 73 speichert ein sicheres OS-Filesystem, sodass sowohl eine Leseoperation als auch eine Schreiboperation in der dritten Partition bei einem Sicherheitsniveau durchgeführt werden können. Zusätzlich muss eine Verschlüsselungsoperation auf Daten durchgeführt werden, welche in der dritten Partition 73 gespeichert sind beziehungsweise werden.
-
14 ist eine Konzeptzeichnung, welche ein anderes Beispiel eines Puffer-Descriptors veranschaulicht, welcher durch bestimmte Ausführungsformen des erfinderischen Konzepts verwendet werden kann. 15 ist ein anderes Blockschaltbild, analog zu dem Blockschaltbild der 5 gemäß einer anderen Ausführungsform des erfinderischen Konzepts.
-
Gemeinsam Bezug nehmend auf die 14 und 15 wird angenommen, dass eine erste und eine zweite Anwendung, welche unterschiedlich voneinander sind, gleichzeitig durch die CPU 1100 ausgeführt werden. Die erste Anwendung verschlüsselt und speichert erste Daten in einem ersten Bereich der Speichervorrichtung 1500, und die zweite Anwendung verschlüsselt und speichert zweite Daten in einem zweiten Bereich der Speichervorrichtung 1500.
-
Hier kann, wenn die ersten Daten unter Verwendung eines Sektorschlüssels, welcher dem ersten Bereich entspricht, verschlüsselt und gespeichert werden, und die zweite Anwendung eine Verschlüsselungsoperation oder Entschlüsselungsoperation auf Daten unter Verwendung des Sektorschlüssels, welcher dem ersten Bereich entspricht, durchführen kann, die zweite Anwendung ein Programm haben, dass die zweite Anwendung Daten lesen kann, auf welche durch die erste Anwendung zugegriffen werden kann.
-
Um dieses mögliche Problem zu beseitigen, fügen bestimmte Ausführungsformen des erfinderischen Konzepts einen Sicherheitsschlüssel zu dem Puffer-Descriptor hinzu, sodass auch wenn eine erste Anwendung eine Erlaubnis bezogen auf eine ”allgemeine” Verschlüsselung oder Entschlüsselung hat, keine Erlaubnis zum Lesen von Daten haben muss, welche mit einer zweiten Anwendung verknüpft sind.
-
Bezug nehmend auf die 1, 3 und 14 ist ein Puffer-Descriptor 20 ähnlich zu demjenigen des Puffer-Descriptors 10, welcher vorangehend unter Bezugnahme auf 3 beschrieben wurde. Ein Privatschlüsselfeld 25 (Private Key Field) wird der Datenstruktur jedoch hinzugefügt, wobei der private Schlüssel 25 für jede Anwendung unterschiedlich erzeugt werden kann.
-
Die Hostcontrollerschnittstelle 1400A der 5 verwendet einen Sektorschlüssel (SECTOR_KEY), um Daten (DATA) zu verschlüsseln, oder um vorangehend verschlüsselte Daten (DATA') zu entschlüsseln. Im Gegensatz jedoch zu den vorangehenden Ausführungsformen, welche beschrieben sind, verwendet die Hostcontrollerschnittstelle 1400B der 15 zusätzlich den Sicherheitsschlüssel (Private_Key), um Daten zu verschlüsseln/entschlüsseln.
-
Bezug nehmend auf die 1 und 15 weist die Hostcontrollerschnittstelle 1400B einen Speichercontroller 410, eine Sicherheitsverwaltungseinheit (SMU) 420, einen Datenprotektor 430 und ein Register 440 vom Transaktionstyp auf.
-
Der Speichercontroller 410 steuert Daten, auf welche auf der Speichervorrichtung 1500 zugegriffen wird. Der Speichercontroller 410 liest Daten aus dem Hauptspeicher 1210 unter Verwendung einer Quelladresse, welche in einem Puffer-Descriptor BD enthalten ist, welcher von dem Hauptspeicher 1200 ausgegeben wird. Darüber hinaus kann der Speichercontroller 410 den privaten Schlüssel, welcher in dem Puffer-Descriptor BD enthalten ist, an den Datenprotektor 430 ausgeben.
-
Sektorinformationen, welche in dem Puffer-Descriptor BD enthalten sind, können verwendet werden, um eine Sektoradresse zu erzeugen, welche zu der Speichervorrichtung 1500 kommuniziert wird, und einen Sektorschlüssel, welcher zu der Sicherheitsverwaltungseinheit 420 kommuniziert wird.
-
Die Sicherheitsverwaltungseinheit 420 kann einen von Einträgen einer Sicherheitsstrategietabelle in Antwort auf einen Sektorschlüssel, welcher durch den Speichercontroller 410 vorgesehen ist, auswählen, und ein Verschlüsselungs-/Entschlüsselungs-Anzeigesignal (ED) ausgeben, welches bestimmt, ob eine Verschlüsselungsoperation auf den Daten oder eine Entschlüsselungsoperation auf den verschlüsselten Daten gemäß einer Sicherheitsstrategie durchzuführen ist, welche durch den ausgewählten Sicherheitsstrategietabelleneintrag angezeigt ist.
-
Gemäß dem Verschlüsselungs-/Entschlüsselungsanzeigesignal kann der Datenprotektor 430 eine Verschlüsselungs-/Entschlüsselungsoperation auf Daten, welche zu oder von der Speichervorrichtung 1500 zu schreiben oder zu lesen sind, über die Hostcontrollerschnittstelle 1400B durchführen. Das heißt, dass der Datenprotektor 430 verwendet werden kann, um zu bestimmen, ob eine Verschlüsselungsoperation, eine Entschlüsselungsoperation oder eine Bypassoperation durchzuführen ist, basierend auf dem Verschlüsselungs-/Entschlüsselungsanzeigesignal, welches durch die Sicherheitsverwaltungseinheit 420 vorgesehen ist.
-
Wenn eine Verschlüsselungsoperation auf Schreibdaten durchgeführt werden sollte, kann der Datenprotektor 330 eine Verschlüsselungsoperation unter Verwendung des Private_Key bzw. privaten Schlüssels durchführen, welcher durch den Speichercontroller 410 vorgesehen ist.
-
Hier wird, da der Private_Key für jede Anwendung unterschiedlich gewählt oder erzeugt ist, die jeweilige Anwendung den Private_Key einer anderen Anwendung nicht wissen. Demzufolge muss, auch wenn eine erste Anwendung auf Daten, welche in dem verschlüsselten Speicherbereich 1500 gespeichert sind, zugreifen kann, eine zweite Anwendung den Private_Key nicht wissen, welcher der ersten Anwendung zugeordnet ist, obgleich die zweite Anwendung eine Möglichkeit hat, auf den gleichen verschlüsselten Speicherbereich zuzugreifen. Diese Herangehensweise sieht eine Inter-Anwendungsdatensicherheit vor, während Gebrauch von gemeinsamen Datenspeicherressourcen gemacht wird.
-
Die 16 und 17 sind jeweilige Blockschaltbilder, welche andere Beispiele von Hostcontrollerschnittstellen veranschaulichen, welche in dem Computersystem der 1 verwendet werden können. Gemäß diesen Ausführungsformen kann eine Sicherheitsverwaltungseinheit, welche in der Lage ist, dieselbe oder eine ähnliche Funktion wie diejenige, welche in Bezug auf die Sicherheitsverwaltungseinheit 320 der 5 beschrieben ist, durchzuführen, unabhängig innerhalb der Hostcontrollerschnittstelle gespeichert sein. Gemäß anderen Ausführungsformen jedoch kann eine Sicherheitsverwaltungseinheit, welche dieselbe oder eine ähnliche Funktion wie die Sicherheitsverwaltungseinheit 320 der 5 durchführt, in einem des Speichercontrollers oder des Datenprotektors eingebettet sein.
-
Bezug nehmend auf die 1 und 16 kann die Hostcontrollerschnittstelle 1400C einen Speichercontroller 510, einen Datenprotektor 520 und ein Register 530 vom Transaktionstyp aufweisen. Der Speichercontroller 510 kann Daten aus dem Hauptspeicher 1200 unter Verwendung einer Quelladresse lesen, welche in einem Puffer-Descriptor BD enthalten ist, welcher von dem Hauptspeicher 1200 ausgegeben wird, und einen Sektorschlüssel an den Datenprotektor 520 in Antwort auf Sektorinformationen, welche in dem Puffer-Descriptor enthalten sind, ausgeben.
-
Der Speichercontroller 510 weist eine Sicherheitsverwaltungseinheit 511 auf, welche eine Sicherheitsstrategie für jeden der Bereiche verwaltet, welcher in der Speichervorrichtung 1500 enthalten ist. Die Sicherheitsverwaltungseinheit 511 wählt einen von Einträgen einer Sicherheitsstrategietabelle in Antwort auf Sektorinformationen aus, welche in einem Puffer-Descriptor enthalten sind. Die Sicherheitsverwaltungseinheit 511 kann ein Verschlüsselungs-/Entschlüsselungsanzeigesignal an den Datenprotektor 520 ausgeben, bestimmend ob Daten gemäß einer Datensicherheitsstrategie, welche in dem ausgewählten Eintrag enthalten ist, zu verschlüsseln sind.
-
Eine Struktur und eine Funktion der Sicherheitsverwaltungseinheit 320 der 5 sind im Wesentlichen dieselben, wie eine Struktur und eine Funktion der Sicherheitsverwaltungseinheit 511 der 16. Das Register 530 vom Transaktionstyp, welches eine im Wesentlichen gleiche Funktion wie das Register 340 vom Transaktionstyp durchführt, speichert Sicherheitsniveauinformationen einer Anwendung unter Erzeugung eines Puffer-Descriptors und überträgt ein Sicherheitsniveausignal an den Speichercontroller 510. Der Speichercontroller 510 kann bestimmen, ob ein Datenzugriff für einen bestimmten Bereich der Speichervorrichtung 1500 benötigt wird, unter Bezugnahme auf das Sicherheitsniveausignal und eine Sicherheitsstrategietabelle, welche in der Sicherheitsverwaltungseinheit 511 enthalten ist.
-
Bezug nehmend nunmehr auf die 1 und 17 kann eine Hostcontrollerschnittstelle 1400D einen Speichercontroller 610 und einen Datenprotektor 620 aufweisen. Der Datenprotektor 620 kann ein Register 621 vom Transaktionstyp, eine Sicherheitsverwaltungseinheit SMU 622 und eine Sicherheitsmaschine 623 aufweisen.
-
Der Speichercontroller 610 kann Daten aus dem Hauptspeicher 1200 durch ein Verwenden einer Quelladresse, welche in einem Puffer-Descriptor enthalten ist, welcher von dem Hauptspeicher 1200 ausgegeben wird, lesen, und einen Sektorschlüssel an den Datenprotektor 620 in Antwort auf Sektorinformationen, welche in dem Puffer-Descriptor enthalten sind, ausgeben. Der Speichercontroller 610 gibt ein Zugriffsoperationssignal zum Durchführen einer Leseoperation oder einer Schreiboperation an den Datenprotektor 620 aus.
-
Der Datenprotektor 620 weist eine Sicherheitsverwaltungseinheit 622 auf, welche eine Sicherheitsstrategie für jeden der Bereiche, welcher in der Speichervorrichtung 1500 enthalten ist, verwaltet. Die Sicherheitsverwaltungseinheit 622 wählt einen von Einträgen einer Sicherheitsstrategietabelle in Antwort auf einen Sektorschlüssel aus, und gibt ein Zugriffsanzeigesignal an den Speichercontroller 610 gemäß einer Sicherheitsstrategie, welche in dem ausgewählten Eintrag enthalten ist, aus. Der Speichercontroller 610 kann einen Zugriff auf Daten zu der Speichervorrichtung 1500 basierend auf dem Zugriffsanzeigesignal steuern.
-
18 ist ein Blockschaltbild, welches ein Computersystem gemäß noch einer anderen Ausführungsform des erfinderischen Konzepts veranschaulicht.
-
Bezug nehmend auf 18 kann ein Computersystem 300 in einem Mobiltelefon, einem Smartphone, einem persönlichen digitalen Assistenten (PDA = Personal Digital Assistant), einem Tablet-Personalcomputer, einer mobilen Internetvorrichtung (MID = Mobile Internet Device) oder einer drahtlosen Kommunikationsvorrichtung ausgeführt sein.
-
Das Computersystem 3000 weist einen Mikroprozessor 3200 auf, welcher mit einem Bus 3100 verbunden ist, einen Cachespeicher 3210, einen Lesespeicher (ROM = Read Only Memory) 3300, einen Hauptspeicher 3400, einen Hauptspeichercontroller 3410, eine Speichervorrichtung 3500, eine Hostcontrollerschnittstelle 3510, einen I/O-Controller 3610, eine I/O-Vorrichtung 3600, eine Anzeigevorrichtung 3700 und einen Anzeigecontroller 3710 auf.
-
Der Mikroprozessor 3200 ist eine Steuervorrichtung, welche das Computersystem 3000 vollständig steuert. Der Mikroprozessor 3200 kann in einem Multikernprozessor, welcher eine Mehrzahl von Kernen aufweist, ausgeführt sein. Der Cachespeicher 3210 ist benachbart zu dem Mikroprozessor 3200 positioniert. Der Cachespeicher 3210 ist eine Hochgeschwindigkeitsspeichervorrichtung, welche verwendet wird, um eine Datenverarbeitungsgeschwindigkeit zwischen dem Mikroprozessor 3200, welcher eine vergleichsweise schnelle Betriebsgeschwindigkeit hat, und dem Hauptspeicher 3400, welcher eine vergleichsweise langsame Betriebsgeschwindigkeit hat, zu puffern. Der ROM 3300 kann einen Boot-Code in einem Lesespeicher speichern.
-
Der Hauptspeicher 3400, welcher eine im Wesentlichen gleiche Funktion wie der Hauptspeicher 1200 oder 2200 durchführt, kann als ein dynamischer Direktzugriffsspeicher (DRAM = Dynamic Random Access Memory), ein statischer Direktzugriffsspeicher (SRAM = Static Random Access Memory) oder ein mobiler DRAM ausgeführt sein. Der Hauptspeichercontroller 3410, welcher eine im Wesentlichen gleiche Funktion wie der Hauptspeichercontroller 1300 oder 2300 durchführt, steuert den Hauptspeicher 3400.
-
Die Speichervorrichtung 3500, welche eine im Wesentlichen gleiche Funktion wie die Speichervorrichtung 1500 oder 2500 durchführt, kann dieselbe wie ein Festplattenlaufwerk (HDD = Hard Disc Drive), ein Festkörperlaufwerk (SSD = Solid State Drive) oder eine redundante Anordnung von unabhängigen Platten (RAID = Redundant Array of Independent Disc) sein.
-
Die Speichervorrichtung 3500 kann in einer nicht flüchtigen Speichervorrichtung ausgeführt sein, und die nicht flüchtige Speichervorrichtung kann einen löschbaren programmierbaren Lesespeicher (EPROM = Erasable Progammable Read-Only Memory), einen elektrisch löschbaren programmierbaren Lesespeicher (EEPROM = Elektrically Erasable Progammable Read-Only Memory), einen Flashspeicher, einen Phasenübergangsdirektzugriffsspeicher (PRAM = Phase Change Random Access Memory), einen Widerstandsdirektzugriffsspeicher (RRAM = Resistance Random Access Memory), einen Nano-Floatinggatespeicher (NFGM = Nano Floating Gate Memory), einen Polymer-Direktzugriffsspeicher (PoRAM = Polymer Random Access Memory), einen magnetischen Direktzugriffsspeicher (MRAM = Magnetic Random Access Memory) oder einen ferroelektrischen Direktzugriffsspeicher (FRAM = Ferroelectric Random Access Memory) aufweisen.
-
Die Hostcontrollerschnittstelle 3510, welche eine im Wesentlichen gleiche Funktion wie die Hostcontrollerschnittstelle 1400 oder 2400 durchführt, kann eine Sicherheitsstrategie durch einen Bereich der Speichervorrichtung 3500 verwalten. Die Sicherheitsstrategie kann Daten, welche in einer oder mehreren Anwendungen verwendet werden, verwalten, sodass auf die Daten durch eine andere Anwendung, welche in dem Mikroprozessor 3200 ausgeführt wird, nicht zugegriffen werden kann, wenn die Daten hinsichtlich der Sicherheit sensitive Daten sind.
-
Der Anzeigecontroller 3710 steuert einen Betrieb der Anzeigevorrichtung 3700. Die I/O-Vorrichtung 3700 ist eine Vorrichtung, welche ein Steuersignal zum Steuern eines Betriebs des Mikroprozessors 3200 oder Daten, welche durch den Mikroprozessor zu verarbeiten sind, zuführen-/ausgeben kann, und er kann in einer Zeigevorrichtung wie beispielsweise einem Touchpad und einer Computermaus, einem Keypad oder einer Tastatur ausgeführt sein.
-
Eine Hostcontrollerschnittstelle gemäß Ausführungsformen des erfinderischen Konzepts kann eine unterschiedliche Sicherheitsstrategie gemäß identifizierten Bereichen einer Speichervorrichtung unter Verwendung einer Sicherheitsverwaltungseinheit, welche eine Sicherheitsstrategietabelle aufweist, effizient verwalten. Demnach kann eine Hostcontrollerschnittstelle gemäß Ausführungsformen des erfinderischen Konzepts kontinuierlich einen Betrieb unter Verwendung einer Sicherheitsverwaltungseinheit ohne eine Verschlechterung in der Performance beziehungsweise Leistungsfähigkeit eines Systems durchführen, welche durch ein Schalten zwischen Prozessoren verursacht wird, auch trotz einer Sicherheitsstrategieänderung für bestimmte Bereiche der Speichervorrichtung.
-
Die Hostcontrollerschnittstelle gemäß bestimmten Ausführungsformen des erfinderischen Konzepts kann einen privaten Schlüssel nach Sektoren erzeugen, wenn eine Anwendung Daten erzeugt, wodurch verhindert wird, dass andere Anwendungen möglicherweise eine gleiche Datenverschlüsselungs-/Entschlüsselungsautorität von einem Lesen von Daten haben, welche mit der vormaligen Anwendung, welche bereits in der Speichervorrichtung gespeichert ist, verknüpft sind.
-
Obwohl einige Ausführungsformen des vorliegenden allgemeinen erfinderischen Konzepts gezeigt und beschrieben worden sind, wird es durch Fachleute anerkannt werden, dass Änderungen in diesen Ausführungsformen getätigt werden können, ohne von den Prinzipien und dem Gedanken des allgemeinen erfinderischen Konzepts abzuweichen, dessen Umfang in den beigefügten Ansprüchen und deren Äquivalenten definiert ist.
-
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-2012-0116890 [0001]