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

Oracle 密碼安全性深度分析:加密演算法弱點與破解工具現狀

     編輯:Oracle 資料庫基礎

Oracle 密碼加密機制歷史回顧

早期研究 (1993, Bob Baldwin) 揭示 Oracle 密碼雜湊演算法核心邏輯:

  1. 用戶名 + 密碼 合併為字串 "s"
  2. 轉換為 Unicode
  3. DES-CBC 模式加密,固定 Key: 0x123456789ABCDEF, IV=0
  4. 用更新後的 IV 作為 Key 再次加密
  5. 最終 IV 作為雜湊值儲存

關鍵弱點

  • 固定金鑰:所有資料庫實例共用同一組 DES Key
  • 無 Salt:相同密碼產生相同雜湊,利於彩虹表攻擊
  • DES 強度不足:56-bit 有效金鑰長度,現代算力可暴力破解
  • 大小寫不敏感 (11g 前):密碼統一轉大寫再雜湊,熵大幅降低

破解工具生態現狀

版本演進與安全加強

工具特點效能參考
orabf 0.7目前最快字典攻擊工具P4 3GHz: ~1,100,000 pwd/sec (官方宣稱)
Checkpwd (Red Database Security)專業稽核工具,字典+規則引擎企業級報表、合規檢查
John the Ripper + Oracle patch開源通用破解器支援 Oracle 格式社群維護、規則豐富
Cain & AbelWindows 圖形化綜合工具整合嗅探、破解、分析

11g 關鍵參數控制

-- 查看密碼版本
SELECT USERNAME, PASSWORD_VERSIONS FROM DBA_USERS;
-- 10G 11G 12C 顯示支援的雜湊版本

-- 強制區分大小寫 (11g 預設 TRUE)
ALTER SYSTEM SET SEC_CASE_SENSITIVE_LOGON = TRUE SCOPE=BOTH;

-- 僅允許 11G/12C 版本雜湊 (停用 10G 相容)
ALTER SYSTEM SET SQLNET.ALLOWED_LOGON_VERSION_SERVER = 11 SCOPE=SPFILE;

資料庫連結 明文密碼風險

-- DB Link 密碼以加密形式儲存但可逆向還原
SELECT * FROM DBA_DB_LINKS;
-- PASSWORD 欄位為加密字串,非單向雜湊

風險:具 DBA 權限者可解密取得遠端資料庫密碼。建議:使用外部認證 (Kerberos/SSL) 或 12c+ Proxy Authentication 替代硬編碼密碼。

企業級防護策略

  1. 密碼複雜度驗證:啟用 Profile PASSWORD_VERIFY_FUNCTION (預設 VERIFY_FUNCTION_11G)
  2. 定期稽核:排程執行 Checkpwd/orabf 掃描弱密碼
  3. 帳號鎖定策略:FAILED_LOGIN_ATTEMPTS, PASSWORD_LOCK_TIME
  4. 密碼生命週期:PASSWORD_LIFE_TIME, PASSWORD_GRACE_TIME
  5. 審計追蹤:啟用 AUDIT_TRAIL=DB,EXTENDED 記錄登入嘗試
  6. 網路加密:配置 SQLNET.ORA SQLNET.ENCRYPTION_SERVER=REQUIRED

合規檢查查詢

-- 弱密碼掃描 (11g+ 區分大小寫)
SELECT USERNAME, PASSWORD_VERSIONS, ACCOUNT_STATUS
FROM DBA_USERS
WHERE PASSWORD_VERSIONS LIKE '%10G%'  -- 仍使用舊版雜湊
   OR ACCOUNT_STATUS != 'OPEN';

-- 密碼未變更超過 180 天
SELECT USERNAME, 
       TO_CHAR(LAST_LOGIN, 'YYYY-MM-DD') LAST_LOGIN,
       TO_CHAR(EXPIRY_DATE, 'YYYY-MM-DD') EXPIRY_DATE
FROM DBA_USERS
WHERE EXPIRY_DATE < SYSDATE - 180;
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
版本密碼特性安全等級
10g 及以前DES-based, 不分大小寫, 無 Salt極弱
11gSHA-1 + Salt, 分大小寫, 支援 10g 相容模式中等
12cPBKDF2 + SHA-512, 可配置迭代次數強
18c/19c/21c支援 SCRAM-SHA-256/512, 純密碼驗證不傳輸雜湊企業級