Есть ли какой-нибудь процессор, который мог бы расшифровать зашифрованные данные и машинные инструкции?

Есть ли какой-либо процессор, который мог бы расшифровать зашифрованные данные и машинные инструкции, а затем выполнить инструкции для данных, а затем зашифровать результаты?


Процессоров довольно много которые поддерживают зашифрованную память. Такие процессоры прозрачно дешифруют всякий раз, когда они читают из памяти (код или данные), и шифруют перед записью обратно в память.

Это уже много лет поддерживается в процессорах, используемых в смарт-картах и ​​USB-токенах. Например, согласно этому описанию продукта, Infineon SLE78 поддерживает «полное шифрование ЦП, памяти, шины и кэша». Этот процессор является предметом исследования «Каково состояние гомоморфного шифрования?».

За последние несколько лет поддержка шифрования ОЗУ была добавлена ​​к процессорам, используемым в устройствах бытовой электроники, таких как игровые консоли и телеприставки. Хорошим примером этого является XBOX 360, в котором шифрование RAM было серьезной проблемой для хакеров, как описано в этой классической презентации Феликса Домке и Майкла Стейла (видео).

Чтобы минимизировать воздействие Что касается производительности процессора, алгоритм дешифрования RAM, вероятно, будет не сильным блочным шифром, как AES, а синхронным потоковым шифром.

Такая технология шифрования памяти предназначена для защиты от злоумышленника, который не контролирует ЦП, но может напрямую обращаться к физической памяти, например, исследуя шину, соединяющую ЦП с физической памятью.


4

Это активная область исследования (например, см. это). На самом деле это довольно сложная проблема, поскольку модель безопасности предполагает, что злоумышленником является хост-система, которая может наблюдать за каждым обращением к памяти. В этих условиях трудно не допустить утечки информации …

Например, представьте себе ЦП, который вычисляет подпись RSA. В ходе алгоритма ЦП будет оценивать некоторые инструкции, некоторые из которых являются условными переходами, и ЦП работает с конвейером с некоторым предсказанием ветвлений : чтобы сделать вещи немного быстрее, ЦП пытается угадать, будет ли данная условная ветвь выполнена или пройдена, основываясь на том, что произошло при последнем обнаружении этого перехода. Когда ЦП ошибается, выполнение останавливается на несколько циклов: ЦП должен забыть о своей текущей конвейерной обработке и пополнить свой конвейер фактическими инструкциями.

Теперь представим себе довольно ограниченного атакующего, который может только наблюдайте, правильно ли предсказываются прыжки или нет. Это небольшая мощность; в случае вашего зашифрованного процессора злоумышленник может узнать гораздо больше. Но, по крайней мере, , поскольку и код операции, и данные поступают из памяти, наблюдение за выборками и записью в память (в частности, целевые адреса и время доступа с точностью цикла) сообщит злоумышленнику, что происходит с ветвью предсказание.

Оказывается, такой информации достаточно для восстановления ключа RSA. Это довольно сильный и пугающий результат, потому что анализ прогнозирования ветвлений может быть выполнен на современном ЦП с гиперпоточностью из непривилегированного процесса, запущенного на том же процессоре (это означает, что в Облаке ваши соседи, то есть другие клиенты того же Облака , опасны …). Представленная вами модель, в которой сама архитектура хоста является враждебной, только упрощает ( намного ) задачу для противника.

Неопровержимые факты никогда не мешали ведению бизнеса. Таким образом, существуют микроконтроллеры, которые, по крайней мере, делают вид, что выполняют такое автоматическое шифрование, какое вы хотите. См., Например, DS5002FP от Maxim Integrated. Обратите внимание, что я не утверждаю, что этот продукт неисправен: это очень маленький 8-битный процессор, который вряд ли будет выполнять прогнозирование ветвлений или другие подобные источники утечек, и он встраивает всю свою оперативную память в сам чип. Это делает требование безопасности как минимум возможным , даже правдоподобным . Это также означает, что вычислительная мощность останется низкой. Такой микроконтроллер будет предлагать примерно столько же мощности, сколько мой первый компьютер (1984 года).

Значит, виртуальный процессор? Теоретически возможно (или, более того, точно, это не было доказано невозможным) передать произвольные вычисления на ненадежный компьютер с помощью полностью гомоморфного шифрования. Существует даже реализация с открытым исходным кодом, но она даже медленнее, чем 8051-совместимый процессор из предыдущего абзаца. Опять же, это активная область исследований.

Улучшите этот ответ
отредактировано 13 октября 2012 г. в 15:49
ответил 13 октября 2012 в 15:25
добавить комментарий |

Это активная область исследований (например, см. это). На самом деле это довольно сложная проблема, поскольку модель безопасности предполагает, что злоумышленником является хост-система, которая может наблюдать за каждым обращением к памяти. В этих условиях трудно не допустить утечки информации …

Например, представьте себе ЦП, который вычисляет подпись RSA. В ходе алгоритма ЦП будет оценивать некоторые инструкции, некоторые из которых являются условными переходами, и ЦП работает с конвейером с некоторым предсказанием ветвлений : чтобы сделать вещи немного быстрее, ЦП пытается угадать, будет ли данная условная ветвь выполнена или пройдена, основываясь на том, что произошло при последнем обнаружении этого перехода.. Когда ЦП ошибается, выполнение останавливается на несколько циклов: ЦП должен забыть о своей текущей конвейерной обработке и пополнить свой конвейер фактическими инструкциями.

Теперь представим себе довольно ограниченного атакующего, который может только наблюдайте, правильно ли предсказываются прыжки или нет. Это небольшая мощность; в случае вашего зашифрованного процессора злоумышленник может узнать гораздо больше. Но, по крайней мере, , поскольку и код операции, и данные поступают из памяти, наблюдение за выборками и записью в память (в частности, целевые адреса и время доступа с точностью цикла) сообщит злоумышленнику, что происходит с ветвью предсказание.

Оказывается, такой информации достаточно для восстановления ключа RSA. Это довольно сильный и пугающий результат, потому что анализ прогнозирования ветвлений может быть выполнен на современном ЦП с гиперпоточностью из непривилегированного процесса, запущенного на том же процессоре (это означает, что в Облаке ваши соседи, то есть другие клиенты того же Облака , опасны …). Представленная вами модель, в которой сама архитектура хоста является враждебной, только упрощает ( намного ) задачу для противника.

Неопровержимые факты никогда не мешали ведению бизнеса. Таким образом, существуют микроконтроллеры, которые, по крайней мере, делают вид, что выполняют такое автоматическое шифрование, какое вы хотите. См., Например, DS5002FP от Maxim Integrated. Обратите внимание, что я не утверждаю, что этот продукт неисправен: это очень маленький 8-битный процессор, который вряд ли будет выполнять прогнозирование ветвлений или другие подобные источники утечек, и он встраивает всю свою оперативную память в сам чип. Это делает требование безопасности как минимум возможным , даже правдоподобным . Это также означает, что вычислительная мощность останется низкой. Такой микроконтроллер будет предлагать примерно столько же мощности, сколько мой первый компьютер (1984 года).

Значит, виртуальный процессор? Теоретически возможно (или, более того, точно, это не было доказано невозможным) передать произвольные вычисления на ненадежный компьютер с помощью полностью гомоморфного шифрования. Существует даже реализация с открытым исходным кодом, но она даже медленнее, чем 8051-совместимый процессор из предыдущего абзаца. Опять же, это активная область исследований.


3

Да, есть. Фактически, весьма вероятно, что вы писали с одного. Но шифрование в процессоре — не панацея.

ЦП x86 (процессор ПК) или высокопроизводительный процессор ARM (процессор смартфона) содержат небольшой объем кеш-памяти. Здесь достаточно места для кода, позволяющего «на лету» шифровать и расшифровывать инструкции и данные. Таким образом, внешняя оперативная память фактически становится зашифрованным хранилищем и пространством подкачки.

Для большинства атак нет разницы между самим процессором и самым внутренним уровнем кэша (кеш L1).. Кэш L1 находится внутри той же кремниевой пластины, что и процессор, и физическая атака на кэш будет столь же сложной, как физическая атака на сам процессор. Так что в целях безопасности процессор и кеш L1 одинаковы. Во многих процессорах даже кэш L2 находится внутри одного пакета и его так же сложно атаковать, что дает больше места для работы. Если вы беспокоитесь о злоумышленниках, которые могут проникнуть внутрь пакета, вам действительно нужно поместить свой процессор внутрь защищенный от взлома ящик, то есть HSM, и в этом случае вы могли бы также поместить в него достаточно ОЗУ.

Преимущество шифрования данных вне ЦП состоит в том, чтобы избежать атак на внешнее ОЗУ. Существует два основных типа атак: отслеживание активной шины RAM или изменение данных на шине и сброс содержимого RAM.

Существует несколько проблем с шифрованием данных вне кеша процессора.

  • Медленно. Вы не только тратите много времени на шифрование, но и тратите много места в кэше.
  • Для этого требуется поддержка глубоко в недрах операционной системы. Это нетривиальная задача; при ограниченных ресурсах кодирования часто стоит потратить больше времени на борьбу с более распространенными атаками, например на поиск уязвимостей переполнения буфера и инъекций строк.
  • Возникает проблема начальной загрузки: как процессор узнает, что получает код шифрования, у которого нет бэкдора, и где он берет ключ? Если ключи хранятся на жестком диске, они также могут храниться в ОЗУ.
    • Одна из возможностей заключается в том, что пользователь вводит парольную фразу с высокой энтропией, которую злоумышленник не может реально грубая сила. Учитывая, что атаки на ключ будут проводиться в автономном режиме, предположение, что у пользователя будет кодовая фраза с достаточной энтропией, реалистично только для небольшой части пользователей.
    • Другая возможность — сохранить ключ внутри пакет. Насколько мне известно, текущие процессоры Intel не имеют постоянной памяти. Некоторые высокопроизводительные процессоры ARM это делают (у них есть небольшое количество разрядов однократной записи или несколько килобайт встроенной флэш-памяти).

Существуют также процессоры, которые имеют прямую аппаратную поддержку шифрования в ЦП, и все коммуникационные шины, выходящие из ЦП, зашифрованы. (Я знаю, что они существуют, но не могу назвать номер детали.) Эти процессоры, как правило, используются в специализированных приложениях.

¹ Очевидный способ сделать это — даже запатентовано.

Улучшите этот ответ
отредактировано 15 октября 2012 в 1:33
ответил 15 октября ’12 в 1:27
добавить комментарий |

Да, есть. На самом деле, весьма вероятно, что вы написали из один. Но шифрование в процессоре — не панацея.

ЦП x86 (процессор ПК) или высокопроизводительный процессор ARM (процессор смартфона) содержат небольшой объем кеш-памяти. Здесь достаточно места чтобы разместить код для шифрования и дешифрования инструкций и памяти данных на лету. Таким образом, внешняя RAM фактически становится зашифрованным хранилищем и пространством подкачки. ¹

Для большинства атак нет разницы между процессором сам и самый внутренний уровень кэша (кэш L1). Кэш L1 находится внутри той же кремниевой пластины, что и процессор, и физическая атака на кеш будет примерно такой же сложной, как физическая атака на сам процессор. Таким образом, в целях безопасности , процессор и кэш L1 одинаковы. Во многих процессорах даже кэш L2 находится внутри одного пакета и ab так сложен для атаки, что дает больше места для работы. Если вы беспокоитесь о злоумышленниках, которые могут проникнуть внутрь пакета, вам действительно нужно поместить свой процессор в защищенный от взлома ящик, то есть HSM, и в этом случае вы с таким же успехом можно было бы поместить в коробку достаточно ОЗУ.

Преимущество шифрования данных вне ЦП состоит в том, чтобы избежать атак на внешнюю ОЗУ. Существует два основных типа атак: отслеживание активной шины RAM или изменение данных на шине и сброс содержимого RAM.

Существует несколько проблем с шифрованием данных вне кеша процессора.

  • Медленно. Вы не только тратите много времени на шифрование, но и тратите много места в кэше.
  • Для этого требуется поддержка глубоко в недрах операционной системы. Это нетривиальная задача; при ограниченных ресурсах кодирования часто стоит потратить больше времени на борьбу с более распространенными атаками, например на поиск уязвимостей переполнения буфера и инъекций строк.
  • Возникает проблема начальной загрузки: как процессор узнает, что получает код шифрования, у которого нет бэкдора, и где он берет ключ? Если ключи хранятся на жестком диске, они также могут храниться в ОЗУ.
    • Одна из возможностей заключается в том, что пользователь вводит парольную фразу с высокой энтропией, которую злоумышленник не может реально грубая сила. Учитывая, что атаки на ключ будут проводиться в автономном режиме, предположение, что у пользователя будет кодовая фраза с достаточной энтропией, реалистично только для небольшой части пользователей.
    • Другая возможность — сохранить ключ внутри пакет. Насколько мне известно, текущие процессоры Intel не имеют постоянной памяти. Некоторые высокопроизводительные процессоры ARM это делают (у них есть небольшое количество бит однократной записи или несколько килобайт встроенной флэш-памяти).

Существуют также процессоры, которые имеют прямую аппаратную поддержку шифрования в ЦП, и где все коммуникационные шины, выходящие из ЦП, зашифрованы. (Я знаю, что они существуют, но не могу назвать номер детали.) Эти процессоры, как правило, используются в специализированных приложениях.

¹ Очевидный способ сделать это — даже запатентовано.


1

Не в единственная инструкция, нет. Но, возможно, вы сможете добиться чего-то очень близкого к этому с помощью процессора, поддерживающего инструкции AES-NI (современные процессоры Intel и AMD), с программой, написанной на x86_64 ASM (язык ассемблера). Я не могу дать вам однозначного ответа, потому что я не программист ASM. Я предполагаю, что вы хотите избежать записи незашифрованной информации в системную оперативную память и сохранить ее полностью внутри центрального процессора. Это довольно низкоуровневый материал. Кстати, есть патч для ядра Linux, который позволяет хранить ключ шифрования всего диска только в регистрах ЦП, а не в ОЗУ. Он обеспечивает фактор защиты от атак холодной загрузки, которые полагаются на ключ шифрования, хранящийся в ОЗУ.

Улучшите этот ответ
ответил 13 окт. 2012 в 11:27
  • На самом деле это не отвечает на вопрос и делает довольно сумасшедшие предположения. — Полином, 13 окт. ’12 в 13:18
добавить комментарий |

Ни в одной инструкции, нет. Но, возможно, вы сможете достичь чего-то очень близкого к этому с помощью процессора, поддерживающего инструкции AES-NI (современные процессоры Intel и AMD), с программой, написанной на x86_64 ASM (язык ассемблера). Я не могу дать вам однозначного ответа, потому что я не программист ASM. Я предполагаю, что вы хотите избежать записи незашифрованной информации в системную оперативную память и сохранить ее полностью внутри центрального процессора. Это довольно низкоуровневый материал. Кстати, есть патч для ядра Linux, который позволяет хранить ключ шифрования всего диска только в регистрах ЦП, а не в ОЗУ. Он обеспечивает фактор смягчения против атак с холодной загрузкой, которые полагаются на ключ шифрования, хранящийся в ОЗУ.



Расшифровка обзоров ЦП: Руководство для начинающих по терминам процессора

yishii/Shutterstock

Проверка ЦП сложна. Прежде чем вы даже дойдете до тестов производительности, вам придется разобраться в лабиринте терминов, таких как кремний, кристалл, корпус, IHS и sTIM. Это много жаргона без небольшого объяснения. Мы определим ключевые части процессора, которые компьютерные энтузиасты обсуждают больше всего..

Обратите внимание, что это не предназначено для глубокого погружения, а скорее введение в общую терминологию для начинающих компьютерных фанатов.

Начните с кремния

Более 10 лет назад Intel поделилась основами создания процессоров, от сырья до готового продукта. . Мы будем использовать этот процесс в качестве базовой структуры при рассмотрении ключевого компонента ЦП: кристалла.

Intel

Первое, что нужно ЦП, — это кремний. Этот химический элемент является наиболее распространенным компонентом песка. Intel начинает с кремниевого слитка, а затем разрезает его на тонкие диски, называемые пластинами.

Затем пластины полируются до «зеркально гладкой поверхности», и тогда начинается самое интересное! Кремний превращается из исходного материала в источник энергии для электроники.

Кремниевые пластины покрываются фоторезистом. Затем они подвергаются воздействию ультрафиолета, травятся и покрываются еще одним слоем фоторезиста. В конце концов, они покрываются ионами меди и полируются. Затем добавляются металлические слои, чтобы соединить все крошечные транзисторы, существующие на пластине в этот момент. (Как мы упоминали ранее, здесь мы рассматриваем только основы).

Теперь мы подошли к важному для нас вопросу. Вафля проверена на работоспособность. Если он проходит, он разрезается на маленькие прямоугольники, называемые плашками. Каждый кристалл может иметь несколько процессорных ядер, а также кэш и другие компоненты ЦП. После нарезки штампы снова испытывают. Те, которые проходят, предназначены для полок магазинов.

Кремниевый кристалл для Intel Core 10-го поколения процессор. Intel

Вот и все, что представляет собой кристалл: небольшой кусок кремния, загруженный транзисторами, который является сердцем любого процессора. Любая другая физическая часть помогает этому маленькому кристаллу делать свою работу.

Но вот что интересно: в зависимости от процессора, который вы получаете, ЦП может иметь один или несколько кристаллов кремния. Один кристалл означает, что все компоненты процессора, такие как ядра и кэш, находятся на одном кристалле. Между несколькими матрицами есть соединительный материал.

Нет простого способа точно узнать, имеет ли конкретный процессор один или несколько кристаллов. Это зависит от производителя.

Intel известна тем, что использует один кристалл для своих потребительских процессоров. Это называется монолитной конструкцией. Преимущество монолитной конструкции — более высокая производительность, так как все находится на одном кристалле и небольшая задержка при обмене данными.

Однако труднее добиться прогресса, когда вам нужно упаковать все меньшие и меньшие транзисторы на тот же размер кремния. Также сложнее производить одиночные матрицы, которые работают со всеми активными ядрами, особенно когда мы говорим о восьми или 10 ядрах.

Схема для процессора AMD Threadripper, использующего несколько CCX. AMD

В этом отличие от AMD. Компания действительно производит некоторые монолитные процессоры, но в серии Ryzen 3000 для настольных ПК используются кремниевые чиплеты меньшего размера, которые в настоящее время имеют четыре ядра на кремнии. Эти чиплеты называются базовым комплексом или CCX. Они собраны вместе, чтобы создать более крупную матрицу Core Complex Die (CCD). Эта ПЗС-матрица, на языке AMD, считается «кристаллом». Это несколько небольших кремниевых чиплетов, которые соединяются для создания работающего ЦП.

Процессоры AMD также имеют кремниевый кристалл, отдельный от ПЗС-матриц, который называется кристаллом ввода-вывода. Мы не будем вдаваться в подробности здесь, но вы можете узнать больше об этом в статье TechPowerUp от июня 2019 года.

Учитывая, насколько сложно создать функционирующие кремниевые кристаллы, очевидно, что это намного сложнее. легче создать меньший блок из четырех ядер, чем один кристалл с 10 ядрами.

Пакет ЦП

Когда кристалл готов, ему нужна помощь разговаривать с остальной частью компьютерной системы. Обычно это начинается с небольшой зеленой платы, которую часто называют подложкой.

Если вы перевернете готовый процессор, в нижней части зеленой платы будут золотые контакты (или штыри, в зависимости от производитель). Эти контакты или штырьки входят в гнездо материнской платы и позволяют процессору взаимодействовать с остальной частью системы.

Возвращаясь к нашему процессору, мы еще не закрыли кремниевый кристалл. Основным компонентом здесь является материал термоинтерфейса, или ТИМ. TIM улучшает теплопроводность (важно для охлаждения процессора). Обычно он поставляется в одной из двух форм: термопаста или sTIM (паяный термоинтерфейсный материал).

Материал TIM может варьироваться в зависимости от поколения ЦП от одного производителя. Вы никогда не сможете по-настоящему узнать, что есть у конкретного ЦП, если не прочитаете новости ЦП или не откроете («удалите») готовый процессор самостоятельно. Например, Intel использовала термопасту с 2012 по 2018 год, но затем начала использовать sTIM на своих процессорах Core девятого поколения верхнего уровня.

В любом случае, это те части, которые составляют пакет: кристалл, подложка и TIM.

Визуализация AMD Процессор Ryzen. Название бренда напечатано на IHS. AMD

Наконец, наверху пакета есть встроенный теплоотвод, или IHS. IHS распределяет тепло от процессора на большую площадь поверхности, чтобы снизить температуру процессора. Затем вентилятор ЦП или жидкостный охладитель отводят тепло, накопленное на IHS. IHS обычно изготавливается из никелированной меди. На нем напечатано имя ЦП, как показано выше.

На этом наш обзор ЦП завершен. Опять же, кристалл — это кусок кремния, который содержит ядра процессора, кеши и так далее. В комплект входит матрица, печатная плата и модуль TIM. И, наконец, у вас также есть IHS.

Это еще не все, но именно на них обычно сосредотачиваются новости и обзоры CPU..

ЧИТАЙТЕ СЛЕДУЮЩИЕ
  • › Как смотреть YouTube «Картинка в картинке» в Safari на Mac
  • ›. Сможете ли вы определить, когда у вас У Apple Watch есть блокировка GPS?
  • › Как использовать пакеты стикеров в Signal
  • › Как изменить ярлык, открывающий игровую панель Windows 10
  • › Как открыть файл MBOX (с помощью Mozilla Thunderbird)
Оцените статью
logicle.ru
Добавить комментарий