Установка компонентов SGX DCAP в Ubuntu 22.04
Убедитесь, что процессор в production режиме SGX
apt install -y msr-tools
modprobe msr
rdmsr 0xCE -f 27:27
Команда должна вернуть 0
Проверка наличия устройств SGX
test -e /dev/sgx_enclave && echo 'Driver installed' || echo 'Driver is not installed'
Если команда вернула "Driver installed", то следующий раздел по установке драйвера можно пропустить
Иногда, всё же, требуется установка новой версии драйвера взамен той, что поставляется вместе с ОС или установлена облачным провайдером. Но, если всё работает с предустановленным драйвером, то лучше оставить его.
Установка драйвера SGX
mkdir -p /opt/intel
cd /opt/intel
apt install -y dkms
wget 'https://download.01.org/intel-sgx/sgx-dcap/1.12/linux/distro/ubuntu20.04-server/sgx_linux_x64_driver_1.41.bin'
chmod +x sgx_linux_x64_driver_1.41.bin
./sgx_linux_x64_driver_1.41.bin
Проверьте наличие устройства SGX с помощью команды
Установка PCCS
Сервис PCCS (Intel® SGX Provisioning Certificate Caching Service) необходим для кэширования сертификатов Intel в сервисах Enclave(TEE) и CAS. Для его работы требуется Node.js. Более подробно о спецификации сервиса PCCS возможно узнать по ссылке
Установка Node.js
cd /tmp
curl -o setup.sh -sL https://deb.nodesource.com/setup_14.x
chmod a+x setup.sh
sudo ./setup.sh
apt-get install -y cracklib-runtime nodejs
Установка PCCS
echo 'deb [arch=amd64] https://download.01.org/intel-sgx/sgx_repo/ubuntu focal main' > /etc/apt/sources.list.d/intel-sgx.list
wget -O - https://download.01.org/intel-sgx/sgx_repo/ubuntu/intel-sgx-deb.key | apt-key add -
apt update
apt install -y sqlite3 python build-essential sgx-dcap-pccs
Во время установки может потребоваться ввести данные конфигурации PCCS. Введите следующие данные:
- PCCS KEY: aecd5ebb682346028d60c36131eb2d92
- PCCS Password: 2PT0b^#xH39k
Установка AESMD
Сервис AESMD (Intel® Architectural (Application) Enclave Service Manager Daemon) - Архитектурный менеджер сервисов Анклавов (Enclave (TEE)) - обеспечивает абстракцию для доступа к архитектурным анклавам, необходим для полноценной работы анклава. Более подробно о спецификации сервиса AESMD возможно узнать по ссылке
apt install -y sgx-aesm-service libsgx-dcap-default-qpl libsgx-dcap-ql libsgx-aesm-pce-plugin libsgx-aesm-quote-ex-plugin
systemctl restart aesmd
Установка MPA
Сервис MPA (Multi-Package Registration Agent) - Утилита, необходимая для регистрации много процессорных машин в сервисах Intel® Более подробная информация о сервисе MPA доступна по ссылке
apt install -y sgx-ra-service
systemctl restart mpa_registration_tool
Настройка quoting сервиса
cp /etc/sgx_default_qcnl.conf /etc/sgx_default_qcnl.conf.backup
cat <<EOF > /etc/sgx_default_qcnl.conf
PCCS_URL=https://localhost:8081/sgx/certification/v3/
USE_SECURE_CERT=FALSE
COLLATERAL_SERVICE=https://api.trustedservices.intel.com/sgx/certification/v3/
PCCS_API_VERSION=3.1
EOF
systemctl restart aesmd
systemctl restart pccs
Перезагрузка сервера
reboot