??學(xué)習(xí)《圖解http》筆記±荆總結(jié)一下https方面的內(nèi)容轿衔。
??互聯(lián)網(wǎng)腮鞍,是由能連通到全世界的網(wǎng)絡(luò)組成的。無論世界哪個角落的服務(wù)器在和客戶端通信時枣耀,在此通信線路上的某些網(wǎng)絡(luò)設(shè)備霉晕、光纜、計算機(jī)等都不可能是個人的私有物捞奕,所以不排除某個環(huán)節(jié)中會遭到惡意窺視行為牺堰。
HTTP 主要有這些不足
1.通信使用明文(不加密),內(nèi)容可能會被竊聽
2.不驗(yàn)證通信方的身份颅围,因此有可能遭遇偽裝
3.無法證明報文的完整性伟葫,所以有可能已遭篡改
HTTPS = HTTP + 加密 + 認(rèn)證 + 完整性
??SSL(Secure Sockets Layer 安全套接層), 及其繼任者傳輸層安全(Transport Layer Security,TLS)是為網(wǎng)絡(luò)通信提供安全及數(shù)據(jù)完整性的一種安全協(xié)議院促。TLS與SSL在傳輸層對網(wǎng)絡(luò)連接進(jìn)行加密筏养。
??SSL/TLS協(xié)議希望達(dá)到:
1)認(rèn)證用戶和服務(wù)器,確保數(shù)據(jù)發(fā)送到正確的客戶機(jī)和服務(wù)器常拓;
2)加密數(shù)據(jù)以防止數(shù)據(jù)中途被竊冉ト堋;
3)維護(hù)數(shù)據(jù)的完整性弄抬,確保數(shù)據(jù)在傳輸過程中不被改變茎辐。
??通常,HTTP 直接和 TCP 通信掂恕。當(dāng)使用 SSL時拖陆,則演變成先和 SSL通信,再由 SSL和 TCP 通信了懊亡。簡言之依啰, HTTPS,就是身披SSL協(xié)議這層外殼的 HTTP店枣。SSL是當(dāng)今世界上應(yīng)用最為廣泛的網(wǎng)絡(luò)安全技術(shù)速警。
加密數(shù)據(jù)如何解密
加密方法
??近代的加密方法中加密算法是公開的,而密鑰卻是保密的鸯两。通過這種方式得以保持加密方法的安全性坏瞄。加密和解密都會用到密鑰。沒有密鑰就無法對密碼解密甩卓。
??公開密鑰加密方法使用一對非對稱的密鑰鸠匀。一把叫做私有密鑰(private key),另一把叫做公開密鑰(public key)逾柿。顧名思義缀棍,私有密鑰不能讓其他任何人知道,而公開密鑰則可以隨意發(fā)布机错,任何人都可以獲得爬范。
??使用公開密鑰加密方式,發(fā)送密文的一方使用對方的公開密鑰進(jìn)行加密處理弱匪,對方收到被加密的信息后青瀑,再使用自己的私有密鑰進(jìn)行解密。
使用證書證明密鑰正確性
??正準(zhǔn)備和某臺服務(wù)器建立公開密鑰加密方式下的通信時,如何證明收到的公開密鑰就是原本預(yù)想的那臺服務(wù)器發(fā)行的公開密鑰斥难≈λ唬或許在公開密鑰傳輸途中,真正的公開密鑰已經(jīng)被攻擊者替換掉了哑诊。
??數(shù)字證書認(rèn)證機(jī)構(gòu)處于客戶端與服務(wù)器雙方都可信賴的第三方機(jī)構(gòu)的立場上群扶。數(shù)字證書機(jī)構(gòu)會把服務(wù)器的公開密鑰進(jìn)行簽名,發(fā)布一個公鑰證書镀裤。多數(shù)瀏覽器開發(fā)商發(fā)布版本時竞阐,會事先在內(nèi)部植入常用認(rèn)證機(jī)關(guān)的公開密鑰。