Неверное использование алгоритмов шифрования

Неверное использование алгоритмов шифрования

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

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

Неверно организованный обмен ключами

Поскольку в алгоритме Диффи-Хеллмана не предусмотрена проверка подлинности участвующих в обмене ключами лиц, то он уязвим к атакам типа MITM – «злоумышленник посередине» (man-in-the-middle attacks). Протокол SSH-1 – наиболее известный пример, подтверждающий сказанное. Поскольку в протоколе не предусмотрено подтверждение подлинности клиента или сервера, то нельзя исключить возможность прослушивания коммуникаций. Именно это стало одной из главных причин пересмотра протокола SSH-1 и замены его на протокол SSH-2. В протоколе SSH-2 предусмотрено установление подлинности сервера или клиента. В зависимости от настроек протокола SSH-2 предупреждает или предотвращает атаки типа MITM, после того как клиент и сервер связались между собой хотя бы один раз. Но даже протокол SSH-2 уязвим к атакам типа MITM до первого ключевого обмена между клиентом и сервером.

В качестве примера атаки типа MITM рассмотрим следующую ситуацию. Пусть Алиса, используя алгоритм Диффи-Хеллмана, впервые обменивается ключами с Чарли, и их трафик проходит через сегмент сети, контролируемый Бобом. Если Боб не вмешался в обмен ключами, то он не сможет расшифровать и прочитать сообщения Алисы и Чарли, передаваемые через контролируемый им сегмент сети. Но предположим, что Боб, перехватив открытые ключи Алисы и Чарли, послал им свой собственный открытый ключ. Тогда Алиса будет уверена, что открытый ключ Боба – это открытый ключ Чарли, а Чарли будет думать, что открытый ключ Боба – это открытый ключ Алисы.

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

Ясно, что такой обмен нежелателен, потому что третье лицо не только может получить доступ к конфиденциальной информации, но и изменить ее по своему желанию. При этом типе атак криптографические алгоритмы не взламываются, потому что для Боба секретные ключи Алисы и Чарли остались неизвестными. Так что фактически алгоритм Диффи-Хеллмана не взломан. Следует осторожно подходить к использованию механизма обмена ключами, реализованному в любой криптосистеме с открытым ключом. Если протокол обмена ключами не поддерживает установления подлинности одной, а лучше двух сторон, участвующих в обмене информации, то он может быть уязвим к атаке типа MITM. В системах аутентификации используются цифровые сертификаты (обычно X.509 – стандарт на шифрование данных при их передаче в сетях), например поставляемые Thawte или VeriSign.

Кэширование пароля по частям

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

Так же как и в UNIX, пароли LANMAN никогда не хранятся в читаемом формате. Они всегда записаны в формате кэш-величин. Ошибка заключается в том, что, несмотря на использование для шифрования паролей криптостойкого алгоритма DES, формат хранения кэшированных величин таков, что его можно относительно просто вскрыть. Каждый пароль должен состоять из 14 символов. Если в пароле менее 14 символов, то он дополняется до 14 символов. При шифровании пароль разбивается на две половинки по 7 символов в каждой, каждая из которых зашифрована алгоритмом DES. Результирующая кэш-величина пароля состоит из двух соединенных половинок пароля, зашифрованных алгоритмом DES.

Поскольку известно, что DES – это криптостойкий алгоритм, то в чем ошибка реализации? Разве просто взломать алгоритм DES? Не все так просто. Вспомните, что существует приблизительно 100 символов, которые можно использовать для записи пароля. Выбирая пароли из 14 символов, получается около 100 14 или 1.0x10 28 возможных вариантов. Пароли LANMAN сильно упрощены, потому что в них прописные и строчные буквы не различаются: все символы представлены прописными буквами. Более того, если пароль состоит менее чем из 8 символов, то вторая половинка всегда идентична первой и нет необходимости в ее взломе. Если используются только буквы (без цифр и знаков пунктуации), то число всевозможных комбинаций пароля сокращается до 26 7 (грубо говоря, до 8 млрд). Это число может показаться слишком большим для атаки «грубой силы», но вспомните, что это теоретическая оценка наибольшего числа возможных комбинаций. А поскольку большинство паролей пользователей повторяются, то атака со словарем приведет к успеху быстрее. Суть в том, что атака со словарем на два пароля из 7 символов (или даже на один) приведет к взлому пароля намного быстрее, чем та же атака на пароль из 14 символов.

Предположим, что в процедуре кэширования паролей LANMAN используются сильные пароли из двух и более символов. К сожалению, среди пользователей распространена привычка добавлять в конец пароля дополнительные символы. Например, если пользователь добавит в строку чисел или символов свой день рождения, например «MONTANA45 %», то пароль безопаснее от этого не станет. LANMAN разобьет его на две строки: «MONTANA» и «45 %». Вероятно, и первая, и вторая строки будут быстро определены. Первая – в результате атаки со словарем, а вторая – атаки «грубой силы», потому что она состоит только из трех символов. Поэтому в операционных системах Windows NT и Windows 2000 следует по возможности исключить кэширование LANMAN, но при этом клиенты Win9x не смогут установить их подлинность.

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг:

9.3. Защита секретных данных с помощью шифрования

Из книги автора

9.3. Защита секретных данных с помощью шифрования Шифрование отдельных файлов и папокВ версиях Windows Vista Business, Enterprise и Ultimate вы можете применять шифрование конфиденциальных данных, основанное на возможностях файловой системы NTFS. В версиях Home Basic и Ноте Premium можно лишь


12.3.3 Примеры алгоритмов

Из книги автора

12.3.3 Примеры алгоритмов В данном разделе мы рассмотрим четыре алгоритма ядра, реализованных с использованием семафоров. Алгоритм выделения буфера иллюстрирует сложную схему блокирования, на примере алгоритма wait показана синхронизация выполнения процессов, схема


Протоколы шифрования и аутентификации в сети

Из книги автора

Протоколы шифрования и аутентификации в сети Почему безопасность работы в сети играет огромную роль? Ответ на этот вопрос достаточно простой: предприятие, на котором функционирует сеть, может в своей работе использовать разные документы и данные, предназначенные только


3.8.4 Конфиденциальность с помощью симметричного шифрования

Из книги автора

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


Глава 15 Использование шифрования BitLocker

Из книги автора

Глава 15 Использование шифрования BitLocker Безопасность работы всегда была на первом месте, и операционная система пыталась обеспечить ее всеми доступными средствами. Конечно, в первую очередь обеспечивалась безопасность самой операционной системы, поскольку от ее


Программы для шифрования почты

Из книги автора

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


Анализ алгоритмов

Из книги автора

Анализ алгоритмов Рассмотрим два возможных варианта поиска в массиве элемента "John Smith": последовательный поиск и бинарный поиск. Мы напишем код для обоих вариантов, а затем определим производительность каждого из них. Реализация простого алгоритма последовательного


Использование стандартного шифрования.

Из книги автора

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


Система для шифрования с двумя ключами.

Из книги автора

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


Настройка шифрования EFS

Из книги автора

Настройка шифрования EFS Если вы уже заглядывали в окно Дополнительные атрибуты для какого-либо файла (отображается после нажатия кнопки Другие, расположенной на вкладке Общие окна Свойства файла или папки), то, наверное, уже заметили флажок Шифровать содержимое для


2.1. Алгоритмы и стандарты шифрования

Из книги автора

2.1. Алгоритмы и стандарты шифрования В зависимости от используемых ключей шифрование условно можно разделить на следующие виды.? Симметричное шифрование, при котором ключ для шифрования и дешифрования представляет собой один и тот же ключ (на обыденном уровне – просто


Стандарты алгоритмов шифрования

Из книги автора

Стандарты алгоритмов шифрования Почему так много алгоритмов шифрования? Почему не стандартизируют один из них? Учитывая большое количество алгоритмов шифрования, следует признать, что на этот вопрос нельзя дать простой ответ. Максимум, что возможно, – это достичь


Убедить компанию в необходимости шифрования

Из книги автора

Убедить компанию в необходимости шифрования Применение шифрования похоже на наклеивание на дверь стикера, предупреждающего, что ваш дом находится под электронным наблюдением. Если вы остаетесь единственным в вашем квартале с таким стикером, то потенциальные воры