Почему криптосистемы ненадежны п семьянов
В современном программном обеспечении (ПО) криптоалгоритмы широко применяются не только для задач шифрования данных, но и для аутентификации и проверки целостности. На сегодняшний день существуют хорошо известные и апробированные криптоалгоритмы (как с симметричными, так и несимметричными ключами), криптостойкость которых либо доказана математически, либо основана на необходимости решения математически сложной задачи (факторизации, дискретного логарифмирования и т.п.). К наиболее известным из них относятся DES , RSA. Таким образом, они не могут быть вскрыты иначе, чем полным перебором или решением указанной задачи.
С другой стороны, в компьютерном и околокомпьютерном мире все время появляется информация об ошибках или «дырах» в той или иной программе (в т.ч. применяющей криптоалгоритмы), или о том, что она была взломана ( cracked ). Это создает недоверие как к конкретным программам, так и к возможности вообще защитить что-либо криптографичеcкими методами не только от спецслужб, но и от простых хакеров.
Поэтому знание истории атак и «дыр» в криптосистемах, а также понимание причин, по которым они имели место, является одним из необходимых условий разработки защищенных систем. Перспективным направлением исследований в этой области является анализ успешно проведенных атак или выявленных уязвимостей в криптосистемах с целью их обобщения, классификации и выявления причин и закономерностей их появления и существования. Это и будет являться задачей данной статьи.
По аналогии с таксономией причин нарушения безопасности ВС [1], выделим следующие причины ненадежности криптографических программ (см. рис. 1):
- Невозможность применения стойких криптоалгоритмов;
- Ошибки в реализации криптоалгоритмов;
- Неправильное применение криптоалгоритмов;
- Человеческий фактор.
- Пароль превращается в 14-символьную строку путем либо отсечки болеет длинных паролей, либо дополнения коротких паролей нулевыми элементами.
- Все символы нижнего регистра заменяются на символы верхнего регистра. Цифры и специальные символы остаются без изменений.
- 14-байтовая строка разбивается на две семибайтовых половины.
- Используя каждую половину строки в роли ключа DES, с ним шифруется фиксированная константа, получая на выходе две 8-байтовые строки.
- Эти строки сливаются для создания 16-разрядного значения хэш-функции.
- Преобразование всех символов в верхний регистр ограничивает и без того небольшое число возможных комбинаций для каждого (26+10+32=68).
- Две семибайтовых «половины» пароля хэшируются независимо друг от друга. Таким образом, две половины могут подбираться перебором независимо друг от друга, и пароли, длина которых превышает семь символов, не сильнее, чем пароли с длиной семь символов. Таким образом, для гарантированного нахождения пароля необходимо перебрать вместо 94 0 +94 1 +. 94 14 ~4^10 27 всего лишь 2^(68 0 +68 1 +. +68 7 ) ~1^10 13 (т.е. почти в 10 14 раз меньше) комбинаций. Кроме того, те пароли, длина которых не превышает семь символов, очень просто распознать, поскольку вторая половина хэша будет одним и тем же значением AAD3B435B51404EE , получаемой при шифровании фиксированной константы с помощью ключа из семи нулей.
- Нет элемента случайности (salt) , как это сделано в crypt() — два пользователя с одинаковыми паролями всегда будут иметь одинаковые значения хэш-функции. Таким образом, можно заранее составить словарь хэшированных паролей и осуществлять поиск неизвестного пароля в нем.
- Во многих (старых) версиях UNIX пароль пользователя обрезается до 8 байт перед хэшированием. Любопытно, что, например, Linux 2.0 , требуя от пользователей ввода паролей, содержащих обязательно буквы и цифры, не проверяет, чтобы 8-символьное начало пароля также состояло из букв и цифр. Поэтому пользователь, задав, например, достаточно надежный пароль passwordIsgood19 , будет весьма удивлен, узнав, что хакер вошел в систему под его именем с помощью элементарного пароля password .
- Novell Netware позволяет пользователям иметь пароли до 128 байт, что дает (считая латинские буквы без учета регистра, цифры и спецсимволы) 68 128 ~2 779 комбинаций. Но при этом, во-первых, хэш-функция (см. выше) получает на входе всего лишь 32-байтовое значение, что ограничивает эффективную длину пароля этой же величиной. Более того, во-вторых, на выходе хэш-значение имеет длину всего 128 бит, что соответствует 2 128 комбинаций. Это дополнительно снижает эффективную длину до =21 символа 3 , т.е. в 6 раз по сравнению с первоначальной.
- Полностью аналогичная ситуация происходит с архиватором RAR версий 1.5x — выбор пароля больше 10 символов не приводит к росту времени, необходимого на его вскрытие.
- Перехват пароля. Как пример можно привести самый старый способ похищения пароля, известный еще со времен больших ЭВМ, когда программа-«фантом» эмулирует приглашение ОС, предлагая ввести имя пользователя и пароль, запоминает его в некотором файле и прекращает работу с сообщением «Invalid password» . Для MS DOS и Windows существует множество закладок для чтения и сохранения паролей, набираемых на клавиатуре (через перехват соответствующего прерывания), например, при работе утилиты Diskreet v. 6.0.
- Подмена криптоалгоритма. Примером реализации этого случая является закладка, маскируемая под прикладную программу-«ускоритель» типа Turbo Krypton . Эта закладка заменяет алгоритм шифрования ГОСТ 28147-89, реализуемой платой «Krypton-3» (демонстрационный вариант), другим, простым и легко дешифруемым алгоритмом [1].
- Троянский конь в электронной почте. Последним примером служит имевшие место в июне 1998 года попытки проникновения троянского коня через электронную почту. В письмо были вложены порнографическая картинка и EXE-файл FREECD.EXE, который за то время, пока пользователь развлекался с письмом, расшифровывал пароли на соединение с провайдером (Dial-Up) и отправлял их на адрес ispp@usa.net.
- была возможность перехватить пакеты, передаваемые по сети; и
- был доступ ( account ) на компьютер, где запущена программа,
- некоторые алгоритмы могут работать с переменной длиной ключа, обеспечивая разную криптостойкость — и именно задача разработчика выбрать необходимую длину, исходя из желаемой криптостойкости и эффективности. Иногда на это желание накладываются и иные обстоятельства — такие, как экспортные ограничения.
- некоторые алгоритмы разрабатывались весьма давно, когда длина используемого в них ключа считалась более чем достаточной для соблюдения нужного уровня защиты.
- в качестве пароля берется входное им пользователя;
- пароль представляет собой двойной повтор имени пользователя;
- то же, но прочитанное справа налево;
- имя или фамилия пользователя;
- то же, но в нижнем регистре.
- Цель и тематика публикаций
- Аудитория
- Индексирование
- Подписка
- Текущий номер
- Архив номеров
Отметим сразу, что рассматриваемые ниже причины покрывают только два вида потенциально возможных угроз: раскрытия и целостности , оставляя в стороне угрозу отказа в обслуживании , которая приобретает все большее значение по мере развития распределенных криптосистем.
Эта группа причин является наиболее распространенной из-за следующих факторов.
Малая скорость стойких криптоалгоритмов
Это основной фактор, затрудняющий применение хороших алгоритмов в, например, системах «тотального» шифрования или шифрования «на лету». В частности, программа Norton DiskReet , хотя и имеет реализацию DES , при смене пользователем ключа может не перешифровывать весь диск, т.к. это займет слишком много времени. Аналогично, программа компрессии «на лету» Stacker фирмы Stac Electronics имеет опцию закрытия паролем компрессируемых данных. Однако она не имеет физической возможности зашифровать этим паролем свой файл, обычно имеющий размеры в несколько сот мегабайт, поэтому она ограничивается очень слабым алгоритмом и хранит хэш-функцию от пароля вместе с защищаемыми данными. Величина криптостойкости 1 этой функции была исследована и оказалась равной 2 8 , т.е. пароль может быть вскрыт тривиально.
Экспортные ограничения
Это причина, связанная с экспортом криптоалгоритмов или с необходимостью приобретать патент или права на них. В частности, из США запрещен экспорт криптоалгоритмов с длиной ключа более 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 при наличии открытого текста — 2 0 !). Даже если ни одного файла в незашифрованном виде нет, то все равно простое гаммирование позволяет достичь скорости перебора в 350000 паролей/сек. на машине класса Pentium.
Аналогичная ситуация имеет место и в случае с популярными программами из Microsoft Office — для определения пароля там необходимо знать всего 16 байт файла .doc или .xls , после чего достаточно перебрать всего 2 4 вариантов. В Microsoft Office 97 сделаны значительные улучшения алгоритмов шифрования, в результате чего осталась возможность только полного перебора, но. не везде — MS Access 97 использует примитивнейший алгоритм, причем шифруются не данные, а сам пароль операцией XOR с фиксированной константой!
В сетевой ОС Novell Netware фирмы Novell (версии 3.х и 4.х) также применяется собственный алгоритм хэширования . На входе хэш-функция получает 32-байтовое значение, полученное из оригинального пароля пользователя путем либо сжатия пароля длиной более 32 символов с помощью операции XOR, либо размножением пароля длиной менее 32 символов; а на выходе — 16-байтовое хэш-значение ( Hash16 ). Именно оно (для Novell Netware 3.х) хранится в базе данных связок (bindery) в виде свойства «PASSWORD» .
Одним из основных свойств криптостойкой хэш-функции должно быть то, что она не должна допускать легкого построения коллизий (таковой, например, является функция crypt(), используемая в UNIX, которая основана на DES). Именно это свойство нарушено в хэш-функции, применяемой в Novell Netware.
Была построена процедура , которая из данного хэш-значения путем небольшого перебора (несколько секунд на машине класса 80486DX2-66) получает 32-байтовую последовательность, которая, конечно, не является истинным паролем, но тем не менее воспринимается Novell Netware как таковой, т.к. применение к ней хэш-алгоритма, выдает в точности имеющееся хэш-значение.
Рассмотренный хэш-алгоритм остался и в 4 версии Novell Netware.
В свою очередь, фирма Microsoft также имеет серьезнейшие недостатки в своем основном хэш-алгоритме, применяемом во всех своих ОС, начиная с Windows 3.11, при аутентификации в локальных (протокол NetBIOS) и глобальных (протоколы CIFS и http) сетях, называемым LM (Lan Manager)-хэш [4]. (Впрочем, Microsoft ссылается на то, что он остался еще со времен OS/2 и что его разрабатывала IBM).
Он вычисляется следующим образом:
Очевидно, что атаки на LM-хэш легко достигают успеха по следующим причинам:
Несмотря на то, что в этом случае применяются криптостойкие или сертифицированные алгоритмы, эта группа причин приводит к нарушениям безопасности криптосистем из-за их неправильной реализации.
Уменьшение криптостойкости при генерации ключа
Эта причина с весьма многочисленными примерами, когда криптосистема либо обрезает пароль пользователя, либо генерирует из него данные, имеющие меньшее количество бит, чем сам пароль. Примеры:
Если длина пароля «сверху» в этом случае определяется реализацией криптоалгоритмов, то ограничение на длину «снизу» уже связано с понятием единицы информации или энтропии. В рассмотренном примере с Novell Netware для создания хэш-значения с энтропией 128 бит длина пароля должна быть не менее =69 бит 4 или не менее 22 символов 5 . То, что многие криптосистемы не ограничивают минимальную длину пароля, как раз и приводит к успеху атак перебором не ключей, а паролей.
Отсутствие проверки на слабые ключи
Некоторые криптоалгоритмы (в частности, DES, IDEA) при шифровании со специфическими ключами не могут обеспечить должный уровень криптостойкости. Такие ключи называют слабыми (weak). Для DES известно 4 слабых и 12 полуслабых (semi-weak) ключей. И хотя вероятность попасть в них равняется ~2^10 -16 , для серьезных криптографических систем пренебрегать ей нельзя.
Мощность множества слабых ключей IDEA составляет не много — не мало — 2 51 (впрочем, из-за того, что всего ключей 2 128 , вероятность попасть в него в 3^10 7 раз меньше, чем у DES).
Недостаточная защищенность от РПС
РПС (разрушающие программные средства) — это компьютерные вирусы, троянских кони, программные закладки и т.п. программы, способные перехватить секретный ключ или сами нешифрованные данные, а также просто подменить алгоритм на некриптостойкий. В случае, если программист не предусмотрел достаточных способов защиты от РПС, они легко способны нарушить безопасность криптосистемы. Особенно это актуально для операционных систем, не имеющих встроенных средств защиты или средств разграничения доступа — типа MS DOS или Windows 95:
Наличие зависимости во времени обработки ключей
Это сравнительно новый аспект недостаточно корректной реализации криптоалгоритмов, рассмотренный в статье [2]. Там показано, что многие криптосистемы неодинаково быстро обрабатывают разные входные данные. Это происходит как из-за аппаратных (разное количество тактов на операцию, попадание в процессорный кэш и т.п.), так и программных причин (особенно при оптимизации программы по времени). Время может зависеть как от ключа шифрования, так и (рас)шифруемых данных.
Поэтому злоумышленник, обладая детальной информацией о реализации криптоалгоритма, имея зашифрованные данные, и будучи способным каким-то образом измерять время обработки этих данных (например, анализируя время отправки пакетов с данными), может попытаться подобрать секретный ключ. В работе подробно описывается тактика атак на системы, реализующие алгоритмы RSA, Диффи-Хеллмана и DSS, причем ключ можно получать, уточняя бит за битом, а количество необходимых измерений времени прямо пропорционально длине ключа.
И хотя пока не удалось довести эти исследования до конкретного результата (вычислить секретный ключ), этот пример показывает, что программирование систем критического назначения (в т.ч. и криптосистем) должно быть особенно тщательным и, возможно, для этого необходимо применять особые защитные методы программирования и специализированные средства разработки (особенно компиляторы).
Ошибки в программной реализации
Ясно, что пока программы будут писаться людьми, этот фактор всегда будет иметь место. Хороший пример — ОС Novell Netware 3.12, где, несмотря на достаточно продуманную систему аутентификации, при которой, по заявлениям фирмы Novell , «нешифрованный пароль никогда не передается по сети» , удалось найти ошибку в программе SYSCON v. 3.76, при которой пароль именно в открытом виде попадает в один из сетевых пакетов. Этого не наблюдается ни с более ранними, ни с более поздними версиями этой программы, что позволяет говорить именно о чисто программистской ошибке. Этот ошибка проявляется только если супервизор меняет пароль кому-либо (в том числе и себе). Видимо, каким-то образом в сетевой пакет попадает клавиатурный буфер.
Наличие люков
Причины наличия люков в криптосистемах очевидны: разработчик хочет иметь контроль над обрабатываемой в его системе информацией и оставляет для себя возможность расшифровывать ее, не зная ключа пользователя. Возможно также, что они используются для отладки и по какой-то причине не убираются из конечного продукта. Естественно, что это рано или поздно становится известным достаточно большому кругу лиц и ценность такой криптосистемы становится почти нулевой. Самыми известными примерами здесь являются AWARD BIOS (до версии 4.51PG) с его универсальным паролем » AWARD_SW» и СУБД Paradox фирмы Borland Internationa l , также имеющая «суперпароли» » jIGGAe» и » nx66ppx» .
Вплотную к наличию люков в реализации (очевидно, что в этом случае они используют явно нестойкие алгоритмы или хранят ключ вместе с данными) примыкают алгоритмы, дающие возможность третьему лицу читать зашифрованное сообщение, как это сделано в нашумевшем проекте CLIPPER , где третьим лицом выступает государство, всегда любящее совать нос в тайны своих граждан.
Недостатки датчика случайных чисел (ДСЧ)
Хороший, математически проверенный и корректно реализованный ДСЧ также важен для криптосистемы, как и хороший, математически стойкий и корректный криптоалгоритм, иначе его недостатки могут повлиять на общую криптостойкость системы. При этом для моделирования ДСЧ на ЭВМ обычно применяют датчики псевдослучайных чисел (ПСЧ), характеризующиеся периодом, разбросом, а также необходимостью его инициализации ( seed ). Применение ПСЧ для криптосистем вообще нельзя признать удачным решением, поэтому хорошие криптосистемы применяют для этих целей физический ДСЧ (специальную плату), или, по крайней мере, вырабатывают число для инициализации ПСЧ с помощью физических величин (например, времени нажатия на клавиши пользователем).
Малый период и плохой разброс относятся к математическим недостаткам ДСЧ и появляются в том случае, если по каким-то причинам выбирается собственный ДСЧ. Иначе говоря, выбор собственного ДСЧ так же опасен, как и выбор собственного криптоалгоритма.
В случае малого периода (когда псевдослучайных значений, вырабатываемых датчиком, меньше, чем возможных значений ключа) злоумышленник может сократить время поиска ключа, перебирая не сами ключи, а псевдослучайные значения и генерируя из них ключи.
При плохом разбросе датчика злоумышленник также может уменьшить среднее время поиска, если начнет перебор с самых вероятных значений псевдослучайных чисел.
Самой распространенной ошибкой, проявляющейся и в случае хорошего ПСЧ, является его неправильная инициализация . В этом случае число, используемое для инициализации, имеет либо меньшее число бит информации, чем сам датчик, либо вычисляется из неслучайных чисел и может быть предсказано стой или иной степенью вероятности.
Такая ситуация имела место в программе Netscape Navigator версии 1.1. Она инициализировала ПСЧ, используя текущее время в секундах ( sec ) и микросекундах ( usec ), а также идентификаторы процесса ( pid и ppid ). Как выяснили исследователи Я. Голдберг и Д. Вагнер, при такой схеме как максимум получалось 47 значащих бит информации (при том, что этот датчик использовался для получения 40- или 128 (!)-битных ключей). Но, если у злоумышленника
то для него не составляло труда с большой степенью вероятности узнать sec , pid и ppid . Если условие (2) не удовлетворялось, то злоумышленник все равно мог попытаться установить время через сетевые демоны time , pid мог бы быть получен через демон SMTP (обычно он входит в поле Message-ID ), а ppid либо не сильно отличается от pid , либо вообще равен 1.
Исследователи написали программу unssl , которая, перебирая микросекунды, находила секретный 40-битный ключ в среднем за минуту.
Эта группа причин приводит к тому, что оказывается ненадежными криптостойкие и корректно реализованные алгоритмы.
Малая длина ключа
Это самая очевидная причина. Возникает вопрос: как стойкие криптоалгоритмы могут иметь малую длину ключа? Видимо, вследствие двух факторов:
С резким скачком производительности вычислительной техники сначала столкнулся алгоритм RSA, для вскрытия которого необходимо решать задачу факторизации. В марте 1994 была закончена длившаяся в течение 8 месяцев факторизация числа из 129 цифр (428 бит 6 ). Для этого было задействовано 600 добровольцев и 1600 машин, связанных посредством электронной почты. Затраченное машинное время было эквивалентно примерно 5000 MIPS-лет 7 .
Прогресс в решении проблемы факторизации во многом связан не только с ростом вычислительных мощностей, но и с появлением в последнее время новых эффективных алгоритмов. (На факторизацию следующего числа из 130 цифр ушло всего 500 MIPS-лет). На сегодняшний день в принципе реально факторизовать 512-битные числа. Если вспомнить, что такие числа еще недавно использовались в программе PGP , то можно утверждать, что это самая быстро развивающаяся область криптографии и теории чисел.
29 января 1997 фирмой RSA Labs был объявлен конкурс на вскрытие симметричного алгоритма RC5. 40-битный ключ был вскрыт через 3.5 часа после начала конкурса! (Для этого даже не потребовалась связывать компьютеры через Интернет — хватило локальной сети из 250 машин в Берклевском университете). Через 313 часов был вскрыт и 48-битный ключ . Таким образом, всем стало очевидно, что длина ключа, удовлетворяющая экспортным ограничениям, не может обеспечить даже минимальной надежности.
Параллельно со вскрытием RC5 был дан вызов и столпу американской криптографии — алгоритму DES, имеющему ключ в 56 бит. И он пал 17 июня 1997 года, через 140 дней после начала конкурса (при этом было протестировано около 25% всех возможных ключей и затрачено примерно 450 MIPS-лет). Это было безусловно выдающееся достижение, которое означало фактическую смерть DES как стандарта шифрования. И действительно, когда в начала 1998 года следующее соревнование по нахождению ключа DES привело к успеху всего за 39 дней, национальный институт стандартов США (NIST) объявил конкурс на утверждение нового стандарта AES (Advanced Encryption Standard). AES должен быть полностью открытым симметричным алгоритмом с ключом размером 128, 192, 256 бит и блоком шифрования размером 128 бит.
Ошибочный выбор класса алгоритма
Это также весьма распространенная причина, при которой разработчик выбирает пусть и хороший, но совершенно неподходящий к его задаче алгоритм. Чаще всего это выбор шифрования вместо хэширования или выбор симметричного алгоритма вместо алгоритма с открытыми ключами.
Примеров здесь масса — это почти все программы, ограничивающие доступ к компьютеру паролем при его включении или загрузке, например, AMI BIOS, хранящий вместо хэша пароля его зашифрованный вариант, который, естественно, легко дешифруется.
Во всех сетевых процедурах аутентификации естественно применять ассиметричную криптографию, которая не позволит подобрать ключ даже при полном перехвате трафика. Однако такие алгоритмы (из сетевых OC) пока реализует только Novell Netware 4.x, остальные же довольствуются (в лучшем случае!) стандартной схемой «запрос-отклик», при которой можно вести достаточно быстрый перебор по перехваченным значениям «запроса» и «отклика».
Повторное наложение гаммы шифра
Уже классическим примером стала уязвимость в Windows 3.x и первых версиях Windows 95, связанная с шифрованием. В этом случае программисты фирмы Microsoft, хорошо известные своими знаниями в области безопасности, применяли алгоритм RC4 (представляющем собой ни что иное, как шифрование гаммированием), не меняя гаммы, несколько раз к разным данным — сетевым ресурсам, хранящимся в файлах типа .pwl .
Оказалось, что один из наборов данных файла .pwl представлял из себя более чем специфичный текст — 20-символьное имя пользователя (в верхнем регистре) и набор указателей на ресурсы (см. рис. 2). Таким образом, угадав им пользователя (которое в большинстве случаев к тому же совпадает с именем файла) можно вычислить по крайней мере 20 байт гаммы. Т.к. гамма не меняется при шифровании других ресурсов (в этом состоит основная ошибка применения RC4 в этом случае), могут быть вычислены первые 20 байт всех ресурсов, в которые входит длина каждого из них. Вычислив длину, можно найти значения указателей и тем самым прибавить еще несколько десятков байт к угаданной гамме. Этот алгоритм реализован в известной программе glide .
Рис. 2. Формат файла .PWL.
Хранение ключа вместе с данными
Эта причина приводит к тому, что данные, зашифрованные с помощью криптостойкого и корректно реализованного алгоритма, могут быть легко дешифрованы. Это связано со спецификой решаемой задачи, при которой невозможно вводить ключ извне и он хранится где-то внутри в практически незашифрованном виде. Иначе говоря, здесь наиболее уязвимым будет алгоритм шифрования не ключом, а ключа (с помощью некоего вторичного ключа). Но так как (что опять-таки очевидно следует из специфики задачи) этот вторичный ключ хранить извне нельзя, то основные данные рано или поздно будут расшифрованы без использования методов перебора.
Типичным примером здесь будут все WWW-, ftp-, e-mail-клиенты. Дело в том, что для базовой (наиболее часто встречающейся) аутентификации в этих протоколах пароль должен передаваться серверу в открытом виде. Поэтому клиентские программы вынуждены шифровать (а не хэшировать) пароль, причем с фиксированным ключом, чтобы не надоедать пользователю постоянными вопросами. Отсюда следует, что где-то внутри любого броузера, почтового или ftp-клиента (будь то Netscape Communicator, Eudora, Outlook, FAR и т.п.) лежат все ваши пароли в практически открытом виде, и что расшифровать их не представляет труда. (Чаще всего, кстати, пароль в таких программах даже не шифруется, а кодируется алгоритмом типа base-64).
В любой критической системе ошибки человека-оператора являются чуть ли не самыми дорогостоящими и распространенными. В случае криптосистем непрофессиональные действия пользователя сводят на нет самый стойкий криптоалгоритм и самую корректную его реализацию и применение.
В первую очередь это связано с выбором паролей. Очевидно, что короткие или осмысленные пароли легко запоминаются человеком, но они гораздо проще для вскрытия. Использование длинных и бессмысленных паролей безусловно лучше с точки зрения криптостойкости, но человек обычно не может их запомнить и записывает на бумажке, которая потом либо теряется, либо попадает в руки злоумышленнику.
В последние годы много внимания уделяется разрешению этого противоречия, но рекомендации по выбору хороших паролей выходят за рамки этой статьи.
Именно из того, что неискушенные пользователи обычно выбирают либо короткие, либо осмысленные пароли, существуют два метода их вскрытия: атака полным перебором и атака по словарю .
С связи с резким ростом вычислительных мощностей атаки полным перебором имеют гораздо больше шансов на успех, чем раньше (см. также » Малая длина ключа «). Если для системы UNIX функция crypt(), которая отвечает за хэширование паролей, была реализована так, что выполнялась почти 1 секунду на машину класса PDP, то за двадцать лет скорость ее вычисления увеличилась в 15000 раз (!). Поэтому если раньше хакеры (и разработчики, которые ограничили длину пароля 8 символами) и представить себе не могли полный перебор, то сегодня такая атака в среднем приведет к успеху за 80 дней 8 . Скорость перебора паролей для различных криптосистем приведена в табл. 1.
Однако вернемся на несколько лет назад, когда вычислительной мощности для полного перебора всех паролей не хватало. Тем не менее, хакерами был придуман остроумный метод, основанный на том, что качестве пароля человеком выбирается существующее слово или какая-либо информация о себе или своих знакомых (имя, дата рождения и т. п.). Ну, а поскольку в любом языке не более 100000 слов, то их перебор займет весьма небольшое время, и от 40 до 80% существующих паролей может быть угадано с помощью такой простой схемы, называемой «атакой по словарю». (Кстати, до 80% этих паролей может быть угадано с использованием словаря размером всего 1000 слов!). Даже вирус Морриса (в 1988 г.!) применял такой способ, тем более что в UNIX «под рукой» часто оказывается файл-словарь, обычно используемый программами-корректорами. Что же касается «собственных» паролей, то файл /etc/passwd может дать немало информации о пользователе: его входное имя, имя и фамилию, домашний каталог. Вирус Морриса с успехом пользовался следующими предположениями [3]:
Пусть сегодня пользователи уже понимают, что выбирать такие пароли нельзя, но до тех пор, пока с компьютером работает человек 9 , эксперты по компьютерной безопасности не дождутся использования таких простых и радующих душу паролей, как 34jXs5U@bTa!6 . Поэтому даже искушенный пользователь хитрит и выбирает такие пароли, как hope1, user1997, pAsSwOrD, toor, roottoor, parol, gfhjkm, asxz . Видно, что все они, как правило, базируются на осмысленном слове и некотором простом правиле его преобразования: прибавить цифру, прибавить год, перевести через букву в другой регистр, записать слово наоборот, прибавить записанное наоборот слово, записать русское слово латинскими буквами, набрать русское слово на клавиатуре с латинской раскладкой, составить пароль из рядом расположенных на клавиатуре клавиш и т. п.
Поэтому не надо удивляться, если такой «хитрый» пароль будет вскрыт хакерами — они не глупее самих пользователей, и уже вставили в свои программы те правила, по которым может идти преобразование слов. В самых продвинутых программах ( John The Ripper , Password Cracking Library ) эти правила могут быть программируемыми и задаваться с помощью специального языка самим хакером.
Приведем пример эффективности такой стратегии перебора. Во многих книгах по безопасности предлагается выбирать в качестве надежного пароля два осмысленных слова, разделенных некоторым знаком, например «good!password» . Подсчитаем, за сколько времени в среднем будут сломаны такие пароли, если такое правило включено в набор программы-взломщика (пусть словарь 10000 слов, разделительными знаками могут быть 10 цифр и 32 знака препинания и специальных символа, машина класса Pentium со скоростью 15000 crypt/сек):=140 000 секунд или менее 1.5 дней!
С момента начала написания этой статьи в 1996 году положение в применении средств криптографии в прикладных программах бесспорно меняется в лучшую сторону. Постепенно разработчики осознают необходимость применения зарекомендовавших себя алгоритмов, сдвигаются с мертвой точки позиции некоторых стран в вопросе экспорта криптоалгоритмов, разрабатываются новые алгоритмы и стандарты с большей длиной ключа и эффективностью для реализации на всех типах процессоров, от 8-битных до RISC.
Тем не менее, остается огромная пропасть между уровнем стойкости и надежности существующего сейчас ПО, применяющего криптоалгоритмы, в котором до сих пор находятся «детские» дыры (последний пример — реализация PPTP от Microsoft [4]) и тем уровнем криптостойкости, который демонстрируют последние, независимо проанализированные ведущими криптоаналитиками алгоритмы и протоколы, где серьезной уязвимостью считается, например, та, что требует 2 65 блоков шифрованного текста и затем 2 58 перебора вариантов или одного открытого текста, зашифрованного 2 33 разными, но зависимыми друг от друга ключами и затем сложности анализа, равного 2 57 [5].
Хочется надеяться, что будущие реализации и применение этих алгоритмов сохранят столь высокую степень их надежности.
Можно выделить 4 основных группы причин ненадежности криптографических систем: применение нестойких алгоритмов, неправильная реализация или применение криптоалгоритмов, а также человеческий фактор. При этом видна четкая параллель между ними и причинами нарушения безопасности вычислительных систем.
Из-за описанных причин имелись или имеются проблемы в безопасности у всех классов программных продуктов, использующие криптоалгоритмы, будь то операционные системы; криптопротоколы; клиенты и сервера, их поддерживающие; офисные программы; пользовательские утилиты шифрования; популярные архиваторы.
Для того, чтобы грамотно реализовать собственную криптосистему, необходимо не только ознакомится с ошибками других и понять причины, по которым они произошли, но и, возможно, применять особые защитные приемы программирования и специализированные средства разработки.
1 Под криптостойкостью здесь и далее будет пониматься количество вариантов для нахождения ключа перебором.
2 Это было до недавнего времени. Сейчас — 56 бит.
3 [ ] — целая часть (ближайшее целое снизу).
4 ] [ — ближайшее целое сверху.
5 Ясно, что и здесь и в примере выше получаются одни и те же числа, но за счет округления в разные стороны оказывается разница в 1 символ.
6 что приблизительно соответствует 56 битам для симметричных алгоритмов.
7 миллион инструкций в секунду в течении года.
8 Используя специальные платы или распараллеливание, это время можно уменьшить на несколько порядков.
1. Теория и практика обеспечения информационной безопасности. Под редакцией Зегжды П.Д. — М., Яхтсмен, 1996.
3. Mark W. Eichin, Jon A. Rochils. With Microscope and Tweezers: An Analysis of the Internet virus of November 1988.
5. Eli Biham, Lars R. Knudsen. Cryptanalysis of the ANSI X9.52 CBCM Mode. Proceedings of Eurocrypt’98 .
Баpичев Сеpгей. Kpиптогpафия без секpетов.
Bruce Schneier. Why Cryptography Is Harder Than It Looks
Заключение
Подводя итог, можно сказать, что любой алгоритм шифрования, кроме одноразового блокнота и других доказано стойких шифров, является потенциально нестойким. Многократное использование одного и того же ключа оставляет некоторый «след» в шифруемых сообщениях. С помощью статистики и алгебры можно выделить данный след, и на его основе сделать предположение о самом ключе.
Тем не менее, при настоящем уровне вычислительной техники, современные алгоритмы шифрования являются достаточно стойкими. Чтобы избежать утечки информации, необходимо только правильно использовать данные алгоритмы. Это подразумевает достаточно частую смену ключей, использование достаточно длинных и случайных ключей, правильно реализовывать сам алгоритм и тд. Отсюда следует, что вопросами обеспечения безопасности должны заниматься квалифицированные специалисты в данной области.
Литература
1 М. А. Асосков и др. Поточные шифры / Асосков А.В., Иванов М.А., Мирский А.А., Рузин А.В., Сланин А.В., Тютвин А.Н. — М.: Кудиц-образ, 1983.
2 Ю.Е. Пудовченко, Пределы роста [Электронный ресурс]/Ю. Е. Пудовченко, режим доступа: http://ssl.stu.neva.ru/psw/crypto.html
3 П. Семьянов Почему криптосистемы ненадежны? [Электронный ресурс]/П. Семьянов, — режим доступа: http://ssl.stu.neva.ru/psw/publications/crypto.html
4 А. Винокуров, Задачи решаемые криптографическими методами [Электронный ресурс] / А. Винокуров, — режим доступа: http://www.enlight.ru/ib/tech/crypto/part2.htm
5 А.В. Лунин, А.А. Сальников, Перспективы развития и использования асимметричных алгоритмов в криптографии [Электронный ресурс]/А.В. Лунин, А.А. Сальников, — режим доступа: http://ssl.stu.neva.ru/psw/crypto/Lunin24.html
6 Клод Шеннон, Работы по теории информации и кибернетике / К. Шенон, — М., ИЛ, 1963, с. 333-369 (Перевод В.Ф.Писаренко).
7 Брюс Шнайер, Ханаанский бальзам [Электронный ресурс] / Б. Шнайер, — режим доступа: http://www.password-crackers.ru/articles/30/#_ftn1.
8 С.П. Панасенко, Современные методы вскрытия алгоритмов шифрования, часть 1 [Электронный ресурс] / С.П. Панасенко — режим доступа: http://old.cio-world.ru/it-market/community/291719/page2.html
9 Брюс Шнайер, Прикладная криптография: Протоколы, алгоритмы, исходные тексты на языке Си [ Б. Шнайер, — Триумф, 2002 — 816 с.
Симметричные криптосистемы. Криптосистема Фейстеля
Криптография является методологической основой современных систем обеспечения безопасности информации в компьютерных системах и сетях. Исторически криптография (в переводе с греческого этот термин означает «тайнопись») зародилась как способ скрытой передачи сообщений. Криптография представляет собой совокупность методов преобразования данных, направленных на то, чтобы защитить эти данные, сделав их бесполезными для незаконных пользователей. Такие преобразования обеспечивают решение трех главных проблем защиты данных: гарантию конфиденциальности, целостности и подлинности передаваемых или сохраняемых данных. Для обеспечения безопасности данных необходимо поддерживать три основные функции:
− защиту конфиденциальности передаваемых или хранимых в памяти данных;
− подтверждение целостности и подлинности данных;
− аутентификацию абонентов при входе в систему и при установлении соединения.
Для реализации указанных функций используются криптографические технологии шифрования, цифровой подписи и аутентификации. Конфиденциальность обеспечивается с помощью алгоритмов и методов симметричного и асимметричного шифрования, а также путем взаимной аутентификации абонентов на основе многоразовых и одноразовых паролей, цифровых сертификатов, смарт-карт и т.п.
Целостность и подлинность передаваемых данных обычно достигается с помощью различных вариантов технологии электронной подписи, основанных на односторонних функциях и асимметричных методах шифрования. Аутентификация разрешает устанавливать соединения только между легальными пользователями и предотвращает доступ к средствам сети нежелательных лиц. Абонентам, доказавшим свою легальность (аутентичность), предоставляются разрешенные виды сетевого обслуживания. Основой большинства криптографических средств защиты информации является шифрование данных.
Под шифром понимают совокупность процедур и правил криптографических преобразований, используемых для зашифровывания и дешифрования информации по ключу шифрования. Под зашифровыванием информации понимается процесс преобразования открытой информации (исходного текста) в зашифрованный текст (шифротекст). Процесс восстановления исходного текста по криптограмме с использованием ключа дешифрования называют дешифрованием (расшифровыванием).
Алгоритмы шифрования/дешифрования обычно не являются секретными и публикуются открыто или почти открыто в специальной литературе. Основную нагрузку по защите информации методами шифрования несут ключи. Администрирование ключей призвано придать им необходимые свойства и обеспечить нормальное функционирование на всех стадиях жизни (использования) ключей. Стадиями жизни ключей являются:
− генерация или формирование;
− верификация и аутентификация;
− ликвидация или утилизация [1].
Рис. 1 Классификация криптографических алгоритмов защиты информации
Преобразование шифрования может быть симметричным или асимметричным относительно преобразования дешифрования. Соответственно, различают два основных класса криптосистем:
1) симметричные криптосистемы;
2) асимметричные криптосистемы [1].
Ниже рассмотрим более детально симметричные криптосистемы, а в частности криптосистему Фейстеля.
1. Исторически первыми появились симметричные криптографические системы. Симметричные криптосистемы (также симметричное шифрование, симметричные шифры) — способ шифрования, в котором для шифрования и расшифровывания применяется один и тот же криптографический ключ. До изобретения схемы асимметричного шифрования единственным существовавшим способом являлось симметричное шифрование. Ключ алгоритма должен сохраняться в секрете обеими сторонами. Алгоритм шифрования выбирается сторонами до начала обмена сообщениями. Симметричные криптосистемы называют еще одно ключевыми криптографическими системами или криптосистемами с закрытым ключом [2].
Данные криптосистемы (рис.2) характеризуются наиболее высокой скоростью шифрования, и с их помощью обеспечивается как конфиденциальность и подлинность, так и целостность передаваемой информации.
Рис. 2. Схема симметричной криптосистемы шифрования
Конфиденциальность передачи информации с помощью симметричной криптосистемы зависит от надежности шифра и обеспечения конфиденциальности ключа шифрования. Обычно ключ шифрования представляет собой файл или массив данных и хранится на персональном ключевом носителе, например дискете или смарт-карте; обязательно принятие мер, обеспечивающих недоступность персонального ключевого носителя кому-либо, кроме его владельца.
Подлинность обеспечивается за счет того, что без предварительного расшифровывания практически невозможно осуществить смысловую модификацию и подлог криптографически закрытого сообщения. Фальшивое сообщение не может быть правильно зашифровано без знания секретного ключа.
Целостность данных обеспечивается присоединением к передаваемым данным специального кода (имитовставки), вырабатываемого по секретному ключу. Имитовставка является разновидностью контрольной суммы, то есть некоторой эталонной характеристикой сообщения, по которой осуществляется проверка целостности последнего. Алгоритм формирования имитовставки должен обеспечивать ее зависимость по некоторому сложному криптографическому закону от каждого бита сообщения. Проверка целостности сообщения выполняется получателем сообщения путем выработки по секретному ключу имитовставки, соответствующей полученному сообщению, и ее сравнения с полученным значением имитовставки. При совпадении делается вывод о том, что информация не была модифицирована на пути от отправителя к получателю.
Симметричное шифрование идеально подходит в случае шифрования информации «для себя», например, с целью предотвратить несанкционированный доступ к ней в отсутствие владельца. Это может быть как архивное шифрование выбранных файлов, так и прозрачное (автоматическое) шифрование целых логических или физических дисков.
Обладая высокой скоростью шифрования, одноключевые криптосистемы позволяют решать многие важные задачи защиты информации. Однако автономное использование симметричных криптосистем в компьютерных сетях порождает проблему распределения ключей шифрования между пользователями.
Перед началом обмена зашифрованными данными необходимо обменяться секретными ключами со всеми адресатами. Передача секретного ключа симметричной криптосистемы не может быть осуществлена по общедоступным каналам связи, секретный ключ надо передавать отправителю и получателю по защищенному каналу.
Существуют реализации алгоритмов симметричного шифрования для абонентского шифрования данных – то есть для отправки шифрованной информации абоненту, например, через Интернет. Использование одного ключа для всех абонентов подобной криптографической сети недопустимо по соображениям безопасности. Действительно, в случае компрометации (утери, хищения) ключа, под угрозой будет находиться документооборот всех абонентов [1].
2. Пример реализации симметричной криптосистемы, достоинства и недостатки
Задача. Есть два собеседника — Алиса и Боб, они хотят обмениваться конфиденциальной информацией.
Боб (или Алиса) выбирает ключ шифрования и алгоритм (функции шифрования и расшифрования), затем посылает эту информацию Алисе (Бобу).
· Шифрование и передача сообщения.
Алиса шифрует информацию с использованием полученного ключа .
И передает Бобу полученный шифротекст . То же самое делает Боб, если хочет отправить Алисе сообщение.
Боб (Алиса), с помощью того же ключа , расшифровывает шифротекст .
Недостатками симметричного шифрования является проблема передачи ключа собеседнику и невозможность установить подлинность или авторство текста. Поэтому, например, в основе технологии цифровой подписи лежат асимметричные схемы [3,4].
Таким образом, выделим основные преимущества и недостатки симметричной криптосистемы.
Достоинства
· скорость (по данным Applied Cryptography — на 3 порядка выше);
· простота реализации (за счёт более простых операций);
· меньшая требуемая длина ключа для сопоставимой стойкости;
· изученность (за счёт большего возраста).
· сложность управления ключами в большой сети. Означает квадратичное возрастание числа пар ключей, которые надо генерировать, передавать, хранить и уничтожать в сети. Для сети в 10 абонентов требуется 45 ключей, для 100 уже 4950, для 1000 — 499500 и т. д.;
· сложность обмена ключами. Для применения необходимо решить проблему надёжной передачи ключей каждому абоненту, так как нужен секретный канал для передачи каждого ключа обеим сторонам [3].
Для компенсации недостатков симметричного шифрования в настоящее время широко применяется комбинированная (гибридная) криптографическая схема, где с помощью асимметричного шифрования передаётся сеансовый ключ, используемый сторонами для обмена данными с помощью симметричного шифрования.
Важным свойством симметричных шифров является невозможность их использования для подтверждения авторства, так как ключ известен каждой стороне.
3. Криптосистема Фейстеля
В настоящее время симметричные шифры — это:
— блочные шифры. Обрабатывают информацию блоками определённой длины (обычно 64, 128 бит), применяя к блоку ключ в установленном порядке, как правило, несколькими циклами перемешивания и подстановки, называемыми раундами. Результатом повторения раундов является лавинный эффект — нарастающая потеря соответствия битов между блоками открытых и зашифрованных данных.
— поточные шифры, в которых шифрование проводится над каждым битом либо байтом исходного (открытого) текста с использованием гаммирования. Поточный шифр может быть легко создан на основе блочного (например, ГОСТ 28147-89 в режиме гаммирования), запущенного в специальном режиме.
Большинство симметричных шифров используют сложную комбинацию большого количества подстановок и перестановок. Многие такие шифры исполняются в несколько (иногда до 80) проходов, используя на каждом проходе «ключ прохода». Множество «ключей прохода» для всех проходов называется «расписанием ключей» . Как правило, оно создается из ключа выполнением над ним неких операций, в том числе перестановок и подстановок [5].
Типичным способом построения алгоритмов симметричного шифрования является сеть Фейстеля. Алгоритм строит схему шифрования на основе функции F(D, K), где D — порция данных, размером вдвое меньше блока шифрования, а K — «ключ прохода» для данного прохода. От функции не требуется обратимость — обратная ей функция может быть неизвестна. Достоинства сети Фейстеля — почти полное совпадение дешифровки с шифрованием (единственное отличие — обратный порядок «ключей прохода» в расписании), что сильно облегчает аппаратную реализацию.
Операция перестановки перемешивает биты сообщения по некоему закону. В аппаратных реализациях она тривиально реализуется как перепутывание проводников. Именно операции перестановки дают возможность достижения «эффекта лавины». Операция перестановки линейна — f(a) xor f(b) == f(a xor b)
Операции подстановки выполняются как замена значения некоей части сообщения (часто в 4, 6 или 8 бит) на стандартное, жестко встроенное в алгоритм иное число путем обращения к константному массиву. Операция подстановки привносит в алгоритм нелинейность.
Зачастую стойкость алгоритма, особенно к дифференциальному криптоанализу, зависит от выбора значений в таблицах подстановки (S-блоках). Как минимум считается нежелательным наличие неподвижных элементов S(x) = x, а также отсутствие влияния какого-то бита входного байта на какой-то бит результата — то есть случаи, когда бит результата одинаков для всех пар входных слов, отличающихся только в данном бите [2].
Положение в применении средств криптографии в прикладных программах бесспорно меняется в лучшую сторону. Постепенно разработчики осознают необходимость применения зарекомендовавших себя алгоритмов, сдвигаются с мертвой точки позиции некоторых стран в вопросе экспорта криптоалгоритмов, разрабатываются новые алгоритмы и стандарты с большей длиной ключа и эффективностью для реализации на всех типах процессоров, от 8-битных до RISC.
Тем не менее, остается огромная пропасть между уровнем стойкости и надежности существующего сейчас ПО, применяющего криптоалгоритмы, в котором до сих пор находятся «детские» дыры и тем уровнем криптостойкости, который демонстрируют последние, независимо проанализированные ведущими криптоаналитиками алгоритмы и протоколы.
Хочется надеяться, что будущие реализации и применение этих алгоритмов сохранят столь высокую степень их надежности.
В заключение стоит заметить, что шифрование информации не является панацеей. Его следует рассматривать лишь как один из методов защиты информации и применять обязательно в сочетании с законодательными, организационными и другими мерами.
СПИСОК ИСПОЛЬЗУЕМОЙ ЛИТЕРАТУРЫ
1. Интернет–ресурс/ [http://monetcom.eu/joomla/webcontent/courses/ISTU/IS/IS_Lec6_ru.pdf]
2. Интернет–ресурс/ [http://ru.wikipedia.org/wiki/%D0%A1%D0%B8%D0%BC%D0%BC%D0%B5%D1%82%D1%80%D0%B8%D1%87%D0%BD%D1%8B%D0%B5_%D0%BA%D1%80%D0%B8%D0%BF%D1%82%D0%BE%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D1%8B]
3. Интернет–ресурс/ [http://ru.wikipedia.org/wiki/%D0%A8%D0%B8%D1%84%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5#.D0.A1.D0.B8.D0.BC.D0.BC.D0.B5.D1.82.D1.80.D0.B8.D1.87.D0.BD.D0.BE.D0.B5_.D1.88.D0.B8.D1.84.D1.80.D0.BE.D0.B2.D0.B0.D0.BD.D0.B8.D0.B5]
4. Семьянов П.: Почему криптосистемы ненадежны? / П. Семьянов.
Режим доступа: [http: // www.password-crackers.ru/articles/15/ ].
5. Степанов И.:Шифровать, шифровать и еще раз шифровать / И. Степанов. Режим доступа: [http://www.connect.ru/article.asp?id=5113].
Просмотрено: 0%
Просмотрено: 0%
Рабочие листы к Вашему уроку:
Рабочие листы
к вашим урокам
Краткое описание документа:
ВВЕДЕНИЕ Криптография является методологической основой современных систем обеспечения безопасности информации в компьютерных системах и сетях. Исторически криптография (в переводе с греческого этот термин означает «тайнопись») зародилась как способ скрытой передачи сообщений. Криптография представляет собой совокупность методов преобразования данных, направленных на то, чтобы защитить эти данные, сделав их бесполезными для незаконных пользователей. Такие преобразования обеспечивают решение трех главных проблем защиты данных: гарантию конфиденциальности, целостности и подлинности передаваемых или сохраняемых данных. Для обеспечения безопасности данных необходимо поддерживать три основные функции: − защиту конфиденциальности передаваемых или хранимых в памяти данных; − подтверждение целостности и подлинности данных; − аутентификацию абонентов при входе в систему и при установлении соединения. Для реализации указанных функций используются криптографические технологии шифрования, цифровой подписи и аутентификации. Конфиденциальность обеспечивается с помощью алгоритмов и методов симметричного и асимметричного шифрования, а также путем взаимной аутентификации абонентов на основе многоразовых и одноразовых паролей, цифровых сертификатов, смарт-карт и т.п. Целостность и подлинность передаваемых данных обычно достигается с помощью различных вариантов технологии электронной подписи, основанных на односторонних функциях и асимметричных методах шифрования. Аутентификация разрешает устанавливать соединения только между легальными пользователями и предотвращает доступ к средствам сети нежелательных лиц. Абонентам, доказавшим свою легальность (аутентичность), предоставляются разрешенные виды сетевого обслуживания. Основой большинства криптографических средств защиты информации является шифрование данных. Под шифром понимают совокупность процедур и правил криптографических преобразований, используемых для зашифровывания и дешифрования информации по ключу шифрования. Под зашифровыванием информации понимается процесс преобразования открытой информации (исходного текста) в зашифрованный текст (шифротекст). Процесс восстановления исходного текста по криптограмме с использованием ключа дешифрования называют дешифрованием (расшифровыванием). Алгоритмы шифрования/дешифрования обычно не являются секретными и публикуются открыто или почти открыто в специальной литературе. Основную нагрузку по защите информации методами шифрования несут ключи. Администрирование ключей призвано придать им необходимые свойства и обеспечить нормальное функционирование на всех стадиях жизни (использования) ключей. Стадиями жизни ключей являются: − генерация или формирование; − распределение; − верификация и аутентификация; − хранение; − использование; − модификация; − ликвидация или утилизация [1]. Рис. 1 Классификация криптографических алгоритмов защиты информации Преобразование шифрования может быть симметричным или асимметричным относительно преобразования дешифрования. Соответственно, различают два основных класса криптосистем: 1) симметричные криптосистемы; 2) асимметричные криптосистемы [1]. Ниже рассмотрим более детально симметричные криптосистемы, а в частности криптосистему Фейстеля. 1. Исторически первыми появились симметричные криптографические системы. Симметричные криптосистемы (также симметричное шифрование, симметричные шифры) — способ шифрования, в котором для шифрования и расшифровывания применяется один и тот же криптографический ключ. До изобретения схемы асимметричного шифрования единственным существовавшим способом являлось симметричное шифрование. Ключ алгоритма должен сохраняться в секрете обеими сторонами. Алгоритм шифрования выбирается сторонами до начала обмена сообщениями. Симметричные криптосистемы называют еще одно ключевыми криптографическими системами или криптосистемами с закрытым ключом [2]. Данные криптосистемы (рис.2) характеризуются наиболее высокой скоростью шифрования, и с их помощью обеспечивается как конфиденциальность и подлинность, так и целостность передаваемой информации. Рис. 2. Схема симметричной криптосистемы шифрования Конфиденциальность передачи информации с помощью симметричной криптосистемы зависит от надежности шифра и обеспечения конфиденциальности ключа шифрования. Обычно ключ шифрования представляет собой файл или массив данных и хранится на персональном ключевом носителе, например дискете или смарт-карте; обязательно принятие мер, обеспечивающих недоступность персонального ключевого носителя кому-либо, кроме его владельца. Подлинность обеспечивается за счет того, что без предварительного расшифровывания практически невозможно осуществить смысловую модификацию и подлог криптографически закрытого сообщения. Фальшивое сообщение не может быть правильно зашифровано без знания секретного ключа.
Почему криптосистемы ненадежны п семьянов
Ежеквартальный журнал издательства СПбПУ
под редакцией проф. Д. П. Зегжды
Санкт-Петербургский политехнический университет Петра Великого
Институт компьютерных наук и технологий.
Кафедра информационной безопасности компьютерных систем
Проблемы информационной безопасности. Компьютерные системы
Издается с 1999 года.
ISSN 2071-8217
Грушо А. А., Тимонина Е. Е.
Использование скрытых статистических каналов для атак и защиты информационных технологий
Зегжда П. Д., Ивашко А. М.
Моделирование информационной безопасности компьютерных систем
Парахин В. Н., Смирнов В. В.
Формальный подход к выбору механизмов безопасности для построения системы защиты информации автоматизированной СОИ
Корт С. С., Боковенко И. Н.
Язык описания политик безопасности
Андрианов В. В.
Принцип сложности в задачах обеспечения информационной безопасности
Зегжда П. Д.
Основные направления развития средств обеспечения информационной безопасности
Степанов П. Г.
Угрозы безопасности в корпоративных вычислительных системах
Козлов В. Н.
Информационная безопасность энергообъектов
Баранов А. П.
Обнаружение нарушителя на основе выявления аномалий. Формализация задачи
Паршин П. В., Лягин И. А., Николаев А. В., Чижухин Г. Н.
Программный инструментарий для автоматизированной верификации (сертификации) и анализа программного обеспечения
Отавин А. Д.
Объектный подход к обмену информацией в защищённых информационных системах
Першаков А. С.
Одна реализация алгоритма гарантированного исключения постоянного влияния на программную среду
Першаков А. С.
О возможности гарантированной защиты информации в недоверенной среде
Семьянов П. В.
Почему криптосистемы ненадёжны?
Терехов А. Н., Богданов В. Л.
Предложение по реализации основных криптографических алгоритмов в заказных кристаллах
Ростовцев А. Г., Буренкова А. П., Маховенко Е. Б.
О комплексном умножении на эллиптических кривых
Назаров А. Н., Симонов М. В., Пьянков В. М., Субботин А. А.
Особенности криптографической защиты в сетях АТМ
Зегжда П. Д.
Безопасные информационные системы на основе защищённой ОС
Зегжда Д. П., Ивашко А. М.
К созданию защищённых систем обработки информации
Зегжда Д. П.
Создание систем обработки закрытой информации на основе защищённой ОС и распространённых приложений
Зегжда П. Д., Фёдоров А. В.
К вопросу о реализации политики безопасности в операционной системе
Степанов П. Г.
Организация программного интерфейса в защищённых ОС
Платонов В. В., Ухлинов Л. М.
Обеспечение безопасности сетей, связанных с Internet
Заборовский В. С., Кирпичев В. Н., Королев Е. В.
Многофункциональный сетевой процессор для управления трафиком и разграничения доступа к информационным ресурсам в компьютерных сетях
Ададуров С. Е.
Модель многоприоритетного доступа в узел вычислительной сети
Вус М. А., Войтович Н. А.
От культа секретности к правовой информационной культуре
Аносов В. Д., Стрельцов А. А., Ухлинов Л. М.
О федеральной программе выявления и пресечения преступлений в сфере компьютерной информации
Белов Е. Б.
О государственном мониторинге качества образования специалистов по защите информации
Пашков Ю. Д., Мусакин Е. Ю.
Доказательный подход к построению защищённых автоматизированных систем
Паршуткин А. В.
Основы оптимизации стохастических воздействий на каналы утечки информации
Ивашко А. М.
Проблема доверия в технологии мобильных агентов
Семьянов П. В.
Безопасность против безопасности
Долгополов Н. М., Иванов С. М., Трифонов А. А.
Способ защиты информации на основе алгоритма самомодификации программного кода
Ерослаев Н. А., Кирюшкин С. А., Кустов В. Н.
Оценивание эффективности функционирования ситем защиты информации с учетом динамики процесса информационного противоборства
Маховенко Е. Б.
Выбор эллиптических кривых для процессорно-ориентированных криптосистем
Маховенко Е. Б., Ростовцев А. Г.
Быстрая арифметика для эллиптических кривых над расширенными полями
Ваулин А. Е., Кузнецов А. С., Карапетян С. Л.
Способы ввода информации в точку на эллиптической кривой над конечными полями и кольцами
Зегжда Д. П., Ивашко А. М.
Технология создания безопасных систем обработки информации на основе отечественной защищённой операционной системы
Лаптев В. С., Селезнев С. П., Шувалов М. Ю.
Система санкционированного доступа к ресурсам корпоративной информационной системы предприятия
Отавин А. Д.
Организация безопасного взаимодействия в IP сетях
Ададуров С. Е., Чатоян С. К., Зелинский А. Е.
Показатели устойчивости информационного обмена в защищенных телекоммуникационных системах
Яковлев В. А., Комашинский В. В.
Оптимизация параметров системы контроля несанкционированного доступа к защищенным волоконно-оптическим линиям связи
Сохен М. Ю., Кузнецов А. С., Паршуткин А. В.
Обобщенная модель аудита безопасности в информационно-вычислительных сетях и системах
Страницы 5-10
Просихин В. П.
Проектирование архитектуры безопасности распределённых систем на основе сети фреймов
Страницы 11-18
Гусенко М. Ю.
Технологичный способ модификации исполняемых модулей PE формата ОС Windows NT
Страницы 19-24
Молчанов Г. А.
Защита информации в системах с разграничением полномочий
Страницы 25-30
Кислов Р. И., Калинин М. О.
Подход к обеспечению высокой готовности распределенных систем баз данных с централизованным хранением
Страницы 31-36
Ростовцев А. Г.
О выборе эллиптической кривой над простым полем для построения криптографических алгоритмов
Страницы 37-40
Зегжда Д. П.
Использование микроядерной архитектуры для построения защищённой операционной системы
Страницы 41-52
Степанов П. Г.
Проблемы внедрения средств контроля доступа в распределённых вычислительных системах
Страницы 53-64
Заборовский В. С.
Протяженные стохастические и динамические процессы в компьютерных сетях: модели, методы анализа для систем защиты информации
Страницы 65-72
Ивашко А. М.
Основные угрозы безопасности в системах мобильных агентов
Страницы 73-79
Тараненко П. Г.
Модель оценки защищенности каналов связи при наличии алгоритмической энтропии кодовых слов
Страницы 80-84
Томилин В. Н.
Контроль безопасности корпоративной сети на основании обнаружения удалённых атак
Страницы 85-92
50 лет институту криптографии, связи и информатики
Страницы 93-98
Левчук С. А., Макаров С. Б., Мещеряков А. В., Уланов А. М., Шипицын А. А.
Применение шумоподобных сигналов в асинхронно-адресных системах радиоохраны объектов
Страницы 99-102
Терешков А. Е.
Обеспечение требуемого уровня доставки информации в контуре управления специальным космическим комплексом в условиях информационного противодействия
Страницы 103-106
Емельянов Г. В., Зегжда П. Д.
Некоторые проблемы информационной безопасности технологий 21 века
Расторгуев С. П.
К вопросу о формализации стратегии информационного противоборства
Баранов А. П.
Методология обнаружения вторжения в систему на основе выявления аномалий
Корт С. С.
Систематизация уязвимостей в защищённых вычислительных системах
Воробьев А. А., Ерослаев Н. А., Кирюшкин С. А.
Обеспечение безопасности информации в автоматизированных системах на основе комплексного исследования этапов жизненного цикла