Hash

Flickr 長度擴展攻擊是如何工作的?

  • January 23, 2016

我目前正在閱讀有關Flickr (pdf) 的長度擴展攻擊,但不了解那裡發生了什麼。

m = SECRET || data || padding` and `api_signature = md5(m)

伺服器向攻擊者發送data和發送。api_signature攻擊者現在知道:

  • h = md5(m) = api_signature
  • data
  • 長度data(他為什麼知道,為什麼他必須知道?)

攻擊者的目標:附加一些額外的數據

他怎麼能那樣做?他可以將api_signature = h = md5(m)其用作雜湊函式的初始化向量,並對額外數據和另一個填充進行雜湊處理。這就是 hash length_extension 攻擊背後的想法,不是嗎?

我的問題:然後api_signature會發生變化,因為它的計算方式如下:md5(extra || padding)使用 oldapi_signature作為初始化向量。這如何有效?

總體而言:伺服器在發送此資訊時對“普通”客戶端的期望是什麼?

他怎麼能那樣做?他可以將api_signature = h = md5(m)其用作雜湊函式的初始化向量,並對額外數據和另一個填充進行雜湊處理。這就是 hash length_extension 攻擊背後的想法,不是嗎?

正確的。

我的問題:然後api_signature會發生變化,因為它的計算方式如下:md5(extra || padding)使用 oldapi_signature作為初始化向量。這如何有效?

這就是為什麼知道數據的長度很重要的原因。攻擊者可以使用長度擴展攻擊計算MD5雜湊,data||original_padding||arbitrary_data將原始雜湊值作為IV計算雜湊h'(arbitrary_data||new_padding),其中新填充使用原始填充數據和附加數據的長度。

總體而言:伺服器在發送此資訊時對“普通”客戶端的期望是什麼?

伺服器需要一個經過“身份驗證”的請求,其雜湊值為secret||request. 通過在請求的末尾添加數據並充分地按摩 URL,攻擊者可以在不知道秘密值的情況下計算雜湊值,以獲取足夠修改的 URL 以允許任意請求。(部分原因是 URL 參數如何為散列編碼的另一個弱點。)

引用自:https://crypto.stackexchange.com/questions/32085