JP2023088290A - 中間者攻撃防止を伴うリモートアクセス - Google Patents

中間者攻撃防止を伴うリモートアクセス Download PDF

Info

Publication number
JP2023088290A
JP2023088290A JP2022195321A JP2022195321A JP2023088290A JP 2023088290 A JP2023088290 A JP 2023088290A JP 2022195321 A JP2022195321 A JP 2022195321A JP 2022195321 A JP2022195321 A JP 2022195321A JP 2023088290 A JP2023088290 A JP 2023088290A
Authority
JP
Japan
Prior art keywords
network
network device
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
JP2022195321A
Other languages
English (en)
Inventor
ヨナス クレモン,
Cremon Jonas
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 JP2023088290A publication Critical patent/JP2023088290A/ja
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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Multimedia (AREA)
  • General Business, Economics & Management (AREA)
  • Business, Economics & Management (AREA)
  • Power Engineering (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

Abstract

【課題】第2のネットワークデバイス(ネットワークカメラ)から第1のネットワークデバイス(ラップトップ)へのリモートアクセスを可能にする方法、ネットワークデバイス及びネットワークシステムを提供する。【解決手段】方法は、ネットワークカメラ220が、ラップトップ210によって信頼されているネットワークサービスによって署名され、ネットワークカメラの公開鍵(の指紋)を含むデータ項目321を生成する。署名付きデータ項目323は、ピアツーピア接続340のための条件のネゴシエーションの一部として、シグナリングサービス(SIGS)250を介してラップトップに送信される。ラップトップは、受信した署名付きデータ項目323’を使用して、SIGSが中間者攻撃を実行するのを防止するために、SIGSから受信した条件324’が、SIGSによって改ざんされていないことを検証する。【選択図】図3A

Description

本開示は、リモートネットワークアクセスの分野に関する。詳細には、本開示は、例えばウェブリアルタイムコネクト(WebRTC)で使用されるように、中間シグナリングサービスを使用して2つのネットワークデバイス間のピアツーピア接続をネゴシエーションするときのリモートネットワークアクセスのセキュリティ保護に関する。
インターネットの複雑さのために、異なるネットワーク上に位置する2つのネットワークデバイスは、常に必ずしも中間シグナリングサービスを使用せずに互いに接続する方法を知っているとは限らない場合がある。例えば、両方のネットワークデバイスがすでに同じシグナリングサービスに接続されているが、互いに接続されていない場合、2つのネットワークデバイス間でネットワーク接続情報を中継するためにシグナリングサービスが使用されてもよく、その結果、2つのデバイスは、それら自体のピアツーピア接続の条件をネゴシエーションし、最終的にそれを確立することができる。
しかしながら、中間シグナリングサービスは、いわゆる中間者(MITM)攻撃のための攻撃対象領域の一部を形成する可能性がある。シグナリングサービスが第三者によって危険にさらされている場合、ネットワークデバイス間で中継されるネットワーク接続情報は、例えば、一方のデバイスが他方のネットワークデバイスに直接接続するのではなく、第三者によって制御されるネットワークポイントにだまされて接続するように改ざんされている可能性があり、実際には他方のネットワークデバイスに直接接続していると依然として信じている。そうすることにより、2つのネットワークデバイス間のそう思われているピアツーピア接続は、シグナリングサービスを介して秘密に中継される場合があり、第三者は、次いで、ネットワークデバイス間で送信された潜在的に機密性の高いデータにアクセスするか、またはそれを変更することさえできる。
上記の1つの実例は、例えば、WebRTCを使用してネットワークカメラにリモートアクセスしようと試みるユーザであってもよく、直接ピアツーピア接続を確立することができる前にユーザとネットワークカメラとの間でデータを交換するためにシグナリングサービスがしばしば必要とされる。シグナリングサービスに不正アクセスすることにより、第三者は、ネットワークカメラまたはユーザのいずれも進行中の侵入に気付かずに、例えばカメラからのビデオフィードにアクセスすることができる。
ピアツーピア接続を確立するために中間シグナリングサービスに依存するときの潜在的なMITM攻撃の上記の識別された問題を少なくとも部分的に解決するために、本開示は、添付の独立請求項において定義されるように、第2のネットワークデバイスから第1のネットワークデバイスへのリモートネットワークアクセスを可能にする改善された方法、様々な改善されたネットワークデバイス、ならびに改善されたネットワークシステムを提供する。他の態様はまた、様々な改善されたコンピュータプログラムおよびコンピュータプログラム製品を提供する。様々な代替実施形態が従属請求項において定義される。
本開示の第1の態様によれば、第2のネットワークデバイスから第1のネットワークデバイスへのリモートネットワークアクセスを可能にする方法が提供される。方法は、第2のネットワークデバイスが第2のネットワークデバイスの公開鍵および公開鍵の指紋のうちの少なくとも一方を含むデータ項目を生成するステップa)を含む。方法は、第2のネットワークデバイスがネットワークサービスを使用して、対応する第1の署名付きデータ項目を生成するためにデータ項目に暗号化署名するステップb)を含み、第1の署名付きデータ項目がネットワークサービスによって署名されていることは、第1のネットワークデバイスによって検証可能である。方法は、第1のネットワークデバイスおよび第2のネットワークデバイスが、中間シグナリングサービス(SIGS)を介して、(第1のネットワークデバイスと第2のネットワークデバイスとの間の)ピアツーピア接続を確立するための条件のネゴシエーションを実行するステップc)を含み、第2のネットワークデバイスが、SIGSへの1つまたは複数のメッセージ内で、第1の署名付きデータ項目、および第2のネットワークデバイスに連絡するための第1のネットワークアドレスを送信することを含む。ネゴシエーションは、第1のネットワークデバイスが、SIGSからの1つまたは複数のメッセージ内で、第2の署名付きデータ項目および第2のネットワークアドレスを受信することをさらに含む。方法は、第1のネットワークデバイスが、ネゴシエーションされた条件を使用してピアツーピア接続を介して第2のネットワークアドレスからのリモートネットワークアクセスを可能にするステップd)をさらに含むが、最初にd-i)(SIGSから受信された)第2の署名付きデータ項目がネットワークサービスによって署名されていることを検証すること、およびd-ii)第2の署名付きデータ項目を使用して、(SIGSから受信された)第2のネットワークアドレスが第2のネットワークデバイスから生じ(すなわち、第2のネットワークデバイスに連絡するための第1のネットワークアドレスであり)、SIGSによって改ざんされていないことを検証することの後に限る。
本明細書で使用される何か(例えば、メッセージ)の「指紋」は、例えば、メッセージに加えられた特定のハッシュ関数の結果であってもよい。一般に、「指紋」は、指紋およびメッセージが知られると、メッセージから生じるものとして容易に確認/検査され得る何かであると考えられるが、その結果、メッセージは指紋のみから取り出されない場合がある。
本明細書で使用される2つのネットワークデバイス間のピアツーピア接続は、直接または間接のいずれかであり得、後者は、例えば、中間ネットワークアドレス変換(NAT)および/またはファイアウォールサーバの存在のために、ネットワークデバイス間の直接経路を確立することができない場合、1つまたは複数の中間プロキシサーバを使用してピアツーピア接続を確立する可能性を含む。そのような中間プロキシサーバは、例えば、いわゆるNAT周辺のリレーを使用するトラバーサル(TURN)サーバなどであってもよい。別の言い方をすれば、「直接」は「可能な限り直接」と解釈されるべきである。しかしながら、本明細書で使用される真のピアツーピア接続は、ピアツーピア接続が確立されると、SIGSを介してその任意のデータを送信することを必要としないと考えられるが、SIGSによって実行されるMITM攻撃が成功すると、そのような真のピアツーピア接続が依然として適切に確立されていると2つのネットワークデバイスが誤って信じることになる可能性がある。ネットワークサービスは、例えば、第1のネットワークデバイスによって信頼されている第三者によって提供されるサービスであってもよい。ここで、「信頼されている」は、例えば、第1のネットワークデバイスが少なくともネットワークサービスの公開鍵にアクセスすること、およびネットワークサービスが対応する秘密鍵を使用して(メッセージ、または例えばメッセージの指紋などの)データ項目に署名することを含んでもよい。そうすることにより、第1のネットワークデバイスは、データ項目、その署名、および公開鍵が一致することを検証することにより、受信された署名付きデータ項目が実際にネットワークサービスによって署名されていることを確認することができる。そのような公開鍵暗号/署名システムの例には、例えば、Rivest-Shamir-Adleman(RSA)によるもの、および楕円曲線暗号(ECC)のものがあるが、他の同等または同様のシステムも当然使用されてもよい。
本明細書では、ネットワークアドレスが「第2のネットワークデバイスから生じる」ということは、ネットワークアドレスが、ピアツーピア接続のための条件のネゴシエーション中に元々第2のネットワークデバイスによって提案されたのと同じネットワークアドレス(例えば、第2のネットワークデバイスに連絡するためのネットワークアドレス)であると理解されるべきである。特許請求の範囲の文言を使用すると、これは、(第1のネットワークデバイスがSIGSから受信する)第2のネットワークアドレスが、(第2のネットワークデバイスがSIGSに送信する)第1のネットワークアドレスであることを意味する。ネットワークアドレスは、第2のネットワークデバイスを直接指す必要はないが、例えば、第2のネットワークデバイスに向かう経路上のネットワークノードのアドレスであってもよい。しかしながら、ネットワークアドレスは、「第2のネットワークデバイスから生じる」ために、例えば、SIGSまたはMITM攻撃を実行するために使用されるSIGSによって制御される任意のネットワークノードのアドレスであるべきではないことが想定される。
方法の本開示は、第2のネットワークデバイスの「個人所有」(すなわち、公開鍵)が署名され、ピアツーピア接続のための条件ネゴシエーションの一部として第1のネットワークデバイスに提供されるという点で、既存の技術を改良する。署名は第1のネットワークデバイスによって検証され得るので、SIGSは、第2のネットワークデバイスの公開鍵(または公開鍵の指紋)を含むデータ項目を改ざんすることができない。したがって、公開鍵は、例えば、第2のネットワークデバイスに接続するために第1のネットワークデバイスに提案されたネットワークアドレスを含む、ピアツーピア接続のネゴシエーションされた条件をSIGSが改ざんしようと試みていないことも検証するために使用することができる。これは、第1のネットワークデバイスまたは第2のネットワークデバイスのいずれかに対するいかなる実質的な修正も必要とせずに、SIGSがMITM攻撃を実行することを防止する容易な方法を提供する。第1のネットワークデバイスは、事前にインストールされた証明書を使用することにより、例えば、検証が実行された時点で、別のサーバと確立されたいかなる接続も必要とせずに、例えばネットワークサービスの署名の検証を実行することができる。
方法のいくつかの実施形態では、ステップd)の上のステップは、第1のネットワークデバイスが、第2のネットワークアドレスから受信された公開鍵を使用してピアツーピア接続を暗号化する試みに参加することを含んでもよく、上記のステップd-i)は、第1のネットワークデバイスが、第2のネットワークアドレスから受信された公開鍵、および/または第2のネットワークアドレスから受信された公開鍵の指紋がSIGSから受信された第2の署名付きデータ項目に含まれる(例えば、第2のネットワークデバイスの公開鍵である)ことを検証することを含んでもよい。これは、暗号化の目的で第2のネットワークデバイスに利用可能な公開鍵がすでに存在するという点、および(さらなる公開鍵/秘密鍵のペアを生成する必要なしに)MITM攻撃を防ぐためにもこの公開鍵を使用することができるという点で有益であり得る。
方法のいくつかの実施形態では、セッションを暗号化することは、データグラムトランスポートレイヤセキュリティ(DTLS)を使用して実行されてもよい。第2のネットワークアドレスから受信される公開鍵は、例えば、DTLS公開鍵であってもよい。
方法のいくつかの実施形態では、方法は、第2のネットワークデバイスが、第2のネットワークデバイスの第2の公開鍵に関連付けられた秘密鍵を使用して、(例えば、第1のネットワークアドレスを含む)1つもしくは複数のメッセージの少なくとも一部、および/または(例えば、第1のネットワークアドレスを含む)SIGSに送信された1つもしくは複数のメッセージの少なくとも一部の指紋に署名することを含んでもよい。上記のステップd-ii)は、第1のネットワークデバイスが、(例えば、第2のネットワークアドレスを含む)SIGSから受信された1つまたは複数のメッセージの少なくとも一部、および/または(例えば、第2のネットワークアドレスを含む)SIGSから受信された1つもしくは複数のメッセージの少なくとも一部の指紋が第2の署名付きデータ項目に含まれる公開鍵に関連付けられた秘密鍵を使用して署名されていることを検証することを含んでもよい。第2のネットワークデバイスの第2の公開鍵は、例えば、署名付きデータ項目に含まれる第2のネットワークデバイスの公開鍵であってもよい。署名付きデータ項目が第2のネットワークデバイスの複数の公開鍵を含むことも想定され得、例えば、1つのそのような鍵は、ピアツーピア接続を暗号化するために使用され、別のそのような鍵は、(例えば、第1のネットワークアドレスを含む)SIGSに送信された1つまたは複数のメッセージの少なくとも一部に署名するために使用される。
方法のいくつかの実施形態では、方法は、ウェブリアルタイムコネクト(W3Cによって推奨および公開されているWebRTC)を使用してリモートネットワークアクセスを提供することを含んでもよい。1つまたは複数のメッセージは、少なくともセッション記述プロトコル(SDP)の回答および/または申入れを含んでもよい。(第2のネットワークデバイスに連絡するための)ネットワークアドレスは、例えば、1つまたは複数のNATをどのようにトラバースするかをネゴシエーションするときに使用される、相互接続確立(ICE)候補であってもよい。
方法のいくつかの実施形態では、データ項目はまた、第2のネットワークデバイスを認可および/または認証するために、ネットワークサービスによって提供され署名もされたアクセストークンであってもよく、それを含んでもよく、それによって補完されてもよい。上記のステップd)は、第1のネットワークデバイスが、アクセストークンがSIGSから受信された第2の署名付きデータ項目であるか、それに含まれるか、またはそれを補完することを検証することを含んでもよい。これは、例えば、(ネットワークサービスを信頼する)第1のネットワークデバイスが、第2のネットワークデバイスが第1のネットワークデバイスに全く、または少なくともどの範囲までリモートアクセスできるべきかどうかを知るのに役立つことができる。ここで、「によって補完される」は、アクセストークンおよびデータ項目が2つの別々に署名された項目として提供されるオプションとして理解されるべきである。
本開示の第2の態様によれば、ネットワークデバイスが提供される。このネットワークデバイスは、例えば、ネットワークカメラなどであってもよい。ネットワークデバイスは、プロセッサおよびメモリを含む。メモリは命令を記憶する。命令は、プロセッサによって実行されると、中間シグナリングサービス(SIGS)を介して、ネットワークデバイスと(例えば、ネットワークデバイスにアクセスしようとしているユーザデバイスであり得る)第2のネットワークデバイスとの間のピアツーピア接続のための条件をネットワークデバイスにネゴシエーションさせ、SIGSからの1つまたは複数のメッセージ内で、署名付きデータ項目および(第2のネットワークデバイスに連絡するためとされる)ネットワークアドレスをネットワークデバイスに受信させることを含む。命令は、ネゴシエーションされた条件を使用してピアツーピア接続を介してネットワークアドレスからのリモートネットワークアクセスをネットワークデバイスにさらに可能/有効にさせるが、最初にi)SIGSから受信された署名付きデータ項目がネットワークサービスによって信頼されている特定のネットワークサービスによって署名されていることを検証すること、およびまたii)SIGSから受信された署名付きデータ項目を使用して、SIGSから受信されたネットワークアドレスが、SIGSによって改ざんされていない(例えば、第2のネットワークデバイスに連絡するためのネットワークアドレスである)ことを検証することをネットワークデバイスに行わせることを含む。
ネットワークデバイスのいくつかの実施形態では、命令はさらに、ネットワークアドレスから受信された公開鍵を使用してピアツーピア接続を暗号化する試みにネットワークデバイスを参加させ、最初にまたネットワークアドレスから受信された公開鍵、および/またはネットワークアドレスから受信された公開鍵の指紋がSIGSから受信された署名付きデータ項目に含まれることを検証した後に、ネットワークアドレスからのリモートネットワークアクセスをネットワークデバイスに可能にさせることができる。
ネットワークデバイスのいくつかの実施形態では、命令はさらに、ネットワークアドレスを含むSIGSから受信された1つもしくは複数のメッセージの少なくとも一部、および/またはネットワークアドレスを含むSIGSから受信された1つもしくは複数のメッセージの少なくとも一部の指紋が、SIGSから受信された署名付きデータ項目に含まれる公開鍵に関連付けられた秘密鍵を使用して署名されていることをネットワークデバイスに検証させることができる。
本開示の第3の態様によれば、別のネットワークデバイスが提供される。この他のネットワークデバイスは、例えば、スマートフォン、ラップトップ、デスクトップコンピュータ、タブレット、ウェアラブルデバイスなどの、ネットワークカメラにリモートアクセスするために使用されるユーザデバイスであってもよい。ネットワークデバイスは、プロセッサおよびメモリを含む。メモリは命令を記憶する。命令は、プロセッサ上で実行されると、ネットワークデバイスの公開鍵および公開鍵の指紋のうちの少なくとも一方を含むデータ項目をネットワークデバイスに生成させる。命令はさらに、ネットワークサービスを使用して、対応する署名付きデータ項目を生成するためにデータ項目に暗号化署名することをネットワークデバイスに行わせ、署名付きデータ項目がネットワークサービスによって署名されていることは、第2のネットワークデバイス(例えば、ネットワークカメラ)によって検証可能である。ネットワークサービスは、第2のネットワークデバイスによって信頼されている。命令はさらに、中間シグナリングサービス(SIGS)を介して、ネットワークデバイスと第2のネットワークデバイスとの間のピアツーピア接続のための条件をネットワークデバイスにネゴシエーションさせ、SIGSへの1つまたは複数のメッセージ内で、署名付きデータ項目および(例えば、STUNサーバなどを使用して取得された)ネットワークデバイスに連絡するためのネットワークアドレスをネットワークデバイスに送信させることを含む。
ネットワークデバイスのいくつかの実施形態では、命令はさらに、公開鍵を使用してピアツーピア接続を暗号化する試みにネットワークデバイスを参加させることができる。
ネットワークデバイスのいくつかの実施形態では、命令はさらに、公開鍵に関連付けられた秘密鍵を使用して、ネットワークアドレスを含む1つもしくは複数のメッセージの少なくとも一部に署名すること、および/またはネットワークアドレスを含む1つもしくは複数のメッセージの少なくとも一部の指紋に署名することをネットワークデバイスに行わせることができる。
ネットワークデバイスのいくつかの実施形態では、命令はさらに、ネットワークサービスを使用して、ネットワークデバイスを第2のネットワークデバイスに対して認可および/または認証するためにネットワークサービスによって署名されたアクセストークンであるか、それを含むか、またはそれによって補完される署名付きデータ項目をネットワークデバイスに使用させることができる。
本開示の第4の態様によれば、ネットワークシステムが提供される。ネットワークシステムは、(例えば、第2の態様によるネットワークデバイスなどの)第1のネットワークデバイスおよび(例えば、第3の態様によるネットワークデバイスなどの)第2のネットワークデバイスを含む。ネットワークシステムは、第1の態様による方法に従って、第2のネットワークデバイスから第1のネットワークデバイスへのリモートアクセスを可能にするように構成される。
ネットワークシステムのいくつかの実施形態では、第1のネットワークデバイスはネットワークカメラであってもよい。リモートネットワークアクセスは、ネットワークカメラから第2のネットワークデバイスへのビデオフィードをストリーミングすることを含んでもよい。
第5の態様によれば、1つまたは複数のコンピュータプログラムが提供される。コンピュータプログラムは、各々、例えば第2および/または第3の態様によるネットワークデバイスのプロセッサによって実行されると、第1の態様の方法の関連部分をネットワークデバイスに実行させるように構成される。
第6の態様によれば、1つまたは複数のコンピュータプログラム製品が提供される。各コンピュータプログラム製品は、第5の態様による1つまたは複数のコンピュータプログラムが記憶されたコンピュータ可読記憶媒体を含む。
本開示の他の目的および利点は、以下の発明を実施するための形態、図面、および特許請求の範囲から明らかになるであろう。本開示の範囲内で、例えば第1の態様の方法を参照して記載されたすべての特徴および利点が、第2の態様のネットワークデバイス、第3の態様のネットワークデバイス、第4の態様のネットワークシステム、第5の態様のコンピュータプログラム、および/または第6の態様のコンピュータプログラム製品を参照して記載された任意の特徴および利点にも関連し、適用され、それらと組み合わせて使用されてもよく、逆もまた同様であることが想定される。
ここで、添付の図面を参照して、例示的な実施形態が記載される。
中間シグナリングサービス(SIGS)を使用する従来のネットワークシステムのセットアップを概略的に示す図である。 中間シグナリングサービス(SIGS)を使用する従来のネットワークシステムのセットアップを概略的に示す図である。 中間シグナリングサービス(SIGS)を使用する従来のネットワークシステムのセットアップを概略的に示す図である。 本開示による、中間SIGSを使用するネットワークシステムのセットアップの実施形態を概略的に示す図である。 本開示による、ネットワークデバイスの実施形態を概略的に示す図である。 本開示による、方法の実施形態におけるメッセージのフローを概略的に示す図である。 本開示による、方法の実施形態のフローを概略的に示す図である。 本開示による、方法の実施形態のフローを概略的に示す図である。 本開示による、方法の実施形態のフローを概略的に示す図である。 本開示による、方法の実施形態のフローを概略的に示す図である。 本開示による、方法の実施形態のフローを概略的に示す図である。
図面において、特に明記しない限り、同様の参照番号は同様の要素に使用される。反対のことが明示的に述べられていない限り、図面は、例示的な実施形態を示すために必要な要素のみを示しているが、他の要素は、明確にするために省略されるか、または示唆されるだけでもよい。図に示されたように、要素および領域の(絶対的または相対的な)サイズは、例示目的のためにそれらの真値に対して誇張または過小評価される場合があり、したがって、実施形態の一般構造を示すために提供される。
図1Aは、2つのネットワークデバイスが、単独で(直接)ピアツーピア接続を確立することが困難であり得る状況を概略的に示す。第1のネットワークデバイス110および第2のネットワークデバイス120は、例えば第1のネットワークデバイス110の構成を実行するために、かつ/または例えば第1のネットワークデバイス110からデータストリームを受信するために、第2のネットワークデバイス120が第1のネットワークデバイス110にリモートアクセスすることができるように、ピアツーピア接続140を確立することを望む。本明細書で使用される「第1のネットワークデバイス」(例えば、第1のネットワークデバイス110)は、例えば監視および/または偵察に使用されるネットワークカメラであると仮定し、「第2のネットワークデバイス」(例えば、第2のネットワークデバイス120)は、ラップトップの形態のユーザデバイスであると仮定する。当然、(ラップトップの代わりにデスクトップコンピュータ、スマートフォン、タブレット、ウェアラブルデバイスなどの)第2のネットワークデバイスの他の例も可能であり、想定されるが、本明細書ではこれ以上示されない。当然、第1のネットワークデバイスも、第2のネットワークデバイスがリモートアクセスを望むことができる任意のネットワーク接続可能デバイスなどの、ネットワークカメラ以外の何かであってもよい。
ネットワークカメラ110は第1のローカルエリアネットワーク(LAN)130上に存在し、ラップトップ120は第2のLAN131上に存在する。そして、2つのLAN130および131は、(例えば、インターネットなどの)共通ネットワーク136を介して接続される。例えばセキュリティおよび/またはネットワークアドレス管理の理由から、第1のLAN130と共通ネットワーク136との間の接続は直接ではなく、代わりに、例えば第1のファイアウォール132および/または第1のネットワークアドレス変換(NAT)デバイス134を介して提供される。第1のファイアウォール132は、例えば、第1のLAN130への(例えば特定のネットワークポート上の)望ましくない着信接続の試みを阻止するのに役立つことができ、第1のNATデバイス134は、例えば、第1のLAN130上で使用されるアドレス空間と共通ネットワーク136上で使用されるアドレス空間との間の着信および発信データパケットのネットワークアドレスを変換/マッピングするのに役立つことができる。これは、例えば、第1のLAN130上のネットワークカメラ110に割り当てられたネットワークアドレスが、例えば、共通ネットワーク136に向かう第1のNAT134のネットワークアドレスとは異なる場合があるためである。同様に、かつ同様の理由で、第2のLAN131は、例えば第2のファイアウォール133および/または第2のNATデバイス135を介して共通ネットワーク136を経由して接続される。
上記のネットワーク構成の結果として、ネットワークカメラ110は、ラップトップ120にどのように連絡するかをそれ自体で知らない場合があり、逆もまた同様である。したがって、ピアツーピア接続140を確立することは、さらなる支援なしには可能でない場合がある。
図1Bは、この問題を解決するための1つの一般的に利用可能な解決策を概略的に示す。ここでは、ネットワークカメラ110とラップトップ120の両方が、各々いわゆるシグナリングサービス(SIGS)150との接続をすでに確立していると仮定する。それにより、ネットワークカメラ110は、接続152を介してSIGS150とメッセージを交換することができ、ラップトップ120は、接続154を介してSIGS150とメッセージを交換することができる。したがって、SIGS150は、ネットワークカメラ110とラップトップ120との間の中継器として機能することができる。例えば、ラップトップ120は、確立された接続154を使用してSIGS150にメッセージを送信することができる。SIGS150は、同じメッセージを受け取り、接続152を使用してそれをさらにネットワークカメラ110に送信することができる。そうすることにより、ネットワークカメラ110およびラップトップ120が互いに直接通信する方法を自身で知らないときでも、ネットワークカメラ110およびラップトップ120は、SIGS150を介して間接的に通信することができる。
ネットワークカメラ110およびラップトップ120は、SIGS150を介して(間接的に)通信することができるので、ネットワークカメラ110およびラップトップ120は、次いで、SIGS150を使用してそのようなピアツーピア接続のための条件のネゴシエーションを実行することにより、直接ピアツーピア接続140を確立するように試みることができる。このネゴシエーションは、例えば、NAT用セッショントラバーサルユーティリティ(STUN、インターネットエンジニアリングタスクフォース、IETFによってRFC5389として公開)、NAT周辺のリレーを使用するトラバース(TURN、IETFによってRFC8656として公開)、相互接続確立(ICE、IETFによってRFC8445として公開)、ICEとのTCP候補(IETFによってRFC6544として公開)などの1つまたは複数の標準化された技法および手順に従い、それらを使用することができる。例えば、ネットワークカメラ110は、第1のNAT134がネットワークカメラ110のユーザデータグラムプロトコル(UDP)に割り当てたどの公開IPアドレスおよびポート番号がリモートホストに流れるかを見つけるために、(図示されていないが、ファイアウォール132、133、およびNAT134、135の外側、例えば共通ネットワーク136上のどこかに位置する)STUNサーバに連絡することができる。次いで、この情報は、ICE候補としてSIGS150を介してラップトップ120に中継されてもよい。同様に、ラップトップ120も、第2のNAT135の構成に関する対応する情報を得るために(潜在的に同じ)STUNサーバに連絡することができ、SIGS150を介してこの情報をネットワークカメラ110に提供することができる。ネットワークカメラ110およびラップトップ120は、相手から受信された情報が有用であるかどうか(すなわち、受信されたアドレス情報を使用して連絡が試みられた場合、相手が応答するか?)をチェックすることができる。そうでない場合、ネットワークカメラ110および/またはラップトップ120は、例えば、STUNサーバを使用して他の代替策を見つけることができ、ネットワークカメラ110とラップトップ120との間の情報は、双方が相手に接続するために有用な情報を受信するまで交換されてもよい。当然、ネゴシエーションのプロセスを潜在的にスピードアップするために、いくつかの妥当なICE候補が同時に一部によって取得され、単一のメッセージの代替策として相手に転送されることも想定され得る。
マルチメディアセッションが望まれる場合、ピアツーピア接続140が確立されると、例えば、ネットワークカメラ110とラップトップ120との間でビデオおよび/またはオーディオを転送するために、そのようなセッションの条件は、例えば、セッション記述プロトコル(SDP、IETFによってRFC8866として公開)を使用してネゴシエーションされてもよく、申入れと対応する回答との交換は、ネットワークカメラ110とラップトップ120の両方に受け入れ可能な条件が合意されるまで実行される。そのようなネゴシエーションは、例えば、ICEネゴシエーションの一部を形成することができ、またはICEネゴシエーションが終了する前または後のいずれかで別々に実行されてもよい。SDPフォーマットされたメッセージは、例えば、ICEネゴシエーションにも使用され得る。
最後に、条件のネゴシエーションの結果、ネットワークカメラ110とラップトップ120の両方が相手との連絡方法を知った後、SIGS150を介して受信された情報は、ネットワークカメラ110とラップトップ120との間の直接ピアツーピア接続140を確立するために使用することができ、例えば、ネットワークカメラ110からラップトップ120にビデオデータを転送するために、かつ/またはネットワークカメラ110へのラップトップ120のリモートアクセスのために、所望のセッションが確立されてもよい。
ピアツーピア接続140を確立するためにSIGS150を使用する方法の上記で概説された手順は可能な一例にすぎず、当業者は、そのような接続のための条件ネゴシエーションのプロセスによく精通しており、他の選択肢も可能であることを理解していることが想定されることに留意されたい。しかしながら、ネットワークカメラ110およびラップトップ120が直接ピアツーピア接続140を確立する準備ができる前に、両者間の中間物としてSIGS150が必要とされることが想定される。また、「直接」ピアツーピア接続は、「可能な限り直接」として解釈されるべきである。ネゴシエーションの結果は、例えば、ネットワークカメラ110とラップトップ120との間の中間物として、(1つもしくは複数のTURNサーバ、または他のタイプのサーバなどの)1つまたは複数の中間プロキシサーバが必要とされることであってもよい。しかしながら、重要なことは、「真の」ピアツーピア接続(直接的であれ間接的であれ)は、ピアツーピア接続140が確立されると、SIGS150のさらなる使用を必要としないことである。しかしながら、当然、SIGS150は、例えば、切断されたピアツーピア接続を再確立するためなどに使用されてもよい。
図1Cは、中間SIGS150を使用する上述された一般的な解決策に伴う潜在的な問題を概略的に示す。図1Cに示された状況では、SIGS150は、例えば、SIGS150内に特定のソフトウェアを導入することによって危険にさらされている、例えば悪意のある者によってハッキングされている。通常、SIGS150は、各着信メッセージから十分な情報を取り出して、メッセージがどのアドレスに中継されることになっているかを判断するだけである。しかしながら、SIGS150は、通常、中継するメッセージの残りの内容には関心がない。しかしながら、危険にさらされた後、SIGS150は、メッセージと干渉し始め、メッセージがさらに受信相手に中継される前に、メッセージ内の一部またはすべての情報を置き換えることさえできる。
例えば、ラップトップ120は、条件ネゴシエーションの一部として、ラップトップ120との(直接)ピアツーピア接続を確立するためにネットワークカメラ110が接続するべき場所に関する情報を含むメッセージをSIGS150に送信することが想定され得る。SIGS150は、このメッセージに気付き、メッセージがさらにネットワークカメラ110に送信される前に、そのようなメッセージ内のラップトップ120の連絡先情報(すなわち、ネットワークアドレス、ポートなど)を自身の情報と置き換えることができる。同じことが、宛先としてラップトップ120を有するネットワークカメラ110からSIGSに送信される任意の同様のメッセージにも当てはまる場合がある。ネットワークカメラ110とラップトップ120との間で中継されるメッセージを改ざんすることにより、SIGS150は、(ラップトップ120と直接ではなく)SIGS150と直接ピアツーピア接続141を確立するようにネットワークカメラ110を欺くことができる。同様に、SIGS150は、(ネットワークカメラ110と直接ではなく)SIGS150と直接ピアツーピア接続142を確立するようにラップトップ120を欺くことができる。次いで、SIGS150は、双方(ネットワークカメラ110およびラップトップ120)が、想定される直接ピアツーピア接続140が実際には存在せず、すべてのデータが代わりにSIGS150を介して送信されることを認識することなく、それらそれぞれのピアツーピア接続141および142が相手と直接であると依然として信じることができるように、一方から他方にすべての着信情報を中継することができる。この手順は、中間者(MITM)攻撃と呼ばれるものであり、SIGS150および悪意のある者が、例えば、ネットワークカメラ110からラップトップ120に送信された(ビデオ監視フィードなどの)機密情報にアクセスすることができるので、有害であり得る。潜在的なMITM攻撃のリスクは、例えば、SIGS150がネットワークカメラ110およびラップトップ120のいずれか一方または両方の所有者によって提供および/または運営されず、代わりにサードパーティサービスが使用される状況では増加する可能性がある。SIGS150を直接制御することができないと、ネットワークカメラ110および/またはラップトップ120の所有者がSIGS150を信頼し、SIGS150が中継するメッセージを改ざんしないことを保証することがより困難になり得る。
本開示は、あるネットワークデバイスから別のネットワークデバイスへのリモートアクセスを確立する改善された方法を提供し、それにより、MITM攻撃に伴う上記の識別された問題を回避することが可能になる。ここで、そのような改善された方法の例示的な実施形態、ならびに想定される改善されたネットワークデバイスおよび改善されたネットワークシステムの例示的な実施形態が、添付の図面の残りの図を参照して以下でより完全に記載される。図面は現在好ましい実施形態を示すが、本発明は、しかしながら、多くの異なる形態で具現化されてもよく、本明細書に記載された実施形態に限定されると解釈されるべきではなく、むしろ、これらの実施形態は完璧さおよび完全さのために提供され、本発明の範囲を当業者に完全に伝達する。
図2Aは、本開示による、ネットワークシステム200の一実施形態を概略的に示す。(ここでもネットワークカメラの形態の)第1のネットワークデバイス210は、ネットワークカメラ210へのラップトップ220のリモートアクセスを可能にするために、(ここでもラップトップの形態の)第2のネットワークデバイス220との(直接)ピアツーピア接続240を確立することを望む。本明細書で前述されたように、ネットワークカメラ210とラップトップ220との間にある1つまたは複数のNAT、ファイアウォール、または同様のアイテム(図示せず)の存在は、ネットワークカメラ210およびラップトップ220が、そのような直接ピアツーピア接続を自ら確立することを妨げる。代わりに、ネットワークカメラ210およびラップトップ220は、ピアツーピア接続の条件がネゴシエーションされている間、メッセージを中継するために中間SIGS250に依存する。ネットワークカメラ210は、SIGS250へのすでに確立された接続252を有し、ラップトップ220は、SIGS250へのすでに確立された接続254を有する。SIGS250は、ネットワークシステム200の一部を形成するようには想定されていないが、その代わりに、必ずしも信頼できるとは限らない可能性がある第三者によって運営される(すなわち、ネットワークカメラ210およびラップトップ220の一方または両方の所有者は、SIGS250が危険にさらされているか否かを知らない)。
想定されるネットワークシステム200は、データ項目に署名するために使用され、少なくともネットワークカメラ210によって信頼されている別のネットワークサービス260の使用を含む。ここで、「信頼されている」は、特定のデータ項目が特定のネットワークサービス260によって署名されているか否かをネットワークカメラ210が知ることができるように、ネットワークサービス260の署名がネットワークカメラ210によって検証され得ることを意味する。これは、例えばネットワークサービス260の公開鍵へのアクセスを有するネットワークカメラ210により、かつネットワークサービス260がデータ項目に署名するために対応する(すなわち、同じキーペアの一部の)秘密鍵を使用するという点で実現することができる。好ましくは、ネットワークサービス260の公開鍵は、事前にネットワークカメラ210に提供されており、署名付きデータ項目と一緒に送信されない。そうすることにより、(署名付きデータ項目を中継するために使用される場合)SIGS250は、ネットワークカメラ210が気付かずにネットワークサービス260の署名を改ざんすることはできず、ネットワークカメラ210は、必ずしもネットワークサービス260へのアクティブなネットワーク接続を必要としない。受信されたデータ項目の署名を検証することにより、ネットワークカメラ210は、署名付きデータ項目の内容がSIGS250によって改ざんされていないことを確認することができる。
図2Bは、本開示による、ネットワークデバイス210、220の様々な実施形態を概略的に示す。各ネットワークデバイスは、少なくともプロセッサ230(または例えば処理回路)およびメモリ232を含む。メモリ232は、プロセッサ230によって実行されると、本明細書で想定される様々な方法のうちの1つに従ってデバイスに実行させる命令を含む(すなわち、記憶する)。例えば、ネットワークデバイスが第1のネットワークデバイス210(例えば、ネットワークカメラ)である場合、メモリ232に記憶された命令は、第1のネットワークデバイス210に、図3Bを参照して本明細書で後述される方法301の1つもしくは複数の実施形態の関連部分を実行させ、かつ/または図3C、図3D、および図3Eを参照して本明細書で後述される方法302の1つもしくは複数の実施形態のステップを実行させることができる。ネットワークデバイスが第2のネットワークデバイス220である場合、メモリ232に記憶された命令は、例えば、第2のネットワークデバイス220に、方法301の1つもしくは複数の実施形態の関連部分を実行させ、かつ/または図3Fを参照して本明細書で後述される方法303の1つもしくは複数の実施形態のステップを実行させることができる。ネットワークデバイス210、220が各々何を実行することになっているかに応じて、それらは、そのような実行に必要な追加アイテム236をさらに含んでもよい。例えば、第1のネットワークデバイス210がネットワークカメラである場合、アイテム236は、例えばカメラおよびそれに関連する電子機器を含んでもよく、メモリ232は、例えばそのようなカメラの機能に関連するプロセッサのための1つまたは複数の命令をさらに記憶することができる。ネットワークデバイスが第2のネットワークデバイス220(例えば、ラップトップ)である場合、追加アイテム236は、例えば、ネットワークカメラから受信されたビデオストリームを視聴するためのモニタ、ユーザ入力を受けるためのキーボードなどを含んでもよい。ネットワークに接続するために、ネットワークデバイス210および220は、例えば、(例えば、IEEE802.11で定義された)Wi-Fiをサポートするワイヤレスインタフェース、および/または(例えば、IEEE802.3で定義された)イーサネットをサポートする有線インタフェースなどであり得るネットワークインタフェース234を含んでもよい。通信バス238は、例えば、様々な部品230、232、234、および236を相互接続するために設けられてもよく、その結果、これらの部品は、所望の機能を取得するために必要に応じて互いに通信することができる。
ここで、本開示による(ネットワークシステム200によって/において実行される、かつ/またはネットワークカメラ210およびラップトップ220の各々において別々に実行される)方法の様々な実施形態が、図3A~図3Fを参照してより詳細に記載される。前述されたように、「第1のネットワークデバイス」および「ネットワークカメラ」という用語は交換可能に使用されるが、反対のことが明示的に述べられていない場合、同じことが「第2のネットワークデバイス」および「ラップトップ」という用語にも当てはまる。
図3Bは、本開示による方法301の一実施形態における様々なステップを概略的に示し、図3Aは、方法301を実行するときのメッセージのフロー300を概略的に示す。本明細書では、「データ項目」は、情報、例えば、メッセージ、データブロブなどを表すビットの集合である。詳細には、方法301のステップS301において、データ項目321がラップトップ220によって取得され(例えば、生成され)、ラップトップ220の公開鍵およびラップトップ220の公開鍵の指紋の一方または両方を含むようにされる。鍵の指紋は、例えば、鍵にハッシュ関数が適用された結果である。本明細書では、「ハッシュ関数」という用語は、その一般的な意味、すなわち、入力を受け取り、(しばしばより小さい)出力を提供する何かを有し、特定の入力が特定の出力を生成することを確認することは容易であるが、出力のみから入力が元々あったものを推論することは困難または不可能である。これは、例えば、指紋が完全な鍵よりもはるかに小さい場合があるという点、および指紋が元々入力された鍵にもはや対応していないときに、誰かまたは何かが指紋を改ざんしようとしている場合に容易に発見され得るという点で有用であり得る。
その公開鍵(および/または公開鍵の指紋)を含むデータ項目321を生成した後に、ラップトップ220は、メッセージ310内で、接続262を使用してネットワークサービス260にデータ項目321を(方法301のステップS302において)送信する。ネットワークサービス260は、データ項目321を含むメッセージ310を受信し、データ項目321に暗号化署名し、少なくとも署名322を含むメッセージ320を返す。他の実施形態では、ネットワークサービス260は、代わりに、メッセージ320内のデータ項目321の署名付きバージョン(すなわち、データ項目321と署名322の両方)を返すことができる。いずれにせよ、ネットワークサービス260からメッセージ320を受信した後に、ラップトップ220は、署名322およびデータ項目321の両方を含む第1の署名付きデータ項目323を所有している。
次いで、中間物としてSIGS250を使用して、ネットワークカメラ210およびラップトップ220は、ネットワークカメラ210とラップトップ220との間のピアツーピア接続を確立するための条件をネゴシエーションすることに進む。SIGS250は、この目的のために、ネットワークカメラ210とラップトップ220との間で複数のメッセージ330を中継するために使用される。ラップトップがそのようなメッセージの最初のメッセージ332を送信するように図3Aに示されているが、その逆も真であり得る。例えば、ラップトップ220が(何らかの他の通信チャネルを使用して)ネットワークカメラ210に連絡し、ラップトップ220に接続要求/申入れを送信することによってネゴシエーションを開始するようにネットワークカメラ210に依頼することができることが想定される。しかしながら、話を進める便宜上、ここでは、接続条件のネゴシエーションを開始するのはラップトップ220であると仮定する。また、ネゴシエーションは、ネットワークカメラ210およびラップトップ220が各々ネゴシエーションが終了する前に複数のメッセージを前後に送信することを含んでもよく、メッセージ332、332’、334、334’は各々複数のメッセージを表すことができると仮定する。しかしながら、説明を容易にするために、図3Aは、各当事者から他の当事者に送信される単一のメッセージのみを示す。また、示されたタイムラインは異なっていてもよい(すなわち、ネットワークカメラ210からのメッセージは、例えば、ラップトップ220からのメッセージの前に送信されてもよく、例えば、ネットワークカメラは、ラップトップ220からの任意のメッセージを受信する前に複数のメッセージを送信してもよく、その逆も同様である)ことが想定されるべきである。別の言い方をすれば、ネゴシエーションは任意の形態をとることができ、メッセージ330は、時間内の任意の特定の配置において、SIGS250を介してネットワークカメラ210とラップトップ220との間で送受信されるメッセージの任意の組合せを含んでもよいことが想定される。その結果、そのような単一のメッセージの(署名、受信、読取り、送信などの)何かが実行されると本明細書で述べるとき、複数のメッセージが存在してもよいこと、および前記何かが複数のメッセージのうちの少なくとも1つまたはすべてに対して行われることなども想定される。
いずれにせよ、方法301のステップS303において、ラップトップ220は、SIGS250に1つまたは複数のメッセージ332を送信する。通常、SIGS250は、宛先が誰であるかよりも多くの情報を1つまたは複数のメッセージ332から取り出す必要はなく、1つまたは複数のメッセージ332の残りの部分を触れずに、さらに未読のまま残すことができる。これは、ラップトップ220へ転送するためにSIGS250がネットワークカメラ210から受信するメッセージにも当てはまる。ラップトップ220から受信される1つまたは複数のメッセージ332は、例えば、1つまたは複数のICE候補、1つまたは複数のSDP回答および/または申入れなどを含んでもよい。詳細には、1つまたは複数のメッセージ332(のうちの少なくとも1つ)は、例えばSTUNサーバを使用して見つけられる、(例えばラップトップ220とのピアツーピア接続を確立するために)ラップトップ220に連絡するための少なくとも第1のネットワークアドレスを含む。1つまたは複数のメッセージ332のうちの少なくとも1つは、第1の署名付きデータ項目323も含む。SIGS350は、方法301のステップS304において、ネットワークカメラ210によって受信される対応する1つまたは複数のメッセージ332’を送信し、1つまたは複数のメッセージ332’は、少なくとも第2の署名付きデータ項目323’および第2のネットワークアドレス324’を含む。方法ではここまで、SIGS250がメッセージを改ざんしているかどうか、例えば、第1および第2の署名付きデータ項目323および323’が同じであるかどうか、かつ/または、例えば、第1および第2のネットワークアドレス324および324’が同じであるかどうかは知られていない。
次に、ネットワークカメラ210は、SIGS250がラップトップ220に1つまたは複数の対応するメッセージ334’を送信することによって1つまたは複数のメッセージ334を中継することができるように、ネゴシエーションの一部としてSIGS250に1つまたは複数の独自のメッセージ334を送信することができる。1つまたは複数のメッセージ334は、例えば、ネットワークカメラ210に連絡するための対応するネットワークアドレスなどを含むことができる。条件のネゴシエーションが終了した後に、SIGS250はもはや必要とされず、ネットワークカメラ210およびラップトップ220は、ネゴシエーション中に実現されたそれぞれの相手に関する情報を使用して、ピアツーピア接続340を確立することができる。
ピアツーピア接続340を確立することは、ピアツーピア接続340を介してラップトップ220からのリモートアクセスを可能にするネットワークカメラ210の一部を形成することができる。しかしながら、SIGS250がたまたま危険にさらされた場合に潜在的なMITM攻撃を受けることを回避するために、想定される方法301およびネットワークシステム200は、ネットワークカメラ210がSIGS250から受信された署名付きデータ項目323’を利用することを含む。次に、この手順がより詳細に記載される。
SIGS250から受信された1つまたは複数のメッセージ332’が、元々ラップトップ220によってSIGS250に送信されたまさにその1つまたは複数のメッセージ332であるとネットワークカメラ210が信じた場合、ネットワークカメラ210は、先に進み、それ以上考慮することなくピアツーピア接続340を確立するその一部を行うことができる。ラップトップ220にも同じことが当てはまる。しかしながら、SIGS250は危険にさらされる可能性があり、例えば、1つまたは複数のメッセージ332’は、元々ラップトップ332から送信された1つまたは複数のメッセージ332に必ずしも正確に対応するとは限らない場合があり、第1および第2の署名付きデータ項目323および323’、ならびに第1および第2のネットワークアドレス324および324’は異なる場合がある。SIGS250は、例えば、第2のネットワークアドレス324’を例えばSIGS250自体に属するネットワークアドレスにすることにより、ラップトップ220と直接ではなく、SIGS250とピアツーピア接続を確立するとネットワークカメラ210を欺くように試みて、1つまたは複数のメッセージ332’を送信する前に、1つまたは複数のメッセージ332の一部または全部を交換している場合がある。同様に、SIGS250は、ネットワークカメラ210と直接接続するのではなく、SIGS250とピアツーピア接続を確立するとラップトップ220を欺くために、ラップトップ220に1つまたは複数のメッセージ334’を送信する前に、ネットワークカメラ210から受信された1つまたは複数のメッセージ334の内容を変更することができる。しかしながら、これが発生するのを防止するために、または少なくとも、例えば、メッセージ332’を送信する前にSIGS250がメッセージ332を改ざんしているかどうかを検出するために、SIGS250から受信された第2の署名付きデータ項目323は、検証目的のためにネットワークカメラ210によって使用されてもよい。方法301のステップS305において、ネットワークカメラは、例えばネットワークサービス260のローカルに記憶された公開鍵を使用することにより、第2の署名付きデータ項目323’が実際にネットワークサービス260によって署名されたことを検証する。方法301のステップS306において、ネットワークカメラ210は、第2の署名付きデータ項目323’を使用して、SIGS250から受信された第2のネットワークアドレス324’がラップトップ220から生じ、SIGS250によって改ざんされていないことを検証する。検証S305およびS306が成功した後に、ネットワークカメラ210は、次いで、方法301のステップS307において、確立されたピアツーピア接続340を介したラップトップ220からのリモートアクセスの有効化に進むことができる。
以下では、図3C~図3Eをさらに参照して、SIGS250によって実行されるMITM攻撃を回避するために、SIGS250から受信された第2の署名付きデータ項目323’が検証ステップS306においてネットワークカメラ210によってどのように使用され得るかのさらなる詳細を各々が含む2つの提案がここで提示される。本明細書ではこれ以上詳細に記載されないが、他のそのような提案も当然可能である。
最初に、図3Cは、ネットワークカメラ210内で/によって実行することができる方法302の一実施形態のフローを概略的に示す。方法302のステップは、ネットワークカメラ210内で実行される方法301のステップに対応し、それらの詳細はここでもう一度繰り返す必要はない。
図3Dは、第1の提案「A」に対応する、方法302のステップS306の想定されるサブステップを概略的に示す。提案「A」では、ネットワークカメラ210とラップトップ220の両方は、ネットワークカメラ210がSIGS250から受信された第2のネットワークアドレス234’とのピアツーピア接続のその一部を確立することを含む、SIGS250による潜在的なMITM攻撃を心配する前に、最初に、それらが他のピアであると信じるものとのピアツーピア接続を確立することができる。この段階で、ネットワークカメラ210とラップトップ220の両方の「他のピア」が実際にはSIGS250であり、例えば、SIGS250が中継されたメッセージ330を改ざんして、例えば、第2のネットワークアドレス324’をそれ自体のネットワークアドレスに等しくしていることは排除されない可能性がある。これまでのいかなるMITMに関しても先入観をもつことなく、ネットワークカメラ210とラップトップ220の両方は、「他のピア」(または他の「当事者」、当事者およびピアという用語は、反対のことが述べられていない場合、本明細書では交換可能に使用されるので)と確立されたそれぞれのピアツーピア接続を暗号化する試みに参加することができる。これは、ピアツーピア接続の端部間で1つまたは複数のセキュリティキーを交換することを含んでもよい。方法302のステップS306のサブステップS306a-Iにおいて、これは、ネットワークカメラ210が、接続の他のピア(すなわち、第2のネットワークアドレス324’)の公開鍵も受信しながら、接続の他のピア(すなわち、第2のネットワークアドレス324’)に自身の公開鍵を提供できることを含んでもよい。同様に、ラップトップは、接続の想定される他のピアから公開鍵を受信しながら、接続の想定される他のピアに自身の公開鍵を提供することができる。特定の他のピアから受信された公開鍵は、特定の他のピアに送信する前にデータを暗号化するために使用されてもよく、特定の他のピアは、その対応する秘密鍵を使用してデータを解読することができるなどである。暗号化のそのような手順は、当業者によく知られていると想定され、例えば、トランスポートレイヤセキュリティ(例えば、RFC8446に記載されているTLS、またはIETFによって公開されたそれに対する任意の拡張)、データグラムTLS(例えば、RFC6347またはIETFによる関連刊行物に記載されているDTLS)などの確立されたプロトコルの使用を含んでもよい。
重要なことに、方法302のステップS306のサブステップS306a-iiにおいて、ラップトップ220は、第2のネットワークアドレス324’から受信した公開鍵が、SIGS250から受信された第2の署名付きデータ項目323’にも含まれることを検証することができる。あるいは、代わりに(または加えて)第2の署名付きデータ項目323’が公開鍵の指紋を含む場合、ネットワークカメラ210は、第2のネットワークアドレス324’から受信された公開鍵の指紋が第2の署名付きデータ項目323’に含まれる指紋であることを検証することができる。最初に、第2の署名付きデータ項目323’が実際に信頼できるネットワークサービス260によって署名されたことを(方法302のステップS305において)検証することにより、ネットワークカメラ210は、ラップトップ220の公開鍵を含むデータ項目321がSIGS250によって改ざんされておらず、第2の署名付きデータ項目323’がラップトップ220の第1の署名付きデータ項目323と同じであり、第2のネットワークアドレス324’がラップトップ220に連絡するための第1のネットワークアドレス324と同じであることを、大きい確信をもって想定することができる。これは、ラップトップ220が、ネットワークカメラ210へのピアツーピア接続であると信じるものの暗号化にその公開鍵を使用する場合、ラップトップ220の公開鍵(または少なくともその指紋)が、ネットワークカメラ210がSIGS250から受信する第2の署名付きデータ項目323’に含まれるからである。
結果として、ネットワークカメラ210は、想定される他のピア(すなわち、第2のネットワークアドレス)から受信された公開鍵がラップトップ220の公開鍵であるかどうかを知ることができ、次いで、想定される他のピアが実際にラップトップ220であるかどうか、またはそれが、例えば、SIGS250がMITM攻撃を実行しようとしているかどうかも知ることができる。公開鍵(または少なくともそれらの指紋)が一致すること、およびピアツーピア接続がラップトップ220との直接のピアツーピア接続340であることを検証する場合、ネットワークカメラ210は、先へ進み、方法302のステップS307において、ピアツーピア接続340を介したラップトップ220からのリモートアクセスを可能/有効にすることができる。公開鍵(またはそれらの指紋)が一致することを検証することができない場合、ネットワークカメラ210は、何かが間違っていること、例えば、SIGS250が1つまたは複数のメッセージ332’を改ざんしようとしていること、およびSIGS250のようなものが中間者として機能していないことを確認できないので、リモートアクセスが許可されるべきではないことを想定することができる。次いで、ネットワークカメラ210は、例えばエラーメッセージで応答するか、確立されたピアツーピア接続を切断するか、またはその両方を行うことができる。例えば、他の代替も可能であるが、本明細書ではさらに詳述されない。提案「A」は、例えば、ラップトップ220の公開鍵が暗号化目的ですでに利用可能である(それは、例えば、TLSまたはDTLS暗号鍵であり得る)という点、およびSIGS250がさらなる公開鍵/秘密鍵のペアを生成する必要なくそのMITM攻撃を実行し成功することを防止するためにも同じ公開鍵が使用され得るという点で、特に有利であり得る。
図3Eは、別の第2の提案「B」による方法302のステップS306のサブステップを概略的に示す。提案「B」において、ラップトップ220は、それがSIGS250に送信する1つまたは複数のメッセージ332の少なくとも一部に暗号署名することを選択することができる。署名は、データ項目321および署名付きデータ項目323に含まれるラップトップ220の公開鍵に関連付けられた秘密鍵を使用して実行される(本明細書では、「関連付けられた」は公開鍵および秘密鍵が同じ公開鍵/秘密鍵のペアの一部を形成することを意味する)。ラップトップ220は、例えば、ネットワークアドレス324が提供される1つまたは複数のメッセージ332の少なくとも一部に署名することができる。SIGS250から1つまたは複数のメッセージ332’を受信した後に、ネットワークカメラ210は、SIGS250から受信された第2の署名付きデータ項目323’を使用して、方法302のステップS306のサブステップS306bにおいて、第2のネットワークアドレス324’(の少なくとも指紋)が、第2の署名付きデータ項目323’に含まれる公開鍵に関連付けられた秘密鍵によって署名されていることを検証することができる。そうすることにより、ネットワークカメラ210は、SIGS250から受信されたたメッセージ332’が、元々ラップトップ220からSIGS250に送信されたメッセージ332と同じであるかどうか、またはメッセージがSIGS250によって改ざんされているかどうかをチェックすることができる。SIGS250は、例えば、ラップトップ220の第1のネットワークアドレスをそれ自体の第2のネットワークアドレスによって置き換えようとしている可能性があるが、メッセージ332のその部分の署名がメッセージの内容ともはや一致しなくなる(または署名がSIGS250によって更新されなければならなくなる)ので、ネットワークカメラ210はそのような改ざんの試みを検出することができる。改ざんがネットワークカメラ210によって発見された場合、ネットワークカメラ210は、例えばピアツーピア接続を全く確立しないことを選択することができる。この提案は、ネットワークカメラ210とラップトップ220に属すると想定される任意のアドレスとの間にその(または任意の)ピアツーピア接続が確立される前でも、ネットワークカメラ210によって改ざんの試みを検出することができるという点で特に有益である。
上記の提案「A」(および対応するサブステップS306a-iおよびS306a-ii)ならびに「B」(および対応するサブステップS306b)は、方法302の一部として(したがって方法301の一部として)ネットワークカメラ210によって一度に1つずつ、または一度に両方実施され得ると想定される。
いくつかの想定される実施形態では、ネットワークサービス260は、ラップトップ220の認可および/または認証を提供するために使用することもでき、その結果、ネットワークカメラ210は、ラップトップ220がリモートアクセスを許可されるべきか否かを知ることができる。例えば、ラップトップ220からネットワークサービス260に送信されるメッセージ310は、アクセストークンの要求を含んでもよい(または、図3に示されていない別のメッセージ内でそれによって補完されてもよい)。ネットワークサービス260は、ラップトップ220がネットワークカメラ210へのアクセスを提供されるべきかどうかをチェックすることができ、答えが肯定である場合、ネットワークサービス260は、そのようなアクセストークンを生成しラップトップ220に返すことができる。アクセストークンは、例えば、データ項目321に挿入され、ラップトップ220の公開鍵と一緒に共同署名されてもよい。次いで、第1の署名付きデータ項目323は、(署名付き)アクセストークンも含んでもよく、ネットワークカメラ210は、SIGS250からの署名付きデータ項目333内で受信されたアクセストークンが、実際に特定のネットワークサービス250によって署名されていることを検証し、次いで、ラップトップ220からネットワークカメラ210へのアクセスを許可することができる。これは、ネットワークサービス260がネットワークカメラ210によって信頼されていると想定されるためである。アクセストークンは、MITM攻撃を防止するために必ずしも必要ではないが、ラップトップ220が認可/認証されているかどうかに関する追加情報として機能できることに留意されたい。データ項目は、例えば、ジャバウェブトークン(JWT)などであってもよく、例えば、ラップトップ220の公開鍵、ネットワークサービス260の署名、および場合によっては(使用される場合)アクセストークンも含むことができる。例えば、ラップトップ220の認可および/または認証のためにJWTがすでに使用されている場合、すでに利用可能で使用済みのJWTに公開鍵(またはその指紋)を実装し含めることにより、さらなるデータ構造の必要性を防止し、交換されるデータ変数の数を減らすことができる。当然、データ項目のフォーマットを指定する他の方法も可能である。データ項目321は、例えば、ラップトップ220の公開鍵がアクセストークン内に含まれる場合、アクセストークン自体であってもよい。
図3Fは、ラップトップ220内で/によって実行され得る方法303の一実施形態を示す。方法303のステップS301~S303は、図3Bを参照して記載された方法301の同じステップS301~S303に対応し、したがって、それらの詳細はここでは再度繰り返さない。図3Fは、方法303の一部として(かつ図3Bを参照して記載された方法301の一部として)ラップトップ220によって実行され得る2つの任意選択のサブステップS308aおよびS308bをさらに示す。例えば、サブステップS308aおよびS308bの一方のみが実行されること、またはサブステップS308aおよびS308bの両方が実行されることが想定される。サブステップS308aは、ラップトップ220が想定されるネットワークカメラ210とのピアツーピア接続を暗号化する試みに参加することを含む。次いで、ラップトップ220は、少なくとも指紋が第1の署名付きデータ項目323に含まれる公開鍵を使用する。これにより、本明細書で前述されたように、ネットワークカメラ210は、ピアツーピア接続が確立され、その暗号化が試みられると、SIGS250によってMITM攻撃が実行されないことを検証することが可能になる。サブステップS308bにおいて、ラップトップ220は、第1のネットワークアドレス324が含まれる1つまたは複数のメッセージ332の少なくとも一部(の少なくとも指紋)に署名する。本明細書で前述されたように、これにより、ネットワークカメラ210が、第2のネットワークアドレス324’へのピアツーピア接続を確立しなければならない前に、第2のネットワークアドレス324’がSIGS250によって改ざんされていないこと、および第2のネットワークアドレス324’がラップトップ220に連絡するための第1のネットワークアドレス324に対応することをチェックすることが可能になる。
本明細書で想定されるすべての実施形態では、例えばネットワークカメラ210からラップトップ220にデータをストリーミングするための規格は、例えば、ウェブリアルタイムコネクト(WebRTC)として知られている規格に従うことができ、それは、例えばネットワークカメラと、例えばネットワークカメラからのビデオストリームが消費されるべき(ラップトップなどで動作する)ブラウザとの間のピアツーピア接続を確立するためのシグナリングサービス(SIGS)にすでに依存している。本明細書で提案される解決策は、SIGS250を介してネットワークカメラ210とラップトップ220との間で実行される通信におけるデータ項目(すなわち、ラップトップ220の公開鍵、または公開鍵の指紋を含む)に追加の項目を提供することのみを含むので、本明細書で提案された方法を実施しながら、WebRTCの実践に依然として従うことができる。詳細には、WebRTCは、例えばセッションおよび接続条件をネゴシエーションするためのSDPメッセージの使用を指定し、これらのSDPメッセージは、WebRTC手順の他の部分に悪影響を与えることなく、本明細書で説明された署名付きデータ項目に必要な追加データを含めるのによく適している。
本明細書では、1つまたは複数のコンピュータプログラムを提供することも想定される。そのようなコンピュータプログラムの1つは、例えば、ネットワークシステムにおいて方法301を実行するためのもの、例えばネットワークカメラの形態のネットワークデバイスにおいて方法302を実行するためのもの、および/または、例えばユーザデバイス(ラップトップ、タブレット、スマートフォン、ウェアラブルデバイス、デスクトップコンピュータなど)の形態のネットワークデバイスにおいて方法303を実行するためのものであってもよい。コンピュータプログラムは、例えば、ネットワークデバイス210および220の一方または両方のメモリ232に記憶された命令に対応することができ、その結果、対応する方法は、プロセッサ(または処理回路)が命令を実行するとネットワークデバイスによって実行される。他の想定される実施形態では、コンピュータプログラムは、まだプロセッサによって読取り可能ではない形態であってもよく、むしろ、例えばプログラミング言語によるテキストとして提供されてもよく、そのテキストは、例えばその適切なコンパイラを使用することにより、プロセッサによって読取り可能なフォーマットにコンパイルされる必要がある。当然、コンパイラは、プロセッサ自体によって実行されてもよく、リアルタイムコンパイルのためにプロセッサ自体の一部を形成さえしてもよい。本明細書では、1つまたは複数のコンピュータプログラム製品を提供することも想定される。各々のそのようなコンピュータプログラム製品は、上述されたコンピュータプログラムのうちの1つまたは複数が記憶されたコンピュータ可読記憶媒体を含む。例えば、1つのコンピュータプログラム製品は、本明細書で前述されたように、方法301を実行するためのコンピュータプログラム、方法302を実行するためのコンピュータプログラム、および/または方法303を実行するためのコンピュータプログラムを含んでもよい。本開示において本明細書で使用されるように、(コンピュータ可読)記憶媒体(例えば、「メモリ」)は、例えば、ランダムアクセスメモリ(RAM)と読取り専用メモリ(ROM)の任意の組合せであってもよい。いくつかの実施形態では、コンピュータ可読記憶媒体は、一時的(例えば、プロセッサによって読取り可能な電気信号)であってもよい。他の実施形態では、コンピュータ可読記憶媒体は、非一時的(例えば、ハードディスクドライブ(HDD)、ソリッドステートドライブ(SSD)、セキュアデジタル(SD)カードなどの不揮発性メモリ、USBフラッシュドライブ、または磁気メモリ、光メモリ、ソリッドステートメモリ、またはさらには遠隔実装メモリの任意の組合せなどの形態)であってもよい。それらの機能がプロセッサおよび/または中間コンパイラによって読取り可能であるようにコンピュータプログラムを記憶することを可能にする限り、他のタイプのコンピュータ可読記憶媒体も想定される。本開示において本明細書で使用されるように、「処理回路」または「プロセッサ」は、例えば、メモリに記憶されたソフトウェア命令を実行することが可能な、適切な中央処理装置(CPU)、マルチプロセッサ、マイクロコントローラ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)などのうちの1つまたは複数の任意の組合せであってもよい。
本明細書で提示された様々な実施形態を要約すると、本開示は、例えばユーザデバイスから例えばネットワークカメラへのリモートアクセスを可能にする改善された方法を提供する。これは、a)ユーザデバイス(例えば、ラップトップ)が、例えばユーザデバイスの公開鍵(の指紋)などの「個人的な」何かを含むデータ項目をユーザデバイスに提供し、b)データ項目が、ネットワークカメラが知らずにSIGSがデータ項目を改ざんできないように、ネットワークカメラによって信頼されているネットワークサービスによって署名され、c)ユーザデバイスが、ネットワークカメラとユーザデバイスとの間のピアツーピア接続のための条件のネゴシエーションの一部として、SIGSを介してネットワークカメラに署名付きデータ項目を転送しようと試み、d)データ項目がユーザデバイスにとって個人的な何かを含むので、ネットワークカメラが、この個人的な何かを使用して、SIGSがMITM攻撃を実行するためにネゴシエーション中に中継されたメッセージを改ざんしようとしていないことを検証することができるからである。これは、ユーザデバイスの公開鍵が、例えば、i)このネットワークアドレスがSIGSによって改ざんされているかどうかをネットワークカメラが通知することができるように、ネゴシエーション中にネットワークカメラに転送されたユーザデバイスに連絡するための提案されたネットワークアドレスに署名するために、かつ/またはii)ネットワークデバイスがネゴシエーションの一部として受信する提案されたネットワークアドレスから提供された公開鍵が実際にユーザデバイスの公開鍵であり、例えばSIGSの公開鍵ではないかどうかをネットワークデバイスが知ることができるようにピアツーピア接続を暗号化するために、ユーザデバイスによって使用され得るからである。本明細書で想定されるこれらの様々な解決策は、ネットワークカメラおよび/またはユーザデバイスのいずれかのいかなる実質的な修正も必要とせずに、SIGSによる潜在的なMITM攻撃を回避する容易な方法を提供する。
特徴および要素は特定の組合せで上述されてもよいが、各々の特徴または要素は、他の特徴および要素なしで単独で、または他の特徴および要素の有無にかかわらず様々な組合せで使用されてもよい。さらに、開示された実施形態に対する変形形態は、図面、開示、および添付の特許請求の範囲の学習から、特許請求された発明を実践する際に当業者によって理解および達成されてもよい。
特許請求の範囲において、「備える」および「含む」という語は他の要素を排除せず、不定冠詞「a」または「an」は複数を排除しない。いくつかの特徴が相互に異なる従属請求項に記載されているという単なる事実は、利益をもたらすためにこれらの特徴の組合せを使用することができないことを示すものではない。
110、210 第1のネットワークデバイス(ネットワークカメラ)
120、220 第2のネットワークデバイス(ラップトップ、ユーザデバイス)
130 第1のLAN
131 第2のLAN
132、133 第1および第2のファイアウォール
134、135 第1および第2のNATデバイス
136 共通ネットワーク(例えば、インターネット)
140、240 第1のネットワークデバイスと第2のネットワークデバイスとの間のピアツーピア(P2P)接続
141、142 悪意のあるSIGSへのP2P接続
150、250 シグナリングサービス(SIGS)
200 ネットワークシステム
230 プロセッサ
232 メモリ
234 ネットワークインタフェース
236 追加項目
238 通信バス
260 信頼できるネットワークサービス
300 メッセージフロー
301 ネットワークシステムにおいて/によって実行される方法
302 第1のネットワークデバイスにおいて/によって実行される方法
303 第2のネットワークデバイスにおいて/によって実行される方法
321 データ項目
322 署名
323、323’ 第1および第2の署名付きデータ項目
324、324’ 第1および第2のネットワークアドレス
330 ネゴシエーションメッセージ
332 第2のネットワークデバイスからSIGSへのメッセージ
332’ SIGSから第1のネットワークデバイスへのメッセージ
334 第1のネットワークデバイスからSIGSへのメッセージ
334’ SIGSから第2のネットワークデバイスへのメッセージ

Claims (15)

  1. 第2のネットワークデバイス(120)から第1のネットワークデバイス(110)へのリモートネットワークアクセスを可能にする方法(300、301)であって、
    a)前記第2のネットワークデバイスが、前記第2のネットワークデバイスの公開鍵および前記公開鍵の指紋のうちの少なくとも一方を含むデータ項目(321)を生成すること(S301)と、
    b)前記第2のネットワークデバイスが、ネットワークサービス(260)を使用して、対応する第1の署名付きデータ項目(323)を生成するために前記データ項目に暗号化署名すること(S302)であって、前記第1の署名付きデータ項目が前記ネットワークサービスによって署名されていることが前記第1のネットワークデバイスによって検証可能である、暗号化署名すること(S302)と、
    c)前記第1のネットワークデバイスおよび前記第2のネットワークデバイスが、中間シグナリングサービス、SIGS(250)を介して、ピアツーピア接続(340)を確立するための条件のネゴシエーションを実行することであって、前記第2のネットワークデバイスが、前記SIGSへの1つまたは複数のメッセージ(332)内で、前記第1の署名付きデータ項目(323)および前記第2のネットワークデバイスに接続するための第1のネットワークアドレス(324)を送信すること(s303)を含み、前記第1のネットワークデバイスが、前記SIGSからの1つまたは複数のメッセージ(332’)内で、第2の署名付きデータ項目(323’)および第2のネットワークアドレス(324’)を受信すること(S304)を含む、ネゴシエーションを実行することと、
    d)前記第1のネットワークデバイスが、最初に
    d-i)前記第2の署名付きデータ項目が前記ネットワークサービスによって署名されていることを検証すること(S305)、および
    d-ii)前記第2の署名付きデータ項目を使用して、前記第2のネットワークアドレスが前記第1のネットワークアドレスであり、前記SIGSによって改ざんされていないことを検証すること(S306)
    の後に、ネゴシエーションされた前記条件を使用して前記ピアツーピア接続を介して前記第2のネットワークアドレスからの前記リモートネットワークアクセスを可能にすること(S307)と
    を含む、方法。
  2. ステップd)が、前記第1のネットワークデバイスが、前記第2のネットワークアドレス(324’)から受信された公開鍵を使用して前記ピアツーピア接続を暗号化する試みに参加すること(S306a-i)を含み、ステップd-ii)が、前記第1のネットワークデバイスが、前記第2のネットワークアドレスから受信された前記公開鍵、および/または前記第2のネットワークアドレスから受信された前記公開鍵の指紋が、前記SIGSから受信された前記第2の署名付きデータ項目に含まれることを検証すること(S306a-ii)を含む、請求項1に記載の方法。
  3. 前記暗号化が、データグラムトランスポートレイヤセキュリティ、DTLSを使用して実行され、前記第2のネットワークアドレスから受信された前記公開鍵がDTLS公開鍵である、請求項2に記載の方法。
  4. 前記第2のネットワークデバイスが、前記第2のネットワークデバイスの第2の公開鍵に関連付けられた秘密鍵を使用して、前記SIGSに送信された前記1つもしくは複数のメッセージ(332)の少なくとも一部、および/または前記SIGSに送信された前記1つもしくは複数のメッセージ(332)の前記少なくとも一部の指紋の少なくとも一部に署名すること(S308b)を含み、ステップd-ii)が、前記SIGSから受信された前記1つもしくは複数のメッセージ(332’)の少なくとも一部、および/またはSIGSから受信された前記1つもしくは複数のメッセージ(332’)の前記少なくとも一部の指紋の少なくとも一部が、前記第2の署名付きデータ項目に含まれる公開鍵に関連付けられた秘密鍵を使用して署名されていることを前記第1のネットワークデバイスが検証するステップ(S306b)を含む、請求項1から3のいずれか一項に記載の方法。
  5. ウェブリアルタイムコネクト、WebRTCを使用して前記リモートネットワークアクセスを提供することを含み、前記1つまたは複数のメッセージ(330)が、少なくともセッション記述プロトコル、SDPの回答および/または申入れを含み、前記第1のネットワークアドレスが相互接続確立、ICE候補である、請求項1から4のいずれか一項に記載の方法。
  6. 前記データ項目が、前記第2のネットワークデバイスを認可および/または認証するために、前記ネットワークサービスによって提供および署名もされたアクセストークンであるか、それを含むか、またはそれによって補完され、前記ステップd)が、前記アクセストークンが前記SIGSから受信された前記第2の署名付きデータ項目であるか、それに含まれるか、またはそれを補完することを前記第1のネットワークデバイスが検証することを含む、請求項5に記載の方法。
  7. ネットワークデバイス(210)であって、
    プロセッサ(230)と、
    前記プロセッサによって実行されると、
    中間シグナリングサービス、SIGS(250)を介して前記ネットワークデバイスと第2のネットワークデバイス(220)との間のピアツーピア接続のための条件をネゴシエーションすることであって、前記SIGSからの1つまたは複数のメッセージ(332’)内で、署名付きデータ項目(323’)およびネットワークアドレス(324’)を受信すること(S304)を含む、ピアツーピア接続のための条件をネゴシエーションすることと、
    ネゴシエーションされた前記条件を使用して前記ピアツーピア接続を介して前記ネットワークアドレスからのリモートネットワークアクセスを可能にすること(S307)であって、最初に、
    前記SIGSから受信された前記署名付きデータ項目が前記ネットワークデバイスによって信頼されているネットワークサービス(260)によって署名されていることを検証すること(S305)、および
    前記SIGSから受信された前記署名付きデータ項目を使用して、前記SIGSから受信された前記ネットワークアドレスが前記SIGSによって改ざんされていないことを検証すること
    を含む、リモートネットワークアクセスを可能にすること(S307)と
    を前記ネットワークデバイスに行わせる命令を記憶するメモリ(232)と
    を備える、ネットワークデバイス(210)。
  8. 前記命令がさらに、前記ネットワークアドレスから受信された公開鍵を使用して前記ピアツーピア接続を暗号化する試みに前記ネットワークデバイスを参加させ(S306a-i)、最初にまた前記ネットワークアドレスから受信された前記公開鍵、および/または前記ネットワークアドレスから受信された前記公開鍵の指紋が、前記SIGSから受信された前記署名付きデータ項目に含まれることを検証した(S306a-ii)後に、前記ネットワークアドレスからの前記リモートネットワークアクセスを前記ネットワークデバイスに可能にさせる、請求項7に記載のネットワークデバイス。
  9. 前記命令がさらに、前記ネットワークアドレスを含む前記SIGSから受信された前記1つもしくは複数のメッセージの少なくとも一部、および/または前記ネットワークアドレスを含む前記SIGSから受信された前記1つもしくは複数のメッセージの前記少なくとも一部の指紋が、前記SIGSから受信された前記署名付きデータ項目に含まれる公開鍵に関連付けられた秘密鍵を使用して署名されていることを前記ネットワークデバイスに検証させる(S306b)、請求項7または8に記載のネットワークデバイス。
  10. ネットワークデバイス(220)であって、
    プロセッサ(230)と、
    前記プロセッサによって実行されると、
    前記ネットワークデバイスの公開鍵および前記公開鍵の指紋のうちの少なくとも一方を含むデータ項目(321)を生成すること(S301)と、
    ネットワークサービス(260)を使用して、対応する署名付きデータ項目(323)を生成するために前記データ項目に暗号化署名すること(S302)であって、前記署名付きデータ項目が前記ネットワークサービスによって署名されていることが第2のネットワークデバイス(210)によって検証可能である、暗号化署名すること(S302)と、
    中間シグナリングサービス、SIGS(250)を介して前記ネットワークデバイスと前記第2のネットワークデバイスとの間のピアツーピア接続のための条件をネゴシエーションすることであって、前記SIGSへの1つまたは複数のメッセージ(332)内で、前記署名付きデータ項目および前記ネットワークデバイスに連絡するためのネットワークアドレス(324)を送信すること(S303)を含む、ピアツーピア接続のための条件をネゴシエーションすることと
    を前記ネットワークデバイスに行わせる命令を記憶するメモリ(232)と
    を備える、ネットワークデバイス(220)。
  11. 前記命令がさらに、前記公開鍵を使用して前記ピアツーピア接続を暗号化する試みに前記ネットワークデバイスを参加させる(S308a)、請求項10に記載のネットワークデバイス。
  12. 前記命令がさらに、前記公開鍵に関連付けられた秘密鍵を使用して、前記ネットワークアドレスを含む前記1つもしくは複数のメッセージの少なくとも一部に署名すること、および/または前記ネットワークアドレスを含む前記1つもしくは複数のメッセージの前記少なくとも一部の指紋に署名すること(S308b)を前記ネットワークデバイスに行わせる、請求項10または11に記載のネットワークデバイス。
  13. 前記命令がさらに、前記ネットワークサービスを使用して、前記署名付きデータ項目が前記ネットワークデバイスを前記第2のネットワークデバイスに対して認可および/または認証するために前記ネットワークサービスによって署名されたアクセストークンであるか、それを含むか、またはそれによって補完されるようにすることを前記ネットワークデバイスに行わせる、請求項10から12のいずれか一項に記載のネットワークデバイス。
  14. 第1のネットワークデバイス(210)および第2のネットワークデバイス(220)を含み、請求項1から6のいずれか一項に記載の方法(300、301)に従って、前記第2のネットワークデバイスから前記第1のネットワークデバイスへのリモートネットワークアクセスを可能にするように構成されている、ネットワークシステム(200)。
  15. 前記第1のネットワークデバイスがネットワークカメラであり、リモートアクセスが前記ネットワークカメラから前記第2のネットワークデバイスへのビデオフィードをストリーミングすることを含む、請求項14に記載のネットワークシステム。
JP2022195321A 2021-12-14 2022-12-07 中間者攻撃防止を伴うリモートアクセス Pending JP2023088290A (ja)

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 2021-12-14

Publications (1)

Publication Number Publication Date
JP2023088290A true JP2023088290A (ja) 2023-06-26

Family

ID=78851219

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022195321A Pending JP2023088290A (ja) 2021-12-14 2022-12-07 中間者攻撃防止を伴うリモートアクセス

Country Status (6)

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

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
CN116264525A (zh) 2023-06-16
KR20230090231A (ko) 2023-06-21
TW202335460A (zh) 2023-09-01
US20230188562A1 (en) 2023-06-15
EP4199417A1 (en) 2023-06-21

Similar Documents

Publication Publication Date Title
US9398026B1 (en) Method for authenticated communications incorporating intermediary appliances
US10051666B2 (en) Peer to peer networking and sharing systems and methods
KR102021213B1 (ko) 엔드 투 엔드 서비스 계층 인증
US10389524B2 (en) Introducing middleboxes into secure communications between a client and a server
US8788805B2 (en) Application-level service access to encrypted data streams
US8725885B1 (en) Securely establishing ice relay connections
US10587586B2 (en) System and method for a multi system trust chain
EP1267548A2 (en) Method and system for integrating security mechanisms into session initiation protocol request messages for client-proxy authentication
US20100138649A1 (en) Transmission of packet data over a network with security protocol
CN107147611B (zh) 传输层安全tls建链的方法、用户设备、服务器和系统
US9882897B2 (en) Method and system for transmitting and receiving data, method and device for processing message
US11736304B2 (en) Secure authentication of remote equipment
US10721219B2 (en) Method for establishing a secure communication session in a communications system
CN104301107A (zh) 经由相应WebRTC数据信道验证WebRTC媒体信道私密性的方法、系统
KR20120099649A (ko) 저-지연 피어 세션 구축
US10721061B2 (en) Method for establishing a secure communication session in a communications system
WO2023241176A1 (zh) 通信方法、装置、设备、存储介质及程序产品
US10659228B2 (en) Method for establishing a secure communication session in a communications system
CN111226418A (zh) 针对跨网络周边防火墙的设备使能零接触引导
JP4619059B2 (ja) 端末装置、ファイアウォール装置、及びファイアウォール装置制御のための方法、並びにプログラム
JP2023088290A (ja) 中間者攻撃防止を伴うリモートアクセス
Janak et al. An Analysis of Amazon Echo's Network Behavior
KR101730403B1 (ko) 네트워크 경로를 관리하는 방법 및 이를 수행하는 네트워크 엔티티
US20230216947A1 (en) Method and System to Implement Secure Real Time Communications (SRTC) Between WebRTC and the Internet of Things (IoT)
JP4583424B2 (ja) 端末間の暗号化通信チャネルを構築するためのセッション管理装置、方法及びプログラム