bcrypto / btok

Cryptographic tokens
4 stars 4 forks source link

Непонятна обязательность использования Name #65

Closed andrewkostevich closed 5 years ago

andrewkostevich commented 5 years ago

Непонятны обязательность/необязательность/соблюдение формата объекта Name

п. 6.6:

При формировании сертификата eSign готовится запрос, в который включаются специальным образом отформатированные идентификационные данные. Формат определяется типом Name, заданным в СТБ 34.101.19. Должны применяться уточнения формата, установленные в СТБ 34.101.78

То есть объект Name должен использоваться и объект Name должен соответствовать СТБ 34.101.78.

п. 12.3.5:

При формировании запроса [на выпуск сертификата] дополнительно может использоваться объект Name

дополнительно может использоваться: то есть объект Name может не использоваться? Или использоваться частично, дополнительно к другой информации?

п. 12.3.5:

после формирование запроса и до записи сертификата рекомендуется записывать вместо сертификата хэш-значение, вычисленное алгоритмом belt-hash от закодированного значения объекта Name. Данное значение может быть использовано для получения от УЦ сертификата после его выпуска

Имеется в виду, что объект Name все-таки должен использоваться в запросе без модификации, чтобы при установке сертификата можно было сравнить хэш-значения Name и subject из сертификата?

agievich commented 5 years ago

В 6.6 не говорится об объекте Name. Речь идет о формате.

В 12.3.5 допущена неточность: следует хранить хэш-значение запроса (а не хэш-значение объекта Name).

Корректировка:

Если формирование запроса и запись сертификата выполняются в разных сеансах, то до записи сертификата рекомендуется хранить на его месте хэш-значение запроса, вычисленное с помощью алгоритма belt-hash. Хэш-значение может быть использовано для получения от УЦ сертификата после его выпуска (см. СТБ 34.101.78).

Дополнительные корректировки сделан в Б.2 (даны пояснения по хранению хэш-значения).

Реализовано в https://github.com/bcrypto/btok/commit/ba1222a0d906f9fdc1c947877e7ae2ffde65086d.

andrewkostevich commented 5 years ago

п. 6.6:

При формировании сертификата eSign готовится запрос, в который включаются специальным образом отформатированные идентификационные данные. Формат определяется типом Name, заданным в СТБ 34.101.19. Должны применяться уточнения формата, установленные в СТБ 34.101.78

то есть запрос содержит идентификационные данные формата Name

п. 12.3.5:

Открытый ключ, который возвращается при генерации пары ключей (см. 12.2.9), должен использоваться при формировании запроса на выпуск сертификата. При формировании запроса дополнительно может использоваться объект Name

то есть запрос может не содержать идентификационные данные из объекта Name, раз он объявлен дополнительным. Причем формулировка подчеркивает обязательность использования открытого ключа и необязательность Name

Видится противоречие между утверждениями п. 6.6 и п. 12.3.5. В результате непонятно, что все таки должно быть включено в запрос на выпуск сертификата: объект Name формата согласно п. 6.6 или любые идентификационные данные любого формата согласно п. 12.3.5, то есть ограничения на формат запроса в стандарте не выдвигаются.

olegotory commented 5 years ago

КТ не формирует запрос, а только его подписывает, поэтому про формат в стандарте и не говорится. Есть стандарт СТБ 34.101.78, который уточняет сертификаты подписи и транспорта ключа, в том числе и для КТ. В СТБ 34.101.78 указано какие запросы должны использоваться при выпуске сертификатов, соответствующих СТБ 34.101.78.

Использование объекта типа Name не является обязательным, так как запрос может формироваться терминалом с соответствующими правами по группам данным, размещенным на КТ.

andrewkostevich commented 5 years ago

Получается вариативность использование/не использования Name. Это и вводит в заблуждение при прочтении требования п. 12.3.5. Если Name задан - терминал может его не использовать, вместо этого терминал сам может сформировать запрос с аналогичными идентификационными данными.