HTTP Public Key Pinning (HPKP) – mechanizm bezpieczeństwa stosowany jako dodatkowe zabezpieczenie szyfrowania komunikacji HTTPS ustandaryzowane w dokumencie . Rozwiązanie realizowane jest poprzez nagłówek protokołu HTTP, w którym serwer udostępniający zasoby przy pomocy HTTPS przekazuje łączącemu się z nim klientowi (przeglądarce) podpis klucza publicznego wykorzystywanego przez serwer do zabezpieczenia transmisji. Pozwala to klientowi powiązać na przyszłość wskazany klucz publiczny z adresem serwera (domeną). Rozwiązanie to utrudnia podszycie się pod zabezpieczony serwer przy pomocy sfałszowanego certyfikatu klucza publicznego, o ile klient mógł uprzednio zapamiętać klucze wskazane przez serwer.
Sposób działania Zdarza się, że sfałszowane certyfikaty wystawiane są przez złośliwe urzędy certyfikacji lub skompromitowane przez włamywaczy, którym udało się złamać ich zabezpieczenia. Serwer działający w oparciu o HTTPS przechowuje klucze publiczne, w związku z czym przy kolejnych połączeniach klient implementujący HPKP może spodziewać się, iż serwer użyje jednego lub więcej publicznych kluczy ze znanej, wcześniej podanej puli, co pozwala klientowi rozpoznać nieoczekiwane certyfikaty.
Nagłówek protokołu HTTP o nazwie Public-Key-Pins (lub Public-Key-Pins-Report-Only w celach raportowych) umożliwia serwerowi przekazanie przeglądarce informacji o tym, jakiej wartości klucza publicznego powinna ona spodziewać się (przez określony czas) podczas nawiązywania połączenia TLS z danym hostem. Polityka HPKP wykorzystuje następujące dyrektywy: pin-sha256 – określa Funkcje skrótów klucza publicznego jednego z certyfikatów wchodzących w skład łańcucha strony X.509 (oraz co najmniej jeden klucz zapasowy). max-age okres w którym użytkownik powinien „przypiąć” klucz; opcjonalna dyrektywa includeSubDomains określa zbiór wszystkich subdomen (należących do domeny, która wysłała nagłówek) w polityce HPKP opcjonalna dyrektywa report-uri zawiera URL, na który należy wysłać raporty odnośnie do naruszenia polityki.
Co najmniej jeden z kluczy publicznych certyfikatu, należącego do łańcucha musi być zgodny z „przypiętym” kluczem publicznym, aby łańcuch był uznany przez użytkownika za prawidłowy. W chwili wydania standardu jedyną dozwoloną funkcją skrótu była SHA-256. Skróty na potrzeby HPKP można wygenerować wolnodostępnymi narzędziami opisanymi w dodatku A dokumentu RFC.
Przypisy
Bibliografia
Kategoria:HTTP Kategoria:Protokoły internetowe