跳到内容

TLS 配置历史

OkHttp 跟踪动态变化的 TLS 生态系统,以平衡连接性和安全性。本页面记录了我们随时间对 OkHttp 默认 TLS 选项所做的更改。

OkHttp 3.14

2019-03-14

移除 OkHttp 主机平台上不可用且在 Chrome 和 Firefox 发布版本中未启用的两个 TLSv1.3 密码套件。

RESTRICTED_TLS 密码套件
  • TLS_AES_128_GCM_SHA256¹
  • TLS_AES_256_GCM_SHA384¹
  • TLS_CHACHA20_POLY1305_SHA256¹
  • TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
  • TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
  • TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
  • TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
  • TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256
  • TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256
  • 已移除: TLS_AES_128_CCM_SHA256¹
  • 已移除: TLS_AES_128_CCM_8_SHA256¹
MODERN_TLS / COMPATIBLE_TLS 密码套件
  • TLS_AES_128_GCM_SHA256¹
  • TLS_AES_256_GCM_SHA384¹
  • TLS_CHACHA20_POLY1305_SHA256¹
  • TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
  • TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
  • TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
  • TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
  • TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256
  • TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256
  • TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA²
  • TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA²
  • TLS_RSA_WITH_AES_128_GCM_SHA256²
  • TLS_RSA_WITH_AES_256_GCM_SHA384²
  • TLS_RSA_WITH_AES_128_CBC_SHA²
  • TLS_RSA_WITH_AES_256_CBC_SHA²
  • TLS_RSA_WITH_3DES_EDE_CBC_SHA²
  • 已移除: TLS_AES_128_CCM_SHA256¹
  • 已移除: TLS_AES_128_CCM_8_SHA256¹

OkHttp 3.13

2019-02-04

从 MODERN_TLS 中移除 TLSv1.1 和 TLSv1。将 COMPATIBLE_TLS 更改为支持所有 TLS 版本。

RESTRICTED_TLS 版本
  • TLSv1.3
  • TLSv1.2
MODERN_TLS 版本
  • TLSv1.3
  • TLSv1.2
  • 已移除: TLSv1.1
  • 已移除: TLSv1
COMPATIBLE_TLS 版本
  • 新增: TLSv1.3
  • 新增: TLSv1.2
  • 新增: TLSv1.1
  • TLSv1

OkHttp 3.12

2018-11-16

新增对 TLSv1.3 的支持。

RESTRICTED_TLS 密码套件
  • 新增: TLS_AES_128_GCM_SHA256¹
  • 新增: TLS_AES_256_GCM_SHA384¹
  • 新增: TLS_CHACHA20_POLY1305_SHA256¹
  • 新增: TLS_AES_128_CCM_SHA256¹
  • 新增: TLS_AES_128_CCM_8_SHA256¹
  • TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
  • TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
  • TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
  • TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
  • TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256
  • TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256
MODERN_TLS / COMPATIBLE_TLS 密码套件
  • 新增: TLS_AES_128_GCM_SHA256¹
  • 新增: TLS_AES_256_GCM_SHA384¹
  • 新增: TLS_CHACHA20_POLY1305_SHA256¹
  • 新增: TLS_AES_128_CCM_SHA256¹
  • 新增: TLS_AES_128_CCM_8_SHA256¹
  • TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
  • TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
  • TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
  • TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
  • TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256
  • TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256
  • TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA²
  • TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA²
  • TLS_RSA_WITH_AES_128_GCM_SHA256²
  • TLS_RSA_WITH_AES_256_GCM_SHA384²
  • TLS_RSA_WITH_AES_128_CBC_SHA²
  • TLS_RSA_WITH_AES_256_CBC_SHA²
  • TLS_RSA_WITH_3DES_EDE_CBC_SHA²
RESTRICTED_TLS 版本
  • 新增: TLSv1.3
  • TLSv1.2
MODERN_TLS 版本
  • 新增: TLSv1.3
  • TLSv1.2
  • TLSv1.1
  • TLSv1
COMPATIBLE_TLS 版本
  • TLSv1

OkHttp 3.11

2018-07-12

新增一个受 Google Cloud 类似策略启发的、更严格的 RESTRICTED_TLS 配置。当主机平台 (JVM/Conscrypt/Android) 和目标 Web 服务器都处于最新状态时,此配置是合适的。

RESTRICTED_TLS 密码套件
  • TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
  • TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
  • TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
  • TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
  • TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256
  • TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256
RESTRICTED_TLS 版本
  • TLSv1.2

OkHttp 3.10

2018-02-24

从默认集合中移除两个不常用的密码套件。这与 Chromium 的一项更改保持一致,Chromium 移除了这些密码套件,因为它们不稳定且不常用。

MODERN_TLS / COMPATIBLE_TLS 密码套件
  • TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
  • TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
  • TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
  • TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
  • TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256
  • TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256
  • TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA²
  • TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA²
  • TLS_RSA_WITH_AES_128_GCM_SHA256²
  • TLS_RSA_WITH_AES_256_GCM_SHA384²
  • TLS_RSA_WITH_AES_128_CBC_SHA²
  • TLS_RSA_WITH_AES_256_CBC_SHA²
  • TLS_RSA_WITH_3DES_EDE_CBC_SHA²
  • 已移除: TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
  • 已移除: TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA

OkHttp 3.5

2016-11-30

移除三个旧密码套件,新增五个新密码套件。这跟踪了 Android 和 Java 上可用密码套件的变化,以及最近发布的 Chrome 和 Firefox 默认支持的密码套件。

MODERN_TLS / COMPATIBLE_TLS 密码套件
  • TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
  • TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
  • 新增: TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
  • 新增: TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
  • 新增: TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256
  • 新增: TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256
  • TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA²
  • TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA²
  • TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA²
  • TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA²
  • TLS_RSA_WITH_AES_128_GCM_SHA256²
  • 新增: TLS_RSA_WITH_AES_256_GCM_SHA384²
  • TLS_RSA_WITH_AES_128_CBC_SHA²
  • TLS_RSA_WITH_AES_256_CBC_SHA²
  • TLS_RSA_WITH_3DES_EDE_CBC_SHA²
  • 已移除: TLS_DHE_RSA_WITH_AES_128_CBC_SHA
  • 已移除: TLS_DHE_RSA_WITH_AES_128_GCM_SHA256
  • 已移除: TLS_DHE_RSA_WITH_AES_256_CBC_SHA

OkHttp 3.0

2016-01-13

MODERN_TLS / COMPATIBLE_TLS 密码套件
  • TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
  • TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
  • TLS_DHE_RSA_WITH_AES_128_GCM_SHA256
  • TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA²
  • TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA²
  • TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA²
  • TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA²
  • TLS_DHE_RSA_WITH_AES_128_CBC_SHA²
  • TLS_DHE_RSA_WITH_AES_256_CBC_SHA²
  • TLS_RSA_WITH_AES_128_GCM_SHA256²
  • TLS_RSA_WITH_AES_128_CBC_SHA²
  • TLS_RSA_WITH_AES_256_CBC_SHA²
  • TLS_RSA_WITH_3DES_EDE_CBC_SHA²
MODERN_TLS 版本
  • TLSv1.2
  • TLSv1.1
  • TLSv1
COMPATIBLE_TLS 版本
  • TLSv1

¹ 仅 TLSv1.3

仅在 TLSv1.3 中可用的密码套件。

² HTTP/2 密码套件拒绝列表

不建议与 HTTP/2 一起使用的密码套件。OkHttp 包含它们是因为更好的套件并不常用。例如,上面列出的更好的密码套件在 Android 4.4 或 Java 7 中都没有提供。