В Libgcrypt/GnuPG выявлена уязвимость, позволяющая воссоздать RSA-ключи
Уязвимость позволяет восстановить содержимое закрытого ключа RSA через проведение атаки по сторонним каналам (side-channel attacks) на базе техники FLUSH+RELOAD. Суть проблемы в том, что злоумышленник, имеющий возможность запустить свой код на многопользовательской системе на которой в текущий момент используется закрытый RSA-ключ, может пошагово смоделировать содержимое процессорного кэша, в котором оседают данные вычислений с использованием закрытого RSA-ключа, оставляемые в памяти в процессе возведения в степень при помощи метода скользящего окна (left-to-right sliding window, в основе шифрования RSA лежит операция возведения в степень по модулю большого числа).
Так как атакующим и жертвой запускается одно и тоже приложение, система задействует разделяемую память для размещения копий программы, но данные хранит в отдельных страницах. Постепенно бит за битом меняя содержимое памяти на своей стороне и сбрасывая кэш командой clflush атакующий рассматривает уменьшение времени доступа как сигнал об обнаружении совпадения (в кэш попали данные общие с процессом жертвы).
Если ранее известные методы атак на основе утечки информации, сохраняемой в процессе работы алгоритма скользящего окна, позволяли позволяли восстановить лишь 33% содержимого ключа при 5-разрядном окне и 40% при 4-разрядном, то новый метод получает достаточно данных для полного восстановления 1024-разрядного ключа RSA. Теоретически метод может применяться и для 2048-битовых ключей, но атака будет эффективна лишь для 13% ключей и потребует значительных вычислений. Наиболее вероятным объектом атаки является приложение GnuPG, в котором начиная с версии 2.0 базовая логика шифрования вынесена в библиотеку Libgcrypt.
Разработчики Libgcrypt отмечают, что с практической точки зрения атака через указанную уязвимость маловероятна, так как при наличии у злоумышленника непривилегированного доступа к системе, скорее всего для получения RSA-ключа или компрометации системы он воспользуется более простыми способами, такими как ожидание новой локальной уязвимости и её эксплуатация до установки обновления. При этом не исключается возможность проведения атаки на системах виртуализации для определения RSA-ключа другого виртуального окружения, работающего на том же сервере.
Обновления пакетов с устранением уязвимости уже доступны для Debian, Ubuntu, FreeBSD, Fedora. Пока не выпущены обновления для SUSE и openSUSE. RHEL и CentOS проблеме не подвержены, но уязвимость затрагивает пакеты с Libgcrypt из репозитория EPEL.
Источник: http://www.opennet.ru/opennews/art.shtml?num=46812
|
0 | Tweet | Нравится |
|