Java 保护Android应用程序免受网络监听

Java 保护Android应用程序免受网络监听,java,android,asp.net,ssl,retrofit,Java,Android,Asp.net,Ssl,Retrofit,我正在使用改型对我的应用程序的web api进行get/post请求 我在服务器上安装了ssl,因此我可以通过https成功连接我的web api (注意:ssl证书不是自签名的。) 奇怪的是,您可以使用此应用程序捕获get/post或其他请求: 此外,如果您使用http或https,这并不重要。“数据包捕获”应用程序可以捕获所有web请求 (您必须在设备上安装数据包捕获应用程序的证书才能工作) 问题是, 我想保护我的应用程序免受网络嗅探,我该怎么做 我正在使用asp.net/iis 8 for

我正在使用改型对我的应用程序的web api进行get/post请求

我在服务器上安装了ssl,因此我可以通过https成功连接我的web api

(注意:ssl证书不是自签名的。)

奇怪的是,您可以使用此应用程序捕获get/post或其他请求:

此外,如果您使用http或https,这并不重要。“数据包捕获”应用程序可以捕获所有web请求

(您必须在设备上安装数据包捕获应用程序的证书才能工作)

问题是,

我想保护我的应用程序免受网络嗅探,我该怎么做


我正在使用asp.net/iis 8 for web api,如果它很重要的话

如果您希望您的网络流量对其他人来说是不可读的,无论他们可以在哪里查看,您必须自己在自己的代码中加密和解密所有内容,而不依赖操作系统提供的任何内容。使用适当的强加密方案


这只对您开放,因为您同时控制服务器和客户端。

您无法保护设备本身。您感兴趣的是其他设备是否可以看到您的流量。使用带有正确证书的https,他们应该不能。我想保护我的Android应用程序,而不是设备。因此,如果我在我的Android应用程序中使用https;我仍然可以通过安卓应用程序的数据包捕获看到web请求。我只想隐藏安卓应用程序的web请求。(我想保护我的web请求不受网络嗅探的影响…)你将网络嗅探(查看电缆上发生的情况)与拦截本地设备上的操作系统调用混为一谈。您无法保护设备本身,因为您的程序必须调用底层操作系统来执行任何有趣的操作,并且这些调用可以重定向。我刚刚看到您控制了与之交谈的服务器。这让你想做什么就做什么,我真的不明白。上面提到的“包捕获”应用程序是否会钩住所有ssl/encryp/decrypt系统调用?或者正如OP所建议的那样,它是否使用SSL密钥列表(因此OP所要做的就是隐藏他的密钥,以免轻易找到它)@Thorbjørnravandersen