HTTP(超文本傳輸協議)是目前互聯網應用最普遍的協議,伴隨着人們網絡安全意識的增強,HTTPS 被愈來愈多地採納。不管是訪問一些購物網站,或是登陸一些博客、論壇等,咱們都被 HTTPS 保護着,甚至 Google Chrome、Firefox 等主流瀏覽器已經將全部基於 HTTP 的站點都標記爲不安全。html
爲何 HTTPS 比 HTTP 安全?在回答這個問題以前,首先咱們得了解 HTTP 和 HTTPS 是什麼。算法
從互聯網發展至今,HTTP 一直擔任互聯網傳輸信息的標準協議。傳輸的信息能夠是互聯網內計算機之間的文檔,文件,圖像,視頻等。瀏覽器
HTTP 請求過程當中,客戶端與服務器之間沒有任何身份確認的過程,數據所有明文傳輸,「裸奔」在互聯網上,因此很容易遭到黑客的攻擊。安全
從上圖中能夠看到,客戶端發出的請求很容易被黑客截獲,若是此時黑客冒充服務器,則其可返回任意信息給客戶端,而不被客戶端察覺,因此咱們常常會聽到一詞「劫持」。服務器
而 HTTPS 其實是帶有 SSL 的 HTTP(HTTP + SSL=HTTPS)。當您在瀏覽器的地址欄中看到 HTTPS 時,這就意味着與該網站的全部通訊都將被加密,整個訪問過程更加安全。網絡
HTTPS 的安全性每每體如今三個方面:curl
服務器身份驗證,經過服務器身份驗證,用戶能夠明確當前它正在與對應的服務器進行通訊。網站
數據機密性,其餘方沒法理解發送的數據內容,由於提交的數據是加密的。搜索引擎
數據完整性,傳輸會攜帶 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 有如下五個優勢:
最大限度地提升 Web 上數據和事務的安全性;
加密用戶敏感或者機密信息;
提升搜索引擎中的排名
避免在瀏覽器中出現「不安全」的提示;
提高用戶對網站的信賴。
相對的,缺點也是必不可少的:
HTTPS 協議在握手階段耗時相對較大,會影響頁面總體加載速度;
在瀏覽器和服務器上會更多的 CPU 週期來加密/解密數據;
SSL 證書通常都須要支付必定費用來獲取,而且費用每每不低;
並非絕對意義上的安全,在網站遭受攻擊,服務器被劫持時,HTTPS 基本起不到任何安全防禦做用。
如何將網站從 HTTP 升級成 HTTPS 呢?相比起常規的升級步驟,又拍雲提供一套更爲簡潔明瞭的流程,從 SSL 證書的申購、管理到部署,三步便可完成。同時,又拍雲與國際頂級 CA 機構合做,證書類型豐富,操做流程簡單方便。
推薦閱讀
[夜空中最靚的二狗子是如何讓 HTTPS 快上加快的?](https://www.upyun.com/tech/article/456/1.html)
[從 HTTP/1 到 HTTP/2,以及即將到來的 HTTP/3](https://www.upyun.com/tech/article/465/1.html)