Обезличивание шифрованного трафика: Jabber и SSL
Какую уникальную информацию несёт в себе трафик, зашифрованный SSL'ем? Может быть, противник может узнать текущее время не машине пользователя, ведь при шифровании проставляется время (в GnuPG точно так)? Или время всегда идёт в UTC, а потому "уязвимость" актуальна только для протоколов обмена шифрованными сообщениями в реальном времени? Если под браузеры есть какое-никакое решение firefox+torbutton, то что можно сказать о других приложениях, работающих с SSL/TLS, например, jabber-клиентах? Если в jabber-клиенте также включено end-to-end PGP-шиврование сообщений, пишутся ли служебные поля типа версии gpg, операционной системы, времени шифрования? Смутно пропоминается обсуждение на форуме того, что при посещении скрытых сервисов Tor следует избегать https и, якобы, лучше его вообще запретить в браузере под Tor'ом — не из этих же ли соображений?
Насчёт ручного использования GnuPG: если используется опция --no-emit-version, то противник не может узнать ничего в лоб об использованном софте, но по ряду косвенных признаков формата (PGP-пакетов?) может оценить версию gpg. Поправьте, если не прав. Как опцию --no-emit-version прописать статически в конфиге gpg?
Безотносительно проблем, пораждаемых шифрованием, сами jabber-клиенты сообщают о себе слишком много: большая часть – точную версию клиента, часть из них – также и ОС. Есть ли такие клиенты, которые позволяют не афишировать свой тип и среду в которой они работают, или, ещё лучше, предоставлять фейковую информацию, выдавая себя за самый распространённый jabber-клиент в самой распространённой конфигурации и ОС?
Помню, что эти вопросы уже вскольз затрагивались, но давно и без конкретики. Может быть, теперь появились подвижки в сторону решения?
комментариев: 11558 документов: 1036 редакций: 4118
Нет. Узнать содержимое xmpp-сообщений нетрудно: запустите wireshark и подключитесь к jabber-серверу, выключив SSL-шифрование.
Определить версию строго вряд ли возможно. Можно только утвердительно сказать, был ли использован PGP или GnuPG, а также с некоторой погрешностью предположить диапазон возможных версий программы.
no-emit-version
Зная, что Вы, SATtva, заядлый tkabber'ист, а сам tkabber – написан достаточно просто (скриптовый язык) и модульно, хотел бы спросить: позволяет ли он фейкать инфу о клиенте?
комментариев: 11558 документов: 1036 редакций: 4118
Что ему OpenSSL возвращает, то он и передаёт в эфир. Тут ситуация не такая же, как с браузерами, где возможно, например, кэширование криптопараметров между анонимными и неанонимными сессиями. Обычно если пользователь подключается к jabber-серверу через Tor, то так постоянно и сидит, а не скачет туда и обратно.
Я его не ковырял в этом плане. При желании сделать, конечно, можно, и даже перекомпилировать не придётся. Опять же, берите Wireshark и смотрите, что уходит по каналу. Потом тем же grep'ом ищите в коде нужные поля/значения и исправляйте под свои нужды. Правда, я сомневаюсь в том, настолько ли это нужно и не выделите ли Вы себя тем самым ещё больше.
комментариев: 11558 документов: 1036 редакций: 4118
Формат OpenPGP не предусматривает полей для версии программы и другой подобной дребедени.
комментариев: 11558 документов: 1036 редакций: 4118
С этим утверждением категорически не согласен. Разделение профилей — наиболее надёжное решение, будь то с браузерами или IM-клиентами.
Да, но это ad hoc, и у него есть издержки: мне нравится какой-то один jabber-клиент, я к нему привык и настроил под себя, затюнил. А теперь прийдётся использовать какой-то другой клиент только чтобы "быть непохожим". Под решением проблемы понимается анализ всего того, что предоставляет стандарт и его конкретные реализации на предмет утечек идентифицирующих/условно-уникальных данных. Дальше выясняется наиболее распространённая конфигурация, и под неё затачивается профиль, чтобы все, ходящие в jabber через Tor не отличались друг от друга (конечно, при использовании gpg противник будет знать каков ключ адресата, но "утечкой" при таком подходе здесь является лишь сам факт использования gpg, т.к. ключи у всех всегда разные).
комментариев: 11558 документов: 1036 редакций: 4118
Нет, Вам лишь нужно, чтобы конфигурации не были идентичны, т.е. может быть один и тот же клиент, но, допустим, разных версий или с немного различными настройками. Не забывайте, в браузере добиваются именно анонимности, поскольку при посещении веб-сайтов Вы как читатель должны быть обезличены. При использовании IM у Вас априорно имеется псевдоним, от которого никуда не сбежите (не будете же Вы при каждом включении заводить новый аккаунт?). Поэтому подстраиваться под некое среднестатистическое большинство, как это делает TorButton, в случае IM не требуется.
Ой, мне кажется мы друг друга не правильно поняли. Я имел в виду "разные jabber-клиенты" не только в смысле "разные jid и профили" (разные инстэнсы), но и разные программы: например, анонимный – под tkabber, а неанонимный – под gajim.
У браузеров профили, конечно, разделить можно и нужно, только вот всего полноценных браузеров – 3-4 штуки, а нормальный и позволяющий обезличивание – только один (firefox). Теперь представьте, что firefox запущен на какой-нибудь редкой операционной системе (намного более редкой, чем Gentoo), тогда, если torbutton слажает в каком-то случае и противник получит хотя бы частичную правдивую информацию о конфигурации firefox, пользователь может быть вычислен элементарно (например, берём логи популярных веб-ресурсов и ищем среди них посещение с IP-адресов, имеющих заданный user agent – множество поиска сократится в миллионы раз).
PS: Виртуализация надёжно заметёт под ковёр и эту проблему, но это опять же – под ковёр, брутально, некрасиво и неизящно :) – хотя бы потому, что далеко не каждый может столько времени тратить на настройку анонимных профилей.
комментариев: 11558 документов: 1036 редакций: 4118
Я не вижу, как можно получить анонимность, когда пользователь изначально псевдонимен. (У Вас изначально есть уникальный идентификатор — jid. Добавление к нему любых дополнительных сведений типа ОС или версии клиента уже не сделает ситуацию хуже.) Как минимум решение должно затрагивать и jabber-серверы, и сам протокол xmpp.
Это достаточно легко, http://xmpp.org/extensions/xep-0175.html
А вообще как я понял, автор хочет чтобы в одном профиле была одна jabber:iq:version/os, в другом другая. Ну так это не сложно, достаточно чуть-чуть поправить исходники.
Менять jabber:iq:version/name и /version имхо не имеет смысла, tkabber достаточно популярен. Кроме того, есть еще http://xmpp.org/extensions/xep-0115.html ЕМНИП для каждого клиента уникальные, одна морока, если хочется чтобы показывал другой клиент, то другой клиент и юзать.