Cryptosim: experimente a API Cryptosat

Dec 05 2022
A Cryptosat constrói e lança pequenos satélites em órbitas baixas da Terra (LEO). Lá, fisicamente fora do alcance de qualquer pessoa, eles servem como os módulos criptográficos mais seguros que protegem operações e protocolos confidenciais e executam funções como coleta de entropia, configurações confiáveis ​​para protocolos criptográficos ou assinatura de transações e dados do espaço.

A Cryptosat constrói e lança pequenos satélites em órbitas baixas da Terra (LEO). Lá, fisicamente fora do alcance de qualquer pessoa, eles servem como os módulos criptográficos mais seguros que protegem operações e protocolos confidenciais e executam funções como coleta de entropia, configurações confiáveis ​​para protocolos criptográficos ou assinatura de transações e dados do espaço.

A maioria dos desenvolvedores e usuários está muito distante da indústria espacial e nunca interagiu diretamente com um satélite. É por isso que pensamos que seria extremamente útil dar aos desenvolvedores uma noção de algumas das possibilidades, bem como das restrições de trabalhar com uma constelação de satélites.

Nesta postagem, mergulhamos no Cryptosim (Cryptosat Simulator) — um simulador de sandbox e um tutorial interativo que desenvolvemos desde que iniciamos o Cryptosat. O Cryptosim pode ser acessado usando qualquer navegador moderno e permite que os desenvolvedores aprendam sobre a funcionalidade de nossos satélites antes de qualquer integração real com nosso pipeline de produção.

Captura de tela da primeira versão do Cryptosim desenvolvida por Gil Shotan.

A interface do usuário do simulador é dividida entre um tutorial (no lado direito) que descreve as funções da API suportadas pelo Cryptosat, um mapa que mostra a trajetória do satélite e um console JS onde o usuário pode testar programaticamente a API e interagir com o simulado satélite para solicitar seu status, assinar mensagens, solicitar aleatoriedade, gerar pares de chaves com criptografia de atraso e muito mais.
O tutorial explica a premissa geral do Cryptosat, ensina sobre janelas de comunicação e disponibilidade de satélite, a interface assíncrona para os satélites e mostra as diferentes funções criptográficas suportadas pelo Cryptosat, bem como como usá-las em um contexto.
Vamos dar uma olhada no exemplo de Public Randomness , também conhecido como Random Beacon ou VRF(Função Aleatória Verificável).

Exemplo de aleatoriedade pública. Observação: aqui, usamos um método para obter a chave de verificação de resposta, mas, na realidade, a chave pública de um satélite seria fornecida por meio de um canal diferente que não pode ser controlado por um man-in-the-middle.

O Cryptosat transmite periodicamente um farol aleatório - uma sequência de bits imprevisível gerada a partir da entropia coletada a bordo de um satélite. Este farol pode ser usado para executar loterias, gerar embaralhamentos NFT aleatórios e muito mais. A chamada cryptosat.getPublicRandom()retorna o farol mais recente recebido da constelação de satélites do Cryptosat.

Do ponto de vista da física, ele realmente mostra em um mapa a trajetória real de nosso primeiro satélite, o Crypto1, com base em dados ( TLE ) extraídos do NORAD, uma agência dos EUA que monitora todos os objetos em movimento em órbita. À medida que lançarmos mais satélites, iremos adicionando aqueles no Cryptosim com suas respectivas trajetórias.

API assíncrona

Como os satélites não são visíveis para as estações terrestres 100% do tempo, às vezes pode haver um atraso significativo na execução de uma solicitação do usuário. Portanto, a API do satélite é assíncrona. As funções retornam um objeto de solicitação, que você pode consultar para obter o status de conclusão da solicitação chamando o .status()método. O status de solicitação permanecerá Pendingenquanto os satélites estiverem fora do alcance de qualquer estação terrestre. Assim que for executado, o status mudará para Ready. O usuário pode chamar o .result()método com segurança para obter a resposta do satélite.

Usando a API de solicitações assíncronas

Exemplos de casos de uso

O Cryptosim mostra alguns dos casos de uso em que um usuário pode querer usar os serviços do Cryptosat. O tema comum a todos eles é usar os satélites Cryptosat como uma raiz de confiança criptográfica segura, confiável e à prova de adulteração, que pode ser confiável para operar corretamente e fornecer integridade criptográfica devido a eles estarem fisicamente fora do alcance até mesmo dos mais adversários sofisticados.

A versão atual do Cryptosim inclui exemplos para:

  • Aleatoriedade pública (Random Beacon)
  • Aleatoriedade Privada — onde um usuário pode solicitar que bits aleatórios sejam criptografados para uma chave pública que eles fornecem na solicitação.
  • Recuperar um carimbo de data/hora assinado — que pode ser usado por aplicativos que exigem uma fonte confiável de tempo ou contratos inteligentes que precisam garantir que um determinado período de tempo tenha passado no mundo real.
  • Assinando quaisquer dados no espaço
  • Delay Encryption — onde um satélite gera um par de chaves criptográficas e publica a chave pública. A chave privada não é liberada antes de um período de tempo especificado, evitando a descriptografia prematura de quaisquer dados criptografados na chave pública publicada. Isso pode ser usado, por exemplo, em leilões, esquemas de votação e muito mais (envie-nos um caso de uso que você goste!).

API RESTful

Além da simulação baseada em navegador independente, estamos trabalhando para abrir o acesso a uma API RESTful. A API permitiria o acesso aos satélites de produção para usuários autorizados, bem como a uma constelação simulada para fins de desenvolvimento e teste.

Contribuição de código aberto

Se estiver interessado em contribuir com ideias adicionais e sugerir casos de uso para o Cryptosat, você pode brincar com o código-fonte do Cryptosim, que está disponível em nosso Github . O repositório principal é cryptosim-tutorial, mas, dependendo das partes que você deseja ajustar, você também pode verificar os repositórios cryptosime .cryptosim-visualization

Usando satélites Cryptosat

Lembre-se de que o objetivo é aprender a usar a API e, em seguida, usar os satélites reais do Cryptosat e obter solicitações atendidas do espaço. Entre em contato conosco em [email protected] para obter mais informações sobre como integrar com nosso sistema de produção. Mais informações técnicas sobre o Cryptosat e suas APIs estão em nosso portal de documentação .