匿名验证一个人是否能访问清华网络,原理很简单,通过校内的 dns 查询一个指定域名,即可验证成功。
WebVPN 在访问时会先解析 ip,此时使用的 dns 服务器恰好就是 166.111.8.28,故可以满足需求。
另外这个 demo 并没有在 python 里限制连入的地址,而是在系统层面使用 iptables 限制的。
demo 地址:https://val-demo.mcfx.us/
此 repo 中的实现方式有一个较大的问题,只需要发出 DNS 请求,而不需要处理返回值。UDP 的来源是可以随意伪造的,所以只需要伪装成 166.111.8.28,即可通过验证。但是需要用到返回值的实现方式,用户交互也会更复杂(至少得下载一个脚本并运行),总之这种 DNS 验证还是没啥用。