第九章 Wi-Fi Portal认证过程

系列文章目录



前言

连接WiFi后自动弹出认证页面,实现Captive Portal的方法有很多,常见的几种方式有:

  • DNS拦截:拦截所有DNS请求且返回认证主机IP地址(设置了强制主页),这样用户访问任何网站都会看到同一个强制主页。
  • HTTP重定向:利用HTTP重定向功能将所有的HTTP请求重定向到认证主机,如此一来,用户的发出的任何HTTP请求都会得到重定向后的强制主页。当用户通过认证后,便不再重定向用户请求。
  • IP跳转:把所有IP包里的目标地址改为认证主机地址,在认证主机上进行404跳转,当然是跳转到强制主页了。
  • 内核层劫持:当网关收到一个访问外网地址(80端口)的TCP SYN请求包后,立即伪造一个来自外网地址的TCP ACK包。客户端收到此伪造的响应后会误认为外网主机可以连接便再次发送ACK,此时TCP握手成功。客户端发起请求,网关再次劫持后回应ACK+PUSH包,其中就包含强制主页。

一、CaptivePortal是什么?

中文通常译作“强制主页”或“强制登录门户”。是一个登录Web页面,通常由网络运营商或网关在用户能够正常访问互联网之前拦截用户的请求并将一个强制登录或认证主页呈现(通常是通过浏览器)给用户。该页面可能要求用户输入认证信息、支付、接受某些条款或者其他用户授权等,随后用户才能被授权访问互联网。该技术广泛用于移动和个人宽带服务,包括有线电视、商业WiFi、家庭热点等,也可用于访问企业和住宅区有线网络。

二、Wi-Fi Portal认证过程

CaptivePortalLoginActivity:
 MyWebViewClient:
  onPageStarted()
   reevaluateNetwork()
    callVoidMethodIfExists(mCaptivePortal, "reevaluateNetwork")
    testForCaptivePortal()
  onPageFinished()
   reevaluateNetwork()
    callVoidMethodIfExists(mCaptivePortal, "reevaluateNetwork")
    testForCaptivePortal()

testForCaptivePortal() 
  urlConnection = (HttpURLConnection) mNetwork.openConnection(mUrl)
  httpResponseCode = urlConnection.getResponseCode()
 if (isDismissed(httpResponseCode, locationHeader, mProbeSpec)) {
                     done(Result.DISMISSED)
   mCaptivePortal.reportCaptivePortalDismissed()
    ConnectivityService$CaptivePortalImpl.appResponse(APP_RETURN_DISMISSED)
     mNetowrkMonitor.notifyCaptivePortalAppFinished(APP_RETURN_DISMISSED)
      NetowrkMonitor.sendMessage(CMD_CAPTIVE_PORTAL_APP_FINISHED, APP_RETURN_DISMISSED)
       NetowrkMonitor$DefaultState.CMD_CAPTIVE_PORTAL_APP_FINISHED
        CaptivePortal App responded with
        APP_RETURN_DISMISSED
         sendMessage(CMD_FORCE_REEVALUATION, NO_UID, 0)
          NetowrkMonitor$DefaultState.CMD_FORCE_REEVALUATION

总结

以上就是今天要讲的内容,本文仅仅简单介绍了Wi-Fi Portal认证的过程。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值