Исследователи из компании NCC Group разработали (https://www.nccgroup.trust/us/our-research/technical-advisor... новый метод атаки по сторонним каналам (CVE-2018-0495, PDF (https://www.nccgroup.trust/globalassets/our-research/us/whit... позволяющий воссоздать применяемые для создания цифровых подписей закрытые ключи ECDSA (https://ru.wikipedia.org/wiki/ECDSA) и DSA (https://ru.wikipedia.org/wiki/DSA), используя технику извлечения информации из процессорного кэша для оценки изменения задержки при выполнении вычислений. Для атаки необходимо наличие непривилегированного доступа к хосту, на котором выполняется генерация цифровой подписи, или к соседней виртуальной машине. В ходе атаки в момент создания очередной цифровой подписи осуществляется определение значения базовых параметров, путём перебора нахождения вероятных значений в кэше и оценки времени выполнения математических вычислений. Проверяемые значения выбираются с учётом того, что в библиотеках используются математическая операция вычисления модуля, время выполнения которой меняется в зависимости от выбранных значений.
Для успешного воссоздания 256-разрядного закрытого ключа ECDSA достаточно наблюдения за созданием нескольких тысяч цифровых подписей (например, можно анализировать работу во время установки TLS или SSH соединений с использованием ECDSA). Рабочий прототип эксплота предоставлен для OpenSSL. Для защиты от атаки предлагается (http://git.gnupg.org/cgi-bin/gitweb.cgi?p=libgcrypt.git;a=bl...использовать в процессе математических вычислений дополнительное случайное число, на которое выполняется умножение секретного параметра, а затем инвертируется результат.
Наибольшую опасность уязвимость представляет для систем виртуализации, в которых атакующий потенциально может определить серверный SSH-ключ или закрытые ключи TLS, применяемые в другой виртуальной машине. Но в реальных условиях атака достаточно трудна в проведении и её успешность зависит от множества сопуствующих факторов, таких как необходимость привязки виртуальной машины атакующего к тому же физическому CPU.
Проблеме подвержены библиотеки OpenSSL, LibreSSL, Libgcrypt (ECDSA), Mozilla NSS, Botan (ECDSA), WolfCrypt (ECDSA), LibTomCrypt (ECDSA), LibSunEC (ECDSA), MatrixSSL (ECDSA), BoringSSL (DSA) и CryptLib. Обновления с устранением уязвимости уже выпущены для LibreSSL (https://www.mail-archive.com/announce@openbsd.org/msg00... 2.7.4/2.6.5]] и Libgcrypt 1.8.3/1.7.10 (https://www.mail-archive.com/info-gnu@gnu.org/msg02460.... (GnuPG). Уязвимость не затрагивает библиотеки Nettle (ECDSA), BearSSL и Libsecp256k1, так как математические вычисления в них всегда выполняются за постоянное время. Библиотека NaCl не подвержена проблемам, так как не поддерживает цифровые подписи ECDSA и DSA (в NaCl применяется только алгоритм Ed25519 (https://ed25519.cr.yp.to/)).
URL: https://www.nccgroup.trust/us/about-us/newsroom-and-events/b.../
Новость: https://www.opennet.ru/opennews/art.shtml?num=48780