什么是https?
什么是https?HTTPS代表超文本傳輸協議安全。它是用于保護兩個系統(例如瀏覽器和Web服務器)之間的通信的協議。下圖說明了通過http......
-------------------
SSL如何工作?
正如您在上一章中所了解到的,https使用SSL協議通過傳輸加密數據來保護通信。在深入了解之前,了解SSL的工作原理。
SSL從根本上適用于以下概念:
不對稱密碼學
對稱密碼學
不對稱密碼學
非對稱加密(也稱為非對稱加密或公鑰加密)使用與數學相關的密鑰對來加密和解密數據。在密鑰對中,與對通信感興趣的任何人共享一個密鑰。這稱為公鑰。密鑰對中的另一個密鑰保密,稱為私鑰。
這里,密鑰指的是數學值,并且是使用加密或解密數據的數學算法創建的。
在非對稱加密中,數據可以使用私鑰進行簽名,私鑰只能使用一對中的相關公鑰進行解密。
SSL使用非對稱加密來啟動通信,這稱為SSL握手。最常用的非對稱密鑰加密算法包括EIGamal,RSA,DSA,橢圓曲線技術和PKCS。
對稱密碼學
在對稱密碼術中,只有一個密鑰可以加密和解密數據。發送方和接收方都應該擁有此密鑰,只有它們才知道。
初始握手完成后,SSL使用會話密鑰進行對稱加密。最廣泛使用的對稱算法是AES-128,AES-192和AES-256。
通過SSL進行數據傳輸
SSL協議使用非對稱和對稱加密來安全地傳輸數據。下圖說明了SSL通信的步驟:
如上圖所示,瀏覽器與Web服務器(或任何其他兩個系統)之間的SSL通信主要分為兩個步驟:SSL握手和實際數據傳輸。
SSL握手
SSL上的通信始終以SSL握手開始。SSL握手是一種非對稱加密技術,允許瀏覽器在實際數據傳輸開始之前驗證Web服務器,獲取公鑰并建立安全連接。
下圖說明了SSL握手涉及的步驟:
讓我們理解上面的步驟:
客戶端發送“客戶端問候”消息。這包括客戶端的SSL版本號,密碼設置,特定于會話的數據以及服務器使用SSL與客戶端通信所需的其他信息。
服務器以“服務器hello”消息響應。這包括服務器的SSL版本號,密碼設置,特定于會話的數據,帶有公鑰的SSL證書以及客戶端通過SSL與服務器通信所需的其他信息。
客戶端從CA(證書頒發機構)驗證服務器的SSL證書并驗證服務器。如果身份驗證失敗,則客戶端拒絕SSL連接并引發異常。如果驗證成功,則繼續執行步驟4。
客戶端創建會話密鑰,使用服務器的公鑰對其進行加密,然后將其發送到服務器。如果服務器已請求客戶端身份驗證(主要是服務器到服務器通信),則客戶端將自己的證書發送到服務器。
服務器使用其私鑰解密會話密鑰,并將確認發送到使用會話密鑰加密的客戶端。
因此,在SSL握手結束時,客戶端和服務器都具有有效的會話密鑰,它們將用于加密或解密實際數據。在此之后,將不再使用公鑰和私鑰。
實際數據傳輸
客戶端和服務器現在使用共享會話密鑰來加密和解密實際數據并進行傳輸。這是在兩端使用相同的會話密鑰完成的,因此,它是對稱密碼術。實際的SSL數據傳輸使用對稱加密,因為與非對稱加密相比,它很容易并且消耗的CUP消耗更少。
因此,SSL基本上使用非對稱密碼術和對稱密碼術。在現實生活中實現SSL通信涉及某些基礎設施,稱為公鑰基礎設施。
公鑰基礎設施
該公鑰基礎設施(PKI)是一組創建,管理,分發,使用,儲存,并吊銷數字證書和管理公共密鑰加密需要的角色,政策和程序。
PKI包括以下元素:
證書頒發機構:對個人,計算機和其他實體的身份進行身份驗證的權限。
注冊機構:代表根CA為特定用途頒發證書的從屬CA.
SSL證書:包含公鑰和其他信息的數據文件。
證書管理系統:存儲,驗證和撤銷證書的系統。