SQL Server 2000 和 SSL 加密

SQL Server 2000 和 SSL 加密

我們是一個支援 SQL Server 2000 環境的資料中心,該環境為我們銷售的產品提供資料庫服務,該產品作為富客戶端應用程式載入到我們眾多客戶及其工作站中的每一個上。

目前,該應用程式使用從客戶端站點到我們的資料中心的直接 ODBC 連線。

我們需要開始加密憑證——因為現在一切都是明文的,並且身份驗證是弱加密的——我正在嘗試確定在伺服器上實施 SSL 的最佳方法,同時最大限度地減少客戶端的影響。

然而,有幾點:

1)我們有自己的Windows網域,我們所有的伺服器都加入到我們的私有網域。我們的客戶不屬於我們的領域。

2) 通常,我們的客戶會透過以下方式連接到我們的資料中心伺服器: a) 使用TCP/IP 位址b) 使用我們透過網際網路發布的DNS 名稱、從DNS 伺服器到客戶的區域傳輸,或客戶端可以添加靜態主機條目。

3)根據我對啟用加密的理解,我可以轉到網路實用程式並為我希望加密的協定選擇「加密」選項。例如TCP/IP。

4)當選擇加密選項時,我可以選擇安裝第三方憑證或自簽名憑證。我已經測試了自簽名,但確實存在潛在問題。我稍後會解釋一下。如果我使用第三方證書,例如 Verisign 或網路解決方案...我需要請求哪種證書?這些不是 IIS 證書?當我透過微軟的憑證伺服器建立自簽名時,我必須選擇「身份驗證憑證」。這在第三方世界中意味著什麼?

5) 如果我建立自簽名證書,我知道「頒發給」名稱必須與執行 SQL 的伺服器的 FQDN 相符。就我而言,我必須使用我的私人網域。如果我使用它,當我的客戶端嘗試連接到我的 SQL Server 時,它會做什麼?他們肯定無法在他們的網路上解析我的私人 DNS 名稱...

我還驗證了,當安裝自簽名憑證時,它必須位於執行 SQL Server 的使用者帳戶的本機個人儲存中。只有當 FQDN 與憑證的「頒發給」相符且 SQL 在安裝了憑證的帳戶下執行時,SQL Server 才會啟動。

如果我使用自簽名證書,這是否意味著我必須讓我的每個客戶都安裝它來進行驗證?

6) 如果我使用第三方憑證(這聽起來是最佳選擇),那麼我的所有用戶端在存取其私有 WAN 連接的私有伺服器時是否都必須具有 Internet 存取權限才能用於驗證憑證?

我該如何處理 FQDN?聽起來他們必須使用我的私人域名(未發布)並且不能再使用我為他們設置的域名?

7) 我打算很快升級到SQL 2000。使用 SQL 2005 設定 SSL 是否比 SQL 2000 更容易/更好?

任何幫助或指導將不勝感激

答案1

老實說,您最好的選擇是停止直接存取資料庫伺服器。這是一個本質上很弱的解決方案(安全性方面),因為任何人都可以嘗試使用 sa 帳戶登入 SQL Server。

更好的解決方案是在 Web 伺服器上設定 Web 服務,並讓應用程式透過 HTTPS 向此 Web 服務發送請求,然後讓 Web 服務將請求轉送到資料庫,同時資料庫與伺服器斷開連線(或設定防火牆)。公共互聯網。

這也為您提供了能夠毫無問題地切換資料庫的優勢,因為 Web 伺服器只與資料庫通訊。您也可以對 Web 層進行負載平衡,以便隨著業務的成長,您可以將連線負載分散到各個 Web 伺服器。

相關內容