為您解碼網(wǎng)站建設(shè)的點(diǎn)點(diǎn)滴滴
發(fā)表日期:2018-02 文章編輯:小燈 瀏覽次數(shù):2691
在一般情況下我們上網(wǎng)采用的超文本傳輸協(xié)議為http協(xié)議,https協(xié)議的全稱為Hypertext Transfer Protocol over Secure Socket Layer,相比http多了一個(gè)Secure,簡(jiǎn)單來(lái)說(shuō)就是http的安全版。
由于http是以明文方式發(fā)送內(nèi)容,不提供任何加密,因此當(dāng)攻擊者截獲了web瀏覽器和網(wǎng)站服務(wù)器之間的傳輸報(bào)文,就可以讀取其中的信息,用戶就可能泄露自己的敏感信息,如支付密碼,身份證號(hào)等等。那么為了解決這個(gè)問題,網(wǎng)景公司最早提出了SSL協(xié)議,在http的基礎(chǔ)上加入了SSL協(xié)議,SSL依靠證書來(lái)為瀏覽器和服務(wù)器之間的通信加密。
那么http與https的主要區(qū)別有哪些呢。
1、https協(xié)議需要到ca申請(qǐng)證書,一般免費(fèi)證書較少,因而需要一定費(fèi)用。
2、http是超文本傳輸協(xié)議,信息是明文傳輸,https則是具有安全性的ssl加密傳輸協(xié)議。
3、http和https使用的是完全不同的連接方式,用的端口也不一樣,前者是80,后者是443。
4、http的連接很簡(jiǎn)單,是無(wú)狀態(tài)的;HTTPS協(xié)議是由SSL+HTTP協(xié)議構(gòu)建的可進(jìn)行加密傳輸、身份認(rèn)證的網(wǎng)絡(luò)協(xié)議,比http協(xié)議安全。
那么https是如何工作的呢
這里只做簡(jiǎn)單的說(shuō)明,詳細(xì)內(nèi)容可以參考http://www.moserware.com/2009/06/first-few-milliseconds-of-https.html
在http握手之后,要進(jìn)行SSL握手,分為以下四步
1.首先客戶使用https的url訪問服務(wù)器,要求與服務(wù)器建立安全連接。這時(shí)候就需要客戶端與服務(wù)器協(xié)商我們接下來(lái)的加密應(yīng)該怎么做??蛻舳讼雀嬖V服務(wù)器,我的瀏覽器支持哪些加密方法,我的版本是什么,等等。然后服務(wù)器知道了之后,從客戶端支持的加密方法中隨機(jī)選擇一種,然后告訴客戶端。
2.這時(shí)候就會(huì)有一個(gè)問題,網(wǎng)站怎么證明自己是一個(gè)清白的網(wǎng)站,這就需要一個(gè)公認(rèn)的證書來(lái)證明自己的清白,就是certification,這個(gè)證書是由CA頒布的,CA的證書上有它的簽名,如果用戶信任這個(gè)證書而遭到了損失,是可以通過這個(gè)證書追求法律責(zé)任的。這時(shí)候服務(wù)器就把證書和公鑰發(fā)送給了用戶。那公鑰又是什么呢,這個(gè)是由于安全過程采用了密鑰交換算法,這個(gè)交換算法需要這一步驟。
3.客戶收到了證書與密鑰之后,第一步要向服務(wù)器證明自己也是清白的(這一步可選),也發(fā)送一個(gè)自己的證書信息,第二步是瀏覽器生成會(huì)話密鑰并用公鑰加密,告訴服務(wù)器。第三步是告訴服務(wù)器我已經(jīng)擁有你的證書和公鑰了(可選)。
4.最后兩方再一次交換密鑰,這個(gè)交換過程是為了防止密鑰被攻擊者修改。
經(jīng)歷了SSL握手之后,客戶和服務(wù)器就可以通過會(huì)話密鑰加密通信。
同時(shí)在通信過程中,SSL中還有一個(gè)警報(bào)協(xié)議來(lái)保護(hù)出現(xiàn)問題的情況,一旦出現(xiàn)錯(cuò)誤立刻發(fā)出警報(bào),如果是致命錯(cuò)誤,會(huì)立即關(guān)閉SSL連接并刪除會(huì)話,密鑰等信息。
那么問題就出現(xiàn)了。為什么這種安全的協(xié)議不在所有網(wǎng)站上使用起來(lái)呢。
因?yàn)閔ttps協(xié)議也有一些不好的地方,
1.首先它更耗時(shí),畢竟多了握手的過程與加密的過程。
2.SSL證書需要錢,小網(wǎng)站一般不會(huì)用。
3.SSL證書需要綁定IP,不能再一個(gè)IP上綁定多個(gè)域名,IPV4資源不能支撐這個(gè)消耗
4.它的加密范圍有限,只能在某些方面安全,有些國(guó)家控制CA證書,中間人攻擊一樣可行。
提到它更耗時(shí),那么我們簡(jiǎn)單的來(lái)看一下它到底多么耗時(shí)。
在linux命令窗口輸入:
-w "TCP handshake: %{time_connect}, SSL handshake: %{time_appconnect}\n" -so /dev/null https://www.alipay.com
上面命令中的w參數(shù)表示指定輸出格式,time_connect變量表示TCP握手的耗時(shí),time_appconnect變量表示SSL握手的耗時(shí),s參數(shù)和o參數(shù)用來(lái)關(guān)閉標(biāo)準(zhǔn)輸出。
我運(yùn)行了多次,結(jié)果分別為:(單位是秒)
TCP handshake: 0.053, SSL handshake: 0.288
TCP handshake: 0.055, SSL handshake: 0.297
TCP handshake: 0.078, SSL handshake: 0.345
TCP handshake: 0.081, SSL handshake: 0.347
TCP handshake: 0.072, SSL handshake: 0.319
可以看到,在建立連接階段,TCP+SSL握手的耗時(shí)就要遠(yuǎn)高于TCP握手,大約為4-5倍
因此在安全度不高的情況下,能不用SSL就別用了。
日期:2018-04 瀏覽次數(shù):6777
日期:2017-02 瀏覽次數(shù):3456
日期:2017-09 瀏覽次數(shù):3676
日期:2017-12 瀏覽次數(shù):3544
日期:2018-12 瀏覽次數(shù):4843
日期:2016-12 瀏覽次數(shù):4595
日期:2017-07 瀏覽次數(shù):13659
日期:2017-12 瀏覽次數(shù):3522
日期:2018-06 瀏覽次數(shù):4279
日期:2018-05 瀏覽次數(shù):4458
日期:2017-12 瀏覽次數(shù):3570
日期:2017-06 瀏覽次數(shù):3995
日期:2018-01 瀏覽次數(shù):3958
日期:2016-12 瀏覽次數(shù):3925
日期:2018-08 瀏覽次數(shù):4441
日期:2017-12 瀏覽次數(shù):3733
日期:2016-09 瀏覽次數(shù):6453
日期:2018-07 瀏覽次數(shù):3223
日期:2016-12 瀏覽次數(shù):3241
日期:2018-10 瀏覽次數(shù):3396
日期:2018-10 瀏覽次數(shù):3503
日期:2018-09 瀏覽次數(shù):3593
日期:2018-02 瀏覽次數(shù):3611
日期:2015-05 瀏覽次數(shù):3538
日期:2018-09 瀏覽次數(shù):3318
日期:2018-06 瀏覽次數(shù):3448
日期:2017-02 瀏覽次數(shù):3884
日期:2018-02 瀏覽次數(shù):4347
日期:2018-02 瀏覽次數(shù):4191
日期:2016-12 瀏覽次數(shù):3587
Copyright ? 2013-2018 Tadeng NetWork Technology Co., LTD. All Rights Reserved.