SSL證書是否影響網速和網站訪問速度

2014年穀歌公司宣佈採用HTTPS/SSL安全認證的網站將會被谷歌給予更多的信任,從而有利於網站在谷歌搜索結果中的排名提升。這使得HTTPS/SSL躍入衆多站長的視線。

  提到HTTPS及SSL,那就不能不首先說下HTTP與它們的區別。對於HTTP我們都不陌生,那就是超文本傳輸協議(HyperText Transfer Protocol),但是在安全上有一定的缺陷,那就是明文傳送和消息完整性檢測的不足。這種安全缺陷很容易被利用以獲取個人信息,如手機、身份信息、信用卡號等。尤其是當下網上交易、支付等已經變得非常普遍。爲了保證這些隱私數據能加密傳輸,於是網景公司設計了SSL(Secure Sockets Layer)協議用於對HTTP協議傳輸的數據進行加密,從而就誕生了HTTPS。

  SSL目前的版本是3.0,被IETF(Internet Engineering Task Force)定義在RFC 6101中,之後IETF對SSL 3.0進行了升級,於是出現了TLS(Transport Layer Security) 1.0,定義在RFC 2246。實際上我們現在的HTTPS都是用的TLS協議,但是由於SSL出現的時間比較早,並且依舊被現在瀏覽器所支持,因此SSL依然是HTTPS的代名詞,但無論是TLS還是SSL都是上個世紀的事情,SSL最後一個版本是3.0,今後TLS將會繼承SSL優良血統繼續爲我們進行加密服務。目前TLS的版本是1.2,定義在RFC 5246中有詳細描述。

  剛纔主要簡介了一下HTTPS與SSL的來龍去脈,那更多人可能更關心的是HTTPS是否影響站點的訪問速度?關於這個問題的解答,我們可能需要從HTTPS的工作原理上入手。

  工作原理

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

  1.瀏覽器將自己支持的一套加密規則發送給網站。

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

  3.獲得網站證書之後瀏覽器要做以下工作:

  a) 驗證證書的合法性(頒發證書的機構是否合法,證書中包含的網站地址是否與正在訪問的地址一致等),如果證書受信任,則瀏覽器欄裏面會顯示一個小鎖頭,否則會給出證書不受信的提示。

  b) 如果證書受信任,或者是用戶接受了不受信的證書,瀏覽器會生成一串隨機數的密碼,並用證書中提供的公鑰加密。

  c) 使用約定好的HASH計算握手消息,並使用生成的隨機數對消息進行加密,最後將之前生成的所有信息發送給網站。

  4.網站接收瀏覽器發來的數據之後要做以下的操作:

  a) 使用自己的私鑰將信息解密取出密碼,使用密碼解密瀏覽器發來的握手消息,並驗證HASH是否與瀏覽器發來的一致。

  b) 使用密碼加密一段握手消息,發送給瀏覽器。

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

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

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

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

  HASH算法:MD5,SHA1,SHA256

  其中非對稱加密算法用於在握手過程中加密生成的密碼,對稱加密算法用於對真正傳輸的數據進行加密,而HASH算法用於驗證數據的完整性。由於瀏覽器生成的密碼是整個數據加密的關鍵,因此在傳輸的時候使用了非對稱加密算法對其加密。非對稱加密算法會生成公鑰和私鑰,公鑰只能用於加密數據,因此可以隨意傳輸,而網站的私鑰用於對數據進行解密,所以網站都會非常小心的保管自己的私鑰,防止泄漏。

  TLS握手過程中如果有任何錯誤,都會使加密連接斷開,從而阻止了隱私信息的傳輸。正是由於HTTPS非常的安全,攻擊者無法從中找到下手的地方。

  實戰

  爲了讓讀者更好地理解HTTPS的工作,我們就從實際訪問HTTPS入手吧。我們用火狐瀏覽器(Firefox)打開網站(https://www.bairendai.com/),利用火狐瀏覽器自帶的debug工具來探究一下。

  首先可以先打開此網站的 HTTP頁面,可以看到:

  

 

  然後打開此網站的HTTPS頁面,發現耗時確實有點變大,但是實際相差不大:

  

 

  然後點擊安全性,可以看到此次HTTPS連接的詳細信息:

  

 

  總結

  以上就是關於SSL證書是否影響網速和網站訪問速度的分析,當了解原理後會發現其實它和HTTP訪問之間就相差了一個SSL握手,總結一下,就是下面這兩個式子。

  HTTP耗時 = TCP握手

  HTTPS耗時 = TCP握手 + SSL握手

  隨着現在網絡帶寬日益增大以及硬件設備的不斷提升,SSL握手真正佔用的時間可能只有幾百毫秒,對日常訪問網站來說,這個差異幾乎體驗不出,所以可以完全不用顧慮HTTPS在速度上的負面影響。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章