bcrypto / bpki

A public key infrastructure profile
8 stars 0 forks source link

Перечень подписанных атрибутов в `SignedData` #78

Closed gallagalla closed 1 month ago

gallagalla commented 1 month ago

В п. 8.6 сказано:

5) в список подписанных атрибутов (signedAttrs) должны быть включены атрибуты «Тип содержимого» (ContentType), «Хэш-значение» (MessageDigest) и может быть включен атрибут «Время подписания» (SigningTime). Все атрибуты определены в СТБ 34.101.23.

Но ведь если речь идет например о штампе времени или об аттестате dvcs, то там обязан быть атрибут SigningCertificateV2. Фраза "должны быть включены атрибуты" означает, что в списке подписанных атрибутов должны быть включены только те три атрибута, которые приведены далее, или, что приведенные далее три атрибута обязательно должны быть включены, но также могут включаться другие атрибуты?

agievich commented 1 month ago

Действительно, обязательность включения SigningCertificateV2 в штамп времени и аттестат заверения плохо читается в п. 8.6. Более того, содержимое SigningCertificateV2 не конкретизировано.

Предлагается дописать:

Списки подписанных атрибутов штампа времени и аттестата заверения должны дополнительно включать атрибут SigningCertificateV2, определенный в СТБ 34.101.80. В этом атрибуте должна быть указана ссылка на сертификат подписанта, эта ссылка должна быть сформирована с помощью алгоритма belt-hash и должна быть единственной.

gallagalla commented 1 month ago

С обязательностью включения SigningCertificateV2 в штамп времени и аттестат заверения вопрос закрыт, но остается непонятно: можно ли дополнительно включать в SignerInfo другие атрибуты, которые не упоминаются в пункте 8.6?

agievich commented 1 month ago

можно ли дополнительно включать в SignerInfo другие атрибуты, которые не упоминаются в пункте 8.6?

Можно, но не рекомендуется.

agievich commented 1 month ago

Предложенные корректировки реализованы в https://github.com/bcrypto/bpki/commit/08b64ed1f1ba1bbe6d126837f3fc80d717fb198f.