Информация об изменениях

Сообщение Re[11]: Meltdown and Spectre от 07.01.2018 7:44

Изменено 07.01.2018 8:53 ononim

Re[11]: Meltdown and Spectre
O>>Меняется. Эта инструкция форсит синхронизацию кэша и памяти. То есть ее исполнение в бэкграунде просто ломает атаку, которая основана на том что время доступа к кэшу != время доступа к памяти.
C>Обычный барьер не очищает L1-кэш. Он лишь форсирует его синхронизацию.
....которая занимает время, равное времени записи в память. То есть разрешение твоего таймера будет заведомо больше самого большого интервала, который нужно измерить, чтобы провести атаку.

O>>Ты можешь повторять пробу бесконечное количество раз, но если результат операций меньше разрешения таймера — усреднив свою статистику ты просто получишь значение разрешния таймера и не более того.

C>Неверно.
Верно.

O>>Давай более приближенный к жизни пример. Вот у тебя есть команда ping, и так повелось, что она умеет выдавать результат с точностью до 10 мсек. Как ты с нее помощью определишь какой из двух хостов к тебе ближе, учитывая что round-trip-time до одного из них — 1мсек, до другого — 2мсек?

C>Элементарно. От одного из хостов отсчёты менее 10 мсек будут приходить чаще, чем от другого.
Беда в том что они все будут приходить 10 мсек. Если округление в большую сторону, и все 0 — если в меньшую

C>Подумай сам:

C>
C> Time: [ 1 2 3 4 5 6 7 8 9 10 ] [ 1 2 3 4 5 6 7 8 9 10 ]
C>             ping start -> *      * <- ping end
C>

Ненене, Дэвид Блейн. В моем эксперименте начало отсчета таймера привязано к началу операции. В случае же атаки — сама подготовка операции занимает овердофига времени, причем это овердофига — весьма рандомно само по себе, и потому последовательная серия не позволит тебе аккумулировать результат. Подумал немного, таки можно таким образом получить результат для обсуждаемого случая атаки даже с рандомным временем ее начала, но надо подумать еще про нижнее ограничение разрешения таймера. Оно должно быть

C>Далее собираем статистику и считаем какой хост чаще попадает в два отсчёта таймера.

C>Более того, даже если рандомизировать таймер, то всё равно в статистике это будет видно. Для того, чтобы победить атаку, таймер должен быть уж совсем неточный — в сотни раз, если не тысячи раз.
Понятно, ты значит никогда не пинговал виндой до версии ХР или уже забыл как оно там. Так вот, поясню — там никогда пинг не возвращал 0 мсек. Он, сцуко, ВСЕГДА выдавал для всех локальных компов 10 мсек. И никакой статистикой нельзя было определить находится хост через один свич или через два свича от тебя.

C>>>Не требует, кроме питания. Остальное можно косвенно обнаружить.

O>>Демагогия.. КРоме того атака на все остальное опять же требует точного измерения времени.
C>Тут вот ещё предложили атаковать сетевыми пакетами. Их точности тоже достаточно на скорости в 10Gb.
Предложить можно что угодно Я предлагаю атаковать почтовыми голубями.

C>Для защиты от SPECTRE добавляют новые инструкции и плугины к компиляторам, которые их автоматически могут вставлять. В более длительной переспективе, производители процессоров будут исправлять спекуляцию, чтобы она была не видна.

Ну ясно-понятно теперь, зачем эту штуку так активно пропиарили. Простое элегантное решение никому не нужно.
Re[11]: Meltdown and Spectre
O>>Меняется. Эта инструкция форсит синхронизацию кэша и памяти. То есть ее исполнение в бэкграунде просто ломает атаку, которая основана на том что время доступа к кэшу != время доступа к памяти.
C>Обычный барьер не очищает L1-кэш. Он лишь форсирует его синхронизацию.
....которая занимает время, равное времени записи в память. То есть разрешение твоего таймера будет заведомо больше самого большого интервала, который нужно измерить, чтобы провести атаку.

O>>Ты можешь повторять пробу бесконечное количество раз, но если результат операций меньше разрешения таймера — усреднив свою статистику ты просто получишь значение разрешния таймера и не более того.

C>Неверно.
Верно.

O>>Давай более приближенный к жизни пример. Вот у тебя есть команда ping, и так повелось, что она умеет выдавать результат с точностью до 10 мсек. Как ты с нее помощью определишь какой из двух хостов к тебе ближе, учитывая что round-trip-time до одного из них — 1мсек, до другого — 2мсек?

C>Элементарно. От одного из хостов отсчёты менее 10 мсек будут приходить чаще, чем от другого.
Беда в том что они все будут приходить 10 мсек. Если округление в большую сторону, и все 0 — если в меньшую

C>Подумай сам:

C>
C> Time: [ 1 2 3 4 5 6 7 8 9 10 ] [ 1 2 3 4 5 6 7 8 9 10 ]
C>             ping start -> *      * <- ping end
C>

Ненене, Дэвид Блейн. В моем эксперименте начало отсчета таймера привязано к началу операции. В случае же атаки — сама подготовка операции занимает овердофига времени, причем это овердофига — весьма рандомно само по себе, и потому последовательная серия не позволит тебе аккумулировать результат.
Подумал немного, таки можно таким образом получить результат для обсуждаемого случая атаки даже с рандомным временем ее начала, но надо подумать еще про нижнее ограничение разрешения таймера. Оно должно быть
[upd] Подумал еще насчет ограничения. Ограничение следующее — разрешение таймера TMax + собственная, неконтролируемая хакером рандомность таймера в TMin/2 в обе стороны от TMax. В случае с барьером на lock можно надеятся что некая рандомность появится изза работы протоколов синхронизации кешей обоих процессоров. Будет ли она достаточна —

C>Далее собираем статистику и считаем какой хост чаще попадает в два отсчёта таймера.

C>Более того, даже если рандомизировать таймер, то всё равно в статистике это будет видно. Для того, чтобы победить атаку, таймер должен быть уж совсем неточный — в сотни раз, если не тысячи раз.
Понятно, ты значит никогда не пинговал виндой до версии ХР или уже забыл как оно там. Так вот, поясню — там никогда пинг не возвращал 0 мсек. Он, сцуко, ВСЕГДА выдавал для всех локальных компов 10 мсек. И никакой статистикой нельзя было определить находится хост через один свич или через два свича от тебя.

C>>>Не требует, кроме питания. Остальное можно косвенно обнаружить.

O>>Демагогия.. КРоме того атака на все остальное опять же требует точного измерения времени.
C>Тут вот ещё предложили атаковать сетевыми пакетами. Их точности тоже достаточно на скорости в 10Gb.
Предложить можно что угодно Я предлагаю атаковать почтовыми голубями.

C>Для защиты от SPECTRE добавляют новые инструкции и плугины к компиляторам, которые их автоматически могут вставлять. В более длительной переспективе, производители процессоров будут исправлять спекуляцию, чтобы она была не видна.

Ну ясно-понятно теперь, зачем эту штуку так активно пропиарили. Простое элегантное решение никому не нужно.