如何在公共 wifi 中发送用户身份验证?半径/802.1x/EAP 等

信息安全 验证 网页浏览器 无线上网 强制门户
2021-09-12 16:40:26

我去机场,我拿出我的笔记本电脑并连接到网络(不需要密码)。

我打开浏览器,出现一个屏幕,提示我需要付费才能使用网络。如果我付款,我想如果我关闭浏览器然后重新打开它,它不会要求我支付两次。

浏览器如何知道用户何时通过身份验证?

我知道这个答案包括 802.1x、EAP 和 RADIUS 协议,但是当他们所做的只是打开一个普通的 Web 浏览器时,我看不到客户端如何传输以及传输什么?

2个回答

一切都根据您的无线网卡的 MAC 地址进行身份验证。最初连接时,控制 DNS 的网关设备会为您分配一个 DHCP 地址。在您通过身份验证之前,所有 DNS 请求都会重定向到网关设备的 HTTP(S) 服务器。该控制器已根据您的 mac 地址为您创建了一个帐户,一旦收到付款授权,您的帐户就可以访问公共 DNS 服务器以完全访问互联网。

浏览器对身份验证一无所知。它是在外部完成的:传出连接被拦截。这可以通过多种方式完成;通常,WiFi 路由器会拦截传出的 TCP 连接,如果连接的内容看起来像 HTTP 请求,路由器会返回“pay me”页面;所有其他连接都被简单地丢弃。付款后,路由器会解除限制并允许 TCP 连接流动。这里没有关于 WiFi 的具体内容。

这种访问控制可以通过使用IP-over-DNS绕过:由于路由器允许 DNS 请求通过(它只拦截 TCP 连接),因此您可以将任意数据流量封装在虚假 DNS 请求中(前提是您在外部,它执行相反的操作)。

EAP、Radius... 是关于身份验证协议及其在 WiFi 连接过程中的集成。这与您的机场情况无关:您在没有密码的情况下连接,因此,在 WiFi 级别,没有任何身份验证。