Предположим, что в процедуре кэширования паролей LANMAN используются сильные пароли из двух и более символов. К сожалению, среди пользователей распространена привычка добавлять в конец пароля дополнительные символы. Например, если пользователь добавит в строку чисел или символов свой день рождения, например «MONTANA45 %», то пароль безопаснее от этого не станет. LANMAN разобьет его на две строки: «MONTANA» и «45 %». Вероятно, и первая, и вторая строки будут быстро определены. Первая – в результате атаки со словарем, а вторая – атаки «грубой силы», потому что она состоит только из трех символов. Поэтому в операционных системах Windows NT и Windows 2000 следует по возможности исключить кэширование LANMAN, но при этом клиенты Win9x не смогут установить их подлинность.
Генерация длинного ключа из короткого пароля
Про качество паролей уже говорилось во время обсуждения «грубой силы». С появлением схем шифрования PKE, как, например, программы PGP, большинство открытых и секретных ключей генерируются на основе паролей или ключевых фраз, уязвимых к атаке «грубой силы». Если в выбранном пароле недостаточно символов, то он может быть вскрыт в результате атаки «грубой силы». Поэтому системы PKE, как, например, RSA, могут быть взломаны при помощи «грубой силы». Причем это произойдет (если вообще произойдет) не из-за ошибки в алгоритме, а из-за дефектов генерации ключей. Лучшая защита от подобных «косвенных» атак – использование сильных паролей при генерации любых ключей. Сильный пароль – это пароль, образованный из строчных и прописных букв, чисел и символов, желательно встречающихся на протяжении всего пароля. Принято считать, что 8 символов – минимальная длина сильного пароля, но, принимая во внимание серьезность последствий выбора слабых паролей, для генерации ключей рекомендуется использовать, по крайней мере, 12 символов.
Про высококачественные пароли часто говорят, что у них высокая энтропия. Энтропия – это мера измерения его неопределенности, с помощью которой оценивают качество пароля. Обычно у длинных паролей энтропия выше, чем у коротких. Случайный выбор символов, образующих пароль, также увеличивает энтропию пароля. Например, у пароля «albatross» (энтропия приблизительно равна 30 единицам) разумная длина, но энтропия могла быть больше, если в пароле такой же длины каждый символ выбирать случайным образом, как, например, «g8 %=MQ+p» (около 48 единиц энтропии). Первый пароль может оказаться в списке широко известных имен птиц, в то время как второй – никогда. Очевидно, второй пароль предпочтительнее, и поэтому лучше его использовать. А вывод таков: хорошие алгоритмы шифрования, как, например, 3-DES c 168-битным секретным ключом, могут быть легко взломаны, если энтропия его секретного ключа составляет несколько единиц.
Ошибки хранения частных или секретных ключей
Предположим, что вами используются надежные криптографические алгоритмы, инструментальные средства производителей проверены на отсутствие ошибок реализации и при генерации ключей соблюдены все меры предосторожности. Безопасны ли ваши данные? Их безопасность определяется безопасностью частного или секретного ключей. Безопасность этих ключей должна быть гарантирована любой ценой. В противном случае нет смысла в шифровании данных.
Поскольку ключи – обычные данные, то, как правило, они хранятся где-нибудь в файле на жестком диске вашей системы. Например, секретные ключи протокола SSH-1 запоминаются в файле идентификации, размещенном в поддиректории. ssh домашней директории пользователя. Если файловая система позволяет всем читать этот файл, то пароли могут быть скомпрометированы. Как только кто-нибудь завладеет секретным ключом, чтение зашифрованных сообщений станет тривиальным. (Отметим, что файл идентификации SSH используется для установления подлинности, а не для шифрования. Но идея понятна.)
В некоторых реализациях ключи могут быть скомпрометированы из-за невозможности обеспечения безопасности хранения данных в оперативной памяти (RAM). Как известно, обработка любой информации, в том числе секретных или частных ключей, так или иначе затрагивает оперативную память компьютера. Если ядро операционной системы не хранит эти ключи в защищенной области памяти, то, вероятно, ими можно завладеть, переписав образ оперативной памяти в файл и проанализировав его на досуге. Такие файлы в UNIX называются дампом памяти, или разгрузкой оперативной памяти (core dumps). Обычно они создаются во время атак, направленных на достижение отказа в обслуживании (DoS-атак). В результате DoS-атаки при исчерпании оперативной памяти ее образ вместе с ключами переписывается в виртуальную память на диске. Таким способом удачливый хакер сможет вынудить систему выдать дамп памяти и извлечь ключи из образа памяти. К счастью, к настоящему времени об этом знает большинство разработчиков и на практике это встречается все реже, потому что сейчас ключи хранятся в защищенной области памяти.
Читать дальше
Конец ознакомительного отрывка
Купить книгу