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


/ 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, который не поддерживает мультиплексирование. В этом случае злоумышленник не сможет направить несколько запросов, необходимых для проведения атаки, в одном пакете.

Инженеры из Бельгии и Абу-Даби не приводят другие, не накладывающие серьезные ограничения на работу сетей, методы. Однако они планируют продолжить исследования в этом направлении.

Что почитать в нашем корпоративном блоге: