从客户端到服务器的连接上的数据交换是否以纯文本形式通过线路发送?

var*_*ble 6 security sql-server

我有一个新的 SQL Server 2019 本地实例。假设客户端是 SQL Server Management Studio 或任何其他应用程序:

  1. 当客户端使用 SQL Server 身份验证连接到服务器时,连接请求是否以纯文本形式从客户端发送到服务器?换句话说,身份验证凭据是否通过网络公开(纯文本)?换句话说,攻击者可以看到线路上的用户名/密码吗?MSDN 文档(https://learn.microsoft.com/en-us/learn/modules/configure-database-authentication-authorization/3-describe-authentication-identities)说:

Active Directory 身份验证被认为更安全,因为 SQL Server 身份验证允许在通过网络传递时以纯文本形式查看登录信息。

在此输入图像描述

  1. 身份验证之后,假设未配置 TLS,那么查询(示例:SELECT)及其输出是否在网络上以纯文本形式可见?

Dan*_*man 11

sql 身份验证凭据是否通过网络公开?

不会,登录流量始终通过线路进行加密。从这个文档页面

SQL Server 始终对与登录相关的网络数据包进行加密。如果服务器启动时未配置证书,SQL Server 会生成一个自签名证书,用于加密登录数据包。

我理解“暴露”意味着未加密,通过网络以纯文本形式暴露。上面的文档链接解决了有关使用自签名证书的更大安全问题:

默认情况下,对连接的所有网络流量进行加密需要在服务器上配置证书。通过将客户端设置为信任服务器上的证书,您可能会容易受到中间人攻击。如果您在服务器上部署可验证的证书,请确保将有关信任证书的客户端设置更改为 FALSE。

运行网络流量跟踪,您将永远不会看到明文形式的 SQL 登录凭据。