没有办法防止,特别是在用户数据包在无线网络传输的情况下。无线信号以接近等能量(等幅度)向外发射,所以只要处在信号可以辐射的区域,且信号能量高于接收机的敏感阀值的上方,都是可以解码的,
但是解码得到的数据,是否就是TCP/IP通过LLC接口发给无线网卡MAC层的原始数据呢?
这取决于MAC层是否将TCP/IP数据加密,如果没有加密,那么上面的问题答案就是肯定的。如果MAC层加密,那么答案就是否定的!
MAC层加密
意味着wireshark、fiddler解码得到的不是TCP/IP原始数据,而是加密数据!
既然加密了,没有解密密钥是无法解密得到TCP/IP原始数据的,所以题主不要过分担心随便谁都可以偷窥你的流量内容。
有同学会说,当前使用WPA2密钥生成主要有两种方式:
Pre-SharedKey密钥生成并不安全,对吗?
是的,这种方式差不多是所有家庭无线局域网的密钥生成方式。每个密钥的生成由五个元素组成:
- 电脑/手机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-Fi6
安全性更高,针对WPA2Pre-SharedKey薄弱环节有一个质的飞跃,使用SAE生成密钥。
即使共享Pre-SharedKey用户,也无法得到其他用户的密钥,这个密钥使用EC-DH动态推导,每个用户使用独一无二的密钥上网。
即使别的用户知晓上网密码。也把你的无线流量捕获下来,一样是无法解密的!
上网密码到底有什么用?
仅仅证明你有使用这个无线网络的权限,认证你的身份,至于更多的,就没有了!
但是无线网络,防范攻击的还是很脆弱的,因为网络管理包是明文传输,非常好伪造,随便伪造一个包,就能让所有用户下线。为了提高网络高可用性、高可靠性,802.11w诞生了。对关键的管理包加密处理。那么伪造的包就没有用武之地了!