Вопрос

Нам был вручен набор тестовых сертификатов на смарт-картах для разработки решения, требующего подписи XML-сообщений с использованием PKI.На каждой (физической) смарт-карте хранится два сертификата.Я импортирую их в хранилище сертификатов Windows с помощью программного обеспечения, предоставленного поставщиком смарт-карт, а затем использую код, подобный следующему, для перебора установленных сертификатов:

foreach (X509Certificate2 x509 in CertStore.Certificates) {
  foreach (X509Extension extension in x509.Extensions) {
     if (extension.Oid.Value == "one we are interested in") {
        X509KeyUsageExtension ext = (X509KeyUsageExtension)extension;
        if ((ext.KeyUsages & X509KeyUsageFlags.DigitalSignature) != X509KeyUsageFlags.None) {
            // process certs here

Нам было сказано использовать сертификаты, в которых установлен флаг использования ключа NonRepudiation, для подписи XML-файлов.Однако сертификат с флагом NonRepudiation имеет этот флаг. только, а не, например, флаг DigitalSignature, который я проверяю выше.Кому-то, кроме меня, это кажется немного странным?Другими словами, мне говорят подписать сертификат, для которого (по всей видимости) не установлен флаг использования DigitalSignature.Это нормальная процедура?Любые комментарии?

Спасибо.

Это было полезно?

Решение

Какое ключевое использование у него есть?Вы правы, это немного странно, однако, если, например, ключ использовался для входа в AD, то на нем могут не быть установлены флаги для использования DigitalSignature.Это не значит, что вы не можете использовать его для этого, это просто указывает на то, что эмитент сертификата не предоставляет никаких гарантий, когда вы выходите за пределы указанного использования ключа.

Другие советы

Когда я читаю RFC 5280 (4.2.1.3), NonRepudiation — это надмножество digitalSignature.Другими словами, он предоставляет все возможности digitalSignature и даже некоторые.Так что технически то, о чем они просят, действительно, хотя, возможно, и необычно.

Если вы хотите предоставить услугу неотказуемости, т.е.вы хотите, чтобы подписи имели ЮРИДИЧЕСКОЕ значение, тогда вам следует использовать только неотказ от авторства.Действительно, это РЕКОМЕНДУЕТСЯ стандартами (см. ETSI TS 102 280), поскольку использование других битов keyUsage вместе с неотказом может иметь проблемы с безопасностью.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top