iT邦幫忙

2024 iThome 鐵人賽

DAY 5
0

不論在駭客還是防禦者的角度,都環繞著加密及解密,對於駭客來說,加密是一個挑戰——如何突破那些看似無懈可擊的保護。而對於防禦者來說,加密技術則是防線上的盾牌,保護資訊不被第三方竊取或篡改。

何謂加密

加密(Encryption) 是將可讀的資料(明文)轉換為無法辨識的編碼(密文)的過程,而解密(Decryption)則是將密文還原為明文的過程。這樣,即便數據在傳輸過程中被攔截,攻擊者也無法理解數據內容,除非他們擁有解密所需的密鑰。
而根據密鑰的使用方式可以分為兩大類:對稱加密和非對稱加密。

對稱加密(Symmetric Encryption)

使用同一把密鑰加密與解密。這種方法的速度快,適合處理大量資料。但主要問題在密鑰的傳遞:如果攻擊者攔截了密鑰,便可以輕易解密所有數據。

常見的算法:

  • AES (目前最廣泛使用的)
  • DES (舊算法,現已不再使用)

非對稱加密(Asymmetric Encryption)

使用兩把密鑰:一把公鑰(Public Key)用來加密,另一把私鑰(Private Key)用來解密。這樣密鑰不必在不安全的網絡中傳輸,從而提高了安全性。

常見的算法:

  • RSA (依賴大數分解,密鑰長度較長,計算開銷較大)
  • ECC (密鑰長度較短,提供相同安全性的條件下計算更高效,適合資源有限的設備和新興的加密應用,如區塊鏈。)

數位簽章(Digital Signature)

有時候為了避免駭客藉由公鑰傳送病毒內容竊取私鑰,傳送方會使用私鑰對訊息的Hash簽名,用來確認接收方收到的真的是由傳送方傳來的。

加密的應用

  1. HTTPS
    如前幾篇提到的,「https://」開頭的網站使用了 SSL/TLS 加密技術來保護我們與網站之間的通信。無論輸入的密碼或個人資訊,都會被加密傳輸,防止第三方竊聽。
  2. VPN
    虛擬私人網絡利用加密技術來保護我們與遠端伺服器之間的數據傳輸,防止有心人士攔截或竄改資料。
  3. 電子郵件加密

駭客怎麼用?

  1. 對付弱的加密算法可以直接暴力破解或使用字典攻擊
  2. 有時候攻擊性的程式會被防火牆擋下,可以利用加密讓一些防禦工事忽略
  3. 利用社會工程攻擊竊取密鑰

雜湊(Hashing)

一種將任意長度的資料轉換為固定長度的數字串(雜湊值)的過程。這些雜湊值類似於資料的「指紋」,每個資料集都有一個唯一的雜湊值。與加密不同,雜湊是一個單向過程,即它不允許將雜湊值轉換回原始資料。使他在某些特定應用中非常有用。

用途

  1. 數據完整性驗證:
  • 檔案驗證:下載大檔案時,網站會提供一個檔案的雜湊值。下載後可以用相同的雜湊算法計算下載的檔案的雜湊值,確保檔案在傳輸過程中未被篡改。
  • 資料庫檢查:系統可以用雜湊值來確認資料是否被篡改,例如驗證數據庫中的記錄是否被未經授權的人更改過。
  1. 密碼儲存:
  • 安全存儲:在用戶登錄時,系統通常不直接儲存密碼,而是儲存密碼的雜湊值。當用戶輸入密碼時,系統會將輸入的密碼雜湊後與儲存的雜湊值比對,以驗證密碼是否正確。這樣,即使資料庫被洩漏,攻擊者也無法直接獲得用戶的實際密碼。
  1. 數據索引:
    快速搜索:在資料結構中,如雜湊表(Hash Table),雜湊值可以用來快速定位資料位置,從而加快數據搜索速度。

常見的算法

  • SHA-1 (已漸漸被淘汰)
  • SHA-256

特性

  • 單向性:無法由雜湊值還原出原始數據。
  • 固定長度:無論輸入數據多大,雜湊值的長度是固定的。
  • 唯一性:不同的輸入數據應該產生不同的雜湊值。

駭客怎麼用?

  1. 嘗試使用彩虹表
  2. 碰撞攻擊

上一篇
Day4 HTTP request & API 程式間溝通的開端
下一篇
Day6 沙盒的世界-淺談虛擬機
系列文
駭客新手指南:從程式小白轉職成初級駭客30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言