-
Ausführungsbeispiele beziehen sich auf Vorrichtungen zur wechselseitigen Authentifizierung, wie es beispielsweise im Bereich der Consumables „Verbrauchsgüter“ einsetzbar ist. Ausführungsbeispiele beziehen sich ferner auf ein Konzept zur Schlüsseldiversifikation für eine sichere Authentifizierung.
-
Nachahmungen sind ein wichtiges Thema in Endverbrauchermärkten mit Verbrauchsgütern. Es besteht ein hohes Risiko, dass Nachahmer-Unternehmen Klone von Geräten, insbesondere Authentifizierungschips, erstellen, die sich genauso verhalten wie ein Originalgerät. In solchen Systemen kann es möglich sein, dass der Erhalt eines geheimen Schlüssels (auf welchem Weg auch immer) es ermöglicht, Klone herzustellen, die auf mehreren verbrauchenden Geräten funktionieren. Ein sogenannten Blacklisting (Ausschließen bestimmter Geräte) ist ein dieser Stelle nicht immer möglich. Wenn Klone auf dem Markt erscheinen, gibt es nur begrenzte Möglichkeiten, diese zu erkennen und deren Nutzung zu verhindern, da sie sich wie das Originalgerät verhalten.
-
Es sind dementsprechend Herangehensweisen wünschenswert, die das Klonen von Verbrauchsgütern erschweren.
-
Gemäß einem Ausführungsbeispiel weist eine Vorrichtung eine Empfangseinrichtung, eine Datenverarbeitungseinrichtung, eine Sendeeinrichtung und eine Authentifizierungseinrichtung auf. Die Empfangseinrichtung ist ausgebildet, um ein Datenpaket von einem Kommunikationspartner zu empfangen. Die Datenverarbeitungseinrichtung ist konfiguriert, um das Datenpaket zu verarbeiten, um einen geheimen Wert zu erhalten. Die Sendeeinrichtung ist ausgebildet, um eine Sende-Nachricht an den Kommunikationspartner zu senden, die eine auf dem geheimen Wert basierend Informationen aufweist. Die Authentifizierungseinrichtung ist ausgebildet, um eine Challenge-Nachricht zu empfangen, und um den geheimen Wert zum Erstellen einer Response-Nachricht zu verwenden. Die Sendeeinrichtung ist ausgebildet, um die Sende-Nachricht so zu erstellen, dass diese die Response-Nachricht aufweist.
-
Gemäß einem weiteren Ausführungsbeispiel umfasst eine Vorrichtung, die ausgebildet ist, um einen Kommunikationspartner zu authentifizieren, einen Datenspeicher, eine Datenschnittstelle, eine Steuerungseinrichtung und eine Authentifizierungseinrichtung. Der Datenspeicher ist ausgebildet, um ein Datenpaket und einen Schlüssel zu speichern. Die Datenschnittstelle ist zum Austausch von Nachrichten mit einem Kommunikationspartner eingerichtet. Die Steuerungseinrichtung ist ausgebildet, um das Datenpaket aus dem Datenspeicher zu lesen und mittels der Datenschnittstelle an den Kommunikationspartner zu senden. Die Authentifizierungseinrichtung ist ausgebildet, um mittels der Datenschnittstelle eine Nachricht von dem Kommunikationspartner zu empfangen, die eine Authentifizierungsinformation aufweist. Die Authentifizierungseinrichtung ist ausgebildet, um unter Verwendung des Schlüssels die Authentifizierungsinformation auf eine Korrespondenz mit dem Datenpaket zu überprüfen, um ein Authentifizierungsergebnis zu erhalten. Die Vorrichtung ist dabei ausgebildet, eine weitere Interaktion mit dem Kommunikationspartner abhängig von dem Authentifizierungsergebnis auszuführen.
-
Ein weiteres Ausführungsbeispiel bezieht sich auf ein System mit jeweils zumindest einer der vorangehenden Vorrichtungen, wobei die Vorrichtungen wechselseitige Kommunikationspartner bilden.
-
Weitere Ausführungsbeispiele beziehen sich auf Verfahren zum Bereitstellen entsprechender Vorrichtungen und auf Verfahren zur Authentifizierung.
-
Weitere vorteilhafte Ausführungsbeispiele sind in den abhängigen Patentansprüchen definiert.
-
Ausführungsbeispiele werden nachfolgend bezugnehmend auf die beiliegenden Zeichnungen erläutert. Es zeigen:
- 1 ein schematisches Blockschaltbild eines Systems gemäß einem Ausführungsbeispiel, das eine beispielshafte Verbrauchsgutanordnung darstellt;
- 2 ein schematisches Blockschaltbild eines Systems gemäß einem Ausführungsbeispiel mit einer authentifizierenden Vorrichtung und einer authentifizierenden Vorrichtung;
- 3 ein schematisches Blockschaltbild eines Systems gemäß einem Ausführungsbeispiel sowie einen Nachrichtenfluss zur Übermittlung eines Datenpakets, einer Challenge-Nachricht und einer Response-Nachricht zur Authentifizierung;
- 4 ein schematisches Blockschaltbild eines Systems gemäß einem Ausführungsbeispiel, das ein Verbrauchsgut und eine verbrauchende Einrichtung aufweist;
- 5 schematisches Ablaufdiagramm eines Verfahrens zum Bereitstellen einer Vorrichtung zu authentifizierenden Vorrichtung;
- 6 ein schematisches Ablaufdiagramm eines Verfahrens zum Bereitstellen einer authentifizierenden Vorrichtung;
- 7 ein schematisches Ablaufdiagramm eines Verfahrens gemäß einem Ausführungsbeispiel, das zum Herstellen einer Mehrzahl von Vorrichtungen implementiert werden kann;
- 8 ein schematisches Ablaufdiagramm eines Verfahrens gemäß einem Ausführungsbeispiel, das beispielsweise von der Vorrichtung aus 5 implementiert werden kann;
- 9 ein schematisches Ablaufdiagramm eines Verfahrens gemäß einem Ausführungsbeispiel, das zum Authentifizieren eines Kommunikationspartners angewendet werden kann;
- 10 ein schematisches Ablaufdiagramm eines Verfahrens gemäß einem Ausführungsbeispiel, das Schritte der Verfahren aus 8 und 9 kombiniert;
- 11 ein schematisches Blockschaltbild einer Vorrichtung gemäß einem Ausführungsbeispiel;
- 12 ein schematisches Blockschaltbild einer Vorrichtung gemäß einem Ausführungsbeispiel, die zusätzliche Sicherungsmechanismen aufweist;
- 13 ein schematisches Blockschaltbild eines Systems, das ein Verbrauchsgut mit einem einmalprogrammierbaren Speicherelement und eine verbrauchende Vorrichtung aufweist, gemäß einem Ausführungsbeispiel;
- 14 ein schematisches Blockschaltbild eines Systems gemäß einem Ausführungsbeispiel, bei dem ein Verbrauchsgut eine Mehrzahl von einmalprogrammierbaren Speicherelementen aufweist;
- 15 ein schematisches Blockschaltbild eines Systems gemäß einem Ausführungsbeispiel, bei dem ein Verbrauchsgut als Druckerpatrone und eine verbrauchende Vorrichtung als Drucker gebildet ist; und
- 16 ein schematisches Flussdiagramm eines weiteren Verfahrens gemäß einem Ausführungsbeispiel.
-
Bevor nachfolgend Ausführungsbeispiele der vorliegenden Erfindung 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 unterschiedlichen Ausführungsbeispielen dargestellte Beschreibung dieser Elemente untereinander austauschbar ist bzw. aufeinander angewendet werden kann.
-
Nachfolgend beschriebene Ausführungsbeispiele werden im Zusammenhang mit einer Vielzahl von Details beschrieben. Ausführungsbeispiele können jedoch auch ohne diese detaillierten Merkmale implementiert werden. Des Weiteren werden Ausführungsbeispiele der Verständlichkeit wegen unter Verwendung von Blockschaltbildern als Ersatz einer Detaildarstellung beschrieben. Ferner können Details und/oder Merkmale einzelner Ausführungsbeispiele ohne Weiteres mit einander kombiniert werden, solange es nicht explizit gegenteilig beschrieben ist.
-
Nachfolgende Ausführungsbeispiele beziehen sich auf Vorrichtungen und Verfahren, die eine Authentifizierung einer Vorrichtung gegenüber einer anderen Vorrichtung ermöglichen. Nachfolgende Ausführungsbeispiele werden dabei beispielhaft im Zusammenhang mit einem Verbrauchsgut beschrieben, das von einem verbrauchenden (oder nutzenden) Gerät authentifiziert wird. Das Verbrauchsgut (engl.: consumable) kann dabei eine Vorrichtung sein, die eine Ressource bereitstellt (und beispielsweise speichert), die bei Betrieb des verbrauchenden Geräts (engl.: host) verbraucht wird. Beispiele für Paare von Verbrauchsgut und verbrauchendem Gerät sind:
- • Druckerpatrone - Drucker
- • Batterie - elektrische Vorrichtung, die von der Batterie versorgt wird
- • Nachfüllpatrone - E-Zigarette
- • Guthabenkarte - Prepaid-Handy
- • Kaffeekapsel - Kaffeemaschine
- • Wasserfilterkartusche - Wasserfilter.
-
Beispielsweise enthält das Verbrauchsgut ein (körperliches) Material, das verbraucht wird, wie bei einer Druckerpatrone, bestimmten Batterietypen oder einer E-Zigaretten-Nachfüllpatrone oder auch einer medizinischen Substanz (z. B. Arznei) für ein medizinisches Gerät in einem entsprechenden Behälter. Das Verbrauchsgut kann in einer anderen Ausführungsform aber auch eine nicht-körperliche Ressource enthalten, die verbraucht wird, wie beispielsweise ein Guthaben, etwa für ein Prepaid-Handy.
-
1 zeigt hierzu ein schematisches Blockschaltbild eines Systems, das eine beispielshafte Verbrauchsgutanordnung 100 darstellt. Das System 100 umfasst eine Vorrichtung 110 gemäß einem Ausführungsbeispiel. Beispielhaft kann die Vorrichtung 110 zumindest einen Teil eines Verbrauchsguts bereitstellen. Das System 100 umfasst ferner eine Vorrichtung 120, die zur Kommunikation mit der Vorrichtung 110 eingerichtet ist, so dass die Vorrichtungen 110 und 120 wechselseitige Kommunikationspartner bilden. Die Vorrichtung 120 kann zumindest einen Teil einer verbrauchenden Vorrichtung bereitstellen. Alternativ oder zusätzlich kann die Vorrichtung 110, das bedeutet ein Verbrauchsgut oder eine damit verbundene Vorrichtung, ein zu authentifizierender Kommunikationspartner sein.
-
Die Vorrichtung 110 kann beispielsweise mit der Vorrichtung 120 körperlich verbunden werden, etwa eingesteckt oder eingebaut oder in sonstiger Weise in Verbindung gebracht werden, etwa über eine drahtgebundene oder drahtlose Kommunikationsverbindung, etwa WiFi®, ZigBee® oder Bluetooth® oder dergleichen. Hierzu kann die Vorrichtung 110 möglicherweise auswechselbar (insbesondere lösbar) mit der Vorrichtung 120 verbunden werden. Im Bereich der Consumables wünscht der Hersteller des verbrauchenden Geräts typischerweise, dass nur Verbrauchsgüter, die von ihm selbst (oder einem Lizenznehmer) hergestellt werden, mit dem verbrauchenden Gerät verwendet werden, so dass es wünschenswert ist, die Vorrichtung 110 seitens der Vorrichtung 120 zu authentifizieren.
-
Die Vorrichtung 110 umfasst hierzu eine Empfangseinrichtung 12, die ausgebildet ist, um ein Datenpaket 14 von einem Kommunikationspartner zu empfangen. Der Kommunikationspartner ist an dieser Stelle beispielsweise die Vorrichtung 120. Die Vorrichtung 110 umfasst ferner eine Datenverarbeitungseinrichtung 16, die konfiguriert ist, um das Datenpaket 14 zu verarbeiten, um einen geheimen Wert 18 zu erhalten. Das bedeutet, aus dem Datenpaket 14 kann mittels der Datenverarbeitung in der Datenverarbeitungseinrichtung 16 ein in dem Datenpaket 14 möglicherweise nicht im Klartext vorliegender Wert abgeleitet werden, der einen geheimen Wert darstellt. Der geheime Wert kann auch als Geheimnis verstanden werden, welches beispielsweise für eine Ausführung eines Verschlüsselungsverfahrens oder eines Signaturverfahrens verwendet werden kann.
-
Die Vorrichtung 110 umfasst eine Authentifizierungseinrichtung 22, die ausgebildet ist, um eine Challenge-Nachricht 24 zu empfangen, beispielsweise von der Vorrichtung 120 oder einer anderen autorisierten Einrichtung. Die Challenge-Nachricht kann als Aufforderung oder Herausforderung bezeichnet werden, im Zuge deren Beantwortung die Vorrichtung 110, insbesondere die Authentifizierungseinrichtung 22, aufgefordert wird, um mittels Bereitstellen einer mit der Challenge-Nachricht 24 assoziierten Response-Nachricht 26 eine Beantwortung der Challenge-Nachricht 24 bereitzustellen. Da der Inhalt der Response-Nachricht 26, also der Antwort, vom Inhalt der Challenge-Nachricht 24 abhängt, kann hier durch eine Authentifizierung der Vorrichtung 110 vorgenommen werden. Die Authentifizierungseinrichtung 22 ist dabei ausgebildet, um die Challenge-Nachricht 24 zu empfangen und die Response-Nachricht 26 unter Verwendung des geheimen Wert 18 zu erstellen.
-
Die Vorrichtung 110 umfasst ferner eine Sendeeinrichtung 28, die ausgebildet ist, um eine Sende-Nachricht 32 an die Vorrichtung 120 zu senden. Die Sende-Nachricht 32 umfasst dabei die Response-Nachricht 26, so dass die Sende-Nachricht 32 eine auf dem geheimen Wert basierende Information aufweist. Es ist dabei möglich, dass die Sende-Nachricht 32 so erzeugt wird, dass diese den geheimen Wert 18 selbst aufweist oder einen beliebigen hieraus abgeleiteten Wert. Die Response-Nachricht 26 kann in der Sende-Nachricht 32 ebenfalls im Klartext vorliegen, kann aber auch in beliebiger Weise verschlüsselt oder codiert werden.
-
Die Vorrichtung 120 kann dabei ausgebildet sein, um die Vorrichtung 110 zu authentifizieren. Hierzu kann die Vorrichtung 120 einen Datenspeicher 34 aufweisen, der ausgebildet ist, um Informationen zu speichern. Beispielsweise sind in dem Datenspeicher 34 zumindest das Datenpaket 14 und ein Schlüssel 36 gespeichert. Der Schlüssel 36 kann dabei eine Bitfolge oder eine Zeichenkette oder einen sonstigen digital zu speichernden Wert aufweisen.
-
Die Vorrichtung 120 umfasst ferner eine Steuerungseinrichtung, die ausgebildet ist, um das Datenpaket 14 aus dem Datenspeicher 34 zu lesen und mittels einer Datenschnittstelle 42 an die Vorrichtung 110 zu senden. Die Datenschnittstelle 42 ist dabei zum Austausch von Nachrichten mit der Vorrichtung 110 eingerichtet und beispielsweise konfiguriert, um die Sende-Nachricht 32 der Vorrichtung 110 zu empfangen. Beispielsweise kann auch die Challenge-Nachricht 24 mit der Datenschnittstelle 42 an die Vorrichtung 110 gesendet werden, etwa indem die Challenge-Nachricht 24 von einer Authentifizierungseinrichtung 44 der Vorrichtung 120 bereitgestellt wird. Die Authentifizierungseinrichtung 44 ist ausgebildet, um mittels der Datenschnittstelle 42 die Sende-Nachricht 32 von der Vorrichtung 110 zu empfangen. Die Sende-Nachricht 32 weist dabei eine Authentifizierungsinformation auf, insbesondere die auf dem geheimen Wert 18 basierende Information bzw. die Response-Nachricht 26. Die Authentifizierungseinrichtung 44 ist ausgebildet, um unter Verwendung des Schlüssels 36 die Authentifizierungsinformation auf eine Korrespondenz mit dem Datenpaket 14 zu überprüfen, um ein Authentifizierungsergebnis 46 zu erhalten. Die Vorrichtung 120 ist ausgebildet, um eine weitere Interaktion mit der Vorrichtung 110 abhängig von dem Authentifizierungsergebnis 46 auszuführen.
-
Innerhalb des Systems 100 ist es somit möglich, dass die Vorrichtung 120 die Vorrichtung 110 authentifiziert, ohne hierzu Kenntnisse über den geheimen Wert 18 in unverschlüsselter Form vorweisen zu müssen. Dies ermöglicht eine Vermeidung eines Abgriffs geheimer Werte aus Vorrichtungen 120, insbesondere dahin gehend, dass es vermieden wird, einen dadurch abgegriffenen geheimen Wert zum Erstellen von Klonen zu verwenden, die auch in anderen Vorrichtungen 120 betrieben werden könnten.
-
Anders als in Systemen, in denen ein verbrauchendes Gerät einen öffentlichen Schlüssel (Public Key - PK) und ein Zertifikat von dem Verbrauchsgut empfängt und die Authentizität des öffentlichen Schlüssels überprüft, wobei hierzu das Geheimnis in dem Verbrauchsgut hinterlegt ist, um in dem Verbrauchsgut eine Antwort auf eine vom Host erstellte Aufforderung (Challenge) generieren zu können, welche dann im Host unter Verwendung des öffentlichen Schlüssels erneut verifiziert wird, ermöglichen es Ausführungsbeispiele, dass auch in der Vorrichtung 110 auf eine Speicherung des geheimen Werts 18 verzichtet werden kann. Da der geheime Wert 18 aus dem empfangenen Datenpaket 14 abgeleitet wird, kann die Response-Nachricht 26 direkt aus dem empfangenen Datenpaket 14 abgeleitet werden, was vielfältige Möglichkeiten bietet. Zum einen kann auf die Speicherung des geheimen Werts 18 in der Vorrichtung 110 verzichtet werden, was die Zeitpunkte, zu denen ein Angreifer auf den geheimen Wert 18 zugreifen könnte, deutlich reduziert. Darüber hinaus ist es möglich, den geheimen Wert 18 bezüglich der Vorrichtung 120 vorrichtungsindividuell auszugestalten oder für eine Gruppe von Vorrichtungen 120 gruppenindividuell auszugestalten, während er für andere Vorrichtungen oder Gruppen hiervon verschieden ist. Diese ermöglicht es, dass ein dennoch von einem Angreifer abgefangener geheimer Wert 14 lediglich für die individuelle Vorrichtung 120 bzw. die Gruppe von Vorrichtungen gültig ist. Für den Hersteller eines Klons ist es jedoch schwierig, bei der Herstellung abzuschätzen, in welcher späteren Vorrichtung dieser Klon verwendet werden soll. Dies erschwert die Verwertbarkeit des Klons.
-
In anderen Worten schaffen die Ausführungsbeispiele ein System, bei dem ein Host die Authentizität einer Vorrichtung überprüft, um die Nachahmung von Verbrauchsgütern (z. B. Druckerpatronen) zu verhindern. Einige Ausführungsbeispiele kommen ohne einen nicht-flüchtiger Speicher (non-volatile memory - NVM) in der Vorrichtung aus, während trotzdem eine ausreichende Sicherheitsebene beibehalten wird. Außerdem kann das System zur verzögerten Merkmalsaktivierung verwendet werden, sowie zur Erhöhung der Sicherheitsebene einer Authentifizierungsvorrichtung bei geringen Kosten. So ermöglichen Ausführungsbeispiele die Herstellung kosteneffektiver Authentifizierungsvorrichtungen.
-
2 zeigt ein schematisches Blockschaltbild eines Systems 200 gemäß einem Ausführungsbeispiel, bei dem die Kommunikationspartner von einer in Übereinstimmung mit der Vorrichtung 120 gebildeten Vorrichtung 210 und einer Vorrichtung 220, die in Übereinstimmung mit den Ausführungen zur Vorrichtung 120 gebildet ist, implementiert werden. Die Vorrichtung 210 ist beispielhaft eine Druckerpatrone, während die Vorrichtung 220 beispielhaft ein Drucker ist, so dass das System 200 eine Verbrauchsgutanordnung mit einem Verbrauchsgut und einem verbrauchenden Gerät bereitstellt. Zur verbesserten Übersichtlichkeit sind nicht alle derer in 1 erläuterten Elemente auch in 2 dargestellt.
-
In dem Datenspeicher 34 sind beispielsweise der Schlüssel 36 sowie das Datenpaket 14 gespeichert. Gemäß einem Ausführungsbeispiel ist das Datenpaket 14 ein verschlüsseltes Datenpaket (engl.: Encrypted Data Packet - EDP), wobei dies nicht zwingend erforderlich ist. Hierzu kann die Datenverarbeitungseinrichtung 16 zur Entschlüsselung des verschlüsselten Datenpakets 14 eingerichtet sein, also zur Decodierung (DEC). Der geheime Wert 18 kann insofern ein geheimer Schlüssel (engl.: secret key - sk) sein, der mit dem öffentlichen Schlüssel (engl.: public key - pk) assoziiert ist. Die Authentifizierungseinrichtung 22 kann ausgebildet sein, um in Beantwortung der Challenge-Nachricht 24 und unter Verwendung des geheimen Schlüssels sk die Response-Nachricht zu erzeugen und um die Response-Nachricht an die Vorrichtung 220 zu übermitteln, um dort die Echtheit der Vorrichtung 210 überprüfen zu lassen, das bedeutet, eine Authentifizierung zu ermöglichen. Zur Übermittlung kann die Sende-Nachricht 32 verwendet werden, etwa indem eine die Response-Nachricht angebende Information eingebettet wird.
-
Die in dem Datenspeicher 34 der Vorrichtung 220 gespeicherten Informationen können dabei ohne besondere Sicherheitsmaßnahmen gespeichert werden, da ohne Kenntnis der konkreten Berechnungsweisen aus den Informationen 14 und 36 der geheime Wert 18 nicht herleitbar ist, so dass ein Abgriff der in dem Datenspeicher 34 gespeicherten Informationen nicht zwingend ein Sicherheitsrisiko darstellt.
-
Mit anderen Worten beruhen Ausführungsbeispiele darauf, dass anstelle von Verbrauchsgut-spezifischen Schlüsseln mit Schlüsseln gearbeitet wird, die für den Host (verbrauchendes Gerät) spezifisch sind. Der geheime Wert 18/sk ist beispielsweise in verschlüsselter Form in einem Datenpaket (EDP) gespeichert, wobei gilt, dass EDP ist gleich ENC(sk), das bedeutet, eine Verschlüsselung des geheimen Werts 18 erfolgt. Die Vorrichtung 110 bzw. 120 kann den geheimen Wert durch Entschlüsselung von EDP erhalten und dann für die Authentifizierung verwenden. Dies ermöglicht, dass die Vorrichtung 110 bzw. 120 nicht zwingend einen umprogrammierbaren Speicher, etwa einen NVM (Non-Volatile Memory, nicht-flüchtiger Speicher) benötigt. Hierunter wird verstanden, dass die Vorrichtung 110 und/oder 120 zwar Speicher aufweisen kann, die auch in nicht-flüchtiger Weise Informationen speichern können, diese Speicher so ausgestaltet sind, dass sie während eines auf eine Auslieferung folgenden Betriebs stets auf den Auslieferungszustand zurückfallen und nicht dauerhaft umprogrammiert werden können. Das bedeutet, es können zwar temporär Informationen in dem Speicher abgelegt werden, eine dauerhafte Veränderung des Speicherinhalts ist jedoch nicht notwendig oder möglich. So kann beispielsweise im Falle eines Neustarts oder der temporären Entfernung von Energieversorgungsquellen stets wieder auf den Auslieferungszustand mit den zugehörigen dauerhaft gespeicherten Informationen zurückgefallen werden. Das bedeutet, dass die Vorrichtung 110 und/oder 210 ausgebildet sein kann, um den geheimen Wert 18 ausschließlich in einem flüchtigen Datenspeicher zu speichern. Hierzu kann die Vorrichtung möglicherweise keinen nicht-flüchtigen Speicher im Sinne von beschreibbaren Speicherzellen aufweisen. Alternativ können Speicherzellen des nicht-flüchtigen Speichers permanentprogrammiert sein, um nach der Fertigung unveränderlich zu sein.
-
Ferner ermöglichen es Ausführungsbeispiele, dass die Sicherheitsvorkehrungen in der Decodierfunktion der Vorrichtung 110/210, etwa der Datenverarbeitungseinrichtung 16, konzentriert werden können, die durch entsprechende Maßnahmen zum Vermeiden eines Reverse-Engineering (Nachkonstruktion) geschützt werden kann. Die Vorrichtung kann so implementiert sein, dass ein eventueller Angreifer das Ergebnis der Decodierung nicht erkennen kann. Physikalische Angriffe auf die Authentifizierung können so zumindest größtenteils nutzlos werden, da ein Angreifer selbst im Erfolgsfall lediglich den Schlüssel sk (Geheimnis 18) eines Druckers erhält, was keine Herstellung universell einsetzbarer Klone ermöglicht.
-
Die Datenverarbeitungseinrichtung 16 kann ausgebildet sein, um zum Erhalt des geheimen Werts eine Verschlüsselungs- und/oder Entschlüsselungsfunktion unter Verwendung eines geheimen Schlüssels auszuführen. So kann beispielsweise ein verschlüsseltes Datenpaket entschlüsselt werden, so dass das Ergebnis der Entschlüsselung wieder der geheime Wert ist. Alternativ oder zusätzlich kann die Datenverarbeitungseinrichtung 16 ausgebildet sein, um eine geheime schwer vorhersagbare Funktion auszuführen, um den geheimen Wert 18 zu erhalten. Als schwer vorhersagbare Funktion kann eine Funktion verstanden werden, die gemäß Ausführungsformen unbekannt ist und/oder den zumindest einen Eingabewert in nicht-trivialer Weise ggf. für einen Angreifer unvorhersehbar ändern. Zu solchen Funktionen gehört bspw. eine geheime Funktion, wie bspw. eine Hash-Funktion. So kann beispielsweise das Datenpaket 14 einen Startwert oder Grundwert als Eingangswert für eine Hashfunktion bereitstellen.
-
Ausführungsbeispiele sehen dabei ferner vor, dass die Datenverarbeitungseinrichtung obfuskiert implementiert ist. Das bedeutet, die Datenverarbeitungseinrichtung 16 kann ausgebildet sein, um bei Implementierung der geheimen Hashfunktion selbige obfuskiert auszuführen, um den geheimen Wert zu erhalten. Im Falle der Verschlüsselungs- und/oder Entschlüsselungsfunktion kann die Datenverarbeitungseinrichtung 16 ausgebildet sein, um diese unter Verwendung des geheimen Schlüssels und obfusktiert auszuführen, um den geheimen Wert zu erhalten. Hierunter wird verstanden, dass die Abfolge von Schritten in der Implementierung der Funktion derart verschleiert wird, dass ein Reverse Engineering zumindest erschwert ist. Eine derartige Verschleierung kann sowohl in Hardware als auch in Software implementiert werden.
-
Ausführungsbeispiele sehen vor, dass der geheime Wert 18 einen Startwert (engl.: seed) zur Generierung eines privaten Schlüssels (sk) eines Authentifizierungsverfahrens umfasst. Alternativ oder zusätzlich kann der geheime Wert 18 ein Nonce umfassen, d. h., einen Wert, der für bestimmte Operationen und/oder für eine bestimmte Zeitdauer Gültigkeit aufweist. Diese Werte können zwar verschlüsselt übertragen werden, Ausführungsbeispiele sehen jedoch auch eine unverschlüsselte Übertagung vor, da eine Verarbeitung (die Ausgestaltung der verarbeitenden Funktion) des geheimen Werts 18 ebenfalls geheim sein kann, so dass ein Abgriff des geheimen Werts 18 problemlos sein kann.
-
Die Vorrichtung 110 und/oder 210 kann ausgebildet sein, um den privaten Schlüssel zum Erstellen zumindest eines Teils der Sende-Nachricht, insbesondere der Response-Nachricht 26, zu verwenden. Als Authentifizierungsverfahren sehen Ausführungsbeispiele mehrere mögliche Implementierungen vor, darunter ein asymmetrisches Verschlüsselungsverfahren, wobei der einem privaten/geheimen Schlüssel ein öffentlicher Schlüssel assoziiert ist, wie es beispielsweise im Zusammenhang mit der 2 beschrieben ist. Alternativ oder zusätzlich kann auch ein Signaturverfahren verwendet werden, um das Authentifizierungsverfahren zu implementieren.
-
Wie es vorangehend bereits angedeutet wurde, kann der Schlüssel 36 ein öffentlicher Schlüssel eines Authentifizierungsverfahrens umfassen. Dieser öffentliche Schlüssel kann mit dem geheimen Wert 18 assoziiert sein, beispielsweise indem der geheime Wert 18 ein korrespondierender oder aussoziierter privater Schlüssel ist. Der Host kann ausgebildet sein, um die Authentifizierungsinformation, das bedeutet, den Inhalt der Response-Nachricht 26, in Unkenntnis des privaten Schlüssels des Authentifizierungsverfahrens zu überprüfen. So ist es beispielsweise möglich, dass die Authentifizierungseinrichtung 44 der Vorrichtung 120 oder 220 ausgebildet ist, um unter Verwendung der Datenschnittstelle 42 die Challenge-Nachricht 24 an die Vorrichtung 110/210 zu senden und, um die Sende-Nachricht 32 als zur Challenge-Nachricht 24 gehörige Response-Nachricht zu empfangen, die unter Verwendung eines privaten Schlüssels des Authentifizierungsverfahrens erzeugt wurde, wobei dieser private Schlüssel dem Host selbst unbekannt ist. Der private Schlüssel kann unter Verwendung des geheimen Werts erzeugt sein, was auch beinhaltet, dass der private Schlüssel der geheime Wert ist, in beiden Fällen wird der private Schlüssel aus dem Datenpaket 14 durch Weiterverarbeitung in der Datenverarbeitungseinrichtung 16 erhalten.
-
In anderen Worten kann bei einem Ausführungsbeispiel der Host durch eine Host-ID (HID) identifiziert werden. Der Host kann während der Herstellung oder Personalisierung des Host-Chips oder über ein Software-Update oder über einen Online-interaktiven Kanal zu einem Server oder über ein sicheres Hardware-Token mit einem verschlüsselten Datenpaket EDPHID ausgestattet werden. Das EDPHID ist bspw. mit einem Schlüssel k verschlüsselt und beinhaltet einen geheimen Wert v, so dass Folgendes gilt: EDPHID = Enck (v). Ein Host ist außerdem ausgestattet mit einem öffentlichen Schlüssel pk, der einem EDPHID entspricht, wobei hier pk = GEN_PKs (v) für eine Schlüsselerzeugungsfunktion GEN und den Wert v für eine geeignete kryptographische Funktion s zutrifft. Es wird jedoch darauf hingewiesen, dass der Host selbst den Wert von v nicht kennt, da nur pk und EDPHID in dem Host gespeichert sind. In den meisten praktischen Fällen hat jeder Host ein individuelles EDPHID und einen individuellen pk, diese Werte können jedoch manchmal auch gemeinschaftlich unter (Gruppen von) Hosts verwendet werden und Hosts könnten mehrere Paare von EDPHID und pk besitzen.
-
Um die Authentizität einer Vorrichtung zu überprüfen, die bspw. an einem Verbrauchsgut angebracht ist, verwendet der Host eine geeignete Schnittstelle (z. B. I2C), die eine Kommunikation mit einer Host-Vorrichtung ermöglicht. Dann sendet der Host das EDPHID an die Vorrichtung. Die Vorrichtung verwendet bspw. einen Entschlüsselungsschaltungsaufbau Deck, für den Folgendes gilt: v = Deck(Enck(v)), und kann so unter Verwendung des Schlüssels k den Wert v = DeCk(EDPHID) erhalten. Außerdem implementiert die Vorrichtung die GEN_SKs(v)-Funktion, um einen geheimen Schlüssel sk = GEN_SKs(v) zu erhalten. GEN_SKs ist die Komplementärfunktion zu GEN_PKs und ermöglicht die Berechnung eines geheimen Schlüssels (SK), zu welchem unter Verwendung eines geeigneten Verfahrens ein öffentlichen Schlüssels (PK) für eine Öffentlicher-Schlüssel-Identifizierung oder ein Digitalsignaturschema s erzeugt werden kann. Hier wird beispielsweise Folgendes angenommen: s=ECDSA-NIST-P256-SHA256 (Elliptical Curve Digital Signature Algorithm (ECDSA - Elliptische-Kurve-Digitalsignaturalgorithmus) des National Institute of Standards and Technology (NIST), standardisierte Primkurve secp256r1 unter Verwendung eines Secure Hash Algorithm (SCA - sicherer Hash-Algorithmus) 2 mit 256-Bit-Ausgabe, wie beschrieben ist in FIPS 186-4 - Digital Signature Standard (DSS - Digitalsignaturstandard). Für diesen Fall könnte sk = GEN_SKs(v) einfach v ausgeben und diesen als geheimen Skalar und so als geheimen Schlüssel behandeln. Dies ist von Vorteil, da die GEN_SKs(v)-Funktion auf der Vorrichtung implementiert ist und auf Leistung und Schaltungsgröße optimiert sein sollte. GEN_PKs kann die Schlüsselerzeugung des ECDSA-Algorithmus unter Verwendung von sk = dA als geheimem Schlüssel durchführen, um QA = dA ×G zu berechnen. Es wird darauf hingewiesen, dass GEN_PKs nicht auf der Vorrichtung oder dem Host ausgeführt wird und nur das Ergebnis pk in einem Host gespeichert ist.
-
Nachdem die Vorrichtung das EDPHID verarbeitet hat, erzeugt der Host eine Challenge (Aufforderung) unter Verwendung der c = CHALLS-Funktion für das Schema s. Für s=ECDSA-NIST-P256-SHA256 ist diese Challenge c lediglich ein zufällig ausgewählter Wert mit einer Länge von z.B. 128 bis 256 Bits. Diese Challenge wird an die Vorrichtung gesendet, die eine r = AUTHs(c, sk)-Funktion ausführt, die als Eingabe die Challenge c und den geheimen Schlüssel sk verwendet und dann eine Response (Antwort) r zurückgibt. Für s= ECDSA-NIST-P256-SHA256 ist dies die ECDSA-Signaturerzeugungsfunktion und die Response ist eine Signatur über den Zufallswert c, der durch den Host bereitgestellt wird. Die Response r wird dann an den Host übertragen und der Host führt die VERs(r, pk)-Funktion aus, um zu verifizieren, ob die Response gültig ist. Eine Response kann mit dem öffentlichen Schlüssel pk überprüft werden und ist gültig, wenn die Vorrichtung Kenntnis des geheimen Schlüssels sk nachgewiesen hat (ohne sk zu enthüllen). In dem Fall von s=ECDSA-NIST-P256-SHA256 führt die VERs-Funktion die Signaturverifizierung durch und überprüft, dass die Signatur r über die Challenge c mit dem öffentlichen Schlüssel pk verifiziert werden kann. Wenn die Verifizierung erfolgreich ist, wird die Vorrichtung als authentisch betrachtet, und wenn die Verifizierung fehlschlägt, wird die Vorrichtung als nicht authentisch behandelt. Der Host könnte dann die Verwendung eines Verbrauchsguts stoppen oder könnte seine Funktion stoppen, da eine nicht authentische und so wahrscheinlich gefährliche Komponente in das System eingeführt wurde.
-
3 zeigt ein schematisches Blockschaltbild eines Systems 300 gemäß einem Ausführungsbeispiel, bei dem ein Nachrichtenfluss zur Übermittlung des Datenpakets 14, der Challenge-Nachricht 24 und der Response-Nachricht 26 zur Authentifizierung zwischen einer Vorrichtung 310 (device) und einer Vorrichtung 320 (host) ausgeführt werden kann. Die Vorrichtung 310 kann dabei in Übereinstimmung mit der Vorrichtung 110 und/oder 210 ausgeführt sein, während die Vorrichtung 320 in Übereinstimmung mit der Vorrichtung 120 und/oder 220 ausgebildet sein kann.
-
4 zeigt ein schematisches Blockschaltbild eines Systems 400 gemäß einem Ausführungsbeispiel, das beispielsweise ein Verbrauchsgut 410 und eine verbrauchende Einrichtung 420 aufweist. Das Verbrauchsgut 410 kann dabei beispielsweise mit der Vorrichtung 310 gekoppelt sein, während die Vorrichtung 320 mit der verbrauchenden Vorrichtung 420 gekoppelt sein kann oder einen Teil hiervon bilden kann, so dass die von dem Verbrauchsgut 410 gespeicherte Ressource sowie deren Verbrauch seitens der Vorrichtung 420 authentifiziert werden kann. So kann es sich bei dem System 400 um eine beliebige Verbrauchsgutanordnung handeln, beispielsweise als Batterie 410, die einen elektrischen Verbraucher 420, etwa in Automobilen, mit elektrischem Strom versorgt.
-
In anderen Worten können hierin beschriebene Systeme zur Vorrichtungsauthentifizierung verwendet werden und das einmalige Merkmal bereitstellen, dass eine Vorrichtung keinen NVM benötigt, um eine Schlüsseldiversifikation zu erzielen. Beispielsweise ist ein privater Schlüssel in geschützter Weise in einer Vorrichtung in einem NVM gespeichert und der Host kann auf einen öffentlichen Schlüssel und ein Zertifikat zugreifen, um ein Authentifizierungsprotokoll auf Basis von Challenge und Response durchzuführen. Ein NVM könnte für eine Vorrichtung verbietend hohe zusätzliche Kosten bedeuten. Andererseits ist es wünschenswert, unterschiedliche Schlüssel für den Öffentlicher-Schlüssel-Authentifizierungsmechanismus zu verwenden, um zu verhindern, dass ein Angreifer Klone unter Verwendung extrahierter geheimer Schlüssel baut. Ferner wird keine Sicherheitssteuerung auf Host-Seite benötigt, da der Host keine Geheimnisse verarbeitet. Dies wäre der Fall, wenn ein symmetrisches Challenge-Response-Schema zur Authentifizierung verwendet würde, siehe bspw. 2.
-
Mit der Grundidee eines Speicherns eines Host-individuellen öffentlichen Schlüssels (pk) und des Host-individuellen verschlüsselten geheimen Schlüssels EDPHID in dem Host kann dieses Problem überwunden werden. Unter der Annahme, dass ein Angreifer nicht in der Lage ist, die Deck-Funktionalität zu durchbrechen, ist es nicht wirtschaftlich machbar, geklonte Vorrichtungen zu erzeugen. In diesem Sinn bedeutet Durchbrechen ein Reverse Engineering des Algorithmus Dec und eine Extrahierung des geheimen Schlüssels k (es wird angemerkt, dass der Algorithmus und der Schlüssel in einen Schaltungsblock verschmolzen werden können). Deck kann wie folgt geschützt werden:
- Es werden deshalb Gegenmaßnahmen gegen das Klonen der DECk Schaltung geschaffen, beispielsweise Maßnahmen, die das Risiko erhöhen, dass bei einer Nachahmung der Schaltung die nachgeahmte (geklonte) Schaltung fehlerhaft ist, d.h. Klonfehler auftreten.
-
Dazu können Techniken eingesetzt werden, die das Klonen digitaler Implementierungen möglichst fehleranfällig machen. Techniken sehen die Integration von Schaltungsblöcken vor, die theoretisch oder nur mit hohem Aufwand geklont werden können. Ein Beispiel sind Spezialzellen mit besonderen Eigenschaften zum Erschweren der Analyse oder Physical Unclonable Functions (PUFs - physisch nicht klonbare Funktionen).
-
Die Deck-Schaltung kann auch unter Verwendung standardisierter Blockchiffrierungen realisiert werden, wie Advanced Encryption Standard (AES) oder Data Encryption Standard (DES), oder von Varianten derartiger Algorithmen (unterschiedliche S-Boxen, Rundenanzahl, unterschiedliche Konstanten). Sie könnte außerdem Stromchiffrierungen verwenden, wie z. B. Trivium, oder sogenannte Schwamm (engl. Sponge)-basierte Konstrukte, wie SHA3/Keyak, oder Varianten derartiger Algorithmen. Eine Vorrichtung könnte auch Varianten oder unterschiedliche Instanziierungen von Deck implementieren (z. B. für unterschiedliche Marktsegmente).
-
Selbst wenn ein Angreifer einen Wert v oder einen geheimen Schlüssel sk erhält und mit diesen Werten einen Klon erzeugt, wird dieser Klon nur mit einem spezifischen Host funktionieren. Der Grund hierfür besteht darin, dass jeder Host nur einen Host-individuellen öffentlichen Schlüssel akzeptiert. Ein geklonter Vorrichtungsklon würde mit einem anderen Host nicht funktionieren, da der Host ein unterschiedliches EDP und pk besitzt. Ohne vollständige Extrahierung/Reverse Engineering des Deck-Schaltungsaufbaus ist der Angreifer nicht in der Lage, universell funktionierende Klone herzustellen. Es wird angemerkt, dass die Beschreibung der Schaltung von Deck und Enck nicht auf dem Host vorhanden ist. Der Host ist nur mit einem EDPHID ausgestattet, die Verschlüsselung wird jedoch in einer geschützten Umgebung durchgeführt. Folglich ist es möglich, Anstrengungen für den physischen Schutz von sk = GEN_SKs(v) und AUTHs(c, sk) einzusparen. Wenn die Anstrengungen, diese Werte zu erhalten, hoch genug sind (z. B. ein Entpacken der Vorrichtung erforderlich ist), wird nur ein kleiner Bruchteil von Eigentümern des Hosts geklonte Vorrichtungen kaufen und derartige Klone selbst bereitstellen. Außerdem werden nachgeahmte Waren immer identifiziert und der Eigentümer des Hosts wird bemerken, dass die Vorrichtung nicht authentisch ist.
-
5 zeigt schematisches Ablaufdiagramm eines Verfahrens zum Bereitstellen einer Vorrichtung, etwa der Vorrichtung 110, 210 oder 310. Ein Schritt 510 umfasst ein Anordnen in einer Empfangseinrichtung zum Empfangen eines Datenpakets von einem Kommunikationspartner. Ein Schritt 520 umfasst ein Anordnen einer Datenverarbeitungseinrichtung, so dass diese konfiguriert ist, um das Datenpaket zu verarbeiten, um einen geheimen Wert zu erhalten. Ein Schritt 530 umfasst ein Anordnen einer Sendeeinrichtung, so dass diese ausgebildet ist, um eine Sende-Nachricht an den Kommunikationspartner zu senden, die eine auf dem geheimen Wert basierende Information aufweist. Ein Schritt 540 umfasst ein Anordnen einer Authentifizierungseinrichtung, so dass diese ausgebildet ist, um eine Challenge-Nachricht zu empfangen, um den geheimen Wert zum Erstellen einer Response-Nachricht zu verwenden, so dass die Sendeeinrichtung ausgebildet ist, um die Sende-Nachricht so zu erstellen, dass diese die Response-Nachricht aufweist.
-
6 zeigt ein schematisches Ablaufdiagramm eines Verfahrens 600 zum Bereitstellen einer Vorrichtung, etwa der Vorrichtung 120, 220 oder 320. Ein Schritt 610 umfasst ein Anordnen eines Datenspeichers, so dass diese eingerichtet ist, um ein Datenpaket und einen Schlüssel zu speichern. Ein Schritt 620 umfasst ein Anordnen einer Datenschnittstelle zum Austausch von Nachrichten mit einem Kommunikationspartner. Ein Schritt 630 umfasst ein Anordnen einer Steuerungseinrichtung, so dass diese ausgebildet ist, um das Datenpaket aus dem Datenspeicher zu lesen und mittels der Datenschnittstelle an den Kommunikationspartner zu senden. Ein Schritt 640 umfasst ein Anordnen einer Authentifizierungseinrichtung, so dass diese ausgebildet ist, um mittels der Datenschnittstelle eine Nachricht von dem Kommunikationspartner zu empfangen, die eine Authentifizierungsinformation aufweist. Ferner wird der Schritt so ausgeführt, dass die Authentifizierungseinrichtung ausgebildet ist, um unter Verwendung des Schlüssels die Authentifizierungsinformation auf eine Gültigkeit in Bezugnahme auf das Datenpaket zu überprüfen, um ein Authentifizierungsergebnis zu erhalten, so dass die Vorrichtung ausgebildet ist, um den Kommunikationspartner zu authentifizieren und eine weitere Interaktion mit dem Kommunikationspartner abhängig von dem Authentifizierungsergebnis auszuführen.
-
Das Verfahren 600 kann dabei mehrfach ausgeführt werden, um eine Mehrzahl von Vorrichtungen bereitzustellen. Ein derart mehrfach ausgeführtes Verfahren kann dabei ferner so ausgeführt werden, dass ein vorrichtungsindividuelles oder gruppenindividuelles Hinterlegen eines der Gruppe bzw. Vorrichtung zugehörigen Datenpaketes und eines dem Datenpaket assoziierten Schlüssel erfolgt. Der Schlüssel kann dabei beispielsweise insofern dem Datenpaket assoziiert sein, als auch dem Datenpaket ein dem Schlüssel zugehöriger weiterer Schlüssel erzeugt wird. Es kann somit eingerichtet werden, dass die Datenpakete sowie der zugehörige Schlüssel zwischen Vorrichtungen bzw. Gruppen unterschiedlich sind, um selbst bei erfolgreichem Erzeugen eines Klons eine Verwertbarkeit dieser Klone zu erschweren.
-
7 zeigt ein schematisches Ablaufdiagramm eines Verfahrens 700, das zum Herstellen einer Mehrzahl von Vorrichtungen implementiert werden kann. In einem Schritt 710 erfolgt ein Einrichten der Mehrzahl von Vorrichtungen so, dass jede der Mehrzahl von Vorrichtungen ein Datenpaket und einen assoziierten Schlüssel aufweist und eingerichtet ist, um eine Authentifizierung eines Kommunikationspartners unter Übermittlung des Datenpakets an den Kommunikationspartner, sowie möglicherweise einer Challenge-Nachricht, und unter Überprüfung einer von dem Kommunikationspartner erhaltenen Authentifizierungsinformation auf eine Korrespondenz mit dem Datenpaket unter Verwendung des Schlüssels auszuführen. Das Verfahren wird dabei so ausgeführt, dass in der Mehrzahl von Vorrichtungen vorrichtungsindividuell oder gruppenindividuell verschiedene Datenpakete und Schlüssel gespeichert sind.
-
Das Verfahren 700 kann dabei so ausgeführt werden, dass ein unberechtigter Abgriff eines in dem Datenpaket enthaltenen geheimen Werts, bzw. ein aus dem Datenpaket abgeleiteter geheimer Wert und ein Transfer des geheimen Werts auf einen Klon des Kommunikationspartners höchstens für die Vorrichtung oder die korrespondierende Gruppe von Vorrichtungen zu einem positiven Authentifizierungsergebnis bei Verwenden des Klons führt. Dies kann dadurch erreicht werden, dass die Challenge-Nachricht Bezug nimmt auf den geheimen Wert, so dass andere Vorrichtungen bzw. Gruppen eine andere Authentifizierungsnachricht versenden und somit die Verwendung eines anderen geheimen Werts erwarten, was durch den abgegriffenen geheimen Wert nicht erfüllt werden kann.
-
8 zeigt ein schematisches Ablaufdiagramm eines Verfahrens 800 gemäß einem Ausführungsbeispiel, das beispielsweise von einer hierin beschriebenen Vorrichtung, etwa der Vorrichtung 110, 210 oder 310 ausgeführt werden kann, aber auch unabhängig von diesen Vorrichtungen implementiert werden kann. Ein Schritt 810 umfasst ein Empfangen eines Datenpakets von einem Kommunikationspartner. Ein Schritt 820 umfasst ein Empfangen einer Challenge-Nachricht. Ein Schritt 830 umfasst ein Verarbeiten des Datenpakets, um einen geheimen Wert zu erhalten. Ein Schritt 840 umfasst ein Verwenden des geheimen Werts zum Erstellen einer Response-Nachricht, die eine Antwort auf die Challenge-Nachricht darstellen kann. Ein Schritt 850 umfasst ein Senden einer Sende-Nachricht an den Kommunikationspartner, so dass die Sende-Nachricht eine auf dem geheimen Wert basierende Information aufweist.
-
9 zeigt ein schematisches Ablaufdiagramm eines Verfahrens 900 gemäß einem Ausführungsbeispiel, das zum Authentifizieren eines Kommunikationspartners angewendet werden kann und beispielhaft von der Vorrichtung 120, 220 oder 320 implementiert werden kann, aber auch unabhängig hiervon ausgeführt werden kann. Ein Schritt 910 umfasst ein Lesen eines Datenpakets aus einem Datenspeicher. Ein Schritt 920 umfasst ein Lesen eines Schlüssels aus dem Datenspeicher. Ein Schritt 930 umfasst ein Senden des Datenpakets an den Kommunikationspartner. Ein Schritt 940 umfasst ein Empfangen einer Nachricht von dem Kommunikationspartner, wobei die Nachricht eine Authentifizierungsinformation aufweist. Ein Schritt 950 umfasst ein Überprüfen der Authentifizierungsinformation unter Verwendung des Schlüssels, um ein Authentifizierungsergebnis zu erhalten. Ein Schritt 960 umfasst ein Ausführen einer weiteren Interaktion mit dem Kommunikationspartner abhängig von dem Authentifizierungsergebnis.
-
10 zeigt ein schematisches Ablaufdiagramm eines Verfahrens 1000 gemäß einem Ausführungsbeispiel. Das Verfahren 1000 kann die Schritte 910 und 920 umfassen. Ferner kann in einem Schritt 1030 ein Übermitteln des in dem Schritt 910 gelesenen Datenpakets von einer Vorrichtung an einen Kommunikationspartner erfolgen, etwa an die zu authentifizierende Vorrichtung. Dieses Datenpaket kann beispielsweise in dem Schritt 810 von der Vorrichtung empfangen werden. Ein Schritt 1040 umfasst das Übermitteln einer Challenge-Nachricht an den Kommunikationspartner, die beispielsweise in dem Schritt 820 empfangen werden kann.
-
Ferner weist das Verfahren die Schritte 830, 840 und 850 auf, in denen die empfangenen Informationen verarbeitet werden, um den geheimen Wert zu erhalten, daraus die Response-Nachricht zu erstellen und die Sende-Nachricht zu erstellen, die die auf dem geheimen Wert basierende Authentifizierungsinformation aufweist. Ferner umfasst das Verfahren 1000 die Schritte 950 und 960, in denen die Überprüfung der Authentifizierungsinformation sowie das Ausführen der weiteren Interaktion abhängig von dem Authentifizierungsergebnis erfolgt.
-
Es wird darauf hingewiesen, dass in den vorliegend beschriebenen Verfahren eine Reihe der Schritte abweichen kann von den in den Figuren dargestellten Reihenfolgen. So kann beispielsweise ein Zeitpunkt oder eine Reihenfolge des Lesens von Informationen anders ausgeführt werden als dargestellt. Auch können einzelne Berechnungsschritte in anderer Reihenfolge ausgeführt werden.
-
Vorangehend beschriebene Ausführungsbeispiele beziehen sich zumindest teilweise darauf, dass die Herstellung von Klonen dadurch erschwert wird, dass der geheime Wert in der zu authentifizierenden Vorrichtung erst erzeugt wird. Weitere Ausführungsbeispiele beziehen sich darauf, Funktionen in der Vorrichtung vorzusehen, die das Risiko bergen oder erhöhen, dass ein Klon in einer späteren Vorrichtung nicht oder lediglich fehlerhaft betrieben wird. Hierzu können beispielsweise physikalische Gegenmaßnahmen zählen, wobei Ausführungsbeispiele insbesondere das Implementieren sogenannter versteckter Funktionen vorsehen, die zu einem späteren Zeitpunkt aktiviert werden. Gemäß einem Ausführungsbeispiel ist dabei vorgesehen, dass Verfahren oder Prozesse zum Erhalten geheimer Werte und/oder zur Authentifizierung im laufenden Betrieb geändert werden. So sehen Ausführungsbeispiele Vorrichtungen vor, die ausgebildet sind, um eine Auswahlnachricht zu empfangen. Beispielsweise handelt es sich hier um Weiterbildungen der Vorrichtung 110, 210, 310 oder 410, Eine derartige Vorrichtung kann einen Datenspeicher aufweisen, der ausgebildet ist, um einen Schlüssel für die Datenverarbeitungseinrichtung 16 bereitzustellen. Die Vorrichtung kann ausgebildet sein, um den Schlüssel in Reaktion auf die Auswahlnachricht zu ändern. Eine solche Vorrichtung ist beispielhaft in 11 als schematisches Blockschaltbild dargestellt. Die dort dargestellte Vorrichtung 1100 kann die in 1 beschriebene Empfangseinrichtung 12 und die Sendeeinrichtung 28 aufweisen. Die Vorrichtung 1100 weist eine Datenverarbeitungseinrichtung 48, die gegenüber der Datenverarbeitungseinrichtung 16 modifiziert ist, und/oder eine Authentifizierungseinrichtung 52, die gegenüber der Authentifizierungseinrichtung 22 modifiziert ist, auf. Optional kann anstelle der Datenverarbeitungseinrichtung 48 die Datenverarbeitungseinrichtung 16 angeordnet sein oder es kann anstelle der Authentifizierungseinrichtung 52 die Authentifizierungseinrichtung 22 angeordnet sein. Optional kann die Vorrichtung 1100 einen Datenspeicher 450 aufweisen, der ausgebildet ist, um einen oder mehrere Schlüssel, das heißt, Bitfolgen, zu speichern. Diese Schlüssel können von der Datenverarbeitungseinrichtung 48 oder 16 dazu verwendet werden, um den geheimen Wert zu erhalten.
-
Die Vorrichtung 1100 kann ausgebildet sein, um die Auswahlnachricht 56 zu erhalten, beispielsweise mittels der Empfangseinrichtung 12. In Reaktion auf die Auswahlnachricht kann die Vorrichtung ausgebildet sein, um einen anderen Schlüssel aus dem Datenspeicher 54 zu verwenden, um ihn der Datenverarbeitungseinrichtung 48 oder 16 bereitzustellen. Das bedeutet, in Reaktion auf die Auswahlnachricht 56 kann der Schlüssel zum Erhalt des geheimen Werts 18 verändert werden. Dies ermöglicht die nachträgliche Änderung der Struktur des Datenpakets 14 auch im laufenden Betrieb. So kann beispielsweise eine Konfiguration des Hosts (Vorrichtung 120, 220 oder 320) im laufenden Betrieb geändert werden.
-
So kann die Verwendung von Klonen selbst bei korrumpierten oder gestohlenen Schlüssel erschwert werden.
-
Alternativ oder zusätzlich ist es in Ausführungsbeispielen vorgesehen, dass die Datenverarbeitungseinrichtung 48 eine oder mehrere Verarbeitungs-Logikschaltungen aufweist, die eingerichtet sind, mehrere Varianten einer Logikfunktion zur Verarbeitung des Datenpakets vorzusehen oder zu implementieren. Die Vorrichtung 1100 kann eine Auswahleinrichtung 58 aufweisen, die eingerichtet ist, um in Reaktion auf den Empfang der Auswahlnachricht 56 die Verwendung einer ersten Variante der Logikfunktion zum Verarbeiten in der Datenverarbeitungseinrichtung 48 zu beenden und die Verwendung einer zweiten Variante der Logikfunktion zum Verarbeiten des Datenpakets 14 zu beginnen. Alternativ oder zusätzlich kann die Authentifizierungseinrichtung 52 eine oder mehrere Authentifizierungs-Logikschaltungen aufweisen, die eingerichtet sind, mehrere Varianten einer Logikfunktion zur Authentifizierung der Vorrichtung zu implementieren. Die Auswahleinrichtung 58 kann ausgebildet sein, um in Reaktion auf den Empfang der Auswahlnachricht 56 die Verwendung einer ersten Variante der Logikfunktion zur Authentifizierung zu beenden und die Verwendung einer zweiten Variante der Logikfunktion zur Authentifizierung zu beginnen.
-
Anders ausgedrückt kann in Reaktion auf die Auswahlnachricht 56 die Art und Weise verändert werden, wie das Datenpaket 14 ausgewertet oder verarbeitet wird und/oder es kann die Art und Weise der Generierung der Response-Nachricht verändert werden, was ein hohes Maß an Sicherheit bietet.
-
Die Auswahleinrichtung 58 kann dabei ausgebildet sein, um die Auswahlnachricht 56 zu empfangen und auszuwerten. Dabei kann die Auswahleinrichtung 58 ausgebildet sein, um die Auswahlnachricht 56 zu verifizieren, das bedeutet, sicherzustellen, dass diese aus vertrauenswürdiger Quelle stammt. Die Auswahleinrichtung 58 kann ausgebildet sein, um die erste Variante der Logikfunktion in der Datenverarbeitungseinrichtung 48 und/oder der Authentifizierungseinrichtung 52 nur dann zu beenden und durch eine andere Variante zu ersetzen, das heißt, diese zu beginnen, wenn die Verifikation erfolgreich ist. Für die Verifikation stehen unterschiedliche Möglichkeiten bereit. So kann beispielsweise eine Verschlüsselung, Entschlüsselung oder Signatur verwendet werden. Ausführungsbeispiele sehen vor, dass die Auswahleinrichtung 58 ausgebildet ist, um unter Verwendung einer Hashfunktion einen Hashwert basierend auf der Auswahlnachricht 56 zu bestimmen, und um die Verifikation als erfolgreich einzustufen, wenn der Hashwert einem vorbestimmten Hashwert entspricht. Dies ist gleichbedeutend damit, die Verifikation als nicht erfolgreich einzustufen, wenn der Hashwert dem vorbestimmten Wert nicht entspricht. Alternativ oder zusätzlich kann der Hashwert auch auf eine Übereinstimmung innerhalb eines Toleranzbereichs überprüft werden, d. h., ob der Hashwert innerhalb eines vorbestimmten Wertebereichs liegt, jeweils mit und/oder ohne die Wertebereichsgrenzen.
-
Die Auswahlnachricht 56 kann beispielsweise von einer entsprechend eingerichteten Vorrichtung 120, 220 oder 320 gesendet werden. Diese Vorrichtung kann ausgebildet sein, um die Auswahlnachricht 56 an den Kommunikationspartner, das bedeutet, die Verbrauchseinrichtung, zu senden, so dass diese eine Anweisung enthält, um einen Schlüssel zum Verarbeiten des Datenpakets in Reaktion auf die Auswahlnachricht 56 zu ändern. Alternativ oder zusätzlich kann die Auswahlnachricht 56 eine Anweisung enthalten, um in Reaktion auf den Empfang der Auswahlnachricht 56 die Verwendung einer ersten Variante einer Logikfunktion zum Verarbeiten des Datenpakets zu beenden und die Verwendung einer zweiten Variante der Logikfunktion zum Verarbeiten des Datenpakets zu beginnen. Alternativ oder zusätzlich kann die Auswahlnachricht 56 eine Anweisung enthalten, um in Reaktion auf den Empfang der Auswahlnachricht 56 die Verwendung einer ersten Variante einer Logikfunktion zur Authentifizierung zu beenden und die Verwendung einer zweiten Variante der Logikfunktion zur Authentifizierung zu beginnen.
-
In der Datenverarbeitungseinrichtung 48 und/oder der Authentifizierungseinrichtung 52 kann eine beliebige Anzahl von Logikfunktionen vorgesehen sein, beispielsweise zumindest zwei, zumindest drei, zumindest fünf, zumindest zehn oder eine beliebige andere Anzahl.
-
Die Logikfunktionsvarianten, das bedeutet, die einzelnen Schaltungen bzw. die die Logikfunktionsvarianten implementierenden Teilschaltungen sowie die Auswahleinrichtung 58 können gegenüber einem Reverse-Engineering mittels geeigneter Gegenmaßnahme geschützt werden. Ein Beispiel für eine solche Gegenmaßnahme ist eine Kontaktloch-Camouflage, bei der Kontaktlöcher zwischen unterschiedlichen Schichten eines Chips vorgesehen werden, die jedoch keinen Kontakt zwischen den Schichten herstellen und somit einen Nachahmer hinsichtlich in der jeweiligen Teilschaltung vorhandener Verbindungen in die Irre führen. Die Logikfunktionen können beispielsweise kryptographische Logikfunktionen sein, können aber im Allgemeinen aber jegliche digitale Funktion implementieren, die Daten manipulieren. Bei einer kryptographischen Logikfunktion kann erreicht werden, dass das Risiko von Klonfehlern erhöht wird, da eine solche typischerweise die Eigenschaft hat, dass die Änderung eines Eingabebits der Logikfunktion mit hoher Wahrscheinlichkeit dazu führt, dass sich viele Ausgabebits der Logikfunktion ändern. AIternativ oder zusätzlich können Maßnahmen zum Obfuskieren, bspw. mit Kontaktloch-Camouflage auch bei anderen Vorrichtungsteilen, etwa der Datenverarbeitungseinrichtung 16 oder Teilen hiervon eingesetzt werden, d. h., derartigen Maßnahmen sind nicht begrenzt oder eingeschränkt auf die Funktion zum verzögerten Aktivieren von Features.
-
Die Auswahleinrichtung 56 kann unter Verwendung einer kryptographischen Hashfunktion oder einer Permutation implementiert werden. Die Verwendung einer anderen Logikfunktionsvariante ist beispielsweise durch einen Aktivierungsmechanismus geschützt, bei der die Host-Authentifizierungsschaltung 44 (beispielsweise initiiert durch einen Benutzer) ein Entsperr-Passwort oder einen Entsperr-Code der Verbrauchsgut-Authentifizierungsschaltung 52 zuführt, die von der Verbrauchsgut-Authentifizierungsschaltung 52 unter Verwendung einer Hashfunktion gehasht wird und mit einem in der Verbrauchsgut-Authentifizierungsschaltung 52 gespeicherten Vergleichswert (für diese zu aktivierende Logikfunktion) gespeichert ist. Allgemein kann die Host-Authentifizierungsschaltung 44 die Verwendung einer anderen Logikfunktionsvariante aktivieren, indem sie gegenüber der Verbrauchsgut-Authentifizierungsschaltung 52 die Kenntnis eines Geheimnisses (wie eines Passworts oder eines Freischaltcodes) nachweist. Nur wenn der erzeugte Hashwert mit dem Vergleichswert übereinstimmt, der mit der zu aktivierende Funktionsvariante assoziiert ist, führt die Verbrauchsgut-Authentifizierungsschaltung bzw. die Auswahleinrichtung 58 die Auswahl der Logikfunktionsvariante durch.
-
In anderen Worten können Authentifizierungssysteme gemäß Ausführungsbeispielen auch in einem Szenario verwendet werden, in dem Logik mit Klon-Gegenmaßnahmen eingeführt wird, die nicht ab der anfänglichen Markteinführung aktiv sind. In diesem Fall wird ein Logikblock vor Reverse Engineering geschützt und bei der Markteinführung nicht verwendet. Da die Logik nicht beim anfänglichen Betrieb verwendet wird und auch vor Verwendung geschützt ist, ist das Risiko von Reverse Engineering-Fehlern erheblich erhöht. Der Vorteil besteht darin, dass eine Reverse Engineering-Unternehmen nicht die Mittel besitzt, extrahierte Logik auf Korrektheit zu verifizieren. Gezwungenermaßen muss zumindest eine zusätzliche Runde von Reverse Engineering zu einer späteren Stufe stattfindet, was erhöhte Kosten und Anstrengungen für die Erzeugung von Vorrichtungsklonen bedeutet.
-
Bei einem derartigen Ausführungsbeispiel kann eine Vorrichtung mit einer Funktionalität zur asymmetrischen Challenge-Response-Authentifizierung ausgestattet sein, die die gleiche sein kann wie bei dem beschriebenen System oder die unabhängig sein kann - die jedoch unterschiedliche pk1/sk1-Paare verwendet. Dieses Basis-Authentifizierungssystem kann unmittelbar nach der Markteinführung verwendet werden.
-
Hierzu zeigt bspw. 12 ein schematisches Blockschaltbild einer Vorrichtung 1200 gemäß einem Ausführungsbeispiel. Obwohl nicht alle Elemente dargestellt sind, kann die Vorrichtung 1200 eine Funktionalität aufweisen, die bspw. im Zusammenhang mit den Vorrichtungen 110, 210 oder 310 erläutert ist.
-
Der Deck-Block ist die vorstehend erwähnte Logik, die zuerst deaktiviert ist, um Reverse Engineering schwierig zu machen. Er ist konfiguriert, um falsch codierte EDPHID-Daten zurückzuweisen, und der Host hat bei der Markteinführung keinen Zugriff auf diese Informationen. So kann der Host den Deck-Logikblock nicht nutzen und Reverse Engineering ist kompliziert. Eine bestimmte Zeit nach der Markteinführung von Vorrichtung und Host-Einheit erhält der Host nun, beispielsweise mittels SW-Update, EDPHID und pk2, bspw. in Form einer Auswahlnachricht 56. Da das Host-individuelle EDPHID-Datenpaket korrekt codiert ist, kann es durch Deck verarbeitet werden. Der Host kann dann die Authentifizierung mit dem Schema s verwenden und sk2, das in das EDPHID eingebettet ist, das dem pk2 entspricht. Hierzu kann der neue Schlüssel sk2 in einem entsprechenden Speicher 58 abgelegt werden. Es wird darauf hingewiesen, dass für diese Funktionalität ein gemeinschaftliches Ressourcen-Verwenden mit dem Basis-Authentifizierungssystem in Betracht kommt. Die Response-Nachricht 26 kann somit unter Verwendung des Schlüssels sk1 oder des Schlüssels sk2 erzeugt werden.
-
Ein Angreifer sieht sich nun dem Problem ausgesetzt, dass ein möglicher Klon keinen funktionierenden Block für Deck besitzt, und zwar unter der Annahme, dass der Angreifer nicht in der Lage war, die Funktionalität der Schaltung zu verifizieren und diese korrekt zu implementieren. Bei diesem Ausführungsbeispiel verwendet die Vorrichtung entweder einen geheimen Schlüssel sk1, der von dem NVM (für das Basis-Authentifizierungsschema) erhalten wird, kann jedoch auch einen geheimen Schlüssel sk2 verwenden, der von einem EDP erhalten wird. Der zugrundeliegende Algorithmus ist in beiden Fällen gleich, etwa ECDSA. Mache Bauteile, etwa umfassend Deck und GEN_SKs, können gegen Analyse durch Reverse Engineering geschützt sein.
-
Bei einem alternativen Ausführungsbeispiel kann ein geheimer Schlüssel k' verwendet werden, um jedes Host-individuelle EDPHID zu verschlüsseln. So beinhalten bei der Markteinführung Hosts nur das verschlüsselte EDP'HID = Enc''k(EDPHID). Nun muss zur verzögerten Merkmalsaktivierung nicht notwendigerweise jeder Host ein individuelles EDPHIDIpk-Paar empfangen, sondern es kann bspw. der Empfang von lediglich k' genügen, um die bereits vorhandenen, Host-individuellen EDPHIDIpk-Paare zu entriegeln. Ohne Zugriff auf k' ist es rechentechnisch nicht machbar, die verschlüsselten Daten zu erhalten, z. B. wenn eine starke Chiffrierung, wie AES (Advanced Encryption Standard), verwendet wird.
-
Ein Vorteil der beschriebenen Verfahrens besteht darin, dass es die Annahme über die Schlüsselsicherheit verdreht. In diesem Sinn besitzt im Stand der Technik jede Vorrichtung einen unterschiedlichen Schlüssel und die Authentizität des Schlüssels wird durch ein digitales Zertifikat sichergestellt. Wenn ein Schlüssel verloren geht, kann er kopiert und für Authentifizierungen verwendet werden, die durch jeden beliebigen Host akzeptiert werden. Da die Schlüssel nun jedoch an einen Host gebunden sind, wird, selbst wenn ein Angreifer einen Schlüssel sk oder v aus einer Vorrichtung extrahieren kann, die Erzeugung eines funktionierenden Klons nicht ermöglicht. Da andere Hosts mit unterschiedlichen EDP/pk-Paaren versehen sind, wird der Schlüssel nicht akzeptiert werden. So müsste ein Benutzer, um eine geklonte Vorrichtung zu ermöglichen (unter der Annahme, dass DECk nicht geklont wurde), zuerst sk extrahieren, das dem EDP des Hosts entspricht, und diesen in einen Klon übertragen. Oder aber der Benutzer müsste EDP/pk in einem Host durch dasjenige ersetzen, mit dem der Klon programmiert wurde. Beides scheint wirtschaftlich schwer machbar.
-
Folglich könnten Ausführungsbeispiele auch unmittelbar nach der Markteinführung als eine zusätzliche Sicherheitsmaßnahme verwendet werden, um Angriffe auf die Basis-Authentifizierung (z. B. Seitenkanal- oder Fehlerangriffe) weniger hilfreich zu machen. Ein Angreifer kann nicht mehr durch Extrahieren eines geheimen Schlüssels aus dem asymmetrischen Authentifizierungssystem Erfolg haben, da auch die Funktionalität von Deck geklont werden muss. Der Angreifer kann den Schlüssel, der durch das Host-System verwendet wird, auf das der Klon letztendlich angewendet wird, nicht antizipieren. Ferner können diese Merkmale ohne Kryptographie oder hochentwickelte Geheimschlüssel-Speicherung in dem Host erzielt werden. Die einzige Bedingung besteht in der Bereitstellung von Hosts (oder Gruppen von Hosts) mit individuellen EDPHIDIpk-Paaren.
-
Zur erweiterten Variabilität von Ausführungsbeispielen kann die Deck-Schaltung durch eine ROM-Maske ausgebildet sein. Zusätzliche Daten könnten in einer ROM-Maske oder durch Einsetzen von Sicherungen vorhanden sein. Dies verhindert die Wiederverwendung eines Chips für unterschiedliche Anwendungsszenarien.
-
Eine Vorrichtung könnte durch den Host unter Verwendung eines analogen Merkmals (z. B. eines großen Stroms) deaktiviert werden, wenn das Verbrauchsgut aufgebraucht ist.
-
Ausführungsbeispiele ermöglichen die Verwendung eines Öffentlicher-Schlüssel-Schemas mit sehr kurzer Schlüssellänge. Da nun jeder Host einen individuellen Schlüssel besitzt, wird der Wert des Durchbrechens des kryptographischen Mechanismus stark vermindert. Folglich könnten selbst Authentifizierungsprotokolle mit elliptischen Kurven mit einer Länge von höchstens 200 Bits, höchstens 150 Bits oder 100 Bits ausreichend Sicherheit schaffen, da ein kryptographischer Angriff nur einen Aufbau von Klonen ermöglicht, die mit einem spezifischen Host funktionieren. Das Langzeitgeheimnis ist die Funktionalität von DECk. Außerdem wird für das erfundene Verfahren keine Verifizierung von Zertifikaten oder Transfer von öffentlichen Schlüsseln benötigt. Dies kann den Code-Fußabdruck von Software auf dem Host oder der Vorrichtung vermindern.
Es wird außerdem darauf hingewiesen, dass ein Wert in dem NVM auch als geheime Eingabe in DECk verwendet werden könnte. Dies ermöglicht die Verwendung eines Chips für mehrere Kunden. Dieser Ansatz verhindert eine „Überkreuz-Verwendung“. Es wird ferner darauf hingewiesen, dass keine vollständig funktionsfähige Verschlüsselung/Entschlüsselung nötig ist, die aus einer Prozedur für ENCk/DECk besteht. Eine geheime Funktion y = f (x) ist ausreichend. Das Datenpaket, etwa EDP ist dann x und der Wert f(EDP) ist der geheime Schlüssel sk.
-
13 zeigt ein schematisches Blockschaltbild eines Systems 1300, das ein Verbrauchsgut oder consumable 130 und eine verbrauchende Vorrichtung oder Host 140 aufweist. Das Verbrauchsgut 130 weist ein einmalprogrammierbares Speicherelement 62 (engl.: one-time programmable fuse) auf, dessen Zustand nach einem Herstellungsprozess oder Versetzen in einen Referenzzustand lediglich einmalig programmierbar oder umprogrammierbar ist, zumindest innerhalb der vorgesehenen Betriebsbedingungen. Beispiele für solche einmalprogrammierbaren Speicherelemente sind Elemente, deren Zustand mittels eines mechanischen, thermischen und/oder elektrischen Durchtrennens (oder Zusammenfügens) im Hinblick auf einen physikalischen Zustand, etwa eine elektrische Leitfähigkeit, verändert werden. Weitere Beispiele hierfür sind sogenannte „e-fuses“, Halbleiterelemente oder nicht-flüchtige Speicher, die für Einmal-Passwörter (engl.: one-time password) ausgelegt sind. So kann das einmalprogrammierbare Speicherelement 62 beispielsweise ein Halbleiterelement umfassen, das ausgebildet ist, um basierend auf einem elektrischen Signal eine elektrische Eigenschaft permanent zu ändern.
-
Bei der Vorrichtung 130 kann es sich um eine Erweiterung der beispielhaft im Zusammenhang mit 1 erläuterte Vorrichtung 110 handeln, die vorliegend beschriebenen Ausführungsbeispiele können jedoch unabhängig hiervon implementiert werden. Alternativ oder zusätzlich kann die verbrauchende Vorrichtung 140 die beispielhaft im Zusammenhang mit 1 erläuterte Vorrichtung 120 weiterbilden, wobei dies optional ist.
-
Das Verbrauchsgut weist neben dem einmalprogrammierbaren Speicherelement 62 eine Datenschnittstelle 64 auf, die zum Senden und/oder Empfangen von Nachrichten hin zur oder von der verbrauchenden Vorrichtung 140 eingerichtet ist, wie es im Zusammenhang mit vorangehenden Ausführungsbeispielen beschrieben ist. Ferner weist das Verbrauchsgut 130 eine Datenverarbeitungseinrichtung 66 auf, die ausgebildet ist, um eine entsprechende Datenverarbeitung auszuführen. Die Datenverarbeitungseinrichtung 66 kann Software implementiert und/oder Hardware implementiert sein und beispielsweise einen anwendungsspezifischen integrierten Schaltkreis (application specific integrated circuit - ASIC) ein programmierbares Gatterarray (field programmable gate array - FPAG) einen Prozessor, einen Mikrokontroller oder dergleichen umfassen.
-
Die verbrauchende Vorrichtung 140 kann ausgebildet sein, um eine Challenge-Nachricht 68 an das Verbrauchsgut 130 zu senden, welches die Challenge-Nachricht 68 mit der Datenschnittstelle 64 empfangen kann. Bei der Challenge-Nachricht 68 kann es sich beispielsweise um die Challenge-Nachricht 24 handeln, wobei die Challenge-Nachricht der Gestalt ausgelegt ist, dass das Verbrauchsgut 130 veranlasst wird, mittels der Datenverarbeitungseinrichtung 66 die Challenge-Nachricht 68 zu verarbeiten und eine Antwort-Nachricht 72 so zu erstellen, dass diese in Beantwortung der Challenge-Nachricht 68 eine aus einem Zustand des einmalprogrammierbaren Speicherelements 62 abgeleitete kryptografische Information aufweist. Das Verbrauchsgut 130 kann ausgebildet sein, um die kryptografische Information basierend auf einer Verschlüsselung und/oder basierend auf einer Anwendung einer Signatur zu erhalten. Die Antwort-Nachricht 72 kann beispielsweise zumindest Teile der Informationen der Antwort-Nachricht 26 umfassen. Auch wenn die Challenge-Nachricht 68 und/oder die Antwort-Nachricht 72 anders ausgestaltet sind, können dennoch beide Nachrichten Teil eines Authentifizierungsprozesses sein.
-
Diese kryptographische Information kann beispielsweise anzeigen, ob das einmalprogrammierbare Speicherelement 62 programmiert ist, umprogrammiert ist, welchen physikalischen Wert, etwa einen Widerstandswert oder eine Temperatur oder dergleichen das einmalprogrammierbare Speicherelement 62 aufweist, wobei ein derartiger Zustand von einer Auswertelogik, die beispielsweise in der verbrauchenden Vorrichtung 140 angeordnet sein kann, als Zustand klassifizierbar sein kann. Das bedeutet, die Antwort-Nachricht 72 kann direkt oder indirekt einen Aufschluss darüber liefern, welchen Zustand das einmalprogrammierbare Speicherelement 62 aufweist. Diese Information wird kryptografisch übertragen, was es erschwert, eine entsprechende Information zu verfälschen.
-
Das System 1300 umfasst hierzu einen Datenspeicher 74. Die verbrauchende Vorrichtung 140 umfasst ferner eine Steuerungseinrichtung 76, die Funktionen der Steuerungseinrichtung 38 ganz oder teilweise implementieren kann.
-
Die Steuerungseinrichtung 76 ist ausgebildet, um die kryptografische Information aus der Antwort-Nachricht auf dem Zustand des einmalprogrammierbaren Speicherelements 62 auszuwerten. Das bedeutet, die Steuerungseinrichtung 76 erhält aus der Antwort-Nachricht 72 Kenntnis über den Zustand des einmalprogrammierbaren Speicherelements 62. Basierend auf dem Zustand des einmalprogrammierbaren Speicherelements 62 bestimmt die Steuerungseinrichtung 76 eine Verwendungs-Information, die eine zukünftige Interaktion mit dem Verbrauchsgut 130 zumindest teilweise beschreibt. Die Steuerungseinrichtung 76 ist ausgebildet, um die Verwendungs-Information 78 in dem Datenspeicher 74 zu hinterlegen.
-
Die Verwendungs-Information kann gemäß einem Ausführungsbeispiel angeben, dass eine Kooperation beziehungsweise ein gemeinsamer Betrieb der Vorrichtungen 130 und 140 autorisiert oder akzeptiert ist. Basierend hierauf kann die verbrauchende Vorrichtung 140 beispielsweise die Ressource des Verbrauchsguts 130 verbrauchen. Die Challenge-Nachricht 68 und/oder die Antwort-Nachricht 72 können Teil eines Authentifizierungsprozesses sein, was auch eine Identifizierung des Verbrauchsguts 130 ermöglicht. Alternativ kann die verbrauchende Vorrichtung 140 Kenntnis davon haben, welche Art oder welche Arten von Verbrauchsgütern 130 mit ihr konnektierbar sind und/oder auf andere Art und Weise Kenntnis von Einzelheiten zur Ausgestaltung des Verbrauchsguts 130 erlangen, was es ermöglicht, beispielsweise eine Menge, ein Guthaben, eine Anzahl von möglichen Verwendungen oder dergleichen zu bestimmen.
-
Ausführungsbeispiele sehen vor, dass die Verwendungs-Information 78 mit einem Füllstand oder einer Anzahl verbleibender Verwendungen assoziiert ist, so dass als Verwendungs-Information 78 beispielsweise als Ergebnis der Authentifizierung ein Wert, etwa ein Zähler oder dergleichen, gesetzt werden kann, der im Verlauf des weiteren Betriebs oder auch Stillstands, während dessen die Ressource verbraucht wird, altert oder sonstig verändert wird, hinterlegt und verändert wird, etwa mittels inkrementieren und/oder dekrementieren und/oder Vergleichen eines veränderlichen Werts gegenüber einem Schwellwert. So kann beispielsweise während eines Drucks ein Verbrauch der Druckertinte als Ressource festgestellt, bestimmt oder geschätzt werden und dies im Sinne eines Dekrementierens eines Werts in der Verwendungs-Information 78 festgehalten werden. So kann beispielsweise bei Erreichen eines Werts von null oder eines anderen Werts, der angibt, dass die Ressource verbraucht wird, der Betrieb wiedereingestellt werden. Es versteht sich, dass derartige Beschreibungen lediglich beispielhaft sind und dass anstelle eines Erreichens eines minimalen Werts, etwa null, zum Angeben, dass die Ressource aufgebraucht ist, auch eine Erhöhung eines Werts erfolgen kann, bis zu einem Maximalwert, der angibt, dass die Ressource aufgebraucht ist.
-
Gemäß Ausführungsbeispielen wird im Rahmen des Speicherns der Verwendungs-Information 78 das Verbrauchsgut 130 angewiesen, dass einmalprogrammierbare Speicherelement 62 zu programmieren. Auf eine erneute Anfrage im Rahmen einer Challenge-Nachricht 68 gibt das Verbrauchsgut 130 somit eine andere Zustandsinformation mit der Antwort-Nachricht 72 zurück, die von der verbrauchenden Vorrichtung 140 so interpretiert werden kann, dass das Verbrauchsgut 130 bereits genutzt wurde. Dies kann gemäß Ausführungsbeispielen von der verbrauchenden Vorrichtung 140 als ein anderer Zustand, etwa ein programmierter Zustand des einmalprogrammierbaren Speicherelements 62 interpretiert werden. Die verbrauchende Vorrichtung 140 kann ausgebildet sein, um die Verwendungs-Information 78 nicht in dem Datenspeicher 74 zu hinterlegen, oder um eine Information in dem Datenspeicher 74 zu hinterlegen, die die Interaktion mit dem Verbrauchsgut zumindest einschränkt. So kann beispielsweise vorgesehen sein, dass lediglich bestimmte Funktionen des Verbrauchsguts 130 nutzbar sind, wobei vorstellbar ist, dass beispielsweise Notfall-relevante Funktionen beibehalten werden, ein einfarbiger Druck ermöglicht wird, während ein farbiger Druck verhindert ist oder dass eine Abgabemenge einer Ressource des Verbrauchsguts 130 beschränkt oder anderweitig festgelegt ist.
-
Die verbrauchende Vorrichtung 130 kann, wie beschrieben, die kryptografische Information in der Antwort-Nachricht 72 als einen Zustand interpretieren, der beispielsweise angibt, dass das einmalprogrammierbare Speicherelement 62 unprogrammiert ist. Basierend hierauf kann die verbrauchende Vorrichtung 140 ausgebildet sein, um eine Programmier-Instruktion 82 an das Verbrauchsgut 130 zu senden. Die Programmier-Instruktion 82 kann eine Anweisung enthalten, das einmalprogrammierbare Speicherelement 62 umzuprogrammieren, so dass ein anderer als unveränderlich angenommener Zustand erreicht wird. Das Verbrauchsgut 130 kann eine Programmiereinrichtung 84 aufweisen, die ausgebildet ist, um das einmalprogrammierbare Speicherelement 62 zu programmieren. Die Programmiereinrichtung 84 kann Teil der Datenverarbeitungseinrichtung 66 sein, kann aber auch eine separate Einrichtung sein. Das bedeutet, das Verbrauchsgut ist ausgebildet, um das einmalprogrammierbare Speicherelement 62 basierend auf der Programmier-Instruktion 82 zu programmieren.
-
Das Verbrauchsgut 130 kann konfiguriert sein, um das Programmieren des einmalprogrammierbaren Speicherelements 62 zusammen mit der Antwort-Nachricht 72 oder einer weiteren Nachricht an die verbrauchende Vorrichtung 140 kryptografisch zu bestätigen. So kann beispielsweise die Programmier-Instruktion 82 ein Teil der Challenge-Nachricht 68 sein oder als separate Nachricht übermittelt werden, bevor jedoch die Antwort-Nachricht 72 zurückübermittelt wird. Im Rahmen der Authentifizierung kann das Verbrauchsgut 130 das einmalprogrammierbare Speicherelement 62 programmieren und den ursprünglichen Zustand und/oder die ausgeführte Programmierung und/oder den neuen Zustand mit der Antwort-Nachricht 72 übermitteln. Es ist ebenfalls vorstellbar, dass die Programmier-Instruktion 82 beispielsweise nach erfolgter Authentifizierung übermittelt wird, etwa wenn eine stabile Kommunikation zwischen den Vorrichtungen 130 und 140 sichergestellt ist, so dass vermieden werden kann, dass das Verbrauchsgut 130 das einmalprogrammierbare Speicherelement 62 programmiert, dieses aber nicht erfolgreich zurückmelden kann.
-
Die verbrauchende Vorrichtung 140 kann ausgebildet sein, um die Verwendungs-Information 78 mit einem Füllstand oder einer Anzahl verbleibender Verwendungen zu assoziieren und einen hierauf gerichteten, assoziierten Wert, der auf der Programmier-Instruktion basiert, als einen Teil der Verwendungs-Information in dem Datenspeicher 74 zu hinterlegen.
-
Es ist somit möglich, dass die Verwendungs-Information 78 kontinuierlich, iterativ oder beim Eintritt bestimmter Ereignisse aktualisiert wird, was insbesondere vorteilhaft ist, wenn die Verwendungs-Information mit einem Füllstand oder einer Anzahl verbleibender Verwendungen einer Ressource des Verbrauchsguts 130 korreliert ist.
-
Ausführungsbeispiele sehen vor, dass ein Verbrauchsgut, etwa das Verbrauchsgut 130, ein Speicherelement aufweist, wobei das Verbrauchsgut ausgebildet ist, um in dem Speicherelement eine Information zu speichern, die mit einem Füllstand oder einer Anzahl verbleibender Verwendungen des Verbrauchsguts korreliert ist. Das Verbrauchsgut kann ausgebildet sein, um die Information an den Kommunikationspartner, etwa die verbrauchende Vorrichtung 140, zu senden. Das bedeutet, die verbrauchende Vorrichtung, etwa die verbrauchende Vorrichtung 140, kann ausgebildet sein, um eine Füllstands-Information von dem Verbrauchsgut abzufragen. Die verbrauchende Vorrichtung kann ausgebildet sein, um diese mit der eigenen Verwendungs-Information abzugleichen. So können beispielsweise Abweichungen zwischen dem in der verbrauchenden Vorrichtung 140 und dem Verbrauchsgut 130 hinterlegten restlichen Füllstand oder dergleichen bereinigt werden. Dies kann beispielsweise limitiert werden, etwa in einem Abweichungs-Toleranzbereich von ±30%, ±20% oder ±10%, etwa um Betrugsversuche zu unterbringen, mittels derer die Information in dem Verbrauchsgut manipuliert wird.
-
Die verbrauchende Vorrichtung kann ausgebildet sein, um die Verwendungs-Information 78 basierend auf einer unter Berücksichtigung der Verwendungs-Information erfolgten Interaktion mit dem Verbrauchsgut, die darauf ausgelegt ist, um eine Ressource des Verbrauchsguts zu verbrauchen, zu aktualisieren. Hierzu können beispielweise Zählerwerte dekrementiert werden, eine Anzahl erfolgter Nutzungen inkrementiert werden oder anderweitig Informationen gesammelt werden. Die Verwendungs-Information kann, wie beschrieben, mit einem Füllstand oder einer Anzahl verbleibender Verwendungen einer Ressource des Verbrauchsguts 130 korreliert sein.
-
Die verbrauchende Vorrichtung 140 kann konfiguriert sein, um bei Erreichen eines vordefinierten Schwellenwerts der Verwendungs-Information eine vorbestimmte Aktion vorzunehmen oder zu unterlassen. Wie es nachfolgend ausgeführt wird, kann neben einer Ausgabe eines Warn-Signals an einen Nutzer, etwa, dass die Ressource bald aufgebraucht ist, einem Beenden zukünftiger Ressourcenverbrauche oder dergleichen auch eine weitere Programmier-Instruktion an das Verbrauchsgut gesendet werden, die angibt, ein weiteres einmalprogrammierbares Speicherelement des Verbrauchsguts zu programmieren. Ausführungsbeispiele sehen hierzu vor, dass das Verbrauchsgut 130 eine Mehrzahl von einzeln adressierbaren einmalprogrammierbaren Speicherelementen aufweist.
-
Das Verbrauchsgut 130 kann konfiguriert sein, um die Antwort-Nachricht so zu erstellen, dass diese aus dem jeweiligen Zustand der Mehrzahl von einmalprogrammierbaren Speicherelementen abgeleitete kryptografische Informationen aufweist. Es kann hierzu ausreichend sein, das gerade programmierte einmalprogrammierbare Speicherelement anzugeben, so dass aus einer Rangfolge oder Reihenfolge der einmalprogrammierbaren Speicherelemente ableitbar ist, welche oder welches der einmalprogrammierbaren Speicherelemente möglicherweise zuvor bereits programmiert wurde und/oder welches oder welche der einmalprogrammierbaren Speicherelemente noch unprogrammiert sind. Alternativ kann auch eine konkrete Information zu jedem der einmalprogrammierbaren Speicherelemente in der Nachricht angeordnet oder eingefügt werden. Basierend auf einer mittels der Datenschnittstelle 64 empfangenen Programmier-Instruktion kann zumindest eine der Mehrzahl von einmalprogrammierbaren Speicherelemente Elemente-individuell durch das Verbrauchsgut 31 programmiert werden. So kann beispielsweise bei einer Mehrzahl oder Vielzahl von einmalprogrammierbaren Speicherelementen jedes dieser Elemente mit einem gewissen Anteil eines Gesamt-Füllstands oder Gesamt-Verwendungsmaß assoziiert sein.
-
So kann die verbrauchende Vorrichtung 140 ausgebildet sein, um die kryptografische Information der Antwort-Nachricht 72 auf einem Zustand einer Mehrzahl von einmalprogrammierbaren Speicherelemente auszuwerten, von denen jedes mit einem verschiedenen Füllstand einer Ressource des Verbrauchsguts assoziiert ist. Die verbrauchende Vorrichtung 140 kann eine Programmier-Instruktion an das Verbrauchsgut 130 senden, die angibt, dasjenige einmalprogrammierbare Speicherelement zu programmieren, welches unprogrammiert ist und zugleich mit dem höchsten Füllstand assoziiert ist, wobei die verbrauchende Vorrichtung 140 ferner konfiguriert sein kann, um die Verwendungs-Information in dem Speicher 74 zu hinterlegen, die den assoziierten Füllstand angibt. Der assoziierte Füllstand kann bei einer weiteren Interaktion mit dem Verbrauchsgut 130 durch Veränderung der Verwendungs-Information 78 aktualisiert werden.
-
In einem Ausführungsbeispiel, bei dem das Verbrauchsgut eine Anzahl von 3 hierfür vorgesehene einmalprogrammierbare Speicherelemente aufweist, kann dies beispielsweise jeweils ein Drittel sein, wobei auch ungleiche Anteile möglich sind. Dies ermöglicht beispielsweise auf Seiten der verbrauchenden Vorrichtung, bei Ablauf der Verwendungs-Information 78 oder bei Erreichen eines vordefinierten Schwellwerts mit der aktualisierten Verwendungs-Information, dass ein weiteres einmalprogrammierbares Speicherelement mittels einer hierauf gerichteten Programmier-Instruktion programmiert wird und bei erfolgter Bestätigung die Verwendungs-Information 78 in der Gestalt aktualisiert wird, dass eine entsprechende Füllmenge oder eine Anzahl von zukünftigen Verwendungen, die mit dem neu programmierten einmalprogrammierbaren Speicherelement assoziiert ist, wieder als Verwendungs-Information hinterlegt wird, bis diese ebenfalls aufgebraucht wird.
-
Hieraus ergeben sich eine Reihe von Vorteilen. So kann beispielsweise das Verbrauchsgut 130 erneut authentifiziert werden, etwa nach dem Ausfall einer Energieversorgung, dem Austausch der verbrauchenden Vorrichtung 140 oder dem Transport des Verbrauchsguts 130 zu einer anderen verbrauchenden Vorrichtung 140. Hierbei kann beispielsweise ein jeweils dem jeweiligen einmalprogrammierbaren Speicherelement zugeordneter Füllstand, der programmiert und in der verbrauchenden Vorrichtung 140 als Verwendungs-Information 78 hinterlegt wurde, aber tatsächlich noch nicht verbraucht wurde, verloren gehen, es besteht jedoch die Möglichkeit, zumindest Teile eines Gesamt-Füllstands anderen Orts zu verbrauchen. Auch kann eine Defekt-Sicherheit erhalten werden, da der Ausfall eines einzigen einmalprogrammierbaren Speicherelements möglicherweise nicht zu einem Ausfall des gesamten Verbrauchsguts führt.
-
14 zeigt ein schematisches Blockschaltbild eines Systems 1400 gemäß einem Ausführungsbeispiel. Beispielhaft weist ein Verbrauchsgut 135 eine Mehrzahl von exemplarisch zumindest 2, zumindest 3, zumindest 4 oder mehr einmalprogrammierbaren Speicherelementen 62i mit i=1,...,I auf.
-
Unabhängig hiervon ist eine verbrauchende Vorrichtung 145 ausgebildet, um die Verwendungs-Information 78 zusammen mit einer Kennung beziehungsweise einer Information, die mit dem Verbrauchsgut 130 oder 135 korreliert oder assoziiert ist, zusammen zu speichern, so dass die Verwendungs-Information 78 mit der Kennung 86 assoziiert ist. Die verbrauchende Vorrichtung 145 kann ausgebildet sein, um die Kennung 86 von dem Verbrauchsgut 135 oder 130 zu erhalten und, um die Kennung mit einem Speichereintrag in dem Datenspeicher 74 abzugleichen, um eine dort, zusammen mit der Kennung 86 gespeicherte Verwendungs-Information, zu lesen und um die Interaktion mit dem Verbrauchsgut 130 beziehungsweise 135 von der gelesenen Verwendungs-Information abhängig auszugeben. Die verbrauchende Vorrichtung 145 kann ausgebildet sein, um für eine Mehrzahl oder Vielzahl von Verbrauchsgütern eine jeweilige Verwendungs-Information zusammen mit einer assoziierten Kennung des Verbrauchsguts zu speichern.
-
Dies ermöglicht beispielsweise ein zeitlich abwechselndes Verbinden unterschiedlicher Verbrauchsgüter mit der verbrauchenden Vorrichtung 145, wobei in dem Datenspeicher 74 dann beispielsweise Informationen wieder erneut geladen werden können, die bei einem erneuten Verbinden mit dem Verbrauchsgut 130 beziehungsweise 135 zuletzt in dem Datenspeicher 74 hinterlegt wurden (etwa vor einer Trennung), so dass in diesem Fall auf das Programmieren eines einmalprogrammierbaren Speicherelements verzichtet werden kann. Dies kann unnötige Ressourcen-Verluste vermeiden, indem beispielsweise bei Erreichen eines Schwellwerts der Verwendungs-Information 78 im Zusammenhang mit der Kennung 86 des Verbrauchsguts 135 dann ein erneutes einmalprogrammierbares Speicherelement programmiert wird oder, wenn das Verbrauchsgut 130 oder 135 in dem Datenspeicher 74 noch nicht hinterlegt ist (das heißt, keine Kennung hierzu hinterlegt ist oder keine Verwendungs-Information dazu bekannt ist).
-
Alternativ hierzu kann die verbrauchende Vorrichtung 145 optional ausgebildet sein, um die Verwendungs-Information 78 an eine andere Vorrichtung zu übermitteln, beispielsweise ein Speichermedium, insbesondere ein austauschbares Speichermedium, ein Datennetzwerk, etwa ein lokales Netzwerk oder das Internet, oder andere Empfänger. Dies ermöglicht den Transport des Verbrauchsguts 130 oder 135 an eine andere Vorrichtung beziehungsweise eine andere verbrauchende Vorrichtung, die ausgebildet ist, um die Verwendungs-Information, bevorzugt im Zusammenhang mit der Kennung 86, zu empfangen, so dass auch in diesem Fall auf das Programmieren eines einmalprogrammierbaren Speicherelements verzichtet werden kann. Die verbrauchende Vorrichtung 145 kann insofern ausgebildet sein, um die Verwendungs-Information 78 von einer anderen Vorrichtung zu erhalten und in einem internen Speicher, etwa dem Datenspeicher 74, für eine zukünftige Interaktion mit dem Verbrauchsgut zu hinterlegen.
-
Die Systeme 1300 und 1400 wurden so beschrieben, dass insbesondere bei einem erneuten Verbinden oder einem Neuverbinden eines Verbrauchsguts 130 oder 135 mit einer entsprechenden verbrauchenden Vorrichtung 140 beziehungsweise 145 unter Verwendung der Challenge-Nachricht 68 und der Antwort-Nachricht 72 eine Authentifizierung erfolgt. Ausführungsbeispiele sehen vor, zyklisch eine Authentifizierung auszuführen, etwa nach Ablauf eines bestimmten Zeitintervalls, nach Ablauf einer bestimmten Anzahl von Verwendungen oder nach Verbrauch einer gewissen Menge der Ressource des Verbrauchsguts. Alternativ oder zusätzlich sehen Ausführungsbeispiele vor, um zyklisch den Zustand zumindest eines der einmalprogrammierbaren Speicherelemente bei dem Verbrauchsgut mittels einer Challenge-Nachricht abzufragen, etwa in Vorbereitung, während oder in Nachbereitung einer Verwendung der gespeicherten Ressource. Die verbrauchende Vorrichtung kann ausgebildet sein, um für die Interaktion mit dem Verbrauchsgut zumindest sporadisch, aber auch zyklisch oder in jedem Fall eine erneute Challenge-Nachricht 68 an das Verbrauchsgut zu senden.
-
Weitere Ausführungsbeispiele beziehen sich auf eine verbrauchende Vorrichtung und darüberhinausgehende Ausführungsbeispiele auf ein Verbrauchsgut. Die verbrauchende Vorrichtung kann beispielsweise in Übereinstimmung mit der verbrauchenden Vorrichtung 140 und/oder 145 gebildet sein und ausgebildet sein, um eine Programmier-Instruktion an das Verbrauchsgut als Kommunikationspartner zu senden. Im Zusammenhang damit kann die Verwendungs-Information 78 in dem Speicher 74 hinterlegt werden, um die zukünftige Interaktion mit dem Kommunikationspartner zumindest teilweise zu beschreiben.
-
Das Verbrauchsgut kann in Übereinstimmung mit dem Verbrauchsgut 130 oder 135 gebildet sein und insbesondere ausgebildet sein, um die kryptografische Information der Antwort-Nachricht 72 basierend auf einer Verschlüsselung und/oder basierend auf einer Anwendung einer Signatur zu erhalten.
-
15 zeigt ein schematisches Blockschaltbild eines Systems 1500 gemäß einem Ausführungsbeispiel, bei dem ein Verbrauchsgut 137 als Druckerpatrone und eine verbrauchende Vorrichtung 147 als Drucker gebildet ist. Obwohl beispielsweise auch Authentifizierungsverfahren, gemäß anderer und exemplarisch im Zusammenhang mit 2 beschriebenen Ausführungsbeispielen, implementierbar sind, kann die verbrauchende Vorrichtung 147 beispielsweise den Schlüssel 36 zusammen mit einem Zertifikat cert 88 empfangen. Unter Verwendung einer Authentifizierungseinrichtung 92, die auch hin zur Authentifizierungseinrichtung 22 modifiziert werden kann, kann unter weiterer Zuhilfenahme der Challenge-Nachricht 68 sowie der Antwort-Nachricht 72, die auch als Verifikationseinrichtung benennbare Steuerungseinrichtung 76 ausgelegt sein, um die Verwendungsinformation 78 zu bestimmen und in dem Datenspeicher 74 zu hinterlegen. Optional können auch ein oder mehrere Schwellwerte 94 in dem Datenspeicher 74 hinterlegt werden, etwa Werte, die bestimmen, wann ein weiteres einmalprogrammierbares Speicherelement zu programmieren ist oder dergleichen.
-
16 zeigt ein schematisches Flussdiagramm eines Verfahrens 1600 gemäß einem Ausführungsbeispiel. Ein Schritt 1610 umfasst ein Senden einer Challenge-Nachricht mit einer verbrauchenden Vorrichtung an das Verbrauchsgut. Ein Schritt 1620 umfasst ein Verarbeiten der Challenge-Nachricht mit dem Verbrauchsgut, um eine Antwort-Nachricht als Antwort auf die Challenge-Nachricht zu erstellen, so dass die Antwort-Nachricht eine aus einem Zustand des einmalprogrammierbaren Speicherelements abgeleitete kryptografische Information aufweist. Ein Schritt 1630 umfasst ein Senden der Antwort-Nachricht an die verbrauchende Vorrichtung. Ein Schritt 1640 umfasst ein Auswerten der kryptografischen Information auf dem Zustand des einmalprogrammierbaren Speicherelements mit der verbrauchenden Vorrichtung. Ein Schritt 1650 umfasst ein Abhängigmachen einer zukünftigen Interaktion mit dem Verbrauchsgut durch die verbrauchende Vorrichtung und von dem ermittelten Zustand. Ein derartiges Verfahren kann beispielsweise mit dem System 1300, 1400 oder 1500 ausgeführt werden.
-
Während bekannte Geräte zur Authentifizierung ein Speichern eines Zählerwerts in einem nicht-flüchtigen Speicher erlauben und der Zähler dazu verwendet werden kann, um eine erwartete Menge weiterer Verbräuche (beispielsweise Tinten-Zähler oder verbleibende Lebenszeit eines Geräts) zu bestimmen, beziehen sich hierin beschriebene Ausführungsbeispiele darauf, eine derartige Information auf Seiten der verbrauchenden Vorrichtung zu bestimmen, was nicht ausschließt, dass zusätzlich und hilfsweise eine entsprechende Information in dem Verbrauchsgut vorgesehen bleibt. Ein Ziel hierin beschriebener Ausführungsbeispiele ist beispielsweise ein Verhindern oder Erschweren einer Neubefüllung des Verbrauchsguts oder eine Wiederverwertung von Chips von verbrauchten Verbrauchsgütern. Dies kann insbesondere im Zusammenhang mit Arzneimittel oder dergleichen Sicherheitsrisiken bergen. Wenn gemäß Ausführungsbeispielen ein Zähler einen leeren Füllstand anzeigt oder einen Schwellwert überschreitet (beispielsweise im Hinblick auf Lebenszeit/Haltbarkeit), kann die verbrauchende Vorrichtung eine weitere Zusammenarbeit mit dem Verbrauchsgut ablehnen oder einschränken, um so ein Auswechseln des Verbrauchsguts auszulösen.
-
Ausführungsbeispiele ermöglichen eine kosteneffiziente Herangehensweise, um einen Füllstand eines Verbrauchsguts, der in der Vorrichtung vorhanden ist, zu bestimmen und das mit geringer Anzahl von Hardware-Elementen auf Seiten der Vorrichtungen. Hierzu kombinieren Ausführungsbeispiele einmalprogrammierbare Speicherelemente oder Sicherungen auf Seiten des Verbrauchsguts zusammen mit einem kryptografischen Authentifizierungsverfahren, das zwischen dem Verbrauchsgut und der verbrauchenden Vorrichtung ausgeführt wird. Ferner können Zähler oder Schattenzähler an der verbrauchenden Vorrichtung implementiert werden, die das Ausmaß der weiteren Verwendung anzeigen, wie es im Zusammenhang mit der Verwendungsinformation 78 beschrieben ist. Ausführungsbeispiele können in diesem Zusammenhang bestehende Authentifizierungsmechanismen nutzen und ferner den Zustand des Verbrauchsguts überwachen, insbesondere durch Abfragen des Zustands des einmalprogrammierbaren Speicherelements. Authentifizierungen können durch bekannte Challenge-Response-Protokolle ausgeführt werden, die beispielsweise ECDSA verwenden. In Ausführungsbeispielen wird die verbrauchende Vorrichtung dafür genutzt, um die Möglichkeit einer weiteren Verwendung beziehungsweise den Füllstand zu überwachen. Gemäß Ausführungsbeispielen weisen die Verbrauchsgüter ein einmalprogrammierbares Speicherelement (fuse) auf. Es ist hierbei anzumerken, dass Sicherung oder fuse nicht einschränkend dahingehend gemeint ist, dass eine physikalische Technologie einer Sicherung oder Anti-Sicherung verwendet wird, sondern jegliches Dauer-Speicherelement verwendet werden kann, das ausgelegt ist, um zumindest ein Bit an Information auf der Vorrichtung als „Sicherung“ zu speichern. Diese Sicherung wird möglicherweise nicht während der Produktion des Verbrauchsguts gesetzt oder ausgelöst (etwa zu x=0) und kann einmal in einen anderen Zustand versetzt werden (etwa x=1 oder andersherum) wenn das Verbrauchsgut im Feld verwendet wird. Die entsprechende Sicherung, einmalprogrammierbares Speicherelement, erlaubt keine einfache Rücksetzung durch den Nutzer. Die verbrauchenden Vorrichtungen unterhalten einen sogenannten Schattenzähler c oder Zähler oder Verwendungsinformation, die in einem Speicher der verbrauchenden Vorrichtung gespeichert sein kann und die beispielsweise initial zu c=0 gesetzt wird, etwa während einer Herstellung der verbrauchenden Vorrichtung. Darüber hinaus kann eine verbrauchende Vorrichtung einen Wert t unterhalten, der beispielsweise eine Anzahl von Tintentropfen angibt, um zu bestimmen, wie viele Einheiten oder Elemente eines Verbrauchsguts je Verbrauchsgut konsumiert werden können.
-
Wenn die verbrauchende Vorrichtung beispielsweise den Betrieb aufnimmt oder wenn ein Verbrauchsgut mit der verbrauchenden Vorrichtung in Kontakt gebracht wird oder eingeführt wird, kann die verbrauchende Vorrichtung überprüfen, ob die Sicherung des Verbrauchsguts bereits gesetzt ist oder nicht, das heißt, ob sie gesetzt ist oder nicht gesetzt. Die verbrauchende Vorrichtung kann das kryptografische Authentifizierungsprotokoll nutzen, um eine kryptografische Rückversicherung zu erhalten, dass der Status der Sicherung korrekt durch das Verbrauchsgut angegeben wird.
-
Innerhalb eines solchen Szenarios bestehen mehrere Möglichkeiten des weiteren Vorgehens:
- - Zustand A: c=* und x=0: Der Zähler hat irgendeinen Wert (angedeutet durch *) und die Sicherung x des Verbrauchsguts ist nicht gesetzt. In einem normalen Betrieb erfolgt dies, wenn ein (nicht betrügerischer) Nutzer ein neues oder unbenutztes Verbrauchsgut mit der Verbrauchenden Vorrichtung konnektiert. Die verbrauchende Vorrichtung setzt daraufhin den Wert der Sicherung zu x=1 und den Zähler auf den Wert t, das bedeutet, c=t. Dadurch kann der Schattenzähler der verbrauchenden Vorrichtung auf einen Schwellwert gesetzt werden. Um sicherzustellen, dass die Sicherung auf den Wert x=1 gesetzt wurde, kann die verbrauchende Vorrichtung das kryptografische Authentifizierungsprotokoll nutzen, um eine kryptografische Versicherung bezüglich des Zustands der Sicherung durch das Verbrauchsgut zu erhalten. Das System kann nun im Zustand B sein.
- - Zustand B: c>0 und x=1: Der Zähler hat einen Wert größer als 0 und die Sicherung des Verbrauchsguts ist bereits gesetzt. In einem Normalbertrieb erfolgt dies, wenn der (nicht betrügerische) Nutzer das Verbrauchsgut bereits genutzt hat (etwa indem er oder sie ein paar Seiten gedruckt hat und dann den Drucker ausgeschaltet hat und diesen nun erneut anschaltet). Der Nutzer kann nun einen Betrieb auslösen, der einen Verbrauch des Verbrauchsguts beziehungsweise der Ressource auslöst. In diesem Fall führt die verbrauchende Vorrichtung den Betrieb aus und dekrementiert den Zähler c, so dass c=c-1 (oder jegliche andere angezeigte Schrittweise). Für den Fall, dass c=0 erreicht wird, ist das System nun im Zustand X. Andernfalls verbleibt das System im Zustand B.
- - Zustand C: C=0 und X=1: Der Zähler hat den Wert 0 erreicht und die Sicherung wurde bereits gesetzt. Die verbrauchende Vorrichtung verweigert zumindest in Teilen die Ausführung weiterer Aktionen, etwa solche, die das Verbrauchsgut weiter leeren würden. Die verbrauchende Vorrichtung kann den Nutzer informieren, dass ein neues Verbrauchsgut einzustecken ist. Der Zustand C kann verlassen werden, wenn der Nutzer ein Verbrauchsgut mit einer Sicherung einsetzt, die nicht gesetzt ist (oder wenn das Verbrauchsgut eine weitere Sicherung aufweist, die noch nicht gesetzt ist). In diesem Zustand kehrt das System in den Zustand A oder B zurück.
-
Somit kann vorgesehen sein, dass die verbrauchende Vorrichtung den internen Schattenzähler zu „c=t“ nur dann setzt und nur dann die Verwendung des Verbrauchsguts erlaubt, wenn die Sicherung noch nicht gesetzt wurde. Dies kann ein erneutes Nutzen alter Verbrauchsgüter verhindern und/oder Nachfüll-Angriffe verhindern oder erschweren, da keine kosteneffizienten Wege implementierbar sind, um die Sicherung zurückzusetzen. Dies kann ohne eine individuelle und einzigartige ID für jedes Verbrauchsgut erfolgen. Ungeachtet dessen kann die Speicherung einer entsprechenden ID oder Kennung vorgesehen sein, etwa um die Verwendung mehrerer Verbrauchsgüter zu ermöglichen.
-
Ausführungsbeispiele basieren darauf, dass kryptografische Authentifizierungsprotokolle genügend Sicherheit aufweisen, um sich gegen Klone zu schützen, etwa indem der Secret Key nicht bekannt ist. Andernfalls können auch andere hierin beschriebene Ausführungsbeispiele zur Erhöhung der Sicherheit eingesetzt werden. Die kryptografische Rückversicherung von dem Verbrauchsgut bezüglich des Zustands der Sicherung kann der Gestalt erfolgen, dass beispielsweise im Zusammenhang mit einem ECDSA-basierten Protokoll das Verbrauchsgut nicht nur die Challenge-Nachricht signiert, sondern auch den Zustand des einmalprogrammierbaren Speicherelements, um diesen zumindest als Teil der Antwort-Nachricht zurückzusenden.
-
Wie es bereits erwähnt wurde, können Ausführungsbeispiele dennoch mit einer Kennung (unique-ID) des Verbrauchsguts kombiniert werden. Die verbrauchende Vorrichtung kann einen Zähler c für jedes Verbrauchsgut o als ein Tupel (c, o) unterhalten. Die verbrauchende Vorrichtung kann die Verwendung des Verbrauchsguts beispielsweise davon abhängig machen, ob die Kennung u mit einem Zähler assoziiert ist, der einen Wert von c>0 aufweist.
-
Ausführungsbespiele können in Systemen eingesetzt werden, wo ein Nutzer einen Authentifizierungs-Chip verwendet, der an einem Verbrauchsgut angeordnet ist. Insbesondere in Fällen, wo Verbrauchsgüter nicht zwischen verbrauchenden Vorrichtungen gewechselt werden sollen, beispielsweise basierend auf Sicherheitsanforderungen, bietet dies Vorteile, Ausführungsbeispiele können kosteneffizient bereitgestellt werden und dennoch ein hohes Maß an Sicherheit bieten.
-
Ausführungsbeispiele können angewendet werden zur
- - Verbesserung der Sicherheit von Produkten mit einem Basis-Authentifizierungsmechanismus
- - Bereitstellung einer verzögerten Funktionsaktivierung
- - Einzel-Verwendung für eine ultrakostengünstige Authentifizierung für Vorrichtungen ohne NVM oder mit nur sehr eingeschränktem nicht-flüchtigen Speicher
-
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. Deshalb kann das digitale Speichermedium computerlesbar sein. Manche Ausführungsbeispiele gemäß der Erfindung umfassen also einen Datenträger, der elektronisch lesbare Steuersignale aufweist, die in der Lage sind, mit einem programmierbaren Computersystem derart zusammenzuwirken, dass eines der hierin beschriebenen Verfahren durchgeführt wird.
-
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. Der Programmcode kann beispielsweise auch auf einem maschinenlesbaren Träger gespeichert sein.
-
Andere Ausführungsbeispiele umfassen das Computerprogramm zum Durchführen eines der hierin beschriebenen Verfahren, wobei das Computerprogramm auf einem maschinenlesbaren Träger gespeichert ist.
-
Mit anderen Worten ist ein Ausführungsbeispiel des erfindungsgemäßen Verfahrens somit ein Computerprogramm, das einen Programmcode zum Durchführen eines der hierin beschriebenen Verfahren 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 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.