我想使用XMLDSIG來驗證.config文件沒有被篡改。我也希望能夠verify the signature chain,以便我可以信任簽名。我可以驗證.NET中的XMLDSIG簽名而不需要安裝根證書嗎?
我已經得到了鏈中的三個證:
Root CA -> Intermediate Signing CA -> Signing Key
我檢查文件與由中間CA頒發的密鑰簽名
我想在沒有在用戶的Windows證書存儲中安裝任何證書的情況下執行此操作。這些是自簽名證書,因此並非每個用戶都希望我將它們安裝到他們的Root商店中。我在將它們安裝在我的根存儲中時沒有問題。
我有原始的.CER文件 - 它們包含在Signature塊中,我可以將它們包含在驗證碼中。我可以通過使用X509ChainPolicy.ExtraStore
來建立證書鏈。
如果證書沒有安裝在根存儲中,並且我驗證了鏈,那麼X509Chain.Build
返回false
,並且鏈中有一個X509ChainStatusFlags.UntrustedRoot
。
我可以在此操作期間添加可信證書嗎?
愚蠢的問題,但你有所有簽名證書的信任鏈中物理拷貝,對不對?他們只是沒有安裝,正確? – x0n 2012-04-10 15:15:54
是的。我將它們複製到簽名塊中,但我也可以輕鬆地將它們包含在驗證碼中。我只是不想在每個用戶的機器上安裝一個根CA. – 2012-04-10 15:27:41