【问题标题】:iOS Captive Network Assistant behavior on Hotspots热点上的 iOS Captive Network Assistant 行为
【发布时间】:2018-01-02 20:47:08
【问题描述】:

我们有一个使用短信认证方式的热点产品。用户选择我们的 WiFi 热点网络并被重定向到我们的登录页面。

在 iOS 和 Adroid 上,一个 Captive Portal 弹出窗口被激活,显示我们的登录页面。我们要求用户填写表格并提交他们的电话号码。当他们点击“提交”时,我们会向他们发送一条带有验证码的短信。

登录窗口(托管在我们的服务器上)变为一个新页面,该页面显示一个输入验证码的字段。到目前为止一切顺利...如果用户在强制窗口顶部的屏幕上看到 SMS 的“通知弹出窗口”,他可以看到代码并将其输入提供的字段并进行身份验证。

但是如果他没有设置这样的短信通知,他必须去他的短信应用程序并查找代码。现在,唯一的方法是关闭 Captive 弹出窗口,但随后他与我们的热点断开连接。如果他重新连接,他需要重新填写表格并收到一条新短信,但他面临同样的问题。

现在,一直以来用户都没有经过身份验证,因此在 iOS 中,强制窗口在右上角显示“取消”。我在其他热点上看到过同样的方法,但是从第一个 Captive 窗口中,右上角显示的控件是“完成”。据我所知,不同之处在于用户通过身份验证时显示“完成”控件,而用户尚未通过身份验证时显示“取消”。

有没有办法“欺骗”CNA 以“认为”用户可以访问互联网并显示“完成”,这样当 Captive 窗口关闭时,设备会保持连接到我们的热点?

我们正在考虑一些“两步”身份验证,例如临时身份验证(以“完成”),然后在输入验证码后进行“真实”身份验证。

另一种方法可能是使用某种脚本(例如 iOS 上的“成功”技巧)来欺骗 CNA,使其认为可以访问互联网。但是在哪里以及如何应用“成功技巧”?在路由器的某些 HTML 页面中?还是在我们的登录页面代码中的某个地方?

【问题讨论】:

    标签: ios wifi mikrotik hotspot captivenetwork


    【解决方案1】:

    不同的操作系统版本和不同的平台以不同的方式检查互联网访问。例如,iOS 会查找其中之一:

    http://captive.apple.com/hotspot-detect.html

    http://captive.apple.com

    等等。

    Android 使用(以及其他):

    http://clients3.google.com/generate_204

    最好的解决方案是让您的强制门户允许通过防火墙访问这些门户。如果您通过 ipfw 或 iptables 使用 MAC 过滤,这很容易。如果你在做 DNS 欺骗,那就更难了——对于这些情况,我只会在你的强制门户包中包含“成功”页面。

    【讨论】:

    • 嗨,大卫,感谢您的回答。您是什么意思“在您的强制门户包中包含“成功”页面”?对于最初的 CNA 弹出窗口,我需要阻止“成功”。进入 Captive 登录页面后,用户需要选择登录方式(电子邮件、短信等)。然后打开一个新页面,其中包含要填写的表格。我可以在第二页上做一些事情,但所有这些“俘虏”页面都托管在我的 radius 服务器上。这会对客户行为产生任何影响吗?如果客户没有使用 GET .... 发起请求,我如何将“成功”传递给客户?
    • 如果您有兴趣,请在客户端上运行 MITM 以观察行为。在与新的 WI-FI 端点协商时,客户端会不断尝试访问测试 URL。当它返回 HTTP 200 时,它假定 Internet 连接已建立。当您准备好让客户端将“取消”更改为“完成”时,将该设备的这些 URL 上的响应更改为 HTTP 200。
    • 我最近发现了一些有趣的关于从大约 v4.3 (kit-kat) 到至少 v7 的 android 设备。他们还向谷歌名称服务器询问其 generate_204 域的 IP 地址。因此,如果您希望连接助手正常工作,您不仅需要使用 HTTP 重定向响应 generate_204 请求,还必须捕获到 8.8.8.8(或 8.8.4.4)的 DNS 查询。
    • 仅供参考,连接帮助程序是提示用户打开浏览器以登录网络或以其他方式阅读/批准某种 eula 的弹出窗口
    猜你喜欢
    • 1970-01-01
    • 2015-08-01
    • 2022-07-08
    • 1970-01-01
    • 1970-01-01
    • 2012-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多