Почему криптосистемы ненадежны?
| | | | |остаются без | | | | |
| | | | |изменений. | | | | |
| | | | |14-байтовая строка | | | | |
| | | | |разбивается на две | | | | |
| | | | |семибайтовых | | | | |
| | | | |половины. | | | | |
| | | | |Используя каждую | | | | |
| | | | |половину строки в | | | | |
| | | | |роли ключа DES, с ним| | | | |
| | | | |шифруется | | | | |
| | | | |фиксированная | | | | |
| | | | |константа, получая на| | | | |
| | | | |выходе две 8-байтовые| | | | |
| | | | |строки. | | | | |
| | | | |Эти строки сливаются | | | | |
| | | | |для создания | | | | |
| | | | |16-разрядного | | | | |
| | | | |значения хэш-функции.| | | | |
| | | | | | | | | |
| | | | |Очевидно, что атаки | | | | |
| | | | |на LM-хэш легко | | | | |
| | | | |достигают успеха по | | | | |
| | | | |следующим причинам: | | | | |
| | | | |Преобразование всех | | | | |
| | | | |символов в верхний | | | | |
| | | | |регистр ограничивает | | | | |
| | | | |и без того небольшое | | | | |
| | | | |число возможных | | | | |
| | | | |комбинаций для | | | | |
| | | | |каждого | | | | |
| | | | |(26+10+32=68). | | | | |
| | | | |Две семибайтовых | | | | |
| | | | |"половины" пароля | | | | |
| | | | |хэшируются независимо| | | | |
| | | | |друг от друга. Таким | | | | |
| | | | |образом, две половины| | | | |
| | | | |могут подбираться | | | | |
| | | | |перебором независимо | | | | |
| | | | |друг от друга, и | | | | |
| | | | |пароли, длина которых| | | | |
| | | | |превышает семь | | | | |
| | | | |символов, не сильнее,| | | | |
| | | | |чем пароли с длиной | | | | |
| | | | |семь символов. Таким | | | | |
| | | | |образом, для | | | | |
| | | | |гарантированного | | | | |
| | | | |нахождения пароля | | | | |
| | | | |необходимо перебрать | | | | |
| | | | |вместо 940+941+... | | | | |
| | | | |9414 ~4L1027 всего | | | | |
| | | | |лишь | | | | |
| | | | |2L(680+681+...+687) | | | | |
| | | | |~1L1013 (т.е. почти в| | | | |
| | | | |1014 раз меньше) | | | | |
| | | | |комбинаций. Кроме | | | | |
| | | | |того, те пароли, | | | | |
| | | | |длина которых не | | | | |
| | | | |превышает семь | | | | |
| | | | |символов, очень | | | | |
| | | | |просто распознать, | | | | |
| | | | |поскольку вторая | | | | |
| | | | |половина хэша будет | | | | |
| | | | |одним и тем же | | | | |
| | | | |значением | | | | |
| | | | |AAD3B435B51404EE, | | | | |
| | | | |получаемой при | | | | |
| | | | |шифровании | | | | |
| | | | |фиксированной | | | | |
| | | | |константы с помощью | | | | |
| | | | |ключа из семи нулей. | | | | |
| | | | | | | | | |
| | | | |Нет элемента | | | | |
| | | | |случайности (salt), | | | | |
| | | | |как это сделано в | | | | |
| | | | |crypt() - два | | | | |
| | | | |пользователя с | | | | |
| | | | |одинаковыми паролями | | | | |
| | | | |всегда будут иметь | | | | |
| | | | |одинаковые значения | | | | |
| | | | |хэш-функции. Таким | | | | |
| | | | |образом, можно | | | | |
| | | | |заранее составить | | | | |
| | | | |словарь хэшированных | | | | |
| | | | |паролей и | | | | |
| | | | |осуществлять поиск | | | | |
| | | | |неизвестного пароля в| | | | |
| | | | |нем. | | | | |
| | | | |Неправильная | | | | |
| | | | |реализация | | | | |
| | | | |криптоалгоритмов | | | | |
| | | | |Несмотря на то, что в| | | | |
| | | | |этом случае | | | | |
| | | | |применяются | | | | |
| | | | |криптостойкие или | | | | |
| | | | |сертифицированные | | | | |
| | | | |алгоритмы, эта группа| | | | |
| | | | |причин приводит к | | | | |
| | | | |нарушениям | | | | |
| | | | |безопасности | | | | |
| | | | |криптосистем из-за их| | | | |
| | | | |неправильной | | | | |
| | | | |реализации. | | | | |
| | | | |Уменьшение | | | | |
| | | | |криптостойкости при | | | | |
| | | | |генерации ключа | | | | |
| | | | |Эта причина с весьма | | | | |
| | | | |многочисленными | | | | |
| | | | |примерами, когда | | | | |
| | | | |криптосистема либо | | | | |
| | | | |обрезает пароль | | | | |
| | | | |пользователя, либо | | | | |
| | | | |генерирует из него | | | | |
| | | | |данные, имеющие | | | | |
| | | | |меньшее количество | | | | |
| | | | |бит, чем сам пароль. | | | | |
| | | | |Примеры: | | | | |
| | | | |Во многих (старых) | | | | |
| | | | |версиях UNIX пароль | | | | |
| | | | |пользователя | | | | |
| | | | |обрезается до 8 байт | | | | |
| | | | |перед хэшированием. | | | | |
| | | | |Любопытно, что, | | | | |
| | | | |например, Linux 2.0, | | | | |
| | | | |требуя от | | | | |
| | | | |пользователей ввода | | | | |
| | | | |паролей, содержащих | | | | |
| | | | |обязательно буквы и | | | | |
| | | | |цифры, не проверяет, | | | | |
| | | | |чтобы 8-символьное | | | | |
| | | | |начало пароля также | | | | |
| | | | |состояло из букв и | | | | |
| | | | |цифр. Поэтому | | | | |
| | | | |пользователь, задав, | | | | |
| | | | |например, достаточно | | | | |
| | | | |надежный пароль | | | | |
| | | | |passwordIsgood19, | | | | |
| | | | |будет весьма удивлен,| | | | |
| | | | |узнав, что хакер | | | | |
| | | | |вошел в систему под | | | | |
| | | | |его именем с помощью | | | | |
| | | | |элементарного пароля | | | | |
| | | | |password. | | | | |
| | | | |Novell Netware | | | | |
| | | | |позволяет | | | | |
| | | | |пользователям иметь | | | | |
| | | | |пароли до 128 байт, | | | | |
| | | | |что дает (считая | | | | |
| | | | |латинские буквы без | | | | |
| | | | |учета регистра, цифры| | | | |
| | | | |и спецсимволы) 68128 | | | | |
| | | | |~2779 комбинаций. Но | | | | |
| | | | |при этом, во-первых, | | | | |
| | | | |хэш-функция (см. | | | | |
| | | | |выше) получает на | | | | |
| | | | |входе всего лишь | | | | |
| | | | |32-байтовое значение,| | | | |
| | | | |что ограничивает | | | | |
| | | | |эффективную длину | | | | |
| | | | |пароля этой же | | | | |
| | | | |величиной. Более | | | | |
| | | | |того, во-вторых, на | | | | |
| | | | |выходе хэш-значение | | | | |
| | | | |имеет длину всего 128| | | | |
| | | | |бит, что | | | | |
| | | | |соответствует 2128 | | | | |
| | | | |комбинаций. Это | | | | |
| | | | |дополнительно снижает| | | | |
| | | | |эффективную длину до | | | | |
| | | | |[pic]=21 символа3, | | | | |
| | | | |т.е. в 6 раз по | | | | |
| | | | |сравнению с | | | | |
| | | | |первоначальной. | | | | |
| | | | |Полностью аналогичная| | | | |
| | | | |ситуация происходит с| | | | |
| | | | |архиватором RAR | | | | |
| | | | |версий 1.5x - выбор | | | | |
| | | | |пароля больше 10 | | | | |
| | | | |символов не приводит | | | | |
| | | | |к росту времени, | | | | |
| | | | |необходимого на его | | | | |
| | | | |вскрытие. | | | | |
| | | | |Если длина пароля | | | | |
| | | | |"сверху" в этом | | | | |
| | | | |случае определяется | | | | |
| | | | |реализацией | | | | |
| | | | |криптоалгоритмов, то | | | | |
| | | | |ограничение на длину | | | | |
| | | | |"снизу" уже связано с| | | | |
| | | | |понятием единицы | | | | |
| | | | |информации или | | | | |
| | | | |энтропии. В | | | | |
| | | | |рассмотренном примере| | | | |
| | | | |с Novell Netware для | | | | |
| | | | |создания хэш-значения| | | | |
| | | | |с энтропией 128 бит | | | | |
| | | | |длина пароля должна | | | | |
| | | | |быть не менее | | | | |
| | | | |[pic]=69 бит4 или не | | | | |
| | | | |менее 22 символов5. | | | | |
| | | | |То, что многие | | | | |
| | | | |криптосистемы не | | | | |
| | | | |ограничивают | | | | |
| | | | |минимальную длину | | | | |
| | | | |пароля, как раз и | | | | |
| | | | |приводит к успеху | | | | |
| | | | |атак перебором не | | | | |
| | | | |ключей, а паролей. | | | | |
| | | | |Отсутствие проверки | | | | |
| | | | |на слабые ключи | | | | |
| | | | |Некоторые | | | | |
| | | | |криптоалгоритмы (в | | | | |
| | | | |частности, DES, IDEA)| | | | |
| | | | |при шифровании со | | | | |
| | | | |специфическими | | | | |
| | | | |ключами не могут | | | | |
| | | | |обеспечить должный | | | | |
| | | | |уровень | | | | |
| | | | |криптостойкости. | | | | |
| | | | |Такие ключи называют | | | | |
| | | | |слабыми (weak). Для | | | | |
| | | | |DES известно 4 слабых| | | | |
| | | | |и 12 полуслабых | | | | |
| | | | |(semi-weak) ключей. И| | | | |
| | | | |хотя вероятность | | | | |
| | | | |попасть в них | | | | |
| | | | |равняется | | | | |
| | | | |[pic]~2L10-16, для | | | | |
| | | | |серьезных | | | | |
| | | | |криптографических | | | | |
| | | | |систем пренебрегать | | | | |
| | | | |ей нельзя. | | | | |
| | | | |Мощность множества | | | | |
| | | | |слабых ключей IDEA | | | | |
| | | | |составляет не много -| | | | |
| | | | |не мало - 251 | | | | |
| | | | |(впрочем, из-за того,| | | | |
| | | | |что всего ключей | | | | |
| | | | |2128, вероятность | | | | |
| | | | |попасть в него в | | | | |
| | | | |3L107 раз меньше, чем| | | | |
| | | | |у DES). | | | | |
| | | | |Недостаточная | | | | |
| | | | |защищенность от РПС | | | | |
| | | | |РПС (разрушающие | | | | |
| | | | |программные средства)| | | | |
| | | | |- это компьютерные | | | | |
| | | | |вирусы, троянских | | | | |
| | | | |кони, программные | | | | |
| | | | |закладки и т.п. | | | | |
| | | | |программы, способные | | | | |
| | | | |перехватить секретный| | | | |
| | | | |ключ или сами | | | | |
| | | | |нешифрованные данные,| | | | |
| | | | |а также просто | | | | |
| | | | |подменить алгоритм на| | | | |
| | | | |некриптостойкий. В | | | | |
| | | | |случае, если | | | | |
| | | | |программист не | | | | |
| | | | |предусмотрел | | | | |
| | | | |достаточных способов | | | | |
| | | | |защиты от РПС, они | | | | |
| | | | |легко способны | | | | |
| | | | |нарушить безопасность| | | | |
| | | | |криптосистемы. | | | | |
| | | | |Особенно это | | | | |
| | | | |актуально для | | | | |
| | | | |операционных систем, | | | | |
| | | | |не имеющих встроенных| | | | |
| | | | |средств защиты или | | | | |
| | | | |средств разграничения| | | | |
| | | | |доступа - типа MS DOS| | | | |
| | | | |или Windows 95: | | | | |
| | | | |Перехват пароля. Как | | | | |
| | | | |пример можно привести| | | | |
| | | | |самый старый способ | | | | |
| | | | |похищения пароля, | | | | |
| | | | |известный еще со | | | | |
| | | | |времен больших ЭВМ, | | | | |
| | | | |когда | | | | |
| | | | |программа-"фантом" | | | | |
| | | | |эмулирует приглашение| | | | |
| | | | |ОС, предлагая ввести | | | | |
| | | | |имя пользователя и | | | | |
| | | | |пароль, запоминает | | | | |
| | | | |его в некотором файле| | | | |
| | | | |и прекращает работу с| | | | |
| | | | |сообщением "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. | | | | |
| | | | |Наличие зависимости | | | | |
| | | | |во времени обработки | | | | |
| | | | |ключей | | | | |
| | | | |Это сравнительно | | | | |
| | | | |новый аспект | | | | |
| | | | |недостаточно | | | | |
| | | | |корректной реализации| | | | |
| | | | |криптоалгоритмов, | | | | |
| | | | |рассмотренный в | | | | |
| | | | |статье [2]. Там | | | | |
| | | | |показано, что многие | | | | |
| | | | |криптосистемы | | | | |
| | | | |неодинаково быстро | | | | |
| | | | |обрабатывают разные | | | | |
| | | | |входные данные. Это | | | | |
| | | | |происходит как из-за | | | | |
| | | | |аппаратных (разное | | | | |
| | | | |количество тактов на | | | | |
| | | | |операцию, попадание в| | | | |
| | | | |процессорный кэш и | | | | |
| | | | |т.п.), так и | | | | |
| | | | |программных причин | | | | |
| | | | |(особенно при | | | | |
| | | | |оптимизации программы| | | | |
| | | | |по времени). Время | | | | |
| | | | |может зависеть как от| | | | |
| | | | |ключа шифрования, так| | | | |
| | | | |и (рас)шифруемых | | | | |
| | | | |данных. | | | | |
| | | | |Поэтому | | | | |
| | | | |злоумышленник, | | | | |
| | | | |обладая детальной | | | | |
| | | | |информацией о | | | | |
| | | | |реализации | | | | |
| | | | |криптоалгоритма, имея| | | | |
| | | | |зашифрованные данные,| | | | |
| | | | |и будучи способным | | | | |
| | | | |каким-то образом | | | | |
| | | | |измерять время | | | | |
| | | | |обработки этих данных| | | | |
| | | | |(например, анализируя| | | | |
| | | | |время отправки | | | | |
| | | | |пакетов с данными), | | | | |
| | | | |может попытаться | | | | |
| | | | |подобрать секретный | | | | |
| | | | |ключ. В работе | | | | |
| | | | |подробно описывается | | | | |
| | | | |тактика атак на | | | | |
| | | | |системы, реализующие | | | | |
| | | | |алгоритмы RSA, | | | | |
| | | | |Диффи-Хеллмана и DSS,| | | | |
| | | | |причем ключ можно | | | | |
| | | | |получать, уточняя бит| | | | |
| | | | |за битом, а | | | | |
| | | | |количество | | | | |
| | | | |необходимых измерений| | | | |
| | | | |времени прямо | | | | |
| | | | |пропорционально длине| | | | |
| | | | |ключа. | | | | |
| | | | |И хотя пока не | | | | |
| | | | |удалось довести эти | | | | |
| | | | |исследования до | | | | |
| | | | |конкретного | | | | |
| | | | |результата (вычислить| | | | |
| | | | |секретный ключ), этот| | | | |
| | | | |пример показывает, | | | | |
| | | | |что программирование | | | | |
| | | | |систем критического | | | | |
| | | | |назначения (в т.ч. и | | | | |
| | | | |криптосистем) должно | | | | |
| | | | |быть особенно | | | | |
| | | | |тщательным и, | | | | |
| | | | |возможно, для этого | | | | |
| | | | |необходимо применять | | | | |
| | | | |особые защитные | | | | |
| | | | |методы | | | | |
| | | | |программирования и | | | | |
| | | | |специализированные | | | | |
| | | | |средства разработки | | | | |
| | | | |(особенно | | | | |
| | | | |компиляторы). | | | | |
| | | | |Ошибки в программной | | | | |
| | | | |реализации | | | | |
| | | | |Ясно, что пока | | | | |
| | | | |программы будут | | | | |
| | | | |писаться людьми, этот| | | | |
| | | | |фактор всегда будет | | | | |
| | | | |иметь место. Хороший | | | | |
| | | | |пример - ОС Novell | | | | |
| | | | |Netware 3.12, где, | | | | |
| | | | |несмотря на | | | | |
| | | | |достаточно | | | | |
| | | | |продуманную систему | | | | |
| | | | |аутентификации, при | | | | |
| | | | |которой, по | | | | |
| | | | |заявлениям фирмы | | | | |
| | | | |Novell, | | | | |
| | | | |"нешифрованный пароль| | | | |
| | | | |никогда не передается| | | | |
| | | | |по сети", удалось | | | | |
| | | | |найти ошибку в | | | | |
| | | | |программе SYSCON v. | | | | |
| | | | |3.76, при которой | | | | |
| | | | |пароль именно в | | | | |
| | | | |открытом виде | | | | |
| | | | |попадает в один из | | | | |
| | | | |сетевых пакетов. | | | | |
| | | | |Этого не наблюдается | | | | |
| | | | |ни с более ранними, | | | | |
| | | | |ни с более поздними | | | | |
| | | | |версиями этой | | | | |
| | | | |программы, что | | | | |
| | | | |позволяет говорить | | | | |
| | | | |именно о чисто | | | | |
| | | | |программистской | | | | |
| | | | |ошибке. Этот ошибка | | | | |
| | | | |проявляется только | | | | |
| | | | |если супервизор | | | | |
| | | | |меняет пароль | | | | |
| | | | |кому-либо (в том | | | | |
| | | | |числе и себе). | | | | |
| | | | |Видимо, каким-то | | | | |
| | | | |образом в сетевой | | | | |
| | | | |пакет попадает | | | | |
| | | | |клавиатурный буфер. | | | | |
| | | | |Наличие люков | | | | |
| | | | |Причины наличия люков| | | | |
| | | | |в криптосистемах | | | | |
| | | | |очевидны: разработчик| | | | |
| | | | |хочет иметь контроль | | | | |
| | | | |над обрабатываемой в | | | | |
| | | | |его системе | | | | |
| | | | |информацией и | | | | |
| | | | |оставляет для себя | | | | |
| | | | |возможность | | | | |
| | | | |расшифровывать ее, не| | | | |
| | | | |зная ключа | | | | |
| | | | |пользователя. | | | | |
| | | | |Возможно также, что | | | | |
| | | | |они используются для | | | | |
| | | | |отладки и по какой-то| | | | |
| | | | |причине не убираются | | | | |
| | | | |из конечного | | | | |
Страницы: 1, 2, 3, 4
|