By Yun
前言
現今生活中,大部分使用的服務都需要註冊帳號密碼,舉凡社群網站、電商、遊戲影音平台以及軟硬體的網頁介面等。或者是檔案加密、FTP服務以及SSH等也都會使用到密碼。密碼的使用非常廣泛,因此密碼的防護也相當重要。本文將會介紹一種密碼破解方式,以及該如何防禦!
密碼猜測攻擊
密碼猜測攻擊指的是逐個猜測密碼直到找出真正的密碼為止。那麼是怎麼猜測密碼的呢?猜測的方向大概可以分成以下三種:
-
蒐集的情報
若知道帳號擁有者,可以透過網路搜尋資料,再從其相關資訊去猜。例如:英文名字、生日以及手機號碼等等。
此外,網路上有常見密碼的名單[1],有一些簡單的英數字組合,像「123456」、「password」、「qqww1122」等。還有根據鍵盤位置產生的組合,例如「qwerty」、「1q2w3e4r5t」等都榜上有名。其他還有對應注音產生的密碼「au4a83(密碼)」。
另一方面,許多設備系統都設有預設密碼,這個資訊一般在網路上都查的到。
-
暴力破解(Brute-force attack)[2]
以密碼中可能出現的字元(字母、數字、特殊符號)根據密碼長度做排列組合,這種方式目標是嘗試密碼所有的可能性。
-
字典攻擊
以網路上的常見密碼名單來說,至少也有上百、千個密碼。這種情況下攻擊者不太可能手動一個一個輸入來測試。
所謂「字典攻擊」指的就是利用集合多個密碼的清單(又稱作字典檔),透過工具自動逐個測試清單裡面的密碼。
該如何防禦?
密碼猜測攻擊看起來好像很容易執行
,但還是有其限制。不管是以用什麼方式來猜測,它都是逐筆資料送出去測試,所以需要花費一定的時間。若是透過各類型字元的排列組合進行破解,密碼長度越長,就可能需要花費更多的時間。因此設定密碼時我們可以:
- 不使用常見密碼與個人資料
- 使用不同類型的字元增加密碼複雜度
舉例來說,若以字母任意組成密碼「emdpsa」,將其中幾個字元替換成數字「1mdp@a」。因為字元的可能性增加了,可能就需要花費更長的時間才能破解出來。 - 使用多個英文單字組成長密碼
關於上面第2項有另一個說法[3][4]:增加密碼複雜度相對也是增加我們記億的難度,所以可能會將密碼記錄在其他地方,此時若沒有注意額外記錄的安全性,反而可能造成密碼外洩的風險。因此也有第3項的方式,以自己熟悉但關聯性不大的多個單字組成一個長密碼,或是建立自己的聯想的方式。
那麼,網站方或企業方該怎麼面對密碼猜測攻擊呢?我們可以:
- 不使用預設密碼
- 限制登入失敗的次數,超過則鎖定帳號
- 禁止登入頻率過高的請求
- 使用兩種不同的驗證方式─雙因素認證
(延伸閱讀:單靠密碼還不夠嗎?雙重認證2FA)
雖然上面提到的都是「密碼」,但密碼猜測攻擊不限於密碼,帳號也是可以一起進行破解的。iThome上的一則新聞[5]中提到:「駭客經常是利用偷來的,或常見的administrator帳號密碼對單一或多個帳號嘗試登入,時間為期數秒到幾分鐘。」因此也建議停用系統預設的管理員帳號,或是更改帳號名稱,增加管理員帳號被破解的難度。
小提醒
最後小提醒,本文在於從攻擊方式做對應的防禦策略,隨意嘗試破解他人帳號密碼,可能需要負法律責任[6]哦!
參考資料
[1] Top 200 most common passwords of the year 2020
[2] 蠻力攻擊
[3] 專家告訴你,就算把密碼設置為「jK8v!ge4D」仍然不安全
[4] 好記又難猜的密碼設定技巧
[6] 全國法規資料庫