/ CC BY / chuttersnap
В чем суть классического метода
Прежде чем перейти к новому варианту атак по времени сделаем небольшое отступление и поговорим, как они вообще устроены. В их основу заложено предположение, что в ходе анализа времени вычисления для тех или иных запросов можно получить представление о дизайне криптосистемы, типе процессора и используемых алгоритмах. На основе этих данных злоумышленник может постепенно восстановить информацию о секретном ключе.
Несколько лет назад специалисты из Стэнфордского университета доказали возможность взлома OpenSSL с помощью timing attack. Однако реализовать её достаточно сложно, так как джиттер в сети серьезно влияет на оценку времени. Но группа инженеров из Лёвенского католического университета в Бельгии и Нью-Йоркского университета в Абу-Даби показала, что это ограничение можно обойти.
На конференции USENIX они продемонстрировали новый способ атаки по времени timeless timing attack, который не зависит от параметров сети.
Как работает новый подход
Инженеры предложили отправлять запросы на сервер не друг за другом, а одновременно (в одном пакете). Сделать это можно или напрямую, или с помощью межсайтового скриптинга (стр.5).
Свежие посты из нашего блога на Хабре:
Так, погрешность вносят лишь параметры ответов сервера, что сокращает влияние джиттера в сети на результат. Так, хакер может оценить время работы криптографических алгоритмов с точностью до 100 наносекунд это в сто раз меньше, чем у классической атаки. Инженеры протестировали написанный ими эксплойт с протоколами HTTP/2 и WPA3. В обоих случаях timeless timing attack была успешной.
Как защититься
Наиболее очевидный способ реализовать систему, в которой все операции исполняются за одинаковое время. Но сделать это на практике практически невозможно, так как всегда будут возникать непредвиденные отклонения. Другой вариант добавить ко всем вычислениям случайные задержки. Такой подход сделает измерения неточными и серьезно усложнит задачу хакера.
/ CC BY / Erik Mclean
Еще один вариант защиты от Timeless Timing Attack использовать протокол HTTP/1.1, который не поддерживает мультиплексирование. В этом случае злоумышленник не сможет направить несколько запросов, необходимых для проведения атаки, в одном пакете.
Инженеры из Бельгии и Абу-Даби не приводят другие, не накладывающие серьезные ограничения на работу сетей, методы. Однако они планируют продолжить исследования в этом направлении.
Что почитать в нашем корпоративном блоге: