Перейти к основному содержимому
Создать облачный сервер с поддержкой Intel® SGX
Последнее изменение:

Создать облачный сервер с поддержкой Intel® SGX

Intel® SGX (Software Guard Extensions) — технология, которая предоставляет набор инструкций центрального процессора для повышения безопасности кода и данных приложения с помощью дополнительной защиты от утечек или модификации.

С Intel® SGX приложение может создавать в оперативной памяти анклавы — информация в них не сможет быть прочитана другими приложениями (ненадежными компонентами), запущенными на том же сервере, включая системные приложения, модули ядра и гипервизор.

Посмотреть доступность облачных серверов с SGX (линейка фиксированных конфигураций SGX Line) в регионах можно в матрице доступности Облачные серверы.

к сведению

Для поддержки Intel® SGX и работы с анклавами на облачном сервере нужно установить драйвер и подготовить приложение.

Создать облачный сервер с поддержкой Intel® SGX

  1. В панели управления перейдите в раздел Облачная платформаСерверы.
  2. Нажмите Создать сервер.
  3. Выберите линейку фиксированных конфигураций SGX Line.
  4. Выберите остальные настройки облачного сервера — подробнее в инструкции Создать облачный сервер.
  5. Нажмите Создать сервер.
  6. Подготовьте облачный сервер к работе: установите драйвер и подготовьте приложение.

Установить драйвер

к сведению

Если в качестве источника при создании сервера вы выбрали образ Ubuntu 22.04 или Windows 2019, драйверы для работы SGX устанавливать не нужно.

Для поддержки Intel® SGX и работы с анклавами нужно, чтобы был установлен один из трех драйверов:

  • In-kernel Driver — подходит только для Linux, входит в версии ядра Linux от 5.11 и выше;
  • DCAP Driver — подходит для Windows и для версий ядра Linux без in-kernel драйвера;
  • Out-of-tree Driver — альтернативный способ. Мы рекомендуем использовать In-kernel драйверы, для этого вы можете перейти на HWE-ядро. Пример команды для Ubuntu 20.04: apt-get install --install-recommends linux-generic-hwe-20.04

В репозитории Intel® собраны пакеты с драйверами для различных операционных систем.

Пример установки DCAP-драйвера для Ubuntu 20.04

  1. Установите Dynamic Kernel Module Support:

    apt install dkms
  2. Установите linux-headers (заголовки ядра):

    apt install linux-headers-$(uname -r)
  3. Установите драйвер:

    wget https://download.01.org/intel-sgx/sgx-dcap/1.9/linux/distro/ubuntu20.04-server/sgx_linux_x64_driver_1.36.2.bin
    chmod 755 sgx_linux_x64_driver_1.36.2.bin
    ./sgx_linux_x64_driver_1.36.2.bin
  4. Проверьте в логах ядра, что драйвер загружен:

    dmesg | grep sgx

    Пример ответа:

    [    2.857457] systemd[1]: Set hostname to <sgx-legacy>.
    [ 3.748684] intel_sgx: loading out-of-tree module taints kernel.
    [ 3.750444] intel_sgx: module verification failed: signature and/or required key missing - tainting kernel
    [ 3.756652] intel_sgx: EPC section 0x140000000-0x1bf2fffff
    [ 3.850249] intel_sgx: Intel SGX DCAP Driver v1.36.2

Использовать SGX в приложении

Для работы с анклавами и Intel® SGX вы можете использовать:

  • LibOS (library operating system) — позволяет не менять кодовую базу и с небольшими модификациями запустить Intel® SGX в существующем приложении;
  • или SDK — для разработки нового приложения. Все пакеты с SDK собраны для разных операционных систем, и их нужно только установить.

LibOS

Доступны опенсорсные и коммерческие версии LibOS для поддержки Intel® SGX.

Опенсорсные:

Коммерческие:

SDK

Все SDK содержат API, библиотеки, примеры исходного кода, инструменты и документацию для быстрого старта:

Пример установки Intel SGX SDK для Ubuntu 20.04

wget https://download.01.org/intel-sgx/sgx-dcap/1.9/linux/distro/ubuntu20.04-server/sgx_linux_x64_sdk_2.12.100.3.bin
chmod 755 sgx_linux_x64_sdk_2.12.100.3.bin
./sgx_linux_x64_sdk_2.12.100.3.bin --prefix=/opt/intel