資訊安全:為何重設密碼不直接告訴你舊密碼?破解密碼的方法

更新 發佈閱讀 11 分鐘

我遇過網購的平台訂單的資訊被洩漏,就接到詐騙集團打電話說設定成每月定期付款,差點就衝去郵局 ATM 處理。好險有家人阻止,才免於被騙錢。又有一次是朋友 Facebook 被盜用發出借錢訊息給我,我還傻傻差點匯錢>﹏<

以上都是資訊安全存在生活中的實際案例,現在我來介紹到底密碼是怎麼被破解的,又有哪些方法可以預防。


1. Dictionary Attack

你是否使用了太簡單的密碼呢?像是 123456、password、qwerty 這些密碼,可能都中了一種叫 Dictionary Attack 的攻擊!

簡介: 這種攻擊方法是駭客透過試用一整份包含常見密碼的字典來破解。例如,駭客會準備一份包含 "123456"、"password"、"iloveyou" 這類常見密碼的清單,然後用程式快速嘗試每個密碼,直到成功破解。來看一下你的密碼有沒有在榜上 Wikipedia:10,000 most common passwords

實際應用: 例如,某人用 "password" 當作電子郵件密碼,駭客使用自動化工具依照字典檔逐一嘗試,很容易就能登入受害者的帳戶。解決辦法是設計複雜的密碼,加入特殊符號及大小寫混合!

2. Password Stuffing

簡介: 駭客利用從其他網站洩漏的帳密資料,嘗試登錄你的其他帳戶。

實際應用: 假設你跟我一樣,在某購物網站用的帳號和密碼洩漏了,駭客就可能用這組密碼嘗試登入你的社交媒體帳號。因此,建議每個網站使用不同的密碼。

但很多密碼會不好記憶,這時候可以使用

3. Password Manager

簡介: 密碼管理員是一種工具,可以幫助安全儲存和自動填入密碼。

實際應用: 例如,你可以使用 LastPass 或 1Password 管理不同網站的複雜密碼,減少記憶負擔。或是 Google, Apple ID 都有幫你產出一串亂碼,並協助你紀錄密碼的功能


為何重設密碼不直接告訴你舊密碼?因為連電腦都不知道你真正的密碼

以下 hash 的舉例內容引用自

為什麼忘記密碼時只能重設,不把舊密碼告訴我?

電腦存密碼時,會透過雜湊(Hash)的功能將密碼轉換。舉個簡單的例子:

該密碼的轉換方式是:「數字不做轉換,英文字母把 a 換成 1,b 換成 2…z 換成 26」,以此類推,第幾個字母就換成幾,大小寫不分都一樣。

如果密碼是 abc123,轉換完就變成 123123。

但駭客拿到 123123 不會直接對應到 abc123 而是有可能由 123123、abcabc、12cab3 組成。

這就是 hash 跟加密最大的不同。加密跟解密是成對的,可以直接回推,但 Hash 不行。

有些人可能會注意到,這樣的儲存方式似乎有個漏洞。延續前面的例子,假設資料庫存的是 123123,而我的原始密碼是 abc123,這樣如果有人輸入 "abcabc",雜湊後結果也是 123123,不就可以登入了嗎?

這種情況,兩個不同的輸入卻產生同一組輸出的現象,就叫做碰撞(Hash Collision)。碰撞在理論上是不可避免的,但如果演算法設計得夠好,碰撞的機率會小到幾乎可以忽略。

前面提到的轉換規則只是方便舉例,真實世界中的演算法複雜許多。例如,以 SHA256 演算法為例,哪怕只是改變一個字元,結果也會有天壤之別,這就是設計良好的演算法強大的地方!

  1. abc123 => 6ca13d52ca70c883e0f0bb101e425a89e8624de51db2d2392593af6a84118090
  2. abc124 => cd7011e7a6b27d44ce22a71a4cdfc2c47d5c67e335319ed7f6ae72cc03d7d63f


更多 Hash 的延伸補充請參考我之前的文章

雜湊表(Hash Table)& 字典樹(Trie)的程式碼和補充 Malloc 用法


不過這樣駭客也有方法可以「查表」找出該 Hash 值,這就是 Rainbow Table

3. Rainbow Table

簡介: 駭客可能使用 Rainbow Table,這是一張對應密碼雜湊值的查表,通過這張表可以快速解碼雜湊值。

實際應用: 例如,某網站儲存的密碼是經過雜湊處理的 "abc123",結果是 "123123"。駭客利用 Rainbow Table 找到對應,快速破解密碼。為了應對,網站應結合 Salting 技術來增加破解難度。

4. Salting

簡介: Salting 是在密碼雜湊時加入隨機值,讓每個密碼的雜湊結果都獨一無二。

實際應用: 例如,兩位使用者用相同密碼 "123456" 註冊,透過 Salting 處理後,資料庫中儲存的雜湊值也完全不同。這有效阻止駭客用 Rainbow Table 破解密碼。

加入 Salting 後,每位使用者的密碼會加上一段隨機的鹽值,比如 "123456salt1" 和 "123456salt2"。最終雜湊值不同,即便是駭客也難以逆推出原始密碼。

例如:

  • 使用者 A 的密碼 "123456" 加上鹽值 "saltA",雜湊結果為 "a1b2c3d4"。
  • 使用者 B 的密碼 "123456" 加上鹽值 "saltB",雜湊結果為 "z9y8x7w6"。


談完密碼怎麼被儲存,我們來看常見的加密模式,以及加密怎麼被駭客反利用。

5. End-to-End Encryption

簡介: 端對端加密是指在通訊過程中,訊息從發送到接收的每個階段都被加密,只有接收者能解密。

實際應用: 像 Telegram 的 「焚毀訊息」功能,所有訊息傳輸過程都加密,確保其他人無法攔截或查看內容。


6. Full Disk Encryption & Ransomware

簡介: 全碟加密會將整台電腦的數據加密,而勒索軟體 (Ransomware) 利用相似技術鎖住你的資料。

實際應用: 例如,某天你開機後,發現所有檔案都被鎖住,駭客要求支付贖金才能解密。為了預防建議定期備份資料,也不要亂點來路不明的網站。


7. Symmetric & Asymmetric Encryption

簡介:

  • 對稱加密 使用相同密鑰進行加解密。
  • 非對稱加密 使用一對公鑰與私鑰來分別加密與解密。

實際應用: 對稱加密適合快速的內部資料保護;非對稱加密則常用於網路傳輸,例如電子郵件加密和數位簽章。

圖片擷取自以下影片。這種非對稱加密是用公共鑰匙和私人鑰匙的概念進行加密。

圖片擷取自以下影片。這種非對稱加密是用公共鑰匙和私人鑰匙的概念進行加密。


補充影片:Asymmetric Encryption - Simply explained


8. Passkey

簡介: Passkey 是一種需要特定硬體設備(如 USB 安全鎖)進行解密的技術。

核心概念

  1. 公開金鑰與私密金鑰:
    • 私密金鑰(Private Key):由用戶設備生成並安全存儲,永遠不會離開設備。
    • 公開金鑰(Public Key):用戶註冊時,設備將公開金鑰發送給服務端,服務端用它來驗證用戶身份。
  2. 密碼學簽名:
    • 使用私密金鑰對資料,例如伺服器傳送的cryptographic challenge(加密挑戰碼)簽名,伺服器用公開金鑰來驗證簽名是否正確。

工作流程

1. 註冊階段(Registration):

    • 設備生成一對公開金鑰和私密金鑰。
    • 公開金鑰發送到伺服器並與用戶帳戶綁定。
    • 私密金鑰安全地存儲在設備中
raw-image

2. 登入階段(Authentication):

    1. 伺服器發送挑戰碼:一段隨機生成的數據(防止重放攻擊)。
    2. 設備生成簽名:用戶使用指紋、臉部識別或 PIN 解鎖設備,啟用私密金鑰。設備用私密金鑰對挑戰碼進行簽名。
    3. 伺服器驗證:伺服器用之前存儲的公開金鑰檢查簽名是否正確。如果正確,驗證成功。
藍色私鑰於電腦,傳送驗證給伺服器才可以開啟公鑰

藍色私鑰於電腦,傳送驗證給伺服器才可以開啟公鑰

例如 QR Code 驗證。電腦版的Line 就有此功能

例如 QR Code 驗證。電腦版的Line 就有此功能


Passkey 的優點

高安全性:私密金鑰永不離開設備,不會被伺服器端攻擊波及。

過去,如果假冒訂房網站的釣魚網站請你輸入帳號密碼,該組帳號密碼就會被駭客拿到。但現在 Passkey 只能在原始註冊的官方網站運作,只有官方網站有你註冊時的公鑰登入用戶資訊,所以大幅減少資料外洩的問題

使用便利性:

    • 不需要記住或輸入密碼。
    • 支援多設備同步(如透過 iCloud、Google 服務進行金鑰同步)。


補充影片:What are passkeys? Explained in under 4 minutes


11. Modular Arithmetic 模運算 (超難的數學)

簡介: 模數運算是一種數學技術,用於快速計算餘數,常見於加密演算法中。

若有兩整數 a、b,兩者的差 (a–b) 可被另一正整數 n 整除,則 a、b 各自除以 n,所得餘數相同,此時稱「a、b 同餘模」,符號表示如下:

意義:

  • a≡b(modn) 的意思是,當 a 和 b 分別被 n 除時,得到相同的餘數。
換句話說,a 和 b 相差一個 n 的倍數。a≡b(modn)

數學公式: (注意是三條線不是等於)

a≡b(modn)⟺n∣(a−b)⟺amodn=bmodn

舉例說明:

  1. 基本例子:
    • a=17, b=5, n=6
    • 計算: a−b=17−5=12
    • 12 可以被 6 整除 (餘數為0)
    • 所以17≡5(mod6)
  2. 餘數法檢查:
    • 17 mod 6=17−(6×2)=5
    • 5 mod 6=5
    • 17和 5 在模 6 下有相同的餘數,確認17≡5(mod6)
  3. 應用例子:時鐘算數
    • 在時鐘上,時間是按照 12小時進行模算數的。
    • 例如,現在是 14 點(下午 2 點),但 14 mod 12=2,所以可以說 14≡2(mod12)

實際應用: 例如,RSA 加密演算法中會用到模數運算來產生公鑰與私鑰。

加密演算法是取用模運算的特性,例如分解大數、計算餘數或循環性。以下是一些常見例子及其背後邏輯:(以下內容參考自 ChatGPT)

ab mod n 即使 b很大,也可以用有效算法快速計算,但很難反推出原數。

此圖擷取自 ChatGPT

此圖擷取自 ChatGPT



結語:你會用密碼管理員嗎?為什麼呢?

資訊安全是生活中的重要一環,你的每一步保護,都是對駭客的一大阻礙!如果你有什麼想法或問題,歡迎留言告訴我!



留言
avatar-img
留言分享你的想法!
avatar-img
越南放大鏡 X 下班資工系
57會員
108內容數
雙重身份:越南放大鏡 X 下班資工系 政大東南亞語言學系是我接觸越南語的起點,畢業後找越南外派工作的生活跟資訊時,發現幾乎都是清單式的分享,很難身歷其境。所以我希望「越南放大鏡」可以帶讀者看到更多細節和深入的觀察。 - 下班資工系則是自學資工系的課程內容,記錄實際操作的過程,學習理論的過程。希望可以跟讀者一起成長。
2025/04/24
本系列文章將循序漸進地介紹 JavaScript 的核心概念,從基礎語法到進階應用,例如非同步程式設計和 React 基礎。內容淺顯易懂,並使用生活化的比喻幫助讀者理解,搭配程式碼範例,適合 JavaScript 初學者學習。
Thumbnail
2025/04/24
本系列文章將循序漸進地介紹 JavaScript 的核心概念,從基礎語法到進階應用,例如非同步程式設計和 React 基礎。內容淺顯易懂,並使用生活化的比喻幫助讀者理解,搭配程式碼範例,適合 JavaScript 初學者學習。
Thumbnail
2025/04/21
本文介紹行動通訊網路的演進歷史,從1G到5G,並說明ITU與3GPP在制定通訊規格上的重要角色,以及5G的三大關鍵應用場景:URLLC、eMBB和mMTC。
Thumbnail
2025/04/21
本文介紹行動通訊網路的演進歷史,從1G到5G,並說明ITU與3GPP在制定通訊規格上的重要角色,以及5G的三大關鍵應用場景:URLLC、eMBB和mMTC。
Thumbnail
2025/04/11
這篇文章說明網路的七層模型、IP 位址、通訊埠、TCP/UDP 協定、HTTP 協定、HTTP 狀態碼以及 WebSocket,並解釋它們之間的關係與互動方式。文中包含許多圖表和範例,幫助讀者理解這些網路概念。
Thumbnail
2025/04/11
這篇文章說明網路的七層模型、IP 位址、通訊埠、TCP/UDP 協定、HTTP 協定、HTTP 狀態碼以及 WebSocket,並解釋它們之間的關係與互動方式。文中包含許多圖表和範例,幫助讀者理解這些網路概念。
Thumbnail
看更多
你可能也想看
Thumbnail
我原本今天沒有要寫其他,繼續寫我的美食,誰知發生這種事情呢? 我早上起來沒有看手機也沒有看信件,大概快十一點我才拿來看,就發現信件通知說我推特密碼被改掉了=A=
Thumbnail
我原本今天沒有要寫其他,繼續寫我的美食,誰知發生這種事情呢? 我早上起來沒有看手機也沒有看信件,大概快十一點我才拿來看,就發現信件通知說我推特密碼被改掉了=A=
Thumbnail
密碼,作為驗證使用者的身份基本手段,除了少部分的內容型網站用不到會員申請功能,大部分的網路服務都跟密碼息息相關。而密碼設定的規則,也算是業主常常喜歡發揮的地方。美國國家標準與技術研究院(NIST)的數位身分指南,其實有針對密碼強度做了很多版本的迭代,不過坊間最多看到的,很多還是停留在早期版本
Thumbnail
密碼,作為驗證使用者的身份基本手段,除了少部分的內容型網站用不到會員申請功能,大部分的網路服務都跟密碼息息相關。而密碼設定的規則,也算是業主常常喜歡發揮的地方。美國國家標準與技術研究院(NIST)的數位身分指南,其實有針對密碼強度做了很多版本的迭代,不過坊間最多看到的,很多還是停留在早期版本
Thumbnail
獲得2023年STOC研討會的最佳論文獎的密碼學研究,找到了資訊加密安全性與運算效率的理論最佳解,這將如何影響隱私權保護?
Thumbnail
獲得2023年STOC研討會的最佳論文獎的密碼學研究,找到了資訊加密安全性與運算效率的理論最佳解,這將如何影響隱私權保護?
Thumbnail
密碼更換的頻率取決於個人或網站的安全要求。基本上,建議定期更換密碼,通常是每三個月或每六個月。這種做法的目的是限制密碼被破解的風險,並防止長期未發現的安全漏洞。 然而,近年來有些安全專家提出了不同的觀點,他們建議僅在以下情況下強制使用者更換密碼: 當密碼洩漏或有據可查的安全事件發生。 當有證據
Thumbnail
密碼更換的頻率取決於個人或網站的安全要求。基本上,建議定期更換密碼,通常是每三個月或每六個月。這種做法的目的是限制密碼被破解的風險,並防止長期未發現的安全漏洞。 然而,近年來有些安全專家提出了不同的觀點,他們建議僅在以下情況下強制使用者更換密碼: 當密碼洩漏或有據可查的安全事件發生。 當有證據
Thumbnail
公司一位女同事因不慎把豆漿打翻在筆電,導致無法開機,換一台新電腦後,所有網路平台都得重登。「不過好在她網站都用同組密碼,不然就 GG 了。」行銷部同事 A 子很輕鬆地敘述事發經過,但身為資深工程師的我聽了直冒冷汗,想必這位女同事還沒受過密碼外洩的苦啊。
Thumbnail
公司一位女同事因不慎把豆漿打翻在筆電,導致無法開機,換一台新電腦後,所有網路平台都得重登。「不過好在她網站都用同組密碼,不然就 GG 了。」行銷部同事 A 子很輕鬆地敘述事發經過,但身為資深工程師的我聽了直冒冷汗,想必這位女同事還沒受過密碼外洩的苦啊。
Thumbnail
上網開帳號密碼規定一定要 16 碼,還要混合數字、符號和大小寫⋯⋯然後你罵:「煩死了,搞那麼複雜幹嘛?其他網站就沒有這麼囉嗦。」。 那是因為你不知道密碼有多容易破解。
Thumbnail
上網開帳號密碼規定一定要 16 碼,還要混合數字、符號和大小寫⋯⋯然後你罵:「煩死了,搞那麼複雜幹嘛?其他網站就沒有這麼囉嗦。」。 那是因為你不知道密碼有多容易破解。
Thumbnail
如何防止駭客及帳號被盜用時的處理方法 在網路即現實的時代,兩個月前我的臉書粉專帳號被盜用並且被移除管理權限,與臉書溝通求助將近四週卻仍舊沒被正視問題後,我在IG發布了這篇貼文,將整件事的經過寫了出來。 這件事情的發生,讓我更審慎地思考了很多網路財產和資訊安全的問題,因此決定寫下這篇文章,希望讓看到這
Thumbnail
如何防止駭客及帳號被盜用時的處理方法 在網路即現實的時代,兩個月前我的臉書粉專帳號被盜用並且被移除管理權限,與臉書溝通求助將近四週卻仍舊沒被正視問題後,我在IG發布了這篇貼文,將整件事的經過寫了出來。 這件事情的發生,讓我更審慎地思考了很多網路財產和資訊安全的問題,因此決定寫下這篇文章,希望讓看到這
Thumbnail
有鑑於接觸到的許多資訊從業人員對密碼學的認識不足,太低估密碼學,或太高估它的效果。這讓小弟有感而發,想做一些實務上的介紹。希望未來台灣或整個大中華區的資訊從業人員都不會對密碼學有奇怪的見解。 縮圖來源:https://www.pexels.com/zh-tw/photo/53207/
Thumbnail
有鑑於接觸到的許多資訊從業人員對密碼學的認識不足,太低估密碼學,或太高估它的效果。這讓小弟有感而發,想做一些實務上的介紹。希望未來台灣或整個大中華區的資訊從業人員都不會對密碼學有奇怪的見解。 縮圖來源:https://www.pexels.com/zh-tw/photo/53207/
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News