You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Google Security ProviderInstaller为何将TLS版本从1.3降级至1.2?

OkHttp 结合 Google ProviderInstaller 引发的 TLS 1.3 降级问题

在Android 12环境下,使用最新版OkHttp和play-services-basement时,出现以下异常现象:

  • 未调用ProviderInstaller.installIfNeeded()时,OkHttp连接同时支持TLS 1.2和1.3的域名(如google.com)会正常使用TLS 1.3
  • 调用ProviderInstaller.installIfNeeded()后,相同域名的连接会强制降级为TLS 1.2

复现代码

GlobalScope.launch(Dispatchers.IO) {
    var r1 = OkHttpClient().newCall(Request.Builder().url("https://www.google.com").build()).execute()
    println(r1.handshake)
    try {
        ProviderInstaller.installIfNeeded(this@MainActivity)
        println("ProviderInstaller DONE")
    } catch (e: Exception) {
        e.printStackTrace()
    }

    var r2 = OkHttpClient().newCall(Request.Builder().url("https://www.google.com").build()).execute()
    println(r2.handshake)
}

日志输出

I/System.out: Handshake{tlsVersion=TLS_1_3 cipherSuite=TLS_AES_128_GCM_SHA256 peerCertificates=[CN=www.google.com, CN=GTS CA 1C3, O=Google Trust Services LLC, C=US, CN=GTS Root R1, O=Google Trust Services LLC, C=US] localCertificates=[]}
I/System.out: ProviderInstaller DONE
I/System.out: Handshake{tlsVersion=TLS_1_2 cipherSuite=TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 peerCertificates=[CN=www.google.com, CN=GTS CA 1C3, O=Google Trust Services LLC, C=US, CN=GTS Root R1, O=Google Trust Services LLC, C=US] localCertificates=[]}

问题严重性判断

  • 安全层面:TLS 1.2目前仍属于合规安全协议,不会直接引发高危风险,但TLS 1.3在握手速度、加密强度、隐私保护上均优于TLS 1.2,降级后会损失这些核心优势。
  • 业务层面:若应用对网络延迟有高要求,或所在行业强制要求使用TLS 1.3,该问题会造成严重影响。
  • 额外影响:com.google.firebase.inappmessaging会强制触发ProviderInstaller调用,导致所有集成该SDK的应用自动出现TLS降级问题,影响范围较广。

已知状态

该问题已作为Bug提交至Google官方问题追踪平台。


内容的提问来源于stack exchange,提问作者Alessandro Scarozza

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 19:05:26