Приветствую вас, читатели Хабра! В этой статье я бы хотел уделить внимание такой вещи как шифрование трафика на Linux системах. Наверное, каждый из нас прекрасно понимает, насколько важна защита нашей приватности. Ведь в эпоху, когда многие компании собирают данные, а иногда хакеры могут перехватить наш трафик, это становится особенно важно. Просто необходимо позаботиться о безопасности своих данных. Например, быть уверенным, что какая-либо корпоративная сеть не прослушивается злоумышленниками. Информационная безопасность сегодня — это не просто мода, а насущная необходимость. Постоянно растет киберпреступность, и защита трафика от перехвата — это основной аспект цифровой жизни человека или бизнеса.
Эта часть — вторая, первую вы можете прочитать по ссылке. А в этой части мы рассмотрим что такое прокси и какие типы бывают, что такое VPN, как устроено сквозное шифрование.
И соотвественно, в этой статье не будет упоминаться то, про что я уже писал в первой. Начнем, господа присяжные заседатели!
❯ Прокси
Прокси-сервер — это промежуток между клиентом и сервером. Он обеспечивает скрытие IP-адреса, поэтому сторонним лицам намного сложнее отследить местоположение пользователя. Также он помогает настроить доступ к сайтам — например, к каким-то ограничить, или даже прослеживать и мониторить трафик пользователей. За счет кеширования данных страницы могут загружаться быстрее.
Прокси-сервер действует так:
Клиент -> провайдер -> прокси-сервер -> сервер
То есть провайдер знает, какой у пользователя IP и какой у него запрос, но сервер не будет знать пользовательский IP-адрес.
Прокси-сервер — это машина, которая содержит прокси IP-адреса.
IP-адрес прокси — это индивидуальный IP-адрес, который используется для сокрытия вашего реального адреса.
Прокси-сервер обрабатывает ваши запросы, но скрывает множество идентифицирующей информации. В ее числе исходный IP-адрес, геолокация, откуда пришел запрос, данные операционной системы (ОС) и многое другое. В общем, он помогает предотвратить легкое отслеживание вас третьими лицами. Работа прокси-сервера осуществляется на уровне приложений модели OSI (L7).
Существует много разных типов прокси, которые подразделяются по разным типам протоколов, анонимности, размещения.
Если говорить про типы размещения — то это банально централизованный и децентрализованный прокси. Тут все понятно — при централизованном типе прокси-сервера находится в одном центре, которые обслуживают сразу много клиентов, а при распределенном — прокси-сервера находятся в разных локациях, которое позволяет равномерно распределить нагрузку, и при случае падении одного сервера, другие прокси сервера останутся рабочими (а в централизованном типе с этим возникнут проблемы).
По анонимности и конфиденциальности уже поинтереснее. Есть прозрачный — никаких настроек, весь трафик с клиента сразу маршрутизируется на прокси. Данные пользователя не изменяются, IP-адрес не скрывается. Быстро, экономно но не безопасно. Противоположность прозрачному — анонимный. Он уже изменяет IP-адрес клиента, но он не скрывает, что используется прокси, и сайты могут понять, что клиент использует прокси, но не больше. Еще более безопасным считаются искажающие прокси — они меняют IP адрес в точности как и анонимный, но уже скрывают факт использования прокси, то есть сервер может понять что трафик идет через дополнительный шлюз, но сам клиент остается скрытый. И последний тип — это приватный. Полностью скрывают данные о пользователе и постоянно меняют IP-адрес подключения.
Ну и перед тем, как мы затронем тему типов прокси по протоколу, стоит также рассказать о том, что прокси также могут различаться и по уровню доступности:
Публичные — открытые, бесплатные, но могут быть медленными, небезопасными и ненадежными. Если найти какой-то сайт с бесплатными прокси-серверами, то там будут именно эти с вероятностью 90%.
Приватные — платные, но быстрее и безопаснее публичных.
Выделенный — то есть уже целый высокопроизводительный сервер с выделенными ресурсами. Они позволяют настроить прокси, то есть например сделать возможность использования только одним клиентом или сделать черный список клиентов.
Прозрачные — мы уже говорили, просто маршрутизация с порта клиента на порт прокси-сервера.
Общие — то есть доступные определенной группе, например сотрудникам компании. Не так надежны как приватные, но обеспечивают баланс между доступностью и производительностью.
Прокси удобны, позволяют контролировать и мониторить трафик, а также могут обеспечить базовую анонимность. Стоит задеть тему различий с VPN:
Прокси это L7, самый высокий уровень сетевой модели OSI, когда как VPN — это L3 или L4.
В VPN могут использовать криптографические алгоритмы для обеспечения шифрования трафика и набор ключей.
Стоимость VPN обычно дороже прокси.
Прокси обычно быстрее VPN
А теперь наконец перейдем к типам прокси по протоколам.
HTTP
Данный тип прокси работает с HTTP-запросами. В основном для базового серфинга - то есть кеширования страниц, настройки доступа к сайтам. Основное применение он находит в корпоративных сетях, для ограничения сотрудников (самый простой пример — блокировка доступа к социальным сетям).
HTTP-прокси существует как звено в цепи между клиентом и сервером. То есть запрос от клиента идет не напрямую на сайт, а через прокси, который уже от своего имени отправляет запрос серверу.
HTTPS
Тоже самое, что и HTTP, но более безопасный. HTTPS гарантирует безопасное соединение между клиентом и сервером, защищает данные от сниффинга. В основном его используют когда важна безопасность и сохранность данных, а не просто веб-серфинг.
SSL
Мы уже обсуждали SSL/TLS протокол выше. Этот тип прокси сервера создает только одно TCP-соединение. В HTTP-proxy создается два соединения — от клиента к прокси и от прокси до сервера. Но SSL работает по другому: после запроса на сервер, прокси создает запрос подключения на сервер и создает TCP-канал.
Преимущество данного типа прокси в том, что его можно использовать как и для доступа к защищенным (HTTPS) и незащищенным (HTTP) серверам.
SOCKS
SOCKS — SOCKets Secure. Специальный протокол для работы с интенсивным трафиком, например потоковая загрузка/передача данных или для P2P.
SOCKS использует TCP соединение, то есть все пакеты гарантированно будут доставлены. При использовании этого типа прокси интернет-трафик маршрутизируется через прокси-сервер по TCP от имени клиента.
SOCKS, как большинство прокси, скрывает IP адрес клиента, гарантируя базовую конфиденциальность.
Установка прокси в несколько шагов
Здесь я рассмотрю прокси-сервер Squid и как его можно установить за пару шагов.
![Squid](https://habrastorage.org/r/w1560/getpro/habr/post_images/e33/bc4/094/e33bc4094bb45332c7eac9eb61d738d9.png)
Squid — это один из самых популярных HTTP/HTTPS прокси-серверов с возможностью перенаправления и кэширования трафика. Он скрывает IP адреса клиентов, кэширует веб-страницы, да и в принципе довольно быстрый прокси.
Установить его довольно просто:
sudo apt -y install squid # ubuntu/debian
sudo pacman -S squid # arch
yum -y install squid # centos
dnf install squid # fedora
И после установки запустите службу прокси сервиса:
sudo systemctl enable squid
sudo systemctl start squid
Чтобы не удлинять статью, я не буду расписывать конфигурацию. Мы воспользуемся скриптом serverok/squid-proxy-installer:
wget https://raw.githubusercontent.com/serverok/squid-proxy-installer/master/squid3-install.sh -O squid3-install.sh
sudo bash squid3-install.sh
Для добавления пользователей запустите команду squid-add-user
, а после перезагрузите службу: sudo systemctl reload squid
.
Если вам нужно иметь подключения с нескольких IP адресов, то выполните следующие команды:
wget https://raw.githubusercontent.com/serverok/squid-proxy-installer/master/squid-conf-ip.sh
sudo bash squid-conf-ip.sh
Если что, дефолтный порт Squid - 3128.
Либо можете воспользоваться менее популярным готовым инструментом по автоматической настройке squid:
curl -O https://raw.githubusercontent.com/khaledalhashem/squid/master/squid_ubuntu.sh # ubuntu
curl -O https://raw.githubusercontent.com/khaledalhashem/squid/master/squid_centos.sh # centos
chmod +x squid_<distro>.sh
./squid_<distro>.sh
Dante (еще один прокси сервер)
Чтобы не ограничиваться одним Squid Proxy, я также хочу рассказать о Dante. Dante - это socks прокси-сервер, намного легче чем Squid.
Протокол SOCKS используется не очень широко, но по сравнению с HTTP он более эффективен в некоторых peer-to-peer приложениях и его предпочтительнее использовать для обработки некоторых видов трафика.
Вы можете установить его вручную по стороннему гайду. Но я покажу в этой статье автоматический инструмент.
Это быстрый скрипт для установки и управления socks5 dante-сервером (1.3.2/1.4.2).
Установить его можно через скрипт и через docker контейнер.
Способ через docker-контейнер:
# Docker Run
# sockd.passwd is a `htpasswd` file contains socks5 auth user/password.
docker run -d \
--name sockd \
--publish 2020:2020 \
--volume sockd.passwd:/home/danted/conf/sockd.passwd \
lozyme/sockd
# Docker Compose
#
# wget https://raw.githubusercontent.com/Lozy/danted/dev/docker/docker-compose.yaml
#
version: '3'
services:
sockd:
image: lozyme/sockd
container_name: sockd
restart: always
ports:
- 2020:2020
volumes:
- sockd.passwd:/home/danted/conf/sockd.passwd
# - sockd.conf:/home/danted/conf/sockd.conf
Запуск по команде docker-compose up -d
.
Есть также команды для управления dante-сервером:
docker exec sockd script/pam add sockd sockd # поменять пароль
docker exec sockd script/pam show # показать пароль
docker exec sockd script/pam add USER PASSWORD # добавление/изменение пользователя
docker exec sockd script/pam del USER # удаление пользователей
Но если вы предпочитаете способ через скрипт, то выполните следующие команды:
wget --no-check-certificate https://raw.github.com/Lozy/danted/master/install.sh -O install.sh
bash install.sh
# с опциями (все можно увидеть по ссылке: https://github.com/Lozy/danted?tab=readme-ov-file#options)
bash install.sh --ip="A.A.A.A:B.B.B.B" --port=2016 --user=sockd --passwd=sockd --whitelist="X.X.X.X/32"
# удалить dante
bash install.sh --uninstall
# добавление пользователя
/etc/init.d/sockd adduser USERNAME PASSWORD
# ---
# Команды для управления: https://github.com/Lozy/danted?tab=readme-ov-file#management
❯ Виртуальные частные сети
Виртуальная частная сеть (VPN) — технология, которая позволяет установить безопасное подключение к сети интернет.
При подключении к интернету через VPN, программное обеспечение создает безопасное соединение между вашим устройством и удаленным VPN-сервером, шифруя ваши данные просмотра веб-страниц и скрывая ваш IP-адрес.
В зависимости от применяемых протоколов и назначения VPN может обеспечивать соединения трёх видов: узел-узел, узел-сеть и сеть-сеть.
Клиент -> VPN -> сервер
VPN (Virtual Private Network) — также это один из способов подключения к сети, когда между устройством и удаленным хостом создается защищенное соединение.
Обычно VPN развёртывают на уровнях не выше сетевого, так как применение криптографии на этих уровнях позволяет использовать в неизменном виде транспортные протоколы (такие как TCP, UDP).
Технология VPN в последнее время используется не только для создания собственно частных сетей, но и некоторыми провайдерами «последней мили» на постсоветском пространстве для предоставления выхода в Интернет.
Сейчас также популяризируется облачная инфраструктура, многие корпорации готовы переносить свои данные в облако. Но, как известно, есть опасность целенаправленных кибератак, и здесь может помочь VPN. Даже банальная защита данных, например в публичных WiFi-сетях.
VPN можно использовать для удаленной работы и туннелирования трафика, а также помочь зашифровать важную информацию.
Есть несколько видов VPN-протоколов. VPN-протоколы - это правила, которые управляют работой виртуальной частной сети. Они отвечают за шифрование, передачу данных, логгирование, безопасность. VPN-протокол состоит из процессов туннелирования и шифрования трафика. Туннелирование соединяет клиента с VPN-сервером и маршрутизирует их, когда как процесс шифрования, что понятно из названия, обеспечивает безопасность данных, чтобы их нельзя было перехватить.
В основе устройства VPN — криптографические функции шифрования. О минусах и плюсах VPN перед прокси мы говорили выше.
![Classification](https://habrastorage.org/getpro/habr//post_images/d97/9c8/082/d979c8082f5985d04e5da96801308018.png)
Уязвимости
Чаще всего, во многих популярных браузерах есть технология WebRTC. Она позволяет третьей стороне определить реальный IP адрес клиента, работающего через VPN. Это может стать угрозой конфиденциальности и безопасности, ведь можно будет идентифицировать его в сети. То есть злоумышленники могут все-равно узнать информацию о пользователе.
Также VPN уязвимы к фингерпринтам, отпечаткам браузера, или же дактилоскопия трафика веб-сайта. Отпечатки нужны для отслеживания посетителей определенного веб-ресурса. Каждому пользователю присваивается уникальный идентификатор (отпечаток). Этот самый отпечаток содержит множество различной информации о браузере пользователя и о нем самом. Вплоть до количества ОЗУ, ОС, разрешении экрана, времени. Не стоит путать отпечаток с cookie-файлами.
От фингерпринта не спасет даже режим инкогнито, и как мы сказали — даже VPN может иметь уязвимость к этому.
Отпечаток может собираться в двух случаях:
Подтверждение пользователя, например в банковских приложениях. Если они понимают что вы совершили транзакцию по отпечатку браузера, то не будут лишний раз высылать запрос на подтверждение.
Реклама и анализ данных. То есть фингерпринт собирается для того, чтобы показывать вам таргетную рекламу.
Браузер собирает данные для отпечатка через javascript-запросы, так что можно установить, например FPMON и контролировать эти запросы.
Узнать, какие вы уже оставили следы в интернете, можно узнать на сайте от EFF - Cover Your Tracks.
Согласно исследованию EFF (Electronic Frontier Foundation), отпечаток браузера включает в себя:
User-agent (включая не только браузер, но и версию ОС, тип устройства, языковые настройки, панели инструментов и т.п.).
Часовой пояс.
Разрешение экрана и глубину цвета.
Supercookies.
Настройки куки.
Системные шрифты.
Плагины к браузеру и их версии.
Журнал посещений.
Еще одной уязвимостью VPN-сервисов можно считать банальную небезопасность сервера. Кто знает, может весь ваш трафик через VPN логгируется, и создатель VPN может продавать данные о вас и ваших запросах третьим лицам.
Для корпорации это может быть опасно, так как приватная информация может попасть в руки злоумышленникам и нанести урон корпоративным сетям, да и компании в целом.
Теперь перейдем к видам VPN-протоколов.
PPTP
PPTP расшифровывается как Point-to-point tunneling protocol. Это один из самых первых протоколов, он был создан Microsoft во времена Windows 95 и NT. Шифрование примитивно, но благодаря этому PPTP быстрее всех других протоколов.
На сегодняшний день он устаревший и уязвимый. PPTP использовал протокол Microsoft Point-to-Point Encryption, с ключами до 128 бит.
Низкоуровневое шифрование делает PPTP одним из самых быстрых VPN-протоколов. Шифрование обычно замедляет скорость соединения, но у PPTP он слишком мал, чтобы вызвать значительную разницу.
SSTP
SSTP также является разработкой Microsoft, но он уже появился позже - в Windows Vista. Изначально он был создан как преемник PPTP. По безопасности не уступает OpenVPN (самый популярный open-source VPN протокол).
SSTP использует SSL-протокол, инкапсулирует пакеты данных по HTTPS и поддерживает шифрование AES-256. Дополнительно может подключаться к TCP-порту 443, что делает его трудноблокируемым протоколом. Сам протокол подвержен TCP meltdown, когда один протокол накладывается поверх другого. Например, более медленное внешнее соединение заставляет верхний уровень ставить в очередь больше повторных передач, чем способен обработать нижний уровень. Это приводит к задержкам и проблемам с передачей данных.
IPsec
IPsec VPN — это набор протоколов, который защищает соединение между устройствами на уровне IP. Существует два режима работы IPsec: туннельный и транспортный:
В туннельном IPsec шифрует исходный пакет и добавляет его в новый заголовок, а туннель прокладывается между парой шлюзов — например межу маршрутизатором и межсетевым экраном. В транспортном режиме шифруется только полезная нагрузка IP-пакета без начального заголовка. И сам заголовок также шифруется.
Транспортный режим. Он отличается от туннельного методом инкапсуляции: шифрует только данные, а заголовок IP оставляет без изменений. Поэтому транспортный режим менее безопасный.
OpenVPN
OpenVPN — один из самых популярных кроссплатформенных VPN-протоколов с открытым исходным кодом. Лицензируется под GNU GPL.
В OpenVPN используется OpenSSL для шифрования канала и данных. Также может использоваться HMAC для обеспечения безопасности. Самое главное — что OpenSSL позволяет использовать протоколы SSLv3/TLSv1.2.
OpenVPN, как я уже говорил, кроссплатформенный, и есть версии для BSD систем, Linux, Windows и клиенты для Android/IOS.
Стал практически стандартом для организации доступа к корпоративным сетям, и его очень часто используют. Хотя вы вольны использовать что угодно — хоть PPTP.
OpenVPN есть во всех репозиториях линукс дистрибутивов:
# Debian/Ubuntu
apt install openvpn
# Fedora
dnf install openvpn
# Arch
pacman -S openvpn
Среди основных возможностей можно выделить:
сертификатную аутентификацию;
приватные p2p ключи;
Суть сертификатной аутентификации в том, что создается управляющий центр, который выпускает пользовательские сертификаты. При помощи этих сертификатов можно управлять подключениями клиентов к серверу. Естественно, когда срок годности сертификата истекает, он блокируется.
Во втором же варианте используется схема с приватными ключами. На одном из хостов генерируется ключ, который является общим для сервера и клиента.
В обоих случаях для обеспечения безопасности рукопожатия используется алгоритм Диффи-Хеллмана.
Ну и также есть возможности внешней аутентификации пользователей (то есть через конфиг клиента, удобна но не всегда безопасна), PAM (проверка логина и пароля), маршрутизация.
Статья и так получается большая, так что я решил не описывать подробно ручной способ установки.
На просторах интернета я нашел интересный скрипт для автоматической установки openvpn со всеми зависимостями.
Чтобы его установить, нужно будет выполнить следующие команды от рута:
curl -O https://raw.githubusercontent.com/angristan/openvpn-install/master/openvpn-install.sh
chmod +x openvpn-install.sh
./openvpn-install.sh
И дальше вас будут спрашивать про сеть и прочие базовые настройки. После того как OpenVPN установился, вы можете запустить скрипт еще раз, перед вами будет меню для добавления клиента, удаления клиента, и удаления самого OpenVPN.
Настройки сервера вы можете увидеть по пути /etc/openvpn/server.conf
. После изменения перезапустите сервис: systemctl restart openvpn
.
Конфиги клиентов можно найти в домашней директории, файлы формата ovpn.
Wireguard
Wireguard был создан Jason A. Donenfeld, вместо старых VPN-решений, где полно легаси-кода. Отличительная особенность WireGuard — он имеет модуль ядра и интегрируется прямо в Linux.
WireGuard использует семейство асимметричных ключей Curve25519, обеспечивающие более высокий уровень безопасности, чем ключи RSA и AES, используемые в других протоколах VPN. Благодаря асимметричной криптографии, WireGuard не требует ресурсоемких операций, используемых в других протоколах.
![wg](https://habrastorage.org/r/w1560/webt/-s/7n/hk/-s7nhkifwroycqegjpk_3chca1c.jpeg)
WireGuard также имеет несколько преимуществ перед другими VPN-протоколами. Он отличается своей легкостью и скоростью – он потребляет меньше системных ресурсов, что делает его использование идеальным на устройствах с небольшими мощностями, таких как мобильные устройства, роутеры, и всякие Raspberry Pi, Orange PI и другие IoT устройства.
WireGuard является относительно новым протоколом но он уже стал популярным благодаря безопасности и производительности. Он предоставляет пользователям более безопасный и быстрый способ подключения к VPN.
WireGuard работает по принципу пакетной передачи данных через интернет и шифрует все пакеты данных с помощью симметричного шифрования ChaCha20 и аутентификационного протокола Poly1305.
![wg2](https://habrastorage.org/r/w1560/webt/-s/7n/hk/-s7nhkifwroycqegjpk_3chca1c.jpeg)
Система управления ключами протокола очень удобна и обеспечивает простоту настройки и использования сервиса. Ключи создаются автоматически и используются только для соединения двух конкретных устройств. Это означает, что теоретически никогда не происходит централизованного хранения ключей, которое может создать уязвимость в системе.
Вся основная логика WireGuard занимает менее 5 тысяч строк кода, тогда как OpenVPN и IPSec имеют сотни тысяч строк. Для поддержки современных криптоалгоритмов в состав ядра Linux включен новый криптографический API Zinc.
И также как и с OpenVPN, существует скрипт для автоматической установки и настройки WireGuard. Устаналивается он так:
curl -O https://raw.githubusercontent.com/angristan/wireguard-install/master/wireguard-install.sh
chmod +x wireguard-install.sh
./wireguard-install.sh
Этот скрипт установит WireGuard (вместе с модулем ядра и инструментами), настроит его, создаст службу и конфиг клиента. И также можно запустить скрипт еще раз для управления конфигами клиента или банально удалить WireGuard.
❯ Сквозное шифрование
Сквозное шифрование (end2end encryption) - это способ передачи данных, в котором сообщения не будут доступны третьим лицам, а только пользователям, непосредственно участвующих в общении.
Также как и в TLS, сквозное шифрование использует ассиметричные и симметричные алгоритмы. Этот тип шифрования предполагает, что ключи шифрования известны только общающимся между собой пользователями. Для реализации данного условия может быть использована схема с предварительным разделением секрета или, например, протокол Диффи-Хелмана, который используется в мессенджерах WhatsApp (по умолчанию) и Telegram (в секретных чатах).
В 2020 году в ЕС хотели отменить end-to-end (сквозное) шифрование (ссылка на новость).
![whatsapp](https://habrastorage.org/getpro/habr//post_images/5e5/b88/6ab/5e5b886aba801e4a26156eb7d673736f.png)
Также существует транспортное шифрование – в такой технологии сообщения шифруются у отправителя, отправляются на сервер, расшифровываются там, затем снова шифруются и только потом отправляются адресанту. Это хорошо защищает данные, однако информация попадает на сервер, а это значит, что владелец сервера может легко посмотреть, что вы отправили.
При комбинации таких методов в мессенджерах ключи защищены каналом связи и известны только собеседникам чата. Защищенный канал позволит частично исключить атаку методом MITM (man in the middle, человек посередине) – это когда злоумышленник тайно перехватывает трафик клиентов в то время, когда они думают, что общаются наедине.
Конечно же сквозное шифрование не защищает полностью от всех. Для злоумышленников да, сообщения зашифрованы, но если правительство запросит доступ к переписке, то мессенджер должен будет открыть его. в 2018 году Павел Дуров, основатель Telegram, сказал, что доступ к данным пользователей может быть получен только в том случае, если на это будет судебное решение по делу о терроризме. В других случаях ни о каком распространении данных речи не идет.
Уязвимости сквозного шифрования
Сквозное шифрование шифрует сообщение, но не скрывает факт отправки сообщения. Сервер будет знать когда и кому мы что отправили.
Сквозное шифрование предусматривает, что контроль за перепиской осуществляется непосредственно пользователями. Одним из вариантов обхода сквозного шифрования для злоумышленника является захват под свой контроль канала связи между конечными точками, после этого он может попытаться выдать себя за получателя сообщения, чтобы, например, подменить открытый ключ. Чтобы не дать себя обнаружить, злоумышленник после дешифровки сообщения может зашифровать его ключом, который он разделяет с фактическим получателем, или его открытым ключом (в случае асимметричных систем) и снова отправить сообщение. Атаки такого типа принято называть атаками "человек посередине" — MITM (Man-In-The-Middle) .
Для предотвращения MITM-атак большинство криптографических протоколов используют аутентификацию. Для этого могут использоваться, например, центры сертификации. Альтернативным методом является создание отпечатков открытого ключа на основе общедоступных открытых ключей пользователей или общих секретных ключей. Прежде чем начать разговор, стороны сравнивают свои отпечатки открытых ключей с использованием внешнего канала связи, который гарантирует целостность и аутентичность связи, при этом он не обязательно должен быть секретным. Если отпечатки ключей совпадают, значит MITM-атака не была произведена.
Другим способом обхода сквозного шифрования является атака непосредственно на конечные точки доступа. Каждое устройство пользователя может быть взломано с целью украсть криптографический ключ (для создания атаки «человек посередине») или просто прочитать дешифрованные сообщения пользователей.
Компании могут также (самостоятельно или по принуждению) внедрять в свое программное обеспечение бэкдоры, которые помогают нарушить согласование ключа или обойти шифрование.
❯ Заключение
Я надеюсь, вам понравилась эта статья. Одна из самых больших и трудоемких работ, я сам узнал много нового в процессе написания. Было сложно, я потратил несколько недель на изучение этой темы.
Любая критика приветствуется, я понимаю что я мог легко что-то упустить или непонятно (а может даже неправильно) описать. Но я постарался проверить, но местами вы вполне себе можете увидеть слабые моменты. Но жизнь — это постоянное самосовершенство.
Буду рад если вы присоединитесь к моему небольшому телеграм-блогу.
? Читайте также:
Новый подход к саппорту: как мы переизобрели поддержку в 2024 и написали об этом книгу;
Как Google обрабатывает JavaScript в процессе индексации веб-страниц;
Запускаем DOOM на отечественной ретро-сети ИОЛА: игра в 4 руки на 2-х мегабитах;
Новости, обзоры продуктов и конкурсы от команды Timeweb.Cloud - в нашем Telegram-канале ↩
![](https://habrastorage.org/webt/u9/vg/io/u9vgio3hxj12h5u7j3un0wx_zpk.png)
Перейти ↩
Источники
Комментарии (6)
AllKnowerHou
21.08.2024 10:33+1Автор хорошо рассказал, но не знает как правильно пишется Lynix - Linux
ALapinskas
21.08.2024 10:33Сквозное шифрование (end2end encryption) - это способ передачи данных, в котором сообщения не будут доступны третьим лицам, а только пользователям, непосредственно участвующих в общении.
Этот тип шифрования предполагает, что ключи шифрования известны только общающимся между собой пользователями.
Конечно же сквозное шифрование не защищает полностью от всех. Для злоумышленников да, сообщения зашифрованы, но если правительство запросит доступ к переписке, то мессенджер должен будет открыть его. в 2018 году Павел Дуров, основатель Telegram, сказал, что доступ к данным пользователей может быть получен только в том случае, если на это будет судебное решение по делу о терроризме. В других случаях ни о каком распространении данных речи не идет.
Ключи известны только пользователям, сервер может видеть только зашифрованные сообщения и открытые ключи, только с помощью открытых ключей нельзя создать ключ для расшифровки. Как в данном случае правительство получит доступ к переписке? Есть бекдор в алгоритме?
itshnick88
21.08.2024 10:33Речь, скорее всего, об облачном шифровании, когда ключи на серверах хранятся (и у вас есть доступ к переписке с любого устройства, на котором вы залогинитесь).
А вот если ключи формируются локально на устройствах, то переписка будет доступна только на этом устройстве и нигде больше - ни на вашем втором телефоне, ни на серверах телеграмма. Если, конечно, ключи магическим образом не тырятся и не передаются товарищу сами знаете кому. Но, насколько я помню, исходный код открыт и это давно бы можно было изобличить...
vanyas
Так а что такое Lynix с КПДВ?
Timeweb_Cloud
Наша вина, не автора — как говорится, не выспались. Иллюстрацию поменяли.