Пользователь
192,1
рейтинг
27 июня 2014 в 02:26

Разработка → Выбираем защищенный IM для Android

Решил я поискать какой-нибудь защищенный мессенджер, посмотреть, что сделали люди за все это время. Протестировал более 20 мессенджеров разной степени готовности. Интересовали только мессенджеры со «своим» протоколом, т.к. в XMPP-мире все нормально и ожидаемо.
Меня, в основном, интересовали мессенджеры для текстового общения с шифрованием в любом его виде. Поиск производился в Google Play по фразам: «secure chat», «secure IM», «secure communication», «secure messaging».
Тестировал только бесплатные решения.

tl;dr: замены Skype все еще нет.

Собственно, вот все мои находки:

1. TextSecure
  • Работает как через интернет, так и по СМС. Использует шифрование без проверки подлинности собеседника, нет даже фингерпринта. Нужно следить за значком ключа в сообщениях. Не оповещает о плейнтексте
  • Для регистрации нужен номер телефона. Регистрация не обязательна (но работает только через СМС)
  • Только сообщения
  • Android-only
  • OpenSource


2. TigerText
  • Больше enterprise-вариант. Может работать по интернету как с номером телефона, так и с почтой (режим «для домена»)
  • Все присланное и отправленное самоуничтожается максимум через 30 дней (по умолчанию 5)
  • Нет проверки собеседника, даже слепка ключа
  • Сообщения, фотографии, аудиозаписи
  • Для регистрации нужен либо номер телефона, либо почта
  • Android / iOS


3. Chiffry
  • Ключи генерируются при первом запуске. Приятный интерфейс
  • Есть фингерпринты ключей
  • Сообщения, звонки, отправка файлов и контактов. Групповые чаты
  • Для регистрации нужен номер телефона
  • Описание на Google Play говорит, что используется AES256-CGM + 512-битные(?) ECDH-ключи
  • Android / BlackBerry


4. Vipole
  • Завязан на сервисы Vipole. Чтобы сгенерировать ключ, нужно водить пальцем. Не только IM, но еще и другие сервисы VIPole — заметки, менеджер паролей
  • Требует деньги для многого, например, для шифрования локальной истории
  • Можно задать пароль для аккаунта и пароль для ключа. Можно задать фейковый пароль для ключа, который либо будет крашить программу, либо и крашить и удалять данные
  • Нет проверки фингерпринтов
  • Для регистрации нужна почта
  • Сообщения, звонки, видеозвонки, передача файлов, групповые чаты и звонки
  • Похоже, отличное решение для бизнеса
  • AES-256, RSA-3072
  • Android / Windows / MacOS / Linux


5. Unseen
  • Нет проверки собеседника, нет стампа ключа
  • Сообщения / аудиовидеозвонки / групповые аудиовидеозвонки / файлы
  • Бесплатный аккаунт позволяет делать аудиоконференции до 5 человек. Видеоконференций в бесплатной версии отсутствуют
  • Регистрация на основе логина
  • 4096-bit NTRU
  • Android / MacOS / Linux / Windows


6. Sicher
  • IM от создателей IM+
  • Сообщения, групповые чаты и файлы
  • Сообщения самоуничтожаются
  • Нет проверки собеседника, даже фингерпринта ключа
  • Регистрация по телефону
  • Android / iOS / WinPhone


7. Whistle.im
  • Только сообщения. Для регистрации не требуется ни телефон, ни почта, только логин и пароль. Подтверждение пользователя по стампу ключа
  • Android / Browser
  • Доступен исходный код библиотек шифрования


8. Surespot
  • Регистрация только с использованием логина/пароля. Используется PGP и свой keyserver
  • Фингерпринты не проверяются
  • Сообщения, голосовые сообщения (платно), картинки
  • 521-bit ECDH + AES256-GCM
  • Клиент и сервер OpenSource
  • На вебсайте в подробностях описано шифрование
  • Android / iOS


9. Wickr
  • Фингерпринты не проверяются.
  • Сообщения самоуничтожаются максимум в течение 6 дней.
  • Сообщения, фотографии, аудиозаписи.
  • Для регистрации требуется только придумать логин. Нет почты.
  • AES256, ECDH521 TLS
  • Android / iOS


10. Antox
  • Ну, про Tox вы и так все знаете, наверное. Где-то не пробился NAT и коммуникация вообще не удалась. В этом и состоит самая большая беда P2P-коммуникаций без сервера
  • OpenSource
  • Cross Platform


11. Seecrypt SC3
  • AES 256 & RC4 384
  • Сообщения / аудиозвонки / файлы
  • Android only


12. Telegram
  • Довольно удобный мессенджер с визуальным фингерпринтом. Проверки фингерпринта нет. Два режима работы: защищенные и незащищенные чаты.
  • AES-IGE + SHA1
  • Сообщения / файлы
  • Открытый протокол, OpenSource клиент, но не сервер
  • Android / iOS / Windows / MacOS / Linux / Browser


Выводы


Все несколько печально. Порадовал Chiffry, но он еще сырой и проприетарный; Surespot порадовал описанием и открытостью, несколько заинтересовал Vipole. Но всем остальным пользоваться неудобно или неприятно. Продолжаем пользоваться XMPP+OTR/SIP+ZRTP.
Влад @ValdikSS
карма
621,0
рейтинг 192,1
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама

Самое читаемое Разработка

Комментарии (84)

  • 0
    а где blackberry messenger? в от отличии от скайпа он не шлет копию в АНБ
    • +1
      А как он правильно называется? Ссылку не дадите? Тот, что я нашел в Play, требует сервера на стороне оператора или организации.
      • 0
        естественно он не peer-to-peer

        а вам какая разница, сервис нужен чтобы гарантировать доставку

        play.google.com/store/apps/details?id=com.bbm&hl=en
        • 0
        • +1
          play.google.com/store/apps/details?id=com.bbm&hl=en

          This app is incompatible with all of your devices.
          • 0
            Это он просто в наших палестинах не хочет работать. Если скачать apk, то он скорее всего преспокойно заработает
          • НЛО прилетело и опубликовало эту надпись здесь
    • 0
      Если это такой же мессенджер, как используется в самих трубках блэкберри, то с ним все печально.
    • 0
      в от отличии от скайпа он не шлет копию в АНБ

      А почему вы так уверены в этом?
      • +1
        потому что причастен
        • +1
          К BlackBerry или к АНБ?
          • 0
            к РИМу
        • +2
          А почему мы должны вам верить?
          • +1
            да на здоровье, я никому ничего не доказываю
  • +2
    Спасибо за обзор.
    А про ChatSecure что скажете?
    • 0
      Он отличный, просто замечательный.
      • +1
        Ааа, я вот это пропустил:
        Интересовали только мессенджеры со «своим» протоколом, т.к. в XMPP-мире все нормально и ожидаемо.

        Не понял, почему только не-XMPP решения? Есть у него принципиальные недостатки, не присущие проприетарным протоколам?
        • +2
          Нет, как раз наоборот. Продолжаем пользоваться XMPP, никто ничего лучше пока не придумал.
          • +1
            Но, вообще говоря, хочется клиент, который был бы «всегда онлайн» и не потреблял батарею, т.е. использовал Google Cloud Messaging и PUSH-уведомления.
            Ну и звонки тоже хочется, что скрывать. Jingle загнулся. С SIP все нормально, но для Android нет приложения, в котором был бы и XMPP, и SIP.
            • 0
              Там где есть SIP, обычно есть и SIMPLE. Его поддерживает например CSipSimple. Только что проверил, сообщения ходят с софтфона на ПК до смартфона и обратно.
              Шифрование поддерживает.
              • 0
                Шифрование поддерживает.

                Нет. Ну, OTR, конечно, поддерживает, но SIMPLE ходит внутри сигналинга, и нужно всегда убеждаться, что у компаньона, как и у вас, используется TLS. А это не так часто в SIP встретишь.
                • 0
                  Ну, под шифрованием я имел в виду SRTP-ZRTP для голоса, но TLS вобщем никто не отменял.
                  • 0
                    Вы, вроде, про SIMPLE говорили. Ну да ладно.
                    • 0
                      Это относилось к CSipSimple.

                      Все таки топикстартер ищет мессенджер а не протокол. ;-)
                      • 0
                        P.S. — Прошу прощения. Только увидел, что «он» на самом деле «вы».
                      • 0
                        Я не понимаю вас. Что конкретно к CSipSimple относилось?
                        • 0
                          Его поддерживает например CSipSimple. Только что проверил, сообщения ходят с софтфона на ПК до смартфона и обратно.
                          Шифрование поддерживает.

                          Весь этот кусок текста имеет отношение CSipSimple, а не к протоколу
            • 0
              ChatSecure как раз работает над внедрением Push.
            • +1
              Попробуйте jTalk + джид на jabber.ru (jid@jabber.ru также является SIP URI)
              Подробности лучше спросить в jtalk@conference.jabber.ru
              • 0
                Я знаю, что в jabber.ru теперь и SIP есть. jTalk поддерживает и SIP, и XMPP?
                • +1
                  Поддерживает, но только для jabber.ru.

                  bitbucket.org/ustyugov/jtalk/downloads/jTalk-dev-418-signed.apk
                  Экспериментальная поддержка звонков. Работать будет не у всех. Звук будет, мягко говоря, не очень. Чтобы попробовать, нужно: иметь аккаунт на jabber.ru, в настройках в разделе экспериментальное поставить соответствующую галку, переподключиться. Когда клиент создаст аккаунт и зарегистрируется — в меню разговора появится трубка. Звонить можно на любые SIP-аккаунты.
                  © juick.com/karp/?tag=jTalk
  • +6
    Не сочтите за рекламу, но мы сейчас разрабатываем IM мессенджер. Правда если мы не найдем спеца со знанием Gossip алгоритмов, ничего крутого не можем сделать. Однако если есть идеи что должно быть и на что обратить внимание будем рады. Из того что сейчас работает в тепличных условиях. Time base криптография (все ни как руки не доходят статью написать) которая позволяет удалить контейнер с течением времени (в качестве бонуса можно будет удалять не прочитанные сообщения) личная или групповая анонимность и различные уровни связи (p2p, p2p over ip, f2f). Ну и самостоятельный контроль настоек безопасности. Мы бы ли бы счастливы услышать ваши пожелания и претворить их в жизнь.
    • +3
      Групповая анонимность и f2f это круто, но лучше бы хоть кто-то уже наконец сделал вменяемую альтернативу базовой функциональности скайпа. Чтобы можно было на неё переползать и перетягивать знакомых. А уже потом можно доделывать все эти фичи. Программа-минимум банальна и уже 100500 раз озвучивалась:
      • поддержка текст/аудио/видео, с качеством аудио/видео не хуже скайпа
      • android/ios/macosx/linux/win
      • открытый протокол
      • открытые исходники
      • OTR для шифрования тестовых сообщений, что-то аналогично стандартное для шифрования аудио/видео (и вот здесь на фичах экономить уже нельзя — генерация ключей, проверка fingerprintов, подписей, PFS, etc. — можно сделать «простой режим» где меньше безопасность но всё делается как-то само, но обязательно должна быть возможность полного контроля)
      • вменяемые внешний вид и юзабилити
      • ещё было бы неплохо иметь возможность автоматического определения контактов, у которых есть поддержка этого протокола, и возможность звонить им через этот IM прямо из адресной книги — разумеется, без отправки на сервер этого IM телефонных номеров, для этого придумали хеши)
      • на телефонах — не жрать батарейку :)
      • 0
        поддержка видео, с качеством аудио/видео не хуже скайпа и на телефонах — не жрать батарейку :) слишком тяжело. А все остальное есть у Whatssapp. У нас концепция сместилось именно в p2p по желанию инвесторов. Кроме видео все остальное реально так что учтем.
        • 0
          Про батарейку — имеется в виду в режиме ожидания, а не во время видео-чата, разумеется.
          • 0
            Батарея в том же скайпе садится ввиду частого обмена служебной информацией. Сколько не общался с разработчиками все как один говорят что стремятся делать энергопотребление «хотя бы как у скайпа». Есть пара идей как сократить служебный трафик что должно продлить жизнь батареи. Однако для p2p нахождение в сети максимального числа мобильных устройств критично. Так что у нас 2 задачи на ближайшее время. Маршрутизация и энергосбережение. Если решим думаю многим понравится.
            • +1
              В том то и дело, что полный p2p на мобильных устройствах — полный провал.
              Мое мнение таково, что нужно делать частичную централизацию, примерно как у Jabber и у Email. Т.е. есть какие-то серверы, которые может поднять любой человек, которые хранят как минимум оффлайн-сообщения и поддерживают PUSH. А сама передача данных может происходить как p2p, так и через какой-то релей (не обязательно этот сервер). Иначе у вас будет либо высокое энергопотребление из-за постоянной передачи данных или постоянно устанавливающихся соединений, либо тормоза в сети, либо невозможность установить соединение из-за того, что пробив NAT не сработал, либо все это сразу.
              • 0
                Из тех идей что сейчас тестируются.
                Супер ноды. Проверенно скайпом. Хранить только маршрутизацию в отдельном районе. Супер нода может быть длительной (к примеру чей то стационарный комп или сервер) или короткой (в этом случае идеально подойдет планшет) Будет собираться информация по батареи и балансировка трафика.
                Частные сервера. Серверный код будет открыт и можно будет поднимать у себя узел. Что то среднее между тором и фидо. Однако данный вариант плох тем что необходима маршрутизация по чужим каналам.
                Распределенная сеть. Позволяет «размазать» файл между нодами. Это то что мы хотим использовать. Позволяет впихивать избыточность и использовать в качестве крипты McElliece что и понравилось.

                Но все это дополнительные опции. Основная идея что бы можно было наладить передачу данных в местах большого скопления людей(общаги кампусы универы стадионы open -air) или в местах стихийных бедствий и при этом сделать продукт для повседневного использования.
  • 0
    Это какой-то тайный заговор?
    Почему нет телеграма ни в списке ни в комментариях?
    • +8
      Тут были же его обзоры. Он безопасный только в рекламе
      • –5
        И где же выплаченные $200 000 за взлом? Прошу вас, не будьте так голословны в выражениях.
        Сейчас поискал: найденные уязвимости уже закрыты.
        // но меня самого смущает возможность print screen'а экрана в секьюрном чате. Впрочем, если до вашего устройства у Евы уже есть доступ, то телеграм тут не поможет.
        • +2
          Тему уже несколько раз обсуждали. Взломать снаружи это не тоже самое, что просмотреть сообщения изнутри.
          • 0
            В таком случае, в чем отличие телеграма от других, якобы секьюрных, мессенджеров?
            • 0
              Если вы имеете ввиду чтение открытых сообщений на стороне сервера, то:
              Режим «секретных» чатов (Secret Chats), доступный с 8 октября 2013 года, использует end-to-end шифрование с применением AES-256

              Хотя существует вероятность MITM-атаки. Хотя этой атаке подвержены все мессенджеры без фингерпринта, я правильно понимаю?
              • +11
                Telegram тоже тестировал, но не включил в обзор. Честно говоря, Telegram, пожалуй, из всех протестированных мессенджеров подобрался ближе всех к названию «защищенный», но все равно не то. Какие-то два режима, по умолчанию используется незащищенный «мне нечего скрывать», у защищенного нет валидации фингерпринта (только отображение в виде картинки).

                Вероятно, я поторопился идти спать, когда написал эту статью, и никто не понял, что это скорее шутка, нежели реальный обзор. Никакими из этих мессенджеров я не рекомендую пользоваться, они все (за редким исключением) моча и говно. Пусть мессенджер использует хоть 7 слоев шифрования, если в нем нет проверки фингерпринта, он не может называться защищенным мессенджером, т.к. не дает вам возможности убедиться, что вы общаетесь именно с тем человеком, с которым хотите, а не с тем, что посередине. Даже если у нас используются асимметричные ключи, и приватный ключ лежит у нас, вроде как все защищено, но проверки фингерпринта нет, импортирования сторонних ключей нет, все идет через сервер, как мы можем убедиться, что сервер прислал нам ключ именно того человека, с кем мы хотим поговорить, а не только что сгенерированный?
                Или, например, проверка фингерпринта есть, но код мессенджера закрыт. Как мы можем убедиться, что сервер не прислал мессенджеру только что сгенерированный ключ и нужный фингерпринт, а мессенджер только показывает его?
                • 0
                  Меня тоже дико расстраивает ситуация на поле безопасных месседжеров, полностью согласен с высказыванием:
                  Никакими из этих мессенджеров я не рекомендую пользоваться, они все (за редким исключением) моча и говно.
                • 0
                  Так если телеграм подобрался ближе всех — почему не включили?
                  А то для не сведующего в безопасности пользователя (как я, например) может
                  показаться, что ваш обзор про какие-то особые мессенджеры, а Телеграм как бы отдельно.

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

                  • 0
                    Добавил.
                    • 0
                      А в выводах его по-прежнему не хватает.
        • 0
          И где же выплаченные $200 000 за взлом? Прошу вас, не будьте так голословны в выражениях.

          Именно этот вопрос обсуждался тут: habrahabr.ru/post/206724/
  • +1
    Извините, что вопрос не очень вписывается в тематику топика, но тем не менее: существует хороший XMPP клиент для Android c приятным интерфейсом?
    • 0
      jasmineicq.ru/ правда что-то как его из маркета выпилили он и подзагнулся

      хотя вон вроде как новый релиз обещают: new.jasmine.im/
      • –1
        Это приятный интерфейс? Серьёзно?
        • 0
          ну он как минимум привычен для некоторых
        • 0
          Он хотя бы умеет располагать сообщения в одной части экрана, а не в разных, как все эти новые модные IM.
    • +1
      xabber достоин внимания
      • 0
        А еще лучше SecuXabber
        • 0
          xabber и так поддерживает OTR, что еще надо…
  • +1
    Хотелось бы высказаться по поподу TextSecure:

    Этот ответ от разработчиков говорит сам за себя:
    > You need to have Google Play Services allowed in your firewall.

    Получается, что для того чтобы получить чуть больше приватности в одном месте, нужно в другом месте её полностью отключить. Отличное решение.
    • +1
      Они просто используют Google библиотеку для Push сообщений.
      • 0
        Могли бы сразу использовать какую-нибудь библиотеку от Google для передачи сообщений. Что ж они так.
  • –3
    <было>
    Как насчёт Telegram?
    https://play.google.com/store/apps/details?id=org.telegram.messenger
    </было>
  • 0
    • 0
      Я его ставил. Он ничего такой, но и ничего особо интересного. Не OpenSource.
      • 0
        Ну тут, как говориться, вам шашечки или ехать.
        • +4
          Мне защищенность и открытость. Это не компромисс.
          • +1
            В шапке поста про альтернативу скайпу сказано, он не открыт. А про обязательное требование открытости ничего не сказано. В таком случае вам только Tox подойдет. Контрибьютить и развивать его можно. Открыт. Вперед.
            • 0
              Есть XMPP, есть Surespot. Я не искал альтернативу или замену скайпу, я лишь сказал, что полноценной замены ему пока нет, и в этом после искать ее не следует.
  • +2
    Antox сейчас выпустят новую версию для дроида но новом ядре, там в протоколе есть режим работа через relay ноду, как раньше у скайпа
  • +1
    TextSecure
    Работает как через интернет, так и по СМС. Использует шифрование без проверки подлинности собеседника, нет даже фингерпринта. Нужно следить за значком ключа в сообщениях. Не оповещает о плейнтексте


    проверка подлинности по отпечатку ключа визуально, или при помощи QR-кода и сканера (встроен)

    Только сообщения


    Фото отправляются спокойно, видео не пробовал перекидывать, на значок для этого есть.
    • 0
      Прошу прощения, я его тестировал только в режиме смс, похоже. По СМС всего этого нет, даже проверки подлинности.
  • +1
    Вы точно ищете безопасный мессенджер? Зачем тогда рассматривать сервисы с закрытым исходным кодом и вообще как-то упоминать скайп?
    • 0
      Было интересно посмотреть. Вдруг бы на что-то интересное наткнулся бы.
  • 0
    Про TextSecure очень сильная неправда.
    На сайте в три клика находится вот это: support.whispersystems.org/customer/portal/articles/1473575-is-it-secure-can-i-trust-it-

    Кроме того, вот тут утверждается, что собеседник всегда верифицируется, даже по СМС. На то что тулзы для верификации все есть, вроде уже указали.

    Для передачи сообщений используется Google Play Services, но поскольку все передаваемые через интернет сообщения зашифрованы end-to-end — расшифровать их всё равно не представляется возможным. (А у Гугла зато инфраструктура бесплатная и отказоустойчивая).

    С какой-то ревизии CyanogenMod TextSecure используется в качестве штатной СМСочницы.

    В общем я не знаю, в каком там смысле автор замену Скайпу искал, но TextSecure это сейчас мой основной мобильный мессенджер, и полёт пока нормальный.
    • 0
      Ах, ну да. И ещё он умеет шифровать СМСки и сообщения в хранилище на телефоне, если это кому-то друг важно.
      Многопользовательские чаты есть.
      Скорее бы iOS-версия — и заживём.
      • +1
        Я не искал замены скайпу, это скорее для красного словца. Возможно, я сделал поспешные выводы из-за того, что не подтвердил номер, но TextSecure мне не понравился. Сейчас понимаю, что если он нацелен действительно заменить стандартное СМС-приложение, то оно и должно так работать. Во время тестирования я думал, что он должен установить OTR-сессию по СМС и визжать, если вдруг сессия прервалась и пришло plaintext-сообщение. Вероятно, действительно, я не до конца понял функциональность приложения.
        • 0
          Ну собственно да, как и у любого мобильного чата у него основной смысл — заменить обмен СМСками на обмен его, шифрованными, сообщениями через интернет, и через то экономить денег.
          Дальше уже в плюс фичи — групповые чаты, секьюрность, вот это вот всё.

          Кстати, глава разработки TextSecure — небезызвестный Moxie Marlinspike. Достаточно забавный кадр.
    • 0
      Ага, а ещё он умеет путать СМСки, которые приходят не с номера, а с алфавитно-цифрового адреса. Так что его оочень рано включили в CyanogenMod, имхо.
      • 0
        Да, кстати, такое иногда наблюдаю.
        Я правда думал что это из-за изменений в работе СМС-обменников межпровайдерных, которые из-за нового регулирования в РФ криво начали работать. Но это действительно у меня так одно с другим совпало, похоже.
        • 0
          Но нет. Если присмотреться к дампу sms, то там в каких-то полях написано имя отправителя, а в каких-то — «unknown». Вот все смски со значением «unknown» TextSecure и сваливает в одну ленту, что некорректно.
          • 0
            Так, раз уж у меня всплыл этот пост.

            Запоздалый апдейт — TextSecure с некоторого апдейта месяц-полтора назад вполне себе умеет правильно сортировать входящие СМС, и проблемы из комментария выше больше нет.

            Пользуйтесь на здоровье.
            • 0
              Благодарю за информацию.
  • +2
    1. TextSecure
    > Технических подробностей на сайте нет

    github.com/WhisperSystems/TextSecure/wiki/ProtocolV2
    а это что?
    • +1
      Это моя невнимательность.

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.