Критика шифрования ключей в OpenSSH
5 августа 2018 года
Недавняя подстановка вредоносного ПО в популярный NPM-модуль eslint, привела к отправке злоумышленникам SSH-ключей доступа, хранящихся в домашней директории нескольких тысяч разработчиков. Многие разработчики не придали этому должного внимания из-за того, что их ключи были зашифрованы с использованием пароля. Тем не менее по умолчанию в SSH для закрытых RSA-ключей применяется устаревший и ненадёжный метод шифрования, использующий блочный шифр AES с ключом в виде MD5-хэша от заданного пользователем пароля (с солью). Функция bcrypt_pbkdf, обеспечивающая должную защиту от подбора, применяется только для ключей на базе эллиптических кривых (Ed25519).
Применение по умолчанию неэффективного шифрования на базе MD5, производительность подбора хэшей для которого на современном оборудовании может достигать миллиардов проверок в секунду, не только сводит на нет пользу от шифрования ключа, но и, по мнению автора статьи, делает защиту даже менее надёжной, чем использование открытого текста без шифрования. Суть данного мнения в том, что часто пользователи используют один и тот же пароль для разных сервисов. В случае шифрования ключей SSH, как правило, не применяются менеджеры паролей и пользователь использует знакомый ему типовой пароль, который он держит в голове.
Применение типового пароля в изначально ненадёжной схеме хэширования ставит под удар сам пароль и упрощает компрометацию публичных сервисов для которых применяется данный пароль. SSH-ключ, отправленный в ходе запуска вредоносного модуля NPM, при надлежащей настройке ограничения доступа к SSH не позволит скомпрометировать хост, но может быть использован для подбора пароля, применяемого для его шифрования. Используя открытый ключ для проверки успешности подбора, атакующий с достаточно высокой вероятностью может определить изначальный пароль и использовать его для другой атаки.
Источники
править
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.