Pull to refresh

Comments 25

> В отличие от WhatsApp, который использует в качестве протокола end-to-end шифрования реализацию алгоритма Double Ratchet от Open Whisper Systems (Signal), авторы Viber написали его реализацию с нуля.

Первое правило криптографии — не придумывать свою криптографию. Это в том числе и реализации касается зачастую.
UFO just landed and posted this here
Шанс, что ваш велосипед окажется с уже давно исправленными в популярных либах дырами — стремится к 100%. Всегда.
UFO just landed and posted this here
Viber одно из кривейших массовых приложений, которое регулярно при обычном обновлении удаляет ВСЕ данные переписок, а потом пишет в changelog в стиле — упс, пацаны, раньше мы все удаляли, простите, больше не будем. И при следующем обновлении снова похожие глюки. На Андроиде у него еще масса замечательных глюков — падает при попытке отправить картинку из него самого (если через функцию share на картинке, то не падает; похоже, из-за большого разрешения), не умеет ужимать видео при отправке и при этом размер видео ограничен 10MB, что на нышених лопатах составляет несколько секунд записи, исчезает из списка запущенных приложений или наоборот, как бы дублируется (затирает preview других приложений). И таких глюков ВАГОН. Достаточно попользоваться этим поделием день, чтобы отловить большинство из них.
Так что я не был бы так уверен насчёт студентов на аутсорсе. Похоже, таки студенты и за еду.
Почему и зачем оно еще существует, для меня загадка. Ни одна из функций не реализована нормально. Зато стикеры платные. И кто-то ведь платит.
Оно мне напоминает Одноклассники в свои первые года 3-4 года существования — падающее на каждом чихе глюкало с платными смайликами. В то время как тот же WhatsApp больше похож на Vk — стабилен, понятен и можно сказать, что даже удобен.
Увы, но популярность сего у негиков из-за:
1. Нескучного интерфейса (телеграм вон принципиально «не русский» из коробки)
2. Голосовых звонков

Как только убеждения Паши позволят ему русифицировать телеграм (не, не народ не будет «подпихивать» какие-то russian-strings.xml)
и добавить голос — тогда эти поделия (вибер и вацап) канут в лету.
А пока — да, пипл выбирает вибер.
Ну Телеграм ладно, но ведь был и есть тот же WhatsApp, зачем Viber нужен? В WA тоже звонить можно (не знаю, позже или раньше у них это появилось). Вообще все эти клоны мессенджеров навевают скуку, ждем революции от операторов связи с https://en.wikipedia.org/wiki/Rich_Communication_Services Может что-то из этого все-таки получится.
Втопку все эти стикер-мессенджеры кроме телеграма, и вот почему:
1. У нас в фирме уже больше года работают несколько ботов: уведомления СКУД, вход-выход в геозоны(мониторинг транспорта), техподдержка и т.п.
2. Телеграм работает даже там, где не то что 3г, даже Edge с трудом ловится, где браузер даже мобильную версию сайта отобразить не может.
Телеграм хорош, спору нет. Лучший из этого зоопарка, я бы сказал. Но всё равно просто улучшенный клон. Нужен интегрированный в систему, типа RCS по ссылке выше.
Ну неее, пчёлы (опсосы) против мёда( продажи СМС — более миллиона рублей за мегабайт) не пойдут.
Они будут ещё очень долго сопротивляться тому факту что они — просто «трубы» — поставщики мобильного инета.
Бизнес-идею всегда можно придумать, и им придется. Типа, общение бесплатно, а передача файлов/видео — за подписку. Ну это самое тупое. В общем, время покажет.
Я дипломированный специалист по безопасности, у меня лет 5 опыта программирования, я не напишу даже простейшей реализации шифрования, за которую я бы готов был поручиться. Вы просто недооцениваете сложность задачи.
… и стал тормозить невыносимей. Касается и android приложения, и WIN приложения — вызов приложения из трея теперь занимает ~5 секунд…
Windows-приложение невероятно тормозное, да. Android-версия работает достаточно быстро (по крайней мере у меня)
C удовольствием бы пользовался веб-версией, как в Whatsapp, но её, к сожалению, нет.
У меня в определённый момент вообще перестал отображать историю переписки в терминальной сессии. Блджад, он даже текст через DirectX отображает… Видимо в какой-то момент один из гнусных хипстеров, отхлебнув смузи бросил мышкой на форму новый (нескучный) компонент.
Снёc нафиг.
> Для организации end-to-end шифрования каждый из клиентов использует пару ключей: открытый и закрытый. Эта пара ключей алгоритма шифрования 256-bit Curve-25519 (ID ключа) для клиента Viber генерируется при установке мессенджера на основное устройство. Публичная часть ключа отправляется на сервер Viber, а приватная хранится на устройстве клиента для расшифровки приходящих сообщений. Прочие устройства, которые работают с этим аккаунтом Viber, также получают копию закрытого ключа от основного устройства с использованием специального криптографического алгоритма.

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

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

Viber's end-to-end encryption on secondary devices works as follows:

  • Encryption is done separately for each device. If some user A sends a message to user B that has two devices, then user A needs separate end-to-end sessions with the two devices and encrypts the data twice, each one using a different set of keys.
  • Authentication is done just once for the entire account. If user A trusts user B, the trust is automatically applied to all of user B's devices, not just one.

The ID Key is generated only by the primary device, and is transmitted to the secondary devices during registration in a secure method, as follows:

  • The secondary device generates an ephemeral 256-bit Curve-25519 key-pair.
  • The device then generates a QR code containing the device's «Viber UDID» (a publicly accessible unique device ID generated by Viber) plus the public part of the ephemeral key pair.
  • The user uses his primary device to scan the QR code.
  • The primary device also generates a 256-bit Curve-25519 key-pair and performs DH calculation with the public key from the QR. The result is hashed using SHA256 to create a shared secret.
  • The primary then encrypts its own private ID key with this secret and sends it and the public part of the ephemeral key through the Viber servers to the target device, identified by its UDID as read from the QR code. The cyphertext is signed using HMAC-SHA256.
  • The secondary device receives the message, performs the same DH and hash to obtain the same secret, and uses it to decrypt the primary private ID Key.
Возникает проблема, когда у пользователя несколько мобильных устройств.

Ключом от какого устройства шифровать сообщение? От последнего? А если он со старого зайдет, не увидит важного сообщения и расстроится?
Да понятно, зачем это сделано. Но если это сделано каким-то из методов, кроме копирования ключа напрямую (причём не по сообщению от сервера, который говорит, куда копировать) — то толку от такого end-to-end шифрования не сильно больше, чем от client-server и server-client. Скорее — уже ставшее привычным «глядите, как у нас всё стало безопасно, используйте наш мессенджер».
Так там же вроде ограничение — одно мобильное устройство и один десктоп, не?
Пока вайбер пилил свой костыль на основе устаревшего протокола Сигнала, Сигнал ушел далеко вперед и давно использует signed prekeys. А вайбер только triple DH. Тут подробней
Там занимательная ремарка есть в конце статьи. Про твит Фредерика Якобса о том, что Viber, возможно, отключает шифрование на основании данных гео-локации. Будет ли это, и без того сомнительное, шифрование работать в России?
Что-то я не понял. Оно работает по умолчанию абсолютно для всех чатов? Вручную сгенерировать ключи и передать их физически с устройства на устройство нельзя?
Не вижу у себя никаких замочков, ни на PC, ни в андроидотелефоне. Версии самые новые.
Sign up to leave a comment.