Patent ID: 8479263

Claim:
A system for detecting captive portals comprising: an end user computing system, the end user computing system including a web browser; an endpoint captive portal detection application implemented, at least in part, on the end user computing system; an Internet accessible web server, the Internet accessible web server being operatively coupled to the end user computing system and the endpoint captive portal detection application; and at least one processor associated with the end user computing system, the at least one processor associated with the end user computing system executing at least part of a process for detecting captive portals, the process for detecting captive portals comprising: an end user pointing the web browser on the end user computing system to the endpoint captive portal detection application using a user interface device; the end user requesting access to a desired webpage through the web browser on the end user computing system using a user interface device; forwarding the request for access to the desired webpage to the endpoint captive portal detection application; the endpoint captive portal detection application sending an initial HTTP ping request to the Internet accessible web server; determining if the Internet accessible web server sends an expected initial response token back to the endpoint captive portal detection application in response to the initial HTTP ping request; if the Internet accessible web server does not send an expected initial response token back to the endpoint captive portal detection application in response to the initial HTTP ping request, transforming a status of the end user computing system to the status of assumed “in” captive portal; if the Internet accessible web server sends an expected initial response token back to the endpoint captive portal detection application in response to the initial HTTP ping request, the endpoint captive portal detection application sending an initial HTTPS query request and the initial response token to the Internet accessible web server, the initial HTTPS query request requiring client/server mutual authentication; determining if the required client/server mutual authentication is successful; if the required client/server mutual authentication is not successful, transforming a status of the end user computing system to the status of assumed “in” captive portal; and if the required client/server mutual authentication is successful, transforming a status of the end user computing system to the status of assumed “out” of captive portal.