Cloudflare Dienst , um dessen Betrieb ein Konsortium mehrerer Organisationen gebildet wurde, die an der Bereitstellung qualitativ hochwertiger Zufallszahlen interessiert sind. Im Unterschied zu bestehenden zentralisierten Systemen verlässt sich die League of Entropy nicht auf eine einzige Quelle und verwendet zur Generierung einer Zufallssequenz Entropie, von mehreren nicht miteinander verbundenen Generatoren, die von verschiedenen Teilnehmern des Projekts kontrolliert werden. Dank der verteilten Natur des Projekts führt die Kompromittierung oder Fälschung einer oder zweier Quellen nicht zur Kompromittierung der finalen Zufallszahl.
Es ist zu beachten, dass die generierten Zufallszahlen zur Kategorie der öffentlich zugänglichen Sequenzen gehören, die nicht zur Generierung von Verschlüsselungsschlüsseln und in Bereichen verwendet werden können, in denen die Zufallszahl geheim gehalten werden muss. Der Dienst zielt darauf ab, Zufallszahlen bereitzustellen, die nicht im Voraus vorhersehbar sind, nach der Generierung jedoch öffentlich zugänglich werden, auch um die Authentizität früherer Zufallswerte zu überprüfen.
Öffentliche Zufallszahlen werden alle 60 Sekunden generiert. Jede Zahl wird mit ihrer Sequenznummer (round) verknüpft, anhand der in jedem Moment und von jedem teilnehmenden Server ein einmal generierter Wert abgerufen werden kann. Solche Zufallszahlen können in verteilten Systemen, Kryptowährungen und Blockchains angewendet werden, bei denen verschiedene Knoten Zugang zu einem einheitlichen Zufallszahlengenerator haben müssen (zum Beispiel bei der Erstellung eines Proof of Work) sowie bei verschiedenen Lotterien und zur Bildung von Zufallsstichproben im Prozess der Wahlprüfung.
Um mit dem Dienst zu arbeiten und eigene Knoten bereitzustellen, Toolkit , geschrieben in Go und lizenziert unter der MIT-Lizenz. Drand läuft als Hintergrundprozess, der sich mit externen Generatoren in einem verteilten Netzwerk verbindet und kollektiv einen aggregierten Zufallswert bildet. Der aggregierte Wert wird unter Verwendung von Methoden und generiert. Die Generierung des aggregierten Zufallswerts kann auf dem Usersystem ohne die Einbeziehung zentralisierter Aggregatoren erfolgen.
Drand kann auch verwendet werden, um lokal generierte, private Zufallszahlen an Kunden zu liefern. Zur Übertragung der Zufallszahl wird das ECIES-Verschlüsselungsverfahren verwendet, bei dem der Kunde ein Schlüsselpaar (privat und öffentlich) erstellt. Der öffentliche Schlüssel wird an den Drand-Server gesendet. Die Zufallszahl wird unter Verwendung dieses öffentlichen Schlüssels verschlüsselt und kann nur vom Kunden, der den privaten Schlüssel besitzt, eingesehen werden. Zur Interaktion mit den Servern kann das „drand“-Tool verwendet werden (zum Beispiel „drand get public group.toml“, wobei group.toml eine Liste von Knoten zur Abfrage ist) oder die Web-API (zum Beispiel kann „curl https://drand.cloudflare.com/api/public“ verwendet werden, oder man kann über JavaScript mit einer Bibliothek darauf zugreifen. ). Die Metadaten der Anfrage werden im TOML-Format gesendet, die Antwort erfolgt im JSON-Format.
Aktuell haben sich fünf Unternehmen und Organisationen der Initiative League of Entropy angeschlossen, die Zugang zu ihren Entropie-Generatoren bereitstellen. Die am Projekt beteiligten Teilnehmer befinden sich in verschiedenen Ländern und nutzen unterschiedliche Methoden zur Gewinnung von Entropie:
- Cloudflare, , Zufallswerte basierend auf unvorhersehbaren Flüssigkeitsströmen in , deren Bilder als Eingabe-Entropie für den CSPRNG (Cryptographically Secure PseudoRandom Number Generator) verwendet werden;
- EPFL (École polytechnique fédérale de Lausanne), URand,
setzt den lokalen Generator /dev/urandom ein, der Eingaben von der Tastatur, der Mausbewegung, dem Trafficfluss usw. als Entropiequellen verwendet. - Die Universidad de Chile, , verwendet zur Entropiegewinnung ein Netzwerk aus seismischen Sensoren sowie Daten aus Radioübertragungen, Twitter-Aktivitäten, Änderungen der Ethereum-Blockchain und einen selbstgebauten Hardware-RNG-Generator;
- Kudelski Security, ChaChaRand, bietet einen CRNG (Cryptographic Random Number Generator) basierend auf dem ChaCha20-Verschlüsselungsalgorithmus;
- Protocol Labs, InterplanetaryRand, erhält Zufallsdaten aus Rauschfänger und kombiniert sie mit dem Linux PRNG und dem im CPU integrierten Pseudozufallszahlengenerator.
Derzeit haben unabhängige Akteure 8 öffentliche API-Zugänge eingerichtet, über die sowohl die aktuelle aggregierte Zufallszahl (zum Beispiel „curl https://drand.cloudflare.com/api/public“) als auch der Wert zu einem bestimmten Zeitpunkt in der Vergangenheit (zum Beispiel „curl https://drand.cloudflare.com/api/public?round=1234“) abgerufen werden können:
- https://drand.cloudflare.com:443
- https://random.uchile.cl:8080
- https://drand.cothority.net:7003
- https://drand.kudelskisecurity.com:443
- https://drand.lbarman.ch:443
- https://drand.nikkolasg.xyz:8888
- https://drand.protocol.ai:8080
- https://drand.zerobyte.io:8888
Quelle: opennet.ru
