我提前感谢您分享您的知识。这是我的问题: 默认情况下,SQL Azure连接已加密。那么在从SSMS连接到SQL Azure时检查连接属性中的“加密连接”复选框有什么意义呢?它有什么不同吗?
答案 0 :(得分:1)
伞兵,
当客户端库首次尝试连接到SQL Server / SQL Azure时,它会发送初始连接请求。将此视为“预连接前”请求。此时,客户端不知道是否需要SSL /加密,并等待SQL Server / SQL Azure的答案,以确定整个会话中是否确实需要SSL(而不仅仅是登录序列,整个连接会话)。在响应上设置一个位,表示如此。然后客户端库断开连接并重新连接此信息。
考虑客户端与SQL Azure(或SQL Server)之间的代理。客户端与代理进行通信,代理与SQL Azure / Sql Server进行通信。如果不强制在客户端上加密位,则将其保留在代理中以加密或不加密会话。代理可以加密后端上的连接(它必须用于SQL Azure),但不能加密连接的客户端,因此访问所有敏感数据。因此,检查加密框会绕过“预连接前”请求,该请求会阻止任何代理在代理的客户端关闭有问题的加密位,从而避免中间人攻击。
希望这很有意义...... :)如果您下载Wireshark并观察预登录前的数据包会发生什么,您将看到我的意思。选中此框会更改登录前握手机制,以避免我所描述的中间人攻击。