Cryptosim: попробуйте Cryptosat API

Dec 05 2022
Cryptosat строит и запускает небольшие спутники на низкие околоземные орбиты (НОО). Там, физически недосягаемые для кого-либо, они служат наиболее безопасными криптографическими модулями, которые защищают конфиденциальные операции и протоколы и выполняют такие функции, как сбор энтропии, доверенные настройки для криптографических протоколов или подпись транзакций и данных из космоса.

Cryptosat строит и запускает небольшие спутники на низкие околоземные орбиты (НОО). Там, физически недосягаемые для кого-либо, они служат наиболее безопасными криптографическими модулями, которые защищают конфиденциальные операции и протоколы и выполняют такие функции, как сбор энтропии, доверенные настройки для криптографических протоколов или подпись транзакций и данных из космоса.

Большинство разработчиков и пользователей далеки от космической отрасли и никогда напрямую не взаимодействовали со спутником. Вот почему мы подумали, что было бы чрезвычайно полезно дать разработчикам представление о некоторых возможностях, а также об ограничениях работы с группировкой спутников.

В этом посте мы углубимся в Cryptosim (Cryptosat Simulator) — симулятор песочницы и интерактивное руководство, которое мы разрабатывали с момента запуска Cryptosat. Cryptosim доступен через любой современный браузер и позволяет разработчикам узнать о функциях наших спутников до какой-либо фактической интеграции с нашим производственным конвейером.

Скриншот первой версии Cryptosim, разработанной Gil Shotan.

Пользовательский интерфейс симулятора разделен на учебник (справа), описывающий функции API, поддерживаемые Cryptosat, карту, показывающую траекторию спутника, и консоль JS, где пользователь может программно попробовать API и взаимодействовать с имитируемым спутник запрашивать его статус, подписывать сообщения, запрашивать случайность, генерировать пары ключей шифрования с задержкой и многое другое.
В учебном пособии объясняется общая предпосылка Cryptosat, рассказывается об окнах связи и доступности спутников, асинхронном интерфейсе со спутниками и демонстрируются различные криптографические функции, поддерживаемые Cryptosat, а также способы их использования в контексте.
Давайте рассмотрим пример Public Randomness , также известный как Random Beacon или VRF.(проверяемая случайная функция).

Пример публичной случайности. Примечание: здесь мы используем метод получения ключа проверки ответа, но на самом деле открытый ключ спутника будет предоставляться по другому каналу, который не может контролироваться посредником.

Cryptosat периодически передает случайный маяк — непредсказуемую последовательность битов, сгенерированную на основе энтропии, собранной на борту спутника. Этот маяк можно использовать для проведения лотерей, генерации случайных перетасовок NFT и многого другого. Вызов cryptosat.getPublicRandom()возвращает самый последний маяк, полученный от группировки спутников Cryptosat.

С точки зрения физики он фактически показывает на карте реальную траекторию нашего первого спутника Crypto1 на основе данных ( TLE ), полученных от NORAD, американского агентства, которое отслеживает все движущиеся объекты на орбите. По мере того, как мы запускаем больше спутников, мы будем добавлять их в Cryptosim с соответствующими траекториями.

Асинхронный API

Поскольку спутники не видны наземным станциям 100% времени, время от времени выполнение запроса пользователя может иметь значительную задержку. Поэтому спутниковый API является асинхронным. Функции возвращают объект запроса, который вы можете запросить для статуса завершения запроса, вызвав метод .status(). Статус запроса будет оставаться Pendingдо тех пор, пока спутники находятся вне зоны досягаемости какой-либо наземной станции. Как только он будет выполнен, статус изменится на Ready. Затем пользователь может безопасно вызвать .result()метод для получения ответа спутника.

Использование API асинхронных запросов

Примеры использования

Cryptosim демонстрирует некоторые варианты использования, в которых пользователь может захотеть использовать услуги Cryptosat. Общей темой для всех них является использование спутников Cryptosat в качестве защищенного от несанкционированного доступа, надежного и безопасного криптографического корня доверия, которому можно доверять для правильной работы и обеспечения криптографической целостности, поскольку они физически недоступны даже для самых изощренные противники.

Текущая версия Cryptosim включает в себя примеры для:

  • Публичная случайность (Random Beacon)
  • Частная случайность — когда пользователь может запросить шифрование случайных битов с помощью открытого ключа, который он предоставляет в запросе.
  • Получение подписанной метки времени, которая может использоваться приложениями, которым требуется надежный источник времени или смарт-контракты, которым необходимо гарантировать, что в реальном мире прошло определенное количество времени.
  • Подписание любых данных в пространстве
  • Шифрование с задержкой — когда спутник генерирует пару криптографических ключей и публикует открытый ключ. Закрытый ключ не выпускается до истечения определенного периода времени, что предотвращает преждевременную расшифровку любых данных, зашифрованных с помощью опубликованного открытого ключа. Это можно использовать, например, на аукционах, схемах голосования и многом другом (пришлите нам вариант использования, который ВАС волнует!).

REST-API

В дополнение к автономной симуляции на основе браузера мы работаем над открытием доступа к RESTful API. API позволит авторизованным пользователям получить доступ к производственным спутникам, а также к смоделированной группировке для целей разработки и тестирования.

Вклад с открытым исходным кодом

Если вы заинтересованы в том, чтобы внести дополнительные идеи и предложить варианты использования Cryptosat, вы можете поиграть с исходным кодом Cryptosim, который доступен на нашем Github . Основной репозиторий есть cryptosim-tutorial, но, в зависимости от частей, которые вы хотите настроить, вы также можете проверить репозитории cryptosimи cryptosim-visualization.

Использование спутников Cryptosat

Помните, что весь смысл в том, чтобы научиться использовать API, а затем использовать настоящие спутники Cryptosat и получать запросы из космоса. Свяжитесь с нами по адресу [email protected] для получения дополнительной информации о том, как интегрироваться с нашей производственной системой. Более подробная техническая информация о Cryptosat и его API находится на нашем портале документации .