CFA LogoCFA Logo Computer
Новости Статьи Магазин Прайс-лист Драйвера Контакты
Новости
RSS канал новостей
В конце марта компания ASRock анонсировала фирменную линейку графических ускорителей Phantom Gaming. ...
Компания Huawei продолжает заниматься расширением фирменной линейки смартфонов Y Series. Очередное ...
Компания Antec в своем очередном пресс-релизе анонсировала поставки фирменной серии блоков питания ...
Компания Thermalright отчиталась о готовности нового высокопроизводительного процессорного кулера ...
Компания Biostar сообщает в официальном пресс-релизе о готовности флагманской материнской платы ...
Самое интересное
Программаторы 25 SPI FLASH Адаптеры Optibay HDD Caddy Драйвера nVidia GeForce Драйвера AMD Radeon HD Игры на DVD Сравнение видеокарт Сравнение процессоров

АРХИВ СТАТЕЙ ЖУРНАЛА «МОЙ КОМПЬЮТЕР» ЗА 2003 ГОД

Почему ломают шифры?

Сергей БОРМОТОВ dinalt@hotmail.ru

Какие ассоциации вызывает у вас слово «криптозащита»? Шифры, коды, секреты спецслужб? В своей статье «Защити себя сам!» (МК №7(230)) я писал об основах защиты данных с помощью криптопреобразования; сейчас я хочу рассказать, почему взламываются казалось бы стойкие и неприступные алгоритмы.

В последнее время в околокомпьютерном мире часто проскакивает информация о взломе, ошибках и дырах в той или иной системе защиты данных. Невольно возникают знакомые проклятые вопросы: «кто виноват» и «что делать»? Попробуем разобраться.

Ошибки в программной реализации

В криптосистемах могут быть так называемые люки. Это специальные лазейки, вставленные программером в алгоритм с целью облегчения отладки кода или с целью доступа к шифруемой информации не имея пароля. Рано или поздно такие дыры в защите становятся известны широкому кругу лиц, и криптостойкость такой системы достигает нуля. Самый известный пример — AWARD BIOS с его универсальным паролем AWARD_SW.

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

Невозможность применения стойких алгоритмов вследствие ограничений

Ограничения могут быть такими:

Экспортные. Это ограничение связано с запретом экспорта некоторых криптоалгоритмов или с необходимостью приобретать патент или права на них. В частности, из США запрещен экспорт систем защиты с длиной ключа более 40 бит. Учитывая современное развитие вычислительной техники, достигаемая ими криптостойкость не может считаться надежной. Если предположить, что скорость перебора паролей равна 50 тыс./с (без труда может быть достигнута на современном РС), взлом системы методом полного перебора паролей займет всего четыре месяца.

Пример известной программы, подверженной экспортным ограничениям — старый добрый Internet Explorer. Он предоставляет шифрование со 128-битным ключом для пользователей внутри США, и с 40-битным для остальных смертных.

Для того чтобы не заморачиваться с этими ограничениями, можно использовать российский криптоалгоритм ГОСТ 28147-89 с длиной ключа 128 бит. Он не запатентован, свободен для использования и обеспечивает высокую скорость шифрования данных.

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

Отсутствие проверки на слабые ключи. Ряд алгоритмов (например DES) при использовании некоторых специфических ключей элементарно взламываются. Эти ключи называются слабыми. Для алгоритма DES известно 4 слабых и 12 полуслабых ключей, и хотя вероятность их применения равняется всего 16/256, для серьезных систем защиты данных это все же существенно.

Недостаточная защищенность от разрушающих программных средств. Разрушающие программные средства — это компьютерные вирусы, трояны и т.д., способные перехватывать ключи, пароли, нешифрованные данные, а то и подменять криптоалгоритм на менее стойкий. Если при разработке системы не были приняты меры для защиты от подобных сюрпризов, они способны легко нарушить безопасность системы, что приведет к потере секретных данных. Особенно это актуально для операционных систем, не имеющих средств разграничения доступа, а также для пресловутой Винды (Линуксоиды, возрадуйтесь — вы пользуетесь хорошо защищенной системой!) Примером таких программ являются т.н. программы-попугаи, которые генерят окно ввода пароля, после чего полученный пароль пересылают по электронной почте.

Наличие зависимости от времени обработки ключей. Многие криптосистемы обрабатывают разные входные данные неодинаково быстро. Это зависит от различных аппаратных и программных причин. Злобный хакер Вася Пупкин, имея уже зашифрованные данные, а также измеряя каким-либо образом время обработки этих данных (например, анализируя время отправки пакетов этих данных по сети), может попытаться подобрать ключ.

Неправильное применение криптоалгоритмов

Как вы сами понимаете, при неправильном применении какой-либо вещи (будь то пылесос, истребитель СУ-27 или криптоалгоритм) невозможно добиться ее эффективной работы. В чем же заключается эта неправильность применительно к нашей теме?

Малая длина ключа. Это самая очевидная причина. Она обусловлена тем, что некоторые алгоритмы разрабатывались очень давно, и такая длина ключа тогда представлялась надежной. Сейчас компьютеры стали намного быстрее, и такие криптосистемы уже не представляют сложностей при взломе.

Повторное наложение гаммы шифра. Уже классическим примером стала уязвимость Windows 3.1 и 95, где используется алгоритм RC-4. Этот алгоритм представляет собой ни что иное как шифрование гаммированием. В Windows 3.1 и 95 с помощью этого алгоритма защищаются пароли доступа к сети, и все это хранится в файле с расширением .pwl. Один из наборов данных этого файла представляет собой зашифрованное имя пользователя и список указателей на ресурсы. Имя пользователя в большинстве случаев совпадает с именем файла .pwl, следовательно, уже 20 байт гаммы известно. Угадав примерный список ресурсов, можно узнать еще несколько десятков байт. Гамма при шифровании всего файла не меняется. Я думаю, вы меня поняли…

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

Человеческий фактор

Непрофессиональные действия пользователя способны свести на нет криптостойкость даже самого изощренного алгоритма защиты.

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

Соответственно, существует два вида взлома криптосистем: атака по словарю и атака полным перебором. Сейчас, в связи с резким ростом вычислительных мощностей, атаки полным перебором имеют больше шансов на успех, чем раньше. Если раньше разработчики ограничивали длину пароля 8 символами и считали, что этого выше крыши, то сейчас такие системы могут быть вскрыты максимум за 125 дней.

Примерная скорость полного перебора для различных систем приведена в таблице (в расчете на тактовую частоту процессора 1 ГГц).

Как видно из таблицы, .arj — наиболее слабая на предмет взлома система. Используемый алгоритм (простое гаммирование) не позволяет достичь полной избыточности текста, в зашифрованном файле появляется некоторая неслучайная информация — таблица Хаффмана и некоторые служебные данные. Поэтому, точно зная или предполагая с некой долей вероятности значение этих данных, можно с той же вероятностью определить некоторые символы пароля. Если хакеру известен хотя бы один файл из зашифрованного архива, он с легкостью определит пароль. В противном же случае атака полным перебором обеспечит ему все шансы на успех, учитывая большую скорость перебора паролей.

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

Оказывается, что человек подсознательно склонен применять в паролях буквы, которые он чаще всего употребляет (буквы из имени любимого хомячка, например :-)). Как правило, пароль начинается с согласной буквы, причем мужчины чаще всего применяют буквы К, М и П, а женщины Т, М и С. Цифры, применяемые при придумывании пароля, также связаны с чем-либо значимым для пользователя (дата рождения, например). Но вообще-то в серьезных фирмах пароли никогда не придумываются пользователями, а генерируются администратором по защите данных с помощью специальных программ.

Однако вернемся в то время, когда вычислительных мощностей для атаки полным перебором не хватало. Тогда был широко распространен метод атаки по словарю. Если исходить из того, что пользователь использует в качестве пароля осмысленную информацию (имена, дату рождения), а в языке не более 100 тыс. слов, то перебор займет весьма небольшое время. Таким образом может быть подобрано от 40 до 80% всех существующих паролей. Вспомним хотя бы вирус Морриса, который на сутки парализовал всю структуру Интернета — его создателем еще в 1988 (!!!) году был применен такой способ. Как известно, последний руководствовался следующими наблюдениями:

в качестве пароля берется имя пользователя;

пароль представляет собой двойной повтор имени пользователя;

то же, но прочитанное справа налево;

то же, но в верхнем/нижнем регистре;

в качестве пароля используются непечатные слова;

Фантазия человека по придумыванию паролей оказалась очень бедной…

Конечно, все понимают, что пользоваться такими паролями нельзя, но пока за компьютером работает человек, дождаться использования таких простых и радующих душу любого админа паролей типа EzX54J@:SK|\68/W не удастся.

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

Рекомендуем ещё прочитать:






Данную страницу никто не комментировал. Вы можете стать первым.

Ваше имя:
Ваша почта:

RSS
Комментарий:
Введите символы или вычислите пример: *
captcha
Обновить





Хостинг на серверах в Украине, США и Германии. © www.sector.biz.ua 2006-2015 design by Vadim Popov