Cryptosim: wypróbuj API Cryptosat

Dec 05 2022
Cryptosat buduje i wystrzeliwuje małe satelity na niskie orbity okołoziemskie (LEO). Tam, fizycznie poza zasięgiem kogokolwiek, służą jako najbezpieczniejsze moduły kryptograficzne, które chronią wrażliwe operacje i protokoły oraz wykonują funkcje, takie jak zbieranie entropii, zaufane konfiguracje protokołów kryptograficznych lub podpisywanie transakcji i danych z kosmosu.

Cryptosat buduje i wystrzeliwuje małe satelity na niskie orbity okołoziemskie (LEO). Tam, fizycznie poza zasięgiem kogokolwiek, służą jako najbezpieczniejsze moduły kryptograficzne, które chronią wrażliwe operacje i protokoły oraz wykonują funkcje, takie jak zbieranie entropii, zaufane konfiguracje protokołów kryptograficznych lub podpisywanie transakcji i danych z kosmosu.

Większość programistów i użytkowników jest daleko od przemysłu kosmicznego i nigdy nie miała bezpośredniego kontaktu z satelitą. Dlatego pomyśleliśmy, że byłoby niezwykle pomocne dać programistom poczucie niektórych możliwości, a także ograniczeń związanych z pracą z konstelacją satelitów.

W tym poście zagłębimy się w Cryptosim (Cryptosat Simulator) — symulator piaskownicy i interaktywny samouczek, który rozwijamy od początku Cryptosat. Cryptosim jest dostępny za pomocą dowolnej nowoczesnej przeglądarki i umożliwia programistom zapoznanie się z funkcjonalnością naszych satelitów przed faktyczną integracją z naszym potokiem produkcyjnym.

Zrzut ekranu pierwszej wersji Cryptosim opracowanej przez Gila Shotana.

Interfejs symulatora jest podzielony na samouczek (po prawej stronie), który opisuje funkcje API obsługiwane przez Cryptosat, mapę pokazującą trajektorię satelity oraz konsolę JS, w której użytkownik może programowo wypróbować API i wchodzić w interakcje z symulowanym satelitę, aby żądać jego statusu, podpisywać wiadomości, żądać losowości, generować pary kluczy Delay-Encryption i nie tylko.
Samouczek wyjaśnia ogólne założenia Cryptosat, uczy o oknach komunikacyjnych i dostępności satelitów, asynchronicznym interfejsie do satelitów oraz prezentuje różne funkcje kryptograficzne obsługiwane przez Cryptosat, a także jak ich używać w kontekście.
Rzućmy okiem na przykład Public Randomness , znanego również jako Random Beacon lub VRF(Weryfikowalna funkcja losowa).

Przykład losowości publicznej. Uwaga: tutaj używamy metody uzyskiwania klucza weryfikacyjnego odpowiedzi, ale w rzeczywistości klucz publiczny satelity byłby dostarczany przez inny kanał, którego nie może kontrolować człowiek pośrodku.

Cryptosat okresowo emituje losowy sygnał nawigacyjny — nieprzewidywalną sekwencję bitów generowaną na podstawie entropii zebranej na pokładzie satelity. Ten sygnał nawigacyjny może być używany do przeprowadzania loterii, generowania losowych tasowań NFT i nie tylko. Calling cryptosat.getPublicRandom()zwraca najnowszy sygnał nawigacyjny odebrany z konstelacji satelitów Cryptosat.

Z punktu widzenia fizyki faktycznie pokazuje na mapie rzeczywistą trajektorię naszego pierwszego satelity, Crypto1, na podstawie danych ( TLE ) pobranych z NORAD, amerykańskiej agencji monitorującej wszystkie poruszające się obiekty na orbicie. Gdy wystrzelimy więcej satelitów, będziemy dodawać je w Cryptosim wraz z ich trajektoriami.

Asynchroniczny interfejs API

Ponieważ satelity nie są widoczne dla stacji naziemnych przez 100% czasu, czasami może wystąpić znaczne opóźnienie w wykonaniu żądania użytkownika. W związku z tym satelitarny interfejs API jest asynchroniczny. Funkcje zwracają obiekt żądania, do którego można zapytać o stan realizacji żądania, wywołując .status()metodę. Status żądania pozostanie Pendingtak długo, jak długo satelity będą poza zasięgiem jakiejkolwiek stacji naziemnej. Zaraz po wykonaniu status zmieni się na Ready. Użytkownik może następnie bezpiecznie wywołać .result()metodę w celu uzyskania odpowiedzi satelity.

Korzystanie z interfejsu API żądań asynchronicznych

Przykłady przypadków użycia

Cryptosim przedstawia niektóre przypadki użycia, w których użytkownik może chcieć skorzystać z usług Cryptosat. Wspólnym motywem dla wszystkich z nich jest używanie satelitów Cryptosat jako odpornego na manipulacje, godnego zaufania i bezpiecznego kryptograficznego źródła zaufania, któremu można zaufać, że działa poprawnie i zapewnia integralność kryptograficzną, ponieważ są one fizycznie poza zasięgiem nawet najbardziej wyrafinowani przeciwnicy.

Obecna wersja Cryptosim zawiera przykłady dla:

  • Publiczna losowość (losowa latarnia morska)
  • Prywatna losowość — w przypadku której użytkownik może zażądać zaszyfrowania losowych bitów do klucza publicznego podanego w żądaniu.
  • Pobieranie podpisanego znacznika czasu — z którego mogą korzystać aplikacje wymagające zaufanego źródła czasu lub inteligentne kontrakty, które muszą zapewnić, że upłynął określony czas w świecie rzeczywistym.
  • Podpisywanie dowolnych danych w przestrzeni
  • Delay Encryption — gdzie satelita generuje parę kluczy kryptograficznych i publikuje klucz publiczny. Klucz prywatny nie jest uwalniany przed upływem określonego czasu, co zapobiega przedwczesnemu odszyfrowaniu jakichkolwiek danych zaszyfrowanych do opublikowanego klucza publicznego. Można to wykorzystać na przykład w aukcjach, programach głosowania i nie tylko (prześlij nam przypadek użycia, którym jesteś podekscytowany!).

RESTful API

Oprócz niezależnej symulacji opartej na przeglądarce pracujemy nad otwarciem dostępu do interfejsu API RESTful. API umożliwiłoby dostęp do satelitów produkcyjnych dla uprawnionych użytkowników, a także do symulowanej konstelacji do celów rozwojowych i testowych.

Wkład open source

Jeśli chcesz wnieść dodatkowe pomysły i zasugerować przypadki użycia dla Cryptosat, możesz pobawić się kodem źródłowym Cryptosim, który jest dostępny na naszym Githubie . Głównym repozytorium jest cryptosim-tutorial, ale w zależności od elementów, które chcesz ulepszyć, możesz również sprawdzić repozytoria cryptosimi cryptosim-visualization.

Korzystanie z satelitów Cryptosat

Pamiętaj, że chodzi o to, aby nauczyć się korzystać z API, a następnie korzystać z rzeczywistych satelitów Cryptosat i otrzymywać żądania obsługiwane z kosmosu. Skontaktuj się z nami pod adresem [email protected] , aby uzyskać więcej informacji na temat integracji z naszym systemem produkcyjnym. Więcej informacji technicznych o Cryptosat i jego interfejsach API można znaleźć na naszym portalu z dokumentacją .