id: Гость   вход   регистрация
текущее время 13:55 28/03/2024
создать
просмотр
редакции
ссылки

Уязвимости Skype


Skype – это набирающая популярность децентрализованная пиринговая сеть интернет-телефонии, поддерживающая сервисы VoIP и IM. Иными словами, это нечто среднее между KaZaa и ICQ, только вместо текстовых сообщений или музыкальных файлов сеть осуществляет передачу телефонных звонков между компьютерами её пользователей. Учитывая объёмы рекламных кампаний Skype по всему миру, мне видится необходимым осветить некоторые тёмные углы в протоколе системы, о которых намеренно умалчивают разработчики.


В начале января Симсон Гарфинкель опубликовал fileподробное исследование системы безопасности Skype. Поскольку протокол и клиентские приложения Skype являются проприетарными и закрытыми, анализ в основной части основан на эмпирических наблюдениях. Не все из сделанных выводов точны и обоснованы, но к сегодняшнему дню это лучшая работа по данной теме. Впоследствии к ней был высказан ряд замечаний и уточнений.


Разработчики Skype заявляют об абсолютной защищённости всех передаваемых сообщений, благодаря их шифрованию алгоритмом AES. Хотя информация об использовании AES, по-видимому, справедлива (передаваемые данные проявляют свойство псевдослучайности), Skype обладает рядом недостатков, ставящих под угрозу компрометации всю его сеть. Чтобы понять, что является причиной, попробуем в общих чертах рассмотреть, как функционирует Skype.


В отличие от "классических" VoIP-систем, потоки данных между абонентами передаются не через центральные коммутаторы телефонной службы, а проходят напрямую через интернет от одного компьютера к другому (peer-to-peer) либо производятся через специальные узлы. Эти узлы, осуществляющие координацию, адресацию и маршрутизацию потоков, а также трансляцию запросов пользователей к серверу аутентификации, называются "супер-узлами" (super-nodes), при этом каждый пользователь может по своему желанию выполнять функции супер-узла, отметив в своём клиенте соответствующую опцию.


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


  • Поскольку именно супер-узлы отвечают за переадресацию запросов пользователей к серверу авторизации, оппонент, контролирующий модифицированный супер-узел, может перенаправлять эти запросы на такой же подконтрольный сервер и блокировать определённым пользователям доступ к системе (атака на отказ в обслуживании). Помимо этого, с помощью такого подконтрольного сервера оппонент может перехватывать логины/пароли пользователей.
  • Как было отмечено, супер-узлы осуществляют адресацию абонентов, т.е. выполняют поисковые запросы и связывают абонентов между собой. Допустим пользователь Анна желает найти пользователя Бориса, чтобы провести разговор. Её клиент направляет поисковый запрос нескольким супер-узлам, которые должны указать адрес Бориса. Поскольку в Skype отсутствует криптографическая авторизация участников обмена, супер-узел оппонента может ответить, что он и есть Борис либо перенаправить Анну на иной подконтрольный узел. У Анны нет способа проверить правдивость ответа, поскольку её клиент безоговорочно доверяет супер-узлу, а механизмом авторизации Борис не располагает.
  • Кроме того, чтобы выдавать себя непосредственно за Бориса, оппонент может соединить Анну с настоящим Борисом, а поскольку супер-узлы выполняют и функции релеев, если абоненты по тем или иным причинам не могут установить прямого соединения (например, находясь за NAT), оппонент получает возможность записать их разговор. Да, трафик будет зашифрован, но если супер-узлы участвуют и в протоколе согласования шифровальных ключей, это не будет играть никакой роли.
  • Несмотря на то, что установить, участвуют ли они в согласовании ключей, без декомпиляции приложения невозможно, нужно принимать во внимание правило, что если обмен ключом производится с неизвестным (недоверенным) узлом, зашифрованный трафик всё равно не может считаться защищённым. Так, получив поисковый запрос от Анны оппонент может ответить, что он – Борис и произвести согласование ключа, а с противоположной стороны установить такой же шифрованный канал с Борисом от имени Анны. Теперь он может пассивно прослушивать трафик, оставаясь необнаруженным. Это классическая атака "человек посередине".

В то же время, распределённая структура Skype в некоторой мере сглаживает отмеченные недостатки. Поскольку клиент самостоятельно выбирает топологически разнесённые друг от друга супер-узлы (чтобы покрывать меньшим числом запросов большую часть сети), нет гарантии, что тот или иной запрос попадёт на узел оппонента. Чтобы иметь возможно эффективно прослушивать любого целевого (а не случайного) абонента, оппонент должен организовать сивиллову атаку и наводнить сеть множеством подконтрольных узлов. Высказывалось мнение, что при нынешнем размере сети будет гарантированно достаточно нескольких сотен скомпрометированных супер-узлов. Если бюджет оппонента может позволить аренду сотни коллокейшн-серверов в разных частях света, что обойдётся приблизительно в 100-150 тыс. долларов в год, что более, чем реально, для любой крупной компании или государственной разведслужбы, оппонент фактически получает полный контроль над сетью. Это особенно вероятно и опасно в свете того, что многие западные компании переходят на Skype в качестве основного VoIP-провайдера, делая его привлекательной мишенью. Если же оппонент способен провести реверс-инженеринг клиентского приложения и протокола Skype, он с вероятностью может определить алгоритм выбора супер-узлов, что позволит проводить атаку на конкретного пользователя существенно меньшими усилиями.


Из сказанного можно сделать два основных вывода. Хотя распределённая структура Skype повышает планку затрат на "вхождение" оппонента (трудно, не обладая крупным бюджетом, перехватить или не доставить звонок целевого абонента), его децентрализованность делает сеть слишком подверженной сивилловым атакам и тотальному мониторингу заинтересованными организациями.


© 2005 SATtva

 
Много комментариев (17) [показать комментарии/форму]
Общая оценка документа [показать форму]
средний балл: +1.17респондентов: 12