TLS (Transport Layer Security) i SSH (Secure Shell) to protokoły stosowane w świecie rzeczywistym, które wykorzystują kanały dwukierunkowe do bezpiecznej komunikacji. Oto jak wykorzystują kanały dwukierunkowe:
TLS (bezpieczeństwo warstwy transportowej)
TLS to protokół kryptograficzny używany do bezpiecznej komunikacji w Internecie. Wykorzystuje kanały dwukierunkowe, aby zapewnić poufność i integralność danych wymienianych pomiędzy klientem a serwerem.
1. Uzgadnianie: Uzgadnianie TLS to proces, podczas którego klient i serwer ustanawiają bezpieczne połączenie. Podczas tego procesu wymieniają wiadomości zawierające numer wersji, liczby losowe i klucze kryptograficzne. Uścisk dłoni jest procesem dwukierunkowym, w którym obie strony wysyłają i odbierają dane.
2. Szyfrowanie danych: Po zakończeniu uzgadniania klient i serwer używają ustalonych kluczy kryptograficznych do szyfrowania i deszyfrowania danych. Ten proces szyfrowania i deszyfrowania jest również dwukierunkowy, ponieważ obie strony wysyłają i odbierają zaszyfrowane dane.
3. Wymiana kluczy: TLS wykorzystuje protokół wymiany kluczy do bezpiecznej wymiany kluczy kryptograficznych pomiędzy klientem a serwerem. Ta wymiana kluczy jest również dwukierunkowa, ponieważ obie strony wysyłają i odbierają klucze.
SSH (bezpieczna powłoka)
SSH to bezpieczny protokół zdalnego dostępu, który umożliwia użytkownikom bezpieczny dostęp do zdalnych serwerów i zarządzanie nimi. Wykorzystuje kanały dwukierunkowe do bezpiecznej komunikacji pomiędzy klientem a serwerem.
1. Połączenie początkowe: Klient SSH inicjuje połączenie z serwerem wysyłając żądanie nawiązania bezpiecznego połączenia. Serwer odpowiada komunikatem zawierającym klucz publiczny i inne informacje. To początkowe połączenie jest procesem dwukierunkowym, w którym obie strony wysyłają i odbierają dane.
2. Uwierzytelnianie: Po nawiązaniu początkowego połączenia klient i serwer uwierzytelniają się wzajemnie za pomocą kryptografii klucza publicznego. Ten proces uwierzytelniania jest również dwukierunkowy, ponieważ obie strony wysyłają i odbierają wiadomości uwierzytelniające.
3. Szyfrowanie danych: Po uwierzytelnieniu klienta i serwera używają wspólnego tajnego klucza do szyfrowania i deszyfrowania danych. Ten proces szyfrowania i deszyfrowania jest również dwukierunkowy, ponieważ obie strony wysyłają i odbierają zaszyfrowane dane.
Zarówno w TLS, jak i SSH wykorzystywane są kanały dwukierunkowe, aby zapewnić poufność i integralność danych wymienianych pomiędzy klientem a serwerem. Protokoły te wykorzystują kanały dwukierunkowe do ustanawiania bezpiecznych połączeń, wymiany kluczy kryptograficznych oraz szyfrowania i deszyfrowania danych.
Cytaty:[1] https://tosc.iacr.org/index.php/ToSC/article/view/602/543
[2] https://www.scaler.com/topics/golang/ kierunkowy-kanał-in-golang/
[3] https://blog.devtrovert.com/p/go-channels-explained-more-than-just
[4] https://www.naukri.com/code360/library/direction-channel-in-golang
[5] https://eprint.iacr.org/2017/161.pdf