HTTPS (pełna nazwa: Hyper Text Transfer Protocol over SecureSocket Layer) to kanał HTTP, którego celem jest bezpieczeństwo. W oparciu o protokół HTTP szyfrowanie transmisji oraz uwierzytelnianie tożsamości zapewniają bezpieczeństwo procesu transmisji [1]. HTTPS dodaje SSL na podstawie HTTP. Podstawą bezpieczeństwa HTTPS jest SSL, więc SSL jest wymagany do szczegółów szyfrowania. HTTPS ma domyślny port inny niż HTTP i warstwę szyfrowania/uwierzytelniania (między HTTP i TCP). System ten zapewnia uwierzytelnianie i szyfrowane metody komunikacji. Jest szeroko stosowany w komunikacji w sieci World Wide Web wymagającej bezpieczeństwa, takiej jak płatności transakcyjne.
HTTPS składa się głównie z dwóch części: HTTP + SSL / TLS, czyli warstwa modułu do przetwarzania zaszyfrowanych informacji jest dodawana do HTTP. Transmisja informacji między serwerem a klientem będzie szyfrowana za pomocą TLS, więc przesyłane dane to wszystkie dane zaszyfrowane.
Zasada HTTP
① Przeglądarka klienta' musi najpierw nawiązać połączenie z serwerem przez sieć. Połączenie jest realizowane przez TCP. Ogólnie numer portu dla połączenia TCP to 80. Po nawiązaniu połączenia klient wysyła żądanie do serwera. Format żądania to: Uniform Resource Identifier (URL), numer wersji protokołu, po którym następują informacje MIME, w tym modyfikatory żądania, informacje o kliencie i zawartość licencji.
② Po otrzymaniu żądania serwer poda odpowiednią informację odpowiedzi. Format to wiersz stanu, zawierający numer wersji protokołu informacji, kod powodzenia lub błędu, a informacje MIME obejmują informacje o serwerze, informacje o jednostce i możliwą zawartość.
Zasada HTTPS
① Klient wysyła do serwera listę obsługiwanych algorytmów oraz losową liczbę używaną do wygenerowania klucza;
② Serwer wybiera algorytm szyfrowania z listy algorytmów i wysyła go wraz z certyfikatem zawierającym klucz publiczny serwera do klienta; certyfikat zawiera również identyfikator serwera do celów uwierzytelnienia, a serwer udostępnia również użytkownika Wykorzystywany jako liczba losowa do wygenerowania klucza;
③ Klient weryfikuje certyfikat serwera' (w celu weryfikacji certyfikatu można odwołać się do podpisu cyfrowego) i wyodrębnia klucz publiczny serwera' następnie wygeneruj losowy ciąg hasła o nazwie pre_master_secret i użyj do niego klucza publicznego serwera' Zaszyfruj (patrz: szyfrowanie/deszyfrowanie asymetryczne) i wyślij zaszyfrowane informacje do serwera;
④ Klient i serwer niezależnie obliczają klucze szyfrowania i MAC na podstawie pre_master_secret i losowej wartości klienta i serwera (patrz algorytm wymiany kluczy DH);
⑤ Klient wysyła do serwera wartości MAC wszystkich komunikatów uzgadniania;
⑥ Serwer wysyła do klienta wartości MAC wszystkich komunikatów uzgadniania
korzyść
Użyj protokołu HTTPS do uwierzytelniania użytkowników i serwerów, aby upewnić się, że dane są wysyłane do właściwego klienta i serwera;
Protokół HTTPS to protokół sieciowy skonstruowany przez SSL+HTTP, który może być używany do szyfrowanej transmisji i uwierzytelniania tożsamości. Jest bezpieczniejszy niż HTTP. Może zapobiegać kradzieży i zmianie danych podczas transmisji oraz zapewniać integralność danych.
HTTPS to najbezpieczniejsze rozwiązanie w obecnej architekturze. Chociaż nie jest to całkowicie bezpieczne, znacznie zwiększa koszt ataków typu man-in-the-middle.
niedociągnięcie
W tym samym środowisku sieciowym protokół HTTPS wydłuży czas ładowania strony o prawie 50% i zwiększy zużycie energii o 10% do 20%. Ponadto protokół HTTPS wpłynie również na pamięć podręczną, zwiększając obciążenie danych i zużycie energii.
Bezpieczeństwo protokołu HTTPS ma pewien zakres i ma niewielki wpływ na ataki hakerów, ataki typu „odmowa usługi” i przejmowanie serwerów.
Najważniejsze jest to, że system łańcucha kredytowego certyfikatu SSL nie jest bezpieczny. Szczególnie, gdy niektóre kraje mogą kontrolować certyfikat główny CA, ataki typu man-in-the-middle są równie możliwe.
Zwiększone koszty. Po wdrożeniu protokołu HTTPS praca protokołu HTTPS zwiększy zużycie dodatkowych zasobów obliczeniowych. Na przykład algorytm szyfrowania protokołu SSL i liczba interakcji SSL zajmą pewną ilość zasobów obliczeniowych i kosztów serwera. W scenariuszu aplikacji dostępu użytkowników na dużą skalę serwer musi wykonywać częste operacje szyfrowania i deszyfrowania, a prawie każdy bajt musi być zaszyfrowany i odszyfrowany, co wiąże się z kosztami serwera. Wraz z rozwojem technologii przetwarzania w chmurze koszt korzystania z serwerów rozmieszczonych w centrach danych stopniowo spadał po wzroście skali. W porównaniu z poprawą bezpieczeństwa dostępu użytkowników, koszt nakładów spadł do akceptowalnego poziomu.




