Cryptosim: pruebe la API de Cryptosat

Dec 05 2022
Cryptosat construye y lanza pequeños satélites a órbitas terrestres bajas (LEO). Allí, físicamente fuera del alcance de cualquiera, sirven como los módulos criptográficos más seguros que protegen las operaciones y los protocolos confidenciales y realizan funciones como recolectar entropía, configuraciones confiables para protocolos criptográficos o firmar transacciones y datos desde el espacio.

Cryptosat construye y lanza pequeños satélites a órbitas terrestres bajas (LEO). Allí, físicamente fuera del alcance de cualquiera, sirven como los módulos criptográficos más seguros que protegen las operaciones y los protocolos confidenciales y realizan funciones como recolectar entropía, configuraciones confiables para protocolos criptográficos o firmar transacciones y datos desde el espacio.

La mayoría de los desarrolladores y usuarios están muy alejados de la industria espacial y nunca han interactuado directamente con un satélite. Es por eso que pensamos que sería extremadamente útil dar a los desarrolladores una idea de algunas de las posibilidades, así como de las limitaciones de trabajar con una constelación de satélites.

En esta publicación, nos sumergimos en Cryptosim (Cryptosat Simulator), un simulador de sandbox y un tutorial interactivo que hemos estado desarrollando desde que comenzamos con Cryptosat. Se puede acceder a Cryptosim usando cualquier navegador moderno y permite a los desarrolladores conocer la funcionalidad de nuestros satélites antes de cualquier integración real con nuestra línea de producción.

Captura de pantalla de la primera versión de Cryptosim desarrollada por Gil Shotan.

La interfaz de usuario del simulador se divide entre un tutorial (en el lado derecho) que describe las funciones de API admitidas por Cryptosat, un mapa que muestra la trayectoria del satélite y una consola JS donde el usuario puede probar la API mediante programación e interactuar con el simulado. satélite para solicitar su estado, firmar mensajes, solicitar aleatoriedad, generar pares de claves de cifrado diferido y más.
El tutorial explica la premisa general de Cryptosat, enseña sobre las ventanas de comunicación y la disponibilidad de los satélites, la interfaz asíncrona de los satélites y muestra las diferentes funciones criptográficas admitidas por Cryptosat, además de cómo usarlas en un contexto.
Echemos un vistazo al ejemplo de Public Randomness , también conocido como Random Beacon o VRF(Función aleatoria verificable).

Ejemplo de aleatoriedad pública. Nota: aquí usamos un método para obtener la clave de verificación de respuesta, pero en realidad, la clave pública de un satélite se proporcionaría a través de un canal diferente que no puede ser controlado por un intermediario.

Cryptosat transmite periódicamente una baliza aleatoria: una secuencia de bits impredecible generada a partir de la entropía recolectada a bordo de un satélite. Esta baliza podría usarse para ejecutar loterías, generar mezclas aleatorias de NFT y más. La llamada cryptosat.getPublicRandom()devuelve la baliza más reciente recibida de la constelación de satélites de Cryptosat.

Desde una perspectiva física, en realidad muestra en un mapa la trayectoria real de nuestro primer satélite, Crypto1, según los datos ( TLE ) extraídos de NORAD, una agencia estadounidense que monitorea todos los objetos en movimiento en órbita. A medida que lancemos más satélites, los agregaremos en Cryptosim con sus respectivas trayectorias.

API asíncrona

Dado que los satélites no son visibles para las estaciones terrestres el 100% del tiempo, a veces puede haber un retraso significativo en la ejecución de una solicitud de usuario. Por lo tanto, la API del satélite es asíncrona. Las funciones devuelven un objeto de solicitud, que puede consultar para conocer el estado de finalización de la solicitud llamando al .status()método. El estado de la solicitud se mantendrá Pendingmientras los satélites estén fuera del alcance de cualquier estación terrestre. Tan pronto como se ejecute, el estado cambiará a Ready. El usuario puede entonces llamar con seguridad al .result()método para obtener la respuesta del satélite.

Uso de la API de solicitudes asíncronas

Ejemplos de casos de uso

Cryptosim muestra algunos de los casos de uso en los que un usuario puede querer usar los servicios de Cryptosat. El tema común para todos ellos es el uso de los satélites Cryptosat como una raíz de confianza criptográfica a prueba de manipulaciones, confiable y segura en la que se puede confiar para operar correctamente y proporcionar integridad criptográfica debido a que están físicamente fuera del alcance incluso de los más adversarios sofisticados.

La versión actual de Cryptosim incluye ejemplos para:

  • Aleatoriedad pública (Random Beacon)
  • Aleatoriedad privada: donde un usuario puede solicitar que se cifren bits aleatorios a una clave pública que proporciona en la solicitud.
  • Recuperar una marca de tiempo firmada, que puede ser utilizada por aplicaciones que requieren una fuente confiable de tiempo o contratos inteligentes que necesitan garantizar que ha pasado una cierta cantidad de tiempo en el mundo real.
  • Firmar cualquier dato en el espacio
  • Cifrado retardado: donde un satélite genera un par de claves criptográficas y publica la clave pública. La clave privada no se libera antes de que haya transcurrido un período de tiempo específico, lo que evita el descifrado prematuro de los datos cifrados con la clave pública publicada. Esto podría usarse, por ejemplo, en subastas, esquemas de votación y más (¡envíenos un caso de uso que le entusiasme!).

API RESTful

Además de la simulación autónoma basada en navegador, estamos trabajando para abrir el acceso a una API RESTful. La API permitiría el acceso a los satélites de producción para usuarios autorizados, así como a una constelación simulada con fines de desarrollo y prueba.

Contribución de código abierto

Si está interesado en contribuir con ideas adicionales y sugerir casos de uso para Cryptosat, puede jugar con el código fuente de Cryptosim, que está disponible en nuestro Github . El repositorio principal es cryptosim-tutorialpero, dependiendo de las piezas que desee modificar, es posible que también desee consultar los repositorios cryptosimy .cryptosim-visualization

Uso de satélites Cryptosat

Recuerde que el objetivo es aprender a usar la API y luego usar los satélites Cryptosat reales y recibir solicitudes desde el espacio. Póngase en contacto con nosotros en [email protected] para obtener más información sobre cómo integrarse con nuestro sistema de producción. Puede encontrar más información técnica sobre Cryptosat y sus API en nuestro portal de documentación .