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

Пользовательский интерфейс симулятора разделен на учебник (справа), описывающий функции 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()
метод для получения ответа спутника.

Примеры использования
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 находится на нашем портале документации .