Signed HTTP Exchanges

Kinuko Yasuda

Signed HTTP Exchange (atau "SXG") adalah subkumpulan teknologi baru yang disebut Paket Web, yang memungkinkan penayang membuat konten portabel dengan aman, yaitu tersedia untuk didistribusikan ulang oleh pihak lain, sambil tetap menjaga integritas dan atribusi konten. Konten portabel memiliki banyak manfaat, mulai dari memungkinkan pengiriman konten yang lebih cepat hingga memfasilitasi berbagi konten antarpengguna, dan pengalaman offline yang lebih praktis.

Jadi, bagaimana cara kerja {i> Signed HTTP Exchanges<i}? Teknologi ini memungkinkan penayang menandatangani pertukaran HTTP tunggal (yaitu pasangan permintaan/respons), sedemikian rupa sehingga pertukaran bertanda tangan dapat disalurkan dari server cache mana pun. Saat browser memuat Signed HTTP Exchange ini, URL penayang dapat ditampilkan dengan aman di kolom URL karena tanda tangan di bursa merupakan bukti yang memadai bahwa konten tersebut awalnya berasal dari asal penayang.

Pertukaran Bertanda Tangan: Intinya

Hal ini memisahkan asal konten dari siapa yang mendistribusikannya. Konten Anda dapat dipublikasikan di web, tanpa bergantung pada server, koneksi, atau layanan hosting tertentu. Kami sangat antusias dengan kemungkinan penggunaan SXG seperti:

  • Pengambilan data yang menjaga privasi: Meskipun pengambilan data resource (mis., dengan rel=pengambilan data) untuk navigasi berikutnya dapat membuat navigasi terasa jauh lebih cepat, navigasi ini juga memiliki kelemahan privasi. Misalnya, pengambilan data resource untuk navigasi lintas origin akan mengungkapkan ke situs tujuan bahwa pengguna mungkin tertarik dengan suatu informasi meskipun pengguna pada akhirnya tidak mengunjungi situs tersebut. Di sisi lain, SXG memungkinkan pengambilan data resource lintas origin dari cache cepat tanpa pernah menjangkau situs tujuan, sehingga hanya menyampaikan minat pengguna jika dan saat navigasi terjadi. Kami percaya hal ini berguna bagi situs yang bertujuan mengarahkan pengguna ke situs lain. Secara khusus, Google berencana untuk menggunakan fitur ini di halaman hasil penelusuran Google untuk meningkatkan URL AMP dan mempercepat klik pada hasil penelusuran.

  • Manfaat CDN tanpa menyerahkan kontrol kunci pribadi sertifikat Anda: Konten yang tiba-tiba menjadi populer (misalnya, ditautkan dari halaman pertama reddit.com) sering kali membebani situs tempat konten tersebut ditayangkan, dan jika situs relatif kecil, konten tersebut cenderung melambat atau bahkan tidak tersedia untuk sementara. Situasi ini dapat dihindari jika konten dibagikan menggunakan server cache yang cepat dan canggih, dan SXG memungkinkannya tanpa membagikan kunci TLS Anda.

Mencoba Signed HTTP Exchange

Signed HTTP Exchange tersedia di Chrome 73 dan yang lebih baru, serta sebelumnya tersedia sebagai uji coba origin.

Membuat SXG

Guna membuat SXG untuk origin Anda (sebagai penayang), Anda memerlukan kunci sertifikat agar dapat menandatangani tanda tangan, dan sertifikat tersebut harus memiliki ekstensi"CanSignHttpExchanges" khusus agar dapat diproses sebagai SXG yang valid. Mulai November 2018, DigiCert adalah satu-satunya CA yang mendukung ekstensi ini, dan Anda dapat meminta sertifikat yang berfungsi untuk SXG dari halaman ini.

Setelah mendapatkan sertifikat untuk SXG, Anda dapat membuat SXG sendiri menggunakan alat generator referensi yang dipublikasikan di github.

Anda juga dapat melihat file contoh SXG yang sebenarnya di repositori kode Chrome (misalnya yang ini adalah contoh paling sederhana yang dibuat untuk file teks sederhana). Perhatikan bahwa parameter tersebut dibuat terutama untuk pengujian lokal, jangan berharap bahwa keduanya memiliki sertifikat dan stempel waktu yang valid dalam tanda tangan.

Menguji Fitur secara Lokal

Guna membuat SXG untuk tujuan pengujian, Anda dapat membuat sertifikat yang ditandatangani sendiri dan mengaktifkan chrome://flags/#allow-sxg-certs-without-extension agar Chrome memproses SXG yang dibuat dengan sertifikat tersebut tanpa ekstensi khusus.

Kode seperti berikut akan berfungsi jika server, sertifikat, dan SXG Anda disiapkan dengan benar:

<!-- 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>

Perhatikan bahwa SXG hanya didukung oleh tag anchor (<a>) dan link rel=prefetch di Chrome 73 dan yang lebih baru. Perhatikan juga bahwa validitas tanda tangan dibatasi hingga 7 hari per spesifikasi, sehingga masa berlaku konten yang ditandatangani akan berakhir dalam waktu singkat.

Memberikan Masukan

Kami ingin mendengar masukan Anda tentang eksperimen ini di webpackage-dev@chromium.org. Anda juga dapat bergabung dalam diskusi spesifikasi, atau melaporkan bug Chrome ke tim. Masukan Anda akan sangat membantu proses standardisasi dan juga membantu kami mengatasi masalah penerapan.

Masukan