CN116264525A - 具有中间人攻击防止的远程访问 - Google Patents

具有中间人攻击防止的远程访问 Download PDF

Info

Publication number
CN116264525A
CN116264525A CN202211584240.1A CN202211584240A CN116264525A CN 116264525 A CN116264525 A CN 116264525A CN 202211584240 A CN202211584240 A CN 202211584240A CN 116264525 A CN116264525 A CN 116264525A
Authority
CN
China
Prior art keywords
network device
network
sigs
data item
peer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202211584240.1A
Other languages
English (en)
Inventor
乔纳斯·克雷蒙
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Axis AB
Original Assignee
Axis AB
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Axis AB filed Critical Axis AB
Publication of CN116264525A publication Critical patent/CN116264525A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0281Proxies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • H04L9/3249Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures using RSA or related signature schemes, e.g. Rabin scheme
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/1466Active attacks involving interception, injection, modification, spoofing of data unit addresses, e.g. hijacking, packet injection or TCP sequence number attacks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0807Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0876Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/126Applying verification of the received information the source of the received data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/16Implementing security features at a particular protocol layer
    • H04L63/166Implementing security features at a particular protocol layer at the transport layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/10Architectures or entities
    • H04L65/1045Proxies, e.g. for session initiation protocol [SIP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1101Session protocols
    • H04L65/1104Session initiation protocol [SIP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1101Session protocols
    • H04L65/1108Web based protocols, e.g. webRTC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/141Setup of application sessions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/24Negotiation of communication capabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/321Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority
    • H04L9/3213Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority using tickets or tokens, e.g. Kerberos
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures

Abstract

公开了具有中间人攻击防止的远程访问。提供了一种使得能够从第二网络装置对第一网络装置进行远程访问的方法,包括第二装置生成被由第一装置信任的网络服务签名的并且包括第二装置的公钥(的指纹)数据项。作为对等连接的条款的协商的一部分,签名的数据项经由信令服务(SIGS)发送到第一装置。第一装置使用接收的签名的数据项验证它从SIGS接收的条款尚未被SIGS篡改,以防止SIGS执行中间人攻击。还提供了各种网络装置和网络系统。

Description

具有中间人攻击防止的远程访问
技术领域
本公开涉及远程网络访问的领域。具体地,本公开涉及当使用中间信令服务以协商两个网络装置之间的对等连接时的远程网络访问的安全,如在例如网络实时连接(WebRTC)中所使用的。
背景技术
由于互联网的复杂性,位于不同网络上的两个网络装置可以不总是必要知道如何在不使用中间信令服务的情况下彼此连接。例如,如果两个网络装置已经连接到相同的信令服务但没有彼此连接,则信令服务可以用于在两个网络装置之间中继网络连接信息,使得两个装置可以协商它们自己的对等连接的条款,并且最终建立它们自己的对等连接。
然而,中间信令服务可能形成所谓的中间人(MITM)攻击的攻击面的一部分。如果信令服务已经被第三方破解,则网络装置之间中继的网络连接信息可能会被篡改,使得例如,一个装置被诱骗成连接到由第三方控制的网络点,而不是直接连接到另一网络装置,同时仍然相信它实际上直接连接到另一网络装置。通过这样做,两个网络装置之间所谓的对等连接可以经由信令服务被秘密地中继,并且第三方可能然后访问或甚至更改网络装置之间发送的潜在敏感数据。
上述的一个真实世界示例可能例如是用户尝试使用WebRTC对网络摄像机进行远程访问,其中,在可以建立直接的对等连接之前,经常需要信令服务以在用户与网络摄像机之间交换数据。通过破解信令服务,第三方可以获得访问例如来自摄像机的视频馈送,而网络摄像机或用户不会意识到正在进行的入侵。
发明内容
为了至少部分地解决以上认同的当依赖中间信令服务以建立对等连接时潜在的MITM攻击的问题,本公开提供了如在所附独立权利要求中限定的使得能够从第二网络装置对第一网络装置进行远程网络访问的改进的方法,各种改进的网络装置,以及改进的网络系统。其它方面还提供了各种改进的计算机程序和计算机程序产品。在从属权利要求中限定了各种替代实施例。
根据本公开的第一方面,提供了一种使得能够从第二网络装置对第一网络装置进行远程网络访问的方法。方法包括步骤a):第二网络装置生成包括第二网络装置的公钥和公钥的指纹中的至少一个的数据项。方法包括步骤b):第二网络装置使用网络服务对数据项进行密码签名以生成对应的第一签名的数据项,其中,被网络服务签名的第一签名的数据项可由第一网络装置验证。方法包括步骤c):第一网络装置和第二网络装置经由中间信令服务(SIGS)执行用于建立(在第一网络装置和第二网络装置之间的)对等连接的条款的协商,包括第二网络装置在一个或多个消息中将第一签名的数据项和用于联系第二网络装置的第一网络地址发送到SIGS。协商进一步包括第一网络装置在一个或多个消息中从SIGS接收第二签名的数据项和第二网络地址。方法进一步包括步骤d):第一网络装置使得能够使用协商的条款通过对等连接从第二网络地址进行远程网络访问,但仅首先在以下步骤之后:d-i)验证(从SIGS接收的)第二签名的数据项被网络服务签名;以及d-ii)使用第二签名的数据项验证(从SIGS接收的)第二网络地址源自第二网络装置(即是用于联系第二网络装置的第一网络地址)并且尚未被SIGS篡改。
如在本文中所使用的,某事物(例如,消息)的“指纹”可以例如是应用于消息的特定散列函数的结果。通常,“指纹”被认为是一旦指纹和消息已知就可以容易地确认/检查为源自消息的任何事物,但是使得消息可能不单独从指纹中检索到。
如在本文所使用的,两个网络装置之间的对等连接可以是直接的或间接的,其中,后者包括如果由于例如存在中间网络地址转换(NAT)和/或防火墙服务器而可以不建立在网络装置之间的直接路径,则可以使用一个或多个中间代理服务器以建立对等连接。这样的中间代理服务器例如可以是所谓的使用中继穿越NAT(TURN)服务器,或类似物。说法不同,“直接”应被解释为“尽可能直接”。然而,如在本文中所使用的,真实的对等连接被认为一旦已经建立了对等连接就不需要经由SIGS发送其任何数据,尽管由SIGS执行的成功MITM攻击可能导致两个网络装置错误地相信这样的真实的对等连接仍然已经正确建立。网络服务例如可以是由被第一网络装置信任的第三方提供的服务。这里,“被信任”可以包括例如第一网络装置至少访问网络服务的公钥,并且网络服务使用对应的私钥对数据项(诸如消息,或例如消息的指纹)进行签名。通过这样做,第一网络装置可以通过验证数据项、其签名和公钥是一致的来确认接收的签名的数据项实际上被网络服务签名。这样的公钥密码/签名系统的示例例如是通过Rivest-Shamir-Adleman(RSA)的系统和椭圆曲线密码学(ECC)的系统,尽管当然也可以使用其它等效或类似系统。
在本文中,“源自第二网络装置”的网络地址应被理解为与在协商对等连接的条款期间由第二网络装置最初提出的网络地址(例如,用于联系第二网络装置的网络地址)相同的网络地址。使用权利要求的语言,这意味着第二网络地址(其是第一网络装置从SIGS接收的)是第一网络地址(其是第二网络装置发送给SIGS)。网络地址不需要直接指向第二网络装置,但也可以是例如朝向第二网络装置的路径上的网络节点的地址。然而,为了“源自第二网络装置”,设想网络地址不应是例如SIGS的地址或针对用于执行MITM攻击的SIGS控制的任何网络节点的地址。
方法的本公开改进了现有技术,在于作为对等连接的条款协商的一部分,第二网络装置的“个人附属物”(即,公钥)被签名并被提供到第一网络装置。由于签名可以被第一网络装置验证,因此SIGS可以不篡改包括第二网络装置的公钥(或公钥的指纹)的数据项。因此,公钥也可以用于验证SIGS尚未尝试篡改对等连接的协商条款,包括例如提出到第一网络装置以连接到第二网络装置的网络地址。这提供了一种防止SIGS执行MITM攻击的容易的方式,而不需要对第一网络装置或对第二网络装置进行任何实质性修改。第一网络装置可以通过使用预先安装的证书来例如执行网络服务的签名的证实,而无需在执行证实的时刻与例如另一服务器建立的任何连接。
在方法的一些实施例中,以上的步骤d)可以包括第一网络装置参与对使用从第二网络地址接收的公钥对对等连接进行加密的尝试,并且以上步骤d-i)可以包括第一网络装置验证从第二网络地址接收的公钥和/或从第二网络地址接收的公钥的指纹包括在从SIGS接收的第二签名的数据项中(并且例如是第二网络装置的公钥)。这可能是有益的,在于为了加密的目的已经存在公钥可用于第二网络装置,并且在于该公钥也可用于防止MITM攻击(而无需生成任何进一步的公钥/私钥对)。
在方法的一些实施例中,对会话进行加密可以使用数据报传输层安全协议(DTLS)来执行。从第二网络地址接收的公钥例如可以是DTLS公钥。
在方法的一些实施例中,方法可以包括第二网络装置使用与第二网络装置的第二公钥相关联的私钥对一个或多个消息的至少一部分(包括例如第一网络地址)和/或发送到SIGS的一个或多个消息的至少一部分的指纹(包括例如第一网络地址)进行签名。以上步骤d-ii)可以包括第一网络装置验证从SIGS接收的一个或多个消息的至少一部分(包括例如第二个网络地址)和/或从SIGS接收的一个或多个消息的至少一部分的指纹(包括例如第二网络地址)已经使用与包括在第二签名的数据项中的公钥相关联的私钥进行了签名。第二网络装置的第二公钥例如可以是第二网络装置的包括在签名的数据项中的公钥。还可以设想的是,签名的数据项包括第二网络装置的多个公钥,其中,例如一个这样的密钥用于对对等连接进行加密,而另一个这样的密钥用于对发送到SIGS的一个或多个消息的至少一部分(包括例如第一网络地址)进行签名。
在方法的一些实施例中,方法可以包括使用Web实时连接(WebRTC,如由W3C推荐和发布的)提供远程网络访问。一个或多个消息可以至少包括会话描述协议(SDP)回答和/或提议。网络地址(用于联系第二网络装置)可以是交互式连接建立(ICE)候选,如例如在协商如何穿越一个或多个NAT时使用。
在方法的一些实施例中,数据项也可以是访问令牌、包括访问令牌或由访问令牌补充,访问令牌由网络服务提供并也被网络服务签名,以授权和/或认证第二网络装置。以上步骤d)可以包括第一网络装置验证访问令牌是从SIGS接收的第二签名的数据项、包括在从SIGS接收的第二签名的数据项中或补充从SIGS接收的第二签名的数据项。例如,这可以帮助第一网络装置(其信任网络服务)知道第二网络装置是否应该完全能够对第一网络装置进行远程访问,或者至少在某种程度上是这样。这里,“由……补充”应该被理解为一个选项,其中访问令牌和数据项被提供作为两个单独的签名的项。
根据本公开的第二方面,提供了一种网络装置。该网络装置例如可以是网络摄像机或类似物。网络装置包括处理器和存储器。存储器存储指令。当指令由处理器执行时使网络装置经由中间信令服务(SIGS)协商网络装置与第二网络装置(其例如可以是试图访问网络装置的用户装置)之间的对等连接的条款,包括在一个或多个消息中从SIGS接收签名的数据项和网络地址(据称用于联系第二个网络装置)。指令进一步使网络装置允许/使得能够使用协商的条款通过对等连接从网络地址进行远程网络访问,但包括首先i)验证从SIGS接收的签名的数据项由被网络装置信任的特定网络服务签名,而且ii)使用从SIGS接收的签名的数据项验证从SIGS接收的网络地址尚未被SIGS篡改(并且例如是用于联系第二个网络装置的网络地址)。
在网络装置的一些实施例中,指令可以进一步使网络装置参与对使用从网络地址接收的公钥对对等连接进行加密的尝试,并且在首先也验证从网络地址接收的公钥和/或从网络地址接收的公钥的指纹包括在从SIGS接收的签名的数据项中之后,允许从网络地址进行远程网络访问。
在网络装置的一些实施例中,指令可以进一步使网络装置验证包括网络地址的从SIGS接收的一个或多个消息的至少一部分和/或包括网络地址的从SIGS接收的一个或多个消息的至少一部分的指纹已经使用与包括在从SIGS接收的签名的数据项中的公钥相关联的私钥进行了签名。
根据本公开的第三方面,提供了另一网络装置。该另一网络装置例如可以是用于对网络摄像机进行远程访问的用户装置,诸如例如智能电话、膝上型计算机、台式计算机、平板电脑、可穿戴装置,或相似物。网络装置包括处理器和存储器。存储器存储指令。当在处理器上执行时,指令使网络装置生成包括网络装置的公钥和公钥的指纹中的至少一个的数据项。指令进一步使网络装置使用网络服务对数据项进行密码签名以生成对应的签名的数据项,其中,被网络服务签名的签名的数据项可由第二网络装置(例如,网络摄像机)验证;网络服务被第二网络装置信任。指令进一步使网络装置经由中间信令服务(SIGS)协商网络装置与第二网络装置之间的对等连接的条款,包括在一个或多个消息中将签名的数据项和用于联系网络装置的网络地址(如使用例如STUN服务器或类似物获得的)发送到SIGS。
在网络装置的一些实施例中,指令可以进一步使网络装置参与对使用公钥对对等连接进行加密的尝试。
在网络装置的一些实施例中,指令可以进一步使网络装置使用与公钥相关联的私钥对包括网络地址的一个或多个消息的至少一部分进行签名,和/或对包括网络地址的一个或多个消息的至少一部分的指纹进行签名。
在网络装置的一些实施例中,指令可以进一步使网络装置使用网络服务来让签名的数据项是被网络服务签名的访问令牌、包括被网络服务签名的访问令牌、由被网络服务签名的访问令牌补充,以向第二网络装置授权和/或认证网络装置。
根据本发明的第四方面,提供了一种网络系统。网络系统包括第一网络装置(诸如以根据第二方面的网络装置为例)和第二网络装置(诸如以根据第三方面的网络装置为例)。网络系统被配置为使得能够按照根据第一方面的方法从第二网络装置对第一网络装置进行远程访问。
在网络系统的一些实施例中,第一网络装置可以是网络摄像机。远程网络访问可以包括将视频馈送从网络摄像机流式传输到第二网络装置。
根据第五方面,提供了一个或多个计算机程序。计算机程序均被配置为在由例如根据第二和/或第三方面的网络装置的处理器执行时使网络装置执行第一方面的方法的相关部分。
根据第六方面,提供了一种或多种计算机程序产品。每个计算机程序产品包括计算机可读存储介质,其上存储根据第五方面的一个或多个计算机程序。
根据以下详细描述、附图和权利要求,本公开的其它目的和优点将是明显的。在本公开的范围内,设想参照例如第一方面的方法描述的所有特征和优点与参照第二方面的网络装置、第三方面的网络装置、第四方面的网络系统、第五方面的计算机程序和/或第六方面的计算机程序产品描述的任何特征和优点相关、应用于参照第二方面的网络装置、第三方面的网络装置、第四方面的网络系统、第五方面的计算机程序和/或第六方面的计算机程序产品描述的任何特征和优点,并且也可以与参照第二方面的网络装置、第三方面的网络装置、第四方面的网络系统、第五方面的计算机程序和/或第六方面的计算机程序产品描述的任何特征和优点结合使用,并且反之亦然。
附图说明
下面将参照附图描述例示的实施例,在附图中:
图1A至图1C示意性地图示使用中间信令服务(SIGS)的传统网络系统设置;
图2A示意性地图示根据本公开的使用中间SIGS的网络系统设置的实施例;
图2B示意性地图示根据本公开的网络装置的实施例;
图3A示意性地图示根据本公开的方法的实施例中的消息流;并且
图3B至图3F示意性地图示根据本公开的方法的实施例的流程。
在附图中,除非另有说明,否则同样的附图标号将用于同样的元件。除非明确地相反说明,否则附图仅示出图示示例性实施例所必需的元件,而为了清楚的好处,可以省略或仅暗示其它元件。如在附图中所图示的,为了说明的目的,相对于它们的真实值可以夸大或轻描淡写元件和区域的(绝对或相对)尺寸,并且因此被提供以图示实施例的一般结构。
具体实施方式
图1A示意性地图示其中两个网络装置可能难以自行建立(直接)对等连接的情况。第一网络装置110和第二网络装置120想要建立对等连接140,使得第二网络装置120可以远程访问第一网络装置110,为了例如执行第一网络装置110的配置和/或例如从第一网络装置110接收数据流。如在本文中所使用的,“第一网络装置”(例如,第一网络装置110)被假设为例如被用于监视和/或监控的网络摄像机,而“第二网络装置”(例如,第二网络装置120)被假设为膝上型计算机形式的用户装置。第二网络装置的其它示例(诸如膝上型计算机代替为台式计算机、智能电话、平板电脑、可穿戴装置等)当然也是可能的和设想的,但在本文中没有进一步说明。第一网络装置当然也可以是除网络摄像机以外的其它某事物,诸如第二网络装置可以想要远程访问的任何网络可连接的装置。
网络摄像机110驻留在第一局域网(LAN)130上,而膝上型计算机120驻留在第二LAN 131上。两个LAN 130和131反过来通过公共网络136(诸如以因特网为例)连接。出于例如安全和/或网络地址管理的原因,第一LAN 130与公共网络136之间的连接不是直接的,而是通过例如第一防火墙132和/或第一网络地址转换(NAT)装置134提供。第一防火墙132可以例如帮助阻挡到第一LAN 130的不想要的传入连接尝试(在例如某些网络端口上),第一NAT装置134可以例如用于转换/映射在使用在第一LAN 130上的地址空间与使用在公共网络136上的地址空间之间的传入和传出数据包的网络地址。这是因为分配给例如第一LAN130上的网络摄像机110的网络地址可能与例如第一NAT 134的朝向公共网络136的网络地址不同。以类似的方式并且出于类似的原因,第二LAN 131经由例如第二防火墙133和/或第二NAT装置135通过公共网络136连接。
作为以上网络配置的结果,网络摄像机110可能自行不知道如何联系膝上型计算机120,并且反之亦然。因此,在没有进一步的帮助的情况下,建立对等连接140可能是不可能的。
图1B示意性地图示解决此问题的一种常用解决方案。这里假设网络摄像机110和膝上型计算机120两者已经各自与所谓的信令服务(SIGS)150建立了连接。网络摄像机110可以由此经由连接152与SIGS 150交换消息,而膝上型计算机120可以经由连接154与SIGS150交换消息。SIGS 150可以因此充当网络摄像机110与膝上型计算机120之间的中继。例如,膝上型计算机120可以使用建立的连接154将消息发送到SIGS 150。SIGS 150可以携带相同的消息并使用连接152将其进一步发送到网络摄像机110。通过这样做,即使在网络摄像机110和膝上型计算机120自行不知道如何彼此直接通信时,网络摄像机110和膝上型计算机120可以经由SIGS 150间接通信。
由于网络摄像机110和膝上型计算机120可以经由SIGS 150(间接)通信,因此网络摄像机110和膝上型计算机120可以然后尝试通过使用SIGS 150建立直接对等连接140,以执行对这样的对等连接的条款的协商。该协商可以遵循并使用一种或多种标准化技术和程序,诸如例如用于NAT的会话穿越实用程序(STUN,由因特网工程任务组(IETF)发布为RFC5389)、使用中继穿越NAT(TURN,由IETF发布为RFC 8656)、交互式连接建立(ICE,由IETF发布为RFC 8445)、带有ICE的TCP候选(由IETF发布为RFC 6544)等。例如,网络摄像机110可以联系STUN服务器(未示出,但位于防火墙132、133和NAT 134、135的外部,例如公共网络136上的某处),以便找到第一NAT 134已经为网络摄像机110分配的公共IP地址和端口号,用户数据报协议(UDP)流向远程主机。该信息可以然后作为ICE候选经由SIGS 150被中继到膝上型计算机120。同样地,膝上型计算机120也可以联系(潜在地相同的)STUN服务器以得到关于第二NAT 135的配置的对应的信息,并且可以经由SIGS 150将该信息提供到网络摄像机110。网络摄像机110和膝上型计算机120可以检查从另一方接收的信息是否有用(即,如果使用接收的地址信息尝试联系,则另一方是否响应?)。如果没有,则网络摄像机110和/或膝上型计算机120可以使用例如STUN服务器找到其它替代方案,并且网络摄像机110与膝上型计算机120之间的信息可以被交换,直到两方接收对连接到另一方有用的信息。当然也可以设想若干个似乎合理的ICE候选由一方同时获得,并在单个消息中作为替代方案被传输到另一方,以潜在地加快协商的过程。
如果期望多媒体会话,一旦已经建立了对等连接140,为了在网络摄像机110与膝上型计算机120之间传输例如视频和/或音频,这样的会话的条款可以使用例如会话描述协议(SDP,由IETF发布为RFC 8866)协商,其中,提议和对应的回答的交换被执行,直到对于网络摄像机110和膝上型计算机120两者可接受的条款已经达成一致。这样的协商可以例如形成ICE协商的一部分,或者在ICE协商完成之前或之后被单独执行。SDP格式化的消息例如也可以被用于ICE协商。
最后,在条款的协商已经导致网络摄像机110和膝上型计算机120两者都知道如何联系另一方之后,经由SIGS 150接收的信息可以用于在网络摄像机110与膝上型计算机120之间建立直接对等连接140,并且期望的会话可以被建立,以用于将例如视频数据从网络摄像机110传输到膝上型计算机120,和/或用于膝上型计算机120对网络摄像机110的远程访问。
应当注意以上如何使用SIGS 150建立对等连接140的概述的程序只是一个可能的示例,并且假设本领域技术人员非常熟悉这样的连接的条款协商的过程并且理解其它选项也是可能的。然而,假设在两者准备好建立直接对等连接140之前,需要SIGS 150作为网络摄像机110与膝上型计算机120之间的中间物。此外,“直接”对等连接应被解释为“尽可能直接”。协商的结果可以例如是需要一个或多个中间代理服务器(这样的一个或多个TURN服务器,或其它类型的服务器)作为网络摄像机110与膝上型计算机120之间的中间物。然而,重要的是,一旦已经建立了对等连接140,“真实的”对等连接(无论是直接的还是间接的)不需要进一步使用SIGS 150。然而,SIGS 150当然可以用于例如重新建立丢弃的对等连接,或类似物。
图1C示意性地图示利用上面描述的使用中间SIGS 150的常见解决方案的潜在问题。在图1C中图示的情况下,SIGS 150已经被破解,例如被恶意方通过在SIGS 150中引入例如特定的软件而被非法入侵。通常地,SIGS 150仅从每个传入消息中检索足够的信息,以决定应该将消息中继到哪个被访地址。然而,SIGS 150通常对它中继的消息的剩余内容不感兴趣。然而,在被破解之后,SIGS 150可能开始干扰消息,并且甚至在消息被进一步中继到接收方之前替换消息内的一些或全部信息。
例如,可以设想的是,作为条款协商的一部分,膝上型计算机120将消息发送到SIGS 150,该消息包括关于网络摄像机110应该连接到哪里以与膝上型计算机120建立(直接)对等连接的信息。SIGS 150可以注意到该消息,并且在消息进一步发送到网络摄像机110之前,用它自己的信息替换这样的消息中的膝上型计算机120的联系信息(即网络地址、端口等)。对于从以膝上型计算机120作为被访地址的网络摄像机110发送到SIGS的任何类似消息,也可以是这样的情况。通过篡改在网络摄像机110与膝上型计算机120之间中继的消息,SIGS 150可以欺骗网络摄像机110以直接与SIGS 150建立对等连接141(而不是直接与膝上型计算机120)。同样地,SIGS 150可以欺骗膝上型计算机120以直接与SIGS 150建立对等连接142(而不是直接与网络摄像机110)。SIGS 150可以然后将所有传入信息从一方中继到另一方,使得双方(网络摄像机110和膝上型计算机120)仍然可以相信它们各自的对等连接141和142是直接与另一方的,而不意识到假设的直接对等连接140不真实存在并且所有的数据经由SIGS 150代替发送。该程序被称为中间人(MITM)攻击,并且可能是有害的,因为SIGS 150和恶意方可以例如获得访问从网络摄像机110发送到膝上型计算机120的敏感信息(诸如视频监控馈送,或类似物)。例如,在SIGS 150不是由网络摄像机110和膝上型计算机120之一或两者的所有者提供和/或操作,而是代替使用第三方服务的情况下,潜在的MITM攻击的风险可能增加。在没有直接控制SIGS 150的情况下,网络摄像机110和/或膝上型计算机120的所有者可能更难信任SIGS 150并保证SIGS 150不篡改其中继的消息。
本公开提供了一种建立从一个网络装置对另一网络装置进行远程访问的改进的方法,其允许规避以上认同的具有MITM攻击的问题。这样的改进的方法的例示的实施例以及设想的改进的网络装置和改进的网络系统的示例现在将在下文中参照附图中的剩余图进行更充分地描述。附图示出当前优选的实施例,但是,然而,本发明可以以许多不同的形式被实施,并且不应被解释为限于本文中阐述的实施例;相反,为了彻底和完整提供这些实施例,并将本公开的范围充分传达给技术人员。
图2A示意性地图示根据本公开的网络系统200的实施例。第一网络装置210(这里也是网络摄像机的形式)想要与第二网络装置220(这里也是膝上型计算机的形式)建立(直接)对等连接240,以便使得膝上型计算机220对网络摄像机210进行远程访问成为可能。如在本文中早前所描述的,在网络摄像机210和膝上型计算机220之间的一个或多个NAT、防火墙或类似项(未示出)的存在防止网络摄像机210和膝上型计算机220自行建立这样的直接对等连接。相反,网络摄像机210和膝上型计算机220依靠中间SIGS 250中继消息,同时协商对等连接的条款。网络摄像机210已经建立了与SIGS 250的连接252,而膝上型计算机220已经建立了与SIGS 250的连接254。SIGS 250未被假设为形成网络系统200的一部分,而是由第三方代替地操作,该第三方可以不必要被信任(即,网络摄像机210和膝上型计算机220之一或两者的所有者不知道SIGS 250是否已经被破解)。
设想的网络系统200包括使用另一网络服务260,其用于对数据项进行签名并且至少被网络摄像机210信任。这里,“被信任”暗指网络服务260的签名可以被网络摄像机210验证,使得网络摄像机210可以知道特定的数据项是否已经被特定的网络服务260签名。这可以通过网络摄像机210访问例如网络服务260的公钥实现,并且在于网络服务260使用对应的(即同一密钥对的一部分)私钥对数据项进行签名。优选地,网络服务260的公钥已经被预先提供到网络摄像机210,并且不与签名的数据项一起发送。通过这样做,SIGS 250(如果被用于中继签名的数据项)可以不在网络摄像机210不注意的情况下篡改网络服务260的签名,并且网络摄像机210不必要需要与网络服务260的有效的网络连接。通过验证接收的数据项的签名,网络摄像机210可以确定签名的数据项的内容尚未被SIGS 250篡改。
图2B示意性地图示根据本公开的网络装置210、220的各种实施例。每个网络装置至少包括处理器230(或例如处理电路)和存储器232。存储器232包含(即,存储)指令,当由处理器230执行时,该指令使装置根据在本文中设想的各种方法之一执行。例如,如果网络装置是第一网络装置210(例如,网络摄像机),则存储在存储器232中的指令可以使第一网络装置210执行如稍后在本文中将参照图3B描述的方法301的一个或多个实施例的相关部分,和/或执行如稍后在本文中将参照图3C、图3D和图3E描述的方法302的一个或多个实施例的步骤。如果网络装置是第二网络装置220,则存储在存储器232中的指令可以例如使第二网络装置220执行方法301的一个或多个实施例的相关部分,和/或执行如稍后在本文中将参照图3F描述的方法303的一个或多个实施例的步骤。取决于网络装置210、220各自应该执行什么,它们可以进一步包括这样的性能所必需的附加项236。例如,如果第一网络装置210是网络摄像机,则项236可以包括例如摄像机和与其相关的电子装置,并且存储器232可以进一步存储例如用于与这样的摄像机的功能相关的处理器的一个或多个指令。如果网络装置是第二网络装置220(例如,膝上型计算机),则附加项236可以例如包括用于查看从网络摄像机接收的视频流的监视器、用于接收用户输入的键盘,或类似物等。为了连接到网络,网络装置210和220可以包括网络接口234,其可以是例如支持例如Wi-Fi(如在例如IEEE802.11中定义的)的无线接口,和/或支持例如以太网(如在IEEE 802.3中所定义的)的有线接口,或相似物。通信总线238可以例如提供为互连各种部分230、232、234和236,使得这些部分可以根据需要彼此通信以获得期望的功能。
现在将参照图3A至图3F更详细地描述根据本公开的方法的各种实施例(如由网络系统200执行/在网络系统200中执行,和/或单独在网络摄像机210和膝上型计算机220中的每个中执行)。如前所述,如果没有明确地相反陈述,则术语“第一网络装置”和“网络摄像机”可以互换使用,同时也同样应用于术语“第二网络装置”和“膝上型计算机”。
图3B示意性地图示根据本公开的方法301的实施例中的各种步骤,而图3A示意性地图示在执行方法301时的消息流300。在本文中,“数据项”是一条信息,例如表示例如消息、数据块或类似物的位的集合。具体地,在方法301的步骤S301中,数据项321由膝上型计算机220获得(例如,生成),并且被构成为包括膝上型计算机220的公钥和膝上型计算机220的公钥的指纹之一或两者。密钥的指纹例如是对密钥应用散列函数的结果。在本文中的术语“散列函数”具有其常见的含义,即携带输入并提供(通常较小的)输出的某事物,在这样的情况下容易检查特定的输入生成特定的输出,但是难以或不可能单独从输出中推断出输入最初是什么。这可以是有用的,例如在于指纹可以比完整密钥小得多,并且在于如果某人或某事物已经试图篡改指纹,则它容易被发现,因为它不再与最初输入的密钥对应。
在已经生成包括其公钥(和/或公钥的指纹)的数据项321之后,膝上型计算机220在消息310中使用连接262将数据项321发送(在方法301的步骤S302中)到网络服务260。网络服务260接收包括数据项321的消息310,对数据项321进行密码签名并返回至少包括签名322的消息320。在其它实施例中,网络服务260可以代替地在消息320中返回数据项321的签名的版本(即数据项321和签名322两者)。无论如何,在从网络服务260接收消息320之后,膝上型计算机220拥有包括签名322和数据项321两者的第一签名的数据项323。
使用SIGS 250作为中间物,网络摄像机210和膝上型计算机220然后继续协商用于在网络摄像机210与膝上型计算机220之间建立对等连接的条款。为此目的,SIGS 250被用于在网络摄像机210与膝上型计算机220之间中继多个消息330。尽管在图3A中图示为膝上型计算机发送这样的消息中的第一消息332,但是相反的情况也可以是真实的。例如,设想膝上型计算机220可以(使用一些其它通信的信道)联系网络摄像机210并通过将连接请求/提议发送到膝上型计算机220来要求网络摄像机210开始协商。然而,为了论证,这里将假设是膝上型计算机220发起连接条款的协商。此外,还将假设协商可以包括网络摄像机210和膝上型计算机220各自在协商结束之前来回发送多个消息,并且消息332、332'、334、334'可以各自表示多个消息。然而,为了易于说明,图3A仅图示从每一方发送到另一方的单个消息。还应假设示出的时间线可以不同(也就是说,来自网络摄像机210的消息可以例如在来自膝上型计算机220的消息之前被发送,并且例如网络摄像机可以在从膝上型计算机220接收任何消息之前发送多个消息,并且反之亦然)。说法不同,设想协商可以采用任何形式,并且消息330可以包括以任何特定的时间布置经由SIGS 250在网络摄像机210与膝上型计算机220之间来回发送的消息的任何组合。因此,当在本文中陈述这样的单个消息的某事物(诸如签名、接收、阅读、发送等)被执行时,还设想可以存在多个消息,并且对多个消息中的至少一个或全部做了所述某事物等。
无论如何,在方法301的步骤S303中,膝上型计算机220将一个或多个消息332发送到SIGS 250。通常,SIGS 250不需要从一个或多个消息332中检索比被访地址是谁更多的信息,并且可以将一个或多个消息332的剩余部分保持为未被触及并且甚至未被读取。这也应用于SIGS 250从网络摄像机210接收以转发到膝上型计算机220的消息。从膝上型计算机220接收的一个或多个消息332可以包括例如一个或多个ICE候选、一个或多个SDP回答和/或提议等。特别地,一个或多个消息332(中的至少一个)至少包括使用例如STUN服务器发现的用于联系膝上型计算机220的第一网络地址(以便例如建立与膝上型计算机220的对等连接)。一个或多个消息332中的至少一个还包括第一签名的数据项323。SIGS250在方法301的步骤S304中发送由网络摄像机210接收的对应的一个或多个消息332',一个或多个消息332'至少包括第二签名的数据项323'和第二网络地址324'。到目前为止,在该方法中,不知道SIGS 250是否已经篡改了消息,并且例如第一签名的数据项323和第二签名的数据项323'是否相同,和/或例如第一网络地址324和第二网络地址324'是否相同。
作为协商的一部分,网络摄像机210反过来可以将一个或多个自己的消息334发送到SIGS 250,使得SIGS 250可以通过将一个或多个对应的消息334'发送到膝上型计算机220来中继一个或多个消息334。一个或多个消息334可以例如包括用于联系网络摄像机210等的对应的网络地址。在条款的协商完成之后,不再需要SIGS 250,并且网络摄像机210与膝上型计算机220可以使用在协商期间获得的关于相应的另一方的信息来建立对等连接340。
建立对等连接340可以形成网络摄像机210使得能够通过对等连接340从膝上型计算机220进行远程访问的一部分。然而,为了避免如果SIGS 250发生为被破解而经受潜在的MITM攻击,设想的方法301和网络系统200包括利用从SIGS250接收的签名的数据项323'的网络摄像机210。现在将更详细地描述该程序。
如果网络摄像机210相信从SIGS 250接收的一个或多个消息332'正是最初由膝上型计算机220发送到SIGS 250的一个或多个消息332,则网络摄像机210可以进行并完成其建立对等连接340的部分而无需任何进一步考虑。同样应用于膝上型计算机220。然而,SIGS250可能被破解,并且例如一个或多个消息332'可能不必要与最初从膝上型计算机220发送的一个或多个消息332准确地对应,并且第一签名的数据项323和第二签名的数据项323'以及第一网络地址324和第二网络地址324'可能不同。SIGS 250可以例如在发送一个或多个消息332'之前已经替换了一个或多个消息332的部分或全部,尝试通过使第二网络地址324'成为属于例如SIGS 250本身的网络地址来将网络摄像机210诱骗成与SIGS 250建立对等连接而不是直接与膝上型计算机220建立对等连接。同样地,SIGS 250可以在向膝上型计算机220发送一个或多个消息334'之前更改从网络摄像机210接收的一个或多个消息334的内容,以将膝上型计算机220诱骗成与SIGS 250建立对等连接而不是直接与网络摄像机210建立对等连接。为了防止这样的情况发生,或者至少为了检测SIGS 250是否在发送消息332'之前已经篡改了例如消息332,然而,从SIGS 250接收的第二签名的数据项323'可以被网络摄像机210用于验证目的。在方法301的步骤S305中,网络摄像机通过使用例如本地存储的网络服务260的公钥来验证第二签名的数据项323'实际上被网络服务260签名。在方法301的步骤S306中,网络摄像机210使用第二签名的数据项323'来验证从SIGS 250接收的第二网络地址324'源自膝上型计算机220并且尚未被SIGS 250篡改。在验证S305与S306已经成功之后,网络摄像机210然后可以在方法301的步骤S307中继续使得能够经由建立的对等连接340从膝上型计算机220进行远程访问。
在下文中,进一步参照图3C至图3E,现在将提出两个提案,每个提案包括通过网络摄像机210在验证步骤S306中如何可以使用从SIGS 250接收的第二签名的数据项323'以避免由SIGS 250执行的MITM攻击的进一步细节。其它这样的提案当然也是可能的,尽管在本文中没有不再详细地描述。
首先,图3C示意性地图示可以在网络摄像机210中/由网络摄像机210执行的方法302的实施例的流程。方法302的步骤与在网络摄像机210中执行的方法301的步骤对应,并且它们的细节不需要再一次在这里重复。
图3D示意性地图示方法302的步骤S306的设想的子步骤,其与第一提案“A”对应。在提案“A”中,在担心通过SIGS 250进行的潜在MITM攻击之前,网络摄像机210和膝上型计算机220两者可以首先与它们相信是另一对等点的事物建立对等连接,包括网络摄像机210建立其与从SIGS 250接收的第二网络地址324'的对等连接的一部分。在该阶段,可以不排除网络摄像机210和膝上型计算机220两者的“另一对等点”实际上是SIGS 250,并且例如SIGS 250已经篡改了中继消息330以例如使第二网络地址324'等于它自己的网络地址。到目前为止,在不损害任何MITM的情况下,网络摄像机210和膝上型计算机220两者然后可以参与对对其与“另一对等点”(或另一“方”,如果没有相反陈述,则术语“方”和“对等点”在本文中可互换使用)建立的相应的对等连接进行加密的尝试。这可以包括在对等连接的端部之间交换一个或多个安全密钥。在方法302的步骤S306的子步骤S306a-i中,这可以包括网络摄像机210可以将它自己的公钥提供到连接的另一对等点(即,到第二网络地址324'),同时还接收连接的另一对等点的公钥(即来自第二网络地址324')。同样地,膝上型计算机可以将它自己的公钥提供到其假设的连接的另一对等点,同时从其假设的连接的另一对等点接收公钥。来自特定的另一对等点的接收的公钥可以用于在将数据发送到特定的另一对等点之前对数据进行加密,并且特定的另一对等点可以使用其对应的私钥解密数据等。假设这样的加密的程序对技术人员来说是众所周知的,并且可以例如包括使用建立的协议,诸如传输层安全性(TLS,如在例如RFC 8446或如由IETF发布的对其的任何扩展中所描述的)、数据报TLS(DTLS,如在例如RFC 6347或通过IETF的相关出版物中所描述的)等。
重要地,在方法302的步骤S306的子步骤S306a-ii中,膝上型计算机220可以验证它从第二网络地址324'接收的公钥也包括在从SIGS 250接收的第二签名的数据项323'中。可替代地,如果第二签名的数据项323'替代地(或附加地)包括公钥的指纹,则网络摄像机210可以验证从第二网络地址324'接收的公钥的指纹为包括在第二签名的数据项323'中的指纹。通过首先已经验证(在方法302的步骤S305中)第二签名的数据项323'实际上被信任的网络服务260签名,网络摄像机210可以很有信心地假设包括膝上型计算机220的公钥的数据项321尚未被SIGS250篡改,并且第二签名的数据项323'与膝上型计算机220的第一签名的数据项323相同,并且第二网络地址324'与用于联系膝上型计算机220的第一网络地址324相同。这是因为如果膝上型计算机220使用其公钥对它相信是与网络摄像机210的对等连接的事物进行加密,则膝上型计算机220的公钥(或至少其指纹)将包括在网络摄像机210从SIGS 250接收的第二签名的数据项323'中。
结果,网络摄像机210可以知道从假设的另一对等点(即从第二网络地址)接收的公钥是否是膝上型计算机220的公钥,并且然后还知道假设的另一对等点是否实际上是膝上型计算机220,或者它是否是例如尝试执行MITM攻击的SIGS250。如果验证公钥(或至少它们的指纹)匹配,并且对等连接是直接与膝上型计算机220的对等连接340,则网络摄像机210然后可以进行并在方法302的步骤S307中允许/使得能够通过对等连接340从膝上型计算机220进行远程访问。如果不能验证公钥(或它们的指纹)匹配,则网络摄像机210可以假设某事物是错误的,例如SIGS 250已经试图篡改一个或多个消息332',并且不应允许进行远程访问,因为不能确保像SIGS 250一样的某事物不正在充当中间人。网络摄像机210然后可以例如用错误消息进行响应、丢弃建立的对等连接,或两者都做。其它替代方案例如也是可能的,但在本文中不进一步详述。提案“A”可以例如是特别有利的,在于膝上型计算机220的公钥已经可用于加密目的(它可以是例如TLS或DTLS加密密钥),并且在于相同的公钥也可以用于防止SIGS 250执行并成功进行其MITM攻击,而无需生成进一步的公钥/私钥对。
图3E示意性地图示根据另一第二提案“B”的方法302的步骤S306的子步骤。在提案“B”中,膝上型计算机220可以选择对其发送到SIGS 250的一个或多个消息332的至少一部分进行密码签名。使用与包括在数据项321和签名的数据项323中的膝上型计算机220的公钥相关联的私钥执行签名(在本文中,“相关联”暗指公钥和私钥形成相同的公钥/私钥对的一部分)。膝上型计算机220例如可以对一个或多个消息332的至少一部分进行签名,其中,提供了网络地址324。在已经从SIGS 250接收一个或多个消息332'之后,网络摄像机210可以在方法302的步骤S306的子步骤S306b中使用从SIGS 250接收的第二签名的数据项323'来验证第二网络地址324'(的至少一个指纹)已经被与包括在第二签名的数据项323'中的公钥相关联的私钥签名。通过这样做,网络摄像机210可以检查来自SIGS 250的接收的消息332'是否与最初从膝上型计算机220发送到SIGS 250的消息332相同,或者消息是否已经被SIGS 250篡改。SIGS 250可能例如已经试图通过其自己的第二网络地址替换膝上型计算机220的第一网络地址,但是由于消息332的那部分的签名然后将不再匹配消息的内容(或者签名将必须由SIGS 250更新),网络摄像机210可以检测这样的篡改尝试。如果篡改被网络摄像机210发现,则网络摄像机210可以选择例如完全不建立对等连接。该提案是特别有益的,在于即使在(或任何)对等连接已经建立在网络摄像机210和假设属于膝上型计算机220的任何地址之间之前,篡改尝试也可以被网络摄像机210检测到。
假设以上提案“A”(以及对应的子步骤S306a-i和S306a-ii)和“B”(以及对应的子步骤S306b)可以作为方法302的一部分(并且因此作为方法301的一部分)被网络摄像机210一次一个或一次两个地实现。
在一些设想的实施例中,网络服务260还可以用于提供膝上型计算机220的授权和/或认证,使得网络摄像机210可以知道膝上型计算机220是否应被允许进行远程访问。例如,从膝上型计算机220发送到网络服务260的消息310可以包括(或者由在图3A中未图示的另一消息中补充)对访问令牌的请求。网络服务260可以检查膝上型计算机220是否应该被提供对网络摄像机210的访问,并且如果回答是肯定的,则网络服务260可以生成并将这样的访问令牌返回回到膝上型计算机220。访问令牌可以例如插入在数据项321中并且与膝上型计算机220的公钥一起被共同签名。第一签名的数据项323然后还可以包括(签名的)访问令牌,并且网络摄像机210可以验证在来自SIGS 250的签名的数据项323'中接收的访问令牌实际上被特定的网络服务260签名,并且然后允许从膝上型计算机220访问网络摄像机210。这是因为网络服务260被假设为被网络摄像机210信任。应该注意的是,访问令牌不必要需要防止MITM攻击,但可以用作关于膝上型计算机220是否被授权/认证的附加信息。数据项例如可以是JavaWeb令牌(JWT)或类似物,并且可以包含例如膝上型计算机220的公钥、网络服务260的签名以及还可能访问令牌(如果使用)。如果JWT已经用于例如膝上型计算机220的例如授权和/或认证,则将公钥(或其指纹)实现和包括在已经可用和使用的JWT中可以防止对进一步数据结构的需要并减少交换的数据变量的数量。指定数据项的格式的其它方式当然也是可能的。数据项321例如可以是访问令牌本身,如果膝上型计算机220的公钥包括在访问令牌内等。
图3F图示可以执行在膝上型计算机220中/由膝上型计算机220执行的方法303的实施例。方法303的步骤S301至S303与参照图3B描述的方法301的相同步骤S301至S303对应,并且它们的细节将因此不再在这里重复。图3F进一步图示两个可选的子步骤S308a和S308b,子步骤S308a和S308b也可以由膝上型计算机220执行作为方法303的一部分(并且作为参照图3B描述的方法301的一部分)。设想例如仅执行子步骤S308a和S308b中的一个,或者执行子步骤S308a和S308b两者。子步骤S308a包括膝上型计算机220参与对对与假设的网络摄像机210的对等连接进行加密的尝试。膝上型计算机220然后使用至少指纹包括在第一签名的数据项323中的公钥。如在本文中早前所描述的,一旦已经建立了对等连接并尝试对其进行加密,这允许网络摄像机210验证MITM攻击不由SIGS 250执行。在子步骤S308b中,膝上型计算机220对其中包括第一网络地址324的一个或多个消息332的至少一部分(中的至少指纹)进行签名。如在本文中早前所描述的,这允许网络摄像机210在必须建立与第二网络地址324'的对等连接之前检查第二网络地址324'尚未被SIGS 250篡改,以及第二网络地址324'与用于联系膝上型计算机220的第一网络地址324对应。
在本文中设想的所有实施例中,用于将例如数据从网络摄像机210流式传输到膝上型计算机220的标准可以遵循例如被称为Web实时连接(WebRTC)的标准,该标准已经依赖于信令服务(SIGS),用于在例如网络摄像机与浏览器(运行在膝上型计算机或类似物上)之间建立对等连接,在该浏览器中要消费例如来自网络摄像机的视频流。由于在本文中提出的解决方案仅包括在网络摄像机210与膝上型计算机220之间经由SIGS 250执行的通信中提供数据项中的附加项(即,包括膝上型计算机220的公钥或公钥的指纹),因此在实现在本文中提出的方法时仍然可以遵循WebRTC的实践。具体地,WebRTC指定使用SDP消息来协商例如会话和连接条款,并且这些SDP消息非常适合包括在本文中讨论的签名的数据项所需的附加数据,而不负面影响WebRTC程序的其它部分。
在本文中还设想了提供一种或多种计算机程序。一个这样的计算机程序可以例如被用于在网络系统中执行方法301,用于在例如网络摄像机形式的网络装置中执行方法302,和/或用于在例如用户装置(膝上型计算机、平板电脑、智能电话、可穿戴装置、台式计算机等)形式的网络装置中执行方法303。计算机程序可以例如与存储在网络装置210和220之一或两者的存储器232中的指令对应,使得当处理器(或处理电路)执行指令时,对应的方法由网络装置执行。在其它设想的实施例中,计算机程序可以是尚不被处理器可读的形式,而是作为例如根据编程语言的文本提供,该文本需要被编译成通过处理器可读的格式,例如通过使用其合适的编译器。编译器当然可以由处理器本身执行,或者甚至可以形成处理器本身的一部分以进行实时编译。在本文中还设想了提供一个或多个计算机程序产品。每个这样的计算机程序产品包括其上存储一个或多个上述计算机程序的计算机可读存储介质。例如,一个计算机程序产品可以包括用于执行方法301的计算机程序、用于执行方法302的计算机程序和/或用于执行方法303的计算机程序,如在本文中早前所描述的。如在本公开中在本文中所使用的,(计算机可读)存储介质(例如,“存储器”)例如可以是随机存取存储器(RAM)和只读存储器(ROM)的任意组合。在一些实施例中,计算机可读存储介质可以是暂时性的(例如,由处理器可读的电信号)。在其它实施例中,计算机可读存储介质可以是非暂时性的(例如非易失性存储器的形式,诸如硬盘驱动器(HDD)、固态驱动器(SSD)、安全数字(SD)卡或类似物、USB闪存驱动器、或者诸如磁存储器、光存储器、固态存储器、或甚至远程安装的存储器的任意组合的类似物)。还设想了其它类型的计算机可读存储介质,只要它们的功能允许存储计算机程序,使得它们可被处理器和/或中间编译器读取。如在本公开中在本文中所使用的,“处理电路”或“处理器”例如可以是能够执行存储在存储器中的软件指令的合适的中央处理单元(CPU)、多处理器、微控制器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)等中的一种或多种的任意组合。
总结在本文中呈现的各种实施例,本公开提供了一种使得能够从例如用户装置对例如网络摄像机进行远程访问的改进的方式。这是因为:a)用户装置(例如,膝上型计算机)将包括“个人的”某事物(例如用户装置的公钥(的指纹))的数据项提供到用户装置;b)数据项被由网络摄像机信任的网络服务签名,使得SIGS可以不在网络摄像机不知情的情况下篡改数据项;c)作为网络摄像机与用户装置之间的对等连接的条款的协商的一部分,用户装置尝试经由SIGS将签名的数据项传输到网络摄像机,以及d)由于数据项包括用户装置的个人的某事物,网络摄像机可以使用该个人的某事物来验证SIGS在协商期间尚未尝试篡改中继的消息以执行MITM攻击。这是因为用户装置的公钥可以被用户装置用于例如i)对在协商期间传输到网络摄像机的用于联系用户装置的提出的网络地址签名,使得网络摄像机可以注意到该网络地址是否已经被SIGS篡改,和/或用于ii)对对等连接进行加密,使得网络装置可以知道其接收作为协商的一部分的、从提出的网络地址提供的公钥是否真的是用户装置的公钥,而不是例如SIGS的公钥。在本文中设想的这些各种的解决方案提供了一种简单的方式来避免通过SIGS进行的潜在MITM攻击,而不需要对网络摄像机和/或用户装置进行任何实质性修改。
尽管特征和元件在上面可以以特定的组合进行描述,但是每个特征或元件可以在没有其它特征和元件的情况下被单独使用,或者在有或没有其它特征和元件的情况下以各种组合被使用。此外,本领域技术人员在实践要求保护的发明时,通过对附图、公开内容和所附权利要求的研究,可以理解和实现对所公开的实施例的变型。
在权利要求中,词语“包括”和“包含”不排除其它元件,并且词“一个”不排除多个。某些特征在互不相同的从属权利要求中被叙述的单单的事实不指示这些特征的组合不能被有利地使用。
附图标记的列表
110、210 第一网络装置(网络摄像机)
120、220 第二网络装置(膝上型计算机、用户装置)
130 第一LAN
131 第二LAN
132、133 第一防火墙和第二防火墙
134、135 第一NAT装置和第二NAT装置
136 公共网络(例如,因特网)
140、240 第一网络装置与第二网络装置之间的对等(P2P)连接
141、142 与SIGS的恶意P2P连接
150、250 信令服务(SIGS)
200 网络系统
230 处理器
232 存储器
234 网络接口
236 附加项
238 通讯总线
260 信任的网络服务
300 消息流
301 执行在网络系统中/由网络系统执行的方法
302 执行在第一网络装置中/由第一网络装置执行的方法
303 执行在第二网络装置中/由第二网络装置执行的方法
321 数据项
322 签名
323、323' 第一签名的数据项和第二签名的数据项
324、324' 第一网络地址和第二网络地址
330 协商消息
332 从第二网络装置到SIGS的消息
332' 从SIGS到第一网络装置的消息
334 从第一网络装置到SIGS的消息
334' 从SIGS到第二网络装置的消息

Claims (15)

1.一种使得能够从第二网络装置对第一网络装置进行远程网络访问的方法,包括下述步骤:
a)所述第二网络装置生成包括所述第二网络装置的公钥和所述公钥的指纹中的至少一个的数据项;
b)所述第二网络装置使用网络服务对所述数据项进行密码签名以生成对应的第一签名的数据项,其中,被所述网络服务签名的所述第一签名的数据项能够由所述第一网络装置验证;
c)所述第一网络装置和所述第二网络装置经由中间信令服务SIGS执行用于建立对等连接的条款的协商,包括所述第二网络装置在一个或多个消息中将所述第一签名的数据项和用于连接到所述第二网络装置的第一网络地址发送到所述SIGS,并且包括所述第一网络装置在一个或多个消息中从所述SIGS接收第二签名的数据项和第二网络地址;以及
d)所述第一网络装置使得能够使用协商的所述条款通过所述对等连接从所述第二网络地址进行所述远程网络访问,首先在以下步骤之后:
d-i)验证所述第二签名的数据项被所述网络服务签名,以及
d-ii)使用所述第二签名的数据项验证所述第二网络地址是所述第一网络地址并且尚未被所述SIGS篡改。
2.根据权利要求1所述的方法,其中,步骤d)包括所述第一网络装置参与对使用从所述第二网络地址接收的公钥对所述对等连接进行加密的尝试,并且其中,步骤d-ii)包括所述第一网络装置验证从所述第二网络地址接收的所述公钥和/或从所述第二网络地址接收的所述公钥的指纹包括在从所述SIGS接收的所述第二签名的数据项中。
3.根据权利要求2所述的方法,其中,所述加密使用数据报传输层安全协议DTLS来执行,并且其中,从所述第二网络地址接收的所述公钥是DTLS公钥。
4.根据权利要求1所述的方法,包括所述第二网络装置使用与所述第二网络装置的第二公钥相关联的私钥对发送到所述SIGS的所述一个或多个消息的至少一部分和/或发送到所述SIGS的所述一个或多个消息的所述至少一部分的指纹中的至少一部分进行签名,并且其中,步骤d-ii)包括所述第一网络装置验证从所述SIGS接收的所述一个或多个消息的至少一部分和/或从SIGS接收的所述一个或多个消息的所述至少一部分的指纹中的至少一部分已经使用与包括在所述第二签名的数据项中的公钥相关联的私钥进行了签名。
5.根据权利要求1所述的方法,包括使用Web实时连接WebRTC提供所述远程网络访问,其中,所述一个或多个消息至少包括会话描述协议SDP、回答和/或提议,并且所述第一网络地址是交互式连接建立ICE候选。
6.根据权利要求5所述的方法,其中,所述数据项是访问令牌、包括所述访问令牌或由所述访问令牌补充,所述访问令牌由所述网络服务提供并且也被所述网络服务签名,以授权和/或认证所述第二网络装置,并且其中,步骤d)包括所述第一网络装置验证所述访问令牌是从所述SIGS接收的所述第二签名的数据项、包括在从所述SIGS接收的所述第二签名的数据项中或补充从所述SIGS接收的所述第二签名的数据项。
7.一种网络装置,包括:
处理器;以及
存储器,存储指令,当所述指令由所述处理器执行时使所述网络装置:
经由中间信令服务SIGS协商所述网络装置与第二网络装置之间的对等连接的条款,包括在一个或多个消息中从所述SIGS接收签名的数据项和网络地址,以及
使得能够使用协商的所述条款通过所述对等连接从所述网络地址进行远程网络访问,包括首先:
验证从所述SIGS接收的所述签名的数据项被由所述网络装置信任的网络服务签名,以及
使用从所述SIGS接收的所述签名的数据项验证从所述SIGS接收的所述网络地址尚未被所述SIGS篡改。
8.根据权利要求7所述的网络装置,其中,所述指令进一步使所述网络装置参与对使用从所述网络地址接收的公钥对所述对等连接进行加密的尝试,并且在还首先验证从所述网络地址接收的所述公钥和/或从所述网络地址接收的所述公钥的指纹包括在从所述SIGS接收的所述签名的数据项中之后,允许从所述网络地址进行所述远程网络访问。
9.根据权利要求7所述的网络装置,其中,所述指令进一步使所述网络装置验证包括所述网络地址的从所述SIGS接收的所述一个或多个消息的至少一部分和/或包括所述网络地址的从所述SIGS接收的所述一个或多个消息的所述至少一部分的指纹已经使用与包括在从所述SIGS接收的所述签名的数据项中的公钥相关联的私钥进行了签名。
10.一种网络装置,包括:
处理器,以及
存储器,存储指令,当所述指令由所述处理器执行时使所述网络装置:
生成包括所述网络装置的公钥和所述公钥的指纹中的至少一个的数据项;
使用网络服务对所述数据项进行密码签名,以生成对应的签名的数据项,其中,被所述网络服务签名的所述签名的数据项能够由所述第二网络装置验证;
经由中间信令服务SIGS协商所述网络装置与所述第二网络装置之间的对等连接的条款,包括在一个或多个消息中将所述签名的数据项和用于联系所述网络装置的网络地址发送到所述SIGS。
11.根据权利要求10所述的网络装置,其中,所述指令进一步使所述网络装置参与对使用所述公钥对所述对等连接进行加密的尝试。
12.根据权利要求10所述的网络装置,其中,所述指令进一步使所述网络装置使用与所述公钥相关联的私钥对包括所述网络地址的所述一个或多个消息的至少一部分进行签名,和/或对包括所述网络地址的所述一个或多个消息的所述至少一部分的指纹进行签名。
13.根据权利要求10所述的网络装置,其中,所述指令进一步使所述网络装置使用所述网络服务来让所述签名的数据项是被所述网络服务签名的访问令牌、包括被所述网络服务签名的所述访问令牌、由被所述网络服务签名的所述访问令牌补充,以向所述第二网络装置授权和/或认证所述网络装置。
14.一种网络系统,包括第一网络装置和第二网络装置,并且被配置为根据权利要求1所述的方法使得能够从所述第二网络装置对所述第一网络装置进行远程网络访问。
15.根据权利要求14所述的网络系统,其中,所述第一网络装置是网络摄像机,并且其中,所述远程访问包括将视频馈送从所述网络摄像机流式传输到所述第二网络装置。
CN202211584240.1A 2021-12-14 2022-12-09 具有中间人攻击防止的远程访问 Pending CN116264525A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP21214231.9A EP4199417A1 (en) 2021-12-14 2021-12-14 Remote access with man-in-the-middle attack-prevention
EP21214231.9 2021-12-14

Publications (1)

Publication Number Publication Date
CN116264525A true CN116264525A (zh) 2023-06-16

Family

ID=78851219

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211584240.1A Pending CN116264525A (zh) 2021-12-14 2022-12-09 具有中间人攻击防止的远程访问

Country Status (6)

Country Link
US (1) US20230188562A1 (zh)
EP (1) EP4199417A1 (zh)
JP (1) JP2023088290A (zh)
KR (1) KR20230090231A (zh)
CN (1) CN116264525A (zh)
TW (1) TW202335460A (zh)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015115893A (ja) * 2013-12-13 2015-06-22 富士通株式会社 通信方法、通信プログラム、および中継装置
GB2529864A (en) * 2014-09-04 2016-03-09 Westhawk Ltd Secure communication method
US10298404B1 (en) * 2014-12-12 2019-05-21 Amazon Technologies, Inc. Certificate echoing for session security
US11151229B1 (en) * 2020-04-10 2021-10-19 Avila Technology, LLC Secure messaging service with digital rights management using blockchain technology

Also Published As

Publication number Publication date
TW202335460A (zh) 2023-09-01
KR20230090231A (ko) 2023-06-21
US20230188562A1 (en) 2023-06-15
JP2023088290A (ja) 2023-06-26
EP4199417A1 (en) 2023-06-21

Similar Documents

Publication Publication Date Title
US9398026B1 (en) Method for authenticated communications incorporating intermediary appliances
US8788805B2 (en) Application-level service access to encrypted data streams
US8364772B1 (en) System, device and method for dynamically securing instant messages
CN107113319B (zh) 一种虚拟网络计算认证中应答的方法、装置、系统和代理服务器
CN107147611B (zh) 传输层安全tls建链的方法、用户设备、服务器和系统
JP5334104B2 (ja) 全交換セッションセキュリティ
EP1267548A2 (en) Method and system for integrating security mechanisms into session initiation protocol request messages for client-proxy authentication
US9882897B2 (en) Method and system for transmitting and receiving data, method and device for processing message
CN112714053B (zh) 通信连接方法及装置
CN102217270A (zh) 使用认证令牌来授权防火墙打开针孔
WO2023241176A1 (zh) 通信方法、装置、设备、存储介质及程序产品
US20180262352A1 (en) Secure Authentication of Remote Equipment
US11546305B2 (en) Methods and systems for secure DNS routing
CN113904809A (zh) 一种通信方法、装置、电子设备及存储介质
CN110855561A (zh) 一种物联网智能网关
KR101089269B1 (ko) 보안 기능을 제공하는 안전한 에스아이피 프로토콜을 이용한 공격 탐지 방법 및 시스템
JP4025734B2 (ja) 端末間の暗号化通信チャネルを構築するためのセッション管理装置、方法及びプログラム
CN116264525A (zh) 具有中间人攻击防止的远程访问
CN113596004A (zh) 多方安全计算中的身份认证方法和装置
Janak et al. An Analysis of Amazon Echo's Network Behavior
CN110995730A (zh) 数据传输方法、装置、代理服务器和代理服务器集群
JP4583424B2 (ja) 端末間の暗号化通信チャネルを構築するためのセッション管理装置、方法及びプログラム
WO2016141513A1 (zh) 业务处理方法及装置
EP3780535A1 (en) Process to establish a communication channel between a client and a server
JP2005229435A (ja) リゾルバをアプリケーションとは別に備えた端末及びリゾルバプログラム

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication