Обход СОРМ провайдера

Обход СОРМ провайдера

Всем известно, что на стороне провайдеров интернета установлено оборудование СОРМ с анализатором пакетов.

Рассмотрим простой способ обхода СОРМ по протоколу HTTP.

Постановка задачи

Найти способ передачи информации (загрузка веб-страницы по URL) по протоколу HTTP в обход СОРМ. Будем предполагать, что POST-запросы внутри конкретного сайта не анализируются с помощью СОРМ.

Решение

Для данного решения можно использовать PHP и C++.

Большинство хостингов работают на Linux, поэтому компилировать программу шифрования нужно будет под Linux (версии на хостинге и локальной машины должны совпадать).

Нам понадобятся:

  • Иностранный хостинг с поддержкой PHP, и в частности функции PHP EXEC.
  • Алгоритм шифрования текстовой информации, реализованный с помощью компилируемого языка программирования (например, на C++).Создадим два файла php на хостинге: index.php, handle.phpВ файле index.php реализуем форму post-запроса.
<html> <head> <title> </title> </head> <body> <form method = "POST" action = "handle.php"> <input type = "text" id = "url" value = "http://ya.ru/" name = "url"> </input> <button type = "submit"> OK </button> </form> </body> </html>

В поле ввода формы пользователь указывает url-адрес страницы, которая его интересует.

Алгоритм работы файла handle.php:Получаем из POST-запроса url сайта, необходимого пользователю.

  • С помощью функции PHP file_get_content(url) получаем содержимое нужной веб-страницы.
  • С помощью функции PHP EXEC запускаем бинарный файл (шифрование данных). Содержимое веб-страницы передается из PHP в бинарный (исполняемый) файл как аргумент командной строки.
  • Исполняемый файл crypto.o (crypto.exe) предназначен для шифрования данных.
  • Передача зашифрованных данных обратно в PHP-скрипт или в текстовый файл.Последний шаг производится уже на стороне клиента:
  • Расшифровка данных на стороне пользователя.

Подробнее о шифровании

Алгоритм шифрования может быть эвристическим или обладать криптографической стойкостью (с ключом).

Таким образом на всех шагах решения данные не проходят через провайдера в открытом виде.

Примечания

В начале статьи мы предположили, что POST-запрос не анализируется с помощью СОРМ. Если это предположение неверно, то можно использовать технологию Java Servlet (шифровать запрос пользователя (url)) и функцию curl() для получения содержимого страницы по url. В таком случае все шаги данного решения полностью скрыты от СОРМ со стороны провайдера.

Заключение

Данное решение имеет недостатки:

Можно передавать только текстовую информацию и крайне неудобным (неэффективным) способом.

С помощью Java Servlet можно разработать собственный браузер, который будет взаимодействовать с иностранным хостингом и шифровать данные.

1
1
Начать дискуссию