Cloudflare представи разпределен генератор на случайни числа

Компания Cloudflare представи сервис Лигата на ентропия, за функционирането на която е създадена консорциум от няколко организации, заинтересовани в предоставянето на качествени случайни числа. За разлика от съществуващите централизирани системи, Лигата на ентропия не разчита на един източник и използва ентропия за генериране на случайна последователност, получена от няколко несвързани помежду си генератора, контролирани от различни участници в проекта. Благодарение на разпределения характер на проекта, компрометирането или манипулирането на един или два от източниците няма да доведе до компрометиране на финалното случайно число.

Следва да се отбележи, че генерираните случайни числа попадат в категорията на публично достъпни последователности, които не могат да се използват за генериране на криптографски ключове и в области, в които случайното число трябва да остане в тайна. Услугата е насочена към предоставяне на случайни числа, които не могат да бъдат предсказани предварително, но след генериране тези числа стават публично достъпни, включително за проверка на автентичността на минали случайни стойности.

Публичните случайни числа се генерират на всеки 60 секунди. Всяко число се свързва с неговия номер в последователността (round), по който по всяко време и от всеки участник в сървъра може да бъде получена генерирана стойност. Подобни случайни числа могат да се използват в разпределени системи, криптовалути и блокчейни, в които различни възли трябва да имат достъп до единен генератор на случайни числа (например, при съставяне на доказателство за извършена работа), а също така при провеждане на различни лотарии и за формиране на случайни извадки в процеса на одит на изборите.

За работа с услугата и за разгръщане на собствени възли е предложен инструментариум Drand, написан на езика Go и предоставен под лиценза MIT. Drand функционира като фонов процес, който се свързва с участвуващите в разпределената мрежа външни генератори и колективно формира обобщена случайна стойност. Обобщената стойност се генерира с използване на методи на праговата криптография и на билинейното свързване. Генерацията на обобщена случайна стойност може да бъде извършена на системата на потребителя без привличане на централизирани агрегатори.

Drand може да се използва и за предоставяне на локално генерирани частни случайни числа на клиентите. За предаване на случайното число се прилага схема на шифроване ECIES, при която клиентът генерира частен и публичен ключ. Публичният ключ се предава на сървъра с Drand. Случайното число се шифрова с използването на този публичен ключ и може да бъде видяно само от клиента, притежаващ частния ключ. За достъп до сървърите може да се използва инструментът „drand“ (например, „drand get public group.toml“, където group.toml е списък с възли за запитване) или Web API (например „curl https://drand.cloudflare.com/api/public“ или чрез JavaScript с библиотека DrandJS). Метаданните на запитването се изпращат във формат TOML, а отговорът се предоставя в JSON.

В момента към инициативата League of Entropy са се присъединили пет компании и организации, които предоставят достъп до своите генератори на ентропия. Участниците в проекта са разположени в различни държави и използват различни методи за получаване на ентропия:

  • Cloudflare, LavaRand, случайни стойности се форматират базирани на непредсказуеми потоци течности в лавови лампи, изображенията на които служат като входна ентропия за CSPRNG (Cryptographically Secure PseudoRandom Number Generator);
  • EPFL (Федерална политехническа школа в Лозана), URand,
    използва стандартен локален генератор /dev/urandom, който използва клавиатурен вход, движение на мишката, потоци трафик и т.н. като източници на ентропия.
  • Университетът на Чили, UChile, прилага мрежа от сеизмични датчици, както и данни от радио ефира, активност в Twitter, промени в блокчейн Ethereum и домашен апаратен генератор RNG като източник на ентропия;
  • Kudelski Security, ChaChaRand, предоставя CRNG (Cryptographic Random Number Generator) на базата на шифър ChaCha20;
  • Protocol Labs, InterplanetaryRand, случайните данни се извлекат от приемници на шум и се комбинират с Linux PRNG и вградения в CPU генератор на псевдослучайни числа.

В момента независими участници са стартирали 8 публични точки за достъп до API, чрез които може да се получи както текущото сводово случайно число (например „curl https://drand.cloudflare.com/api/public“), така и стойността на определен момент в миналото („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

Източник: opennet.ru

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster