-
Die vorliegende Offenbarung bezieht sich auf eine gesicherte Recheneinrichtung (engl.: secure element) und auf eine Vorrichtung mit einer gesicherten Recheneinrichtung. Die vorliegende Offenbarung bezieht sich ferner auf eine Hardware-Firewall (engl.: Schutzwall/Brandmauer) für Nutzerschnittstellen.
-
Geheime Informationen, etwa Passwörter oder dergleichen, können in elektronischen Datenspeichern gespeichert werden. Es besteht ein Bedarf darin, geheime Informationen zuverlässig zu speichern, um einen zuverlässigen Zugriff darauf zu ermöglichen, gleichzeitig jedoch eine Sicherung der Daten vor unbefugtem Zugriff zu ermöglichen.
-
Wünschenswert wären demnach gesicherte Recheneinrichtungen und Vorrichtungen mit gesicherten Recheneinrichtungen, die eine hohe Sicherheit von gespeicherten geheimen Informationen ermöglichen.
-
Ausführungsbeispiele schaffen eine gesicherte Recheneinrichtung mit einer Speicheranordnung, die konfiguriert ist, um ein Geheimnis zu speichern. Die gesicherte Recheneinrichtung weist eine erste Schnittstelle auf, die konfiguriert ist, um eine Anzeigeeinrichtung anzusteuern und weist eine zweite Schnittstelle auf, die konfiguriert ist, um ein Eingangssignal zu empfangen, das eine Information aufweist, die eine Aufforderung zum Darstellen des Geheimnisses wiedergibt oder enthält. Die gesicherte Recheneinrichtung ist ausgebildet, um basierend auf dem Eingangssignal das Geheimnis aus der Speicheranordnung zu lesen und die Anzeigeeinrichtung über die erste Schnittstelle so anzusteuern, dass eine Darstellung des Geheimnisses erfolgt. Dies ermöglicht, dass die gesicherte Recheneinrichtung die Steuerung der Anzeigeeinrichtung übernimmt und eine Weitergabe der geheimen Information an eine andere, gegebenenfalls ungesicherte Steuereinheit reduziert, vermieden oder verhindert werden kann, so dass ein Angriff auf eine somit umgangene Steuereinheit wirkungslos bleiben kann.
-
Gemäß einem Ausführungsbeispiel umfasst eine Vorrichtung eine gesicherte Recheneinrichtung und eine Anzeigeeinrichtung, die mit der ersten Schnittstelle verbunden ist.
-
Weitere Ausführungsbeispiele sind in den abhängigen Patentansprüchen definiert.
-
Ausführungsbeispiele werden nachfolgend Bezug nehmend auf die beiliegenden Zeichnungen erläutert. Es zeigen:
- 1 ein schematisches Blockschaltbild einer gesicherten Recheneinrichtung gemäß einem Ausführungsbeispiel;
- 2 ein schematisches Blockschaltbild einer gesicherten Recheneinrichtung gemäß einem Ausführungsbeispiel, die unter Bezugnahme auf die 1 ferner eine Schnittstelle aufweist, über die die gesicherte Recheneinrichtung ausgelegt ist, einen Programmcode zu empfangen;
- 3 ein schematisches Blockschaltbild einer gesicherten Recheneinrichtung gemäß einem Ausführungsbeispiel, die ausgebildet ist, um einen Schalter anzusteuern;
- 4 ein schematisches Blockschaltbild einer gesicherten Recheneinrichtung gemäß einem Ausführungsbeispiel, die ausgebildet ist, um ein Statussignal auszugeben, das eine Ansteuerung der Anzeigeeinrichtung durch die gesicherte Recheneinrichtung anzeigt;
- 5 ein schematisches Blockschaltbild einer Vorrichtung gemäß einem Ausführungsbeispiel;
- 6 eine schematische Darstellung einer Vorrichtung gemäß einem Ausführungsbeispiel, bei der die Anzeigeeinrichtung als Display gebildet ist; und
- 7 ein schematisches Blockschaltbild einer Vorrichtung gemäß einem Ausführungsbeispiel, die eine Applikationsrecheneinrichtung aufweist, die ausgebildet ist, um eine oder mehrere Anwendungen oder Applikationen der Vorrichtung auszuführen.
-
Bevor nachfolgend Ausführungsbeispiele im Detail anhand der Zeichnungen näher erläutert werden, wird darauf hingewiesen, dass identische, funktionsgleiche oder gleichwirkende Elemente, Objekte und/oder Strukturen in den unterschiedlichen Figuren mit den gleichen Bezugszeichen versehen sind, so dass die in den unterschiedlichen Ausführungsbeispielen dargestellte Beschreibung dieser Elemente untereinander austauschbar ist bzw. aufeinander angewendet werden kann.
-
1 zeigt ein schematisches Blockschaltbild einer gesicherten Recheneinrichtung 10 gemäß einem Ausführungsbeispiel. Die gesicherte Recheneinrichtung 10 umfasst eine Speicheranordnung 12, die konfiguriert ist, um ein Geheimnis 14 zu speichern. Das Geheimnis 14 kann eine zumindest zeitweise geheim zu haltende Information umfassen oder sein, beispielsweise ein Passwort, ein Token, ein Schlüssel, beispielsweise ein privater Schlüssel und/oder eine Zufallszahl, die als Startpunkt (engl.: deterministic seed) für die Berechnung einer weitergehenden Information verwendet wird. Das Geheimnis 14 bzw. die darin enthaltene Information kann in einem beliebigen Format und/oder Zustand und/oder Abwandlung gespeichert sein, beispielsweise in einer Vielzahl von Speicherzellen der Speicheranordnung 12. Die Speicheranordnung 12 kann einen flüchtigen oder nicht-flüchtigen Speicher aufweisen, der ausgelegt ist, um Informationen zu speichern und wiederzugeben.
-
Die gesicherte Recheneinrichtung 10 umfasst eine Schnittstelle 16, die konfiguriert ist, um eine Anzeigeeinrichtung 18 anzusteuern. Die Anzeigeeinrichtung 18 kann Teil der gesicherten Recheneinrichtung 10 sein, kann jedoch auch Teil einer anderen Vorrichtung sein und bezüglich der gesicherten Recheneinrichtung 10 optional sein. Die Anzeigeeinrichtung 18 kann ausgebildet sein, um ein oder mehrere Anzeigesignale auszugeben, beispielsweise akustische, haptische und/oder optische Anzeigesignale. Gemäß einem Ausführungsbeispiel kann die Anzeigeeinrichtung 18 einen Lautsprecher, eine Einheit zum Erzeugen einer haptischen Information, etwa ein Vibrationselement, und/oder eine optische Anzeige, etwa ein Display, insbesondere umfassend lichtemittierende Dioden (LED), umfassen.
-
Die gesicherte Recheneinrichtung 10 umfasst eine Schnittstelle 22, die ausgebildet ist, um ein Eingangssignal 24 zu empfangen. Das Eingangssignal 24 kann ein elektrisches, optisches, haptisches oder akustisches Signal sein. Das Eingangssignal 24 kann beispielsweise von einer Applikation, einer anderen Recheneinrichtung/Prozessor und/oder von einem Benutzer erhalten werden, beispielsweise über einen Tastendruck. Das Eingangssignal 24 kann eine Information darüber aufweisen, dass die gesicherte Recheneinrichtung 10 aufgefordert wird, das Geheimnis 14 wiederzugeben.
-
Die gesicherte Recheneinrichtung 10 ist ausgebildet, um basierend auf dem Eingangssignal 24 das Geheimnis 14 aus der Speicheranordnung 12 zu lesen und die Anzeigeeinrichtung 18 über die Schnittstelle 16 so anzusteuern, dass eine Darstellung 14' des Geheimnisses 14 erfolgt. Das bedeutet, die Darstellung 14' ist eine Repräsentation des Geheimnisses 14, etwa eine akustische, haptische und/oder optische Ausgestaltung der in der in der Speicheranordnung 12 gespeicherten Bitfolge, welche das Geheimnis 14 repräsentiert. Dies kann ein Ton, eine Tonfolge, ein Geräusch, eine Abfolge haptischer Informationen oder Bewegungen und/oder eine graphische Darstellung des Geheimnisses 14 umfassen. Gemäß einem Ausführungsbeispiel kann das Geheimnis 14 beispielsweise als QR-Code oder Ziffernfolge darstellbar sein, um die Darstellung 14' zu erhalten.
-
Die gesicherte Recheneinrichtung 10, die auch als Secure-Element bezeichnet werden kann oder gebildet sein kann, ermöglicht die Darstellung des Geheimnisses 14 mit der Anzeigeeinrichtung 18 unter Beibehaltung der Kontrolle über diese Darstellung, das bedeutet, es ist möglich, einen Umweg über einen ggf. ungesicherten Applikations-Prozessor oder dergleichen zu vermeiden oder zumindest einen Zugriff des Applikations-Prozessors auf die geheime Information 14 zu reduzieren, um die Effekte einer Kompromittierung eines derartigen Applikations-Prozessors zu reduzieren.
-
Obwohl die Schnittstellen 16 und 22 als separate Schnittstellen dargestellt sind, sehen alternative Ausgestaltungen vor, dieselbe Schnittstelle zum Empfangen des Eingangssignals 24 und zur Ausgabe eines Steuerungssignals 24 zum Ansteuern der Anzeigeeinrichtung 16 zu verwenden, beispielsweise in einem zeitlichen Wechsel oder unter Nutzung eines Multiplex-Verfahrens.
-
Die gesicherte Recheneinrichtung 10 kann eigens eingerichtete Sicherungsmaßnahmen aufweisen, um die Recheneinrichtung gegen unberechtigten Zugriff auf Daten und/oder gegen eine Manipulation abzusichern, wobei dies nicht zwingend erforderlich ist. Ausführungsbeispiele beziehen sich auf beliebige sicherheitskritische Anwendungen, die beispielsweise zumindest durch den Benutzer eine besondere Aufmerksamkeit erfahren. Dies umfasst auch sogenannte „eingeschränkte Betriebsumgebungen“ (restricted operating environment - ROE), die zum Ausführen vertrauenswürdiger Applikationen, sicherheitskritischer Applikationen, von Firmware und/oder zum Betrieb extra gesicherter Hardware-Komponenten verwendet werden, wobei die Ausführungsbeispiele hierauf nicht beschränkt sind, so dass auch reguläre Recheneinrichtungen, etwa Prozessoren oder CPU, die für derartige Anwendungen eingesetzt werden als gesicherte Recheneinrichtungen verwendet werden können.
-
2 zeigt ein schematisches Blockschaltbild einer gesicherten Recheneinrichtung 20 gemäß einem Ausführungsbeispiel, die unter Bezugnahme auf die 1 ferner eine Schnittstelle 28 aufweist, über die die gesicherte Recheneinrichtung 20 ausgelegt ist, einen Programmcode 32 zu empfangen, der in der Speicheranordnung 12 abgelegt werden kann. Die Schnittstelle 28 kann als separate Schnittstelle implementiert sein, kann jedoch auch als Schnittstelle 16 und/oder 22 gebildet sein. Der Programmcode 32 kann unterschiedliche Betriebsarten oder Funktionen der gesicherten Recheneinrichtung 20 zumindest teilweise beeinflussen oder bestimmen. Das bedeutet, der Programmcode 32 kann das Ausführen einer Computer-implementierten Anwendung steuern oder bestimmen. Die gesicherte Recheneinrichtung 20 kann ausgebildet sein, um den Programmcode 32 direkt oder in abgewandelter, umgewandelter oder weiterverarbeiteter Form in der Speicheranordnung 12 zu speichern, um ihn später auszuführen.
-
Gemäß einem Ausführungsbeispiel weist die gesicherte Recheneinrichtung 20 einen Betriebsmodus auf, in welchem die Darstellung 14' de Geheimnisses 14 erfolgt, wie es im Zusammenhang mit der 1 beschrieben ist. Der Betriebsmodus bezieht sich auf einen Modus zum Verfahren und Wiedergeben des Geheimnisses 14, also auf einen regulären Betriebsmodus.
-
Darüber hinaus kann die gesicherte Recheneinrichtung 20 einen weiteren Betriebsmodus aufweisen, beispielsweise einen abgesicherten Modus, in welchem das Speichern des Programmcodes 32 ermöglicht ist. In diesem Betriebsmodus kann das Darstellen des Geheimnisses 14 verhindert sein. Dies ermöglicht, dass zu Zeiten, während ein Programmcode 32 auf die gesicherte Recheneinrichtung 20 aufgespielt wird, das Abgreifen des Geheimnisses 14 über eine Ausgabe der Darstellung 14' verhindert ist. Es kann beispielsweise möglich sein, dass der Programmcode 32 kompromittiert ist und schädlichen Code enthält, der dazu ausgelegt ist, um die Darstellung 14' zu veranlassen. In dem abgesicherten Modus kann eine derartige schädliche Funktion jedoch ohne Wirkung bleiben. Innerhalb des abgesicherten Modus kann ferner die Überprüfung des Programmcodes 32 erfolgen, so dass bei einer Rückkehr in den Betriebsmodus zum Anzeigen der Darstellung 14' davon ausgegangen werden kann, dass eine unkompromittierte gesicherte Recheneinrichtung 20 betrieben wird.
-
Die gesicherte Recheneinrichtung 20 kann ebenso wie die gesicherte Recheneinrichtung 10 ausgebildet sein, um in dem regulären Betriebsmodus das Geheimnis 14 ausschließlich über die Schnittstelle 16 auszugeben. Dies ermöglicht, dass lediglich die hierfür vorgesehene Ausgabeart verwendet wird und eine möglicherweise böswillig herbeigeführte Fehlfunktion zum Auslesen oder anderweitigem Darstellen des Geheimnisses 14 diesbezüglich reduziert oder verhindert sein kann.
-
3 zeigt ein schematisches Blockschaltbild einer gesicherten Recheneinrichtung 30 gemäß einem Ausführungsbeispiel, die beispielsweise die Funktionen der gesicherten Recheneinrichtung 10 und/oder der gesicherten Recheneinrichtung 20 umfassen kann. Darüber hinaus kann die gesicherte Recheneinrichtung 30 ausgebildet sein, um einen Schalter 34 anzusteuern. Der Schalter 34 kann zwischen der Schnittstelle 16 und der optionalen Anzeigeeinrichtung 18 angeordnet sein und wechselweise die Schnittstelle 16 mit der Anzeigeeinrichtung 18 verbinden (geschlossener Zustand) oder eine Trennung zwischen der Schnittstelle 16 und der Anzeigeeinrichtung 18 herbeiführen (geöffneter Zustand). Der Schalter 34 kann ein Software-basierter Schalter oder ein Hardware-basierter Schalter sein. Ein Hardware-basierter Schalter kann eine sogenannte „harte“ elektrische Verbindung herbeiführen, beispielsweise über eine Schließung oder Öffnung einer galvanischen Verbindung. Es ist jedoch ebenso möglich, einen Halbleiter-basierten Schalter einzusetzen, bei dem die Leitfähigkeit stellenweise verändert wird, etwa unter Verwendung eines Transistors oder dergleichen. Die gesicherte Recheneinrichtung 30 kann ausgebildet sein, um ein Schaltsignal 36 an den Schalter 34 zu liefern, um den Zustand des Schalters 34 zu steuern. Das Schaltsignal 36 kann über eine Schnittstelle 38 ausgegeben werden, wobei die Schnittstelle 38 als separate Schnittstelle ausgeführt sein kann oder als Schnittstelle 16, 22 und/oder 28 implementiert sein kann.
-
Die gesicherte Recheneinrichtung 30 kann ausgebildet sein, um die Anzeigeeinrichtung 18 mit der Schnittstelle 16 zum Darstellen des Geheimnisses 14 zu verbinden und zumindest zeitweise zu Zeiten, während derer das Geheimnis 14 nicht dargestellt wird, zu trennen. Diese Zeiten können beispielsweise durch den Programmcode 32 bestimmt sein und die Ausgabe des entsprechenden Schaltsignals 36 bestimmen. Das bedeutet, dass das Schaltsignal 36 basierend hierauf ausgegeben wird, ob die gesicherte Recheneinrichtung 30 die Darstellung 14' vorsieht oder nicht. Für den Fall, dass die Darstellung 14' gewünscht oder angefordert ist, kann der Schalter 34 in einen geschlossenen Zustand versetzt werden. Zumindest zeitweise während anderer Zeiten, kann der Schalter 34 in einem bezüglich der Schnittstelle 16 geöffneten Zustand versetzt werden. Das bedeutet, selbst wenn nun ein entsprechendes Signal an der Schnittstelle 16 anliegt, erfolgt keine Darstellung 14' in der Anzeigeeinrichtung 18. Dies kann sowohl eine weitere Sicherheitsfunktionalität bereitstellen, aber auch dazu genutzt werden, dass der Schalter 34, während er bezüglich der Schnittstelle 16 in dem geöffneten Zustand gesteuert ist, die Ansteuerung der Anzeigeeinrichtung 18 durch eine andere Anwendung ermöglicht, das bedeutet, eine andere Anwendung oder ein anderes Element kann Zugriff oder Kontrolle über das Anzeigeelement 18 erhalten.
-
4 zeigt ein schematisches Blockschaltbild einer gesicherten Recheneinrichtung 40 gemäß einem Ausführungsbeispiel, die die Funktionalität der gesicherten Recheneinrichtung 10, 20 und/oder 30 aufweisen kann.
-
Die gesicherte Recheneinrichtung 40 kann ausgebildet sein, um ein Statussignal 42 auszugeben, das anzeigt, dass die gesicherte Recheneinrichtung 40 die Anzeigeeinrichtung 18 gerade oder in Kürze ansteuert und/oder soeben angesteuert hat. Hierfür kann die gesicherte Recheneinrichtung 40 eine Schnittstelle 44 aufweisen, die als separate Schnittstelle gebildet sein kann, aber auch ganz oder teilweise als Schnittstelle 16, 22, 28 und/oder 38 gebildet sein kann.
-
Das Statussignal 42 kann somit eine Information darüber aufweisen, dass die Darstellung 14' gerade ausgegeben wird und/oder die gesicherte Recheneinrichtung 40 entsprechende Steuersignale ausgibt. Das Statussignal 42 kann ein akustisches, optisches, haptisches und/oder elektrisches Signal umfassen. Beispielsweise kann das Statussignal 42 die Ansteuerung oder Ausgabe einer LED sein, einen Ton oder ein Geräusch umfassen, zur Ansteuerung eines zur Erzeugung desselben ausgebildetes Element ausgelegt sein oder auf andere Weise anzeigen, dass eine Ausgabe des Geheimnisses 14 erfolgt oder die gesicherte Recheneinrichtung 40 zumindest in einem entsprechenden Betriebszustand befindlich ist.
-
Unter Bezugnahme auf 3 kann das Statussignal 42 beispielsweise in kausalem Zusammenhang mit dem Schaltsignal 36 ausgegeben werden, so dass die Veranlassung zum Schließen des Schalters 34 auch zur Ausgabe des Statussignals 42 erfolgt. Obwohl die hierin beschriebenen Ausführungsbeispiele so beschrieben sind, dass das Statussignal 42 eine aktive Wiedergabe von Information ist, beispielsweise durch aktive Ausgabe einer akustischen, optischen, haptischen und/oder elektrischen Anzeige, kann alternativ auch die Deaktivierung und/oder eine Amplitudenveränderung des Signals diese entsprechende Information aufweisen, so dass Ausführungsbeispiele ebenfalls hierauf bezogen sind.
-
5 zeigt ein schematisches Blockschaltbild einer Vorrichtung 50 gemäß einem Ausführungsbeispiel, die beispielsweise die gesicherte Recheneinrichtung 10 umfasst, alternativ oder zusätzlich aber auch die gesicherte Recheneinrichtung 20, 30 und/oder 40 umfassen kann. Die Vorrichtung 50 umfasst ferner die Anzeigeeinrichtung 18, die im Nachfolgenden zum besseren Verständnis als LED-Anzeige beschrieben wird, jedoch nicht hierauf beschränkt ist, wie es im Zusammenhang mit der 1 beschrieben ist.
-
Die Vorrichtung 50 kann ausgebildet sein, um die Darstellung 14' mit der Anzeigeeinrichtung 18 auszugeben, etwa in Beantwortung des Eingangssignals 24. Die gesicherte Recheneinrichtung 10 ist ausgebildet, um zumindest zeitweise die Steuerung der Anzeigeeinrichtung 18 zu übernehmen. Dies kann beispielsweise unter Verwendung des Schalters 34 erfolgen, wie er im Zusammenhang mit der 3 beschrieben ist. Wird beispielsweise die Steuerung der Anzeigeeinrichtung 18 zeitweise an eine andere Einrichtung übertragen, beispielsweise einen Applikations-Prozessor oder eine andere Recheneinheit, deren Sicherheit möglicherweise nicht garantiert ist, so kann die Vorrichtung 50 weitere Funktionen bereitstellen. So kann die Anzeigeeinrichtung 18 beispielsweise einen Anzeigespeicher oder Bildschirmspeicher 46 aufweisen, der konfiguriert ist, um Informationen bezüglich der Darstellung 14' zu empfangen. Hierbei kann es sich beispielsweise um das Geheimnis 14, die Darstellung 14' oder einer aus zumindest einer dieser Informationen abgeleiteten Information 14" handeln. Die Anzeigeeinrichtung 18 kann beispielsweise eine eigene Steuerung aufweisen, die ausgebildet ist, um eine Konversion oder Übersetzung des Steuerungssignals 26 hin zu der möglicherweise graphischen Darstellung der Anzeigeeinrichtung 18 vorzunehmen. Beispielsweise kann diese Konversion dahin gehend ausgelegt sein, dass eine mit dem Steuersignal 26 empfangene Bitfolge, etwa das Geheimnis 14 oder Informationen bezüglich der graphischen Darstellung selbst, etwa eine Ziffernfolge oder ein QR-Code in eine Anweisung dahin gehend überführt werden, welche LED der Anzeigeeinrichtung 18 mit welcher Farbe und/oder Intensität anzusteuern sind. Dies kann auch eine Skalierung der Anzeigegröße oder dergleichen umfassen.
-
Das Vorhandensein des Bildschirmspeichers 46 kann potenziell dazu führen, dass das Geheimnis 14 oder eine hieraus abgeleitete Information in dem Bildschirmspeicher 46 zumindest temporär abgelegt wird. Insbesondere in Verbindung mit dem zeitweise Überlassen der Kontrolle der Anzeigeeinrichtung 18 an eine andere Einrichtung/Applikation könnte dies die Sicherheit des Geheimnisses 14 beeinträchtigen. Die gesicherte Recheneinrichtung der Vorrichtung 50 kann ausgebildet sein, um vor der Darstellung 14' des Geheimnisses 14 und/oder vor einer Übertragung der Steuerung der Anzeigeeinrichtung 18 an diese andere Einrichtung, etwa die Applikationsrecheneinrichtung, den Bildschirmspeicher 46 zu löschen. Dies kann einen entsprechenden Zugriff auf diese Information verhindern oder zumindest erschweren.
-
6 zeigt eine schematische Darstellung einer Vorrichtung 60 gemäß einem Ausführungsbeispiel, auf die die Erläuterungen im Zusammenhang mit der Vorrichtung 50 zutreffen. Die Anzeigeeinrichtung 18 ist beispielsweise als Display gebildet, während die Vorrichtung 60 als Uhr, beispielsweise eine Smart Watch, gebildet ist. Die Darstellung 14' ist beispielsweise ein Passwort zur einmaligen Verwendung, was auch als One-Time-Passwort bezeichnet werden kann. Neben anderen Informationen, etwa der Bezeichnung der Darstellung 14', einer Gültigkeit der Information oder weiteren graphischen Darstellungselementen 48 kann die Anzeigeeinrichtung 18 auch zusätzliche Informationen darstellen.
-
7 zeigt ein schematisches Blockschaltbild einer Vorrichtung 70 gemäß einem Ausführungsbeispiel, die beispielsweise die gesicherte Recheneinrichtung 30 aufweist, jedoch alternativ oder zusätzlich eine beliebige andere Recheneinrichtung aufweisen kann, etwa die gesicherte Recheneinrichtung 10, 20 und/oder 40. Die Vorrichtung 70 umfasst eine Applikationsrecheneinrichtung oder Applikationsprozessor 52, die ausgebildet ist, um eine oder mehrere Anwendungen oder Applikationen der Vorrichtung 70 auszuführen oder Berechnungen oder Dienste bereitzustellen. Beispielsweise kann die Applikationsrecheneinrichtung 52 einen ARM-Prozessor umfassen. Die Applikationsrecheneinrichtung 52 kann ausgebildet sein, um Computer-implementierte Instruktionen auszuführen, etwa um eine Computer-basierte Anwendung oder Applikation auszuführen. Die Applikationsrecheneinrichtung 52 kann mit der Schnittstelle 22 verbunden sein und durch Übermittlung des Eingangssignals 24 anzeigen, dass eine Darstellung des Geheimnisses 14 oder eine hiervon abgeleiteten Information erforderlich ist, etwa im Rahmen eines Bezahlvorgangs, eines Verschlüsselungsvorgangs oder einer Überweisung oder dergleichen. Die Computer-basierte Anwendung kann somit zeitweise Zugriff auf das Geheimnis 14 anfordern und zum Anzeigen dieser Erfordernis des Eingangssignals 24 für die gesicherte Recheneinrichtung 30 bereitstellen. Optional kann die Vorrichtung 70 unter Verwendung des Statussignals 42 anzeigen, dass eine Anzeige des Geheimnisses 14 erfolgt.
-
Die gesicherte Recheneinrichtung 30 und die Applikationsrecheneinrichtung 52, die möglicherweise keine eigenen Sicherungsvorkehrungen in dem Umfang der gesicherten Recheneinrichtung 30 aufweist, können gemeinsam zumindest einen Teil einer Recheneinheit 54 der Vorrichtung 70 bilden. Die Recheneinheit 54 kann ausgebildet sein, um die Anzeigeeinrichtung 18 zu steuern, wobei dies beispielsweise wechselweise durch die gesicherte Recheneinrichtung 30 oder die Applikationsrecheneinrichtung 52 erfolgt, möglicherweise unter Verwendung des Schalters 34. Die Verwendung des Schalters 34 kann eine unidirektionale oder bidirektionale Verbindung ermöglichen, so dass auch Eingaben an der Anzeigeeinrichtung 18 über Software-implementierte und/oder Hardware-implementierte Eingabeschnittstellen 56 an die Recheneinheit 54 übermittelt werden können. Hierbei kann es sich beispielsweise um dargestellte Tasten oder Bereiche auf dem Display oder zusätzlich angeordnete Tasten, Knöpfe oder Signaleingänge handeln. Die Anzeigeeinrichtung 18 kann ferner ein Anzeigeelement/Display 58 aufweisen, die über eine Anzeigesteuerung 62 steuerbar sind, wobei die Anzeigesteuerung 62 den Bildschirmspeicher 46 umfassen kann oder zumindest Zugriff hierauf haben kann.
-
Die Vorrichtung 70 ermöglicht eine Ausgestaltung, in der ein Bedarf zur Ausgabe oder Darstellung des Geheimnisses 14 durch die Applikationsrecheneinrichtung 52 erzeugt oder gemeldet werden kann, die Applikationsrecheneinrichtung 52 jedoch keinen direkten Zugriff auf das Geheimnis 14 hat. Anstelle einer Anforderung des Geheimnisses 14 und einer Steuerung des Anzeigeelements 18 zur Darstellung des Geheimnisses durch die Applikationssteuereinrichtung 52 wird eine sichere Ausgestaltung ermöglicht. Denn die Übermittlung des Geheimnisses 14 von der als sicher betrachteten gesicherten Recheneinrichtung an den Applikationsprozessor könnte Schwachstellen dahin gehend aufweisen, dass die Sicherheit der Applikationssteuereinrichtung 52 nicht zu jedem Zeitpunkt gewährleistet werden kann, insbesondere durch wechselnde Programmcodes und/oder Rechte zum Ändern oder Updaten dieser Programmcodes. Die Vorrichtung 70 ist dahin gehend ausgelegt, dass die gesicherte Recheneinrichtung 30 zumindest zeitweise die Steuerung über die Anzeigeeinrichtung 18 übernimmt und das Geheimnis 14 unter Kontrolle der Anzeigeeinrichtung 18 dort darstellt. Dies kann umfassen, vor oder nach der Darstellung den Bildschirmspeicher 46 zu löschen, um zu vermeiden, dass durch die Applikationsrecheneinrichtung 52 auf dem Bildschirmspeicher 46 hinterlegter Start-Code die Darstellung beeinflusst und/oder das Geheimnis 14 nach Rückgabe der Kontrolle an die Applikationsrecheneinrichtung 52 von dort ausgelesen wird.
-
Die gesicherte Recheneinrichtung 30 kann ausgebildet sein, um während eines ersten Zeitintervalls die Steuerung der Anzeigeeinrichtung 18 zu übernehmen und die Steuerung der Anzeigeeinrichtung 18 der Applikationsrecheneinrichtung 52 dabei zu entziehen. Während eines zweiten, hiervon disjunkten Zeitintervalls kann die gesicherte Recheneinrichtung 30 die Steuerung der Anzeigeeinrichtung 18 der Applikationsrecheneinrichtung 52 oder einer anderen Recheneinrichtung übertragen. Dies kann dadurch ermöglicht werden, dass die gesicherte Recheneinrichtung 30 die Steuerung des Schalters 34 bezüglich eines Elements zum eindeutigen Festlegen einer Steuerung der Anzeigeeinrichtung 30 übernimmt.
-
Dadurch, dass die gesicherte Recheneinrichtung 30 die Steuerung des Schalters 34 übernimmt, kann eine Manipulation der Schaltersteuerung durch die Applikationsrecheneinrichtung 52 verhindert oder erschwert werden. Die gesicherte Recheneinrichtung 30 kann ausgebildet sein, um den Schalter 34 so anzusteuern, dass er die Anzeigeeinrichtung 18 mit der Schnittstelle 16 zum Darstellen des Geheimnisses 14 verbindet und zumindest zeitweise zu Zeiten, an denen das Geheimnis 14 nicht darzustellen ist, von der Schnittstelle 16 trennt. Dies ermöglicht einen weiteren Sicherheitsaspekt, denn zu Zeiten zu denen die gesicherte Recheneinrichtung 30 das Geheimnis bspw. nicht in Beantwortung einer Anfrage durch das Eingangssignal 24 darstellt ist auch eine entsprechende schadhafte Ausgabe an das Display verhindert. Das bedeutet, selbst wenn die gesicherte Recheneinrichtung 30 dahingehend manipuliert wird, dass eine Ausgabe mit dem Geheimnis 14 assoziierter Informationen an der Schnittstelle erfolgt, bleibt dies mangels Verbindung zur Anzeigeeinrichtung 18 ohne Effekt.
-
Die Vorrichtung 70 umfasst ein optionales Anzeigeelement 64, das beispielsweise über die Schnittstelle 44 angesprochen werden kann. Die gesicherte Recheneinrichtung 30 kann ausgebildet sein, um während des Zeitintervalls, in dem die gesicherte Recheneinrichtung 30 die Anzeigeeinrichtung 18 steuert, das Statussignal 42 auszugeben, das ausgelegt ist, um das Anzeigeelement 64 anzusteuern. Damit kann das Anzeigeelement 64 anzeigen, dass die gesicherte Recheneinrichtung 30 die Anzeigeeinrichtung 18 gerade ansteuert. Dies kann dem Nutzer anzeigen, dass gerade geheime Informationen dargestellt werden, insbesondere durch eine kausale Verknüpfung der Schalterstellung und des Statussignals 42. Dies ermöglicht es, sogar bei einer kompromittierten gesicherten Recheneinrichtung 30 dem Benutzer eine Information darüber auszugeben, dass seine geheime Informationen gerade sichtbar sind.
-
Die Vorrichtung 70 kann als beliebige Vorrichtung gebildet sein, beispielsweise als mobile oder immobile Vorrichtung. Ausführungsbeispiele beziehen sich auf eine tragbare Vorrichtung, wobei „tragbar“ dahin gehend zu verstehen ist, dass eine Abmessung der Vorrichtung innerhalb eines virtuellen Würfels mit einer Kantenlänge von 1 Meter erhalten werden kann und/oder ein Gewicht von weniger als 10 Kilo, weniger als 5 Kilo oder weniger als 1 Kilo eingerichtet wird. Beispiele für eine tragbare Vorrichtung sind beispielsweise ein tragbarer Computer oder Laptop, ein Tablet-Computer, eine intelligente Uhr (Smart Watch), ein intelligentes Telefon (Smart Phone), eine intelligente Brille (Smart Glass) oder dergleichen.
-
In anderen Worten hat die gesicherten Recheneinrichtung direkten Zugriff auf die Anzeigeeinrichtung 18, das bedeutet, die Anzeige 58 und/oder die Knöpfe 56. Durch die Steuerung des Zugriffs auf die Anzeigeeinrichtung 18 kann die Vorrichtung so ausgebildet sein, dass lediglich die gesicherte Recheneinrichtung Einfluss darauf hat, wer Zugriff auf die Anzeigeeinrichtung 18 hat. Gemäß einem Ausführungsbeispiel teilt die Applikationsrecheneinrichtung 52 der gesicherten Recheneinrichtung 30 mit, dass eine sicherheitsrelevante Aufgabe zu erfüllen ist und übergibt die Kontrolle an die gesicherte Recheneinrichtung, etwa mittels des Eingangssignals 24. Die gesicherte Recheneinrichtung steuert die Vorrichtung 70 dergestalt, dass eine Verbindung zwischen der Applikationsrecheneinrichtung 52 und der Anzeigeeinrichtung 18 unterbrochen ist und selbst die Kontrolle über die Anzeigeeinrichtung 18 übernommen wird. Die gesicherte Recheneinrichtung kann eine Anzeige an der Anzeigeeinrichtung 18 ausgeben und davor und/oder danach einen optionalen Speicher der Anzeigeeinrichtung 18 löschen. Danach kann die gesicherte Recheneinrichtung 30 die Kontrolle über die Anzeigeeinrichtung 18 zurück an die Applikationsrecheneinrichtung 52 geben. Anstelle einer graphischen Darstellung kann eine beliebige andere Schnittstelle verwendet werden, für die eine verschlüsselte Kommunikation zumindest schwerlich implementierbar ist, beispielsweise Lautsprecher oder dergleichen. Optional kann ein Signal an den Nutzer ausgegeben werden, das die gesicherte Recheneinrichtung 30 derzeit die Kontrolle über die Anzeigeeinrichtung 18 ausübt.
-
Unter Bezugnahme auf derartige Ausführungsbeispiele kann beispielsweise eine Smart Watch als virtuelle Geldbörse, etwa für Kryptowährungen verwendet werden. Mittels eines QR-Codes kann ein privater Schlüssel der virtuellen Geldbörse angezeigt werden, was den Austausch einer derartigen Währung ermöglicht. Ausführungsbeispiele sind jedoch nicht hierauf beschränkt, sondern beziehen sich auf beliebige geheimhaltungswürdige Informationen. Beispiele hierfür sind die genannten Kryptowährungen, eine Zufallszahl für das Erzeugen eines Backups, ein Passwort, insbesondere ein Passwort zur einmaligen Verwendung (one-time-Passwort OTP), eine PIN (persönliche Identifikationsnummer), eine PUK (personal unlock key; persönlicher Entsperrschlüssel) oder dergleichen. Die zunehmende Verbreitung von Internetverbindungen für solche Geräte bildet eine Basis für mögliche Angriffe auf derartige geheimhaltungswürdige Informationen. Da die geheime Information manchmal so darzustellen ist, dass sie von einer anderen Vorrichtung oder einem Benutzer erkannt werden kann, ist eine Entschlüsselung vonnöten, so dass eine Verschlüsselung von geheimen Informationen nicht zu jedem Zeitpunkt möglich ist. Selbst unter Betrachtung einer gesicherten Recheneinrichtung als sicher ist die Ausgabe unverschlüsselter geheimhaltungswürdiger Informationen ein Thema, das mit den hierin beschriebenen Ausführungsbeispielen adressiert wird.
-
Ausführungsbeispiele ermöglichen es, die Anzahl gemeinsam genutzter Ressourcen gering zu halten, was das Risiko für Angriffe aus der Ferne (remote attacks) reduziert.
-
Obwohl manche Aspekte im Zusammenhang mit einer Vorrichtung beschrieben wurden, versteht es sich, dass diese Aspekte auch eine Beschreibung des entsprechenden Verfahrens darstellen, sodass ein Block oder ein Bauelement einer Vorrichtung auch als ein entsprechender Verfahrensschritt oder als ein Merkmal eines Verfahrensschrittes zu verstehen ist. Analog dazu stellen Aspekte, die im Zusammenhang mit einem oder als ein Verfahrensschritt beschrieben wurden, auch eine Beschreibung eines entsprechenden Blocks oder Details oder Merkmals einer entsprechenden Vorrichtung dar.
-
Je nach bestimmten Implementierungsanforderungen können Ausführungsbeispiele der Erfindung in Hardware oder in Software implementiert sein. Die Implementierung kann unter Verwendung eines digitalen Speichermediums, beispielsweise einer Floppy-Disk, einer DVD, einer Blu-ray Disc, einer CD, eines ROM, eines PROM, eines EPROM, eines EEPROM oder eines FLASH-Speichers, einer Festplatte oder eines anderen magnetischen oder optischen Speichers durchgeführt werden, auf dem elektronisch lesbare Steuersignale gespeichert sind, die mit einem programmierbaren Computersystem derart zusammenwirken können oder zusammenwirken, dass das jeweilige Verfahren durchgeführt wird und/oder eine Ausgabe entsprechender Signale über die beschriebenen Schnittstellen erfolgt. Deshalb kann das digitale Speichermedium computerlesbar sein.
-
Allgemein können Ausführungsbeispiele der vorliegenden Erfindung als Computerprogrammprodukt mit einem Programmcode implementiert sein, wobei der Programmcode dahin gehend wirksam ist, eines der Verfahren durchzuführen, wenn das Computerprogrammprodukt auf einem Computer abläuft und/oder eine hierin beschriebene Vorrichtung entsprechend anzusteuern. Der Programmcode kann beispielsweise auch auf einem maschinenlesbaren Träger gespeichert sein.
-
Mit anderen Worten ist ein Ausführungsbeispiel des erfindungsgemäßen Verfahrens somit ein Computerprogramm, das einen Programmcode zum Ansteuern einer hierin beschriebenen Vorrichtung aufweist, wenn das Computerprogramm auf einem Computer abläuft. Ein weiteres Ausführungsbeispiel der erfindungsgemäßen Verfahren ist somit ein Datenträger (oder ein digitales Speichermedium oder ein computerlesbares Medium), auf dem das Computerprogramm zum Durchführen eines der hierin beschriebenen Steuerung, d. h., Verfahren aufgezeichnet ist.
-
Ein weiteres Ausführungsbeispiel des erfindungsgemäßen Verfahrens ist somit ein Datenstrom oder eine Sequenz von Signalen, der bzw. die das Computerprogramm zum Durchführen eines der hierin beschriebenen Verfahren darstellt bzw. darstellen. Der Datenstrom oder die Sequenz von Signalen kann bzw. können beispielsweise dahin gehend konfiguriert sein, über eine Datenkommunikationsverbindung, beispielsweise über das Internet, transferiert zu werden.
-
Ein weiteres Ausführungsbeispiel umfasst eine Verarbeitungseinrichtung, beispielsweise einen Computer oder ein programmierbares Logikbauelement, die dahin gehend konfiguriert oder angepasst ist, eines der hierin beschriebenen Verfahren durchzuführen.
-
Ein weiteres Ausführungsbeispiel umfasst einen Computer, auf dem das Computerprogramm zum Durchführen eines der hierin beschriebenen Verfahren installiert ist.
-
Bei manchen Ausführungsbeispielen kann ein programmierbares Logikbauelement (beispielsweise ein feldprogrammierbares Gatterarray, ein FPGA) dazu verwendet werden, manche oder alle Funktionalitäten der hierin beschriebenen Verfahren durchzuführen. Bei manchen Ausführungsbeispielen kann ein feldprogrammierbares Gatterarray mit einem Mikroprozessor zusammenwirken, um eines der hierin beschriebenen Verfahren durchzuführen. Allgemein werden die Verfahren bei einigen Ausführungsbeispielen seitens einer beliebigen Hardwarevorrichtung durchgeführt. Diese kann eine universell einsetzbare Hardware wie ein Computerprozessor (CPU) sein oder für das Verfahren spezifische Hardware, wie beispielsweise ein ASIC.
-
Die oben beschriebenen Ausführungsbeispiele stellen lediglich eine Veranschaulichung der Prinzipien der vorliegenden Erfindung dar. Es versteht sich, dass Modifikationen und Variationen der hierin beschriebenen Anordnungen und Einzelheiten anderen Fachleuten einleuchten werden. Deshalb ist beabsichtigt, dass die Erfindung lediglich durch den Schutzumfang der nachstehenden Patentansprüche und nicht durch die spezifischen Einzelheiten, die anhand der Beschreibung und der Erläuterung der Ausführungsbeispiele hierin präsentiert wurden, beschränkt sei.