https對稱加密
⑴ Https協議詳解
本文內容主要講解Https協議,其他網路知識點作為理解Https協議的輔助。
首先,需要簡單知道網路協議的四個層次,即:網路介面層,網路層,傳輸層,應用層。
Http協議 是一種超文本傳輸協議,是客戶端瀏覽器與伺服器之前的 應用層 通信協議。
Http協議不提供數據加密,以明文的方式發送內容,容易被攻擊截取信息,不適合用於傳輸一些敏感信息。
Https協議 是以安全為目標的Http通道,在Http的基礎上加入SSL層,簡單來說就是Http協議的安全版。
Https協議的主要作用可以分為兩種:一種是建立一個信息安全通道,來保證數據傳輸的安全;另一種就是確認網站的真實性。
在進行詳細解釋Https之前,我們需要先簡單了解一些Https協議使用到賀橋返的關鍵技術。
對稱加密 使用加密和解密使用相同密鑰的加密演算法進行加密,也叫私鑰加密。常見的對稱加密有: DES , AES 等。
非對稱加密 與對稱加密不同,使用非對稱加密演算法進行加密,需要兩個密鑰,即公鑰和私鑰。公鑰和私鑰是成對出現的,在加密和解密的過程中使用不同的密鑰,所以也稱為公鑰加密。
數字摘要 採用單項Hash函數將需要加密的明文 摘要 成一串固定長度(128位)的密文,這個密文又稱為數字指紋。不同的明文摘生成的數字指紋總是不同的,而同樣的明文摘要生成的數字指紋必定一致。
數字摘要 是Https能確保數據完整性和防篡改的根本原因。
數字簽名 是對 非對稱加密 和 數字摘要 兩項技術的應用。
它將 摘要信息 用發送者的私鑰加密,與原文一起傳送給接收者。
接收者只有使用發送者的公鑰才能解密出被加密的 摘要信息 ;接著對接收到的原文用 數字摘要 生成 摘要信息 ;然後將兩個 摘要信息 進行對比。若相同,說明收到的原文是完整的,在傳輸過程中沒有被修改。因此,數字簽名能夠驗證數據的完整性。
SSL 是安全套接層,用以保障數據傳輸的安全,利用數據加密技術確保數據在傳輸過程中不會被截取。
SSL又可分為兩層:
SSL/TLS握手過程流程圖:
兩種恢復Session對消空話的方式: Session ID , Session ticket 。
客戶端和伺服器的每次對話都有一禪飢個編號。若對話中斷,重連時只要客戶端給出編號,並且伺服器有該編號的記錄,雙方就可以使用已有的 對話密鑰 重新建立連接,而不用重新走握手流程重新連接。
客戶端發送一個伺服器在上次對話中發送過來的Session ticket,其中包括對話的主要信息,如:對話密鑰和加密方法等。這個Session ticket是加密的,只有伺服器才能解密,伺服器在解密Session ticket後就不用重新生成對話密鑰了。
參考資料:
⑵ HTTPS 到底加密了些什麼內容
https其實是有兩部分組成:http + SSL / TLS,也就是在http上又加了一層處理加密信息的模塊。服務端和客戶端的信息傳輸都會通過TLS進行加密,所以傳輸的數據都是加密後的數據。具體是如何進行加密,解密,驗證的,且看下圖。
1. 客戶端發起https請求
客戶端發起https請求就是指用戶在瀏覽器里輸入一個https網址,然後連接到server的443埠。
2. 伺服器端的配置
採用https協議的伺服器必須要有一套SSL數字證書,需要向CA組織(如WoSign沃通CA)申請。這套SSL證書其實就是一對公鑰和私鑰。如果對公鑰和私鑰不太理解,可以想像成一把鑰匙和一個鎖頭,只是全世界只有你一個人有這把鑰匙,你可以把鎖頭給別人,別人可以用這個鎖把重要的東西鎖起來,然後發給你,因為只有你一個人有這把鑰匙,所以只有你才能看到被這把鎖鎖起來的東西。
3. 傳送證書
這個證書其實就是公鑰,只是包含了很多信息,如證書的頒發機構,證書過期時間等等。
4. 客戶端解析證書
這部分工作是有客戶端的TLS來完成的,首先會驗證公鑰是否有效,比如頒發機構,過期時間等等,如果發現異常,則會彈出一個警告框,提示證書存在問題。如果證書沒有問題,那麼就生成一個隨機值。然後用證書對該隨機值進行加密。就好像上面說的,把隨機值用鎖頭鎖起來,這樣除非有鑰匙,不然看不到被鎖住的內容。
5. 傳送加密信息
這部分傳送的是用SSL證書加密後的隨機值,目的就是讓服務端得到這個隨機值,以後客戶端和服務端的通信就可以通過這個隨機值來進行加密解密了。
6. 服務段解密信息
服務端用私鑰解密後,得到了客戶端傳過來的隨機值(私鑰),然後把內容通過該值進行對稱加密。所謂對稱加密就是,將信息和私鑰通過某種演算法混合在一起,這樣除非知道私鑰,不然無法獲取內容,而正好客戶端和服務端都知道這個私鑰,所以只要加密演算法夠彪悍,私鑰夠復雜,數據就夠安全。
7. 傳輸加密後的信息
這部分信息是服務段用私鑰加密後的信息,可以在客戶端被還原。
8. 客戶端解密信息
客戶端用之前生成的私鑰解密服務段傳過來的信息,於是獲取了解密後的內容。整個過程第三方即使監聽到了數據,也束手無策。
⑶ HTTPS加密(握手)過程
第一步散弊純:客戶端會發起一個hello client請求,請求中會攜帶TLS版本信息、加密套件候選列表、壓縮演算法候選列表以及一個隨機數。
第二步:服務端收到請求以後也會給客戶端發一個server hello請求,請求中會告訴客戶端它選擇的協議版本、加密套件、壓縮演算法以及一個隨機數。
第三步:服務端會給客戶端發一個server certificate請求,裡麵包含服務端的數字證書,用於客戶端進行校驗。
第四步:服務端會給客戶端發一個server hello done告訴客戶端信息已發送完畢。
第五步:客戶端收到證書以後進行校驗獲取到服務端的公鑰。
第六步:客戶端會將自己的數字證書發給服務端用於校驗。
第七步:客戶端計算出一個隨機數pre-master,然後用公鑰進行加密發送給伺服器端。
第八步:服務端和客卜模戶端都根據自己的隨機數+對端的隨機數+pre-master算出對稱密沖咐鑰,然後再根據對稱密鑰進行通信。
⑷ https的加密機制,怎麼加密
HTTPS協議在通信時,首先會採用公鑰加密的方式,把密鑰進行公鑰加密,然後傳輸給伺服器,伺服器使用私鑰解密出密鑰後,客戶端和伺服器即可建立起安全的訪問通道。在接下來的通信就會採用速胡納度更快的共享密笑漏鑰加密的方式進行數據傳輸。這樣HTTPS協議就既擁有公鑰加密的安全性,同時也擁有了通用加密的高速的兩個優點。
對稱加密:加密和解密用同一個密鑰,客戶端對數據加密,服務端解密拿到數據
非對稱加密:使用公鑰和私鑰,公鑰加密的內容只能私鑰解開,私鑰加密的內容所有公鑰都能解開;私鑰只保存在伺服器端,公鑰可以發送給所有客戶端,可以保證客戶端通過公鑰加密的內容中間褲升沒人無法破解
⑸ HTTPS 加密了什麼內容
一般來說,HTTPS 主要用途有三個:一是通過證書等信息確認網站的真實性;二是建立加密的信息通道;三是數據內容的完整性。
那麼加密的信息通道又加密了哪些信息呢?
簽發證書的 CA 中心會發布一種權威性的電子文檔——數字證書,它可以通過加密技術(對稱加密與非對稱加密)對我們在網上傳輸的信息進行加密,比如我在 Pornhub 上輸入:
賬號:cbssfaw
密碼:123djaosid
可是這個數據被黑客攔截盜竊了,那麼加密後,黑客得到的數據可能就是這樣的:
賬號:…≤˙
密碼:§
最後一個就是驗證數據的完整性,當數據包經過無數次路由器轉發後會發生數據劫持,黑客將數據劫持後進行篡改,比如植入羞羞的小廣告。開啟HTTPS後黑客就無法對數據進行篡改,就算真的被篡改了,我們也可以檢測出問題。
對稱加密與非對稱加密
對稱加密
對稱加密是指加密與解密的使用同一個密鑰的加密演算法。小編初中的時候傳紙條使用了同一套加密密碼,所以我用的加密演算法就是對稱加密演算法。
目前常見的加密演算法有:DES、AES、IDEA等
非對稱加密
非對稱加密使用的是兩個密鑰,公鑰與私鑰,我們會使用公鑰對網站賬號密碼等數據進行加密,再用私鑰對數據進行解密。這個公鑰會發給查看網站的所有人,而私鑰是只有網站伺服器自己擁有的。
目前常見非對稱加密演算法:RSA,DSA,DH等。
HTTPS=數據加密+網站認證+完整性驗證+HTTP
通過上文,我們已經知道,HTTPS 就是在 HTTP 傳輸協議的基礎上對網站進行認證,給予它獨一無二的身份證明,再對網站數據進行加密,並對傳輸的數據進行完整性驗證。
HTTPS 作為一種加密手段不僅加密了數據,還給了網站一張身份證。
實現HTTPS,可以淘寶:Gworg 獲取HTTPS加密協議。
⑹ https如何進行加密傳輸
HTTPS在傳輸數據之前需要客戶端(瀏覽器)與服務端(網站)之間進行一次握手,在握手過程中將確立雙方加密傳輸數據的密碼信息。TLS/SSL協議不僅僅是一套加密傳輸的協議,更是一件經過藝術家精心設計的藝術品,TLS/SSL中使用了非對稱加密,對稱加密以及HASH演算法。握手過程的具體描述如下:
1.瀏覽器將自己支持的一套加密規則發送給網站。
2.網站從中選出一組加密演算法與HASH演算法,並將自己的身份信息以證書的形式發回給瀏覽器。證書裡麵包含了網站地址,加密公鑰,以及證書的頒發機構等信息。
3.瀏覽器獲得網站證書之後瀏覽器要做以下工作:
a) 驗證證書的合法性(頒發證書的機構是否合法,證書中包含的網站地址是否與正在訪問的地址一致等),如果證書受信任,則瀏覽器欄裡面會顯示一個小鎖頭,否則會給出證書不受信的提示。
b) 如果證書受信任,或者是用戶接受了不受信的證書,瀏覽器會生成一串隨機數的密碼,並用證書中提供的公鑰加密。
c) 使用約定好的HASH演算法計算握手消息,並使用生成的隨機數對消息進行加密,最後將之前生成的所有信息發送給網站。
4.網站接收瀏覽器發來的數據之後要做以下的操作:
a) 使用自己的私鑰將信息解密取出密碼,使用密碼解密瀏覽器發來的握手消息,並驗證HASH是否與瀏覽器發來的一致。
b) 使用密碼加密一段握手消息,發送給瀏覽器。
5.瀏覽器解密並計算握手消息的HASH,如果與服務端發來的HASH一致,此時握手過程結束,之後所有的通信數據將由之前瀏覽器生成的隨機密碼並利用對稱加密演算法進行加密。
這里瀏覽器與網站互相發送加密的握手消息並驗證,目的是為了保證雙方都獲得了一致的密碼,並且可以正常的加密解密數據,為後續真正數據的傳輸做一次測試。另外,HTTPS一般使用的加密與HASH演算法如下:
非對稱加密演算法:RSA,DSA/DSS
對稱加密演算法:AES,RC4,3DES
HASH演算法:MD5,SHA1,SHA256