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

Oracle 密碼加密算法被逆向:破解工具橫行與安全警示

     編輯:Oracle 資料庫基礎

事件回顧

安全社區深入研究 Oracle 密碼加密體系,重現算法邏輯:

  1. 用戶名 + 密碼拼接為字符串 S。
  2. S 轉 Unicode(UTF-16BE)。
  3. DES-CBC 加密,Key 固定 0x123456789ABCDEF,IV=0。
  4. 用上一步輸出作為新 Key,再次 DES-CBC 加密。
  5. 最終輸出作為密碼 Hash 存儲於 DBA_USERS.PASSWORD(10g 前)或 USER$.PASSWORD。

算法早見於 **1993 年 Bob Baldwin** 發佈,近期因 Oracle CSO 失言激怒安全圈,引發工具爆發式釋出。

主流破解工具對比

工具特點速度參考
orabf 0.7當前最快,純 CPU 暴力破解P4 3GHz / WinXP:~110 萬次/秒(官方宣稱)
CheckpwdRed Database Security 出品,字典+規則引擎企業級審計報表、合規檢查
John the Ripper + Oracle patch老牌通用破解器擴展模塊支援分布式、GPU 加速
其他 10+ 變體針對不同版本/平台優化GitHub/安全論坛可獲取

Oracle 密碼體系固有弱點

  • 固定 Key/IV:無鹽值,同口令產生同 Hash,利於彩虹表/預計算攻擊。
  • 大小寫不敏感(10g 前):搜索空間縮減 26 倍。
  • DB Link 密碼明文存儲:SYS.LINK$ 中可逆加密,極高風險。
  • 無帳號鎖定/延遲機制:預設允許無限嘗試。

緩解與加固建議

  1. 升級至 11g+:引入 SHA-1 + 鹽值 + 大小寫敏感(SEC_CASE_SENSITIVE_LOGON=TRUE),破解難度指數級上升。
  2. 啟用密碼驗證函數:PROFILE 綁定 VERIFY_FUNCTION 強制長度/複雜度/歷史記憶/鎖定策略。
  3. 消除 DB Link 明文:遷移至 **Oracle Wallet** 或 **外部認證(Kerberos/SSL)**。
  4. 網絡加密:SQLNET.ENCRYPTION_SERVER=REQUIRED 防止傳輸截獲。
  5. 審計與監控:統一審計記錄失敗登錄,SIEM 關聯告警暴力破解特徵。
  6. 定期掃描弱口令:內部紅隊使用 Checkpwd 等工具掃描,強制整改。

給管理者的警示

「安全由設計,不由掩飾。」依賴算法不公開(Security by Obscurity)在開源逆向工程面前極其脆弱。**分層防禦、最小權限、持續審計**才是正道。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved