Protocol for establishing secure communication session with anonymous host over wireless network
Abstract
The invention relates to a protocol for establishing a secure communication session with an anonymous host over a wireless network. The invention discloses techniques for anonymously establishing a secure communication session with a wireless client. A described method, performed by an anonymous wireless host, includes advertising a service implemented by the anonymous wireless host as available over a wireless network, receiving an invitation to establish the secure communication session with the wireless client, transmitting an acceptance of the invitation to the wireless client, and establishing the secure communication session over a communication channel. The invitation is received from the wireless client and the acceptance is transmitted to the wireless client via a broadcast address or a multicast address associated with the wireless network. The secure communication session is used to exchange encrypted data between the service and the wireless client.

Term
12.3 yearsto projected expiry
Projected expiry 24 January 2039, counted from filing; an application has no term until it is granted.
- Priority
- Filed
- Published
- Today
- Projected expiry
19 claims: 3 independent, 16 dependent
- 1A method for establishing a secure communication session with an anonymous wireless host, the method comprising:a wireless client: discovering at least one advertised service available through a wireless network;A service implemented by an anonymous wireless host;transmitting an invitation to the anonymous wireless host to establish the secure communication session with the service via the broadcast address or multicast address of the wireless network;via the broadcast address or the multicast address An address is received from the anonymous wireless host;and the secure communication session is established through a communication channel, wherein the secure communication session is used to exchange encrypted data between the selected service and the wireless client. 1·一种用于与匿名无线主机建立安全通信会话的方法,所述方法包括: 由无线客户端: 发现通过无线网络可用的通告的至少一个服务; 从所述至少一个服务中选择由所述匿名无线主机实现的服务; 经由所述无线网络的广播地址或组播地址,向所述匿名无线主机传输与所述服务建立 所述安全通信会话的邀请; 经由所述广播地址或所述组播地址从所述匿名无线主机接收接受;以及 通过通信信道建立所述安全通信会话,其中所述安全通信会话用于在所选服务和所述 无线客户端之间交换加密数据。
- 10A client, the client includes a wireless interface for connecting to a wireless network, a processor, and a memory storing instructions. When the instructions are executed by the processor, the client communicates with the host in the following manner Establish a secure communication session:use the broadcast address or multicast address of the wireless network to transmit a discovery request;receive a response to the discovery request, the response indicating at least one service available through the wireless network;Select the service implemented by the host among the services;transmit an invitation to the host to establish the secure communication session with the service via the broadcast address or the multicast address;via the broadcast address or the group The broadcast address is received from the host;and 10. —种客户端,所述客户端包括用于连接到无线网络的无线接口、处理器和存储指令 的存储器,所述指令当由所述处理器执行时,使得所述客户端通过以下方式与主机建立安 全通信会话: 使用所述无线网络的广播地址或组播地址传输发现请求; 接收对所述发现请求的响应,所述响应指示通过所述无线网络可用的至少一个服务; 从所述至少一个服务中选择由所述主机实现的服务; 经由所述广播地址或所述组播地址,向所述主机传输与所述服务建立所述安全通信会 话的邀请; 经由所述广播地址或所述组播地址从所述主机接收接受;以及 The secure communication session is established through a communication channel, wherein the secure communication session is used to exchange encrypted data between the service and the client. 通过通信信道建立所述安全通信会话,其中所述安全通信会话用于在所述服务和所述 客户端之间交换加密数据。
- 16A non-transitory computer-readable medium storing instructions, wherein the instructions, when executed by a processor, cause a wireless client to establish a secure communication session with an anonymous wireless host in the following manner:discover at least one of the announcements available through the wireless network Service;select the service implemented by the anonymous wireless host from the at least one service;transmit to the anonymous wireless host via the broadcast address or multicast address of the wireless network to establish the secure communication session with the service Receiving an acceptance from the anonymous wireless host via the broadcast address or the multicast address;and establishing the secure communication session through a communication channel, wherein the secure communication session is used to communicate between the service and the wireless Exchange encrypted data between clients. 16. —种存储指令的非暂态计算机可读介质,其中所述指令当由处理器执行时,使得无 线客户端通过以下方式与匿名无线主机建立安全通信会话: 发现通过无线网络可用的通告的至少一个服务; 从所述至少一个服务中选择由所述匿名无线主机实现的服务; 经由所述无线网络的广播地址或组播地址,向所述匿名无线主机传输与所述服务建立 所述安全通信会话的邀请; 经由所述广播地址或所述组播地址从所述匿名无线主机接收接受;以及 通过通信信道建立所述安全通信会话,其中所述安全通信会话用于在所述服务和所述 无线客户端之间交换加密数据。
Independent claims3
160 paragraphs, as filed
Protocol technology field for establishing a secure communication session with an anonymous host through a wireless network
[0001] The described embodiment relates to wireless communication, including a protocol for establishing a secure communication session with an anonymous host via a wireless network.
Background technique
[0002] The Internet of Things (IoT) has led to a proliferation of consumer devices that are configured to connect to a wireless network and communicate with other devices that can be accessed via the wireless network (for example, smart phones, desktop computers that communicate with the network via the Internet, etc.). , Server) to interact. Common IoT devices include wireless security cameras, speakers, thermostats, fire alarms, security sensors, televisions, set-top boxes, etc. Generally, a user installs a wireless access point at home, assigns a service set identifier (SSID) to a wireless interface implemented by the wireless access point, and configures the device to connect to the wireless network associated with the SSID.
[0003] However, once various devices are connected to the wireless network, communication channels between the devices still need to be established. For example, the device can be configured to access a remote server located on an Internet connection accessible through a gateway/wireless router on a wireless network. Alternatively, the device can register for a service that is accessible through the wireless device, so that other devices located on the wireless network can discover and access the service. The traditional network discovery technology usually requires the administrator of the wireless network to configure the device to register the available services associated with the device. In addition, various protocols can be provided so that the client can automatically discover different hosts connected to the network, and the client can send a message to the host to obtain a list of services provided by the host.
[0004] This wide configuration of accessing services via a wireless network prevents devices owned or managed by non-wireless network administrators from freely using services available via the wireless network. In addition, protocols that reduce this burden on wireless network administrators can introduce security vulnerabilities in wireless networks. For example, such protocols can publish Internet Protocol (IP) addresses corresponding to devices connected to the wireless network, which can allow unauthorized users to access the wireless network. Therefore, it is desirable to have a technology for establishing communication between devices through a wireless network, which maintains the anonymity of the network device to unauthorized users, and does not require extensive intervention by the device user to configure the device to access the selected service of the wireless network.
Summary of the invention
[0005] This application describes various implementations related to establishing a secure communication session with an anonymous host via a wireless network. Describes the process performed by an anonymous wireless host. The process includes announcing the services available through the wireless network implemented by the anonymous wireless host, receiving an invitation to establish a secure communication session with the wireless client, transmitting the acceptance to the wireless client, and establishing through a communication channel Secure communication session. Via the broadcast address or multicast address of the wireless network, the invitation is received from the wireless client and the acceptance is transmitted to the wireless client. The secure communication session is configured to exchange encrypted data between the service and the wireless client.
[0006] In some embodiments, a process performed by a wireless client is described. The process includes discovering at least one advertised service available through a wireless network, selecting a service among at least one service implemented by an anonymous wireless host, The wireless host transmits an invitation to establish a secure communication session with the service, receives an acceptance from an anonymous wireless host, and establishes a secure communication session through a communication channel. The invitation is transmitted to the anonymous wireless host, and received from the anonymous wireless host via the broadcast address or multicast address of the wireless network. The secure communication session is configured to be between the service and the wireless client
Exchange encrypted data.
[0007] In some embodiments, announcing services available through a wireless network may be performed by an anonymous wireless host by transmitting an announcement message via a broadcast address or a multicast address of the wireless network. In some embodiments, the wireless client is configured to monitor the broadcast address or the multicast address in order to listen for announcement messages indicating that the service is available over the wireless network. In various embodiments, a multicast domain name system responder separate and distinct from the anonymous wireless host and wireless client is configured to monitor the multicast address and register for the service in response to receiving a registration service request via the multicast address. In response to receiving a registration service request, the Multicast Domain Name System (mDNS) responder creates a plurality of Domain Name System (DNS) records, which may include service records, pointer records, and records stored in a memory accessible by the Multicast Domain Name System responder. One or more of the text records. Then, the wireless client can discover the services available via the wireless network by sending a query to the multicast domain name system responder.
[0008] In some embodiments, the discovery of at least one service advertised available through the wireless network may be performed by the wireless client by transmitting a discovery request via a broadcast address or a multicast address of the wireless network. In some embodiments, anonymous wireless hosts are configured to monitor broadcast addresses or multicast addresses in order to listen for discovery requests from wireless clients to discover services available through the wireless network. In various embodiments, separate and different multicast domain name system responders from anonymous wireless hosts and wireless clients are configured to monitor multicast addresses, and use the multicast domain name system to respond with one or more hosts on the wireless network The list of services registered by the server to respond to the discovery request.
[0009] In some embodiments, the invitation transmitted by the wireless client via the broadcast address or the multicast address may include the public key created by the wireless client for the secure communication session, the IP address of the wireless client, and the wireless client for secure communication. The message of the port number assigned by the session. The invitation may also include credentials associated with the wireless client. In various embodiments, the acceptance transmitted by the anonymous wireless host includes a public key created by the anonymous wireless host for the secure communication session. The public key and the corresponding private key created by the anonymous wireless host and the wireless client can be a short-lived 256-byte key, which is discarded when the secure communication session is terminated.
[0010] In some embodiments, establishing a secure communication session includes creating a socket associated with the network interface corresponding to the address of the anonymous wireless host, connecting the socket to the corresponding socket of the wireless client, and A tunnel is established between the socket and the corresponding socket. In some exemplary embodiments, establishing a secure communication session includes creating a socket associated with the network interface corresponding to the address of the wireless client, and configuring the socket to listen for packets associated with the port number of the network interface And a tunnel is established between the socket and the corresponding socket of the anonymous wireless host. In various embodiments, the tunnel can be established through the relay server, so that the socket and the corresponding socket are not directly connected, but through a pair of other connections on the relay server that are connected via the relay within the relay server. The socket is connected indirectly.
[0011] In some embodiments, anonymous wireless hosts and wireless clients configured to perform the above-described procedures are connected to a wireless network including one or more gateways, where each gateway is coupled to one or more access points. The wireless client can connect to the first access point via the wireless interface of the wireless client. The anonymous wireless host can connect to the first access point via the wireless interface of the anonymous wireless host. In various embodiments, the anonymous wireless host may connect to the second access point instead of the first access point via the wireless interface of the anonymous wireless host. The first access point and the second access point can be connected to a single gateway. Alternatively, the first access point and the second access point are connected to different gateways, and the first gateway is configured to establish a network tunnel with the second gateway for relaying data packets transmitted from the wireless client To an anonymous wireless host. In various embodiments, a relay server included in a wireless network or accessible through an external network is configured to allocate a relay connection to establish a secure communication session through the relay server.
[0012] According to the following detailed description in conjunction with the accompanying drawings that illustrate the principles of the embodiments by way of example, other aspects and advantages of the various embodiments described herein will become apparent.
[0013] This summary is provided only for the purpose of summarizing some exemplary embodiments in order to provide a basic understanding of some aspects of the subject matter described herein. Therefore, it should be understood that the above-mentioned features are only examples and should not be construed as narrowing the scope or essence of the subject matter described herein in any way. Other features, aspects, and advantages of the subject matter described herein will become apparent through the following specific embodiments, drawings, and claims.
Description of the drawings
[0014] The present disclosure will be easily understood through the following specific embodiments in conjunction with the accompanying drawings. Similar reference numerals in the accompanying drawings indicate similar structural elements.
[0015] FIG. 1 illustrates an exemplary wireless network according to some embodiments.
[0016] FIG. 2 shows a block diagram of an exemplary apparatus that may be implemented in a wireless device according to some embodiments.
[0017] FIG. 3 illustrates an exemplary protocol for establishing a secure communication session between a wireless client and an anonymous wireless host via a wireless network according to some embodiments.
[0018] FIG. 4 shows an example of an enterprise network according to some embodiments.
[0019] FIG. 5 illustrates an exemplary protocol for establishing a secure communication session between wireless devices over an enterprise network according to some embodiments.
[0020] FIG. 6 illustrates a flowchart of an exemplary method for establishing a secure communication session with an anonymous wireless host according to some embodiments.
[0021] FIG. 7 shows a flowchart of an exemplary method for anonymously establishing a secure communication session with a wireless client according to some embodiments.
[0022] FIG. 8 illustrates a detailed view of an exemplary computing device that can be used to implement the various components described herein, according to some embodiments.
Detailed ways
[0023] In this section, representative applications of the method and device according to the present application are described. These examples are provided only to add context and help understand the described embodiments. Therefore, it will be obvious to those skilled in the art that the embodiments can be practiced without some or all of these specific details. In other cases, in order to avoid unnecessarily obscuring the implementation, well-known processing steps are not described in detail. Other applications are possible, so that the following examples should not be considered restrictive.
[0024] In the following detailed description, reference is made to the accompanying drawings forming a part of the drawings, and specific embodiments according to the embodiments are illustrated in the accompanying drawings. Although these embodiments are described in sufficient detail to enable those skilled in the art to practice the embodiments, it should be understood that these examples are not limiting; other embodiments may be used, and other embodiments may be used without departing from the description. The substance and scope of the implementation plan are modified under the circumstances.
[0025] The network administrator can take security measures in the wireless network to prevent certain devices on the wireless network from being discovered by other devices. The lack of information related to device addresses may make it more difficult to exploit security vulnerabilities in device configurations, thereby preventing individuals from exploiting these vulnerabilities. From a security perspective, disabling network discovery may make sense, but it may also make it more difficult to provide services to network users. For example, a network administrator may need to manually configure devices on the network to connect to specific network hosts that provide services. If you can disable network discovery, and at the same time allow devices connected to the wireless network to be able to view the services hosted on the wireless network and be able to
If the information is connected with the service, it will be advantageous.
[0026] As described herein, a client device connected to a wireless network can use a protocol to discover services implemented by an anonymous host, and can use the protocol to negotiate and establish a connection between the client device and the service provided by the anonymous host. A secure communication session that transmits encrypted data. Negotiation may include using the broadcast address or multicast address of the wireless network to send an invitation to the anonymous host of the service to negotiate the establishment of a secure communication session. Information about the socket created by the client device for the secure communication session can be passed from the client device to the anonymous host via a broadcast address or a multicast address. In addition, a broadcast address or a multicast address may be used to exchange a public key used to encrypt data transmitted between the client device and the service provided by the anonymous host during the secure communication session. Once the negotiation is completed and the anonymous host has accepted the invitation received from the client, the anonymous host can connect with the socket created by the client device to establish a secure communication session through the communication channel. The address of the anonymous host is displayed to the client device only when the anonymous host is connected to the socket. In some embodiments, even after a secure communication session is established, such as when a service uses a relay server to forward data between the service provided by the anonymous host and the client device, the address of the anonymous host may remain anonymous.
[0027] In some embodiments, both the client device and the anonymous host can utilize the multicast domain name system responder to at least partially implement negotiation via the multicast address of the wireless network. An anonymous host can use the multicast domain name system responder to register services available through the wireless network, and the client device can query the multicast domain name system responder to discover available services. The multicast domain name system responder can be implemented by an anonymous host, and can be configured to monitor the multicast address to obtain an invitation to establish a secure communication session and transmit the acceptance of the invitation to the client device. In various embodiments where the multicast domain name system responder is implemented by another host connected to the wireless network, the anonymous host may be configured to monitor the multicast address for obtaining an invitation to establish a secure communication session and to respond to the invitation. A separate process of accepting transmission to the client device.
[0028] These and other embodiments are discussed below with reference to FIGS. 1 to 8; however, those skilled in the art will readily understand that the detailed description given herein with respect to these drawings is merely illustrative Purpose and should not be construed as restrictive.
[0029] According to various embodiments described herein, the terms "wireless communication device", "wireless device", "mobile device", "mobile station", "client device", "client" and "user equipment ( UE)" is used interchangeably herein to describe one or more general consumer electronic devices capable of performing processes associated with various embodiments of the present disclosure. According to various implementations, any of these consumer electronic devices may involve: cellular phones or smart phones, tablet computers, laptop computers, notebook computers, personal computers, netbook computers, media player devices, electronics Book devices, wearable computing devices, and any other types of electronic computing devices with unlimited communication capabilities, which may include communication via one or more wireless communication protocols, such as those used in the following Protocols for communication on the network: wireless wide area network (WWAN), wireless metropolitan area network (WMAN), wireless local area network (WLAN), wireless personal area network (WPAN), near field communication (NFC), cellular wireless network, fourth generation ( 4G) Long Term Evolution (LTE), LTE Advanced (LTE-A), and/or fifth generation (5G) or other currently or future advanced cellular wireless networks developed.
[0030] In some embodiments, the wireless communication device may also operate as part of a wireless communication system, which may include a group that may also be referred to as a station, a client wireless device, or a client wireless communication device Client devices, which are interconnected to an access point (AP), for example, as part of a WLAN, and/or interconnected with each other, for example, as part of a WPAN and/or "ad hoc" wireless network. In some embodiments, the client device may be any wireless communication device capable of communicating via WLAN technology (for example, according to a wireless local area network communication protocol). In some embodiments, the WLAN technology may include Wi-Fi (or more generally, WLAN) wireless communication subsystems or radio components, which may implement the Institute of Electrical and Electronics Engineers (IEEE) 802.11 technology, such as the following One or more of: IEEE 802.11a;
IEEE 802.11b; IEEE 802.11g; IEEE 802.11-2007; IEEE 802.11n; IEEE 802.11-2012; IEEE 802.11ac; or other current or future IEEE 802.11 technologies.
[0031] In addition, it should be understood that the UE described herein may be configured as a multi-mode wireless communication device that can also communicate via different third-generation (3G) and/or second-generation (2G) RATs. In these cases, multimode UEs can be configured to prefer to attach to LTE networks that provide faster data rate throughput than other 3G legacy networks that provide lower data rate throughput. For example, in some embodiments, a multimode UE may be configured to fall back to a 3G legacy network when LTE and LTE-A networks are otherwise unavailable, such as an evolved high-speed packet access (HSPA+) network, or code division multiplexing. Address (CDMA) 2000 Evolution-Data Only (EV-DO) network.
[0032] FIG. 1 shows an example of a wireless network 100 according to some embodiments. The wireless network 100 may be referred to as WLAN, private network, private WLAN, WPA N, etc. in this text. As shown in FIG. 1, the wireless network 100 includes a plurality of wireless devices 110-0 to 110-(n-1). Each wireless device 110 includes a wireless interface (such as a radio frequency transceiver) and one or more antennas for connecting to a communication channel via a wireless communication protocol (such as the IEEE 802.11 protocol). Each wireless device 110 may include a processor and a memory for storing instructions, where the instructions are used to implement various functions in hardware and/or software.
[0033] In some embodiments, the wireless device 110 may be configured to communicate with one or more APs 150-0 to 150-1 via the wireless interface 102. Each AP 150 may include a radio frequency transceiver and one or more antennas for connecting to the wireless interface 102 via a wireless communication protocol, such as the IEEE 802.11 protocol. The AP 150 may be configured as a network switch so that one or more wireless devices 110 connected to the first AP 150-0 can communicate with one or more wireless devices 110 connected to the second AP 150-1.
[0034] In some embodiments, one or more AP 150 may be connected to the gateway 170 via a network interface 104, and the network interface 104 may be a wired network interface (for example, IEEE 802.3-Ethernet) or a wireless network interface (for example, IEEE 802.11-Wi-Fi) ο In an implementation with two or more APs 150, each AP 150 can be connected to one or more other APs 150 via a network interface 106, which can be wired or wireless of. As shown in FIG. 1, the first AP 150-0 is connected to the second AP 150-1 via the wired network interface 106. Alternatively, the first AP 150-0 may not share a direct connection with the second AP 150-1. However, the Ethernet frame can be forwarded from the first AP 150-0 to the second AP 150-1 through the gateway 170.
[0035] The gateway 170 is a device that allows data to be relayed between the wireless network 100 and the external network 180 via the network interface 108. In some embodiments, the gateway 170 is a network router. The network router may be configured to relay Internet Protocol (IP) packets originating within the wireless network 100 to an external network 180 such as devices within the Internet. In some embodiments, the network router may also be configured to perform network address translation (NAT), which maps a host address in one address space (for example, a private IPv4 address space, such as 192.168.0.0/16) to another address Space (for example, a public unicast IPv4 address space) so that packets forwarded from within the wireless network 100 to the external network 180 appear to the external device to originate from the network interface 108 used by the gateway 170 to connect to the external network 180 At the associated single network address.
[0036] In some embodiments, the gateway 170 is connected to the external network 180 through a modulation device such as a digital subscriber loop (DSL) modem or a cable modem. In another embodiment, the gateway 170 is connected to the external network 180 through a cellular network, where the cellular network utilizes a radio frequency transceiver and one or more antennas to connect with base stations (e.g., eNodeB, NodeB, etc.) of the cellular network. It should be understood that the gateway 170 may be connected to two or more external networks using different network interfaces.
[0037] Although not explicitly shown, as a supplement to or instead of the device shown in FIG. 1, the wireless network 100 may also include other devices. These devices may include, but are not limited to, additional devices such as one or more servers, workstations, laptop computers, set-top boxes, smart phones, wearable devices, Internet of Things (IoT) consumer electronic devices, etc., which can be connected via various wired or
The wireless interface is connected to the wireless network 100. These devices may also include, but are not limited to, additional network hardware such as one or more additional switches, one or more additional gateways, one or more additional access points, and so on.
[0038] In some embodiments, the functions of the gateway 170 and the AP 150 may be combined into a single device, which may be referred to as a residential wireless router. The device may include one or more wired network interfaces (such as an Ethernet port) and one or more wireless network interfaces (such as a Wi-Fi-enabled radio). In some embodiments, multiple transceivers/antennas can be configured to provide APs to two different wireless interfaces, such as an AP that implements the IEEE 802.11n protocol in the 2.4GHz band and an AP that implements the IEEE 802.11n protocol in the 5GHz band. AP.
[0039] FIG. 2 illustrates a block diagram of an exemplary apparatus 200 that may be implemented in the wireless device 110 according to some embodiments. In this regard, when included in a computing device such as the wireless device 110, the apparatus 200 may enable the computing device to operate within the wireless network 100 according to one or more embodiments. It should be understood that the components, devices or elements shown in and described with respect to FIG. 2 may not be necessary, and therefore some components, devices or elements may be omitted in certain embodiments. In addition, as a supplement or alternative to those components, devices, or elements shown in FIG. 2 and described with respect to FIG. 2, some embodiments may include different components, devices, or elements.
[0040] In some embodiments, the device 200 may include a processing circuit 210 that may be configured to perform actions in accordance with one or more of the embodiments disclosed herein. In this regard, the processing circuit 210 may be configured to execute and/or control the execution of one or more functions of the apparatus 200 according to various embodiments, and thus may provide a method for executing the apparatus 200 according to various embodiments. Functional device. The processing circuit 210 may be configured to perform data processing, application execution, and/or other processing and management services according to one or more embodiments.
[0041] In some embodiments, the device 200 or one or more parts thereof or one or more components such as the processing circuit 210 may include one or more chipsets, each of which may include one or more chipsets. A chip. In some cases, the processing circuit 210 and/or one or more other components of the device 200 may therefore be configured to implement the implementation on a chipset including one or more chips. In some embodiments where one or more components of the apparatus 200 are implemented as a chipset, the chipset can enable the computing device to operate in the wireless network 100 when it is actually on the computing device or when it is operatively coupled to the computing device. . Thus, for example, one or more components of the apparatus 200 may provide a chipset configured to enable computing devices to communicate using one or more wireless network technologies.
[0042] In some embodiments, the processing circuit 210 may include a processor 212, and in some embodiments, such as the embodiment shown in FIG. 2, it may also include a memory 214. The processing circuit 210 may communicate with the transceiver 216 and/or the anonymous communication module 218 or control the transceiver 216 and/or the anonymous communication module 218 in other ways.
[0043] The processor 212 may be implemented in various forms. For example, the processor 212 may be implemented as various devices based on processing hardware, such as a microprocessor, a coprocessor, a controller, or various other computing or processing devices including an integrated circuit, where the integrated circuit is such as an application specific integrated circuit (ASIC). , Field Programmable Gate Array (FPGA), some combinations of them, etc. Although shown as a single processor, it should be understood that the processor 212 may include multiple processors. Multiple processors are in operative communication with each other, and may be collectively configured to perform one or more functions of the apparatus 200 as described herein. In some embodiments, the processor 212 may be configured to execute instructions that may be stored in the memory 214 or that may be accessed by the processor 212 in other ways. Therefore, whether configured by hardware or by a combination of hardware and software, when the processor 212 is configured accordingly, the processor can perform operations according to various embodiments.
[0044] In some implementations, the memory 214 may include one or more memory devices. The memory 214 may include fixed and/or removable memory devices. In some implementations, the memory 214 may provide a non-transitory computer-readable storage medium that may store computer program instructions executable by the processor 212. on
In this regard, the memory 214 may be configured to store information, data, application programs, instructions, etc. for enabling the device 200 to perform various functions according to one or more embodiments. In some implementations, the memory 214 may communicate with one or more of the processor 212, the transceiver 216, or the anonymous communication module 218 via one or more buses for transferring information between the components of the device 200.
[0045] The device 200 may also include a transceiver 216. The transceiver 216 may be configured to enable the device 200 to transmit and receive wireless signals according to one or more wireless technologies, such as one or more versions of the IEEE 802.11 wireless communication protocol, cellular technology (for example, ,CDMA, GSM, LTE, etc.) and so on. Therefore, the transceiver 216 may enable the apparatus 200 to use the corresponding transceiver to transmit signals to and receive signals from neighboring devices.
[0046] The device 200 may further include an anonymous communication module 218. The anonymous communication module 218 may be implemented as various devices such as circuits, hardware, and computer programs including computer-readable program instructions stored on a computer-readable medium (for example, the memory 214) and executed by a processing device (for example, the processor 212) Products, or some combination of them. In some embodiments, the processor 212 (or the processing circuit 210) may include or otherwise control the anonymous communication module 218.
[0047] The anonymous communication module 218 of some embodiments may be configured to establish a secure communication session between the apparatus 200 and a corresponding wireless device. When the device 200 is configured as the host of the service implemented by the processor 212, the anonymous communication module 218 uses a protocol to establish a secure communication session that allows the device 200 to remain anonymous to the client device until the device 200 establishes a connection with the client device. Secure communication session. When the device 200 is configured as a client of a service implemented by a host, the anonymous communication module 218 uses a certain protocol to establish a secure communication session, which allows the device to remain anonymous to the client device even if the host remains anonymous until a secure communication session is established. 200 can also be connected to services. As described in this article, the anonymity of the host means that the client device communicates with the host, but does not use an address that uniquely identifies the host on the wireless network. E.g, The host can remain anonymous, where communication is directed to a broadcast address or a multicast address through the wireless network instead of using a unicast address assigned to the host. Even if a label, host name or other unique identifier can be used to uniquely identify a service, the identification information of the service will not display the address of the host. If the host address is displayed, security vulnerabilities may be introduced into the wireless network. For example, guests connected to the wireless network can be prevented from discovering the devices connected to the wireless network, but the address of the service implemented by the host will inherently disclose the host address, which may undermine the security measures installed by disabling network discovery. Therefore, the anonymous communication module 218 allows the client device connected to the wireless network to implement a protocol for establishing a secure communication session with the host, where the host remains anonymous to the client device until the host accepts the invitation to establish a secure communication session and communicates with the client device. connection.
[0048] FIG. 3 illustrates an exemplary protocol 300 for establishing a secure communication session between a wireless client and an anonymous wireless host over the wireless network 100, according to some embodiments. As shown in FIG. 3, the protocol 300 can be implemented by the wireless host 310 in combination with the wireless client 320. Alternatively, the protocol 300 may be implemented by the wireless client 320 in combination with the wireless host 310.
[0049] In some embodiments, the wireless host 310 is the first wireless device 110 in the wireless network 100, and the wireless client 320 is the second wireless device 110 in the wireless network 100. Each of the wireless host 310 and the wireless client 320 can be connected to the AP 150 of the wireless network 100, and each can be assigned a unique address on the wireless network 100. In some embodiments, a Dynamic Host Configuration Protocol (DHCP) server is implemented within the wireless network 100, and the devices can be configured to request an IP address from the DHCP server when each device is connected to the wireless network 100. In some embodiments, when the device is connected to the wireless network 100, the device uses the link local addressing protocol to assign an IP address. In yet another embodiment, the device can be manually configured, and a static IP address can be issued for it to be used when connecting to the wireless network 100.
[0050] The wireless host 310 may be any wireless device that provides services to other devices through the wireless network 100. The wireless client 320 can be any wireless device that can be configured to access the services implemented by the wireless host 310. Wireless host 310 and
The wireless client 320 may be connected to a single AP 150 or to separate multiple APs 150. For example, in some embodiments, the wireless host 310 can connect to the first AP 150-0, and the wireless client 320 can connect to the second AP 150-1. Alternatively, both the wireless host 310 and the wireless client 320 can be connected to the first AP 150-0.
[0051] Conventionally, through a wireless network such as the wireless network 100, the wireless client 320 searches for available wireless networks within the range of the wireless client 320 by listening to beacon frames on a specific wireless frequency. The AP can be configured as Beacon frames are periodically transmitted to notify any devices within the range of a specific AP that there is a wireless network. The beacon frame may include a service set identifier (SSID), timestamp, beacon interval, capability information, and other parameters associated with the wireless network. The wireless client 320 can use the information contained in the beacon frame to access the wireless network. When the wireless network is configured as a secure wireless network, for example, by using Wired Equivalent Encryption (WEP), Wi-Fi Network Secure Access (WPA), etc., the user of the wireless client 320 can ask the administrator of the wireless network for credentials (e.g. , Encryption key) in order to access the wireless network.
[0052] Once the wireless client 320 is connected to the wireless network 100, the wireless client 320 may try to discover other devices and/or services available through the wireless network 100. In some embodiments, the user of the wireless client 320 may need to request the administrator to provide the user with the IP address of a specific device, and the user may manually configure the wireless client 320 to access by manually entering the IP address associated with the specific device Specific equipment. Alternatively, the administrator of the wireless network can implement a local Domain Name System (DNS) server for the wireless network, so that the local DNS server maps the host name in the local domain to the corresponding private IP address in the wireless network. The administrator can provide the user of the wireless client 320 with a host name instead of an IP address, and the wireless client 320 can access a specific device through the host name. When a device is assigned a dynamic IP address when it is connected to a wireless network through a DHCP server, it may be advantageous to use a DNS server. The various services implemented by the device can be used to access the local DNS server that uses the static domain name that is remapped to the new IP address whenever the device connects to the wireless network.
book.
[0053] It should be understood that these conventional techniques may be cumbersome for the user of the wireless client 320 (especially when the user is not an administrator of the wireless network). When the user is an administrator of the wireless network, the configuration may also be cumbersome, because the administrator needs to manually configure the network so that the wireless client 320 can access the service provided by the wireless host 310. However, when the user is not the administrator of the wireless network, conventional techniques may prevent the wireless client 320 from accessing the service provided by the wireless host 310 (for example, when the administrator cannot be contacted to obtain configuration information associated with the service). For example, the user may be provided with a password to access the wireless network 100, but the user may not be able to connect to the wireless speaker connected to the wireless network, so that no additional configuration information (for example, IP address, port, credentials, etc.) In the case of services implemented by wireless speakers, audio data is played through the speakers.
[0054] Ideally, the wireless client 320 should be able to establish a connection with the wireless host 310 without knowing any specific configuration information. For example, an administrator of the wireless network 100 may want to add the wireless host 310 to the wireless network 100 and want to use devices connected to the wireless network 100 to provide visitors with access to the services implemented by the wireless host 310. However, the administrator may tend to release a limited amount of information that publicly indicates that the service is available through the wireless network 100 and enables the guest device to connect with the wireless host 310 and access the service. For example, in some embodiments, the wireless client 320 may request access to the service implemented by the wireless host 310 simply by using the host name bound to the service.
[0055] As shown in FIG. 3, the protocol 300 can be initiated by the wireless host 310 at 301, where the wireless host 310 announces that the service is available through the wireless network 100. In some embodiments, a broadcast address may be used to broadcast an announcement message to devices on the wireless network 100. For example, the broadcast address of the local subnet using the IPv4 address can be created by performing a bitwise OR of the complement of the subnet mask using the IP address of the host (for example, 192.168.1.10 | (~255.255.0.0)). The payload of the notification message can be
The host name associated with the service is used to identify the service implemented by the wireless host 310. In some embodiments, a multicast address may be used to multicast announcement messages to devices on the wireless network 100. Although all devices connected to the wireless network 100 listen for data packets sent to a broadcast address, only a subset of wireless devices connected to the wireless network 100 can listen for data packets sent to a specific multicast address. In some embodiments, the wireless host 310 may advertise the service by registering the service with a server on the wireless network 100. The announcement message can be directly transmitted via a unicast address to a registration service implemented by the server, which can be configured to keep a record of all services available on the wireless network 100. In some embodiments, the records are stored in a database in a memory accessible by the registration service.
[0056] After the wireless host 310 announces the service through the wireless network 100, at 302, the wireless client 320 discovers the services available through the wireless network 100. In some embodiments, discovery may include monitoring broadcast addresses or multicast addresses to receive data packets that include a payload that identifies the service as available through wireless network 100. In some embodiments, discovery may include transmitting a discovery request to the server to return a list of services available through the wireless network 100.
[0057] Once the wireless client 320 has received the list of available services, at 303, the wireless client 320 determines a route associated with the services in the list of available services. Determining the route may include selecting one of the services identified in the list of available services discovered by the wireless client 320. In some embodiments, each service is advertised with a unique identifier that can be used to refer to the service. The identifier may include a character string used to refer to the service. In some embodiments, the identifier includes the host name associated with the service, and the IP address associated with the wireless host 310 is not explicitly listed. For example, the identifier of the audio reproduction service implemented by the wireless speaker may include the character string My_Speaker._airplay._tcp. local, which uniquely identifies the character string used for playback from any device in the local subnet of the wireless network 100 via the wireless speaker. The service of the audio received by the service.
[0058] In some embodiments, the wireless client 320 automatically determines a particular route based on the capabilities associated with the discovered service. For example, the service identifier may include a service type indicating one or more capabilities implemented by the wireless host 310 in conjunction with the service. The wireless client 320 may be configured to automatically filter the available services according to the service type, and then select one of the filtered services based on another criterion (such as priority or other information included in the notification message). In some embodiments, the wireless client 320 may be configured to store a record of specific services previously accessed by the wireless client 320, and the wireless client 320 may be configured to automatically select services that have previously been accessed by the wireless client 320 As a specific route.
[0059] In some embodiments, the wireless client 320 prompts the user of the wireless client 320 to determine a particular route by selecting a service from at least a list of available services. For example, when one or more wireless hosts 310 announce an audio reproduction service accessible through the wireless network 100, the voice call application on the cell phone may prompt the user to select a specific service for routing audio through the wireless speaker. The user can manually determine a specific route from the route list using the user interface displayed on the screen of the cell phone.
[0060] In order to establish a secure communication session with the service implemented by the wireless host 310 and announced to the wireless client 320, at 304, the wireless client 320 invites the wireless host 310 to establish a secure communication session with the wireless client 320. In some embodiments, the wireless client 320 uses the broadcast address of the wireless network 100 to transmit the invitation message to the wireless host 310. The wireless host 310 includes a process configured to listen for invitation messages transmitted via a broadcast address. The invitation message transmitted by the wireless client 320 includes a public key created by the wireless client 320 for encrypting data transmitted between the service and the wireless client 320 during a secure communication session, and a public key for secure communication with the wireless client 320. The IP address and port number associated with the socket created by the session. The public key can be a k-bit string associated with an asymmetric password encryption/decryption algorithm, where the asymmetric password encryption/decryption algorithm is used to transmit encrypted data between the wireless client 320 and the wireless host 310, and is used to use the corresponding The private key to decrypt the data on either end. In some embodiments, the public key may be created by the wireless client 320
A short 256-byte (for example, 048-bit) key for use with a specific communication session. In other words, the public key can only be used for a single communication session and can be discarded when the communication session is terminated. The public key may also be associated with the corresponding private key paired with the public key, but not shared with the wireless host 310.
[0061] In some embodiments, the wireless client 320 uses the multicast address of the wireless network 100 to transmit an invitation message to the wireless host 310. The wireless host 310 includes a process configured to listen for invitation messages transmitted via a multicast address. It should be understood that the transmission of the invitation message via a broadcast address or via a multicast address allows the wireless client 320 to request the establishment of a secure communication session between the service implemented by the wireless host 310 and the wireless client 320, without the need for the wireless client 320 Any identification information about the wireless host 310, such as the IP address assigned to the wireless host 310, is leaked. This function makes it possible to advertise services to guest devices on the wireless network 100 through the wireless network 100 in the local domain without compromising the security of the wireless network 100. This may happen, for example, when publishing services related to the available services on the wireless network 100. When connecting a list of IP addresses and/or port numbers.
[0062] At 305, the wireless host 310 receives the invitation message and verifies the authenticity of the invitation message. In some embodiments, a digital certificate associated with the wireless client 320 is used to sign the invitation message. The public keys associated with various certification authorities can be used to independently verify digital certificates. The wireless host 310 may also determine whether to allow the wireless client 320 to access the service requested by the invitation message. For example, the wireless host 310 can block a specific IP address or port in the wireless network 100 from accessing the service. Therefore, the wireless host 310 may be configured to determine whether to allow the wireless client 320 to access the service based on the information provided in the invitation message. If the wireless host 310 determines that the wireless client 320 is denied access to the service, the wireless host 310 avoids sending an acceptance message to the wireless client 320 in response to the invitation message. The wireless client 320 may set a timer for determining when the invitation message should expire. If the timer expires before receiving the accept message from the wireless host 310, the wireless client 320 can dismiss the invite message and determine a different route from the list of available services.
[0063] However, if the wireless host 310 determines that the wireless client 320 is authorized to access the service, then at 306, the wireless host 310 transmits an acceptance message to the wireless client 320. In some embodiments, the wireless host 310 uses the broadcast address of the wireless network 100 to transmit an acceptance message to the wireless client 320. The wireless client 320 may include a process configured to listen for acceptance messages transmitted via broadcast addresses. In some embodiments, the wireless host 310 uses the multicast address of the wireless network 100 to transmit an acceptance message to the wireless client 320. The wireless client 320 may include a process configured to listen for acceptance messages transmitted via a multicast address.
[0064] The acceptance message may include the public key associated with the wireless host 310. The public key can be a k-bit string associated with an asymmetric password encryption/decryption algorithm, where the asymmetric password encryption/decryption algorithm is used to transmit encrypted data between the wireless host 310 and the wireless client 320, and is used to use the corresponding The private key to decrypt the data on either end. In some embodiments, the public key may be a short-lived 256-byte (eg, 2048-bit) key created by the wireless host 310 for use with a specific communication session. The public key may also be associated with the corresponding private key paired with the public key, but does not communicate with the wireless client 320.
[0065] At 307, the wireless host 310 establishes a secure communication session via a communication channel. A secure communication session can be established according to a protocol that implements asymmetric cryptography for authentication and encryption. In some embodiments, the secure communication session creates a network tunnel between the socket associated with the wireless host 310 and the socket associated with the wireless client 320. The socket associated with the wireless client 320 may be bound to the IP address and port number provided by the wireless client 320 in the invitation message. The socket associated with the wireless host 310 may be bound with the IP address of the wireless host 310 and the port number assigned to the service instance implemented by the wireless host 310 for the secure communication session.
[0066] As used herein, a network tunnel refers to a connection through which data packets are encrypted and used as valid
The payload is encapsulated in another data packet. The wireless client 320 may create one or more data packets for transmission via a network tunnel, the one or more data packets including unencrypted data as one or more payloads in the one or more data packets. The private key for the wireless client 320 and the public key for the wireless host 310 can be used to encrypt each of the one or more data packets according to an encryption algorithm. Each encrypted packet can be encapsulated into another data packet as the payload of another data packet, and it can also include an unencrypted packet header for transmitting the other data packet to the wireless host 310 via the communication channel. After receiving another data packet, the wireless host 310 may extract the payload from the other data packet, and decrypt the payload using the public key provided by the wireless client 320 in the invitation message and the private key of the wireless host 310. Then, the wireless host 310 can process the decrypted data packet as a normal unencrypted data packet. Encrypt the data packet by using the private key for the wireless host 310 and the public key for the wireless client 320, encapsulate the encrypted data packet into another data packet, and transmit the other data packet to the wireless client 320 , The wireless host 310 can transmit data packets to the wireless client 320 in a similar manner, where the wireless The client may be configured to use the public key provided by the wireless host 310 in the acceptance message and the private key of the wireless client 320 to decrypt the additional data packet.
[0067] It should be understood that the aforementioned protocol 300 allows guest devices on the wireless network to discover services available on the wireless network 100 and request access to those services without displaying any identifying information about the host of those services on the wireless network 100. When network discovery is disabled, this anonymous feature can be used to protect WLAN security measures.
[0068] In some embodiments, the wireless host 310 and the wireless client 320 include software for implementing zero-configuration networking, which generally refers to a set of protocols for performing IP address allocation, host name resolution, and service discovery. This group of protocols can include: the realization of the link local addressing protocol, which specifies how to assign addresses to the host when the host is connected to the wireless network; the realization of the multicast DNS protocol, which specifies the multicast DNS protocol How to use IP multicast addresses to perform DNS queries; and the realization of the DNS service discovery protocol, which specifies how the host registers for services and how the client discovers the services available through the wireless network.
[0069] When a host is connected to a wireless network, the link local addressing protocol randomly selects an address for the host from a series of reserved addresses. For example, a series of IPv4 addresses may be reserved for the link-local addresses in the address block 169.254.0.0/16, and a series of IPv6 addresses may be reserved for the link-local addresses in the address block fe80::/64. Before using the randomly selected address, the host probes the wireless network to determine whether another host on the wireless network is already using the address. If a reply to the probe is received, the address is in use, and the host will randomly select another address from a series of reserved addresses and repeat the process. If no reply is received, the address is available to the host.
[0070] The multicast DNS (mDNS) protocol reserves the ".local" pseudo top-level domain (TLD) for host names in the local area network (for example, the wireless network 100). A host name is a label (for example, a unique identifier) assigned to a specific device located on the network. The host name can be constructed into different domains, where each subdomain in the host name is separated by a period. The domain name system uses a registrar that holds records that map host names to device addresses (eg, IP addresses). Each registrar implements one or more DNS servers, which are configured to accept DNS queries to translate a given host name into an IP address. Therefore, the device can convert the host name to an IP address by sending a DNS query to the known IP address of the DNS server. In contrast to standard DNS, the DNS protocol transmits DNS queries to multicast addresses (for example, the reserved multicast IPv4 address 224.0.0.251, the reserved multicast IPv6 address FF02::FB, etc.) instead of transmitting DNS queries to and The DNS server is associated with a known unicast IP address to perform DNS lookups. Other devices on the network may be configured to implement an mDNS responder, which is a process implemented in one or more hosts that is configured to monitor the multicast address of the DNS query and resolve the host name included in the DNS query. in After detecting the DNS query and subsequently successfully resolving the host name included in the DNS query, the DNS responder transmits to the DNS query
Include the response of the IP address corresponding to the host name in the DNS query. This makes it possible to address devices on the network via the hostname on the .local pseudo TLD, without the need to implement a traditional DNS server on the network to resolve the .local TLD hostname.
[0071] The DNS service discovery protocol enables various hosts connected to the network to advertise services implemented by the host, and enables clients connected to the network to discover services advertised by one or more hosts. After connecting to the local network, each host can initiate a service on a specific port of the host network interface, which can be assigned via the manual configuration discussed above (for example, static IP), DHCP, or link local addressing protocol website address. Once the host starts the service, the host advertises the service to any mDNS responder on the network. More specifically, the host periodically and exponentially decays to transmit the registration service record via the multicast address. Any mDNS responder listening to the multicast address on the network can receive the registration service request and register the service according to the host name of the service contained in the registration service record. The client can use a DNS query for a specific host name of a specified service type to query the mDNS responder which services are available in the local subnet.
[0072] In some embodiments, at 301, the wireless host 310 advertises services on the wireless network 100 using the DNS service discovery protocol. The wireless host 310 may transmit a registration service request through a multicast address to any mDNS responder implemented by one or more hosts on the wireless network 100 and configured to monitor the multicast address. One or more mDNS responders can receive registration service requests and create multiple DNS records (including service records, pointer records, and text records) for the service.
[0073] The service record may include two pieces of information identifying the service: a host name and a port number. The port number identifies the User Datagram Protocol (UDP) or Transmission Control Protocol (TCP) port of the service, and the host name represents the domain name that identifies the service. The host name can include a structured list of subdomains formatted according to the following convention: <Instance Name>. <Service Type>. <Domain>". The string <Domain> can be a standard DNS domain. For services limited to local links, It can be listed as "local.". Service Type> can be a standard IP protocol name (such as a standard IP protocol name registered by the IANA-Internet Assigned Numbers Bureau), with an underscore in front of it, and an underscore in front of it at the back. Host-to-host transfer protocol (for example, TCP or UDP) °<Instance Name> string can be a unique identifier for a specific service instance.
[0074] The pointer record is similar to the service record, but the pointer record maps the service type (for example, <Service Type>.<Domain» to the service host name and port number. The pointer record provides easy service by querying the mDNS responder according to the service type) Find.
[0075] A text record is similar to a service record, but it may contain additional information, such as the mapping of multiple services of the same service type located at the same IP address and port number to different service names, which may be called a service name alias.
[0076] In some embodiments, the wireless host 310 implements the mDNS responder locally, and advertises the service on the network by registering the service with the local mDNS responder, thereby creating a DNS record in the memory of the wireless host 310. Then, the local mDNS responder can use the local record to resolve the host name in the DNS query through the multicast address.
[0077] At 302, the wireless client 320 transmits a service discovery request via a multicast address. For example, the wireless client 320 may transmit a request to any mDNS responder that monitors multicast addresses on the wireless network 100 to return a list of services matching the query based on a specific service type (for example, _printer._tcp", _music._tcp, etc.) The mDNS responder on the wireless network 100 can return any pointer record that matches the query. At 303, the wireless client 320 determines a specific route by selecting a specific instance of the service associated with one of the returned pointer records.
[0078] At 304, the wireless client 320 transmits an invite message to the wireless host 310 via the multicast address associated with the mDNS responder. The invitation message includes the IP address of the wireless client 320 and the port number allocated by the wireless client 320 for establishing a connection with the wireless host 310. It should be understood that the host name of the service returned in the pointer record may be different from the host name of the wireless host 310. In addition, although in some cases, the hostname of the service may include
The DNS query is mapped to the domain of a specific IP address, but the wireless host 310 can remain anonymous by using the "local." domain, where the "local." domain cannot be directly mapped to the specific IP address of the wireless host 310.
[0079] At 305, the wireless host 310 verifies the invitation received from the wireless client 320. Verification may include any method of authentication, including checking the credentials associated with the wireless client 320 (eg, certificate verification). For example, by using a certificate to sign the invitation, or by including the user name and password of the wireless client 320 and the public key, IP address and port number in the invitation, the credentials can be transmitted in the invitation. It should be understood that in some embodiments, the operation at 05 is optional and can be omitted from the protocol 300.
[0080] In some embodiments, authentication refers to ensuring that the wireless client 320 is produced by the same manufacturer as the anonymous wireless host 310, so that only devices produced by the same manufacturer can be authorized to establish a secure communication session with the wireless host 310. For example, the manufacturer may hard-code the authentication credentials in the software included in both the wireless host 310 and the wireless client 320. The authentication credential can be shared by the wireless client 320 and the wireless host 310, where the wireless host can check the authentication credential provided by the wireless client 320 against the corresponding authentication credential stored in the wireless host 310. Other techniques for verifying that the wireless client 320 is produced by the same manufacturer as the wireless host 310 are considered to be within the scope of this description of the protocol 300.
[0081] At 306, the wireless host 310 transmits an acceptance message to the wireless client 320 using the multicast address. The wireless client 320 includes a process configured to listen to the multicast address of the acceptance message sent by the wireless host 310 in response to the invitation message sent via the multicast address. The acceptance message includes the public key associated with the wireless host 310. The public key may be short-lived and may be generated to establish a specific communication session with the wireless client 320.
[0082] At 307, the wireless host 310 establishes a secure communication session with the wireless client 320. A secure communication session can be established according to a communication protocol that implements asymmetric cryptography for authentication and encryption. In some embodiments, the secure communication session uses a network tunnel established between a socket associated with the wireless host 310 and a socket associated with the wireless client 320. The socket associated with the wireless client 320 may be bound with the IP address and port number provided by the wireless client 320 in the invitation message. The socket associated with the wireless host 310 may be bound with the IP address of the wireless host 310 and the port number assigned to the service instance implemented by the wireless host 310 for the secure communication session.
[0083] It should be understood that the protocol 300 is a handshake protocol between the client and the anonymous host, which is used to establish a secure communication session between the service implemented by the anonymous host and the client. For example, DNS protocol and DNS service discovery protocol can be used to initiate a network tunnel between a client and an anonymous host. The protocol 300 allows the wireless host 310 to remain anonymous until the host decides to connect with the wireless client 320 by establishing a secure communication session with the wireless client 320.
[0084] It should be understood that the wireless network 100 may represent a typical WLAN used in a residential environment. Generally, the wireless network 100 may include a small number (for example, one or two) of wireless AP 150 and a single gateway 170 (or router), where the gateway is coupled to an external network 180 via a cable modem, such as a DSL modem, and/or is connected to a service The provider's hybrid fiber coaxial (HFC) broadband network. The wireless network 100 may have dozens of devices connected to the wireless network 100. However, the protocol 300 is not limited to residential environments. Protocol 300 can be implemented in commercial environments such as airports, multi-building parks, or arenas/stadiums, which can include more access points and gateways, and can be configured to handle thousands of connected devices. In addition, this protocol can be implemented for an enterprise network that includes multiple gateways at various locations around the world connected via an external network such as the Internet.
[0085] FIG. 4 illustrates an exemplary enterprise network 400 according to some embodiments. The enterprise network 400 includes a plurality of gateways 470, and each gateway 470 is connected to an external network 480 via a network interface 408. The first AP 450-0 is connected to the first gateway 470-0 via the network interface 404, and the second AP 450-1 is connected to the second gateway 470-1 via the network interface 404. The first AP 450-0 and the first gateway 470-0 may be located in a first location, such as the companys first campus in the first city, the second AP 450-1 and the first
The second gateway 470-1 may be located at a second location, such as the company's second park in the second city. The authorized wireless device 410 can connect to the AP 450 via the wireless interface 402 at any location within range.
[0086] The first gateway 470-0 communicates with the second gateway 470-1 via the external network 480. In most residential wireless networks, a single gateway provides Internet access to devices connected to the wireless network. In the corporate network 400, the gateway 470 can be configured as one of multiple related wireless networks at different locations. Relay data between. In some embodiments, the gateway 470 is configured to relay data packets between the gateways 470 through a tunnel established via the external network 480. The tunnel allows multiple wireless networks that are communicatively coupled through an external network to be used as a single public wireless network. Therefore, the first wireless device 410-0 and the second wireless device 410-1 can communicate as if the first wireless device 410-0 and the second wireless device 410-1 are connected to a single AP 150 configured as a switch, through wired Two APs 150 directly connected to the network interface 106 or two APs 150 indirectly connected through one or more other network hardware devices (such as switches or routers).
[0087] In some embodiments, the enterprise network 400 includes a third gateway 470-2 connected to an external network 480 via a network interface 408. The server 490 is connected to the third gateway 470-2 via the network interface 404. The server 490 is a computing device, which may include, but is not limited to, a workstation, a blade server accommodated in a chassis, or a virtual machine (VM) hosted on a shared hardware resource. The server 490 provides one or more services to clients of the enterprise network 400. For example, the server 490 may be implemented as a DHCP server for assigning an IP address to the host when the host is connected to the enterprise network 400. As another example, the server 490 may be implemented as a DNS server for determining the host name associated with the enterprise network 400. Network administrators can manually configure various devices in the corporate network with specific host names and register these host names with the DNS server. The server 490 may also implement other types of services, such as hosting a website for an intranet, providing a virtual machine for client applications executed on the wireless device 410, providing a virtual storage solution in combination with hardware storage resources, and so on.
[0088] It should be understood that when the announcement message, the invitation message, and the acceptance message can bridge the connection between multiple gateways 470, the protocol 300 described above can work with the enterprise network 400. For example, packets transmitted via broadcast addresses and/or multicast addresses within a specific subnet are usually not relayed by routers outside the subnet (for example, packets will stop relaying at the network interface between the gateway and the external network). However, when the gateway 470 is configured to relay packets via a tunnel through the external network 480, such multicast packets can be encapsulated at the gateway 470, and can be tunneled as a payload in another data packet to It is decrypted at another gateway and forwarded to a multicast address in a different wireless network. Therefore, broadcast or multicast messages can reach devices 410 on different wireless networks within the same enterprise network 400.
[0089] Referring again to FIG. 3, as long as the wireless host 310 and the wireless client 320 are located on the wireless network 100 or are located on different wireless networks within the same enterprise network 400, the protocol 300 can be used for the wireless host 310 and the wireless client 320. Establish an encrypted communication channel between. However, once the wireless host 310 establishes a connection between its own socket and the socket established by the wireless client 320, the wireless host 310 is no longer anonymous, because the wireless client 320 can check through the encryption The source address of the data packet arriving on the communication channel. In some deployments, it may be desirable to further isolate the wireless host 310 from the wireless client 320, thereby allowing the wireless host 310 to remain completely anonymous to the wireless client 320 even after the encrypted communication channel is established, and to use a third-party server. The encrypted communication between the wireless host 310 and the wireless client 320 is relayed to achieve this anonymity.
[0090] FIG. 5 illustrates an example of a protocol 500 for establishing a secure communication session between wireless devices over an enterprise network 400, according to some embodiments. As shown in FIG. 5, the protocol 500 can be executed by the wireless host 510 and the wireless client 520 in conjunction with the relay server 530. In some embodiments, the wireless host 510 is connected to the first AP 4500 of the enterprise network 400, the wireless client 520 is connected to the second AP 450-1 of the enterprise network 400, and the relay server 530 is connected to the enterprise network 400. The third gateway 470-2. In an alternative embodiment, the relay server 530 is not included in the enterprise network 400, but
It can be accessed via the external network 480. For example, the function of the relay server 530 may be provided by a third party as a service accessible through the Internet.
[0091] The protocol 500 starts at 501, where the wireless host 510 announces that the service is available through the enterprise network 400. In some embodiments, the wireless host 510 uses the broadcast address or the multicast address of the enterprise network 400 to transmit the announcement message. The announcement message may be received at the first gateway 470-0 and relayed to the second gateway 470 via the tunnel (1). In some embodiments, the wireless host 510 uses a multicast address to transmit the registration service record to any mDNS responder configured to monitor the multicast address implemented by one or more hosts on the enterprise network 400 to advertise the service through the enterprise. Network 400 is available. One or more mDNS responders can receive registration service requests and create multiple DNS records (including service records, pointer records, and text records) for the service. It should be understood that the mDNS responder may be implemented in the wireless host 510, the wireless client 520, the server 490, and/or various other hosts connected to the enterprise network 400.
[0092] At 502, the wireless client 520 discovers that the service is available through the enterprise network 400. In some embodiments, discovery may include monitoring broadcast addresses or multicast addresses to receive data packets that include a payload that identifies the service as available through the enterprise network 400. In some embodiments, discovery may include transmitting a request to a server, and receiving a list of services available through the enterprise network 400 from the server. In some embodiments, discovery may include using the broadcast address or multicast address of the enterprise network 400 to transmit a request to query one or more servers to return a list of available services on the enterprise network 400.
[0093] The wireless client 520 may transmit a request to any mDNS responder that monitors a multicast address on the enterprise network 400 to obtain a list of services that match the query based on a specific service type. The m DNS responder on the corporate network 400 can return any pointer record that matches the query. It should be understood that the DNS responder may not be located on the same wireless network as the wireless client 520. For example, the wireless host 510 may implement the mDNS responder in the wireless network associated with the first gateway 470-0, and the wireless client 520 may be located on a different wireless network associated with the second gateway 470-1. Alternatively, the DNS responder may be connected to the third gateway 470-2, and may not be part of the wireless network associated with the first gateway 470-0 or the wireless network associated with the second gateway 4701.
[0094] After receiving the list of available services, the wireless client 520 determines a route associated with the services in the list of available services at 503. Determining the route may include selecting one of the services identified in the list of available services discovered by the wireless client 520.
[0095] At 504, the wireless client 520 invites the wireless host 510 to establish a connection with the wireless client 520. It is not required that the public key of the wireless client 520, the IP address of the wireless client 520, and the port number allocated by the wireless client 520 for the communication session are present in the invitation message transmitted to the wireless host 510. However, in some embodiments, the invitation The message can still include this information. In some embodiments, the invitation message may include the host name of the relay server 530 and/or the relay service provided by the relay server 530, which identifies the relay server 530 associated with the secure communication session. In the protocol 300, the wireless client 320 transmits the information to the wireless host 310 so that the wireless host 310 can establish a connection for the encrypted communication channel. Unlike the protocol 500, the wireless host 510 is only required to notify the wireless client (e.g., wireless The client 520) requests a communication session within the enterprise network 400. The broadcast address or the multicast address of the enterprise network 400 may be used to transmit the invitation message.
[0096] At 505, the wireless host 510 transmits an acceptance message to the wireless client 520. In some embodiments, the wireless host 510 uses the broadcast address or multicast address of the wireless network 400 to transmit an acceptance message to the wireless client 520. The acceptance message may include the public key associated with the wireless host 510. In some embodiments, the public key may be a short-lived 256-byte (eg, 2048-bit) key created by the wireless host 510 for use with a specific communication session.
[0097] At 506, the wireless client 520 transmits the request to the relay server 530 to allocate for the secure communication session
Relay connection. In some embodiments, the relay server 530 is associated with a well-known IP address or a host name that can be resolved by a conventional DNS server or mDNS responder within the enterprise network 400. The wireless client 520 and the wireless host 510 may be configured to use the relay server 530 to relay data packets between the wireless host 510 and the wireless client 520 through a pair of communication channels connected to the relay server 530. In some embodiments, the wireless client 520 may select the relay server 530 for a secure communication session, and may include the address or host name associated with the relay server 530 in the invitation message to the wireless host 510. In some embodiments, the request transmitted from the wireless client 520 to the relay server 530 includes the public key associated with the wireless host 510 and the public key associated with the wireless client 520.
[0098] At 507, the relay server 530 transmits a response to the request to the wireless client 520, the response including a pair of tokens associated with the relay connection. Each token may identify a specific socket allocated by the relay server 530 for the secure communication session. The relay server 530 may maintain a table that associates the issued token with a specific socket of the network interface included in the relay server 530, and the table may also associate each token with a specific instance of the relay connection. The assigned corresponding token is associated.
[0099] In some embodiments, the relay server 530 uses the public key associated with the wireless host 510 and the private key associated with the relay server 530 to encrypt the first token (T_A), and uses the 530 The associated certificate is used to sign the encrypted first token. In addition, the relay server 530 uses the public key associated with the wireless client 520 and the private key associated with the relay server 530 to encrypt the second token (T_B), and uses the public key associated with the relay server 530 The certificate is used to sign the encrypted second token. Then, the relay server 530 transmits the signed and encrypted token to the wireless client 520. In some embodiments, the token is encrypted but not signed with a certificate.
[0100] It should be understood that, in some embodiments, the request to allocate a relay connection and the response to the request may be transmitted to the relay server 530 via a unicast address instead of a broadcast or multicast address. As described above, the wireless client 520 may be pre-configured to use a specific relay server associated with a known unicast IP address. Alternatively, the wireless client 520 may be pre-configured to use a specific relay server associated with a known host name. The wireless client 520 can be configured to send a DNS query to a DNS server by using a unicast IP address or to send a DNS query to an mDNS responder by using a multicast address of the corporate network 400, which will be used to relay the known information of the server 530 The host name is converted to a unicast IP address. In some embodiments, the request to allocate the relay connection and the response to the request may be transmitted to the relay server 530 via the broadcast address or the multicast address of the enterprise network 400. However, it should be understood that in some embodiments where the request is transmitted via a multicast address, the relay server 530 includes an m DNS responder and must be located within the enterprise network 400.
[0101] At 508, the wireless client 520 transmits the token to the wireless host 510. At 506, the wireless client 520 receives two tokens from the relay server 530: a first token associated with the wireless host 510, and a second token associated with the wireless client 520. In some embodiments, the wireless client 520 uses the public key associated with the certificate to authenticate the signed and encrypted second token. The public key associated with the certificate may be maintained by the certificate authority, or if the certificate is self-signed, it may be provided by the relay server 530. If the encrypted second token is authenticated, the wireless client 520 uses the private key associated with the wireless client 520 and the public key associated with the relay server 530 to decrypt the second token (T_B). It should be understood that the public key associated with the certificate is different from the public key used to encrypt the second token. The public key associated with the certificate is used for all communication sessions that use the certificate for authentication. Conversely, the public key used to encrypt the second token may be a ephemeral key created for a specific communication session and discarded after the communication session is terminated.
[0102] Although the wireless client 520 can use the private key for the specific communication session created and known by the wireless client 520 to decrypt the second token (T_B), the wireless client 520 cannot decrypt the first token. The token (T_A) because the first token (T_A) is encrypted by the relay server 530 using the public key associated with the wireless host 510. Therefore, the wireless client 520 will sign
The encrypted first token is transmitted to the wireless host 510, where the wireless host 510 uses the public key associated with the certificate to authenticate the signed and encrypted first token. If the encrypted first token is authenticated, the wireless host 510 uses the private key associated with the wireless host 510 and the public key associated with the relay server 530 to decrypt the first token (T_A).
[0103] At 509, the wireless host 510 and the wireless client 520 each establish a connection with the relay server 530. In some embodiments, the wireless host 510 transmits the first token (T_A) to the relay server 530 as part of the connection request message. The relay server 530 establishes a connection between the first socket associated with the first token and the wireless host 510. Independently, the wireless client 520 transmits the second token (T_B) to the relay server 530 as part of another connection request message. The relay server 530 establishes a connection between the second socket associated with the second token and the wireless client 520. Likewise, when the token is created as described with respect to 507, the relay server 530 associates the first socket with the first token, and associates the second socket with the second token. Then, the relay server 530 configures the relay connection so that the first socket relays the packet to the second socket, and the second socket relays the packet to the first socket.
[0104] Then, the wireless host 510 and the wireless client 520 may transmit the securely encrypted data packet via the communication channel established by the relay server 530. The public and private keys created by the wireless host 510 and the wireless client 520 for the secure communication session can be used to encrypt data packets. However, the wireless host 510 addresses the data packet to the first socket created by the relay server 530, and the wireless client 520 addresses the data packet to the second socket created by the relay server 530. The relay server 530 cannot decrypt the payload of the data packet because the relay server 530 does not know the private key created by the wireless host 510 and the wireless client 520 for the secure communication session. Similarly, the wireless client 520 does not know the address of the wireless host 510, and if the wireless client 520 does not provide the address in the invitation message transmitted to the wireless host 510 at 504, the wireless host 510 may not know the address of the wireless client 520. address.
[0105] FIG. 6 illustrates a flowchart of an exemplary method 600 for establishing a secure communication session with an anonymous wireless host, according to some embodiments. The method 600 may be implemented by hardware or software or some combination of hardware and software (including but not limited to a processor configured to execute instructions that cause the method to be performed). In various embodiments, the method 600 may be performed by the wireless client 320 or the wireless client 520.
[0106] At 602, at least one service is found to be available through the wireless network. In some embodiments, the wireless client receives an announcement message indicating that a particular service is available through the wireless network. In another embodiment, the wireless client sends a service discovery request to a broadcast address or a multicast address of the wireless network, and the wireless client monitors the broadcast address or the multicast address for responding to the service discovery request. The response may include multiple pointer records indicating various services available through the wireless network. It should be understood that in response to a single service discovery request, multiple responses from multiple responders can be received (for example, multiple mDNS responders on a wireless network can respond to a single service discovery request), and each response includes one or more Pointer records.
[0107] At 604, a service implemented by the anonymous wireless host is selected from at least one service found to be available through the wireless network. In some embodiments, the wireless client automatically selects a service from a list of available services found on the wireless network. In some embodiments, the wireless client prompts the user to select a service from a list of available services.
[0108] At 606, an invitation to establish a secure communication session with the service is sent to the anonymous wireless host. In some embodiments, the invitation includes the IP address of the wireless client and the port number assigned by the wireless client for the secure communication session. A secure communication session can be established to exchange data with processes or applications executed by the processor of the wireless client and services implemented by the anonymous wireless host. The invitation may also include a public key generated by the wireless client as part of the asymmetric private key/public key pair used to encrypt data within the secure communication session.
[0109] At 608, an acceptance is received from the anonymous wireless host. In some embodiments, the wireless client monitors the broadcast
Address or multicast address to respond to an invitation sent via a broadcast address or multicast address. The acceptance can be received from the anonymous wireless host via a broadcast address or a multicast address. Therefore, the wireless client may receive the acceptance without the wireless client knowing the address associated with the anonymous wireless host. For example, the acceptance may not include the source address of the anonymous wireless host in the packet header.
[0110] At 610, a secure communication session is established with the service implemented by the anonymous wireless host. In some embodiments, the wireless client creates a socket associated with the address and port number of the wireless interface included in the invitation transmitted to the anonymous wireless host. The socket is configured to listen at the port number used for the connection created by the anonymous wireless host. After transmitting the acceptance to the wireless client, the anonymous wireless host is configured to create a socket associated with the address and port number of the wireless interface of the anonymous wireless host allocated for the secure communication session. The anonymous wireless host uses the address and port number provided by the wireless client in the invitation to create a connection between the socket associated with the wireless interface of the anonymous wireless host and the socket associated with the wireless interface of the wireless client.
[0111] FIG. 7 shows a flowchart of an exemplary method 700 for anonymously establishing a secure communication session with a wireless client according to some embodiments. The method 700 may be implemented by hardware or software or some combination of hardware and software (including but not limited to a processor configured to execute instructions that cause the method steps to be executed). In various embodiments, the method 700 may be performed by the wireless host 310 or the wireless host 510.
[0112] At 702, the service is advertised as available via the wireless network. In some embodiments, the wireless host transmits an announcement message indicating that the service is available through the wireless network via a broadcast address or via a multicast address of the wireless network. In some embodiments, the wireless host registers the service along with the service discovery service as available through the wireless network.
[0113] At 704, an invitation to establish a secure communication session with the service via the communication channel is received from the wireless client. In some embodiments, the invitation includes the IP address of the wireless client and the port number assigned by the wireless client for the secure communication session established via the communication channel. A secure communication session can be established to exchange data with processes or applications executed by the processor of the wireless client and services implemented by the anonymous wireless host. The invitation may also include a public key generated by the wireless client as part of the asymmetric private key/public key pair used to encrypt data within the secure communication session.
[0114] At 706, the authenticity of the invitation is verified. In some embodiments, the invitation is signed by the wireless client using a certificate, and the wireless host is configured to only respond to authorized wireless clients that signed the invitation with the certificate. In some embodiments, the wireless client includes a username and password in the invitation, and the anonymous wireless client is configured to only respond to authorized wireless clients that provide registration credentials that ensure the authenticity of the wireless client.
[0115] At 708, the acceptance is transmitted to the wireless client indicating that the anonymous wireless host will establish a secure communication session via the communication channel. In some embodiments, the anonymous wireless host transmits the acceptance to the wireless client via a broadcast address or a multicast address. The invitation may also include a public key generated by the wireless host as part of the asymmetric private key/public key pair used to encrypt data within the secure communication session.
[0116] At 710, a secure communication session is established through the communication channel. In some embodiments, the wireless host creates a socket associated with the address and port number of the wireless interface that is allocated for a secure communication session with the wireless client. A connection is established through the communication channel between the socket allocated for the anonymous wireless host and the socket created by the wireless client at the IP address and port number provided by the wireless client in the invitation. The public key exchanged in the invitation and acceptance can be used to encrypt data transmitted in a secure communication session via the communication channel.
[0117] Representative embodiment
[0118] In some embodiments, a method for establishing a secure communication session with an anonymous wireless host includes a wireless client: (i) discovering at least one advertised service available through the wireless network; (ii) from the at least one service Choose Yuni
A service implemented by a wireless host; (iii) An invitation to establish a secure communication session with the service is transmitted to an anonymous wireless host via a broadcast address or multicast address of the wireless network; (iv) An invitation is received from an anonymous wireless host via a broadcast address or multicast address Accept; and (v) Establish a secure communication session through the communication channel, wherein the secure communication session is used to exchange encrypted data between the selected service and the wireless client.
[0119] In some embodiments, the wireless client transmits a discovery request at least by using a broadcast address or a multicast address to discover the at least one advertised service available through the wireless network. In some embodiments, the wireless client uses the multicast address to transmit the discovery request to the Multicast Domain Name System (mDNS) responder. In some embodiments, the invitation includes a message that includes the public key created by the wireless client, the IP address of the wireless client, and the port number assigned by the wireless client for the secure communication session. In some embodiments, the public key created by the wireless client is created for the secure communication session. In some embodiments, the public key created by the wireless client is an ephemeral public key that is used for a secure communication session and then deactivated (e.g., discarded). In some embodiments, the invitation also includes credentials associated with the wireless client. In some embodiments, the acceptance includes a message that includes a public key created by the anonymous wireless host. In some embodiments, the public key created by the anonymous wireless host is created for the secure communication session. In some implementations, the public key created by the anonymous wireless host is a short-lived public key that is used in a secure communication session and then deactivated (eg, discarded). In some embodiments, the public key created by the wireless client is associated with the corresponding private key created by the wireless client. In some embodiments, the public key created by the anonymous wireless host is associated with the corresponding private key created by the anonymous wireless host. In some real In the implementation scheme, the public key and the private key are created for a secure communication session. In some embodiments, the public and private keys are ephemeral keys that are created for a secure communication session and then deactivated (e.g., discarded). In some embodiments, the public key and corresponding private key created by both the wireless client and the anonymous wireless host include a short-lived 256-byte key, which is discarded when the secure communication session is terminated. In some embodiments, the wireless client establishes a secure communication session at least by: (i) creating a socket associated with the network interface corresponding to the address of the wireless client; (ii) configuring the socket to listen A packet associated with the port number of the network interface; and (iii) establishing a tunnel between the socket and the corresponding socket of the anonymous wireless host. In some embodiments, the secure communication session is established through a relay server.
[0120] In some embodiments, the client includes a wireless interface for connecting to a wireless network, a processor, and a memory storing instructions, where the instructions when executed by the processor enable the client to establish secure communication with the host in the following manner Session: (i) Use the broadcast address or multicast address of the wireless network to transmit the discovery request; (ii) Receive a response to the discovery request, the response indicating at least one service available through the wireless network; (iii) From the at least one service Select the service implemented by the host; (iv) transmit an invitation to the host to establish a secure communication session with the service via a broadcast address or a multicast address; (v) receive an acceptance from the host via a broadcast address or a multicast address; and (vi) pass The communication channel establishes a secure communication session, where the secure communication session is used to exchange encrypted data between the service and the client.
[0121] In some embodiments, the wireless network includes one or more gateways coupled to one or more access points; the client connects to the first one of the one or more access points via the client wireless interface. And the host is connected to the first access point or the second access point of the one or more access points via the wireless interface of the host. In some embodiments, when (i) the host is connected to the second access point, (ii) the first access point is coupled to the first gateway of the one or more gateways via the network interface of the first access point, And (iii) when the second access point is coupled to the second gateway of the one or more gateways via the network interface of the second access point, the first gateway is further configured to establish a network tunnel with the second gateway, through which The network tunnel relays data packets transmitted from the client to the host. In some embodiments, the wireless network includes at least one multicast domain name system (mDNS) responder configured to register services available through the wireless network and return responses to discovery requests via a multicast address To the client. In some embodiments, the at least one
The first mDNS responder in the mDNS responder is configured to receive a registration service request associated with the service from the host, and in response to the registration service request, generate multiple DNS records including service records, pointer records, and text records, many of which are Each DNS record is stored in a memory accessible by the first mDNS responder. In some embodiments, the relay server is configured to allocate a relay connection to establish a secure communication session between the client and the host through the relay connection.
<sup>[0122]</sup>In some embodiments, the non-transitory computer-readable medium stores instructions, where the instructions, when executed by the processor, cause the wireless client to establish a secure communication session with the anonymous wireless host in the following manner: (1) Discover the notifications available through the wireless network At least one service; (ii) selecting a service implemented by an anonymous wireless host from the at least one service; (iii) transmitting an invitation to the anonymous wireless host to establish a secure communication session with the service via a broadcast address or a multicast address of the wireless network; (iv) Receiving acceptances from anonymous wireless hosts via broadcast addresses or multicast addresses; and (v) Establishing a secure communication session through a communication channel, where the secure communication session is used to exchange encrypted data between the service and the wireless client.
[0123] In some embodiments, the wireless client transmits a discovery request at least by using a broadcast address or a multicast address to discover the at least one advertised service available through the wireless network. In some embodiments, a multicast address is used to transmit the discovery request to a multicast domain name system (mDNS) responder. In some embodiments, the invitation includes a message that includes: (i) the public key created by the wireless client, (ii) the IP address of the wireless client, and (iii) the port assigned by the wireless client for the secure communication session number. In some embodiments, the public key created by the wireless client is created for the secure communication session. In some embodiments, the public key created by the wireless client is an ephemeral public key that is used for a secure communication session and then deactivated (e.g., discarded). In some embodiments, the acceptance includes a message that includes a public key created by the anonymous wireless host. In some embodiments, the public key created by the anonymous wireless host is created for the secure communication session. In some implementations, the public key created by the anonymous wireless host is a short-lived public key that is used in a secure communication session and then deactivated (eg, discarded). In some embodiments, the public key created by the wireless client is associated with the corresponding private key created by the wireless client. In some embodiments, the public key created by the anonymous wireless host is associated with the corresponding private key created by the anonymous wireless host. In some embodiments, the public key and the private key are created for a secure communication session. In some In an embodiment, the public and private keys are ephemeral keys that are created for a secure communication session and then deactivated (e.g., discarded). In some embodiments, the public key and corresponding private key created by both the wireless client and the anonymous wireless host include a short-lived 256-byte key, which is discarded when the secure communication session is terminated. In some embodiments, the wireless network includes one or more gateways coupled to one or more access points, wherein the wireless client is connected to the first one of the one or more access points via the wireless interface of the wireless client. An access point, and wherein the anonymous wireless host is connected to the first access point or the second access point of the one or more access points via the wireless interface of the anonymous wireless host.
[0124] In some embodiments, a method for anonymously establishing a secure communication session between an anonymous wireless host and a wireless client includes the anonymous wireless host: (i) announcing the services implemented by the anonymous wireless host that are available through the wireless network; ii) Receive an invitation to establish a secure communication session with the wireless client via the broadcast address or multicast address of the wireless network; (iii) Transmit acceptance to the wireless client via the broadcast address or multicast address; and (iv) Establish via the communication channel Secure communication session, where the secure communication session is used to exchange encrypted data between the service and the wireless client.
[0125] In some embodiments, the anonymous wireless host transmits an announcement message at least by using a broadcast address or a multicast address of the wireless network to announce services available through the wireless network. In some embodiments, a multicast address is used to transmit the announcement message to a multicast domain name system (mDNS) responder. In some embodiments, the invitation includes a message that includes the public key created by the wireless client, the IP address of the wireless client, and the port number assigned by the wireless client for the secure communication session. In some embodiments, the invitation also includes credentials associated with the wireless client. In some embodiments, the public key created by the wireless client is created for the secure communication session. In some embodiments, the wireless client
The created public key is a short-lived public key that is used for a secure communication session and then deactivated (eg, discarded). In some embodiments, the acceptance includes a message that includes a public key created by the anonymous wireless host. In some embodiments, the public key created by the anonymous wireless host is created for the secure communication session. In some implementations, the public key created by the anonymous wireless host is a short-lived public key that is used in a secure communication session and then deactivated (eg, discarded). In some embodiments, the public key created by the wireless client is associated with the corresponding private key created by the wireless client. In some embodiments, the public key created by the anonymous wireless host is associated with the corresponding private key created by the anonymous wireless host. In some embodiments, public and private keys are created for secure communication sessions. In some embodiments, the public and private keys are ephemeral keys that are created for a secure communication session and then deactivated (e.g., discarded). In some embodiments, the public key and corresponding private key created by both the wireless client and the anonymous wireless host include a short-lived 256-byte key, which is discarded when the secure communication session is terminated. In some embodiments, the anonymous wireless host establishes a secure communication session at least by: (i) creating a socket associated with the network interface corresponding to the network address of the anonymous wireless host; (ii) connecting the socket To the corresponding socket of the wireless client; and (iii) establishing a tunnel between the socket and the corresponding socket. In some real In the implementation scheme, a secure communication session is established through a relay server.
[0126] In some embodiments, the host includes a wireless interface for connecting to a wireless network, a processor, and a memory storing instructions, where the instructions, when executed by the processor, enable the host to establish a secure communication session with the client in the following manner : (I) Announce the services available through the wireless network; (ii) Receive the invitation to establish a secure communication session with the client via the broadcast address or multicast address of the wireless network; (iii) Send the client via the broadcast address or multicast address Transmission acceptance; and (iv) establishing a secure communication session through a communication channel, where the secure communication session is used to exchange encrypted data between the service and the client.
[0127] In some embodiments, the wireless network includes one or more gateways coupled to one or more access points, wherein the wireless client is connected to the first one of the one or more access points via the wireless interface of the client. An access point, and wherein the host is connected to the first access point or the second access point in one or more access points via a wireless interface of the host. In some embodiments, (i) the host is connected to the second access point, (ii) the first access point is coupled to the first of the one or more gateways via the network interface of the first access point, and (iii) the second access point is coupled to the second gateway of the one or more gateways via the network interface of the second access point, and (iv) the first gateway is further configured to establish a network tunnel with the second gateway, The data packets transmitted from the client to the host are relayed through the network tunnel. In some embodiments, the wireless network includes at least one Multicast Domain Name System (mDNS) responder configured to register for services available through the wireless network. In some embodiments, the first mDNS responder of the at least one mDNS responder is configured to (i) receive a registration service request associated with the service from the host, and (ii) in response to the registration service request, generate a service including service A plurality of DNS records of records, pointer records and text records, wherein the plurality of DNS records are stored in a memory accessible by the first mDNS responder. In some embodiments, the relay server is configured to allocate a relay connection to establish a secure communication session between the host and the client through the relay connection.
<sup>[0128]</sup>In some embodiments, the non-transitory computer-readable medium stores instructions, where the instructions, when executed by the processor, cause the anonymous wireless host to establish a secure communication session with the wireless client in the following ways: (1) Announce the services available through the wireless network; (ii) Receive an invitation to establish a secure communication session with the wireless client via the broadcast address or multicast address of the wireless network; (iii) Transmit acceptance to the wireless client via the broadcast address or multicast address; and (iv) Via the communication channel Establish a secure communication session, where the secure communication session is used to exchange encrypted data between the service and the wireless client.
[0129] In some embodiments, the anonymous wireless host transmits messages at least by using a broadcast address or a multicast address to advertise services available through the wireless network. In some embodiments, the message is transmitted to the multicast using a multicast address
The registration service request of the domain name system (mDNS) responder. In some embodiments, the invitation received by the host includes a message including the public key created by the wireless client, the IP address of the wireless client, and the port number assigned by the wireless client for the secure communication session. In some embodiments, the acceptance includes a message that includes a public key created by the anonymous wireless host. In some embodiments, the public key created by the anonymous wireless host is created for the secure communication session. In some implementations, the public key created by the anonymous wireless host is a short-lived public key that is used for a secure communication session and is subsequently deactivated (eg, discarded). In some embodiments, the public key created by the wireless client is associated with the corresponding private key created by the wireless client. In some embodiments, the public key created by the anonymous wireless host is associated with the corresponding private key created by the anonymous wireless host. In some embodiments, the public key and the private key are created for a secure communication session. In some embodiments, the public and private keys are ephemeral keys that are created for a secure communication session and then deactivated (eg, discarded). In some embodiments, the public key and corresponding private key created by both the wireless client and the anonymous wireless host include a short-lived 256-byte key, which is discarded when the secure communication session is terminated. In some embodiments, the wireless network includes one or more gateways coupled to one or more access points, wherein the wireless client is connected to the wireless client via the wireless interface of the wireless client The first access point in one or more access points, and wherein the anonymous wireless host is connected to the first access point or the second access point in the one or more access points via a wireless interface of the anonymous wireless host.
[0130] FIG. 8 illustrates a detailed view of an exemplary computing device 800 that can be used to implement the various apparatuses and/or methods described herein, according to some embodiments. Specifically, this detailed view shows various components that may be included in the computing device shown in FIGS. 1-7 and/or described herein. For example, one or more wireless devices 110/410, one or more access points 150/450, one or more gateways 170/470, one or more servers 490, one or more wireless clients 310/510, One or more of the one or more wireless hosts 320/520 or any other device may be implemented at least partially as a component that includes the computing device 800. As shown in FIG. 8, the computing device 800 may include a processor 802 representing a microprocessor or a controller for controlling the overall operation of the computing device 800. The computing device 800 may also include a user input device 808 that allows a user of the computing device 800 to interact with the computing device 800. For example, the user input device 808 may take various forms, such as buttons, keypads, dials, touch screens, audio input interfaces, visual/image capture input interfaces, input in the form of sensor data, and the like. Furthermore, the computing device 800 may include a display 810 (screen display) that can be controlled by the processor 802 to present visual information to the user. The data bus 816 can facilitate at least the storage device 840, processing Data transmission between the controller 802 and the controller 813. The controller 813 may be used to interact with and control different devices through the device control bus 814. The computing device 800 may also include a network/bus interface 811 coupled to the data line 812. In the case of a wireless connection, the network/bus interface 811 may include a wireless transceiver.
[0131] The computing device 800 further includes a storage device 840, which may include a single disk or multiple disks (for example, hard drives), and includes a storage management module that manages one or more partitions in the storage device 840. In some embodiments, the storage device 840 may include flash memory, semiconductor (solid-state) memory, and the like. The computing device 800 may also include random access memory (RAM) 820 and read only memory (ROM) 822. The ROM 822 may store programs, utility programs, or procedures to be executed in a non-volatile manner. The RAM 820 may provide volatile data storage and store instructions related to the operation of the computing device 800.
[0132] The various aspects, embodiments, implementations, or features of the described embodiments can be used individually or in any combination. The various aspects of the described embodiments can be implemented by software, hardware, or a combination of hardware and software. The described embodiments may also be embodied as computer readable code on a computer readable medium. The computer readable medium is any data storage device that can store data, and the data can thereafter be read by a computer system. Examples of computer readable media include read-only memory, random access memory, CD-ROM, HDD, DVD, magnetic tape, and optical data storage devices. Computer readable media can also be distributed over the network
In the coupled computer system, the computer readable code is stored and executed in a distributed manner.
[0133] For illustrative purposes, the foregoing description uses specific nomenclature to provide a thorough understanding of the described embodiments. However, the present art for the technical purposes of the art will be apparent that the specific details are not required in order to practice the embodiments. Therefore, the foregoing description of specific embodiments is presented for the purpose of illustration and description. The foregoing description is not intended to be exhaustive or to limit the described embodiments to the precise form disclosed. It will be obvious to a person of ordinary skill in the art that, in view of the above teaching content, many modifications and variations are possible.
1 sheet
Sheet 1
Every citation, both ways
| Document | Relation | Office | Category | Cited during | Relevant claims |
|---|---|---|---|---|---|
| CN116684216A | Cited by | China | – | Search report | – |
| CN112770408A | Cited by | China | – | Search report | – |
| CN111294354A | Cited by | China | – | Search report | – |
| CN103973830A | Cites | China | A | Search report | 1-20 |
| CN107005797A | Cites | China | A | Search report | 1-20 |
| CN107431881A | Cites | China | YX | Search report | 3,11-15,18,20 |
| US2015365377A1 | Cites | United States of America | Y | Search report | 3,11-15,18,20 |
| US7434046B1 | Cites | United States of America | A | Search report | 1-20 |
6 members in 3 offices
Priority claims5
| Document | Office | Kind | Date |
|---|---|---|---|
| 201862621936 | United States of America | P | |
| 201862621936 | United States of America | P | |
| 62621936 | United States of America | – | |
| 62621936 | – | – | – |
| US201862621936P | – | – | – |
Members6
| Document | Office | Kind | |
|---|---|---|---|
| EP3477919A1 | European Patent Office (EPO) | A1 | |
| US2019230503A1 | United States of America | A1 | |
| CN110087236AThis record | China | A | |
| EP3477919B1 | European Patent Office (EPO) | B1 | |
| US10904749B2 | United States of America | B2 | |
| CN110087236B | China | B |
5 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| Patent grantGrantedGR01 | GR01 | |
| Entry into force of request for substantive examinationSE01 | SE01 | |
| Entry into force of request for substantive examinationSE01 | SE01 | |
| PublicationPB01 | PB01 | |
| PublicationPB01 | PB01 |
Numbers
- Publication
- 110087236
- Publication, DOCDB
- 110087236
- Publication, EPODOC
- CN110087236
- Application
- 100670519
- Application, DOCDB
- 201910067051
- Application, EPODOC
- CN201910067051
Titles2
- Chinese
- 用于通过无线网络与匿名主机建立安全通信会话的协议
- English
- A protocol used to establish a secure communication session with an anonymous host via a wireless network
Classification
- CPC, 19
- H04W12/02
- H04W76/12
- H04L69/162
- H04W4/06
- H04L45/16
- H04L61/4511
- H04L63/0407
- H04L63/0442
- H04L63/061
- H04W4/70
- H04W12/50
- H04L61/4541
- H04L61/5014
- H04L67/51
- H04W12/041
- H04W12/0471
- H04W8/005
- H04W24/08
- H04W48/16
- IPC, 7
- H04W12 02
- H04W76 12
- H04L29 12
- H04L29 06
- H04L12 761
- H04W4 06
- H04L45 16