DE112021000340T5 - Sichere private schlüsselverteilung zwischen endpunktinstanzen - Google Patents

Sichere private schlüsselverteilung zwischen endpunktinstanzen Download PDF

Info

Publication number
DE112021000340T5
DE112021000340T5 DE112021000340.2T DE112021000340T DE112021000340T5 DE 112021000340 T5 DE112021000340 T5 DE 112021000340T5 DE 112021000340 T DE112021000340 T DE 112021000340T DE 112021000340 T5 DE112021000340 T5 DE 112021000340T5
Authority
DE
Germany
Prior art keywords
key
signature key
authority
authorization
private
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE112021000340.2T
Other languages
English (en)
Inventor
Michael Beck
Martin Smolny
Thomas Duerr
Georg Ochs
Gerald McBrearty
Stephen SooHoo
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE112021000340T5 publication Critical patent/DE112021000340T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/083Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
    • H04L9/3073Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves involving pairings, e.g. identity based encryption [IBE], bilinear mappings or bilinear pairings, e.g. Weil or Tate pairing

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Optimization (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Algebra (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Storage Device Security (AREA)
  • Small-Scale Networks (AREA)
  • Maintenance And Inspection Apparatuses For Elevators (AREA)
  • Transmitters (AREA)

Abstract

Ein Verfahren, ein Computerprogrammprodukt und ein System zum Verteilen eines privaten Signaturschlüssels zwischen Autorisierungsinstanzen. Das Verfahren umfasst ein Registrieren einer Mehrzahl von Autorisierungsinstanzen in einer Konfigurationsdatei und ein Generieren von Host-Instanz-Schlüsselpaaren durch jede der Autorisierungsinstanzen. Das Verfahren umfasst auch ein Speichern der öffentlichen Host-Schlüssel in der gemeinsam genutzten Datenbank und ein Wählen von einer der Autorisierungsinstanzen als führende Signaturschlüssel-Instanz. Das Verfahren umfasst ein Generieren, durch die führende Signaturschlüssel-Instanz, eines Signaturschlüsselpaars. Das Signaturschlüsselpaar umfasst einen öffentlichen Signaturschlüssel und einen privaten Signaturschlüssel. Das Verfahren umfasst auch ein Speichern des öffentlichen Signaturschlüssels in der gemeinsam genutzten Datenbank und ein Übertragen eines verschlüsselten privaten Signaturschlüssels zu einer anfordernden Autorisierungsinstanz von den Autorisierungsinstanzen. Das Verfahren umfasst ferner ein Entschlüsseln des verschlüsselten privaten Signaturschlüssels durch Verwenden des privaten Host-Schlüssels, der durch die anfordernde Autorisierungsinstanz generiert wurde.

Description

  • HINTERGRUND
  • Die vorliegende Offenbarung betrifft die Verteilung von privaten Schlüsseln und insbesondere ein Bereitstellen einer Verteilung von privaten Schlüsseln zwischen Endpunktinstanzen, die zum Generieren und Validieren von Zugriffstoken verwendet werden.
  • Web-Anwendungsprogrammierschnittstellen (API) können Benutzern Autorisierungsanforderungen aufzwingen, bevor Zugriff auf deren Dienste und Ressourcen bereitgestellt wird. Web-APIs können Autorisierungsendpunkte verwenden, um Zugriffstoken für Benutzer mit überprüften Anmeldedaten zu generieren. In jeder anschließenden Anforderung kann der Benutzer das Zugriffstoken bereitstellen, um Zugriff auf Routen, Dienste und Ressourcen zu erlangen, die durch die Web-API angeboten werden. Diese Zugriffstoken können in Form eines JavaScript-Object-Notation- (JSON) Web-Tokens (JWT) vorliegen. Ein JWT kann einen Header, Nutzinformationen und eine Signatur umfassen. Der Header umfasst Metadaten über den verwendeten Token-Typ und die kryptografischen Algorithmen, die zum Schützen ihrer Inhalte verwendet werden. Die Nutzinformationen können einen Satz von Ansprüchen umfassen, die Anweisungen zu den Berechtigungen sind, die erlaubt werden sollen. Die Signatur kann verwendet werden, um zu validieren, ob das Token vertrauenswürdig ist und um sicherzustellen, dass keine Manipulation vorliegt.
  • Ein Dienst-Cluster ist eine Gruppe von Computern, die Server-Anwendungen unterstützen und als ein einziges System arbeiten. Die Web-API kann in einem Dienst-Cluster zum Verteilen von Datenverkehr zwischen den verschiedenen Computern in dem Cluster eingesetzt werden. Die Verteilung des Datenverkehrs kann Lastausgleich unterstützen, hohe Verfügbarkeit bieten und eine geringere Latenz gegenüber herkömmlichen Server-Umsetzungen bereitstellen.
  • KURZDARSTELLUNG DER ERFINDUNG
  • Ausführungsformen der vorliegenden Offenbarung umfassen ein durch einen Computer umgesetztes Verfahren zum Verteilen eines privaten Signaturschlüssels zwischen Autorisierungsinstanzen. Das durch einen Computer umgesetzte Verfahren umfasst ein Registrieren einer Mehrzahl von Autorisierungsinstanzen in einer Konfigurationsdatei. Die Autorisierungsinstanzen sind an einem allgemeinen Dienst beteiligt. Der allgemeine Dienst ist eine Generierung und Validierung von Zugriffstoken. Das durch einen Computer umgesetzte Verfahren umfasst ferner ein Generieren von Host-Instanz-Schlüsselpaaren durch jede der Autorisierungsinstanzen. Jedes der Host-Instanz-Schlüsselpaare umfasst einen öffentlichen Host-Schlüssel und einen privaten Host-Schlüssel. Das durch einen Computer umgesetzte Verfahren umfasst auch ein Speichern der öffentlichen Host-Schlüssel in der gemeinsam genutzten Datenbank und ein Wählen von einer der Autorisierungsinstanzen als führende Signaturschlüssel-Instanz. Das durch einen Computer umgesetzte Verfahren umfasst ein Generieren, durch die führende Signaturschlüssel-Instanz, eines Signaturschlüsselpaars. Das Signaturschlüsselpaar umfasst einen öffentlichen Signaturschlüssel und einen privaten Signaturschlüssel. Das durch einen Computer umgesetzte Verfahren umfasst auch ein Speichern des öffentlichen Signaturschlüssels in der gemeinsam genutzten Datenbank und ein Übertragen eines verschlüsselten privaten Signaturschlüssels zu einer anfordernden Autorisierungsinstanz in dem allgemeinen Dienst der Autorisierungsinstanzen. Der verschlüsselte private Signaturschlüssel wird durch Verwenden des öffentlichen Host-Schlüssels verschlüsselt, der der anfordernden Autorisierungsinstanz entspricht. Das durch einen Computer umgesetzte Verfahren umfasst ferner ein Entschlüsseln des verschlüsselten privaten Signaturschlüssels durch Verwenden des privaten Host-Schlüssels, der durch die anfordernde Autorisierungsinstanz generiert wurde.
  • Weitere Ausführungsformen der vorliegenden Offenbarung umfassen ein Computerprogrammprodukt zum Verteilen eines privaten Signaturschlüssels zwischen Autorisierungsinstanzen, das ein durch einen Computer lesbares Speichermedium mit einer darauf verkörperten Programmanweisung umfassen kann, wobei die Programmanweisung durch einen Prozessor ausführbar ist, um den Prozessor zu veranlassen, ein Verfahren durchzuführen. Das Verfahren umfasst ein Registrieren einer Mehrzahl von Autorisierungsinstanzen in einer Konfigurationsdatei. Die Autorisierungsinstanzen sind an einem allgemeinen Dienst beteiligt. Der allgemeine Dienst ist eine Generierung und Validierung von Zugriffstoken. Das Verfahren umfasst ferner ein Generieren von Host-Instanz-Schlüsselpaaren durch jede der Autorisierungsinstanzen. Jedes der Host-Instanz-Schlüsselpaare umfasst einen öffentlichen Host-Schlüssel und einen privaten Host-Schlüssel. Das Verfahren umfasst auch ein Speichern der öffentlichen Host-Schlüssel in der gemeinsam genutzten Datenbank und ein Wählen von einer der Autorisierungsinstanzen als führende Signaturschlüssel-Instanz. Das Verfahren umfasst ein Generieren, durch die führende Signaturschlüssel-Instanz, eines Signaturschlüsselpaars. Das Signaturschlüsselpaar umfasst einen öffentlichen Signaturschlüssel und einen privaten Signaturschlüssel. Das Verfahren umfasst auch ein Speichern des öffentlichen Signaturschlüssels in der gemeinsam genutzten Datenbank und ein Übertragen eines verschlüsselten privaten Signaturschlüssels zu einer anfordernden Autorisierungsinstanz in dem allgemeinen Dienst der Autorisierungsinstanzen. Der verschlüsselte private Signaturschlüssel wird durch Verwenden des öffentlichen Host-Schlüssels verschlüsselt, der der anfordernden Autorisierungsinstanz entspricht. Das Verfahren umfasst ferner ein Entschlüsseln des verschlüsselten privaten Signaturschlüssels durch Verwenden des privaten Host-Schlüssels, der durch die anfordernde Autorisierungsinstanz generiert wurde.
  • Weitere Ausführungsformen betreffen ein Verteilungssystem für private Schlüssel zum Verteilen eines privaten Signaturschlüssels zwischen Autorisierungsinstanzen, die konfiguriert sind, um das oben beschriebene Verfahren durchzuführen. Die vorliegende Kurzdarstellung ist nicht dazu gedacht, jeden Aspekt jeder Umsetzung und/oder jeder der vorliegenden Offenbarung zu veranschaulichen.
  • Figurenliste
  • Diese und weitere Funktionen, Aspekte und Vorteile der Ausführungsformen der Offenbarung werden unter Bezugnahme auf die folgende Beschreibung, Ansprüche im Anhang und begleitende Figuren verständlich, in denen:
    • 1 ein Blockschaubild ist, das ein Verteilungssystem für private Schlüssel gemäß Ausführungsformen der vorliegenden Offenbarung veranschaulicht.
    • 2 eine Datenflussdarstellung ist, die eine Verteilung von privaten Schlüsseln zwischen Autorisierungsinstanzen gemäß Ausführungsformen der vorliegenden Offenbarung veranschaulicht.
    • 3 ein Ablaufplan eines Verteilungsprozesses für private Schlüssel gemäß Ausführungsformen der vorliegenden Offenbarung ist.
    • 4 ein Ablaufplan eines Anforderungsprozesses für private Schlüssel gemäß Ausführungsformen der vorliegenden Offenbarung ist.
    • 5 ein Übersichtsblockschaubild ist, das ein beispielhaftes Computersystem veranschaulicht, das beim Umsetzen von einem oder mehreren der Verfahren, Werkzeuge und Module und allen zugehörigen Funktionen gemäß Ausführungsformen der vorliegenden Offenbarung verwendet werden kann, die hierin beschrieben werden.
    • 6 eine Cloud-Computing-Umgebung gemäß Ausführungsformen der vorliegenden Offenbarung darstellt.
    • 7 Abstraktionsmodellschichten gemäß Ausführungsformen der vorliegenden Offenbarung darstellt.
  • Obwohl sich die vorliegende Offenbarung für verschiedene Modifizierungen und alternative Formen eignet, werden Besonderheiten davon als Beispiel in den Zeichnungen ausgewiesen und werden ausführlich beschrieben. Es sollte jedoch klar sein, dass die Offenbarung keinesfalls auf die beschriebenen speziellen Ausführungsformen eingeschränkt werden soll. Die Erfindung soll im Gegenteil alle Modifizierungen, Entsprechungen und Alternativen abdecken, die unter den Schutzumfang der vorliegenden Offenbarung fallen. Gleiche Bezugszeichen werden zum Bezeichnen gleicher Teile in den begleitenden Zeichnungen verwendet.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Die vorliegende Offenbarung betrifft die Verteilung von privaten Schlüsseln und insbesondere ein Bereitstellen einer Verteilung von privaten Schlüsseln zwischen Endpunktinstanzen, die zum Generieren und Validieren von Zugriffstoken verwendet werden. Obwohl die vorliegende Offenbarung nicht notwendigerweise auf derartige Anwendungen beschränkt ist, können verschiedene Aspekte der Offenbarung durch eine Erläuterung von verschiedenen Beispielen unter Verwendung dieses Kontexts gewürdigt werden.
  • Eine Web-API ist eine programmierbare Schnittstelle, die aus einem oder mehreren öffentlich sichtbaren Endpunkten besteht. Die sichtbaren Endpunkte können von der Web-API verwendet werden, um zwei Systemen einen Datenaustausch untereinander zu ermöglichen. Die Endpunkte geben an, wie auf eine Ressource oder einen Dienst zugegriffen wird. Wenn ein System auf eine Ressource eines anderen Systems zugreifen möchte, muss es durch einen angegebenen Endpunkt gehen, der durch die Web-API angeboten wird.
  • Eine Web-API kann Autorisierungsendpunkte verwenden, um Zugriffstoken zu generieren und an Systeme zu verteilen, denen Zugriff auf die Web-API gewährt wurde. Ein System kann diese Zugriffstoken in nachfolgenden Abfragen verwenden, um auf Ressourcen und Dienste zugreifen zu dürfen, die durch die WEB-API angeboten werden. Zugriffstoken werden in der Regel in einem JWT-Format mit digitalen Signaturen angezeigt, die die Authentizität des JWTs überprüfen. Diese Signaturen können durch Verwenden von asymmetrischer Kryptografie verschlüsselt werden.
  • Unter asymmetrischer Kryptografie ist ein kryptografisches System zu verstehen, das Schlüsselpaare verwendet. Schlüsselpaare umfassen einen öffentlichen Schlüssel und einen privaten Schlüssel. Öffentliche Schlüssel können weitverbreitet weitergegeben werden, und die privaten Schlüssel werden nur vom Eigentümer des Schlüssels aufbewahrt. In diesem kryptografischen System kann jede Person oder jedes System eine Nachricht durch Verwenden des öffentlichen Schlüssels verschlüsseln, aber diese verschlüsselte Nachricht kann nur mit dem privaten Schlüssel des Eigentümers entschlüsselt werden. Schlüsselpaare können auch zum Erstellen einer digitalen Signatur verwendet werden. Eine digitale Signatur kann ein Satz von Algorithmen und ein Verschlüsselungsschutz sein, die zum Bestimmen der Authentizität eines Dokuments oder einer Software verwendet werden.
  • Endpunkte können in einem Dienst-Cluster arbeiten, um Internet-Datenverkehr zu verteilen, der in eine Web-API gelangt. Ein Dienst-Cluster kann Lastausgleich zwischen Instanzen anbieten und die Latenz zwischen der Web-API und Anwendungen verringern. Außerdem hat die Web-API eine höhere Verfügbarkeit aufgrund der Redundanz, die durch Dienst-Cluster bereitgestellt wird. Wenn eine Instanz offline geht oder abschaltet, kann eine andere Instanz mit dem Durchführen der angeforderten Arbeit fortfahren.
  • Wenn ein Dienst-Cluster als Autorisierungsendpunkt verwendet wird, werden mehrere Autorisierungsinstanzen generiert, um dieselbe Aufgabe durchzuführen. Diese Autorisierungsinstanzen können lokal, regional oder global verstreut sein, um eine Verringerung von Latenz zwischen einer Anwendung und einer Web-API zu unterstützen. Damit eine Autorisierungsinstanz arbeiten kann, muss sie JWT-Zugriffstoken für Anwendungen mit den entsprechenden Anmeldedaten bereitstellen. Diese Zugriffstoken umfassen Signaturen, die die Zugriffstoken validieren. Signaturen werden durch Verwenden eines Signaturschlüsselpaars verschlüsselt, um für das Zugriffstoken Schutz bereitzustellen und Validität sicherzustellen. Eine Konfigurationsdatei mit einem privaten Signaturschlüssel wird an jede Autorisierungsinstanz in dem Dienst-Cluster geschickt. Die Autorisierungsinstanzen können den privaten Signaturschlüssel zum Verschlüsseln des Signaturabschnitts des Zugriffstokens verwenden, bevor dieses für eine autorisierte Anwendung bereitgestellt wird.
  • Einschränkungen des Schutzes der Autorisierungsinstanz bleiben jedoch, da private Signaturschlüssel in einer Konfigurationsdatei an jede Autorisierungsinstanz verteilt werden. Diese Konfigurationsdateien werden in einem permanenten Speicher gespeichert. Ein Angreifer kann eine Autorisierungsinstanz kompromittieren und Zugriff auf den permanenten Speicher der Maschine erlangen. Nach einem Kompromittieren kann der Angreifer die Konfigurationsdatei kopieren und den privaten Signaturschlüssel extrahieren. Der private Signaturschlüssel könnte dann von dem Angreifer verwendet werden, um Zugriffstoken zu generieren und Zugriff auf Ressourcen zu erlangen, die durch die Web-API bereitgestellt werden.
  • Ausführungsformen der vorliegenden Offenbarung können die vorgenannten und andere Probleme durch Verwenden eines Verteilungssystems für private Schlüssel überwinden, um private Signaturschlüssel zwischen Autorisierungsinstanzen zu verteilen. Das Verteilungssystem für private Schlüssel umfasst eine Mehrzahl von Autorisierungsinstanzen, die an einem allgemeinen Dienst beteiligt sind. Der durch die Autorisierungsinstanzen durchgeführte allgemeine Dienst besteht darin, Zugriffstoken für autorisierte Anwendungen zu generieren und bereitzustellen. Jede Autorisierungsinstanz ist konfiguriert, um Host-Instanz-Schlüsselpaare zu generieren. Eine Autorisierungsinstanz wird als eine führende Signaturschlüssel-Instanz ausgewählt, die konfiguriert ist, um ein Signaturschlüsselpaar zu generieren. Die führende Signaturschlüssel-Instanz ist ferner konfiguriert, um den privaten Signaturschlüssel bei Anforderung auf jede der Autorisierungsinstanzen zu verteilen. Die führende Signaturschlüssel-Instanz ist auch konfiguriert, um den privaten Signaturschlüssel durch Verwenden des öffentlichen Host-Schlüssels zu verschlüsseln, der der anfordernden Autorisierungsinstanz entspricht.
  • Insbesondere wählt das hierin beschriebene Verteilungssystem für private Schlüssel eine führende Signaturschlüssel-Instanz aus den Autorisierungsinstanzen, um einen privaten Signaturschlüssel zu generieren und zu verteilen. Eine Autorisierungsinstanz kann den privaten Signaturschlüssel von der führenden Signaturschlüssel-Instanz anfordern. Nach Empfang der Anforderung kann die führende Signaturschlüssel-Instanz die Anforderung validieren und den privaten Signaturschlüssel verschlüsseln, bevor er zu der anfordernden Autorisierungsinstanz übertragen wird. Die Host-Instanz-Schlüsselpaare, die zum Verschlüsseln und Entschlüsseln des privaten Signaturschlüssels verwendet werden, sind für jede Autorisierungsinstanz spezifisch. Somit kann nur die anfordernde Autorisierungsinstanz den privaten Signaturschlüssel entschlüsseln. Daher vermeidet das Verteilungssystem für private Schlüssel, eine Konfigurationsdatei zum Verteilen des privaten Signaturschlüssels zu verwenden.
  • Außerdem oder alternativ speichert eine Autorisierungsinstanz nach dem Erlangen eines privaten Signaturschlüssels diesen in einem Arbeitsspeicher und nicht im permanenten Speicher. Wenn eine Autorisierungsinstanz abgeschaltet und neu gestartet wird, muss sie ein neues Host-Instanz-Schlüsselpaar generieren und den öffentlichen Host-Schlüssel für die gemeinsam genutzte Datenbank bereitstellen. Die Autorisierungsinstanz kann anschließend den privaten Signaturschlüssel von der führenden Signaturschlüssel-Instanz anfordern, da der Schlüssel beim Abschalten verloren gegangen wäre.
  • In einigen Ausführungsformen führt die führende Signaturschlüssel-Instanz zusätzliche Überprüfungsschritte aus, um eine anfordernde Autorisierungsinstanz zu validieren, bevor ein privater Signaturschlüssel übertragen wird. Eine anfordernde Autorisierungsinstanz kann erfassen, dass in der gemeinsam genutzten Datenbank ein neuer öffentlicher Signaturschlüssel gespeichert ist, und kann den entsprechenden privaten Signaturschlüssel aus der führenden Signaturschlüssel-Instanz anfordern. Wenn eine Anforderung gestellt wird, kann die führende Signaturschlüssel-Instanz die Anforderung durch Untersuchen einer Internet-Protocol- (IP) Quelladresse der Anforderung validieren. Wenn die IP-Adresse mit einer bekannten IP-Adresse der anfordernden Autorisierungsinstanz übereinstimmt, kann die führende Signaturschlüssel-Instanz mit einem Verschlüsseln des privaten Signaturschlüssels fortfahren und den verschlüsselten Schlüssel zu der anfordernden Autorisierungsinstanz übertragen.
  • Außerdem oder alternativ kann die führende Signaturschlüssel-Instanz eine Registrierung in Bezug auf eine anfordernde Autorisierungsinstanz aus einer Konfigurationsdatei abrufen, die während der Initialisierung der Autorisierungsinstanz verwendet wurde. Die Registrierung kann eine IP-Adresse der aktuellen Autorisierungsinstanz umfassen. Die führende Signaturschlüssel-Instanz kann anschließend die IP-Adresse in der Registrierung mit der in der Anforderung bereitgestellten IP-Adresse vergleichen. Dies kann ein Verhindern unterstützen, dass Angreifer vortäuschen können, dass ihre Adresse wie eine legitime Autorisierungsinstanz aussieht.
  • Außerdem oder alternativ kann die führende Signaturschlüssel-Instanz eine Registrierung in Bezug auf eine anfordernde Autorisierungsinstanz aus einer Konfigurationsdatei abrufen, die während der Initialisierung der Autorisierungsinstanzen aktualisiert wurde. Durch Verwenden des in der Registrierung befindlichen Host-Namens kann die führende Signaturschlüssel-Instanz den Host-Namen der anfordernden Autorisierungsinstanz verwenden, um den verschlüsselten privaten Signaturschlüssel zu übertragen. Die Übertragung zu einem Host-Namen stellt eine zusätzliche Sicherheitsschicht bereit, da ein Angreifer sowohl die gemeinsam genutzte Datenbank als auch die Konfigurationsdatei kompromittieren müsste, bevor das gesamte System kompromittiert werden könnte.
  • Ausführungsformen der vorliegenden Offenbarung umfassen die Erkennung einer inaktiven führenden Signaturschlüssel-Instanz. Eine führende Signaturschlüssel-Instanz kann in ein Protokoll eines führenden Schlüssels schreiben, das in der gemeinsam genutzten Datenbank in einem kontinuierlichen Intervall gespeichert wird. Wenn eine Autorisierungsinstanz erkennt, dass die führende Signaturschlüssel-Instanz nicht mehr reagiert oder nicht mehr in das Protokoll des führenden Schlüssels schreibt, kann eine neue führende Signaturschlüssel-Instanz gewählt werden. In einigen Ausführungsformen wird ein Rollover des Signaturschlüsselpaars durchgeführt, wenn eine neue führenden Signaturschlüssel-Instanz gewählt wird. Damit ist das Signaturschlüsselpaar, das von dem vorherigen führenden Signaturschlüssel verwendet wurde, nicht mehr gültig, und die Autorisierungsinstanzen müssen den neuen privaten Signaturschlüssel von der neuen führenden Signaturschlüssel-Instanz anfordern..
  • Unter Bezugnahme auf 1 wird im Folgenden ein Blockschaubild gezeigt, das ein Verteilungssystem 100 für private Schlüssel gemäß Ausführungsformen der vorliegenden Offenbarung veranschaulicht. Das Verteilungssystem 100 für private Schlüssel umfasst einen Endpunkt 110, eine gemeinsam genutzte Datenbank 130, ein Netzwerk 140 und eine Konfigurationsdatei 150. Der Endpunkt 110 umfasst eine Autorisierungsinstanz 120-1, 120-2, 120-N (die gemeinsam als Autorisierungsinstanzen 120) bezeichnet werden), wobei N eine variable Ganzzahl ist, die jede Anzahl von möglichen Autorisierungsinstanzen 120 darstellt.
  • Der Endpunkt 110 ist eine Komponente des Verteilungssystems für private Schlüssel, das konfiguriert ist, um als Datenübertragungskanal zwischen einer serverseitigen Web-API und anderen externen Systemen gemäß Ausführungsformen der vorliegenden Offenbarung zu arbeiten. Diese externen Systeme umfassen Clients, Anwendungen, Web-Browser, andere Web-APIs, sie sind aber nicht darauf beschränkt.
  • In einigen Ausführungsformen arbeitet der Endpunkt 110 in einem Dienst-Cluster. Ein Cluster besteht aus mehreren Servern, die gruppiert sind, um einen allgemeinen Dienst zu schaffen und als einzelner Computer betrachtet werden können. Diese Server oder Knoten können Benutzern einen Satz von Netzwerkressourcen bereitstellen, bei denen es sich um die Knoten des Clusters handelt. Cluster bieten Funktionen, die Skalierbarkeit verbessern und hohe Verfügbarkeit bieten können. Für Skalierbarkeitszwecke kann ein Dienstknoten in einem Cluster dynamisch Maschinen hinzufügen, um die Verarbeitungsstärke des Clusters zu erhöhen. Wenn ein Knoten in einem Cluster ausfällt, können die auf diesem Knoten ausgeführten Dienste für eine hohe Verfügbarkeit andere Dienstknoten übernehmen, wodurch die hohe Verfügbarkeit des Clusters verstärkt wird.
  • Die Knoten in dem Cluster können als Knoteninstanzen definiert werden. Eine Knoteninstanz ist ein Modellelement, das eine Instanziierung oder aktuelles Auftreten eines Knotens darstellt. Knoteninstanzen beruhen auf vorhandenen Knoten. Knoteninstanzen stellen einen spezifizierten und definierten Knoten in einer Systemumgebung dar. Diese Instanzen können genutzt werden, um Ressourcen darzustellen, die zur Laufzeit vorhanden sind. Zum Beispiel kann eine Knoteninstanz einen Web-Server, einen Datenserver, einen Autorisierungsserver und dergleichen darstellen.
  • Die Autorisierungsinstanzen 120 sind eine Komponente des Endpunkts 110, der konfiguriert ist, um gemäß Ausführungsformen der vorliegenden Offenbarung als eine Server-Instanz für eine Web-API zu arbeiten. Die Autorisierungsinstanzen 120 können als Autorisierungsserver, Anwendungsserver, Web-Server, Ressourcenserver und dergleichen arbeiten. In einigen Ausführungsformen stellen die Autorisierungsinstanzen 120 Zugriffstoken für Clients mit genehmigten Anmeldedaten bereit und arbeiten als Autorisierungsserver. Die Zugriffstoken sind Zeichenfolgen, die Berechtigungen darstellen, die einem Client gewährt werden. Diese Zugriffstoken können in einem JWT-Format vorliegen. In einigen Ausführungsformen arbeitet die Autorisierungsinstanz als Ressourcenserver, der konfiguriert ist, um Digitalsignatur-Operationen durchzuführen.
  • Ein JWT-Format umfasst einen Header, Nutzinformationen und eine Signatur. Der Header umfasst Metadaten über den Typ des verwendeten Zugriffstokens und die kryptografischen Algorithmen, die zum Schützen der Inhalte verwendet werden. Diese kryptografischen Algorithmen sind in der Regel Algorithmen für einen verschlüsselten Hash-Nachrichten-Authentifizierungscode (HMAC). HMAC-Algorithmen umfassen Secure Hash Algorithm (sicherer Hash-Algorithmus) 2 (SHA-2), Rivest-Shamir-Adleman- (RSA) und JSON-Web Algorithmen (JWA). RSA-Algorithmen können außerdem zum Verschlüsseln des Signaturabschnitts des JWTs verwendet werden.
  • Die Nutzinformationen umfassen einen Satz von Ansprüchen. Die JWT-Spezifikation definiert Standardfelder, die allgemein in Zugriffstoken enthalten sind. Außerdem können auch benutzerdefinierte Ansprüche enthalten sein, die API-spezifisch sind. Die Signatur wird zum sicheren Validieren des Zugriffstoken verwendet. Die Signatur kann durch Encodieren des Headers und der Nutzinformationen durch Verwenden einer Base64url-Encodierung und Verkettung der beiden durch ein Punkt-Trennzeichen berechnet werden. Der in dem Header spezifizierte Algorithmus und ein privater Signaturschlüssel 125 können zum Verschlüsseln der Signatur verwendet werden.
  • Die Autorisierungsinstanzen 120 sind ferner konfiguriert, um ein Host-Instanz-Schlüsselpaar zu generieren. Das Host-Instanz-Schlüsselpaar umfasst einen privaten Host-Schlüssel 127 und einen öffentlichen Host-Schlüssel 128. Der öffentliche Host-Schlüssel 128 kann zum Speichern zu der gemeinsam genutzten Datenbank 130 übertragen werden. Die Host-Instanz-Schlüsselpaare sind für jede Autorisierungsinstanz 120 eindeutig, und der private Host-Schlüssel 127 kann in einem Arbeitsspeicher gespeichert werden. Die Host-Instanz-Schlüsselpaare sind Schlüsselpaare, die in asymmetrischer Kryptografie verwendet werden. Der öffentliche Host-Instanz Schlüssel 128 kann zum Verschlüsseln einer Nachricht verwendet werden (z.B. privater Signaturschlüssel 125), und der private Host-Instanz-Schlüssel 127 kann zum Entschlüsseln der Nachricht verwendet werden.
  • Die Autorisierungsinstanzen 120 sind ferner konfiguriert, um eine führende Signaturschlüssel-Instanz zu wählen. Die führende Signaturschlüssel-Instanz ist eine der Autorisierungsinstanzen 120, die ferner konfiguriert ist, um eine Signaturschlüsselpaar-Instanz zu generieren. Das Signaturschlüsselpaar umfasst einen privaten Signaturschlüssel 125 und einen öffentlichen Signaturschlüssel 126. Das Signaturschlüsselpaar von den Host-Instanz-Schlüsselpaaren ist eindeutig und wird zum Verschlüsseln von Zugriffstoken verwendet, die für Clients generiert wurden. Der private Signaturschlüssel 125 kann zum Verschlüsseln der Signatur in dem Zugriffstoken verwendet werden, und der öffentliche Signaturschlüssel 126 kann zum Überprüfen der Validität des Zugriffstokens verwendet werden.
  • Die führende Signaturschlüssel-Instanz ist ferner konfiguriert, um den privaten Signaturschlüssel 125 durch Verwenden des öffentlichen Host-Schlüssels 128 zu verschlüsseln, der einer anfordernden Autorisierungsinstanz 120 entspricht. Zum Beispiel kann eine Autorisierungsinstanz 120 den privaten Signaturschlüssel 125 von der führenden Signaturschlüssel-Instanz anfordern. Nach Empfang der Anforderung kann die führende Signaturschlüssel-Instanz den öffentlichen Host-Schlüssel 128 der anfordernden Autorisierungsinstanz 120 abrufen, der in der gemeinsam genutzten Datenbank gespeichert ist. Durch Verwenden des öffentlichen Host-Schlüssels 128 kann die führende Signaturschlüssel-Instanz den privaten Signaturschlüssel 125 verschlüsseln, bevor der private Signaturschlüssel zu der anfordernden Autorisierungsinstanz 120 übertragen wird.
  • In einigen Ausführungsformen aktualisiert die führende Signaturschlüssel-Instanz über ein bestimmtes Intervall ein Protokoll 129 des führenden Schlüssels, das in der gemeinsam genutzten Datenbank 130 gespeichert ist. Zum Beispiel kann die führende Signaturschlüssel-Instanz das Protokoll 129 des führenden Schlüssels alle 30 Sekunden, jede Minute, alle zwei Minuten usw. aktualisieren. Die Autorisierungsinstanzen 120 können das Protokoll des führenden Schlüssels lesen, um zu bestimmen, dass die führende Signaturschlüssel-Instanz aktiv ist und zum Bereitstellen von privaten Signaturschlüsseln zur Verfügung steht.
  • Die gemeinsam genutzte Datenbank 130 ist eine Komponente des Verteilungssystems 100 für private Schlüssel, die konfiguriert ist, um Informationen in Bezug auf das Verteilungssystem 100 für private Schlüssel gemäß Ausführungsformen der vorliegenden Offenbarung zu speichern. Zwar wurde sie in 1 als Datenbank gezeigt, doch kann die gemeinsam genutzte Datenbank 130 eine Zuordnung, eine Tabelle, ein Journal, Metadaten und dergleichen sein. Die gemeinsam genutzte Datenbank 130 kann öffentliche Host-Instanz-Schlüssel aus den Host-Instanz-Schlüsselpaaren 127 speichern, die durch die Autorisierungsinstanzen 120 generiert wurden. Außerdem kann die gemeinsam genutzte Datenbank 130 den öffentlichen Signaturschlüssel, der durch die führende Signaturschlüssel-Instanz generiert wurde, und das Protokoll des führenden Schlüssels speichern.
  • Das Netzwerk 140 ist eine Komponente des Verteilungssystems 100 für private Schlüssel, die konfiguriert ist, um direkte Hochgeschwindigkeits-Datenübertragungen und eine Datenübertragung zwischen einem Client und dem Endpunkt 110 zu vereinfachen. Zu Beispielen für das Netzwerk 140 zählen ein lokales Netzwerk (LAN), ein Weitverkehrsnetzwerk (WAN), ein Speicherbereichsnetzwerk (SAN), ein Intranet oder jede mögliche Kombination von diesen.
  • In einigen Ausführungsformen ist das Netzwerk 140 das Internet. Das Internet umfasst ein globales System von miteinander verbundenen Computer-Netzwerken und Einheiten, die gemeinsame Datenübertragungsprotokolle verwenden, wie zum Beispiel das Transmission Control Protocol (TCP), User Datagram Protocol (UDP) und das Internet Protocol (IP) in der TCP/IP Internet Protocol Suite.
  • Die Konfigurationsdatei 150 ist eine Komponente der Verteilungssystems 100 für private Schlüssel, die konfiguriert ist, um Informationen in Bezug auf Autorisierungsinstanzen 120 gemäß Ausführungsformen der vorliegenden Offenbarung zu speichern und bereitzustellen. Die Konfigurationsdatei 150 kann Registrierungen für jede der Autorisierungsinstanzen 120 speichern, die in dem Verteilungssystem 100 für private Schlüssel initialisiert wurden. In einigen Ausführungsformen ist die Registrierung in Quellcode hartcodiert, sodass die Registrierung der Autorisierungsinstanzen nicht geändert werden kann.
  • Es wird angemerkt, dass 1 die repräsentativen Hauptkomponenten des Verteilungssystems 100 für private Schlüssel darstellen soll. In einigen Ausführungsformen können einzelne Komponenten jedoch eine größere oder geringere Komplexität aufweisen als in 1 dargestellt, es können andere oder zusätzliche Komponenten zu denjenigen vorhanden sein, die in 1 gezeigt werden, und die Anzahl, der Typ und die Konfiguration solcher Komponenten kann unterschiedlich sein.
  • 2 ist eine Datenflussdarstellung 200, die eine private Schlüsselverteilung zwischen Autorisierungsinstanzen gemäß Ausführungsformen der vorliegenden Offenbarung veranschaulicht. Zum Veranschaulichen der Datenflussdarstellung 200, jedoch nicht, um Ausführungsformen einzuschränken, wird 2 im Kontext des Verteilungssystems 100 für private Schlüssel von 1 beschrieben.
  • In einem Arbeitsschritt 210 werden die Autorisierungsinstanzen 120 initialisiert und konfiguriert, um einen allgemeinen Dienst durchzuführen. Während der Initialisierung kann eine Konfigurationsdatei 150 Registrierungen für jede Autorisierungsinstanz 120 speichern, die durch das Verteilungssystem 100 für private Schlüssel initialisiert wurde. Die Registrierung kann die IP-Adresse der Autorisierungsinstanz 120 umfassen und als ein Mittel zur Überprüfung für die Autorisierungsinstanz 120 arbeiten. In einigen Ausführungsformen ist die Registrierung in Quellcode hartcodiert, der Autorisierungsinstanzen 120 initialisiert.
  • In einem Arbeitsschritt 220 kann jede der Autorisierungsinstanzen 120 ein Host-Instanz-Schlüsselpaar generieren. Die Host-Instanz-Schlüsselpaare umfassen einen privaten Host-Schlüssel 127 und einen öffentlichen Host-Schlüssel 128. Die Autorisierungsinstanzen 120 können in einem Schritt 222 ihren öffentlichen Host-Schlüssel 128 zu der gemeinsam genutzten Datenbank 130 übertragen. Wenn erfasst wird, dass keine führende Signaturschlüssel-Instanz gewählt ist, können die Autorisierungsinstanzen in einem Schritt 224 eine führende Signaturschlüssel-Instanz aus initiierten Autorisierungsinstanzen wählen. Eine Autorisierungsinstanz 120 kann als die führende Signaturschlüssel-Instanz gewählt werden, indem sie die erste Autorisierungsinstanz 120 ist, die in einem Schritt 226 einen Eintrag in das Protokoll 129 des führenden Schlüssels vornimmt.
  • In einem Arbeitsschritt 230 generiert die führende Signaturschlüssel-Instanz ein Signaturschlüsselpaar. Das Signaturschlüsselpaar umfasst einen privaten Signaturschlüssel 125 und einen öffentlichen Signaturschlüssel 126. Nach dem Generieren kann die führende Signaturschlüssel-Instanz in einem Schritt 232 den öffentlichen Signaturschlüssel 126 in die gemeinsam genutzte Datenbank 130 übertragen. Nach einem Erfassen, dass ein öffentlicher Signaturschlüssel 126 in der gemeinsam genutzten Datenbank 130 gespeichert worden ist, fordern die Autorisierungsinstanzen in einem Schritt 234 einzeln den privaten Signaturschlüssel von der führenden Signaturschlüssel-Instanz an.
  • In einem Arbeitsschritt 240 führt die führende Signaturschlüssel-Instanz eine Validitätsprüfung an der Anforderung 234 durch, die durch eine anfordernde Autorisierungsinstanz 120 gesendet wurde. Dies kann ein Überprüfen umfassen, ob die IP-Adresse der Anforderung mit der IP-Adresse einer Autorisierungsinstanz 120 übereinstimmt, von der bekannt ist, dass sie einem allgemeinen Dienst zugehörig ist. Die Validitätsprüfung kann auch in Form eines Rückrufs an die übertragene anfordernde Autorisierungsinstanz vorliegen. Die führende Signaturschlüssel-Instanz kann auf die Anforderung mit einer „OK“-Antwort reagieren. Die führende Signaturschlüssel-Instanz kann einen Host-Namen für die anfordernde Autorisierungsinstanz aus der Konfigurationsdatei 150 abrufen und den Host-Namen verwenden, um einen Rückruf mit dem verschlüsselten privaten Signaturschlüssel durchzuführen. Nachdem sichergestellt wurde, dass die Anforderung gültig ist, fordert die führende Signaturschlüssel-Instanz in einem Schritt 242 den öffentlichen Host-Schlüssel 128 an, der der anfordernden Autorisierungsinstanz 120 zugehörig ist. Die gemeinsam genutzte Datenbank 130 kann in einem Schritt 244 den öffentlichen Host-Schlüssel 128, der der anfordernden Autorisierungsinstanz 120 entspricht, an die führende Signaturschlüssel-Instanz zurück übertragen.
  • In einem Arbeitsschritt 250 verschlüsselt die führende Signaturschlüssel-Instanz den privaten Signaturschlüssel 125 durch Verwenden des öffentlichen Host-Schlüssels 128, der aus der gemeinsam genutzten Datenbank 130 erhalten wurde, und überträgt in einem Schritt 252 den verschlüsselten privaten Schlüssel zu der anfordernden Autorisierungsinstanz 120. In einem Arbeitsschritt 260 kann die anfordernde Autorisierungsinstanz 120 den verschlüsselten privaten Signaturschlüssel 125 durch Verwenden des privaten Host-Schlüssels 127 entschlüsseln.
  • 3 ist ein Ablaufplan, der einen Prozess 300 zum Verteilen eines privaten Signaturschlüssels zwischen Autorisierungsinstanzen gemäß Ausführungsformen der vorliegenden Offenbarung veranschaulicht. Der Prozess 300 kann durch Hardware, Firmware, Software, die auf mindestens einem Prozess ausgeführt wird, oder jede Kombination von diesen durchgeführt werden. Zum Beispiel kann bzw. können ein beliebiger Schritt oder alle Schritte des Prozesses 300 von einer oder mehreren Datenverarbeitungseinheiten durchgeführt werden (z.B. Computersystem 500 von 5). Zum Veranschaulichen des Prozesses 300, jedoch nicht, um Ausführungsformen einzuschränken, wird 3 im Kontext des Verteilungssystems 100 für private Schlüssel von 1 beschrieben.
  • Der Prozess 300 beginnt mit einem Hinzufügen von Registrierungen für alle Autorisierungsinstanzen 120, die konfiguriert sind, um einen allgemeinen Dienst in eine Konfigurationsdatei 150 durchzuführen. Dies wird in einem Schritt 310 veranschaulicht. Die Registrierung kann eine Instanz-Identifizierung, die jeder der Autorisierungsinstanzen 120 zugewiesen ist, und eine IP-Adresse der Autorisierungsinstanzen 120 umfassen. Die Instanz-Identifizierung und/oder die IP-Adresse können zum Überprüfen der Autorisierungsinstanzen 120 verwendet werden.
  • Jede Autorisierungsinstanz 120 generiert ein Host-Instanz-Schlüsselpaar. Dies wird in einem Schritt 320 veranschaulicht. Das Host-Instanz-Schlüsselpaar kann zum Verschlüsseln und Entschlüsseln des privaten Signaturschlüssels 126 verwendet werden, der in dem allgemeinen Dienst verwendet wird. Die Host-Instanz-Schlüsselpaare können in asymmetrischen Kryptografietechniken für Schlüssel verwendet werden. Diese Schlüsseltechniken umfassen Rivest-Shamir-Adleman (RSA), Diffie-Hellman, Elliptic-curve Diffie-Hellman (ECDH), Secure Remote Password Protocol (SRP), Preshared Key (PSK), Digital Signature Algorithm (DSA), Elliptic Curve DSA (ECDSA), RC4, Triple Data Encryption Algorithm (Triple DES), Advanced Encryption Standard (AES), International Data Encryption Algorithm (IDEA), Data Encryption Standard (DES), Camellia, MD5 auf Hash-Grundlage und die Hash-Funktion Secure Hash Algorithms (SHA), sie sind aber nicht darauf beschränkt.
  • Außerdem können die Host-Instanz-Schlüsselpaare in Protokollen verwendet werden, die asymmetrische Schlüsselalgorithmen verwenden. Dieses Protokoll umfasst sichere/Mehrzweck-Internet-Mail-Erweiterungen (S/MIME), GNU Privacy Guard (GPG), Internet Key Exchange, Pretty Good Privacy (PGP), zusammengesetzt aus Z und Real Time Transport Protocol (ZRTP), Transport Layer Security (TLS)und Secure Internet Live Conferencing Protocol (SILC), es ist aber nicht darauf beschränkt.
  • Der öffentliche Host-Instanz-Schlüssel 128 wird in der gemeinsam genutzten Datenbank 130 gespeichert. Dies wird in einem Schritt 330 veranschaulicht. Jede Autorisierungsinstanz 120 überträgt ihren öffentlichen Host-Instanz-Schlüssel 128 zu der gemeinsam genutzten Datenbank 130. Dies ermöglicht einer weiteren Komponente des Verteilungssystems 100 für private Schlüssel, den öffentlichen Host-Instanz-Schlüssel 128 abzurufen und eine Nachricht zu verschlüsseln, die nur die entsprechende Autorisierungsinstanz 120 entschlüsseln kann. Die privaten Host-Instanz-Schlüssel 127 sind in dem Arbeitsspeicher der Autorisierungsinstanzen 120 gespeichert. Wenn eine Autorisierungsinstanz 120 geschlossen, abstürzen oder neu gestartet würde, müsste die Autorisierungsinstanz 120 ein neues Host-Instanz-Schlüsselpaar neu generieren und den öffentlichen Host-Schlüssel 128 erneut an das gemeinsam genutzte Laufwerk übertragen.
  • Eine führende Signaturschlüssel-Instanz wird aus den Autorisierungsinstanzen 120 gewählt, die den allgemeinen Dienst durchführen. Dies wird in einem Schritt 340 veranschaulicht. Die führende Signaturschlüssel-Instanz kann gewählt werden, wenn durch die erste Autorisierungsinstanz 120 ein Eintrag in das Protokoll 129 des führenden Schlüssels erfolgt. Während sie als die führende Signaturschlüssel-Instanz arbeitet, kann die Autorisierungsinstanz 120 das Protokoll des führenden Schlüssels in einem festgelegten Intervall aktualisieren. Zum Beispiel kann die führende Signaturschlüssel-Instanz das Protokoll 129 des führenden Schlüssels jede Minute aktualisieren, um die anderen Autorisierungsinstanzen 120 zu benachrichtigen, dass die führende Signaturschlüssel-Instanz gewählt worden ist, und dass sie den privaten Signaturschlüssel 125 für die anderen Autorisierungsinstanzen 120 bereitstellen können.
  • In einigen Ausführungsformen ist die führende Signaturschlüssel-Instanz anfänglich eine vorbestimmte Autorisierungsinstanz 120. Zum Beispiel kann die erste Autorisierungsinstanz, die in der Konfigurationsdatei 150 registriert werden soll, als die erste führende Signaturschlüssel-Instanz gewählt werden. Wenn die führende Signaturschlüssel-Instanz 120 offline geschaltet wird, kann eine andere Autorisierungsinstanz 120 als die führende Signaturschlüssel-Instanz gewählt werden.
  • In einigen Ausführungsformen wird eine andere Autorisierungsinstanz 120 als die führende Signaturschlüssel-Instanz gewählt, wenn die führende Signaturschlüssel-Instanz die Aktualisierung des Protokolls 129 des führenden Schlüssels stoppt. Wenn zum Beispiel die führende Signaturschlüssel-Instanz das Protokoll 129 des führenden Schlüssels länger als drei Minuten nicht aktualisiert, wird die erste Autorisierungsinstanz 120, die in das Protokoll 129 des Signaturschlüssels schreibt, als die neue führende Signaturschlüssel-Instanz gewählt. Das Protokoll 129 des führenden Signaturschlüssels kann von den anderen Autorisierungsinstanzen 120 als Möglichkeit gelesen werden, sie zu benachrichtigen, dass eine neue führende Signaturschlüssel-Instanz gewählt worden ist.
  • Die führende Signaturschlüssel-Instanz generiert ein Signaturschlüsselpaar. Dies wird in einem Schritt 350 veranschaulicht. Das Signaturschlüsselpaar umfasst einen privaten Signaturschlüssel 125 und einen öffentlichen Signaturschlüssel 126. Die Autorisierungsinstanzen 120 können denselben privaten Signaturschlüssel 125 zum Verschlüsseln der Signatur verwenden, wenn Zugriffstoken für Clients generiert werden. Da das Verteilungssystem 100 für private Schlüssel über einen privaten Signaturschlüssel 125 verfügt, minimiert es den Overhead, der beim Nutzen mehrerer Signaturschlüsselpaare auftreten kann.
  • Das Signaturschlüsselpaar kann in verschiedenen Digitalsignatur-Algorithmen verwendet werden. Zu diesen Algorithmen zählen RSA Probabilistic Signature Scheme (probabilistisches Signaturverfahren) (RSA-PSS), ECDSA, Edwards-curve Digital Signature Algorithm (Algorithmus für digitale Signatur) (EdDSA), EIGamal-Signaturverfahren, Rabin-Signaturalgorithmus und Aggregate-Signatur.
  • Der öffentliche Signaturschlüssel 126 wird in der gemeinsam genutzten Datenbank 130 gespeichert. Dies wird in einem Schritt 360 veranschaulicht. Die führende Signaturschlüssel-Instanz überträgt den generierten öffentlichen Signaturschlüssel 126 in die gemeinsam genutzte Datenbank 130. Dies ermöglicht der Web-API und Anwendungen, den öffentlichen Signaturschlüssel 126 abzurufen und signierte Zugriffstoken durch Verwenden des privaten Signaturschlüssels zu validieren. Wenn die führende Signaturschlüssel-Instanz geschlossen oder neu gestartet würde, bevor der öffentliche Signaturschlüssel 126 gespeichert wird, müsste eine andere Autorisierungsinstanz 120 gewählt werden und den Prozess zum Generieren eines neuen Signaturschlüsselpaars wiederholen und den neuen öffentlichen Signaturschlüssel 126 in der gemeinsam genutzten Datenbank 130 speichern.
  • Der führende Signaturschlüssel überträgt einen verschlüsselten privaten Signaturschlüssel zu einer anfordernden Autorisierungsinstanz 120. Dies wird in einem Schritt 370 veranschaulicht. Die führende Signaturschlüssel-Instanz kann die öffentlichen Host-Schlüssel 128 verwenden, die in der gemeinsam genutzten Datenbank 130 gespeichert sind, um den privaten Signaturschlüssel für jede entsprechende Autorisierungsinstanz 120 zu verschlüsseln. Nach Empfang einer Anforderung für den privaten Signaturschlüssel 125 kann die führende Signaturschlüssel-Instanz den verschlüsselten privaten Signaturschlüssel 125 zu der anfordernden Autorisierungsinstanz 120 übertragen. Durch Verschlüsseln des privaten Signaturschlüssels 125 mit dem öffentlichen Host-Instanz-Schlüssel 128, der der anfordernden Autorisierungsinstanz 120 entspricht, kann nur die anfordernde Autorisierungsinstanz 120 den privaten Signaturschlüssel 126 entschlüsseln.
  • 4 ist ein Ablaufplan, der einen Prozess 400 zum Übertragen eines verschlüsselten privaten Signaturschlüssels zu einer Autorisierungsinstanz (z.B. Schritt 370 des Prozesses 300 in 3) gemäß Ausführungsformen der vorliegenden Offenbarung veranschaulicht. Der Prozess 400 kann durch Hardware, Firmware, Software, die auf mindestens einem Prozess ausgeführt wird, oder jede Kombination von diesen durchgeführt werden. Zum Beispiel kann bzw. können ein beliebiger Schritt oder alle Schritte des Prozesses 400 von einer oder mehreren Datenverarbeitungseinheiten durchgeführt werden (z.B. Computersystem 500 von 5). Zum Veranschaulichen des Prozesses 400, jedoch nicht, um Ausführungsformen einzuschränken, wird 4 im Kontext des Verteilungssystems 100 für private Schlüssel von 1 beschrieben.
  • Eine Autorisierungsinstanz 120 erfasst einen öffentlichen Signaturschlüssel 126, der in der gemeinsam genutzten Datenbank 130 gespeichert ist. Dies wird in einem Schritt 410 veranschaulicht. Ein öffentlicher Signaturschlüssel 126, der in der gemeinsam genutzten Datenbank erfasst wird, kann der Autorisierungsinstanz 120 angeben, dass ein privater Signaturschlüssel 125 von der führenden Signaturschlüssel-Instanz angefordert werden kann.
  • In einigen Ausführungsformen erfasst eine Autorisierungsinstanz 120 einen neuen öffentlichen Signaturschlüssel 126, der in der gemeinsam genutzten Datenbank 130 gespeichert ist. Dies kann durch ein Untersuchen des öffentlichen Signaturschlüssels 126 oder durch eine Angabe in dem Protokoll 129 des führenden Schlüssels erfasst werden, dass ein neuer öffentlicher Signaturschlüssel 126 übertragen worden ist. Durch eine führende Signaturschlüssel-Instanz kann nach einer durch einen Administrator vorbestimmten Zeit ein neues Signaturschlüsselpaar generiert werden, was oft als Schlüssel-Rollover bezeichnet wird. Zum Beispiel kann ein Schlüssel-Rollover jede Woche, jeden Monat, alle sechs Wochen usw. auftreten. In einigen Ausführungsformen tritt ein Schlüssel-Rollover auf, wenn eine neue führende Signaturschlüssel-Instanz gewählt wird.
  • Die Autorisierungsinstanz 120 fordert den privaten Signaturschlüssel 125 von der führenden Signaturschlüssel-Instanz an. Dies wird in einem Schritt 420 veranschaulicht. Die Autorisierungsinstanz kann einen Anforderungsbefehl an die führende Signaturschlüssel-Instanz übertragen, die eine IP-Adresse der anfordernden Autorisierungsinstanz 120 umfasst.
  • Nach Empfang der Anforderung validiert die führende Signaturschlüssel-Instanz die Anforderung. Dies wird in einem Schritt 430 veranschaulicht. In einigen Ausführungsformen ruft die führende Signaturschlüssel-Instanz eine Registrierung in Bezug auf die anfordernde Autorisierungsinstanz 120 aus einer Konfigurationsdatei 150 ab, die während der Initialisierung der Autorisierungsinstanzen 120 verwendet wurde. Die Registrierung kann die Identifizierung und die IP-Adresse der Autorisierungsinstanz 120 umfassen. Die führende Signaturschlüssel-Instanz kann überprüfen, ob die Quell-IP-Adresse der Anforderung mit der in der Registrierung gespeicherten IP-Adresse der anfordernden Autorisierungsinstanz übereinstimmt.
  • In einigen Ausführungsformen ruft die führende Signaturschlüssel-Instanz die Registrierung in Bezug auf die anfordernde Autorisierungsinstanz 120 aus einer Konfigurationsdatei 150 ab, die während der Initialisierung der Autorisierungsinstanzen 120 verwendet wurde. Die führende Signaturschlüssel-Instanz kann einen Host-Namen ermitteln, der in der Registrierung gefunden wird. Die führende Signaturschlüssel-Instanz kann den verschlüsselten privaten Signaturschlüssel zu dem Host-Namen der anfordernden Autorisierungsinstanz übertragen.
  • Es wird bestimmt, ob die von der anfordernden Autorisierungsinstanz getätigte Anforderung gültig ist. Dies wird in einem Schritt 440 veranschaulicht. Wenn die führende Signaturschlüssel-Instanz bestimmt, dass die Anforderung nicht validiert werden konnte, wird die Anforderung abgelehnt. Dies wird in einem Schritt 450 veranschaulicht. Wenn die führende Signaturschlüssel-Instanz die Anforderung validieren kann, fährt der Prozess 400 mit einem Schritt 460 fort.
  • Die führende private Signaturschlüssel-Instanz ruft den öffentlichen Host-Schlüssel 128, der der anfordernden Autorisierungsinstanz 120 entspricht, von der gemeinsam genutzten Datenbank ab. Dies wird im Schritt 460 veranschaulicht. Der öffentliche Host-Schlüssel 128 kann anschließend von der führenden Signaturschlüssel-Instanz zum Verschlüsseln des privaten Signaturschlüssels verwendet werden. Dies wird in einem Schritt 470 veranschaulicht. Nach dem Verschlüsseln kann der verschlüsselte private Signaturschlüssel zu der anfordernden Autorisierungsinstanz übertragen werden. Dies wird in einem Schritt 480 veranschaulicht.
  • Unter folgender Bezugnahme auf 5 wird ein Übersichtsblockschaubild eines beispielhaften Computersystems 500 (z.B. das Verteilungssystem 100 für private Schlüssel) gezeigt, das beim Umsetzen von einem oder mehreren der Verfahren, Werkzeuge und Module und allen zugehörigen Funktionen verwendet werden kann, die hierin gemäß Ausführungsformen der vorliegenden Offenbarung (z.B. durch Verwenden von einer oder mehreren Prozessorschaltungen oder Computerprozessoren des Computers) beschrieben werden. In einigen Ausführungsformen können die Hauptkomponenten des Computersystems 500 einen oder mehrere Prozessoren 502, einen Arbeitsspeicher 504, eine Endgeräteschnittstelle 512, eine E/A- (Eingabe/Ausgabe)-Einheitenschnittstelle 514, eine Speicherschnittstelle 516 und eine Netzwerkschnittstelle 518 aufweisen, die alle direkt oder indirekt für eine Datenübertragung zwischen Komponenten über einen Arbeitsspeicherbus 503, einen E/A-Bus 508 und eine E/A-Bus-Schnittstelleneinheit 510 im Datenaustausch verbunden sein können.
  • Das Computersystem 500 kann eine oder mehrere programmierbare Universal-Zentraleinheiten (CPUs) 502-1, 502-2, 502-3 und 502-N enthalten, auf die hierin allgemein als der Prozessor 502 Bezug genommen wird. In einigen Ausführungsformen kann das Computersystem 500 mehrere Prozessoren enthalten, die für ein relativ großes System typisch sind; in anderen Ausführungsformen kann das Computersystem 500 jedoch alternativ ein einzelnes CPU-System sein. Jeder Prozessor 501 kann Anweisungen ausführen, die in dem Arbeitsspeicher 504 gespeichert sind, und kann eine oder mehrere Ebenen von integriertem Cache umfassen.
  • Der Arbeitsspeicher 504 kann von einem Computersystem lesbare Medien in der Form von flüchtigem Arbeitsspeicher, wie beispielsweise einen Direktzugriffspeicher (RAM) 522 oder einen Cache 524, umfassen. Das Computersystem 500 kann ferner weitere austauschbare/nicht austauschbare, flüchtige/nicht flüchtige Computersystem-Speichermedien enthalten. Nur als Beispiel kann das Speichersystem 526 zum Lesen von einem und Schreiben auf einen nicht austauschbaren, nicht flüchtigen Magnetdatenträger bereitgestellt werden wie zum Beispiel eine Festplatte. Obwohl nicht gezeigt, kann ein Magnetplattenlaufwerk zum Auslesen und Beschreiben einer austauschbaren, nicht flüchtigen Magnetplatte (z.B. eine „Diskette“) oder ein optisches Plattenlaufwerk zum Auslesen oder Beschreiben einer austauschbaren, nicht flüchtigen optischen Platte wie einem CD-ROM, DVD-ROM oder andere optische Datenträger bereitgestellt werden. Außerdem kann der Arbeitsspeicher 504 einen Flash-Speicher, z.B. ein Flash-Speicherstick-Laufwerk oder Flash-Laufwerk umfassen. Arbeitsspeichereinheiten können über eine oder mehrere Datenträgerschnittstellen mit einem Bus 503 verbunden werden. Der Arbeitsspeicher 504 kann mindestens ein Programmprodukt mit einem Satz (z.B. mindestens einem) von Programmmodulen umfassen, die konfiguriert sind, um die Funktionen von verschiedenen Ausführungsformen auszuführen.
  • Obwohl der Arbeitsspeicherbus 503, der in 5 als eine einzelne Busstruktur gezeigt wird, die einen direkten Datenübertragungspfad zwischen den Prozessoren 502, dem Arbeitsspeicher 504 und der E/A-Busschnittstelle 510 bereitstellt, kann der Arbeitsspeicherbus 503 in einigen Ausführungsformen mehrere verschiedene Busse oder Datenübertragungspfade umfassen, die in jeder beliebigen von verschiedenen Formen angeordnet sein können, wie zum Beispiel Punkt-zu-Punkt-Verbindungen in einer hierarchischen, sternförmigen oder Web-Konfiguration, mehreren hierarchischen Bussen, parallelen und redundanten Pfaden oder jedem anderen geeigneten Konfigurationstyp. Zwar werden die E/A-Busschnittstelle 510 und der E/A-Bus 508 jeweils als einzelne Einheiten gezeigt, doch kann das Computersystem 500 in einigen Ausführungsformen ferner mehrere E/A-Busschnittstelleneinheiten, mehrere E/A-Busse oder beides enthalten. Während ferner mehrere E/A-Schnittstelleneinheiten gezeigt werden, die den E/A-Bus 508 von verschiedenen Datenübertragungspfaden trennen, die zu den verschiedenen E/A-Einheiten führen, können einige oder alle der E/A-Einheiten in anderen Ausführungsformen direkt mit einem oder mehreren System-E/A-Bussen verbunden sein.
  • In einigen Ausführungsformen kann das Computersystem 500 ein Mehrbenutzer-Mainframe-Computersystem, ein Einzelplatzsystem oder ein Server-Computer oder eine ähnliche Einheit sein, die wenig oder gar keine direkte Benutzeroberfläche hat, aber Anforderungen von anderen Computersystemen (Clients) empfängt. Ferner kann das Computersystem 500 in einigen Ausführungsformen als Desktop-Computer, tragbarer Computer, Laptop- oder Notebook-Computer, Table-Computer, Taschencomputer, Telefon, Smartphone, Netzwerk-Switches oder Router oder jeder andere geeignete Typ einer elektronischen Einheit umgesetzt werden.
  • Es wird angemerkt, dass 5 die repräsentativen Hauptkomponenten eines beispielhaften Computersystems 500 darstellen soll. In einigen Ausführungsformen können einzelne Komponenten jedoch eine größere oder geringere Komplexität aufweisen als in 5 dargestellt, es können andere oder zusätzliche Komponenten zu denjenigen vorhanden sein, die in 5 gezeigt werden, und die Anzahl, der Typ und die Konfiguration solcher Komponenten kann unterschiedlich sein.,
  • Ein oder mehrere Programme/Dienstprogramme 528, die jeweils mindestens einen Satz von Programmmodulen 530 haben, können in dem Arbeitsspeicher 504 gespeichert sein. Die Programme/Dienstprogramme 528 können einen Hypervisor (der auch als Überwachung einer virtuellen Maschine bezeichnet wird), ein oder mehrere Betriebssysteme, ein oder mehrere Anwendungsprogramme, andere Programmmodule und Programmdaten umfassen. Jedes der Betriebssysteme, ein oder mehrere Anwendungsprogramme, andere Programmmodule und Programmdaten oder eine Kombination davon können eine Umsetzung einer Netzwerkumgebung umfassen. Die Programme 528 und/oder die Programmmodule 530 führen im Allgemeinen die Funktionen oder Methodiken von verschiedenen Ausführungsformen aus.
  • Obwohl diese Offenbarung eine ausführliche Beschreibung von Cloud Computing enthält, sollte klar sein, dass die Umsetzung der hierin angeführten Lehren nicht auf eine Cloud-Computing-Umgebung beschränkt ist. Stattdessen können Ausführungsformen der vorliegenden Erfindung gemeinsam mit jedem beliebigen Typ von jetzt bekannter oder später entwickelter Datenverarbeitungsumgebung umgesetzt werden.
  • Cloud Computing ist ein Servicebereitstellungsmodell zum Ermöglichen eines problemlosen bedarfsgesteuerten Netzwerkzugriffs auf einen gemeinsam genutzten Pool von konfigurierbaren Datenverarbeitungsressourcen (z.B. Netzwerke, Netzwerkbandbreite, Server, Verarbeitung, Arbeitsspeicher, Speicher, Anwendungen, virtuelle Maschinen und Dienste), die mit minimalem Verwaltungsaufwand bzw. minimaler Interaktion mit einem Anbieter des Service schnell bereitgestellt und freigegeben werden können. Dieses Cloud-Modell kann mindestens fünf Eigenschaften, mindestens drei Dienstmodelle und mindestens vier Nutzungsmodelle umfassen.
  • Die Eigenschaften sind wie folgt:
  • On-Demand Self-Service: Ein Cloud-Nutzer kann einseitig automatisch nach Bedarf für Datenverarbeitungsfunktionen wie Serverzeit und Netzwerkspeicher sorgen, ohne dass eine menschliche Interaktion mit dem Anbieter des Dienstes erforderlich ist.
  • Broad Network Access: Es sind Funktionen über ein Netzwerk verfügbar, auf die durch Standardmechanismen zugegriffen wird, welche die Verwendung durch heterogene Thin- oder Thick-Client-Plattformen (z.B. Mobiltelefone, Laptops und PDAs) unterstützen.
  • Resource-Pooling: Die Datenverarbeitungsressourcen des Anbieters werden zusammengeschlossen, um mehreren Nutzern unter Verwendung eines Multi-Tenant-Modells zu dienen, wobei verschiedene physische und virtuelle Ressourcen dynamisch nach Bedarf zugewiesen und neu zugewiesen werden. Es gibt eine gefühlte Standortunabhängigkeit, da der Nutzer allgemein keine Kontrolle bzw. Kenntnis über den genauen Standort der bereitgestellten Ressourcen hat, aber in der Lage sein kann, einen Standort auf einer höheren Abstraktionsebene festzulegen (z.B. Land, Staat oder Rechenzentrum).
  • Rapid Elasticity: Funktionen können für eine schnelle horizontale Skalierung (scale out) schnell und elastisch bereitgestellt werden, in einigen Fällen auch automatisch, und für ein schnelles Scale-in schnell freigegeben werden. Für den Nutzer erscheinen die für das Bereitstellen verfügbaren Funktionen häufig unbegrenzt, und sie können jederzeit in jeder beliebigen Menge gekauft werden.
  • Measured Service: Cloud-Systeme steuern und optimieren die Verwendung von Ressourcen automatisch, indem sie eine Messfunktion auf einer gewissen Abstraktionsebene nutzen, die für die Art von Dienst geeignet ist (z.B. Speicher, Verarbeitung, Bandbreite sowie aktive Benutzerkonten). Der Ressourcen-Verbrauch kann überwacht, gesteuert und gemeldet werden, wodurch sowohl für den Anbieter als auch für den Nutzer des verwendeten Dienstes Transparenz geschaffen wird.
  • Die Dienstmodelle sind wie folgt:
  • Software as a Service (SaaS): Die für den Nutzer bereitgestellte Funktion besteht darin, die in einer Cloud-Infrastruktur ausgeführten Anwendungen des Anbieters zu verwenden. Die Anwendungen sind über eine Thin-Client-Schnittstelle wie einen Web-Browser (z.B. eine auf dem Web beruhende eMail) von verschiedenen Client-Einheiten her zugänglich. Der Nutzer verwaltet bzw. steuert die zugrunde liegende Cloud-Infrastruktur nicht, darunter das Netzwerk, Server, Betriebssysteme, Speicher bzw. sogar einzelne Anwendungsfunktionen, mit der möglichen Ausnahme von eingeschränkten benutzerspezifischen Anwendungskonfigurationseinstellungen.
  • Platform as a Service (PaaS): Die dem Nutzer bereitgestellte Funktion besteht darin, durch einen Nutzer erstellte bzw. erhaltene Anwendungen, die unter Verwendung von durch den Anbieter unterstützten Programmiersprachen und Tools erstellt wurden, in der Cloud-Infrastruktur einzusetzen. Der Nutzer verwaltet bzw. steuert die zugrunde liegende Cloud-Infrastruktur nicht, darunter Netzwerke, Server, Betriebssysteme oder Speicher, hat aber die Kontrolle über die eingesetzten Anwendungen und möglicherweise Umgebungskonfigurationen, die eine Anwendung hosten.
  • Infrastructure as a Service (laaS): Die dem Nutzer bereitgestellte Funktion besteht darin, Verarbeitung, Speicher, Netzwerke und andere grundlegende Datenverarbeitungsressourcen bereitzustellen, wobei der Nutzer beliebige Software einsetzen und ausführen kann, zu der Betriebssysteme und Anwendungen gehören können. Der Nutzer verwaltet bzw. steuert die zugrunde liegende Cloud-Infrastruktur nicht, hat aber die Kontrolle über Betriebssysteme, Speicher, eingesetzte Anwendungen und möglicherweise eingeschränkte Kontrolle über ausgewählte Netzwerkkomponenten (z.B. Host-Firewalls).
  • Die Nutzungsmodelle sind wie folgt:
  • Private Cloud: Die Cloud-Infrastruktur wird ausschließlich für eine Organisation betrieben. Sie kann von der Organisation oder einer Drittpartei verwaltet werden und kann innerhalb oder außerhalb von Geschäftsräumen vorhanden sein.
  • Community Cloud: Die Cloud-Infrastruktur wird von mehreren Organisationen gemeinsam genutzt und unterstützt eine bestimmte Community, die gemeinsame Problemstellungen hat (z.B. Berücksichtigung von Zielsetzung, Sicherheitsanforderungen, Richtlinien und Konformität). Sie kann von den Organisationen oder einer Drittpartei verwaltet werden und kann innerhalb oder außerhalb der Geschäftsräume vorhanden sein.
  • Public Cloud: Die Cloud-Infrastruktur wird der allgemeinen Öffentlichkeit oder einer großen Industriegruppe zur Verfügung gestellt und gehört einer Organisation, die Cloud-Dienste verkauft.
  • Hybrid Cloud: Die Cloud-Infrastruktur ist eine Zusammensetzung aus zwei oder mehreren Clouds (privat, Benutzergemeinschaft oder öffentlich), die zwar einzelne Einheiten bleiben, aber durch eine standardisierte oder proprietäre Technologie miteinander verbunden sind, die eine Daten- und Anwendungsportierbarkeit ermöglicht (z.B. Cloud-Zielgruppenverteilung für den Lastausgleich zwischen Clouds).
  • Eine Cloud-Computing-Umgebung ist dienstorientiert, wobei der Schwerpunkt auf Statusunabhängigkeit, geringer Kopplung, Modularität und semantischer Interoperabilität liegt. Im Mittelpunkt von Cloud Computing steht eine Infrastruktur, die ein Netzwerk von miteinander verbundenen Knoten enthält.
  • Unter folgender Bezugnahme auf 6 wird eine veranschaulichende Cloud-Computing-Umgebung 600 dargestellt. Wie gezeigt, enthält die Cloud-Computing-Umgebung 600 einen oder mehrere Cloud-Computing-Knoten 610, mit denen lokale Datenverarbeitungseinheiten, die von Nutzern der Cloud verwendet werden, wie beispielsweise Personal Digital Assistant (PDA) oder Mobiltelefon 620-1, Desktop-Computer 620-2, Laptop-Computer 620-3 und/oder Fahrzeug-Computersystem 620-4, Daten austauschen können. Die Knoten 610 können untereinander Daten austauschen. Sie können physisch oder virtuell in einem oder mehreren Netzwerken gruppiert sein (nicht gezeigt), wie beispielsweise Private, Community, Public oder Hybrid Cloud, wie hierin oben beschrieben, oder in einer Kombination davon. Damit hat die Cloud-Computing-Umgebung 600 die Möglichkeit, eine Infrastruktur, Plattformen und/oder Software als Dienste anzubieten, für die ein Cloud-Nutzer keinerlei Ressourcen auf einer lokalen Datenverarbeitungseinheit vorhalten muss. Es sollte klar sein, dass die in 6 gezeigten Typen von Datenverarbeitungseinheiten 620-1 bis 620-4 nur zur Veranschaulichung dienen sollen und dass die Datenverarbeitungsknoten 610 und die Cloud-Computing-Umgebung 600 mit jedem Typ einer computerisierten Einheit über jeden Typ von Netzwerk und/oder eine über ein Netzwerk adressierbare Verbindung (z.B. unter Verwendung eines Web-Browsers) Daten austauschen können.
  • Unter Bezugnahme auf 7 wird eine Gruppe von funktionalen Abstraktionsschichten 700 gezeigt, die durch die Cloud-Computing-Umgebung 600 (6) bereitgestellt werden. Dabei sollte von Anfang an klar sein, dass die in 7 gezeigten Komponenten, Schichten und Funktionen lediglich zur Veranschaulichung dienen sollen und Ausführungsformen der Erfindung nicht darauf beschränkt sind. Wie dargestellt, werden die folgenden Schichten und entsprechenden Funktionen bereitgestellt:
  • Eine Hardware- und Software-Schicht 710 enthält Hardware- und Software-Komponenten. Zu Beispielen von Hardware-Komponenten zählen Mainframes 711; Server auf Grundlage einer RISC- (Reduced Instruction Set Computer) Architektur 712; Server 713; Blade-Server 714; Speichereinheiten 715; und Netzwerke und Vernetzungskomponenten 716. In einigen Ausführungsformen enthalten Software-Komponenten Software für Netzwerkanwendungsserver 717 und Datenbank-Software 718.
  • Eine Virtualisierungsschicht 720 stellt eine Abstraktionsschicht bereit, von der aus die folgenden beispielhaften virtuellen Entitäten bereitgestellt werden können: virtuelle Server 721; virtueller Speicher 722; virtuelle Netzwerke 723, einschließlich virtuelle private Netzwerke; virtuelle Anwendungen und Betriebssysteme 724; und virtuelle Clients 725.
  • In einem Beispiel kann eine Verwaltungsschicht 730 die im Folgenden beschriebenen Funktionen bereitstellen. Eine Ressourcenbereitstellung 731 sorgt für eine dynamische Beschaffung von Datenverarbeitungsressourcen und anderen Ressourcen, die zum Ausführen von Aufgaben innerhalb der Cloud-Computing-Umgebung eingesetzt werden. Messung und Preisbestimmung 732 ermöglichen beim Einsatz von Ressourcen innerhalb der Cloud-Computing-Umgebung eine Kostenverfolgung und eine Abrechnung oder Rechnungsstellung für die Inanspruchnahme dieser Ressourcen. In einem Beispiel können diese Ressourcen Lizenzen für Anwendungssoftware umfassen. Eine Sicherheitsfunktion stellt eine Identitätsprüfung für Cloud-Nutzer und -Aufgaben sowie einen Schutz für Daten und andere Ressourcen bereit. Ein Benutzerportal 733 stellt den Zugang zur Cloud-Computing-Umgebung für Nutzer und Systemadministratoren bereit. Eine Service-Level- (Dienstgüte) Verwaltung 734 sorgt für Zuweisung und Verwaltung von Cloud-Computing-Ressourcen, sodass erforderliche Service-Levels eingehalten werden. Planung und Vertragserfüllung des Service Level Agreement (SLA) (Dienstgütevereinbarung) 735 stellen eine Vorab-Vereinbarung für und Beschaffung von Cloud-Computing-Ressourcen bereit, für die gemäß eines SLA eine zukünftige Anforderung erwartet wird.
  • Eine Arbeitslastenschicht 740 stellt Beispiele für eine Funktionalität bereit, für welche die Cloud-Computing-Umgebung genutzt werden kann. Zu Beispielen von Arbeitslasten und Funktionen, die von dieser Schicht aus bereitgestellt werden können, zählen Zuordnung und Navigation 741; Software-Entwicklung und Lifecycle-Management 742 (z.B. das Verteilungssystem 100 für private Schlüssel); Bereitstellung von virtuellen Schulungen 743; Datenanalyseverarbeitung 744; Transaktionsverarbeitung 745; und Präzisions-Kohortenanalyse 746.
  • Bei der vorliegenden Erfindung kann es sich um ein System, ein Verfahren und/oder ein Computerprogrammprodukt auf jeder möglichen technischen Detailintegrationsebene handeln. Das Computerprogrammprodukt kann ein durch einen Computer lesbares Speichermedium (oder -medien) enthalten, auf dem durch einen Computer lesbare Programmanweisungen gespeichert sind, um einen Prozessor dazu zu veranlassen, Aspekte der vorliegenden Erfindung auszuführen.
  • Bei dem durch einen Computer lesbaren Speichermedium kann es sich um eine physische Einheit handeln, die Anweisungen zur Verwendung durch eine Einheit zum Ausführen von Anweisungen beibehalten und speichern kann. Das durch einen Computer lesbare Speichermedium kann zum Beispiel eine elektronische Speichereinheit, eine magnetische Speichereinheit, eine optische Speichereinheit, eine elektromagnetische Speichereinheit, eine Halbleiter-Speichereinheit oder jede geeignete Kombination aus dem Vorgenannten sein, es ist aber nicht darauf beschränkt. Zu einer nicht erschöpfenden Liste von spezifischeren Beispielen des durch einen Computer lesbaren Speichermediums gehören die Folgenden: eine tragbare Computerdiskette, eine Festplatte, ein Direktzugriffsspeicher (RAM), ein Nur-Lese-Speicher (ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM bzw. Flash-Speicher), ein statischer Direktzugriffsspeicher (SRAM), ein tragbarer CD-ROM, eine DVD, ein Speicher-Stick, eine Diskette, eine mechanisch codierte Einheit wie zum Beispiel Lochkarten oder erhabene Strukturen in einer Rille, auf denen Anweisungen gespeichert sind, und jede geeignete Kombination des Vorgenannten. Ein durch einen Computer lesbares Speichermedium soll, wie hierin verwendet, nicht als flüchtige Signale an sich aufgefasst werden, wie zum Beispiel Funkwellen oder andere sich frei ausbreitende elektromagnetische Wellen, elektromagnetische Wellen, die sich durch einen Wellenleiter oder andere Übertragungsmedien ausbreiten (z.B. durch ein Lichtwellenleiterkabel geleitete Lichtimpulse) oder durch einen Draht übertragene elektrische Signale.
  • Hierin beschriebene durch einen Computer lesbare Programmanweisungen können von einem durch einen Computer lesbaren Speichermedium auf jeweilige Datenverarbeitungs-/Verarbeitungseinheiten oder über ein Netzwerk wie zum Beispiel das Internet, ein lokales Netzwerk, ein Weitverkehrsnetzwerk und/oder ein drahtloses Netzwerk auf einen externen Computer oder eine externe Speichereinheit heruntergeladen werden. Das Netzwerk kann Kupferübertragungskabel, Lichtwellenübertragungsleiter, drahtlose Übertragung, Leitwegrechner, Firewalls, Vermittlungseinheiten, Gateway-Computer und/oder Edge-Server aufweisen. Eine Netzwerkadapterkarte oder Netzwerkschnittstelle in jeder Datenverarbeitungs-/Verarbeitungseinheit empfängt durch einen Computer lesbare Programmanweisungen aus dem Netzwerk und leitet die durch einen Computer lesbaren Programmanweisungen zur Speicherung in einem durch einen Computer lesbaren Speichermedium innerhalb der entsprechenden Datenverarbeitungs-/Verarbeitungseinheit weiter.
  • Bei durch einen Computer lesbaren Programmanweisungen zum Ausführen von Arbeitsschritten der vorliegenden Offenbarung kann es sich um Assembler-Anweisungen, ISA-Anweisungen (Instruction-Set-Architecture), Maschinenanweisungen, maschinenabhängige Anweisungen, Mikrocode, Firmware-Anweisungen, zustandssetzende Daten, Konfigurationsdaten für integrierte Schaltungen oder entweder Quellcode oder Objektcode handeln, die in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen geschrieben sind, darunter objektorientierte Programmiersprachen wie Smalltalk, C++ o.ä. sowie prozedurale Programmiersprachen wie die Programmiersprache „C“ oder ähnliche Programmiersprachen. Die durch einen Computer lesbaren Programmanweisungen können vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Software-Paket, teilweise auf dem Computer des Benutzers und teilweise auf einem entfernt angeordneten Computer oder vollständig auf dem entfernt angeordneten Computer oder Server ausgeführt werden. In dem letzteren Szenario kann der entfernt angeordnete Computer mit dem Computer des Benutzers durch jeden Typ von Netzwerk verbunden werden, darunter ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetzwerk (WAN), oder die Verbindung kann zu einem externen Computer hergestellt werden (zum Beispiel über das Internet unter Verwendung eines Internet-Dienstanbieters). In einigen Ausführungsformen können elektronische Schaltungen, darunter zum Beispiel programmierbare Logikschaltungen, feldprogrammierbare Gatter-Anordnungen (FPGA, field programmable gate arrays) oder programmierbare Logikanordnungen (PLA, programmable logic arrays) die computerlesbaren Programmanweisungen ausführen, indem sie Zustandsinformationen der computerlesbaren Programmanweisungen nutzen, um die elektronischen Schaltungen zu personalisieren, um Aspekte der vorliegenden Erfindung durchzuführen.
  • Aspekte der vorliegenden Erfindung werden hierin unter Bezugnahme auf Veranschaulichungen von Ablaufplänen und/oder Blockschaubildern von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es sollte klar sein, dass jeder Block der Ablaufplanveranschaulichungen und/oder der Blockschaubilder und Kombinationen von Blöcken in den Ablaufplanveranschaulichungen und/oder den Blockschaubildern mittels durch einen Computer lesbare Programmanweisungen umgesetzt werden können.
  • Diese durch einen Computer lesbaren Programmanweisungen können für einen Prozessor eines Computers oder eine andere programmierbare Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu erzeugen, sodass die über den Prozessor des Computers bzw. eine andere programmierbare Datenverarbeitungsvorrichtung ausgeführten Anweisungen Mittel zur Umsetzung der in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaubilder angegebenen Funktionen/Schritte erstellen. Diese durch einen Computer lesbaren Programmanweisungen können auch auf einem durch einen Computer lesbaren Speichermedium gespeichert sein, das einen Computer, eine programmierbare Datenverarbeitungsvorrichtung und/oder andere Einheiten so steuern kann, dass sie auf eine bestimmte Art funktionieren, sodass das durch einen Computer lesbare Speichermedium, auf dem Anweisungen gespeichert sind, ein Herstellungsprodukt aufweist, darunter Anweisungen, die Aspekte der/des in dem Block bzw. den Blöcken des Ablaufplans und/oder der Blockschaubilder angegebenen Funktion/Schritts umsetzen.
  • Die durch einen Computer lesbaren Programmanweisungen können auch auf einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder eine andere Einheit geladen werden, um das Ausführen einer Reihe von Arbeitsschritten auf dem Computer bzw. der anderen programmierbaren Vorrichtung oder anderen Einheit zu verursachen, um einen durch einen Computer umgesetzten Prozess zu erzeugen, sodass die auf dem Computer, einer anderen programmierbaren Vorrichtung oder einer weiteren Einheit ausgeführten Anweisungen die in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaubilder angegebenen Funktionen/Schritte umsetzen.
  • Die Ablaufpläne und Blockschaubilder in den Figuren veranschaulichen die Architektur, die Funktionalität und den Betrieb möglicher Ausführungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. In diesem Zusammenhang kann jeder Block in den Ablaufplänen oder den Blockschaubildern ein Modul, ein Segment oder einen Teil von Anweisungen darstellen, die eine oder mehrere ausführbare Anweisungen zum Umsetzen der bestimmten logischen Funktion(en) aufweisen. In einigen alternativen Umsetzungen können die in dem Block angegebenen Funktionen in einer anderen Reihenfolge als in den Figuren gezeigt auftreten. Zum Beispiel können zwei nacheinander gezeigte Blöcke als ein Schritt durchgeführt werden, der gleichzeitig, im Wesentlichen gleichzeitig, in einer teilweise oder vollständig zeitlich überlappenden Weise ausgeführt wird, oder die Blöcke können manchmal in der umgekehrten Reihenfolge ausgeführt werden, was von der beteiligten Funktionalität abhängt. Es ist ferner anzumerken, dass jeder Block der Blockschaubilder und/oder der Ablaufplandarstellungen sowie Kombinationen von Blöcken in den Blockschaubildern und/oder der Ablaufplandarstellung durch spezielle auf Hardware beruhende Systeme umgesetzt werden können, welche die angegebenen Funktionen oder Handlungen durchführen oder Kombinationen aus Spezial-Hardware und Computeranweisungen ausführen.
  • Die Beschreibungen der verschiedenen Ausführungsformen der vorliegenden Erfindung wurden zum Zweck der Veranschaulichung erstellt, sie sollen aber keineswegs erschöpfend oder auf die offenbarten Ausführungsformen eingeschränkt sein. Für Fachleute sind viele Modifizierungen und Variationen offenkundig, die nicht von dem Schutzumfang und Erfindungsgedanken der beschriebenen Ausführungsformen abweichen. Die hierin verwendete Terminologie wurde gewählt, um die Grundgedanken der Ausführungsformen, die praktische Anwendung oder technische Verbesserung gegenüber auf dem Markt gefundenen Technologien bestmöglich zu erklären oder anderen Fachleuten zu ermöglichen, die hierin offenbarten Ausführungsformen zu verstehen.

Claims (20)

  1. Durch einen Computer umgesetztes Verfahren zum Verteilen eines privaten Signaturschlüssels zwischen Autorisierungsinstanzen, wobei das durch einen Computer umgesetzte Verfahren aufweist: Registrieren einer Mehrzahl von Autorisierungsinstanzen in einer Konfigurationsdatei durch Bereitstellen einer Registrierung für die Konfiguration, wobei die Autorisierungsinstanzen an einem allgemeinen Dienst beteiligt sind; Generieren eines Host-Instanz-Schlüsselpaars für jede der Autorisierungsinstanzen, wobei jedes der Host-Instanz-Schlüsselpaare einen öffentlichen Host-Schlüssel und einen privaten Host-Schlüssel umfasst; Speichern der öffentlichen Host-Schlüssel in einer gemeinsam genutzten Datenbank; Wählen von einer der Autorisierungsinstanzen als eine führende Signaturschlüssel-Instanz; Generieren, durch die führende Signaturschlüssel-Instanz, eines Signaturschlüsselpaars, wobei das Signaturschlüsselpaar einen öffentlichen Signaturschlüssel und einen privaten Signaturschlüssel umfasst; Speichern des öffentlichen Signaturschlüssels in der gemeinsam genutzten Datenbank; Übertragen eines verschlüsselten privaten Signaturschlüssels zu einer anfordernden Autorisierungsinstanz von den Autorisierungsinstanzen, wobei der private Signaturschlüssel durch Verwenden des öffentlichen Host-Schlüssels verschlüsselt wird, der der anfordernden Autorisierungsinstanz entspricht; und Entschlüsseln, durch die anfordernde Autorisierungsinstanz, des verschlüsselten privaten Signaturschlüssels durch Verwenden des privaten Host-Schlüssels, der durch die anfordernde Autorisierungsinstanz generiert wurde.
  2. Durch einen Computer umgesetztes Verfahren nach Anspruch 1, wobei das Übertragen des verschlüsselten privaten Signaturschlüssels aufweist: Erfassen, durch die anfordernde Autorisierungsinstanz, des öffentlichen Signaturschlüssels, der in der gemeinsam genutzten Datenbank gespeichert ist; Anfordern, durch die anfordernde Autorisierungsinstanz, des privaten Signaturschlüssels von der führenden Signaturschlüssel-Instanz; Validieren der an die führende Signaturschlüssel-Instanz gestellten Anforderung durch Untersuchen einer Quell-IP-Adresse der Anforderung; Abrufen, nach dem Validieren der Anforderung, des öffentlichen Host-Schlüssels, der der anfordernden Autorisierungsinstanz entspricht, aus der gemeinsam genutzten Datenbank; Verschlüsseln des privaten Signaturschlüssels durch Verwenden des öffentlichen Host-Schlüssels; und Übertragen des verschlüsselten privaten Signaturschlüssels an die anfordernde Autorisierungsinstanz.
  3. Durch einen Computer umgesetztes Verfahren nach Anspruch 2, wobei das Validieren der Anforderung aufweist: Abrufen einer Registrierung, die der anfordernden Autorisierungsinstanz zugehörig ist, aus der Konfigurationsdatei; und Überprüfen, dass die Quell-IP-Adresse der Anforderung mit einer gespeicherten IP-Adresse der anfordernden Autorisierungsinstanz übereinstimmt, die sich in der Registrierung befindet.
  4. Durch einen Computer umgesetztes Verfahren nach einem der Ansprüche 1 bis 3, das ferner aufweist: Abrufen einer Registrierung für die anfordernde Autorisierungsinstanz aus der Konfigurationsdatei, wobei die Registrierung einen Host-Namen der anfordernden Autorisierungsinstanz umfasst; Bereitstellen des verschlüsselten privaten Signaturschlüssels über einen Rückruf an dem Host-Namen der anfordernden Autorisierungsinstanz.
  5. Durch einen Computer umgesetztes Verfahren nach einem der Ansprüche 1 bis 4, das ferner aufweist: Erfassen, dass die führende Signaturschlüssel-Instanz nicht mehr reagiert; und Wählen einer neuen führenden Signaturschlüssel-Instanz aus den AutorisierungsInstanzen.
  6. Durch einen Computer umgesetztes Verfahren nach einem der Ansprüche 1 bis 5, das ferner aufweist: Durchführen eines Rollovers des Signaturschlüsselpaars, um ein neues Signaturschlüsselpaar zu generieren; und Hinzufügen eines neuen öffentlichen Signaturschlüssels zu der gemeinsam genutzten Datenbank.
  7. Durch einen Computer umgesetztes Verfahren nach einem der Ansprüche 1 bis 6, wobei das Signaturschlüsselpaar in einem Arbeitsspeicher der führenden Signaturschlüssel-Instanz gespeichert ist.
  8. Nicht flüchtiges, durch einen Computer lesbares Speichermedium, auf dem eine Anweisung gespeichert ist, um ein Computersystem zu steuern zum: Registrieren einer Mehrzahl von Autorisierungsinstanzen in einer Konfigurationsdatei durch Bereitstellen einer Registrierung für die Konfiguration, wobei die Autorisierungsinstanzen an einem gemeinsamen Dienst beteiligt sind; Generieren eines Host-Instanz-Schlüsselpaars für jede der Autorisierungsinstanzen, wobei jedes der Host-Instanz-Schlüsselpaare einen öffentlichen Host-Schlüssel und einen privaten Host-Schlüssel umfasst; Speichern der öffentlichen Host-Schlüssel in einer gemeinsam genutzten Datenbank; Wählen von einer der Autorisierungsinstanzen als eine führende Signaturschlüssel-Instanz; Generieren eines Signaturschlüsselpaars durch die führende Signaturschlüssel-Instanz, wobei das Signaturschlüsselpaar einen öffentlichen Signaturschlüssel und einen privaten Signaturschlüssel umfasst; Speichern des öffentlichen Signaturschlüssels in der gemeinsam genutzten Datenbank; und Übertragen eines verschlüsselten privaten Signaturschlüssels zu einer anfordernden Autorisierungsinstanz von den Autorisierungsinstanzen, wobei der private Signaturschlüssel durch Verwenden des öffentlichen Host-Schlüssels verschlüsselt wird, der der anfordernden Autorisierungsinstanz entspricht, um den verschlüsselten privaten Signaturschlüssel zu generieren.
  9. Nicht flüchtiges, durch einen Computer lesbares Speichermedium nach Anspruch 8, wobei das Übertragen des verschlüsselten privaten Signaturschlüssels Anweisungen aufweist, um das Computersystem zu veranlassen zum: Erfassen, durch die anfordernde Autorisierungsinstanz, des öffentlichen Signaturschlüssels in der gemeinsam genutzten Datenbank; Anfordern, durch die anfordernde Autorisierungsinstanz, des privaten Signaturschlüssel aus der führenden Signaturschlüssel-Instanz; Validieren der an die führende Signaturschlüssel-Instanz gestellten Anforderung durch Untersuchen einer Quell-IP-Adresse der Anforderung; Abrufen, nach dem Validieren der Anforderung, des öffentlichen Host-Schlüssels, der der anfordernden Autorisierungsinstanz entspricht, aus der gemeinsam genutzten Datenbank; Verschlüsseln des privaten Signaturschlüssels durch Verwenden des öffentlichen Host-Schlüssels; und Übertragen des verschlüsselten privaten Signaturschlüssels an die anfordernde Autorisierungsinstanz.
  10. Nicht flüchtiges, durch einen Computer lesbares Speichermedium nach Anspruch 9, wobei das Validieren der Anforderung Anweisungen aufweist, um das Computersystem zu veranlassen zum: Abrufen einer Registrierung für die anfordernde Autorisierungsinstanz aus der Konfigurationsdatei; und Überprüfen, dass die Quell-IP-Adresse der Anforderung mit einer gespeicherten IP-Adresse der anfordernden Autorisierungsinstanz übereinstimmt, die sich in der Registrierung befindet.
  11. Nicht flüchtiges, durch einen Computer lesbares Speichermedium nach einem der Ansprüche 8 bis 10, das ferner Anweisungen aufweist, um das Computersystem zu veranlassen zum: Abrufen einer Registrierung für die anfordernde Autorisierungsinstanz aus der Konfigurationsdatei, wobei die Registrierung einen Host-Namen der anfordernden Autorisierungsinstanz umfasst; Bereitstellen des verschlüsselten privaten Signaturschlüssels über einen Rückruf an dem Host-Namen der anfordernden Autorisierungsinstanz.
  12. Nicht flüchtiges, durch einen Computer lesbares Speichermedium nach einem der Ansprüche 8 bis 11, das ferner Anweisungen aufweist, um das Computersystem zu veranlassen zum: Erfassen, dass die führende Signaturschlüssel-Instanz nicht mehr reagiert; und Wählen einer neuen führenden Signaturschlüssel-Instanz aus den AutorisierungsInstanzen.
  13. Nicht flüchtiges, durch einen Computer lesbares Speichermedium nach einem der Ansprüche 8 bis 12, das ferner Anweisungen aufweist, um das Computersystem zu veranlassen zum: Durchführen eines Rollovers des Signaturschlüsselpaars, um ein neues Signaturschlüsselpaar zu generieren; und Hinzufügen eines neuen öffentlichen Signaturschlüssels zu der gemeinsam genutzten Datenbank.
  14. Nicht flüchtiges, durch einen Computer lesbares Speichermedium nach einem der Ansprüche 8 bis 13, wobei das Signaturschlüsselpaar in einem Arbeitsspeicher der führenden Signaturschlüssel-Instanz gespeichert ist.
  15. Computersystem zum Verteilen eines privaten Signaturschlüssels zwischen Autorisierungsinstanzen, wobei das Computersystem aufweist: eine Datenverarbeitungskomponente; einen physischen Arbeitsspeicher; und einen lokalen Datenspeicher, in dem durch einen Computer ausführbarer Programmcode gespeichert ist, der bei Ausführung durch die Datenverarbeitungskomponente die Datenverarbeitungskomponente veranlasst zum: Registrieren einer Mehrzahl von Autorisierungsinstanzen in einer Konfigurationsdatei durch Bereitstellen einer Registrierung für die Konfiguration, wobei die Autorisierungsinstanzen an einem gemeinsamen Dienst beteiligt sind; Generieren eines Host-Instanz-Schlüsselpaars für jede der Autorisierungsinstanzen, wobei jedes der Host-Instanz-Schlüsselpaare einen öffentlichen Host-Schlüssel und einen privaten Host-Schlüssel umfasst; Speichern der öffentlichen Host-Schlüssel in einer gemeinsam genutzten Datenbank; Wählen von einer der Autorisierungsinstanzen als eine führende Signaturschlüssel-Instanz; Generieren eines Signaturschlüsselpaars durch die führende Signaturschlüssel-Instanz, wobei das Signaturschlüsselpaar einen öffentlichen Signaturschlüssel und einen privaten Signaturschlüssel umfasst; Speichern des öffentlichen Signaturschlüssels in der gemeinsam genutzten Datenbank; und Übertragen eines verschlüsselten privaten Signaturschlüssels zu einer anfordernden Autorisierungsinstanz von den Autorisierungsinstanzen, wobei der private Signaturschlüssel durch Verwenden des öffentlichen Host-Schlüssels verschlüsselt wird, der der anfordernden Autorisierungsinstanz entspricht, um den verschlüsselten privaten Signaturschlüssel zu generieren.
  16. Computersystem nach Anspruch 15, wobei das Übertragen des verschlüsselten privaten Signaturschlüssels die Datenverarbeitungskomponente veranlasst zum: Erfassen, durch die anfordernde Autorisierungsinstanz, des öffentlichen Signaturschlüssels in der gemeinsam genutzten Datenbank; Anfordern, durch die anfordernde Autorisierungsinstanz, des privaten Signaturschlüssel aus der führenden Signaturschlüssel-Instanz; Validieren der an die führende Signaturschlüssel-Instanz gestellten Anforderung durch Untersuchen einer Quell-IP-Adresse der Anforderung; Abrufen, nach dem Validieren der Anforderung, des öffentlichen Host-Schlüssels, der der anfordernden Autorisierungsinstanz entspricht, aus der gemeinsam genutzten Datenbank; Verschlüsseln des privaten Signaturschlüssels durch Verwenden des öffentlichen Host-Schlüssels; und Übertragen des verschlüsselten privaten Signaturschlüssels an die anfordernde Autorisierungsinstanz.
  17. Computersystem nach Anspruch 16, wobei das Validieren der Anforderung die Datenverarbeitungskomponente veranlasst zum: Abrufen einer Registrierung für die anfordernde Autorisierungsinstanz aus der Konfigurationsdatei; und Überprüfen, dass die Quell-IP-Adresse der Anforderung mit einer gespeicherten IP-Adresse der anfordernden Autorisierungsinstanz übereinstimmt, die sich in der Registrierung befindet.
  18. Computersystem nach einem der Ansprüche 15 bis 17, das ferner aufweist: Abrufen einer Registrierung für die anfordernde Autorisierungsinstanz aus der Konfigurationsdatei, wobei die Registrierung einen Host-Namen der anfordernden Autorisierungsinstanz umfasst; Bereitstellen des verschlüsselten privaten Signaturschlüssels über einen Rückruf an dem Host-Namen der anfordernden Autorisierungsinstanz.
  19. Computersystem nach einem der Ansprüche 15 bis 18, das ferner aufweist: Erfassen, dass die führende Signaturschlüssel-Instanz nicht mehr reagiert; und Wählen einer neuen führenden Signaturschlüssel-Instanz aus den AutorisierungsInstanzen.
  20. Computersystem nach einem der Ansprüche 15 bis 19, das ferner aufweist: Durchführen eines Rollovers des Signaturschlüsselpaars, um ein neues Signaturschlüsselpaar zu generieren; und Hinzufügen eines neuen öffentlichen Signaturschlüssels zu der gemeinsam genutzten Datenbank.
DE112021000340.2T 2020-03-13 2021-02-10 Sichere private schlüsselverteilung zwischen endpunktinstanzen Pending DE112021000340T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/818,534 2020-03-13
US16/818,534 US11121864B1 (en) 2020-03-13 2020-03-13 Secure private key distribution between endpoint instances
PCT/IB2021/051090 WO2021181176A1 (en) 2020-03-13 2021-02-10 Secure private key distribution between endpoint instances

Publications (1)

Publication Number Publication Date
DE112021000340T5 true DE112021000340T5 (de) 2022-10-20

Family

ID=77665439

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112021000340.2T Pending DE112021000340T5 (de) 2020-03-13 2021-02-10 Sichere private schlüsselverteilung zwischen endpunktinstanzen

Country Status (10)

Country Link
US (1) US11121864B1 (de)
JP (1) JP2023516130A (de)
KR (1) KR20220134572A (de)
CN (1) CN115280718B (de)
AU (1) AU2021235526B2 (de)
CA (1) CA3166663A1 (de)
DE (1) DE112021000340T5 (de)
GB (1) GB2608570B (de)
IL (1) IL295069A (de)
WO (1) WO2021181176A1 (de)

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2417901C (en) * 2000-08-04 2013-01-22 First Data Corporation Entity authentication in electronic communications by providing verification status of device
US7181017B1 (en) * 2001-03-23 2007-02-20 David Felsher System and method for secure three-party communications
US7523490B2 (en) * 2002-05-15 2009-04-21 Microsoft Corporation Session key security protocol
FR2842680A1 (fr) * 2002-07-19 2004-01-23 France Telecom Procede de signature de liste et application au vote electronique
WO2005062919A2 (en) 2003-12-22 2005-07-14 Wachovia Corporation Public key encryption for groups
US8464347B2 (en) * 2008-03-28 2013-06-11 Panasonic Corporation Software updating apparatus, software updating system, alteration verification method and alteration verification program
EP2442253A1 (de) * 2010-10-12 2012-04-18 Research In Motion Limited Verfahren zur Sicherung von Berechtigungsnachweisen in einem Fernspeicher
CN103460195B (zh) * 2011-02-11 2016-04-13 西门子医疗保健诊断公司 用于安全软件更新的系统和方法
US10333903B1 (en) 2015-06-16 2019-06-25 Amazon Technologies, Inc. Provisioning network keys to devices to allow them to provide their identity
CN110050437B (zh) * 2016-09-06 2020-10-23 华为技术有限公司 分布式证书注册的装置和方法
US10250572B2 (en) 2016-09-29 2019-04-02 Amazon Technologies, Inc. Logic repository service using encrypted configuration data
US10581595B2 (en) 2017-03-01 2020-03-03 International Business Machines Corporation Generating public/private key pairs to deploy public keys at computing devices to verify digital signatures
JP6910894B2 (ja) 2017-09-01 2021-07-28 キヤノン株式会社 情報処理装置、制御方法、およびプログラム
US10924289B2 (en) * 2018-07-13 2021-02-16 Visa International Service Association Public-private key pair account login and key manager
US11223485B2 (en) * 2018-07-17 2022-01-11 Huawei Technologies Co., Ltd. Verifiable encryption based on trusted execution environment
CN109600224A (zh) 2018-11-06 2019-04-09 卓望数码技术(深圳)有限公司 一种sm2密钥生成、签名方法、终端、服务器和存储介质
SG11201908946PA (en) 2019-03-26 2019-10-30 Alibaba Group Holding Ltd Program execution and data proof scheme using multiple key pair signatures

Also Published As

Publication number Publication date
AU2021235526B2 (en) 2023-07-13
JP2023516130A (ja) 2023-04-18
CA3166663A1 (en) 2021-09-16
KR20220134572A (ko) 2022-10-05
GB2608570B (en) 2023-09-13
GB2608570A (en) 2023-01-04
AU2021235526A1 (en) 2022-08-25
WO2021181176A1 (en) 2021-09-16
CN115280718A (zh) 2022-11-01
US20210288790A1 (en) 2021-09-16
CN115280718B (zh) 2023-10-24
IL295069A (en) 2022-09-01
GB202215019D0 (en) 2022-11-23
US11121864B1 (en) 2021-09-14

Similar Documents

Publication Publication Date Title
DE112018004390B4 (de) Sichere zugriffsverwaltung für werkzeuge innerhalb einer sicheren umgebung
DE112021001270T5 (de) Sicherer schlüsselaustausch in einer datenverarbeitungsumgebung
DE112017002044T5 (de) Plattformattestierung und registrierung für server
DE102012219155A1 (de) Verschlüsseln von Datenobjekten zur Datensicherung
DE112011101729T5 (de) Verwaltung von Ressourcenzugriff
DE112012002741T5 (de) Identitäts- und Berechtigungsprüfungsverfahren für die Sicherheit einer Cloud-Datenverarbeitungsplattform
DE112021004344T5 (de) Konsensdienst für Blockchain-Netzwerke
DE112021006229T5 (de) Hybride schlüsselableitung zum sichern von daten
DE112021005561T5 (de) Implementieren einer widerstandsfähigen deterministischen verschlüsselung
DE102021129514A1 (de) Binden von post-quanten-zertifikaten
DE102016105062A1 (de) Nähengestützte Berechtigungsprüfung für einheitenübergreifend verteilte Daten
DE112020002343T5 (de) Verteilung von Sicherheitsberechtigungsnachweisen
DE112021006372T5 (de) Sichere bereitstellung einer datenverarbeitungsressource unter verwendung einer homomorphen verschlüsselung
DE112019003130T5 (de) Hsm-selbstzerstörung in einer hybriden cloud-kms-lösung
DE112020003357T5 (de) Undurchsichtige verschlüsselung für datendeduplizierung
DE112020005373T5 (de) Mechanismus zur authentifizierung durch nutzung von positionsbestätigung
DE112020005625T5 (de) Binden sicherer objekte eines sicherheitsmoduls an einen sicheren gast
DE112022002623T5 (de) Vertrauenswürdige und dezentrale aggregation für föderiertes lernen
DE112021005862T5 (de) Selbstprüfende blockchain
DE102021130942A1 (de) Mehrstufiger schutz für datenzentrierte objekte
DE102022100111A1 (de) Netzwerkschnittstelle mit Datenschutz
DE112021001764T5 (de) Ermitteln eines urhebers eines verschlüsselten objekts
DE112019001957T5 (de) Sichere operationen mit verschlüsselten daten
DE112021002747T5 (de) Sicheres wiederherstellen von geheimen schlüsseln
DE112022003983T5 (de) Berechtigte, sichere datenverschiebung

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R084 Declaration of willingness to licence