Кивино гнездо: О «взломе» Skype Берд Киви
Кивино гнездо: О «взломе» Skype
Берд Киви
Опубликовано 14 июля 2010 года
Несколько последних дней по интернету гуляет новость о раскрытии исходных кодов программ, защищающих популярную систему IP-телефонии Skype. При этом, как оно часто бывает с темами вокруг криптографии и защиты информации, суть новости в процессе пересказов, домыслов и переводов совершенно чудовищно искажается. Так что на выходе доверчивые читатели нередко получают полнейшую ахинею, практически ничего общего не имеющую с реальной картиной произошедшего. (Недоверчивые читатели получают ту же самую ахинею, но на всякий случай относятся к ней скептически.)
Дабы не быть голословным, придется вкратце процитировать суть события в версии ряда российских новостных ресурсов: «Неизвестный хакер, выступающий в Сети под псевдонимом Шон О`Нил (Sean O`Neil), заявил, что ему и его коллегам удалось получить исходные коды проприетарных протоколов шифрования Skype. В своем блоге О`Нил дал ссылку на ресурс Cryptolib.com, где якобы размещены полученные коды. Представители Skype опровергли факт утечки кода и заявили, что человек, скрывающийся под ником Шон О`Нил — это спамер Ярослав Чарновский (Yaroslav Charnovsky). Исходный код защищен потоковым шифром RC4»… [конец цитаты]
Нет никакого смысла пошагово разбирать, что тут уловлено верно, а что нет, поскольку ерунда — она все равно ерундой и останется. Гораздо проще и правильнее будет подоходчивее объяснить, что же там на самом деле произошло, а в качестве первоисточника воспользоваться свидетельствами самого Шона О`Нила. Благо это никакой не псевдоним «неизвестного хакера», а вполне настоящее имя исследователя-криптографа — пока не сказать, что знаменитого, но всё же и далеко не безвестного в криптографических кругах (и давно имеющего собственный сайт с блогом).
Как инженер-разработчик О`Нил более всего, наверное, известен в качестве создателя довольно интересного и весьма гибкого криптоалгоритма EnRUPT. Ну а в качестве криптоаналитика и специалиста по обратной инженерной разработке Шону О`Нилу года два назад довелось «засветиться» в компании с Карстеном Нолем — в громкой и многим памятной истории с компрометацией этими исследователями секретного (и откровенно слабого) шифра в RFID-чипах Mifare. Такие чипы, можно напомнить, лежат в основе транспортных карточек, электронных льготных удостоверений, бейджей-пропусков и всяких прочих, исчисляемых уже миллиардами, бесконтактных смарт-карт по всему миру.
Что же касается нынешней темы — обратного восстановления криптографии в Skype, упорно скрываемой владельцами программы — то вкратце история выглядит так.
По их собственному свидетельству, Шон О`Нил и его коллеги по обратной разработке криптосистем в действительности занялись схемой защиты информации в Skype уже довольно давно. Имея значительный опыт в делах анализа двоичных кодов, они за несколько дней расковыряли программу, несмотря на интенсивное применения разработчиками Skype так называемой обфускации. Термином обфускация, т.е. «запутывание» кода, называют целенаправленные действия программистов по затруднению понимания исходного кода, запутывающие и устраняющие логические связи в теле программы.
Именно по причине мощного уровня обфускации в 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 в Берлине, по давней традиции проходящей в конце года.
И крайне маловероятно, что кому-либо удастся этому помешать.
К оглавлению