-
Die Erfindung betrifft ein Verfahren zum manipulationssicheren Speichern von Daten eines Feldgeräts der Automatisierungstechnik.
-
Aus dem Stand der Technik sind bereits Feldgeräte bekannt geworden, die in industriellen Anlagen zum Einsatz kommen. In der Prozessautomatisierungstechnik ebenso wie in der Fertigungsautomatisierungstechnik werden vielfach Feldgeräte eingesetzt. Als Feldgeräte werden im Prinzip alle Geräte bezeichnet, die prozessnah eingesetzt werden und die prozessrelevante Informationen liefern oder verarbeiten. So werden Feldgeräte zur Erfassung und/oder Beeinflussung von Prozessgrößen verwendet. Zur Erfassung von Prozessgrößen dienen Messgeräte, bzw. Sensoren. Diese werden beispielsweise zur Druck- und Temperaturmessung, Leitfähigkeitsmessung, Durchflussmessung, pH-Messung, Füllstandmessung, etc. verwendet und erfassen die entsprechenden Prozessvariablen Druck, Temperatur, Leitfähigkeit, pH-Wert, Füllstand, Durchfluss etc. Zur Beeinflussung von Prozessgrößen werden Aktoren verwendet. Diese sind beispielsweise Pumpen oder Ventile, die den Durchfluss einer Flüssigkeit in einem Rohr oder den Füllstand in einem Behälter beeinflussen können. Neben den zuvor genannten Messgeräten und Aktoren werden unter Feldgeräten auch Remote I/Os, Funkadapter bzw. allgemein Geräte verstanden, die auf der Feldebene angeordnet sind.
-
Eine Vielzahl solcher Feldgeräte wird von der Endress+Hauser-Gruppe produziert und vertrieben.
-
In modernen Industrieanlagen sind Feldgeräte in der Regel über Kommunikationsnetzwerke wie beispielsweise Feldbusse (Profibus®, Foundation® Fieldbus, HART®, etc.) mit übergeordneten Einheiten verbunden. Normalerweise handelt es sich bei den übergeordneten Einheiten um Steuereinheiten, wie beispielsweise eine SPS (speicherprogrammierbare Steuerung) oder einen PLC (Programmable Logic Controller). Die übergeordneten Einheiten dienen unter anderem zur Prozesssteuerung, sowie zur Inbetriebnahme der Feldgeräte. Die von den Feldgeräten, insbesondere von Sensoren, erfassten Messwerte werden über das jeweilige Bussystem an eine (oder gegebenenfalls mehrere) übergeordnete Einheit(en) übermittelt, die die Messwerte gegebenenfalls weiterverarbeiten und an den Leitstand der Anlage weiterleiten. Der Leitstand dient zur Prozessvisualisierung, Prozessüberwachung und Prozessteuerung über die übergeordneten Einheiten. Daneben ist auch eine Datenübertragung von der übergeordneten Einheit über das Bussystem an die Feldgeräte erforderlich, insbesondere zur Konfiguration und Parametrierung von Feldgeräten sowie zur Ansteuerung von Aktoren.
-
Feldgeräte erstellen und/oder verarbeiten eine Vielzahl unterschiedlicher Daten. Bei diesen Daten handelt es sich neben bereits oben genannten Messdaten von Sensoren, durch welche ein Anlagenbetreiber Informationen über die aktuellen Prozesswerte der Messstellen seiner Anlage erhält, beispielsweise um Steuerdaten, bspw. zur Stellregelung eines Aktors. Des Weiteren handelt es sich bei den Daten um Diagnose-, Historien-, und/oder Statusdaten, durch die der Anlagenbetreiber über Probleme der Feldgeräte, bzw. dem aktuellen Status der einzelnen Feldgeräte informiert wird, oder um Kalibrier-/Parametrierdaten.
-
Heutzutage ist es üblich, diese Daten an einer zentralen Stelle in der Anlage zu speichern, beispielsweise in einer Datenbank in einem Workstation-PC in der Leitebene der Anlage. Dies ist jedoch mit Nachteilen verbunden: Fällt die Datenbank aus, bzw. wird die Datenbank zerstört, bzw. unlesbar, so sind die auf dieser Datenbank gespeicherten Daten verloren.
-
Des Weiteren sind die Daten manipulierbar, da sie häufig unverschlüsselt über das Kommunikationsnetzwerk gesendet werden, bzw. unverschlüsselt auf der Datenbank abgelegt werden. Werden Daten im Nachhinein manipuliert, so kann dies nur sehr schwer nachverfolgt werden, bzw. aufgrund der Vielzahl an gespeicherten Daten mitunter erst sehr spät bemerkt werden.
-
Ausgehend von dieser Problematik liegt der Erfindung die Aufgabe zugrunde, ein Verfahren vorzustellen, welches es erlaubt, Daten einer Vielzahl von Feldgeräten in einer Anlage der Prozessautomatisierung auf (manipulations)sichere Art und Weise zu speichern.
-
Die Aufgabe wird durch ein Verfahren zum manipulationssicheren Speichern von Daten eines Feldgeräts der Automatisierungstechnik gelöst, wobei das Feldgerät einen Sensor und/oder Aktor und eine Elektronikeinheit aufweist, wobei das Feldgerät Daten generiert, bei denen es sich insbesondere um Messdaten, Steuerdaten, Historiendaten, Parametrierdaten, Diagnose- und/oder Statusdaten handelt, umfassend:
- – Erstellen zumindest einer Transaktion, wobei die Transaktion generierte Daten des Feldgeräts enthält;
- – Speichern der Transaktion in einem Datenblock, wobei der Datenblock entsprechend einem Datenblock der Blockchain-Technologie ausgestaltet ist und somit ein Datenfeld, enthaltend gespeicherte Transaktionen, und einen Hashwert aufweist;
- – Verknüpfen des Datenblocks mit zu früheren Zeitpunkten erstellten Datenblöcken, indem der Hashwert des Datenblocks aus den in der Transaktion enthaltenen Daten sowie dem Hashwert eines vorherigen Datenblocks berechnet wird;
- – Speichern des Datenblocks in einer Service-Plattform, wobei in der Service-Plattform die zu früheren Zeitpunkten erstellten Datenblöcke gespeichert sind;
- – Erstellen und Speichern eines Sicherheits-Datenblocks in der Service-Plattform, wobei im Datenfeld des Sicherheits-Datenblocks zusätzlich zu oder alternativ gespeicherten Transaktionen der Hashwert des vorherigen Datenblocks enthalten ist, wobei der Hashwert des vorherigen Datenblocks mit einem ersten privaten Schlüssel signiert ist.
-
Der große Vorteil des erfindungsgemäßen Verfahrens besteht darin, dass Daten manipulationssicher in Form von Datenblöcken gespeichert werden. Das Datenfeld eines Datenblocks enthält sämtliche Transaktionen, welche nach dem Zeitpunkt des Erstellens des letzten Datenblocks generiert wurden. Diese Transaktionen werden über einen Algorithmus zu einem Zwischenwert verrechnet, beispielsweise wird die „Merkle Root“ aller im Datenfeld des Datenblocks enthaltenen Transaktionen errechnet. Der Hashwert des Datenblocks wird aus diesem Zwischenwert und dem Hashwert des vorangehenden Datenblocks erzeugt. Eine Aneinanderreihung mehrerer Datenblöcke wird als Blockchain bezeichnet. Dadurch, dass die in einem Datenblock gespeicherten Daten zu einem Hashwert berechnet werden, können diese Daten nicht verändert/manipuliert werden, ohne den Hashwert des Datenblocks und somit die jeweiligen Hashwerte aller nachfolgenden Datenblöcke zu verändern.
-
Selbst wenn es einem Angreifer gelingen sollte, Daten eines Datenblocks zu manipulieren, sowie die Hashwerte der nachfolgenden Datenblöcke konform zu dem manipulierten Datenblock zu verändern, kann eine Manipulation auf einfache Art und Weise detektiert werden. Der Sicherheitsdatenblock enthält in seinem Datenfeld nämlich den Hashwert des vorherigen Datenblocks, welcher mittels eines ersten privaten Schlüssels signiert ist. Der erste private Schlüssel ist lediglich dem Besitzer des Feldgeräts und/oder dem Betreiber der Serviceplattform bekannt. Ein Angreifer kann diesen gespeicherten Hashwert daher ohne Kenntnis des ersten privaten Schlüssels nicht manipulieren. In dem Falle, dass, wie oben beschrieben, Hashwerte der Datenblöcke bearbeitet werden, um die Konformität der Blockchain zu erhalten, wird der im Datenfeld des Sicherheits-Datenblocks gespeicherte, signierte Hashwert des dem Sicherheits-Datenblock vorangehenden Datenblocks nicht verändert. Durch Abgleich des Hashwerts des vorangehenden Datenblocks mit dem signierten Hashwert kann eine Manipulation detektiert werden, da sich der Hashwert des vorangehenden Datenblocks im Falle einer Manipulation von dem im Datenfeld des Sicherheits-Datenblocks gespeicherten Hashwert unterscheidet.
-
Das Feldgerät ist vorzugsweise direkt oder indirekt – beispielsweise mittels eines Feldbusses der Automatisierungstechnik, der mit einem Internetfähigen Gerät, vorzugsweise einem Gateway oder einem Edge Device in Kommunikationsverbindung steht – mit dem Internet verbunden. Über das Internet kontaktiert das Feldgerät die Service-Plattform und sendet dieser seine generierten Daten. Die Service-Plattform selbst erstellt die Transaktionen, sowie die die Transaktionen enthaltenden Datenblöcke, und speichert diese.
-
Feldgeräte, welche im Zusammenhang mit dem erfindungsgemäßen Verfahren genannt werden, sind bereits im einleitenden Teil der Beschreibung beispielhaft beschrieben.
-
Eine bevorzugte Ausgestaltung des erfindungsgemäßen Verfahrens sieht vor, dass die Service-Plattform zumindest eine Datenbank umfasst, in der die Datenblöcke, bzw. die Sicherheits-Datenblöcke, zentral über eine Client-Server-Architektur gespeichert werden. Wie bereits oben genannt dient das Feldgerät lediglich als Ersteller der Daten und sendet diese Daten an die Service-Plattform, in der die Transaktionen und die Datenblöcke, bzw. die Sicherheits-Datenblöcke, erstellt werden. Das Feldgerät muss daher zur Ausführung des erfindungsgemäßen Verfahrens nicht aufgerüstet werden, wodurch keine zusätzlicher Zeit- und Kostenaufwand entsteht.
-
Gemäß einer vorteilhaften Weiterbildung des erfindungsgemäßen Systems ist vorgesehen, dass die Service-Plattform dezentral mit Hilfe einer Blockchain Technologie betrieben wird und aus einer Vielzahl von Teilnehmerknoten besteht, wobei die Teilnehmerknoten Datenblöcke, bzw. Sicherheits-Datenblöcke, erstellen, wobei in jedem Teilnehmerknoten jeweils zumindest eine Datenbank integriert wird, und wobei die Datenblöcke, bzw. die Sicherheits-Datenblöcke, dezentral in den Datenbanken gespeichert werden. Ein Teilnehmerknoten wird von einer Recheneinheit gebildet. Die verschiedenen Teilnehmerknoten sind miteinander über ein Netzwerk, beispielsweise über das Internet, miteinander verbunden. Das Feldgerät kontaktiert einen der Teilnehmerknoten der Service-Plattform und übermittelt diesem die zu speichernden Daten. Der Teilnehmerknoten übermittelt diese Daten ggf. zur Validierung an alle übrigen Teilnehmerknoten und erstellt daraufhin einen neuen Datenblock, bzw. einen Sicherheits-Datenblock, der die Transaktion und ggf. weitere Transaktionen enthält.
-
Es ist dabei vorgesehen, dass auf allen Datenbanken zu allen Zeitpunkten dieselben Datenblöcke, bzw. Sicherheits-Datenblöcke, daraus folgend also die identischen Daten gespeichert und verfügbar sind. Fallen eine oder mehrere Datenbanken aus, bzw. werden durch einen Angreifer manipuliert, so können die Informationen aus den restlichen Datenbanken ausgelesen werden, wodurch ein vollständiger Datenverlust so gut wie unmöglich ist. Ein Beispiel für eine solche Service-Plattform ist beispielsweise Etherium.
-
Gemäß einer vorteilhaften Ausgestaltung des erfindungsgemäßen Verfahrens ist vorgesehen, dass ein erstellter Datenblock, bzw. Sicherheits-Datenblock, von allen Teilnehmerknoten verifiziert wird und nur dann in der Service-Plattform gespeichert wird, wenn zumindest eine vorgegebene Anzahl aller Teilnehmerknoten den Hashwert des Datenblocks erfolgreich verifiziert. Die Validierung des Datenblocks, bzw. des Sicherheits-Datenblocks, erfolgt derart, dass dessen Hashwert überprüft wird. Nur wenn der gültige Hashwert des vorherigen Datenblocks verwendet wird, kann der Datenblock, bzw. der Sicherheits-Datenblock erfolgreich validiert werden. Dies führt dazu, dass Daten in einem erfolgreich validierten Datenblock nicht geändert werden können, ohne die nachfolgenden Datenblöcke dementsprechend zu verändern. Eine Änderung von Daten erzeugt einen geänderten Zwischenwert, wodurch auch der Hashwert des jeweiligen Datenblocks verändert wird. Der darauffolgende Datenblock passt somit nicht mehr zu seinem vorherigen Datenblock. Daten eines einmal erfolgreich validierten Datenblocks sind dadurch für einen Angreifer nicht mehr veränderbar.
-
In einer besonders vorteilhaften Ausgestaltung des erfindungsgemäßen Verfahrens ist vorgesehen, dass die erstellte Transaktion vor dem Speichern in den Datenblock, bzw. in den Sicherheits-Datenblock, an alle Teilnehmerknoten übermittelt wird und von den Teilnehmerknoten validiert wird und wobei die erstellte Transaktion nur dann in dem Datenblock, bzw. in dem Sicherheits-Datenblock, gespeichert wird, wenn diese von zumindest einem der Teilnehmerknoten erfolgreich validiert wird. Hierdurch wird eine zusätzliche Sicherheitsstufe erzielt. Es wird insbesondere geprüft, ob der Ersteller der Transaktion ein gültiger Teilnehmerknoten ist, bzw. dass die in der Transaktion enthaltenen Daten beispielsweise in einem gültigen Wertebereich liegen.
-
In einer bevorzugten Weiterbildung des erfindungsgemäßen Verfahrens ist vorgesehen, dass das Feldgerät selbst einen Teilnehmerknoten der Service-Plattform bildet und Transaktionen und/oder Datenblöcke, bzw. Sicherheits-Datenblöcke, erstellt. Hierfür muss das Feldgerät jedoch gegebenenfalls über eine ausreichende Leistung und Energie, ggf. zugeführt mittels einer zusätzlichen Energieversorgung, verfügen, da zur Erstellung eines Datenblocks komplexe Algorithmen ausgeführt werden. Im Gegensatz zur Erstellung eines Datenblocks benötigt die Erstellung einer Transaktion erheblich weniger Leistung, so dass das Feldgerät keine zusätzliche Stromversorgung besitzen muss und auch über das Kommunikationsnetzwerk mit Energie versorgt werden kann.
-
Es kann dabei vorgesehen sein dass die zur Erstellung der Transaktionen und/oder der Datenblöcke, bzw. der Sicherheits-Datenblöcke, benötigten Algorithmen in der Elektronikeinheit des Feldgeräts integriert sind oder dass das Feldgerät eine modulare Zusatzelektronikeinheit, insbesondere ein Steckmodul, aufweist, in welchem diese Algorithmen implementiert sind. Die hierfür benötigten Algorithmen/Softwarebefehle können hierfür beispielsweise in Form eines Firmwareupdates auf einen beschreibbaren Speicher in der Elektronikeinheit, bzw. der Zusatzelektronikeinheit geladen werden.
-
Eine besonders vorteilhafte Ausgestaltung des erfindungsgemäßen Verfahrens sieht vor, dass das Feldgerät vor Erstellen der Transaktion den Hashwert des vorherigen Datenblocks erhält und die generierten Daten und/oder den Hashwert des vorherigen Datenblocks mit dem ersten privaten Schlüssel, oder mit einem vom ersten privaten Schlüssel abweichenden zweiten Schlüssel signiert und/oder verschlüsselt. Dies ist ein zusätzlicher Sicherheitsmechanismus, da nun auch die einzelnen Daten der Transaktionen und daraus folgend auch der Datenfelder der Datenblöcke signiert, bzw. verschlüsselt werden. Ohne Kenntnis des ersten, bzw. des zweiten Schlüssels kann ein Angreifer die Daten eines Datenblocks nicht verändern. Bei dem zweiten Schlüssel kann es sich um einen privaten Schlüssel oder um einen öffentlichen Schlüssel handeln, welcher auch asymmetrisch sein kann.
-
Gemäß einer bevorzugten Weiterbildung des erfindungsgemäßen Verfahrens ist vorgesehen, dass der Sicherheits-Datenblock nach definierten Zeitabständen erstellt wird. Vorteilhaft ist es, die Zeitabstände abhängig von der Menge und der Rate an neu erstellten Datenblöcken zu wählen. Insbesondere, wenn neue Datenblöcke vergleichsweise häufig erstellt werden ist es vorteilhaft, kurze Zeitabstände zu wählen.
-
Gemäß einer besonders bevorzugten Ausgestaltung des erfindungsgemäßen Verfahrens ist vorgesehen, dass der signierte Hashwert mittels eines zu dem ersten privaten Schlüssel korrespondierenden öffentlichen Schlüssels verifiziert wird. Mittels des öffentlichen Schlüssels kann die Signatur des Hashwerts im Prinzip von jedem verifiziert werden. Eine Manipulation dieses Hashwertes ist jedoch ohne Kenntnis des ersten privaten Schlüssels nicht möglich.
-
Die Erfindung wird anhand der nachfolgenden Figuren näher erläutert. Es zeigen
-
1: eine Erläuterung von Datenblöcken, welche im erfindungsgemäßen Verfahren zum Einsatz kommen; und
-
2: ein Ausführungsbeispiel des erfindungsgemäßen Verfahrens.
-
1 zeigt eine Erläuterung von Datenblöcken BL1, BL2, SB, welche entsprechend der Blockchain-Technologie ausgestaltet sind und im erfindungsgemäßen Verfahren zum Einsatz kommen. Die Blockchain-Technologie wurde als Basis der Internet-Währung „Bitcoin“ bekannt. Eine Blockchain, also eine Kette verknüpfter Datenblöcke BL1, BL2, SB erlaubt eine hohe Datenintegrität. Im Folgenden sei die Funktionsweise einer Blockchain, ausgestaltet für das erfindungsgemäße Verfahren, kurz erläutert.
-
Ein besagter Datenblock BL1, BL2, SB besteht in der Regel aus zumindest zwei Komponenten: Zum einem ist das ein Datenfeld DF. In diesem Datenfeld DF sind Daten in Form von Transaktionen TA gespeichert. Als Transaktion TA wird eine Übermittlung der Daten von einem ersten Teilnehmerknoten TK zu einem zweiten Teilnehmerknoten TK in einem Kommunikationsnetzwerk KN bezeichnet. Eine Transaktion TA enthält einen übermittelten Wert, in diesem Fall also Daten, sowie den Sender und den Empfänger der Transaktion TA. Als Teilnehmerknoten TK werden alle Geräte bezeichnet, welche die Blockchain-Technologie in dem Kommunikationsnetzwerk KN nutzen.
-
Ein Datenfeld DF eines Datenblocks BL1, BL2, SB enthält zumindest eine Transaktion TA, häufiger mehrere Transaktionen TA.
-
Zum anderen enthält ein Datenblock BL1, BL2, SB eine Prüfsumme #1, #2, #3. Eine solche Prüfsumme #1, #2, #3 ist ein Hashwert und wird durch mitunter aufwendige Berechnungen erstellt. Hierfür werden alle Transaktionen TA des Datenfelds eines Blocks BL1, BL2, SB zu einem Zwischenwert berechnet. Hierfür wird beispielsweise die Merkle-Root der Gesamtzahl der Transaktionen TA berechnet. Auf das genaue Funktionsprinzip wird an dieser Stelle nicht eingegangen. Es sei hierfür beispielsweise auf https://en.wikipedia.org/wiki/Merkle_tree verwiesen.
-
Dieser errechnete Zwischenwert wird anschließend mit der Prüfsumme #1, #2, #3 des vorherigen Datenblocks BL1, BL2, SB zur Prüfsumme #1, #2, #3 des aktuellen Datenblocks BL1, BL2, SB verrechnet. Beispielsweise enthält der in 1 gezeigte Datenblock BL2 eine Prüfsumme #2. Diese Prüfsumme #2 wurde also aus den in dem Datenfeld DF des Datenblocks BL2 gespeicherten Transaktionen TA und der Prüfsumme #1 des vorangehenden Datenblocks BL1 berechnet. Analog dazu enthält der in 1 gezeigte Datenblock SB, ein Sicherheitsdatenblock (dazu später mehr) eine Prüfsumme #3. Diese Prüfsumme #3 wurde also aus den in dem Datenfeld DF des Datenblocks SB gespeicherten Transaktionen TA und der Prüfsumme #2 des vorangehenden Datenblocks BL2 berechnet.
-
Die Integrität der Daten, also die Sicherung der Daten gegen nachträgliche Manipulationen, ist somit durch die Speicherung der Prüfsumme #1, #2 des vorangehenden Datenblocks BL1, BL2 im jeweils nachfolgenden Datenblock BL2, SB gesichert. Eine Blockchain besteht also aus einer Reihe von Datenblöcken BL1, BL2, SB, in denen jeweils eine oder mehrere Transaktionen TA zusammengefasst und mit der Prüfsumme #1, #2, #3 versehen sind. Eine Änderung von Daten erzeugt einen geänderten Zwischenwert, wodurch auch die Prüfsumme #1, #2, #3 des jeweiligen Datenblocks BL1, BL2, SB verändert wird. Der darauffolgende Datenblock BL1, BL2, SB passt somit nicht mehr zu dem vorangehenden Datenblock BL1, BL2, SB. Daten eines einmal erfolgreich validierten Datenblocks BL1, BL2, SB sind dadurch für einen Angreifer nicht mehr veränderbar.
-
Neue Datenblöcke BL1, BL2, SB werden in regelmäßigen Zeitabständen erstellt. In das Datenfeld des neuen Datenblocks BL1, BL2, SB werden alle Transaktionen TA gespeichert, welche nach dem Zeitpunkt der erstellen des letzten Datenblocks BL1, BL2, SB erstellt wurden.
-
Die Komplexität der Blockerstellung kann dadurch erhöht werden, dass die erstellte Prüfsumme #1, #2, #3 ein vorgegebenes Format aufweisen muss. Beispielsweise wird festgelegt, dass die Prüfsumme 24 Stellen lang sein muss, wobei die ersten vier Stellen den Zahlenwert 0 aufweisen müssen. Hierfür wird neben dem Zwischenwert der Transaktionen TA und der Prüfsumme des vorherigen Datenblocks eine zu ermittelnde Zahlenfolge, als „Nonce“ bezeichnet, mit einer festgelegten Länge zur Berechnung der Prüfsumme #1, #2, #3 des aktuellen Datenblocks BL1, BL2, SB verwendet. Die Berechnung der neuen Prüfsumme #1, #2, #3 dauert entsprechend länger, da nur wenige Noncen vorhanden sind, welche zur Berechnung einer Prüfsumme #1, #2, #3 mit den vorgegebenen Kriterien führen. Das Auffinden einer solchen geeigneten Nonce verursacht hierbei den beschriebenen zusätzlichen Zeitaufwand.
-
Nachdem die Prüfsumme #1, #2, #3 eines neuen Datenblocks BL1, BL2, SB erstellt wurde, wird der Datenblock an alle Teilnehmerknoten TK übermittelt. Die Teilnehmerknoten TK überprüfen nun die Prüfsumme #1, #2, #3 des neuen Datenblocks BL1, BL2, SB. Erst nach erfolgreicher Validierung wird der Datenblock BL1, BL2, SB in allen Teilnehmerknoten TK gespeichert. Insbesondere wird hierzu eine erfolgreiche Validierung von mehr als der Hälfte aller Teilnehmerknoten TK benötigt. Ein Angreifer müsste daher zum Einschleusen/Erstellen eines fremden, schädlichen Datenblocks BL1, BL2, SB eine große Anzahl an Teilnehmerknoten TK manipulieren, bzw. kontrollieren, um den eingeschleusten Datenblock BL1, BL2, SB erfolgreich zu validieren. Bei steigender Anzahl an Teilnehmerknoten TK ist dies als so gut wie unmöglich anzusehen.
-
Für die Validierung eines Datenblocks BL1, BL2, SB ist ein wesentlich geringerer Aufwand als zur Erstellung des Datenblocks BL1, BL2, SB nötig. Die Prüfsumme #1, #2, #3 wird rückgerechnet, der Zwischenwert der Transaktionen TA, bzw. die Prüfsumme #1, #2, #3 des vorherigen Datenblocks BL1, BL2, SB zurückgewonnen und mit dem tatsächlichen Zwischenwert, bzw. mit der tatsächlichen Prüfsumme #1, #2, #3 des vorherigen Datenblock BL1, BL2, SB verglichen. Stimmen diese Werte überein, so ist der Datenblock BL1, BL2, SB erfolgreich validiert.
-
Im erfindungsgemäßen Verfahren ist eine weitere Sicherheitsstufe implementiert: Im in 1 gezeigten Ausführungsbeispiel sind zwei normale Datenblöcke BL1, BL2 und ein sogenannter Sicherheits-Datenblock SB gezeigt. Zusätzlich zu den Transaktionen TA ist im Datenfeld DF dieses Sicherheits-Datenblocks SB der Hashwert *#2* des vorangehenden Datenblocks BL2 gespeichert und mit einem privaten Schlüssel signiert. Selbst wenn es einem Angreifer gelingen sollte, Daten eines der dem Sicherheits-Datenblock SB vorangehenden Datenblöcke BL1, BL2 zu manipulieren, sowie die Hashwerte #1, #2, #3 der nachfolgenden Datenblöcke BL1, BL2, SB konform zu dem manipulierten Datenblock BL1, BL2 zu verändern, kann eine Manipulation auf einfache Art und Weise detektiert werden. Der erste private Schlüssel ist lediglich dem Ausführenden des Signaturprozesses bekannt. Ein Angreifer kann diesen im Sicherheits-Datenblock SB gespeicherten Hashwert *#2* daher ohne Kenntnis des ersten privaten Schlüssels nicht manipulieren. In dem Falle, dass Hashwerte #1, #2, #3 der Datenblöcke BL1, BL2 SB bearbeitet werden, um die Konformität der Blockchain zu erhalten, wird der im Datenfeld DF des Sicherheits-Datenblocks SB gespeicherte, signierte Hashwert *#2* des dem Sicherheits-Datenblock SB vorangehenden Datenblocks BL2 nicht verändert. Durch Abgleich des Hashwerts #2 des vorangehenden Datenblocks BL2 mit dem signierten Hashwert *#2* kann eine Manipulation detektiert werden, da sich der Hashwert #2 des vorangehenden Datenblocks BL2 im Falle einer Manipulation von dem im Datenfeld DF des Sicherheits-Datenblocks SB gespeicherten Hashwert *#2* unterscheidet, bzw. die Signatur ungültig ist.
-
Der Zeitpunkt, an dem ein solcher Sicherheits-Datenblock erstellt wird, kann definiert werden und sollte an die Menge und die Rate neu erstellter Datenblöcke BL1, BL2 angepasst werden.
-
2 zeigt eine Ausgestaltung des erfindungsgemäßen Verfahrens. Hierbei ist eine Anlage der Automatisierungstechnik dargestellt. An einem Datenbus D1, bei dem es sich beispielsweise um einen Feldbus der Leitebene, beispielsweise Ethernet handelt, sind mehrere Rechnereinheiten WS1, WS2 in Form von Workstation-PCs in der Leitebene der Anlage angeschlossen. Diese Rechnereinheiten dienen als übergeordnete Einheiten (Leitsystem bzw. Steuereinheit), unter anderem zur Prozessvisualisierung, Prozessüberwachung und zum Engineering wie zum Bedienen und Überwachen von Feldgeräten F1, F2, F3, F4. Über eine Steuereinheit SPS, die beispielsweise als speicherprogrammierbare Steuerung ausgestaltet ist und im Grunde genommen auch als übergeordnete Einheit bezeichnet wird, ist die Leitebene der Anlage mit mehreren Feldgeräten F1, F2, F3, F4 verbunden. Bei den Feldgeräten F1, F2, F3, F4 kann es sich sowohl um Sensoren oder um Aktoren handeln. Der Feldbus FB arbeitet entsprechend nach einem der bekannten Feldbusstandards, z.B. Profibus®, Foundation Fieldbus® oder HART®. Anstatt des Feldbusses FB kann es sich auch um ein Local-Area-, oder um ein Wide-Area-Network, zum Beispiel das Internet, handeln.
-
Die Steuerungseinheit SPS besitzt eine Schnittstelle, über die die Steuerungseinheit SPS an ein weiteres Netzwerk I, in diesem Ausführungsbeispiel das Internet, angeschlossen wird. Über das Internet I ist die Steuerungseinheit SPS mit einer Service-Plattform SP verbunden. Die Service-Plattform SP weist mehrere Teilnehmerknoten TK1, TK2, TK3, TK4 auf. Die Teilnehmerknoten TK1, TK2, TK3, TK4 sind mittels eines Kommunikationsnetzwerks KN miteinander verbunden, sind dazu ausgestaltet, eine Blockchain mit den in 1 beschriebenen Eigenschaften und Funktionen auszuführen und weisen jeweils eine Datenbank DB auf.
-
Über die Steuerungseinheit SPS senden die Feldgeräte F1, F2, F3, F4 ihre generierten Daten über das Internet an die Serviceplattform SP. Eine Definition von Feldgeräten F1, F2, F3, F4 und den möglichen generierten Daten ist bereits im einleitenden Teil der Beschreibung beschrieben. Alternativ können die Daten der Feldgeräte F1, F2, F3, F4 auch über ein anderes, am Feldbus FB angeschlossenes, mit dem Internet I verbundenes Gerät, beispielsweise ein Gateway oder ein Edge-Device, an die Service-Plattform SP übermittelt werden. Es kann auch vorgesehen sein, dass die Feldgeräte F1, F2, F3, F4 jeweils eine eigene Schnittstelle aufweisen, über die die Feldgeräte F1, F2, F3, F4 mit dem Internet I verbunden werden können.
-
Nach Erhalt der Daten der Feldgeräte F1, F2, F3, F4 erstellt ein Teilnehmerknoten TK1, TK2, TK3, TK4 der Service-Plattform eine oder mehrere Transaktionen TA, die die Daten enthalten. Nach Validierung der Transaktionen TA durch alle Teilnehmerknoten TK1, TK2, TK3, TK4 erfolgt, wie in 1 beschrieben, eine Blockerstellung, bzw. eine Erstellung eines Sicherheits-Datenblocks SP und ggf. eine Durchführung der weiteren, in 1 beschriebenen Schritte.
-
Zum Abschluss sind einige Vorteile des erfindungsgemäßen Verfahrens noch einmal aufgeführt:
- – Dezentrale Speicherung der Daten der Anlage in mehreren Datenbanken DB statt in einer zentralen Datenbank DB, wodurch die Verletzlichkeit der Daten gesenkt wird;
- – Integrität der Daten durch Verknüpfung der Datenblöcke BL1, BL2, BL3;
- – Durchlaufen mehrerer Validierungsvorgänge, wodurch nur den Anforderungen genügende Transaktionen TA, bzw. gültige Datenblöcke BL1, BL2, BL3 gespeichert werden;
- – Zusätzlicher Schutz vor Angriffen durch Erstellen eines Sicherheits-Datenblocks SB in vorgegebenen Zeitpunkten, welcher den signierten Hashwert *#2* des vorangehenden Datenblocks BL2 enthält.
-
Es versteht sich von selbst, dass die gezeigten Ausführungsbeispiele ausschließlich beispielhafter Natur sind und das erfindungsgemäße Verfahren mit jeglicher Art und Anordnung von Feldgeräten in einer Anlage der Prozessautomatisierung ausführbar ist.
-
Bezugszeichenliste
-
-
- BL1, BL2
- Datenblock
- D1
- Datenbus
- DB
- Datenbank
- DF
- Datenfeld
- F1, F2, F3, F4
- Feldgerät
- FB
- Feldbus
- KN
- Kommunikationsnetzwerk
- SB
- Sicherheits-Datenblock
- SPS
- Steuereinheit
- SP
- Service-Plattform
- TA
- Transaktion
- TK1, TK2, TK3, TK4
- Teilnehmerknoten
- WS1, WS2
- Workstation-PC
- #1, #2, #3
- Hashwerte der Datenblöcke
- *#2*
- signierter Hashwert
-
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
-
- https://en.wikipedia.org/wiki/Merkle_tree [0030]