2010-04-10 41 views
3

我們有一個專有的框架,現在我們想要集成客戶端SSL證書的認證。 將客戶端證書映射到專有用戶帳戶(例如數據庫中的簡單用戶表)的最佳做法是什麼?將客戶端證書映射到用戶帳戶的最佳做法是什麼?

  • 保存證書的公鑰呢?
  • 保存發行者和序列號?

還是有其他的可能性?

回答

2

您是否正在頒發證書(並且有可能設置證書的某些字段)?這些證書是否必須與更大規模的PKI環境(如電子郵件簽名(我的意思是說你有X.509互操作性惡夢))集成?

如果你可以爲用戶創建一個證書頒發機構,並沒有在意國外的系統,你可以給每個客戶端證書的通用名稱屬性直接映射到您的用戶帳戶。因此,您可以檢查客戶端證書是否由用戶證書頒發機構簽署,然後匹配證書CN屬性。

當只有簽名證書的有限的和衆所周知的號碼,然後我推薦給存儲這個證書,並檢查客戶端證書,並接受他們,只有當他們被簽名證書的一個簽名。然後,您使用頒發CA爲每個用戶唯一設置的證書字段(在用戶證書更新時保持不變,許多合作讓用戶證書在約一年後超時)將該字段與您的用戶數據庫連接起來。

如果您不能頒發證書,您可以將證書的散列存儲在數據庫中,但是這樣做的缺點是當證書用完時您需要更新數據庫。散列對於每個證書都是唯一的,而證書的大部分字段都可能被僞造。

您可能還想檢查簽名證書頒發機構的證書吊銷列表,因此沒有用戶可以使用被盜證書訪問您的服務。