首頁 運維 安全 HTTPS怎麼保證安全? (詳解)

HTTPS怎麼保證安全? (詳解)

Jun 17, 2020 am 10:59 AM
https

這篇文章帶大家來了解HTTP存在的問題,介紹HTTPS是怎麼保證安全的。有一定的參考價值,有需要的朋友可以參考一下,希望對大家有幫助。

HTTPS怎麼保證安全? (詳解)

HTTP存在的問題

#1、竊聽風險:通訊使用明文(不加密),內容可能會被竊聽(第三方可能獲知通訊內容)

2、冒充風險:不驗證通訊方的身份,因此有可能遭遇偽裝

3、竄改風險:無法證明封包的完整性,所以有可能被竄改

HTTPS

HTTPS怎麼保證安全? (詳解)

可以看到HTTPS的網站,在瀏覽器的網址列內會出現一個鎖定的標記。

HTTPS並非是應用層一個新的協議,通常 HTTP 直接和 TCP 通信,HTTPS則先和安全層(SSL/TLS)通信,然後安全層再和 TCP 層通信。

HTTPS怎麼保證安全? (詳解)

SSL/TLS協定就是為了解決上面提到的HTTP存在的問題而生的,下面我們來看看它是怎麼解決的:

1、所有的資訊都是加密傳輸的,第三方無法竊聽

2、配備身分驗證,防止身分被冒充

3、具有校驗機制,一旦被篡改,通訊雙方會立刻發現

#加密

對稱加密

加密和解密同用一個秘鑰的方式稱為共享秘鑰加密,也被稱為對稱秘鑰加密。

HTTPS怎麼保證安全? (詳解)

  • 瀏覽器傳送給服務端client_random 和一系列加密方法

  • 服務端傳送給瀏覽器server_random和加密方法

#現有瀏覽器和伺服器有了三個相同的憑證:client_randomserver_random和加密方法
用加密方法把client_randomserver_random 兩個隨機數字混合起來,產生一個密碼,這個密鑰就是瀏覽器和服務端通訊的暗號。

存在的問題:第三方可以在中間取得到client_randomserver_random和加密方法,由於這個加密方法同時可以解密,所以中間人可以成功對暗號進行解密,拿到數據,很容易就將這種加密方式破解了。

非對稱加密

HTTPS怎麼保證安全? (詳解)

  • #瀏覽器傳送至服務端一系列加密方法

  • #服務端發送給瀏覽器加密方法以及公鑰

之後瀏覽器透過公鑰將資料加密傳輸給服務端,服務端收到數據使用私鑰進行解密。服務端給瀏覽器發送數據,則使用私鑰加密,瀏覽器收到服務端發送過來的數據,使用公鑰進行解密。

存在的問題:

  • 非對稱加密效率太低, 這會嚴重影響加解密的速度,進而影響使用者開啟頁面的速度。

  • 無法保證伺服器傳送給瀏覽器的資料安全性, 伺服器的資料只能用私鑰加密(因為如果它用公鑰那麼瀏覽器也沒法解密啦),中間人一旦拿到公鑰,那麼就可以對服務端傳來的資料進行解密了,就這樣又被破解了。

HTTPS使用對稱加密和非對稱加密結合

傳輸資料階段依然使用對稱加密,但是對稱加密的秘鑰我們採用非對稱加密傳輸。

HTTPS怎麼保證安全? (詳解)

  • 瀏覽器向伺服器傳送client_random和加密方法清單。

  • 伺服器接收到,回傳server_random、加密方法、公鑰。

  • 瀏覽器接收,接著產生另一個隨機數pre_master, 並且用公鑰加密,傳給伺服器。 (重點操作!)

  • 伺服器用私鑰解密這個被加密後的pre_master。

到此為止,伺服器和瀏覽器就有了相同的 client_randomserver_randompre_master, 然後伺服器和瀏覽器會使用這三組隨機數來產生對稱秘鑰。有了對稱秘鑰之後,雙方就可以使用對稱加密的方式來傳輸資料了。

CA (數位憑證)

使用對稱和非對稱混合的方式,實現了資料的加密傳輸。但是這種仍然存在一個問題,伺服器可能是被駭客冒充的。這樣,瀏覽器訪問的就是駭客的伺服器,駭客可以在自己的伺服器上實現公鑰和私鑰,而對瀏覽器來說,它並不完全知道現在訪問的是這個是駭客的網站。

伺服器需要證明自己的身份,需要使用權威機構頒發的證書,這個權威機構就是 CA(Certificate Authority), 頒發的證書就稱為數位證書 (Digital Certificate)。

對瀏覽器來說,數位憑證有兩個作用:

  • 透過數位憑證向瀏覽器證明伺服器的身分

  • 數位憑證裡麵包含了伺服器公鑰

下面我們來看一下含有數位憑證的HTTPS的請求流程

HTTPS怎麼保證安全? (詳解)

相對於不含數位憑證的HTTPS請求流程,主要以下兩點改變

  • #伺服器沒有直接傳回公鑰給瀏覽器,而是傳回了數字證書,而公鑰正是包含數位證書中的;

  • 在瀏覽器端多了一個證書驗證的操作,驗證了證書之後,才繼續後序流程。

參考

推薦教學:web伺服器安全性

#

以上是HTTPS怎麼保證安全? (詳解)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

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

如何使用Nginx Proxy Manager實現HTTPS協定下的反向代理 如何使用Nginx Proxy Manager實現HTTPS協定下的反向代理 Sep 26, 2023 am 08:40 AM

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

如何使用Nginx Proxy Manager實現HTTP到HTTPS的自動跳轉 如何使用Nginx Proxy Manager實現HTTP到HTTPS的自動跳轉 Sep 26, 2023 am 11:19 AM

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

Nginx與SSL:設定HTTPS保護Web伺服器 Nginx與SSL:設定HTTPS保護Web伺服器 Jun 09, 2023 pm 09:24 PM

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

https工作流程是什麼樣的 https工作流程是什麼樣的 Apr 07, 2024 am 09:27 AM

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

tomcat如何配置https tomcat如何配置https Jan 05, 2024 pm 05:15 PM

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

解決方案:urllib3 ProxySchemeUnknown(proxy.scheme) 解決方案:urllib3 ProxySchemeUnknown(proxy.scheme) Feb 29, 2024 pm 07:01 PM

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

怎麼使用Nginx實現HTTPS雙向驗證 怎麼使用Nginx實現HTTPS雙向驗證 Jun 03, 2023 pm 08:38 PM

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

Nginx防火牆如何保障HTTPS安全通信 Nginx防火牆如何保障HTTPS安全通信 Jun 10, 2023 am 10:16 AM

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

See all articles