Security
我應該在哪個證書儲存中放置第三方自簽名 SSL 證書以使身份驗證正常工作而沒有額外的安全風險?
我正在嘗試在 IIS 8 中執行的 ASP.NET MVC3 應用程序中設置客戶端證書身份驗證。客戶端(良好的第三方)使用自簽名 SSL 證書進行身份驗證,我的應用程序提前知道指紋並檢查請求具有適當的證書。
它不能開箱即用 - IIS 拒絕使用 HTTP 403.16(客戶端證書不受信任)的請求。
我做了很多實驗,看起來如果我將客戶端證書添加到“根”(受信任的根證書頒發機構)或“Auth Root”(第三方根證書頒發機構)證書儲存,然後請求傳遞到應用程式碼 - IIS現在信任證書並接受請求。因此,將證書添加到這些商店之一“使其工作”。
問題是我不確定這種變化可能會產生什麼其他影響。假設好第三方失去了證書的私鑰部分,並且一些壞第三方濫用了它——他們除了冒充好第三方還能做什麼?也許他們可以簽署我的系統將信任的程式碼包?也許他們可以頒發站點證書並使我的系統信任他們的惡意站點?
我應該在哪個商店添加客戶端證書,以便將意外的安全風險降到最低?
如果沒有安全風險,您將無法解決您的問題。您唯一的選擇是在
Local Machine\Trusted Root CAs
商店中安裝證書。因此,所有使用 Windows 證書儲存的應用程序都將信任此第 3 方證書。如果它是 CA 證書,那麼該根目錄下的所有子證書都將在您的系統上受信任。如果您執行自己的 PKI,則可以通過執行該證書的合格從屬來提高安全性。通過合格的從屬關係,您將能夠設置證書是否受信任的各種類型的約束。