HTTPS 與 SSL 證書的關系

2021-01-28    分類: 網站建設

HTTPS簡介

超文本傳輸安全協(xié)議(英語:Hypertext Transfer Protocol Secure,縮寫:HTTPS,常稱為HTTP over TLS,HTTP over ssl或HTTP Secure)是一種網絡安全傳輸協(xié)議。具體介紹以前先來介紹一下以前常見的HTTP,HTTP就是我們平時瀏覽網頁時候使用的一種協(xié)議。HTTP協(xié)議傳輸的數據都是未加密的,也就是明文,因此使用HTTP協(xié)議傳輸隱私信息非常不安全。HTTP使用80端口通訊,而HTTPS占用443端口通訊。在計算機網絡上,HTTPS經由超文本傳輸協(xié)議(HTTP)進行通信,但利用ssl/TLS來加密數據包。HTTPS開發(fā)的主要目的,是提供對網絡服務器的身份認證,保護交換數據的隱私與完整性。這個協(xié)議由網景公司(Netscape)在1994年首次提出,隨后擴展到互聯(lián)網上。

HTTPS 工作原理

HTTPS在傳輸數據之前需要客戶端(瀏覽器)與服務端(網站)之間進行一次握手,在握手過程中將確立雙方加密傳輸數據的密碼信息。TLS/ssl協(xié)議不僅僅是一套加密傳輸的協(xié)議,更是一件經過藝術家精心設計的藝術品,TLS/ssl中使用了非對稱加密,對稱加密以及HASH算法。握手過程的具體描述如下:

  • 1)瀏覽器將自己支持的一套加密規(guī)則發(fā)送給網站。

  • 2)網站從中選出一組加密算法與HASH算法,并將自己的身份信息以證書的形式發(fā)回給瀏覽器。證書里面包含了網站地址,加密公鑰,以及證書的頒發(fā)機構等信息。

  • 3)瀏覽器獲得網站證書之后瀏覽器要做以下工作: a) 驗證證書的合法性(頒發(fā)證書的機構是否合法,證書中包含的網站地址是否與正在訪問的地址一致等),如果證書受信任,則瀏覽器欄里面會顯示一個小鎖頭,否則會給出證書不受信的提示。 b) 如果證書受信任,或者是用戶接受了不受信的證書,瀏覽器會生成一串隨機數的密碼,并用證書中提供的公鑰加密。 c) 使用約定好的HASH算法計算握手消息,并使用生成的隨機數對消息進行加密,最后將之前生成的所有信息發(fā)送給網站。

  • 4)網站接收瀏覽器發(fā)來的數據之后要做以下的操作: a) 使用自己的私鑰將信息解密取出密碼,使用密碼解密瀏覽器發(fā)來的握手消息,并驗證HASH是否與瀏覽器發(fā)來的一致。 b) 使用密碼加密一段握手消息,發(fā)送給瀏覽器。

  • 5)瀏覽器解密并計算握手消息的HASH,如果與服務端發(fā)來的HASH一致,此時握手過程結束,之后所有的通信數據將由之前瀏覽器生成的隨機密碼并利用對稱加密算法進行加密。

這里瀏覽器與網站互相發(fā)送加密的握手消息并驗證,目的是為了保證雙方都獲得了一致的密碼,并且可以正常的加密解密數據,為后續(xù)真正數據的傳輸做一次測試。另外,HTTPS一般使用的加密與HASH算法如下:

  • 非對稱加密算法:RSA,DSA/DSS

  • 對稱加密算法:AES,RC4,3DES

  • HASH算法:MD5,SHA1,SHA256

HTTPS對應的通信時序圖如下:

HTTPS協(xié)議和HTTP協(xié)議的區(qū)別:

  • https協(xié)議需要到ca申請證書,一般免費證書很少,需要交費。

  • http是超文本傳輸協(xié)議,信息是明文傳輸,https 則是具有安全性的ssl加密傳輸協(xié)議。

  • http和https使用的是完全不同的連接方式用的端口也不一樣,前者是80,后者是443。

  • http的連接很簡單,是無狀態(tài)的 。

  • HTTPS協(xié)議是由ssl+HTTP協(xié)議構建的可進行加密傳輸、身份認證的網絡協(xié)議, 要比http協(xié)議安全。

ssl 證書

從前面我們可以了解到HTTPS核心的一個部分是數據傳輸之前的握手,握手過程中確定了數據加密的密碼。在握手過程中,網站會向瀏覽器發(fā)送ssl證書,ssl證書和我們日常用的身份證類似,是一個支持HTTPS網站的身份證明,ssl證書里面包含了網站的域名,證書有效期,證書的頒發(fā)機構以及用于加密傳輸密碼的公鑰等信息,由于公鑰加密的密碼只能被在申請證書時生成的私鑰解密,因此瀏覽器在生成密碼之前需要先核對當前訪問的域名與證書上綁定的域名是否一致,同時還要對證書的頒發(fā)機構進行驗證,如果驗證失敗瀏覽器會給出證書錯誤的提示。在這一部分我將對ssl證書的驗證過程以及個人用戶在訪問HTTPS網站時,對ssl證書的使用需要注意哪些安全方面的問題進行描述。

證書的類型

實際上,我們使用的證書分很多種類型,ssl證書只是其中的一種。證書的格式是由X.509標準定義。ssl證書負責傳輸公鑰,是一種PKI(Public Key Infrastructure,公鑰基礎結構)證書。我們常見的證書根據用途不同大致有以下幾種:

  • 1、ssl證書,用于加密HTTP協(xié)議,也就是HTTPS。

  • 2、代碼簽名證書,用于簽名二進制文件,比如Windows內核驅動,Firefox插件,Java代碼簽名等等。

  • 3、客戶端證書,用于加密郵件。

  • 4、雙因素證書,網銀專業(yè)版使用的USB Key里面用的就是這種類型的證書。

這些證書都是由受認證的證書頒發(fā)機構——我們稱之為CA(Certificate Authority)機構來頒發(fā),針對企業(yè)與個人的不同,可申請的證書的類型也不同,價格也不同。CA機構頒發(fā)的證書都是受信任的證書,對于ssl證書來說,如果訪問的網站與證書綁定的網站一致就可以通過瀏覽器的驗證而不會提示錯誤。

ssl證書申請與規(guī)則

ssl證書可以向CA機構通過付費的方式申請,也可以自己制作。CA機構頒發(fā)的證書價格非常昂貴,而且有效期一般只有一年到三年不等(年數不同,價格也不同),過期之后還要再次交錢申請,因此一般只有企業(yè)才會申請證書。但是隨著個人網站的增多,目前也有針對個人的ssl證書服務,價格相對便宜一些,國內的話400多塊錢就能申請到一個,國外更是有免費的ssl證書可以申請。在申請ssl證書時需要向CA機構提供網站域名,營業(yè)執(zhí)照,以及申請人的身份信息等。網站的域名非常重要,申請人必須證明自己對域名有所有權,如果支持Hotmail.com,Gmail.com的ssl證書都可以隨便申請,黑客們就不用做假證書欺騙了。

此外,一個證書一般只綁定一個域名,如果CA機構心情好的話,會免費再綁一個,比如你要申請域名時綁定的域名是 www.runoob.com,那么只有在瀏覽器地址是 https://www.runoob.com 的時候,這個證書才是受信任的,如果地址是https://tt.runoob.com或者https://login.runoob.com,那么這個證書由于訪問的域名與證書綁定的域名不同,仍然會被瀏覽器顯示為不受信任的。

CA機構也提供申請通配符域名(例如,*.runoob.com),通配符域名相當于綁定了主域名下的所有域名,因此使用起來非常方便,但是價格也超級昂貴,一個通配符域名一年大概得5000塊錢,只有企業(yè)才可以申請。

下面就來看看一個證書的信息:

在訪問hotmail的時候會跳轉到login.live.com,這時IE瀏覽器上會有一個小鎖頭,點一下那個小鎖頭再點擊里面的"查看證書"就會出現上圖的證書窗口,這里面我們可以看到這個證書只有一個用途——向遠程計算機證明身份信息,證書的用途會有很多,ssl只是其中之一。在"頒發(fā)給"這一項就是這個證書在申請時綁定的域名;下面的"頒發(fā)者"是證書的頒發(fā)機構。最下面的兩個日期是證書申請時間以及過期的時間。這里我們可以注意一下"頒發(fā)者"的信息,里面有"Extended Validation ssl"的字樣,表明了這個證書是一個EV ssl證書(擴展驗證ssl證書),EV ssl證書有個特點就是可以讓瀏覽器的地址欄變綠,同時顯示出來證書所屬公司的名稱,如下圖所示:

EV ssl證書與其他的證書相比,費用更高。

以上說的是向CA機構申請證書的情況,如果個人網站只為加密傳輸也可以自己制作ssl證書,自己制作的證書不會受到瀏覽器的信任,在訪問的時候由于證書驗證失敗而給出警告。

證書的驗證過程

證書以證書鏈的形式組織,在頒發(fā)證書的時候首先要有根CA機構頒發(fā)的根證書,再由根CA機構頒發(fā)一個中級CA機構的證書,最后由中級CA機構頒發(fā)具體的ssl證書。我們可以這樣理解,根CA機構就是一個公司,根證書就是他的身份憑證,每個公司由不同的部門來頒發(fā)不同用途的證書,這些不同的部門就是中級CA機構,這些中級CA機構使用中級證書作為自己的身份憑證,其中有一個部門是專門頒發(fā)ssl證書,當把根證書,中級證書,以及最后申請的ssl證書連在一起就形成了證書鏈,也稱為證書路徑。在驗證證書的時候,瀏覽器會調用系統(tǒng)的證書管理器接口對證書路徑中的所有證書一級一級的進行驗證,只有路徑中所有的證書都是受信的,整個驗證的結果才是受信。我們還是以login.live.com這個證書舉例,在查看證書的時候,點擊"證書路徑"標簽就會有下圖的顯示:

根證書是最關鍵的一個證書,如果根證書不受信任,它下面頒發(fā)的所有證書都不受信任。操作系統(tǒng)在安裝過程中會默認安裝一些受信任的CA機構的根證書,可以在"運行"里面運行"certmgr.msc"啟動證書管理器,如下圖所示:

根證書的有效期長,支持的用途多以方便頒發(fā)不同用途類型的中級證書;中級證書用途單一,有效期相對短一些,但是比具體的ssl證書要長很多。

如果ssl證書驗證失敗根據瀏覽器的不同會有以下的錯誤提示:

ssl證書驗證失敗有以下三點原因:

  • 1、ssl證書不是由受信任的CA機構頒發(fā)的

  • 2、證書過期

  • 3、訪問的網站域名與證書綁定的域名不一致

這三點原因也是IE瀏覽器給出的提示。

小提示:如果你對哪個根證書CA機構比較憎恨,可以將它的根證書刪除,這樣所有它頒發(fā)的證書都不會受信任。

ssl證書的安全問題

對HTTPS最常見的攻擊手段就是ssl證書欺騙或者叫ssl劫持,是一種典型的中間人攻擊。不過ssl劫持并非只是用于攻擊目的,在一些特殊情況下利用ssl劫持我們可以更順暢的訪問網絡,我會在后文提到。

以攻擊為目的的ssl劫持如果不注意瀏覽器安全提示的話,很容易就中招。當網絡中有中間人發(fā)起ssl劫持攻擊時,攻擊者需要偽造一個ssl證書發(fā)給瀏覽器,這個時候由于偽造的ssl證書不受信任,瀏覽器會給出提示。

這里有一個誤區(qū),當ssl證書不受信任的時候,并不一定就是有ssl劫持發(fā)生,有種例外情況是:一些個人網站買不起合法的ssl證書,因此會自己制作一個ssl證書來加密傳輸的數據。如果你經常訪問某個個人網站,而且你知道這個網站是干什么的,那么這種情況可以不用擔心。但是如果你訪問的是網銀,在線支付,或者是hotmail.com,gmail.com等,這類公司性質的網站一定會申請合法的ssl證書(12306.cn除外),一旦ssl證書不受信任,應該果斷的終止訪問,這個時候網絡中一定會存在異常行為,對于一些小區(qū)寬帶的用戶一定要注意這點。

所以作為個人用戶,你一定要知道你訪問的是什么網站,如果你只是一個沒有多少計算機只是的普通網民,我相信你不會經常上那些自己制作ssl證書的個人網站(12306.cn除外),因此如果你沒有辦法判斷網絡是不是有異常,只要是證書有問題的,干脆就別再訪問了。

小提示:對于12306.cn,一定要按照網站說的那樣,"為保障您順暢購票,請下載安裝根證書"。

最后我們總結一下使用ssl證書要注意的問題:

  • 1、除非必要,不要隨意安裝根證書。安裝根證書的時候一定要明確證書的來源。

  • 2、對于網銀,在線支付,重要郵箱等網站,一定要確保ssl證書是沒有問題的,如果瀏覽器給出ssl證書錯誤的警告,一定要拒絕訪問。一些小區(qū)寬帶用戶一定要注意這點。

  • 3、由于現在個人申請ssl證書比較便宜,一定要注意掛著合法ssl證書的釣魚網站(國外比較常見)。對于釣魚網站,一定要看清域名,另外別相信什么中獎的消息,同時要安裝帶有釣魚防護功能的安全軟件。

分享名稱:HTTPS 與 SSL 證書的關系
標題URL:http://www.muchs.cn/news24/97774.html

成都網站建設公司_創(chuàng)新互聯(lián),為您提供靜態(tài)網站、網站維護、網站內鏈、網頁設計公司網站策劃、網站設計公司

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

h5響應式網站建設