
Libreria di crittografia asimmetrica per generare URL firmati su dispositivi embedded, consentendo l'accesso a risorse con limiti di tempo utilizzando l'API PSA Crypto con supporto per Zephyr e ESP-IDF.
URL firmate per piccoli dispositivi.
signy è una libreria per generare URL firmate su dispositivi embedded utilizzando crittografia asimmetrica. Le URL firmate sono tipicamente utilizzate per concedere accesso temporaneo a risorse private, come quelle servite da una Content Delivery Network (CDN). Nel contesto dei dispositivi embedded, le URL firmate possono essere utilizzate per consentire a un sistema esterno, o a un altro componente dello stesso sistema, di accedere a una risorsa specifica. Ad esempio, un dispositivo può generare una URL firmata e passarla a un sistema più potente per permettergli di scaricare la risorsa per suo conto.
L'uso di signy richiede un server in grado di verificare le URL firmate che genera. Se si utilizza signy con Golioth, i certificati associati all'Autorità di Certificazione (CA) che ha emesso il certificato del dispositivo devono essere caricati nel tuo progetto.
signy sfrutta la Platform Security Architecture (PSA) Crypto API per le operazioni di firma. Le chiavi private devono essere generate o importate utilizzando le PSA Crypto API, e un certificato firmato contenente la chiave pubblica deve essere passato alla libreria signy.
Le URL firmate generate da signy aderiscono al seguente formato.
BASEURL?nb=NOTBEFORE&na=NOTAFTER&cert=CERTIFICATE&sig=SIGNATURE
BASEURL: la posizione della risorsa (es. https://gw.golioth.io/.u/c/[email protected])NOTBEFORE / NOTAFTER: i timestamp unix che definiscono la finestra di validità della URL firmata. signy utilizza l'ora di sistema del dispositivo per NOTBEFORE e imposta il timestamp NOTAFTER in base a CONFIG_SIGNY_URL_VALIDITY_DURATION.CERTIFICATE: la codifica URL base64 senza padding del certificato del dispositivo.SIGNATURE: la firma sull'intera porzione della URL che precede &sig=.Il repository signy è un modulo Zephyr e può essere incluso in qualsiasi progetto Zephyr aggiungendo quanto segue al file west.yml del progetto.
- name: signy
path: modules/lib/signy
revision: v0.2.0
url: https://github.com/golioth/signy.git
Vedi gli esempi di Zephyr per maggiori informazioni.
Il repository signy è un componente ESP-IDF e può essere incluso in qualsiasi progetto ESP-IDF specificandolo come dipendenza nel file idf_component.yml del progetto.
dependencies:
signy:
version: v0.2.0
git: https://github.com/golioth/signy.git
Vedi gli esempi di esp-idf per maggiori informazioni.