首頁 > 運維 > 安全 > 主體

為什麼HTTPS比HTTP安全

angryTom
發布: 2019-11-28 15:52:06
轉載
3139 人瀏覽過

為什麼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中文網其他相關文章!

相關標籤:
來源:cnblogs.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!