Установка и настройка SoftHSM на Ubuntu

Дата: 01.12.2020. Автор: Игорь Б. Категории: Статьи по информационной безопасности
Установка и настройка SoftHSM на Ubuntu

В этой статье пойдет речь о том, как установить и настроить SoftHSM на Ubuntu версии 18.04 LTS. Будут представлены краткие рекомендации по инсталляции SoftHSM и приведен практический пример.

Стоит отметить, что пользователь должен получить привилегии администратора для выполнения операций, представленных ниже. Для практического примера будет использоваться SoftHSM версии 2.3.0.

1.     Скачать и извлечь файл программы SoftHSM из Opendnssec

Установка и настройка SoftHSM на Ubuntu
  • Скачать SoftHSM можно, если перейти по следующей ссылке: https://dist.opendnssec.org/source/softhsm-2.3.0.tar.gz
  • Затем следует извлечь данные, которые там содержатся: tar -xzf softhsm-2.3.0.tar.gz.

2.     После загрузки и извлечения данных следует выполнить команду «./configure», чтобы проверить зависимости SoftHSM

Установка и настройка SoftHSM на Ubuntu
  • Чтобы проверить зависимости пакета SoftHSM, следует ввести упомянутую в заголовке команду – «./configure».
  • При настройке программы пользователь может оптимизировать имеющиеся параметры безопасности или продолжить свою работу с параметрами по умолчанию. В программе SoftHSM доступно несколько различных опций. Представленный ниже скриншот показывает, какие параметры пользователь может изменить при необходимости. Как читатели могут увидеть, у него есть несколько доступных вариантов настроек. Для того чтобы увидеть все доступные параметры, необходимо использовать следующую команду:
./configure --help
Установка и настройка SoftHSM на Ubuntu

Как уже было сказано ранее, с помощью этой команды пользователь способен просмотреть все параметры, доступные для настройки.

3.     Если на компьютере доступны все нужные зависимости, процесс завершится успешно. После этого нужно скомпилировать файлы пакета с помощью команды «make»

Установка и настройка SoftHSM на Ubuntu

После проверки зависимостей файлов проекта нужно ввести команду «make» для их компиляции.

4.     После компиляции пользователь может начать установку пакета SoftHSM с помощью специальной команды

Установка и настройка SoftHSM на Ubuntu

Чтобы установить пакет SoftHSM, следует ввести следующую команду:

sudo make install

После установки пакета SoftHSM пользователи смогут получить доступ к служебным инструментам этого программного обеспечения с помощью команды «softsm2-util».

Установка и настройка SoftHSM на Ubuntu

5.     После установки SoftHSM необходимо инициализировать мягкий токен, чтобы использовать это программное обеспечение

На приведенном ниже скриншоте показано, как инициализировать SoftHSM:

Установка и настройка SoftHSM на Ubuntu

Пользователи могут использовать следующую команду для инициализации SoftHSM с номером слота и меткой:

softhsm2-util — init-token — slot 1 — label “Token-1”

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

Когда пользователи инициализируют SoftHSM, им будет предложено ввести PIN-код пользователя, а также SO-Pin. Таким образом, pin-код используется для повторной инициализации токена, а пользовательский pin — для самого взаимодействия с токеном.

Отлично! Пользователь успешно установил и настроил SoftHSM на своей операционной системе Linux. Теперь пора начать пользоваться этим программным обеспечением в своих целях.

Пользователь будет с помощью языка программирования Java общаться с SoftHSM. Для этого ему понадобится конфигурационный файл (.cfg), который должен храниться в корневом каталоге проекта.

name = SoftHSM
library = /usr/local/lib/softhsm/libsofthsm2.so
slot = 1426856870
attributes(generate, *, *) = {
   CKA_TOKEN = true
}
attributes(generate, CKO_CERTIFICATE, *) = {
   CKA_PRIVATE = false
}
attributes(generate, CKO_PUBLIC_KEY, *) = {
   CKA_PRIVATE = false
}

Выше Gist показывает пример конфигурационного файла SoftHSM.

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

softhsm2-util — show-slots
Установка и настройка SoftHSM на Ubuntu

Теперь пользователи могут общаться с SoftHSM, используя приведенный ниже Java-код. Для удобства читателей были добавлены комментарии к каждой строке, чтобы они могли понять, что происходит в коде. В приведенном ниже коде пользователь установил провайдера Sun PKCS, затем загрузил хранилище ключей, используя PIN-код пользователя, предоставленный при инициализации мягкого токена, и, наконец, вставил ключ шифрования в SoftHSM.

import java.security.*;

import sun.security.pkcs11.*;

import javax.crypto.*;
import javax.crypto.spec.SecretKeySpec;


public class SoftHSM {
    public static void main(String[] args) throws Exception {
        // Set up the Sun PKCS 11 provider // using the configuration file name
        String configName = "softhsm.cfg";
        Provider p = new SunPKCS11(configName);

        // exception handling
        if (-1 == Security.addProvider(p)) {
            throw new RuntimeException("could not add security provider");
        }

        // Load the key store // using User Pin given when initializing the token
        char[] pin = "1234".toCharArray();
        KeyStore keyStore = KeyStore.getInstance("PKCS11", p);
        keyStore.load(null, pin);

        // AES key
        SecretKeySpec secretKeySpec = new SecretKeySpec("0123456789ABCDEF".getBytes(), "AES");
        Key key = new SecretKeySpec(secretKeySpec.getEncoded(), "AES");
        // Inserting the key in to the SoftHSM
        keyStore.setKeyEntry("AA", key, "1234".toCharArray(), null);
        keyStore.store(null);
        // Retrieving the Secret Key Stored
        SecretKey key1 = (SecretKey) keyStore.getKey("AA", "1234".toCharArray());
        // Test Printing the Key Retrieved
        System.out.println(key1);

    }


}

В последних строках этого кода пользователь попытался восстановить использованный ключ шифрования. Однако у него это не удалось.

Установка и настройка SoftHSM на Ubuntu

Как известно, SoftHSM не покажет пользователю использованный ключ шифрования. Но он может использовать объект секретного ключа и зашифровать свои данные.

Для удобства читателей ниже представлены все команды установки в Gist:

wget https://dist.opendnssec.org/source/softhsm-2.3.0.tar.gz
tar -xzf softhsm-2.3.0.tar.gz
./configure 
./configure --help
make
make install
softhsm2-util --init-token --slot 0 --label "Token-1"

Автор переведенной статьи: Supun Sandeeptha.

Игорь Б

Об авторе Игорь Б

Автор на портале cisoclub.ru. Добавляйте ваш материал на сайт в разделе "Разместить публикацию".
Читать все записи автора Игорь Б

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *