1. 程式人生 > >TLS/SSL工作原理

TLS/SSL工作原理

    HTTPS協議的主要功能基本都依賴於TLS/SSL協議,本節分析TLS/SSL協議工作原理。
    TLS/SSL的功能實現主要依賴於三類基本演算法:雜湊函式 Hash、對稱加密和非對稱加密,其利用非對稱加密實現身份認證和金鑰協商,對稱加密演算法採用協商的金鑰對資料加密,基於雜湊函式驗證資訊的完整性。  


雜湊函式Hash
    常見的有 MD5、SHA1、SHA256,該類函式特點是函式單向不可逆、對輸入非常敏感、輸出長度固定,針對資料的任何修改都會改變雜湊函式的結果,用於防止資訊篡改並驗證資料的完整性;
    在資訊傳輸過程中,雜湊函式不能單獨實現資訊防篡改,因為明文傳輸,中間人可以修改資訊之後重新計算資訊摘要,因此需要對傳輸的資訊以及資訊摘要進行加密;
對稱加密
    常見的有 AES-CBC、DES、3DES、AES-GCM等,相同的金鑰可以用於資訊的加密和解密,掌握金鑰才能獲取資訊,能夠防止資訊竊聽,通訊方式是1對1;
    對稱加密的優勢是資訊傳輸1對1,需要共享相同的密碼,密碼的安全是保證資訊保安的基礎,伺服器和 N 個客戶端通訊,需要維持 N 個密碼記錄,且缺少修改密碼的機制;
非對稱加密
    即常見的 RSA 演算法,還包括 ECC、DH 等演算法,演算法特點是,金鑰成對出現,一般稱為公鑰(公開)和私鑰(保密),公鑰加密的資訊只能私鑰解開,私鑰加密的資訊只能公鑰解開。因此掌握公鑰的不同客戶端之間不能互相解密資訊,只能和掌握私鑰的伺服器進行加密通訊,伺服器可以實現1對多的通訊,客戶端也可以用來驗證掌握私鑰的伺服器身份。
    非對稱加密的特點是資訊傳輸1對多,伺服器只需要維持一個私鑰就能夠和多個客戶端進行加密通訊,但伺服器發出的資訊能夠被所有的客戶端解密,且該演算法的計算複雜,加密速度慢。
    結合三類演算法的特點,TLS的基本工作方式是,客戶端使用非對稱加密與伺服器進行通訊,實現身份驗證並協商對稱加密使用的金鑰,然後對稱加密演算法採用協商金鑰對資訊以及資訊摘要進行加密通訊,不同的節點之間採用的對稱金鑰不同,從而可以保證資訊只能通訊雙方獲取。