我需要一個答案完全相同的問題...
似乎太可笑了以後要這麼麻煩來加密與128位密鑰的東西,通過首字母縮寫詞的難以辨認的混亂涉水,用質數作爲大到等於我的信用卡餘額等等......在你遇到麻煩之後,你會把你的私鑰導出到每一臺客戶端機器上,只受證書文件上的一個(可能是不安全的)密碼的保護。瘋狂的事情。無意義。
有一點需要記住的是,服務器和客戶端都需要解密消息,解密需要顯式的私鑰。
所以他們只有這樣才能看到,以避免將服務器的私鑰傳送給所有人,並且雜項是要有2個不相關的證書,一個用於服務器,一個用於客戶端。
當客戶端向服務器發送消息時,客戶端僅使用服務器的公鑰進行加密。服務器然後使用其私鑰解密。
當從服務器向客戶端發送消息(或更多回復)時,服務器使用客戶端的公鑰進行加密,並且客戶端使用自己的私鑰進行解密。瞧?
至少這樣,服務器的私鑰永遠不會被釋放到服務器之外。然而,客戶私鑰仍然在任何地方發貨。
我覺得那麼它歸結到與不同程度的滿足處理4種情景 -
1)消息從客戶端發送到服務器 - 味精使用加密服務器的公鑰。服務器證書必須在客戶端上可用。服務器私鑰不一定存在。由於服務器的公鑰易於訪問,所以對於通俗客戶端來說,加密並向服務器發送消息相對容易。
2)在服務器上收到消息 - 使用服務器的私鑰對消息進行解密。這個私鑰只駐留在服務器上,因此非常安全(物理安全性?)。包含私鑰的服務器證書不應該被其他人訪問,除非您將副本放在公共FTP文件夾中,或者啓用遠程訪問或者其他方式。即使有人獲得了服務器證書,他們仍然需要猜出你的輝煌密碼嗎?順便說一句,我不知道密碼保護的證書文件可以「破解」。
3)回覆從服務器發送到客戶端 - msg使用客戶端的公鑰加密。所以服務器需要客戶端證書(不需要私鑰)。客戶端公鑰在任何地方都很容易獲得,因此從客戶端到服務器攔截原始msg,忽略其內容(因爲您無法在沒有服務器私鑰的情況下解密它),併發送某種加密響應回到客戶端,看看客戶是如何解釋它的。樂趣。
4)客戶端收到的服務器回覆 - 使用客戶端的私鑰解密msg。這個私鑰在所有的客戶端機器上,在證書文件中,只有一個密碼保護......所以它相對不安全。
當然,如果您不太擔心安全問題,另一種選擇是將服務器證書隨處發送(包括服務器私鑰),並將其用作服務器和客戶機證書。我相信很多人都這麼做。
這個答案包含一點點的猜測&點加入,因爲我找不到一個清晰的解釋。我有興趣知道我是否接近。
============================================== ===================================
更新:在那裏 - http://msdn.microsoft.com/en-us/library/ms733102.aspx
來源
2012-11-21 10:28:38
Tim