По какому протоколу работает скайп. "Опасный" Skype

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

Код клиента написан на Си с использованием Net Framework 4 и распространяется бесплатно, под лицензией GPL. Автор потратил несколько лет на изучение работы протокола и реверс инженеринг. На данный момент реализована версия протокола Skype 5.5 и работают только текстовые сообщения.

Программа пока рассчитана для работы в Windows, но учитывая ее свободную лицензию можно рассчитывать на то, что скоро появится версия и для Linux. А пока программу можно запустить и протестировать в Wine, только для этого должен быть установлен Net Framework 4.

Сначала после запуска мы видим окно ввода логина и пароля:

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

Дальше можно набирать и отправлять сообщения. Чтобы загрузить историю переписки нажмите Resv MSG. В дальнейшем планируется эти кнопки убрать и сделать эти действия автоматическими. Программа еще не очень стабильна, но можно видеть, что основная функциональность работает.

Скачать исходники и исполняемые файлы программы можно на .

Похожие записи:


Популярная программа Skype – это один самых инновационных и одновременно востребованных во всем мире социальных сервисов. Это легко объясняется благодаря массе разнообразных преимуществ и уникальных возможностей, которые заключаются в безграничном общении с любыми абонентами Skype, не зависимо от их местонахождения или социального статуса. Кроме этого, в работе программы отсутствует какая-либо обязательная абонентская плата и принцип ее управления будет легко понятен даже новичку. Однако, каждому пользователю непременно стоит ознакомиться с основными программными документами и принципами его работы.

В чем заключаются особенности протокола программы

Если вас интересует, что такое skype протокол, то простые объяснения профессиональных программистов легко и доступно помогут понять этот термин. Протокол программы Skype – это один из важнейших элементов интерактивной сети, которая выстроена специально для работы программы Skype.

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

Основные особенности шифра программы Skype заключаются в таких характеристиках:

  • протокол программы Skype используется профессионалами для исследования любых попыток незаконного доступа к программному обеспечению, способствовать надежной защите всех данных и выявлению всех незаконных пользователей.
  • в 2014 году он был объявлен устаревшим, поэтому многие ее пользователи могли сталкиваться с некоторыми неполадками и трудностями работы. Однако, после получения всех обновлений и инноваций, новый протокол Skype предоставил ещё больше специальных возможностей всем абонентам сервиса.

Какой протокол использует скайп

Многих пользователей Skype наверняка интересует вопрос: по какому протоколу работает skype, на который существует понятный ответ. В целях обеспечения безопасности разработчики программного обеспечения держат в секрете все коды и данные, которые лежат в основе ее налаженной работы, однако, такие факты известны:

  • передача сигнала происходит с помощью специального алгоритма RC4;
  • голосовые данные передаются при использовании AES.

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

Протокол программы позволяет ее пользователям получать такие специальные интерактивные услуги:

  1. общение с помощью интернет связи;
  2. просмотр новостей;
  3. обмен смс и мгновенными сообщениями.

Данный протокол реализуется в процессе подключения индивидуального аккаунта каждого пользователя программы. Подключение происходит по специальному пути NAT, после чего происходит поиск брандмауэров и индивидуальных узлов по открытым IP-адресам пользователей. Затем подлинность каждого подключения обязательно проверяется индивидуальным паролем.

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

Приложились те же люди, которые разработали первую программу для файлообмена KaZaA. К сожалению, Skype унаследовал худшие черты своего предшественника: VoIP -программа работает как самоорганизующаяся распределенная пиринговая сеть (P2P). Skype представляет собой эдакий "черный ящик", в котором есть многоуровневая система шифрования. Также система использует антиотладочные приемы исполняемого файла, что, в свою очередь, предоставляет возможность скачивания с компьютера конфиденциальной информации и передачи ее в сеть , используя закрытый протокол . Упомянутый протокол имеет возможность обходить межсетевые экраны, а также ловко маскирует свой трафик , что препятствует его блокированию. Все эти "супер-способности" Skype делают его отличным разносчиком вирусов , червей и дронов, которые основывают внутри сети Skype свои персональные распределенные сети. Вдобавок к этому, Skype достаточно нагло использует ресурсы узла пользователя , напрягая центральный процессор и формируя мощный поток трафика , который редко, а в особенности в России, бывает бесплатным. Получается, что звонки являются бесплатными весьма условно.

В структуре Skype -сети можно обнаружить: обычные узлы (SC - Skype Client) и супер-узлы (SN - Super Node). Узел , имеющий публичный IP-адрес и обладающий довольно широким каналом, автоматически переходит в разряд супер-узлов и служит для прогонки трафика узлов SC, содействуя им в преодолении защиты (например, преодоление межсетевых экранов или трансляторов сетевых адресов) и одинаково распределяя нагрузку между хостами. Эта самоорганизующаяся распределенная децентрализованная пиринговая сеть обладает централизованным элементом - Skype -login -сервером , который является ответственным за авторизацию Skype -клиентов и дает гарантию уникальности позывных для этой распределенной сети.

Появившуюся проблему можно решить с помощью протокола TURN. Этот протокол повышает латентность и возможность потери большого количества UDP-пакетов , а это пагубно отражается на качестве и устойчивости связи.

В этом случае администраторы закрывают UDP-трафик . Skype , тем временем, автоматически подключается на новый TCP. Администратор, конечно, может закрыть все неиспользуемые порты , но не тут-то было, ведь таких портов нет. Соединяясь с удаленным узлом, операционная система присваивает клиенту любой свободный TCP/UDP-порт, который будет использоваться для получения пакетов . В случае если закрыть все порты , установить TCP/UDP-соединения окажется невозможным.

Выход из этой ситуации только один - отключить прямой доступ в Интернет и заставить всех пользователей заходить через proxy-сервер . Хотя и эти меры окажутся бесполезными: Skype "ознакомится" с конфигурацией браузера и будет использовать proxy-сервер как свой родной.

Блокирование трафика Skype

Разработчики Skype предупреждают администраторов, что любые попытки выявления и блокирования его трафика окажутся безуспешными, так как распознавание Skype -трафика очень сложный процесс, а его блокировка возможна только по зашифрованному и не содержащему никаких логичных последовательностей содержимому. Но, в связи с тем, что разработчики Skype пропустили некоторые моменты, есть и незашифрованная часть трафика . Анализатор трафика может выявить UDP-соединение, использующее открытый протокол с целью получения публичных IP-адресов супер-узлов , а RC4-поток дважды используется TCP-соединением, что предоставляет возможность расшифровать часть постоянных полей заголовков протокола Skype и вычислить 10 первых байт ключа путем расшифровки части постоянных полей заголовков Skype -протокола . К сожалению, на данный момент не существует полностью готового блокиратора Skype -трафика .

UDP-трафик намного проще распознаваем, и его легче заблокировать. Двухбайтовый идентификационный номер (ID) и тип пакета (payload) идут в начале каждого фрейма. В UDP-пакете есть 39-байтный NACK-пакет , который пропущен через программу, производящую обфускацию, и содержит в себе данные идентификатора пакета , номера функции (func), который пропущен через обфускатор, IP отправителя и IP получателя.

Из этого следует, что для блокировки UDP-трафика необходимо добавить в брандмауэр следующее правило:

Блокировка UDP-трафика ничем не поможет, ведь Skype автоматически переходит на TCP, но и в этом случае можно кое-что сделать. Заголовки входящих IP-

Описание

URL-протокол skype: позволяет создавать парные звонки (то есть звонки один на один), а так же конференц-звонки, видео звонки и чаты .

Примечание

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

Условия использования

Если список указываемых (с помощью телефонных номеров или логинов Skype) собеседников больше одного, то номера или названия учётных записей (логинов) Skype разделяются точкой с запятой (например, interlocutor1;interlocutor2;...;interlocutorN).

Поддержка браузерами

Статья

URL-составляющие

Аудио и видео вызовы

Аудио вызовы делятся на явные и не явные . Не явные аудио вызовы подразумевают указание в протоколе только списка собеседников.

skype:interlocutor1;interlocutor2;...;interlocutorN.

Явные аудио вызовы подразумевают указание в протоколе « skype: » не только списка участников, но и аргумента « call ».

Call Указывает явный аудио вызов. При этом так же допускается установка дополнительных аргументов, таких как аргумент видео и аргумент темы:

  • topic ‒ позволяет указать для конференц-звонка строку с темой беседы, которая будет отображаться у всех участников конференции. При этом необходимо помнить, что указанная таким образом тема является частью URL адреса, поэтому строка названия темы должна соответствовать URL критериям, то есть необходимо экранировать некоторые специальные символы. Например, пробел заменяется символами « %20 ». В противном случае если пробелы не заменить на соответствующие символы, то обработчик примет в качестве названия темы символы до первого пробела, а символы после пробела будут восприняты как дополнительные аргументы, которые могут быть проигнорированы или поняты неправильно.

    skype:interlocutor1;+1234567890;...;interlocutorN?call&topic=Строка%20темы

    Для того что бы конкретно указать аудио вызов без видео необходимо задать аргумент « video » со значением « false » (video=false).

  • video ‒ Аргумент видео вызова. При осуществлении звонка между пользователями Skype, автоматически включается обмен видео (если в силу технических возможностей таковой возможен) между собеседниками. При указании нескольких участников осуществляется групповой видео вызов. При этом количество участников видео беседы ограничено до десяти, с рекомендуемым количеством не более пяти для обеспечения наилучшего качества вызова.

    skype:interlocutor1;+1234567890;...;interlocutorN?call&video=true

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

Чаты

Создаёт парные диалоги и групповые чаты .

Если разговор осуществляется с участником или участниками, с которыми в истории уже имеются разговоры, то Skype приложение открывает уже существующий разговор, а если такового разговора в истории Skype не существует, то создаётся новая беседа. Если при этом открывается уже существующий разговор (имеющий определённую тему) и при помощи аргумента « topic » так же указывается тема, то приложение Skype меняет тему разговора на новое значение.

  • topic ‒ Аргумент темы чата. Специальные символы в значении темы аргумента (например, пробелы), так же как и в случае с аудио звонками должны быть экранированы.

    skype:interlocutor1;+1234567890;...;interlocutorN?chat&topic=Строка%20темы

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

Что это значит, если разобраться. Взяли клиентскую программу Skype дизассемблировали ее, поняли как работает протокол и механизм шифрования. Сколько на это было потрачено времени не понятно. Но судя по всему хакер работал один. Так как в данный момент он приглашает к сотрудничеству единомышленников (читай других хакеров), который располагают, цитирую: «достаточным запасом времени» для завершения проекта.

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

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

Вообще защита кода программы может преследовать различные цели и не только защиту кода самого по себе от анализа. Защита кода это и защита от вирусов, способных модифицировать работу программы в реальном времени и защита от проникновения злоумышленников через уязвимые места программы в систему целиком. И как мы видим на последнем примере, при помощи защиты кода можно решать и вопросы безопасности протокола передачи данных.

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

Похожие публикации