Текущие Методы Расшифровки Tls/Ssl

Привет, Хабр.

В рамках курса «Сетевой инженер» подготовил оригинальную статью.

Также приглашаем всех посмотреть открытый вебинар на тему «NAT — это не межсетевой экран» .

Там участники вместе с экспертом рассмотрят NAT и его использование, а также поймут, почему NAT != межсетевой экран.

Дополнительно мы рассмотрим разные типы конфигураций для разных ситуаций.



Текущие методы расшифровки TLS/SSL




Шифрование — самый популярный метод защиты сетевых коммуникаций.

В статье пойдет речь о современных методах расшифровки данных, которые передаются при взаимодействии с веб-приложениями.

Примеры расшифровки будут рассмотрены в зависимости от стартовых условий (наличия ключей шифрования, сертификатов и уязвимостей в схеме передачи информации).



Проблемы и история

Давайте немного разберемся в проблемах и терминологии.

Сегодня наиболее популярными технологиями, используемыми для шифрования данных, передаваемых по сети, являются SSL и TLS. Последний теперь является стандартом де-факто для взаимодействия по протоколу HTTPS. Кстати, именно в расшифровке этого протокола и будет заключаться практическая часть данной статьи.

Чтобы понять процесс расшифровки данных, мы должны знать такие понятия, как:

  • Симметричная криптография
  • Асимметричная криптография
  • Сертификат
  • Хранилище сертификатов
  • HSTS — это технология, включенная в современные браузеры для контроля обязательного использования HTTPS для взаимодействия с сервером.

Описание каждого из упомянутых выше пунктов выходит за рамки данной статьи — так что если вы никогда не сталкивались с этими понятиями, то самое время найти их в Wiki и продолжить изучение статьи.



Упражняться

Практику мы проведем с использованием виртуальной лаборатории.

Состав лаборатории:

  • Виртуальная коробка;
  • Windows 8.1;
  • Сервер Ubuntu 20.04
Мы также будем использовать устройство iPhone SE для тестирования методов расшифровки трафика.

Все машины должны быть подключены к сети NAT. Именно такой тип подключения позволяет моделировать топологию сети, приближенную к реальной.

В схеме есть хосты, которые могут общаться друг с другом, и есть хост, который используется как точка доступа в Интернет. Давайте начнем практиковаться.



Расшифровка трафика с помощью SQUID

Squid — это программное обеспечение, которое эмулирует функцию кэширующего сервера.

Его можно использовать для распределения нагрузки и протоколирования действий пользователей по протоколу HTTP в сети; кстати, это программное обеспечение также может работать с HTTPS. Давайте воспользуемся этой функцией.

К сожалению, использовать squid из репозитория не получится; вам нужно построить его самостоятельно:

  
  
  
  
  
   

```sh wget http://www.squid-cache.org/Versions/v4/squid-4.5.tar.gz tar -xvzf squid-4.5.tar.gz cd squid-4.5 .

/configure --with-openssl --enable-ssl-crtd --prefix=/usr/local/squid make make all make install ```

Самый эффективный способ расшифровки взаимодействия сервера и клиента на сегодняшний день — добавить доверенный корневой сертификат, поэтому перед тем, как приступить к расшифровке, необходимо его сгенерировать:

```sh cd /etc/squid mkdir ssl_cert chown squid:squid -R ssl_cert chmod 700 ssl_cert cd ssl_cert openssl req -new -newkey rsa:2048 -sha256 -days 365 -nodes -x509 -extensions v3_ca -keyout myCA.pem -out myCA.pem openssl x509 -in myCA.pem -outform DER -out myCA.der ```

Файл сертификата myCA.der можно использовать для браузера.

Устанавливаем его в локальное хранилище и регистрируем сквид-сервер в качестве прокси.

Давайте настроим ссылку на только что скомпилированный файл кальмара:

```sh ln -s /usr/local/squid/sbin/squid /usr/local/bin/squid ```

Давайте инициализируем каталог для кеша:

``` /usr/local/squid/libexec/security_file_certgen -c -s /var/lib/ssl_db -M 4MB chown squid:squid -R /var/lib/ssl_db ```

Измените конфигурацию:

```sh nano /usr/local/squid/etc/squid.conf ```

Должен получить следующий листинг:

```sh acl SSL_ports port 443 acl CONNECT method CONNECT acl manager proto cache_object http_access deny !Safe_ports http_access deny CONNECT !SSL_ports http_access allow localhost manager http_access deny manager http_access allow localnet http_access allow localhost http_access deny all http_port 3128 cache_dir ufs /usr/local/squid/var/cache/squid 100 16 256 coredump_dir /usr/local/squid/var/cache/squid refresh_pattern ^ftp:

Теги: #Сетевые технологии #брандмауэр #tls #шифрование #SSL #nat #сетевая инженерия #сеть #squid
Вместе с данным постом часто просматривают: