Деанонимизация в Jabber через Roster (мета-информация)

May 27, 2020 17:21

[ Read this in English - Automatic translation to English: Google or Microsoft ]

Мало кто об этом знает, а еще меньше - понимают, но Jabber может быть не менее опаснее в контексте деанонимизации, чем пресловутые ICQ/TamTam/Whatsapp и подобные (включая какой-нибудь Telegram с "синхронизацией контактов").

Вот вы добавили некий контакт в Jabber, переименовали его как вам удобно и кажется разумным, распределили в нужную группу для порядка и... эта вся информация моментально улетела в "серверный контакт-лист" - Roster. Соответственно, какое-нибудь имя типа "Misha Berdoev" вместо "bArmAlEy" и группа какая-нибудь типа "Carders". Все это на сервере. (То есть в руках "тех кто").

Выглядит это примерно так:
JabberIDNicknameGroupSubscriptionbarmaley@jabber.xMisha BerdoevCardersboth............
При этом тот самый bArmAlEy на другом конце провода даже не подозревает, что вы его уже слили; это очень важно для осознания, потому что те, кто вас знают не под ником, или под другим ником, могут вас "переименовать" у себя в real name, еще какие-то признаки, или связать между собой разные ваши ники. И неожиданно контакт barmaley@jabber.x станет иметь ник Aibolit (более удобный для восприятия при общении человеком), который по другим контактам у других людей проходит как aibo@jabb.x. И никто как бы не знает, что barmaley@ и aibo@ - это одно и то же лицо. Но вот roster теперь знает. И все, кто имеют доступ к ростеру - тоже.

Вы со знакомым вам человеком создали два отдельных джаббера для личной переписки, и кто-то один (хотя бы один из вас) переименовал в "удобно-привычный" ник или имя - все, он слил.

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

Чтобы чуть упростить жизнь пользователей Jabber, использующих Miranda NG, я с помощью George Hazan зачистил эту проблему там. (Ниже список коммитов). Для того, чтобы больше информация о контактах (ники, группы) не улетали на сервере, необходимо для каждого из jabber-аккаунтов включить специальную опцию. (См. п. 4 из инструкции ниже; но это НЕ почистит текущее содержимое ростера от вашей информации - для чистки нужно еще и выполнить все шаги инструкции).

Очень важно понимать: как происходит в других jabber-клиентах - известно лишь их авторам. Но, с вероятностью около 95%, вся информация из локального контакт-листа по умолчанию улетает в ростер, как и предписывает это логика работы XMPP (серверный контакт-лист). Т.е. все ваши локальные имена контактов и группы сливаются на сервер. (Это касается любых клиентов, которые работают, как предписывает протокол - с серверным контакт-листом, т.е. все мобильные клиенты типа Xabber - тоже; не переименовывайте там контакты и не добавляйте людей в группы! Если только это не group1, group2 и т.п. в прямом смысле).

Если вы уже ранее слили информацию о никнеймах и группах, что делать сейчас? Как минимум, зачистить (хотя, скорее всего, она уже в руках у "тех кто"). А как максимум - обновлять контакты.

Даю инструкцию как зачистить эту информацию, и как сделать так, чтобы она больше никогда не попадала на сервер, используя последнюю версию Miranda NG (указанные исправления доступны только в последней дебаг-бета версии от 27.05.2020; в релизе этого пока нет).

1) Вначале посмотрите насколько все плохо. Просто обзорно. В верхнем меню выбираете Status -> нужный jabber-аккаунт -> Services... -> Roster Editor. В появившемся окне нажимаете [Download]. Появится список контактов из ростера - вот это то, что о ваших контактах, их именах, группах знает сервер (и "те кто").

2) Не спешите здесь ничего редактировать - это не имеет смысла, данная таблица на практике read only (т.е. даже если вы что-то поменяете, это никак не сработает). (И еще: не пробуйте тут галки снимать - потеряете контакты, зачистив их в roster).

3) Посмотрели? Закрывайте окно.

4) Теперь идите в настройки, чтобы отключить синхронизацию ваших контактов (теперь это отключает не только синхронизацию групп, но и никнеймов, + еще и работает отлично).
Путь такой:
= -> Options... -> Network -> нужный jabber-аккаунт -> таб "Advanced"
Прокрутить список почти в самый низ. Над подгруппой Security будет виден checkbox:
[ ] Ignore server roster (groups and nick names)
Включите его - [x].
[x] Ignore server roster (groups and nick names)
Далее - [OK] (закрываем настройки).

5) Теперь можно заняться чисткой. Надо зайти в Roster Editor у этого аккаунта (как это сделать указано в п. 1). Нажать там кнопку [Download], после чего нажать кнопку [Export] и сохранить в jabber-acc.xml (имя удобное вам).

6) После этого открыть сохраненный в предыдущем пункт jabber-acc.xml в любом удобном вам редакторе и привести все поля name="" и group="" именно к такому (пустому) состоянию. (Там у вас, вероятно, будет что-то типа , а нужно сделать ).

7) После окончания подготовки чистого .xml (лучше в другой копии на случай чего), нажимаете в том же Roster Editor кнопку [Import] и загружаете почищенный .xml. Далее необходимо нажать кнопку [Upload], чтобы залить исправленный контакт-лист на сервер (это самое важное).

8) Готово. (Так надо проделать со всеми jabber-аккаунтами, если у вас их больше одного)

Для информации список коммитов в Miranda NG с указанными изменениями:

Roster (ignore groups/nicknames):
https://github.com/miranda-ng/miranda-ng/commit/5ebba85de37a0aaaa0732fe6307fcf8de9010fea
https://github.com/miranda-ng/miranda-ng/commit/67adb1e398ec542ad62711c30031088685161546
https://github.com/miranda-ng/miranda-ng/commit/fd1139fc1959a9988143839d3224778d9ce0bbdd
https://github.com/miranda-ng/miranda-ng/commit/985d99a13b43a8420faadae25c4b3fe7f52305d6
https://github.com/miranda-ng/miranda-ng/commit/c6f19f056032de76565d097986d16db77b065a03

Roster: xml export/import (roster editor)
https://github.com/miranda-ng/miranda-ng/commit/59bcd6091e2332308e4aac5a05d3b719f15aa031
https://github.com/miranda-ng/miranda-ng/commit/3f8d2fd0b0022c11e30ab47046013b0c58030d47

Бонусом:

1) Сокрытие типа/версии клиентского ПО:
https://github.com/miranda-ng/miranda-ng/commit/728b55c7e6fc307f084caabfdaf6a89aa6cf4f1d

2) Коммиты 15-21 марта 2020: починка GPG для разных ситуаций (подвисания всякие и проч.)

privacy, xabber, telegram, jabber

Previous post Next post
Up