Интересно, что такого гениального в этих дырках, что их нельзя было предусмотреть на этапе проектирования?
Все это очередной развод на бабки, запланированный еще в самом начале производства данных процессоров! Я не поверю что эту дыру заметили через 10 лет!!
Было изначально понятно, что продав мне в 2011 году Core i5-2300 который работает по сей день и особого смысла я его не вижу пока менять, надо как то с меня денег то бы еще взять! Это как с автомобилями сейчас происходит, нет надежного авто ни мерседес ни бмв, даже тойота стала делать одноразовые машины!
И тут проснулись! Дыра! Падает производительность! Что делать? Конечно щас выйдет новое поколение процессоров в которых будет решена проблема и его надо бы купить! А то твой i5-2300 уже не так работает быстро, как мог раньше.
Да в чем собственно проблема то? Что за дыра? Как она мне жизнь испортит? 7 лет не портила а сейчас, выйдет заплатка не понятная, которая снизит производительность на 50%, зачем мне эта заплатка? На компе на котором я фильмы смотрю, читаю новости и иногда играю в игры....
Ну тут все не просто, дыра действительно интересная. Я не спец в архитектуре процессоров, но попробую объяснить:
Для того что-бы процессор работал быстрее был придуман алгоритм, который пытается предсказать какую из следующих инструкций нужно выполнить, например есть код:
«А» = ЗАПРОСИТЬ_ЗНАЧЕНИЕ_А_У_ПОДПРОГРАММЫ()
ЕСЛИ «А» ИСТИНА ТО «Б» = 3+2
ЕСЛИ «А» ЛОЖЬ ТО «Б» = 5+5
Так вот, современный процессор во время своего простоя посчитает значения 3+2 и 5+5 еще до того как ему станет известно чему равно А и положит эти значения(5 и 10) в особую, очень быструю область памяти — кэш, что-бы потом, когда они понадобятся не считать их заново, а просто взять оттуда.
Это была первая часть, теперь вторая: во всех операционных системах есть еще одна особая область памяти — секретная, там хранятся, к примеру ваши «пароли» читать эту память может только пользователь с «супер-пупер-правами» — ядро самой операционной системы.
Хакер может сделать следующие:
«А» = ЗАПРОСИТЬ_ЗНАЧЕНИЕ_А_У_ПОДПРОГРАММЫ()
ЕСЛИ «А» ИСТИНА ТО «Б» = 3+2
ЕСЛИ «А» ЛОЖЬ ТО «Б» = ЗАПРОСИТЬ_ЗНАЧЕНИЕ_ИЗ_СЕКРЕТНОЙ ОБЛАСТИ_ПАМЯТИ()
В обычной ситуации компьютер на это не поведеться, погрозит хакеру польчиком а значение не отдаст.
Но из-за алгоритма предварительного вычисления значения переменных из первой части, секретная область все равно будет прочитана, а значение будет помещено в кэш. Откуда его может, используя очень хитрые механизмы, прочитать хакер.
Соответственно, эта дыра была всегда, просто раньше о ней незнали, а сейчас кто то догадался. Игнорировать такую брешь нельзя — придется чинить, а это приведет к падению производительности. Вобще то вас никто не заставит ставить обновление — можете выяснить номер обновления, которое исправляет эту проблему и отключить его — падения производительности не будет. Но тогда не обессудьте — вас обязательно взломают