SSL協(xié)議 | 您所在的位置:網(wǎng)站首頁 › 屬豬的年齡表2021多大 › SSL協(xié)議 |
SSL證書的說明
什么是SSL證書
SSL證書全稱為安全套接層協(xié)議 (Secure Sockets Layer) 證書,是遵守SSL安全套接層協(xié)議的服務器數(shù)字證書。它通過加密算法,將HTTP明文傳輸變成HTTPS暗文傳輸。由于此協(xié)議很好地解決了互聯(lián)網(wǎng)明文傳輸?shù)牟话踩珕栴},很快得到了業(yè)界的支持,并已經(jīng)成為國際標準。 SSL證書通常是一個以.cer為后綴的配置文件。例如: 1、實現(xiàn)加密傳輸 網(wǎng)站安裝SSL證書后,使用HTTPS加密協(xié)議訪問網(wǎng)站,可激活客戶端瀏覽器到網(wǎng)站服務器之間的SSL加密通道,實現(xiàn)高強度雙向加密傳輸。 2、認證服務器真實身份 在網(wǎng)站使用HTTPS協(xié)議后,通過SSL證書,瀏覽器內(nèi)置安全機制,實時查驗證書狀態(tài),通過瀏覽器向用戶展示網(wǎng)站認證信息,讓用戶輕松識別網(wǎng)站真實身份。 3、保障信息不被竊取 使用了SSL證書后,數(shù)據(jù)實現(xiàn)了加密傳輸,保護數(shù)據(jù)不被泄露或者惡意篡改。 4、提高公司品牌形象和可信度 部署了SSL證書的網(wǎng)站會在瀏覽器地址欄中顯示HTTPS綠色安全小鎖。可告訴用戶其訪問的是安全可信的站點,可放心的進行作和交易,有效提升公司的品牌形象和可信度。 其他作用蘋果開發(fā)者ATS標準。 2017年1月1日起,蘋果公司宣布所有在AppStore上架的應用程序都必須啟用App Transport Security (ATS) 安全通訊技術。SSL證書后的APP應用程序可以通過Apple審核并上架。 微信小程序必須使用SSL證書。幫助微信小程序上架被用戶添加。 SSL證書好處1、防止被釣魚 沒有使用HTTPS協(xié)議的網(wǎng)站,攻擊者可以偽造一個與真實網(wǎng)站類似的域名來釣魚(如下圖所示): ? 在網(wǎng)站使用HTTPS協(xié)議后,由于SSL證書可以認證服務器真實身份,從而防止釣魚網(wǎng)站偽造: 2、提高網(wǎng)站搜索排名 通過百度公告的頒布,明確指出搜索引擎在排名上,會優(yōu)先對待采用HTTPS協(xié)議的網(wǎng)站。 3、提高網(wǎng)站訪問速度 通過HTTP vs HTTPS對比測試,表明使用了SSL證書的新一代HTTP2協(xié)議,其訪問網(wǎng)站的速度遠遠快于使用HTTP協(xié)議的網(wǎng)站。 3、提高公司品牌形象和可信度 部署了SSL證書的網(wǎng)站會在瀏覽器地址欄中顯示HTTPS綠色安全小鎖。可告訴用戶其訪問的是安全可信的站點,可放心的進行作和交易,有效提升公司的品牌形象和可信度。 SSL證書的工作原理SSL握手過程 1.客戶端發(fā)起請求 2.服務端響應請求 3.客戶端校驗證書 4.客戶端密鑰交換 5.服務端改變密碼規(guī)范 6.握手結束 Secure Socket Layer(SSL)是一種在兩臺機器之間提供安全通道的協(xié)議,具有保護傳輸數(shù)據(jù)及識別通信機器的功能。SSL提供的安全通道是透明的,意思是它不變更兩臺機器之間傳輸?shù)臄?shù)據(jù),保證數(shù)據(jù)經(jīng)過加密后,一端寫入的數(shù)據(jù)與另一端讀取到的內(nèi)容是完全一致的。 SSL握手過程在SSL握手階段,客戶端和服務器間的交互過程圖如下所示: 1.客戶端發(fā)起請求 客戶端以明文傳輸發(fā)起請求。請求信息包含版本信息、加密套件候選列表、壓縮算法候選列表、隨機數(shù)、擴展字段等。具體細節(jié)如下: 支持的TSL協(xié)議版本:從低到高依次是SSLv2、SSLv3、TLSv1、TLSv1.1和TLSv1.2。支持的加密套件: 每個加密套件對應前面TLS原理中的四個功能的組合,包含認證算法 Au (身份驗證)、密鑰交換算法 KeyExchange(密鑰協(xié)商)、對稱加密算法 Enc (信息加密)和信息摘要算法MAC(完整性校驗)。支持的壓縮算法:用于后續(xù)信息的壓縮傳輸。隨機數(shù):用于后續(xù)的密鑰的生成。擴展字段:支持協(xié)議與算法的相關參數(shù)以及其它輔助信息等,常見的Server Name Indication(SNI)就屬于擴展字段。2.服務端響應請求 服務端返回協(xié)商的信息結果,包括選擇使用的協(xié)議版本(version)、選擇的加密套件(cipher suite)、選擇的壓縮算法(compression method)、隨機數(shù)(random_S)等,其中,隨機數(shù)用于后續(xù)的密鑰協(xié)商。服務器端配置對應的證書鏈,來驗證身份與交換密鑰。通知客戶端信息發(fā)送結束。3.客戶端校驗證書 客戶端驗證證書的合法性,如果驗證通過,則進行下一步通信。否則,根據(jù)錯誤情況做出響應的提示或作。合法性驗證的內(nèi)容如下: 證書鏈的可信性:方法如前文所述。證書是否吊銷:離線 CRL(證書吊銷列表)與在線 OCSP(在線證書列表)兩類方式校驗,不同的客戶端行為會不同。有效期:證書是否在有效時間范圍。域名:核查證書域名是否與當前的訪問域名匹配,匹配規(guī)則后續(xù)分析。4.客戶端密鑰交換 客戶端密鑰交換:合法性驗證通過之后,客戶端計算產(chǎn)生隨機數(shù)字Pre-master,并用證書公鑰加密,發(fā)送給服務器。 此時,客戶端已經(jīng)獲取全部的計算協(xié)商密鑰需要的信息,即兩個明文隨機數(shù)(random_C和random_S) 以及自己計算產(chǎn)生的Pre-master,計算得到協(xié)商密鑰enc_key=Fuc(random_C, random_S, Pre-Master)。更改密碼規(guī)范:客戶端通知服務器后續(xù)的通信都采用協(xié)商的通信密鑰和加密算法進行加密通信。加密的握手消息:結合之前所有通信參數(shù)的hash值與其它相關信息生成一段數(shù)據(jù),采用協(xié)商密鑰session secret與算法進行加密,然后發(fā)送給服務器用于數(shù)據(jù)與握手驗證。5.服務端改變密碼規(guī)范 驗證數(shù)據(jù)和密鑰:收到被加密的數(shù)據(jù)后,用私鑰解密,基于之前交換的兩個明文隨機數(shù)(random_C 和random_S),計算得到協(xié)商密鑰enc_key=Fuc(random_C, random_S, Pre-Master)。通過計算之前所有接收信息的hash值,解密客戶端發(fā)送的加密握手消息,驗證數(shù)據(jù)和密鑰正確性。改變密碼規(guī)范:驗證通過之后,服務器同樣發(fā)送改變后的密碼規(guī)范以告知客戶端后續(xù)的通信都采用協(xié)商的密鑰與算法進行加密通信。加密的握手消息:服務器結合所有當前的通信參數(shù)信息,生成一段數(shù)據(jù),并采用協(xié)商密鑰加密會話與算法加密并發(fā)送到客戶端。6.握手結束 客戶端計算所有接收信息的哈希值,并采用協(xié)商好的密鑰解密,驗證服務器發(fā)送的數(shù)據(jù)和密鑰,驗證通過則握手完成。開始使用協(xié)商密鑰與算法進行加密通信。 握手協(xié)議的作用簡單概述,SSL握手過程也是SSL證書作用的實現(xiàn)。如: 用戶和服務器的合法性認證,對應握手協(xié)議中的第三階段加密數(shù)據(jù)來隱藏被傳送的數(shù)據(jù),對應握手協(xié)議中的第四就和第五階段保護數(shù)據(jù)的完整性,對應握手協(xié)議中的第六階段。公鑰(Public Key)與私鑰(Private Key)就是俗稱的不對稱加密方式。它們是通過一種算法得到的一個密鑰對,公鑰是密鑰對中公開的部分,常用于加密會話密鑰、驗證數(shù)字簽名,或加密可以用相應的私鑰解密的數(shù)據(jù)。私鑰則是非公開的部分,需自行保管。 通過這種算法得到的密鑰對,能保證在世界范圍內(nèi)是唯一的。使用這個密鑰對時,如果用其中一個密鑰加密一段數(shù)據(jù),則必須用另一個密鑰才能解密。比如:用公鑰加密的數(shù)據(jù)就必須用對應的私鑰才能解密,否則將無法成功解密。反之亦然。 HTTPS的缺點雖然說HTTPS有很大的優(yōu)勢,但其相對來說,還是存在不足之處的: (1)HTTPS協(xié)議握手階段比較費時,會使頁面的加載時間延長近50%,增加10%到20%的耗電; (2)HTTPS連接緩存不如HTTP高效,會增加數(shù)據(jù)開銷和功耗,甚至已有的安全措施也會因此而受到影響; (3)SSL證書需要錢,功能越強大的證書費用越高,個人網(wǎng)站、小網(wǎng)站沒有必要一般不會用。 ? (4)SSL證書通常需要綁定IP,不能在同一IP上綁定多個域名,IPv4資源不可能支撐這個消耗。 (5)HTTPS協(xié)議的加密范圍也比較有限,在黑客攻擊、拒絕服務攻擊、服務器劫持等方面幾乎起不到什么作用。最關鍵的,SSL證書的信用鏈體系并不安全,特別是在某些國家可以控制CA根證書的情況下,中間人攻擊一樣可行。 http切換到HTTPS如果需要將網(wǎng)站從http切換到https到底該如何實現(xiàn)呢? ? ? ?這里需要將頁面中所有的鏈接,例如js,css,圖片等等鏈接都由http改為https。例如:http://www.baidu.com改為https://www.baidu.com BTW,這里雖然將http切換為了https,還是建議保留http。所以我們在切換的時候可以做http和https的兼容,具體實現(xiàn)方式是,去掉頁面鏈接中的http頭部,這樣可以自動匹配http頭和https頭。例如:將http://www.baidu.com改為//www.baidu.com。然后當用戶從http的入口進入訪問頁面時,頁面就是http,如果用戶是從https的入口進入訪問頁面,頁面即使https的。 |
CopyRight 2018-2019 實驗室設備網(wǎng) 版權所有 |