🔧 阿川の電商水電行
Shopify 顧問、維護與客製化
💡
小任務 / 單次支援方案
單次處理 Shopify 修正/微調
⭐️
維護方案
每月 Shopify 技術支援 + 小修改 + 諮詢
🚀
專案建置
Shopify 功能導入、培訓 + 分階段交付

前言

最近我開始每天讀技術書超過30分鐘,但如果不將其轉化為文章輸出,感覺在自己腦海裡不容易固定,所以想要分享我所學到的知識。

這次我想大概講解一下《輕鬆理解網路&TCP/IP的基本》中的第六章:安全性部分。

突然之間,
你在使用互聯網時,有沒有想過「這個通訊真的安全嗎?」的情況呢?

在瀏覽網站時,看到顯示的 HTTPS。
我曾經隱約覺得「只要有鎖頭圖示就安心」,但在讀了TCP/IP的基本書籍後,

「啊,發現自己的認知範圍其實很狹隘…」

這本書中,

  • HTTPS到底保護了什麼
  • 加密究竟是什麼
  • VPN會在哪些場景中使用

這些網路安全的基本概念都被相當簡化地解釋了。

在這篇文章中,我會整理出
「通訊的安全性,究竟怎麼理解呢?」
這個問題。

專業術語我會儘量在後面解釋,目標是「首先掌握整體概念」。

希望這對於那些

  • 對網路不太熟悉
  • 使用HTTPS或VPN只是憑感覺
  • 讀過TCP/IP的書卻感到頭昏眼花

的人有所幫助。

通訊有哪些危險?

首先,想要了解的前提是,互聯網上的通訊如果不做任何防護,基本上是毫無防備的。

例如,當你訪問一個網站時,

  • 輸入登入ID或密碼
  • 在表單中填寫個人資訊
  • 從伺服器接收數據

這些互動都以「通訊」的形式在網路中流通。

如果這樣的通訊不加保護的話,就有可能被途中攔截的第三方所看到、被竄改或被冒充。

在書中主要介紹了以下幾種風險。

📡 竊聽(資料被看見)

竊聽就是通訊內容被第三方窺探的情況。

如果通訊沒有加密的話,

  • 輸入的密碼
  • 郵件內容
  • 表單中填寫的個人資訊

等都會被直接讀取。

想像「網路流動的數據就像沒有放在信封裡的明信片」會比較容易理解。

🕵️ 冒充(對方不一定是真實的)

接下來麻煩的就是冒充

這是指與

  • 以真實網站為名的偽網站
  • 以真實伺服器為名的攻擊者

進行通訊的情況。

如果外觀非常相似,就可能會「誤以為是真實的而誤送資訊」。

也就是說,「我以為在和對方通訊,但實際上卻是與別人通訊」的狀態。

✍️ 竄改(途中被改寫)

在通訊途中,也存在竄改的風險。

例如,

  • 發送的內容與接收的數據不同
  • 看似正常的數據,其實某部分被改寫

如果沒有相應的機制,就無法察覺。

🤔 「那麼,我們該怎麼辦?」

讀到這裡,你可能會覺得,

  • 被看見
  • 被騙
  • 被竄改

感覺非常可怕。

於是,出現了以下的安全機制:

  • 加密(防止被看見)
  • 身份驗證(確認對方是否真實)
  • 竄改檢測(確認途中沒有變更)

HTTPS究竟保護了什麼,沒保護什麼

當你瀏覽網頁時,URL的前綴是 https://,且瀏覽器中顯示「🔒 鎖頭圖示」。

看到這個時候,

  • 「因為是HTTPS,所以安全」
  • 「因為有鎖頭圖示,所以安心」

往往會這樣認為,但HTTPS保護的並不是“所有”。

首先,我們來看看HTTPS究竟做了什麼。

🔒 HTTPS所保護的內容

HTTPS是保護網頁瀏覽器與網頁伺服器之間通訊的機制。

具體來說,可以實現以下三個功能。

① 加密通訊內容(防止竊聽)

在HTTPS中,通訊內容會被加密後進行傳送。
因此,即使在通訊途中被窺探,

  • 密碼
  • 表單的輸入內容
  • 送受信的數據

也無法被直接讀取。

👉也就是說,這是「防止被看見」的角色。

② 確認對方是否真實(防止冒充)

在HTTPS中,伺服器使用數位證書來證明「我是正宗的伺服器」。

瀏覽器會檢查這個證書,

  • 是否是可信賴的對方?
  • 是否不是冒充的?

以此來做出判斷。

👉這是「確認對方是否真實」的角色。

③ 確認數據在途中沒有被竄改

HTTPS會確認,

  • 發送的數據和
  • 接收的數據

是否是一樣的。

如果在途中被改寫,則會有「異常」的警告機制進行檢測。

👉這是「確認在途中沒有變更」的角色。

看到這裡,
哎,那HTTPS不就是完美的嗎?
可能會這樣想。

但這裡有一個重要的點。

⚠️ HTTPS沒保護的內容

HTTPS是針對網頁的協議

也就是說,它保護的僅僅是「網頁瀏覽器 ⇄ 網頁伺服器之間的通訊」。

例如,

  • 電子郵件(SMTP)
  • 檔案傳輸(FTP)
  • 伺服器管理(SSH)
  • 公司內部網路間的通訊

這些都不在HTTPS的保護範圍內

也就是說,即使使用HTTPS,並不代表所有的通訊都會自動安全。

🌐 那麼除了web以外的通訊該如何保護?

這裡出現的一個選擇就是VPN

VPN進行的是,

  • 對特定區間的通訊
  • 全部進行加密

這樣的概念。

若HTTPS保護的是「每一個網路通訊」,那麼
VPN則可視為「這個區域內的所有通訊都加以保護」的機制,這樣會更容易理解。

不過,VPN也有如下的注意點:

  • 保護的範圍有限
  • VPN外的通訊不在保護範圍內

🧠 需要掌握的概念

關於HTTPS,最低限度需要記住的有這三點👇

  • HTTPS是保護網路通訊的機制
  • 進行加密、身份確認、竄改檢測
  • 保護範圍是有限的

因此,必須思考「哪些通訊,該用哪種技術去保護?」。

因為這篇文章篇幅較長,故在此我暫時簡要介紹對於「HTTPS」的內容。

在下一篇文章中,我會提及下面的內容:

  • 加密的理念(簡略介紹對稱密鑰與公開金鑰)
  • 數位證書及簽名是什麼?
  • VPN何時使用?
  • 最終,應該怎麼思考?

這雖然是我個人的閱讀紀錄文章,但希望能對剛開始學習程式設計、對安全性不太了解的朋友有所幫助。


原文出處:https://qiita.com/masa_tech_0326/items/9cd09d8a0d598bdff9fb


精選技術文章翻譯,幫助開發者持續吸收新知。

共有 0 則留言


精選技術文章翻譯,幫助開發者持續吸收新知。
🏆 本月排行榜
🥇
站長阿川
📝19   💬3  
490
🥈
我愛JS
📝1   💬5   ❤️2
65
評分標準:發文×10 + 留言×3 + 獲讚×5 + 點讚×1 + 瀏覽數÷10
本數據每小時更新一次
🔧 阿川の電商水電行
Shopify 顧問、維護與客製化
💡
小任務 / 單次支援方案
單次處理 Shopify 修正/微調
⭐️
維護方案
每月 Shopify 技術支援 + 小修改 + 諮詢
🚀
專案建置
Shopify 功能導入、培訓 + 分階段交付