跳转至

Index

不安全的网络配置设置

描述

Android 网络安全配置 (Network Security Configuration) 允许以声明方式设置应用程序的网络安全。

当 Android 网络安全配置缺失或以不安全的方式配置时,它可能会使应用程序容易受到中间人 (MiTM) 攻击。

建议

Android 网络安全配置是一个 XML 文件,允许以声明方式设置应用程序的网络安全。

将网络安全配置添加到您的应用程序:

1- 在您应用程序的 res/xml 目录中创建一个新的 XML 文件。将其命名为 network_security_config.xml 或任何其他合适的名称。 2- 定义安全配置,请参阅以下示例 3- 将配置应用于清单 (Manifest):

<application
        android:networkSecurityConfig="@xml/network_security_config"
        <!-- Other attributes -->
        >
        <!-- Other configurations -->
</application>  

网络安全配置示例

  • 支持仅调试设置的自定义证书颁发机构 (CA)
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <debug-overrides>
        <trust-anchors>
            <certificates src="@raw/debug_cas"/>
        </trust-anchors>
    </debug-overrides>
</network-security-config>
  • 声明性选择退出明文流量
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <domain-config cleartextTrafficPermitted="false">
        <domain includeSubdomains="true">secure.example.com</domain>
    </domain-config>
</network-security-config>
  • 声明性设置证书固定密钥
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <domain-config>
        <domain includeSubdomains="true">example.com</domain>
        <pin-set expiration="2018-01-01">
            <pin digest="SHA-256">7HIpactkIAq2Y49orFOOQKurWxmmSFZhBCoQYcRhJ3Y=</pin>
            <!-- backup pin -->
            <pin digest="SHA-256">fwza0LRMXouZHRC8Ei+4PyuldPDcf3UKgO/04cDM1oE=</pin>
        </pin-set>
    </domain-config>
</network-security-config>

链接

标准

  • OWASP_MASVS_L1:
    • MSTG_NETWORK_1
  • OWASP_MASVS_v2_1:
    • MASVS_NETWORK_1
  • HIPAA_CONTROLS:
    • SECURITY252
    • SECURITY212
    • SECURITY213
  • OWASP_MASVS_L2:
    • MSTG_NETWORK_1
  • PCI_STANDARDS:
    • REQ_1_2
    • REQ_2_2
  • CNIL_FOR_DEVELOPERS:
    • DEVELOPERS_4_1_4