Remote access with man-in-the-middle attack prevention
Patent Information
- Application Number
- JP2022195321
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2021-12-14
- Filing Date
- 2022-12-07
- Publication Date
- 2025-02-05
- Estimated Expiration
- 2042-12-07
AI Technical Summary
Intermediate signaling services used for establishing peer-to-peer connections between network devices are vulnerable to man-in-the-middle (MITM) attacks, allowing unauthorized access and modification of data, especially in scenarios like remote access to network cameras using WebRTC.
Implementing a method where network devices generate and cryptographically sign data items using a trusted network service's public key, verifying the signature to ensure the integrity of network addresses and prevent tampering by intermediate signaling services.
Prevents MITM attacks by ensuring that network devices can verify the authenticity of peer-to-peer connections, thereby securing remote network access without requiring substantial modifications to the devices.
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
[Technical Field]
[0001] The present disclosure relates to the field of remote network access, and more particularly, to securing remote network access when negotiating a peer-to-peer connection between two network devices using an intermediate signaling service, such as is used in Web Real-Time Connect (WebRTC). [Background technology]
[0002] Due to the complexity of the Internet, two network devices located on different networks may not always know how to connect to each other without using an intermediate signaling service. For example, if both network devices are already connected to the same signaling service but are not connected to each other, a signaling service may be used to relay network connectivity information between the two network devices so that the two devices can negotiate and ultimately establish the terms of their peer-to-peer connection.
[0003] However, intermediate signaling services can form part of the attack surface for so-called man-in-the-middle (MITM) attacks. If the signaling service is compromised by a third party, the network connection information relayed between network devices can be tampered with, for example, so that one device does not connect directly to the other network device, but is tricked into connecting to a network point controlled by the third party, while still believing that it is actually connecting directly to the other network device. By doing so, the supposed peer-to-peer connection between two network devices may be secretly relayed through the signaling service, and the third party can then access or even modify potentially sensitive data transmitted between the network devices.
[0004] One example of the above may be, for example, a user attempting to remotely access a network camera using WebRTC; a signaling service is often required to exchange data between the user and the network camera before a direct peer-to-peer connection can be established. By unauthorized access to the signaling service, a third party may be able to access, for example, a video feed from the camera without either the network camera or the user being aware of the intrusion in progress. Summary of the Invention
[0005] To at least partially address the above-identified problem of potential MITM attacks when relying on an intermediate signaling service to establish a peer-to-peer connection, the present disclosure provides an improved method for enabling remote network access from a second network device to a first network device, various improved network devices, and an improved network system, as defined in the accompanying independent claims. Other aspects also provide various improved computer programs and computer program products. Various alternative embodiments are defined in the dependent claims.
[0006] According to a first aspect of the present disclosure, there is provided a method for enabling remote network access from a second network device to a first network device. The method includes: a) generating a data item including at least one of a public key and a fingerprint of the public key of the second network device by the second network device; b) cryptographically signing the data item by the second network device using a network service to generate a corresponding first signed data item, wherein the first signed data item is verifiable by the first network device as being signed by the network service; c) negotiating terms for establishing a peer-to-peer connection (between the first network device and the second network device) via an intermediate signaling service (SIGS), wherein the second network device transmits the first signed data item and a first network address for contacting the second network device in one or more messages over the SIGS. The negotiation further includes the first network device receiving, in one or more messages from the SIGS, a second signed data item and a second network address. The method further includes a step d) of the first network device enabling remote network access from the second network address via the peer-to-peer connection using the negotiated terms, but only after first di) verifying that the second signed data item (received from the SIGS) is signed by the network service, and d-ii) using the second signed data item to verify that the second network address (received from the SIGS) originates from the second network device (i.e., is a first network address for contacting the second network device) and has not been tampered with by the SIGS.
[0007] As used herein, a "fingerprint" of something (e.g., a message) may be, for example, the result of a particular hash function applied to the message. Generally, a "fingerprint" is considered to be something that can be easily verified / verified as originating from the message once the fingerprint and the message are known, although as a result, the message may not be retrieved from the fingerprint alone.
[0008] As used herein, a peer-to-peer connection between two network devices can be either direct or indirect, including the possibility of establishing a peer-to-peer connection using one or more intermediate proxy servers when a direct path between the network devices cannot be established, for example, due to the presence of intermediate network address translation (NAT) and / or firewall servers. Such intermediate proxy servers may be, for example, so-called Traversal Using Relays Around NAT (TURN) servers. In other words, "direct" should be interpreted as "as direct as possible." However, while a true peer-to-peer connection as used herein is considered not to require transmitting any of its data via SIGS once the peer-to-peer connection is established, a successful MITM attack performed via SIGS could lead two network devices to mistakenly believe that such a true peer-to-peer connection is still properly established. The network service may be, for example, a service provided by a third party trusted by the first network device. Here, "trusted" may include, for example, the first network device having access to at least the network service's public key and the network service signing data items (such as messages or message fingerprints) using the corresponding private key. In doing so, the first network device can verify that a received signed data item was in fact signed by the network service by verifying that the data item, its signature, and public key match. Examples of such public key cryptography / signature systems include, for example, Rivest-Shamir-Adleman (RSA) and Elliptic Curve Cryptography (ECC), although other equivalent or similar systems may of course also be used.
[0009] As used herein, a network address "originating from a second network device" should be understood to mean that the network address is the same network address (e.g., a network address for contacting the second network device) originally proposed by the second network device during negotiation of the terms for the peer-to-peer connection. Using the claim language, this means that the second network address (received by the first network device from the SIGS) is the first network address (sent by the second network device to the SIGS). The network address need not directly point to the second network device, but may be, for example, the address of a network node on the path toward the second network device. However, it is assumed that the network address "originating from a second network device" should not be, for example, the address of any network node controlled by the SIGS or the SIGS used to perform a MITM attack.
[0010] The present disclosure of a method improves upon existing technology in that a "private key" (i.e., public key) of a second network device is signed and provided to a first network device as part of the terms negotiation for a peer-to-peer connection. Because the signature can be verified by the first network device, the SIGS cannot tamper with data items including the second network device's public key (or public key fingerprint). Thus, the public key can also be used to verify that the SIGS has not attempted to tamper with the negotiated terms of the peer-to-peer connection, including, for example, the network address proposed to the first network device for connecting to the second network device. This provides an easy way to prevent the SIGS from performing MITM attacks without requiring any substantial modifications to either the first network device or the second network device. By using a pre-installed certificate, the first network device can perform signature verification of, for example, a network service without requiring any connection established with another server at the time the verification is performed.
[0011] In some embodiments of the method, step d) above may include the first network device participating in an attempt to encrypt the peer-to-peer connection using the public key received from the second network address, and step di) above may include the first network device verifying that the public key received from the second network address and / or a fingerprint of the public key received from the second network address is included in the second signed data item received from the SIGS (e.g., is the public key of the second network device). This may be beneficial in that there is already a public key available to the second network device for encryption purposes, and in that this public key can also be used to prevent MITM attacks (without having to generate an additional public / private key pair).
[0012] In some embodiments of the method, encrypting the session may be performed using Datagram Transport Layer Security (DTLS), and the public key received from the second network address may be, for example, a DTLS public key.
[0013] In some embodiments of the method, the method may include the second network device signing, using a private key associated with the second network device's second public key, a fingerprint of at least a portion of one or more messages (e.g., including the first network address) and / or at least a portion of one or more messages sent to the SIGS (e.g., including the first network address). Step d-ii) above may include the first network device verifying that at least a portion of one or more messages received from the SIGS (e.g., including the second network address) and / or a fingerprint of at least a portion of one or more messages received from the SIGS (e.g., including the second network address) are signed using a private key associated with the public key included in the second signed data item. The second public key of the second network device may, for example, be the public key of the second network device included in the signed data item. It may also be envisioned that the signed data item includes multiple public keys of the second network device, for example, one such key used to encrypt the peer-to-peer connection and another such key used to sign at least a portion of one or more messages sent to the SIGS (e.g., including the first network address).
[0014] In some embodiments of the method, the method may include providing remote network access using Web Real Time Connect (WebRTC, recommended and published by the W3C). The one or more messages may include at least a Session Description Protocol (SDP) answer and / or offer. The network addresses (for contacting the second network device) may be Interconnect Establishment (ICE) candidates, for example, used in negotiating how to traverse one or more NATs.
[0015] In some embodiments of the method, the data item may also be, include, or be complemented by an access token provided and signed by the network service to authorize and / or authenticate the second network device. Step d) above may include the first network device verifying that the access token is, is included in, or complements the second signed data item received from the SIGS. This can, for example, help the first network device (which trusts the network service) to know whether the second network device should be able to remotely access the first network device at all, or at least to what extent. Here, "complemented by" should be understood as an option where the access token and the data item are provided as two separately signed items.
[0016] According to a second aspect of the present disclosure, there is provided a network device. The network device may be, for example, a network camera. The network device includes a processor and a memory. The memory stores instructions. When executed by the processor, the instructions include causing the network device to negotiate terms for a peer-to-peer connection between the network device and a second network device (which may be, for example, a user device attempting to access the network device) via an intermediate signaling service (SIGS), and causing the network device to receive, in one or more messages from the SIGS, a signed data item and a network address (purportedly for contacting the second network device). The instructions further enable / enable the network device to enable remote network access from the network address via the peer-to-peer connection using the negotiated conditions, including first causing the network device to i) verify that the signed data item received from SIGS is signed by a particular network service trusted by the network service, and also ii) use the signed data item received from SIGS to verify that the network address received from SIGS has not been tampered with by SIGS (e.g., is a network address for contacting a second network device).
[0017] In some embodiments of the network device, the instructions further cause the network device to participate in an attempt to encrypt the peer-to-peer connection using the public key received from the network address, and to enable remote network access from the network address after first also verifying that the public key received from the network address and / or a fingerprint of the public key received from the network address is included in the signed data item received from the SIGS.
[0018] In some embodiments of the network device, the instructions further cause the network device to verify that at least a portion of the one or more messages received from the SIGS that include the network address and / or a fingerprint of at least a portion of the one or more messages received from the SIGS that include the network address are signed using a private key associated with a public key included in the signed data item received from the SIGS.
[0019] According to a third aspect of the present disclosure, another network device is provided. The other network device may be, for example, a user device used to remotely access a network camera, such as a smartphone, laptop, desktop computer, tablet, or wearable device. The network device includes a processor and a memory. The memory stores instructions. When executed on the processor, the instructions cause the network device to generate a data item including at least one of a public key and a fingerprint of the public key of the network device. The instructions further cause the network device to cryptographically sign the data item using a network service to generate a corresponding signed data item, the signed data item being verifiable by a second network device (e.g., the network camera). The network service is trusted by the second network device. The instructions further include causing the network device to negotiate terms for a peer-to-peer connection between the network device and the second network device via an intermediate signaling service (SIGS), and transmitting the signed data item and a network address for contacting the network device (e.g., obtained using a STUN server, etc.) to the network device in one or more messages over the SIGS.
[0020] In some embodiments of the network device, the instructions may further cause the network device to participate in an attempt to encrypt the peer-to-peer connection using the public key.
[0021] In some embodiments of the network device, the instructions may further cause the network device to use a private key associated with the public key to sign at least a portion of one or more messages that include the network address and / or sign a fingerprint of at least a portion of one or more messages that include the network address.
[0022] In some embodiments of the network device, the instructions further cause the network device to use, using the network service, a signed data item that is, includes, or is complemented by an access token signed by the network service to authorize and / or authenticate the network device to a second network device.
[0023] According to a fourth aspect of the present disclosure, there is provided a network system including a first network device (e.g., a network device according to the second aspect) and a second network device (e.g., a network device according to the third aspect), the network system being configured to enable remote access to the first network device from the second network device according to the method according to the first aspect.
[0024] In some embodiments of the network system, the first network device may be a network camera, and the remote network access may include streaming a video feed from the network camera to the second network device.
[0025] According to a fifth aspect, there is provided one or more computer programs, each configured, when executed by a processor of a network device, for example according to the second and / or third aspect, to cause the network device to perform relevant parts of the method of the first aspect.
[0026] According to a sixth aspect, there is provided one or more computer program products, each comprising a computer-readable storage medium having stored thereon one or more computer programs according to the fifth aspect.
[0027] Other objects and advantages of the present disclosure will be apparent from the following detailed description, drawings, and claims. Within the scope of the present disclosure, it is contemplated that, for example, all features and advantages described with reference to the method of the first aspect also relate to, apply to, and may be used in combination with, any features and advantages described with reference to the network device of the second aspect, the network device of the third aspect, the network system of the fourth aspect, the computer program of the fifth aspect, and / or the computer program product of the sixth aspect, and vice versa.
[0028] Exemplary embodiments will now be described with reference to the accompanying drawings. [Brief explanation of the drawings]
[0029] [Figure 1A] 1 is a diagram illustrating a schematic diagram of a conventional network system setup using intermediate signaling services (SIGS); [Figure 1B] 1 is a diagram illustrating a schematic diagram of a conventional network system setup using intermediate signaling services (SIGS); [Figure 1C] 1 is a diagram illustrating a schematic diagram of a conventional network system setup using intermediate signaling services (SIGS); [Figure 2A]FIG. 1 illustrates a schematic diagram of an embodiment of a network system setup using intermediate SIGS according to the present disclosure. [Figure 2B] FIG. 1 illustrates a schematic diagram of an embodiment of a network device according to the present disclosure. [Figure 3A] FIG. 2 is a diagram illustrating a schematic flow of messages in an embodiment of a method according to the present disclosure. [Figure 3B] 1 is a diagram illustrating a flow diagram of an embodiment of a method according to the present disclosure. [Figure 3C] 1 is a diagram illustrating a flow diagram of an embodiment of a method according to the present disclosure. [Figure 3D] 1 is a diagram illustrating a flow diagram of an embodiment of a method according to the present disclosure. [Figure 3E] 1 is a diagram illustrating a flow diagram of an embodiment of a method according to the present disclosure. [Figure 3F] 1 is a diagram illustrating a flow diagram of an embodiment of a method according to the present disclosure. DETAILED DESCRIPTION OF THE INVENTION
[0030] In the drawings, like reference numerals are used for like elements unless otherwise specified. Unless explicitly stated to the contrary, the drawings show only the elements necessary to illustrate the exemplary embodiments, while other elements may be omitted or only suggested for clarity. As shown in the figures, the sizes (absolute or relative) of elements and regions may be exaggerated or underestimated relative to their true values for illustrative purposes, and are therefore provided to illustrate the general structure of the embodiments.
[0031] 1A schematically illustrates a situation in which two network devices may have difficulty establishing a peer-to-peer connection on their own. A first network device 110 and a second network device 120 desire to establish a peer-to-peer connection 140 so that the second network device 120 can remotely access the first network device 110, for example, to perform configuration of the first network device 110 and / or to receive a data stream from the first network device 110. As used herein, the "first network device" (e.g., the first network device 110) is assumed to be a network camera used for surveillance and / or reconnaissance, and the "second network device" (e.g., the second network device 120) is assumed to be a user device in the form of a laptop. Naturally, other examples of the second network device (such as a desktop computer, smartphone, tablet, or wearable device instead of a laptop) are possible and contemplated, but will not be further illustrated herein. Of course, the first network device may also be something other than a network camera, such as any network-connectable device that the second network device may wish to remotely access.
[0032] The network camera 110 resides on a first local area network (LAN) 130, and the laptop 120 resides on a second LAN 131. The two LANs 130 and 131 are connected via a common network 136 (e.g., the Internet). For security and / or network address management reasons, for example, the connection between the first LAN 130 and the common network 136 is not direct, but instead is provided via, for example, a first firewall 132 and / or a first network address translation (NAT) device 134. The first firewall 132 can, for example, serve to block unwanted incoming connection attempts (e.g., on a particular network port) to the first LAN 130, and the first NAT device 134 can, for example, serve to translate / map network addresses of incoming and outgoing data packets between the address space used on the first LAN 130 and the address space used on the common network 136. This is because, for example, the network address assigned to the network camera 110 on the first LAN 130 may be different from, for example, the network address of the first NAT 134 towards the common network 136. Similarly, and for similar reasons, the second LAN 131 is connected via the common network 136 via, for example, a second firewall 133 and / or a second NAT device 135.
[0033] As a result of the above network configuration, the network camera 110 may not know by itself how to contact the laptop 120, and vice versa, and therefore establishing a peer-to-peer connection 140 may not be possible without further assistance.
[0034] 1B schematically illustrates one commonly available solution to this problem. Assume that both the network camera 110 and the laptop 120 have already established connections with a so-called signaling service (SIGS) 150. The network camera 110 can exchange messages with the SIGS 150 via connection 152, and the laptop 120 can exchange messages with the SIGS 150 via connection 154. Thus, the SIGS 150 can function as a relay between the network camera 110 and the laptop 120. For example, the laptop 120 can send a message to the SIGS 150 using the established connection 154. The SIGS 150 can receive the same message and further transmit it to the network camera 110 using connection 152. In this way, the network camera 110 and the laptop 120 can communicate indirectly via the SIGS 150, even when they do not themselves know how to communicate directly with each other.
[0035] Because the network camera 110 and the laptop 120 can communicate (indirectly) via SIGS 150, the network camera 110 and the laptop 120 can then attempt to establish a direct peer-to-peer connection 140 by using SIGS 150 to negotiate the terms for such a peer-to-peer connection. This negotiation can follow and use one or more standardized techniques and procedures, such as, for example, Session Traversal Utilities for NATs (STUN, published by the Internet Engineering Task Force, IETF, as RFC 5389), Traversal Using Relays Around NATs (TURN, published by the IETF as RFC 8656), Interconnect Establishment (ICE, published by the IETF as RFC 8445), TCP Contender with ICE (published by the IETF as RFC 6544), etc. For example, the network camera 110 can contact a STUN server (not shown, but located somewhere outside the firewalls 132, 133 and NATs 134, 135, e.g., on the common network 136) to find out which public IP address and port number the first NAT 134 assigned to the network camera 110's User Datagram Protocol (UDP) flows to a remote host. This information may then be relayed to the laptop 120 via SIGS 150 as an ICE candidate. Similarly, the laptop 120 can contact the (potentially the same) STUN server to obtain corresponding information regarding the configuration of the second NAT 135 and provide this information to the network camera 110 via SIGS 150. The network camera 110 and the laptop 120 can check whether the information received from each other is useful (i.e., does the other party respond when contact is attempted using the received address information?). If not, the network camera 110 and / or laptop 120 may find other alternatives, for example using a STUN server, and information between the network camera 110 and the laptop 120 may be exchanged until each receives information useful for connecting to the other.Of course, it can be envisaged that several reasonable ICE candidates may be acquired by one party at the same time and forwarded to the other party as a single message alternative, potentially speeding up the negotiation process.
[0036] If a multimedia session is desired, once peer-to-peer connection 140 has been established, e.g., to transfer video and / or audio between network camera 110 and laptop 120, the terms of such a session may be negotiated using, e.g., the Session Description Protocol (SDP, published by the IETF as RFC 8866), with an exchange of offers and corresponding answers being carried out until terms acceptable to both network camera 110 and laptop 120 are agreed upon. Such negotiation may form part of, e.g., an ICE negotiation, or may be carried out separately, either before or after ICE negotiation is completed. SDP-formatted messages may also be used, e.g., in ICE negotiation.
[0037] Finally, after the negotiation of terms results in both the network camera 110 and the laptop 120 knowing how to contact the other, the information received via SIGS 150 can be used to establish a direct peer-to-peer connection 140 between the network camera 110 and the laptop 120, and a desired session may be established, for example, to transfer video data from the network camera 110 to the laptop 120 and / or for remote access of the laptop 120 to the network camera 110.
[0038] It should be noted that the above-outlined procedure for using SIGS 150 to establish peer-to-peer connection 140 is only one possible example, and it is assumed that those skilled in the art are familiar with the process of negotiating the conditions for such a connection and understand that other options are possible. However, it is assumed that SIGS 150 is required as an intermediary between network camera 110 and laptop 120 before they are ready to establish direct peer-to-peer connection 140. Also, a “direct” peer-to-peer connection should be interpreted as “as direct as possible.” The outcome of the negotiation may be, for example, that one or more intermediate proxy servers (such as one or more TURN servers or other types of servers) are required as intermediaries between network camera 110 and laptop 120. However, it is important to note that a “true” peer-to-peer connection (whether direct or indirect) does not require further use of SIGS 150 once peer-to-peer connection 140 is established. However, SIGS 150 may of course also be used, for example, to re-establish a peer-to-peer connection that has been broken.
[0039] FIG. 1C schematically illustrates a potential problem with the general solution described above that uses an intermediate SIGS 150. In the situation illustrated in FIG. 1C, SIGS 150 is compromised, e.g., hacked by a malicious actor, for example, by introducing specific software into SIGS 150. Typically, SIGS 150 only extracts enough information from each incoming message to determine which address the message is to be relayed to. However, SIGS 150 is typically not interested in the remaining content of the message it relays. However, once compromised, SIGS 150 can begin to interfere with messages and even replace some or all of the information in the message before the message is further relayed to the receiving party.
[0040] For example, it may be assumed that, as part of the terms negotiation, laptop 120 sends SIGS 150 a message containing information about where network camera 110 should connect to in order to establish a (direct) peer-to-peer connection with laptop 120. SIGS 150 may notice this message and replace the contact information (i.e., network address, port, etc.) of laptop 120 in such a message with its own information before the message is further sent to network camera 110. The same may apply to any similar message sent from network camera 110 to SIGS that has laptop 120 as its destination. By tampering with messages relayed between network camera 110 and laptop 120, SIGS 150 can trick network camera 110 into establishing peer-to-peer connection 141 directly with SIGS 150 (rather than directly with laptop 120). Similarly, SIGS 150 can trick laptop 120 into establishing peer-to-peer connection 142 directly with SIGS 150 (rather than directly with network camera 110). SIGS 150 can then relay all incoming information from one side to the other so that both sides (network camera 110 and laptop 120) can still believe that their respective peer-to-peer connections 141 and 142 are direct with the other, without realizing that the assumed direct peer-to-peer connection 140 does not actually exist and that all data is instead sent through SIGS 150. This procedure, known as a man-in-the-middle (MITM) attack, can be harmful because it allows SIGS 150 and a malicious party to access, for example, sensitive information (such as a video surveillance feed) sent from network camera 110 to laptop 120. The risk of a potential MITM attack may increase in situations, for example, where SIGS 150 is not provided and / or operated by the owners of either or both of network camera 110 and laptop 120, and instead a third-party service is used.Without direct control over SIGS 150, it may be more difficult for the owner of network camera 110 and / or laptop 120 to trust SIGS 150 and ensure that it does not tamper with the messages it relays.
[0041] The present disclosure provides an improved method for establishing remote access from one network device to another, thereby making it possible to avoid the above-identified problems associated with MITM attacks. Exemplary embodiments of such improved methods, as well as contemplated improved network devices and improved network systems, will now be more fully described below with reference to the remaining figures of the accompanying drawings. While the drawings illustrate presently preferred embodiments, the invention may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein; rather, these embodiments are provided for completeness and completeness, and will fully convey the scope of the invention to those skilled in the art.
[0042] 2A schematically illustrates one embodiment of a network system 200 according to the present disclosure. A first network device 210 (again in the form of a network camera) desires to establish a (direct) peer-to-peer connection 240 with a second network device 220 (again in the form of a laptop) to enable the laptop 220 to remotely access the network camera 210. As previously described herein, the presence of one or more NATs, firewalls, or similar items (not shown) between the network camera 210 and the laptop 220 prevents the network camera 210 and the laptop 220 from establishing such a direct peer-to-peer connection themselves. Instead, the network camera 210 and the laptop 220 rely on an intermediate SIGS 250 to relay messages while the terms of the peer-to-peer connection are negotiated. The network camera 210 has an already established connection 252 to the SIGS 250, and the laptop 220 has an already established connection 254 to the SIGS 250. SIGS 250 is not intended to form part of network system 200, but instead is operated by a third party that may not necessarily be trusted (i.e., the owner of either or both of network camera 210 and laptop 220 does not know whether SIGS 250 has been compromised).
[0043] The envisioned network system 200 includes the use of another network service 260 that is used to sign data items and that is trusted by at least the network camera 210. Here, "trusted" means that the signature of the network service 260 can be verified by the network camera 210, so that the network camera 210 can know whether a particular data item was signed by the particular network service 260. This can be achieved, for example, by the network camera 210 having access to the public key of the network service 260 and the network service 260 using the corresponding private key (i.e., part of the same key pair) to sign the data item. Preferably, the public key of the network service 260 is provided to the network camera 210 in advance and is not sent along with the signed data item. In this way, SIGS 250 (if used to relay the signed data item) cannot tamper with the signature of the network service 260 without the network camera 210 being aware of it, and the network camera 210 does not necessarily need an active network connection to the network service 260. By verifying the signature of the received data item, the network camera 210 can ensure that the contents of the signed data item have not been tampered with by the SIGS 250 .
[0044] 2B schematically illustrates various embodiments of network devices 210, 220 according to the present disclosure. Each network device includes at least a processor 230 (or, e.g., processing circuitry) and a memory 232. The memory 232 includes (i.e., stores) instructions that, when executed by the processor 230, cause the device to perform according to one of various methods contemplated herein. For example, if the network device is a first network device 210 (e.g., a network camera), the instructions stored in the memory 232 may cause the first network device 210 to perform relevant portions of one or more embodiments of a method 301 described later herein with reference to FIG. 3B and / or to perform steps of one or more embodiments of a method 302 described later herein with reference to FIGS. 3C, 3D, and 3E. If the network device is the second network device 220, the instructions stored in memory 232 may, for example, cause the second network device 220 to perform relevant portions of one or more embodiments of method 301 and / or perform steps of one or more embodiments of method 303 described later in this specification with reference to FIG. 3F. Depending on what the network devices 210, 220 are each to perform, they may further include additional items 236 necessary for such performance. For example, if the first network device 210 is a network camera, the items 236 may include, for example, a camera and associated electronics, and the memory 232 may further store, for example, one or more instructions for a processor related to the functionality of such a camera. If the network device is the second network device 220 (e.g., a laptop), the additional items 236 may include, for example, a monitor for viewing a video stream received from the network camera, a keyboard for receiving user input, etc.To connect to a network, network devices 210 and 220 may include a network interface 234, which may be, for example, a wireless interface supporting Wi-Fi (e.g., as defined by IEEE 802.11) and / or a wired interface supporting Ethernet (e.g., as defined by IEEE 802.3), etc. A communication bus 238 may be provided, for example, to interconnect the various components 230, 232, 234, and 236 so that these components can communicate with each other as needed to obtain desired functionality.
[0045] Various embodiments of methods (performed by / in network system 200 and / or separately in each of network camera 210 and laptop 220) according to the present disclosure will now be described in more detail with reference to Figures 3A-3F. As mentioned above, the terms "first network device" and "network camera" are used interchangeably, but the same applies to the terms "second network device" and "laptop" unless expressly stated to the contrary.
[0046] FIG. 3B generally illustrates various steps in one embodiment of a method 301 according to the present disclosure, and FIG. 3A generally illustrates a message flow 300 when performing method 301. As used herein, a "data item" is a collection of bits that represents information, e.g., a message, a data blob, etc. In particular, in step S301 of method 301, a data item 321 is obtained (e.g., generated) by laptop 220 to include one or both of laptop 220's public key and laptop 220's public key fingerprint. A key fingerprint is, for example, the result of applying a hash function to a key. As used herein, the term "hash function" has its general meaning: something that takes an input and provides a (often smaller) output, where it is easy to verify that a particular input produces a particular output, but it is difficult or impossible to infer what the input originally was from the output alone. This can be useful, for example, in that the fingerprint may be much smaller than the complete key, and if someone or something is trying to tamper with the fingerprint, it can be easily discovered as the fingerprint no longer corresponds to the key that was originally entered.
[0047] After generating data item 321 containing its public key (and / or public key fingerprint), laptop 220 sends data item 321 (in step S302 of method 301) in message 310 to network service 260 using connection 262. Network service 260 receives message 310 containing data item 321, cryptographically signs data item 321, and returns message 320 containing at least signature 322. In other embodiments, network service 260 may instead return a signed version of data item 321 in message 320 (i.e., both data item 321 and signature 322). In any event, after receiving message 320 from network service 260, laptop 220 possesses first signed data item 323 containing both signature 322 and data item 321.
[0048] Using SIGS 250 as an intermediary, network camera 210 and laptop 220 then proceed to negotiate the terms for establishing a peer-to-peer connection between network camera 210 and laptop 220. SIGS 250 is used to this end to relay multiple messages 330 between network camera 210 and laptop 220. While FIG. 3A shows the laptop sending the first of such messages, message 332, the reverse may also be true. For example, it is envisioned that laptop 220 could contact network camera 210 (using some other communication channel) and ask it to begin negotiations by sending a connection request / offer to laptop 220. However, for convenience, we will assume here that it is laptop 220 that initiates the negotiation of connection terms. It is also assumed that the negotiation may involve the network camera 210 and the laptop 220 each sending multiple messages back and forth before the negotiation is terminated, and that messages 332, 332', 334, and 334' may each represent multiple messages. However, for ease of explanation, FIG. 3A shows only a single message sent from each party to the other. It should also be assumed that the depicted timeline may vary (i.e., a message from the network camera 210 may be sent before a message from the laptop 220, for example, or the network camera may send multiple messages before receiving any message from the laptop 220, or vice versa). In other words, it is contemplated that the negotiation may take any form, and that message 330 may include any combination of messages sent and received between the network camera 210 and the laptop 220 via SIGS 250 at any particular arrangement in time.As a result, when this specification states that something is done (such as signing, receiving, reading, sending, etc.) of such a single message, it is also assumed that there may be multiple messages, and that the something is done to at least one or all of the multiple messages, etc.
[0049] In any event, in step S303 of method 301, laptop 220 sends one or more messages 332 to SIGS 250. Typically, SIGS 250 does not need to extract more information from one or more messages 332 than who the recipients are, and can leave the remainder of one or more messages 332 untouched and even unread. This also applies to messages that SIGS 250 receives from network camera 210 for forwarding to laptop 220. One or more messages 332 received from laptop 220 may include, for example, one or more ICE candidates, one or more SDP replies and / or offers, etc. In particular, (at least one of) one or more messages 332 includes at least a first network address for contacting laptop 220 (e.g., to establish a peer-to-peer connection with laptop 220), discovered, for example, using a STUN server. At least one of one or more messages 332 also includes a first signed data item 323. SIGS 350 sends corresponding one or more messages 332′ that are received by network camera 210 in step S304 of method 301, where one or more messages 332′ include at least a second signed data item 323′ and a second network address 324′. At this point in the method, it is not known whether SIGS 250 has tampered with the messages, e.g., whether the first and second signed data items 323 and 323′ are the same, and / or whether the first and second network addresses 324 and 324′ are the same, for example.
[0050] Next, the network camera 210 can send one or more proprietary messages 334 to the SIGS 250 as part of the negotiation, so that the SIGS 250 can relay the one or more messages 334 by sending one or more corresponding messages 334' to the laptop 220. The one or more messages 334 can include, for example, a corresponding network address for contacting the network camera 210. After the terms have been negotiated, the SIGS 250 is no longer needed, and the network camera 210 and the laptop 220 can establish a peer-to-peer connection 340 using the information about each other that was established during the negotiation.
[0051] Establishing the peer-to-peer connection 340 may form part of the network camera 210 allowing remote access from the laptop 220 via the peer-to-peer connection 340. However, to avoid potential MITM attacks if the SIGS 250 happens to be compromised, the contemplated method 301 and network system 200 includes the network camera 210 utilizing a signed data item 323′ received from the SIGS 250. This procedure will now be described in more detail.
[0052] If network camera 210 believes that the one or more messages 332′ received from SIGS 250 are the very one or more messages 332 originally sent by laptop 220 to SIGS 250, then network camera 210 can go ahead and do its part in establishing peer-to-peer connection 340 without further consideration. The same applies to laptop 220. However, SIGS 250 may be compromised; for example, one or more messages 332′ may not necessarily correspond exactly to the one or more messages 332 originally sent from laptop 332, and first and second signed data items 323 and 323′ and first and second network addresses 324 and 324′ may be different. SIGS 250 may have exchanged some or all of one or more messages 332 before sending one or more messages 332′ in an attempt to deceive network camera 210 into thinking it has established a peer-to-peer connection with SIGS 250, rather than directly with laptop 220, for example, by making second network address 324′ a network address belonging to SIGS 250 itself. Similarly, SIGS 250 may alter the content of one or more messages 334 received from network camera 210 before sending one or more messages 334′ to laptop 220, in order to deceive laptop 220 into thinking it has established a peer-to-peer connection with SIGS 250, rather than directly with network camera 210. However, to prevent this from happening, or at least to detect whether SIGS 250 has tampered with message 332 before sending message 332′, for example, the second signed data item 323 received from SIGS 250 may be used by network camera 210 for verification purposes. In step S305 of method 301, the network camera verifies that the second signed data item 323' was indeed signed by network service 260, for example by using the network service's 260 locally stored public key.In step S306 of method 301, network camera 210 uses second signed data item 323′ to verify that second network address 324′ received from SIGS 250 originated from laptop 220 and has not been tampered with by SIGS 250. After verifications S305 and S306 are successful, network camera 210 can then proceed to enable remote access from laptop 220 via the established peer-to-peer connection 340 in step S307 of method 301.
[0053] 3C-3E, two proposals are now presented, each including further details of how the second signed data item 323′ received from SIGS 250 can be used by the network camera 210 in the verification step S306 to avoid MITM attacks carried out by SIGS 250. Other such proposals are of course possible, although they will not be described in further detail herein.
[0054] First, Figure 3C shows a schematic flow diagram of one embodiment of a method 302 that can be performed in / by the network camera 210. The steps of the method 302 correspond to the steps of the method 301 performed in the network camera 210, and the details of which need not be repeated here again.
[0055] 3D schematically illustrates possible substeps of step S306 of method 302, corresponding to a first proposal "A." In proposal "A," both network camera 210 and laptop 220 may first establish peer-to-peer connections with what they believe to be other peers before worrying about a potential MITM attack via SIGS 250, which involves network camera 210 establishing that part of the peer-to-peer connection with second network address 234' received from SIGS 250. At this stage, it may not be excluded that the "other peer" of both network camera 210 and laptop 220 is actually SIGS 250, and that SIGS 250 has, for example, tampered with relayed message 330, e.g., making second network address 324' equal to its own network address. Without any prior preconceptions regarding MITM, both network camera 210 and laptop 220 can participate in an attempt to encrypt each peer-to-peer connection established with the “other peer” (or other “party,” as the terms party and peer are used interchangeably herein unless stated to the contrary). This may include exchanging one or more security keys between the ends of the peer-to-peer connection. In substep S306a-I of step S306 of method 302, this may include network camera 210 being able to provide its public key to the other peer of the connection (i.e., second network address 324′) while also receiving the public key of the other peer of the connection (i.e., second network address 324′). Similarly, the laptop can provide its public key to the potential other peer of the connection while receiving a public key from the potential other peer of the connection. The public key received from the particular other peer may be used to encrypt data before sending it to the particular other peer, which can then decrypt the data using its corresponding private key, and so on.Such procedures for encryption are assumed to be well known to those skilled in the art and may include, for example, the use of established protocols such as Transport Layer Security (e.g., TLS as described in RFC 8446 or any extensions thereto published by the IETF), Datagram TLS (e.g., DTLS as described in RFC 6347 or related publications by the IETF), etc.
[0056] Importantly, in substep S306a-ii of step S306 of method 302, laptop 220 can verify that the public key received from second network address 324′ is also included in second signed data item 323′ received from SIGS 250. Alternatively (or additionally), if second signed data item 323′ includes a public key fingerprint, network camera 210 can verify that the public key fingerprint received from second network address 324′ is the fingerprint included in second signed data item 323′. By first verifying (in step S305 of method 302) that second signed data item 323′ was indeed signed by trusted network service 260, network camera 210 can assume with a high degree of confidence that data item 321 containing laptop 220's public key has not been tampered with by SIGS 250, that second signed data item 323′ is the same as laptop 220's first signed data item 323, and that second network address 324′ is the same as first network address 324 for contacting laptop 220. This is because laptop 220's public key (or at least its fingerprint) will be included in second signed data item 323′ that network camera 210 receives from SIGS 250 when laptop 220 uses its public key to encrypt what it believes to be a peer-to-peer connection to network camera 210.
[0057] As a result, the network camera 210 can know whether the public key received from the supposed other peer (i.e., the second network address) is the public key of the laptop 220, and can then also know whether the supposed other peer is actually the laptop 220 or whether it is, for example, SIGS 250 attempting to perform an MITM attack. If the network camera 210 verifies that the public keys (or at least their fingerprints) match and that the peer-to-peer connection is a direct peer-to-peer connection 340 with the laptop 220, the network camera 210 can proceed and enable / enable remote access from the laptop 220 via the peer-to-peer connection 340 in step S307 of the method 302. If the network camera 210 cannot verify that the public keys (or their fingerprints) match, the network camera 210 can assume that something is wrong, for example, that SIGS 250 is attempting to tamper with one or more messages 332′, and that remote access should not be allowed since it cannot verify that something like SIGS 250 is not acting as a man-in-the-middle. The network camera 210 can then respond, for example, with an error message, or disconnect the established peer-to-peer connection, or both. For example, other alternatives are possible but will not be further detailed herein. Proposal "A" may be particularly advantageous, for example, in that the public key of the laptop 220 is already available for encryption purposes (it may be, for example, a TLS or DTLS encryption key), and that the same public key may also be used to prevent SIGS 250 from executing its MITM attack successfully without having to generate an additional public / private key pair.
[0058] 3E schematically illustrates the substeps of step S306 of method 302 according to another second proposal "B." In proposal "B," laptop 220 may choose to cryptographically sign at least a portion of one or more messages 332 that it sends to SIGS 250. The signing is performed using a private key associated with laptop 220's public key contained in data item 321 and signed data item 323 (as used herein, "associated" means that the public key and private key form part of the same public / private key pair). Laptop 220 may, for example, sign at least a portion of one or more messages 332 in which network address 324 is provided. After receiving one or more messages 332′ from SIGS 250, network camera 210 can use the second signed data item 323′ received from SIGS 250 to verify, in substep S306b of step S306 of method 302, that (at least the fingerprint of) second network address 324′ is signed by the private key associated with the public key included in second signed data item 323′. By doing so, network camera 210 can check whether message 332′ received from SIGS 250 is the same as message 332 originally sent from laptop 220 to SIGS 250, or whether the message has been tampered with by SIGS 250. SIGS 250 could, for example, be attempting to replace a first network address of laptop 220 with its own second network address, but network camera 210 could detect such an attempted tampering because the signature of that portion of message 332 would no longer match the contents of the message (or the signature would have to be updated by SIGS 250). If tampering is discovered by network camera 210, network camera 210 could, for example, choose not to establish a peer-to-peer connection at all.This proposal is particularly beneficial in that it allows the network camera 210 to detect tampering attempts even before that (or any) peer-to-peer connection is established between the network camera 210 and any address assumed to belong to the laptop 220.
[0059] It is envisioned that the above suggestions "A" (and corresponding substeps S306a-i and S306a-ii) and "B" (and corresponding substep S306b) may be implemented one at a time or both at once by network camera 210 as part of method 302 (and therefore as part of method 301).
[0060] In some contemplated embodiments, network service 260 can also be used to provide authorization and / or authentication of laptop 220 so that network camera 210 knows whether laptop 220 should be granted remote access. For example, message 310 sent from laptop 220 to network service 260 may include a request for an access token (or may be supplemented by it in another message not shown in FIG. 3). Network service 260 can check whether laptop 220 should be provided access to network camera 210, and if the answer is yes, network service 260 can generate and return such an access token to laptop 220. The access token may, for example, be inserted into data item 321 and co-signed with the public key of laptop 220. The first signed data item 323 may then also include a (signed) access token, and the network camera 210 can verify that the access token received in the signed data item 333 from the SIGS 250 is indeed signed by the specific network service 260 and then grant access to the network camera 210 from the laptop 220. This is because the network service 260 is assumed to be trusted by the network camera 210. Note that the access token is not necessarily required to prevent MITM attacks, but can serve as additional information regarding whether the laptop 220 is authorized / authenticated. The data item may be, for example, a Java Web Token (JWT) or the like, and may include, for example, the public key of the laptop 220, the signature of the network service 260, and possibly also the access token (if used). For example, if a JWT is already being used to authorize and / or authenticate the laptop 220, implementing and including the public key (or its fingerprint) in the already available and used JWT can prevent the need for an additional data structure and reduce the number of data variables exchanged.Of course, other ways of specifying the format of the data item are possible. Data item 321 may be the access token itself, for example, if the public key of laptop 220 is contained within the access token.
[0061] FIG. 3F illustrates one embodiment of a method 303 that may be performed in / by the laptop 220. Steps S301-S303 of the method 303 correspond to the same steps S301-S303 of the method 301 described with reference to FIG. 3B, and therefore their details will not be repeated here. FIG. 3F also illustrates two optional substeps S308a and S308b that may be performed by the laptop 220 as part of the method 303 (and as part of the method 301 described with reference to FIG. 3B). For example, it is envisioned that only one of substeps S308a and S308b is performed, or that both substeps S308a and S308b are performed. Substep S308a includes the laptop 220 participating in an attempt to encrypt a peer-to-peer connection with the assumed network camera 210. The laptop 220 then uses the public key whose fingerprint is included in the first signed data item 323. As described herein above, this allows network camera 210 to verify that a MITM attack will not be performed by SIGS 250 once a peer-to-peer connection is established and its encryption is attempted. In substep S308b, laptop 220 signs at least a portion of (at least a fingerprint of) one or more messages 332 that include first network address 324. As described herein above, this allows network camera 210 to check that second network address 324' has not been tampered with by SIGS 250 and that second network address 324' corresponds to first network address 324 for contacting laptop 220 before having to establish a peer-to-peer connection to second network address 324'.
[0062] In all embodiments contemplated herein, the standard for streaming data, e.g., from the network camera 210 to the laptop 220, can follow, for example, a standard known as Web Real-Time Connect (WebRTC), which already relies on a signaling service (SIGS) to establish a peer-to-peer connection between, e.g., a network camera and, e.g., a browser (running on a laptop) where the video stream from the network camera is to be consumed. The solution proposed herein only involves providing an additional item to the data items (i.e., including the laptop 220's public key or public key fingerprint) in the communication performed between the network camera 210 and the laptop 220 via SIGS 250, thereby still following WebRTC practices while implementing the method proposed herein. In particular, WebRTC specifies the use of SDP messages, e.g., for negotiating session and connection conditions, and these SDP messages are well suited to include the additional data required for the signed data items described herein without adversely affecting other parts of the WebRTC procedure.
[0063] It is also contemplated herein that one or more computer programs may be provided. One such computer program may, for example, be for executing method 301 in a network system, for example, for executing method 302 in a network device in the form of a network camera, and / or for executing method 303 in a network device in the form of a user device (e.g., laptop, tablet, smartphone, wearable device, desktop computer, etc.). The computer programs may, for example, correspond to instructions stored in memory 232 of one or both of network devices 210 and 220, such that the corresponding method is performed by the network device when a processor (or processing circuit) executes the instructions. In other contemplated embodiments, the computer program may not yet be processor-readable, but rather may be provided as text, for example, in a programming language, which must be compiled into a processor-readable format, for example, by using a suitable compiler. Of course, the compiler may be executed by the processor itself, or may even form part of the processor itself for real-time compilation. It is also contemplated herein that one or more computer program products may be provided. Each such computer program product includes a computer-readable storage medium having stored thereon one or more of the computer programs described above. For example, one computer program product may include a computer program for performing method 301, a computer program for performing method 302, and / or a computer program for performing method 303, as described herein above. As used herein in this disclosure, a (computer-readable) storage medium (e.g., "memory") may be, for example, any combination of random access memory (RAM) and read-only memory (ROM). In some embodiments, the computer-readable storage medium may be transitory (e.g., an electrical signal readable by a processor).In other embodiments, the computer-readable storage medium may be non-transitory (e.g., in the form of a hard disk drive (HDD), a solid-state drive (SSD), non-volatile memory such as a secure digital (SD) card, a USB flash drive, or any combination of magnetic, optical, solid-state, or even remotely mounted memory). Other types of computer-readable storage media are also envisioned, so long as their functionality allows for storing a computer program so as to be readable by a processor and / or intermediate compiler. As used herein in this disclosure, a "processing circuit" or "processor" may be, for example, any combination of one or more suitable central processing units (CPUs), multiprocessors, microcontrollers, digital signal processors (DSPs), application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), etc., capable of executing software instructions stored in a memory.
[0064] To summarize the various embodiments presented herein, the present disclosure provides an improved method for enabling remote access from, for example, a user device to, for example, a network camera, because a) the user device (e.g., a laptop) provides the user device with a data item that includes something “personal,” such as (a fingerprint of) the user device's public key, b) the data item is signed by a network service trusted by the network camera such that SIGS cannot tamper with the data item without the network camera's knowledge, c) the user device attempts to transfer the signed data item to the network camera via SIGS as part of negotiating the terms for a peer-to-peer connection between the network camera and the user device, and d) because the data item includes something personal to the user device, the network camera can use this personal something to verify that SIGS has not attempted to tamper with messages relayed during the negotiation in order to perform an MITM attack. This is because the user device's public key can be used by the user device, for example, to i) sign a proposed network address for contacting the user device that is transferred to the network camera during negotiation so that the network camera can tell if this network address has been tampered with by SIGS, and / or ii) encrypt the peer-to-peer connection so that the network device can know if the public key provided from the proposed network address that it receives as part of the negotiation is actually the user device's public key and not, for example, the public key of SIGS. These various solutions envisioned herein provide an easy way to avoid potential MITM attacks via SIGS without requiring any substantial modification of either the network camera and / or the user device.
[0065] Although the features and elements may be described above in particular combinations, each feature or element may be used alone without the other features and elements, or in various combinations with or without the other features and elements. Moreover, variations to the disclosed embodiments can be understood and effected by those skilled in the art in practicing the claimed invention, from a study of the drawings, the disclosure, and the appended claims.
[0066] In the claims, the words "comprise" and "include" do not exclude other elements, and the indefinite articles "a" or "an" do not exclude a plurality. The mere fact that certain features are recited in mutually different dependent claims does not indicate that a combination of these features cannot be used to advantage. [Explanation of symbols]
[0067] 110, 210 First network device (network camera) 120, 220 Secondary network device (laptop, user device) 130 First LAN 131 Second LAN 132, 133 First and Second Firewalls 134, 135 First and second NAT devices 136 common networks (e.g., the Internet) 140, 240 Peer-to-peer (P2P) connection between a first network device and a second network device 141, 142 P2P connections to malicious SIGS 150, 250 Signaling Service (SIGS) 200 Network Systems 230 processors 232 memory 234 Network Interface 236 Additional items 238 Communication Bus 260 Reliable Network Services 300 Message Flow 301 Methods performed in / by network systems 302 Method performed in / by a first network device 303 Method performed in / by a second network device 321 Data Items 322 signatures 323, 323' First and second signed data items 324, 324' First and second network addresses 330 Negotiation Message 332 Message from second network device to SIGS 332' SIGS message to first network device 334 Message from first network device to SIGS 334' SIGS message to second network device
Claims
1. A method (300, 301) for enabling remote network access from a second network device (120) to a first network device (110), comprising: a) generating (S301) by the second network device a data item (321) including at least one of a public key of the second network device and a fingerprint of the public key; b) the second network device cryptographically signing (S302) using a network service (260) a corresponding first signed data item (323) to generate the data item, the first signed data item being verifiable by the first network device as having been signed by the network service; c) the first network device and the second network device negotiating, via an intermediate signaling service (SIGS) (250), the conditions for establishing a peer-to-peer connection (340), the second network device sending (s303) the first signed data item (323) and a first network address (324) for connecting to the second network device in one or more messages (332) to the SIGS, and the first network device receiving (s304) a second signed data item (323') and a second network address (324') in one or more messages (332') from the SIGS; d) the first network device first d-i) verifying that the second signed data item is signed by the network service (S305); and d-ii) using the second signed data item to verify that the second network address is the first network address and has not been tampered with by the SIGS (S306); and then enabling the remote network access from the second network address via the peer-to-peer connection using the negotiated conditions (S307). A method comprising:
2. 2. The method of claim 1, wherein step d) comprises the first network device participating in an attempt to encrypt the peer-to-peer connection using a public key received from the second network address (324') (S306a-i), and step d-ii) comprises the first network device verifying that the public key received from the second network address and / or a fingerprint of the public key received from the second network address is included in the second signed data item received from the SIGS (S306a-ii).
3. 3. The method of claim 2, wherein the encryption is performed using Datagram Transport Layer Security (DTLS) and the public key received from the second network address is a DTLS public key.
4. 2. The method of claim 1, further comprising: the second network device signing (S308b) at least a portion of the one or more messages (332) sent to the SIGS and / or at least a portion of a fingerprint of the at least a portion of the one or more messages (332) sent to the SIGS using a private key associated with a second public key of the second network device; and step d-ii) comprising: the first network device verifying (S306b) that at least a portion of the one or more messages (332') received from the SIGS and / or at least a portion of a fingerprint of the at least a portion of the one or more messages (332') received from the SIGS are signed using a private key associated with a public key included in the second signed data item.
5. 2. The method of claim 1, further comprising providing the remote network access using Web Real-Time Connect (WebRTC), the one or more messages (330) including at least a Session Description Protocol (SDP) answer and / or offer, and the first network address is an Interconnect Establishment (ICE) candidate.
6. 6. The method of claim 5, wherein the data item is, includes, or is complemented by an access token provided and also signed by the network service to authorize and / or authenticate the second network device, and step d) includes the first network device verifying that the access token is, is included in, or complements the second signed data item received from the SIGS.
7. A network device (210), A processor (230); A memory (232) for storing instructions; the instructions, when executed by the processor, Negotiating terms for a peer-to-peer connection between the network device and a second network device (220) via an intermediate signaling service (SIGS) (250), including receiving (S304) a signed data item (323') and a network address (324') in one or more messages (332') from the SIGS; and enabling remote network access from the network address via the peer-to-peer connection using the negotiated conditions (S307), comprising first: Verifying (S305) that the signed data item received from the SIGS is signed by a network service (260) that is trusted by the network device; and using the signed data item received from the SIGS to verify that the network address received from the SIGS has not been tampered with by the SIGS; Enabling remote network access (S307), The network device (210) causes the network device to perform the following:
8. 8. The network device of claim 7, wherein the instructions further cause the network device to enlist in an attempt to encrypt the peer-to-peer connection using a public key received from the network address (S306a-i) and enable the remote network access from the network address after also first verifying that the public key received from the network address and / or a fingerprint of the public key received from the network address is included in the signed data item received from the SIGS (S306a-ii).
9. 8. The network device of claim 7, wherein the instructions further cause the network device to verify that at least a portion of the one or more messages received from the SIGS that include the network address and / or a fingerprint of the at least a portion of the one or more messages received from the SIGS that include the network address are signed using a private key associated with a public key included in the signed data item received from the SIGS (S306b).
10. A network device (220), A processor (230); A memory (232) for storing instructions; the instructions, when executed by the processor, generating (S301) a data item (321) containing at least one of a public key of the network device and a fingerprint of said public key; cryptographically signing (S302) a data item using a network service (260) to generate a corresponding signed data item (323), the signed data item being verifiable by a second network device (210) as having been signed by the network service; negotiating terms for a peer-to-peer connection between the network device and the second network device via an intermediate signaling service (SIGS) (250), including transmitting (S303) the signed data item and a network address (324) for contacting the network device in one or more messages (332) to the SIGS; The network device (220) causes the network device to perform the following:
11. The network device of claim 10 , wherein the instructions further include: enlisting the network device in an attempt to encrypt the peer-to-peer connection using the public key (S308a).
12. 11. The network device of claim 10, wherein the instructions further cause the network device to use a private key associated with the public key to sign at least a portion of the one or more messages that include the network address and / or sign a fingerprint of the at least a portion of the one or more messages that include the network address (S308b).
13. 11. The network device of claim 10, wherein the instructions further cause the network device to use the network service such that the signed data item is, includes, or is supplemented by an access token signed by the network service to authorize and / or authenticate the network device to the second network device.
14. A network system (200) comprising a first network device (210) and a second network device (220) and configured to enable remote network access from the second network device to the first network device according to a method (300, 301) of any one of claims 1 to 6.
15. 15. The network system of claim 14, wherein the first network device is a network camera, and remote access includes streaming a video feed from the network camera to the second network device.