HTTPS与强制门户

强制门户

http://www.whatis.com.cn/word_5182.htm

强制网络门户(captive portal)是一个Web页面,它是使用公共访问网络的用户在被授予访问权限前必须访问和交互的页面。强制网络门户通常在为因特网用户提供免费的Wi-Fi热点服务的商业中心、机场、宾馆大厅、咖啡厅和其他公共场所中使用。

  在一个带有强制网络门户的网络中,一个用户第一次登录的时候,在被授予因特网的访问权限之前,会看到一个要求做一些特定动作的Web页面。一个简单的强制网络门户会强制用户至少看一眼(如果不是读的话)可接受用户策略页面,然后点击一个按钮表示同意策略条款。这大概是因为这样在碰到有用户在登录之际犯罪或做了其他破坏性的动作时可以为服务提供者免责的缘故。在有些强制网络门户中,会显示服务提供者的赞助商的广告,用户在被授予因特网访问权限之前必须点击一下或者关闭出现的窗口。还有一些强制网络门户在用户获得因特网访问权限之前会要求给出预设的用户ID和密码信息。这种认证可以打消使用无限热点作为犯罪活动的站点的积极性。大部分带有强制网络门户的服务器都同时装有反病毒和防火墙程序,用来保护用户的计算机免受攻击,这种攻击可能是来自因特网的,也可能来自同一个网络中的计算机。

  即使是一个带有简单强制网络门户的免费公共访问网络,总会有人会不断地连接网络,以一种连续的方式使用网络来下载音乐、视频或其他大文件。这种行为称作带宽扭曲。这在强制网络门户中可以通过附加的编程来使其最小化。这种编程可以控制哪些大文件可下载、限制可下载文件的大小(以千字节或兆字节为单位),限制在单个会话中同时下载的数目或者阻塞那些通常用来下载大文件的Web站点。这被称作带宽扼杀或流量修整。

强制门户实现原理

强制门户有两种实现方法:

1、 当WAN侧网络断开的情况下, DNS请求被欺骗为 接入网络设备的 IP,  请求的HTTP目标地址, 被跳转到在接入网络设备上部署的页面, 此属于非典型门户。  主要用于诊断 设备的连通性, 给用户以提示设备异常的机会。

如果是HTTPS请求, 浏览器不会对主动跳转到门户页面上,需要用户点击继续(由于服务器证书不对) 。

 

https://msdn.microsoft.com/en-us/library/windows/hardware/dn408681.aspx

If the initial connection attempted is made over Secure Sockets Layer (SSL), the browser displays a security warning to the user before the user is redirected to the captive portal. This creates a confusing experience for users because they must ignore the security warning to get connected.

 

2、  当WAN侧网络连通的情况下, DNS工作正常, 对于所有的HTTP请求, 在设备的防火墙中被终止, 不继续由路由模块转送到目的主机上, 同时防火墙模块给客户端会送 HTTP 302 跳转报文, 客户端收到后跳转到目的门户页面上。

请注意此处凡是可重定向的请求, 都是HTTP报文, 不是HTTPS。

 

知名设备门户只支持 HTTP,不支持HTTPS

思科设备明确表示不支持 https

https://supportforums.cisco.com/discussion/11940491/how-redirect-https-traffic-captive-portal

redirection only happen on http traffic, a feature request has been issued to have the redirection happen on https.

please check the following

CSCar04580

http://tools.cisco.com/Support/BugToolKit/search/getBugDetails.do?method=fetchBugDetails&bugId=CSCar04580

---------------------------------------------------------------------------------

Please make sure to rate correct answers

 

https://forum.pfsense.org/index.php?topic=53630.0

pfsense设备也不支持HTTPS

Re: Captive portal slow redirect to login from https pages

« Reply #12 on: April 25, 2013, 02:26:29 pm »

It's the same. You can't redirect HTTPS.

Logged

Need help fast? Commercial Support!
Co-Author of pfSense: The Definitive Guide. - Check the Doc Wiki for FAQs.
Do not PM for help!

 

为啥门户不支持HTTPS?

对于DNS欺骗方式, HTTPS需要用户手动确认访问HTTP门户网站页面, 首先本身这种跳转方式, 是与HTTPS安全协议相冲突的,出现告警页面是对中间人类似攻击的警戒, 如果培养用户成经常点解类似页面的习惯, 则很有可能遭到类似攻击。

 

同时对于实现HSTS的浏览器, DNS欺骗过来的HTTPS访问, 则不会出现继续访问的选项。则用户无法访问门户。

 

对于第二种防火墙访问解析请求报文,执行HTTP跳转, 需要用户能够解析到报文的URL, 对于HTTPS访问, 其是安全连接, 不能被中间人窥视, 所以无法执行HTTP 302类似的跳转动作。

 

chrome对于HTTPS门户探测的一扇窗

对于防火墙执行URL跳转, 从原理上论断其只支持HTTP协议。

其它浏览器对于DNS欺骗执行的门户,对于没有HSTS协议支持的网站, 其可以让用户选择,点击继续, 可以继续执行访问页面门户网站, 但是对于HSTS网站(其域名内置在浏览器中, 要求浏览器只使用HTTPS访问服务器, 不管地址上是HTTP还是HTTPs), 都没有继续选项。

 

但是对于chrome, 其实现了更加人性化的考虑, 其会判断,如果https失败, 会自动开启门户探测模式, 显示一个新的tab页面, 显示跳转后的门户站点。

http://serverfault.com/questions/596844/ssl-certificate-errors-in-captive-portals

3 down vote

The Chromium Project has a good page describing how their logic works for detecting captive portals:

  1. Attempt to connect (plain HTTP) to a well-known host + URI
  2. Expect HTTP 204 No Content
  3. If a different response is received, assume it's a captive portal.

There are other details in the provided link regarding how they handle DNS failures when trying to resolve the well-known host, etc. This is just one example, but (in my personal experience) modern OS designs are using processes similar to this to detect and prompt the user even, in some cases, before the user opens a browser. (Consider: someone who only wants to use an IMAP client or other non-HTTP service.) In that case, the detection occurs not over SSL/TLS so your concern is avoided.

RFC 6585 Section 6 proposes a new HTTP status code 511 Network Authentication Required that doesn't help your SSL/TLS case but is another standard you might consider if you don't already use it.


http://serverfault.com/questions/755307/captive-portal-and-ssl?lq=1

However I can tell a sligtly better solution than giving up on this does exist, because I used it a few days ago in a school. At first I hadn't realized my (Debian 8) notebook had automatically connected to their open wifi network, and I typed some search terms in the Chrome address bar. My default search engine is Google, which serves only HTTPS pages. The page where I expected to obtain the Google results showed a connection error instead (unavoidable), but Chrome automatically opened a new tab showing the Captive Portal landing page, with the login form.

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 强制门户认证是一种在ESP8266上实施的网络安全措施。它要求连接到ESP8266的设备在访问网络之前必须经过身份验证。 要实现强制门户认证,以下是一种可能的方法: 1. 配置ESP8266作为门户认证服务器:首先,将ESP8266配置为一个门户认证服务器,可以使用Arduino IDE或其他适用的开发环境。确定ESP8266的IP地址和端口号。 2. 创建门户认证页面:创建一个HTML页面,用于门户认证。这个页面应包含一个表单,要求用户输入凭据(例如用户名和密码)进行身份验证。 3. 配置WiFi网络:在ESP8266上配置WiFi网络,将其设置为访问点模式(Access Point Mode)。确保网络名称(SSID)和密码设置为您选择的值。 4. 实施门户认证逻辑:在ESP8266的代码中实施门户认证逻辑。当设备连接到ESP8266的WiFi网络时,通过重定向设备到门户认证页面来强制进行身份验证。一旦用户输入凭据并通过认证,ESP8266可以允许设备继续访问网络。 5. 存储认证凭据:为了实现更长时间的持久认证,可以在ESP8266上存储认证凭据。例如,可以使用EEPROM来存储凭据和其他必要的信息,以便在重新启动时恢复认证状态。 强制门户认证可提高ESP8266的网络安全性,防止未经授权的设备访问网络。但需要注意的是,实施门户认证可能会增加设备连接时的处理时间和复杂性,因此需要权衡安全性和设备性能之间的平衡。 ### 回答2: ESP8266是一种常用的无线模块,可以用于连接到互联网并进行通信。门户认证是一种常见的网络安全措施,用于验证用户的身份和提供访问控制。强制门户认证是指强制为所有通过ESP8266连接到网络的用户进行门户认证。 为了实现强制门户认证,我们需要在ESP8266上设置相关的功能和配置。首先,我们需要配置该模块作为一个访问点(AP)并启用门户认证功能。这可以通过编程来实现,例如使用Arduino集成开发环境(IDE)和ESP8266库。 在编程中,我们可以使用WiFi库来配置ESP8266作为一个AP,并设置门户认证选项。我们可以指定要显示的认证页面的内容和样式,以及用户成功认证后应该重定向到的页面。 在门户认证页面上,我们可以要求用户输入他们的凭据(例如用户名和密码),然后将其传输到服务器进行验证。服务器可以是本地服务器,也可以是远程服务器。一旦用户的凭据被验证,服务器可以向该模块发送一个认证的确认消息,然后模块可以将用户重定向到指定的页面或提供访问权限。 要实现强制门户认证,还需要处理连接请求和页面重定向的逻辑。当一个新的用户连接到ESP8266时,我们可以使用WiFi事件处理程序来检测连接事件,并将用户重定向到门户认证页面。一旦用户成功认证,我们可以使用重定向功能将其重定向到指定的页面。 总之,强制门户认证ESP8266的实现需要配置模块为AP并启用门户认证选项,编程设置认证页面和重定向逻辑,并在服务器端进行用户凭据验证。这样可以确保所有通过该模块连接到网络的用户都需要进行门户认证。 ### 回答3: 强制门户认证是一种安全措施,用于限制设备连接到特定的WiFi网络。如何实现强制门户认证在ESP8266上呢? 首先,ESP8266是一款WiFi模块,可以使用Arduino或MicroPython进行编程。要实现强制门户认证,可以按照以下步骤进行操作: 1. 设置连接的WiFi网络:首先,在代码中设置ESP8266连接到目标WiFi网络。可以编写代码将WiFi SSID和密码作为参数传递给模块的WiFi库,以确保连接成功。 2. 创建门户页面:在ESP8266上,可以使用HTML和CSS来创建一个门户认证页面。这个页面将显示给用户,要求输入凭据来进行认证。可以包括用户名和密码输入框,并使用CSS样式来美化页面。 3. 设置门户服务器:创建一个Web服务器,用于处理ESP8266与门户页面之间的通信。在服务器代码中,可以监听由ESP8266发送的POST请求,并验证输入的凭据。如果认证成功,服务器可以响应一个成功消息。否则,可以返回一个失败消息和一个重定向到门户页面的URL。 4. 实现认证流程:在ESP8266代码中,可以使用WiFiClient库与门户服务器进行通信。首先,设备将发送一个POST请求,包含用户名和密码。然后,ESP8266将等待服务器的响应。如果收到成功消息,则可以继续设置设备功能。如果收到失败消息或重定向URL,则ESP8266可以重新加载门户页面来重新认证。 这样,通过强制门户认证,我们可以确保只有经过授权的用户才能连接到ESP8266设备所在的WiFi网络。这种安全措施防止了未经授权的访问和潜在的网络攻击。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值