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之更高安全 標準,但...