- 密碼學教程
- 密碼學 - 首頁
- 密碼學 - 起源
- 密碼學 - 歷史
- 密碼學 - 原理
- 密碼學 - 應用
- 密碼學 - 優點與缺點
- 密碼學 - 現代
- 密碼學 - 傳統密碼
- 密碼學 - 加密的需求
- 密碼學 - 雙重強度加密
- 密碼系統
- 密碼系統
- 密碼系統 - 組成部分
- 密碼系統攻擊
- 密碼系統 - 彩虹表攻擊
- 密碼系統 - 字典攻擊
- 密碼系統 - 暴力破解攻擊
- 密碼系統 - 密碼分析技術
- 密碼學型別
- 密碼系統 - 型別
- 公鑰加密
- 現代對稱金鑰加密
- 密碼學雜湊函式
- 金鑰管理
- 密碼系統 - 金鑰生成
- 密碼系統 - 金鑰儲存
- 密碼系統 - 金鑰分發
- 密碼系統 - 金鑰撤銷
- 分組密碼
- 密碼系統 - 流密碼
- 密碼學 - 分組密碼
- 密碼學 - Feistel分組密碼
- 分組密碼的工作模式
- 分組密碼的工作模式
- 電子密碼本 (ECB) 模式
- 密碼分組連結 (CBC) 模式
- 密文反饋 (CFB) 模式
- 輸出反饋 (OFB) 模式
- 計數器 (CTR) 模式
- 經典密碼
- 密碼學 - 反向密碼
- 密碼學 - 凱撒密碼
- 密碼學 - ROT13 演算法
- 密碼學 - 轉置密碼
- 密碼學 - 加密轉置密碼
- 密碼學 - 解密轉置密碼
- 密碼學 - 乘法密碼
- 密碼學 - 仿射密碼
- 密碼學 - 簡單替換密碼
- 密碼學 - 簡單替換密碼加密
- 密碼學 - 簡單替換密碼解密
- 密碼學 - 維吉尼亞密碼
- 密碼學 - 維吉尼亞密碼實現
- 現代密碼
- Base64 編碼與解碼
- 密碼學 - XOR 加密
- 替換技術
- 密碼學 - 單表代換密碼
- 密碼學 - 單表代換密碼破解
- 密碼學 - 多表代換密碼
- 密碼學 - Playfair 密碼
- 密碼學 - Hill 密碼
- 多表代換密碼
- 密碼學 - 一次性密碼本
- 一次性密碼本的實現
- 密碼學 - 轉置技術
- 密碼學 - 柵欄密碼
- 密碼學 - 列置換密碼
- 密碼學 -隱寫術
- 對稱演算法
- 密碼學 - 資料加密
- 密碼學 - 加密演算法
- 密碼學 - 資料加密標準 (DES)
- 密碼學 - 三重 DES
- 密碼學 - 雙重 DES
- 高階加密標準 (AES)
- 密碼學 - AES 結構
- 密碼學 - AES 變換函式
- 密碼學 - 位元組替換變換
- 密碼學 - 行移位變換
- 密碼學 - 列混淆變換
- 密碼學 - 輪金鑰加變換
- 密碼學 - AES 金鑰擴充套件演算法
- 密碼學 - Blowfish 演算法
- 密碼學 - SHA 演算法
- 密碼學 - RC4 演算法
- 密碼學 - Camellia 加密演算法
- 密碼學 - ChaCha20 加密演算法
- 密碼學 - CAST5 加密演算法
- 密碼學 - SEED 加密演算法
- 密碼學 - SM4 加密演算法
- IDEA - 國際資料加密演算法
- 公鑰(非對稱)密碼演算法
- 密碼學 - RSA 演算法
- 密碼學 - RSA 加密
- 密碼學 - RSA 解密
- 密碼學 - 建立 RSA 金鑰
- 密碼學 - 破解 RSA 密碼
- 密碼學 - ECDSA 演算法
- 密碼學 - DSA 演算法
- 密碼學 - Diffie-Hellman 演算法
- 密碼學中的資料完整性
- 密碼學中的資料完整性
- 訊息認證
- 密碼學數字簽名
- 公鑰基礎設施 (PKI)
- 雜湊
- MD5 (訊息摘要演算法 5)
- SHA-1 (安全雜湊演算法 1)
- SHA-256 (安全雜湊演算法 256 位)
- SHA-512 (安全雜湊演算法 512 位)
- SHA-3 (安全雜湊演算法 3)
- 雜湊密碼
- Bcrypt 雜湊模組
- 現代密碼學
- 量子密碼學
- 後量子密碼學
- 密碼協議
- 密碼學 - SSL/TLS 協議
- 密碼學 - SSH 協議
- 密碼學 - IPsec 協議
- 密碼學 - PGP 協議
- 影像與檔案加密
- 密碼學 - 影像
- 密碼學 - 檔案
- 隱寫術 - 影像
- 檔案加密和解密
- 密碼學 - 檔案加密
- 密碼學 - 檔案解密
- 物聯網中的密碼學
- 物聯網安全挑戰、威脅和攻擊
- 物聯網安全的密碼技術
- 物聯網裝置的通訊協議
- 常用密碼技術
- 自定義構建密碼演算法(混合密碼)
- 雲密碼學
- 量子密碼學
- 密碼學中的影像隱寫術
- DNA 密碼學
- 密碼學中的一次性密碼 (OTP) 演算法
- 區別
- 密碼學 - MD5 vs SHA1
- 密碼學 - RSA vs DSA
- 密碼學 - RSA vs Diffie-Hellman
- 密碼學 vs 密碼學
- 密碼學 - 密碼學 vs 密碼分析
- 密碼學 - 經典 vs 量子
- 密碼學 vs 隱寫術
- 密碼學 vs 加密
- 密碼學 vs 網路安全
- 密碼學 - 流密碼 vs 分組密碼
- 密碼學 - AES vs DES 密碼
- 密碼學 - 對稱 vs 非對稱
- 密碼學有用資源
- 密碼學 - 快速指南
- 密碼學 - 討論
密碼系統 - 彩虹表攻擊
什麼是彩虹表攻擊?
彩虹表攻擊是一種用於解密密碼的技術,它使用一張稱為“彩虹表”的表。密碼不會以純文字形式儲存,而是加密成雜湊值。當用戶嘗試透過輸入密碼登入時,密碼會被轉換成雜湊值,然後與伺服器上儲存的雜湊值表進行比較以驗證匹配。匹配表示使用者的身份已確認,允許他們訪問軟體。
彩虹表本身顯示了一個預先計算的密碼雜湊值表,其中包含身份驗證過程中使用的任何純文字字元。如果駭客能夠訪問密碼雜湊列表,他們可以使用彩虹表輕鬆破解所有密碼。
一種名為“加鹽”的工具極大地減少了彩虹表攻擊。加鹽是一種防止彩虹表攻擊的現代方法,它需要向每個雜湊密碼新增一個新的隨機值以建立唯一的雜湊值。大多數現代密碼認證系統都包含加鹽,以大大減少成功的彩虹表攻擊次數。
大多數程式設計師都使用加鹽,但也有一些程式設計師沒有使用,這使得他們更容易受到彩虹表的攻擊。
這是一個關於彩虹表攻擊工作原理的簡單示意圖:
解釋
使用者輸入密碼。
密碼被轉換為雜湊值(一種特殊的程式碼)。
將雜湊值與伺服器上儲存的雜湊值進行比較。
如果找到匹配項,則授予訪問許可權。否則,使用者可以重試。
當駭客訪問儲存的雜湊值並使用預先計算的表來快速查詢與這些雜湊值關聯的原始密碼時,就會發生彩虹表攻擊。
彩虹表攻擊是如何工作的?
要進行彩虹表攻擊,駭客首先必須獲得洩露的雜湊值。有時密碼資料庫本身安全性不高,或者他們可能訪問了 Active Directory。需要訪問密碼資料庫的使用者可以透過網路釣魚技術獲得訪問許可權。透過所有這些方式,暗網上已經有數百萬個洩露的密碼雜湊值可供駭客使用。
獲得密碼雜湊值後,可以使用彩虹表來幫助解密密碼雜湊值。只要密碼雜湊值中沒有“鹽”(如上所定義),加密密碼就可以轉換為純文字。
整個彩虹表攻擊過程有四個步驟:
建立 - 彩虹表透過首先獲取潛在密碼列表並對每個密碼應用雜湊函式來生成雜湊列表。彩虹表用於儲存生成的雜湊值及其對應的明文密碼。
查詢 - 駭客可以使用彩虹表查詢與他們擁有的雜湊集合匹配的明文密碼。為了找到與目標雜湊匹配的項,會從每個鏈的最後一個雜湊值開始,反向驗證彩虹表中的雜湊值。
破解 - 當找到匹配的雜湊值時,表明目標雜湊的原始密碼是匹配的明文密碼。現在駭客可以使用身份驗證過程來訪問他人的帳戶。
縮減 - 彩虹表中的雜湊值透過縮減函式重新處理以生成新的雜湊集。縮減函式將每個雜湊對映到一個新值,新值用作下一步的起點。此步驟重複多次以建立雜湊鏈。
彩虹表攻擊示例
下面列出了兩個彩虹表攻擊如何發生的現實世界示例:
攻擊者發現一個 Web 應用程式使用了過時的密碼雜湊技術和非常糟糕的安全措施。透過獲取密碼雜湊值,攻擊者可以使用彩虹表來解密應用程式中每個使用者的密碼。
駭客能夠透過搜尋公司 Active Directory 中的漏洞來訪問密碼雜湊值。獲取密碼雜湊列表後,使用彩虹表攻擊將雜湊值解密為純文字密碼。
抵禦彩虹表攻擊!
只要遵循以下指南,防禦彩虹表攻擊就相當簡單:
消除密碼 − 確保防止基於密碼的攻擊的唯一方法是解決密碼問題。如果沒有要竊取的密碼雜湊列表,則無法進行彩虹表攻擊。立即瞭解無密碼身份驗證,並確保您的重要應用程式平穩執行。
使用鹽值 (Salt) − 雜湊密碼絕不應在不加鹽值的情況下儲存。這使得解密密碼更加困難。但是,建議完全刪除字母數字術語。
使用生物識別技術 − 當使用生物識別身份驗證機制對抗生物識別密碼時,攻擊者很難(如果不是不可能的話)成功進行彩虹表攻擊。
監控您的伺服器 − 大多數現代伺服器安全軟體都會監控訪問敏感資訊的嘗試,並可以努力最大限度地減少並抓住攻擊者,然後再讓他們發現密碼資料庫。
避免使用過時的雜湊演算法 − 駭客會攻擊使用過時的密碼雜湊演算法 MD5 和 SHA1 的應用程式和伺服器。如果您的應用程式使用過時的演算法,則彩虹表攻擊的可能性會大大增加。
彩虹表攻擊與字典攻擊
彩虹表攻擊和字典攻擊都是駭客用來獲取密碼的密碼破解技術。
在彩虹表攻擊中,攻擊者使用預先計算好的雜湊表來確定雜湊密碼的明文版本。與字典攻擊不同(字典攻擊中,攻擊者會嘗試字典中的每個單詞,直到找到匹配項),彩虹表攻擊允許攻擊者快速找到包含前面已計算出的表的明文字串。但建立它們需要大量時間,並且佔用大量空間。
在字典攻擊中,駭客使用預編譯的常用密碼列表(常用的單詞和符號),即字典,與雜湊密碼進行比較,找到匹配項則表示雜湊密碼已被破解。字典攻擊之所以成功,是因為許多使用者建立的密碼非常簡單易懂。此攻擊取決於計算機的速度,並使用多個可能的密碼。
總結
彩虹表攻擊是駭客使用預先計算的表格破解資料庫中儲存的雜湊密碼的一種方法。但是,透過使用鹽值(將隨機值新增到雜湊密碼)可以降低此類攻擊的有效性。為了防止彩虹表攻擊,組織應消除基於密碼的身份驗證,採用安全的密碼,例如無密碼身份驗證或生物識別技術,以及使用帶鹽值的密碼雜湊,監控伺服器上的惡意活動,並避免使用 MD5 和 SHA1 等過時的雜湊演算法。這些措施有助於降低成為彩虹表攻擊受害者的風險,並提高整體網路安全。