HTTP? HTTPS?

一般在使用網站的時候,大部分的人都不會太在意網址開頭的HTTP與HTTPS。今天就讓我們來聊下,這兩個到底差在哪?

HTTP是什麼?HTTPS又是什麼?

HTTP全稱HyperText Transfer Protocol(超文字傳輸協定),是一個屬於Layer7的協定。主要的目的在於提供一種發布和接收HTML頁面的方法。通過HTTP或者HTTPS協定請求的資源由URL(Uniform Resource Identifiers)來標識。
HTTP是由明碼來傳送網頁,並沒有任何加密,使用一般模式下進行交談,所以在網際網路上內容有可能遭攔有心人士攔截竊聽(ex:Wireshark),HTTP協定不使用加密協定,其中原因有:加密會增加許多運算資源,也會佔用更多的頻寬。

反觀HTTPS(Hypertext Transfer Protocol Secure),是以安全為出發點的協定,加入了SSL(Secure Sockets Layer)協定作為安全憑證,因此網站透過協定上的加密機制後能夠防止資料竊取者就算攔截到了傳輸資訊卻也無法直接看到傳輸中的資料,所以多為電子信箱、金融等為主使用,但公開的內容就不需要加密了?。

公開的內容就不需要加密?

答案當然是否定的因為有以下3點問題

1.HTTP明文傳輸不僅會洩露數據,也會很容易被注入數據。

簡單形容下,明文傳輸就像是一個明信片,所有的內容都可以被看見,這個所有人都可以看見的明信片內容被人修改了,然後在寄到收件人手上,那麼收件人看到的就是一個錯誤甚至詐欺的內容。形容個比較好理解的例子,政府網站的總統頭像被換成逗哥。

2.HTTP 傳輸的 Web 網頁中對於系統設備的授權是統一的。

這個有什麼重要呢?想像一下,今天有個可以視訊的聊天網站,而要使用視訊功能,必須要同意授權,當今天用戶選擇同意,而好死不死的通過某個節點的時候,被黑客注入了一段 code。那麼這個時候,這個注入的腳本在瀏覽器看來,已經是原網頁的一部分,自動就有了對鏡頭的訪問權限。同樣的事情還可能發生在你的麥克風,當前的位置訊息,甚至手機上的照片等等。

3.HTTP 不僅內容不加密,協定本身的也是不加密的,於是協定指令本身也可能被修改。

這個修改有什麼呢?比如Cache poisoning讓你的瀏覽器緩存永遠不更新。什麼!那邊股票價格已經跌停了?不過你看不到哦,因為,你的暫存沒法更新……

結論

如今這個大家都在使用網路的時代,網路的資安問題也被大眾所矚目,所以各位部落客、網站架設者,你們的網站準備好HTTPS了嗎?

Facebook 功能: