SQL Server / ODBC数据加密问题

4
我们希望强制加密与客户SQL数据库之间传输的数据。目前,我们通过ODBC DSN访问客户数据库,使用SQL Management Studio(查询分析器)和我们的自定义应用程序。
是的,我知道这不是“最佳实践”,但现在我必须处理它。
无论如何,我的任务是在我们和客户之间的管道上加密数据。我找到了很多关于如何设置SQL客户端和服务器之间连接的信息,但是关于如何在这种情况下使用ODBC DSN的信息非常少。
请注意,我不想知道如何加密数据库,只想知道如何加密通过"管道"传输的数据。
1)DSN向导中有一个名为“使用强加密进行数据传输”的复选框——没有可用于该选项的帮助。有人能解释一下这与SQL Server和Client Configuration中的Force Encryption标志有什么关系吗?我们的应用程序不使用SQL Native Client接口,而是依赖于ODBC DSN设置来连接数据库。如果服务器正确设置,我需要勾选此复选框并安装根证书吗?那是我需要做的全部吗?

2) 在客户端和服务器加密的文档中(http://support.microsoft.com/kb/316898),微软表示"您可以在服务器或客户端上启用强制协议加密选项。不要在客户端和服务器上同时启用强制协议加密选项"。有人能告诉我为什么吗?如果两者都启用会发生什么?

3) #2是否适用于DSN配置,如果是,该如何操作?

有这么多问题。如果您对此有经验,请分享一些您辛苦赚来的智慧...

谢谢, 戴夫


3
事实证明,你只需要在服务器端启用加密,客户端就会跟随。在此过程中遇到的大多数复选框和其他分散注意力的项目只会模糊(非常简单的)画面…… - DaveN59
2个回答

1

我假设你已经找到了这个:

http://technet.microsoft.com/en-us/library/ms189067%28SQL.90%29.aspx

我们的应用程序不使用SQL Native Client接口,而是依赖于ODBC DSN设置来连接数据库。
在ODBC dsn中,您可以选择SQL Native Drivers,对吧?
这里有一个很好的链接,还带有漂亮的表格!

http://msdn.microsoft.com/en-us/library/ms131691%28SQL.90%29.aspx

SQL团队的另一篇博客文章,更详细地解释了一些内容。

https://blogs.msdn.com/sql_protocols/archive/2005/11/10/491563.aspx

他们没有解释为什么不应该启用客户端和服务器都要求加密 - 这似乎不会有任何损害。我建议,只需尝试并查看结果。


我的理解是SQL Native Client基本上是标准客户端的一组编程扩展,因此您可以从应用程序端获得更多控制。我们的应用程序不使用此功能,并且我没有读到任何说它需要加密的内容。至于其他链接,它们仍然没有提及DSN配置中的神秘复选框。这个复选框如此缺乏文档记录有点奇怪。 - DaveN59
SSL加密是在SQL Native Client Net-Library中执行的,并适用于SQL Server 2005支持的所有计算机间协议。所以你关于SNAC和加密的说法是正确的。 - Sam
如果您前往SQL Server客户端网络实用程序/常规,您可以看到一个名为“强制协议加密”的框。我想知道这是否是他们所指的内容。 - Sam

0

对于任何正在寻找的人,请注意 Microsoft KB 文章已经更新,评论 "您可以在服务器或客户端上启用 Force Protocol Encryption 选项。不要在客户端和服务器上同时启用 Force Protocol Encryption 选项。" 已被删除。

虽然在服务器上启用 "Force Encryption" 将强制客户端使用加密连接,但根据下面的文章,将客户端设置为请求加密提供了更多的安全性并避免了可能的中间人攻击。

http://blog.blindspotsecurity.com/2017/12/advanced-sql-server-mitm-attacks.html?msclkid=0ef1b46fc04211ecb59979c1cdb0f034


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接