De-yu's Note
  • Deyu Notebook
  • Side Project
    • Stock
    • ChatBox
    • SnowCraft
    • ScrollBar
  • 架構問題
    • 解決 RTK Query data 為 undefined 的實務做法
    • 透過 xstate 解決UI 狀態問題
  • 技術觀點
    • 為什麼需要 store
    • Router 作用
    • react 和 next.js 差異
    • monoRepo vs Multiple Repo
  • Performance
    • React 優化
  • JS Coding
    • Curry
    • Debounce
    • Throttle
  • map
  • memo()
  • Promise 實作
  • Promise Function
  • Testing
    • 使用 Jest 、 React Testing Library 、MSW 建立測試環境
  • Miscellaneous
    • Event Loop
    • Browser
    • Code Review
    • Storage
  • AMD 、 CommonJS 、 ES modules
  • JWT
  • Next.js
  • 用過的 module
  • Internet
    • UDP
  • TCP/IP
  • SSL TLS
  • HTTP
  • AI 工作流
    • Page 1
Powered by GitBook
On this page

SSL TLS

SSL TLS


SSL: Secure Sockets Layer 
TLS: Transport Layer Security
是用來保障網路通信安全的加密協定,它們主要用於保護數據在網路上的傳輸,防止數據在傳輸過程中被攔截、竄改或竊聽。

SSL 是早期的加密協定,現已被淘汰。
TLS 是 SSL 的改進版本,當前普遍使用的是 TLS 1.2 和 TLS 1.3。

主要功能
1.協商加密算法和密鑰: 客戶端(如瀏覽器)和伺服器會進行一個「握手」(handshake)過程,協商出雙方能夠支持的加密算法以及交換對稱加密所需的密鑰。
2.身份驗證: 伺服器會向客戶端提供數位憑證(通常是由可信任的第三方 CA 颁发的 SSL 憑證),以證明伺服器的身份。
3.加密通信: 當握手過程完成後,客戶端和伺服器之間的數據傳輸就會使用加密算法進行加密,確保傳輸中的數據保密和完整性。

TLS 憑證


由憑證認證機構 (CA) 管理並銷售

內容包含
公鑰: client 密鑰。
憑證持有者身份信息
憑證發布機構的簽名
有效期: 開始日期和結束日期

TLS 握手


完成 TCP 握手後

client 發送支持加密的選項給 server 端
server 選擇加密方式和憑證傳送給 client 端

雙方確認好加密方式後
client 端生成對稱密鑰用 server 公鑰進行加密
加密後傳送給 server 端 到目前為止資料都使用明文形式發送

server 端解出 client 端的對稱密鑰
通過 MAC 驗證 並給 client 端發送加密的 Finished 消息

client 端用生成的對稱密鑰解密 驗證 MAC 
一切順利後建立通道開始發送資料

MAC: 訊息鑑別碼(英語:Message authentication code,縮寫為MAC),又譯為訊息認證碼、檔案訊息鑑別碼、消息認證碼、資訊認證碼,是經過特定演算法後產生的一小段資訊,檢查某段訊息的完整性,以及作身分驗證

PreviousTCP/IPNextHTTP

Last updated 28 days ago