-
Technisches Gebiet
-
Die vorliegende Offenbarung bezieht sich im Allgemeinen auf eine Rechenspeicher(CS)-Sicherheit für herunterladbare Programme.
-
Hintergrund
-
CS-Vorrichtungen sind elektronische Vorrichtungen, die Daten direkt dort verarbeiten können, wo sie gespeichert sind. Dieser Ansatz kann die Bewegung einer großen Datenmenge zu einer externen Verarbeitung reduzieren und Vorteile liefern, darunter eine reduzierte Latenz- und Bandbreitenverwendung sowie Energieeinsparungen.
-
CS-Vorrichtungen werden entwickelt, um Rechen-Overheads von Host-CPUs an Speichervorrichtungen abzuladen, was eine Verarbeitungseffizienz für große Datensätze verbessern kann. Zum Beispiel können einige Systeme entwickelt sein, CS-Dienstleistungen über nichtflüchtige Speicherexpress(NVME)-Vorrichtungen bereitzustellen, deren Fokus auf einem Bereitstellen einer allgemeinen Abladeplattform liegt. Eine Offload-Programmierung kann jedoch anfällig sein für Angriffe. Somit werden Lösungen benötigt, die eine CS-Sicherheit verbessern, um das Risiko für Angriffe zu reduzieren.
-
Kurzfassung
-
Die vorliegende Offenbarung wurde erschaffen, um mindestens die oben beschriebenen Nachteile anzusprechen und mindestens die unten beschriebenen Vorteile bereitzustellen.
-
Nach einem Aspekt der Offenbarung ist ein Verfahren zum Erzeugen und Verteilen eines Programmverschlüsselungsschlüssels bereitgestellt. Das Verfahren enthält: Empfangen, bei einer Rechenspeichervorrichtung (CSD), eines Benutzerzertifikats (CA Benutzer), das basierend auf einem öffentlichen Schlüssel eines Benutzers (PU Benutzer) erzeugt wird; Extrahieren, bei der CSD, des PU Benutzer unter Verwendung eines öffentlichen Schlüssels der Zertifikatsauthorität (PU ca); Erzeugen, bei der CSD, eines Verschlüsselungsprogrammschlüssels, Verschlüsseln, bei der CSD, des Verschlüsselungsprogrammschlüssels unter Verwendung des PU Benutzer, um einen verschlüsselten Verschlüsselungsprogrammschlüssel zu erzeugen; und Speichern, bei der CSD, des verschlüsselten Verschlüsselungsprogrammschlüssels.
-
Nach einem weiteren Aspekt der Offenbarung ist ein Verfahren zum Bilden eines gesicherten Download-Programmabbildformats, das in einem Host gespeichert ist, bereitgestellt. Das Verfahren enthält: Verschlüsseln eines einfachen herunterladbaren Binärprogramms unter Verwendung eines Verschlüsselungsprogrammschlüssels, um einen verschlüsselten Code zu erzeugen; Speichern des verschlüsselten Codes im gesicherten Download-Programmabbildformat; Durchführen von mindestens einer von einer Anfälligkeits- und einer Fehlerhaftigkeitsüberprüfung am einfachen herunterladbaren Binärprogramm; als Reaktion auf eine erfolgreiche Durchführung der mindestens einen von der Anfälligkeits- und der Fehlerhaftigkeitsüberprüfung, Erzeugen eines Hash-Werts für das einfache herunterladbare Binärprogramm und Verschlüsseln des Hash-Werts unter Verwendung eines privaten Schlüssels einer Zertifikatsauthorität (PU ca), um einen verschlüsselten Hash-Wert zu erzeugen; und Speichern des verschlüsselten Hash-Werts als eine digitale Signatur im gesicherten Download-Programmabbildformat.
-
Nach einem weiteren Aspekt der Offenbarung ist ein Verfahren zum Authentifizieren eines Download-Programms mit einem gesicherten Download-Programmformat bereitgestellt. Das Verfahren enthält: Entschlüsseln einer digitalen Signatur, die im gesicherten Download-Programmformat gespeichert ist, unter Verwendung einer PU ca, um einen ersten Hash-Wert zu erhalten; Entschlüsseln eines verschlüsselten Codes, der im gesicherten Download-Programmformat gespeichert ist, unter Verwendung eines Verschlüsselungsprogrammschlüssels, um ein einfaches herunterladbares Binärprogramm zu erhalten; Erzeugen eines zweiten Hash-Werts für das einfache herunterladbare Binärprogramm; und Vergleichen des ersten Hash-Werts mit dem zweiten Hash-Wert; als Reaktion darauf, dass der erste Hash-Wert gleich dem zweiten Hash-Wert ist, Authentifizieren des Download-Programms.
-
Kurze Beschreibung der Zeichnungen
-
Die obigen und weitere Aspekte, Merkmale und Vorteile gewisser Ausführungsformen der vorliegenden Offenbarung werden durch die nachfolgende ausführliche Beschreibung in Verbindung mit den beigefügten Zeichnungen deutlicher, wobei:
- 1 eine Rechenspeicherarchitektur nach einer Ausführungsform darstellt;
- 2 ein Modell bezüglich eines möglichen Sicherheitsrisikos für ein herunterladbares Programm nach einer Ausführungsform darstellt;
- 3A und 3B Schlüsselverteilungsmechanismen für eine CSD basierend auf einer CA nach verschiedenen Ausführungsformen darstellen;
- 4 eine Schlüsselverteilungsfunktion im Innern einer CSD nach einer Ausführungsform darstellt;
- 5 ein gesichertes CS-Download-Programmabbildformat und einen Erstellungsvorgang nach einer Ausführungsform darstellt;
- 6 einen Authentifizierungs- und Datenintegritätsüberprüfungsvorgang für das CS-Download-Programm in einer CSD nach einer Ausführungsform darstellt;
- 7 eine Gesamtauthentifizierungsarchitektur für einen CS-Download-Befehl nach einer Ausführungsform darstellt; und
- 8 eine elektronische Vorrichtung in einer Netzwerkumgebung nach einer Ausführungsform darstellt.
-
Ausführliche Beschreibung
-
Die nachfolgende Offenbarung stellt ein Verfahren zum Bilden eines gesicherten Download-Programmabbilds bereit, das die Sicherheit beim Herunterladen eines Programms in CS-Systemen verbessert. Zusätzlich stellt die vorliegende Offenbarung einen Authentifizierungs- und Datenintegritätsüberprüfungsmechanismus für das CS-Download-Programm bereit. Ferner wird hierin ein sicherer Schlüssel(symmetrischer Krypto-Schlüssel-)-Austauschmechanismus für das CS-Download-Programm bereitgestellt. Wie unten erläutert, stellt die vorliegende Offenbarung einen Weg zum Erfassen von beeinträchtigten/modifizierten (z.B. kompromittierten) Daten bereit, wodurch das CSD-System vor einem schädlichen Download-Programm geschützt wird.
-
Nachfolgend werden Ausführungsformen der vorliegenden Offenbarung mit Bezug auf die beigefügten Zeichnungen ausführlich beschrieben. Zu beachten ist, dass dieselben Elemente durch dieselben Bezugszeichen gekennzeichnet sind, obwohl sie in unterschiedlichen Zeichnungen gezeigt werden. In der nachfolgenden Beschreibung sind spezifische Einzelheiten, wie ausführliche Konfigurationen und Komponenten, lediglich bereitgestellt, um beim Gesamtverständnis der Ausführungsformen der vorliegenden Offenbarung zu helfen. Somit sollte für einen Fachmann offensichtlich sein, dass verschiedene Änderungen und Modifikationen der hierin beschriebenen Ausführungsformen vorgenommen werden können, ohne dabei vom Umfang der vorliegenden Offenbarung abzuweichen. Zusätzlich sind Beschreibungen bekannter Funktionen und Konstruktionen der Klarheit und Kürze halber weggelassen. Die unten beschriebenen Begriffe sind Begriffe, die unter Berücksichtigung der Funktionen in der vorliegenden Offenbarung definiert sind, und können sich gemäß Benutzern, Absichten der Benutzer oder Gebrauch unterscheiden. Somit sollten die Definitionen der Begriffe in dieser Spezifikation durchgehend basierend auf dem Inhalt bestimmt werden.
-
Die vorliegende Offenbarung kann verschiedene Modifikationen und verschiedene Ausführungsformen aufweisen, unter denen Ausführungsformen unten mit Bezug auf die beigefügten Zeichnungen ausführlich beschrieben werden. Es sollte sich jedoch verstehen, dass die vorliegende Offenbarung nicht auf die Ausführungsformen beschränkt ist, sondern alle Modifikationen, Äquivalente und Alternativen innerhalb des Umfangs der vorliegenden Offenbarung enthält.
-
Obwohl die Begriffe, die eine Ordnungszahl enthalten, wie erste/r/s, zweite/r/s etc., zum Beschreiben verschiedener Elemente verwendet werden können, sind die strukturellen Elemente nicht durch diese Begriffe beschränkt. Die Begriffe werden verwendet, um ein Element von einem anderen Element zu unterscheiden. Zum Beispiel, ohne dabei vom Umfang der vorliegenden Offenbarung abzuweichen, kann ein erstes strukturelles Element als ein zweites strukturelles Element bezeichnet werden. Gleichermaßen kann das zweite strukturelle Element als das erste strukturelle Element bezeichnet werden. Wie hierin verwendet, enthält der Begriff „und/oder“ jede beliebige und alle Kombinationen von einem oder mehreren zugehörigen Items.
-
Die hierin verwendeten Begriffe werden lediglich zum Beschreiben verschiedener Ausführungsformen der vorliegenden Offenbarung verwendet, sollen die vorliegende Offenbarung jedoch nicht beschränken. Singularformen sollen Pluralformen enthalten, sofern der Kontext nicht deutlich etwas anderes angibt. In der vorliegenden Offenbarung sollte verstanden werden, dass die Begriffe „enthalten“ oder „aufweisen“ ein Vorhandensein eines Merkmals, einer Zahl, eines Schritts, einer Operation, eines strukturellen Elements, von Teilen oder einer Kombination davon angeben, und das Vorhandensein oder eine Wahrscheinlichkeit des Hinzufügens von einem/r oder mehreren anderen Merkmalen, Zahlen, Schritte, Operationen, strukturellen Elemente, Teile oder Kombinationen davon nicht ausschließen.
-
Sofern nicht anderweitig definiert, weisen alle hierin verwendeten Begriffe dieselbe Bedeutung auf wie jene, die von einem Fachmann, der für die vorliegende Offenbarung zuständig ist, verstanden wird. Begriffe, wie jene, die in allgemein gebräuchlichen Wörterbüchern definiert sind, sollen derart interpretiert werden, als dass sie dieselbe Bedeutung aufweisen, wie die Bedeutung des Kontexts des relevanten Stands der Technik, und sollen nicht in einer idealisierten oder übermäßig formalen Bedeutung interpretiert werden, sofern nicht ausdrücklich in der vorliegenden Offenbarung definiert.
-
Die elektronische Vorrichtung nach einer Ausführungsform kann eine von verschiedenen Arten an elektronischen Vorrichtungen sein, die Speichervorrichtungen einsetzen. Die elektronische Vorrichtung kann zum Beispiel enthalten: eine tragbare Kommunikationsvorrichtung (z.B. ein Smartphone), einen Computer, eine tragbare Multimediavorrichtung, eine tragbare medizinische Vorrichtung, eine Kamera, eine Wearable-Vorrichtung oder ein Haushaltsgerät. Nach einer Ausführungsform der Offenbarung ist eine elektronische Vorrichtung nicht auf jene, die oben beschrieben werden, beschränkt.
-
Die in der vorliegenden Offenbarung verwendeten Begriffe sollen die vorliegende Offenbarung nicht beschränken, sondern sollen verschiedene Änderungen, Äquivalente oder einen Ersatz für eine entsprechende Ausführungsform enthalten. Hinsichtlich der Beschreibungen der beigefügten Zeichnungen können ähnliche Bezugszeichen verwendet werden, um Bezug auf ähnliche oder verwandte Elemente zu nehmen. Eine Singularform eines Nomens, das einem Item entspricht, kann eines oder mehrere der Elemente enthalten, sofern der relevante Kontext nicht deutlich etwas anderes angibt. Wie hierin verwendet, kann jeder Satz wie „A oder B“, „mindestens eines von A und B“, „mindestens eines von A oder B“, „A, B oder C“, „mindestens eines von A, B und C“ und „mindestens eines von A, B oder C“ alle möglichen Kombinationen der in einem entsprechenden Satz zusammen aufgelisteten Items enthalten. Wie hierin verwendet, können Begriffe wie „1.“, „2.“, „erste/r/s“ und „zweite/r/s“ verwendet werden, um eine entsprechende Komponente von einer anderen Komponente zu unterscheiden, sollen jedoch die Komponenten in anderen Aspekten (z.B. Wichtigkeit oder Reihenfolge) nicht beschränken. Es ist beabsichtigt, dass wenn ein Element (z.B. ein erstes Element) mit oder ohne den Begriff „operativ“ oder „kommunikativ“ als „mit“ oder „an“ einem/ein anderen/s Element (z.B. ein zweites Element) „gekoppelt“ oder „verbunden“ bezeichnet wird, dies angibt, dass das Element direkt (z.B. verdrahtet), drahtlos oder mittels eines dritten Elements mit dem anderen Element gekoppelt sein kann.
-
Wie hierin verwendet, kann der Begriff „Modul“ eine Einheit enthalten, die in Hardware, Software, Firmware oder einer Kombination daraus umgesetzt ist, und kann mit anderen Begriffen, zum Beispiel „Logik“, „Logikblock“, „Teil“ und „Schaltkreis“, austauschbar verwendet werden. Ein Modul kann eine einzelne integrale Komponente oder eine Mindesteinheit oder ein Teil davon sein, die/der angepasst ist, eine oder mehrere Funktionen durchzuführen. Nach einer Ausführungsform kann ein Modul zum Beispiel in Form einer anwendungsspezifischen integrierten Schaltung (ASIC) umgesetzt werden.
-
Die vorliegende Offenbarung verbessert eine CS-Sicherheit durch Bereitstellen eines Offload-Programmschutzes, eines herunterladbaren CS-Programms und einer Möglichkeit, eine Authentifizierungs- und Datenintegritätsüberprüfung in einer CSD durchzuführen. Wie hierin offenbart, sind gewisse Elemente unter Verwendung eines tiefergestellten Indizes abgekürzt (z.B. CA Benutzer, PU Benutzer etc.). Der Einfachheit der Beschreibung halber verwenden diese abgekürzten Elemente womöglich tiefer gestellte Indizes oder nicht, um sich auf die abgekürzten Elemente zu beziehen (z.B. kann „CA Benutzer“ äquivalent sein zu „CA-Benutzer“, „PU Benutzer“ kann äquivalent sein zu „PU-Benutzer“ etc.).
-
1 stellt eine Rechenspeicherarchitektur nach einer Ausführungsform dar.
-
Bezugnehmend auf 1 kann eine CSD 101 aus mindestens einem Programm-Slot oder mehreren Programm-Slots von bis zu n Programm-Slots bestehen. Programm-Slots können als ein Raum zum Behalten eines festgelegten oder benutzerdefinierten Download-Programms definiert sein. Außerdem kann die CSD mindestens eine Rechen-Engine oder mehrere Rechen-Engines von bis zu M Rechen-Engines enthalten. Die Rechen-Engine kann eine Logik zum Verarbeiten eines Programms sein und kann Berechnungen unter Verwendung von Speicherbereichen (z.B. eines Speicherraums, der von einem Programm als Eingabe/Ausgabe verwendet wird) durchführen.
-
Dementsprechend kann die in 1 gezeigte Konfiguration eine Rechenspeicherdienstleistung (CSS) bereitstellen. Die CSS kann einen Zugriff auf Algorithmen und Funktionen bereitstellen, die auf einem CS-Laufwerk agieren, und kann zum Beispiel ein Aufdeckverfahren (z.B. einen Bericht, der CS-Merkmalsinformationen, -Zustandsinformationen und/oder -Fähigkeitsinformationen enthält), ein Programmregisterverfahren (z.B. eine programmierbare CSS), ein Rechenressourcen- (z.B. ein Speicher) - Zuweisungs-/Freigabeverfahren, ein Datenverschiebungsverfahren zwischen einer Rechenressource (z.B. einem Speicher) und einem Namensraum, ein Rechenressourcen-(z.B. ein Speicher) -Zugriffsverfahren und ein Verfahren zum Ausführen eines registrierten Programms enthalten.
-
Da ein Benutzer ein benutzerdefiniertes Programm durch eine Download-Programmschnittstelle einer CSD registrieren kann, führt dies eine neue Sicherheitsanfälligkeit mit einer CSD ein.
-
2 stellt ein Modell bezüglich eines möglichen Sicherheitsrisikos für ein herunterladbares Programm nach einer Ausführungsform dar.
-
Bezugnehmend auf 2 werden drei Risikoanfälligkeitspositionen identifiziert. Erstens: Ein Download-Programm kann durch Ersetzen eines Download-Programmabbilds mit einem schädlichen Binärcode angegriffen oder durch Hinzufügen eines anfälligen Codes in einem bestehenden Binärcode bei Position 203, wo es auf dem Host gespeichert ist, modifiziert werden. Der Ausdruck „einfacher Binärcode“ oder „Binärcode“ kann sich auf ein Download-Programm beziehen, das anfällig ist für Angriffe, da es nicht verschlüsselt ist. Zweitens: Ein Download-Programm könnte von einem Angreifer ersetzt werden, wenn ein Download-Programmabbild an die CSD 201 bei Position 204 übertragen wird. Drittens: Ein schädlicher Code könnte das CSD-201-System angreifen, wenn es im Innern der CSD 201 ausgeführt wird, und die Rechen-Engine bei Position 204 beeinträchtigen.
-
Aus dem oben erläuterten Risikomodell können die nachfolgenden drei Prinzipien, die in Tabelle 1 unten gezeigt sind, extrahiert werden. Tabelle 1
1. Ein CS-Download-Programmabbild muss gesichert im Host aufbewahrt werden. |
2. Ein CS-Download-Programmabbild muss gesichert übertragen werden. |
3. Eine CSD muss einen Angriff des CS-Download-Programmabbildes erfassen. |
-
Eine Möglichkeit, ein CS-Download-Programmabbild aufzubewahren, kann sein, ein CS-Download-Programmabbild auf einem schreibgeschützten Medium oder einem dedizierten gesicherten Speicher zu positionieren, um eine Modifikation von einem nicht autorisierten Benutzer zu verhindern. Diese Konfiguration ist jedoch womöglich nicht realistisch für Arbeitslastumgebungen in der realen Welt.
-
Zum Durchführen einer gesicherten Übertragung können Großformatsysteme basierend auf einem verschlüsselten Datenübertragungsmechanismus einen Einmalschlüssel aufweisen, dies ist jedoch teuer im Betrieb und kann Autorisierungsdienstleistungen von Dritten erfordern.
-
Um einen Authentifizierungsangriff in einer CSD zu erfassen, kann ein Benutzer einen öffentlichen Schlüssel gesichert in der CSD registrieren und ein CS-Download-Programmabbild mit einem privaten Schlüssel eines Benutzers verschlüsseln. Dann könnte die CSD ein CS-Download-Programmabbild durch Entschlüsseln eines CS-Downloadabbildes mit einem öffentlichen Schlüssel des Benutzers authentifizieren. Ein privater/öffentlicher Benutzerschlüssel muss jedoch womöglich gesichert sein und die CSD sollte einen gültigen öffentlichen Benutzerschlüssel aufweisen.
-
Somit können die nachfolgenden drei Prinzipien realisiert werden, wie in Tabelle 2 gezeigt. Tabelle 2
1. Benutzer und CSD müssen einen symmetrischen Krypto-Schlüssel gesichert verteilen. |
2. Ein CS-Download-Programmabbild muss als verschlüsselt im Host aufbewahrt werden. |
3. Eine CSD muss einen Angriff des CS-Download-Programmabbildes erfassen. |
-
Durch Modifizieren eines CS-Download-Abbildes als ein verschlüsseltes Format, kann eine gesicherte Übertragungsanforderung zwischen einem Benutzer und einer CSD erzielt werden.
-
Es werden nun gesicherte Schlüsselverteilungsverfahren beschrieben.
-
Um eine Authentifizierung in einem Verfahren zum Downloaden eines CS-Programmabbildes mit Kryptographie (Krypto) zu erzielen, kann eine gesicherte Verteilung eines Krypto-Schlüssels zwischen einem Benutzer und einer CSD erforderlich sein.
-
Zum Beispiel kann ein symmetrischer Master-Key bzw. Hauptschlüssel basierend auf einem Schlüsselverteilungsmechanismus zum Erzielen einer Authentifizierung verwendet werden und kann ein Schlüsselverteilungszentrum (KDC) von Dritten erfordern. Eine Anfangszeit kann zum Registrieren eines Masters von beiden Einträgen (einem Benutzer und einer CSD) im KDC erforderlich sein. Das KDC kann einen Schlüssel erzeugen und eine Nachricht erstellen, die durch einen Eintrag mit einem Hauptschlüssel extrahiert werden kann.
-
Einige Nachteile für eine CSD, die eine Schlüsselverteilung mit einem symmetrischen Hauptschlüssel verwendet, können sein, dass ein Hauptschlüssel vor einer Schlüsselverteilung womöglich bei Dritten registriert werden muss, was ein zusätzliches gesichertes Verfahren zum Registrieren eines Hauptschlüssels einer CSD erfordern kann. Zusätzlich muss der KDC-Hauptschlüssel womöglich gesichert übertragen werden, was ebenfalls ein zusätzliches gesichertes Verfahren erfordern kann. Darüber hinaus kann eine Schlüsselerzeugung durch das KDC erfolgen, das womöglich nicht gesichert ist. Außerdem sollten die Schlüssel im KDC zu jeder Zeit geschützt sein.
-
Ein weiteres gesichertes Schlüsselverteilungsverfahren, das zum Erzielen einer Authentifizierung verwendet wird, kann ein einfaches Schlüsselverteilungsverfahren unter Verwendung eines asymmetrischen Schlüssels (privater/öffentlicher Schlüssel) sein. Ein Nachteil dieser Technik ist, dass sie anfällig sein kann für einen Mittelsmannangriff. Schlüsselverteilungsverfahren unter Verwendung von asymmetrischen Schlüsseln, die Mittelsmannangriffe verhindern, können zusätzliche Schritte zum Verbessern der Sicherheit erfordern. Zum Beispiel kann ein Ansatz zum Vermeiden des Mittelsmannangriffs sein, einen öffentlichen Schlüssel in einem weiteren Eintrag vor einer Schlüsselverteilung zu registrieren, was zusätzliche Nachrichten erfordern kann, die zum gesicherten Verteilen von Schlüsseln ausgetauscht werden sollen. Alternativ kann ein weiterer Ansatz sein, ein Zertifikat während einer Schlüsselverteilung zu verwenden, um die Sicherheit zu verbessern. In diesem Ansatz kann es jedoch notwendig sein, sich auf eine Zertifikatsautorität (CA) von Dritten (und den öffentlichen Schlüssel der CA) zu verlassen, um das Zertifikat zu verwenden.
-
Die nachfolgenden vier Prinzipien, die in Tabelle 3 unten gezeigt sind, können durch die Schlüsselverteilungsmechanismen basierend auf einer CA mit einer hierin offenbarten CSD erzielt werden. Tabelle 3
1. Bereitstellen eines einfachen Schlüsselverteilungsprotokolls. |
2. Eine CSD kann aus einem Zertifikat eines Benutzers, das durch eine CA erstellt wird, mehr Zuverlässigkeit erzielen. |
3. Das Zertifikat selbst kann nützlichere Informationen enthalten, wie eine Identifikation (ID) eines Benutzers (z.B. einen Betreff), Ersteller- bzw. Herausgeberinformationen und einen Zeitstempel. |
4. Die Rolle der CA kann derart erweitert werden, dass sie nicht nur eine CA-Ersteller- sondern auch eine CS-Download-Programm-Verwaltungsautorität sein kann. |
-
Wie hierin beschrieben, kann ein Zertifikat als „E (PR ca, [ID Benutzer I T I PU Benutzer])“ dargestellt sein. E steht für Verschlüsselung, PR steht für privater Schlüssel, PU steht für öffentlicher Schlüssel, T steht für Zeitstempel und ID steht für Identifikation.
-
Es wird nun eine gesicherte Schlüsselverteilung basierend auf einer CA innerhalb einer CSS beschrieben.
-
3A und 3B stellen Schlüsselverteilungsmechanismen für eine CSD basierend auf einer CA nach verschiedenen Ausführungsformen dar.
-
Bezugnehmend auf 3A und 3B sind CA-Systeme gezeigt. Eine CA kann mehrere Rollen innerhalb einer CSS aufweisen. Zum Beispiel kann die CA eine Infrastruktur (PKI) eines öffentlichen Schlüssels als einen Standard bereitstellen. Durch Erstellen eines Zertifikats für einen Benutzer und eine CSD kann die CA eine Beglaubigungsdienstleistung für den öffentlichen Schlüssel des Benutzers und der CSD bereitstellen. Ein Zertifikat einer CA (CA csd) kann an Benutzer übermittelt werden, welche die CSD zum Abladen einer Anwendungsrechenverarbeitung verwenden könnten. Der öffentliche Schlüssel der CA kann durch eine Trusted-Computing-Group(TCG)-Opal-Storage-Secure-Subsystem-Class(SSC)-Schnittstelle auf einer CSD registriert werden.
-
3A stellt eine Standardschlüsselverteilungssequenz (z.B. einen Schlüsselverteilungsfluss) nach einer Ausführungsform dar. In Schritt 301 wird der öffentliche Schlüssel der CA (PU ca) in der CSD registriert. Die CSD kann eine CA csd erzeugen, die dem Benutzer bekannt ist. In Schritt 302 wird ein öffentlicher Schlüssel eines Benutzers (PU Benutzer) an die CA übermittelt und in Schritt 303 empfängt ein Benutzer ein Zertifikat des Benutzers (CA Benutzer), das basierend auf dem öffentlichen Schlüssel des Benutzers mit einer verschlüsselten Nachricht erzeugt wird (gekennzeichnet durch „E(PR ca, [ID Benutzer || T∥ PU Benutzer]“, wobei „E“, gefolgt von runden Klammern, eine verschlüsselte Nachricht unter Verwendung von „PR ca“ bezeichnet, was der private Schlüssel der CA ist. Zusätzlich ist „ID Benutzer“ die Identifikation des Benutzers; „T“ ist ein Zeitstempel; und „PU Benutzer“ ist der öffentliche Schlüssel des Benutzers).
-
Eine Schlüsselverteilung kann durch Senden der CA Benutzer an die CSD in Schritt 304 beginnen. Die CSD extrahiert den PU Benutzer und eine ID eines Benutzers (ID Benutzer) durch Entschlüsseln einer CA Benutzer mit einem PU ca in Schritt 305 und speichert dieselben gesichert. Dann erzeugt die CSD einen Programm-Krypto-Schlüssel eines Benutzers (KEY Benutzer) (z.B. einen symmetrischen Programm-Krypto-Schlüssel des Benutzers) unter Verwendung einer Schlüsselabweichungsfunktion (KDF) in Schritt 306 und speichert diesen gesichert. ID Benutzer, PU Benutzer und ein KEY Benutzer können in einer Programmschlüsseltabelle im Innern der CSD gesichert gespeichert werden. Während dieser Zeit kann KEY Benutzer in einem verschlüsselten Format mit einem Schlüsselverschlüsselungsschlüssel (KEK) der CSD gesichert werden.
-
Die Programmschlüsseltabelle im Innern der CSD kann ein ID-Feld, ein Programmschlüssel(Krypto-Schlüssel-)-Feld und ein Feld für einen öffentlichen Schlüssel enthalten, wie in Tabelle 4 unten gezeigt: Tabelle 4
ID | Programmschlüssel | Öffentlicher Schlüssel |
A | E( KEK, Schlüssel a) | PU a |
B | E( KEK, Schlüssel b) | PU b |
-
Die Felder für die ID und den öffentlichen Schlüssel können aus der CA extrahiert werden. Das Programmschlüsselfeld kann durch die CSD erzeugt und in einem gesicherten verschlüsselten Format aufbewahrt werden.
-
Erneut bezugnehmend auf 3A erzeugt die CSD eine Schlüsselnachricht, die KEY Benutzer mit PU Benutzer in Schritt 307 verschlüsselt, wodurch sichergestellt wird, dass der Benutzer den KEY Benutzer durch Entschlüsseln der Schlüsselnachricht mit dem privaten Schlüssel des Benutzers (PR Benutzer) gesichert extrahieren kann. Die CSD kann eine zusätzliche Verschlüsselung für die Schlüsselnachricht mit einem privaten Schlüssel der CSD (PR csd) vor dem Senden der Schlüsselnachricht an den Benutzer in Schritt 308 durchführen, wodurch sichergestellt werden kann, dass die Schlüsselnachricht von der CSD aus gesendet wird (z.B. könnte die Nachricht mit PU csd entschlüsselt werden). Der Benutzer kann in Schritt 309 die Schlüsselnachricht (E (PU Benutzer, Key Benutzer)) durch Entschlüsseln der Nachricht mit dem PU csd extrahieren und die Schlüsselnachricht an einem gesicherten Ort aufbewahren (z.B. die mit PU Benutzer verschlüsselte Schlüsselnachricht speichern). Das Schlüsselverteilungssystem kann eine modifizierte TCG-Opal-SSC-Schnittstelle eines SSD verwenden.
-
3B stellt eine Erweiterung eines Schlüsselverteilungsmechanismus zum Registrieren einer Dienstleistungsniveauvereinbarung des Benutzers (SLA Benutzer) nach einer Ausführungsform dar. Zum Beispiel können der Einfachheit der Beschreibung halber Beschreibungen von Schritten, die ähnlich jenen aus 3A sind, weggelassen sein, ein Fachmann wird jedoch erkennen, dass Beschreibungen, welche die Schritte aus 3A betreffen, ebenfalls in 3B angewandt werden können.
-
Ein Programm-Slot (PS) ist eine beschränkte Ressource, die womöglich basierend auf einer SLA durch Bereitstellen eines SLA-Werts während des Schlüsselverteilungsprozesses beschränkt werden muss.
-
Bezugnehmend auf 3B kann die CA eine SLA-Ausstellungsrolle durch Ausstellen einer SLA-Nachricht in Schritt 351 annehmen, wodurch eine Laufzeit-PS-Zuweisung gesteuert werden kann. Die SLA-Nachricht kann als E(PR ca, [ID Benutzer, SLA Benutzer]) ausgebildet werden. Somit werden in Schritt 352 SLA Benutzer und ID Benutzer mit einem privaten Schlüssels einer CA verschlüsselt. Die SLA-Nachricht kann gesendet werden, wenn CA Benutzer registriert wird. Die CSD kann die SLA Benutzer in Schritt 353 extrahieren und sie in einer Programmschlüsseltabelle sichern. Zusätzlich kann die SLA Benutzer zum Steuern einer PS-Zuweisung verwendet werden, wenn eine CS-Download-Programmanforderung verarbeitet wird. Zum Beispiel kann die CSD den SLA-Wert überprüfen, wenn ein Download-Programm verarbeitet wird, und eine PS-Zuweisung basierend auf dem SLA-Wert steuern.
-
4 stellt eine Schlüsselverteilungsfunktion im Innern einer CSD nach einer Ausführungsform dar.
-
Bezugnehmend auf 4, unter Voraussetzung einer CA Benutzer und einer SLA Benutzer-Nachricht, extrahiert die CSD PU Benutzer, ID Benutzer und SLA Benutzer in Schritt 401. Für eine vorgegebene CA Benutzer kann die CSD PU Benutzer durch Entschlüsseln der CA mit PU CA extrahieren. Für eine vorgegebene SLA-Nachricht kann die CSD SLA Benutzer durch Entschlüsseln der SLA-Nachricht mit dem PU CA extrahieren. Dann, in Schritt 402, erzeugt die CSD einen Programmschlüssel für den Benutzer unter Verwendung der KDF (z.B. basierend auf PU Benutzer) und dieser wird mit einem KEK der CSD in Schritt 403 verschlüsselt und gesichert gespeichert. Die CSD speichert in Schritt 404 die ID Benutzer, einen e(KEY Benutzer), den PU Benutzer und die SLA Benutzer in einer Programmschlüsseltabelle.
-
Um den KEY Benutzer an den Benutzer zu übermitteln, kann die CSD durch Verschlüsseln des KEY Benutzer mit dem PU Benutzer eine Schlüsselnachricht erstellen, wodurch sichergestellt wird, dass der Benutzer den KEY Benutzer durch Durchführen einer Entschlüsselung mit dem PR Benutzer in Schritt 405 extrahieren kann. Die CSD führt eine zusätzliche Verschlüsselung für die Schlüsselnachricht mit PR csd in Schritt 406 durch, wodurch sichergestellt wird, dass diese Nachricht von der CSD erstellt worden ist. Ein Benutzer kann die Schlüsselnachricht mit PU csd in Schritt 407 entschlüsseln und extrahieren, um zu validieren, dass die CSD diese Nachricht gesendet hat, und die Schlüsselnachricht in Schritt 408 an einem gesicherten Ort speichern.
-
Dementsprechend, wenn der Benutzer ein Programm verschlüsseln muss, kann KEY
Benutzer basierend auf den nachfolgenden Prinzipien, die in Tabelle 5 unten gezeigt sind, extrahiert und für die Programmverschlüsselung verwendet werden. Tabelle 5
1. Die Schlüsselnachricht wird als E (PU Benutzer, KEY Benutzer) ausgebildet. |
2. E( D(PR Benutzer, KEY-Nachricht), einfaches CS-Download-Programmabbild). |
3. D ist eine Entschlüsselungsfunktion, E ist eine Verschlüsselungsfunktion und ein erster Parameter einer jeden Funktion ist ein Krypto-Schlüssel für diese Funktion. |
-
Es wird nun ein gesichertes CS-Download-Programmabbildformat beschrieben.
-
5 stellt ein gesichertes CS-Download-Programmabbildformat und einen Erstellungsvorgang nach einer Ausführungsform dar.
-
Ein gesichertes herunterladbares Programm, wie in 5 dargestellt, kann die Sicherheit des herunterladbaren Programms verbessern. Um einen Angriff eines böswilligen Angreifers zu erfassen, kann die CSD einen Authentifizierungsmechanismus für das Download-Programm bereitstellen und das Programm kann in einem verschlüsselten Format mit einem Programmschlüssel gesichert werden.
-
Bezugnehmend auf 5 verschlüsselt ein Benutzer in Schritt 501 eine einfache Binärnachricht mit KEY Benutzer. Wie bereits erwähnt, kann eine Schlüsselnachricht als E(PU Benutzer, Key Benutzer) ausgebildet werden. Ein Benutzer extrahiert Key Benutzer durch Entschlüsseln der Schlüsselnachricht mit PR Benutzer. Ein Benutzer kann eine ID Benutzer anhängen, die in Schritt 502 aus der CA mit PU ca extrahiert wird. In Schritt 503 wird eine Anfälligkeitsüberprüfung und/oder eine Fehlerhaftigkeitsüberprüfung auf dem einfachen Binärcode (herunterladbaren Programm) durchgeführt. Als Reaktion darauf, dass die Anfälligkeitsüberprüfung und/oder Fehlerhaftigkeitsüberprüfung in Schritt 503 erfolgreich durchgeführt wird, kann die CA eine digitale Signatur durch Extrahieren eines Hash-Werts unter Verwendung einer Einweg-Hash-Funktion in Schritt 504 bereitstellen und den Hash-Wert mit PR ca in Schritt 505 verschlüsseln. Dementsprechend kann die CA als eine Programmautoritätsrolle agieren und jene bereitstellen. Ein Benutzer kann eine digitale Signatur durch Übermitteln eines CS-Programmabbildes an die CA anfragen oder anfordern. Die CA kann zusätzliche Überprüfungen durchführen, wie eine Anfälligkeitsüberprüfung für das vorgegebene CS-Download-Programmabbild, und die digitale Signatur bereitstellen.
-
Ein gesichertes CS-Download-Programmabbild kann aus einem verschlüsselten Code (z.B. mit KEY Benutzer verschlüsselt), einer ID Benutzer (aus CA Benutzer extrahiert) und einer digitalen Signatur (z.B. durch eine CA für den Hash-Wert des einfachen Programms signiert) bestehen und kann im Host-System gespeichert werden.
-
Es wird nun eine Authentifizierung eines CS-Download-Programmabbildes in einer CSD beschrieben.
-
6 stellt einen Authentifizierungs- und Datenintegritätsüberprüfungsvorgang für das CS-Download-Programm in einer CSD nach einer Ausführungsform dar.
-
Bezugnehmend auf 6 entschlüsselt die CSD in Schritt 601 verschlüsselte Code-Daten mit Key Benutzer und erzeugt eine einfache Binärnachricht. Ein Key Benutzer kann durch Entschlüsseln unter Verwendung eines KEK der CSD aus e(KEY Benutzer) extrahiert werden. Dieser Vorgang kann sicherstellen, dass ein Programm durch einen registrierten gültigen Benutzer gesendet werden kann. In Schritt 602 erzeugt die CSD einen ersten Hash-Wert aus der einfachen Binärnachricht mit einer Einwegfunktion zum Vorbereiten einer Datenintegritäts- und Gültigkeitsüberprüfung. Als nächstes extrahiert die CSD in Schritt 603 einen zweiten Hash-Wert aus einer digitalen Signatur durch Entschlüsseln einer digitalen Signatur mit einem PU ca. Dann vergleicht die CSD in Schritt 604 diesen zweiten Hash-Wert mit dem ersten Hash-Wert aus der einfachen Binärnachricht. Wenn der erste Hash-Wert nicht derselbe ist wie der zweite Hash-Wert, dann kann womöglich jemand das gesicherte CS-Download-Programmabbild in einem Host oder während es übertragen wird modifiziert haben, oder wenn das CS-Download-Programmabbild nicht vom CA signiert ist, erfasst die CSD dies und weist die CS-Download-Programmanforderung zurück. Andernfalls kann die CSD die CS-Download-Programmanforderung autorisieren, wenn der erste Hash-Wert derselbe ist wie der zweite Hash-Wert, und/oder das CS-Download-Programmabbild vom CA signiert ist.
-
Es wird nun eine Authentifizierungsarchitektur für ein CS-Download-Programm in einer CSD beschrieben.
-
7 stellt eine Gesamtauthentifizierungsarchitektur für einen CS-Download-Befehl nach einer Ausführungsform dar.
-
Bezugnehmend auf 7 stellt die CSD eine TCG-Opal-SSC-Schnittstelle zum Registrieren eines öffentlichen Schlüssels einer CA (PU ca) bereit und stellt eine Schlüsselverteilung für einen Benutzer bereit. Wenn das System initialisiert wird, kann der Administrator (z.B. eine Schlüsselverwaltungsanwendung) PU ca in Schritt 701 in der CSD registrieren. Der Benutzer kann eine CA Benutzer und eine SLA Benutzer-Nachricht durch die CA erstellen und gesichert speichern. Dann kann der Benutzer eine Key Benutzer-Nachricht durch Registrieren einer CA Benutzer und einer SLA Benutzer-Nachricht in der CSD durch die TCG-Opal-SSC-Schnittstelle erhalten. Die CSD bewahrt den Key Benutzer, die ID Benutzer und die SLA Benutzer in einer Programmschlüsseltabelle auf (oder speichert sie dort).
-
Um eine Schlüsselverteilung durchzuführen, kann die CSD eine KDF, eine Einwegfunktion, eine Verschlüsselungs-/Entschlüsselungsfunktion und eine gesichert gespeicherte Programmschlüsseltabelle bereitstellen. Um ein gesichertes CS-Download-Programmabbild zu erstellen, muss das System womöglich eine verschlüsselte Funktion bereitstellen (die von einer CSD-Entschlüsselungsfunktion unterstützt wird). Der Benutzer muss womöglich eine Schlüsselbenutzernachricht (E (PU Benutzer, KEY Benutzer)) und eine CA Benutzer gesichert speichern. Andererseits kann es möglich sein, dass das System eine Schlüsselbenutzernachricht (E (PU Benutzer, KEY Benutzer)) und eine CA Benutzer gesichert speichern und eine Schnittstelle zum Extrahieren derselben bereitstellen kann, wenn ein gesichertes CS-Download-Abbild erstellt oder erzeugt wird. Wie oben erwähnt, kann eine CA eine Programmautoritätsrolle durchführen, wenn ein gesichertes CS-Download-Programmabbild erstellt wird. Dies kann erfordern, dass ein System eine Anfälligkeit eines Programms und eines Systems für eine Programvalidierung vor einem Signieren des Programms überprüft.
-
Zusätzlich kann ein Benutzer eine CS-Download-Programmanwendungsprogrammschnittstelle (API) zum Registrieren eines Programms abrufen. Für den Authentifizierungsvorgang kann eine CSD eine Entschlüsselung und eine Einwegfunktion bereitstellen. Zunächst kann eine CSD eine SLA Benutzer und einen Key Benutzer basierend auf einer ID Benutzer extrahieren und eine Programm-Slot(PS)-Quote mit der SLA Benutzer überprüfen, um zu bestimmen, ob der Benutzer für einen Download des Programms registriert ist oder nicht. Wenn der Benutzer für einen Download des Programms registriert ist, kann die CSD das verschlüsselte Programmabbild mit einem Key Benutzer entschlüsseln und eine Gültigkeitsüberprüfung mit einer digitalen Signatur durchführen. Nach Bestehen eines jeden Schrittes kann das extrahierte heruntergeladene Programm in einem PS registriert werden.
-
8 stellt eine elektronische Vorrichtung in einer Netzwerkumgebung nach einer Ausführungsform dar.
-
Bezugnehmend auf 8 kann eine elektronische Vorrichtung 801, z.B. ein mobiler Anschluss, der eine GPS-Funktionalität enthält, in einer Netzwerkumgebung 800 mittels eines ersten Netzwerks 898 (z.B. eines drahtlosen Kommunikationsnetzwerks mit kurzer Reichweite) mit einer elektronischen Vorrichtung 802 kommunizieren oder kann mittels eines zweiten Netzwerks 899 (z.B. eines weiträumigen drahtlosen Kommunikationsnetzwerks) mit einer elektronischen Vorrichtung 804 oder einem Server 808 kommunizieren. Die elektronische Vorrichtung 801 kann mittels des Servers 808 mit der elektronischen Vorrichtung 804 kommunizieren. Die elektronische Vorrichtung 801 kann enthalten: einen Prozessor 820, einen Speicher 830, eine Eingabevorrichtung 850, eine Tonausgabevorrichtung 855, eine Anzeigevorrichtung 860, ein Audiomodul 870, ein Sensormodul 876, eine Schnittstelle 877, ein haptisches Modul 879, ein Kameramodul 880, ein Leistungsverwaltungsmodul 888, eine Batterie 889, ein Kommunikationsmodul 890, ein Teilnehmeridentifikationsmodul (SIM) 896 oder ein Antennenmodul 897, das eine GNSS-Antenne enthält. In einer Ausführungsform kann mindestens eine (z.B. die Anzeigevorrichtung 860 oder das Kameramodul 880) der Komponenten aus der elektronischen Vorrichtung 801 weggelassen werden oder eine oder mehrere andere Komponenten können zu der elektronischen Vorrichtung 801 hinzugefügt werden. In einer Ausführungsform können einige der Komponenten als eine einzelne integrierte Schaltung (IC) umgesetzt werden. Zum Beispiel kann das Sensormodul 876 (z.B. ein Fingerabdrucksensor, ein Irissensor oder ein Beleuchtungsstärkensensor) in der Anzeigevorrichtung 860 (z.B. einer Anzeige) eingebettet sein.
-
Der Prozessor 820 kann zum Beispiel eine Software (z.B. ein Programm 1040) zum Steuern von mindestens einer anderen Komponente (z.B. einer Hardware- oder Softwarekomponente) der elektronischen Vorrichtung 1001, die mit dem Prozessor 1020 gekoppelt ist, ausführen und kann verschiedene Datenverarbeitungen oder -berechnungen durchführen. Als mindestens ein Teil der Datenverarbeitungen oder -berechnungen kann der Prozessor 820 einen Befehl oder Daten, die von einer weiteren Komponente (z.B. dem Sensormodul 876 oder dem Kommunikationsmodul 890) empfangen werden, in einen flüchtigen Speicher 832 laden, den Befehl oder die Daten, die im flüchtigen Speicher 832 gespeichert sind, verarbeiten und daraus resultierende Daten in einem nichtflüchtigen Speicher 834 speichern. Der Prozessor 820 kann einen Hauptprozessor 821 (z.B. eine Zentralverarbeitungseinheit (CPU) oder einen Anwendungsprozessor) und einen Hilfsprozessor 823 (z.B. eine Grafikverarbeitungseinheit (GPU), einen Bildsignalprozessor (ISP), einen Sensorhubprozessor oder einen Kommunikationsprozessor (CP)), der unabhängig von oder in Verbindung mit dem Hauptprozessor 821 betrieben werden kann, enthalten. Zusätzlich oder alternativ kann der Hilfsprozessor 823 derart eingestellt werden, dass er weniger Leistung verbraucht als der Hauptprozessor 821, oder kann eine bestimmte Funktion ausführen. Der Hilfsprozessor 823 kann separat vom Hauptprozessor 821 oder als ein Teil von jenem umgesetzt werden.
-
Der Hilfsprozessor 823 kann mindestens einige der Funktionen oder Zustände im Zusammenhang mit mindestens einer Komponente (z.B. der Anzeigevorrichtung 860, dem Sensormodul 876 oder dem Kommunikationsmodul 890) unter den Komponenten der elektronischen Vorrichtung 801 anstelle des Hauptprozessors 821 steuern, während der Hauptprozessor 821 in einem inaktiven (z.B. Ruhe-) Zustand ist, oder zusammen mit dem Hauptprozessor 821 steuern, während der Hauptprozessor 821 in einem aktiven Zustand ist (z.B. eine Anwendung ausführt). Nach einer Ausführungsform kann der Hilfsprozessor 823 (z.B. ein Bildsignalprozessor oder ein Kommunikationsprozessor) als Teil einer weiteren Komponente (z.B. des Kameramoduls 880 oder des Kommunikationsmoduls 890) umgesetzt werden, die mit dem Hilfsprozessor 823 in funktionellem Zusammenhang steht.
-
Der Speicher 830 kann verschiedene Daten speichern, die von mindestens einer Komponente (z.B. dem Prozessor 820 oder dem Sensormodul 876) der elektronischen Vorrichtung 801 verwendet werden. Die verschiedenen Daten können zum Beispiel eine Software (z.B. das Programm 840) und Eingabedaten oder Ausgabedaten für einen darauf bezogenen Befehl enthalten. Der Speicher 830 kann den flüchtigen Speicher 832 oder den nichtflüchtigen Speicher 834 enthalten.
-
Das Programm 840 kann als Software im Speicher 830 gespeichert sein und kann zum Beispiel ein Betriebssystem (OS) 842, Middleware 844 oder eine Anwendung 846 enthalten.
-
Die Eingabevorrichtung 850 kann einen Befehl oder Daten, der/die von einer weiteren Komponente (z.B. dem Prozessor 820) der elektronischen Vorrichtung 801 verwendet werden sollen, von außerhalb (z.B. einem Benutzer) der elektronischen Vorrichtung 801 empfangen. Die Eingabevorrichtung 850 kann zum Beispiel ein Mikrofon, eine Maus oder eine Tastatur enthalten.
-
Die Tonausgabevorrichtung 855 kann Tonsignale an die Außenseite der elektronischen Vorrichtung 801 ausgeben. Die Tonausgabevorrichtung 855 kann zum Beispiel einen Lautsprecher oder einen Empfänger enthalten. Der Lautsprecher kann für allgemeine Zwecke verwendet werden, wie Abspielen von Multimedia oder Aufnehmen, und der Empfänger kann zum Empfangen eines eingehenden Anrufs verwendet werden. Nach einer Ausführungsform kann der Empfänger getrennt vom Lautsprecher oder als ein Teil von jenem umgesetzt werden.
-
Die Anzeigevorrichtung 860 kann Informationen visuell an die Außenseite (z.B. einen Benutzer) der elektronischen Vorrichtung 801 übermitteln. Die Anzeigevorrichtung 860 kann zum Beispiel eine Anzeige, eine Hologrammvorrichtung oder einen Projektor und einen Steuerschaltkreis zum Steuern eines entsprechenden einen der Anzeige, der Hologrammvorrichtung und des Projektors, enthalten. Nach einer Ausführungsform kann die Anzeigevorrichtung 860 einen Berührungsschaltkreis, der eingestellt ist, eine Berührung zu erfassen, oder einen Sensorschaltkreis (z.B. einen Drucksensor), der eingestellt ist, die Intensität einer durch die Berührung aufgebrachten Kraft zu messen, enthalten.
-
Das Audiomodul 870 kann einen Ton in ein elektrisches Signal umwandeln und umgekehrt. In einer Ausführungsform kann das Audiomodul 870 den Ton mittels der Eingabevorrichtung 850 erhalten oder den Ton mittels der Tonausgabevorrichtung 855 oder eines Kopfhörers einer externen elektronischen Vorrichtung 802, die mit der elektronischen Vorrichtung 801 direkt (z.B. verdrahtet) oder drahtlos gekoppelt ist, ausgeben.
-
Das Sensormodul 876 kann einen Betriebszustand (z.B. eine Leistung oder Temperatur) der elektronischen Vorrichtung 801 oder einen Umgebungszustand (z.B. einen Zustand eines Benutzers) extern zur elektronischen Vorrichtung 801 erfassen und dann ein elektrisches Signal oder einen Datenwert erzeugen, das/der dem erfassten Zustand entspricht. Das Sensormodul 876 kann zum Beispiel enthalten: einen Bewegungssensor, einen Gyrosensor, einen Sensor für atmosphärischen Druck, einen Magnetsensor, einen Beschleunigungssensor, einen Griffsensor, einen Annäherungssensor, einen Farbsensor, einen Infrarot(IR)-Sensor, einen biometrischen Sensor, einen Temperatursensor, einen Feuchtigkeitssensor oder einen Beleuchtungsstärkensensor.
-
Die Schnittstelle 877 kann ein oder mehrere spezifizierte Protokolle unterstützen, welche für die elektronische Vorrichtung 801 verwendet werden sollen, die mit der externen elektronischen Vorrichtung 802 direkt (z.B. verdrahtet) oder drahtlos gekoppelt werden soll. Nach einer Ausführungsform kann die Schnittstelle 877 zum Beispiel eine Hochauflösungsmultimediaschnittstelle (HDMI), eine Universal-Serial-Bus(USB)-Schnittstelle, eine Secure-Digital(SD)-Kartenschnittstelle oder eine Audioschnittstelle enthalten.
-
Ein Verbindungsanschluss 878 kann einen Verbinder enthalten, mittels welchem die elektronische Vorrichtung 801 mit der externen elektronischen Vorrichtung 802 physisch verbunden werden kann. Nach einer Ausführungsform kann der Verbindungsanschluss 878 zum Beispiel einen HDMI-Verbinder, einen USB-Verbinder, einen SD-Kartenverbinder oder einen Audioverbinder (z.B. einen Kopfhörerverbinder) enthalten.
-
Das haptische Modul 879 kann ein elektrisches Signal in einen mechanischen Reiz (z.B. eine Vibration oder eine Bewegung) oder einen elektrischen Reiz umwandeln, der von einem Benutzer mittels Tastempfindung oder kinästhetischer Empfindung erkannt werden kann. Nach einer Ausführungsform kann das haptische Modul 879 zum Beispiel einen Motor, ein piezoelektrisches Element oder einen elektrischen Stimulator enthalten.
-
Das Kameramodul 880 kann ein Standbild oder ein Bewegtbild aufnehmen. Nach einer Ausführungsform kann das Kameramodul 880 eine oder mehrere Linsen, Bildsensoren, Bildsignalprozessoren oder Flashs enthalten.
-
Das Leistungsverwaltungsmodul 888 kann eine der elektronischen Vorrichtung 801 zugeführte Leistung verwalten. Das Leistungsverwaltungsmodul 888 kann als mindestens ein Teil von zum Beispiel einer integrierten Leistungsverwaltungsschaltung (PMIC) umgesetzt sein.
-
Die Batterie 889 kann mindestens eine Komponente der elektronischen Vorrichtung 801 mit Leistung versorgen. Nach einer Ausführungsform kann die Batterie 889 zum Beispiel eine Primärzelle, die nicht wiederaufladbar ist, eine Sekundärzelle, die wiederaufladbar ist, oder eine Brennstoffzelle enthalten.
-
Das Kommunikationsmodul 890 kann das Erstellen eines direkten (z.B. verdrahteten) Kommunikationskanals oder eines drahtlosen Kommunikationskanals zwischen der elektronischen Vorrichtung 801 und der externen elektronischen Vorrichtung (z.B. der elektronischen Vorrichtung 802, der elektronischen Vorrichtung 804 oder dem Sever 808) und das Durchführen einer Kommunikation mittels des erstellten Kommunikationskanals unterstützen. Das Kommunikationsmodul 890 kann einen oder mehrere Kommunikationsprozessoren enthalten, die unabhängig vom Prozessor 820 (z.B. dem Anwendungsprozessor) betrieben werden können, und unterstützt eine direkte (z.B. verdrahtete) Kommunikation oder eine drahtlose Kommunikation. Nach einer Ausführungsform kann das Kommunikationsmodul 890 ein drahtloses Kommunikationsmodul 892 (z.B. ein Mobilfunkkommunikationsmodul, ein drahtloses Kommunikationsmodul mit kurzer Reichweite oder ein Global-Navigation-Satellite-System(GNSS)-Kommunikationsmodul) oder ein verdrahtetes Kommunikationsmodul 894 (z.B. ein Local-Area-Network(LAN)-Kommunikationsmodul oder ein Leistungsleitungskommunikation(PLC)-Modul) enthalten. Ein entsprechendes eines dieser Kommunikationsmodule kann mittels des ersten Netzwerks 898 (z.B. eines Kommunikationsnetzwerks mit kurzer Reichweite, wie Bluetooth™, Wireless-Fidelity(Wi-Fi)-Direct oder einem Standard der Infrared Data Association (IrDA)) oder mittels des zweiten Netzwerks 899 (z.B. eines weiträumigen Kommunikationsnetzwerks, wie einem Mobilfunknetzwerk, dem Internet oder einem Computernetzwerk (z.B. LAN oder Wide Area Network (WAN)) mit der externen elektronischen Vorrichtung kommunizieren. Diese verschiedenen Arten von Kommunikationsmodulen können als eine einzelne Komponente (z.B. eine einzelne IC) umgesetzt sein oder können als mehrere Komponenten (z.B. mehrere ICs) umgesetzt sein, die voneinander getrennt sind. Das drahtlose Kommunikationsmodul 892 kann die elektronische Vorrichtung 801 in einem Kommunikationsnetzwerk, wie dem ersten Netzwerk 898 oder dem zweiten Netzwerk 899, unter Verwendung von Teilnehmerinformationen (z.B. International Mobile Subscriber Identity (IMSI)), die im Teilnehmeridentifikationsmodul 896 gespeichert sind, identifizieren und authentifizieren.
-
Das Antennenmodul 897 kann ein Signal oder eine Leistung an die Außenseite (z.B. die externe elektronische Vorrichtung) der elektronischen Vorrichtung 801 senden oder von jener empfangen. Nach einer Ausführungsform kann das Antennenmodul 897 eine oder mehrere Antennen enthalten und daraus kann mindestens eine Antenne, die für ein Kommunikationsverfahren geeignet ist, das im Kommunikationsnetzwerk verwendet wird, wie dem ersten Netzwerk 898 oder dem zweiten Netzwerk 899, zum Beispiel durch das Kommunikationsmodul 890 (z.B. das drahtlose Kommunikationsmodul 892) ausgewählt werden. Das Signal oder die Leistung kann dann mittels der ausgewählten mindestens einen Antenne zwischen dem Kommunikationsmodul 890 und der externen elektronischen Vorrichtung gesendet oder empfangen werden.
-
Mindestens einige der oben beschriebenen Komponenten können gemeinsam gekoppelt sein und Signale (z.B. Befehle oder Daten) mittels eines Zwischenperipheriekommunikationsverfahrens (z.B. eines Busses, einer Allweckeingabe und - ausgabe (GIPO), einer seriellen Peripherieschnittstelle (SPI) oder einer Mobile-Industry-Processor-Interface (MIPI)) dazwischen kommunizieren.
-
Nach einer Ausführungsform können Befehle oder Daten können mittels des Servers 808, der mit dem zweiten Netzwerk 899 gekoppelt ist, zwischen der elektronischen Vorrichtung 801 und der externen elektronischen Vorrichtung 804 gesendet oder empfangen werden. Jede der elektronischen Vorrichtungen 802 und 804 kann eine Vorrichtung eines selben Typs wie die elektronische Vorrichtung 801 oder ein anderer Typ sein. Alle oder einige Operationen, die an der elektronischen Vorrichtung 801 ausgeführt werden sollen, können an einer oder mehreren der externen elektronischen Vorrichtungen 802, 804 oder 808 ausgeführt werden. Wenn zum Beispiel die elektronische Vorrichtung 801 eine Funktion oder eine Dienstleistung automatisch oder als Reaktion auf eine Anforderung von einem Benutzer oder einer anderen Vorrichtung durchführen soll, kann die elektronische Vorrichtung 801 anstelle oder zusätzlich zu der Ausführung der Funktion oder der Dienstleitung anfordern, dass eine oder mehrere externe elektronische Vorrichtungen mindestens einen Teil der Funktion oder der Dienstleistung durchführen. Die eine oder mehreren externen elektronischen Vorrichtungen, welche die Anforderung empfangen, kann/können den angeforderten mindestens einen Teil der Funktion oder der Dienstleistung oder eine zusätzliche Funktion oder eine zusätzliche Dienstleistung im Zusammenhang mit der Anforderung durchführen und ein Ergebnis der Durchführung an die elektronische Vorrichtung 801 übertragen. Die elektronische Vorrichtung 801 kann das Ergebnis mit oder ohne weiterer Verarbeitung des Ergebnisses als mindestens einen Teil einer Antwort auf die Anforderung bereitstellen. Zu diesem Zweck können zum Beispiel eine Cloud-Rechner-, eine verteilte Rechner- oder eine Client-Server-Rechner-Technologie verwendet werden.
-
Eine Ausführungsform kann als Software (z.B. das Programm 840) umgesetzt werden, die ein oder mehrere Anweisungen enthält, die in einem Speichermedium (z.B. einem internen Speicher 836 oder einem externen Speicher 838) gespeichert sind, das von einer Maschine (z.B. der elektronischen Vorrichtung 801) gelesen werden kann. Zum Beispiel kann ein Prozessor der elektronischen Vorrichtung 801 mindestens eine der einen oder mehreren Anweisungen, die im Speichermedium gespeichert sind, aufrufen und diese mit oder ohne Verwendung von einer oder mehreren weiteren Komponenten unter der Steuerung des Prozessors ausführen. Somit kann eine Maschine derart betrieben werden, dass sie mindestens eine Funktion gemäß der aufgerufenen mindestens einen Anweisung durchführt. Die eine oder mehreren Anweisungen können einen Code, der von einem Compiler erzeugt wird, oder einen Code, der von einem Interpreter ausgeführt werden kann, enthalten. Ein maschinenlesbares Speichermedium kann in Form eines nichttransitorischen Speichermediums bereitgestellt sein. Der Begriff „nichttransitorisch“ gibt an, dass das Speichermedium eine greifbare Vorrichtung ist, und enthält kein Signal (z.B. eine elektromagnetische Welle), dieser Begriff unterscheidet jedoch nicht zwischen wo Daten semipermanent im Speichermedium gespeichert sind und wo die Daten vorübergehend im Speichermedium gespeichert sind.
-
Nach einer Ausführungsform kann ein Verfahren der Offenbarung in einem Computerprogrammprodukt enthalten und bereitgestellt sein. Das Computerprogrammprodukt kann als ein Produkt zwischen einem Verkäufer und einem Käufer gehandelt werden. Das Computerprogrammprodukt kann in Form eines maschinenlesbaren Speichermediums verteilt werden (z.B. eines Kompakt-Disk-Festwertspeichers (CD-ROM)) oder kann mittels eines Anwendungs-Stores (z.B. PlayStore™) online (z.B. heruntergeladen oder hochgeladen) oder zwischen zwei Benutzervorrichtungen (z.B. Smartphones) direkt verteilt werden. Wenn online verteilt, kann mindestens ein Teil des Computerprogrammprodukts im maschinenlesbaren Speichermedium, wie einem Speicher des Herstellerservers, eines Servers des Anwendungs-Stores oder eines Relais-Servers, vorübergehend erzeugt oder zumindest vorübergehend gespeichert werden.
-
Nach einer Ausführungsform kann jede Komponente (z.B. ein Modul oder ein Programm) der oben beschriebenen Komponenten eine einzelne Einheit oder mehrere Einheiten enthalten. Eine oder mehrere der oben beschriebenen Komponenten kann/können weggelassen sein oder eine oder mehrere andere Komponenten kann/können hinzugefügt werden. Alternativ oder zusätzlich kann eine Mehrzahl an Komponenten (z.B. Module oder Programme) in eine einzelne Komponente integriert werden. In diesem Fall kann die integrierte Komponente noch immer eine oder mehrere Funktionen einer jeden der Mehrzahl an Komponenten auf dieselbe oder ähnliche Weise durchführen, wie sie von einer entsprechenden einen der Mehrzahl an Komponenten vor der Integration durchgeführt wird/werden. Von dem Modul, dem Programm oder einer weiteren Komponente durchgeführte Operationen können sequenziell, parallel, wiederholt oder heuristisch durchgeführt werden oder eine oder mehrere der Operationen kann/können in einer anderen Reihenfolge ausgeführt oder weggelassen werden, oder eine oder mehrere andere Operationen kann/können hinzugefügt werden.
-
Obwohl gewisse Ausführungsformen der vorliegenden Offenbarung in der ausführlichen Beschreibung der vorliegenden Offenbarung beschrieben worden sind, kann die vorliegende Offenbarung in verschiedenen Formen modifiziert werden, ohne dabei vom Umfang der beigefügten Ansprüche abzuweichen.