исходного кода, запутывающие и устраняющие логические связи в теле программы.
Именно по причине мощного уровня обфускации в Skype мало кому до этого удавалось восстановить программу на основе общедоступных двоичных кодов. Ну а те, кто всё же сумел это сделать, не решались её публиковать, потому что получившийся исходный код, по выражению О`Нила, «выглядел страшнее Франкенштейна».
Поэтому команда О`Нила в итоге создала эквивалентный код, во всех основных режимах работающий как Skype, но являющийся их собственным. Сделано все было тихо и без огласки, но, как это обычно бывает — «то, что знают двое, знает и свинья». Иначе говоря, несколько месяцев назад некоторая часть эквивалентного кода Skype просочилась в хакерский андеграунд. Всего одну-две недели спустя появились свидетельства, что код О`Нила стали использовать спамеры для рассылки своего мусора через каналы сервиса срочных сообщений Skype. Чувствуя определенную ответственность за происходящее, О`Нил связался с руководством Skype, чтобы сообщить об источнике утечки кода, однако наткнулся там лишь на грубости и угрозы администрации, принявшей его за одного из главарей спамеров.
Поскольку конструктивного диалога явно не получилось, а нести ответственность за всевозможные злоупотребления кодом О`Нилу с коллегами было совершенно ни к чему, они решили, что будет справедливо предоставить его всем специалистам по инфобезопасности, заинтересованным в укреплении защиты столь популярного и важного продукта как Skype. Ибо с какой стати преимущество должно быть у злоумышленников?
Хотя в распоряжении исследователей, проделавших обратное восстановление кода программы, имеются все элементы весьма замысловатой криптосхемы Skype, первым делом было решено предать гласности самую главную тайну или «величайший секрет коммуникационного протокола Skype» — запутанный обфускацией алгоритм расширения для вектора инициализации шифра RC4.
Если смысл этих терминов попытаться передать обычным человеческим языком, то суть осуществленной на сайте cryptolib.com публикации примерно такова. Внятный код программы на обычном языке Си — это все, что требуется для дешифрования служебного трафика между клиентами Skype и суперузлами системы. То есть, хотя для защиты данных пакетов и используется шифр RC4, никакого секретного ключа, который требовалось бы вскрывать, здесь нет. Единственное же, что реально имеется, это весьма тщательно замаскированное постоянное преобразование, превращающее читаемую информацию в нечитаемую.
С точки зрения криптографии никакой серьёзной защиты для передаваемой информации такого рода преобразование не предоставляет. Вся «безопасность» этого алгоритма предназначена лишь для того, чтобы никакая другая сторона не могла разрабатывать совместимые со Skype приложения. Ибо если алгоритм неизвестен, это гарантия того, что никто посторонний не сможет зашифровывать или расшифровывать пакеты Skype.
По сути дела, это была защита для монопольного владения Skype своей системой. Именно по этой причине данный алгоритм и был с особой тщательностью запрятан в двоичных кодах Skype. По свидетельству О`Нила, данная защита кода в программе была самой лучшей из всего, что он когда-либо видел за все годы своих занятий обратной инженерной разработкой.
Выложив в Сеть восстановленный код алгоритма, исследователи подчёркивают, что их публикация ни в коей мере не ставила целью нанесение ущерба безопасности Skype. Она, собственно, и не наносит. Скорее даже напротив. Опубликованный алгоритм теперь позволит компаниям, выпускающим файрволы и антивирусы, добавить возможности сканирования трафика Skype на предмет выявления известных вредоносных кодов. Более того, проделанная исследователями работа и её публикация являются совершенно легальным делом. Согласно законам о конкуренции, во всяком случае, граждане имеют законное право на обеспечение совместимости одних рыночных продуктов с другими.
Наконец, касаясь ещё одного весьма чувствительного аспекта «взлома», Шон О`Нил и его коллеги отмечают, что их публикация никак не влияет на конфиденциальность звонков по Skype, на защиту передаваемых в этой системе текстовых сообщений или файлов. Все это по-прежнему остаётся зашифрованным стойким криптоалгоритмом AES с 256-битным ключом, который совместно формируется сторонами с помощью 1024-битного ключа RSA в начале сеанса связи. Все эти процедуры хорошо изучены и безопасны, напоминают исследователи, так что нет никаких поводов для паники.
После всех этих пояснений кто-то может задаться вполне естественным вопросом: « Но если и звонки, и текстовые сообщения, и передачи файлов остаются по-прежнему конфиденциальными, несмотря на раскрытие кода, то тогда какой же конкретно трафик становится теперь видимым при его прохождении между клиентом и суперузлом»?
В публикации О`Нила речь идёт исключительно о трафике управления, в котором системой Skype пересылаются поисковые запросы пользователей, их профили, списки контактов и тому подобные вещи. Именно эта информация и стала лакомой добычей для спамеров. Чем в который уже раз было наглядно продемонстрировано, что гнилой по сути принцип Security Through Obscurity («безопасность через неясность») раньше или позже непременно подводит всех, кто его практикует.
Однако далеко не всё, подчеркивает О`Нил, в системе Skype обеспечивается принципом безопасность через неясность. Там немало вполне хорошей криптографии, причем основная её часть реализована правильно и грамотно. В общей сложности исследователи насчитали в системе семь типов шифрования коммуникаций. Серверы Skype используют AES-256, суперузлы и клиенты используют три типа шифрования по алгоритму RC4 (старый TCP RC4, старый UDP RC4 и новый TCP RC4 на основе DH-384), а кроме того, клиенты также используют AES-256 поверх RC4. Вся эта конструкция довольно сложна, однако сейчас она уже полностью восстановлена и будет доложена на ближайшей хакерской конференции 27C3 в Берлине, по давней традиции проходящей в конце года.
И крайне маловероятно, что кому-либо удастся этому помешать.