HTTPS和HTTP的區別,及HTTPS的相關知識

2021-09-05 09:24:51 字數 2932 閱讀 3626

https(http secure)是一種構建在ssl或tls上的http協議,簡單地說https就是http的安全版本。ssl(secure sockets layer)以及其繼任者tls(transport layer security)是一種安全協議,為網路通訊提供**認證、資料加密和報文完整性檢測,保證通訊的保密性和可靠性。https協議都以"https://"開頭,在訪問某個web頁面時,客戶端會開啟一條到伺服器443埠的連線。

ssl(secure sockets layer) 安全套接層

tls(transport layer security)傳輸安全協議

https:資料加密+**認證+完整性驗證+http

http不安全的原因:

1)資料以明文傳遞,有被竊聽的風險。

2)接收到的報文無法證明是傳送時的報文,不能保證完整性

3)不驗證通訊兩端的身份,請求或響應有被偽造的風險。

資料加密

加密:在密碼學中,加密是指將明文轉為難以理解的密文;解密與之相反,是把密文換回明文。加密和解密都由兩部分組成:演算法和秘鑰。加密演算法可以分為兩大類:對稱加密和非對稱加密。

對稱加密:

在加密和解密的過程中只使用乙個秘鑰,這個秘鑰叫對稱秘鑰也叫共享秘鑰。

優點:計算速度快

缺點:通訊兩端需要分享秘鑰。客戶端與伺服器在進行對話前,要先將對稱秘鑰傳送給對方,在傳輸的過程中秘鑰有被竊取的風險,一旦被竊取,那麼密文就能被翻譯成明文,那加密保護也就沒什麼用。

加密演算法:des、3des、rc-5、idea

非對稱加密:

在加密的過程中使用公用秘鑰,在解密過程中使用私鑰解密。加密和解密的過程也可以反過來,使用私鑰秘鑰加密,再用公用秘鑰解密。

缺點:計算速度慢

優點:避免資訊洩露,通訊兩端如果都使用非對稱,那麼各自都會生成一對秘鑰,私鑰留在身邊,公鑰發給物件,公鑰在傳輸途中即使被人竊取,也不用擔心,因為沒有私鑰就無法輕易解密。在交換公鑰後,就可以用對方的公鑰把資料加密,開始密文對話。

加密演算法:rsa(常用)、ecc

https採用混合加密機制,將兩種加密演算法組合使用,充分利用各自的優點。在交換公鑰階段使用的非對稱加密,在傳輸報文階段使用對稱加密。即非對稱加密傳輸金鑰,對稱加密傳輸資料,摘要保證資料完整性。

https連線建立的過程?

(1)客戶端傳送client hello報文開始ssl通訊,報文中還包括協議版本號、加密演算法等資訊。

(2)伺服器傳送server hello報文作為應答,在報文中也會包括協議版本號、加密演算法等資訊。

(3)伺服器傳送數字證書,數字證書中包括伺服器的公開秘鑰

(4)客戶端解開並驗證數字證書,驗證通過後,生成乙個隨機密碼串(premaster secret),再用收到的伺服器公鑰加密,傳送給伺服器。

(5)客戶端傳送change cipher spec報文,提示伺服器在此報文之後,採用剛剛生成的隨機密碼串進行資料加密。

(6)伺服器也傳送change cipher spec報文。

(7)ssl連線建立完成,接下來就開始可以傳輸資料了。

完整性驗證採用數字簽名

數字簽名:是一段由傳送者生成的特殊加密校驗碼,用於確定報文的完整性。數字簽名的生成涉及兩種技術:非對稱加密和數字摘要。數字摘要可以將變成的報文提取為定長的摘要,報文內容不同,提取出的摘要也將不同,常用的摘要演算法有md5和sha。簽名和校驗的過程如下:

(1)傳送方用摘要演算法對報文進行提取,生成一段摘要

(2)然後用私鑰對摘要進行加密,加密後的摘要作為數字簽名附加在報文上,一起傳送給接收方

(3)接收方收到報文後,用同樣的摘要演算法提取出摘要

(4)再用接收到的公鑰對報文中的數字簽名進行解密

(5)如果兩個摘要相同,那麼就能證明報文沒有被篡改

簡單來說就是:對訊息做摘要,用私鑰加密摘要。密文即簽名,簽名同訊息一起傳送。

**認證採用數字證書

數字證書:相當於網路上的身份證,用於身份識別,由權威的數字證書認證機構(ca)負責頒發和管理。證書的內容包括:有效期、頒發機構、頒發機構的簽名、證書所有者的名稱、證書所有者的公開秘鑰、版本號和唯一序列號等資訊。客戶端(瀏覽器)會先植入乙個受信任的頒發機構列表,如果收到的證書來自陌生的機構,那麼會彈出乙個安全警報對話方塊。

一般證書都安裝在伺服器處,當客戶端發起安全請求時,伺服器就會返回數字證書。客戶端從受信機構列表中找到相應的公開秘鑰,解開數字證書。然後驗證數字證書中的資訊,如果驗證通過,就說明請求來自對的伺服器,否則說明證書被冒用,客戶端立即發出警告。

https的缺點?

(1)通訊兩端都需要進行加密,會消耗大量的cpu、記憶體等資源,增加伺服器的負載。

(2)加密演算法和多次握手降低了訪問速度

(3)在開發階段,加大了頁面除錯難度。由於資訊都被加密了,所以用**工具的話,需要先解密然後才能看到真實的資訊

(4)用https訪問的頁面,頁面內的外部資源都得用https請求,包括指令碼中的ajax請求。

HTTP和HTTPS的作用及區別

一 首先最基本的問題http和https他倆都是啥呢幹啥的呢?是網際網路上應用最為廣泛的一種網路協議,是乙個客戶端和伺服器端請求和應答的標準 tcp 用於從www伺服器傳輸超文字到本地瀏覽器的傳輸協議,它可以使瀏覽器更加高效,使網路傳輸減少。說通俗點就是用網路鏈結傳輸文字資訊的協議,我們現在所看的各...

http和HTTPS的區別及SSL介紹

ssl secure socket layer 為netscape所研發,用以保障在internet上資料傳輸之安全,利用資料加密 encryption 技術,可確保資料在網路 上之傳輸過程中不會被擷取及竊聽。目前一般通用之規格為40 bit之安全標準,美國則已推出128 bit之更高安全 標準,但...

http和HTTPS的區別及SSL介紹

ssl secure socket layer 為netscape所研發,用以保障在internet上資料傳輸之安全,利用資料加密 encryption 技術,可確保資料在網路 上之傳輸過程中不會被擷取及竊聽。目前一般通用之規格為40 bit之安全標準,美國則已推出128 bit之更高安全 標準,但...