Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

# для red os
sudo yum update
sudo yum install ccid opensc pam_pkcs11 gdm-plugin-smartcard p11-kit
 
# для alteros
sudo yum update
sudo yum install ccid opensc pam_pkcs11 gdm-plugin-smartcard p11-kit openssl-pkcs11
 
# для astra и alt linux
sudo apt-get update
sudo apt-get install ccid opensc pam_pkcs11 gdm-plugin-smartcard p11-kit
 
# для rosa
sudo dnf --auto-update
sudo dnf install ccid opensc pam_pkcs11 gdm-plugin-smartcard p11-kit

...

pkcs11-tool --module /usr/lib64/librtpkcs11ecp.so -l -y cert -w cert.crt --id 45

Создание подписи в формате CMS

Для создания CMS подписи необходимо иметь сертификат. В тестовых целях в папке sdk\openssl\samples\tool\ предоставлены настройки удостоверяющего центра OpenSSL, который позволяет выпускать сертификаты.

Скопируйте папку sdk\openssl\samples\tool\demoCA и конфигурационный файл openssl.cnf в папку с OpenSSL и выполните:

openssl ca -batch -in req.csr -out cert.cer


Затем создайте CMS подпись используя ключ в файле:

openssl cms -sign -binary -nosmimecap -in data_to_sign -out signed_cms -outform PEM -inkey seckey.pem -signer cert.cer


Или используя ключ на Рутокене:

openssl cms -sign -binary -nosmimecap -in data_to_sign -out signed_cms -outform PEM -keyform engine -inkey 0:45 -engine pkcs11 -signer cert.cer


 Используя -nodetach подписываемые данные включаются в состав CMS пакета — присоединенная подпись. Без этой опции подпись будет «отсоединенной».

 Используя -nocerts сертификат подписанта не включается в состав CMS пакета.

Проверка подписи в формате CMS

openssl cms -verify -binary -in signed_cms -inform PEM -out verified_data -CAfile demoCA/cacert.pem -content data_to_sign

Файл, указанный в -CAfile, является доверенным сертификатом удостоверяющего

центра и используется для проверки сертификата подписанта.

В опцию -content передается файл с подписанными данными, если он не был включен в состав CMS пакета.

Если сертификат подписанта не был включен в CMS пакет (отсоединенная подпись), он указывается в опции -certfile.

«Сырая» подпись данных

Используя ключ в файле:

openssl dgst -sign seckey.pem -out signature data_to_sign

Используя ключ на Рутокене:

openssl dgst -keyform engine -sign 0:45 -engine pkcs11 -out signature data_to_sign

Алгоритм хеша будет зависеть от алгоритма ключа.

Проверка «сырой подписи»

Получить открытый ключ из закрытого можно следующей командой:

openssl pkey -in seckey.pem -pubout -out pubkey.pem

Проверка используя ключ в файле:

openssl dgst -verify pubkey.pem -signature signature data_to_sign

Используя ключ на Рутокене:


openssl dgst -keyform engine -verify 0:45 -engine pkcs11 -signature signature test_data