Сообщение Re[10]: Meltdown and Spectre от 07.01.2018 7:23
Изменено 07.01.2018 7:33 Cyberax
Re[10]: Meltdown and Spectre
Здравствуйте, ononim, Вы писали:
C>>Ну хорошо, пусть будет явный барьер в виде инструкции. Смысл не меняется.
O>Меняется. Эта инструкция форсит синхронизацию кэша и памяти. То есть ее исполнение в бэкграунде просто ломает атаку, которая основана на том что время доступа к кэшу != время доступа к памяти.
Обычный барьер не очищает L1-кэш. Он лишь форсирует его синхронизацию.
C>>Я могу повторять пробу много раз, так что статистически даже намного менее точный таймер будет достаточен.
O>Ты можешь повторять пробу бесконечное количество раз, но если результат операций меньше разрешения таймера — усреднив свою статистику ты просто получишь значение разрешния таймера и не более того.
Неверно.
O>Давай более приближенный к жизни пример. Вот у тебя есть команда ping, и так повелось, что она умеет выдавать результат с точностью до 10 мсек. Как ты с нее помощью определишь какой из двух хостов к тебе ближе, учитывая что round-trip-time до одного из них — 1мсек, до другого — 2мсек?
Элементарно. От одного из хостов отсчёты менее 10 мсек будут приходить чаще, чем от другого.
Подумай сам:
Далее собираем статистику и считаем какой хост чаще попадает в два отсчёта таймера.
Более того, даже если рандомизировать таймер, то всё равно в статистике это будет видно. Для того, чтобы победить атаку, таймер должен быть уж совсем неточный — в сотни раз, если не тысячи раз.
C>>Не требует, кроме питания. Остальное можно косвенно обнаружить.
O>Демагогия.. КРоме того атака на все остальное опять же требует точного измерения времени.
Тут вот ещё предложили атаковать сетевыми пакетами. Их точности тоже достаточно на скорости в 10Gb.
C>>Это невозможно. Проще перейти на in-order выполнение, да и быстрее оно будет, чем 100500 затычек.
O>Это возможно, и да, будет быстрее чем 10005000 затычек в виде KPTI, LFENCE тут и там и еще фиг знает чего.
KPTI сам по себе не нужен, он закрывает вполне конкретную дыру в Intel, которой нет в том же AMD.
Для защиты от SPECTRE добавляют новые инструкции и плугины к компиляторам, которые их автоматически могут вставлять. В более длительной переспективе, производители процессоров будут исправлять спекуляцию, чтобы она была не видна.
C>>Ну хорошо, пусть будет явный барьер в виде инструкции. Смысл не меняется.
O>Меняется. Эта инструкция форсит синхронизацию кэша и памяти. То есть ее исполнение в бэкграунде просто ломает атаку, которая основана на том что время доступа к кэшу != время доступа к памяти.
Обычный барьер не очищает L1-кэш. Он лишь форсирует его синхронизацию.
C>>Я могу повторять пробу много раз, так что статистически даже намного менее точный таймер будет достаточен.
O>Ты можешь повторять пробу бесконечное количество раз, но если результат операций меньше разрешения таймера — усреднив свою статистику ты просто получишь значение разрешния таймера и не более того.
Неверно.
O>Давай более приближенный к жизни пример. Вот у тебя есть команда ping, и так повелось, что она умеет выдавать результат с точностью до 10 мсек. Как ты с нее помощью определишь какой из двух хостов к тебе ближе, учитывая что round-trip-time до одного из них — 1мсек, до другого — 2мсек?
Элементарно. От одного из хостов отсчёты менее 10 мсек будут приходить чаще, чем от другого.
Подумай сам:
Time: [ 1 2 3 4 5 6 7 8 9 10 ] [ 1 2 3 4 5 6 7 8 9 10 ]
ping start -> * * <- ping endДалее собираем статистику и считаем какой хост чаще попадает в два отсчёта таймера.
Более того, даже если рандомизировать таймер, то всё равно в статистике это будет видно. Для того, чтобы победить атаку, таймер должен быть уж совсем неточный — в сотни раз, если не тысячи раз.
C>>Не требует, кроме питания. Остальное можно косвенно обнаружить.
O>Демагогия.. КРоме того атака на все остальное опять же требует точного измерения времени.
Тут вот ещё предложили атаковать сетевыми пакетами. Их точности тоже достаточно на скорости в 10Gb.
C>>Это невозможно. Проще перейти на in-order выполнение, да и быстрее оно будет, чем 100500 затычек.
O>Это возможно, и да, будет быстрее чем 10005000 затычек в виде KPTI, LFENCE тут и там и еще фиг знает чего.
KPTI сам по себе не нужен, он закрывает вполне конкретную дыру в Intel, которой нет в том же AMD.
Для защиты от SPECTRE добавляют новые инструкции и плугины к компиляторам, которые их автоматически могут вставлять. В более длительной переспективе, производители процессоров будут исправлять спекуляцию, чтобы она была не видна.
Re[10]: Meltdown and Spectre
Здравствуйте, ononim, Вы писали:
C>>Ну хорошо, пусть будет явный барьер в виде инструкции. Смысл не меняется.
O>Меняется. Эта инструкция форсит синхронизацию кэша и памяти. То есть ее исполнение в бэкграунде просто ломает атаку, которая основана на том что время доступа к кэшу != время доступа к памяти.
Обычный барьер не очищает L2-кэш. Он лишь форсирует его синхронизацию.
C>>Я могу повторять пробу много раз, так что статистически даже намного менее точный таймер будет достаточен.
O>Ты можешь повторять пробу бесконечное количество раз, но если результат операций меньше разрешения таймера — усреднив свою статистику ты просто получишь значение разрешния таймера и не более того.
Неверно.
O>Давай более приближенный к жизни пример. Вот у тебя есть команда ping, и так повелось, что она умеет выдавать результат с точностью до 10 мсек. Как ты с нее помощью определишь какой из двух хостов к тебе ближе, учитывая что round-trip-time до одного из них — 1мсек, до другого — 2мсек?
Элементарно. От одного из хостов отсчёты менее 10 мсек будут приходить чаще, чем от другого.
Подумай сам:
Далее собираем статистику и считаем какой хост чаще попадает в два отсчёта таймера.
Более того, даже если рандомизировать таймер, то всё равно в статистике это будет видно. Для того, чтобы победить атаку, таймер должен быть уж совсем неточный — в сотни раз, если не тысячи раз.
C>>Не требует, кроме питания. Остальное можно косвенно обнаружить.
O>Демагогия.. КРоме того атака на все остальное опять же требует точного измерения времени.
Тут вот ещё предложили атаковать сетевыми пакетами. Их точности тоже достаточно на скорости в 10Gb.
C>>Это невозможно. Проще перейти на in-order выполнение, да и быстрее оно будет, чем 100500 затычек.
O>Это возможно, и да, будет быстрее чем 10005000 затычек в виде KPTI, LFENCE тут и там и еще фиг знает чего.
KPTI сам по себе не нужен, он закрывает вполне конкретную дыру в Intel, которой нет в том же AMD.
Для защиты от SPECTRE добавляют новые инструкции и плугины к компиляторам, которые их автоматически могут вставлять. В более длительной переспективе, производители процессоров будут исправлять спекуляцию, чтобы она была не видна.
C>>Ну хорошо, пусть будет явный барьер в виде инструкции. Смысл не меняется.
O>Меняется. Эта инструкция форсит синхронизацию кэша и памяти. То есть ее исполнение в бэкграунде просто ломает атаку, которая основана на том что время доступа к кэшу != время доступа к памяти.
Обычный барьер не очищает L2-кэш. Он лишь форсирует его синхронизацию.
C>>Я могу повторять пробу много раз, так что статистически даже намного менее точный таймер будет достаточен.
O>Ты можешь повторять пробу бесконечное количество раз, но если результат операций меньше разрешения таймера — усреднив свою статистику ты просто получишь значение разрешния таймера и не более того.
Неверно.
O>Давай более приближенный к жизни пример. Вот у тебя есть команда ping, и так повелось, что она умеет выдавать результат с точностью до 10 мсек. Как ты с нее помощью определишь какой из двух хостов к тебе ближе, учитывая что round-trip-time до одного из них — 1мсек, до другого — 2мсек?
Элементарно. От одного из хостов отсчёты менее 10 мсек будут приходить чаще, чем от другого.
Подумай сам:
Time: [ 1 2 3 4 5 6 7 8 9 10 ] [ 1 2 3 4 5 6 7 8 9 10 ]
ping start -> * * <- ping endДалее собираем статистику и считаем какой хост чаще попадает в два отсчёта таймера.
Более того, даже если рандомизировать таймер, то всё равно в статистике это будет видно. Для того, чтобы победить атаку, таймер должен быть уж совсем неточный — в сотни раз, если не тысячи раз.
C>>Не требует, кроме питания. Остальное можно косвенно обнаружить.
O>Демагогия.. КРоме того атака на все остальное опять же требует точного измерения времени.
Тут вот ещё предложили атаковать сетевыми пакетами. Их точности тоже достаточно на скорости в 10Gb.
C>>Это невозможно. Проще перейти на in-order выполнение, да и быстрее оно будет, чем 100500 затычек.
O>Это возможно, и да, будет быстрее чем 10005000 затычек в виде KPTI, LFENCE тут и там и еще фиг знает чего.
KPTI сам по себе не нужен, он закрывает вполне конкретную дыру в Intel, которой нет в том же AMD.
Для защиты от SPECTRE добавляют новые инструкции и плугины к компиляторам, которые их автоматически могут вставлять. В более длительной переспективе, производители процессоров будут исправлять спекуляцию, чтобы она была не видна.