密碼的破解與防禦

By Yun

前言

現今生活中,大部分使用的服務都需要註冊帳號密碼,舉凡社群網站、電商、遊戲影音平台以及軟硬體的網頁介面等。或者是檔案加密、FTP服務以及SSH等也都會使用到密碼。密碼的使用非常廣泛,因此密碼的防護也相當重要。本文將會介紹一種密碼破解方式,以及該如何防禦!

密碼猜測攻擊

密碼猜測攻擊指的是逐個猜測密碼直到找出真正的密碼為止。那麼是怎麼猜測密碼的呢?猜測的方向大概可以分成以下三種:

  1. 蒐集的情報

若知道帳號擁有者,可以透過網路搜尋資料,再從其相關資訊去猜。例如:英文名字、生日以及手機號碼等等。

此外,網路上有常見密碼的名單[1],有一些簡單的英數字組合,像「123456」、「password」、「qqww1122」等。還有根據鍵盤位置產生的組合,例如「qwerty」、「1q2w3e4r5t」等都榜上有名。其他還有對應注音產生的密碼「au4a83(密碼)」。

另一方面,許多設備系統都設有預設密碼,這個資訊一般在網路上都查的到。

  1. 暴力破解(Brute-force attack[2]

以密碼中可能出現的字元(字母、數字、特殊符號)根據密碼長度做排列組合,這種方式目標是嘗試密碼所有的可能性。

  1. 字典攻擊

以網路上的常見密碼名單來說,至少也有上百、千個密碼。這種情況下攻擊者不太可能手動一個一個輸入來測試。

所謂「字典攻擊」指的就是利用集合多個密碼的清單(又稱作字典檔),透過工具自動逐個測試清單裡面的密碼。

該如何防禦?

密碼猜測攻擊看起來好像很容易執行

,但還是有其限制。不管是以用什麼方式來猜測,它都是逐筆資料送出去測試,所以需要花費一定的時間。若是透過各類型字元的排列組合進行破解,密碼長度越長,就可能需要花費更多的時間。因此設定密碼時我們可以:

  1. 不使用常見密碼與個人資料
  2. 使用不同類型的字元增加密碼複雜度
    舉例來說,若以字母任意組成密碼「emdpsa」,將其中幾個字元替換成數字「1mdp@a」。因為字元的可能性增加了,可能就需要花費更長的時間才能破解出來。
  3. 使用多個英文單字組成長密碼

關於上面第2項有另一個說法[3][4]:增加密碼複雜度相對也是增加我們記億的難度,所以可能會將密碼記錄在其他地方,此時若沒有注意額外記錄的安全性,反而可能造成密碼外洩的風險。因此也有第3項的方式,以自己熟悉但關聯性不大的多個單字組成一個長密碼,或是建立自己的聯想的方式。

那麼,網站方或企業方該怎麼面對密碼猜測攻擊呢?我們可以:

  1. 不使用預設密碼
  2. 限制登入失敗的次數,超過則鎖定帳號
  3. 禁止登入頻率過高的請求
  4. 使用兩種不同的驗證方式─雙因素認證

(延伸閱讀:單靠密碼還不夠嗎?雙重認證2FA

雖然上面提到的都是「密碼」,但密碼猜測攻擊不限於密碼,帳號也是可以一起進行破解的。iThome上的一則新聞[5]中提到:「駭客經常是利用偷來的,或常見的administrator帳號密碼對單一或多個帳號嘗試登入,時間為期數秒到幾分鐘。」因此也建議停用系統預設的管理員帳號,或是更改帳號名稱,增加管理員帳號被破解的難度。

小提醒

最後小提醒,本文在於從攻擊方式做對應的防禦策略,隨意嘗試破解他人帳號密碼,可能需要負法律責任[6]哦!

參考資料

[1] Top 200 most common passwords of the year 2020

[2] 蠻力攻擊

[3] 專家告訴你,就算把密碼設置為「jK8v!ge4D」仍然不安全

[4] 好記又難猜的密碼設定技巧

[5] 微軟:RDP暴力破解平均持續2-3天,成功率不低

[6] 全國法規資料庫

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。