Cryptosim: prova l'API Cryptosat

Dec 05 2022
Cryptosat costruisce e lancia piccoli satelliti in orbita terrestre bassa (LEO). Lì, fisicamente fuori dalla portata di chiunque, fungono da moduli crittografici più sicuri che proteggono operazioni e protocolli sensibili ed eseguono funzioni come la raccolta di entropia, configurazioni affidabili per protocolli crittografici o firma di transazioni e dati dallo spazio.

Cryptosat costruisce e lancia piccoli satelliti in orbita terrestre bassa (LEO). Lì, fisicamente fuori dalla portata di chiunque, fungono da moduli crittografici più sicuri che proteggono operazioni e protocolli sensibili ed eseguono funzioni come la raccolta di entropia, configurazioni affidabili per protocolli crittografici o firma di transazioni e dati dallo spazio.

La maggior parte degli sviluppatori e degli utenti è molto lontana dall'industria spaziale e non ha mai interagito direttamente con un satellite. Questo è il motivo per cui abbiamo pensato che sarebbe stato estremamente utile dare agli sviluppatori un'idea di alcune delle possibilità, nonché dei vincoli di lavorare con una costellazione di satelliti.

In questo post, ci immergiamo in Cryptosim (Cryptosat Simulator), un simulatore sandbox e un tutorial interattivo che abbiamo sviluppato da quando abbiamo avviato Cryptosat. Cryptosim è accessibile utilizzando qualsiasi browser moderno e consente agli sviluppatori di conoscere le funzionalità dei nostri satelliti prima di qualsiasi integrazione effettiva con la nostra pipeline di produzione.

Screenshot della prima versione di Cryptosim sviluppata da Gil Shotan.

L'interfaccia utente del simulatore è suddivisa tra un tutorial (sul lato destro) che descrive le funzioni API supportate da Cryptosat, una mappa che mostra la traiettoria del satellite e una console JS dove l'utente può provare programmaticamente l'API e interagire con il simulatore satellite per richiedere il suo stato, firmare messaggi, richiedere casualità, generare coppie di chiavi Delay-Encryption e altro ancora.
Il tutorial spiega la premessa generale di Cryptosat, insegna le finestre di comunicazione e la disponibilità dei satelliti, l'interfaccia asincrona ai satelliti e mostra le diverse funzioni crittografiche supportate da Cryptosat, nonché come utilizzarle in un contesto.
Diamo un'occhiata all'esempio di Public Randomness , noto anche come Random Beacon o VRF(Funzione casuale verificabile).

Esempio di casualità pubblica. Nota: qui utilizziamo un metodo per ottenere la chiave di verifica della risposta, ma in realtà la chiave pubblica di un satellite verrebbe fornita tramite un canale diverso che non può essere controllato da un man-in-the-middle.

Cryptosat trasmette periodicamente un segnale casuale, una sequenza di bit imprevedibile generata dall'entropia raccolta a bordo di un satellite. Questo beacon potrebbe essere utilizzato per eseguire lotterie, generare mescolamenti NFT casuali e altro ancora. Calling cryptosat.getPublicRandom()restituisce il beacon più recente ricevuto dalla costellazione di satelliti di Cryptosat.

Dal punto di vista della fisica, in realtà mostra su una mappa la vera traiettoria del nostro primo satellite, Crypto1, sulla base dei dati ( TLE ) estratti dal NORAD, un'agenzia statunitense che monitora tutti gli oggetti in movimento in orbita. Man mano che lanceremo più satelliti, li aggiungeremo in Cryptosim con le rispettive traiettorie.

API asincrona

Poiché i satelliti non sono visibili alle stazioni di terra il 100% delle volte, a volte può verificarsi un ritardo significativo nell'esecuzione di una richiesta dell'utente. Pertanto, l'API satellite è asincrona. Le funzioni restituiscono un oggetto richiesta, che puoi interrogare per lo stato di completamento della richiesta chiamando il .status()metodo. Lo stato di richiesta rimarrà Pendingfino a quando i satelliti saranno fuori dalla portata di qualsiasi stazione di terra. Non appena viene eseguito, lo stato passerà a Ready. L'utente può quindi chiamare in modo sicuro il .result()metodo per ottenere la risposta del satellite.

Utilizzo dell'API delle richieste asincrone

Esempi di casi d'uso

Cryptosim mette in mostra alcuni dei casi d'uso in cui un utente potrebbe voler utilizzare i servizi Cryptosat. Il tema comune a tutti loro è l'utilizzo dei satelliti Cryptosat come root-of-trust crittografico a prova di manomissione, affidabile e sicuro di cui ci si può fidare per funzionare correttamente e fornire integrità crittografica poiché sono fisicamente fuori dalla portata anche del più avversari sofisticati.

La versione attuale di Cryptosim include esempi per:

  • Casualità pubblica (Random Beacon)
  • Casualità privata: in cui un utente può richiedere la crittografia di bit casuali in una chiave pubblica fornita nella richiesta.
  • Recupero di un timestamp firmato, che può essere utilizzato da applicazioni che richiedono una fonte attendibile di tempo o contratti intelligenti che devono garantire che sia trascorso un certo periodo di tempo nel mondo reale.
  • Firmare qualsiasi dato nello spazio
  • Delay Encryption — in cui un satellite genera una coppia di chiavi crittografiche e pubblica la chiave pubblica. La chiave privata non viene rilasciata prima che sia trascorso un periodo di tempo specificato, impedendo la decrittografia prematura di qualsiasi dato crittografato nella chiave pubblica pubblicata. Questo potrebbe essere utilizzato, ad esempio, in aste, schemi di voto e altro (inviaci un caso d'uso di cui sei entusiasta!).

API RESTful

Oltre alla simulazione autonoma basata su browser, stiamo lavorando per aprire l'accesso a un'API RESTful. L'API consentirebbe l'accesso ai satelliti di produzione per gli utenti autorizzati, nonché a una costellazione simulata per scopi di sviluppo e test.

Contributo open source

Se sei interessato a contribuire con ulteriori idee e suggerire casi d'uso per Cryptosat, puoi giocare con il codice sorgente di Cryptosim, che è disponibile sul nostro Github . Il repository principale è cryptosim-tutorialma, a seconda dei pezzi che desideri modificare, potresti anche voler controllare i repository cryptosime .cryptosim-visualization

Utilizzo dei satelliti Cryptosat

Ricorda che il punto è imparare come utilizzare l'API e quindi utilizzare gli effettivi satelliti Cryptosat e ottenere richieste servite dallo spazio. Mettiti in contatto con noi a [email protected] per maggiori informazioni su come integrarsi con il nostro sistema di produzione. Ulteriori informazioni tecniche su Cryptosat e le sue API sono disponibili sul nostro portale di documentazione .