JP2018525935A - インターネットに接続可能なデバイスを用いた安全な通信 - Google Patents

インターネットに接続可能なデバイスを用いた安全な通信 Download PDF

Info

Publication number
JP2018525935A
JP2018525935A JP2018509896A JP2018509896A JP2018525935A JP 2018525935 A JP2018525935 A JP 2018525935A JP 2018509896 A JP2018509896 A JP 2018509896A JP 2018509896 A JP2018509896 A JP 2018509896A JP 2018525935 A JP2018525935 A JP 2018525935A
Authority
JP
Japan
Prior art keywords
computer
connection
network
address
connections
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
JP2018509896A
Other languages
English (en)
Other versions
JP2018525935A5 (ja
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.)
AnchorFree Inc
Original Assignee
AnchorFree Inc
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 AnchorFree Inc filed Critical AnchorFree Inc
Publication of JP2018525935A publication Critical patent/JP2018525935A/ja
Publication of JP2018525935A5 publication Critical patent/JP2018525935A5/ja
Pending legal-status Critical Current

Links

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
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4633Interconnection of networks using encapsulation techniques, e.g. tunneling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4641Virtual LANs, VLANs, e.g. virtual private networks [VPN]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • H04L61/4505Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
    • H04L61/4511Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]
    • 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/0227Filtering policies
    • 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/0272Virtual private networks
    • 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/029Firewall traversal, e.g. tunnelling or, creating pinholes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/101Access control lists [ACL]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/20Network architectures or network communication protocols for network security for managing network security; network security policies in general
    • 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/1069Session establishment or de-establishment
    • 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/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/256NAT traversal
    • H04L61/2575NAT traversal using address mapping retrieval, e.g. simple traversal of user datagram protocol through session traversal utilities for NAT [STUN]
    • 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/1458Denial of Service

Landscapes

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

Abstract

ネットワークデバイスは、外部アドレスからローカルネットワーク上のコンピュータへのインバウンド接続を許可し、一方で、外部アドレスからのインバウンド接続が先行しない限り、そのコンピュータからのその外部アドレスへの出力接続を禁止する。いくつかの実施形態では、コンピュータは外部アドレスからのインバウンド接続の受け入れを許可するが、インバウンド接続が先行しない限り、ローカルネットワーク内の他のコンピュータへのアウトバウンド接続の開始を許可しない。いくつかの実施形態では、外部アドレスからの要求は、コンピュータについてのネットワーク情報を外部アドレスに送信することによってネットワークデバイスによって処理され、一時的にネットワーク規則を変更して外部アドレスからの接続を許可する。いくつかの実施形態では、コンピュータが許可されていない接続を試みる場合、プロキシサーバのネットワークデータをコンピュータに提供することによって、接続の試みがプロキシサーバを通して行われる。
【選択図】図1

Description

(本文中に技術分野に該当する記載なし。)
(関連出願)
本出願は、2015年8月25日に出願された題名「コンピュータデバイス間の安全な接続のためのシステム(SYSTEM FOR SECURING CONNECTIONS BETWEEN COMPUTER DEVICES)」の米国仮出願第62/209,776号の利益を主張し、その全体が参照により本明細書に組み込まれる。
急速に増えつつある数多くの様々なデバイスが、インターネットに接続する能力を獲得している。このようなデバイスのいくつかの例は、スマート電源スイッチ、防犯カメラ、照明制御デバイス、家庭電化製品、ネットワーク接続ストレージ(NAS)などである。しばしば、モノのインターネット(IoT:Internet of Things)と呼ばれるこれらのデバイスは、インターネットへの接続性を、デスクトップコンピュータやラップトップコンピュータ、スマートフォン、タブレットなどの従来のデバイスだけでなく、様々なデバイスや日用品に拡張し、これらの様々なデバイスや日用品は、埋め込み技術を利用して、すべてインターネットを介して、外部環境と通信し、相互にやり取りする。
これらのデバイスの多くは、無線(Wi−Fi)ルータまたはアクセスポイントを介してインターネットに接続され、ローカルネットワークの一部になる。通常、これらのデバイスは、同じローカルネットワーク上のデバイス(例えばワイヤレスヘッドフォン)、およびローカルネットワークの外のデバイス(例えば、リモートアクセスを提供するベンダー固有のアプリケーションを備える携帯電話)の両方との通信を許可される。
このようなデバイスはしばしば、更新のために遠隔サーバにアクセスし、そのデータをアップロードするHTTP/HTTPSクライアント、および、他のデバイス(IoTハブ、携帯電話など)からのステータス制御およびデータ収集を可能にするアプリケーションプログラミングインタフェース(API)を提供するHTTP/HTTPSサーバの両方として機能することができる。
ベンダー固有のアクセスパターンとセキュリティ対策を備えた接続デバイスの普及で、ローカルネットワーク内および外の両方のセキュリティリスクが著しく増加する。ローカルネットワーク内の不正なデバイス(Rogue device)は、ネットワークトラフィックをスパイしたり、DNS設定を変更したり、認可されていないデータ(例えば、ローカルコンピュータの共有ディレクトリなど)にアクセスしたり、ローカルデバイスを攻撃する(例えば、スマートスイッチをオフにしたり、セキュリティカメラをブロックするなど)ために他のデバイス(例えば、Wi−Fiルータなど)の脆弱性を悪用し得る。ローカルネットワークの外側のサーバとの接続を確立できる不正なデバイスは、ローカルデバイスから収集したデータを認可されていない第三者に通知したり、マルウェアをダウンロードしてローカル攻撃を実行したり、或いはサービス拒否攻撃又はスパムの配布が可能なボットネットの一部になったりすることがある。
デバイスのベンダーの数の増加と同じネットワーク上のデバイスの多様性の増加に伴い、個々のベンダーを頼ってセキュリティを制御することはより難しくなっている。ローカルネットワーク内の1つの障害が起きたデバイスでさえも、深刻なセキュリティとプライバシーの脅威を示す可能性がある。
それゆえ、ローカルネットワークに接続された信頼できないデバイスで構成されるシステムのセキュリティを向上させ得る解決策が必要とされている。好ましくは、そのような解決策は、接続されたデバイスを、その有用性およびアップグレードの能力を低下させずに、または大きな追加コストを招くことなく、より安全にするべきである。
本発明の一態様では、ネットワーク構築のためのシステムは、ローカルネットワーク内のコンピュータ間でデータを転送するように構成された少なくとも1つのネットワークデバイスを含むローカルネットワークを含む。第1のデバイスは、ローカルネットワークに接続され、少なくとも1つの処理デバイスおよびネットワーク通信を実行するための手段を含み、第1のデバイスはアウトバウンド接続を開始するようにプログラムされ、少なくとも1つのアウトバウンド接続は、ローカルネットワーク内のいずれのデバイスとも対応しない外部アドレスを含む。第2のデバイスは、ローカルネットワークに接続され、外部ネットワークへの少なくとも1つの接続を有する。各アウトバウンド接続の外部ネットワークアドレスは、外部ネットワークに接続された外部デバイスを参照する。第2のデバイスは、少なくとも1つのアウトバウンド接続の外部アドレスが、少なくとも1つのアウトバウンド接続の外部アドレスからのインバウンド接続によって先行されなかった場合に、第1のデバイスによって開始されたアウトバウンド接続の少なくとも1つのアウトバウンド接続に対して、少なくとも1つのアウトバウンド接続をブロックするようにさらにプログラムされる。第2のデバイスは、第2のデバイスによってブロックされたアウトバウンド接続の少なくとも1つのアウトバウンド接続の外部アドレスと同一のソースアドレスを含む、外部ネットワーク内のソースアドレスからの第1のデバイスへのインバウンド接続を許可にするようにさらにプログラムされ得る。
いくつかの実施形態では、第2のデバイスは、さらに、アウトバウンド接続の少なくとも1つのアウトバウンド接続に対して、少なくとも1つのアウトバウンド接続の外部アドレスがホワイトリストに含まれている場合、各アウトバウンド接続の外部アドレスへの各アウトバウンド接続を許可し、および、少なくとも1つのアウトバウンド接続の外部アドレスがホワイトリストに含まれていない場合、少なくとも1つのアウトバウンド接続をブロックするようにさらにプログラムされる。いくつかの実施形態では、第2のデバイスは、ホワイトリストに含まれていないソースアドレスを有するインバウンド接続の少なくとも一部を許可するようにさらにプログラムされる。
いくつかの実施形態では、ホワイトリストは、ドメイン名、インターネットプロトコル(IP)アドレス、およびポートのうちの少なくとも1つを、それぞれが含む1つまたは複数のネットワーク識別子を格納する。
いくつかの実施形態では、第2のデバイスは、少なくとも1つのアウトバウンド接続に対して、少なくとも1つのアウトバウンド接続の外部アドレスが、少なくとも1つのアウトバウンド接続の外部アドレスからのインバウンド接続によって先行されている場合、少なくとも1つのアウトバウンド接続の外部アドレスへの少なくとも1つのアウトバウンド接続を許可するようにさらにプログラムされる。
いくつかの実施形態では、第2のデバイスは、第1のアドレスからのインバウンド接続によって先行される第1の外部アドレスへの第1のデバイスからのアウトバウンド接続を許可し、先に受信したインバウンド接続に含まれていた第1のアドレスとは異なるアドレスを含む、第1のアドレスとは異なるアドレスへの第1のデバイスからの1つまたは複数の後続のアウトバウンド接続をブロックするようにプログラムされる。
いくつかの実施形態では、第2のデバイスは、アウトバウンド接続と同じアドレスを参照するインバウンド接続が、第2のデバイスに知られているポートのセットからの宛先ポートを使用している場合にのみ、第1のデバイスからのアウトバウンド接続を許可するようにさらにプログラムされる。
いくつかの実施形態では、第2のデバイスは、第1のデバイスからのすべてのアウトバウンド接続をブロックし、第1のデバイスが外部ネットワークのソースアドレスから開始されるインバウンド接続を受け入れることを許可にするようにさらにプログラムされる。
いくつかの実施形態では、第1のデバイスは、ハイパーテキスト転送プロトコル(HTTP)サーバとHTTPクライアントの両方を実行するようにプログラムされる。
いくつかの実施形態では、第2のデバイスは、HTTPクライアントからの外部ネットワーク内の遠隔デバイスへの接続の試みをブロックし、遠隔デバイスからの接続がHTTPサーバに到達することを許可するようにさらにプログラムされる。
いくつかの実施形態では、第2のデバイスは、ゲートウェイ、ルータ、ブリッジ、スイッチ、およびファイアウォールの少なくとも1つを含む。
いくつかの実施形態では、第2のデバイスは、さらに、外部ネットワーク内の1つまたは複数の中継コンピュータへの接続を開き、および、インバウンド接続の各インバウンド接続ごとに−−
各インバウンド接続が、1つまたは複数の中継コンピュータ以外の外部ネットワークにおける遠隔デバイスから1つまたは複数の中継コンピュータを介して受信された場合に、第1のデバイスへの各インバウンド接続を許可し、
1つまたは複数の中継コンピュータ以外の遠隔デバイスからの各インバウンド接続が、1つまたは複数の中継コンピュータを介して受信されない場合、各インバウンド接続が、第1のデバイスに接続を開くのをブロックする、ようにさらにプログラムされる。
いくつかの実施形態では、1つまたは複数の中継コンピュータは、遠隔デバイスからの要求を渡すために、第2のデバイスによって開かれた逆接続を使用して、遠隔デバイスと第2のデバイスとの間のプロキシとして機能することが可能である。
いくつかの実施形態では、1つまたは複数の中継コンピュータは、遠隔デバイスからの要求を渡すために、第2のデバイスによって開かれたVPNトンネルを介する逆接続を使用して、第2のデバイスからの接続のための仮想プライベートネットワーク(VPN)サーバとして機能することが可能である。
いくつかの実施形態では、第2のデバイスは、各アウトバウンド接続ごとに、各アウトバウンド接続のソースアドレスを評価し、各アウトバウンド接続のソースアドレスがローカルネットワーク内のアドレスと一致する場合は、各アウトバウンド接続の処理を控える、ようにプログラムされる。
いくつかの実施形態では、第2のデバイスは、単方向接続要求のみを許可するようにさらにプログラムされる。いくつかの実施形態では、第1のデバイスは、接続の受け入れと、接続の開始の両方を実行するようにプログラムされる。
いくつかの実施形態では、ネットワーク構築のためのシステムは、ローカルネットワーク内のコンピュータ間でデータを転送するように構成された少なくとも1つのネットワークデバイスを含むローカルネットワークを含む。第1のデバイスは、ローカルネットワークに接続され、少なくとも1つの処理デバイスと、ネットワーク通信を実行する手段とを備え、第1のデバイスはアウトバウンド接続を開始するようにプログラムされており、少なくとも1つのアウトバウンド接続はローカルネットワーク内のいずれかのコンピュータと対応している。第2のデバイスは、ローカルネットワークに接続され、ローカルネットワーク内のコンピュータ間の接続を管理するようにプログラムされており、第2のデバイスはまた、外部IPアドレスからの少なくとも1つのインバウンド接続を受け入れるようにプログラムされており、外部IPアドレスからのインバウンド接続は第1のデバイスへの参照を含む。第2のデバイスは、少なくとも1つの第1のアウトバウンド接続が、第1のデバイスへの参照を含むインバウンド接続によって先行されなかった場合、第1のデバイスからのローカルネットワーク内の第1のアドレスへの少なくとも1つの第1のアウトバウンド接続に対して、少なくとも1つの第1のアウトバウンド接続をブロックするようにさらにプログラムされる。
いくつかの実施形態では、ローカルネットワーク内のコンピュータは、第1のグループのデバイスおよび第2のグループのデバイスを含む。第2のデバイスは、第1の規則をローカルネットワーク内の第1のグループのデバイスに適用し、第2の規則をローカルネットワーク上の第2のグループのデバイスに適用するようにさらにプログラムされ得、第1の規則は、第2のデバイスが第1のグループから第2のグループへの接続をブロックするようにプログラムされるが、第2のグループから第1のグループへのローカル接続を許可するようにプログラムされるように、第2の規則と異なる。
いくつかの実施形態では、第2のデバイスは、ローカルネットワーク内の第2のアドレスへの第1のデバイスからの少なくとも1つの第2のアウトバウンド接続に対して、少なくとも1つの第2のアウトバウンド接続が、第2のアドレスを含む第1のデバイスへのインバウンド接続により先行されたかに関わらず少なくとも1つの第2のアウトバウンド接続を許可するようにさらにプログラムされる。
いくつかの実施形態では、第2のデバイスは、ゲートウェイ、ルータ、ブリッジ、スイッチ、プロキシ、およびファイアウォールのうちの1つである。
いくつかの実施形態では、第2のデバイスは、アドレス解決プロトコル(ARP)、マルチキャストドメインネームサービス(mDNS)、およびシンプルサービスディスカバリプロトコル(SSDP)のうちの少なくとも1つから得られた情報によってローカルネットワーク上のコンピュータを識別するようにプログラムされる。
いくつかの実施形態では、第2のデバイスは、少なくとも1つのコンピュータの名前およびディスクリプションによって、ローカルネットワーク上のコンピュータから少なくとも1つのコンピュータを識別するようにプログラムされる。
いくつかの実施形態では、第2のデバイスは、1つまたは複数のローカル接続を開始したローカルネットワーク上のコンピュータのうちの1つのコンピュータからの少なくとも1つのデータパケットをブロックすることによって、1つまたは複数のローカル接続をブロックするようにさらにプログラムされる。
いくつかの実施形態では、第2のデバイスは、1つまたは複数のローカル接続に応答して転送された、ローカルネットワーク上のコンピュータのうちの1つのコンピュータからの少なくとも1つのデータパケットをブロックすることによって、1つまたは複数のローカル接続をブロックするようにさらにプログラムされる。
いくつかの実施形態では、第2のデバイスは、第1のデバイスによって先に送信または受信されたパケットに関する情報を分析することによって第1のデバイスを識別するようにプログラムされる。
いくつかの実施形態では、第2のデバイスは、第1のデバイスが第1のアドレスに、少なくとも所定の時間間隔内に第1のアドレスからパケットを先に受信することなく、パケットを送信していた場合に、第1のデバイスを少なくとも1つのアウトバウンド接続を開始するものとして識別するようにプログラムされる。
本発明の利点が容易に理解されるように、上で簡単に説明した本発明のより具体的な説明は、添付の図面に示される特定の実施形態を参照して提供されるだろう。これらの図面は、本発明の典型的な実施形態を例示しているだけであり、それゆえ、その範囲を限定すると見なされるべきではないと理解され、本発明は、添付の図面を使用して追加の特異性および詳細を用いて記載されおよび説明されるだろう。
本発明の一実施形態に従って管理されるローカルデバイスとリモートコンピュータとの間の接続を有するネットワーク環境の概略ブロック図である。 本発明の一実施形態に従って管理される多数のローカルデバイスとリモートコンピュータとの間の接続を有するネットワーク環境の概略ブロック図である。 本発明の一実施形態に係るローカルデバイスからのアウトバウンド接続を管理するための処理フロー図である。 本発明の一実施形態に従って管理される、VPNトンネルを介したローカルデバイスと認可されたリモートコンピュータとの間の接続を有するネットワーク環境の概略ブロック図である。 本発明の一実施形態に係るローカルネットワーク内のデバイスとの遠隔通信を保証する方法の処理フロー図である。 本発明の一実施形態に係るローカルネットワーク内のデバイスとの遠隔通信を保証する方法の処理フロー図である。 本発明の一実施形態に係るVPNトンネルを介したローカルネットワーク内のデバイスとの遠隔通信を保証する方法の処理フロー図である。 本発明の一実施形態に係るローカルネットワーク内のデバイス間の通信を管理する方法の処理フロー図である。 本発明の一実施形態に係るローカルネットワーク内のデバイス間の通信を管理する方法の処理フロー図である。 本発明の一実施形態に従って管理されるローカルネットワーク内の2つのデバイス間の接続を有するネットワーク環境の概略ブロック図である。 本発明の一実施形態に従って管理される、ローカルネットワーク内の3つのデバイス間の接続を有するネットワーク環境の概略ブロック図である。 本発明の一実施形態に従って管理される、リモートコンピュータとローカルネットワーク内のデバイスとの間のダイレクト接続を有するネットワーク環境の概略ブロック図である。 本発明の一実施形態に係る保護されたデバイスへのダイレクト接続を管理する方法の処理フロー図である。 本発明の一実施形態に係る保護されたデバイスへのダイレクト接続を管理する方法の処理フロー図である。 本発明の一実施形態に係る保護されたデバイスへのダイレクト接続を管理する方法の処理フロー図である。 本発明の一実施形態により管理される、VPNトンネルの内部および外部のHTTP接続を有するネットワーク環境の概略ブロック図である。 本発明の一実施形態に従って管理される異なる通信フレームワークを使用する接続を有するネットワーク環境の概略ブロック図である。 本発明の一実施形態に従って管理される、DNSサーバによって制御される接続を有するネットワーク環境の概略ブロック図である。 本発明の一実施形態に係るコンピュータデバイス間の接続ルートを管理する方法の処理フロー図である。 本発明の一実施形態に係る初期接続要求に応じてコンピュータデバイス間の接続ルートを管理する方法の処理フロー図である。 本発明の一実施形態に係るDNSサーバによるコンピュータデバイス間の接続を管理する方法の処理フロー図である。 本発明の一実施形態に係るDNSサーバによるコンピュータデバイス間の接続を管理する方法の処理フロー図である。 本明細書で開示されるシステムおよび方法を実装するのに適したコンピュータの概略ブロック図である。
本明細書中で概して記載され、図面に説明されるような本発明の構成要素は、多種多様な異なる構成で配置され、設計され得ることが容易に理解されるであろう。それゆえ、図面に表されるように本発明の実施形態の以下のより詳細な説明は、請求されるような本発明の範囲を限定する意図はなく、単に本発明に係る現在考えられる実施形態の特定の例を表している。現在記載されている実施形態は、全体を通して類似する部材には、類似する参照番号で示されている図面を参照することによって最もよく理解されるであろう。
本発明に係る実施形態は、装置、方法、またはコンピュータプログラム製品として実施され得る。従って、本発明は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態(ファームウェア、常駐ソフトウェア、マイクロコードなどを含む)、またはソフトウェアおよびハードウェアの態様を組み合わせた実施形態の形態を取り得、これらは全て、本明細書では概して「モジュール」または「システム」と参照され得る。さらに、本発明は、媒体に具体化されたコンピュータ使用可能プログラムコードを有する表現の任意の有形媒体に具体化されたコンピュータプログラム製品の形態を取り得る。
1つ以上のコンピュータ使用可能媒体またはコンピュータ可読媒体の任意の組み合わせを利用してよい。例えば、コンピュータ可読媒体は、ポータブルコンピュータディスケット、ハードディスク、ランダムアクセスメモリ(RAM)デバイス、読み取り専用メモリ(ROM)デバイス、消去可能プログラマブル読み出し専用メモリ(EPROMまたはフラッシュメモリ)デバイス、携帯型コンパクトディスク読み取り専用メモリ(CDROM)、光記憶デバイス、および磁気記憶デバイスのうちの1つまたは複数を含み得る。選択された実施形態では、コンピュータ可読媒体は、命令実行システム、装置、またはデバイスによって使用される、或いは命令実行システム、装置、またはデバイスと接続して使用されるプログラムを含む、格納する、通信する、伝播する、または転送することができる任意の非一時的媒体を含み得る。
本発明の動作を実行するためのコンピュータプログラムコードは、Java(登録商標)のようなオブジェクト指向プログラミング言語を含む1つまたは複数のプログラミング言語の任意の組み合わせで書かれてもよい。スモールトーク、C++など、および「C」プログラミング言語または同様のプログラミング言語などの従来の手続き型プログラミング言語を使用してもよく、HTML、XML、JSONなどの記述言語またはマークアップ言語を使用してもよい。プログラムコードは、スタンドアローンのソフトウェアパッケージとして完全にコンピュータシステム上で、スタンドアローンのハードウェアユニット上で、部分的にコンピュータからある程度離して配置されたリモートコンピュータ上で、または完全にリモートコンピュータまたはサーバ上のコンピュータシステム上で実行することができる。後者のシナリオでは、リモートコンピュータは、ローカルエリアネットワーク(LAN)またはワイドエリアネットワーク(WAN)を含む任意のタイプのネットワークを介してコンピュータに接続されてよく、または外部コンピュータに接続されてもよい(例えば、インターネットサービスプロバイダを使用してインターネットを介して)。コンピュータネットワークは、インターネットプロトコル以外のトランスポートプロトコルを使用してもよい。これに対応して、本発明は、IPアドレス以外のタイプのネットワークアドレスに対しても実施することができる。
本発明は、本発明の実施形態に係る方法、装置(システム)およびコンピュータプログラム製品のフローチャート図および/またはブロック図を参照して以下で説明される。フローチャート図および/またはブロック図の各ブロック、ならびにフローチャート図および/またはブロック図におけるブロックの組み合わせは、コンピュータプログラム命令またはコードによって実施できることが理解されよう。これらのコンピュータプログラム命令は、汎用コンピュータ、専用コンピュータ、または他のプログラマブルデータ処理装置のプロセッサに提供され、コンピュータまたは他のプログラマブルデータ処理装置のプロセッサを介して実行する命令が、フローチャートおよび/またはブロック図の(複数の)ブロックにおいて指定された機能/動作を実装するための手段を作成するように機械を製造してよい。
これらのコンピュータプログラム命令はまた、コンピュータ可読媒体に格納された命令が、フローチャートおよび/またはブロック図の(複数の)ブロックにおいて指定された機能/動作を実装する命令手段を含む製造品を製造するように、コンピュータまたは他のプログラマブルデータ処理装置を特定の方式で機能するように指示できる非一時的なコンピュータ可読媒体に格納されてもよい。
コンピュータプログラム命令はまた、コンピュータまたは他のプログラマブル装置で実行する命令が、フローチャートおよび/またはブロック図の(複数の)ブロックで指定された機能/動作を実装するためのプロセスを提供するように、一連の動作ステップをコンピュータまたは他のプログラマブル装置上で実行させて、コンピュータ実装プロセスを生成するために、コンピュータまたは他のプログラマブルデータ処理装置にロードされる。
本発明の一態様では、ローカルネットワーク内のデバイスとの遠隔通信を管理するためのシステムが説明される。このシステムは、ローカルコンピュータネットワークに接続された第1のデバイスを含み、この第1のデバイスは、ローカルネットワークの外部のデバイスに関連する外部ネットワークアドレスへの接続を開始し、外部ネットワークアドレスから開始された接続に応答する手段を有する。システムは、第1のデバイスと外部ネットワークアドレスとの間のデータ交換を制御する手段を有する第2のデバイスをさらに含む。
第2のデバイスは、第1のデバイスが1つまたは複数の外部ネットワークアドレスへの接続を開始するのをブロックする手段をさらに含み得る。第2のデバイスは、1つまたは複数の外部ネットワークアドレスから開始された接続を受け入れ、それらを第1のデバイスに渡す手段を有する。第2のデバイスは、第1のデバイスへの接続を開始することが許可されている1つまたは複数の同じ外部ネットワークアドレスへの要求を第1のデバイスが開始するのをブロックする手段を有し得る。
一実施形態では、第2のデバイスは、第1のデバイスによって開始されたアウトバウンド接続うちの少なくとも1つのアウトバウンド接続の外部アドレスが、少なくとも1つのアウトバウンド接続の外部アドレスからのインバウンド接続によって先行されなかった場合に、その少なくとも1つのアウトバウンド接続をブロックする。
いくつかの例では、第2のデバイスは、少なくとも1つのアウトバウンド接続の外部アドレスが、少なくとも1つのアウトバウンド接続の外部アドレスからのインバウンド接続によって先行されている場合、少なくとも1つのアウトバウンド接続に対して、少なくとも1つのアウトバウンド接続の外部アドレスへの少なくとも1つのアウトバウンド接続を許可するように更にプログラムされている。
別の実施形態では、第2のデバイスは、許可された識別子のリストから少なくとも1つのネットワーク識別子と一致するものを除いて、第1のデバイスによって開始されたすべての要求をブロックする。許可されたネットワーク識別子は、ドメイン名、IPアドレスおよびポートのグループからの1つまたは複数を含み得る。別の実施形態では、第2のデバイスは、第1のデバイスによって開始された外部ネットワークアドレスへのすべての接続をブロックする。
第1のデバイスはHTTPサーバとHTTPクライアントの両方として機能し得、一方、第2のデバイスはHTTPクライアントから遠隔デバイスへの接続の試みをブロックするが、遠隔デバイスからの接続がHTTPサーバに到達することを許可する。
いくつかの実施形態では、第2のデバイスは、ゲートウェイ、ルータ、ブリッジ、スイッチ、およびファイアウォールの少なくとも1つを含み得る。いくつかの実施形態では、第1のデバイスと外部ネットワークアドレスとの間のデータ交換を制御するための第2のデバイスの手段は、プロキシサーバを含む。例えば、外部ネットワークアドレスから開始された接続要求を受け入れるようにプロキシサーバは、プログラムされてよい。プロキシサーバは、ローカルネットワークを介して第1のデバイスとの接続をさらに開始し、第1のデバイスに要求データを渡す。プロキシサーバは、ローカルネットワークを介して第1のデバイスから応答を受信し、それを外部ネットワークアドレスに渡す。
プロキシサーバは、接続要求と共に提示された情報から第1のデバイスの識別子を抽出し得、次に、アドレス解決プロトコル(ARP)、マルチキャストドメインネームサービス(mDNS)、およびシンプルサービスディスカバリプロトコル(SSDP)の少なくとも1つを使用して、要求された識別子からデバイスのローカルネットワークアドレスを決定し得る。
いくつかの実施形態では、システムは、ローカルネットワークの外部に位置する中継コンピュータへの1つまたは複数の接続を開くようにプログラムされた第2のデバイスをさらに含み、中継コンピュータは、外部ネットワークアドレスからの接続要求を受け入れ、それらを第2のデバイスに渡すことが可能である。第2のデバイスはさらに、第2のデバイスによって中継コンピュータに開かれた少なくとも1つの接続を通じて1つまたは複数の接続が受信された場合、外部ネットワークアドレスからのそれらの接続を許可する。第2のデバイスは、中継コンピュータのバイパスにおいて、外部ネットワークアドレスからの何らかの接続が、対応するネットワークアドレスから直接受信された場合、それらの接続をブロックするように、さらにプログラムされ得る。
いくつかの実施形態では、1つまたは複数の中継コンピュータは、遠隔デバイスからの要求を渡すために第2のデバイスによって開かれた逆接続を使用して、遠隔デバイスと第2のデバイスとの間のプロキシとして機能することができる。いくつかの実施形態では、1つまたは複数の中継コンピュータは、遠隔デバイスからの要求を渡すために第2のデバイスによって開かれたVPNトンネルを介する逆接続を使用して、第2のデバイスからの接続のためのVPNサーバとして機能することができる。いくつかの実施形態では、ローカルネットワーク内のデバイス間の通信を管理するシステムは、ローカルネットワーク内の複数のデバイス間のトラフィックを制御する手段を有する第1のデバイスを含む。ローカルネットワーク内の複数のデバイスは、同じネットワーク上の他のデバイスとのローカル接続を開始し、同じネットワーク上の他のデバイスからのローカル接続に応答することができる。第1のデバイスは、ローカルネットワーク上の1つまたは複数のデバイスによって開始されたローカル接続をブロックするようにさらにプログラムされており、一方で、これらのデバイスの1つまたは複数がローカルネットワーク上の他のデバイスによって開始されたローカル接続に応答することを許可する。
いくつかの実施形態では、第2のデバイスは、外部IPアドレスからの少なくとも1つのインバウンド接続を受け入れるようにプログラムされ、外部IPアドレスからの接続は第1のデバイスへの参照を含む。第2のデバイスは、第1のデバイスからのローカルネットワーク内の第1のアドレスへの少なくとも1つの第1のアウトバウンド接続に対して、少なくとも1つの第1のアウトバウンド接続が、第1のデバイスへの参照を含むインバウンド接続に先行されなかった場合、少なくとも1つの第1のアウトバウンド接続をブロックするようにさらにプログラムされる。
いくつかの例では、第2のデバイスは、ローカルネットワーク内の第2のアドレスへの第1のデバイスからの少なくとも1つの第2のアウトバウンド接続に対して、少なくとも1つの第2のアウトバウンド接続が、第2のアドレスを含む第1のデバイスへのインバウンド接続によりが先行されたか否かに関わらず、少なくとも1つの第2のアウトバウンド接続を許可するようにさらにプログラムされる。
1つの他の実施形態では、第1のデバイスは、ローカルネットワーク上の第1および第2のグループのデバイスに異なる規則を適用し、第1のグループから第2のグループへの接続をブロックするが、第2のグループから第1のグループへのローカル接続を許可する。1つの例では、1つまたは複数のデバイスから少なくとも1つのデバイスへのローカル接続が許可され、一方で、同じ1つまたは複数のデバイスから少なくとも1つの他のデバイスへのローカル接続はブロックされる。
第1のデバイスは、例えば、ゲートウェイ、ルータ、ブリッジ、スイッチ、プロキシまたはファイアウォールであってよい。いくつかの例では、第1のデバイスは、アドレス解決プロトコル(ARP)、マルチキャストドメインネームサービス(mDNS)、およびシンプルサービスディスカバリプロトコル(SSDP)のうちの少なくとも1つから得られた情報によって、ローカルネットワーク上の他のデバイスを識別する。
ブロックされるべき接続を有するローカルネットワーク上の1つまたは複数のデバイスは、その名前またはディスクリプションによって識別され得る。一例では、これらのデバイスの少なくとも1つは、第1のデバイスのユーザによって指定される。第1のデバイスは、例えば、接続を開始するデバイスからの少なくとも1つのデータパケットをブロックすることによって、1つまたは複数のローカル接続をブロックし得る。いくつかの例では、第1のデバイスは、他のデバイスによって開始された接続に応答して、デバイスからの少なくとも1つのデータパケットをブロックすることによって、1つまたは複数のローカル接続をブロックする。いくつかの実施形態では、第1のデバイスは、ローカル接続を開始するデバイスを、その同じデバイスによって先に送信または受信されたパケットに関する情報を分析することによって(例えば、少なくとも所定の時間間隔の間にデバイスからパケットを前もって受信することなく、このデバイスが他のデバイスにパケットを送信していたことを検出することによって)識別する。
いくつかの実施形態では、保護されたデバイスへのダイレクト接続を管理するシステムは、コンピュータネットワークに接続された第1のデバイスを含み、第1のデバイスは、コンピュータネットワークに接続された1つまたは複数のデバイスへの接続を開始し、第1のデバイスが利用可能な規則のセットを使用することによって、1つまたは複数のデバイスによって開始された接続を受け入れるか拒否するかを決定するようにプログラムされる。
システムは、コンピュータネットワークに接続された第2のグループの1つまたは複数のデバイスをさらに含み得、第2のグループの少なくとも1つのデバイスは、第1のデバイスによって開始された1つまたは複数の接続を受け入れることができ、およびこれらの接続の少なくとも1つを介して第1のデバイスにデータを送信することができる。そのようなシステムにおける第1のデバイスは、第2のグループのデバイスへの接続を開始するようにさらにプログラムされ得る。次に、第1のデバイスは、この接続を介して、第3のデバイスによって開始されると予想される第1のデバイスへの1つまたは複数の接続の1つまたは複数の第1の識別子に関する情報を受信する。第1のデバイスは、次に、1つまたは複数の第1の識別子に関連する1つまたは複数の接続を受け入れるために、1つまたは複数の規則を変更するようにプログラムされ得る。第1のデバイスは、1つまたは複数の第1の識別子を含む第3のデバイスからの1つまたは複数の接続を受け入れるようにさらにプログラムされる。その後、少なくとも1つの所定の条件を検出すると、第1のデバイスは、1つまたは複数の第1の識別子に関連する1つまたは複数の接続をブロックするために、1つまたは複数の規則を変更するようにプログラムされる。
いくつかの例では、第1の識別子は、ソースIPアドレス、ソースポート、トランスポートプロトコル、およびデータパターンの組からの予想される接続の1つまたは複数のパラメータを含み得る。いくつかの実施形態では、第1のデバイスは、ローカルネットワーク内の1つまたは複数のデバイスに接続される。そのような実施形態では、第1のデバイスは、第1の識別子に関連付けられた接続要求を受信し得、次に、この要求をローカルネットワーク内のデバイスに渡し得る。1つの例では、外部ネットワークアドレスから開始された接続要求を受け入れるプロキシサーバを含むローカルネットワーク内のデバイスに要求を渡す手段は、ローカルネットワーク内のデバイスとの接続を開始し、そのデバイスに要求データを渡し、ローカルネットワーク内のデバイスから応答を受信し、その後、それを外部ネットワークアドレスに渡す。1つの例では、プロキシサーバは、接続要求と共に提出された情報からローカルネットワーク内のデバイスの識別子を抽出し、次に、アドレス解決プロトコル(ARP)、マルチキャストドメインネームサービス(mDNS)およびシンプルサービスディスカバリプロトコル(SSDP)のうちの少なくとも1つを使用することによって、要求された識別子からデバイスのローカルネットワークアドレスを決定する。
いくつかの実施形態では、第3のデバイスからの第1のデバイスへの接続は、トランスポートレベルセキュリティプロトコル(TLS)、ハイパーテキスト転送プロトコル(HTTP)、ウェブリアルタイム通信(WebRTC)プロトコルおよびICE(Interactive Connectivity Establishment、インタラクティブ接続確立)フレームワークを使用するプロトコルのグループのうちのプロトコルを使用して確立される。
いくつかの実施形態では、第2のグループの少なくとも1つのデバイスは、第1のデバイスとの接続を確立するための第3のデバイスの適格性を検証するようにプログラムされ、第2のグループ内の少なくとも1つのデバイスは、第1のデバイスとの接続を確立するための第3のデバイスの適格性が検証された後でのみ、第1の識別子を第1のデバイスに送信する。
いくつかの例では、1つまたは複数の既に許可された接続をブロックするための少なくとも1つの所定の条件は、それらが許可されてから開かれた接続の数、それらのうちの1つまたは複数が閉じられた後に残っている許可された接続の数、および1つまたは複数の接続が許可されてからの時間間隔が所定の閾値を超えこと、のグループに基づいている。別の例では、1つまたは複数の既に許可された接続をブロックするための少なくとも1つの所定の条件は、許可された接続によって使用されるものとは異なるネットワークアドレスからの1つまたは複数の接続を第1のデバイスがブロックすることである。
いくつかの実施形態では、第2のグループからのデバイスへの接続を開始した後だが、第1の識別子を受信する前に、第1のデバイスは、トランスポートレイヤセキュリティ(TLS)プロトコルを使用して第2のデバイスを認証する。記載されたシステムの一例では、1つまたは複数の規則を変更することは、第1のデバイス上のファイアウォール規則を変更することを含む。
別の実施形態では、コンピュータデバイス間の接続ルートを管理するシステムは、コンピュータネットワークに接続された第1のデバイスを含み、第1のデバイスは、コンピュータネットワークに接続された1つまたは複数のデバイスへの接続を開始し、コンピュータネットワークに接続された1つまたは複数のデバイスによって開始された接続を受け入れるようにプログラムされる。システムはさらに、コンピュータネットワークに接続された第2のグループの1つまたは複数のデバイスを含み、第2のグループのデバイスはそれぞれが、(a)第1のデバイスによって開始された少なくとも1つの接続を受け入れ、(b)第1のデバイスによって開かれた接続を介して、別のデバイスから第1のデバイスに少なくとも1つの接続要求を転送し、(c)第1のデバイスとのダイレクト接続を確立するために使用できる第1のデバイスの識別子を別のデバイスに提供し、第2のグループをバイパスするようにプログラムされる。
第2のグループのデバイスは、(a)コンピュータネットワークに接続された第3のデバイスによって開始された接続を受け入れ、(b)第3のデバイスが第1のデバイスとのダイレクト接続を確立することが許可されるかどうかを判定し、許可される場合に、第1のデバイスの識別子を第3のデバイスに提供することを含む動作を実行するようにプログラムされ得る。
いくつかの例では、第3のデバイスは、第1のデバイスとのダイレクト接続を確立することが許可されず、第1のデバイスへのその接続は、第1のデバイスによって開かれた第2のグループへの接続を介して転送される。一例では、第3のデバイスが第1のデバイスとダイレクト接続を確立することを許可されるかどうかを判定することは、第3のデバイスに認証証明書を提供するように要求を送信し、および応答で受信された証明書を評価すること、を含む。
一実施形態では、第3のデバイスからの第2のグループのデバイスへの接続の1つまたは複数のパラメータに応じて、第2のグループのデバイスは、第3のデバイスが第1のデバイスへのダイレクト接続を許可されるかどうかを評価するか、または、そのような評価を行うことなく第1のデバイスによって開かれた接続を介して第1のデバイスに第3のデバイスからの接続要求を転送するかのいずれかを実行する。
いくつかの例では、第2のグループのデバイスは、第3のデバイスが第1のデバイスに接続することが許可されるかどうかを評価し、この評価の結果は、第1のデバイスによって開かれた接続を通じて常に送信されるべき接続要求か、または、第1のデバイスに直接送信されることが許可されてもよい接続要求かの接続要求によって異なる。
例えば、第3のデバイスからの接続要求は、異なるリソースロケータを使用して、第1のデバイスによって開かれた接続を通過すべき要求を識別してもよく、または第1のデバイスにダイレクト接続することを許可されてもよい。
いくつかの実施形態では、第1のデバイスによって開かれた接続を介して常に転送されるべき第3のデバイスからの第2のグループへの接続要求は、第1のデバイスとのダイレクト接続を確立することが許可され得る要求とは異なるネットワークアドレスに送信される。
いくつかの実施形態では、第1のデバイスによって開かれる接続を介して常に転送される第3のデバイスからの第2のグループへの接続要求は、HTTPプロトコルを使用し、一方、第1のデバイスとのダイレクト接続を確立することが許可され得る要求は、Interactive Connectivity Establishment(ICE:インタラクティブ接続確立)フレームワークを使用する。
いくつかの実施形態では、第2のグループのデバイスは、ドメインネームサーバ(DNS)を含み、このサーバは第3のデバイスからドメイン名を解決する要求を受信し、および、第3のデバイスが第1のデバイスとのダイレクト接続を確立することが許可される場合に、第1のデバイスのIPアドレスを返し、さもなければ、第1のデバイスのIPを返すことをやめる。
いくつかの実施形態では、第2のグループのデバイスは、逆接続をサポートすることができる仮想プライベートネットワーク(VPN)サーバを含み、また、第1のデバイスによって確立された接続はVPNトンネルである。
第1のデバイスがローカルネットワーク内の1つまたは複数のデバイスに接続されるいくつかの実施形態では、第1のデバイスは、ローカルネットワークの外部の1つの他のデバイスからデータを受信し、そのデータをローカルネットワーク内のデバイスに転送し、その後、ローカルネットワークの外部にあるデバイスに応答を転送する。例えば、第1のデバイスは、ゲートウェイ、ルータ、ブリッジ、スイッチ、プロキシおよびファイアウォールのうちの1つであり得る。
図1は、本発明の一実施形態に従って管理されるローカルデバイス130とリモートコンピュータ110との間の接続を有する例示的なネットワーク環境を示す。この実施形態では、外部ネットワークアドレスへの接続を開始することと、および外部ネットワークアドレスから開始された接続に応答することの両方ができる「モノのインターネット(Internet of Things)」デバイス130(例えば、電源スイッチ、セキュリティカメラ、光源など)は、ローカルネットワーク上のデバイスとワイドエリアネットワーク(WAN)134内のコンピュータ110との間でトラフィックをルーティングするルータ120を介してローカルネットワーク132に接続される。ルータ120は、ローカルネットワーク132上のデバイス130から一組の外部IPアドレスへのアウトバウンド接続をブロックすることができてよく、一方で、同じ組の外部IPアドレスからの着信接続を許可する。このようなブロックは、例えば、ルータ120上のファイアウォール規則を変更することによって、またはローカルネットワーク132から出て行くパケットをブロックするルータ120に追加される特別なモジュールを備えることによって実装することができる。
図1は、デバイス130からのすべてのアウトバウンド接続134がブロックされ、一方で、すべてのインバウンド接続136が受け入れられ、デバイス130に転送される場合を例示する。図示された例では、すべての外部ネットワークアドレスは、デバイス130からの接続を受信することがブロックされるが、リモートコンピュータ110は、同じ外部アドレスから自身の接続を開始することが許可される。
これは、ルータ120を介してデバイス130と自機との接続をどのように開始するかを知らない任意のサーバにローカルネットワーク132から得られた何らかのデータを通知する能力を効果的に無効にする。たとえ、デバイス130が信頼できなくなったとしても、この変更は、デバイス130が機密データを漏洩したり、ボットネットの一部になることを防ぐ。
いくつかの実施形態では、ルータ120は、IPSEC(インターネットプロトコルセキュリティ)VPN(仮想プライベートネットワーク)などの仮想プライベートネットワーク(VPN)サーバと組み合わされてもよく、また、WAN134内のデバイス110のうちの1つは、VPNクライアントを使用して、デバイス130への自機の接続を開始してよい。この例では、デバイス110のVPNクライアントは、接続を確立する前に、ルータ120またはデバイス130によって、その認証情報(ログイン)の提示を要求され得、認証されたデバイスだけがローカルネットワーク132内のデバイス130に接続できることを保証する。
ネットワーク132からのすべての発信接続をブロックすることによって、いくつかのデバイスが自動更新を受信すること、またはアラートを発行することを防ぎ得る。図2Aは、セキュリティカメラ220および電源スイッチ230などの複数のローカルデバイスと、リモートコンピュータ205および110との間の接続を有するネットワーク環境を例示する。
この実施形態では、ルータ210は、電源スイッチ230からのすべてのアウトバウンド接続が、アウトバウンド接続によって使用される外部IPアドレスからのインバウンド接続によって先行されない場合、電源スイッチ230からのすべてのアウトバウンド接続をブロックする。図示される実施形態では、デバイス110のうちの1つは、インバウンド接続(C4)をルータ210に送信し、接続は、電源スイッチ230に渡される。ルータ210は、接続C4のソースIPアドレスを記憶し、電源スイッチ230がそのソースIPアドレスへのアウトバウンド接続要求(C5)を発行した後、ルータ210はこの要求を通過させる。
いくつかの例では、外部デバイス110のソースIPアドレスからのインバウンド要求がルータ210の1つまたは複数の特定の識別子に対して発行された場合にのみ、外部デバイス110のソースIPアドレスが許可されたアウトバウンドIPアドレスのリストに追加される。例えば、インバウンド要求がルータ210上の特定のポートに発行されるか、または特定のURLパターンを含む場合にのみ、ソースIPアドレスがリストに追加される。いくつかの実施形態では、このようなポートは一度しか使用することができない:同じポートに対するその後の要求はすべて、不正なアクセスを防ぐために、許可されたリストにそれ以上のIPアドレスを追加することはない。
図示される実施形態では、ルータ210は、カメラ220からの選択されたアウトバウンド接続(C1)が、同じIPアドレスからのインバウンド接続によって先行されない場合でも、カメラ220からの選択されたアウトバウンド接続(C1)がサーバ205に到達することを許可する;カメラ220からの全ての他のアウトバウンド接続はブロックされる(C2)。例えば、サーバ205は、動きが検出されたときにセキュリティカメラが警報を送信することを許可する電子メールサーバとすることができる。
ルータ210は、例えばドメインまたはIPアドレスによって許可された接続を識別することができる。許可されたアウトバウンド接続のホワイトリストがドメインを含む場合、ルータはアウトバウンド接続をブロックするかどうかを決定する前に、逆引きDNSルックアップを実行してそのIPアドレスに対応するドメインを取得し得る。
いくつかの実装では、ルータ210は、許可すべきもの(ホワイトリスト)を格納する代わりに、ブロックすべきアウトバウンド接続識別子(ドメイン、IPアドレス、ポート、URL)のリスト(ブラックリスト)を格納し得る:例えば、ルータ210は、悪意のあるサーバの既知のドメインおよびIPアドレスのリストを格納し得る。しかしながら、この情報は不完全であり得、頻繁な更新が要求されることがある。好ましい実装は、例えば、対応するIoTデバイスのベンダーサイトのドメインまたはIPアドレスなど、許可される識別子の短いリストを格納し得る。
図2Aの実施形態では、デバイス110は、VPNクライアントをインストールすることなく、ローカルネットワーク内のデバイス220,230との接続を確立することが許可される。着信接続(C3、C4)は、ルータ210からプロキシサーバ215に渡される。このプロキシサーバは、外部IPアドレスからの接続要求を受け入れ、宛先ローカルデバイスを決定し、そのローカルデバイスとの接続を確立し、ローカルデバイスとWAN134上のデバイスとの間でデータを渡す。
一例では、クライアントコンピュータ110は、既知のドメインに対してHTTPまたはHTTPS要求を発行するために通常のウェブブラウザを使用してよい。そのようなドメインは、例えば、ルータ210のIPアドレスへと解決してもよく、一方で、ローカルネットワーク132内の意図された受信デバイス220,230を指定するサブドメインを含んでもよい。
この例では、プロキシ215は、ホストヘッダ(HTTP)またはSNIヘッダ(HTTPS)からサブドメインを抽出し、この識別子を使用して、ローカルネットワーク132上の受信デバイス220,230のIPアドレスを見つける。これを行うために、マルチキャストドメインネームサービス(mDNS)またはシンプルサービスディスカバリプロトコル(SSDP)のようなサービスディスカバリプロトコルを使用して、ローカルネットワーク132上のデバイスのディスクリプション(説明:description)を取得し、要求された識別子に関連付けられた文字列と一致するディスクリプションを、そのMACアドレスを取得するための特定のデバイスのディスクリプションで見つけて、その後、アドレス解決プロトコル(ARP)テーブルの情報を使用して、要求の意図された受け手のIPアドレスを取得することが行われ得る。他の既知の解決策およびプロトコルを、ローカルネットワーク132内のデバイス220,230のIPアドレスを発見するために、使用することができる。図示される実施形態では、ローカルデバイスへの接続要求が外部IPアドレスから受信された後に、そのような発見が起こる。
いくつかの実装では、プロキシ215は、ローカルネットワーク132とWAN134との間のデータ交換を制御することを担当する別のモジュール(例えば、ゲートウェイ、アクセスポイント、ブリッジ、またはファイアウォールなど)またはルータ210と組み合わせられてよい。他の実装では、プロキシ215は、ルータ210からのすべての着信接続を受信し、その後、ローカルネットワーク132内の意図された受け手にそれらを転送するために使用されるスタンドアローンデバイスとして配備することができる。
図2Bは、本発明の一実施形態に係るローカルデバイスからのアウトバウンド接続を管理するための方法の処理フロー図である。外部デバイス110からのインバウンド要求を受信する前に、IoTベンダーが自身のサーバへのアウトバウンド接続を許可できるように、ルータ210は、自機のIPおよびポート(IP_B:Port_1)をアナウンスする。そのようなアナウンスは、例えば、ルータのIPおよびポートを公開する前にIoTベンダーを認証し得る安全な第三者認証サービスを介して送信することができる。
IoTデバイス(例えば、220,230)は、その後、そのソースIP_Aから要求を発行する。ルータ210は、この要求を受信し(ステップ240)、宛先ポートが許可されたポートのリストと一致するかどうか(ステップ250)、および、これがそのポートへの最初のアクセスであるかどうか(ステップ260)を検査する。これらの2つの条件が満たされる場合にのみ、許可されたアウトバウンドIPのリストに、IP_Aがルータ210によって格納される(ステップ270)。
図3は、本発明の実施形態に従って管理されるVPNトンネルを介して、ローカルデバイス130と認証されたリモートコンピュータ310との間の接続を有するネットワーク環境において、ルータ350のIPアドレスが外部デバイス310にさらされることを防ぐシステムを例示する。
この実施形態では、ルータ350はVPNクライアントを含み、これを使用してVPNサーバ340との接続352を確立する。VPNサーバ340とVPNクライアントの両方は、例えば、事前共有鍵または秘密鍵/公開鍵交換を使用して互いに認証して、双方のパーティが信頼できることを確認してよい。この実装では、VPNサーバ340は、ルータ350によって開かれたトンネル352を介して、逆接続を使用してWAN134内の外部ネットワークアドレスからルータ350に要求を渡すことができる。図示された実施形態では、クライアント310,320は最初に、認証されたクライアント(例えば、有効なユーザ名とパスワードを提示するもの)のみがルータ350に要求を発行することを許可されることを請け負う認証装置330に接続する。図示された実施形態では、認証装置330は、無効なクライアントをブロックしながら、有効なクライアントからVPNサーバ340に接続要求を渡すプロキシと組み合わせられる。他の実施形態では、認証されたクライアントは、VPNサーバ340に直接的に要求を発行すること、または、認証を完全にバイパスしてVPNサーバ340に接続することを許可され得る。
図示された実施形態では、ルータ350は、そのルータによってVPNサーバ340などの中継サーバに開かれた接続352を介して着信接続354が受信された場合にのみ、それらの着信接続354を受け入れる。ルータ350は、VPNトンネルをバイパスするあらゆる着信接続356をブロックし、悪用やその他の攻撃の可能性を防ぐ。この実装では、ローカルデバイス130に接続するクライアント310,320は、ルータ350またはデバイス130或いは他の任意の構成要素から、ルータ350の実際のIPアドレスを受信せず、プロキシ330またはVPNサーバ340にのみ接続することができる。これは、分散型サービス拒否(DDoS)攻撃などの外部攻撃からルータ350を隠すさらなるセキュリティを提供する。
別の実装では、ルータ350は、VPNサーバ340の代わりに、外部HTTPまたはHTTPSプロキシサーバとの接続352を確立し得る。このサーバは、各外部クライアント310,320のためのルータ350への新たな接続を確立する必要なく、外部クライアント310,320からルータ350へデータを渡すために、確立された接続352を使用することができるべきである。
また、図4Aおよび図4Bは、本発明の一実施形態による、ローカルネットワーク132内のデバイス130との遠隔通信を保護する方法を例示する。特に図4Aを参照すると、ローカルネットワーク132とWAN134との間のデータ交換を制御するデバイス(以下、「制御デバイス」、例えばルータ350)は、ローカルネットワーク上のdev_1(例えば、デバイス130のうちの1つ)からの要求を受信して、外部IPアドレスIP_Aとのアウトバウンド接続を確立する(ステップ410)。次に、制御デバイスは、例えば、ホワイトリスト、ブラックリストまたは他の事前に構成された規則に従ってなど、dev_1がアウトバウンド要求を開始することを許可されるかどうかを検査し(ステップ420)、そうでなければ、アウトバウンド要求をブロックする。例えば、十分なセキュリティを維持するために、あるデバイスのベンダーが信頼できない場合にとりわけ、そのデバイスは、アウトバウンド接続の開始が決して許可されなくてよい。いくつかの実装では、このステップは省略することができる。この方法は、制御デバイスによって、dev_1が少なくともいくつかのアウトバウンド接続を開始し得るかどうかを評価することをさらに含み得る。例えば、アウトバウンド接続は、ホワイトリスト内のIPアドレスへの接続を試み得る(ステップ430)。そうでない場合、そのようなアウトバウンド接続要求はブロックされることになる。そうである場合、この要求は宛先IPに送信される(ステップ440)。他の実装では、ホワイトリストの代わりにブラックリストを使用することができ、または、IPアドレスの代わりに別の識別子(例えば、ドメイン、ポートまたはプロトコル、またはそのような識別子の組み合わせ)を使用することができる。
図4Bを参照すると、制御デバイスは、ローカルネットワーク内のデバイスdev_1との接続を確立するための要求を外部IPアドレスIP_Aから受信する(ステップ450)。dev_1のローカルIPアドレスを決定した後(ステップ460)、dev_1に要求が送信され(ステップ470)、応答がIP_Aに転送して戻される。本発明によれば、そのような着信要求が、同じローカルデバイスからのアウトバウンド接続要求を受信するのがブロックされた同じ範囲のIPアドレスから来た場合であっても、そのような着信要求を許可することができる(例えば、図4Aの方法に従って)。例えば、ローカルデバイス130は、ローカルネットワーク132上のイベントに関するリアルタイムレポートをベンダーのサーバに送ることを許可されないが、それが適切に機能することを確かめるために同じサーバからの定期的なステータス要求を依然として受信し得る。他の例では、すべてのルーティング可能なIP範囲は、着信接続を開始することが許可される一方で、ローカルネットワーク132からのアウトバウンド接続を受信することをブロックされてもよい。
図5は、本発明の一実施形態に係る、VPNトンネル352を介してローカルネットワーク132内のデバイス130との遠隔通信を保護する方法を例示する。この場合、制御デバイスは、VPNサーバへの接続を開き(ステップ510)、ローカルネットワーク132上のdev_1への着信接続要求を受信し(ステップ520)、この要求が同じVPNトンネル352を介して来たかどうかを検査する(ステップ530)。要求は、そのトンネルを介して来た場合にのみ、dev_1に渡される(ステップ540)。それ以外の場合、要求はブロックされる。
いくつかの実施形態では、ローカルデバイス130への着信接続のみがトンネル352を介して許可され、ローカルデバイス130からの発信接続は、それらがVPNサーバ340のIPアドレスに送信されるとしてもブロックされる。
一つの実装では、デバイス130からのアウトバウンド接続は、これらの接続の初期パケット(initial packets)がいずれも、意図された受信デバイス130に到達することを許可されることなく、これらの接続の初期パケットがルータ350を介して送信される場合に、ルータ350によってブロックされる。別の実装では、ルータ350は、アウトバウンド接続要求が意図された外部の受け手310,320に到達すること、および、その後、外部の受け手310,320からの応答パケットまたはいくつかのペイロードパケットをブロックすることを可能にし得る。他の実装では、ルータ350は、変更が、ローカルデバイス130とローカルネットワーク132の外部のデバイス310,320との間の意図されたデータ交換を防ぐのに十分である限り、それらをブロックする代わりに、交換されたパケットを変更し得る。
本発明の別の態様では、ローカルネットワーク132内の1つまたは複数のデバイス130は、ローカルネットワーク132の外部の1つまたは複数のコンピュータ310,320からの接続要求を受信することをルータ350によって許可されないが、外部IPアドレスからの要求を受信することを許可された同じネットワーク132上の別のデバイス130によって開始されたコマンドに応答することをルータ350によって許可される。例えば、電源スイッチ230などのIoTデバイス130は、IoTハブまたはブリッジなどのローカルネットワーク132上の別のデバイス130からコマンドを受信することが許可されてもよいが、WAN134における外部IPアドレスからのダイレクト要求を受信することは許可されなくてよい。一つの実装では、ローカルネットワーク132内の1つまたは複数のデバイス130は、ローカルネットワーク132の内部または外部の他のデバイス130,110からの限られたセットのコマンド(例えば、ユーザインタフェース(UI)によって定義されるコマンド)のみを受信し得る。例えば、電源スイッチ230またはIoTブリッジは、オン/オフスイッチのみを含むUIを提示する。従って、外部デバイス110は、この動作を実行するのみであってよいが、いかなる他のコマンド(例えば、事前の対話の履歴を求める)を送信することも許可されない。
本発明の別の態様では、システムは、ローカルネットワーク132内のデバイス130間の通信の管理を提供する。このシステムは、例えば、図1から図3のルータ120,210,350または何らかの他のデバイスなどのローカルネットワーク132内のデバイス130間のトラフィックを制御する手段を有する第1のデバイスを含む。デバイス130は、同じネットワーク132上の他のデバイス130とのローカル接続を開始することができ、および、同じネットワーク132上の他のデバイス130からのローカル接続に応答することができる。
第1のデバイスは、ローカルネットワーク132上の1つまたは複数のデバイス110によって開始されたローカル接続をブロックするようにさらにプログラムされる一方で、これらのデバイス130の1つまたは複数がローカルネットワーク132上の他のデバイス130によって開始されたローカル接続に応答することを許可する。
いくつかの実施形態では、第2のデバイスは、外部IPアドレスからの少なくとも1つのインバウンド接続を受け入れるようにプログラムされ、外部IPアドレスからの接続は、第1のデバイスへの参照を含み、第2のデバイスは、第1のデバイスからのローカルネットワーク132内の第1のアドレスへの少なくとも1つ第1のアウトバウンド接続に対して、その少なくとも1つ第1のアウトバウンド接続が、第1のデバイスへの参照を含むインバウンド接続によって先行されなかった場合に、その少なくとも1つの第1のアウトバウンド接続をブロックするようにさらにプログラムされる。
いくつかの例では、第2のデバイスは、ローカルネットワーク内の第2のアドレスへの第1のデバイスからの少なくとも1つの第2のアウトバウンド接続に対して、その少なくとも1つの第2のアウトバウンド接続が、第2のアドレスを含む第1のデバイスへのインバウンド接続によりが先行されたか否かに関わらず、その少なくとも1つの第2のアウトバウンド接続を許可するようにさらにプログラムされる。
いくつかの実施形態では、第1のデバイスは、第1のグループからの第2のグループへの接続をブロックするが、第2のグループから第1のグループへのローカル接続を許可する、異なる規則をローカルネットワーク132上の第1および第2のグループのデバイス130に適用する。いくつかの実施形態では、1つまたは複数のデバイス130からの少なくとも1つのデバイスへのローカル接続は、第1のデバイスによって許可されるが、同じ1つまたは複数のデバイス130からの少なくとも1つの他のデバイス130へのローカル接続は、第1のデバイスによってブロックされる。
第1のデバイスは、例えば、ゲートウェイ、ルータ、ブリッジ、スイッチ、プロキシまたはファイアウォールとすることができる。いくつかの実施形態では、第1のデバイスは、アドレス解決プロトコル(ARP)、マルチキャストドメインネームサービス(mDNS)、およびシンプルサービスディスカバリプロトコル(SSDP)のうちの少なくとも1つから得られた情報に基づいてローカルネットワーク132上の他のデバイス130を識別する。ブロックされるべきそれらの接続を必要とするローカルネットワーク132上の1つまたは複数のデバイス130は、それらの名前またはディスクリプションにより第1のデバイスによって識別され得る。一例では、他のデバイス130への接続を開始することをブロックされるべきである、これらのデバイス130の少なくとも1つは、第1のデバイスのユーザによって指定される。
第1のデバイスは、例えば、接続を開始するデバイス130からの少なくとも1つのデータパケットをブロックすることによって、1つまたは複数のローカル接続をブロックし得る。別の例では、第1のデバイスは、他のデバイス130によって開始された接続に応答するデバイス130からの少なくとも1つのデータパケットをブロックすることにより、1つまたは複数のローカル接続をブロックする。一実施形態では、第1のデバイスは、ローカル接続を開始するデバイス130を、その同じデバイス130によって先に送信または受信されたパケットに関する情報を分析することによって(例えば、第1のデバイス130が、少なくとも所定の時間間隔の間に第2のデバイス130からパケットを先に受信することなく第2のデバイス130にパケットを送信していたことを検出することによってなど)識別する。
また、図6Aおよび図6Bは、本発明の一実施形態に従う、ローカルネットワーク132内のデバイス130間の通信を管理する方法を例示する。図6Aを参照すると、ローカルネットワーク上の他のデバイス間のデータ交換を制御するデバイス(以下、「制御デバイス」、例えばルータまたはゲートウェイ120,210,350など)は、ローカルネットワーク132内のデバイス130(dev_1)からの要求を受信し、同じローカルネットワーク132内の別のデバイス130(dev_2)に接続する(ステップ610)。dev_2への接続要求を直ちに送信する代わりに、制御デバイスは、最初に、少なくともいくつかの発信接続を開始するための1つまたは複数の予め指定された規則に従ってdev_1が許可されるか否かを検査し(ステップ620)、許可されなければ、その発信接続をブロックする。予め指定された規則に従って、少なくともいくつかの接続を開始することをdev_1が許可される場合、ステップ630は、dev_2への接続を開始することが許可されるかどうかを検査することを含み、その接続が予め指定された規則によって許可される場合にのみ、dev_2に要求を送る(ステップ640)。
一つの実装では、制御デバイスは、ローカルネットワーク123内の第1のデバイス130が第2のデバイス130への接続を開始することをブロックするが、第2のデバイス130が第1のデバイス130に接続を開始することを許可する。これは、同じローカルネットワーク上のデバイスが両方向で互いに通信をブロックされる「クライアントアイソレーション」として知られる従来技術の解決策と、本発明とを区別する。
本明細書で開示されるシステムおよび方法は、ローカルネットワーク1323上のいくつかのデバイス130(例えば、電源スイッチなどの単機能IoTデバイス)をリスンオンリーモードに制限する手段を提供する一方で、同じネットワーク132上の他のデバイス(例えば、携帯電話機またはラップトップ)が他のデバイスにコマンドを送信することを許可する。多くのIoTデバイス(例えば、電源スイッチ、光源、サーモスタット)は、同じネットワーク上の他のデバイスに接続することなく機能するように設計されており、障害が起きた場合にのみ同じネットワーク132上の他のデバイスにアクセスしようと試み得る。本明細書で開示される解決策は、信頼できないデバイスの存在下でローカルネットワーク内のセキュリティを向上させる。
いくつかの実施形態では、どのデバイス130が他のデバイス130への発信接続を開始することを許可されるかを指定する規則は、少なくとも部分的なデバイスのディスクリプションまたは名前に関連して制御デバイスに最初に提供される。制御デバイスは、例えば、接続要求を発行するデバイス130のMACアドレスを決定するためにアドレス解決プロトコル(ARPテーブル)を使用し、次にマルチキャストドメインネームサービス(mDNS)またはシンプルサービスディスカバリプロトコル(SSDP)を使用して、そのMACアドレスから、そのデバイスのディスクリプションまたは名前を取得する。他の実施形態では、ローカルネットワーク132上のデバイス130は、そのMACまたはIPアドレスによって、或いは他の規則によって明確に識別され得る。例えば、ユーザは、単一のデバイス130(例えば、携帯電話機)のみが、同じネットワーク132,130上の他のデバイス130に接続を開始することを許可されることを指定し得るが、一方で、他のデバイスは、他のデバイス130によって開始された接続にのみ応答すべきである。
図6Bは、別のデバイスへの接続要求を開始したローカルネットワーク132上のデバイス130を検出する例示的な方法を示す。制御デバイスは、ローカルネットワーク132内のデバイス130であるdev_1からdev_2へのパケットを受信し(ステップ650)、その後、dev_2からdev_1へのパケットが、例えば5秒などの所定の時間間隔内に最近受信されたかどうかを検査する(ステップ660)。そのようなパケットが受信されなかった場合、dev_1は要求の開始装置とみなされ、予め指定された規則に従って要求を開始することが許可されない場合、dev_1はブロックされ得る;さもなければ、dev_1は制御デバイスによってdev_2からの要求に対する応答装置であると見なされ、制御デバイスはパケットをdev_2に送信する(ステップ670)。
図7は、本明細書に開示された方法に従って管理される、ローカルネットワーク132内の2つのデバイス720,730の間の接続を有するネットワーク環境を例示する。ルータ710は、ワークステーション720および電源スイッチ730などのローカルネットワーク上のデバイス間のすべてのトラフィックを制御する。図示される実施形態では、ワークステーション720のみが、同じローカルネットワーク132上の他のデバイスへの接続要求732を開始することが許可されるが、一方で、電源スイッチ730は、着信接続を受信することのみが許可される。電源スイッチ730からの発信接続734は、ルータ710によってブロックされる。
図8は、本発明の一実施形態に従って管理される、ローカルネットワーク132内の3つのデバイス130間の接続を有するネットワーク環境を例示する。この実装では、ルータ810は、同じローカルネットワーク上の異なるデバイス130を制御するために、異なる規則のセットを使用する:ワークステーション820は、ローカルネットワーク132内の任意の他のデバイス130への接続842を開始することが許可される:電源スイッチ830は、他のデバイス130へのいかなる接続844を開始することも許可されない;IoTハブ840は、少なくとも1つの既存の条件が満たされた後に電源スイッチ830への接続846を開始することを許可されるが、ワークステーション820への接続848を開始することは決して許可されない。これは、信頼の階層を反映する:ワークステーション820(または、例えば、携帯電話などの直接的なユーザの制御下にある別のコンピュータ)は、任意の他のデバイス130にコマンドを送信することを許可される;IoTハブ840は、許可されたIoTデバイス130のサブセットを制御することのみが許可され、一方、エンドポイントIoTデバイス130(例えば、電源スイッチ830)は、コマンドに応答することのみが許可される。
図示される実施形態では、ローカルネットワーク132内の接続に対するこれらの規則は、WAN132内のコンピュータ110とともに開始された接続を制御する規則と組み合わせられる。ワークステーション820は、ローカルネットワークの内部または外部の任意のコンピュータへの接続を開始することを許可される;電源スイッチ830は、ローカルネットワークの内部であろうと、または外部であろうと、いかなるコンピュータへの接続の開始も許可されない。
この例では、IoTハブ840は、ローカルネットワークの外部の少なくとも1つのコンピュータからのインバウンド接続850を受信することを許可される。さらに、IoTデバイス840への参照を含むローカルネットワーク132の外部のコンピュータからの接続を受信した後、ルータ810は、IoTデバイス840がローカルネットワーク上の別のデバイス(例えば電源スイッチ830)にアウトバウンド接続846を発行することを許可する。いくつかの実施形態では、ローカルネットワーク132の外部のコンピュータ110からの要求は、ローカルネットワーク上の他のデバイス(例えば、電源スイッチ830)からの接続の受け手への参照を含み得、ローカルネットワーク上の他のデバイスがアウトバウンド要求を電源スイッチ830に発行することを許可する。
図示された実施形態の一つの実装では、IoTハブ840は、IoTベンダーのサーバから許可を受信するまで、同じローカルネットワーク上の他のデバイスとの接続を開始することを許可されない。この許可を与えるために、IoTベンダーは、ルータ810のネットワークアドレスを取得し、次に、デバイス840からのローカルネットワーク上のアウトバウンド接続を許可するためにルータを認証する要求を発行する。IoTベンダーは、デバイス840の登録中に、または第三者サービスによって認証された後に、ルータのネットワークアドレスを取得し得る。認証されたデバイスだけがローカルネットワーク132上の他のデバイスとの接続を許可されることを確実にするために、IoTベンダーは、デバイス840を認証するために使用すべき追加の情報をルータ810に提供し得る:例えば、デバイス840がIoTベンダーによってインストールされた秘密鍵を所持していることを検証するためにルータ810が使用することができる公開暗号鍵。
図7の実装では、ルータ710は、意図された受け手に接続プロセスの開始を許可することなく、デバイス730からのすべての発信接続を、それらを受信した後に即座にブロックする(デバイス730から要求734がルータ710に入る場所を説明する図7のXを参照)。
いくつかの実施形態では、ルータ810は、接続要求が意図された受け手に到達することを許可し得、その後、応答パケットまたはいくつかのペイロードパケットをブロックし得る。図8は、意図された接続要求844が、ルータ810が意図された接続要求844をブロックされていないままにする場所にブロッキング符号(Xを参照)を表示することによって、このプロセスを例示する。他の実装では、ルータ810は、2つのデバイスが意図されたデータ交換を実際に実行することを防ぐのに変更が十分である限り、それらをブロックする代わりに、交換されたパケットを変更し得る。
いくつかの実施形態では、ローカルネットワーク132内の1つまたは複数のデバイス130は、その同じローカルネットワーク上の1つまたは複数の他のデバイス130からの接続要求の受信を、そのような要求が、コマンドの限られたセット(例えばユーザインタフェース(UI)によって提供されるもの)に属する場合にのみ許可され得る。例えば、電源スイッチ830などのIoTデバイスは、IoTハブ840によって、またはルータ810などの別のデバイスによって表示されるUIと対話するユーザによって要求が開始された場合に、IoTハブ840からのその要求を受信することのみが許可され得る。
いくつかの実施形態では、システムは、コンピュータネットワークに接続された第1のデバイスを含む。第1のデバイスは、コンピュータネットワークに接続された第1のグループの1つまたは複数のデバイスへの接続を開始し、および、第1のデバイスが利用可能な規則のセットを使用することによって、1つまたは複数のデバイスによって開始された接続を受け入れるか、または拒否するかを判定する手段を含む。第2のグループの1つまたは複数のデバイスも、コンピュータネットワークに接続され、第2のグループ内の少なくとも1つのデバイスは、第1のデバイスによって開始された1つまたは複数の接続を受け入れ、これらの接続のうちの少なくとも1つを介して第1のデバイスにデータを送信することができる。
第1のデバイスは、第2のグループのデバイスへの接続を開始し、この接続を介して、第3のデバイスによって開始されることが予想される第1のデバイスへの1つまたは複数の接続の1つまたは複数の第1の識別子に関する情報を受信するようにさらにプログラムされ得る。第1のデバイスは、この情報に応じて、1つまたは複数の第1の識別子に関連付けられた1つまたは複数の接続を受け入れるために、1つまたは複数の規則を変更するようにプログラムされる。特に、第1のデバイスは、1つまたは複数の規則に基づいて、1つまたは複数の第1の識別子を有する第3のデバイスからの1つまたは複数の接続を受け入れ得る。少なくとも1つの所定の条件が満たされたことを検出すると、第1のデバイスは、1つまたは複数の第1の識別子に関連する1つまたは複数の接続をブロックするために1つまたは複数の規則を変更するようにプログラムされる。いくつかの実施形態では、第1の識別子は、ソースIPアドレス、ソースポート、トランスポートプロトコルおよびデータパターンのセットの一部または全部を含む、予想される接続の1つまたは複数のパラメータを含み得る。
いくつかの実施形態では、第1のデバイスは、ローカルネットワーク内の1つまたは複数のデバイスに接続される。第1のデバイスは、第1の識別子に関連付けられた接続要求を受信し、次に、この要求をローカルネットワーク内のデバイスに渡すようにさらにプログラムされる。一例では、これは、外部ネットワークアドレスから開始された接続要求を受け入れるローカルネットワーク内のプロキシサーバに要求を渡すことを含み、ローカルネットワーク内のデバイスとの接続を開始し、そのデバイスに要求データを渡し、ローカルネットワーク内のデバイスから応答を受信し、その後、それを外部ネットワークアドレスに渡す。いくつかの実施形態では、プロキシサーバは、接続要求と共に提示された情報からローカルネットワーク内のデバイスの識別子を抽出し、その後、アドレス解決プロトコル(ARP)、マルチキャストドメインネームサービス(mDNS)、およびシンプルサービスディスカバリプロトコル(SSDP)のうちの少なくとも1つを使用して、要求された識別子からデバイスのローカルネットワークアドレスを決定する。
一つの実装では、第3のデバイスから第1のデバイスへの接続は、トランスポートレベルセキュリティプロトコル(TLS)、ハイパーテキスト転送プロトコル(HTTP)、ウェブリアルタイム通信(WebRTC)プロトコルおよびICE(Interactive Connectivity Establishment、インタラクティブ接続確立)フレームワークを使用するプロトコルのグループのうちのプロトコルを使用して確立される。
1つの他の実施形態では、第2のグループの少なくとも1つのデバイスは、第1のデバイスとの接続を確立するための第3のデバイスの適格性を検証することができ、第2のグループ内の少なくとも1つのデバイスは、第1のデバイスとの接続を確立するための第3のデバイスの適格性が検証された後でのみ、第1の識別子を第1のデバイスに送信する。
いくつかの実施形態では、1つまたは複数の既に許可された接続をブロックするための少なくとも1つの所定の条件は、それらが許可されてから開かれた接続の数、それらのうちの1つまたは複数が閉じられた後に残っている許可された接続の数、および1つまたは複数の接続が許可されてからの時間間隔が所定の閾値を超えことを含む。いくつかの実施形態では、1つまたは複数の既に許可された接続をブロックするための少なくとも1つの所定の条件は、許可された接続によって使用されるものとは異なるネットワークアドレスからの1つまたは複数の接続を第1のデバイスがブロックすることを含む。
一つの実装では、第2のグループからデバイスへの接続を開始した後、第1の識別子を受信する前に、第1のデバイスは、トランスポートレイヤセキュリティ(TLS)プロトコルを使用して第2のデバイスを認証する。記載されたシステムの一例では、1つまたは複数の規則を変更することは、第1のデバイス上のファイアウォール規則を変更することを含む。
図9は、本発明の一実施形態に従って管理される、リモートコンピュータとローカルネットワーク内のデバイスとの間のダイレクト接続を有するネットワーク環境の図である。
この実施形態では、ルータ950は、WAN134内のコンピュータ930への接続952を開始する。コンピュータ930は、別のデバイスからの着信要求を受け入れて認証することが可能であり、別のデバイスによって開かれた逆接続を介してデータを送信することが可能である、1つまたは複数の接続されたコンピュータのグループの1つとすることができる。一例では、ルータ950は、例えばTLSプロトコルを使用することによって、コンピュータ930を認証し得る。
図示される実施形態では、コンピュータ930は認証モジュールを含む。クライアント910は、このコンピュータに接続し、認証手順に従う。それは、例えば、公開/非公開の証明書交換、マルチファクタ認証、または当業者に知られた別の認証手順を使用して、ユーザ名およびパスワードを提供することを含み得る。コンピュータ930に接続されている間、クライアント910は、それがルータ950に接続したいことを示す指示912を提供する。この指示は、例えば、コンピュータ930を指し示すが、ルータ950を参照するサブドメイン、パスまたはファイル名を含むURLに要求を発行することによって提供され得る。別の実装では、デバイス910のユーザは、認証された後にコンピュータ930によって提供されるリストからルータ950を選択し得る。
クライアント910が認証される前に、ルータ950は、クライアントのソースIPアドレスを含む外部IPアドレスからの1つまたは複数の着信要求922をブロックするように設定される。本発明によれば、コンピュータ930または接続されたグループのコンピュータのうちの1つが、クライアント910がルータ950にアクセスしようとしており、クライアント910を認証すると判定した後、クライアントデバイス910の識別子は、そのルータによってコンピュータ930に先に開かれた接続を介して、ルータ950に渡される。コンピュータ930からクライアントデバイス910の識別子を受信した後、コンピュータ910からの接続要求924は、ルータ950によって許可されることになる。
他の実施形態では、ルータ950にアクセスしようとするデバイス910の識別子は、別個の接続を介して渡され得る:例えば、ルータ950は、コンピュータ930または接続されたコンピュータからの接続要求を受け入れるように設定され得る。
図示される実施形態は、クライアント910のソースIPアドレスがモジュール940によって抽出され、次に、ルータ950に渡される例を示す。他の実装では、この識別子は、ソースポート、アクセスプロトコル、またはアクセスデータパターンを含み得る。例えば、クライアント910がルータ950とのHTTPまたはHTTPS接続を確立しようとする場合、サーバ930にデータパターン(TLSハンドシェイクの一部、要求されたリソースの名前、要求ヘッダ内のデータ、またはペイロード)を提供し得、データパターンは、ルータ950に渡された後、着信接続を許可するために検出され得る。
トランスポートレベルセキュリティ(TLS)またはHTTPプロトコルを使用する代わりに、または、使用することに加えて、クライアント910は、ウェブリアルタイム通信(WebRTC)プロトコルまたはインタラクティブ接続確立(ICE)フレームワークを使用する別のプロトコルを使用してルータ950に接続し得る。ルータ950は、有効な接続の別の識別子として意図されたプロトコルの特性を使用し得る。
クライアント910の識別子を受信した後、ルータ950は、1つまたは複数の自機の規則を変更して、その識別子と一致する着信接続924を許可する。例えば、クライアント910のソースIPを受信した後、ルータ950は、ファイアウォール規則を一時的に変更して、このソースIPからの着信要求を許可する。クライアント920などの認証を通過しなかったクライアントは、ルータ950のIPアドレスを知っていても、ルータ950にアクセスすることが許可されないことになる。
ルータセキュリティをさらに改善し、不正アクセスを防ぐために、一つの実装では、ルータ950は、1つまたは複数の所定の条件が満たされるまでのみ、クライアント910などの認証されたデバイスによって接続が開始されることを許可する。例えば、ルータ950は、デバイス910が認証されたずっと後(例えば、認証が1時間または何らかの他の時間制限で失効する)にデバイス910のソースIPからの新しい接続が開始した場合、その新しい接続をブロックし得る。いくつかの実施形態では、デバイス910は、ルータ950との接続能力を延長するために、コンピュータ930からの認証を定期的に要求し続け得る。別の例では、ルータ950は、リソースの不正利用またはリソースの大規模な利用の指示を受信した後に、クライアント910からの新しい接続または現在の接続をブロックすることができる:例えば、クライアント910のソースIPから開かれた新規接続が多すぎる、他の認証されたクライアント、或いは上記される先に認証されているもの以外の未知のソースIPからの1つまたは複数の接続の試みから開かれた接続が多すぎる。
代替の実施形態では、デバイス910によって提供される識別子をルータ950に渡す代わりに、ルータ950または接続されたコンピュータ930のうちの1つが、デバイス910およびルータ950の両方に接続識別子を提供し得る。例えば、コンピュータ930は、特定のソースポートを使用するように、または特定のデータパターンを要求ヘッダの1つに含めるように、デバイス910に指示し得る。コンピュータ930は、この同じ情報をルータ950に送信して、有効な要求を識別する。ルータ950は、その後、コンピュータ930から受信したこの情報を含む接続要求を許可し得る。
別の実施形態では、特定のポートから来る接続または特定のデータパターンを有する接続を一時的に受け入れるように規則を変更するルータ950から、一意的な識別子が受信され得る。その場合、コンピュータ930は、認証されたクライアント910に、ルータ950に接続している間にどの識別子を使用するかを通知するだけでよい。
図9に例示される実施形態では、ルータ950はローカルネットワーク132とWAN134との間のデータ交換を制御する。ローカルネットワーク132は、少なくとも1つのIoTデバイス970を含み、クライアント910は、デバイス970に接続するためにルータ950との接続を確立する。この実施形態では、デバイス970を対象とする受け入れられた着信接続924が、ルータ950からプロキシサーバ960に渡される。このプロキシサーバは、外部IPアドレスからの接続要求を受け入れ、宛先ローカルデバイスを決定し、そのローカルデバイス970と接続を確立し、そのローカルデバイス970とWAN134上のデバイス910との間でデータを渡す。
一例では、クライアント910は、既知のドメインにHTTPまたはHTTPS要求を発行するために、通常のウェブブラウザを使用してデバイス970に接続し得る。そのようなドメインは、例えば、ルータ950のIPアドレスへと解決し得、一方で、ローカルネットワーク内に意図された受信デバイスを指定するサブドメインを含む(例えば、デバイス970のIPアドレス)。
この例では、プロキシ960は、ホストヘッダ(HTTP)またはSNIヘッダ(HTTPS)からサブドメインを抽出し、この識別子を使用して、ローカルネットワーク132上の受信デバイス970のIPアドレスを見つける。これを行うために、マルチキャストドメインネームサービス(mDNS)またはシンプルサービスディスカバリプロトコル(SSDP)などのサービスディスカバリプロトコルを使用して、ローカルネットワーク上のデバイスのディスクリプションを取得し、要求された識別子に関連付けられた文字列と一致するディスクリプションを、そのMACアドレスを取得するための特定のデバイスのディスクリプションで見つけて、その後、アドレス解決プロトコル(ARP)テーブルの情報を使用して、要求の意図された受け手のIPアドレスを取得することが行われ得る。他の既知の解決策およびプロトコルを、ローカルネットワーク132内のデバイスのIPアドレスを発見するために、使用することができる。しかしながら、上記に概要を述べた様に、ローカルデバイス970への接続要求が外部IPアドレスから受信された後にのみ、そのような発見が起こる。
いくつかの実装では、プロキシ960は、ローカルネットワークとWANとの間のデータ交換を制御することを担当する別のモジュール(例えば、ゲートウェイ、アクセスポイント、ブリッジ、またはファイアウォールなど)またはルータ950と組み合わせられてよい。他の実装では、プロキシ960は、ルータ950からのすべての着信接続を受信し、その後、それらを意図された受信デバイスに転送するために使用されるスタンドアローンデバイスとして配備することができる。
図10Aから図10Cは、本発明の一実施形態に係る保護されたデバイスへのダイレクト接続を管理する方法を例示する。この実施形態は、例えばサーバが機密情報を含み、第三者サービスを使用して、それ自体を不正アクセスから保護するなど、保護されたデバイスが、コンピュータネットワーク内の任意のコンピュータであり得る一般的なケースを説明する。
図10Aを参照すると、認証サーバ930は、保護されたコンピュータdev_1へのアクセスを要求する(例えば、ウェブブラウザなどのクライアントソフトウェアを有する)コンピュータ910からの要求を受信する(ステップ1010)。その後、認証サーバ930は、1つまたは複数の所定の規則に従ってなど、クライアントが認証され得るかどうかを判定する(ステップ1020)。そうである場合、認証サーバは、クライアントのソースIPを保護されたコンピュータ970に送信し(ステップ1030)、クライアント910に接続許可を与える(ステップ1040)。
図10Bを参照すると、保護されたコンピュータ970は、認証装置(例えば、認証サーバ930またはルータ950)への自機の信頼できる接続を開き(ステップ1050)、認証されたクライアント910のソースIPを受信する(ステップ1055)。次いで、保護されたコンピュータ970は、提供されたソースIPアドレスからの接続を受け入れる準備をする(ステップ1066)。
図10Cを参照すると、保護されたコンピュータ970は、クライアント910の外部IPアドレスから接続要求を受信し、その要求が認証装置(ルータ950または認証サーバ930)から受信した識別子に一致する識別子を含むと判定し、その後、この接続を受け入れる許可が有効なままであるべきかどうかを判定するための追加のステップ1075を実行する。図10Cの実装では、保護されたコンピュータ970は、アクセスがクライアント910に許可されてから所定の時間dT内に、新しい要求が来たかどうかを判定する(ステップ1075)。保護されたコンピュータ970は、この場合のみ、クライアント910の外部IPアドレスからの接続を受け入れる(ステップ1080)。
本発明の他の実施形態では、保護サービスの一部を含むコンピュータ(例えば、ルータ950または認証サーバ930)は、クライアント910および保護されたデバイス970の両方に、許可された要求の識別子について通知してよく、または、そのような識別子(特定のソースポートなど)を保護されたデバイス970から受信し、それをクライアント910に渡してもよい。最後のケースでは、保護されたデバイス970は、クライアント910が認証される前に、特定のポートからの接続を受け入れるための規則を定義してよい。本明細書で開示されるシステムおよび方法は、保護されたデバイスが、特定のクライアントに限定されることになる一時的なアクセス条件を作成し、その後、いくつかの所定のイベントが検出された場合に、このアクセスを取り消すことを可能にする。
例えば、恒久的なポートフォワーディングを設定する代わりに、ルータ950は、保護サービス(例えば、認証サーバ930)と連携して、およびクライアント910の接続を記述する追加のパラメータを用いて、所定の時間の間だけ特定のポートを開き得る。
別の実施形態では、許可された接続の識別子を交換するために使用される1つまたは複数のサーバ(例えば、ルータ950)は、認証装置930を含む必要はない。例えば、そのようなサーバは、クライアント910のソースIPが、悪意のあるサーバの既知のIPアドレスのリストにないか、または特定の地理位置情報から来たものか、或いは、保護されたサーバに同時に開くことが可能な所定の数の接続以内のままであるかのみを検出し得る。すべてのこのような場合に、本発明は、保護されたサーバが望ましくない接続を無視する方法を提供する。
いくつかの実施形態では、コンピュータデバイス間の接続ルートを管理するシステムは、コンピュータネットワークに接続された第1のデバイスを含む。第1のデバイスは、コンピュータネットワークに接続された1つまたは複数のデバイスへの接続を開始し、コンピュータネットワークに接続された1つまたは複数のデバイスによって開始された接続を受け入れる手段を有する。システムはさらに、コンピュータネットワークに接続され、並びに、第1のデバイスによって開始された少なくとも1つの接続を受け入れ、および第1のデバイスによって開かれた接続を介して、第1のデバイスに別のデバイスからの少なくとも1つの接続要求を転送する手段を有する、第2のグループの1つまたは複数のデバイスを含む。第2のグループの1つまたは複数のデバイスは、第1のデバイスとダイレクト接続を確立するために使用できる第1のデバイスの識別子を別のデバイスに提供するようにさらにプログラムされ得、第2のグループの1つまたは複数のデバイスをバイパスする。
第2のグループのデバイスは、コンピュータネットワークに接続された第3のデバイスによって開始された接続を受け入れ、第3のデバイスが第1のデバイスとのダイレクト接続を確立することを許可できるかどうかを判定するようにさらにプログラムされてよい。そうである場合、デバイスの第2のグループのデバイスは、第1のデバイスの識別子(例えば、IPアドレスまたはサブドメイン)を第3のデバイスに提供する。
いくつかの実施形態では、第3のデバイスは、第1のデバイスとのダイレクト接続を確立することが許可されず、その第1のデバイスへの接続は、第1のデバイスによって開かれた第2のグループへの接続を介して転送される。一例では、第3のデバイスが第1のデバイスとのダイレクト接続を確立することを許可できるかどうかの判定は、その第3のデバイスが認証証明書を提供し、提供されたいずれかの認証証明書の何らか信頼性を評価することを含む。
いくつかの実施形態では、第3のデバイスから第2のグループのデバイスへの接続の1つまたは複数のパラメータに応じて、第2のグループのデバイスは、第3のデバイスが第1のデバイスへのダイレクト接続を許可されるかどうかを評価すること、または、そのような評価を行うことなく第1のデバイスによって開かれた接続を介して第1のデバイスに第3のデバイスからの接続要求を転送することのいずれかを実行する。
いくつかの実施形態では、第2のグループのデバイスは、第3のデバイスが第1のデバイスに接続することが許可されるかどうかを評価し、この評価の結果は、第1のデバイスによって開かれた接続を通じて常に送信されるべき接続要求か、または、第1のデバイスに直接送信されることが許可されてもよい接続要求かの接続要求によって異なる。
いくつかの実施形態では、第3のデバイスからの接続要求は、異なるリソースロケータを使用して、第1のデバイスによって開かれた接続を通過すべき要求を識別してもよく、または第1のデバイスにダイレクト接続することを許可されてもよい。
いくつかの実施形態では、第1のデバイスによって開かれた接続を介して常に転送されるべき第3のデバイスからの第2のグループへの接続要求は、第1のデバイスとのダイレクト接続を確立することができ得る要求とは異なるネットワークアドレスに送信される。
いくつかの実施形態では、第1のデバイスによって開かれる接続を介して常に転送されるべき第3のデバイスからの第2のグループへの接続要求は、HTTPプロトコルを使用し、一方、第1のデバイスとのダイレクト接続を確立することが許可され得る要求は、Interactive Connectivity Establishment(ICE:インタラクティブ接続確立)フレームワークを使用する。
いくつかの実施形態では、第2のグループのデバイスは、ドメインネームサーバ(DNS)を含み、このサーバは第3のデバイスからドメイン名を解決する要求を受信し、および、第3のデバイスが第1のデバイスとのダイレクト接続を確立することが許可される場合に、第1のデバイスのIPを返し、さもなければ、第1のデバイスのIPを返すことをやめる。
いくつかの実施形態では、第2のグループのデバイスは、逆接続をサポートすることができる仮想プライベートネットワーク(VPN)サーバを含み、また、第1のデバイスによって確立された接続はVPNトンネルである。
第1のデバイスがローカルネットワーク内の1つまたは複数のデバイスに接続されるいくつかの実施形態では、第1のデバイスは、ローカルネットワークの外部の1つの他のデバイスからデータを受信し、そのデータをローカルネットワーク内のデバイスに転送し、その後、ローカルネットワークの外部にあるデバイスに応答を転送する。
第1のデバイスは、ゲートウェイ、ルータ、ブリッジ、スイッチ、プロキシおよびファイアウォールの一部または全部として機能し得る。
図11は、本発明の一実施形態に従って管理される、VPNトンネル1102の内部および外部のHTTP接続を有するネットワーク環境を例示する。この実施形態では、複数のクライアントデバイス1110,1120は、その上で実行される認証モジュールを有するサーバ1130に格納されたコンテンツのネットワーク識別子(URL_A)を受信する。他の実施形態では、認証装置およびコンテンツサーバは、コンピュータネットワークを介して情報を交換する別個の物理デバイス上に配置され得る。サーバ1130上に格納されたコンテンツは、パーソナルコンテンツサーバ1150によって提供される保護されたコンテンツ(例えば、ローカルネットワーク132内のデバイス1150上またはローカルネットワーク132に接続されたルータ上に格納されたコンテンツ)への1つまたは複数のポインタを有する。パーソナルコンテンツサーバ1150は、VPNトンネル1102を介してパーソナルコンテンツサーバ1150に外部接続要求を戻すことができるVPNサーバ1140への接続1102を確立する。VPNトンネル1102を介して接続要求を受信することに加えて、パーソナルコンテンツサーバ1150は、(例えば、ポート443上のすべての着信要求を受け入れることによって)外部IPアドレスからダイレクト接続要求を受信することも可能である。他の実施形態では、VPNサーバ1140は、プロキシサーバ、または逆接続を確立することができる他のタイプのサーバで置き換えることができる。
図示される実施形態では、サーバ1130は、認証結果に応じて、異なるコンテンツをクライアント1110および1120に返す。例えば、クライアントA(1110)は、VPNサーバ1140を指し示し、およびパーソナルコンテンツサーバ1150への参照を含むURL_Bを受信し、一方、クライアントB(1120)はパーソナルコンテンツサーバ1150のIPアドレスを直接指し示すURL_Cを受信する。
クライアント1110,1120にパーソナルコンテンツサーバ1150の直接のIPを提供することは、VPNサーバ1140のIPアドレスをクライアント1110,1120に提供することよりもはるかに安全性が低い:悪意のあるクライアント1110,1120は、サーバ1150の脆弱性を調査したり、またはサービス拒否(DoS)攻撃を実行したりし得る。反対に、パーソナルサーバ1150へのダイレクトアクセスは、特にクライアント1120およびサーバ1150がクライアント1120およびVPNサーバ1140よりもはるかに互いが近い場合に、VPNサーバ1140を介するよりも高速であり得る。本発明によれば、十分な認証レベルを有するクライアント(例えば、パーソナルコンテンツサーバ1150の所有者によって信頼され、ログインとパスワードによってその身元を証明するもの)のみが直接の接続を許可される。他の登録されたクライアントは、VPNサーバ1140を介して送信される。別の例では、認証装置は、安全性の低い認証を有するクライアントをVPNサーバ1140に向ける一方で、ダイレクトアクセスを許可するために2要素認証(例えば、携帯電話機へのメッセージの送信)を要求してもよい。別の例では、サーバ1130は、認証されていないクライアントをVPNサーバ1140に向ける一方で、有効なログインおよびパスワードを提供するすべてのクライアントにダイレクトアクセスを許可する。
いくつかの実施形態では、コンテンツサーバ1130は、URL_B(より低い認証レベルを有するクライアント1110のためにVPNサーバ1140を参照する)またはURL_C(より高い認証レベルを有するクライアント1120のためにコンテンツサーバ1150を直接参照する)のいずれかを含む異なるHTMLコンテンツを異なる認証レベルを有するクライアントに返す。いくつかの実施形態では、コンテンツサーバ1130は、HTTPリダイレクトヘッダを使用して、クライアントをURL_BまたはURL_Cにリダイレクトする。
図12は、本発明の一実施形態に従って管理される異なる通信フレームワークを使用する接続を有するネットワーク環境を例示する。この実施形態では、異なるクライアント1210および1220は、ローカルネットワーク1232の外部の異なるコンテンツサーバ1230および1240へのポインタを受信する。例えば、パーソナルサーバ1270は、対応するクライアントの電子メールアドレスを用いて、URL_AをクライアントA(1210)に、およびURL_CをクライアントB(1220)に送信する。この例では、URL_Aは、ローカルネットワーク内のより安全でないデバイス(電源スイッチ1280)の制御を意図している。その一方、URL_Cは、より安全なパーソナルサーバ1270(例えば、ルータと組み合わされたもの)からのコンテンツの要求を意図している。パーソナルサーバ1270は、VPNサーバ1250への接続1272を開き、外部HTTP要求に対する逆接続の提供を可能にするとともに、STUN(ネットワークアドレストランスレータ(NAT)を介したユーザデータグラムプロトコル(UDP)セッショントラバーサル)サーバ1260への接続1274を確立し、インタラクティブ接続確立(ICE)フレームワークに従ってダイレクト接続をサポートする(例えば、WebRTC(ウェブリアルタイム通信)プロトコルを使用することによって)ことを可能にする。
図示される実施形態では、クライアントA(1210)およびクライアントB(1220)からの要求は、異なるコンテンツサーバ1230および1240、ならびに、これらのサーバに関連付けられた別の認証装置によって処理される。別の実施形態では、両方のクライアント1210,1220は、複数のタイプのURL要求をサポートする同じコンテンツサーバ、または同じ認証装置を使用し得る。この例では、認証されたクライアントA(1210)は、URL_Aに対する要求を提示し、HTTP要求をデバイス1280に渡すようにプログラムされたパーソナルサーバ1270に、そのHTTP要求を転送するようにプログラムされたVPNサーバ1250に向いているURL_Bを受信する。このようにして、セキュアでないデバイス1280へのアクセスは、特に、URL_Bが、サーバ1230を介した追加の認証なしに、繰り返しアクセスするために再利用することができないワンタイムURLである場合に、不正なクライアントから保護される。
認証されたクライアントB(1220)は、URL_Cをサーバ1240に提示した後、STUNサーバ1260から、例えばWebRTCプロトコルを使用して、パーソナルサーバ1270とのダイレクト接続をクライアントBが確立することを可能にする情報を受信する。図示される実施形態では、サーバ1240は、STUNサーバ1260に、クライアントB(1220)がパーソナルサーバ1270にダイレクト接続することを許可されることを通知する。それに応じて、STUNサーバ1260は、その後、クライアント1220からの接続要求を、パーソナルサーバ1270に渡すことによって許可することになる。別の実施形態では、サーバ1240は、クライアントB(1220)がSTUNサーバ1260に接続し、パーソナルサーバ1270のIPアドレスを受信することを許可するコンテンツ(ワンタイムURLなど)をクライアントB(1220)に送信し得る。その結果、クライアントBは、STUNサーバ1260によって、より安全なパーソナルサーバ1270に格納されたファイルへのダイレクトアクセスが許可され(パーソナルサーバ1270のIPアドレスの情報を用いる)、一方で、クライアントAは、パーソナルサーバ1270のIPアドレスを受信することなく、VPNサーバ1250を介して安全性の低いデバイス1280にアクセスするのみになる。
図13は、本発明の一実施形態に従って管理されるDNSサーバ1340によって制御される接続を有するネットワーク環境を例示する。この実施形態では、クライアントAおよびB(1310および1320)は、同じURL_Aによって参照されるコンテンツに対する要求をサーバ1330に提示し、同じURL_Bを受信し(HTMLコンテンツ内に、またはリダイレクトとしてのいずれか)、URL_Bは、ドメインネームサーバ(DNSサーバ)1340によってIPアドレスへと解決される必要のあるドメインを有する。サーバ1330に接続されているか、または、サーバ1330に常駐するモジュールとして実装されている認証装置は、クライアントA(1310)は認証されているが(例えば、正しいログインとパスワードを提示した、または安全なセッションクッキー)、一方、クライアントBはそうではない(例えば、そのパスワードが間違っていた)と判定する。本発明によれば、サーバ1330は、クライアントA(1310)のソースIPアドレスを有するDNS要求がパーソナルサーバ1350のIPアドレスを受信することを認証されていることをDNSサーバ1340に通知する。URL_Bのドメインに対応するDNSレコードの生存時間(TTL:Time To Live)が低い場合(例えば1秒)、インターバルTTL後に提示されたDNS応答はキャッシュされない。DNSサーバ1340は、クライアントA(1310)から要求を受信し、そのソースIPアドレスが認証されていると判定し、URL_Bのドメインをパーソナルサーバ1350のIPアドレス(IP_B)へと解決する。サーバ1330によって認証されなかったクライアントB(1320)から同じドメインに対するDNS要求が受信された場合、DNSサーバ1340は、パーソナルサーバ1350のIPアドレスを提供する代わりに、「サーバが見つかりません」のエラーコード1342を返す。
別の実施形態では、DNSサーバは、エラー1342を返す代わりに、パーソナルサーバ1350に外部要求を渡すことが可能なVPNサーバまたはプロキシサーバのIPアドレスを返し得る。サーバ1330によって提供される認証ステータスにのみ頼る代わりに、DNSサーバは、クライアントの1310,1320の認証ステータスを他のパラメータと組み合わせる規則の独自のセットを有してもよい。例えば、DNSサーバ1340は、認証されていないクライアントのソースIPがパーソナルサーバ1350と近接していることを示す場合(例えば、同じ都市または郵便番号)、その認証されていないクライアントがパーソナルサーバ1350に接続することを許可してよく、または、認証されたクライアントのソースIPが異なる国を指している場合、DNSサーバは、認証されたクライアントからの接続を禁止してよい。このようにして、パーソナルサーバ1350へのアクセスを制御する規則は、異なるサーバ間、例えば、異なるビジネス事業体に属するものに広げることができる。
図14は、本発明の一実施形態に係るコンピュータデバイス間の接続ルートを管理する方法を例示する。認証装置1230,1240によってローカルネットワーク132内の特定のデバイス(dev_1)に接続する要求をクライアント1210,1220から受信した(ステップ1410)後、認証装置1230,1240は、クライアント1210,1220がdev_1に直接接続するために認証されるかどうかを判定する(ステップ1420)。クライアント1210,1220がダイレクトアクセスを認証されていないと判定された場合、認証装置1230,1340は、要求をdev_1に渡すことができるVPNサーバ1250を指すドメインを有するURL_Bをクライアント1210,1220に提供する(ステップ1430)。クライアントの1210,1220の認証が確認された場合、クライアント1210,1220は、dev_1を直接指し示すドメインを有するURL_Cを受信する(ステップ1440)。
図15は、本発明の一実施形態に係る初期接続要求に応じてコンピュータデバイス間の接続ルートを管理する方法を例示する。認証装置1230,1240は、クライアント1210,1220からローカルネットワーク132内のdev_1に接続する要求を受信した(ステップ1510)後、dev_1に直接接続するか、或いは、VPN1250またはプロキシなどの中継装置を介してdev_1に接続するかを判定する(ステップ1520)。そのような決定は、例えば、ドメイン、パスまたはファイル名など、要求されたURLに部分的に依存してよい。クライアント1210,1220が、dev_1の実際のIPアドレスを要求することなく、VPNサーバ1250を介して接続を要求する場合、認証装置1230,1240は、例えばクライアント1210,1220のソースIPアドレスがブラックリストに存在しないことを確認することによってなどの限られた要求の検証のみを実行し(ステップ1530)、ブラックリストとの一致が見つからなかった場合、認証装置1230,1240は、VPNサーバ1250を指し示すURLを返す(ステップ1550)。クライアント1210,1220が、dev_1に直接接続することを要求する場合、より厳格な検証が実行される:例えば、クライアント1210,1220は、ユーザ名とパスワードの提供を要求され(ステップ1540)、そして、ログインが有効であると判定された場合にのみ、STUNサーバ1260からdev_1の実際のIPアドレスが認証装置1230,1240によって提供される(ステップ1560)。
他の実施形態では、中継装置を介してアクセスを要求するクライアント1210,1220は、正当性の検査をスキップしてもよいし、または、ダイレクトアクセスのために事前に認証されたIPアドレスを有するか、時間的制約のあるURLを有効期限が切れる前に使用することによってなど別の検査を利用してもよい。dev_1へのダイレクトアクセスを要求するクライアント1210,1220は、証明書交換などの正当性の検査を使用してよい。クライアント1210,1220は、dev_1への同時接続の総数が許容限度内にある場合に接続を許可されてよい。クライアント1210,1220は、許可された地理的位置からのIPアドレスを有する場合、接続を許可されてよい。いくつかの実施形態では、dev_1へのダイレクトアクセスを要求するクライアント1210,1220は、VPNサーバ1250などの中継装置を介してdev_1へのアクセスを要求するクライアント1210,1220よりも厳しい検査を受ける。いくつかの実施形態では、何らかのタイプのアクセスを要求するクライアント1210,1220は、同じログイン手順を実行することが要求されるが、ダイレクトアクセスは、追加の所定のプロパティ(例えば、dev_1の所有者が提供しているホワイトリストと一致するユーザ名など)を有するクライアントに対してのみ許可される。
また、図16Aおよび16Bは、本発明の一実施形態による、DNSサーバによるコンピュータデバイス間の接続を管理する方法を例示する。
図16Aを参照すると、認証装置1330は、クライアント1310,1320から、パーソナルサーバ1350などのdev_1に接続する要求を受信した(ステップ1610)後、クライアントが、認証装置1330の予め指定された規則に従ってdev_1にアクセスすることが認可されているかどうかを判定する(ステップ1620)。そうである場合、認証装置1330は、dev_1を指し示すドメインBを解決するようにプログラムされたDNSサーバ1340にクライアント1320,1320のソースIPアドレスを送り(ステップ1630)、その後、認証装置1330は、クライアント1310,1320を、ドメインBを含むURLにリダイレクトする(ステップ1640)。
図16bを参照すると、DNSサーバ1340は、クライアント1310,1320からドメインBを解決する要求を受信した(ステップ1650)後、直接dev_1を指し示すドメインBに対するIPアドレスを取得するために、DNS要求に関連するソースIPがサーバ1340によってアクセスされた規則に従って許可されるかどうか判定する(ステップ1660)。いくつかの実施形態では、この決定は、認証装置1330からの信号と、クライアントのソースIPの地理的位置などの1つまたは複数の追加パラメータとの両方に依存する。図示される実施形態では、許可されたソースIPを有するクライアント1310は、dev_1のIPアドレスIP_Bを受信し(ステップ1670)、一方で、他のクライアント1320はエラーコード1342を受信する(ステップ1680)。別の実施形態では、認証装置1330および/またはDNSサーバ1340によってアクセスされる規則に従ってdev_1にダイレクトアクセスすることが許可されていないソースIPを有するクライアント1320は、VPNサーバなどの中継サーバを指し示すIPアドレスを受信してよく、または、中継サーバを参照するドメインを指し示す、DNSサーバ1340からのCNAME(正式名レコード)応答を受信してよい。
いくつかの実施形態では、異なる認証レベルを有するクライアント1310,1320は、ローカルネットワーク132内のパーソナルサーバまたはデバイスなどの保護されたデバイス1350に異なるセットのコマンドを発行することが許可されてよい。例えば、高い認証レベルを有する信頼できるユーザは、エネルギー消費に関する履歴データを要求するなど、中継プロキシの有無にかかわらず、多様なコマンドを電源スイッチに発行することが許可され得る。対照的に、より低い認証レベルを有するユーザは、外部サーバ、ルータ、または保護されたデバイスによって提示されるユーザインタフェース(UI)によって定義されたコマンドを発行することしか許可されなくてもよい(例えば、UIは、そのようなユーザがスイッチをオンまたはオフにすることのみを許可する)。
コンピュータネットワーク上の他のサーバに知られていない1つまたは複数のキーを使用して、2つのデバイス間で暗号化されたデータ交換を可能にすることによって、ダイレクトアクセスのセキュリティおよびプライバシーをさらに向上させることができる。いくつかの実施形態では、少なくとも1人の接続パーティ(例えば、パーソナルサーバ1350へのダイレクトアクセスを確立しようとするクライアント1310,1320)が、コンピュータネットワーク上の別のサーバを(例えば、TLSプロトコルを使用して)認証し、その後、双方のパーティは、暗号化されたダイレクト接続を確立するために使用することができる鍵素材(例えば、対称キー)を受け取る。この鍵素材は、コンピュータネットワーク上の少なくとも1つの他のサーバ(例えば、認証装置1330)に知られているが、接続を行うパーティは、(例えば、鍵交換のためのディフィー・ヘルマン(Diffie-Hellman)プロトコルを使用することによって)自機の共有対称キーを確立するためにのみそれを使用する。この鍵は、認証装置1330などの他のコンピュータからは秘匿され、接続されたパーティ間のプライベートで安全なデータ交換に使用することができる。最初のディフィー・ヘルマン交換におけるスヌーピングを防ぐために、接続を行うパーティは、電子メール、モバイルメッセージ、またはユーザのコンテンツ(画像ギャラリー、ソーシャルネットワークなど)を許可するサイト上の投稿などの代替通信チャネルを介してそれを確立してよい。この実施形態の一つの実装では、接続を行うパーティはWebRTCプロトコルを使用し、および、ディフィー・ヘルマン鍵交換に使用される1つまたは複数の鍵材料は、シグナリングサーバによって返される。
図17は、本明細書に開示されたコンピュータおよびサーバのいずれかを具体化し得るコンピュータデバイス1700の一例を示すブロック図である。コンピュータデバイス1700は、本明細書で論じられるような様々な手順を実行するために使用され得る。コンピュータデバイス1700は、サーバ、クライアント、または任意の他の計算する実体物として機能することができる。コンピュータデバイスは、本明細書で論じられるような様々なモニタリング機能を実行することができ、本明細書で説明されるアプリケーションプログラムなどの1つまたは複数のアプリケーションプログラムを実行することができる。コンピュータデバイス1700は、デスクトップコンピュータ、ノートブックコンピュータ、サーバコンピュータ、ハンドヘルドコンピュータ、タブレットコンピュータなどの多種多様なコンピュータデバイスのいずれかとすることができる。
コンピュータデバイス1700は、1つまたは複数のプロセッサ1702、1つまたは複数のメモリデバイス1704、1つまたは複数のインタフェース1706、1つまたは複数の大容量記憶デバイス1708、1つまたは複数の入力/出力(I/O)デバイス1710、および表示デバイス1730を含み、これらのすべてはバス1712に接続される。(複数の)プロセッサ1702は、(複数の)メモリデバイス1704および/または(複数の)大容量記憶デバイス1708に記憶された命令を実行する1つまたは複数のプロセッサまたは制御装置を含む。(複数の)プロセッサ1702はまた、キャッシュメモリなどの様々なタイプのコンピュータ可読媒体を含み得る。
(複数の)メモリデバイス1704は、揮発性メモリ(例えば、ランダムアクセスメモリ(RAM)1714)および/または不揮発性メモリ(例えば、リードオンリーメモリ(ROM)1716)などの様々なコンピュータ可読媒体を含む。(複数の)メモリデバイス1704はまた、フラッシュメモリなどの書き換え可能ROMを含み得る。
(複数の)大容量記憶デバイス1708は、磁気テープ、磁気ディスク、光ディスク、ソリッドステートメモリ(例えば、フラッシュメモリ)などの様々なコンピュータ可読媒体を含む。図17に示すように、特定の大容量記憶デバイスは、ハードディスクドライブ1724である。(複数の)大容量記憶デバイス1708には、様々なコンピュータ可読媒体からの読み取りおよび/または書き込みを可能にする様々なドライブも含まれ得る。(複数の)大容量記憶デバイス1708は、リムーバブルメディア1726および/または非リムーバブルメディアを含む。
(複数の)I/Oデバイス1710は、データおよび/または他の情報がコンピュータデバイス1700に入力されるか、またはコンピュータデバイス1700から取り出されることを可能にする様々なデバイスを含む。例示的な(複数の)I/Oデバイス1710は、カーソル制御デバイス、キーボード、キーパッド、マイク、モニタまたは他のディスプレイデバイス、スピーカ、プリンタ、ネットワークインタフェースカード、モデム、レンズ、CCDまたは他の画像キャプチャデバイスなどを含む。
表示デバイス1730は、コンピュータデバイス1700の1人以上のユーザに情報を表示することができる任意のタイプのデバイスを含む。表示デバイス1730の例は、モニタ、表示端末、ビデオ投影デバイスなどを含む。
(複数の)インタフェース1706は、コンピュータデバイス1700が他のシステム、デバイス、またはコンピュータ環境と情報をやりとりすることを可能にする様々なインタフェースを含む。例示的な(複数の)インタフェース1706は、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、ワイヤレスネットワーク、およびインターネットへのインタフェースなどの、任意の数の異なるネットワークインタフェース1720を含む。(複数の)他のインタフェースは、ユーザインタフェース1718と周辺デバイスインタフェース1722とを含む。(複数の)インタフェース1706はまた、1つまたは複数のユーザインタフェース要素1718を含み得る。(複数の)インタフェース1706はまた、プリンタ、ポインティングデバイス(マウス、トラックパッドなど)、キーボードなどのためのインタフェースなどの1つまたは複数の周辺インタフェースを含み得る。
バス1712は、(複数の)プロセッサ1702、(複数の)メモリデバイス1704、(複数の)インタフェース1706、(複数の)大容量記憶デバイス1708、および(複数の)I/Oデバイス1710が相互に通信すること、同様にバス1712に接続された他のデバイスまたは構成要素と通信することを可能にする。バス1712は、システムバス、PCIバス、IEEE1394バス、USBバスなどのいくつかのタイプのバス構造の1つまたは複数を表す。
説明のために、プログラムおよび他の実行可能なプログラム構成要素は、本明細書では別個のブロックとして示されているが、そのようなプログラムおよび構成要素は、コンピュータデバイス1700の異なる記憶構成要素にさまざまな時間に存在し得、(複数の)プロセッサ1702によって実行されることが理解される。代わりに、本明細書に記載されるシステムおよび手順は、ハードウェア、或いは、ハードウェア、ソフトウェア、および/またはファームウェアの組み合わせで実装することができる。例えば、1つまたは複数の特定用途向け集積回路(ASIC)を、本明細書で説明される1つまたは複数のシステムおよび手順を実行するようにプログラムすることができる。
本明細書を通じて、「一実施形態」、「実施形態」、「一例」または「例」は、特定の特徴、構造、または特性が本開示の少なくとも1つの実施形態に含まれる実施形態または例に関連して記載されたことを意味する。従って、本明細書の様々な箇所における「一実施形態において」、「実施形態において」、「一つの例」、または「例」という表現の出現は、必ずしもすべてが同じ実施形態または例を参照しているとは限らない。さらに、特定の特徴、構造、または特性は、1つまたは複数の実施形態または例における任意の適切な組み合わせ、および/または部分的な組み合わせで組み合わせられてよい。さらに、添付の図面は、当業者に対する説明のために提供されており、図面は必ずしも縮尺通りに描かれていないことを理解されたい。
本発明は、その精神または本質的な特性から逸脱することなく、他の特定の形態で具体化され得る。記載された実施形態は、すべての点において、単に例示的なものであり、限定的なものではないとみなされるべきである。従って、本発明の範囲は、前述の記述によってではなく、むしろ添付の請求項によって示される。請求項と均等の意味および範囲内に入るすべての変更は、本発明の範囲内に含まれるべきである。

Claims (65)

  1. ローカルネットワーク内のコンピュータ間でデータを転送するように構成された少なくとも1つのネットワークデバイスを含む、前記ローカルネットワークと、
    前記ローカルネットワークに接続された第1のデバイスであって、少なくとも1つの処理デバイスと、ネットワーク通信を実行する手段とを備え、前記第1のデバイスはアウトバウンド接続を開始するようにプログラムされており、少なくとも1つのアウトバウンド接続は前記ローカルネットワーク内のいずれのデバイスとも対応しない外部アドレスを含む、前記第1のデバイスと、
    前記ローカルネットワークに接続されており、外部ネットワークへの少なくとも1つの接続を有する第2のデバイスと、
    前記外部ネットワークに接続された外部デバイスを参照する各アウトバウンド接続の外部ネットワークアドレスであって、前記第2のデバイスは、前記第1のデバイスによって開始された前記アウトバウンド接続の少なくとも1つのアウトバウンド接続に対して、前記少なくとも1つのアウトバウンド接続の前記外部アドレスが、前記少なくとも1つのアウトバウンド接続の前記外部アドレスからのインバウンド接続によって先行されなかった場合に、前記少なくとも1つのアウトバウンド接続をブロックする、ようにさらにプログラムされる、前記外部ネットワークアドレスと、を含み、
    前記第2のデバイスは、前記第2のデバイスによってブロックされた前記アウトバウンド接続の前記少なくとも1つのアウトバウンド接続の前記外部アドレスと同一のソースアドレスを含む、前記外部ネットワーク内の前記ソースアドレスからの前記第1のデバイスへのインバウンド接続を許可するようにさらにプログラムされる、ネットワーク構築のためのシステム。
  2. 前記第2のデバイスは、前記アウトバウンド接続の前記少なくとも1つのアウトバウンド接続に対して:
    前記少なくとも1つのアウトバウンド接続の前記外部アドレスがホワイトリストに含まれている場合、前記各アウトバウンド接続の前記外部アドレスへの前記各アウトバウンド接続を許可し、および
    前記少なくとも1つのアウトバウンド接続の前記外部アドレスが前記ホワイトリストに含まれていない場合、前記少なくとも1つのアウトバウンド接続をブロックする、ようにさらにプログラムされており、並びに、
    前記第2のデバイスは、前記ホワイトリストに含まれていない前記ソースアドレスを有する前記インバウンド接続の少なくとも一部を許可するようにさらにプログラムされている、ことを特徴とする請求項1に記載のシステム。
  3. 前記ホワイトリストは、ドメイン名、インターネットプロトコル(IP)アドレス、およびポートのうちの少なくとも1つをそれぞれが含む1つまたは複数のネットワーク識別子を格納する、請求項2に記載のシステム。
  4. 前記第2のデバイスが、前記少なくとも1つのアウトバウンド接続に対して、前記少なくとも1つのアウトバウンド接続の前記外部アドレスが、前記少なくとも1つのアウトバウンド接続の前記外部アドレスからのインバウンド接続によって先行されている場合に、前記少なくとも1つのアウトバウンド接続の前記外部アドレスへの前記少なくとも1つのアウトバウンド接続を許可するように、さらにプログラムされる、請求項1に記載のシステム。
  5. 前記第2のデバイスは、前記第1のアドレスからのインバウンド接続によって先行される第1の外部アドレスへの前記第1のデバイスからのアウトバウンド接続を許可し、先に受信したインバウンド接続に含まれていた前記第1のアドレスとは異なるアドレスを含む、前記第1のアドレスとは異なるアドレスへの前記第1のデバイスからの1つまたは複数の後続のアウトバウンド接続をブロックするように、プログラムされる請求項4に記載のシステム。
  6. 前記第2のデバイスは、アウトバウンド接続と同じアドレスを参照するインバウンド接続が、前記第2のデバイスに知られているポートのセットからの宛先ポートを使用している場合にのみ、前記第1のデバイスからの前記アウトバウンド接続を許可するようにさらにプログラムされる、請求項4に記載のシステム。
  7. 前記第2のデバイスは、前記第1のデバイスからのすべての前記アウトバウンド接続をブロックし、前記外部ネットワークの前記ソースアドレスから開始されるインバウンド接続を前記第1のデバイスが受け入れることを許可にするようにさらにプログラムされる、請求項1に記載のシステム。
  8. 前記第1のデバイスは、ハイパーテキスト転送プロトコル(HTTP)サーバとHTTPクライアントの両方を実行するようにプログラムされており、
    前記第2のデバイスは、前記HTTPクライアントから前記外部ネットワーク内の遠隔デバイスへの接続の試みをブロックし、一方、前記遠隔デバイスからの接続が前記HTTPサーバに到達することを許可するようにさらにプログラムされる、請求項1に記載のシステム。
  9. 前記第2のデバイスは、ゲートウェイ、ルータ、ブリッジ、スイッチ、およびファイアウォールの少なくとも1つを含む、請求項1に記載のシステム。
  10. 前記第2のデバイスは、さらに、前記外部ネットワーク内の1つまたは複数の中継コンピュータへの接続を開き、および、前記インバウンド接続の各インバウンド接続ごとに−−
    前記各インバウンド接続が、前記1つまたは複数の中継コンピュータ以外の前記外部ネットワークにおける遠隔デバイスから前記1つまたは複数の中継コンピュータを介して受信された場合に、前記第1のデバイスへの前記各インバウンド接続を許可し、
    前記1つまたは複数の中継コンピュータ以外の前記遠隔デバイスからの前記各インバウンド接続が、前記1つまたは複数の中継コンピュータを介して受信されてない場合、前記各インバウンド接続が、前記第1のデバイスに接続を開くのをブロックする、ようにさらにプログラムされる、請求項1に記載のシステム。
  11. 1つまたは複数の中継コンピュータが、前記遠隔デバイスからの要求を渡すために、前記第2のデバイスによって開かれた逆接続を使用して、前記遠隔デバイスと前記第2のデバイスとの間のプロキシとして機能することが可能である、請求項10に記載のシステム。
  12. 前記1つまたは複数の中継コンピュータは、前記遠隔デバイスからの要求を渡すために、前記第2のデバイスによって開かれたVPNトンネルを介する逆接続を使用して、前記第2のデバイスからの接続のための仮想プライベートネットワーク(VPN)サーバとして機能することが可能である、請求項10に記載のシステム。
  13. 前記第2のデバイスは、各アウトバウンド接続ごとに:
    前記各アウトバウンド接続のソースアドレスを評価し、
    前記各アウトバウンド接続の前記ソースアドレスが前記ローカルネットワーク内のアドレスと一致する場合、前記各アウトバウンド接続の処理を控える、ようにプログラムされる請求項1に記載のシステム。
  14. 前記第2のデバイスは、単方向の接続要求のみを許可するようにさらにプログラムされる、請求項1に記載のシステム。
  15. 前記第1のデバイスは、接続の受け入れと、接続の開始の両方を実行するようにプログラムされる、請求項13に記載のシステム。
  16. ローカルネットワーク内のコンピュータ間でデータを転送するように構成された少なくとも1つのネットワークデバイスを含む、前記ローカルネットワークと、
    前記ローカルネットワークに接続された第1のデバイスであって、少なくとも1つの処理デバイスと、ネットワーク通信を実行する手段とを備え、前記第1のデバイスはアウトバウンド接続を開始するようにプログラムされており、少なくとも1つのアウトバウンド接続は前記ローカルネットワーク内のいずれかのコンピュータと対応している、前記第1のデバイスと、
    前記ローカルネットワークに接続され、前記ローカルネットワーク内のコンピュータ間の接続を管理するようにプログラムされる第2のデバイスであって、前記第2のデバイスはまた、外部IPアドレスからの少なくとも1つのインバウンド接続を受け入れるようにプログラムされ、前記外部IPアドレスからの前記少なくとも1つのインバウンド接続は前記第1のデバイスへの参照を含む、前記第2のデバイスと、を含み、
    前記第2のデバイスは、前記第1のデバイスからの前記ローカルネットワーク内の第1のアドレスへの少なくとも1つの第1のアウトバウンド接続に対して、前記少なくとも1つの第1のアウトバウンド接続が、前記第1のデバイスへの参照を含むインバウンド接続に先行されなかった場合、前記少なくとも1つの第1のアウトバウンド接続をブロックするようにさらにプログラムされる、ネットワーク構築のためのシステム。
  17. 前記ローカルネットワーク内の前記コンピュータは、第1のグループのデバイスと第2のグループのデバイスとを含み、
    前記第2のデバイスは、第1の規則を前記ローカルネットワーク内の第1のグループのデバイスに適用し、第2の規則を前記ローカルネットワーク上の第2のグループのデバイスに適用するようにさらにプログラムされ、前記第1の規則は、前記第2のデバイスが前記第1のグループから前記第2のグループへの接続をブロックするようにプログラムされるが、前記第2のグループからの前記第1のグループへのローカル接続は許可するようにプログラムされるように、前記第2の規則と異なる、請求項16に記載のシステム。
  18. 前記第2のデバイスは、前記ローカルネットワーク内の第2のアドレスへの前記第1のデバイスからの少なくとも1つの第2のアウトバウンド接続に対して前記第2のアドレスを含む前記第1のデバイスへのインバウンド接続により先行されたかに関わらず、前記少なくとも1つの第2のアウトバウンド接続を前記少なくとも1つの第2のアウトバウンド接続が許可するようにさらにプログラムされる、請求項16に記載のシステム。
  19. 前記第2のデバイスは、ゲートウェイ、ルータ、ブリッジ、スイッチ、プロキシ、およびファイアウォールのうちの1つである、請求項16に記載のシステム。
  20. 前記第2のデバイスは、アドレス解決プロトコル(ARP)、マルチキャストドメインネームサービス(mDNS)、およびシンプルサービスディスカバリプロトコル(SSDP)のうちの少なくとも1つから得られた情報によって前記ローカルネットワーク上の前記コンピュータを識別するようにプログラムされる、請求項16に記載のシステム 。
  21. 前記第2のデバイスは、前記少なくとも1つのコンピュータの名前およびディスクリプションによって前記ローカルネットワーク上の前記コンピュータから少なくとも1つのコンピュータを識別するようにプログラムされる、請求項16に記載のシステム。
  22. 前記第2のデバイスは、1つまたは複数のローカル接続を開始した前記ローカルネットワーク上の前記コンピュータのうちの1つのコンピュータからの少なくとも1つのデータパケットをブロックすることによって、前記1つまたは複数のローカル接続をブロックするようにさらにプログラムされる、請求項16に記載のシステム。
  23. 前記第2のデバイスは、1つまたは複数のローカル接続に応答して転送された、前記ローカルネットワーク上の前記コンピュータのうちの1つのコンピュータからの少なくとも1つのデータパケットをブロックすることによって、前記1つまたは複数のローカル接続をブロックするようにさらにプログラムされる、請求項16に記載のシステム。
  24. 前記第2のデバイスは、前記第1のデバイスによって先に送信または受信された前記パケットに関する情報を分析することによって、前記第1のデバイスを識別するようにプログラムされる、請求項16に記載のシステム。
  25. 前記第2のデバイスは、前記第1のデバイスが前記第1のアドレスに、少なくとも所定の時間間隔内に前記第1のアドレスからパケットを先に受信することなく、パケットを送信していた場合に、前記第1のデバイスを前記少なくとも1つのアウトバウンド接続を開始するものとして識別するようにプログラムされる、請求項24に記載のシステム。
  26. コンピュータネットワークに接続された第1のデバイスを提供するステップと、
    前記第1のデバイスによって、前記コンピュータネットワークに接続された第2のデバイスへの第1の接続を開始するステップと、
    第1の接続を介して第3のデバイスの1つまたは複数の第3のネットワーク識別子を、前記第1のデバイスによって受信するステップであって、前記第1のデバイスは、前記第1の接続を介して前記1つまたは複数の第3のネットワーク識別子を受信する前に、前記第3のデバイスの記録を有していない、受信するステップと、
    前記第1のデバイスの1つまたは複数のネットワーク管理ルールを、前記第1のデバイスによって変更して、前記第1のデバイスの前記1つまたは複数の第1のネットワーク識別子を参照する前記第3のデバイスの前記1つまたは複数の第3のネットワーク識別子からの1つまたは複数のインバウンド接続を許可するステップと、
    前記第1のデバイスを参照する1つまたは複数の第1のネットワーク識別子を前記第3のデバイスに送信するステップであって、前記第3のデバイスは、前記1つまたは複数の第1のネットワーク識別子を受信する前に前記第1のデバイスの記録を有していない、送信するステップと、
    前記第3のデバイスからの前記1つまたは複数のインバウンド接続を、前記第1のデバイスによって受け入れるステップであって、前記1つまたは複数のインバウンド接続は、前記1つまたは複数第1のネットワーク識別子を含み、および、前記1つまたは複数の第3のネットワーク識別子を、前記1つまたは複数のインバウンド接続のソースとして列挙する、受け入れるステップと、
    少なくとも1つの所定の条件を検出することに応じて、前記第3のデバイスから前記先に受け入れられたインバウンド接続をブロックするために、前記1つまたは複数のネットワーク管理ルールを、前記第1のデバイスによって変更するステップと、を含む、方法。
  27. 前記1つまたは複数の第3のネットワーク識別子は、ソースインターネットプロトコル(IP)アドレス、ソースポート、トランスポートプロトコル、および前記第3のデバイスからの前記1つまたは複数のインバウンド接続のデータパターンからなる群から選択される、請求項26に記載の方法。
  28. 前記1つまたは複数の第1のネットワーク識別子は、ソースインターネットプロトコル(IP)アドレス、ソースポート、およびトランスポートプロトコルからなる群から選択される、請求項26に記載の方法。
  29. 前記第3のデバイスからの前記1つまたは複数のインバウンド接続を許可するステップは、トランスポートレベルセキュリティ(TLS)プロトコル、ハイパーテキスト転送プロトコル(HTTP)、ウェブリアルタイム通信(WebRTC)プロトコル、およびインタラクティブ接続確立(ICE)フレームワークを用いるプロトコルからなるグループから選択されたプロトコル使用するステップを含む、請求項26に記載の方法。
  30. (a)前記第1のデバイスによって、前記第1の接続を介して、前記第3のデバイスの前記1つまたは複数の第3のネットワーク識別子を受信するステップ、および(b)前記第1のデバイスを参照する前記1つまたは複数の第1のネットワーク識別子を前記第3のデバイスに送信するステップの両方は、前記第1のデバイスに接続するための前記第3のデバイスの認証に応答して実行され、前記第1のデバイスに接続する前記第3のデバイスの認証は、前記第3のデバイスが前記第1のデバイスの記録を有する前に実行される、請求項26に記載の方法。
  31. 前記少なくとも1つの所定の条件は:
    前記第3のデバイスへの開かれた接続の数が、許可された接続の数を超えること、
    1つまたは複数の前記開かれた接続を閉じた後、未使用の前記第3のデバイスに許可された接続の数が第1の閾値を超えること、
    1つまたは複数のインバウンド接続が許可されてからの時間間隔が第2の閾値を超えること、からなる群から選択される、請求項26に記載の方法。
  32. 前記少なくとも1つの所定の条件は、前記第1のデバイスが、前記1つまたは複数の第3のネットワーク識別子に含まれるものとは異なるネットワークアドレスからの1つまたは複数のインバウンド接続をブロックすることを含む、請求項26に記載の方法。
  33. 前記1つまたは複数のネットワーク管理規則を変更するステップは、前記第1のデバイス上のファイアウォール規則を変更するステップを含む、請求項26に記載の方法。
  34. 前記第2のデバイスは、仮想プライベートネットワーク(VPN)サーバおよびルータのうちの少なくとも1つである、請求項26に記載の方法。
  35. 前記第3のデバイスに、前記1つまたは複数の第1のネットワーク識別子を送信するステップは:
    (a)前記第1のネットワーク識別子を第2のデバイスによって前記第3のデバイスに送信するステップと、
    (b)前記第1のネットワーク識別子を前記第3のデバイスに中継サーバから送信するステップであって、前記中継サーバは、前記1つまたは複数の第3のネットワーク識別子を前記第1のデバイスによって受信する前に、前記第1のネットワーク識別子を記憶する、送信するステップと、のうちの少なくとも1つを更に含む、請求項26に記載の方法。
  36. コンピュータネットワークと、
    前記コンピュータネットワークに接続された第1のデバイスおよび第2のデバイスであって、前記第1のデバイスは、1つまたは複数のプロセッサと1つまたは複数のメモリデバイスとを含み、前記1つまたは複数のメモリデバイスは、前記1つまたは複数のプロセッサに:
    前記第2のデバイスへの第1の接続を開始するステップと、
    前記第1の接続を介して第3のデバイスの1つまたは複数の第3のネットワーク識別子を受信するステップであって、前記第1のデバイスは、前記第1の接続を介して前記1つまたは複数の第3のネットワーク識別子を受信する前に、前記第3のデバイスの記録を有していない、受信するステップと、
    前記第1のデバイスの1つまたは複数の第1のネットワーク識別子を参照する前記第3のデバイスの前記1つまたは複数の第3のネットワーク識別子からの1つまたは複数のインバウンド接続を許可するために、前記第1のデバイスの1つまたは複数のネットワーク管理規則を変更するステップと、
    前記第1のデバイスを参照する1つまたは複数の第1のネットワーク識別子を前記第3のデバイスに送信するステップであって、前記第3のデバイスは、前記1つまたは複数の第1のネットワーク識別子を受信する前に、前記第1のデバイスの記録を有していない、送信するステップと、
    前記第3のデバイスからの前記1つまたは複数のインバウンド接続を受け入れるステップであって、前記1つまたは複数のインバウンド接続は、前記1つまたは複数第1のネットワーク識別子を含み、および、前記1つまたは複数の第3のネットワーク識別子を、前記1つまたは複数のインバウンド接続のソースとして列挙する、受け入れるステップと、
    少なくとも1つの所定の条件を検出することに応じて、前記第3のデバイスから前記先に受け入れられたインバウンド接続をブロックするために、前記1つまたは複数のネットワーク管理ルールを変更するステップと、を実行させるのに有効な実行可能コードを格納する、ことを特徴とするシステム。
  37. 前記1つまたは複数の第3のネットワーク識別子は、ソースインターネットプロトコル(IP)アドレス、ソースポート、トランスポートプロトコル、および前記第3のデバイスからの前記1つまたは複数のインバウンド接続のデータパターンからなる群から選択される、請求項36に記載のシステム。
  38. 前記1つまたは複数の第1のネットワーク識別子は、ソースインターネットプロトコル(IP)アドレス、ソースポート、およびトランスポートプロトコルからなる群から選択される、請求項36に記載のシステム。
  39. 前記実行可能コードは、前記第3のデバイスからの前記1つまたは複数のインバウンド接続を、トランスポートレベルセキュリティ(TLS)プロトコル、ハイパーテキスト転送プロトコル(HTTP)、ウェブリアルタイム通信(WebRTC)プロトコル、およびインタラクティブ接続確立(ICE)フレームワークを用いるプロトコルからなるグループから選択されたプロトコルを使用して、前記1つまたは複数のプロセッサに許可させるのにさらに有効である、請求項36に記載のシステム。
  40. 前記実行可能コードは、前記1つまたは複数のプロセッサに、(a)前記第1のデバイスによって、前記第1の接続を介して、前記第3のデバイスの前記1つまたは複数の第3のネットワーク識別子を受信するステップ、および、(b)前記第1のデバイスを参照する前記1つまたは複数の第1のネットワーク識別子を前記第3のデバイスに送信するステップの両方を、前記第1のデバイスに接続するための前記第3のデバイスの認証に応答して実行させるために有効であり、前記第1のデバイスに接続する前記第3のデバイスの前記認証は、前記第3のデバイスが前記第1のデバイスの記録を有する前に実行される、請求項36に記載のシステム。
  41. 前記少なくとも1つの所定の条件は:
    前記第3のデバイスへの開かれた接続の数が、許可された接続の数を超えること、
    1つまたは複数の前記開かれた接続を閉じた後、未使用の前記第3のデバイスに許可された接続の数が第1の閾値を超えること、
    前記1つまたは複数のインバウンド接続が許可されてからの時間間隔が第2の閾値を超えること、からなる群から選択される、請求項36に記載のシステム。
  42. 前記少なくとも1つの所定の条件は、前記第1のデバイスが、前記1つまたは複数の第3のネットワーク識別子に含まれるものとは異なるネットワークアドレスからの1つまたは複数のインバウンド接続をブロックすることを含む、請求項36に記載のシステム。
  43. 前記実行可能コードは、前記第1のデバイス上のファイアウォール規則を変更することによって、前記1つまたは複数のプロセッサに前記1つまたは複数のネットワーク管理規則を変更させるのに有効である、請求項36に記載のシステム。
  44. 前記第2のデバイスは、仮想プライベートネットワーク(VPN)サーバおよびルータのうちの少なくとも1つである、請求項36に記載のシステム。
  45. 前記実行可能コードは、
    (a)前記第1のネットワーク識別子を第2のデバイスによって前記第3のデバイスに送信するステップと、
    (b)前記第1のネットワーク識別子を前記第3のデバイスに中継サーバから送信するステップであって、前記中継サーバは、前記1つまたは複数の第3のネットワーク識別子を前記第1のデバイスによって受信する前に、前記第1のネットワーク識別子を記憶する、送信するステップと、のうちの少なくとも1つによって、前記1つまたは複数のプロセッサに、前記1つまたは複数の第1のネットワーク識別子を前記第3のデバイスへと送信させるのにさらに有効である、請求項36に記載のシステム。
  46. 外部ネットワークに接続された第1のコンピュータおよび第2のコンピュータを含む、システムであって、
    前記第1のコンピュータは、
    前記第2のコンピュータと第3のコンピュータとの間でデータ交換を確立するために必要な1つまたは複数の第3のネットワーク識別子を提供するために、前記第2のコンピュータから転送された要求を受信し、前記第3のコンピュータは前記外部ネットワークにあり、前記第2のコンピュータは前記1つまたは複数の第3のネットワーク識別子の記録を有しておらず、
    前記第2のコンピュータが前記第3のコンピュータへの直接のインバウンド接続を開始することを認可されているかどうかを評価し、
    前記第2のコンピュータが、前記第3のコンピュータへの直接のインバウンド接続を開始することを認可されている場合、前記第2のコンピュータに前記1つまたは複数の第3のネットワーク識別子を提供し、
    前記第2のコンピュータが、前記第3のコンピュータへの直接のインバウンド接続を開始することを認可されていない場合、前記第2のコンピュータに、第4のコンピュータと対応する1つまたは複数の第4のネットワーク識別子を提供するようにプログラムされ、前記第4のコンピュータは、前記1つまたは複数の第3のネットワーク識別子を前記第2のコンピュータに送信することなく、前記第2のコンピュータと前記第3のコンピュータとの間で、トラフィックを転送するようにプログラムされる、システム。
  47. 前記1つまたは複数の第3のネットワーク識別子は、前記第3のコンピュータへの前記インバウンド接続の宛先IPアドレスおよび宛先ポートからなる群から選択される、請求項46に記載のシステム。
  48. 前記第1のコンピュータは、前記第2のコンピュータに認証証明書を提供することを要求することによって、前記第2のコンピュータが前記第3のコンピュータへの直接のインバウンド接続を開始することを認可されるかどうかを評価するようにさらにプログラムされる、請求項46に記載のシステム。
  49. さらに前記第4のコンピュータを含み、前記第4のコンピュータは、前記第4のコンピュータの1つまたは複数の第4のネットワーク識別子を前記第2のコンピュータに提供する前に、前記第3のコンピュータからの前記第4のコンピュータへのアウトバウンド接続を確立するようにさらにプログラムされ、前記第3のコンピュータからの前記第4のコンピュータへの前記アウトバウンド接続は、前記第3のコンピュータへの逆接続である、請求項46に記載のシステム。
  50. 前記第4のコンピュータは、前記第3のコンピュータから前記第4のコンピュータへと確立されたVPNトンネル内の逆接続をサポートすることができる仮想プライベートネットワーク(VPN)サーバを実行するようにプログラムされる、請求項49に記載のシステム。
  51. 前記第2のコンピュータが、前記第3のコンピュータへの直接のインバウンド接続を開始することが許可されている場合、ユーザデータグラムプロトコル(UDP)を介してインタラクティブ接続確立(ICE)フレームワークを使用して前記第3のコンピュータへの前記直接のインバウンド接続を開始するように、前記第2のコンピュータはプログラムされ、
    前記第2のコンピュータは、前記第3のコンピュータへの直接のインバウンド接続を開始することが認可されていない場合、ハイパーテキスト転送プロトコル(HTTP)を使用して前記第2のコンピュータと前記第4のコンピュータとの間の接続を開始するようにプログラムされる、請求項46に記載のシステム。
  52. 前記第1のコンピュータは、ドメインネームサーバ(DNS)を実行し、前記第2のコンピュータからのドメイン解決要求に応じて、前記1つまたは複数の第3のネットワーク識別子および前記1つまたは複数の第4のネットワーク識別子のうちの少なくとも1つを前記第2のコンピュータに提供するようにプログラムされる、請求項46に記載のシステム。
  53. 前記第3のコンピュータは、ネットワーク対応家電機器である、請求項46に記載のシステム。
  54. 前記第3のコンピュータは、ゲートウェイ、ルータ、ブリッジ、スイッチ、およびファイアウォールの少なくとも1つを含む、請求項46に記載のシステム。
  55. 外部ネットワークに接続された第1のコンピュータおよび第2のコンピュータを提供するステップと、
    前記第2のコンピュータと第3のコンピュータとの間でデータ交換を確立するために必要な1つまたは複数の第3のネットワーク識別子を提供するために、前記第2のコンピュータから転送された要求を前記第2のコンピュータにより受信するステップであって、前記第3のコンピュータは前記外部ネットワークにあり、前記第2のコンピュータは前記1つまたは複数の第3のネットワーク識別子の記録を有していない、受信するステップと、
    前記第2のコンピュータが前記第3のコンピュータへの直接のインバウンド接続を開始することを認可されるかどうかを前記第1のコンピュータによって評価するステップと、
    前記第2のコンピュータが前記第3のコンピュータへの直接のインバウンド接続を開始することを認可されていると前記第1のコンピュータによって判定するステップと、
    前記第2のコンピュータが前記第3のコンピュータへの直接のインバウンド接続を開始することを認可されていると判定するステップに応じて、前記1つまたは複数の第3のネットワーク識別子を前記第2のコンピュータに提供するステップと、を含む、方法。
  56. 前記第2のコンピュータと第4のコンピュータとの間でデータ交換を確立するために必要な1つまたは複数の第4のネットワーク識別子を提供するために、前記第2のコンピュータから転送された要求を前記第2のコンピュータにより受信するステップであって、前記第4のコンピュータは前記外部ネットワークにあり、前記第2のコンピュータは前記1つまたは複数の第4のネットワーク識別子の記録を有していない、受信するステップと、
    前記第2のコンピュータが前記第4のコンピュータへの直接のインバウンド接続を開始することが認可されるかどうかを前記第1のコンピュータによって評価するステップと、
    前記第2のコンピュータが、前記第4のコンピュータへの直接のインバウンド接続を開始することを認可されていないと前記第1のコンピュータによって判定するステップと、
    前記第2のコンピュータが前記第4のコンピュータへの直接のインバウンド接続を開始することを認可されていないと判定することに応答して、前記第2のコンピュータに1つまたは複数の第5のネットワーク識別子を前記第1のコンピュータによって提供するステップであって、前記第5のネットワーク識別子は第5のコンピュータを参照し、前記第5のコンピュータは、前記1つまたは複数の第4のネットワーク識別子を前記第2のコンピュータに送信することなく、前記第2のコンピュータと前記第4のコンピュータとの間でトラフィックを転送するようにプログラムされる、提供するステップと、をさらに含む、請求項55に記載の方法。
  57. ハイパーテキスト転送プロトコル(HTTP)を使用して、前記第2のコンピュータと前記第5のコンピュータとの間の接続を開始するステップをさらに含む、請求項56に記載の方法。
  58. 前記第5のコンピュータの前記1つまたは複数の第5のネットワーク識別子を前記第2のコンピュータに提供する前に、前記第4のコンピュータから前記第5のコンピュータへのアウトバウンド接続を前記第5のコンピュータによって確立するステップをさらに含み、前記第4のコンピュータからの前記第5のコンピュータへの前記アウトバウンド接続は、前記第4のコンピュータへの逆接続である、請求項56に記載の方法。
  59. 前記第4のコンピュータから前記第5のコンピュータへと確立されたVPNトンネル内の逆接続をサポートすることができる仮想プライベートネットワーク(VPN)サーバを前記第5のコンピュータ上で実行するステップ、をさらに含む、請求項58に記載の方法。
  60. 前記1つまたは複数の第3のネットワーク識別子は、前記第3のコンピュータへの前記インバウンド接続の宛先IPアドレスおよび宛先ポートからなる群から選択される、請求項55に記載の方法。
  61. 前記第2のコンピュータに認証証明書を提供することを要求することによって、前記第2のコンピュータが前記第3のコンピュータへの直接のインバウンド接続を開始することを認可されているかどうかを、前記第1のコンピュータによって評価するステップ、をさらに含む請求項55に記載の方法。
  62. 前記第2のコンピュータが、前記第3のコンピュータへの直接のインバウンド接続を開始することが認可されていると判定することに応答して、前記第3のコンピュータへの前記直接のインバウンド接続を、 ユーザデータグラムプロトコル(UDP)を介してインタラクティブ接続確立(ICE)フレームワークを使用して前記第2のコンピュータによって開始するステップをさらに含む、請求項55に記載の方法。
  63. 前記第1のコンピュータ上でドメインネームサーバ(DNS)を実行するステップをさらに含み、
    前記第2のコンピュータに前記1つまたは複数の第3のネットワーク識別子を前記第1のコンピュータによって提供するステップは、前記第2のコンピュータからドメイン解決要求を受信することに応答して実行される、請求項55に記載の方法。
  64. 前記第3のコンピュータおよび前記第4のコンピュータの少なくとも1つは、ネットワーク対応家電機器である、請求項55に記載の方法。
  65. 前記第3のコンピュータおよび前記第4のコンピュータの少なくとも1つは、ゲートウェイ、ルータ、ブリッジ、スイッチ、およびファイアウォールのうちの少なくとも1つを含む、請求項55に記載の方法。
JP2018509896A 2015-08-25 2016-08-23 インターネットに接続可能なデバイスを用いた安全な通信 Pending JP2018525935A (ja)

Applications Claiming Priority (9)

Application Number Priority Date Filing Date Title
US201562209776P 2015-08-25 2015-08-25
US62/209,776 2015-08-25
US15/040,655 US10135790B2 (en) 2015-08-25 2016-02-10 Secure communications with internet-enabled devices
US15/040,762 2016-02-10
US15/040,697 2016-02-10
US15/040,655 2016-02-10
US15/040,697 US10135791B2 (en) 2015-08-25 2016-02-10 Secure communications with internet-enabled devices
US15/040,762 US10135792B2 (en) 2015-08-25 2016-02-10 Secure communications with internet-enabled devices
PCT/US2016/048226 WO2017035159A1 (en) 2015-08-25 2016-08-23 Secure communications with internet-enabled devices

Publications (2)

Publication Number Publication Date
JP2018525935A true JP2018525935A (ja) 2018-09-06
JP2018525935A5 JP2018525935A5 (ja) 2019-09-19

Family

ID=58096227

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018509896A Pending JP2018525935A (ja) 2015-08-25 2016-08-23 インターネットに接続可能なデバイスを用いた安全な通信

Country Status (6)

Country Link
US (5) US10135790B2 (ja)
EP (1) EP3342129A4 (ja)
JP (1) JP2018525935A (ja)
KR (1) KR20180048711A (ja)
CA (1) CA2996409A1 (ja)
WO (1) WO2017035159A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021182567A1 (ja) * 2020-03-11 2021-09-16 コネクトフリー株式会社 コントローラ、商品取引システムおよび自動注文プログラム

Families Citing this family (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9461973B2 (en) 2014-03-19 2016-10-04 Bluefin Payment Systems, LLC Systems and methods for decryption as a service
EP3518570B1 (en) 2014-03-19 2020-11-04 Bluefin Payment Systems, LLC Systems and methods for creating fingerprints of encryption devices
US11256798B2 (en) 2014-03-19 2022-02-22 Bluefin Payment Systems Llc Systems and methods for decryption as a service
MA41502A (fr) 2015-02-14 2017-12-19 Valimail Inc Validation centralisée d'expéditeurs d'email par ciblage de noms ehlo et d'adresses ip
US10135790B2 (en) * 2015-08-25 2018-11-20 Anchorfree Inc. Secure communications with internet-enabled devices
US10678919B2 (en) * 2016-02-19 2020-06-09 Secureworks Corp. System and method for detecting and monitoring process creation
US11301572B2 (en) * 2016-02-27 2022-04-12 Gryphon Online Safety, Inc. Remotely controlling access to online content
US11405399B2 (en) * 2016-02-27 2022-08-02 Gryphon Online Safety Inc. Method of protecting mobile devices from vulnerabilities like malware, enabling content filtering, screen time restrictions and other parental control rules while on public network by forwarding the internet traffic to a smart, secured home router
US11743264B2 (en) * 2016-02-27 2023-08-29 Gryphon Online Safety Inc. Method of protecting mobile devices from vulnerabilities like malware, enabling content filtering, screen time restrictions and other parental control rules while on public network by forwarding the internet traffic to a smart, secured home router
US10212167B2 (en) * 2016-02-27 2019-02-19 Gryphon Online Safety, Inc. Method and system to enable controlled safe internet browsing
US10594731B2 (en) * 2016-03-24 2020-03-17 Snowflake Inc. Systems, methods, and devices for securely managing network connections
CN109496411B (zh) * 2016-06-02 2021-08-10 爱维士软件有限责任公司 一种用于改善网络安全的方法和系统
US10348755B1 (en) * 2016-06-30 2019-07-09 Symantec Corporation Systems and methods for detecting network security deficiencies on endpoint devices
US10778775B2 (en) * 2016-10-25 2020-09-15 Cisco Technology, Inc. Control of network connected devices
US10528725B2 (en) 2016-11-04 2020-01-07 Microsoft Technology Licensing, Llc IoT security service
US10536477B1 (en) * 2016-11-04 2020-01-14 Xilinx, Inc. Protection against attacks from remote network devices
US10972456B2 (en) * 2016-11-04 2021-04-06 Microsoft Technology Licensing, Llc IoT device authentication
US11057344B2 (en) * 2016-12-30 2021-07-06 Fortinet, Inc. Management of internet of things (IoT) by security fabric
WO2018148058A1 (en) 2017-02-10 2018-08-16 Edgewise Networks, Inc. Network application security policy enforcement
US10439985B2 (en) 2017-02-15 2019-10-08 Edgewise Networks, Inc. Network application security policy generation
JP6749281B2 (ja) * 2017-03-23 2020-09-02 エヌ・ティ・ティ・コミュニケーションズ株式会社 IoTデバイス、シグナリングサーバ、メッセージバス管理サーバ、コネクション形成方法、及びプログラム
EP3622405A4 (en) * 2017-05-09 2020-12-23 Nokia of America Corporation CONNECTIVITY, DISCOVERY AND NETWORKING OF IOT DEVICE
US11038893B2 (en) 2017-05-15 2021-06-15 Cisco Technology, Inc. Validating a device class claim using machine learning
US11711350B2 (en) 2017-06-02 2023-07-25 Bluefin Payment Systems Llc Systems and processes for vaultless tokenization and encryption
JP7093531B2 (ja) * 2017-06-02 2022-06-30 ブルーフィン ペイメント システムズ エルエルシー ウェブブラウザを介して決済端末を管理するシステム及び方法
US11025627B2 (en) * 2017-07-10 2021-06-01 Intel Corporation Scalable and secure resource isolation and sharing for IoT networks
US10901812B2 (en) * 2017-09-18 2021-01-26 Rapyuta Robotics Co., Ltd. Managing communication between cloud and heterogeneous devices across networks
US11265310B2 (en) * 2017-10-19 2022-03-01 Microsoft Technology Licensing, Llc Isolating networks and credentials using on-demand port forwarding
WO2019094655A1 (en) 2017-11-10 2019-05-16 Edgewise Networks, Inc. Automated load balancer discovery
US11190492B2 (en) * 2017-12-01 2021-11-30 Twingate, Inc. Local interception of traffic to a remote forward proxy
US10721166B2 (en) * 2017-12-08 2020-07-21 International Business Machines Corporation Ensuring data locality for secure transmission of data
US11082837B2 (en) * 2018-01-05 2021-08-03 At&T Intellectual Property I, L.P. Drop-in probe that facilitates management and configuration of internet of things network connected devices
WO2019172947A1 (en) * 2018-03-06 2019-09-12 Daniel Chien Evaluating a questionable network communication
US11049105B2 (en) 2018-05-16 2021-06-29 Visa International Service Association Network appliance with secure element
BR112020026770A8 (pt) 2018-06-29 2022-09-13 Cryptometry Canada Inc Ponte de comunicações
US10348570B1 (en) * 2018-08-30 2019-07-09 Accenture Global Solutions Limited Dynamic, endpoint configuration-based deployment of network infrastructure
US11188622B2 (en) 2018-09-28 2021-11-30 Daniel Chien Systems and methods for computer security
US11190490B2 (en) * 2018-10-02 2021-11-30 Allstate Insurance Company Embedded virtual private network
US11677713B2 (en) * 2018-10-05 2023-06-13 Vmware, Inc. Domain-name-based network-connection attestation
US10848489B2 (en) 2018-12-14 2020-11-24 Daniel Chien Timestamp-based authentication with redirection
US10826912B2 (en) 2018-12-14 2020-11-03 Daniel Chien Timestamp-based authentication
US11283763B2 (en) 2018-12-28 2022-03-22 Mcafee, Llc On-device dynamic safe browsing
US11362999B2 (en) * 2019-03-29 2022-06-14 Mcafee, Llc Client-only virtual private network
US11405237B2 (en) 2019-03-29 2022-08-02 Mcafee, Llc Unencrypted client-only virtual private network
EP4018618A4 (en) 2019-05-13 2023-10-25 Bluefin Payment Systems, LLC VAULTLESS TOKENIZATION AND ENCRYPTION SYSTEMS AND METHODS
US11044197B2 (en) * 2019-07-15 2021-06-22 Arista Networks, Inc. System and method for protecting resources using network devices
US11032239B1 (en) * 2019-12-05 2021-06-08 AT&T Intellectual Propety I, L.P. Methods and systems for providing global internet protocol (IP) addresses
US11677754B2 (en) 2019-12-09 2023-06-13 Daniel Chien Access control systems and methods
US11438145B2 (en) 2020-05-31 2022-09-06 Daniel Chien Shared key generation based on dual clocks
US11509463B2 (en) 2020-05-31 2022-11-22 Daniel Chien Timestamp-based shared key generation
WO2022019611A1 (ko) * 2020-07-24 2022-01-27 (주)시큐어에이 Sdn 기반의 제로 월패드를 활용한 사이버 경계벽 시스템 및 그 동작 방법
KR102578983B1 (ko) * 2020-10-30 2023-09-19 한국철도기술연구원 Alm을 지원하는 열차자율주행시스템의 보안시스템
US11627011B1 (en) 2020-11-04 2023-04-11 T-Mobile Innovations Llc Smart device network provisioning
US20220141221A1 (en) * 2020-11-05 2022-05-05 T-Mobile Innovations Llc Smart Computing Device Implementing Network Security and Data Arbitration
US20220141658A1 (en) * 2020-11-05 2022-05-05 Visa International Service Association One-time wireless authentication of an internet-of-things device
US11676591B1 (en) 2020-11-20 2023-06-13 T-Mobite Innovations Llc Smart computing device implementing artificial intelligence electronic assistant
TWI821633B (zh) * 2021-01-22 2023-11-11 飛泓科技股份有限公司 網路終端設備隔離認證方法
US20220337547A1 (en) * 2021-04-14 2022-10-20 OpenVPN, Inc. Domain routing for private networks
US11265296B1 (en) * 2021-05-11 2022-03-01 Roqos, Inc. System and method to create and implement virtual private networks over internet for multiple internet access types

Family Cites Families (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7113508B1 (en) 1995-11-03 2006-09-26 Cisco Technology, Inc. Security system for network address translation systems
US6738814B1 (en) 1998-03-18 2004-05-18 Cisco Technology, Inc. Method for blocking denial of service and address spoofing attacks on a private network
US6832321B1 (en) * 1999-11-02 2004-12-14 America Online, Inc. Public network access server having a user-configurable firewall
US8239445B1 (en) * 2000-04-25 2012-08-07 International Business Machines Corporation URL-based sticky routing tokens using a server-side cookie jar
US20020069356A1 (en) 2000-06-12 2002-06-06 Kwang Tae Kim Integrated security gateway apparatus
RU2214623C2 (ru) 2000-12-29 2003-10-20 Купреенко Сергей Витальевич Вычислительная сеть с межсетевым экраном и межсетевой экран
US7822970B2 (en) 2001-10-24 2010-10-26 Microsoft Corporation Method and apparatus for regulating access to a computer via a computer network
US20030105806A1 (en) 2001-12-04 2003-06-05 Gayle David G. Service facilitator for automating object conversions and communication connections in client-server systems
US20030154306A1 (en) * 2002-02-11 2003-08-14 Perry Stephen Hastings System and method to proxy inbound connections to privately addressed hosts
US8145788B1 (en) * 2002-05-31 2012-03-27 Emc Corporation Distributed ISP load balancer
EP1532539B1 (en) 2002-06-06 2015-12-09 Pulse Secure, LLC Method and system for providing secure access to private networks
US7305546B1 (en) * 2002-08-29 2007-12-04 Sprint Communications Company L.P. Splicing of TCP/UDP sessions in a firewalled network environment
US6823383B2 (en) 2002-09-10 2004-11-23 Capital One Financial Corporation Stealth network
US7412539B2 (en) 2002-12-18 2008-08-12 Sonicwall, Inc. Method and apparatus for resource locator identifier rewrite
WO2005060202A1 (en) 2003-12-10 2005-06-30 International Business Machines Corporation Method and system for analysing and filtering https traffic in corporate networks
EP1608123A1 (en) 2004-06-15 2005-12-21 Axalto SA Method and device for communicating HTTP messages with portable devices
US7649937B2 (en) 2004-06-22 2010-01-19 Auction Management Solutions, Inc. Real-time and bandwidth efficient capture and delivery of live video to multiple destinations
US7764784B2 (en) 2004-09-08 2010-07-27 Cradlepoint, Inc. Handset cradle
US7610400B2 (en) 2004-11-23 2009-10-27 Juniper Networks, Inc. Rule-based networking device
US9674145B2 (en) * 2005-09-06 2017-06-06 Daniel Chien Evaluating a questionable network communication
US8464329B2 (en) 2006-02-21 2013-06-11 Watchguard Technologies, Inc. System and method for providing security for SIP-based communications
US8606605B2 (en) 2006-09-28 2013-12-10 Lo-Q, Plc Reservation management system and method
US9762576B2 (en) * 2006-11-16 2017-09-12 Phonefactor, Inc. Enhanced multi factor authentication
US8812579B2 (en) * 2006-12-21 2014-08-19 Verizon Patent And Licensing Inc. Apparatus for transferring data via a proxy server and an associated method and computer program product
US8316427B2 (en) * 2007-03-09 2012-11-20 International Business Machines Corporation Enhanced personal firewall for dynamic computing environments
US8307415B2 (en) * 2007-05-09 2012-11-06 Microsoft Corporation Safe hashing for network traffic
US8806605B1 (en) 2008-01-11 2014-08-12 Juniper Networks, Inc. Provisioning network access through a firewall
US8739269B2 (en) * 2008-08-07 2014-05-27 At&T Intellectual Property I, L.P. Method and apparatus for providing security in an intranet network
US20100306384A1 (en) * 2009-06-01 2010-12-02 Keith Hayes Multi-directional secure common data transport system
US8434139B1 (en) * 2009-09-10 2013-04-30 Symantec Corporation Utilizing communications obfuscation proxy to protect system services
US20110083179A1 (en) 2009-10-07 2011-04-07 Jeffrey Lawson System and method for mitigating a denial of service attack using cloud computing
KR101070614B1 (ko) 2009-12-18 2011-10-10 한국인터넷진흥원 봇넷 정보를 이용한 악성 트래픽 격리 시스템과 봇넷 정보를 이용한 악성 트래픽 격리 방법
US9154462B2 (en) 2009-12-22 2015-10-06 At&T Intellectual Property I, L.P. Methods, systems, and computer program products for managing firewall change requests in a communication network
US8910288B2 (en) 2010-02-05 2014-12-09 Leidos, Inc Network managed antivirus appliance
US9384463B2 (en) 2010-07-23 2016-07-05 Anchorfree, Inc. SSL HTTPS browser
US9083718B1 (en) * 2011-03-28 2015-07-14 Brian Bosak Global grid protocal, a system and method for establishing and simplifying peer-to-peer networking connections among a plurality of computers and divices by dynamically generating identifiers and performing routing and traversal processes
US20130081129A1 (en) * 2011-09-23 2013-03-28 F-Secure Corporation Outbound Connection Detection and Blocking at a Client Computer
US8943320B2 (en) 2011-10-31 2015-01-27 Novell, Inc. Techniques for authentication via a mobile device
IN2014MN01516A (ja) * 2012-01-09 2015-05-01 Qualcomm Inc
US9237027B2 (en) * 2012-03-21 2016-01-12 Raytheon Bbn Technologies Corp. Destination address control to limit unauthorized communications
US20130262652A1 (en) * 2012-03-27 2013-10-03 Tijl Vuyk Articles of manufacture, service provider computing methods, and computing service systems
US9100369B1 (en) * 2012-08-27 2015-08-04 Kaazing Corporation Secure reverse connectivity to private network servers
US9553801B2 (en) * 2012-09-25 2017-01-24 Google Inc. Network device
EP3119059B1 (en) 2012-10-24 2019-05-01 CyberArk Software Ltd. A system and method for secure proxy-based authentication
US9391881B2 (en) * 2013-02-20 2016-07-12 Ip Technology Labs, Llc System and methods for dynamic network address modification
US9723069B1 (en) * 2013-03-15 2017-08-01 Kaazing Corporation Redistributing a connection
US20140298415A1 (en) * 2013-03-28 2014-10-02 Research In Motion Limited Method and system for providing connectivity for an ssl/tls server behind a restrictive firewall or nat
US9055032B2 (en) * 2013-04-12 2015-06-09 Blackberry Limited Secure network tunnel between a computing device and an endpoint
US9288225B1 (en) * 2013-04-17 2016-03-15 Ca, Inc. Server port sharing based on shared socket
US9210198B2 (en) * 2013-05-31 2015-12-08 Vonage Networks Llc Method and apparatus for transferring active communication session streams between devices
US9608962B1 (en) * 2013-07-09 2017-03-28 Pulse Secure, Llc Application-aware connection for network access client
US9455989B2 (en) 2013-07-10 2016-09-27 Microsoft Technology Licensing, Llc Automatic isolation and detection of outbound spam
US9686302B2 (en) 2013-12-30 2017-06-20 Anchorfree, Inc. System and method for security and quality assessment of wireless access points
US10637831B2 (en) * 2014-01-31 2020-04-28 Ntrepid, Llc Method and apparatus for transmitting network traffic via a proxy device
US9756135B2 (en) * 2014-07-31 2017-09-05 Ca, Inc. Accessing network services from external networks
EP3562105B1 (en) * 2014-10-23 2021-09-08 Covenant Eyes, Inc. System and method for monitoring traffic of applications in a local computing device
US9769126B2 (en) 2015-01-07 2017-09-19 AnchorFee Inc. Secure personal server system and method
US20160316021A1 (en) * 2015-04-27 2016-10-27 Cradlepoint, Inc. Remote out of band management
US10135790B2 (en) * 2015-08-25 2018-11-20 Anchorfree Inc. Secure communications with internet-enabled devices

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021182567A1 (ja) * 2020-03-11 2021-09-16 コネクトフリー株式会社 コントローラ、商品取引システムおよび自動注文プログラム
JP2021144398A (ja) * 2020-03-11 2021-09-24 コネクトフリー株式会社 コントローラ、商品取引システムおよび自動注文プログラム

Also Published As

Publication number Publication date
US10135790B2 (en) 2018-11-20
US20170063940A1 (en) 2017-03-02
US10135791B2 (en) 2018-11-20
US10547591B2 (en) 2020-01-28
KR20180048711A (ko) 2018-05-10
EP3342129A1 (en) 2018-07-04
WO2017035159A1 (en) 2017-03-02
US20170063802A1 (en) 2017-03-02
US20170063798A1 (en) 2017-03-02
US10541976B2 (en) 2020-01-21
EP3342129A4 (en) 2019-03-13
US20190052606A1 (en) 2019-02-14
US10135792B2 (en) 2018-11-20
CA2996409A1 (en) 2017-03-02
US20190052605A1 (en) 2019-02-14

Similar Documents

Publication Publication Date Title
US10541976B2 (en) Secure communications with internet-enabled devices
US10581839B2 (en) Secure communications with internet-enabled devices
US11190493B2 (en) Concealing internal applications that are accessed over a network
TW201828649A (zh) 使用多路徑驗證的網路攻擊偵測
WO2019157333A1 (en) Peeirs:passive evaluation of endpoint identity and risk as a surrogate authentication factor
US11539695B2 (en) Secure controlled access to protected resources
Metongnon et al. Beyond telnet: Prevalence of iot protocols in telescope and honeypot measurements
Melzer et al. Network approaches to improving consumer IoT security
Ogunnaike et al. Toward consumer-friendly security in smart environments
Chadza et al. A look into the information your smartphone leaks
Liu et al. Authenticating endpoints and vetting connections in residential networks
Baugher et al. Home-network threats and access controls
Mao et al. Security analysis of smart home based on life cycle
Sørensen et al. Automatic profile-based firewall for iot devices
Luna Man-in-the–Middle Attack
Liu Residential Network Security: Using Software-defined Networking to Inspect and Label Traffic
Kuismanen Security in Home IoT Environments
Plch Practical man-in-the-middle attacks in computer networks
Urama et al. SDN-Based Cryptographic Client Authentication: A New Approach to DHCP Starvation Mitigation
Maidine et al. Cloud Identity Management Mechanisms and Issues
Jokela A Quantitative Analysis of Vulnerabilities and Exploits in Home IoT Devices
Fink et al. DEMONS: Extended Manufacturer Usage Description to Restrain Malicious Smartphone Apps
DiLauro Wireless IoT Infiltration Detection in a Critical Infrastructure
Liu et al. Exploit in smart devices: A case study
Sergiou et al. Investigations in Black-box Penetration Techniques on Wireless Networks: Gathering Digital Evidence against Cyber-Intrusions

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190808

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190808

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20190808

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200812

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200923

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20210413