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 中都没有提供。