昨天時間趕,想著先發一個大綱然後再改
沒想到鐵人的文章沒辦法跨天更新😅
所以我今天來補昨天的筆記了
今天來介紹Nwtworking系列的第四間房間
room 4.Networking Secure Protocols
介紹
網路協定很多,但隨著安全需求增加,出現了對應的加密版本(HTTPS、SMTPS、IMAPS…)
基本觀念:
- 明文傳輸 -> 容易被攔截
- 加密傳輸 -> 提高安全性
TLS(Transport Layer Security)
-
功能:在應用層和傳輸層之間提供加密,確保資料傳輸的機密性、完整性、身份驗證
-
用途:HTTPS、加密郵件協定(SMTPS、IMAPS)、VPN 等
-
運作層級:位於 OSI 傳輸層(4 Layer)
-
提供保障:
-
機密性:第三方無法讀取內容
-
完整性:內容不會被竄改
-
身份驗證:伺服器(或用戶端)可驗證身分
幾乎所有重要服務都強制加密,避免明文外洩;網路銀行、線上購物、Email 若是沒有 TLS 幾乎不可能安全運行
TLS/SSL憑證
TLS憑證(又稱SSL憑證或數位憑證)是一個安裝在伺服器上的檔案,用於在網頁瀏覽器與網站伺服器之間建立安全的加密連線
功能:
-
伺服器身份驗證:憑證由受信任的憑證授權單位(CA)頒發,包含網域擁有者的資訊和伺服器的公開金鑰,用於驗證網站伺服器的身份,確保使用者連接的是真實的網站
-
資料加密:憑證啟用TLS協定,對瀏覽器與伺服器之間的資料進行加密傳輸,防止第三方截取或篡改敏感資訊
-
資料完整性保護:確保傳輸的資料在傳送過程中不會丟失或遭到修改
簽發流程:
- 伺服器建立 CSR(憑證簽署請求),內含公鑰與域名資訊
- 將 CSR 送至 **CA(憑證授權單位)**進行驗證與簽署
-
CA 簽發憑證 -> 伺服器安裝此憑證
-
用戶端(瀏覽器)驗證:透過內建的「可信任 CA 清單」判斷此憑證是否可靠
就像是日常生活中用的官方印章,印章代表憑證,文件代表網站,信任來自於簽發單位(CA)的公信力
HTTPS(HTTP Secure)
HTTP
- 依賴 TCP
- 預設連接埠:80
- 所有流量為明文傳輸容易被攔截與監控
- Wireshark 可直接讀取請求與回應內容
流程(DNS 解析之後):
- 建立 TCP 三次握手
- 使用 HTTP 通訊(例如:GET / HTTP/1.1)
- 結束連線(TCP 四次揮手)
HTTPS
- 功能:在 HTTP 基礎上加上 TLS/SSL 加密
- 埠號:TCP 443
- 特點:保護瀏覽器和網站間的資料交換不被竊聽或竄改
- 應用:所有現代網站(登入、付款、個資)
-
功能:HTTPS 結合 HTTP 與 TLS
- 提供:
-
加密:保護資料機密性
-
驗證:確認伺服器身份
-
完整性:確保資料在傳輸過程中未被篡改
-
攔截:攻擊者(例如中間人攻擊)只能看到加密的封包,無法直接查看內容
流程(DNS 解析後):
- TCP 三次握手:建立可靠的 TCP 連線(三次握手:SYN、SYN-ACK、ACK)。
- TLS 會話建立:
- 客戶端與伺服器協商 TLS 版本和加密套件
- 伺服器提供證書進行身份驗證
- 進行金鑰交換(例如 Diffie-Hellman 或 RSA),建立共享會話金鑰
- 建立安全的加密通道
- HTTP 傳輸:HTTP 請求與回應通過加密的 TLS 通道傳輸
TLS/SSL 可以在不修改 TCP / IP 協定、不改 HTTP 協定本身的情況下,直接提供加密
總結:HTTP 跑在 TCP 上,HTTPS 只是讓 HTTP 多了一層 TLS 加密
SMTPS、POP3S 和 IMAPS
- SMTP Secure (SMTPS):加密的郵件發送,常用 TCP 465 或 587
- POP3S:加密的郵件下載,TCP 995
- IMAPS:加密的郵件同步,TCP 993
這些就是「傳統郵件協定」+「TLS」
SSH(Secure Shell)
**SSH(Secure Shell)**是一種安全遠端連線協議,OpenSSH 是其最廣泛使用的開源實現
-
目的:替代明文的 Telnet,提供安全的遠端登入與遠端指令執行
-
功能:安全的遠端登入與操作,比 Telnet 更安全
-
埠號:TCP 22(Telnet 為 23)
-
特點:加密傳輸,支援金鑰登入,常用於伺服器管理
OpenSSH優勢:
-
安全認證
- 多種認證方式:密碼認證、公鑰認證、雙重認證(2FA)
- 公鑰登入可免密碼且更安全(私鑰保管好就能避免密碼竊取)
-
機密性
- 端對端加密,防止中途竊聽(sniffing)即使在不安全的網路(如公共 Wi-Fi)上,資料也能安全傳輸
-
完整性
- 加密同時確保封包未被竄改,即使攻擊者攔截封包,也無法修改內容而不被檢測到
-
主機金鑰警示
- 當伺服器金鑰變更時會提示,減少中間人攻擊風險(但也可能出現誤警示,需判斷)
-
隧道(tunneling)
- 可將其他協定流量透過 SSH 隧道轉發(local/remote/ dynamic port forwarding),實現類似 VPN 的用途或安全代理
-
X11 轉發
- 允許在遠端啟動圖形程式並在本機顯示(例如 ssh -X remote)
SFTP 和 FTPS
-
SFTP(SSH File Transfer Protocol):基於 SSH 的安全檔案傳輸
-
FTPS(FTP Secure):在 FTP 上加入 TLS/SSL 加密
差異:SFTP 完全走 SSH
FTPS 則是「FTP + TLS」
VPN(Virtual Private Network)
-
功能:在公共網路上建立安全「加密通道」
-
常見協定:IPsec、OpenVPN、WireGuard
-
應用:遠端辦公、翻牆、保護隱私、防止流量被竊聽
今天算是偷個懶,明天看有沒有辦法做多一點吧😶