Rsa
為什麼這是對 Bleichenbacher 攻擊的修復?
看看這個對攻擊的出色解釋,我還有一個問題:
它說:“”為了防止這種攻擊,SSL 伺服器不會通知客戶端有關填充問題的資訊。如果由於填充錯誤導致解密失敗,則伺服器繼續使用隨機的預主密鑰(真正的失敗將在處理 Finished 消息時發生)。""
為什麼這可以防止攻擊?為什麼攻擊者不只是因為填充錯誤而推斷連接失敗?為什麼連接會失敗?
為什麼這可以防止攻擊?為什麼攻擊者不只是因為填充錯誤而推斷連接失敗?為什麼連接會失敗?
好吧,連接可能會失敗,因為主機解密了一個有效的 pre-master secret,而這不是我們期望的 pre-master secret。
也就是說,當攻擊者註入他的加密消息時,可能會發生以下兩種情況之一:
- 伺服器嘗試解密消息,發現填充無效
- 伺服器解密消息,並在那裡找到一個值。
攻擊者需要知道的資訊是(1)或(2)是否發生;如果他能確定這一點,那麼他就知道填充看起來是否正確。
現在,通過攻擊,如果 (2) 發生,那麼攻擊者不知道該值是什麼。因此,如果我們以模仿 (2) 中的行為的方式對 (1) 做出反應,我們就會阻止攻擊者了解這一點。