Appendix F. Detached Content (Contenuto separato)
In alcune situazioni, può essere desiderabile che il contenuto protetto in integrità non sia incluso nella rappresentazione JWS, ma sia trasmesso separatamente. Questo caso d'uso è chiamato "detached content" (contenuto separato). Per creare o verificare un JWS con contenuto separato:
Creazione di un JWS con contenuto separato
Per creare un JWS con contenuto separato:
- Seguire i passaggi nella sezione 5.1 per creare un JWS
- Nell'output serializzato, sostituire la rappresentazione codificata in base64url del JWS Payload con una stringa vuota
Formato JWS Compact Serialization:
BASE64URL(UTF8(JWS Protected Header)) || '.' || '' || '.' || BASE64URL(JWS Signature)
Notare la stringa vuota al centro, che rappresenta il payload separato.
Esempio (utilizzando contenuto separato):
eyJhbGciOiJIUzI1NiJ9..dBjftJeZ4CVP-mB92K27uhbUJU1p1r_wW1gFWFOEjXk
Notare i due caratteri punto consecutivi, che indicano che il payload è stato rimosso.
Verifica di un JWS con contenuto separato
Per verificare un JWS con contenuto separato:
- Ottenere il contenuto del payload separato dal contesto dell'applicazione
- Calcolare la codifica base64url del payload
- Inserire il payload codificato nella posizione del payload vuoto nella rappresentazione JWS
- Seguire i passaggi nella sezione 5.2 per verificare il JWS
Scenari di utilizzo
Il contenuto separato è utile nei seguenti scenari:
- Payload voluminosi: Quando il payload è molto grande, può essere desiderabile trasmetterlo separatamente
- Firme multiple: Quando lo stesso payload richiede più firme, ciò evita la trasmissione ripetuta del payload
- Contenuto esistente: Quando il contenuto è già disponibile con altri mezzi, è necessario trasmettere solo la firma
- Ottimizzazione della larghezza di banda: In ambienti con larghezza di banda limitata, può ridurre la quantità di dati trasmessi
Considerazioni sulla sicurezza
Quando si utilizza il contenuto separato:
- L'applicazione deve garantire che il destinatario possa ottenere in modo affidabile il contenuto del payload corretto
- Devono essere prevenuti attacchi di sostituzione del payload
- Dovrebbero (SHOULD) essere utilizzati meccanismi aggiuntivi (come l'hashing del contenuto) per collegare la firma e il payload
- Il metodo di associazione tra firma e payload dovrebbe (SHOULD) essere chiaramente definito nel protocollo dell'applicazione