暴力破解(Brute Force)
暴力破解就是逐一嘗試所有可能的密碼或金鑰組合,直到猜對為止。
它不需要理解密碼學,只需要運算力。從 0000、0001、0002...一直試下去。


- 暴力破解是「窮舉所有可能」的原始方法安全防線:強密碼、帳號保護機制、加鹽雜湊、多重驗證現代密碼學設計都假設「攻擊者有無限資源」,所以安全設計須足夠抗暴力破解
中間人攻擊(MITM)
攻擊者在「你與伺服器」之間插入自己當中介,偷偷竊聽、修改或偽造訊息。



重放攻擊(Replay Attack)
攻擊者將已被合法使用過的封包 截取後再送出一次或多次,試圖讓伺服器誤以為是新的請求。
這種攻擊不需要解密訊息本身,只要把舊訊息「重送」就好。例如:
使用者登入時發送了一個認證封包,攻擊者擷取下來,稍後再次發送,伺服器若沒驗證「是否為舊訊息」,就會錯誤授權。


雜湊碰撞(Hash Collision)
雜湊函數是一種將任意長度輸入,轉換為固定長度輸出(如 256 位元)的函數。
但輸入空間是無限的,輸出空間是有限的,因此根據鴿籠原理(Pigeonhole Principle):
必然會存在 不同的輸入資料,但得到 一樣的雜湊值,這種情況就稱為 碰撞(Collision)。

彩虹表攻擊(Rainbow Table)
彩虹表攻擊(Rainbow Table Attack)是一種針對雜湊值的逆向破解攻擊,攻擊者藉由事先計算大量常見密碼的雜湊值,建立對應查表資料庫,當取得密碼雜湊值後,就能快速查表還原原始密碼。
一旦駭客獲得一份密碼雜湊值(如從資料庫洩漏),就可以用這個表 快速對應還原出原始密碼
舉例:

- 彩虹表的限制
- 雜湊函數必須是無鹽(Unsalted)
- 彩虹表針對的是常見密碼字串
- 表格越大,涵蓋範圍越廣,但儲存空間需求也更大(可能數百 GB)

- 彩虹表是一種事先建立好「密碼 → 雜湊」對照表的攻擊方式
- 攻擊條件:雜湊演算法快 + 沒有加 salt
- 防禦關鍵是加 salt + 使用 bcrypt / scrypt / PBKDF2
- 現代系統若正確實作這些保護,彩虹表幾乎無用武之地