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