本页内容
目标 | |
适用范围 | |
如何使用本章内容 | |
摘要 | |
您必须了解的背景知识 | |
安装服务器验证证书 | |
验证证书是否已安装 | |
在客户端安装 CA 颁发的证书 | |
强制所有客户端使用 SSL | |
允许客户端决定是否使用 SSL | |
验证通信是否已加密 | |
其他资源 |
目标
本章的目标是:
• | 将 SQL Server 2000 配置为要求所有客户端使用 SSL 以确保安全通信。 |
• | 将 SQL Server 2000 配置为向客户端提供使用 SSL 进行安全通信的选项。 |
适用范围
本章适用于以下产品和技术:
• | Microsoft Windows® XP 或 Windows 2000 Server (Service Pack 3) 以及更高版本的操作系统 |
• | Microsoft 证书服务 |
• | Microsoft 网络监视器 |
• | Microsoft .NET Framework 版本 1.0 (Service Pack 2) 以及更高版本 |
• | Microsoft Visual Studio® 1.0 .NET 以及更高版本 |
• | Microsoft Visual C#® .NET |
• | SQL Server 2000 (Service Pack 2) 以及更高版本 |
如何使用本章内容
若要学好本章内容:
• | 必须具有两台运行 Windows XP 或 Windows 2000 Server 操作系统的计算机,并配置如下:
| ||||
• | 您必须具有使用 Visual C# .NET 进行编程的经验。 | ||||
• | 您必须具有使用 Visual Studio .NET 开发环境的经验。 | ||||
• | 您必须具有配置 SQL Server 2000 的经验。 | ||||
• | 您必须具有访问 Microsoft 证书服务以生成 SSL 证书的权限。 | ||||
• | 您必须具有使用网络监视器工具的经验。 | ||||
• | 阅读第 4 章安全通信。其中介绍了 SSL 及其最常见的用途。 | ||||
• | 阅读本指南中的第 12 章数据访问安全性。这一章简要概述了数据库安全性问题和选项。 |
摘要
安全套接字层 (SSL) 是一套提供身份验证、保密性和数据完整性的加密技术。SSL 最常用来在 Web 浏览器和 Web 服务器之间建立安全通信通道。然而,还可以使用 SSL 来保护客户端应用程序(直接调用方)与 Microsoft® SQL Server™ 2000 之间的通信。
本章介绍如何将 SQL Server 2000 配置为使用 SSL 确保与客户端应用程序进行安全通信。
您必须了解的背景知识
在开始学习本章之前,您应该知道:
• | SSL 是使用 Internet 协议安全性 (IPSec) 来确保数据库通信安全的替代方法。 | ||||
• | 当客户端或服务器 IP 地址发生更改时,并不需要更改配置。这一点与 IPSec 不同。 | ||||
• | 必须在数据库服务器计算机上安装服务器证书,SSL 才能运行。客户端计算机上还必须有来自同一机构的根证书颁发机构 (CA) 证书。 | ||||
• | 客户端必须已经安装了 SQL Server 2000 连接库。早期版本或通用库会无法运行。 | ||||
• | SSL 只适用于 TCP/IP(为 SQL Server 推荐采用的通信协议)和命名管道。 | ||||
• | 您可以将服务器配置为对所有连接强制使用加密。 | ||||
• | 您可以在客户端上执行以下操作:
|
安装服务器验证证书
SSL 要求服务器拥有由所连接的客户端信任的证书颁发机构 (CA) 颁发的服务器身份验证证书。
• | 安装服务器证书
|
验证证书是否已安装
此过程验证是否已成功安装服务器证书。
• | 验证证书是否已安装
|
在客户端安装 CA 颁发的证书
安装证书并重新启动 SQL Server 服务后,SQL Server 就可以与客户端协商 SSL。使用 SSL 连接到 SQL Server 的客户端必须:
• | 已安装 MDAC 2.6 或 SQL Server 2000 连接库。 |
• | 信任 SQL Server 的证书颁发者。 |
• | 在客户端计算机上安装 CA 颁发的证书
|
强制所有客户端使用 SSL
可以将服务器配置为强制所有客户端使用 SSL(如此过程所述),或者可以让客户端选择是否按连接使用 SSL(如下一过程所述)。配置服务器强制客户端使用 SSL 的优点是:
• | 保证了所有通信的安全。 |
• | 拒绝任何不安全的连接。 |
缺点是:
• | 所有客户端必须安装了 MDAC 2.6 或 SQL Server 2000 连接库;早期版本或通用库将无法连接。 |
• | 不需要保护的连接由于额外的加密,性能开销会有所增加。 |
• | 强制所有客户端使用 SSL
|
允许客户端决定是否使用 SSL
此过程说明如何配置 SSL 以允许客户端选择是否使用 SSL。可以将客户端库配置为对于所有连接强制使用 SSL,或者可以让各应用程序在每个连接的基础上进行选择。配置客户端的优点在于:
• | 只有确实需要 SSL 的连接才会产生 SSL 系统开销。 |
• | 不支持在 SQL Server 中使用 SSL 的客户端仍然可以连接。 |
如果采用此方法,应确保您允许存在不安全的连接。
• | 重新配置服务器
|
• | 对所有客户端连接使用 SSL |
使用这一方法,您可以将客户端库配置为对所有连接都使用 SSL。这意味着将不能访问不支持加密的 SQL Server 和 SQL Server 2000 之前的 SQL Server 版本。
1. | 在“Microsoft SQL Server”程序组中,单击“客户端网络实用工具”。 |
2. | 确保启用了 TCP/IP 和/或命名管道。 |
3. | 选择“强制协议加密”。 |
• | 允许应用程序选择是否使用加密 |
在此方法中,应用程序使用连接字符串来决定是否使用加密。这允许每个应用程序仅在需要时才使用加密。
1. | 如果使用 OLE-DB 数据提供程序连接到 SQL Server,请将“对数据使用加密”设置为“true”,如下面的 OLE-DB 连接字符串示例所示。 "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=Northwind;Data Source=sql01;Use Encryption for Data=True" |
2. | 如果使用 SQL Server .NET 数据提供程序连接到 SQL Server,请将“加密”设置为“true”,如下例所示。 "Server=sql01;Integrated Security=SSPI;Persist Security Info=False;Database=Northwind;Encrypt=True" |
验证通信是否已加密
在此过程中,将使用网络监视器来验证在应用程序服务器与数据库服务器之间传送的数据是否已加密。首先以明文形式发送数据,然后通过先配置服务器,再配置客户端来启用加密。
• | 验证通信是否已加密
|
其他资源
有关如何在 Windows 2000 中安装网络监视器的信息,请访问:
• | Microsoft 知识库文章 243270:“HOW TO: Install Network Monitor in Windows 2000”(HOW TO:在 Windows 2000 中安装网络监视器)。网址为:http://support.microsoft.com/default.aspx?scid=243270。 |
• | Microsoft 知识库文章 276553,“HOW TO: Enable SSL Encryption for SQL Server 2000 with Certificate Server”(为具有证书服务器的 SQL Server 2000 启用 SSL 加密),网址为:http://support.microsoft.com/default.aspx?scid=276553。 |
有关网络监视器的更多信息,请参见 MSDN 上的 Microsoft Platform SDK 的“网络监视器”部分:http://msdn.microsoft.com/library/default.asp?url=/library/en-us/netmon/netmon/network_monitor.asp。