提高網站效能的SSL/TLS最佳化方法介紹!
首先,瀏覽器向WEB伺服器傳送一個大隨機數和一個加密套件清單,由此開始了TLS握手。Web伺服器從中選擇首要的加密套件,從而決定了握手型別以及用於此次TLS會話的加密機制。
然後,Web伺服器向瀏覽器傳送加密套件,還要向瀏覽器返回另一個大隨機數和伺服器的公共SSL證書。瀏覽器需要知道SSL證書是否被吊銷,所以它會檢查CA的證書吊銷列表(除非支援OCSP封裝)。
如果證書仍然合法,瀏覽器會生成一個“預主金鑰”,以生成一個對稱的會話金鑰。瀏覽器會用伺服器的公鑰(包含在伺服器的SSL證書中)來加密“預主金鑰”,並傳送回伺服器。在伺服器用私鑰解密“預主金鑰”後,瀏覽器和伺服器都獲得對稱金鑰,用以加密TLS會話的其餘部分。
充分利用現代SSL的安全功能
TLS握手有很多步驟,這意味著安全管理員有很多機會改進網站的安全性。這裡先討論強制使用HTTPS連線的HSTS,然後再看一下SHA-1與SHA-2的當前狀態,還要探討如何保護未來的使用者會話資料,以及升級到最新TLS版本的重要性。
支援HSTS頭
支援HSTS協議是更好地保障網站、API、移動應用安全的最簡單方法之一。HSTS是HTTP協議的一個擴充套件,它強制客戶端對每一個訪問Web伺服器的請求都使用安全連線。透過提供一個嚴格傳輸安全(STS)頭部,Web伺服器就可以告訴瀏覽器只能在指定的時間段由HTTPS連線到網站。
然後,瀏覽器會在將使用者的請求傳送給伺服器之前,自動將所有的http請求變成https請求。在連線的安全性存在問題時(例如,伺服器的TLS證書不再可信時),HSTS還會告訴瀏覽器顯示一個錯誤頁面。這類錯誤不同於使用者憑直覺就可以忽視的錯誤,它無法被繞開。
這種連結重寫可以防禦某些型別的“降級攻的擊”,如SSL-stripping攻的擊,防止中間人將HTTPS請求變成HTTP請求而窺探使用者通訊。
支援SHA-2證書籤名
SHA-2是SHA(安全雜湊演算法)的下一代版本。雜湊演算法是一種單向功能,它可以產生一個訊息的唯一指紋特徵,並且從網際網路誕生起就已經成為一個關鍵元件。
在CA為網站頒發TLS證書後,就取得了證書中的所有資訊(域名、合法週期、公鑰、序列號,等等),將這些資訊“雜湊(hash)”變成數字證書,使用指紋資訊建立簽名,並生成私有簽名金鑰。在瀏覽器信任伺服器的證書之前,它需要將證書資訊進行雜湊(hash),並且使用CA的公共簽發金鑰驗證指紋是否與證書的簽名相匹配。gendan5.com/nmetal/ruthenium.html
如果攻的擊者能夠使用不同的證書資訊生成同樣的數字指紋,就可以生成偽造的但仍能透過CA簽名驗證的證書。然後,攻的擊者就可以將此偽造的證書作為中間人,而終端使用者並不能夠分辨自己是否正在將其敏感資訊傳送給網際網路上的某個人,而不是安全的Web伺服器。
產生這種雜湊衝突需要大量的計算資源。隨著計算機越來越快和廉價,攻的擊者就越有可能偽造一個使用SHA-1進行簽名的TLS證書。解決方案就是SHA-2。
現代網站都使用SHA-2而不是SHA-1簽名的TLS證書。如果企業網站仍在使用SHA-1證書,主流的瀏覽器廠商都會顯示警告訊息,告訴網站的訪問者正在訪問不安全的網站。到2016年底的時候,瀏覽器將會完全阻止使用者訪問這種網站。為了升級,企業網站需要從自己的CA購買一個新的SHA-2證書,並且將其安裝到Web伺服器上。
如果企業仍需要支援不能使用SHA-2的使用者,不妨考慮利用一個能夠選擇最高安全的證書,並且使用者的瀏覽器還要支援。
用EDH(Ephemeral Diffie-Hellman)支援前向轉發的加密
如果伺服器一直用同樣的私鑰獲得對稱TLS會話金鑰,私鑰就成為鏈條中的脆弱一環。例如,如果攻的擊者記錄了伺服器和使用者之間的大量通訊,就可以從伺服器中竊取私鑰,然後可以解密通訊。
即使私鑰在日後失竊了,EDH (Ephemeral Diffie-Hellman)或 DHE也可以使使用者的加密會話更安全。EDH 是一種可以為每個會話產生唯一對稱金鑰的金鑰交換機制,這意味著即使伺服器的私鑰被竊多年,攻的擊者也不能用它來解密已記錄的會話。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70014563/viewspace-2867539/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 網站效能最佳化網站
- 介紹幾種提高mysql的效能和對於sql的優化的方法MySql優化
- SSL/TLS協議安全系列:CBC 模式的弱安全性介紹(一)TLS協議模式
- designrush網站介紹網站
- 介紹Cloudflare頁面:構建JAMstack網站的最佳方法Cloud網站
- SSL/TLS協議安全系列:SSL/TLS概述TLS協議
- Linux效能分析和最佳化命令介紹Linux
- [HTTPS]SSL/TLSHTTPTLS
- https與TLS/SSL 握手協議、record protocol簡介HTTPTLS協議Protocol
- 完全吃透 TLS/SSLTLS
- 運維文件:網站效能最佳化運維網站
- SEO提高網站排名快速見效的方法網站
- 提高網站訪問效能之Tomcat優化網站Tomcat優化
- 什麼是網站改版?網站改版的必要性介紹網站
- 如何透過最佳化網站提高網頁開啟速度網站網頁
- 網際網路的安全是如何保證的:TLS、SSL 和 CATLS
- SSL和TLS 區別TLS
- 聊一聊 TLS/SSLTLS
- SSL/TLS 深入淺出TLS
- SSL與TLS協議TLS協議
- 提高網站安全性的12種基本方法網站
- ip ssl證書基本介紹
- 如何修改網站的 SEO,最佳化網站搜尋引擎排名的方法網站
- [譯] 提高 10 倍效能:優化靜態網站優化網站
- 網站實現HTTPS的詳細流程介紹網站HTTP
- 網頁設計師教你怎麼提高網站SEO最佳化網頁網站
- 車聯網通訊安全之 SSL/TLS 協議TLS協議
- 提高網站載入速度的五大方法網站
- 關於TLS/SSL協議TLS協議
- mutual-tls-ssl: 為Java伺服器和客戶端設定 SSL/TLS 的分步指南TLSJava伺服器客戶端
- 常用的效能最佳化方法
- SSL/TLS協議安全系列:SSL的Padding Oracle攻擊TLS協議paddingOracle
- 關於SSL證書的一些介紹
- 簡單介紹.Net效能測試框架Crank的使用方法框架
- pip is configured with locations that require TLS/SSL, however the ssl module in Python is not availableUITLSPythonAI
- SSL/TLS 握手過程詳解TLS
- TLS與SSL之間關係TLS
- 如何在 Elasticsearch 中配置 SSL / TLS ?ElasticsearchTLS