-
Die Erfindung bezieht sich auf ein Verfahren durch das ein erster Kommunikationspartner langfristig gültige Sicherheitsinformationen einem zweiten Kommunikationspartner bereitstellt.
-
Datenstrukturen in Form von Sicherheitstoken, beispielsweise digitale Zertifikate, Kerberos Ticket oder XML Key Management Nachrichten, dienen dazu einen kryptographischen Schlüssel geschützt zu verteilen. Dabei werden Schlüssel für ein bestimmtes festes kryptographisches Verfahren verteilt.
-
Zur Unterstützung von langfristigen Sicherheitsanforderungen ist es notwendig, flexibel unterschiedliche kryptographische Verfahren zu unterstützen. Dies bedeutet, dass hierzu unterschiedliche Algorithmen und unterschiedliche Schlüssellängen unterstützt werden sollen.
-
Es sind allgemein Schlüsselableitungsfunktionen (engl. Key Derivation Functions angekürzt KDF) bekannt, um aus einem ersten kryptographischen Schlüssel einen abgeleiteten kryptographischen Schlüssel zu berechnen. Dafür kann beispielsweise das Verfahren HMAC-SHA1 oder HMAC-SHA256 verwendet werden. Es sind auch spezielle Schlüsselableitungsfunktionen bekannt wie beispielsweise PBKDF oder PBKDF2.
-
Beim Standard Trusted Platform Module TPM Version 2.0 (Draft) ist bekannt, dass ein TPM-Modul einen geheimen privaten Plattformstartwert (platform private primary seed) enthält. Dies ist ein Startwert, aus dem mittels einer algorithmenspezifischen Schlüsselbildungsfunktion ein dafür geeigneter geheimer algorithmenspezifischer Schlüssel ermittelbar ist. Dadurch kann ein TPM-Modul unterschiedliche kryptographische Algorithmen unterstützen, ohne für jedes dieser Verfahren einen separaten kryptographischen Schlüssel speichern zu müssen. Dies ist auch unter dem Ausdruck „Algorithmen-Flexibilität“ bekannt.
-
Die Aufgabe der Erfindung ist es, langfristig gültige Sicherheitsinformationen effizient einem ersten Kommunikationspartner bereitzustellen bzw. an einen zweiten Kommunikationspartner zu verteilen.
-
Die Aufgabe wird durch die in den unabhängigen Ansprüchen angegebenen Merkmalen gelöst. In den Unteransprüchen sind vorteilhafte Weiterbildungen der Erfindung dargestellt.
-
Gemäß einem ersten Aspekt betrifft die Erfindung ein Verfahren zum Bereitstellen von langfristig gültigen Sicherheitsinformationen. Das Verfahren umfasst einen Verfahrensschritt zum Festlegen eines öffentlichen Startwerts für einen ersten Kommunikationspartner. Das Verfahren umfasst zusätzlich einen Verfahrensschritt zum Speichern des öffentlichen Startwertes in einer Datenstruktur des ersten Kommunikationspartners. Das Verfahren umfasst zusätzlich einen Verfahrensschritt zum Mitteilen der Datenstruktur und mindestens eines Schlüsselerstellungsparameters an einen zweiten Kommunikationspartner. Das Verfahren umfasst zusätzlich einen Verfahrensschritt zum Erzeugen mindestens eines öffentlichen Schlüssels mittels einer Schlüsselerzeugungsfunktion unter Verwendung des öffentlichen primären Startwerts und des mindestens einen Schlüsselerstellungsparameters durch den zweiten Kommunikationspartner, wobei der mindestens eine öffentliche Schlüssel als Sicherheitsinformation für den ersten Kommunikationspartner verwendbar ist.
-
Durch das Verfahren ist es möglich, eine Datenstruktur mit langfristig gültigen Sicherheitsinformationen, beispielsweise ein digitales Zertifikat, bereitzustellen. Das Zertifikat weist dabei keinen öffentlichen Schlüssel auf, der für eine kryptographische Operation, beispielsweise das Prüfen der Authentizität des Zertifikats, verwendbar ist. Stattdessen weist das Zertifikat einen öffentlichen Startwert auf, der zusammen mit den Schlüsselerstellungsparametern dazu verwendet wird, einen öffentlichen Schlüssel für die kryptographische Operation zu erzeugen. Die Schlüsselerzeugungsparameter, die beispielsweise ebenfalls in der Datenstruktur enthalten sein können, können zusätzlich einen Gültigkeitszeitraum für einen öffentlichen Schlüssel angeben und welchen Sicherheitsanforderungen dieser genügen muss. Ist der Gültigkeitszeitraum für den öffentlichen Schlüssel abgelaufen, so kann der zweite Kommunikationspartner einen neuen öffentlichen Schlüssel generieren, der die von nun an gültigen Sicherheitsanforderungen erfüllt. Dies hat den Vorteil, dass keine für einen neu bestimmten öffentlichen Schlüssel spezifische Datenstruktur erzeugt und verteilt werden muss.
-
Der öffentliche Schlüssel ist dabei deterministisch aus dem öffentlichen Startwert erzeugbar, sofern die gleichen Schlüsselerzeugungsparameter bei der Erzeugung des öffentlichen Schlüssels verwendet werden. Dabei ist unter deterministisch zu verstehen, dass der öffentliche Schlüssel aus dem öffentlichen Startwert eindeutig reproduzierbar erzeugbar ist.
-
Es kann somit mit dem öffentlichen Startwert und den Schlüsselerzeugungsparametern ein öffentlicher Schlüssel erstellt werden, der für einen ersten Gültigkeitszeitraum gilt. Ist der erste Gültigkeitszeitraum abgelaufen, so wird für einen zweiten Gültigkeitszeitraum ein neuer öffentlicher Schlüssel erstellt, ohne eine neue Datenstruktur, beispielsweise ein digitales Zertifikat, erzeugen und austauschen zu müssen.
-
Bei einer ersten Ausführungsform des Verfahrens wird der mindestens eine öffentliche Schlüssel mittels der Schlüsselerzeugungsfunktion unter Verwendung des öffentlichen Startwerts und dem mindestens einem Schlüsselerstellungsparameter für den ersten Kommunikationspartner erzeugt.
-
Der erste Kommunikationspartner, der die Datenstruktur bereitstellt, erzeugt ebenfalls den identischen öffentlichen Schlüssel, den der zweite Kommunikationspartner erzeugt, damit dieser für kryptographische Operationen, beispielsweise eine Validierung einer digitale Signatur, einsetzbar ist.
-
Bei weiteren Ausführungsformen des Verfahrens wird im ersten Kommunikationspartner jeweils ein privater Schlüssel aus jeweils einem öffentlichen Schlüssel für ein asymmetrisches Kryptoverfahren berechnet.
-
Durch das Erzeugen eines passenden privaten Schlüssels aus dem öffentlichen Schlüssel kann der erste Kommunikationspartner kryptographische Dienste, beispielsweise verschlüsselte Kommunikationsverbindungen oder Authentifizierungsdienste, für weitere Kommunikationspartner, beispielsweise den zweiten Kommunikationspartner, bereitstellen. Der zweite Kommunikationspartner benötigt zur Inanspruchnahme der Dienste keinen öffentlichen Schlüssel, der vom ersten Kommunikationspartner gesendet wurde. Stattdessen erzeugt der zweite Kommunikationspartner die notwendigen öffentlichen Schlüssel anhand des öffentlichen Startwertes und der Schlüsselerzeugungsparameter. Dies spart Bandbreite, die ansonsten bei einer mehrfachen Übertragung der öffentlichen Schlüssel entstehen würde und verhindert eine Manipulation der Schlüssel bei einer Übertragung.
-
Bei weiteren Ausführungsformen des Verfahrens wird beim Berechnen des privaten Schlüssels mindestens ein geheimer Schlüsselerstellungsparameter verwendet, wobei der mindestens eine geheime Schlüsselerstellungsparameter insbesondere ein Produkt von zwei verschiedenen Primzahlen umfasst.
-
Zur Erzeugung des privaten Schlüssels werden geheime Schlüsselerzeugungsparameter verwendet. Dies hat den Vorteil, dass der private Schlüssel einfach erzeugt werden kann.
-
Bei weiteren Ausführungsformen des Verfahrens ist die Datenstruktur ein digitales Zertifikat.
-
Dabei enthält das digitale Zertifikat jedoch einen öffentlichen Startwert, aus dem eine Vielzahl von öffentlichen Schlüsseln bildbar ist, anstatt eines öffentlichen Schlüssels für ein bestimmtes kryptographisches Verfahren. Durch die Verwendung eines öffentlichen Startwertes anstelle eines öffentlichen Schlüssels, lässt sich das Zertifikat derart nutzen, dass es langfristig Sicherheitsanforderungen unterstützt, die beispielsweise zum Ausstellungszeitpunkt noch nicht benötigt werden. Es können öffentliche Schlüssel für unterschiedliche kryptographische Verfahren gebildet werden. Diese können unterschiedliche Schlüssellänge aufweisen. Weiterhin können mehrere öffentliche Schlüssel gebildet werden, denen unterschiedlichen Nutzungsperioden zugeordnet sind.
-
Bei weiteren Ausführungsformen des Verfahrens umfasst der mindestens eine Schlüsselerstellungsparameter eine erste Kennung für die Schlüsselerzeugungsfunktion.
-
Durch die erste Kennung, beispielsweise ein eindeutiger Identifizierer in Form einer Zeichenkette, ist das Verfahren derart flexibel, dass unterschiedliche Schlüsselerstellungsfunktionen für die Erzeugung des öffentlichen Schlüssels unterstützt werden. Dies ist insbesondere bei der Unterstützung von langfristig gültigen Sicherheitsinformationen wichtig, da eine bestimmte Schlüsselerzeugungsfunktion ab einem bestimmten Zeitpunkt als nicht mehr sicher gelten kann. Der Schlüsselerzeugungsparameter kann dann für den zweiten Kommunikationspartner aktualisiert werden ohne die Datenstruktur auszutauschen, um von nun an eine andere Schlüsselerzeugungsfunktion zu nutzen.
-
Bei weiteren Ausführungsformen des Verfahrens umfasst der mindestens eine Schlüsselerstellungsparameter eine zweite Kennung für das asymmetrische Kryptoverfahren.
-
Durch die zweite Kennung, beispielsweise ein eindeutiger Identifizierer in Form einer Zeichenkette, ist das Verfahren derart flexibel, dass unterschiedliche asymmetrische Kryptoverfahren für kryptographischen Operationen nutzbar sind. Dies ist insbesondere bei der Unterstützung von langfristig gültigen Sicherheitsinformationen wichtig, da ein bestimmtes asymmetrisches Kryptoverfahren ab einem bestimmten Zeitpunkt als nicht mehr sicher gelten kann. Das asymmetrische Kryptoverfahren kann dann für den zweiten Kommunikationspartner geändert werden ohne die Datenstruktur auszutauschen, um von nun an ein anderes asymmetrische Kryptoverfahren zu nutzen.
-
Bei weiteren Ausführungsformen des Verfahrens werden unterschiedliche öffentliche Schlüssel aus einem öffentlichen Startwert erzeugt, indem jeweils mindestens ein weiterer Schlüsselerzeugungsparameter in die Erzeugung des öffentlichen Schlüssels eingeht.
-
Dadurch dass unterschiedliche öffentliche Schlüssel aus dem öffentlichen Startwert erzeugbar sind, ist es möglich öffentliche Schlüssel für unterschiedliche kryptographische Dienste, beispielsweise eine verschlüsselte Kommunikation oder eine Signaturprüfung, zu nutzen. Das bedeutet, dass eine hohe Sicherheit für die einzelnen Dienste erreicht wird, da bei dem Verlust eines Schlüssels gegebenenfalls nur ein Dienst betroffen ist.
-
Bei weiteren Ausführungsformen des Verfahrens wird die Datenstruktur mittels des privaten Schlüssels durch den ersten Kommunikationspartner kryptographisch geschützt, wobei eine Integrität und/oder eine Authentizität der Datenstruktur mittels des öffentlichen Schlüssels durch den zweiten Kommunikationspartner festgestellt wird.
-
Um die Datenstruktur beispielsweise gegen Manipulationen oder Übertragungsfehler zu schützen, kann der erste Kommunikationspartner beispielsweise mit dem privaten Schlüssel eine Nachrichtenauthentifizierungscode oder eine digitale Signatur über die Datenstruktur bilden. Der Nachrichtenauthentifizierungscode bzw. die digitale Signatur ist dann beispielsweise ebenfalls in der Datenstruktur enthalten oder wird separat mitgeschickt und kann durch den zweiten Kommunikationspartner geprüft werden.
-
Gemäß einem weiteren Aspekt betrifft die Erfindung einen ersten Kommunikationspartner. Der erste Kommunikationspartner umfasst eine Speichereinrichtung zum Festlegen und/oder Speichern eines öffentlichen Startwertes. Der erste Kommunikationspartner umfasst zusätzlich eine Generierungseinrichtung zum Generieren einer Datenstruktur, welche den öffentlichen Startwert umfasst. Der erste Kommunikationspartner umfasst zusätzlich eine Mitteilungseinrichtung zum Mitteilen der Datenstruktur und mindestens eines Schlüsselerstellungsparameters an einen zweiten Kommunikationspartner. Der erste Kommunikationspartner umfasst zusätzlich eine erste Erzeugungseinrichtung zum Erzeugen mindestens eines öffentlichen Schlüssels mittels einer Schlüsselerzeugungsfunktion unter Verwendung des öffentlichen Startwerts und mindestens einem Schlüsselerstellungsparameter. Der erste Kommunikationspartner umfasst zusätzlich eine zweite Erzeugungseinrichtung zum Berechnen eines privaten Schlüssels aus jeweils einem öffentlichen Schlüssel für ein asymmetrisches Kryptoverfahren. Der erste Kommunikationspartner umfasst zusätzlich eine erste Kryptographieeinrichtung zum Ausführen von kryptographischen Operationen unter Verwendung des privaten Schlüssels und/oder des öffentlichen Schlüssels.
-
Der öffentliche Startwert kann beispielsweise durch den ersten Kommunikationspartner selbst gebildet werden, oder er kann dem ersten Kommunikationspartner von einem externen Kommunikationspartner, beispielsweise bei dessen Fertigung, bereitgestellt werden. Alternativ kann eine von einem externen Kommunikationspartner, beispielsweise einer Zertifizierungsstelle, bereitgestellte Datenstruktur, welche den öffentlichen Startwert umfasst, durch den ersten Kommunikationspartner gespeichert werden.
-
Gemäß einem weiteren Aspekt betrifft die Erfindung einen zweiten Kommunikationspartner. Der zweite Kommunikationspartner umfasst eine Empfangseinrichtung zum Empfangen einer Datenstruktur von einem ersten Kommunikationspartner, wobei die Datenstruktur einen öffentlichen Startwert umfasst. Der zweite Kommunikationspartner umfasst zusätzlich eine dritte Erzeugungseinrichtung zum Erzeugen mindestens eines öffentlichen Schlüssels mittels einer Schlüsselerzeugungsfunktion unter Verwendung des öffentlichen Startwerts und mindestens einem Schlüsselerstellungsparameter. Der zweite Kommunikationspartner umfasst zusätzlich eine zweite Kryptographieeinrichtung zum Ausführen von kryptographischen Operationen unter Verwendung des öffentlichen Schlüssels.
-
Desweiteren wird ein Computerprogrammprodukt beansprucht, mit Programmbefehlen zur Durchführung des genannten erfindungsgemäßen Verfahrens sowie ein Datenträger, der das Computerprogrammprodukt speichert. Ein solcher Datenträger beziehungsweise ein solches Computerprogrammprodukt kann in einem System eingelesen werden und Programmbefehle ausführen, sodass das erfindungsgemäße Verfahren auf einem Computer zur Ausführung gebracht wird.
-
Die oben beschriebenen Eigenschaften, Merkmale und Vorteile dieser Erfindung sowie die Art und Weise, wie diese erreicht werden, werden klarer und deutlicher verständlich im Zusammenhang mit der folgenden Beschreibung der Ausführungsbeispiele, die im Zusammenhang mit den Figuren näher erläutert werden. Dabei zeigen:
-
1 ein Ablaufdiagramm der Verfahrensschritte zur Ausführung des erfindungsgemäßen Verfahrens gemäß einem ersten Ausführungsbeispiel;
-
2 eine schematische Darstellung eines ersten erfindungsgemäßen Kommunikationspartners gemäß einem zweiten Ausführungsbeispiel; und
-
3 eine schematische Darstellung eines zweiten erfindungsgemäßen Kommunikationspartners gemäß dem zweiten Ausführungsbeispiel.
-
In den Figuren sind funktionsgleiche Elemente mit denselben Bezugszeichen versehen, sofern nichts anderes angegeben ist.
-
1 ist ein Ablaufdiagramm der Verfahrensschritte zur Ausführung des Verfahrens gemäß einem ersten Ausführungsbeispiel.
-
Allgemein wird vorgeschlagen, dass eine kryptographisch geschützte Datenstruktur vorzugsweise in Form eines Sicherheitstokens, beispielsweise ein digitales Zertifikat, ein Kerberos Ticket, ein SAML Token oder eine XML Key Management Nachricht, eine Algorithmen-flexible Schlüsselinformation enthält. Dazu kann die Datenstruktur beispielsweise mehrere Schlüssel, beispielsweise öffentliche Schlüssel für das RSA-Verfahren (Rivest, Shamir und Adleman Verfahren), mit unterschiedlichen Schlüssellängen und mit unterschiedlichen Schlüsselerzeugungsparametern, beispielsweise kryptographischen Parameter, bereitstellen.
-
Die mehreren Schlüssel können explizit in der Datenstruktur gespeichert bzw. eincodiert sein. Vorzugsweise enthält die Datenstruktur jedoch eine Information aus der mehrere öffentliche Schlüssel ableitbar bzw. bestimmbar sind. Dazu enthält die Datenstruktur einen öffentlichen Startwert (public primary seed). Dies ist eine Information, beispielsweise in Form einer Bitfolge, aus der mittels einer Schlüsselerzeugungsfunktion, beispielsweise Schlüsselableitungsfunktionen wie die Verfahren HMAC-SHA256 (Keyed-Hash Message Authentication Code – Secure Hash Algorithm) oder PBKDF2 (Password-Based Key Derivation Function 2), unterschiedliche öffentliche Schlüssel ableitbar sind.
-
Dies betrifft insbesondere einen zweiten Kommunikationspartner, beispielsweise einen Server zum Empfangen von Messdaten in einem Kraftwerk, mit dem ein erster Kommunikationspartner, beispielsweise ein Zertifikatseigentümer in Form eines Feldgerätes, kommuniziert. Der zweite Kommunikationspartner erzeugt aus dem öffentlichen Startwert, der beispielsweise in einem Zertifikat enthalten ist, einen öffentlichen Schlüssel für ein asymmetrisches Kryptoverfahren. Dieser öffentliche Schlüssel wird dann für eine Authentisierung oder Schlüsselvereinbarung verwendet.
-
Mit dem Verfahren können beispielsweise Geräte über ein Gerätezertifikat authentisiert werden. Dabei können unterschiedliche asymmetrische Kryptoverfahren und/oder unterschiedliche Schlüssellängen verwendet werden. Zusätzlich können Sicherheitsinformationen, beispielsweise kryptographische Informationen, die den Anforderungen langfristig gültiger Sicherheitsanforderungen (Long Term Security) genügen, verwendet werden.
-
Ein Gerät kann beispielsweise mit einem Gerätezertifikat und dem zugeordneten Schlüssel während der Produktion ausgestattet werden. Der öffentliche Startwert des Gerätezertifikats ist dabei nicht an ein bestimmtes Kryptoverfahren bzw. kryptographischen Algorithmus gebunden. Dieses Gerätezertifikat kann daher mit unterschiedlichen Kryptoverfahren und Schlüssellängen verwendet werden. Dadurch ist es möglich, dass beispielsweise mittels einer Aktualisierung der Firmware oder abhängig von einem Konfigurationsparameter des Gerätes oder des Schlüsselerzeugungsparameters auf beispielsweise stärkere Kryptoverfahren gewechselt werden kann, die eine höhere Sicherheit bietet. Insbesondere kann grundsätzlich selbst auf Algorithmen gewechselt werden, die zum Zeitpunkt der Ausstellung des Security Token noch unbekannt sind. Dazu muss ggf. ein passender privater Schlüssel dem Gerät bereitgestellt werden, soweit er nicht vorkonfiguriert ist. Damit wird der Aufwand für eine öffentliche Schlüsselinfrastruktur (Public Key Infrastructure, PKI) verringert, da nicht für eine Vielzahl von Algorithmen und Schlüssellängen jeweils ein Gerätezertifikat ausgestellt werden muss.
-
Im Einzelnen wird für das Verfahren in einem ersten Verfahrensschritt 110 zunächst der öffentliche Startwert festgelegt. Dies kann beispielsweise mit einem Zufallszahlengenerator erfolgen. Der erste Kommunikationspartner kann den öffentlichen Startwert selbst erzeugen, indem er beispielsweise eine Initialisierungsanweisung erhält. Alternativ kann die Initialisierungsanweisung den öffentlichen Startwert enthalten, der beispielsweise während des Fertigungsprozesses des Gerätes generiert wurde.
-
In einem Verfahrensschritt
120 wird der öffentliche Startwert (subjectSeedKey) in einer Datenstruktur, beispielsweise ein digitales Zertifikat das anstelle eines öffentlichen Schlüssels den öffentlichen Startwert aufweist, gespeichert. Das Zertifikat hat beispielsweise die nachfolgende Struktur, die an ein X.509 Zertifikat angelehnt ist:
-
In einem Verfahrensschritt 130 wird die Datenstruktur und mindestens ein Schlüsselerstellungsparameter einem zweiten Kommunikationspartner mitgeteilt. Hierzu sind beispielsweise die Schlüsselerstellungsparameter in die Datenstruktur eingebettet. Die Schlüsselerstellungsparameter enthalten beispielsweise Informationen über die Schlüsselerzeugungsfunktion („generator“ in dem beispielhaften Zertifikat) und/oder das asymmetrische Kryptoverfahren („algorithm“ in dem beispielhaften Zertifikat). Wenn die Schlüssellänge nicht in der Kennung der verwendeten Algorithmen enthalten ist, kann diese explizit im Feld keyLength angegeben werden.
-
In einem Verfahrensschritt 140 erzeugt der zweite Kommunikationspartner die öffentlichen Schlüssel mittels der Schlüsselerzeugungsfunktion unter Verwendung des öffentlichen Startwerts und des mindestens einen Schlüsselerstellungsparameters. Der öffentliche Schlüssel kann dann als Sicherheitsinformation, beispielsweise zum Authentisieren, des ersten Kommunikationspartners verwendet werden.
-
Damit der erste Kommunikationspartner beispielsweise kryptographische Dienste bereitstellen kann oder auch authentifizierbar ist, muss dieser zunächst den öffentlichen Schlüssel mittels der Schlüsselerzeugungsfunktion unter Verwendung des öffentlichen Startwerts und dem mindestens einen Schlüsselerstellungsparameter erzeugen. Zusätzlich ist es notwendig, dass der erste Kommunikationspartner einen zu dem öffentlichen Schlüssel passenden privaten Schlüssel für ein asymmetrisches Kryptoverfahren berechnet. Beim Berechnen des privaten Schlüssels verwendet der erste Kommunikationspartner mindestens einen geheimen Schlüsselerstellungsparameter, beispielsweise ein Produkt von zwei verschiedenen Primzahlen.
-
Der öffentliche Schlüssel des ersten Kommunikationspartners ist somit nicht im Zertifikat des ersten Kommunikationspartners enthalten. Stattdessen ist ein öffentlicher Startwert enthalten. Aus diesem sind mehrere öffentliche Schlüssel des ersten Kommunikationspartners mittels einer Schlüsselableitungsfunktion ableitbar bzw. erzeugbar.
-
Ein zweiter Kommunikationspartner validiert bei einer Authentisierung des ersten Kommunikationspartners, beispielsweise ein Feldgerät in einer Kraftwerksanlage, ein Zertifikat, beispielsweise ein Gerätezertifikat des ersten Kommunikationspartners. Wird das Zertifikat erfolgreich validiert, so wird das Zertifikat als gültig erachtet und der darin enthaltene öffentliche Startwert als vertrauenswürdig angenommen.
-
Abhängig von den Schlüsselerzeugungsparametern, also den ausgewählten Kryptoverfahren und Parametern des Kryptoverfahrens, wie der Schlüssellänge, wird aus dem öffentlichen Startwert ein öffentlicher Schlüssel durch den zweiten Kommunikationspartner abgeleitet. Dazu wird beispielsweise eine Schlüsselableitungsfunktion verwendet, die beispielsweise für symmetrische Schlüssel bekannt ist. Das sind zum Beispiel die Verfahren HMAC-SHA256 oder PBKDF2. Kpub: = KDF(PPS, AlgorithmId || KeyLength) (Formel 1) wobei Kpub der öffentliche Schlüssel ist, KDF die Schlüsselableitungsfunktion, PPS der öffentliche Startwert, AlgorithmID eine Kennung für den Algorithmus zum Erzeugen des öffentlichen Schlüssels und KeyLength die Schlüssellänge angibt. Die Schlüssellänge kann dabei implizit durch die Kennung des Algorithmus bestimmt werden oder aber explizit Teil der Schlüsselerzeugungsparameter sein.
-
Um effektiv asymmetrische Kryptoverfahren zwischen dem ersten Kommunikationspartner und dem zweiten Kommunikationspartner nutzen zu können, muss der erste Kommunikationspartner noch einen passenden privaten Schlüssel zum öffentlichen Schlüssel ableiten. Um diese Berechnung durchführen zu können, werden geheime Schlüsselerstellungsparameter für die Berechnung des privaten Schlüssels benötigt. Wird beispielsweise das RSA-Verfahren verwendet, wird der Parameter N benötigt. N = p·q (Formel 2) wobei N das RSA Modul ist, p eine erste Primzahl und q eine zweite von p unterschiedliche Primzahl. Somit ist N ein Produkt aus zwei unterschiedlichen Primzahlen.
-
Diese Berechnung kann durch den ersten Kommunikationspartner selbst erfolgen, wenn der Parameter N auf dem Gerät vorliegt. Alternativ kann ein Schlüsselerzeugungsserver private Schlüssel für eine Menge von unterstützten Kryptoverfahren und Schlüssellängen berechnen und dem Gerät bereitstellen, beispielsweise bei Fertigung, oder im laufenden Betrieb über eine Online-Kommunikation. Sobald der private Schlüssel erzeugt wurde, wird dieser vorzugsweise auf dem ersten Kommunikationspartner gespeichert.
-
Der öffentliche Startwert kann dabei mit unterschiedlichen kryptographischen Verfahren verwendet werden. Im Prinzip wird anstatt einer Identität als Zeichenkette der öffentliche Startwert angegeben aus dem mittels Schlüsselerzeugungsparameter die Identität bestimmbar ist. Mit anderen Worten dient der öffentliche Schlüssel als Ausgangspunkt, um die Identität zu bestimmen.
-
Das Zertifikat kann zusätzliche Informationen über die zu verwendende Schlüsselerzeugungsfunktion und weitere Schlüsselerzeugungsparameter, beispielsweise Gültigkeitszeitraum, regionaler Gültigkeitsbereich und/oder Gerätetyp, enthalten. Somit geben diese Informationen bzw. Schlüsselerzeugungsparameter an, welche öffentlichen Schlüssel unter welchen Restriktionen ableitbar sind. Beispielsweise kann auch je Schlüsselableitungsfunktion bzw. je ableitbaren Schlüssel jeweils ein Gültigkeitszeitraum angegeben werden.
-
Das Zertifikat bzw. die Datenstruktur ist insbesondere kryptographisch geschützt. Das bedeutet, dass das Zertifikat eine kryptographische Prüfsumme, beispielsweise einen Nachrichtenauthentifizierungscode, umfasst. Auch können grundsätzlich einzelne Einträge oder das gesamte Zertifikat verschlüsselt sein. Es können auch mehrere kryptographische Prüfsummen vorgesehen sein, die mit unterschiedlichen kryptographischen Verfahren erzeugt werden bzw. überprüfbar sind. Diese kryptographischen Prüfsummen sind dann wiederum mit Hilfe eines von dem öffentlichen Startwert abgeleiteten öffentlichen Schlüssels durch den zweiten Kommunikationspartner oder einem anderen Kommunikationspartner prüfbar.
-
Vorzugsweise handelt es sich bei der Datenstruktur um ein Zertifikat mit einem öffentlichen Schlüssel (Public Key Zertifikat), das entsprechend ISO X.509 Standard erzeugt wird. Es kann sich jedoch auch um andere Zertifikatsformate, für symmetrische Sicherheitstoken, wie beispielsweise Kerberos Tickets, SAML Token oder XKMS Token handeln. Insbesondere kann es sich um ein Gerätezertifikat handeln.
-
Eine anwendungsnahe Umsetzung des Verfahrens wird im nachfolgenden Abschnitt erläutert.
-
Beispielsweise bei dem asymmetrischen Kryptoverfahren RSA ist der öffentliche Schlüssel frei wählbar. Dieser hat beispielsweise eine Länge von 216 + 1 bit. Der öffentliche Schlüssel wird zunächst abhängig von dem öffentlichen Startwert gebildet. Dazu kann der öffentliche Schlüssel, wie oben bereits erwähnt, mittels einer Schlüsselerzeugungsfunktion erzeugt werden.
-
Ein öffentlicher RSA Schlüssel Kpub für eine Schlüssellänge von 2048 Bit kann z.B. wie folgt gebildet werden: Kpub: = HMAC-SHA256 (PPS, X1)
|| HMAC-SHA256 (PPS, X2)
|| HMAC-SHA256 (PPS, X3)
|| HMAC-SHA256 (PPS, X4)
|| HMAC-SHA256 (PPS, X5)
|| HMAC-SHA256 (PPS, X6)
|| HMAC-SHA256 (PPS, X7)
|| HMAC-SHA256 (PPS, X8) (Formel 3) wobei HMAC-SHA256 die Schlüsselerzeugungsfunktion ist, PPS der öffentliche Startwert und X1–X8 eine jeweils unterschiedliche Bytefolge, beispielsweise eine frei gewählte Zeichenkette. Der 2048 Bit lange öffentliche RSA Schlüssel besteht somit aus 8 Teilschlüsseln, die mittels des HMAC-SHA256 Verfahren erzeugt wurden und anschließend miteinander verknüpft wurden.
-
In die Bytefolge können auch weitere Informationen eingehen, wie Beispielsweise eine Gültigkeitsinformation in Form einer Jahreszahl. Dadurch ist es möglich, unterschiedliche öffentliche Schlüssel aus einem festen öffentlichen Startwert zu bilden.
-
Die gesamte Schlüsselerzeugung, insbesondere bei einer Initialisierung des ersten Kommunikationspartners, läuft dann beispielsweise bei der Produktion eines Gerätes wie folgt ab:
- • Erzeugen eines öffentlichen Startwertes, beispielsweise zufällig bzw. pseudozufällig, beispielsweise mit der Länge 256 Bit, 512 Bit, oder 1024 Bit oder 2048 Bit.
- • Bestimmen von zwei Primzahlen p, q
- • Berechnen von N = p·q
- • Bestimmen der eulerischen Phi Funktion φ φ(N) = (p – 1)·(q – 1) (Formel 4)
- • Bilden des öffentlichen Schlüssels wie oben beschrieben aus dem öffentlichen Startwert
- • Berechnen des privaten Schlüssels als multiplikatives Inverses zum öffentlichen Schlüssel, beispielsweise mittels des euklidischen Algorithmus.
-
Dies kann dann für unterschiedliche öffentliche Schlüssel wiederholt werden. Es wird weiterhin ein Gerätezertifikat erzeugt, das den öffentlichen Startwert enthält und ähnlich einem X.509 Zertifikat aufgebaut ist.
-
Die 2 zeigt eine schematische Darstellung eines ersten Kommunikationspartners gemäß einem zweiten Ausführungsbeispiel.
-
Der erste Kommunikationspartner 200, beispielsweise ein Feldgerät in einer Kraftwerksanlage, umfasst eine Speichereinrichtung 210, eine Generierungseinrichtung 220, eine Mitteilungseinrichtung 230, eine erste Erzeugungseinrichtung 240, eine zweite Erzeugungseinrichtung 250 und eine erste Kryptographieeinrichtung 260, die mittels eines Datenbusses 270 miteinander kommunikativ verbunden sind.
-
Die Speichereinrichtung 210 ist zum Festlegen und/oder Speichern eines öffentlichen Startwertes ausgelegt. Die Generierungsfunktion 220 generiert eine Datenstruktur, beispielsweise eine Zertifikat, welche den öffentlichen Startwert umfasst. Die Mitteilungseinrichtung 230 sendet dann beispielsweise über eine Netzwerkverbindung, beispielsweise ein Tokenring-Netzwerk oder ein Ethernet, oder innerhalb eines Gerätes über einen Datenbus, beispielsweise einem Peripheral Component Interconnect (PCI) Bus, die Datenstruktur und mindestens einen Schlüsselerstellungsparameter, beispielsweise die Schlüsselerzeugungsfunktion, das verwendete asymmetrische Kryptoverfahren zur Authentifizierung und/oder einen Gültigkeitszeitraum, an einen zweiten Kommunikationspartner.
-
Die erste Schlüsselerzeugungseinrichtung 240 erzeugt dann beispielsweise mit einer Schlüsselerzeugungsfunktion, die in den Schlüsselerstellungsparametern spezifiziert ist, und weiteren Schlüsselerstellungsparametern zwei öffentliche Schlüssel für zwei unterschiedliche Gültigkeitszeiträume. Die Gültigkeitszeiträume sind beispielsweise ebenfalls in den Schlüsselerstellungsparametern spezifiziert.
-
Die zweite Erzeugungseinrichtung 250 berechnet, wie in der Beschreibung zum ersten Ausführungsbeispiels näher erläutert, einen privaten Schlüssel aus jeweils einen öffentlichen Schlüssel für ein asymmetrisches Kryptoverfahren, beispielsweise das RSA-Verfahren.
-
Die erste Kryptographieeinrichtung 260 nutzt den privaten Schlüssel und/oder den öffentlichen Schlüssel zum Ausführen von kryptographischen Operationen. So werden beispielsweise Informationen für ein digitales Zertifikat durch den ersten Kommunikationspartner bereitgestellt, sodass ein zweiter Kommunikationspartner die Authentizität des ersten Kommunikationspartners mit Hilfe der Datenstruktur in Form eines Zertifikats feststellen kann.
-
Die 3 zeigt eine schematische Darstellung eines zweiten Kommunikationspartners gemäß dem zweiten Ausführungsbeispiel.
-
Der zweite Kommunikationspartner 300, beispielsweise eine Steuerungsanlage in einer Kraftwerksanlage, die Daten von einem ersten Kommunikationspartner, beispielsweise ein bestimmtes Feldgerät, verarbeiten soll, umfasst eine Empfangseinrichtung 310, eine dritte Erzeugungseinrichtung 320 und eine zweite Kryptographieeinrichtung 330, die jeweils mittels eines Datenbusses 370 miteinander kommunikativ verbunden sind.
-
Der zweite Kommunikationspartner 300 stellt die Authentizität des ersten Kommunikationspartners, beispielsweise ein Feldgerät einer Kraftwerksanlage, fest, um beispielsweise Daten von dem ersten Kommunikationspartner zu verarbeiten. Hierzu empfängt der zweite Kommunikationspartner mittels der Empfangseinrichtung 310 eine Datenstruktur, beispielsweise ein digitales Zertifikat wie es in der Beschreibung zu 1 erläutert wurde, von dem ersten Kommunikationspartner. Die Datenstruktur umfasst dabei einen öffentlichen Startwert. Eine dritte Erzeugungseinrichtung 320 nutzt zum Erzeugen mindestens eines öffentlichen Schlüssels den öffentlichen Startwert, um mittels einer Schlüsselerzeugungsfunktion und unter Verwendung von mindestens einem Schlüsselerstellungsparameter, der in der Datenstruktur mitgeliefert wurde, diesen öffentlichen Schlüssel zu erzeugen. Die zweite Kryptographieeinrichtung 330 benutzt den öffentlichen Schlüssel um kryptographische Dienste, beispielsweise kryptographische Funktionen, zusammen mit dem ersten Kommunikationspartner nutzen zu können. Ein Beispiels für eine kryptographische Funktion ist die Nutzung des RSA-Verfahrens um beispielsweise die Authentizität des ersten Kommunikationspartners unter Verwendung der Datenstruktur feststellen zu können.
-
Obwohl die Erfindung im Detail durch die Ausführungsbeispiele näher illustriert und beschrieben wurde, so ist die Erfindung nicht durch die offenbarten Beispiele eingeschränkt und andere Variationen können vom Fachmann hieraus abgeleitet werden, ohne den Schutzumfang der Erfindung zu verlassen.
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Nicht-Patentliteratur
-
- ISO X.509 Standard [0056]