Cloudflare představil distribuovaný generátor náhodných čísel

Společnost Cloudflare prezentovány služba Liga entropie, k jehož zajištění provozu bylo vytvořeno konsorcium několika organizací se zájmem o poskytování kvalitních náhodných čísel. Na rozdíl od existujících centralizovaných systémů se League of Entropy nespoléhá na jediný zdroj a využívá entropii ke generování náhodné sekvence, přijaté z několika nesouvisejících generátorů ovládaných různými účastníky projektu. Vzhledem k distribuované povaze projektu nepovede kompromitace nebo manipulace s jedním nebo dvěma zdroji ke kompromitaci konečného náhodného čísla.

Je třeba poznamenat, že generovaná náhodná čísla jsou klasifikována jako veřejně dostupné sekvence, které nelze použít ke generování šifrovacích klíčů, a v oblastech, kde musí být náhodné číslo utajeno. Cílem služby je poskytovat náhodná čísla, která nelze předem předvídat, ale jakmile jsou vygenerována, stanou se tato čísla veřejně dostupná, včetně kontroly spolehlivosti minulých náhodných hodnot.

Veřejná náhodná čísla jsou generována každých 60 sekund. Každé číslo je spojeno s vlastním pořadovým číslem (kolem), kterým můžete kdykoli a z kteréhokoli zúčastněného serveru získat jednou vygenerovanou hodnotu. Taková náhodná čísla lze použít v distribuovaných systémech, kryptoměnách a blockchainech, ve kterých musí mít různé uzly přístup k jedinému generátoru náhodných čísel (například při generování dokladu o vykonané práci), dále při provádění různých loterií a pro generování náhodných čísel. vzorky v procesu auditu průjezdních voleb.

Pro práci se službou a nasazení vlastních uzlů navržený nástroje Drand, napsaný v Go a vydaný pod licencí MIT. Drand běží ve formě procesu na pozadí, který komunikuje s externími generátory účastnícími se distribuované sítě a společně generuje souhrnnou náhodnou hodnotu. Souhrnná hodnota je generována pomocí metod prahová kryptografie и bilineární konjugace. Generování souhrnné náhodné hodnoty lze provádět v systému uživatele bez zapojení centralizovaných agregátorů.

Drand lze také použít k doručování lokálně generovaných soukromých náhodných čísel klientům. Pro přenos náhodného čísla se používá šifrovací schéma ECIES, v rámci kterého si klient vygeneruje soukromý a veřejný klíč. Veřejný klíč je přenesen na server z Drand. Náhodné číslo je zašifrováno pomocí daného veřejného klíče a může jej zobrazit pouze klient, který vlastní soukromý klíč. Pro přístup k serverům můžete použít nástroj „drand“ (například „drand get public group.toml“, kde group.toml je seznam uzlů k dotazování) nebo webové rozhraní API (například můžete použít „ curl https://drand.cloudflare.com /api/public" nebo přístup z JavaScriptu pomocí knihovny DrandJS). Metadata požadavku jsou odeslána ve formátu TOML a odpověď je vrácena ve formátu JSON.

V současné době se k iniciativě League of Entropy připojilo pět společností a organizací, které poskytují přístup ke svým generátorům entropie. Účastníci zahrnutí do projektu se nacházejí v různých zemích a používají různé metody pro získání entropie:

  • mračna, LavaRand, náhodné hodnoty vytvořený na základě nepředvídatelných přítoků tekutin lávové lampy, jejichž obrazy jsou dodávány jako vstupní entropie pro CSPRNG (Cryptographically Secure PseudoRandom Number Generator);
  • EPFL (Ecole Polytechnique Federale de Lausanne), URand,
    používá se standardní lokální generátor /dev/urandom, který jako zdroje entropie využívá vstup z klávesnice, pohyb myši, dopravní toky atd.

  • chilská univerzita, UChile, síť seismických senzorů je využívána jako zdroj entropie, dále data z rozhlasového vysílání, aktivita Twitteru, změny v blockchainu Ethereum a podomácku vyrobený hardwarový RNG generátor;
  • Kudelski Security, ChaChaRand, poskytuje CRNG (Cryptographic Random Number Generator) založený na šifře ChaCha20;
  • Protocol Labs, InterplanetaryRand, náhodná data jsou extrahována z lapačů hluku a kombinována s Linux PRNG a generátorem pseudonáhodných čísel zabudovaným do CPU.

Aktuálně nezávislí účastníci spustili 8 veřejných přístupových bodů k API, prostřednictvím kterých můžete zjistit jak aktuální souhrnné náhodné číslo (například „curl https://drand.cloudflare.com/api/public“), tak hodnotu v určitém okamžiku v minulosti („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

Zdroj: opennet.ru

Přidat komentář