注意??
https協(xié)議需要到ca申請證書,一般免費證書很少,需要交費。
http是超文本傳輸協(xié)議,信息是明文傳輸,https 則是具有安全性的ssl加密傳輸協(xié)議
http和https使用的是完全不同的連接方式用的端口也不一樣,前者是80,后者是443
HTTP的缺點
HTTP主要有這些不足:
通信使用明文,內(nèi)容可能被竊聽
不驗證通信方身份,因此有可能遭遇偽裝
無法驗證報文的完整性,所有有可能已篡改
HTTP + 加密 + 認證 + 完整性保護 = HTTPS
HTTPS是身披SSL外殼的HTTP
通常情況下HTTP是直接和TCP層進行通信的。當(dāng)使用SSL(安全套階字)時,則演變成HTTP先和SSL通信,SSL再和TCP通信的了。
加密技術(shù)
講解SSL前,科普一下加密方法,SSL采用的是一種叫做公開密鑰加密的加密處理方式
對稱加密
加密和解密用的一個密鑰的方式稱為對稱加密,也叫做共享密鑰加密
對稱加密在發(fā)送加密信息時也需要將密鑰發(fā)送給對方,但這樣可以被攻擊者截取,就不安全啦~
非對稱加密
非對稱加密又稱作公開密鑰加密,它很好的解決了對稱加密密鑰被截取的問題。
非對稱加密采用一對非對稱的密鑰,一把叫做私有密鑰,一把叫做共有密鑰。
使用非對稱加密,發(fā)送密文一方使用對方的共有密鑰進行加密處理,對方收到加密信息后,再使用自己的私有密鑰進行解密。
HTTPS采用混合加密機制
HTTPS采用對稱加密和非對稱加密所混合的加密機制。
若密鑰能安全交換,那么有可能僅考慮非對稱加密。
但是非對稱加密與對稱加密相比,處理速度相對較慢。
公開密鑰的認證
使用數(shù)字證書認證機構(gòu)和其頒布的公開密鑰證書進行認證。即讓第三方獨立機構(gòu)進行驗證。
私有密鑰是保存在服務(wù)器端的~
注意??:認證是要錢的!!!
HTTPS安全通信機制
下圖是完整的HTTPS的通信過程
為什么HTTPS不是那么普及
1.加密通信與純文本通信相比,消耗更多的CPU和內(nèi)存資源
2.購買證書是要錢的!
3.少許對客戶端有要求的情況下,會要求客戶端也必須有一個證書.
這里客戶端證書,其實就類似表示個人信息的時候,除了用戶名/密碼, 還有一個CA 認證過的身份. 應(yīng)為個人證書一般來說上別人無法模擬的,所有這樣能夠更深的確認自己的身份
目前少數(shù)個人銀行的專業(yè)版是這種做法,具體證書可能是拿U盤作為一個備份的載體
HTTPS 一定是繁瑣的
1.本來簡單的http協(xié)議,一個get一個response. 由于https 要還密鑰和確認加密算法的需要.單握手就需要6/7 個往返,任何應(yīng)用中,過多的round trip 肯定影響性能.
2.接下來才是具體的http協(xié)議,每一次響應(yīng)或者請求, 都要求客戶端和服務(wù)端對會話的內(nèi)容做加密/解密,盡管對稱加密/解密效率比較高,可是仍然要消耗過多的CPU,為此有專門的SSL 芯片. 如果CPU 信能比較低的話,肯定會降低性能,從而不能serve 更多的請求,加密后數(shù)據(jù)量的影響. 所以,才會出現(xiàn)那么多的安全認證提示