為您解碼網(wǎng)站建設(shè)的點(diǎn)點(diǎn)滴滴
發(fā)表日期:2017-07 文章編輯:小燈 瀏覽次數(shù):13642
HTTP:是互聯(lián)網(wǎng)上應(yīng)用最為廣泛的一種網(wǎng)絡(luò)協(xié)議,是一個(gè)客戶端和服務(wù)器端請求和應(yīng)答的標(biāo)準(zhǔn)(TCP),用于從WWW服務(wù)器傳輸超文本到本地瀏覽器的傳輸協(xié)議,它可以使瀏覽器更加高效,使網(wǎng)絡(luò)傳輸減少。
HTTPS:是以安全為目標(biāo)的HTTP通道,簡單講是HTTP的安全版,即HTTP下加入SSL層,HTTPS的安全基礎(chǔ)是SSL,因此加密的詳細(xì)內(nèi)容就需要SSL。
HTTPS協(xié)議的主要作用可以分為兩種:一種是建立一個(gè)信息安全通道,來保證數(shù)據(jù)傳輸?shù)陌踩涣硪环N就是確認(rèn)網(wǎng)站的真實(shí)性。
HTTP協(xié)議傳輸?shù)臄?shù)據(jù)都是未加密的,也就是明文的,因此使用HTTP協(xié)議傳輸隱私信息非常不安全,為了保證這些隱私數(shù)據(jù)能加密傳輸,于是網(wǎng)景公司設(shè)計(jì)了SSL(Secure Sockets Layer)協(xié)議用于對HTTP協(xié)議傳輸?shù)臄?shù)據(jù)進(jìn)行加密,從而就誕生了HTTPS。簡單來說,HTTPS協(xié)議是由SSL+HTTP協(xié)議構(gòu)建的可進(jìn)行加密傳輸、身份認(rèn)證的網(wǎng)絡(luò)協(xié)議,要比http協(xié)議安全。
HTTPS和HTTP的區(qū)別主要如下:
1、https協(xié)議需要到ca申請證書,一般免費(fèi)證書較少,因而需要一定費(fèi)用。
2、http是超文本傳輸協(xié)議,信息是明文傳輸,https則是具有安全性的ssl加密傳輸協(xié)議。
3、http和https使用的是完全不同的連接方式,用的端口也不一樣,前者是80,后者是443。
4、http的連接很簡單,是無狀態(tài)的;HTTPS協(xié)議是由SSL+HTTP協(xié)議構(gòu)建的可進(jìn)行加密傳輸、身份認(rèn)證的網(wǎng)絡(luò)協(xié)議,比http協(xié)議安全。
我們都知道HTTPS能夠加密信息,以免敏感信息被第三方獲取,所以很多銀行網(wǎng)站或電子郵箱等等安全級(jí)別較高的服務(wù)都會(huì)采用HTTPS協(xié)議。
客戶端在使用HTTPS方式與Web服務(wù)器通信時(shí)有以下幾個(gè)步驟,如圖所示。
(1)客戶使用https的URL訪問Web服務(wù)器,要求與Web服務(wù)器建立SSL連接。
(2)Web服務(wù)器收到客戶端請求后,會(huì)將網(wǎng)站的證書信息(證書中包含公鑰)傳送一份給客戶端。
(3)客戶端的瀏覽器與Web服務(wù)器開始協(xié)商SSL連接的安全等級(jí),也就是信息加密的等級(jí)。
(4)客戶端的瀏覽器根據(jù)雙方同意的安全等級(jí),建立會(huì)話密鑰,然后利用網(wǎng)站的公鑰將會(huì)話密鑰加密,并傳送給網(wǎng)站。
(5)Web服務(wù)器利用自己的私鑰解密出會(huì)話密鑰。
(6)Web服務(wù)器利用會(huì)話密鑰加密與客戶端之間的通信。
盡管HTTPS并非絕對安全,掌握根證書的機(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)下最安全的解決方案,雖然不是絕對安全,但它大幅增加了中間人攻擊的成本。
(4)谷歌曾在2014年8月份調(diào)整搜索引擎算法,并稱“比起同等HTTP網(wǎng)站,采用HTTPS加密的網(wǎng)站在搜索結(jié)果中的排名將會(huì)更高”。
雖然說HTTPS有很大的優(yōu)勢,但其相對來說,還是存在不足之處的:
(1)HTTPS協(xié)議握手階段比較費(fèi)時(shí),會(huì)使頁面的加載時(shí)間延長近50%,增加10%到20%的耗電;
(2)HTTPS連接緩存不如HTTP高效,會(huì)增加數(shù)據(jù)開銷和功耗,甚至已有的安全措施也會(huì)因此而受到影響;
(3)SSL證書需要錢,功能越強(qiáng)大的證書費(fèi)用越高,個(gè)人網(wǎng)站、小網(wǎng)站沒有必要一般不會(huì)用。
(4)SSL證書通常需要綁定IP,不能在同一IP上綁定多個(gè)域名,IPv4資源不可能支撐這個(gè)消耗。
(5)HTTPS協(xié)議的加密范圍也比較有限,在黑客攻擊、拒絕服務(wù)攻擊、服務(wù)器劫持等方面幾乎起不到什么作用。最關(guān)鍵的,SSL證書的信用鏈體系并不安全,特別是在某些國家可以控制CA根證書的情況下,中間人攻擊一樣可行。
如果需要將網(wǎng)站從http切換到https到底該如何實(shí)現(xiàn)呢?
這里需要將頁面中所有的鏈接,例如js,css,圖片等等鏈接都由http改為https。例如:http://www.baidu.com改為https://www.baidu.com
BTW,這里雖然將http切換為了https,還是建議保留http。所以我們在切換的時(shí)候可以做http和https的兼容,具體實(shí)現(xiàn)方式是,去掉頁面鏈接中的http頭部,這樣可以自動(dòng)匹配http頭和https頭。例如:將http://www.baidu.com改為//www.baidu.com。然后當(dāng)用戶從http的入口進(jìn)入訪問頁面時(shí),頁面就是http,如果用戶是從https的入口進(jìn)入訪問頁面,頁面即使https的。
SSL介紹:
安全套接字(Secure Socket Layer,SSL)協(xié)議是Web瀏覽器與Web服務(wù)器之間安全交換信息的協(xié)議,提供兩個(gè)基本的安全服務(wù):鑒別與保密。
SSL是Netscape于1994年開發(fā)的,后來成為了世界上最著名的web安全機(jī)制,所有主要的瀏覽器都支持SSL協(xié)議。
目前有三個(gè)版本:2、3、3.1,最常用的是第3版,是1995年發(fā)布的。
在客戶端與服務(wù)器間傳輸?shù)臄?shù)據(jù)是通過使用對稱算法(如 DES 或 RC4)進(jìn)行加密的。公用密鑰算法(通常為 RSA)是用來獲得加密密鑰交換和數(shù)字簽名的,此算法使用服務(wù)器的SSL數(shù)字證書中的公用密鑰。有了服務(wù)器的SSL數(shù)字證書,客戶端也可以驗(yàn)證服務(wù)器的身份。SSL 協(xié)議的版本 1 和 2 只提供服務(wù)器認(rèn)證。版本 3 添加了客戶端認(rèn)證,此認(rèn)證同時(shí)需要客戶端和服務(wù)器的數(shù)字證書。
SSL協(xié)議的三個(gè)特性
①?保密:在握手協(xié)議中定義了會(huì)話密鑰后,所有的消息都被加密。
②?鑒別:可選的客戶端認(rèn)證,和強(qiáng)制的服務(wù)器端認(rèn)證。
③?完整性:傳送的消息包括消息完整性檢查(使用MAC)。
SSL的位置
SSL介于應(yīng)用層和TCP層之間。應(yīng)用層數(shù)據(jù)不再直接傳遞給傳輸層,而是傳遞給SSL層,SSL層對從應(yīng)用層收到的數(shù)據(jù)進(jìn)行加密,并增加自己的SSL頭。
SSL的工作原理
握手協(xié)議(Handshake protocol)
記錄協(xié)議(Record protocol)
警報(bào)協(xié)議(Alert protocol)
1、握手協(xié)議
握手協(xié)議是客戶機(jī)和服務(wù)器用SSL連接通信時(shí)使用的第一個(gè)子協(xié)議,握手協(xié)議包括客戶機(jī)與服務(wù)器之間的一系列消息。SSL中最復(fù)雜的協(xié)議就是握手協(xié)議。該協(xié)議允許服務(wù)器和客戶機(jī)相互驗(yàn)證,協(xié)商加密和MAC算法以及保密密鑰,用來保護(hù)在SSL記錄中發(fā)送的數(shù)據(jù)。握手協(xié)議是在應(yīng)用程序的數(shù)據(jù)傳輸之前使用的。
每個(gè)握手協(xié)議包含以下3個(gè)字段
(1)Type:表示10種消息類型之一
(2)Length:表示消息長度字節(jié)數(shù)
(3)Content:與消息相關(guān)的參數(shù)
握手協(xié)議的4個(gè)階段
1.1 建立安全能力
SSL握手的第一階段啟動(dòng)邏輯連接,建立這個(gè)連接的安全能力。首先客戶機(jī)向服務(wù)器發(fā)出client hello消息并等待服務(wù)器響應(yīng),隨后服務(wù)器向客戶機(jī)返回server hello消息,對client hello消息中的信息進(jìn)行確認(rèn)。
Client hello消息包括Version,Random,Session id,Cipher suite,Compression method等信息。
ClientHello 客戶發(fā)送CilentHello信息,包含如下內(nèi)容:
(1)客戶端可以支持的SSL最高版本號(hào)
(2)一個(gè)用于生成主秘密的32字節(jié)的隨機(jī)數(shù)。(等會(huì)介紹主秘密是什么)
(3)一個(gè)確定會(huì)話的會(huì)話ID。
(4)一個(gè)客戶端可以支持的密碼套件列表。
密碼套件格式:每個(gè)套件都以“SSL”開頭,緊跟著的是密鑰交換算法。用“With”這個(gè)詞把密鑰交換算法、加密算法、散列算法分開,例如:SSL_DHE_RSA_WITH_DES_CBC_SHA, 表示把DHE_RSA(帶有RSA數(shù)字簽名的暫時(shí)Diffie-HellMan)定義為密鑰交換算法;把DES_CBC定義為加密算法;把SHA定義為散列算法。
(5)一個(gè)客戶端可以支持的壓縮算法列表。
ServerHello服務(wù)器用ServerHello信息應(yīng)答客戶,包括下列內(nèi)容
(1)一個(gè)SSL版本號(hào)。取客戶端支持的最高版本號(hào)和服務(wù)端支持的最高版本號(hào)中的較低者。
(2)一個(gè)用于生成主秘密的32字節(jié)的隨機(jī)數(shù)。(客戶端一個(gè)、服務(wù)端一個(gè))
(3)會(huì)話ID
(4)從客戶端的密碼套件列表中選擇的一個(gè)密碼套件
(5)從客戶端的壓縮方法的列表中選擇的壓縮方法
這個(gè)階段之后,客戶端服務(wù)端知道了下列內(nèi)容:
(1)SSL版本
(2)密鑰交換、信息驗(yàn)證和加密算法
(3)壓縮方法
(4)有關(guān)密鑰生成的兩個(gè)隨機(jī)數(shù)。
1.2 服務(wù)器鑒別與密鑰交換
服務(wù)器啟動(dòng)SSL握手第2階段,是本階段所有消息的唯一發(fā)送方,客戶機(jī)是所有消息的唯一接收方。該階段分為4步:
(a)證書:服務(wù)器將數(shù)字證書和到根CA整個(gè)鏈發(fā)給客戶端,使客戶端能用服務(wù)器證書中的服務(wù)器公鑰認(rèn)證服務(wù)器。
(b)服務(wù)器密鑰交換(可選):這里視密鑰交換算法而定
(c)證書請求:服務(wù)端可能會(huì)要求客戶自身進(jìn)行驗(yàn)證。
(d)服務(wù)器握手完成:第二階段的結(jié)束,第三階段開始的信號(hào)
這里重點(diǎn)介紹一下服務(wù)端的驗(yàn)證和密鑰交換。這個(gè)階段的前面的(a)證書 和(b)服務(wù)器密鑰交換是基于密鑰交換方法的。而在SSL中密鑰交換算法有6種:無效(沒有密鑰交換)、RSA、匿名Diffie-Hellman、暫時(shí)Diffie-Hellman、固定Diffie-Hellman、Fortezza。
在階段1過程客戶端與服務(wù)端協(xié)商的過程中已經(jīng)確定使哪種密鑰交換算法。
如果協(xié)商過程中確定使用RSA交換密鑰,那么過程如下圖:
這個(gè)方法中,服務(wù)器在它的第一個(gè)信息中,發(fā)送了RSA加密/解密公鑰證書。不過,因?yàn)轭A(yù)備主秘密是由客戶端在下一個(gè)階段生成并發(fā)送的,所以第二個(gè)信息是空的。注意,公鑰證書會(huì)進(jìn)行從服務(wù)器到客戶端的驗(yàn)證。當(dāng)服務(wù)器收到預(yù)備主秘密時(shí),它使用私鑰進(jìn)行解密。服務(wù)端擁有私鑰是一個(gè)證據(jù),可以證明服務(wù)器是一個(gè)它在第一個(gè)信息發(fā)送的公鑰證書中要求的實(shí)體。
其他的幾種密鑰交換算法這里就不介紹了。可以參考Behrouz A.Forouzan著的《密碼學(xué)與網(wǎng)絡(luò)安全》。
1.3 客戶機(jī)鑒別與密鑰交換:
客戶機(jī)啟動(dòng)SSL握手第3階段,是本階段所有消息的唯一發(fā)送方,服務(wù)器是所有消息的唯一接收方。該階段分為3步:
(a)證書(可選):為了對服務(wù)器證明自身,客戶要發(fā)送一個(gè)證書信息,這是可選的,在IIS中可以配置強(qiáng)制客戶端證書認(rèn)證。
(b)客戶機(jī)密鑰交換(Pre-master-secret):這里客戶端將預(yù)備主密鑰發(fā)送給服務(wù)端,注意這里會(huì)使用服務(wù)端的公鑰進(jìn)行加密。
(c)證書驗(yàn)證(可選),對預(yù)備秘密和隨機(jī)數(shù)進(jìn)行簽名,證明擁有(a)證書的公鑰。
下面也重點(diǎn)介紹一下RSA方式的客戶端驗(yàn)證和密鑰交換。
這種情況,除非服務(wù)器在階段II明確請求,否則沒有證書信息。客戶端密鑰交換方法包括階段II收到的由RSA公鑰加密的預(yù)備主密鑰。
階段III之后,客戶要有服務(wù)器進(jìn)行驗(yàn)證,客戶和服務(wù)器都知道預(yù)備主密鑰。
1.4 完成
客戶機(jī)啟動(dòng)SSL握手第4階段,使服務(wù)器結(jié)束。該階段分為4步,前2個(gè)消息來自客戶機(jī),后2個(gè)消息來自服務(wù)器。
1.5 密鑰生成的過程
這樣握手協(xié)議完成,下面看下什么是預(yù)備主密鑰,主密鑰是怎么生成的。為了保證信息的完整性和機(jī)密性,SSL需要有六個(gè)加密秘密:四個(gè)密鑰和兩個(gè)IV。為了信息的可信性,客戶端需要一個(gè)密鑰(HMAC),為了加密要有一個(gè)密鑰,為了分組加密要一個(gè)IV,服務(wù)也是如此。SSL需要的密鑰是單向的,不同于那些在其他方向的密鑰。如果在一個(gè)方向上有攻擊,這種攻擊在其他方向是沒影響的。生成過程如下:
2、記錄協(xié)議
記錄協(xié)議在客戶機(jī)和服務(wù)器握手成功后使用,即客戶機(jī)和服務(wù)器鑒別對方和確定安全信息交換使用的算法后,進(jìn)入SSL記錄協(xié)議,記錄協(xié)議向SSL連接提供兩個(gè)服務(wù):
(1)保密性:使用握手協(xié)議定義的秘密密鑰實(shí)現(xiàn)
(2)完整性:握手協(xié)議定義了MAC,用于保證消息完整性
記錄協(xié)議的過程:
3、警報(bào)協(xié)議
客戶機(jī)和服務(wù)器發(fā)現(xiàn)錯(cuò)誤時(shí),向?qū)Ψ桨l(fā)送一個(gè)警報(bào)消息。如果是致命錯(cuò)誤,則算法立即關(guān)閉SSL連接,雙方還會(huì)先刪除相關(guān)的會(huì)話號(hào),秘密和密鑰。每個(gè)警報(bào)消息共2個(gè)字節(jié),第1個(gè)字節(jié)表示錯(cuò)誤類型,如果是警報(bào),則值為1,如果是致命錯(cuò)誤,則值為2;第2個(gè)字節(jié)制定實(shí)際錯(cuò)誤類型。
日期:2018-04 瀏覽次數(shù):6761
日期:2017-02 瀏覽次數(shù):3435
日期:2017-09 瀏覽次數(shù):3654
日期:2017-12 瀏覽次數(shù):3526
日期:2018-12 瀏覽次數(shù):4815
日期:2016-12 瀏覽次數(shù):4581
日期:2017-07 瀏覽次數(shù):13641
日期:2017-12 瀏覽次數(shù):3505
日期:2018-06 瀏覽次數(shù):4265
日期:2018-05 瀏覽次數(shù):4442
日期:2017-12 瀏覽次數(shù):3556
日期:2017-06 瀏覽次數(shù):3979
日期:2018-01 瀏覽次數(shù):3941
日期:2016-12 瀏覽次數(shù):3908
日期:2018-08 瀏覽次數(shù):4423
日期:2017-12 瀏覽次數(shù):3704
日期:2016-09 瀏覽次數(shù):6404
日期:2018-07 瀏覽次數(shù):3205
日期:2016-12 瀏覽次數(shù):3229
日期:2018-10 瀏覽次數(shù):3377
日期:2018-10 瀏覽次數(shù):3479
日期:2018-09 瀏覽次數(shù):3576
日期:2018-02 瀏覽次數(shù):3595
日期:2015-05 瀏覽次數(shù):3518
日期:2018-09 瀏覽次數(shù):3305
日期:2018-06 瀏覽次數(shù):3433
日期:2017-02 瀏覽次數(shù):3868
日期:2018-02 瀏覽次數(shù):4334
日期:2018-02 瀏覽次數(shù):4171
日期:2016-12 瀏覽次數(shù):3571
Copyright ? 2013-2018 Tadeng NetWork Technology Co., LTD. All Rights Reserved.