Re[4]: Meltdown and Spectre
От: Cyberax Марс  
Дата: 04.01.18 23:01
Оценка:
Здравствуйте, Pzz, Вы писали:

C>>Можно организовать пробы, которые утекают по одному биту содержимого. А одного бита со сдвигом уже достаточно, чтобы получить всё остальное. В результате, память читается со скоростью 500 килобайт в секунду.

Pzz>Спасибо.
Pzz>Охренеть можно. А как из сделать то же самое из JS?
Не очень понял сам, если честно.

C>>Этот код, естественно, падает на SIGSEGV. Но проблема в том, что CPU успевает таки спекулятивно исполнить одну из проб. И затем с помощью тестирования кэша можно обнаружить какая проба сработала.

Pzz>А кэш как тестируют? По времянке?
Да, самое простое посчитать число тактов. Но этим оно не ограничивается. Причём даже кэш не нужен, один из способов — использовать инструкции с переменным числом тактов (деление, например) и смотреть сколько тактов оно выполняется в зависимости от данных.
Sapienti sat!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.