Co to jest HPKP?

HPKP to przestarzały nagłówek odpowiedzi na temat bezpieczeństwa sieci, akronim to skrót od HTTP Public Key Pins. Miał on na celu uniemożliwienie złamanemu lub fałszywemu urzędowi certyfikacji wydania publicznie zaufanego, ale kontrolowanego przez hakerów certyfikatu HTTPS dla witryny internetowej. W tym scenariuszu hakerzy byliby w stanie odszyfrować każdy przechwycony ruch HTTPS do witryny, której dotyczy problem.

Wskazówka: Nagłówki odpowiedzi sieci Web to fragmenty metadanych, które serwer uwzględnia podczas odpowiadania na żądania. Niewielki ich podzbiór jest określany jako nagłówki bezpieczeństwa, ponieważ umożliwiają one i konfigurują różne funkcje bezpieczeństwa.

Infrastruktura certyfikatów HTTPS

Infrastruktura certyfikatów, na której zbudowany jest protokół HTTPS, opiera się na sieci zaufania. Wiele firm działa jako urzędy certyfikacji (CA), które publikują jeden lub więcej certyfikatów głównych. Zestaw certyfikatów głównych jest dołączany do wszystkich urządzeń w magazynie zaufania. Gdy witryna żąda od urzędu certyfikacji własnego certyfikatu HTTPS, certyfikat jest podpisany certyfikatem głównym. Gdy komputer widzi certyfikat HTTPS, sprawdza podpis. Jeśli certyfikat jest podpisany certyfikatem głównym, któremu ufa, komputer ufa również certyfikatowi HTTPS.

Wskazówka: CA może również mieć certyfikaty pośrednie podpisane przez certyfikat główny. Te certyfikaty pośrednie mogą być również używane do podpisywania certyfikatów HTTPS dla witryn internetowych.

Zadaniem urzędu certyfikacji jest wystawienie certyfikatu tylko wtedy, gdy zweryfikuje, że osoba żądająca ich jest prawdziwym właścicielem witryny. Pomysł z tą strukturą polega na tym, że jeśli haker utworzy własny certyfikat dla witryny, nie zostanie on podpisany przez urząd certyfikacji, któremu ufa Twój komputer, a więc zobaczysz ostrzeżenie.

Co zrobiła HPKP?

Cały system certyfikacji opiera się na wiarygodności urzędów certyfikacji. Pierwotnie jednak nie istniały żadne zabezpieczenia przed złamaniem zabezpieczeń CA przez hakerów lub nieuczciwym działaniem i wyborem nieprawidłowego wystawiania certyfikatów.

HPKP został zaprojektowany jako zabezpieczenie przed tą możliwością. Umożliwia stronom internetowym określenie wyłącznej listy certyfikatów, którym można zaufać w przypadku witryny w procesie zwanym przypinaniem. Możliwe było przypięcie certyfikatu głównego lub pośredniego, co zasadniczo pozwalało pojedynczemu CA na wystawianie certyfikatów dla witryny. Możliwe było również przypięcie samego certyfikatu strony internetowej, uniemożliwiając nawet właściwemu CA wydanie kolejnego ważnego certyfikatu.

Technicznie nie jest przypinany sam certyfikat, ale skrót klucza certyfikatu. Hash to jednokierunkowa funkcja kryptograficzna. Oznacza to, że można zweryfikować, czy certyfikat przedstawiony przeglądarce przez witrynę jest zgodny z przypiętym certyfikatem, ale nie można użyć skrótu do utworzenia ważnego certyfikatu.

HPKP wymagało przypięcia co najmniej dwóch kluczy, z których co najmniej jeden musi być kopią zapasową, a nie w bieżącym łańcuchu certyfikatów. Ta kopia zapasowa umożliwia skonfigurowanie płynnego przekazywania do nowego certyfikatu, który nie uniemożliwia użytkownikom połączenia.

Jeśli certyfikat HTTPS przedstawiony przeglądarce przez witrynę internetową nie pasuje do jednego z przypiętych certyfikatów, przeglądarka musi go odrzucić i uniemożliwić użytkownikowi pominięcie komunikatu o błędzie certyfikatu.

Struktura HPKP

Nagłówek HPKP składa się z trzech części obowiązkowych i dwóch opcjonalnych. Nagłówek musi mieć tytuł „Public-Key-Pins”, kolejne dwa lub więcej certyfikatów musi mieć przypięty hash SHA256 zakodowany w base64 w formacie „pin-sha256=””'. Ostatnią obowiązkową częścią jest „max-age”, czyli liczona w sekundach, jak długo przeglądarka powinna stosować ograniczenia.

Wskazówka: SHA256 to algorytm mieszający używany przez HPKP. Base64 to zestaw znaków składający się z 64 znaków: 0-9, az, AZ oraz znaków specjalnych „+” i „/”. „=” jest używany do uzupełnienia do dwóch ostatnich znaków, jeśli to konieczne. 

Opcjonalne ustawienia to „includeSubDomains” i „raport-uri”. „includeSubDomains instruuje przeglądarkę, aby zastosowała zabezpieczenia HPKP do dowolnej poddomeny bieżącej witryny na czas „max-age” timera. „report-uri” to funkcja, która pozwala określić witrynę internetową, do której można wysyłać raporty o błędach, i ma na celu pomoc w identyfikowaniu i rozwiązywaniu problemów.

Istnieje drugi wariant nagłówka zatytułowany „Public-Key-Pins-Report-Only”. Wszystko jest takie samo, jednak jeśli zostanie znaleziony błąd, nie zostanie podjęte żadne działanie poza zwróceniem komunikatu o błędzie do przeglądarki i do „raport-uri”, jeśli jest skonfigurowany. Wariant tylko raport został zaprojektowany, aby umożliwić pełnoskalowe testowanie nagłówka przed wdrożeniem, gdzie błędy nie powodowałyby problemów dla użytkowników.

Problemy z HPKP

HPKP został zdeprecjonowany z dwóch głównych powodów. Były dwa sposoby, w jakie nagłówek mógł powodować poważne problemy dla korzystającej z niego strony internetowej, były to nazwane HPKP Suicide i Ransom PKP.

HPKP Suicide to problem polegający na tym, że prawowici właściciele witryny tracą dostęp do wszystkich przypiętych kluczy. Może się to zdarzyć w wyniku przypadkowego usunięcia, włamania, wirusów, uszkodzenia danych lub z wielu innych powodów. Ze względu na złożoność poprawnego wdrożenia HPKP, a zwłaszcza jego aktualizacji podczas rotacji certyfikatów, stosunkowo łatwo jest popełnić błąd w konfiguracji. Jednak dzięki HPKP, jeśli coś zrobisz źle, wszyscy niedawni odwiedzający Twoją witrynę nie będą mogli uzyskać dostępu do Twojej witryny przez czas „maksymalnego wieku”. Witryna smashingmagazine.com opublikowała artykuł szczegółowo opisujący swoje doświadczenia z dokładnie tym problemem, który zasadniczo powodował wyłączenie witryny dla większości odwiedzających na cztery dni przed wdrożeniem poprawki.

Ransom PKP to teoretyczny atak, w którym haker uzyskuje dostęp do serwera WWW, a następnie kradnie wszystkie zaufane certyfikaty i klucze, a następnie żąda okupu za ich zwrot. W normalnej konfiguracji możesz po prostu wygenerować nowe klucze i certyfikaty, a strona internetowa będzie działać w mniej niż godzinę. Jednak po włączeniu HPKP te klucze są przypięte, jeśli nie możesz udostępnić przypiętego certyfikatu użytkownikom, nie będą oni mogli uzyskać dostępu do witryny przez czas „maksymalnego wieku”. W zależności od konfiguracji i jeśli istnieją kopie zapasowe, rozwiązanie tego problemu może być niemożliwe.

W przypadku obu tych problemów nowi użytkownicy będą mogli normalnie uzyskać dostęp do witryny, ponieważ nigdy nie zobaczyliby starego nagłówka HPKP instruującego przeglądarkę, aby ufała tylko tym, których brakuje teraz certyfikatom. Jednak wszyscy niedawni odwiedzający, tacy jak stali klienci i czytelnicy, musieliby czekać przez cały czas trwania „maksymalnego wieku”.

Biorąc pod uwagę powagę tych problemów oraz złożoność konfiguracji i konserwacji, użycie nagłówka HPKP było bardzo niskie. W końcu główne przeglądarki zgodziły się całkowicie zrezygnować z jego obsługi i w ciągu kilku lat nagłówek HPKP został powszechnie przestarzały.



Leave a Comment

Jak zmusić Google Chrome, aby zawsze wyświetlał pełne adresy URL

Jak zmusić Google Chrome, aby zawsze wyświetlał pełne adresy URL

Chrome domyślnie nie wyświetla pełnego adresu URL. Być może nie przejmujesz się zbytnio tym szczegółem, ale jeśli z jakiegoś powodu potrzebujesz wyświetlenia pełnego adresu URL, szczegółowe instrukcje dotyczące tego, jak sprawić, by przeglądarka Google Chrome wyświetlała pełny adres URL w pasku adresu.

Jak odzyskać stary Reddit

Jak odzyskać stary Reddit

Reddit ponownie zmienił swój wygląd w styczniu 2024 r. Przeprojektowanie może być widoczne dla użytkowników przeglądarek na komputerach stacjonarnych i zawęża główny kanał podczas udostępniania linków

Jak kopiować treści z podręczników za pomocą Google Lens

Jak kopiować treści z podręczników za pomocą Google Lens

Wpisywanie ulubionego cytatu z książki na Facebooku jest czasochłonne i pełne błędów. Dowiedz się, jak używać Obiektywu Google do kopiowania tekstu z książek na urządzenia.

Napraw adres DNS serwera, którego nie można znaleźć w przeglądarce Chrome

Napraw adres DNS serwera, którego nie można znaleźć w przeglądarce Chrome

Czasami podczas pracy w przeglądarce Chrome nie można uzyskać dostępu do niektórych witryn internetowych i pojawia się komunikat o błędzie „Nie można znaleźć adresu DNS serwera napraw w przeglądarce Chrome”. Oto jak możesz rozwiązać ten problem.

Krótki przewodnik na temat tworzenia przypomnień w Google Home

Krótki przewodnik na temat tworzenia przypomnień w Google Home

Przypomnienia zawsze były główną atrakcją Google Home. Z pewnością ułatwiają nam życie. Obejrzyjmy szybko, jak tworzyć przypomnienia w Google Home, aby nigdy nie przegapić ważnych spraw.

Netflix: zmień hasło

Netflix: zmień hasło

Jak zmienić hasło do usługi strumieniowego przesyłania wideo Netflix za pomocą preferowanej przeglądarki lub aplikacji na Androida.

Jak wyłączyć monit o przywracanie stron w Microsoft Edge?

Jak wyłączyć monit o przywracanie stron w Microsoft Edge?

Jeśli chcesz pozbyć się komunikatu Przywróć strony w Microsoft Edge, po prostu zamknij przeglądarkę lub naciśnij klawisz Escape.

A List of Funny Wi-Fi Names

A List of Funny Wi-Fi Names

I like to keep my neighbors entertained by changing my Wi-Fi network to different funny names. If youre looking for ideas for a funny Wi-Fi name, here

Co to jest uwierzytelnianie?

Co to jest uwierzytelnianie?

Uwierzytelnianie to proces weryfikacji tożsamości. Zwykle odbywa się to za pomocą czegoś, co znasz. Czytaj dalej, aby dowiedzieć się więcej.

Jak tworzyć i edytować listy odtwarzania w YouTube Music

Jak tworzyć i edytować listy odtwarzania w YouTube Music

Zobacz, jak łatwo można tworzyć dowolne playlisty i jak łatwo je edytować w YouTube Music. Oto kroki, które należy wykonać.