Abstract:
With the proliferation of wireless devices, seamless authentication of devices at distributed locations (e.g., so-called Wi-Fi hotspots) may be essential for convenient use of various devices at these locations. Previous methods for authentication relied on an account-based method using a username and a password inputted from a user. This method may be awkward for mass-distribution of devices. Various embodiments disclosed may provide an authorization client that communicates with one or more servers that relies on client software and message authentication codes for authorization of network access.

Description:
[0001]    This application claims benefit of U.S. Provisional Application Ser. No. 60/949,404, filed Jul. 12, 2007, titled “System and Method for Device-Specific Authorization at Distributed Locations.” 
     
    
     BACKGROUND 
       [0002]    1. Field of the Invention 
         [0003]    The present invention is in the field of Internet access and, more specifically, Internet access at distributed locations. More specifically, the present invention pertains to the field of Internet access wherein location-based services are provided by a client-server architecture utilizing an automated authorization system. 
         [0004]    2. Description of the Related Art 
         [0005]    Several Internet service providers (ISPs) provide services at public locations such as hotels, airports, restaurants, coffee shops, etc. (so-called “hot-spots”). Many of these locations provide service for a fee. The fee may be provided via a web-browser interface using credit card, debit card, prepaid card, etc., or the user may be part of a subscriber group where access may be granted for the subscriber via submission of subscription credentials (e.g., a username and password) inputted by a user. 
         [0006]    Whereas this authentication mechanism works well for devices that support a web browser and have a keyboard to enter username and password or credit card credentials, it is inconvenient as many of these devices are small and have limited user input capabilities. Moreover, this browser-based authentication mechanism may be somewhat difficult in systems that do not support web browsers. 
         [0007]    Many ISPs control the access to a site via the MAC (media access control) address of the network interface card that connects to the internet. Hence, some ISPs have taken the approach of storing a database of MAC addresses of devices, then, when the device appears on the plant, the device is automatically authenticated via MAC address. 
         [0008]    Whereas this MAC address identification may be convenient in that it may not require user input for various network access, and also in that it is device specific, unfortunately it is not secure or can be compromised. That is, the MAC address can be changed and/or “spoofed” in which the MAC address of any device can be masqueraded as one of the MAC addresses of the allowed devices. 
         [0009]    Another method for authentication that is slightly more secure is to use a certificate-based system (e.g. using X.509 certificates). While this is more secure, the X.509 certificates can be shared. Moreover, an individual certificate would have to be created, managed and placed on each device, creating a management problem for millions of devices. 
         [0010]    What is needed is a convenient method that is manageable and may not be easily compromised. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0011]    The preferred embodiments will become apparent upon reading the following detailed description and upon reference to the accompanying drawings in which: 
           [0012]      FIG. 1  is a block diagram of a network communication system, according to various embodiments; 
           [0013]      FIG. 2  is a block diagram of a network communication system, according to various embodiments; 
           [0014]      FIG. 3  is a flowchart diagram of a method, according to various embodiments; 
           [0015]      FIG. 4  is a flowchart diagram of a method, according to various embodiments; 
           [0016]      FIG. 5  is a flowchart diagram of a method, according to various embodiments; 
           [0017]      FIG. 6A  is a flowchart diagram of a method, according to various embodiments; 
           [0018]      FIG. 6B  is a flowchart diagram of a method, according to various embodiments; 
           [0019]      FIG. 6C  is a flowchart diagram of a method, according to various embodiments; 
           [0020]      FIG. 7  is a block diagram of various computer systems and various computer readable mediums, according to various embodiments; 
           [0021]      FIG. 8A  is a block diagram of a limited user input computing device, according to various embodiments; 
           [0022]      FIG. 8B  is a block diagram of a limited user input computing device, according to various embodiments; 
           [0023]      FIG. 9  is a flowchart diagram of a method, according to various embodiments; and 
           [0024]      FIG. 10  is a flowchart diagram of a method, according to various embodiments. 
       
    
    
       [0025]    While the invention is susceptible to various modifications and alternative forms, specific embodiments thereof are shown by way of example in the drawings and will herein be described in detail. It should be understood, however, that the drawings and detailed description thereto are not intended to limit the invention to the particular form disclosed, but on the contrary, the intention is to cover all modifications, equivalents and alternatives falling within the spirit and scope of the present invention as defined by the appended claims. 
       DETAILED DESCRIPTION 
       [0026]    U.S. Provisional Application Ser. No. 60/949,404, filed Jul. 12, 2007, titled “System and Method for Device-Specific Authorization at Distributed Locations,” is hereby incorporated by reference in its entirety as though fully and completely set forth herein. 
         [0027]    U.S. patent application Ser. No. 10/851,633, titled “Method for providing wireless services” and filed on May 21, 2004, is hereby incorporated by reference in its entirety as though fully and completely set forth herein. 
         [0028]    U.S. Pat. No. 5,835,061, titled “Method and Apparatus for Geographic-Based Communications Service”, whose inventor is Brett B. Stewart, is hereby incorporated by reference in its entirety as though fully and completely set forth herein. 
         [0029]    Turning now to  FIG. 1 , a network communication system (NCS)  100  is illustrated, according to various embodiments. NCS  100  may include one or more access points (APs) such as APs  120 A- 120 D. In various embodiments, wired APs  120 C- 120 D may each communicate with one or more computing devices in a wired fashion. For example, wired access point (AP)  120 C may communicate with portable computing devices (PCDs)  110 D- 110 F in a wired fashion, and wired AP  120 D may communicate with portable computing device (PCD)  110 A in a wired fashion. In some embodiments, wireless APs  120 A- 120 B may each communicate with one or more computing devices in a wireless fashion. For example, wireless AP  120 B may communicate with a PCD  110 B and/or a PCD  110 C, and wireless AP  120 A may communicate with other computing devices. Each of wireless APs  120 A- 120 B may include a wireless transceiver and may operate according to one or more wireless standards, such as Institute of Electrical and Electronics Engineers (IEEE) 802.16, wireless Ethernet (IEEE 802.11), Bluetooth (IEEE 802.15), General Packet Radio Service (GPRS), CDMA (code division multiple access), TDMA (time division multiple access), FDMA (frequency division multiple access), ultra wide band, digital, and/or infrared communication technologies, among others. 
         [0030]    Each of APs  120 A- 120 D may be coupled to a network  130 A. Network  130 A may be coupled to a network management device (NMD)  105 . NMD  105  may be coupled to a network  130 B. In various embodiments, NMD  105  may provide authentication, quality of service (QoS), communication traffic shaping, and/or access control from one or more computing devices (e.g., PCDs  110 A- 110 F, retail entity computing devices (RECDS)  111 A- 111 C, and back office devices (BODS)  170 A- 170 C) coupled to network  130 A through one of APs  120 A- 120 D to network  130 B. In some embodiments, NMD  105  may include an access control mechanism and/or a firewall mechanism. For example, the access control mechanism and/or the firewall mechanism may be used in conducting data communications in accordance and/or in association with providing various network access, qualities of services, and/or traffic shaping. 
         [0031]    In various embodiments, network  130 A and/or network  130 B may include a wired network, a wireless network or a combination of wired and wireless networks. Network  130 A and/or network  130 B may include and/or be coupled to various types of communications networks, such as a public switched telephone network (PSTN), an Internet, a wide area network (WAN) (e.g., a private WAN, corporate WAN, etc.), a local area network (LAN). Thus, NMD  105  may be coupled to a PSTN, e.g., Ethernet cable and DSL; a cable (television) based network; a satellite-based system; and/or a fiber based network; among others. 
         [0032]    In some embodiments, network  130 A and/or network  130 B may include one or more wireless networks, e.g., based on IEEE 802.11 and/or IEEE 802.16. For instance, one or more wired and/or wireless APs  120 A- 120 D may be coupled to network  130 A in a wireless fashion. Network  130 A and/or network  130 B may include one or more DSL (digital subscriber line) and/or cable (e.g., cable television) networks and/or infrastructures. For example, network  130 A and/or network  130 B may include one or more of: cable modems, cable modem termination systems (CMTSs), satellite modems, DSL modems, digital subscriber line access multiplexers (DSLAMs), broadband remote access servers (BRASs), telecommunications circuits, and/or metropolitan area networks (MANs), among others. In various embodiments, network  130 B may form part of the Internet, or may couple to other networks, e.g., other local or wide area networks such as the Internet. 
         [0033]    In various embodiments, access to these networks may include one or more “services” these networks may provide. For example, these one or more services may include: email, world wide web, file transfer, printing, file sharing, file system sharing, remote file system, network file system (NFS), news, multicast, netbios, encryption, domain name service (DNS), routing, tunneling, chat such as Internet Remote Chat and/or AOL Instant Messenger, gaming, licensing, license management, digital rights management, network time, remote desktop, remote windowing, audio, database (e.g., Oracle, Microsoft SQL Server, PostgreSQL, etc.), authentication, accounting, authorization, virtual local area network (VLAN) (e.g., IEEE 802.1q), virtual private network or VPN, audio, phone, Voice Over Internet Protocol (VoIP), paging, and/or video, among others. In some embodiments, these one or more service may be associated with and/or correspond to one or more protocols of one or more computer and/or software applications. 
         [0034]    NCS  100  may include one or more content providers  160 A- 160 B. In some embodiments, content provider  160 A may be coupled to network  130 A. In some embodiments, content provider  160 B may be coupled to network  130 B. Content provider  160 A and/or content provider  160 B may provide content such as audio, video, text, pictures, and/or maps among others through one or more protocols. Some or all of the information from content provider  160 A and/or content provider  160 B may be pre-distributed to a local cache device  162  (such as a computer system, a computer hard drive, and/or other memory media) which may facilitate faster local access to the content and/or which may minimize delays and/or costs of transmitting the content through a network, such as network  130 B. 
         [0035]    The content may be based on a retail entity and/or one or more promotions of the retail entity. For example, the content may be entertainment type content to entice customers into the retail entity locations. For example, for a fast food restaurant, such as a McDonalds, content may be provided that is geared to children, such as games based on current McDonalds promotions and/or themes, etc. In some embodiments, network access to this type of enticement content may be given freely to purchasing customers to entice them to visit the retail location. This type of network content may be provided in lieu of traditional “plastic toys” or other items routinely given out to children in these restaurants. 
         [0036]    In some embodiments, content provider  160 A and/or content provider  160 B may provide content that may be used by a business itself, e.g., content to train employees of the retail entity and/or provide necessary business information. In some embodiments, NMD  105  may include content provider  160 A or the content and/or functionality of content provider  160 A. A portion or all of the content may be cached on the local cache device  162 . 
         [0037]    In some embodiments, one or more back office devices (BODs)  170 A- 170 C may be coupled to network  130 A. For example, one or more of a BODs  170 A- 170 C may include a cash register, a point of sale (POS) terminal, a smart card reader, a camera, a bar code reader, a radio frequency identification (RFID) reader, a credit card reading mechanism, and/or a remote order placing device, among others. In some embodiments, the remote order placing device may allow a retail entity to remotely accept orders from customers using the remote order placing device. For example, a customer may use a “drive-thru” window and the remote order placing device at one location, and the retail entity may accept the order at another location. For instance, the retail entity may accept orders in a first city from customers using the remote order placing device in a different second city. 
         [0038]    In various embodiments, one or more of BODs  170 A- 170 C may be configured to contact a clearinghouse through one or more networks (e.g., one or more of networks  130 A- 130 B) to debit one or more credit and/or debit card accounts. One or more of BODs  170 A- 170 C may include other mechanisms to identify a customer and/or customer account information. The POS terminal may include a smart card reader. In some embodiments, a back office device (BOD) may be coupled to a network through a wired AP. For example, BOD  170 A may be coupled to network  130 A through wired AP  120 D. In various embodiments, a BOD may be coupled to a network in a wireless fashion. For example, BOD  170 C may be coupled to network  130 A through wireless AP  120 B. 
         [0039]    In some embodiments, a retail entity computing device (RECD) may be coupled to network  130 A. Retail entity computing devices (RECDs)  111 A- 111 B may be coupled to network  130 A in a wired fashion (e.g., through wired AP  120 D) while RECD  111 C may be coupled to network  130 A in a wireless fashion (e.g., through wireless AP  120 B). A retail entity may provide RECDs  111 A- 111 C at various locations of the retail entity. RECDs  111 A- 111 C may be used by customers of the retail entity to access content and/or network services offered at the various locations. In various embodiments, the retail entity may distribute access codes, and the access codes may be used to authenticate a user for service. For example, an access code may be used to authenticate a user for access to network  130 B. One or more of RECDs  111 A- 111 C may be “locked down” to prevent theft. 
         [0040]    The retail entity may distribute access codes to access content through one or more of RECDs  111 A- 111 C. For example, a customer of the retail entity may receive an access code and use the access code with RECD  111 B to access content from one or more of content providers  160 A- 160 B. In various examples, the content may include audio, video, maps, pictures, and/or text, among others. For instance, the content may include a movie trailer, a music video, a computer-implemented game, web pages, graphics, a digital news publication, and/or a digital magazine, among others. Some or all of the content may be cached on a local cache device  162 . The content cache may be updated, replaced, or added to based on various factors including the date of the content (e.g. digital magazines and/or digital newspapers may be updated once/day or once/week), the local demographics or local area attractions, size of the data, available bandwidth for download, and/or other scheduled mechanism for updating the cached content. 
         [0041]    In some embodiments, NCS  100  may include a server computing device (SCD)  145  coupled to network  130 A. SCD  145  may store and/or provide various shared secrets to various computing devices coupled to network  130 A. In various embodiments, SCD  145  may communicate with various computing devices coupled to network  130 A using use one or more secure and/or encrypted methods and/or systems. For example, SCD  145  may communicate with various computing devices coupled to network  130 A using transport layer security (TLS), HTTPS (secure hypertext transfer protocol), and/or a secure socket layer (SSL), among others. 
         [0042]    In some embodiments, NCS  100  may include one or more server computing devices (SCDs)  140 A- 140 C and/or one or more PCDs  110 G- 110 H coupled to network  130 B. In one example, SCD  140 A may include various authentication and/or authorization services used in providing access from network  130 A to network  130 B. In a second example, one or more of SCDs  140 B- 140 C may provide content and/or other network services described herein. For instance, SCD  140 B may provide SCD  145  with one or more shared secret updates. SCD  140 B and SCD  145  may communicate in a secure fashion (e.g., using TLS, HTTPS, SSL, etc.). In another example, one or more PCDs  110 G- 110 H may exchange data associated with one or more network services described herein. In various embodiments, one or more computing devices coupled to network  130 A may be permitted to access and/or communication with computing devices coupled to network  130 B after being permitted to do so. 
         [0043]    NCS  100  may include a management information base (MIB)  150 . MIB  150  may be coupled to network  130 A. In various embodiments, MIB  150  may be a mechanism, such as a memory, which may allow the persistent storage and management of information that may be used by network  130 A to operate. In some embodiments, MIB  150  may store a data structure, such as a table comprising a list of identification information and a corresponding list of two or more possible networks and/or services. The data structure may also store access information, which may include associated methods for providing data to/from the respective two or more possible networks and/or services. The access information may include access level and/or privilege level information. The data structure may include a table of two or more tuples, with each tuple including the identification information. In various embodiments, the data structures that store this information may be included in each of the APs  120 A- 120 D, or may be provided in various other locations. 
         [0044]    MIB  150  may store other information, such as a directory of one or more of the elements (e.g., access points, computing devices, etc) in NCS  100 , network topology information, characteristics of individual network elements, characteristics of connection links, performance and trend statistics, and/or any information that may be of interest in operating network  130 A. For example, MIB  150  may store longitude, latitude, altitude and/or other geographic information that may be used to locate one or more access points and/or one or more geographic regions. 
         [0045]    In some embodiments, NMD  105  may be a computer system operable to include one or more of MIB  150 , network  130 A, SCD  145 , various networking equipment, and/or one or more APs  120 A- 120 D, among others. 
         [0046]    In various embodiments, a user operating a computing device (e.g., one of PCDs  110 A- 110 F) may communicate with one of the APs  120 A- 120 D to gain access to a network and its services, such as the Internet. One or more of PCDs  110 B- 110 C may have a wireless communication device, e.g., a wireless Ethernet card, for communicating with one or more of the wireless APs  120 A- 120 B. One or more of PCDs  110 A and  110 D- 110 F may have a wired communication device, e.g., an Ethernet card, for communicating with one or more of the wired APs  120 C- 120 D. In various embodiments, one or more of PCDs  110 A- 110 F may be any of various types of devices, including a computer system, such as a portable computer, a personal digital assistant (PDA), a mobile telephone (e.g., a cellular telephone, a satellite telephone, etc.), a wearable computing device, an Internet appliance, a communications device, or other wired or wireless device. One or more of PCDs  110 A- 110 F, RECDs  111 A- 111 C, BODs  170 A- 170 C, and/or content provider  160 A may include various wireless or wired communication devices, such as a wireless Ethernet card, paging logic, RF (radio frequency) communication logic, a wired Ethernet card, a modem, a DSL device, an ISDN device, an ATM (asynchronous transfer mode) device, a parallel and/or serial port bus interface, and/or other type of communication device. 
         [0047]    In some embodiments, one or more of PCDs  110 A- 110 F, RECDs  111 A- 111 C, BODs  170 A- 170 C, and/or content provider  160 A may include a memory medium which stores identification (ID) information and/or shared secret information. The identification information may be a System ID (an IEEE 802.11 System ID), a processor or CPU ID, a Media Access Control (MAC) ID of a wireless or wired Ethernet device (e.g., a MAC address), network identification information, and/or other type of information that identifies the computing device. The identification information may be included in a digital certificate (e.g., an X.509 certificate), which may be stored in a web browser, in a client software, and/or in a memory medium of the computing device. In various embodiments, the shared secret information may be stored in a memory medium of the computing device and may be accessible by client software of the computing device. For example, the shared secret information may include various strings of data that may be combined with other data which may be used in determining a result of a one-way hash function. 
         [0048]    In communicating with wireless APs  120 A- 120 B, the wireless communication may be accomplished in a number of ways. In some embodiments, one or more of PCDs  110 B- 110 C, BOD  170 C, RECD  111 C, and wireless APs  120 A- 120 B may be equipped with appropriate transmitters and receivers compatible in power and frequency range (e.g., 900 MHz, 2.4 GHz, 3.6 GHz, 5 GHz, among others) to establish a wireless communication link. Wireless communication may also be accomplished through cellular, satellite, digital, and/or infrared communication technologies, among others. To provide user identification and/or ensure security, a computing device and/or wireless AP may use any of various security systems and/or methods. 
         [0049]    In communicating with wired APs  120 C- 120 D, the wired connection may be accomplished through a variety of different ports, connectors, and/or transmission mediums. For example, one or more PCDs  110 A and  110 D- 110 F, RECDs  111 A- 111 B, and BOD  170 A may be coupled through an Ethernet, universal serial bus (USB), FireWire (IEEE 1394), serial, and/or parallel transmission cables, among others. One or more of PCDs  110 A and  110 D- 110 F may include various communication devices for connecting to one of the wired APs  120 C- 120 D, such as wired Ethernet cards, modems, DSL adapters, ATM adapters, IDSN devices, or other communication devices. In one example, a hotel may have Ethernet connections in the restaurants, shops, meeting rooms, and/or guest rooms. In a second example, a fast-food restaurant and/or a coffee shop may have both wireless and wired connections for mobile users. A user may connect to a wired AP  120 C through the use of a laptop computer (e.g., one of PCDs  110 D- 110 F), an Ethernet network card, and a network cable. This connection may have the same impact as a connection made to a wireless AP  120 B. In other words, a user using a wired portable computing device may be able to use various network infrastructures in the same manner as a user using a wireless portable computing device. 
         [0050]    In some embodiments, access codes to content may be provided to customers with a purchase of goods and/or services. For example, a customer may receive an access code to download a computer-implemented game. The computer-implemented game may be downloaded to one or more of PCDs  110 A- 110 F, for instance. The access code to download a computer-implemented game may be distributed instead of a toy or trinket that may have accompanied a purchase of a meal. The computer-implemented game may include one or more digital rights management schemes. For instance, a digital rights management scheme may provide protection against further distribution of the computer-implemented game, e.g., not allowing distribution of the computer-implemented game to another computing device after it is downloaded. A digital rights management scheme may allow the computer-implemented game to only be played at a location of the retail entity. 
         [0051]    In various embodiments, NCS  100  may be geographic-based. In other words, the NCS  100  may provide information and/or services to a computing device (e.g., one of PCDs  110 A- 110 F, RECDs  111 A- 111 C, RECDs  111 A- 111 C, and BODs  170 A- 170 C) based at least partly on the geographic location of the computing device, e.g., as indicated by one or more of APs  120 A- 120 D and/or as indicated by geographic information (e.g., GPS information, fast-food restaurant and/or coffee shop location, room identification, room number, room name, and/or room area, among others) provided from the computing device. In some embodiments, one or more of APs  120 A- 120 D may be arranged at known geographic locations and may provide geographic location information regarding the geographic location of the user and/or the computing device. In some embodiments, a computing device (e.g., one of PCDs  110 A- 110 F, RECDs  111 - 111 C, and BODs  170 A- 170 C) may provide geographic location information of the computing device through an access point (e.g., one of APs  120 A- 120 D) to network  130 A. For example, the computing device may include GPS (Global Positioning System) equipment enabling the computing device to provide its geographic location through the access point to network  130 A. 
         [0052]    In various embodiments, NMD  105  may service a single location. In some embodiments, NMD  105  may service two or more locations (e.g., locations  175 A- 175 C), as shown in  FIG. 2 . For instance, each of various locations  175 A- 175 C may include a portion of NCS  100 . As described herein, a geographic location may include a geographic region. For instance, locations  175 A- 175 C may be referred to as geographic locations and/or geographic regions, and they may include one or more areas of one or more sizes. In one example, location  175 C may include a meeting room. In second example, location  175 A may include a retail entity location, such as a coffee shop, a sandwich shop, a McDonalds location, etc. In another example, location  175 B may include a city. More information regarding geographic location information may be found in U.S. Pat. No. 5,835,061, referenced above. 
         [0053]    One or more of the systems described herein, such as PCDs  110 A- 110 H, APs  120 A- 120 D, BODs  170 A- 170 C, MIB  150 , content providers  160 A- 160 B, server computing devices (SCDs)  140 A- 140 C, and NMD  105  may include a memory medium on which computer programs and/or data according to the present invention may be stored. For example, each of the APs  120 A- 120 D, and/or MIB  150  may store a data structure as described above including information regarding identification information, application identification information, protocol identification information, corresponding networks, and/or access information such as associated data routing and/or QoS methods. Each of the APs  120 A- 120 D, and/or MIB  150  may further store a software program for accessing these data structures and using the information therein to properly provide and/or route data between computing devices and networks, and/or to selectively provide and/or route data depending on the access information and/or the QoS. In various embodiments, various of the systems and/or methods described herein may be used to provide network access from a first network to a second network. For example, the first network may include network  130 A, and the second network may include network  130 B. 
         [0054]    In some embodiments, one or more computer systems may communicate with the one or more other computer systems using use one or more secure and/or encrypted methods and/or systems. For example, PCD  110 A may communicate with the one or more computer systems (e.g., PCDs  110 B- 110 H, NMD  105 , SCDs  145 ,  140 A- 140 C, and/or content providers  160 A- 160 B) using TLS, HTTPS, and/or a SSL, among others. 
         [0055]    The term “memory medium” and/or “computer readable medium” is intended to include various types of memory or storage, including an installation medium, e.g., a CD-ROM, or floppy disks, a random access memory or computer system memory such as DRAM, SRAM, EDO RAM, Rambus RAM, NVRAM, EPROM, EEPROM, flash memory etc., and/or a non-volatile memory such as a magnetic media, e.g., a hard drive, and/or optical storage. The memory medium may include other types of memory as well, or combinations thereof. In some embodiments, the memory medium may be and/or include an article of manufacture and/or a software product. In addition, the memory medium may be located in a first computer in which the programs are executed, or may be located in a second different computer and/or hardware memory device that connects to the first computer over a network. In some embodiments, the second computer provides the program instructions to the first computer for execution. The memory medium may also be a distributed memory medium, e.g., for security reasons, where a portion of the data is stored on one memory medium and the remaining portion of the data may be stored on a different memory medium. Also, the memory medium may include one of the networks to which the current network is coupled, e.g., a SAN (Storage Area Network). 
         [0056]    In various embodiments, each of the systems described herein may take various forms, including a personal computer system, server computer system, workstation, network appliance, Internet appliance, wearable computing device, personal digital assistant (PDA), laptop, mobile telephone, mobile multimedia device, embedded computer system, television system, and/or other device. In general, the terms “computing device”, “computer”, and/or “computer system” can be broadly defined to encompass any device having a processor which executes instructions from a memory medium. 
         [0057]    The memory medium in one or more systems thus may store a software program and/or data for performing and/or enabling access and/or selective network access and/or network service. A CPU or processing unit in one or more systems executing code and data from a memory medium includes a means for executing one or more software program according to the methods and/or flowcharts described herein. 
         [0058]    Referring now to  FIGS. 3-6C , various flowchart diagrams are illustrated, according to various embodiments.  FIGS. 3-6C  include various methods that may be used in a client-server system. 
         [0059]    Turning now to  FIG. 3 , a flowchart diagram of a method is illustrated, according to various embodiments. At  300 , a computing device (e.g., one of PCDs  110 A- 110 F, RECDs  111 A- 111 C, BODs  170 A- 170 C, and/or content provider  160 A) may transmit a first request to a first network, such as network  130 A. In various embodiments, the method illustrated in  FIG. 3  may be used by a client in the client-server system. 
         [0060]    Turning now to  FIG. 4 , where operation of the client server system may continue, a flowchart diagram of a method is illustrated, according to various embodiments. In various embodiments, the method illustrated in  FIG. 4  may be used by a server in the client-server system. At  400 , the first request from the computing device may be intercepted. For example, NMD  105  may intercept the request. In various embodiments, NMD  105  may include and/or implement an access controller that intercepts the request from the computing device. For instance, the request may include one or more data packets (e.g., Internet protocol packets, transmission control protocol packets, user datagram packets, etc.), and the access controller may examine information included in the one or more data packets. For example, the access controller may examine a destination address, a destination port, a source address, etc. In some embodiments, the access controller may include and/or implement a firewall and various services and/or attributes associated with firewalls. 
         [0061]    Next at  410 , it may be determined whether or not to redirect the request. For example, the access controller may determine to redirect the request based on information from the one or more data packets. For instance, the access controller may determine that the requests includes information such as a destination port (e.g., a known port of a web server, etc.), a destination address such as an Internet protocol (IP) address, and/or a source address of the computing device, among others. The source address of the computing device may include an IP address and/or a media access control (MAC) address, among others. In some embodiments, the destination address may not correspond to a computer system. For example, the destination address may be a mock address. For instance, the mock address may not be assigned to a computer system. 
         [0062]    In various embodiments, an access control list may be used in determining whether or not to redirect the request. For example, the access control list may include a list of one or more addresses that may be accessed. For instance, an address of SCD  140 A may be included in the list of addresses that may be accessed. Accordingly, if the destination address includes the address of SCD  140 A, the request may be passed along to SCD  140 A, at  420 . In some embodiments, one or more access rules may be used in determining to redirect the request. For example, the one or more access rules may allow one or more requests from one or more source addresses to be passed along. For instance, the one or more rules may allow requests from source addresses of PCDs  110 C- 110 E, BOD  170 A, and/or RECD  111 B to be passed along to network  130 B, at  420 . 
         [0063]    If it is determined to redirect the request, the method may proceed to  430  where redirection information may be transmitted to the computing device. In some embodiments, a hypertext transfer protocol (HTTP) redirect may be transmitted to the computing device. For example, the redirect may include a location of a server. In one instance, the location may include an address of NMD  105 . In another instance, the location may include an address of SCD  140 A. In various embodiments, information associated with the redirection may be transmitted to the computing device. For example, the information associated with the redirection may include one or more of a service provider, an access procedure, an access location, an error code, a login uniform resource locator (URL), a message type, one or more wireless Internet service provider (WISP) access gateway parameters, a response code, and/or an authentication seed, among others. This information or one or more portions thereof may be considered authentication support information. 
         [0064]    In various embodiments, the authentication seed may include a number (e.g., a string of numbers and/or digits) and/or an ASCII string of characters. In various embodiments, a first authentication seed may be combined with first data, a second, different, authentication seed may be combined with the first data, and a first result of a one-way hash function of the combination of the first authentication seed and the first data and a second result of the one-way hash function of the combination of the second authentication seed and the first data may be differing results from each other. In some embodiments, an authentication seed may be preselected, a result of a non-repetitive function, chosen at random, a result of a pseudo-random function generator, and/or a result of a random function generator. 
         [0065]    As an example, possible redirection information is shown below in Table 1. 
         [0000]    
       
         
               
             
               
               
             
               
               
             
               
               
             
               
               
             
               
               
             
               
               
             
               
             
           
               
                 TABLE 1 
               
               
                   
               
             
             
               
                 HTTP/1.0 302 Redirect 
               
               
                 Server: Apache 1.3.6 
               
               
                 Location: http://SCD140A.wayport.net/login 
               
               
                 &lt;!--ServiceProvider=wayport --&gt; 
               
               
                 &lt;!--access procedure=WY.1 --&gt; 
               
               
                 &lt;!--access location= wp_23.1234 --&gt; 
               
               
                 &lt;!--error=0 --&gt; 
               
               
                 &lt;!-- LoginURL= http://SCD140A.wayport.net/login --&gt; 
               
             
          
           
               
                   
                 &lt;?xml version=“1.0” encoding=“UTF-8”?&gt; 
               
               
                   
                 &lt;WISPAccessGatewayParam 
               
             
          
           
               
                   
                 xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance” 
               
               
                   
                 &lt;xsi:noNamespaceSchemaLocation= 
               
               
                   
                 “http://roamer.wayport.net/WayportGISParam.xsd”&gt; 
               
             
          
           
               
                   
                 &lt;Redirect&gt; 
               
             
          
           
               
                   
                 &lt;AccessProcedure&gt;1.0&lt;/Accessprocedure&gt; 
               
               
                   
                 &lt;AccessLocation&gt;wp_123.1234&lt;/AccessLocation&gt; 
               
               
                   
                 &lt;LocationName&gt;Wayport Cafe Property 123&lt;/Location Name&gt; 
               
               
                   
                 &lt;AuthetcationSeed&gt;1809212008&lt;/AuthenticationSeed&gt; 
               
               
                   
                 &lt;LoginURL&gt;http://SCD140A.wayport.net/login&lt;/LoginURL&gt; 
               
               
                   
                 &lt;MessageType&gt;100&lt;/MessageType&gt; 
               
               
                   
                 &lt;ResponseCode&gt;0&lt;/ResponseCode&gt; 
               
             
          
           
               
                   
                 &lt;/Redirect&gt; 
               
             
          
           
               
                   
                 &lt;/WISPAccessGatewayParam&gt; 
               
             
          
           
               
                 --&gt; 
               
               
                   
               
             
          
         
       
     
         [0066]    As shown, one or more portions of authentication support information may be included in a data description language such as an extensible markup language (XML). 
         [0067]    Turning now to  FIG. 5 , where operation of the client server system may continue, a flowchart diagram of a method is illustrated, according to various embodiments. In various embodiments, the method illustrated in  FIG. 5  may be used by a client in the client-server system. At  500 , the computing device may receive the authentication support information. Next at  510 , the computing device may attain a shared secret. In some embodiments, the computing device may attain the shared secret from a memory medium (e.g., a memory medium of the computing device). In various embodiments, the computing device may attain the shared secret from a server computing device (e.g., SCD  145 ). For example, the computing device may query and/or request the shared secret from the server computing device, and the server computing device may communicate the shared secret to the computing device. 
         [0068]    In some embodiments, the shared secret may include characters and/or binary data. For example, the computing device may attain the shared secret by selecting from the one or more shared secrets in Table 2. In various embodiments, the shared secrets shown in Table 2 may be stored in a memory medium of a client and/or a server in the client-server system. In some embodiments, the computing device may communicate with a server computing device (e.g., SCD  145 ) to attain a shared secret, and the server computing device may provide the shared secret to the computing device. The server computing device may select the shared secret from the one or more shared secrets in Table 2. The server computing device and the computing device may communicate in a secure fashion (e.g., using TLS, HTTPS, SSL, etc.). 
         [0000]    
       
         
               
             
           
               
                 TABLE 2 
               
               
                   
               
             
             
               
                 “Mary had @ !ittle l&amp;mb” 
               
               
                 “76a7c626a4f0d976725bda3afbe9f373” 
               
               
                 “Everybody is somebody else&#39;s weirdo” 
               
               
                 “Fourscore and seven years ago our fathers brought forth on this continent 
               
               
                 a new nation, conceived in liberty and dedicated to the proposition that 
               
               
                 all men are created equal” 
               
               
                 “a5d7f9d6a5aa1d{circumflex over ( )}%$@!~” 
               
               
                 “What a piece of work is man” 
               
               
                 “What merchant&#39;s ships have my sighs drown&#39;d?” 
               
               
                 “Never test a river depth with both feet” 
               
               
                 “Patience will come to those who wait for it” 
               
               
                 “A learned blockhead is a greater blockhead than an ignorant one” 
               
               
                   
               
             
          
         
       
     
         [0069]    Next at  520 , the computing device may determine a network address. In some embodiments, the computing device may determine its MAC address as the network address. Next at  530 , the network address, the authentication seed, and the shared secret string may be combined. In one example, the network address may include “00:0d:a3:88:be:fe”, the authentication seed may include “1809212008”, and the selected or attained shared secret may include “Mary had a little lamb”, and the combination may include “00:0d:a3:88:be:fe1809212008Mary had a little lamb”. 
         [0070]    Next at  540 , a result of a one-way hash function of the combination of the network address, the authentication seed, and the shared secret may be determined. In some embodiments, the result of the one-way hash function may be considered a message authentication code that may be used to authenticate data. 
         [0071]    In various embodiments, a one-way hash function may be relatively easy to compute (e.g., calculate by a processor executing instructions from a computer-readable medium) and significantly difficult to reverse. For example, for a value x (e.g., a number, a string, binary data, etc.) and a one-way hash function f, f(x) is relatively easy to compute, and for a value f(z), z is significantly difficult to compute. In various embodiments, significantly difficult to compute may mean that it could take years to compute z from f(z), even if multiple computers were applied to the task. In some embodiments, a one-way hash function may be considered collision free. For example, the one-way hash function may be one-to-one or injective and, thus, may be considered collision free. In various instances, one-way hash functions may be considered a cryptographic checksum, a message digest, a digital fingerprint, a message integrity check, a contraction function, a compression function, and/or a manipulation detection code. Various examples of one-way hash functions may include one or more of message digest (MD) 2, MD 4, MD 5, RIPE-MD, Abreast Davies-Meyer, Davies-Meyer, HAVAL, GOST Hash, N-HASH, SHA (secure hash algorithm), and/or SNEFRU, among others. In some embodiments, a one-way hash function may be a composite function of two or more one-way hash functions. For example, a function g may include a MD 5 one-way hash function, a function h may include a SHA one-way hash function, and a function j may include a MD 5 one-way hash function, and a function f may include a composite function such that f(x)=g(h(j(x))). A one-way hash function that is a composite function of two or more one-way hash functions may be considered to be and/or said to be strengthened. 
         [0072]    In one example, the one-way hash function applied at  540  may include a MD 5 one-way hash function, and a result of the MD 5 one-way hash function of the combination from  530  may include “98ae32fb785a882bf607be669e9790c2” which is a hexadecimal representation of a 128-bit number. 
         [0073]    Next at  550 , the computing device may transmit a network access request to a server. The network access request may include the address determined at  520  and the result of the one-way hash function determined at  540 . In one example, the network access request may be transmitted to SCD  140 A. In a second example, the access request may be transmitted to NMD  105 . 
         [0074]    In various embodiments, SCD  140 A and/or NMD  105  may include a web server that may receive the network access request. For example, the web server may receive information included in Table 3, below. 
         [0000]    
       
         
               
             
           
               
                 TABLE 3 
               
               
                   
               
             
             
               
                 POST/login HTTP/1.0 
               
               
                 Content-Length: 147 
               
               
                 MacAddr=00:0d:a3:88:be:fe&amp;IpAddr=192.168.1.1&amp;PortType=Guest&amp; 
               
               
                 NmdId=351 &amp;usename=Wellcent/00:0d:a3:88:be:fe&amp; 
               
               
                 password=98ae32fb785a882bf607be669e9790c2 
               
               
                   
               
             
          
         
       
     
         [0075]    As shown in Table 3, the username may include a realm. For example, the realm may include “Wellcent” that may indicate a roaming partner and/or a network provider associated with an operator of NCS  100 . As also shown in Table 3, the username may include the address determined at  520 , and the password may include the result of the one-way hash function, determined at  540 . 
         [0076]    In some embodiments, one or more of SCDs  140 A- 140 C and/or NMD  105  may include authentication, authorization, and accounting (or “AAA”) processes and/or services. RADIUS (Remote Authentication Dial-In User Service) is an example of an AAA service used by various Internet Service Providers (ISPs). (The RADIUS specification is maintained by a working group of the Internet Engineering Task Force, the main standards organization for the Internet, e.g., see RFC 2865 and RFC 2866.) In one example, a user may connect a computing device to an Internet service provider (ISP), the user&#39;s username and password may be transmitted to an AAA server (e.g., a RADIUS server) and/or to an AAA interface server (e.g., a web server). The AAA server may then check that the information is correct and authorize access to the ISP&#39;s system and/or services. Other protocols for providing an AAA framework may include DIAMETER (an extension of RADIUS), EAP (Extensible Authentication Protocol), TACACS (Terminal Access Controller Access Control System), TACACS+, and/or XTACAS, 802.1x, WPA, 802.11i, among others. In various embodiments, these may also be used for applications, such as access to network service and/or IP mobility, and are intended to work in both local AAA and roaming situations. 
         [0077]    In one example, AAA processes and/or services of SCD  140 A and/or NMD  105  may receive a username of “Wellcent/00:0d:a3:88:be:fe” and a password of “98ae32fb785a882bf607be669e9790c2”. As described above, the username may include a realm (e.g., “Wellcent”) that may indicate a roaming partner and/or network provider associated with an operator of NCS  100  and may include the address determined at  520 , and the password may include the result of the one-way hash function, determined at  540 . In some embodiments, the username and password may be RADIUS-qualified. In various embodiments, the result of the one-way hash function, determined at  540 , may be included in a vendor specific attribute (VSA). 
         [0078]    In some embodiments, SCD  140 A and/or NMD  105  may proxy one or more AAA requests to another computer system. In one example, NMD  105  may proxy one or more AAA requests to SCD  140 A. In another example, SCD  140 A may proxy one or more AAA requests to SCD  140 B. 
         [0079]    Turning now to  FIG. 6A , where operation of the client server system may continue, a flowchart diagram of a method is illustrated, according to various embodiments. In various embodiments, the method illustrated in  FIG. 6A  may be used by a server in the client-server system. At  600 , the network address of the computing device and the result of the one-way hash function may be received from the computing device. Next at  610 , a shared secret may be selected. For example, a shared secret may be selected from a memory medium that may store one or more shared secrets, such as those shown in Table 2. Next at  620 , the network address, the authentication seed, and the shared secret may be combined, and a test case result of a one-way hash function using the combination of the network address, the authentication seed, and the shared secret may be determined at  630 . At  640 , it may be determine whether or not the test case result matches the result of the one-way hash function received from the computing device. If not, the method may proceed to  650 , where it may be determined whether or not to try another shared secret. If so, the method may proceed to  655 , where another shared secret may be selected. For example, another shared secret may be selected from those of Table 2. If not, the method may proceed to  660 , where an error message may be transmitted to the computing device and/or an access controller, such as NMD  105 . 
         [0080]    If the test case result matches the result of the one-way hash function received from the computing device, the method may proceed from  640  to either  665  of  FIG. 6B  or  665  of  FIG. 6C . 
         [0081]    Turning now to  FIG. 6B , where operation of the client server system may continue, a flowchart diagram of a method is illustrated, according to various embodiments. In various embodiments, the method illustrated in  FIG. 6B  may be used by a server in the client-server system. At  665 , it may be determined whether or not the computing device is authorized access to a second network, such as network  130 B. If not, the method may proceed to  670 , where an error message may be transmitted to the computing device and/or an access controller, such as NMD  105 . If so, the method may proceed to  675 , where the computing device may be permitted to access the second network (e.g., network  130 B). In some embodiments, an authorization message may be transmitted from a server (e.g., one of SCD  140 A- 140 C) to NMD  105  which may permit the computing device access of network  130 B. 
         [0082]    In some embodiments, access to a second network such as network  130 B may be based on a geographic location of the computing device. For example, the computing device may be authorized to access network  130 B; however, the computing device may be permitted to access network  130 B from a first location (e.g., location  175 A) and not permitted to access network  130 B from a second location (e.g., location  175 C). A flowchart diagram of a method is illustrated in  FIG. 6C , according to these embodiments, and the method illustrated in  FIG. 6C  may be used by a server in the client-server system. Elements  665 ,  670 , and  675  of  FIG. 6C  may be described according to elements  665 ,  670 , and  675  of  FIG. 6B , described above. 
         [0083]    Turning now to element  667  of  FIG. 6C , a geographic location of the computing device may be determined. For example, the geographic location may include one of locations  175 A- 175 C. Next at  668 , it may be determined whether or not the computing device is permitted access to a second network (e.g., network  130 B) from the geographic location. If not, the method may proceed to  670 . If so, the method may proceed to  675 . 
         [0084]    Turning now to  FIG. 7 , a block diagram of various computer systems and computer readable mediums is illustrated, according to various embodiments. In various embodiments, one or more computer readable mediums  700 A- 700 L may include instructions, which when executed on a respective processing system or computer system PCDs  110 A- 110 F, RECDs  111 A- 111 C, BODs  170 A- 170 C, and content provider  160 A, may cause the respective processing system or computer system to perform the methods, or one or more portions of the methods thereof, described with reference to  FIG. 3  and  FIG. 5 . In various embodiments, PCDs  110 A- 110 F, RECDs  111 A- 111 C, BODs  170 A- 170 C, and content provider  160 A may include respective computer readable mediums  700 A- 700 L, as shown in  FIG. 7 . 
         [0085]    Turning now to  FIGS. 8A and 8B , block diagrams of limited user input computing devices are illustrated, according to various embodiments. As shown in  FIG. 8A , a computing device  800 A may include a display  810  and/or one or more buttons and/or switches  820 A- 820 D. In some embodiments, display  810  may accept pressure input from a user. As shown in  FIG. 8B , a computing device  800 B may include one or more buttons and/or switches  820 E- 820 F. In various embodiments, computing device  800 A and/or computing device  800 B may be considered to be a limited user input computing device. In some embodiments, computing device  800 A and/or computing device  800 B may include one of PCDs  110 A- 110 F, RECDs  111 A- 111 C, BODs  170 A- 170 C, and content provider  160 A. 
         [0086]    Turning now to  FIG. 9 , a flowchart diagram of a method is illustrated, according to various embodiments. At  900 , a computing device (e.g., one of PCDs  110 A- 110 F, RECDs  111 A- 111 C, BODs  170 A- 170 C, and content provider  160 A) may receive a software and/or shared secret(s) update. In some embodiments, software and/or shared secret(s) may be updated from time-to-time. For example, updating software and/or shared secret(s) may be used in various efforts to prevent one or more compromises of one or more methods and/or systems described herein. The software and/or shared secret(s) update may be referred to as a firmware update. In various embodiments, the shared secret(s) may be interleaved in the software. In some embodiments, the shared secret(s) may be encrypted. 
         [0087]    In various embodiments, the software and/or shared secret(s) update may be received from a network. In some embodiments, the computer system may communicate with the one or more other computer systems using use one or more secure and/or encrypted methods and/or systems. For example, PCD  110 A may communicate with the one or more computer systems (e.g., PCDs  110 B- 110 H, NMD  105 , SCDs  140 A- 140 C, and/or content providers  160 A- 160 B) using TLS, HTTPS, and/or a SSL, among others. In various embodiments, the software and/or shared secret(s) update may be received from another computer system and/or a memory medium. For example, the software and/or shared secret(s) update may be received from a thumb drive, a removable hard drive, a floppy disk, a solid state drive (SSD), CD-ROM, DVD-ROM, a flash card, and/or a TEAclipper device, among others. In some embodiments, the software and/or shared secret(s) update may only be used one or more time finite times. 
         [0088]    Next at  910 , the software and/or shared secret(s) update may be stored in a memory medium of the computing device. 
         [0089]    Turning now to  FIG. 10 , a flowchart diagram of a method is illustrated, according to various embodiments. At  1000 , a server computing device (e.g., SCD  145 ) that may provide one or more shared secrets to one or more computing devices (e.g., one or more of PCDs  110 A- 110 F, RECDs  111 A- 111 C, BODs  170 A- 170 C, and content provider  160 A) may receive a shared secret(s) update from another server computing device (e.g., SCD  140 B). For example, SCD  145  and SCD  140 B may communicate in a secure fashion (e.g., using TLS, HTTPS, SSL, etc.) when SCD  145  is attaining the shared secret(s) update. 
         [0090]    Next at  1010 , the server computing device (e.g., SCD  145 ) may store the shared secret(s) update in a memory medium. 
         [0091]    It is noted that, in various embodiment, one or more of the method elements described herein and/or one or more portions of an implementation of a method element may be performed in varying orders, may be performed concurrently with one or more of the other method elements, or may be omitted. Additional method elements may be performed as desired. In various embodiments, concurrently may mean simultaneously. In some embodiments, concurrently may mean apparently simultaneously according to some metric. For example, two or more method elements and/or two or more portions of an implementation of a method element may be performed such that they appear to be simultaneous to a human. It is also noted that, in various embodiments, one or more of the system elements described herein may be omitted and additional system elements may be added as desired. 
         [0092]    Further modifications and alternative embodiments of various aspects of the invention may be apparent to those skilled in the art in view of this description. Accordingly, this description is to be construed as illustrative only and is for the purpose of teaching those skilled in the art the general manner of carrying out the invention. It is to be understood that the forms of the invention shown and described herein are to be taken as embodiments. Elements and materials may be substituted for those illustrated and described herein, parts and processes may be reversed, and certain features of the invention may be utilized independently, all as would be apparent to one skilled in the art after having the benefit of this description of the invention. Changes may be made in the elements described herein without departing from the spirit and scope of the invention as described in the following claims.