Page tree

Versions Compared

Key

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

...

В процессе работы команда попросит ввести PIN-код. После этого потребуется указать данные для сертификата:

  • State or Province []: Moscow

  • Locality []:  RU

  • Organization Name []: Aktiv Company

  • Organizational Unit Name []: development

  • Common Name []: tester

  • Email []: tester@rutoken.ru

Набор вводимой информации при формировании запроса определяется конфигурационным файлом openssl.cfgcnf.

Выпуск самоподписанного сертификата по запросу

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

openssl req -utf8 -x509 -key seckey.pem -out cert.cer

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

openssl req -utf8 -x509 -keyform engine -key "pkcs11:your_pkcs11_uri" -engine rtengine -out cert.cer

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

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

Скопируйте папке sdk\openssl\rtengine\samples\tool\demoCA и конфигурационный файл openssl.cnf в папку с OpenSSL и выполните:    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 "pkcs11:your_pkcs11_uri" -engine rtengine -signer cert.cer

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

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

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

   openssl  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

openssl dgst -keyform engine -sign "pkcs11:your_pkcs11_uri" -engine rtengine -out signature data_to_sign

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

...

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

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

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

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

   openssl    openssl dgst -verify pubkey.pem -signature signature data_to_sign

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

   openssl    openssl dgst -keyform engine -verify "pkcs11:your_pkcs11_uri" -engine rtengine -signature signature test_data

Шифрование в формате CMS

   openssl cms -encrypt -binary -gost28147-paramset_a-cfb -in test_data -out encrypted_cms -outform PEM respondent.cer

respondent.cer - : сертификат адресата, для которого шифруется сообщение.

gost28147-paramset_a-cfb- : единственный доступный алгоритм, работает в режиме гаммирования  с с обратной связью с набором параметров А.

Расшифрование на стороне адресата:

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

   openssl    openssl cms -decrypt -binary -in encrypted_cms -inform PEM -recip respondent.cer -inkey seckey.pem -out decrypted_cms_data

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

   openssl    openssl cms -decrypt -binary -in encrypted_cms -inform PEM -recip respondent.cer -keyform engine -inkey "pkcs11:your_pkcs11_uri" -engine rtengine -out decrypted_cms_data