2016-03-01 141 views
0

我使用加密的tcp連接在java中編寫一個聊天系統。加密聊天java

據我所知,我必須使用SSL套接字,但除此之外,代碼與沒有加密的普通聊天系統有什麼不同?所以除了SSL對象外,還有什麼我需要考慮的嗎?

感謝您的幫助

回答

1

SSL是一種傳輸層安全協議。它將確保您的數據包不會被竊聽者識別(中間的人)。

我建議你也加入你自己的應用層安全性,例如驗證你正在與之通話的人。

+0

我知道SSL做什麼(我研究過密碼學和互聯網系統)。如果我的問題沒有得到正確的答覆,我很抱歉。我想說的是,在客戶端和服務器類中,除了SSL對象之外,還有什麼其他的東西需要與不需要tcp加密的普通客戶端和服務器類不同。我讀了一些關於批准的證書或激活證書的內容,但不太清楚這意味着什麼。有什麼建議麼? – Guest

+0

您指的是經過驗證且受信任的證書頒發機構(如verizon,godaddy或commodo)進行的SSL證書籤名。您的SSl證書(以及您正在聯繫的一方)確實可以進行自簽名,並且它也會一樣安全。證書籤名的重點是AUTHENTICITY而不是安全。換句話說,由知名CA簽署的證書被證明不屬於冒充其他人的邪惡實體。例如,對於託管電子商務網站的網絡服務器而言,這一點非常重要。如果一個壞人擁有一個自簽名證書,你將會安全地交出你的信息 – ForeverStudent

+0

一個自簽名的SSL證書將爲你提供很好的服務,但是由於你正在開發一個帶有TCP套接字的應用程序,你將需要擁有自己的**應用程序層**安全協議就位。例如作爲應用層協議的HTTP可以使用HTTP基本認證或HTTP摘要認證。 – ForeverStudent