HPKP Nedir?

click fraud protection

HPKP, kullanımdan kaldırılmış bir web güvenlik yanıt başlığıdır, kısaltması HTTP Genel Anahtar Pinleri anlamına gelir. Güvenliği ihlal edilmiş veya sahte bir sertifika yetkilisinin bir web sitesi için herkese açık olarak güvenilen, ancak bilgisayar korsanları tarafından kontrol edilen bir HTTPS sertifikası yayınlamasını önlemeyi amaçlamıştır. Bu senaryoda, bilgisayar korsanları, etkilenen web sitesine giden herhangi bir HTTPS trafiğinin şifresini çözebilir.

İpucu: Web yanıtı üstbilgileri, sunucunun isteklere yanıt verirken içerdiği meta veri parçalarıdır. Bunların küçük bir alt kümesine, çeşitli güvenlik özelliklerini etkinleştirip yapılandırdıkları için güvenlik başlıkları denir.

HTTPS sertifika altyapısı

HTTPS'nin üzerine kurulduğu sertifika altyapısı, bir güven ağına dayanır. Bir dizi şirket, bir veya daha fazla kök sertifika yayınlayan Sertifika Yetkilileri (CA) olarak hareket eder. Bir güven deposundaki tüm aygıtlarda bir dizi kök sertifika bulunur. Bir web sitesi bir CA'dan kendine ait bir HTTPS sertifikası istediğinde, sertifika bir kök sertifika tarafından imzalanır. Bilgisayarınız bir HTTPS sertifikası gördüğünde imzayı kontrol eder. Sertifika güvendiği bir kök sertifika tarafından imzalanmışsa, bilgisayarınız HTTPS sertifikasına da güvenir.

İpucu: Bir CA, kök sertifika tarafından imzalanmış ara sertifikalara da sahip olabilir. Bu ara sertifikalar, web siteleri için HTTPS sertifikalarını imzalamak için de kullanılabilir.

Bir sertifika yetkilisinin görevi, yalnızca talep eden kişinin web sitesinin gerçek sahibi olduğunu doğruladıklarında bir sertifika vermektir. Bu yapıdaki fikir şudur: Bir bilgisayar korsanı bir web sitesi için kendi sertifikasını oluşturursa, bilgisayarınızın güvendiği bir CA tarafından imzalanmaz ve bu nedenle bir uyarı görürsünüz.

HPKP ne yaptı?

Tüm sertifika sistemi, sertifika yetkililerinin güvenilirliğine dayanır. Bununla birlikte, başlangıçta, bir CA'nın bilgisayar korsanları tarafından güvenliğinin ihlal edilmesine veya sahtekarlığa uğramasına ve yanlış sertifika vermeyi seçmesine karşı hiçbir koruma yoktu.

HPKP, bu olasılığa karşı bir koruma olarak tasarlanmıştır. Web sitelerinin, sabitleme adı verilen bir süreçte web sitesi için güvenilebilecek özel bir sertifika listesi belirlemesine olanak tanır. Kök veya ara sertifikayı sabitlemek mümkündü, bu da esasen tek bir CA'nın web sitesi için sertifika vermesine izin verdi. Ayrıca, doğru CA'nın bile başka bir geçerli sertifika yayınlamasını önleyerek, web sitesinin sertifikasını sabitlemek de mümkündü.

Teknik olarak, sabitlenen sertifikanın kendisi değil, sertifika anahtarının bir karmasıdır. Karma, tek yönlü bir şifreleme işlevidir. Bu, web sitesi tarafından tarayıcıya sunulan sertifikanın sabitlenmiş bir sertifikayla eşleştiğini doğrulamanın mümkün olduğu, ancak geçerli bir sertifika oluşturmak için karma kullanmanın mümkün olmadığı anlamına gelir.

HPKP'nin sabitlenmesi için en az iki anahtarın olması gerekiyordu; bunlardan en az biri geçerli sertifika zincirinde değil, yedek olmalıdır. Bu yedekleme, kullanıcıların bağlanabilmesini engellemeyen yeni bir sertifikaya sorunsuz bir geçiş yapılandırmanıza olanak tanır.

Web sitesi tarafından tarayıcıya sunulan HTTPS sertifikası, sabitlenenlerden biriyle eşleşmiyorsa sertifikalar, ardından tarayıcının bunu reddetmesi ve kullanıcının sertifikayı atlamasını engellemesi gerekir. hata mesajı.

HPKP'nin Yapısı

HPKP başlığının üç zorunlu kısmı ve iki isteğe bağlı kısmı vardır. Başlığın başlığı "Public-Key-Pins" olmalıdır, sonraki iki veya daha fazla sertifikanın 'pin-sha256=" biçiminde sabitlenmiş bir base64 kodlu SHA256 karma değerine sahip olması gerekir.”’. Son zorunlu kısım, tarayıcının kısıtlamaları ne kadar süreyle uygulaması gerektiğinin saniye cinsinden bir sayımı olan "maksimum yaş"tır.

İpucu: SHA256, HPKP tarafından kullanılan karma algoritmadır. Base64, 64 karakterden oluşan bir karakter kümesidir: 0-9, a-z, A-Z ve “+” ve “/” özel karakterleri. “=”, gerekirse son iki karaktere kadar doldurmak için kullanılır.

İsteğe bağlı ayarlar "includeSubDomains" ve "report-uri"dir. "includeSubDomains, tarayıcıya, "maksimum yaş" zamanlayıcısı süresince geçerli web sitesinin herhangi bir alt alanına HPKP korumalarını uygulaması talimatını verir. "report-uri", bir web sitesinin hata raporlarının gönderilebileceği yeri belirlemesine olanak tanıyan bir özelliktir ve sorunların belirlenmesine ve çözülmesine yardımcı olmak için tasarlanmıştır.

"Public-Key-Pins-Report-Only" başlıklı başlığın ikinci bir çeşidi vardır. Her şey aynı, ancak bir hata bulunursa, tarayıcıya ve yapılandırılmışsa "rapor-uri"ye bir hata mesajı döndürmenin ötesinde herhangi bir işlem yapılmaz. Yalnızca rapor varyantı, hataların kullanıcılar için sorunlara neden olmayacağı dağıtımdan önce başlığın tam ölçekli test edilmesini sağlamak için tasarlanmıştır.

HPKP ile ilgili sorunlar

HPKP iki ana nedenden dolayı kullanımdan kaldırıldı. Başlığın, onu kullanan web sitesi için ciddi sorunlara neden olabileceği iki yol vardı, bunlara HPKP İntihar ve Ransom PKP adı verildi.

HPKP İntihar, web sitesinin meşru sahiplerinin sabitlenmiş tüm anahtarlara erişimini kaybetmesi sorunudur. Bu, yanlışlıkla silme, bilgisayar korsanlığı, virüsler, veri bozulması veya diğer birçok nedenden dolayı olabilir. HPKP'nin doğru şekilde uygulanmasının ve özellikle sertifika rotasyonları sırasında güncel tutulmasının karmaşıklığı nedeniyle, yapılandırma hatası yapmak nispeten kolaydır. Ancak HPKP ile, bir şeyleri yanlış anlarsanız, web sitenizi son zamanlarda ziyaret eden tüm ziyaretçilerin web sitenize erişmesi "maksimum yaş" zamanlayıcısı boyunca engellenecektir. smashingmagazine.com web sitesi bir gönderi paylaştı. makale tam olarak bu sorunla ilgili deneyimlerini detaylandırarak, bir düzeltme dağıtılmadan önce siteyi çoğu ziyaretçi için dört gün boyunca çevrimdışı duruma getirdi.

Fidye PKP, bir bilgisayar korsanının bir web sunucusuna erişim sağladığı, ardından tüm güvenilir sertifikaları ve anahtarları çaldığı ve geri dönüşleri için fidye talep ettiği teorik bir saldırıdır. Normal bir kurulumda, sadece yeni anahtarlar ve sertifikalar oluşturabilir ve web sitesinin bir saatten daha kısa sürede yedeklenip çalışmasını sağlayabilirsiniz. Ancak HPKP etkinleştirildiğinde bu anahtarlar sabitlenir, kullanıcılara sabitlenmiş bir sertifika sunamazsanız, "max-age" zamanlayıcısı süresince web sitesine erişemezler. Yapılandırmaya ve yedeklerin mevcut olup olmadığına bağlı olarak, bu sorunu çözmek imkansız olabilir.

Bu sorunların her ikisiyle de, yeni kullanıcılar web sitesine normal şekilde erişebilecekler. eski HPKP başlığının tarayıcılarına yalnızca şu anda eksik olana güvenmeleri talimatını verdiğini hiç görmedim sertifikalar. Bununla birlikte, düzenli müşteriler ve okuyucular gibi tüm yeni ziyaretçiler, "maksimum yaş" zamanlayıcısının tüm süresini beklemek zorunda kalacaktı.

Bu sorunların ciddiyeti ve yapılandırma ve bakımın karmaşıklığı göz önüne alındığında, HPKP başlığının kullanımı çok düşüktü. Sonunda, büyük tarayıcılar desteği tamamen kesmeyi kabul etti ve birkaç yıl içinde HPKP başlığı evrensel olarak kullanımdan kaldırıldı.