2017-06-27 33 views
1

我想發送請求到網絡服務器。它應該是安全的,以防中間人攻擊。因此,我在Web服務器(https)上創建了一個SSL證書。作爲迴應,我會得到一個隨機的字符串。這很好。Android上的雙向SSL通信?

但是我如何確保響應以防止MITM攻擊呢?應該如何將響應從Web服務器發送到Android,以及我必須在Android上配置什麼?我必須購買另一個可信證書嗎?

+4

SSL/TLS建立了抵抗的人在__in都directions__中間人攻擊保護的傳輸信道。這意味着請求和響應受到保護。由於SSL/TLS始終在兩個方向上保護,即請求和響應,因此不需要特殊配置或額外的證書。 –

回答

1

在典型的所謂的單向TLS(也稱爲「服務器證書認證」)設置中,服務器將監聽來自基本上任何客戶端的請求,但客戶端只會信任具有有效證書的服務器。當客戶認爲它可以信任接收到的證書時,可以打開通信通道並且它將被雙向加密。

所謂的雙向TLS(也稱爲「客戶端證書認證」或「相互認證」)設置是指兩端向另一端呈現證書。換句話說,您的服務器只會信任某些客戶端(即提供有效證書的客戶端)。這對您對MITM的保護沒有任何影響。你只會限制可信任的客戶端池。因此,作爲一個結論 - 如果您唯一的擔心是保護您的通信免受MITM攻擊,那麼單向TLS就沒有問題。

TLS V1.2:https://tools.ietf.org/html/rfc5246

+1

偉大的解釋。謝謝 – JavaForAndroid

+0

我不相信*「1-way TLS」*和*「2-way TLS」*是用於描述協議的標準術語。另見[RFC 5246](https://tools.ietf.org/html/rfc5246)。 – jww

+0

對,雖然我還不確定它們是否是標準條款,但我對該帖子進行了一些編輯並添加了兩個同義詞。另一方面,我看過使用這些術語(包括CISSP)的文獻和在線資料。 – quinz