Cloudflare ha presentato un generatore di numeri casuali distribuito

Cloudflare ha presentato servizio League of Entropy, per il funzionamento del quale è stato formato un consorzio di più organizzazioni interessate a fornire numeri casuali di alta qualità. A differenza dei sistemi centralizzati esistenti, League of Entropy non si basa su un'unica fonte e utilizza per la generazione di sequenze casuali l'entropia, ottenuta da più generatori non collegati tra loro, controllati da diversi partecipanti al progetto. Grazie alla natura distribuita del progetto, la compromissione o la falsificazione di una o due delle fonti non comprometterà il numero casuale finale.

Va notato che i numeri casuali generati rientrano nella categoria delle sequenze pubblicamente disponibili, che non possono essere utilizzate per la generazione di chiavi di crittografia e in ambiti in cui un numero casuale deve rimanere riservato. Il servizio è volto a fornire numeri casuali che non possono essere previsti in anticipo, ma che dopo la generazione diventano pubblicamente disponibili, compresa la verifica della validità dei valori casuali passati.

I numeri casuali pubblici vengono generati ogni 60 secondi. Ogni numero è associato al proprio numero di sequenza (round), tramite il quale è possibile recuperare in qualsiasi momento e da qualsiasi server partecipante il valore generato in precedenza. Tali numeri casuali possono essere utilizzati in sistemi distribuiti, criptovalute e blockchain, dove diversi nodi devono avere accesso a un generatore comune di numeri casuali (ad esempio, durante la generazione della prova di lavoro), nonché per la conduzione di varie lotterie e per la creazione di campioni casuali nel processo di audit delle elezioni.

Per lavorare con il servizio e per distribuire propri nodi designato strumentazione Drand, scritto in Go e distribuito sotto licenza MIT. Drand funziona come processo in background, che si collega a generatori esterni partecipanti in una rete distribuita e forma collettivamente un valore casuale aggregato. Il valore aggregato è generato utilizzando metodi di crittografia a soglia e di accoppiamenti bilineari. La generazione di un valore casuale aggregato può essere eseguita sul sistema dell'utente senza coinvolgere aggregatori centralizzati.

Drand può anche essere utilizzato per fornire ai clienti numeri casuali privati generati localmente. Per la trasmissione del numero casuale, viene utilizzato un schema di crittografia ECIES, in cui il cliente genera una chiave privata e una chiave pubblica. La chiave pubblica viene inviata al server con Drand. Il numero casuale è crittografato utilizzando questa chiave pubblica e può essere visualizzato solo dal cliente che possiede la chiave privata. Si può utilizzare l'utilità 'drand' per interagire con i server (ad esempio, 'drand get public group.toml', dove group.toml è l'elenco dei nodi da interrogare) oppure Web API (ad esempio, è possibile utilizzare 'curl https://drand.cloudflare.com/api/public' o effettuare chiamate da JavaScript tramite la libreria DrandJS). I metadati della richiesta sono inviati in formato TOML, mentre la risposta è restituita in JSON.

Attualmente, cinque aziende e organizzazioni hanno aderito all'iniziativa League of Entropy, fornendo accesso ai propri generatori di entropia. I partecipanti al progetto provengono da diversi paesi e utilizzano metodi diversi per generare entropia:

  • Cloudflare, LavaRand, valori casuali vengono create basati su flussi imprevisti di liquido in lampade di lava, le cui immagini vengono utilizzate come input di entropia per CSPRNG (Generatore di Numeri Pseudo-Casuali Sicuri dal Punto di Vista Cryptografico);
  • EPFL (École Polytechnique Fédérale de Lausanne), URand,
    utilizza un generatore locale standard /dev/urandom, che sfrutta come fonti di entropia l'input da tastiera, il movimento del mouse, il traffico di rete, ecc.
  • Università del Cile, UChile, utilizza come fonte di entropia una rete di sensori sismici, dati delle trasmissioni radio, attività su Twitter, cambiamenti nella blockchain di Ethereum e un generatore di numeri casuali hardware fai-da-te;
  • Kudelski Security, ChaChaRand, fornisce un CRNG (Generatore di Numeri Casuali Cryptografici) basato sull'algoritmo ChaCha20;
  • Protocol Labs, InterplanetaryRand, i dati casuali vengono estratti dai dispositivi di cattura del rumore e combinati con Linux PRNG e un generatore di numeri pseudocasuali integrato nella CPU.

Attualmente, 8 punti di accesso API pubblici sono stati avviati da partecipanti indipendenti, attraverso i quali è possibile conoscere sia il numero casuale aggregato attuale (ad esempio, «curl https://drand.cloudflare.com/api/public»), sia determinare il valore di un momento specifico nel passato («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

Fonte: opennet.ru

Acquista un hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista un hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster