返回

为你的用户启用 TLS 加密:安全使用 Android

Android

对于每个 Android 开发者来说,确保用户设备和数据的安全性是重中之重。传输层安全(TLS)是一种加密协议,旨在保护互联网上的数据通信,保障其隐私和完整性。在 Android P 及更高版本中,启用默认的 TLS 加密将使你的应用免受中间人攻击和数据泄露。

步骤 1:启用 TLS

启用 TLS 的过程相对简单。只需在清单文件中添加 networkSecurityConfig 标签即可。例如:

<manifest ...>
    <uses-permission android:name="android.permission.INTERNET" />

    <application ...>
        <networkSecurityConfig>
            <domainConfig cleartextTrafficPermitted="false">
                <domain includeSubdomains="true">yourdomain.com</domain>
            </domainConfig>
        </networkSecurityConfig>
    </application>
</manifest>

注意cleartextTrafficPermitted 属性用于指定是否允许应用在不安全的网络上通过明文传输数据。强烈建议将此属性设置为 false,以强制所有网络通信都通过 TLS 加密。

步骤 2:配置 TLS

一旦你启用了 TLS,就需要对其进行配置。networkSecurityConfig 标签中可以配置以下选项:

  • debugOnly :如果设置为 true,则仅在调试模式下启用 TLS。这有助于在开发和测试过程中进行故障排除。
  • baseConfig :此标签用于指定整个应用的默认 TLS 配置。它可以配置以下选项:
    • trustAnchors :此标签指定受信证书颁发机构 (CA) 的列表。
    • keyPins :此标签指定要为特定域名信任的公钥哈希列表。这有助于防止中间人攻击。
  • domainConfig :此标签用于为特定域名配置 TLS。它可以配置以下选项:
    • cleartextTrafficPermitted :此属性用于指定是否允许应用在不安全的网络上通过明文传输数据。强烈建议将此属性设置为 false,以强制所有网络通信都通过 TLS 加密。
    • includeSubdomains :此属性用于指定是否将配置应用于域名的所有子域名。
    • server :此标签用于指定用于域名的 TLS 服务器。它可以配置以下选项:
      • hostname :域名的主机名。
      • port :服务器的端口。
      • certificate :用于验证服务器身份的证书。
    • trustAnchors :此标签指定受信证书颁发机构 (CA) 的列表。
    • keyPins :此标签指定要为特定域名信任的公钥哈希列表。这有助于防止中间人攻击。

步骤 3:测试 TLS

配置 TLS 后,你应该对其进行测试以确保其正常工作。你可以使用以下工具之一进行测试:

  • Android Debug Bridge (adb) :可以使用 adb 命令来测试 TLS。例如,你可以使用以下命令来测试 example.com 域名的 TLS 配置:
adb shell am start -a android.intent.action.VIEW -d https://example.com
  • Chrome DevTools :你也可以使用 Chrome DevTools 来测试 TLS。为此,请打开 Chrome DevTools 并导航到“网络”选项卡。然后,你可以输入你要测试的 URL 并单击“Enter”键。在“详细信息”选项卡中,你将能够看到有关 TLS 连接的信息。

最佳实践

以下是启用和配置 TLS 的最佳实践:

  • 使用最新的 Android SDK 版本 :最新版本的 Android SDK 包含最新的 TLS 安全性修复程序。
  • 使用受信任的证书颁发机构 (CA) :确保你使用的 CA 是受信任的。你可以使用 Mozilla's list of trusted CAs 来找到受信任的 CA 列表。
  • 使用强密码 :确保你使用的密码足够强。强密码至少应包含 12 个字符,并包含字母、数字和符号的组合。
  • 定期更新证书 :确保你定期更新证书。证书通常有效期为一年,因此你需要在到期前更新它们。

结论

在 Android P 及更高版本中启用默认的 TLS 加密是一种简单且有效的方法来保护你的用户数据。通过遵循本文中的步骤,你可以确保你的应用免受中间人攻击和数据泄露。