Гид по технологиям

Установка и инициализация SoftHSM v2 на Ubuntu

6 min read Инфраструктура Обновлено 22 Sep 2025
SoftHSM v2: установка и инициализация на Ubuntu
SoftHSM v2: установка и инициализация на Ubuntu

SoftHSM — это программная реализация HSM, доступная через интерфейс PKCS#11. В статье показано, как скачать, собрать, установить и инициализировать SoftHSM v2 на Ubuntu, как настроить конфигурацию и проверить работу с помощью OpenSC. Включены рекомендации по резервному копированию, отладке и повышению безопасности.

Коротко о SoftHSM и PKCS#11

SoftHSM — программный хранитель криптографических ключей, предоставляющий интерфейс PKCS#11. PKCS#11 — стандартный API для доступа к криптографическим устройствам (HSM, смарт-карты). SoftHSM полезен, когда покупка аппаратного HSM невозможна или требуется тестовая среда. Он генерирует и хранит ключи локально и позволяет приложениям работать с ними, не раскрывая приватные ключи.

Важно: PKCS#11 — это интерфейс; реализация может быть аппаратной (HSM) или программной (SoftHSM).

Содержимое статьи

  • Зависимости и требования
  • Скачивание, компиляция и установка
  • Файл конфигурации и пути по умолчанию
  • Инициализация токена и работа с PIN
  • Проверка работы через OpenSC и pkcs11-tool
  • Резервное копирование и восстановление
  • Отладка и распространённые ошибки
  • Безопасность и рекомендации для продакшена
  • Пошаговый чеклист для ролей (админ, разработчик)
  • Критерии приёмки и тесты

Зависимости

SoftHSM может собираться с бэкендом OpenSSL или Botan. Если вы выбираете Botan, убедитесь, что Botan собран с поддержкой GNU MP (опция –with-gnump), что ускоряет операции с открытыми ключами.

Требуемые пакеты (обычно):

  • компилятор (gcc/clang), make, autoconf
  • openssl и заголовки (openssl-dev / libssl-dev в Debian/Ubuntu)
  • pkg-config
  • sqlite3 (если нужен стор объектов в базе)
  • p11-kit (опционально, для интеграции)

Примеры пакетов для Ubuntu/Debian:

sudo apt-get update
sudo apt-get install build-essential pkg-config libssl-dev sqlite3 libsqlite3-dev p11-kit

Примечание: конкретные имена пакетов зависят от дистрибутива и версии.

Скачивание исходников

Скачайте релиз SoftHSM с сайта OpenDNSSEC. Пример с wget:

wget https://dist.opendnssec.org/source/softhsm-2.3.0.tar.gz

Скриншот запуска wget для загрузки архива SoftHSM

Распакуйте архив:

tar xzf softhsm-2.3.0.tar.gz

Команда tar, распаковка архива SoftHSM

Конфигурация и сборка

Перейдите в каталог с исходниками и запустите configure для проверки зависимостей:

./configure

Вывод скрипта configure, проверка окружения

Если не установлены заголовки OpenSSL, configure покажет ошибку:

Ошибка configure: отсутствуют заголовки OpenSSL

Устраните проблему установкой соответствующего dev-пакета (пример для Debian/Ubuntu):

sudo apt-get install libssl-dev

Установка пакета libssl-dev через apt-get

После установки зависимостей повторно запустите configure; он должен показать, что все требования удовлетворены.

configure завершён успешно, список опций компиляции

Просмотрите доступные опции configure:

./configure --help

Примеры опций (кратко):

--disable-ecc        Disable support for ECC (enabled by default)
--disable-gost       Disable support for GOST (enabled by default)
--with-crypto-backend Select crypto backend (openssl|botan)
--with-openssl=PATH  Specify prefix of OpenSSL
--with-botan=PATH    Specify prefix of Botan
--with-migrate       Build migration tool (needs SQLite3)
--with-objectstore-backend-db Build with DB object store (SQLite3)
--disable-p11-kit    Disable p11-kit integration (enabled by default)

Выберите нужные опции перед сборкой. Затем соберите пакет:

make

Процесс компиляции SoftHSM на make

Установите:

sudo make install

Вывод make install, установка библиотек SoftHSM в систему

Файл конфигурации

По умолчанию SoftHSM ищет конфигурационный файл в /etc/softhsm2.conf. Путь можно переопределить переменной окружения SOFTHSM2_CONF:

export SOFTHSM2_CONF=/path/to/softhsm2.conf

Стандартный пример конфигурации указывает каталог хранения токенов (object store) и параметры логирования.

Пример содержимого файла конфигурации softhsm2.conf с путями хранения токенов

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

Инициализация Soft Token (токена)

Для создания и инициализации токена используйте утилиту softhsm2-util:

softhsm2-util --init-token --slot 0 --label "Token-1"

Процесс инициализации токена через softhsm2-util с примером вывода

При инициализации вам будет предложено задать два PIN-кода:

  • SO PIN (Security Officer) — используется для административных операций, переинициализации токена.
  • User PIN — выдается приложению для выполнения криптографических операций (подпись/доступ к объектам).

Важно: храните SO PIN в надёжном месте и ограничьте доступ к нему. User PIN должен быть известен только нужному приложению или пользователю.

После инициализации новые слоты могут появляться автоматически. Чтобы найти токен по метке или серийному номеру, просмотрите список слотов/токенов:

softhsm2-util --show-slots

Вывод списка слотов и меток токенов в SoftHSM

Другие полезные опции softhsm2-util можно увидеть с помощью:

softhsm2-util --help

Справка по утилите softhsm2-util: список команд и опций

Резервное копирование

Все токены и объекты хранятся в директории, указанной в softhsm2.conf. Резервное копирование можно выполнять как обычное копирование файлов (fs-level backup). Для восстановления достаточно вернуть файлы и убедиться, что права и владельцы сохранены.

Важно: если база данных токенов зашифрована, убедитесь, что у вас также есть соответствующие ключи/пароли для доступа.

Использование SoftHSM с OpenSC и pkcs11-tool

OpenSC предоставляет утилиты для работы с PKCS#11. Установите opensc (пример для Debian/Ubuntu):

sudo apt-get install opensc

Установка пакета opensc через apt-get

Проверка работы механизма на SoftHSM через pkcs11-tool (опция -t запускает тест механизма):

pkgs11-tool --module /usr/local/lib/softhsm/libsofthsm2.so -l -t

(обратите внимание на путь к библиотеке; при установке из пакета он может отличаться, например /usr/lib/softhsm/libsofthsm2.so)

Пример запуска проверки:

pkcs11-tool --module /usr/local/lib/softhsm/libsofthsm2.so -l -t

Результат тестирования механизма PKCS#11 на SoftHSM через pkcs11-tool

Отладка и распространённые ошибки

  1. configure сообщает об отсутствии заголовков OpenSSL — установите libssl-dev.
  2. pkcs11-tool не видит модуль — проверьте путь к libsofthsm2.so и права на файл.
  3. Ошибка доступа к хранилищу токенов — проверьте SOFTHSM2_CONF и права на директорию объектов.
  4. Неправильные PIN — при многократном неверном вводе токен может блокироваться; используйте SO PIN для восстановления или переинициализации.

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

Миграция с SoftHSM v1

SoftHSM v2 предоставляет инструмент миграции, если в сборке включена опция –with-migrate. Для миграции убедитесь, что у вас установлен sqlite3 и выполните шаги миграции согласно документации пакета. Миграция обычно переносит объекты из старой структуры в новую базу объектов.

Важно: перед миграцией сделайте полную резервную копию текущих файлов.

Безопасность и рекомендации для продакшена

  • Храните SO PIN в офлайн-хранилище или системе управления секретами.
  • Ограничьте доступ к директории object store (chmod/chown), используйте отдельного пользователя для процессов, работающих с SoftHSM.
  • При возможности используйте аппаратный HSM в продакшене для критичных ключей.
  • Периодически экспортируйте списки токенов и метаданные для аудита.
  • Настройте мониторинг ошибок и оповещения на события, связанные с доступом к токенам.

Важно: SoftHSM удобен для тестирования и разработки. Для ключей, требующих высокой степени защиты и сертификации, используйте аппаратные решения.

Роль‑ориентированные чеклисты

Администратор (установка и поддержка):

  • Установить зависимости и сборочный инструментарий.
  • Собрать и установить SoftHSM.
  • Настроить /etc/softhsm2.conf и права доступа к каталогу object store.
  • Создать процедуры резервного копирования и восстановления.
  • Настроить p11-kit или переменные окружения для приложений.

Разработчик (интеграция приложения):

  • Убедиться, что приложение использует правильный модуль PKCS#11 (путь к libsofthsm2.so).
  • Настроить User PIN и протестировать операции подписи/шифрования.
  • Добавить тесты интеграции с pkcs11-tool.

Оператор безопасности:

  • Проверить управление PIN и хранение SO PIN.
  • Проинспектировать права доступа к файлам и логи.
  • Оценить необходимость перехода на аппаратный HSM.

Тесты и критерии приёмки

Критерии приёмки для установки SoftHSM:

  • SoftHSM успешно собирается и устанавливается без ошибок.
  • Конфигурационный файл распознан и путь к object store корректен.
  • Удачно инициализирован токен (SO PIN и User PIN установлены).
  • pkcs11-tool видит модуль и выполняет тест механизма (-t) успешно.
  • Резервная копия object store восстанавливается и токены доступны.

Тестовые кейсы:

  • Инициализация нового токена, проверка списка слотов.
  • Попытка входа с неверным PIN и проверка поведения (блокировка/ошибка).
  • Создание ключа внутри токена и проверка операции подписи.
  • Восстановление object store из резервной копии.

Шаблон стандартной операционной процедуры (SOP)

  1. Подготовка: установить зависимости и сделать обновление системы.
  2. Скачивание исходников: wget с официального зеркала.
  3. Сборка: ./configure [опции] && make && sudo make install.
  4. Настройка: отредактировать /etc/softhsm2.conf или задать SOFTHSM2_CONF.
  5. Инициализация токена: softhsm2-util –init-token –slot 0 –label “Token-1”.
  6. Проверка: pkcs11-tool –module <путь> -l -t.
  7. Резервное копирование: копировать директорию object store на защищённое хранилище.
  8. Документирование: записать SO PIN в защищённое хранилище секретов.

Заключение

В этой статье показано, как установить и инициализировать SoftHSM v2 под Ubuntu, как настроить конфигурацию, проверить работу с помощью OpenSC и pkcs11-tool, а также как организовать резервное копирование и базовую безопасность. SoftHSM удобен для разработки и тестирования PKCS#11-интеграций. Для продакшн‑задач с высокими требованиями к защите приватных ключей рекомендуется использовать аппаратные HSM.

Ключевые шаги: установить зависимости, собрать и установить SoftHSM, настроить конфигурацию, инициализировать токен, проверить работоспособность и обеспечить резервное копирование.

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

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Троян Herodotus: как он работает и как защититься
Кибербезопасность

Троян Herodotus: как он работает и как защититься

Включить новое меню «Пуск» в Windows 11
Windows 11

Включить новое меню «Пуск» в Windows 11

Панель полей PivotTable в Excel — руководство
Excel

Панель полей PivotTable в Excel — руководство

Включить новый Пуск в Windows 11 — инструкция
Windows

Включить новый Пуск в Windows 11 — инструкция

Как убрать дубликаты Диспетчера задач Windows 11
Windows

Как убрать дубликаты Диспетчера задач Windows 11

Как просмотреть историю просмотров Reels в Instagram
Социальные сети

Как просмотреть историю просмотров Reels в Instagram