Piattaforme di scambio HTTP firmate

Kinuko Yasuda

Scambio HTTP firmato (o "SXG") è un sottoinsieme della tecnologia emergente chiamata Pacchetti web, che consentono agli editori di rendere i propri contenuti portabili in modo sicuro, cioè disponibili per la ridistribuzione le parti interessate, mantenendo al contempo l'integrità e l'attribuzione dei contenuti. Portatili offrono molti vantaggi, tra cui una distribuzione più rapida dei contenuti facilitando la condivisione di contenuti tra utenti ed esperienze offline più semplici.

Come funzionano le piattaforme Signed HTTP Exchange? Questa tecnologia consente a un editore firmare un singolo scambio HTTP (ovvero una coppia richiesta/risposta), in modo che lo scambio firmato possa essere forniti da qualsiasi server di memorizzazione nella cache. Quando il browser carica questo Signed Exchange, può mostrare senza problemi l'URL del publisher nella barra degli indirizzi perché la firma nello scambio è una prova sufficiente che i contenuti provenissero originariamente l'origine dell'editore.

Signed Exchange: l'essenza

che separa l'origine dei contenuti da chi li distribuisce. I tuoi contenuti possono essere pubblicate sul web, senza fare affidamento su un server, una connessione o un servizio di hosting. Siamo entusiasti dei possibili usi di SXG, come ad esempio:

  • Precaricamento incentrato sulla tutela della privacy: durante il precaricamento delle risorse (ad es. tramite link rel=prefetch) per una navigazione successiva può renderla molto più veloce, presenta anche svantaggi in termini di privacy. Ad esempio, il precaricamento delle risorse le navigazioni multiorigine comunicheranno al sito di destinazione che l'utente è potenzialmente interessato a un'informazione, anche se l'utente alla fine non hanno visitato il sito. D'altra parte, SXG consente il precaricamento di risorse multiorigine da una cache rapida senza mai raggiungere al sito di destinazione, comunicando così l'interesse dell'utente solo se e durante la navigazione. Riteniamo che questo possa essere utile per i siti il cui obiettivo è indirizzare gli utenti ad altri siti web. In particolare, Google ha intenzione di utilizzarlo sulle pagine dei risultati di ricerca di Google per migliorare gli URL AMP e velocizzare i clic sui risultati di ricerca.

  • Vantaggi di una CDN senza cedere il controllo della chiave privata del certificato: Contenuti che sono diventati improvvisamente popolari (ad es. link che rimandano a la prima pagina di reddit.com) spesso sovraccarica il sito dove vengono pubblicati i contenuti e, se il sito è relativamente piccolo, tende a rallentare o persino non essere temporaneamente disponibili. Questa situazione può essere evitata se i contenuti vengono condivisi tramite server di cache veloci e potenti e SXG questo è possibile senza condividere le chiavi TLS.

Prova di Signed Exchange

Le piattaforme di scambio firmate sono disponibili in Chrome 73 e versioni successive e in precedenza disponibile come prova dell'origine.

Creazione di SXG

Per creare SXG per la tua origine (come publisher), devi avere un chiave del certificato per firmare la firma e il certificato deve avere una "CanSignHttpExchanges" estensione affinché venga elaborata come un SXG valido. A novembre 2018, DigiCert è l'unica CA che supporta questa estensione e puoi richiedere che funzioni per SXG da questa pagina.

Una volta ottenuto un certificato per SXG, puoi creare i tuoi SXG utilizzando il strumenti per generare riferimenti pubblicata su github.

Puoi anche dare un'occhiata ai file di esempio SXG effettivi nella Repository di codice di Chrome (ad es. questo) è la più semplice creata un semplice file di testo). Tieni presente che vengono generati principalmente per i test locali, quindi non aspettarti che abbiano certificati e timestamp validi nella firma.

Test della funzionalità a livello locale

Per creare SXG a scopo di test, puoi creare Un certificato autofirmato e abilita chrome://flags/#allow-sxg-certs-without-extension per avere Chrome elabora gli SXG creati con il certificato senza l'estensione speciale.

Un codice come il seguente dovrebbe funzionare se il server, il certificato e gli SXG siano impostati correttamente:

<!-- prefetch the sample.sxg -->
<link rel="prefetch" href="https://your-site.com/sample.sxg" />

<!-- clicking the link below should make Chrome navigate to the inner
     response of sample.sxg (and the prefetched SXG is used) -->
<a href="https://your-site.com/sample.sxg">Sample</a>

Tieni presente che SXG è supportato solo dall'anchor tag (<a>) e da link rel=prefetch in Chrome 73 e versioni successive. Inoltre, tieni presente che la validità della firma è limitata a 7 giorni in base alle specifiche, quindi i contenuti firmati scadranno relativamente rapidamente.

Invio di feedback

Ci piacerebbe ricevere un tuo feedback su questo esperimento all'indirizzo webpackage-dev@chromium.org. Puoi partecipa anche alla Discussione sulle specifiche, o segnala un bug di Chrome al team. Il tuo feedback sarà molto utile per il processo di standardizzazione e ci aiutano anche a risolvere i problemi di implementazione.

Feedback