Исследователи Maxim Gorachy, Dmitry Skkylarov y Mark Ermolov сделали один из самых трудных подвигов современной эпохи, они достигли рубеж в расшифровке секретного ключа из процессоров Intel первый раз в истории.
С помощью этого секретного ключа можно увидеть все содержимое исправлений безопасности и небольших обновлений процессоров, и даже дает возможность прямого доступа к десяткам миллионов процессоров Intel.
Это палка о двух концах, так как с одной стороны хакерское сообщество с добрыми намерениями может создавать патчи для решения общих проблем процессоров Intel, а с другой - может использоваться для шпионских задач.
Какой секретный ключ у процессора?
Чтобы избежать прямого доступа программ к уязвимым частям системы, необходимо создать иерархию кода, выполняемого в системе: так называемые кольца выполнения, которые на уровне программного обеспечения делают приложения не имеют доступа к пространствам в системной памяти, к которым у них нет разрешения.
Но есть секретный уровень, на котором есть код, который не выполняется из системной ОЗУ, а находится во внутренней памяти процессора, и в этой памяти код зашифрован секретным ключом, который знает только производитель этого процессора.
Представьте, что человек "A" хочет отправить сообщение человеку "B", и между ними есть человек "AB", который, используя шифрование, отвечает за расшифровку всех сообщений. Если "A" хочет отправить сообщение «Hello», оно будет расшифровано "AB" как «Gnkz», поэтому человек B не поймет сообщение. С другой стороны, если напишем в сообщении «Ipmb», то дешифратор переведет его в «Hello», и человек в точке "B" поймет сообщение.
В процессоре: секретный ключ не является буквенно-цифровым значением, но для генерации кода используется алгоритм шифрования, который имеет связанное постоянное значение, известное только производителю, и используется как шифровальщиком, так и дешифратором. Шифровальщик используется при компиляции микрокода и представляет собой часть программного обеспечения, тогда как дешифратор находится внутри ЦП и представляет собой аппаратную единицу.