Разработчики GnuPG предупредили о трудноустранимой атаке на серверы ключей
2 июля 2019 года
Зафиксирована атака на сеть серверов криптографических ключей, построенных на базе ПО SKS Keyserver (Архивная копия от 22 июня 2020 на Wayback Machine). Атакующие воспользовались проблемой в протоколе OpenPGP, о которой известно уже более 10 лет, но которая неустранима без кардинальных изменений и до сих пор не применялась для осуществления реальных атак. В случае импорта с сервера атакованного OpenPGP-сертификата проблема приводит к нарушению работы окружения GnuPG у пользователя (зависание, делающее невозможным дальнейшую работу).
Суть атаки в размещении на серверах хранения открытых ключей большого числа подписей для сертификата жертвы. Спецификация OpenPGP даёт возможность пользователям добавлять цифровые подписи для произвольных сертификатов, подтверждая их владельца, но не регламентирует максимальное число таких подписей. Сервер ключей SKS допускает размещение в сети до 150 тысяч подписей на один сертификат, но GnuPG такое число подписей не поддерживает. Попытка загрузки пользователем атакованного сертификата приводит к трудно восстановимому нарушению нормальной работы GnuPG и других реализаций OpenPGP.
В силу распределённого характера сети ключей предсказать на какие ещё сертификаты направлена атака невозможно до момента начала проявления сбоев при их обработке. Иными словами любой сертификат может быть атакован и эта атака проявится лишь тогда, когда начнутся сбои. Единственным способом защиты является полное прекращение использования серверов ключей, т.е. необходимо удаление настроек keyserver из gpg.conf. Если проблема уже проявилась, то, если известен проблемный сертификат, для восстановления работы достаточно удалить его из локального хранилища, а если сертификат не известен, то, возможно, потребуется пересоздание хранилища сертификатов на основе проверенных открытых ключей.
Рекомендация по полному прекращению использования существующих серверов ключей обусловлена тем, что пострадавшие в ходе атаки сертификаты не могут быть удалены из сети серверов ключей, а атакованные сертификаты невозможно отследить до проявления сбоя на стороне пользователей. В строй введён новый экспериментальный сервер ключей keys.openpgp.org, в котором реализована защита от подобных атак, но БД данного сервера заполняется с нуля, а сам сервер не входит в сеть серверов криптографических ключей. Для активации данного сервера в конец файла dirmngr.conf можно добавить строку "keyserver keys.openpgp.org". При этом в обозримом будущем атака не может быть блокирована на уровне уже существующих сетей хранения ключей SKS.
Основная проблема в том, что одним из ключевых принципов серверов хранения ключей является то, что уже размещённый сертификат никаким образом не может быть удалён. Сертификаты и любую другую информацию можно только добавлять, но не удалять, чтобы оставалась цепочка для прослеживания всех действий и было невозможно подменить сертификат после его удаления. Более того, серверы криптографических ключей постоянно взаимодействуют между собой и осуществляют сверку своих баз для выявления возможных изменений или удаления сертификатов. Не существует единого эталонного сервера, на котором можно было бы удалить проблемные записи, все серверы равноправны, что делает задачу внесения архитектурных изменений крайне сложной.
Маловероятно, что исправление, нарушающее данную концепцию, будет внесено на уровне протокола OpenPGP. В любом случае для исправления и обновления ПО на серверах и клиентских системах потребуется очень много времени. Внесению исправления на уровне ПО SKS (Synchronizing Key Server) мешает необходимость аккуратного изменения проверенного временем достаточно сложного алгоритма синхронизации. Задача усложняется тем, что SKS написан на достаточно специфичном языке OCaml и остаётся без сопровождающего - никто из остающихся в сообществе разработчиков не знает начинку настолько хорошо, чтобы безболезненно вносить фундаментальные изменения (в текущем виде в код вносятся лишь исправления ошибок, но в данном случае требуется переработка архитектуры).
В настоящее время приводящее к проблемам наводнение подписями сертификатов зафиксировано для двух известных участников сообщества OpenPGP (Robert J. Hansen (rjh) и Daniel Kahn Gillmor (dkg)). Ожидается, что атака не остановится на двух жертвах и из-за простоты проведения атаки число проблемных сертификатов лишь будет расти со временем. Возможный размер ущерба от атаки пока трудно оценить.
Источники править
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.