最近我開始每天讀技術書超過30分鐘,但如果不將其轉化為文章輸出,感覺在自己腦海裡不容易固定,所以想要分享我所學到的知識。
這次我想大概講解一下《輕鬆理解網路&TCP/IP的基本》中的第六章:安全性部分。
突然之間,
你在使用互聯網時,有沒有想過「這個通訊真的安全嗎?」的情況呢?
在瀏覽網站時,看到顯示的 HTTPS。
我曾經隱約覺得「只要有鎖頭圖示就安心」,但在讀了TCP/IP的基本書籍後,
「啊,發現自己的認知範圍其實很狹隘…」
這本書中,
這些網路安全的基本概念都被相當簡化地解釋了。
在這篇文章中,我會整理出
「通訊的安全性,究竟怎麼理解呢?」
這個問題。
專業術語我會儘量在後面解釋,目標是「首先掌握整體概念」。
希望這對於那些
的人有所幫助。
首先,想要了解的前提是,互聯網上的通訊如果不做任何防護,基本上是毫無防備的。
例如,當你訪問一個網站時,
這些互動都以「通訊」的形式在網路中流通。
如果這樣的通訊不加保護的話,就有可能被途中攔截的第三方所看到、被竄改或被冒充。
在書中主要介紹了以下幾種風險。
竊聽就是通訊內容被第三方窺探的情況。
如果通訊沒有加密的話,
等都會被直接讀取。
想像「網路流動的數據就像沒有放在信封裡的明信片」會比較容易理解。
接下來麻煩的就是冒充。
這是指與
進行通訊的情況。
如果外觀非常相似,就可能會「誤以為是真實的而誤送資訊」。
也就是說,「我以為在和對方通訊,但實際上卻是與別人通訊」的狀態。
在通訊途中,也存在竄改的風險。
例如,
如果沒有相應的機制,就無法察覺。
讀到這裡,你可能會覺得,
感覺非常可怕。
於是,出現了以下的安全機制:
當你瀏覽網頁時,URL的前綴是 https://,且瀏覽器中顯示「🔒 鎖頭圖示」。
看到這個時候,
往往會這樣認為,但HTTPS保護的並不是“所有”。
首先,我們來看看HTTPS究竟做了什麼。
HTTPS是保護網頁瀏覽器與網頁伺服器之間通訊的機制。
具體來說,可以實現以下三個功能。
在HTTPS中,通訊內容會被加密後進行傳送。
因此,即使在通訊途中被窺探,
也無法被直接讀取。
👉也就是說,這是「防止被看見」的角色。
在HTTPS中,伺服器使用數位證書來證明「我是正宗的伺服器」。
瀏覽器會檢查這個證書,
以此來做出判斷。
👉這是「確認對方是否真實」的角色。
HTTPS會確認,
是否是一樣的。
如果在途中被改寫,則會有「異常」的警告機制進行檢測。
👉這是「確認在途中沒有變更」的角色。
看到這裡,
「哎,那HTTPS不就是完美的嗎?」
可能會這樣想。
但這裡有一個重要的點。
HTTPS是針對網頁的協議。
也就是說,它保護的僅僅是「網頁瀏覽器 ⇄ 網頁伺服器之間的通訊」。
例如,
這些都不在HTTPS的保護範圍內。
也就是說,即使使用HTTPS,並不代表所有的通訊都會自動安全。
這裡出現的一個選擇就是VPN。
VPN進行的是,
這樣的概念。
若HTTPS保護的是「每一個網路通訊」,那麼
VPN則可視為「這個區域內的所有通訊都加以保護」的機制,這樣會更容易理解。
不過,VPN也有如下的注意點:
關於HTTPS,最低限度需要記住的有這三點👇
因此,必須思考「哪些通訊,該用哪種技術去保護?」。
因為這篇文章篇幅較長,故在此我暫時簡要介紹對於「HTTPS」的內容。
在下一篇文章中,我會提及下面的內容:
這雖然是我個人的閱讀紀錄文章,但希望能對剛開始學習程式設計、對安全性不太了解的朋友有所幫助。
原文出處:https://qiita.com/masa_tech_0326/items/9cd09d8a0d598bdff9fb