JP2019526955A - Secure personal server system and method - Google Patents

Secure personal server system and method Download PDF

Info

Publication number
JP2019526955A
JP2019526955A JP2018565332A JP2018565332A JP2019526955A JP 2019526955 A JP2019526955 A JP 2019526955A JP 2018565332 A JP2018565332 A JP 2018565332A JP 2018565332 A JP2018565332 A JP 2018565332A JP 2019526955 A JP2019526955 A JP 2019526955A
Authority
JP
Japan
Prior art keywords
computer
content
request
server
network address
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
JP2018565332A
Other languages
Japanese (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 JP2019526955A publication Critical patent/JP2019526955A/en
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/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/0281Proxies
    • 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/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0471Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload applying encryption by an intermediary, e.g. receiving clear information at the intermediary and encrypting the received information at the intermediary before forwarding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/16Implementing security features at a particular protocol layer
    • H04L63/166Implementing security features at a particular protocol layer at the transport layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • 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
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/16Implementing security features at a particular protocol layer
    • H04L63/168Implementing security features at a particular protocol layer above the transport layer

Abstract

プロバイダコンピュータは、プロバイダコンピュータにコンテンツを通告し、VPNサーバへのセキュアな接続を確立する。コンテンツに対するリクエストは、コンシューマコンピュータから、あるプロトコル(HTTPS)で受信され、プロトコル変換プロキシにより、低セキュアなプロトコル(HTTP)でVPNサーバへ転送され、プロトコル変換プロキシは、リクエストをプロバイダコンピュータへその後転送する。パブリックURL及びセキュアURLは、同じコンテンツと関連付けられてよい。パブリックURLはコンシューマコンピュータに通告される。パブリックサーバは、パブリックURLを受信し、セキュアなURLを返信し、コンシューマコンピュータは、プロバイダコンピュータへのセキュアな接続を確立するために該セキュアなURLを用いる。セキュアURLが危殆化すると、新たなセキュアなURLがパブリックURLと関連付けられる。セキュアなURLが危殆化しているか否かを判定するために、パブリックURL及びセキュアなURLに対するリクエストのソースIPアドレスが比較されてもよい。【選択図】図1The provider computer notifies the provider computer of the content and establishes a secure connection to the VPN server. A request for content is received from a consumer computer with a protocol (HTTPS) and forwarded by a protocol conversion proxy to a VPN server with a low secure protocol (HTTP), which then forwards the request to a provider computer. . Public URLs and secure URLs may be associated with the same content. The public URL is notified to the consumer computer. The public server receives the public URL and returns a secure URL, and the consumer computer uses the secure URL to establish a secure connection to the provider computer. When the secure URL is compromised, a new secure URL is associated with the public URL. To determine if the secure URL is compromised, the source IP address of the request for the public URL and the secure URL may be compared. [Selection] Figure 1

Description

[発明の優先権]
本出願は、2015年1月7日に出願され、その全体が参照によって本明細書に組み込まれる米国仮特許出願番号62/100,788の名称“Secure Personal Server”の優先権を主張する。
[Priority of invention]
This application claims priority to the name “Secure Personal Server” of US Provisional Patent Application No. 62 / 100,788, filed Jan. 7, 2015, which is incorporated herein by reference in its entirety.

[背景技術]
インターネットユーザは、画像、動画、及び音声ファイル等の大量のコンテンツを生成する。ユーザは、友人にメッセージを送信することにより、又はソーシャルネットワーク、画像又は動画ギャラリー等の、周知のウェブサイトに投稿することにより、選択したファイルを共有することができる。
[Background technology]
Internet users generate a large amount of content such as images, videos, and audio files. Users can share selected files by sending messages to friends or posting to well-known websites such as social networks, image or video galleries.

しかしながら、多くのユーザにより生成されるコンテンツの量は、これらのチャネルを通じて配信するには大きすぎる。この全てのコンテンツをオンラインストレージサーバにアップロードすることは、しばしば、コストがかかり、又は実用的ではない。例えば、ウェブカメラにより生成された防犯録画は、これらの録画のごく一部のみが詳細に検討するために使用されつつ、大量のストレージを消費する可能性がある。個人画像を大量に収集しても、高解像度で繰り返し閲覧される画像は比較的少ないこと等がある。コンテンツをオンラインストレージにアップロードする際の別の問題は、プライバシーが侵害される可能性と、機密コンテンツが公開される可能性である。   However, the amount of content generated by many users is too large to deliver through these channels. Uploading all this content to an online storage server is often costly or impractical. For example, security recordings generated by a webcam may consume a large amount of storage while only a small portion of these recordings are used for detailed consideration. Even if a large number of personal images are collected, there are relatively few images that are repeatedly viewed at a high resolution. Another problem with uploading content to online storage is the potential for privacy infringement and the disclosure of sensitive content.

これらの問題は、パブリックドメイン名によりアドレス指定可能なローカルウェブサーバをインストールすることによって、パーソナルコンピュータ上に格納されたユーザ生成のコンテンツがリモートアクセスで入手可能にされた場合に解決され得る。しかしながら、多くのパーソナルコンピュータは、ネットワークアドレス変換(NAT)を使用するルータの背後に設置される。こうしたルータは、それらのローカルネットワークへの外部アクセスを通常許可せず、ポート転送等の制限を緩和するためにカスタム設定を変更すると、ローカルネットワーク上のコンピュータのセキュリティが低下し得、サービス拒否攻撃(denial of service attack)、広範囲のポートスキャン、および周知の脆弱性の餌食等の外部の脅威にそれらを晒す。   These problems can be solved if user-generated content stored on a personal computer is made available for remote access by installing a local web server addressable by a public domain name. However, many personal computers are installed behind routers that use network address translation (NAT). These routers typically do not allow external access to their local network, and changing custom settings to relax restrictions such as port forwarding can reduce the security of computers on the local network, resulting in denial-of-service attacks ( denial of service attack), extensive port scans, and exposing them to external threats such as prey for known vulnerabilities.

逆(reverse)接続をサポート可能な中間サーバと通信チャネルを確立することによって、カスタム設定を変更することなく、外部アクセス上のルータ制限をバイパスすることが可能である。パーソナルコンピュータと中間サーバとの間に初期接続が確立した後、その後サーバは、リモートクライアントからのリクエストを逆接続を通じてパーソナルコンピュータへ転送し得、パーソナルコンテンツサーバからの応答をリモートクライアントへ返信し得る。こうした一実装は、オペラソフトウェアASAコーポレーションがOpera Unite(登録商標)の名称で行われている。この実装は、追加のソフトウェアをインストールすることなく、ユーザのコンテンツをリモートクライアントが閲覧することを可能にし、任意の標準的ウェブブラウザは、パーソナルHTTPサーバにより提供されるウェブページを逆接続を通じて開くことができる。   By establishing a communication channel with an intermediate server that can support reverse connections, it is possible to bypass router restrictions on external access without changing custom settings. After the initial connection is established between the personal computer and the intermediate server, the server can then forward the request from the remote client to the personal computer through the reverse connection and return the response from the personal content server to the remote client. One such implementation is the Opera Software ASA Corporation under the name Opera Unite®. This implementation allows a remote client to view the user's content without installing additional software, and any standard web browser can open a web page provided by a personal HTTP server through a reverse connection. Can do.

こうした実装の問題の1つは、パーソナルコンピュータとリモートクライアントとの間のセキュアではないデータ交換である。逆通信に使用されるチャネルが暗号化される場合であっても(逆SSHトンネル等)、この暗号化は、コンテンツのコンシューマと中間サーバとの間のトラフィックを保護しない。無許可の第三者は、該トラフィックを観察又は修正でき、又は、DNSリクエストを自身のIPアドレスにリダイレクトし、リクエストされたリンクに応答することによってコンテンツプロバイダを装うことすらできる。   One such implementation problem is insecure data exchange between a personal computer and a remote client. Even if the channel used for reverse communication is encrypted (such as a reverse SSH tunnel), this encryption does not protect the traffic between the content consumer and the intermediate server. An unauthorized third party can observe or modify the traffic, or even impersonate a content provider by redirecting DNS requests to their IP address and responding to the requested link.

(例えば、パーソナルコンテンツサーバとリモートクライアントとの間でHTTPSプロトコルを使用することによる)エンドツーエンドのデータセキュリティは、プライベートSSL証明書をパーソナルコンピュータ上に格納することを必要とし、それは、コストがかかり、無許可の公開から保護することが困難である。   End-to-end data security (eg, by using the HTTPS protocol between a personal content server and a remote client) requires storing a private SSL certificate on the personal computer, which is costly , Difficult to protect from unauthorized disclosure.

その故、ユーザのコンテンツをリモートサーバにアップロードすること、ルータ設定のセキュアではない修正を実施すること、又は追加のソフトウェアのインストールをリモートクライアントに要求することを初めにすることなく、ユーザのコンテンツのリモートクライアントとのセキュアな共有を可能にする必要がある。   Therefore, without first uploading the user's content to the remote server, performing an insecure modification of the router configuration, or requiring the remote client to install additional software, Need to enable secure sharing with remote clients.

発明の一側面において、第1のコンピュータ上のコンテンツへのアクセスを提供する方法は、
1. 第1のコンピュータと暗号化接続を、第1のコンピュータに逆接続を提供することが可能なサーバシステムによって確立することと、
2. サーバシステムによって、第1のコンピュータ上のコンテンツに対するリクエストであって、第1の種類の通信プロトコルを使用して実施されている該リクエストを第2のコンピュータから受信することと、
3. サーバシステムによって、プロトコル変換モジュールを使用して、該コンテンツに対するリクエストを、第2の種類の通信プロトコルを有する変換済みリクエストに変換することであって、ここで、第1の種類の通信プロトコルは、プロトコル変換モジュールが入手可能な暗号鍵を使用して、交換されるデータを少なくとも部分的に暗号化し、一方、第2の種類の通信プロトコルは、コンテンツに対するリクエストの対応する部分が前記第1の種類の通信プロトコルによって暗号化される変換済みリクエストの少なくとも幾つかの部分を暗号化しないことと
を含む。
In one aspect of the invention, a method for providing access to content on a first computer comprises:
1. Establishing an encrypted connection with the first computer by a server system capable of providing a reverse connection to the first computer;
2. Receiving from a second computer a request for content on a first computer by a server system, the request being implemented using a first type of communication protocol;
3. The server system uses a protocol conversion module to convert the request for the content into a converted request having a second type of communication protocol, where the first type of communication protocol is: Data exchanged is at least partially encrypted using an encryption key available to the protocol conversion module, while the second type of communication protocol is such that the corresponding part of the request for content is the first type Unencrypting at least some portions of the converted request that are encrypted by the other communication protocol.

幾つかの実装において、変換済みリクエストを前記第1のコンピュータへ送信することは、第1のコンピュータへの同時接続の数が閾値よりも小さいと判定することに応じてのみ実施される。   In some implementations, sending the converted request to the first computer is performed only in response to determining that the number of simultaneous connections to the first computer is less than a threshold.

幾つかの実装において、第1の種類の通信プロトコルは、ハイパーテキストトランスファーロトコルセキュア(HTTPS)であり、第2の種類のプロトコルは、ハイパーテキストトランスファープロトコル(HTTP)である。暗号化接続は、トランスポートレベルトンネルであってもよく、プロトコル変換モジュールは、HTTPS−to−HTTPプロキシであってもよい。   In some implementations, the first type of communication protocol is hypertext transfer protocol secure (HTTPS) and the second type of protocol is hypertext transfer protocol (HTTP). The encrypted connection may be a transport level tunnel and the protocol conversion module may be an HTTPS-to-HTTP proxy.

幾つかの実施形態において、方法は、サーバシステムによって、第1のコンピュータ上のコンテンツの入手可能性をルーティングモジュールに報告することと、ルーティングモジュールによって、複数の異なるコンピュータ上のコンテンツの入手可能性の報告を複数の中間サーバから受信することと、ルーティングモジュールによって、第1のコンピュータ上のコンテンツに対するリクエストを第2のコンピュータから受信することと、ルーティングモジュールによって、第1のコンピュータ上のコンテンツ対するリクエストをサーバシステムにルーティングすることとを含んでもよい。   In some embodiments, the method reports the availability of content on the first computer to the routing module by the server system, and the availability of content on different computers by the routing module. Receiving a report from a plurality of intermediate servers, receiving a request for content on a first computer from a second computer by a routing module, and requesting for content on the first computer by a routing module. Routing to the server system.

サーバシステム及びルーティングモジュールは、同じローカルネットワーク中にあってもよい。サーバシステムはVPNサーバ及びプロトコル変換サーバを含んでよく、VPNサーバは第1のコンピュータとの暗号化接続の確立を行い、プロトコル変換サーバはプロトコル変換モジュールを実装し、VPNサーバ及びプロトコル変換サーバは同じローカルコンピュータ中にある。幾つかの実施形態において、複数の中間サーバの内の少なくとも1つの中間サーバは、該同じローカルネットワークと異なるローカルネットワーク中にある。
1. 本発明の別の側面において、パーソナルコンピュータ上のコンテンツへのアクセスを提供する方法は、
2. サーバシステムによって、投稿ユニフォームリソースロケータ(URL)を含む投稿メッセージをパーソナルコンピュータから受信し、パーソナルコンピュータ上のコンテンツを参照することと、
3. サーバシステムによって、投稿URLを含み、ハイパーテキストトランスファープロトコルセキュア(HTTPS)リクエストフォーマットを有するリクエストメッセージを、リクエスト者コンピュータから受信することと、
4. サーバシステムによって、パーソナルコンピュータへの仮想プライベートネットワーク(VPN)トンネルを確立することと、
5. サーバシステムによって、リクエストメッセージを、投稿URLを含み、ハイパーテキストトランスファープロトコル(HTTP)リクエストフォーマットを有する変換済みメッセージに変換することと、
6. サーバシステムによって、VPNトンネル内でパーソナルコンピュータへ変換済みメッセージを送信することと
を含む。
The server system and the routing module may be in the same local network. The server system may include a VPN server and a protocol conversion server, the VPN server establishes an encrypted connection with the first computer, the protocol conversion server implements a protocol conversion module, and the VPN server and the protocol conversion server are the same. In the local computer. In some embodiments, at least one intermediate server of the plurality of intermediate servers is in a local network that is different from the same local network.
1. In another aspect of the invention, a method for providing access to content on a personal computer comprises:
2. Receiving a posting message including a posting uniform resource locator (URL) from a personal computer by the server system and referencing content on the personal computer;
3. Receiving a request message from a requester computer including a posting URL and having a hypertext transfer protocol secure (HTTPS) request format by a server system;
4). Establishing a virtual private network (VPN) tunnel to the personal computer by the server system;
5). By the server system to convert the request message into a converted message that includes a post URL and has a hypertext transfer protocol (HTTP) request format;
6). Sending the converted message to the personal computer within the VPN tunnel by the server system.

幾つかの実装において、方法は、
1. サーバシステムによって、変換済みメッセージへの応答であって、HTTP応答フォーマットを有する該応答をパーソナルコンピュータから受信することと、
2. 前記サーバシステムによって、前記応答を、HTTPS応答フォーマットを有する変換済み応答に変換することと、
3. サーバシステムによって、変換済み応答をリクエスト者コンピュータへ送信することと
を更に含む。
In some implementations, the method is
1. Receiving, by a server system, a response to the transformed message from the personal computer having the HTTP response format;
2. Converting the response into a translated response having an HTTPS response format by the server system;
3. Further comprising, by the server system, sending the transformed response to the requester computer.

幾つかの実装において、サーバシステムは、ローカルネットワーク内に各々設置されたプロトコル変換プロキシコンピュータ及びVPNサーバコンピュータを含む。リクエストメッセージを変換済みメッセージに変換することは、プロトコル変換プロキシ(PCP)コンピュータによって実施されてもよい。パーソナルコンピュータへのVPNトンネルを確立することは、VPNサーバコンピュータによって実施されてもよい。方法は、PCPによって、変換済みメッセージをVPNサーバコンピュータへ送信することと、VPNサーバによって、変換済みメッセージをVPNトンネルを通じてパーソナルコンピュータへ転送することとを更に含んでもよい。   In some implementations, the server system includes a protocol conversion proxy computer and a VPN server computer, each installed within a local network. Converting the request message into a converted message may be performed by a protocol conversion proxy (PCP) computer. Establishing a VPN tunnel to the personal computer may be performed by a VPN server computer. The method may further include sending the converted message by PCP to the VPN server computer and forwarding the converted message by the VPN server through the VPN tunnel to the personal computer.

幾つかの実装において、応答を変換済み応答に変換することは、PCPコンピュータによって実施されてもよい。方法は、VPNサーバコンピュータによって応答をPCPコンピュータへ転送することと、PCPコンピュータによって変換済み応答をリクエスト者コンピュータへ送信することとを更に含んでもよい。   In some implementations, converting the response to a transformed response may be performed by a PCP computer. The method may further include forwarding the response to the PCP computer by the VPN server computer and sending the transformed response to the requester computer by the PCP computer.

幾つかの実装において、方法は、サーバシステムによって投稿URLをルーティングモジュールに報告することと、ルーティングモジュールによって、複数の他のコンピュータ上のコンテンツを参照する他のURLを複数の中間サーバから受信することと、ルーティングモジュールによってリクエストメッセージを受信することと、ルーティングモジュールによってリクエストメッセージをサーバシステムにルーティングすることとを更に含む。   In some implementations, the method reports the posting URL to the routing module by the server system and receives other URLs from multiple intermediate servers that reference content on multiple other computers by the routing module. And receiving the request message by the routing module and routing the request message to the server system by the routing module.

幾つかの実施形態において、サーバシステム及びルーティングモジュールは同じローカルネットワーク中にある。   In some embodiments, the server system and the routing module are in the same local network.

発明の別の側面において、コンピュータ可読媒体は、非一時的ストレージデバイスを含み、
1. コンテンツを受信者コンピュータシステムが入手できるようにする命令を受信することと、
2. コンテンツを受信者コンピュータシステムが入手できるようにする命令に応じて、コンテンツにアクセスするための招待を受信者コンピュータシステムへ送信することと、
3. 中間サーバシステムへの暗号化仮想プライベートネットワーク(VPN)を確立することと、
4. コンテンツに対する1つ以上のリクエストを受信することと、
5. 1つ以上のリクエストの内の各リクエストに対して、各リクエストが中間サーバから且つ暗号化VPN接続を通じて受信される場合にのみ、暗号化VPN接続を経由して中間サーバへコンテンツを送信することと、各リクエストが中間サーバから且つ暗号化VPN接続を通じて受信されるというわけではない場合、暗号化VPN接続を経由して中間サーバへコンテンツを送信することを控えることと
を1つ以上のプロセッサに命令するのに有効な実行可能コードを格納する。
In another aspect of the invention, the computer readable medium includes a non-transitory storage device;
1. Receiving instructions to make the content available to the recipient computer system;
2. In response to instructions to make the content available to the recipient computer system, sending an invitation to the content to the recipient computer system;
3. Establishing an encrypted virtual private network (VPN) to the intermediate server system;
4). Receiving one or more requests for content;
5). For each request of one or more requests, sending content to the intermediate server via the encrypted VPN connection only if each request is received from the intermediate server and through the encrypted VPN connection; Instruct one or more processors to refrain from sending content to the intermediate server via the encrypted VPN connection if each request is not received from the intermediate server and through the encrypted VPN connection. Stores executable code that is useful for

幾つかの実装において、実行可能コードは、テキストメッセージ、電子メール、メッセージ、ウェブサイトへの投稿の内の少なくとも1つの中で、コンテンツにアクセスするための招待を受信者コンピュータシステムへ送信するように、1つ以上のプロセッサに命令するための命令を含む。コンテンツにアクセスするための招待は、プロセッサをホストするコンピュータを参照するドメイン名を含む。実行可能コードは、中間サーバをバイパスして、コンテンツにアクセスするための招待を受信者コンピュータシステムへ送信するように1つ以上のプロセッサに命令するのに更に有効であってもよい。   In some implementations, the executable code is configured to send an invitation to access the content to the recipient computer system in at least one of a text message, email, message, and website posting. Contains instructions for instructing one or more processors. The invitation to access the content includes a domain name that refers to the computer that hosts the processor. The executable code may further be effective to instruct one or more processors to bypass the intermediate server and send an invitation to access the content to the recipient computer system.

発明の利点の理解を促す目的で、簡潔に上述した発明は、添付の図面に示される具体的な実施形態を参照しながら更に詳細に説明する。それらの図面は、発明の典型的な実施形態をのみを図示し、それ故、その範囲を限定すると考えられるべきものではないとの理解に基づいて、発明は、添付の図面の使用を通じて更に具体的、詳細に記述され、説明されるであろう。   For the purposes of promoting an understanding of the advantages of the invention, the invention briefly described above will be described in further detail with reference to specific embodiments illustrated in the accompanying drawings. Based on the understanding that the drawings depict only typical embodiments of the invention and are therefore not to be considered as limiting its scope, the invention will be further illustrated through the use of the accompanying drawings. Will be described and explained in detail.

本発明の実施形態に従った、プロバイダのパーソナルコンピュータからのコンテンツを共有するための第1のネットワーク環境の図である。1 is a diagram of a first network environment for sharing content from a provider's personal computer according to an embodiment of the present invention. FIG. 本発明の実施形態に従った、プロバイダのパーソナルコンピュータからのコンテンツを共有するための方法のプロセスフロー図である。FIG. 3 is a process flow diagram of a method for sharing content from a provider's personal computer according to an embodiment of the present invention. 本発明の実施形態に従った、プロトコル変換プロキシを含むコンテンツを共有するための第2のネットワーク環境の図である。FIG. 4 is a diagram of a second network environment for sharing content that includes a protocol conversion proxy, in accordance with an embodiment of the present invention. 本発明の実施形態に従った、プロトコル変換プロキシを用いてコンテンツを共有するための方法のプロセスフロー図である。FIG. 4 is a process flow diagram of a method for sharing content using a protocol conversion proxy, in accordance with an embodiment of the present invention. 本発明の実施形態に従ったプロトコル変換プロキシ及びVPNルータの両方を含む第3のネットワーク環境の図である。FIG. 4 is a diagram of a third network environment including both a protocol conversion proxy and a VPN router according to an embodiment of the present invention. 本発明の実施形態に従ったプロトコル変換プロキシ及びドメインネームサーバを含む第4のネットワーク環境の図である。FIG. 6 is a diagram of a fourth network environment including a protocol conversion proxy and a domain name server according to an embodiment of the present invention. 本発明の実施形態に従った、プロバイダとコンシューマコンピュータとの間にセキュアなHTTPS接続を提供するための第5のネットワーク環境の図である。FIG. 6 is a diagram of a fifth network environment for providing a secure HTTPS connection between a provider and a consumer computer according to an embodiment of the present invention. 本発明の実施形態に従った、プロバイダとコンシューマコンピュータとの間にセキュアなHTTPS接続を提供するための方法のプロセスフロー図を示す。FIG. 2 shows a process flow diagram of a method for providing a secure HTTPS connection between a provider and a consumer computer according to an embodiment of the present invention. 本発明の実施形態に従った、プロバイダとコンシューマコンピュータとの間にセキュアなHTTPS接続を提供するための方法のプロセスフロー図を示す。FIG. 2 shows a process flow diagram of a method for providing a secure HTTPS connection between a provider and a consumer computer according to an embodiment of the present invention. 本発明の実施形態に従った、プロバイダとコンシューマコンピュータとの間にセキュアなHTTPS接続を提供するための第6のネットワーク環境の図である。FIG. 10 is a diagram of a sixth network environment for providing a secure HTTPS connection between a provider and a consumer computer according to an embodiment of the present invention. 本発明の実施形態に従った、コンテンツを共有するための例示的なユーザインターフェースの図である。FIG. 3 is an exemplary user interface for sharing content, in accordance with an embodiment of the present invention. 本発明の実施形態に従った方法を実装するのに適したコンピュータシステムの概略的ブロック図である。FIG. 2 is a schematic block diagram of a computer system suitable for implementing a method according to an embodiment of the invention.

本明細書において概略的に記述され図面で説明される本発明の構成要素は、多種多様な異なる構成で配置及び設計され得ることが容易に理解されるであろう。従って、図面に表され得るような以下の発明の実施形態の詳細な説明は、請求項に記載されるような発明の範囲の限定を意図するものではなく、単に発明に従って本明細書において考察される実施形態の幾つかの例を表すにすぎない。本明細書において記述される実施形態は、図面への参照により最もよく理解され、図面において、同様の要素は同様の参照番号で表される。   It will be readily appreciated that the components of the invention schematically described herein and illustrated in the drawings can be arranged and designed in a wide variety of different configurations. Accordingly, the following detailed description of embodiments of the invention as may be represented in the drawings is not intended to limit the scope of the invention as recited in the claims, but is merely discussed herein in accordance with the invention. It merely represents some examples of embodiments. The embodiments described herein are best understood by reference to the drawings, wherein like elements are designated with like reference numerals.

発明の一側面において、第1のコンピュータは、逆接続を提供することが可能な接続サーバとの暗号化接続を確立する。第2のコンピュータは、第1の種類の通信プロトコルを用いながら、第1のコンピュータから入手可能なコンテンツに対するリクエストを発行する。プロトコル変換モジュールは、このリクエストを受信し、それを第2の種類の通信プロトコルに変換し、接続サーバにより提供される暗号化逆接続を通じて第1のコンピュータへそれを転送する。第1の種類の通信プロトコルは、プロトコル変換モジュールが入手可能な暗号鍵を用いて、交換されたデータを少なくとも部分的に暗号化し、一方、第2の種類の通信プロトコルは、第1の種類の通信プロトコルによって暗号化されるデータの少なくとも幾つかの部分を暗号化しない。   In one aspect of the invention, the first computer establishes an encrypted connection with a connection server capable of providing reverse connection. The second computer issues a request for content available from the first computer using the first type of communication protocol. The protocol conversion module receives this request, converts it to a second type of communication protocol, and forwards it to the first computer through an encrypted reverse connection provided by the connection server. The first type of communication protocol at least partially encrypts the exchanged data using an encryption key available to the protocol conversion module, while the second type of communication protocol is the first type of communication protocol. Do not encrypt at least some of the data that is encrypted by the communication protocol.

一実装において、第1のコンピュータは、1つ以上の条件が満たされる場合にのみ、リクエストされたコンテンツを提供し、該条件の1つは、リクエストが接続サーバから暗号化逆接続を通じて提示されることである。   In one implementation, the first computer provides the requested content only if one or more conditions are met, one of the conditions being presented through an encrypted reverse connection from the connection server. That is.

幾つかの実装において、コンテンツリクエストは、1つ以上の条件が満たされる場合にのみ第1のコンピュータへ送信され、これらの条件の1つ以上は、第2のコンピュータがコンテンツリクエストを発行する前に、第1のコンピュータにより提供される。予め設定される条件の一例は、第1のコンピュータへの同時接続の数が閾値を超えないことである。   In some implementations, the content request is sent to the first computer only if one or more conditions are met, and one or more of these conditions may occur before the second computer issues the content request. Provided by the first computer. An example of the preset condition is that the number of simultaneous connections to the first computer does not exceed a threshold value.

幾つかの例において、第1のコンピュータは、第2のコンピュータがコンテンツリクエストを発行する前に、コンテンツの入手可能性を第2のコンピュータに、プロトコル変換モジュールをバイパスして通告する。一例において、この通告は、第2のコンピュータからアクセス可能な電子メール、テキストメッセージ、インスタントメッセージ、ウェブサイトへの投稿を通じて、通告されるコンテンツへのリンクを送信することを含む。   In some examples, the first computer notifies the second computer of the availability of content, bypassing the protocol conversion module, before the second computer issues a content request. In one example, the notification includes sending a link to the notified content through an email, text message, instant message, or posting to a website accessible from the second computer.

一実装において、第1の種類のプロトコルはHTTPSであり、一方、第2の種類のプロトコルはHTTPである。暗号化接続はトランスポートレベルトンネルであり、接続サーバはVPNサーバである。そうした実装において、プロトコル変換モジュールは、HTTPS−to−HTTPプロキシである、   In one implementation, the first type of protocol is HTTPS, while the second type of protocol is HTTP. The encrypted connection is a transport level tunnel and the connection server is a VPN server. In such an implementation, the protocol conversion module is an HTTPS-to-HTTP proxy.

一実施形態において、複数の第1のコンピュータは、暗号化通信を通じて異なる中間サーバに接続される。第2のコンピュータがコンテンツリクエストを発行する前に、少なくとも1つの中間サーバは、コンテンツ参照と関連付けられた第1のコンピュータのアクセス可能性を、ルーティングモジュールに報告する。ルーティングモジュールは、コンテンツ参照と関連付けられたコンテンツリクエストを受信し、それを対応する中間サーバにルーティングする。   In one embodiment, the plurality of first computers are connected to different intermediate servers through encrypted communication. Before the second computer issues a content request, the at least one intermediate server reports the accessibility of the first computer associated with the content reference to the routing module. The routing module receives the content request associated with the content reference and routes it to the corresponding intermediate server.

一例において、中間サーバの内の少なくとも1つが異なるローカルネットワークに接続される一方で、プロトコル変換モジュール及びルーティングモジュールは、同じローカルネットワークに接続される。   In one example, at least one of the intermediate servers is connected to different local networks, while the protocol conversion module and the routing module are connected to the same local network.

他の一実施形態において、複数のコンテンツアイテムは、複数の第1のコンピュータから入手可能であり、対応する第1のコンピュータの識別子を含む複数のドメイン名と関連付けられる。少なくとも2つの異なる第1コンピュータからのコンテンツアイテムは、異なるIP(インターネットプロトコル)アドレスにリクエストを発行することによってアクセス可能である。第2のコンピュータは、リクエストされたコンテンツアイテムを提供する第1のコンピュータを参照するドメイン名を取得し、該ドメインを解決するためのリクエストをドメインネームサーバに発行する。ドメインネームサーバは、異なるドメインと関連付けられた複数のIPアドレスについての情報を取得し、リクエストされたドメインと関連付けられたIPアドレスを返信する。   In another embodiment, the plurality of content items are available from a plurality of first computers and are associated with a plurality of domain names including corresponding first computer identifiers. Content items from at least two different first computers can be accessed by issuing requests to different IP (Internet Protocol) addresses. The second computer obtains a domain name that refers to the first computer that provides the requested content item and issues a request to resolve the domain to a domain name server. The domain name server obtains information about a plurality of IP addresses associated with different domains and returns an IP address associated with the requested domain.

一例において、複数のIPアドレスは、複数のプロトコル変換モジュールを指し示し、これらのモジュールの各々は、リクエストされたコンテンツを提供する第1のコンピュータとの暗号化接続を維持する接続サーバへ該コンテンツリクエストを転送する。一例において、プロトコル変換モジュールは、接続サーバと同一のローカルネットワーク上に存在し、これにより、データ交換を外部の観察から保護する。一実装において、プロトコル変換モジュール及び接続サーバは、ローカルネットワークの同じノード上に存在し、同じ物理的コンピュータハードウェアと関連付けられる。   In one example, multiple IP addresses point to multiple protocol conversion modules, each of which sends the content request to a connection server that maintains an encrypted connection with a first computer that provides the requested content. Forward. In one example, the protocol conversion module resides on the same local network as the connection server, thereby protecting the data exchange from external observation. In one implementation, the protocol conversion module and the connection server reside on the same node of the local network and are associated with the same physical computer hardware.

本発明の別の側面において、第1のコンピュータは、逆接続を提供することが可能な接続サーバとの暗号化接続を確立する。第2のコンピュータは、第3のコンピュータにより提供されるコンテンツへの参照を含むリクエストを発行する。第2のコンピュータは、第1のコンピュータにより提供されるコンテンツへの参照を含む応答を受信し、第1のコンピュータへの逆接続を通じてこのコンテンツをその後リクエストし、ここで、第1及び第2のコンピュータ間のデータ交換は、第1及び第2のコンピュータに既知の鍵を用いて暗号化される。   In another aspect of the invention, the first computer establishes an encrypted connection with a connection server capable of providing reverse connection. The second computer issues a request that includes a reference to content provided by the third computer. The second computer receives a response including a reference to the content provided by the first computer and subsequently requests this content through a reverse connection to the first computer, where the first and second Data exchange between computers is encrypted using a key known to the first and second computers.

一実装において、第1のコンピュータにより提供されるコンテンツへの参照は、第1のコンピュータに既知の暗号鍵と関連付けられたドメイン名を含み、暗号鍵が危殆化し得るリスクの増加を検出すると、ドメイン名及び関連付けられた暗号鍵は、第3のコンピュータから入手可能なコンテンツへの参照を変更せずに、置き換えられる。   In one implementation, the reference to content provided by the first computer includes a domain name associated with an encryption key known to the first computer, and upon detecting an increased risk that the encryption key can be compromised, The name and associated encryption key are replaced without changing the reference to the content available from the third computer.

一例において、第2のコンピュータがコンテンツリクエストを発行する前に、第1のコンピュータは、第3のコンピュータから入手可能なコンテンツへの参照を提供することによって、コンテンツの入手可能性を第2のコンピュータに通告する。一例において、この通告は、第2のコンピュータからアクセス可能な電子メール、テキストメッセージ、インスタントメッセージ、ウェブサイトへの投稿中を通じて、通告されるコンテンツへのリンクを送信することを含む。   In one example, before the second computer issues a content request, the first computer provides the content availability by providing a reference to the content available from the third computer. Notify In one example, the notification includes sending a link to the notified content through an email, text message, instant message, and posting to a website accessible from the second computer.

一実装において、接続サーバはVPNサーバである。別の実装において、接続サーバはプロキシサーバである。別の実装において、接続サーバはSSHサーバである。   In one implementation, the connection server is a VPN server. In another implementation, the connection server is a proxy server. In another implementation, the connection server is an SSH server.

一実施形態において、第1及び第2のコンピュータ間のデータ交換は、HTTPSプロトコルを用いて暗号化され、第1のコンピュータは、第1及び第2のコンピュータ間のHTTPSデータ交換のためのプライベートSSL証明書へのアクセスを有するHTTPSサーバをホストする。   In one embodiment, the data exchange between the first and second computers is encrypted using the HTTPS protocol, and the first computer is a private SSL for HTTPS data exchange between the first and second computers. Host an HTTPS server with access to the certificate.

一実装において、第2及び第3のコンピュータ間のデータ交換は、第2及び第1のコンピュータ間のデータ交換に用いられるものとは異なるプロトコルを用いる。   In one implementation, data exchange between the second and third computers uses a different protocol than that used for data exchange between the second and first computers.

一例において、第1及び第2のコンピュータ間のデータ交換は、VPNプロトコルを用いて暗号化され、第1のコンピュータはVPNサーバを含む。   In one example, the data exchange between the first and second computers is encrypted using the VPN protocol, and the first computer includes a VPN server.

一実施形態において、第1及び第3のコンピュータ間のデータ交換は、第3のコンピュータに既知の暗号鍵を用いて暗号化される。一例において、第1及び第3のコンピュータ間のデータ交換はHTTPSプロトコルを用いて暗号化され、第3のコンピュータはHTTPSサーバをホストする。   In one embodiment, the data exchange between the first and third computers is encrypted using an encryption key known to the third computer. In one example, the data exchange between the first and third computers is encrypted using the HTTPS protocol, and the third computer hosts an HTTPS server.

他の一実施形態において、第1及び第3のコンピュータ間のデータ交換はHTTPプロトコルを用いる。一例において、第3のコンピュータは第1のコンピュータと同じである。   In another embodiment, data exchange between the first and third computers uses the HTTP protocol. In one example, the third computer is the same as the first computer.

一実施形態において、第2のコンピュータからの応答は、第3のコンピュータにより提供されるコンテンツを参照するソースを有するHTML要素を含むHTMLドキュメントである。一実装において、HTML要素は、画像、動画、及びIFrameのグループから選択される。   In one embodiment, the response from the second computer is an HTML document that includes an HTML element having a source that references content provided by the third computer. In one implementation, the HTML element is selected from the group of image, video, and IFframe.

別の実施形態において、第2のコンピュータからの応答は、第3のコンピュータにより提供されるコンテンツを参照するURLへのリダイレクトである。   In another embodiment, the response from the second computer is a redirect to a URL that references content provided by the third computer.

本発明の別の側面において、第1のコンピュータは、コンテンツを第2のコンピュータにリクエストし、第3のコンピュータから入手可能なコンテンツへの参照を含む応答を受信し、第3のコンピュータへの暗号化接続を確立し、この接続を経由してコンテンツをリクエストする。第2及び第3のコンピュータへのリクエストのソースIPアドレスが比較され、これらのIPアドレスが一致しない場合、第1のコンピュータにより確立された暗号化接続の内の1つが危殆化するリスクが増加する。   In another aspect of the invention, the first computer requests content from the second computer, receives a response including a reference to the content available from the third computer, and encrypts to the third computer. Establish a generalized connection and request content via this connection. If the source IP addresses of the requests to the second and third computers are compared and these IP addresses do not match, the risk of compromising one of the encrypted connections established by the first computer is increased. .

一例において、第3のコンピュータは、逆接続を提供することが可能な接続サーバとの接続を確立し、第1のコンピュータから第2のコンピュータへのコンテンツリクエストが接続サーバをバイパスして送信される一方で、第1のコンピュータから第3のコンピュータへのコンテンツリクエストは接続サーバを通じて送信される。   In one example, the third computer establishes a connection with a connection server capable of providing a reverse connection, and a content request from the first computer to the second computer is transmitted bypassing the connection server. On the other hand, a content request from the first computer to the third computer is transmitted through the connection server.

一実装において、第1及び第2のコンピュータ間の接続は、第1及び第3のコンピュータ間の接続とは別の暗号鍵を用いる。   In one implementation, the connection between the first and second computers uses a different encryption key than the connection between the first and third computers.

一実施形態において、第1のコンピュータにより確立された2つの暗号化通知チャネルの内の1つは、もう1つのチャネルよりもその暗号化を危殆化するリスクが低く、2つのリクエストのソースIPアドレスが一致しないとの検出は、より高いセキュリティリスクを有する暗号化チャネルが危殆化する可能性が増加する。一例において、第1及び第3のコンピュータ間の暗号化接続は、第1及び第2のコンピュータ間の接続よりも危殆化するリスクが高い。   In one embodiment, one of the two encryption notification channels established by the first computer has a lower risk of compromising that encryption than the other channel, and the source IP addresses of the two requests Detecting that they do not match increases the likelihood that an encrypted channel with a higher security risk will be compromised. In one example, the encrypted connection between the first and third computers is at a higher risk of compromise than the connection between the first and second computers.

一実装において、第2のサーバからの応答において参照されるコンテンツに対するリクエストが予め設定されたタイムインターバル、例えば10秒未満で到達しない場合、第1及び第3のコンピュータ間の暗号化接続のリスクが増加する。   In one implementation, if the request for content referenced in the response from the second server does not arrive in a preset time interval, eg, less than 10 seconds, the risk of an encrypted connection between the first and third computers is To increase.

一例において、第3のコンピュータから入手可能なコンテンツへの参照は、1つ以上の条件が満たされる場合にのみ返信され、それ以外の場合、そのコンテンツへの参照なしに応答が返信される。別例において、第3のコンピュータから入手可能なコンテンツへの参照は、返信されるが1つ以上の条件が満たされる場合にのみユーザに可視化される。   In one example, a reference to content available from the third computer is returned only if one or more conditions are met, otherwise a response is returned without reference to the content. In another example, a reference to content available from a third computer is only visible to the user if it is returned but one or more conditions are met.

一実装において、規定の条件の内の少なくとも1つが満たされる場合にのみ、第1のコンピュータから入手可能なコンテンツへの参照が返信され、そのコンテンツが可視化され、該条件は、第3のコンピュータからのコンテンツが規定の過去の時間よりも前にアクセス可能であること、そのコンテンツに対するリクエストの数が規定の回数を超えないこと、並びに第3のサーバとの暗号化接続のリスクが低いままであることのグループからのものを含む。   In one implementation, a reference to content available from the first computer is returned and the content is visualized only if at least one of the prescribed conditions is met, from the third computer Content is accessible before a specified past time, the number of requests for that content does not exceed the specified number of times, and the risk of an encrypted connection with a third server remains low Including those from the group of things.

一実施形態において、第2のコンピュータからの応答は、第3のコンピュータにより提供されるコンテンツを参照するソースを有するHTML要素を含むHTMLドキュメントである。HTML要素は、その可視性を制御する少なくとも1つの属性を有する。一実装において、このHTML要素は、画像、動画、及びIFrameのグループから選択される。   In one embodiment, the response from the second computer is an HTML document that includes an HTML element having a source that references content provided by the third computer. An HTML element has at least one attribute that controls its visibility. In one implementation, the HTML element is selected from the group of image, video, and IFframe.

別の実施形態において、第2のコンピュータからの応答は、第3のコンピュータにより提供されるコンテンツを参照するURLへのリダイレクトである。   In another embodiment, the response from the second computer is a redirect to a URL that references content provided by the third computer.

一例において、IPアドレスが一致しないとの検出は、規定時間の間の、これらのソースIPアドレスの内の少なくとも1つからの後続のリクエストに対するセキュリティリスクを増加させる。   In one example, detecting that the IP addresses do not match increases the security risk for subsequent requests from at least one of these source IP addresses during a specified time.

他の一例において、第3のサーバからのコンテンツへのリクエストに対する同じソースIPアドレスが、第2のサーバからのコンテンツに対する少なくとも2つのリクエストの後に観察され、該2つのリクエストが異なるソースIPアドレスを有する場合、第3のサーバとの暗号化接続が危殆化するリスクは、更に大きな量で増加する。   In another example, the same source IP address for a request for content from a third server is observed after at least two requests for content from a second server, and the two requests have different source IP addresses. If this is the case, the risk that the encrypted connection with the third server is compromised increases by a larger amount.

一実施形態において、1つ以上の第1のコンピュータは、同じ第2のコンピュータにリクエストを発行し、各第1のコンピュータは、複数の第3のコンピュータから入手可能なコンテンツへの複数の参照を含む応答を受信する。1つ以上の第1のコンピュータは、参照された第3のコンピュータへの複数の暗号化接続を確立し、これらの接続を経由してコンテンツをリクエストする。   In one embodiment, one or more first computers issue requests to the same second computer, and each first computer has multiple references to content available from multiple third computers. Receive a response containing One or more first computers establish a plurality of encrypted connections to the referenced third computer and request content via these connections.

発明に従った実施形態は、装置、方法、又はコンピュータプログラム製品として具体化されてもよい。従って、発明は、全体がハードウェアの実施形態、全体がソフトウェアの実施形態(ファームウェア、常駐ソフトウェア、マイクロコード等を含む)、又は本明細書において一般的に“モジュール”又は“システム”と称されるソフトウェア及びハードウェアの側面を組み合わせた実施形態の形式をとってよい。更に、発明は、媒体中に具体化されたコンピュータ使用可能プログラムコードを有する表現の任意の有体媒体で具体化されたコンピュータプログラム製品の形式をとってもよい。   Embodiments in accordance with the invention may be embodied as an apparatus, method, or computer program product. Accordingly, the invention is generally referred to as a hardware embodiment, an entirely software embodiment (including firmware, resident software, microcode, etc.) or generally referred to herein as a “module” or “system”. It may take the form of an embodiment combining software and hardware aspects. Further, the invention may take the form of a computer program product embodied in any tangible medium of representations having computer usable program code embodied in the medium.

1つ以上のコンピュータ使用可能又はコンピュータ可読な媒体の任意の組み合わせが利用されてもよい。例えば、コンピュータ可読媒体は、ポータブルコンピュータフロッピーディスク、ハードディスク、ランダムアクセスメモリ(RAM)デバイス、リードオンリーメモリ(ROM)デバイス、消去可能プログラマブルROM(EPROM又はフラッシュメモリ)デバイス、ポータブルコンパクトディスクROM(CDROM)、光学ストレージデバイス、及び磁気ストレージデバイスの内の1つ以上を含んでもよい。幾つかの選ばれた実施形態において、コンピュータ可読媒体は、命令実行システム、装置、又はデバイスにより使用される、又はこれらと接続するプログラムを保持、格納、通信、伝播、又は移動できる任意の非一時的媒体を含んでもよい。   Any combination of one or more computer usable or computer readable media may be utilized. For example, computer readable media include portable computer floppy disks, hard disks, random access memory (RAM) devices, read only memory (ROM) devices, erasable programmable ROM (EPROM or flash memory) devices, portable compact disk ROM (CDROM), One or more of optical storage devices and magnetic storage devices may be included. In some selected embodiments, the computer-readable medium is any non-transitory that can hold, store, communicate, propagate, or move programs used by or connected to an instruction execution system, apparatus, or device. Media may be included.

発明の動作を実行するコンピュータプログラムコードは、Java、Smalltalk、若しくはC++等のオブジェクト指向型プログラム言語、及びCプログラム言語若しくは同様のプログラム言語等の従来の手続き型プログラム言語を含む、1つ以上のプログラム言語の任意の組み合わせで記述されてもよく、HTML、XML、及びJSON等の記述言語又はマークアップ言語をも用いてもよい。プログラムコードは、スタンドアロンなソフトウェアパッケージとしてその全体がコンピュータシステム上で実行されてもよく、コンピュータからいくらかの距離を置かれたリモートコンピュータ上で部分的に実行されてもよく、又は、その全体がリモートコンピュータ若しくはサーバ上で実行されてもよい。後者の場合、リモートコンピュータは、ローカルエリアネットワーク(LAN)若しくはワイドエリアネットワーク(WAN)を含む任意の種類のネットワークを通じてコンピュータに接続されてもよく、又は、(例えば、インターネットサービスプロバイダを用いるインターネットを通じて)外部コンピュータに接続がなされてもよい。コンピュータネットワークは、インターネットプロトコル以外のトランスポートプロトコルを用いてもよい。従って、本発明は、IPアドレス以外の種類のネットワークアドレスに対して実装され得る。   The computer program code for performing the operations of the invention includes one or more programs including object-oriented programming languages such as Java, Smalltalk, or C ++, and conventional procedural programming languages such as C programming language or similar programming language It may be described in any combination of languages, and a description language or markup language such as HTML, XML, and JSON may also be used. The program code may be executed entirely on a computer system as a stand-alone software package, may be executed partially on a remote computer at some distance from the computer, or may be entirely remote. It may be executed on a computer or a server. In the latter case, the remote computer may be connected to the computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or (eg, through the Internet using an Internet service provider). A connection may be made to an external computer. The computer network may use a transport protocol other than the Internet protocol. Thus, the present invention can be implemented for network addresses other than IP addresses.

発明の実施形態に従った方法、装置(システム)、及びコンピュータプログラム製品のフローチャート図及び/又はブロック図に参照しながら本発明が以下に記述される。フローチャート図及び/又はブロック図の各ブロック、並びにフローチャート図及び/又はブロック図のブロックの組み合わせは、コンピュータプログラム命令又はコードとして実装できることが理解されるであろう。これらのコンピュータプログラム命令は、コンピュータ又は他のプログラマブルデータ処理装置のプロセッサを通じて実行される命令が、フローチャート及び/又はブロック図の1つ以上のブロックで指定される機能/行為を実装するための手段を作り出すように、マシンを生成するための汎用コンピュータ、専用コンピュータ、又は他のプログラマブルデータ処理装置のプロセッサに提供されてもよい。   The present invention is described below with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented as computer program instructions or code. These computer program instructions provide means for instructions or instructions executed through a processor of a programmable data processing device to implement functions / acts specified in one or more blocks of the flowcharts and / or block diagrams. As produced, it may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing device for generating machines.

これらのコンピュータプログラム命令はまた、コンピュータ可読媒に格納された命令が、フローチャート及び/又はブロック図の1つ以上のブロックで指定される機能/行為を実装する命令手段を含む製品を生成するように、コンピュータ、他のプログラマブルデータ処理装置、又は他のデバイスを特定の方法で機能させるコンピュータ可読の非一時的媒体に格納されてもよい。   These computer program instructions also cause the instructions stored in the computer readable medium to produce a product that includes instruction means that implement the functions / acts specified in one or more blocks of the flowcharts and / or block diagrams. , A computer, other programmable data processing apparatus, or other device may be stored in a computer readable non-transitory medium that functions in a particular manner.

コンピュータプログラム命令はまた、コンピュータ又は他のプログラマブル装置上で実行される命令が、フローチャート及び/又はブロック図の1つ以上のブロックで指定される機能/行為を実装するためのプロセスを提供するように、コンピュータ又は他のプログラマブル装置上で一連の動作ステップを実施させるためにコンピュータ又は他のプログラマブルデータ処理装置上にロードされてもよい。   Computer program instructions also provide instructions for instructions executed on a computer or other programmable device to provide a process for implementing functions / acts specified in one or more blocks of the flowcharts and / or block diagrams. It may be loaded onto a computer or other programmable data processing device to cause a series of operational steps to be performed on the computer or other programmable device.

図1は、本明細書に開示された方法が実施されてもよい例示的ネットワークアーキテクチャ100を説明する。本発明の一側面において、プロバイダコンピュータ102は、逆接続を提供可能な図示の仮想プライベートネットワーク(VPN)サーバ104等の、接続サーバとの暗号化接続を確立する。コンシューマコンピュータ106は、パーソナルコンピュータ102上に格納されたコンテンツファイル108、セキュリティカメラ110からの映像若しくは画像、又はネットワークストレージ112からのファイル等の、第1のコンピュータから入手可能なコンテンツに対するリクエストを発行する。セキュリティカメラ114及びネットワークストレージは、ローカルネットワーク114、例えばLAN、又はその他の種類のネットワークによってプロバイダコンピュータ102に結合されてもよい。   FIG. 1 illustrates an example network architecture 100 in which the methods disclosed herein may be implemented. In one aspect of the invention, the provider computer 102 establishes an encrypted connection with a connection server, such as the illustrated virtual private network (VPN) server 104 that can provide a reverse connection. The consumer computer 106 issues a request for content available from the first computer, such as a content file 108 stored on the personal computer 102, a video or image from the security camera 110, or a file from the network storage 112. . The security camera 114 and network storage may be coupled to the provider computer 102 by a local network 114, such as a LAN or other type of network.

コンシューマコンピュータ106は、第1の種類の通信プロトコルを用いてリクエストを発行してもよい。プロトコル変換プロキシ116は、このリクエストを受信し、それを第2の種類の通信プロトコルに変換し、VPNサーバ104により提供された暗号化逆接続を通じてプロバイダコンピュータ102へそれを転送する。第1の種類の通信プロトコルは、プロトコル変換プロキシ116が入手可能な暗号鍵を用いて、交換されたデータを少なくとも部分的に暗号化し、一方、第2の種類の通信プロトコルは、第1の種類のプロトコルにより暗号化されるデータの少なくとも一部を暗号化しない。   The consumer computer 106 may issue a request using the first type of communication protocol. The protocol conversion proxy 116 receives this request, converts it to a second type of communication protocol, and forwards it to the provider computer 102 through the encrypted reverse connection provided by the VPN server 104. The first type of communication protocol at least partially encrypts the exchanged data using an encryption key available to the protocol conversion proxy 116, while the second type of communication protocol is the first type Do not encrypt at least a part of the data encrypted by the protocol.

図1に示す実施形態において、第1の種類のプロトコルはHTTPS(ハイパーテキストトランスファープロトコルセキュア)であり、一方、第2の種類のプロトコルはHTTP(ハイパーテキストトランスファープロトコル)である。プロバイダコンピュータ102とVPNサーバ104との間の暗号化接続はトランスポートレベルトンネルであってもよい。プロトコル変換プロキシ116は、HTTPS−to−HTTPプロキシとして具体化されてもよい。   In the embodiment shown in FIG. 1, the first type of protocol is HTTPS (Hypertext Transfer Protocol Secure), while the second type of protocol is HTTP (Hypertext Transfer Protocol). The encrypted connection between the provider computer 102 and the VPN server 104 may be a transport level tunnel. The protocol conversion proxy 116 may be embodied as an HTTPS-to-HTTP proxy.

図1を更に参照すると、プロバイダコンピュータ102は、ローカルネットワーク114、例えば、ネットワーク付属のストレージ112又はセキュリティカメラ110からのデータと共にローカルコンテンツファイルを提供可能なパーソナルサーバ118をホストするパーソナルコンピュータであってもよい。   Still referring to FIG. 1, the provider computer 102 may be a personal computer that hosts a personal server 118 capable of providing local content files along with data from a local network 114, eg, network attached storage 112 or security camera 110. Good.

プロバイダコンピュータ102は、VPNサーバ104との暗号化VPNトンネル122を確立するVPNクライアント120をホストし、VPNサーバ104は、該VPNトンネル122を通じてパーソナルサーバ118への逆接続を提供する。   The provider computer 102 hosts a VPN client 120 that establishes an encrypted VPN tunnel 122 with the VPN server 104, which provides a reverse connection to the personal server 118 through the VPN tunnel 122.

一実装において、プロバイダコンピュータ102は、プロトコル変換プロキシ116をバイパスして、コンシューマコンピュータ106にコンテンツの入手可能性を通告する。図示される実施形態では、それは、HTTPSのURLを有するメッセージをプロバイダのメッセージングアプリケーション124から、コンシューマコンピュータ106によりホストされた対応するメッセージングアプリケーション126へ送信する。メッセージングアプリケーションは、電子メール、テキストメッセージ(SMS、MMS、iMessage(登録商標)等)、インスタントメッセンジャー、ソーシャルメディアプラットフォーム(Twitter(登録商標)、Facebook、LinkedIn(登録商標)等)内のメッセージ等、当技術分野で周知の任意のメッセージングアプリケーションであってもよい。HTTPSのURLは、周知のオンラインロケーションにそれを投稿すること、又は当技術分野で周知の他の通信方式を用いることによって、プロバイダコンピュータ102によりコンシューマコンピュータ106に通信され得る。プロトコル変換プロキシ116をバイパスすることは、プロトコル変換プロキシ116の認識を有する付加的な暗号に使用できる、HTTPSのURLのハッシュタグ等の付加的情報の交換を可能にする。   In one implementation, the provider computer 102 bypasses the protocol conversion proxy 116 and notifies the consumer computer 106 of the availability of content. In the illustrated embodiment, it sends a message with an HTTPS URL from the provider's messaging application 124 to a corresponding messaging application 126 hosted by the consumer computer 106. Messaging applications include email, text messages (SMS, MMS, iMessage (R), etc.), instant messengers, social media platforms (Twitter (R), Facebook, LinkedIn (R), etc.) It can be any messaging application known in the art. The HTTPS URL may be communicated to the consumer computer 106 by the provider computer 102 by posting it to a well-known online location or using other communication methods known in the art. Bypassing the protocol conversion proxy 116 allows the exchange of additional information, such as HTTPS URL hashtags, that can be used for additional encryption with protocol conversion proxy 116 recognition.

コンシューマコンピュータ106上のHTTPSブラウザ128は、プロバイダコンピュータ102から受信されたHTTPSのURLに対するHTTPSリクエストを発行してもよい。このリクエストは、プロトコル変換プロキシ116によって受信され、プロトコル変換プロキシ116は、受信したデータをプライベートSSL(セキュアソケットレイヤ)証明書を用いて復号し、VPNサーバ104により提供される逆接続を通じてプロバイダコンピュータ102のパーソナルサーバ118へHTTPリクエストを送信する。パーソナルサーバ118からHTTP応答を受信した後、プロトコル変換プロキシ116は、それをHTTPS応答に変換し、コンシューマコンピュータ106のHTTPSブラウザ128へ返送する。   The HTTPS browser 128 on the consumer computer 106 may issue an HTTPS request for the HTTPS URL received from the provider computer 102. This request is received by the protocol conversion proxy 116, which decrypts the received data using a private SSL (Secure Socket Layer) certificate and through the reverse connection provided by the VPN server 104, the provider computer 102. An HTTP request is transmitted to the personal server 118. After receiving the HTTP response from the personal server 118, the protocol conversion proxy 116 converts it into an HTTPS response and sends it back to the HTTPS browser 128 of the consumer computer 106.

結果として、プロバイダコンピュータ102とコンシューマコンピュータ106との間のデータ交換は、公開されると通信セキュリティを危殆化する暗号鍵(例えば、プライベートSSL鍵)をプロバイダコンピュータ102が格納する必要なく、強力な暗号化によって(データパスの一部では、HTTPSによって、別の一部では、VPNトンネル122によって)保護される。代わりに、プライベートSSL鍵、例えば、HTTPSブラウザとプロトコル変換プロキシ116との間のHTTPS通信をセキュアにするために使用される鍵は、セキュリティ侵害からよりよく保護され得るロケーションのパーソナルサーバ118の外部に格納される。   As a result, the data exchange between the provider computer 102 and the consumer computer 106 is a strong encryption without requiring the provider computer 102 to store an encryption key (eg, a private SSL key) that compromises communication security when published. Protected by HTTPS (in part of the data path by HTTPS and in part by the VPN tunnel 122). Instead, private SSL keys, for example, keys used to secure HTTPS communication between the HTTPS browser and the protocol conversion proxy 116, are external to the personal server 118 at a location that can be better protected from security breaches. Stored.

他の実装では、VPNサーバ104は、暗号化チャネルを通じて逆接続を提供可能なプロキシ又はアプリケーションレベルのトンネルサーバ(SSHサーバ等)を付加的又は代替的に含んでもよい。   In other implementations, the VPN server 104 may additionally or alternatively include a proxy or application level tunnel server (such as an SSH server) that can provide a reverse connection over an encrypted channel.

同様に、コンシューマコンピュータ106がクライアントをホストし、プロトコル変換プロキシ116がこうしたプロトコルのサーバをホストする場合、第1の種類のプロトコルは、コンシューマコンピュータ106とプロトコル変換プロキシ116との間の任意の暗号化通信プロトコルであってもよい。例えば、VPNトンネル(プロトコル変換プロキシ116はVPNサーバを、コンシューマコンピュータ106はVPNクライアントをホストする)、暗号化WebRTC(ウェブリアルタイム通信)(プロトコル変換プロキシ116はWebRTCモジュールをホストし、コンシューマコンピュータ106はWebRTCクライアントをホストする)、又はセキュアメッセージングプロトコル(プロトコル変換プロキシ116はセキュアなメッセージングサーバを含み、コンシューマコンピュータ106はセキュアなメッセージングクライアントを含む)であり得る。これらの実装の各々において、第2の種類のプロトコルは、セキュアでないFTP又は任意の種類の非保護のメッセージ等、機密暗号鍵へのアクセスをプロバイダコンピュータ102が有する必要なくデータ交換を提供する任意のプロトコルであり得る。   Similarly, if the consumer computer 106 hosts a client and the protocol conversion proxy 116 hosts a server for such a protocol, the first type of protocol is any encryption between the consumer computer 106 and the protocol conversion proxy 116. It may be a communication protocol. For example, a VPN tunnel (protocol conversion proxy 116 hosts a VPN server, consumer computer 106 hosts a VPN client), encrypted WebRTC (web real-time communication) (protocol conversion proxy 116 hosts a WebRTC module, and consumer computer 106 WebRTC Hosting client), or a secure messaging protocol (protocol conversion proxy 116 includes a secure messaging server and consumer computer 106 includes a secure messaging client). In each of these implementations, the second type of protocol is an optional protocol that provides data exchange without the provider computer 102 having access to a sensitive encryption key, such as insecure FTP or any type of unprotected message. It can be a protocol.

一実施では、プロバイダコンピュータ102は、予め設定された1つ以上の条件が満たされる場合にのみコンテンツを提供し、該条件の内の1つは、VPNサーバ104への暗号化逆接続を通じてリクエストが提示されることである。VPNサーバ104との暗号化接続を通過して来るコンテンツリクエストのみを確保することは、コンテンツリクエストがクライアントのコンピュータに到達する前に適用される、追加的なアクセスコントロール手段を利用可能にし、これらのアクセスコントロール手段は、図3と4を参照しながら以下で論じられる。   In one implementation, the provider computer 102 provides content only if one or more pre-set conditions are met, one of the conditions being requested via an encrypted reverse connection to the VPN server 104. It is to be presented. Ensuring only content requests that pass through an encrypted connection with the VPN server 104 makes available additional access control means that are applied before the content request reaches the client computer, and these Access control means are discussed below with reference to FIGS.

図2は、図1の環境100を用いて実施されてもよい方法200を説明する。具体的には、説明される方法200は、プロバイダコンピュータ102上で実行するパーソナルサーバ118による等、プロバイダコンピュータ102上で実行されてもよい。   FIG. 2 illustrates a method 200 that may be implemented using the environment 100 of FIG. In particular, the described method 200 may be performed on the provider computer 102, such as by a personal server 118 executing on the provider computer 102.

方法200は、共有されるコンテンツ、例えば、コンテンツの指定を受信202することを含んでもよい。コンテンツは、音声、動画、画像、又はテキストファイル等の任意のファイルであってもよい。コンテンツの指定を受信202することは、プロバイダコンピュータ102、ネットワークストレージ112上のファイル、セキュリティカメラ110からの映像、又はその他のソースの指定を受信することを含んでもよい。コンテンツの指定を受信202することは、ファイル名又はファイルの実際のコンテンツ、例えば、ファイルを指し示すフルパス又はURLを受信することを含んでもよい。   Method 200 may include receiving 202 content to be shared, eg, content specification. The content may be an arbitrary file such as a sound, a moving image, an image, or a text file. Receiving 202 content specification may include receiving a file on provider computer 102, network storage 112, video from security camera 110, or other source specification. Receiving the content specification 202 may include receiving a file name or the actual content of the file, eg, a full path or URL pointing to the file.

方法202は、コンテンツにアクセスするための招待を、URL(図示の例においてはURL_A)と共に送信204することを更に含んでもよい。具体的には、パーソナルサーバ118は、コンテンツを共有するための命令を受信202することに応じて、ステップ202で受信されたコンテンツに対応するようにURL_Aを割り当ててもよい。   Method 202 may further include sending 204 an invitation to access the content along with a URL (URL_A in the illustrated example). Specifically, the personal server 118 may assign URL_A to correspond to the content received in step 202 in response to receiving 202 a command for sharing the content.

方法202は、VPNクライアント120等によって、プロバイダコンピュータ102をVPNサーバ104に接続206することを更に含んでもよい。プロバイダコンピュータ102を接続206するステップは、コンテンツを受信202すること及び招待を送信204することの前に、及び/又はそれらとは無関係に実施されてもよい。例えば、プロバイダコンピュータ102がオンであり、ネットワーク、例えばインターネットに接続されている間に、プロバイダコンピュータ102はVPNサーバ104への接続を維持してもよい。   The method 202 may further include connecting 206 the provider computer 102 to the VPN server 104, such as by a VPN client 120. The step of connecting 206 the provider computer 102 may be performed prior to and / or independent of receiving content 202 and sending 204 an invitation. For example, the provider computer 102 may maintain a connection to the VPN server 104 while the provider computer 102 is on and connected to a network, such as the Internet.

方法202は、コンテンツに対するリクエストをリッスン208することを含んでもよい。例えば、パーソナルサーバ118は、共有コンテンツと関連付けられたURLを参照するリクエストをリッスンしてもよい。コンテンツに対するリクエストを受信することに応じて、パーソナルサーバ118は、そのリクエストへの応答が適切か否かを評価してもよい。コンテンツに対するリクエストは、例えば、ステップ202で受信したコンテンツに割り当てられたURL_A等の、コンテンツと関連付けられたURLを含んでもよい。様々なコンテンツアイテムは共有されてもよく、各々は、それらに割り当てられたユニークなURLを有してもよく、該ユニークなURLは、受信されたコンテンツに対するリクエスト中に含まれてもよい。   Method 202 may include listening 208 for requests for content. For example, the personal server 118 may listen for requests that reference URLs associated with shared content. In response to receiving a request for content, the personal server 118 may evaluate whether the response to the request is appropriate. The request for content may include a URL associated with the content, such as URL_A assigned to the content received in step 202, for example. Various content items may be shared and each may have a unique URL assigned to them, and the unique URL may be included in a request for received content.

方法200は、リクエストがVPNトンネルを通じて受信されたか否かを判定210することを含んでもよい。そうでない場合、リクエスト者、例えば、リクエスト中に含まれるソースIPアドレスへエラーメッセージが返信212されてもよく、リクエストに対する応じて何らコンテンツが返信されない。   The method 200 may include determining 210 whether the request has been received through a VPN tunnel. Otherwise, an error message may be returned 212 to the requester, eg, the source IP address included in the request, and no content is returned in response to the request.

そうである場合、方法200は、リクエストが有効なURLを含むか否かを評価214することを含んでもよい。そうでない場合、対応するエラーメッセージが返信212され、リクエストに応じて何らコンテンツが返信されない。そうである場合、その後方法200は、リクエスト者が許可されているか否かを評価216することを含んでもよい。例えば、ステップ216は、リクエスト中に含まれるソースIPアドレス、ユーザ名、パスワード、又はその他の認証若しくは識別の情報の幾つか又は全てを評価することと、この情報を、招待が送信204された被招待者に対する情報と比較することとを含んでもよい。リクエスト者が、招待が送信204された被招待者に対応しない、又はさもなければ許可されていないと判明216した場合、方法200は、リクエストによりリクエストされたコンテンツを返信することなく、エラーメッセージを返信することを含んでもよい。リクエスト者が許可されていると判明216した場合、方法200は、プロバイダコンピュータ102がリクエストに応答するのに十分なリソースを有するか否かを評価218することを含んでもよい。例えば、評価されるリソースは、CPU使用率、帯域幅、又は現在応答しているその他のリクエストの数等を含んでもよい。現在の使用に鑑みてリクエストに応答するために必要なリソースがプロバイダコンピュータ102の能力を超える場合、リクエストによりリクエストされたコンテンツを返信することなく、エラーメッセージが返信されてもよい。   If so, the method 200 may include evaluating 214 whether the request includes a valid URL. Otherwise, a corresponding error message is returned 212 and no content is returned in response to the request. If so, then method 200 may include evaluating 216 whether the requester is authorized. For example, step 216 evaluates some or all of the source IP address, username, password, or other authentication or identification information included in the request and determines this information for the subject to whom the invitation was sent 204. And comparing with information for the invitee. If the requester finds 216 that the invitation was not sent to the invitee sent 204, or otherwise found 216, the method 200 returns an error message without returning the content requested by the request. It may include replying. If the requester is found 216 authorized, the method 200 may include evaluating 218 whether the provider computer 102 has sufficient resources to respond to the request. For example, the resources evaluated may include CPU usage, bandwidth, or the number of other requests currently responding. If the resources required to respond to the request in view of current usage exceed the capabilities of the provider computer 102, an error message may be returned without returning the content requested by the request.

ステップ210〜218における条件の評価は、任意の順序で実施されてもよく、幾つかの実施形態では、ステップ210〜218の内の1つ以上は省略されてもよい。特定の実施形態において評価される条件の全てが満たされると判明した場合、その後、リクエストによりリクエストされたコンテンツはリクエスト者へ返信220される。具体的には、リクエストによるコンテンツ参照は、リクエスト及びコンテンツ中に含まれるURLのマッピングに従って識別されてもよい。例えば、説明される例では、URL_Aとステップ202で受信されたコンテンツとの間のマッピング。コンテンツの返信は、上で論じられたように、リクエストされたコンテンツをVPNサーバ104がプロトコル変換プロキシ116を経由してリクエスト者へ転送するように、VPNトンネルを通じて実施されてもよい、   The evaluation of conditions in steps 210-218 may be performed in any order, and in some embodiments, one or more of steps 210-218 may be omitted. If all of the conditions evaluated in a particular embodiment are found to be met, then the content requested by the request is returned 220 to the requester. Specifically, the content reference by the request may be identified according to a mapping between the request and the URL included in the content. For example, in the example described, the mapping between URL_A and the content received at step 202. The content reply may be performed through a VPN tunnel so that the VPN server 104 forwards the requested content to the requestor via the protocol conversion proxy 116, as discussed above.

図3は、複数のプロバイダコンピュータ102a、102bが同一の接続サーバ、例えばVPNサーバ104に接続される実装300のブロック図である。各プロバイダコンピュータ102a、102bは、その識別子(例えば、dev_id1、dev_id2)、入手可能なコンテンツへの参照(例えば、URL1、URL2)を、本明細書においてアクセスコントローラ302と称される、VPNサーバによってアクセス可能なモジュールに報告する。プロトコル変換プロキシ116からURLリクエストを受信すると、VPNサーバ104は、このリクエスト、例えば、リクエスト中に含まれるURLと関連付けられる規則及び識別子を取得する。例えば、規則は、特定のデバイスから受信されたURLに応じて定義されてもよい。例えば、識別子dev_id1を有するコンピュータ102aからURL_Aを受信すると、URL_Aがdev_id1にマッピングされることを示す規則が作成されてもよい。   FIG. 3 is a block diagram of an implementation 300 in which multiple provider computers 102a, 102b are connected to the same connection server, eg, VPN server 104. Each provider computer 102a, 102b accesses its identifier (eg, dev_id1, dev_id2) and references to available content (eg, URL1, URL2) by a VPN server, referred to herein as an access controller 302. Report to possible modules. Upon receiving a URL request from the protocol conversion proxy 116, the VPN server 104 obtains rules and identifiers associated with this request, for example, the URL included in the request. For example, the rules may be defined in response to a URL received from a particular device. For example, when URL_A is received from the computer 102a having the identifier dev_id1, a rule indicating that URL_A is mapped to dev_id1 may be created.

リクエストを受信すると、VPNサーバ104は、規則を適用し、リクエスト中に含まれるURLにマッピングされた識別子に対応するプロバイダコンピュータ102a、102bを判定することに応じて、リクエストをプロバイダコンピュータ102a、102bにルーティングする。説明される例では、プロバイダコンピュータ102a、102bがアクセスコントローラ302にそれらのコンテンツ(例えば、それぞれURL1、URL2)を通告し、VPNサーバ104は、それにより提示されたプロバイダコンピュータ102a、102bとURLとの間のマッピングを格納する。続いて、URL1に対するリクエストが受信され得る。VPNサーバ104は、格納されたマッピングがプロバイダコンピュータ102aをURL1にマッピングすると判定することに応じて、リクエストをプロバイダコンピュータ102aにその後接続する。他の例において、複数のコンテンツリクエストは、同じ期間に処理され得、単一のVPNサーバ104及びプロトコル変換プロキシ116を通じて複数のプロバイダコンピュータにルーティングされ得る。   Upon receiving the request, the VPN server 104 applies the rules and determines the provider computer 102a, 102b corresponding to the identifier mapped to the URL included in the request, and sends the request to the provider computer 102a, 102b. Route. In the illustrated example, the provider computers 102a, 102b notify the access controller 302 of their contents (eg, URL1, URL2, respectively), and the VPN server 104 communicates the provider computers 102a, 102b and URLs presented thereby with the URL. Store the mapping between. Subsequently, a request for URL1 may be received. VPN server 104 subsequently connects the request to provider computer 102a in response to determining that the stored mapping maps provider computer 102a to URL1. In other examples, multiple content requests can be processed in the same time period and routed to multiple provider computers through a single VPN server 104 and protocol conversion proxy 116.

幾つかの実施形態において、コンテンツリクエストは、予め設定された1つ以上の条件が満たされる場合にのみ、該リクエストによって識別されたプロバイダコンピュータ102a、102bへ送信される。例えば、コンシューマコンピュータ106がリクエストを発行する前に、該リクエストにより参照されるプロバイダコンピュータ102a、102bから受信される1つ以上の条件。   In some embodiments, a content request is sent to the provider computers 102a, 102b identified by the request only if one or more preset conditions are met. For example, one or more conditions received from the provider computers 102a, 102b referenced by the request before the consumer computer 106 issues the request.

図4は、方法400を図示し、ここで、複数のプロバイダコンピュータの内の任意のプロバイダコンピュータ、説明される例ではプロバイダコンピュータ102aは、URL_A等のURLとの関連付けのために、コンテンツ、例えば、上述したようなコンテンツの指定を受信402する。プロバイダコンピュータ102aは、VPNサーバ104に接続404し、URL_Aに対するコンテンツのプロバイダとして登録406する。URL_Aに対するコンテンツのプロバイダとしてプロバイダコンピュータ102aを登録406することは、URL_Aに対する1つ以上のアクセス規則と共にURL_AをVPNサーバ104へ送信することを含んでもよい。VPNサーバ104は、受信されたURL_A及びアクセス規則を、それらが受信される相手方であるプロバイダコンピュータ102aのVPNクライアント120の接続識別子と共に登録408し、これによりプロバイダコンピュータ102aのパーソナルサーバ118をURL_Aにマッピングする。   FIG. 4 illustrates a method 400 in which any provider computer of the plurality of provider computers, in the example described, provider computer 102a, is associated with a content, eg, URL, for association with a URL, such as URL_A. The content designation as described above is received 402. The provider computer 102a connects 404 to the VPN server 104 and registers 406 as a content provider for URL_A. Registering 406 provider computer 102a as a content provider for URL_A may include sending URL_A to VPN server 104 along with one or more access rules for URL_A. The VPN server 104 registers 408 the received URL_A and access rules together with the connection identifier of the VPN client 120 of the provider computer 102a that is the recipient of the received URL_A, thereby mapping the personal server 118 of the provider computer 102a to URL_A. To do.

URL_Aを登録408することに続いて、VPNサーバ104は、URL_Aに対するリクエストを受信410し得る。説明される実施形態では、VPNサーバ104は、URL_Aに対して登録408されたアクセス規則をその後検索し、これらのアクセス規則を適用する。説明されるステップ412〜420は、適用されてもよいアクセス規則の例を説明する。例えば、プロバイダコンピュータ102aがアクセス可能であると判明412し、プロバイダコンピュータ102aに現在アクセスしているソースIPアドレスの数が、最大ユーザ数(Max_Users)よりも少ないと判明416し、プロバイダコンピュータ102aにより出力されているトラフィックが最大帯域幅(Max_Bandwidth)よりも小さいと判明418し、並びにリクエストのURL_Aが期限切れであると判明420していない場合にのみ、受信410されたリクエストは、URL_Aに対して登録されたプロバイダコンピュータ102aへ転送422されてもよい。ステップ416〜420で評価されるMax_Users、Max_Bandwidth、URL_Aの有効期間の値は、URL_Aを登録する際にプロバイダコンピュータ102aから受信されたアクセス規則において指定されてよい。ステップ412、416、418、及び420で評価される条件が満たされていないことが判明した場合、その後リクエストはブロック414され、プロバイダコンピュータ102aへ転送されない。幾つかの実施形態では、アクセス規則は、図3のアクセスコントローラ302等の、VPNサーバ104からアクセス可能な別のモジュールによって格納及び/又は適用されてもよい。   Following registering 408 URL_A, VPN server 104 may receive 410 a request for URL_A. In the described embodiment, VPN server 104 then retrieves the access rules registered 408 for URL_A and applies these access rules. The described steps 412-420 describe examples of access rules that may be applied. For example, the provider computer 102a is found to be accessible 412 and the number of source IP addresses currently accessing the provider computer 102a is found to be less than the maximum number of users (Max_Users) 416 and output by the provider computer 102a. The received 410 request is registered against URL_A only if the traffic being received is found 418 less than the maximum bandwidth (Max_Bandwidth) and the URL_A of the request is not found 420 to be expired. It may be transferred 422 to the provider computer 102a. The validity values of Max_Users, Max_Bandwidth, URL_A evaluated in steps 416-420 may be specified in the access rules received from provider computer 102a when registering URL_A. If it is found that the conditions evaluated in steps 412, 416, 418, and 420 are not met, then the request is blocked 414 and not forwarded to the provider computer 102a. In some embodiments, the access rules may be stored and / or applied by another module accessible from the VPN server 104, such as the access controller 302 of FIG.

転送されたリクエストを受信すると、パーソナルサーバ118を使用する等して、プロバイダコンピュータ102aは、URL_Aと関連付けられているとステップ402で指定されたコンテンツを検索し、IPアドレス中に含まれるソースIPアドレスへそれを返信する等によってリクエストに応答する。コンテンツを返信することは、プロバイダコンピュータ102aとVPNサーバ104との間のVPNトンネルを経由して、リクエストされたコンテンツを送信することを含んでもよい。   Upon receiving the forwarded request, the provider computer 102a searches for the content specified in step 402 as being associated with URL_A, such as by using the personal server 118, and the source IP address included in the IP address Reply to the request by replying to it. Returning the content may include sending the requested content via a VPN tunnel between the provider computer 102a and the VPN server 104.

図4を参照しながら記述したアクセス規則は、VPNサーバ104への暗号化逆接続を通じてのみコンテンツリクエストを受理する限り、コンテンツサーバに共通する攻撃(例えば、サービス拒否、ポートスキャン、無許可のコンシューマ等)からプロバイダコンピュータ102aを有利に保護する。   As long as the access rule described with reference to FIG. 4 accepts a content request only through an encrypted reverse connection to the VPN server 104, attacks common to the content server (for example, denial of service, port scan, unauthorized consumer, etc.) ) Advantageously protects the provider computer 102a from

図5は実装500のブロック図であり、ここで、単一のプロトコル変換プロキシ116を指し示すURL1でコンシューマコンピュータ106が提供される一方で、複数のプロバイダコンピュータ102a、102bは、異なる接続サーバ、例えばVPNサーバ104a、104bに接続される。正確なVPNサーバ104a、104bを通じて、提供されるコンテンツにアクセスするために、実装500は、リクエスト中に含まれるURLと、各URLと関連付けられたアクセス規則にと基づいてコンテンツリクエストをプロバイダにルーティングすることを可能にするVPNルータ500を含んでもよい。各プロバイダコンピュータ102a、102bがVPNサーバ104a、104bに接続した後、各VPNサーバ104a、104bは、それらに接続されたプロバイダコンピュータ102a、102bの識別子を、各VPNサーバ104a、104bの識別子と共にVPNルータ500へ送信する。図3に関して前述したように、各プロバイダコンピュータ102a、102bは、自身の識別子と、自身が提供できるコンテンツのURLとをアクセス規則と共にアクセスコントローラ300に登録する。   FIG. 5 is a block diagram of an implementation 500, where a consumer computer 106 is provided with a URL1 pointing to a single protocol conversion proxy 116, while multiple provider computers 102a, 102b may be connected to different connection servers, eg, VPNs. Connected to the servers 104a and 104b. In order to access the provided content through the correct VPN server 104a, 104b, the implementation 500 routes the content request to the provider based on the URLs included in the request and the access rules associated with each URL. A VPN router 500 may be included to enable this. After each provider computer 102a, 102b connects to the VPN server 104a, 104b, each VPN server 104a, 104b sends the identifier of the provider computer 102a, 102b connected to them together with the identifier of each VPN server 104a, 104b to a VPN router. To 500. As described above with reference to FIG. 3, each provider computer 102 a and 102 b registers its own identifier and the URL of the content that it can provide in the access controller 300 together with the access rule.

URL1に対するリクエストをプロトコル変換プロキシ116から受信すると、VPNルータ500は、プロバイダコンピュータ102aの識別子と、URL1と関連付けられたアクセス規則とをアクセスコントローラ512から取得し、プロバイダコンピュータ102aの識別子と関連付けられる対応するVPNサーバ104aを通じてリクエストをルーティングする。この例において、VPNルータ500はまた、URL1と関連付けられたアクセス規則をURLと共にVPNサーバ104aに渡す。他の実装において、VPNルータ500は、幾つかのアクセス規則(例えば、URLが期限切れか否か)をチェックしてもよく、チェックされたそれらのアクセス規則を満たさないリクエストをブロックしてもよい。チェックされたアクセス規則の条件を満たすそれらのリクエストは、チェックされなかったそれらのアクセス規則(例えば、図4を参照しながら記述したような最大許容帯域幅に関する規則)と共に適切なVPNサーバ104a、140bにその後渡されてもよい。説明される実施形態において、プロトコル変換プロキシ116及びVPNルータ500は、単一のロケーション、例えば、同じコンピュータ又は同じローカルネットワーク中に配置されてもよい一方で、VPNサーバ104a、140bは、プロバイダコンピュータ102a、102bに近接するように選択された異なる地理的ロケーションに配置されてもよい。   Upon receiving a request for URL1 from protocol conversion proxy 116, VPN router 500 obtains the identifier of provider computer 102a and the access rules associated with URL1 from access controller 512 and the corresponding association with the identifier of provider computer 102a. The request is routed through the VPN server 104a. In this example, the VPN router 500 also passes the access rule associated with URL1 to the VPN server 104a along with the URL. In other implementations, the VPN router 500 may check several access rules (eg, whether the URL has expired) and block requests that do not meet those checked access rules. Those requests that meet the conditions of the checked access rules will be sent to the appropriate VPN servers 104a, 140b along with those access rules that were not checked (eg, rules regarding maximum allowed bandwidth as described with reference to FIG. 4). May then be passed to. In the described embodiment, protocol translation proxy 116 and VPN router 500 may be located in a single location, eg, the same computer or the same local network, while VPN servers 104a, 140b are connected to provider computer 102a. , 102b may be located at different geographical locations selected to be proximate to 102b.

図6は実装600のブロック図であり、ここで、様々なプロバイダコンピュータ102a、102bのVPNクライアント120を異なるVPNサーバ104a、104bに接続することに加えて、コンテンツコンシューマ106は、異なるプロトコル変換プロキシ116a、116bに接続され得る。コンシューマにより発行された後、それぞれのコンテンツリクエストを処理するために単一のプロトコル変換プロキシ116とVPNルータ500とを用いて処理する代わりに、本実装は、VPNルータ500を必要とせずに、正確なVPNサーバ104a、104bと関連付けられたプロトコル変換プロキシ116a、116bにコンシューマコンピュータ106を指し示すために、ドメイン名サーバ602を用いる。   FIG. 6 is a block diagram of an implementation 600 where, in addition to connecting the VPN clients 120 of the various provider computers 102a, 102b to the different VPN servers 104a, 104b, the content consumer 106 may have different protocol conversion proxies 116a. , 116b. Instead of processing using a single protocol conversion proxy 116 and VPN router 500 to process each content request after being issued by the consumer, this implementation does not require the VPN router 500 and is accurate. The domain name server 602 is used to point the consumer computer 106 to the protocol conversion proxies 116a, 116b associated with the active VPN servers 104a, 104b.

一例において、プロトコル変換プロキシ116a、116bは、対応するVPNサーバ104a、104bと同じローカルネットワーク上に(例えば、同一のコロケーション中に)それぞれ存在する。別の例において、VPNサーバ104a、104b、及び対応するプロトコル変換プロキシ116a、116bの両者は、ローカルネットワークの同じノード上に設置され、同じ物理的コンピュータハードウェアと関連付けられる。これらの実装は、プロトコル変換プロキシ116a、116bとVPNサーバ104a、104bとの間のHTTPトラフィックを傍受から保護し、それをローカルネットワーク又は同一のコンピュータに制限する。   In one example, the protocol conversion proxies 116a, 116b each reside on the same local network (eg, in the same collocation) as the corresponding VPN server 104a, 104b. In another example, both the VPN servers 104a, 104b and the corresponding protocol conversion proxies 116a, 116b are located on the same node of the local network and associated with the same physical computer hardware. These implementations protect HTTP traffic between the protocol conversion proxies 116a, 116b and the VPN servers 104a, 104b from interception and limit it to the local network or the same computer.

HTTPSのURLをプロバイダコンピュータ102a、102bから受信した後、本明細書に記述されるようなメッセージにおいて、コンシューマコンピュータ106は、HTTPSドメインをIPアドレスに解決するためのDNS(ドメインネームサービス)リクエストを発行してもよい。ドメインネームサーバ602は、パーソナルコンテンツURLにより使用されるドメインに対して権威あるネームサーバとして登録され、それ故、そうしたリクエストを処理する。   After receiving the HTTPS URL from the provider computers 102a, 102b, in a message as described herein, the consumer computer 106 issues a DNS (Domain Name Service) request to resolve the HTTPS domain to an IP address. May be. The domain name server 602 is registered as an authoritative name server for the domain used by the personal content URL and therefore handles such requests.

本実装において、プロバイダコンピュータ102aによってコンシューマコンピュータ106に通告されたコンテンツURL(URL1)のドメインは、プロバイダコンピュータ102aとVPNサーバ104aとの間の接続の識別子(例えば、dev_id1.maindomain.com)への参照を含む。各プロトコル変換プロキシ116a、116bは、プライベートワイルドカードSSL証明書(例えば、*.maindomain.com)へのアクセスを有してもよく、該プライベートワイルドカードSSL証明書は、このパターンに一致する全てのリクエストに対するHTTPSサーバとしてそれを機能可能にする。   In this implementation, the domain of the content URL (URL1) notified to the consumer computer 106 by the provider computer 102a is a reference to an identifier (for example, dev_id1.maindomain.com) of the connection between the provider computer 102a and the VPN server 104a. including. Each protocol conversion proxy 116a, 116b may have access to a private wildcard SSL certificate (eg, * .maindomain.com), and the private wildcard SSL certificate will match all the patterns that match this pattern. Enable it as an HTTPS server for requests.

プロバイダコンピュータ102a、102bがVPNサーバ104a、104bに接続した後、VPNサーバ104a、104bは、プロバイダコンピュータ102a、102bへの接続と関連付けられた識別子を含むリクエストはVPNサーバ104a、104bを通じてルーティングされるべきであると、ドメインネームサーバ602に通知する。プロバイダコンピュータ102a、102bがVPNサーバ104a、104bとの接続を切断する場合、VPNサーバ104a、104bは、VPNサーバ104a、104bへのプロバイダコンピュータ102a、102bの識別子のその関連付けが有効ではなくなったと、ドメインネームサーバ602に通知する。これらの変化の伝搬の遅延を最小化するために、ドメインネームサーバ602は、その後にドメインが有効期間切れしリクエストのルーティングに使われなくなるタイムトゥーリブ(TTL)をそのドメインに対して設定する。   After the provider computer 102a, 102b connects to the VPN server 104a, 104b, the VPN server 104a, 104b should route the request that includes the identifier associated with the connection to the provider computer 102a, 102b through the VPN server 104a, 104b. If so, the domain name server 602 is notified. When the provider computer 102a, 102b disconnects from the VPN server 104a, 104b, the VPN server 104a, 104b is configured such that the association of the provider computer 102a, 102b identifier to the VPN server 104a, 104b is no longer valid. The name server 602 is notified. To minimize the delay in propagating these changes, the domain name server 602 sets a time-to-live (TTL) for the domain after which the domain expires and is no longer used for request routing.

ドメイン名に対するリクエストを受信した後、ドメインネームサーバ602はそれをVPNサーバ104a、104bにより報告された接続識別子と一致させる。一致が判明した場合、ドメインネームサーバ602は、一致した接続識別子を報告したVPNサーバと関連付けられたプロトコル変換プロキシ116a、116bに対応するIPアドレスで応答する。コンシューマコンピュータ106は、適切なプロトコル変換プロキシ116a、116bのIPアドレスを受信し、URL1に対するリクエストを該プロトコル変換プロキシ116a、116bへ送信する。通告されたHTTPSのURL(URL1)のリクエストを受信すると、プロトコル変換プロキシ116a、116bは、変換済みHTTPリクエストを、URL1と関連付けられた対応するVPNサーバ104a、104bに渡す。   After receiving the request for the domain name, the domain name server 602 matches it with the connection identifier reported by the VPN servers 104a, 104b. If a match is found, the domain name server 602 responds with an IP address corresponding to the protocol translation proxies 116a, 116b associated with the VPN server that reported the matched connection identifier. The consumer computer 106 receives the IP address of the appropriate protocol conversion proxy 116a, 116b, and sends a request for URL1 to the protocol conversion proxy 116a, 116b. Upon receiving the notified HTTPS URL (URL1) request, the protocol conversion proxies 116a and 116b pass the converted HTTP request to the corresponding VPN server 104a and 104b associated with URL1.

図7〜図9を参照しながら後述される別の側面において、プロバイダコンピュータ102a、102bは、逆接続を提供することを可能にする接続サーバ、例えばVPNサーバ104a、104bとの接続を確立する。コンシューマコンピュータ106は、サーバコンピュータ上で入手可能なコンテンツに対するリクエストを発行し、プロバイダコンピュータ102a、102bにより提供されるコンテンツへの参照を含む応答を受信し、プロバイダコンピュータ102a、102bに逆接続を通じてこのコンテンツをリクエストし、ここで、第1及び第2のコンピュータ間のデータ交換は、プロバイダコンピュータ102a、102b及びコンシューマコンピュータ106に既知の鍵を用いて暗号化される。   In another aspect described below with reference to FIGS. 7-9, provider computers 102a, 102b establish a connection with a connection server, eg, VPN servers 104a, 104b, that allows for providing reverse connections. The consumer computer 106 issues a request for content available on the server computer, receives a response that includes a reference to the content provided by the provider computers 102a, 102b, and this content through a reverse connection to the provider computers 102a, 102b. Where the data exchange between the first and second computers is encrypted using a key known to the provider computers 102a, 102b and the consumer computer 106.

例えば、図7を参照すると、コンシューマコンピュータ106は、プロバイダコンピュータ102からのURL_Bと関連付けられたコンテンツに対するリクエストを発行してよい。このリクエストは、VPNサーバ104とプロバイダコンピュータ102のVPNクライアントとの間の逆接続を通過し、プロバイダコンピュータ102のパーソナルサーバ118に到達する。この逆接続は、プロバイダコンピュータ102への外部アクセスがNAT又はファイアウォールによりブロックされる場合であっても、コンシューマコンピュータ106からのコンテンツリクエストがプロバイダコンピュータ102に到達することを可能にする。説明される実施形態において、VPNサーバ104は、逆接続を確立する能力がある(例えば、OpenVPN Technologies Inc.により提供されるOpenVPNサーバ)。他の実装において、VPNサーバ104は、逆接続を提供する能力があるプロキシ又はアプリケーションレベルのトンネルサーバ(SSHサーバ等)である接続サーバに置き換えられてもよい。   For example, referring to FIG. 7, consumer computer 106 may issue a request for content associated with URL_B from provider computer 102. This request passes through the reverse connection between the VPN server 104 and the VPN client of the provider computer 102 and reaches the personal server 118 of the provider computer 102. This reverse connection allows content requests from the consumer computer 106 to reach the provider computer 102 even if external access to the provider computer 102 is blocked by a NAT or firewall. In the described embodiment, the VPN server 104 is capable of establishing a reverse connection (eg, an OpenVPN server provided by OpenVPN Technologies Inc.). In other implementations, the VPN server 104 may be replaced with a connection server that is a proxy or application level tunnel server (such as an SSH server) capable of providing reverse connections.

図7の実施形態において、コンピュータ102、106間のデータ交換は、HTTPSプロトコルにより暗号化される。プロバイダコンピュータ106からのリクエストは、コンシューマコンピュータ106上のHTTPSブラウザ128により発行され、プロバイダコンピュータ102上の、HTTPSサーバとして具体化されてもよいパーソナルサーバ118により処理される。パーソナルサーバ118は、URL_Bにより使用される、ドメイン_Bに対するHTTPS接続を確立するのに必要なプライベートSSL証明書へのアクセスを有してもよい。コンテンツのプロバイダコンピュータ102とコンシューマコンピュータ106との間のデータ交換は、エンドツーエンドで暗号化され、VPNサーバ104等の中間モジュールに対する不透明を維持する。   In the embodiment of FIG. 7, data exchange between the computers 102, 106 is encrypted using the HTTPS protocol. Requests from the provider computer 106 are issued by an HTTPS browser 128 on the consumer computer 106 and processed by a personal server 118 on the provider computer 102 that may be embodied as an HTTPS server. The personal server 118 may have access to the private SSL certificate used to establish an HTTPS connection to Domain_B that is used by URL_B. Data exchange between the content provider computer 102 and the consumer computer 106 is encrypted end-to-end and remains opaque to intermediate modules such as the VPN server 104.

プロバイダコンピュータ102とコンシューマコンピュータ106との間のデータ交換は、異なる暗号化プロトコル、例えば、IPSEC又はL2TP等のVPNプロトコルにより保護され得る。そうした実装において、コンシューマコンピュータ106は、VPNクライアントをホストしてよく、一方、プロバイダコンピュータ102はVPNサーバを有し、コンテンツのプロバイダコンピュータ102とコンシューマコンピュータ106との間のエンドツーエンドの暗号化を提供する。この場合、コンシューマ及びプロバイダコンピュータ102、106間のVPNトンネルは更に、プロバイダコンピュータ102とVPNサーバ104との間のVPNトンネルによりカプセル化されてもよく、VPNサーバ104からコンシューマコンピュータ106への追加のカプセル化なしに処理される。別の実装において、コンシューマ及びプロバイダは、公開/秘密鍵暗号又はその他の暗号化手段を用いてクライアント間の通信を暗号化するメッセージングアプリケーション124、126の異なるノードを有してもよい。   Data exchange between the provider computer 102 and the consumer computer 106 may be protected by different encryption protocols, for example, a VPN protocol such as IPSEC or L2TP. In such an implementation, consumer computer 106 may host a VPN client, while provider computer 102 has a VPN server and provides end-to-end encryption between content provider computer 102 and consumer computer 106. To do. In this case, the VPN tunnel between the consumer and provider computers 102, 106 may be further encapsulated by a VPN tunnel between the provider computer 102 and the VPN server 104, and additional capsules from the VPN server 104 to the consumer computer 106. Processed without conversion. In another implementation, consumers and providers may have different nodes of messaging applications 124, 126 that encrypt communications between clients using public / private key cryptography or other encryption means.

そうした実施形態において、パーソナルサーバ118は、コンシューマコンピュータ106とのエンドツーエンドの暗号化を確立するための暗号鍵へのアクセスを有する必要があり得る。HTTPSプロトコルの場合、パーソナルHTTPSサーバ702は、特定のドメイン(例えば、HTTPSのURL_Bに対するドメイン_B)と関連付けられたコンテンツのプロバイダとしてサーバ702を認証するプライベートSSL証明書へのアクセスを有する必要があり得る。図示される実施形態において、VPNサーバ104は、プライベートSSL証明書をプロバイダ704から取得し、それをVPNクライアント120を通じてプロバイダコンピュータ102へその後送信する。別の実施形態において、プロバイダコンピュータ102は、例えば、プロバイダ704との直接のセキュア接続を確立することによって、VPNサーバ104をバイパスしてプロバイダ704からプライベートSSL証明書を取得してもよく、これにより、プライベートSSL証明書を観察から隠匿する。その他の暗号化プロトコルに対しては、パーソナルサーバ118は、その他の種類のプライベート暗号鍵へのアクセスを必要としてもよい。プロバイダコンピュータ102等のパーソナルコンピュータは、専用のロケーション中のサーバよりも無許可のアクセスからの保護が弱いため、こうしたプライベート証明書又は秘密鍵が無許可の第三者により取得され得るリスクが増加する。そうした第三者は、データ交換上で(例えば中間者となることで)スヌープし得、又は(無許可のサーバからのコンテンツの入手可能性を通告する)偽装者になり得る。   In such embodiments, personal server 118 may need to have access to an encryption key to establish end-to-end encryption with consumer computer 106. In the case of the HTTPS protocol, the personal HTTPS server 702 may need to have access to a private SSL certificate that authenticates the server 702 as a provider of content associated with a particular domain (eg, domain_B for HTTPS URL_B). . In the illustrated embodiment, the VPN server 104 obtains a private SSL certificate from the provider 704 and subsequently sends it to the provider computer 102 through the VPN client 120. In another embodiment, the provider computer 102 may obtain a private SSL certificate from the provider 704, bypassing the VPN server 104, for example, by establishing a direct secure connection with the provider 704. Hide the private SSL certificate from observation. For other encryption protocols, the personal server 118 may need access to other types of private encryption keys. Personal computers, such as provider computer 102, are less protected from unauthorized access than servers in a dedicated location, increasing the risk that such private certificates or private keys may be obtained by unauthorized third parties. . Such a third party can snoop on the data exchange (e.g., by becoming an intermediary) or can become a spoofer (notifying the availability of content from an unauthorized server).

図1に示された側面において、この問題は、プロバイダコンピュータ102に到達する前にSSL接続を終端するためにプロトコル変換プロキシ116を用いることによって対処された。しかしながら、そのことは、プロトコル変換プロキシ116とパーソナルサーバ118との間のHTTPトラフィックを、そのトラフィックを処理するプロトコル変換プロキシ116等のモジュールと、接続サーバ、例えばVPNサーバ104とによる観察のためにオープンさせた。   In the aspect shown in FIG. 1, this problem was addressed by using a protocol conversion proxy 116 to terminate the SSL connection before reaching the provider computer 102. However, it does open HTTP traffic between the protocol conversion proxy 116 and the personal server 118 for viewing by modules such as the protocol conversion proxy 116 that handle the traffic and the connection server, eg, the VPN server 104. I let you.

プロバイダとコンシューマとの間のトラフィックの傍受を防ぐ図7に示された側面では、機密証明書又は鍵をパーソナルコンピュータ上で入手可能にすることのセキュリティリスクの増加は、コンシューマに提供されたコンテンツリンクを無効にする必要なく、危殆化した証明書又は鍵を容易に置き換できる能力によって緩和される。   In the aspect shown in FIG. 7, which prevents the interception of traffic between the provider and consumer, the increased security risk of making a confidential certificate or key available on a personal computer is the content link provided to the consumer. Mitigated by the ability to easily replace compromised certificates or keys without having to revoke

図示される実施形態において、コンシューマコンピュータ106は、公的にアクセス可能なHTTPSサーバ702により提供されるURL_Aに対するコンテンツリクエストを発行する。サーバ702によりアクセス可能なSSL証明書は、サーバがセキュアなロケーションに設置され得るため、安全と考えられる。   In the illustrated embodiment, the consumer computer 106 issues a content request for URL_A provided by a publicly accessible HTTPS server 702. SSL certificates accessible by the server 702 are considered secure because the server can be placed in a secure location.

図示される実施形態において、コンシューマコンピュータ106はURL_Aをプロバイダコンピュータ102から取得し、プロバイダコンピュータ102は、1つのメッセージングアプリケーション124からコンシューマコンピュータ106上で実行するメッセージングアプリケーション126へメッセージを送信することによって、URL_Aを送信する。例えば、URL_Aは、図2の方法200のステップ204を参照しながら論じられたのと同じ方法で、インスタントメッセージ、電子メールを介して送信され得る、又は既知のウェブサイトに投稿され得る。   In the illustrated embodiment, consumer computer 106 obtains URL_A from provider computer 102, and provider computer 102 sends URL_A by sending a message from one messaging application 124 to messaging application 126 running on consumer computer 106. Send. For example, URL_A can be sent via instant message, email, or posted to a known website in the same manner as discussed with reference to step 204 of method 200 of FIG.

一実装において、プロバイダコンピュータ102は、パブリックHTTPSサーバから入手可能なコンテンツへの参照を有するメッセージを、VPNサーバ104をバイパスしコンシューマコンピュータ106へ送信し、URL_Aの少なくともパス及びクエリの部分を観察から隠匿する。   In one implementation, the provider computer 102 sends a message with a reference to content available from the public HTTPS server to the consumer computer 106, bypassing the VPN server 104, concealing at least the path and query portion of URL_A from observation. To do.

URL_Aに対するリクエストに応じて、パブリックサーバ702は、プロバイダコンピュータ102上に格納されたコンテンツを参照するURL_Bを返信し、そうしたURLは、例えば、IFrameのソース、HTMLコンテンツ中に埋め込まれた画像若しくは動画として、又はリダイレトとして返信され得る。それは、直ちに、又は僅かな中間ステップ(例えば、一連のリダイレクト、又はネストされたIFrame)の後に行われてよい。   In response to the request for URL_A, the public server 702 returns a URL_B that refers to the content stored on the provider computer 102, and the URL is, for example, an IF frame source, an image or video embedded in the HTML content. Or as a redirect. It may be done immediately or after a few intermediate steps (eg, a series of redirects or nested IFframes).

パブリックサーバは、URL_Aに対するリクエストに応答して何れのURL_Bを返信するを知る必要のみがあり、一実装では、それは、URL_Bへの参照を含むURL_Aを生成し得、コンシューマへの配信のためのコンテンツプロバイダへそれを送信し得る。例えば、そうしたURLは、“www.ドメイン_A.com/index”の形式をとってもよく、ここで、indexは、パーソナルサーバ118により与えられるURL_Bへの参照である。   The public server only needs to know which URL_B to return in response to a request for URL_A, and in one implementation it can generate URL_A that includes a reference to URL_B, and content for delivery to the consumer You can send it to the provider. For example, such a URL may take the form “www.domain_A.com/index”, where index is a reference to URL_B provided by personal server 118.

一例において、プロバイダコンピュータ102とサーバ702との間の通信は、HTTPS暗号化により傍受から保護され、又はサーバ104をバイパスして発行される。   In one example, communication between provider computer 102 and server 702 is protected from interception by HTTPS encryption or is issued bypassing server 104.

プロバイダコンピュータ102上に格納されたドメイン_Bの証明書が危殆化する場合、URL_Bは、コンシューマに既知のURL_Aへのリンクを変更することなく、異なるSSL証明書を用いるものに容易に置き換えられ得る。   If the domain_B certificate stored on the provider computer 102 is compromised, the URL_B can be easily replaced with one that uses a different SSL certificate without changing the link to the URL_A known to the consumer.

図示される実施形態において、(例えば、VPNトンネルを通じてプロバイダコンピュータ102からマルウェアのトラフィックを検出することによって)ドメイン_Bが危殆化し得ると判定した後、VPNサーバ104は、新たなドメイン_Bを選択し、そのドメインに対する新たなSSL証明書をSSL証明書プロバイダ704から取得し、新たなドメイン_Bと新たなSSL証明書とをパーソナルHTTPSサーバ118にその後渡す。別例において、プロバイダコンピュータ102は、自身で新たなドメイン_Bを選択してもよく、VPNサーバに知らせることなく、更新された証明書をSSL証明書プロバイダから受信してもよい。他の一例において、プロバイダコンピュータ102は、“高セキュリティリスク”とみなされ得、新たなSSL証明書の発行を提供することに代わり、そのコンテンツを提供できる能力を拒否され得る。   In the illustrated embodiment, after determining that domain_B can be compromised (eg, by detecting malware traffic from provider computer 102 through a VPN tunnel), VPN server 104 selects a new domain_B, A new SSL certificate for that domain is obtained from the SSL certificate provider 704 and the new domain_B and the new SSL certificate are then passed to the personal HTTPS server 118. In another example, the provider computer 102 may select a new domain_B by itself and may receive an updated certificate from the SSL certificate provider without notifying the VPN server. In another example, the provider computer 102 may be considered a “high security risk” and may be denied the ability to provide its content instead of providing a new SSL certificate issue.

別の実施形態において、プロバイダにより通知されるコンテンツを取得するために、パーソナルサーバからコンテンツを取得するためのものとは異なる通信プロトコルが用いられる。一例において、パブリックサーバ702に送信されたHTTPSのURL_Aに対するリクエストは、プロバイダコンピュータ102上のパーソナルVPNサーバ(例えば、IPSECサーバ)の更新されたホスト名を返信してもよい。そうしたホスト名が置き換えられるべき場合、URL_Aは、その代替物を返信し、ローカルVPNクライアントの設定が更新されるべきことをコンシューマに通知する。別例において、URL_Bに対するリクエストは、機密コンテンツを保護するためにHTTPSプロトコルを用い得る一方で、URL_Aに対するリクエストは、(例えば、HTTPSのURL_Bへのリダイレクトを返信するのみのために)HTTPプロトコルを用い得る。   In another embodiment, a different communication protocol is used to obtain content notified by the provider than for obtaining content from a personal server. In one example, the request for HTTPS URL_A sent to the public server 702 may return the updated host name of the personal VPN server (eg, IPSEC server) on the provider computer 102. If such a host name is to be replaced, URL_A sends back the alternative and notifies the consumer that the local VPN client configuration should be updated. In another example, a request for URL_B may use the HTTPS protocol to protect sensitive content, while a request for URL_A uses the HTTP protocol (eg, just to send a redirect to HTTPS URL_B). obtain.

一実装において、パブリックコンテンツを返信するサーバと、パーソナルコンテンツを返信するサーバとは、同じパーソナルコンピュータ上に設置されてもよい。例えば、URL_Aにより参照されるコンテンツは、プロバイダコンピュータ102上のHTTPサーバにより提供されてもよく、URL_Bにより提供されるコンテンツは、プロバイダコンピュータ102上で同様に実行するパーソナルHTTPSサーバにより提供されてもよい。   In one implementation, the server that returns public content and the server that returns personal content may be installed on the same personal computer. For example, the content referenced by URL_A may be provided by an HTTP server on provider computer 102, and the content provided by URL_B may be provided by a personal HTTPS server that also executes on provider computer 102. .

図7の実施形態は、パーソナルコンテンツと関連付けられた危殆化したドメインの検出を有利に改善する。この側面において、コンシューマコンピュータ106は、コンテンツをパブリックHTTPSサーバ702にリクエストし、プロバイダコンピュータ102から入手可能なコンテンツへの参照を含む応答を受信する。コンシューマコンピュータ106は、プロバイダコンピュータ102への暗号化接続を確立し、この接続を経由してコンテンツをリクエストする。パブリックHTTPSサーバ702へのリクエストのソースIPアドレスとプロバイダコンピュータ102へのリクエストのソースIPアドレスとが比較される。これらのIPアドレスが一致しない場合、そのことは、コンシューマコンピュータ106により確立されたこれらのIPアドレスへの暗号化接続の内の1つが危殆化するリスクの増加を示す。   The embodiment of FIG. 7 advantageously improves the detection of compromised domains associated with personal content. In this aspect, the consumer computer 106 requests content from the public HTTPS server 702 and receives a response that includes a reference to the content available from the provider computer 102. The consumer computer 106 establishes an encrypted connection to the provider computer 102 and requests content via this connection. The source IP address of the request to the public HTTPS server 702 is compared with the source IP address of the request to the provider computer 102. If these IP addresses do not match, this indicates an increased risk of compromising one of the encrypted connections to those IP addresses established by the consumer computer 106.

一実装において、コンシューマコンピュータ106とパブリックHTTPSサーバ702との間の接続は、コンシューマコンピュータ106とプロバイダコンピュータ102との間の接続とは異なる暗号鍵を用いる。コンシューマコンピュータ106により確立された2つの暗号化通信チャネルの内の1つが、その暗号化の危殆化のリスクがもう1つのチャネルよりも低い場合、2つのリクエストのソースIPが一致しないことの検出は、より高いセキュリティリスクを有する暗号化チャネルが危殆化する確率を増加させる。   In one implementation, the connection between the consumer computer 106 and the public HTTPS server 702 uses a different encryption key than the connection between the consumer computer 106 and the provider computer 102. If one of the two encrypted communication channels established by the consumer computer 106 has a lower risk of compromised encryption than the other channel, the detection that the source IPs of the two requests do not match is detected. Increasing the probability that an encrypted channel with a higher security risk will be compromised.

一例において、プロバイダコンピュータ102は、逆接続を提供することが可能な接続サーバ、例えばVPNサーバ104との接続を確立し、コンシューマコンピュータ106からパブリックHTTPSサーバ702へのコンテンツリクエストは、この接続サーバをバイパスして送信される一方で、コンシューマコンピュータ106からプロバイダコンピュータ102へのコンテンツリクエストは、この接続サーバを通じて送信される。この例において、プロバイダコンピュータ102がパーソナルコンピュータであり、そのプライベート暗号鍵を、パブリックHTTPSサーバ702よりもセキュアではないロケーション中に格納する場合、コンシューマコンピュータ106とプロバイダコンピュータ102との間の暗号化接続は、傍受されるリスクがより高い。   In one example, the provider computer 102 establishes a connection with a connection server capable of providing a reverse connection, such as the VPN server 104, and content requests from the consumer computer 106 to the public HTTPS server 702 bypass the connection server. On the other hand, the content request from the consumer computer 106 to the provider computer 102 is transmitted through this connection server. In this example, if the provider computer 102 is a personal computer and its private encryption key is stored in a location that is less secure than the public HTTPS server 702, the encrypted connection between the consumer computer 106 and the provider computer 102 is The risk of being intercepted is higher.

図7を参照すると、サーバ702は、URL_Aをリクエストするために用いられるコンシューマコンピュータ106のソースIPをVPNサーバ104へ送信し、VPNサーバ104は、それをURL_Bに対するリクエストのソースIPと比較する。ソースIPが異なる場合、そのことは、無許可の第三者がHTTPSのURL_Bに対応するドメイン_Bに対するプライベートSSL証明書を取得し、ドメイン_Bを自身のサーバへ指し示すために(例えば、DNSキャッシュポイズニングを通じて)DNS応答を変更し、“中間者”攻撃を実施し、すなわち、コンシューマコンピュータ106とプロバイダコンピュータ102との間の1つのHTTPS接続の代わりに、プロバイダコンピュータ102とコンシューマコンピュータ106との間に2つの別個のHTTPS接続を作り出し、それにより、それらのHTTPSトラフィックを傍受及び修正する能力を得ているリスクを増加させる。   Referring to FIG. 7, server 702 sends the source IP of consumer computer 106 used to request URL_A to VPN server 104, which compares it with the source IP of the request for URL_B. If the source IPs are different, this means that an unauthorized third party can obtain a private SSL certificate for domain_B corresponding to HTTPS URL_B and point domain_B to its server (eg, DNS cache poisoning) Modify the DNS response and perform a “man-in-the-middle” attack, ie, 2 between the provider computer 102 and the consumer computer 106 instead of one HTTPS connection between the consumer computer 106 and the provider computer 102. Create two separate HTTPS connections, thereby increasing the risk of gaining the ability to intercept and modify their HTTPS traffic.

本実施形態は、コンシューマコンピュータ106とは異なるパブリックIPアドレスを有する第三者からの妨害を検出することを支援する。   This embodiment assists in detecting interference from a third party having a different public IP address than the consumer computer 106.

一実装において、パブリックHTTPSサーバ702からの応答において参照されるコンテンツに対するリクエストが、例えば10秒よりも小さい値を有する規定のタイムインターバル内、又はその他の期間内に到達しない場合、コンシューマコンピュータ106とプロバイダコンピュータ102との間の暗号化接続のリスクが増加する。同じIPアドレスからの(複数の)リクエスト間の時間が該インターバルを超える場合、そのことは、該トラフィックを、例えば第三者の制御下にあるデータチャネルを通じてルーティングすることによって傍受するのに更なる時間を要したことを示し得る。パブリックHTTPSサーバ702からの応答において参照されるコンテンツに対するリクエストが全く到達しない場合、そのことは、コンテンツプロバイダを装いながら自身のコンテンツで応答する偽装者を示唆しうる。本実施形態は、ソースIPアドレスが変わらない場合(例えば、第三者がディープパケットインスペクションを用い、観察したパケットを危殆化したSSL証明書を用いて復号化する場合)であっても、第三者からの妨害を識別することを支援する。   In one implementation, if the request for content referenced in the response from the public HTTPS server 702 does not arrive within a defined time interval, eg, having a value less than 10 seconds, or other time period, the consumer computer 106 and the provider The risk of an encrypted connection with the computer 102 increases. If the time between requests (s) from the same IP address exceeds the interval, it is further to intercept the traffic, for example by routing through a data channel under the control of a third party. It may indicate that it took time. If no request for content referenced in the response from the public HTTPS server 702 arrives at all, this may indicate a spoofer who masquerades as a content provider and responds with his content. In this embodiment, even if the source IP address does not change (for example, when a third party uses deep packet inspection to decrypt the observed packet using a compromised SSL certificate), the third embodiment To help identify interference from the

図8A及び図8Bは図7の実装に用いられてもよい方法800を示し、ここで、第1のコンテンツリクエストを受信するサーバ(パブリックサーバ702)と第2のコンテンツリクエストを受信するサーバ(VPNサーバ104)との両者は、プロバイダコンピュータ102を無効な又は危殆化したリクエストから保護するチェックを実施する。   8A and 8B show a method 800 that may be used in the implementation of FIG. 7, where a server that receives a first content request (public server 702) and a server that receives a second content request (VPN). Both servers 104) perform checks that protect the provider computer 102 from invalid or compromised requests.

方法800は、本明細書で記述されたその他の方法と同様の方法等で、共有されるコンテンツの選択をプロバイダコンピュータ102上で受信802することを含んでもよい。プロバイダコンピュータ102は、セキュアソケットレイヤ(SSL)証明書等のセキュリティ証明書を受信804してもよい。例えば、プロバイダコンピュータ102は、URL_Bに対応するドメイン_Bに対するSSL証明書をSSL証明書プロバイダ704(図7を参照)にリクエストしてもよく、リクエストしたSSL証明書を受信してもよい。   Method 800 may include receiving 802 selection of shared content on provider computer 102, such as in a manner similar to other methods described herein. Provider computer 102 may receive 804 a security certificate, such as a secure socket layer (SSL) certificate. For example, the provider computer 102 may request an SSL certificate for the domain_B corresponding to URL_B from the SSL certificate provider 704 (see FIG. 7), and may receive the requested SSL certificate.

プロバイダコンピュータ102は更に、VPNサーバ104に接続806してもよい。プロバイダコンピュータ102は、ステップ802、804の前に、VPNサーバ104に接続806してもよい。例えば、プロバイダコンピュータ102は、VPNサーバ104を通じてSSL証明書をリクエスト及び受信804しもてよい。   Provider computer 102 may further connect 806 to VPN server 104. Provider computer 102 may connect 806 to VPN server 104 prior to steps 802, 804. For example, provider computer 102 may request and receive 804 an SSL certificate through VPN server 104.

方法800は、パブリックサーバ702からURL_Aを受信808することを含んでもよい。例えば、プロバイダコンピュータ102は、ステップ802において識別されたコンテンツと関連付けるために、ユニークなURLをリクエストしてもよい。これに応じて、パブリックサーバ702は、URL_Aを返信し、URL_Aは、プロバイダコンピュータ102によってその後受信808され、ステップ802において受信されたコンテンツとURL_Aが関連付けられてもよい。   Method 800 may include receiving 808 URL_A from public server 702. For example, provider computer 102 may request a unique URL to associate with the content identified in step 802. In response, the public server 702 may return URL_A, which is subsequently received 808 by the provider computer 102 and the content received in step 802 may be associated with URL_A.

プロバイダコンピュータ102は、URL_BがURL_Aと関連付けられることをパブリックサーバ702にその後指定810してよい。プロバイダコンピュータ102は更に、URL_A及びURL_Bに対するアクセス規則を指定してもよい。プロバイダコンピュータ102は更に、上述したメッセージングアプリケーションの何れかを用いる等して、URL_Aを含む招待を1つ以上のコンシューマコンピュータ106へ送信812してもよい。   Provider computer 102 may then specify 810 to public server 702 that URL_B is associated with URL_A. The provider computer 102 may further specify access rules for URL_A and URL_B. Provider computer 102 may further send 812 an invitation containing URL_A to one or more consumer computers 106, such as using any of the messaging applications described above.

パブリックサーバ702は、ステップ812において送信された招待を受信したコンシューマコンピュータ106等から、URL_Aに対するリクエストを受信814してもよい。パブリックサーバ702は、ステップ808において受信された又はデフォルトのアクセス規則として設定されたような1つ以上のアクセス規則をステップ816〜820に従ってその後適用してもよい。   The public server 702 may receive 814 a request for URL_A from the consumer computer 106 or the like that has received the invitation sent in step 812. The public server 702 may then apply one or more access rules, such as received in step 808 or set as a default access rule, according to steps 816-820.

例えば、URL_Aと関連付けられたURL_Bが期限切れであると判明816した場合、URL_Aに対するリクエストは無視されてもよい。具体的には、URL_Bは、ドメイン_Bに対する証明書が生成された後の一定期間後に期限切れになり得る。URL_Bは、一定設定回数、リクエスト者へ返信された後にも期限切れになり得る。これに従い、これらの期限切れ条件の内の1つ以上が満たされる場合、URL_Aを含むリクエストに応じてURL_Bが返信されないように、リクエストは、パブリックサーバ702により無視818される。   For example, if URL_B associated with URL_A is found to be expired 816, the request for URL_A may be ignored. Specifically, URL_B may expire after a certain period of time after the certificate for domain_B is generated. URL_B can also expire after being returned to the requester a certain number of times. Accordingly, if one or more of these expiration conditions are met, the request is ignored 818 by the public server 702 so that URL_B is not returned in response to a request that includes URL_A.

パブリックサーバ702は更に、URL_Bがリクエスト者によりアクセスされてもよいか否かを評価820してもよい。例えば、URL_Bに対するアクセス規則は、URL_Aに対するリクエストに応じてURL_Bを受信することを許可される1つ以上のリクエスト者に対する識別子、パスワード、ソースIPアドレス、又はその他の識別情報を指定してもよい。これに従い、リクエストが許可されたリクエスト者に対するそうした識別子を含まないと判明820した場合、リクエストは無視818されてもよい。   Public server 702 may further evaluate 820 whether URL_B may be accessed by the requester. For example, an access rule for URL_B may specify an identifier, password, source IP address, or other identification information for one or more requesters who are allowed to receive URL_B in response to a request for URL_A. Accordingly, if the request is found 820 not to contain such an identifier for the authorized requestor, the request may be ignored 818.

幾つかの実施形態において、1つ以上のアクセス規則を満たさないためリクエストが無視818された場合、それでもなお、URL_Aへのリクエストに応じて、応答がリクエスト者へ返信されてもよい。例えば、パブリックサーバ702によりURL_Aと関連付けられたコンテンツは、リクエスト者へ返信されてもよいが、URL_Bを含まなくてもよい。   In some embodiments, if a request is ignored 818 because it does not satisfy one or more access rules, a response may still be returned to the requestor in response to a request for URL_A. For example, the content associated with URL_A by the public server 702 may be returned to the requester, but may not include URL_B.

幾つかの実施形態において、パブリックサーバ702は、リクエストへの応答にけるURL_Bへのリンクを、URL_Bと関連付けられたコンテンツは入手不可であるとコンシューマに通知するメッセージに置き換えてよい。   In some embodiments, public server 702 may replace the link to URL_B in response to the request with a message notifying the consumer that the content associated with URL_B is not available.

幾つかの実施形態において、リクエストが無視818された場合、パブリックサーバ702は、リクエスト者への応答に、コンシューマがプロバイダのコンテンツにアクセスすることを可能にするインターフェース要素を含めてもよく、例えば、許可資格を提供する、又はリクエストされたコンテンツに対する最大アクセス回数の増加をリクエストするメッセージをプロバイダコンピュータ102へ送信してもよい。   In some embodiments, if the request is ignored 818, the public server 702 may include an interface element in the response to the requester that allows the consumer to access the provider's content, for example, A message may be sent to the provider computer 102 that provides authorization credentials or requests an increase in the maximum number of accesses to the requested content.

別の実施形態において、パブリックサーバ702は、リクエストが無視818されるべきであると判定した場合、通告されたURL(URL_A)により参照されるコンテンツを、プロバイダのコンテンツ(URL_B)へのリンクと共に返信するが、プロバイダのコンテンツを、コンシューマによる観察から隠匿する。例えば、パブリックサーバは、URL_BからロードされるHTML IFrameの可視性属性を、値“隠匿”に設定してもよい。本実施形態において、VPNサーバ104は、ステップ814において受信されたリクエストのソースIPについて通知され、それをURL_Bに対する第2のリクエストのソースIPと比較できるが、リクエスト者はリクエストしたコンテンツを閲覧することはできない。   In another embodiment, if the public server 702 determines that the request should be ignored 818, it returns the content referenced by the advertised URL (URL_A) with a link to the provider's content (URL_B). However, the provider's content is hidden from observation by consumers. For example, the public server may set the visibility attribute of the HTML IF frame loaded from URL_B to the value “hidden”. In this embodiment, the VPN server 104 is notified about the source IP of the request received at step 814 and can compare it with the source IP of the second request for URL_B, but the requester can view the requested content. I can't.

別の実施形態において、パブリックサーバ702は、URL_Aに対するリクエストへの応答において、プロバイダのコンテンツへのリンク(例えばURL_B)を、同じドメインからアクセス可能な別のリンクに変更してもよく、返信されたコンテンツが表示されないことをリクエスト者に知らせてもよい。例えば、パブリックサーバは、表示されるべきコンテンツに対するURL_B="HTTPs://mydomain.com/image20.jpg"を、又は、隠匿されるべきコンテンツに対するURL_B=HTTPs://mydomain.com/empty.jpg?file=image20.jpg&count=3&action=hideを返信してもよい(リクエストされたファイルの回数が規定の閾値を超えることをパーソナルサーバに通知しつつ、空の画像をリクエストし、パブリックサーバはコンシューマからデータを隠匿する)。   In another embodiment, the public server 702 may change the link to the provider's content (eg, URL_B) to another link accessible from the same domain in response to the request for URL_A, and returned The requester may be informed that content is not displayed. For example, the public server may set URL_B = “HTTPs://mydomain.com/image20.jpg” for the content to be displayed, or URL_B = HTTPs: //mydomain.for the content to be hidden. com / empty. jpg? file = image20. jpg & count = 3 & action = hide may be returned (notifying the personal server that the number of requested files exceeds the specified threshold, requesting an empty image, and the public server conceals data from the consumer) .

リクエストが1つ以上のアクセス規則を満たすと判明816、820した場合、その後方法800は、パブリックサーバ702によって、URL_Aと関連付けられたコンテンツをリクエスト者へ返信822することを含んでもよい。具体的には、URL_Aに対するコンテンツはURL_Bを含んでもよい。パブリックサーバ702は更に、URL_Bに対するリクエストをリクエスト者から受信したことを示すメッセージをVPNサーバ104へ送信824してもよく、該メッセージは、リクエスト者のソースIPアドレスと、場合によってはその他の識別情報とを含んでもよい。幾つかの実施形態において、パブリックサーバ702がリクエストへの応答においてURL_Bをリクエスト者へ返信しない場合、パブリックサーバ702は、VPNサーバ104又はその他のモジュールにリクエストを通知しない。   If the request is found 816, 820 to satisfy one or more access rules, then the method 800 may include, via the public server 702, returning 822 the content associated with URL_A to the requestor. Specifically, the content for URL_A may include URL_B. The public server 702 may further send 824 a message to the VPN server 104 indicating that a request for URL_B has been received from the requester, the message including the requester's source IP address and possibly other identifying information. And may be included. In some embodiments, if the public server 702 does not return URL_B to the requestor in response to the request, the public server 702 does not notify the VPN server 104 or other modules of the request.

図8Bに続くと、方法800は、プロバイダコンピュータ102にアドレス指定されたURL_Bに対するリクエストをVPNサーバ104が受信することを続けてもよい。このリクエストを受信することに応じて、VPNサーバ104は、URL_Bに対するリクエストのソースIPが、ステップ814において受信されたURL_Aに対するリクエストに用いられたものと同じか否かを評価828する。ソースIPが一致しないと判明した場合、VPNサーバは、それらの内の少なくとも1つを疑わしいとマーク830してもよく、そのソースIPからの任意のリクエストを、セキュリティ危殆化を示唆するものとして扱う。VPNサーバ104により実施されたチェックが、セキュリティリスクが規定の閾値を超えて増加していることを示す場合、VPNサーバ104は、URL_Bを割り当てられたプロバイダコンピュータ102に、ドメイン_Bが危殆化する可能性があることを通知832し、URL_Bに対するリクエストがプロバイダコンピュータ102に到達することをブロック834してもよい。ステップ832の通知に応じて、プロバイダコンピュータは、ドメイン_B及びそのSSL証明書を別のドメイン及び証明書に置き換えてもよい。具体的には、新たなドメイン及び証明書は、元の通告されたURL(URL_A)にマッピングされてもよく、パブリックサーバ702は、URL_Bに対するのと同様の方法で、そのマッピングと1つ以上のアクセス規則とを通知されてもよい。このようにして、コンシューマコンピュータ106は、新たなマッピングにもかかわらず、URL_Aを用いて、URL_Aと関連付けられたコンテンツに依然としてアクセスできる。   Continuing with FIG. 8B, the method 800 may continue with the VPN server 104 receiving a request for URL_B addressed to the provider computer 102. In response to receiving this request, VPN server 104 evaluates 828 whether the source IP of the request for URL_B is the same as that used for the request for URL_A received at step 814. If the source IP is found not to match, the VPN server may mark 830 at least one of them as suspicious and treat any request from that source IP as suggesting a security compromise. . If the check performed by the VPN server 104 indicates that the security risk has increased beyond a specified threshold, the VPN server 104 may compromise domain_B to the provider computer 102 assigned URL_B. May be notified 832 and a request for URL_B reaching the provider computer 102 may be block 834. In response to the notification in step 832, the provider computer may replace domain_B and its SSL certificate with another domain and certificate. In particular, the new domain and certificate may be mapped to the original advertised URL (URL_A), and the public server 702 can map the mapping and one or more in the same way as for URL_B. The access rule may be notified. In this way, consumer computer 106 can still access content associated with URL_A using URL_A, despite the new mapping.

幾つかの実施形態において、ソースIPアドレスが一致しないとの判定828は、ソースIPアドレスの一方又は両方を、疑わしいとして、規定の時間の間マークする。幾つかの実施形態において、セキュリティリスクは、時間と共に累計してよい。例えば、URL_A及びURL_Bに対するリクエストのソースIPアドレスが一致しないと判定する度に、URL_Bのセキュリティリスクはインクリメントされてもよい。該セキュリティリスクが閾値条件を超えると、URL_Bは危殆化したと判定され、ステップ830〜836が実施されてもよい。   In some embodiments, the determination 828 that the source IP addresses do not match marks one or both of the source IP addresses as suspicious for a specified time. In some embodiments, security risks may accumulate over time. For example, the security risk of URL_B may be incremented each time it is determined that the source IP addresses of requests for URL_A and URL_B do not match. If the security risk exceeds the threshold condition, it is determined that URL_B has been compromised, and steps 830 to 836 may be performed.

幾つかの実施形態において、プロバイダコンピュータ102との暗号化接続が危殆化するセキュリティリスクは、相互に異なるURL_Aに対するリクエスト中の2つ以上のソースIPをパブリックサーバ702により通知された後に、同じ第1のソースIPがURL_Bに対する2つ以上のリクエスト中に含まれている場合、より大きな量で増加する。   In some embodiments, the security risk that the encrypted connection with the provider computer 102 is compromised is the same first after the public server 702 is notified of two or more source IPs in a request for different URL_A. Increase in a larger amount if the source IP of the same is included in more than one request for URL_B.

ソースIPが一致すると判明828し、ステップ826で受信されたリクエストのソースIPが、ステップ828でのチェックに以前に失敗(fail)していないと判明838した場合、その後リクエストは、プロバイダコンピュータ102へ転送840される。プロバイダコンピュータは、リクエスト者への暗号化HTTPS接続をその後確立し、URL_Bと関連付けられたコンテンツを、該暗号化通信を経由してリクエスト者に提供842する。ステップ826で受信したリクエストのソースIPが、ステップ826でのチェックに以前に失敗していると判明838した場合、リクエストはブロック834されてもよい。   If the source IP is found to match 828 and the source IP of the request received at step 826 is found 838 that the check at step 828 has not previously failed 838, then the request is sent to the provider computer 102. Transfer 840 is performed. The provider computer then establishes an encrypted HTTPS connection to the requester and provides 842 content associated with URL_B to the requester via the encrypted communication. If the source IP of the request received at step 826 is found 838 that the check at step 826 has previously failed, the request may be blocked 834.

図7のシステム並びに図8A及び図8Bの方法は、リクエストされた異なるドメインに対するソースIPを比較することによって、パーソナルコンテンツと関連付けられた危殆化したドメインの検出を改善する。図7のシステム並びに図8A及び図8Bの方法は、コンシューマコンピュータ106とプロバイダコンピュータ102との間にエンドツーエンドの暗号化通信チャネルを確立することなく実施されてもよく、すなわち、ソースIPアドレスの比較は、コンピュータ102、106間の暗号化接続がなくても、未許可の行為を検出し得る。   The system of FIG. 7 and the method of FIGS. 8A and 8B improve detection of compromised domains associated with personal content by comparing source IPs for different requested domains. The system of FIG. 7 and the method of FIGS. 8A and 8B may be implemented without establishing an end-to-end encrypted communication channel between the consumer computer 106 and the provider computer 102, i.e., of the source IP address. The comparison can detect unauthorized actions without an encrypted connection between the computers 102, 106.

図9は、複数のプロバイダコンピュータ102a、102bからのパーソナルコンテンツに対するHTTPSリクエストが複数のプロトコル変換プロキシ116a、116bへ送信され、それらをHTTPリクエストに変換し、それらをVPNサーバ104a、104bにより確立された逆接続を通じてコンテンツプロバイダへ転送する実施形態を示す。この例において、各プロバイダコンピュータ102a、102bは、異なるドメイン(例えば、プロバイダコンピュータ102a、102bそれぞれに対するドメイン_B1、ドメイン_B2)を用いる。各プロトコル変換プロキシ116a、116bは、対応するドメインに対するSSL証明書を、SSL証明書プロバイダ704から取得する(他の例では、以前に取得された証明書がセキュアなストレージにリクエストされてもよい)。   FIG. 9 shows that HTTPS requests for personal content from multiple provider computers 102a, 102b are sent to multiple protocol conversion proxies 116a, 116b, convert them to HTTP requests, and are established by the VPN servers 104a, 104b. Fig. 4 illustrates an embodiment for forwarding to a content provider through reverse connection. In this example, each provider computer 102a, 102b uses a different domain (eg, domain_B1, domain_B2 for provider computer 102a, 102b, respectively). Each protocol conversion proxy 116a, 116b obtains an SSL certificate for the corresponding domain from the SSL certificate provider 704 (in other examples, a previously obtained certificate may be requested to secure storage). .

プロバイダコンピュータ102a、102bは、URLの入手可能性を通告する。例えば、プロバイダコンピュータ102aは、メッセージングアプリケーション124、126を用いる等によって、URL_A1と関連付けられたコンテンツをコンシューマコンピュータ106に通告してもよい。URL_Aのコンテンツは、パブリックHTTPSサーバ702により提供されてもよく、パブリックHTTPSサーバ702は、異なる2つのパーソナルコンテンツプロバイダからのコンテンツへの参照(プロバイダコンピュータ102a、102bそれぞれに対しするURL_B1、URL_B2)を含む。コンテンツは、例えば、HTMLコンテンツ中に埋め込まれた異なるソースURLを有する2つの画像又はIFrameであってもよい。パブリックサーバ702は、URL_Aに対するリクエスト後に返信されたドメインを提供する各プロトコル変換プロキシに、通告されたURL(例えば、URL_A)をリクエストするコンシューマコンピュータ106のソースIPを報告する。   The provider computers 102a, 102b notify the availability of the URL. For example, provider computer 102a may notify consumer computer 106 of content associated with URL_A1, such as by using messaging applications 124, 126. The content of URL_A may be provided by public HTTPS server 702, which includes references to content from two different personal content providers (URL_B1, URL_B2 for provider computers 102a and 102b, respectively). . The content may be, for example, two images or IF frames with different source URLs embedded in the HTML content. The public server 702 reports the source IP of the consumer computer 106 that requests the notified URL (for example, URL_A) to each protocol conversion proxy that provides the domain returned after the request for URL_A.

コンシューマコンピュータ106がURL_B1及びURL_B2に対するリクエストを発行した後、対応する変換プロキシ116a、116bは、URL_B1及びURL_B2に対するリクエストのソースIPを、URL_Aに対するリクエスト中に含まれるものとしてパブリックサーバ702により報告されたソースIPとそれぞれ比較する。ソースIPが一致しない、又はプライベートコンテンツに対するリクエストが到達しない場合、対応するドメイン(ドメイン_B1又はドメイン_B2)がそれぞれ危殆するリスクが増加する。   After the consumer computer 106 issues a request for URL_B1 and URL_B2, the corresponding translation proxy 116a, 116b reports the source IP of the request for URL_B1 and URL_B2 as reported by the public server 702 as included in the request for URL_A. Compare with each IP. If the source IP does not match or the request for private content does not arrive, the risk that the corresponding domain (domain_B1 or domain_B2) is compromised respectively increases.

プロトコル変換プロキシ116a、116bが、信頼されない第三者により所有されるコロケーションに設置される場合、第三者が十分な保護手段を実施しないと、そのプライベートSSL証明書のセキュリティは危殆化し得る。セキュリティリスクの増加に応じて、プロトコル変換プロキシ116a、116bは、危殆化したドメインに対する代替物を選択し、SSL証明書プロバイダ704から別のSSL証明書を請求してもよい。別例において、サービスプロバイダは、別のプライベートSSL証明書をリクエストする前に、プロトコル変換プロキシ116a、116bを(場合によっては、対応するVPNサーバ104a、104bと共に)別のコロケーションへ移動する決定をしてもよい。   If the protocol conversion proxy 116a, 116b is installed in a collocation owned by an untrusted third party, the security of the private SSL certificate can be compromised if the third party does not implement sufficient protection. As the security risk increases, the protocol translation proxy 116a, 116b may select an alternative to the compromised domain and request another SSL certificate from the SSL certificate provider 704. In another example, the service provider decides to move the protocol conversion proxy 116a, 116b (possibly with the corresponding VPN server 104a, 104b) to another collocation before requesting another private SSL certificate. May be.

幾つかの実施形態において、プロバイダコンピュータ102a、102bの各々は、そのコンテンツに対するアクセス規則を指定する。そうした実施形態では、規則の各セットは2つの部分:VPNサーバ104a、104bにより施行されるプライベート規則(例えば、同時に接続されるユーザの数、又は最大帯域幅)及びパブリックHTTPSサーバ702により施行されるパブリック規則(例えば、同一ユーザからのアクセスリクエストの上限数、又は有効期間)に分けられてもよい。各プロバイダコンピュータ102a、102bは、規則をアクセスコントローラ302に報告し、アクセスコントローラ302は、それらを適切なVPNサーバ104a、104b及びパブリックHTTPSサーバ702へ転送する。   In some embodiments, each provider computer 102a, 102b specifies access rules for its content. In such an embodiment, each set of rules is enforced by two parts: private rules enforced by VPN servers 104a, 104b (eg, number of users connected simultaneously, or maximum bandwidth) and public HTTPS server 702. It may be divided into public rules (for example, the upper limit number of access requests from the same user or the validity period). Each provider computer 102a, 102b reports the rules to the access controller 302, which forwards them to the appropriate VPN server 104a, 104b and public HTTPS server 702.

図8及び図9に図示される実施形態において、パブリックサーバ702は、同一ユーザからのリクエストの数、及びコンテンツが期限切れになるまでの時間等の、パーソナルコンテンツへの以前のリクエストの履歴を保持する。この履歴は、パーソナルコンテンツの詳細について認識することなく、アクセスされ得る。例えば、パブリックサーバ702は、パーソナルコンテンツを処理するサーバ(例えば、VPNサーバ104a、104b、プロトコル変換プロキシ116a、116b等)には入手不可な自身のプライベートSSL証明書を有する第三者アグリゲータに所属してもよい。従って、たとえこの証明書が危殆化したとしてもパーソナルコンテンツのセキュリティには影響を与えない。   In the embodiment illustrated in FIGS. 8 and 9, the public server 702 maintains a history of previous requests for personal content, such as the number of requests from the same user and the time until the content expires. . This history can be accessed without recognizing the details of the personal content. For example, the public server 702 belongs to a third-party aggregator having its own private SSL certificate that is not available to servers that process personal content (for example, the VPN servers 104a and 104b and the protocol conversion proxies 116a and 116b). May be. Therefore, even if this certificate is compromised, it does not affect the security of personal content.

図10は、コンシューマコンピュータ106上の第三者アグリゲータ、例えばプライベートソーシャルネットワークにより提示されるコンテンツを含む例示的インターフェース1000を図示し、ここで、異なるプロバイダコンピュータ102a、102bからのパーソナルコンテンツアイテムへの参照は、パブリックサーバ702により提供される親コンテンツ内で表示される。この例において、パブリックサーバ702は、何れのコンテンツを表示するかを決定し、パブリックアクセス規則を満たさないコンテンツを隠匿又はブロックする。この例においては、許可されたコンテンツのみが表示される(“現在シェア中”)。別の実施形態においては、パブリックサーバ702は、ブロックされたコンテンツに対するプレースホルダ(“後程訪問してまた閲覧して下さい”)を含んでよい。   FIG. 10 illustrates an exemplary interface 1000 that includes content presented by a third party aggregator, eg, a private social network, on a consumer computer 106, where references to personal content items from different provider computers 102a, 102b. Are displayed in the parent content provided by the public server 702. In this example, the public server 702 determines which content is to be displayed, and conceals or blocks content that does not satisfy the public access rule. In this example, only permitted content is displayed (“currently sharing”). In another embodiment, public server 702 may include a placeholder for “blocked content” (“Visit later and view again”).

何れのコンテンツを表示するかを決定することに加え、この例では、パブリックサーバ702は、パーソナルコンテンツアイテムについてのメタデータをインターフェース1000中に表示してもよく、このメタデータを更新するためのインターフェース:コンテンツが提供1002されてからの時間、フィードバック統計、及びユーザインターフェース1004、1006、この閲覧後にコンテンツが隠匿されるという通知、及びこの規則を変更する能力1008、1010を提供する。このメタデータは、ユーザにより如何なるコンテンツが実際に表示されるか認識することなしに、パブリックサーバ702によって提供される。コンシューマコンピュータ106のユーザは、第三者アグリゲータの同意なしに、それを変更又は削除してもよい。   In addition to determining what content to display, in this example, public server 702 may display metadata about personal content items in interface 1000 and an interface for updating this metadata. Provides time since content was provided 1002, feedback statistics, and user interfaces 1004, 1006, notification that content is concealed after this browsing, and the ability to change this rule 1008, 1010. This metadata is provided by the public server 702 without knowing what content is actually displayed by the user. The user of the consumer computer 106 may change or delete it without the consent of the third party aggregator.

パーソナルコンテンツプロバイダは、パブリックサーバの認識なく、自身の統計を収集でき、又は友人と通信できる。例えば、パーソナルコンテンツプロバイダは、ユーザインターフェース要素1012等の特定のユーザフィードバックを請求でき、又は、インターフェース要素1014、1016を用いてプライベートにテキストメッセージを私的に交換できる。   Personal content providers can collect their statistics or communicate with friends without the knowledge of the public server. For example, the personal content provider can request specific user feedback, such as user interface element 1012, or privately exchange text messages privately using interface elements 1014, 1016.

図示される実施形態において、コンシューマは、自身のパーソナルコンテンツサーバを追加できる。例えば、ボタン1018をクリックした後、パーソナルコンテンツの新たなプロバイダは、パブリックサーバからパブリックURL(URL_A)を受信し、パーソナルコンテンツ(ドメイン_B)と関連付けられたドメインに対するSSL証明書を取得し、パーソナルコンテンツ(URL_B)を参照する置き換え可能なURLを、パブリックサーバ702に提供してもよい。ボタン1010は、興味のあるパーソナルコンテンツを参照するパブリックURLの他のコンシューマへの通告を、例えば電子メール、テキストメッセージ、又はその他の種類のメッセージを送信することによって発動してもよい。   In the illustrated embodiment, consumers can add their own personal content servers. For example, after clicking button 1018, a new provider of personal content receives a public URL (URL_A) from a public server, obtains an SSL certificate for the domain associated with personal content (domain_B), and personal content. A replaceable URL referring to (URL_B) may be provided to the public server 702. Button 1010 may trigger a notification to other consumers of a public URL that references personal content of interest, for example by sending an email, text message, or other type of message.

図11は、本明細書に開示されるコンピュータ及びサーバの何れかを具体化してもよい例示的コンピューティング装置11を説明するブロック図である。コンピューティング装置1100は、本明細書に論じられる手順等、様々な手順を実施するために用いられてもよい。コンピューティング装置1100は、サーバ、クライアント、又はその他の任意のコンピューティングエンティティとして機能できる。コンピューティング装置は、本明細書で論じられるような様々なモニタリング機能を実行でき、本明細書に記述されるアプリケーションプログラム等の、1つ以上のアプリケーションプログラムを実行できる。コンピューティング装置1100は、デスクトップコンピュータ、ノートブックコンピュータ、サーバコンピュータ、ハンドヘルドコンピュータ、及びタブレットコンピュータ等の多様なコンピューティング装置の内の何れかであり得る。   FIG. 11 is a block diagram illustrating an exemplary computing device 11 that may embody any of the computers and servers disclosed herein. The computing device 1100 may be used to perform various procedures, such as the procedures discussed herein. The computing device 1100 can function as a server, client, or any other computing entity. The computing device can perform various monitoring functions as discussed herein and can execute one or more application programs, such as the application programs described herein. The computing device 1100 can be any of a variety of computing devices such as desktop computers, notebook computers, server computers, handheld computers, and tablet computers.

コンピューティング装置1100は、1つ以上のプロセッサ1102、1つ以上の記憶装置1104、1つ以上のインターフェース1106、1つ以上の大容量記憶装置1108、1つ以上の入出力(I/O)装置1110、及び表示装置1130を含み、これらの全てはバス1112に結合される。プロセッサ1102は、記憶装置1104及び/又は大容量記憶装置1108中に格納された命令を実行する1つ以上のプロセッサ又はコントローラを含む。プロセッサ1102は、キャッシュメモリ等の、様々な種類のコンピュータ可読媒体をも含んでもよい。   The computing device 1100 includes one or more processors 1102, one or more storage devices 1104, one or more interfaces 1106, one or more mass storage devices 1108, one or more input / output (I / O) devices. 1110 and display device 1130, all of which are coupled to bus 1112. The processor 1102 includes one or more processors or controllers that execute instructions stored in the storage device 1104 and / or the mass storage device 1108. The processor 1102 may also include various types of computer readable media, such as cache memory.

記憶装置1304は、揮発性メモリ(例えばランダムアクセスメモリ(RAM)1114)及び/又は不揮発性メモリ(例えば読み出し専用メモリ(ROM)1116)等の様々なコンピュータ可読媒体を含む。記憶装置1304は、フラッシュメモリ等の書き換え可能なROMをも含んでもよい。   Storage device 1304 includes a variety of computer readable media such as volatile memory (eg, random access memory (RAM) 1114) and / or non-volatile memory (eg, read only memory (ROM) 1116). The storage device 1304 may also include a rewritable ROM such as a flash memory.

大容量記憶装置1108は、磁気テープ、磁気ディスク、光学ディスク、及び固体メモリ(例えばフラッシュメモリ)等の様々なコンピュータ可読媒体を含む。図11に示されるように、1つの具体的な大容量記憶装置はハードディスクドライブ1124である。大容量記憶装置1108には、様々なコンピュータ可読媒体に対して読み取り/書き込みを可能にするための様々なドライブも含まれてもよい。大容量記憶装置1108は、可換型媒体1126及び/又は固定型媒体を含む。   Mass storage device 1108 includes a variety of computer readable media such as magnetic tape, magnetic disks, optical disks, and solid state memory (eg, flash memory). As shown in FIG. 11, one specific mass storage device is a hard disk drive 1124. The mass storage device 1108 may also include various drives to enable read / write to various computer readable media. Mass storage device 1108 includes replaceable media 1126 and / or fixed media.

入出力装置1110は、データ及び/又はその他の情報がコンピューティング装置1100に入力又はコンピューティング装置1100から検索されることを可能にする様々な装置を含む。例示的な入出力装置1110は、カーソル制御装置、キーボード、キーパッド、マイク、モニタ又その他の表示装置、スピーカ、プリンタ、ネットワークインターフェースカード、モデム、レンズ、並びにCCD又はその他の画像取得装置等を含む。   Input / output device 1110 includes a variety of devices that allow data and / or other information to be entered into or retrieved from computing device 1100. Exemplary input / output devices 1110 include cursor control devices, keyboards, keypads, microphones, monitors and other display devices, speakers, printers, network interface cards, modems, lenses, CCDs or other image acquisition devices, and the like. .

表示装置1130は、コンピューティング装置1100の1人以上のユーザに情報を表示できる任意の種類の装置を含む。表示装置1130の例は、モニタ、表示端末、及び映像投影装置等を含む。   Display device 1130 includes any type of device capable of displaying information to one or more users of computing device 1100. Examples of the display device 1130 include a monitor, a display terminal, and a video projection device.

インターフェース1106は、コンピューティング装置1100が他のシステム、装置、又はコンピューティング環境と相互作用することを可能にする様々なインターフェースを含む。例示的なインターフェース1106は、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、無線ネットワーク、インターネットへのインターフェース等の、任意の数の異なるネットワークインターフェース1120を含む。その他のインターフェースは、ユーザインターフェース1118及び周辺装置インターフェース1122を含む。インターフェース1106は、1つ以上のユーザインターフェース要素1118をも含んでもよい。インターフェース1106は、プリンタ、ポインティング装置(マウス、トラックパッド、等)、及びキーボード等に対するインターフェース等の、1つ以上の周辺インターフェースを含む。   Interface 1106 includes various interfaces that allow computing device 1100 to interact with other systems, devices, or computing environments. Exemplary interfaces 1106 include any number of different network interfaces 1120, such as a local area network (LAN), a wide area network (WAN), a wireless network, an interface to the Internet, and the like. Other interfaces include a user interface 1118 and a peripheral device interface 1122. The interface 1106 may also include one or more user interface elements 1118. The interface 1106 includes one or more peripheral interfaces, such as an interface to a printer, pointing device (mouse, trackpad, etc.), keyboard, and the like.

バス1112は、プロセッサ1102、記憶装置1104、インターフェース1106、大容量記憶装置1108、及び入出力装置1110が、バス1112に結合されたその他の装置又は構成要素と共に、相互に通信することを可能にする。バス1112は、システムバス、PCIバス、IEEE 1194バス、及びUSBバス等の幾つかの種類のバス構成の内の1つ以上を表す。   Bus 1112 allows processor 1102, storage device 1104, interface 1106, mass storage device 1108, and input / output device 1110 to communicate with each other, along with other devices or components coupled to bus 1112. . Bus 1112 represents one or more of several types of bus configurations, such as a system bus, a PCI bus, an IEEE 1194 bus, and a USB bus.

説明の目的のため、プログラム及びその他の実行可能なプログラム構成要素は、個別のブロックとして本明細書で示されるが、そうしたプログラム及び構成要素は、コンピューティング装置1100の異なるストレージ要素中に様々な時に存在してもよく、プロセッサ1102により実行されてもよいことが理解される。或いは、本明細書に記述されるシステム及び手順は、ハードウェア、又はハードウェア、ソフトウェア、及び/若しくはファームウェアの組み合わせにより実装され得る。例えば、1つ以上の特定用途集積回路(ASIC)は、本明細書に記述される1つ以上のシステム及び手順を実行するようプログラムできる。   For purposes of explanation, programs and other executable program components are shown herein as separate blocks, but such programs and components may be present at different times in different storage elements of computing device 1100. It is understood that it may exist and may be executed by the processor 1102. Alternatively, the systems and procedures described herein may be implemented by hardware or a combination of hardware, software, and / or firmware. For example, one or more application specific integrated circuits (ASICs) can be programmed to perform one or more systems and procedures described herein.

請求の範囲:   The scope of the claims:

Claims (60)

第1のコンピュータ上のコンテンツへのアクセスを提供するための方法であって、
第1のコンピュータへの逆接続を提供することが可能なサーバシステムによって、前記第1のコンピュータと暗号化接続を確立することと、
前記サーバシステムによって、前記第1のコンピュータ上の前記コンテンツに対するリクエストであって、第1の種類の通信プロトコルを用いて実施される前記リクエストを第2のコンピュータから受信することと、
前記サーバシステムによって、プロトコル変換モジュールを用いて、前記コンテンツに対する前記リクエストを第2の種類の通信プロトコルを有する変換済みリクエストに変換することとであって、ここで、前記第1の種類の通信プロトコルは、前記プロトコル変換モジュールが入手可能な暗号鍵を用いて、交換されるデータを少なくとも部分的に暗号化し、一方、前記第2の種類の通信プロトコルは、コンテンツに対する前記リクエストの対応する部分が前記第1の種類の通信プロトコルによって暗号化される前記変換済みリクエストの少なくとも幾つかの部分を暗号化しないことと
を含む、方法。
A method for providing access to content on a first computer comprising:
Establishing an encrypted connection with the first computer by a server system capable of providing a reverse connection to the first computer;
Receiving by the server system a request for the content on the first computer from a second computer that is implemented using a first type of communication protocol;
The server system using a protocol conversion module to convert the request for the content into a converted request having a second type of communication protocol, wherein the first type of communication protocol Encrypts the data to be exchanged at least partially using an encryption key available to the protocol conversion module, while the second type of communication protocol allows the corresponding part of the request for content to be Not encrypting at least some portions of the transformed request that are encrypted by a first type of communication protocol.
前記第1のコンピュータへの同時接続の数が閾値よりも小さいと判定することに応じてのみ、前記変換済みリクエストを前記第1のコンピュータへ送信することを更に含む、請求項1に記載の方法。   The method of claim 1, further comprising: transmitting the converted request to the first computer only in response to determining that the number of simultaneous connections to the first computer is less than a threshold. . 前記第1の種類の通信プロトコルは、ハイパーテキストトランスファープロトコルセキュア(HTTPS)である、請求項1に記載の方法。   The method of claim 1, wherein the first type of communication protocol is Hypertext Transfer Protocol Secure (HTTPS). 前記第2の種類のプロトコルは、ハイパーテキストトランスファープロトコル(HTTP)である一方で、前記第1の種類の通信プロトコルは、HTTPSである、請求項2に記載の方法。   The method of claim 2, wherein the second type of protocol is a hypertext transfer protocol (HTTP), while the first type of communication protocol is HTTPS. 前記暗号化接続は、トランスポートレベルトンネルである、請求項4に記載の方法。   The method of claim 4, wherein the encrypted connection is a transport level tunnel. 前記プロトコル変換モジュールは、HTTPS−to−HTTPプロキシである、請求項4に記載の方法。   The method of claim 4, wherein the protocol conversion module is an HTTPS-to-HTTP proxy. 前記サーバシステムによって、前記第1のコンピュータ上の前記コンテンツの入手可能性をルーティングモジュールに報告することと、
前記ルーティングモジュールによって、異なる複数のコンピュータ上のコンテンツの入手可能性の報告を複数の中間サーバから受信することと、
前記ルーティングモジュールによって、前記第1のコンピュータ上の前記コンテンツに対する前記リクエストを前記第2のコンピュータから受信することと、
前記ルーティングモジュールによって、前記第1のコンピュータ上の前記コンテンツに対する前記リクエストを前記サーバシステムにルーティングすることと
を更に含む、請求項1に記載の方法。
Reporting the availability of the content on the first computer to the routing module by the server system;
Receiving, by the routing module, reports of availability of content on different computers from a plurality of intermediate servers;
Receiving the request for the content on the first computer from the second computer by the routing module;
The method of claim 1, further comprising routing the request for the content on the first computer to the server system by the routing module.
前記サーバシステム及びルーティングモジュールは同じローカルネットワーク中にある、請求項7に記載の方法。   The method of claim 7, wherein the server system and the routing module are in the same local network. 前記サーバシステムはVPNサーバ及びプロトコル変換サーバを含み、前記VPNサーバは前記第1のコンピュータとの前記暗号化接続の確立を実施し、前記プロトコル変換サーバは前記プロトコル変換モジュールを実装し、前記VPNサーバ及び前記プロトコル変換サーバは同じローカルコンピュータ中にある、請求項7に記載の方法。   The server system includes a VPN server and a protocol conversion server, the VPN server establishes the encrypted connection with the first computer, the protocol conversion server implements the protocol conversion module, and the VPN server And the protocol conversion server is in the same local computer. 前記複数の中間サーバの内の少なくとも1つの中間サーバは、前記同じローカルネットワークとは異なるローカルネットワーク中にある、請求項9に記載の方法。   The method of claim 9, wherein at least one intermediate server of the plurality of intermediate servers is in a local network different from the same local network. パーソナルコンピュータ上のコンテンツへのアクセスを提供するための方法であって、
前記サーバシステムによって、投稿ユニフォームリソースロケータ(URL)を含み前記パーソナルコンピュータ上のコンテンツを参照する投稿メッセージを前記パーソナルコンピュータから受信することと、
前記サーバシステムによって、前記投稿URLを含みハイパーテキストトランスファープロトコルセキュア(HTTPS)リクエストフォーマットを有するクエストメッセージをリクエスト者コンピュータから受信することと、
前記サーバシステムによって、前記パーソナルコンピュータへの仮想プライベートネットワーク(VPN)トンネルを確立することと、
前記サーバシステムによって、前記リクエストメッセージを、前記投稿URLを含みハイパーテキストトランスファープロトコル(HTTP)リクエストフォーマットを有する変換済みメッセージに変換することと、
前記サーバシステムによって、前記変換済みメッセージを前記VPNトンネル内で前記パーソナルコンピュータへ送信することと
を含む、方法。
A method for providing access to content on a personal computer, comprising:
Receiving a posting message from the personal computer that includes a posting uniform resource locator (URL) by the server system and refers to content on the personal computer;
Receiving a quest message from the requester computer by the server system having the post URL and having a hypertext transfer protocol secure (HTTPS) request format;
Establishing a virtual private network (VPN) tunnel to the personal computer by the server system;
Converting the request message by the server system into a converted message including the posting URL and having a hypertext transfer protocol (HTTP) request format;
Sending by the server system the converted message to the personal computer within the VPN tunnel.
前記サーバシステムによって、前記変換済みメッセージへの応答であって、HTTP応答フォーマットを有する前記応答を前記パーソナルコンピュータから受信することと、
前記サーバシステムによって、前記応答を、HTTPS応答フォーマットを有する変換済み応答に変換することと、
前記サーバシステムによって、前記変換済み応答を前記リクエスト者コンピュータへ送信することと
を更に含む、請求項11に記載の方法。
Receiving from the personal computer a response to the converted message by the server system, the response having an HTTP response format;
Converting the response into a translated response having an HTTPS response format by the server system;
The method of claim 11, further comprising: sending by the server system the transformed response to the requester computer.
前記サーバシステムは、ローカルネットワーク内に各々設置された、プロトコル変換プロキシコンピュータ及びVPNサーバコンピュータを含み、
前記リクエストメッセージを前記変換済みメッセージに変換することは、前記プロトコル変換プロキシ(PCP)コンピュータによって実施され、
前記パーソナルコンピュータへの前記VPNトンネルを確立することは、前記VPNサーバコンピュータによって実施され、
前記方法は、
前記PCPによって、前記変換済みメッセージを前記VPNサーバコンピュータへ送信することと、
前記VPNサーバによって、前記変換済みメッセージを前記VPNトンネルを通じて前記パーソナルコンピュータへ転送することと
を更に含む、請求項12に記載の方法。
The server system includes a protocol conversion proxy computer and a VPN server computer, each installed in a local network,
Converting the request message to the converted message is performed by the protocol conversion proxy (PCP) computer;
Establishing the VPN tunnel to the personal computer is performed by the VPN server computer;
The method
Sending the converted message to the VPN server computer by the PCP;
13. The method of claim 12, further comprising: forwarding the converted message to the personal computer through the VPN tunnel by the VPN server.
前記応答を前記変換済み応答に変換することは、前記PCPコンピュータによって実施され、
前記方法は、
前記VPNサーバコンピュータによって、前記応答を前記PCPコンピュータへ転送することと、
前記PCPコンピュータによって、前記変換済み応答を前記リクエスト者コンピュータへ送信することと
ことを更に含む、請求項13に記載の方法。
Converting the response to the converted response is performed by the PCP computer;
The method
Forwarding the response to the PCP computer by the VPN server computer;
14. The method of claim 13, further comprising: sending by the PCP computer the converted response to the requester computer.
前記サーバシステムによって、前記投稿URLをルーティングモジュールに報告することと、
前記ルーティングモジュールによって、複数の他のコンピュータ上のコンテンツを参照する他のURLを複数の中間サーバから受信することと、
前記ルーティングモジュールによって、前記リクエストリクエストメッセージを受信することと、
前記ルーティングモジュールによって、前記リクエストメッセージを前記サーバシステムにルーティングすることと
を更に含む、請求項1に記載の方法。
Reporting the posting URL to a routing module by the server system;
Receiving, by the routing module, other URLs referring to content on a plurality of other computers from a plurality of intermediate servers;
Receiving the request request message by the routing module;
The method of claim 1, further comprising: routing the request message to the server system by the routing module.
前記サーバシステム及びルーティングモジュールは同じローカルネットワーク中にある、請求項15に記載の方法。   The method of claim 15, wherein the server system and the routing module are in the same local network. 非一時的ストレージデバイスを含み、
コンテンツを受信者コンピュータシステムが入手できるようにするための命令を受信することと、
前記コンテンツを受信者コンピュータシステムが入手できるようにするための前記命令に応じて、前記コンテンツにアクセスするための招待を前記受信者コンピュータシステムへ送信することと、
中間サーバシステムへの暗号化仮想プライベートネットワーク(VPN)を確立することと、
前記コンテンツに対する1つ以上のリクエストを受信することと、
前記1つ以上のリクエストの内の各リクエストに対して、
前記各リクエストが前記中間サーバから且つ前記暗号化VPN接続を通じて受信される場合のみ、前記コンテンツを前記暗号化VPN接続を通じて前記中間サーバへ送信することと、
各リクエストが前記中間サーバから且つ前記暗号化VPN接続を通じて受信されるというわけではない場合、前記コンテンツを前記暗号化VPN接続を通じて前記中間サーバへ送信することを控えることと
を1つ以上のプロセッサに命令するのに有効な実行可能コードを格納するコンピュータ可読媒体。
Including non-temporary storage devices,
Receiving instructions to make the content available to the recipient computer system;
In response to the instructions for making the content available to the recipient computer system, sending an invitation to the content to access the content;
Establishing an encrypted virtual private network (VPN) to the intermediate server system;
Receiving one or more requests for the content;
For each request in the one or more requests,
Sending the content to the intermediate server through the encrypted VPN connection only when each request is received from the intermediate server and through the encrypted VPN connection;
If each request is not received from the intermediate server and through the encrypted VPN connection, one or more processors may refrain from sending the content to the intermediate server through the encrypted VPN connection. A computer readable medium storing executable code useful for instructing.
前記実行可能コードは、テキストメッセージ、電子メール、メッセージ、及びウェブサイトへの投稿の内の少なくとも1つの中で、前記コンテンツにアクセスするための前記招待を前記受信者コンピュータシステムへ送信するように前記1つ以上のプロセッサに命令する命令を含む、請求項17に記載のコンピュータ可読媒体。   The executable code is configured to send the invitation to access the content to the recipient computer system in at least one of a text message, email, message, and posting to a website. The computer-readable medium of claim 17, comprising instructions for instructing one or more processors. 前記コンテンツにアクセスするための前記招待は、前記プロセッサをホストするコンピュータを参照するドメイン名を含む、請求項17に記載のコンピュータ可読媒体。   The computer-readable medium of claim 17, wherein the invitation to access the content includes a domain name that refers to a computer hosting the processor. 前記実行可能なコードは、前記コンテンツにアクセスするための前記招待を前記中間サーバをバイパスして前記受信者コンピュータシステムへ送信するように前記1つ以上のプロセッサに命令するのに更に有効である、請求項17に記載のコンピュータ可読媒体。   The executable code is further effective to instruct the one or more processors to send the invitation to access the content to the recipient computer system, bypassing the intermediate server; The computer readable medium of claim 17. コンテンツへのアクセスを提供するための方法であって、
サーバシステムによって、第1のコンピュータ上のコンテンツへの第1の参照を含むリクエストを第1のリクエスト者コンピュータから受信することと、
前記第1のコンピュータ上の前記コンテンツへの前記第1の参照を含む前記リクエストを受信することに応じて、前記サーバシステムによって、第2のコンピュータ上のコンテンツへの第2の参照であって、前記第2のコンピュータと前記第1のリクエスト者コンピュータとの間のデータ交換に対するセキュアな通信プロトコルを指定する前記第2の参照を含む応答を前記第1のリクエスト者コンピュータへ返信することと、
前記サーバシステムによって、前記第2の参照は前記第2のコンピュータとのデータ交換のセキュリティを危殆化し得ると判定することと、
前記第2の参照は前記第2のコンピュータとのデータ交換のセキュリティを危殆化し得ると判定することに応じて、前記サーバシステムによって、前記第2のコンピュータ上の前記コンテンツへの第3の参照であって、前記第2の参照とは異なる前記第3の参照を取得することと、
前記サーバシステムによって、前記第1のコンピュータ上の前記コンテンツへの前記第1の参照を含むリクエストを、前記第1のリクエスト者コンピュータ及び第2のリクエスト者コンピュータの内の1つから受信し、
前記サーバシステムによって、前記第2のコンピュータ上の前記コンテンツへの前記第3の参照であって、前記第2のコンピュータと前記第1のリクエスト者コンピュータ及び前記第2のリクエスト者コンピュータの内の前記1つとの間のデータ交換に対するセキュアな通信プロトコルを指定する前記第3の参照を含む応答を、前記第1のリクエスト者コンピュータ及び前記第2のリクエスト者コンピュータの内の前記1つへ返信することと
を含む、方法。
A method for providing access to content comprising:
Receiving a request from a first requester computer by a server system that includes a first reference to content on the first computer;
In response to receiving the request including the first reference to the content on the first computer, by the server system, a second reference to content on a second computer, Returning a response including the second reference specifying a secure communication protocol for data exchange between the second computer and the first requester computer to the first requester computer;
Determining by the server system that the second reference may compromise the security of data exchange with the second computer;
In response to determining that the second reference may compromise the security of data exchange with the second computer, the server system provides a third reference to the content on the second computer. Obtaining the third reference different from the second reference;
Receiving, by the server system, a request including the first reference to the content on the first computer from one of the first requester computer and a second requester computer;
The server system provides the third reference to the content on the second computer, the second computer, the first requester computer, and the second requester computer. Returning a response including the third reference specifying a secure communication protocol for data exchange with one to the one of the first requester computer and the second requester computer; Including a method.
前記第2の参照により指定される前記セキュアな通信プロトコルは、無許可の者から秘密を保持されなければならない第1の暗号鍵であって、前記第2の参照の少なくとも一部と関連付けられる前記第1の暗号鍵へのアクセスを前記第2のコンピュータが有することを必要とする、請求項21に記載の方法。   The secure communication protocol specified by the second reference is a first encryption key that must be kept secret from an unauthorized person and is associated with at least a portion of the second reference The method of claim 21, wherein the second computer requires access to a first encryption key. 前記第3の参照により指定される前記セキュアな通信プロトコルは、無許可の者から秘密を保持されなければならない第2の暗号鍵であって、前記第1の暗号鍵とは異なる前記第2の暗号鍵へのアクセスを前記第2のコンピュータが有することを必要とする、請求項22に記載の方法。   The secure communication protocol specified by the third reference is a second encryption key that must be kept secret from an unauthorized person, and is different from the first encryption key. 23. The method of claim 22, wherein the second computer requires access to an encryption key. 前記第2及び前記第3の参照により指定される前記セキュアな通信プロトコルはハイパーテキストトランスファープロトコルセキュア(HTTPS)であり、前記第1及び前記第2の暗号鍵はセキュアソケットレイヤ(SSL)証明書のための秘密鍵であり、前記第1の鍵は前記第2の参照中に含まれる第1のドメイン名と関連付けられ、前記第2の鍵は前記第3の参照中に含まれる第2のドメイン名と関連付けられ、前記第1のドメイン名は前記第2のドメイン名とは異なる、請求項23に記載の方法。   The secure communication protocol specified by the second and third references is hypertext transfer protocol secure (HTTPS), and the first and second encryption keys are secure socket layer (SSL) certificate The first key is associated with the first domain name included in the second reference, and the second key is the second domain included in the third reference. 24. The method of claim 23, wherein a first domain name is associated with a first name and the second domain name is different. 前記第2のコンピュータ上の前記コンテンツへの前記第3の参照を取得することは、
前記サーバシステムによって、前記第2のドメイン名を取得することと、
前記第2の参照中に含まれる前記第1のドメイン名を前記第2のドメイン名により置き換えることで、前記第3の参照を生成すること
を更に含む、請求項24に記載の方法。
Obtaining the third reference to the content on the second computer comprises:
Obtaining the second domain name by the server system;
25. The method of claim 24, further comprising generating the third reference by replacing the first domain name included in the second reference with the second domain name.
前記第2及び前記第3の参照は、前記第2のサーバ上の前記同じコンテンツを指し示す、請求項21に記載の方法。   The method of claim 21, wherein the second and third references point to the same content on the second server. 前記第2の参照は前記第2のコンピュータとのデータ交換のセキュリティを危殆化し得ると判定することに応じて、
前記第1の参照の少なくとも一部と関連付けられた暗号鍵が無許可の者にアクセス可能となり得ることを示す1つ以上のメッセージを前記サーバシステムから前記第2のコンピュータへ送信すること
を更に含む、請求項22に記載の方法。
In response to determining that the second reference may compromise the security of data exchange with the second computer,
Further comprising sending one or more messages from the server system to the second computer indicating that an encryption key associated with at least a portion of the first reference may be accessible to unauthorized persons. The method of claim 22.
前記サーバコンピュータから前記第2のコンピュータへの少なくとも1つのメッセージは、前記第1の暗号鍵を置き換えるための第2の暗号鍵を含む、請求項27に記載の方法。   28. The method of claim 27, wherein the at least one message from the server computer to the second computer includes a second encryption key for replacing the first encryption key. 前記サーバシステムによって、前記第2のコンピュータ上の前記コンテンツへの前記第2の参照を含む第1のリクエストを前記第1のリクエスト者コンピュータから受信することと、
前記サーバシステムによって、前記サーバシステムと前記第2のコンピュータとの間の逆接続を通じて前記第1のリクエストを前記第2のコンピュータへ転送することと
を更に含む、請求項21に記載の方法。
Receiving a first request from the first requester computer by the server system that includes the second reference to the content on the second computer;
The method of claim 21, further comprising: transferring, by the server system, the first request to the second computer through a reverse connection between the server system and the second computer.
前記サーバシステムと前記第2のコンピュータとの間の前記逆接続は、仮想プライベートネットワーク(VPN)トンネル、プロキシ接続、及びセキュアシェル(SSH)接続を含むグループから選択される、請求項29に記載の方法。   30. The reverse connection between the server system and the second computer is selected from the group comprising a virtual private network (VPN) tunnel, a proxy connection, and a secure shell (SSH) connection. Method. 1つ以上のプロセッサと、前記1つ以上のプロセッサに動作可能に結合された1つ以上のメモリデバイスを含む、コンテンツへのアクセスを提供するためのシステムであって、前記1つ以上のメモリデバイスは、
第1のコンピュータ上のコンテンツへの第1の参照を含むリクエストを第1のリクエスト者コンピュータから受信し、
前記第1のコンピュータ上の前記コンテンツへの前記第1の参照を含む前記リクエストを受信することに応じて、第2のコンピュータ上のコンテンツへの第2の参照であって、前記第2のコンピュータと前記第1のリクエスト者コンピュータとの間のデータ交換に対するセキュアな通信プロトコルを指定する前記第2の参照を含む応答を前記第1のリクエスト者コンピュータへ返信することと、
前記第2のコンピュータとのデータ交換のセキュリティの危殆化に関して前記第2の参照のセキュリティを評価することと、
前記第2の参照のセキュリティが危殆化する場合、前記システムによって、前記第2のコンピュータ上の前記コンテンツへの第3の参照であって、(a)前記システムによって、前記第1のコンピュータ上の前記コンテンツへの前記第1の参照を含むリクエストを前記第1のリクエスト者コンピュータ及び第2のリクエスト者コンピュータの内の1つから受信し、(b)前記システムによって、前記第2のコンピュータ上の前記コンテンツへの前記第3の参照を含む応答を前記第1のリクエスト者コンピュータ及び前記第2のリクエスト者コンピュータの内の前記1つへ返信する前記第2の参照とは異なる前記第3の参照であって、前記第2のコンピュータと前記第1のリクエスト者コンピュータ及び前記第2のリクエスト者コンピュータの内の前記1つとの間のデータ交換に対するセキュアな通信プロトコルを指定する前記第3の参照を取得することと
を前記1つ以上のプロセッサにさせるのに有効な実行可能で動作可能なコードを格納する、システム。
A system for providing access to content, comprising one or more processors and one or more memory devices operably coupled to the one or more processors, the one or more memory devices Is
Receiving a request from a first requester computer that includes a first reference to content on a first computer;
A second reference to content on a second computer in response to receiving the request that includes the first reference to the content on the first computer, the second computer Returning a response including the second reference specifying a secure communication protocol for data exchange between the first requester computer and the first requester computer to the first requester computer;
Evaluating the security of the second reference with respect to compromising the security of data exchange with the second computer;
A third reference to the content on the second computer by the system if the security of the second reference is compromised, (a) by the system on the first computer; Receiving a request including the first reference to the content from one of the first requester computer and a second requester computer, and (b) by the system on the second computer The third reference different from the second reference returning a response including the third reference to the content to the one of the first requester computer and the second requester computer. The second requester computer, the first requester computer and the second requester computer. Storing executable and operable code effective to cause the one or more processors to obtain the third reference specifying a secure communication protocol for data exchange with the one ,system.
前記第2の参照により指定される前記セキュアな通信プロトコルは、無許可の者から秘密を保持されなければならない第1の暗号鍵であって、前記第2の参照の少なくとも一部と関連付けられる前記第1の暗号鍵へのアクセスを前記第2のコンピュータが有することを必要とする、請求項31に記載のシステム。   The secure communication protocol specified by the second reference is a first encryption key that must be kept secret from an unauthorized person and is associated with at least a portion of the second reference 32. The system of claim 31, wherein the second computer requires access to a first encryption key. 前記第3の参照により指定される前記セキュアな通信プロトコルは、無許可の者から秘密を保持されなければならない第2の暗号鍵であって、前記第1の暗号鍵とは異なる前記第2の暗号鍵へのアクセスを前記第2のコンピュータが有することを必要とする、請求項32に記載のシステム。   The secure communication protocol specified by the third reference is a second encryption key that must be kept secret from an unauthorized person, and is different from the first encryption key. 33. The system of claim 32, wherein the second computer requires access to an encryption key. 前記第2及び前記第3の参照により指定される前記セキュアな通信プロトコルはハイパーテキストトランスファープロトコルセキュア(HTTPS)であり、前記第1及び前記第2の暗号鍵はセキュアソケットレイヤ(SSL)証明書のための秘密鍵であり、前記第1の鍵は前記第2の参照中に含まれる第1のドメイン名と関連付けられ、前記第2の鍵は前記第3の参照中に含まれる第2のドメイン名と関連付けられ、前記第1のドメイン名は前記第2のドメイン名とは異なる、請求項33に記載のシステム。   The secure communication protocol specified by the second and third references is hypertext transfer protocol secure (HTTPS), and the first and second encryption keys are secure socket layer (SSL) certificate The first key is associated with the first domain name included in the second reference, and the second key is the second domain included in the third reference. 34. The system of claim 33, wherein the system is associated with a first name and the first domain name is different from the second domain name. 前記実行可能で動作可能コードは、
前記第2のドメイン名を取得することと、
前記第2の参照中に含まれる前記第1のドメイン名を前記第2のドメイン名により置き換えることで、前記第3の参照を生成すること
によって、前記第2のコンピュータ上の前記コンテンツへの前記第3の参照を前記1つ以上のプロセッサに取得させるのに更に有効である、請求項34に記載のシステム。
The executable and operable code is:
Obtaining the second domain name;
Generating the third reference by replacing the first domain name included in the second reference with the second domain name, thereby allowing the content to be stored on the second computer. 35. The system of claim 34, further effective for causing the one or more processors to obtain a third reference.
前記第2及び前記第3の参照は、前記第2のサーバ上の同じコンテンツを指し示す、請求項31に記載のシステム。   32. The system of claim 31, wherein the second and third references point to the same content on the second server. 前記実行可能で動作可能動作コードは、前記第2の参照のセキュリティが危殆化する場合に、前記第1の参照の少なくとも一部と関連付けられた暗号鍵が無許可の者にアクセス可能になり得ることを示す1つ以上のメッセージを前記システムから前記第2のコンピュータへ前記1つ以上のプロセッサに送信させるのに更に有効である、請求項32に記載のシステム。   The executable and operable operational code may allow an encryption key associated with at least a portion of the first reference to be accessible to unauthorized persons if the security of the second reference is compromised. 35. The system of claim 32, further effective for causing the one or more processors to transmit one or more messages indicating that from the system to the second computer. 前記システムから前記第2のコンピュータへの前記少なくとも1つのメッセージは、前記第1の暗号鍵を置き換えるための第2の暗号鍵を含む、請求項37に記載のシステム。   38. The system of claim 37, wherein the at least one message from the system to the second computer includes a second encryption key for replacing the first encryption key. 前記実行可能で動作可能なコードは、
前記第2のコンピュータ上の前記コンテンツへの前記第2の参照を含む第1のリクエストを前記第1のリクエスト者コンピュータから受信することと、
前記第1のリクエストを前記システムと前記第2のコンピュータとの間の逆接続を通じて前記第2のコンピュータへ転送することと
を前記1つ以上のプロセッサにさせるのに更に有効である、請求項31に記載のシステム。
The executable and operable code is:
Receiving a first request from the first requester computer that includes the second reference to the content on the second computer;
32. It is further effective to cause the one or more processors to transfer the first request to the second computer through a reverse connection between the system and the second computer. The system described in.
前記システムと前記第2のコンピュータとの間の前記逆接続は、仮想プライベートネットワーク(VPN)トンネル、プロキシ接続、及びセキュアシェル(SSH)接続を含むグループから選択される、請求項39に記載のシステム。   40. The system of claim 39, wherein the reverse connection between the system and the second computer is selected from the group comprising a virtual private network (VPN) tunnel, a proxy connection, and a secure shell (SSH) connection. . コンテンツへのアクセスを提供するための方法であって、
サーバシステムによって、第1のコンピュータ上の第1のコンテンツへの参照を含む第1のリクエストを第1のネットワークアドレスから受信することと、
前記サーバシステムによって、第2のコンピュータ上の第2のコンテンツへの参照を含む応答を前記第1のネットワークアドレスへ返信することと、
前記サーバシステムによって、前記第2のコンピュータ上の前記第2コンテンツへの参照を含む第2のリクエストを第2のネットワークアドレスから受信することと、
前記サーバシステムによって、前記第2のネットワークアドレスは前記第1のネットワークアドレスとは異なると判定することと、
前記第2のネットワークアドレスは前記第1のネットワークアドレスとは異なると判定することに応じて、前記第2のコンテンツを前記第2のコンピュータから前記第2のネットワークアドレスへ返信することを控えることと
を含む、方法。
A method for providing access to content comprising:
Receiving, by a server system, a first request including a reference to first content on a first computer from a first network address;
Returning a response including a reference to second content on a second computer to the first network address by the server system;
Receiving, by the server system, a second request including a reference to the second content on the second computer from a second network address;
Determining by the server system that the second network address is different from the first network address;
Refraining from returning the second content from the second computer to the second network address in response to determining that the second network address is different from the first network address; Including a method.
前記サーバシステムによって、第2のコンピュータ上の第2のコンテンツへの参照を含む第3のリクエストを第3のネットワークアドレスから受信することと、
前記サーバシステムによって、前記第3のネットワークアドレスは前記第1のソースネットワークアドレスと同じであると判定することと、
前記第3のネットワークアドレスは前記第1のネットワークアドレスと同じであると判定することに応じて、前記サーバシステムによって、前記第2のコンテンツを前記第2のコンピュータから前記第1のネットワークアドレスへ返信することと
を更に含む、請求項41に記載の方法。
Receiving, by the server system, a third request including a reference to second content on a second computer from a third network address;
Determining by the server system that the third network address is the same as the first source network address;
In response to determining that the third network address is the same as the first network address, the server system returns the second content from the second computer to the first network address. 42. The method of claim 41, further comprising:
前記第3のネットワークアドレスは前記第1のネットワークアドレスと同じであると判定することに応じて、前記サーバシステムによって、前記第3のリクエストを前記第2のコンピュータへ転送し、前記第2のコンピュータから応答を受信し、前記サーバシステムによって、前記応答を前記第1のネットワークアドレスへ送信することと、
前記第2のネットワークアドレスは前記第1のネットワークアドレスとは異なると判定することに応じて、前記第2のリクエストを前記第2のコンピュータへ転送することを控えることと
を更に含む、請求項42に記載の方法。
In response to determining that the third network address is the same as the first network address, the server system transfers the third request to the second computer, and the second computer Receiving a response from the server system and sending the response to the first network address by the server system;
43. further comprising refraining from forwarding the second request to the second computer in response to determining that the second network address is different from the first network address. The method described in 1.
前記第3のリクエストを前記第2のコンピュータへ転送することは、前記サーバシステムと前記第2のコンピュータとの間の逆接続を通じて前記第3のリクエストを送信することを含む、請求項43に記載の方法。   44. The forwarding of the third request to the second computer includes sending the third request through a reverse connection between the server system and the second computer. the method of. 前記サーバシステムと前記第2のコンピュータとの間の前記逆接続は、仮想プライベートネットワーク(VPN)トンネル、プロキシ接続、及びセキュアシェル(SSH)接続を含むグループから選択される、請求項44に記載の方法。   45. The reverse connection between the server system and the second computer is selected from the group comprising a virtual private network (VPN) tunnel, a proxy connection, and a secure shell (SSH) connection. Method. 前記第2のコンテンツを前記第2のコンピュータから前記第1のネットワークアドレスへ返信することは、前記第2のコンピュータと前記第1のネットワークアドレスと関連付けられたコンピュータとの間に暗号化通信チャネルであって、前記第2のコンピュータによりアクセス可能な暗号鍵を用いることにより確立される前記チャネルを確立することを含み、請求項42に記載の方法。   Returning the second content from the second computer to the first network address is an encrypted communication channel between the second computer and the computer associated with the first network address. 43. The method of claim 42, comprising establishing the channel established by using an encryption key accessible by the second computer. 前記暗号化通信チャネルはハイパーテキストトランスファーセキュアプロトコル(HTTPS)を用い、前記第2のコンピュータによりアクセス可能な前記暗号鍵は、セキュアソケットレイヤ(SSL)証明書のための秘密鍵である、請求項42に記載の方法。   43. The encrypted communication channel uses hypertext transfer secure protocol (HTTPS), and the encryption key accessible by the second computer is a private key for a secure socket layer (SSL) certificate. The method described in 1. 前記第2のネットワークアドレスは前記第1のネットワークアドレスはと異なると判定することに応じて、前記サーバシステムによって、前記第2のコンピュータによりアクセス可能な前記暗号鍵のセキュリティは危殆化するとの通知を送信すること
を更に含む、請求項46に記載の方法。
In response to determining that the second network address is different from the first network address, the server system notifies that the security of the encryption key accessible by the second computer is compromised. 48. The method of claim 46, further comprising transmitting.
前記第2のネットワークアドレスは前記第1のネットワークアドレスとは異なると判定することに応じて、前記第2のリクエストに続く前記第2のコンテンツへの1つ以上のリクエストに対して前記第2のコンテンツを前記第2のコンピュータから返信することを控えること
を更に含む、請求項41に記載の方法。
In response to determining that the second network address is different from the first network address, the second network address for the one or more requests for the second content following the second request. 42. The method of claim 41, further comprising refraining from returning content from the second computer.
前記第2のネットワークアドレスは前記第1のネットワークアドレスとは異なると判定することに応じて、前記サーバシステムによって、前記第1のコンテンツへの前記第1のリクエストに応じて返信された応答とは異なる、前記第2のコンテンツへの参照を含む前記第1のコンテンツに対するリクエストへの少なくとも1つの応答を返信すること
を更に含む、請求項41に記載の方法。
In response to determining that the second network address is different from the first network address, a response returned by the server system in response to the first request to the first content is 42. The method of claim 41, further comprising returning at least one response to a request for the first content that includes a different reference to the second content.
コンテンツへのアクセスを提供するための方法であって、
サーバシステムによって、第1のコンピュータ上の第1のコンテンツへの参照を含む第1のリクエストを第1のネットワークアドレスから受信し、
前記サーバシステムによって、第2のコンピュータ上の第2のコンテンツへの参照を含む応答を前記第1のネットワークアドレスへ返信し、
前記サーバシステムによって、前記第1のネットワークアドレスからの前記第2のコンテンツに対するリクエストは閾値時間内に到達しなかったと判定することと、
前記第1のネットワークアドレスからのリクエストは前記閾値時間内に到達しなかったと判定すること応じて、前記閾値時間後に受信された1つ以上のリクエストに対して、前記第2のコンテンツを前記第2のコンピュータから返信することを控えることと
を含む、方法。
A method for providing access to content comprising:
A server system receives a first request from a first network address including a reference to first content on a first computer;
A response including a reference to second content on a second computer is returned by the server system to the first network address;
Determining by the server system that a request for the second content from the first network address has not reached within a threshold time;
In response to determining that a request from the first network address has not arrived within the threshold time, the second content is sent to the second content for one or more requests received after the threshold time. And refraining from replying from the computer.
1つ以上のプロセッサと、前記1つ以上のプロセッサに動作可能に結合され、
第1のコンピュータ上の第1のコンテンツへの参照を含む第1のリクエストを第1のネットワークアドレスから受信すること、
第2のコンピュータ上の第2のコンテンツへの参照を含む応答を前記第1のネットワークアドレスへ返信することと、
前記第2のコンピュータ上の前記第2のコンテンツへの参照を含む第2のリクエストを第2のネットワークアドレスから受信することと、
前記第2のネットワークアドレスが前記第1のネットワークアドレスとは異なる場合に、前記第2のコンテンツを前記第2のコンピュータから前記第2のネットワークアドレスへ返信することを控えることと
を前記1つ以上のプロセッサにさせるのに有効な実行可能で動作可能なコードを格納する1つ以上のメモリデバイスとを含む、コンテンツへのアクセスを提供するためのシステム。
One or more processors and operably coupled to the one or more processors;
Receiving a first request from a first network address including a reference to first content on a first computer;
Returning a response including a reference to second content on a second computer to the first network address;
Receiving from a second network address a second request including a reference to the second content on the second computer;
Refraining from returning the second content from the second computer to the second network address when the second network address is different from the first network address. A system for providing access to content, including one or more memory devices that store executable and operable code effective to cause a processor of the system to execute.
前記実行可能で動作可能なコードは、
前記第2のネットワークアドレスが前記第1のソースネットワークアドレスと同じである場合にのみ、前記第2のコンテンツを前記第2のコンピュータから前記第1のネットワークアドレスへ返信する
ことを前記1つ以上のプロセッサにさせるのに更に有効である、請求項52に記載のシステム。
The executable and operable code is:
Returning the second content from the second computer to the first network address only if the second network address is the same as the first source network address. 53. The system of claim 52, further effective for causing a processor.
前記実行可能で動作可能コードは、
前記第2のネットワークアドレスが前記第1のソースネットワークアドレスと同じである場合にのみ、(a)前記第2のリクエストを前記第2のコンピュータへ転送し、(b)前記第2のリクエストへの応答を前記第2のコンピュータから受信し、(c)前記第2のリクエストへの前記応答を前記第1のネットワークアドレスへ送信することと、
前記第2のネットワークアドレスが前記第1のネットワークアドレスとは異なる場合に、前記第2のリクエストを前記第2のコンピュータへ転送することを控えること
を前記1つ以上のプロセッサにさせるのに更に有効である、請求項53に記載の方法。
The executable and operable code is:
Only if the second network address is the same as the first source network address, (a) transfer the second request to the second computer, and (b) respond to the second request. Receiving a response from the second computer, and (c) sending the response to the second request to the first network address;
More effective to cause the one or more processors to refrain from forwarding the second request to the second computer if the second network address is different from the first network address. 54. The method of claim 53, wherein
前記実行可能で動作可能なコードは、前記第3のリクエストを前記システムと前記第2のコンピュータとの間の逆接続を通じて送信することによって、前記第3のリクエストを前記第2のコンピュータへ前記1つ以上のプロセッサに転送させるのに更に有効である、請求項54に記載の方法。   The executable and operable code transmits the third request to the second computer by sending the third request over a reverse connection between the system and the second computer. 55. The method of claim 54, further effective for transfer to one or more processors. 前記システムと前記第2のコンピュータとの間の前記逆接続は、仮想プライベートネットワーク(VPN)トンネル、プロキシ接続、及びセキュアシェル(SSH)接続を含むグループから選択される、請求項55に記載のシステム。   56. The system of claim 55, wherein the reverse connection between the system and the second computer is selected from the group comprising a virtual private network (VPN) tunnel, a proxy connection, and a secure shell (SSH) connection. . 前記実行可能で動作可能なコードは、
前記第2のコンピュータと前記第1のネットワークアドレスと関連付けられたコンピュータとの間に暗号化通信チャネルであって、前記第2のコンピュータによりアクセス可能な暗号鍵を用いることにより確立される前記チャネルを確立することによって、前記第2のコンテンツを前記第2のコンピュータから前記第1のネットワークアドレスへ返信すること、
を前記1つ以上のプロセッサにさせるのに更に有効である、請求項53に記載の方法。
The executable and operable code is:
An encrypted communication channel between the second computer and a computer associated with the first network address, the channel established by using an encryption key accessible by the second computer; Returning the second content from the second computer to the first network address by establishing;
54. The method of claim 53, further effective to cause the one or more processors to run.
前記暗号化通信チャネルはハイパーテキストトランスファーセキュアプロトコル(HTTPS)を実装し、前記第2のコンピュータによりアクセス可能な前記暗号鍵は、セキュアソケットレイヤ(SSL)証明書のための秘密鍵である、請求項57に記載の方法。   The encrypted communication channel implements Hypertext Transfer Secure Protocol (HTTPS) and the encryption key accessible by the second computer is a private key for a secure socket layer (SSL) certificate. 58. The method according to 57. 前記実行可能で動作可能なコードは、
前記第2のネットワークアドレスが前記第1のネットワークアドレスとは異なると判定することに応じて、前記第2のコンピュータによりアクセス可能な前記暗号鍵のセキュリティが危殆化しているとの通知を前記第2のコンピュータへ送信すること
を前記1つ以上のプロセッサにさせるのに更に有効である、請求項57に記載の方法。
The executable and operable code is:
In response to determining that the second network address is different from the first network address, a notification that the security of the encryption key accessible by the second computer has been compromised. 58. The method of claim 57, further effective to cause the one or more processors to transmit to a computer.
前記実行可能で動作可能なコードは、
前記第2のネットワークアドレスが前記第1のネットワークアドレスと異なる場合に、前記第2のリクエストに続く前記第2のコンテンツへの1つ以上のリクエストに対して、前記第2のコンテンツを前記第2のコンピュータから返信することを控えること
を前記1つ以上のプロセッサにさせるのに更に有効である、請求項41に記載のシステム。
The executable and operable code is:
If the second network address is different from the first network address, the second content is transferred to the second content in response to one or more requests for the second content following the second request. 42. The system of claim 41, further effective to cause the one or more processors to refrain from replying from another computer.
JP2018565332A 2016-06-17 2016-06-17 Secure personal server system and method Pending JP2019526955A (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2016/038180 WO2017218013A1 (en) 2016-06-17 2016-06-17 Secure personal server system and method

Publications (1)

Publication Number Publication Date
JP2019526955A true JP2019526955A (en) 2019-09-19

Family

ID=60664633

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018565332A Pending JP2019526955A (en) 2016-06-17 2016-06-17 Secure personal server system and method

Country Status (5)

Country Link
EP (1) EP3472991A4 (en)
JP (1) JP2019526955A (en)
KR (1) KR20190031473A (en)
CA (1) CA3027340A1 (en)
WO (1) WO2017218013A1 (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11704671B2 (en) * 2020-04-02 2023-07-18 Bottomline Technologies Limited Financial messaging transformation-as-a-service
CN111526161A (en) * 2020-05-27 2020-08-11 联想(北京)有限公司 Communication method, communication equipment and proxy system
WO2023154072A1 (en) * 2022-02-08 2023-08-17 QuSecure, Inc. System ans methods for switching among communication protocols
CN116582364B (en) * 2023-07-12 2023-10-03 苏州浪潮智能科技有限公司 Data access method, system, device, electronic equipment and readable storage medium

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1532539B1 (en) * 2002-06-06 2015-12-09 Pulse Secure, LLC Method and system for providing secure access to private networks
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
US7685280B2 (en) * 2007-04-23 2010-03-23 International Business Machines Corporation Populating requests to multiple destinations using a mass request
US8910272B2 (en) * 2008-02-28 2014-12-09 Hob Gmbh & Co. Kg Computer communication system for communication via public networks
KR101892100B1 (en) * 2010-05-19 2018-08-27 아카마이 테크놀로지스, 인크. Edge server http post message processing
US9384463B2 (en) * 2010-07-23 2016-07-05 Anchorfree, Inc. SSL HTTPS browser
US9203810B2 (en) * 2010-07-23 2015-12-01 Anchorfree Inc. Web VPN
US10248975B2 (en) * 2013-02-27 2019-04-02 Facebook, Inc. Providing advertisement content via an advertisement proxy server

Also Published As

Publication number Publication date
EP3472991A1 (en) 2019-04-24
CA3027340A1 (en) 2017-12-21
EP3472991A4 (en) 2019-11-20
KR20190031473A (en) 2019-03-26
WO2017218013A1 (en) 2017-12-21

Similar Documents

Publication Publication Date Title
US9942204B2 (en) Secure personal server system and method
CN111034150B (en) Method and apparatus for selectively decrypting SSL/TLS communications
US10432588B2 (en) Systems and methods for improving HTTPS security
US11652792B2 (en) Endpoint security domain name server agent
EP2989769B1 (en) Selectively performing man in the middle decryption
US20160359807A1 (en) Destination domain extraction for secure protocols
US9843565B2 (en) Web form protection
US20100064353A1 (en) User Mapping Mechanisms
US11750646B2 (en) System and method for decentralized internet traffic filtering policy reporting
US10397225B2 (en) System and method for network access control
Zhou et al. Sweet: Serving the web by exploiting email tunnels
Chakravarty et al. Detection and analysis of eavesdropping in anonymous communication networks
JP2019526955A (en) Secure personal server system and method
Punarselvam et al. Effective and Efficient Traffic Scrutiny in Sweet Server with Data Privacy
US11736516B2 (en) SSL/TLS spoofing using tags
Pannu et al. Exploring proxy detection methodology
EP4167524A1 (en) Local network device connection control
US20230370492A1 (en) Identify and block domains used for nxns-based ddos attack
Johnson Domain fronting: Making backdoor access look like Google requests
Kontaxis Reducing Third Parties in the Network through Client-Side Intelligence

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190614

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190614

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200625

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200901

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20210427