Хабрахабр

Пост-анализ: что известно о последней атаке на сеть серверов криптоключей SKS Keyserver

Хакеры использовали особенность протокола OpenPGP, о которой известно более десяти лет.

Рассказываем, в чем суть и почему её не могут закрыть.


/ Unsplash / Chunlea Ju

Проблемы в сети

В середине июня неизвестные провели атаку на сеть серверов криптографических ключей SKS Keyserver, построенную на базе протокола OpenPGP. Это — стандарт IETF (RFC 4880), который используется для шифрования электронной почты и других сообщений. Сеть SKS создали тридцать лет назад для распространения публичных сертификатов. К ней подключаются такие инструменты, как GnuPG для шифрования данных и создания электронных цифровых подписей.

Загрузка испорченного сертификата с сервера приводит к сбою в работе GnuPG — система просто зависает. Хакеры скомпрометировали сертификаты двух мейнтейнеров проекта GnuPG — Роберта Хансена (Robert Hansen) и Дэниела Гиллмора (Daniel Gillmor). На текущий момент масштабы проблемы остаются неизвестными. Есть основания полагать, что на этом злоумышленники не остановятся, и число скомпрометированных сертификатов будет лишь увеличиваться.

Суть атаки

Хакеры воспользовались уязвимостью в протоколе OpenPGP. Она известна сообществу уже не один десяток лет. Даже на GitHub можно найти соответствующие эксплойты. Но пока никто не взял на себя ответственность по закрытию «дырки» (далее поговорим о причинах подробнее).

Пара подборок из нашего блога на Хабре:

Согласно спецификации OpenPGP кто угодно может добавлять цифровые подписи к сертификатам для подтверждения их владельца. Причем максимальное число подписей никак не регламентировано. И здесь возникает проблема — сеть SKS позволяет разместить до 150 тыс. подписей на один сертификат, но GnuPG такое их количество не поддерживает. Таким образом, при загрузке сертификата GnuPG (как, впрочем, и другие реализации OpenPGP) зависает.

Сертификат имел более 54 тыс. Один из пользователей провел эксперимент — импорт сертификата занял у него примерно 10 минут. подписей, а его вес составил 17 Мбайт:

$ gpg --homedir=$PWD --recv C4BC2DDB38CCE96485EBE9C2F20691179038E5C6
gpg: key F20691179038E5C6: 4 duplicate signatures removed
gpg: key F20691179038E5C6: 54614 signatures not checked due to missing keys
gpg: key F20691179038E5C6: 4 signatures reordered
gpg: key F20691179038E5C6: public key "Daniel Kahn Gillmor <dkg@fifthhorseman.net>" imported
gpg: no ultimately trusted keys found
gpg: Total number processed: 1
gpg: imported: 1
$ ls -lh pubring.gpg
-rw-r--r-- 1 filippo staff 17M 2 Jul 16:30 pubring.gpg

Ситуацию усугубляет тот факт, что серверы ключей с OpenPGP не удаляют информацию о сертификатах. Так сделано, чтобы можно было проследить цепочку всех действий с сертификатами и исключить их подмену. Поэтому ликвидировать скомпрометированные элементы нельзя.

Чтобы проиллюстрировать проблему, в прошлом году резидент GitHub создал файловую систему, которая хранит документы в сети серверов криптографических ключей. По сути, сеть SKS представляет собой большой «файловый сервер», на который любой желающий может записать данные.

Почему уязвимость не закрыли

Для закрытия уязвимости не было повода. Ранее её не использовали для проведения хакерских атак. Хотя ИТ-сообщество давно просило разработчиков SKS и OpenPGP обратить внимание на проблему.

В нем реализована защита от подобных типов атак. Справедливости ради стоит отметить, что в июне они все же запустили экспериментальный сервер ключей keys.openpgp.org. Поэтому пройдет время, прежде чем им можно будет пользоваться. Однако его база данных заполняется с нуля, а сам сервер не является частью SKS.


/ Unsplash / Rubén Bagüés

Сеть серверов ключей изначально писалась как proof of concept для защиты докторской диссертации Яроном Мински (Yaron Minsky). Что касается бага в оригинальной системе, то исправить его мешает сложный механизм синхронизации. По словам мейнтейнера Роберта Хансена, разобраться в коде сложно, поэтому в него вносятся лишь небольшие исправления. Причем для работы был выбран довольно специфический язык OCaml. Чтобы модифицировать архитектуру SKS, её придется переписать с нуля.

В посте на GitHub разработчики даже написали, что не рекомендуют работать с SKS Keyserver. В любом случае в GnuPG не верят, что сеть когда-нибудь удастся исправить. Нам остается лишь наблюдать за дальнейшим развитием событий. Собственно, это одна из главных причин, почему они инициировали переход на новый сервис keys.openpgp.org.

Пара материалов из нашего корпоративного блога:

Теги
Показать больше

Похожие статьи

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»
Закрыть