Наверное, про Heartbleed не слышала только домохозяйка, живущая в деревне. Так вот, это конечно большая дыра, да, но вместе с ней закрыли ещё одну неслабую уязвимость, связанную с атаками по побочным каналам на OpenSSL.
Итак, встречайте: Recovering OpenSSL ECDSA Nonces Using the FLUSH+RELOAD Cache Side-channel Attack
В общем, суть в том, что в разных процессах исполняется код библиотеки, который как бы "расшарен" между этими процессами. В итоге, влияния на кэш одного процесса влияют и на другой процесс. Это приводит к тому, что по кэщ-промаху мы можем определить, выполнилась ли определённая инструкция в чужом процессе. Если один процесс занимается цифровой подписью важных данных, а другой процесс за ним таким вот образом следит, то он может, отслеживая выполнение нужных инструкций, получить побитово секретный ключ для ECDSA. Одна инструкция выполнилась - значит была обработка бита "1", другая инструкция выполнилась - значит была обработка бита "0". Ни одна инструкция не выполнилась - значит ничего пока не обрабатывали. Эта уязвимость концептуальна: можно, по сути, узнать всё о каждом переходе в чужой программе.
Баг закрыли весьма эффектно. Теперь в коде, который выполняет эту операцию, вообще нет ни одного ветвления! Есть функция, в которую передаётся обрабатываемый бит, и эта функция с помощью битовых операций и магии меняет или не меняет два указателя местами. А потом мы обабатываем "первый" указатель (который был "вторым", если произошёл обмен"), и меняем указатели на свои места аналогичным образом.