为Web应用程序和数据库服务器调用启用TLS1.2通信

问题描述 投票:1回答:1

我们有一个运行在Windows 2012 R2 OS上的应用程序,其中包含4.6框架和数据库作为SQL Server 2012.出于安全考虑,我们被要求为应用程序服务器与数据库服务器之间的调用启用TLS1.2协议,反之亦然。我已经按照以下URL,我们安装了所有补丁。 https://support.microsoft.com/en-us/help/3135244/tls-1-2-support-for-microsoft-sql-server

我们的前端应用程序不会直接调用数据库,而是在前端应用程序(asp.net)和SQL服务器之间提供WCF服务。我在一篇文章中读到了我们可以实现这一点而无需更改代码并更改providername =“SQLNCI11”。当我更改提供者名称如下所示我得到错误。说“无法找到所请求的.Net框架数据提供程序”

Data Source = servername; Initial Catalog = DBname; uid = XXX; pwd = XXXX; Connect Timeout = 200; MultipleActiveResultSets = True; Current Language = us_english;的providerName = “SQLNCI11”

我已经验证了machine.config并且我没有找到SQL本机客户端的DBproviderfactory。我在这里遗漏了什么?

  1. 作为替代方案,在不更改连接字符串中的提供程序名称的情况下,我在连接字符串中添加了Encrypt = true; TrustServerCertificate = true数据源= servername;初始目录= DBname; uid = XXX; pwd = XXXX;连接超时= 200; MultipleActiveResultSets = True ;当前语言= us_english; Encrypt = true; TrustServerCertificate = true providername =“System.Data.SqlClient”

在连接字符串数据库调用成功之后进行上述更改后,当我看到使用wireshark工具的以太网通信时,使用TDS协议进行数据到WCF服务通信,并根据wireshark工具涉及TLS。如果我从连接字符串中删除“Encrypt = true; TrustServerCertificate = true”,那么我不会看到“TLS Exchange”消息。

enter image description here

我需要采取哪些步骤来确保应用程序使用TLS 1.2协议与数据库进行通信?还请建议如何证明这种沟通。

sql asp.net security tls1.2
1个回答
0
投票

一年后,我想评估同样的事情 - 确切知道我的MS SQL流量使用的TLS版本。

实际上,当涉及到MS SQL流量时,TLS被封装在TDS中。您可以看到TDS标题(从0x12开始 - 在图片中以黄色突出显示)。此标头开始TLS数据包后,您可以通过查看第2和第3个TLS数据包来检查版本。

在我的例子中,0x03 0x03代表TLS 1.2(TLS协议的第3版)

enter image description here

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.