谷歌浏览器奇怪的随机密码套件

信息安全 tls 铬合金 密码
2021-09-02 07:42:19

该网站为您提供有关您的浏览器支持用于保护 HTTPS 连接的 SSL 密码套件的信息。

如果您使用 Google Chrome 浏览它,您可能会在浏览器支持的密码套件列表中看到一些奇怪的密码套件。(您将在第一个建议的 Cipher Suite 位置以及扩展部分中看到它们):

查看下baba图(以及3a3a扩展中的): 在此处输入图像描述

这个数字似乎是随机的。我的意思是如果你刷新页面,这些数字会改变:

查看下dada图(以及1a1a扩展中的): 在此处输入图像描述

这些随机的奇怪数字是什么?如果这些是 chrome 的专有密码套件(那些不是常见的密码套件),那么 chrome 为什么要随机更改它们?

1个回答

这是一个防止服务器出错的功能。来自GREASE 的 TLS

TLS 客户端提供服务器从中选择的 16 位代码点列表(例如密码套件)。为了保持可扩展性,服务器必须忽略未知值。但是,服务器可能存在错误并拒绝未知值。这些服务器将与现有客户端互操作,因此错误可能会在不经意间传播,破坏整个生态系统的可扩展性。我们将保留一些值以随机宣传,以防止此类错误在损坏的服务器广泛传播之前。

一旦您知道它是如何被调用的,您还可以在BoringSSL(Chrome 使用的 OpenSSL 分支)的源代码中找到该功能。

  // Add a fake cipher suite. See draft-davidben-tls-grease-01.
  if (ssl->ctx->grease_enabled &&
      !CBB_add_u16(&child, ssl_get_grease_value(ssl, ssl_grease_cipher))) {
    return 0;
  }

它将宣布的价值观可以在互联网草案中找到:

  |       Value       | Description | DTLS-OK |    Reference    |
  +-------------------+-------------+---------+-----------------+
  | {TBD} {0x0A,0x0A} |   Reserved  |    Y    | (this document) |
  | {TBD} {0x1A,0x1A} |   Reserved  |    Y    | (this document) |
  | {TBD} {0x2A,0x2A} |   Reserved  |    Y    | (this document) |
  | {TBD} {0x3A,0x3A} |   Reserved  |    Y    | (this document) |
  ...
  | {TBD} {0xEA,0xEA} |   Reserved  |    Y    | (this document) |   
  | {TBD} {0xFA,0xFA} |   Reserved  |    Y    | (this document) |   

请注意,这里的答案基于我对stackoverflow.com 中类似问题的回答。