我想使用XMLDSIG来验证.config文件是否未被篡改。我也希望verify the signature chain能够信任签名。
我在链中有三张证书:
Root CA -> Intermediate Signing CA -> Signing Key
我检查文件是否使用中间CA颁发的密钥进行签名。
我想在不在用户的Windows证书库中安装任何证书的情况下执行此操作。这些是自签名证书,因此并非每个用户都希望我在根存储中安装它们。我在我的根商店中安装它们没有问题。
我有原始的.CER文件 - 它们包含在Signature块中,我可以将它们包含在验证码中。我可以使用X509ChainPolicy.ExtraStore
来构建证书链。
如果证书未安装在根存储中,并且我验证了链,那么X509Chain.Build
将返回false
,并且链中包含X509ChainStatusFlags.UntrustedRoot
。
我可以在此操作期间添加受信任的证书吗?
答案 0 :(得分:0)
假设您拥有信任链中所有签名证书的公钥的物理副本,那么可以使用OpenSSL命令行工具。
http://www.madboa.com/geek/openssl/#verify-standard
起初这是一个陡峭的学习曲线,但却是一个非常强大的实用工具。
如果您没有签名证书,则无法验证任何内容。这与尝试在没有看到原始版本的情况下验证人体签名相同。你没有什么可比的,所以你如何验证真实性?
<强>更新强>
这里有一些东西可以帮助你:
http://social.msdn.microsoft.com/Forums/eu/clr/thread/1966a6e8-b6f4-44d1-9102-ec3a26426789