Выявление аппаратных уязвимостей Spectre и Meltdown в процессорах Intel поставило перед архитекторами компании сложнейшую задачу – внести в микроархитектуру CPU изменения, обеспечивающие полную безопасность исполнения при сохранении и даже повышении производительности процессоров. Сейчас, полгода спустя, настало время поделиться результатами данной работы. Конечно, не всеми, а только частью, не являющейся Intel Top Secret.
Как утверждают эксперты по безопасности, создать абсолютно защищенную систему в любой области, в том числе и компьютерной – невозможно. Возможно лишь сделать защиту такой, чтобы стоимость ее взлома превышала стоимость того, что она защищает. И эта задача вполне выполнима. Есть только одна проблема: требования к высокой безопасности и высокой производительности очень плохо совместимы друг с другом.
Поэтому, как уже было сказано выше, задача объединения безопасности и высокой производительности CPU крайне сложна. И на один из возможных способов ее решения инженеров Intel навела такая, казалось бы, не связанная с техникой область, как SEO – Search Engine Optimization – поисковая оптимизация.
На самом деле, между принципами работы процессора и поисковых систем есть много общего. Если в поисковых системах самые популярные сайты попадают на первую страницу выдачи, то в процессоре самые популярные данные и инструкции попадают в кэш память. И на индексируемых сайтах, и в коде программ есть возможность вручную повлиять на «продвижение» — ключевыми словами на сайтах и инструкцией prefetch в процессоре. Но и там, и там результаты в общем случае непредсказуемы, да и делать так в современных системах не советуют. Так же, как поисковики для определения рейтинга страницы отслеживают все ведущие на сайт линки, так и процессоры в ходе неупорядоченного выполнения отслеживают связи по данным всех исполняемых инструкций.
Несколько лет назад поисковые системы, которые, кстати, никогда полностью не раскрывают своих алгоритмов ранжирования страниц, научились бороться с «черной оптимизацией». Так же и новая микроархитектура Intel CPU, в которой алгоритмы неупорядоченного исполнения (OOO execution) и предсказания ветвлений (Branch Prediction) будут полностью засекречены, сможет справиться с ситуацией «обмана» предсказателя ветвлений, использованной в одной из версий уязвимостей Spectre.
А теперь — о главном изменении микроархитектуры. В поисковых системах существует возможность, до сих пор не имевшая аналогии в процессорах. Это — платные рекламные объявления, появляющиеся в начале поисковой выдачи, фактически, дающая возможность за плату существенно продвинуть свой сайт. Если перейти к процессорам, то первое, что приходит в голову, это – платная кэш память, то есть возможность за плату на определенный срок зарезервировать часть кэша за единственным приложением, исключив его вытеснение и обеспечив ему таким образом максимальную производительность.
Но, к сожалению, в общем случае существенно увеличить производительность программного продукта таким способом невозможно – кэш является только одним звеном в цепи обеспечения скорости работы приложений. Поэтому инженеры Intel нашли другое решение. А именно, в новые процессоры планируется добавить отдельное ядро, которое может быть использовано в течение определенного времени любым приложением в эксклюзивном режиме.
Частота работы нового ядра будет вдвое превышать рабочую частоту остальных ядер процессора – фактически, ядро будет постоянно находиться в режиме Turbo Boost, а его микроархитектура будет отличаться от остальных ядер – «соседей» по кристаллу. Главное отличие состоит в том, что из-за гарантированной эксклюзивной работы приложения на ядре появляется возможность отказаться от массы требований обеспечения безопасности, соответственно, пропадет необходимость очень дорогих с точки зрения производительности операций – например, перехода из пользовательского режима в защищенный при системных вызовах. Для поддержки нововведений, конечно же, соответствующие изменения будут внесены в операционную систему.
По предварительным оценкам производительность приложений, использующих новое ядро, вырастет в среднем в 3-4 раза.
Структуры приложений Intel Software Guard Extensions (Intel SGX)
Для предоставления конкретному приложению исключительного доступа к ядру будет использоваться модернизированная версия Intel SGX 1.04. Фактически, все ядро будет являться защищенным анклавом SGX, к которому отсутствует доступ других приложений вне зависимости от текущего уровня их прав. Конечно же, такая схема работы потребует существенного изменения ОС, но у Intel есть соответствующий опыт разработки подобных компонент для Xeon Phi.
Конечно же, новая функциональность будет востребована производителями софта и конечными пользователями, соответственно, за ее использование предполагается взымание платы. После несложного процесса онлайн-платежа пользователи будут получать сгенерированный электронный ключ, необходимый для доступа приложения к новому ядру.
Компания Intel очень серьезно относится к защите персональных данных пользователей, поэтому оплата будет возможна не только традиционными деньгами, но и биткоинами.
Автор: Victoria Zhislina