Я хотел бы использовать XMLDSIG для проверки того, что файл .config не был подделан. Я также хочу иметь возможность verify the signature chain, чтобы я мог доверять сигнатуре.Могу ли я проверить подпись XMLDSIG в .NET, не требуя установки корневого сертификата?
У меня есть три сертификата в цепочке:
Root CA -> Intermediate Signing CA -> Signing Key
Я проверить, что файл подписан с помощью ключа, который выдается промежуточным CA.
Я бы хотел сделать это без установки сертификатов в хранилище сертификатов Windows пользователя. Это самоподписанные сертификаты, поэтому не каждый пользователь хочет, чтобы я их установил в своем корневом магазине. У меня нет проблем с установкой их в моем корневом магазине.
У меня есть оригинальные .CER-файлы - они включены в блок подписи, и я могу включить их с кодом подтверждения. Я могу построить цепочку сертификатов, используя X509ChainPolicy.ExtraStore
.
Если сертификаты не установлены в корневом хранилище, и я проверяю цепочку, то X509Chain.Build
возвращает false
, а цепочка имеет X509ChainStatusFlags.UntrustedRoot
.
Могу ли я добавлять доверенные сертификаты только на время этой операции?
Глупый вопрос, но у вас есть физическая копия всех подписания в сертификаты доверия цепи, не так ли? Они просто не установлены, правильно? – x0n
Да. Я скопировал их в блок подписи, но я также могу легко включить их с кодом подтверждения. Я просто не хочу устанавливать корневой ЦС на машине каждого пользователя. –