🔒 加密筆記 encryption.hk
[]

SSL/TLS憑證點運作?網站加密連線嘅背後原理

SSL/TLS憑證係點樣保護你嘅網站數據?呢篇文深入淺出講解對稱加密、非對稱加密、握手過程同憑證鏈嘅運作原理,幫你明白HTTPS連線背後嘅安全機制。

NaN年NaN月NaN日

當你瀏覽網站嘅時候,網址欄嗰個鎖頭圖示已經成為安全上網嘅基本標誌。根據Let’s Encrypt 2026年嘅統計數據,全球已經有超過4.5億個有效SSL/TLS憑證,而Google透明度報告更指出,透過HTTPS載入嘅網頁比例已經達到98%以上。呢啲數字背後,反映嘅係傳輸層安全協議(Transport Layer Security)已經成為現代網絡基建嘅核心支柱。但究竟呢個鎖頭係點樣保護緊你嘅資料?SSL/TLS憑證背後嘅加密機制又係點運作?等我哋一齊深入探討。

SSL同TLS有咩分別?從歷史講起

SSL(Secure Sockets Layer)係由Netscape喺1995年開發嘅加密協議,經過幾個版本演進之後,TLS(Transport Layer Security)喺1999年正式取代SSL成為業界標準。雖然大家習慣咁叫「SSL憑證」,但實際上而家所有加密連線都係用緊TLS協議,最新版本係TLS 1.3(2018年發布,2026年已經全面普及)。

TLS 1.3相比舊版有明顯改進:握手過程縮短到一次來回(1-RTT),移除咗唔安全嘅加密算法,同埋強制使用前向保密(Forward Secrecy)。簡單講,就算攻擊者日後破解咗伺服器嘅私鑰,都無法解密之前截取嘅通訊記錄。呢個設計對於保護長期敏感數據嚟講極之重要。

對稱加密同非對稱加密:兩種密鑰嘅角色

要理解SSL/TLS嘅運作,首先要明白兩種基本加密方式。

對稱加密係指加密同解密都用同一條密鑰,速度好快,適合大量數據傳輸。常見算法包括AES-256-GCM同ChaCha20-Poly1305。但問題係:點樣安全咁將呢條密鑰傳送俾對方?如果直接經網絡傳送,俾人截取嘅話就等如冇加密。

非對稱加密就解決咗呢個問題。佢使用一對密鑰:公鑰(Public Key)同私鑰(Private Key)。公鑰可以自由分發,用嚟加密數據;私鑰就由擁有者秘密保管,用嚟解密。由於私鑰永遠唔需要傳送,安全性大大提高。RSA同ECDSA就係常見嘅非對稱算法。不過非對稱加密運算速度慢,唔適合直接加密大量數據。

SSL/TLS嘅聰明之處,就係結合兩者嘅優點:用非對稱加密嚟安全交換一條臨時對稱密鑰(Session Key),之後嘅通訊就用呢條對稱密鑰進行高速加密。呢個過程就係TLS握手嘅核心。

TLS握手過程:逐步拆解加密連線嘅建立

當瀏覽器輸入 https:// 去連接網站,背後會觸發一連串精密嘅握手步驟。以TLS 1.3為例,整個過程大致如下:

第一步:Client Hello

客戶端(瀏覽器)向伺服器發送一個「打招呼」訊息,內容包括:支援嘅TLS版本、加密套件列表(Cipher Suites)、一個隨機數(Client Random),同埋密鑰交換參數。TLS 1.3嘅一個重要改進係,客戶端喺呢一步已經可以預先發送密鑰交換材料,大幅加快握手速度。

第二步:Server Hello同憑證驗證

伺服器回覆訊息,確認使用嘅TLS版本同加密套件,發送自己嘅隨機數(Server Random),同埋最重要嘅—SSL/TLS憑證。呢張憑證包含網站嘅公開金鑰、域名資料、發行機構(CA)嘅數位簽章等。

客戶端收到憑證之後,會進行嚴格嘅驗證程序:檢查憑證係咪由受信任嘅CA發出、域名係咪匹配、憑證係咪過期、同埋CA嘅數位簽章係咪有效。呢個驗證過程確保緊你連接緊嘅真係你想去嘅網站,而唔係假冒嘅釣魚網站。

第三步:密鑰交換同完成握手

雙方利用迪菲-赫爾曼密鑰交換(Diffie-Hellman,簡稱DH)或者橢圓曲線迪菲-赫爾曼(ECDHE)算法,各自計算出相同嘅對稱密鑰,而呢條密鑰從未喺網絡上直接傳送過。之後雙方發送「Finished」訊息,確認握手完成,之後所有通訊都會用呢條對稱密鑰加密。

整個TLS 1.3握手過程可以喺一次網絡來回(1-RTT)之內完成,如果係重複連接嘅話,更可以透過0-RTT機制達到接近零延遲嘅效果。

SSL/TLS憑證嘅結構同憑證鏈

一張SSL/TLS憑證唔單止係一個文件咁簡單,佢嘅內部結構包含多個關鍵欄位:

憑證唔係孤立存在嘅,而係形成一條信任鏈(Certificate Chain)。由網站憑證(葉憑證)開始,向上連接到中間CA憑證,最終追溯到根CA憑證。根CA憑證預先內置喺作業系統同瀏覽器嘅信任庫入面,形成整個公開金鑰基礎建設(PKI)嘅信任錨點。

瀏覽器驗證憑證嘅時候,會沿住呢條鏈逐層檢查簽章,直到搵到一個受信任嘅根憑證為止。如果任何一層驗證失敗—例如中間憑證過期、簽章唔匹配、或者憑證被吊銷—瀏覽器就會顯示安全警告。

加密套件同算法選擇:邊啲先係安全?

加密套件(Cipher Suite)定義咗TLS連線中使用嘅一組算法,包括密鑰交換、身份驗證、對稱加密同訊息認證碼(MAC)。一個典型嘅TLS 1.3加密套件例如 TLS_AES_256_GCM_SHA384,代表使用AES-256-GCM做對稱加密、SHA-384做雜湊函數。

揀選安全嘅加密套件好重要。2026年嘅最佳實踐建議:

隨住量子電腦嘅發展,業界亦開始推動後量子密碼學(Post-Quantum Cryptography,PQC)嘅標準化。NIST已經喺2024年發布咗首批PQC算法標準,預計未來幾年TLS協議會逐步整合呢啲新算法,為量子時代做好準備。

常見嘅SSL/TLS設定錯誤同安全風險

就算有咗憑證,唔正確嘅設定都會令加密連線形同虛設。以下係幾個常見問題:

混合內容(Mixed Content):網頁用HTTPS載入,但入面嘅圖片、腳本或者樣式表仲係用HTTP引入。瀏覽器會封鎖呢啲唔安全嘅資源,或者顯示警告。解決方法係將所有資源統一使用HTTPS,並配合內容安全策略(CSP)標頭強制執行。

憑證過期:忘記更新憑證係最常見嘅事故。Let’s Encrypt等自動化CA嘅出現,加上ACME協議嘅普及,令到自動續期成為標準做法。建議將憑證有效期設定得較短(例如90日),並設置自動續期提醒或者腳本。

使用過時嘅協議版本:仍然啟用TLS 1.0或1.1會令連線容易受到POODLE、BEAST等攻擊。伺服器應該只啟用TLS 1.2同TLS 1.3,明確禁用所有SSL同舊版TLS協議。

HSTS(HTTP嚴格傳輸安全):冇設定HSTS標頭嘅網站,用戶第一次訪問時仍然可能透過HTTP連接,遭受中間人攻擊。啟用HSTS並將域名提交到HSTS Preload列表,可以確保瀏覽器永遠使用HTTPS連接。

FAQ

SSL憑證同TLS憑證其實係咪同一樣嘢?

係,業界通常叫嘅「SSL憑證」實際上係指X.509格式嘅數位憑證,用於TLS協議嘅身份驗證同密鑰交換。SSL協議自1999年以嚟已經被TLS取代,最新嘅TLS 1.3(2018年標準化)同SSL已經完全唔相容,所以嚴格嚟講而家所有憑證都係「TLS憑證」。但因為歷史原因同市場習慣,「SSL憑證」呢個叫法一直沿用至今。

點解有時見到「免費SSL憑證」?佢哋同付費憑證有咩分別?

Let’s Encrypt自2016年推出以嚟,已經簽發咗超過30億張憑證(截至2026年數據),徹底改變咗憑證市場。免費憑證同付費憑證喺加密強度上完全一樣,都係使用相同嘅TLS協議同加密算法。主要分別在於:付費憑證通常提供組織驗證(OV)延伸驗證(EV)(雖然EV而家瀏覽器已經唔再特別標示)、更高額度嘅賠償保障、同埋技術支援服務。對於大部分網站嚟講,DV(域名驗證)級別嘅免費憑證已經足夠安全。

TLS 1.3比起TLS 1.2快幾多?實際使用有冇明顯分別?

TLS 1.3將握手時間由TLS 1.2嘅2-RTT(兩次來回)縮減到1-RTT,甚至0-RTT,理論上可以節省約100-300毫秒嘅延遲。對於一個網頁載入嚟講,呢個改進可能只佔整體時間嘅一小部分,但喺移動網絡或者高延遲環境下,效果會更加明顯。Cloudflare嘅實際測試數據顯示,TLS 1.3可以令HTTPS連線建立時間平均減少約30-40%。而且TLS 1.3移除咗唔安全嘅加密套件,強制使用前向保密,安全性都有顯著提升。

參考資料

tags: SSL/TLS原理網站加密HTTPS連線傳輸層安全網絡安全