Небольшой факт, который многое объясняет
💡 Вопрос:
почему можно легко заблокировать доступ к сайту, если большая часть трафика в интернете зашифрована с помощью https/TLS?
откуда провайдер знает, с каким сайтом я общаюсь?
провайдер расшифровывает трафик?
Если вы ходили на курс по компьютерным сетям, то вопрос покажется наивным
Но если вы вовремя выбрали быть счастливым и прогуливали курс в ближайшем парке с подружкой и пивом, то ниже короткий обзор на то, как работает сеть Интернет
✅ Короткий ответ:
IP сервера палится:
🔵при обращении к DNS
🔵при отправке каждого пакета байтов на уровне TCP/UDP (то есть на один программный уровень ниже, чем https)
✅ Разъяснялка:
Мы знаем имя хоста (ya.ru)
Чтобы обратиться к этому домену, нужно узнать IP, за которым он живет (часто за одним IP живет несколько доменов)
Для получения IP по домену клиент идет к DNS, который в открытом виде возвращает IP бэка
💥 первый раз IP бэка спалилось
Дальше клиент начинает слать на этот IP пакеты по UDP/TCP
🔵в http1, http2, WebSockets, gRPC с помощью TCP
🔵в http3 с помощью UDP
Сначала внутри пакетов передается информация о клиенте, происходит обмен публичными сертификатами для TLS-шифрования, и только потом начинает передаваться зашифрованные с помощью TLS заголовки/тело
Но несмотря на то что содержимое (полезная нагрузка) пакета зашифровано, к каждому пакету нужно приложить IP получателя в открытом виде — иначе никто не узнает, куда отправлять этот пакет
💥 IP палится во второй раз (с отправкой каждого пакета)
Итого:
🔵шифруется полезная нагрузка (заголовки, тело) — то что передается на уровне https, WebSockets, gRPC...
🔵не шифруется информация о получателе пакета
😎