
Asymmetrische Kryptographie-Bibliothek zur Erzeugung signierter URLs auf eingebetteten Geräten, die zeitlich begrenzten Ressourcenzugriff unter Verwendung der PSA Crypto API mit Zephyr- und ESP-IDF-Unterstützung ermöglicht.
Signierte URLs für kleine Geräte.
signy ist eine Bibliothek zum Erstellen signierter URLs auf eingebetteten Geräten unter Verwendung asymmetrischer Kryptographie. Signierte URLs werden typischerweise verwendet, um zeitlich begrenzten Zugriff auf private Ressourcen zu gewähren, wie sie beispielsweise von einem Content Delivery Network (CDN) bereitgestellt werden. Im Kontext eingebetteter Geräte können signierte URLs verwendet werden, um einem externen System oder einer anderen Komponente im selben System den Zugriff auf eine bestimmte Ressource zu ermöglichen. Beispielsweise kann ein Gerät eine signierte URL generieren und an ein leistungsfähigeres System übergeben, damit dieses die Ressource in seinem Namen herunterladen kann.
Die Verwendung von signy erfordert einen Server, der die von ihm generierten signierten URLs überprüfen kann. Wenn signy mit Golioth verwendet wird, müssen die Zertifikate der Zertifizierungsstelle (CA), die das Gerätezertifikat ausgestellt hat, in Ihr Projekt hochgeladen werden.
signy nutzt die Platform Security Architecture (PSA) Crypto API für Signierungsvorgänge. Private Schlüssel müssen mit PSA Crypto APIs erzeugt oder importiert werden, und ein signiertes Zertifikat, das den öffentlichen Schlüssel enthält, muss an die Bibliothek signy übergeben werden.
Von signy generierte signierte URLs halten sich an das folgende Format.
BASEURL?nb=NOTBEFORE&na=NOTAFTER&cert=CERTIFICATE&sig=SIGNATURE
BASEURL: der Speicherort der Ressource (z.B. https://gw.golioth.io/.u/c/[email protected])NOTBEFORE / NOTAFTER: die Unix-Zeitstempel, die das Zeitfenster definieren, in dem die signierte URL gültig ist. signy verwendet die Systemzeit des Geräts für NOTBEFORE und setzt den NOTAFTER-Zeitstempel basierend auf CONFIG_SIGNY_URL_VALIDITY_DURATION.CERTIFICATE: die base64-ungepolsterte URL-Kodierung des Gerätezertifikats.SIGNATURE: die Signatur über den gesamten Teil der URL vor &sig=.Das signy Repository ist ein Zephyr-Modul und kann in jedes Zephyr-Projekt eingebunden werden, indem Folgendes zur west.yml-Datei des Projekts hinzugefügt wird.
- name: signy
path: modules/lib/signy
revision: v0.2.0
url: https://github.com/golioth/signy.git
Weitere Informationen finden Sie in den Zephyr-Beispielen.
Das signy Repository ist eine ESP-IDF-Komponente und kann in jedes ESP-IDF-Projekt eingebunden werden, indem es als Abhängigkeit in der idf_component.yml des Projekts angegeben wird.
dependencies:
signy:
version: v0.2.0
git: https://github.com/golioth/signy.git
Weitere Informationen finden Sie in den esp-idf-Beispielen.