Критика шифрования ключей в OpenSSH

5 августа 2018 года

Недавняя подстановка вредоносного ПО в популярный NPM-модуль eslint, привела к отправке злоумышленникам SSH-ключей доступа, хранящихся в домашней директории нескольких тысяч разработчиков. Многие разработчики не придали этому должного внимания из-за того, что их ключи были зашифрованы с использованием пароля. Тем не менее по умолчанию в SSH для закрытых RSA-ключей применяется устаревший и ненадёжный метод шифрования, использующий блочный шифр AES с ключом в виде MD5-хэша от заданного пользователем пароля (с солью). Функция bcrypt_pbkdf, обеспечивающая должную защиту от подбора, применяется только для ключей на базе эллиптических кривых (Ed25519).

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

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

Источники править


 
 
Creative Commons
Эта статья содержит материалы из статьи «Критика шифрования ключей в OpenSSH», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
 
Эта статья загружена автоматически ботом NewsBots в архив и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.