




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
中間從上圖可以看出,我們使用HTTP傳輸?shù)膬?nèi)容很容易被中間人竊取、和篡改,通常我具體來講,在將HTTP數(shù)據(jù)提交給TCP層之后,數(shù)據(jù)會經(jīng)過用戶電腦、WiFi路由器、運營商和目標(biāo)服務(wù)器,在這中間的每個環(huán)節(jié)中,數(shù)據(jù)都有可能被竊取或篡改。比如用戶電腦被黑客安裝了軟件,那么軟件就能抓取和篡改所發(fā)出的HTTP請求的內(nèi)容?;蛘哂脩粢徊贿B接上了WiFi路由器,那么數(shù)據(jù)也都能被抓取或篡改。HTTP鑒于HTTP的明文傳輸使得傳輸過程毫無安全性可言,且制約了網(wǎng)上購物、轉(zhuǎn)賬等一HTTP議棧層面來看,我們可以在TCPHTTP間插入一個安全層,所有經(jīng)過安全HTTPVS從圖中我們可以看出HTTPS并非是一個新的協(xié)議,通常HTTP直接和TCP通信,HTTPS則先和安全層通信,然后安全層再和TCP層通信。也就是說HTTPS所有的安全都在安全層,它不會影響到上面的HTTP協(xié)議,也不會影響到下面的TCP/IP,因此要搞清楚HTTPS是如何工作的,就要弄清楚安全層是怎么工作的。總的來說,安全層有兩個主要的職責(zé):對發(fā)起HTTP請求的數(shù)據(jù)進行加密操作和對接收HTTP的內(nèi)容進行操作一個從簡單到復(fù)雜的HTTPS協(xié)議。提到加密,最簡單的方式是使用對稱加密。所謂對稱加密是指加密和都使用的是相同的密鑰。了解了對稱加密,下面我們就使用對稱加密來實現(xiàn)第一版 HTTPS要在兩臺電腦上加同一個文件,我們至少需要知道加方式和密鑰,因此,HTTPS發(fā)送數(shù)據(jù)之前,瀏覽器和服務(wù)器之間需要協(xié)商和密鑰,過程如下所示使用對稱加密實現(xiàn)通過上圖我們可以看出,HTTPS首先要協(xié)商加方式,這個過程就是HTTPS建立安全 服務(wù)器會從加密套件列表中選取一個加密套件,然后還會生成一個隨機數(shù)service-random,并將service-random和加密套件列表返回給瀏覽器。最后瀏覽器和服務(wù)器分別返回確認消 -random和service-random了,然后它們再 -random和service-random混合起來生成一個密鑰mastersecret,有了密鑰mastersecret和加密套件之后,雙方就可以進行數(shù)據(jù)的加密傳輸了。通過將對稱加密應(yīng)用在安全層上,我們實現(xiàn)了第一個版本的HTTPS,雖然這個版本能夠很好地工作,但是其中傳輸-random和service-random的過程卻是明文的,這意味著也可以拿到協(xié)商的加密套件和雙方的隨機數(shù),由于利用隨機數(shù)合成密鑰的算法是公開的,所以拿到隨機數(shù)之后,也可以合成密鑰,這樣數(shù)據(jù)依然可以被,那么也就不過非對稱加密能夠解決這個問題,因此接下來我們就利用非對稱加密來實現(xiàn)我們第二版HTTPS,不過在討論具體的實現(xiàn)之前,我們先看看什么是非對稱加密和對稱加密只有一個密鑰不同,非對稱加密算法有A、B兩把密鑰,如果你用A密鑰來加密,那么只能使用B密鑰來;反過來,如果你要B密鑰來加密,那么只能用A密鑰。在HTTPS中,服務(wù)器會將其中的一個密鑰通過明文的形式發(fā)送給瀏覽器,我們把這個密鑰稱為公鑰,服務(wù)器自己留下的那個密鑰稱為私鑰。顧名思義,公鑰是每個人都能獲取到的,而私鑰只有服務(wù)器才能知道,不對任何人公開。下圖是使用非對稱加密改造的HTTPS協(xié)議非對稱加密實現(xiàn)然后服務(wù)器會選擇一個加密套件,不過和對稱加密不同的是,使用非對稱加密時服務(wù)器上需要有用于瀏覽器加密的公鑰和服務(wù)器TTP數(shù)據(jù)的私鑰,由于公鑰是給瀏覽器加密使用的,因此服務(wù)器會將加密套件和公鑰一道發(fā)送給瀏覽器最后就是瀏覽器和服務(wù)器返回確認消這樣瀏覽器端就有了服務(wù)器的公鑰,在瀏覽器端向服務(wù)器端發(fā)送數(shù)據(jù)時,就可以使用該公鑰來加密數(shù)據(jù)。由于公鑰加密的數(shù)據(jù)只有私鑰才能,所以即便截獲了數(shù)據(jù)和公鑰,他也是無法使用公鑰來數(shù)據(jù)的。第二個是無法保證服務(wù)器發(fā)送給瀏覽器的數(shù)據(jù)安全。雖然瀏覽器端可以使用公鑰來加密,但是服務(wù)器端只能采用私鑰來加密,私鑰加密只有公鑰能,但也是可以獲取得到公鑰的,這樣就不能保證服務(wù)器端數(shù)據(jù)的安全了?;旌霞用軐崿F(xiàn)從圖中可以看出,改造后的流程是這樣的 數(shù)service-random,向瀏覽器發(fā)送選擇的加密套件、service-random和公鑰; -random和service-random計算出來pre-master,然后利用公鑰對pre-master加密,并向服務(wù)器發(fā)送加密后的數(shù)據(jù);最后服務(wù)器拿出自己的私鑰,出pre-master數(shù)據(jù),并返回確認消息 -random、service-random和pre-master,然后服務(wù)器和瀏覽器會使用這三組隨機數(shù)生成對稱密鑰,因為服務(wù)器和瀏覽器使有了對稱加密的密鑰之后,雙方就可以使用對稱加密的方式來傳輸數(shù)據(jù)需要特別注意的一點,pre-master是經(jīng)過公鑰加密之后傳輸?shù)?,所以無法獲取pre-master,這樣就無法生成密鑰,也就保證了無法傳輸過程中的數(shù)據(jù)了問題,比如我要打開極客時間的官網(wǎng),但是通過DNS劫持將極客時間官網(wǎng)的IP地址替換成了的IP地址,這樣我的其實是的服務(wù)器了,就可以在自己的服務(wù)器上實現(xiàn)公鑰和私鑰,而對瀏覽器來說,它完全不知道現(xiàn)在的是個的站點。所以我們還需要服務(wù)器向瀏覽器提供證明“我就是我”,那怎么證明呢這里我們結(jié)合實際生活中的一個例子,比如你要買房子,首先你需要給房管局提交你買房的材料,包括銀行流水、銀行證明、等,然后房管局工作人員在驗證無誤后,會發(fā)給你一本蓋了章的,上包含了你的名字、號、地址、實際面積、公攤面積等信息。在這個例子中,你之所以能證明房子是你自己的,是因為引進了房管局這個機構(gòu),并通過這個機構(gòu)給你頒發(fā)一個:。 Authority),頒發(fā)的就稱為數(shù)字(Digital)對于瀏覽器來說,數(shù)字有兩個作用:一個是通過數(shù)字向瀏覽器證明服務(wù)器的,接下來我們看看含有數(shù)字的HTTPS的請求流程,你可以參考下圖完整的HTTPS求流程相較于第三版的HTTPS協(xié)議,這里主要有兩點改變:在瀏覽器端多了一個驗證的操作,驗證了之后,才繼續(xù)后續(xù)流程通過上面四個版本的迭代,我們實現(xiàn)了目前的HTTPS架構(gòu)在第四版的TTPS中,我們提到過,有了數(shù)字,就無法用戶了,不過我們并沒有解釋清楚如何通過數(shù)字來證明用戶,所以接下來我們再來把這個問題解釋清楚。如何申我們先來看看如何向CA申請。比如極客時間需要向某個CA去申請數(shù)字,通常的首先極客時間需要準備一套私鑰和公鑰,私鑰留著自己使然后極客時間向CA構(gòu)提交公鑰、公司、站點等信息并等待認證,這個認證過程可能CA通過線上、線下等多種來驗證極客時間所提供信息的真實性,如公司是否存在、如信息審核通過,CA會向極客時間簽發(fā)認證的數(shù)字,包含了極客時間的公鑰、組織信息、CA的信息、有效時間、序列號等,這些信息都是明文的,同時包含一個CA這樣我們就完成了極客時間數(shù)字的申請過程。前面幾步都很好理解,不過最后一步數(shù)字簽名的過程還需要解釋下:首先CA使用Hash函數(shù)來計算極客時間提交的明文信息,并得出信息;然后CA再使用它的私鑰對信息進行加密,加密后的密文就是A頒給極客時間的數(shù)字簽名。這就相當(dāng)于房管局在上蓋的章,這個章是可以去驗證的,同樣我們也可以通過數(shù)字簽名來驗證是否是該CA頒發(fā)的。瀏覽器如何驗證數(shù)有了CA簽名過的數(shù)字,當(dāng)瀏覽器向極客時間服務(wù)器發(fā)出請求時,服務(wù)器會返回數(shù)字證瀏覽器接收到數(shù)字之后,會對數(shù)字進行驗證。首先瀏覽器中相關(guān)的明文信息,采用CA簽名時相同的Hash函數(shù)來計算并得到信息 A;然后再利用對應(yīng)CA的公鑰簽名數(shù)據(jù),得到信息 B;對比信息 A和信息 B,如果一致,則可以確認是合法的,即證明了這個服務(wù)器是極客時間的;同時瀏覽器還會驗證相關(guān)的信息、有效時間等信息。這時候相當(dāng)于驗證了CA是誰,但是這個CA可能比較小眾,瀏覽器不知道該不該信任它,然后瀏覽器會繼續(xù)查找給這個CA頒發(fā)的CA,再以同樣的方式驗證它上級CA的可靠性。通常情況下,操作系統(tǒng)中會內(nèi)置信任的頂級CA的信息(包含公鑰),如果這個CA鏈中沒有找到瀏覽器內(nèi)置的頂級的CA,也會被判定。另外,在申請和使用的過程中,還需要注意以下三點申請數(shù)字是不需要提供私鑰的,要確保私鑰只能由服務(wù)器掌握數(shù)字最的是CA使用它的私鑰生成的數(shù)字簽名內(nèi)置CA對應(yīng)的稱為根,根是最的機構(gòu),它們自己為自己簽名,我們好了,今天就介紹到這里,下面我來總結(jié)下本文的主要內(nèi)由于HTTP的明文傳輸特性,在傳輸過程中的每一個環(huán)節(jié),數(shù)據(jù)都有可能被竊取或改,這著我們需要引入加密機制。于是我們在HTTP協(xié)議棧的TCP和HTTP層之間插我們使用對稱加密實現(xiàn)了安全層,但是由于對稱加密的密鑰需要明文傳輸,所以我們又將對稱加密改造成了非對稱加密。但是非對稱加密效率低且不能加密服務(wù)器到瀏覽器端的數(shù)據(jù),于是我們又繼續(xù)改在安全層,采用對稱加密的方式加密傳輸數(shù)據(jù)和非對稱加密的方式來傳輸密鑰,這樣我們就解決傳輸效率和兩端數(shù)據(jù)安全傳輸?shù)膯栴}。采用這種方式雖然能保證數(shù)據(jù)的安全傳輸,但是依然沒辦法證明服務(wù)器是可靠的,于是又引入了數(shù)字,數(shù)字是由CA簽名過的,所以瀏覽器能夠驗證該的可靠性。另外百看不如一試,我建議你自己親手搭建一個HTTPS的站點,可以去 SSL申請免費中文 英文 今天留給你的作業(yè):結(jié)合前面的文章以及本文,你來總結(jié)一下HTTPS的握手覺得這篇文章對你有幫助的話,也歡迎把它給的朋友。 歸科技所有 不得售賣。頁面已增加防盜追蹤,將依法其上一 35|安全沙箱:頁面和系統(tǒng)之間的精選留言發(fā)送random1+支持的加密算法集合( o)++確展2 3建立服務(wù)器返回協(xié)商結(jié)果展3老師好,您前面說隨機數(shù)加密算法是公開透明的,后面又說利用-random和service-randompre-master,pre-master密后
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- emc買斷合同范本
- 代款合作合同范本
- 2025年抗風(fēng)濕類藥品合作協(xié)議書
- 合同范本網(wǎng)翻譯
- 合同范本全是正式合同
- 雙方交付款合同范例
- 2025年分離純化控制系統(tǒng)項目合作計劃書
- 中英日文合同范本
- 合同范本模板去石墻
- 叉車置換銷售合同范本
- 約束評分標(biāo)準
- GB/T 28799.2-2020冷熱水用耐熱聚乙烯(PE-RT)管道系統(tǒng)第2部分:管材
- 法律和道德的關(guān)系 課件
- GB 16780-2021水泥單位產(chǎn)品能源消耗限額
- 2023-瑞幸咖啡vi手冊
- 全面推進依法行政課件
- 政務(wù)服務(wù)一網(wǎng)通辦平臺解決方案-最新
- IPC-7351表面貼裝設(shè)計和焊盤圖形標(biāo)準
- 第十四屆全國交通運輸行業(yè)職業(yè)技能競賽(公路收費及監(jiān)控員)賽項題庫-上(單選題匯總-共3部分-1)
- NBT 10664-2021 核電廠工程巖土試驗規(guī)程
- 醫(yī)院產(chǎn)前篩查中心設(shè)置評審驗收工作匯報課件
評論
0/150
提交評論