Почему ваш любимый мессенджер должен умереть

    image
    Кладбище мессенджеров, на котором обязательно должны оказаться Skype, Viber, WhatsApp, Hangouts, ooVoo, Apple iMessage, Telegram, Line, Facebook messenger и еще сотни мессенджеров, которым только предстоит выйти в ближайшее время.

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

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

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

    image

    _ Почему такая важная для человечества технология, как мгновенные сообщения и аудио-видеозвонки, не может быть монополизирована какой-либо компанией. Как это тормозит развитие технологий, угрожает свободе и безопасности коммуникаций.



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

    image


    Интернет, каким мы его знаем сегодня, существует благодаря открытым стандартам. Все уровни взаимодействия сети, начиная с физического (кодирование сигнала по проводам, радио, оптическим каналам) и до прикладного уровня приложений (HTTP, E-mail) открыты и доступны для любого желающего. Кто угодно может написать свой веб-сайт, браузер, email-клиент. Для этого не нужно просить чьего-то разрешения, покупать патенты или заключать контракты.
    Именно поэтому мы имеем множество операционных систем, умеющих работать с интернетом, и разнообразие устройств и приложений, поддерживающих популярные протоколы.

    Представьте, что емейл можно было бы отправить только с программы Outlook на такой же Outlook, а на Gmail уже нельзя. И перед отправкой емейла нужно было бы выяснить, какой у получателя почтовый клиент. Или, например, голосовые звонки с мобильного работали бы только между телефонами одного производителя. То есть звонить с Samsung можно было бы только на Samsung. Абсурд, не правда ли?

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

    Все дело в том, что в какой-то момент открытые стандарты перестали успевать за потребностями пользователей, и коммерческие компании смогли предложить намного более привлекательные решения. Это обеспечило огромную популярность коммерческим мессенджерам. Так, например, во времена dial-up, такого качества голосовой связи, как у Skype, не мог предоставить никто из конкурентов, да еще и бесплатно! На сегодняшний день, по разным данным, на долю Skype приходится около 40% международных звонков.

    С массовым распространением смартфонов хлынула вторая волна распространения мессенджеров. Люди постепенно сообразили, что платить огромные деньги за одно SMS несправедливо, если за эти же деньги можно чатиться весь день в альтернативном мессенджере. Так, некогда большой рынок SMS-сообщений стал сдуваться.
    Такая же судьба в какой-то момент неминуемо ждет и телефонные звонки. Мобильные операторы это понимают и пытаются как можно дальше оттянуть этот момент. Сперва пытаются блокировать VoIP-сервисы в своих сетях, а потом и вовсе маскироваться под них: МТС запустит альтернативу Skype

    Ситуация чем-то напоминает борьбу правообладателей с пиратством: сперва с возможностью домашней записи на аудиокассеты, VHS и компакт-диски, а позднее и с пиратством в интернете с помощью внедрения новомодных DRM, принятием законов вроде DMCA. Которая в итоге завершилась почти полным проигрышем.

    Вот только мобильные операторы являются частью очень влиятельных телекомов, которым принадлежит значительная доля интернет-каналов. Поэтому, скорее всего, процесс отказа от SIM-карт и голосовых услуг оператора будет мучительным и долгим.
    Однако подвижки в эту сторону уже есть. Разрабатываемый Samsung и Apple стандарт e-SIM позволит выбирать оператора прямо в телефоне, без необходимости вставлять SIM-карту. В итоге процесс подключения к новому оператору будет не сложнее оформления подписки на музыкальный сервис — включил только что купленный телефон, посмотрел список операторов, доступных в данном регионе, выбрал подходящий тариф, оплатил кредитной картой и пошел.
    В таких условиях пользователи захотят всегда сохранять за собой свой номер телефона. Таким номером должен был стать iNum, который, как мне кажется, провалился. Возможно, вместо номера телефона будет ID в любимом мессенджере-коммуникаторе. Очевидно, что в этом случае ничего, кроме интернета, от оператора пользователю не нужно. Поэтому общественный запрос на услуги операторов будет звучать примерно так: «Дайте мне доступ в интернет и отвалите со своими дополнительными услугами». Уже сейчас можно видеть негодование пользователей, использующих SIM-карты в планшетах исключительно для интернета, когда операторы впаривают им подписки на платные сервисы, гороскопы, анекдоты, пакеты SMS и т. д. В будущем это ощущение сформулируется более отчетливо.

    Архимед нащупывает точку опоры

    ______________________________Архимед нащупывает точку опоры

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

    image

    _ Почему доминирующим глобальным мессенджером ни в коем случае не должен стать Skype, Viber, WhatsApp, Telegram, Hangouts и прочие проприетарные поделки.



    Для того чтобы понять опасность монополии в технологической сфере, можно взглянуть, например, на бизнес-решения, работающие только в Internet Explorer, из-за чего откровенно плохой продукт вынуждены поддерживать и использовать повсеместно.
    Или на форматы электронного документооборота. Так как момент был упущен, доминирующие позиции занял проприетарный doc, и до сих пор нет единого стандарта электронного документооборота.

    В СМИ часто поднимается вопрос: какой же мессенджер «защищенный» на самом деле? Под этим обычно понимается безопасность транспортного протокола, что в большинстве случаев нелепо, потому как, помимо безопасного протокола, существует еще большое количество сущностей, которые могут содержать уязвимости.
    Безопасен или нет конкретный мессенджер – вопрос неправильный, пока не обозначена конкретная угроза. Безопасность — это не готовый продукт, а целый комплекс технологий и архитектуры, и рассматривать каждую угрозу нужно отдельно.

    Skype



    image
    Я пользуюсь Skype уже около десяти лет. У меня это вторая по частоте использования программа после браузера.
    Для меня Skype — большее, чем просто IM, я веду в нем рабочие переговоры, общаюсь с друзьями, завожу новые знакомства в публичных skype-конференциях.
    Skype полностью заменяет мне социальные сети, у меня даже нет аккаунта в VK и Facebook, потому что мне приятней видеть и слышать собеседника.

    Я по максимуму пользуюсь всеми возможностями Skype: групповые видеозвонки, демонстрация рабочего стола, чаты, пересылка файлов, звонки на обычные телефоны, SMS, аренда прямых номеров, подписки.

    Я попробовал все инструменты Skype для разработки: Skype4Com, SkypeKit SDK.
    У меня есть опыт работы с решениями Skype для интеграции с бизнес-системами VoiP, такими как Skype for Asterisk и Skype Connect.
    Я активно пытался улучшить Skype, писал отчеты о проблемах и найденных уязвимостях в bug tracker, пока его не закрыли. В частности, я нашел две критические ошибки, позволяющие удаленно вызвать завершение клиента Skype под Windows.

    Я по-настоящему люблю любил Skype, и, как мне кажется, имею достаточный опыт и моральное право, чтобы писать все это.

    Почему Skype крутой?



    На сегодняшний день Skype — самая продвинутая программа в своем классе, которая на порядок превосходит всех ближайших конкурентов, и вот почему:

    • Качество звука.
      По моим наблюдениям (а попробовал я достаточно), при прочих равных условиях, в Skype всегда лучшее качество звука. И дело не только в битрейте (хотя кодек SILK великолепен), из-за динамического построения маршрутизации Skype выдает минимальные задержки, поэтому при низком качестве интернета дает лучший результат. Никакой SIP даже рядом не валялся. В этот момент многие могут возразить: «Но ведь у нас в SIP есть HD-кодеки!», правда, с оговоркой, что в реальной жизни они работают через раз. Об этом следующий пункт.
      Эхоподавление Skype позволяет мне вывести голос на колонки, при том что собеседник даже не поймет этого. Только в Skype я могу включить на большую громкость динамики и слышать/отвечать из другой комнаты без малейшего намека на эхо.
    • Бронебойность и живучесть
      Skype — дьявольски хитрая программа, которая умеет пролазить через любые изощренные фаерволы, плохо настроенные NAT-ы и блокировки.
      В каких бы странных условиях вы ни находились, даже если интернет ограничен tcp-запросами к 80 и 443 порту, Skype все равно, скорее всего, будет работать. Я часто наблюдал ситуации, когда выход в интернет заблокирован, но хитрый Skype все равно работает, потому что сумел найти соседа в физической сети, у которого интернет есть, и вышел через него. О такой гибкости все другие программы могут только мечтать.
      На фоне этого, нытье SIP-провайдеров про то, что у вас плохо настроен NAT, не проходит RTP, неправильно работает UPnP/NAT-PMP, выглядят просто смешно.
    • Шифрование
      Мне важно, чтобы моя коммуникация была защищена от перехвата и анализа. И, даже несмотря на всякие Microsoft Government Security Program, согласно которым по запросу спецслужб все необходимые данные могут быть переданы заинтересованным органам, я могу быть точно уверен, что на сетевом уровне никакой провайдер не в состоянии перехватить мои разговоры, если даже новомодные системы DPI испытывают трудности с выделением трафика Skype.
      Именно шифрование на сетевом уровне преподносится многими мессенджерами как функция, которая делает программу безопасной. Далее, я рассмотрю, почему шифрование трафика не является синонимом безопасности.
    • Стабильность
      Skype на десктопе, по крайней мере на Windows и OS X, очень стабилен и крайне редко вылетает. Это позволяет держать активными видеозвонки без перерыва по нескольку суток. При этом с небольшой нагрузкой на CPU, в отличие, например, от решений на WebRTC, которые нагружают процессор и жутко нестабильны.
    • Функциональность и удобство
      Огромный функционал: групповые видеозвонки, демонстрация экрана, пересылка файлов, возможность отредактировать последнее отправленное сообщение(!), исходящие на обычные телефоны. Все это в стандартной поставке в виде удобного клиента. Никаких плагинов и расширений.


    Почему Skype должен умереть?



    • Небезопасен
      Не просто небезопасен, а крайне опасен!
      Skype до сих пор раскрывает ваши IP-адреса, включая локальный. По этим данным можно узнать ваше текущее местоположение и построить карту перемещений.
      Пока существовал публичный bug tracker, можно было наблюдать, как Skype больше года чинит уязвимость, позволяющую провести удаленный DoS клиента для Windows.
      Уязвимость, позволяющую удаленно разблокировать выключенный микрофон, чинили около полугода.
      Мне приходилось буквально упрашивать разработчиков обратить внимание на уязвимости, из-за которых нельзя было пользоваться программой.

      Когда была опубликована уязвимость, позволяющая угнать любой аккаунт, от которого известен email, я сутки пытался достучаться до саппорта, но так и не смог. Зато взломал аккаунты Алексея Навального и Антона Носика.
      Кстати, после этого инцидента Skype так и не пересмотрел свою политику регистрации аккаунтов без подтверждения почты. По-прежнему можно указать любую почту при регистрации и аккаунты будут отображаться при поиске, что позволяет заспамить поисковую выдачу, если искать аккаунт по email.

      На момент написания этой статьи (!!!), мне известно по крайней мере две уязвимости, позволяющих необратимо заблокировать чужой Skype-аккаунт так, что у жертвы больше не получится им воспользоваться. При этом атакующему достаточно знать только логин жертвы, никакие почты и пароли не нужны. Я опять же не смог достучаться с этой проблемой до саппорта и написал на их форум. Проблема до сих пор не исправлена.
      Нет никакой возможности достучаться до квалифицированного саппорта, все письма заворачиваются на индусов, цитирующих FAQ и не желающих поверить, что проблема действительно на их стороне и нужно передать ее разработчикам.

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

      Из этого следует вывод:

      безопасный транспортный протокол не делает мессенджер безопасным


      Важно помнить об этом, читая очередной маркетинговый бред про тройные уровни шифрования, длину ключа, military grade security и прочую чушь, не имеющую отношения к реальной безопасности.

    • Закрытость и непредсказуемость
      Невозможно просто так взять и написать альтернативный Skype клиент, потому как его протокол закрыт и часто изменяется. Поэтому на каких устройствах будет работать Skype, решает только сама компания. Некоторое время назад существовал SkypeKit SDK, позволяющий разработать клиент для интеграции в собственные устройства. Для этого нужно было подписать несколько документов о неразглашении, пообещать не запускать skypekit на сервере, выпустить персональный сертификат (который, в случае чего, мог быть отозван), и можно было приступать к разработке. Однако потом компания передумала и решила отозвать поддержку skypekit и заблокировать все существующие купленные версии. То же произошло и со Skype4Com, и со Skype for Asterisk. Поэтому, если вы решили интегрировать поддержку Skype в один из своих продуктов, будьте готовы, что завтра это может перестать работать, и все усилия по разработке будут напрасны.
      Похожая ситуация и с интерфейсом десктопного клиента. После выхода очередной новой версии приходится искать способ отключить безумные фантазии маркетологов вроде видео-смайлов на пол-экрана, пропавшей кнопки регулировки громкости, и многого другого.
      Нельзя предсказать, что придумает Skype завтра, и это пугает.


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

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

    Telegram


    image Я рассмотрю Telegram отдельно, так как его принято считать мессенджером, принципиально отличающимся от конкурентов, и не страдающим недостатками Skype, Viber, WhatsApp. Он преподносится как долгожданная защищенная альтернатива всем существующим мессенджерам. СМИ разрекламировали его как средство связи, которым спокойно пользуются даже террористы, настолько он безопасен. Однако, в большинстве случаев, безопасность рассматривается как отдельная сущность без рассмотрения конкретных видов угроз, что в корне неправильно.

    Я сам постоянно пользуюсь телеграмом, и нужно признать, что он действительно прекрасен в плане юзабилити. Ни от одного другого мессенджера я не был в таком восторге. Чего только стоит его стабильность при плохом интернете. В среде с плохим сигналом, где едва ловит GPRS, ни один другой мессенджер не работает настолько хорошо. Но когда речь заходит о безопасности и исключительности Telegram, нужно признать, что он страдает всеми теми же симптомами, что и конкуренты.

    Почему Telegram должен умереть?


    • Централизованное управление.
      Это главная проблема всех описанных здесь сервисов. Я часто встречаю непонимание серьезности данного аргумента. Казалось, бы, что плохого в том, что какая-то компания полностью контролирует ваше общение? Ведь они все там хорошие ребята, и денег не просят, и API удобное, и смайлики красивые.
      Но нельзя забывать, что это всегда компания, которая преследует собственные интересы, и, скорее всего, среди них нет задачи всю жизнь работать себе в убыток ради наступления мира во всем мире.
      Уже сейчас можно наблюдать, как под давлением другой коммерческой компании Telegram определяет темы, на которые нельзя разговаривать: Telegram удалил 78 чатов об «Исламском государстве» по требованию Apple.
      Или решает, какими данными нельзя обмениваться: Telegram начал блокировать музыкальных ботов по требованию Apple, Telegram ограничил доступ к порно-ботам для жителей Ирана.
      Это значит, что одна взятая компания хороших ребят всегда будет уязвима для давления влиятельных структур. Этими структурами могут быть и целые государства, в юрисдикции которых действует компания. То есть, в любой момент времени, какая-то информация или действия могут стать неугодными для политики компании, контролирующей ваше общение, даже если законы вашей страны не запрещают этого.
      Нельзя предсказать, как завтра изменится политика отдельных государств, и поэтому такая легкая возможность влиять на инструменты общения просто недопустима.
    • Централизованная архитектура.
      Эта проблема неразрывно связана с первой. Единая точка отказа позволяет в любой момент ограничить доступ к сервису для целых стран или даже полностью ликвидировать Telegram решением суда.
      Серверы Telegram, вместе с перепиской, которая хранится на них в открытом виде, могут быть изъяты в любой момент, если так решит государство, в котором они размещаются.
      Несмотря на то, что клиентская часть протокола Telegram открыта, серверная часть по-прежнему закрыта для стороннего аудита. По сути, защищенность обычных чатов держится на честном слове команды Telegram. Они как бы говорят: «Мы не станем читать вашу переписку, честное слово!». Вероятно, так это и есть, но сама по себе возможность некой группы людей иметь безграничный доступ к приватной информации в масштабах всего мира недопустима.
    • Аутентификация по SMS
      Telegram безопасен настолько, насколько безопасен ваш мобильный оператор, из-за аутентификации по SMS. Достаточно вспомнить историю, как злоумышленники пять раз перевыпускали SIM-карту Beeline. Telegram позволяет защититься от этого, установив дополнительный пароль, но по умолчанию он не используется.
    • End-to-end шифрование
      Надо признать, что пользоваться данной функцией в Telegram действительно удобно. Особенно приятно, что можно установить таймер самоуничтожения чата и не переживать, удалит ли собеседник лог переписки в нужный момент.
      Но процедура сверки ключа совсем не однозначна. Каждый раз отпечаток ключа разный. Непонятно, по каким каналам предполагается его сверять. Нет возможности однажды провести верификацию ключа чата, чтобы в дальнейшем проверять его подлинность самостоятельно, как в случае с OTR.


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

    А как же мой любимый %messenger_name%?


    Все вышеописанные симптомы, в той или иной мере, касаются большинства топовых мессенджеров, известных на сегодняшний день. Централизованная архитектура и управление одной компанией — самый большой гвоздь в крышку гроба каждого из них. Поэтому нет смысла описывать подробно недостатки каждого в отдельности.

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

    ICQ
    • Централизованная архитектура, принадлежащая Mail.ru в России
    • Легко уязвим из-за отечественных силовиков
    • Никаких средств end-to-end шифрования

    Viber
    • Централизованная архитектура
    • Привязка к номеру телефона
    • Закрытый протокол
    • Отсутствует end-to-end шифрование

    WhatsApp
    • Централизованная архитектура
    • Закрытый протокол
    • Привязка к номеру телефона
    • Отсутствует end-to-end шифрования
    • Плата за использование

    Google Hangouts
    • Централизованная архитектура
    • Закрытый протокол
    • Необходим аккаунт Google
    • Отсутствует end-to-end шифрование

    Face Time / iMessage
    • Централизованная архитектура
    • Закрытый протокол
    • Работает только на устройствах Apple

    SIP и Jabber


    Когда нужна реальная безопасность, все-таки приходится пользоваться старыми добрыми опенсорсными протоколами.
    Для голоса это — SIP + ZRTP, а для текста — XMPP + OTR. Но на фоне всех коммерческих сервисов, можно сказать, что данные протоколы чаще не работают, чем работают.
    Для меня выглядит диким, что, во многих случаях, при звонках через SIP можно получить голос в одну сторону, проблемы с входящими или исходящими звонками и еще целую кучу проблем, которых лишены все коммерческие решения. Мне абсолютно не хочется думать о типе NAT, используемом в данной сети, накручивать ICE или STUN, прокидывать порты, когда просто нужно позвонить. Это отвратительно.

    Похожая история с Jabber. Как вообще можно представить, что в 2016 году сообщения могут просто потеряться из-за разрыва соединения с сервером? Где нормальное подтверждение доставки и прочтения? Jabber абсолютно ужасен в среде с нестабильным интернетом и на мобильных платформах.

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

    Как быть?


    Я искренне считаю, что эта тема крайне серьезна и важно не упустить момент. Нельзя допустить, чтобы фундаментальная возможность общения между людьми была кем-то захвачена, как-либо ограничена, и потенциально уязвима.
    Таким важным для человечества вопросом, как разработка единого стандарта мгновенных сообщений и звонков, должны заниматься организации вроде IETF вместе с ведущими IT-компаниями.

    Хорошим примером является история с OpenSSL. В момент обнаружения уязвимости heartbleed, все были в ужасе, насколько беззащитной оказалась вся индустрия из-за одной ошибки. После чего была создана организация Core Infrastructure Initiative. В нее входят крупнейшие IT-компании вроде Cisco, Google, Intel. Целью этой организации является поддержание критически важных для индустрии программ, таких как OpenSSL, GnuPG, Network Time Protocol и других.
    Надеюсь, важность открытых инструментов коммуникации будет осознана раньше, чем будут обнаружены фатальные проблемы в существующих проприетарных продуктах, и подобная организация будет вовремя создана для работы над нужными стандартами.

    Протокол интернета позволяет связаться любому узлу с любым другим узлом в интернете. На сегодняшний день это не совсем справедливо из-за проблем ipv4, но представим, что прошло пару лет и у всех уже есть ipv6, и у каждого устройства в любой момент времени, при наличии связи, есть реальный маршрутизируемый IP-адрес. Это позволит любому устройству, будь то смартфон или компьютер, связываться друг с другом без помощи компаний, предоставляющих сервисы для общения. Достаточно только найти способ сообщить нужному собеседнику свой текущий IP-адрес.
    Добавим к этому наличие аппаратной поддержки криптографии во всех мобильных устройствах, позволяющей без особых затрат батареи использовать шифрование.

    image

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



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

    Tox


    image Наверное, самый продвинутый на текущий момент инструмент, приближающий P2P криптоанархию. Это полностью децентрализованный мессенджер-коммуникатор, с функциями передачи голоса, видео, демонстрации экрана, конференций. Все коммуникации по умолчанию шифруются и передаются напрямую между пользователями без серверов. Есть клиенты под Windows/Linux/OSX/Android. К сожалению, реализация клиентов сыровата местами, и некоторые функции не работают между разными платформами, но они активно развиваются. Хочу сказать спасибо antonbatenev за продвижение TOX на хабре.

    Ring


    image Бывший SIP-клиент SFLphone. Теперь умеет работать в 3 режимах: как обычная SIP-звонилка (централизованная), как федеративный сервис (с self-hosted сервером, который может связываться с остальными серверами) и полностью децентрализовано.
    Грубо говоря, с этой штукой можно звонить по SIP через DHT. К сожалению, клиент под OS X еще сыроват и полноценно воспользоваться им у меня не получилось.

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

    • Открытый и разрабатываемый в интересах общества.
      Никакая компания не должна иметь монопольную возможность управления всей архитектурой и разработкой. Разработка должна вестись путем коллективных обсуждений, подобному тому, как утверждаются RFC. Лицензии не должны как-либо ограничивать использование протокола. Это не исключает существование коммерческих клиентов, подобно тому, как сейчас существуют платные Email-клиенты и компании, зарабатывающие на технологиях электронной почты.
    • Децентрализованный.
      Под децентрализацией я не имею в виду исключительно P2P, при котором отсутствуют вообще какие-либо серверы. Опорные серверы могут существовать, подобно супернодам Skype, например для передачи тяжелой медиаинформации, кеширования, обмена данными о маршрутизации и т. д. Чистый P2P во многих случаях неудобен, например для мобильных пользователей с узким нестабильным каналом. Это может быть децентрализация, подобная Email и Jabber, когда существует большое количество независимых серверов, которые могут сообщаться между собой. Закрытие одного или нескольких серверов не повлияет на систему. Даже если целые страны или континенты будут отрезаны от интернета, система продолжит работать. Вероятно, нужно предусмотреть и работу в случае недоступности сервера. То есть, клиент, при желании, может делегировать хранение учетных записей серверу, и входить по логину-паролю, либо хранить приватные ключи локально и входить в сеть самостоятельно без сервера. Таким образом можно сохранить удобство для простых пользователей и дать возможность квалифицированным пользователям обеспечить достаточный уровень безопасности.
    • Защищен от блокировок
      Протокол должен быть устойчив к попыткам блокировки, уметь переключаться между различными портами, транспортными протоколами и обфусцировать трафик таким образом, чтобы его нельзя было выделить системами DPI. В самом крайнем случае, использовать в качестве транспорта любой из доступных протоколов, например HTTPS. Даже если все возможные точки входа будут полностью закрыты на маршрутизаторах провайдера, должна существовать возможность указать собственный адрес шлюза, подобно тому как это сделано в Tor.
    • Защищен от прослушивания
      Все коммуникации между конечными пользователями не должны передаваться и храниться в открытом виде нигде, кроме устройств пользователя. Для удобства синхронизации между устройствами пользователя, история может сохраняться на сервере при его желании, но должна быть зашифрована. Например, мастер-паролем, как это сделано в ProtonMail. При этом должны быть удобные инструменты для верификации ключей, используемых для end-to-end шифрования, подобно тому как это сделано в RedPhone. Программа-клиент должна в обязательном порядке уведомлять пользователя о не доверенном соединении, попытках перехвата или проблемах с шифрованием.
    • Интероперабелен
      Все реализации клиентов должны быть совместимы на базовом уровне, описанном в стандарте. То есть звонки и чат должны работать между всеми существующими программами, чтобы иметь возможность звонить со Skype в Viber и наоборот. Фирменные нестандартные функции могут быть доступны между клиентами одного производителя.


    Вывод


    Я не призываю в срочном порядке отказываться от использования вашего любимого мессенджера. К сожалению, достойной замены коммерческим продуктам на сегодняшний день нет, и пока приходится пользоваться тем, что лучше решает поставленную задачу. Цель данной статьи обратить внимание на серьезную проблему, которая ждет нас в будущем, если сегодня не будут предприняты меры. Также это попытка ответить разом на все споры о том, какой же мессенджер лучше и почему стоит скептически относиться к новостям о том, что очередная компания сделала очередной супер мега мессенджер, теперь уж точно правильный и безопасный.
    Поделиться публикацией
    Похожие публикации
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама
    Комментарии 346
    • +2
      Честно, я предлагал однажды идеальный мессенджер как его вижу я (тут):
      По мне так должен быть гибрид P2P и Серверного P2P. Пользователь выбирает «основной» клиент, который будет всегда запущен — он будет выполнять роль «личного сервера» (например, на десктопе). Именно он отвечает за соединение P2P к таким же «основным клиентам» других пользователей IM. И к нему уже коннектятся «миниклиенты» — те же мобильные клиенты, или просто клиенты на других компах.
      В такой ситуации плюсы почти всех видов IM (и историю можно хранить, и независимость от центрального сервера, и можно фильтровать чётко сколько данных идёт на какие клиенты, чтобы не перегружать мобильные), но есть один минус — устройство, на котором запущен «основной» клиент, должно быть постоянно онлайн.


      Но при этом хочу добавить, что поскольку большинству юзеров поддерживать свой собственный «основной» клиент может быть иногда сложно, то юзер должен иметь возможность делегировать свой «основной клиент» на какой-то публичный сервер — которые поднять может каждый (как те же сервера Джаббера — их может поднять каждый), и который и будет выполнять роли «основных» клиентов для многих пользователей одновременно. Но обязательно должна быть возможность трансфера и ревоука авторизации этих серверов — чтобы пользователь мог в любой момент перевести свой аккаунт с одного сервера на другой, либо даже вообще на свой собственный «основной клиент».
      • 0
        Увы, почему его до сих пор нет — разработку такого я соло не потяну ни по умениям, ни по времени. :( Я бы хотел найти людей, с которыми мы бы вместе могли это делать. Увы, я плохо умею искать людей.
        • +1
          Мне лично очень интересна эта тема, я давно уже пришёл к такой же идеи как и у вас. Так что в случае чего подписываюсь. А вообще может можно просто tox улучшить и внести в него такую функциональность.
      • +3
        Мне кажется, что во-первых нужно определить формать идентификатора пользователя. Самым логичным, универсальным и обратно совместимым я вижу ID вида user@host.com. Такой идентификатор уже точно есть у каждого, будь то электронная почта или учетная запись в соцсети типа user@fb.com, user@vk.com и т.д. Это позволит обесепчеить обратную совместимость с юзерами не поддерживающими протокол: в таком случае произойдет даунгрейд на протокол email.

        Для каждого идентификатора должен быть определен соответствующий ему отпечаток ключа, подлинность которого можно однозначно установить. Например, он может быть размещен в DNS зоне домена к которому относится учетная запись, подобному записям CERT. Поддлинность записи может заверяться, к примеру DNSSEC.

        Вот, например, мой PGP ключ, хранящийся целиком в DNS, для учетной записи pavel@zhovner.com:

        dig cert pavel.zhovner.com
        


        Конечно DNSSEC имеет на сегодня много недостатков и я не считаю его лучшим решением для подтверждения подлинности ответа DNS, но как пример он вполне годится.

        Подобным образом, вместе с ключом, может храниться информация о серверах обслуживающих данного пользователя. Это может быть подобие DHT и магнитной ссылки для torrent, содержащей информацию о серверах через которые можно связаться с данным юзером. Эта запись может так же хранится в специальном типа DNS записи. В таком случае можно вынести обслуживание каждой учетной записи на специфические для него IP и на лету их быстро изменять.

        Я не настаиваю на именно такой модели, но мне кажется нечто подобное наиболее жизнеспособно, потому что в идентификаторы используемые например в TOX в виде фингерпринта ключа, никогда не позволят ему стать популярным.
        • +2
          Я не настаиваю на именно такой модели, но мне кажется нечто подобное наиболее жизнеспособно, потому что в идентификаторы используемые например в TOX в виде фингерпринта ключа, никогда не позволят ему стать популярным.

          tox1,tox2 — были на основе DNS (TXT запись на домене с user@example.com)
          tox3 — костыль, так как tox1&tox2 это plaintext
          Сейчас на подходе «tox4», когда user@example.com делает запрос на сервер по https и получает ответ в json.

          Так что как минимум с токса4 можно будет без проблем и шифрованно добавлять контакты по мылам.
          • +3
            Ещё бы у токса как-то реализовать возможность пользоваться одним аккаунтом с разных устройств…
            • 0
              не одновременно возможно, одновременно они дерутся за статус оналйн
              • 0
                Синхронизировать путём ручного переноса tox save? ;-)
                • 0
                  Не пробовал, использую только с 1 устройства, на другом запускал для теста.
                • 0
                  Закапывайте.
                • 0
                  подключить транспортом к XMPP? :D
            • +1
              Знаете, далеко не у каждого пользователя есть домен, которым он может (и способен) управлять. Большинство будет вынуждено делегировать идентификацию третьей стороне, что опять означает централизацию и контроль.

              Чтобы от этого уйти, нужно радикально пересмотреть концепцию «идентификатора». Он не должен иметь настолько большую ценность, как например номер телефона. Его должно быть легко поменять, но при этом не потерять связь со своими контактами.
              • –2
                Давайте смотреть правде в глаза.

                Гик (раз токс для гигов) умеет управлять доменами и у гика всегда есть домен, а то и десяток и купить новый домен это копейки.
                Так же как и купить виртуалку/сервер за копейки или биткойны, так как у гика найдется что накинуть на нее.

                Теперь не о гиках: рядовому пользователю, у которого почта на яндексе или мейле и который юзает гугл диск пофигу, так как у него почта на яндексе или мейле и он юзает гуглдиск.

                Теперь:
                Он не должен иметь настолько большую ценность, как например номер телефона. Его должно быть легко поменять, но при этом не потерять связь со своими контактами.

                Его и так можно поменять и не потерять связи. nospam меняется.
                • +3
                  далеко не у каждого пользователя есть домен

                  Вам для использования электронной почты нужно владеть и управлять доменом? Нет, но вы можете если этого захотите. Есть огромное количество имейл-сервисов с разными уровнями безопасности и внутренним устройством. Нет никакой централизованности в имейлах.

                  • +2
                    кстати, «огромное количество имейл-сервисов» в последнее время закрылись. По ходу доступные бесплатные почтовые сервисы предоставляют только «крупные игроки».

                    • +1
                      а это централизация и зависимость от корпоративных настроений
                      • +2
                        видимо, небольшие сервисы губят все эти антиспам технологии (у каждого крупного игрока по своей). Ну и, возможно, крупные игроки друг друга меньше в спам пихают, а мелких туда убирают.
                  • +1
                    Вот про это я долго думал… Но в итоге особо ни к чему не пришёл, кроме как к наоборот противоположному выводу. Идентификатор должен иметь большую ценность, но он должен быть легко перемещаем. Вопрос как этого добиться для меня пока что открыт.
                    • +1
                      Посмотрите на это с другой стороны. Я думаю надо начинать как раз с понимания и разработки идентификатора. Идентификатор как минимум должен быть: уникальным в масштабах Земли, не принадлежать какому-то одному центру индентификации, с юзер-френдли переводом накопленных контактов от одного идентификатора к другому. Пока этим условиям подходит только логин@домен. По крайней мере по существует достаточное количество платных/бесплатных почтовых сервисов.
                      В принципе я когда-то записывал пару идей как создать такой мессенджер, были б деньги, это не сложно технически.
                      • +2
                        Посмотрите на блокчейн: идентификатор — хеш от публичного ключа. Он уникален, но его легко поменять.
                        • +1
                          идея очень хорошая, но будет работать только тогда когда только любая блондинка сможет переписать хеш из блокнотика в нужное место на сайте/телефоне. Мы ж про массовое использование говорим.
                          • 0
                            Не будем забывать о таком формате безошибочного копирования фотокамерою мобильника, каким служат QR-коды.

                            [плакат против анекдотов о блондинках]
                            • 0
                              Идея хорошая, если вместо биткоинового блокчейна взять неймкоиновый. Мы возвращаемся к идеи ДНСа, но децентрализованного.
                              • 0
                                никто не мешает сделать попутно сервис жёлтых страниц с подтверждением как хеша, так и номера телефона по смс.
                                Или каталог на профилях соц. сетей.

                                Хотите, чтобы любая блондинка смогла добавить вас в свои контакты, регистрируетесь на них.
                                Не хотите публичности, не регистрируетесь.
                                • 0
                                  оформить пересылку по емейлу? :)
                            • 0
                              Меня вполне концепция EMCDNS устраивает. Тут нам и совместимость, и привычные идентификаторы, и децентрализация.
                              • 0
                                Идентификатором всё же должен быть некий сертификат (закрытая часть которого == доступ к аккаунту). А к этому идентификатору нужно иметь возможность привязывать алиасы в виде user@host.

                                В XMPP всё же очень тяжелый процесс перехода на другой JID, приходится каждому контакту отвечать на вопрос «ты кто?». А так процесс можно будет прозрачным сделать.
                                • 0
                                  А как быть в случае утраты или похищения закрытой части сертификата? Злоумышленик сможет использовать его для другого идентификатора?
                                  • 0
                                    > А как быть в случае утраты или похищения закрытой части сертификата
                                    Так же, видимо, как сейчас и в случае утраты-похищения пароля == потеря аккаунта. Продумать восстановление нужно, да.

                                    > Злоумышленик сможет использовать его для другого идентификатора?
                                    Если сертификат == идентификатор — то нет, конечно.

                                    Сервер привязывает всю информацию об аккаунте к сертификату (контакты, инфу профиля и прочее). Чтобы не происходило такого, что угнали домен = угнали все контакты и связи.
                                    Если сертификат у user@host сменился — ругаемся, как в ssh (known_hosts) на смену сертификата (дескать «чувак, это возможно не тот root@vlad.pro, которого ты добавлял, проверь личность собеседника вопросами, ответы на которые знаете только вы».

                                    Домен привязываем к определенному серверу тоже через механизм закрытых-открытых ключей — закрытый заливаем на сервер, открытый — в DNS, например. Чтобы левые люди не могли красть login@host с приватного домена. На сервере тоже нужно ограничение по возможности управления отдельным доменом (помимо администраторов сервера — администраторы отдельных доменов, которые должны подтвержать попытку привязать id вида user@host к сертификату пользователя).
                            • +1
                              С DNSSec ужасная идея. Почему криптоофицерам и Verisign должен довериться весь мир? Это очевидный провал с точки зрения безопасности. Спецслужбы не будут терзать криптосхемы, пока можно вежливо попросить Verisign сгенерировать внеплановый ZSK, который затем можно использовать в направленных mitm-атаках. Если до сих пор нельзя вежливо попросить — издать за пару дней поправку к закону (хотя с расплывчатыми формулировками законов уже давно всё можно и в США, и в России).

                              В остальном, описанная схема напоминает toxme.io, который при желании можно развернуть и на своём сервере. Отдельные клиенты, типа Antox даже по умолчанию в нём регистрируются. Только вот по мере роста популярности такие сервисы будут становиться всё более подверженными всем видам атак, свойственным централизованным сетям.
                              • +1
                                Я же говорю, что DNSSEC просто как пример и я не настаиваю на нем, потому что его проблемы очевидны. К сожалению кроме него пока ничего не придумали для проверки подлинности dns ответов, а куда еще поместить информацию инорфмацию о ключах я не представляю. Запрос к вебсерверу для получения ключа, мне кажется не лучшим вариантом.
                              • +2
                                Днс сам централизованная штука, контролируемая одной организацией.
                                Даже без решений суда они могут разделегировать любой домен (и они правда делают это).
                                Поэтому идентефикатор вида user@host.com мне не нравится.
                                • +1
                                  Эта проблема может потом решиться. Например, народ будет массово добавлять у себя на компьютерах поддержку тех доменных зон, которые обеспечиваются распределенными решениями типа namecoin. Тогда достаточно будет перенести акк из user@host.com на что-то вроде user@host.bit. Т.е. модификация может не затронуть серьезно мессенджеры и прочие средства, которые используют DNS.

                                  Другое дело, что держим ли мы в уме все почтовые и джаббер адреса своих контактов? Мне думается, большинство из нас наизусть помнит только свои адреса и, может, адрес жены. Остальное хранится в самих адресных книгах и прочем таком. В такой плоскости хранение user@host.com не имеет принципиальных преимуществ в сравнении с хранением уникального, но вырвиглазного токс айдишника.
                              • +2
                                А что с сертификатами для отправки пуш-уведомлений? Я бы вот для своего клиента мобильного сертификат для отправки пуш уведомлений в третьи руки бы в жизни не отдавал…
                                • +1
                                  Поясните пожалуйста, что вы имеете ввиду?
                                  • +1
                                    Скорее всего то, что все PUSH-уведомления для iOS-девайсов идут через Apple Push Notification Service (APNS), запросы к которому должны быть подписаны сертификатом.

                                    Сторона, не имеющая такой сертификат, не может отправлять PUSH-уведомления в приложение.
                                    Сторона, имеющая такой сертификат, теоретически может отправлять уведомления в любой инстанс приложения на любой девайс.
                                    • 0
                                      Ну дык есть же какие нить пуш агрегаторы наверное. Через них и посылать зашифровано. Это решается плагинами — например плагин для пушей на айос и плагин для пуш на андроид, а может и плагин для универсального пуша. Их могут предоставлять какие-то отдельные сервисы, который может поднять кто угодно на любых условиях. А все данные через такие сервисы перед отправкой шифровать, и на клиенте дешифровывать.
                              • –2
                                Еще есть Bleep. Тоже p2p. Шифрование end to end. самоуничтожающиеся сообщения…
                                • +3
                                  Вы знаете, что у него внутри? Может он ксором шифрует сообщения
                                  • 0
                                    Его разработчиком является Bittorrent. Не так уж велика вероятность, что они лопухнутся с шифрованием.
                                    • +6
                                      я к тому, что исходники закрыты
                                  • +3
                                    Мне пишут почему я не упомянул Signal который работает только на мобилках и требует обязательной регистрации по SMS. А так же Wickr, который называет себя The Most Trusted Messenger in the World. Наверняка существует еще не один десяток таких мессенджеров, я не могу охватить их все.
                                    • +1
                                      Ну телеграм то, который тоже требует телефонный номер, вы упомянули.
                                      • 0
                                        Телеграм, хотябы, можно использовать на компьютере и у него достаточно большая аудитория.
                                      • 0
                                        Да, но при этом в тэгах он указан.
                                        • +9
                                          Регистрация через телефон — абсолютное зло.
                                          Я год вынужден был не пользоваться Телеграмом, пока, наконец, не оказался в стране, где легально можно приобрести SIM-карту без привязки к паспортным данным.
                                        • 0
                                          На десктопе Bleep ужасен. Как можно выпускать мессенджер без возможности свернуть в трей? Зачем так издеваться над пользователями?
                                          Ну и на офисном компе оно явно испытывает какие-то проблемы с коннектом через прокси-фаерволы, но старается об этом молчать.
                                          • 0
                                            Давайте для начала разберемся — мы тут обсуждаем будущее мессенджеров или все-таки рюшечки, которые внедрены на сегодняшний день?
                                        • +26
                                          Skype, WhatsApp и т.д. уже стали доминирующими мессенджерами. Шансы, что какой-нибудь Tox выскочит, как черт из табакерки и захватит миллиард пользователей, стремятся к нулю.
                                          Потому что для среднестатического пользователя никаких минусов у WhatsApp нет. Привязка к телефону — удобно, платить не обязательно и смайликов куча.
                                          А среднестатистическому гику, даже если он использует Tox, все равно нужен WhatsApp иначе кроме 2-3 таких же гиков он никому написать не сможет.
                                          Как и в любой сфере, большинству нужны удобство и простота использования. Но если использовать фотошоп когда у всех инстаграм проблемы нет, то сидеть одному в месседжере нельзя.
                                          • +16
                                            Я уверен, что точно так же как различные WhatsApp-ы быстро набрали аудиторию, так же быстро они ее могут потерять. Кроме того, не обязательно ликвидировать их, все эти мессенджеры могут в определенный момент перейти на новый протокол совместимый друг с другом, если появится реальная угроза потери всей аудитории. Это конечно утопические мечты, но я очень надеюсь.
                                            • +10
                                              Конечно, в какой-то момент они потеряют свою аудиторию, так же как потерял её ICQ. Но в пользу чего-то еще более юзер-френдли.
                                              Если люди прекратят пользоваться WhatsApp, его не спасет возможность звонков на скайп. Потому что людям пофиг на протоколы, и им не мешает еще один апп в телефоне.
                                              У большинства, в итоге стоит один мессенджер, который нравится лично ему, и еще кучка которая нравится тем, с кем он общается. А если протокол будет общий — это потеря аудитории для всех. Никто на это не пойдет.
                                              Кстати, чем Tox не подходит на роль вашего идеального протокола? Может, чем изобретать новый стандарт, лучше поконтрибьютить в существующийе?
                                              • +1
                                                Лично я не готов ставить более 1 мессенджера, который будет у меня в автозагрузке. Потому что ресурсы не резиновые — а особенно ценен заряд батареи в современном мире. Поэтому, если мне надо будет, я поставлю, напишу, и удалю. Но чаще воспользуюсь электронной почтой, потому что почта — действительно, есть практически у всех пользователей интернета. На приватном, корпоративном или публичном сервисе, но есть.
                                                • 0
                                                  Можно не ставить мессенджеры в автозагрузку. Поставить, написать, удалить съест меньше батареи?
                                                  Лично у меня для повседневного использования WhatsApp, благо он есть сегодня практически. Стоит скайп для видеозвонков. Фейсбук и вконтакте как мессенджеры почти не использую. И Tox для общения с теми немногими у кого он есть.
                                                  Электронную почту многие вообще не проверяют или проверяют гораздо реже. Поэтому её как замену мессенджера ИМХО странно рассматривать.
                                                  • +1
                                                    В смысле не проверяют? С тем же Android это невозможно. Прилетает сообщение сразу, что почта пришла.
                                                    • 0
                                                      Ну, вы преувеличиваете. Это только если гуглосервисы установлены, email тоже на гугле на том же аккаунте, который вы вбили в телефон.
                                                      • +1
                                                        Если есть смартфон на андроид, если почта забита в почтовый клиент на андроиде, если включена синхронизация и уведомления. При этом если почта не на gmail, то синхронизируется она раз в определенный промежуток времени (у меня например раз в час).
                                                        Так что скорее «можно сделать так, чтобы было невозможно пропустить почту», а не «невозможно пропустить почту».
                                                    • 0
                                                      Да, в идеальном мире, конечно, надо бы, чтобы новые мессенджеры развивали плагины под другие клиенты, или хотя бы держали открытым протокол.

                                                      Например я сейчас доступен из ВК, Facebook, Skype, IRC, GTalk — при этом клиент у меня единственный, Pidgin. Все доустановлено плагинами. Печалит лишь, что многие плагины написаны реверс-инжинирингом, что нестабильная штука.
                                                  • +1
                                                    Надеяться можно долго. Но сколько лет уже XMPP и почему он не стал популярным для обычного пользователя и в чем проблема использовать его если так хочется безопасности?
                                                    • +7
                                                      Ну, во-первых, протокол не поддерживает Push для мобильных устройств. Это, без шуток, большая проблема.
                                                      Во-вторых, Jabber чаще (по крайней мере, у меня) не может передать файлы за NAT, чем может. Прокси использовать для этого можно, конечно, или inbound-передачу, но это медленно.
                                                      В-третьих, если уж делать «убийцу» Skype, то нужны звонки, а у нас для Jabber что есть? Jingle? Их два, и поддерживаются они в считанных клиентах (в трех?).
                                                      • +3
                                                        Я к тому что он не стал совсем масштабным и популярным даже лет 5, 10 назад. Когда можно было сказать что он на передовой и вариантов кроме него было не так и много и все они глючные были. Изначально причина в том что продукты для гиков параноиков, нужны только гикам параноикам.
                                                        • +1
                                                          Справедливости ради, переписываться в ВК можно было с любого jabber клиента. Аналогично и Google Talk(до hangouts). Если вы не знаете, что джаббер используется в месенджере, то это не значит, что он не используется там ;)
                                                      • +1
                                                        Push'ы нужны для экономии траффика ж. Что-нибудь, да придумают. Конечно ввод отдельного сервера отвергают все, так как это рушит саму идею децентрализованного месенжера, но потребление траффика уже уменьшают.



                                                        И убийцей скайпа Токс вполне себе может быть. Чем больше людей подключится к разработке, тем быстрее комьюнити вгонит осиновый кол в скайп с телеграммой.
                                                        • 0
                                                          Не, погодите, речь про Jabber шла. В Tox же есть TCP-релеи, которые должны были решить проблему. Не решили? Я думал, что релеи будут транслировать только полезный трафик, а остальной оставлять ноде, на которой он запущен.
                                                          • +2
                                                            В 2-3 раза траффик упал, но для мобилок все равно много.
                                                            Issue #1251 посмотрите.

                                                            Я не помню, откуда у меня в голове текст, но токс клиент должен каждые 5 (10?) секунд соединяться с 5ью рандомными нодами. В принципе, если уменьшить колво нод в конфиге токсклиента, то и уменьшается кол-во коннектов. Но такая нода должна бустить все остальные и быть правильно настроена.

                                                            upd: и тот же toxic генерирует DHT траффик будь здоров! (в 3- группах и 50 контактов в них суммарное).
                                                          • 0
                                                            Пуши нужны, что бы вытащить мобильного клиента из бекграунда (или запустить если он выключен вообще), когда надо подтащить новые данные с сервера. Вы не можете пулить сервер в бекграунде на мобайле.
                                                            • +2
                                                              Не только трафика, но и батареи.
                                                              Основная идея такой архитектуры — нет необходимости держать приложение поддерживающее протокол постоянно запущенным — он может быть безболезненно выгружено из памяти до прихода очередного PUSH-сообщения, с которого продолжится работа месенджера без необходимости повторной авторизации и переподключения. А так же нет необходимости поддерживать соединение активным чтобы быть постоянно в онлайн.
                                                            • +7
                                                              протокол не поддерживает Push для мобильных устройств

                                                              Расширения протокола уже есть: XEP-0357: Push Notifications.

                                                              Process One сделала штуку — ProcessOne Push Platform: XMPP-based Push Solutions — которая добавляет PUSH для XMPP в их мессенджер ChatSecure при подключении к совместимым серверам.

                                                              В Service Discovery jabber.ru и talkr.im видно что-то про PUSH



                                                              Хочется Jabber-клиент (и сервер) с поддержкой PUSH, но пока я на это дело плюнул: ничего не понятно.
                                                              • +2
                                                                Круто, спасибо.
                                                                • +3
                                                                  Для джаббера нет адекватных клиентов, и не будет, пока XEPы не будут обязательны для реализации в клиенте.

                                                                  Плюс, я не помню точно, но у него был какой-то критический недостаток в протоколе. Что-то вроде отсутствия счётчика пакетов, из-за чего были проблемы с сортировкой и потерей.

                                                                  • 0
                                                                    Плюс, я не помню точно, но у него был какой-то критический недостаток в протоколе. Что-то вроде отсутствия счётчика пакетов, из-за чего были проблемы с сортировкой и потерей.

                                                                    Это тоже решается. К сожалению, опциональным XEP'ом, и я не помню его номер. Что-то вроде stream control, когда станзы именно что нумеруются.

                                                                    Видел даже где-то руководство по добавлению поддержки этого дела в какой-то мобильный IM-клиент и в сервер на Prosody, дабы мобильный клиент лучше держал коннект и был более устойчив к обрывам.
                                                                    • 0
                                                                      Опциональные ХЕРы портят всё.
                                                                      • 0
                                                                        Почему? Если ваш сервер поддерживает (а поддерживающие есть), то напишите/допишите клиент, это будет заведомо проще и быстрее, чем пилить всё с нуля.
                                                                        • 0
                                                                          Практика — то есть наличие стопицот конкурирующих мессенджеров, среди которых джаббер не блещет юзербазой, показывает, что заведомо проще как раз написать с нуля.
                                                                          • 0
                                                                            не показывает
                                                                            // показывает не это
                                                                            • 0
                                                                              Нет. Я пишу свой мессенджер не потому, что мне яростно нужен XEP на stream initiation или ещё что, а потому, что мне хочется написать свой мессенджер на C++ с блекджеком и лямбдами.
                                                            • +2
                                                              Skype, WhatsApp и т.д. уже стали доминирующими мессенджерами. Шансы, что какой-нибудь Tox выскочит, как черт из табакерки и захватит миллиард пользователей, стремятся к нулю

                                                              Достаточно дождаться покупки этих меседжеров Mail'ом.ru )))
                                                              • +2
                                                                Даже если WhatsApp завтра просто исчезнет, всё равно все пересядут на Viber или Telegram, но никак не на Tox. Его функционал просто не нужен обычному пользователю. А мессенджер без пользователей — не нужен никому.
                                                                Сценарий использования Tox — группа друзей или коллег размером от 2 до N человек вместе устанавливают его и общаются через него. Иначе есть шанс что звонить будет просто некому.
                                                                • –1
                                                                  Вам нужно кое что поправить:
                                                                  nano /etc/Randl.conf
                                                                  юмор-mod=on
                                                                  • –1
                                                                    Для группы друзей уже есть Slack и gitter
                                                              • +2
                                                                Когда то icq тоже был стандартом дефакто. Но… ничто не вечно под луной.
                                                              • +3
                                                                Почему не упоминается FireChat?
                                                                • 0
                                                                  На момент когда его тестировал, это был чатик с теми кто рядом и какими-то непонятными комнатами. Идея мне очень понравилась но реализация была так себе. Сейчас все сильно поменялось? Если да, могу попробовать и добавит в статью.
                                                                  • +3
                                                                    Комнаты так и остались. Общаться можно через интернет, но при его отсутствии формируются сеть пользователями поблизости и для передачи сообщений используется Bluetooth, Wi-Fi. Я им активно не пользовался, так что не знаю на сколько там все удобно реализовано. Стоит на черный день :)
                                                                    • +5
                                                                      Мне как раз не нравится идея прикручивания меш именно к приложению чата. Имхо, целый коммуникационный канал не должен юзать монопольно один апп. Меш должен быть реализован через тот же CJDNS, который на выходе дает всем приложениям, умеющим в IPv6 статический, независимый от местоположения приватный IPv6 адрес с end2end шифрованием и инкапслуляцией решений всех вопросов связи ниже L3. Т.е. тема с тем, как соединить людей по wifi — не должно быть проблемой мессенджера, а мессенджер должен заниматься своими чатами, голосовой связью и т.д. Иначе мы получим десятки несвязных мешсетей, которые не помогают друг другу, а скорее мешают, и при этом надо будет врубать все радиопередатчики.
                                                                      • 0
                                                                        Это пока утопичная идея. Если я правильно понимаю, то поддержка CJDNS должна осуществляться на уровне операционной системы. Если с *nix и BSD-like все понятно, то вот с мобильными ОС все хуже. Раз пока нет единого стандартна для организации mesh-сетей на уровне ОС, то проще все это реализовать на уровне своего приложения.
                                                                        • 0
                                                                          IEEE 802.11s чем не стандарт?
                                                                          CJDNS — популярный, но по многим причинам он не может быть стандартом.
                                                                          • 0
                                                                            802.11s только про Wi-Fi. В FireChat же mesh-сеть может работать и через Bluetooth.
                                                                            • 0
                                                                              Блютуз фигово масштабируется — до 7 клиентов в одну сеть…
                                                                              • 0
                                                                                Так как это не «один или два», то серьёзных ограничений на общий размер mesh-сети нет. (Но нужны узлы для передачи из одной семиклиентской сети в другую. Их роль, как я понимаю, играют Wi-Fi-передающие узлы.)
                                                                                • +2
                                                                                  Ну да, тусовка народу что яблоку негде упасть и у всех выключены WiFi для экономии энергии, ибо знают что в большой тусовке он является причиной преждевременного разряда батареи… блютуз как-то поэкономичнее, а MESH-WiFi стандарт еще не сильно распространён, у большинства пользователей будет 802.11n или в крайнем случае 802.11ac которые не располагают к экономии энергии.
                                                                              • 0
                                                                                Вариантов много, хоть batman-adv и через лазерную указку переговаривайтесь.

                                                                                Протокол — не то, что является проблемой. Основные проблемы — расход батареи и нестабильное окружение(клиенты двигаются)
                                                                    • 0
                                                                      Он же только для революций вроде бы, а в обычно время Телеграмм удобнее.
                                                                      • 0
                                                                        Узкоспециальный мессенджер для компактных толп, с упомянутыми сравнивать нельзя.
                                                                      • +4
                                                                        я предлагаю оставить в комментариях свой логин с пометкой «Согласен провести тестирование моего аккаунта на уязвимости».

                                                                        zhovner или любой по почте pavel@zhovner.com.

                                                                        На всякий случай: намёк в том, что кто-то может написать не свой логин, а в результате пострадает невинный человек. Не надо так делать.

                                                                        А по статье: так я и не понял, кто по Вашему мнению лучше Skype или Телеграм, т.к. и там, и там есть превосходные степени слов… поясните, пожалуйста.
                                                                        • +3
                                                                          кто-то может написать не свой логин

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

                                                                          так я и не понял, кто по Вашему мнению лучше Skype или Телеграм

                                                                          Вы точно дочитали до конца?
                                                                        • +8
                                                                          Signal забыли
                                                                          • 0
                                                                            Половина телефонов и самой телефонии через SIP работает. И только парочка кривых «СофтФонов» ему репутацию портит.
                                                                            • 0
                                                                              SIMPLE не поддерживает почти никто, передачи файлов нет.
                                                                            • +2
                                                                              В Skype, кстати, можно редактировать не только последнее, но и более ранние сообщения — в течение часа (?).
                                                                              По умолчанию Ctrl+Up редактирует последнее, но во всех клиентах в контекстном меню сообщения есть пункт «редактировать сообщение».
                                                                              • 0
                                                                                iMessage имеет end-to-end шифрование. Причем каждое устройство получает свое шифрованное сообщение. Похоже на упомянутый выше Signal.
                                                                                • 0
                                                                                  Хорошо, исправил. Расскажите как происходит доставка сообщений отправленных получителю оффлайн? Когда в момент получения отправитель оффлайн. Проще говоря как сообщения хранятся на сервере если это end to end.
                                                                                  • 0
                                                                                    А что мешает при end-to-end хранить сообщения в зашифрованном виде на сервере?
                                                                                    • 0
                                                                                      Это значит, что PFS не используется и все чаты закрыты одним ключом устройства? Получается похитив ключ, можно вскрыть все чаты записананные с начала времен.
                                                                                      • +1
                                                                                        Я имею ввиду такую схему: Клиент А хочет послать сообщение клиенту B. Он получает все публичные ключи всех устройств клиента B и шифрует каждым ключем свое сообщение — т.е. грубо говоря при 10 устройств у B он отправит на сервер 10 сообщений, которые будут дожидаться онлайна каждого из устройств клиента B. (Ну или это будет не 10 сообщений, а одно, зашифрованное AES'ом вместе со словариком «Публичный RSA (whatever) ключ — зашифрованный им AES ключ».
                                                                                        • 0
                                                                                          В том-то и дело, что сейчас уже никто так не делает для IM. OTR, например, генерирует новый ключ каждую чат-сессию (в смысле OTR, а не в смысле сессии как таковой), ключ этот хранится в оперативной памяти, и если кто-то после того, как вы поговорили с человеком и закрыли чат-сессию, захочет посмотреть, о чем вы говорили, он просто не сможет этого сделать, т.к. ключа, которым шифровались сообщения, уже нет.
                                                                                          Обычный (статический) публичный ключ нужен для установления чат-сессии и подтверждения подлинности эфемерного ключа.

                                                                                          У ребят из Open Whisper Systems были идеи генерировать для каждого клиента несколько десятков эфемерных ключей впрок, чтобы можно было отправить несколько десятков оффлайн-сообщений, но не знаю, реализовали ли они это.
                                                                                          • 0
                                                                                            Да, они запилили свой клевый протокол и походу всё работает github.com/WhisperSystems/Signal-Android/wiki/ProtocolV2
                                                                                            • 0
                                                                                              Вспомнил одну веселую ситуацию. Общался в Spark через OTR. А мессенджер тупо историю записал в обычный текстовый файл. Безопасность, однако.
                                                                                              • +1
                                                                                                А в чем проблема? Мой мессенджер (psi+) тоже так делает.
                                                                                                • 0
                                                                                                  Считается, что весь смысл deniable encryption (коим является OTR в отличие от PGP, например), теряется. Более того, что не очень приятно, он теряется и для вашего собеседника, который может надеяться на то, что против него заведомо не будет улик.

                                                                                                  Хотя не знаю, в клиенте, который я разрабатываю, тоже вся история в файл записывается. Как раз недавно об этом задумывался, но не смог выбрать из трёх вариантов (не писать никогда, либо писать всегда, либо сделать настройку) и отложил выбор.
                                                                                      • 0
                                                                                        Вы хотите сказать, что там статический ключ, без дополнительных эфемерных ключей, и он не меняется?
                                                                                  • 0
                                                                                    Справедливости ради в Телеграмме аутентификация по СМС не единственный способ добраться до аккаунта, есть ещё двухфакторная авторизация в которой после вода СМС кода, надо будет ввести обычный пароль.
                                                                                    • +5
                                                                                      Справедливости ради, если читать внимательно, можно увидеть что это упомянуто.
                                                                                      • 0
                                                                                        Сорри, утра не заметил )
                                                                                      • +2
                                                                                        Она почему-то не работает: я брал общедоступный номер, регистрировал на него Телеграм, привязывал почту и включал двухфакторную аутентификацию — после чего через неделю учётку угоняли. Сильный пароль от этого не помогал — было ощущение, что эту аутентификацию можно просто отключить с телефона, не зная пароль и не имея доступа к почте.

                                                                                        Кроме прочего, мессенжеры с привязкой к телефону не дают использовать номера +883… (inum) → требуют реальный телефон в реальной стране. Грубо говоря — привязка к паспорту.
                                                                                        • +1
                                                                                          А что такое «общедоступный номер» и где его брать?
                                                                                        • +2
                                                                                          Скорее всего учетку не угоняли, а создавали новую, а ваша старая уничтожалсь с потрохами.
                                                                                      • +2
                                                                                        Есть пара знакомых, которые принципиально не хотят переходить на телеграмм из-за отсутствия инвиза и рассылки всем контактам «Иван Иваныч has joined Telegram!», так что такое (инвиз, не рассылка) тоже могло бы быть полезной функцией.
                                                                                        • +1
                                                                                          Если не добавлять собеседника в контакты, а общаться только через никнейм, то не видно когда собеседник онлайн и когда был последний раз онлайн.
                                                                                          Это здорово оберегает от навязчивых, разовых и случайных собеседников, в отличии от ватсапп, где обязательно нужно добавлять собеседника в контакты и получать (отдавать) номер телефона. Для приватности можно заявить это как киллер-фичу Телеграма.
                                                                                          У меня есть собеседники с которыми я общаюсь в Телеграм, но не знаю их номера телефонов — только никнейм.
                                                                                          • +2
                                                                                            Тут скорее проблема в другом. Для регистрации в Телеграм однозначно нужен номер телефона. И если ваш номер записан у кого-то в записной книжке, то он будет оповещен, когда вы зарегистрируетесь в Телеграме.
                                                                                            • +1
                                                                                              Мне кажется эта фича сделана для популяризации Телеграм и возможно в будущем будет отключена.
                                                                                              • 0
                                                                                                Тут проблема в другом: когда я попытался подключиться через web-версию, то оно мне прислало смс чтоб удостовериться что это я. Но т.к. телефон дома, а я -нет, то смысл?
                                                                                                • +1
                                                                                                  Странно, мне присылается код с подтверждением в Телеграм на устройства с активными сессиями. СМС можно послать по желанию.
                                                                                                  скриншот
                                                                                                  image
                                                                                                  • –1
                                                                                                    Ну может так и было, но телефон с Телеграмом всё равно дома.
                                                                                                    • +1
                                                                                                      Ну удобство использования продукта обычно обратно пропорчионально его безопасности.
                                                                                          • +1
                                                                                            Все описанные вами проблемы решаются наличием нормальных транспортов в соседние IM протоколы. После того как скайп стал работать через вэб, есть вероятность, что jabber2skype появится. При наличии xabber в телефоне большего пока и не надо.
                                                                                            • 0
                                                                                              Вас не расстраивает отсутствие Push-уведомлений?
                                                                                            • +12
                                                                                              Транспорты? Вы серьезно? Даже мне, интернет-задроту сложно пользоваться этим фуфлом.
                                                                                              • 0
                                                                                                Так об этом и речь текущими транспортами невозможно пользоваться вообще. До сих пор коробит при воспоминании о прикручивании J2ICQ к ejabberd. Была бы общая поддержка транспортов, пусть хоть 100500 месенджеров с закрытым кодом будет, завел бы учетку во всех необходимых и свел бы все в свой джаббер с OTP.
                                                                                                • 0
                                                                                                  Надо было просто pyicqt прикручивать ;)
                                                                                                  git clone, 3 строки в ежике и погнали.
                                                                                              • +3
                                                                                                Транспорты сами по себе костыль, который появился из-за того, что существует тот зоопарк, который мы все имеем неудовольствие наблюдать. В SMTP вот нет никаких транспортов, потому что они не нужны — любой почтовый сервер и так понимает, что ему хочет сказать другой.
                                                                                                • +3
                                                                                                  Уже не нужны. Т.к. что такое uucp уже мало кто помнит без wiki.
                                                                                                  • +2
                                                                                                    Там своих костылей хватает. SMTP протокол до сих пор не предназначен для передачи символов с кодами 128...255, всё реализовано через различного рода костыли вроде BASE64 и MIME. Некоторые костыли общеприняты и кажутся врождёнными но много и уникальных. Более-менее SMTP-сервера умеют общаться только на базовом уровне, что хватает для передачи писем, но что-то большее вроде подтверждения приёма-доставки и начинаются пляски с бубном.
                                                                                                    • 0
                                                                                                      Можно ли считать транспортом SMTP-сервер, который пересылает входящие сообщения в виде SMS на указанные в адресе номера? Одно время у некоторых операторов связи такие были, как сейчас с ними ситуация — не знаю.
                                                                                                      • 0
                                                                                                        Ну это отдельные частные случаи, так и веб-клиент для чего-нибудь можно обозвать «транспортом из http в $protocolname». А именно массового использования приблуд для пересылки из smtp в другие системы связи не наблюдается.
                                                                                                    • 0
                                                                                                      jabber2skype есть, spectrum.im
                                                                                                      • 0
                                                                                                        О, не знал о нем, знал только о sameroom.io
                                                                                                        • 0
                                                                                                          По наличию слова dbus в коде создаётся впечатление, что оно работает, пиная запущенный в фоне десктопный скайп клиент. Что автоматом означает требование иксов на сервере и жор ресурсов этим самым клиентом.
                                                                                                          • 0
                                                                                                            Хотелось бы чего-нибудь более легковесного, использующего Skype Web. На винде, если не использовать родной клиент, уже можно otr делать: http://wiki.miranda-ng.org/index.php?title=Plugin:SkypeWeb/ru в логах родного клиента все красиво выглядит )
                                                                                                        • +5
                                                                                                          Мессенджер — это немношк технологий и много-много денег в маркетинг. Это именно так и никак иначе. Поэтому ваш анализ с табличками абсолютно бесполезен. Все что вы сравниваете, шифрование, архитектура, кодеки видео и пр. — не более чем маркетинговые фичи. Пользователь плевал на все это. Это косвенно подтверждается тем фактом, что азиатский рынок мессенджеров в обзоре не представлен совсем, а тут есть о чем рассказать.
                                                                                                          • +1
                                                                                                            Как обычно проблема в деньгах.
                                                                                                            За таким месседжером должна стоять крупная организация, готовая это дело финансировать, но на текущий момент очевидно, с точки зрения бизнеса — это бесперспективно, раз таких предложений нет.

                                                                                                            Есть альтернатива — это сообщество open source. Но у OS проблема в отсутствии денег, им занимаются в свободное от работы время.
                                                                                                            Мне симпатичен Tox, я внимательно слежу за его развитием. Но им надо научится зарабатывать на нем деньги.
                                                                                                            Главный вопрос как?
                                                                                                            Они уже собрали краудфанеринг на $5000, но это месяц работы разработчика. И единожды.
                                                                                                            • +1
                                                                                                              Но им надо научится зарабатывать на нем деньги.
                                                                                                              Главный вопрос как?

                                                                                                              Как и все — клянчить у сообщества кнопка доната.
                                                                                                            • +14
                                                                                                              Есть классный XMPP-проект — Jappix, и сервер к нему — Metronome (форк Prosody), из коробки он поддерживает очень много различных XEP включая синхронизацию сообщений между клиентами, уведомления о прочтении, аудио и видео вызовы, хранение истории, а так-же многое другое.

                                                                                                              Если кого-то заинтересовал, я планировал в скором времени написать пост о нем.