白話文解說 Side Channel Attack
Side Channel Attack 是 1 種攻擊手法,只要符合收集並利用額外資訊進行推算或破解成功的手法,都可以稱為 Side Channel Attack 。
這種攻擊最經典的例子是用運算時間的資訊破解密碼,舉例來說當我們在檢查密碼是否正確時,都是用 2 個字串進行比較, 1 個是使用者送上來的字串, 1 個則是使用者存在我們資料庫的密碼(千萬不能存明文),而字串比較的原理都是 1 個字元接著 1 個字元比較,所以當 2 個字串的第 1 個字元就不同時,其所需要的比較時間非常短,當 2 個字串是到第 3 個字元才不同的話,其所花費的時間就肯定會比較長(如圖所示)。
所以駭客可以收集這些運算時間,作爲他是否猜中密碼的重要資訊,當有某個字串花的時間比其他字串明顯要長的時候,那就代表這個字串很有可能已經猜中好幾個字元,接著駭客就可以從這個字串開始進行破解!
p.s. 現在這種手法對於有做 rate limit 或者 reCAPTCHA 的服務來說,已經很難實現了,因為很容易被擋⋯⋯。
Side Channel Attack 除了上面提到的手法之外,也有用耗電量、CPU 熱力圖、硬體發出的聲音等等千奇百怪的手法進行破解,是一個很有趣的議題!