iT邦幫忙

2026 iThome 鐵人賽

DAY 27
0
Security

新手開發者的資安第一課:30 天搞懂 OWASP Top 10 與常見漏洞系列 第 27 篇

Day 27:密碼學應用漏洞——硬編碼與過時演算法

  • 分享至 

  • xImage
  •  

密碼學是保護現代資訊系統安全的基石,但「密碼學」並不等於「安全」。在資安領域中,密碼學實作是極其常見且致命的漏洞。且長期霸榜OWASP Top 10

硬編碼金鑰(Hardcoded Keys)

許多開發者為了開發方便或簡化部署,選擇直接將加密金鑰或資料庫密碼寫死在程式碼中。這等於「鎖了門,卻把鑰匙插在門鎖上」。

  • 常見的攻擊與洩露場景
    版本控制系統外洩(Git Leaks):即使將專案設為Private,或是事後刪除了程式碼中的金鑰,只要金鑰曾被 Commit 過,攻擊者就能透過git log或自動化掃描工具從Git歷史紀錄中挖出金鑰。

  • 用戶端反編譯:
    在 Mobile App(Android .apk / iOS .ipa)或前端 JavaScript 中硬編碼的金鑰,攻擊者只需透過反編譯工具或直接檢視前端原始碼,就能輕鬆得到密碼。

  • 金鑰全域共用:
    若把同一組預設金鑰編譯進所有發行給客戶的產品中,一旦其中一台設備的金鑰被提取,全部所有使用該產品的客戶都將面臨密碼被破解威脅。

使用過時與脆弱的演算法

密碼學演算法隨著計算能力提升,會逐漸被破解。繼續在生產環境中使用已經被證明不安全的演算法,就給了攻擊者可乘之機。

  • MD5 和 SHA-1 : 已經存在嚴重的雜湊碰撞缺陷。攻擊者可以輕鬆製造出兩個「內容完全不同,但計算出來的MD5雜湊值完全相同」的檔案或證書。攻擊者使用彩虹表或GPU增加算力可以在短時間內破解。
  • DES:金鑰長度僅有 56-bit,現代普通顯示卡能在幾小時內暴力破解出正確金鑰。
  • RC4: 存在金鑰流偏誤,曾廣泛應用於WEP及早期 TLS,現已被各大資安標準強制禁止。

怎麼防禦 ?

要建立強健的密碼學防護,必須要注意以下幾點:

  • 徹底分離金鑰與程式碼
  1. 環境變數與Secret管理工具: 金鑰必須從外部注入,生產環境應使用專業的金鑰管理服務。
  2. CI/CD 機密掃描: 在Git Commit與Pipeline中加入自動化檢查,防止機密文字被誤推至儲存庫。
  • 採用現代演算法
  1. 資料加密 : AES-256-GCM, ChaCha20-Poly1305
  2. 檔案/資料雜湊 : SHA-256, SHA-3, BLAKE2
  3. 密碼儲存 +: Argon2id, bcrypt, PBKDF2
  4. 非對稱加密 : RSA-3072+, Ed25519, ECDSA3.
  • 不要自行發明密碼學
    永遠不要試圖自建加密演算法或混淆邏輯。應直接呼叫經過資安界長期審查的標準函式庫。

上一篇
Day 26:日誌紀錄盲點——未留存 Log 或 Log 缺乏保護
下一篇
Day 28:行動裝置風險----BYOD設備未隔離與APP逆向工程風險
系列文
新手開發者的資安第一課:30 天搞懂 OWASP Top 10 與常見漏洞 共 30 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言