Beiträge

Digitale Signaturen in der Blockchain: die Perspektive

29.5.2018 / Falk Borgmann, Strategy Consultant, Deepshore GmbH

Digitale & elektronische Signatur im Lichte der Blockchain - Vol.2 Blockchain und PKI

Eine PKI bietet die Möglichkeit in einem asynchronen Verfahren Informationen zu signieren, bzw. diese zusätzlich auch zu verschlüsseln und anschließend wieder zu verifizieren. Eine CA dient dabei als Intermediär, welcher quasi die Echtheit des Public Keys garantiert und sich dadurch der Transaktionsinhalt für einen Datenempfängers validieren lässt. Neben anderen Ausprägungen sind in dem Verfahren der Verlust eines Private Keys und das kompromittieren der gesamten CA die vermutlich die wichtigsten Risiken. Nun stellt sich die Frage, ob es mit der Blockchain Technologie möglich wäre, Funktionen einer PKI abzubilden und ggf. auch bestehende Schwachstellen zu eliminieren?

Was hat eine Signatur, Verschlüsselung oder auch eine gesamte PKI mit der Blockchain zu tun? Generell sind die beiden Hauptelemente der klassischen Blockchain, Transaktionen in einem verteilten Netzwerk sicher, aber ohne Masterinstanz abzuwickeln, bzw. zu beglaubigen. Das klingt auf Anhieb eng verwandt mit den Zielen einer PKI. Von daher scheint es grundsätzlich sinnvoll zu sein, sich weiter mit dem Thema zu beschäftigen.

Fallbeispiel Bitcoin:

In der Bitcoin Blockchain könnte der öffentliche Schlüssel z.B. als die Kontonummer eines Teilnehmers betrachtet werden. Der private Schlüssel wäre in diesem Fall eher etwas wie die Freigabe-TAN für eine Transaktion, um über sein Guthaben zu verfügen. Derjenige welcher Geld überweisen will, schickt also im Übertragenden Sinne seine Kontonummer mit der Transaktion in das Cluster. Ein großer Unterschied zwischen einem PKI Verfahren und den üblichen Blockchains ist jedoch die wirkliche Identifikation von Teilnehmern. Dieser Punkt bezieht sich nicht auf eine technische Identifizierung, sondern vielmehr auf die Zusicherung, dass eine bestimmte Personen/Institution einem technischen Account auch tatsächlich zugeordnet ist. D.h. der öffentliche Schlüssel der Bitcoin-"Kontonummer" wäre ein Konto, dessen wirklicher Nutzer durch keine Autorität innerhalb des Systems zweifelsfrei identifiziert ist. Transaktionen laufen demnach anonym ab, gleichwohl das Vertrauen in die Verarbeitung der Transaktionen an sich durch das System gewährleistet wird. Die folgenden Ausführungen beziehen sich deshalb explizit nicht auf die CA-Funktion welche sicher stellt, dass ein Key nur einer echten Person/Institution zugeordnet werden kann. Der Fokus liegt ausschließlich auf der technischen Verarbeitung/Beglaubigung eines Datensatzes.

Im Falle von Bitcoin kennt jeder Teilnehmer also den Public Key des technischen Versenders, also kann jeder Knoten im Rahmen des Consensus auch theoretisch die Funktion einer CA übernehmen, indem eine Transaktion validiert wird. Der Angriff auf eine zentrale CA wäre ausgeschlossen, da sie quasi Teil der Blockchain und dadurch n-fach verteilt vorhanden ist. Es stellt sich viel mehr die Frage, ob eine PKI bzw. eine CA für diesen Fall überhaupt noch gebraucht wird, oder ob das theoretische Modell einer beglaubigten Nachricht/Transaktion (digitale Signatur) quasi schon als Standard Funktion im Bauch der Blockchain vorhanden ist. Eine PKI baut auf der Annahme auf, dass ein vertrauensvoller Intermediär in der Lage ist, einen Public Key zu beglaubigen (durch die Ausstellung eines Zertifikates). Eine Blockchain baut generell auf Misstrauen auf und sichert durch den Consensus-Mechanismus ab, ob und wann eine Transaktion valide ist. Somit macht die Funktion der zu beglaubigenden Signatur innerhalb einer Blockchain auch eigentlich keinen Sinn und die CA für diesen einen Use Case auch überflüssig.

Eine PKI ermöglicht es allerdings auch Daten zu verschlüsseln, indem der Versender mit dem öffentlichen Key des Empfängers eine Nachricht beim Versand verschlüsselt. Nur der Empfänger kann eine mit seinem eigenen Public Key verschlüsselte Nachricht mit dem Gegenstück, dem eigenen Private Key, entschlüsseln. In diesem Verfahren wird die CA nur benötigt, um sicher zu stellen, dass zum Zeitpunkt der Verschlüsselung das Zertifikat des Public Keys noch gültig ist. Anhand des Bitcoin Beispiels wird klar, dass generell auch hier in der Blockchain mit öffentlichen und privaten Keys gearbeitet wird (bzw. werden kann). Dadurch ist es auch prinzipiell möglich, Transaktionen innerhalb eines Blocks zu verschlüsseln. Dieser Teil funktioniert theoretisch identisch zum PKI-Verfahren.

Bei beiden Szenarien wird klar, dass der Private Key eine wichtige Rolle spielt. Wird dieser innerhalb eines PKI Signatur-Verfahrens verloren, kann dies dazu führen, dass ein Public Key ungültig wird und der Besitzer neue Keys generieren und bei der CA beglaubigen lassen muss (sofern der Verlust bemerkt wird). Bei Verschlüsselungen führt der Verlust des Private Keys dazu, dass Nachrichten die ggf. schon irgendwo vorliegen, von jedem gelesen werden können, der über den passenden Schlüssel verfügt. Ähnlich verhält es sich bei der Blockchain. Verliert man z.B. seinen privaten Bitcoin-Schlüssel, ist das Guthaben futsch. Wird er gestohlen, kann der Dieb sogar über das Guthaben verfügen. Im Falle von Verschlüsselungen besteht zusätzlich das Problem, dass die verschlüsselten Daten quasi auf dem Präsentierteller in der Blockchain selbst gespeichert sind (sofern die Rohdaten, so wie bei Bitcoin, in der Chain liegen). Also könnte sich der Angreifer jederzeit alle historisch verschlüsselten Daten ansehen, ohne dass diese löschbar wären.

FAZIT & AUSBLICK:

Ein wesentlicher Aspekt einer PKI ist die beglaubigte Identifizierung von Personen oder Organisationen, denen ein Zertifikat für einen Schlüssel ausgestellt wird. Diesen Service kann eine Blockchain derzeit nicht ohne weiteres liefern, gleichwohl es in diesem Bereich Ansätze gibt, dies zu ändern. Beispiele sind die Aufsätze von L. Axon/M. Goldsmith "PB-PKI: a Privacy-Aware Blockchain-Based PKI" oder auch "Backing Rich Credentials with a Blockchain PKI" von K. Lewison/F. Corella. Dabei liegt der Fokus aber eher in der Implementierung einer PKI innerhalb der Blockchain bzw. auf der Funktionalen Nachbildung der PKI-Identifizierung von Teilnehmern. Keiner der derzeit bekannten Ansätze kann zudem vollständig auf eine Masterinstanz (egal in welcher Form) verzichten.

Ohne diese Identifizierung einer Person, kann eine "herkömmliche" Blockchain die Signaturfunktionalität einer PKI zur Beglaubigung von Transaktionen jedoch abbilden. Sie bietet daneben den Vorteil, dass durch den Consensus Mechanismus auf die zentrale CA bei diesem Verfahren verzichtet werden kann, was das Risiko eines Angriffs an der Stelle deutlich verringert.

Auch die Verschlüsselung von Daten ist mit der Blockchain möglich. Das Risiko einen privaten Schlüssel zu verlieren, ist sowohl bei der Blockchain als auch im klassischen PKI Verfahren vorhanden. Sofern der Chaincode die verschlüsselten Rohdaten enthält, werden diese dem Dieb quasi auf dem Präsentierteller geliefert. Dieses Risiko ist im Normalfall bei einer klassischen PKI etwas geringer, da ein Dieb auch die verschlüsselten Rohdaten beschaffen müsste. Gleichwohl bildet die Grundlage für beide Szenarien immer ein erfolgreicher Diebstahl des Private Key. Von daher liegt die eigentliche Schwachstelle potentiell außerhalb der Blockchainimplementierung. Trennt man die Rohdaten von der Blockchain und begreift die Blockchain als Verification-Service, liefert solch ein System auch in diesem Szenario einen Mehrwert gegenüber der klassischen PKI Verfahren.

Aus unserem Special
»BLOCKCHAIN: COMPLIANCE FÜR DIE BUSINESS CLOUD«
Beitrag 6/7
Teilen: