2012-10-11 28 views
2

我有一個使用普通套接字進行通信的Java編寫的基本客戶端/服務器應用程序。具有匿名Diffie Hellman的Java SSL/TLS

我想阻止被動竊聽攻擊,並通過TLS/SSL進行通信。我不希望應用程序用戶陷入設置證書等麻煩的問題,我想使用AES加密(TLS_DH_anon_WITH_AES_128_CBC_SHA模式)使用匿名Diffie Hellman在SSL上設置套接字。

但是,我無法找到任何合適的例子在網上或任何文檔如何設置SSLContext或SSLSocketFactory啓用我想要的模式。我很感激這個最小的例子。

+1

您知道匿名密碼套件是不安全的嗎? – EJP

+0

EJP,正如我在我的問題中所說的,我的目標是防止「被動竊聽」,我認爲它符合我的安全要求。 – sharjeel

回答

2

您應該使用setEnabledCipherSuitesSSLSocket(或SSLEngine)上設置密碼套件。

+0

作爲示例的小代碼片段將非常有用。 – sharjeel

+2

在您從工廠獲得的'SSLSocket'上,調用'setEnabledCipherSuites(new String [] {「TLS_DH_anon_WITH_AES_128_CBC_SHA」}'。正如EJP所說,匿名密碼套件對MITM攻擊是不安全的。通常,攻擊者可以執行被動竊聽也可以執行MITM攻擊 – Bruno

+0

我希望我可以使用TLS-PSK,但是Java沒有它:( – sharjeel