一揩懒、什么是HTTPS
HTTPS是HTTP通過SSL(secure socket layer 安全套接層) 或TLS(Transport Layer Security 安全層傳輸協(xié)議)的組合使用,加密的HTTP的通信內(nèi)容挽封,我們把添加了加密及認(rèn)證機(jī)制的 HTTP 稱為 HTTPS
HTTP = HTTP + TCP+IP
HTTPS = HTTP +SSL+TPC+IP
二已球、傳統(tǒng)HTTP協(xié)議的缺點(diǎn)
1. 明文通信,內(nèi)容可能被竊聽
由于HTTP不存在加密的功能辅愿,所以無法做到對(duì)請(qǐng)求和響應(yīng)的內(nèi)容進(jìn)行加密智亮,即HTTP通過明文傳輸,特別地点待,TCP/IP
可能是竊聽地渠道阔蛉,安裝TCP/IP協(xié)議簇的工作機(jī)制,通信內(nèi)容在所有線路都可能遭到窺視癞埠,就算是對(duì)報(bào)文內(nèi)容加密状原,也只是讓對(duì)方不懂它的涵義,但還是能看到該報(bào)文苗踪。
對(duì)應(yīng)竊聽的解決方案颠区,
- 可以使用
https
解決 - 對(duì)報(bào)文內(nèi)容進(jìn)行加密,但必須要求客戶端跟服務(wù)器同時(shí)具備加密與解密的機(jī)制通铲。但還是明文傳輸毕莱,仍有被篡改的風(fēng)險(xiǎn)。
2. 不驗(yàn)證雙方通信身份测暗, 可能遭遇偽裝
HTTP協(xié)議的請(qǐng)求與響應(yīng)不會(huì)對(duì)通信方進(jìn)行確認(rèn)央串,也就是存在你發(fā)送的報(bào)文到達(dá)的服務(wù)器,也許并非是url真正指定的主機(jī)碗啄,返回的響應(yīng)是否真的是返回到實(shí)際提出請(qǐng)求的客戶端的問題。
- web服務(wù)器可能是偽裝的
- 客戶端有可能是偽裝的
- 服務(wù)器端無法確認(rèn)對(duì)方是否具有訪問權(quán)限稳摄,無法阻止海量請(qǐng)求的DoS攻擊(拒絕服務(wù)攻擊)
解決方案:
- 證書稚字,證書是由第三方機(jī)構(gòu)造的,客戶端在通信前確認(rèn)服務(wù)器的證書厦酬。
3. 內(nèi)容篡改
請(qǐng)求或響應(yīng)中間的鏈路篡改報(bào)文胆描,雙方都蒙蔽(中間人攻擊)
解決方案:
- HTTP協(xié)議的MD5和SHA-1散列值校驗(yàn)數(shù)字簽名,并不可靠
- HTTPS
三仗阅、公鑰與私鑰
SSL采用公開密鑰加密的方式昌讲,近代的加密算法是公開的,而密鑰是保密减噪。通過這種方式保持加密的安全性短绸。
加密和解密都需要密鑰车吹,沒有密鑰就不能對(duì)密碼進(jìn)行破解。一旦攻擊者獲得了加密與解密的密鑰醋闭,那么這個(gè)就成了笑話窄驹。
公開密鑰方式很好的解決了這個(gè)困境。
公開密鑰加密使用一對(duì)非對(duì)稱的密鑰证逻。 一把叫做私有密鑰(private key) 乐埠, 另一把叫做公開密鑰(public key) 。 顧名思義囚企, 私有密鑰不能讓其他任何人知道丈咐, 而公開密鑰則可以隨意發(fā)布, 任何人都可以獲得龙宏。使用公開密鑰加密方式棵逊, 發(fā)送密文的一方使用對(duì)方的公開密鑰進(jìn)行加密處理, 對(duì)方收到被加密的信息后烦衣, 再使用自己的私有密鑰進(jìn)行解密歹河。 利用這種方式, 不需要發(fā)送用來解密的私有密鑰花吟, 也不必?fù)?dān)心密鑰被攻擊者竊聽而盜走秸歧。