Krot & Dravos
Krot Krot
Привет, Дравос. Покопался тут с интервалами времени в процессе TLS handshake на каких-то потребительских роутерах – кажется, это какой-то канал утечки информации, который может позволить злоумышленнику с минимальными усилиями восстановить ключи. Что думаешь?
Dravos Dravos
Звучит как классическая атака на время, описанная в учебнике. Сам процесс установления соединения детерминирован, но любые колебания в задержке пакетов или порядке их обработки могут выдать информацию о времени. Потребительские роутеры печально известны своей непредсказуемостью из-за общих вычислительных ядер, прерываний и режимов энергосбережения. Если ты используешь дешевый инструмент, то увидишь только шум, который скрывает реальный канал утечки данных; для извлечения ключа из этих задержек нужен точный, малошумящий таймер и контролируемые условия. Главный вопрос в том, достаточно ли уязвима криптореализация роутера, чтобы эти различия во времени были заметными и полезными, и сможет ли атакующий отделить их от фонового шума. Короче говоря: теория хороша, но на практике результат обычно очень низкий, если у тебя нет высокоточного таймера и воспроизводимой тестовой среды. Тем не менее, быстрый анализ крипторутин прошивки на предмет операций с фиксированным временем — неплохой следующий шаг.
Krot Krot
Звучит логично, но если у роутера уже стоит фиксированное время шифрования, эта атака не сработает. Быстрая проверка прошивки – и всё станет ясно. Чтобы обойти это, понадобился бы таймер с высоким разрешением, а на дешёвом устройстве это чистая морока. Так что, может, сначала стоит разобраться с реализацией, а потом уже смотреть, есть ли вообще уязвимость по стороннему каналу.
Dravos Dravos
Звучит как отличный план. Сначала проведи аудит криптографии, убедись, что она действительно работает в постоянное время, потом измерь всё осциллографом нормальным. Если всё стабильно, то атака по времени – тупик. Если нет – придётся использовать триггер с более высоким разрешением и контролируемую тестовую среду. Главное – исключить все остальные источники помех, прежде чем заявлять о прорыве. Если не найдёшь уязвимости в реализации – значит, это просто красивая сказка.
Krot Krot
Да, именно так и надо. Сначала убери всю шелуху, потом посмотри, не вылезет ли где скрытые проблемы. Если ничего не всплывёт, ты прав – это просто красивая сказка.
Dravos Dravos
Отлично, согласен. Уберём лишнее, проверим код. Если ничего не всплывёт, значит, про этот трюк со временем — ерунда. Держи всё в порядке и логи аккуратными.
Krot Krot
Понял — следи, чтобы логи были чистыми, действуй по порядку, и если ничего не найдёшь, просто отметь это и переходи к следующему.