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