2012-07-19 116 views
0

對於具有多個應用程序服務器和多個客戶端的系統,我想介紹相互身份驗證以及TLS提供的其他安全保護。簽署證書的解決方案

服務器和客戶端可能位於不同的網絡以及同一網絡上。

每個實體(客戶端或服務器)都有自己的密鑰存儲區,存儲其私有/公用密鑰對和包裝公鑰的X.509證書。但是,在這一點上,證書是自簽名的。所以,它不會被其他通信實體驗證。經過一番研究,我看到了一些解決方案:

  1. 創建一個專用CA來簽署證書。如果我對 有所瞭解,則CA的證書必須出現在每個實體的 信任庫中,以便使用CA的證書驗證其他實體的證書可以 。
  2. 創建專用CA作爲第一個解決方案。但是,私人CA的證書由商業CA(例如Verisign)簽署。 I 不知道它增加了以前的解決方案。
  3. 由商業CA簽署每個實體的證書。但這個解決方案看起來很貴
  4. 僅使用自簽名證書。每個實體的證書都由它自己簽名,並且必須添加到每個要與之通信的實體的信任庫中。

這是我的第一次安全體驗。在您認爲有效的解決方案中,您推薦哪一個?

感謝

+0

考慮[CACERT](https://www.cacert.org /)。 – 2012-07-19 09:47:31

回答

1

我已經編號的你的選擇更容易閱讀。

您的選項4具有與第一個類似的安全和管理細節。即您的選項將縮小到自有vs第三方CA服務。雖然您可以從CA授權機構購買您自己的CA證書,但它會花費很多,呃。但是,CA的銷售人員逐案確定「多少」是多少。

在管理複雜性方面我把它們按以下順序(首先是最簡單的): 3,1,2,4

在選項1,2,4,你必須管理你的證書這就需要PKI的知識和它的安全程序(除了純粹的技術,您將需要確保私鑰保護)和軟件證書生成和管理(OpenSSL和都將是不夠的大多數活動,並最有可能你將需要編寫自己的代碼來生成證書)。

而且這是一個好主意,有一個OCSP服務器也是如此,你就必須在選項1,2的情況下自行運行,4

+0

我也希望不是每個人都可以獲得中間CA(選項2),因爲他們可能能夠爲不屬於他們的機器頒發證書,並讓它被任何瀏覽器識別。 – Bruno 2012-07-19 09:53:27

+0

感謝您的回答。你知道一些關於創建私有CA的文檔嗎? – 2012-07-19 10:09:05

+0

@MickaelMarrache,你可能會感興趣的[這個問題](http://security.stackexchange.com/q/7030/2435)。 – Bruno 2012-07-19 10:16:37