Создание мессенджера, защищённого от перехвата сообщений

Автор: Кирьянцев А., Авдеева Н.

Журнал: Экономика и социум @ekonomika-socium

Рубрика: Основной раздел

Статья в выпуске: 3 (22), 2016 года.

Бесплатный доступ

В данной статье рассказывается о построении программной платформы - мессенджера, защищённого от краж паролей, кражи переписки и подделки сообщений третьей страной.

Короткий адрес: https://sciup.org/140118532

IDR: 140118532

Текст научной статьи Создание мессенджера, защищённого от перехвата сообщений

В данной статье рассказывается о построении программной платформы – мессенджера, защищённого от краж паролей, кражи переписки и подделки сообщений третьей страной.

Современное общество характеризуется обменом, накоплением информации в электронном виде и её обработкой в компьютерных сетях, что требует оперативного решения постоянно возникающих проблем защиты информационного содержания и информационной безопасности.

Данная тема является весьма актуальной и подогрета заявлениями и публикациями технического специалиста, бывшего сотрудника ЦРУ Э. Сноудена, о том, что агентство национальной безопасности (АНБ) США ведёт нечестную игру в направлении прослушивания граждан по всему миру при помощи существующих информационных сетей и сетей связи.

В настоящее время для обмена сообщений в реальном времени существуют программы – мессенджеры, которые могут применяться для передачи текстовых сообщений, звуковых сигналов, картинок, видео, игр, а так же для организации телеконференций путем шифрования сообщений пользователей сети. Обычно мессенджеры работают совместно с сервером и являются клиентскими программами со своими правилами работы и особенностями, например ICQ, Skype. Основной недостаток этих программ заключается в том, что они оставляют метаданные на центральном сервере в незашифрованном виде, что позволяет, при необходимости, узнать информацию о самих абонентах, времени их общения, количестве сообщений в обычной сессии. Для устранения этого недостатка разработана программная реализация шифрования данных, на клиентской стороне с помощью приложения Cryp2Chat.

В интернет мессенджерах отсутствуют следующие функции:

  • -    Проверка наличия MITM (Men in the middle) – атаки,

  • -    Наличие «чистого» (без данных) сервера,

  • -    Самоуничтожение сообщения после закрытия сессии.

MITM-атака – самый распространенный способ атаки для кражи данных пользователя, когда атакующий способен читать и видоизменять по своей воле сообщения, которыми обмениваются отправитель и получатель, причем ни один из них не может догадаться о присутствии атакующего в канале. И для него не важно – используете ли вы криптографический протокол SSL или нет. Атакующий подключается к каналу между абонентами и осуществляет активное вмешательство в протокол передачи. При этом он может удалять, искажать информацию или навязывая ложную.

Все эти проблемы решены в новом приложении – Cryp2Chat.

Разработанное приложение Cryp2Chat в отличие от интернет мессенджеров одно из первых, которое не оставляет метаданные на центральном сервере. Пришедшее сообщение может расшифровать только сам клиент. Ключ для дешифрования имеется только у клиента и за его пределы не выходит.

Алгоритм работы программы следующий (рис.1). Сервер получает список контактов пользователей сети. Ключ для шифрования генерируются на стороне источника – отправителя, далее публичный ключ высылается на сервер, а затем к получателю. Приватная часть ключа остается у пользователя-отправителя.

Отправка сообщения от клиента-получателя через сеть осуществляется в три этапа:

  • 1.    получение с сервера публичного ключа получателя;

  • 2.    шифрование сообщения публичным ключом;

  • 3.    отправка на сервер шифрограммы.

Шифрование происходит методом RSA (длина ключа составляет 1024 бит), но предусмотрена возможность использования и других алгоритмов шифрования.

Рис. 1. Пример работы приложения Cryp2Chat

Приложение Cryp2Chat – это авторский сервис для обмена быстрыми сообщениями с поддержкой End2End шифрования.

(транслирующая JavaScript в машинный код), превращающая JavaScript из узкоспециализированного языка в язык общего назначения. Клиентская часть реализована на Html и JavaScript с использованием библиотеки Cryprico.

Для проксификации и увеличения надежности канала предлагается использование сети TOR (The Onion Router). На компьютере клиента запускается прокси-сервер, который подключается к сети TOR [1], используя многоуровневое шифрование (рис.2). Прежде чем передать пакет данных серверу, он проходит через три случайных компьютера. Перед отправлением пакет шифруется тремя ключами: для каждого из трех компьютеров соответственно. Кроме того, сеть TOR может обеспечивать анонимность для серверов.

При проектировании приложения были рассмотрены три возможные потенциальные опасности:

  • 1.    Подбор пароля. Для оценки возможности подбора паролей использовался блог Касперского[2]. Программа показала, что подбор пароля с длиной ключа примерно 50 символов, включающая в себя служебные символы, займет более, чем 100 тысяч лет. Даже на мощном ботнете Conficker пароль будет подбираться десять тысяч веков.

  • 2.    Кража ключа. Она невозможна по двум причинам:

  • -    если это android приложение, то «песочница» – жестко контролируемый набор ресурсов для исполнения гостевой программы, не даст другому приложению доступ к файлам с паролем,

  • -    если это web приложение, то обращение к переменной невозможно, так как удален указатель на элемент, и только внутренний код может обращаться к этой переменной.

  • 3.    Код приложения не поддается изменению, потому что:

  • -    если это web приложение, то скачанный код сохраняется при первом запуске приложения и не скачивается при последующих запусках,

  • -    если это нативное приложение, то изменение кода со стороны сервера не приведет к изменению кода приложения на клиенте.

Передача потенциально опасной информации (террористические акты, продажа наркотиков) предотвращена. т.к. контроль обмена данными ведется с        помощью        электронной        подписи.        При регистрации пользователь генерирует подпись – это RSA ключ, который передается на сервер, хранится там и никогда не изменяется. При передаче сообщения сервер проверяет подпись, и если данная подпись отсутствует на сервере, то это сообщение не передается. Таким образом, можно еще и контролировать передачу данных.

Список литературы Создание мессенджера, защищённого от перехвата сообщений

  • https://ru.wikipedia.org/wiki/Tor#.D0.90. -электронный ресурс TOR.
  • http://blog.kaspersky.com/password-check -проверка криптостойкости
  • http://my-chrome.ru/2014/06/end2end-begins/-End2End шифровани
Статья научная