Здравствуйте, ononim, Вы писали:
C>>Я специально написал "volatile". Все барьеры есть. Разрешения более чем достаточно для точных таймеров. O>volatile барьеров не ставит.
Вообще-то, ставит.
O>Я имею ввиду для процессора. А с барьером время исполнения инкремента будет таким, что вся конструкция станет непригодна для целей атаки.
И с барьером тоже будет всё нормально. Максимум придётся статистику посчитать.
C>>Поезд уехал. Да и глупо таким образом пытаться защиту делать. O>Время исполнения это просто супер-толстый канал для кучи разных side-channel уязвимостей, причем не только настолько хардварных как сабж. Затыкать каждую — это как лодку делать из решета.
Кроме времени исполнения есть ещё потребление питания, занятость шины памяти, прямые пробы на DRAM contention и т.д.
Пытаться перекрыть атаки с помощью запрета точного времени в машине с разделяемой памятью — это как раз затыкание дыр. Способы взять статистически точное время будут находиться примерно постоянно.
Более правильным будет убирание side-channel с помощью железных мер. Типа переключаемого кэша, эксклюзивной аренды шины и т.д. Железячники уже думают.