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