Website-Icon BitcoinBlog.de – das Blog für Bitcoin und andere virtuelle Währungen

MIT Experten finden angeblich schwerwiegenden Krypto-Bug in IOTA

Sieht aus wie ein Bug: eine Drohne für das Internet der Dinge. Ob IOTA wirklich die Währung dafür wird? Bild: Drones von Jason Cipriani via flickr.com. Lizenz: Creative Commons

IOTA ist eine der in den letzten Monaten am steilsten aufgestiegene Kryptowährungen. Mit ein Grund dafür ist das als bahnbrechend gepriesene „Tangle“-Design. Einige Wissenschaftler der Digital Currency Initiative am berühmten Massachussetts Institute of Technology (MIT) haben sich die für das Internet der Dinge bestimmte Währung nun genauer angesehen. Das Ergebnis ist, so wie es die MIT-Forscher vorstellen, nicht unbedingt schmeichelhaft für Entwickler, Investoren und Partner aus der Industrie.

Als Bitcoin.de jüngst den Multicoin-Marktplatz einweihte, haben zahlreiche User die Aufnahme von IOTA verlangt. Auf der Voting-Seite von Bitcoin.de, auf der User Änderungen vorschlagen, diskutieren und über sie abstimmen können, liegt die Forderung, auch IOTA zu handeln, mit meilenweitem Abstand vorne. Im Coinforum.de gibt es einen IOTA-Thread, der mit 66 Seiten einer der beliebtesten Altcoin-Threads ist.

Die Kryptowährung, die dank der Tangle-Technologie dem Vernehmen nach beliebig skalierbar ist und ohne Gebühren auskommt, wurde bereits von zahlreichen Firmen – etwa Foxconn, Bosch, Innogy, Cicso, Microsoft und weiteren — getested. Es gibt Partnerschaften mit Universitäten, ein IoT-Summercamp in Frankfurt, bei dem IOTA eine erhebliche Rolle spielt, und mehr. Die maßgeblich von Dominik Schierer, einem 21 Jahre jungen, in Berlin lebenden Tiroler, entwickelte Kryptowährung scheint auf einem unaufhaltbaren Höhenflug zu sein. Dies schlägt sich auch im Preis durch. Mit einer Marktkapitalisierung von fast 2 Milliarden Euro steht IOTA in den Top-10 aller Kryptowährungen.

Nun gibt es den ersten Rückschlag für IOTA. Vier IT-Wissenschaftler der Digital Currency Initiative des Massachussetts Institute of Technology (MIT) haben sich im vergangenen Monat intensiv mit IOTA beschäftigt. Die Direktorin der Gruppe, Neha Narula, erklärt in einem Blogpost, dass man dabei einen schweren Bug gefunden hat: „Im Code-Repositorium auf GitHub haben wir eine gravierende Schwäche entdeckt – die IOTA-Entwickler haben ihre eigene Hashfunktion geschrieben, Curl, und es ermöglichte Kollisionen. Nachdem wir einen Angriff entwickelt hatten, konnten wir mit gewöhnlicher Hardware in wenigen Minuten Kollisionen finden und Signaturen für IOTA-Zahlungen fälschen.“

Die Wissenschaftler haben den Bug bei den Entwicklern gemeldet, und diese haben ihn gefixt. All das geschah schon vor gut einem Monat. Ist damit alles gut?

Nein, meint Narula. Ganz und gar nicht. Der Bug zeigt vielmehr, dass IOTA im speziellen und Kryptowährungen im Allgemeinen einige große Probleme haben.

Update: Die Geschichte hat sich weiter entwickelt, es gibt ausführliche Stellungnahmen der IOTA-Entwickler, die ein anderes Licht auf die Sache werfen. Dieser Artikel hier gibt nur ein Statement der MIT-Forscher wieder, das möglicherweise nicht ganz neutral ist. Ein weiterer Artikel mit Fokus auf die Perspektive von IOTA wird am Montag erscheinen.

Geld stehlen mit Hash-Kollisionen

Lasst uns zunächst genauer anschauen, worin der Bug bestand. Es war ein Fehler – eine Verletzlichkeit – in einer Hashfunktion. Hashfunktionen sind mathematische Einwegfunktionen: Sie nehmen einen bestimmten Input und verwandeln diese in einen bestimmten Output. Das Besondere ist, dass alle Outputs dieselbe Länge haben, derselbe Input immer zum selben Output führt, und dass es unmöglich ist, vom Output auf den Input zu schließen. Wer es praktisch nachvollziehen will, sollte einfach mal den Hashgenerator.de ausprobieren.

Hashfunktionen werden beispielsweise verwendet, um auf das Speichern von Passwörtern zu verzichten. Gute Online-Plattformen speichern lediglich die Hash eines Passworts. Wenn der User dann das Passwort eingibt, wird dessen Hash berechnet und mit der Hash in der Datenbank verglichen. Stimmt beides überein, darf der User in seinen Account. Bei Bitcoin werden Hashes an verschiedenen Stellen verwendet. Am wichtigsten dürfte das Mining sein, bei dem die Miner verschiedene Inputs ausprobieren, um per Hashfunktion ein bestimmtes Ergebnis zu erzielen.

Bei IOTA wurde die besagte Hashfunktion hingegen eingesetzt, um Transaktionen zu hashen, bevor sie signiert werden. Als die Forscher den Code von IOTA inspiziert haben, fiel ihnen auf, dass die von IOTA eingesetzte Hashfunktion durch eine wohlbekannte Technik der Differenziellen Kryptoanalyse gebrochen werden kann. Es ist möglich, sogenannte Kollisionen zu bilden: Zwei Inputs zu finden, die denselben Output bilden. Damit bricht eine der wichtigsten Eigenschaften von Hashfunktionen weg.

Wäre dies bei dem von Bitcoin für das Mining verwendeten Algorithmus SHA-256 passiert, könnten Miner schneller Bitcoins erzeugen. Würde dies bei den zum Schutz von Online-Accounts verwendeten Algorithmen passieren, würde die Sicherheit von Passwörtern erheblich abnehmen. Bei IOTA wurde es hingegen möglich „zwei Zahlungen zu produzieren, die verschiedene sind, aber auf denselben Wert gehasht werden und somit dieselbe Signatur haben. Ein feindlicher Akteure könnte mit dieser Technik die Guthaben von Usern zerstören oder, vielleicht, sogar stehlen.“

Die MIT-Forscher hätten die Möglichkeit gehabt, Vermögen im Umfang von ein bis zwei Milliarden Dollar zu zerstören. Zumindest klingt das Post von Narula so. In einer Stellungnahme erklärt David Sønstebø von IOTA hingegen, dass ein Angriff erfordert, dass sowohl der Angreifer als auch das Opfer eine spezielle Wallet benutzen, die es nicht gibt. Die normale IOTA-Wallet hat nicht die Funktion, die notwendig ist, um dem Angriff zum Opfer zu fallen.

Demnach waren nie Guthaben in Gefahr. Aber das, so Narula, ist nur ein Teil des Problems. Sozusagen die Spitze des Eisbergs.

Anfängerfehler

„Im Jahr 2017 einen Krypto-Algorithmus zu verwenden, der anfällig für Dfferenzielle Kryptoanalyse ist,“ schrieb der Sicherheitsexperte Bruce Schneier, Autor des Buchs Data und Golliath, den MIT-Forschern, „ist ein Anfängerfehler. Es zeigt, dass niemand von Format das System analysiert hat, und dass die Wahrscheinlichkeit, dass ihr Fix das System wirklich sicher macht, gering ist.“

Nicht nur, dass die IOTA-Entwickler einen für die Sicherheit des Systems essenziellen Teil ungenügend geprüft haben – sie haben auch gegen eine Grundregel der Kryptographie verstoßen: „Benutze niemals deine eigene Kryptographie.“ Jeder Experte wird ausschließlich bekannte, verstandene, erforschte und getestete Krypto-Algorithmen verwenden, wenn er ein System aufbaut. Einen eigenen Algorithmus zu entwicklen, anstatt die vorhandenen, jahrelang getesteten Algorithmen zu verwenden, ist ähnlich clever, wie sich sein Betriebssystem selbst zu bauen. SHA-3, der Nachfolger von SHA-2, wurde beispielsweise von 2006 bis 2015 von einer Vielzahl von Mathematikern und Kryptologen getestet. Dies im Alleingang genauso gut machen zu wollen zeigt einen gewissen Größenwahn und Ignoranz gegen die Vorteile von Arbeitsteilung.

„Als wir also bemerkt haben, dass die IOTA Entwickler ihre eigene Hash-Funktion geschrieben hatten, war das für uns eine riesige rote Flagge. Es sollte wohl auch eine riesige rote Flagge für jeden sein, der in IOTA involviert ist,“ kommentiert Narula.

Noch mehr Schwächen

Die Forscherin erkennt in IOTA noch einige weitere Problemzonen, die ebenfalls für Investoren eine riesige rote Flagge sein sollen.

„Einen Teil von IOTA konnten wir nicht untersuchen, da der Code nicht Open Source ist: den der ‚trusted coordinators.'“. Die IOTA-Entwickler betreiben den ‚trusted coordinator‘, der den letzten gültigen State des Systems signiert. Für die Effizienz des Systems ist das sicherlich praktisch. Aber, mal ehrlich: Nicht open source? Eine zentrale Instanz, der man vertrauen muss? Echte Kryptoinvestoren sind bei diesen beiden Sätzen längst über alle Berge.

Kryptowährungen sind Open Source, dezentral und brauchen kein Vertrauen. Darin besteht ein Großteil ihres Wertes. Dass IOTA diese Regeln bricht, ist alarmierend. Da hilft es auch nicht wirklich, dass die Entwickler vorhaben, den ‚trusted coordinator‘ einmal zu entfernen.

Aber es geht noch weiter. „Es gibt noch andere rote Flaggen. Anders als andere Programme, die auf unseren Laptops oder Telefonen laufen, benutzt IOTA ternary anstatt binary.“ Da alle gegenwärtigen Computer binär rechnen, konvertiert IOTA die Operationen in ihrer Software ins Ternäre. Dies ist weniger effizient, aber komplexer. „Diese Komplexität hindert IOTA daran, von existierenden Sicherheits-Analyse-Tool zu profitieren, da diese entwickelt wurden, um mit binären Systemen zu arbeiten. Dies macht auch den Code schwerer zu lesen und zu verstehen.“

Schließlich haben die Entwickler noch herausgefunden, dass eine IOTA-Transaktion 10 Kilobyte groß ist. Im Verglich zu den Standard-Transaktionen von Bitcoin, die nur 220 byte brauchen, ist dies gigantisch. Dies ist eine enorme Verschwendung von Bandbreite, Speicher und Rechner-Kapazität, die einer Währung, die wie IOTA beansprucht, auf den winzigen Maschinchen des Internets der Dinge zu laufen, gar nicht gut zu Gesicht steht.

Leichtsinnige Investoren und Partner

Das Problem ist nicht allein, dass diese Bugs und Schwächen da sind. Jeder hat das Recht, zu experimentieren und die Software zu schreiben, die er möchte. Das Problem ist vielmehr, meint Neha Narula, dass „Entwickler und Investoren offenbar diese Systeme nicht sorgfältig genug prüfen.“ Viele Investoren verlassen sich auf „signalling“: Wenn genügend bekannte Instititionen wie Universitäten und große Firmen investieren oder beraten, verlassen sie sich darauf, dass das Projekt schon Hand und Fuß haben wird.

Gerade bei Kryptowährungen ist viel Vertrauen in Technologie im Spiel – und damit auch Vertrauen darin, dass es Menschen gibt, die die quelloffene Technologie kompetent und kritisch prüfen. Dieses Vertrauen scheint nicht immer gerechtfertigt zu sein.

„Das Problem ist, dass einige dieser Technologien ernsthafte Schwächen haben, und dass große Firmen und wohlbekannte Individuen nicht ihren Sorgfaltspflichten nachkommen und ausreichend Ressourcen und Zeit investieren, um Projekte, mit denen sie eine Partnerschaft eingehen, zu evaluieren.“ Gerade bei IOTA ist diese Verletzung der Softfaltspflicht schreiend: Die Kryptowährung hat eine Marktkapitalisierung von beinah 2 Milliarden Dollar und Partnerschaften mit einigen der größten Technologiekonzernen der Welt. Da könnte man doch meinen, dass diese wissen, was sie machen, oder?

Offenbar nicht.

Anmerkung: Es gibt eine offizielle Antwort der IOTA-Entwickler zum Post der MIT-Gruppe. In dieser erklären die Entwickler unter anderem, dass der Kollisionsangriff extrem unwahrscheinlich, wenn nicht fast unmöglich, ist und dass Transaktionen in der Regel nicht 10, sondern „nur“ 1,6kb groß sind.

Die mobile Version verlassen