(2021-11-16 17:33:15 отредактировано HDMI)

Утилита «Генератор запросов сертификатов для Рутокен ЭЦП 2.0»

В шаблоне для утилиты для параметра запроса сертификата «Возможности S/MIME» по умолчанию стоит следующее значение в кодировке DER:

@ByteArray(\x30\x0a\x30\x08\x06\x06\x2A\x85\x03\x02\x02\x15)

, что CertUtil декодирует так:

1.2.643.2.2.21

Хочу поменять это значение на 1.2.643.7.1.1.5.2, то есть указать алгоритм шифрования ГОСТ Р 34.12-2015 Кузнечик (GOST_R3412_2015_K) в замещение такого старья как ГОСТ 28147-89.
Можно ли так сделать для такого средства электронной подписи владельца как Рутокен ЭЦП 2.0 Flash?? И, коль скоро можно, - какое значение надо указать вместо

\x30\x0a\x30\x08\x06\x06\x2A\x85\x03\x02\x02\x15

??
И если нельзя, то можно ли так сделать, если в параметрах запроса средство подписи владельца сертификата указать КриптоПРО CSP?

Re: Утилита «Генератор запросов сертификатов для Рутокен ЭЦП 2.0»

HDMI,  добрый день!
Чтобы использовать в запросе OID  1.2.643.7.1.1.5.2, замените в конфигурационном файле Генератора значение:

[SMIMECapabilities]
value=@ByteArray(\x30\x0a\x30\x08\x06\x06\x2A\x85\x03\x02\x02\x15) ;1.2.643.2.2.21

на

[SMIMECapabilities]
value=@ByteArray(\x30\x0c\x30\x0A\x06\x08\x2A\x85\x03\x07\x01\x01\x05\x02) ;1.2.643.7.1.1.5.2 

Re: Утилита «Генератор запросов сертификатов для Рутокен ЭЦП 2.0»

Павел Анфимов, спасибо!
А каким способом вообще это значение получить?

Я ещё понимаю как записать 1.2.643.7.1.1.5.2 в Hexadecimal (312E322E3634332E372E312E312E352E31) или в Base64 (MS4yLjY0My43LjEuMS41LjE=).
А это "\x30\x0c\x30\x0A\x06\x08\x2A\x85\x03\x07\x01\x01\x05\x02" в данном случае откуда появляется?
Как в ОС Windows это получить? Python не помогает, CertUtil не помогает, может что-то из SDK Рутокен должно помогать? Open SSL тот же?
Объясните, пожалуйста.

Re: Утилита «Генератор запросов сертификатов для Рутокен ЭЦП 2.0»

HDMI пишет:

И если нельзя, то можно ли так сделать, если в параметрах запроса средство подписи владельца сертификата указать КриптоПРО CSP?

Если вы генерируете ключи аппаратно на Рутокен, он и будет средством подписи. Другое значение в этом случае указывать нельзя.

Re: Утилита «Генератор запросов сертификатов для Рутокен ЭЦП 2.0»

HDMI, добрый день!

Содержимое DER-структуры можно увидеть, убрав "\x" перед значениями байтов:

300c300A06082A85030701010502

И поместив результат в декодировщик можно увидеть ASN.1 структуру:
https://lapo.it/asn1js/#MAwwCgYIKoUDBwEBBQI

Re: Утилита «Генератор запросов сертификатов для Рутокен ЭЦП 2.0»

Павел Анфимов, Спасибо!
А вот ещё тогда вопрос
Создал в секции шаблона "CustomExtensions" следующий параметр:

[CustomExtensions]
#\oid=1.3.6.1.4.1.311.13.2.1
#\value=@ByteArray(\x31\x81\x9A\x30\x46\x1E\x1A\x00\x43\x00\x70\x00\x52\x00\x61\x00\x53\x00\x74\x00\x61\x00\x72\x00\x74\x00\x44\x00\x61\x00\x74\x00\x65\x1E\x28\x00\x32\x00\x30\x00\x32\x00\x31\x00\x31\x00\x31\x00\x31\x00\x39\x00\x31\x00\x30\x00\x30\x00\x30\x00\x30\x00\x30\x00\x2B\x00\x30\x00\x33\x00\x3A\x00\x30\x00\x30\x30\x50\x1E\x24\x00\x43\x00\x70\x00\x52\x00\x61\x00\x45\x00\x78\x00\x70\x00\x69\x00\x72\x00\x61\x00\x74\x00\x69\x00\x6F\x00\x6E\x00\x44\x00\x61\x00\x74\x00\x65\x1E\x28\x00\x32\x00\x30\x00\x32\x00\x32\x00\x31\x00\x31\x00\x31\x00\x39\x00\x32\x00\x33\x00\x35\x00\x39\x00\x35\x00\x39\x00\x2B\x00\x30\x00\x33\x00\x3A\x00\x30\x00\x30)
#\criticality=non critical

осуществив, как Вы сказали, просмотр в кодировке DER сведений о соответствующем параметре в запросе, созданном через КриптоАРМ с параметром

      <ValidityPeriod>
        <StartDate>20211119100000+03:00</StartDate>
        <ExpirationDate>20221119235959+03:00</ExpirationDate>
      </ValidityPeriod>

Но в то время как при выводе на печать запроса сведения должны отображаться так:
https://forum.rutoken.ru/uploads/images/2021/11/74517bbeb3bba0a6c2bdd52767ea6a02.png
они отображаются почему-то так:
https://forum.rutoken.ru/uploads/images/2021/11/45b678b968d4269ec4d51146036acaaa.png
Что не так? Что и где надо поправить?
С уважением,

Re: Утилита «Генератор запросов сертификатов для Рутокен ЭЦП 2.0»

Vladimir Ivanov пишет:
HDMI пишет:

И если нельзя, то можно ли так сделать, если в параметрах запроса средство подписи владельца сертификата указать КриптоПРО CSP?

Если вы генерируете ключи аппаратно на Рутокен, он и будет средством подписи. Другое значение в этом случае указывать нельзя.

Судя по тому, каким образом запрос создаётся в КриптоАРМ, этот параметр вообще носит информативный характер, на алгоритм работы не влияющий.
То есть можно выбрать средство подписи «другое» и через запятую помимо СКЗИ, соответствующего наименованию ключевого носителя Рутокен, также указать такие СКЗИ как КриптоПро CSP, КриптоАРМ.

Re: Утилита «Генератор запросов сертификатов для Рутокен ЭЦП 2.0»

HDMI пишет:

То есть можно выбрать средство подписи «другое» и через запятую помимо СКЗИ, соответствующего наименованию ключевого носителя Рутокен, также указать такие СКЗИ как КриптоПро CSP, КриптоАРМ.

Нельзя и невозможно - это разные понятия. Квалифицированный сертификат в соответствии с 795 приказом должен содержать в себе сведения о средстве подписи. Если подпись вычисляется аппаратно на Рутокен, то он и должен быть указан в качестве средства подписи

Re: Утилита «Генератор запросов сертификатов для Рутокен ЭЦП 2.0»

HDMI, про ValidityPeriod.

Представленное на скриншотах это разное представление одного и того же.

<ValidityPeriod>
        <StartDate>20211119100000+03:00</StartDate>
        <ExpirationDate>20221119235959+03:00</ExpirationDate>
      </ValidityPeriod>

КриптоАРМ выводит это в виде XML.

https://forum.rutoken.ru/uploads/images/2021/11/74517bbeb3bba0a6c2bdd52767ea6a02.png
Это человекочитаемый вид, вероятно от CertUtil.

https://forum.rutoken.ru/uploads/previews/2021/11/45b678b968d4269ec4d51146036acaaa.png
Это отображение в DER-кодировке.

Re: Утилита «Генератор запросов сертификатов для Рутокен ЭЦП 2.0»

Павел Анфимов, стоп.
Так он же не должен отображать в DER кодировке созданный запрос при просмотре его посредством CertUtil.
В DER кодировке это параметры же записаны в шаблоне который в формате TXT.
А как сделать так, чтобы был человекочитаемый вид как по остальным параметрам?

Re: Утилита «Генератор запросов сертификатов для Рутокен ЭЦП 2.0»

HDMI, PKCS#10 запрос (запрос на сертификат), согласно rfc2986 - это большая ASN.1 структура. Она может быть кодироваться как в DER формате, так и как Base64 (PEM).

Поэтому отображение содержимого запроса в виде ASN.1 -- это просмотр реального содержимое файла.

Человекочитаемый вид - это интерпретация ASN.1, сделанная в утилитах, для упрощения восприятия.

У OpenSSL отличное от CertUtil, преобразование в человекочитаемый вид, попробуйте, возможно вам больше подойдет:

openssl req -in <req_filename> -noout -text