İmzalanmış HTTP Takasları

Kinuko Yasuda

İmzalı HTTP Değişimi (veya "SXG"), Web Paketleri adı verilen yeni teknolojinin bir alt kümesidir.Bu teknoloji, yayıncıların içeriklerini güvenli bir şekilde taşınabilir (yani diğer tarafların yeniden dağıtabilmesi için) hale getirmesini sağlar. Bununla birlikte, içeriğin bütünlüğünü ve ilişkilendirmesini korur. Taşınabilir içerik, içeriğin daha hızlı sunulmasını sağlamak, kullanıcılar arasında içerik paylaşımını kolaylaştırmak ve çevrimdışı deneyimleri basitleştirmek gibi birçok avantaj sağlar.

Peki, İmzalanmış HTTP Takası nasıl çalışır? Bu teknoloji, yayıncının imzalı değişimin herhangi bir önbelleğe alma sunucusundan sunulabileceği şekilde tek bir HTTP exchange'ini (ör. bir istek/yanıt çifti) imzalamasını sağlar. Tarayıcı bu İmzalı Değişim'i yüklediğinde adres çubuğunda yayıncının URL'sini güvenli bir şekilde gösterebilir. Bunun nedeni, exchange'deki imzanın, içeriğin asıl olarak yayıncının kaynağından geldiğine dair yeterli kanıt olmasıdır.

İmzalı Takas: The ssence

Bu, içeriğin kaynağını ve dağıtan içeriği birbirinden ayırır. İçeriğiniz belirli bir sunucu, bağlantı veya barındırma hizmetine bağlı olmadan web'de yayınlanabilir. SXG'nin aşağıdakiler gibi olası kullanımları konusunda heyecanlıyız:

  • Gizliliği koruyan önceden getirme: Bir sonraki gezinme için kaynakları önceden getirmek (ör. rel=prefetch aracılığıyla) gezinmeyi çok daha hızlı hale getirse de gizlilik açısından olumsuz etkileri de vardır. Örneğin, kaynaklar arası gezinmeye yönelik kaynakların önceden getirilmesi, kullanıcı nihai olarak siteyi ziyaret etmemiş olsa bile kullanıcının bir bilgiyle ilgilenebileceğini hedef siteye açıklayacaktır. Öte yandan SXG, çapraz kaynak kaynaklarının hedef siteye hiç ulaşmadan hızlı bir önbellekten önceden getirilmesine olanak tanır. Böylece, kullanıcının ilgi alanını yalnızca gezinme gerçekleştiğinde ve olduğunda bildirir. Bu yöntemin, kullanıcılarını başka web sitelerine göndermeyi hedefleyen siteler için yararlı olabileceğini düşünüyoruz. Google, özellikle AMP URL'lerini iyileştirmek ve arama sonuçlarındaki tıklamaları hızlandırmak için bunu Google arama sonucu sayfalarında kullanmayı planlamaktadır.

  • Sertifika özel anahtarınızın kontrolünü devre dışı bırakmadan bir CDN'nin avantajları: Aniden popüler olan (ör.reddit.com'un ilk sayfasından bağlantı verilen) içerik, genellikle içeriğin sunulduğu sitede aşırı yüklenmeye neden olur.Site nispeten küçükse yavaşlayabilir, hatta geçici olarak kullanılamaz hale gelebilir. İçerik hızlı ve güçlü önbellek sunucuları kullanılarak paylaşılıyorsa bu durum önlenebilir. SXG ise bunu TLS anahtarlarınız paylaşılmadan mümkün kılar.

İmzalı Takasları Deneme

İmzalı Takaslar, Chrome 73 ve sonraki sürümlerde kullanılabilir ve daha önce kaynak denemesi olarak kullanılabiliyordu.

SXG'nizi oluşturma

Kaynağınız (yayıncı olarak) için SXG'ler oluşturmak istiyorsanız imzayı imzalayacak bir sertifika anahtarına ihtiyacınız vardır ve sertifikanın geçerli bir SXG olarak işlenmesi için özel bir "CanSignHttpExchanges" uzantısına sahip olması gerekir. Kasım 2018 itibarıyla bu uzantıyı destekleyen tek sertifika yetkilisi DigiCert'tir. SXG için çalışan sertifikayı bu sayfadan isteyebilirsiniz.

SXG sertifikası aldıktan sonra github'da yayınlanan referans oluşturucu araçlarını kullanarak kendi SXG'lerinizi oluşturabilirsiniz.

Ayrıca Chrome'un kod deposundaki asıl SXG örnek dosyalarına da göz atabilirsiniz (ör. bu dosya, basit bir metin dosyası için oluşturulmuş en basit dosyadır). Öncelikle yerel test için oluşturulduklarını unutmayın. Lütfen imzada geçerli sertifikalar ve zaman damgaları olmasını beklemeyin.

Özelliği Yerel Olarak Test Etme

Test amacıyla SXG'ler oluşturmak için kendinden imzalı bir sertifika oluşturup chrome://flags/#allow-sxg-certs-without-extension'nin, Chrome'un sertifikayla oluşturulan SXG'leri özel uzantı olmadan işlemesi için bu özelliği etkinleştirmesini sağlayabilirsiniz.

Sunucunuz, sertifikanız ve SXG'leriniz doğru şekilde ayarlanmışsa aşağıdaki gibi bir kod çalışır:

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

SXG'nin Chrome 73 ve sonraki sürümlerde yalnızca bağlantı etiketi (<a>) ve link rel=prefetch tarafından desteklendiğini unutmayın. Ayrıca imzanın geçerliliğinin spesifikasyon başına 7 gün ile sınırlı olduğunu, bu nedenle imzalı içeriğinizin göreceli olarak kısa sürede dolacağını unutmayın.

Geri Bildirim Sağlama

Bu denemeyle ilgili geri bildirimlerinizi webpackage-dev@chromium.org adresinden öğrenmekten mutluluk duyarız. Ayrıca spesifikasyon tartışmasına katılabilir veya ekibe bir Chrome hatasını bildirebilirsiniz. Geri bildirimleriniz standartlaştırma sürecine ve uygulama sorunlarını çözmemize de çok yardımcı olacaktır.

Geri bildirim