Все началось с того, что для мобильных устройств стал искать программы для защищенного обмена сообщениями, защищенного хотя бы формально, хотя бы попробовать. Для компьютеров Win, Mac и Linux все проще, а вот для мобильных вопрос а) актуальнее, б) более закрытый, что-ли.
Идея-фикс: нужны были или PUSH уведомления о новых сообщениях, или другой вид уведомлений. Иначе проще пользоваться электронной почтой. Любые программы с PUSH можно условно считать менее безопасными (т.к. информация проходит через третьи руки), но если шифрование «от устройства до устройства» с предварительной верификацией получателя и отправителя между собой, то, кроме спецслужб, надавивших на сервис, никто получить доступ к данным не сможет (в теории, естественно). А их бояться (и бороться) глупо, т.к. бесполезно.
Что такое PUSH, я увидел и почувствовал тогда, когда тестировал платную и в общем случае не убогую программу для обмена сообщениями через XMPP / Jabber / etc. серверы BeejiveIM. Я не мог понять, как же она эти пуши присылает, если в настройках указан мой сервер, который никуда ничего не шлет, по идее. Оказалось, что логин и пароль, а также остальные настройки, которые я указал для моей учетной записи, эта замечательная программа "передала" на свой сервер и уже этот сторонний сервер регистрировался на моем сервере от моего лица. Т.е. это самый классический MITM, причем моими руками. Я обнаружил это во время тестирования сервера, когда решил ограничить входящие подключения только своей сетью. Бах, а я оффлайн. Стал смотреть логи и так понял, как работает PUSH ;)
Или, например, iMessage. Заявлена поддержка шифрования, но пользователь лично не верифицирует получателя или отправителя, т.к. все ключи шифрования хранятся в Apple.
После этого несколько дней потратил на краткий обзор того, что есть на рынке с приставкой "secure".
Threema
Сайт: https://threema.ch (Швейцария)
Предоставляют сервис (а не только мессенджер) обмена зашифрованными сообщениями. На сайте заявлено, что они не имеют возможности читать пересылаемые между пользователями данные.
Платформы: Android, iPhone, Windows Phone
Функционал: сообщения.
Клиент платный, но условно (2 EUR).
Open WhisperSystems
Сайт: https://whispersystems.org / США (по данным https://ru.wikipedia.org/wiki/Open_WhisperSystems )
OpenSource проект( т.е. теоретически не содержит закладок и алгоритм работы может быть проверен. Например, можно удостовериться, что шифрование идет от устройства к устройству).
Платформы: Android и iOS (в виде Signal private messenger, доступен в Google Play и iTunes).
Функционал: звонки (RedPhone) / сообщения (TextSecure)
Вопросы для размышления (если прояснятся, дополню):
- Есть TextSecure-Server (https://github.com/WhisperSystems/TextSecure-Server ). Можно запустить самим?
- Так ли он OpenSource? См. ссылку (https://f-droid.org/posts/security-notice-textsecure/).
WhatsApp
В представлении не нуждается. Шифрует сообщения только «по пути». По приходу на сервер они уже не зашифрованы.
https://threema.ch/en/faq: Transport encryption only: usually only the connection between the mobile device and the server is encrypted, e.g. using SSL. While this means that messages cannot be intercepted while in transit over the network (a common problem in public wireless LAN hotspots), they are in unencrypted form again once they reach the server.
https://threema.ch/en/faq: Transport encryption only: usually only the connection between the mobile device and the server is encrypted, e.g. using SSL. While this means that messages cannot be intercepted while in transit over the network (a common problem in public wireless LAN hotspots), they are in unencrypted form again once they reach the server.
Если вы не наркоторговец, можно и не волноваться. А можно волноваться, это уж кому как.
ChatSecure
https://chatsecure.org/
XMPP-клиент. Работает с обычными XMPP серверами (jabber, prosody и др.).
Есть возможность вести защищенный обмен сообщениями поверх между обычными учетными записями на сервере XMPP. Для этого надо выполнить предварительную верификацию отправителя и получателя - сравнили отпечатки на экранах устройств и подтвердили (или отвергли), что это Алиса, а это Боб. Дальше диалог шифруется, прочтение содержимого не возможно (т.е. на сервер приходит уже зашифрованное сообщение. Отправитель и получатель видны, а содержимое - нет.
Не поддерживает PUSH, что в контексте безопасности скорее плюс. После 1-2 минут неиспользования клиент iPhone уходит в статус «оффлайн» и не получает новые сообщения пока снова не открыть программу на телефоне. Никакие данные при этом не проходят через Apple – только конкретный сервер XMPP. Для получения уведомлений о новых сообщениях можно включить на сервере XMPP уведомления об offline сообщениях.
Программа хранит OTR-отпечатки пользователей, с которыми вы устанавливали secure chat.
Если вы используете подключение к вашему сервему XMPP через TLS, то сертификат этого сервера будет сохранен в программе в Настройки - Сохраненные сертификаты. Тут, кстати, есть еще один интересный момент - в сохраненных сертификатах есть по умолчанию два - chat.facebook.com и talk.google.com. Я пытался их удалять, но они появляются снова - почему? - опять надо копаться... Ох, эта ж моя паранойя...
Имхо, лучшее, что я видел в плане безопасности общения для iOS, но чтобы утверждать совсем уж, надо сильно вникать в её работу.
Платформы: Android, iPhone
SilentCircle
https://silentcircle.com/
Единственный сервис / мессенджер из рассмотренных, требующий платной подписки. Заявлены безопасность от отправителя до получателя. Доверять ли им? Решать вам.
Есть целый пласт систем безопасного обмена сообщениями / почтой с применением PGP и его производными.
Например, iPGMail для iOS.
https://ipgmail.com/
Его я не проверял, сказать ничего не могу пока, но для себя на будущее и для других просто оставлю здесь ))
service iptables stop
".Также вы можете столкнуться с неявными проблемами, которые создаст вам SELinux, который охраняет вашу систему от нестандартного поведения служб, а вы как раз эти службы терзаете почем зря. Поэтому рекомендую отключить SELinux на время настройки. Делается это разными способами:
# setenforce 0
или
# echo 0 > /selinux/enforce
/etc/selinux/config
изменить параметрSELINUX=disabled
Перезагрузить компьютер.