So kann Sicherheit in Blockchain-Anwendungen eingebaut werden – Teil 1: Wie Blockchains funktionieren und private Schlüssel nutzen

Von Stephen Evanczuk

Zur Verfügung gestellt von Nordamerikanische Fachredakteure von DigiKey

Anmerkung des Herausgebers: Die Details der Blockchain-Technologie und ihrer Transaktionsmethoden sind komplex, aber in Teil 1 unserer zweiteiligen Serie wird ein Überblick über den Aufbau von Blockchains und ihrem Transaktionsprozess gegeben. Damit wird deutlich werden, warum der Schutz privater Schlüssel von zentraler Bedeutung für die Sicherheit von Blockchains ist; gleichzeitig wird damit zu einer schlüsselfertigen Lösung zur Sicherung privater Schlüssel übergeleitet. Teil 2 wird dann zeigen, wie Entwickler Blockchain-Transaktionen mithilfe dieser schlüsselfertigen, hardwarebasierten Lösung einfacher schützen können.

Eine treibende Kraft bei der Entwicklung der Blockchain-Technologie waren Sicherheitsbedenken, ein Punkt, der vielen Entwicklern im Bereich Kryptowährungen nur allzu vertraut ist. Überdies kann die Blockchain-Technologie Entwicklern aber auch eine sichere Infrastruktur mit umfassenden Anwendungsmöglichkeiten bieten. So macht ihre dezentrale Architektur eine zentrale Instanz überflüssig, da sie auf private Schlüssel und Kryptographiemethoden setzt, um Vermögenswerte und deren Austausch unter Parteien zu schützen. Dementsprechend hängt die Sicherheit eines Blockchain-Systems auch ganz entscheidend von der Sicherheit der Schlüssel und ihrer ordnungsgemäßen Verwendung in robusten Algorithmen ab.

Zwar sind entsprechende Algorithmen verfügbar, doch die Implementierung erfordert ein erhebliches Maß an Wissen und Erfahrung, um eine sichere Lösung zu erarbeiten und diese in die Zielanwendung einzubinden. Aus diesem Grund brauchen Entwickler einen einfacheren Weg, um die Sicherheit von Schlüsseln bei den neuen Blockchain-Anwendungen zu gewährleisten.

In diesem Artikel nun wird beschrieben, warum die Blockchain-Technologie von solchem Interesse ist und wie sie funktioniert, ehe im Anschluss eine hardwarebasierte Lösung für die Blockchain-Sicherheit von Infineon Technologies vorgestellt wird.

Die zunehmende Verbreitung von Blockchains

In nahezu allen Bereichen der Gesellschaft hat die Blockchain-Technologie Aufmerksamkeit erregt, mit einem breiten Spektrum an Anwendungen, die von Kryptowährungen über den Identitätsschutz bis hin zur Verwaltung von Lieferketten und Wahlvorgängen reichen. Häufig wird sie auch als Distributed-Ledger-Technologie („Technik verteilter Kassenbücher“) bezeichnet und ist durch ihre Kombination aus Dezentralisierung, Authentifizierung und Datensatzspeicherung interessant, da sie damit eine zentrale Instanz für die Überwachung bzw. einen Zwischenhändler für die Durchführung der Transaktionen überflüssig macht.

Finanzinstitutionen spricht die Technologie an, weil sie das Potenzial für schnellere und günstigere Zahlungsmechanismen gegenüber den mit den aktuellen Technologien und Verfahren verfügbaren Mechanismen bietet. Vom Finanztechnologiebereich abgesehen sind Blockchains auch für Unternehmen interessant, die sich mit der Validierung von Identitäten und der Nachverfolgbarkeit von Transaktionen beschäftigen, da die Technik eine „Datensatzspur“ hervorbringt, die authentifiziert und praktisch unveränderlich ist (sie ändert sich nie). Die Unveränderlichkeit einer Blockchain ist dabei in der Art ihres Aufbaus begründet, ihre Authentizität wiederum in der Art der Durchführung der Transaktionen.

Die Technologie hängt grundlegend von der Fähigkeit ab, die geheimen Schlüssel, die beim Bau der zur Übertragung von Transaktionen genutzten Blöcke verwendet werden, zu schützen. Auch wenn die Details der Blockchain-Technologie und ihrer Transaktionsmethoden den Rahmen dieses Artikels bei weitem sprengen würden, so soll zumindest ein grober Überblick über den Aufbau der Blockchain-Technologie und ihrer Transaktionsmethoden gegeben werden, um so aufzuzeigen, warum der Schutz privater Schlüssel so wichtig für die Sicherheit von Blockchains ist. Zu beachten ist allerdings, dass echte Blockchain-Systeme auf weitaus komplexeren Strukturen und Protokollen beruhen als in diesem vereinfachten und konzeptionellen Überblick über die Blockchain-Technologie beschrieben.

Unveränderliche Ketten

Eine Blockchain ist, wie der Name es auf Englisch schon sagt, eine Kette („chain“) von Blöcken, mit denen eine Reihe von Transaktionen dokumentiert wird. Die strukturellen Details und Protokolle, die bei öffentlich zugänglichen Blockchains wie Bitcoin und Ethereum zum Einsatz kommen, können sich dabei erheblich von privaten Blockchains unterscheiden, die von einer einzelnen Organisation genutzt werden. Zudem gibt es auch halbprivate Blockchains, sogenannte permissioned Blockchains, die von einer Gruppe von zusammenarbeitenden Unternehmen verwendet werden.

In jeder Art von Blockchain bauen die Grundlagen des Blocks jedoch auf einigen gemeinsamen Elementen auf (Abbildung 1):

  • Dem Hash-Wert des vorhergehenden Blocks (Prev_Hash), der jeweils als Bindeglied in der Blockkette dient
  • Den mit einem Block verbundenen Transaktionen, die durch die Wurzel (Tx_Root) eines Baums dargestellt werden, genannt „Hash-Tree“ oder „Merkle-Tree“, mit den Hashes (Hashi) der Transaktionen (Txi)
  • Einer sogenannte Nonce, die bei der Erzeugung gültiger Blöcke eine Rolle spielt
  • Einem Zeitstempel, der die Zeit, zu der der Block erstellt wurde, aufzeichnet

Vereinfachte Darstellung einer Bitcoin-BlockchainAbbildung 1: In einer vereinfachten Ansicht einer Bitcoin-Blockchain enthält jeder Block einen Zeitstempel, eine zufällig gewählte Nonce, einen Hash-Tree oder Merkle-Tree und einen Hash des vorhergehenden Blocks (Prev_Hash) in der Kette. (Bildquelle: Wikimedia Commons/CC-BY-SA-3.0)

Mit der Einbindung des Werts Prev_Hash in einer Blockchain wird der Rahmen für die Integrität einer Blockchain als Ganzem bereitgestellt. Bei einer durch einen Hacker vorgenommenen Änderung einer alten Transaktion in Blockn-1 würde der in Blockn enthaltene Hash ungültig werden, selbst wenn der Hacker den Merkle-Tree und Tx_Root in Blockn-1 korrigieren würde. Wie weiter unten noch beschrieben wird, werden mit dem dezentralen Charakter der Blockchain-Systeme genau solche Nichtübereinstimmungen bei Hashes aufgedeckt.

Die Nonce spielt bei den Regeln für die Blockerstellung eine Rolle, welche die Blockchains praktisch unveränderlich machen. Öffentliche Blockchains wie die Kryptowährungen Bitcoin und Ethereum erlegen dem Wert des Hashes eines neuen Blocks künstliche Beschränkungen auf, ehe dieser zur Erweiterung der Kette genutzt werden kann. Wenn eine Reihe von Prev_Hash-Transaktionen für den Bau eines neuen Blocks zusammengetragen wird, sehen diese Regeln üblicherweise vor, dass der finale Hash eines neu gebauten Blocks unter einem bestimmten Maximalwert liegen muss. Die in Blockchain-Systemen verwendeten Hash-Algorithmen generieren das gleiche Ergebnis bei gleichem Input, doch schon bei der kleinsten Änderung beim Input wird ein gänzlich neues Ergebnis ausgegeben, das unvorhersehbar ist.

Die Nonce bietet eine Möglichkeit zur Änderung des Hash-Werts, ohne dabei die Elemente zu beeinflussen, die für das Blockchain-System und dessen Nutzer von entscheidender Bedeutung sind. Den Hash-Wert zu finden, der den Regeln der Blockchain entspricht, ist allerdings ein Kraftakt, bei dem verschiedene Werte für die Nonce ausprobiert werden. Mit dem Anwenden einer Reihe verschiedener Werte für die Nonce und der jeweiligen Erzeugung eines neuen Hash-Werts für den Block wird schließlich irgendwann ein Hash-Wert gefunden, der den Regeln entspricht. Nicht ohne Grund werden diejenigen, die diese Arbeit ausführen, als „Blockchain Miners“, als Minenarbeiter, bezeichnet.

Diese finale akzeptable Nonce wird als „Proof of Work“, als Arbeitsnachweis, bezeichnet, da sie für den erfolgreichen Abschluss des rechnerisch äußerst intensiven Mining-Prozesses steht. Gleichzeitig spiegelt sich in diesem Prozess und in diesem Arbeitsnachweis der dezentrale Charakter der Blockchain-Systeme wider. Mit dem Finden einer akzeptablen Nonce hat sich der Miner das Recht (und die dazugehörige Vergütung für dieses sogenannte „Cryptocurrency Mining“) verdient, die Blockchain mit seinem neu erzeugten Block zu erweitern.

Die anderen Miner und Blockchain-Nutzer können sich von der Gültigkeit des neuen Blocks ganz einfach überzeugen, indem sie den Hash-Wert mit dem Block und der vom erfolgreichen Miner gefundenen Nonce berechnen.

In der denzentralen Architektur der Blockchains analysieren die einzelnen Knotenrechner im verteilten Netzwerk der Blockchain jeden Block und jede Transaktion mithilfe der gleichen Regeln, die auch beim Mining angewandt wurden. Dementsprechend können sich Blockchains selber korrigieren, da die Knotenrechner jeden Block ignorieren, der aufgrund eines Baufehlers oder eines nichtkonformen oder einfach falschen Hash-Werts ungültig ist. Kryptowährungen und andere Blockchain-Systeme nutzen diesen Konsensaspekt der Blockchain-Dezentralisierung vollumfänglich für weitere Mechanismen, mit denen die Versuche von Hackern zum Unterlaufen des Prozesses weiter erschwert werden sollen.

Die Kombination aus Regeln für den rechnerintensiven Arbeitsnachweis und konsensbasierten Prozessen zur Blockvalidierung stellen eine unüberwindbare Hürde für Hacker dar, die eine alte Transaktion in der Blockchain modifizieren möchten. Ein Hacker, der eine Kette ab dem modifizierten Block neu aufbauen möchte, muss den Arbeitsnachweis irgendwie schneller als die Miner-Community erbringen. Allein hierbei sieht sich der Hacker einem virtuellen Wettrüsten in puncto Verarbeitungsressourcen gegenüber, die sich von grafikverarbeitenden Einheiten auf PCs hin zu feldprogrammierbaren Gate-Arrays auf speziellen, anwendungsspezifischen Schaltkreisen verschoben haben. Abgesehen von der Hürde, welche die enorme Investition in die Rechenleistung darstellt, ist der erforderliche Stromverbrauch allein eigentlich schon untragbar.

Nach all dem Verarbeitungsaufwand und Stromverbrauch schließlich muss der Hacker immer noch damit rechnen, dass seine modifizierte Kette wahrscheinlich einfach durch den konsensbasierten Mechanismus abgelehnt wird. Bedeutende Unterschiede beim Durchlauf von Blöcken kommen nur sehr vereinzelt vor und führen zu umfassenden, schlagzeilenträchtigen Störungen im betroffenen Blockchain-System. Potenziell wird hierbei eine nur selten vorkommende harte Abspaltung erforderlich, die eine komplett neue Version des Systems schafft.

Authentifizierung von Transaktionen

Bei der gesamten bisher erfolgten Besprechung des Aufbaus und der Prozesse von Blockchains wurde unterstellt, dass die durch einen Merkle-Tree dargestellten Transaktionen in einem Block gültig sind. Wenn ungültige Transaktionen irgendwie doch ihren Weg in das Blockchain-System finden, dann sind Bemühungen wie der Arbeitsnachweis und die dezentrale Blockvalidierung vergebens. Nun besteht der grundlegende Reiz der Blockchain-Technologie in deren Fähigkeit, einen Satz gültiger Transaktionen in eine unveränderliche Blockkette aufzunehmen. Aus dieser Perspektive beginnt die Blockerzeugung, wenn ein Nutzer eine Transaktion anfordert. Anstatt sich auf eine zentrale Instanz zur Genehmigung der Transaktion zu verlassen, setzt die Blockchain-Technologie auf kryptographische Verfahren mit privaten Schlüsseln, deren Inhaber der anfragende Nutzer ist.

Um eine Anfrage zu initiieren, signiert ein Nutzer mithilfe seines privaten Schlüssels digital seine Anfrage und sendet die Anfrage an einen Pool, in dem sich weitere unbestätigte Transaktionen befinden (Abbildung 2). Der Blockchain-Miner wiederum entnimmt eine Reihe unbestätigter Transaktionen aus diesem Pool und überprüft, ob jede Anfrage auch tatsächlich von dem jeweiligen Inhaber des privaten Schlüssels stammt, indem er den öffentlichen Schlüssel des Anfragenden nutzt, der in jeder unbestätigten Transaktion enthalten ist. Bei den Kryptowährungen werden Transaktionsanfragen mit ungültigen Signaturen von den Minern schnell umgangen, da ihnen daran gelegen ist, den anderen Minern bei der Erstellung des nächsten Blocks in der Blockkette zuvorzukommen.

Darstellung, wie Paare aus privaten/öffentlichen Schlüsseln die Basis für eine Blockchain-Transaktion bildenAbbildung 2: Paare aus privaten/öffentlichen Schlüsseln bilden die Basis für eine Blockchain-Transaktion – der Anfordernde signiert (links) und der Blockchain-Miner überprüft (rechts). (Bildquelle: Wikimedia Commons/CC-BY-SA-3.0)

Private Schlüssel müssen privat bleiben

In der dezentralen Architektur von Blockchains bedeutet der Besitz des privaten Schlüssels für eine Reihe von Transaktionen die Inhaberschaft dieser Transaktionen. Hier steht kein Kundendienstmitarbeiter bereit, um verlorene Gelder aufzuspüren oder um die staatlichen Vorgaben für deren Rückerstattung einzuhalten. Deshalb sind verlorene oder gestohlene private Schlüssel häufig der Grund für die Schlagzeilen über massive Verluste bei Kryptowährungen, und Analysten gehen davon aus, dass sich dieser Trend fortsetzen wird.

Die Blockchain-Technologie verlässt sich bei der Signierung und Verifizierung von Transaktionen also ganz wesentlich auf private Schlüssel – und behandelt deshalb auch den Schutz dieser Schlüssel als entscheidende Notwendigkeit. Für den Nutzer bedeutet ein schlecht gesicherter Schlüssel potenziell den Verlust der Kontrolle über seine Anteile an einem Blockchain-System.

Hacker haben mit Phishing-Attacken und anderen bekannten Methoden versucht, Zugriff auf unverschlüsselte private Schlüssel zu erlangen, die achtlos auf mobilen Geräten oder Rechnern gespeichert waren. Häufig sind auch verschlüsselte Schlüssel ebenso angreifbar. Die Software zur Erzeugung des Schlüssels ermöglicht es dem Nutzer üblicherweise, mit einer Passphrase den auf dem Nutzergerät befindlichen Schlüssel zu verschlüsseln. Sicherheitsforscher haben festgestellt, dass bei diesem Verfahren das gleiche Problem wie bei sämtlichen passwortbasierten Verfahren besteht: Die Nutzer verschlüsseln ihre Schlüssel zu oft mit einer schwachen, leicht zu erratenden Passphrase.

Selbst wenn der Nutzer bei seinem privaten Schlüssel die erforderliche Sorgfalt walten lässt, könnte der Schlüssel trotzdem bereits durch Fehler in der Schlüsselerzeugungssoftware gefährdet sein. Softwarebasierte Schlüsselgeneratoren nutzen häufig Zufallszahlengeneratoren (RNGs), die mit vorhersagbaren Mustern arbeiten, die ein Dieb mit einem einfachen Skript freilegen kann. Was noch schlimmer ist: Programmierfehler oder Fehler in den Algorithmen zur Schlüsselerzeugung können die Schlüssel anfällig für jeden machen, der sich mit der jeweiligen Schlüsselerzeugungssoftware auskennt.

Auch eine perfekte Implementierung eines robusten Algorithmus bedeutet keinen garantierten Schutz: Die Nutzer sehen sich weiterhin der realen Gefahr ausgesetzt, dass das System, das idealen Code ausführt, auch Software ausführt, die vollständig von Hackern durchdrungen ist. Während die Schlüsselerzeugungssoftware läuft, teilt sie Speicher- und Prozessorzyklen mit der beeinträchtigten Software und gewährt den Hackern damit Einblick in die geheimen Daten.

Prozessoren, die eine vertrauenswürdige Ausführungsumgebung (TEE) bereitstellen, bieten einen weitergehenden Schutz, da sie vertrauenswürdigen und nicht vertrauenswürdigen Code in getrennten Ausführungsräumen ausführen. Dieser Ansatz reduziert die Gefahr, dass Algorithmen und geheime Daten wie private Schlüssel durch Schwachstellen im Betriebssystem, in der Middleware oder anderen Anwendungen angegriffen werden.

Selbst wenn Hardware-Geräte mit sicherer Ausführung und Schlüsselschutzfunktionen versehen werden, bleiben viele Geräte auch weiterhin anfällig für komplexere Attacken auf Mikroarchitektur- und physischer Ebene. Bei Attacken auf Mikroarchitekturebene werden die Schwachstellen im Prozessordesign ausgenutzt. Diese Art von Attacken erlangte mit Meltdown und Spectre, welche die Schwachpunkte beim Speicherzugriff und der Befehlsverarbeitung des Mikroprozessors ausnutzten, große Bekanntheit.

Zu den physischen Angriffen gehören Attacken auf Seitenkanäle, bei denen Stromverbrauch, elektromagnetische Abstrahlung oder Timing-Merkmale erfasst werden, um an geschützte Informationen zu kommen. Bei anderen physischen Attacken bringen Hacker mit Lasern Fehler ein oder führen Störungen bei der Stromversorgung herbei, um interne Signale abzuleiten. Bei direkteren physischen Angriffen entkapseln Hacker Halbleitergeräte und versuchen, Daten und Befehlsfolgen mithilfe von Mikrosonden auszulesen.

Um vor dieser Vielzahl an Sicherheitsbedrohungen geschützt zu sein, ist ein Sicherheits-Controller erforderlich, der grundlegende Sicherheitsfunktionen mit einem tiefergehenden Schutz vor den zahlreichen Angriffsmethoden auf Halbleitergeräte auf Mikroarchitektur- und physischer Ebene verbindet. Das Starterkit „Blockchain Security 2Go“ von Infineon (BLOCKCHAINSTARTKITTOBO1) basiert auf dieser Art von Sicherheits-Controller und bietet eine unmittelbare Lösung für die Herausforderung, private Schlüssel, mit denen Transaktionen zur Aufnahme in eine Blockchain signiert werden, zu sichern (Abbildung 3).

Darstellung der Smartcard des „Blockchain Security 2Go“ von InfineonAbbildung 3: Die Smartcard des „Blockchain Security 2Go“ von Infineon vereinfacht die Blockchain-Sicherheit, wozu auch die Signierung von Transaktionen ohne die Offenlegung wertvoller privater Schlüssel gehört. (Bildquelle: Infineon)

Anstatt Zeit für den Bau sicherer Signaturmethoden aufzuwenden, können die Integratoren von Blockchain-Systemen den Nutzern auch Smartcards aus dem Starterkit „Blockchain Security 2Go“ oder aus dem 10 Karten umfassenden Paket „Security 2GO“ von Infineon bereitstellen (BLOCKCHAIN10CARDSTOBO1).

Fazit

Für die Blockchain-Technologie gibt es auch über Kryptowährungen hinaus vielfältige Einsatzmöglichkeiten. Allerdings ist die Technologie komplex und verlässt sich auf private Schlüssel, die robuster Sicherheitsmechanismen bedürfen, um einen Verlust über die Kontrolle der Nutzertransaktionen und die Beschädigung des Blockchain-Systems zu verhindern.

Natürlich können Entwickler Zeit für die Entwicklung sicherer Signaturmethoden aufwenden, das Starterkit „Blockchain Security 2Go“ von Infineon stellt aber eine schlüsselfertige Sicherheitslösung für Blockchains bereit, die Zeit und Ressourcen spart.

DigiKey logo

Haftungsausschluss: Die Meinungen, Überzeugungen und Standpunkte der verschiedenen Autoren und/oder Forumsteilnehmer dieser Website spiegeln nicht notwendigerweise die Meinungen, Überzeugungen und Standpunkte der DigiKey oder offiziellen Politik der DigiKey wider.

Über den Autor

Image of Stephen Evanczuk

Stephen Evanczuk

Stephen Evanczuk hat mehr als 20 Jahre Erfahrung im Schreiben für und über die Elektronikindustrie zu einem breiten Spektrum von Themen wie Hardware, Software, Systeme und Anwendungen einschließlich des IoT. Er promoviertein Neurowissenschaften über neuronale Netzwerke und arbeitete in der Luft- und Raumfahrtindustrie an massiv verteilten sicheren Systemen und Methoden zur Beschleunigung von Algorithmen. Derzeit, wenn er nicht gerade Artikel über Technologie und Ingenieurwesen schreibt, arbeitet er an Anwendungen des tiefen Lernens (Deep Learning) zu Erkennungs- und Empfehlungssystemen.

Über den Verlag

Nordamerikanische Fachredakteure von DigiKey