TLS 握手

TLS 握手期间,公用密钥算法用于在客户机与服务器之间安全地交换数字签名和加密密钥。 该身份和密钥信息用来为客户机与服务器之间的会话建立安全连接。 建立安全会话之后,就会使用对称算法(例如,AES)将客户机与服务器之间的数据传输加密。

客户机和服务器在 TLS 握手期间执行以下步骤:
  1. 客户机请求 TLS 连接并列出 支持的密码套件的缺省集合。
    注意: 虽然服务器使用的密码套件集可以更改,但客户端始终使用默认套件集。 Db2® 服务器使用的密码套件可以更改,但客户端始终使用默认套件。
    客户机将 TLS 连接请求发送到 Db2 Server
  2. 服务器以选定的密码套件进行响应。
  3. 服务器将它的数字证书发送至客户机。
    Db2 服务器将数字证书发送到客户机
  4. 客户机验证服务器证书的有效性 ("此证书是否由我被告知信任的人签署?") 通过 将已解密的证书散列 与其密钥库中的类似散列进行比较。
    客户机根据密钥库值验证证书
  5. 如果启用了 主机名验证 ,那么客户机将检查其配置为连接的主机名是否与证书中存在的主机名匹配。 此选项在 Db2 11.5.6 和更高版本客户机中可用。
  6. 如果客户机信任该服务器的证书,那么客户机会使用该服务器的公用密钥将一个随机数加密,并将其发送给服务器。 然后,服务器使用其专用密钥来解密该数字,该数字成为会话密钥。
    注: 分配给 dbm cfg 参数 SSL_CIPHERSPECS 的值会影响会话密钥的大小。
    客户机和服务器同意会话密钥
  7. 客户机和服务器使用协商的会话密钥安全地交换信息。
    使用协商会话密钥的客户机和服务器交换数据
注意: Db2 数据库系统仅在连接到 Db2 for z/OS 服务器时才支持在 TLS 握手期间对客户端进行(可选)身份验证。