HTTP(超文本傳輸協定)是目前網路應用最廣泛的協議,伴隨著人們網路安全意識的加強,HTTPS 被越來越多地採納。不論是造訪一些購物網站,或是登入一些部落格、論壇等,我們都被 HTTPS 保護著,甚至 Google Chrome、Firefox 等主流瀏覽器已經將所有基於 HTTP 的網站都標記為不安全。
為什麼 HTTPS 比 HTTP 安全?在回答這個問題之前,首先我們得先了解 HTTP 和 HTTPS 是什麼。
HTTP 和 HTTPS 的存取流程
從網路發展至今,HTTP 一直擔任網路傳輸資訊的標準協定。傳輸的資訊可以是互聯網內電腦之間的文檔,文件,圖像,視訊等。
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 安全性是足夠了。
而Poly1305 作為身份認證演算法提供身份驗證,可以防止攻擊者在TLS 握手過程中,將虛假資訊插入安全的資料流中,Poly1305 演算法提供了大約100 位元的安全性加密強度,足以阻止這類攻擊。
總的來看,HTTPS 相較於 HTTP ,它作為一種加密手段不僅加密了數據,還給了網站一張安全可信賴的身份證。
聊聊HTTPS 的一些優缺點
整體來看HTTPS 有以下五個優點:
● 最大限度地提升Web 上資料與事務的安全性;
● 加密使用者敏感或機密資訊;
● 提升搜尋引擎中的排名
● 避免瀏覽器中出現「不安全」的提示;
● 提升使用者對網站的信賴。
相對的,缺點也是必不可少的:
● HTTPS 協定在握手階段耗時相對較大,會影響頁面整體載入速度;
● 在瀏覽器和伺服器上會更多的CPU 週期來加密/解密資料;
● SSL 憑證一般都需要支付一定費用來獲取,並且費用往往不低;
#●並不是絕對意義上的安全,在網站遭受攻擊,伺服器被劫持時,HTTPS 基本上起不到任何安全防護作用。
相關文章教學:web安全教學
以上是為什麼HTTPS比HTTP安全的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

Atom編輯器mac版下載
最受歡迎的的開源編輯器

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

SecLists
SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。