亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

密碼鹽對彩虹表攻擊有什么幫助?

密碼鹽對彩虹表攻擊有什么幫助?

密碼鹽對彩虹表攻擊有什么幫助?我有點搞不懂把鹽變成密碼的目的。我的理解是,主要用途是阻止彩虹桌攻擊。然而,我看到的實現這個問題的方法似乎并沒有使問題變得更加困難。我已經看過許多教程,建議將鹽用作以下內容:$hash =  md5($salt.$password)其原因是哈希現在不是映射到原始密碼,而是密碼和SALT的組合。但是說$salt=foo和$password=bar和$hash=3858f62230ac3c915f300c664312c63f..現在,有彩虹表的人可以倒轉哈希,并得到輸入“foobar”。然后他們可以嘗試所有密碼組合(f,fo,foo,.Oobar,Obar,bar,Ar,Ar)。獲得密碼可能需要幾毫秒,但其他時間不多。我看到的另一個用途是在我的Linux系統上。在/etc/陰影中,哈希密碼實際上是存儲的。帶著鹽。例如,“foo”的鹽類和“bar”的密碼將散列如下:$1$foo$te5SBM.7C25fFDu6bIRbX1..如果黑客以某種方式得到了這個文件,我看不出鹽有什么用途,因為te5SBM.7C25fFDu6bIRbX已知含有“foo”。謝謝任何人都能在這上面撒點光。編輯謝謝你的幫助??偨Y一下我所理解的,SALT使得散列密碼更加復雜,從而使它更不可能存在于預先計算的彩虹表中。我之前誤解的是,我假設所有的散列都有彩虹表。
查看完整描述

2 回答

?
幕布斯7119047

TA貢獻1794條經驗 獲得超8個贊

公眾的意愿當破解單個密碼時,使字典攻擊更加困難。正如您已經指出的,攻擊者可以訪問哈希密碼和SALT,因此在運行字典攻擊時,她可以在試圖破解密碼時使用已知的SALT。

公共鹽可以做兩件事:破解一大串密碼花費更多的時間,而使用彩虹表則是不可行的。

要理解第一個密碼文件,請設想一個包含數百個用戶名和密碼的密碼文件。如果沒有SALT,我可以計算“md5(嘗試[0])”,然后掃描文件,看看散列是否出現在任何地方。如果存在鹽,那么我必須計算“md5(salt[a].try[0])”,與條目A進行比較,然后“md5(salt[b].try[0])”,比較條目B,等等。n做同樣多的工作n文件中包含的用戶名和密碼數。

要理解第二個問題,你必須了解彩虹桌是什么。彩虹表是用于常用密碼的預計算散列的大列表。再設想一下,密碼文件沒有鹽類。我所要做的就是遍歷文件的每一行,取出散列密碼,并在彩虹表中查找它。我從來不需要計算一個散列。如果查找比散列函數快得多(可能是),這將大大加快文件的破解速度。

但是如果密碼文件是咸的,那么彩虹表就必須包含“salt.Password”預哈希。如果鹽是足夠隨機的,這是非常不可能的。我可能會把“hello”、“foobar”和“qwerty”這樣的東西放在我常用的預散列密碼(彩虹表)中,但是我不會像“jX95psDzhello”或“lpgB0sdgxfoobar”或“dZVUABJtqwerty”那樣預先計算。這會使彩虹桌變得大得讓人望而卻步。

因此,SALT將攻擊者減少到每行一次的計算,如果再加上足夠長、足夠隨機的密碼,(一般來說)是無法破解的。


查看完整回答
反對 回復 2019-07-12
?
臨摹微笑

TA貢獻1982條經驗 獲得超2個贊

其他的答案似乎并沒有解決你對這個話題的誤解,下面是這樣說的:

鹽的兩種不同用途

我已經看過許多教程,建議將鹽用作以下內容:

$hash = md5($salt.$password)

[...]

我看到的另一個用途是在我的Linux系統上。在/etc/陰影中,散列密碼實際上是用SALT存儲的。

你,你們必須使用密碼存儲SALT,因為為了驗證用戶根據密碼數據庫輸入的內容,必須將輸入與SALT結合起來,對其進行散列,并將其與存儲的哈希進行比較。

散列的安全性

現在,有彩虹表的人可以倒轉哈希,并得到輸入“foobar”。

[...]

因為te5SBM.7C25fFDu6bIRbX的反向散列已知包含“foo”。

這是不可能扭轉哈希本身(至少在理論上)?!癴oo”的散列和“saltfoo”的散列有沒什么共同之處。即使在加密哈希函數的輸入中更改一位,也應該完全改變輸出。

這意味著您不能用普通密碼構建彩虹表,然后再用一些SALT“更新”它。你必須從一開始就把鹽考慮進去。

這就是為什么你首先需要一張彩虹桌的全部原因。因為您無法從散列中獲得密碼,所以預先計算最可能使用的密碼的所有散列,然后將您的散列與它們的散列進行比較。

鹽質

但是說$salt=foo

“foo”將是鹽的選擇很差。通常,您會使用一個隨機值,編碼在ASCII中。

另外,每個密碼都有自己的SALT,與系統上的所有其他鹽類不同(希望如此)。這意味著攻擊者必須單獨攻擊每個密碼,而不是希望哈希值與數據庫中的一個值匹配。

襲擊

如果黑客能拿到這份文件,我看不出鹽有什么用,

彩虹桌攻擊需要/etc/passwd(或使用任何密碼數據庫),否則如何將彩虹表中的散列與實際密碼的散列進行比較?

至于目的:假設攻擊者想要為10萬個常用的英語單詞和典型密碼(想想“秘密”)構建一個彩虹表。如果沒有鹽,她將不得不預先計算100,000個散列。即使傳統的UNIX鹽只有2個字符(每個字符都是64個字符中的一個):[a–zA–Z0–9./])她必須計算和存儲4096,000,000散列.有了很大的進步。


查看完整回答
反對 回復 2019-07-12
  • 2 回答
  • 0 關注
  • 1311 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號