為什么HTTPS比HTTP安全

為什么HTTPS比HTTP安全

http(超文本傳輸協(xié)議)是目前互聯(lián)網(wǎng)應(yīng)用最廣泛的協(xié)議,伴隨著人們網(wǎng)絡(luò)安全意識的加強(qiáng),https 被越來越多地采納。不論是訪問一些購物網(wǎng)站,或是登錄一些博客、論壇等,我們都被 https 保護(hù)著,甚至 google chrome、firefox 等主流瀏覽器已經(jīng)將所有基于 http 的站點(diǎn)都標(biāo)記為不安全。

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

HTTP 和 HTTPS 的訪問過程

從互聯(lián)網(wǎng)發(fā)展至今,HTTP 一直擔(dān)任互聯(lián)網(wǎng)傳輸信息的標(biāo)準(zhǔn)協(xié)議。傳輸?shù)男畔⒖梢允腔ヂ?lián)網(wǎng)內(nèi)計(jì)算機(jī)之間的文檔,文件,圖像,視頻等。

為什么HTTPS比HTTP安全

HTTP 請求過程中,客戶端與服務(wù)器之間沒有任何身份確認(rèn)的過程,數(shù)據(jù)全部明文傳輸,“裸奔”在互聯(lián)網(wǎng)上,所以很容易遭到黑客的攻擊。

為什么HTTPS比HTTP安全

從上圖中可以看到,客戶端發(fā)出的請求很容易被黑客截獲,如果此時(shí)黑客冒充服務(wù)器,則其可返回任意信息給客戶端,而不被客戶端察覺,所以我們經(jīng)常會聽到一詞“劫持”。

為什么HTTPS比HTTP安全

而 HTTPS 實(shí)際上是帶有 SSL 的 HTTP(HTTP + SSL=HTTPS)。當(dāng)您在瀏覽器的地址欄中看到 HTTPS 時(shí),這就意味著與該網(wǎng)站的所有通信都將被加密,整個(gè)訪問過程更加安全。

為什么 HTTPS 比 HTTP 安全

HTTPS 的安全性往往體現(xiàn)在三個(gè)方面:

服務(wù)器身份驗(yàn)證,通過服務(wù)器身份驗(yàn)證,用戶可以明確當(dāng)前它正在與對應(yīng)的服務(wù)器進(jìn)行通信。

數(shù)據(jù)機(jī)密性,其他方無法理解發(fā)送的數(shù)據(jù)內(nèi)容,因?yàn)樘峤坏臄?shù)據(jù)是加密的。

數(shù)據(jù)完整性,傳輸會攜帶 Message Authentication Code(MAC)用于驗(yàn)證,因此傳輸?shù)臄?shù)據(jù)不會被另一方更改。

可以舉個(gè)例子來比較下。一個(gè) HTTP 請求,其組成則是多個(gè)遵循 HTTP 協(xié)議的文本行,例如下面的 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

請求會以明文的形式直接發(fā)送,既然是明文的形式,對于協(xié)議命令和語法有基本了解的人,只要監(jiān)控了請求發(fā)送的過程,就能獲取并讀懂請求的意義。因此用 HTTP 的方式發(fā)送密碼一類的數(shù)據(jù)時(shí),安全性極低。

相對的,HTTPS 使用了 SSL(或 TLS)來加密 HTTP 請求和響應(yīng),因此在上面的示例中,監(jiān)控請求的人將會看到一串隨機(jī)的數(shù)字,而不是可讀性的文本。

GsERHg9YDMpYk0VVDiRvw1H5miNieJeJ/FNUjgH0BmVAWII6+T4MnDwmCMZUI/orxP3HGwYCSIvyzS3MpmmSe4iaWKCOHH==

其中加密過程采用的 SSL(安全套接字層)這一標(biāo)準(zhǔn)的安全技術(shù),涵蓋了非對稱密鑰和對稱密鑰。

對稱加密

對稱加密是指加密與解密使用同一個(gè)密鑰的加密算法。

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

非對稱加密

非對稱加密使用的是兩個(gè)密鑰,公鑰與私鑰,我們會使用公鑰對網(wǎng)站賬號密碼等數(shù)據(jù)進(jìn)行加密,再用私鑰對數(shù)據(jù)進(jìn)行解密。這個(gè)公鑰會發(fā)給查看網(wǎng)站的所有人,而私鑰是只有網(wǎng)站服務(wù)器自己擁有的。

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

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

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

為什么HTTPS比HTTP安全

而 Poly1305 作為身份認(rèn)證算法提供身份驗(yàn)證,可以防止攻擊者在 TLS 握手過程中,將虛假信息插入到安全的數(shù)據(jù)流中,Poly1305 算法提供了大約 100 位的安全性加密強(qiáng)度,足以阻止這類攻擊。

總的來看,HTTPS 相比 HTTP ,它作為一種加密手段不僅加密了數(shù)據(jù),還給了網(wǎng)站一張安全可信賴的身份證。

聊聊 HTTPS 的一些優(yōu)缺點(diǎn)

整體來看 HTTPS 有以下五個(gè)優(yōu)點(diǎn):

●?最大限度地提高 Web 上數(shù)據(jù)和事務(wù)的安全性;

●?加密用戶敏感或者機(jī)密信息;

●?提高搜索引擎中的排名

●?避免在瀏覽器中出現(xiàn)“不安全”的提示;

●?提升用戶對網(wǎng)站的信賴。

相對的,缺點(diǎn)也是必不可少的:

●?HTTPS 協(xié)議在握手階段耗時(shí)相對較大,會影響頁面整體加載速度;

●?在瀏覽器和服務(wù)器上會更多的 CPU 周期來加密/解密數(shù)據(jù);

●?SSL 證書一般都需要支付一定費(fèi)用來獲取,并且費(fèi)用往往不低;

●?并不是絕對意義上的安全,在網(wǎng)站遭受攻擊,服務(wù)器被劫持時(shí),HTTPS 基本起不到任何安全防護(hù)作用。

相關(guān)文章教程:web安全教程

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點(diǎn)贊8 分享