Blockchain Sicherheit - Prof. Dr. Norbert Pohlmann
Blockchain Sicherheit | |
Inhaltsverzeichnis Wie kann die Blockchain Sicherheit diskutiert und bewertet werden?
Um die Sicherheitsaspekte besser diskutieren zu können, wird die „Blockchain“ in die Blockchain-Infrastruktur und die Blockchain-Anwendung unterteilt. Auf der linken Seite sind die Blockchain-Infrastruktur mit dem Peer-to-Peer-Netzwerk, die Nodes mit allen Kommunikations- und Sicherheitsfunktionen und die Blockchain als Datenstruktur. Auf der rechten Seite sind die Blockchain-Anwendung, eine mögliche Blockchain-App, eine Wallet mit dem Schlüssel und die eigentliche Anwendung. Die Transaktionen werden als Schnittstelle zwischen der Blockchain-Infrastruktur und der Blockchain-Anwendung betrachtet. Sicherheit der Blockchain-InfrastrukturGrundsätzlich wird mit der Blockchain-Technologie eine Blockchain erzeugt, in der fälschungssichere verteilte / redundante Datenstrukturen, in denen Transaktionen in der Zeitfolge protokolliert, nachvollziehbar, unveränderlich und ohne zentrale Instanz abgebildet sind. Die Cyber-Sicherheitseigenschaften und die dazu notwendigen Cyber-Sicherheitsmechanismen , die für die Wirksamkeit und Robustheit der Blockchain-Infrastruktur eine wichtige Rolle spielen, sind: Cyber-Sichersicherheitseigenschaft: Verfügbarkeit der DatenCyber-Sicherheitsattribut einer Blockchain: „verteilt“ und „redundant” Aspekte, die bei der Robustheit eine Rolle spielen sind:
Cyber-Sichersicherheitseigenschaft: Integrität und Authentizität der Daten in den TransaktionenCyber-Sicherheitsattribut einer Blockchain: „fälschungssicher/unveränderlich“ Kryptografie-Agilität der Blockchain-Infrastruktur Eine Blockchain-Technologie nutzt ein Public Key-Verfahren für die Signierung und Verifikationen von Transaktionen, um die Echtheit, den Ursprung und die Unversehrtheit der Daten überprüfen zu können. Hashfunktionen dienen der Blockchain-Adresserzeugung, der notwendigen Verkettung der Blöcke (HashPrev) und der Berechnung des Merkle-Hash-Werts zur Integritätsüberprüfung aller Transaktionen in einem Block. Für eine sichere und vertrauenswürdige Nutzung einer Blockchain-Technologie müssen das verwendete Public Key-Verfahren und die Hashfunktionen dem Stand der Technik genügen. Außerdem müssen die passenden Schlüssellängen verwendet werden. Der Stand der Technik kann aus der Technischen Richtlinie des BSI: „Kryptographische Verfahren: Empfehlungen und Schlüssellängen“ entnommen werden. In der BSI – Technische Richtlinie „Kryptographische Verfahren: Empfehlungen und Schlüssellängen“ steht beschrieben, welche kryptografischen Verfahren und Schlüssellängen genutzt werden sollten, damit sie für die nächsten zehn Jahre als sicher gelten: Hashfunktionen müssen ein Mindesthashwertlänge von 256 Bit haben, das RSA eine Schlüssellänge von mindestens 3000 Bit und für elliptische Kurven gilt eine Mindestschlüssellänge von 256 Bit. Außerdem müssen langfristig Post-Quantum-Kryptoverfahren berücksichtigt und genutzt werden. Daher muss die Lebensdauer einer Blockchain-Technologie von Anfang an berücksichtigt werden, damit die Werte in einer Blockchain auch langfristig geschützt werden können (zum Beispiel wenn die Lebensdauer länger als zehn Jahre ist). Bei den Kryptografie-Verfahren spielt aber auch die Schüssel- und Zufallszahlengenerierung eine sicherheitsrelevante Bedeutung. Bei der Erzeugung der Schlüssel besteht das Risiko , dass der Anwender einen zu einfachen Schlüssel wählt. Wird zum Beispiel der eigene Vorname als Schlüssel verwendet, können selbst ungeübte Angreifer diesen leicht erraten. Aus diesem Grund sollten die Schlüssel immer mithilfe von echten Zufallszahlengeneratoren berechnet und der vollständige Schlüsselraum ausgenutzt werden. Darüber hinaus sind Aspekte wie Streuung, Periodizität und Gleichverteilung zu beachten. Wenn es notwendig wird, ein Update mit neuen kryptografischen Verfahren umzusetzen, wird eine Hard Fork notwendig. Die Blockchain-Teilnehmer müssen dann neue Blockchain-Adressen generieren und ihre „Werte“ dahin transferieren. Cyber-Sicherheitseigenschaften: Integrität der BlockchainCyber-Sicherheitsattribut einer Blockchain: „in der Zeitfolge protokolliert nachvollziehbar“ Mithilfe des Hashwerts „HashPrev“ im Block Header wird die Blockverkettung der Blockchain sichergestellt. „HashPrev“ ist das Ergebnis der Hash-Funktion (H), die als Input den letzten Block Header nutzt. Die Blockverkettung ist ein wichtiger Aspekt für die Überprüfbarkeit der Reihenfolge der Blöcke, aber sie macht es unmöglich, die Daten in der Blockchain zu löschen. Dies kann wiederum zu Datenschutzproblemen oder Problemen mit unerwünschten Inhalten führen. Cyber-Sicherheitseigenschaften: „ohne zentrale Instanz“Cyber-Sicherheitsattribut einer Blockchain: Vertrauen durch „Security-by-Design“ Vertrauenswürdigkeitsmechanismen der Blockchain-InfrastrukturFür die Blockchain-Anwendung muss ein passendes Konsensfindungsverfahren, auch in Abhängigkeit der ausgewählten Berechtigungsarchitektur, ausgewählt und genutzt werden, um sicher und vertrauenswürdig arbeiten zu können. Ein Validierungsalgorithmus überprüft die Hashwerte und Signaturen der Transaktionen und auch neue Blöcke, die von der ausgewählten Node erstellt und verteilt worden sind. Zusätzlich werden aber auch die Syntax und Semantik der Elemente überprüft: Stimmt die Blockchain-Adresse? Sind genug Coins vorhanden? usw. Ein Risiko ist die Fremdnutzung von Elementen, wie sie bei Bitcoin festgestellt worden ist. Es wurde wissenschaftlich aufgezeigt, dass in Blockchain-Technologien wie Bitcoin auch Daten in eine Transaktion eingebracht werden können, die mit der Bitcoin-Blockchain nichts zu tun haben. Diese Fremdnutzung ist nicht neu und schon seit 2013 bekannt. Das können zum Beispiel 80 Byte in einem fehlerhaften Output-Daten-String (OP_RETURN) sein. In einem solchen Feld können URLs abgelegt werden, die auf Inhalte anderer Server verweisen. Bilder können in diesem Feld nicht gespeichert werden. Bei dieser Fremdnutzung bleibt die eigentliche Transaktion gültig und wird richtig umgesetzt. Es könnte aber auch zum Beispiel das Feld für die Bitcoin-Adresse des Empfängers oder ein Hashwert sein. Dann liegt die Größenordnung bis zu 92 KByte. Wenn in diesen Feldern andere Daten gespeichert werden, gehen die angegebenen Bitcoins im Input verloren. In 92 KBytes können Bilder untergebracht werden. Diese sind zwar nicht hochauflösend, aber die Inhalte sind gut erkennbar. Bei 0,0007 % wurde eine Fremdnutzung der Transaktionsdaten identifiziert. Das ist wie Steganografie: Daten werden in der Masse von Informationen versteckt. Ein normaler Blockchain-Teilnehmer wird diese Daten nicht sehen, weil er nicht auf Transaktionen zugreift, mit denen er nichts zu tun hat. Diese Daten zu finden bedeutet, dass entsprechende Tools programmiert werden müssen, um die Inhalte für die Fremdnutzung zu finden. Aus diesem Grund sollte als Schutz für die Fremdnutzung die Validierung der Syntax und Semantik so genau wie möglich umgesetzt werden. Eine bessere Möglichkeit ist die Löschung einer gezielten Transaktion, die nur im Konsens durchgeführt werden darf. Sicherheit und Zuverlässigkeit der SoftwareDa die Blockchain-Technologie einen Vertrauensdienst anbietet, spielt die Sicherheit und Zuverlässigkeit der Software eine entscheidende Rolle. Es muss sichergestellt werden, dass die Peer-to-Peer-Mechanismen, die Vertrauenswürdigkeitsmechanismen, die verwendete Kryptografie, die Smart-Contract-Umsetzung usw. keine Schwachstellen enthalten und nur das tun, war erwartet wird. Sicherheit der Blockchain-AnwendungDie Blockchain-Anwendung kann aus einer Blockchain-App bestehen, die Daten von der Anwendung in Transaktionen vom Blockchain-Teilnehmer mit seiner Wallet signiert und in der Blockchain verstetigt. Außerdem werden Transaktionen in der Blockchain-App verifiziert und die Daten von der Anwendung „verarbeitet“. Die Blockchain-App nutzt die Wallet des Blockchain-Teilnehmers, die als Hardware-Sicherheitsmodul (USB-, NFC-Token, …) realisiert ist und in der die Schlüssel gespeichert sind. Die eigentliche Anwendung nutzt die Blockchain-Technologie. Geheimhaltung des gemeinen Schlüssels des Public Key-VerfahrensDie Sicherheit der Blockchain-Technologie hängt auch von der Geheimhaltung der geheimen Schlüssel der Public Key-Verfahren in der Wallet ab. Der geheime Schlüssel muss immer geheim bleiben. Wer den geheimen Schlüssel einer Wallet besitzt, ist in der Lage, über die gesamten Transaktionen der Wallet zu verfügen. Ein Verlust des geheimen Schlüssels bedeutet, dass sämtliche in der Blockchain-Adresse gespeicherten Transaktionen für immer „verloren“ sind. Gefahren bei nicht ausreichendem Schutz des geheimen Schlüssels sind zum Beispiel:
Der Schutz des geheimen Schlüssels in der Wallet sollte mithilfe von Hardware-Security-Modulen realisiert werden (SmartCards, Sec-Token, High-Level-Sicherheitsmodule). Außerdem muss eine unberechtigte Nutzung aktiv verhindert werden. Angreifer erstellt unberechtigt echte TransaktionenIm folgenden Bild wird dargestellt, wie der Angreifer mit dem Besitz der Wallet oder dem unerlaubten Zugriff auf die Wallet des Teilnehmers A echte Transaktionen erstellen und damit manipulieren kann. Schutz der Blockchain-AnwendungWenn die Blockchain-Technologie auf der Node an sich eine hohe Sicherheit bietet, werden die Angreifer über die eigentliche Anwendung, die die Blockchain nutzt, angreifen. Daher muss auch die Blockchain-Anwendung manipulationssicher sein, damit keine erfolgreichen Angriffe umgesetzt werden können. Das folgende Bild zeigt, wie ein Angreifer auf dem IT-System des Blockchain-Teilnehmers eine Malware positioniert hat und damit die Blockchain und die Anwendung manipulieren kann. Sowohl ausgehende Transaktionen des entsprechenden Teilnehmers können vor der Sendung an die Blockchain-Infrastruktur manipuliert werden, als auch „eigene“ Transaktionen und von anderen Teilnehmern, die aus der Blockchain ausgelesen und vor der Weiterleitung manipuliert werden.
Vertrauenswürdige LaufzeitumgebungUm Malware-Angriffe auf Blockchain-Anwendungen zu verhindern, müssen diese in einer vertrauenswürdigen Laufzeitumgebung betrieben werden. Vertrauenswürdige Laufzeitumgebungen können auf den Technologiefeldern „Trusted Computing “, „Trusted Execution Environment“ und „Sandboxing“ umgesetzt werden. Weitere Informationen zum Begriff “Blockchain Sicherheit”
„Eine vertrauenswürdige Zusammenarbeit mit Hilfe der Blockchain-Technologie“ „Blockchain als Echtheitsgarant – Sicherung von digitalen Zeugnissen und Nachweisen“ „Blockchain-Technologie revolutioniert das digitale Business“ „Validierung digitaler Nachweise mit der Blockchain“ „Kryptografie wird Währung – Bitcoin: Geldverkehr ohne Banken“ „Wie Sicherheit im Internet messbar wird“ „IT-Sicherheit konsequent und effizient umsetzen“ „Übungsaufgaben und Ergebnisse zu Kapitel 14: Blockchain-Technologie“ „Bücher im Bereich Cyber-Sicherheit und IT-Sicherheit zum kostenlosen Download“ „Blockchain-Sicherheit – Robustheit und Effizienz“ „Wie sicher ist eigentlich die Blockchain?“ „Wissenschaftliche Perspektiven im Bereich Blockchain“
„Master-Studiengang Internet-Sicherheit (IT-Sicherheit, Cyber-Sicherheit)“ „Vertrauenswürdigkeits-Plattform“ Zurück zur Übersicht Summary Article Name Blockchain Sicherheit Description Für die Blockchain Sicherheit müssen Kommunikations-, Sicherheits- und Vertrauenswürdigkeitsaspekte berücksichtigt werden. Dabei werden die verschiedenen Sicherheitsaspekte in die Blockchain-Infrastruktur und die Blockchain-Anwendung unterteilt. Author Prof. Norbert Pohlmann Publisher Name Institut für Internet-Sicherheit – if(is) Publisher Logo | |