首頁 運維 安全 為什麼HTTPS比HTTP安全

為什麼HTTPS比HTTP安全

Nov 28, 2019 pm 03:52 PM
http https 安全

為什麼HTTPS比HTTP安全

HTTP(超文本傳輸協定)是目前網路應用最廣泛的協議,伴隨著人們網路安全意識的加強,HTTPS 被越來越多地採納。不論是造訪一些購物網站,或是登入一些部落格、論壇等,我們都被 HTTPS 保護著,甚至 Google Chrome、Firefox 等主流瀏覽器已經將所有基於 HTTP 的網站都標記為不安全。

為什麼 HTTPS 比 HTTP 安全?在回答這個問題之前,首先我們得先了解 HTTP 和 HTTPS 是什麼。

HTTP 和 HTTPS 的存取流程

從網路發展至今,HTTP 一直擔任網路傳輸資訊的標準協定。傳輸的資訊可以是互聯網內電腦之間的文檔,文件,圖像,視訊等。

為什麼HTTPS比HTTP安全

HTTP 要求過程中,客戶端與伺服器之間沒有任何身分確認的過程,資料全部明文傳輸,「裸奔」在網路上,所以很容易遭到駭客的攻擊。

為什麼HTTPS比HTTP安全

從上圖中可以看到,客戶端發出的請求很容易被駭客截獲,如果此時駭客冒充伺服器,則其可傳回任意訊息給客戶端,而不被客戶端察覺,所以我們常常聽到一詞「劫持」。

為什麼HTTPS比HTTP安全

而 HTTPS 其實是帶有 SSL 的 HTTP(HTTP SSL=HTTPS)。當您在瀏覽器的網址列中看到 HTTPS 時,這表示與該網站的所有通訊都將加密,整個存取過程更加安全。

為什麼HTTPS 比HTTP 安全

HTTPS 的安全性往往體現在三個方面:

伺服器身份驗證,透過伺服器身份驗證,用戶可以明確當前它正在與對應的伺服器進行通訊。

資料機密性,其他方無法理解傳送的資料內容,因為提交的資料是加密的。

資料完整性,傳輸會攜帶 Message Authentication Code(MAC)用於驗證,因此傳輸的資料不會被另一方更改。

可以舉例來比較下。一個HTTP 請求,其組成則是多個遵循HTTP 協定的文字行,例如下面的GET 請求:

GET /helloupyun.txt HTTP/1.1
User-Agent: curl/7.73.0 libcurl/7.73.0 OpenSSL/1.1.l zlib/1.2.11
Host: www.upyun.com
Accept-Language: en
登入後複製

請求會以明文的形式直接發送,既然是明文的形式,對於協定命令和語法有基本了解的人,只要監控了請求發送的過程,就能取得並讀懂請求的意義。因此用 HTTP 的方式傳送密碼一類的資料時,安全性極低。

相對的,HTTPS 使用了SSL(或TLS)來加密HTTP 請求和回應,因此在上面的範例中,監控請求的人將會看到一串隨機的數字,而不是可讀性的文本。

GsERHg9YDMpYk0VVDiRvw1H5miNieJeJ/FNUjgH0BmVAWII6+T4MnDwmCMZUI/orxP3HGwYCSIvyzS3MpmmSe4iaWKCOHH==
登入後複製

其中加密過程採用的 SSL(安全通訊端層)這項標準的安全技術,涵蓋了非對稱金鑰和對稱金鑰。

對稱加密

對稱加密是指加密與解密使用相同金鑰的加密演算法。

目前常見的加密演算法有:DES、AES、IDEA 等

非對稱加密

非對稱加密使用的是兩個金鑰,公鑰與私鑰,我們會使用公鑰對網站帳號密碼等資料進行加密,再用私鑰對資料進行解密。這個公鑰會發給查看網站的所有人,而私鑰是只有網站伺服器自己擁有的。

目前常見非對稱加密演算法:RSA,DSA,DH 等。

而常用的套件,例如 ChaCha20-Poly1305 加密套件就使用了這兩種演算法,其中 Chacha20 是指對稱加密演算法,而Poly1305 是指身份認證演算法。

參考 RFC 文檔,我們可以了解 ChaCha20 提供了 256 位元的加密強度,這作為對稱加密演算法來保障 HTTPS 安全性是足夠了。

為什麼HTTPS比HTTP安全

而Poly1305 作為身份認證演算法提供身份驗證,可以防止攻擊者在TLS 握手過程中,將虛假資訊插入安全的資料流中,Poly1305 演算法提供了大約100 位元的安全性加密強度,足以阻止這類攻擊。

總的來看,HTTPS 相較於 HTTP ,它作為一種加密手段不僅加密了數據,還給了網站一張安全可信賴的身份證。

聊聊HTTPS 的一些優缺點

整體來看HTTPS 有以下五個優點:

● 最大限度地提升Web 上資料與事務的安全性;

● 加密使用者敏感或機密資訊;

● 提升搜尋引擎中的排名

● 避免瀏覽器中出現「不安全」的提示;

● 提升使用者對網站的信賴。

相對的,缺點也是必不可少的:

● HTTPS 協定在握手階段耗時相對較大,會影響頁面整體載入速度;

● 在瀏覽器和伺服器上會更多的CPU 週期來加密/解密資料;

● SSL 憑證一般都需要支付一定費用來獲取,並且費用往往不低;

#●並不是絕對意義上的安全,在網站遭受攻擊,伺服器被劫持時,HTTPS 基本上起不到任何安全防護作用。

相關文章教學:web安全教學

以上是為什麼HTTPS比HTTP安全的詳細內容。更多資訊請關注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脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

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

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

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

如何使用C++實作HTTP流傳輸? 如何使用C++實作HTTP流傳輸? May 31, 2024 am 11:06 AM

如何在C++中實現HTTP流傳輸?使用Boost.Asio和asiohttps客戶端程式庫建立SSL流套接字。連接到伺服器並發送HTTP請求。接收HTTP響應頭並列印它們。接收HTTP回應正文並列印它。

使用C++實現機器學習演算法:安全性考量與最佳實踐 使用C++實現機器學習演算法:安全性考量與最佳實踐 Jun 01, 2024 am 09:26 AM

在使用C++實作機器學習演算法時,安全考量至關重要,包括資料隱私、模型篡改和輸入驗證。最佳實務包括採用安全庫、最小化權限、使用沙盒和持續監控。實戰案例中展示了使用Botan庫對CNN模型進行加密和解密,以確保安全訓練和預測。

Struts 2框架的安全配置與加固 Struts 2框架的安全配置與加固 May 31, 2024 pm 10:53 PM

為保護Struts2應用程序,可以使用以下安全性配置:停用未使用的功能啟用內容類型檢查驗證輸入啟用安全性令牌防止CSRF攻擊使用RBAC限制基於角色的訪問

PHP微框架:Slim 與 Phalcon 的安全性探討 PHP微框架:Slim 與 Phalcon 的安全性探討 Jun 04, 2024 am 09:28 AM

Slim和Phalcon在PHP微框架的安全性比較中,Phalcon內建有CSRF和XSS防護、表單驗證等安全特性,而Slim缺乏開箱即用的安全特性,需手動實施安全措施。對於安全至關重要的應用程序,Phalcon提供了更全面的保護,是更好的選擇。

SHIB幣放在哪個錢包比較安全? (新手必看) SHIB幣放在哪個錢包比較安全? (新手必看) Jun 05, 2024 pm 01:30 PM

SHIB幣對投資人來說已經不陌生了,它是狗狗幣同類型概念代幣,隨著市場的發展,目前SHIB的市值已經排名12了,可以看出SHIB市場的火爆,吸引力無數投資者參與投資。而先前市場的交易、錢包安全事件頻出,許多投資人對於SHIB的存放問題一直感到擔憂,不知道當下SHIB幣放在哪個錢包比較安全?根據市場數據分析來看,相對安全的錢包主要就是OKXWeb3Wallet、imToken、MetaMask錢包會比較安全,接下來小編為大家詳細說。 SHIB幣放在哪個錢包比較安全?目前來看,SHIB幣放在OKXWe

如何增強Spring Boot框架的安全性 如何增強Spring Boot框架的安全性 Jun 01, 2024 am 09:29 AM

如何增強SpringBoot框架的安全性增強SpringBoot應用的安全至關重要,以保護使用者資料和防止攻擊。以下是增強SpringBoot安全性的幾個關鍵步驟:1.啟用HTTPS使用HTTPS在伺服器和客戶端之間建立安全的連接,防止資訊被竊聽或篡改。在SpringBoot中,可以透過在application.properties中配置以下內容來啟用HTTPS:server.ssl.key-store=path/to/keystore.jksserver.ssl.k

java框架安全架構設計應如何與業務需求平衡? java框架安全架構設計應如何與業務需求平衡? Jun 04, 2024 pm 02:53 PM

透過平衡安全需求和業務需求,Java框架設計可實現安全性:識別關鍵業務需求,優先考慮相關安全要求。制定彈性安全策略,分層應對威脅,定期調整。考慮架構靈活性,支援業務演變,抽象安全功能。優先考慮效率和可用性,優化安全措施,提高可見度。

如何使用 Golang 實作 HTTP 檔案上傳安全性? 如何使用 Golang 實作 HTTP 檔案上傳安全性? Jun 01, 2024 pm 02:45 PM

在Golang中實作HTTP檔案上傳安全性需要遵循以下步驟:驗證檔案類型。限製檔案大小。檢測病毒和惡意軟體。儲存檔案安全。

See all articles