WO2010151692A1 - Systems and methods for obtaining network credentials - Google Patents

Systems and methods for obtaining network credentials Download PDF

Info

Publication number
WO2010151692A1
WO2010151692A1 PCT/US2010/039859 US2010039859W WO2010151692A1 WO 2010151692 A1 WO2010151692 A1 WO 2010151692A1 US 2010039859 W US2010039859 W US 2010039859W WO 2010151692 A1 WO2010151692 A1 WO 2010151692A1
Authority
WO
WIPO (PCT)
Prior art keywords
network
credential
digital device
server
credential request
Prior art date
Application number
PCT/US2010/039859
Other languages
French (fr)
Inventor
John Gordon
David Whedon Kimdon
Original Assignee
Devicescape Software, Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Devicescape Software, Inc. filed Critical Devicescape Software, Inc.
Priority to JP2012517739A priority Critical patent/JP2012531822A/en
Priority to EP10792679.2A priority patent/EP2446347A4/en
Publication of WO2010151692A1 publication Critical patent/WO2010151692A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • H04L61/4505Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
    • H04L61/4511Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/062Network architectures or network communication protocols for network security for supporting key management in a packet data network for key distribution, e.g. centrally by trusted party
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0815Network architectures or network communication protocols for network security for authentication of entities providing single-sign-on or federations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0853Network architectures or network communication protocols for network security for authentication of entities using an additional device, e.g. smartcard, SIM or a different communication terminal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/06Authentication
    • H04W12/069Authentication using certificates or pre-shared keys

Definitions

  • the present invention generally relates to accessing networks. More particularly, the invention relates to obtaining network credentials to access a network.
  • Wi-Fi network Connecting to wireless networks has traditionally been a complex process for users of wireless devices for other reasons.
  • the listing of available Wi-Fi networks comprises a list of Wi-Fi network SSlD identiilcrs. Users must often identify which Wi-Fi networks do not have encryption or other security mechanisms (e g.. a login page). To add to usei frustration, some of the wireless networks may be functional while others may be inisconfigured in such a way that renders the network unusable.
  • the user typically makes an arbitrary decision which Wi-Fi network to connect to based on the listing. In making a decision of which Wi-Fi network to connect, the user typically does not know whether the selected Wi-Fi network will provide adequate quality of service or even if the network will be able to provide an Ii 1 address via Dynamic Host Configuration Protocol (DHCP).
  • DHCP Dynamic Host Configuration Protocol
  • the SSID of multiple public libraries may indicate '"library.” Since the SSlDs arc not unique, it may be difficult to determine which network credentials to provide based only on the SSID in order to gain access. For example, one library with an SSID of "library” may allow access once a user indicates they are a "guest.” Another library with the same SSID may require a library card identifier.
  • the exemplary method comprises receiving a credential request from a digital device over a network device, identifying a network record based on at least some information within the credential request, retrieving a network credential from a plurality of network credentials based on the network record, and transmitting a credential request response containing the network credential from the plurality of network credentials to the digital device.
  • the method may further comprise decrypting the credential request, authenticating the credential request, and encrypting the credential request response. Further, the method mav also comprise retrieving an encryption key based on the digital device
  • the credential request may be received over a standard protocol of the network device.
  • the standard protocol may be DNS.
  • the credential request may comprise a location identifier.
  • the method may further comprise receiving a confirmed access response from the digital device.
  • exemplary system for providing network credentials may comprise a credential request module and a credential request response module.
  • the credential request module may be configured to receive a credential request from a digital dev ice over a network device.
  • the credential request response module may be configured to identify a netw ⁇ i k record based on at least some infoimation within the credential request, retrieve a network credential from a plurality of network credentials based on the network record, and transmit a credential request response containing the network to the digital device.
  • the program may be executable by a processor for performing a method for providing network credentials.
  • the method may comprise receiving a credential request from a digital device over a network device, identifying a network record based on at least some information within the credential request, retrieving a network credential from a plurality of network credentials based on the network record, and transmitting a credential request response containing the network credential from the plurality of network credentials to the digital dev ice.
  • a method comprises receiving a first network device identifier for a first network device and a second network device identifier for a second network device, obtaining a first network profile comprising a first attribute, the first network profile based on the first network device identifier, obtaining a second network profile comprising a second attribute, the second network profile based on the second network device identifier, and selecting either the first network device identifier or the second network device identifier based on an attribute analysis of the first attribute and the second attribute.
  • the first network device identifier and the second network device identifier arc received from a digital device by a server.
  • the method may further comprise providing a wireless network selection based on the selection.
  • the method may also further comprise providing a credential request response based on the selection.
  • the network selection identifier comprises the first network device identifier.
  • the network selection identifier may also comprise a sorted list including the first network device identifier and the second network device identifier wherein the list is sorted based on the attribute anal) sis of the first attribute and the second attribute.
  • ⁇ n attribute may comprise a performance metric, a shared indicator, and a service identifier.
  • the method may further comprise comparing the first attribute and the second attribute to minimum requirements wherein selecting either the first network identifier or the second network device identifier is also based, at least in part, on the comparison of the attributes to the minimum requirements.
  • the method may also further comprise comparing the first attribute and the second attribute to personalized settings wherein selecting either the first network identifier or the second network device identifier is also based, at least in part, on the comparison of the attributes to personalized settings.
  • the method may also further comprise receiving a user identifier and retrieving the personalized settings from a user account based on the user identifier.
  • a system comprises a digital device and a server.
  • the digital device may be coupled to a communication network and configured to transmit a first network device identifier for a first network device and a second network device identifier for a second network device over lhe communication network.
  • the server may also be coupled to the communication network and configured to receive the first network device identifier and the second network device identifier from the digital device, to obtain a first network profile comprising a first attribute, the first network profile based on the first network device identifier, to obtain a second network profile comprising a second attribute, the second network profile based on the second network device identifier, and to select either the first network device identifier ⁇ r the second network device identifier based on an attribute analysis of the first attribute and the second attribute.
  • ⁇ computer readable storage medium may be configured to store instructions, the instructions comprising a method, the method comprising the steps of receiving a first network device identifier for a first network device and a second network device identifier for a second network device, obtaining a first network profile comprising a first attribute, the first network profile based on the first network device identifier, obtaining a second network profile comprising a second attribute, the second network profile based on the second network de ⁇ ice identifier, and selecting either the first network device identifier or the second network device identifier based on an attribute analysis of the first attribute and the second attribute.
  • a method comprises receiving, with a digital device, a network identifier from a network device. pro ⁇ iding a first credential request including the network identifier to another digital ice on a network, receiving a request for additional network information from the other digital device, providing a second credential request including additional network information to the other digital device, receiving a credential request response including network credentials from the other digital device, and providing the network credentials from the credential request response to a network device.
  • the first credential request is formatted using I)NS protocol.
  • the first credential request may be provided to the other digital ice via an open port on the network device.
  • the open port may be port 53.
  • the network identifier may be any identifier that identifies the network, such as an SSlD.
  • the additional network information may be any information associated with the network including, but not limited to. a BSSlD. a title to a web page received by the digital device from the network device, a URL of a web page received by the digital device from the network device, or a hash of a web page received by the digital device from the network device.
  • An exemplary system may comprise a request module and a response module.
  • the request module may be configured to receive a network identifier from a network device.
  • the response module may be configured to provide a first credential including the network identi bomb to another digital device on a network, receive a request for additional network information from the other digital device, provide a second credential request including additional network information to the other digital device, receive a credential request response including network credentials from the other digital device, and provide the network credentials from the credential request response to a network device.
  • the instructions may comprise a method.
  • the method may comprise the steps of receiving, with a digital device, a network identifier from a network device, providing a first credential request including the network identifier to another digital device on a network, receiving a request for additional network information from the other digital device, providing a second credential request including additional network information to the other digital device, receiving a credential request response including network credentials from the other digital device, and providing the network credentials from the credential request response to a network device.
  • FIG. 1 is a diagram of an environment in which embodiments of the present invention may be practiced.
  • FKj. 2 is a block diagram of an exemplary credential server.
  • FIG. 3 is a flow diagram of an exemplary process for providing network access to the digital device.
  • FlG. 4 is a block diagram of an exemplary credential request.
  • FIG. 5 is a block diagram of an exemplary credential request response.
  • FIG. 6 is a How diagram of the exemplary method for providing network credentials.
  • FIG. 7 is another flow diagram of the exemplar)' method for providing network credentials.
  • FlG. 9 is a block diagram of an exemplary credential server.
  • FlG. I U is a diagram of another environment in which embodiments of the present invention may be practiced.
  • FIG. 1 1 is a How diagram of an exemplary process for providing a selection of a wireless network.
  • FIG. 12 is a How diagram of an exemplary process for selecting a wireless network.
  • FIG. 1 3 is a diagram for selecting a wireless network and accessing the selected wireless network.
  • FIG. 14 is a box diagram of a digital device in some embodiments.
  • FIG. 15 is a How diagram of an exemplary method for retrieving network credentials when a network identifier may be insufficient to identify network credentials in some embodiments.
  • 0041 FIG. 16 is a flowchart of an exemplary method for a digital device to receive network credenliaLs when a network identifier is insufficient in some embodiments.
  • FlG. 1 7 is a flowchart of an exemplary method for a credential server 1 16 to provide network credentials in some embodiments.
  • FIG. 18 is a flowchart of another exemplary method for a digital device to receive network credentials when a network identifier may be shared by two or more networks in some embodiments.
  • a credential server receives a request for network credentials from a digital device at a hotspot.
  • the request may be formatted as a standard protocol which is relayed from the hotspot to the credential server.
  • the credential server may identify a network record based on at least some information contained within the request and transmit network credentials associated with the network record to the digital device.
  • the digital device may receive the network credentials and provide them to network device in order to obtain network access.
  • a rules server may identify a preferred network from a plurality of available networks that the digital device may connect based on a variety of network attributes.
  • a digital device may scan a physical region for available networks and generate a list of available wireless networks. The list may be provided to a rules server which identifies and retrieves a network profile for each wireless network on the list The rules server may then compare each network profile (e.g.. via attributes contained within each profile) to select a preferred network from the list. The rules server may then transmit the wireless network selection to the digital device which may then access the network.
  • the digital device accesses the selected wireless network using credentials provided by the credential server.
  • the rules server selects the preferred wireless network
  • the rules server may simultaneously (or nearly simultaneously) provide a credential request response including network credentials associated with the selected wireless network.
  • KlG. 1 illustrates a diagram of an environment 100 in which embodiments of the present invention may be practiced.
  • a user with a digital device 102 enters a hotspot.
  • the digital device 102 may automatically transmit a credential request as a standard protocol over a network device 104.
  • the credential request may be forwarded to a credential server 1 16 which, based on the information contained within the credential request, transmits a credential request response back to the digital device 102.
  • the credential request response contains network credentials which the digital device 102 may provide to the network device 104, the authentication server 108, or the access controller 1 12 to obtain access to the communication network 1 14.
  • a hotspot comprises the network device 104, the authentication server 108. the DNS server ] 10. and the access controller 1 12 which are coupled to the local area network 106 (e.g.. a "walled garden").
  • the network device 104 may comprise an access point which allows the digital device 102 to communicate with the authentication server 108. ihe DNS server 1 10. and the access controller 1 12 over the local area network 106.
  • the digital device 102 may comprise a laptop, mobile phone, camera, personal digital assistant, or any other computing device.
  • the authentication server 108 is a server that requires network credentials from the digital device 102 before allowing the digital device 102 access the communication network 1 14.
  • the DNS server 1 10 provides DNS services over the local area network 106 and may relay requests to other DNS servers (not shown) across the communication network 1 14.
  • the access controller 1 12 is an access device such as a router or bridge that can allow communication between devices operationally coupled to the network device 104 with devices coupled to the communication network 1 14
  • the hotspot in 1 * 10. 1 depicts separate servers coupled to the local area network 106, those skilled in the art will appreciate that there may be any number of devices (e.g.. servers, digital devices, access controllers, and network devices) coupled to the local area network 106.
  • the local area network 106 is optional.
  • the authentication server 108, the DNS server 1 10. and the access controller 1 12 are coupled directly to the network device 104.
  • the authentication server 108. the DNS server 1 10. and the access controller 1 12 may be combined within one or more servers or one or more digital devices.
  • I* ICJ. 1 depicts wireless access
  • the digital device 102 may be coupled to the network device 104 wirelcssly or over wires (e.g.. such as 1 ObaseT)
  • the authentication server 108 may require the digital device 102 to provide one or more network credentials for access to the hotspot.
  • the network credential may comprise, for example, a username and password for an account associated with the hotspot.
  • network credentials other than u user name and password may be utilized.
  • the digital device 102 may dynamically acquire the network credentials from the credential server 1 16.
  • the digital device 102 may send a credential request comprising an identity of the digital device 102 (or the user oi the digital device 102) and details about the network device 104 (e.g.. name of the network device 104 or Wi-Fi service provider) to the credential server 1 16.
  • In one example, when the digital device 102 enters the hotspot. the network device 104 may provide an IP address to which DNS queries may be submitted, for example, via DHCP (Dynamic Host Configuration Protocol).
  • the credential request may be formatted as a standard protocol. In an example, the credential request may be formatted as a DNS request.
  • the credential request may be a text record request (e.g.. TXT), which comprises a standard record type such that the network infrastructure (e.g., the access controller 1 12) will not block the request.
  • TXT text record request
  • the credential request may be a text record request (e.g.. TXT), which comprises a standard record type such that the network infrastructure (e.g., the access controller 1 12) will not block the request.
  • the credential request is received by the I)NS server 1 10 which may forward the credential request to the credential server 1 16 for the network credential.
  • the credential server 1 16 may perform a lookup to determine the proper network credcntial(s) to send back to the DNS server 1 10 which forwards the network credential back to the requesting digital device 102.
  • the proper network crcdential(s) are sent from the credential server 1 16 to the digital device 102 over the same path as the transmission of the credential request.
  • the credential request may be forwarded through any number of servers, including but not limited to DNS servers, prior to being received by the credential server 1 16.
  • the credential request is forwarded directly from the network device 104 to the credential server 1 16.
  • a credential request response from the credential server 1 16 may comprise the usemamc. password, and/or login procedure information.
  • the login procedural information may comprise, for example. HTML form element names, a submission URL. or a submission protocol.
  • the network credential response may be encrypted by the credential server 1 16 using an encryption key associated with the digital device 102 prior to transmission back to the digital device 102.
  • the digital device 102 may submit the network credential (retrieved from the network credential response) to the network device 104 in an authentication response.
  • the authentication response may be forwarded to an authentication server 108 for verification.
  • the authentication server 108 may comprise an ⁇ A ⁇ server or RADIUS server. More details regarding the process for obtaining network aceess arc provided in co-pending U.S. patent application Ser. No. 1 1/899.638, entitled “System and Method for Obtaining Network Access.. " filed Sep. 6. 2007. and incorporated by reference herein.
  • KIG. 1 is exemplary. Alternative embodiments may comprise more. less, or functionally equivalent components and still be within the scope of present embodiments.
  • the functions of the various servers e.g.. DNS server 1 10, credential server 1 16, and authentication server 108, may be combined into one or two servers. That if. for example, the authentication server 108 and the DNS server 1 10 may comprise the same server, or the functionality of the authentication server 108. the DNS server 1 10, and the access controller 1 12 may be combined into a single device.
  • the credential server 1 16 comprises an authentication module 200. a network module 202, a credential request module 204. a credential request response module 206, an encryption/decryption module 2OS. a network record storage 210, and an encryption key storage 212.
  • a module may comprise, or in combination, software, hardware, firmware, or circuitry.
  • the authentication module 200 may be configured to authenticate the credential request and provide security to (he credential request response.
  • the digital device 102 may encrypt or digitally sign the credential request using an encryption key (e.g., a shared encryption key or an encryption key that is a part of a key pair).
  • the authentication module 200 may authenticate the credential request by decrypting the credential request with the proper encryption key retrieved from the encryption key storage 212.
  • the digital device 102 generates a hash of the credential request and stores the hash within an encrypted portion of the credential request.
  • the authentication module 200 may decrypt the credential request, generate hash of the credential request response, and compare the generated hash to the hash contained within the credential request for authentication.
  • the digital device 102 may generate a nonce (i.e.. a random value) and store the nonce within a portion of the credential request that is digitally signed.
  • the authentication module 200 may decrypt the digital signature to authenticate the credential request and retrieve the nonce.
  • the credential request response module 206 when the credential request response module 206 generates the credential request response (described herealier), the authentication module 200 may include the nonce within the credential request response.
  • the authentication module 200 or the encryption/decryption module 208 may then encrypt the credential request response.
  • the digital device 102 may retrieve the nonce from the credential request response and compare the nonce to the nonce that was transmitted within the credential request for further authentication.
  • the network module 202 may be configured to receive the credential request and transmit the credential request response over the communication network 1 14.
  • the credential request module 204 may receive the credential request from the network module 202.
  • the credential request may be a standard protocol.
  • the credential request is a UDP protocol (e.g.. DNS).
  • the credential request module 204 may retrieve the UI)ID and the SSlD from the credential request.
  • the DDlD may identify the digital device 102. the user of the digital device 102. and/or the user associated with a network record.
  • the SSID may identify the hotspot or the service provider (i.e.. operator) of the hotspot.
  • the credential request module 204 or the credential request response module 206 may identify a network record based on the DDlD and the SSID.
  • ⁇ network record is a record associated (either directly or indirectly (e.g., a relational database)) with the DDlD and the SSID.
  • a network record contains network credentials necessary to provide network access to a digital device 102 associated with the DDlD at the hotspot associated wiih the SSID.
  • Network records may be stored within the network record storage 210.
  • the credential request response module 206 may generate the credential request response.
  • the credential request response module 206 receives the network credential associated with the DDlD and SSID from the network record.
  • the network credential may comprise a credit card number.
  • the digital device 102 receives the network credential, retrieves the credit card number, and provides the credit card number to the authentication server 108.
  • the authentication server 108 may then charge a fee to a credit card associated with the credit card number or use the information to confirm the identity of the user prior to granting network access.
  • the network credentials may comprise login procedural information.
  • the credentials include a username and password which are t ⁇ be provided within a form (e.g.. an authentication form) retrieved from the authentication server 108 by the digital device 102.
  • the login procedural information may instruct the digital device 102 to populate specific fields within the form with the network credentials before submitting the completed form to the authentication server 108.
  • the credential request response module 206 or the encryption/decryption module 208 may encrypt the credential request response with an encryption key associated with the I)DID or the credential request.
  • the credential server 1 16 stores one or more shared encryption keys. Hach shared encryption key may be shared by at least one digital device 102.
  • the credential request response module 206 may encrypt the credential request response with the shared encryption key associated with the digital device 102 (e.g.. the shared encryption key may be associated with the DDH)).
  • the credential request response module 206 or the encryption/decryption module 208 may also encrypt the credential request with an encryption key that is part of a key pair. There may be many ways in which the encryption/decryption module 208 encrypts the credential request.
  • the encryption/decryption module 208 may decrypt the credential request and encrypt the credential request response. As previously discussed, the encryption/decryption module 208 may decrypt the digital signature of the credential request. In one example, the encryption/decryption module 208 decrypts the digital signature based on an encryption key- that is associated with the DDID contained within the credential request. The encryption/decryption module 208 may also encrypt the credential request response. In one example, the encryption/decryption module 208 encrypts the credential request response based on an encryption key associated with the DDID (e.g., a shared encryption key or an encryption key that is part of a key pair).
  • an encryption key associated with the DDID e.g., a shared encryption key or an encryption key that is part of a key pair.
  • the encryption/decryption module 208 may encrypt the network records contained within the network record storage 210 and manage the encryption key storage 212.
  • the encryption/decryption module 208 may also establish secure communications (e.g., via SSl. and HfI PS) with a digital device when storing network credentials. This process is further described in FlG. 7.
  • the encryption/decryption module 208 may be optional.
  • the network record storage 21 ⁇ and the encryption key storage 212 may store network records and encryption keys, respectively.
  • the network record storage 210 and the encryption key storage 212 may comprise one or more databases.
  • the network record storage 210 may store network records.
  • ⁇ network record may comprise a DDlD. SSID. and network credentials.
  • the network record may also comprise a username and password tor the user to access, alter, update, or store network records within the credential server I 16
  • the network record may also allow multiple digital devices 102 to use the same network credentials
  • the user may own multiple digital devices 102. Multiple DDlDs. each DDID associated with a different digital device 102, may be included in the same network record.
  • multiple devices may be associated with one or more network records, and the one or more network records arc associated with a user. ⁇ s a result, the user may retrieve the network credentials for a hotspot using any number of digital devices 102 Those skilled in the art will appreciate that there are many ways in which the network records and/or the information contained therein may be stored and organized (e.g., different data structures, databases, records, organizing schemes, and/or methodologies).
  • FIG. 3 is a How diagram of an exemplary process for providing network access to the digital device 102.
  • the digital device 102 may scan for the local area network 106 in step 300.
  • the network device 104 may provide network configuration information in step 302.
  • the network configuration information may comprise one or more IP addresses for access to the DNS server 1 10.
  • a credential request is generated by the digital device 102 Subsequently, the credential request may be sent to the DNS server 1 10 in step 306 using one of the IP addresses previously received from the network device 104.
  • the credential server 1 16 is identified by the DNS server 1 10 in step 308.
  • the DNS server I 10 forwards the credential request to the credential server 1 16.
  • the credential request is forwarded to another DNS server on the communication network 1 14 (e.g., over port 53) which may then forward the credential request to the credential server 1 16.
  • the credential request is forwarded, cither directly or indirectly through one or more other DNS servers on the communication network 1 14, to the credential server I 16 in step 310.
  • the credential server 1 16 identifies the network credential needed based on the credential request in step 312.
  • the credential request may comprise an identifier (i.e.. the DDlD) for the digital device 102 as well as an identifier for the hotspot SSlD (e.g., the service provider such as an operator).
  • the identifiers may be compared against a table (e g.. network record) of such identifiers by the credential request module 204 or the credential request response module 206 to determine the proper network credential.
  • ⁇ credential request response is then generated by the credential request response module 206 in step 314 and relayed back to the DNS server 1 10 in step 316.
  • the DNS server 1 10 forwards the credential request response back to the digital device in step 318.
  • the digital device 102 may then retrieve the network credentials from the credential request response in step 320.
  • the network credential may then be provided to the network device 104 in step 322.
  • the network device 104 Upon verifying the network credentials, the network device 104 provides network access to the digital device 102 in step 324.
  • the credential request module 204 may generate the credential request 400.
  • the credential request 400 may be a DNS string having a structure that comprises a location identifier 402. a sequence identifier 404, a signature 406, the DDID 408, a service set identifier (SSlD) 410. and a version identifier 412
  • the optional location identifier 402 may indicate a phy sical or geographic location of the digital device 102. the network device 104. the authentication server 108. or the access controller 1 12. In various embodiments, the location identifier 402 may be used by the credential server 1 16 to track the usage of hotspots. users of the digital device 102, as well as the digital device 102.
  • the sequence identi Her 404 may comprise any number or set of numbers used to correspond to a subsequent request to the credential server 1 16 to determine if the login is successful. That is. the sequence identifier 404 provides a correlation mechanism by which verification of the login process may be made by the credential server 1 16.
  • the signature 406 comprises a cryptographic signature (i.e.. digital signature) that is utilized to prevent spoofing. The signature 406 of the request from digital device 102 is verified by the credential server 1 16. If the signature 406 is not valid, then the request is rejected by the credential server 1 16.
  • the DDlD 408 comprises an identifier of the digital device 102.
  • the DDID 408 may comprise a M ⁇ C address or any other identifier of the digital device 102.
  • the SSID 410 comprises an identifier of the network access point or Wi-Fi service provider.
  • the SSID 410 may comprise the name of the service provider or the name of the venue operating the network device 104.
  • the version identifier 412 may identify the protocol or format of the credential request 400.
  • a digital device 102 may generate the credential request 400 and organi/e the data in a number of different formats. Each different format may be associated with a different version identifier.
  • the components of the credential request response module 206 may be updated, reconfigured, or altered over lime, which may affect the structure of the credential request 400.
  • the credential server 1 16 may receive a plurality of credential requests 400 which are formatted differently. The credential server 1 16 may access the required information from each credential request based on the respective version identifier.
  • the credential request response module 206 may generate lhe credential request response 500.
  • the credential request response 500 may comprise encrypted text 502.
  • the encrypted text may comprise an optional nonce 504 and credential information 506.
  • the credential information may comprise key/value pairs 508 through 510
  • the credential request response may be formatted as a DNS response comprising encrypted text 502.
  • the encrypted text 502 includes the network credentials (e.g . uscmame. password, and login procedure information).
  • the credential request response 500 is depicted as including encrypted text 502. the text within the credential request response 500 need not be encrypted.
  • the encrypted text 502 may comprise the nonce.
  • the nonce as previously discussed, may be retrieved from the credential request. Once the credential request response 500 is received by lhe digital device 102. the digital device 102 may compare the nonce within the credential request response 500 to the nonce transmitted within the credential request for authentication. Although the nonce is depicted as within the credential rec ⁇ iest response 500 in FlG. 5. the nonce is optional.
  • the credential information 506 may comprise a username, password, login procedure information, or a combination of these.
  • the credential information 506 may comprise key/value pairs 508 through 510. Any number of key/value pairs may be within the credential information 506.
  • the key/value pairs may represent the credential information to be received and translated by the digital device 102.
  • the credential information 506 is depicted as key/value pairs for exemplary purposes only; the credential information may be within any format not necessarily limited to key/value pairs.
  • step 602. the credential server 1 16 receives the credential request from the digital device 102.
  • the credential server 1 16 decrypts and authenticates the digital signature with an encryption key.
  • the credential server 1 16 may then identify a network record based on the UDlD and the SSlD contained within the network record in step 604.
  • the credential request response module 206 retrieves one or more network records associated with the DDIl) within the credential rec ⁇ iest.
  • the credential request response module 206 then identifies at least one network credential associated with the SSlD within the retrieved network record(s).
  • the credential request response module 206 retrieves the identified network arbitr ⁇ uial(s) from the selected network record. In one example, the credential request response module 206 identifies a username and password that the user of the digital device 102 must provide to the authentication server 108 to obtain network access. The credential request response module 206 generates the credential request response comprising the network credentials (e.g.. username. password) to the digital device 102 in step 608.
  • the network credentials e.g. username. password
  • the credential request response module 206 may identify login procedural information as part of the network credentials.
  • the credential request response module 206 may retrieve the login procedural information from the network record (e.g.. the same network record containing a password associated with the SSID).
  • the login procedural information may contain a form identifier and instructions (e.g.. parameters) for the digital device 102 to follow to obtain network access.
  • the digital device 102 retrieves the form identifier and instructions from the network credential within the credential request response.
  • the digital device 102 may identify forms received from the authentication server 108 and input data based on the form identifier and instructions.
  • the digital device 102 provides information to the authentication server 108 to obtain network access based on the login procedural information included within the credential request response.
  • the process of providing information to the authentication server 108 is further described in U.S. patent application Ser. No. 1 1/899.638 entitled “Systems and Methods for Obtaining Network Access", filed Sep. 6. 2007.
  • FIG. 7 is another flow diagram of the exemplary method for providing network credentials.
  • the digital device 102 may search and find an available wireless network via the network device 104. While connecting to the hotspot, the digital device 102 may receive network configuration information in step 702. Network configuration information may comprise an identifier for the network device 104, or the DNS server 1 10. In one example, the digital device 102 receives a DNS server IP address (e.g., for the DNS server 1 10) during the connection process.
  • a DNS server IP address e.g., for the DNS server 1
  • the digital device 102 generates the credential request.
  • the credential request maj comprise a sequence identifier. DDlD, and SSID.
  • the digital device 102 optionally generates a nonce and digitally signs the credential request with an encryption key.
  • the digital device 102 transmits the credential request as a standard protocol in step 708.
  • the network device 104 may receive and forward the credential request to the communication network 1 14.
  • the network device 104 may provide the credential request io the DNS server 1 10 which may forward the credential request to the credential server 1 16.
  • the credential request module 204 of the credential server 1 16 receives the credential request.
  • the credential request module 204 may retrieve an encryption key associated with the DDID within the credential server from the encryption key storage 212.
  • the credential request module 204 may then decrypt the digital signature of the credential request for authentication.
  • the credential request module 204 may further retrieve the nonce and a sequence identifier from the credential request.
  • the credential request response module 206 oi the credential server 1 16 may then retrieve a network record associated with the DDID and the SSID from the network record storage 210.
  • the credential request response module 206 retrieves network credentials from the network record and generates the credential request response.
  • the credential request response may comprise the network credentials and the nonce.
  • the encryption/decryption module 208 may encrypt the credential request response with an encryption key associated with the DDID retrieved from the encryption key storage 212.
  • the credential request response is formatted as a standard protocol (e.g., DNS).
  • the digital device 102 receives the credential request response.
  • the digital device 102 subsequently authenticates the credential request response in step 712.
  • the digital device 102 decrypts the credential request response with the same encryption key used to digitally sign the credential request.
  • the digital device 102 may further retrieve the nonce within the credential request response and compare the nonce to the nonce transmitted within the credential request for further authentication. If the credential request response is found to be authentic, the digital device 102 retrieves the network credentials from the credential request response in step 714.
  • the digital device 102 identifies the authentication requirements associated w ith network access. In various embodiments, the digital device 102 determines the correct information and network credentials to provide to the authentication server 108. In one example, the digital device 102 retrieves one or more network access pages from the authentication server 108. The digital device 102 may access the correct network access page from the authentication server and automatically make selections. In one example, the digital device 102 may automatically activate selections (e.g.. activate buttons within the network access page, check boxes, and select radio buttons).
  • selections e.g. activate buttons within the network access page, check boxes, and select radio buttons.
  • the credential request response module 206 may provide instructions to the digital device 102 for the automatic selections within a network access page.
  • a network access page may comprise one or more web pages., one or more tags, or a combination of both retrieved from the authentication server 108.
  • software within the digital device 102 may automatically check all selection boxes within a network access page. The digital device 102 may then uncheck select boxes based on the login procedure information. Those skilled in the art will appreciate that there may be many methods with which selections may automatically be made.
  • the digital device 102 receives XMI. tags from the authentication server 108. The digital device 102 may provide information based on the XMl. tags and instructions within the login procedural information to the authentication server 108 to obtain network access.
  • the digital device 102 provides the network credential to the network device 104 to obtain network access to the communication network 1 14.
  • the credential request response module 206 retrieves one or more Forms from the authentication server 108. populates the lo ⁇ s with one or more network credentials, and provides the completed forms to the authentication server 108.
  • the credential rec ⁇ iesl response module 200 provides the network credentials as needed to the authentication server 108. Once the network credentials are received by the authentication server 108, the authentication server 108 may allow communication between the digital device 102 and the communication network 1 14. In one example, the authentication server 108 commands the access controller 1 12 to allow the digital device 102 access to the communication network 1 14.
  • the digital device 102 may subsequently test network connectivity to confirm network access.
  • the digital device 102 transmits a request to the credential server I 16 to determine if the communication network 1 14 is available.
  • the query or command contains the sequence identifier previously submitted within the credential request. If network access is successful, the credential server 1 16 may receive the request and retrieve the sequence identifier. The credential server I 16 may then confirm that network access was successful.
  • FlG. 8 is a How diagram oi an exemplar) method for receiving and storing network credentials.
  • users may create and store network records within the credential server 1 16.
  • the credential server 1 16 may comprise a credential storage module (not depicted) that provides a graphical user interface (GUI) that allows users to create, store, update, remove, and modify network records.
  • GUI graphical user interface
  • the credential server 1 16 provides the user with a network credential request form.
  • the credential server 1 16 provides the network credential request form to a user as one or more web pages over the Internet.
  • the network credential request form is configured to receive the service provider's name (e.g., operator's name) and/or SSID and network credentials.
  • the service provider's name may comprise the name of the entity that operates the hotspoi. one or more components related to the hotspot (e.g.. the network device 104). or the infrastructure of the local area network 106.
  • the service provider's name comprises the name of an organization that manages one or more hotspols for another service provider. In one example, a coffee shop and bookstore may both use a third-party manager to manage the hotspots. even if the hotspots have different service providers.
  • the network credential request form may be configured to receive the third-party manager's name.
  • the service provider's name comprises the name of an organization that resells access to a hotspot network (e.g., an aggregator).
  • the network credential request form may also receive the SSlD as a network service selection.
  • the network credential request form comprises a pull down menu of different service providers and/or hotspots that the user may select. For example, a user may select "Starbucks" or "San Francisco International Airport" as a hotspol. The user may be given further options to such as geographic locations of the hotspol.
  • the user may also select the service provider. For example, the user may select "T-Mobile" as a service provider.
  • the network credential request form may then allow the user to select among one or more various hotspots associated with T-mobile.
  • the sclcction(s) may then be stored as a network record. Alternately, a network service identifier associated with the seleclion(s) is generated as the SSlD.
  • the network credential request form may receive the network credential from the user. For example, the user may enter a uscrname, password, passcode as network credentials within the network credential request form.
  • the network credential request form receives the SSID.
  • the network credential request form determines the type of network credentials required. For example, the network credential request form identities the information required to access a network at a holspot at the San Francisco International Airport previously selected by the user. The network credential request form then generates fields or selections to allow the user to enter only the information necessary (e g.. username, password) to obtain network access at the hotspot.
  • the credential server 1 16 may also require the user to register prior lo receiving the network credential request form. During registration, the user may be required to agree to terms of service and enter customer information. Customer information comprises a username and a password to access the credential server 1 16 to store network credentials. Optionally, the customer information may comprise the user's address, contact information, and payment options for the user lo use services offered by the credential server 1 16.
  • the credential server 1 16 receives the customer information and network service selections over the network credential request form.
  • the credential server may retrieve the network credential.
  • the credential server 1 16 receives the customer information.
  • the credential server 1 16 associates the network credeniial with the customer info ⁇ nation, network service selection and network crcdcntial(s) in sicp 810 to create a network record.
  • the network record is then stored in step 812. 1001081
  • the user may manually access the credential server 1 16 via the Internet. In other embodiments, the user may download and install network credential software on the digital device 102.
  • the network credential software may identify and send the DDlD of the digital device 1 U2 to the credential server 1 16.
  • the network credential software may be pre-inslalled on the digital device 102.
  • the network credential software may identify and send the UDlD of the digital device 102 to the credential server.
  • the network credential software may input the SSID (.e.g., identify the service provider or hotspots) into the network credential software.
  • the user may also input the network credentials within the network credential software.
  • the network credential software may upload the information to the credential server 1 16 w hich stores the information within a network record.
  • the network credential software may be downloaded from the credential server 1 16.
  • FIG. 9 is a block diagram of an exemplary digital device.
  • the credential server 1 16 comprise* a processor 900, a memory system 902. a storage system 904, an I/O interlace 906. a communication network interface 908. and a display interface 910.
  • 1 he processor 900 is configured to execute executable instructions (e.g.. programs).
  • the processor 900 comprises circuitry or any processor capable of processing the executable instructions.
  • the memory system 902 is any memory configured to store data. Some examples of the memory system 902 are storage devices, such as RAM or ROM. The memory system 902 can comprise the ram cache. In various embodiments, data is stored within the memory system 902. The data within the memory system 902 may be cleared or ultimately transferred to the storage system 904
  • the storage stem 904 is any storage configured to retrieve and store data Some examples of the storage system 904 are (lash drives, hard drives, optical drives, and/or magnetic tape.
  • the credential server 1 16 includes a memory system 902 in the form of RAM and a storage system 904 in the form of Hash data. Both the memory system 902 and the storage system 904 comprise computer readable media which may store instructions or programs that arc executable by a computer processor including the processor 900.
  • the optional input/output (I/O) interface 906 is any device that receives input from the user and output data.
  • the optional display interface 910 is any device that is configured to output graphics and data to a display. In one example, the display interface 910 is a graphics adapter. It will be appreciated thai not all digital devices 102 comprise either the I/O interface 906 or the display interface 910.
  • Hie communication network interlace (com. network interface) 908 can be coupled U) a network (e g.. the local area network 106 and communication network 1 14) via the link 912.
  • the communication network interface 908 may support communication over an Ethernet connection, a serial connection, a parallel connection, or an ATA connection, for example.
  • the communication network interface 908 may also support wireless communication (e.g.. 802.1 1 a/b/g/n, Wilvlax). It will be apparent to those skilled in the art that the communication network interface 908 can support many wired and wireless standards.
  • a wireless network is a network that allows wireless access between a digital device and a communication network such as the Internet.
  • a user of a wireless digital device creates an account on a web server and registers one or more digital devices (e.g., computers, laptops, personal digital assistants, and cell phones) with that account.
  • the registered digital devices can be managed and a network record provisioned by a central server (e.g.. a profile server or a credential server) via a network communication mechanism, such as HTfP.
  • a central server e.g.. a profile server or a credential server
  • a network communication mechanism such as HTfP.
  • NG. 10 is a diagram of another environment in which embodiments of the present invention may be practiced.
  • a user with a digital device 1002 enters an area located near the network devices 1004 and 1006.
  • the network devices 1004 and 1006 are separate access points which may each be used to establish communication between the digital device 1002 and the communication network 1008.
  • the digital device 1002 may scan the area surrounding the digital device 1002. detect the two network devices 1004 and 1006. and generate a list ol ' available wireless networks with which the digital device 1002 may establish communication.
  • the list ol ' available wireless networks comprises DDlD. SSID. and/or BSSlD identifiers of the network devices 1004 and 1006.
  • the digital device 1002 provides lhc list of available wireless networks to a rules server 1010.
  • the digital device 1002 provides the list of available wireless networks as a standard protocol over an open port of cither the network device 1004 or the network device 1006 to the communication network 1008 and, ultimately, to the rules server 1010.
  • the digital device 1002 provides the list of available wireless networks over another network such as a cellular communication network (e.g.. via CI)MA. GSM. 3Ci, or HVDO) or other wireless network (e.g., Wi-Fi. Wimax, or I -Tl-; network) not depicted.
  • a cellular communication network e.g. via CI
  • other wireless network e.g., Wi-Fi. Wimax, or I -Tl-; network
  • 0012()J l hc rules server 1010 receives the list ol ' available wireless networks and may retrieve a network profile for each wireless network identified within the list.
  • ⁇ network profile is a record that is associated with a wireless network and comprises attributes concerning performance and/or quality of service provided by the associated network.
  • the rules server 1010 identifies each network within the list and provides the SSID and/or BSSID for each network to the profile server 1014.
  • the profile server 1014 may then provide a network profile (based on the SSID and/or BSSID) for each network to the rules server 1010.
  • the profile server 1014 retrieves the network profile from a database or other server (e.g., network database server 1012).
  • the rules server 1010 may select a preferred wireless network from the list of available wireless networks based on attributes within the network profiles and/or any attributes received from the digital device 1002.
  • An attribute is a characteristic of a wireless network.
  • an attribute includes a performance metric, a shared indicator, or a service identifier.
  • a performance metric of a wireless network is any measure of network performance.
  • a performance metric may comprise a latency metric, a bandwidth metric, or a quality of service (QOS) metric.
  • QOS quality of service
  • a performance metric may include any type of metric ihat represents performance of a wireless network.
  • a latency metric is a measurement that represents time to send a packet of data from the digital device to a server on a network.
  • the digital device 1002 may send an ICMP "echo request" packet to a server and listen for an ICMP "echo response " reply
  • the latency metric may comprise an estimate of the round-trip time (generally in milliseconds) and/or include any packet loss.
  • the latency metric is hall ' of the estimated round-trip time.
  • bandwidth metric is a measurement of the available bandwidth of a wireless nelwork.
  • the digital device may test available bandwidth by sending a block of data over the wireless network to a server and timing the response.
  • QOS metric is any metric that measures the quality of service of the wireless network, the access device 1004. the access device 1006. and/or the communication nelwork 1008.
  • the QOS metric represents a reliability of the DHCP which is determined by timing the length of time required to get an IP address.
  • the reliability of the Dl-ICP may comprise a statistical measurement, a probability of receiving an IP address at all. and ⁇ or a distribution of lime.
  • shared indicator indicates it a wireless network is shared.
  • the shared indicator may be one of three states including "shared. " “not shared. " and “unknown " . .Although the shared indicator may only include a single state (e.g.. "not shared " ), those skilled in the art will appreciate that the shared indicator can have any number of states.
  • a wireless network with a shared indicator that indicates that the network is "shared " may indicate that the owner of the wireless network intends for others to use the nelwork.
  • One example of a "shared” network may include a wireless network which is intentionally “open “ (e.g., unencrypted) for others to use.
  • ⁇ wireless network with a shared indicator that indicates that the network is "not shared " ' may indicate that the owner of the wireless network does not desire anyone who docs not have express permission to access the network.
  • wireless networks that are not shared are oflen intentionally encrypted (e.g., through ⁇ V ⁇ P or WPA) so as to limit access to unauthorized users. Not all networks thai are "not shared, " ' however, are encrypted. IOr example, the owner of the network may misconfigure the nelwork device or, through error, allows a network to be open (i.e.. unencrypted) even though the network is nol intended to be shared.
  • ⁇ w ireless network with a shared indicator that indicates that the network is "unknown "" may indicate that the wireless network may cither be "shared " or “not shared.” For example, the intent of the owner of an open network may not be known.
  • ⁇ service identifier may identify one ⁇ r more services supported by the wireless network. In one example, one or more service identifiers indicate that a wireless network supports VOIP, teleconferencing, and/or video conferencing. The service identifier may identify any kind of service supported by the wireless network. In some embodiments, the service identifier may identify services that arc not supported by the wireless network.
  • the network profile may comprise any number of attributes Further, those skilled in the art will appreciate that the network profile may comprise only one or more performance metrics, only one shared indicator, or only one or more ser ⁇ ice identifiers.
  • the rules server 1010 selects one or more w ireless networks from the list of available wireless networks based on the attribute analysis.
  • the rules server 1010 applies rules to the attributes.
  • the rules may comprise minimum requirements, personalized settings, and attribute comparisons.
  • the rules applied by the rules server 1010 may compare the attributes of one or more wireless networks to one or more minimum requirements. If the attributes for a wireless network are below the minimum requirements, then the wireless network may not be selected or removed lrom the list of available wireless networks.
  • the rules applied by the rules server 1010 may be based on personalized settings by the user.
  • the user of the digital device 1002 may indicate personalized settings that indicate that the digital device 1002 is only to connect over wireless networks that have been designated as "shared.”
  • the rules server 1010 may select only those wireless networks with an attribute that comprises a shared indicator that identifies the wireless network as "shared.”
  • the rules applied by the rules server 1010 may be based on a comparison of the attributes of one wireless network to another
  • the attributes may indicate that one wireless network has a greater bandwidth and shorter latency than another.
  • the rules server 1010 may select one wireless network that has belter performance or valuable services in comparison to another.
  • there may be any kind of rule used to select or to assist in the selection of a wireless network from the list of available wireless networks.
  • More than one rule may be applied by the rules server 1010 in making the wireless network selection.
  • the rules server 1010 may apply personalized settings of the user before comparing attributes from different wireless networks and making a selection, In another example, the rules server 1010 may apply minimum requirements to the attributes before comparing the attributes.
  • a wireless network selection includes one or more identifiers (e.g.. network identifiers) that identify at least one wireless network.
  • the wireless network selection may identify a single wireless network or comprise a sorted list of wireless networks which is sorted in order of preference.
  • the rules server 1010 provides credentials (e.g.. a credential request response) for the selected wireless network in addition to the wireless network selection to the digital device 1002.
  • the rules server 1010 provides the selected wireless network to the credential server 1016 which then provides a credential request response (even though no credential request has been made) for the selected wireless network to the digital device 1002.
  • the digital device 1002 receives the wireless network selection and then proceeds to transmit a credential request to the credential server 1016 to receive the credentials as discussed herein.
  • the digital device 1002 attempts to establish a connection based on the selected wireless network. If the connection fails, the digital device 1002 may transmit a credential request to the credential server 1016 to retrieve credentials for network access as described herein. The digital device 1002 may provide the credential request to the credential server 1016 over an open port of the network device 1004. In another example, the digital device 1002 may provide a credential request over any other network including a connection with a different network device or over a cellular connection.
  • the rules server 1010. network database server 1012. profile server 1014. the credential server 1016. and the web server 1018 are depicted as separate servers in Fig. 1. the servers may all be combined as one or more servers. Similarly, the functions of any of the servers may be performed by one of the other servers depicted or any other server.
  • FIG. 10 depicts multiple servers (e.g., rules server, network database server, profile server, credential server, and web server) for performing the selection of a wireless network from the plurality of available wireless networks, it will be appreciated by those skilled in the art that the selection of the wireless networks may occur within the digital device 1002.
  • the digital device 1002 retrieves the scan results listing available wireless networks and selects a wireless network based on configuration preferences. The configuration preferences may be based on one or more locally executed rules, preferred signal strength, or any other attribute or attributes.
  • the digital device 1002 selects a wireless network that supports a desired service (e.g., VOIP), meets a minimum latency standard, and meets a minimum QOS standard.
  • the profile server 1014 provides the desired network profiles to the digital device 1002 which perforins the analysis to determine the preferred wireless network.
  • FIG. 1 1 is a fiow diagram of an exemplary process for providing a selection of a wireless network
  • a server e.g.. rules server 1010. network database server 1012. profile server 1014. credential server 1016, or web server 1018, receives a list of available wireless networks from the digital device 1002.
  • the lisl comprises the SSIDs or BSSIDs of one or more network devices (e.g., network device 1 004 and network device 1006).
  • the lisl can comprise any information that identifies a network and/or network device.
  • the server also receives one or more attributes associated with a network and/or network device.
  • the digital device 1002 measures signal strength, determines available services, or lakes a performance metric for one or more networks and/or network devices that are identified on the list of available wireless networks.
  • step 1 104 the server retrieves a network profile from a plurality of network profiles stored in a network database for each available wireless network on the lisl of available wireless networks.
  • Bach network profile may comprise at least one attribute. In some embodiments, not all wireless networks on the list have a network profile. When a network profile for a wireless network on this list is nol found, a network profile associated with the wireless network may be then created. If attributes are received from the digital device 1002. the server may determine which attribute received from the digital device 1002 is associated with which network, network device, and/or network profile.
  • step 1 106 the server compares attributes from each network profile against minimum requirements.
  • the server compares latency metrics from all network profiles in the list (if available) against a minimum latency metric.
  • the server may also compare attributes received from the digital device 1002 against the minimum requirements.
  • the server removes one or more wireless networks from the list of available wireless networks and/or wireless nciwork profiles based on the comparison(s). For example, any wireless network with a latency metric that tails below the minimum latency metric may not be selected.
  • a wireless network with a latency metric that falls below the minimum latency metric may receive a weighted value that will be compared to other wireless networks to assist in the selection process.
  • the user of the digital device 1010 determines the minimum requirements. In other embodiments, the minimum requirements may be selected lor the user (e.g.. by an administrator).
  • the server retrieves personalized settings for a user.
  • the personalized settings may be sent by the user to the server.
  • the user has an account with the web server 1018 which contains the personalized settings.
  • the server receives a user identifier along with the list of available wireless networks The server then accesses the user's account and receives the personalized settings which are then applied to the attributes of the network profiles associated with a wireless network on the list.
  • users may configure personalized settings (e.g., the "aggressiveness") at which a digital device 1002 may connect to a wireless network.
  • Such configurations could include:
  • the server removes one or more wireless networks from the list or network profiles based on the personalized settings.
  • the personalized settings may indicate that the user only wishes to connect to wireless networks that support videoconferencing and maintain a user defined QOS requirement.
  • the server may then remove any wireless networks from the list of available wireless networks based on the attributes either from the network profiles or recently received from the digital device 1002 that do not meet the user's personalized settings.
  • the personalized settings may then be taken into account either before or after comparison of attributes from the network profiles.
  • personalized settings indicate that the user does not wish to connect to a wireless network that is not designated as "shared " or providing certain services.
  • the rules server 1010 either does not retrieve the network profiles associated with networks that do not provide the necessary service and/or does not compare attributes associated with those networks.
  • the digital device 1002 applies personalized sellings to results (e.g., the wireless network selection) received from the rules server 1010 before accessing a preferred wireless network.
  • step I 1 14 the server compares the attributes of the remaining wireless networks on the list.
  • the server will apply a weight and normalize one or more of the attributes (e.g., metrics) from within the network profiles.
  • older attributes may be removed or weighed less than other attributes that are newer.
  • any metric that is over one week old may receive less weight than a similar newer metric.
  • a metric that is over one month old may be removed from the network profiles or not considered in the comparison.
  • the rules server 1010 makes a wireless network selection based on comparing a metric from two different network profiles. In some embodiments, the rules server 1010 selects a wireless network based on a comparison between two similar metrics (i.e., the latency metric from the first network profile is compared to the latency metric from the second network profile). Those skilled in the an will appreciate that the rules server 1010 may select a wireless network based on comparisons between two similar recently received metrics or a recently received metric and another within a network profile.
  • the rules server 1010 selects a wireless network based on a comparison of two dissimilar metrics (i.e., the latency metric from the first network profile is compared to a bandwidth metric from the second network profile).
  • the rules server 1010 may execute an algorithm to weigh and normalize similar and/or dissimilar metrics or attributes in order to make a comparison for selecting the appropriate wireless network.
  • the rules server 1010 compares a latency metric in the first network profile to a bandwidth metric in the second network profile.
  • the rules server 1010 may execute an algorithm to weigh and normalize the metrics. The algorithm may weigh the latency metric more than the bandwidth metric since latency may have a greater impact on network performance.
  • a latency metric may receive a given weight when the metric falls within an acceptable range, otherwise the latency metric may be significantly less weight.
  • ⁇ metric rcccntl received from the digital device 1002 may receive greater weight than a metric of a similar type within a network profile.
  • step 1 1 16 the ser ⁇ er .selects a wireless network based on the comparison of attributes " I he wireless network selection may comprise a single preferred wireless network or a list o ⁇ ' wireless networks sorted in order of preference.
  • the rules server 1010 identifies the most preferred network, the second most preferred network, and so on. I he rules server 1010 then provides the wireless network selection to the digital device 1002 in step 1 1 18.
  • the rules server 1010 only compares metrics that are recently received from the digital device 1002.
  • two latency metrics are received from the digital device 1002.
  • Hach latency metric is associated with a separate wireless network identified on a list of available networks.
  • the rules server 1010 ⁇ na> select a wireless network based on a comparison of the two attributes.
  • FIG. 12 is a flow diagram of an exemplary process for selecting a wireless network.
  • the digital device 1002 enters into an area with two wireless networks and the digital device 1202 scans for networks to access.
  • the digital device 1002 receives a first and a second network identifier of available wireless networks.
  • the first and second network identifiers may comprise BSSl Ds. SSIOs, or any other network identifiers
  • the first network identifier may comprise a BSSII) and the second network identifier may comprise an SSID identifier.
  • the first network may provide multiple identifiers including a BSSID and an SSID while the second network provides only an SSlD.
  • the first network identifier may comprise both the BSSlD and the SSlD of the first network device while the second network identifier is only an SSlD of the second network device.
  • the digital device 1002 generates a list of available wireless networks. For example, the digital device 1002 may generate a list comprising the first network identifier and the second network identifier. The list is then provided to a server in step 1208.
  • the digital device 1002 receives a wireless network selection from the server.
  • the wireless network selection may comprise an identifier that identifies the selected wireless network or identifies the network device associated with the selected wireless network (e.g.. a BSSID and/or SSlD of the network device).
  • the wireless network selection may comprise a list of wireless networks sorted bv preference. The list may comprise two or more identifiers that identifies a selected wireless network or network device
  • the digital device 1002 receives credentials for the wireless network selection from the .server.
  • the credentials are received from the same server that received the list of available wireless networks from the digital device 1002.
  • the digital device 1002 receives the wireless network selection from the server and then provides a credential request to receive the credentials for the desired network.
  • the digital device 1002 provides the credential request in the same manner that the digital device 1002 provided the list of available wireless networks (e.g.. over an open port of a network).
  • the preferred network does not require credentials or the credentials are stored locally on the digital device 1002.
  • step 1214 the digital device 1002 accesses the selected wireless network with the credentials.
  • the process of applying the credentials to a login page or the like is discussed herein.
  • the digital device 1002 may provide the list of available wireless networks to the server over an open port of a network device in a manner similar to providing a credential request discussed herein. In other embodiments, the digital device 1002 may provide the list to the server over another network. In one example, the digital device 1002 generates a list of available Wi-Fi networks and provides the list over a cellular network (e.g.. 1' " V-DO or FlSDPA network). In this example, the wireless network selection may be returned to the digital device over the cellular network and then the digital device 1002 may attempt to access the preferred Wi-Fi network.
  • the digital device 1002 can then provide a list of the available wireless networks to the server.
  • the server may return the wireless network selection to the digital device 1002. If the preferred wireless network is not the network that the digital device 1002 has originally accessed, then the digital device 1002 may drop the connection and access the preferred wireless network.
  • the digital device 1002 receives a list of available wireless networks, determining a wireless network selection, and providing the selection to the digital device 1002. those skilled in the art will appreciate that a server is not necessary.
  • the digital device 1002 generates a list of available wireless networks and then retrieves available information regarding the networks on the list (c.g , from locally stored network profiles, from one or more network devices, from a local or remote database, and ' Or retrieving information from another network such as the Internet). The digital device 1002 may then make comparisons based on what attributes associated with the networks are available to make a selection or generate a prioritized list. The digital device 1002 may then access the selected wireless network.
  • the digital device 1002 may generate and provide attributes regarding one or more networks to update the network profiles.
  • the digital device 1002 determines the quality of the signal, bandwidth, or any other metrics and provides those metrics along w ith the list of available wireless networks to a server.
  • the digital device 1002 accesses a selected wireless network, measures attributes, and provides the attributes update metrics within a network profile. Attributes (c g., latency metrics, bandwidth metrics, and QOS metrics) may be taken by the digital device 1002 at any time and used to update the network profiles.
  • FIG. 13 is a diagram for selecting a wireless network and accessing the selected wireless network.
  • the network device 1004 and network device 1006 provide a first and second network identifiers to the digital device 1002 in steps 1302 and 1304.
  • the digital device 1002 generates metrics (i.e.. attributes) by taking measurements regarding wireless networks associated with the network device 1004 and network device 1006.
  • the metrics may include latency, strength of signal, or QOS metric.
  • the digital device 1002 generates a list of available wireless networks which may include the network identifier from the network device 1004 as well as the network identifier from the network device 1006.
  • the digital device 1002 may also comprise personalized settings which may indicate a preference between the two network identifiers or eliminate one or both of the network identifiers.
  • the personalized settings indicate that only open networks that do not have a default manufacturer SSID (e.g.. "linksys”) may be accessed.
  • the network identifier from the network device 1004 indicates a default manufacturer SSlD. the digital device 1002 may not include that network identifier for the network device 1004 in the list of available wireless networks. .
  • the digital device 1002 if the digital device 1002 cannot generate a list identifying at leaM two or more networks, the digital device 1002 does not send the list. In one example, if the digital device 1002 can only identify one available wireless network that meets the user's requirements, then the digital device 1002 may attempt to access the wireless network directly or send a credential request for to a server to retrieve any necessary credentials for access.
  • the digital device 1002 provides the attributes and the list of available wireless networks over an open port (e.g.. port 53) of the network device 1006 which acts like a proxy in providing the attributes and list of available networks to the rules serve i 1010.
  • the digital device 1002 provides the attributes and the list over an open port of the network device 1004.
  • the digital device 1002 may provide the attributes and the list over separate networks (e.g., the attributes over an open port of one of the network devices and the list over a cellular network).
  • the network device 1006 acts as a proxy by providing the attributes and list via DNS to the rules server 1010
  • the rules server 1010 retrieves network profiles.
  • the rules server 1010 retrieves the network identifiers from the list and retrieves network profiles associated with the network identifiers.
  • the rules server 1010 updates attributes within the network profiles with the attributes received from the digital device 1002.
  • a new latency metric from the digital device 1002 is used to update the network profile associated with the network identifier from the network device 1004.
  • ⁇ time-to-live value associated with the attribute may also be updated to indicate that the new latency metric is recent.
  • In step 1318. lhe rules server 1010 sclcets a network device based ⁇ n comparing the attributes from within the network profiles.
  • the rules server 1010 also applies personalized settings from the digital device 1002 or from an account associated with the digital device 1002 (e.g., via the web server 1018) before making a selection.
  • the rules server 1010 may prepare a prioritized list of the two network devices from the list provided by the digital device 1002 The list is prioritized based on which of the two network devices provides the most desirable service based on the metrics from the network profiles.
  • the rules server 1010 provides the wireless network selection and credentials via DNS back to the network device 1006 to function as a proxy to send the information to the digital device 1002.
  • the rules server 1010 selects the network device 1004.
  • the rules server 1010 may retrieve credentials for the network device 1004 based on the network identifier of the network device 1004.
  • the rules server 1010 may provide a credential request to the credential server 1016.
  • the credential server 1016 may provide a credential request response containing necessary credentials to the rules server 1010 w hich then sends both the credentials received from the credential server 1016 a.s v ⁇ el I as the wireless network selection to the digital device 1002.
  • step 1 322 then network device 1006 provides the network selection and the credentials ovei the open porl to the digital device 1002.
  • step 1324. the digital device 1002 provides the credentials to access the network device 1004 and generates additional attributes regarding the network (i.e.. lake additional measurements)
  • the new attributes are provided to the rules server 1010 or profile server 1014 to update the network profile associated with the network device 1004 in step 1326.
  • the digital device 1002 may measure the time required to establish the connection with the network device 1004. The time required to establish the connection may then be used to update attributes in a network profile. If a connection is not established or fails, that information may also be provided to update the associated network profile.
  • the digital device 1002 may re-attempt to make the connection. I f multiple attempts to make the connection fail, information regarding the failure is sent to update the associated network profile. The digital device 1002 may then attempt to make a connection with another network device (e.g.. the network device 1006). In some embodiments, the digital device 1002 re-scans the area, generates a new list of available networks which may not include the network thai the digital device 1002 failed to connect. The new list may be sent to the rules server 1010 to receive a new wireless network selection and the process may repeat.
  • lhc rules server 1010 provides a prioritized list of available wireless networks sorted by preference.
  • the rules server 1010 provides a prioritized list of three networks to the digital device 1002. The digital device 1002 may then attempt to access the first wireless network on the prioritized list. If the digital device 1002 is unable to connect to the first wireless network, then the digital device 1002 may proceed to attempt to connect to the next network on the list.
  • the prioritized list may contain all. one, or some of the wireless networks identified in the list of available wireless networks.
  • the rules server 1010 may not identify wireless networks which are known to provide poor performance, do not provide desired service (e.g., VOIP service)., and/or are otherwise blacklisted.
  • the user of the digital device 1002 may override the wireless network selection to access any wireless network.
  • the user chooses the priority of available wireless networks.
  • the user may configure the digital device 1002 or configure an account with the web server 1018 to include personal preferences that may reorder or otherwise alter a prioritized list of wireless networks from the rules server 1010. For example, the list of available wireless networks may be altered based on user preferences by the digital device 1002 or the web server 1018 prior to being provided to the rules server 1010.
  • Wi-Fi networks in addition to one or more open Wi-Fi networks, there may also be one or more encrypted Wi-Fi networks in a given location.
  • ⁇ digital device 1002 ma connect to an open Wi-Fi network and transmit the SSlD of other Wi-Fi networks, including encrypted Wi-Fi networks, to the rules server 1010 via a network communication protocol such as HTlT.
  • the rules server 1010 may then determine, based on personalized settings or other rules, that an available encrypted Wi-Fi network is the preferred choice for a network connection.
  • the rules server 1010 may transmit the necessary encryption keys to the digital device 1002 over the current open Wi-Fi network connection and send instructions to the digital device 1002 to switch to the encrypted Wi-Fi network.
  • an SSID or other network identifier may be insufficient to identify network credentials necessary to access a network. For example, multiple networks may share or may potentially share the same SSID or other network identifier.
  • the credential server may provide network credentials for at least one of the networks with the SSID. If the digital device is unsuccessful in gaining access to the network, the digital device may submit a new credential request to the credential server. The credential server may then provide the network credentials tor a different network sharing the same SSlD. This process, in some embodiments, may continue until the correct network credentials are provided, a predetermined amount of time is expired, or a predetermined number of attempts are made.
  • the credential server may select the network credentials from the potential variety of networks sharing the same SSlD in any number of ways. For example, the credential server may provide the network credentials for the most commonly accessed network by the largest number of people. In some embodiments, the credential server may provide the network credentials for the most commonly access network by the user or digital device rec ⁇ iesting access. Hie credential server may alternately provide the network credentials for the network that is located most closely to the user (e.g.. through GPS location information, AGPS location information, or through a list of other network available to the digital device as may be identified by a scan by the digital device). If network credentials previously provided to the digital device are unsuccessful, the credential server may select new network credentials based on another method.
  • the credential server 1 16 may request additional network information rather than provide network credentials.
  • the credential server may receive a network identifier and determine that the network identifier is shared or may be potentially shared by multiple networks. Subscqucntl) .
  • the credential request response may request additional network information from the digital device. Additional network information may comprise any additional information regarding the network including, for example, a title of a web page from a network device associated with the network or any other information.
  • the digital device may then provide the additional network information to the credential server which may subsequently identify the correct network credentials to provide to the digital device.
  • FIG. 14 is a box diagram of a digital device 102 in some embodiments.
  • the digital device 102 may be configured to provide additional network information to the credential server 1 16 to receive network credentials when the network identifier associated with a network may be shared.
  • the digital device 102 may comprise a request module 1402. a verification module 1404. a retrieval module 1406, a network access engine 1408. and a list module 1410.
  • the digital device 102 may. in many respects, perform as discussed herein.
  • the request module 1402 may be configured to scan an area in proximity to the digital device 102 and receive one or more network identifiers, such as SSIDs, associated with wireless nctwork(s).
  • the request module 1402 may also be configured to generate a credential request including the one or more network identifiers.
  • the credential request may be formatted as a DNS protocol message. .
  • the credential request may be formatted in a UDP protocol.
  • the request module 1402 may provide the credential request to a network via a network device associated with at least one of the scanned networks. ⁇ s discussed herein, the network device may include at least one open port, such as port 53.
  • the request module 1402 may provide the credential request to the credential server 1 16 via the open port.
  • the response module 1404 may receive a credential request response from the credential server 1 16 (e.g., via the open port of the network device 104). In various embodiments, the response module 1404 may cither retrieve network credentials or a request for additional network information from the credential request response. In one example, if the credential server 1 16 determines there is insufficient information (e.g., the SSID is shared by multiple networks), the credential server 1 16 may provide a credential request response that requests additional network information from the digital device 102.
  • Additional network information may include any information regarding the network.
  • the additional network information includes an SSID, BSSID. title of a wcbpage received from the network device 104.
  • WlSPr Wireless Internet Service Provider roaming
  • the additional network information may include any information including identifiers that identify the network device, identifiers that identify the network, or information received from the network device (e.g.. a login page, a redirect page, or a web page with fields requesting information).
  • the retrieval module 1406 may be configured to provide additional information to the credential server 1 16 based on the request for additional network information.
  • the retrieval module 1406 generates a second credential request including additional network information previously received from the network device 104.
  • the retrieval module 1406 retrieves additional network information from the network device 104.
  • the retrieval module 1406 may request and receive a web page from the network device 104.
  • the retrieval module 1406 may then provide the title. URL of a web page, a redirect page identifier, an identifier associated with one or more fields of a web page received from the network device 104. or the like, within a second credential request.
  • the request module 1402 may then pros'ide the second credential request to the network (e.g.. in a method similar t ⁇ that as discussed regarding the initial credential request).
  • the second credential request may be formatted as a DNS protocol message.
  • ' IT ⁇ c credential request may be formatted in a UDP protocol .
  • the response module 1404 may receive a second credential request response from the credential server 1 16 in response to the second credential request.
  • the second credential request may include network credentials.
  • the network access engine 1408 may be configured to provide the network credentials to a wireless network associated with the network identifier and/or the additional network information.
  • the network access engine 1408 may be configured to provide the network credentials to the network as described herein as well as co-pending U.S. patent application Ser. No. 1 1 /899.697. entitled “System and fvlethod for Acquiring Network Credentials,” filed Sep 6, 2007. which is incorporated herein.
  • the network access engine 1408 may optionally send a message to the credential server 1 16 to confirm that the network credentials provided were successful. If network access is not granted, the network access engine 1408 may notify the retrieval module 1406 to provide additional network information in another credential request and/or may generate a message to the credential server 1 16 that the access attempt with the network credentials received was unsuccessful. If the digital device 102 does not access the network the digital device 102 may provide a log of information to the credential server 1 16 regarding the attempted access when the digital device 102 next successfully gains access to a network.
  • vvhiielists and/or blacklists may be used to reduce or avoid sending multiple credential requests.
  • the list module 1410 may be configured to check one or more network identifiers against a whitelist and/or a blacklist.
  • the whitelist and/or blacklist may be updated periodically by the credential server 1 16 or any other digital device 102.
  • the list module 1410 checks a network identifier against a blacklist. If the network identifier (e.g.. an SSlD) is on the blacklist, additional network information may be required.
  • the blacklist may comprise a list of SSIDs that may be shared by multiple networks. If the network identifier is on a blacklist, the list module 1410 may notify the retrieval module 1406 to provide additional network information within a credential request. The credential server 1 16 receiving the credential request may use the network identifier and the additional network information to provide the network credentials.
  • the blacklist includes a list of SSIDs that may be shared by multiple networks as well as instructions as to what additional network information that may be provided to improve the speed and/or possibility of receiving the correct network credentials.
  • the list module 1410 checks a network identifier against a whitclist If the network identifier (e.g., an SSlD) is on the whiteiist, additional network information may not be required.
  • the whitelisi may comprise a list of SSIDs thai may not be shared by multiple networks. If the network identifier is not on the whitelist, however, ihc list module 1410 may notify the retrieval module 1406 to provide additional network information within a credential request.
  • the credential server 1 16 receiving the credential request may use the network identifier and the additional network information to provide the network credentials.
  • the blacklist comprises a list of network identifiers (e.g.. SSlDs or BSSlDs) of network devices that the digital device 102 does not have permission to access. For example, an owner of an unprotected network device may wish for only a limited number of people (e.g., friends or customers at a specific coffee shop) to access the network.
  • the digital device 102 may receive the network identifier of the unprotected network device and the network identifier may be compared against the blacklist (c g.. either by the digital device 102 or the credential server 1 16). If the network identifier is associated with the blacklist, the digital device 102 may either stop attempting to connect to the network or disconnect from the network.
  • the whitelisi may also comprise a list of network identifiers that are associated with networks that the digital device 102 is allowed to access. For example, lhe digital device 102 or the credential server 1 16 may check the network identifier against the whitelist to determine if the network is associated with the whitelist. If the network is associated with the whitelisi, the digital device 102 may connect or remain connected to the network.
  • the whitelist comprises a list of preferred networks. In this example, the digital device 102 may select a network identifier associated with the whitelist from a list of multiple available networks.
  • the How diagram depicts communication and activities between and by the digital device 102, the network device 104, the DNS server 1 10, and the credential server 1 16 in some embodiments.
  • the digital device 102 may scan an area proximate to the digital device 102 to identify one or more wireless networks.
  • a network device 104 may respond lo the scan from the digital device 102 and provide a network identifier.
  • the network identifier is an SSID and/or a BSSID.
  • the digital device 102 generates a first credential request containing the received network identifier.
  • the first credential request may also comprise a digital device 102 identifier, a software license number, or any other information.
  • the ilrsl credential request may be encoded. For example, the information within the first credential request may be hex-encoded.
  • the first credential request is in a DNS protocol which is provided to the DNS server 1 10 via an open port (e.g., port 53) of the network device 104.
  • the DNS server 1 10 may redirect the first credential request to the credential server 1 16 in step 1508.
  • the credential server 1 16 may comprise or be the rules server 1010. In some embodiments, the credential server 1 16 receives the first credential request and may retrieve the network identifier. In some embodiments, the credential server 1 16 decodes the first credential request in order to retrieve of the network identifier.
  • the credential server I 16 determines if the network identifier is sufficient to identify a network credential.
  • the network identifier may possibly be shared with another network.
  • the credential server 1 16 scans a data structure such as a table, database, or any other data structure, to determine if the network identifier from the first credential request is possibly shared by two or more networks.
  • the data structure is a blacklist which includes a list of network identifiers that are commonly shared by multiple networks.
  • the credential server 1 16 may determine that there is insufficient information to identify a network credential.
  • the network identifier may comprise both an SSlD and a BSSID.
  • the SSID may be associated with multiple networks and the credential server 1 16 may have no network credentials associated with the BSSlD (e.g., a MAC address of the network device). If the network identifier is insufficient, the credential server 1 16 may generate a first credential request response requesting additional network information. The additional network information may be used by the credential server 1 16 to identify the correct network and/or network credential.
  • the request for additional network information comprises a request for any additional information that the digital device 102 may have access regarding the network device 104.
  • the credential server 1 16 determines what additional network information is necessary to distinguish the network credentials and specifically requests for that additional network information only. For example, the title oi a web page received from the network device 104 may be sufficient to differentiate between two possible networks.
  • the credential server 1 16 may include a request the title of the web page of the network device 104 in the first credential request response. In other embodiments, lhe credential server 1 16 may request a variety of different types of additional network information.
  • the first credential request response containing the request for additional network information may be provided back to the DNS server 1 10.
  • the first credential request response is formatted as a UDP protocol and provided back to the digital device 102 in a manner similar to the process that the credential server 1 16 receiv ed the first credential request.
  • the DNS server 1 10 may receive the first credential request response and redirect the first credential request response back to the digital device 102 via the open port of the network device 104 in step 1 514.
  • the digital device 102 retrieves the request for additional information from the first credential request response and prepares a second credential request with additional network information 1516.
  • the digital device 102 requests a web page from the network device 104.
  • the request may be a request for network access, l he additional network information may comprise information received from the network device 104 including the SSID. BSSID. IP address, or any other information.
  • the additional network information may comprise a title, hash. WISPr tag, or URL ⁇ i ' a web page or any part of a web page received from the network device 104.
  • the digital device 102 provides the second credential request to the DNS server 1 10.
  • the second credential request may be encoded.
  • the second credential request may be formatted as a UDP protocol and provided to lhc DNS server 1 10 via the open port on the network device 104.
  • the DNS server 1 I O may subsequently direct the second credential request to the credential server 1 16 in step 1520.
  • the credential server 1 16 retrieves network credentials, based, at least in pan. on ihe additional network information.
  • the credential server 1 16 may also retrieve the network credentials based, at least in part, on the network identifier and/or other additional network information previously received from the digital device 102.
  • the credential server 1 16 may retrieve the network credentials from a data structure associated with the network identifier and/or any additional network information.
  • the credential server 1 16 may include the network credentials in a second credential request response.
  • the second credential rec ⁇ iest response may be encoded and/or encrypted in a manner similar to the first credential request response.
  • the second credential request response is provided back to the DNS server 1 10 which directs the second credential request response to the digital device 102 in step 1 526.
  • DNS server 1 10 which directs the second credential request response to the digital device 102 in step 1 526.
  • DNS server 1 10 which directs the second credential request response to the digital device 102 in step 1 526.
  • credential server 1 16 depicted in FlG. 15 there may be any number credential servers in communication with the digital device 102.
  • the digital device 102 retrieves the network credentials from the second credential request response and provides the network credentials to the network device 104.
  • the digital device 102 may authenticate and/or decode the second credential request response in a manner similar to or different from another credential request response (e.g.. the first credential request response).
  • the credential server 1 16 may request a variety of different network information in any order.
  • the credential server 1 16 may provide a prioritized list of additional network information to the digital device 102. The digital device 102 may go through the prioritized list, determining if the request additional network information is available. If the additional network information is available, the digital device 102 may provide the additional network information to the credential server 1 16 in a second credential request. In some embodiments, the digital device 102 may provide only some of the additional network information to the credential server 1 16. If the credential server 1 16 determines that the network identifier and/or the additional network information is shared by two or more networks or is otherwise insufficient, the credential server 1 16 may provide a request for more network information in another credential request response.
  • the network identifier is described with respect to FIG. 1 5 as being an SSlD. those skilled in the art will appreciate that the network identifier may be any identifier or combination of identifiers (e.g.. BSSlD).
  • the network device 104 may provide a BSSlD to the digital device 102. If the BSSlD has not been previously identified or is otherwise insufficient, the credential server 1 16 may request more information within the first credential request response in step 1512. In response, the digital device 102 may provide additional network information to the credential server 1 16 in order to receive the second credential request response with the network credentials.
  • l- ' IG. 16 is a flowchart of an exemplary method for a digital device 102 to receive network credentials when a network identifier is insufficient in some embodiments.
  • the digital device 102 scans an area for available one or more available wireless networks In one example, the digital device 102 scans a McDonald ' s restaurant for an available wireless network.
  • the digital device 102 receives a network identifier of a wireless network In this example.
  • a f&T may provide network services to the McDonald ' s restaurant.
  • a network device at the McDonald ' s restaurant may subsequently identify an available network (e.g., provide an SSlD) as "aliwifi.”
  • the digital device 102 In step 1606, the digital device 102 generates a first credential request formatted for the DNS protocol.
  • the first credential request may include the network identifier "attwifi" as well as other information, such as, but not limited to, a digital device 102 identifier (e.g.. MAC address).
  • the digital device 102 may provide the first credential request over a network via an open port on the network device or over another network device.
  • the digital device 102 receives a first credential request response over the network via the open port on the network device or over another network dev ice.
  • the digital device 102 may retrieve a request for additional network information from the first credential request response.
  • the digital device 102 provide additional network inlornialion already received from the network device.
  • the digital device 102 may have received an SSlD as well as information regarding a web page received from the network device. Although the digital device 102 may have only provided the SSlD as the network identifier in the first credential request, the digital device 102 may provide the additional network information in a second credential request.
  • the digital device 102 generates a second credential request including the additional network information.
  • the second credential request response may comprise the previously provided network identifier (e.g., SSlD of the network device) and/or the additional network information for the network device.
  • the digital device 102 may subsequently provide the second credential request over the network.
  • the digital device 102 may receive a second credential request response.
  • the second credential request response may comprise network credentials.
  • the second credential request response may request additional network information and the process may repeat starting with step 1610 as a new credential request may be generated with additional network information.
  • the second credential request response may be an indication that a network credential is not available and the process ma) end.
  • step 1614 the digital device 102 retrieves network credentials, if available, from the second credential request response. ⁇ s discussed herein, the digital device 102 may authenticate, decode, and/or decrypt the second credential request response. In step 1616. the digital device 102 may provide the network credentials from the second credential request response to the network device.
  • I 7 ICi. 17 is a flowchart of an exemplary method for a credential server 1 16 to provide network credentials in some embodiments
  • the credential server 1 16 may receive the first credential request from the digital device 102.
  • the credential server 1 16 may decode the first credential request to retrieve the network identifier (e.g.. the SSlD of • 'attwifi") in step 1704.
  • the network identifier e.g. the SSlD of • 'attwifi
  • the credential server 1 16 may determine that the network identifier is insufficient to identify one or more network credentials.
  • the SSID of "altwifi " may identify a wide number of network devices that provides network access by ⁇ T&T including other restaurants, coffee shops, and the like. One or more of the other network devices may require different network credentials. 1-or example. AT& ' I may offer network access al McDonald ' s may be free for a limited time while, at the same lime. ⁇ T&T may require a purchase or card number al Starbucks. Network devices at both McDonald ' s and Starbucks, however, may share the same SSID.
  • the credential server 1 16 may determine that the network identifier provided in the first credential request may be insufficient to determine the correct network credential (e.g.. a network credential comprising a card number at Starbucks or the correct entries for a web page required for free access at a McDonald ' s).
  • the correct network credential e.g.. a network credential comprising a card number at Starbucks or the correct entries for a web page required for free access at a McDonald ' s.
  • An additional network information may be required by the credential server 1 16. For example, only a limited number of McDonald ' s may allow for free wireless access through the network service provider. ⁇ T&T. As such, the credential server 1 16 may require the SSlD (e.g.. "attwifr) and a URL to a redirected web page (e.g., "hltp://www. McDonalds. com/ ⁇ Yl " mobile/freeaccess " ). Once a sufficient amount of information is received, the credential server 1 16 may provide network credentials to the digital device 102.
  • SSlD e.g. "attwifr
  • a URL e.g., "hltp://www. McDonalds. com/ ⁇ Yl " mobile/freeaccess "
  • the network identifier and/or additional network information may not be unique to only one network or network device.
  • two or more McDonald ' s participating in the promotion to provide free wireless access may provide the same network identifier and at least some similar additional network information.
  • the credential server 1 16 determines that the desired network credentials are sufficiently identifiable (e.g., the network device providing the network identifier belongs to a participating McDonald's), the desired network credentials may be provided.
  • the credential server 1 16 determines one or more aspects of the service being provided by the network device in order to identify one or more network credentials. For example, some hotels or libraries may comprise multiple network devices which may each have a separate network identifier (e.g., room 101. room 102). If the credential server 1 16 receives a network identifier that the credential server 1 16 does not recognize, the credential server 1 16 may provide a credential request response requesting additional information such as the title to a login web page. The digital device 102 may provide the title which indicates "Hyatt Hotel. Austin. TX.” Since, in this example, all Hyatt hotels may share the same network credential (e.g.. all Hyatt hotels share the same login page), the credential server 1 16 may provide the correct network credential without specifically identifying which Hyatt hotel in Austin, Texas, may be associated with the specific SSlD and title.
  • some hotels or libraries may comprise multiple network devices which may each have a separate network identifier (e.g., room 101. room 102
  • the credential server 1 16 may identify that sufficient information has been received from a credential request in any number of ways.
  • the credential server 1 16 compares the network identifier and additional network information against a data structure.
  • the data structure may indicate, lor example, what network identifier and/or additional network information may be sufficient to identify one or more network credentials. Alternately, the data structure may indicate, for example, what network identifier and/or additional network information is insufficient to identify one or more network credentials.
  • the data structure may. in some embodiments, identify what further additional network information may be used to identify one or more network credentials.
  • the credential server 1 16 may retrieve network credentials based on the network identifier in step 1716. If the network identifier is not sufficient to identify the network credential ⁇ ), the credential server 1 16 may prepare an other (i.e., a second) credential request response requesting additional network information in step 1708. In some embodiments, the credential server 1 16 may include an identifier in the credential request response that may identify what additional network information may be useful to provide the network credential(s). In step 1710, the credential server 1 16 provides the credential request response to the digital device 102.
  • the credential server 1 16 may receive an other credential request (i.e.. a second credential request) from the digital device 102.
  • the credential server 1 16 may retrieve additional network information from the other credential request.
  • the credential server 1 16 may then determine if the network identifier and/or the additional network information from one or more of the previously received credential request is sufficient to identify network credentials. If the network identifier and/or the additional network information is insufficient, the process may continue in step 1708 with the credential request preparing another credential request response requesting additional network information. If the network identifier and/or the additional network information are sufficient, then the credential server 1 16 may retrieve the network credentials in step 1716.
  • the credential server 1 16 may provide the network credentials within a credential request response to the digital device 102.
  • FIG. 18 is a flowchart of another exemplary method for a digital device 102 with a blacklist to provide additional network information sufficient to identify one or more network credentials in some embodiments.
  • the digital device 102 scans an area for available wireless networks. The digital device 102 subsequently receives at least one network identifier of a wireless network.
  • the digital device 102 determines if the network identifier of the wireless network is identified on a blacklist. If the network identifier is identified or associated with the blacklist, the digital device 102 may retrieve additional network information in step 1808.
  • additional network information may be from the network device or from storage (e.g., RAM, cache, or hard drive) of the digital device 102.
  • the additional network information and/or the network identifier may be provided in a credential request in step 1810.
  • the digital device 102 may provide the credential request including the network identifier over the network (e.g., over an open port of a network identifier).
  • the digital device 102 may receive a credential request response including network credentials.
  • the credential server 1 16 may receive the network identifier and/or the additional network information and have sufficient information to provide the network credentials in the credential request response.
  • the digital device 102 may retrieve the network credentials in step 1816 and provide the network credentials to a network device in step 1 818.
  • the credential server 1 16 may determine thai even more information is needed and returns a credential request response with a request for more additional network information.
  • the digital device 102 comprises a whitelist indicating when sufficient information may be found as discussed herein.
  • the blacklist and/or whitelist may be updated periodically (e.g.. by the credential server 1 16). Further, the blacklist and/or whitelist may be a part of an application that is installed on the digital device 102. In other embodiments, the blacklist and/or whitelist is maintained by the credential server 1 16. In one example, the credential server 1 16 may receive the credential request from the digital device 102. The credential server 1 16 may then check a network identifier against a blacklist.
  • the credential server 1 16 may not provide the network credentials for the network device associated with the network identifier or provide a message to the digital device 102 with a request or instructions to disconnect from the network device. [00230
  • the above-described functions and components can be comprised of instructions that are stored on a storage medium such as a computer readable medium.
  • the instructions can be retrieved and executed by a processor.
  • Some examples of instructions are software, program code, and firmware.
  • Some examples of storage medium are memory devices, tape, disks, integrated circuits, and servers.
  • the instructions are operational when executed by the processor to direct the processor to operate in accord with embodiments of the present invention. Those skilled in the art are familiar with instaictions, processor(s). and storage medium.

Abstract

Systems and methods for obtaining network credentials are disclosed. In some embodiments, a method comprises receiving, with a digital device, a network identifier from a network device, providing a first credential request including the network identifier to another digital device on a network, receiving a request for additional network information from the other digital device, providing a second credential request including additional network information to the other digital device, receiving a credential request response including network credentials from the other digital device, and providing the network credentials from the credential request response to a network device.

Description

SYSTEMS AND METHODS FOR OBTAINING NETWORK CREDENTIALS
BACKGROUND
1. Field of (he Invention
(001 1 The present invention generally relates to accessing networks. More particularly, the invention relates to obtaining network credentials to access a network.
2. Description of Related An
[ 002 J The increasing use of the networks to access information has resulted in a greater dependence on network communication for a variety of activities. With this dependence comes the growing expectation that network access will be ubiquitous. Network access for mobile users has been particularly enhanced by improvements in wireless technology. Various cellular (e.g. GSM. CϋMΛ and the like). Wi-Fi (i.e. IKEH 802.1 1 ). WiMAX (i.e. IKFL 802. 16), and other technologies have enabled a wide range of access options for a potential network user. Many wireless access points or "holspots" are accessible only with local geographic regions—in some cases as small as a specific business or other address. In addition, strategically placed hotspots may provide public or private network access for a diverse group of people.
(003 j The owners or managers of hotspots often require password and the like to enable user access. As a result, a user of multiple hotpots may have to store, remember, or otherwise manage a large number of passwords. Many users may store their passwords on a laptop computer they use to access the hotspot. However, not all devices capable of accessing hotspots are laptop computers, cellular phones, personal digital assistants (Pf)As). and many other devices are now capable of wireless access. Unfortunately, users often cannot easily enter the password on the device or store the password within the device. For example, some devices capable of wireless access may not have a keyboard. Even when a device includes a keyboard, the keyboard is often small and may be of limited functionality, especially for users vviih limited finger dexterity.
[004] When users store passwords on a laptop computer, the user must first access the laptop computer and store the correct password within the computer. When a password changes, the user is required to update the password within the computer. Additionally. having the usomamc and password stored in the device presents a security problem should the device be lost or stolen.
|005| Kurt her, users are typically required to enter a password, uscrnamc, and navigate a website to obtain network access. This process is time consuming and the user may enter the wrong information and be forced to re-enter data.
|006| When users enter a password manually, they are less apt to remember difficult passwords. Λs a result, simple password access is susceptible to hacking and may compromise the user's network access, the hotspot, and/or the user's personal information. Moreover, the user's network access may be stolen if the user's simple password is hacked or simplv guessed.
|007| Connecting to wireless networks has traditionally been a complex process for users of wireless devices for other reasons. Typically, the user enters an area where two or more Wi-I- i networks are present, selects the Wi-Fi function on their laptop, and views a series of 'scan results' listing the available Wi-Fi networks. In one example, the listing of available Wi-Fi networks comprises a list of Wi-Fi network SSlD identiilcrs. Users must often identify which Wi-Fi networks do not have encryption or other security mechanisms (e g.. a login page). To add to usei frustration, some of the wireless networks may be functional while others may be inisconfigured in such a way that renders the network unusable.
|008| The user typically makes an arbitrary decision which Wi-Fi network to connect to based on the listing. In making a decision of which Wi-Fi network to connect, the user typically does not know whether the selected Wi-Fi network will provide adequate quality of service or even if the network will be able to provide an Ii1 address via Dynamic Host Configuration Protocol (DHCP).
|009| It is not uncommon for different network devices to share similar SSlDs or other identifiers For example, the SSID of multiple public libraries may indicate '"library." Since the SSlDs arc not unique, it may be difficult to determine which network credentials to provide based only on the SSID in order to gain access. For example, one library with an SSID of "library" may allow access once a user indicates they are a "guest." Another library with the same SSID may require a library card identifier. SUMMARY OF THE INVENTION
|0010| Exemplary methods and systems for providing network credentials for network access are described. The exemplary method comprises receiving a credential request from a digital device over a network device, identifying a network record based on at least some information within the credential request, retrieving a network credential from a plurality of network credentials based on the network record, and transmitting a credential request response containing the network credential from the plurality of network credentials to the digital device.
|ϋϋl l | The method may further comprise decrypting the credential request, authenticating the credential request, and encrypting the credential request response. Further, the method mav also comprise retrieving an encryption key based on the digital device The credential request may be received over a standard protocol of the network device. The standard protocol may be DNS.
[0012] The credential request may comprise a location identifier. The method may further comprise receiving a confirmed access response from the digital device.
|0013] Λn exemplary system for providing network credentials may comprise a credential request module and a credential request response module. The credential request module may be configured to receive a credential request from a digital dev ice over a network device. The credential request response module may be configured to identify a netwυi k record based on at least some infoimation within the credential request, retrieve a network credential from a plurality of network credentials based on the network record, and transmit a credential request response containing the network to the digital device.
(0014] Λn exemplar)' computer readable medium may have embodied thereon a program. The program may be executable by a processor for performing a method for providing network credentials. The method may comprise receiving a credential request from a digital device over a network device, identifying a network record based on at least some information within the credential request, retrieving a network credential from a plurality of network credentials based on the network record, and transmitting a credential request response containing the network credential from the plurality of network credentials to the digital dev ice.
|0U15| Systems and methods for selecting a wireless network are disclosed. In some embodiments, a method comprises receiving a first network device identifier for a first network device and a second network device identifier for a second network device, obtaining a first network profile comprising a first attribute, the first network profile based on the first network device identifier, obtaining a second network profile comprising a second attribute, the second network profile based on the second network device identifier, and selecting either the first network device identifier or the second network device identifier based on an attribute analysis of the first attribute and the second attribute.
|0016| In various embodiments, the first network device identifier and the second network device identifier arc received from a digital device by a server. The method may further comprise providing a wireless network selection based on the selection. The method may also further comprise providing a credential request response based on the selection.
|OO I7| In some embodiments, the network selection identifier comprises the first network device identifier. The network selection identifier may also comprise a sorted list including the first network device identifier and the second network device identifier wherein the list is sorted based on the attribute anal) sis of the first attribute and the second attribute. Λn attribute may comprise a performance metric, a shared indicator, and a service identifier.
|U018| The method may further comprise comparing the first attribute and the second attribute to minimum requirements wherein selecting either the first network identifier or the second network device identifier is also based, at least in part, on the comparison of the attributes to the minimum requirements. The method may also further comprise comparing the first attribute and the second attribute to personalized settings wherein selecting either the first network identifier or the second network device identifier is also based, at least in part, on the comparison of the attributes to personalized settings. The method may also further comprise receiving a user identifier and retrieving the personalized settings from a user account based on the user identifier.
|0019| In various embodiments, a system comprises a digital device and a server. The digital device may be coupled to a communication network and configured to transmit a first network device identifier for a first network device and a second network device identifier for a second network device over lhe communication network. The server may also be coupled to the communication network and configured to receive the first network device identifier and the second network device identifier from the digital device, to obtain a first network profile comprising a first attribute, the first network profile based on the first network device identifier, to obtain a second network profile comprising a second attribute, the second network profile based on the second network device identifier, and to select either the first network device identifier υr the second network device identifier based on an attribute analysis of the first attribute and the second attribute.
[0020] Λ computer readable storage medium may be configured to store instructions, the instructions comprising a method, the method comprising the steps of receiving a first network device identifier for a first network device and a second network device identifier for a second network device, obtaining a first network profile comprising a first attribute, the first network profile based on the first network device identifier, obtaining a second network profile comprising a second attribute, the second network profile based on the second network de\ ice identifier, and selecting either the first network device identifier or the second network device identifier based on an attribute analysis of the first attribute and the second attribute.
[0021 ] Systems and methods for obtaining network credentials are disclosed. In some embodiments, a method comprises receiving, with a digital device, a network identifier from a network device. pro\ iding a first credential request including the network identifier to another digital
Figure imgf000006_0001
ice on a network, receiving a request for additional network information from the other digital device, providing a second credential request including additional network information to the other digital device, receiving a credential request response including network credentials from the other digital device, and providing the network credentials from the credential request response to a network device.
|0022| Jn some embodiments, the first credential request is formatted using I)NS protocol. The first credential request may be provided to the other digital
Figure imgf000006_0002
ice via an open port on the network device. The open port may be port 53.
[0023] The network identifier may be any identifier that identifies the network, such as an SSlD. The additional network information may be any information associated with the network including, but not limited to. a BSSlD. a title to a web page received by the digital device from the network device, a URL of a web page received by the digital device from the network device, or a hash of a web page received by the digital device from the network device.
|0024J An exemplary system may comprise a request module and a response module. The request module may be configured to receive a network identifier from a network device. The response module may be configured to provide a first credential including the network identi fier to another digital device on a network, receive a request for additional network information from the other digital device, provide a second credential request including additional network information to the other digital device, receive a credential request response including network credentials from the other digital device, and provide the network credentials from the credential request response to a network device.
|0025| Λn exemplar)' computer readable storage medium configured may be configured to store instructions. The instructions may comprise a method. The method may comprise the steps of receiving, with a digital device, a network identifier from a network device, providing a first credential request including the network identifier to another digital device on a network, receiving a request for additional network information from the other digital device, providing a second credential request including additional network information to the other digital device, receiving a credential request response including network credentials from the other digital device, and providing the network credentials from the credential request response to a network device.
BRIEF DESCRIPTION OF THE DRAWINGS
|0026| FlG. 1 is a diagram of an environment in which embodiments of the present invention may be practiced.
(0027| FKj. 2 is a block diagram of an exemplary credential server.
|0028| FIG. 3 is a flow diagram of an exemplary process for providing network access to the digital device.
[0029| FlG. 4 is a block diagram of an exemplary credential request.
|0030| FIG. 5 is a block diagram of an exemplary credential request response.
(00311 FIG. 6 is a How diagram of the exemplary method for providing network credentials.
10032 ] FIG. 7 is another flow diagram of the exemplar)' method for providing network credentials.
|0033| FlU. 8 is a How diagram of an exemplary method for receiving and storing network credentials.
[0034] FlG. 9 is a block diagram of an exemplary credential server.
[0035] FlG. I U is a diagram of another environment in which embodiments of the present invention may be practiced.
|0036| FIG. 1 1 is a How diagram of an exemplary process for providing a selection of a wireless network.
|0037| FIG. 12 is a How diagram of an exemplary process for selecting a wireless network.
|0038| FIG. 1 3 is a diagram for selecting a wireless network and accessing the selected wireless network.
|0039| FIG. 14 is a box diagram of a digital device in some embodiments.
|0040| FIG. 15 is a How diagram of an exemplary method for retrieving network credentials when a network identifier may be insufficient to identify network credentials in some embodiments. |0041 ) FIG. 16 is a flowchart of an exemplary method for a digital device to receive network credenliaLs when a network identifier is insufficient in some embodiments.
|0042] FlG. 1 7 is a flowchart of an exemplary method for a credential server 1 16 to provide network credentials in some embodiments.
|0ϋ43| FIG. 18 is a flowchart of another exemplary method for a digital device to receive network credentials when a network identifier may be shared by two or more networks in some embodiments.
DH IVMU-D DIZSCRIPTION QF THE INVENTION
|0044| Kinbodinu'iiis of the present invention provide syslcms and inetliods lor providing network credentials. In exemplary embodiments, a credential server receives a request for network credentials from a digital device at a hotspot. The request may be formatted as a standard protocol which is relayed from the hotspot to the credential server. The credential server may identify a network record based on at least some information contained within the request and transmit network credentials associated with the network record to the digital device. The digital device may receive the network credentials and provide them to network device in order to obtain network access.
|0045j In various embodiments, a rules server may identify a preferred network from a plurality of available networks that the digital device may connect based on a variety of network attributes. In one example, a digital device may scan a physical region for available networks and generate a list of available wireless networks. The list may be provided to a rules server which identifies and retrieves a network profile for each wireless network on the list The rules server may then compare each network profile (e.g.. via attributes contained within each profile) to select a preferred network from the list. The rules server may then transmit the wireless network selection to the digital device which may then access the network.
[0046] In some embodiments, the digital device accesses the selected wireless network using credentials provided by the credential server. In one example, when the rules server selects the preferred wireless network, the rules server (or another server in communication with the rules server) may simultaneously (or nearly simultaneously) provide a credential request response including network credentials associated with the selected wireless network.
10047] KlG. 1 illustrates a diagram of an environment 100 in which embodiments of the present invention may be practiced. In exemplary embodiments, a user with a digital device 102 enters a hotspot. The digital device 102 may automatically transmit a credential request as a standard protocol over a network device 104. The credential request may be forwarded to a credential server 1 16 which, based on the information contained within the credential request, transmits a credential request response back to the digital device 102. The credential request response contains network credentials which the digital device 102 may provide to the network device 104, the authentication server 108, or the access controller 1 12 to obtain access to the communication network 1 14. |0048) In various embodiments, a hotspot comprises the network device 104, the authentication server 108. the DNS server ] 10. and the access controller 1 12 which are coupled to the local area network 106 (e.g.. a "walled garden"). The network device 104 may comprise an access point which allows the digital device 102 to communicate with the authentication server 108. ihe DNS server 1 10. and the access controller 1 12 over the local area network 106. The digital device 102 may comprise a laptop, mobile phone, camera, personal digital assistant, or any other computing device. The authentication server 108 is a server that requires network credentials from the digital device 102 before allowing the digital device 102 access the communication network 1 14. The DNS server 1 10 provides DNS services over the local area network 106 and may relay requests to other DNS servers (not shown) across the communication network 1 14. The access controller 1 12 is an access device such as a router or bridge that can allow communication between devices operationally coupled to the network device 104 with devices coupled to the communication network 1 14
[00491 Although the hotspot in 1*10. 1 depicts separate servers coupled to the local area network 106, those skilled in the art will appreciate that there may be any number of devices (e.g.. servers, digital devices, access controllers, and network devices) coupled to the local area network 106. In some embodiments, the local area network 106 is optional. In one example, the authentication server 108, the DNS server 1 10. and the access controller 1 12 are coupled directly to the network device 104. In various embodiments, the authentication server 108. the DNS server 1 10. and the access controller 1 12 may be combined within one or more servers or one or more digital devices. Further, although I* ICJ. 1 depicts wireless access, the digital device 102 may be coupled to the network device 104 wirelcssly or over wires (e.g.. such as 1 ObaseT)
|0050) In order to access the communication network 1 14, the authentication server 108 may require the digital device 102 to provide one or more network credentials for access to the hotspot. The network credential may comprise, for example, a username and password for an account associated with the hotspot. In alternative embodiments, network credentials other than u user name and password may be utilized.
[0051 1 According to exemplary embodiments, the digital device 102 may dynamically acquire the network credentials from the credential server 1 16. The digital device 102 may send a credential request comprising an identity of the digital device 102 (or the user oi the digital device 102) and details about the network device 104 (e.g.. name of the network device 104 or Wi-Fi service provider) to the credential server 1 16. |0052| In one example, when the digital device 102 enters the hotspot. the network device 104 may provide an IP address to which DNS queries may be submitted, for example, via DHCP (Dynamic Host Configuration Protocol). The credential request may be formatted as a standard protocol. In an example, the credential request may be formatted as a DNS request. The credential request may be a text record request (e.g.. TXT), which comprises a standard record type such that the network infrastructure (e.g., the access controller 1 12) will not block the request. More details regarding the process for acquiring network credentials are provided in co-pending U.S. patent application Ser. No. 1 1 /899,697, entitled "System and Method for Acquiring Network Credentials," filed Sep. 6. 2007, and incorporated by reference herein
[00531 In some embodiments, the credential request is received by the I)NS server 1 10 which may forward the credential request to the credential server 1 16 for the network credential. In exemplary embodiments, the credential server 1 16 may perform a lookup to determine the proper network credcntial(s) to send back to the DNS server 1 10 which forwards the network credential back to the requesting digital device 102. In various embodiments, the proper network crcdential(s) are sent from the credential server 1 16 to the digital device 102 over the same path as the transmission of the credential request.
[0054] Although only one DNS server 1 10 is depicted within FIG. 1. the credential request may be forwarded through any number of servers, including but not limited to DNS servers, prior to being received by the credential server 1 16. In other embodiments, the credential request is forwarded directly from the network device 104 to the credential server 1 16.
(005Sj m some embodiments, a credential request response from the credential server 1 16 may comprise the usemamc. password, and/or login procedure information. The login procedural information may comprise, for example. HTML form element names, a submission URL. or a submission protocol. In some embodiments, the network credential response may be encrypted by the credential server 1 16 using an encryption key associated with the digital device 102 prior to transmission back to the digital device 102.
|0056) Once the digital device 102 receives the network credential response, the digital device 102 may submit the network credential (retrieved from the network credential response) to the network device 104 in an authentication response. In exemplary embodiments, the authentication response may be forwarded to an authentication server 108 for verification. In some embodiments, the authentication server 108 may comprise an ΛAΛ server or RADIUS server. More details regarding the process for obtaining network aceess arc provided in co-pending U.S. patent application Ser. No. 1 1/899.638, entitled "System and Method for Obtaining Network Access.. " filed Sep. 6. 2007. and incorporated by reference herein.
|()057| Il should be noted that KIG. 1 is exemplary. Alternative embodiments may comprise more. less, or functionally equivalent components and still be within the scope of present embodiments. For example, as previously discussed, the functions of the various servers (e.g.. DNS server 1 10, credential server 1 16, and authentication server 108) may be combined into one or two servers. That if. for example, the authentication server 108 and the DNS server 1 10 may comprise the same server, or the functionality of the authentication server 108. the DNS server 1 10, and the access controller 1 12 may be combined into a single device.
|()058| I7IC. 2 is a block diagram of an exemplary credential server 1 16. The credential server 1 16 comprises an authentication module 200. a network module 202, a credential request module 204. a credential request response module 206, an encryption/decryption module 2OS. a network record storage 210, and an encryption key storage 212. A module may comprise, or in combination, software, hardware, firmware, or circuitry.
|0059j The authentication module 200 may be configured to authenticate the credential request and provide security to (he credential request response. In various embodiments, the digital device 102 may encrypt or digitally sign the credential request using an encryption key (e.g., a shared encryption key or an encryption key that is a part of a key pair). The authentication module 200 may authenticate the credential request by decrypting the credential request with the proper encryption key retrieved from the encryption key storage 212. In one example, the digital device 102 generates a hash of the credential request and stores the hash within an encrypted portion of the credential request. The authentication module 200 may decrypt the credential request, generate hash of the credential request response, and compare the generated hash to the hash contained within the credential request for authentication.
1006(l| In other embodiments, the digital device 102 may generate a nonce (i.e.. a random value) and store the nonce within a portion of the credential request that is digitally signed. The authentication module 200 may decrypt the digital signature to authenticate the credential request and retrieve the nonce. In various embodiments, when the credential request response module 206 generates the credential request response (described herealier), the authentication module 200 may include the nonce within the credential request response. The authentication module 200 or the encryption/decryption module 208 may then encrypt the credential request response. When the digital device 102 decrypts the credential request response, the digital device 102 may retrieve the nonce from the credential request response and compare the nonce to the nonce that was transmitted within the credential request for further authentication.
|()06I ] The network module 202 may be configured to receive the credential request and transmit the credential request response over the communication network 1 14.
[0062] The credential request module 204 may receive the credential request from the network module 202. The credential request may be a standard protocol. In one example, the credential request is a UDP protocol (e.g.. DNS).
[00631 In exemplary embodiments, the credential request module 204 may retrieve the UI)ID and the SSlD from the credential request. The DDlD may identify the digital device 102. the user of the digital device 102. and/or the user associated with a network record. The SSID may identify the hotspot or the service provider (i.e.. operator) of the hotspot.
[0064| The credential request module 204 or the credential request response module 206 may identify a network record based on the DDlD and the SSID. Λ network record is a record associated (either directly or indirectly (e.g., a relational database)) with the DDlD and the SSID. In one example, a network record contains network credentials necessary to provide network access to a digital device 102 associated with the DDlD at the hotspot associated wiih the SSID. Network records may be stored within the network record storage 210.
J0065J The credential request response module 206 may generate the credential request response. In various embodiments, the credential request response module 206 receives the network credential associated with the DDlD and SSID from the network record. In some embodiments, the network credential may comprise a credit card number. In one example, the digital device 102 receives the network credential, retrieves the credit card number, and provides the credit card number to the authentication server 108. In some examples, the authentication server 108 may then charge a fee to a credit card associated with the credit card number or use the information to confirm the identity of the user prior to granting network access. |0U66| Further, in various embodiments, the network credentials may comprise login procedural information. In one example, the credentials include a username and password which are tυ be provided within a form (e.g.. an authentication form) retrieved from the authentication server 108 by the digital device 102. In some embodiments, the login procedural information may instruct the digital device 102 to populate specific fields within the form with the network credentials before submitting the completed form to the authentication server 108. Those skilled in the art will appreciate that there are many ways to provide credentials to the authentication server 108. The process of providing the credentials to the authentication server is further discussed in co-pending U.S. patent application Ser. No. 1 1/899,638. entitled "System and Method for Obtaining Network Credentials.." filed Sep. 6, 2007.
100671 The credential request response module 206 or the encryption/decryption module 208 may encrypt the credential request response with an encryption key associated with the I)DID or the credential request. In one example, the credential server 1 16 stores one or more shared encryption keys. Hach shared encryption key may be shared by at least one digital device 102. The credential request response module 206 may encrypt the credential request response with the shared encryption key associated with the digital device 102 (e.g.. the shared encryption key may be associated with the DDH)). The credential request response module 206 or the encryption/decryption module 208 may also encrypt the credential request with an encryption key that is part of a key pair. There may be many ways in which the encryption/decryption module 208 encrypts the credential request.
|0068| The encryption/decryption module 208 may decrypt the credential request and encrypt the credential request response. As previously discussed, the encryption/decryption module 208 may decrypt the digital signature of the credential request. In one example, the encryption/decryption module 208 decrypts the digital signature based on an encryption key- that is associated with the DDID contained within the credential request. The encryption/decryption module 208 may also encrypt the credential request response. In one example, the encryption/decryption module 208 encrypts the credential request response based on an encryption key associated with the DDID (e.g., a shared encryption key or an encryption key that is part of a key pair).
[0069] In various embodiments, the encryption/decryption module 208 may encrypt the network records contained within the network record storage 210 and manage the encryption key storage 212. The encryption/decryption module 208 may also establish secure communications (e.g., via SSl. and HfI PS) with a digital device when storing network credentials. This process is further described in FlG. 7. In accordance with some embodiments, the encryption/decryption module 208 may be optional.
|0070| The network record storage 21 ϋ and the encryption key storage 212 may store network records and encryption keys, respectively. The network record storage 210 and the encryption key storage 212 may comprise one or more databases. In one example, the network record storage 210 may store network records. Λ network record may comprise a DDlD. SSID. and network credentials. The network record may also comprise a username and password tor the user to access, alter, update, or store network records within the credential server I 16
|007 I I In vai ious embodiments, the network record may also allow multiple digital devices 102 to use the same network credentials In one example, the user may own multiple digital devices 102. Multiple DDlDs. each DDID associated with a different digital device 102, may be included in the same network record. In some embodiments, multiple devices may be associated with one or more network records, and the one or more network records arc associated with a user. Λs a result, the user may retrieve the network credentials for a hotspot using any number of digital devices 102 Those skilled in the art will appreciate that there are many ways in which the network records and/or the information contained therein may be stored and organized (e.g., different data structures, databases, records, organizing schemes, and/or methodologies).
|0072| FlG. 3 is a How diagram of an exemplary process for providing network access to the digital device 102. When the digital device 102 first enters into a hotspot, the digital device 102 may scan for the local area network 106 in step 300. As a result of the scan, the network device 104 may provide network configuration information in step 302. The network configuration information may comprise one or more IP addresses for access to the DNS server 1 10.
|0073| In step 304. a credential request is generated by the digital device 102 Subsequently, the credential request may be sent to the DNS server 1 10 in step 306 using one of the IP addresses previously received from the network device 104.
(0074) Based on the credential request, the credential server 1 16 is identified by the DNS server 1 10 in step 308. In other embodiments, the DNS server I 10 forwards the credential request to the credential server 1 16. When the DNS server 1 10 is unable to locally resolve the DNS request, the credential request is forwarded to another DNS server on the communication network 1 14 (e.g., over port 53) which may then forward the credential request to the credential server 1 16. The credential request is forwarded, cither directly or indirectly through one or more other DNS servers on the communication network 1 14, to the credential server I 16 in step 310.
[0075] The credential server 1 16 identifies the network credential needed based on the credential request in step 312. For example, the credential request may comprise an identifier (i.e.. the DDlD) for the digital device 102 as well as an identifier for the hotspot SSlD (e.g., the service provider such as an operator). The identifiers may be compared against a table (e g.. network record) of such identifiers by the credential request module 204 or the credential request response module 206 to determine the proper network credential. Λ credential request response is then generated by the credential request response module 206 in step 314 and relayed back to the DNS server 1 10 in step 316. The DNS server 1 10 forwards the credential request response back to the digital device in step 318.
|l)076] The digital device 102 may then retrieve the network credentials from the credential request response in step 320. The network credential may then be provided to the network device 104 in step 322. Upon verifying the network credentials, the network device 104 provides network access to the digital device 102 in step 324.
[0077| Referring now to FIG. 4. an exemplar)' credential request 400 is shown in more detail. According to exemplary embodiments, the credential request module 204 may generate the credential request 400. In one embodiment, the credential request 400 may be a DNS string having a structure that comprises a location identifier 402. a sequence identifier 404, a signature 406, the DDID 408, a service set identifier (SSlD) 410. and a version identifier 412
|0078| The optional location identifier 402 may indicate a phy sical or geographic location of the digital device 102. the network device 104. the authentication server 108. or the access controller 1 12. In various embodiments, the location identifier 402 may be used by the credential server 1 16 to track the usage of hotspots. users of the digital device 102, as well as the digital device 102.
|0079| The sequence identi Her 404 may comprise any number or set of numbers used to correspond to a subsequent request to the credential server 1 16 to determine if the login is successful. That is. the sequence identifier 404 provides a correlation mechanism by which verification of the login process may be made by the credential server 1 16. |0080) In exemplary embodiments, the signature 406 comprises a cryptographic signature (i.e.. digital signature) that is utilized to prevent spoofing. The signature 406 of the request from digital device 102 is verified by the credential server 1 16. If the signature 406 is not valid, then the request is rejected by the credential server 1 16.
|00811 The DDlD 408 comprises an identifier of the digital device 102. For example, the DDID 408 may comprise a MΛC address or any other identifier of the digital device 102.
|0U82| The SSID 410 comprises an identifier of the network access point or Wi-Fi service provider. For example, the SSID 410 may comprise the name of the service provider or the name of the venue operating the network device 104.
|0083| The version identifier 412 may identify the protocol or format of the credential request 400. For example, a digital device 102 may generate the credential request 400 and organi/e the data in a number of different formats. Each different format may be associated with a different version identifier. In some embodiments, the components of the credential request response module 206 may be updated, reconfigured, or altered over lime, which may affect the structure of the credential request 400. Λs a result, the credential server 1 16 may receive a plurality of credential requests 400 which are formatted differently. The credential server 1 16 may access the required information from each credential request based on the respective version identifier.
|0084| HC 5 is a block diagram of an exemplary credential request response. According to exemplary embodiments, the credential request response module 206 may generate lhe credential request response 500. In one embodiment, the credential request response 500 may comprise encrypted text 502. The encrypted text may comprise an optional nonce 504 and credential information 506. The credential information may comprise key/value pairs 508 through 510
JU085] Λs previously discussed, the credential request response may be formatted as a DNS response comprising encrypted text 502. The encrypted text 502 includes the network credentials (e.g . uscmame. password, and login procedure information). Although the credential request response 500 is depicted as including encrypted text 502. the text within the credential request response 500 need not be encrypted.
|0086] The encrypted text 502 may comprise the nonce. The nonce, as previously discussed, may be retrieved from the credential request. Once the credential request response 500 is received by lhe digital device 102. the digital device 102 may compare the nonce within the credential request response 500 to the nonce transmitted within the credential request for authentication. Although the nonce is depicted as within the credential recμiest response 500 in FlG. 5. the nonce is optional.
|U087| The credential information 506 may comprise a username, password, login procedure information, or a combination of these. The credential information 506 may comprise key/value pairs 508 through 510. Any number of key/value pairs may be within the credential information 506. The key/value pairs may represent the credential information to be received and translated by the digital device 102. The credential information 506 is depicted as key/value pairs for exemplary purposes only; the credential information may be within any format not necessarily limited to key/value pairs.
|0088] I K). 6 is a How diagram of the exemplary method for providing network credentials. In step 602. the credential server 1 16 receives the credential request from the digital device 102.
(0089) In various embodiments, the credential server 1 16 decrypts and authenticates the digital signature with an encryption key. The credential server 1 16 may then identify a network record based on the UDlD and the SSlD contained within the network record in step 604. In one example, the credential request response module 206 retrieves one or more network records associated with the DDIl) within the credential recμiest. The credential request response module 206 then identifies at least one network credential associated with the SSlD within the retrieved network record(s).
100901 In step 606. the credential request response module 206 retrieves the identified network credeιuial(s) from the selected network record. In one example, the credential request response module 206 identifies a username and password that the user of the digital device 102 must provide to the authentication server 108 to obtain network access. The credential request response module 206 generates the credential request response comprising the network credentials (e.g.. username. password) to the digital device 102 in step 608.
|0091 ] In some embodiments, the credential request response module 206 may identify login procedural information as part of the network credentials. The credential request response module 206 may retrieve the login procedural information from the network record (e.g.. the same network record containing a password associated with the SSID). The login procedural information may contain a form identifier and instructions (e.g.. parameters) for the digital device 102 to follow to obtain network access. In one example, the digital device 102 retrieves the form identifier and instructions from the network credential within the credential request response. The digital device 102 may identify forms received from the authentication server 108 and input data based on the form identifier and instructions. In another example, the digital device 102 provides information to the authentication server 108 to obtain network access based on the login procedural information included within the credential request response. The process of providing information to the authentication server 108 is further described in U.S. patent application Ser. No. 1 1/899.638 entitled "Systems and Methods for Obtaining Network Access", filed Sep. 6. 2007.
(0092] FlG. 7 is another flow diagram of the exemplary method for providing network credentials. The digital device 102 may search and find an available wireless network via the network device 104. While connecting to the hotspot, the digital device 102 may receive network configuration information in step 702. Network configuration information may comprise an identifier for the network device 104, or the DNS server 1 10. In one example, the digital device 102 receives a DNS server IP address (e.g., for the DNS server 1 10) during the connection process.
|0093| In step 704. the digital device 102 generates the credential request. The credential request maj comprise a sequence identifier. DDlD, and SSID. In step 706. the digital device 102 optionally generates a nonce and digitally signs the credential request with an encryption key. The digital device 102 transmits the credential request as a standard protocol in step 708. fhe network device 104 may receive and forward the credential request to the communication network 1 14. In various embodiments, the network device 104 may provide the credential request io the DNS server 1 10 which may forward the credential request to the credential server 1 16.
|0094| In exemplary embodiments, the credential request module 204 of the credential server 1 16 receives the credential request. The credential request module 204 may retrieve an encryption key associated with the DDID within the credential server from the encryption key storage 212. The credential request module 204 may then decrypt the digital signature of the credential request for authentication. The credential request module 204 may further retrieve the nonce and a sequence identifier from the credential request.
|()095) The credential request response module 206 oi the credential server 1 16 may then retrieve a network record associated with the DDID and the SSID from the network record storage 210. The credential request response module 206 retrieves network credentials from the network record and generates the credential request response. The credential request response may comprise the network credentials and the nonce. The encryption/decryption module 208 may encrypt the credential request response with an encryption key associated with the DDID retrieved from the encryption key storage 212. In some embodiments, the credential request response is formatted as a standard protocol (e.g., DNS).
|0()96| In step 710. the digital device 102 receives the credential request response. The digital device 102 subsequently authenticates the credential request response in step 712. In one example, the digital device 102 decrypts the credential request response with the same encryption key used to digitally sign the credential request. The digital device 102 may further retrieve the nonce within the credential request response and compare the nonce to the nonce transmitted within the credential request for further authentication. If the credential request response is found to be authentic, the digital device 102 retrieves the network credentials from the credential request response in step 714.
|0097| In step 716, the digital device 102 identifies the authentication requirements associated w ith network access. In various embodiments, the digital device 102 determines the correct information and network credentials to provide to the authentication server 108. In one example, the digital device 102 retrieves one or more network access pages from the authentication server 108. The digital device 102 may access the correct network access page from the authentication server and automatically make selections. In one example, the digital device 102 may automatically activate selections (e.g.. activate buttons within the network access page, check boxes, and select radio buttons).
|0()98] For example, the credential request response module 206 may provide instructions to the digital device 102 for the automatic selections within a network access page. Λs discussed herein, a network access page may comprise one or more web pages., one or more tags, or a combination of both retrieved from the authentication server 108. In one example, software within the digital device 102 may automatically check all selection boxes within a network access page. The digital device 102 may then uncheck select boxes based on the login procedure information. Those skilled in the art will appreciate that there may be many methods with which selections may automatically be made. In other embodiments, the digital device 102 receives XMI. tags from the authentication server 108. The digital device 102 may provide information based on the XMl. tags and instructions within the login procedural information to the authentication server 108 to obtain network access.
|0099| In step 718. the digital device 102 provides the network credential to the network device 104 to obtain network access to the communication network 1 14. In one example, the credential request response module 206 retrieves one or more Forms from the authentication server 108. populates the loππs with one or more network credentials, and provides the completed forms to the authentication server 108. In another example, the credential recμiesl response module 200 provides the network credentials as needed to the authentication server 108. Once the network credentials are received by the authentication server 108, the authentication server 108 may allow communication between the digital device 102 and the communication network 1 14. In one example, the authentication server 108 commands the access controller 1 12 to allow the digital device 102 access to the communication network 1 14.
|00100] The digital device 102 may subsequently test network connectivity to confirm network access. In one example, the digital device 102 transmits a request to the credential server I 16 to determine if the communication network 1 14 is available. In some embodiments, the query or command contains the sequence identifier previously submitted within the credential request. If network access is successful, the credential server 1 16 may receive the request and retrieve the sequence identifier. The credential server I 16 may then confirm that network access was successful.
[00101 ] FlG. 8 is a How diagram oi an exemplar) method for receiving and storing network credentials. In various embodiments, users may create and store network records within the credential server 1 16. IOr example, the credential server 1 16 may comprise a credential storage module (not depicted) that provides a graphical user interface (GUI) that allows users to create, store, update, remove, and modify network records.
j 001021 In step 802. the credential server 1 16 provides the user with a network credential request form. In one example, the credential server 1 16 provides the network credential request form to a user as one or more web pages over the Internet. The network credential request form is configured to receive the service provider's name (e.g., operator's name) and/or SSID and network credentials.
1001031 The service provider's name may comprise the name of the entity that operates the hotspoi. one or more components related to the hotspot (e.g.. the network device 104). or the infrastructure of the local area network 106. In some embodiments, the service provider's name comprises the name of an organization that manages one or more hotspols for another service provider. In one example, a coffee shop and bookstore may both use a third-party manager to manage the hotspots. even if the hotspots have different service providers. In some embodiments, the network credential request form may be configured to receive the third-party manager's name. In some embodiments, the service provider's name comprises the name of an organization that resells access to a hotspot network (e.g., an aggregator).
[00I 04| The network credential request form may also receive the SSlD as a network service selection. In one example, the network credential request form comprises a pull down menu of different service providers and/or hotspots that the user may select. For example, a user may select "Starbucks" or "San Francisco International Airport" as a hotspol. The user may be given further options to such as geographic locations of the hotspol. The user may also select the service provider. For example, the user may select "T-Mobile" as a service provider. The network credential request form may then allow the user to select among one or more various hotspots associated with T-mobile. The sclcction(s) may then be stored as a network record. Alternately, a network service identifier associated with the seleclion(s) is generated as the SSlD.
|0()I05| Further, the network credential request form may receive the network credential from the user. For example, the user may enter a uscrname, password, passcode as network credentials within the network credential request form. In some embodiments, after the network credential request form receives the SSID. the network credential request form determines the type of network credentials required. For example, the network credential request form identities the information required to access a network at a holspot at the San Francisco International Airport previously selected by the user. The network credential request form then generates fields or selections to allow the user to enter only the information necessary (e g.. username, password) to obtain network access at the hotspot.
|0θl06| The credential server 1 16 may also require the user to register prior lo receiving the network credential request form. During registration, the user may be required to agree to terms of service and enter customer information. Customer information comprises a username and a password to access the credential server 1 16 to store network credentials. Optionally, the customer information may comprise the user's address, contact information, and payment options for the user lo use services offered by the credential server 1 16.
|00107| In step 804. the credential server 1 16 receives the customer information and network service selections over the network credential request form. In step 806. the credential server may retrieve the network credential. In step 808 the credential server 1 16 receives the customer information. The credential server 1 16 associates the network credeniial with the customer infoπnation, network service selection and network crcdcntial(s) in sicp 810 to create a network record. The network record is then stored in step 812. 1001081 In some embodiments, the user may manually access the credential server 1 16 via the Internet. In other embodiments, the user may download and install network credential software on the digital device 102. The network credential software may identify and send the DDlD of the digital device 1 U2 to the credential server 1 16. In other embodiments, the network credential software may be pre-inslalled on the digital device 102. When the digital device 102 first activates the network credential software, the network credential software ma) identify and send the UDlD of the digital device 102 to the credential server.
|00109| '["he user may input the SSID (.e.g., identify the service provider or hotspots) into the network credential software. The user may also input the network credentials within the network credential software. After the network credential software has obtained the DDID. SSID. and network credentials, the network credential software may upload the information to the credential server 1 16 w hich stores the information within a network record. In various embodiment... the network credential software may be downloaded from the credential server 1 16.
[001 10| FIG. 9 is a block diagram of an exemplary digital device. The credential server 1 16 comprise* a processor 900, a memory system 902. a storage system 904, an I/O interlace 906. a communication network interface 908. and a display interface 910. 1 he processor 900 is configured to execute executable instructions (e.g.. programs). In some embodiments, the processor 900 comprises circuitry or any processor capable of processing the executable instructions.
1001 1 1 ) The memory system 902 is any memory configured to store data. Some examples of the memory system 902 are storage devices, such as RAM or ROM. The memory system 902 can comprise the ram cache. In various embodiments, data is stored within the memory system 902. The data within the memory system 902 may be cleared or ultimately transferred to the storage system 904
(00112| The storage
Figure imgf000024_0001
stem 904 is any storage configured to retrieve and store data Some examples of the storage system 904 are (lash drives, hard drives, optical drives, and/or magnetic tape. In some embodiments, the credential server 1 16 includes a memory system 902 in the form of RAM and a storage system 904 in the form of Hash data. Both the memory system 902 and the storage system 904 comprise computer readable media which may store instructions or programs that arc executable by a computer processor including the processor 900. (00113 j The optional input/output (I/O) interface 906 is any device that receives input from the user and output data. The optional display interface 910 is any device that is configured to output graphics and data to a display. In one example, the display interface 910 is a graphics adapter. It will be appreciated thai not all digital devices 102 comprise either the I/O interface 906 or the display interface 910.
1001 14| 'Hie communication network interlace (com. network interface) 908 can be coupled U) a network (e g.. the local area network 106 and communication network 1 14) via the link 912. The communication network interface 908 may support communication over an Ethernet connection, a serial connection, a parallel connection, or an ATA connection, for example. The communication network interface 908 may also support wireless communication (e.g.. 802.1 1 a/b/g/n, Wilvlax). It will be apparent to those skilled in the art that the communication network interface 908 can support many wired and wireless standards.
[001 15| In various embodiments, systems and methods are described that enable a digital device to automatically select and access an available wireless network from a plurality of available wireless networks based on rules to achieve a satisfactory quality of service. Such rules could be implemented in the digital device itself, on a server in communication with the digital device, or a combination of both. In various embodiments, a wireless network is a network that allows wireless access between a digital device and a communication network such as the Internet.
(00116| In accordance with some embodiments, a user of a wireless digital device (e.g.. digital device capable of Wi-Fi communication) creates an account on a web server and registers one or more digital devices (e.g., computers, laptops, personal digital assistants, and cell phones) with that account. The registered digital devices can be managed and a network record provisioned by a central server (e.g.. a profile server or a credential server) via a network communication mechanism, such as HTfP.
[001 17| NG. 10 is a diagram of another environment in which embodiments of the present invention may be practiced. In various embodiments, a user with a digital device 1002 enters an area located near the network devices 1004 and 1006. In one example, the network devices 1004 and 1006 are separate access points which may each be used to establish communication between the digital device 1002 and the communication network 1008. |ϋϋl 18| The digital device 1002 may scan the area surrounding the digital device 1002. detect the two network devices 1004 and 1006. and generate a list ol'available wireless networks with which the digital device 1002 may establish communication. In some embodiments, the list ol'available wireless networks comprises DDlD. SSID. and/or BSSlD identifiers of the network devices 1004 and 1006.
|001 19] Subsequently, the digital device 1002 provides lhc list of available wireless networks to a rules server 1010. In one example, the digital device 1002 provides the list of available wireless networks as a standard protocol over an open port of cither the network device 1004 or the network device 1006 to the communication network 1008 and, ultimately, to the rules server 1010. In another example, the digital device 1002 provides the list of available wireless networks over another network such as a cellular communication network (e.g.. via CI)MA. GSM. 3Ci, or HVDO) or other wireless network (e.g., Wi-Fi. Wimax, or I -Tl-; network) not depicted.
|0012()J l hc rules server 1010 receives the list ol'available wireless networks and may retrieve a network profile for each wireless network identified within the list. Λ network profile is a record that is associated with a wireless network and comprises attributes concerning performance and/or quality of service provided by the associated network. In one example, the rules server 1010 identifies each network within the list and provides the SSID and/or BSSID for each network to the profile server 1014. The profile server 1014 may then provide a network profile (based on the SSID and/or BSSID) for each network to the rules server 1010. In some embodiments, the profile server 1014 retrieves the network profile from a database or other server (e.g., network database server 1012).
[ODl 21 J The rules server 1010 may select a preferred wireless network from the list of available wireless networks based on attributes within the network profiles and/or any attributes received from the digital device 1002. An attribute is a characteristic of a wireless network. In various embodiments, an attribute includes a performance metric, a shared indicator, or a service identifier. A performance metric of a wireless network is any measure of network performance. In some examples, a performance metric may comprise a latency metric, a bandwidth metric, or a quality of service (QOS) metric. Those skilled in the art will appreciate that a performance metric may include any type of metric ihat represents performance of a wireless network.
|Uϋl 22] A latency metric is a measurement that represents time to send a packet of data from the digital device to a server on a network. In some embodiments, the digital device 1002 may send an ICMP "echo request" packet to a server and listen for an ICMP "echo response" reply The latency metric may comprise an estimate of the round-trip time (generally in milliseconds) and/or include any packet loss. In another example, the latency metric is hall' of the estimated round-trip time.
|00123| Λ bandwidth metric is a measurement of the available bandwidth of a wireless nelwork. In one example, the digital device may test available bandwidth by sending a block of data over the wireless network to a server and timing the response.
|00124| Λ QOS metric is any metric that measures the quality of service of the wireless network, the access device 1004. the access device 1006. and/or the communication nelwork 1008. In one example, the QOS metric represents a reliability of the DHCP which is determined by timing the length of time required to get an IP address. The reliability of the Dl-ICP may comprise a statistical measurement, a probability of receiving an IP address at all. and^or a distribution of lime.
(00125 j Λ shared indicator indicates it a wireless network is shared. In some embodiments, the shared indicator may be one of three states including "shared." "not shared." and "unknown". .Although the shared indicator may only include a single state (e.g.. "not shared"), those skilled in the art will appreciate that the shared indicator can have any number of states. A wireless network with a shared indicator that indicates that the network is "shared" may indicate that the owner of the wireless network intends for others to use the nelwork. One example of a "shared" network may include a wireless network which is intentionally "open" (e.g., unencrypted) for others to use.
(00126] Λ wireless network with a shared indicator that indicates that the network is "not shared"' may indicate that the owner of the wireless network does not desire anyone who docs not have express permission to access the network. In one example, wireless networks that are not shared are oflen intentionally encrypted (e.g., through \VΕP or WPA) so as to limit access to unauthorized users. Not all networks thai are "not shared,"' however, are encrypted. IOr example, the owner of the network may misconfigure the nelwork device or, through error, allows a network to be open (i.e.. unencrypted) even though the network is nol intended to be shared.
|()0127| Λ w ireless network with a shared indicator that indicates that the network is "unknown"" may indicate that the wireless network may cither be "shared" or "not shared." For example, the intent of the owner of an open network may not be known. |00128| Λ service identifier may identify one υr more services supported by the wireless network. In one example, one or more service identifiers indicate that a wireless network supports VOIP, teleconferencing, and/or video conferencing. The service identifier may identify any kind of service supported by the wireless network. In some embodiments, the service identifier may identify services that arc not supported by the wireless network.
(00129] fhose skilled in the art will appreciate that the network profile may comprise any number of attributes Further, those skilled in the art will appreciate that the network profile may comprise only one or more performance metrics, only one shared indicator, or only one or more ser\ ice identifiers.
[00130] In various embodiments, the rules server 1010 selects one or more w ireless networks from the list of available wireless networks based on the attribute analysis. In one example, the rules server 1010 applies rules to the attributes. The rules may comprise minimum requirements, personalized settings, and attribute comparisons. In one example, the rules applied by the rules server 1010 may compare the attributes of one or more wireless networks to one or more minimum requirements. If the attributes for a wireless network are below the minimum requirements, then the wireless network may not be selected or removed lrom the list of available wireless networks.
[00131] In some embodiments, the rules applied by the rules server 1010 may be based on personalized settings by the user. For example, the user of the digital device 1002 may indicate personalized settings that indicate that the digital device 1002 is only to connect over wireless networks that have been designated as "shared." In this example, the rules server 1010 may select only those wireless networks with an attribute that comprises a shared indicator that identifies the wireless network as "shared."
[00132| In various embodiments, the rules applied by the rules server 1010 may be based on a comparison of the attributes of one wireless network to another In one example, the attributes may indicate that one wireless network has a greater bandwidth and shorter latency than another. In this example, the rules server 1010 may select one wireless network that has belter performance or valuable services in comparison to another. Those skilled in the art will appreciate that there may be any kind of rule used to select or to assist in the selection of a wireless network from the list of available wireless networks.
[00133] More than one rule may be applied by the rules server 1010 in making the wireless network selection. In one example, the rules server 1010 may apply personalized settings of the user before comparing attributes from different wireless networks and making a selection, In another example, the rules server 1010 may apply minimum requirements to the attributes before comparing the attributes.
J(IO 134J Once the rules server 1010 selects the wireless network based on the comparison of attributes from the network profiles, the rules server 1010 may provide the wireless network selection to the digital device 1002. A wireless network selection includes one or more identifiers (e.g.. network identifiers) that identify at least one wireless network. The wireless network selection may identify a single wireless network or comprise a sorted list of wireless networks which is sorted in order of preference.
|00135] In some embodiments, the rules server 1010 provides credentials (e.g.. a credential request response) for the selected wireless network in addition to the wireless network selection to the digital device 1002. In one example, the rules server 1010 provides the selected wireless network to the credential server 1016 which then provides a credential request response (even though no credential request has been made) for the selected wireless network to the digital device 1002. In other embodiments, the digital device 1002 receives the wireless network selection and then proceeds to transmit a credential request to the credential server 1016 to receive the credentials as discussed herein.
|00136| Further, in various embodiments, the digital device 1002 attempts to establish a connection based on the selected wireless network. If the connection fails, the digital device 1002 may transmit a credential request to the credential server 1016 to retrieve credentials for network access as described herein. The digital device 1002 may provide the credential request to the credential server 1016 over an open port of the network device 1004. In another example, the digital device 1002 may provide a credential request over any other network including a connection with a different network device or over a cellular connection.
|00137| Although the rules server 1010. network database server 1012. profile server 1014. the credential server 1016. and the web server 1018 are depicted as separate servers in Fig. 1. the servers may all be combined as one or more servers. Similarly, the functions of any of the servers may be performed by one of the other servers depicted or any other server.
|00138| Although FIG. 10 depicts multiple servers (e.g., rules server, network database server, profile server, credential server, and web server) for performing the selection of a wireless network from the plurality of available wireless networks, it will be appreciated by those skilled in the art that the selection of the wireless networks may occur within the digital device 1002. In one example, the digital device 1002 retrieves the scan results listing available wireless networks and selects a wireless network based on configuration preferences. The configuration preferences may be based on one or more locally executed rules, preferred signal strength, or any other attribute or attributes. In another example, the digital device 1002 selects a wireless network that supports a desired service (e.g., VOIP), meets a minimum latency standard, and meets a minimum QOS standard. In another example, the profile server 1014 provides the desired network profiles to the digital device 1002 which perforins the analysis to determine the preferred wireless network.
|00139| FIG. 1 1 is a fiow diagram of an exemplary process for providing a selection of a wireless network In step 1 102, a server (e.g.. rules server 1010. network database server 1012. profile server 1014. credential server 1016, or web server 1018) receives a list of available wireless networks from the digital device 1002. In some examples, the lisl comprises the SSIDs or BSSIDs of one or more network devices (e.g., network device 1 004 and network device 1006). The lisl can comprise any information that identifies a network and/or network device.
[00140J In some embodiments, the server also receives one or more attributes associated with a network and/or network device. In various embodiments, the digital device 1002 measures signal strength, determines available services, or lakes a performance metric for one or more networks and/or network devices that are identified on the list of available wireless networks.
(00141 j In step 1 104. the server retrieves a network profile from a plurality of network profiles stored in a network database for each available wireless network on the lisl of available wireless networks. Bach network profile may comprise at least one attribute. In some embodiments, not all wireless networks on the list have a network profile. When a network profile for a wireless network on this list is nol found, a network profile associated with the wireless network may be then created. If attributes are received from the digital device 1002. the server may determine which attribute received from the digital device 1002 is associated with which network, network device, and/or network profile.
[001421 In step 1 106. the server compares attributes from each network profile against minimum requirements. In one example, the server compares latency metrics from all network profiles in the list (if available) against a minimum latency metric. The server may also compare attributes received from the digital device 1002 against the minimum requirements. In slcp 1 108. the server removes one or more wireless networks from the list of available wireless networks and/or wireless nciwork profiles based on the comparison(s). For example, any wireless network with a latency metric that tails below the minimum latency metric may not be selected. In other embodiments, a wireless network with a latency metric that falls below the minimum latency metric may receive a weighted value that will be compared to other wireless networks to assist in the selection process.
|0U143| In some embodiments, the user of the digital device 1010 determines the minimum requirements. In other embodiments, the minimum requirements may be selected lor the user (e.g.. by an administrator).
|(K)144| In step 1 1 10. the server retrieves personalized settings for a user. The personalized settings may be sent by the user to the server. In some embodiments, the user has an account with the web server 1018 which contains the personalized settings. In one example, the server receives a user identifier along with the list of available wireless networks The server then accesses the user's account and receives the personalized settings which are then applied to the attributes of the network profiles associated with a wireless network on the list. In various embodiments, users may configure personalized settings (e.g., the "aggressiveness") at which a digital device 1002 may connect to a wireless network. Such configurations could include:
(a) Connect to anything open regardless of shared indicator;
(b) connect to anything open except those with default manufacturer SSIDs (e.g., "linksys") that likely indicate the owner simply IeIt the access point open out of the box and is unaware how to configure security functions;
(c) connect to anything open that the profile server 108 has seen (or stored information regarding the Wι-l-'i network): or
(d) connect to anything open with a shared indicator of "shared." or has been marked as shared by some other means.
Those skilled in the art will appreciate that there may be many personalized settings.
|00145| In step 1 1 12. the server removes one or more wireless networks from the list or network profiles based on the personalized settings. IOr example., the personalized settings may indicate that the user only wishes to connect to wireless networks that support videoconferencing and maintain a user defined QOS requirement. The server may then remove any wireless networks from the list of available wireless networks based on the attributes either from the network profiles or recently received from the digital device 1002 that do not meet the user's personalized settings. (00146) In some embodiments, the personalized settings may then be taken into account either before or after comparison of attributes from the network profiles. In one example, personalized settings indicate that the user does not wish to connect to a wireless network that is not designated as "shared" or providing certain services. In one example, the rules server 1010 either does not retrieve the network profiles associated with networks that do not provide the necessary service and/or does not compare attributes associated with those networks. In other embodiments, the digital device 1002 applies personalized sellings to results (e.g., the wireless network selection) received from the rules server 1010 before accessing a preferred wireless network.
(00147| In step I 1 14, the server compares the attributes of the remaining wireless networks on the list. In various embodiments, the server will apply a weight and normalize one or more of the attributes (e.g., metrics) from within the network profiles. In some embodiments, older attributes may be removed or weighed less than other attributes that are newer. In one example, any metric that is over one week old may receive less weight than a similar newer metric. In another example, a metric that is over one month old may be removed from the network profiles or not considered in the comparison. Those skilled in the art will appreciate that not all attributes or information from within the network profiles may be taken into account in the comparison.
|00148| Bach network profile may comprise any number of attributes In one example, the rules server 1010 makes a wireless network selection based on comparing a metric from two different network profiles. In some embodiments, the rules server 1010 selects a wireless network based on a comparison between two similar metrics (i.e., the latency metric from the first network profile is compared to the latency metric from the second network profile). Those skilled in the an will appreciate that the rules server 1010 may select a wireless network based on comparisons between two similar recently received metrics or a recently received metric and another within a network profile.
J00149] In other embodiments, the rules server 1010 selects a wireless network based on a comparison of two dissimilar metrics (i.e., the latency metric from the first network profile is compared to a bandwidth metric from the second network profile). The rules server 1010 may execute an algorithm to weigh and normalize similar and/or dissimilar metrics or attributes in order to make a comparison for selecting the appropriate wireless network. In one example, the rules server 1010 compares a latency metric in the first network profile to a bandwidth metric in the second network profile. The rules server 1010 may execute an algorithm to weigh and normalize the metrics. The algorithm may weigh the latency metric more than the bandwidth metric since latency may have a greater impact on network performance.
[00150| .An attribute or metric may receive different weights depending on any number of factors. Tor example, a latency metric may receive a given weight when the metric falls within an acceptable range, otherwise the latency metric may be significantly less weight. Λ metric rcccntl) received from the digital device 1002 may receive greater weight than a metric of a similar type within a network profile. Those skilled in the art will appreciate that there are many ways to compare similar and/or dissimilar performance and/or qualitative metrics.
[00151 1 In step 1 1 16. the ser\ er .selects a wireless network based on the comparison of attributes "I he wireless network selection may comprise a single preferred wireless network or a list o\' wireless networks sorted in order of preference. In one example, the rules server 1010 identifies the most preferred network, the second most preferred network, and so on. I he rules server 1010 then provides the wireless network selection to the digital device 1002 in step 1 1 18.
[00152] In various embodiments, the rules server 1010 only compares metrics that are recently received from the digital device 1002. In one example, two latency metrics are received from the digital device 1002. Hach latency metric is associated with a separate wireless network identified on a list of available networks. In this example, the rules server 1010 ιna> select a wireless network based on a comparison of the two attributes.
|00l53J FIG. 12 is a flow diagram of an exemplary process for selecting a wireless network. In step 1002. the digital device 1002 enters into an area with two wireless networks and the digital device 1202 scans for networks to access. In step 1204. the digital device 1002 receives a first and a second network identifier of available wireless networks. Λs discussed herein, the first and second network identifiers may comprise BSSl Ds. SSIOs, or any other network identifiers For example, the first network identifier may comprise a BSSII) and the second network identifier may comprise an SSID identifier. In another example, the first network may provide multiple identifiers including a BSSID and an SSID while the second network provides only an SSlD. In this example, the first network identifier may comprise both the BSSlD and the SSlD of the first network device while the second network identifier is only an SSlD of the second network device. |l)0154| In step 1206. the digital device 1002 generates a list of available wireless networks. For example, the digital device 1002 may generate a list comprising the first network identifier and the second network identifier. The list is then provided to a server in step 1208.
(00155) In step 1210. the digital device 1002 receives a wireless network selection from the server. The wireless network selection may comprise an identifier that identifies the selected wireless network or identifies the network device associated with the selected wireless network (e.g.. a BSSID and/or SSlD of the network device). In various embodiments, the wireless network selection may comprise a list of wireless networks sorted bv preference. The list may comprise two or more identifiers that identifies a selected wireless network or network device
|00156] In step 1212. the digital device 1002 receives credentials for the wireless network selection from the .server. In some embodiments, the credentials are received from the same server that received the list of available wireless networks from the digital device 1002.
|00157] In various embodiments, the digital device 1002 receives the wireless network selection from the server and then provides a credential request to receive the credentials for the desired network. In one example, the digital device 1002 provides the credential request in the same manner that the digital device 1002 provided the list of available wireless networks (e.g.. over an open port of a network). In some embodiments, the preferred network does not require credentials or the credentials are stored locally on the digital device 1002.
|00158| In step 1214, the digital device 1002 accesses the selected wireless network with the credentials. The process of applying the credentials to a login page or the like is discussed herein.
|00159| In various embodiments, the digital device 1002 may provide the list of available wireless networks to the server over an open port of a network device in a manner similar to providing a credential request discussed herein. In other embodiments, the digital device 1002 may provide the list to the server over another network. In one example, the digital device 1002 generates a list of available Wi-Fi networks and provides the list over a cellular network (e.g.. 1'"V-DO or FlSDPA network). In this example, the wireless network selection may be returned to the digital device over the cellular network and then the digital device 1002 may attempt to access the preferred Wi-Fi network. |00 I 60| In another example, the digital device 1002 accesses one wireless network. The digital device 1002 can then provide a list of the available wireless networks to the server. The server may return the wireless network selection to the digital device 1002. If the preferred wireless network is not the network that the digital device 1002 has originally accessed, then the digital device 1002 may drop the connection and access the preferred wireless network.
100161 [ Although l igs. 10- 12 contemplate a server receiving a list of available wireless networks, determining a wireless network selection, and providing the selection to the digital device 1002. those skilled in the art will appreciate that a server is not necessary. In one example, the digital device 1002 generates a list of available wireless networks and then retrieves available information regarding the networks on the list (c.g , from locally stored network profiles, from one or more network devices, from a local or remote database, and'Or retrieving information from another network such as the Internet). The digital device 1002 may then make comparisons based on what attributes associated with the networks are available to make a selection or generate a prioritized list. The digital device 1002 may then access the selected wireless network.
[00162] In various embodiments, the digital device 1002 may generate and provide attributes regarding one or more networks to update the network profiles. In one example, the digital device 1002 determines the quality of the signal, bandwidth, or any other metrics and provides those metrics along w ith the list of available wireless networks to a server. In another example, as the digital device 1002 accesses a selected wireless network, measures attributes, and provides the attributes update metrics within a network profile. Attributes (c g., latency metrics, bandwidth metrics, and QOS metrics) may be taken by the digital device 1002 at any time and used to update the network profiles.
|00163| FIG. 13 is a diagram for selecting a wireless network and accessing the selected wireless network. In various embodiments, the network device 1004 and network device 1006 provide a first and second network identifiers to the digital device 1002 in steps 1302 and 1304. In step 1306. the digital device 1002 generates metrics (i.e.. attributes) by taking measurements regarding wireless networks associated with the network device 1004 and network device 1006. In some examples, the metrics may include latency, strength of signal, or QOS metric.
|00164| In step 1308. the digital device 1002 generates a list of available wireless networks which may include the network identifier from the network device 1004 as well as the network identifier from the network device 1006. In some embodiments, the digital device 1002 may also comprise personalized settings which may indicate a preference between the two network identifiers or eliminate one or both of the network identifiers. In one example, the personalized settings indicate that only open networks that do not have a default manufacturer SSID (e.g.. "linksys") may be accessed. In this example, if the network identifier from the network device 1004 indicates a default manufacturer SSlD. the digital device 1002 may not include that network identifier for the network device 1004 in the list of available wireless networks. .
j00165J In some embodiments, if the digital device 1002 cannot generate a list identifying at leaM two or more networks, the digital device 1002 does not send the list. In one example, if the digital device 1002 can only identify one available wireless network that meets the user's requirements, then the digital device 1002 may attempt to access the wireless network directly or send a credential request for to a server to retrieve any necessary credentials for access.
100166 ) In step 1310, the digital device 1002 provides the attributes and the list of available wireless networks over an open port (e.g.. port 53) of the network device 1006 which acts like a proxy in providing the attributes and list of available networks to the rules serve i 1010. In other embodiments, the digital device 1002 provides the attributes and the list over an open port of the network device 1004. Alternately, the digital device 1002 may provide the attributes and the list over separate networks (e.g., the attributes over an open port of one of the network devices and the list over a cellular network). In step 1312. the network device 1006 acts as a proxy by providing the attributes and list via DNS to the rules server 1010
|00167| In step 13 14. the rules server 1010 retrieves network profiles. In one example, the rules server 1010 retrieves the network identifiers from the list and retrieves network profiles associated with the network identifiers.
|00168| In step 1316, the rules server 1010 (or profile server 1014) updates attributes within the network profiles with the attributes received from the digital device 1002. In one example, a new latency metric from the digital device 1002 is used to update the network profile associated with the network identifier from the network device 1004. Λ time-to-live value associated with the attribute may also be updated to indicate that the new latency metric is recent. |00 l69| In step 1318. lhe rules server 1010 sclcets a network device based υn comparing the attributes from within the network profiles. In some embodiments, the rules server 1010 also applies personalized settings from the digital device 1002 or from an account associated with the digital device 1002 (e.g., via the web server 1018) before making a selection. The rules server 1010 may prepare a prioritized list of the two network devices from the list provided by the digital device 1002 The list is prioritized based on which of the two network devices provides the most desirable service based on the metrics from the network profiles.
J 00170 ) In step 1320, the rules server 1010 provides the wireless network selection and credentials via DNS back to the network device 1006 to function as a proxy to send the information to the digital device 1002. In one example, the rules server 1010 selects the network device 1004. The rules server 1010 may retrieve credentials for the network device 1004 based on the network identifier of the network device 1004. For example, the rules server 1010 may provide a credential request to the credential server 1016. The credential server 1016 may provide a credential request response containing necessary credentials to the rules server 1010 w hich then sends both the credentials received from the credential server 1016 a.s v\ el I as the wireless network selection to the digital device 1002.
|0θl 71 j In step 1 322, then network device 1006 provides the network selection and the credentials ovei the open porl to the digital device 1002. In step 1324. the digital device 1002 provides the credentials to access the network device 1004 and generates additional attributes regarding the network (i.e.. lake additional measurements) Once a connection is established, the new attributes are provided to the rules server 1010 or profile server 1014 to update the network profile associated with the network device 1004 in step 1326. In one example, the digital device 1002 may measure the time required to establish the connection with the network device 1004. The time required to establish the connection may then be used to update attributes in a network profile. If a connection is not established or fails, that information may also be provided to update the associated network profile.
|00172| In some embodiments, if the network connection with the selected network fails, the digital device 1002 may re-attempt to make the connection. I f multiple attempts to make the connection fail, information regarding the failure is sent to update the associated network profile. The digital device 1002 may then attempt to make a connection with another network device (e.g.. the network device 1006). In some embodiments, the digital device 1002 re-scans the area, generates a new list of available networks which may not include the network thai the digital device 1002 failed to connect. The new list may be sent to the rules server 1010 to receive a new wireless network selection and the process may repeat. [00 I 73| In some embodiments, lhc rules server 1010 provides a prioritized list of available wireless networks sorted by preference. In one example, the rules server 1010 provides a prioritized list of three networks to the digital device 1002. The digital device 1002 may then attempt to access the first wireless network on the prioritized list. If the digital device 1002 is unable to connect to the first wireless network, then the digital device 1002 may proceed to attempt to connect to the next network on the list. Those skilled in the art will appreciate that the prioritized list may contain all. one, or some of the wireless networks identified in the list of available wireless networks. For example, the rules server 1010 may not identify wireless networks which are known to provide poor performance, do not provide desired service (e.g., VOIP service)., and/or are otherwise blacklisted.
|00I 74| In various embodiments, the user of the digital device 1002 may override the wireless network selection to access any wireless network. In one example, the user chooses the priority of available wireless networks. In some embodiments, the user may configure the digital device 1002 or configure an account with the web server 1018 to include personal preferences that may reorder or otherwise alter a prioritized list of wireless networks from the rules server 1010. For example, the list of available wireless networks may be altered based on user preferences by the digital device 1002 or the web server 1018 prior to being provided to the rules server 1010.
(00175| In some embodiments, in addition to one or more open Wi-Fi networks, there may also be one or more encrypted Wi-Fi networks in a given location. Λ digital device 1002 ma) connect to an open Wi-Fi network and transmit the SSlD of other Wi-Fi networks, including encrypted Wi-Fi networks, to the rules server 1010 via a network communication protocol such as HTlT.
[00176| The rules server 1010 may then determine, based on personalized settings or other rules, that an available encrypted Wi-Fi network is the preferred choice for a network connection. The rules server 1010 may transmit the necessary encryption keys to the digital device 1002 over the current open Wi-Fi network connection and send instructions to the digital device 1002 to switch to the encrypted Wi-Fi network.
|00177| Λs discussed herein, an SSID or other network identifier may be insufficient to identify network credentials necessary to access a network. For example, multiple networks may share or may potentially share the same SSID or other network identifier. Λs such, the credential server may provide network credentials for at least one of the networks with the SSID. If the digital device is unsuccessful in gaining access to the network, the digital device may submit a new credential request to the credential server. The credential server may then provide the network credentials tor a different network sharing the same SSlD. This process, in some embodiments, may continue until the correct network credentials are provided, a predetermined amount of time is expired, or a predetermined number of attempts are made.
|00178| In some embodiments, the credential server may select the network credentials from the potential variety of networks sharing the same SSlD in any number of ways. For example, the credential server may provide the network credentials for the most commonly accessed network by the largest number of people. In some embodiments, the credential server may provide the network credentials for the most commonly access network by the user or digital device recμiesting access. Hie credential server may alternately provide the network credentials for the network that is located most closely to the user (e.g.. through GPS location information, AGPS location information, or through a list of other network available to the digital device as may be identified by a scan by the digital device). If network credentials previously provided to the digital device are unsuccessful, the credential server may select new network credentials based on another method.
[00179] In some embodiments, the credential server 1 16 may request additional network information rather than provide network credentials. For example, the credential server may receive a network identifier and determine that the network identifier is shared or may be potentially shared by multiple networks. Subscqucntl) . the credential request response may request additional network information from the digital device. Additional network information may comprise any additional information regarding the network including, for example, a title of a web page from a network device associated with the network or any other information. The digital device may then provide the additional network information to the credential server which may subsequently identify the correct network credentials to provide to the digital device.
|0018ϋ| FIG. 14 is a box diagram of a digital device 102 in some embodiments. In various embodiments, the digital device 102 may be configured to provide additional network information to the credential server 1 16 to receive network credentials when the network identifier associated with a network may be shared. The digital device 102 may comprise a request module 1402. a verification module 1404. a retrieval module 1406, a network access engine 1408. and a list module 1410. The digital device 102 may. in many respects, perform as discussed herein. |00l81 1 The request module 1402 may be configured to scan an area in proximity to the digital device 102 and receive one or more network identifiers, such as SSIDs, associated with wireless nctwork(s). The request module 1402 may also be configured to generate a credential request including the one or more network identifiers. The credential request may be formatted as a DNS protocol message. .The credential request may be formatted in a UDP protocol. The request module 1402 may provide the credential request to a network via a network device associated with at least one of the scanned networks. Λs discussed herein, the network device may include at least one open port, such as port 53. The request module 1402 may provide the credential request to the credential server 1 16 via the open port.
|OO I821 The response module 1404 may receive a credential request response from the credential server 1 16 (e.g., via the open port of the network device 104). In various embodiments, the response module 1404 may cither retrieve network credentials or a request for additional network information from the credential request response. In one example, if the credential server 1 16 determines there is insufficient information (e.g., the SSID is shared by multiple networks), the credential server 1 16 may provide a credential request response that requests additional network information from the digital device 102.
(00183J Additional network information may include any information regarding the network. In some embodiments, the additional network information includes an SSID, BSSID. title of a wcbpage received from the network device 104. Wireless Internet Service Provider roaming (WlSPr) tags, a first header on a web page, and/or a URL for redirection received from the network device 104. Those skilled in the art will appreciate that the additional network information may include any information including identifiers that identify the network device, identifiers that identify the network, or information received from the network device (e.g.. a login page, a redirect page, or a web page with fields requesting information).
[00184 j The retrieval module 1406 may be configured to provide additional information to the credential server 1 16 based on the request for additional network information. In various embodiments, the retrieval module 1406 generates a second credential request including additional network information previously received from the network device 104. In some embodiments, the retrieval module 1406 retrieves additional network information from the network device 104. For example, the retrieval module 1406 may request and receive a web page from the network device 104. The retrieval module 1406 may then provide the title. URL of a web page, a redirect page identifier, an identifier associated with one or more fields of a web page received from the network device 104. or the like, within a second credential request. The request module 1402 may then pros'ide the second credential request to the network (e.g.. in a method similar tυ that as discussed regarding the initial credential request). Like the first credential request, the second credential request may be formatted as a DNS protocol message. 'ITιc credential request may be formatted in a UDP protocol .
|OO185| If the network identifier and/or the additional network information is sufficient, the response module 1404 may receive a second credential request response from the credential server 1 16 in response to the second credential request. The second credential request may include network credentials.
|00186| The network access engine 1408 may be configured to provide the network credentials to a wireless network associated with the network identifier and/or the additional network information. The network access engine 1408 may be configured to provide the network credentials to the network as described herein as well as co-pending U.S. patent application Ser. No. 1 1 /899.697. entitled "System and fvlethod for Acquiring Network Credentials," filed Sep 6, 2007. which is incorporated herein.
|00! 87| If network access is granted, the network access engine 1408 may optionally send a message to the credential server 1 16 to confirm that the network credentials provided were successful. If network access is not granted, the network access engine 1408 may notify the retrieval module 1406 to provide additional network information in another credential request and/or may generate a message to the credential server 1 16 that the access attempt with the network credentials received was unsuccessful. If the digital device 102 does not access the network the digital device 102 may provide a log of information to the credential server 1 16 regarding the attempted access when the digital device 102 next successfully gains access to a network.
|OO188| In some embodiments, vvhiielists and/or blacklists may be used to reduce or avoid sending multiple credential requests. For example, the list module 1410 may be configured to check one or more network identifiers against a whitelist and/or a blacklist. The whitelist and/or blacklist may be updated periodically by the credential server 1 16 or any other digital device 102.
|00189| In some embodiments, the list module 1410 checks a network identifier against a blacklist. If the network identifier (e.g.. an SSlD) is on the blacklist, additional network information may be required. For example, the blacklist may comprise a list of SSIDs that may be shared by multiple networks. If the network identifier is on a blacklist, the list module 1410 may notify the retrieval module 1406 to provide additional network information within a credential request. The credential server 1 16 receiving the credential request may use the network identifier and the additional network information to provide the network credentials. In some embodiments, the blacklist includes a list of SSIDs that may be shared by multiple networks as well as instructions as to what additional network information that may be provided to improve the speed and/or possibility of receiving the correct network credentials.
|00190] In some embodiments, the list module 1410 checks a network identifier against a whitclist If the network identifier (e.g., an SSlD) is on the whiteiist, additional network information may not be required. For example, the whitelisi may comprise a list of SSIDs thai may not be shared by multiple networks. If the network identifier is not on the whitelist, however, ihc list module 1410 may notify the retrieval module 1406 to provide additional network information within a credential request. The credential server 1 16 receiving the credential request may use the network identifier and the additional network information to provide the network credentials.
[00191 J In some embodiments, the blacklist comprises a list of network identifiers (e.g.. SSlDs or BSSlDs) of network devices that the digital device 102 does not have permission to access. For example, an owner of an unprotected network device may wish for only a limited number of people (e.g., friends or customers at a specific coffee shop) to access the network. In some embodiments, the digital device 102 may receive the network identifier of the unprotected network device and the network identifier may be compared against the blacklist (c g.. either by the digital device 102 or the credential server 1 16). If the network identifier is associated with the blacklist, the digital device 102 may either stop attempting to connect to the network or disconnect from the network.
|00192| The whitelisi may also comprise a list of network identifiers that are associated with networks that the digital device 102 is allowed to access. For example, lhe digital device 102 or the credential server 1 16 may check the network identifier against the whitelist to determine if the network is associated with the whitelist. If the network is associated with the whitelisi, the digital device 102 may connect or remain connected to the network. In some embodiments, the whitelist comprises a list of preferred networks. In this example, the digital device 102 may select a network identifier associated with the whitelist from a list of multiple available networks. |OO193| FlG. 15 is a How diagram of an exemplary method for retrieving network credentials when a network identifier may be insufficient to identify network credentials in sonic embodiments. The How diagram depicts communication and activities between and by the digital device 102, the network device 104, the DNS server 1 10, and the credential server 1 16 in some embodiments. In various embodiments, the digital device 102 may scan an area proximate to the digital device 102 to identify one or more wireless networks. In step 1502, a network device 104 may respond lo the scan from the digital device 102 and provide a network identifier. In some embodiments, the network identifier is an SSID and/or a BSSID.
|00194| In step 1504. the digital device 102 generates a first credential request containing the received network identifier. The first credential request may also comprise a digital device 102 identifier, a software license number, or any other information. The ilrsl credential request may be encoded. For example, the information within the first credential request may be hex-encoded.
|00195) In various embodiments, the first credential request is in a DNS protocol which is provided to the DNS server 1 10 via an open port (e.g., port 53) of the network device 104. The DNS server 1 10 may redirect the first credential request to the credential server 1 16 in step 1508.
[UOl 961 The credential server 1 16 may comprise or be the rules server 1010. In some embodiments, the credential server 1 16 receives the first credential request and may retrieve the network identifier. In some embodiments, the credential server 1 16 decodes the first credential request in order to retrieve of the network identifier.
100197) In step 1510. the credential server I 16 determines if the network identifier is sufficient to identify a network credential. For example, the network identifier may possibly be shared with another network. In some embodiments, the credential server 1 16 scans a data structure such as a table, database, or any other data structure, to determine if the network identifier from the first credential request is possibly shared by two or more networks. In one example, the data structure is a blacklist which includes a list of network identifiers that are commonly shared by multiple networks.
|00198| In some embodiments, the credential server 1 16 may determine that there is insufficient information to identify a network credential. In one example, the network identifier may comprise both an SSlD and a BSSID. The SSID may be associated with multiple networks and the credential server 1 16 may have no network credentials associated with the BSSlD (e.g., a MAC address of the network device). If the network identifier is insufficient, the credential server 1 16 may generate a first credential request response requesting additional network information. The additional network information may be used by the credential server 1 16 to identify the correct network and/or network credential.
|00I 99| In various embodiments, the request for additional network information comprises a request for any additional information that the digital device 102 may have access regarding the network device 104. In some embodiments, the credential server 1 16 determines what additional network information is necessary to distinguish the network credentials and specifically requests for that additional network information only. For example, the title oi a web page received from the network device 104 may be sufficient to differentiate between two possible networks. The credential server 1 16 may include a request the title of the web page of the network device 104 in the first credential request response. In other embodiments, lhe credential server 1 16 may request a variety of different types of additional network information.
[00200J The first credential request response containing the request for additional network information may be provided back to the DNS server 1 10. In one example, the first credential request response is formatted as a UDP protocol and provided back to the digital device 102 in a manner similar to the process that the credential server 1 16 receiv ed the first credential request. The DNS server 1 10 may receive the first credential request response and redirect the first credential request response back to the digital device 102 via the open port of the network device 104 in step 1 514.
|002011 In step 1516. the digital device 102 retrieves the request for additional information from the first credential request response and prepares a second credential request with additional network information 1516. In some embodiments, the digital device 102 requests a web page from the network device 104. The request may be a request for network access, l he additional network information may comprise information received from the network device 104 including the SSID. BSSID. IP address, or any other information. In some embodiments, the additional network information may comprise a title, hash. WISPr tag, or URL υi' a web page or any part of a web page received from the network device 104.
|00202| In step 1518. the digital device 102 provides the second credential request to the DNS server 1 10. The second credential request may be encoded. Like the first credential request, the second credential request may be formatted as a UDP protocol and provided to lhc DNS server 1 10 via the open port on the network device 104. The DNS server 1 I O may subsequently direct the second credential request to the credential server 1 16 in step 1520.
|00203| In step 1522. the credential server 1 16 retrieves network credentials, based, at least in pan. on ihe additional network information. The credential server 1 16 may also retrieve the network credentials based, at least in part, on the network identifier and/or other additional network information previously received from the digital device 102. In one example, the credential server 1 16 may retrieve the network credentials from a data structure associated with the network identifier and/or any additional network information. The credential server 1 16 may include the network credentials in a second credential request response. The second credential recμiest response may be encoded and/or encrypted in a manner similar to the first credential request response.
|002()4| In step 1524. the second credential request response is provided back to the DNS server 1 10 which directs the second credential request response to the digital device 102 in step 1 526. Those skilled in the art will appreciate that although only a single DNS server 1 10 appears in FlG. 15, there may be any number of DNS servers directing different credential rcqucst(s) and/or credential request response(s). Similarly, although there is only one credential server 1 16 depicted in FlG. 15, there may be any number credential servers in communication with the digital device 102.
|002U5| In step 1 528. the digital device 102 retrieves the network credentials from the second credential request response and provides the network credentials to the network device 104. In various embodiments, the digital device 102 may authenticate and/or decode the second credential request response in a manner similar to or different from another credential request response (e.g.. the first credential request response).
|00206) Those skilled in the art will appreciate that the credential server 1 16 may request a variety of different network information in any order. For example, in some embodiments, the credential server 1 16 may provide a prioritized list of additional network information to the digital device 102. The digital device 102 may go through the prioritized list, determining if the request additional network information is available. If the additional network information is available, the digital device 102 may provide the additional network information to the credential server 1 16 in a second credential request. In some embodiments, the digital device 102 may provide only some of the additional network information to the credential server 1 16. If the credential server 1 16 determines that the network identifier and/or the additional network information is shared by two or more networks or is otherwise insufficient, the credential server 1 16 may provide a request for more network information in another credential request response.
|U02U7| Although the network identifier is described with respect to FIG. 1 5 as being an SSlD. those skilled in the art will appreciate that the network identifier may be any identifier or combination of identifiers (e.g.. BSSlD). For example, the network device 104 may provide a BSSlD to the digital device 102. If the BSSlD has not been previously identified or is otherwise insufficient, the credential server 1 16 may request more information within the first credential request response in step 1512. In response, the digital device 102 may provide additional network information to the credential server 1 16 in order to receive the second credential request response with the network credentials.
[00208] l-'IG. 16 is a flowchart of an exemplary method for a digital device 102 to receive network credentials when a network identifier is insufficient in some embodiments. In step 1602. the digital device 102 scans an area for available one or more available wireless networks In one example, the digital device 102 scans a McDonald's restaurant for an available wireless network. In step 1604. the digital device 102 receives a network identifier of a wireless network In this example. A f&T may provide network services to the McDonald's restaurant. A network device at the McDonald's restaurant may subsequently identify an available network (e.g., provide an SSlD) as "aliwifi."
(00209) In step 1606, the digital device 102 generates a first credential request formatted for the DNS protocol. The first credential request may include the network identifier "attwifi" as well as other information, such as, but not limited to, a digital device 102 identifier (e.g.. MAC address). The digital device 102 may provide the first credential request over a network via an open port on the network device or over another network device.
|00210| In step 1608. the digital device 102 receives a first credential request response over the network via the open port on the network device or over another network dev ice. The digital device 102 may retrieve a request for additional network information from the first credential request response. In response, the digital device 102
Figure imgf000046_0001
provide additional network inlornialion already received from the network device. In one example, the digital device 102 may have received an SSlD as well as information regarding a web page received from the network device. Although the digital device 102 may have only provided the SSlD as the network identifier in the first credential request, the digital device 102 may provide the additional network information in a second credential request. |0021 1 1 In step 1610. the digital device 102 generates a second credential request including the additional network information. In one example the second credential request response may comprise the previously provided network identifier (e.g., SSlD of the network device) and/or the additional network information for the network device. The digital device 102 may subsequently provide the second credential request over the network.
|00212) In step 1612, the digital device 102 may receive a second credential request response. The second credential request response may comprise network credentials. In other embodiments, the second credential request response may request additional network information and the process may repeat starting with step 1610 as a new credential request may be generated with additional network information. In some embodiments, the second credential request response may be an indication that a network credential is not available and the process ma) end.
|00213] In step 1614. the digital device 102 retrieves network credentials, if available, from the second credential request response. Λs discussed herein, the digital device 102 may authenticate, decode, and/or decrypt the second credential request response. In step 1616. the digital device 102 may provide the network credentials from the second credential request response to the network device.
[00214| I7ICi. 17 is a flowchart of an exemplary method for a credential server 1 16 to provide network credentials in some embodiments In step 1702. the credential server 1 16 may receive the first credential request from the digital device 102. The credential server 1 16 may decode the first credential request to retrieve the network identifier (e.g.. the SSlD of 'attwifi") in step 1704.
|00215j In step 1706. the credential server 1 16 may determine that the network identifier is insufficient to identify one or more network credentials. In one example, the SSID of "altwifi" may identify a wide number of network devices that provides network access by ΛT&T including other restaurants, coffee shops, and the like. One or more of the other network devices may require different network credentials. 1-or example. AT&'I may offer network access al McDonald's may be free for a limited time while, at the same lime. ΛT&T may require a purchase or card number al Starbucks. Network devices at both McDonald's and Starbucks, however, may share the same SSID.
[00216] The credential server 1 16 may determine that the network identifier provided in the first credential request may be insufficient to determine the correct network credential (e.g.. a network credential comprising a card number at Starbucks or the correct entries for a web page required for free access at a McDonald's).
(00217| An additional network information may be required by the credential server 1 16. For example, only a limited number of McDonald's may allow for free wireless access through the network service provider. ΛT&T. As such, the credential server 1 16 may require the SSlD (e.g.. "attwifr) and a URL to a redirected web page (e.g., "hltp://www. McDonalds. com/Λ Yl" mobile/freeaccess"). Once a sufficient amount of information is received, the credential server 1 16 may provide network credentials to the digital device 102.
[00218| Those skilled in the art will appreciate that the network identifier and/or additional network information may not be unique to only one network or network device. In the above example, two or more McDonald's participating in the promotion to provide free wireless access may provide the same network identifier and at least some similar additional network information. In some embodiments, once the credential server 1 16 determines that the desired network credentials are sufficiently identifiable (e.g., the network device providing the network identifier belongs to a participating McDonald's), the desired network credentials may be provided.
|00219| In some embodiments, the credential server 1 16 determines one or more aspects of the service being provided by the network device in order to identify one or more network credentials. For example, some hotels or libraries may comprise multiple network devices which may each have a separate network identifier (e.g., room 101. room 102...). If the credential server 1 16 receives a network identifier that the credential server 1 16 does not recognize, the credential server 1 16 may provide a credential request response requesting additional information such as the title to a login web page. The digital device 102 may provide the title which indicates "Hyatt Hotel. Austin. TX." Since, in this example, all Hyatt hotels may share the same network credential (e.g.. all Hyatt hotels share the same login page), the credential server 1 16 may provide the correct network credential without specifically identifying which Hyatt hotel in Austin, Texas, may be associated with the specific SSlD and title.
|00220] The credential server 1 16 may identify that sufficient information has been received from a credential request in any number of ways. In one example, the credential server 1 16 compares the network identifier and additional network information against a data structure. The data structure may indicate, lor example, what network identifier and/or additional network information may be sufficient to identify one or more network credentials. Alternately, the data structure may indicate, for example, what network identifier and/or additional network information is insufficient to identify one or more network credentials. The data structure may. in some embodiments, identify what further additional network information may be used to identify one or more network credentials.
1002211 If the network idenlilϊer is sufficient to identify the network credential, the credential server 1 16 may retrieve network credentials based on the network identifier in step 1716. If the network identifier is not sufficient to identify the network credential^), the credential server 1 16 may prepare an other (i.e., a second) credential request response requesting additional network information in step 1708. In some embodiments, the credential server 1 16 may include an identifier in the credential request response that may identify what additional network information may be useful to provide the network credential(s). In step 1710, the credential server 1 16 provides the credential request response to the digital device 102.
|00222| Jn step 1712. the credential server 1 16 may receive an other credential request (i.e.. a second credential request) from the digital device 102. The credential server 1 16 may retrieve additional network information from the other credential request. The credential server 1 16 may then determine if the network identifier and/or the additional network information from one or more of the previously received credential request is sufficient to identify network credentials. If the network identifier and/or the additional network information is insufficient, the process may continue in step 1708 with the credential request preparing another credential request response requesting additional network information. If the network identifier and/or the additional network information are sufficient, then the credential server 1 16 may retrieve the network credentials in step 1716.
|00223) In step 1718, the credential server 1 16 may provide the network credentials within a credential request response to the digital device 102.
[00224| FIG. 18 is a flowchart of another exemplary method for a digital device 102 with a blacklist to provide additional network information sufficient to identify one or more network credentials in some embodiments. In step 1802. the digital device 102 scans an area for available wireless networks. The digital device 102 subsequently receives at least one network identifier of a wireless network. |00225| In step 1806, the digital device 102 determines if the network identifier of the wireless network is identified on a blacklist. If the network identifier is identified or associated with the blacklist, the digital device 102 may retrieve additional network information in step 1808. Those skilled in the art will appreciate that the retrieval of additional network information may be from the network device or from storage (e.g., RAM, cache, or hard drive) of the digital device 102. The additional network information and/or the network identifier may be provided in a credential request in step 1810.
|00226] If the network identifier is not identified or associated with the blacklist, the digital device 102 may provide the credential request including the network identifier over the network (e.g., over an open port of a network identifier).
|00227| In step 1814, the digital device 102 may receive a credential request response including network credentials. In one example, the credential server 1 16 may receive the network identifier and/or the additional network information and have sufficient information to provide the network credentials in the credential request response. The digital device 102 may retrieve the network credentials in step 1816 and provide the network credentials to a network device in step 1 818.
(00228) Those skilled in the art will appreciate that even if additional network information is provided, the credential server 1 16 may determine thai even more information is needed and returns a credential request response with a request for more additional network information. In some embodiments, the digital device 102 comprises a whitelist indicating when sufficient information may be found as discussed herein.
|00229| Those skilled in the art will appreciate that the blacklist and/or whitelist may be updated periodically (e.g.. by the credential server 1 16). Further, the blacklist and/or whitelist may be a part of an application that is installed on the digital device 102. In other embodiments, the blacklist and/or whitelist is maintained by the credential server 1 16. In one example, the credential server 1 16 may receive the credential request from the digital device 102. The credential server 1 16 may then check a network identifier against a blacklist. If the network identifier is associated with the blacklist, the credential server 1 16 may not provide the network credentials for the network device associated with the network identifier or provide a message to the digital device 102 with a request or instructions to disconnect from the network device. [00230| In some embodiments, the credential server 1 16 checks a network identifier against a whitelist to identify a preferred network and/or express permission to access. In one example, if the network identifier is not associated with the whitelist, the credential server 1 16 may not provide the network credentials for the network device associated with the network identifier or provide a message to the digital device 102 with a request or instructions to disconnect from the network device.
|0023 l I The above-described functions and components can be comprised of instructions that are stored on a storage medium such as a computer readable medium. The instructions can be retrieved and executed by a processor. Some examples of instructions are software, program code, and firmware. Some examples of storage medium are memory devices, tape, disks, integrated circuits, and servers. The instructions are operational when executed by the processor to direct the processor to operate in accord with embodiments of the present invention. Those skilled in the art are familiar with instaictions, processor(s). and storage medium.
[00232] The present invention is described above with reference to exemplary embodiments. It will be apparent to those skilled in the art that various modifications may be made and other embodiments can be used without departing from the broader scope of the present invention. Therefore, these and other variations upon the exemplary embodiments are intended to be covered by the present invention.

Claims

Claims
1. Λ method comprising: receiving, with a digital device, a network identifier from a network device; providing a first credential request including the network identifier to another digital device on a network: receiving a request for additional network information from the other digital device: providing a second credential request including additional network information to the other digital device; receiving a credential request response including network credentials from the other digital device; and providing the network credentials irom the credential request response to a network device.
2. The method of claim 1 , wherein the first credential request is formatted as a DNS protocol message.
3 The method of claim I . wherein the first credential request is provided to the other digital device via an open port on the network device.
4. The method of claim 3. wherein the open port is port 53.
5. l'he method of claim 1. wherein the network identifier is an SSID.
6 The method of claim 1 . wherein the additional network information is a BSSlD.
7. The method of claim 1. wherein the additional network information is a title to a web page received by the digital device from the network device.
8. The method of claim 1. wherein the additional network information is a URL of a web page received by the digital device from the network device
9. The method of claim 1 . wherein the additional network information is a hash of any portion associated with a web page received by the digital device from the network device.
10. Λ system comprising: a request module configured to receive a network identifier from a network device: and u response module configured to provide a first credential including the network identifier to another digital device on a network, receive a request for additional network information from the other digital device, provide a second credential request including additional network information to the other digital device, receive a credential request response including network credentials from the other digital device, and provide the network credentials from the credential request response to a network device.
1 1. The system of claim 10. wherein the first credential request is formatted as a DNS protocol message.
12. The system of claim 10. wherein the response module provides the first credential request to the other digital device via an open port on the network device.
13. The system of claim 12. wherein the open port is port 53.
14. The system of claim IU. wherein the network identifier is an SSID.
15. The system of claim 10. wherein the additional network information is a BSSlD.
16. The system of claim l ϋ, wherein the additional network information is a title to a web page received by the digital device from the network device.
17. The system of claim 10. wherein the additional network information is a URL of a vseb page received by the digital device from the network device
18. The system of claim 10, wherein the additional network information is a hash of any portion associated with a web page received by the digital device from the network device.
19. A computer readable storage medium configured to store instructions, the instructions comprising a method, the method comprising the steps of: receiving, with a digital device, a network identifier from a network device: providing a first credential request including the network identifier to another digital device on a network: receiving a request for additional network information from the other digital device; providing a second credential request including additional network information to the other digital device; receiving a credential request response including network credentials from the other digital device; and providing the network credentials from the credential request response to a network device.
20. The computer readable storage medium of claim 19, wherein the first credential request is formatted as a DNS protocol message.
PCT/US2010/039859 2009-06-24 2010-06-24 Systems and methods for obtaining network credentials WO2010151692A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2012517739A JP2012531822A (en) 2009-06-24 2010-06-24 System and method for obtaining network credentials
EP10792679.2A EP2446347A4 (en) 2009-06-24 2010-06-24 Systems and methods for obtaining network credentials

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US22007309P 2009-06-24 2009-06-24
US61/220,073 2009-06-24

Publications (1)

Publication Number Publication Date
WO2010151692A1 true WO2010151692A1 (en) 2010-12-29

Family

ID=43386894

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2010/039859 WO2010151692A1 (en) 2009-06-24 2010-06-24 Systems and methods for obtaining network credentials

Country Status (3)

Country Link
EP (1) EP2446347A4 (en)
JP (1) JP2012531822A (en)
WO (1) WO2010151692A1 (en)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012112607A1 (en) * 2011-02-14 2012-08-23 Devicescape Software, Inc. Systems and methods for network curation
US8353007B2 (en) 2008-10-13 2013-01-08 Devicescape Software, Inc. Systems and methods for identifying a network
US8549588B2 (en) 2006-09-06 2013-10-01 Devicescape Software, Inc. Systems and methods for obtaining network access
US8554830B2 (en) 2006-09-06 2013-10-08 Devicescape Software, Inc. Systems and methods for wireless network selection
WO2014004288A1 (en) * 2012-06-27 2014-01-03 J2 Global, Inc. Facilitating network login
US8743778B2 (en) 2006-09-06 2014-06-03 Devicescape Software, Inc. Systems and methods for obtaining network credentials
JP2014103530A (en) * 2012-11-20 2014-06-05 Kddi Corp Wireless lan setting device and wireless lan setting method
US9326138B2 (en) 2006-09-06 2016-04-26 Devicescape Software, Inc. Systems and methods for determining location over a network
CN114978698A (en) * 2022-05-24 2022-08-30 中国联合网络通信集团有限公司 Network access method, target terminal, certificate management network element and verification network element

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI744844B (en) * 2020-03-30 2021-11-01 尚承科技股份有限公司 Certificate securely signing and management system and certificate securely signing and management method
CN111614466B (en) * 2020-03-31 2023-07-14 尚承科技股份有限公司 Certificate safety issuing and managing system and method

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060225130A1 (en) * 2005-03-31 2006-10-05 Kai Chen Secure login credentials for substantially anonymous users
US20070094716A1 (en) * 2005-10-26 2007-04-26 Cisco Technology, Inc. Unified network and physical premises access control server
US20080060064A1 (en) * 2006-09-06 2008-03-06 Devicescape Software, Inc. Systems and methods for obtaining network access
US20080195741A1 (en) * 2007-02-13 2008-08-14 Devicescape Software, Inc. System and method for enabling wireless social networking
US20090024550A1 (en) * 2006-09-06 2009-01-22 Devicescape Software, Inc. Systems and Methods for Wireless Network Selection
US20090028082A1 (en) * 2006-09-06 2009-01-29 Devicescape Software, Inc. Systems and Methods for Wireless Network Selection Based on Attributes Stored in a Network Database

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8006A (en) * 1851-04-01 Horseshoe-nail machine
US8191124B2 (en) * 2006-09-06 2012-05-29 Devicescape Software, Inc. Systems and methods for acquiring network credentials
US9529854B2 (en) * 2006-09-12 2016-12-27 Wayport, Inc. Providing location-based services in a distributed environment without direct control over the point of access
ES2529679T3 (en) * 2007-09-28 2015-02-24 Devicescape Software, Inc. Systems and methods for selecting a wireless network based on attributes stored in a network database
US20100263022A1 (en) * 2008-10-13 2010-10-14 Devicescape Software, Inc. Systems and Methods for Enhanced Smartclient Support
US8353007B2 (en) * 2008-10-13 2013-01-08 Devicescape Software, Inc. Systems and methods for identifying a network
EP2443562B1 (en) * 2009-06-19 2015-05-06 Devicescape Software, INC. Systems and methods for determining location over a network

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060225130A1 (en) * 2005-03-31 2006-10-05 Kai Chen Secure login credentials for substantially anonymous users
US20070094716A1 (en) * 2005-10-26 2007-04-26 Cisco Technology, Inc. Unified network and physical premises access control server
US20080060064A1 (en) * 2006-09-06 2008-03-06 Devicescape Software, Inc. Systems and methods for obtaining network access
US20090024550A1 (en) * 2006-09-06 2009-01-22 Devicescape Software, Inc. Systems and Methods for Wireless Network Selection
US20090028082A1 (en) * 2006-09-06 2009-01-29 Devicescape Software, Inc. Systems and Methods for Wireless Network Selection Based on Attributes Stored in a Network Database
US20080195741A1 (en) * 2007-02-13 2008-08-14 Devicescape Software, Inc. System and method for enabling wireless social networking

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP2446347A4 *

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8549588B2 (en) 2006-09-06 2013-10-01 Devicescape Software, Inc. Systems and methods for obtaining network access
US8554830B2 (en) 2006-09-06 2013-10-08 Devicescape Software, Inc. Systems and methods for wireless network selection
US9913303B2 (en) 2006-09-06 2018-03-06 Devicescape Software, Inc. Systems and methods for network curation
US8667596B2 (en) 2006-09-06 2014-03-04 Devicescape Software, Inc. Systems and methods for network curation
US8743778B2 (en) 2006-09-06 2014-06-03 Devicescape Software, Inc. Systems and methods for obtaining network credentials
US9326138B2 (en) 2006-09-06 2016-04-26 Devicescape Software, Inc. Systems and methods for determining location over a network
US8353007B2 (en) 2008-10-13 2013-01-08 Devicescape Software, Inc. Systems and methods for identifying a network
WO2012112607A1 (en) * 2011-02-14 2012-08-23 Devicescape Software, Inc. Systems and methods for network curation
US9258704B2 (en) 2012-06-27 2016-02-09 Advanced Messaging Technologies, Inc. Facilitating network login
US9699174B2 (en) 2012-06-27 2017-07-04 Advanced Messaging Technologies, Inc. Facilitating network login
WO2014004288A1 (en) * 2012-06-27 2014-01-03 J2 Global, Inc. Facilitating network login
CN108494773A (en) * 2012-06-27 2018-09-04 J2全球Ip有限公司 Computer implemented method and the first portable electronic device
US10601812B2 (en) 2012-06-27 2020-03-24 Advanced Messaging Technologies, Inc. Facilitating access to protected content by commonly owned devices of a user
JP2014103530A (en) * 2012-11-20 2014-06-05 Kddi Corp Wireless lan setting device and wireless lan setting method
CN114978698A (en) * 2022-05-24 2022-08-30 中国联合网络通信集团有限公司 Network access method, target terminal, certificate management network element and verification network element
CN114978698B (en) * 2022-05-24 2023-07-28 中国联合网络通信集团有限公司 Network access method, target terminal, credential management network element and verification network element

Also Published As

Publication number Publication date
JP2012531822A (en) 2012-12-10
EP2446347A4 (en) 2013-11-13
EP2446347A1 (en) 2012-05-02

Similar Documents

Publication Publication Date Title
US8743778B2 (en) Systems and methods for obtaining network credentials
US8194589B2 (en) Systems and methods for wireless network selection based on attributes stored in a network database
US8554830B2 (en) Systems and methods for wireless network selection
US9913303B2 (en) Systems and methods for network curation
US9326138B2 (en) Systems and methods for determining location over a network
US9801071B2 (en) Systems and methods for enhanced engagement
EP2206278B1 (en) Systems and methods for wireless network selection based on attributes stored in a network database
US8549588B2 (en) Systems and methods for obtaining network access
EP2446347A1 (en) Systems and methods for obtaining network credentials
US8191124B2 (en) Systems and methods for acquiring network credentials
US8196188B2 (en) Systems and methods for providing network credentials
EP2443562B1 (en) Systems and methods for determining location over a network
EP2062130A2 (en) Systems and methods for obtaining network access

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 10792679

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2012517739

Country of ref document: JP

NENP Non-entry into the national phase

Ref country code: DE

REEP Request for entry into the european phase

Ref document number: 2010792679

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 2010792679

Country of ref document: EP