我遇過網購的平台訂單的資訊被洩漏,就接到詐騙集團打電話說設定成每月定期付款,差點就衝去郵局 ATM 處理。好險有家人阻止,才免於被騙錢。又有一次是朋友 Facebook 被盜用發出借錢訊息給我,我還傻傻差點匯錢>﹏<
以上都是資訊安全存在生活中的實際案例,現在我來介紹到底密碼是怎麼被破解的,又有哪些方法可以預防。
你是否使用了太簡單的密碼呢?像是 123456、password、qwerty 這些密碼,可能都中了一種叫 Dictionary Attack 的攻擊!
簡介: 這種攻擊方法是駭客透過試用一整份包含常見密碼的字典來破解。例如,駭客會準備一份包含 "123456"、"password"、"iloveyou" 這類常見密碼的清單,然後用程式快速嘗試每個密碼,直到成功破解。來看一下你的密碼有沒有在榜上 Wikipedia:10,000 most common passwords
實際應用: 例如,某人用 "password" 當作電子郵件密碼,駭客使用自動化工具依照字典檔逐一嘗試,很容易就能登入受害者的帳戶。解決辦法是設計複雜的密碼,加入特殊符號及大小寫混合!
簡介: 駭客利用從其他網站洩漏的帳密資料,嘗試登錄你的其他帳戶。
實際應用: 假設你跟我一樣,在某購物網站用的帳號和密碼洩漏了,駭客就可能用這組密碼嘗試登入你的社交媒體帳號。因此,建議每個網站使用不同的密碼。
但很多密碼會不好記憶,這時候可以使用
簡介: 密碼管理員是一種工具,可以幫助安全儲存和自動填入密碼。
實際應用: 例如,你可以使用 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 演算法為例,哪怕只是改變一個字元,結果也會有天壤之別,這就是設計良好的演算法強大的地方!
更多 Hash 的延伸補充請參考我之前的文章
雜湊表(Hash Table)& 字典樹(Trie)的程式碼和補充 Malloc 用法
不過這樣駭客也有方法可以「查表」找出該 Hash 值,這就是 Rainbow Table
簡介: 駭客可能使用 Rainbow Table,這是一張對應密碼雜湊值的查表,通過這張表可以快速解碼雜湊值。
實際應用: 例如,某網站儲存的密碼是經過雜湊處理的 "abc123",結果是 "123123"。駭客利用 Rainbow Table 找到對應,快速破解密碼。為了應對,網站應結合 Salting 技術來增加破解難度。
簡介: Salting 是在密碼雜湊時加入隨機值,讓每個密碼的雜湊結果都獨一無二。
實際應用: 例如,兩位使用者用相同密碼 "123456" 註冊,透過 Salting 處理後,資料庫中儲存的雜湊值也完全不同。這有效阻止駭客用 Rainbow Table 破解密碼。
加入 Salting 後,每位使用者的密碼會加上一段隨機的鹽值,比如 "123456salt1" 和 "123456salt2"。最終雜湊值不同,即便是駭客也難以逆推出原始密碼。
例如:
談完密碼怎麼被儲存,我們來看常見的加密模式,以及加密怎麼被駭客反利用。
簡介: 端對端加密是指在通訊過程中,訊息從發送到接收的每個階段都被加密,只有接收者能解密。
實際應用: 像 Telegram 的 「焚毀訊息」功能,所有訊息傳輸過程都加密,確保其他人無法攔截或查看內容。
簡介: 全碟加密會將整台電腦的數據加密,而勒索軟體 (Ransomware) 利用相似技術鎖住你的資料。
實際應用: 例如,某天你開機後,發現所有檔案都被鎖住,駭客要求支付贖金才能解密。為了預防建議定期備份資料,也不要亂點來路不明的網站。
簡介:
實際應用: 對稱加密適合快速的內部資料保護;非對稱加密則常用於網路傳輸,例如電子郵件加密和數位簽章。
補充影片:Asymmetric Encryption - Simply explained
簡介: Passkey 是一種需要特定硬體設備(如 USB 安全鎖)進行解密的技術。
高安全性:私密金鑰永不離開設備,不會被伺服器端攻擊波及。
過去,如果假冒訂房網站的釣魚網站請你輸入帳號密碼,該組帳號密碼就會被駭客拿到。但現在 Passkey 只能在原始註冊的官方網站運作,只有官方網站有你註冊時的公鑰登入用戶資訊,所以大幅減少資料外洩的問題
使用便利性:
補充影片:What are passkeys? Explained in under 4 minutes
簡介: 模數運算是一種數學技術,用於快速計算餘數,常見於加密演算法中。
若有兩整數 a、b,兩者的差 (a–b) 可被另一正整數 n 整除,則 a、b 各自除以 n,所得餘數相同,此時稱「a、b 同餘模」,符號表示如下:
換句話說,a 和 b 相差一個 n 的倍數。a≡b(modn)
a≡b(modn)⟺n∣(a−b)⟺amodn=bmodn
實際應用: 例如,RSA 加密演算法中會用到模數運算來產生公鑰與私鑰。
加密演算法是取用模運算的特性,例如分解大數、計算餘數或循環性。以下是一些常見例子及其背後邏輯:(以下內容參考自 ChatGPT)
ab mod n 即使 b很大,也可以用有效算法快速計算,但很難反推出原數。
結語:你會用密碼管理員嗎?為什麼呢?
資訊安全是生活中的重要一環,你的每一步保護,都是對駭客的一大阻礙!如果你有什麼想法或問題,歡迎留言告訴我!