[偷可] 網路安全-彩虹表攻擊

作者: TKB5566 (我們的元首阿道夫希特勒)   2024-01-05 23:05:54
在Java Web專案中,密碼這種資料,是不可能用明文方式存在資料庫的,
必定是要對密碼加密,然後加密後的密文必須是無法被反向回去來破解,這樣的密文
才能存入資料庫。
一種常見的給密碼加密,且能滿足不會被反向來破解的加密方式,叫做hash演算法。
透過這個hash演算法,對密碼本身產生一串hash code,這串hash code是無法被還原成
原始的密碼。這樣就能確保密碼的機密性,進而可以被存入資料庫。
用這種方式儲存密碼,聽起來好像很安全,但還是有針對這種hash code的破解嘗試,
這種嘗試就是彩虹表攻擊。
什麼是彩虹表攻擊?就是根據密碼可能有的規範,例如長度必須滿足某個長度、
密碼本身必須包含某個特定字元等等,模擬出所有可能的密碼;然後開始利用這些密碼,
搭配hash演算法去計算出對應的hash code;然後又拿這些hash code利用hash演算法,
計算出更多的hash code。這樣不斷循環操作,就可產生大量的hash code。
這些hash code被儲存在一個個的區塊內,
每個區塊除了記錄自身對應的hash code,還去記錄前一個區塊的hash code,
這樣含有hash code的區塊之間,可以形成一條條的鏈結;進而形成多條極長的鏈結。
這些所有的鏈結集合起來,就稱作彩虹表。
然後若現在要去找出某密碼對應的hash code,就可以從這個紀錄有大量hash code的
彩虹表之中進行查找,直到找出符合的hash code,即成功破解hash code這個密文。

Links booklink

Contact Us: admin [ a t ] ucptt.com