Как запустить/подключить движок OpenSSL tpm2tss на Ubuntu 22.04?

Вопрос или проблема

Я работаю над проектом, в котором плата имеет устройство TPM2. Идея состоит в том, чтобы поместить туда ключевую информацию и извлечь ее для загрузки сертификата. Я учусь по ходу дела, мне нужно использовать среды выполнения .NET 8, и я искал информацию в Интернете.

В .NET 8 есть рутина, которая, похоже, делает именно то, что мне нужно на Linux:

SafeEvpPKeyHandle.OpenPrivateKeyFromEngine

И есть вопрос на StackOverflow, который, кажется, указывает на точное решение, которое мне нужно.

Как использовать сертификат X.509, сгенерированный на TPM для Azure DPS на Linux и C#

Но он говорит об “openssl engine”, который называется “tpm2tss”, и я не знаю, как его установить и запустить. Я пытался установить различные пакеты tpm2-tss и tpm2-tss-engine (что сложно, потому что устройство, которое я использую, “ограничено” в том, что оно может делать – например, apt/apt-get не работают, но snap работает, и я могу загружать .deb пакеты и устанавливать их).

Небольшое обновление. Мне удалось заставить работать старую версию OpenSSL 1.1.1 libengine-tpm2… на Ubuntu 22.04. Это устанавливалось в папку engines-1.1. Это потребовало понижения версии установленного OpenSSL3 и нахождения более старых зависимостей.

Но мне не удалось заставить работать новую версию OpenSSL3 на 22.04. И я также не смог выполнить операции TPM, которые я пытался сделать.

Если кто-нибудь может дать совет о том, что нужно для того, чтобы сделать engine OpenSSL tpm2tss доступным, я был бы очень признателен. Спасибо.

Небольшое обновление. Мне удалось заставить работать старую версию OpenSSL 1.1.1 libengine-tpm2… на Ubuntu 22.04. Это устанавливалось в папку engines-1.1. Это потребовало понижения версии установленного OpenSSL3 и нахождения более старых зависимостей.

Но мне не удалось заставить работать новую версию OpenSSL3 на 22.04. И я также не смог выполнить операции TPM, которые я пытался сделать.

Ответ или решение

Для того чтобы установить и настроить OpenSSL Engine tpm2tss на Ubuntu 22.04, необходимо выполнить несколько шагов, включая установку необходимых зависимостей, сборку tpm2tss и его интеграцию с OpenSSL 3.

Шаг 1: Установка зависимостей

Сначала нужно установить основные зависимости, которые потребуются для сборки и использования tpm2tss и OpenSSL. Откройте терминал и выполните следующие команды:

sudo apt update
sudo apt install -y build-essential git cmake pkg-config \
libssl-dev libtool libglib2.0-dev \
libtss2-dev

Шаг 2: Клонирование репозитория tpm2-tss

Далее нужно клонировать репозиторий tpm2-tss:

git clone https://github.com/TPM2.0-TSS/TSS.MSR.git
cd TSS.MSR

Шаг 3: Сборка и установка tpm2-tss

Соберите и установите tpm2-tss, выполнив следующие команды:

mkdir build && cd build
cmake ..
make
sudo make install

Шаг 4: Установка tpm2-tss-engine

Теперь вам нужно будет установить tpm2-tss-engine. Сначала клонируйте соответствующий репозиторий:

cd ~
git clone https://github.com/TPM2.0-TSS/tpm2-tss-engine.git
cd tpm2-tss-engine

Соберите и установите tpm2-tss-engine:

mkdir build && cd build
cmake ..
make
sudo make install

Шаг 5: Конфигурация OpenSSL для использования tpm2tss

После установки tpm2-tss и tpm2-tss-engine необходимо убедиться, что OpenSSL видит тпм2tss. Откройте или создайте файл /etc/ssl/openssl.cnf или модифицируйте существующий и добавьте следующую строчку в секцию engines:

engine = tpm2tss

Шаг 6: Проверка установки

Проверьте, действительно ли установлен tpm2tss как движок OpenSSL:

openssl engine

Вы должны увидеть tpm2tss в списке доступных движков.

Шаг 7: Использование в .NET 8

После того как вы установили и настроили OpenSSL с движком tpm2tss, вы сможете использовать методы внутри .NET 8, такие как SafeEvpPKeyHandle.OpenPrivateKeyFromEngine, для взаимодействия с TPM2.

Примечание

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

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

Оцените материал
Добавить комментарий

Капча загружается...