Remote Access with Man-in-the-Middle Prevention

JP7648587B2Active Publication Date: 2025-03-18AXIS
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
JP2022195321
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2021-12-14
Filing Date
2022-12-07
Publication Date
2025-03-18
Estimated Expiration
2042-12-07

Smart Images

  • Figure 0007648587000001
    Figure 0007648587000001
  • Figure 0007648587000002
    Figure 0007648587000002
  • Figure 0007648587000003
    Figure 0007648587000003
Patent Text Reader

Abstract

To provide a method, a network device, and a network system for enabling remote access from a second network device (network camera) to a first network device (laptop).SOLUTION: In a method, a network camera 220 generates a data item 321 signed by a network service trusted by a laptop 210 and containing (the fingerprint of) a network camera's public key. The signed data item 323 is sent to the laptop via a signaling service (SIGS) 250 as a part of the negotiation of terms for peer-to-peer connection 340. The laptop uses received signed data item 323' to verify that a condition 324' received from the SIGS has not been tampered with by the SIGS to prevent the SIGS from performing a man-in-the-middle attack.SELECTED DRAWING: Figure 3A
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] The present disclosure relates to the field of remote network access. In particular, the present disclosure relates to securing remote network access when negotiating a peer-to-peer connection between two network devices using an intermediate signaling service, such as 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 not 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 own peer-to-peer connection.

[0003] However, intermediate signaling services may 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 the network devices may, for example, be tampered with 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 in fact connecting directly to the other network device. By doing so, the supposed peer-to-peer connection between the two network devices may be relayed covertly through the signaling service, and the third party may 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 compromising 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 ongoing intrusion. Summary of the Invention

[0005] To at least partially address the above identified problems of potential MITM attacks when relying on intermediate signaling services to establish peer-to-peer connections, 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, a method is provided for enabling remote network access from a second network device to a first network device. The method includes a step a) in which the second network device generates a data item including at least one of a public key and a fingerprint of the public key of the second network device. The method includes a step b) in which the second network device uses a network service to cryptographically sign the data item to generate a corresponding first signed data item, the first signed data item being verifiable by the first network device as being signed by the network service. The method includes a step c) in which the first network device and the second network device negotiate, via an intermediate signaling service (SIGS), conditions for establishing a peer-to-peer connection (between the first network device and the second network device), including the second network device transmitting, in one or more messages to the SIGS, the first signed data item and a first network address for contacting the second network device. 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 a peer-to-peer connection using the negotiated conditions, 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. In general, 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, but as a result, the message may not be derived from the fingerprint alone.

[0008] A peer-to-peer connection between two network devices as used herein may be either direct or indirect, the latter 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, etc. In other words, "direct" should be interpreted as "as direct as possible". However, a true peer-to-peer connection as used herein is considered not to require sending any of its data over SIGS once the peer-to-peer connection is established, although a successful MITM attack performed by SIGS may lead the two network devices to erroneously 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 that is trusted by the first network device. Here, "trusted" may include, for example, that the first network device has access to at least the public key of the network service, and that the network service signs data items (such as messages, or fingerprints of messages, for example) using the corresponding private key. In doing so, the first network device can verify that a received signed data item has in fact been signed by the network service by verifying that the data item, its signature, and the public key match. Examples of such public key cryptography / signature systems include, for example, those from Rivest-Shamir-Adleman (RSA) and Elliptic Curve Cryptography (ECC), although other equivalent or similar systems may of course also be used.

[0009] In this specification, 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) that was 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 (which the first network device receives from the SIGS) is the first network address (which the second network device sends to the SIGS). The network address does not have to directly point to the second network device, but may be, for example, the address of a network node on the path towards the second network device. However, it is envisaged 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 the method improves upon existing techniques in that the "private" (i.e., public key) of the second network device is signed and provided to the first network device as part of the terms negotiation for the peer-to-peer connection. Since the signature can be verified by the first network device, the SIGS cannot tamper with the data item including the public key (or public key fingerprint) of the second network device. 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 the verification of the signature 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, the step above d) 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 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). 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 public key of the second network device, a fingerprint of at least a portion of the one or more messages (e.g., including the first network address) and / or at least a portion of the 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 the fingerprint of at least a portion of the one or more messages received from the SIGS (e.g., including the second network address) and / or at least a portion of the messages received from the SIGS (e.g., including the second network address) is 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, e.g., 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, as 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 also 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 help, for example, the first network device (trusting 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, a network device is provided. 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 conditions for a peer-to-peer connection between the network device and a second network device (e.g., may be a user device that is trying to access the network device) via an intermediate signaling service (SIGS), and causing the network device to receive a signed data item and a network address (for contacting the second network device) in one or more messages from the SIGS. The instructions further enable / enable the network device for 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 the SIGS is signed by a particular network service that is trusted by the network service, and also ii) use 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 (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 a user device used to remotely access a network camera, such as, for example, a smartphone, a laptop, a desktop computer, a tablet, a wearable device, etc. The network device includes a processor and a memory. The memory stores instructions. The instructions, when executed on the processor, 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., a network camera) as being signed by the network service. The network service is trusted by the second network device. The instructions further include causing the network device to negotiate conditions for a peer-to-peer connection between the network device and the second network device via an intermediate signaling service (SIGS), and causing the network device to transmit 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 to the SIGS.

[0020] In some embodiments of the network device, the instructions may further include enlisting the network device 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 to 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 may 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. The network system includes 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 is configured to enable remote access from the second network device to the first 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 become apparent from the following detailed description, drawings, and claims. It is envisaged that within the scope of the present disclosure, for example, all features and advantages described with reference to the method of the first aspect may also relate to, apply to and 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] Example embodiments will now be described with reference to the accompanying drawings. [Brief description of the drawings]

[0029] [Figure 1A] FIG. 1 illustrates a schematic diagram of a conventional network system setup using intermediate signaling service (SIGS). [Figure 1B] FIG. 1 illustrates a schematic diagram of a conventional network system setup using intermediate signaling service (SIGS). [Figure 1C] FIG. 1 illustrates a schematic diagram of a conventional network system setup using intermediate signaling service (SIGS). [Figure 2A]FIG. 2 illustrates a schematic diagram of an embodiment of a network system setup using intermediate SIGS according to the present disclosure. [Figure 2B] FIG. 2 illustrates a schematic diagram of an embodiment of a network device according to the present disclosure. [Figure 3A] FIG. 2 illustrates a schematic diagram of a message flow in an embodiment of a method according to the present disclosure. [Figure 3B] FIG. 2 is a schematic flow diagram of a method embodiment according to the present disclosure. [Figure 3C] FIG. 2 is a schematic flow diagram of a method embodiment according to the present disclosure. [Figure 3D] FIG. 2 is a schematic flow diagram of a method embodiment according to the present disclosure. [Figure 3E] FIG. 2 is a schematic flow diagram of a method embodiment according to the present disclosure. [Figure 3F] FIG. 2 is a schematic flow diagram of a method embodiment according to the present disclosure. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0030] In the drawings, unless otherwise stated, like reference numbers are used for like elements. Unless expressly 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 thus provided to illustrate the general structure of the embodiments.

[0031] FIG. 1A illustrates a schematic diagram of a situation in which two network devices may have difficulty in establishing a peer-to-peer connection on their own (directly). A first network device 110 and a second network device 120 wish 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, for example. As used herein, the "first network device" (e.g., the first network device 110) is assumed to be a network camera used, for example, 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, a smartphone, a tablet, a wearable device, etc., instead of a laptop) are also possible and envisioned, but will not be illustrated further 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 then connected via a common network 136 (such as, for example, the Internet). For example, for security and / or network address management reasons, the connection between the first LAN 130 and the common network 136 is not direct, but instead is provided, for example, via 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, for example, a second firewall 133 and / or a second NAT device 135 to the common network 136.

[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 shows in a schematic way one commonly available solution to solve this problem. Here, it is assumed that both the network camera 110 and the laptop 120 have already established a connection with a so-called signaling service (SIGS) 150, respectively. Thereby, the network camera 110 can exchange messages with the SIGS 150 via the connection 152, and the laptop 120 can exchange messages with the SIGS 150 via the connection 154. Thus, the SIGS 150 can act 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 send it further to the network camera 110 using the connection 152. By doing so, the network camera 110 and the laptop 120 can communicate indirectly via the SIGS 150, even when the network camera 110 and the laptop 120 do not know by themselves how to communicate with each other directly.

[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 performing a negotiation of the terms for such a peer-to-peer connection using SIGS 150. 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 RFC5389), Traversal Using Relays Around NATs (TURN, published by the IETF as RFC8656), Interconnect Establishment (ICE, published by the IETF as RFC8445), TCP Candidate with ICE (published by the IETF as RFC6544), 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 also contact the (potentially 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 the other party 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 can find other alternatives, for example using a STUN server, and information between the network camera 110 and the laptop 120 can be exchanged until each receives information useful for connecting to the other.Of course, it can be envisaged that several plausible ICE candidates could be simultaneously obtained by one party and forwarded to the other party as a single message alternative, to potentially speed up the negotiation process.

[0036] If a multimedia session is desired, once the peer-to-peer connection 140 has been established, e.g., to transfer video and / or audio between the network camera 110 and the laptop 120, the terms of such a session may be negotiated, e.g., using the Session Description Protocol (SDP, published by the IETF as RFC8866), and an exchange of offers and corresponding answers is performed until terms acceptable to both the network camera 110 and the laptop 120 are agreed upon. Such negotiations may, for example, form part of an ICE negotiation, or may be performed separately, either before or after the ICE negotiation is completed. SDP-formatted messages may, for example, also be used in ICE negotiations.

[0037] Finally, after the terms have been negotiated and both network camera 110 and laptop 120 know how to contact the other, the information received via SIGS 150 can be used to establish a direct peer-to-peer connection 140 between network camera 110 and laptop 120, and a desired session may be established, e.g., to transfer video data from network camera 110 to laptop 120 and / or for remote access of laptop 120 to network camera 110.

[0038] It should be noted that the above outlined procedure of how to use SIGS 150 to establish peer-to-peer connection 140 is only one possible example, and it is assumed that one skilled in the art is familiar with the process of condition negotiation for such a connection and understands 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, the important thing is 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, of course, SIGS 150 may also be used, for example, to re-establish a peer-to-peer connection that has been broken.

[0039] FIG. 1C illustrates in schematic form a potential problem with the general solution described above using an intermediate SIGS 150. In the situation illustrated in FIG. 1C, SIGS 150 is compromised, e.g., hacked by a malicious party, for example, by introducing specific software within SIGS 150. Normally, SIGS 150 only extracts enough information from each incoming message to determine to which address the message is supposed to be relayed. However, SIGS 150 is not usually interested in the remaining contents of the message it relays. However, once compromised, SIGS 150 can start 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 a message to SIGS 150 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 of laptop 120 (i.e., network address, port, etc.) in such a message with its own information before the message is further sent to network camera 110. The same may be true for any similar message sent from network camera 110 to SIGS having laptop 120 as destination. By tampering with messages relayed between network camera 110 and laptop 120, SIGS 150 may deceive network camera 110 into establishing peer-to-peer connection 141 directly with SIGS 150 (rather than directly with laptop 120). Similarly, SIGS 150 may deceive 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 to the other such that both parties (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 supposed direct peer-to-peer connection 140 does not actually exist and all data is sent through SIGS 150 instead. This procedure is called a man-in-the-middle (MITM) attack and can be harmful as SIGS 150 and a malicious party can 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 be increased in situations where, for example, 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 the ability to directly control SIGS 150, it may be more difficult to ensure that the owner of network camera 110 and / or laptop 120 trusts SIGS 150 and does not tamper with messages that SIGS 150 relays.

[0041] The present disclosure provides an improved method of establishing remote access from one network device to another network device, thereby making it possible to avoid the above-identified problems associated with MITM attacks. An exemplary embodiment of such an improved method, as well as an exemplary embodiment of a contemplated improved network device and an improved network system, will now be described more fully below with reference to the remaining figures of the accompanying drawings. Although the drawings show presently preferred embodiments, the invention may, however, be embodied in many different forms and should not be construed as being limited to the embodiments set forth herein, but rather, these embodiments are provided for completeness and completeness and to fully convey the scope of the invention to those skilled in the art.

[0042] 2A illustrates, in a schematic manner, 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) wishes 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's remote access to 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 envisaged network system 200 includes the use of another network service 260 that is used to sign data items and that is trusted at least by 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 is signed by a particular network service 260 or not. This can be achieved, for example, by the network camera 210 having access to the public key of the network service 260, and in that the network service 260 uses 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 together with the signed data item. By doing so, 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, and the network camera 210 does not necessarily need an active network connection to the network service 260. By verifying the signature of a received data item, the network camera 210 can ensure that the contents of the signed data item have not been tampered with by SIGS 250.

[0044] 2B illustrates in schematic form 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 the 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 hereinafter with reference to FIG. 3B and / or to perform steps of one or more embodiments of a method 302 described hereinafter with reference to FIG. 3C, FIG. 3D, and FIG. 3E. If the network device is the second network device 220, the instructions stored in the memory 232 may, for example, cause the second network device 220 to execute relevant parts of one or more embodiments of the method 301 and / or execute steps of one or more embodiments of the method 303 described later in this specification with reference to FIG. 3F. Depending on what the network devices 210, 220 are each supposed to execute, they may further include additional items 236 necessary for such execution. For example, if the first network device 210 is a network camera, the items 236 may include, for example, a camera and associated electronics therefor, and the memory 232 may further store one or more instructions for a processor, for example 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 communications 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 necessary 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 illustrates generally various steps in one embodiment of a method 301 according to the present disclosure, and FIG. 3A illustrates generally a flow 300 of messages when performing the 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 the method 301, a data item 321 is obtained (e.g., generated) by the laptop 220 such that it includes one or both of the laptop 220's public key and the laptop 220's public key fingerprint. The key fingerprint is, for example, the result of a hash function applied to the key. As used herein, the term "hash function" has its general meaning, i.e., 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 from the output alone what the input was originally. This can be useful, for example, in that a fingerprint may be much smaller than a complete key, and if someone or something is trying to tamper with the fingerprint it can be easily spotted as it no longer corresponds to the key that was originally entered.

[0047] After generating data item 321 including 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 including data item 321, cryptographically signs data item 321, and returns message 320 including 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 is in possession of first signed data item 323 including both signature 322 and data item 321.

[0048] Using SIGS 250 as an intermediary, the network camera 210 and the laptop 220 then proceed to negotiate the terms for establishing a peer-to-peer connection between the network camera 210 and the laptop 220. SIGS 250 is used to this end to relay a number of messages 330 between the network camera 210 and the laptop 220. Although the laptop is shown in FIG. 3A as sending the first of such messages 332, the reverse may also be true. For example, it is envisioned that the laptop 220 may contact the network camera 210 (using some other communication channel) and ask the network camera 210 to begin negotiations by sending the laptop 220 a connection request / offer. However, for convenience, we will assume here that it is the laptop 220 that initiates the negotiation of the connection terms. It is also assumed that the negotiation may include 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, 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 timelines shown may be different (i.e., a message from the network camera 210 may be sent, for example, before a message from the laptop 220, and the network camera may send multiple messages before receiving any message from the laptop 220, or vice versa). Stated differently, it is assumed 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 it is stated herein that something is done (such as signing, receiving, reading, sending, etc.) of such a single message, it is also contemplated 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 case, 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 the one or more messages 332 than who the addressee is, and can leave the remainder of the 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. The 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) the 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), found, for example, using a STUN server. At least one of the 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, the one or more messages 332' including 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, e.g., whether the first and second network addresses 324 and 324' are the same.

[0050] The network camera 210 may then send one or more of its own messages 334 to the SIGS 250 as part of the negotiation so that the SIGS 250 may 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 may include, for example, a corresponding network address for contacting the network camera 210, etc. After the negotiation of terms is finished, the SIGS 250 is no longer needed and the network camera 210 and the laptop 220 may establish a peer-to-peer connection 340 using the information about their respective counterparts realized during the negotiation.

[0051] Establishing the peer-to-peer connection 340 may form part of the network camera 210 enabling 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 the network camera 210 believes that the message(s) 332' received from SIGS 250 are the very message(s) 332 originally sent by the laptop 220 to SIGS 250, then the network camera 210 can go ahead and do its part of establishing the peer-to-peer connection 340 without further consideration. The same applies to the laptop 220. However, SIGS 250 may be compromised, e.g., the message(s) 332' may not necessarily correspond exactly to the message(s) 332 originally sent from the laptop 332, and the first and second signed data items 323 and 323' and the 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 modify 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, for example, before sending message 332', the second signed data item 323 received from SIGS 250 may be used by network camera 210 for verification purposes. In step S305 of the method 301, the network camera verifies that the second signed data item 323' was indeed signed by the network service 260, for example by using the locally stored public key of the network service 260.In step S306 of method 301, the network camera 210 uses the second signed data item 323′ to verify that the second network address 324′ received from SIGS 250 originates from the laptop 220 and has not been tampered with by SIGS 250. After successful verifications S305 and S306, the network camera 210 can then proceed to enable remote access from the 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 in order to avoid MITM attacks carried out by SIGS 250. Other such proposals are of course possible, although they will not be described in more detail here.

[0054] First, Figure 3C shows a schematic flow diagram of one embodiment of a method 302 that can be executed in / by the network camera 210. The steps of the method 302 correspond to the steps of the method 301 executed in the network camera 210, and the details of which need not be repeated here again.

[0055] 3D shows in a schematic manner possible sub-steps 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 by SIGS 250, which includes 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, e.g., SIGS 250 has tampered with relayed message 330, e.g., making second network address 324' equal to its own network address. Without any preconceived notions regarding any MITM thus far, both the network camera 210 and the laptop 220 may participate in an attempt to encrypt the respective peer-to-peer connections 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 sub-step S306a-I of step S306 of method 302, this may include the 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 may 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, who can decrypt the data using its corresponding private key, and so on.Such procedures for encryption are assumed to be well known to those of skill in the art and may include, for example, the use of established protocols such as Transport Layer Security (e.g., TLS as described in RFC8446, or any extensions thereto published by the IETF), Datagram TLS (e.g., DTLS as described in RFC6347 or related publications by the IETF), etc.

[0056] Importantly, in sub-step 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 the second signed data item 323' was indeed signed by the trusted network service 260, the network camera 210 can assume with a high degree of confidence that the data item 321 containing the public key of the laptop 220 has not been tampered with by SIGS 250, that the second signed data item 323' is the same as the first signed data item 323 of the laptop 220, and that the second network address 324' is the same as the first network address 324 for contacting the laptop 220. This is because the public key of the laptop 220 (or at least its fingerprint) will be included in the second signed data item 323' that the network camera 210 receives from SIGS 250 if the laptop 220 uses its public key to encrypt what it believes to be a peer-to-peer connection to the 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 trying to perform a MITM attack. If it 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 go ahead and enable / enable remote access from the laptop 220 via the peer-to-peer connection 340 in step S307 of the method 302. If it 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 trying 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, for example, respond with an error message, or disconnect the established peer-to-peer connection, or both. For example, other alternatives are possible, but will not be detailed further herein. Proposal "A" may be particularly advantageous, for example, in that the public key of the laptop 220 is already available for encryption purposes (which 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 and succeeding in its MITM attack without the need to generate an additional public / private key pair.

[0058] 3E shows in a schematic manner the sub-steps 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, the network camera 210 can use the second signed data item 323' received from SIGS 250 to verify, in substep S306b of step S306 of the method 302, that (at least the fingerprint of) the second network address 324' is signed by a private key associated with the public key contained in the second signed data item 323'. By doing so, the network camera 210 can check whether the message 332' received from SIGS 250 is the same as the message 332 originally sent from the 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 a second network address of its own, 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 envisaged that the above suggestions "A" (and corresponding sub-steps S306a-i and S306a-ii) and "B" (and corresponding sub-step S306b) may be implemented one at a time, or both at once, by the network camera 210 as part of method 302 (and thus as part of method 301).

[0060] In some contemplated embodiments, the network service 260 can also be used to provide authorization and / or authentication of the laptop 220, so that the network camera 210 knows whether the laptop 220 should be allowed remote access. For example, the message 310 sent from the laptop 220 to the network service 260 may include a request for an access token (or may be complemented by it in another message not shown in FIG. 3). The network service 260 can check whether the laptop 220 should be provided with access to the network camera 210, and if the answer is yes, the network service 260 can generate and return such an access token to the laptop 220. The access token may, for example, be inserted into the data item 321 and co-signed together with the public key of the laptop 220. The first signed data item 323 may then also include a (signed) access token, and the network camera 210 may verify that the access token received in the signed data item 333 from the SIGS 250 is indeed signed by the particular network service 250 and then grant access from the laptop 220 to the network camera 210. This is because the network service 260 is assumed to be trusted by the network camera 210. It should be noted 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 or not. 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 used for the authorization and / or authentication of the laptop 220, implementing and including the public key (or its fingerprint) in the already available and used JWT may prevent the need for further data structures 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 again. FIG. 3F further 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 envisaged that only one of the 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 envisaged network camera 210. The laptop 220 then uses the public key whose fingerprint is included in at least the first signed data item 323. This allows the network camera 210 to verify that no MITM attack is performed by SIGS 250 once a peer-to-peer connection is established and encryption thereof is attempted, as described herein above. In sub-step S308b, the laptop 220 signs at least a portion (at least a fingerprint of) of one or more messages 332 in which the first network address 324 is included. As described herein above, this allows the network camera 210 to check that the second network address 324' has not been tampered with by SIGS 250 and that the second network address 324' corresponds to the first network address 324 for contacting the laptop 220, before having to establish a peer-to-peer connection to the second network address 324'.

[0062] In all the embodiments envisaged herein, the standard for streaming data, for example from the network camera 210 to the laptop 220, may for example follow a standard known as Web Real Time Connect (WebRTC), which already relies on a signaling service (SIGS) for establishing a peer-to-peer connection between, for example, the network camera and a browser (running on the laptop, for example) 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 in the communication carried out between the network camera 210 and the laptop 220 via the SIGS 250 (i.e. including the public key, or public key fingerprint, of the laptop 220), so that the WebRTC practice can still be followed while implementing the method proposed herein. In particular, WebRTC specifies the use of SDP messages for negotiating, for example, 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 envisaged herein to provide one or more computer programs. One such computer program may be, for example, for executing the method 301 in a network system, for example, for executing the method 302 in a network device in the form of a network camera, and / or for executing the method 303 in a network device in the form of a user device (laptop, tablet, smartphone, wearable device, desktop computer, etc.). The computer program may, for example, correspond to instructions stored in the memory 232 of one or both of the network devices 210 and 220, such that the corresponding method is executed by the network device upon execution of the instructions by the processor (or processing circuitry). In other envisaged embodiments, the computer program may be in a form that is not yet processor-readable, but rather may be provided as text, for example in a programming language, which text needs to be compiled into a processor-readable format, for example by using a suitable compiler thereof. 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 envisaged herein to provide one or more computer program products. 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., electrical signals 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), a 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 an 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, for example, the (fingerprint of) the user device’s public key, b) the data item is signed by a network service that is 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 the negotiation of terms for a peer-to-peer connection between the network camera and the user device, and d) since the data item includes something personal to the user device, the network camera can use this personal something to verify that SIGS is not trying to tamper with messages relayed during the negotiation to perform a MITM attack. This is because the public key of the user device 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 the network device receives as part of the negotiation is actually the public key of the user device and not, for example, the public key of SIGS. These various solutions envisioned herein provide an easy way to avoid potential MITM attacks by 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. Additionally, variations to the disclosed embodiments may 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 "comprising" and "including" 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 Second network device (laptop, user device) 130 The 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 System 230 Processor 232 Memory 234 Network Interface 236 Additional items 238 Communication Bus 260 Reliable Network Services 300 Message Flow 301 Methods performed in / by a network system 302 A 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 said second network device a data item (321) including at least one of a public key of said second network device and a fingerprint of said 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.

Citation Information

Patent Citations

  • Data encryption transmission system and data encryption transmission method

    CN113422680A

  • End-to-end security guarantee method facing communication sensor network and edge server

    CN113630244A

  • Systems and methods for secure instant messaging

    JP2014522014A

  • Assisted device provisioning in networks

    JP2017513265A