最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

HTTP與HTTPS握手的那些事

 更新時間:2017年05月20日 12:28:46   投稿:mdxy-dxy  
今天我總結(jié)了什么是HTTP三次握手,還有HTTPS握手的過程以及為什么HTTPS是安全的,需要的朋友可以參考下

前提

在講述這兩個握手時候,有一些東西需要提前說明。

HTTP與TCP/IP區(qū)別?

TPC/IP協(xié)議是傳輸層協(xié)議,主要解決數(shù)據(jù)如何在網(wǎng)絡中傳輸,而HTTP是應用層協(xié)議,主要解決如何包裝數(shù)據(jù)。WEB使用HTTP協(xié)議作應用層協(xié)議,以封裝HTTP 文本信息,然后使用TCP/IP做傳輸層協(xié)議將它發(fā)到網(wǎng)絡上。

下面的圖表試圖顯示不同的TCP/IP和其他的協(xié)議在最初OSI(Open System Interconnect)模型中的位置:

PS:表格來自網(wǎng)上資料

CA證書是什么?

CA(Certificate Authority)是負責管理和簽發(fā)證書的第三方權(quán)威機構(gòu),是所有行業(yè)和公眾都信任的、認可的。

CA證書,就是CA頒發(fā)的證書,可用于驗證網(wǎng)站是否可信(針對HTTPS)、驗證某文件是否可信(是否被篡改)等,也可以用一個證書來證明另一個證書是真實可信,最頂級的證書稱為根證書。除了根證書(自己證明自己是可靠),其它證書都要依靠上一級的證書,來證明自己。

HTTP三次握手

HTTP(HyperText Transfer Protocol)超文本傳輸協(xié)議是互聯(lián)網(wǎng)上應用最為廣泛的一種網(wǎng)絡協(xié)議。由于信息是明文傳輸,所以被認為是不安全的。而關(guān)于HTTP的三次握手,其實就是使用三次TCP握手確認建立一個HTTP連接。

如下圖所示,SYN(synchronous)是TCP/IP建立連接時使用的握手信號、Sequence number(序列號)、Acknowledge number(確認號碼),三個箭頭指向就代表三次握手,完成三次握手,客戶端與服務器開始傳送數(shù)據(jù)。

PS:圖片來自網(wǎng)上資料

第一次握手:客戶端發(fā)送syn包(syn=j)到服務器,并進入SYN_SEND狀態(tài),等待服務器確認;

第二次握手:服務器收到syn包,必須確認客戶的SYN(ack=j+1),同時自己也發(fā)送一個SYN包(syn=k),即SYN+ACK包,此時服務器進入SYN_RECV狀態(tài);

第三次握手:客戶端收到服務器的SYN+ACK包,向服務器發(fā)送確認包ACK(ack=k+1),此包發(fā)送完畢,客戶端和服務器進入ESTABLISHED狀態(tài),完成三次握手。

HTTPS握手過程

HTTPS在HTTP的基礎(chǔ)上加入了SSL協(xié)議,SSL依靠證書來驗證服務器的身份,并為瀏覽器和服務器之間的通信加密。具體是如何進行加密,解密,驗證的,且看下圖,下面的稱為一次握手。

PS:圖片以下描述摘自:http://zhuqil.cnblogs.com

1. 客戶端發(fā)起HTTPS請求

2. 服務端的配置

采用HTTPS協(xié)議的服務器必須要有一套數(shù)字證書,可以是自己制作或者CA證書。區(qū)別就是自己頒發(fā)的證書需要客戶端驗證通過,才可以繼續(xù)訪問,而使用CA證書則不會彈出提示頁面。這套證書其實就是一對公鑰和私鑰。公鑰給別人加密使用,私鑰給自己解密使用。

3. 傳送證書

這個證書其實就是公鑰,只是包含了很多信息,如證書的頒發(fā)機構(gòu),過期時間等。

4. 客戶端解析證書

這部分工作是有客戶端的TLS來完成的,首先會驗證公鑰是否有效,比如頒發(fā)機構(gòu),過期時間等,如果發(fā)現(xiàn)異常,則會彈出一個警告框,提示證書存在問題。如果證書沒有問題,那么就生成一個隨即值,然后用證書對該隨機值進行加密。

5. 傳送加密信息

這部分傳送的是用證書加密后的隨機值,目的就是讓服務端得到這個隨機值,以后客戶端和服務端的通信就可以通過這個隨機值來進行加密解密了。

6. 服務段解密信息

服務端用私鑰解密后,得到了客戶端傳過來的隨機值(私鑰),然后把內(nèi)容通過該值進行對稱加密。所謂對稱加密就是,將信息和私鑰通過某種算法混合在一起,這樣除非知道私鑰,不然無法獲取內(nèi)容,而正好客戶端和服務端都知道這個私鑰,所以只要加密算法夠彪悍,私鑰夠復雜,數(shù)據(jù)就夠安全。

7. 傳輸加密后的信息

這部分信息是服務段用私鑰加密后的信息,可以在客戶端被還原。

8. 客戶端解密信息

客戶端用之前生成的私鑰解密服務段傳過來的信息,于是獲取了解密后的內(nèi)容。

PS: 整個握手過程第三方即使監(jiān)聽到了數(shù)據(jù),也束手無策。

總結(jié)

為什么HTTPS是安全的?

在HTTPS握手的第四步中,如果站點的證書是不受信任的,會顯示出現(xiàn)下面確認界面,確認了網(wǎng)站的真實性。另外第六和八步,使用客戶端私鑰加密解密,保證了數(shù)據(jù)傳輸?shù)陌踩?/p>

HTTPS和HTTP的區(qū)別

1. https協(xié)議需要到ca申請證書或自制證書。

2. http的信息是明文傳輸,https則是具有安全性的ssl加密。

3. http是直接與TCP進行數(shù)據(jù)傳輸,而https是經(jīng)過一層SSL(OSI表示層),用的端口也不一樣,前者是80(需要國內(nèi)備案),后者是443。

4. http的連接很簡單,是無狀態(tài)的;HTTPS協(xié)議是由SSL+HTTP協(xié)議構(gòu)建的可進行加密傳輸、身份認證的網(wǎng)絡協(xié)議,比http協(xié)議安全。

注意https加密是在傳輸層

https報文在被包裝成tcp報文的時候完成加密的過程,無論是https的header域也好,body域也罷都是會被加密的。

當使用tcpdump或者wireshark之類的tcp層工具抓包,獲取是加密的內(nèi)容,而如果用應用層抓包,使用Charels(Mac)、Fildder(Windows)抓包工具,那當然看到是明文的。

PS:HTTPS本身就是為了網(wǎng)絡的傳輸安全。

例子,使用wireshark抓包:

http,可以看到抓到是明文的:

https,可以看到抓到是密文的:

附錄

HTTPS一般使用的加密與HASH算法如下:

非對稱加密算法:RSA,DSA/DSS

對稱加密算法:AES,RC4,3DES

HASH算法:MD5,SHA1,SHA256

相關(guān)文章

  • Asp與JS的數(shù)組和字符串下標介紹

    Asp與JS的數(shù)組和字符串下標介紹

    數(shù)組都是從0開始。javascript是arrayname[i],而vbscript是arrayname(i),javascript的字符串還是從0開始,asp的字符串下標從1開始
    2013-03-03
  • Chrome瀏覽器斷點調(diào)試技巧(非常詳細!)

    Chrome瀏覽器斷點調(diào)試技巧(非常詳細!)

    在我們?nèi)粘i_發(fā)中,常常利用chrome強大的控制臺Sources下面進行代碼斷點調(diào)試,這篇文章主要給大家介紹了關(guān)于Chrome瀏覽器斷點調(diào)試技巧的相關(guān)資料,需要的朋友可以參考下
    2023-09-09
  • 詳解如何使用git 生成patch 和打入patch

    詳解如何使用git 生成patch 和打入patch

    這篇文章主要介紹了詳解如何使用git 生成patch 和打入patch,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-07-07
  • String與string的區(qū)別(注意大小寫)

    String與string的區(qū)別(注意大小寫)

    String與string的區(qū)別(注意大小寫)
    2010-06-06
  • zend stdio8.0 快捷鍵匯總集合

    zend stdio8.0 快捷鍵匯總集合

    接下來小編就為大家介紹一下在Zend Stdio 8.0版本中的快捷鍵匯總。需要的朋友可以過來參考下,希望對大家有所幫助
    2013-10-10
  • s49?磁盤存儲文件系統(tǒng)管理詳解

    s49?磁盤存儲文件系統(tǒng)管理詳解

    這篇文章主要為大家介紹了s49?磁盤存儲文件系統(tǒng)管理詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-11-11
  • Postman測試報告的生成方法

    Postman測試報告的生成方法

    做完測試后,都會編寫一份測試報告,測試報告中最主要的就是呈現(xiàn)出測試結(jié)果,哪些用例通過了,哪些用例沒有通過。像postman這么強大的功能也可以自動生成報告,供我們測試同學進行查看,顯得更加有B格
    2022-01-01
  • 教你用PyTorch部署模型的方法

    教你用PyTorch部署模型的方法

    這篇文章主要介紹了用PyTorch部署模型的相關(guān)知識,演示了使用PyTorch最近發(fā)布的新工具torchserve來進行PyTorch模型的部署的相關(guān)知識,需要的朋友可以參考下
    2022-02-02
  • Git 2.27.0詳細安裝步驟詳解

    Git 2.27.0詳細安裝步驟詳解

    這篇文章主要介紹了Git 2.27.0詳細安裝步驟,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-08-08
  • 虛擬主機下實現(xiàn)多域名綁定不同的子目錄的方法

    虛擬主機下實現(xiàn)多域名綁定不同的子目錄的方法

    虛擬主機域名綁定子目錄asp php html (通用)
    2010-03-03

最新評論

通海县| 新余市| 开阳县| 丰台区| 股票| 阿图什市| 嫩江县| 山东省| 林西县| 迭部县| 东安县| 阿鲁科尔沁旗| 广丰县| 昌平区| 莒南县| 凤山县| 新营市| 崇左市| 顺昌县| 平顶山市| 汾阳市| 黎平县| 绵阳市| 宁远县| 龙川县| 淮南市| 璧山县| 乌拉特中旗| 酉阳| 鹰潭市| 陇西县| 青龙| 阳西县| 云龙县| 专栏| 库伦旗| 井冈山市| 富蕴县| 乌拉特后旗| 陇南市| 瑞丽市|