說我有微不足道的客戶端服務器的PHP SSL應用程序。
- 服務器生成私鑰/公鑰。
- 服務器開始偵聽套接字。
- 客戶端連接到插座:
stream_socket_enable_crypto($socket, true, STREAM_CRYPTO_METHOD_SSLv3_CLIENT)
客戶端如何在ssl連接中生成公鑰?
它是如何工作的?客戶端正在生成私鑰/公鑰並將其存儲在內存中?
和瀏覽器https相同的問題,瀏覽器使相同?生成私鑰/公鑰?
一般來說:客戶端從哪裏獲取密鑰?
要進一步添加,服務器證書允許客戶端驗證服務器,而客戶端證書也允許服務器驗證客戶端。套接字通常指IP地址和端口號的組合。 –
客戶端和服務器使用對稱加密。但他們使用非對稱加密共享對稱密鑰。所以兩個都需要私鑰/公鑰來啓動SSL會話,對嗎? – corvax
@corvax不,他們不'使用非對稱加密共享對稱密鑰'。這是另一個城市神話。他們獨立計算它。正如我在答覆中所說的那樣。它永遠不會被傳輸,並且永遠不會被加密。不,如我所說,它們都不需要公鑰和私鑰來啓動SSL會話。客戶端計算並向服務器發送預主密鑰,該密鑰可能使用服務器的公鑰加密,但這只是一對密鑰對的使用,並且還有其他方式可能發生,具體取決於所選的密碼套件。 – EJP