今天我們要來接續前天的內容講TLS,這是網路安全中非常重要的的一部份,幾乎所有我們生活中使用到的安全連線(HTTPS、VPN、Email、API傳輸)都會需要它。因此我們若是現在不學它的話,之後在一些滲透測試或是Web攻擊都會卡住。不過我們在正式的開始學之前還是要補一些東西,例如一些基礎的加密學以及數位憑證的基礎觀念。
在 TLS 中,主要會用到以下四種加密技術,分別是對稱式加密、非對稱式加密、雜湊函數、跟HMAC
1.對稱式加密(Symmetric Encryption)
2.非對稱式加密(Asymmetric Encryption)
3.雜湊函數(Hash Function)
4.HMAC(Hash-based Message Authentication Code)
1.數位憑證(Digital Certificate)
數位憑證就像「網站的身分證」
它包含了
2.憑證頒發機構(Certificate Authority, CA)
3.公鑰基礎設施(PKI)
整個憑證管理制度,包含:
4.為什麼TLS需要憑證?
TLS的全名為Transport Layer Security,是一種用來加密網路傳輸的協議,它負責確保加密、完整性以及身分驗證,這三者分別負責什麼呢?加密負責第三方無法隨便偷看資料;完整性則負責資料不會被中途竄改;身分驗證則確認連的是正確的網站非中間人假冒。
因目前TLS 1.0/1.1存在已知漏洞已停用,故我們以1.2跟1.3進行比較
TLS1.2
TSL1.3
前向保密範例:
TLS1.2+RSA:過去的流量可以被解密。
TLS1.3+ECDHE:過去流量依然安全,因為金鑰是臨時的。
握手階段
1.ClientHello
2.ServerHello
3.伺服器憑證(Certificate)
4.金鑰交換(Key Exchange)
5.產生會話金鑰(Session Key)
6.完成(Finished)
資料傳輸階段
所有應用層資料(HTTP、SMTP…)都會被對稱加密後傳輸
每個封包還會帶有 MAC或 AEAD驗證碼,防止中間人篡改
沒有TLS會怎樣?
1.公用Wi-Fi攻擊者可直接竊聽帳號密碼
2.攻擊者可竄改流量植入惡意程式碼
TLS 錯誤設定的風險
1.支援過時版本 (TLS1.0/1.1) → 已知漏洞
2.使用弱加密(RC4、3DES、CBC without MAC)
3.憑證過期、使用自簽憑證
4.伺服器/程式不檢查憑證 → 容易被 MITM 假冒
1.中間人攻擊(MITM)
若使用者忽略憑證警告,攻擊者可用假憑證攔截流量
防禦:正確驗證憑證、HSTS、憑證釘選(Pinning)
2.降級攻擊(Downgrade Attack)
攻擊者迫使雙方使用舊版本(如SSL3.0)
防禦:TLS_FALLBACK_SCSV、強制停用舊協議
3.Padding Oracle、BEAST、POODLE(針對舊版CBC模式)
防禦:使用 TLS 1.2/1.3 與 AEAD 模式(AES-GCM、ChaCha20-Poly1305)
今天我們學了基礎加密法、網路憑證觀念以及基礎的TLS,明天我們將會進行TLS的實作