image


Пару недель назад состоялось значимое событие в сфере безопасности — состоялся релиз клиента Antidote для мобильных устройств от Apple.

Как это происходило и какие перспективы — рассмотрим в посте.
Что интересно — автор данного приложения dvor (так, что по сути это еще и качественное импортозамещение)


image

Tox — протокол для защищенного обмена сообщений который не идет ни на какие компромиссы его плюсы:

1) Шифрование используется всегда и для всего
2) Шифрование End2End (по сравнению с телеграм)
3) Для регистрации не нужно указывать телефонный номер (да и вообще понятие регистрация отсутствует)
4) Сеть Tox полностью распределенная и в ней не никакого центрального сервера
5) Исходный код ядра и клиента открыт


image


За созданием данного клиента я слежу достаточно давно — это же первый клиент для сети TOX под iOS. А движение в сторону iOS — еще одна платформа на которой доступен Tox.

Функциональность


Реализованы следующие функции:
— Чат
— Аудио вызовы
— Видео вызовы
— Передача файлов
Что пока отсутствует:
— Групповой чат
— Оффлайн сообщения

> App Store
> Github



Клиент для OS X


Если у вас есть желание написать клиент для OS X это можно сделать на swift используя готовую библиотеку, свяжитесь с автором Antidote для этого:
В принципе под macOS нужно написать только UI, вся бизнес-логика в кросс?-платформенной библиотеке.

Если есть желающие покодить на Swift — пишите на d@dvor.me
Что вас удерживает от перехода на Tox?

Проголосовало 142 человека. Воздержалось 98 человек.

Перешли бы вы на TOX если его функционал был аналогичен WhatsApp/Telegram?

Проголосовало 194 человека. Воздержалось 64 человека.

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

Поделиться с друзьями
-->

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


  1. QuickJoey
    24.11.2016 14:42
    +10

    5) Исходный кот ядра ...

    не исправляйте.


    1. shifttstas
      24.11.2016 15:11

      ^___^
      Поправил…


  1. zhovner
    24.11.2016 15:13

    А контакт-лист все так же нужно заново заполнять?


    1. shifttstas
      24.11.2016 15:15

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


      1. zhovner
        24.11.2016 15:26

        Нет, я не про синхронизацию по номеру телефона. Допустим я пользуюсь qTox на десктопе. Как мне перенести контакт-лист на телефон?


        1. dvor
          24.11.2016 15:56

          Сейчас можно экспортировать профайл с десктопа и отправить его на телефон. При изменении контакт-листа процедуру повторить.

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


          1. zhovner
            24.11.2016 16:03

            При изменении контакт-листа процедуру повторить.


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


            1. dvor
              24.11.2016 16:07
              +3

              Да, боль, как и отсутствие оффлайн сообщений и пуш нотификаций для мобильного клиента.

              Я с надеждой смотрю в светлое будущее, где все это будет реализовано (ну и стараюсь по мере своих сил его приближать).


              1. zhovner
                24.11.2016 16:16

                Спасибо за Вашу работу. Сложно представить как будут работать push-уведомления в такой архитектуре.


                1. shifttstas
                  24.11.2016 16:22
                  +1

                  Приложение может постоянно сидеть в фоне и при получении сообщения отправлять Push — это энергозатратно но должно работать


                  1. zhovner
                    24.11.2016 16:30

                    Приложение может постоянно сидеть в фоне

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

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


                    1. shifttstas
                      24.11.2016 16:32

                      есть такая штука как «фоновое обновление» и наскоклько я помню — это фактически демон который будет делать что ему заблагорасудится на фоне и по событию может обновлять контент в пиложении или прислать Push, dvor это так, да?)


                      1. dvor
                        24.11.2016 16:34

                        iOS сама решает, когда и кого запускать. Она может это делать всего несколько раз в день, что не сильно удобно.


                        1. shifttstas
                          24.11.2016 16:39

                          а если использовать пермишены на геолокацию но фактически её не использовать? или есть шанс быть не опубликованным в App Store?


                          1. Marwin
                            24.11.2016 23:41

                            ну там не шанс, а 101% отказа. Проходили…


                            1. shifttstas
                              25.11.2016 00:03

                              и как обошли?


                              1. Marwin
                                25.11.2016 00:10

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


                                1. shifttstas
                                  25.11.2016 00:22

                                  Гм ок, в случае с этим месенджером можно придумать всевдо функцию которой нужны постоянно координаты и попробовать это обосновать?

                                  А если voip флаг ставить оно точно в фоне работать не будет?


                1. dvor
                  24.11.2016 16:33

                  Один из вариантов, если кратко:

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

                  Появляется зависимость от пуш-сервера, но без нее никуда. Сама нотификация не содержит в себе никакой информации, и в идеале сервер не должен знать, кто и кому отправил пуш.

                  Также мобильное приложение может время от времени запускаться в фоне и получать все оффлайн сообщения.


                  1. ukt
                    25.11.2016 00:23

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


            1. SamoilowAlex
              24.11.2016 17:05

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


          1. DaylightIsBurning
            24.11.2016 18:01

            Поддержку нескольких девайсов пилят-пилят, но никак не допилят.

            Только это меня и останавливает на данный момент от полного перехода на Tox


          1. thousandsofthem
            25.11.2016 00:23

            Поддержку нескольких девайсов пилят-пилят

            Вот этого не хватает в опросе. Поддержка нескольких устройств и синхронизация между ними


        1. SamoilowAlex
          24.11.2016 15:59
          +1

          Очень просто. Переносишь *.tox файл и скармливаешь его клиенту, там будет весь твой ростер. И это не баг — а особенность распределенной сети, привязка к телефону тут не нужна(и в принципе не возможна, разве как ненужный довесок) никаким боком.


        1. iSergios
          24.11.2016 15:59
          +2

          Сдается мне, что чем меньше таких синхронизаций, тем оно секьюрнее.


  1. shifttstas
    24.11.2016 16:02
    -2

    Ну и сразу на публику вынесу моё мнение как можно в Tox сделать авто добавление на основе номера телефона — аналогичное другим мессенджерам, но что бы не тратить деньги на рассылку SMS и не рассказывать оператору что мы используем Tox:

    Можно привязывать TOX ID к telegram id или айдишникам других мессенжеров которые уже знают номер — получается перекрестная подпись и если мы уверены в источнике данных — мессенджере — мы сможет автоматически добавить пользователей в адресную книгу (конечно по желанию а не всегда и не принудительно)


    1. SamoilowAlex
      24.11.2016 16:17
      +5

      Знаешь, разработчики правы, что не прислушиваются к твоим советам. Мы говорим про распределенном и полностью независимом im, а ты предлагаешь все привязать к телефону или id другого мессенджера, не надо так делать.


      1. shifttstas
        24.11.2016 16:24
        +2

        Есть альтарнативный вариант — как сделано в twister — blockchain based регистрация, для неё нужно много памяти, но тогда будет единый реестр id=key или name=key и авто добавления номера всё равно не получится.

        На мой взгляд — отсутствие авто добавление контактов по телефону — один из тормозов из-за которых не получится приобщить к клиенту домохозяек


        1. wrewolf
          24.11.2016 16:30

          Как бы я не любил эту фишку, но без нее выйти на массы сейчас нереально.


        1. SamoilowAlex
          24.11.2016 16:37

          отсутствие авто добавление контактов по телефону

          Вы просто не понимаете суть tox, любая привязка к чему угодно(будь то email или телефон) мгновенно убьет идею децентрализованного обособленного и анонимного общения.

          Ну и как откоментировали ниже, у tox есть более важные проблемы, такие как мультилогин.


          1. shifttstas
            24.11.2016 16:40

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


            1. SamoilowAlex
              24.11.2016 16:46
              +1

              «Обычному пользователю» tox не нужен, ему вообще наплевать, что за протокол и как он работает. Если ему реально понадобится с кем-то связаться, то он хоть tox осилит, хоть «xmpp over tor with gnupg».


              1. shifttstas
                24.11.2016 16:50

                Не согласен — на волне хайпа насчет шифрования и безопастности Telegram собрал себе значительную аудиторию.

                Волны хайпа по мессенджерам происходят очень часто — например в %Название страны% заблокировали %Название мессенджера% а тут СМИ пишут, что Tox невозможно заблокировать — вот и пару миллионов пользователей.


                1. SamoilowAlex
                  24.11.2016 17:00

                  У Дурова есть деньги на pr и форсинг своего поделия. Те-же боты, блин да их в любом открытом im можно сделать, групповые чаты тоже почти везде есть, каналы — это те-же групповые чаты с «оратором» и скрытым списком пользователей — ничего нового он не изобрел, просто хорошо пропиарил свое поделие.

                  И кстати, что там за e2e никто не знает т.к. сервер закрыт, а в клиенте оно реализовано через блоб. Даже в десктопной версии шифрование не замутили.


                  1. zhovner
                    24.11.2016 17:14

                    а в клиенте оно реализовано через блоб


                    Вы ошибаетесь. Вот описание https://core.telegram.org/api/end-to-end и вот, например, альтернативный клиент реализующий e2e шифрование https://github.com/vysheng/tg

                    При этом вы насчет закрытой серверной архитектуры, это отстой.


                    1. zhovner
                      24.11.2016 17:25

                      * При этом вы правы насчет…


                    1. SamoilowAlex
                      24.11.2016 17:25

                      Это просто описание, в коде того-же мобильного клиента все e2e функции вынесены в блоб, что там происходит на самом деле — непонятно, может он втихаря ключи сливает на сервер?


                    1. zhovner
                      24.11.2016 19:19

                      Кстати, dvor, быть может вы предложите свою помощь и подпишите бинарники десктопных клиентов своим сертификатом? А то они все ругаются на отсутствие подписи в макосе.


                      1. shifttstas
                        24.11.2016 19:31

                        Мне кажется, после реализации синхронизации контактов между разными клиентами можно dvor просить выпустить OS X клиент и может быть даже за $ что бы мотивация не пропадала


                        1. dvor
                          24.11.2016 19:36

                          В принципе под macOS нужно написать только UI, вся бизнес-логика в кросс?-платформенной библиотеке.

                          Если есть желающие покодить на Swift — пишите на d@dvor.me. :-)


                          1. shifttstas
                            24.11.2016 19:41

                            если не против — я в шапку поста повешу эту информацию


                            1. dvor
                              24.11.2016 19:41

                              Да, конечно.


                      1. dvor
                        24.11.2016 19:32

                        Да, можно, я предложу.


                1. lieff
                  24.11.2016 17:06

                  Насколько я понимаю, надежность телеграма = надежности SS7, на который атака крайне дешева. И из-за перевыпуска симок с тем же номером надежной эту схему сделать невозможно. У токса есть поддержка красивых имен вроде name@registrant, но его надежность = надежности registrant.
                  Можете сделать аналогичный сервис соответствия для телефона и ввести поддержку в клиентах, вот только зачем такой ненадежный элемент как SS7 вводить в надежный мессенджер? Не проще ли взять любой другой не надежный?


                  1. zhovner
                    24.11.2016 17:15

                    Для защиты от атак на телефон есть опциональный второй фактор, который позволяет добавить пароль к SMS аутентификации.


                    1. lieff
                      24.11.2016 17:21

                      Вы не поняли, двухфакторка телеграм не спасает https://habrahabr.ru/company/pt/blog/283052/
                      Принципиальный момент — перевыпуск симпок на тот же номер. Это вынужнает делать процедуру пересоздания аккаунта при наличии доступа к номеру.
                      Вот купил я sim, а на нем уже чужой акк телеграма. И что делать? А вот она спасительная процедура, дающая перерегать акк при одном только доступе к SS7 без всяких паролей.
                      Телефон принципиально не надежный ID.


                      1. gbg
                        24.11.2016 19:30

                        Второй фактор — это текстовый пароль, а не код, рассылаемый по SMS


                        1. lieff
                          25.11.2016 01:29
                          -1

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


                1. varnav
                  25.11.2016 11:57

                  на волне хайпа насчет шифрования и безопастности Telegram собрал себе значительную аудиторию.

                  при этом не имея E2E шифрования по умолчанию


                  1. shifttstas
                    25.11.2016 12:39

                    На тот момент это было лучшее из того что было =)


            1. wrewolf
              24.11.2016 17:01

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


    1. SBKarr
      24.11.2016 22:20

      Помоему, самое нужное — не привязка контакта к телефону, а возможность отправить приглашение на регистрацию, при использовании приглашения контакт сразу добавляется в клиент отправителя. Но это требует централизованного сервера и отправки приглашения по незащищённому каналу…

      Вообще нужно бы делать две версии клиента: одну параноидальную, а вторую для массового пользователя с каким-то объёмом допущений и компромиссов. К сожалению, сообщество разработчиков tox и аналогичных проектов не желает обсуждать компромиссы в большинстве своём.


      1. shifttstas
        25.11.2016 00:05

        Кстати да, было бы хорошо если Antidote умел бы генерировать и обрабатывать tox:// ссылки dvor


        1. Lofer
          25.11.2016 01:14
          +1

          Это упростило бы регистрацию «домохозяйками». Тыкнула — всплывает TOX клиент и регистрирует «подружку»:)
          переслать — можно любым другим каналом (почта, скайп, NFC, QR ...)


          1. dvor
            25.11.2016 01:36
            +2

            Постараюсь добавить в ближайшее время.


  1. wrewolf
    24.11.2016 16:30
    +1

    Оно до сих пор не умеет 2+ клиента в онлайне одновременно держать?


    1. DaylightIsBurning
      24.11.2016 18:13
      +1

      Мне кажется, если бы они эту фишку допилили — проблема с отсутсвием оффлайн сообщений в значительной мере снизилась бы. Отправляемые сообщения автоматом синхронизировались бы между клиентами на разных девайсах и шансы «пересечения» онлайнов отправителя и получателя выросли бы.


      1. wrewolf
        24.11.2016 18:46
        +2

        Ну гики так вообще бы подняли себе 24х7 ноды и не парились, благо за клиентом дело бы не встало.


  1. shifttstas
    24.11.2016 16:45

    Добавил (поздновато) опрос — будет интересно посмотреть на результаты


    1. xforce
      24.11.2016 16:55
      +2

      В нем явно нехватает пунктов для тех, кто уже активно пользуется. Ну и мне мультилогина в нем нехватает. Что в опросе, что в TOX.


    1. wrewolf
      24.11.2016 17:00

      1 часть опроса надо делать не радио, а чекбоксами, не хватает всего, кроме привязки к телефону


    1. SamoilowAlex
      24.11.2016 17:12

      Групповые чаты в tox есть(по крайней мене на десктопных клиентах), но у них есть свой недостаток — при выходе из чата пользователя выкидывает и надо что-бы один из участников снова его приглашал.


      1. dvor
        24.11.2016 17:29
        +1

        isotoxin добавил поддержку персистентных групповых чатов, ждем, пока смерджат.


        1. worldmind
          24.11.2016 19:59

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


  1. ildarz
    24.11.2016 17:29

    Да, не хочу зависеть от ценрального сервера/закрытого исходного кода

    Нет, меня не волнуют проблемы безопастности мессенджеров


    :/. «Вы уже перестали пить коньяк по утрам?» (с)


  1. worldmind
    24.11.2016 20:08

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


  1. Vindicar
    24.11.2016 21:50

    Поправьте голосование на многовариантное — меня, например, огорчает как отсутствие оффлайн сообщений (или хотя бы внятного мультилогина а-ля Jabber для постоянно висящего онлайн клиента), так и групчатов.

    А так, жду когда допилят плагин под Миранду…


    1. shifttstas
      25.11.2016 00:06
      -1

      так тут надо преоритет расставить что реализовывать/в какую сторону пинать разработчиков ядра


  1. Lofer
    25.11.2016 00:06

    Как только появится система, которая «просто безопастно работает» — бизнес будет ее использовать.
    Работники «бизнеса» будут вынуждены ее использовать в работе. Дальше подтянется и переписка типа «купи молоко домой», Как только выяснится, что любовнице удобно пересылать «части тела» другу, то она с другом поставит сепбе такую софтинку. так постепенно и войдет в нормальную жизнь :) примерно как со скайпом было в самом начале. А что безопастность будет «бонусом» и частним лицам… они не будут задумываться об этом :)
    Что касается наркоторговцев и прочих террористов — им вполне по силам нанять какую фирму, что в «слепую» им допишет грамотно софт. Используют же iPad для минометов — тоже самое.


    1. varnav
      25.11.2016 12:09

      Есть древнейшая система безопасных чатов — это Jabber + PGP


      1. Lofer
        25.11.2016 12:40

        ключевое слово «просто»:

        • Просто скачать.
        • просто запустить и зарегистрировать себя.
        • просто найти и внести в список «друга-подругу»
        • просто позвонить голосом
        • просто поделиться «экраном»
        • просто переслать файл с «очень прикольным-секртным»
        просто работать универсально и дружить «со всеми» а не только внутри компании или только одной платформы. Что за фигня, если можно запустить только на мобилке или Win /Mac


  1. Halt
    25.11.2016 07:34
    +1

    В опросе не хватает пункта «качество кода ядра не соответствует моим представлениям о безопасности».


  1. varnav
    25.11.2016 11:54
    +3

    Что вас удерживает от перехода на Tox?

    Мне там не с кем будет общаться.


  1. betsuni
    25.11.2016 12:40

    а что насчет аудита безопасности протокола tox, он уже был?


  1. Sjam
    25.11.2016 12:40

    Как вариант можно использовать ботов для хранения истории переписки, и возможно, синхронизации контактов.

    Разработка поддержки так называемых multidevices ведется, которые как раз и должны были бы решить вопрос с переносом профилей между устройствами и их синхронизацией.

    К сожалению, процесс крайне длительный.

    Также есть чат-боты где собираются разработчики и не только. К примеру такой бот
    ToxID: 12EDB939AA529641CE53830B518D6EB30241868EE0E5023C46A372363CAEC91C2C948AEFE4EB или kalina@toxme.io


    1. shifttstas
      25.11.2016 13:00

      Боты для этого — плохая идея, вполне можно синхронизировать данные своих контактов через них самих — что бы они хранили копию и выдавали её по требованию (DHT+шифрование) получится вполне надёжно


      1. Sjam
        25.11.2016 15:09

        Здесь есть проблема в протоколе токса. В сети не может работать более одного профиля одновременно. Более того, сама DHT не предполагает хранение какой-либо дополнительной информации, т.е. файлов или данных кроме хешей. Это значит что запрашивая у DHT данные профиля, сам профиль где-то должен «лежать» и быть доступным.


        1. shifttstas
          25.11.2016 15:31

          Это проблема решена в Bitmessage и Twister оба работают на модифицированных DHT/Blockchain
          По сути, временное хранение это либо DHT сеть для друзей либо Blockchain с временем жизни


          1. Sjam
            25.11.2016 15:42

            Да, есть такая идея, но пока не прижилась в среде разработчиков токса.


  1. Lofer
    25.11.2016 15:20

    Все логично.
    Нет контакта — нет утечки информации на «третью сторону».
    Проще сделать «отложенную доставку». Если нету «контакта» сейчас, поместить в очередь отправки.
    Появился контакт в течении часа… двух — отправить без подтверждения.
    Если больше — попросить подтверждение вроде «актуальна информаци? повторить отправку ?»


  1. amarao
    25.11.2016 18:04

    В посте нет ссылки на андроидную версию.


    1. shifttstas
      25.11.2016 22:47

      Наверно потому, что пост чисто о iOS версии ?)
      Тут и windows версии нет.