2014-03-26 143 views
1

我有一個ASP.NET MVC應用程序,其中每個用戶都有自己的A1證書(通常是來自CA的受密碼保護的pfx文件),用於在服務器端登錄一些文檔。證書管理的最佳實踐

我看到的兩個選項是將pfx文件存儲在服務器中,並且每次將導入密碼保存到C#X509Certificate2類中,或者將證書導入到Windows Storage中並使用C#X509Store和其他方法通過序列號訪問證書。這兩者有利有弊(安全性,維護性,性能)。

任何人都有這種情況的專業知識,可以分享一些提示?

問題:抱歉問題的一般格式。

回答

1

任何人都有這種情況的專業知識,可以分享一些提示?

好了,跳出來在我被存儲PFX/PKCS#12證書和私鑰服務器上的密碼的東西。它破壞了一些安全屬性,並可能爲拒絕提供不可抵賴性的東西提供可否認性。

兩個選項我看到的是存儲在服務器中PFX文件,並保存密碼...

我相信有三分之一。用戶從服務器下載文檔;然後用戶簽署文件;最後,用戶將分離的簽名上傳到服務器。我認爲這是習慣性的工作流程。

我偶爾看到的另一個不好的想法是讓服務器發送文件的哈希值,然後用戶在不知道他或她簽名的情況下簽名。用戶應該總是自己計算哈希值。 Schneier甚至建議用戶稍微修改文檔以確保其不受攻擊者控制並容易發生碰撞。


...導入到C#X509Certificate2類中的每個時間或證書導入到Windows存儲和使用C#的X509Store和其他序列號訪問證書。

這是一個設計細節。我不相信有足夠的信息發表任何有用的評論。


的最佳實踐證書管理

有關證書的很酷的事情是,他們是公開的,並且不敏感。所以圍繞它們的實踐並不多。儘管證書使用的PKI是一個不同的故事。

選擇一個散列和模數以滿足您的未來需求,如SHA256和3072位RSA模數。

短期證書(30天左右)促進小型證書撤銷列表,這對一些客戶(檢查撤銷的客戶)有益。 OCSP更好,而OCSP裝訂更好。

如果證書頻繁旋轉,那麼可以重新驗證相同的公鑰,因爲密鑰連續性似乎是比按鍵旋轉更爲理想或有用的屬性。