Re[9]: Meltdown and Spectre
От: ononim  
Дата: 07.01.18 06:12
Оценка:
O>>инкремент volatile int переменной через __sync_add_and_fetch:
C>Ну хорошо, пусть будет явный барьер в виде инструкции. Смысл не меняется.
Меняется. Эта инструкция форсит синхронизацию кэша и памяти. То есть ее исполнение в бэкграунде просто ломает атаку, которая основана на том что время доступа к кэшу != время доступа к памяти.

C>>>И с барьером тоже будет всё нормально. Максимум придётся статистику посчитать.

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

C>>>Кроме времени исполнения есть ещё потребление питания, занятость шины памяти, прямые пробы на DRAM contention и т.д.

O>>Нене. Все это требует физического подключения логическим анализатором. Сценарии атак нужно разделять. Мы тут про атаку когда хакер может запускать свой код на машине и не более того.
C>Не требует, кроме питания. Остальное можно косвенно обнаружить.
Демагогия.. КРоме того атака на все остальное опять же требует точного измерения времени.

C>>>Более правильным будет убирание side-channel с помощью железных мер. Типа переключаемого кэша, эксклюзивной аренды шины и т.д. Железячники уже думают.

O>>side-channel через канал времени лучше всего убить убив этот самый канал, то есть — загрубив потенциально возможные результаты измерения времени.
C>Это невозможно. Проще перейти на in-order выполнение, да и быстрее оно будет, чем 100500 затычек.
Это возможно, и да, будет быстрее чем 10005000 затычек в виде KPTI, LFENCE тут и там и еще фиг знает чего.
Как много веселых ребят, и все делают велосипед...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.