Zum Auftakt der Crypto Week 2019 freuen wir uns sehr, eine neue Lösung für ein seit langem bestehendes Problem in der Kryptografie ankündigen zu können. Um ein besseres Verständnis des technischen Hintergrunds dieses Problem zu erhalten, lesen Sie bitte den nächsten Beitrag.
Alles von der Kryptografie über Lotterien mit hohen Gewinnen bis hin zur Quantenmechanik erfordert irgendeine Form von Zufälligkeit. Aber was genau bedeutet es, dass eine Zahl zufällig generiert wird und woher kommt die Zufälligkeit?
Die Generierung von Zufälligkeit liegt dreitausend Jahre zurück, als die Menschen der Antike Knochen warfen, um ihr Schicksal zu bestimmen. Denken Sie an Lotterien – eine einfache Sache, nicht wahr? Jeder kauft seine Lotteriescheine, wählt sechs Zahlen und wartet darauf, dass jemand sie zufällig aus einem Korb zieht. Klingt nach einer narrensicheren Lösung. Und dann wurde 1980 der Veranstalter der Pennsylvania-Lotterieziehung verhaftet, weil er unterschiedlich gewichtete Kugeln verwendet hatte, um die Gewinnnummern zu ziehen. Diese Lektion hat zusammen mit der Notwendigkeit, Zufallszahlen für andere komplexe Systeme zu generieren, die Entwicklung von Zufallszahlengeneratoren angespornt.
Genau wie bei einem Lotteriespiel unvorhersehbare Zahlen zufällig ausgewählt werden, ist ein Zufallszahlengenerator ein Gerät oder eine Software, die für die Generierung von Zahlensequenzen in unvorhersehbarer Weise verantwortlich ist. Mit dem zunehmendem Bedarf an Zufälligkeit ist auch die Notwendigkeit einer konstanten Erzeugung von überaus großen, unvorhersehbaren Zahlen gestiegen. Aus diesem Grund entwickelten Organisationen öffentlich verfügbare Zufalls-Beacons – Server, die in regelmäßigen Abständen völlig unvorhersehbare 512-Bit-Strings (etwa 155-stellige Zahlen) generieren.
Jetzt denken Sie vielleicht, dass mit dem Einsatz eines Zufalls-Beacons für die Generierung von Zufallszahlen, wie sie z. B. für Lotterieziehungen benötigt werden, der Prozess selbst immun gegen feindliche Manipulationen sein würde, aber das ist nicht der Fall. Zufälligkeit aus einer einzigen Quelle kann ausgenutzt werden, um verfälschte Ergebnisse zu erzeugen.
Heute generieren Zufalls-Beacons Zahlen für Lotterien und Wahlkontrollen – beide beeinflussen das Leben und das Schicksal von Millionen von Menschen. Leider hat die Ausnutzung des einzigen Ursprungspunktes dieser Beacons zu unlauteren Ergebnissen geführt, von denen ein korrupter Insider profitiert hat. Um derartige Ausnutzungsversuche zu vereiteln, haben sich Cloudflare und andere Anbieter von Zufalls-Beacons zusammengeschlossen, um eine Mindestanzahl dezentralisierter Zufalls-Beacons für Benutzer bereitzustellen. Schließlich sind acht unabhängige, global verteilte Beacons viel vertrauenswürdiger als ein einziger!
Wir freuen uns, Ihnen vorstellen zu können:
DIE LEAGUE … OF … ENTROPY !!!
Was ist ein Zufalls-Beacon?
Ein Zufalls-Beacon ist ein öffentlicher Dienst, der in regelmäßigen Abständen unvorhersehbare Zufallszahlen bereitstellt.
Drand (ausgesprochen „die-rend“) ist ein _verteilter Zufalls-_Beacon, der von Nicolas Gailly mit Hilfe von Philipp Jovanovic und Mathilde Raynal entwickelt wurde. Das Drand-Projekt entstand aus der Forschungsarbeit Scalable Bias-Resistant Distributed Randomness (skalierbare verfälschungssichere verteilte Zufälligkeit), veröffentlicht auf dem 2017 IEEE Symposium on Security and Privacy von Ewa Syta, Philipp Jovanovic, Eleftherios Kokoris Kogias, Nicolas Gailly, Linus Gasser, Ismail Khoffi, Michael J. Fischer, Bryan Ford vom Decentralized/Distributed Systems (DEDIS) Lab an der EPFL, Yale University und Trinity College Hartford mit Unterstützung des Research Institute.
Für jede Zufallsgenerierungsrunde bietet Drand die folgenden Eigenschaften, die in der Forschungsarbeit erläutert sind:
Verfügbarkeit – Die Generierung der verteilten Zufälligkeit wird mit hoher Wahrscheinlichkeit erfolgreich abgeschlossen.
Unvorhersehbarkeit – Keine Partei erfährt etwas über die in der aktuellen Runde ausgegebenen Zufallswerte – außer mit vernachlässigbarer Wahrscheinlichkeit –, bis eine ausreichende Anzahl von Drand-Knoten ihre Beiträge im Zufallsgenerierungsprotokoll offenbart.
Unverfälschbarkeit – Die ausgegebenen Zufallswerte stellen einen unverfälschten, konstant zufälligen Wert dar – außer mit vernachlässigbarer Wahrscheinlichkeit.
Überprüfbarkeit – Die ausgegebenen Zufallswerte sind von Dritten mit dem gemeinsamen öffentlichen Schlüssel überprüfbar, der während der Einrichtung von Drand berechnet wird. Dies dient als unvergessliche Bestätigung, dass der dokumentierte Satz von Drand-Knoten das Protokoll ausgeführt hat, um eine einmalige und einzigartige Ausgabe von Zufallswerten zu erzeugen – außer mit vernachlässigbarer Wahrscheinlichkeit.
Durch die Entropie wird die Unvorhersehbarkeit einer Zahl gemessen. Je mehr Entropie, desto besser für die Zufälligkeit. Und daher haben wir unseren Namen: League of Entropy.
Unsere Gründungsmitglieder tragen ihre individuellen Quellen mit hoher Entropie zur Schaffung eines Beacons mit größerer Zufälligkeit und Unvorhersehbarkeit bei, um alle sechzig Sekunden öffentlich überprüfbare Zufallswerte zu generieren. Die Tatsache, dass der Drand-Beacon dezentralisiert und mit geeigneten, nachweislich sicheren kryptografischen Primitiven aufgebaut ist, erhöht unsere Zuversicht, dass er alle oben genannten Eigenschaften besitzt.
Durch dieses globale Netzwerk von Servern zur Erzeugung von Zufälligkeit wird sichergestellt, dass der Beacon auch dann weiterhin neue Zahlen erzeugt, wenn einige Server offline sind, indem die verbleibenden Server verwendet werden, die online sind. Selbst wenn ein oder zwei Server oder ihre Entropiequellen kompromittiert werden sollten, wird durch den Rest immer noch sichergestellt, dass die gemeinsam produzierte Entropie völlig unvorhersehbar und unverfälschbar ist.
Wer genau betreibt diesen Beacon? Derzeit ist die League of Entropy ein Konsortium von globalen Organisationen und einzelnen Beitragenden: Cloudflare, der „Protocol Labs“-Forscher Nicolas Gailly, die Universität Chile, die École polytechnique fédérale de Lausanne (EPFL), Kudelski Security sowie die EPFL-Forscher Philipp Jovanovic und Ludovic Barman.
Wir stellen vor: die League of Entropy
Cloudflares LavaRand: LavaRand bezieht seine hohe Entropie von Cloudflares Lavalampen-Wand in unserem Hauptsitz in San Francisco. Der unvorhersehbare Fluss von „Lava“ im Inneren der Lampen wird als Input für eine Kamera verwendet, deren Feed in einen CSPRNG (Cryptographically Secure PseudoRandom Number Generator) eingespeist wird, der den Zufallswert generiert.
EPFLs URand: URands Leistung stammt vom lokalen Zufallsgenerator, der an jedem Computer bei /dev/urandom vorhanden ist. Der Zufälligkeits-Input stammt von Eingaben wie Tastenbetätigungen, Mausklicks, Netzwerkverkehr usw. URand bündelt diese zufälligen Eingaben, um einen kontinuierlichen Zufälligkeitsstrom zu erzeugen.
UChiles Seismic Girl: Seismic Girl extrahiert extrem überprüfbare Zufälligkeit aus fünf Quellen, die jede Minute abgefragt werden. Zu diesen Quellen gehören: seismische Messungen von Erschütterungen und Erdbeben in Chile, ein Stream von einem lokalen Radiosender, eine Auswahl von Twitter-Beiträgen, Daten aus der Ethereum-Blockchain und ihre eigene Standard-RNG-Karte.
Kudelski Securitys ChaChaRand: ChaChaRand verwendet einen CRNG (Cryptographic Random Number Generator) basierend auf der ChaCha20-Streamchiffre.
Protocol Labs’ InterplanetaryRand: InterplanetaryRand nutzt die Kraft der Entropie, um die Protokollsicherheit über Raum und Zeit hinweg zu gewährleisten, indem Umgebungsgeräusche und das Linux-PRNG verwendet werden, ergänzt durch CPU-bezogene Zufälligkeit (RdRand).
Gemeinsam sind unsere Helden dem #savetheinternet verpflichtet, indem sie ihre Zufälligkeit zu einem global verteilten und kryptografisch überprüfbaren Zufalls-Beacon kombinieren.
Öffentliche gegenüber privater Zufälligkeit
Für verschiedene Arten von Anwendungen werden unterschiedliche Arten von Zufälligkeit benötigt.
Der Trick zum Generieren sicherer kryptografischer Schlüssel besteht darin, große, privat generierte Zufallszahlen zu verwenden, die sonst niemand vorhersagen kann. Bei Zufalls-Beacons, die öffentlich Zufallszahlen generieren und bekannt geben, sollten Benutzer die Ausgabe des Zufalls-Beacons NICHT für ihre geheimen Schlüssel verwenden, da diese Zahlen für jedermann zugänglich sind. Wenn ein Angreifer die Zufallszahl erraten kann, von der der private kryptografische Schlüssel eines Benutzers abgeleitet wurde, kann er dessen System knacken und vertrauliche Informationen entschlüsseln. Das bedeutet einfach, dass Zufallszahlen, die von einem öffentlichen Beacon generiert werden, nicht sicher für Verschlüsselungsschlüssel verwendet werden können – nicht, weil etwas mit der Zufälligkeit nicht stimmt, sondern einfach, weil die Zufälligkeit öffentlich zugänglich ist.
Clients, die den Drand-Beacon verwenden, können private Zufälligkeiten von einigen oder allen Drand-Knoten anfordern, wenn sie einen Zufallswert generieren möchten, der nicht öffentlich bekannt gegeben wird. Weitere Informationen hierzu finden Sie in der Entwicklerdokumentation.
Andererseits wird die öffentliche Zufälligkeit häufig von Nutzern verwendet, die einen Zufallswert benötigen, der nicht geheim sein soll, dessen Erzeugung aber transparent, fair und unverfälscht erfolgen muss. Dies ist perfekt für viele Zwecke wie Spiele, Lotterien und Wahlkontrollen, wo der Prüfer und die Öffentlichkeit Transparenz darüber verlangen, wann, wie und wie unbeeinflusst der Zufallswert generiert wurde.
Die League of Entropy stellt öffentliche Zufälligkeit bereit, die jeder Nutzer von leagueofentropy.com abrufen kann. Nutzer können den 512-Bit-Zeichenfolgewert sehen, der alle 60 Sekunden generiert wird. Warum 60 Sekunden? Es gibt keinen besonderen Grund. Theoretisch kann die Zufallsgenerierung so schnell gehen, wie es die Hardware zulässt, aber für die meisten Anwendungsfälle ist das nicht notwendig. Alle 60 Sekunden generierte Werte geben Nutzern in einem 24-Stunden-Zeitraum 1440 Zufallswerte.
*ZUR ERINNERUNG: DIESE ZUFÄLLIGKEIT IST ÖFFENTLICH. VERWENDEN SIE SIE NICHT FÜR PRIVATE KRYPTOGRAFIESCHLÜSSEL!*
Warum ist öffentliche Zufälligkeit wichtig?
Wahlkontrolle
In den USA folgt auf die meisten Wahlen eine Kontrolle, um zu überprüfen, ob die Wahl fehlerfrei und fair durchgeführt wurde. Robuste Kontrollsysteme erhöhen das Vertrauen der Wähler, indem sie die Fähigkeit der Wahlbeamten verbessern, effektiv auf Betrugsvorwürfe zu reagieren und Fehler im System zu erkennen.
Derzeit werden die meisten Stimmzettel und Wahlbezirke von den Wahlbeamten zufällig ausgewählt. Dieser Ansatz ist potenziell anfällig für Beeinflussung durch einen korrupten Insider, der bestimmte Bezirke auswählen könnte, um ein bevorzugtes Ergebnis zu präsentieren. Selbst in einer Situation, in der jeder Wahlbezirk manipuliert wurde, können Wahlprüfer mit einem robusten, verteilten und vor allem unvorhersehbaren und unverfälschbaren Beacon darauf vertrauen, dass eine kleine Stichprobe von Bezirken für die Kontrolle ausreicht, solange ein Angreifer die Auswahl der Bezirke nicht vorhersagen kann.
In Chile werden Wahlhelfer zufällig aus einem Pool von Wahlberechtigten ausgewählt. Im „Random UChile“-Projekt der Universität Chile wird an einem Prototypen gearbeitet, bei dem der Zufalls-Beacon der Universität für diesen Vorgang eingesetzt wird. Alejandro Hevia, Leiter von Random UChile, glaubt, dass bei der Wahlkontrolle öffentliche Zufälligkeit wichtig für Transparenz ist, und mit verteilter Zufälligkeit kann man darauf vertrauen, dass es sehr unwahrscheinlich ist, dass mehrere Mitwirkende am Beacon-Projekt gemeinsame Sache machen – im Gegensatz zu dem Fall, wo einer einzigen Instanz vertraut werden muss.
Lotterien
Von 2005 bis 2014 manipulierte der Leiter der Informationssicherheit der amerikanischen Multi-State Lottery Association, Eddie Tipton, einen Zufallszahlengenerator und gewann sechsmal die Lotterie!
Tipton konnte die Gewinnzahlen vorhersagen, indem er den standardmäßigen zufälligen Seeding-Prozess übersprang. Er konnte in die Funktion des Zufallszahlengenerators Code einfügen, der das Datum, den Wochentag und die Uhrzeit überprüfte. Wenn diese drei Variablen nicht übereinstimmten, verwendete der Zufallszahlengenerator radioaktives Material und einen Geigerzähler, um einen zufälligen Startwert zu erzeugen. Wenn die Variablen entsprechend einer heimlichen Programmierung übereinstimmten, was in der Regel nur einmal im Jahr passierte, wurde der Startwert mit einer Formel mit 7 Variablen erzeugt, die in einen Mersenne Twister – einen Pseudo-Zufallszahlengenerator – eingespeist wurde.
Tipton kannte diese 7 Variablen. Er kannte den kleinen Pool von Zahlen, die den Startwert ausmachen könnten. Mit diesem Wissen konnte er die Ergebnisse des Mersenne Twister vorhersagen. Diese Art von Betrug wird mit einem verteilten Zufalls-Beacon wesentlich schwieriger, wenn nicht sogar unmöglich.
Rob Sand, ehemaliger stellvertretender Generalstaatsanwalt von Iowa und derzeitiger Iowa State Auditor, verfolgte die Tipton-Fälle strafrechtlich und zählt zu den Verfechtern verbesserter Kontrollen. Er erklärt:
„Es gibt keine Entschuldigung für eine Branche mit 80 Milliarden Dollar Jahresumsatz, keine hochentwickelten, echten Zufallsgeneratoren zu verwenden, um die Unversehrtheit des Prozesses zu gewährleisten.“
Verteilte Ledger-Plattformen
Bei vielen Kryptowährungen und Blockchain-basierten verteilten Computing-Plattformen wie z. B. Ethereum besteht oft die Notwendigkeit einer zufälligen Auswahl auf der Anwendungsebene. Eine Lösung zur Verhinderung von Verfälschungen bei einer solchen zufälligen Auswahl besteht darin, einen verteilten Zufalls-Beacon wie Drand zur Erzeugung des Zufallswert zu verwenden. Justin Drake, Forscher bei der Ethereum Foundation, glaubt, dass „sich Zufälligkeit von einem Bündnis wie Drand besonders gut für dezentralisierte Echtzeitanwendungen auf Ethereum wie Live-Gaming und Glücksspiel eignen würde.“ Dies ist auf die Möglichkeit zurückzuführen, Zufälligkeit mit extrem niedriger Latenz zu liefern, die sich für ein breites Anwendungsspektrum eignet, bei dem öffentliche Zufälligkeit erforderlich ist.
Auf geht‘s zu Drand!
Wenn Sie mehr über die League of Entropy und die Verwendung des verteilten Zufalls-Beacons erfahren möchten, können Sie https://leagueofentropy.com besuchen. Die Website zeigt regelmäßig die vom Netzwerk generierte Zufälligkeit an, und Sie können sogar zuvor generierte Werte sehen. Nur zu, probieren Sie es aus!
So treten Sie dem Bündnis bei:
Möchten Sie der League beitreten? Wir sind kein exklusiver Club!
Wenn Sie eine Organisation oder eine Person sind, die daran interessiert ist, einen Beitrag zum Drand-Beacon zu leisten, sehen Sie sich die Entwicklerdokumentation für weitere Informationen zu den Anforderungen für die Einrichtung eines Servers und zum Beitritt zu unserer Gruppe an. Drand befindet sich derzeit in der Beta-Release-Phase, und eine Genehmigungsanforderung muss an leagueofentropy@googlegroups.com geschickt werden, um als beitragender Server zugelassen zu werden.
Ein Blick in die Zukunft
Es macht nur Sinn, dass das Internet der Zukunft unvorhersehbare Zufalls-Beacons erfordern wird. Die League of Entropy ist jetzt aktiv und schafft die Grundlage für zukünftige Systeme zum wirksamen Einsatz vertrauenswürdiger öffentlicher Zufälligkeit. Unser Ziel ist es, das Vertrauen der Nutzer zu stärken und eine zentrale Anlaufstelle für alle Ihre öffentlichen Entropie-Bedürfnisse zu bieten. Machen Sie mit!