首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

SQL Server 1433 通訊協定密碼加密弱點分析與字元對照表

     編輯:關於SqlServer

安全性警示

本文僅供防禦研究與歷史漏洞理解,嚴禁用於攻擊行為。 SQL Server 2000/7.0 TDS 協定在 1433 埠傳輸登入封包時,密碼採用簡單位元替換加密(非標準加密演算法),極易被逆向還原。現代版本 (2005+) 已強制加密登入封包並支援 TLS,此漏洞已不存在。

歷史加密機制分析

  • 協定: Tabular Data Stream (TDS) 4.2/7.0。
  • 加密方式: 每個密碼字元獨立對應一個固定位元組值(查表法),字元間以 0x5A 分隔。
  • 弱點: 無鹽、無金鑰、無非線性運算、長度固定、可直接查表還原明文。
  • 特殊 Bug: 分號 ; (0x3B) 不在對照表中,若密碼含分號,驅動程式會忽略該字元導致長度不符,永遠無法登入。

字元對照表(節錄)

明文加密位元組明文加密位元組明文加密位元組
a0xB3b0x83c0x93
A0xB1B0x81C0x91
10xB620x8630x96
@0xA1#0x97$0xE7
;不存在空格0x60_0x50

完整對照表包含 90+ 可列印 ASCII 字元,每字元固定映射,無任何加密強度。

攻擊流程(歷史視角)

  1. 網路嗅探擷取 1433 埠 TDS 登入封包(明文用戶名、加密密碼)。
  2. 定位用戶名後第一個 0x5A 為密碼起始,以 0x5A 分隔提取各字元加密位元組。
  3. 查表還原明文密碼。

防禦與緩解措施

  1. 升級至 SQL Server 2005+: 強制加密登入封包,支援 TLS 1.2,TDS 8.0 協定移除弱加密。
  2. 強制加密連線: 伺服器設定 `ForceEncryption = Yes`,憑證佈署至所有用戶端。
  3. 停用/封鎖 1433 埠對外暴露: 防火牆僅允許應用伺服器 IP 存取,或使用 VPN/Private Link。
  4. 啟用 Kerberos/Windows 整合驗證: 避免密碼在網路傳輸。
  5. 稽核登入失敗: 偵測暴力破解嘗試。

現代最佳實務

  • 連線字串加入 `Encrypt=True;TrustServerCertificate=False;`(生產環境需有效憑證)。
  • 使用 Azure AD / Entra ID 整合驗證(Managed Identity、服務主體),完全移除密碼。
  • 定期掃描網路流量確認無明文 TDS 7.0 封包。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved