stringtranslate.com

протокол скайпа

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

Сеть Skype несовместима с большинством других сетей передачи голоса по IP (VoIP) без надлежащего лицензирования Skype. Были предприняты многочисленные попытки изучить или перепроектировать протокол, чтобы раскрыть его, исследовать безопасность или разрешить неофициальным клиентам.

20 июня 2014 года Microsoft объявила об прекращении поддержки старого протокола Skype. В течение нескольких месяцев с этой даты, чтобы продолжить использование сервисов Skype, пользователям Skype пришлось обновить приложения Skype, выпущенные в 2014 году, и пользователи не могли войти в старые версии Skype (клиенты). [1] [2] Не было сделано никаких заявлений о том, будут ли SmartTV и аппаратные телефоны со встроенными функциями Skype продолжать работать без перебоев. Новый протокол Skype — Microsoft Notification Protocol 24 — обещал улучшить обмен сообщениями в автономном режиме и улучшить синхронизацию сообщений на устройствах Skype. Прекращение поддержки вступило в силу на второй неделе августа 2014 года. [3]

Одноранговая архитектура

Skype был первой одноранговой сетью IP-телефонии. [4] Сеть содержит три типа объектов: суперузлы , обычные узлы и сервер входа. Каждый клиент поддерживает кэш хоста с IP-адресами и номерами портов доступных суперузлов. Каталог пользователей Skype децентрализован и распределен между супернодами сети. Суперноды группируются в слоты (9–10 супернод), а слоты группируются в блоки (8 слотов). [ нужна цитата ]

Раньше суперузлом мог стать любой клиент с хорошей пропускной способностью, отсутствием ограничений из-за брандмауэра или трансляции сетевых адресов (NAT) и достаточной вычислительной мощностью. Это налагало дополнительную нагрузку на тех, кто подключался к Интернету без NAT, поскольку Skype использовал их компьютеры и подключения к Интернету в качестве третьих лиц для пробивания отверстий UDP (для прямого подключения двух клиентов, обоих за NAT) или для полной ретрансляции вызовов других пользователей. В 2012 году Microsoft изменила структуру сети и взяла под свой контроль все суперузлы в виде размещенных серверов в центрах обработки данных. [5] В то время Microsoft защищала этот шаг, заявляя, что они «считают, что этот подход дает немедленные преимущества в производительности, масштабируемости и доступности для сотен миллионов пользователей, составляющих сообщество Skype». [6] В то время существовала некоторая обеспокоенность по поводу последствий изменения для конфиденциальности, [7] что, похоже, подтвердилось с раскрытием программы наблюдения PRISM в июне 2013 года. [8] [9]

Skype не поддерживает использование протокола IPv6 , [10] что значительно снизило бы сложность, связанную с вышеупомянутой структурой связи IPv4.

Суперузлы ретранслируют сообщения от имени двух других клиентов, оба из которых находятся за брандмауэрами или трансляцией сетевых адресов «один ко многим». Без ретрансляции через суперноды два клиента с проблемами брандмауэра или NAT не смогут совершать или принимать вызовы друг от друга. Skype пытается заставить обе стороны напрямую согласовать детали соединения, но иногда сумма проблем на обоих концах может помешать установлению прямого разговора.

Проблемы с межсетевыми экранами и NAT могут быть:

Протокол

Сигнализация шифруется с помощью RC4 ; однако этот метод только запутывает трафик, поскольку ключ можно восстановить из пакета. Голосовые данные шифруются с помощью AES . [11]

Интерфейс прикладного программирования (API) клиента Skype открывает сеть разработчикам программного обеспечения. API Skype позволяет другим программам использовать сеть Skype для получения информации « белых страниц » и управления вызовами.

Код Skype имеет закрытый исходный код , а протокол не стандартизирован. [12] Части клиента используют Internet Direct (Indy) , библиотеку связи сокетов с открытым исходным кодом. [ нужна цитата ]

8 июля 2012 года исследователь из Бенина Уанило Медеган опубликовал статьи и доказательство концептуального кода, результаты своего обратного проектирования клиента Skype. [13]

Обнаружение протокола

Многие сетевые и охранные компании заявляют, что могут обнаруживать и контролировать протокол Skype для корпоративных и операторских приложений. Хотя конкретные методы обнаружения, используемые этими компаниями, часто являются запатентованными, критерий хи-квадрат Пирсона и стохастическая характеристика с помощью наивных байесовских классификаторов — это два подхода, которые были опубликованы в 2007 году. [14]

Слой обфускации

Алгоритм шифрования RC4 используется для сокрытия полезной нагрузки дейтаграмм.

  1. Берутся CRC32 публичного IP-адреса источника и назначения, идентификатор пакета Skype .
  2. Вектор инициализации слоя обфускации Skype (IV).

XOR этих двух 32-битных значений преобразуется в 80-байтовый ключ RC4 с использованием неизвестного механизма ключей.

Заметное неправильное использование RC4 в Skype можно обнаружить в потоках TCP (UDP не затрагивается). Первые 14 байт (10 из которых известны пользователю, поскольку состоят из хеша имени пользователя и пароля) подвергаются операции XOR с потоком RC4. Затем шифр повторно инициализируется для шифрования остальной части потока TCP. [15]

TCP

TCP-пакеты:

TCPTCP-пакет инициализации Skype

TCP-пакет Skype Init содержит

Дейтаграммы низкого уровня

Практически весь трафик шифруется. Каждая команда имеет свои параметры, добавленные в список объектов. Список объектов может быть сжат.

 /Список объектов... -| Enc -> Cmd -> Кодировать ^ \ Сжатый список... -| Фрагмент | | |------------------<---------------| Подтверждаю
 NAck
 Переслать -> Переадресовано..Сообщение

Списки объектов

Объектом может быть число, строка, IP-порт или даже другой список объектов. Каждый объект имеет идентификатор. Этот идентификатор определяет, каким параметром команды является объект.

Объект: Число IP:Порт Список номеров Нить RSA-ключ
Список объектов Размер списка (n) Объект 1 . . Объект н

Сжатие пакетов

Пакеты можно сжимать. Алгоритм представляет собой вариант арифметического сжатия , в котором вместо битов используются вещественные числа.

Правовые вопросы

Реверс-инжиниринг протокола Skype путем проверки/дизассемблирования двоичных файлов запрещен условиями лицензионного соглашения Skype. Однако закон Европейского Союза разрешает реконструировать компьютерную программу без получения разрешения от автора в целях совместимости. [16] В США Закон об авторском праве в цифровую эпоху обеспечивает защиту программного обеспечения для обратного проектирования в целях обеспечения совместимости с другим программным обеспечением. [17] [18] В США также имеются юридические прецеденты, когда реверс-инжиниринг направлен на обеспечение совместимости файловых форматов и протоколов. [19] [20] [21]

Кроме того, в некоторых странах специально разрешено копирование программы для целей обратного проектирования. [22]

Примечания

  1. ^ «Прокладывая путь для следующего поколения Skype для настольных компьютеров» . 20 июня 2014 г.
  2. Кейзер, Грегг (21 июня 2014 г.). «Обновление: Skype прекращает поддержку последних выпусков для Windows и Mac; обновления обязательны».
  3. Крис Мерримен (15 августа 2014 г.). «Skype перестает работать на старых телефонах Android, оставляя пользователей Linux в неведении». CNET . Архивировано из оригинала 16 августа 2014 года . Проверено 2 октября 2014 г.{{cite web}}: CS1 maint: неподходящий URL ( ссылка )
  4. ^ Салман А. Басет; Хеннинг Шульцринн (2004). «Анализ протокола одноранговой интернет-телефонии Skype». п. 11. arXiv : cs/0412017v1 .
  5. Бранскомб, Мэри (27 июля 2012 г.). «Забудьте теории заговора: суперузлы Skype принадлежат облаку». 500 слов в будущее (ZDNet) . Проверено 17 июня 2013 г.
  6. ^ «Skype заменяет суперноды P2P на Linux-системы, размещенные Microsoft (обновлено)» . Арс Техника . 2 мая 2012 года . Проверено 17 июня 2013 г.
  7. Коснер, Энтони (18 июля 2012 г.). «Облегчат ли изменения Microsoft в архитектуре Skype слежку?». Блог Форбс . Проверено 17 июня 2013 г.
  8. Галлахер, Райан (6 июня 2013 г.). «Недавно обнаруженная функция отслеживания PRISM делает наблюдение Verizon похожим на детские вещи» . Сланцевый блог . Проверено 17 июня 2013 г.
  9. Гринвальд, Гленн (7 июня 2013 г.). «Программа NSA Prism использует пользовательские данные Apple, Google и других». Хранитель . Проверено 17 июня 2013 г.
  10. ^ «Skype не поддерживает IPv6» . Официальный аккаунт Skype в Твиттере. 1 ноября 2012 г. Проверено 4 ноября 2012 г.
  11. ^ Введение Анализ Skype. Обеспечение соблюдения политик защиты Skype, обнаружен Skype. Исследование безопасности Skype, Desclaux Fabrice, 11 июля 2005 г., EADS CCR/STI/C.
  12. ^ «Какие протоколы использует Skype?» Помощь . Скайп. Архивировано из оригинала 3 марта 2009 года.
  13. ^ «Сообщения в обратной категории Skype» . oKLabs .
    «Реверс-инжиниринг Skype: (долгое) путешествие;)». oKLabs .
  14. ^ Дарио Бонфиглио; и другие. «Выявление трафика Skype: когда случайность играет с вами». Обзор компьютерных коммуникаций ACM SIGCOMM . 37 (SIGCOMM 2007): 37–48. Архивировано из оригинала 30 апреля 2011 г.
  15. ^ Фабрис Декло; Костя Корчинский (17.06.2006). «Ванильный Skype, часть 2» (PDF) . РЕКОН2006 .
  16. ^ Директива 2009/24/EC Европейского парламента и Совета от 23 апреля 2009 г. о правовой защите компьютерных программ.
  17. ^ 17 USC Sec. 1201(ф).
  18. ^ Закон ВОИС об авторском праве, исполнениях и фонограммах.
  19. ^ Sega против Accolade, 1992
  20. ^ Sony против Connectix, 2000 г.
  21. ^ Памела Самуэльсон и Сюзанна Скотчмер (май 2002 г.). «Закон и экономика обратного проектирования» (PDF) . Йельский юридический журнал . 111 (7): 1575–1663. дои : 10.2307/797533. JSTOR  797533. Архивировано из оригинала (PDF) 16 июля 2011 г. Проверено 17 марта 2015 г.
  22. ^ Во французском законодательстве об интеллектуальной собственности есть исключение, которое позволяет любому пользователю программного обеспечения перепроектировать его. См. Кодекс интеллектуальной собственности (на французском языке) . Этот закон является национальной реализацией части законодательства ЕС: Директивы Совета 91/250/EEC, которая впоследствии была отменена Директивой 2009/24/EC Европейского парламента и Совета от 23 апреля 2009 г. о правовой защите компьютерных программ. в котором также есть очень похожее положение, разрешающее реверс-инжиниринг/декомпиляцию в целях разработки и тестирования независимых, но взаимодействующих программ).

Рекомендации

Внешние ссылки