Wie kann Blockchain helfen die IT-Sicherheit zu erhöhen?
1.) Sicherheitseigenschaften: Verfügbarkeit der Daten („verteilt und redundant“)
Mithilfe des Peer-to-Peer-Netzwerks der Blockchain-Infrastruktur werden die Daten in der Blockchain auf die Nodes verteilt, also vielfach redundant gespeichert. Damit wird eine sehr hohe Verfügbarkeit der Daten erzielt. Das Peer-to-Peer-Netzwerk muss dafür robust sein, um zuverlässig die Verfügbarkeit der Daten und die Vertrauensdienste erbringen zu können. Auch DDoSAngriffe auf eine Blockchain sollten keinen nachhaltigen Einfluss auf die Funktionalität der Blockchain-Technologie haben.
Aspekte, die bei der Robustheit eine Rolle spielen sind: die Anzahl der Nodes, die Bandbreite zwischen den Nodes sowie die Speicherplatz- und Rechnerkapazität auf den Nodes. Eine Bitcoin-Blockchain ist zum Beispiel größer als 160 Gigabyte. Außerdem muss die Verteilfunktion von neuen Transaktionen und Blöcken robust sein, damit alle Elemente immer vollständig auf allen Nodes verteilt werden.
2.) Sicherheitseigenschaften: Integrität und Authentizität der Daten in den Transaktionen („fälschungssicher/unveränderlich“)
Die Integrität und Authentizität der Daten in den Transaktionen ist eine wichtige Sicherheitseigenschaft, um die Sicherheitsattribute fälschungssicher und unveränderlich umsetzen zu können. Dazu spielt die Kryptografie-Agilität der Blockchain-Technologie eine besondere Rolle.
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. Hash- Funktionen dienen der Blockchain-Adresserzeugung, der notwendigen Verkettung der Blöcke (HashPrev) und der Berechnung des Merkle-Hash-Wertes zur Integritätsüberprüfung aller Transaktionen in einem Block.
Für eine sichere und vertrauenswürdige Nutzung der Blockchain-Technologie müssen das verwendete Public-Key-Verfahren und die Hash-Funktionen 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-Richtlinie steht beschrieben, welche kryptografischen Verfahren und Schlüssellängen genutzt werden sollten, damit sie für die nächsten zehn Jahre als sicher gelten. Die BSI-Empfehlungen aus 2018 zur Nutzung von Kryptografieverfahren lauten zum Beispiel:
- Public-Key-Verfahren: RSA mit einer Schlüssellänge von 3.000 Bit
- Hash-Funktionen: SHA-3 mit einer Hash-Wertlänge von 256 Bit
Außerdem müssen langfristig Post-Quantum-Kryptoverfahren berücksichtigt und genutzt werden. Daher ist bei der Wahl der Krypto-Eigenschaften von Anfang an die Lebensdauer einer Blockchain ins Kalkül zu ziehen, 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 Kryptografieverfahren 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 dies 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.
3.) Sicherheitseigenschaften: Integrität der Blockchain („in der Zeitfolge protokolliert nachvollziehbar“)
Die Sicherheitseigenschaft Integrität der Blockchain ist wichtig, um die Abläufe der Transaktionen in der Zeitfolge nachvollzielen zu können. Für diese Sicherheitseigenschaft wird zusätzlich noch eine geschickte Verwendung der Hash-Funktionen (Transaktionen, Blockverkettung) genutzt.
In Abbildung 2 sind die Elemente eines Blocks exemplarisch für die Bitcoin-Blockchain zu sehen. Der Block Header beinhaltet den Merkle-Hash, einen Hash-Wert der aller Transaktionen in einem Block einschließt und damit den Inhalt eines Blocks überprüfbar macht (siehe Abbildung 3). Timestamp, Difficult und Nonce sind Werte für das Mining-Verfahren.
Mithilfe des Hash-Wertes „HashPrev“ im Block Header wird die Blockverkettung der Blockchain sichergestellt. „HashPrev“ ist das Ergebnis der Hash-Funktion (H) der als Input den letzten Block Header nutzt.
HashPrevn = H (Block-Headern-1)
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 zu Problemen mit unerwünschten Inhalten führen.
4.) Sicherheitseigenschaften: „ohne zentrale Instanz“
Die Blockchain-Technologie bietet „programmiertes Vertrauen“ mithilfe verschiedener IT-Sicherheits- und Vertrauensmechanismen. Alle IT-Sicherheits- und Vertrauensfunktionen sind inhärent als „Security- by-Design“ in die Blockchain-Technologie integriert.
Fü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.[1] Ein Validierungsalgorithmus überprüft die Hash-Werte 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 die Semantik der Elemente überprüft, wie „Stimmt die Blockchain-Adresse?“, „Sind genug Coins vorhanden?“ etc.
Da 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 etc. keine Schwachstellen enthalten und nur das tun, was erwartet wird.