-
Technisches Gebiet
-
Diese Anmeldung bezieht sich allgemein auf das Verwalten eines Berechtigungszugriffs und insbesondere auf eine Blockchain-Berechtigungsprüfung mittels Hard/Soft-Token-Überprüfung.
-
HINTERGRUND
-
Bei einer Blockchain handelt es sich um eine Art von Datenverarbeitungsarchitektur, die eine verteilte (gemeinsam genutzte und replizierte) Peer-to-Peer-Datenbank oder ein Ledger ermöglicht, die/das nicht von einer einzelnen Organisation oder Entität kontrolliert wird, sondern von vielen verschiedenen. Die Konfiguration, die sich über ein Netzwerk unabhängiger Maschinen erstreckt, ermöglicht es den Knoten, den Zustand der Informationen in einem System zuverlässig zu verfolgen und aufrechtzuerhalten. Auf diese Weise ermöglicht eine Blockchain den kostengünstigen Aufbau von Unternehmensnetzwerken, ohne dass ein zentraler Kontrollpunkt erforderlich ist. Diese Konfiguration funktioniert anders als herkömmliche datenbankgestützte Systeme, bei denen unabhängige Parteien ihre eigenen Aufzeichnungssysteme pflegen und Aktualisierungen in ineffizienten und teilweise komplexen unternehmensübergreifenden Prozessen zusammenführen, was die Dienste eines unabhängigen, vertrauenswürdigen Drittverwalters erfordert.
-
Die Zwei-Faktor-Berechtigungsprüfung ist der De-facto-Typ einer Berechtigungsprüfung, die von den meisten großen Regierungsbehörden wie dem amerikanischen Verteidigungsministerium (DoD) genehmigt wurde. Die Zwei-Faktor-Berechtigungsprüfung wird mit Common Access Cards (CACs, allgemeinen Zugangskarten) und/oder Hardware-Dongles wie beispielsweise „Fobs“ (Sicherheitsidentifikationsschlüssel) durchgeführt. CACs beruhen auf einem zentralisierten Server, der zum Überprüfen der auf der Karte vorhandenen ID/EDIPI-Nummer verwendet wird. Hardware-Token müssen nicht mit einem Backend-Server Daten austauschen, da sie über die notwendigen Komponenten verfügen, um einen Einmalcode (z.B. Einmalpasswörter) für den Zugriff auf ein System zu erzeugen. Diese Token müssen überprüft werden, da das Backend-System überprüfen muss, ob der vom Benutzer bereitgestellte Token übereinstimmt.
-
Die Zwei-Faktor-Berechtigungsprüfung ist eine bekannte Art von Sicherheitsverfahren, das bei verschiedenen Datenverarbeitungssystemen und Netzwerken angewendet wird. Websites von sozialen Medien und eMail-Anbieter verwenden mobile Einheiten als zweite Form der Berechtigungsprüfung (z.B. Passwort + Zugangscode, die an ein Mobiltelefon gesendet werden). Das DoD hat festgelegt, dass alle Netzwerke des Ministeriums CACgeschützt sein müssen. Um CACs nutzen zu können, müssen Systeme die PKIs des DoD unterstützen, bei denen es sich um eine Reihe von Funktionen, Richtlinien und Verfahren handelt, die zum Erstellen, Verwalten, Verteilen, Verwenden, Speichern und Widerrufen digitaler Zertifikate sowie zum Verwalten der Verschlüsselung mit öffentlichem Schlüssel benötigt werden. PKIs funktionieren unter der Annahme, dass sich Systeme in DoD-Netzwerken befinden. Dies wird dann schwierig, wenn versucht wird, Benutzer ohne Zugriff auf das DoD-Netzwerk (z.B. taktische Umgebungen) auf Berechtigung zu prüfen. Das amerikanische Verteidigungsministerium und das Justizministerium sind in der Lage, Benutzer über CACs und ihre jeweiligen PKIs mittels einer Bridge (Brücke) auf Grundlage einer Kreuz-Berechtigungsprüfung auf Berechtigung zu prüfen. Eine solche Infrastruktur bereitzustellen, kann kompliziert sein. Hardware-Token sind oft vertrauenswürdiger als mobile Einheiten, da die meisten manipulationssicher sind, wobei das Verwalten dieser Einheiten eine weitere Herausforderung darstellt.
-
In einem herkömmlichen Berechtigungsprüfungsmechanismus kann ein Berechtigungsprüfungsprozess entweder eine CAC oder ein Hardware-Token verwenden. Dieser Ansatz ermöglicht es einem Benutzer innerhalb des privaten Netzwerks, sich mit einer CAC auf Berechtigung prüfen zu lassen, da sich dieser interne Benutzer im Netzwerk befindet. Ein Benutzer außerhalb des privaten Netzwerks kann gegebenenfalls über eine gültige CAC verfügen und versuchen, sich bei einer mit dem privaten Netzwerk verbundenen Website eines Drittanbieters zu registrieren, da sich der externe Benutzer jedoch nicht im privaten Netzwerk befindet, wird die Anfrage abgelehnt und dem externen Benutzer wird der Zugriff auf das private Netzwerk verwehrt.
-
KURZDARSTELLUNG
-
Eine beispielhafte Ausführungsform kann ein Verfahren aufweisen, das eines oder mehrere des Folgenden bereitstellt: Speichern eines öffentlichen Schlüssels und einer entsprechenden Adresse, die einem Benutzerprofil zugehörig ist, in einer Blockchain, Erzeugen eines Satzes von Berechtigungsdaten für das Benutzerprofil auf Grundlage der öffentlichen Schlüssel, Weiterleiten der Berechtigungsdaten an die eine oder die mehreren Adressen, Empfangen einer Anforderung für den Zugriff auf eine Website von einer dem Benutzerprofil zugehörigen Benutzereinheit und Abrufen der Berechtigungsdaten auf Grundlage der einen oder mehreren Adressen aus der Blockchain. Der Prozess kann randomisiert werden, um die Sicherheit zu verbessern, und die Richtlinie, nach der Faktoren angefordert werden, kann von den Systemadministratoren festgelegt werden.
-
Eine weitere beispielhafte Ausführungsform kann eine Vorrichtung mit einem Prozessor aufweisen, der so konfiguriert ist, dass er eines oder mehrere des Folgenden durchführt: Speichern eines öffentlichen Schlüssels und einer oder mehrerer entsprechender Adressen, die einem Benutzerprofil zugehörig sind, in einer Blockchain, Erzeugen von Berechtigungsdaten für das Benutzerprofil auf Grundlage des öffentlichen Schlüssels, Weiterleiten der Berechtigungsdaten an die eine oder die mehreren Adressen, einen Empfänger, der so konfiguriert ist, dass er eine Anforderung für den Zugriff auf eine Website von einer dem Benutzerprofil zugehörigen Benutzereinheit empfängt, und der Prozessor ist weiterhin so konfiguriert, dass er die Berechtigungsdaten auf Grundlage der einen oder mehreren Adressen aus der Blockchain abruft.
-
Eine noch weitere beispielhafte Ausführungsform kann ein nichtflüchtiges, durch einen Computer lesbares Speichermedium enthalten, das so konfiguriert ist, dass es Anweisungen speichert, die, wenn sie ausgeführt werden, einen Prozessor veranlassen, eines oder mehrere des Folgenden durchzuführen: Speichern eines öffentlichen Schlüssels und einer entsprechenden Adresse, die einem Benutzerprofil zugehörig ist, in einer Blockchain, Erzeugen eines Satzes von Berechtigungsdaten für das Benutzerprofil auf Grundlage der öffentlichen Schlüssel, Weiterleiten der Berechtigungsdaten an die eine oder die mehreren Adressen, Empfangen einer Anforderung für den Zugriff auf eine Website von einer dem Benutzerprofil zugehörigen Benutzereinheit und Abrufen der Berechtigungsdaten auf Grundlage der einen oder mehreren Adressen aus der Blockchain. Der Prozess kann randomisiert werden, um die Sicherheit zu verbessern, und die Richtlinie, nach der Faktoren angefordert werden, kann von den Systemadministratoren festgelegt werden.
-
Figurenliste
-
Im Folgenden werden Ausführungsformen der Erfindung lediglich als Beispiel mit Bezug auf die beigefügten Zeichnungen beschrieben, in denen:
- 1A ein Schlüsselerzeugungsverfahren veranschaulicht, bei dem eine Blockchain gemäß beispielhaften Ausführungsformen verwendet wird.
- 1B ein Schema zur Berechtigungsprüfung einer öffentlichen Adresse veranschaulicht, bei dem eine Blockchain-Systemkonfiguration gemäß beispielhaften Ausführungsformen verwendet wird.
- 2 eine Blockchain-Architekturkonfiguration gemäß beispielhaften Ausführungsformen veranschaulicht.
- 3 ein Schaubild einer Systemnachrichtenübermittlung der Interaktionen zwischen Benutzereinheiten, Sicherheitsentitäten und der Blockchain gemäß beispielhaften Ausführungsformen veranschaulicht.
- 4A einen Ablaufplan eines beispielhaften Verfahrens zum Verwalten der Berechtigungsprüfung in der Blockchain gemäß beispielhaften Ausführungsformen veranschaulicht.
- 4B einen anderen Ablaufplan eines beispielhaften Verfahrens zum Verwalten der Berechtigungsprüfung in der Blockchain gemäß beispielhaften Ausführungsformen veranschaulicht.
- 5 eine beispielhaften Netzwerkentität veranschaulicht, die so konfiguriert ist, dass sie eine oder mehrere der beispielhaften Ausführungsformen unterstützt.
-
AUSFÜHRLICHE BESCHREIBUNG
-
Es versteht sich, dass die unmittelbaren Komponenten, die in den Figuren hierin allgemein beschrieben und veranschaulicht sind, in vielen verschiedenen Konfigurationen angeordnet und ausgeführt sein können. Die folgende ausführliche Beschreibung der Ausführungsformen mindestens eines Verfahrens, einer Vorrichtung, eines nichtflüchtigen, durch einen Computer lesbaren Mediums oder eines Systems, wie in den beigefügten Figuren dargestellt, soll daher den Anwendungsbereich der beanspruchten Anmeldung nicht einschränken, sondern stellt lediglich ausgewählte Ausführungsformen dar.
-
Die in dieser Beschreibung dargelegten unmittelbaren Merkmale, Strukturen oder Eigenschaften können in jeder geeigneten Weise in einer oder mehreren Ausführungsformen kombiniert werden. Die Ausdrücke „beispielhafte Ausführungsformen“, „einige Ausführungsformen“ oder andere ähnliche Begriffe in dieser Beschreibung beziehen sich darauf, dass ein bestimmtes Merkmal, eine bestimmte Struktur oder eine bestimmte Eigenschaft, das/die in Verbindung mit der Ausführungsform beschrieben wird, in mindestens einer Ausführungsform enthalten sein kann. Daher beziehen sich die Ausdrücke „beispielhafte Ausführungsformen“, „in einigen Ausführungsformen“, „in anderen Ausführungsformen“ oder ähnliche Begriffe in dieser Beschreibung nicht unbedingt alle auf dieselbe Gruppe von Ausführungsformen, und die beschriebenen Merkmale, Strukturen oder Eigenschaften können in geeigneter Weise in einer oder mehreren Ausführungsformen kombiniert werden.
-
Zudem ist in der Beschreibung von Ausführungsformen der Begriff „Nachricht“ möglicherweise zwar verwendet worden, seine Anwendung kann jedoch auf viele Arten von Netzwerkdaten wie z.B. Paket, Datenübertragungsblock, Datenpaket usw. zutreffen. Der Begriff „Nachricht“ umfasst auch Pakete, Datenübertragungsblöcke, Datenpakete und ähnliche Elemente davon. Bestimmte Arten von Nachrichten und Signalübertragung können darüber hinaus zwar in beispielhaften Ausführungsformen dargestellt werden, sie sind jedoch nicht auf eine bestimmte Art von Nachricht beschränkt, und die Anmeldung ist nicht auf eine bestimmte Art von Signalübertragung beschränkt.
-
Die unmittelbare Anwendung in einer Ausführungsform bezieht sich auf die Verwaltung des Berechtigungszugriffs und in einer anderen Ausführungsform auf die Verwaltung des Zugriffs auf Daten durch berechtigte Parteien auf Grundlage eines dezentralen Mehr-Faktor-Berechtigungsprüfungsprozesses, darunter die Überprüfung von Soft- und Hardware-Token für eine Blockchain- Berechtigungsprüfung, die mittels Überprüfung von Hard/Soft-Token erfolgt.
-
Beispielhafte Ausführungsformen stellen eine Blockchain bereit, um eine dezentrale Mehr-Faktor- Berechtigungsprüfung zum Bestätigen von Passwörtern, zum Unterstützen von CAC-Systemen, Hardware-Token und/oder zum Verwenden von Biometrie durch die Ausgabe von Soft-Token zu unterstützen. Die Blockchain-Technologie für die Mehr-Faktor-Berechtigungsprüfung stellt eine Unterstützung für ein Validierungsprotokoll bereit, das eine dezentrale Überprüfungsinstanz ermöglicht. Dieser Ansatz unterstützt hohe Verfügbarkeit, hohe Fehlertoleranz, hohe Redundanz usw., damit die Infrastruktur Cyberangriffen standhalten kann.
-
Die Ausgabe von Software-Token stellt eine Möglichkeit bereit, das Eigentum an privaten Informationen mittels Blockchain-Technologie nachzuweisen. Dieser Ansatz ermöglicht eine Ausgabe von Überprüfungs-Token für verschiedene Unternehmen/Blockchains und unterstützt taktische Implementierungen von Cloud-Zugriffskontrollen, die in einer dezentralen Konfiguration funktionieren. Zu weiteren Merkmalen gehören die Blockchain-Adresse und die Schlüsselableitung aus Passwörtern, EPIDs, Hardware-Token-Codes, Biometrie und/oder andere Arten der Berechtigungsprüfung über den Nachweis des Eigentums an privaten Daten mittels öffentlicher Schlüssel in einer Blockchain.
-
Gemäß beispielhaften Ausführungsformen wird die Software-Token-Überprüfung in Verbindung mit Hardware-Token mithilfe einer Blockchain als Verteilungsinfrastruktur verwendet. Der Ansatz ermöglicht eine Ausgabe von Token/Zugriffskontrollen über eine Blockchain und ermöglicht gleichzeitig eine Berechtigungsprüfung von Benutzern in verschiedenen Unternehmen, ohne dass auf das Backend-PKI (z.B. private PKI-Systeme) des DoD zugegriffen werden muss. Dies geschieht durch Erweitern der Grundlogik in einer CAC, um eine Blockchain-Adresse/einen öffentlichen Schlüssel bereitzustellen, die/der anschließend in die Blockchain eingefügt wird, mit der der Benutzer der Karte überprüft und eine Signatur bestätigt wird. Auf ähnliche Weise verfügt jeder Benutzer über einen eigenen Satz von Adressen, in deren Rahmen Software-Token erzeugt werden, die mit der gleichen Rate wie ihre Hardware-Token erzeugt werden. Die Software-Token werden an die Adresse gesendet, um das Eigentum an dem Token nachzuweisen. Jeder Token hat die Form einer Zugriffskontrollregel, die von Diensten benötigt wird, um die Berechtigung des Benutzers zu prüfen. Indem Hardware-Token-Codes mithilfe der Daten in der Blockchain bestätigt werden, wird kein zentraler Backend-Server benötigt, um den Berechtigungsprüfungsprozess zu verwalten. Die von dem Blockchain-Ansatz bereitgestellte Bestätigung unterstützt eine Bestätigung von biometrischen Informationen ohne eine zentrale Instanz, eine Bestätigung von CACs ohne eine zentrale Instanz, eine Überprüfung von Hardware-Token und/oder eine Ausgabe von privaten Netzwerk-Zugriffskontrolllisten (access control list, ACL) in einem öffentlichen Netzwerk. Ein Ansatz besteht darin, eine beliebige Anzahl „N“ von Authentifizierungsfaktoren aus „M“ Authentifizierungsfaktoren insgesamt zu verwenden. Man betrachte zum Beispiel ein System, bei dem zu den Berechtigungsprüfungsfaktoren Passwort, PIN, Bildpasswort, Fingerabdruck und CAC gehören, was in diesem Beispiel insgesamt 5 Faktoren sind. Diese Konfiguration ermöglicht die Registrierung aller 5 Faktoren, indem die öffentlichen Schlüssel, die den Faktoren zugehörig sind, beim Blockchain-Überprüfungsdienst registriert werden. Wenn ein Benutzer auf Berechtigung geprüft werden muss, fordert der Berechtigungsprüfungsdienst von den Benutzern Antworten auf N von M Berechtigungsprüfungsfaktoren (N-Faktoren). Mit Blick auf die 5 oben genannten Faktoren beispielsweise benötigt das System 3 von 5 Faktoren zur Berechtigungsprüfung. Auf diese Weise können Benutzer bei Bedarf Berechtigungsprüfungsfaktoren hinzufügen/entfernen, falls ein Faktor verlorengeht oder gefährdet ist.
-
1A veranschaulicht ein Schlüsselerzeugungsverfahren, bei dem eine Blockchain gemäß beispielhaften Ausführungsformen verwendet wird. Mit Bezug auf 1A umfasst die Konfiguration 100 mehr als eine Option für eine Berechtigungsprüfung, darunter die CAC 112, die Biometrie 114 und/oder ein Hardware-Token (HW-Token) 116. Der Schlüssel kann mit einer dieser Quellen erzeugt werden. Ein Schlüssel kann einen geheimen Schlüssel (SK1), einen öffentlichen Schlüssel (PK1) und eine Blockchain-Adresse (A1) umfassen, wo die Informationen gespeichert werden. In diesem N-Faktor-Authentifizierungsschema 100 wird für jedes der verwendeten privaten Datenelemente ein öffentliches/privates Schlüsselpaar (SK, PK) erzeugt. Teil des Verschlüsselungsprozesses können beispielsweise die EPID, ein Hardware-Token-Code oder einige Bioinformationsdaten sein. Gemäß einem Beispiel kann eine beliebige Kombination von „N“ Schritten verwendet werden. Um beispielsweise einen Multi-Faktor-Berechtigungsprüfungsanbieter zuzulassen, müsste man ein Passwort besitzen, das als „Seed“ (Startwert) verwendet wird, um ein öffentliches/privates Schlüsselpaar zu erzeugen. Als Nächstes wird der öffentliche Schlüssel veröffentlicht und zur Berechtigungsprüfung verwendet. Ferner wird aus dem öffentlichen Schlüssel eine Blockchain-Adresse abgeleitet, die es jedem ermöglicht, über die festgelegten Adressen eine ACL/ein Software-Token, mit der seine Einheit registriert werden kann, an eine zentrale Instanz (z.B. eine Unternehmens-PKI 120) zu senden, die dann eine ACL oder einen Zugriffs-Token erzeugt und an eine bestimmte Adresse 130 in der Blockchain 140 sendet. Zugriffskontrollen können statisch oder dynamisch sein und durch die Verwendung von Smart Contracts/Chaincode durchgesetzt werden. Anstelle einer ACL wird beispielsweise ein Smart-Contract-Hash mit den notwendigen Parametern zum Ausführen des Smart Contract in der Blockchain-Struktur gesendet.
-
1B veranschaulicht ein Schema zur Berechtigungsprüfung einer öffentlichen Adresse, bei dem eine Blockchain-Systemkonfiguration gemäß beispielhaften Ausführungsformen verwendet wird. Mit Bezug auf 1B stellt die Konfiguration 150 ein Verwenden einer öffentlichen Adresse in der Blockchain bereit, um eine Benutzereinheit auf Berechtigung zu prüfen. Wenn sich der Benutzer „A“ 152 zu einem beliebigen Zeitpunkt an einem Netzwerksystem auf Berechtigung prüfen lassen und darauf zugreifen möchte, werden nach dem Registrieren seiner öffentlichen Schlüssel/Adressen und deren Veröffentlichung in der Blockchain 140 auch die ACLs erzeugt und an die Adressen von Benutzer A in der Blockchain gesendet. Im Falle des Hardware-Tokens werden diese ACLs gemäß einem erforderlichen Zeitfenster ausgegeben, und da der Token-Code verwendet wird, um die nächste Adresse von Benutzer A abzuleiten, ist es nicht erforderlich, sie im System zu registrieren, da herkömmliche Infrastrukturen es ermöglichen, dass Hardware-Token mit ihren Heimservern synchronisiert bleiben.
-
Die Berechtigungsprüfungsschritte können dem Benutzer A 152 eine Möglichkeit bereitstellen, eine Anforderung 172 von einer mobilen Einheit oder einer anderen Datenverarbeitungseinheit zu senden, um zu versuchen, auf eine Website 170 zuzugreifen. Die Anforderung kann verschiedene der Einheit zugehörige Adressen wie A1, A2 und Ai enthalten, wobei „i“ die aktuelle Iteration des Hardware-Tokens ist. Die Website 170 fordert diese Daten anschließend von der Blockchain 140 an. Die Website sendet eine Anforderung an die Benutzereinheit mit einer Nonce 174 und wählt eines der zufälligen N Berechtigungsprüfungsmittel aus. Wenn beispielsweise PK1 ausgewählt wird, der zur CAC der Benutzereinheit gehört, empfängt die Einheit den verschlüsselten Text und entschlüsselt ihn mit einem privaten Schlüssel (SK1). Für den Prozess ist erforderlich, dass der Benutzer A 150 eine PIN oder ein anderes geheimes Wort oder einen anderen geheimen Satz eingibt, anschließend wird der SK von dieser EPID abgeleitet oder er ist bereits auf der CAC der Benutzereinheit 150 gespeichert. Die Karte entschlüsselt (176) mit dem SK anschließend den verschlüsselten Text und erhält eine Nonce 2 zurück. Die Website 170 überprüft, ob die Nonce1 == Nonce2 ist (182). Wenn die vorstehend genannte Prüfung durchgeführt wurde, besteht der nächste Schritt darin, dass die Benutzer A gehörende ACL überprüft wird. Wenn die ACL gültig ist (184) (z.B. Benutzer A verfügt über die Berechtigungen), wird der Zugriff gewährt (186), andernfalls wird die Berechtigung von Benutzer A abgelehnt. Ein ähnlicher Ansatz wird für biometrische Daten und den Hardware-Token verwendet. Ein Unterschied besteht darin, dass der Benutzer A im Fall von biometrischen Daten Biometrie bereitstellen muss, anhand der unmittelbar ein Schlüsselpaar erzeugt wird. Die Biometrielogik verwendet dies, um Daten zu signieren/entschlüsseln/verschlüsseln. Im Fall von Biometrie stehen zwei Ausführungsformen zur Verfügung. Eine Ausführungsform verwendet ein zufälliges öffentliches/privates Schlüsselpaar, das mittels Biometrie entsperrt wird, um anhand einer vertrauenswürdigen Einheit auf Berechtigung zu prüfen(z.B. Registrieren/Prüfen auf Berechtigung in einer mobilen Einheit). Eine zweite Ausführungsform sieht vor, biometrische Signalextraktion (z.B. Vorlagenextraktion) sowie Quantisierung zu verwenden, um eine Seed zu erzeugen, die in Kombination mit einem zufälligen Salt (Zufallswert) verwendet werden kann, um ein öffentliches/privates Schlüsselpaar abzuleiten. Das Schema könnte über die Berechtigungsprüfung hinausgehen, da Nachrichten signiert werden können und eine Nachweisbarkeit bereitstellen.
-
2 veranschaulicht eine Blockchain-Architekturkonfiguration gemäß beispielhaften Ausführungsformen. Das Blockchain-System 200 kann bestimmte gemeinsame Blockchain-Elemente enthalten wie beispielsweise eine Gruppe 280 von zugehörigen Blockchain-Peer-Knoten 282 bis 285, die am Blockchain-Transaktionsprozess der Addition und Bestätigung (Konsens) teilnehmen und/oder Zugang zur Blockchain haben können. Jeder der Blockchain-Peer-Knoten 280 kann neue Transaktionen initiieren und versuchen, in das unveränderliche Blockchain-Ledger 272 zu schreiben, von dem eine Kopie in der zugrunde liegenden physischen Infrastruktur 271 gespeichert ist. In dieser Konfiguration kann die benutzerspezifische Blockchain-Konfiguration eine oder mehrere Anwendungen 277 enthalten, die mit den APIs 276 verknüpft sind, um auf gespeicherten Programm-/Anwendungscode zuzugreifen und diesen auszuführen (275) (z.B. Chaincode und/oder Smart Contracts), die gemäß der von den Teilnehmern gewünschten benutzerspezifischen Konfiguration erzeugt werden und ihren eigenen Zustand verwalten, eigene Assets kontrollieren und externe Informationen empfangen können. Dieser Code kann als Transaktion bereitgestellt und mittels Anhängen an das verteilte Ledger auf allen Blockchain-Peer-Knoten installiert werden.
-
Die Blockchain-Basis 270 enthält die verschiedenen Schichten von Blockchain-Daten, Dienste (z.B. kryptographische Treuhanddienste, virtuelle Ausführungsumgebung) und die zugrunde liegende physische Computerinfrastruktur, die für ein Empfangen und Speichern neuer Transaktionen und den Zugriff auf Prüfer erforderlich ist, die auf Dateneingaben zugreifen möchten. Die Blockchain-Schicht 272 stellt eine Schnittstelle zur Verfügung, die Zugriff auf die virtuelle Ausführungsumgebung bereitstellt, die zum Verarbeiten des Programmcodes und Aktivieren der physischen Plattform 271 erforderlich ist. Die kryptographischen Treuhanddienste 273 werden verwendet, um Transaktionen zu überprüfen und Informationen privat zu halten. Gemäß beispielhaften Ausführungsformen kann das Blockchain-Ledger Adressinformationen und andere Daten wie z.B. die Token 278 für verschiedene Benutzereinheiten speichern. Diese Token und andere Berechtigungsprüfungsdaten können verwendet werden, um diese Einheiten auf Berechtigung zu prüfen, wenn sie auf eine sichere Website eines Dritten zugreifen möchten. Die Blockchain-Konfiguration von 2 kann den Programm-/Anwendungscode 175 über die von der Blockchain-Plattform 270 bereitgestellten Schnittstellen und Dienste verarbeiten und ausführen. Der Code kann Blockchain-Assets steuern, z.B. Daten speichern und übertragen, und kann von der Blockchain in Form eines Smart Contract ausgeführt werden, der Chaincode mit Bedingungen oder andere, von seiner Ausführung abhängige Code-Elemente enthält.
-
3 veranschaulicht ein Schaubild 300 einer Systemnachrichtenübermittlung der Interaktionen zwischen einer Reihe von Komponenten oder Modulen, die Software, Hardware oder eine Kombination aus beiden enthalten können. Die Komponenten können gemäß beispielhaften Ausführungsformen eine erste Komponente wie Benutzereinheiten, eine zweite Komponente wie eine PKI und eine dritte Komponente wie eine Blockchain enthalten. Mit Bezug auf 3 kann eine Benutzereinheit 310 Zugriff auf verschiedene in der Blockchain 330 gespeicherte Benutzerprofilinformationen haben wollen. Um Zugriff zu erhalten, kann es in einem Prozess vorgesehen sein, dass Schlüssel und eindeutige Adressen erzeugt werden, um die Schlüssel 312 zu speichern. Der öffentliche Schlüssel 313 kann auf Grundlage eines über die PKI 320 erzeugten Schlüssels gespeichert (314) und in einer Blockchain 330 gespeichert werden. Die Benutzereinheit kann registriert werden (316), und wenn nachfolgende Zugriffsversuche unternommen werden (318), können die gespeicherten Berechtigungsdaten aus der Blockchain 322 abgerufen und als verschlüsselte Nachricht 324 weitergeleitet werden. Eine entschlüsselte Nachrichtenantwort 326 kann die richtigen Berechtigungsdaten angeben, die überprüft werden können (328), damit der Zugriff bereitgestellt werden kann (332).
-
In einer Ausführungsform kann es sich bei der ersten Komponente, der zweiten Komponente und der dritten Komponente um separate Einheiten wie Server, Computer oder andere Datenverarbeitungseinheiten handeln oder es kann sich um eine einzelne Einheit handeln. In anderen Ausführungsformen können die erste Komponente und die zweite Komponente als eine einzelne Einheit enthalten sein oder als eine solche funktionieren, die erste Komponente und die dritte Komponente können als eine einzelne Einheit enthalten sein oder als eine solche funktionieren, und die zweite Komponente und die dritte Komponente können als eine einzelne Einheit enthalten sein oder als eine solche funktionieren. Die Komponenten oder Einheiten 310, 320 und 330 können direkt miteinander verbunden sein oder zum Datenaustausch drahtgebunden oder drahtlos miteinander verbunden sein und können sich an Ort und Stelle und/oder entfernt angeordnet befinden.
-
4A veranschaulicht einen Ablaufplan 400 eines beispielhaften Verfahrens zum Verwalten der Berechtigungsprüfung in der Blockchain gemäß beispielhaften Ausführungsformen. Mit Bezug auf 4 kann das Verfahren umfassen, dass ein öffentlicher Schlüssel und eine oder mehrere entsprechende Adressen, die einem Benutzerprofil zugehörig sind, in einer Blockchain 412 gespeichert werden, Berechtigungsdaten für das Benutzerprofil auf Grundlage des öffentlichen Schlüssels 414 erzeugt werden, die Berechtigungsdaten an die eine oder die mehreren Adressen 416 weitergeleitet werden, eine Anforderung für den Zugriff auf eine Website von einer dem Benutzerprofil 418 zugehörigen Benutzereinheit empfangen wird und die Berechtigungsdaten auf Grundlage der einen oder mehreren Adressen aus der Blockchain 420 abgerufen werden.
-
Bei den Berechtigungsdaten handelt es sich um eine Zugriffskontrollliste (ACL). Die Berechtigungsdaten werden innerhalb eines begrenzten Zeitfensters erzeugt. Die eine oder die mehreren Adressen enthalten eine Mehrzahl von Adresspositionen, die einer Mehrzahl von Berechtigungsdaten bei einer Mehrzahl von Iterationen von Zugriffsversuchen entsprechen. Die Anforderung enthält die Mehrzahl von Adresspositionen. Das Verfahren kann ferner als Reaktion auf ein Empfangen der Anforderung umfassen, dass eine verschlüsselte Nachricht an die Benutzereinheit übertragen wird und eine entschlüsselte Nachricht auf Grundlage der verschlüsselten Nachricht empfangen wird. Das Verfahren kann weiterhin umfassen, dass der entschlüsselte Nachrichteninhalt der entschlüsselten Nachricht mit dem verschlüsselten Nachrichteninhalt der verschlüsselten Nachricht verglichen wird, und wenn der entschlüsselte Nachrichteninhalt mit dem verschlüsselten Nachrichteninhalt übereinstimmt, wird überprüft, ob die Berechtigungsdaten gültig sind, und ist dies der Fall, wird der Zugriff auf die Benutzereinheit gewährt.
-
4B veranschaulicht einen anderen Ablaufplan 450 eines beispielhaften Verfahrens zum Verwalten der Berechtigungsprüfung in der Blockchain gemäß beispielhaften Ausführungsformen. Mit Bezug auf 4B kann das Verfahren umfassen, dass ein öffentlicher Schlüssel und eine oder mehrere entsprechende Adressen, die einem Benutzerprofil zugehörig sind, in einer Blockchain 452 gespeichert werden, eine dem Benutzerprofil 454 zugehörige biometrische Datenprobe empfangen wird, ein oder mehrere biometrische Elemente aus der biometrischen Datenprobe 456 extrahiert werden, Berechtigungsdaten für das Benutzerprofil auf Grundlage des öffentlichen Schlüssels und des einen oder der mehreren biometrischen Elemente 458 erzeugt werden, die Berechtigungsdaten in der Blockchain 462 gespeichert werden, eine Anforderung für den Zugriff auf eine Website von einer dem Benutzerprofil 464 zugehörigen Benutzereinheit empfangen wird, die Berechtigungsdaten aus der Blockchain 466 abgerufen werden und die Anforderung für den Zugriff auf die Website 468 erlaubt wird.
-
Der Registrierungsprozess beginnt mit dem Erzeugen eines öffentlichen/privaten Schlüsselpaares, das einen öffentlichen Schlüssel und einen privaten Schlüssel aufweist. Tatsächlich wird ein asymmetrisches Verschlüsselungssystem erzeugt, bei dem der öffentliche Schlüssel allgemein bekannt und/oder Personen zugänglich sein soll, bei denen es sich nicht um die mitwirkende Person handelt, während der private Schlüssel privat aufbewahrt werden und nur der mitwirkenden Person bekannt sein soll. Nachdem der private Schlüssel im Registrierungsprozess verwendet wurde, um eine Kennung zu erzeugen, sollte er entweder in einer sicheren Speichereinheit gespeichert, zerstört oder anderweitig geheim gehalten werden. Das öffentliche/private Schlüsselpaar wird verwendet, um eine Transaktionsanforderung zu ändern und zu verschlüsseln. Bei der Transaktionsanforderung kann es sich um eine Transaktionsnachricht oder einen anderen verschlüsselten Eintrag in einem Transaktions-Ledger handeln. Als Nächstes wird eine biometrische Probe zusammen mit einer PIN oder einem Passwort oder einer anderen Art der Datensicherung empfangen. Eine biometrische Extraktion kann verwendet werden, um biometrische Merkmale aus der biometrischen Probe abzuleiten. Die biometrischen Elemente, der private Schlüssel und optional weitere Daten werden verwendet, um die Eingaben zu verbinden und eine Einbettungsfunktion auszugeben, die anschließend durch eine kryptographische Einwegfunktion transformiert wird, die eine kombinierten Kennung ausgibt, die von externen Parteien nicht ohne Weiteres wiederhergestellt werden kann.
-
Die vorstehenden Ausführungsformen können in Hardware, in einem von einem Prozessor ausgeführten Computerprogramm, in Firmware oder in einer Kombination des vorstehend Genannten implementiert werden. Ein Computerprogramm kann auf einem durch einen Computer lesbaren Medium wie beispielsweise einem Speichermedium ausgeführt werden. Ein Computerprogramm kann sich beispielsweise in einem Direktzugriffsspeicher („RAM“), einem Flash-Speicher, einem Nur-Lese-Speicher („ROM“), einem löschbaren programmierbaren Nur-Lese-Speicher („EPROM“), einem elektrisch löschbaren programmierbaren Nur-Lese-Speicher („EEPROM“), in Registern, auf einer Festplatte, auf einer Wechselplatte, in einem Compact-Disc-Nur-Lese-Speicher („CD-ROM“) oder auf jeder anderen in der Technik bekannten Form von Speichermedium befinden.
-
Ein beispielhaftes Speichermedium kann mit dem Prozessor verbunden werden, sodass der Prozessor Informationen aus dem Speichermedium lesen und in das Speichermedium schreiben kann. Alternativ kann das Speichermedium in den Prozessor integriert sein. Der Prozessor und das Speichermedium können sich in einer anwendungsspezifischen integrierten Schaltung („ASIC“) befinden. Alternativ können der Prozessor und das Speichermedium als einzelne Komponenten vorliegen. 5 veranschaulicht z.B. ein beispielhaftes Netzwerkelement 500, das eine der vorstehend beschriebenen Komponenten darstellen oder in eine der vorstehend beschriebenen Komponenten integriert sein kann usw.
-
Wie in 5 veranschaulicht können ein Speicher 510 und ein Prozessor 520 einzelne Komponenten einer Netzwerkentität 500 sein, die dazu dienen, eine Anwendung oder eine Reihe von hierin beschriebenen Schritten auszuführen. Die Anwendung kann in Software in einer vom Prozessor 520 verstandenen Computersprache codiert und auf einem durch einen Computer lesbaren Medium wie beispielsweise einem Speicher 510 gespeichert werden. Bei dem durch einen Computer lesbaren Medium kann es sich um ein nichtflüchtiges, durch einen Computer lesbares Medium handeln, das physische Hardware-Komponenten wie beispielsweise Speicher umfasst, die Software speichern können. Darüber hinaus kann ein Software-Modul 530 eine andere einzelne Entität sein, die Teil der Netzwerkentität 500 ist und Software-Anweisungen enthält, die vom Prozessor 520 ausgeführt werden können, um eine oder mehrere der hierin beschriebenen Funktionen auszuführen. Zusätzlich zu den oben genannten Komponenten der Netzwerkentität 500 kann die Netzwerkentität 500 auch ein Sender- und Empfängerpaar aufweisen, das so konfiguriert ist, dass es Datenübertragungssignale empfängt und sendet (nicht dargestellt).
-
Eine beispielhafte Ausführungsform eines Systems und/oder eines Verfahrens und/oder eines nichtflüchtigen, durch einen Computer lesbaren Mediums wurde in den beiliegenden Zeichnungen zwar veranschaulicht und in der vorstehenden ausführlichen Beschreibung beschrieben, es versteht sich jedoch, dass die Anmeldung nicht auf die offenbarten Ausführungsformen beschränkt ist, sondern dass zahlreichen neue Anordnungen, Änderungen und Ersetzungen möglich sind, wie sie in den folgenden Ansprüchen dargelegt und definiert sind. Die Fähigkeiten des Systems der verschiedenen Figuren können beispielsweise durch ein(e) oder mehrere der hierin beschriebenen Module oder Komponenten oder in einer verteilten Architektur ausgeführt werden und können einen Sender, einen Empfänger oder ein Paar von beiden enthalten. Die von den einzelnen Modulen ausgeführte Funktionalität kann beispielsweise ganz oder teilweise von einem oder mehreren dieser Module ausgeführt werden. Darüber hinaus kann die hierin beschriebene Funktionalität zu verschiedenen Zeiten und in Bezug auf verschiedene Ereignisse innerhalb oder außerhalb der Module oder Komponenten ausgeführt werden. Die zwischen verschiedenen Modulen gesendeten Informationen können ferner zwischen den Modulen übertragen werden: durch ein Datennetzwerk und/oder das Internet und/oder ein Sprachnetzwerk und/oder ein Internet-Protokoll-Netzwerk und/oder eine drahtlose Einheit und/oder eine drahtgebundene Einheit und/oder über eine Mehrzahl von Protokollen. Die von einem der Module gesendeten oder empfangenen Nachrichten können des Weiteren direkt und/oder über eines oder mehrere der anderen Module gesendet oder empfangen werden.
-
Für einen Fachmann ist offensichtlich, dass ein „System“ als Personal Computer, Server, Konsole, Personal Digital Assistant (PDA), Mobiltelefon, Tablet-Datenverarbeitungseinheit, Smartphone oder eine andere geeignete Datenverarbeitungseinheit oder eine Kombination von Einheiten ausgeführt werden kann. Die Darstellung der oben beschriebenen Funktionen als von einem „System“ ausgeführt soll den Umfang der vorliegenden Anmeldung in keiner Weise einschränken, sondern ein Beispiel für viele Ausführungsformen darstellen. Tatsächlich können die hierin offenbarten Verfahren, Systeme und Vorrichtungen in lokalisierter und verteilter Form im Einklang mit der Datenverarbeitungstechnologie implementiert werden.
-
Es ist zu beachten, dass einige der in dieser Beschreibung vorgestellten Systemeigenschaften als Module vorgestellt wurden, um ihre Implementierungsunabhängigkeit besonders hervorzuheben. Ein Modul kann beispielsweise als Hardware-Schaltung implementiert werden, die kundenspezifische VLSI-Schaltungen (VLSI = Very Large Scale Integration) oder Gate-Anordnungen, handelsübliche Halbleiter wie Logikchips, Transistoren oder andere einzelne Komponenten aufweist. Ein Modul kann auch in programmierbaren Hardware-Einheiten wie vor Ort programmierbaren Gate-Anordnungen, programmierbaren Logikanordnungen, programmierbaren Logikeinheiten, Grafikverarbeitungseinheiten oder Ähnlichem implementiert werden.
-
Ein Modul kann auch zumindest teilweise in Software implementiert werden, um von verschiedenen Arten von Prozessoren ausgeführt zu werden. Eine identifizierte Einheit von ausführbarem Code kann beispielsweise einen oder mehrere physische oder logische Blöcke von Computeranweisungen aufweisen, die beispielsweise als Objekt, Verfahren oder Funktion aufgebaut sein können. Die ausführbaren Dateien eines identifizierten Moduls müssen sich jedoch nicht physisch an der gleichen Stelle befinden, sondern können unterschiedliche Anweisungen aufweisen, die an verschiedenen Stellen gespeichert sind, die, nachdem sie logisch verbunden werden, das Modul aufweisen und den angegebenen Zweck für das Modul erfüllen. Darüber hinaus können Module auf einem durch einen Computer lesbaren Medium gespeichert werden, bei dem es sich beispielsweise um eine Festplatte, eine Flash-Einheit, ein Direktzugriffsspeicher (RAM), ein Band oder ein anderes solches Medium zum Speichern von Daten handeln kann.
-
Tatsächlich kann ein Modul aus ausführbarem Code eine einzelne Anweisung oder viele Anweisungen enthalten und sogar über mehrere verschiedene Code-Segmente, zwischen verschiedenen Programmen und über mehrere Speichereinheiten verteilt sein. Ebenso können Betriebsdaten identifiziert und hierin in Modulen dargestellt werden und in jeder geeigneten Form ausgeführt und in jeder geeigneten Art von Datenstruktur aufgebaut sein. Die Betriebsdaten können als ein einzelner Datensatz erfasst oder über verschiedene Orte verteilt sein, darunter verschiedene Speichereinheiten, und zumindest teilweise nur als elektronische Signale in einem System oder Netzwerk vorliegen.
-
Es versteht sich, dass die Komponenten der Anmeldung, wie sie in den Figuren hierin allgemein beschrieben und veranschaulicht sind, in vielen verschiedenen Konfigurationen angeordnet und ausgelegt sein können. Die ausführliche Beschreibung der Ausführungsformen soll daher den Umfang der beanspruchten Anmeldung nicht einschränken, sondern stellt lediglich ausgewählte Ausführungsformen der Anmeldung dar.
-
Für einen Fachmann ist leicht verständlich, dass das vorstehend Genannte mit Schritten in einer anderen Reihenfolge und/oder mit Hardware-Elementen in Konfigurationen durchgeführt werden kann, die sich von den offenbarten Schritten unterscheiden. Die Anmeldung wurde zwar auf Grundlage dieser bevorzugten Ausführungsformen beschrieben, für Fachleute ist jedoch offensichtlich, dass bestimmte Änderungen, Variationen und andere Ausbildungen möglich sind.
-
In der vorliegenden Anmeldung wurden zwar bevorzugte Ausführungsformen beschrieben, es ist jedoch offensichtlich, dass die beschriebenen Ausführungsformen nur veranschaulichend sind und der Anwendungsbereich der Anmeldung ausschließlich durch die beigefügten Ansprüche zu definieren ist, wenn dabei eine umfassende Bandbreite von Äquivalenten und Änderungen (z.B. Protokolle, Hardware-Einheiten, Software-Plattformen usw.) berücksichtigt werden.