Cryptosim: Probieren Sie die Cryptosat-API aus

Dec 05 2022
Cryptosat baut und startet kleine Satelliten in Low-Earth Orbits (LEO). Dort dienen sie physisch außerhalb der Reichweite von jedermann als die sichersten kryptografischen Module, die sensible Operationen und Protokolle schützen und Funktionen wie das Sammeln von Entropie, vertrauenswürdige Setups für kryptografische Protokolle oder das Signieren von Transaktionen und Daten aus dem Weltraum ausführen.

Cryptosat baut und startet kleine Satelliten in Low-Earth Orbits (LEO). Dort dienen sie physisch außerhalb der Reichweite von jedermann als die sichersten kryptografischen Module, die sensible Operationen und Protokolle schützen und Funktionen wie das Sammeln von Entropie, vertrauenswürdige Setups für kryptografische Protokolle oder das Signieren von Transaktionen und Daten aus dem Weltraum ausführen.

Die meisten Entwickler und Anwender sind weit entfernt von der Raumfahrtindustrie und haben noch nie direkt mit einem Satelliten interagiert. Aus diesem Grund hielten wir es für äußerst hilfreich, Entwicklern ein Gefühl für einige der Möglichkeiten sowie die Einschränkungen bei der Arbeit mit einer Satellitenkonstellation zu vermitteln.

In diesem Beitrag tauchen wir in Cryptosim (Cryptosat Simulator) ein – einen Sandbox-Simulator und ein interaktives Tutorial, das wir seit dem Start von Cryptosat entwickelt haben. Cryptosim ist über jeden modernen Browser zugänglich und ermöglicht es Entwicklern, sich über die Funktionalität unserer Satelliten zu informieren, bevor sie tatsächlich in unsere Produktionspipeline integriert werden.

Screenshot der ersten Version von Cryptosim, entwickelt von Gil Shotan.

Die Benutzeroberfläche des Simulators ist unterteilt in ein Tutorial (auf der rechten Seite), das die von Cryptosat unterstützten API-Funktionen beschreibt, eine Karte, die die Satellitenbahn zeigt, und eine JS-Konsole, in der der Benutzer die API programmgesteuert ausprobieren und mit der Simulation interagieren kann Satellit, um seinen Status abzufragen, Nachrichten zu signieren, Zufälligkeit anzufordern, Verzögerungsverschlüsselungs-Schlüsselpaare zu generieren und mehr.
Das Tutorial erklärt die allgemeine Prämisse von Cryptosat, lehrt über Kommunikationsfenster und Satellitenverfügbarkeit, die asynchrone Schnittstelle zu den Satelliten und zeigt die verschiedenen kryptografischen Funktionen, die von Cryptosat unterstützt werden, sowie wie man sie in einem Kontext verwendet.
Schauen wir uns das Beispiel Public Randomness an , auch bekannt als Random Beacon oder VRF(Überprüfbare Zufallsfunktion).

Beispiel für öffentliche Zufälligkeit. Hinweis: Hier verwenden wir eine Methode, um den Antwortverifizierungsschlüssel zu erhalten, aber in Wirklichkeit würde der öffentliche Schlüssel eines Satelliten über einen anderen Kanal bereitgestellt, der nicht von einem Man-in-the-Middle kontrolliert werden kann.

Cryptosat sendet regelmäßig ein zufälliges Beacon – eine unvorhersehbare Bitsequenz, die aus der an Bord eines Satelliten gesammelten Entropie generiert wird. Dieses Leuchtfeuer könnte verwendet werden, um Lotterien durchzuführen, zufällige NFT-Shuffles zu generieren und vieles mehr. Beim Aufrufen cryptosat.getPublicRandom()wird das zuletzt von der Satellitenkonstellation von Cryptosat empfangene Beacon zurückgegeben.

Aus physikalischer Sicht zeigt es tatsächlich auf einer Karte die wahre Flugbahn unseres ersten Satelliten, Crypto1, basierend auf Daten ( TLE ), die von NORAD stammen, einer US-Behörde, die alle sich bewegenden Objekte im Orbit überwacht. Wenn wir mehr Satelliten starten, werden wir diese in Cryptosim mit ihren jeweiligen Flugbahnen hinzufügen.

Asynchrone API

Da Satelliten für Bodenstationen nicht zu 100 % der Zeit sichtbar sind, kann es manchmal zu einer erheblichen Verzögerung bei der Ausführung einer Benutzeranforderung kommen. Daher ist die Satelliten-API asynchron. Funktionen geben ein Anforderungsobjekt zurück, das Sie durch Aufrufen der Methode nach dem Anforderungsabschlussstatus abfragen können .status(). Der Anforderungsstatus bleibt bestehen Pending, solange die Satelliten von keiner Bodenstation erreichbar sind. Sobald es ausgeführt wird, wechselt der Status auf Ready. Der Benutzer kann dann die Methode sicher aufrufen, .result()um die Satellitenantwort zu erhalten.

Verwenden der asynchronen Anforderungs-API

Beispiele für Anwendungsfälle

Cryptosim zeigt einige der Anwendungsfälle, in denen ein Benutzer möglicherweise Cryptosat-Dienste nutzen möchte. Das gemeinsame Thema aller von ihnen ist die Verwendung von Cryptosat-Satelliten als manipulationssichere, vertrauenswürdige und sichere kryptografische Vertrauensbasis, auf die man sich verlassen kann, dass sie korrekt funktioniert und kryptografische Integrität bietet, da sie selbst für die meisten physisch unerreichbar sind raffinierte Gegner.

Die aktuelle Version von Cryptosim enthält Beispiele für:

  • Öffentliche Zufälligkeit (Random Beacon)
  • Private Randomness – Hier kann ein Benutzer anfordern, dass zufällige Bits zu einem öffentlichen Schlüssel verschlüsselt werden, den er in der Anfrage bereitstellt.
  • Abrufen eines signierten Zeitstempels – der von Anwendungen verwendet werden kann, die eine vertrauenswürdige Zeitquelle oder Smart Contracts benötigen, die sicherstellen müssen, dass eine bestimmte Zeit in der realen Welt vergangen ist.
  • Beliebige Daten im Weltraum signieren
  • Verzögerungsverschlüsselung – bei der ein Satellit ein kryptografisches Schlüsselpaar generiert und den öffentlichen Schlüssel veröffentlicht. Der private Schlüssel wird nicht freigegeben, bevor ein bestimmter Zeitraum verstrichen ist, wodurch eine vorzeitige Entschlüsselung von Daten verhindert wird, die mit dem veröffentlichten öffentlichen Schlüssel verschlüsselt wurden. Dies könnte beispielsweise in Auktionen, Abstimmungsprogrammen und mehr verwendet werden (senden Sie uns einen Anwendungsfall, von dem SIE begeistert sind!).

RESTful-API

Neben der eigenständigen browserbasierten Simulation arbeiten wir daran, den Zugang zu einer RESTful API zu öffnen. Die API würde den Zugriff auf die Produktionssatelliten für autorisierte Benutzer sowie auf eine simulierte Konstellation für Entwicklungs- und Testzwecke ermöglichen.

Open-Source-Beitrag

Wenn Sie daran interessiert sind, zusätzliche Ideen einzubringen und Anwendungsfälle für Cryptosat vorzuschlagen, können Sie mit dem Cryptosim-Quellcode spielen, der auf unserem Github verfügbar ist . Das Haupt-Repository ist , aber abhängig von den Teilen, die Sie optimieren möchten, möchten Sie vielleicht auch die Repositorys und cryptosim-tutorialauschecken .cryptosimcryptosim-visualization

Verwendung von Cryptosat-Satelliten

Denken Sie daran, dass der springende Punkt darin besteht, zu lernen, wie man die API verwendet, und dann die eigentlichen Cryptosat-Satelliten zu verwenden und Anfragen aus dem Weltraum zu erhalten. Kontaktieren Sie uns unter [email protected], um weitere Informationen zur Integration in unser Produktionssystem zu erhalten. Weitere technische Informationen zu Cryptosat und seinen APIs finden Sie auf unserem Dokumentationsportal .