Комментарии 78
Скорее всего использовали готовую библиотеку, либо обратились к специалистам.
Кому вообще это может быть удобно — даже для того чтобы 1 раз отправить сообщение человеку, нужно взять телефон и ручками забить номер в телефонный список контактов.
Тут какие то архитектурные ограничения или жирный пробел юзабилити?
Там есть отдельный запрос на обмен ключами сквозного шифрования и, соответственно, следующим запросом вы уже можете отправить ему сообщение. Т.е. без запроса синхронизации контактов.
Я не знаю как это сделать в рамках интерфейса.
faq.whatsapp.com/en/android/26000030/?category=5245251
Не удобно ни файлы пересылать, ни общаться.
Файлы каждый раз пересылаются, тратя трафик.
На несколько устройств не поставить.
Клиентов под операционки нет.
Продолжать не хочется перечислять минусы этого недомессенджера.
Под телеграмм уже греют воду в котле, вотсап крайне популярен, вайбер имеет те же недостатки + просто огромное количество спама! Просто помойка. Других популярных альтернатив нет
Под осх и винду нативные клиенты есть. Правда, они требуют телефон «в поле зрения», как и веб-клиент.
Вопрос пересылки файлов — исключительно интерфейсный, — они могут в любой момент начать пересылать ссылку, стоит только захотеть.
Чем обусловлено такое решение, — действительно не очень понятно.
По умолчанию сложно было бы сложить — нужно явное разрешение доступа к Google Drive.
Там сделано по-другому, всплывает незакрываемое окно "выберите куда бэкапить сообщения". И там есть очень неочевидный прикол, на который я и мои друзья попадались: если выбрать "бэкапь на карту памяти" он успешно будет бэкапить, но восстановить можно будет только на этом же телефоне, при смене девайса ключи расшифровки теряются. И можно говорить пока истории.
привет, Viber, — получаю спам не реже раза в месяц
Мне спам уже давно не приходит, только "официальный".
В случае Viber всё намного сложнее, — там вся логика зашита в нативный код, так что процесс реверсинга там намного сложнее.
Если сервер скомпрометирован — переписка не будет в безопасности.
В чистом виде алгоритм Диффи-Хеллмана уязвим для модификации данных в канале связи, в том числе для атаки «Человек посередине», поэтому схемы с его использованием применяют дополнительные методы односторонней или двусторонней аутентификации.Википедия.
Для обмена сообщениями в Телеграме вам не нужно дополнительно по независимому каналу передавать какую-либо информацию, т.е. дополнительная аутентификация не используется. Т.е. уязвимо уже по определению.
Соответственно в случае скомпрометированного сервера вы выполните обмен ключами не с пользователем, с которым хотите установить общение, а с сервером, а тот, в свою очередь, выполнит обмен ключами с конечным пользователем. Таким образом вы будете отправлять сообщение, сервер его расшифровывать, читать (умиляться от картинок с котиками), шифровать для конечного пользователя и передавать.
Именно таким образом, кстати, устроен MITM в примере из статьи.
Подобный сценарий возможен как при содействии администрации сервера, так и в следствие хакерской атаки (предположительно очень сложной атаки).
Просто, вроде как, открытый ключ в мессенджерах мы получаем единожды (допустим, до компрометации сервера). И, если мы будем сверять открытый ключ с изначальным, то все описанное Вами остается?
А в статье патчили клиентское ПО, все-таки…
Ключ мы действительно получаем единожды, но ключ может меняться. Например, если абонент переустановил полностью приложение — ему будет просто неоткуда взять новый ключ.
Соответственно механизм обновления ключа обязательно есть в протоколе. И да, можно отображать время последнего обновления ключа, например. Но широкому пользователю это не будет интересно.
Новый ключ можно получить только явно начав новый чат с тем же абонентом -> Оба абонента будут явно предупреждены о том, что это новый чат с новым ключом и ключ нужно снова сверять…
Т.е. если кто-то получил контроль над сервером уже после начала секретного чата между абонентами, единственный его вариант провести MITM — «убить» секретный чат. В этом случае абоненты попытаются (сознательно) снова установить соединение. Если они при этом не проведут верификацию ключей через сторонний канал — то они попадутся со своими котиками.
Но форсировать незаметную для пользователей перегенрацию ключей нельзя.
Если клиентские части приложения не патчить, конечно.
Вы путаете end2end с p2p.
Есть чуток вопросов:
1) Можно поподробнее про момент с certificate pinning, это все же их недосмотр или нет? Другими словами, что бы им следовало «по уму» сделать, чтобы улучшить безопасность?
2) Показалось, что XMPP чем-то не устроил, так ли это, и если да, то почему? :)
3) Почему дискорд не интересен, мало людей или низкая безопасность в целом (нечего ломать типа)?
2. В чистом виде — он кушает много места. В виде FunXMPP он кушает много ресурсов.
3. Мало людей, про безопасность пока ничего сказать не можем.
ИМХО дискорд не мессенджер а скорее конференции, так что людей там то много, но они локализировались по своим конференциям и не пересекаются. Личный пример — дискорд используется вместо окончательно скурвившегося скайпа как конференция-бродкаст (держать толпу друзей, шарить ссылки, собирать желающих по сетке набежать во что-то).
А дискач привлек народ агрессивной ХАЛЯВОЙ.
Но не надо думать, что я его защищаю, мне в дискаче нравится только одно — качество звука, чем и завлекли. :) Ну и куча народу там интересного тусуется теперь, переползли коллективами с ирки и жабира.
Вентрила — войс, конфа — в первую текстовая. У вентрилы — ограничение 8 человек, необходимость самому сервер хостить. В дискорде же все современные полезности для текстовой конфы — превью линков, катринок, ютуба, возможность линковать картинки из дискорда наружу, форматирование, эмоджи (бессмысленная фигня, но поставить "баклажан" особенно упоротому сообщению — бесценно), можественные войс и чат каналы в пределах одной "конфы", права пользователей.
Кроме конфы для друзей в дискорде рядом живет рейд-конфа вова (20+ человек в войсе), и дискорд позволяет поддерживать полную инфраструктуру для рейда — права пользователей, раздельные чат каналы (для тактик, для анонсов, для рендомного трепа), принудительные пуш-ту-ток каналы.
В общем у дискорда только два больших минуса — отсутствие адаптивного кодека для войса (если проблемы со связью — голос рвет а не падает качеством) и "современная разработка" — со всеми вытекающими последствиями: электрон, упоротые интерфейсы, ресурсожручесть.
В остальном, — получается сделали просто удобнее. Молодцы. Принудительный PTT — вообще прекрасно.
Опять же те-же проблемы современной разработки — в плане интерфейса ПТТ реализован… никак. Тебе выдается мини-предупреждение что с войс активацией этот канал не работает и отключает микрофон — надо самому лезть в настройки и включать ПТТ, а потом — переключать обратно на другом канале. Но судя по их реквесту фич — рано или поздно до ума доведут.
А в Signal тоже самое?
1) Все ключи выдаются сервером вацапа
2) Все сообщения и прочее ходит через сервера вацапа в зашифрованном виде
Если всё это хранить и совмещать, то легко можно расшифровывать переписку или нет?
Ключи генерируются на устройстве и передаётся через сервер приложения только публичный ключ. Так что в чистом виде администраторы сервера не могут прочитать вашу переписку. Однако у них есть техническая возможность передать вместо ключа собеседника — свой ключ, и таким образом организовать активный MITM.
Т.е. у каждого пользователя, если сильно упростить, есть два ключа: приватный и публичный. Публичный он через сервера приложения передаёт всем своим собеседникам. Когда ему кто-то хочет написать — он шифрует сообщение публичным ключом получателя. Расшифровать публичным ключом невозможно, — расшифровать может только приватный ключ.
Так вот в статье вы ссылаетесь на исходники на github, я полез изучать вызовы, которые делает Login.php, и увидел много магии :)
К вопросу в целом, как реверсится алгоритм генерации ключей, — там HKDF — он довольно стандартный.
В простом случае открыв приложение в декомпиляторе и найдя нужный фрагмент кода, — увидишь сразу вызов метода «HKDF» с нужными параметрами и реверсить ничего не нужно.
В сложном случае, если библиотека вкомпилена в приложение, а имена обфусцированы, — увидишь вызов непонятной функции. Будешь переименовать переменные, выставлять структуры данных до тех пор пока не поймёшь назначение кода. Поняв что делает код — либо скопируешь его как есть, либо подключишь соответствующую библиотеку.
Миранда скорее всего отключила плагин из-за принудительного перехода на новое шифрование. Внутри шифрования всё осталось примерно тоже самое. Одновременно с этим многие репозитории закрылись на github, хотя у них всё более/менее было. Возможно их очень попросили.
WhatsApp, что внутри?