注意⚠️
https協(xié)議需要到ca申請(qǐng)證書,一般免費(fèi)證書很少,需要交費(fèi)。
http是超文本傳輸協(xié)議,信息是明文傳輸,https 則是具有安全性的ssl加密傳輸協(xié)議
http和https使用的是完全不同的連接方式用的端口也不一樣,前者是80,后者是443
HTTP的缺點(diǎn)
HTTP主要有這些不足:
通信使用明文,內(nèi)容可能被竊聽

不驗(yàn)證通信方身份,因此有可能遭遇偽裝

無法驗(yàn)證報(bào)文的完整性,所有有可能已篡改

HTTP + 加密 + 認(rèn)證 + 完整性保護(hù) = HTTPS

HTTPS是身披SSL外殼的HTTP
通常情況下HTTP是直接和TCP層進(jìn)行通信的。當(dāng)使用SSL(安全套階字)時(shí),則演變成HTTP先和SSL通信,SSL再和TCP通信的了。

加密技術(shù)
講解SSL前,科普一下加密方法,SSL采用的是一種叫做公開密鑰加密的加密處理方式
對(duì)稱加密
加密和解密用的一個(gè)密鑰的方式稱為對(duì)稱加密,也叫做共享密鑰加密

對(duì)稱加密在發(fā)送加密信息時(shí)也需要將密鑰發(fā)送給對(duì)方,但這樣可以被攻擊者截取,就不安全啦~

非對(duì)稱加密
非對(duì)稱加密又稱作公開密鑰加密,它很好的解決了對(duì)稱加密密鑰被截取的問題。
非對(duì)稱加密采用一對(duì)非對(duì)稱的密鑰,一把叫做私有密鑰,一把叫做共有密鑰。
使用非對(duì)稱加密,發(fā)送密文一方使用對(duì)方的共有密鑰進(jìn)行加密處理,對(duì)方收到加密信息后,再使用自己的私有密鑰進(jìn)行解密。

HTTPS采用混合加密機(jī)制
HTTPS采用對(duì)稱加密和非對(duì)稱加密所混合的加密機(jī)制。
若密鑰能安全交換,那么有可能僅考慮非對(duì)稱加密。
但是非對(duì)稱加密與對(duì)稱加密相比,處理速度相對(duì)較慢。

公開密鑰的認(rèn)證
使用數(shù)字證書認(rèn)證機(jī)構(gòu)和其頒布的公開密鑰證書進(jìn)行認(rèn)證。即讓第三方獨(dú)立機(jī)構(gòu)進(jìn)行驗(yàn)證。


私有密鑰是保存在服務(wù)器端的~
注意⚠️:認(rèn)證是要錢的!!!
HTTPS安全通信機(jī)制

下圖是完整的HTTPS的通信過程

為什么HTTPS不是那么普及
1.加密通信與純文本通信相比,消耗更多的CPU和內(nèi)存資源
2.購買證書是要錢的!
3.少許對(duì)客戶端有要求的情況下,會(huì)要求客戶端也必須有一個(gè)證書.
這里客戶端證書,其實(shí)就類似表示個(gè)人信息的時(shí)候,除了用戶名/密碼, 還有一個(gè)CA 認(rèn)證過的身份. 應(yīng)為個(gè)人證書一般來說上別人無法模擬的,所有這樣能夠更深的確認(rèn)自己的身份
目前少數(shù)個(gè)人銀行的專業(yè)版是這種做法,具體證書可能是拿U盤作為一個(gè)備份的載體
HTTPS 一定是繁瑣的
1.本來簡單的http協(xié)議,一個(gè)get一個(gè)response. 由于https 要還密鑰和確認(rèn)加密算法的需要.單握手就需要6/7 個(gè)往返,任何應(yīng)用中,過多的round trip 肯定影響性能.
2.接下來才是具體的http協(xié)議,每一次響應(yīng)或者請(qǐng)求, 都要求客戶端和服務(wù)端對(duì)會(huì)話的內(nèi)容做加密/解密,盡管對(duì)稱加密/解密效率比較高,可是仍然要消耗過多的CPU,為此有專門的SSL 芯片. 如果CPU 信能比較低的話,肯定會(huì)降低性能,從而不能serve 更多的請(qǐng)求,加密后數(shù)據(jù)量的影響. 所以,才會(huì)出現(xiàn)那么多的安全認(rèn)證提示
網(wǎng)站使用https的好處與壞處
今天我們重點(diǎn)討論一下網(wǎng)站使用https的好處與壞處,如果有對(duì)https原理不了解的小伙伴,可以參考百恒之前寫的http和https的關(guān)系與區(qū)別(附圖解)。
https的好處
1、SEO方面
谷歌曾在2014年8月份調(diào)整搜索引擎算法,并稱“比起同等http網(wǎng)站,采用https加密的網(wǎng)站在搜索結(jié)果中的排名將會(huì)更高。”
百度也于去年也在站長平臺(tái)聲明,https有一定的排名優(yōu)待。
2、安全性
盡管https并非絕對(duì)安全,掌握根證書的機(jī)構(gòu)、掌握加密算法的組織同樣可以進(jìn)行中間人形式的公司,但https仍是現(xiàn)行架構(gòu)下最安全的解決方案,主要有以下幾個(gè)好處:
(1)、使用https協(xié)議可認(rèn)證用戶和服務(wù)器,確保數(shù)據(jù)發(fā)送到正確的客戶機(jī)和服務(wù)器;
(2)、https協(xié)議是由SSL+http協(xié)議構(gòu)建的可進(jìn)行加密傳輸、身份認(rèn)證的網(wǎng)絡(luò)協(xié)議,要比http協(xié)議安全,可防止數(shù)據(jù)在傳輸過程中不被竊取、改變,確保數(shù)據(jù)的完整性。
(3)、https是現(xiàn)行架構(gòu)下最安全的解決方案,雖然不是絕對(duì)安全,但它大幅增加了中間人攻擊的成本。
https的壞處
雖然說https有很大的優(yōu)勢(shì),但其相對(duì)來說,還是有些不足之處,具體來說,有以下2點(diǎn):
1、SEO方面
據(jù)ACM CoNEXT數(shù)據(jù)顯示,使用https協(xié)議會(huì)使頁面的加載時(shí)間延長近50%,增加10%到20%的耗電,此外,https協(xié)議還會(huì)影響緩存,增加數(shù)據(jù)開銷和功耗,甚至已有安全措施也會(huì)受到影響也會(huì)因此而受到影響。
而https協(xié)議的加密范圍也比較有限,在黑客攻擊、拒絕服務(wù)攻擊、服務(wù)器劫持等方案幾乎起不到什么作用。
最關(guān)鍵的,SSL證書的信用鏈體系并不安全,特別是在某些國家可以控制CA根證書的情況下,中間人攻擊一樣可行。
2、經(jīng)濟(jì)方面
(1)、SSL證書需要去,功能越強(qiáng)大的證書費(fèi)用越高,個(gè)人網(wǎng)站、小網(wǎng)站沒有必要一般不會(huì)用。
(2)、SSL證書通常需要綁定IP,不能再同一IP上綁定多個(gè)域名,IPv4資源不可能支撐這個(gè)消耗(SSL有擴(kuò)展可以部分解決這個(gè)問題,但是比較麻煩,而且要求瀏覽器、操作系統(tǒng)支持,Windows XP就不支持這個(gè)擴(kuò)展,考慮到XP的裝機(jī)量,這個(gè)特性幾乎沒用)。
(3)、https連接緩存不如http高效,大流量網(wǎng)站如非必要也不會(huì)采用,流量成本太高。
(4)、https連接服務(wù)器端資源占用高很多,支持訪客稍多的網(wǎng)站需要投入更大的成本,如果全部采用https,基于大部分計(jì)算資源閑置的假設(shè)的VPS的平均成本會(huì)上去。
(5)、https協(xié)議握手階段比較費(fèi)時(shí),對(duì)網(wǎng)站的響應(yīng)速度有負(fù)面影響,如非必要,沒有理由犧牲用戶體驗(yàn)。
當(dāng)然了,現(xiàn)在https已經(jīng)趨于成熟,很多缺點(diǎn)是可以優(yōu)化和彌補(bǔ)的。比如:打開速度問題完全可以通過CDN加速解決,很多IDC也在著手推出免費(fèi)證書和一站式https搭建服務(wù),不久https成本將會(huì)大大縮小!