三、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
其中非對稱加密演算法用於在握手過程中加密生成的密碼,對稱加密演算法用於對真正傳輸的資料進行加密,而hash演算法用於驗證資料的完整性。由於瀏覽器生成的密碼是整個資料加密的關鍵,因此在傳輸的時候使用了非對稱加密演算法對其加密。非對稱加密演算法會生成公鑰和私鑰,公鑰只能用於加密資料,因此可以隨意傳輸,而**的私鑰用於對資料進行解密,所以**都會非常小心的保管自己的私鑰,防止洩漏。
演算法簡介:
rsa:
rsa公鑰
加密演算法
是2023年由
羅納德·李維斯特
(ron rivest)、
阿迪·薩莫爾
(adi shamir)和
倫納德·阿德曼
(leonard adleman)一起提出的。當時他們三人都在麻省理工學院工作。rsa就是他們三人姓氏開頭字母拼在一起組成的。
rsa演算法基於乙個十分簡單的數論事實:將兩個大素數相乘十分容易,但是想要對其乘積進行因式分解卻極其困難,因此可以將乘積公開作為加密金鑰。 在
公開金鑰密碼體制
中,加密金鑰(即公開金鑰)pk是公開資訊,而解密金鑰(即秘密金鑰)sk是需要保密的。
加密演算法
e和解密演算法d也都是公開的。雖然秘密金鑰sk是由公開金鑰pk決定的,但卻不能根據pk計算出sk。
一般推薦使用1024位。這就使加密的計算量很大。為減少計算量,在傳送資訊時,常採用傳統加密方法與
公開金鑰
加密方法相結合的方式,即資訊採用改進的des或idea對話金鑰加密,然後使用rsa金鑰加密對話金鑰和資訊摘要。對方收到資訊後,用不同的金鑰解密並可核對資訊摘要。
簡單介紹HTTPS的工作原理
參考當你開啟瀏覽器,訪問某個 如果 旁有個小鎖,代表訪問的 是安全的,反之不安全。當我們沒有看到那個小鎖的小圖示的時候,需要提高警惕,不要隨意輸入個人重要的資料。所有的銀行和支付相關的 都是100 使用https的。保護隱私 privacy 所有資訊都是加密傳播,第三方無法竊聽資料。如果使用http...
回顧 HTTPS工作原理的簡單理解
http協議都是明文的,是沒有加密的,風險比較大。現在大部分應用都是用https協議的 之前是基於ssl協議對http進行加密,後來又公升級到了tsl協議來加密。1 瀏覽器把自己支援的加密規則傳送給 2 從這套加密規則裡選出來一套加密演算法和hash演算法,然後把自己的身份資訊用證書的方式發回給瀏覽...
https通訊原理
了解https之前,先了解http 是乙個應用層協議,由請求和響應構成,是乙個標準的客戶端伺服器模型。是乙個無狀態的協議 http協議通常承載於tcp協議之上,有時也承載於tls或ssl協議層之上,這個時候,就成了我們常說的https。https有兩種基本的加解密演算法型別 1 對稱加密 金鑰只有乙...