2017-06-27 39 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