Główna zawartość
Podstawy informatyki - program rozszerzony
Kurs: Podstawy informatyki - program rozszerzony > Rozdział 7
Lekcja 6: Bezpieczne protokoły internetoweTransport Layer Security (TLS)
Komputery przesyłają pakiety danych za pośrednictwem Internetu. Pakiety danych są jak listy w kopercie: obserwator może łatwo przeczytać ich treść. Jeśli pakiet zawiera informacje publiczne, na przykład wiadomości ze świata, nie stanowi to dużego zagrożenia. Jeśli jednak w pakiecie znajduje się hasło, numer karty kredytowej lub poufny adres e-mail, sytuacja staje się bardzo ryzykowna.
Protokół TLS (skrót on ang. Transport Layer Security) zabezpiecza protokoły transportowe TCP/IP. Używa szyfrowania symetrycznego, klucza publicznego i dodatkowych funkcji takich jak uwierzytelnianie czy detekcja manipulacji w celu bezpiecznego przesyłania prywatnych danych.
TLS dodaje więcej kroków do procesu wysyłania danych przy użyciu TCP/IP, co prowadzi do zwiększenia komunikacji internetowej, jednakże korzyści jakie przynosi dla bezpieczeństwa są tego warte.
(Warto wiedzieć, że TLS zastąpił starszy protokół o nazwie SSL. Z tego powodu nazwy TLS i SSL są często używane zamiennie.)
Od początku do końca
Przyjrzyjmy się procesowi bezpiecznego przesyłu danych z jednego komputera do drugiego przy użyciu protokołu TLS. Będziemy nazywać klientem komputer, który wysyła dane, a serwerem komputer, który otrzymuje dane.
TCP handshake
Ponieważ TLS jest zbudowany na podstawie TCP/IP, klient musi najpierw wykonać procedurę 3-way TCP handshake z serwerem.
Inicjacja protokołu TLS
Klient musi powiadomić serwer, że chce połączenia TLS zamiast standardowego niezabezpieczonego połączenia, więc wysyła wiadomość opisującą, którą wersję protokołu TLS i techniki szyfrowania chciałby użyć.
Potwierdzenie protokołu przez serwer
Jeśli serwer nie obsługuje żądanych przez klienta technologii, przerwie połączenie. Może się tak zdarzyć, jeśli współczesny klient próbuje komunikować się ze starszym serwerem.
Dopóki serwer obsługuje wymaganą wersję protokołu TLS i inne opcje, odpowiada potwierdzeniem oraz certyfikatem cyfrowym zawierającym klucz publiczny.
Weryfikacja certyfikatu
Cyfrowy certyfikat serwera to sposób, w jaki serwer mówi: "Tak, naprawdę jestem tym, za kogo mnie uważasz". Jeśli klient nie wierzy, że certyfikat jest legalny, przerwie połączenie, ponieważ nie chce wysyłać prywatnych danych do oszusta.
W przeciwnym razie, jeśli klient jest w stanie zweryfikować certyfikat, przechodzi do następnego kroku.
Tworzenie klucza współdzielonego
Klient zna teraz klucz publiczny serwera, więc teoretycznie może użyć szyfrowania kluczem publicznym do zaszyfrowania danych, które serwer może następnie odszyfrować odpowiednim kluczem prywatnym.
Jednak szyfrowanie przy użyciu klucza publicznego zajmuje znacznie więcej czasu niż szyfrowanie symetryczne ze względu na trudniejsze operacje arytmetyczne. Gdy jest to możliwe, komputery wolą używać szyfrowania symetrycznego, aby zaoszczędzić czas.
Na szczęście mogą! Komputery mogą najpierw użyć szyfrowania kluczem publicznym do prywatnego wygenerowania klucza współdzielonego, a następnie mogą użyć szyfrowania symetrycznego z tym kluczem w kolejnych wiadomościach.
Klient rozpoczyna ten proces od wysłania wiadomości do serwera zawierającą klucz wstępny (ang. pre-master). Wiadomość ta zaszyfrowana jest kluczem publicznym serwera. Klient oblicza klucz współdzielony na podstawie klucza wstępnego (jest to bezpieczniejsze niż wysyłanie klucza współdzielonego bezpośrednio) i zapamiętuje klucz współdzielony lokalnie.
Klient wysyła również wiadomość "Gotowe", której zawartość jest szyfrowana kluczem współdzielonym.
Potwierdzenie klucza współdzielonego przez serwer
Serwer może teraz obliczyć klucz współdzielony na podstawie klucza wstępnego i spróbować odszyfrować komunikat "Gotowe" tym kluczem. Jeśli się nie powiedzie, przerywa połączenie.
Tak długo, jak serwer może skutecznie odszyfrować wiadomość klienta za pomocą klucza współdzielonego, wysyła potwierdzenie i własną wiadomość "Gotowe" z zaszyfrowaną zawartością.
Bezpieczny przesył danych
Wreszcie, klient bezpiecznie przesyła dane prywatne do serwera, używając symetrycznego szyfrowania i klucza współdzielonego.
Często ten sam klient musi wysyłać dane do serwera wielokrotnie, tak jak w przypadku gdy użytkownik wypełnia formularze na wielu stronach witryny internetowej. W takim przypadku, komputery mogą użyć skróconego procesu w celu ustanowienia bezpiecznej sesji.
Wszyechobecność TLS
TLS zabezpiecza wiele form komunikacji w Internecie, takich jak wymiana wiadomości e-mail i przesył plików. Najbardziej znany jest jednak z zastosowania do bezpiecznego przeglądania stron internetowych (HTTPS).
TLS dodaje warstwę bezpieczeństwa do protokołu TCP/IP, dzięki wykorzystaniu klucza publicznego i szyfrowania symetrycznego. TLS staje się coraz bardziej niezbędny dla zabezpieczenia prywatnych danych, przemierzających brawurowo w sieci internetowej.
🙋🏽🙋🏻♀️🙋🏿♂️Masz pytania związane z tym zagadnieniem? Możesz zadać swoje pytanie poniżej!
Chcesz dołączyć do dyskusji?
Na razie brak głosów w dyskusji