https和http有何區(qū)別?HTTPS的七個(gè)誤解
https和http我們經(jīng)常見(jiàn)到的url形式,這兩種有什么區(qū)別,恐怕大家都不太理解,現(xiàn)在我們就簡(jiǎn)單介紹一下他們之間的異同。
首先談?wù)勈裁词荋TTPS:
HTTPS(Secure Hypertext Transfer Protocol)安全超文本傳輸協(xié)議 它是一個(gè)安全通信通道,它基于HTTP開(kāi)發(fā),用于在客戶計(jì)算機(jī)和服務(wù)器之間交換信息。它使用安全套接字層(SSL)進(jìn)行信息交換,簡(jiǎn)單來(lái)說(shuō)它是HTTP的安全版。 它是由Netscape開(kāi)發(fā)并內(nèi)置于其瀏覽器中,用于對(duì)數(shù)據(jù)進(jìn)行壓縮和解壓操作,并返回網(wǎng)絡(luò)上傳送回的結(jié)果。
HTTPS實(shí)際上應(yīng)用了Netscape的安 全全套接字層(SSL)作為HTTP應(yīng)用層的子層。(HTTPS使用端口443,而不是象HTTP那樣使用端口80來(lái)和TCP/IP進(jìn)行通信。)SSL使 用40 位關(guān)鍵字作為RC4流加密算法,這對(duì)于商業(yè)信息的加密是合適的。HTTPS和SSL支持使用X。509數(shù)字認(rèn)證,如果需要的話用戶可以確認(rèn)發(fā)送者是誰(shuí)。
HTTPS和HTTP的區(qū)別:
https協(xié)議需要到ca申請(qǐng)證書(shū),一般免費(fèi)證書(shū)很少,需要交費(fèi)。
http是超文本傳輸協(xié)議,信息是明文傳輸,https 則是具有安全性的ssl加密傳輸協(xié)議 http和https使用的是完全不同的連接方式用的端口也不一樣:前者是80,后者是443。
http的連接很簡(jiǎn)單,是無(wú)狀態(tài)的 HTTPS協(xié)議是由SSL+HTTP協(xié)議構(gòu)建的可進(jìn)行加密傳輸、身份認(rèn)證的網(wǎng)絡(luò)協(xié)議 要比http協(xié)議安全 HTTPS解決的問(wèn)題:
1、信任主機(jī)的問(wèn)題。 采用https 的server 必須從CA 申請(qǐng)一個(gè)用于證明服務(wù)器用途類型的證書(shū)。
改證書(shū)只有用于對(duì)應(yīng)的server 的時(shí)候,客戶度才信任次主機(jī)。所以目前所有的銀行系統(tǒng)網(wǎng)站,關(guān)鍵部分應(yīng)用都是https 的。 客戶通過(guò)信任該證書(shū),從而信任了該主機(jī)。其實(shí)這樣做效率很低,但是銀行更側(cè)重安全。 這一點(diǎn)對(duì)我們沒(méi)有任何意義,我們的server,采用的證書(shū)不管自己issue 還是從公眾的地方issue, 客戶端都是自己人,所以我們也就肯定信任該server。
2、通訊過(guò)程中的數(shù)據(jù)的泄密和被竄改。
1)一般意義上的https, 就是 server 有一個(gè)證書(shū)。
a) 主要目的是保證server 就是他聲稱的server。這個(gè)跟第一點(diǎn)一樣。
b) 服務(wù)端和客戶端之間的所有通訊,都是加密的。
i、具體講,是客戶端產(chǎn)生一個(gè)對(duì)稱的密鑰,通過(guò)server 的證書(shū)來(lái)交換密鑰。 一般意義上的握手過(guò)程。
ii、加下來(lái)所有的信息往來(lái)就都是加密的。 第三方即使截獲,也沒(méi)有任何意義。因?yàn)樗麤](méi)有密鑰。 當(dāng)然竄改也就沒(méi)有什么意義了。
2)少許對(duì)客戶端有要求的情況下,會(huì)要求客戶端也必須有一個(gè)證書(shū)。
a) 這里客戶端證書(shū),其實(shí)就類似表示個(gè)人信息的時(shí)候,除了用戶名/密碼, 還有一個(gè)CA 認(rèn)證過(guò)的身份。 應(yīng)為個(gè)人證書(shū)一般來(lái)說(shuō)上別人無(wú)法模擬的,所有這樣能夠更深的確認(rèn)自己的身份。
b) 目前少數(shù)個(gè)人銀行的專業(yè)版是這種做法,具體證書(shū)可能是拿U盤(pán)作為一個(gè)備份的載體。像我用的交通銀行的網(wǎng)上銀行就是采取的這種方式。 HTTPS 一定是繁瑣的。
a) 本來(lái)簡(jiǎn)單的http協(xié)議,一個(gè)get一個(gè)response。由于https 要還密鑰和確認(rèn)加密算法的需要。單握手就需要6/7 個(gè)往返。
i、任何應(yīng)用中,過(guò)多的round trip 肯定影響性能。
b) 接下來(lái)才是具體的http協(xié)議,每一次響應(yīng)或者請(qǐng)求, 都要求客戶端和服務(wù)端對(duì)會(huì)話的內(nèi)容做加密/解密。
i、盡管對(duì)稱加密/解密效率比較高,可是仍然要消耗過(guò)多的CPU,為此有專門(mén)的SSL 芯片。 如果CPU 信能比較低的話,肯定會(huì)降低性能,從而不能serve 更多的請(qǐng)求。
附:SSL的簡(jiǎn)介:
SSL是Netscape公司所提出的安全保密協(xié)議,在瀏覽器(如Internet Explorer、Netscape Navigator)和Web服務(wù)器(如Netscape的Netscape Enterprise Server、ColdFusion Server等等)之間構(gòu)造安全通道來(lái)進(jìn)行數(shù)據(jù)傳輸,SSL運(yùn)行在TCP/IP層之上、應(yīng)用層之下,為應(yīng)用程序提供加密數(shù)據(jù)通道,它采用了RC4、MD5 以及RSA等加密算法,使用40 位的密鑰,適用于商業(yè)信息的加密。
同時(shí),Netscape公司相應(yīng)開(kāi)發(fā)了HTTPS協(xié)議并內(nèi)置于其瀏覽器中,HTTPS實(shí)際上就是SSL over HTTP,它使用默認(rèn)端口443,而不是像HTTP那樣使用端口80來(lái)和TCP/IP進(jìn)行通信。HTTPS協(xié)議使用SSL在發(fā)送方把原始數(shù)據(jù)進(jìn)行加密,然 后在接受方進(jìn)行解密,加密和解密需要發(fā)送方和接受方通過(guò)交換共知的密鑰來(lái)實(shí)現(xiàn),因此,所傳送的數(shù)據(jù)不容易被網(wǎng)絡(luò)黑客截獲和解密。
然而,加密和解密過(guò)程需要耗費(fèi)系統(tǒng)大量的開(kāi)銷,嚴(yán)重降低機(jī)器的性能,相關(guān)測(cè)試數(shù)據(jù)表明使用HTTPS協(xié)議傳輸數(shù)據(jù)的工作效率只有使用HTTP協(xié)議傳輸?shù)氖?分之一。
假如為了安全保密,將一個(gè)網(wǎng)站所有的Web應(yīng)用都啟用SSL技術(shù)來(lái)加密,并使用HTTPS協(xié)議進(jìn)行傳輸,那么該網(wǎng)站的性能和效率將會(huì)大大降低,而且沒(méi)有這個(gè)必要,因?yàn)橐话銇?lái)說(shuō)并不是所有數(shù)據(jù)都要求那么高的安全保密級(jí)別,所以,我們只需對(duì)那些涉及機(jī)密數(shù)據(jù)的交互處理使用HTTPS協(xié)議,這樣就做到魚(yú)與熊掌兼得??傊恍枰胔ttps 的地方,就盡量不要用。
HTTPS的七個(gè)誤解
誤解七:HTTPS無(wú)法緩存
許多人以為,出于安全考慮,瀏覽器不會(huì)在本地保存HTTPS緩存。實(shí)際上,只要在HTTP頭中使用特定命令,HTTPS是可以緩存的。
微軟的IE項(xiàng)目經(jīng)理Eric Lawrence寫(xiě)道:
"說(shuō)來(lái)也許令人震驚,只要HTTP頭允許這樣做,所有版本的IE都緩存HTTPS內(nèi)容。比如,如果頭命令是Cache-Control:max-age=600,那么這個(gè)網(wǎng)頁(yè)就將被IE緩存10分鐘。IE的緩存策略,與是否使用HTTPS協(xié)議無(wú)關(guān)。(其他瀏覽器在這方面的行為不一致,取決于你使用的版本,所以這里不加以討論。)"
Firefox默認(rèn)只在內(nèi)存中緩存HTTPS。但是,只要頭命令中有Cache-Control:Public,緩存就會(huì)被寫(xiě)到硬盤(pán)上。下面的圖片顯示,F(xiàn)irefox的硬盤(pán)緩存中有HTTPS內(nèi)容,頭命令正是Cache-Control:Public。
誤解六:SSL證書(shū)很貴
如果你在網(wǎng)上搜一下,就會(huì)發(fā)現(xiàn)很多便宜的SSL證書(shū),大概10美元一年,這和一個(gè).com域名的年費(fèi)差不多。而且事實(shí)上,還能找到免費(fèi)的SSL證書(shū)。
在效力上,便宜的證書(shū)當(dāng)然會(huì)比大機(jī)構(gòu)頒發(fā)的證書(shū)差一點(diǎn),但是幾乎所有的主流瀏覽器都接受這些證書(shū)。
誤解五:HTTPS站點(diǎn)必須有獨(dú)享的IP地址
由于IPv4將要分配完畢,所以很多人關(guān)心這個(gè)問(wèn)題。每個(gè)IP地址只能安裝一張SSL證書(shū),這是毫無(wú)疑問(wèn)的。但是,如果你使用子域名通配符SSL證書(shū)(wildcard SSL certificate,價(jià)格大約是每年125美元),就能在一個(gè)IP地址上部署多個(gè)HTTPS子域名。比如,https://www.httpwatch.com和https://store.httpwatch.com,就共享同一個(gè)IP地址。
另外,UCC(統(tǒng)一通信證書(shū),Unified Communications Certificate)支持一張證書(shū)同時(shí)匹配多個(gè)站點(diǎn),可以是完全不同的域名。SNI(服務(wù)器名稱指示,Server Name Indication)允許一個(gè)IP地址上多個(gè)域名安裝多張證書(shū)。服務(wù)器端,Apache和Nginx支持該技術(shù),IIS不支持;客戶端,IE7+、Firefox 2.0+、Chrome 6+、Safari 2.1+和Opera 8.0+支持。
誤解四:轉(zhuǎn)移服務(wù)器時(shí)要購(gòu)買(mǎi)新證書(shū)
部署SSL證書(shū),需要這樣幾步:
1. 在你的服務(wù)器上,生成一個(gè)CSR文件(SSL證書(shū)請(qǐng)求文件,SSL Certificate Signing Request)。
2. 使用CSR文件,購(gòu)買(mǎi)SSL證書(shū)。
3. 安裝SSL證書(shū)。
這些步驟都經(jīng)過(guò)精心設(shè)計(jì),保證傳輸?shù)陌踩乐褂腥私厝』蚍欠ǐ@得證書(shū)。結(jié)果就是,你在第二步得到的證書(shū)不能用在另一臺(tái)服務(wù)器上。如果你需要這樣做,就必須以其他格式輸出證書(shū)。
比如,IIS的做法是生成一個(gè)可以轉(zhuǎn)移的.pfx文件,并加以密碼保護(hù)。
將這個(gè)文件傳入其他服務(wù)器,將可以繼續(xù)使用原來(lái)的SSL證書(shū)了。
誤解三:HTTPS太慢
使用HTTPS不會(huì)使你的網(wǎng)站變得更快(實(shí)際上有可能,請(qǐng)看下文),但是有一些技巧可以大大減少額外開(kāi)銷。
首先,只要壓縮文本內(nèi)容,就會(huì)降低解碼耗用的CPU資源。不過(guò),對(duì)于當(dāng)代CPU來(lái)說(shuō),這點(diǎn)開(kāi)銷不值一提。
其次,建立HTTPS連接,要求額外的TCP往返,因此會(huì)新增一些發(fā)送和接收的字節(jié)。但是,從下圖可以看到,新增的字節(jié)是很少的。
第一次打開(kāi)網(wǎng)頁(yè)的時(shí)候,HTTPS協(xié)議會(huì)比HTTP協(xié)議慢一點(diǎn),這是因?yàn)樽x取和驗(yàn)證SSL證書(shū)的時(shí)間。下面是一張HTTP網(wǎng)頁(yè)打開(kāi)時(shí)間的瀑布圖。
同一張網(wǎng)頁(yè)使用HTTPS協(xié)議之后,打開(kāi)時(shí)間變長(zhǎng)了。
建立連接的部分,大約慢了10%。但是,一旦有效的HTTPS連接建立起來(lái),再刷新網(wǎng)頁(yè),兩種協(xié)議幾乎沒(méi)有區(qū)別。先是HTTP協(xié)議的刷新表現(xiàn):
然后是HTTPS協(xié)議:
某些用戶可能發(fā)現(xiàn),HTTPS比HTTP更快一點(diǎn)。這會(huì)發(fā)生在一些大公司的內(nèi)部局域網(wǎng),因?yàn)橥ǔG闆r下,公司的網(wǎng)關(guān)會(huì)截取并分析所有的網(wǎng)絡(luò)通信。但 是,當(dāng)它遇到HTTPS連接時(shí),它就只能直接放行,因?yàn)镠TTPS無(wú)法被解讀。正是因?yàn)樯倭诉@個(gè)解讀的過(guò)程,所以HTTPS變得比較快。
誤解二:有了HTTPS,Cookie和查詢字符串就安全了
雖然無(wú)法直接從HTTPS數(shù)據(jù)中讀取Cookie和查詢字符串,但是你仍然需要使它們的值變得難以預(yù)測(cè)。
比如,曾經(jīng)有一家英國(guó)銀行,直接使用順序排列的數(shù)值表示session id:
黑客可以先注冊(cè)一個(gè)賬戶,找到這個(gè)cookie,看到這個(gè)值的表示方法。然后,改動(dòng)cookie,從而劫持其他人的session id。至于查詢字符串,也可以通過(guò)類似方式泄漏。
誤解一:只有注冊(cè)登錄頁(yè),才需要HTTPS
這種想法很普遍。人們覺(jué)得,HTTPS可以保護(hù)用戶的密碼,此外就不需要了。Firefox瀏覽器新插件Firesheep,證明了這種想法是錯(cuò)的。我們可以看到,在Twitter和Facebook上,劫持其他人的session是非常容易的。
咖啡館的免費(fèi)WiFi,就是一個(gè)很理想的劫持環(huán)境,因?yàn)閮蓚€(gè)原因:
1. 這種WiFi通常不會(huì)加密,所以很容易監(jiān)控所有流量。
2. WiFi通常使用NAT進(jìn)行外網(wǎng)和內(nèi)網(wǎng)的地址轉(zhuǎn)換,所有內(nèi)網(wǎng)客戶端都共享一個(gè)外網(wǎng)地址。這意味著,被劫持的session,看上去很像來(lái)自原來(lái)的登錄者。
以Twitter為例,它的登錄頁(yè)使用了HTTPS,但是登錄以后,其他頁(yè)面就變成了HTTP。這時(shí),它的cookie里的session值就暴露了。
也就是說(shuō),這些cookie是在HTTPS環(huán)境下建立的,但是卻在HTTP環(huán)境下傳輸。如果有人劫持到這些cookie,那他就能以你的身份在Twitter上發(fā)言了。
說(shuō)明:本文由SEO369團(tuán)隊(duì)編輯整理,有侵犯權(quán)益的地方請(qǐng)聯(lián)系站長(zhǎng)刪除,如果需要了解更過(guò)SEO方面的知識(shí)請(qǐng)關(guān)注SEO369。
- 頻道總排行
- 新網(wǎng)站的SEO優(yōu)化排名應(yīng)該注意的幾個(gè)問(wèn)題
- https和http有何區(qū)別?HTTPS的七個(gè)誤解
- SEO優(yōu)化這樣修改簡(jiǎn)單網(wǎng)頁(yè)模板更加好
- 做SEO運(yùn)營(yíng)5個(gè)實(shí)用的思維技巧
- SEO優(yōu)化給你更好的用戶體驗(yàn)
- 網(wǎng)站常規(guī)的SEO優(yōu)化步驟有哪些?
- 網(wǎng)站優(yōu)化切忌十點(diǎn)
- 關(guān)于seo優(yōu)化技術(shù)之內(nèi)鏈的使用方法
- SEO優(yōu)化應(yīng)該要避免的四個(gè)操作誤區(qū)
- SEO優(yōu)化百度為什么喜歡原創(chuàng)文章
- 您可能還想了解
- 南寧網(wǎng)站優(yōu)化網(wǎng)站結(jié)構(gòu)優(yōu)化之網(wǎng)站導(dǎo)航優(yōu)化全解析
- 吉林網(wǎng)站優(yōu)化中解析搜索引擎的基本原理
- 湖北網(wǎng)站建設(shè)談網(wǎng)站內(nèi)容的更新方向
- 貴州網(wǎng)站優(yōu)化建立網(wǎng)站的幾個(gè)步驟
- 黑龍江seo:如何應(yīng)對(duì)網(wǎng)絡(luò)關(guān)鍵詞的重要特性
- 安徽網(wǎng)站優(yōu)化如何提升體驗(yàn)
- 廣西網(wǎng)站優(yōu)化過(guò)程中JS代碼的使用
- 廣州網(wǎng)站優(yōu)化公司的一些情況分析
- 福建建設(shè)中如何合理設(shè)計(jì)回退功能
- 廣州網(wǎng)站優(yōu)化上線之前需要檢查的13個(gè)問(wèn)題