Реферат: Почему криптосистемы ненадежны?
•
Security Page
Почему криптосистемы ненадежны?
Павел Семьянов, Центр Защиты Информации СПбГТУ
В современном программном обеспечении (ПО) криптоалгоритмы широко применяются не только для задач шифрования данных, но и для аутентификации и проверки целостности. На сегодняшний день существуют хорошо известные и апробированные криптоалгоритмы (как с симметричными, так и несимметричными ключами), криптостойкость которых либо доказана математически, либо основана на необходимости решения математически сложной задачи (факторизации, дискретного логарифмирования и т.п.). К наиболее известным из них относятся DES, ГОСТ, RSA. Таким образом, они не могут быть вскрыты иначе, чем полным перебором или решением указанной задачи.
С другой стороны, в компьютерном и околокомпьютерном мире все время появляется информация об ошибках или "дырах" в той или иной программе (в т.ч. применяющей криптоалгоритмы), или о том, что она была взломана (cracked ). Это создает недоверие как к конкретным программам, так и к возможности вообще защитить что-либо криптографичеcкими методами не только от спецслужб, но и от простых хакеров.
Поэтому знание истории атак и "дыр" в криптосистемах, а также понимание причин, по которым они имели место, является одним из необходимых условий разработки защищенных систем. Перспективным направлением исследований в этой области является анализ успешно проведенных атак или выявленных уязвимостей в криптосистемах с целью их обобщения, классификации и выявления причин и закономерностей их появления и существования. Это и будет являться задачей данной статьи.
По аналогии с таксономией причин нарушения безопасности ВС [1 ], выделим следующие причины ненадежности криптографических программ (см. рис. 1):
1. Невозможность применения стойких криптоалгоритмов ;
2. Ошибки в реализации криптоалгоритмов ;
3. Неправильное применение криптоалгоритмов ;
4. Человеческий фактор .
Отметим сразу, что рассматриваемые ниже причины покрывают только два вида потенциально возможных угроз: раскрытия и целостности , оставляя в стороне угрозу отказа в обслуживании , которая приобретает все большее значение по мере развития распределенных криптосистем.
Рис. 1. Причины ненадежности криптосистем.
Невозможность применения стойких криптоалгоритмов
Эта группа причин является наиболее распространенной из-за следующих факторов.
Малая скорость стойких криптоалгоритмов
Это основной фактор, затрудняющий применение хороших алгоритмов в, например, системах "тотального" шифрования или шифрования "на лету". В частности, программа Norton DiskReet, хотя и имеет реализацию DES , при смене пользователем ключа может не перешифровывать весь диск, т.к. это займет слишком много времени. Аналогично, программа компрессии "на лету" Stacker фирмы Stac Electronics имеет опцию закрытия паролем компрессируемых данных. Однако она не имеет физической возможности зашифровать этим паролем свой файл, обычно имеющий размеры в несколько сот мегабайт, поэтому она ограничивается очень слабым алгоритмом и хранит хэш-функцию от пароля вместе с защищаемыми данными. Величина криптостойкости1 этой функции была исследована и оказалась равной 28 , т.е. пароль может быть вскрыт тривиально.
Экспортные ограничения
Это причина, связанная с экспортом криптоалгоритмов или с необходимостью приобретать патент или права на них. В частности, из США запрещен экспорт криптоалгоритмов с длиной ключа более 40 бит2 . Очевидно, что такая криптостойкость не может считаться надежной при современных вычислительных мощностях и даже на персональном компьютере, положив скорость перебора в 50 000 паролей/сек, получим время перебора в среднем порядка 4 месяцев.
Известные примеры программ, подверженных экспортным ограничениям - это последние версии броузеров (browser) Интернета, в частности Netscape Navigatorфирмы Netscape Communications и Internet Explorer фирмы Microsoft . Они предоставляют шифрование со 128-битным ключом для пользователей внутри США и с 40-битным ключом для всех остальных.
Также в эту группу попадает последняя версия архиватора ARJ 2.60, известного своим слабым алгоритмом шифрования архивов. Теперь пользователи внутри США могут использовать криптостойкий алгоритм ГОСТ. Комизм ситуации в том, что хотя этот алгоритм является российским, даже россияне по законам США все равно не могут воспользоваться им в программе ARJ.
Использование собственных криптоалгоритмов
Незнание или нежелание использовать известные алгоритмы - такая ситуация, как ни парадоксально, также имеет место быть, особенно в программах типа Freeware и Shareware, например, архиваторах.
Как уже говорилось, архиватор ARJ (до версии 2.60 включительно) использует (по умолчанию) очень слабый алгоритм шифрования - простое гаммирование. Казалось бы, что в данном случае использование его допустимо, т.к. архивированный текст должен быть совершенно неизбыточен и статистические методы криптоанализа здесь не подходят. Однако, после более детального изучения оказалось, что в архивированном тексте присутствует (и это оказывается справедливым для любых архиваторов) некоторая неслучайная информация - например, таблица Хаффмана и некоторая другая служебная информация. Поэтому, точно зная или предсказав с некоторой вероятностью значение этих служебных переменных, можно с той же вероятностью определить и соответствующие символы пароля.
Далее, использование слабых алгоритмов часто приводит к успеху атаки по открытому тексту . В случае архиватора ARJ, если злоумышленнику известен хотя бы один файл из зашифрованного архива, он с легкостью определит пароль архива и извлечет оттуда все остальные файлы (криптостойкость ARJ при наличии открытого текста - 20 !). Даже если ни одного файла в незашифрованном виде нет, то все равно простое гаммирование позволяет достичь скорости перебора в 350000 паролей/сек. на машине класса Pentium.
Аналогичная ситуация имеет место и в случае с популярными программами из Microsoft Office - для определения пароля там необходимо знать всего 16 байт файла .doc или .xls, после чего достаточно перебрать всего 24 вариантов. В Microsoft Office 97 сделаны значительные улучшения алгоритмов шифрования, в результате чего осталась возможность только полного перебора, но... не везде - MS Access 97 использует примитивнейший алгоритм, причем шифруются не данные, а сам пароль операцией XOR с фиксированной константой!
--> ЧИТАТЬ ПОЛНОСТЬЮ <--