Группа инженеров показала метод, позволяющий обойти ограничения классической атаки, связанные с джиттером. Расскажем, как выглядит такой подход и что ему противопоставляют.
/ 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, который не поддерживает мультиплексирование. В этом случае злоумышленник не сможет направить несколько запросов, необходимых для проведения атаки, в одном пакете.
Инженеры из Бельгии и Абу-Даби не приводят другие, не накладывающие серьезные ограничения на работу сетей, методы. Однако они планируют продолжить исследования в этом направлении.
/ 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, который не поддерживает мультиплексирование. В этом случае злоумышленник не сможет направить несколько запросов, необходимых для проведения атаки, в одном пакете.
Инженеры из Бельгии и Абу-Даби не приводят другие, не накладывающие серьезные ограничения на работу сетей, методы. Однако они планируют продолжить исследования в этом направлении.
Что почитать в нашем корпоративном блоге: