Подготовил видео демонстрацию возможности раскрытия IP-адреса собеседника через Skype.


UPD: много вопросов на тему чем отличается данная статья от этой или вот этой.

Отвечаю:
1. Там речь шла только о звонке. Я показал, что в определённой ситуации можно раскрыть и без звонка, через чат.
2. Там была только теория. А здесь видео демонстрация.

Предыстория



А началось всё с прочтения вот этой статьи.

Цитата из статьи:

«Skype, оказывается, в большинстве случаев напрямую соединяется с собеседником.»

Но никаких доказательств этого приведено не было. Меня это сильно заинтересовало. И я провёл первые предварительные тестирования.

После чего обнаружилось, что многие люди не владеют достаточными знаниями относительно этой ситуации, но вовсю готовы хвастать своими сомн��тельными знаниями. Дальнейшие комментарии на эту тему тому подтверждение. Кто-то считал, что нужно смотреть UDP сокеты (хотя в статье автор использовал программу cports для просмотра TCP соединений). Ещё мнения были, что выяснить IP-адрес собеседника можно только в случае, если у него выделенный IP, а в случае использования NAT это невозможно. Третьи говорили, что можно только адрес супернода выявить, поэтому автор статьи злоумышленника не вычислил и т.д.

Поэтому я решил внести ясность в ситуацию.



Итоги тестирований


Потратив больше времени на тестирования, выяснилось следующее:

1. В ряде случаев раскрытие адреса собеседника возможно при чате с собеседником (данные передаются ему напрямую по протоколу TCP). Но не всегда. С чем связано — неясно. Однако во всех тестах, когда собеседник находился в том же городе, удавалось обнаружить его IP-адрес таким образом.
2. Раскрытие адреса собеседника возможно при общении с ним голосом (данные передаются ему напрямую по протоколу UDP). Звонок можно совершить так, чтобы собеседнику вызов не приходил и он ничего не узнал
3. Использование NAT схемы не меняет. Т.е. можно обнаружить адрес непосредственно того маршрутизатора, который производит НАТирование абонента.
4. Никакие настройки Skype в настоящий момент не позволяют защититься от этого.

P.S. В предварительных тестированиях меня постигла неудача из-за 2 факторов:
1. Мониторился TCP как раз в том случае, когда адрес не раскрывается (абонент территориально был в другом городе).
2. netstat не показывает установленные соединения для протокола UDP, поскольку в случае использования этого протокола вообще некорректно говорить об установлении соединения (т.к. это протокол без логического установления соединения).

Ссылки по теме:
1. I Know Where You are and What You are Sharing: Exploiting P2P Communications to Invade Users' Privacy