Безопасность и уязвимости Skype

В современном мире Глобальная сеть оказывает все большее влияние не только на отдельного человека, но уже и на целые общества. Не зря Бил Гейтс в последнем свеем большом выступлении высказал вполне обоснованное предположение, что в ближайшее десятилетие именно усовершенствование общения между людьми посредством Интернета приобретет истинно всемирный масштаб.
Одной из наиболее популярных и уже довольно раскрученных программ для бесплатного разговора между собеседниками по Интернету является Skype. Это программный комплекс представляет собой пиринговую децентрализованную сеть интернет-телефонии, которая поддерживает сервисы IM и VoIP. Иными словами, это что-то похожее на ICQ, только вместо мгновенных текстовых сообщений передаются телефонные разговоры между собеседниками.
Однако, как любая хоть и раскрученная и известная программа, так и программа Skype имеет свои минусы в протоколе системы, о чем преднамеренно или нет, но все же умалчивают разработчики данного продукта. Так как клиентские приложения Skype закрыты для обычных пользователей, то анализ осуществлялся в основном на основании обычных, но внимательных и тщательных наблюдениях. Сделанные выводы не претендуют на полную объективность, но все же тем, кто собирается или уже пользуется программой Skype следует ознакомиться с обнаруженными фактами.
Итак.
Сами разработчики программного кода утверждают, что передаваемые сообщения – абсолютно защищены. Отчасти это справедливо, так как сообщения шифруются известным алгоритмом на основе генератора случайных чисел – AES. Но все же в работе Skype наблюдаются определенные проблемы, поэтому прежде, чем рассмотреть эти недостатки, необходимо познакомиться с общими принципами работы системы бесплатных телефонов.
Так вот, принцип работы «классических» VoIP-систем построен на передаче данных между собеседниками не через центральные коммутаторы телефонных служб, а либо прямо между компьютерами посредством всемирной сети – Интернет, либо через специальные узлы. Именно эти коммутаторы или узлы и занимаются распределением потоков, их переадресацией и координацией. Так же через эти устройства (иначе их называют еще «супер-узлами») происходит идентификация пользователей, которые делают специальную трансляцию запросов. Кстати, среди функций программы Skype предусмотрена и возможно любого пользователя выполнять функции такого «супер-узла», для этого достаточно в настройках отметить эту возможность.

Итак, какие потенциальные опасности подвержены пользователи программы Skype.

Надёжность любой распределённой сети строится на доверии участников (узлов) друг другу. Для обеспечения такого доверия, как правило, используются протоколы авторизации и криптографической аутентификации. Вот как раз здесь и таится одна из опасностей и в программной комплексе Skype есть «дыра». Клиенты Skype не могут четко и ясно определить, функционирует ли в данный момент супер-узел Skype на оригинальном немодифицированном программном обеспечении. Оппонент, который имеет возможность осуществить реверс-инженеринг клиентского приложения, вполне может создать такой супер-узел. И вся суть в том, что такой новый «супер-узел» будет «чуть более функционален», чем тот, который должен быть при обычном использовании.

К чему это может привести?

Так как именно супер-узлы Skype отвечают за переадресацию запросов пользователей к серверу авторизации, оппонент, контролирующий такой модифицированный супер-узел, может перенаправлять эти запросы на такой же подконтрольный сервер и блокировать группе определенных пользователей доступ к системе. Иначе это еще называется атака на отказ в обслуживании. И основное. С помощью такого подконтрольного сервера оппонент может перехватывать логины и пароли пользователей Skype.

Итак, как было описано выше супер-узлы Skype производят адресацию абонентов, точнее выполняют поисковые запросы и связывают разных абонентов Skype между собой. Рассмотрим такой пример. Есть пользователь Наталья, которая хочет найти пользователя Дмитрия, что бы провести с ним разговор. Ее клиент осуществляет поисковый запрос сразу нескольким супер-узлам Skype, которые и должны указать адрес Дмитрия.
Так как в програмне Skype отсутствует криптографическая авторизация участников обмена информацией, супер-узел оппонента может дать ложный «ответ», что он и есть Дмитрий либо перенаправить Наталью на иной подконтрольный узел. У Натальи нет способа проверить правдивость ответа, так как её клиент безоговорочно доверяет супер-узлу Skype, а механизмом авторизации Дмитрий не располагает.

Кроме того, чтобы выдавать себя непосредственно за Дмитрия, оппонент может соединить Наталью с настоящим Дмитрием, а поскольку супер-узлы выполняют так же и функции релеев, если абоненты Skype по тем или иным причинам не могут установить прямого соединения (например, находясь за NAT). В таком случае, оппонент получает возможность записать их разговор, т.е. получается элементарная «прослушка». И хотя трафик будет зашифрован, но если супер-узлы Skype участвуют и в протоколе согласования шифровальных ключей, это не будет играть никакой роли. Несмотря на то, что невозможно установить, участвуют ли супер-узлы Skype в согласовании ключей, без декомпиляции приложения, всегда нужно иметь ввиду такое правило.
Если обмен ключом производится с неизвестным узлом, все равно зашифрованный трафик не может считаться защищённым. Так, получив поисковый запрос от Натальи оппонент может ответить, что он – Дмитрий и произвести согласование ключа, а с противоположной стороны установить такой же шифрованный канал с Дмитрием от имени Натальи. Теперь он может совершенно спокойно прослушивать трафик, оставаясь не обнаруженным. Иначе такая ситуация называется «человек в середине».
Ситуация казалось бы немного смягчается, если учитывать распределенную структуру Skype. Так как в основном клиент самостоятельно выбирает супер-узлы физически разнесенные друг от друга и делается это для того, чтобы меньшим числом запросов покрывать большую часть сети, то нет гарантии, что именно данный запрос будет перехвачен узлом оппонента. Для возможности качественно прослушивать любого абонента в сети (а не совершенно случайного), оппоненту необходимо организовать достаточное количество подконтрольных ему узлов и наводнить ими сеть. Для этого по подсчетам специалистов достаточно около 100-150 тысяч долларов в год, для организации нескольких сотен скомпрометированных супер-узлов. Это вполне реальная сумма для какой-либо крупной компании или разведслужбы. И при такой ситуации такой оппонент получает практически полный контроль над сетью и пользователями Skype.
Если учесть, что довольно много западных компаний переходит в качестве основного VoIP-провайдера на Skype, то знать пробелы программы все же стоит.

В случае, если оппонент сможет провести реверс-инженеринг протокола и клиентского приложения Skype, то он с большой долей вероятности сможет определить алгоритм выбора супер-узлов. Это в свою очередь позволит ему проводить атаку на конкретного пользователя с заметно меньшими затратами.

Основной вывод по всему сказанному выше.
Распределённая структура Скайп повышает уровень расходов и затрат на проникновение оппонента в сеть, так как не обладая довольно крупным бюджетом трудно рассчитывать на удачный перехват звонка. Децентрализованность оппонента делает сеть слишком подверженной атакам и тотальному мониторингу Skype заинтересованными организациями.