Как включить SGX, если он отключен в BIOS на Ubuntu?
Проверка совместимости оборудования
Перед включением SGX в BIOS на Ubuntu необходимо убедиться в совместимости оборудования. Проверьте, что ваш процессор поддерживает SGX и что в BIOS есть опция включения SGX. Проверить совместимость можно посмотрев спецификации процессора на сайте производителя или в документации к материнской плате. Если ваше оборудование не поддерживает SGX, вы можете рассмотреть возможность обновления процессора или замены системы.
Включение SGX в BIOS
Для включения SGX в BIOS на Ubuntu следует войти в настройки BIOS при загрузке компьютера. Найдите раздел, связанный с безопасностью или процессором, и найдите опцию, связанную с включением SGX. Включите эту опцию и сохраните изменения. После перезагрузки компьютера SGX должен быть включен. Убедитесь, что включение SGX не вызывает проблем совместимости или стабильности системы.
Аутентификация и управление доступом
В SGX все аппаратные и программные ресурсы внутри защищенного контейнера находятся под строгим контролем и аутентификацией. Начиная с процессоров 10 поколения Intel Core, SGX также предоставляет функцию управления доступом. Это означает, что только те программные компоненты, которые имеют правильную аутентификацию и соответствующие разрешения, могут получить доступ к ресурсам внутри защищенного контейнера.
Аутентификация SGX основана на контрольных суммах, называемых метаданными атрибутов, которые хранятся внутри самого контейнера. Эти метаданные атрибутов используются для проверки подлинности контейнера и его компонентов при запуске. Если метаданные атрибутов не проходят проверку, SGX не будет запускать контейнер.
Управление доступом в SGX основано на привилегиях и разрешениях, которые могут быть назначены для каждого компонента контейнера. Разработчики могут указать, какие компоненты имеют доступ к ресурсам внутри контейнера, и какие разрешения должны быть предоставлены для каждого компонента. Это позволяет тщательно контролировать, кто и как может получить доступ к защищенным ресурсам и функциям внутри контейнера.
В целом, аутентификация и управление доступом в Intel Software Guard Extensions являются важными мерами для обеспечения безопасности и конфиденциальности значимых данных. Вместе с другими функциями SGX они обеспечивают наиболее надежную защиту от атак и несанкционированного доступа к критически важным операциям и данных.
Детали устройства[править | править код]
SGX выделяет область памяти, называемую зарезервированной памятью процессора (Processor Reserved Memory, PRM). Процессор защищает PRM от всех не-анклавных обращений к памяти, включая доступ ядра, гипервизора и режима системного управления (System Management Mode, SMM), а также доступ DMA от периферийных устройств.
PRM содержит Enclave Page Cache (EPC), который состоит из 4-килобайтных страниц, в которых хранятся код и данные анклавов. Ненадёжное системное программное обеспечение отвечает за назначение страниц EPC анклавам. Центральный процессор отслеживает состояние каждой страницы EPC в метаданных кэша страниц анклава (Enclave Page Cache Metadata, EPCM), чтобы гарантировать, что каждая страница EPC принадлежит только одному анклаву.
Исходный код и данные в анклаве загружаются ненадёжным системным программным обеспечением. На этапе загрузки системное программное обеспечение просит центральный процессор скопировать данные из незащищённой памяти (вне PRM) на страницы EPC и назначает страницы для устанавливаемого анклава. Отсюда следует, что начальное состояние анклава известно системному программному обеспечению.
После того, как все страницы анклава загружены в EPC, системное программное обеспечение просит центральный процессор пометить анклав как инициализированный, после чего прикладное программное обеспечение может выполнить код внутри анклава. После инициализации анклава запрещается способ загрузки, описанный выше.
Пока анклав загружается, на основе его содержимого вычисляется криптографический хэш. После инициализации анклава, процесс хеширования завершается и полученный хэш становится проверочным хэшем анклава (measurement hash).
Удалённая сторона может пройти процедуру аттестации, чтобы убедиться, что она обменивается данными с анклавом, который имеет определённый проверочный хэш и работает в защищённой среде.
Поток выполнения может войти в анклав только через специальные инструкции центрального процессора, которые аналогичны механизму переключения из режима пользователя в режим ядра. Выполнение анклава всегда происходит в защищённом режиме, на кольце 3, и использует трансляцию адресов, установленную ядром ОС и гипервизором.
Чтобы избежать утечки конфиденциальных данных, во время выполнения кода анклава центральный процессор не обслуживает прерывания (например, page fault) или выход виртуальной машины (vmexit). Вместо этого центральный процессор сначала выполняет Асинхронный Выход из Анклава (Asynchronous Enclave Exit, AEX), чтобы переключиться с кода анклава на код кольца 3, а затем обслуживает прерывание или выход виртуальной машины. Центральный процессор выполняет AEX, сохраняя своё состояние в предварительно определённой области внутри анклава, и передаёт управление предварительно определённой инструкции вне анклава, заменяя регистры центрального процессора синтетическими значениями.
Выделение страниц EPC для анклавов делегируется ядру операционной системы (или гипервизору). Операционная система сообщает о своих решениях о выделении памяти реализации SGX посредством специальных инструкций центрального процессора кольца 0. Операционная система также может выгружать страницы EPC в ненадёжную оперативную память, а затем загружать их обратно, используя специальные инструкции процессора.
SGX использует Memory Encryption Engine (MEE), чтобы обеспечить конфиденциальность, целостность и актуальность выгруженных страниц EPC, пока они хранятся в ненадёжной памяти. MME работает как расширение блока управления памятью и автоматически зашифровывает все данные, передаваемые от процессора к памяти.
Развитие SGX и будущие перспективы
Технология Software Guard Extensions (SGX) продолжает активно развиваться и находить новые применения. Ее возможности постоянно расширяются, что открывает новые перспективы в области безопасности и защиты данных.
В настоящее время компании Intel и разработчики программного обеспечения активно работают над улучшением SGX. В результате появляются новые функции, позволяющие разработчикам более эффективно использовать SGX для обеспечения безопасности приложений.
В будущем ожидается еще большее расширение SGX. Одной из перспективных областей применения технологии является облако. SGX позволяет обеспечить безопасность данных в облаке, что является актуальной задачей для многих компаний и организаций.
Еще одной перспективной областью применения SGX является защита данных в сфере интернета вещей (IoT)
С ростом числа устройств IoT и их взаимодействия, безопасность становится особенно важной. SGX позволяет защитить данные от нежелательного доступа и несанкционированного изменения
Кроме того, развитие SGX может привести к созданию новых стандартов безопасности в индустрии. Это поможет улучшить безопасность в целом и обеспечить защиту данных на новом уровне.
Однако рост и развитие SGX также ставит перед разработчиками и пользователями новые задачи. Необходимо постоянно следить за обновлениями и использовать последние версии SGX, чтобы обеспечить максимальную защиту данных.
- SGX — это аппаратное обеспечение, встроенное в процессоры Intel, которое позволяет создавать безопасные области памяти, изолированные от других процессов и даже операционной системы.
- SGX предоставляет дополнительный уровень защиты от атак и утечки данных, так как даже владелец системы не имеет доступа к зашифрованным данным внутри SGX.
- Использование SGX требует поддержки со стороны операционной системы и программных приложений. Однако, все больше разработчиков внедряют поддержку SGX в свои продукты, что позволяет использовать его преимущества.
На основе проведенного анализа, можно сделать следующие рекомендации:
При выборе нового компьютера или процессора, рекомендуется учитывать наличие технологии SGX и его поддержку операционной системой.
Если вы разрабатываете программное обеспечение, стоит обратить внимание на возможность использования SGX для улучшения безопасности и защиты данных.
В случае, если для работы понадобится использование SGX, необходимо убедиться, что используемые процессоры и система соответствуют требованиям этой технологии.
Следует обратить внимание на обновления процессоров и драйверов, связанных с SGX, чтобы использовать последние функциональные возможности и исправления безопасности.
SGX продолжает развиваться и улучшаться, и эта технология имеет потенциал для использования в различных сферах, где требуется высокий уровень безопасности и защиты данных.
acpi_call
If you just want to have long battery life and slow temperature, you can use acpi_call: a linux kernel module that enables calls to ACPI. With acpi_call_GUI you can easily install and configure it via graphic interface.
It is a java program that allows you to:
- install the acpi_call kernel module (kernel would be recompiled automatically after each update);
- Deactivate discrete GPU;
- Automatically deactivate discrete GPU on every boot.
If you have enabled systemd, or if you’re using other linux distros that support it, you can use acpi_call_GUI_systemd.
See here: https://github.com/marcoDallas/acpi_call_GUI_systemd
Installation
-
Ensure that you have installed java and git, if not install these packages: git and openjdk-7-jre
-
After that open a terminal and type the following commands:
git clone https://github.com/marcoDallas/acpi_call_GUI.git cd acpi_call_GUI sudo chmod +x install.sh sudo ./install.sh
How to use
To launch acpi_call_GUI search it in yuor dash and click on the icon, or type in a terminal:
sudo java -jar $HOME/acpi_call_GUI.jar
If you have a separate /home partition, you may need to use this command to launch acpi_call_GUI:
sudo java -jar /usr/local/bin/acpi_call_GUI/acpi_call_GUI.jar
Here’s a step-by-step video tutorial that shows how to use this software
Re: SGX disabled by BIOS
davyyg
I installed dual OS: Ubuntu & Win 11. It normally works until one day, when I tried to enter ubuntu it shows me this error message: SGX disabled by BIOS.
I do not think that this is an error message, probably just providing information.
It refers to Software Guard Extensions — a set of security-related instruction codes that are built into some Intel central processing units.
You should have the option to enable/disable this in UEFI settings (security tab?) On my PC, It has been disabled for more than 3 years without presenting any problem. The message appears for less than one second and I always ignore it.
Enterprise/business users may find it beneficial if each PC is used by more than one employee. For home users, generally not essential.
(Legacy) EPID Attestation
tip
Skip this section if you already configured AESM with DCAP Attestation.
info
EPID attestation support has been discontinued in newer processors (Intel Xeon 3rd generation onwards).
Please refer to the section on newer systems.
Ubuntu 22.04
A convenient way to install the AESM service on Ubuntu 22.04 systems
is to use the Intel’s official Intel SGX APT repository.
First add Intel SGX APT repository to your system:
And then install the , and
packages:
The AESM service should be up and running. To confirm that, use:
Docker-enabled System
An easy way to install and run the AESM service on a Docker-enabled
system is to use our AESM container image.
Executing the following command should (always) pull the latest version of our
AESM Docker container, map the SGX devices and directory and
ensure AESM is running in the background (also automatically started on boot):
tip
Make sure to use the correct devices based on your .
The example above assumes the use of the newer driver which uses two devices.
For the legacy driver you need to specify instead.
Make sure to use the correct docker image based on your attestation method.
For DCAP use the and for EPID use the
image.
Требования для установки Intel Software Guard Extensions (SGX)
Для установки и использования Intel Software Guard Extensions (SGX) необходимо удостовериться, что система соответствует следующим минимальным требованиям:
Требование | Описание |
---|---|
Процессор | Должен поддерживать технологию Intel SGX. Поддержка SGX была введена начиная с 6-го поколения процессоров Intel Core и Xeon. |
Операционная система | Необходима операционная система, поддерживающая Intel SGX. В настоящее время поддержка SGX доступна для Windows 10 (версия 1709 и выше), Linux (ядро версии 4.14 и выше) и Android (начиная с версии 8.0). |
ПО и драйверы | Должны быть установлены все необходимые программное обеспечение и драйверы для поддержки Intel SGX. Это может включать в себя Intel SGX SDK, драйвера Intel SGX, Intel SGX PSW и другие компоненты. |
Безопасное оборудование | Для установки Intel SGX может потребоваться физическое наличие безопасного оборудования, такого как TPM (Trusted Platform Module) или другое оборудование, поддерживающее требования Intel SGX. |
Если система соответствует всем указанным требованиям, вы сможете успешно установить и использовать Intel Software Guard Extensions (SGX) для обеспечения безопасности ваших приложений.
На страже руткитов
Ну а теперь перейдём к «горячему». Однажды мы обнаружили, что на многих системах в SPI флэш-дескрипторах записаны разрешения на доступ к регионам SPI флэш-памяти так, что все пользователи этой памяти могут и писать, и читать любой регион. Т.е. никак. После проверки с помощью утилиты MEinfo (из Intel STK) мы увидели, что manufacturing mode на этих системах не закрыт, следовательно, фьюзы чипсета (FPF-ы) оставлены в неопределённом состоянии. Да, Intel BG в таких случаях ни включён, ни выключен.
Речь идёт о следующих системах (касаемо Intel BG и того, что будет изложено далее в статье, мы будем говорить о системах с процессорной микроархитектурой Haswell и выше):
- вся продукция Gigabyte;
- вся продукция MSI;
- 21 модель ноутбуков Lenovo и 4 модели серверов Lenovo.
Разумеется, мы сообщили о находке этим вендорам, а также компании Intel. Адекватная реакция последовала только от Lenovo
, которые признали проблему и выпустили патч.
Gigabyte
вроде и приняли информацию об уязвимости, но никак не прокомментировали.
Общение с MSI
вовсе застопорилось на нашей просьбе прислать свой открытый PGP-ключ (чтобы отправить им security advisory в зашифрованном виде). Они заявили, что «являются производителем оборудования, и PGP-ключи не производят».
Но ближе к делу. Поскольку фьюзы оставлены в незаданном состоянии, пользователь (или злоумышленник) может их запрограммировать самостоятельно (самое сложное — найти Intel STK). Для этого требуется выполнить следующие действия.
1.
Загрузиться в ОС Windows (вообще, описываемые далее действия можно сделать и из под Linux, если разработать аналог Intel STK под нужную ОС). Используя утилиту MEinfo, убедиться в том, что фьюзы на данной системе не запрограммированы.
2. Считать содержимое флэш-памяти при помощи Flash Programming Tool.
3. Открыть считанный образ при помощи любого средства для редактирования UEFI BIOS, внести необходимые изменения (внедрить руткит, например), создать/отредактировать имеющиеся структуры KEYM и IBBM в ME регионе.
На картинке выделена публичная часть ключа RSA, хеш которой будет запрограммирован во фьюзы чипсета вместе остальной конфигурацией Intel BG.
4.
При помощи Flash Image Tool собрать новый образ прошивки (задав конфигурацию Intel BG).
5. Записать новый образ на флэш-память при помощи Flash Programming Tool, убедиться при помощи MEinfo, что ME регион теперь содержит конфигурацию Intel BG.
6. При помощи Flash Programming Tool закрыть режим manufacturing mode.
7. Система перезазгрузится, после чего при помощи MEinfo можно убедиться в том, что FPF-ы теперь запрограммированы.
Эти действиянавсегда включат Intel BG на данной системе. Отменить действие будет нельзя, что означает:
- обновлять UEFI BIOS на данной системе сможет только обладатель приватной части корневого ключа (т.е. тот, кто включил Intel BG);
- если вернуть этой системе оригинальную прошивку, например, с помощью программатора, она даже не включится (следствие enforcement policy в случае ошибки верификации);
- чтобы избавиться от такого UEFI BIOS, требуется заменить чипсет с запрограммированными FPF-ами на «чистый» (т.е. перепаять чипсет, если у вас есть доступ к инфракрасной паяльной станции ценой в автомобиль, ну или просто заменить материнскую плату).
Для понимания того, что может натворить такой руткит, нужно оценить, что даёт возможность исполнять свой код в среде UEFI BIOS. Скажем, в самом привилегированном режиме процессора – SMM. Такой руткит может иметь следующие свойства:
- исполняться параллельно ОС (можно настроить отработку по генерации SMI прерывания, которое будет триггериться по таймеру);
- иметь все преимущества нахождения в режиме SMM (полный доступ к содержимому оперативной памяти и к аппаратным ресурсам, скрытность от ОС);
- программный код руткита может находиться в шифрованном виде и дешифровываться при запуске в режиме SMM. В качестве ключа для шифрования можно использовать любые данные, доступные только в режиме SMM. Например, хеш от набора адресов в SMRAM. Чтобы получить этот ключ, потребуется забраться в SMM. А это можно сделать двумя способами. Найти RCE в коде SMM и проэксплуатировать, либо добавить в BIOS свой SMM модуль, что невозможно, поскольку мы включили Boot Guard.
Таким образом, эта уязвимость позволяет злоумышленнику:
- создать в системе скрытый, неудаляемый руткит неизвестного назначения;
- исполнять свой код на одном из ядер чипсета внутри Intel SoC, а именно, на Intel ISH (внимательно взглянем на картинку).
Хотя возможности подсистемы Intel ISH ещё не изучены, она представляется интересным вектором атаки на Intel ME.
#3 2021-08-30 23:05:48
Re: Kernel reports 2 intel module error messages on every boot
I too have been seeing the SGX disabled message recently in my logs, this post spurred me to do some digging.
Going through my journal, it looks like it started for me on 2021-07-20, which when I checked my pacman logs, is when I upgraded linux from 5.12.15 to 5.13.4.
As I could find no setting in my BIOS that was related to these Software Guard Extensions, I did some cursory google-fu about the SGX message and found this interesting link. It purports to explain how to enable this via «software opt-in», see quote from page below for reference:
Intel Software Guard Extensions (SGX) is a hardware-based isolation and memory encryption mechanism provided by modern Intel CPUs. Normally, it is disabled in the BIOS by the manufacture of your motherboard. In order to use it, the SGX option in the BIOS must be set to Enable or Software Controlled.
By setting the option to Enable, all of the SGX instructions and resources are available to applications, making it easy to deploy SGX related program on your machine. However, in some motherboards, the only available options in the BIOS are Software Controlled and Disable. According to the official document of Intel, Software Controlled indicates that Intel SGX can be enabled by software applications, but it is not available until this occurs (called the “software opt-in”).
The only other link I found that was semi relevant for me was a Dell support forum post with no replies. I am using a precision 5510, not 3510, but same era model cpu. Again I don’t see any options in my BIOS about SGX.
I don’t have any messages related to intel-spi. But interestingly, I was unable to use fwupdmgr to update to the latest BIOS recently. It saw I had an available upgrade and downloaded it, but once downloaded told me I didn’t have any available devices?
Last edited by CarbonChauvinist (2021-08-30 23:06:50)
«the wind-blown way, wanna win? don’t play»
Защита конфиденциальности и интеллектуальной собственности
Intel Software Guard Extensions (SGX) — это технология, разработанная компанией Intel, которая обеспечивает защиту конфиденциальности и интеллектуальной собственности. С помощью SGX разработчики могут создавать безопасные области памяти, называемые контейнерами, в которых могут выполняться конфиденциальные вычисления и храниться чувствительные данные.
Одна из основных проблем в области безопасности данных — это угрозы внутренних атак. Когда конфиденциальные данные хранятся и обрабатываются на сервере, могут возникнуть угрозы со стороны злоумышленников, имеющих доступ к серверу или его компонентам. SGX позволяет защитить данные от таких угроз, создавая изолированные области памяти, которые неприступны для внешних процессов и могут быть доступны только внутри них.
Контейнеры SGX могут быть использованы для защиты конфиденциальной информации, такой как личные данные пользователей, банковские данные, медицинские записи и другие чувствительные данные. Они могут быть также использованы для защиты интеллектуальной собственности, такой как алгоритмы, секретные ключи, инновационные идеи и т. д. Создание безопасных контейнеров SGX позволяет разработчикам обеспечивать надежность и безопасность приложений и сервисов, хранящих и обрабатывающих конфиденциальную информацию или интеллектуальную собственность.
Использование контейнеров SGX значительно повышает уровень защиты данных. Даже если сервер или его компоненты подверглись атаке, данные, находящиеся внутри контейнеров SGX, останутся недоступными для злоумышленников. Кроме того, SGX обеспечивает аутентификацию и шифрование данных, что позволяет предотвратить несанкционированный доступ к информации и повысить уровень конфиденциальности.
Однако, следует отметить, что SGX не является универсальным решением для всех видов угроз и уязвимостей данных. Оно может быть эффективно применено в изолированных сценариях, где конфиденциальные данные хранятся и обрабатываются в ограниченной безопасной среде. Для полной защиты данных необходимо использовать комплексный подход, включающий другие технологии и методы безопасности.
В целом, Intel Software Guard Extensions предоставляет разработчикам мощный инструмент для обеспечения безопасности данных и защиты конфиденциальной информации и интеллектуальной собственности.
2020: Implementation in the Ice Lake platform as a security feature
September 15, 2020 Intel introduced security features for the future Ice Lake platform, based on the scalable Intel Xeon 3rd generation processor family. Intel extends security by incorporating the Intel Software Guard Extension (Intel SGX) into all Ice Lake platform products, as well as other technologies including Intel Total Memory Encryption (Intel TME), Intel Platform Firmware Resolution (Intel PFP’s) enciphering and Integrity Accelerators. data
With Ice Lake capabilities, Intel customers can create more secure solutions and reduce risks associated with data privacy and compliance, such as in the medical or financial industries.
{{quote ‘Data security is important when commercializing solutions. The capabilities of the presented platform based on the scalable 3rd generation Xeon processor family will help our customers solve important problems related to data, their privacy and integrity. This is another stage in the development of a partnership within the framework of the ecosystem we have created to introduce security innovations, «said Lisa Spelman, corporate vice president of the Data Platform Group and general manager of the Intel Xeon and Memory Group.
}}
Intel SGX is a proven TEE technology for data centers with the smallest attack surface. It allows you to place up to 1 terabyte of code or data in isolated areas of memory called enclaves.
Microsoft Azure was the first major public cloud service to offer confidential computing. Our customers from financial institutions, government agencies and health care use confidential computing at Azure, «said Mark Russinovich, technical director at Microsoft Azure. — Azure provides confidential computing for virtual machines, containers, computer-based training and many other areas of activity. The latest generation Intel Xeon processors equipped with Intel SGX, with full memory encryption and cryptographic accelerator, will help our customers discover even more sensitive computing options. |
Intel Total Memory Encryption (Intel TME) is included in the Ice Lake platform for better protection of all memory types. It allows you to encrypt all the memory that the Intel CPU has access to, including client credentials, encryption keys, and other technical and personal information located on the external bus. Intel has developed this feature to protect against hacking at the hardware level, such as reading information from a DIMM frozen in liquid nitrogen or connecting equipment for targeted attacks. To calculate the encryption key, Intel TME uses an enhanced random number generator built into the processor and does not require software, and encoding is performed according to the AES XTS standard created by the National Institute of Standards and Technology (NIST). This improves memory protection without the need to modify existing software.
One of Intel’s goals is to reduce the impact of security features on system performance so customers don’t have to choose between stronger protection and better performance. Ice Lake provides high cryptographic efficiency by supporting several industry-specific instructions in conjunction with algorithmic and software innovations. Intel has developed two fundamentally different computational methods — simultaneous execution of two algorithms, which are usually executed together, but sequentially, and parallel processing of several independent data buffers.
Приступая к изучению
Приступая к изучению курса, убедитесь, что имеете все необходимое с аппаратной и программной точки зрения.
Компонент | Обязательно? | Комментарий |
---|---|---|
Аппаратные требования | ||
Процессор Intel с технологией Intel Secure Key | Да | Наш менеджер паролей будет активно использовать генератор случайных чисел, предоставляемый технологией Intel Secure Key. Список процессоров с ее поддержкой можно посмотреть на сайте ARK. |
Процессор Intel Core 6 поколения и BIOS, поддерживающий Intel SGX | Нет | На протяжении большей части учебника процессор с поддержкой Intel SGX необходим, однако разработка может производиться и на компьютере без нее и приложения Intel SGX могут исполняться на эмуляторе, входящем в состав SDK. |
Программные требования | ||
Intel Software Guard Extensions (Intel SGX) SDK v1.6 | Да | Требуется для разработки приложений Intel SGX. |
Microsoft Visual Studio 2013 Professional Edition | Да | Требуется для SDK. Каждый выпуск SDK привязан к конкретной версии Visual Studio для обеспечения работоспособности мастеров, средств разработки и интеграции. |
Intel Parallel Studio XE 2013 Professional Edition for Windows | Нет | Рекомендован, но не обязателен для разработки. |
Установка Intel Software Guard Extensions (SGX)
Для установки Intel SGX необходимо выполнить следующие шаги:
Шаг | Описание действия |
---|---|
1 | Установите компилятор Intel C++ Compiler и Intel Integrated Performance Primitives. |
2 | Загрузите и установите Intel SGX SDK с официального сайта разработчика. |
3 | Убедитесь, что в BIOS вашего компьютера включена поддержка Intel SGX. |
4 | Запустите установочный файл SDK и следуйте инструкциям установщика. |
5 | После установки вам может потребоваться обновить драйвера Intel ME. |
6 | Настройте среду разработки для работы с Intel SGX. |
После выполнения всех указанных шагов вы сможете использовать Intel SGX для создания и защиты программ от несанкционированного доступа к конфиденциальным данным. Убедитесь, что ваше программное обеспечение поддерживает Intel SGX, и следуйте рекомендациям по его использованию для достижения максимального уровня безопасности.
Проверьте, загружается ли Ubuntu в режиме UEFI
Чтобы убедиться, что ваша система Ubuntu загружается в режиме UEFI, перечислите содержимое каталога » / sys / firmware / efi «. Если упомянутый каталог существует в файловой системе и команда ниже показывает какие-либо файлы и каталоги, то ваша система загружается в режиме UEFI:
Если ваш Ubuntu — единственный дистрибутив, работающий в вашей системе, не имеет значения, загрузили ли вы его или установили в режиме UEFI. Однако предположим, что другие операционные системы, такие как дистрибутивы Windows или Linux, установлены с использованием режима UEFI; в этом случае вам следует установить Ubuntu в вашей системе в режиме UEFI.
Driver Extensions
We maintain several extensions of the Intel SGX driver. The public extensions add the following features:
-
metrics: adds variables to monitor SGX performance metrics. This is, for example, being used by our TEEMon performance monitoring framework.
-
page0: permits an enclave to start at address 0 to protect against certain attacks.
-
version: permits to check what driver version and what extensions are installed.
-
fsgsbase: installs the patch which is required to run glibc-based applications.
For production, do not use option fsgsbase! Please use a Linux kernel 5.11 (or, newer).
You can install only one extension, for example, the extension as follows:
Alternatively, you can download the script as follows:
The script supports the commands:
and the command:
Here are some common examples on how to use this installer. Our recommended way to
install the driver is as follows:
This installs the correct driver for the host, ensures that the driver is automatically updated
when the kernel is updated and adds all extensions that are required for monitoring and security.
If you need to replace an existing service, add the option :
Option prints all commands and all options.
Check which SGX driver and extensions are installed
The command tests if an up-to-date SGX driver and some required extension are installed. Typically, you would execute as follows:
The output will look as follows:
To check if an SGX driver and the metrics extension are installed and if they are up-to-date, just execute:
If no SGX driver is installed the output would look like this
When an OOT driver without version patch is installed:
When executing
the output for an OOT outdated driver without patches would look like this:
One can also check that certain extensions are installed. For example, one might
want to verify that the and the extensions are installed:
The output might look like this:
Note that on some platforms that support SGX but the disables SGX in the BIOS,
the driver might be successfully installed and even load but using the SGX driver fails.
Check on the host as well as inside your containers that the SGX device is visible.
Understanding Intel SGX and Its Importance
Intel Software Guard Extensions (SGX) is an advanced set of security-related instruction codes that are built into some Intel CPUs. SGX allows applications to create protected enclaves, which are secure areas of execution in memory that are designed to be resistant to attacks from processes running at higher privilege levels. SGX is particularly important for applications that handle sensitive data, as it provides an additional layer of security.
How SGX Works
SGX works by allowing applications to create isolated secure enclaves. These enclaves are designed to be protected from processes running at higher privilege levels, including the operating system kernel. The CPU itself enforces the isolation, ensuring that even if the system is compromised, the data within the enclave remains secure.
The Role of SGX in Security
SGX plays a crucial role in enhancing the security of systems and applications. By providing a way to isolate sensitive computations and data, SGX helps protect against a range of attacks, including those that exploit system vulnerabilities to gain unauthorized access to protected information.
Запечатывание данных
Запечатывание данных — это шифрование данных, чтобы можно было записывать их в недоверенную память или хранилище, не раскрывая содержимое. Эта данные могут быть позже прочитаны анклавом и распечатаны (расшифрованы). Ключи шифрования создаются внутри по запросу и не раскрываются для анклава.
Существует два способа запечатывания данных.
- Удостоверение анклава. Этот метод создает ключ, уникальный именно для данного анклава.
- Удостоверение запечатывания. Этот метод создает ключ на основе удостоверения центра запечатывания анклава. Несколько анклавов одного и того же заверителя подписи могут образовать один и тот же ключ.
Запечатывание с удостоверением анклава
При запечатывании с удостоверением анклава ключ является уникальным для конкретного анклава, запечатавшего данные. При любых изменениях анклава, влияющих на его подпись, будет создан новый ключ. При использовании этого метода данные, запечатанные одной версией анклава, будут недоступны для другой версии этого же анклава. Побочный эффект этого метода состоит в том, что запечатанные данные невозможно перенести в новые версии приложения и его анклава. Такой подход предназначен для предложений, в которых старые запечатанные данные не должны использоваться новыми версиями приложения.
Запечатывание с удостоверением запечатывания
При запечатывании с удостоверением запечатывания несколько анклавов из одного и того же центра могут запечатывать и распечатывать данные друг друга. Это позволяет переносить данные из одной версии анклава в другую или совместно использовать данные несколькими приложениями одного и того же поставщика.
Если нужно запретить доступ старых версий ПО и анклава к данным, запечатанным в новых версиях приложения, можно использовать номер версии ПО при подписании анклава. Версии анклава, более старые по сравнению с указанным номером версии ПО, не смогут образовать ключ, поэтому не смогут распечатать данные.