1樓:光網
https 並非是應用層的一種新協議。只是 http 通訊介面部分用 ssl (安全套接字層)和tls (安全傳輸層協議)代替而已。即新增了加密及認證機制的 http 稱為 https ( http secure )。
http + 加密 + 認證 + 完整性保護 = https
流程中必要的是ssl證書,可以**搜尋:gw*** 獲取證書。
使用兩把金鑰的公開金鑰加密
公開金鑰加密使用一對非對稱的金鑰。一把叫做私鑰,另一把叫做公鑰。私鑰不能讓其他任何人知道,而公鑰則可以隨意釋出,任何人都可以獲得。使用公鑰加密方式,
http三次握手
超文字傳輸協議是網際網路上應用最為廣泛的一種網路協議。由於資訊是明文傳輸,所以被認為是不安全的。而關於http的三次握手,其實就是使用三次tcp握手確認建立一個http連線。
如下圖所示,syn(synchronous)是tcp/ip建立連線時使用的握手訊號、sequence number(序列號)、acknowledge number(確認號碼),三個箭頭指向就代表三次握手,完成三次握手,客戶端與伺服器開始傳送資料。
第一次握手:客戶端傳送syn包(syn=j)到伺服器,並進入syn_send狀態,等待伺服器確認;
第二次握手:伺服器收到syn包,必須確認客戶的syn(ack=j+1),同時自己也傳送一個syn包(syn=k),即syn+ack包,此時伺服器進入syn_recv狀態;
第三次握手:客戶端收到伺服器的syn+ack包,向伺服器傳送確認包ack(ack=k+1),此包傳送完畢,客戶端和伺服器進入established狀態,完成三次握手。
https握手過程
https在http的基礎上加入了ssl協議,ssl依靠證書來驗證伺服器的身份,併為瀏覽器和伺服器之間的通訊加密。具體是如何進行加密,解密,驗證的,且看下圖,下面的稱為一次握手。
1. 客戶端發起https請求
2. 服務端的配置
採用https協議的伺服器必須要有一套數字證書,可以是自己製作或者ca證書。區別就是自己頒發的證書需要客戶端驗證通過,才可以繼續訪問,而使用ca證書則不會彈出提示頁面。這套證書其實就是一對公鑰和私鑰。
公鑰給別人加密使用,私鑰給自己解密使用。
3. 傳送證書
這個證書其實就是公鑰,只是包含了很多資訊,如證書的頒發機構,過期時間等。
4. 客戶端解析證書
這部分工作是有客戶端的tls來完成的,首先會驗證公鑰是否有效,比如頒發機構,過期時間等,如果發現異常,則會彈出一個警告框,提示證書存在問題。如果證書沒有問題,那麼就生成一個隨即值,然後用證書對該隨機值進行加密。
5. 傳送加密資訊
這部分傳送的是用證書加密後的隨機值,目的就是讓服務端得到這個隨機值,以後客戶端和服務端的通訊就可以通過這個隨機值來進行加密解密了。
6. 服務段解密資訊
服務端用私鑰解密後,得到了客戶端傳過來的隨機值(私鑰),然後把內容通過該值進行對稱加密。所謂對稱加密就是,將資訊和私鑰通過某種演算法混合在一起,這樣除非知道私鑰,不然無法獲取內容,而正好客戶端和服務端都知道這個私鑰,所以只要加密演算法夠彪悍,私鑰夠複雜,資料就夠安全。
7. 傳輸加密後的資訊
這部分資訊是服務段用私鑰加密後的資訊,可以在客戶端被還原。
8. 客戶端解密資訊
客戶端用之前生成的私鑰解密服務段傳過來的資訊,於是獲取瞭解密後的內容。
ps: 整個握手過程第三方即使監聽到了資料,也束手無策。
https 請求在進行握手時 是安全的嗎
2樓:匿名使用者
安全,也是必要存在的,必須經過ca公網證書請求才獲得允許。
https如何進行加密傳輸
3樓:光網
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
https請求證書時候的握手是ssl/ tls 還是tcp的握手?
4樓:匿名使用者
通過抓包工具看,是tcpip先握手,當tcp連線成功後,在進入tls,如果tls證書檢驗成功,則開始正常收發資料
5樓:nice的小夥子
https是基於ssl安全連線的http協議。https通過ssl提供的資料加密、身份驗證和訊息完整性驗證等安全機
制,為web訪問提供了安全性保證,廣泛應用於網上銀行、電子商務等領域。
此圖為https在網上銀行中的應用。某銀行為了方便客戶,提供了網上銀行業務,客戶可以通過訪問銀行的web伺服器進行帳戶查詢、轉帳等。通過在客戶和銀行的web伺服器之間建立ssl連線,可以保證客戶的資訊不被非法竊取。
2.只需要驗證ssl伺服器身份,不需要驗證ssl客戶端身份時,ssl的握手過程為:
(1) ssl客戶端通過client hello訊息將它支援的ssl版本、加密演算法、金鑰交換演算法、mac演算法等資訊傳送給ssl伺服器。
(2) ssl伺服器確定本次通訊採用的ssl版本和加密套件,並通過server hello訊息通知給ssl客戶端。如果ssl伺服器允許ssl客戶端在以後的通訊中重用本次會話,則ssl伺服器會為本次會話分配會話id,並通過server hello訊息傳送給ssl客戶端。
(3) ssl伺服器將攜帶自己公鑰資訊的數字證書通過certificate訊息傳送給ssl客戶端。
(4) ssl伺服器傳送server hello done訊息,通知ssl客戶端版本和加密套件協商結束,開始進行金鑰交換。
(5) ssl客戶端驗證ssl伺服器的證書合法後,利用證書中的公鑰加密ssl客戶端隨機生成的premaster secret,並通過client key exchange訊息傳送給ssl伺服器。
(6) ssl客戶端傳送change cipher spec訊息,通知ssl伺服器後續報文將採用協商好的金鑰和加密套件進行加密和mac計算。
(7) ssl客戶端計算已互動的握手訊息(除change cipher spec訊息外所有已互動的訊息)的hash值,利用協商好的金鑰和加密套件處理hash值(計算並新增mac值、加密等),並通過finished訊息傳送給ssl伺服器。ssl伺服器利用同樣的方法計算已互動的握手訊息的hash值,並與finished訊息的解密結果比較,如果二者相同,且mac值驗證成功,則證明金鑰和加密套件協商成功。
(8) 同樣地,ssl伺服器傳送change cipher spec訊息,通知ssl客戶端後續報文將採用協商好的金鑰和加密套件進行加密和mac計算。
(9) ssl伺服器計算已互動的握手訊息的hash值,利用協商好的金鑰和加密套件處理hash值(計算並新增mac值、加密等),並通過finished訊息傳送給ssl客戶端。ssl客戶端利用同樣的方法計算已互動的握手訊息的hash值,並與finished訊息的解密結果比較,如果二者相同,且mac值驗證成功,則證明金鑰和加密套件協商成功。
ssl客戶端接收到ssl伺服器傳送的finished訊息後,如果解密成功,則可以判斷ssl伺服器是數字證書的擁有者,即ssl伺服器身份驗證成功,因為只有擁有私鑰的ssl伺服器才能從client key exchange訊息中解密得到premaster secret,從而間接地實現了ssl客戶端對ssl伺服器的身份驗證。
& 說明:
l change cipher spec訊息屬於ssl密碼變化協議,其他握手過程互動的訊息均屬於ssl握手協議,統稱為ssl握手訊息。
l 計算hash值,指的是利用hash演算法(md5或sha)將任意長度的資料轉換為固定長度的資料。
6樓:所謂不執著
是在tls層 請求的證書
可以看看阮一峰的ssl 文章 經過四次握手
網頁連結
https請求向伺服器傳送的資訊是何種編碼或加密方式? 5
7樓:中兵勘察海外部
這個是用非對稱演算法。客戶會得到公鑰,伺服器自己有私鑰。
我看問文件,ssh連線,說是連線的時候是用的金鑰做連線,然後就是發來發對稱加密的金鑰匙的,有時間間隔的,過一段時間就換一個。不知ssl是不是也這樣。
https請求證書時候的握手是ssltls 還是tcp的握手
通過抓包工具看,是tcpip先握手,當tcp連線成功後,在進入tls,如果tls證書檢驗成功,則開始正常收發資料 https是基於ssl安全連線的http協議。https通過ssl提供的資料加密 身份驗證和訊息完整性驗證等安全機 制,為web訪問提供了安全性保證,廣泛應用於網上銀行 電子商務等領域。...
握手的英文怎麼說,握手的方式代表什麼
握手的英文 握手的英文 shake hands。詞典 shake hands,clasp hands。例句 在義大利,人們見面時握手嗎?do people in italy shake hands when they meet?子音 注 多數子音的讀音與拼音差別不大,可以通過拼音來進行諧音 還有一部...
https和http的區別,HTTPS和HTTP的區別
一 https協議需要到ca申請證書,一般免費證書很少,需要交費。二 內http是超文字傳輸協議,信 容息是明文傳輸,https 則是具有安全性的ssl加密傳輸協議。三 http和https使用的是完全不同的連線方式,用的埠也不一樣,前者是80,後者是443。四 http的連線很簡單,是無狀態的 h...