JP4734592B2 - クライアントリダイレクトによるプライベートネットワークへの安全なアクセス提供方法およびシステム - Google Patents

クライアントリダイレクトによるプライベートネットワークへの安全なアクセス提供方法およびシステム Download PDF

Info

Publication number
JP4734592B2
JP4734592B2 JP2006509966A JP2006509966A JP4734592B2 JP 4734592 B2 JP4734592 B2 JP 4734592B2 JP 2006509966 A JP2006509966 A JP 2006509966A JP 2006509966 A JP2006509966 A JP 2006509966A JP 4734592 B2 JP4734592 B2 JP 4734592B2
Authority
JP
Japan
Prior art keywords
server
network
client
decision
computer
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.)
Expired - Fee Related
Application number
JP2006509966A
Other languages
English (en)
Other versions
JP2006526843A (ja
Inventor
クリストファー トーマス
セロン トック
スリラム ラマチャンドラン
Original Assignee
ジュニパー ネットワークス, インコーポレイテッド
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 ジュニパー ネットワークス, インコーポレイテッド filed Critical ジュニパー ネットワークス, インコーポレイテッド
Publication of JP2006526843A publication Critical patent/JP2006526843A/ja
Application granted granted Critical
Publication of JP4734592B2 publication Critical patent/JP4734592B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • 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/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • 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/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0407Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the identity of one or more communicating identities is hidden
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • 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
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/561Adding application-functional data or data for application control, e.g. adding metadata
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/563Data redirection of data network streams
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/564Enhancement of application control based on intercepted application data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2463/00Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
    • H04L2463/102Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00 applying security measure for e-commerce
    • 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
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Library & Information Science (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

関連出願への相互参照
本出願は、2001年11月2日出願の米国仮出願第60/350,097号の利益を主張する、2002年1月29日出願の米国特許出願第10/060,792号の一部継続出願である。
本発明は、クライアント/サーバコンピューティングに関し、より詳しくは、ネットワーク上で安全にリソースにアクセスするためのクライアント/サーバコンピューティングに関するものである。
ネットスケープナビゲーターもしくはマイクロソフトエクスプローラのようなネットワークブラウザ(ブラウザアプリケーション)により、クライアントマシンのユーザは、インターネットを介して、遠隔地に位置するサーバマシンにリソースを要求し検索することができる。これらのネットワークブラウザは、遠隔地に位置するサーバマシンから提供されるハイパーテキストマークアップランゲージ(HTML)ドキュメントを表示もしくは提供することができる。更に、ブラウザは、あるローカル機能を提供するために、HTMLドキュメントに埋め込まれたスクリプトプログラムを実行することができる。
従来、ネットワークブラウザは、インターネットのようなパブリックネットワークにアクセスするのに用いられている。プライベートネットワーク外のコンピュータィングマシン上にあるネットワークブラウザが、プライベートネットワーク上のいかなるリソースにもアクセスできないように、プライベートネットワークは、ファイアウォールによって通常保護されている。
ファイアウォールは、プライベートネットワークへの外部アクセスを防ぐ上で効果的であるが、外部の個人または企業が、他人または他企業のプライベートネットワークへの少なくとも制限された範囲内でのアクセスを必要とする場合がしばしばある。たとえば、企業顧客に対するパーツのサプライヤは、企業顧客のプライベートネットワーク上で維持された情報(例えば、在庫レベルや注文)にアクセスすることにより、企業顧客により良いサービスを提供できる場合もある。従来用いられている方法の一つとしては、サプライヤのマシンに、パブリックネットワークを通じてファイアウォールを介し、プライベートネットワークにアクセスさせることが挙げられるが、この場合、ファイアウォールに「セキュリティホール」ができ、プライベートネットワークのセキュリティを深刻な危険にさらすことになる。従って、セキュリティが重要事項である場合、この従来の方法は通常許されない。他の従来の方法としては、サプライヤのマシンで仮想私設網(Virtual Private Network:VPN)を確立することが挙げられる。この場合、サプライヤのマシンは、パブリックネットワークやファイアウォールを介してプライベートネットワークにアクセスすることもできるが、全てのデータ伝送は暗号化される。ファイアウォールの中には、VPNをサポートしているものもあり、PPTP(Point−to−Point Tunneling Protocol)のような暗号化された通信を提供するプロトコルを使用することができる。VPNは、セキュアリモートアクセスを提供するが、準備、構成、管理が難しい。各VPNは、プライベートネットワークへのアクセスを許可された外部の各個人または企業にも提供されなければならない。更に、VPNは高価であり、また、各VPNは、プライベートネットワーク全体のセキュリティを、多少なりとも危険にさらすことになる。
したがって、プライベートネットワーク上で維持されているリソースへのセキュアリモートアクセスを提供するための改善された方法が必要とされている。
本発明は、プライベートネットワーク上で維持されているリソースへの安全なアクセスを提供するための改善された方法に関する。クライアント/サーバソフトウェアのクライアントソフトウェアを使用し、および/またはファイルシステムソフトウェアを用いて、公衆ネットワークを介し、安全なアクセスを提供することができる。また、複数のリモートユーザが、リモートネットワークの中間サーバのような、共通のアクセスポイントを介し、プライベートネットワークの少なくとも一部に、制限およびコントロールされた環境下でアクセスすることができる。リモートネットワークの一例は、プライベートネットワークでる。
本発明は、システム、方法、デバイスおよびコンピュータ読み取り可能メディアを含め、多くの手段で実現できる。以下、本発明のいくつかの実施形態について説明する。
一方法実施形態では、ネットワーク接続要求を受け、そのネットワーク接続要求を転送し、データを中間サーバに送信する。この方法は、リモートネットワークへのセキュアリモートアクセスを可能にする。
ネットワーク接続要求は、ローカルネットワーク上のコンピュータで受け取ることがでる。ネットワーク接続要求は、クライアント/サーバプリケーションのクライアントアプリケーションによって開始される。クライアントアプリケーションは前記コンピュータ上にあってもよい。ネットワーク接続要求は、リモートネットワーク上の宛先を含んでいてもよい。クライアント/サーバプリケーションのサーバプリケーションは、リモートネットワーク上にあってもよい。
ネットワーク接続要求は、コンピュータ上のWindows(登録商標)ソケットレイヤ内に転送することができる。これには、ネームスペースプロバイダ(例えば、リモートネットワーク上のドメインネームサービスルックアップに利用)およびレイヤドサービスプロバイダ(例えば、ローカルネットワークからリモートネットワークへのクライアントアプリケーションのデータ転送に利用)を用いて、ネットワーク接続要求を転送することが含まれる。ネットワーク接続要求は、コンピュータのトランスポートサービスプロバイダ(例えば、TCP/IPトランスポートサービスプロバイダ)を避けて転送することができる。ネットワーク接続要求は、リモートネットワーク内の中間サーバに転送することができる。中間サーバは、コンピュータに代わってネットワーク接続要求を行なうことができる。転送は、クライアントアプリケーションの名前、クライアントアプリケーションのチェックサム、クライアントアプリケーションのバージョン、宛先のサーバ、および宛先のポートの内の一つ又はそれ以上に基づいて行われる。転送に先立ち、ネットワーク要求は、WinsockダイナミックリンクライブラリおよびWinsock2ダイナミックリンクライブラリの少なくとも一方を介することができる。ネットワーク接続要求は、コンピュータ上の少なくとも一つのプロキシにより、リモートネットワーク内の中間サーバに転送することができる。
クライアントアプリケーションのデータは、コンピュータから中間サーバへ向けて送信することができる。セキュア・ソケット・レイヤ(SSL)は、コンピュータと中間サーバ間の通信を暗号化することができる。クライアントアプリケーションのデータは、中間サーバからサーバプリケーションへ向けて送信することができる。様々な実施形態は、中間サーバからサーバプリケーションへ向けてクライアントアプリケーションのデータを送信したり、あるいは、実施形態外部のソフトウェアまたはハードウェアによりこれを行わせる。クライアントアプリケーションのデータは、クライアントアプリケーションのデータを中間サーバへ向けて送信する前に、コンピュータの少なくとも一ローカルアドレスおよび一ローカルポートを介して送信される。
いくつかの実施形態においては、クライアントアプリケーションと中間サーバとの間のセキュア接続を示すためビジュアルキューが設けられる。ネームスペースプロバイダおよびレイヤドサービスプロバイダは、自動的にコンピュータにインストールおよび/またはコンピュータからアンインストールすることができる。
他の方法実施形態では、ネットワーク接続要求を受け、そのネットワーク接続要求を転送し、データを中間サーバから受け取る。この方法は、リモートネットワークへのセキュアリモートアクセスを可能にする。
ネットワーク接続要求は、ローカルネットワーク上のコンピュータ上で受け取ることができる。ネットワーク接続要求は、リモートネットワーク上のファイルシステムに対して開始される。ネットワーク接続要求は、ファイルシステムの名前を含んでいてもよい。
ネットワーク接続要求は、コンピュータ上でトランスポートドライバインターフェイスを用いて転送することができ、さらにネームスペースプロバイダを使用してもよい。転送することにより、ネットワークファイルシステムトラフィックをキャプチャーすることができる。ネットワーク接続要求は、コンピュータ上のトランスポートドライバ(例えば、TCP/IPトランスポートドライバ)を避けて転送することができる。そのネットワーク接続要求は、リモートネットワーク内の中間サーバに転送することができる。中間サーバは、コンピュータに代わりネットワーク接続要求を行なう。転送は、宛先サーバおよび宛先ポートの少なくとも一方に基づいて行われる。転送前に、ネットワーク接続要求は、少なくとも一つのトランスポートドライバインターフェースフィルタを通過することができる。
中間サーバからのファイルシステムのコンピュータデータを受け取ることができる。セキュア・ソケット・レイヤ(SSL)は、コンピュータと中間サーバ間の通信を暗号化することができる。ファイルシステムのデータは、リモートネットワーク上の中間サーバとファイルシステム間で転送することができる。様々な実施形態では、中間サーバとファイルシステム間でファイルシステムのデータを転送するか、あるいは、実施形態外部のハードウェアあるいはソフトウェアによりこれを行わせる。
いくつかの実施形態では、トランスポートドライバインターフェースは、自動的にコンピュータにインストールおよび/またはコンピュータからアンインストールすることができる。
種々の態様、特徴、実施形態あるいは上記のいくつかの実施形態のインプリメンテーションは、単独あるいは様々な組み合わせで用いることができる。
いくつかの実施形態は、ソフトウェアにおいてインプリメントできるが、ハードウェアにおいて、またはハードウェアとソフトウェアの組み合わせにおいてインプリメントすることもできる。本発明のいくつかの実施形態はまた、コンピュータ読み取り可能メディア上のコンピュータ読み取り可能コードとして実施することができる。コンピュータ読み取り可能メディアは、データを格納することができ、その後コンピュータシステムにより読み取ることができる任意のデータ記憶装置である。コンピュータ読み取り可能メディアの例としては、読み取り専用メモリ、ランダムアクセスメモリ、CD−ROM、DVD、磁気テープ、光学データ記憶装置、および搬送波が挙げられる。コンピュータ読み取り可能メディアはまた、コンピュータ読み取り可能コードが分散して格納され、実行されるよう、複数のネットワーク結合コンピュータシステムに分散させることができる。
様々な実施形態におけるコンピュータコードは、ハードウェア、ソフトウェア、あるいはハードウェアとソフトウェアの組み合わせにおいてインプリメントできる。
本発明の他の態様および利点は、本発明の原理を例示する添付の図面を参照した以下の詳細な説明から明白となるであろう。
本発明は、添付の図面を参照した以下の詳細な説明により容易に理解されるであろう。図面中、同様の参照番号は、同様の構造要素を示す。
本発明は、プライベートネットワーク上で維持されているリソースへの安全なアクセスを提供するための改善された方法に関する。安全なアクセスは、標準ネットワークブラウザを使用し、公衆ネットワークを介して提供することができる。多数のリモートユーザは、共通のアクセスポイントを経由し、制限およびコントロールされた環境下で、プライベートネットワークの少なくとも一部にアクセスすることができる。
このソリューションにより、従業員、契約者、あるいはパートナーといったユーザは、プライベートネットワークへの直接接続から離れた場所にいながら、安全な方法でプライベートネットワーク上にあるリソースにアクセスすることができる。本発明のいくつかの実施形態により提供されるソリューションは、容易に設定および操作できるだけでなく、多くのリモートユーザをコスト効率の良くサポートすることもできる。
以下、本発明に係るこの態様の実施形態を、図1A〜図27を参照しながら説明する。しかしながら、当業者には、これらの図に関してここで述べている詳細な説明は、あくまでも説明を目的としたものであり、本発明はこれらの限定された実施形態の範囲を超えるものであることは容易に理解されるであろう。
図1Aは、本発明の一実施形態に係る情報検索システム100を示すブロック図である。情報検索システム100は、ネットワーク102、クライアントマシン104、106、仲介サーバ108、リモートサーバ110、112、プライベートネットワーク114、およびプライベートサーバ116、118を備えている。ネットワーク102は、クライアントマシン104、106、仲介サーバ108、およびリモートサーバ110、112の通信を可能にする通信媒体としての役割を果たす。ネットワーク102は、例えば、インターネット、広域ネットワーク、あるいはローカルエリアネットワークを含むデータネットワークである。インターネットとは、相互に接続されたコンピュータのグローバネットワークのことをいう。プライベートネットワーク114は、さらに、仲介サーバ108およびプライベートサーバ116、118の通信を可能にする通信媒体としての役割も果たす。ネットワーク114はまた、データネットワークでもある。プライベートネットワーク114はエンティティに関連付けられていることが多いため、プライベートネットワーク114上でコンピューティングデバイスを操作する従業員は、プライベートサーバ116、118と通信することができる。例えば、プライベートネットワーク114は、企業ネットワークあるいはイントラネットと呼ぶことができる。しかしながら、外部コンピュータィングデバイスによるプライベートネットワーク114へのアクセスは、一般にファイアウォール(図示なし)により制限されている。仲介サーバ108は、ファイアウォールを介してプライベートネットワーク114と通信することが許可されている。ここで、クライアントマシン(リクエスタ)が認可および許可されている範囲で、仲介サーバ108はクライアントマシン(リクエスタ)に代わりプライベートネットワーク114と通信する。仲介サーバ108は、外部コンピューティングデバイスにプライベートネットワーク114へアクセスさせる範囲を実質的にコントロールする。
本発明のいくつかの実施形態によれば、プライベートサーバ116、118上にあるコンテンツに対する要求は、クライアントマシン104、106から受け取ることができる。ここで使用されているように、「コンテンツ」とは、サーバ上に格納することができ、クライアントが検索することのできるあらゆる情報またはリソースのことである。一般に、コンテンツは電子ファイルとして表示され、テキストおよび/またはイメージを含む。しばしば、クライアントマシン104、106は、ネットワーク102およびプライベートネットワーク114を介してコンテンツの要求および検索を容易にするブラウザアプリケーションを操作する。そのような場合、ブラウザアプリケーションが同一のコンテンツを表示することができるよう、コンテンツは、多くの場合、ブラウザを通して表示可能なドキュメント(例えば、マークアップ言語ドキュメント、ウェブページなど)としてブラウザアプリケーションに返される。クライアントマシン104、106は、仲介サーバ108と通信する。まず、仲介サーバ108は、コンテンツを求めているクライアントマシン104、106が、プライベートネットワーク114へのそのようなアクセスに認証および許可されているかどうか判断する。認証および許可検査を正常に終えた後、仲介サーバ108は、次に、クライアントマシン104、106に代わりプライベートネットワーク114上にあるプライベートサーバ116、118にアクセスする。仲介サーバ108が、要求されたコンテンツをプライベートサーバ116、118から得ると、仲介サーバ108は、クライアントマシン104、106に要求されたコンテンツを直接返すか、あるいは要求されたコンテンツをまず修正した後、クライアントマシン104、106に送信することができる。
仲介サーバ108は、要求されたコンテンツを様々な形式で修正することができる。一例として、仲介サーバ108は、クライアントマシン104、106に送信する前に、要求されたコンテンツにツールバーを挿入することができる。別の例としては、仲介サーバ108は、一仲介サーバ(例えば、仲介サーバ108)に転送されるように、要求されたコンテンツ内のハイパーリンクを修正することができる。仲介サーバ108は、要求されたコンテンツに関して、その他様々なタスクを実行することができる。さらに、情報検索システム100はまた、サーバに格納された情報の仲介サーバ108における集中格納をサポートすることもできる。サーバに格納された情報は、「クッキー」と呼ばれることが多いが、クッキーは、通常クライアントマシンに格納される。
図1Aに示した報検索システム100は、一対のクライアントマシン、一対のリモートサーバ、単一の仲介サーバ、および一対のプライベートサーバのみを示しているが、情報検索システム100は、多くのクライアントマシンおよび多くのサーバマシンをサポートできるものと理解されたい。情報検索システム100はまた、多数の仲介サーバもサポートすることができることも理解されたい。
図1Bは、本発明の一実施形態に係る情報検索システム150を示すブロック図である。情報検索システム150は、例えば、図1に示した情報検索システム100の更に詳細なインプリメンテーションである。
情報検索システム150は、インターネット152と、有線または無線手段を介してインターネット152に接続したクライアントマシン154、156とを利用している。一般に、クライアントマシン154、156は、ネットワークブラウザまたはメールアプリケーションといったクライアント側アプリケーションを操作する。クライアントマシン154、156のリクエスタ(ユーザ)が、リモートリソースにアクセスすることを望む場合、リソース要求がクライアントマシン154、156からインターネット152を介して仲介サーバ158に送られる。一般に、クライアントマシン154、156と仲介サーバ158間の通信は、暗号化技術(例えば、セキュア・ソケット・レイヤ(SSL))によって保護される。仲介サーバ158は、イントラネット160へのアクセスを可能にする。クライアントマシン154、156により要求されているリソースは、イントラネット160内にある。一般に、ファイアウォールは、イントラネット160への外部アクセスを制限または排除するため、仲介サーバ158は、ファイアウォール162を介してイントラネットと通信することができなければならない。イントラネット160は、一般に、電子的にアクセスすることができる様々な異なったタイプのリソースを含む。一般に、これらのリソースは、イントラネットに接続した、またはその一部をなすサーバマシンに格納されている。図1Bに示しているように、イントラネット160は、認証サーバ164、ウェブサーバ166、メールサーバ168、ファイルサーバ170、およびログサーバ172に接続されているか、またはそれらを備えている。よって、所定のクライアントマシンは、仲介サーバ158を経由し、イントラネット160内またはイントラネット160上にあるサーバ164〜172のいずれにもアクセスすることができる。従って、所定のクライアントマシンは、ネットワークブラウザアプリケーションを使用し、ウェブサーバ166上にあるリソースを要求し受け取ることができる。別の例として、所定のクライアントマシンは、クライアント側メールアプリケーションを使用し、メールサーバ168上にあるメールリソースにアクセスすることができる。更に別の例として、所定のクライアントマシンは、イントラネット160内またはイントラネット160上にあるファイルサーバ170にアクセスし、そこで電子ファイルを得る、格納する、あるいは表示することができる。
仲介サーバ158は、仲介サーバ158を介したイントラネット160へのアクセスが継続的に確実に保護されるよう構成される。この点で、イントラネット160上にあるリソースまたはコンテンツにアクセスしようとしているリクエスタは、認証されなければならない。認証には、イントラネット160内またはイントラネット160上にある認証サーバ164を利用することができる。この点に関しては、イントラネット160が利用するネイティブの認証技術を、仲介サーバ158でリクエスタを認証する際に使用することができる。更に、管理者は、様々なリクエスタ(例えば、クライアントマシンのユーザ)に、イントラネット160内またはイントラネット160上の種々のリソース(例えば、サーバ)に対し、異なったアクセス権を与えることができるように仲介サーバ158を構成することができる。ログサーバ172は、仲介サーバ158における、イントラネット160へのアクセス要求に関するログ情報の格納を可能にする。ログ情報は、ユーザがよりよく認識できるように、アプリケーションレベルごとに提供することができる。
図2Aは、本発明の一実施形態に係る仲介サーバ200を示すブロック図である。仲介サーバ200は、例えば、図1に示した仲介サーバ108としての使用に適している。仲介サーバはまた、中間サーバとも称される。
仲介サーバ200は、仲介サーバにより利用される処理装置により実行されるコンピュータプログラムコードにより一般にインプリメントされる様々な処理モジュールを含む。より詳しくは、仲介サーバ200の処理モジュールは、ウェブサーバ202およびプロトコルハンドラ204を含む。ウェブサーバ202は、リンク206により(ネットワークを介して)クライアントマシンに接続され、プロトコルハンドラ204は、リンク208により(ネットワークを介して)リモートサーバに接続される。ウェブサーバ202およびプロトコルハンドラ204は互いに通信すると同様に、様々な支援モジュールおよびデータ記憶装置210とも通信する。データ記憶装置210は、仲介サーバ200により維持されている様々なデータ項目の永続性または不揮発性の記憶を可能にする。一般に、一クライアントマシンを使用する各ユーザまたはリクエスタに対し、データ記憶装置は個別に記憶することを可能にする。
処理モジュールは、認証マネージャ212およびアクセスマネージャ214を備えている。認証マネージャ212は、リクエスタが、申告通り本人かどうかを判断する役目を果たす認証処理を管理する。認証処理は、仲介サーバ200内部または外部で行われる。例えば、外部認証は、プライベートネットワーク(例えば、認証サーバ164)内の認証サーバにより提供される。アクセスマネージャ214は、プライベートネットワーク上の様々なリソースへのアクセスを制限する。すなわち、異なるリクエスタに、様々なアクセス権レベル、タイプ、あるいはエリアを割り当てることができる。例えば、リクエスタAは、サーバXにはアクセスできるが、サーバYおよびZにはアクセスできず、リクエスタBは、サーバYには読み出し専用でアクセスできるが、サーバXおよびZにはアクセスできない。
仲介サーバ200はまた、コンテンツトランスフォーマ216も備えている。これは、リモートサーバから受け取った要求コンテンツを解析した後、所定の方法でコンテンツを修正するのに使用される、別の処理モジュールである。
仲介サーバ200が備えている場合もある別の処理モジュールは、クッキーマネージャ218である。クッキーマネージャは、リモートサーバから受け取る「クッキー」が、データ記憶装置210に格納され、データ記憶装置210に前もって格納されたものが適切なタイミングでリモートサーバに送信されるように「クッキー」を管理する。より一般的には、「クッキー」は、サーバに格納された情報のことを指す。そのようなサーバに格納された情報は、多くの場合、リモートサーバにより設定され、セッション、状態、あるいは識別を目的として使用される。
図2Bは、本発明の一実施形態に係るリモートアクセスシステム250を示すブロック図である。リモートアクセスシステム250は、クライアント/サーバ環境下で作動し、クライアントのユーザが、リモートサーバでリソースにアクセスできるようにする。具体的には、リモートアクセスシステム250は、ネットワークブラウザ254およびメールクライアント256を備えている。ネットワークブラウザ254およびメールクライアント256は、クライアントマシン上で作動又は実行されるクライアントアプリケーションである。一般に、ユーザまたはリクエスタは、リモートサーバにあるリソースを要求するために、これら一以上のクライアントプログラムと対話する。ネットワークブラウザ254およびメールクライアント256は、セキュアリンクあるいは接続を介して仲介サーバ252に接続される。仲介サーバ252はまた、セキュアまたは非セキュア接続あるいはリンクのいずれかを通じてリモートサーバに接続される。仲介サーバ252は、プライベートネットワーク上で見られるサーバのような様々な異なったサーバへの接続をサポートすることができる。プライベートネットワークの一例は、企業ネットワークである。図2Bに示したサーバは、ウェブサーバ258、Eメールサーバ260、Windows(登録商標)ファイルサーバ262、UNIX(登録商標)ファイルサーバ264、認証サーバ266、およびログサーバ268を備えている。
仲介サーバ252は、フロントエンドプロトコルハンドラレイヤ270に達する前にクライアントアプリケーションとの接続またはリンクに暗号化処理を提供するセキュア・ソケット・レイヤ(SSL)272を備えている。フロントエンドプロトコルハンドラレイヤ270は、様々なクライアントアプリケーションにより利用され得る、送信されてくる異なったタイプのプロトコルを処理するため、複数のプロトコルハンドラを有する。図213に示されているように、フロントエンドプロトコルハンドラレイヤ270は、HTTP、IMAP、SMTP、POP、およびMAPIのプロトコル用に個別のプロトコルハンドラを有する。送られてくる要求に、適切なプロトコルハンドラが利用された後、仲介サーバ252内の他の機能モジュールが利用される。具体的には、アクセスマネージャ274は、要求を送信したリクエスタに、要求しているタイプのアクセスが許可されているかどうか判断することができる。認証マネージャ276は、リクエスタが認証され得るかどうか判断することができる。コンテンツトランスフォーマ278は、受信したリクエスト、またはリモートサーバにより提供された要求されたレスポンスのコンテンツを変換することができる。システム管理マネージャ280は、アクセス権、システム構成、およびログイン機能を構成するために、システム管理者が仲介サーバ252と対話できるようにする。
仲介サーバ252はまた、バックエンドプロトコルハンドラ282も有する。バックエンドプロトコルハンドラ282は、特定のサーバに関して、送信されてくる通信および発信される通信に適切なプロトコルを提供する。図2Bに示されているバックエンドプロトコルハンドラのレイヤは、HTTP、IMAP、SMTP、POP、SMB、NFS、NIS、RADIUS、LDAP、およびNTのプロトコル用のプロトコルハンドラを有する。仲介サーバ252に送信されてくるプロトコルと、仲介サーバ252から発信されるプロトコルとが異なる場合、コンテンツトランスフォーマ278は、プロトコルを変換(例えば、翻訳)することができる。さらに、仲介サーバ252は、データストア284、ログマネージャ286、およびデータ同期マネージャ288を有する。データストア284は、仲介サーバ252の様々なコンポーネントに一時的または半永久的なデータの格納を可能にする。例えば、認証を目的としたローカルレコードは、各クライアントまたはリクエスタのために、データストア284に格納することができる。さらに、クライアントまたはリクエスタのためのセッションIDまたはクッキーも、データストア284に集中的に格納できる。データ同期マネージャ288は、フォルトトレランスを提供するため、一仲介サーバと別の仲介サーバとの接続を可能にするモジュールである。従って、一仲介サーバが機能しなくなった場合、機能しなくなった仲介サーバは、リンク290を介して作動している仲介サーバに接続することができ、一般に一仲介サーバに関連したオペレーションのうちのいくつかあるいは全てを提供することができる。ログマネージャ286は、仲介サーバ252を介してなされる様々なアクセス要求のアプリケーションレベルのロギングを可能にするために設けられている。ログマネージャ286により作成されたログは、ログサーバ268に格納される。
図3は、本発明の一実施形態に係る要求処理300を示すフローチャートである。図1Aに示した仲介サーバ108、図1Bに示した仲介サーバ158、図2Aに示した仲介サーバ200、または、図2Bに示した仲介サーバ252といった仲介サーバが、リクエスタからの要求を受け取ると、常に要求処理300が実行される。
要求処理300は、受信した要求がシステムログイン要求かどうかを判断する決定302から始まる。受信した要求が、システムログイン要求であると決定302で判断されると、要求処理300はリクエスタを認証しようとする304。認証は、ローカルまたはリモートで行なわれる。認証についての更なる詳細を以下記載する。その後、決定306により、リクエスタが認証されたかどうか判断される。決定306により、リクエスタを認証することができないと判断された場合、ログインの試みは失敗に終わり、ログインページがリクエスタに返される308。そのログインページは、リクエスタによるログインの再試行を容易にする。ログイン要求が失敗に終わった場合、オペレーション308をもって要求処理300は完了し終了となる。
また、決定306で、リクエスタが認証されると判断された場合には、セッションIDがリクエスタに返される310。リクエスタは、コンテキストによって、クライアントデバイスのユーザあるいはクライアントデバイスに照会することができる。セッションが実行中である限り、セッションIDは仲介サーバへの次の要求に使用される。さらに、最初のアクセスページが、リクエスタに返される312。最初のアクセスページから、リクエスタはプライベートネットワーク上で利用可能な様々なリソースにアクセスすることができる。ログイン要求が達成された場合、オペレーション312をもって、要求処理300は完了し終了となる。
ログイン要求の処理に加えて、要求処理300はさらに、仲介サーバを介して他のすべてのリモートアクセス要求を処理すべく機能する。従って、決定302で、受信した要求がシステムログイン要求ではないと判断された場合、決定314で、受信した要求が有効なセッションIDを有するかどうか判断される。リクエスタが既に認証されており(つまり、仲介サーバにログインしている)、セッションがまだ有効であれば、受信した要求は有効なセッションIDを有するであろう。従って、決定314で、受信した要求に関連したセッションIDが有効ではないと判断された場合、仲介サーバへのアクセスは拒否され、ログインページがリクエスタに返される308。あるいは、決定314で、セッションIDが有効であると判断された場合、決定316で、セッションがタイムアウトしているかどうか判断される。決定316で、セッションはタイムアウトしていると断定された場合、仲介サーバへのアクセスは拒否され、ログインページがリクエスタに返される308。ここで、リクエスタが、無効のセッションIDを有するか、セッションがタイムアウトしている場合、リクエスタはログインし認証を得るよう強いられる。
一方、決定316で、セッションはタイムアウトしていないと断定された場合、リクエスタは、仲介サーバを介してプライベートネットワークにアクセスすることが許される。その後、リクエスタがアクセスしようとしているアクセスのタイプによって、更なる処理が行われ、リクエスタが、確実に適切かつ対象とみなされるリソースのみにアクセスするようにする。特に、要求処理300に関しては、リクエスタに関連したアクセス権が得られる318。アクセス権は、リクエスタがどのリソースにアクセスする権利を与えられているかを示す。次に、決定320で、受信した要求に関連した特定のアクセスタイプが許可されるかどうか判断される。決定320で、受信した要求に関連したアクセスタイプが許可されていないと判断された場合、アクセスを拒否されたページは、リクエスタに返される322。また、決定320で、受信した要求のアクセスのタイプが許可されていると判断された場合、受信した要求は許可され324、処理される。この場合、この受信した要求の処理により、リクエスタは、プライベートネットワークの保護されたリソースにアクセス(例えば、表示、検索など)することができる。オペレーション322および324をもって要求処理300は完了し、アクセスが許可される場合のみ、受信した要求が処理され終了となる。
図4は、本発明の一実施形態に係る認証処理400を示すフローチャートである。認証処理400は、例えば、図3に示した認証オペレーション304に関連した処理である。
認証処理400は、リクエスタ(ユーザ)に関するローカルレコードが存在するかどうか判断する決定402で開始される。リクエスタに関するローカルレコードが存在すると決定402で判断された場合、決定404で、内部または外部認証が必要かどうか判断される。ここで、ローカルレコードは、内部または外部認証が行なわれるべきかどうかを示す。内部又は外部認証が行なわれるべきかどうかを示す他に、ローカルレコードは更に他の有用な情報、例えば、リクエスタ(ユーザ)の名前、最後にログインした時間、アカウントステータスなどを格納することもできる。決定404で、内部認証が行われるべきであると判断された場合、認証されるべく処理されるログイン要求と共に提供されたパスワードがハッシュされる406。ハッシングとは、文字列を、オリジナルの文字列を示す「キー」と呼ばれる別の文字列に変換することである。ハッシュ機能によりハッシングオペレーションが行われる。ハッシングは、暗号化および復号化コンテキストにおいて行なわれることが多い。
次に、決定408で、ハッシュされたパスワードが、格納されたハッシュパスワードと一致するかどうか判断される。決定408で、一致すると判断された場合、認証が得られたとみなされる410。また、決定408で、一致しないと判断された場合、認証に失敗したとみなされる412。さらに、決定408で、一致しないと判断された場合、アクセス失敗もログに記録させることができる414。一実施形態では、ログはログサーバにより提供することができる。アクセス失敗のロギング414は、後にログを閲覧する際、生じたアクセス失敗の性質についての理解を容易にする、アプリケーションレベル情報を提供することができる。オペレーション410および414をもって、認証処理400は完了し、ログイン要求が正しいパスワードを有しているかどうかにより、認証が得られるかまたは得られず終了となる。
一方、決定402で、リクエスタに関するローカルレコードが存在しないと判断された場合、決定416で、ローカル設定が必要かどうか判断される。システム設定を用いて、ローカルレコードが必要かどうか示すことができる。管理者は、このようなシステム設定を用いてローカルレコードを有するユーザのみにアクセスを限定することができる。決定416で、ローカル設定が必要であると判断された場合、利用可能なローカルレコードがないため、認証に失敗したとみなされる412。ここでも、アクセス失敗を記録することができる414。また、決定416で、ローカル設定は必要ではないと判断された場合、あるいは、決定404で、外部認証が行なわれるべきであると判断された場合、認証に使用される外部認証サーバ(EAS)のアドレスおよびタイプが得られる418。別の処理は、一般に、異なったタイプの外部認証サーバで行なわれる。通常、これらの外部認証サーバは、認証を行なうことを目的としてプライベートネットワーク内に前もって設けられている。一般に、使用される特定の外部認証サーバを示すシステム設定がある。従って、認証処理400には、そのような外部認証サーバによって提供されるネイティブ認証機能を利用することができる。以下、図7に関する説明により、異なるタイプの外部認証に関する更なる詳細を提供する。
次に、決定420で、外部認証が得られたかどうか判断される。ここで、外部認証は示された特定タイプの外部認証により行われる。決定420で、外部認証が得られないと判断された場合、認証に失敗したものとみなされる412。更に、上述のように、アクセス失敗をログすることができる414。一方、決定420で、外部認証が得られたと判断された場合、認証が得られたとみなされる422。オペレーション422をもって、認証処理400は完了し、リクエスタは認証され終了する。
図5は、本発明の一実施形態に係るアクセス権処理500を示すフローチャートである。アクセス権処理500は、例えば、図3の決定320によって行なわれる処理である。すなわち、アクセス権処理500は、要求されているアクセスタイプが、特定のリクエスタに許可されるかどうかを判断する。事実上、アクセスタイプにより、リクエスタによるアクセスを制限するために使用することのできる様々な基準が提供される。図5に示した実施形態に関して、その基準には、ソースインターネットプロトコル(IP)アドレス、時刻、およびオペレーションが含まれる。
アクセス権処理500は、受信した要求に関連したソースIPアドレス(すなわち、リクエスタ)が認可されるかどうかが判断される決定502で始まる。決定502で、受信した要求に関連したソースIPアドレスが認可されないと判断された場合、アクセス権処理500はアクセスを拒否する504。ここで、認可されていないアクセスの危険性を低減するため、アクセス権処理500は、確実に既知のリクエスタのIPアドレスだけがプライベートリソースにアクセスすることができるようにする。
決定502で、ソースIPアドレスが認可されると判断された場合、決定506で、要求がなされている時間が、時刻アクセス制限の条件を満たすかどうか判断される。一般に、この制限は、全リクエスタ、あるいはそれぞれ個別のリクエスタに対して設定することができる。ここで、必要であれば、仲介サーバを構成し、ある一定の期間のみプライベートリソースへのアクセスを許可することができる。これは、例えば、営業時間内または他の限定時間内にのみアクセスを許可することができる。決定506で、要求を受信した時間が、許可された時間外であると判断された場合、アクセス権処理500はアクセスを拒否する504。
要求を受信した時間が、許可された時間内であると判断された場合506、決定508で、受信した要求に関連した特定のオペレーションが許可されるかどうか判断される。ここで、送信されてきた要求は、プライベートリソースに関して様々な異なったオペレーションが行なわれることを要求することができる。これらの様々な異なったオペレーションは、提供されているアプリケーションのタイプに応じて異なる傾向にある。決定508を行うことにより、異なったリクエスタにより使用されることが許可されるオペレーションを制限することができる。決定508で、要求されているオペレーションが許可されないと判断された場合、アクセスは拒否される504。一方、決定508で、要求されたオペレーションが許可されると判断された場合、アクセスが許可される510。オペレーション504および510をもって、アクセス権処理500は完全し終了となる。
図6は、本発明の一実施形態に係る、操作権限処理600を示すフローチャートである。操作権限処理600は、例えば、図5に示した決定508により行なわれる。操作権限処理600は、要求されたオペレーションが許可されると判断された場合、そのようなオペレーションを実行することから、図3のオペレーション320および324に関連させることができる点にも注意されたい。
操作権限処理600は、ファイルブラウズオペレーションが要求されているかどうか判断する決定602で始まる。決定602で、ファイルブラウズオペレーションが要求されていると判断された場合、決定604で、ファイルブラウズがリクエスタに許可されているかどうか判断される。決定604で、ファイルブラウズがリクエスタに許可されていないと判断された場合、アクセスは拒否され606、操作権限処理600は終了する。また、決定604で、ファイルブラウズがリクエスタに許可されていると判断された場合、決定608で、読み取りまたは書き込みオペレーションが要求されているかどうか判断される。決定608で、書き込みオペレーションが要求されていると判断された場合、決定610で、書き込みアクセスが許可されているかどうか判断される。一実施形態では、決定610で、要求をしている特定のリクエスタによる書き込みアクセスが、許可されているかどうか判断される。決定610で、書き込みアクセスが許可されていないと判断された場合、アクセスは拒否され606、操作権限処理600は終了する。また、決定610で、書き込みアクセスが許可されていると判断された場合、書き込み要求処理が行われ612、受信した要求を実行する。オペレーション612をもって、要求されたオペレーションが実行され、操作権限処理600が終了する。
一方、決定608で、読み取りオペレーションが要求されていると判断された場合、決定614で、読み取りアクセスが許可されているかどうか判断される。一実施形態では、決定614で、要求している特定のリクエスタによる読み取りアクセスが許可されているかどうか判断される。決定614で、読み取りアクセスが許可されていないと判断された場合、アクセスは拒否される606。また、決定614で、読み取りアクセスが許可されていると判断された場合、読み取り要求処理が行われ616、要求されたオペレーションが実行される。オペレーション616をもって操作権限処理600は完了し、要求されたオペレーションが実行され、終了する。
一方、決定602で、要求されたオペレーションがファイルブラウズオペレーションではないと判断された場合、決定618で、要求されたオペレーションがウェブブラウズオペレーションかどうか判断される。決定618で、要求されたオペレーションがウェブブラウズオペレーションであると判断された場合、決定620で、そのウェブブラウズオペレーションに関連したサーバが、リクエスタにアクセス可能かどうか判断される。決定620で、サーバがリクエスタにアクセス不可能であると判断された場合、アクセスは拒否される606。一実施形態では、仲介サーバは、特定のリクエスタによりアクセス可能なサーバのリストを保持することができる。これにより、仲介サーバは、特定のリクエスタがサーバ名によってブラウズすることができるリソースをコントロールすることができる。例えば、プライベートネットワークには多数のサーバが含まれている場合もあるが、リクエスタは、ある一定のサーバにのみアクセスできるよう、個別に制限することができる。また、決定620で、そのウェブブラウズオペレーションに関連したサーバが、リクエスタにアクセス可能であると判断された場合、ウェブブラウズ要求処理が行われる622。言い換えれば、リクエスタに特定のサーバにアクセスする権限が与えられていたため、要求されたウェブブラウズオペレーションが行われる622。オペレーション622をもって、要求されたオペレーションが実行され、操作権限処理600は終了する。
一方、決定618で、要求されたオペレーションが、ウェブブラウズオペレーションではないと判断された場合、決定624で、要求されたオペレーションがEメールオペレーションであるかどうか判断される。決定624で、要求されたオペレーションがEメールオペレーションであると判断された場合、決定626で、Eメール(電子メール)がリクエスタに許可されているかどうか判断される。決定626で、Eメールがリクエスタに許可されていないと判断された場合、アクセスは拒否される606。ここで、仲介サーバは、特定のリクエスタによるEメールオペレーションへのアクセスをコントロールすることができる。また、決定626で、Eメールがリクエスタに許可されている判断された場合、Eメール要求処理が行われる628。言い換えれば、リクエスタがそのオペレーションを行なうための適切な権限を持っていたため、要求されたEメールオペレーションが実行される。オペレーション628をもって、要求されたオペレーションが実行され、操作権限処理600は終了する。
更に、決定624で、要求されたオペレーションがEメールオペレーションではないと判断された場合、決定630で、要求されたオペレーションが、仲介サーバにより許可されている他の何らかのオペレーションであるかどうか判断される。この場合、他のオペレーションとしては、仲介サーバにより容易になされる適切ないかなるオペレーションであってもよい。実質的に、他のオペレーションは、仲介サーバで利用可能な汎用オペレーションであってもよい。他のオペレーションはまた、プライベートネットワークにアクセスすることなく、仲介サーバが実行するローカルオペレーションのことであってもよい。ローカルオペレーションの例は多種多様であるが、ブックマークの付加、ローカルレコードの追加、編集、および削除、ファイルシェアの修正などが挙げられる。しかしながら、前記他のオペレーションは、プライベートネットワーク内で行なわれるオペレーションであってもよい。決定630で、要求されたオペレーションが上記他のオペレーションのうちの一つであると判断された場合、決定632で、当該他のオペレーションが許可されているかどうか判断される。決定632で、要求されたオペレーションが許可されている上記他のオペレーションのうちの一つではないと判断された場合、アクセスは拒否される606。また、決定632で、前記他のオペレーションが許可されていると判断された場合、他の要求処理が行われる634。オペレーション634をもって、操作権限処理600は完了し、他のタイプのオペレーションが行われ、終了となる。
一方、決定630で、要求されたオペレーションが許可されている(リクエスタによる)他のオペレーションのうちの一つではないと判断された場合、操作権限処理600は、要求されたオペレーションを行うことなく終了となる。この場合、要求されたオペレーションが、操作権限処理600によりサポートされず、要求されたオペレーションは仲介サーバで処理されない(つまり、ブロックされる)。
図7は、本発明の一実施形態に係る詳細な外部認証処理700を示すフローチャートである。詳細な外部認証処理700は、例えば、図4に示した決定420に関連した詳細な処理である。詳細な外部認証処理700は、ネットワーク情報システム(NIS)、リモート・オーセンティケイション・ダイアル・イン・ユーザ・サービス(RADIUS)、ライトウェイト・ディレクトリー・アクセス・プロトコル(LDAP)、およびNTドメインを含む様々な異なったタイプの外部認証システムをサポートする。従って、仲介サーバに対し行なわれる外部認証は、プライベートネットワークが提供している場合もある、様々なネイティブの認証アプローチのうちのいずれかを使用することができる。
詳細な外部認証処理700は、外部認証サーバ(EAS)がNISであるかどうか判断する決定702で開始される。外部認証サーバがNISである場合、NISレコードが読み取られる704。その後、ログイン要求と共に提供されたパスワードが、ハッシュされる706。ハッシュされたパスワードは、NISレコード内に提供されているものと比較される708。そして、決定710で、ハッシュされたパスワードが一致するかどうか判断される。パスワードが一致した場合、認証が行われる712。パスワードが一致しない場合、認証は失敗に終わる714。
一方、決定702で、外部の認証サーバがNISではないと判断された場合、決定716で、外部認証サーバがRADIUSであるかどうか判断される。外部認証サーバがRADIUSである場合、ログイン要求と共に提供されたユーザ名およびパスワードが、RADIUSの共有秘密を用いて暗号化される718。RADIUSの共有秘密は、一般に共有鍵である。その後、暗号化された値は、認証のためRADIUSサーバに送られる720。そして、決定722で、RADIUSサーバからのレスポンスが受け取られたかどうか判断される。レスポンスは、受け取られると、認証成功か失敗かを示す724。
一方、決定716で、外部認証サーバがRADIUSではないと判断された場合、決定726で、外部認証サーバがLDAPであるかどうか判断される。決定726で、外部認証サーバがLDAPであると判断された場合、ログイン要求と共に提供されたユーザ名とパスワードが認証のためにLDAPサーバに送られる728。その後、決定730で、LDAPサーバからのレスポンスが受け取られたかどうか判断される。レスポンスは、受け取られると、認証成功か失敗かを示す732。
一方、決定726で、外部認証サーバがLDAPではないと判断された場合、決定734で、外部認証サーバがNTドメイン(NTドメインサーバ)であるかどうか判断される。決定734で、外部認証サーバがNTドメインであると判断された場合、NTドメインサーバから乱数が得られる736。その後、ログイン要求と共に提供されたパスワードは、その乱数を用いてハッシュされる738。次に、ハッシュされた値は、認証のためNTドメインサーバに送られる740。その後、決定742で、NTドメインサーバからのレスポンが受け取られたかどうか判断される。レスポンスは、認証成功か失敗かを示す744。
図8Aおよび図8Bは、本発明の一実施形態に係るファイルアクセス要求処理800を示すフローチャートである。ファイルアクセス要求処理800は、例えば、ウェブブラウズオペレーションがリクエスタによって要求された場合行われる処理である。言い換えれば、ファイルアクセス要求処理800は、例えば、図6のブロック622の一実施形態により行なわれる処理であってもよい。
ファイルアクセス要求処理800は、サーバが発見されているかどうか判断される決定802で始まる。決定802で、サーバが既に発見されていると判断した場合、決定804で、ファイルアクセス要求がフォルダコンテンツを表示しようとするものかどうか判断される。決定804で、ファイルアクセス要求がフォルダコンテンツの表示を望むものであると判断された場合、フォルダのコンテンツが検索される806。そして、検索されたコンテンツが、リクエスタに送られる808。
一方、決定804で、ファイルアクセス要求がフォルダコンテンツを表示しようとするものではないと判断された場合、決定810で、ファイルアクセス要求が新しいフォルダを要求しているものかどうか判断される。決定810で、ファイルアクセス要求が新しいフォルダを要求しようとしていると判断された場合、リクエスタは新しいフォルダ名の入力を促される812。その後、決定813で、フォルダ名が受け取られたかどうか判断される。決定813で、フォルダ名がまだ受け取られていないと判断された場合、ファイルアクセス要求処理800はフォルダ名の入力を待つ。決定813で、フォルダ名が受け取られたと判断されると、新しいフォルダが作成される814。
また、決定810で、ファイルアクセス要求が新しいフォルダの作成を求めていないと判断された場合、決定816で、ファイルアクセス要求がファイルのダウンロードを求めているものかどうか判断される。決定816で、ファイルアクセス要求がファイルのダウンロードを求めていると判断された場合、リクエスタに対し、要求されたファイルがダウンロードされる818。一方、決定816で、ファイルアクセス要求がファイルのダウンロードを求めているものではないと判断された場合、決定820で、ファイルアクセス要求がファイルのアップロードを求めているものかどうか判断される。決定820で、ファイルアクセス要求がファイルのアップロードを求めていると判断した場合、リクエスタに対し、要求されたファイルがアップロードされる822。また、決定820で、ファイルアクセス要求がファイルのアップロードを求めていないと判断した場合、図8Aには示していないが、更なるタイプのファイルアクセス要求を処理することができる。従って、ファイルアクセス要求がファイルのアップロードを求めているものではない(また、更なるタイプのファイルアクセス要求がサポートされていない)場合、決定820をもって、ファイルアクセス要求処理800は完了し、ファイルアクセスオペレーションは実行されず終了となる。同様に、ブロック808、814、818、および822をもって、ファイルアクセス要求処理800は完了し終了するが、要求されたファイルアクセスは実行されていない。
更に、決定802で、サーバがまだ発見されていないと判断された場合、ファイルアクセス要求処理800は、図8Bに示した処理を行う。この場合、利用可能なサーバのリストがまず発見される824。その後、決定826で、リクエスタが利用可能なサーバの中から一つを選択するのを待つ。決定826で、サーバ選択がなされたと判断された場合、選択されたサーバに関する共有情報が検索される828。一実施形態では、共用情報は、リモートリクエスタなどのサードパーティと共用可能である、選択されたサーバに格納されたフォルダの情報を識別する。その後、決定830で、サーバに関する情報を永続的に保存するべきであるかどうか判断される。決定830で、サーバに関する情報を永続的に保存するべきであると判断された場合、サーバ情報は保存される832。サーバ情報の保存により、当該サーバは、次回システムにログインした際、利用可能なサーバを発見する必要がなくなるよう「利用可能なサーバ」となる。一方、決定830で、サーバに関する情報を永続的に保存すべきではないと判断された場合、ブロック832はバイパスされる。いかなる場合も、サーバ情報が永続的に保存されるべきではない場合、ブロック830をもって、また同様に、サーバ情報が永続的に保存されるべきである場合、ブロック832をもって、サーバを発見するための処理は完了し、よって、ファイルアクセス処理800は、決定802に戻り、それ以降のオペレーションを繰り返す。
図9A〜9Cは、本発明の一実施形態に係るウェブリソース要求処理900を示すフローチャートである。ウェブリソース要求処理900は、例えば、図1Aに示した仲介サーバ108あるいは図1Bに示した仲介サーバ158といった仲介サーバにより行なわれる。ウェブリソース要求処理900は、ウェブリソース要求を処理するために行われる。
まず、適切なリモートサーバのホスト名を得る902。一実施形態では、ホスト名はストレージから得ることができる。この場合、ストレージは、例えば、図2Aに示したデータ記憶装置214であってもよい。別の実施形態では、ホスト名は、ウェブリソース要求に関連したURLから得ることができる。適切なリモートサーバのホスト名が得られた902後、ホスト名が検索され904、適切なリモートサーバのIPアドレスを得る。その後、リモートサーバに接続される906(あるいは、既に接続されている場合維持される)。次に、必要に応じて、仲介サーバとリモートサーバ間で安全なハンドシェークが行われる908。その後、得られたホスト名に関連するあらゆる「クッキー」が得られる910。オペレーション910をもって、仲介サーバにおけるウェブリソース要求の前処理は完了し、こうして、当該要求はリモートサーバへ転送されることができる。この時、関連した「クッキー」を備えたウェブリソースに対する要求がリモートサーバに送られる912。
その後、決定914で、レスポンスが受け取られたかどうか判断される。決定914で、レスポンスがまだ受け取られていないと判断された場合、ウェブリソース要求処理900は、そのレスポンスを待つ。決定914で、レスポンスが受け取られたと判断された場合、決定91で、レスポンス内に「クッキー」が存在するかどうか判断される。決定916で、「クッキー」がレスポンス内に存在すると判断された場合、「クッキー」はレスポンスから抽出される918。そして、抽出された「クッキー」は保存される920。一般に、「クッキー」は、仲介サーバ内に設けられた中央ストレージ、あるいは、仲介サーバに関連したまたは接続された他のストレージに格納される。オペレーション920、および「クッキー」がレスポンス内に存在しないと判断された場合は、決定916に引き続き、レスポンスのヘッダー内のURLが修正される922。
その後、決定924で、レスポンスが修正されるべきタイプのものであるかどうか判断される。この場合、一般的に、レスポンスは、HTML、グラフィックス、pdf、MPEGあるいは他のフォーマットといった様々な形式のものであり得る。決定924で、レスポンスが修正できないタイプのもの(例えば、グラフィックス)であると判断された場合、レスポンスは直ちにリクエスタに送られる(または転送される)926。その後、決定928で、レスポンスが完了したかどうか判断される。決定928で、レスポンスが完了したと判断された場合、ウェブリソース要求処理900は、更なるウェブリソース要求を処理することができるように、決定914に戻り、それ以降のオペレーションを繰り返す。また、決定928で、これまでのところレスポンスの一部のみがリクエスタに送信されていると判断された場合、ウェブリソース要求処理900は、レスポンスの後続部分を同様に処理することができるように、決定914に戻り、それ以降のオペレーションなどを繰り返す。
一方、決定924で、レスポンスは修正可能なタイプのもの(例えば、HTML)であると判断された場合、レスポンスを処理し、レスポンスがリクエスタに戻る前に修正する。図9Cに示した処理は、レスポンスを修正するために行うことができる処理の一実施形態である。詳細には、決定932では、ツールバーが求められているかどうか判断される。仲介サーバは、ツールバーを、常にまたは時によって挿入するように、あるいは、まったく挿入しないように構成することができる。ツールバーは、仲介サーバにより標準化またはカスタマイズすることができる。決定932で、ツールバーが求められていると判断された場合、ツールバーHTMLがレスポンスに挿入される。ツールバーHTMLによって作成されるツールバーは、仲介サーバによって提供されたフィーチャまたはファンクションを容易にするように、得られたレスポンスに付加されるコントロールあるいはコンテンツを提供することができる。
次に、レスポンスのHTML部分内の一定のURLは修正できる936。一実施形態では、一定のURLの修正は、得られたHTMLの一定のタグ内でURLのホスト名部分を修正することにより行なうことができる。別の実施形態では、一定のURLは、そのURLにサフィックスを付加することにより修正することができる。サフィックスは、このようにURLに追加情報を持たせる役目をする。さらに、得られたHTML内の言語部分をスクリプトすることにより提供または作成される一定のURLを修正することができる938。言語をスクリプトする例としては、Java(登録商標)ScriptとVBscriptが挙げられる。一実施形態においては、得られたHTML内の言語部分をスクリプトすることにより提供または作成される一定のURLのホスト名部分を修正する938。別の実施形態においては、言語部分をスクリプトすることにより提供または作成される一定のURLを修正し938、補足的情報を有するサフィックスを含むようにする。以下、言語部分のスクリプトの修正に関する更なる詳細を、図13Aおよび図13Bを参照し説明する。その後、修正されたレスポンスは、リクエスタに送信される940。
その後、決定942で、要求が終了したかどうか判断される。決定942で、要求は終了したと断定された場合、ウェブリソース要求処理900は完了し終了となる。一方、決定942で、要求はまだ完了していないと判断された場合、ウェブリソース要求処理900は、レスポンスの残りの部分が、受け取られると同時に同様に処理されるように、決定914に戻りそれ以降のオペレーションを繰り返す。このように、ウェブリソース要求処理900は実行され、多数のデータ部分あるいはデータブロック中のリソース要求に対する単一のレスポンスを処理することができる。このような場合、リクエスタへの応答性が阻害されないように、ウェブリソース要求処理900は、リモートサーバからのレスポンスを受け取るとすぐ処理することができる。この点に関して、ウェブリソース要求処理900は、レスポンスに関連した各データ部分あるいはデータブロックに対して、オペレーション914〜942が繰り返されるようにする。
図10は、本発明の一実施形態に係る情報検索システム1000を示す図である。情報検索システム1000は、図1Aの情報検索システム100または図1Bの情報検索システム150と概して同様のものである。情報検索システム1000のオペレーションに関して、一実施形態に係るそのオペレーションを示す代表例を挙げて以下論じる。情報検索システム1000は、クライアント1002、データストア1006を備えた仲介サーバ1004、およびリモートサーバ1008を含む。図3の要求処理300は、既に行なわれているものとし、また、リクエスタは、試みた方法で、要求されたリソースにアクセスすることを許可されているものとする。
この代表的な例は、ユーザが、ウェブブラウズ要求のコンテンツ内に表示されたウェブページ中のハイパーリンクを選択することで開始される安全な要求に関する。選択されたハイパーリンクを、
https://secure.danastreet.com/quote/msft:danainfo:host=www.xyz.com
と仮定する。ここで、「https」は、セキュア・ソケット・レイヤ(SSL)を使用するプロトコルであり、「secure.danastreet.com」は、「danastreet.com」をドメインとし、「secure」をサブドメインとするホスト名であり、「/quote/msft」は、前記ハイパーリンクの選択により要求される特定のリソースへのパスであり、「danainfo」はキーワードであり、「www.xyz.com」は、要求されたリソースが存在するホストある。従って、ホスト名前「secure.danastreet.com」のドメインネームの検索は、この例に関する仲介サーバ1004であるdanastreet.comのIPアドレスによりなされる。そして、その要求はクライアント1002から仲介サーバ1004へ送信される。その要求は、例えば、以下のようなものである:
GET:/quote/msft:danainfo:host=www.xyz.com HTTP/1.0
Host:secure.danastreet.com
Cookie:DSID=123xyzzbc
追加のクッキー、暗号化の容認等、他の情報も、要求内に含まれていてもよい。クッキーは、この例では、セッションクッキー(セッションID)であり、クライアント1002に、仲介サーバ1004を用いた使用が許可されているかどうかを判断する際に使用される。
安全な要求の場合には、要求内のホスト名は、要求が最終的に送信されるリモートサーバ1008を直接識別することはできない。しかしながら、リモートサーバ1008に関するホスト名は、要求と共に提供される情報から得られる。より詳しくは、情報(つまり、ホスト変数)は、要求と共にサフィックスとして提供される。この例において、サフィックスは、リモートサーバ1008のホスト名が、「www.xyz.com」であるという情報を含む。適切なホスト名が得られると、ホスト名(「www.xyz.com」)に関するドメインネーム検索が行われる。次に、仲介サーバ1004およびリモートサーバ1008からの接続が行われ(あるいは、既に接続されていた場合は、維持され)、安全なハンドシェークがオプションとして行われる。その後、ホスト名およびリクエスタに関連したデータストア1006内のあらゆるクッキーを得ることができる。次に、仲介サーバ1004による要求は、リモートサーバ1008に送信される。その要求は、例えば、
GET:/quote/msft HTTP/1.0
Host:www.xyz.com
Cookie:xyzUserID=sam
である。他の情報も前記要求に含まれていてもよい。オリジナルの要求と共に提供されるクッキーは、仲介サーバ1004に関したものであり、よって、リモートサーバ1008へ要求と共に転送されることはないという点に注意されたい。
リモートサーバ1008は、要求を受け取り、レスポンスヘッダーおよび要求されたリソースのコンテンツの一部または全てを送り返す。典型的なレスポンスは、以下のフォーマットを有していてもよい:
HTTP/1.0 200 OK
Set−cookie:xyzuserID=Samual,expires=01−Jul−2002
Content−type:text/html
Content−length:2000
Location:https://www.xyz.com/quote/msft<HTML>

**
</HTML>
レスポンスが、設定すべき「クッキー」を含んでいたため、クッキー設定コマンドは、レスポンスから取り除かれた後、データストア1006に保存される。次に、ヘッダー内のURLは、存在する範囲内で、仲介サーバ1004に向けられるように修正される。この例において、位置ヘッダはフルパス(ホスト名を含む)を含む、すなわちhttps://www.xyz.com/quote/msftを含み、よって、これは、https://secure.danastreet.com/quote/msft:danainfo:host=www.xyz.com,SSLに修正される。この例においては、ホスト名が修正されただけでなく、URLの終わり(つまり、サフィックス)に変数も付加されている。付加された変数情報は、要求されたリソースを持つホストサーバのインジケータおよびSSLインジケータである。この例では、関連URLの終わりに変数情報(「danainfo:host=www.xyz.com」)を含むように、関連URLを修正する必要がある。関連URLのホスト名は、現在のホスト名(「secure.danastreet.com」)をそのようなパスに使用させるクライアント1002上で作動するブラウザアプリケーションにより適切に提供される。もし必要であれば、仲介サーバ1004にサポートされたオペレーションまたはファンクションを容易にするために、ツールバーをHTMLデータに挿入することができる。更に、得られたHTMLの一定のタグ内のURL、または言語をスクリプトすることにより作成されたものは、仲介サーバ1004に向けられるように修正される。
例えば、HTMLデータが、
<a ref=https://www.xyz.com/quote/msft>
といったハイパーリンクを含んでいた場合、ハイパーリンクは、
<a ref=https:Hsecure.danastreet.com
/quote/msft:danainfo:host=www.xyz.com,
SSL>
に修正されるであろう。
また、HTMLデータが
<a ref=a.html>
という関連したハイパーリンクを含んでいた場合、このハイパーリンクは、
<a ref=a.html:danainfo:host=www.xyz.com,
SSL>
に修正されるであろう。
URLの終わり(すなわち、サフィックス)に提供される変数情報は、実際に末尾にある必要はない点に注意されたい。この場合、サフィックスは、一般にドメインネームの右側に示すのに使用される。事実、変数情報は、URL中の様々な異なった位置に(ドメインネームの左側にさえ)配置することができる。例えば、オリジナルのハイパーリンク自体が、記号「?」または「#」に続くような変数を有する場合、一実施例において、変数情報(「danainfo:host=www.xyz.com」)は、オリジナルの変数を示す記号「?」または「#」の前に配置できる。例えば、HTMLデータが、ハイパーリンク:
<a ref=https://www.xyz.com/quote/msft?color=red>
を含んでいた場合、このハイパーリンクは、
<a ref=https:Hsecure.danastreet.com
/quote/msft:d an ainfo:host=www.xyz.com?
color=red>
に修正されるであろう。
また、HTMLデータが、関連したハイパーリンク:
<a ref=a.html?x=1234>
を含んでいた場合、このハイパーリンクは、
<a ref=a.html:danainfo:host=www.xyz.com?
x=1234>
に修正されるであろう。
また別の例として、HTMLデータが、関連したハイパーリンク:
<a ref=a.html,port=1234>
を含んでいた場合、このハイパーリンクは、
<a ref=a.html:danainfo:host=www.xyz.
com,port=1234>
に修正されるであろう。
図11は、本発明の一実施形態に係るURL修正処理1100を示すフローチャートである。URL修正処理1100は、例えば、図9Cのオペレーション936によって行われる処理である。URL修正処理1100は、例えば、図2Aに示したコンテンツトランスフォーマ216または図2Bに示したコンテンツトランスフォーマ278により行うことができる。
URL修正処理1100は、レスポンスのHTML部分内のターゲットURL(例えば、ウェブページ)を選択1102することにより開始される。一般に、一つ以上のターゲットURLが、前もってHTMLデータのスキャンにより識別される。その後、決定1104で、ターゲットURLが関連URLかどうか判断される。関連URLは、そのソースURLの特性を継承する。ソースURLは、ターゲットURLを含むウェブページ(得られたHTMLを含む)に関連したURLである。決定1104で、ターゲットURLが関連URLであると判断された場合、ソースURLからのホスト名および/またはポートサフィックスが、ターゲットURLに付加される1106。
また、決定1104で、ターゲットURLが関連URLではないと判断された場合、決定1108で、ターゲットURLが安全な要求(例えば、HTTPS)に関連しているかどうか判断される。決定1108で、ターゲットURLに対する要求が、安全な要求であると判断された場合、安全標識(例えば、HTTPS)がターゲットURLに付加される1110。一方、決定1108で、ターゲットURLが安全な要求に関連したものではないと判断された場合、オペレーション1110はバイパスされる。
オペレーション1110に引き続き、また、ターゲットURLが安全な要求に関連していない場合は決定1108の直後に、ターゲットURLと共に提供されたホスト名は、ターゲットURLのどこか他の位置に追加される1112。例えば、ターゲットURLと共に提供されたホスト名は、ターゲットURLにアペンドすることができる。そして、ターゲットURLと共に提供されたオリジナルのホスト名は、所定のホスト名に置き換えられる1114。言い換えれば、ターゲットURLに元々提供されていたホスト名は、オリジナルのホスト名が所定のホスト名に置き換えられるように効果的に書き換えられるが、オリジナルのホスト名は、ターゲットURLの一部として残る。例えば、所定のホスト名は、適切な仲介サーバのホスト名である。
次に、決定1116で、ポート番号がターゲットURLの中で指定されているかどうか判断される。決定1116で、ポート番号がターゲットURLの中で指定されていると判断された場合、ポート番号サフィックスが、ターゲットURLに付加される1118。ホスト名に続くターゲットURLの中で本来指定されていたポート番号は、削除される1120。
オペレーション1120に引き続き、URL修正処理1100は決定1122を行う。さらに、決定1116で、ポート番号がターゲットURL内で指定されていないと判断された場合、ポート番号処理は必要なく、決定1122が行われる。決定1122で、更にターゲットURLが処理されることになっているかどうか判断される。先に述べたように、これらのターゲットURLは、得られたHTMLデータのスキャンにより前もって識別されている。決定1122で、処理すべきターゲットURLがまだあると判断された場合、URL修正処理1100は、更なるターゲットURLを処理できるように、オペレーション1102に戻り、それ以降のオペレーションを繰り返す。また、決定1122で、それ以上ターゲットURLはないと判断された場合、URL修正処理1100は完了し、終了となる。
図12は、本発明の一実施形態に係るスクリプト修正処理1200を示すフローチャートである。スクリプト修正処理1200は、例えば、図9Cに示したオペレーション938によって行われる。一般に、スクリプト修正処理1200は、得られたHTML内のスクリプト部分を修正する働きをする。
スクリプト修正処理1200は、まず、<script>タグに関するHTMLデータ(例えば、得られたHTMLのデータ)をスキャンする1202。その後、決定1204で、スクリプトが見つかったかどうか判断される。決定1204で、スクリプトが見つからなかったと判断された場合、決定1206で、スキャンすべき更なるHTMLデータがあるかどうか判断される。決定1206で、更にスキャンすべきHTMLデータがあると判断された場合、スクリプト修正処理1200は、オペレーション1202に戻り、それ以降のオペレーションを繰り返す。また、決定1206で、スキャンすべきHTMLデータはこれ以上ないと判断された場合、スクリプト修正処理1200は完了し、終了となる。
一方、決定1204で、スクリプトが発見されたと判断された場合、ホスト名が後に続くテキストストリング「http://」または「https://」を配置するためスクリプトを検索する1208。そして、決定1210で、スクリプトの検索1208によりURLホスト名が発見されたかどうか判断される。決定1210で、URLホスト名が発見されなかったと判断された場合、決定1212で、スクリプトの最後に達したかどうか判断される。決定1212で、まだスクリプトの最後に達していないと判断された場合、スクリプト修正処理1200はオペレーション1208に戻り、それ以降のオペレーションを繰り返す。また、決定1212で、スクリプトの最後に達したと判断された場合、スクリプト修正処理1200は、更なるスクリプトを発見し処理することができるように、オペレーション1202に戻り、それ以降のオペレーションを繰り返す。
一方、決定1210で、URLホスト名が発見されたと判断された場合、書き換えられたホスト名が作成される1214。スクリプトに設けられたホスト名は、その書き換えられたホスト名で置き換えられる1216。オペレーション1216に引き続き、スクリプト内の更なるホスト名を同様に処理できるように、スクリプト修正処理1200は、オペレーション1208に戻り、それ以降のオペレーションを繰り返す。
図13Aおよび図13Bは、本発明の別の実施形態に係るスクリプト修正処理1300を示すフローチャートである。スクリプト修正処理1300は、例えば、図9Cに示したオペレーション938によって行われる。一般に、スクリプト修正処理1300は、得られたHTMLのスクリプト部分を修正する働きをする。
スクリプト修正処理1300は、最初に、<スクリプト>タグに関するHTMLデータ(例えば、得られたHTMLのデータ)をスキャンする1301。その後、決定1302で、スクリプトが発見されたかどうか判断される。決定1302で、スクリプトが発見されたと判断された場合、スクリプトは解析され1304、スクリプトに関連した所定のプロパティおよび関数を判断または検出する。その後、決定1306で、スクリプト内に少なくとも一つのプロパティまたは関数が発見されたかどうか判断される。決定1306で、少なくとも一つのプロパティまたは関数が発見されたと判断された場合、スクリプト修正処理1300は、仲介サーバがクライアントデバイスとリモートサーバの間に配置されている場合でも、スクリプトが意図通り働くように、スクリプト内で発見されたプロパティまたは関数に関してスクリプトが修正されるように継続される。
とりわけ、スクリプト内で発見された各プロパティまたは関数に関しては、処理は以下のように行われる。決定1308で、スクリプト内で発見された、選択されたプロパティまたは関数が、クッキープロパティの読み取りに関するものかどうか判断される。決定1308で、識別されたプロパティまたは関数がクッキープロパティの読み取りに関するものであると判断された場合、クッキープロパティの読み取りは、getCookies関数呼び出しに置き換えられる1310。また、決定1308で、識別されたプロパティまたは関数がクッキープロパティの読み取りではないと判断された場合、および、オペレーション1310の後、決定1312で、識別されたプロパティまたは関数がクッキープロパティへの書き込みに関するかものであるかどうか判断される。決定1312で、識別されたプロパティまたは関数がクッキープロパティへの書き込みに関するものであると判断された場合、クッキープロパティへの書き込みは、set_Cookies関数呼び出しに置き換えられる1314。
一方、決定1312で、識別されたプロパティまたは関数がクッキープロパティへの書き込みに関連のないものであると判断された場合、およびオペレーション1314の後、決定1316で、識別されたプロパティまたは関数が、要求を開始するプロパティへの書き込みに関するものかどうか判断される。決定1316で、識別されたプロパティまたは関数が、要求を開始するプロパティへの書き込みに関するものであると判断された場合、要求を開始する(引き起こす)プロパティへの書き込みが、setURL関数呼び出しに置き換えられる1318。また、決定1316で、識別されたプロパティまたは関数が要求を開始するプロパティへの書き込みに関するものではないと判断された場合、およびオペレーション1318の後、決定1320で、識別されたプロパティまたは関数が、URLを返すプロパティからの読み出しに関するものかどうか判断される。決定1320で、識別されたプロパティまたは関数が、URLを返すプロパティからの読み出しに関するものであると判断された場合、URLを返すプロパティからの読み出しは、適切なストリングに置き換えられる1322。
また、識別されたプロパティまたは関数が、URLを返すプロパティからの読み出しに関するものではない場合は決定1320の後、および、オペレーション1322の後、決定1324で、スクリプト内に、更に処理を必要とするプロパティまたは関数が発見されたかどうか判断される。更なるプロパティまたは関数が発見され、処理を必要とする場合、スクリプト修正処理1300は、更なるプロパティまたは関数を同様に処理できるように、決定1308に戻り、それ以降のオペレーションを繰り返す。一方、決定1324で、スクリプト内で発見されたプロパティまたは関数が全て処理されていると判断された場合、スクリプト修正処理1300は、決定1326を行う。決定1326はまた、決定1302で、スクリプトは発見されなかったと判断された場合にも行われる。決定1326で、スキャンすべき更なるHTMLデータがあるかどうか判断される。決定1326で、スキャンすべき更なるHTMLデータがあると判断された場合、スクリプト修正処理1300は、オペレーション1301に戻り、それ以降のオペレーションを繰り返す。また、決定1326で、スキャンすべきHTMLデータはこれ以上ないと判断された場合、スクリプト修正処理1300は完了し、終了となる。
以下、get cookies関数、set_cookies関数、setURL関数、およびストリング置換の代表的な例を記載する。これらの例は、理解を助けるために挙げられているものであり、よって、本発明のいずれかの態様に関する限定とみなされるべきではない。以下の例では、スクリプト言語としてJava(登録商標)Scriptを使用する。
get cookies関数およびオペレーション1310に関する第一の例を以下説明する。この例において、スクリプトは、スクリプト命令
var c=document.cookie;
を含んでいる。これは、そのドキュメント(ページ)に関連したクッキーを変数cに割り当てるものである。このスクリプト命令は、
var c=get cookies (「othercookie=abc」);
と置き換えられるであろう。これは、そのドキュメント(ページ)の特定のドメインおよび特定のユーザ(例えば、「othercookie=abc」)の仲介サーバに存在するクッキーを割り当てるものである。更に、get cookies関数は、その引数として仲介サーバからクッキーを取り、それにスクリプトによって設定される他のクッキーを加える。
set cookies関数およびオペレーション1314に関する第二の例を以下説明する。この例において、スクリプトはスクリプト命令
document.cookie="selection=ijk;expires=...":
を含む。これは、ドキュメント(ページ)に関連したクッキーをブラウザに格納する。このスクリプト命令(ステートメント)は
document. cookie = set_cookie("<domain>","selection=ijk;expires=...";);
と置き換えられる。これは、ドキュメント(ページ)に関連したクッキーをブラウザおよび仲介サーバにも格納する。set cookies関数は、2つの引数を含んでいる。第一の引数は、スクリプトを有するページのドメインを識別する。第2の引数は、元々ドキュメントクッキープロパティに割り当てられていた値である。set cookies関数は、これら2つの引数を組み合わせ、有効期限のないservercookieXと呼ばれるクッキーを設定する。但し、Xは、識別数値を表す。ブラウザにより、このクッキーは仲介サーバに送られるであろう。その後、仲介サーバはユーザ用のクッキーストレージにクッキーを組み入れることができる。クッキーはまた、ユーザ用のストレージ中の既存のクッキーを失効させるために使用することができる。一旦、クッキーが仲介サーバに格納されると、仲介サーバが返送する次のページでは、servercookieXはもはや必要とされないため、失効する。setcookies関数に対する呼び出しはまた、servercookieX内にあるいかなるクッキー価値をも付加するであろう。
更なる説明を目的として、次の例について考えてみる。次の例では、www.xyz.comのページが、以下のスクリプトを有する:
document.cookie="a=b";
var x=document.cookie;.
また、www.xyz.comサーバは、値"sam"を持つ"id1"という名前を有する仲介サーバに前もってクッキーを返しているものとする。上記コードは、
document.cookie=set cookie("www.xyz.com","a=b");
var x=get cookie("id 1=sam");
に変換されるであろう。
一行目により、「a=b−domain=www.xyz.com」といった値を有するクッキー「servercookie()」が設定される。従って、クッキー全体は以下のようになる:
servercookie()=a=b−domain=www.xyz.com。
servercookie()のドメイン部分は、どのドメインがクッキーを設定しているかが分かるように、仲介サーバによってのみ使用されることに注意されたい。二行目は、その最初の引数(スクリプトが書き換えられると同時に、仲介サーバによって書き込まれた)をとり、ブラウザで全てのservercookie()のクッキーを検査するgetcookies関数を呼び出す。それは、あらゆるservercookieXクッキーと共に最初の引数を連結し、その結果:
id 1=sam;a=b
を返す。これは、たとえ書き換えられていなかったとしても、オリジナルのページから返されるのと同様の結果であることに注意されたい。
setURL関数およびオペレーション1318に関する第三の例を以下説明する。そのsetURL関数は、要求をさせるプロパティを修正する働きをする。この例において、スクリプトはスクリプト命令
document.location="http://www.xyz.com/foo.htmi";
を含む。これは、ブラウザを新しいページに導く。このようなスクリプト命令は、
document.location=set URL
" " ,"http://www.xyz.com/foo.html");
と置き換えられる。
setURL関数呼び出しは、2つの引数をとる。第一の引数は仲介サーバによって書き込まれる一方で、スクリプトは書き換えられ、URLに従うためにサフィックス(例えば、「danainfo:」)に通常設けられているあらゆるパラメーターを含んでいる。後で説明するように、これは必ずしも必要とは限らない。第二の引数は、URLであるが、実際には、URLを組み立てるか返信するスクリプト表現(例えば、関数呼び出し)であり得る。
setURL関数は、設定されているURLを検査し、ブラウザを仲介サーバに導く形式になるようにそれを書き換える。上述のように、URLは様々な手法で修正することができる。
そのページが、ホスト名修正手法を用いている場合、ホスト名が必要な情報をエンコードするため、関連URLを修正する必要はない。前記URLが、全URLである場合、setURL関数は、URLを変換するために必要とする全ての情報を有する。例えば、サフィックス(例えば、「:danalnfo:host=xxx」)をURLにアペンドすることができる。従って、スクリプトが現われるページが、ホスト名修正手法を用いている場合、setURL関数は、第一の引数を必要としない。
また、スクリプトの存在するページが、URLサフィックス手法を用いている場合、setURL関数に渡される関連URLは、それに適用されているのと同様のサフィックスを有していなければならない。この場合、仲介サーバは、setURL関数に対する第一の引数として、サフィックスにおいて渡される必要のあるあらゆる引数を挿入するであろう。例えば、そのページのURLが、
https://secure.danastreet.com/quote/msft:danalnfo:host=www.xyz.com
であり、そのページのスクリプト命令が、
document.location="/uqote/ibm";
を含む場合、書き換えられたスクリプト命令は、
document.location=set URL("Host=www.xyz.com","/quote/ibm");
といったものになるであろう。そして、setURL関数から返された結果は、
/quote/ibm:danalnfo:host=www.xyz.com
となるであろう。これは、
https://secure.danastreet.com/quote/ibm:danalnfo:host=www.xyz.com
に対するブラウザからの要求となるであろう。
また、スクリプト命令が上記の代わりに
document.location="https://www.abc.com/info/msft";
であった場合、書き換えられたスクリプト命令は、
document.location=set URL("Host=www.xyz.com","https://www.abc.com/info/msft");
といったものになるであろう。そして、setURL関数から返された結果は、
https://secure.danastreet.com/info/msft:danalnfo:host=www.abc.com
となるであろう。
この場合、第二の引数が完全URLであり、最終URLを構築するのに必要な情報を全て含んでいるため、setURL関数に対する第一の引数は必要とされないことに注意されたい。
書かれた時、ブラウザにURLをフェッチさせることのできる多くの関数またはプロパティがあることに注意すべきである。例としては、
window.open('url',...)
form.action='url';
document.location='url';
document.location.replace('url');
image.src='url';
などが挙げられる。
ストリング置換およびオペレーション1322に関する第四の実施例を、以下説明する。ストリング置換は、URLを返すプロパティを修正する働きをする。ここで、URLを返すプロパティから読み取るスクリプト命令は、定数ストリングと置き換えられる。この例において、スクリプトが、
var url=document.location;
を含んでいる場合、そのようなものは、
var url="http://www.yahoo.com/foo.htmi";
によって置き換えられるであろう。
このオペレーションは、その環境を検査するいかなるスクリプトも、そのページの実際のURLが、予期するものとは異なることにより混乱することがないよう徹底する役目を果たす。修正を必要とするかもしれない二つ以上のプロパティがあることに注意されたい。そのような修正をすることのできるプロパティのいくつかの例としては、
document.location (全URLを返す)
document.domain (URLのホスト名部分のみを返す)
が挙げられる。
図14は、本発明の一実施形態に係る、Eメール要求処理1400を示すフローチャートである。Eメール要求処理1400は、例えば、図6のブロック628で行われたEメール要求処理としての使用に適している。
Eメール要求処理1400は、まず、メールクライアントとのセキュア接続を受け入れる1402。ここで、メールクライアントと、受け入れられている1402仲介サーバとの間のセキュア接続は、例えば、セキュア・ソケット・レイヤ(SSL)を使用することにより安全なものとすることができる。次に、リクエスタは、認証のため入力を促される1404。一般に、リクエスタは、リクエスタを認証するために使用できる少なくとも一つのパスワードを入力するように促される1404。そして、決定1406で、パスワードが受け取られたかどうか判断される。一般に、受け取られたパスワードは、なんらかの方法でエンコードされるが、必ずしもエンコードされるとは限らない。例えば、Base64エンコードがよく利用される。決定1406で、パスワードが受け取られたと判断された場合、そのパスワードは、メールサーバパスワードと認証サーバパスワードとに分けられる1408。一例として、受け取られたパスワードは、パスワードセパレータによって分離されたメールサーバパスワードおよび認証サーバパスワードの両方を含んでいてもよい。
次に、Eメールサーバは、メールサーバパスワードの確認1410を試みる。ほぼ同時に、認証サーバパスワードは、認証サーバにより確認1412が試みられる。次に、決定1414で、ブロック1410および1412の両方の確認ができたかどうか判断される。決定1414で、両方の確認ができたと判断された場合、パスワードのハッシュされたバージョンが格納される1416。そして、Eメール要求に関連したメールオペレーション処理1418が行われる。一方、決定1414で、ブロック1410および1412の両方の確認ができないと判断された場合、Eメール要求は拒否される1420。オペレーション1418および1420をもって、Eメール要求処理1400は完了し、終了となる。
図15は、本発明の一実施形態に係るメールオペレーション処理1500を示すフローチャートである。メールオペレーション処理1500は、例えば、図14に示したブロック1418によって行われる処理の一例である。
メールオペレーション処理1500は、接続が時間切れあるいはクローズしたかどうかを判断する決定1502で始まる。この場合、接続とは、メールクライアントと仲介サーバとの間のセキュア接続のことを言う。決定1502で、セキュア接続が時間切れあるいはクローズしたと判断された場合、メールサーバへのEメールアクセスは拒否される1504。従って、セキュア接続が時間切れあるいはクローズした場合、ブロック1504をもって、メールオペレーション処理は完了し終了となる。しかしながら、前記処理を続け、メールサーバにアクセスするために、リクエスタがログインし認証されるようにするため、ログインページをリクエスタに返すこともできる。
その一方で、決定1502で、既存の接続が時間切れあるいはクローズしていないと判断された場合、決定1506で、メールクライアントからのコマンドを受け取ったかどうか判断される。決定1506で、メールクライアントからのコマンドを受け取っていないと判断された場合、メールオペレーション処理1500は、決定1502に戻り、メールクライアントからのコマンドを受け取るか、接続が時間切れあるいはクローズするまで、それ以降のオペレーションを繰り返す。
決定1506で、メールクライアントからのコマンドを受け取ったと判断されると、コマンドはメールサーバに送られる1508。次に、決定1510で、メールサーバからレスポンを受け取ったかどうか判断される。決定1510で、メールサーバからレスポンスをまだ受け取っていないと判断された場合、メールオペレーション処理1500は、そのようなレスポンスを待つ。決定1510で、レスポンスを受け取ったと判断されると、レスポンス内の一定のユニバーサル・リソース・ロケーター(URL)を修正する1512。例えば、コンテンツトランスフォーマの一部として、リンクまたはURLは、仲介サーバを介してリンクを転送するように修正することができる。次に、レスポンスは、メールクライアントに送られる1514。ここで、レスポンスは、メールクライアントと仲介サーバとの間に存在する接続を用いて、メールクライアントに送られる。ブロック1514に引き続き、メールオペレーション処理1500は、メールサーバに関して更なるコマンドを処理することができるように決定1502に戻り、それ以降のオペレーションを繰り返す。
図16は、本発明の一実施形態に係る認証処理1600を示すフローチャートである。認証処理1600は、図14に示したブロック1412の一実施形態を表す。この実施形態では、ある条件が満たされた場合、仲介サーバは、認証サーバによるパスワードの実際の確認をバイパスまたは回避することができる。そうすることにより、認証は、多くの場合、非常に迅速、且つ、リクエスタに負担をかけたり、いらだたせたりすることなく行なうことができる。
認証処理1600は、格納されているハッシュされたパスワードが利用可能かどうか判断する決定1602で始まる。ハッシュされたパスワードが前もって格納されている(図14のオペレーション1416)場合、そのハッシュされたパスワードは、この事項に関して後に検索され使用される。従って、決定1602で、格納されているハッシュされたパスワードが利用可能であると判断された場合、その格納されているハッシュされたパスワード、最後に許可された時間、および最後にパスワードが使用された時間が検索される1604。一般に、これらの値は、仲介サーバに関連したデータストアに格納されており、そのリクエスタに特有の保管値である。
次に、決定1606で、受け取ったパスワードのハッシュが格納されているハッシュされたパスワードと等しいかどうか判断される。決定1606で、受け取ったパスワードのハッシュが、格納されているハッシュされたパスワードと等しいと判断された場合、リクエスタは事実上認証される。これは、セッションの初めに、適切なパスワードを入力し、そして認証されたためである。さらに、決定1610で、最後に許可されてからの時間が、セッション継続時間の上限より長いかどうか判断される。ここで、最後に許可されてから有効期限が切れていた時間の長さを示す変数を、セッション継続時間の上限と比較する。一般に、セッション継続時間の上限は、リクエスタ、あるいは仲介サーバのシステム管理者によって設定される。
いかなる場合も、決定1610で、最後に許可されてからの時間がセッション継続時間の上限を超過していないと判断された場合、決定1612で、最後にパスワードが使用されてからの時間が、アイドルタイムの上限を超過しているかどうか判断される。ここで、最後にパスワードが使用されてから有効期限が切れていた時間の長さを示す変数を、アイドルタイムの上限と比較する。決定1612で、最後にパスワードが使用されてからの時間が、アイドルタイムの上限を超過していないと判断された場合、認証サーバと対話する必要なく、認証サーバによる認証1614が正常に得られたものとされる。従って、最後に許可されてからの時間がセッション継続時間の上限を超過しておらず、更に、最後にパスワードが使用されてからの時間がアイドルタイムの上限を超過していなければ、受け取ったパスワードのハッシュが、格納されているハッシュパスワードと等しい場合、許可サーバに関する認証はバイパスすることができる。
一方、特別な条件が存在しない場合、パスワードは認証サーバにより確認される1608。例えば、決定1602で、格納されているハッシュパスワードが利用不可能であると判断された場合、認証サーバによる確認1608が行われる。同様に、決定1606で、受け取ったパスワードのハッシュが格納されているハッシュパスワードと等しくないと判断された場合も、認証サーバによるパスワードの確認1608が必要となる。さらにまた、決定1610で、最後に許可されてからの時間が、セッション継続時間の上限を超過していると判断された場合、または、決定1612で、最後にパスワードが使用されてからの時間がアイドルタイムの上限を超過していると判断された場合、パスワードは、認証サーバにより確認1608される必要がある。
オペレーション1608および1614に引き続き、認証処理1600は、他の処理を行うため前のオペレーション、すなわち図14に示したオペレーション1414に戻る。従って、上記の特別な条件が存在するため確認1608がバイパスされる場合、認証処理は非常に簡素化され、多くの場合、認証サーバに関する複雑な認証処理を行なったり、リクエスタに認証情報の入力を促したりする必要がなくなる。
図17Aと1713は、本発明のいくつかの実施形態により使用できるコンピュータシステムの一例を示す。このコンピュータシステムは、例えば、クライアントマシン、仲介サーバ、あるいはリモートまたはプライベートサーバのうちのいずれかに該当し得る。図17Aは、ディスプレイ1723、スクリーン1725、キャビネット1727、キーボード1729、およびマウス1731を備えたコンピュータシステム1721を示している。マウス1731は、グラフィカルユーザインターフェースとの対話のため一以上のボタンを備えていてもよい。キャビネット1727は、本発明のいくつかの実施形態をインプリメントするコンピュータコードを組み込むソフトウェアプログラムや、本発明のいくつかの実施形態で使用するデータ等を格納したり検索したりするのに利用できる取出し可能なメディア(例えば、CD−ROM)ドライブ1733、システムメモリ、およびハードドライブ(図1713参照)を収容している。CD−ROM1735は、典型的なコンピュータ読み取り可能記憶媒体として示しているが、フロッピー(登録商標)ディスク、テープ、DVD、フラッシュメモリ、システムメモリ、およびハードドライブを含む他のコンピュータ読み取り可能記憶媒体を利用してもよい。さらに、搬送波(例えば、インターネットを含むネットワーク)に組み込まれたデータ信号が、コンピュータ読み取り可能記憶媒体であってもよい。一インプリメンテーションにおいて、コンピュータシステム1721用のオペレーティングシステムは、システムメモリ、ハードドライブ、CD−ROM1735、または他のコンピュータ読み取り可能な記憶媒体に設けられ、本発明のいくつかの実施形態をインプリメントするコンピュータコードを組込む役目を果たす。
図1713は、本発明の一実施形態に係る処理を行なうために使用されるコンピュータシステム1721のシステムブロック図を示す。図17Aに示すように、コンピュータシステム1721は、モニター1723、キーボード1729、およびマウス1731を備えている。コンピュータシステム1721は、更に、中央処理装置1751、システムメモリ1753、固定記憶装置1755(例えば、ハードドライブ)、取外し可能記憶装置1757(例えば、コンパクトディスク)、ディスプレイアダプタ1759、サウンドカード1761、スピーカー1763、およびネットワークインターフェイス1765等のサブシステムを備えている。中央処理装置1751は、例えば、コンピュータプログラムコード(例えば、オペレーティングシステム)を実行し、本発明のいくつかの実施形態をインプリメントすることができる。オペレーティングシステムは、通常、実行中はシステムメモリ1753内に存在するが、必ずしもそうでなくてもよい。本発明のいくつかの実施形態における使用に適した他のコンピュータシステムは、更なるサブシステムを備えていてもよいし、より少ない数のサブシステムを備えていてもよい。例えば、別のコンピュータシステムは、二以上のプロセッサ1751(すなわち、マルチプロセッサシステム)またはキャッシュメモリを備えていてもよい。
コンピュータシステム1721のシステムバスアーキテクチャは、矢印1767で示されている。しかしながら、これらの矢印は、サブシステムをリンクする役目を果たす相互連結スキームを説明するものである。例えば、システムメモリやディスプレイアダプタに中央処理装置を接続するためにローカルバスを利用することができる。図17Aに示したコンピュータシステム1721は、単に、本発明のいくつかの実施形態での使用に適したコンピュータシステムの例に過ぎない。サブシステムの構成が異なるその他のコンピュータアーキテクチャも利用できる。
上記実施形態では、情報検索システム内の単一仲介サーバの使用について説明したが、情報検索システムは複数の仲介サーバを備えていてもよいことに気付くべきである。様々な仲介サーバは、クライアントマシンから個々に要求を受け、適切なサーバに転送し、仲介サーバを介してクライアントマシンにレスポンスを返すことができる。複数のサーバを有することによって、更なる処理能力が得られるだけでなく、ロードバランシング、フォルトトレランス、およびローカライゼーション問題もさらに対処することができる。
図18は、いくつかの実施形態を示すブロック図である。いくつかの実施形態は、少なくともクライアント側の部分を含み、いくつかの実施形態は、少なくともサーバ側の部分を含み、また、いくつかの実施形態は、少なくともそれぞれ一つづつを含む。図18は、この例ではクライアントマシンを含むクライアントネットワーク1810と、この例では、企業サーバを含むリモートネットワーク1840と、クライアントネットワーク1810とリモートネットワーク1840を接続するインターネット1890とを示している。クライアントマシン1810は、Win32アプリケーション等のクライアント/サーバプリケーションのクライアントアプリケーション1812と、レイヤドサービスプロバイダ(LSP)1814と、ネームスペースプロバイダ(NSP)1815と、セッションマネージャ1816と、Winsock API1818とを備えている。リモートネットワーク1840は、クライアント/サーバプリケーションのサーバプリケーション1842と、DNSサーバ1844と、中間サーバ1846とを備えている。中間サーバ1846は、デーモン1848を備えている。セッションマネージャ1816とデーモン1848は、(例えば、ポート443を介して)通信プロトコル1850によりインターネット1890上で通信する。セッションマネージャ1816は、通信プロトコルクライアントと呼ぶことができる。多くの実施形態では、中間サーバはリモートネットワークの一部と考えられる。
いくつかの実施形態は、セキュアアプリケーションマネージャと呼ばれる。セキュアアプリケーションマネージャのいくつかの実施形態は、クライアントと企業リソース間のネットワークレベルで分離されており、したがって、より安全である。
セキュアアプリケーションマネージャのいくつかの実施形態は、クライアントソフトウェア、例えば、Win32ベースのソフトウェアを備えており、これは、リモートアクセスセキュアネットワークコネクションを、アプリケーション毎および/またはホスト毎に、中間サーバを介して安全に、企業クライアント/サーバプリケーションリソースにトランスペアレントに転送できる。例えば、中間サーバの管理者は、特定のクライアントアプリケーションから、企業リソースへのアクセスの一部または全てを保護するよういくつかの実施形態を構成することができる。クライアント側アプリケーションのいくつかの例としては、Outlook等のEメールアプリケーション、連絡先管理アプリケーション、またはメモ帳アプリケーション;SAP R/3クライアント等のクライアント側エンタープライズリソースプランニングアプリケーション、Citrix ICA等のクライアント側アプリケーションサービスソフトウェア、インターネットエクスプローラ等のブラウザなどが挙げられる。
いくつかの実施形態は、Windows(登録商標)(登録商標)ソケットレイヤの内でネットワーク接続要求を転送する。Windows(登録商標)(登録商標)ソケットレイヤは、Winsockダイナミックリンクライブラリ、Winsock2ダイナミックリンクライブラリ、アプリケーションプログラムインターフェイス、レイヤドサービスプロバイダ(LSP)、レイヤドサービスプロバイダのためのサービスプロバイダインターフェース、ネームスペースプロバイダ(NSP)、ネームスペースプロバイダインターフェース、トランスポートサービスプロバイダインターフェース、およびトランスポートサービスプロバイダのうち少なくとも一つを含むことができる。
図19は、WinsockアプリケーションおよびWindows(登録商標)(登録商標)ソケットレイヤを備えた実施形態を示す。図19は、Winsockアプリケーション1910、Winsock API1915、Winsock DLL1920、Winsockトランスポート SPIおよびネームスペースSPI1930、LSP SPI 1935、LSP 1936および1938、トランスポートサービスプロバイダ1945(図示されているTCP/IPトランスポートサービスプロバイダおよびIPX/SPXトランスポートサービスプロバイダ)、およびネームスペースプロバイダ1955(図示されているDNSネームスペースプロバイダおよびIPXネームスペースプロバイダ)を示している。
図20は、WinsockアプリケーションとWindows(登録商標)(登録商標)ソケットレイヤを含む別の実施形態を示す。図20は、Winsock2アプリケーション2010、Winsock2 API2015、Winsock2 DLL2020、Winsock2トランスポートSPI2030、Winsock2ネームスペースSPI2040、トランスポートサービスプロバイダ2050、およびネームスペースプロバイダ2060を示している。
クライアントソフトウェアは、(例えば、中間サーバ上にあるActiveXコントロールから)ダウンロードし、起動することができる。LSPとNSPは、システムにインストールすることができる。セキュアアプリケーションマネージャプロキシは、(例えば、ActiveXコントロールにより)ダウンロードし、起動することができる。
1990年代の初めに、いくつかのソフトウエアベンダーが協力し、Windows(登録商標)(登録商標)に初めて標準化されたTCP/IP接続が導入され、これはWinsockとしてよく知られている。この成功に伴い、ソフトウエアベンダーは、ネットワークトラフィックストリームに接続するための多くのアプリケーションを見つけ出し、WinsockDLLの接続、チェーニング、および置き換えを開始した。これにより、ネットワークトラフィックをモニター、修正、または転送するためのソリューションを提供した。しかしながら、それらを提供する上で基準となる方法がなかったため、Windows(登録商標)(登録商標)プラットフォームに多くのコンパティビリティ問題が生じた。
1990年代中頃に、Winsockフォーラムが、Winsock2のスペックを作成した。この新しいAPIの目的の例としては、オーバーラップした、イベントベースの入出力等、より多くのWin32入出力機構のサポート、複数のベンダーが、Winsock APIにあらゆるタイプのネットワークプロトコルを接続することができるようプロトコルの独立性の確立、そして、Winsock呼び出しを接続するためのメカニズム(LSP)を標準化することが挙げられる。
マイクロソフトは、Windows(登録商標)(登録商標)NT4.0と共に1996年に最初のWinsock2の使用を可能にしたOSの販売を開始し、後にWindows(登録商標)(登録商標)98のリリースと共に、古いシステムをWinsock2にアップグレードするためにWindows(登録商標)(登録商標)95最新版をリリースした。
最初のWinsock2およびベンダーLSPインプリメンテーションはバグが多く、これらをベースとした製品は、限定された範囲での成功に終わった。2003年の今日、Winsock2フレームワークは安定し、LSPをベースにしたいくつかの製品により、その技術は証明されている。
Winsock2は、アプリケーションプログラムインターフェイス(API)だけでなく、トランスポートおよびネームスペースプロバイダ双方のためのサービスプロバイダーインターフェース(SPI)も標準化している。さらに、そのフレームワークは、トランスポートプロバイダ、別名、LSPの階層化をサポートする。実際のWinsock DLLは、マイクロソフトによりインプリメントされ、あらゆるベンダーが自由にトランスポートおよびネームスペースプロバイダをインプリメントし、それらをシステムにインストールすることができる。レガシーWinsock1 API(例えば、winsock.dll、wsock32.dII; いずれもWinsockダイナミックリンクライブラリとして知られている)に書き込まれたアプリケーションは、新しいWinsock2 API(ws2 32.dII、さらに、Winsockダイナミックリンクライブラリとも呼ばれる)にサンクされている。
レイヤドサービスプロバイダー(LSP)は、Windows(登録商標)(登録商標)で使用することができ、アプリケーションがTCP/IPスタック上でカスタムトランスポートサービスを行うことを可能にするLSPアーキテクチャを提供する。クライアントマシンにLSPサービスがインストールさている場合、クライアントマシン上で作動するWin32アプリケーションは自動的にLSPサービスを読み込むことができる。そして、LSPサービスは、Winsock呼び出しに対する呼び出しの一部または全てをインターセプトすることができ、更なるカスタムトランスポートメカニズムを付加することができる。また、ネットワークデータおよび/またはWinsock APIからのイベントを検査、修正、および/または転送することができる。このレベルでネットワークトラフィックをキャプチャすることにより、LSPは、呼び出しアプリケーションのコンテキストにおいて実行することができ、そのプロセス情報にフルにアクセスできる。アプリケーションレベルデータへのアクセスは可能であるが、TCPおよび/またはIPレベルヘッダー情報へのアクセスはできない場合もある。
LSPサービスは、(例えば、中間サーバにおいて)アプリケーションの設定リストから送られてくるソケット接続呼び出しの一部または全てといったトラフィックをインターセプトすることができ、セッションマネージャを介して、通信プロトコル、例えば、カスタムまたは標準プロトコルを使用するHTTPSによる場合のように安全に送信できる。同様に、NSPは、(例えば、中間サーバにおいて)アプリケーションの設定リストから送られてくる宛先ホスト名に関するDNS照会を処理し、セッションマネージャを介して、通信プロトコル、例えば、カスタムまたは標準プロトコルを使用するHTTPSによる場合のように安全に送信できる。
セッションタイムアウト処理および/または他のアクセス機構の同時処理のために、LSPサービスは、ホストを対象としたトラフィックを無視する(Winsock APIに直接渡す)ことを自動的に選択することができる。このトラフィックは、クライアント側部分がダウンロードされるホストのIPアドレスであってもよい。これは、たとえブラウザが、セキュアアプリケーションマネージャを介して保護されるアプリケーションとなるように構成されている場合でも可能である。
いくつかの実施形態は、WSPStartup()関数をエクスポートすることができるWin32 DLLのようなダイナミックリンクライブラリを備えている。インストーラーは、他のLSP上にレイヤとなるプロトコルおよび他のLSPに関してのオーダーについて記述する一以上のプロトコルチェーンとLSPとを登録することができる。アプリケーションがWinsockライブラリーを読み込む場合、WinsockはLSPのWSPStartup()関数を呼び出すことができる。この時、LSPは、チェーン内で上に位置するLSPまたはWinsockカタログにそのSPIエントリーポイントを返すことができる。LSPは、チェーン内の次のプロバイダを読み込み、同様のエントリーポイント交換を行なうことができる。チェーンは、ベーストランスポートプロバイダと呼ばれるトランスポートサービスプロバイダで終わっていてもよい。この時点で、呼び出しは、カーネル内のTDIプロトコルドライバに、またはTDIプロトコルドライバからディスパッチすることができる。
LSPは、マイクロソフトにより供給される参照インプリメンテーションをベースにすることができる。
LSPプロトコルチェーンインストール/アンインストールコードは、インストーラーへの組み込みを容易にするため、自動登録機能、DIIRegisterServer()およびDIIUnregisterServer()を使用し、同じDLLにおいてインプリメントすることができる。他の実施形態は、複数のDLLにおいてインプリメントすることができる。
ネームスペースプロバイダ(NSP)は、所定のネームスペースに対しネーム解決を行なうことができる。TCP/IPネームスペースに対して、マイクロソフト・インプリメンテーションは、DNSレゾリューションを行なうことができる。NSPは、NSPStartup()関数をエクスポートするWin32 DLLのようなダイナミックリンクライブラリを含むことができる。LSP同様、インストーラーはNSPを登録することができる。Winsockは、必要に応じてNSPを読み込んだり、エントリーポイントを交換したりすることができる。NSPが階層化されている場合、例えば、複数のNSPが同じネームスペースを共有して、インストールされている場合、その動作はWinsock2では不確定である。
NSPは、安全なリモートネットワークにDNS要求を中継するためにDNS検索をインターセプトすることができる。LSPは、Winsock connect()呼び出しをインターセプトし、発信TCP接続の一部または全てを、セキュアアプリケーションマネージャプロキシに転送することができる。セキュアアプリケーションマネージャは、多数のオペレーションモードを有することができる。アプリケーションプロキシモードのような一モードにおいて、LSPは、管理者の選択したアプリケーションセットに読み込み、それらアプリケーション内の接続の一部または全てを中間サーバに転送する。宛先プロキシモードのような別のモードでは、LSPは、プロセスの一部または全てに読み込み、管理者の選択した宛先ホスト、アドレス、および/またはポートのリストに基づき転送する。
NSPは、インストールすることができ、マイクロソフトDNSプロバイダと共存することができる。セキュアアプリケーションマネージャNSPは、DNS要求をリモートネットワークに安全に中継することができる。マイクロソフトWinsock2インプリメンテーションは、レジストリ内に列挙された順序で各プロバイダを呼び出す。照会において空でない結果を返す第一のプロバイダは、サイクルを終了し、それを有効なレスポンスであるとみなす。NSPは、Winsock2構成APIを用いて、指定された方法でインストールすることができ、レジストリ内に列挙されたキーの名前を交換することにより、レジストリ内で再配列することができる。
マイクロソフトは、この動作の仕方を変更することができる。別の実施形態は、DNS要求を解析しスプーフする。しかしながら、LSPからの生のDNSトラフィックを解析しスプーフすることにより、どのアプリケーションがDNS要求を行なっているかのトラッキングが困難になり、アプリケーション単位でホスト名検索を行う性能が損なわれる。
NSPエントリーポイントは、インストール済み環境をシンプルかつ軽量にしておくため、LSPと同じDLLにインプリメントすることができる。他の実施形態は、複数のDLLをインプリメントする。
NSPインストール/アンインストールコードは、インストーラーへの組み込みを容易にするため、自動登録機能、DIIRegisterServer()およびDIIUnregisterServer()を使用し、同じDLLにインプリメントすることができる。他の実施形態は、複数のDLLをインプリメントする。
セキュアアプリケーションマネージャプロキシは、下記のうち一つ以上のオペレーションを行なうことのできるウィンドウレスWin32アプリケーションであってもよい:中間サーバへの接続を管理する、NSPに対するDNS要求を行なう、LSPに関するポートマッピングを管理する、中間サーバからセキュアアプリケーションマネージャコンフィギュレーションデータを取り出す、転送テーブルを維持する。
セッションマネージャ(通信プロトコルクライアント)は、例えば、LSPサービスからトラフィックの一部または全てを受け入れることができ、および/または通信プロトコルを用いて、トラフィックを中間サーバへ転送することができるWin32クライアント(場合によっては、ActiveXをベースとした)のようなクライアントであってもよい。セッションマネージャは、例えば、LSPサービスによって保護された一つ、一部、または全ての宛先ホストのループバックアドレス(127.0.0.1、127.0.0.2.など)をリスンする。
セッションマネージャは、システムトレー内で実行することができ、クライアントアプリケーションに関して保護されたアプリケーションのリストを表示することができる。個々のアクティブアプリケーションに関して、このセッションマネージャは、既存のセッションマネージャと同様に、送信/受信バイト数といった、セッションのステータスを表示することもできる。
通信プロトコルは、HTTPSセッションを用いて、TCPソケット接続をシミュレートすることができる。ソケット接続はそれぞれ、二つの半二重HTTPSセッション(上流および下流)を用いてシミュレートすることができる。通信プロトコルは、セッションマネージャが、SSLによりクライアント/サーバプリケーションから発信されるトラフィックの一部または全てを保護することを可能にすることができる。HTTPSにより送信することで、通信プロトコルは、プロキシやファイアウォールを介して作用することができる。
単一ワーカースレッド(他の実施形態においては、複数のスレッドあるいはプロセス)は、これらのタスクを処理することができる一方で、個別の要求スレッド(他の実施形態においては、同一スレッドあるいは異なるプロセス)は、LSPおよび/またはNSPから送られてくる要求を処理することができる。要求スレッドは、応答時間を最短化することができ、要求を行なったクライアントアプリケーションにおける不必要なブロッキングを回避することができる。ワーカースレッドにより行なわれるタスクの一部または全ては非同期であってもよく、全てのタスクを一スレッドで十分にすることができる。単一スレッドがそれらのタスクを処理することにより、パフォーマンスに何らかの問題が生じた場合、異なるワーカースレッドに関するような、いくつかのタスクを、オフロードすることができる。
セキュアアプリケーションマネージャは、例えば、中間サーバ上のウェブページに組み込まれたActiveXコントロールから起動することができる。SSLセッション認証は、インターネットエクスプローラのようなブラウザによって処理される。セキュアアプリケーションマネージャプロキシは、起動されると、中間サーバへの接続を確立しようとすることができる。これは、現行のセッションクッキーおよび中間サーバホストの名前を用いて行なうことができる。ActiveXコントロールは、例えば、メモリおよびミューテックの以下の名前を持つメモリマップファイルを用いて共用メモリ領域にホストおよびクッキーを書き込むことができる。
<name>:<communication protocol>:Pagelnformation:SharedMemory
<name>:<communication protocol>:Pagelnformation:Mutex
この共用メモリ領域が得られた場合、その場所に格納されたデータは、以下のようなフォーマットになっている。
Data Format:<session cookie>+’ ¥(但し、原文は逆スラッシュ。以下同じ)0’+<ivehostname>+’ ¥0’
データパラメーターは、通信プロトコルセッションを確立するために通信プロトコルAPIへ渡すことができる。セッションがタイムアウトした場合、通信プロトコルAPIは、セキュアアプリケーションマネージャプロキシに通知することができる。セキュアアプリケーションマネージャプロキシは、例えば、モーダルダイアログボックスのポップアップによって、ユーザに再接続することを望むか、あるいはセキュアアプリケーションマネージャを終了することを望むかをユーザに照会することができる。ユーザが、再接続することを選択した場合、セキュアアプリケーションマネージャプロキシは、セキュアアプリケーションマネージャページに、インターネットエクスプローラウィンドウのような新しいウィンドウを開くことができる。これにより、ログインを促し、セキュアアプリケーションマネージャプロキシの別のインスタンスの再起動を促すことができる。プロキシの新しいインスタンスは、前インスタンスを検知しシグナル通知し、中間サーバに再接続するために伝えることができる。新しいインスタンスは、前インスタンスをシグナル通知した後に終了することができる。
中間サーバセッションが確立された状態で、セキュアアプリケーションマネージャプロキシは、新しい通信プロトコルコマンドでコンフィギュレーションデータをダウンロードすることができる。データは、「;」で分離された名前=値の複数対のような形式で、セキュアアプリケーションマネージャプロキシまで降りて来ることができる。例としての構成ストリングは、以下のようなものであってもよい。
“opmode=0;exitmode=0;apps=outlook.exe|Microsoft Outlook|28cb48bd8f,telnet.exe,netscp;dests=10.10.3.0/8”
セキュアアプリケーションマネージャを宛先プロキシモードで実行するように構成することができる場合、IPアドレス/マスク/ポートの組み合わせは、静的転送用の転送テーブルに配置することができる。ホスト名は、別のリストに配置することができ、DNS検索結果は、実行時、そのホスト名に関連したアドレスに基づき転送することおよび/またはIPアドレスに関連したホスト名を通信プロトコル接続呼び出しへ渡すことを目的として転送テーブルに配置することができる。
ワーカースレッドは、共有メモリキューからDNS要求を受け取り、その要求を中間サーバへ渡すことができる。結果が届くと、要求において指定されたLSP応答キューにその結果を返すことができる。中間サーバがホスト名を解決できない場合、マイクロソフトDNSプロバイダに検索を行なわせることができるNSPから空の結果を返すことができる。
接続を開始する前に、ポートマップ要求がLSPから届く。セキュアアプリケーションマネージャプロキシは、バインドするために利用可能なローカルアドレスとポート、例えばループバックアドレスとポートを見つけることができ、その関連を記録し、その双方をLSPに返す。そして、LSPは、このループバックアドレスとポートへの接続を開始することができる。セキュアアプリケーションマネージャプロキシが、接続指示を受け取ると、中間サーバへの接続を開始することができる。この接続がうまくいった場合、前記ループバックアドレスから入ってくる接続が受け入れられる。一旦接続がなされれば、例えば、Winsock APIおよび/または通信プロトコルAPIの非同期の10個の特性に基づいたステートマシンは、ポートマップデータを処理することができる。
セキュアアプリケーションマネージャは、127.1.0.1で始まり、127.1.255.254で終わる、ポートマッピング用の一連のループバックアドレスを使用することができる。ループバックアドレスの選択方法は数多くある。一実施形態では、セキュアアプリケーションマネージャは、まず、開始アドレス127.1.0.1と宛先ポートをバインドすることを試みることができる。このアドレスが既に使用されている場合には、次のアドレス127.1.0.2にバインドすることを試みることができる。これは、バインドするために利用可能なアドレスを見つけるまで、続けることができる。65kのアドレス全てが所定のポートで使用されている場合、代替のポート番号へのバインドを試み、再度127.1.0.1から始めることができる。
ユーザインターフェースは、別個のWin32として構築することができる。このインプリメンテーションは、セキュアアプリケーションマネージャプロキシから抜け出すことができ、ユーザインターフェースインプリメンテーションをウィンドウレスのセキュアアプリケーションマネージャプロキシの制約から解放することができる。マイクロソフトファンデーションクラスは、ユーザインターフェースをインプリメントすることができる。これは、システムトレーアイコンを持つ隠しアプリケーションとして起動することができる。セレクション(例えば、アイコンの右クリック)により、プルアップメニューを表示することができる。ユーザインターフェースは、セレクション(例えば、アイコンのダブルクリック、右クリックメニューから「開く」を選択する)により開くことができる。
ユーザに、どのアプリケーションが安全でありまた安全でないかといった感覚を提供するために、DLL、例えば個別のDLLは、各プロセスに関しWM PAINTメッセージをインターセプトするためにWin32ステータスフックを使用することができる。フックは、例えば、ステータスアイコンの書き込みにより、ビジュアルキューを、例えば、各ウィンドウの上部右側に提供することができ、アプリケーションが中間サーバに安全に接続されているかどうか示すことができる。ステータス情報は、セキュアアプリケーションマネージャプロキシによって作成された共有メモリ領域を読み取ることで得られる。
LSPは、システムに適切にインストールし、ロックされたファイル、バージョニングおよび/またはアンインストールに対処することができる。
ActiveXコントロールは、ブラウザ内で実行することができ、中間サーバのサーバから提供されてもよい。このコントロールは、セキュアアプリケーションマネージャに関連したプログラムおよび/またはインストールを、ダウンロード、解凍、および/または実行することができる。これは、ネットワーク接続およびセキュアアプリケーションマネージャと共に使用することができる。これが起動するアプリケーションはスクリプタブルであってもよい。例えば、VBscriptは、プログラム名を、ダウンロード、解凍、および/または起動のため、コントロールへ渡すことができる。
中間サーバデーモンは、セッションマネージャから受け取ったトラフィックの一部または全てを処理する。次に、デーモンは、企業内の宛先ホストへのソケット接続をすることができ、クライアントアプリケーションに代わってデータを送受信することができる。デーモンは、さらに、クライアント上で実行されているLSP/セッションマネージャのために最初のホスト名解決を行なうことを目的としてDNSサーバとコンタクトすることができる。
中間サーバセキュアアプリケーションマネージャは、一以上の機能を有することができる。
1.TCPベースのクライアント/サーバプリケーションはすべてサポートされる。例えば、サーバ開始コネクションを含んでいないもの等。
2.いくつかの実施形態は、アウトルック(Outlook)、ロータスノーツ(Lotus Notes)、および/またはNetBIOSプロキシング(Windows(登録商標)(登録商標)マップネットワークドライブへのアクセス)等のアプリケーションをサポートすることができる。
3.いくつかの実施形態では、Windows(登録商標)プラットフォームや、インターネットエクスプローラのようなブラウザ上でサポートされる。
4.いくつかの実施形態は、クライアントマシンからのダイアルアップ、ブロードバンドおよび/またはLANシナリオといった、あらゆるインターネットアクセスモードで動作可能である。
5.いくつかの実施形態は、ポート443を介したSSLトラフィックを許可するデバイスのように、クライアント側プロキシおよびファイアウォールを介して作動可能である。
6.いくつかの実施形態は、サードパーティのエンドポイントセキュリティ製品をサポートする。アプリケーションレベルでのアクセスを有するいくつかの実施形態は、安全なクライアントマシンから使用することができる。いくつかの実施形態は、ネットワークレベルでのアクセスセッションを起動する前に、Whole Security、Sygateなどのパーソナルファイアウォールに対処する。
前記中間サーバは、最初のリリースから「Whole Security」のベンダーとの統合をサポートすることができる。指定されたレジストリ設定は、クライアントマシン上でチェックし、セッションを起動する前に、いくつかのプロセスが実行されていることを確かめることができる。
ここで、「Whole Security」/ZoneAlarmの統合をサポートする例を挙げる。
1.ネットワーククライアントは、レジストリキーの既存のものをチェックする
HKEY_LOCAL_MACHINE¥SOFTWARE¥Zone Labs
または
HKEY_CURRENT USER¥Software¥Zone Labs
2.その後、ネットワーククライアントは、ZoneAlarm exeに結合されている実行中プロセスをチェックする。
いくつかの実施形態は、管理者が、ベンダー名および関連のレジストリキー・プロセス名を指定することができ、セキュアアプリケーションマネージャクライアントによりサポートされるよう、一般的に十分に統合をインプリメントする。
下記の内、一またはそれ以上の項目が管理者必要条件となり得る。
1.セキュアアプリケーションマネージャはグループレベルの機能であってもよい。管理者は、中間サーバグループをベースとしたポリシーを用いた場合のように、セキュアアプリケーションマネージャにアクセスするユーザを制限することができる。
2.管理者は、アプリケーションレベルでのアクセス、指定された宛先ホストのみへのアクセス、および/または指定された宛先ホストおよびポートへのアクセスといったモードにセキュアアプリケーションマネージャ機能を構成することができる。
2.A.アプリケーションレベルでのアクセスに関して、管理者は、保護する必要のあるアプリケーションのリストを指定することができる。例えば、sapR3.exe、outlook.exe、ie.exe等である。NetBIOSプロキシングは、キーワード「netbios」を用いる等、特別のアプリケーションとして処理される。
一つまたはそれ以上のアプリケーションに関して、管理者は、実行可能なものの下記パスのうち一つ以上を指定することができる:(例えば、"%system Root¥Program Files¥SAP¥sap r3.exe”といった実行可能なものの完全パス、分かりやすい記述(例えば、SAP R/3クライアント、および/または実行可能名のデフォルト)、セキュリティ上の理由からセキュアアプリケーションマネージャLSPにより強化され得る実行可能なアプリケーションに関するMD5チェックサム値のオプションリスト、およびクライアントアプリケーションから保護できる宛先ホスト/ポートのオプションリスト。
2.B.指定された宛先ホストのみに対するアクセスに関して、管理者は、保護される必要のある宛先ホストのリストを指定することができる。セキュアアプリケーションマネージャは、自動的にTCPポート、UDPポートおよび/またはアプリケーションバージョン番号の一部または全てに関して、宛先ホストを対象とするトラフィックの一部または全てを保護することができる。
宛先ホストは、下記のうちの一つまたはそれ以上のもので表わすことができる:単一のIPアドレスまたはIPアドレス範囲;宛先ホスト名またはホスト名のリスト。ホスト名は、や?のようなワイルドカード表現を使用することができる。ここで、は、任意の数のキャラクタのパターンを表し、?は単一キャラクタのパターンを表わす。IPアドレスが指定され、アプリケーションがホスト名を照会する場合、セキュアアプリケーションマネージャは、そのIPアドレスを、IPアドレス範囲内のホストのリストに照らし合わしチェックすることができる。セキュアアプリケーションマネージャは、ホスト名に関する少なくとも単方向のDNS検索サポートをサポートすることができる。
宛先ホストは、ホスト名またはIPアドレスであってもよい。ホスト名に関しては、ワイルドカードをサポートすることができる。宛先ホストは、フォーマット10.10.0.0/255.255.0.0でサブネットを表わすマスクを用いて指定することができる。
2.C.指定された宛先ホストおよびポートへのアクセスに関し、管理者は、保護する必要のある宛先ホストのリストおよびポートを指定することができる。セキュアアプリケーションマネージャは、これらの宛先ホストおよびポートを対象としたトラフィックを自動的に保護することができる。
3.管理者は、同一グループに対し、ウェブブラウジング、ファイル、telnet/ssh等のような他の中間サーバ機能へのアクセスを提供することを決めることができる。セキュアアプリケーションマネージャは、サブグループのための追加アクセス機構として構成することができる。
4.管理者は、一グループ用にセキュアアプリケーションマネージャを構成することができる。Java(登録商標)対セキュアアプリケーションマネージャ(例えば、ActiveX)バージョンの構成は、ユーザエージェントストリングを調べることによりクライアントオペレーティングシステム(例えば、非Windows(登録商標)対Windows(登録商標))に基づいて自動的に行なうことができる。
5.いくつかの実施形態では、管理者は、エンドユーザ(セッションマネージャ等)のための「自動起動」セキュアアプリケーションマネージャクライアントを構成することができる。
6.管理者は、例えば、グループ単位で「セキュアアプリケーションマネージャクライアントの自動完全クリーンアップ(アンインストール)」を選択することができる。このデフォルト値は、「使用不可」とすることもでき、セキュアアプリケーションマネージャのセッションマネージャ上のコンポーネントをすべてアンインストールするオプションをエンドユーザに提供することができる。
7.管理者は、「完全セキュリティ」といったエンドポイントセキュリティ製品との統合を指定することができる。選択された場合、セキュアアプリケーションマネージャクライアントはまず、指定されたソフトウエアパッケージの存在をチェックし、セキュアアプリケーションマネージャセッションを起動する前に、それが作動していることを確認することができる。ユーザのマシンが指定されたソフトウェアを備えていないか、あるいは作動していない場合、ユーザに対し、セッションを起動することなく、適切な記述でエラーを返すことができる。
セキュアアプリケーションマネージャプロキシに対し、LSPの各インスタンスからDNSおよび/またはポートマップ要求するために、何らかの形のプロセス間通信が必要とされる場合もある。Windows(登録商標)には、依存性を有する多くのプロセス間通信タイプがある。ネットワークに依存するプロセス間通信は、LSPに再送信され、無限ループを作ることがある。Windows(登録商標)メッセージに依存するプロセス間通信は、それが実行されているプロセスおよびスレッドを殆どコントロールできないLSP内からエラーおよびデッドロックが生じる傾向にある。残りの選択肢は、多くのマイクロソフトプラットフォームではインプリメントされない。
プロセス間通信機構として、メモリマップファイルは、依存性を有することはできず、多くのプラットフォームに存在することができ、尚且つ比較的効率的であり得る。
セキュアアプリケーションマネージャプロキシに対し、LSPから複数のプロセスで同期呼び出しを行なうため、複数のキュー(例えば、二つのキュー)とWin32 Named Mutexを使用することができる。メッセージキューは、連続したメモリブロック(メモリマップファイル)によりインプリメントすることができ、各種サイズのメッセージをサポートすることができる。このキューは、最初から終わりまでラップアラウンドするデータに対処することができる。一つのキューは、一送信側と一受信側を持つことができ、このような二つのキューは、要求/応答シーケンス、例えば、既知の名前を持つシステム上の要求キューの場合や、固有の名前を持つLSPプロセスによる応答キューの場合に使用することができる。Named Mutexは、メモリへのアクセスの同期化に対処することができる。要求/応答シーケンスを同期化するため、応答データを待機させる場合、要求をしているスレッドは、応答キューミューテックからの信号を待つことができる。
図21は複数のキューを示す。図21は、Winsockアプリケーション2110およびLSP2120、要求キュー2130、応答キュー2140、そして、セキュアアプリケーションマネージャプロキシ2150を示す。
メモリマップファイル領域および/またはnamed mutexはそれぞれ、アクセスするために既知の名前を要求することができる。名前が知られている場合、同一アカウント(または、例えば、Win 9xにおけるシステム全体)で実行されているプロセスは、このメモリにアクセスすることができるため、このメモリへのアクセスをより困難にするため、更なるステップを設定することができる。セキュアアプリケーションマネージャが公開する既知のメモリとミューテック名は、リアルメモリとミューテック名を暗号化したフォーマットで格納するために使用することができる。リアルメモリとミューテック名は、それら各々の機能を示すためストリング「:Shared Memory」および「:Mutex」を含むような、実行時に作成されたランダムな名前をベースにしていてもよい。
既知の共有メモリ領域名は以下のように定義することができる:
<name>:AppProxy:StartupRequestQueue
<name>:AppProxy:DnsRequestQueue
<name>:AppProxy:PortmapRequestQueue
<name>:AppProxy:Statistics
<name>:AppProxy:AppTable
<name>:AppProxy:FlowTable
<name>:<communication protocol>:PageInformation
StartupResponsetQueue、DnsResponseQueue、およびPortmapResponseQueueは、実行時に作成されるランダムなストリングであってもよく、要求と共に渡すことができる。
一旦セキュアアプリケーションマネージャプロキシが、<communication protocol>:PageInformation領域からセッションクッキーを読み取れば、メモリに常に「ぶら下がって」いなくてもすむようクッキーを消去することができる。
以下の疑似コードは、セキュアアプリケーションマネージャプロキシが、共有メモリからセッションクッキーを読み取る一方法を示す。
EnterReadLock("<name>:<communication protocol>:PageInformation:Mutex″)
OpenSharedMemory("<name>:<communication protocol>:PageInformation:SharedMemory″)
EncryptedMemoryName= ReadEncryptedMemoryName()
CloseSharedMemory("<name>:<communication protocol>:PageInformation:SharedMemory″)
LeaveReadLock("<name>:<communication protocol>:PageInformation:Mutex″)
DecryptedMemoryName = Decrypt(EncryptedMemoryName)
EnterWriteLock(DecryptedMemoryName + ":Mutex″)
OpenSharedMemory(DecryptedMemoryName + ":SharedMemory″)
SessionCookie = ReadSessionCookie()
ClearSessionCookie
CloseSharedMemory(DecryptedMemoryName + ":SharedMemory″)
LeaveWriteLock(DecryptedMemoryName + ":Mutex″)
LSPは、通常のクライアントアプリケーションのようにシステム上にインストールすることができる。LSPがActiveXダウンロードエリアからインストールされる場合、インターネットエクスプローラによってこれらのファイルを一掃することができ、故障したネットワークコンフィギュレーションを残すことができる。リブートシナリオ上のLocked FilesおよびCopy/Deleteは、他のクライアントソフトウエアインストールと同様に処理できる。一実施形態のインストールパッケージングツールは、LSP関連ファイルを自己解凍型EXEファイルに圧縮する。別の二つのファイルと共にこのEXEファイルは、Active−Xダウンローダと使用できるようキャビネットファイル化される。
図22は、インストールパッケージの例を示している。LSP、NSPおよびsamsp.dll2210、インストールスクリプト2214、およびMS redist Sporder.dll2218は、自己解凍型.EXE samsp.exe2220に圧縮される。これは、samsp.cab2230にキャビネットファイル化される。SAMP Proxy samsvc.exe2240は、samsvc.cab2260にキャビネットファイル化される。SAM UI Samui.exe2250は、samui.cab2270にキャビネットファイル化される。タイトルバーTitlebar.exe2280は、titlebar.cab2290にキャビネットファイル化される。
下記は、セキュアアプリケーションマネージャのオペレーションの一例である。様々な実施形態は、オペレーションの一部を追加、削除、再配置、および/または修正することができる。
1.ユーザは、中間サーバの作成したウェブページ上のセキュアアプリケーションマネージャを選択する
a.ActiveXコントロールが、LSP、NSPをダウンロードしインストールする
b.ActiveXコントロールが,セキュアアプリケーションマネージャプロキシをダウンロードし起動する
c.セキュアアプリケーションマネージャプロキシは、中間サーバからコンフィギュレーションデータを取り出す
d.宛先モードで作動する場合、アドレス/マスク/ポートの組み合わせをリダイレクトテーブルに書き込むことができる
2.ユーザは、以下のプロセスで読み込まれた新しいアプリケーション、LSP、NSPを起動する
a.アプリケーションは、LSPからセキュアアプリケーションマネージャプロキシにStartupRequestを送出し、オペレーティングモードおよび/またはこのアプリケーションがプロキシ化されるべきかどうか判断する
b.オペレーティングモードが、アップリケーションプロキシであり、このアプリケーションがリストにない場合、LSPはプロセスから外れ、NSPは、DNSリクエストを無視することができる
c.セキュアアプリケーションマネージャのユーザインターフェースは、アプリケーションEXEファイルからアイコンを抽出し、システムトレーのリストに加える。
3.アプリケーションは、DNS検索を実行する
a.NSPは、セキュアアプリケーションマネージャプロキシにDNS要求を出す
b.セキュアアプリケーションマネージャプロキシは、中間サーバにDNS要求を出す
i.これが、中間サーバホスト名である場合、ローカルDNS検索を実行し、アドレスを記憶する
c.DNS応答は、もしあれば、同様のパスで返される。
4.アプリケーションは、IPアドレスへの接続を行なう
a.LSPは、セキュアアプリケーションマネージャプロキシにポートマップ要求を出す
b.このアプリケーション、関連の宛先ホスト名、宛先アドレス/ポートが、リダイレクトテーブルにあれば、ポートマップを設定し、ローカルアドレス/ポートをLSPに返す
c.LSPは、セキュアアプリケーションマネージャプロキシにより指定されたアドレス/ポートへの接続を行なう
5.クライアントアプリケーションは、接続をシャットダウンおよび/またはソケットをクローズする
a.セキュアアプリケーションマネージャプロキシは、Winsock終了通知を受け取る
b.セキュアアプリケーションマネージャプロキシは、通信プロトコル接続をクローズする
c.セキュアアプリケーションマネージャプロキシは、ローカルポートマップソケットをクローズする
6.サーバは、接続をクローズする
a.セキュアアプリケーションマネージャプロキシは、通信プロトコル終了通知を受け取る
b.セキュアアプリケーションマネージャプロキシは、ローカルポートマップ接続およびソケットをクローズする
c.アプリケーションは、通常のWinsock終了通知を得る
7.アプリケーション終了
a.LSPは、セキュアアプリケーションマネージャプロキシにApplicationCleanupメッセージを出し、現行アプリケーションをアクティブリストから削除する。
ユーザインターフェースは、セキュアアプリケーションマネージャのステータスを表示するためのシステムトレーアイコンアプリケーションおよびWin32フック等のコンポーネントを、例えば、各アプリケーションのタイトルバーに含むことができる。
いくつかの実施形態は、エンドユーザのユーザインターフェースにおいて、下記のうちの一以上を備えている
1.エンドユーザは、中間サーバグループをベースとしたポリシーに基づいて、許可されている場合のみ、中間サーバに「セキュアクライアントアプリケーション(Secure Client Applications)」アクセス機構を有することができる。セキュアクライアントアプリケーションアクセス機構は、サブグループに関する管理機能構成によって、セキュアアプリケーションマネージャ(例えば、ActiveXを備えた)をベースとしたセッションまたはJava(登録商標)セッションマネージャを起動することができる。いくつかの実施形態では、エンドユーザは、例えば、Java(登録商標)対ActiveXをベースにしたセキュアアプリケーションアクセス機構の間で選択することができ、その他の実施形態では、ユーザが選択することなく、自動的に選択される。
2.ユーザは、中間サーバにおいてユーザのサブグループに対し使用可能となっている場合、ウェブブラウジング、ファイルブラウジング、telnet/ssh等のような他の中間サーバクセス機構を、セキュアアプリケーションマネージャと共に選択することができる。セキュアアプリケーションマネージャアクセス機構は、中間サーバ上の追加アクセス機構であってもよい。
3.セキュアアプリケーションマネージャクライアントダウンロードは、いかなるサイズのものであってもよい。いくつかの実施形態では、ダウンロードにかかる時間は、ダイヤルアップ接続(約56Kbps)で約30秒以下である。セキュアアプリケーションセッションマネージャのいくつかの実施形態は、1分以下で開始され、ユーザは企業アプリケーションにアクセスを開始できるようになる。
4.セキュアアプリケーションマネージャクライアントのインストールは、コンポーネントをインストールするために、いくつかの管理者権限を要求することができる。ユーザが正しい権限を持っていなければ、ユーザに権限に関する問題があることを通知することができる。ユーザは、セキュアアプリケーションマネージャクライアントコンポーネントをインストールするために、正しい管理者認証情報を提供するように促される。
5.セキュアアプリケーションマネージャのセッションマネージャは、セキュアアプリケーションマネージャによって保護されるクライアントアプリケーションのリスト等の統計情報、および/またはセキュアアプリケーションマネージャによって保護されるクライアントアプリケーションのうちの一以上のステータスを表示することができる。セキュアアプリケーションマネージャによって保護されるクライアントアプリケーションのリストは、管理者が構成した、保護される必要のあるアプリケーションリストであってもよい。これらのクライアントアプリケーションに関連したアイコンを表示することができる。これらアプリケーション/アイコンは、選択(例えば、クリック)することにより、保護されたバージョンのクライアントアプリケーションを起動することができる。セキュアアプリケーションマネージャによって保護されたクライアントアプリケーションのうち一つ以上に対し、セッションマネージャは、例えば、このアプリケーションに関する送受信バイト数がオプションとして共に提供されるアクティブ(例えば、ユーザがアプリケーションを起動した)、非アクティブ(例えば、アプリケーションがまだ起動されていない)、およびエラー(例えば、セッションのエラー)といったステータスを提供することができる。
6.セキュアアプリケーションマネージャのセッションマネージャは、セキュアアプリケーションマネージャを起動したユーザと同じアカウント権限の下、バックグラウンドアプリケーションとして実行することができる。ユーザは、セキュアアプリケーションマネージャセッションのステータスを表示するためにシステムトレーアイコンを選択(例えば、クリック)することができる。
7.セッションマネージャ(例えば、クライアント/サーバ、セキュアアプリケーションマネージャのセッションマネージャ、および/またはネットワーク接続)は、バックグラウンドアプリケーションとして実行することができる。
8.クライアントにおいては、セッションマネージャによるセキュアアプリケーションマネージャセッションは、円滑に閉じる(切断および/または終了する)ことができる。セッションマネージャを閉じると、セキュアアプリケーションマネージャのセッションマネージャは、自動的にマシンを正常な状態に回復させることができる。いくつかの場合には、セッションマネージャを終了した後、マシンを正常な状態に回復させることができ、他の場合には、マシンが次回リブートされた後、正常な状態に回復させる。
9.セッションマネージャウィンドウは、中間サーバウィンドウを開くためのオプションを有することができる。
10.ユーザセッションがタイムアウトになった場合、中間サーバのユーザは、Java(登録商標)セッションマネージャの機能と同様の経験をすることもある。セキュアアプリケーションマネージャのセッションマネージャは、「エラー」等のステータスを表示することができる。また、セッションを再開するオプションがあってもよい。セッション再開を選択(例えば、クリック)することにより、例えば、ユーザが認証情報を再入力するために新しいブラウザを開けることもできる。一旦ユーザが中間サーバにログインすれば、セキュアアプリケーションマネージャセッションは再起動される。いくつかの実施形態では、セッションマネージャは、中間サーバへのログインウェブページを開くことにより、クライアント側で認証情報を再入力するようユーザに促すことができる。ユーザは、既存のアプリケーションセッションを閉じることなく継続することができる。
11.セキュアアプリケーションマネージャクライアントインストールや、セッションスタートアップ/回復に際して生じたエラー、および/またはセッションの失敗は、Windows(登録商標) Event Log(ウインドウズイベントログ)(Application Log(アプリケーションログ))などのログおよび/またはセッションマネージャのカスタムユーザインターフェースログにレポートされる。
モジュールは、LSP(例えば、%Program Files%¥name¥Application Proxy¥samlog.txt)と同じディレクトリに存在することのできるテキストファイルにメッセージを記録することができる。このログは、例えば、システムトレーアプリケーションからの要求で読まれたり表示したりすることができる。アンインストールに際して、このログファイルは削除することができる。
LSPは、多くの方法でアップグレードすることができる。現行のLSPは、メモリへロックすることができ、また、リブートなしでは、新バージョンでそれに上書きすることはできない場合もある。このリブートを避けるために、インストーラがロックされたファイルを検出した場合、末尾に数を付加したコピーをインストールすることができる。例えば、samsp.dllがロックされていた場合、インストールでは、samsp1.dllをインストールディレクトリーに書き込み、それによってWinsockカタログを更新することができる。古いdllは、再起動の際に削除するためフラグを立てておくことができる。多数の異なったバージョンのLSPは、異なるアプリケーション内で同時に実行することができる。
プロセス間通信メッセージ通信および共有メモリテーブルヘッダーは、モジュール間に後方互換性に関するバージョン番号を含んでいてもよい。ダウンロードされ、インストールされ、および/または実行されているモジュールは、いつアップグレードが必要であるかを判断するために、バイナリーファイルに組み込まれたバージョン番号を持っていてもよい。
多くのWindows(登録商標)デスクトップソフトウェアは、あまり安全な環境でないことが知られている。そこで、セキュリティ強化の大部分は、中間サーバ上で行なうことができる。クライアント側では、ユーザが、認可されていないアプリケーションを安全な環境に導きいれるのを防ぐための取り組みを行なうことができる。これに関するいくつかの例としては、アプリケーションに関する、オプションとしてのチェックサムリスト、および/または悪意のあるユーザがポートマップ要求プロトコルをインターセプトしないようにするため共有メモリ名を暗号化することが挙げられる。
標準のWin32のローカライゼーション技術は、ユーザインターフェースに使用できる(例えば、Unicode(ユニコード))。
接続は、インターネットエクスプローラのようなブラウザを用いて開始することができるため、いくつかの実施形態では、プロキシを介して中間サーバホストに宛てられたインターネットエクスプローラのトラフィックを転送しないように注意する。セキュアアプリケーションマネージャプロキシは、起動されると、中間サーバホスト名および/またはアドレスを、例えば、ActiveXコントロールから取り出すことができる。アプリケーションが、中間サーバホスト名に対するDNS要求を出すと、ローカルDNS検索が行なわれ、その結果がアプリケーションに返される。そして、セキュアアプリケーションマネージャプロキシは、得られたアドレスを記録することができる。アプリケーションが、これらアドレスのうちの1つへの接続を実行した場合、いくつかの実施形態では、この接続は転送されない。
LSPが、実行されプロセスに付加されるために、LSPがプロトコルカタログにインストールされた後、アプリケーションの新しいインスタンスを起動することができる。中間サーバUIは、ユーザにこれを警告することができる。ウィンドウが開かれる場合、インターネットエクスプローラのようないくつかのアプリケーションは必ずしも新しいプロセスを作成するとは限らない場合もある。アプリケーション起動アイコンは、システムトレーアプリケーションに配置することができ、インターネットエクスプローラを起動し、新しいプロセスが確実に作成されるようにする。
LSPが前もってシステムにインストールされていた場合、アプリケーションを再始動する必要はない場合もある。
いくつかの実施形態は、インターネットエクスプローラをベースとしたブラウザでのみ機能するであろうActiveXコントロールに依存する。他の実施形態は、例えば、独立型インストールパッケージを備えた他のブラウザをサポートする。いくつかの実施形態は、Java(登録商標)またはネットスケープ(Netscape)プラグインを用いて、モジュールを起動する。
いくつかの実施形態は、UDPおよび/またはRAW IPトラフィックを保護する上でサポートする。セキュアアプリケーションマネージャが、アプリケーションプロキシモードで実行されている場合、非TCPトラフィックの一部または全てが、LSPにより拒絶される。
ネットワーク化されたファイルシステムの大部分は、カーネルのファイルシステムドライバによりインプリメントされ、ファイルシステム要求をネットワークに転送するために、カーネルをベースとしたTDIインターフェースを使用している。これは、LSPはこのトラフィックを処理しない場合もあることを意味する。
マイクロソフトは、NetBIOSのためのWinsock2トランスポートプロバイダ(Transport Provider)を提供している。もしアプリケーションが,このトランスポートプロバイダを使用したならば、LSPはNetBIOSトラフィックを処理することができるであろう。しかしながら、Windows(登録商標)エクスプローラは、このトランスポートプロバイダをそのNetBIOS処理に使用していない。
多くの実施形態は、他のLSPをベースにした製品と相互協調処理するLSPを有する。いかなるTCPベースのクライアント/サーバプリケーションも、セキュアアプリケーションマネージャのいくつかの実施形態を用いて作動できる。
いくつかの実施形態は、トラフィックをプロキシングするため、ループバックアドレスにより接続をポートマッピングする。ネットワークデータは、ユーザスペースからカーネルへそしてまたユーザスペースへと余分に往復する。一定のWindows(登録商標)サービスは、Winsockの知らないカーネル内のループバックアドレスおよびポートにバインドする。これを、セキュアアプリケーションマネージャプロキシは、カーネルサービスが要求をインターセプトしたことにより、いかなる接続もデータもまだ受け取ってはいないにもかかわらず、ループバックアドレスおよびポートに正常にバインドされたものとみなすことがある。この一例として、マイクロソフトリモートデスクトッププロトコルは、Winsockに通知することなく、127.0.0.1:3389を引き継ぎ、コントロールする。
いくつかの実施形態は、ソケット入出力を行なうため、LSPとセキュアアプリケーションマネージャプロキシとの間にプロセス間通信インターフェースを設ける。これは、Winsock2トランスポートプロバイダが、プロセス間通信により、データおよびイベントを別のプロセスにコピーすることでインプリメントすることができる。こうして、LSPは、セキュアアプリケーションマネージャによって保護されたアプリケーションを、新たなトランスポートプロバイダに転送するスイッチとしての役割を果たすことができる。
セキュアアプリケーションマネージャは、インターネットエクスプローラ、ネットスケープ、オペラ(Opera)などのウェブブラウザをサポートすることができる。いくつかの実施形態では、ウェブページからネイティブWin32アプリケーションを起動するために接続するJava(登録商標)あるいはネットスケープを使用する。
TDIフックドライバは、NetBIOSトラフィックの一部または全てのキャプチャおよび転送を可能にすることができる。
通信プロトコルは、UDPベースのアプリケーションをサポートすることができる。LSPおよびセキュアアプリケーションマネージャプロキシは、例えば、「UDP関連付け」コマンドを使い、その間のUDPフローをセットアップすることができる。
通信プロトコルのプロトコルは、入ってくるTCP接続をサポートすることができる。LSPおよびセキュアアプリケーションマネージャプロキシは、「バインド」コマンドを使用し、プロキシからアプリケーションに入ってくる接続をセットアップすることができる。
SOCKSは、UDPと、入って来るTCP接続をサポートすることができる。いくつかの実施形態において、SOCKSはサポートされている。
一度ActiveXコントロールが、ネットワーク接続またはセキュアアプリケーションマネージャ用のシステム上にダウンロードされインストールされると、ウェブサイトは、コントロールをスクリプトすることができ、.exeのファイルをそれら独自のサーバからダウンロードし実行することができる。いくつかのコントロールは、特定のホストまたはドメインから実行されるようにそれを制限することによるなど、コントロールをロックするサイトによりこの問題に対処する。
いくつかの実施形態は、コントロールと中間サーバの間でハンドシェークが行なわれ、これが本物の中間サーバからスクリプトされていることを確認する。
いくつかの実施形態は、下記の一以上を行う。下記リストの要素は、修正、再配置、追加、および/または削除できる。
1. クライアントは、ウェブブラウザから中間サーバにログインすることができる。このクライアントに対して、中間サーバ管理者は、中間サーバグループをベースとしたポリシーを使用して、例証を目的としたSAPクライアントのように、アプリケーションにアクセスするための中間サーバ機能を使用可能にすることができる。
2.セッションを始めるクライアントが選択することにより、中間サーバメニューからセキュアアプリケーションマネージャセッションを起動することができる。
3.クライアントマシン上にLSPサービスをインストールするセキュアアプリケーションマネージャクライアント(これは、ActiveXコントロールであってもよい)をダウンロードすることができる。クライアントマシン上で起動される新しいアプリケーションは、LSPサービスにより読み込むことができる。セキュアアプリケーションマネージャクライアントは、さらにシステムトレー内のプロセスとして実行することもできる。上記のように、セッションマネージャは、設定されたアプリケーションのためのLSPサービスによってインターセプトされたトラフィックの一部または全てを保護することができる。さらに、セッションマネージャは、アクティブなセキュアアプリケーションマネージャセッションの一部または全てのステータスを表示することができる。
4.ユーザは、クライアントアプリケーション、例えば、SAPクライアントを起動し、企業SAPアプリケーションリソースに接続することができる。
5.クライアントが、リソース、例えば、sapservl.mycompany.comへの接続を試みると、その呼び出しはNSPサービスによってインターセプトされる。
6.そして、NSPサービスは、通信プロトコルにより、ホスト名を中間サーバへ転送することができる。
7.中間サーバにおいて実行することができるセキュアアプリケーションマネージャデーモン(プロトコルコネクターサービス)は、イントラネットにおいて、ホスト名、sapsrvl.mycompany.comを解決し、応答をセキュアアプリケーションマネージャクライアントに返す。
8.中間サーバからの正常に「解決された」応答に基づくセキュアアプリケーションマネージャクライアントは、例えば、127.0.0.9のような利用可能なループバックアドレスの自動プロビジョニングにより、ポートフォワーディングチャネルを自動的に構成することができる。
9.その後、セキュアアプリケーションマネージャクライアントは、アプリケーションにループバックアドレスを返すことができる。
いくつかの実施形態は、下記のうち一つ以上をサポートする:静的クライアント/サーバプリケーション;動的および/または複数ポートTCPをベースとしたクライアント/サーバプリケーション;特定クライアント/サーバプリケーションに関するクライアントポートおよび/またはサーバポート、宛先ホスト名リストのスペック;クライアント/サーバポートフォワーディング;ポート、宛先ホストアドレスなどの余分なスペックを作成するクライアントとの統合;単一ポートおよび/または複数ポートに関する宛先ホストおよび/または一以上のアプリケーション;サーバ開始接続(例えば、Active FTP)および/またはクライアント開始アプリケーションを含むクライアント/サーバプリケーション;TCPおよび/またはUDPベースのクライアント/サーバプリケーション;Windows(登録商標)メディア(Media)、リアル(Real)、クイックタイム(Quicktime)といった、ライブストリーミングを含む企業ストリーミングリソース;および、企業リアルタイムコラボレーションアプリケーションおよび/またはEラーンニングリソース(例えば、ネットミーティング(Netmeeting)、サムタイム(Sametime)オーディオ/ビデオなど)。
セキュアアプリケーションマネージャは、例えば、少なくとも500または1000の同時ユーザを、サポートするためなどに調整することができる。
いくつかの実施形態は、セキュアMAPIおよび/またはロータスノーツのような、セキュアメッセージング機能を有する。
いくつかの実施形態は、静的ポートクライアント/サーバプリケーションなどのセキュアクライアント/サーバプリケーションを保護する。
セキュアアプリケーションマネージャのいくつかの実施形態は、TCPを使用するクライアント/サーバプリケーションの一部または全てを保護し、一部または全ての接続は、クライアントから開始される。
いくつかの実施形態は、セッションタイムアウトを処理するおよび/または同時に他の中間サーバクセス機構に対処するといった、クラスタリングサポートを有する。LSPサービスは、IEが、セキュアアプリケーションマネージャによって保護されるアプリケーションになるよう構成される場合でも、中間サーバホスト(セキュアアプリケーションマネージャがダウンロードされるホストのIPアドレス)に向けられたトラフィックを無視することを自動的に決めることができる。
いくつかの実施形態は、UDPベースのアプリケーション、および/または、通信プロトコルの代わりに、あるいは通信プロトコルに加えてSOCKSV5のようなプロトコルの使用に対応している。
いくつかの実施形態は、FTPのようなサーバ開始接続を含むことができるTCPベースのアプリケーションに対応している。SOCKS V5のようなプロトコルは、通信プロトコルの代わりに、あるいは通信プロトコルに加えて使用することができる。
いくつかの実施形態は、ウィルススキャンおよび/またはエンドポイントセキュリティ製品といったサードパーティベンダーとの統合性を有する。
入って来るTCP接続を必要とする一例は、ほとんどのインプリメンテーションにおいてデフォルトモードであってもよい、FTPnアクティブモードをサポートすることである。これはクライアントマシン上のクライアントアプリケーションを参照することができる。アプリケーションがソケットでリスンする場合、それはwinsock API関数listen()に呼び出しをする。LSP内で、この呼び出しはインターセプトされ得る。ローカルセキュアアプリケーションマネージャ(SAM)プロキシに要求をする。これは、「バインド要求」と呼ばれる。バインド要求は、クライアントマシンがバインドされているIPアドレスおよびポートを含んでいる。次に、ローカルSAMプロキシは、リモートネットワーク上のIPアドレスと、ローカルクライアントマシン上のクライアントアプリケーションにより指定されたポートとを割り当てることができる中間サーバへのバインド要求をすることができる。中間サーバは、新たに割り当てられたアドレス/ポートで、入って来る接続をリスンすることができる。接続が行なわれた場合、入って来る接続要求は、クライアントマシン上のローカルSAMプロキシに返送され、次に、前記接続要求を、クライアントアプリケーションがリスンしている実アドレスおよび実ポートに転送することができる。その後、このアドレス/ポート(ソケット)にリモートネットワークから入って来るデータは、クライアントのクライアントアプリケーションに転送することができ、また逆も同様である。ローカルクライアントマシン上のクライアントアプリケーションがTCP接続をクローズする場合、SAMプロキシは、接続を切断するために中間サーバへ接続終了メッセージを送ることができる。
リモートネットワーク上のクライアントアプリケーションがTCP接続をクローズする場合、中間サーバはローカルマシン上のSAMプロキシに接続終了メッセージを送ることができ、そして、ローカルクライアントマシン上のサーバプリケーションへのTCP接続を切断することができる。
クライアントマシン上のクライアントアプリケーションが、リスンしていたソケットをクローズする場合、レイヤドサービスプロバイダは、「バインドクローズ」メッセージをセキュアアプリケーションマネージャプロキシに送信することができ、次にその要求を、中間サーバに転送し、そのアドレスおよびポート上でのリスンをやめさせることができる。
UDPアプリケーションは、IPを使用したヴォイス(Voice)、シーユーシーミー(CU−SeeMe)、リアルオーディオ(Real−Audio)等のリアルタイムマルチメディアアプリケーションであってもよい。一般的な方法でUDPをサポートするため、UDPトラフィックはクライアントから開始されるべきである。他の実施形態では、非クライアントから開始されたUDPトラフィックをサポートする。
LSP内で、WSPSend()およびWSPSendTo()呼び出しは、UDPソケット上でインターセプトすることができる。これが、このアドレス/ポート上で検出された最初のUDPトラフィックである場合、クライアントアプリケーションからローカルセキュアアプリケーションマネージャプロキシに「UDPフロー要求」を送ることができる。ローカルセキュアアプリケーションマネージャプロキシは、、次に、中間サーバに「UDPフロー要求」をすることができる。一旦これが完了すれば、セキュアアプリケーションマネージャプロキシは、クライアントアプリケーションにローカルループバックアドレスおよびUDPポートを割り当てることができる。レイヤドサービスプロバイダー内で、前記要求が完了すると、宛先パラメーターにおいて、WSPSendTo()呼び出し(または、Winsockフックインプリメンテーションではsendto())か、あるいは、WSPConnect()呼び出しの間であれば、接続されたUDPソケットAPI使用(Winsockフックインプリメンテーションではconnect())の代わりに新たに割り当てられたアドレスを使用することができる。
中間サーバはUDPフロータイマーをインプリメントすることができる。一定の期間の後、アドレスおよびポートにおいて、UDPトラフィックが検出されない場合、その「UDPフロー」クライアント結合を切断することができる。そして、UDPフロー切断メッセージが、ローカル結合を切断するクライアントマシン上のローカルセキュアアプリケーションマネージャプロキシに送信される。UDPのステートレスな性質により、クライアントアプリケーションに通知が送られない場合もある。タイムアウト期間が終了した後、アプリケーションがUDPアドレスおよびポートにモーレスデータ(mores data)を送る場合、新たなUDPフロー要求が開始される。データがアドレスとポートに送信されると、UDPタイムアウト期間はリセットされる
図23は、アプリケーションの一例と、ローカルネットワーク上のクライアントコンピュータのトランスポートドライバインターフェースを示す。図23は、ソケットアプリケーション2310と、NetBIOSアプリケーション2315とを示している。トランスポートドライバインターフェースクライアントは、ソケットエミュレータ2330、NetBIOSエミュレータ2334、およびリダイレクタやサーバなど2338を備えている。ソケットインターフェース2320は、ソケットアプリケーション2310とソケットエミュレータ2330の間にある。NetBIOSインターフェース2325は、NetBIOSアプリケーション2315とNetBIOSエミュレータ2334の間にある。トランスポートドライバ(トランスポートプロバイダとも呼ばれる)は、Appletalkトランスポートドライバ2350、NetBTトランスポートドライバ2352、Nbfトランスポートドライバ2354、TCP/IPトランスポートドライバ2356、およびNWlinkトランスポートドライバ2358を備えている。トランスポートドライバインターフェース2340は、トランスポートドライバインターフェースクライアントとトランスポートプロバイダの間にある。
カーネルベースTDIクライアントのいくつかの例としては、NetBIOS、NFS、MSリモートデスクトッププロトコルおよびマイクロソフトインターネットインフォメーションサーバが挙げられる。TDIクライアントは、Winsockをネーム解決に使用することもでき、その場合には、Winsock2ネームスペースプロバイダはリモートネームサービスを提供することができる。NetBIOSのような他のネットワークアプリケーションは、カーネルで作成された名前検索および/またはブロードキャストディスカバリなどの追加機能を実行してもよい。その場合、これらのイベントは、カーネルでトラップでき、および/またはカスタム処理を実行することができる。いくつかの実施形態は、一以上の操作モードを有することができる。一モードとしては、一般モードが挙げられ、Winsockネームスペースプロバイダにより行なわれた名前検索結果を、フィルタリングやリダイレクションのためドライバに結果を渡すことができる。別のモードでは、アプリケーションまたはプロトコルに特有のカスタムハンドラを用いることができる。
図24は、一般的なオペレーティングモードを示す。エクスプローラやIISといったアプリケーション2410、ネームスペースプロバイダ2420、NetBIOSおよび/またはNFSのようなTCP/IP TDIクライアント2430、TDIフックドライバ2440、TCP/IPトランスポートドライバ2450、セキュアアプリケーションマネージャプロキシ2460、中間サーバへのリモート接続2470が示されている。
図25は、カスタムハンドラを用いたモードを示し、図24と類似しているが、ネームスペースプロバイダが関与していない。
サーバ上で、一アプリケーションに非Winsockアプリケーションのフラグを立てる場合、DNS検索を行なうことができ、および/またはその結果は、TDIフィルタドライバに渡される。ループバックアドレスおよびポートはプロキシによって開かれ、さらに、ドライバに渡されることにより、ターゲットアドレスが修正されそのトラフィックを中間サーバに転送することができる。
NetBIOSは、DNSを使用するだけではないため、プロトコル特定のハンドラにより処理できる。それはWINSを使用して(UDP要求をサーバに送信)、ブロードキャストディスカバリおよびLAN上でUDPブロードキャストを行なうことができる。そして、それはWINSを用いたNetBIOS特定のホスト名解決および/またはUDPブロードキャストを行うこともでき、その後DNSが使用される。マイクロソフトWindows(登録商標)へのシームレス統合をサポートするために、プロトコル特定のハンドラは、リモートネットワーク上でネットワークディスカバリ要求を行なうことができる。たとえNetBIOSが、WINSおよびブロードキャスト検索の後DNSにフォールバックできるとしても、カスタム名検索処理を行なうことができる。カスタム名検索処理により、NetBIOSネーム解決が、タイムアウトおよびDNSへのフォールバックを待つ代わりとして使用されれば、より効率的であり、また、NetBIOS DNS解決は、ユーザがセキュアアプリケーションマネージャを起動する前に開始したシステムサービスによって行なうことができ、これは、SAMのモデルに反することもある。
TDIフックドライバは、NetBIOSディスカバリ要求をキャプチャし、要求をコピーし、中間サーバに要求を転送することのできるセキュアアプリケーションマネージャプロキシに渡すことができる。中間サーバから返された結果は、クライアントが結果を発見できるようにローカルに再送信することができる。
中間サーバは、ブロードキャストディスカバリおよび/またはNetBIOSネーム検索をサポートするために特別なプロトコルハンドラを必要とすることもある。このハンドラは、リモートクライアントの代わりに典型的なNetBIOSのタスクを行なうことができ、および/またはセキュアリンクにより結果を返すことができる。
下記は、NetBIOSを用いた一例である。ステップは、追加、削除、再配置、および/または修正することができる。
1.管理者は、リモートアクセスするNetBIOSホストおよび/またはアドレスを設定する
2.ユーザがログインすると、設定がクライアントに送られる
3.TDIフックドライバが読み込む
4.セキュアアプリケーションマネージャプロキシが読み込み、ドライバへの入出力チャネルを開く
5.ユーザは、NetBIOS名によりネットワーク共用回線を開く要求を出す
6.TDIフックドライバは、既知のNetBIOSポートに関する指定WINSの照会またはブロードキャスト要求を検知する
7.TDIフックドライバは、要求を消化し、ioctlを介してプロキシに渡す
8.プロキシは、ホスト名をフィルタリング処理にかける。マッチングが確認された場合、NetBIOSネーム検索は中間サーバ上のNetBIOSネームサービスハンドラに転送される。マッチングが確認されなかった場合、要求は通常のオペレーションを行なうためローカルネットワーク上で再送信される
9.中間サーバは、リモートネットワーク設定によってWINSおよび/またはブロードキャストネーム検索を行う
10.プロキシは、NetBIOSネーム検索応答を受け取る
a.転送のためループバックアドレスおよびポートを開く
b.実IPアドレス、ポート+ループバックIPアドレスおよびポートをTDIフィルタドライバに渡す
c.クライアントアプリケーションにネーム検索結果を再送信
11.TDIフィルタは、得られた宛先IPアドレスでNetBIOSトラフィックを検出する
12.TDIフィルタは、宛先IPアドレスを、割り当てられたループバックアドレスおよびポートと置き換え、結果として、TCP/IPスタックは、データをセキュアアプリケーションマネージャプロキシに送信する
13.プロキシは、中間サーバへNetBIOSを転送する。
図26は、方法の一実施形態を示す。2610において、ネットワーク接続要求が受信される。2620において、ネットワーク接続要求が転送される。2630において、データは中間サーバに向け送信される。この方法は、リモートネットワークへのセキュアリモートアクセスを可能にすることができる。
ネットワーク接続要求は、ローカルネットワーク上のコンピュータで受信されることができる。ネットワーク接続要求は、クライアント/サーバプリケーションのクライアントアプリケーションにより開始することができる。クライアントアプリケーションはコンピュータ上にあってもよい。ネットワーク接続要求は、リモートネットワーク上の宛先を含むことができる。クライアント/サーバプリケーションのサーバプリケーションは、リモートネットワーク上にあってもよい。
ネットワーク接続要求は、コンピュータ上のWindows(登録商標)ソケットレイヤ内に転送することができる。これには、ネームスペースプロバイダ(例えば、リモートネットワーク上のドメインネームサービス検索に利用)およびレイヤドサービスプロバイダ(例えば、ローカルネットワークからリモートネットワークへのクライアントアプリケーションのデータ転送に利用)を用いて、ネットワーク接続要求を転送することが含まれる。ネットワーク接続要求は、コンピュータのトランスポートサービスプロバイダ(例えば、TCP/IPトランスポートサービスプロバイダ)を避けて転送することができる。ネットワーク接続要求は、リモートネットワーク内の中間サーバに転送することができる。その中間サーバは、コンピュータに代わってネットワーク接続要求を行なうことができる。転送は以下のうちの一以上に基づいて行うことができる:クライアントアプリケーションの名前、クライアントアプリケーションのチェックサム、クライアントアプリケーションのバージョン、宛先のサーバ、および宛先のポート。転送前に、ネットワーク要求は、WinsockダイナミックリンクライブラリおよびWinsock2ダイナミックリンクライブラリの少なくとも一つ通過することができる。ネットワーク接続要求は、コンピュータ上の少なくともプロキシを介して、リモートネットワーク内の中間サーバに転送することができる。
クライアントアプリケーションのデータは、コンピュータから中間サーバに向けて送信することができる。セキュア・ソケット・レイヤ(SSL)は、コンピュータと中間サーバの間の通信を暗号化することができる。クライアントアプリケーションのデータは、中間サーバからサーバプリケーションに向けて送信することができる。様々な実施形態は、中間サーバからサーバプリケーションに向けてクライアントアプリケーションのデータを送信するか、あるいは、実施形態外部のソフトウェアまたはハードウェアによってこれを行わせる。クライアントアプリケーションのデータは、中間サーバに向けてクライアントアプリケーションのデータを送信する前に、少なくとも前記コンピュータのローカルアドレスおよびローカルポートにより送信することができる。
いくつかの実施形態では、クライアントアプリケーションと中間サーバとの間のセキュア接続を示すためビジュアルキューが設けられる。ネームスペースプロバイダおよびレイヤドサービスプロバイダは、自動的にコンピュータにインストールおよび/またはコンピュータからアンインストールすることができる。
図27は別の方法実施形態を示す。2710において、ネットワーク接続要求が受信される。2720において、ネットワーク接続要求が転送される。2730において、中間サーバからデータを受信する。この方法は、リモートネットワークへのセキュアリモートアクセスを可能にすることができる。
ネットワーク接続要求は、ローカルネットワーク上のコンピュータで受信できる。ネットワーク接続要求は、リモートネットワーク上のファイルシステムに対し、開始することができる。ネットワーク接続要求は、前記ファイルシステムの名前を含んでいてもよい。
ネットワーク接続要求は、コンピュータ上のトランスポートドライバインターフェースを用いて転送することができ、更に、ネームスペースプロバイダを使用してもよい。転送することにより、ネットワークファイルシステムトラフィックをキャプチャすることができる。ネットワーク接続要求は、コンピュータ上でトランスポートドライバ(例えば、TCP/IPトランスポートドライバ)を避けて転送することができる。ネットワーク接続要求は、リモートネットワーク内の中間サーバに転送することができる。中間サーバは、コンピュータに代わってネットワーク接続要求を行う。転送は、宛先サーバおよび宛先ポートの内の一以上に基づいて行なわれる。転送に先立ち、ネットワーク接続要求は、少なくともトランスポートドライバインターフェースフィルタを通過することができる。
中間サーバからのファイルシステムのデータはコンピュータで受信することができる。セキュア・ソケット・レイヤ(SSL)は、コンピュータと中間サーバの間の通信を暗号化することができる。ファイルシステムのデータは、リモートネットワーク上の中間サーバとファイルシステムの間で転送することができる。様々な実施形態は、中間サーバとファイルシステムの間でファイルシステムのデータをやりとりするか、或いは、実施形態外部のハードウェアまたはソフトウェアによってこれを行わせる。
いくつかの実施形態では、トランスポートドライバインターフェースは、自動的にコンピュータにインストールおよび/またはコンピュータからアンインストールすることができる。
種々様々な態様、特徴、実施形態、または上述のいくつかの実施形態のインプリメンテーションは、単独であるいは様々な組み合わせで使用することができる。
いくつかの実施形態は、ソフトウェアにおいてインプリメントすることができるが、ハードウェアまたはハードウェアとソフトウェアの組み合わせにおいてインプリメントすることもできる。本発明のいくつかの実施形態はまた、コンピュータ読み取り可能メディア上のコンピュータ読み取り可能コードとして実施することができる。コンピュータ読み取り可能メディアとは、データを格納することができ、その後コンピュータシステムにより読み取ることができる任意のデータ記憶装置である。コンピュータ読み取り可能メディアの例としては、読み取り専用メモリ、ランダムアクセスメモリ、CD−ROM、DVD、磁気テープ、光学データ記憶装置、および搬送波が挙げられる。コンピュータ読み取り可能メディアはまた、コンピュータ読み取り可能コードが分散して格納され、実行されるよう、複数のネットワーク結合コンピュータシステムに分散させることができる。
いくつかの実施形態は、多数の利点を有する。様々な実施形態またはインプリメンテーションにより、下記利点の中から一つ以上が得られる。いくつかの実施形態の一利点は、仲介サーバをリモートサーバとクライアント間に配置し、安全なアクセスを容易にすることができる点である。いくつかの実施形態の別の利点は、クライアントが要求したコンテンツを変更し、次のクライアントの要求を仲介サーバに送信することで、仲介サーバはクライアントのために要求されたコンテンツを得ることができる点である。また、いくつかの実施形態の更に別の利点は、仲介サーバが、プライベートネットワークによって提供されるネイティブ認証の使用を通じてプライベートネットワーク上のリソースへのアクセスを求めるリクエスタを認証することができるという点である。更に、いくつかの実施形態の別の利点は、プライベートネットワークへのセキュアリモートアクセスを、許可された人にリーズナブルなコストで容易に提供することができるという点である。
いくつかの実施形態の多くの特徴および利点は、記載された説明から明白であることから、本発明のいくつかの実施形態のそのような特徴および利点の全てが、添付クレームによってカバーされるものとする。さらに、当業者にとって、多数の修正および変更が容易に考えられるため、本発明を、例示および説明した厳密な構成およびオペレーションに限定することを意図するものではない。従って、適切な修正および等価物はすべて、本発明の範囲内にあるものとして分類される。
図1Aは、本発明の一実施形態に係る情報検索システムを示すブロック図である。 図1Bは、本発明の別の実施形態に係る情報検索システムを示すブロック図である。 図2Aは、本発明の一実施形態に係る仲介サーバを示すブロック図である。 図2Bは、本発明の一実施形態に係るリモートアクセスシステムを示すブロック図である。 図3は、本発明の一実施形態に係る要求処理を示すフローチャートである。 図4は、本発明の一実施形態に係る認証処理を示すフローチャートである。 図5は、本発明の一実施形態に係るアクセス権処理を示すフローチャートである。 図6は、本発明の一実施形態に係る操作権限処理を示すフローチャートである。 図7は、本発明の一実施形態に係る詳細な外部認証処理を示すフローチャートである。 図8Aは、本発明の一実施形態に係るファイルアクセス要求処理を示すフローチャートである。 図8Bは、本発明の一実施形態に係るファイルアクセス要求処理を示すフローチャートである。 9Aは、本発明の一実施形態に係るウェブリソース要求処理を示すフローチャートである。 図9Bは、本発明の一実施形態に係るウェブリソース要求処理を示すフローチャートである。 図9Cは、本発明の一実施形態に係るウェブリソース要求処理を示すフローチャートである。 図10は、本発明の一実施形態に係る情報検索システムを示す図である。 図11は、本発明の一実施形態に係るURL修正処理を示すフローチャートである。 図12は、本発明の一実施形態に係るスクリプト修正処理を示すフローチャートである。 図13Aは、本発明の別の実施形態に係るスクリプト修正処理を示すフローチャートである。 図13Bは、本発明の別の実施形態に係るスクリプト修正処理を示すフローチャートである。 図14は、本発明の一実施形態に係るEメール要求処理を示すフローチャートである。 図15は、本発明の一実施形態に係るメールオペレーション処理を示すフローチャートである。 図16は、本発明の一実施形態に係る認証処理を示すフローチャートである。 図17Aは、本発明のいくつかの実施形態により使用できるコンピュータシステムの一例を示す図である。 図17Bは、本発明のいくつかの実施形態により使用できるコンピュータシステムの一例を示す図である。 図18は、本発明の一実施形態に係るセキュアアプリケーションマネージャのいくつかの実施形態を示すブロック図である。 図19は、本発明の一実施形態に係るWinsockアプリケーションおよびWindows(登録商標)ソケットレイヤを示すブロック図である。 図20は、本発明の一実施形態に係るWinsockアプリケーションおよびWindows(登録商標)ソケットレイヤを示す別のブロック図である。 図21は、本発明の一実施形態に係るセキュアアプリケーションマネージャプロキシとWinsockアプリケーション間のキューを示すブロック図である。 図22は、本発明の一実施形態に係るインストールパッケージングを示すブロック図である。 図23は、本発明の一実施形態に係るローカルネットワーク上のクライアントコンピュータのトランスポートドライバインターフェイスおよびアプリケーションを示すブロック図である。 図24は、本発明の一実施形態に係るファイルシステムネットワーク接続要求を転送するための汎用オペレーティングモードを示すブロック図である。 図25は、本発明の一実施形態に係るファイルシステムネットワーク接続要求を転送するためのカスタムハンドラを用いたモードを示すブロック図である。 図26は、本発明の一実施形態に係るネットワーク接続要求を転送するためのフローチャートである。 図27は、本発明の別の実施形態に係るネットワーク接続要求を転送するためのフローチャートである。

Claims (34)

  1. ローカルネットワーク上のコンピュータ上のクライアントアプリケーションによってアプリケーションプログラムインターフェースを介してソケットレイヤに送信され、リモートネットワーク上のサーバアプリケーションのアドレスを含むネットワーク接続要求を受信する工程と、
    前記コンピュータによって、前記ソケットレイヤ内のトランスポートサービスを使用せずに前記ネットワーク接続要求を前記リモートネットワーク内の中間サーバに転送する工程と、
    前記ネットワーク接続要求が前記中間サーバによってアクセプトされると、前記クライアントアプリケーションによって送信されたデータを前記コンピュータによって前記中間サーバに向けて送信する工程と、
    前記中間サーバによって前記データを受信する工程と、
    前記中間サーバによって前記データをサーバアプリケーションに送信する工程と、
    を有するネットワーク通信方法。
  2. 記ソケットレイヤは、Winsockダイナミックリンクライブラリ、Winsock2ダイナミックリンクライブラリ、アプリケーションプログラムインターフェース、レイヤドサービスプロバイダ、前記レイヤドサービスプロバイダのためのサービスプロバイダインターフェース、ネームスペースプロバイダ、またはネームスペースプロバイダインターフェースのうち少なくとも一つを含む請求項1に記載の方法。
  3. 記ソケットレイヤ内に前記ネットワーク接続要求を転送することは、前記Winsockダイナミックリンクライブラリ、または前記Winsock2ダイナミックリンクライブラリのうち少なくとも一方をフックすることにより、前記ネットワーク接続要求を転送することを含む請求項2に記載の方法。
  4. 記ソケットレイヤ内に前記ネットワーク接続要求を転送することが、前記ネームスペースプロバイダおよび前記レイヤドサービスプロバイダを用いて前記ネットワーク接続要求を転送することを含む請求項2に記載の方法。
  5. 前記ネームスペースプロバイダが、前記リモートネットワーク上で、ドメインネームサービス検索に利用される請求項4に記載の方法。
  6. 前記クライアントアプリケーションによって前記データを前記中間サーバに送信することは、前記レイヤドサービスプロバイダを用いて前記データを前記ローカルネットワークから前記リモートネットワークへ転送することを含む請求項4に記載の方法。
  7. 前記転送が、前記クライアントアプリケーションの名前、前記クライアントアプリケーションのチェックサム、前記クライアントアプリケーションのバージョン、宛先のサーバ、または前記宛先のポートの内の少なくとも一つの決定に応答して行われる請求項1に記載の方法。
  8. 前記転送が、少なくとも前記クライアントアプリケーションの名前の決定に応答して行われる請求項に記載の方法。
  9. 前記転送が、少なくとも前記クライアントアプリケーションのチェックサムの決定に応答して行われる請求項に記載の方法。
  10. 前記転送が、少なくとも前記クライアントアプリケーションのバージョンの決定に応答して行われる請求項に記載の方法。
  11. 前記転送が、少なくとも前記宛先のサーバの決定に応答して行われる請求項に記載の方法。
  12. 前記転送が、少なくとも前記宛先のポートの決定に応答して行われる請求項に記載の方法。
  13. 前記ネットワーク接続要求は、少なくとも前記コンピュータのプロキシを介し、前記リモートネットワーク内の前記中間サーバに転送される請求項1に記載の方法。
  14. 前記クライアントアプリケーションのデータを前記中間サーバに向けて送信する前に、前記クライアントアプリケーションのデータが、前記コンピュータの少なくともローカルアドレスとローカルポートを介して送信される、請求項1に記載の方法。
  15. 前記ネットワーク接続要求がアクセプトされると、前記クライアントアプリケーションと前記中間サーバとの間のセキュア接続を示すために前記コンピュータによってビジュアルキューを提供することをさらに含む請求項1に記載の方法。
  16. 前記ネットワーク接続要求を送信する前に、前記ネームスペースプロバイダおよび前記レイヤドサービスプロバイダを前記コンピュータ上に自動的にインストールすることをさらに含む請求項4に記載の方法。
  17. 前記データが前記サーバアプリケーションに送信された後、前記ネームスペースプロバイダおよび前記レイヤドサービスプロバイダを前記コンピュータからに自動的にアンインストールすることをさらに含む請求項4に記載の方法。
  18. 前記クライアントアプリケーションによって前記データを前記中間サーバに送信することは、前記リモートネットワークと前記ローカルネットワークの間のセキュア接続を通じて前記データを送信することを特徴とする請求項1に記載の方法。
  19. 前記コンピュータと前記中間サーバの間の通信を、セキュア・ソケット・レイヤ(SSL)が暗号化する請求項1に記載の方法。
  20. 前記中間サーバによって前記ネットワーク接続要求を行なう工程をさらに含む請求項1に記載の方法。
  21. ローカルネットワーク上のコンピュータ上で、リモートネットワーク上のファイルシステムの名前を含むネットワーク接続要求をクライアントアプリケーションから受信する工程と、
    前記ネットワーク接続要求を、前記コンピュータ上のトランスポートドライバインターフェースを用いずに前記リモートネットワーク内の中間サーバに転送する工程と、
    前記リモートネットワーク上のファイルシステムから前記中間サーバへ転送されるファイルシステムのデータを前記中間サーバから前記コンピュータで受信する工程と、
    を有するネットワーク通信方法。
  22. 前記ネットワーク接続要求の転送には更に、ネームスペースプロバイダを使用する請求項21に記載の方法。
  23. 前記トランスポートドライバが、TCP/IPトランスポートドライバを含む請求項21に記載の方法。
  24. 前記ネットワーク接続要求の転送が、宛先サーバ、または宛先ポートの少なくとも一つの決定に応答して行なわれる請求項21に記載の方法。
  25. 前記転送が、少なくとも前記宛先サーバの決定に応答して行なわれる請求項24に記載の方法。
  26. 前記転送が、少なくとも前記宛先ポートの決定に応答して行なわれる請求項25に記載の方法。
  27. 前記転送は、ネットワークファイルシステムトラフィックの転送である請求項21に記載の方法。
  28. 前記ネットワーク接続要求を転送する前に、前記トランスポートドライバインターフェースを前記コンピュータ上に自動的にインストールすることをさらに含む請求項21に記載の方法。
  29. 前記データが受信されると、前記トランスポートドライバインターフェースを前記コンピュータから自動的にアンインストールすることをさらに含む請求項28に記載の方法。
  30. 前記ファイルシステムのデータを前記中間サーバから前記コンピュータで受信することは、セキュア接続を通じて前記データを受信することを含む請求項21に記載の方法。
  31. 前記コンピュータと前記中間サーバの間の通信を、セキュア・ソケット・レイヤ(SSL)が暗号化する請求項21に記載の方法。
  32. 前記中間サーバが、前記コンピュータに代わって前記ネットワーク接続要求を行なう請求項21に記載の方法。
  33. ローカルネットワーク上のコンピュータ上でのクライアントアプリケーションによってアプリケーションプログラムインターフェースを介してソケットレイヤに送信され、リモートネットワーク上のサーバアプリケーションのアドレスを含むネットワーク接続要求の受信を実行する第1のコードと、
    記ソケットレイヤ内のトランスポートサービスプロバイダを使用せずに、前記リモートネットワーク内の中間サーバへの前記ネットワーク接続要求の転送を実行する第2コードと、
    前記クライアントアプリケーションによって転送されるデータの前記コンピュータから中間サーバへの送信を実行する第3コードと
    記データの前記サーバアプリケーションへの送信を実行する第コードと
    を格納するメモリと、
    前記メモリ内の前記コードを実行するプロセッサと
    を含むコンピュータ。
  34. ネットワーク通信のための装置であって、前記装置が、
    リモートネットワーク上のファイルシステムの名前を含む、クライアントアプリションケーからのネットワーク接続要求のローカルネットワーク上の前記装置上での受信を実行する第1コードと、
    前記装置上のトランスポートドライバインターフェースを使用せずに、前記リモートネットワーク内の中間サーバへの前記ネットワーク接続要求の転送を実行する第2コードと、
    前記リモートネットワーク上の前記ファイルシステムから前記中間サーバへ転送される前記ファイルシステムのデータの前記中間サーバから前記装置での受信を実行する第3コードと、
    を格納するメモリと、
    前記メモリ内の前記コードを実行するプロセッサと、
    を含む装置。
JP2006509966A 2003-04-08 2004-04-08 クライアントリダイレクトによるプライベートネットワークへの安全なアクセス提供方法およびシステム Expired - Fee Related JP4734592B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/410,619 US7631084B2 (en) 2001-11-02 2003-04-08 Method and system for providing secure access to private networks with client redirection
US10/410,619 2003-04-08
PCT/US2004/011339 WO2004092905A2 (en) 2003-04-08 2004-04-08 Method and system for providing secure access to private networks with client redirection

Publications (2)

Publication Number Publication Date
JP2006526843A JP2006526843A (ja) 2006-11-24
JP4734592B2 true JP4734592B2 (ja) 2011-07-27

Family

ID=33298314

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006509966A Expired - Fee Related JP4734592B2 (ja) 2003-04-08 2004-04-08 クライアントリダイレクトによるプライベートネットワークへの安全なアクセス提供方法およびシステム

Country Status (5)

Country Link
US (3) US7631084B2 (ja)
EP (1) EP1616263B1 (ja)
JP (1) JP4734592B2 (ja)
CN (1) CN100437530C (ja)
WO (1) WO2004092905A2 (ja)

Families Citing this family (322)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8352400B2 (en) 1991-12-23 2013-01-08 Hoffberg Steven M Adaptive pattern recognition based controller apparatus and method and human-factored interface therefore
US7966078B2 (en) 1999-02-01 2011-06-21 Steven Hoffberg Network media appliance system and method
US7774455B1 (en) * 2000-09-26 2010-08-10 Juniper Networks, Inc. Method and system for providing secure access to private networks
JP2002218218A (ja) * 2001-01-19 2002-08-02 Fuji Photo Film Co Ltd 画像合成装置
US7353380B2 (en) 2001-02-12 2008-04-01 Aventail, Llc, A Subsidiary Of Sonicwall, Inc. Method and apparatus for providing secure streaming data transmission facilities using unreliable protocols
US7383329B2 (en) 2001-02-13 2008-06-03 Aventail, Llc Distributed cache for state transfer operations
US7360075B2 (en) 2001-02-12 2008-04-15 Aventail Corporation, A Wholly Owned Subsidiary Of Sonicwall, Inc. Method and apparatus for providing secure streaming data transmission facilities using unreliable protocols
US20050198379A1 (en) 2001-06-13 2005-09-08 Citrix Systems, Inc. Automatically reconnecting a client across reliable and persistent communication sessions
US7827278B2 (en) * 2001-07-23 2010-11-02 At&T Intellectual Property Ii, L.P. System for automated connection to virtual private networks related applications
US7827292B2 (en) * 2001-07-23 2010-11-02 At&T Intellectual Property Ii, L.P. Flexible automated connection to virtual private networks
US8239531B1 (en) 2001-07-23 2012-08-07 At&T Intellectual Property Ii, L.P. Method and apparatus for connection to virtual private networks for secure transactions
US7631084B2 (en) * 2001-11-02 2009-12-08 Juniper Networks, Inc. Method and system for providing secure access to private networks with client redirection
US8285880B2 (en) * 2001-11-30 2012-10-09 Oracle International Corporation Servicing requests that are issued in a protocol other than the protocol expected by the service
US20030126159A1 (en) * 2001-12-28 2003-07-03 Nwafor John I. Method and system for rollback of software system upgrade
US20030154221A1 (en) * 2002-02-13 2003-08-14 Sun Microsystems, Inc. System and method for accessing file system entities
JP4018450B2 (ja) * 2002-05-27 2007-12-05 キヤノン株式会社 文書管理システム、文書管理装置、認証方法、コンピュータ読み取り可能なプログラム、及び記憶媒体
US7657616B1 (en) 2002-06-10 2010-02-02 Quest Software, Inc. Automatic discovery of users associated with screen names
US7818565B2 (en) * 2002-06-10 2010-10-19 Quest Software, Inc. Systems and methods for implementing protocol enforcement rules
US20080196099A1 (en) * 2002-06-10 2008-08-14 Akonix Systems, Inc. Systems and methods for detecting and blocking malicious content in instant messages
US7428590B2 (en) 2002-06-10 2008-09-23 Akonix Systems, Inc. Systems and methods for reflecting messages associated with a target protocol within a network
EP1552414A4 (en) 2002-06-10 2010-11-24 Akonix Systems Inc SYSTEM AND METHOD FOR A PROTOCOL GATEWAY
US7774832B2 (en) * 2002-06-10 2010-08-10 Quest Software, Inc. Systems and methods for implementing protocol enforcement rules
US7707401B2 (en) * 2002-06-10 2010-04-27 Quest Software, Inc. Systems and methods for a protocol gateway
US7711539B1 (en) * 2002-08-12 2010-05-04 Netapp, Inc. System and method for emulating SCSI reservations using network file access protocols
US8332464B2 (en) * 2002-12-13 2012-12-11 Anxebusiness Corp. System and method for remote network access
US8244875B2 (en) * 2002-12-13 2012-08-14 ANXeBusiness Corporation Secure network computing
ES2409936T3 (es) 2003-01-31 2013-06-28 Good Technology Corporation Recuperación asíncrona de datos en tiempo real
EP1593026A1 (en) * 2003-02-14 2005-11-09 Whale Communications Ltd. System and method for providing conditional access to server-based applications from remote access devices
US7653911B2 (en) * 2003-09-05 2010-01-26 Alcatel-Lucent Usa Inc. Implicit interprocess communications (IPC) versioning support
US20050097199A1 (en) * 2003-10-10 2005-05-05 Keith Woodard Method and system for scanning network devices
ATE366023T1 (de) * 2003-10-24 2007-07-15 Ericsson Telefon Ab L M Mittel und verfahren zur steuerung der dienstprogression zwischen verschiedenen domänen
US7978716B2 (en) * 2003-11-24 2011-07-12 Citrix Systems, Inc. Systems and methods for providing a VPN solution
JP2007533172A (ja) * 2003-11-11 2007-11-15 サイトリックス ゲートウェイズ, インコーポレイテッド 偽サーバを備えた仮想プライベートネットワーク
US20050108654A1 (en) * 2003-11-13 2005-05-19 International Business Machines Corporation Method, system and program product for processing requests in a web application
US7647631B2 (en) * 2003-12-10 2010-01-12 Hewlett-Packard Development Company Automated user interaction in application assessment
US8078739B1 (en) * 2003-12-29 2011-12-13 Cisco Technology, Inc. Solution for handling URL-substitution for data access in a private network architecture
TW200529623A (en) * 2004-01-14 2005-09-01 Nec Corp Communication encryption method, communication encryption system, terminal device, DNS server and program
US8126999B2 (en) 2004-02-06 2012-02-28 Microsoft Corporation Network DNA
US8583739B2 (en) * 2004-03-02 2013-11-12 International Business Machines Corporation Facilitating the sending of mail from a restricted communications network
US7653900B2 (en) * 2004-04-22 2010-01-26 Blue Coat Systems, Inc. System and method for remote application process control
US7480700B2 (en) * 2004-04-27 2009-01-20 Apple Inc. Method and system for retrieval and usage of remote entry points
US8739274B2 (en) * 2004-06-30 2014-05-27 Citrix Systems, Inc. Method and device for performing integrated caching in a data communication network
US7757074B2 (en) 2004-06-30 2010-07-13 Citrix Application Networking, Llc System and method for establishing a virtual private network
US8495305B2 (en) 2004-06-30 2013-07-23 Citrix Systems, Inc. Method and device for performing caching of dynamically generated objects in a data communication network
ATE535078T1 (de) 2004-07-23 2011-12-15 Citrix Systems Inc Verfahren und system zur sicherung von zugriff aus der ferne auf private netze
EP1771998B1 (en) * 2004-07-23 2015-04-15 Citrix Systems, Inc. Systems and methods for optimizing communications between network nodes
US8285855B2 (en) * 2004-08-02 2012-10-09 Microsoft Corporation System, method and user interface for network status reporting
US8437370B2 (en) 2011-02-04 2013-05-07 LiveQoS Inc. Methods for achieving target loss ratio
US7953114B2 (en) 2004-08-06 2011-05-31 Ipeak Networks Incorporated System and method for achieving accelerated throughput
US9189307B2 (en) 2004-08-06 2015-11-17 LiveQoS Inc. Method of improving the performance of an access network for coupling user devices to an application server
US9647952B2 (en) 2004-08-06 2017-05-09 LiveQoS Inc. Network quality as a service
US8009696B2 (en) * 2004-08-06 2011-08-30 Ipeak Networks Incorporated System and method for achieving accelerated throughput
WO2006020823A1 (en) 2004-08-13 2006-02-23 Citrix Systems, Inc. A method for maintaining transaction integrity across multiple remote access servers
US7711835B2 (en) 2004-09-30 2010-05-04 Citrix Systems, Inc. Method and apparatus for reducing disclosure of proprietary data in a networked environment
US7748032B2 (en) * 2004-09-30 2010-06-29 Citrix Systems, Inc. Method and apparatus for associating tickets in a ticket hierarchy
US20060075114A1 (en) * 2004-09-30 2006-04-06 Citrix Systems, Inc. In-line modification of protocol handshake by protocol aware proxy
US8613048B2 (en) * 2004-09-30 2013-12-17 Citrix Systems, Inc. Method and apparatus for providing authorized remote access to application sessions
US20060080649A1 (en) * 2004-10-07 2006-04-13 Sharp Laboratories Of America, Inc. Object initializing for updating a system state
US7551926B2 (en) * 2004-10-08 2009-06-23 Telefonaktiebolaget Lm Ericsson (Publ) Terminal-assisted selection of intermediary network for a roaming mobile terminal
US7590732B2 (en) * 2004-10-08 2009-09-15 Telefonaktiebolaget Lm Ericsson (Publ) Enhancement of AAA routing originated from a local access network involving intermediary network preferences
US7292592B2 (en) * 2004-10-08 2007-11-06 Telefonaktiebolaget Lm Ericsson (Publ) Home network-assisted selection of intermediary network for a roaming mobile terminal
US7298725B2 (en) 2004-10-08 2007-11-20 Telefonaktiebolaget Lm Ericsson (Publ) Enhancement of AAA routing initiated from a home service network involving intermediary network preferences
US20060098623A1 (en) * 2004-11-08 2006-05-11 Christian Andrew D Voice data security method and apparatus
US7870201B2 (en) * 2004-12-03 2011-01-11 Clairmail Inc. Apparatus for executing an application function using a mail link and methods therefor
US7844674B2 (en) * 2004-12-03 2010-11-30 Clairmail Inc. Architecture for general purpose trusted personal access system and methods therefor
US7870202B2 (en) * 2004-12-03 2011-01-11 Clairmail Inc. Apparatus for executing an application function using a smart card and methods therefor
US8813216B2 (en) * 2004-12-16 2014-08-19 International Business Machines Corporation Network security protection
US8700695B2 (en) * 2004-12-30 2014-04-15 Citrix Systems, Inc. Systems and methods for providing client-side accelerated access to remote applications via TCP pooling
US8706877B2 (en) * 2004-12-30 2014-04-22 Citrix Systems, Inc. Systems and methods for providing client-side dynamic redirection to bypass an intermediary
US8549149B2 (en) * 2004-12-30 2013-10-01 Citrix Systems, Inc. Systems and methods for providing client-side accelerated access to remote applications via TCP multiplexing
US7810089B2 (en) 2004-12-30 2010-10-05 Citrix Systems, Inc. Systems and methods for automatic installation and execution of a client-side acceleration program
US8954595B2 (en) * 2004-12-30 2015-02-10 Citrix Systems, Inc. Systems and methods for providing client-side accelerated access to remote applications via TCP buffering
US20060156021A1 (en) * 2005-01-10 2006-07-13 Microsoft Corporation Method and apparatus for providing permission information in a security authorization mechanism
US8191115B2 (en) * 2005-01-10 2012-05-29 Microsoft Corporation Method and apparatus for extensible security authorization grouping
US8255456B2 (en) * 2005-12-30 2012-08-28 Citrix Systems, Inc. System and method for performing flash caching of dynamically generated objects in a data communication network
US7849269B2 (en) 2005-01-24 2010-12-07 Citrix Systems, Inc. System and method for performing entity tag and cache control of a dynamically generated object not identified as cacheable in a network
US20060168533A1 (en) * 2005-01-27 2006-07-27 Microsoft Corporation System and method for providing an indication of what part of a screen is being shared
US8024568B2 (en) 2005-01-28 2011-09-20 Citrix Systems, Inc. Method and system for verification of an endpoint security scan
US7661131B1 (en) 2005-02-03 2010-02-09 Sun Microsystems, Inc. Authentication of tunneled connections
US7565526B1 (en) 2005-02-03 2009-07-21 Sun Microsystems, Inc. Three component secure tunnel
EP1866783B1 (en) * 2005-02-24 2020-11-18 EMC Corporation System and method for detecting and mitigating dns spoofing trojans
US8533473B2 (en) * 2005-03-04 2013-09-10 Oracle America, Inc. Method and apparatus for reducing bandwidth usage in secure transactions
US20060230278A1 (en) * 2005-03-30 2006-10-12 Morris Robert P Methods,systems, and computer program products for determining a trust indication associated with access to a communication network
US20060230279A1 (en) * 2005-03-30 2006-10-12 Morris Robert P Methods, systems, and computer program products for establishing trusted access to a communication network
US7689674B2 (en) * 2005-03-31 2010-03-30 Microsoft Corporation Selective exclusion of LSPs on a per-packet basis
US9363306B2 (en) * 2005-04-07 2016-06-07 Blackberry Limited Internet protocol loopback wireless data protocol converter
US20060238652A1 (en) * 2005-04-22 2006-10-26 Microsoft Corporation Sync manager UI and updated API
US20060242609A1 (en) * 2005-04-22 2006-10-26 Microsoft Corporation Sync manager UI and updated API
US7707223B2 (en) * 2005-04-28 2010-04-27 Cisco Technology, Inc. Client-side java content transformation
US20060265737A1 (en) * 2005-05-23 2006-11-23 Morris Robert P Methods, systems, and computer program products for providing trusted access to a communicaiton network based on location
US9621666B2 (en) 2005-05-26 2017-04-11 Citrix Systems, Inc. Systems and methods for enhanced delta compression
US9692725B2 (en) 2005-05-26 2017-06-27 Citrix Systems, Inc. Systems and methods for using an HTTP-aware client agent
US8943304B2 (en) 2006-08-03 2015-01-27 Citrix Systems, Inc. Systems and methods for using an HTTP-aware client agent
US9407608B2 (en) 2005-05-26 2016-08-02 Citrix Systems, Inc. Systems and methods for enhanced client side policy
FR2887384B1 (fr) * 2005-06-21 2007-08-31 Exosec Soc Par Actions Simplif "procede et systeme pour proteger un systeme d'information constitue autour d'un reseau local"
US8799515B1 (en) * 2005-06-27 2014-08-05 Juniper Networks, Inc. Rewriting of client-side executed scripts in the operation of an SSL VPN
US7984493B2 (en) * 2005-07-22 2011-07-19 Alcatel-Lucent DNS based enforcement for confinement and detection of network malicious activities
US8745485B2 (en) * 2005-08-18 2014-06-03 Oracle International Corporation Extensible remote tag markup system and method
US7991916B2 (en) * 2005-09-01 2011-08-02 Microsoft Corporation Per-user application rendering in the presence of application sharing
US7568005B2 (en) * 2005-09-01 2009-07-28 Microsoft Corporation Enhanced application behavior in the presence of application sharing
BRPI0615752A2 (pt) * 2005-09-12 2011-05-24 Microsoft Corp provisão de aplicação consistente ciente de travessia de parede corta-fogo
US8135741B2 (en) * 2005-09-20 2012-03-13 Microsoft Corporation Modifying service provider context information to facilitate locating interceptor context information
JP2007102780A (ja) * 2005-10-04 2007-04-19 Forval Technology Inc ブックマーク管理装置およびブックマーク管理方法
US20070121641A1 (en) * 2005-10-21 2007-05-31 Hovey Matthew N Method and system for network services with a mobile vehicle
EP1946217A2 (en) 2005-11-03 2008-07-23 Akonix Systems, Inc. Systems and methods for remote rogue protocol enforcement
US7653633B2 (en) * 2005-11-12 2010-01-26 Logrhythm, Inc. Log collection, structuring and processing
CA2957315C (en) * 2005-11-12 2021-10-12 Logrhythm, Inc. Log collection, structuring and processing
CA2627534A1 (en) * 2005-11-15 2007-05-24 Clairmail, Inc. Application access utilizing a message link
US8078952B2 (en) * 2005-11-28 2011-12-13 Microsoft Corporation Site redirection
US8595814B2 (en) 2005-12-13 2013-11-26 Google Inc. TLS encryption in a managed e-mail service environment
US8301839B2 (en) * 2005-12-30 2012-10-30 Citrix Systems, Inc. System and method for performing granular invalidation of cached dynamically generated objects in a data communication network
US7921184B2 (en) * 2005-12-30 2011-04-05 Citrix Systems, Inc. System and method for performing flash crowd caching of dynamically generated objects in a data communication network
US8108549B2 (en) * 2006-04-04 2012-01-31 International Business Machines Corporation Method for using the loopback interface in a computer system having multiple workload partitions
US9021027B2 (en) * 2006-04-20 2015-04-28 Cisco Technology, Inc. Techniques for alerting a user of unchecked messages before communication with a contact
US8935416B2 (en) 2006-04-21 2015-01-13 Fortinet, Inc. Method, apparatus, signals and medium for enforcing compliance with a policy on a client computer
US20070282802A1 (en) * 2006-05-09 2007-12-06 International Business Machines Corporation System, method and program to manage alternate bookmarks
US20070283028A1 (en) * 2006-06-01 2007-12-06 Microsoft Corporation Name Challenge Enabled Zones
US20070283170A1 (en) * 2006-06-05 2007-12-06 Kabushiki Kaisha Toshiba System and method for secure inter-process data communication
JP4867486B2 (ja) * 2006-06-12 2012-02-01 富士ゼロックス株式会社 制御プログラムおよび通信システム
US8601162B1 (en) 2006-07-27 2013-12-03 Aol Inc. Sharing network addresses
US8108525B2 (en) * 2006-08-03 2012-01-31 Citrix Systems, Inc. Systems and methods for managing a plurality of user sessions in a virtual private network environment
US8495181B2 (en) 2006-08-03 2013-07-23 Citrix Systems, Inc Systems and methods for application based interception SSI/VPN traffic
US8869262B2 (en) * 2006-08-03 2014-10-21 Citrix Systems, Inc. Systems and methods for application based interception of SSL/VPN traffic
US8561155B2 (en) * 2006-08-03 2013-10-15 Citrix Systems, Inc. Systems and methods for using a client agent to manage HTTP authentication cookies
US8392977B2 (en) * 2006-08-03 2013-03-05 Citrix Systems, Inc. Systems and methods for using a client agent to manage HTTP authentication cookies
JP4635983B2 (ja) * 2006-08-10 2011-02-23 ソニー株式会社 通信処理装置、データ通信システム、および方法、並びにコンピュータ・プログラム
US7953861B2 (en) * 2006-08-10 2011-05-31 International Business Machines Corporation Managing session state for web applications
WO2008031069A2 (en) * 2006-09-07 2008-03-13 Black Lab Security Systems, Inc. Method of monitoring network and internet connections in a real-time environment to detect unauthorized network connections and unauthorized network activity within a 32/64-bit microsoft pc or server operating system
DE102006051092B4 (de) * 2006-10-25 2008-11-27 Sirvaluse Consulting Gmbh Computergestütztes Verfahren zur ferngesteuerten Erfassung des Userverhaltens bei der Rezeption von Webseiten
EP2078382B1 (en) * 2006-11-03 2017-06-07 Network Box Corporation Limited An administration portal
US8533846B2 (en) * 2006-11-08 2013-09-10 Citrix Systems, Inc. Method and system for dynamically associating access rights with a resource
US8200764B2 (en) * 2006-12-19 2012-06-12 International Business Machines Corporation System and method for achieving highly scalable real-time collaboration applications using HTTP
US8255539B2 (en) * 2006-12-29 2012-08-28 Amadeus Sas System and method for extending sessions
US20080162724A1 (en) * 2006-12-29 2008-07-03 Nokia Corporation Direct domain name service query
WO2008088923A1 (en) * 2007-01-19 2008-07-24 Taproot Systems, Inc. Point of presence on a mobile network
US8201218B2 (en) * 2007-02-28 2012-06-12 Microsoft Corporation Strategies for securely applying connection policies via a gateway
US7853678B2 (en) * 2007-03-12 2010-12-14 Citrix Systems, Inc. Systems and methods for configuring flow control of policy expressions
US8490148B2 (en) 2007-03-12 2013-07-16 Citrix Systems, Inc Systems and methods for managing application security profiles
US7865589B2 (en) 2007-03-12 2011-01-04 Citrix Systems, Inc. Systems and methods for providing structured policy expressions to represent unstructured data in a network appliance
US8631147B2 (en) 2007-03-12 2014-01-14 Citrix Systems, Inc. Systems and methods for configuring policy bank invocations
US7870277B2 (en) * 2007-03-12 2011-01-11 Citrix Systems, Inc. Systems and methods for using object oriented expressions to configure application security policies
US7853679B2 (en) * 2007-03-12 2010-12-14 Citrix Systems, Inc. Systems and methods for configuring handling of undefined policy events
US20090006537A1 (en) * 2007-06-29 2009-01-01 Microsoft Corporation Virtual Desktop Integration with Terminal Services
CN101690004B (zh) * 2007-07-06 2013-10-23 Lg电子株式会社 在无线局域网系统中用于事件报告服务的方法和装置
EP2015236A1 (en) * 2007-07-10 2009-01-14 Ubs Ag Redirection technique in a communication network
US8132247B2 (en) * 2007-08-03 2012-03-06 Citrix Systems, Inc. Systems and methods for authorizing a client in an SSL VPN session failover environment
WO2009023258A2 (en) * 2007-08-15 2009-02-19 Clairmail, Inc. Machine-implemented system and method for providing timed targeted promotional offers to individual payment account users with feedback
US8583733B2 (en) * 2007-08-17 2013-11-12 Microsoft Corporation Real time collaboration file format for unified communication
US9906549B2 (en) * 2007-09-06 2018-02-27 Microsoft Technology Licensing, Llc Proxy engine for custom handling of web content
US7925694B2 (en) * 2007-10-19 2011-04-12 Citrix Systems, Inc. Systems and methods for managing cookies via HTTP content layer
US8356335B2 (en) * 2007-10-30 2013-01-15 Apple Inc. Techniques for authentication via network connections
US8195815B2 (en) * 2007-10-31 2012-06-05 Cisco Technology, Inc. Efficient network monitoring and control
CN101436933B (zh) * 2007-11-16 2012-02-01 成都市华为赛门铁克科技有限公司 一种https加密访问方法、系统及装置
US9300723B2 (en) 2007-12-07 2016-03-29 Display Technologies, Llc Enabling social interactive wireless communications
US8671195B2 (en) * 2007-12-07 2014-03-11 Leigh Rothschild Digital media communication protocol
JP4832418B2 (ja) * 2007-12-21 2011-12-07 東芝テック株式会社 情報端末及びコンピュータプログラム
US8769660B2 (en) 2008-01-26 2014-07-01 Citrix Systems, Inc. Systems and methods for proxying cookies for SSL VPN clientless sessions
CN101981887B (zh) * 2008-01-26 2016-02-10 思杰系统有限公司 用于配置和细粒度策略驱动web内容检测和重写的系统和方法
CN101918921B (zh) 2008-01-27 2013-12-04 思杰系统有限公司 用于远程提供三维图形的方法和系统
US8972374B2 (en) * 2008-02-12 2015-03-03 International Business Machines Corporation Content acquisition system and method of implementation
US8683062B2 (en) * 2008-02-28 2014-03-25 Microsoft Corporation Centralized publishing of network resources
US8307417B2 (en) * 2008-03-06 2012-11-06 Hewlett-Packard Development Company, L.P. Port enablement
CN101242336B (zh) * 2008-03-13 2010-12-01 杭州华三通信技术有限公司 远程访问内网Web服务器的方法及Web代理服务器
US20090259757A1 (en) * 2008-04-15 2009-10-15 Microsoft Corporation Securely Pushing Connection Settings to a Terminal Server Using Tickets
US8612862B2 (en) * 2008-06-27 2013-12-17 Microsoft Corporation Integrated client for access to remote resources
JP4722973B2 (ja) * 2008-08-12 2011-07-13 株式会社日立製作所 リクエスト処理方法及び計算機システム
US20110167121A1 (en) 2008-09-15 2011-07-07 Ben Matzkel System, apparatus and method for encryption and decryption of data transmitted over a network
KR100958098B1 (ko) 2008-09-22 2010-05-17 주식회사 시큐위즈 가상사설망 서비스방법 및 그 시스템
US8812616B2 (en) * 2008-10-03 2014-08-19 Systech Corporation Remote port access (RPA) server
US20100107240A1 (en) * 2008-10-24 2010-04-29 Microsoft Corporation Network location determination for direct access networks
US8984102B2 (en) * 2009-02-20 2015-03-17 Gary Stephen Shuster Registration and use of patterns defined by expressions as domain names
US8447918B2 (en) 2009-04-08 2013-05-21 Google Inc. Garbage collection for failure prediction and repartitioning
US8566507B2 (en) 2009-04-08 2013-10-22 Google Inc. Data storage device capable of recognizing and controlling multiple types of memory chips
US9553953B2 (en) * 2009-04-15 2017-01-24 Dell Products L.P. Method and apparatus for extending capabilities of a virtualization domain to support features available in a normal desktop application
US9578113B2 (en) * 2009-04-15 2017-02-21 Wyse Technology L.L.C. Method and apparatus for transferring remote session data
US10244056B2 (en) 2009-04-15 2019-03-26 Wyse Technology L.L.C. Method and apparatus for transferring remote session data
CN101582890B (zh) * 2009-06-09 2012-04-18 中国科学院计算技术研究所 实现x11客户端和x11服务器连接的方法及系统
US9473460B2 (en) * 2009-06-22 2016-10-18 Microsoft Technology Licensing, Llc Using hypertext transfer protocol as a transport for bi-directional data streams
US9235583B2 (en) 2009-07-15 2016-01-12 Aten International Co., Ltd. Virtual media with folder-mount function
US9237186B2 (en) 2009-07-15 2016-01-12 Aten International Co., Ltd. Virtual media with folder-mount function and graphical user interface for mounting one or more files or folders
US8615594B2 (en) * 2009-07-15 2013-12-24 Aten International Co., Ltd. Virtual media with folder-mount function
JP5511970B2 (ja) * 2009-10-21 2014-06-04 テレフオンアクチーボラゲット エル エム エリクソン(パブル) マルチアクセスにおけるリソース予約
US8266262B2 (en) * 2009-11-30 2012-09-11 Red Hat, Inc. Providing network security services for multiple requesters
US8909916B2 (en) 2009-11-30 2014-12-09 Red Hat, Inc. Using a PKCS module for opening multiple databases
US10057239B2 (en) 2009-12-17 2018-08-21 Pulse Secure, Llc Session migration between network policy servers
US10089119B2 (en) * 2009-12-18 2018-10-02 Microsoft Technology Licensing, Llc API namespace virtualization
CN101815084B (zh) * 2009-12-31 2012-11-07 优视科技有限公司 一种用于用户终端文件管理系统及其应用方法
US8799640B2 (en) * 2010-02-27 2014-08-05 Novell, Inc. Techniques for managing a secure communication session
US20110252117A1 (en) * 2010-04-12 2011-10-13 Swee Huat Sng Devices and Methods for Redirecting a Browser to Access Computer Resource Behind a Network Firewall
CA2800163A1 (en) * 2010-05-21 2011-11-24 Vaultive Ltd. System and method for controlling and monitoring access to data processing applications
US9384112B2 (en) 2010-07-01 2016-07-05 Logrhythm, Inc. Log collection, structuring and processing
US9645992B2 (en) 2010-08-21 2017-05-09 Oracle International Corporation Methods and apparatuses for interaction with web applications and web application data
WO2012027472A2 (en) 2010-08-24 2012-03-01 Copiun, Inc. Constant access gateway and de-duplicated data cache server
US8832283B1 (en) * 2010-09-16 2014-09-09 Google Inc. Content provided DNS resolution validation and use
WO2012053135A1 (ja) * 2010-10-20 2012-04-26 日本電気株式会社 通信制御装置、システム、方法及びプログラムが格納された非一時的なコンピュータ可読媒体
EP2643759B1 (en) 2010-11-24 2019-10-16 Logrhythm, Inc. Advanced intelligence engine
US9780995B2 (en) 2010-11-24 2017-10-03 Logrhythm, Inc. Advanced intelligence engine
EP2659650B1 (en) 2010-12-29 2022-06-22 Citrix Systems Inc. Systems and methods for multi-level tagging of encrypted items for additional security and efficient encrypted item determination
US9461878B1 (en) 2011-02-01 2016-10-04 Palo Alto Networks, Inc. Blocking download of content
US10951743B2 (en) 2011-02-04 2021-03-16 Adaptiv Networks Inc. Methods for achieving target loss ratio
US8717900B2 (en) 2011-02-07 2014-05-06 LivQoS Inc. Mechanisms to improve the transmission control protocol performance in wireless networks
US9590913B2 (en) 2011-02-07 2017-03-07 LiveQoS Inc. System and method for reducing bandwidth usage of a network
US9542549B2 (en) * 2011-02-09 2017-01-10 Verizon Patent And Licensing Inc. Toolbar for single sign-on and non-single sign-on sites, applications, systems, and sessions
US8407776B2 (en) * 2011-02-11 2013-03-26 Good Technology Corporation Method, apparatus and system for provisioning a push notification session
US8949349B2 (en) 2011-03-28 2015-02-03 Blackberry Limited Communications system including trusted server to verify a redirection request and associated methods
CN102739613B (zh) * 2011-04-12 2016-05-25 深圳市金蝶中间件有限公司 跨防火墙的动态通路方法及系统
US20120271945A1 (en) * 2011-04-20 2012-10-25 Microsoft Corporation Obtaining Server Address when Domain Name System Proxy Solution Fails
US10225354B2 (en) * 2011-06-06 2019-03-05 Mitel Networks Corporation Proximity session mobility
US8549579B2 (en) * 2011-07-06 2013-10-01 International Business Machines Corporation Dynamic data-protection policies within a request-reply message queuing environment
US8776094B2 (en) 2011-08-11 2014-07-08 Microsoft Corporation Runtime system
US8695021B2 (en) 2011-08-31 2014-04-08 Microsoft Corporation Projecting native application programming interfaces of an operating system into other programming languages
JP5329626B2 (ja) * 2011-09-15 2013-10-30 東芝テック株式会社 情報端末及びコンピュータプログラム
US8695060B2 (en) 2011-10-10 2014-04-08 Openpeak Inc. System and method for creating secure applications
US20140032733A1 (en) 2011-10-11 2014-01-30 Citrix Systems, Inc. Policy-Based Application Management
US9215225B2 (en) 2013-03-29 2015-12-15 Citrix Systems, Inc. Mobile device locking with context
US9280377B2 (en) 2013-03-29 2016-03-08 Citrix Systems, Inc. Application with multiple operation modes
US8799994B2 (en) 2011-10-11 2014-08-05 Citrix Systems, Inc. Policy-based application management
US20140040979A1 (en) 2011-10-11 2014-02-06 Citrix Systems, Inc. Policy-Based Application Management
US9286471B2 (en) 2011-10-11 2016-03-15 Citrix Systems, Inc. Rules based detection and correction of problems on mobile devices of enterprise users
US9722972B2 (en) 2012-02-26 2017-08-01 Oracle International Corporation Methods and apparatuses for secure communication
US10009318B2 (en) * 2012-03-14 2018-06-26 Microsoft Technology Licensing, Llc Connecting to a cloud service for secure access
US9154568B2 (en) * 2012-03-20 2015-10-06 Facebook, Inc. Proxy bypass login for applications on mobile devices
US9722851B1 (en) * 2012-03-27 2017-08-01 Amazon Technologies, Inc. Optimized retrieval of network resources
US9225731B2 (en) * 2012-05-24 2015-12-29 International Business Machines Corporation System for detecting the presence of rogue domain name service providers through passive monitoring
US9609077B1 (en) * 2012-05-30 2017-03-28 Crimson Corporation Forwarding content on a client based on a request
US9160653B2 (en) 2012-06-07 2015-10-13 International Business Machines Corporation Dynamic redirection of network traffic within a system under test
EP2862116B1 (en) 2012-06-18 2019-08-07 Microsoft Israel Research and Development (2002) Ltd. System and method to access content of encrypted data items in unsupported digital environments
EP2868030A4 (en) * 2012-06-29 2016-03-09 Hewlett Packard Development Co REVISION OF A DEVICE
US9887872B2 (en) * 2012-07-13 2018-02-06 Microsoft Technology Licensing, Llc Hybrid application environments including hosted applications and application servers for interacting with data in enterprise environments
US10521250B2 (en) 2012-09-12 2019-12-31 The Directv Group, Inc. Method and system for communicating between a host device and user device through an intermediate device using a composite video signal
US9137501B2 (en) * 2012-09-12 2015-09-15 The Directv Group, Inc. Method and system for communicating between a host device and user device through an intermediate device using syntax translation
US9535722B2 (en) 2012-09-12 2017-01-03 The Directv Group, Inc. Method and system for communicating between a host device and a user device through an intermediate device using a composite graphics signal
US9038151B1 (en) 2012-09-20 2015-05-19 Wiretap Ventures, LLC Authentication for software defined networks
US8613070B1 (en) 2012-10-12 2013-12-17 Citrix Systems, Inc. Single sign-on access in an orchestration framework for connected devices
US9516022B2 (en) 2012-10-14 2016-12-06 Getgo, Inc. Automated meeting room
US20140109171A1 (en) 2012-10-15 2014-04-17 Citrix Systems, Inc. Providing Virtualized Private Network tunnels
US8910239B2 (en) 2012-10-15 2014-12-09 Citrix Systems, Inc. Providing virtualized private network tunnels
US20140109176A1 (en) 2012-10-15 2014-04-17 Citrix Systems, Inc. Configuring and providing profiles that manage execution of mobile applications
US20140108793A1 (en) 2012-10-16 2014-04-17 Citrix Systems, Inc. Controlling mobile device access to secure data
US9170800B2 (en) 2012-10-16 2015-10-27 Citrix Systems, Inc. Application wrapping for application management framework
US9606774B2 (en) 2012-10-16 2017-03-28 Citrix Systems, Inc. Wrapping an application with field-programmable business logic
US9971585B2 (en) 2012-10-16 2018-05-15 Citrix Systems, Inc. Wrapping unmanaged applications on a mobile device
US8954467B2 (en) * 2012-11-29 2015-02-10 Citrix Systems, Inc. Systems and methods for automatically associating communication streams with a file presented during a meeting
US9253160B2 (en) 2012-12-31 2016-02-02 Kent Lawson Methods, systems, and media for secure connection management and automatic compression over metered data connections
US10200351B2 (en) * 2013-03-14 2019-02-05 Google Llc System for managing remote software applications
US9129112B2 (en) 2013-03-15 2015-09-08 Oracle International Corporation Methods, systems and machine-readable media for providing security services
US9344422B2 (en) 2013-03-15 2016-05-17 Oracle International Corporation Method to modify android application life cycle to control its execution in a containerized workspace environment
CN104903905B (zh) 2013-03-15 2018-04-10 甲骨文国际公司 通过修改计算机应用的目标代码的用于计算机应用的安全服务管理
US9455886B2 (en) 2013-03-29 2016-09-27 Citrix Systems, Inc. Providing mobile device management functionalities
US20140297840A1 (en) 2013-03-29 2014-10-02 Citrix Systems, Inc. Providing mobile device management functionalities
US8813179B1 (en) 2013-03-29 2014-08-19 Citrix Systems, Inc. Providing mobile device management functionalities
US9369449B2 (en) 2013-03-29 2016-06-14 Citrix Systems, Inc. Providing an enterprise application store
US10284627B2 (en) 2013-03-29 2019-05-07 Citrix Systems, Inc. Data management for an application with multiple operation modes
US9985850B2 (en) 2013-03-29 2018-05-29 Citrix Systems, Inc. Providing mobile device management functionalities
US9355223B2 (en) 2013-03-29 2016-05-31 Citrix Systems, Inc. Providing a managed browser
US11106778B2 (en) 2013-05-02 2021-08-31 Dropbox, Inc. Toggle between accounts
US9065818B2 (en) 2013-05-02 2015-06-23 Dropbox, Inc. Toggle between accounts
GB2514550A (en) * 2013-05-28 2014-12-03 Ibm System and method for providing access to a resource for a computer from within a restricted network and storage medium storing same
US9411978B2 (en) 2013-07-11 2016-08-09 Open Text S.A. System and method for access control using network verification
EP3025245A4 (en) * 2013-07-26 2017-05-03 Empire Technology Development LLC Device and session identification
US9009461B2 (en) 2013-08-14 2015-04-14 Iboss, Inc. Selectively performing man in the middle decryption
JP6465542B2 (ja) * 2013-09-02 2019-02-06 キヤノン株式会社 情報処理装置、その制御方法及びプログラム
CN103607374A (zh) * 2013-10-28 2014-02-26 中国航天科工集团第二研究院七〇六所 基于身份认证和数据包过滤技术的网络资源访问控制方法
CN103546574B (zh) * 2013-10-30 2016-05-25 中国航空工业集团公司第六三一研究所 一种基于静态配置表的机载嵌入式网络文件访问控制方法
EP3734474A3 (en) * 2013-11-11 2021-01-20 Microsoft Technology Licensing, LLC Cloud service security broker and proxy
US10694000B2 (en) 2013-12-02 2020-06-23 Amazon Technologies, Inc. Browser-based analysis of content request mode performance
US10242322B2 (en) 2013-12-02 2019-03-26 Amazon Technologies, Inc. Browser-based selection of content request modes
US10237373B2 (en) 2013-12-02 2019-03-19 Amazon Technologies, Inc. Performance-based determination of request modes
CN104717192B (zh) * 2013-12-16 2018-05-18 腾讯科技(深圳)有限公司 合法性验证方法及中间服务器
JP6265732B2 (ja) * 2013-12-25 2018-01-24 キヤノン株式会社 管理装置、管理装置の制御方法及びプログラム
JP6395380B2 (ja) * 2014-01-07 2018-09-26 キヤノン株式会社 情報処理装置、情報処理方法、及びプログラム
CN104796313B (zh) * 2014-01-20 2020-10-16 腾讯科技(深圳)有限公司 自动对话工具接入第三方的方法和装置
US9509656B2 (en) * 2014-01-22 2016-11-29 Honeywell International Inc. Broadcast distribution table for BACnet/IP
WO2015126674A1 (en) * 2014-02-10 2015-08-27 Bigcommerce Pty. Ltd. System, method and acrhitecture for providing integrated applications
US9967357B2 (en) * 2014-03-06 2018-05-08 Empire Technology Development Llc Proxy service facilitation
EP3117564B1 (en) 2014-03-13 2019-09-04 Systech Corporation Gateway management using virtual gateways and wildcards
US9762625B2 (en) * 2014-05-28 2017-09-12 Apple Inc. Device and method for virtual private network connection establishment
US8938547B1 (en) 2014-09-05 2015-01-20 Openpeak Inc. Method and system for data usage accounting in a computing device
US9100390B1 (en) 2014-09-05 2015-08-04 Openpeak Inc. Method and system for enrolling and authenticating computing devices for data usage accounting
US20160071040A1 (en) 2014-09-05 2016-03-10 Openpeak Inc. Method and system for enabling data usage accounting through a relay
US9350818B2 (en) 2014-09-05 2016-05-24 Openpeak Inc. Method and system for enabling data usage accounting for unreliable transport communication
US9232013B1 (en) * 2014-09-05 2016-01-05 Openpeak Inc. Method and system for enabling data usage accounting
US10324702B2 (en) 2014-09-12 2019-06-18 Microsoft Israel Research And Development (2002) Ltd. Cloud suffix proxy and a method thereof
CN106663018B (zh) 2014-09-24 2020-09-15 甲骨文国际公司 修改移动设备应用生命周期的系统、方法、介质和设备
US10635504B2 (en) 2014-10-16 2020-04-28 Microsoft Technology Licensing, Llc API versioning independent of product releases
US9641522B1 (en) * 2014-11-11 2017-05-02 Amazon Technologies, Inc. Token management in a managed directory service
JP6365280B2 (ja) * 2014-12-10 2018-08-01 富士通株式会社 情報処理装置、情報処理システム、及びプログラム
US9614853B2 (en) 2015-01-20 2017-04-04 Enzoo, Inc. Session security splitting and application profiler
US9462006B2 (en) * 2015-01-21 2016-10-04 Palo Alto Research Center Incorporated Network-layer application-specific trust model
US9232078B1 (en) 2015-03-16 2016-01-05 Openpeak Inc. Method and system for data usage accounting across multiple communication networks
US9887978B2 (en) * 2015-06-23 2018-02-06 Veritas Technologies Llc System and method for centralized configuration and authentication
JP6367764B2 (ja) * 2015-06-24 2018-08-01 株式会社リコー 管理装置、管理方法及び管理プログラム
EP3113450B1 (en) 2015-06-29 2018-04-25 Thomson Licensing Method for locating a service and method for proposing a service and corresponding communication network devices, system, computer readable program products and computer readable storage mediums
US9866592B2 (en) * 2015-09-28 2018-01-09 BlueTalon, Inc. Policy enforcement system
US10491590B2 (en) * 2015-10-12 2019-11-26 AssetWorks LLC System and method for verifying and redirecting mobile applications
US9871825B2 (en) 2015-12-10 2018-01-16 BlueTalon, Inc. Policy enforcement for compute nodes
US10091212B2 (en) 2016-03-04 2018-10-02 BlueTalon, Inc. Policy management, enforcement, and audit for data security
US9680801B1 (en) 2016-05-03 2017-06-13 Iboss, Inc. Selectively altering references within encrypted pages using man in the middle
US11157641B2 (en) 2016-07-01 2021-10-26 Microsoft Technology Licensing, Llc Short-circuit data access
US20180115556A1 (en) * 2016-10-25 2018-04-26 American Megatrends, Inc. Systems and Methods of Restricting File Access
US10803190B2 (en) 2017-02-10 2020-10-13 BlueTalon, Inc. Authentication based on client access limitation
CN107135249B (zh) * 2017-04-06 2023-03-24 腾讯科技(深圳)有限公司 数据下载方法及装置
US10291602B1 (en) 2017-04-12 2019-05-14 BlueTalon, Inc. Yarn rest API protection
US10250723B2 (en) 2017-04-13 2019-04-02 BlueTalon, Inc. Protocol-level identity mapping
CN110770695B (zh) * 2017-06-16 2024-01-30 密码研究公司 物联网(iot)设备管理
US10491635B2 (en) 2017-06-30 2019-11-26 BlueTalon, Inc. Access policies based on HDFS extended attributes
CN107295573B (zh) 2017-07-12 2019-08-02 网宿科技股份有限公司 一种业务应用流量的引导方法和系统
US10623390B1 (en) * 2017-08-24 2020-04-14 Pivotal Software, Inc. Sidecar-backed services for cloud computing platform
US10855793B2 (en) * 2017-09-25 2020-12-01 Splunk Inc. Proxying hypertext transfer protocol (HTTP) requests for microservices
US11146563B1 (en) 2018-01-31 2021-10-12 Microsoft Technology Licensing, Llc Policy enforcement for search engines
US11005889B1 (en) 2018-02-02 2021-05-11 Microsoft Technology Licensing, Llc Consensus-based policy management
US11790099B1 (en) 2018-02-09 2023-10-17 Microsoft Technology Licensing, Llc Policy enforcement for dataset access in distributed computing environment
CN110968356B (zh) * 2018-09-29 2023-09-29 北京金山云网络技术有限公司 配置信息获取的方法和装置
CN111263364B (zh) * 2018-12-03 2022-08-02 中国电信股份有限公司 WiFi认证方法、系统、DNS服务器和计算机可存储介质
US11075800B2 (en) * 2018-12-31 2021-07-27 Morgan Stanley Services Group Inc. Characterizing client-server connection configurations according to communication layer attributes
CN109587275A (zh) * 2019-01-08 2019-04-05 网宿科技股份有限公司 一种通信连接的建立方法及代理服务器
US11436062B2 (en) * 2020-02-03 2022-09-06 Dell Products L.P. Supporting universal windows platform and Win32 applications in kiosk mode
CN113761401A (zh) * 2020-07-16 2021-12-07 北京沃东天骏信息技术有限公司 确定网站根域名的方法和装置
US11019031B1 (en) 2020-09-22 2021-05-25 Netskope, Inc. Client software connection inspection and access control
US11165586B1 (en) * 2020-10-30 2021-11-02 Capital One Services, Llc Call center web-based authentication using a contactless card
CN112751870B (zh) * 2020-12-30 2022-11-11 湖南麒麟信安科技股份有限公司 一种基于代理转发的nfs安全传输装置及方法
US20240152840A1 (en) * 2022-11-04 2024-05-09 OpenMethods System and method for dynamic business workflow monitoring and regulation

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001090913A1 (en) * 2000-05-22 2001-11-29 New.Net, Inc. Systems and methods of accessing network resources
JP2003030143A (ja) * 2001-04-30 2003-01-31 Matsushita Electric Ind Co Ltd 携帯用記憶装置を用いるコンピュータネットワークセキュリティシステム
JP2003044381A (ja) * 2001-05-21 2003-02-14 International System Research:Kk ファイル同期システム及びファイル管理サーバ

Family Cites Families (53)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5586260A (en) * 1993-02-12 1996-12-17 Digital Equipment Corporation Method and apparatus for authenticating a client to a server in computer systems which support different security mechanisms
US5491752A (en) * 1993-03-18 1996-02-13 Digital Equipment Corporation, Patent Law Group System for increasing the difficulty of password guessing attacks in a distributed authentication scheme employing authentication tokens
US5799318A (en) * 1993-04-13 1998-08-25 Firstfloor Software Method and apparatus for collecting and displaying information from diverse computer resources
US5649099A (en) * 1993-06-04 1997-07-15 Xerox Corporation Method for delegating access rights through executable access control program without delegating access rights not in a specification to any intermediary nor comprising server security
US5752022A (en) * 1995-08-07 1998-05-12 International Business Machines Corp. Method for creating a hypertext language for a distributed computer network
US5812769A (en) * 1995-09-20 1998-09-22 Infonautics Corporation Method and apparatus for redirecting a user to a new location on the world wide web using relative universal resource locators
US5774670A (en) * 1995-10-06 1998-06-30 Netscape Communications Corporation Persistent client state in a hypertext transfer protocol based client-server system
US5826014A (en) * 1996-02-06 1998-10-20 Network Engineering Software Firewall system for protecting network elements connected to a public network
US6182141B1 (en) * 1996-12-20 2001-01-30 Intel Corporation Transparent proxy server
US6052730A (en) * 1997-01-10 2000-04-18 The Board Of Trustees Of The Leland Stanford Junior University Method for monitoring and/or modifying web browsing sessions
US6012087A (en) * 1997-01-14 2000-01-04 Netmind Technologies, Inc. Unique-change detection of dynamic web pages using history tables of signatures
US5978842A (en) * 1997-01-14 1999-11-02 Netmind Technologies, Inc. Distributed-client change-detection tool with change-detection augmented by multiple clients
US5898836A (en) * 1997-01-14 1999-04-27 Netmind Services, Inc. Change-detection tool indicating degree and location of change of internet documents by comparison of cyclic-redundancy-check(CRC) signatures
US5983268A (en) * 1997-01-14 1999-11-09 Netmind Technologies, Inc. Spreadsheet user-interface for an internet-document change-detection tool
US5961593A (en) 1997-01-22 1999-10-05 Lucent Technologies, Inc. System and method for providing anonymous personalized browsing by a proxy system in a network
US6356934B1 (en) * 1997-04-28 2002-03-12 Sabre Inc. Intermediate server having control program for storing content accessed during browsing sessions and playback program for asynchronously replaying browsing sessions
US5805803A (en) * 1997-05-13 1998-09-08 Digital Equipment Corporation Secure web tunnel
IT1298045B1 (it) 1997-05-15 1999-12-20 Nord Est Meccanica Snc Sistema di apertura a vetri scorrevoli per banchi e vetrine destinate alla vendita di prodotti alimentari
US6167438A (en) * 1997-05-22 2000-12-26 Trustees Of Boston University Method and system for distributed caching, prefetching and replication
US6098108A (en) * 1997-07-02 2000-08-01 Sitara Networks, Inc. Distributed directory for enhanced network communication
US6006268A (en) * 1997-07-31 1999-12-21 Cisco Technology, Inc. Method and apparatus for reducing overhead on a proxied connection
US5935212A (en) * 1997-08-07 1999-08-10 I-Planet, Inc. Connection-oriented session emulation
US6061796A (en) * 1997-08-26 2000-05-09 V-One Corporation Multi-access virtual private network
US5991878A (en) * 1997-09-08 1999-11-23 Fmr Corp. Controlling access to information
US6202156B1 (en) * 1997-09-12 2001-03-13 Sun Microsystems, Inc. Remote access-controlled communication
US6006258A (en) * 1997-09-12 1999-12-21 Sun Microsystems, Inc. Source address directed message delivery
US5941954A (en) * 1997-10-01 1999-08-24 Sun Microsystems, Inc. Network message redirection
US6289333B1 (en) * 1998-01-16 2001-09-11 Aspect Communications Corp. Methods and apparatus enabling dynamic resource collaboration when collaboration session host is distinct from resource host
US6185598B1 (en) * 1998-02-10 2001-02-06 Digital Island, Inc. Optimized network resource location
US6141686A (en) * 1998-03-13 2000-10-31 Deterministic Networks, Inc. Client-side application-classifier gathering network-traffic statistics and application and user names using extensible-service provider plugin for policy-based network control
US6205481B1 (en) * 1998-03-17 2001-03-20 Infolibria, Inc. Protocol for distributing fresh content among networked cache servers
JP3995338B2 (ja) 1998-05-27 2007-10-24 富士通株式会社 ネットワーク接続制御方法及びシステム
JP2002518726A (ja) 1998-06-19 2002-06-25 サンマイクロシステムズ インコーポレーテッド プラグインフィルタを用いた拡張性の高いプロキシサーバ
US6182142B1 (en) * 1998-07-10 2001-01-30 Encommerce, Inc. Distributed access management of information resources
JP2002523973A (ja) 1998-08-21 2002-07-30 ヴィスト・コーポレーション コンピュータ・ネットワークにおけるサービスへの安全なアクセスを可能にするシステムおよび方法
US6532493B1 (en) * 1998-10-29 2003-03-11 Cisco Technology, Inc. Methods and apparatus for redirecting network cache traffic
EP1039396A3 (en) 1999-02-03 2002-06-12 AT&T Corp. Information access system and method for providing a personal portal
US6505230B1 (en) * 1999-05-14 2003-01-07 Pivia, Inc. Client-server independent intermediary mechanism
US6609151B1 (en) * 1999-08-31 2003-08-19 Intel Corporation System for configuring a computer with or without an operating system to allow another computer to remotely exchange data and control the computer
US6510464B1 (en) * 1999-12-14 2003-01-21 Verizon Corporate Services Group Inc. Secure gateway having routing feature
US6671724B1 (en) * 2000-03-21 2003-12-30 Centrisoft Corporation Software, systems and methods for managing a distributed network
US6976037B1 (en) * 2000-03-27 2005-12-13 Microsoft Corporation Method and systems for DLL/COM redirection
US6754709B1 (en) * 2000-03-29 2004-06-22 Microsoft Corporation Application programming interface and generalized network address translator for intelligent transparent application gateway processes
US6950935B1 (en) * 2000-04-21 2005-09-27 Sun Microsystems, Inc. Pluggable authentication modules for telecommunications management network
US7774455B1 (en) * 2000-09-26 2010-08-10 Juniper Networks, Inc. Method and system for providing secure access to private networks
US7085817B1 (en) 2000-09-26 2006-08-01 Juniper Networks, Inc. Method and system for modifying requests for remote resources
US20030051161A1 (en) 2001-09-12 2003-03-13 Smith Jeffery C. System and method for monitoring global network activity
US20020083342A1 (en) * 2000-12-21 2002-06-27 Webb Brian T. Systems, methods and computer program products for accessing devices on private networks via clients on a public network
US7293108B2 (en) 2001-03-15 2007-11-06 Intel Corporation Generic external proxy
US7054866B2 (en) * 2001-03-20 2006-05-30 Mci, Inc. Systems and methods for communicating from an integration platform to a provisioning server
US7010608B2 (en) 2001-09-28 2006-03-07 Intel Corporation System and method for remotely accessing a home server while preserving end-to-end security
US7631084B2 (en) * 2001-11-02 2009-12-08 Juniper Networks, Inc. Method and system for providing secure access to private networks with client redirection
US20050120204A1 (en) * 2003-12-01 2005-06-02 Gary Kiwimagi Secure network connection

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001090913A1 (en) * 2000-05-22 2001-11-29 New.Net, Inc. Systems and methods of accessing network resources
JP2003030143A (ja) * 2001-04-30 2003-01-31 Matsushita Electric Ind Co Ltd 携帯用記憶装置を用いるコンピュータネットワークセキュリティシステム
JP2003044381A (ja) * 2001-05-21 2003-02-14 International System Research:Kk ファイル同期システム及びファイル管理サーバ

Also Published As

Publication number Publication date
CN100437530C (zh) 2008-11-26
EP1616263A2 (en) 2006-01-18
CN1781087A (zh) 2006-05-31
EP1616263A4 (en) 2011-11-23
US7958245B2 (en) 2011-06-07
US20110208838A1 (en) 2011-08-25
US7631084B2 (en) 2009-12-08
US20040039827A1 (en) 2004-02-26
EP1616263B1 (en) 2018-08-22
WO2004092905A2 (en) 2004-10-28
WO2004092905A3 (en) 2005-08-18
US20100057845A1 (en) 2010-03-04
JP2006526843A (ja) 2006-11-24

Similar Documents

Publication Publication Date Title
JP4734592B2 (ja) クライアントリダイレクトによるプライベートネットワークへの安全なアクセス提供方法およびシステム
US7774455B1 (en) Method and system for providing secure access to private networks
US7146403B2 (en) Dual authentication of a requestor using a mail server and an authentication server
US8332464B2 (en) System and method for remote network access
US6081900A (en) Secure intranet access
EP1442580B1 (en) Method and system for providing secure access to resources on private networks
US20080034420A1 (en) System and method of portal customization for a virtual private network device
JP2009536377A (ja) リモートユーザに対するコンピューティング環境の提供を加速するためのシステムおよび方法
JP2011044167A (ja) リモートクライアントの完全性検証を実施するための装置、システム、方法及びコンピュータプログラム製品
JP2001512260A (ja) コンピュータ・ネットワーク内で統一情報に大域的にかつ安全にアクセスするシステムおよび方法
US8621077B2 (en) Distribution of security policies for small to medium-sized organizations
US10032027B2 (en) Information processing apparatus and program for executing an electronic data in an execution environment
WO2010136317A1 (fr) Procédé de navigation sur le réseau internet, support d'enregistrement, serveur d'accès et poste d'utilisateur pour la mise en oeuvre de ce procédé
US7502856B1 (en) Redirecting file access through a HTTP web server
US7650392B1 (en) Dynamic content processing in a reverse proxy service
CA2633313A1 (en) Method and system for externalizing http security message handling with macro support
JP2007505409A (ja) プロトコルゲートウェイでソフトウェアを動的に更新するシステム及び方法
EP1777912B1 (en) Method and system for providing secure access to resources on private networks
JP4206206B2 (ja) 情報資源の更新方法
EP2339464A1 (en) A method of executing a program

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090901

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20091124

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20091201

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091229

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101012

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110112

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110119

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110208

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110322

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110404

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 4734592

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140513

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees