DE112021005867T5 - Schlüsselrotation auf einem publish-subscribe-system - Google Patents

Schlüsselrotation auf einem publish-subscribe-system Download PDF

Info

Publication number
DE112021005867T5
DE112021005867T5 DE112021005867.3T DE112021005867T DE112021005867T5 DE 112021005867 T5 DE112021005867 T5 DE 112021005867T5 DE 112021005867 T DE112021005867 T DE 112021005867T DE 112021005867 T5 DE112021005867 T5 DE 112021005867T5
Authority
DE
Germany
Prior art keywords
messages
encrypted
assigned
topic
publish
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
DE112021005867.3T
Other languages
English (en)
Inventor
Christopher Giblin
John Rooney
Florian Froese
Pascal Vetsch
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 DE112021005867T5 publication Critical patent/DE112021005867T5/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/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/55Push-based network services
    • 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/0891Revocation or update of secret information, e.g. encryption key update or rekeying
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Storage Device Security (AREA)
  • Information Transfer Between Computers (AREA)
  • Lock And Its Accessories (AREA)

Abstract

Die vorliegende Offenbarung betrifft ein Verfahren für eine kryptographische Schlüsselrotation in einem Publish-Subscribe-System, das einen Broker-Dienst zum Weiterleiten gespeicherter verschlüsselter Nachrichten an einen oder mehrere Subscriber des Themas bereitstellt, dem die weitergeleiteten Nachrichten zugewiesen sind. Das Weiterleiten umfasst Entschlüsseln der gespeicherten verschlüsselten Nachrichten. Die kryptographische Schlüsselrotation umfasst ein Neuverschlüsseln der gespeicherten Nachrichten unter Verwendung eines kryptographischen Ersatzschlüssels. Das Neuverschlüsseln wird durch ein Verschlüsselungsmodul des Publish-Subscribe-Systems als Hintergrundprozess durchgeführt, während der Broker-Dienst fortgesetzt wird.

Description

  • HINTERGRUND
  • Die vorliegende Offenbarung betrifft das Gebiet von Publish-Subscribe-Systemen (Veröffentlichen-Abonnieren-Systemen) und insbesondere ein Verfahren, ein Computerprogrammprodukt und ein Computersystem für eine kryptographische Schlüsselrotation in einem Publish-Subscribe-System.
  • Verteilte Daten-Streaming-Systeme wie Publish-Subscribe-Systeme spielen bei der Verteilung von Daten eine zunehmende Rolle, beispielsweise innerhalb von Unternehmen und anderen Arten von Organisationen. Mit einem Publish-Subscribe-System ist es möglich, von Publishern (Veröffentlichern) bereitgestellte Nachrichten asynchron an verschiedene Teile eines Systems zu übertragen, also an Subscriber (Abonnenten). Zu einem Thema veröffentlichte Nachrichten werden an Subscriber des jeweiligen Themas ausgesendet. Um die in dem Publish-Subscribe-System gespeicherten Nachrichten zu schützen, können die gespeicherten Nachrichten verschlüsselt werden.
  • KURZDARSTELLUNG
  • Gemäß einer Ausführungsform der vorliegenden Offenbarung wird ein Verfahren für eine kryptographische Schlüsselrotation in einem Publish-Subscribe-System bereitgestellt. Das Publish-Subscribe-System speichert eine Mehrzahl von Nachrichten, wobei jede der gespeicherten Nachrichten einem Thema aus einer Gruppe von Themen zugewiesen wird, und wobei jeder der gespeicherten Nachrichten ein kryptographischer Schlüssel aus einer Gruppe von einem oder mehreren kryptographischen Schlüsseln zugewiesen wird, und wobei jede der gespeicherten Nachrichten mit dem zugewiesenen kryptographischen Schlüssel verschlüsselt wird. Das Publish-Subscribe-System stellt einen Broker-Dienst zum Weiterleiten der gespeicherten Nachrichten an einen oder mehrere Subscriber der Themen bereit, dem die weitergeleiteten Nachrichten zugewiesen sind. Das Weiterleiten umfasst das Entschlüsseln der weiterzuleitenden Nachricht unter Verwendung des zugewiesenen kryptographischen Schlüssels der jeweiligen Nachricht und das Senden der entschlüsselten Nachrichten an einen oder mehrere der Subscriber des zugewiesenen Themas.
  • Die kryptographische Schlüsselrotation umfasst ein Neuverschlüsseln jeder Nachricht aus einem ersten Satz eines oder mehrerer erster Nachrichten der gespeicherten Nachrichten. Jede der ersten Nachrichten wird einem gemeinsamen ersten Thema aus der Gruppe von Themen zugewiesen, wird einem ersten kryptographischen Schlüssel aus einem ersten Satz eines oder mehrerer erster kryptographischer Schlüssel aus der Gruppe von kryptographischen Schlüsseln zugewiesen und wird mit dem zugewiesenen ersten kryptographischen Schlüssel verschlüsselt. Das Neuverschlüsseln wird von einem Verschlüsselungsmodul des Publish-Subscribe-Systems als Hintergrundprozess ausgeführt, während das Weiterleiten erster Nachrichten von dem Broker-Dienst und das Empfangen zusätzlicher erster Nachrichten für das gemeinsame erste Thema durch diesen fortgesetzt wird.
  • Das Neuverschlüsseln umfasst das Hinzufügen eines zweiten Satzes eines oder mehrerer zweiter kryptographischer Schlüssel zu der Gruppe von kryptographischen Schlüsseln. Jeder der zweiten kryptographischen Schlüssel ist ein Ersatzschlüssel für einen der ersten kryptographischen Schlüssel. In Bezug auf jede der ersten Nachrichten umfasst das Verfahren ferner das Entschlüssen der verschlüsselten ersten Nachricht unter Verwendung des ersten kryptographischen Schlüssels, der den jeweiligen ersten Nachrichten zugewiesen ist. Die entschlüsselte erste Nachricht wird unter Verwendung des Ersatzschlüssels für den zugewiesenen ersten kryptographischen Schlüssel neu verschlüsselt. Der zum Neuverschlüsseln der neu verschlüsselten ersten Nachricht verwendete Schlüssel wird der jeweiligen neu verschlüsselten ersten Nachricht zugewiesen. Es wird ein Wechsel von der Verwendung der ersten verschlüsselten Nachricht und des zugewiesenen ersten kryptographischen Schlüssels zur Weiterleitung auf die Verwendung der neu verschlüsselten ersten Nachricht und des zugewiesenen Ersatzschlüssels durchgeführt.
  • Gemäß einer weiteren Ausführungsform der vorliegenden Offenbarung wird ein Computerprogrammprodukt für eine kryptographische Schlüsselrotation in einem Publish-Subscribe-System bereitgestellt. Das Computerprogrammprodukt weist ein durch einen Computer lesbares Speichermedium mit Programmanweisungen darauf auf. Die Programmanweisungen sind durch einen Prozessor eines Computersystems eines Publish-Subscribe-Systems ausführbar, um das Computersystem zu veranlassen, die kryptographische Schlüsselrotation durchzuführen.
  • Das Publish-Subscribe-System speichert eine Mehrzahl von Nachrichten, wobei jede der gespeicherten Nachrichten einem Thema aus einer Gruppe von Themen zugewiesen wird, und wobei jeder der gespeicherten Nachrichten ein kryptographischer Schlüssel aus einer Gruppe von einem oder mehreren kryptographischen Schlüsseln zugewiesen wird, und wobei jede der gespeicherten Nachrichten mit dem zugewiesenen kryptographischen Schlüssel verschlüsselt wird. Das Publish-Subscribe-System stellt einen Broker-Dienst zum Weiterleiten der gespeicherten Nachrichten an einen oder mehrere Subscriber der Themen bereit, dem die weitergeleiteten Nachrichten zugewiesen sind. Das Weiterleiten umfasst das Entschlüsseln der weiterzuleitenden Nachricht unter Verwendung des zugewiesenen kryptographischen Schlüssels der jeweiligen Nachricht und das Senden der entschlüsselten Nachrichten an einen oder mehrere der Subscriber des zugewiesenen Themas.
  • Die kryptographische Schlüsselrotation umfasst ein Neuverschlüsseln jeder Nachricht aus einem ersten Satz einer oder mehrerer erster Nachrichten der gespeicherten Nachrichten. Jede der ersten Nachrichten wird einem gemeinsamen ersten Thema aus der Gruppe von Themen zugewiesen, wird einem ersten kryptographischen Schlüssel aus einem ersten Satz eines oder mehrerer erster kryptographischer Schlüssel aus der Gruppe von kryptographischen Schlüsseln zugewiesen und wird mit dem zugewiesenen ersten kryptographischen Schlüssel verschlüsselt. Das Neuverschlüsseln wird von einem Verschlüsselungsmodul des Publish-Subscribe-Systems als Hintergrundprozess ausgeführt, während das Weiterleiten erster Nachrichten von dem Broker-Dienst und das Empfangen zusätzlicher erster Nachrichten für das gemeinsame erste Thema durch diesen fortgesetzt wird.
  • Das Neuverschlüsseln umfasst das Hinzufügen eines zweiten Satzes eines oder mehrerer zweiter kryptographischer Schlüssel zu der Gruppe von kryptographischen Schlüsseln. Jeder der zweiten kryptographischen Schlüssel ist ein Ersatzschlüssel für einen der ersten kryptographischen Schlüssel. In Bezug auf jede der ersten Nachrichten umfasst das Verfahren ferner das Entschlüsseln der verschlüsselten ersten Nachricht unter Verwendung des ersten kryptographischen Schlüssels, der den jeweiligen ersten Nachrichten zugewiesen ist. Die entschlüsselte erste Nachricht wird unter Verwendung des Ersatzschlüssels für den zugewiesenen ersten kryptographischen Schlüssel neu verschlüsselt. Der zum Neuverschlüsseln der neu verschlüsselten ersten Nachricht verwendete Schlüssel wird der jeweiligen neu verschlüsselten ersten Nachricht zugewiesen. Es wird ein Wechsel von der Verwendung der ersten verschlüsselten Nachricht und des zugewiesenen ersten kryptographischen Schlüssels zur Weiterleitung auf die Verwendung der neu verschlüsselten ersten Nachricht und des zugewiesenen Ersatzschlüssels durchgeführt.
  • Gemäß einer weiteren Ausführungsform der vorliegenden Offenbarung wird ein Computersystem für eine kryptographische Schlüsselrotation in einem Publish-Subscribe-System bereitgestellt. Das Publish-Subscribe-System speichert eine Mehrzahl von Nachrichten, wobei jede der gespeicherten Nachrichten einem Thema aus einer Gruppe von Themen zugewiesen wird und wobei jeder der gespeicherten Nachrichten ein kryptographischer Schlüssel aus einer Gruppe von einem oder mehreren kryptographischen Schlüsseln zugewiesen wird und wobei jede der gespeicherten Nachrichten mit dem zugewiesenen kryptographischen Schlüssel verschlüsselt wird. Das Publish-Subscribe-System stellt einen Broker-Dienst zum Weiterleiten der gespeicherten Nachrichten an einen oder mehrere Subscriber der Themen bereit, denen die weitergeleiteten Nachrichten zugewiesen sind. Das Weiterleiten umfasst das Entschlüsseln der weiterzuleitenden Nachricht unter Verwendung des zugewiesenen kryptographischen Schlüssels der jeweiligen Nachricht und das Senden der entschlüsselten Nachrichten an einen oder mehrere der Subscriber des zugewiesenen Themas.
  • Die kryptographische Schlüsselrotation umfasst ein Neuverschlüsseln jeder Nachricht aus einem ersten Satz einer oder mehrerer erster Nachrichten der gespeicherten Nachrichten. Jede der ersten Nachrichten wird einem gemeinsamen ersten Thema aus der Gruppe von Themen zugewiesen, wird einem ersten kryptographischen Schlüssel aus einem ersten Satz eines oder mehrerer erster kryptographischer Schlüssel aus der Gruppe von kryptographischen Schlüsseln zugewiesen und wird mit dem zugewiesenen ersten kryptographischen Schlüssel verschlüsselt. Das Neuverschlüsseln wird von einem Verschlüsselungsmodul des Publish-Subscribe-Systems als Hintergrundprozess ausgeführt, während das Weiterleiten erster Nachrichten von dem Broker-Dienst und das Empfangen zusätzlicher erster Nachrichten für das gemeinsame erste Thema durch diesen fortgesetzt wird.
  • Das Computersystem weist einen Prozessor und einen Speicher auf, auf dem durch den Prozessor ausführbare Programmanweisungen gespeichert sind. Die Ausführung der Programmanweisungen durch den Prozessor veranlasst das Computersystem, das Neuverschlüsseln durchzuführen. Das Neuverschlüsseln umfasst das Hinzufügen eines zweiten Satzes eines oder mehrerer zweiter kryptographischer Schlüssel zu der Gruppe von kryptographischen Schlüsseln. Jeder der zweiten kryptographischen Schlüssel ist ein Ersatzschlüssel für einen der ersten kryptographischen Schlüssel. In Bezug auf jede der ersten Nachrichten umfasst das Verfahren ferner das Entschlüssen der verschlüsselten ersten Nachricht unter Verwendung des ersten kryptographischen Schlüssels, der den jeweiligen ersten Nachrichten zugewiesen ist. Die entschlüsselte erste Nachricht wird unter Verwendung des Ersatzschlüssels für den zugewiesenen ersten kryptographischen Schlüssel neu verschlüsselt. Der zum Neuverschlüsseln der neu verschlüsselten ersten Nachricht verwendete Schlüssel wird der jeweiligen neu verschlüsselten ersten Nachricht zugewiesen. Es wird ein Wechsel von der Verwendung der ersten verschlüsselten Nachricht und des zugewiesenen ersten kryptographischen Schlüssels zur Weiterleitung auf die Verwendung der neu verschlüsselten ersten Nachricht und des zugewiesenen Ersatzschlüssels durchgeführt.
  • Figurenliste
  • Im Folgenden werden Ausführungsformen der Offenbarung lediglich beispielhaft unter Bezugnahme auf die Zeichnungen näher erläutert, in denen zeigen:
    • 1 ein Blockschaubildschema, das ein beispielhaftes Computersystem veranschaulicht;
    • 2 ein Blockschaubild, das ein beispielhaftes Publish-Subscribe-System veranschaulicht;
    • 3 ein Blockschaubild, das ein beispielhaftes Publish-Subscribe-System veranschaulicht;
    • 4 ein Blockschaubild, das ein beispielhaftes Publish-Subscribe-System veranschaulicht, wobei die Themenverschlüsselung in einem Broker umgesetzt ist;
    • 5 ein Blockschaubild, das ein beispielhaftes Publish-Subscribe-System veranschaulicht, wobei die Themenverschlüsselung in einem Proxy umgesetzt ist;
    • 6 einen schematischen Ablaufplan eines beispielhaften Verfahrens für eine kryptographische Schlüsselrotation;
    • 7 ein Blockschaubild, das ein beispielhaftes Publish-Subscribe-System veranschaulicht, wobei ein Themen-Alias in einem Broker umgesetzt ist;
    • 8 ein Blockschaubild, das ein beispielhaftes Publish-Subscribe-System veranschaulicht, wobei ein Themen-Alias in einem Broker umgesetzt ist;
    • 9 ein Blockschaubild, das ein beispielhaftes Publish-Subscribe-System veranschaulicht, wobei ein Themen-Alias in einem Broker umgesetzt ist;
    • 10 ein Blockschaubild, das ein beispielhaftes Publish-Subscribe-System veranschaulicht, wobei ein Themen-Alias in einem Broker umgesetzt ist;
    • 11 ein Blockschaubild, das ein beispielhaftes Publish-Subscribe-System veranschaulicht, wobei ein Themen-Alias in einem Proxy umgesetzt ist;
    • 12 ein Blockschaubild, das ein beispielhaftes Publish-Subscribe-System veranschaulicht, wobei ein Themen-Alias in einem Proxy umgesetzt ist;
    • 13 ein Blockschaubild, das ein beispielhaftes Publish-Subscribe-System veranschaulicht, wobei ein Themen-Alias in einem Proxy umgesetzt ist;
    • 14 einen schematischen Ablaufplan eines beispielhaften Verfahrens für eine kryptographische Schlüsselrotation;
    • 15 ein Blockschaubild, das eine Umsetzung eines Neuverschlüsselns unter Verwendung eines Broker-Neuverschlüsselungsdiensts veranschaulicht;
    • 16 einen schematischen Ablaufplan eines beispielhaften Verfahrens für eine kryptographische Schlüsselrotation;
    • 17 ein Blockschaubild, das eine Cloud-Computerumgebung veranschaulicht; und
    • 18 ein Blockschaltbild, das einen Satz von Funktionsabstraktionsmodellschichten veranschaulicht, die von der Cloud-Computing-Umgebung bereitgestellt werden.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Die Beschreibungen der diversen Ausführungsformen der vorliegenden Offenbarung dienen lediglich der Veranschaulichung und sollen weder erschöpfend noch auf die offenbarten Ausführungsformen beschränkt sein. Viele Modifikationen und Abwandlungen werden für den Fachmann offensichtlich sein, ohne sich von dem Umfang und dem Geist der beschriebenen Ausführungsformen zu entfernen. Die hierin verwendete Terminologie wurde gewählt, um die Grundgedanken der Ausführungsformen, die praktische Anwendung oder die technische Verbesserung gegenüber auf dem Markt befindlichen Technologien bestmöglich zu erläutern bzw. dem Fachmann zu ermöglichen, die hierin offenbarten Ausführungsformen zu verstehen.
  • Die Nachrichten aus der Mehrzahl von Nachrichten, die von dem Publish-Subscribe-System gespeichert werden, können geordnete Nachrichten sein, z.B. zeitlich geordnete Nachrichten. Der Wechsel von dem Verwenden der verschlüsselten ersten Nachricht und des zugewiesenen ersten kryptographischen Schlüssels zur Weiterleitung auf das Verwenden der neu verschlüsselten ersten Nachricht und des zugewiesenen Ersatzschlüssels kann automatisch durchgeführt werden, so dass der Dienst für Broker und/oder Clients nicht unterbrochen wird und keine Neukonfiguration der Broker und/oder Clients erfordert.
  • Ausführungsformen können während der Schlüsselrotation eine zeitliche Kontinuität eines von dem Publish-Subscribe-System bereitgestellten verschlüsselten Datenstroms umsetzen. Ausführungsformen können Producern (Erstellern)/Consumern (Nutzern) von Daten, also Publishern/Subscribern, das unterbrechungsfreie Schreiben/Lesen des verschlüsselten Datenstroms während der Schlüsselrotation, also während die Verschlüsselungs-/Entschlüsselungsschlüssel aktualisiert werden, ermöglichen. Somit kann eine Schlüsselrotation umgesetzt werden, ohne dass der Dienst in einem verteilten Daten-Streaming-System in Form eines Publish-Subscribe-Systems unterbrochen wird.
  • Ein Publish-Subscribe-System ist ein System, das ein Publish-Subscribe-Messaging-Muster umsetzt, wobei als Publisher oder Producer bezeichnete Sender von Nachrichten die Nachrichten nicht direkt an als Subscriber oder Consumer bezeichnete Empfänger senden, sondern zu veröffentlichende Nachrichten in als Themen bezeichnete Kategorien kategorisieren. Die Subscriber abonnieren eines oder mehrere der Themen und empfangen nur Nachrichten zu Themen, die sie abonniert haben. Somit kann es beispielsweise sein, dass die Publisher nicht wissen, ob bzw. welche Subscriber existieren, während es beispielsweise gleichzeitig der Fall sein kann, dass die Subscriber nicht wissen, ob bzw. welche Publisher existieren. Sowohl Publisher als auch Subscriber können beim Senden von Anforderungen an ein Publish-Subscribe-System nur auf die Themen referenzieren. Das Publish-Subscribe-Messaging-Muster kann die vorteilhafte Wirkung haben, dass es die Möglichkeit der Netzwerkskalierbarkeit und dynamischer Netzwerktopologien schafft.
  • In einem Publish-Subscribe-System empfängt ein Subscriber möglicherweise nur eine Teilmenge der Gesamtmenge von veröffentlichten Nachrichten. Der Vorgang des Auswählens veröffentlichter Nachrichten zum Empfangen und Verarbeiten wird als Filtern bezeichnet. Das Filtern kann z.B. themenorientiert erfolgen. Bei einem themenorientierten Publish-Subscribe-System werden Nachrichten zu Themen veröffentlicht. Ein Subscriber in einem themenorientierten System kann alle Nachrichten empfangen, die zu von ihm abonnierten Themen veröffentlicht werden. Beispielsweise kann ein Publisher für das Definieren der Themen verantwortlich sein, die Subscriber abonnieren können.
  • In einem Publish-Subscribe-System können Publisher z.B. Nachrichten an einen zwischengelagerten Nachrichten-Broker senden, während Subscriber bei dem Broker Abonnements registrieren, wobei der Broker das Filtern durchführt. Der Broker kann eine Store-and-Forward-Funktion durchführen, um von Publishern empfangene Nachrichten an Subscriber weiterzuleiten. Ferner kann der Broker beispielsweise Nachrichten in einer Warteschlange vor dem Weiterleiten priorisieren. Subscriber können sich für spezifische Nachrichten registrieren, z.B. zur Erstellungszeit, Initialisierungszeit oder Laufzeit. Bei GUI-Systemen (GUI, Graphical User Interface; graphische Benutzerschnittstelle) können Subscriber zur Verarbeitung von Benutzerbefehlen wie etwa ein Klicken auf eine Schaltfläche codiert werden, was einer Erstellungszeitregistrierung entsprechen kann. Beispielsweise können XML-Konfigurationsdateien (XML, Extensible Markup Language) zum Registrieren von Subscribern verwendet werden. Diese Konfigurationsdateien können zur Initialisierungszeit gelesen werden. Beispielsweise können Subscriber zur Laufzeit hinzugefügt oder entfernt werden. Beispielsweise kann solch eine Registrierung zur Laufzeit z.B. in Datenbankauslösern, Adresslisten oder RSS (Really Simple Syndication oder Rich Site Summary) verwendet werden.
  • Ein Vorteil von Publish-Subscribe-Systemen kann darin liegen, dass die Verbindung zwischen Publishern und Subscribern lose ist. Es kann sein, dass Publisher nicht einmal von der Existenz von Subscribern wissen. Beispielsweise wenn der Fokus auf dem Thema liegt, kann es Publishern und Subscribern ermöglicht werden, systemtopologisch unbewusst zu bleiben. Publisher und Subscriber können unabhängig voneinander arbeiten. Ein Publish-Subscribe-System kann die Publisher und Subscriber nicht nur örtlich entkoppeln, sondern es kann die Publisher und Subscriber auch zeitlich entkoppeln. Ein Subscriber kann ein Thema zum ersten Mal abonnieren und Nachrichten zu dem Thema empfangen, die bereits zuvor veröffentlicht wurden.
  • Ein weiterer Vorteil von Publish-Subscribe-Systemen kann in ihrer Skalierbarkeit liegen. Die Skalierbarkeit kann beispielsweise durch einen parallelen Betrieb, das Zwischenspeichern von Nachrichten, eine Weiterleitung auf Baum- oder Netzwerkgrundlage usw. verbessert werden. Ein Publish-Subscribe-System kann beispielsweise internetweites verteiltes Messaging über Websyndikationsprotokolle bereitstellen.
  • Server-Knoten, die üblicherweise als Nachrichten-Broker bezeichnet werden, dienen als Zwischen-Hubs, die empfangene Daten in einen Speicher schreiben und diese Daten nach einer Anforderung an Clients weiterleiten. Wie bei Publish-Suscribe-Systemen in der Regel der Fall, werden Daten in als Themen bezeichnete Kategorien strukturiert. Nachrichten-Broker unterstützen das sogenannte Streaming-Paradigma, bei dem Daten zu einem beliebigen Zeitpunkt und zu einem beliebigen Thema eingehen und Datenflüsse für eine begrenzte oder unbegrenzte Dauer unterbrechungsfrei sind. Clients eines Brokers abonnieren ein oder mehrere Themen und empfangen Daten als Strom.
  • Die Daten eines Themas können in einer oder mehreren Themenpartitionen gespeichert werden. Jede Themenpartition kann eine geordnete Nachrichtensequenz sein. Die Gesamtheit der Daten in dem Thema ist die Vereinigung dieser Partitionen. Ein Publish-Subscribe-System kann zwar eine strikte Ordnung innerhalb einer Partition unterstützen, allerdings nicht zwischen Partitionen. Partitionen können repliziert werden, um eine Fehlertoleranz zu unterstützen. Ein Publish-Subscribe-System kann die folgenden Informationen zu einem Thema aufbewahren: einen Satz aktiver Partitionen des Themas und des Haupt-Brokers, also des Leader, der dafür zuständig ist; einen Offset (Startposition) innerhalb der Partition der ältesten und der neuesten Nachricht; einen Zuletzt-gelesen-Offset für jede Partition für jede Gruppe von Consumern; und einen Broker, der für die Replikate einer Partition zuständig ist.
  • Ein Consumer kann sich mit einem Bootstrap-Broker verbinden, erhält die Standorte der Partitionen des Themas, das er konsumieren möchte, und den Offset der letzten Nachricht, die durch die Consumer-Gruppe, zu der sie gehört, aus dieser Partition gelesen wurde. Danach fordert er den nächsten Offset von jeder dieser Partitionen an. Wenn ein Broker nicht mehr verfügbar ist, kann sich der Consumer selbst organisieren und Leader für all die Partitionen benennen, die nicht mehr verfügbar sind. Der Follower (Nachfolger), der als Leader ausgewählt wurde, sollte für diese Partition ein synchronisiertes Replikat (ISR, In-Sync Replica) haben. Follower erhalten Nachrichten von dem Leader, in dem sie von dem Leader konsumieren, genau wie ein normaler Consumer.
  • Die Clients können ihre Verbindungen danach auf diese neuen Leader wechseln. Producer tun etwas Ähnliches, allerdings müssen sie sich nicht um den neuesten Offset kümmern. Zusammenfassend lässt sich sagen, dass ein Publish-Subscribe-System so ausgestaltet sein kann, dass es mithilfe des Konzepts der verteilten Partitionen auf sehr hohe Lasten skaliert werden kann und dass es mithilfe des Konzepts der replizierten Partitionen mit Fehlern nahtlos umgehen kann.
  • Aufgrund von Verordnungen und bewährten Methoden für Sicherheit kann eine Schlüsselrotation erforderlich sein, die üblicherweise das Neuverschlüsseln von Daten mit einem neuen Schlüssel umfasst, entweder periodisch als risikoreduzierende Maßnahme oder als Antwort auf die Bereitstellung eines aktiven Verschlüsselungsschlüssels. Die Schlüsselrotation stellt für Publish-Subscribe-Messaging-Systeme ein Problem dar, da sie ständig „live“ sind. Grundsätzlich muss das System für eine Rotation eines Schlüssels während des Neuverschlüsselns ausgesetzt werden und darf erst nach Abschluss des Neuverschlüsselungsprozesses fortgesetzt werden. Messaging-Systeme müssen jedoch ständig verfügbar sein, um Daten unterbrechungsfrei zu empfangen und zu verarbeiten. Diese Offenbarung beschreibt verschiedene Verfahren, mit deren Hilfe es möglich wird, dass ein Messaging-System die Schlüsselrotation ohne Dienstunterbrechung durchführt.
  • Gemäß Ausführungsformen kann das Publish-Subscribe-System einen Nachrichten-Broker aufweisen, der Themennachrichten in verschlüsselter Form speichert. Dies kann erzielt werden, indem eingehende Daten, also Nachrichten, verschlüsselt und eben diese Daten bei Beantwortung von Client-Anforderungen entschlüsselt werden.
  • Das Verschlüsseln und Entschlüsseln von Nachrichten kann von einem Verschlüsselungsmodul des Brokers oder eines Proxys des Publish-Subscribe-Systems durchgeführt werden. Das Verschlüsselungsmodul hat auf Themenverschlüsselungsschlüssel Zugriff und kann so konfiguriert sein, dass es Benachrichtigung zu Schlüsselrotationsereignissen senden und/oder empfangen kann.
  • Beispielsweise kann eine Schlüsselrotation mit einer Neuverschlüsselung in einem Publish-Subscribe-System unter Verwendung eines Themen-Alias aktiviert werden. Ein Themen-Alias verteilt Anforderungen zu einem anderen Thema und von diesem. Für einen Client erscheint ein Themen-Alias wie ein normales Thema und verhält er sich auch wie dieses. Der Schlüsselrotationsprozess kann den Alias nutzen, um eine neue, neu verschlüsselte Kopie eines Themenprotokolls des Themas zu erstellen, zu dem der Themen-Alias derzeit Anforderungen verteilt. Die neue, neu verschlüsselte Kopie eines Themenprotokolls wird als neues Thema im Hintergrund erstellt. Nachdem dieser Neuverschlüsselungsprozess abgeschlossen ist, wird der Themen-Alias zu dem neuen, neu verschlüsselten Thema umgeleitet. Die bisherigen Themenprotokolle können sicher gelöscht oder archiviert werden. Für Clients des Alia-Themas ändert sich nichts: Der Themenname, also der Alias, bleibt gleich, Verbindungen bleiben aufrecht, und der Dienst wird unterbrechungsfrei fortgesetzt. Beispielsweise kann eine Schlüsselrotation mit einer Neuverschlüsselung in einem Publish-Subscribe-System als interner Broker-Dienst umgesetzt sein. Ein interner Themenverwaltungsdienst kann z.B. so erweitert werden, dass er einen neuen Neuverschlüsselungsdienst enthält. Ein solcher Neuverschlüsselungsdienst kann gespeicherte Nachrichten progressiv durch neu verschlüsselte Versionen der jeweiligen Nachrichten im Hintergrund ersetzen. Bei großen Themenprotokollen kann der Neuverschlüsselungsprozess mittels Parallelisierung optimiert werden. Ein Haupt-Broker des Publish-Subscribe-Systems kann andere Broker in dem Cluster koordinieren, so dass diese die in Zusammenhang mit der Neuverschlüsselung anfallende Arbeitslast gemeinsam tragen, wodurch die Rechenvorgänge parallelisiert werden.
  • Gemäß einer Ausführungsform können die zum Verschlüsseln und Entschlüsseln von Nachrichten innerhalb des Publish-Subscribe-Systems verwendeten kryptographischen Schlüssel symmetrische kryptographische Schlüssel sein.
  • Gemäß einer Ausführungsform weist der Broker das Verschlüsselungsmodul des Publish-Subscribe-Systems auf. Ausführungsformen können die vorteilhafte Wirkung haben, dass das Neuverschlüsseln der Schlüsselrotation von dem Broker durchgeführt werden kann.
  • Gemäß einer Ausführungsform weist ein Proxy des Publish-Subscribe-Systems das Verschlüsselungsmodul auf, über das der Broker des Publish-Subscribe-Systems mit Clients des Publish-Subscribe-Systems Daten austauscht. Ausführungsformen können die vorteilhafte Wirkung haben, dass das Neuverschlüsseln der Schlüsselrotation von dem Proxy durchgeführt werden kann. Somit muss gegebenenfalls nur der Proxy zur Durchführung des Neuverschlüsselns angepasst werden, während gegebenenfalls keine Broker des Publish-Subscribe-Systems zur Durchführung des Neuverschlüsselns angepasst werden müssen.
  • Sowohl für den Nachrichtenentschlüsselungs- als auch den Neuverschlüsselungsprozess ist gegebenenfalls ein Mittel erforderlich, mit dem in Erfahrung gebracht wird, welcher Schlüssel eine bestimmte Nachricht verschlüsselt hat. Ein Durchführungsmittel kann einen Index aufweisen, der Nachrichten-IDs Schlüssel oder Schlüssel-IDs zuordnet. Eine alternative Strategie kann das Speichern der Verschlüsselungsschlüssel in verschlüsselter Form gemeinsam mit den verschlüsselten Nachrichten aufweisen. Die Verschlüsselungsschlüssel können mithilfe einer als Envelope-Verschlüsselung bekannten Technik mit einem verschiedenen Schlüssel verschlüsselt oder „umhüllt“ („wrapped“) werden. Während des Entschlüsselns kann das Verschlüsselungsmodul das Aufheben des Wrapping eines Verschlüsselungsschlüssels anfordern und den Verschlüsselungsschlüssel mit aufgehobenem Wrapping zum Entschlüsseln einer Nachricht verwenden. Da der Verschlüsselungsschlüssel immer mit der Nachricht gespeichert wird, müssen ggf. keine Indizes verwaltet werden, was die Umsetzung um einiges einfacher macht.
  • Eine Ausführungsform kann unterstützend einen Schlüsselverwaltungsdienst (KMS, Key Management Service) verwenden, um Operationen zu wrappen und deren Wrapping aufzuheben. Es wird angenommen, dass der KMS den Wrapping-Schlüssel hohen Sicherheitsmaßnahmen entsprechend speichert, so dass dieser den KMS niemals verlässt. In einer Publish-Subscribe-Umgebung kann das Verschlüsselungsmodul den gewrappten Schlüssel in einem Nachrichtenkopf speichern, wenn eine Nachricht verschlüsselt wird, wobei der Kopf während der Nachrichtenentschlüsselung vor der Beantwortung von Client-Anforderungen entfernt wird.
  • Gemäß einer Ausführungsform werden die in dem Publish-Subscribe-System gespeicherten verschlüsselten Nachrichten mit einem Kopf versehen, der den zugewiesenen kryptographischen Schlüssel aus der Gruppe von kryptographischen Schlüsseln identifiziert. Ausführungsformen können die vorteilhafte Wirkung haben, dass die verschlüsselten Nachrichten selbst in der Lage sind, den für das Entschlüsseln der jeweiligen Nachrichten zu verwendenden kryptographischen Schlüssel zu identifizieren.
  • Gemäß einer Ausführungsform wird der Kopf, der den zugewiesenen kryptographischen Schlüssel identifiziert, während des Weiterleitens vor dem Senden der weitergeleiteten entschlüsselten Nachricht an den Subscriber entfernt. Ausführungsformen können die vorteilhafte Wirkung haben, dass das Teilen von Informationen zu der Verschlüsselung und/oder Entschlüsselung der in dem Publish-Subscribe-System gespeicherten Nachrichten mit Clients wie Subscribern verhindert wird.
  • Gemäß einer Ausführungsform können die Köpfe der verschlüsselten Nachrichten jeweils den identifizierten kryptographischen Schlüssel in mithilfe von Envelope-Verschlüsselung mit einem Envelope-Verschlüsselungsschlüssel verschlüsselter Form aufweisen. Das Entschlüsseln jeder der verschlüsselten ersten Nachrichten umfasst ferner das Entschlüsseln des zugewiesenen ersten kryptographischen Schlüssels, der in dem Kopf der jeweiligen ersten Nachricht bereitgestellt ist, mithilfe des Envelope-Verschlüsselungsschlüssels. Das Neuverschlüsseln jeder der entschlüsselten ersten Nachrichten umfasst ferner das Verschlüsseln des zum Neuverschlüsseln der jeweiligen neu verschlüsselten ersten Nachricht verwendeten zugewiesenen Ersatzschlüssel mithilfe des Envelope-Verschlüsselungsschlüssels und das Ersetzen des verschlüsselten ersten kryptographischen Schlüssels in dem Kopf der jeweiligen neu verschlüsselten ersten Nachricht durch den verschlüsselten Ersatzschlüssel.
  • Ausführungsformen können die vorteilhafte Wirkung haben, dass die verschlüsselten Nachrichten selbst in der Lage sind, den für das Entschlüsseln der jeweiligen Nachrichten zu verwendenden kryptographischen Schlüssel bereitzustellen.
  • Gemäß einer Ausführungsform weist das Publish-Subscribe-System einen Index auf, der den zugewiesenen kryptographischen Schlüssel aus der Gruppe von kryptographischen Schlüsseln für jede der gespeicherten Nachrichten identifiziert. Ausführungsformen können die vorteilhafte Wirkung haben, dass der Index den für das Entschlüsseln der jeweiligen Nachricht zu verwendenden kryptographischen Schlüssel für jede der gespeicherten Nachrichten identifizieren kann. Beispielsweise kann der Index z.B. einzelne Nachrichten identifizieren, oder der Index kann z.B. Themensegmentdateien identifizieren, in denen Nachrichten gespeichert sind. Beispielsweise kann der Index Kennungen der gespeicherten Nachrichten aufweisen, denen jeweils eine Kennung des zum Entschlüsseln der jeweiligen Nachricht zu verwendenden kryptographischen Schlüssels zugewiesen ist. Beispielsweise kann der Index Kennungen der gespeicherten Nachrichten aufweisen, denen jeweils der zum Entschlüsseln der jeweiligen Nachricht zu verwendende kryptographische Schlüssel zugewiesen ist.
  • Gemäß einer Ausführungsform umfasst das Neuverschlüsseln ferner das Identifizieren des der jeweiligen ersten Nachricht zugewiesenen kryptographischen Schlüssels für jede der ersten Nachrichten unter Verwendung des Index und das Zuweisen des Ersatzschlüssels für den identifizierten ersten kryptographischen Schlüssel in dem Index zu der neu verschlüsselten ersten Nachricht. Beispielsweise kann der Index nicht nur die ursprünglichen ersten Nachrichten identifizieren, die unter Verwendung der ersten kryptographischen Schlüssel verschlüsselt wurden, sondern auch die neu verschlüsselten ersten Nachrichten, die unter Verwendung der kryptographischen Ersatzschlüssel verschlüsselt wurden. In diesem Fall können dem Index zusätzlich zu den Kennungen der ursprünglichen ersten Nachrichten Kennungen der neu verschlüsselten ersten Nachrichten hinzugefügt werden und können den Kennungen der neu verschlüsselten ersten Nachrichten Kennungen der zum Entschlüsseln von neu verschlüsselten ersten Nachrichten zu verwendenden Ersatzschlüssel zugewiesen werden. Beispielsweise können den Kennungen der neu verschlüsselten ersten Nachrichten Ersatzschlüssel zugewiesen werden, die zum Entschlüsseln von neu verschlüsselten ersten Nachrichten zu verwenden sind. Beispielsweise können die ursprünglichen ersten Nachrichten in dem Index durch die neu verschlüsselten ersten Nachrichten ersetzt werden. In diesem Fall können Kennungen der ursprünglichen ersten Nachrichten durch Kennungen der neu verschlüsselten ersten Nachrichten ersetzt werden und können die Kennungen der ersten kryptographischen Schlüssel durch Kennungen der zum Entschlüsseln von neu verschlüsselten ersten Nachrichten zu verwendenden Ersatzschlüssel ersetzt werden. Beispielsweise können die von dem Index umfassten ersten kryptographischen Schlüssel durch die Ersatzschlüssel ersetzt werden, die zum Entschlüsseln von neu verschlüsselten ersten Nachrichten zu verwenden sind.
  • Im Folgenden werden unterschiedliche Techniken zum Neuverschlüsseln von Themendaten ohne Dienstunterbrechung des Brokers bereitgestellt.
  • Eine erste Technik führt das Konzept eines Themen-Alias ein, der Anforderungen zu einem anderen Thema und von diesem verteilt. Ein Themen-Alias erscheint für einen Client wie ein normales Thema und verhält sich auch so. Ein Schlüsselrotationsprozess nutzt den Alias, um eine neue, neuverschlüsselte Kopie der Themenprotokolle im Hintergrund zu erstellen. Nachdem dieser Neuverschlüsselungsprozess abgeschlossen ist, wird der Themen-Alias zu dem neuen, neuverschlüsselten Thema umgeleitet. Die bisherigen Themenprotokolle können sicher gelöscht oder archiviert werden. Für Clients des Themas ändert sich nichts: Der Themenname (also der Alias) bleibt gleich, Verbindungen bleiben aufrecht, und der Dienst wird unterbrechungsfrei fortgesetzt.
  • Ausführungsformen können diverse vorteilhafte Wirkungen haben: Für Clients eines Themas, also Producer und Consumer, kann sich das Thema genau wie ein herkömmliches Thema verhalten. Es kann ein Label bleiben, zu dem Anforderungen geleitet werden können. Clients müssen über Themen-Aliases oder Änderungen jeglicher Art nicht informiert sein. Clients nehmen den Neuverschlüsselungsprozess gegebenenfalls nicht wahr. Neu verschlüsselte Daten können alle Metadaten wie etwa Zeitstempel, Kopfzeilen usw. beibehalten. Ein unterbrechungsfreier Publish-Subscribe-Dienst kann für die Clients bereitgestellt werden. Eine Technik, die einen in einem Proxy umgesetzten Alias aufweist, kann eine Neuverschlüsselung umsetzen, ohne dabei den Broker zu verändern.
  • Gemäß einer Ausführungsform wird jede der gespeicherten Nachrichten als Element des Themas gespeichert, dem die jeweilige Nachricht zugewiesen ist. Das Verfahren umfasst ferner das Bereitstellen eines ersten Themen-Alias, der auf das allgemeine erste Thema aus dem ersten Satz von Nachrichten zeigt. Der eine oder mehrere Subscriber des allgemeinen ersten Themas abonnieren den ersten Themen-Alias. Ein weiteres allgemeines zweites Thema wird zu der Gruppe von Themen hinzugefügt, und die neu verschlüsselten ersten Nachrichten werden als Elemente des allgemeinen zweiten Themas gespeichert. Das Wechseln umfasst das Neuzuweisen des ersten Themen-Alias zu dem allgemeinen zweiten Thema, so dass der eine oder mehrere Subscriber, die den ersten Themen-Alias abonniert haben, zu Subscribern des allgemeinen zweiten Themas werden.
  • Ausführungsformen können die vorteilhafte Wirkung haben, dass ein Themen-Alias zur Umsetzung der Neuverschlüsselung verwendet werden kann. Das Wechseln von den verschlüsselten ersten Nachrichten auf die neuverschlüsselten ersten Nachrichten kann durch Neuzuweisen des Themen-Alias umgesetzt werden. Solange der Themen-Alias dem allgemeinen ersten Thema zugewiesen ist, wird der Broker-Dienst unter Verwendung der verschlüsselten ersten Nachrichten ununterbrochen bereitgestellt. Beim Neuzuweisen des Themen-Alias zu dem allgemeinen zweiten Thema wird der Broker-Dienst unter Verwendung der verschlüsselten ersten Nachrichten fortgesetzt.
  • Gemäß einer Ausführungsform umfasst das Wechseln ferner das Löschen des allgemeinen ersten Themas mit den ersten verschlüsselten Nachrichten. Ausführungsformen können die vorteilhafte Wirkung haben, dass Speicherplatz eingespart wird. Gemäß einer alternativen Ausführungsform umfasst das Wechseln ferner das Archivieren des allgemeinen ersten Themas mit den ersten verschlüsselten Nachrichten.
  • Gemäß einer Ausführungsform umfasst das Wechseln ferner das Löschen der ersten kryptographischen Schlüssel. Ausführungsformen können die vorteilhafte Wirkung haben, dass Speicherplatz eingespart wird. Gemäß einer alternativen Ausführungsform umfasst das Wechseln ferner das Archivieren der ersten kryptographischen Schlüssel.
  • Gemäß einer Ausführungsform werden zusätzliche erste Nachrichten, die durch das Publish-Subscribe-System von dem Publisher für den Themen-Alias empfangen werden, jeweils dem allgemeinen zweiten Thema zugewiesen, wird diesen der zweite kryptographische Schlüssel des zweiten Satzes von kryptographischen Schlüsseln zugewiesen und werden diese unter Verwendung des zugewiesenen zweiten kryptographischen Schlüssels verschlüsselt.
  • Ausführungsformen können die vorteilhafte Wirkung haben, dass zusätzliche erste Nachrichten, insbesondere während des Neuverschlüsselns empfangene erste Nachrichten, direkt mit den zweiten kryptographischen Schlüsseln verschlüsselt und dem allgemeinen zweiten Thema zugewiesen werden können.
  • Ein Themen-Alias kann zum Umsetzen der Schlüsselrotation verwendet werden. Für die Clients des Publish-Subscribe-Systems erscheint ein solcher Themen-Alias als normales Thema, tatsächlich ist er jedoch eine Zwischenstufe zu einem anderen Thema. Thema-Aliases können durch administrative Vorgänge verwaltet werden. Minimale administrative Vorgänge zum Unterstützen der Existenz und der Verwaltung von Themen-Aliases können umfassen: Erstellen eines Alias; Zuweisen eines erstellten Alias zu einem Thema; Lösen eines Alias von einem Thema; und Löschen eines gelösten Alias.
  • Ein Themen-Alias, der zwar existiert, aber nicht zugewiesen wurde, kann von einem Broker entweder als nichtexistent oder nichtaktiv behandelt werden. Dies kann eine Frage der Umsetzung sein und hat Auswirkungen auf die Fehlernachrichten, die zurückgegeben werden, wenn Clients versuchen, auf nicht zugewiesene Aliases Bezug zu nehmen. Durch eine konfigurierbare Option ist es möglich, dass ein Thema automatisch nicht mehr sichtbar ist, nachdem ihm ein Alias zugewiesen wurde. Dadurch sehen sich Clients gezwungen, ausschließlich über den Themen-Alias auf die Daten darunter zuzugreifen.
  • Themen-Aliases können durchgängig in alle Funktionen des jeweiligen Brokers eingebunden sein. Beispielsweise können ein Schemenregister enthaltende Broker die Registrierung und Aktualisierung von Aliases in dem Register unterstützen. Sicherheitsrichtlinien können gleichermaßen ebenso für Themen-Aliases wie für normale Themen gelten.
  • Ein allgemeiner Prozessablauf zum Rotieren eines Themenverschlüsselungsschlüssels unter Verwendung eines Themen-Alias kann umfassen: Erstellen eines Themas und eines Themen-Alias; und Zuweisen des Alias zu den Themen und Konfigurieren des Themen-Alias für eine Verschlüsselung. Clients können über den Alias mit dem Senden und Empfangen von Nachrichten beginnen. Die Schlüsselrotation wird eingeleitet und umfasst: Hinzufügen eines neuen Themas und Erstellen eines neuen kryptographischen Schlüssels für das neue Thema. Der von dem Themenverschlüsselungsmodul verwendete kryptographische Schlüssel kann mit dem neuen kryptographischen Schlüssel aktualisiert werden, so dass neue Nachrichten, die von dem Publish-Subscribe-System empfangen werden, mit dem neuen kryptographischen Schlüssel verschlüsselt werden. Ein Neuverschlüsselungsprozess wird gestartet, wobei die Daten, also Nachrichten, aus dem alten Thema in das neu erstellte Thema kopiert und die kopierten Daten mit dem neuen kryptographischen Schlüssel neu verschlüsselt werden. Der Neuverschlüsselungsprozess kann neue Nachrichten, die während des Neuverschlüsselns eingegangen sind, zu dem neuen Thema hinzufügen. Wenn all die von dem alten Thema umfassten Daten in das neue Thema kopiert und neu verschlüsselt wurden, wird der Neuverschlüsselungsprozess beendet, und der Alias wird dem neuen Thema neu zugewiesen. Wahlweise können die zuvor aktiven Themenprotokolle des alten Themas gelöscht werden. Der oben erwähnte Prozessablauf kann transaktionsorientiert erfolgen.
  • Ein Themen-Alias kann z.B. in einem Proxy oder direkt in einem Broker des Publish-Subscribe-Systems umgesetzt werden. Beispielsweise kann das Publish-Subscribe-System einen Proxy aufweisen. Wenn ein Proxy in dem Publish-Subscribe-System umgesetzt ist, können Clients Daten mit einem Broker des Publish-Subscribe-Systems nicht direkt austauschen, sondern über den Proxy. Gleichermaßen kann der Broker über den Proxy Daten mit den Clients austauschen. Proxys können z.B. für Aufgaben wie Einführen spezifischer Zugriffssteuereinheitsmodelle in das Publish-Subscribe-System verwendet werden.
  • Die Funktionen eines Proxy können erweitert werden, um einen Themen-Alias zu unterstützen. Bei diesem Ansatz können ein oder mehrere unabhängige Themen gemeinsam in die gleiche Alias-Gruppe verknüpft werden. Das Erstellen und Verwalten dieser Alias-Gruppe erfolgen außerhalb des Brokers. Eine Alias-Gruppe wird auf die gleiche Weise wie ein Thema spezifiziert, beispielsweise eine Anzahl von Partitionen, eine Anzahl von Replikaten usw. Themen können zu der Alias-Gruppe hinzugefügt bzw. aus dieser entfernt werden, wodurch das entsprechende Thema auf dem Cluster des Publish-Subscribe-Systems unter Verwendung der Konfiguration der Alias-Gruppe erstellt wird. Beispielsweise können alle Themen in der gleichen Gruppe die gleiche Konfiguration aufweisen. Null- oder Eins-Thema zu einem beliebigen bestimmten Zeitpunkt wird als das aktive Thema ausgewiesen.
  • Clients können mittels eines Standardprotokolls des Publish-Subscribe-Systems Daten mit dem Themen-Alias so austauschen, als wäre er ein normales Thema. Insbesondere müssen die Broker des Publish-Subscribe-Systems steuernde Programmanweisungen gegebenenfalls nicht verändert werden. Producer können Nachrichten mittels des Standardprotokolls an den Themen-Alias senden, und Consumer können das Standardprotokoll zum Empfangen von Nachrichten von diesem verwenden. Es gibt jedoch kein Themenprotokoll mit dem Alias-Namen auf einem Broker oder einem Cluster von Brokern des Publish-Subscribe-Systems. Stattdessen kann vielmehr der Proxy den von dem Themen-Alias bereitgestellten Alias-Namen über den Namen eines Themas auf dem Broker oder dem Cluster des Publish-Subscribe-Systems legen. Das jeweilige Thema, auf das sich der Themen-Alias bezieht, kann die Rolle des tatsächlichen aktiven Themas übernehmen, so dass der Themen-Alias ein tatsächliches aktives Thema zu sein scheint.
  • Da das Verschlüsselungsmodul in den Proxy integriert ist, kann der Proxy an den Themen-Alias gesendete Nachrichten verschlüsseln und von dem Themen-Alias zu empfangende Nachrichten entschlüsseln. Dazu kann der Proxy, genauer gesagt: das in den Proxy integrierte Verschlüsselungsmodul, den aktuellen kryptographischen Schlüssel verwenden. Wie zuvor erwähnt, kann der für die Verschlüsslung verwendete aktuelle kryptographische Schlüssel in gewrappter Form zu einem Nachrichtenkopf der verschlüsselten Nachrichten zur Speicherung hinzugefügt werden und kann bei Entschlüsselung zur Beantwortung von Client-Anfragen aus dem Nachrichtenkopf entfernt werden.
  • Alternativ kann der Themen-Alias in einem Broker des Publish-Subscribe-Systems umgesetzt sein. Für eine solche Umsetzung ist es gegebenenfalls notwendig, Programmanweisungen zu verändern, die die Broker des Publish-Subscribe-Systems steuern. Wenn die Programmanweisungen der Broker verändert werden können, kann der Themen-Alias in dem Broker umgesetzt werden, ohne dass ein zusätzlicher Proxy erforderlich ist. Eine Umsetzung ohne erforderlichen Proxy kann die vorteilhafte Wirkung haben, dass eine zusätzliche Komponente aus der Systemarchitektur entfernt werden kann. Ein Proxy kann jedoch immer noch aus anderen vorteilhaften Gründen verwendet werden, z.B. zum Einführen spezifischer Zugriffssteuereinheitsmodelle in das Publish-Subscribe-System. Das Konzept von Alias und Alias-Gruppen bleibt gegenüber dem oben beschriebenen unverändert, nur, dass sie gemeinsam mit dem Verschlüsselungsmodul direkt in den Broker integriert sind.
  • Mit einer zweiten Technik wird ein neuer Neuverschlüsselungsdienst umgesetzt. Ein solcher Neuverschlüsselungsdienst kann z.B. interne Broker-Themenverwaltungsdienste eines Brokers erweitern. Analog zu einer Protokollbereinigung eines Publish-Subscribe-Systems kann ein Neuverschlüsselungsdienst gespeicherte Nachrichten im Hintergrund progressiv durch neu verschlüsselte Versionen ersetzen. Bei sehr großen Themenprotokollen wird eine Optimierung bereitgestellt, wobei der Haupt-Broker andere Broker in dem Cluster so koordiniert, dass sie sich die in Zusammenhang der Neuverschlüsselung anfallende Arbeitslast gemeinsam tragen, wodurch die Rechenvorgänge parallelisiert werden. Die zweite Technik wird ebenfalls ohne Unterbrechung des Broker-Diensts durchgeführt.
  • Gemäß einer Ausführungsform umfasst das Wechseln von den mit den zugewiesenen ersten kryptographischen Schlüsseln verschlüsselten ersten Nachrichten auf die mit den zugewiesenen Ersatzschlüsseln neu verschlüsselten ersten Nachrichten das Ersetzen jeder verschlüsselten ersten Nachricht durch die entsprechende neu verschlüsselte erste Nachricht. Ausführungsformen können die vorteilhafte Wirkung haben, dass das Neuverschlüsseln unter Verwendung eines Neuverschlüsselungsdiensts, z.B. eines Brokers, eines Publish-Subscribe-Systems umgesetzt wird.
  • Gemäß einer Ausführungsform können das Neuverschlüsseln der ersten Nachrichten und das Ersetzen der verschlüsselten ersten Nachricht durch die entsprechende neuverschlüsselte erste Nachricht nacheinander erfolgen. Die verschlüsselten ersten Nachrichten können z.B. in Segmentdateien gespeichert werden, die nacheinander neu verschlüsselt werden. Beispielsweise kann das nacheinander erfolgende Neuverschlüsseln mit einer aktuellsten der Segmentdateien gestartet werden, also mit einer zeitlich jüngsten Segmentdatei.
  • Gemäß einer Ausführungsform werden die verschlüsselten ersten Nachrichten in einem Satz von Segmentdateien gespeichert. Eine der Segmentdateien des Satzes von Segmentdateien wird derzeit zum Speichern von verschlüsselten ersten Nachrichten verwendet, die restlichen Segmentdateien des Satzes von Segmentdateien, die bereits mit verschlüsselten ersten Nachrichten gefüllt wurden, hingegen werden geschlossen. Wenn die offene Segmentdatei voll ist, wird die offene Segmentdatei geschlossen, wird eine zusätzliche Segmentdatei zu dem Satz von Segmentdateien hinzugefügt und wird die zusätzliche Segmentdatei zum Speichern verschlüsselter erster Nachrichten verwendet.
  • Beim Starten des Neuverschlüsseln wird die aktuell zum Speichern von verschlüsselten ersten Nachrichten verwendete Segmentdatei geschlossen, und eine weitere zusätzliche Segmentdatei wird zu dem Satz von Segmentdateien hinzugefügt und zum Speichern zusätzlicher verschlüsselter erster Nachrichten verwendet, die das Publish-Subscribe-System von den Publishern für das allgemeine erste Thema empfangen hat.
  • Das Neuverschlüsseln der verschlüsselten ersten Nachrichten wird segmentär durchgeführt. Das segmentäre Neuverschlüsseln umfasst nacheinander das Auswählen der restlichen geschlossenen Segmentdateien, das Erstellen einer Ersatzsegmentdatei für jede der ausgewählten Segmentdateien, die die verschlüsselten ersten Nachrichten der ausgewählten Segmentdatei in verschlüsselter Form aufweist, und das Ersetzen der ausgewählten Segmentdatei durch die Ersatzsegmentdatei.
  • Ausführungsformen können die vorteilhafte Wirkung haben, dass die ersten Nachrichten geordnet nacheinander neu verschlüsselt werden.
  • Gemäß einer Ausführungsform wird das segmentäre Neuverschlüsseln mit einer aktuellsten Segmentdatei des Satzes von Segmentdateien gestartet. Bei dem aktuellsten Segment, also dem zeitlich jüngsten, kann es sich um die zuletzt geschlossene Segmentdatei handeln, die die zuletzt empfangenen Nachrichten aufweist. Die Offsets dieser neuesten Nachrichten können sich geringfügigst von einem Offset der Nachrichten unterscheiden, mit denen das Verschlüsseln unter Verwendung des zweiten kryptographischen Schlüssels innerhalb eines Speichers des Publish-Subscribe-Systems gestartet wird. Ausführungsformen können ferner die vorteilhafte Wirkung haben, dass es sich bei den neuesten Nachrichten, also den aktuellsten Nachrichten, um die Nachrichten handeln kann, die als Erstes in neuverschlüsselter Form verfügbar sein werden. Gemäß Ausführungsformen können Segmentdateien gelöscht werden, beispielsweise wenn eine maximale Aufbewahrungszeit für die von den jeweiligen Segmentdateien umfassten Nachrichten abläuft. Ausführungsformen können ferner die vorteilhafte Wirkung haben, dass die ältesten Nachrichten zuletzt neu verschlüsselt werden, wodurch verhindert wird, dass das Publish-Subscribe-System unnötig Nachrichten neu verschlüsselt, die zu einem späteren Zeitpunkt während der Schlüsselrotation gegebenenfalls gelöscht werden, da ihre maximale Aufbewahrungszeit abgelaufen ist.
  • Gemäß einer Ausführungsform wird ein Offset-Wert bestimmt, der einen Offset einer zusätzlichen ersten Nachrichten identifiziert, mit denen das Verschlüsseln unter Verwendung des zweiten kryptographischen Schlüssels innerhalb eines Speichers des Publish-Subscribe-Systems gestartet wird. Gemäß einer Ausführungsform wird der bestimmte Offset-Wert gespeichert. Ausführungsformen können die vorteilhafte Wirkung haben, dass sie dem Publish-Subscribe-System, z.B. einem Broker des Publish-Subscribe-Systems, ermöglichen, unter Verwendung des Offset-Werts zu bestimmen, wann das Neuverschlüsseln abgeschlossen ist.
  • Gemäß einer Ausführungsform werden zusätzliche erste Nachrichten, die durch das Publish-Subscribe-System von den Publishern für das allgemeine erste Thema empfangen werden, jeweils dem allgemeinen ersten Thema zugewiesen, wird diesen einer der zweiten kryptographischen Schlüssel des zweiten Satzes von kryptographischen Schlüsseln zugewiesen und werden diese unter Verwendung des zugewiesenen zweiten kryptographischen Schlüssels verschlüsselt.
  • Ausführungsformen können die vorteilhafte Wirkung haben, dass zusätzliche erste Nachrichten, insbesondere während des Neuverschlüsselns empfangene erste Nachrichten, direkt mit den zweiten kryptographischen Schlüsseln verschlüsselt und dem allgemeinen ersten Thema zugewiesen werden können.
  • Gemäß einer Ausführungsform weist das Publish-Subscribe-System eine Mehrzahl von zusätzlichen Brokern auf. Das Publish-Subscribe-System weist eine Mehrzahl von zusätzlichen Replikaten des Satzes von Segmentdateien auf. Jedes dieser zusätzlichen Replikate wird einem der zusätzlichen Broker zugewiesen. Das Neuverschlüsseln der Segmentdateien wird zwischen den Brokern des Publish-Subscribe-Systems verteilt, wobei das Neuverschlüsseln parallelisiert umgesetzt wird. Neu verschlüsselte erste Nachrichten werden an die anderen Replikate des Satzes von Segmentdateien verteilt.
  • Ausführungsformen können die vorteilhafte Wirkung haben, dass das Neuverschlüsseln parallelisiert erfolgt. Dies kann das Neuverschlüsseln effizienter durchgeführt werden.
  • Eine Schlüsselrotation mit Neuverschlüsselung kann z.B. unter Verwendung eines internen Broker-Diensts umgesetzt werden. Somit wird kein Themen-Alias eingeführt, sondern eine Themenverwaltung innerhalb des Brokers kann um zusätzliche Funktionen erweitert werden. Für einen solchen Ansatz kann die Veränderung und/oder Erweiterung bekannter Protokolle erforderlich sein, die zur Steuerung von Brokern in einem Publish-Subscribe-System verwendet werden. Solche Ausführungsformen können die vorteilhafte Wirkung haben, dass sie effizienter sind, wenn man sie z.B. mit dem Einführen eines zusätzlichen Themen-Alias und/oder dem Verwenden eines zusätzlichen Proxy vergleicht.
  • Ein Publish-Subscribe-System kann Daten wie Nachrichten speichern, die mit einer Themenpartition in einem Verzeichnis verknüpft sind, bei dessen Name es sich um den Themenpartitionsnamen handeln kann und dessen Inhalt Protokollsegmentdateien, die die tatsächlichen Nachrichten enthalten, sowie einige Dateien, die Metadaten enthalten, aufweisen kann. Die Protokollsegmentdaten können eine unveränderliche maximale Größe haben, z.B. 100 MB. Wenn ein Protokollsegment voll ist, kann eine neue Protokollsegmentdatei erstellt werden, und Nachrichten werden danach zu der neu erstellten Protokollsegmentdatei hinzugefügt. Das Publish-Subscribe-System kann Hintergrund-Threads ausführen, die Protokollsegmentdateien löschen, beispielsweise wenn die maximale Aufbewahrungszeit von Nachrichten abgelaufen ist. Bei komprimierten Themen ohne maximale Aufbewahrungszeit kann ein Komprimierungsprozess zum Komprimieren dieser Themen verwendet werden. Beispielsweise ist in dem Thema gegebenenfalls nur der letzte gültige Wert für einen bestimmten Schlüssel verfügbar, und Schlüssel können mit einem Nullwert entfernt werden.
  • Ähnlich wie ein sogenannter Protokollbereinigerdienste, z.B. die oben erwähnten Komprimierungs- und Ablaufdienste, kann ein Neuverschlüsselungsprozess als Verschlüsselungsdienst zu einem Broker eines Publish-Subscribe-Systems hinzugefügt werden, der Daten von Segmentdateien unter Verwendung von neuen Verschlüsselungsschlüsseln als Ersatzschlüssel für aktuelle Verschlüsselungsschlüssel neu verschlüsselt. Sobald der Neuverschlüsselungsprozess gestartet wurde, können alle neuen Nachrichten unter Verwendung des neuen kryptographischen Schlüssels verschlüsselt werden. Der Broker kann einen Offset-Wert, der einen Offset der gespeicherten Nachrichten anzeigt, an dem der Brock startet, unter Verwendung des neuen kryptographischen Schlüssels zum Verschlüsseln neuer Nachrichten speichern. Das tatsächliche Neuverschlüsseln von alten Nachrichten, die bereits in dem Publish-Subscribe-System gespeichert und mit dem alten kryptographischen Schlüssel verschlüsselt wurden, kann eingeleitet werden. Der Broker kann alle alten Nachrichten neu verschlüsseln, wobei er mit dem bestimmten Offset-Wert startet und fortsetzt, bis auch die ältesten Nachrichten erreicht und neu verschlüsselt wurden. Nachdem die letzte alte Nachricht neu verschlüsselt wurde, kann der Neuverschlüsselungsprozess beendet werden und kann der alte Schlüssel verworfen werden.
  • Ginge man beispielsweise von einer maximalen Protokollsegmentgröße von 100 MB aus, so lägen für eine Themenpartition von 1 TB 10.000 Protokollsegmentdateien dieser Größe vor. Das Neuverschlüsseln kann das Entschlüsseln und Verschlüsseln all dieser Segmentdateien einschließen. Gemäß Ausführungsformen kann das Neuverschlüsseln von einem einzelnen Broker allein durchgeführt werden, z.B. von dem Leader-Broker, und neu verschlüsselte Protokollsegmentdateien können an die Follower verteilt werden. Gemäß Ausführungsformen kann das Neuverschlüsseln von einer Mehrzahl von Brokern des Publish-Subscribe-Systems durchgeführt werden, wobei das Neuverschlüsseln parallelisiert umgesetzt wird. Beispielsweise können interne Protokolle, welche die Broker des Publish-Subscribe-Systems steuern, derart verändert werden, dass alle Broker mit einem Replikat einer Partition sich untereinander so koordinieren können, dass jeder von ihnen eine gewisse Teilmenge der von dem Replikat umfassten Protokollsegmentdateien neu verschlüsselt und die neu verschlüsselten Segmentdateien danach mit allen anderen Brokern mit einem Replikat der gleichen Partition austauscht.
  • Ausführungsformen können die vorteilhafte Wirkung haben, dass sich aufgrund der Parallelisierung der Neuverschlüsselung nur die Interaktionen zwischen Brokern verändern können, während die Clients des Publish-Subscribe-Systems weiterhin nichts davon wissen müssen, dass die Broker dies tun. Somit kann eine solche Parallelisierung eine geeignete Optimierung in einem Publish-Subscribe-System mit einem verwalteten Server-Angebot darstellen.
  • Ein beispielhafter Algorithmus, der zum Neuverschlüsseln eines Themas unter Verwendung von Segmentdateien verwendet wird, weist Folgendes auf:
    Figure DE112021005867T5_0001
  • Beispielsweise kann das Computerprogrammprodukt ferner Programmanweisungen aufweisen, die durch einen Prozessor eines Computersystems eines Publish-Subscribe-Systems ausführbar und so konfiguriert sind, dass sie jede der Ausführungsformen des Verfahrens zur kryptographischen Schlüsselrotation in dem hierin beschriebenen Publish-Subscribe-System umsetzen können.
  • Beispielsweise ist das Computersystem ferner so konfiguriert, dass es jede der Ausführungsformen des Verfahrens für eine kryptographische Schlüsselrotation in einem hierin beschriebenen Publish-Subscribe-System ausführen kann.
  • 1 zeigt ein beispielhaftes Computersystem 100, das für eine kryptographische Schlüsselrotation in einem Publish-Subscribe-System konfiguriert ist. Bei dem beispielhaften Computersystem 100 kann es sich z.B. um einen Broker oder ein Proxy des Publish-Subscribe-Systems sein. Es wird darauf hingewiesen, dass das hierin beschriebene Computersystem 100 ein beliebiger Typ von computergestütztem System mit einer Mehrzahl von einer Mehrzahl von Prozessorchips, einer Mehrzahl von Speicherpufferchips und einem Speicher sein kann. Das Computersystem 100 kann z.B. in Form eines digitalen Universalcomputers wie etwa ein Personal Computer, eine Workstation oder ein Minicomputer umgesetzt sein. Das Computersystem 100 kann z.B. in Form eines Servers umgesetzt sein.
  • Was die Hardware-Architektur betrifft, so enthält das Computersystem 100 bei beispielhaften Ausführungsformen, wie in 1 gezeigt, einen Prozessor 105, einen Speicher (Hauptspeicher) 110, der mit einer Speichersteuereinheit 115 verbunden ist, und eine oder mehrere Eingabe- und/oder Ausgabeeinheiten (E/A-Einheiten) (oder Peripherieeinheiten) 140, 145 (als Peripheriespeichermedium gezeigt), die über eine lokale Eingabe-/Ausgabesteuereinheit 135 zum Datenaustausch verbunden sind. Bei der Eingabe-/ Ausgabesteuereinheit 135 kann es sich um ein oder mehrere Busse oder andere kabelgebundene oder drahtlose Verbindungen handeln, wie auf dem Fachgebiet bekannt und ohne auf diese beschränkt zu sein. Um einen Datenaustausch zu ermöglichen, kann die Eingabe-/Ausgabesteuereinheit 135 zusätzliche Elemente aufweisen, die der Einfachheit wegen weggelassen wurden, wie etwa Steuereinheiten, Puffer (Zwischenspeicher), Treiber, Verstärker und Empfänger. Ferner kann die lokale Schnittstelle Adressen-, Steuerungs- und/oder Datenverbindungen enthalten, um einen entsprechenden Datenaustausch zwischen den oben genannten Komponenten zu ermöglichen.
  • Der Prozessor 105 ist eine Hardware-Einheit zum Ausführen von Software, insbesondere von jener, die in dem Speicher 110 gespeichert ist. Bei dem Prozessor 105 kann es sich um einen beliebigen individuell gestalteten oder im Handel verfügbaren Prozessor, eine Zentraleinheit (CPU, Central Processing Unit), einen Hilfsprozessor unter mehreren Prozessoren, die mit dem Computersystem 100 verknüpft sind, einen Mikroprozessor auf Halbleitergrundlage (in Form eines Mikrochips oder Chipsatzes), einen Makroprozessor oder im Allgemeinen um jede beliebige Einheit zum Ausführen von Software-Anweisungen handeln.
  • Der Speicher 110 kann ein beliebiges von Modulen flüchtigen Speichers (z.B. Direktzugriffsspeicher (RAM, Random Access Memory, wie etwa DRAM, SRAM, SDRAM usw.)) und Modulen nichtflüchtigen Speichers (z.B. ROM; löschbarer programmierbarer Nur-Lese-Speicher (EPROM, Erasable Programmable Read Only Memory), elektronisch löschbarer programmierbarer Nur-Lese-Speicher (EEPROM, Electronically Erasable Programmable Read Only Memory) oder programmierbarer Nur-Lese-Speicher (PROM, Programmable Read Only Memory) oder eine beliebige Kombination daraus aufweisen. Man beachte, dass der Speicher 110 eine verteilte Architektur aufweisen kann, wobei zusätzliche Module zwar voneinander entfernt angeordnet sind, der Prozessor 105 auf diese jedoch zugreifen kann.
  • Die Software in dem Speicher 110 kann ein Programm oder mehrere separate Programme aufweisen, die jeweils eine geordnete Auflistung ausführbarer Anweisungen zum Umsetzen logischer Funktionen aufweisen, insbesondere bei Ausführungsformen dieser Offenbarung zum Einsatz kommende Funktionen. Die ausführbaren Anweisungen können ferner für eine kryptographische Schlüsselrotation einem Publish-Subscribe-System konfiguriert sein. Insbesondere können die ausführbaren Anweisungen für ein Neuverschlüsseln von Nachrichten des Publish-Subscribe-Systems unter Verwendung eines Verschlüsselungsmoduls konfiguriert sein, das von dem Computersystem 100 bereitgestellt wird, beispielsweise in Form der ausführbaren Anweisungen. Die Software im Speicher 110 kann ferner ein geeignetes Betriebssystem (OS, Operating System) 111 aufweisen. Das OS 111 steuert im Wesentlichen die Ausführung anderer Computerprogramme, wie etwa ggf. einer Software 112.
  • Wenn das Computersystem 100 ein PC, eine Workstation, eine intelligente Einheit oder dergleichen ist, kann die Software in dem Speicher 110 ferner ein Basic Input Output System (BIOS) 122 aufweisen. Das BIOS ist ein Satz essenzieller Software-Routinen, die Hardware beim Hochfahren einleiten und testen, das OS 111 starten und die Datenübertragung unter den Hardware-Einheiten unterstützt. Das BIOS ist in einem ROM gespeichert, so dass das BIOS ausgeführt werden kann, wenn das Computersystem 100 aktiviert ist.
  • Für den Betrieb des Computersystems 100 ist der Prozessor 105 so konfiguriert, dass er die in dem Speicher 110 gespeicherte Software 112 ausführen, Daten mit dem Speicher 110 gegenseitig austauschen und die Operationen des Computersystems 100 gemäß der Software im Allgemeinen steuern kann. Die hierin beschriebenen Verfahren und das OS 111 werden zur Gänze oder teilweise, für gewöhnlich jedoch teilweise, von dem Prozessor 105 gelesen, gegebenenfalls innerhalb des Prozessors 105 gepuffert und danach ausgeführt.
  • Die Software 112 kann ferner auf einem beliebigen durch einen Computer lesbaren Medium gespeichert bereitgestellt sein, wie etwa ein Speicher 120, um durch einen beliebigen zu dem System oder Verfahren zugehörigen Computer verwendet oder mit diesem verbunden zu werden. Der Speicher 120 kann einen Plattenspeicher 127 wie z.B. einen HDD-Speicher aufweisen. Die Nachrichten des Publish-Subscribe-Systems können unter Verwendung eines internen Speichers wie der Speicher 120 oder ein Peripheriespeicher wie ein Speichermedium 145 auf dem Computersystem 100 gespeichert werden. Alternativ oder außerdem können Nachrichten des Publish-Subscribe-Systems auf einem anderen Computersystem wie einem Computersystem 170 gespeichert werden, das für das Computersystem 100 beispielsweise über ein Netzwerk wie ein Netzwerk 160 zugänglich ist. Alternativ oder außerdem können für das Verschlüsseln und Entschlüsseln von Nachrichten des Publish-Subscribe-Systems verwendete kryptographische Schlüssel auf dem Computersystem 100 gespeichert werden oder für dieses zugänglich sein.
  • Beispielsweise können eine herkömmliche Tastatur 150 und eine herkömmliche Maus 155 mit der Eingabe-/Ausgabesteuereinheit 135 verbunden sein. Andere Ausgabeeinheiten wie etwa die E/A-Einheiten 10 können Eingabeeinheiten aufweisen, beispielsweise einen Drucker, einen Scanner, ein Mikrofon und dergleichen, ohne auf diese beschränkt zu sein. Schließlich können die E/O-Einheiten 140, 145 ferner Einheiten aufweisen, die sowohl Eingaben und Ausgaben austauschen, beispielsweise eine Netzwerkschnittstellenkarte (NIC, Network Interface Card) oder ein Modulator/Demodulator (zum Zugriff auf andere Dateien, Einheiten, Systeme oder ein Netzwerk), ein Hochfrequenz-(HF-) oder anderer Sendeempfänger, eine Telefonschnittstelle, eine Bridge, ein Router und dergleichen, ohne auf diese beschränkt zu sein. Die E/A-Einheiten 140, 145 können eine beliebige allgemeine kryptographische Karte oder Smart-Card sein, die auf dem Fachgebiet bekannt ist. Das Computersystem 100 kann ferner eine Anzeigesteuereinheit 125 aufweisen, die mit einer Anzeige 130 verbunden ist. Beispielsweise kann das Computersystem 100 ferner eine Netzwerkschnittstelle zur Verbindung mit einem Netzwerk 160 wie einem Intranet oder dem Internet aufweisen. Das Netzwerk kann ein Netzwerk auf IP-Grundlage zum Datenaustausch zwischen dem Computersystem 100 und einem beliebigen externen Server wie dem Computersystem 170, einem anderen Client oder dergleichen über eine Breitbandverbindung sein. Das Computersystem 170 kann z.B. ein Publish-Subscribe-System, ein Subscriber-Computer-System, ein Broker-Server, z.B. eines Clusters von Brokern, oder ein Proxy des Publish-Subscribe-Systems sein. Das Netzwerk 160 sendet und empfängt Daten, z.B. Nachrichten, zwischen dem Computersystem 100 und dem Computersystem 170. Beispielsweise kann das Netzwerk 160 ein verwaltetes IP-Netzwerk sein, das von einem Dienstanbieter betrieben wird. Das Netzwerk 160 kann drahtlos umgesetzt sein, beispielsweise unter Verwendung von Drahtlosprotokollen und -technologien wie etwa WiFi, WiMAX usw. Bei dem Netzwerk 160 kann es sich auch um ein paketvermitteltes Netzwerk wie z.B. ein lokales Netzwerk, ein Weitverkehrsnetzwerk, ein innerstädtisches Netzwerk (Metropolitan Area Network), ein Internet-Netzwerk oder eine andere ähnliche Art von Netzwerkumgebung handeln. Das Netzwerk kann ein festes Drahtlosnetzwerk, ein drahtloses lokales Netzwerk (LAN, Local Area Network), ein drahtloses Weitverkehrsnetz (WAN, Wide Area Network), ein persönliches Netzwerk (PAN, ein virtuelles privates Netzwerk (VPN, Virtual Private Network), Intranet oder ein anderes geeignetes Netzwerksystem sein und schließt Ausrüstungen zum Empfangen und Senden von Signalen ein.
  • 2 zeigt ein beispielhaftes Publish-Subscribe-System 200. Das Publish-Subscribe-System 200 weist einen oder mehrere Broker 202 auf, die so konfiguriert, dass sie Nachrichten 204 von einem oder mehreren Producern 206, also Publishern, der empfangenen Nachrichten 204 empfangen können. Die Nachrichten 204 werden Themen 210 zugewiesen. Der Broker 202 speichert die wiederbelebten Nachrichten 204 in Nachrichtenprotokollen der Themen 210. Consumer 208, also Subscriber, können ein oder mehrere der Themen 210 abonnieren. Die in den Themen 210 gespeicherten Nachrichten 204 werden durch den Broker 202 an Consumer 208 weitergeleitet, die die jeweiligen Themen 210 abonniert haben.
  • Der in dem Publish-Subscribe-System 200 enthaltene Broker 202 kann als Verschlüsselungs-Broker konfiguriert sein, der ein Verschlüsselungsmodul aufweist. Das Verschlüsselungsmodul kann in Form einer internen Komponente des Verschlüsselungs-Brokers 202 umgesetzt sein, die so konfiguriert ist, dass sie mit kryptographischen Vorgängen wie dem Verschlüsseln und Entschlüsseln von Nachrichten umgehen kann. Der Verschlüsselungs-Broker 202 kann von einem Producer 206 empfangene Nachrichten 204 verschlüsseln, wobei eine verschlüsselte Nachricht 205 erhalten wird, die in einem Nachrichtenprotokoll eines der Nachricht 204 zugewiesenen Themas 210 gespeichert wird. Der Verschlüsselungs-Broker 202 kann die in den Nachrichtenprotokollen des Themas 210 gespeicherten verschlüsselten Nachrichten 205 ferner entschlüsseln, um die ursprünglichen Nachrichten 204, also die Nachrichten in nichtverschlüsselter Form, an die Consumer 208 zurückzugeben, die die jeweiligen von dem Publish-Subscribe-System 200 bereitgestellten Themen 210 abonniert haben.
  • Bei einem solchen Publish-Subscribe-System 200 wird eine Publish-Subscribe-Architektur verwendet, die auch als Publish-Subscribe-Pattern (Publish-Subscribe-Muster) bezeichnet wird. Ein Publish-Subscribe-System 200 eines Brokers 202 kann alle empfangenen Nachrichten 204 als Protokolle in einem Dateisystem aufbewahren. Die Nachrichten 204 werden in Kategorien, sogenannten Themen 210, geschrieben und aus diesen gelesen. Das Publish-Subscribe-System 200 kann eine stark skalierbare Publish-Subscribe-Nachrichtenwarteschlange bereitstellen, die als Transaktionsprotokoll ausgestaltet ist. Beispielsweise kann eine Mehrzahl von Brokern 202, die einen Cluster bilden, bereitgestellt werden, und das Transaktionsprotokoll kann als verteiltes Transaktionsprotokoll umgesetzt werden, das auf den Cluster verteilt wird.
  • 3 zeigt ein weiteres beispielhaftes Publish-Subscribe-System 200. Das Publish-Subscribe-System 200 von 3 entspricht dem Publish-Subscribe-System 200 von 2, allerdings weist es zusätzlich einen Proxy 203 auf. Clients des Publish-Subscribe-Systems 200, also die Producer 206 und die Consumer 208, tauschen Daten mit dem Broker 202 des Publish-Subscribe-Systems 200 nicht direkt, sondern über den Proxy 203 aus. Gleichermaßen kann der Broker 202 über den Proxy 203 mit den Clients 206, 208 Daten austauschen. Die Proxys 203 können z.B. so konfiguriert sein, dass sie Maßnahmen zum Steuern des Zugriffs auf das Publish-Subscribe-System 200 umsetzen können.
  • 4 zeigt eine ausführlichere Veranschaulichung eines beispielhaften Verschlüsselungs-Massage-Brokers 202. Der Verschlüsselungs-Massage-Broker 202 weist ein Verschlüsselungsmodul 201 auf. Das Verschlüsselungsmodul 201 ist so konfiguriert, dass es von einem Producer 206 empfangene Nachrichten m unter Verwendung eines kryptographischen Schlüssels k verschlüsseln kann. Die Verschlüsselung von einer Nachrichten m durch das Verschlüsselungsmodul 201 unter Verwendung des kryptographischen Schlüssels k kann zu einem Ciphertext c = E(k,m) führen, also zu einer verschlüsselten Nachricht, die in einem Nachrichtenprotokoll eines Themas t 210 gespeichert ist. Das Verschlüsselungsmodul 201 verwendet eine Verschlüsselungsfunktion E zum Erzeugen des Ciphertexts c = E(k,m). Das Nachrichtenprotokoll des Themas 210 kann eine Mehrzahl von verschlüsselten Nachrichten 205 aufweisen, die in Segmentdateien 211 gespeichert sind. Wenn eine verschlüsselte Nachricht 205, die in einer Segmentdatei 211 des Themas t 211 gespeichert ist, an einen das Thema t 210 abonniert habenden Consumer 208 weiterzuleiten ist, wird die verschlüsselte Nachricht 205 aus dem Speicher des Brokers 202 gelesen und dem Verschlüsselungsmodul 201 in Form eines Ciphertexts c bereitgestellt. Das Verschlüsselungsmodul 201 verwendet eine Entschlüsselungsfunktion D zum Wiederherstellen der ursprünglichen nichtverschlüsselten Nachricht m = D(k,c) aus dem Ciphertext c mit dem kryptographischen Schlüssel k.
  • Beispiele können die vorteilhafte Wirkung haben, dass die Sicherheit durch Ermöglichen einer Rotation von Verschlüsselungsschlüsseln erhöht wird. Schlüsselrotationen können z.B. periodisch durchgeführt werden, z.B. als Maßnahme im Rahmen des Risikomanagements. Beispielsweise können Sicherheitsvorschriften eine periodische Schlüsselrotation erforderlich machen. Schlüsselrotationen können z.B. als Antwort auf ein Ereignis durchgeführt werden, das die Sicherheit eines in Verwendung befindlichen kryptographischen Schlüssels infrage stellt. Eine Schlüsselrotation umfasst das Verändern von Schlüsseln und kann das Neuverschlüsseln von bestehenden verschlüsselten Daten mit dem neuen Schlüssel bzw. den neuen Schlüsseln einschließen.
  • 5 veranschaulicht ein weiteres beispielhaftes Publish-Subscribe-System 200 mit einem Massage-Broker 202 und einem Proxy 203. Clients 206, 208 des Publish-Subscribe-Systems 200 können über den Proxy 203 Daten mit dem Broker 202 austauschen. Gleichermaßen kann der Broker 202 über den Proxy 203 mit den Clients 206, 208 Daten austauschen. Bei 5 weist der Proxy 203 das Verschlüsselungsmodul 201 zum Verschlüsseln und Entschlüsseln von Nachrichten auf. Somit kann der Proxy 203 ferner zum Verschlüsseln und Entschlüsseln von Nachrichten konfiguriert sein. Der Proxy 203 kann z.B. ferner so konfiguriert sein, dass er Maßnahmen zum Steuern des Zugriffs auf das Publish-Subscribe-System 200 umsetzen kann. Der Proxy kann eingehende Nachrichten m verschlüsseln, wobei Ciphertexte c = E(k,m) erhalten werden, die durch den Broker 202 zur Speicherung in einem Thema t 210 weitergeleitet werden, und der Proxy kann Ciphertexte c entschlüsseln, wobei ausgehende Nachrichten m = D(k,c) erhalten werden, die an das Thema t abonniert habende Consumer 208 weitergeleitet werden.
  • Ein Publish-Subscribe-System 200 wie das in den 2 bis 5 gezeigte kann ununterbrochen online sein, d.h., es kann ununterbrochen Nachrichten empfangen und senden. Solche Publish-Subscribe-Systeme 200 werden zunehmend verwendet, um Daten zu speichern und zu verteilen, z.B. innerhalb eines Unternehmens. Im Folgenden können Beispiele für eine Schlüsselrotation beschrieben sein, die das Ersetzen von kryptographischen Schlüsseln k ermöglichen, die von den Publish-Subscribe-Systemen 200 zum Verschlüsseln und Entschlüsseln von Nachrichten mit Ersatzschlüsseln verwendet werden. Diese Beispiele können die vorteilhafte Wirkung haben, dass sie ein effektives und effizientes Neuverschlüsseln eines großen Volumens von Daten ermöglichen, das genauso groß wie von Publish-Subscribe-Systemen 200 umfasste Datenvolumina ist. Bei einem Beispiel ist es gegebenenfalls nicht erforderlich, dass das Publish-Subscribe-System 200 offline genommen wird, um von dem Publish-Subscribe-System 200 gespeicherte Nachrichten neu zu verschlüsseln. Im Folgenden werden verschiedene Ansätze zum Neuverschlüsseln von in einem Broker 202 eines Publish-Subscribe-Systems 200 gespeicherten Themendaten, also Nachrichten eines Themas, beschrieben, ohne das Publish-Subscribe-System 200 dabei zu unterbrechen.
  • Ein Ansatz kann auf dem Erstellen eines Themen-Alias beruhen, der verwendet wird, um ein Neuverschlüsseln ohne Unterbrechung des Publish-Subscribe-Systems 200 zu ermöglichen. Ein weiterer Ansatz kann auf einer Erweiterung eines Brokers 202 durch einen Neuverschlüsselungsdienst beruhen, der verwendet wird, um ein Neuverschlüsseln ohne Unterbrechung des Publish-Subscribe-Systems 200 zu ermöglichen. Beide Ansätze können die vorteilhafte Wirkung haben, dass der Betrieb des Brokers 202 unterbrechungsfrei fortgesetzt werden kann. Clients 206, 208 des Brokers 202 nehmen somit das Neuverschlüsseln am Broker 202 gegebenenfalls nicht wahr. Für das Neuverschlüsseln kann außerdem ein Proxy 203 verwendet werden. Die Ansätze können ferner die vorteilhafte Wirkung haben, dass Nachrichten-Metadaten durch den Neuverschlüsselungsprozess beibehalten werden.
  • 6 zeigt einen schematischen Ablaufplan eines beispielhaften Verfahrens für eine kryptographische Schlüsselrotation in einem Publish-Subscribe-System wie das Publish-Subscribe-System 200 von 4 oder 5. Das Publish-Subscribe-System speichert eine Mehrzahl von Nachrichten. Jede der gespeicherten Nachrichten wird einem Thema aus einer Gruppe von einem oder mehreren Themen zugewiesen. Jeder der gespeicherten Nachrichten wird ein kryptographischer Schlüssel aus einer Gruppe von einem oder mehreren kryptographischen Schlüsseln zugewiesen, und jede davon wird mit dem zugewiesenen kryptographischen Schlüssel verschlüsselt. Das Publish-Subscribe-System stellt einen Broker-Dienst zum Weiterleiten der gespeicherten Nachrichten an einen oder mehrere Subscriber der Themen bereit, dem die weitergeleiteten Nachrichten zugewiesen sind. Das Weiterleiten umfasst das Entschlüsseln der weiterzuleitenden Nachricht unter Verwendung des zugewiesenen kryptographischen Schlüssels der jeweiligen Nachricht und das Senden der entschlüsselten Nachrichten an einen oder mehrere der Subscriber des zugewiesenen Themas.
  • Die kryptographische Schlüsselrotation umfasst ein Neuverschlüsseln jeder Nachricht aus einem ersten Satz eines oder mehrerer erster Nachrichten der gespeicherten Nachrichten. Jede der ersten Nachrichten wird einem gemeinsamen ersten Thema aus der Gruppe von Themen zugewiesen, wird einem ersten kryptographischen Schlüssel aus einem ersten Satz eines oder mehrerer erster kryptographischer Schlüssel aus der Gruppe von kryptographischen Schlüsseln zugewiesen und wird mit dem zugewiesenen ersten kryptographischen Schlüssel verschlüsselt. Das Neuverschlüsseln wird von einem Verschlüsselungsmodul des Publish-Subscribe-Systems als Hintergrundprozess ausgeführt, während das Weiterleiten erster Nachrichten von dem Broker-Dienst und das Empfangen zusätzlicher erster Nachrichten für das gemeinsame erste Thema durch diesen fortgesetzt wird.
  • In Block 300 werden ein oder mehrere kryptographische(r) Schlüssel als Ersatzschlüssel für den einen oder die mehreren ersten kryptographische(n) Schlüssel hinzugefügt, die zum Verschlüsseln der ersten Nachrichten des ersten Themas verwendet wurden. Beispielsweise kann ein einzelner erster kryptographischer Schlüssel dem ersten Thema zugewiesen werden, und alle dieser ersten Kopie zugewiesene Nachrichten können unter Verwendung des jeweiligen ersten kryptographischen Schlüssels verschlüsselt werden. In diesem Fall kann ein einzelner zweiter kryptographischer Schlüssel z.B. für das erste Thema hinzugefügt werden, um den zuvor verwendeten ersten kryptographischen Schlüssel zu ersetzen. Beispielsweise kann eine Mehrzahl von ersten kryptographischen Schlüsseln dem ersten Thema zugewiesen werden, und verschiedene dieser ersten Kopie zugewiesene Nachrichten können unter Verwendung verschiedener erster kryptographischer Schlüssel verschlüsselt werden. In diesem Fall kann eine Mehrzahl von zweiten kryptographischen Schlüsseln z.B. für das erste Thema hinzugefügt werden, die einen Ersatzschlüssel für jeden der zuvor verwendeten ersten kryptographischen Schlüssel aufweisen.
  • In Block 302 kann jede der dem ersten Thema zugewiesenen ersten Nachrichten unter Verwendung des ersten kryptographischen Schlüssels entschlüsselt werden, der den jeweiligen ersten Nachrichten zugewiesen ist. In Block 304 kann jede der entschlüsselten ersten Nachrichten unter Verwendung eines der in Block 300 hinzugefügten Ersatzschlüssel neu verschlüsselt werden. Beispielsweise werden die Ersatzschlüssel dem zuvor verwendeten ersten kryptographischen Schlüssel als Ersatzschlüssel zugewiesen. In Block 306 können die zum Neuverschlüsseln der neuverschlüsselten ersten Nachrichten verwendeten Ersatzschlüssel den jeweiligen neuverschlüsselten ersten Nachrichten zugewiesen werden. In Block 308 wechselt das Publish-Subscribe-System von der Verwendung der ersten verschlüsselten Nachrichten und des zugewiesenen ersten kryptographischen Schlüssels zur Weiterleitung auf die Verwendung der neuverschlüsselten ersten Nachrichten und der zugewiesenen Ersatzschlüssel. Darüber hinaus können die zuvor verwendeten verschlüsselten ersten Nachrichten und/oder die zuvor verwendeten ersten kryptographischen Schlüssel gelöscht werden.
  • 7 zeigt ein beispielhaftes Publish-Subscribe-System 200, das eine kryptographische Schlüsselrotation unter Verwendung eines Themen-Alias ta 212 umsetzt. Für die Clients 206, 208 des Publish-Subscribe-Systems 200 erscheint ein solcher Themen-Alias ta 212 als normales Thema, tatsächlich ist er jedoch eine Zwischenstufe zu einem anderen Thema t1 210. Nachrichten können von dem Producer 206 empfangen werden, der dem Themen-Alias ta 212 zugewiesen ist. Der Themen-Alias ta 212 kann auf das Thema t1 210 zeigen, so dass die empfangene Nachricht ferner dem Thema t1 210 zugewiesen und in einer Segmentdatei 211 eines Nachrichtenprotokolls des Themas t1 210 gespeichert wird. Zu diesem Zweck kann eine empfangene Nachricht m unter Verwendung eines kryptographischen Schlüssels k1, z.B. eines kryptographischen Schlüssels k1, der dem Thema t1 210 zugewiesen ist, und unter Erzeugen eines Ciphertexts c1 = E(k1,m) verschlüsselt werden. Dieser Ciphertext c1 kann als verschlüsselte Nachricht 205 in dem Nachrichtenprotokoll des Themas t1 210 gespeichert werden. Ein Consumer 208 kann den Themen-Alias ta 212 abonnieren, so dass in dem Nachrichtenprotokoll des Themas t1 210 gespeicherte verschlüsselte Nachrichten 205 an den Consumer 208 weitergeleitet werden. Zu diesem Zweck kann eine weiterzuleitende verschlüsselte Nachricht 205 in Form eines Ciphertexts c1 aus dem Nachrichtenprotokoll des Themas t1 210 gelesen und entschlüsselt werden, um die ursprüngliche nicht verschlüsselte Nachricht m = D(k1,c1) unter Verwendung des kryptographischen Schlüssels k1 aus dem Ciphertext c1 wiederherzustellen. Die ursprüngliche nichtverschlüsselte Nachricht m kann danach von dem Broker 202 an den Consumer 208 gesendet werden. Zum Verschlüsseln und Entschlüsseln kann der Broker 202 ein Verschlüsselungsmodul verwenden, wie in 4 gezeigt.
  • Themen-Aliases wie der Themen-Alias ta 212 können in dem Broker 202 oder in einem zusätzlichen Proxy umgesetzt sein, wie in 11 gezeigt. Ein Themen-Alias wie der Themen-Alias ta 212 kann alle Funktionen des Brokers 202 aufweisen wie z.B. Richtlinien, Register usw. Solche Themen-Aliases können durch einen Administrator des Brokers 202 oder einen Proxy erstellt und/oder gelöscht werden. Des Weiteren können Administratoraktionen das Anheften von Themen-Aliases wie der Themen-Alias ta 212 an ein spezifisches Thema wie das Thema t1 210 bzw. das Lösen dieses von diesem umfassen. Ein an ein spezifisches Thema angehefteter Themen-Alias, also ein diesem zugewiesener, ist ein Zwischenzeiger, der auf das jeweilige spezifische Thema zeigt. Wenn ein Thema-Alias an ein spezifisches Thema angeheftet ist, kann das jeweilige spezifische Thema wahlweise vor den Clients des Publish-Subscribe-Systems 200 verborgen werden. Clients wie der Producer 206 und der Consumer 208 können daher Daten nur mit einem logischen Thema mit zugeordnetem Alias austauschen, also mit Themen-Aliases wie der Themen-Alias ta 212.
  • Beispielsweise kann das Publish-Subscribe-System ggf. nur Themen-Aliases aufweisen, die Themen zugewiesen sind. Beispielsweise kann das Publish-Subscribe-System auch einen oder mehrere nichtzugewiesene Themen-Aliases aufweisen, die keinem Thema zugewiesen sind. Solche nicht zugewiesenen Themen-Aliases können für Clients sichtbar sind, jedoch eine Fehlermeldung zurückgeben, wenn sie zum Senden oder Empfangen von Nachrichten verwendet werden. Alternativ können nichtzugewiesene Themen-Aliases gegenüber den Clients 206, 208 verborgen sein, bis sie einem Thema zugewiesen sind.
  • Ein Neuverschlüsseln der in dem Nachrichtenprotokoll des Themas t1 210 gespeicherten verschlüsselten Nachricht 205 kann von dem Broker 202 unter Verwendung eines Neuverschlüsselungsprozesses 214 durchgeführt werden, der im Hintergrund ausgeführt wird, z.B. als Hintergrund-Thread. Der Neuverschlüsselungsprozess 214 kann z.B. von einem Verschlüsselungsmodul eines Brokers 202 ausgeführt werden.
  • 8 zeigt das Publish-Subscribe-System 200, das ein Neuverschlüsseln unter Verwendung des Neuverschlüsselungsprozesses 214 ausführt. Die Ausgangssituation für das Neuverschlüsseln kann die in 7 gezeigte Anordnung sein. Das Verwenden eines Themen-Alias wie eines Themen-Alias ta 212 für das Neuverschlüsseln kann das Bereitstellen eines Themas wie ein Thema t1 210 umfassen. Das jeweilige Thema t1 210 kann z.B. erstellt werden. Ferner kann der Themen-Alias ta 212 bereitgestellt werden. Der Themen-Alias ta 212 kann z.B. erstellt werden. Der bereitgestellte Themen-Alias ta 212 kann dem bereitgestellten Thema t1 210 zuweisend sein. Der Themen-Alias ta 212 kann so konfiguriert sein, dass er von einem Producer 206 zur Speicherung in dem Nachrichtenprotokoll eines Themas t1 210 empfangene Nachrichten m verschlüsseln kann, z.B. unter Verwendung eines Verschlüsselungsmoduls des Brokers 202. Der Producer 206 kann die Nachrichten m an den Themen-Alias ta 212 senden. Ferner kann der Themen-Alias ta 212 so konfiguriert sein, dass er in dem Nachrichtenprotokoll eines Themas t1 210 gespeicherte verschlüsselte Nachrichten entschlüsseln kann, z.B. unter Verwendung eines Verschlüsselungsmoduls des Brokers 202, um die ursprünglichen Nachrichten m wiederherzustellen, die an einen den Themen-Alias ta 212 abonniert habenden Consumer 208 zu senden sind. Die jeweiligen Nachrichten m können unter Verwendung des dem Thema t1 210 zugewiesenen kryptographischen Schlüssels k1 verschlüsselnd und entschlüsselnd sein. Clients 206, 208 des Publish-Subscribe-Systems 200 können damit beginnen, Nachrichten über den Themen-Alias ta 212 zu senden und zu empfangen.
  • Um eine Schlüsselrotation durchzuführen, also um den bestehenden kryptographischen Schlüssel k1 zu ersetzen, der dem bestehenden Thema t1 210 zugewiesen ist und zum Verschlüsseln der in dem Nachrichtenprotokoll des Themas t1 210 gespeicherten verschlüsselten Nachrichten 205 verwendet wurde, kann eine Neuverschlüsselung durchgeführt werden. Beispielsweise kann ein Neuverschlüsselungsarbeitsablauf ausgeführt werden, der das Hinzufügen eines zusätzlichen Themas t2 220 umfasst. Die Schlüsselrotation kann beispielsweise durch Erzeugen eines zusätzlichen kryptographischen Schlüssels k2 für das zusätzliche Thema t2 220 eingeleitet werden. Das Verschlüsselungsmodul kann aktualisiert werden, um neue Nachrichten, also von dem Broker 202 oder einem Proxy empfangene Nachrichten, unter Verwendung des zusätzlichen Schlüssels k2 zu verschlüsseln. Ein Neuverschlüsselungsprozess der in dem Nachrichtenprotokoll des bestehenden Themas t1 210 gespeicherten Nachrichten 205 kann gestartet werden, der das Kopieren der Daten aus dem bestehenden Thema t1 210 in das zusätzliche Thema t2 220 umfasst. Das Kopieren kann das Neuverschlüsseln der mit dem zusätzlichen Schlüssel k2 kopierten Nachrichten 205 umfassen. Zum Neuverschlüsseln können die jeweiligen in verschlüsselter Form von dem bestehenden Thema umfassten Daten unter Verwendung des bestehenden kryptographischen Schlüssels k1 des bestehenden Themas t1 210 entschlüsselt und unter Verwendung des zusätzlichen kryptographischen Schlüssels k2 des zusätzlichen Themas t2 220 verschlüsselt werden. Das Neuverschlüsseln kann z.B. das Wiederherstellen der ursprünglichen Nachrichten m = D(k1, c1) unter Verwendung des in dem Thema t1 210 gespeicherten Ciphertexts c1 und des bestehenden kryptographischen Schlüssels k1 umfassen. Die wiederhergestellte ursprüngliche Nachricht kann unter Verwendung des zusätzlichen Schlüssels k2 und unter Speicherung des resultierenden Ciphertexts c2 = E(k2,m) als verschlüsselte Nachricht 225 in einer Segmentdatei 221 in einem Nachrichtenprotokoll des zusätzlichen Themas t2 220 neu verschlüsselt werden.
  • Der Neuverschlüsselungsprozess 214 kann beliebige neue Nachrichten m, die während des Neuverschlüsselns eingegangen sind, an das zusätzliche Thema t2 220 anhängen. Diese neuen Nachrichten m können unter Verwendung des zusätzlichen kryptographischen Schlüssels k2 verschlüsselt werden, wobei ein Ciphertext c2 = E(k2,m) erzeugt wird, der in dem Nachrichtenprotokoll des zusätzlichen Themas t2 220 gespeichert wird. Wenn das Kopieren abgeschlossen ist, kann der Themen-Alias ta 212 dem zusätzlichen Thema t2 220 neu zugewiesen werden. Das zusätzliche Thema t2 220 kann die aus dem bestehenden Thema t1 210 kopierten neuverschlüsselten Daten sowie die mit dem zusätzlichen kryptographischen Schlüssel k2 verschlüsselten neuen Nachrichten aufweisen. Somit kann das bestehende Thema t1 210 inaktiv werden, während das zusätzliche Thema t2 220 aktiviert wird. Wahlweise kann das zuvor aktive Themenprotokoll, also das Nachrichtenprotokoll des bestehenden Themas t1 210, gelöscht werden, wie in 9 gezeigt, wodurch sich das in 10 gezeigte Szenario ergibt. Für die Clients 206, 208 des Publish-Subscribe-Systems 200 kann das Erstellen des zusätzlichen Themas t2 220 und das Wechseln von dem bestehenden Thema t1 210 auf das zusätzliche Thema t2 220 unsichtbar sein. Die Clients 206, 208 können einen Datenaustausch mit dem Themen-Alias ta 212 fortsetzen. Von dem Producer 206 empfangene Nachrichten m können unter Verwendung des zusätzlichen kryptographischen Schlüssels k2 verschlüsselt werden, um Ciphertexte c2 = E(k2,m) zu erzeugen, die als verschlüsselte Nachrichten 225 in dem Nachrichtenprotokoll des zusätzlichen Themas t2 220 gespeichert werden. Ferner können in dem Nachrichtenprotokoll des zusätzlichen Themas t2 220 gespeicherte verschlüsselte Nachrichten 225 unter Verwendung des zusätzlichen Schlüssels k2 entschlüsselt werden, um die ursprüngliche Nachricht m = D(k2,c2) wiederherzustellen und an den Themen-Alias ta 212 abonniert habende Consumer 208 zu senden. Während der gesamten Ausführung des Neuverschlüsselungsprozesses 214 kann das Publish-Subscribe-System 200 seinen Dienst fortsetzen, also Nachrichten m von Producern 206 empfangen und die empfangenen Nachrichten m an Consumer 208 weiterleiten.
  • 11, 12 und 13 zeigen alternative Ausführungsformen der 7, 8 bzw. 10, wobei der Themen-Alias ta 212 und der Neuverschlüsselungsprozess 214 in einem Proxy 203 und nicht in einem Broker 202 umgesetzt sind.
  • 14 zeigt einen schematischen Ablaufplan eines beispielhaften Verfahrens für eine kryptographische Schlüsselrotation in einem Publish-Subscribe-System wie dem Publish-Subscribe-System 200 von 7 bis 13. Das Verfahren von 14 entspricht dem Verfahren von 6 und ist so ausgelegt, dass ein Themen-Alias für die kryptographische Schlüsselrotation verwendet wird. Der Themen-Alias zeigt auf das erste Thema aus den ersten Nachrichten. Subscriber des allgemeinen ersten Themas abonnieren den ersten Themen-Alias. Ferner können Publisher, d.h. Producer, die Mai-Nachrichten senden, die Nachrichten dem ersten Themen-Alias zuweisen. Dem ersten Themen-Alias zugewiesene Nachrichten können dem allgemeinen ersten Thema automatisch neu zugewiesen werden.
  • In Block 320 kann ein zusätzliches allgemeines zweites Thema hinzugefügt werden. Blöcke 322 bis 328 können Blöcken 300 bis 306 von 6 entsprechen. In Block 330 werden die neu verschlüsselten Nachrichten in einem Nachrichtenprotokoll des zusätzlichen allgemeinen zweiten Themas gespeichert, das in Block 320 hinzugefügt wurde. In Block 332 kann das Publish-Subscribe-System von der Verwendung der ersten verschlüsselten Nachrichten und der zugewiesenen ersten kryptographischen Schlüssel zur Weiterleitung auf die Verwendung der neu verschlüsselten ersten Nachrichten und der zugewiesenen Ersatzschlüssel wechseln. Das Wechseln kann das Neuzuweisen des Themen-Alias von dem allgemeinen ersten Thema, das die verschlüsselten ersten Nachrichten aufweist, auf das allgemeine zweite Thema umfassen, das die neu verschlüsselten ersten Nachrichten aufweist. Darüber hinaus können die zuvor verwendeten verschlüsselten ersten Nachrichten und/oder die zuvor verwendeten ersten kryptographischen Schlüssel gelöscht werden. Das Löschen kann z.B. ein Löschen des allgemeinen ersten Themas umfassen.
  • 15 zeigt ein Blockschaubild, das eine alternative Umsetzung eines Neuverschlüsselns unter Verwendung eines Broker-Neuverschlüsselungsdiensts veranschaulicht. Der Broker-Neuverschlüsselungsdienst kann in einem Broker 202 umgesetzt sein, wie in 4 gezeigt. Der Broker-Neuverschlüsselungsdienst schließt womöglich keine Themen-Aliases ein, sondern erweitert vielmehr die Themenverwaltung, z.B. eines Themas
    t 210, innerhalb des Brokers 202. Beispielsweise kann ein Protokollbereinigungsdienst des Brokers, der über Hintergrund-Threads das Komprimieren durchführt und das Ablaufen verwaltet, so erweitert werden, dass er Neuverschlüsselungsmerkmale aufweist, um den Neuverschlüsselungsdienst bereitzustellen.
  • Ein Thema t 210 kann aus einer Mehrzahl von Partitionen bestehen, die jeweils aus einer Mehrzahl von Segmentdateien 211 bestehen. Ein Schreibprozess zum Hinzufügen einer zusätzlichen Nachricht, d.h. einer neuen Nachricht, zu dem Thema t 210 kann das Anhängen der zusätzlichen Nachricht an die zuletzt geöffnete Segmentdatei 211 umfassen, z.B. eine Segmentdatei „Segment 3“. Geschlossene Segmentdateien können nur ausgetauscht oder z.B. von einem Protokollbereinigungsdienst gelöscht werden, wenn eine maximale Aufbewahrungszeit der in den jeweiligen Segmentdateien gespeicherten Nachrichten abläuft.
  • Ein Neuverschlüsselungsarbeitsablauf mit einem Broker-Neuverschlüsselungsdienst kann das Ausgeben eines Befehls zum Neuverschlüsseln eines bestehenden, mit einem ersten kryptographischen Schlüssel verschlüsselten Themas mit einem zweiten, also einem neuen, kryptographischen Schlüssel umfassen. Als Antwort auf das Ausgeben des Befehls kann der Neuverschlüsselungsprozess gestartet werden. Der Neuverschlüsselungsprozess kann als Hintergrund-Threads umgesetzt sein. Neue eingehende Nachrichten können unter Verwendung des zweiten Schlüssels verschlüsselt werden. Der Broker 202 kann die aktuelle Segmentdatei „Segment 3“ schließen und eine neue Segmentdatei 222 „Segment 4“ öffnen. Der Broker 202 kann ferner einen Offset-Wert eines Offset einer Nachricht bestimmen und speichern, mit dem die Verschlüsselung unter Verwendung des zweiten Schlüssels gestartet wird.
  • Eine Neuverschlüsselung von zuvor empfangenen Nachrichten, also in den geschlossenen Segmentdateien 211 „Segment 1“, „Segment 2“ und „Segment 3“ gespeicherte Nachrichten, kann durch Hintergrund-Threads eingeleitet werden. Alle bisherigen Nachrichten, die mit dem bestimmten Offset gestartet sind, also alle mit dem vorherigen kryptographischen Schlüssel verschlüsselten Nachrichten, können neu verschlüsselt werden, z.B. Datei für Datei. Beispielsweise kann das Neuverschlüsseln mit der neuesten Segmentdatei 211 „Segment 3“ beginnen. Nachdem eine Segmentdatei 211 „Segment 3“ neu verschlüsselt wurde, also unter Verwendung des vorherigen ersten kryptographischen Schlüssels entschlüsselt und unter Verwendung des aktuellen zweiten kryptographischen Schlüssels verschlüsselt wurde, wird die entstehende neuverschlüsselte Segmentdatei 221 „Segment 3“ durch die vorherige Segmentdatei 211 „Segment 3“ ausgetauscht. Beispielsweise können die vorherigen Segmentdateien 211 „Segment 2“ und „Segment 3“, die unter Verwendung des vorherigen kryptographischen Schlüssels verschlüsselte Nachrichten aufweisen, durch die neuverschlüsselten Segmentdateien 221 „Segment 2“ und „Segment 3“ ersetzt werden, die die gleichen Nachrichten wie die vorherigen Segmentdateien 211 „Segment 2“ und „Segment 3“ aufweisen, die unter Verwendung des aktuellen zweiten kryptographischen Schlüssels neu verschlüsselt wurden. Nachdem die letzte Nachricht der letzten Segmentdatei 211 neu verschlüsselt wurde, z.B. die älteste Segmentdatei „Segment 2“, kann der Neuverschlüsselungsprozess abgeschlossen und kann der vorherige erste kryptographische Schlüssel also verworfen werden. Beispielsweise kann eine Segmentdatei „Segment 1“ während der Schlüsselrotation gelöscht werden, da eine maximale Aufbewahrungszeit für die von der jeweiligen Segmentdatei „Segment 1“ umfassten Nachrichten abgelaufen ist. Somit kann das Starten des Neuverschlüsselns mit dem neuesten „Segment 3“ verhindern, dass das Publish-Subscribe-System eine Segmentdatei wie „Segment 1“ unnötigerweise neu verschlüsselt, die später während der Schlüsselrotation gelöscht wird.
  • Das Neuverschlüsseln unter Verwendung eines Neuverschlüsselungsdiensts auf einem Broker 202, wie in 15 veranschaulicht, kann durch Umsetzung einer Parallelisierung optimiert werden. Die mit dem Neuverschlüsseln in Zusammenhang stehende Arbeitslast kann parallelisiert werden, also über eine Mehrzahl von Brokern eines Clusters von Brokern verteilt werden, die das Publish-Subscribe-System aufweist. Beispiele können die vorteilhafte Wirkung haben, dass die Neuverschlüsselungsgeschwindigkeit erhöht, z.B. optimiert, wird. Das Publish-Subscribe-System kann eine Mehrzahl von Brokern aufweisen. Ein internes Protokoll des Publish-Subscribe-Systems kann derart eingestellt werden, dass alle Broker des Publish-Subscribe-Systems mit einem Replikat einer Partition sich untereinander koordinieren können, um jeweils nur eine Teilmenge der Segmentfelder der jeweiligen Partition neu zu verschlüsseln. Jeder der Broker tauscht sodann die Teilmenge von neu verschlüsselten Segmentfeldern mit allen anderen Brokern aus, die das Replikat ebenfalls aufweisen.
  • 16 zeigt einen schematischen Ablaufplan eines beispielhaften Verfahrens für eine kryptographische Schlüsselrotation in einem Publish-Subscribe-System wie das Publish-Subscribe-System 200 von 7 bis 13. Das Verfahren von 16 entspricht dem Verfahren von 6 und ist so angepasst, dass ein von einem Broker des Publish-Subscribe-Systems bereitgestellter Neuverschlüsselungsdienst verwendet wird. Segmentdateien können zum Speichern von Nachrichten verwendet werden. Wenn eine Segmentdatei voll ist, wird das Speichern unter Verwendung einer darauffolgenden Segmentdatei fortgesetzt.
  • In Block 340 wird eine aktuell zum Speichern verwendete Segmentdatei geschlossen, und in Block 342 wird eine zusätzliche Segmentdatei zum Speichern von Nachrichten geöffnet. Die in der zusätzlichen Segmentdatei gespeicherten Nachrichten werden unter Verwendung von in Block 346 bereitgestellten Ersatzschlüsseln verschlüsselt. Beispielsweise können die Ersatzschlüssel vor einem beliebigen der Blöcke 340, 342 oder 344 bereitgestellt werden. In Block 344 wird kann ein Offset-Wert bestimmt und z.B. gespeichert werden, der einen Offset identifiziert, an dem ein Speichern von mit den Ersatzschlüsseln verschlüsselten Nachrichten gestartet wird. Blöcke 346 bis 352 können Blöcken 300 bis 306 von 6 entsprechen. Das Neuverschlüsseln der Nachrichten der Segmentdateien kann zu neu verschlüsselten Segmentdateien führen. In Block 354 können werden die gespeicherten Segmentdateien durch die neu verschlüsselten Segmentdateien ersetzt. Beispielsweise kann das Neuverschlüsseln mit der gespeicherten neuesten Segmentdatei gestartet und kann abgeschlossen werden, wenn die gespeicherte älteste übrigbleibende Segmentdatei erreicht und neu verschlüsselt wurde.
  • Bei der vorliegenden Erfindung kann es sich um ein System, ein Verfahren und/oder ein Computerprogrammprodukt handeln, in das technische Details in einem beliebigen möglichen Grad integriert sind. Das Computerprogrammprodukt kann ein durch einen Computer lesbares Speichermedium (oder -medien) mit durch einen Computer lesbaren Programmanweisungen darauf aufweisen, 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 ein System zur Ausführung von Anweisungen behalten und speichern kann. Bei dem durch einen Computer lesbaren Speichermedium kann es sich zum Beispiel um eine elektronische Speichereinheit, eine magnetische Speichereinheit, eine optische Speichereinheit, eine elektromagnetische Speichereinheit, eine Halbleiterspeichereinheit oder jede geeignete Kombination des Vorstehenden handeln, ohne auf diese beschränkt zu sein. Zu einer nicht erschöpfenden Liste spezifischerer Beispiele des durch einen Computer lesbaren Speichermediums gehören die Folgenden: eine auswechselbare 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 auswechselbarer Kompaktspeicherplatte-Nur-Lese-Speicher (CD-ROM), eine DVD (Digital Versatile Disc), ein Speicher-Stick, eine Diskette, eine mechanisch kodierte Einheit wie zum Beispiel Lochkarten oder erhabene Strukturen in einer Rille, auf denen Anweisungen gespeichert sind, und jede geeignete Kombination des Vorstehenden. Ein durch einen Computer lesbares Speichermedium soll in der Verwendung hierin 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 ein anderes Übertragungsmedium ausbreiten (z.B. ein Lichtwellenleiterkabel durchlaufende 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, Router, 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 Erfindung kann es sich um Assembler-Anweisungen, ISA-Anweisungen (ISA, Instruction Set Architecture), Maschinenanweisungen, maschinenabhängige Anweisungen, Mikrocode, Firmware-Anweisungen, zustandssetzende Daten oder entweder Quellcode oder Objektcode handeln, die in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen geschrieben werden, darunter objektorientierte Programmiersprachen wie Smalltalk, C++ o.ä. sowie herkömmliche 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 Remote-Computer oder vollständig auf dem Remote-Computer oder Server ausgeführt werden. In letzterem Fall kann der entfernt angeordnete Computer mit dem Computer des Benutzers durch eine beliebige Art Netzwerk verbunden sein, darunter ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetzwerk (WAN), oder die Verbindung kann mit 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, vor Ort programmierbare Gatter-Anordnungen (FPGA, Field Programmable Gate Arrays) oder programmierbare Logikanordnungen (PLA, Programmable Logic Arrays) die durch einen Computer lesbaren Programmanweisungen ausführen, indem sie Zustandsinformationen der durch einen Computer lesbaren Programmanweisungen nutzen, um die elektronischen Schaltungen zu personalisieren, um Aspekte der vorliegenden Erfindung durchzuführen.
  • Aspekte der vorliegenden Erfindung sind hierin unter Bezugnahme auf Ablaufpläne und/oder Blockschaltbilder bzw. Schaubilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es wird darauf hingewiesen, dass jeder Block der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder sowie Kombinationen von Blöcken in den Ablaufplänen und/oder den Blockschaltbildern bzw. Schaubildern mittels durch einen Computer lesbare Programmanweisungen ausgeführt werden können.
  • Diese durch einen Computer lesbaren Programmanweisungen können einem Prozessor eines Universalcomputers, eines Spezialcomputers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu erzeugen, so dass die über den Prozessor des Computers bzw. der anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführten Anweisungen ein Mittel zur Umsetzung der in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder festgelegten Funktionen/Schritte erzeugen. 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, so dass das durch einen Computer lesbare Speichermedium, auf dem Anweisungen gespeichert sind, ein Herstellungsprodukt aufweist, darunter Anweisungen, welche Aspekte der/des in dem Block bzw. den Blöcken des Ablaufplans und/oder der Blockschaltbilder bzw. Schaubilder festgelegten 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 Prozessschritten auf dem Computer bzw. der anderen programmierbaren Vorrichtung oder anderen Einheit zu verursachen, um einen auf einem Computer ausgeführten Prozess zu erzeugen, so dass die auf dem Computer, einer anderen programmierbaren Vorrichtung oder einer anderen Einheit ausgeführten Anweisungen die in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder festgelegten Funktionen/Schritte umsetzen.
  • Die Ablaufpläne und die Blockschaltbilder bzw. Schaubilder 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 Blockschaltbildern bzw. Schaubildern ein Modul, ein Segment oder einen Teil von Anweisungen darstellen, die eine oder mehrere ausführbare Anweisungen zur Ausführung der festgelegten logischen Funktion(en) aufweisen. In einigen alternativen Ausführungen können die in dem Block angegebenen Funktionen in einer anderen Reihenfolge als in den Figuren gezeigt stattfinden. Zwei nacheinander gezeigte Blöcke können zum Beispiel in Wirklichkeit im Wesentlichen gleichzeitig ausgeführt werden, oder die Blöcke können manchmal je nach entsprechender Funktionalität in umgekehrter Reihenfolge ausgeführt werden. Es ist ferner anzumerken, dass jeder Block der Blockschaltbilder bzw. Schaubilder und/oder der Ablaufpläne sowie Kombinationen aus Blöcken in den Blockschaltbildern bzw. Schaubildern und/oder den Ablaufplänen durch spezielle auf Hardware beruhende Systeme umgesetzt werden können, welche die festgelegten Funktionen oder Schritte durchführen, oder Kombinationen aus Spezial-Hardware und Computeranweisungen ausführen.
  • 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, Hauptspeicher, 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 aufweisen, mindestens drei Dienstmodelle und mindestens vier Implementierungsmodelle.
  • Bei den Eigenschaften handelt es sich um die folgenden:
    • 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 der Dienste 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 eine schnelle vertikale Skalierung (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). Die Nutzung von Ressourcen kann überwacht, gesteuert und gemeldet werden, wodurch sowohl für den Anbieter als auch für den Nutzer des verwendeten Dienstes Transparenz geschaffen wird.
  • Bei den Dienstmodellen handelt es sich um die folgenden:
    • Software as a Service (SaaS): Die dem Nutzer bereitgestellte Funktion besteht darin, die in einer Cloud-Infrastruktur laufenden Anwendungen des Anbieters zu verwenden. Die Anwendungen sind über eine Thin-Client-Schnittstelle wie einen Web-Browser (z.B. auf dem Web beruhende E-Mail) 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 bzw. Speicher, hat aber die Kontrolle über die eingesetzten Anwendungen und möglicherweise über Konfigurationen des Application Hosting Environment.
  • Infrastructure as a Service (laaS): Die dem Nutzer bereitgestellte Funktion besteht darin, das Verarbeiten, Speicher, Netzwerke und andere grundlegende Datenverarbeitungsressourcen bereitzustellen, wobei der Nutzer in der Lage ist, beliebige Software einzusetzen und auszuführen, 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 eine eingeschränkte Kontrolle über ausgewählte Netzwerkkomponenten (z.B. Host-Firewalls).
  • Bei den Einsatzmodellen handelt es sich um die folgenden:
    • Private Cloud: Die Cloud-Infrastruktur wird einzig und allein für eine Organisation betrieben. Sie kann durch die Organisation oder einen Dritten verwaltet werden und kann sich in den eigenen Räumen oder in fremden Räumen befinden.
  • Community Cloud: Die Cloud-Infrastruktur wird von mehreren Organisationen gemeinsam genutzt und unterstützt eine spezielle Benutzergemeinschaft, die gemeinsame Angelegenheiten hat (z.B. Mission, Sicherheitsanforderungen, Richtlinien sowie Überlegungen bezüglich der Einhaltung von Vorschriften). Sie kann durch die Organisationen oder einen Dritten verwaltet werden und kann in den eigenen Räumen oder fremden Räumen stehen.
  • Public Cloud: Die Cloud-Infrastruktur wird der allgemeinen Öffentlichkeit oder einer großen Industriegruppe zur Verfügung gestellt und sie gehört einer Cloud-Dienste verkaufenden Organisation.
  • 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 Daten- und Anwendungsportierbarkeit ermöglicht (z.B. Cloud-Zielgruppenverteilung für den Lastenausgleich zwischen Clouds).
  • Eine Cloud-Computing-Umgebung ist dienstorientiert mit Fokus auf Statusunabhängigkeit, geringer Kopplung, Modularität und semantischer Interoperabilität. Im Herzen von Cloud-Computing liegt eine Infrastruktur, die ein Netzwerk aus zusammengeschalteten Knoten aufweist.
  • Unter Bezugnahme auf 17 Bezug ist die veranschaulichende Cloud-Computing-Umgebung 50 abgebildet. Wie gezeigt ist, weist die Cloud-Computing-Umgebung 50 einen oder mehrere Cloud-Computing-Knoten 10 auf, mit denen von Cloud-Nutzern verwendete lokale Datenverarbeitungseinheiten wie der elektronische Assistent (PDA, Personal Digital Assistant) oder das Mobiltelefon 54A, der Desktop-Computer 54B, der Laptop-Computer 54C und/oder das Automobil-Computer-System 54N Daten austauschen können. Die Knoten 10 können miteinander Daten austauschen. Sie können physisch oder virtuell in ein oder mehrere Netzwerke wie private, Benutzergemeinschafts-, öffentliche oder hybride Clouds gruppiert werden (nicht gezeigt), wie vorstehend beschrieben wurde, oder in eine Kombination daraus. Dies ermöglicht es der Cloud-Computing-Umgebung 50, Infrastruktur, Plattformen und/oder Software als Dienst anzubieten, für die ein Cloud-Nutzer keine Ressourcen auf einer lokalen Datenverarbeitungseinheit vorhalten muss. Es sei darauf hingewiesen, dass die Arten von in 1 gezeigten Datenverarbeitungseinheiten 54A bis N lediglich veranschaulichend sein sollen und dass die Datenverarbeitungsknoten 10 und die Cloud-Computing-Umgebung 50 über eine beliebige Art Netzwerk und/oder über eine beliebige Art von über ein Netzwerk aufrufbarer Verbindung (z.B. unter Verwendung eines Web-Browsers) mit einer beliebigen Art von computergestützter Einheit Daten austauschen können.
  • Unter Bezugnahme auf 18 wird ein Satz von funktionalen Abstraktionsschichten gezeigt, die durch die Cloud-Computing-Umgebung 50 (17) bereitgestellt werden. Es sollte von vornherein klar sein, dass die in 18 gezeigten Komponenten, Schichten und Funktionen lediglich veranschaulichend sein sollen und Ausführungsformen der Erfindung nicht darauf beschränkt sind. Wie dargestellt ist, werden die folgenden Schichten und entsprechenden Funktionen bereitgestellt:
  • Eine Hardware- und Software-Schicht 60 weist Hardware- und Software-Komponenten auf. Zu Beispielen für Hardware-Komponenten gehören: Mainframe-Computer 61; auf der RISC-Architektur (RISC, Reduced Instruction Set Computer) beruhende Server 62; Server 63; Blade-Server 64; Speichereinheiten 65; und Netzwerke sowie Netzwerkkomponenten 66. In einigen Ausführungsformen weisen Software-Komponenten eine Netzwerk-Anwendungsserver-Software 67 und eine Datenbank-Software 68 auf.
  • Eine Virtualisierungsschicht 70 stellt eine Abstraktionsschicht bereit, aus der die folgenden Beispiele für virtuelle Einheiten bereitgestellt werden können: virtuelle Server 71, virtueller Speicher 72, virtuelle Netzwerke 73, darunter virtuelle private Netzwerke, virtuelle Anwendungen und Betriebssysteme 74; und virtuelle Clients 75.
  • In einem Beispiel kann die Verwaltungsschicht 80 die nachfolgend beschriebenen Funktionen bereitstellen. Eine Ressourcen-Bereitstellung 81 stellt die dynamische Beschaffung von Datenverarbeitungsressourcen sowie anderen Ressourcen bereit, die zum Durchführen von Aufgaben innerhalb der Cloud-Computing-Umgebung verwendet werden. Ein Messen und eine Preisfindung 82 stellen die Kostenverfolgung beim Verwenden von Ressourcen innerhalb der Cloud-Computing-Umgebung sowie die Abrechnung oder Rechnungsstellung für die Inanspruchnahme dieser Ressourcen bereit. In einem Beispiel können diese Ressourcen Anwendungs-Software-Lizenzen aufweisen. Die Sicherheit stellt die Identitätsüberprüfung für Cloud-Nutzer und Aufgaben sowie Schutz für Daten und andere Ressourcen bereit. Ein Benutzerportal 83 stellt Nutzern und Systemadministratoren den Zugang zu der Cloud-Computing-Umgebung bereit. Eine Verwaltung des Dienstumfangs 84 stellt die Zuordnung und Verwaltung von Cloud-Computing-Ressourcen bereit, so dass die benötigten Dienstziele erreicht werden. Ein Service Level Agreement (SLA) 85 stellt die Anordnung vorab und die Beschaffung von Cloud-Computing-Ressourcen, für die eine zukünftige Anforderung vorausgesehen wird, gemäß einem SLA bereit.
  • Eine Arbeitslastschicht 90 stellt Beispiele für die Funktionalität bereit, für welche die Cloud-Computing-Umgebung verwendet werden kann. Zu Beispielen für Arbeitslasten und Funktionen, die von dieser Schicht bereitgestellt werden können, gehören: Abbildung und Navigation 91; Software-Entwicklung und Lebenszyklusverwaltung 92; Bereitstellung von Ausbildung in virtuellen Klassenzimmern 93; Datenanalytikverarbeitung 94; Transaktionsverarbeitung 95; und Einsatz- und Verbindungsfunktionalität 96 für den sicheren Einsatz über Einsatzorte hinweg.

Claims (20)

  1. Verfahren für eine kryptographische Schlüsselrotation in einem Publish-Subscribe-System, wobei: das Publish-Subscribe-System eine Mehrzahl von Nachrichten speichert, wobei jede gespeicherte Nachricht aus der Mehrzahl von gespeicherten Nachrichten einem Thema aus einer Gruppe von Themen zugewiesen wird, wobei jeder der gespeicherten Nachrichten ein kryptographischer Schlüssel aus einer Gruppe von einem oder mehreren kryptographischen Schlüsseln zugewiesen wird und wobei jede der gespeicherten Nachrichten mit dem zugewiesenen kryptographischen Schlüssel verschlüsselt wird; wobei das Publish-Subscribe-System einen Broker-Dienst zum Weiterleiten der gespeicherten Nachrichten an einen oder mehrere der Subscriber der Themen bereitstellt, denen die weitergeleiteten Nachrichten zugewiesen sind, wobei das Weiterleiten ein Entschlüsseln der weiterzuleitenden Nachricht unter Verwendung des zugewiesenen kryptographischen Schlüssels der jeweiligen Nachricht und das Senden der entschlüsselten Nachrichten an einen oder mehrere der Subscriber des zugewiesenen Themas umfasst; und wobei die kryptographische Schlüsselrotation ein Neuverschlüsseln jeder Nachricht aus einem ersten Satz eines oder mehrerer erster Nachrichten der gespeicherten Nachrichten umfasst, wobei jede der ersten Nachrichten einem gemeinsamen ersten Thema aus der Gruppe von Themen zugewiesen wird, einem ersten kryptographischen Schlüssel eines ersten Satzes einer oder mehrerer erster Schlüssel aus der Gruppe von kryptographischen Schlüssel zugewiesen wird und mit dem zugewiesenen ersten kryptographischen Schlüssel verschlüsselt wird, wobei das Neuverschlüsseln durch ein Verschlüsselungsmodul des Publish-Subscribe-Systems als Hintergrundprozess durchgeführt wird, während das Weiterleiten erster Nachrichten von dem Broker-Dienst und das Empfangen zusätzlicher erster Nachrichten für das gemeinsame erste Thema durch diesen fortgesetzt wird; wobei das Neuverschlüsseln umfasst: Hinzufügen eines zweiten Satzes eines oder mehrerer zweiter kryptographischer Schlüssel zu der Gruppe von kryptographischen Schlüsseln, wobei jeder der zweiten kryptographischen Schlüssel ein Ersatzschlüssel für einen der ersten kryptographischen Schlüssel ist; und für jede der ersten Nachrichten: Entschlüsseln der verschlüsselten ersten Nachricht unter Verwendung des ersten kryptographischen Schlüssels, der den jeweiligen ersten Nachrichten zugewiesen ist; Neuverschlüsseln der verschlüsselten ersten Nachricht unter Verwendung des Ersatzschlüssels für den zugewiesenen ersten kryptographischen Schlüssel; Zuweisen des verwendeten Ersatzschlüssels zu der neu verschlüsselten ersten Nachricht; und Wechseln von der Verwendung der ersten verschlüsselten Nachricht und des zugewiesenen ersten kryptographischen Schlüssels zur Weiterleitung auf die Verwendung der neu verschlüsselten ersten Nachricht und des zugewiesenen Ersatzschlüssels.
  2. Verfahren nach Anspruch 1, wobei ein Broker das Verschlüsselungsmodul des Publish-Subscribe-Systems aufweist.
  3. Verfahren nach Anspruch 1, wobei ein Proxy des Publish-Subscribe-Systems das Verschlüsselungsmodul aufweist, über das der Broker des Publish-Subscribe-Systems mit Clients des Publish-Subscribe-Systems Daten austauscht.
  4. Verfahren nach Anspruch 1, wobei die in dem Publish-Subscribe-System gespeicherten verschlüsselten Nachrichten mit einem Kopf versehen werden, der den zugewiesenen kryptographischen Schlüssel der Gruppe von kryptographischen Schlüsseln identifiziert.
  5. Verfahren nach Anspruch 4, wobei der Kopf, der den zugewiesenen kryptographischen Schlüssel identifiziert, während des Weiterleitens vor dem Senden der weitergeleiteten entschlüsselten Nachricht an den Subscriber entfernt wird.
  6. Verfahren nach Anspruch 4, wobei die Köpfe der verschlüsselten Nachrichten jeweils den identifizierten kryptographischen Schlüssel in mithilfe von Envelope-Verschlüsselung mit einem Envelope-Verschlüsselungsschlüssel verschlüsselter Form aufweisen, wobei das Entschlüsseln jeder der verschlüsselten ersten Nachrichten ferner das Entschlüsseln des zugewiesenen ersten kryptographischen Schlüssels, der in dem Kopf der jeweiligen ersten Nachricht bereitgestellt ist, mithilfe des Envelope-Verschlüsselungsschlüssels umfasst, wobei das Neuverschlüsseln jeder der entschlüsselten ersten Nachrichten ferner das Verschlüsseln des zum Neuverschlüsseln der jeweiligen neu verschlüsselten ersten Nachricht verwendeten zugewiesenen Ersatzschlüssel mithilfe des Envelope-Verschlüsselungsschlüssels und das Ersetzen des verschlüsselten ersten kryptographischen Schlüssels in einem Kopf der jeweiligen neu verschlüsselten ersten Nachricht durch den verschlüsselten Ersatzschlüssel umfasst.
  7. Verfahren nach Anspruch 1, wobei das Publish-Subscribe-System einen Index aufweist, der den zugewiesenen kryptographischen Schlüssel aus der Gruppe von kryptographischen Schlüssel für jede der gespeicherten Nachrichten identifiziert.
  8. Verfahren nach Anspruch 1, wobei das Neuverschlüsseln ferner für jede der ersten Nachrichten umfasst: Identifizieren des ersten kryptographischen Schlüssels, der den jeweiligen ersten Nachrichten zugewiesen ist, mithilfe des Index; Zuweisen des Ersatzschlüssels für den identifizierten ersten kryptographischen Schlüssel in dem Index zu der neu verschlüsselten ersten Nachricht.
  9. Verfahren nach Anspruch 1, wobei jede der gespeicherten Nachrichten als Element des Themas gespeichert wird, dem die jeweilige Nachricht zugewiesen ist, wobei das Verfahren ferner umfasst: Bereitstellen eines ersten Themen-Alias, das auf das allgemeine erste Thema aus dem ersten Satz von Nachrichten hindeutet, wobei der eine oder die mehreren Subscriber des allgemeinen ersten Themas den ersten Themen-Alias abonnieren, Hinzufügen eines zusätzlichen allgemeinen zweiten Themas zu der Gruppe von Themen; und Speichern der neu verschlüsselten ersten Nachrichten als Elemente des allgemeinen zweiten Themas, wobei das Wechseln das Neuzuweisen des ersten Themen-Alias zu dem allgemeinen zweiten Thema umfasst, so dass der eine oder die mehreren Subscriber, die den ersten Themen-Alias abonniert haben, zu Subscribern des allgemeinen zweiten Themas werden.
  10. Verfahren nach Anspruch 9, wobei das Wechseln ferner ein Löschen des allgemeinen ersten Themas mit den ersten verschlüsselten Nachrichten umfasst.
  11. Verfahren nach Anspruch 9, wobei das Wechseln ferner ein Löschen der ersten kryptographischen Schlüssel umfasst.
  12. Verfahren nach Anspruch 9, wobei zusätzliche erste Nachrichten, die durch das Publish-Subscribe-System von dem Publisher für den Themen-Alias empfangen werden, jeweils dem allgemeinen zweiten Thema zugewiesen werden, diesen der zweiten kryptographische Schlüssel des zweiten Satze von kryptographischen Schlüsseln zugewiesen, und diese werden unter Verwendung des zugewiesenen zweiten kryptographischen Schlüssels verschlüsselt.
  13. Verfahren nach Anspruch 1, wobei das Wechseln von den mit den zugewiesenen ersten kryptographischen Schlüsseln verschlüsselten ersten Nachrichten auf die mit den zugewiesenen Ersatzschlüsseln neuverschlüsselten ersten Nachrichten das Ersetzen jeder verschlüsselten ersten Nachricht durch die entsprechende neu verschlüsselte erste Nachricht umfasst.
  14. Verfahren nach Anspruch 13, wobei: die verschlüsselten ersten Nachrichten in einem Satz von Segmentdateien gespeichert werden, wobei eine der Segmentdateien des ersten Satzes von Segmentdateien aktuell zum Speichern von verschlüsselten ersten Nachrichten verwendet wird, während restliche Segmentdateien des Satzes von Segmentdateien, die bereits mit verschlüsselten ersten Nachrichten gefüllt sind, geschlossen werden, wenn eine offene Segmentdatei voll ist, die offene Segmentdatei geschlossen wird, eine zusätzliche Segmentdabei zu dem Satz von Segmentdateien hinzugefügt wird und die zusätzliche Segmentdatei zum Speichern von verschlüsselten ersten Nachrichten verwendet wird; beim Starten des Neuverschlüsseln die aktuell zum Speichern von verschlüsselten ersten Nachrichten verwendete Segmentdatei geschlossen und eine weitere zusätzliche Segmentdatei zu dem Satz von Segmentdateien hinzugefügt und zum Speichern zusätzlicher verschlüsselter erster Nachrichten verwendet wird, die das Publish-Subscribe-System von den Publishern für das allgemeine erste Thema empfangen hat; und wobei das Neuverschlüsseln der verschlüsselten ersten Nachrichten segmentär durchgeführt wird, wobei das segmentäre Neuverschlüsseln nacheinander das Auswählen der restlichen geschlossenen Segmentdateien, das Erstellen einer Ersatzsegmentdatei für jede der ausgewählten Segmentdateien, die die verschlüsselten ersten Nachrichten der ausgewählten Segmentdatei in verschlüsselter Form aufweist, und das Ersetzen der ausgewählten Segmentdatei durch die Ersatzsegmentdatei umfasst.
  15. Verfahren nach Anspruch 14, wobei das segmentäre Neuverschlüsseln mit einer aktuellsten Segmentdatei des Satzes von Segmentdateien gestartet wird.
  16. Verfahren nach Anspruch 14, wobei ein Offset-Wert bestimmt wird, der einen Offset einer zusätzlichen ersten Nachricht identifiziert, mit denen das Verschlüsseln unter Verwendung des zweiten kryptographischen Schlüssels innerhalb eines Speichers des Publish-Subscribe-Systems gestartet wird.
  17. Verfahren nach Anspruch 14, wobei zusätzliche erste Nachrichten, die durch das Publish-Subscribe-System von den Publishern für das allgemeine erste Thema empfangen werden, jeweils dem allgemeinen ersten Thema zugewiesen werden, diesen der zweiten kryptographische Schlüssel des zweiten Satzes von kryptographischen Schlüsseln zugewiesen wird und diese unter Verwendung des zugewiesenen zweiten kryptographischen Schlüssels verschlüsselt werden.
  18. Verfahren nach Anspruch 14, wobei das Publish-Subscribe-System eine Mehrzahl von zusätzlichen Brokern aufweist, wobei das Publish-Subscribe-System eine Mehrzahl von zusätzlichen Replikaten des Satzes von Segmentdateien aufweist, wobei jedes der Mehrzahl von Replikaten des Satzes von Segmentdateien einem der zusätzlichen Broker zugewiesen wird, wobei das Neuverschlüsseln der Segmentdateien zwischen den Brokern des Publish-Subscribe-Systems verteilt ist, wobei das Neuverschlüsseln parallelisiert umgesetzt wird.
  19. Computerprogrammprodukt für eine kryptographische Schlüsselrotation in einem Publish-Subscribe-System, wobei das Computerprogrammprodukt aufweist: ein durch einen Computer lesbares Speichermedium mit Programmanweisungen darauf, wobei die durch einen Prozessor eines Computersystems eines Publish-Subscribe-Systems ausführbar sind, um das Computersystem dazu zu veranlassen, die kryptographische Schlüsselrotation durchzuführen, wobei: das Publish-Subscribe-System eine Mehrzahl von Nachrichten speichert, wobei jede Speichernachricht aus der Mehrzahl von gespeicherten Nachrichten einem Thema aus einer Gruppe von Themen zugewiesen wird, wobei jeder der gespeicherten Nachrichten ein kryptographischer Schlüssel aus einer Gruppe von einem oder mehreren kryptographischen Schlüssel zugewiesen wird und wobei jede der gespeicherten Nachrichten mit dem zugewiesenen kryptographischen Schlüssel verschlüsselt wird; wobei das Publish-Subscribe-System einen Broker-Dienst zum Weiterleiten der gespeicherten Nachrichten an einen oder mehrere der Subscriber der Themen bereitstellt, denen die weitergeleiteten Nachrichten zugewiesen sind, wobei das Weiterleiten das Entschlüsseln der weiterzuleitenden Nachricht unter Verwendung des zugewiesenen kryptographischen Schlüssels der jeweiligen Nachricht und das Senden der entschlüsselten Nachrichten an einen oder mehrere der Subscriber des zugewiesenen Themas umfasst; und wobei die kryptographische Schlüsselrotation ein Neuverschlüsseln jeder Nachricht aus einem ersten Satz einer oder mehrerer erster Nachrichten der gespeicherten Nachrichten umfasst, wobei jede der ersten Nachrichten einem gemeinsamen ersten Thema aus der Gruppe von Themen zugewiesen wird, einem ersten kryptographischen Schlüssel eines ersten Satzes eines oder mehrerer erster Schlüssel aus der Gruppe von kryptographischen Schlüssel zugewiesen wird und mit dem zugewiesenen ersten kryptographischen Schlüssel verschlüsselt wird, wobei das Neuverschlüsseln durch ein Verschlüsselungsmodul des Publish-Subscribe-Systems als Hintergrundprozess durchgeführt wird, während das Weiterleiten erster Nachrichten von dem Broker-Dienst und das Empfangen zusätzlicher erster Nachrichten für das gemeinsame erste Thema durch diesen fortgesetzt wird; wobei das Neuverschlüsseln umfasst: Hinzufügen eines zweiten Satzes eines oder mehrerer zweiter kryptographischer Schlüssel zu der Gruppe von kryptographischen Schlüsseln, wobei jeder der zweiten kryptographischen Schlüssel ein Ersatzschlüssel für einen der ersten kryptographischen Schlüssel ist; und für jede der ersten Nachrichten: Entschlüsseln der verschlüsselten ersten Nachricht unter Verwendung des ersten kryptographischen Schlüssels, der den jeweiligen ersten Nachrichten zugewiesen ist; Neuverschlüsseln der verschlüsselten ersten Nachricht unter Verwendung des Ersatzschlüssels für den zugewiesenen ersten kryptographischen Schlüssel; Zuweisen des verwendeten Ersatzschlüssels zu der neuverschlüsselten ersten Nachricht; und Wechseln von der Verwendung der ersten verschlüsselten Nachricht und des zugewiesenen ersten kryptographischen Schlüssels zur Weiterleitung auf die Verwendung der neu verschlüsselten ersten Nachricht und des zugewiesenen Ersatzschlüssels.
  20. Computersystem für eine kryptographische Schlüsselrotation in einem Publish-Subscribe-System, wobei: das Publish-Subscribe-System eine Mehrzahl von Nachrichten speichert, wobei jede gespeicherte Nachricht aus der Mehrzahl von gespeicherten Nachrichten einem Thema aus einer Gruppe von Themen zugewiesen wird, wobei jeder der gespeicherten Nachrichten ein kryptographischer Schlüssel aus einer Gruppe von einem oder mehreren kryptographischen Schlüsseln zugewiesen wird und wobei jede der gespeicherten Nachrichten mit dem zugewiesenen kryptographischen Schlüssel verschlüsselt wird; wobei das Publish-Subscribe-System einen Broker-Dienst zum Weiterleiten der gespeicherten Nachrichten an einen oder mehrere der Subscriber der Themen bereitstellt, denen die weitergeleiteten Nachrichten zugewiesen sind, wobei das Weiterleiten ein Entschlüsseln der weiterzuleitenden Nachricht unter Verwendung des zugewiesenen kryptographischen Schlüssels der jeweiligen Nachricht und ein Senden der entschlüsselten Nachrichten an einen oder mehrere der Subscriber des zugewiesenen Themas umfasst; und wobei die kryptographische Schlüsselrotation ein Neuverschlüsseln jeder Nachricht aus einem ersten Satz einer oder mehrerer erster Nachrichten der gespeicherten Nachrichten umfasst, wobei jede der ersten Nachrichten einem gemeinsamen ersten Thema aus der Gruppe von Themen zugewiesen wird, einem ersten kryptographischen Schlüssel eines ersten Satzes einer oder mehrerer erster Schlüssel aus der Gruppe von kryptographischen Schlüssel zugewiesen wird und mit dem zugewiesenen ersten kryptographischen Schlüssel verschlüsselt wird, wobei das Neuverschlüsseln durch ein Verschlüsselungsmodul des Publish-Subscribe-Systems als Hintergrundprozess durchgeführt wird, während das Weiterleiten erster Nachrichten von dem Broker-Dienst und das Empfangen zusätzlicher erster Nachrichten für das gemeinsame erste Thema durch diesen fortgesetzt wird; wobei das Computersystem einen Prozessor und einen Speicher aufweist, auf dem durch den Prozessor ausführbare Programmanweisungen gespeichert sind, die das Computersystem dazu veranlassen, das Neuverschlüsseln durchzuführen, das umfasst: Hinzufügen eines zweiten Satzes eines oder mehrerer zweiter kryptographischer Schlüssel zu der Gruppe von kryptographischen Schlüsseln, wobei jeder der zweiten kryptographischen Schlüssel ein Ersatzschlüssel für einen der ersten kryptographischen Schlüssel ist; und für jede der ersten Nachrichten: Entschlüsseln der verschlüsselten ersten Nachricht unter Verwendung des ersten kryptographischen Schlüssels, der den jeweiligen ersten Nachrichten zugewiesen ist; Neuverschlüsseln der verschlüsselten ersten Nachricht unter Verwendung des Ersatzschlüssels für den zugewiesenen ersten kryptographischen Schlüssel; Zuweisen des verwendeten Ersatzschlüssels zu der neu verschlüsselten ersten Nachricht; und Wechseln von der Verwendung der ersten verschlüsselten Nachricht und des zugewiesenen ersten kryptographischen Schlüssels zur Weiterleitung auf die Verwendung der neu verschlüsselten ersten Nachricht und des zugewiesenen Ersatzschlüssels.
DE112021005867.3T 2020-12-14 2021-12-01 Schlüsselrotation auf einem publish-subscribe-system Pending DE112021005867T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US17/121,170 US20220191018A1 (en) 2020-12-14 2020-12-14 Key rotation on a publish-subscribe system
US17/121,170 2020-12-14
PCT/IB2021/061161 WO2022130088A1 (en) 2020-12-14 2021-12-01 Key rotation on publish-subscribe system

Publications (1)

Publication Number Publication Date
DE112021005867T5 true DE112021005867T5 (de) 2023-08-24

Family

ID=81942013

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112021005867.3T Pending DE112021005867T5 (de) 2020-12-14 2021-12-01 Schlüsselrotation auf einem publish-subscribe-system

Country Status (8)

Country Link
US (1) US20220191018A1 (de)
JP (1) JP2024500373A (de)
KR (1) KR20230109660A (de)
CN (1) CN116615891A (de)
AU (1) AU2021402251B2 (de)
DE (1) DE112021005867T5 (de)
GB (1) GB2616997B (de)
WO (1) WO2022130088A1 (de)

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8977865B2 (en) * 2010-05-25 2015-03-10 Microsoft Technology Licensing, Llc Data encryption conversion for independent agents
US9049023B2 (en) * 2011-05-24 2015-06-02 Zeutro Llc Outsourcing the decryption of functional encryption ciphertexts
US20120324225A1 (en) * 2011-06-20 2012-12-20 Jason Chambers Certificate-based mutual authentication for data security
US20150271153A1 (en) * 2012-07-10 2015-09-24 Kurt Ryan Rohloff Information management using proxy re-encryption
US9659190B1 (en) * 2015-06-26 2017-05-23 EMC IP Holding Company LLC Storage system configured for encryption of data items using multidimensional keys having corresponding class keys
US10574440B2 (en) * 2016-05-06 2020-02-25 ZeroDB, Inc. High-performance access management and data protection for distributed messaging applications
US10623186B1 (en) * 2017-11-10 2020-04-14 Amazon Technologies, Inc. Authenticated encryption with multiple contexts
CN109587178A (zh) * 2019-01-23 2019-04-05 四川虹美智能科技有限公司 一种基于mqtt的智能家电加密控制系统和方法
US11240024B2 (en) * 2019-07-29 2022-02-01 EMC IP Holding Company LLC Cryptographic key management using key proxies and generational indexes
CN110708247B (zh) * 2019-09-27 2022-03-22 浙江大搜车软件技术有限公司 消息路由方法、装置、计算机设备和存储介质

Also Published As

Publication number Publication date
CN116615891A (zh) 2023-08-18
GB2616997B (en) 2024-05-22
US20220191018A1 (en) 2022-06-16
WO2022130088A1 (en) 2022-06-23
JP2024500373A (ja) 2024-01-09
KR20230109660A (ko) 2023-07-20
GB2616997A (en) 2023-09-27
AU2021402251A1 (en) 2023-06-15
AU2021402251B2 (en) 2024-02-15

Similar Documents

Publication Publication Date Title
DE112016006080B4 (de) Verwaltung von virtuellen desktopinstanzenpools
DE112019001481T5 (de) Selektives bereitstellen gegenseitiger transportschichtsicherheit mittels alternativer servernamen
DE102012219155B4 (de) Verschlüsseln von Datenobjekten zur Datensicherung
DE112016003726B4 (de) Dynamisch definierte virtuelle private Netzwerktunnel in hybriden Cloud-Umgebungen
DE102021123128A1 (de) Mittels blockchains realisiertes datenmigrationsprüfprotokoll
DE112012003056T5 (de) Virtueller Computer und virtueller Dienst
DE112018004390B4 (de) Sichere zugriffsverwaltung für werkzeuge innerhalb einer sicheren umgebung
DE112021001766B4 (de) Inhaltskontrolle durch datenaggregationsdienste dritter
DE112013002544T5 (de) Cloudbasiertes Teilen von Datenpunkten und Zusammenarbeit unter Benutzergruppen
DE112019000136T5 (de) Objektspeichersystem mit sicherer objektreplikation
DE112018004008B4 (de) Auf dateisysteminhalten beruhende sicherheit
DE112014000584T5 (de) Erreichen von Speichereffizienz bei durchgängiger Verschlüsselung unter Verwendung von nachgelagerten (Downstream-)Decryptern
DE112020005620T5 (de) Sichere föderation verteilter stochastischer gradientenabstiege
DE112021004937T5 (de) Sicheres erneutes verschlüsseln von homomorph verschlüsselten daten
DE112020002164T5 (de) Sichere datenspeicherung auf der grundlage von verschleierung durch verteilung
DE112021002487T5 (de) Teilen einer geografisch konzentrierten arbeitslast zwischen benachbarten mec-hosts mehrerer netzbetreiber
DE112019003130T5 (de) Hsm-selbstzerstörung in einer hybriden cloud-kms-lösung
DE112021006372T5 (de) Sichere bereitstellung einer datenverarbeitungsressource unter verwendung einer homomorphen verschlüsselung
DE112020002859T5 (de) Verschlüsselter wissens-graph
DE112021006008T5 (de) Sichere übertragung grosser datenmengen
DE112020003357T5 (de) Undurchsichtige verschlüsselung für datendeduplizierung
DE112021005837T5 (de) Dezentrale sendeverschlüsselung und schlüsselerzeugungseinrichtung
DE102021130942A1 (de) Mehrstufiger schutz für datenzentrierte objekte
DE102021125847A1 (de) Auf blockchain beruhende reservierung und delegierung von diensten
DE112021004613T5 (de) Redigierbare blockchain

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R083 Amendment of/additions to inventor(s)
R084 Declaration of willingness to licence