HTTPS怎麼保證安全? (詳解)
這篇文章帶大家來了解HTTP存在的問題,介紹HTTPS是怎麼保證安全的。有一定的參考價值,有需要的朋友可以參考一下,希望對大家有幫助。
HTTP存在的問題
#1、竊聽風險:通訊使用明文(不加密),內容可能會被竊聽(第三方可能獲知通訊內容)
2、冒充風險:不驗證通訊方的身份,因此有可能遭遇偽裝
3、竄改風險:無法證明封包的完整性,所以有可能被竄改
HTTPS
可以看到HTTPS的網站,在瀏覽器的網址列內會出現一個鎖定的標記。
HTTPS並非是應用層一個新的協議,通常 HTTP 直接和 TCP 通信,HTTPS則先和安全層(SSL/TLS)通信,然後安全層再和 TCP 層通信。
SSL/TLS協定就是為了解決上面提到的HTTP存在的問題而生的,下面我們來看看它是怎麼解決的:
1、所有的資訊都是加密傳輸的,第三方無法竊聽
2、配備身分驗證,防止身分被冒充
3、具有校驗機制,一旦被篡改,通訊雙方會立刻發現
#加密
對稱加密
加密和解密同用一個秘鑰的方式稱為共享秘鑰加密,也被稱為對稱秘鑰加密。
瀏覽器傳送給服務端
client_random
和一系列加密方法服務端傳送給瀏覽器
server_random
和加密方法
#現有瀏覽器和伺服器有了三個相同的憑證:client_random
、server_random
和加密方法
用加密方法把client_random
、server_random
兩個隨機數字混合起來,產生一個密碼,這個密鑰就是瀏覽器和服務端通訊的暗號。
存在的問題:第三方可以在中間取得到client_random
、server_random
和加密方法,由於這個加密方法同時可以解密,所以中間人可以成功對暗號進行解密,拿到數據,很容易就將這種加密方式破解了。
非對稱加密
#瀏覽器傳送至服務端一系列加密方法
#服務端發送給瀏覽器加密方法以及公鑰
之後瀏覽器透過公鑰將資料加密傳輸給服務端,服務端收到數據使用私鑰進行解密。服務端給瀏覽器發送數據,則使用私鑰加密,瀏覽器收到服務端發送過來的數據,使用公鑰進行解密。
存在的問題:
非對稱加密效率太低, 這會嚴重影響加解密的速度,進而影響使用者開啟頁面的速度。
無法保證伺服器傳送給瀏覽器的資料安全性, 伺服器的資料只能用私鑰加密(因為如果它用公鑰那麼瀏覽器也沒法解密啦),中間人一旦拿到公鑰,那麼就可以對服務端傳來的資料進行解密了,就這樣又被破解了。
HTTPS使用對稱加密和非對稱加密結合
傳輸資料階段依然使用對稱加密,但是對稱加密的秘鑰我們採用非對稱加密傳輸。
瀏覽器向伺服器傳送client_random和加密方法清單。
伺服器接收到,回傳server_random、加密方法、公鑰。
瀏覽器接收,接著產生另一個隨機數pre_master, 並且用公鑰加密,傳給伺服器。 (重點操作!)
伺服器用私鑰解密這個被加密後的pre_master。
到此為止,伺服器和瀏覽器就有了相同的 client_random
、server_random
和pre_master
, 然後伺服器和瀏覽器會使用這三組隨機數來產生對稱秘鑰。有了對稱秘鑰之後,雙方就可以使用對稱加密的方式來傳輸資料了。
CA (數位憑證)
使用對稱和非對稱混合的方式,實現了資料的加密傳輸。但是這種仍然存在一個問題,伺服器可能是被駭客冒充的。這樣,瀏覽器訪問的就是駭客的伺服器,駭客可以在自己的伺服器上實現公鑰和私鑰,而對瀏覽器來說,它並不完全知道現在訪問的是這個是駭客的網站。
伺服器需要證明自己的身份,需要使用權威機構頒發的證書,這個權威機構就是 CA(Certificate Authority), 頒發的證書就稱為數位證書 (Digital Certificate)。
對瀏覽器來說,數位憑證有兩個作用:
透過數位憑證向瀏覽器證明伺服器的身分
-
數位憑證裡麵包含了伺服器公鑰
下面我們來看一下含有數位憑證的HTTPS的請求流程
相對於不含數位憑證的HTTPS請求流程,主要以下兩點改變
#伺服器沒有直接傳回公鑰給瀏覽器,而是傳回了數字證書,而公鑰正是包含數位證書中的;
在瀏覽器端多了一個證書驗證的操作,驗證了證書之後,才繼續後序流程。
參考
推薦教學:web伺服器安全性
#以上是HTTPS怎麼保證安全? (詳解)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題

如何使用NginxProxyManager實現HTTPS協定下的反向代理近年來,隨著網際網路的普及和應用場景的多樣化,網站和應用程式的存取方式變得越來越複雜。為了提高網站的存取效率和安全性,許多網站開始採用反向代理來處理使用者的請求。而針對HTTPS協定的反向代理,在保護使用者隱私和確保通訊安全性方面扮演著重要的角色。本文將介紹如何使用NginxProxy

如何使用NginxProxyManager實現HTTP到HTTPS的自動跳轉隨著互聯網的發展,越來越多的網站開始採用HTTPS協議來加密傳輸數據,以提高數據的安全性和用戶的隱私保護。由於HTTPS協定需要SSL憑證的支持,因此在部署HTTPS協定時需要有一定的技術支援。 Nginx是一款強大且常用的HTTP伺服器和反向代理伺服器,而NginxProxy

Nginx是一個高效能的Web伺服器軟體,同時也是一款強大的反向代理伺服器和負載平衡器。隨著互聯網的迅速發展,越來越多的網站開始採用SSL協議保護敏感用戶數據,而Nginx也提供了強大的SSL支持,使得Web伺服器的安全性能更進一步。本文將介紹如何設定Nginx以支援SSL協議,並保護Web伺服器的安全效能。什麼是SSL協定? SSL(SecureSocke

https工作流程包括客戶端發起請求、伺服器回應、SSL/TLS握手、資料傳輸和客戶端渲染等步驟,透過這些步驟可以確保資料在傳輸過程中的安全性和完整性。

設定步驟:1、取得SSL憑證;2、設定SSL憑證;3、編輯Tomcat設定檔;4、重啟Tomcat。詳細介紹:1、需要取得SSL證書,可以自簽名證書,也可以從認證機構(如Let's Encrypt)取得有效的SSL證書;2、將取得的SSL證書和私鑰檔案放置在伺服器上,確保這些文件位於安全的位置,只有具有足夠權限的使用者可以存取;3、編輯Tomcat設定檔等等。

報錯的原因urllib3的ProxySchemeUnknown(proxy.scheme)錯誤通常是因為使用了不支援的代理協定所導致的。在這種情況下,urllib3無法辨識代理伺服器的協定類型,因此無法使用代理進行網路連線。要解決這個問題,您需要確保使用支援的代理協議,例如Http或https.如何解決要解決這個問題,您需要確保使用支援的代理協議,例如HTTP或HTTPS。您可以透過設定urllib3的代理參數來解決這個問題。如果是使用http代理,程式碼範例如下:importurllib3http

單向驗證與雙向驗證的差異:單向驗證:指客戶端驗證伺服器端證書,伺服器並不需要驗證客戶端證書。雙向驗證:指客戶端驗證伺服器端證書,而伺服器也需要透過ca的公鑰證書來驗證客戶端證書。詳細的握手過程:單向驗證瀏覽器發送一個連線請求給安全伺服器。 1、伺服器將自己的證書,以及同證書相關的資訊傳送給客戶瀏覽器。 2、客戶瀏覽器檢查伺服器送過來的憑證是否是由自己信賴的ca中心所簽發的。如果是,就繼續執行協議;如果不是,客戶瀏覽器就給客戶一個警告訊息:警告客戶這個憑證不是可以信賴的詢問客戶是否需要繼續。 3、接著客

在當今網路時代,安全通訊已經成為了不可或缺的一部分。尤其是在HTTPS通訊中,如何保障其安全性尤其重要。而Nginx作為流行的Web伺服器和反向代理伺服器,其防火牆也可在保障HTTPS安全通訊中發揮重要作用。本文將就Nginx防火牆從以下幾個面向進行討論。 TLS/SSL加密HTTPS通訊的安全性安全性主要是基於TLS/SSL加密技術,其能夠防止資料在傳輸過程
