Ряд программных реализаций TLS содержит уязвимости, позволяющие хакерам узнать ключи RSA с минимальными вычислительными затратами.

Флориан Веймер (Florian Weimer), исследователь из Red Hat, на прошлой неделе опубликовал отчет под названием «Factoring RSA Keys With TLS Perfect Forward Secrecy«, который демонстрирует уязвимости в ряде устройств, включая популярный балансировщик нагрузки Citrix и аппаратуру производства Hillstone Networks, Nortel, Viprinet и других.

Реализация TLS в этих продуктах, по словам Веймера, не имеет достаточной защиты от атаки Lenstra на «китайскую теорему об остатках», также известную как RSA-CRT.

«Если сбой произошел во время вычисления подписи (с использованием оптимизации RSA-CRT), злоумышленник может восстановить закрытый ключ из подписи («утечка ключа RSA-CRT»). На тот момент использование криптографии в Интернете было необычным, и даже десятью годами позже большинство TLS-соединений (или HTTPS) были иммунны к этой проблеме вследствие того, что они не использовали подписи RSA, — написал Веймер об атаке Lenstra. — Это постепенно изменилось, когда прямая секретность для TLS стала рекомендуемой и была принята многими веб-сайтами».

Lenstra описывается как обходная атака, и Веймер заявил, что алгоритм RSA сам по себе защищен от нее, а уязвимость имеется лишь в некоторых незащищенных реализациях.

«Мы наблюдали несколько утечек ключей RSA-CRT там, где не должно быть такого, — написал он, добавив, что реализации в OpenSSL и NSS защищены и что Oracle пропатчила OpenJDK в CVE-2015-0478 после консультаций с Веймером. — Все браузерные сертификаты PKI, утечку которых мы наблюдали, были заменены и отозваны».

Хакеры могут использовать эту офлайн-атаку относительно задешево по сравнению с другими атаками на криптографию. При этом кража закрытого ключа шифрования исключительно опасна для данных, которые TLS должен был защитить. Злоумышленник, по словам Веймера, должен проникнуть в сеть через атаку «человек посередине» или компрометацию сервера, чтобы провести вторичную атаку этого типа и окончательно выдать себя за атакуемый сервер.

«Эту утечку может провести клиент, участвующий в TLS-хендшейке, либо пассивный наблюдатель, перехватывающий сетевой трафик, — написал Веймер. — Также данная утечка ключей позволяет расшифровывать обмен данными, в котором не используется прямая секретность, без необходимости проводить атаку «человек посередине».

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

«В случае наблюдаемых нами утечек ключей, по нашему мнению, удаленный атакующий не может по желанию провести утечку ключей, в том смысле, что не может манипулировать сервером в сети таким образом, чтобы выросла вероятность утечки ключей в определенном TLS-хендшейке, — сказал Веймер. — Единственное, что злоумышленник может, — это перехватить так много хендшейков, как это возможно, вероятно, путем инициации множества хендшейков».

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

«Отключение прямой секретности позволит пассивным наблюдателям, ранее укравшим ключи, расшифровывать будущие TLS-сеансы из перехваченного сетевого трафика, без необходимости перенаправлять соединения клиента, — написал Веймер. — Это означает, что отключение прямой секретности сделает только хуже (отключение прямой секретности и замена сертификата сервера тем не менее сработают)».

Категории: Главное, Уязвимости