连接到公共 Wifi 时,我的 Android 应用程序是否使用 TLS 或其他加密?我怎么知道?

信息安全 tls 无线上网 安卓
2021-08-12 09:19:24

我有一部安卓手机。当它仅连接到我的运营商的 3G 网络时,我认为它可以相当安全地防止窃听(尽管并非无懈可击)。但是,有时由于接收不到信号或其他原因,我可能会连接到公共 Wifi 网络并以这种方式使用我的手机。

不过这让我很担心。如果我使用我的 GMail 应用程序、银行应用程序,甚至是 Twitter 等不太重要的应用程序,我的数据是否可以安全发送?或者其他人可能正在阅读我以这种方式发送的消息?

如果我在浏览器中加载 GMail 或 Twitter,我可以查看 URL 中的协议是否为 https,以及证书是否有效。大多数浏览器都有一个突出的图标,让您知道它们何时处于安全模式并且一切都已检查。我见过的安卓应用都没有这样的东西,据我所知,我只是盲目地希望开发人员已经保护了他们应用的流量。

我通过 Wifi 发送个人信息的 Android 应用程序是否安全?我怎么知道?谷歌可以使用操作系统的标准或功能来执行此操作吗?还是每个开发者都为自己着想?

3个回答

3G 网络固有的加密和身份验证仅在 3G 提供商的基础设施范围内保护您,而不是超出范围。如果您使用手机进行普通未加密的 HTTP 连接,一旦数据超出提供商的网络,数据将不受保护,并进入整个互联网,野兽在其中游荡。如果一个应用程序正在发送未受保护的私人数据,那么无论发送是通过 WiFi 还是通过 3G,您都会遇到问题。WiFi 只是让问题在本地更加明显

要了解手机上的处理方式,您可以运行数据包捕获应用程序,就像使用 PC 一样。不过,它可能需要将手机植根。此外,即使捕获显示 SSL/TLS 会话,您仍然不知道客户端如何验证服务器证书(特别是应用程序接受哪些根证书,以及它如何将证书与预期的服务器名称匹配) ,因此您无法完全保证随机应用程序可以正确执行操作。

操作系统中没有强制使用 TLS 的内容;但至少提供了一个相当不错的TLS 客户端,并且大多数想要执行 SSL/TLS 的应用程序实际上将使用 HTTPS,默认实现以合理的方式执行操作(就像 Web 浏览器一样)。所以我们可以说,一个使用 SSL/TLS 但搞砸了的应用程序开发人员一定是在他的草率中具有过分的创造力。

GMail 应用程序、您的银行应用程序或“像 Twitter 这样不太重要的东西”没有任何要求通过 WiFi(或任何有线)连接安全地发送您的数据。您必须调查每个应用程序才能确定您的数据是否被安全发送。

与使用有线连接相比,使用“公共”WiFi 确实会使您面临一些攻击,因为您无法确定接入点对您“友好”,或者您在同一热点上的对等点是否相似“好的”。

可以克服 HTTPS、TLS 甚至(gasp)MD5 哈希的安全机制。没有“完全安全”的网络协议/通信套件之类的东西。只有“更安全”和“更不安全”的。但是,当您使用这些公共热点时,您可以添加一些东西作为额外的保护层。

VPN、SSL 隧道、隐私浏览、TOR、privoxy、“需要 HTTPS”设置以及许多其他设置都可用于增强您在这些公共热点上的通信安全性。

Android 允许您相当轻松地设置 VPN。您应该考虑始终从公共热点 VPN-ing 回到您的家庭服务器,然后将您的流量从那里代理到 Internet。

使用 VPN 是增强未知/不受信任的 WiFi 热点安全性的好方法。

回答您的最后一个问题 - 这确实是“Android 生物圈中的每个开发人员都为自己服务!”

显然,您还可以将自己的自签名证书添加到证书商店,并通过本地 wifi 连接在您的应用程序连接中进行中间人。

我也会在应用程序上尝试 ssl strip,因为当 https 不起作用时,某些应用程序可能会不安全地使用 http。

有关更多详细信息,请参阅以下播客