HSTS to nagłówek odpowiedzi dotyczący bezpieczeństwa sieci. Nazwa jest akronimem od „HTTP Strict Transport Security”. Funkcją nagłówka HSTS jest wymuszenie na przeglądarkach łączenia się ze stronami internetowymi za pomocą protokołu HTTPS.
Wskazówka: protokół HTTPS wykorzystuje szyfrowanie, aby zabezpieczyć połączenie internetowe przed hakerami próbującymi je zmodyfikować lub monitorować. HTTP nie ma tych zabezpieczeń, więc haker we właściwym miejscu może monitorować i modyfikować ruch HTTP.
Nagłówek odpowiedzi internetowej to fragment metadanych wysyłanych przez serwer, gdy odpowiada on na żądania internetowe. Podzbiór tych nagłówków jest często określany jako nagłówki bezpieczeństwa, ponieważ ich celem jest zwiększenie bezpieczeństwa witryny i użytkownika.
Nagłówek HSTS składa się z dwóch części obowiązkowych i dwóch opcjonalnych. Nazwa nagłówka „Strict-Transport-Security”, a następnie operator i wartość „max-age” są obowiązkowe. Czasami używana jest również inna para operatorów, „includeSubDomains” i „preload”.
Gdy przeglądarka otrzyma odpowiedź HTTPS z nagłówkiem HSTS, zostanie poinstruowana, aby połączyć się z tą witryną i wszystkimi znajdującymi się na niej zasobami, wyłącznie przy użyciu protokołu HTTPS przez czas „maksymalnego wieku”. „Maksymalny wiek” to zmienna, która opisuje, jak długo ustawienie musi być zapamiętane przez przeglądarkę. Wartość „max-age” jest podawana w sekundach, zalecana wartość to „31536000”, czyli jeden rok.
Chodzi o to, że w czasie tego licznika, który jest resetowany przy każdym kolejnym załadowaniu strony, przeglądarka będzie wymagać połączenia HTTPS i odrzuci wszelkie zasoby HTTP. Chroni to przed atakami typu „person-in-the-middle”, w których haker między Tobą a serwerem internetowym może manipulować otrzymywanymi odpowiedziami.
Głównym punktem, w którym chroni cię to, jest pierwsze połączenie. Zazwyczaj, gdy łączysz się z witryną internetową, możesz zażądać witryny HTTP, a następnie zostać przekierowanym do witryny HTTPS. Niestety, haker zajmujący pozycję pośrednika może uniemożliwić aktualizację do HTTPS, a następnie ukraść lub monitorować Twoją aktywność w witrynie. Jednak po wyświetleniu nagłówka HSTS przez przeglądarkę Twoja przeglądarka nawiąże nawet pierwsze połączenie przez HTTPS, chroniąc Cię przed hakerami.
HSTS zapobiega również ładowaniu niezabezpieczonych zasobów, które mogłyby zostać złośliwie zmodyfikowane przez atakującego, gdyby zostały dostarczone przez HTTP.
Operator „includeSubDomains” służy do wskazania, że nagłówek powinien dotyczyć również wszystkich subdomen serwisu.
Lista wstępnego ładowania HSTS
Możesz zauważyć, że HSTS nadal nie chroni Cię przy pierwszym połączeniu ze stroną internetową. Tutaj pojawia się operator „preload”. Strony internetowe mogą zgłaszać się do umieszczenia na liście preload HSTS, operator „preload” jest wymaganym wskaźnikiem, jeśli tak jest. Lista wstępnego ładowania HSTS jest regularnie aktualizowana i przechowywana w przeglądarce, jeśli witryna jest do niej uwzględniona, przeglądarka zastosuje do niej zabezpieczenia HSTS. Dzieje się tak nawet przy pierwszym połączeniu, zanim przeglądarka mogła zobaczyć nagłówek odpowiedzi HSTS.
Wskazówka: Do listy wstępnego ładowania HSTS należy dodać „maksymalny wiek” wynoszący rok lub więcej.
Problemy z HSTS
Jednym z głównych punktów HSTS jest to, że wyświetla komunikat o błędzie, jeśli wystąpią jakiekolwiek problemy z połączeniem HTTPS. Jako dodatkowy środek bezpieczeństwa, użytkownicy nie powinni być w stanie ominąć komunikatów o błędach HSTS, jak zrobiliby to w przypadku normalnych błędów HTTPS.
Niestety, może to powodować problemy, jeśli firma wdroży HSTS, zanim cała witryna i każdy używany na niej zasób będzie obsługiwać protokół HTTPS. W takim przypadku użytkownicy zaczną widzieć komunikaty o błędach bezpieczeństwa HSTS, których nie mogą ominąć, co zasadniczo całkowicie psuje witrynę. Najgorsze jest to, że samo usunięcie nagłówka HSTS nie rozwiąże problemu dla tych użytkowników, ponieważ ich przeglądarka będzie nadal wymuszać HSTS przez potencjalnie trwający miesiące „maksymalny wiek”.
W związku z tym niezwykle ważne jest, aby przy pierwszym wdrażaniu nagłówka użyć krótkiego „maksymalnego wieku”. Jeśli są jakieś problemy, to utrzymują się tylko przez krótki czas po wykryciu. Dopiero gdy masz pewność, że Twoja witryna jest całkowicie zgodna z HSTS, powinieneś skonfigurować długi licznik HSTS.
Wskazówka: można również ustawić „maksymalny wiek” na 0, co zasadniczo usuwa zapisany wpis HSTS od każdego, kto go zobaczy. Może to pomóc, jeśli wystąpi problem, ale wpłynie to na użytkowników tylko wtedy, gdy zdecydują się spróbować ponownie.