安卓抓包 -- 用户隐私安全

 Charles  官网:SSL Certificates • Charles Web Debugging Proxy

 SSL 证书 : 需要将网络安全配置文件添加到应用程序上。

 Charles 抓包 Android 11 时 ssl 握手 失败

从 Android 11 或更高版本开始,有新的配置可以使 Charles Proxy 正常工作:

  1. 验证您是否安装并信任 Charles 代理证书。您可以在“设置”应用程序 ->“安全”->“加密和凭据”->“受信任的凭据”->“用户选项卡”=>“确保 Charles 代理”已加载中进行验证。

  2. 您只能从您自己的应用程序拦截 SSL 代理,而不能从其他应用程序拦截。

  3. 在源代码中,添加 res/xml/network_security_config.xml

<span style="background-color:var(--highlight-bg)"><span style="color:var(--highlight-color)"><code class="language-xml"><<span style="color:var(--highlight-namespace)">network-security-config</span>>
    <<span style="color:var(--highlight-namespace)">debug-overrides</span>>
        <<span style="color:var(--highlight-namespace)">trust-anchors</span>>
            <span style="color:var(--highlight-comment)"><!-- Trust user added CAs while debuggable only --></span>
            <<span style="color:var(--highlight-namespace)">certificates</span> <span style="color:var(--highlight-attribute)">src</span>=<span style="color:var(--highlight-variable)">"user"</span> />
            <<span style="color:var(--highlight-namespace)">certificates</span> <span style="color:var(--highlight-attribute)">src</span>=<span style="color:var(--highlight-variable)">"system"</span> />
        </<span style="color:var(--highlight-namespace)">trust-anchors</span>>
    </<span style="color:var(--highlight-namespace)">debug-overrides</span>>
    
    <<span style="color:var(--highlight-namespace)">base-config</span> <span style="color:var(--highlight-attribute)">cleartextTrafficPermitted</span>=<span style="color:var(--highlight-variable)">"true"</span>>
        <<span style="color:var(--highlight-namespace)">trust-anchors</span>>
            <<span style="color:var(--highlight-namespace)">certificates</span> <span style="color:var(--highlight-attribute)">src</span>=<span style="color:var(--highlight-variable)">"system"</span> />
        </<span style="color:var(--highlight-namespace)">trust-anchors</span>>
    </<span style="color:var(--highlight-namespace)">base-config</span>>

    <<span style="color:var(--highlight-namespace)">domain-config</span>>
        <span style="color:var(--highlight-comment)"><!-- Make sure your URL Server here --></span>
        <<span style="color:var(--highlight-namespace)">domain</span> <span style="color:var(--highlight-attribute)">includeSubdomains</span>=<span style="color:var(--highlight-variable)">"true"</span>>your_production_domain</<span style="color:var(--highlight-namespace)">domain</span>>
        <<span style="color:var(--highlight-namespace)">trust-anchors</span>>
            <<span style="color:var(--highlight-namespace)">certificates</span> <span style="color:var(--highlight-attribute)">src</span>=<span style="color:var(--highlight-variable)">"user"</span>/>
            <<span style="color:var(--highlight-namespace)">certificates</span> <span style="color:var(--highlight-attribute)">src</span>=<span style="color:var(--highlight-variable)">"system"</span>/>
        </<span style="color:var(--highlight-namespace)">trust-anchors</span>>
    </<span style="color:var(--highlight-namespace)">domain-config</span>>
</<span style="color:var(--highlight-namespace)">network-security-config</span>>
</code></span></span>

=> 将 your_product_domain 替换为您的工作域。

        4.  添加到AndroidManifest.xml

<span style="background-color:var(--highlight-bg)"><span style="color:var(--highlight-color)"><code class="language-xml"><<span style="color:var(--highlight-namespace)">manifest</span>>
    <<span style="color:var(--highlight-namespace)">application</span> <span style="color:var(--highlight-attribute)">android:networkSecurityConfig</span>=<span style="color:var(--highlight-variable)">"@xml/network_security_config"</span>>
    </<span style="color:var(--highlight-namespace)">application</span>>
</<span style="color:var(--highlight-namespace)">manifest</span>>
</code></span></span>

证书安装时

扫描二维码关注公众号,回复: 17178079 查看本文章

猜你喜欢

转载自blog.csdn.net/m0_56687854/article/details/131899480