Kanały dwukierunkowe zarówno w protokole bezpieczeństwa warstwy transportowej (TLS), jak i Secure Shell (SSH) obsługują szyfrowanie i deszyfrowanie danych poprzez kombinację giełd, algorytmów szyfrowania i technik zarządzania sesją, które zapewniają bezpieczną komunikację w obu kierunkach między klientem a serwerem.
TLS dwukierunkowe szyfrowanie kanału i deszyfrowanie kanału
TLS ma na celu zapewnienie poufności i integralności danych wymienianych między dwoma stronami komunikacyjnymi przez sieć, takich jak klient i serwer. Jego dwukierunkowe kanały pozwalają bezpiecznie wymieniać dane w obu kierunkach jednocześnie poprzez wykorzystanie kilku procesów kryptograficznych:
- Wymiana kluczy i uwierzytelnianie: Uzupełnienie dłoni TLS zaczyna się od obu stron negocjujących parametry kryptograficzne w celu ustanowienia wspólnych kluczy bez ich bezpośredniego przekazywania. Algorytmy kryptografii klucza publicznego, takie jak RSA, Diffie Hellman (DH), efemeryczne difie Hellman (DHE), eliptyk-curve difie Hellman (Ecdhe) i inne są używane do bezpiecznego wygenerowania wspólnego tajnego klucza. Klucz ten nie jest bezpośrednio wysyłany przez sieć, ale uzyskany niezależnie przez obie strony po wymianie niezbędnych wartości publicznych. Podczas tego uścisku dłoni serwer zwykle uwierzytelnia się z klientem za pośrednictwem certyfikatu opcjonalnie wzajemne uwierzytelnianie. Uzupełnienie dłoni zgadza się również na apartamenty szyfrów, które dyktują algorytmy szyfrowania używane do szyfrowania danych masowych. Proces ten zapewnia zarówno uwierzytelnianie, jak i tajemnicę w fazie kluczowej umowy.
- Symmetryczne szyfrowanie do przesyłania danych: Po utworzeniu udostępnionego tajnego klucza za pomocą uścisku dłoni TLS przełącza się na symetryczne szyfrowanie w celu ochrony rzeczywistych komunikatów wymienianych podczas sesji. Ponieważ algorytmy szyfrowania symetrycznego są wydajne obliczeniowo, umożliwiają szyfrowanie i deszyfrowanie w czasie rzeczywistym w obu kierunkach. Wspólne algorytmy szyfrowania symetrycznego stosowane w TLS obejmują AES (zaawansowany standard szyfrowania), ChACHA20 i inne. Obie strony używają tego samego klucza sesji do szyfrowania wychodzenia i odszyfrowania przychodzących strumieni danych, zapewniając dwukierunkową poufność.
- Integralność danych i uwierzytelnianie: TLS integruje kody uwierzytelniania wiadomości (MACS) lub uwierzytelnione tryby szyfrowania, takie jak AES-GCM (tryb GALOIS/Counter), aby zapewnić integralność wiadomości i autentyczność. Gwarantuje to, że zostaną wykryte wszelkie manipulacje lub fałszowanie wiadomości w dowolnym kierunku.
- Charakter dwukierunkowy: Kanały TLS są z natury dwukierunkowe, co oznacza, że oba punkty końcowe mogą jednocześnie wysyłać i odbierać szyfrowane dane. Procesy szyfrowania i deszyfrowania są odzwierciedlone na obu końcach przy użyciu ustalonych kluczy symetrycznych, umożliwiając bezproblemową, bezpieczną dwukierunkową komunikację.
- Tajemnica do przodu: Nowoczesne odmiany TLS Używają efemerycznych kluczy z DHE lub Ecdhe, które ustanawiają klawisze na sesję, które zapewniają tajemnicę do przodu. Oznacza to, że nawet jeśli klucze długoterminowe są zagrożone, wcześniejsze sesje komunikacji pozostają bezpieczne.
- Wznowienie sesji: Aby poprawić wydajność w porównaniu z powtarzanymi sesjami, TLS obsługuje wznowienie sesji, w których poprzednie klucze sesji lub identyfikatory są ponownie wykorzystywane, aby uniknąć pełnego uścisku dłoni przy jednoczesnym zachowaniu bezpieczeństwa, co dotyczy dwukierunkowego zaszyfrowanego przepływu danych.
SSH dwukierunkowe szyfrowanie i deszyfrowanie kanałów
SSH zapewnia bezpieczne zdalne logowanie i inne bezpieczne usługi sieciowe w niepewnej sieci. Jego dwukierunkowe kanały zapewniają również bezpieczne zaszyfrowanie danych i odszyfrowanie zarówno podczas wysyłania, jak i odbierania:
- Protokół wymiany kluczy: Podobnie jak TLS, SSH zaczyna od mechanizmu wymiany kluczowej do tworzenia wspólnego tajnego klucza używanego do szyfrowania sesji. Zwykle wykorzystuje algorytm wymiany kluczy Diffie-Hellman. Serwer przedstawia swój klucz hosta publicznego, który klient weryfikuje uwierzytelnienie serwera przed kontynuowaniem. Obie strony używają następnie uzgodnionych algorytmów do niezależnego wygenerowania wspólnego tajnego klucza.
- Asymetryczna kryptografia uwierzytelniania: W przeciwieństwie do symetrycznego szyfrowania używanego do danych masowych, klawisze asymetryczne w SSH specjalnie obsługują cele uwierzytelniania. Prywatne klucze w tych asymetrycznych parach pozostają tajne i są używane do udowodnienia tożsamości, ale szyfrowanie danych masowych wykorzystuje klucze symetryczne.
- Symmetryczne szyfrowanie komunikacji: Po fazach wymiany kluczy i uwierzytelniania SSH przełącza się na algorytmy szyfrowania symetrycznego w celu bezpiecznego przesyłania danych na kanale dwukierunkowym. SSH obsługuje wiele symetrycznych szyfrów, takich jak AES, 3DES, Blowfish, Cast128 i Arcfour. Zarówno klient, jak i serwer używają tego samego klucza do szyfrowania danych wychodzących i odszyfrowania danych przychodzących, umożliwiając bezpieczną komunikację pełną duplex.
- Integralność i kompresja: Aby upewnić się, że wiadomości nie są manipulowane w tranzycie, SSH stosuje funkcje skrótu kryptograficzne do tworzenia kodów uwierzytelniania wiadomości (MAC) lub używa uwierzytelnionych trybów szyfrowania. Dodatkowo można zastosować kompresję w celu zwiększenia wydajności transmisji.
- Funkcjonalność kanału dwukierunkowego: Połączenie SSH tworzy bezpieczne tunele lub kanały, które są dwukierunkowe, obsługujące jednoczesne wysyłanie i odbieranie danych z szyfrowaniem i deszyfrowaniem odbywającym się symetrycznie po stronie klienta i serwera. Umożliwia to bezpieczne wykonanie polecenia, transfery plików (przez SFTP) i przekazywanie portów, wszystkie przenoszone przez szyfrowane kanały.
- Kontrola przepływu i obsługa błędów: Kanały SSH obejmują mechanizmy kontroli przepływu, które zarządzają szybkościami transmisji danych w obu kierunkach, dostosowując warunki sieciowe i zapewniając niezawodną komunikację.
Wspólne cechy kanałów TLS i SSH
- Obaj używają początkowego uścisku dłoni, aby bezpiecznie ustanowić zaszyfrowane klucze sesji bez narażania ich na potencjalne podgrzewanie.
- Symmetryczne szyfrowanie służy do wydajności w szyfrowaniu i odszyfrowaniu danych komunikacji masowej po ustaleniu klucza sesji.
- Oba stosują techniki uwierzytelniania wiadomości, aby zapewnić poufność, integralność i autentyczność danych w obu kierunkach.
-Obsługują pełny dupleks, jednoczesny dwukierunkowy przepływ danych w bezpiecznych szyfrowanych tunelach.
- Korzystanie z algorytmów, które mogą zapewnić przedporodowe tajemnice, zapewniając, że wcześniejsza komunikacja pozostaje bezpieczna, nawet jeśli klucze długoterminowe są zagrożone.
- Oba protokoły negocjują i zgadzają się na algorytmy szyfrowania i długości kluczów na początku sesji.
- dwukierunkowy charakter tych protokołów zapewnia, że komunikaty o obsłudze błędów, retransmisji i kontroli przepływu można również bezpiecznie wymieniać.