您好,登錄后才能下訂單哦!
如何快速了解Https,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。
HTTPS:https是http與ssl的結(jié)合,為了解決http明文傳輸導(dǎo)致信息泄露的問題。ssl通過公鑰和私鑰保證客戶端和服務(wù)器之間的通訊加密,由權(quán)威機構(gòu)辦法的數(shù)字證書杜絕了中間人攻擊的可能。默認端口為443。
SSL需要到ca申請證書,一般免費證書較少,因而需要一定費用。(筆者一直用阿里云,有個免費ssl申請,還是挺適合個人使用的。據(jù)說其他云商也有免費ssl)
有關(guān)HTTP發(fā)展歷史和HTTP2的詳細講解,可以點擊查看這篇文章
有關(guān)HTTP連接中TCP握手揮手過程的詳細講解,可以點擊查看這篇文章
client向server發(fā)送請求https://baidu.com,然后連接到server的443端口。
服務(wù)端必須要有一套數(shù)字證書,可以自己制作,也可以向組織申請。區(qū)別就是自己頒發(fā)的證書需要客戶端驗證通過,才可以繼續(xù)訪問,而使用受信任的公司申請的證書則不會彈出提示頁面,這套證書其實就是一對公鑰和私鑰。
傳送證書。這個證書其實就是公鑰,只是包含了很多信息,如證書的頒發(fā)機構(gòu),過期時間、服務(wù)端的公鑰,第三方證書認證機構(gòu)(CA)的簽名,服務(wù)端的域名信息等內(nèi)容。
客戶端解析證書。這部分工作是由客戶端的TLS來完成的,首先會驗證公鑰是否有效,比如頒發(fā)機構(gòu),過期時間等等,如果發(fā)現(xiàn)異常,則會彈出一個警告框,提示證書存在問題。如果證書沒有問題,那么就生成一個隨即值(秘鑰)。然后用證書對該隨機值進行加密。
傳送加密信息。這部分傳送的是用證書加密后的秘鑰,目的就是讓服務(wù)端得到這個秘鑰,以后客戶端和服務(wù)端的通信就可以通過這個隨機值來進行加密解密了。
服務(wù)段加密信息。服務(wù)端用私鑰解密秘鑰,得到了客戶端傳過來的私鑰,然后把內(nèi)容通過該值進行對稱加密。
傳輸加密后的信息。這部分信息是服務(wù)端用私鑰加密后的信息,可以在客戶端被還原。
客戶端解密信息??蛻舳擞弥吧傻乃借€解密服務(wù)端傳過來的信息,于是獲取了解密后的內(nèi)容。
在對稱加密算法中,加密使用的密鑰和解密使用的密鑰是相同的,因此對稱加密算法要保證安全性的話,密鑰要做好保密,只能讓使用的人知道,不能對外公開。對稱加密算法中,加密和解密都是使用同一個密鑰,不區(qū)分公鑰和私鑰。
密鑰,一般就是一個字符串或數(shù)字,在加密或者解密時傳遞給加密/解密算法。
在非對稱加密算法中,加密使用的密鑰和解密使用的密鑰是不相同的。
注意:私鑰加密后的密文,只要是公鑰,都可以解密,但是反過來公鑰加密后的密文,只有私鑰可以解密。私鑰只有一個人有,而公鑰可以發(fā)給所有的人。
中間人攻擊(Man-in-the-MiddleAttack)是指,黑客攔截并篡改網(wǎng)絡(luò)中的通信數(shù)據(jù)。又分為被動MITM和主動MITM,被動MITM只竊取通信數(shù)據(jù)而不修改,而主動MITM不但能竊取數(shù)據(jù),還會篡改通信數(shù)據(jù)。最常見的中間人攻擊常常發(fā)生在公共wifi或者公共路由上。
圖為客戶端主動發(fā)送消息時:
為了防止中間人攻擊,整個傳輸過程中亟需解決的是保證客戶端收到的公鑰是服務(wù)端發(fā)送的,為此提出了數(shù)字證書,數(shù)字證書是由權(quán)威的CA機構(gòu)給服務(wù)端進行頒發(fā),CA機構(gòu)通過服務(wù)端提供的相關(guān)信息生成證書,證書內(nèi)容包含了持有人的相關(guān)信息,公鑰,簽署者簽名信息等,最重要的是公鑰在數(shù)字證書中。數(shù)字證書是如何保證公鑰來自請求的服務(wù)器呢?數(shù)字證書上由持有人的相關(guān)信息,通過這點可以確定其不是一個中間人;但是證書也是可以偽造的,如何保證證書為真呢?一個證書中含有三個部分:"證書內(nèi)容(F1), 加密算法(A),加密密文(F3') ",三者的關(guān)系如下圖,證書內(nèi)容F1F會被散列算法SHA1計算出hash值F2,然后使用CA機構(gòu)提供的私鑰進行RSA加密
當(dāng)客戶端發(fā)起請求的時候,服務(wù)器將該數(shù)字證書發(fā)送給客戶端,客戶端將其中的加密密文(F3)通過CA機構(gòu)提供的公鑰及逆行解密后得到F2,同時將證書內(nèi)容(F1)使用SHA1散列成F2,如果兩者相等則說明證書沒問題。
由于劫持者不知道當(dāng)初加密使用的私鑰是什么,所以永遠無法偽造出一個正確的證書可以通過上述的驗證。
安全性考慮:
HTTPS協(xié)議的加密范圍也比較有限,在黑客攻擊、拒絕服務(wù)攻擊、服務(wù)器劫持等方面幾乎起不到什么作用。
SSL證書的信用鏈體系并不安全,特別是在某些國家可以控制CA根證書的情況下,中間人攻擊一樣可行。
成本考慮:
SSL證書需要購買申請,功能越強大的證書費用越高
SSL證書通常需要綁定IP,不能在同一IP上綁定多個域名,IPv4資源不可能支撐這個消耗(SSL有擴展可以部分解決這個問題,但是比較麻煩,而且要求瀏覽器、操作系統(tǒng)支持,Windows XP就不支持這個擴展,考慮到XP的裝機量,這個特性幾乎沒用)。
根據(jù)ACM CoNEXT數(shù)據(jù)顯示,使用HTTPS協(xié)議會使頁面的加載時間延長近50%,增加10%到20%的耗電。
HTTPS連接緩存不如HTTP高效,流量成本高。
HTTPS連接服務(wù)器端資源占用高很多,支持訪客多的網(wǎng)站需要投入更大的成本。
HTTPS協(xié)議握手階段比較費時,對網(wǎng)站的響應(yīng)速度有影響,影響用戶體驗。比較好的方式是采用分而治之,類似12306網(wǎng)站的主頁使用HTTP協(xié)議,有關(guān)于用戶信息等方面使用HTTPS。
看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識有進一步的了解或閱讀更多相關(guān)文章,請關(guān)注億速云行業(yè)資訊頻道,感謝您對億速云的支持。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。