Cloudflare wprowadził rozproszony generator liczb losowych

Firma Cloudflare przedstawiła usługa League of Entropy, w celu zapewnienia działania którego utworzono konsorcjum złożone z kilku organizacji zainteresowanych dostarczaniem wysokiej jakości liczb losowych. W przeciwieństwie do istniejących scentralizowanych systemów, League of Entropy nie polega na jednym źródle i wykorzystuje do generowania losowej sekwencji entropię, otrzymywaną z kilku niezwiązanych ze sobą generatorów, kontrolowanych przez różnych uczestników projektu. Dzięki rozproszonemu charakterowi projektu kompromitacja lub fałszerstwo jednego lub dwóch źródeł nie wpłynie na kompromitację finalnej liczby losowej.

Należy zauważyć, że generowane liczby losowe należą do kategorii publicznie dostępnych sekwencji, które nie mogą być używane do generowania kluczy szyfrowych oraz w obszarach, w których liczba losowa powinna być utrzymywana w tajemnicy. Usługa ma na celu dostarczanie liczb losowych, które są niemożliwe do przewidzenia z wyprzedzeniem, ale po ich wygenerowaniu stają się publicznie dostępne, w tym do weryfikacji wiarygodności wcześniejszych wartości losowych.

Publiczne liczby losowe są generowane co 60 sekund. Każda liczba jest powiązana z numerem sekwencji (round), według którego w dowolnym momencie i z dowolnego serwera uczestnika można uzyskać kiedykolwiek wygenerowaną wartość. Takie liczby losowe mogą być używane w systemach rozproszonych, kryptowalutach i blockchainach, w których różne węzły muszą mieć dostęp do wspólnego generatora liczb losowych (na przykład przy tworzeniu dowodu wykonanej pracy), a także podczas organizowania różnych loterii i tworzenia losowych prób w procesie audytu przeprowadzania wyborów.

Aby korzystać z usługi i wdrożyć własne węzły zaproponowano narzędzia Drand, napisany w języku Go i dostarczany na licencji MIT. Drand działa jako proces w tle, który łączy się z uczestniczącymi w rozproszonej sieci zewnętrznymi generatorami i zbiorowo formuje zbiorczą wartość losową. Zbiorcza wartość jest generowana z wykorzystaniem metod kryptografii progowej i związania bilinearnymGenerowanie podsumowującej wartości losowej może być przeprowadzone na systemie użytkownika bez udziału centralnych agregatorów.

Drand może być również stosowany do dostarczania lokalnie generowanych prywatnych liczb losowych klientom. Do przesyłania liczby losowej stosowany jest schemat szyfrowania ECIES, w ramach którego klient generuje klucz prywatny i publiczny. Klucz publiczny jest przekazywany do serwera z Drand. Liczba losowa jest szyfrowana przy użyciu tego klucza publicznego i może być odczytana tylko przez klienta, posiadającego klucz prywatny. Do łączenia się z serwerami można używać narzędzia "drand" (np. "drand get public group.toml", gdzie group.toml jest listą węzłów do zapytania) lub Web API (np. można użyć "curl https://drand.cloudflare.com/api/public" lub odwołać się z JavaScript za pomocą biblioteki DrandJS). Metadane zapytania są wysyłane w formacie TOML, a odpowiedź wydawana jest w JSON.

Obecnie do inicjatywy League of Entropy dołączyło pięć firm i organizacji, które udostępniły dostęp do swoich generatorów entropii. Uczestnicy projektu znajdują się w różnych krajach i wykorzystują różne metody pozyskiwania entropii:

  • Cloudflare, LavaRand, losowe wartości są formowane oparte na nieprzewidywalnych strumieniach cieczy w lamach lawowych, których obrazy są wykorzystywane jako wejściowa entropia dla CSPRNG (Cryptographically Secure PseudoRandom Number Generator);
  • EPFL (École Polytechnique Fédérale de Lausanne), URand,
    zastosowano lokalny generator /dev/urandom, który wykorzystuje wprowadzenie z klawiatury, ruchy myszy, strumienie ruchu itd. jako źródła entropii.
  • Universidad de Chile, UChile, jako źródło entropii stosuje sieć sejsmicznych czujników, a także dane z radia, aktywności w Twitterze, zmiany w blockchainie Ethereum oraz własnoręcznie zbudowany generator RNG;
  • Kudelski Security, ChaChaRand, dostarcza CRNG (Cryptographic Random Number Generator) oparty na szyfrze ChaCha20;
  • Protocol Labs, InterplanetaryRand, losowe dane są pozyskiwane z wykrywaczy szumów i łączone z Linux PRNG oraz wbudowanym w CPU generatorem liczb pseudolosowych.

Obecnie niezależni uczestnicy uruchomili 8 publicznych punktów dostępu do API, z których można uzyskać nie tylko bieżącą skondensowaną liczbę losową (na przykład „curl https://drand.cloudflare.com/api/public”), ale także określić wartość w określonym momencie w przeszłości („curl https://drand.cloudflare.com/api/public?round=1234”):

  • 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

Źródło: opennet.ru

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster