苹果手机连接Wifi认证机制

Wifi状态保持方法和nas设备

https://patents.google.com/patent/CN106793171A/zh

基于ios终端的离线wifi热点认证方法和认证系统

https://patents.google.com/patent/CN105245540A/zh

一种简单的基于HTTP重定向的Captive Portal实现

当网关收到来自客户端的HTTP请求,例如:

GET http://www.example.com/

  

网关可以返回如下内容给客户端:

<meta HTTP-EQUIV=‘REFRESH‘ content=‘0; url=http://<your auth server ip>/login‘>

  

 

关于Apple的Captive Network Assistant

在WIFI的应用场景中,有个很典型的应用,叫做Captive Portal,也叫Captive Web Portal(CWP)。

大致流程是:

用户的移动设备(例如手机)接入WIFI。
打开任意网页。
得到一个类似Login的页面,需要用户填写一些信息,然后提交。
认证通过后,允许自由访问网络,否则无法上网。
电信、移动等运营商经常会推出一些市区里的WIFI,很多用的就是这种方式。还有像机场等地。有个典型的应用,就是杭州的ihangzhou。

iOS,还有Mac OS,都有个功能,当接入无线网络后,会自动检测网络是否通。如果不通,则会自动弹出一个页面,让用户去登录。

Apple把这种功能叫做Captive Network Assistant(CNA)。

其原理如下:

发送一个HTTP/1.0的请求到 http://www.apple.com/library/test/success.html 
接收一个回应,如果回应跟它预计的结果一致,那么认为网络是通的,就不会自动弹出页面。同时,状态栏的WIFI图标出现。流程结束。否则,进入下一步。
如果收到的回应不是它想要的那个,它就认为有CWP存在。
如果有CWP存在,iOS就会自动打开一个页面,在这个页面中再请求一次http://www.apple.com/library/test/success.html,这一次,使用的是HTTP/1.1。
然后就可以打开Login页面了。
在第2步中,如果有CWP存在,收到的回应通常是一个Login页面,这个和第5步收到的结果应该是一样的。
如果网络能,则可以收到下面的回应。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"><HTML><HEAD><TITLE>Success</TITLE></HEAD><BODY>Success</BODY></HTML>
只是第2步中,iOS是如何判断的,不得而知。不过只要保证收到上面的响应,则一定能通。

那么,第2步中如果没有收到响应,或是收到了非HTTP 200的响应又会如何呢?

根据我的测试,如果没收到响应,依然会弹出一个窗口。不过,这不是一种正常的CWP状态。

非HTTP 200的情况,我只试了HTTP 302重定向。在这种情况下,iOS不会自动弹出Login页面。

在上面的5步中,得到了一个Login页面,然后又会发生什么呢?

用户拿到Login页面后,应该填写一些信息,并且提交。iOS会在用户提交后,立即发一边第1步中的请求,再次检测网络。如果此时网络还是不通,iOS会自动断开当前的SSID。不过这个行为好像有点不稳定,具体就不细说了。

网络通了后,在iOS上基本有2个现象。一是右上角的“取消”按钮变成”完成“,或是自动关闭这个窗口,行为似乎不太一致。最关键的是顶端状态栏WIFI图标的出现。

从现象上看,只要WIFI图标不出来,iOS就不允许有流外出(部分特殊的除外)。

********** 副作用 **********

iOS的这种行为,其实没给用户多少方便,却会带来不少麻烦。我记得在iOS 4时,还可以选择是否启用auto-login。不过iOS 6已经没有这个选项了。

理论上讲,这个功能最麻烦的就是要保证你所在的网络可以访问http://www.apple.com/library/test/success.html。如果仅仅是在公司内部网络,不允许访问外网,那么iOS就无法连接了。

【题外话】在iOS 5以前,只有open的SSID才会发test请求。(open的SSID指的是没有802.1X或PSK认证的)。而从iOS 6开始,连上非open的网络也会发这个test了。

所以,在这种内网的情况下,需要防火墙开放www.apple.com的访问,或是WIFI AP可以支持避开CNA的检测。

我一直没在网上找到关于CNA的判断标准,不知道Apple搞这么个东西干吗。

********** 测试结果 **********

写完此文,心里一直痒痒的,想知道第2步究竟是怎么判断的。于是立即动手测试。

我发现,只要响应页面中,<TITLE>的值是Success,大小写敏感,就可以欺骗iOS了。

测了iOS 6.0和Mac OS 10.7,结果都一样。这下我心里释怀了。不知道新版本会不会有变化。该死的苹果。
---------------------
作者:permike
来源:CSDN
原文:https://blog.csdn.net/permike/article/details/47417317
版权声明:本文为博主原创文章,转载请附上博文链接!

[0035] 实施例1、

[0036] 本发明实施例提供了一种WIFI状态保持方法,参照图3中所示,包括:

[0037] S20UNAS设备接收I0S终端发送的探测报文,探测报文用于探测苹果服务器是否 可达。

[0038] S202、当判断接收到探测报文为I0S终端显示Portal认证界面之后的探测报文时, NAS设备构造并响应第一响应报文,其中,第一响应报文的主体部分指示苹果服务器响应成 功。

[0039] 当I0S终端显示Portal认证界面之后,如果探测报文探测苹果服务器可达,则会保 持WIFI连接,并点亮WIFI图标,不会因为用户离开Portal认证界面导致认证过程中断。本发 明实施例即利用NAS设备来构造并响应一个响应报文,提前指示苹果服务器可达,以提前实 现上述目的。

[0040] 本发明实施例提供的WIFI状态保持方法,由NAS设备针对I0S终端在显示Portal认 证界面之后的探测报文来构造一个响应报文,使得I0S终端认为探测成功,从而使WIFI图标 提前被点亮,并且不会因为用户离开Portal认证界面而中断WIFI连接,解决了 I0S终端由于 自身CNA机制,在认证通过前离开Portal页面时会导致该I0S终端自动断开WIFI的问题。 [0041] 实施例2、

[0042] 本发明实施例提供了另一种WIFI状态保持方法,参照图4中所示,包括:

[0043] S301、I0S 终端连接 WIFI 后,主动向 NAS 设备发起 DHCP (dynamic host conf iguration protocol,动态主机配置协议)Discover (发现)报文,请求获取ip (internet protocol,网络协议)地址。

[0044] S3〇2、NAS设备收到IOS终端发起的DHCP Discover报文后,为该IOS终端分配IP地 址,同时记录I0S终端的MAC地址并初始化接收到来自该l〇s终端的HTTP 1 .OGet hotspot-detect.html探测报文的状态标识。

[0045] 具体的,可以预先创建一张I0S终端CNA探测状态表,每条记录包括MAC地址字段和 状态标识(Status)字段。在NAS设备收到I0S终端发起的DHCP Discover报文后,在上述I0S 终端CNA探测状态表中写入一条数据:MAC地址字段中记录I0S终端MAC,状态标识字段设置 为0,其中,Status字段指不NAS设备首次接收到该I0S终端所发送的HTTP 1 .OGet hotspot-detect .html探测报文的状态。

[0046] 3303、103终端获取到财3设备分配的1?地址后,发起111^?1.(^以11的邛〇七- detect. html探测报文。

[0047] 通常I 0 S终端的探测地址为:c a p t i ve.apple.com、www.airport.us、 www.ibook.infonwww.thinkdifferent.us>www.appleiphonecel1.com>www.itooIs. info 六个地址中的任意一个。

[0048] S304、NAS设备判断该I0S终端发起的HTTP 1 .OGet hotspot-detect.html探测报 文是否为首次HTTP 1 • OGet hotspot-detect • html探测报文,如果为首次,则NAS设备则构 造并响应HTTP 2000K报文,报文内容的主体部分为失败(Failed),指示苹果服务器响应失 败,此时I0S终端的WIFI图标未点亮。

[0049] 本步骤中,NAS设备拦截该HTTP 1 .OGet hotspot-detect.html探测报文,根据维 护的I0S终端CNA探测状态表中的状态标识(Status)字段判断I0S终端发送的探测报文是否 为I0S终端显示Portal认证界面之后的首次HTTP1.0探测报文,若Status字段为0,返回HTTP 2〇0〇K,报文内容的Body部分为Failed,同时将终端CNA探测状态表中该MAC地址对应的 Status更新为1,此时I0S终端的Wi-Fi图标未点亮。

[0050] 需要说明的是,本发明实施例中,状态标识字段设置为0标识NAS设备首次接收到 该I0S终端所发送的HTTP 1.OGet hotspot-detect.html探测报文的状态,状态标识字段设 置为1标识NAS设备非首次接收到该I0S终端所发送的HTTP 1 .OGet hotspot-detect.html 探测报文的状态;当然也可以采用其它标识方式,例如状态标识字段设置为1标识NAS设备 首次接收到该I0S终端所发送的HTTP 1_OGet hotspot-detect.html探测报文的状态,状态 标识字段设置为〇标识NAS设备非首次接收到该I0S终端所发送的HTTP l.OGet hotspot-detect.html探测报文的状态;当然也可以采用其它标识方式,只要事前进行定义NAS设备 识别到状态变化即可,在此不再赘述。

[0051] 此时的HTTP l.OGet hotspot-detect.html探测报文为第二响应报文。

[0052] S305、I0S终端接收到NAS设备响应的HTTP 2000K报文之后,发起HTTP l.lGet hotspot-detect. html 请求报文。

[0053] S3〇6、NAS设备判断该I0S终端发起的HTTP l.lGet hotspot-detect.html请求地 址是否在NAS设备的白名单列表中或者当前10S终端是否己认证通过,如果请求地址不在 NAS设备的白名单列表中并且当前I0S终端未认证通过,则NAS设备响应HTTP 302报文,将 Portal认证页面地址通过HTTP 302报文返回给I0S终端,此时I0S终端的WIFI图标未点亮。 [0054] S307、I0S终端收到NAS设备根据HTTP l.lGet hotspot-detect.html请求所返回 的HTTP 302请求报文后,请求HTTP 302报文中携带的Portal认证页面地址,此时I0S终端显 示Portal认证页面。

[0055] S3〇8、IOS终端再次向NAS设备发起HTTP l.OGet hotspot-detect.html探测报文。

[0056] S309、NAS设备通过判断该HTTP 1 .OGet hotspot_detect.html探测报文是否为首 次HTTP 1 • OGet hotspot-detect • html探测报文,如果不为首次(即为I0S终端显示Portal 认证页面之后的HTTP l.OGet hotspot-detect.html探测报文),则构造并响应HTTP 2000K 报文,报文内容的主体(Body)部分为成功(Success),指示苹果服务器响应成功,此时WIFI 图标点壳。

[0057] 具体的,NAS设备可以通过I0S终端CNA探测状态表中的Status字段来判断是否为 首次HTTP 1 .OGet hotspot-detect.html探测报文。WIFI图标点亮原因参照步骤S202,在此 不再赘述。

[0058] 此时的HTTP l.OGet hotspot-detect.html探测报文为第一响应报文。

[0059] S310、I0S 终端持续发起 HTTP l.OGet hotspot-detect .html 探测报文。

[0060] S311、NAS设备通过判断该HTTP l.OGet hotspot-detect.html探测报文是否为首 次HTTP l.OGet hotspot-detect.html探测报文,如果不为首次,则响应HTTP 2000K报文, 报文内容的主体(Body)部分为成功(Success),此时WIFI图标保持亮起状态。

[0061] 具体的,NAS设备可以通过终端CNA探测状态表中的Status字段来判断是否为首次 HTTP 1 .OGet hotspot-detect.html探测报文。WIFI图标点亮原因参照步骤S202,在此不再 赘述。

[0062] 本发明实施例提供的WIFI状态保持方法,通过NAS设备在检测到I0S终端显示 Portal认证页面之后发送的HTTP l.OGet hotspot-detect .html探测报文时,响应HTTP 2000K报文,并且在报文中包含指示成功的内容,使得I0S终端认为探测成功,从而使WIFI图 标提前被点亮,并且不会中断WIFI连接,解决了I0S终端由于自身CNA机制,在认证通过前离 开Portal页面时会导致该I0S终端自动断开WIFI的问题。

[0063] 实施例3、

[0064] 本发明实施例提供了一种NAS设备,应用于上述WIFI状态保持方法,参照图5中所 示,包括:

[0065] 接收单元1401,用于接收I0S终端发送的探测报文,探测报文用于探测苹果服务器 是否可达;

[0066] 发送单元1402,用于判断当接收到的探测报文为I0S终端显示Portal认证界面之 后的探测报文时,NAS设备构造并响应第一响应报文,其中,第一响应报文的主体部分指示 苹果服务器响应成功。

[0067] 在一种可能的设计中,探测报文为HTTP 1 .OGet hotspot-detect.html探测报文。

[0068] 在一种可能的设计中,响应报文为HTTP 2000K报文,HTTP 2000K报文的主体部分 为成功Success。

[0069] 在一种可能的设计中,发送单元1402还用于:当接收到的探测报文不为I〇S终端显 示Portal认证界面之后的探测报文时,构造并响应第二响应报文,其中,第二响应报文的主 体部分指示苹果服务器响应失败。

[0070] 在一种可能的设计中,发送单元14〇2还用于:在接收到I0S终端发起的DHCP Discover报文后,在预先创建的I0S终端CNA探测状态表中记录I〇S终端的MAC地址及对应的 接收探测报文的状态标识;并在首次接收到I〇S终端发起HTTP1.0探测报文后更新状态标 识,根据状态标识判断接收到的探测报文是否为I〇S终端显示Portal认证界面之后的探测 报文。

[0071] 由于本发明实施例中的NAS设备可以应用于上述WIFI状态保持方法,因此,其所能 获得的技术效果也可参考上述方法实施例,本发明实施例在此不再赘述。

[0072] 应理解,在本发明的各种实施例中,上述各过程的序号的大小并不意味着执行顺 序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施 过程构成任何限定。

[0073] 本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单 元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能宄竟 以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员 可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出 本发明的范围。

[0074] 所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、 装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

[0075] 在本申请所提供的几个实施例中,应该理解到,所揭露的系统、设备和方法,可以 通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,所述单元的 划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件 可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或 讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,设备或单元的间接耦 合或通信连接,可以是电性,机械或其它的形式。

[0076] 所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显 示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个 网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目 的。

[0077]另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以 是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

[0078] 所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以 存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说 对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计 算机软件产品存储在一个存储介质中,包括若千指令用以使得一台计算机设备(可以是个 人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。 而_述的存储介质包括:U盘、移动硬盘、只读存储器(英文全称:read-only memory,英文简 称:ROM)、随机存取存储器(英文全称:random access memory,英文简称:RAM)、磁碟或者光 盘等各种可以存储程序代码的介质。

[0079]以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何 熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵 盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

原文地址:https://www.cnblogs.com/kekeoutlook/p/10660662.html

时间: 2024-10-12 10:57:42

苹果手机连接Wifi认证机制的相关文章

苹果手机连接WiFi怎么换不同IP做APP试玩!

我们在做试玩的时候,很多人刚开始引起封号的原因就是ip问题,同一个ip多部手机做试玩肯定会封号的,而且苹果试玩有些限制地区,例如限制河南地区ip等,遇到这种问题怎么办?今天教你无限刷试玩为大家讲解一下这方面的经验和知识.可以在苹果手机上安装使用IP-软件解决这个问题,这个方法是比较问题的,保证每部手机使用不同的IP地址.苹果手机可以直接在APPstore里面搜索找到软件!可以现在官网上注册个账号购买需要的套餐使用.然后可以打开安装好在手机上的软件,使用注册好的账号登入.在线路连接表你选择需要的I

无线WIFI WPS认证机制破解

1. WPS认证机制 WPS(Wi-Fi Protected Setup,Wi-Fi保护设置)(有的叫做AOSS.有的叫做QSS,不过功能都一致.)是由Wi-Fi联盟组织实施的认证项目,主要致力于简化无线局域网的安装及安全性能配置工作.在传统方式下,用户新建一个无线网络时,必须在接入点手动设置网络名(SSID)和安全密钥,然后在客户端验证密钥以阻止"不速之客"的闯入.这整个过程需要用户具备Wi-Fi设备的背景知识和修改必要配置的能力.Wi- Fi Protected Setup能帮助用

基于Token的WEB后台认证机制

几种常用的认证机制 HTTP Basic Auth HTTP Basic Auth简单点说明就是每次请求API时都提供用户的username和password,简言之,Basic Auth是配合RESTful API 使用的最简单的认证方式,只需提供用户名密码即可,但由于有把用户名密码暴露给第三方客户端的风险,在生产环境下被使用的越来越少.因此,在开发对外开放的RESTful API时,尽量避免采用HTTP Basic Auth OAuth OAuth(开放授权)是一个开放的授权标准,允许用户让

WiFi认证是如何保证企业WiFi的安全?

无线网络是实现移动互联网的载体,企业WiFi的安全性非常重要.说它小是占用企业的办公资源,影响办公效率;它是企业的信息安全.那么,WiFi认证如何确保企业WiFi的安全性呢?以下是对每个人的一般性解释. 首先,为了保证企业WiFi的安全性,具有wifi认证功能的WiFi安全管家启用了网络接入认证机制.众所周知,要连接到WiFi,您必须先找到WiFi信号,然后输入密码,然后才能访问无线网络.时讯无线 WiFi认证系统在传统加密之上引入了认证机制.客户端需要访问身份验证服务器以启动身份验证请求.只有

企业WiFi认证 保护企业的信息

企业WiFi认证是很多公司都会设置的,毕竟每一个公司都是有商业机密的,所以利用企业WiFi认证可以很好地保护自己的网络不被***,来吧!下面让小编携手时讯无线分享相关的资讯给大家,希望对大家有用. 企业WiFi认证 无线网络是实现移动互联的载体,企业WiFi的安全可谓是至关重要.说小了是占用企业办公资源,影响办公效率;说大了是企业信息安全. 首先,为了保证企业WiFi安全,有wifi认证功能的WiFi安全管家启用了网络准入认证机制.众所周知,连接WiFi首先要找到WiFi信号,然后输入密码,接着

Xshell使用密钥认证机制远程登录Linux

密钥认证是Linux下ssh服务支持的一种安全认证机制.它使用一对加密字符串,一个称为公钥(publickey),用于加密:另一个称为密钥(privatekey),只有创建者才能拥有使用,其用于解密.那么如何使用密钥认证登陆Linux呢? 1.下Xshell软件 在www.baidu.com搜索框内输入xshell,出现搜素结果后,点击高速下载或者普通下载,开始下载xshell软件. 2.安装xshell软件 Xshell支持多国语言版本,且可以免费获得.在安装时要注意选择免费版本,即"免费为家

Android代码连接Wifi时被系统切换到其他Wifi的问题

首先说下Android代码连接Wifi的几个步骤:(以下涉及到具体API函数自查哈,写的时候凭借印象大致写了下) 转载请注明出处: 胖虎:http://blog.csdn.net/ljphhj 1.首先要开启Wifi连接开关,mWifiManager.setWifiEnabled(true) 2.通过获取List<ScanResult>来获取到Wifi连接列表.(mWifiManager.getScanResults) 3.获取List<WifiConfiguration>列表.(

asp.net MVC 使用wifidog 协议实现wifi认证

在网上看到的很多实现的wifidog 协议一般都是PHP 的,了解一下PHP 但是比较喜欢.net ,所以实现了简单的一个进行登录认证的功能 (好多协议中的功能目前没有实现) 1. 开发环境(vs2010 ) 2. 路由(支持wifidog协议的 ddwrt ) 3. 环境的配置 主要是进行路由的配置 截图如下: 注意红圈的部分这个我按照php 的配置 asp.net MVC 的配置如下: 端口 9999  authserver path  /login/ 4. MVC 项目布局: loginC

如何设置wifi认证?(微信)

WFilter的"Web认证"模块提供了两种认证方式:"用户名认证"和"营销认证". "用户名认证"用于进行用户认证,客户机需要输入正确的用户名口令才可以上网.支持"本地用户"和"远程用户"(Radius.域服务器等). 而"营销认证"又名"第三方认证",用于连接第三方接口进行认证,选择"自定义营销方案"可以把营销认证重定向到第