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