如何防止別人用Fiddler、Wireshark來抓包我的手機電腦?
沒有辦法防止,特別是在用戶數據包在無線網絡傳輸的情況下。無線信號以接近等能量(等幅度)向外發射,所以只要處在信號可以輻射的區域,且信號能量高于接收機的敏感閥值的上方,都是可以解碼的,
但是解碼得到的數據,是否就是TCP/IP通過LLC接口發給無線網卡MAC層的原始數據呢?
這取決于MAC層是否將TCP/IP數據加密,如果沒有加密,那么上面的問題答案就是肯定的。如果MAC層加密,那么答案就是否定的!
MAC層加密
意味著wireshark、fiddler解碼得到的不是TCP/IP原始數據,而是加密數據!
既然加密了,沒有解密密鑰是無法解密得到TCP/IP原始數據的,所以題主不要過分擔心隨便誰都可以偷窺你的流量內容。
有同學會說,當前使用WPA2密鑰生成主要有兩種方式:
- Pre-Shared Key
- 802.1x
Pre-Shared Key密鑰生成并不安全,對嗎?
是的,這種方式差不多是所有家庭無線局域網的密鑰生成方式。每個密鑰的生成由五個元素組成:
- 電腦/手機 MAC地址
- 電腦/手機隨機鹽
- 無線路由器 MAC地址
- 無線路由器隨機鹽
- 無線上網密碼
所以共享無線上網密碼的用戶,是可以計算出別的用戶的密鑰,是可以解密出對方的加密數據的。
但是題主也不必過分擔心,因為大不了TCP/IP數據被解密了出來,只要用戶的http不被解密,就一點問題沒有。
http傳輸
在10年前,http通常是直接用TCP/IP來傳輸的,一旦TCP/IP被解密,那么意味著http也被解密,因為http本身是不加密的,那么用戶的數據就在裸奔了。
自從2015年開始,互聯網已經開始使用TLS來傳輸http了,并有一個大家熟悉的名字叫https。TLS負責http的加密傳輸任務。這個服務鏈大概是這個樣子的:
PHY - MAC - IP -TCP - TLS - HTTP
有了TLS的加密保護,HTTP數據是安全的,那么Wireshark、Fiddler可否解密?
它們是沒法解密的,即使它們知道無線的密碼也沒用!
Fiddler解密
需要一個前提條件,那就是在你的機器上信任Fiddler證書,才能解密Fiddler所在主機的TLS加密流量。但是別人主機安裝的Fiddler是無法解密你電腦TLS流量的。
所以題主可以放寬心,即使別人解密得到你的TCP/IP數據,關系并不大,頂多知道你在訪問哪些網站(通過DNS報文),但是你去這些網站干點啥,別人是無從知道的!
802.1x密鑰生成
通常用于企業網,每個用戶使用獨一無二的動態密鑰,即使處于同一個網絡,用戶無法解密互相的流量。這是最最安全的上網方式!
Wi-Fi 6
安全性更高,針對WPA2 Pre-Shared Key薄弱環節有一個質的飛躍,使用SAE生成密鑰。
即使共享Pre-Shared Key用戶,也無法得到其他用戶的密鑰,這個密鑰使用EC-DH動態推導,每個用戶使用獨一無二的密鑰上網。
即使別的用戶知曉上網密碼。也把你的無線流量捕獲下來,一樣是無法解密的!
上網密碼到底有什么用?
僅證明你有使用這個無線網絡的權限,認證你的身份,至于更多的,沒有了!
但是無線網絡,防范攻擊的還是很脆弱的,因為網絡管理包是明文傳輸,非常好偽造,隨便偽造一個包,就能讓所有用戶下線。為了提高網絡高可用性、高可靠性,802.11w誕生了。對關鍵的管理包加密處理。那么偽造的包就沒有用武之地了!