(57)【要約】コンピュータで実装される方法および装置により、コンピュータへのセキュリティで保護されたアクセスが提供される。本発明のある側面によれば、ユーザーからユーザーIDおよびパスワードを含む信用情報が受け取られる。信用情報は暗号化アルゴリズムを使って暗号化される。その暗号化された信用情報を含んだ、コンピュータへのアクセスの要求が生成される。コンピュータへのアクセス要求はネットワークを通じて送信される。そのコンピュータへのアクセスが認められたという検証が受信される。そのコンピュータへのアクセスが受信される。
2007503136.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを通じてクライアントからコンピュータに安全にアクセスするための、コンピュータで実装される方法であって：
・ユーザーからユーザーIDおよびパスワードを含む信用情報を受け取り、
・前記信用情報を暗号化プロセスを用いて暗号化し、
・前記の暗号化された信用情報を含んだ、前記コンピュータへのアクセスの要求メッセージを生成し、
・前記要求メッセージを前記ネットワークを通じて送信し、
・前記コンピュータへのアクセスが認められたという検証メッセージを受信し、
・前記コンピュータにアクセスする、
ことを含んでおり、前記ユーザーIDおよび前記ユーザーパスワードが前記ネットワークを通じて送信される際に暗号化されたままであることを特徴とする方法。
【請求項２】
前記暗号化ステップが、キャラクタマッピングテーブルを使って前記信用情報を有効な暗号化可能キャラクタにマッピングすることを含むことを特徴とする、請求項１記載の方法。
【請求項３】
前記暗号化ステップが前記信用情報を２５６ビットの鍵を使って暗号化することを含むことを特徴とする、請求項１記載の方法。
【請求項４】
前記暗号化ステップが前記信用情報を１２８ビットのシードを使って暗号化することを含むことを特徴とする、請求項１記載の方法。
【請求項５】
前記暗号化ステップが：
クライアントソフトウェア識別番号、クライアントセッション識別番号、クライアントハードウェア識別番号およびランダムビット
のうちの少なくとも一つの少なくとも一部分を含むシードを使って前記信用情報を暗号化することを含むことを特徴とする、請求項１記載の方法。
【請求項６】
前記生成ステップが、経路制御プレフィックスまたはサフィックスのうちの少なくとも一つを前記の暗号化されたユーザーIDに付加することを含むことを特徴とする、請求項１記載の方法。
【請求項７】
前記鍵を定期的に更新する、
ことをさらに含むことを特徴とする、請求項３記載の方法。
【請求項８】
前記更新ステップが、前記コンピュータにアクセスしたのちに前記鍵を更新することを含むことを特徴とする、請求項７記載の方法。
【請求項９】
前記送信ステップが、前記ネットワークを通じて前記要求メッセージを送信することをSSL、CHAPまたはPAPを使って行うことを含むことを特徴とする、請求項１記載の方法。
【請求項１０】
前記送信ステップが、前記ネットワークを通じて前記要求メッセージを送信することを、前記の暗号化されたパスワードを乱数と一方向性ハッシュ関数を用いてアルゴリズム的に混合したのちにCHAPを使って行うことを含むことを特徴とする、請求項９記載の方法。
【請求項１１】
前記送信ステップが、前記ネットワークを通じて前記要求メッセージを送信することを、前記の暗号化されたパスワードを乱数とハッシュ関数MD-5を用いてアルゴリズム的に混合したのちにCHAPを使って行うことを含むことを特徴とする、請求項９記載の方法。
【請求項１２】
前記送信ステップが、ダイヤルアップ、構内ネットワーク、Wi-Fi、有線ローミングブロードバンド、遠隔通勤ブロードバンド、2.5G/3G無線、GPRSおよびPHSネットワークのうちの少なくとも一つを含む前記ネットワークを通じて前記要求メッセージを送信することを含むことを特徴とする、請求項１記載の方法。
【請求項１３】
前記ネットワークの少なくとも一部分がインターネット通信リンクを含んでいることを特徴とする、請求項１記載の方法。
【請求項１４】
前記ネットワークの少なくとも一部分がプライベートなデータ通信回線を含んでいることを特徴とする、請求項１記載の方法。
【請求項１５】
ネットワークを通じてクライアントからコンピュータへのアクセスを安全に認証するための、コンピュータで実装される方法であって：
・前記クライアントから前記コンピュータへのアクセスのための、前記ネットワークを通じて送信された要求メッセージを受信し、該要求メッセージは暗号化されたユーザーIDおよび暗号化されたパスワードを含む暗号化された信用情報を含んでおり、
・前記暗号化された信用情報を復号して復号された信用情報を形成し、
・前記復号された信用情報が有効であることを検証し、
・前記クライアントに検証メッセージを送信し、
・前記クライアントに前記コンピュータへのアクセスを承認する、
ことを含んでおり、前記ユーザーIDおよび前記ユーザーパスワードが前記ネットワークを通じて送信される際に暗号化されたままであることを特徴とする方法。
【請求項１６】
前記検証ステップが、前記暗号化された信用情報が以前に提示された信用情報のコピーではないことを検証することを含むことを特徴とする、請求項１５記載の方法。
【請求項１７】
前記復号ステップが、キャラクタマッピングテーブルを使って復号されたキャラクタを逆マッピングすることを含むことを特徴とする、請求項１５記載の方法。
【請求項１８】
前記復号ステップが２５６ビットの鍵を使って前記信用情報を復号することを含むことを特徴とする、請求項１７記載の方法。
【請求項１９】
前記復号ステップが１２８ビットのシードを使って前記信用情報を復号することを含むことを特徴とする、請求項１５記載の方法。
【請求項２０】
前記復号ステップが：
クライアントソフトウェア識別番号、クライアントセッション識別番号、クライアントハードウェア識別番号およびランダムビット
のうちの少なくとも一つの少なくとも一部分を含むシードを使って前記信用情報を復号することを含むことを特徴とする、請求項１５記載の方法。
【請求項２１】
前記鍵および前記キャラクタマッピングテーブルを定期的に更新する、
ことをさらに含むことを特徴とする、請求項１８記載の方法。
【請求項２２】
前記更新ステップが、前記クライアントに前記コンピュータへのアクセスを承認したのちに前記鍵および前記キャラクタマッピングテーブルを送信することを含むことを特徴とする、請求項２１記載の方法。
【請求項２３】
前記受信ステップが、前記ネットワークを通じて前記要求メッセージを受信することをSSL、CHAPまたはPAPを使って行うことを含むことを特徴とする、請求項１５記載の方法。
【請求項２４】
・平文のパスワードをデータベースから取得し、
・前記要求メッセージの内容に基づいて前記パスワードを暗号化して第二の暗号化されたパスワードを形成し、
・前記第二の暗号化されたパスワードに乱数をハッシュ関数を用いてアルゴリズム的に混合してハッシュされたパスワードを形成し、
・前記ハッシュされたパスワードが前記要求メッセージに含まれる前記暗号化されたパスワードに一致することを検証する、
ことを含むことを特徴とする、請求項１５記載の方法。
【請求項２５】
前記受信ステップが、ダイヤルアップ、構内ネットワーク、Wi-Fi、有線ローミングブロードバンド、遠隔通勤ブロードバンド、2.5G/3G無線、GPRSおよびPHSネットワークのうちの少なくとも一つを含む前記ネットワークを通じて前記要求メッセージを受信することを含むことを特徴とする、請求項１５記載の方法。
【請求項２６】
前記ネットワークの少なくとも一部分がインターネット通信リンクを含んでいることを特徴とする、請求項１５記載の方法。
【請求項２７】
前記ネットワークの少なくとも一部分がプライベートなデータ通信回線を含んでいることを特徴とする、請求項１５記載の方法。
【請求項２８】
コンピュータ記憶媒体と、ネットワークを通じてクライアントからコンピュータに安全にアクセスするための、前記コンピュータ記憶媒体に埋め込まれたコンピュータプログラムコード機構とを含むコンピュータプログラムプロダクトであって、前記コンピュータコード機構が：
・ユーザーからユーザーIDおよびパスワードを含む信用情報を受け取るよう構成されたコンピュータコードデバイスと、
・前記信用情報を暗号化プロセスを用いて暗号化するよう構成されたコンピュータコードデバイスと、
・前記の暗号化された信用情報を含んだ、前記コンピュータへのアクセスの要求メッセージを生成するよう構成されたコンピュータコードデバイスと、
・前記要求メッセージを前記ネットワークを通じて送信するよう構成されたコンピュータコードデバイスと、
・前記コンピュータへのアクセスが認められたという検証メッセージを受信するよう構成されたコンピュータコードデバイスと、
・前記コンピュータにアクセスするよう構成されたコンピュータコードデバイス、
とを有しており、前記ユーザーIDおよび前記ユーザーパスワードが前記ネットワークを通じて送信される際に暗号化されたままであることを特徴とするコンピュータプログラムプロダクト。
【請求項２９】
コンピュータ記憶媒体と、ネットワークを通じてクライアントからコンピュータへのアクセスを安全に認証するための、前記コンピュータ記憶媒体に埋め込まれたコンピュータプログラムコード機構とを含むコンピュータプログラムプロダクトであって、前記コンピュータコード機構が：
・前記ネットワークを通じて送信された、暗号化されたユーザーIDおよび暗号化されたパスワードを含む暗号化された信用情報を含んでいる、前記クライアントから前記コンピュータへのアクセスのための要求メッセージを受信するよう構成されたコンピュータコードデバイスと、
・前記暗号化された信用情報を復号して復号された信用情報を形成するよう構成されたコンピュータコードデバイスと、
・前記復号された信用情報が有効であることを検証するよう構成されたコンピュータコードデバイスと、
・前記クライアントに検証メッセージを送信するよう構成されたコンピュータコードデバイスと、
・前記クライアントに前記コンピュータへのアクセスを承認するよう構成されたコンピュータコードデバイス、
とを有しており、前記ユーザーIDおよび前記ユーザーパスワードが前記ネットワークを通じて送信される際に暗号化されたままであることを特徴とするコンピュータプログラムプロダクト。
【請求項３０】
ネットワークを通じてクライアントからコンピュータに安全にアクセスするための装置であって：
・ユーザーからユーザーIDおよびパスワードを含む信用情報を受け取る手段と、
・前記信用情報を暗号化プロセスを用いて暗号化する手段と、
・前記の暗号化された信用情報を含んだ、前記コンピュータへのアクセスの要求メッセージを生成する手段と、
・前記要求メッセージを前記ネットワークを通じて送信する手段と、
・前記コンピュータへのアクセスが認められたという検証メッセージを受信する手段と、
・前記コンピュータに保存されているデータにアクセスするよう構成されたデータアクセス機構、
とを有しており、前記ユーザーIDおよび前記ユーザーパスワードが前記ネットワークを通じて送信される際に暗号化されたままであることを特徴とする装置。
【請求項３１】
ネットワークを通じてクライアントからコンピュータへのアクセスを安全に認証するための装置であって：
・前記ネットワークを通じて送信された、暗号化されたユーザーIDおよび暗号化されたパスワードを含む暗号化された信用情報を含んでいる、前記クライアントから前記コンピュータへのアクセスのための要求メッセージを受信する手段と、
・前記暗号化された信用情報を復号して復号された信用情報を形成する手段と、
・前記復号された信用情報が有効であることを検証する手段と、
・前記クライアントに検証メッセージを送信する手段と、
・前記クライアントに前記コンピュータへのアクセスを承認する手段、
とを有しており、前記ユーザーIDおよび前記ユーザーパスワードが前記ネットワークを通じて送信される際に暗号化されたままであることを特徴とする装置。
【請求項３２】
ネットワークを通じてクライアントからコンピュータに安全にアクセスするための装置であって：
・ユーザーからユーザーIDおよびパスワードを含む信用情報を受け取るよう構成された入出力装置と、
・前記信用情報を暗号化プロセスを用いて暗号化するよう構成された暗号化機構と、
・前記の暗号化された信用情報を含んだ、前記コンピュータへのアクセスの要求メッセージを生成するよう構成された要求メッセージ生成機構を含んでいるプロセッサ、
とを有しており、前記入出力装置が前記要求メッセージを前記ネットワークを通じて送信し、前記コンピュータへのアクセスが認められたという検証メッセージを受信するよう構成されており、前記ユーザーIDおよび前記ユーザーパスワードが前記ネットワークを通じて送信される際に暗号化されたままであることを特徴とする装置。
【請求項３３】
前記暗号化機構が前記信用情報を２５６ビットの鍵を使って暗号化するよう構成されていることを特徴とする、請求項３２記載の装置。
【請求項３４】
前記暗号化機構が前記信用情報を１２８ビットのシードを使って暗号化するよう構成されていることを特徴とする、請求項３２記載の装置。
【請求項３５】
前記入出力装置が、前記ネットワークを通じて前記要求メッセージを送信することをSSL、CHAPまたはPAPを使って行うよう構成されていることを特徴とする、請求項３２記載の装置。
【請求項３６】
前記入出力装置が、ダイヤルアップ、構内ネットワーク、Wi-Fi、有線ローミングブロードバンド、遠隔通勤ブロードバンド、2.5G/3G無線、GPRSおよびPHSネットワークのうちの少なくとも一つを含む前記ネットワークを通じて前記要求メッセージを送信するよう構成されていることを特徴とする、請求項３２記載の装置。
【請求項３７】
ネットワークを通じてクライアントからコンピュータへのアクセスを安全に認証するための装置であって：
・前記ネットワークを通じて送信された、暗号化されたユーザーIDおよび暗号化されたパスワードを含む暗号化された信用情報を含んでいる、前記クライアントから前記コンピュータへのアクセスのための要求メッセージを受信するよう構成された入出力装置と、
・前記暗号化された信用情報を復号して復号された信用情報を形成するよう構成された復号機構と、
・前記復号された信用情報が有効であることを検証するよう構成された検証機構を含んでいるプロセッサ、
とを有しており、前記入出力装置が前記クライアントに検証メッセージを送信するよう構成されており、前記プロセッサが前記クライアントに前記コンピュータへのアクセスを承認するよう構成されたアクセス制御機構を含んでおり、前記ユーザーIDおよび前記ユーザーパスワードが前記ネットワークを通じて送信される際に暗号化されたままであることを特徴とする装置。
【請求項３８】
前記復号機構が２５６ビットの鍵を使って前記信用情報を復号するよう構成されていることを特徴とする、請求項３７記載の装置。
【請求項３９】
前記復号機構が１２８ビットのシードを使って前記信用情報を復号するよう構成されていることを特徴とする、請求項３７記載の装置。
【請求項４０】
前記入出力装置が、前記ネットワークを通じて前記要求メッセージを受信することをSSL、CHAPまたはPAPを使って行うよう構成されていることを特徴とする、請求項３７記載の装置。
【請求項４１】
前記入出力装置が、ダイヤルアップ、構内ネットワーク、Wi-Fi、有線ローミングブロードバンド、遠隔通勤ブロードバンド、2.5G/3G無線、GPRSおよびPHSネットワークのうちの少なくとも一つを含む前記ネットワークを通じて前記要求メッセージを受信するよう構成されていることを特徴とする、請求項３７記載の装置。
【請求項４２】
ネットワークを通じてリモートコンピュータのユーザーを認証するための、コンピュータで実装される方法であって：
・前記リモートコンピュータにて、少なくとも一部がインターネット通信リンクを含んでいる前記ネットワークを通じて認証サーバーから認証チャレンジメッセージを受信し、
・前記リモートコンピュータにてパスコードを受信し、
・前記認証チャレンジに対して前記パスコードを含む応答メッセージを生成し、
・前記応答メッセージを前記リモートコンピュータから前記認証サーバーに前記ネットワークを通じて送信し、
・前記リモートコンピュータにて前記認証サーバーから前記応答メッセージが検証されたという検証メッセージを受信する、
ことを含むことを特徴とする方法。
【請求項４３】
前記リモートコンピュータにてパスコードを受信する前記ステップが、個人識別番号（personal  identification  number）と擬似乱数発生器によって生成された擬似乱数とを含むパスコードを受信することを含むことを特徴とする、請求項４２記載の方法。
【請求項４４】
前記リモートコンピュータにてパスコードを受信する前記ステップが、個人識別番号を含むパスコードを受信することを含むことを特徴とする、請求項４２記載の方法。
【請求項４５】
前記リモートコンピュータにてパスコードを受信する前記ステップが、擬似乱数発生器によって生成された擬似乱数を含むパスコードを受信することを含むことを特徴とする、請求項４２記載の方法。
【請求項４６】
前記リモートコンピュータにてパスコードを受信する前記ステップが、SECUREIDによって生成された擬似乱数を受信することを含むことを特徴とする、請求項４３記載の方法。
【請求項４７】
前記リモートコンピュータにて認証サーバーから認証チャレンジメッセージを前記ネットワークを通じて受信する前記ステップが、該認証チャレンジメッセージをACESERVERから受信することを含むことを特徴とする、請求項４２記載の方法。
【請求項４８】
前記送信ステップが、前記インターネット通信リンクを通じて前記応答メッセージを送信することをSSL、CHAPまたはPAPを使って行うことを含むことを特徴とする、請求項４２記載の方法。
【請求項４９】
前記送信ステップが、ダイヤルアップ、構内ネットワーク、Wi-Fi、有線ローミングブロードバンド、遠隔通勤ブロードバンド、2.5G/3G無線、GPRSおよびPHSネットワークのうちの少なくとも一つを含む前記インターネット通信リンクを通じて前記応答メッセージを送信することを含むことを特徴とする、請求項４２記載の方法。
【請求項５０】
ネットワークを通じてコンピュータに安全にアクセスするクライアントに認証チャレンジメッセージを提供するための、コンピュータで実装される方法であって：
・少なくとも一部がインターネット通信リンクを含んでいる前記ネットワークを通じて前記クライアントに前記認証チャレンジメッセージを送信し、
・前記クライアントから前記ネットワークを通じてパスコードを含んでいる応答メッセージを受信し、
・前記パスコードを検証し、
・前記パスコードが認証サーバーによって検証された場合には前記クライアントに検証メッセージを送信する、
ことを含むことを特徴とする方法。
【請求項５１】
前記受信ステップが、個人識別番号（personal  identification  number）と擬似乱数発生器によって生成された擬似乱数とを含むパスコードを含む応答メッセージを受信することを含むことを特徴とする、請求項５０記載の方法。
【請求項５２】
前記受信ステップが、SECUREIDによって生成された擬似乱数を含むパスコードを含む応答メッセージを受信することを含むことを特徴とする、請求項５１記載の方法。
【請求項５３】
前記検証ステップが、ACESERVERによって前記パスコードを検証することを含むことを特徴とする、請求項５０記載の方法。
【請求項５４】
前記送信ステップが、前記インターネット通信リンクを通じて前記応答メッセージを送信することをSSL、CHAPまたはPAPを使って行うことを含むことを特徴とする、請求項５０記載の方法。
【請求項５５】
前記送信ステップが、ダイヤルアップ、構内ネットワーク、Wi-Fi、有線ローミングブロードバンド、遠隔通勤ブロードバンド、2.5G/3G無線、GPRSおよびPHSネットワークのうちの少なくとも一つを含む前記インターネット通信リンクを通じて応答メッセージを送信することを含むことを特徴とする、請求項５０記載の方法。
【請求項５６】
コンピュータ記憶媒体と、ネットワークを通じてリモートコンピュータのユーザーを認証するための、前記コンピュータ記憶媒体に埋め込まれたコンピュータプログラムコード機構とを含むコンピュータプログラムプロダクトであって、前記コンピュータコード機構が：
・前記リモートコンピュータにて、少なくとも一部がインターネット通信リンクを含んでいる前記ネットワークを通じて認証サーバーから認証チャレンジメッセージを受信するよう構成されたコンピュータコードデバイスと、
・前記リモートコンピュータにてパスコードを受信するよう構成されたコンピュータコードデバイスと、
・前記認証チャレンジに対して前記パスコードを含む応答メッセージを生成するよう構成されたコンピュータコードデバイスと、
・前記応答メッセージを前記リモートコンピュータから前記認証サーバーに前記ネットワークを通じて送信するよう構成されたコンピュータコードデバイスと、
・前記リモートコンピュータにて前記認証サーバーから前記応答メッセージが検証されたという検証メッセージを受信するよう構成されたコンピュータコードデバイス、
とを有することを特徴とするコンピュータプログラムプロダクト。
【請求項５７】
コンピュータ記憶媒体と、ネットワークを通じてコンピュータに安全にアクセスするクライアントに認証チャレンジメッセージを提供するための、前記コンピュータ記憶媒体に埋め込まれたコンピュータプログラムコード機構とを含むコンピュータプログラムプロダクトであって、前記コンピュータコード機構が：
・少なくとも一部がインターネット通信リンクを含んでいる前記ネットワークを通じて前記クライアントに前記認証チャレンジメッセージを送信するよう構成されたコンピュータコードデバイスと、
・前記クライアントから前記ネットワークを通じてパスコードを含んでいる応答メッセージを受信するよう構成されたコンピュータコードデバイスと、
・前記パスコードを検証するよう構成されたコンピュータコードデバイスと、
・前記パスコードが認証サーバーによって検証された場合には前記クライアントに検証メッセージを送信するよう構成されたコンピュータコードデバイス、
とを有することを特徴とするコンピュータプログラムプロダクト。
【請求項５８】
ネットワークを通じてリモートコンピュータのユーザーを認証するための装置であって：
・前記リモートコンピュータにて、少なくとも一部がインターネット通信リンクを含んでいる前記ネットワークを通じて認証サーバーから認証チャレンジメッセージを受信する手段と、
・前記リモートコンピュータにてパスコードを受信する手段と、
・前記認証チャレンジに対して前記パスコードを含む応答メッセージを生成する手段と、
・前記応答メッセージを前記リモートコンピュータから前記認証サーバーに前記ネットワークを通じて送信する手段と、
・前記リモートコンピュータにて前記認証サーバーから前記応答メッセージが検証されたという検証メッセージを受信する手段、
とを有することを特徴とする装置。
【請求項５９】
ネットワークを通じてコンピュータに安全にアクセスするクライアントに認証チャレンジメッセージを提供するための装置であって：
・少なくとも一部がインターネット通信リンクを含んでいる前記ネットワークを通じて前記クライアントに前記認証チャレンジメッセージを送信する手段と、
・前記クライアントから前記ネットワークを通じてパスコードを含んでいる応答メッセージを受信する手段と、
・前記パスコードを検証する手段と、
・前記パスコードが認証サーバーによって検証された場合には前記クライアントに検証メッセージを送信する手段、
とを有することを特徴とする装置。
【請求項６０】
ネットワークを通じてリモートコンピュータのユーザーを認証するための装置であって：
・前記リモートコンピュータにて、少なくとも一部がインターネット通信リンクを含んでいる前記ネットワークを通じて認証サーバーから認証チャレンジメッセージを受信するよう構成され、前記リモートコンピュータにてパスコードを受信するよう構成された入出力装置と、
・前記認証チャレンジに対して前記パスコードを含む応答メッセージを生成するよう構成された応答メッセージ生成機構を含んでいるプロセッサ、
とを有しており、前記入出力装置が前記応答メッセージを前記リモートコンピュータから前記認証サーバーに前記ネットワークを通じて送信し、前記リモートコンピュータにて前記認証サーバーから前記応答メッセージが検証されたという検証メッセージを受信するよう構成されていることを特徴とする装置。
【請求項６１】
前記入出力装置が、個人識別番号と擬似乱数発生器によって生成された擬似乱数とを含むパスコードを受信するよう構成されていることを特徴とする、請求項６０記載の装置。
【請求項６２】
擬似乱数発生器、
をさらに有していることを特徴とする、請求項６０記載の装置。
【請求項６３】
前記擬似乱数発生器がSECUREIDであることを含むことを特徴とする、請求項６２記載の装置。
【請求項６４】
前記入出力装置が、ACESERVERから認証チャレンジメッセージを受信するよう構成されていることを特徴とする、請求項６０記載の装置。
【請求項６５】
ネットワークを通じてコンピュータに安全にアクセスするクライアントに認証チャレンジメッセージを提供するための装置であって：
・少なくとも一部がインターネット通信リンクを含んでいる前記ネットワークを通じて前記クライアントに前記認証チャレンジメッセージを送信するよう構成され、前記クライアントから前記ネットワークを通じてパスコードを含んでいる応答メッセージを受信するよう構成された入出力装置と、
・前記パスコードを検証するよう構成された検証機構を含むプロセッサ、
とを有しており、前記入出力装置が、前記パスコードが認証機構によって検証された場合には前記クライアントに検証メッセージを送信するよう構成されている、ことを特徴とする装置。
【請求項６６】
前記パスコードが、個人識別番号と擬似乱数発生器によって生成された擬似乱数とを含むパスコードを含むことを特徴とする、請求項６５記載の装置。
【請求項６７】
前記擬似乱数発生器がSECUREIDであることを特徴とする、請求項６６記載の装置。
【請求項６８】
前記検証機構が前記パスコードを認証サーバーを使って検証することを特徴とする、請求項６５記載の装置。
【請求項６９】
前記認証サーバーがACESERVERであることを特徴とする、請求項６８記載の装置。
【請求項７０】
コンピュータへの、リモートコンピュータ上で走っているクライアントによる、ネットワークを通じた、セキュリティで保護されていないアクセスを防止するための、コンピュータで実装される方法であって：
・前記リモートコンピュータが当該コンピュータにアクセスした結果当該コンピュータのセキュリティが破られるという可能性を減らすような前記リモートコンピュータの構成設定を含んでいるクライアントポリシーを、前記リモートコンピュータ上に保存し、
・当該コンピュータへのアクセスの要求をユーザーから受信し、
・前記リモートコンピュータが前記クライアントポリシーに従っていることを検証し、
・前記クライアントを当該コンピュータに接続する、
ことを含むことを特徴とする方法。
【請求項７１】
前記検証ステップが、禁止されたアプリケーションのリストに含まれるものが何も前記リモートコンピュータ上で走っていないことを検証することを含むことを特徴とする、請求項７０記載の方法。
【請求項７２】
前記検証ステップが、禁止されたアプリケーションのリストに含まれるものが何も前記リモートコンピュータ上で走っていないことを検証することを含み、前記禁止されたアプリケーションのリストが：ウイルス、スパイウェア、インスタントメッセージ交換アプリケーション、ライセンスを受けていないアプリケーションおよびファイル共有アプリケーションのうちの少なくとも一つを含むことを特徴とする、請求項７０記載の方法。
【請求項７３】
前記検証ステップが、要求されるアプリケーションのリストに含まれるすべてが前記リモートコンピュータ上で走っていることを検証することを含むことを特徴とする、請求項７０記載の方法。
【請求項７４】
前記検証ステップが、要求されるアプリケーションのリストに含まれるすべてが前記リモートコンピュータ上で走っていることを検証することを含み、前記要求されるアプリケーションのリストが：ファイアウォール、ウイルス対策およびスパイウェア対策アプリケーションのうちの少なくとも一つを含むことを特徴とする、請求項７０記載の方法。
【請求項７５】
・前記リモートコンピュータが前記クライアントポリシーに従っていることを定期的に判定し、
・不遵守状態を正すことおよび当該ユーザーに前記不遵守状態を通知することのうちの少なくとも一つを含むポリシーに基づく行動を起こす、
ことをさらに含むことを特徴とする、請求項７０記載の方法。
【請求項７６】
・前記不遵守状態が正せない場合には当該コンピュータおよびインターネット接続のうちの少なくとも一つから前記クライアントを切断する、
ことをさらに含むことを特徴とする、請求項７５記載の方法。
【請求項７７】
ポリシー違反のリストをアクセス制御ゲートウェイに送信する、
ことをさらに含むことを特徴とする、請求項７０記載の方法。
【請求項７８】
コンピュータへの、リモートコンピュータ上で走っているクライアントによる、ネットワークを通じた、セキュリティで保護されていないアクセスを防止するための、コンピュータで実装される方法であって：
・前記リモートコンピュータが当該コンピュータにアクセスした結果当該コンピュータのセキュリティが破られるという可能性を減らすような前記リモートコンピュータの構成設定を含んでいるクライアントポリシーを少なくとも一つ保存し、
・当該コンピュータへのアクセスの要求をユーザーから受信し、
・前記リモートコンピュータの位置種別を決定し、
・前記リモートコンピュータの前記位置種別に基づいて前記少なくとも一つのクライアントポリシーのうちから所望のポリシーを選択し、
・前記所望のポリシーに基づいて当該コンピュータへの利用可能な接続から接続種別を選択し、
・前記リモートコンピュータが前記所望のポリシーに従っていることを検証し、
・前記クライアントを当該コンピュータに接続する、
ことを含むことを特徴とする方法。
【請求項７９】
前記決定ステップが、非社内／非ローミング、社内／非ローミングおよび非社内／ローミングのうちの一つの前記位置種別を決定することを含むことを特徴とする、請求項７８記載の方法。
【請求項８０】
前記検証ステップが、禁止されたアプリケーションのリストに含まれるものが何も前記リモートコンピュータ上で走っていないことを検証することを含むことを特徴とする、請求項７８記載の方法。
【請求項８１】
前記検証ステップが、禁止されたアプリケーションのリストに含まれるものが何も前記リモートコンピュータ上で走っていないことを検証することを含み、前記禁止されたアプリケーションのリストが：ウイルス、スパイウェア、インスタントメッセージ交換アプリケーション、ライセンスを受けていないアプリケーションおよびファイル共有アプリケーションのうちの少なくとも一つを含むことを特徴とする、請求項７８記載の方法。
【請求項８２】
前記検証ステップが、要求されるアプリケーションのリストに含まれるすべてが前記リモートコンピュータ上で走っていることを検証することを含むことを特徴とする、請求項７８記載の方法。
【請求項８３】
前記検証ステップが、要求されるアプリケーションのリストに含まれるすべてが前記リモートコンピュータ上で走っていることを検証することを含み、前記要求されるアプリケーションのリストが：ファイアウォール、ウイルス対策およびスパイウェア対策アプリケーションのうちの少なくとも一つを含むことを特徴とする、請求項７８記載の方法。
【請求項８４】
・前記リモートコンピュータが前記クライアントポリシーに従っていることを定期的に判定し、
・不遵守状態を正すことおよび当該ユーザーに前記不遵守状態を通知することのうちの少なくとも一つを含むポリシーに基づく行動を起こす、
ことをさらに含むことを特徴とする、請求項７８記載の方法。
【請求項８５】
・前記不遵守状態が正せない場合には当該コンピュータおよびインターネット接続のうちの少なくとも一つから前記クライアントを切断する、
ことをさらに含むことを特徴とする、請求項８４記載の方法。
【請求項８６】
ポリシー違反のリストをアクセス制御ゲートウェイに送信する、
ことをさらに含むことを特徴とする、請求項７８記載の方法。
【請求項８７】
コンピュータへの、リモートコンピュータ上で走っているクライアントによる、ネットワークを通じた、セキュリティで保護されていないアクセスを防止するための、コンピュータで実装される方法であって：
・前記リモートコンピュータが当該コンピュータにアクセスした結果当該コンピュータのセキュリティが破られるという可能性を減らすような前記リモートコンピュータの構成設定を含んでいるクライアントポリシーを、前記リモートコンピュータに送信し、
・前記リモートコンピュータからポリシー違反のリストを受信し、
・前記リモートコンピュータを操作しているユーザーのアクセス権を修正する、
ことを含むことを特徴とする方法。
【請求項８８】
前記修正ステップが、前記リモートコンピュータに当該コンピュータへのアクセスを拒否することを含むことを特徴とする、請求項８７記載の方法。
【請求項８９】
コンピュータ記憶媒体と、コンピュータへの、リモートコンピュータ上で走っているクライアントによる、ネットワークを通じた、セキュリティで保護されていないアクセスを防止するための、前記コンピュータ記憶媒体に埋め込まれたコンピュータプログラムコード機構とを含むコンピュータプログラムプロダクトであって、前記コンピュータコード機構が：
・前記リモートコンピュータが当該コンピュータにアクセスした結果当該コンピュータのセキュリティが破られるという可能性を減らすような前記リモートコンピュータの構成設定を含んでいるクライアントポリシーを、前記リモートコンピュータ上に保存するよう構成されたコンピュータコードデバイスと、
・当該コンピュータへのアクセスの要求をユーザーから受信するよう構成されたコンピュータコードデバイスと、
・前記リモートコンピュータが前記クライアントポリシーに従っていることを検証するよう構成されたコンピュータコードデバイスと、
・前記クライアントを当該コンピュータに接続するよう構成されたコンピュータコードデバイス、
とを有することを特徴とするコンピュータプログラムプロダクト。
【請求項９０】
コンピュータ記憶媒体と、コンピュータへの、リモートコンピュータ上で走っているクライアントによる、ネットワークを通じた、セキュリティで保護されていないアクセスを防止するための、前記コンピュータ記憶媒体に埋め込まれたコンピュータプログラムコード機構とを含むコンピュータプログラムプロダクトであって、前記コンピュータコード機構が：
・前記リモートコンピュータが当該コンピュータにアクセスした結果当該コンピュータのセキュリティが破られるという可能性を減らすような前記リモートコンピュータの構成設定を含んでいるクライアントポリシーを少なくとも一つ保存するよう構成されたコンピュータコードデバイスと、
・当該コンピュータへのアクセスの要求をユーザーから受信するよう構成されたコンピュータコードデバイスと、
・前記リモートコンピュータの位置種別を決定するよう構成されたコンピュータコードデバイスと、
・前記リモートコンピュータの前記位置種別に基づいて前記少なくとも一つのクライアントポリシーのうちから所望のポリシーを選択するよう構成されたコンピュータコードデバイスと、
・前記所望のポリシーに基づいて当該コンピュータへの利用可能な接続から接続種別を選択するよう構成されたコンピュータコードデバイスと、
・前記リモートコンピュータが前記所望のポリシーに従っていることを検証するよう構成されたコンピュータコードデバイスと、
・前記クライアントを当該コンピュータに接続するよう構成されたコンピュータコードデバイス、
とを有することを特徴とするコンピュータプログラムプロダクト。
【請求項９１】
コンピュータ記憶媒体と、コンピュータへの、リモートコンピュータ上で走っているクライアントによる、ネットワークを通じた、セキュリティで保護されていないアクセスを防止するための、前記コンピュータ記憶媒体に埋め込まれたコンピュータプログラムコード機構とを含むコンピュータプログラムプロダクトであって、前記コンピュータコード機構が：
・前記リモートコンピュータが当該コンピュータにアクセスした結果当該コンピュータのセキュリティが破られるという可能性を減らすような前記リモートコンピュータの構成設定を含んでいるクライアントポリシーを、前記リモートコンピュータに送信するよう構成されたコンピュータコードデバイスと、
・前記リモートコンピュータからポリシー違反のリストを受信するよう構成されたコンピュータコードデバイスと、
・前記リモートコンピュータを操作しているユーザーのアクセス権を修正するよう構成されたコンピュータコードデバイス、
とを有することを特徴とするコンピュータプログラムプロダクト。
【請求項９２】
コンピュータへの、リモートコンピュータ上で走っているクライアントによる、ネットワークを通じた、セキュリティで保護されていないアクセスを防止するための装置であって：
・前記リモートコンピュータが当該コンピュータにアクセスした結果当該コンピュータのセキュリティが破られるという可能性を減らすような前記リモートコンピュータの構成設定を含んでいるクライアントポリシーを、前記リモートコンピュータ上に保存する手段と、
・当該コンピュータへのアクセスの要求をユーザーから受信する手段と、
・前記リモートコンピュータが前記クライアントポリシーに従っていることを検証する手段と、
・前記クライアントを当該コンピュータに接続する手段、
とを有することを特徴とする装置。
【請求項９３】
コンピュータへの、リモートコンピュータ上で走っているクライアントによる、ネットワークを通じた、セキュリティで保護されていないアクセスを防止するため装置であって：
・前記リモートコンピュータが当該コンピュータにアクセスした結果当該コンピュータのセキュリティが破られるという可能性を減らすような前記リモートコンピュータの構成設定を含んでいるクライアントポリシーを少なくとも一つ保存する手段と、
・当該コンピュータへのアクセスの要求をユーザーから受信する手段と、
・前記リモートコンピュータの位置種別を決定する手段と、
・前記リモートコンピュータの前記位置種別に基づいて前記少なくとも一つのクライアントポリシーのうちから所望のポリシーを選択する手段と、
・前記所望のポリシーに基づいて当該コンピュータへの利用可能な接続から接続種別を選択する手段と、
・前記リモートコンピュータが前記所望のポリシーに従っていることを検証する手段と、
・前記クライアントを当該コンピュータに接続する手段、
とを有することを特徴とする装置。
【請求項９４】
コンピュータへの、リモートコンピュータ上で走っているクライアントによる、ネットワークを通じた、セキュリティで保護されていないアクセスを防止するための装置であって：
・前記リモートコンピュータが当該コンピュータにアクセスした結果当該コンピュータのセキュリティが破られるという可能性を減らすような前記リモートコンピュータの構成設定を含んでいるクライアントポリシーを、前記リモートコンピュータに送信する手段と、
・前記リモートコンピュータからポリシー違反のリストを受信する手段と、
・前記リモートコンピュータを操作しているユーザーのアクセス権を修正する手段、
とを有することを特徴とする装置。
【請求項９５】
コンピュータへの、リモートコンピュータ上で走っているクライアントによる、ネットワークを通じた、セキュリティで保護されていないアクセスを防止するための装置であって：
・前記リモートコンピュータが当該コンピュータにアクセスした結果当該コンピュータのセキュリティが破られるという可能性を減らすような前記リモートコンピュータの構成設定を含んでいるクライアントポリシーを、前記リモートコンピュータ上に保存するよう構成された保存機構と、
・当該コンピュータへのアクセスの要求をユーザーから受信するよう構成された入出力装置と、
・前記リモートコンピュータが前記クライアントポリシーに従っていることを検証するよう構成された検証機構を含むプロセッサ、
と有しており、前記入出力装置が前記クライアントを当該コンピュータに接続するよう構成されていることを特徴とする装置。
【請求項９６】
前記検証機構が、禁止されたアプリケーションのリストに含まれるものが何も前記リモートコンピュータ上で走っていないことを検証するよう構成されていることを特徴とする、請求項９５記載の装置。
【請求項９７】
前記禁止されたアプリケーションのリストが：ウイルス、スパイウェア、インスタントメッセージ交換アプリケーション、ライセンスを受けていないアプリケーションおよびファイル共有アプリケーションのうちの少なくとも一つを含むことを特徴とする、請求項９６記載の装置。
【請求項９８】
前記検証機構が、要求されるアプリケーションのリストに含まれるすべてが前記リモートコンピュータ上で走っていることを検証するよう構成されていることを特徴とする、請求項９５記載の装置。
【請求項９９】
前記要求されるアプリケーションのリストが：ファイアウォール、ウイルス対策およびスパイウェア対策アプリケーションのうちの少なくとも一つを含むことを特徴とする、請求項９８記載の装置。
【請求項１００】
コンピュータへの、リモートコンピュータ上で走っているクライアントによる、ネットワークを通じた、セキュリティで保護されていないアクセスを防止するため装置であって：
・前記リモートコンピュータが当該コンピュータにアクセスした結果当該コンピュータのセキュリティが破られるという可能性を減らすような前記リモートコンピュータの構成設定を含んでいるクライアントポリシーを少なくとも一つ保存するよう構成された保存機構と、
・当該コンピュータへのアクセスの要求をユーザーから受信するよう構成された入出力装置と、
前記リモートコンピュータの位置種別を決定するよう構成された位置決定機構および、
前記リモートコンピュータの前記位置種別に基づいて前記少なくとも一つのクライアントポリシーのうちから所望のポリシーを選択するよう構成されたポリシー選択機構および、
前記所望のポリシーに基づいて当該コンピュータへの利用可能な接続から接続種別を選択するよう構成された接続選択機構および、
前記リモートコンピュータが前記所望のポリシーに従っていることを検証するよう構成された検証機構、
を含むプロセッサ、
とを有しており、前記入出力装置が前記クライアントを当該コンピュータに接続するよう構成されていることを特徴とする装置。
【請求項１０１】
前記検証機構が、禁止されたアプリケーションのリストに含まれるものが何も前記リモートコンピュータ上で走っていないことを検証するよう構成されていることを特徴とする、請求項１００記載の装置。
【請求項１０２】
前記禁止されたアプリケーションのリストが：ウイルス、スパイウェア、インスタントメッセージ交換アプリケーション、ライセンスを受けていないアプリケーションおよびファイル共有アプリケーションのうちの少なくとも一つを含むことを特徴とする、請求項１０１記載の装置。
【請求項１０３】
前記検証機構が、要求されるアプリケーションのリストに含まれるすべてが前記リモートコンピュータ上で走っていることを検証するよう構成されていることを特徴とする、請求項１００記載の装置。
【請求項１０４】
前記要求されるアプリケーションのリストが：ファイアウォール、ウイルス対策およびスパイウェア対策アプリケーションのうちの少なくとも一つを含むことを特徴とする、請求項１０３記載の装置。
【請求項１０５】
コンピュータへの、リモートコンピュータ上で走っているクライアントによる、ネットワークを通じた、セキュリティで保護されていないアクセスを防止するための装置であって：
・前記リモートコンピュータが当該コンピュータにアクセスした結果当該コンピュータのセキュリティが破られるという可能性を減らすような前記リモートコンピュータの構成設定を含んでいるクライアントポリシーを、前記リモートコンピュータに送信するよう構成された入出力装置であって、前記リモートコンピュータからポリシー違反のリストを受信するよう構成された入出力装置と、
・前記リモートコンピュータを操作しているユーザーのアクセス権を修正するよう構成されたアクセス制御機構を含むプロセッサ、
とを有することを特徴とする装置。
【請求項１０６】
前記アクセス制御機構が、前記リモートコンピュータに当該コンピュータへのアクセスを拒否するよう構成されていることを特徴とする、請求項１０５記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、2003年8月15日に出願された“System,  Method,  Apparatus  and  Computer  Program  Product  for  Facilitating  Digital  Communications”と題する米国仮出願第60/495,131号、および、2004年6月23日に出願された“System,  Method,  Apparatus  and  Computer  Program  Product  for  Facilitating  Digital  Communications”と題する米国仮出願第60/581,729号の利益を主張するものであり、両者の全体がここに参照によって組み込まれる。
【０００２】
本発明は一般にコンピュータネットワークを通じた安全なデジタル通信を提供するためのシステムおよび方法に関するものである。
【背景技術】
【０００３】
仮想私設ネットワーク（VPN:  Virtual  Private  Network）は公共ネットワーク上に創り出された、排他的なクライアント‐ホスト通信が行われる私設ネットワークである。従来のVPNはユーザーまたはサイトを公共ネットワーク、通例インターネットを通じて接続する。仮想的なプライバシーは、データが共有回線を通じて移動する際にそのデータをカプセル化するセキュリティで保護されたトンネルから導かれる。VPNにより、ユーザーは、共有の公共ネットワークを通じて二つのコンピュータの間で、ポイントツーポイント・リンクのセキュリティ属性を模した形でデータを安全に送ることが可能になる。
【０００４】
しかし、リモートアクセス（RA:  remote  access）クライアント（インターネット接続を生成する側のクライアント）のための従来のプロトコルがユーザーのログイン信用情報を伝達する仕方はセキュリティ保護されていない。ユーザーがRA認証とVPN認証のために同一のログイン信用情報を維持していた場合、そのユーザーのRA信用情報が盗まれればVPNが危殆化される。したがって、従来のVPNクライアントを使っているVPNは、ユーザーのRA信用情報が脆弱である程度には脆弱である。
【０００５】
図１および図２は従来のRA認証法およびセキュリティレベルを示している。コンピュータ１１上で走っているRAクライアント１０はインターネット４０を通じてサーバー９０にアクセスする。たとえば、典型的なインターネットダイヤルアップ接続は、インターネットサービスプロバイダー（ISP:  Internet  service  Provider）のダイヤルアクセスサーバー３０またはネットワークアクセスサーバー（NAS:  network  access  server）４２にユーザーの信用情報を転送するためにパスワード認証プロトコル（PAP:  Password  Authentication  Protocol）またはチャレンジ・ハンドシェーク認証プロトコル（CHAP:  Challenge-Handshake  Authentication  Protocol）のいずれかをポイントツーポイント・プロトコル（PPP:  Point-to-Point  Protocol）上で使用する。NAS、ISPおよびサーバー９０の間でユーザーの信用情報を転送するためにはリモート認証ダイヤルインユーザーサービス（RADIUS:  Remote  Authentication  Dial-In  User  Service）が使用される。PAPはユーザーの識別情報（ID:  identification）およびパスワード信用情報をパソコン１１（PC:  personal  computer）とNASとの間で平文で送信する。NASとRADIUSサーバーとの間では、ユーザー名は平文であり（すなわち、暗号化されない）、それにNASとRADIUSサーバーとの間で共有されている秘密設定を使ってハッシュされたパスワードが続く。
【０００６】
CHAPは３方向ハンドシェークプロセスを利用する。ひとたびリンクが確立したら、サーバーはチャレンジメッセージを起点デバイスに送る。起点デバイスはユーザーパスワードと一方向性ハッシュ関数とを使って計算された値をもって応答を返す。サーバーは応答を自分で計算した期待されるハッシュ値と突き合わせて検査する。値が一致すれば認証は合格する。CHAPはユーザーIDを平文のテキストで送信するが、パスワードについてはハッシュ値を送信する。RADIUSは平文のユーザー名とそれに続くNASとRADIUSサーバーとの間で共有されている秘密設定を使ってハッシュされたパスワードとを送信する。
【０００７】
認証トランザクションには一つまたは複数のISPが関わっていることもある。特にプロバイダ間ネットワークローミングサービスが使われている場合はそうである。そうした状況では、RADIUSプロトコルは通常、認証要求と応答とを認証エンティティ間で中継するために使われる。これらのトランザクションにおいては、ユーザーIDは通常平文で送信される一方、パスワードは暗号化された形で送信される。ところが、パスワードはトランザクションに関わる各ISPで復号され、再暗号化される。
【０００８】
ユーザーが無線ネットワーク（Wi-Fi）ホットスポット、ローミングブロードバンドまたは他の何らかの方法を通じてインターネットにアクセスしており、認証プロセスの最初の区間の転送でユーザーのIDとパスワードが安全なソケットレイヤー（SSL:  Secure  Sockets  Layer）の暗号化によりセキュリティで保護されている場合であっても、IDおよびパスワードはやはり各地のISPによってRADIUSを通じた送信の前に復号されなければならない。よって、こうした状況であってさえ、暗号化されたユーザーIDとパスワードは必ずしも盗聴から保護されてはいないのである。実際、ユーザーIDおよびパスワードが平文で伝達されて限り、不心得なISP従業員によってであろうとISPネットワークに侵入したその他の者によってであろうと、常に盗聴のおそれがある。これらの従来のRA認証プロセスは図３に示されている。したがって、RA信用情報は、インターネットアクセスサービスの不正使用につながる可能性をはらむ危殆化に対して、また該RA信用情報と同一の信用情報によってアクセスされるVPNの危殆化に対して脆弱である。
【０００９】
ローカルエリアネットワーク（LAN:  local  area  network）への接続を認証するために創り出された二つのセキュリティ製品は、ACESERVERおよびSECUREIDと呼ばれるものである（業界大手の認証製品販売元であるRSAセキュリティ社によって発売されている）。これら二つの製品は密接に結合したシステムである。SECUREIDは擬似乱数発生器であり、毎分新しい値を出力する。SECUREIDのユーザーがログインを認証しようとするとき、ユーザーは通常通りユーザーIDを入力する。しかし、繰り返し使えるパスワードを入力する代わりに、暗証番号（PIN:  personal  identification  number）をSECUREIDデバイス上に表示されるその時点での乱数とともに入力する。擬似乱数とPINとの組み合わせはしばしばパスコードと称される。認証要求はネットワーク（単数または複数）上を、最終的にはACESERVERに送信される。ACESERVERはあるアルゴリズムを利用してそのユーザーに対するその時点での乱数がいくつであるべきかを決定し、それから認証判定を行う。
【００１０】
ACESERVERは、管理上強制された定期的なPINリセット機能をサポートしている。他の認証アプリケーションが管理上強制されたパスワードリセット機能をサポートしているのと同じである。これは「新PINチャレンジ」と呼ばれる。PINリセットが必要とされるとき、ACESERVERは認証要求を承認する代わりに「新PIN」チャレンジコマンドをユーザーに送る。ACESERVERはまた、ユーザーへの定期的なランダムチャレンジをもサポートしている。これは「次トークンチャレンジ」と呼ばれる。これは認証失敗（すなわち、ユーザーによって入力されたPINまたは乱数がACESERVERが計算した値と一致しない）が発生したときに行われる。新しい乱数（「トークン」）が要求されると、認証要求を承認する代わりに、ACESERVERは「次トークン」チャレンジコマンドをユーザーに送る。
【００１１】
従来のダイヤルアップインターネットネットワークおよびインターネットプロトコル（たとえばPAPおよびCHAP）は、ユーザーにチャレンジを送るという考えはサポートしていない。ユーザーのコンピュータは接続要求を発生させ、ダイヤルインサーバーはユーザーのコンピュータに、PAPまたはCHAPダイヤル認証プロトコルを通じてユーザーIDおよびパスワードを用いて応答するよう命令する。ユーザーのコンピュータは適切な値を用いて応答し、ダイヤルインサーバーはその値をISPに送信する。そのときダイヤルインサーバーは認証成功または認証失敗のいずれかの応答を待つ。それ以外の種類の応答は、RSA  ACESERVERから発されるチャレンジコマンドを含め、サポートされていない。これらのメッセージ型のいずれかがACESERVERからダイヤルインサーバーに返された場合、認識されないメッセージ型であるので認証は失敗となる。本発明人らの知る限り、ACESERVERやSECUREIDのようなチャレンジ・レスポンス・システムをインターネットアクセスの認証のために使うシステムはない。
【００１２】
さらに、従来のVPNクライアントアプリケーションは、リモートユーザーが会社の敷地にいなくても社内ネットワークへの直接接続を確立することを許容している。このやり方で接続するとき、接続は通常の企業ネットワークセキュリティ対策（たとえばファイアウォールおよびウイルス対策サーバー）をバイパスする。リモートユーザーがネットワークセキュリティ境界をバイパスすることを認めることによって、企業は、社内ネットワークへのVPN接続を確立するユーザーが安全でない、および／またはすでに「感染されている」マシンから行っているという著しいリスクを冒している。安全でないコンピュータからのこうした接続可能性は、そのコンピュータがエンドユーザーが気づかないうちにネットワークへの攻撃の発信地として使われうるというリスクを創り出している。
【００１３】
したがって、コンピュータシステムへのリモートアクセスの安全な手段が必要とされている。
【発明の開示】
【発明が解決しようとする課題】
【００１４】
本発明は、一般に、コンピュータへの安全なリモートアクセスのための方法、装置、コンピュータシステムおよびソフトウェアプロダクトに向けられている。
【課題を解決するための手段】
【００１５】
ある実施形態では、本発明の方法は、ユーザーIDおよびパスワードを含む信用情報を暗号化アルゴリズムを用いて暗号化することを含む。
【００１６】
別の実施形態では、本発明のある側面は、インターネットデータ通信ネットワークを通じて、暗号化されたユーザーIDおよび暗号化されたパスワードを含む暗号化された信用情報を受信し、該信用情報を復号し、該復号された信用情報が有効であればコンピュータへのクライアントのアクセスを提供することを含む。
【００１７】
別の実施形態では、本発明のある側面は、インターネットデータ通信ネットワークを通じてパスワードではなくパスコードを認証サーバーに送信することを含む。
【００１８】
別の実施形態では、本発明のある側面は、認証チャレンジをクライアントに送信し、パスコード、PINまたは擬似乱数をクライアントからインターネットデータ通信ネットワークを通じて受信し、与えられた値が認証サーバーによって検証された場合に検証メッセージをクライアントに送信することを含む。
【００１９】
別の実施形態では、本発明のある側面は、クライアントを走らせているリモートコンピュータがあるクライアントポリシーに従っていることを、前記クライアントをコンピュータに接続する前に検証することを含む。
【００２０】
別の実施形態では、本発明のある側面は、クライアントを走らせているリモートコンピュータの位置種別を判定し、クライアントポリシーおよび接続構成設定をそのリモートコンピュータの位置種別に基づいて選択し、前記リモートコンピュータがクライアントポリシーに従っていることを前記クライアントをコンピュータに接続する前に検証することを含む。
【００２１】
本発明およびそれに付随する利点の多くについてのより完全な理解は、以下の詳細な記述を付属の図面とともに参照することによってよりよく理解されるであろうから、容易に得られるであろう。
【発明を実施するための最良の形態】
【００２２】
ここで図面を参照する。いくつかの図を通じて同様の参照符号は同一または対応する部分を示す。
【００２３】
本発明の代表例としての実施形態が図４に示されている。図４の示すコンピュータシステムは、NAS４２を通じてインターネット４０への接続をもつコンピュータ１１０上で走るクライアント１００を含んでいる。プラットフォーム１５０もインターネット４０に接続されている。リモートのRADIUSサーバー１９０はプラットフォー１５０にIPSecトンネル１８８を通じて接続されている。プラットフォーム１５０は認証・復号・経路制御システム２００およびシングルサインオン・アプリケーションサーバー（SSOS:  Single  Sign    On  Application  Server）１６０を含んでいる。コンピュータ１１０はSECUREID１２０が関連付けられている。
【００２４】
ユーザーがコンピュータ１１０からリモートサーバー２１０にアクセスを要求するとき、ユーザーはログイン信用情報（ユーザーIDおよびパスワード）をコンピュータ１１０に入力する。クライアント１００はユーザーのIDを暗号化し、別にユーザーのパスワードを暗号化してから、コンピュータ１１０に暗号化された信用情報を渡す。するとコンピュータ１１０はそれ以上の修正なしにその信用情報をネットワークを通じて送信する。暗号化プロセスはシードと暗号化鍵とを利用する（図７に示されている）。シードは、ユーザーの信用情報をNAS４２に送信するのに先立って、暗号化されたIDの前もしくは後ろに付加され、またはアルゴリズムを用いて該IDに混ぜ込まれる文字列である。ひとたび暗号化プロセスが完了すると、RADIUS認証要求の適切な経路制御に必要とされる標準的なプレフィックス（単数または複数）および／またはサフィックス（単数または複数）が付加されてから、クライアント１００はそのNAIをコンピュータ１１０に渡す。ひとたびNAIが構築されると、NAIとパスワードはコンピュータ１１０に渡される。プラットフォーム１５０を目的地として識別する経路制御に関係する情報（たとえばroaming_partner/および／または@domainname.com）は、その経路制御要求がプラットフォーム１５０に関連付けられたユーザーが起点であることをISP３０が識別し、その後その認証要求をプラットフォーム１５０に処理のために経路制御できるよう、平文テキストで送信される必要がある。roaming_partner/ユーザーID@domainname.comの文字列は多くの形を取ることができ、当技術分野ではネットワークアクセス識別子（NAI:  Network  Access  Identifier）として知られている。暗号化されたユーザーID、シード、経路制御情報および暗号化されたパスワードを含む認証要求が次いでコンピュータ１１０からNAS４２に送られる。
【００２５】
コンピュータ１１０とNAS４２が使っている認証プロトコルがPAPまたはSSLである場合には、クライアント１００によって生成された信用情報に対してこれ以上の修正は起こらず、コンピュータ１１０は該信用情報をセキュリティで保護された、または暗号化されていない通信リンク２２０を通じてNAS４２に送信する。しかし、  コンピュータ１１０とNAS４２が使っている認証プロトコルがCHAPである場合（図５に示されている）、CHAP  NAS３５０は乱数（「チャレンジ」と呼ばれる）を生成し、このチャレンジをコンピュータ１１０に送信する。コンピュータ１１０はクライアント１００によって与えられた前記信用情報を通信リンク３１０を通じてNAS３５０にCHAPを使って送信するために、クライアント１００によって提供された暗号化されたパスワードとCHAP  NAS３５０によって与えられたチャレンジとをMD-5のような一方向性ハッシュ関数を使ってアルゴリズム的に混合する。他のハッシュ関数を使うこともでき、それも本発明の範囲内である。コンピュータ１１０はクライアントから渡されたとおりのNAIおよびハッシュされた暗号化パスワードをCHAP  NAS３５０に通信リンク３１０を通じて送信する。
【００２６】
ユーザーの信用情報を受信するためにPAPまたはSSLを使うNAS４２の場合、NAS４２はユーザーID属性およびパスワード属性を含むRADIUS認証要求を生成する。ユーザーID属性は鍵ID、キャラクタマッピングID、暗号化アルゴリズムID、シード、経路制御情報および暗号化されたユーザーIDを含むことになる。パスワード属性は、暗号化されたパスワードを含むことになる。ユーザーの信用情報を受信するためにCHAPを使うCHAP  NAS３５０の場合、CHAP  NAS３５０はユーザーID属性、パスワード属性およびCHAPチャレンジ属性を含んでいるRADIUS認証要求を生成する。CHAPチャレンジ属性は、CHAP  NAS３５０からコンピュータに通信リンク３１０を通じて送られたのと同じ乱数を含む。ユーザーID属性は鍵ID、キャラクタマッピングID、暗号化アルゴリズムID、シード、経路制御情報および暗号化されたユーザーIDを含むことになる。パスワード属性はハッシュされた暗号化パスワードを含むことになる。
【００２７】
NAS４２またはCHAP  NAS３５０はRADIUS認証要求をISP３０に送信する。ISP３０はNAIの一部として含まれている経路制御情報を調べ、RADIUS認証要求が処理のためにプラットフォーム１５０に転送されなければならないと判断する。ISP３０はパスワード属性やCHAPチャレンジ属性が存在しても調べることはしない。RADIUS認証要求は認証・復号・経路制御システム２００にインターネット４０を通じて、あるいは私設データ通信回線２２２を通じて転送される。
【００２８】
認証・復号・経路制御システム２００がこの認証要求を受信すると、認証・復号・経路制御システム２００は、認証要求を復号するための正しい復号アルゴリズム、正しい復号鍵および正しいシードを必要とする。追加的に、認証・復号・経路制御システム２００はCHAPが使われているかどうかを判定する。それによって適用すべきパスワード復号プロセスが変わってくるからである。
【００２９】
NAS４２がコンピュータ１１０を認証するためにPAPまたはSSLを使う実施形態では、認証・復号・経路制御システム２００は、安全な暗号化されたデータベース中にある鍵テーブルから復号鍵を取得する。鍵は復号パフォーマンスを改善するためメモリに常駐する。シードは認証要求のNAI部分に対してあるアルゴリズムを適用して経路制御情報、シード値およびユーザーIDを分離することによって決定される。ひとたびユーザーIDおよびパスワードの両方が復号されると、両者は認証・復号・経路制御システム２００からリモートのRADIUSサーバー１９０に新しいRADIUS認証要求の形で渡される。認証・復号・経路制御システム２００とリモートのRADIUSサーバー１９０との間の認証要求の安全性を保証するため、これらの要求の転送にはIPSecトンネル１８８が使われる。ひとたび認証要求がサーバー１９０によって処理され終わると、応答がプラットフォーム１５０に、次いでISPに、そして最後にはNAS４２に返される。
【００３０】
CHAP  NAS３５０がコンピュータ１１０を認証するためにCHAPを使う別の実施形態では、認証・復号・経路制御システム２００は、安全な暗号化されたデータベース中にある鍵テーブルから復号鍵を取得する。鍵は復号パフォーマンスを改善するためメモリに常駐する。シードは認証要求のNAI部分に対してあるアルゴリズムを適用して経路制御情報、シード値およびユーザーIDを分離することによって決定される。ひとたびユーザーIDが復号されると、認証・復号・経路制御システム２００は平文のユーザーIDおよび平文のパスワードを含んでいるデータベース３００に問い合わせをする。認証・復号・経路制御システム２００はRADIUS認証要求の形で与えられたパスワードを検証する。認証・復号・経路制御システム２００は、受信された暗号化されたユーザーIDを復号するのに使われたのと同じ鍵、シード、復号アルゴリズムおよびキャラクタマッピングを取り、データベース３００から取得したばかりの平文パスワードを暗号化する。この時点で、認証・復号・経路制御システム２００は、クライアント１００がコンピュータ１１０に渡す前にユーザーIDを暗号化したときに生成されたのと同一の暗号文文字列を有している。認証・復号・経路制御システム２００は次いでRADIUS認証要求に含まれていたCHAPチャレンジ属性から乱数を取得する。その乱数は、CHAP  NAS３５０によって生成されたものである。認証・復号・経路制御システム２００は次いでその乱数を取って、コンピュータ１１０によって当初用いられたのと同じMD-5のようなハッシュ関数を使って、前記乱数を計算したばかりの暗号化されたパスワードと混合する。この演算の結果は、RADIUS認証要求中のパスワード属性の内容と比較される。二つの値が一致すれば、ユーザーのパスワードは認証されたことになる。二つの値が一致しなければ、認証・復号・経路制御システム２００はそれを無効なパスワードとして扱い、認証失敗になる。ひとたび認証要求が認証・復号・経路制御システム２００によって処理され終わると、応答がプラットフォーム１５０に、次いでISP３０に、そして最後にはCHAP  NAS３５０に返される。
【００３１】
認証が成功であれば、ユーザーはインターネットアクセスが認められる。認証要求への応答はユーザーの信用情報は何も含んでおらず、含まれるのはRADIUSトランザクション識別子およびアクセス承認／アクセス拒否の指示のみである。したがって、認証要求に対する応答の暗号化は必要とされない。
【００３２】
NAS４２およびCHAP  NAS３５０は認証要求において暗号化されたユーザー名を呈示されるので、あらゆるRADIUSアカウント処理メッセージおよびプロバイダ呼び出し記録は暗号化されたユーザーIDを参照するようになっている。アカウント処理情報の交換には一つまたは複数の仲介者が関わることがありうるので、アカウント処理記録において暗号化されたユーザーIDを使用することはユーザーIDの危殆化や盗用を防止するさらなる助けとなる。アカウント処理記録復号システム２５０はRADIUSアカウント処理メッセージおよびプロバイダ呼び出し記録に含まれるユーザー名の復号を、認証・復号・経路制御システム２００が認証要求を復号するに使うのと同じ方法を用いて行う。プラットフォーム１５０は復号されたRADIUSアカウント処理メッセージをリモートのRADIUSサーバー１９０にリアルタイムで転送する。図６Ａおよび図６Ｂは、ユーザーIDおよびパスワードがクライアントによって暗号化され、認証サーバーによって復号される、本発明のある実施形態のデータの流れを示している。
【００３３】
ある実施形態では、暗号化はRSAによるAES暗号化アルゴリズムの実装を使って実行され、256ビットの鍵と128ビットのシードを使って公共の、すなわち信頼されないデータ通信ネットワークを通じて送信されるユーザーインターネット認証信用情報のセキュリティを確保する。そのようなネットワークには、これに限られるものではないが：ダイヤルアップ、LAN、Wi-Fi、有線ローミングブロードバンド、遠隔通勤ブロードバンド（telecommuter  broadband）、2.5G/3G無線、符号分割多重アクセス（CDMA:  Code  Division  Multiple  Access）、汎用パケット無線サービス（GPRS:  General  Packet  Radio  Service）およびパーソナル・ハンディフォン・システム（PHS:  Personal  Handyphone  System）のネットワークが含まれる。（暗号化および復号のプロセスは図７および図８で示す。）代替的に、異なる暗号化アルゴリズム、たとえばRC4もしくはECC、および／または異なる鍵長を利用する実施形態も考えられる。これらの修正は本発明の範囲内である。
【００３４】
本発明のある実施形態の暗号化プロセスの図が図７に示されている。図示した実施形態では、暗号化鍵およびキャラクタマッピングシステムがパスワードおよびIDの暗号化および復号に使われている。暗号化鍵および対応する鍵IDはクライアント１００上の暗号化されたデータ記憶に保存される。キャラクタマッピングシステムはサポートされていない文字をサポートされている文字にマッピングするために使われる。ユーザーIDおよびパスワードが完全に英数字からなる場合には、信用情報を扱うどのアプリケーションも正しく認識しそこなうことは考えにくい。しかし、英数字以外のある種の文字が使われる場合、一つまたは複数のアプリケーションでエラーが引き起こされることがある。たとえば、文字“#”がユーザーIDまたはパスワードの一部として使われた場合、ユーザー認証トランザクションは失敗することがある。ある種の文字を使うと、そのトランザクションに関与する一つまたは複数の中継コンピュータ、ネットワークデバイスまたはコンピュータプログラムにおいて失敗またはエラーの条件が引き起こされることがあるからである。したがって、ある実施形態では、一つまたは複数のアプリケーションによってサポートされていない文字がサポートされている文字にマッピングされる。こうして、結果として得られる暗号文にはサポートされているキャラクタのみが存在することになる。たとえば、文字は数字にマッピングされてもよい（すなわち、“#”を“255”にマッピングする）。本発明は、サポートされている文字へのマッピング対象とするサポートされていない文字がなくても、一部でも、全部でも実施できる。サポートされていない文字の一部または全部をサポートされている文字にマッピングする実施形態は、ユーザーIDおよびパスワードに利用できる選択肢が広がるため、より高い安全性を可能にする。これはまた、英数字以外の文字を信用情報に含めることができるため、権限のない人物が一般的または明らかな単語を使った信用情報を推測する可能性を減らす。（図１９Ａ〜図１９Ｃは、いくつかのサポートされていない文字のサポートされている文字へのマッピングの例を示している。）
ある実施形態では、シードは各認証要求に対して、クライアントソフトウェアID、クライアントセッションIDおよび追加的なランダムビットからのビットを使って動的に生成される。図４、５、６ＡおよびＢに示した実施形態では、１６バイトのシード値が次のデータを組み合わせて構築される：セッション番号から４文字、クライアントシリアル番号から４文字、ハードウェア識別子から４文字、内部コストコード（internal  cost  code）から２文字、ランダムな１６ビット（65536通りの可能な値）。あるいはまた、異なるデータ要素、異なる長さのデータ要素を使った、あるいはランダムビットのみを使った１６バイトのシードも考えられる。さらに、異なる長さまたは大きさのシードを生成する実施形態も考えられる。これらの修正も本発明の範囲内である。
【００３５】
セッションIDは接続試行のたびに変化するので、プラットフォーム１５０はそのユーザーから見た最後の良好なセッションIDを決め、それをベースラインとすることができる。その後プラットフォーム１５０が同じまたはより若いセッションIDをもつ認証要求を受け取ってもそれは拒否される。セッションIDは暗号化および復号プロセスで使われるので、セッションIDを不正に除去したり修正したりすると、暗号化プロセスで使われた入力と復号プロセスで使われる入力との間に相違が生じる。この相違は暗号文を復号したものが暗号化された平文とは異なる原因となる。暗号文を復号したものがユーザーによって入力されたユーザーIDおよびパスワードと一致しないので、誤った「信用情報」が認証データベースに対して呈示され、認証は失敗する。したがって、クライアント１００から発し、良好なセッションIDを含んでいる認証要求のみがプラットフォーム１５０による処理で成功となる。
【００３６】
ある実施形態では、認証・復号・経路制御システム２００はクライアントIDとドメインとを直前のセッションIDと最後に使用された時刻を常時追跡しているローカルなテーブル中で検索する。クライアントIDおよびドメインがデータベースにみつからなければ、セッションIDは受理される。要求に含まれるセッションIDの値が保存されているセッションIDよりも大きければ、セッションIDは受理される。直前のセッションIDが可能なセッションIDの最大値に等しければ、セッションカウンタが一巡したことになるのでIDが受理される。セッションIDの値が保存されているセッション鍵よりも若ければ認証は失敗し、その要求はそれ以上処理されない。セッションIDが直前のセッションIDと等しく、最後に使用された時刻が所定の時間間隔以内であれば、IDは受理される。セッション鍵が直前のセッションIDに等しく、最後に使われた時刻が所定の時間区間外であれば、認証は失敗し、その要求はそれ以上処理されない。IDが受理される場合には、アクセス要求に含まれるパスワードおよびユーザー名が復号されてRADIUSサーバー１９０に認証のために転送される。（ただし、復号が失敗する可能性があり、その場合も認証失敗となる。）RADIUSサーバー１９０はアクセス拒否またはアクセス許可応答をもって応える。応答が拒否であれば、それ以上のセッションの処理はない。アクセス拒否パケットがISP３０に返される。応答がアクセス許可でセッションIDレコードがマスターデータベースに存在しなければ、現在のユーザー名、ドメイン、セッションIDおよびタイムスタンプをもつレコードが生成される。そのクライアントIDおよびドメインについてのセッションIDレコードがマスターデータベースに存在している場合には、現在の要求のセッションIDが保存されているセッションIDに上書きされて、最終使用のタイムスタンプは現在時刻に設定される。次いでアクセス許可パケットがISP３０に返される。
【００３７】
認証要求には暗号化のために使われたシードを決定するためにプラットフォーム１５０によって必要とされる情報もアルゴリズムを使って埋め込まれる。シードは認証要求のたびに変化する。各認証要求についての異なるシードは二つの個別の要求が同じ暗号文にならないことを保証する。これにより、認証プロセスを複製してハッキングすることがきわめて困難になる。
【００３８】
安全性を高めるため、鍵は有限の期待寿命をもつことができる。鍵の寿命は、それぞれの鍵について管理上定義される属性である。鍵の寿命は何日、何か月、何年に設定してもよい。鍵の寿命はいつでも認証・復号・経路制御システム２００を通じて変更することができ、非常時には鍵をただちに無効にすることもできる。鍵がその寿命の終わりに近づくと、新たな鍵が発行されて自動更新機能によりクライアント１００に自動的に配送される。ある時間がたってユーザーが接続すると、新たな鍵と新たなキャラクタマッピングテーブルを含む更新情報を受信し、クライアント１００は古い鍵および古いキャラクタマッピングテーブルの使用を停止する。二つ以上の有効な鍵およびマッピングテーブルが存在する期間が長いほど自動的に新しい鍵およびマッピングテーブルに移行されるユーザーの割合が高くなる。クライアント１００は、鍵の期限切れの日時が近づくとユーザーのコンピュータ１１０に更新通知（パスワードの期限切れ通知と同様のもの）を表示してユーザーに設定を「X」日以内に更新しなければならないと通知することによって、スムーズな鍵移行プロセスを容易にする。ユーザーのほうでも、手動でクライアントのワンクリック更新機能を立ち上げることによってLAN接続を通じていつでも鍵とマッピングテーブルを更新することができる。鍵が管理上失効した時点で更新された鍵を受け取っていないユーザーは、認証ができなくなる。そのユーザーはそれでも、手動でブロードバンド接続を通じて更新を立ち上げることによって新しい鍵を受け取ることができる。
【００３９】
認証・復号・経路制御システム２００上でマッピングテーブルが管理上変更された時点で更新されたキャラクタマッピングテーブルを受け取っていないユーザーは、認証ができなくなる。認証・復号・経路制御システム２００上での変更があると、クライアント１００で暗号化プロセスに使われた入力と復号プロセスで使われる入力との間の相違を生じる（図８）。この相違は暗号文を復号したものが暗号化された平文とは異なる原因となる。暗号文を復号したものがユーザーによって入力されたユーザーIDおよびパスワードと一致しないので、誤った「信用情報」が認証データベースに対して呈示され、認証は失敗する。したがって、クライアント１００から発し、良好なキャラクタマッピングテーブルを含んでいる認証要求のみがプラットフォーム１５０による処理で成功となる。
【００４０】
緊急時には、鍵失効のために認証できないユーザーは認証・復号・経路制御システム２００にアクセスできる管理者に連絡することができる。管理者は認証・復号・経路制御システム２００に保存されている鍵の失効日時を変更することができる。失効日時をたとえば先週からたとえば明日などに変更することによって、鍵は有効な状態に戻る。ユーザーはこれで、自分が暗号化したユーザーIDとパスワードを復号するために必要とされる鍵が今では有効になったとわかれば、認証トランザクションを再び試みることができる。
【００４１】
複数の鍵およびキャラクタマッピングテーブルが同時に存在している可能性があるので、認証・復号・経路制御システム２００は、暗号化された認証要求を受け取ったときにはどの復号鍵およびキャラクタマッピングテーブルを使うかを判断する。認証要求の中身には、適切な復号鍵およびキャラクタマッピングテーブルを決定するために認証・復号・経路制御システム２００が使用する指標が埋め込まれている。認証要求において参照されている認証鍵が期限切れになっているか、存在しないかした場合には、復号プロセスは実行されない。その代わり、認証拒否メッセージがNASに返され、NASは接続を終了する。
【００４２】
図８は本発明のある実施形態の復号プロセスを示している。認証要求に含まれている平文テキストのRADIUSレルムおよび鍵IDを使って、サーバー鍵データベースが参照され、正しい復号鍵およびキャラクタマッピングテーブルが取得される。鍵が期限切れでなければ、サーバーベースのAES復号アルゴリズムはその復号鍵、キャラクタマッピングテーブル、シードおよび与えられた暗号化されたユーザー名およびパスワード文字列を使って、ユーザーによって入力されたもとの信用情報を再構築する。鍵が期限切れになっていたら、復号は実行されない。その代わり、認証拒否メッセージがNASに返され、NASは接続を終了する。
【００４３】
ある実施例では、暗号化鍵はRSA  BSAFETM  SDKからの鍵生成ライブラリを使って生成される。あるいはまた、鍵を生成するために別のソフトウェアツールを使うこともできるし、鍵をシステム管理者が手動で生成することもできる。生成された鍵はプラットフォーム１５０上で暗号化されたデータベース内に保存される。生成されたそれぞれの鍵は単一のレルムについて有効であり、決まった失効期日をもつ。同じ鍵は望むなら異なるレルムに使うこともできる。鍵は更新においてクライアント１００に配送され、ユーザーの信用情報の復号においてプラットフォーム１５０によって使用される。鍵データベースは単一のRADIUSレルムについて複数の鍵の保存を許容する。鍵が失効する前に、新しい鍵が定義され、クライアント１００に次のセッションの間にダウンロードされる。これは定義により、複数の鍵が有効で（失効していない）クライアント１００によって使われるということを意味している。鍵の失効と回転は迅速な鍵再割り当て率を許容している。
【００４４】
ある実施形態では、安全性を高めるために二要素認証および／またはワンタイムパスワード（すなわち、一度しか使えないパスワード）が使用される。たとえば、RSAセキュリティ社によって販売されているACESERVER２６０およびSECUREID１２０は図９に示すようなシステムに組み込まれる。この実施形態では、図４に示したリモートRADIUSサーバー１９０はリモートACESERVER２６０によって置き換えられている。認証・復号・経路制御システム２００とリモートACESERVER２６０との間を行き交うすべてのメッセージはSSOS１６０の手を経る。復号されたユーザーIDおよび復号されたパスワードを含む認証要求がSSOS１６０によって受信され、ACESERVER２６０へのメッセージで手を加えずに送信される。ACESERVER２６０からの「アクセス許可」または「アクセス拒否」メッセージの形の認証応答もSSOS１６０を通るが、手を加えずに認証・復号・経路制御システム２００に送信される。しかし、SSOS１６０はACESERVER２６０からの「新PIN」または「次トークン」メッセージの形の応答メッセージには介入する。SSOS１６０はACESERVERの「新PIN」または「次トークン」メッセージを中継する代わりに、SSOS１６０は「アクセス許可」メッセージを発し、それが認証・復号・経路制御システム２００に送られる。それに加えてSSOS１６０はACESERVERがある特定のユーザーに対して未処理の「新PIN」または「次トークン」要求を有しているという事実を記憶する。
【００４５】
「アクセス許可」がユーザーにインターネットへのアクセスを認めるためにNAS４２が必要とするメッセージである。NAS４２はこのメッセージを受け取ると、コンピュータ１１０にインターネットアクセスを許可する。この時点で、コンピュータ１１０は今インターネットアクセスがあることがわかる。しかし、クライアント１００は、ユーザーが今インターネットに接続されているということを示すOSのメッセージをインターセプトし、その結果、ユーザーはまだ認証段階にあるものと思うことになる。クライアント１００はひとたびコンピュータ１１０がインターネットに接続されていると検知すると、クライアントはインターネット上の他のいかなるアプリケーションまたはサーバーとも自由に通信できる。クライアントは状態問い合わせメッセージを直接SSOS１６０に送信して、未処理の「新PIN」または「次トークン」チャレンジが存在しているかどうかを問い合わせる。SSOS１６０は、未処理のチャレンジはない、「新PIN」チャレンジが未処理である、または「次トークン」チャレンジが未処理である、のいずれかを示す状態応答メッセージを返す。クライアント１００がSSOS１６０から未処理のACESERVERチャレンジがないことを示す状態応答メッセージを受け取った場合、クライアント１００はユーザーにこれでインターネットに接続されたことを伝え、その結果ユーザーは認証段階が無事完了し、インターネット４０にアクセスできることを理解する。これでユーザーはVPNクライアント２３０を立ち上げることができる。あるいはまた、クライアント１００がVPNクライアント２３０を立ち上げることができる。さらに、ある実施形態では、クライアント１００がVPNクライアント機能を含んでいてもよく、その場合VPNクライアント２３０は不要になる。そのような実施形態では、クライアント１００はインターネット接続が生成されたときに自動的に自らのVPN機能を立ち上げてもよいし、あるいはユーザーからの指示を待ってVPN接続を生成してもよい。これらの修正は本発明の範囲内である。
【００４６】
クライアント１００がSSOS１６０から「新PIN」チャレンジが未処理であることを示すメッセージを受け取った場合には、クライアント１００は新しいPINを入力する必要があるというメッセージをユーザーに表示する。クライアント１００はユーザーによって提出された情報を含むメッセージをSSOS１６０に送信する。するとSSOS１６０が「新PIN」応答メッセージを発してそれをあたかもユーザーから発したかのようにACESERVER２６０に送る。ACESERVER２６０はトランザクションの成功／失敗の状態のメッセージを生成してそれをSSOS１６０に送信する。するとSSOS１６０はトランザクションの成功／失敗の状態のメッセージを生成してそれをクライアント１００に送信する。トランザクションが成功であれば、クライアント１００はユーザーにこれでインターネットに接続されていることを伝え、その結果ユーザーは認証段階が無事完了したことを理解する。トランザクションが失敗であれば、クライアント１００はエンドユーザーにエラーメッセージを表示し、再試行または中止の機会を提供する。設定可能なある回数の再試行ののち、クライアント１００はコンピュータ１１０をインターネット１４０から切断してもよい。
【００４７】
クライアント１００がSSOS１６０から「次トークン」チャレンジが未処理であることを示すメッセージを受け取った場合には、クライアント１００はSECUREID１２０からの新しい乱数を入力する必要があるというメッセージをユーザーに表示する。クライアント１００はユーザーによって提出された情報を含むメッセージをSSOS１６０に送信する。するとSSOS１６０が「次トークン」応答メッセージを発してそれをあたかもエンドユーザーから発したかのようにACESERVER２６０に送る。ACESERVER２６０はトランザクションの成功／失敗の状態のメッセージを生成してそれをSSOS１６０に送信する。SSOS１６０はトランザクションの成功／失敗の状態のメッセージを生成してそれをクライアント１００に送信する。トランザクションが成功であれば、クライアント１００はユーザーにこれでインターネットに接続されていることを伝え、その結果ユーザーは認証段階が無事完了したことを理解する。トランザクションが失敗であれば、クライアント１００はエンドユーザーにエラーメッセージを表示し、再試行または中止の機会を提供する。設定可能なある回数の再試行ののち、クライアント１００はコンピュータ１１０をインターネット１４０から切断してもよい。
【００４８】
ある実施形態では、認証メッセージはトークン（SECUREID１２０からの擬似乱数）およびPINから作成されるパスコードを要求する。インターネット認証トランザクションに関わる仲介エンティティの立場からすると、パスコードはパスワードとは何ら変わるところはない。それはRADIUS認証要求および従来のRADIUS認証要求処理においてはパスワードと名付けられる一連の文字である。代替的に、実施形態によってはトークンだけ、またはPINだけを含むパスコードを要求することも考えられる。さらに、SECUREID１２０はコンピュータ１１０の一部であるソフトウェアとして構成され、クライアント１００に自動的にトークンを提供したり、SECUREID１２０はコンピュータ１１０とは別個のものでSECUREID１２０によって表示されるトークンをユーザーがコンピュータ１１０に入力することを要求してもよい。これらの修正も本発明の範囲内である。
【００４９】
このように、SSOS１６０およびクライアント１００はRSAのACESERVERおよびSECUREIDというソリューションを許容する。これは、インターネットダイヤル、インターネットISDN、ローミングWi-Fi、ローミングブロードバンド、セルラー、および／またはPHS認証に対してもLANベースの認証が使われるようにするために設計されたものである。これによりRSAの二要素認証およびワンタイムパスワードのソリューションの強力なセキュリティ特徴がインターネットダイヤル環境において使えるようになる。図１０および図１１は認証にワンタイムトークンを使った本発明のある実施形態を示している。
【００５０】
本発明のある実施形態では、クライアント１００はコンピュータ１１０のリモートサーバー２１０への接続がサーバー２１０を「感染」させないことを保証するよう構成されている。これは、ユーザーがインターネットに接続されたり、あるいはユーザーのコンピュータ１１０上で走っているVPNクライアント２３０とVPNサーバー２４０（VPNコンセントレータまたはVPNゲートウェイともいう）との間のVPN接続２８０を通じてサーバー２１０に接続されたりしたときに、実行を許される特定の、名前を指定されたアプリケーションを定義することによって達成される。さらに、インターネットまたはVPN接続の間に実行していなければならない特定のアプリケーションのリストも定義される。クライアントはインターネットまたはサーバー２１０に接続されるときにこれらのアプリケーションをモニターして、規定通りでないことが検知されたら適切な措置を取る。禁止されているアプリケーションが見つかったときにクライアントが取ることのできる執行措置としては：イベントの記録、ユーザーへの通知、インターネットからの切断および／またはVPNトンネルからの切断が含まれる。インターネットからの切断はVPNクライアント２３０とVPNサーバー２４０との間のVPN接続を維持するために必要とされる転送が失われることにつながり、よってVPN接続２８０もエラーになる。
【００５１】
クライアントがモニターする名前を指定された禁止および必須のアプリケーションのリストは、構成設定または「ポリシー」設定を通じて定義される。たとえば、禁止アプリケーションのリストには、ウイルス、スパイウェア、ファイル共有アプリケーション、インスタントメッセージ交換アプリケーション、ライセンスを受けていないアプリケーション、または、システム管理者がエンドユーザーにコンピュータ１１０で決して実行できないようにしたい、インターネット４０に接続されているときに実行できないようにしたい、および／もしくはリモートサーバー２１０へのVPNトンネル２８０を通じた接続中には実行できないようにしたいその他のアプリケーションが含まれうる。必須アプリケーションのリストには、ファイアウォールアプリケーション、ウイルス対策アプリケーション、ならびに、システム管理者がエンドユーザーにコンピュータ１１０で常に実行していてほしい、インターネット４０に接続されているときに実行していてほしい、および／またはリモートサーバー２１０へのVPNトンネル２８０を通じた接続中には実行していてほしいその他のアプリケーションが含まれうる。禁止および必須のアプリケーションのリストはクライアントがインターネットにアクセスするたびにクライアントにポリシー更新をダウンロードすることによって修正され、そのためいつでも修正できるものである。実際、ある実施形態では、クライアント１００がインターネットに接続するたびにクライアントは更新サーバーに問い合わせをして、ダウンロードして適用すべきペンディングのポリシー、ソフトウェアまたは電話帳更新があるかどうかを見きわめる。ユーザーのほうでも、いつでも手動で設定を更新する機能がある。この機能を使って、暗号化鍵（上で議論したような）も、ユーザーによる介入を必要とすることなく、ポリシー更新と一緒に、あるいは別個に、自動的に配送され、更新されるようにすることもできる。
【００５２】
さらに、クライアント１００およびサーバー２１０のユーザーは複数のユーザーグループに分けられることがある。ポリシーは個々人について作成されてもよいし、グループについて作成されてもよい。また、個人ごとに更新されてもよいし、グループについて更新されてもよい。そのとき、グループの各メンバーは上で議論したようにポリシー更新を受け取り、サーバー２１０のアクセスセキュリティを効率的に管理する。特定の暗号化／復号鍵も特定のグループまたは個人に割り当てられることができ、グループまたは個人のポリシーに含めることができる。鍵はまた、上述したように、ポリシーとは別個にユーザーに割り当てられ、配布されることもできる。鍵の寿命、暗号化アルゴリズム、キャラクタマッピング、鍵長、シード長、シード／ユーザーID混合アルゴリズム、および／またはシードコンポーネントはみな特定のグループまたは個人に割り当てられることができ、グループまたは個人のポリシーに含められることができる。これらの修正は本発明の範囲内である。
【００５３】
クライアント１００は、コンピュータ１１０上に存在する他のクライアントアプリケーションを起動し、停止し、および／または再起動することを、該クライアントの実行中、ユーザーが特定の転送を使用中、ユーザーがインターネットに接続中、および／または、リモートサーバー２１０およびVPNサーバー２４０へのVPNトンネル２８０を通じた接続中のいずれの点においても行えるための一般化された拡張可能なフレームワークを提供する。クライアント１００の機能はVPNクライアント、パーソナルファイアウォール、ウイルス対策製品のようなセキュリティアプリケーションに合うように仕立てられているが、クライアントの機能は任意のいかなるアプリケーションのために使われることもできる。
【００５４】
起動すべきアプリケーションのリスト、いつ起動するか、いつ停止するか、再起動するかどうか、いかにして起動するか、ユーザーがインターネットに接続できるために走っている必要があるかどうか、ユーザーがVPNトンネル２８０を通じてサーバー２１０に接続するために走っている必要があるかどうか、などはみなポリシー設定を通じて定義される。
【００５５】
ある実施形態では、このことは以下のプロセスによって実装される。多くのスタンドアローンのIPSec  VPNクライアント２３０は、他の多くのアプリケーション一般と同様、自らの振る舞いと動作を構成設定に基づいて自己制御することができる。これらの構成設定はしばしば初期化ファイルに保存される。これらの初期化ファイルはしばしば平文で保存され、よってユーザーにとって直接アクセス可能である。これらのアプリケーションは通常、アプリケーションの起動時に初期化ファイルにアクセスできない場合には正しく実行できないか、全く実行できない。
【００５６】
クライアント１００は、図４または図９で示したVPNクライアント２３０によって使われる初期化ファイルを生成するために必要なパラメータのすべてを含んでいる。クライアント１００はまた、ひとたびインターネットへの接続が確立されたら、VPNクライアント２３０を起動するためのユーザーコントロールおよび自動化されたコントロールをも提供する。VPNクライアント２３０がクライアント１００とともにインストールされるときには、VPNクライアントは必要な初期化ファイルなしでインストールされる。さらに、クライアント１００はVPNクライアント初期化ファイルを探してみつかったものをすべて削除する。VPN２３０を起動するのが適切になったときに、クライアント１００はある必要条件（たとえば禁止アプリケーションが実行中でない、必須アプリケーションが実行中であるなど）が満たされていることを検証し、これらの前提条件が満たされたときにのみクライアント１００はVPNクライアント２３０によって必要とされる初期化ファイルを生成し、それをコンピュータ上のVPNクライアント２３０が検索するディレクトリに入れる。クライアント１００は次いでVPNクライアントを起動する。VPNクライアントは必要な初期化ファイルを検索し、みつけ、読み込み、そのファイルの内容に基づいて自らを初期化する。クライアント１００は次いで初期化ファイルを再び削除し、該初期化ファイルが不正に使われることを防ぐ。
【００５７】
この機能のため、ユーザーは、VPNクライアント２３０によって必要とされる初期化ファイルがクライアント１００によって生成されるまでVPN接続２８０を確立することができない。クライアント１００は他の必要条件（たとえばファイアウォールおよびウイルス対策アプリケーションが実行中である）が満たされるまで初期化ファイルを生成しないので、これにより、コンピュータ１１０がセキュリティ上の脅威から安全であると検証される、および／またはすべての必須アプリケーションポリシーおよび／もしくは禁止アプリケーションポリシーに完全に従っていると検証されるまでユーザーがVPN接続２８０を開始できないことを保証する。こうして、サーバー２１０は信頼できるコンピュータのみがVPN接続２８０を確立してくることを確信できる。ある実施形態では、VPNクライアント初期化ファイルの内容はクライアント１００に暗号化されたデータ記憶中のポリシー設定として保存される。これらは暗号化されたデータ記憶に保存されており、ユーザーはそのデータ記憶の復号鍵を利用できないので、コンピュータ１１０のユーザーによって修正することはできない。
【００５８】
ある実施例では、クライアント１００はVisual  C++で書かれたウィンドウズ（登録商標）ベースのアプリケーションで、ハイパーテキスト転送プロトコル‐安全なソケットレイヤー（HTTP‐SSL）を通じてHTTPベースのVPNサーバー２４０に通信するために使えるSSLベースのVPNクライアント２３０を含んでいる。TLSのような暗号化／トンネル化の他のプロトコルをVPNクライアントとVPNサーバーとの間に使うこともでき、そのような修正は本発明の範囲内である。この機能は、ユーザーがウェブブラウザを開いて適切な一様リソース位置指定子（URL）を入力または選択し、アクセスゲートウェイのログインページにたどり着いたときにログイン信用情報を入力するといった必要なしに、ひとたびユーザーがインターネットに接続されたら、そのユーザーを自動的にHTTPベースのアクセス制御ゲートウェイにログインさせるのに使うことができる。別の実施例では、クライアント１００は、インターネット技術特別調査委員会（IETF:  Internet  Engineering  Task  Force）によるIPSecプロトコルを通じてIPSecベースでVPNクライアント２４０に通信するのに使えるIPSecベースのVPNクライアント２３０を含んでいる。この機能を使えば、ユーザーはサードパーティーによる外部のIPSecベースVPNクライアント２３０をインストール、保有または使用する必要なしに、ひとたびユーザーがインターネットに接続されたら、IPSecベースのVPNサーバー２４０へのIPSec  VPN接続を自動的に確立することができる。
【００５９】
クライアント１００はコンピュータ１１０上で走る他のアプリケーションをモニターし、定義されたポリシーに全体的に従っているかどうかを評価することができるので、クライアント１００は、実行している必要のあるアプリケーション（たとえばファイアウォールアプリケーション）のどれが実行されていないか、および逆に実行が禁じられているアプリケーション（たとえばスパイウェア、ライセンスを受けていないアプリケーションまたはシステム管理者によって望ましくないと見なされるその他のアプリケーション）のどれが実行されているかをログイン要求中に含めることもできるし、あるいは任意の時点でVPNアクセス制御ゲートウェイ２４０に通知することもできる。クライアント１００はまた、コンピュータ１１０の相対的な物理位置（たとえば自宅、支店、ホテル、社内ネットワークに直接接続など）をも伝達できる。アクセス制御ゲートウェイはこの情報を使って動的にそのユーザーに認められる許可のリストを適応させ、たとえばユーザーがウイルス対策ソフトウェアのないキオスクコンピュータにいるときには一つまたは複数の特定のアプリケーションへのアクセスを拒否したり、あるいはVPNサーバー２４０またはサーバー２１０へのアクセスを完全に拒否したりすることができる。
【００６０】
クライアント１００が特に心配なポリシー違反を検出した場合、たとえばウイルス対策アプリケーションによって報告されるウイルスが検出された場合などには、クライアント１００は自動的にVPNアクセス制御ゲートウェイ２４０にログアウトコマンドを送ることができる。他のウェブアクセス制御ゲートウェイソリューションはユーザーが新しいウェブページを開くかリンクをクリックするかし、それから前記情報をウェブブラウザからウェブアクセス制御ゲートウェイに向かう次の要求に便乗させるのを待つが、上記の動作はそれとは異なるものである。
【００６１】
ある実施形態では、ポリシー設定は使用される接続方法を決定するために使用される。クライアント１００の起動時に、クライアントは自動的にどんな接続ハードウェア（ネットワークアダプタやモデム）が現在そのマシンで利用可能であるかを問い合わせる。クライアント１００は次いで自動的に、検出されたハードウェア装置のいずれかが利用可能なネットワーク接続を有しているかどうかの問い合わせをする。これらの結果を使って、どの接続方法（アナログダイヤル、統合サービスデジタル通信網（ISDN）ダイヤル、PHSセルラー、Wi-Fi無線、LAN、符号分割多重アクセス（CDMA）セルラー、汎ヨーロッパデジタル移動通信システム（GSM）セルラー、GPRSセルラーなど）が現在利用可能であるかに関するユーザーフィードバックが提供される。クライアント１００はポリシー設定または手動コントロールを通じたユーザー入力に基づいて複数の接続方法を順位付けする。クライアント１００はこれらの順位を利用して、利用可能な接続方法のうちで最も好ましい接続方法のユーザーインターフェースを自動的に表示する。ポリシー設定に基づいて、クライアント１００は一つまたは複数の特定の転送について状態または接続コントロールの表示を制限したり防止したりするよう構成されうる。これにより、一つのコードベースによって、サポートされている接続方法の組み合わせをいくらでもサポートすることができるようになる。
【００６２】
ある実施形態では、クライアント１００は、コンピュータ１１０が有線または無線のLAN接続を有するときにユーザーの物理的な位置の位置種別を決定する位置種別評価を自動的に実行する。サポートされている位置種別としては：社外／非ローミング、社内／非ローミングおよび社外／ローミングが含まれる。ユーザーの位置種別に基づいて、クライアント１００はユーザーがインターネット接続を開始するときに使われるべき適切な認証方法を自動的に決定する。クライアント１００はまた位置固有ポリシーを自動的に適用する。たとえば許可されるアプリケーション、禁止されるアプリケーション、VPNクライアント２３０を自動的に立ち上げるかどうか、どの情報（たとえばユーザーの位置、実行中のアプリケーション、ユーザーのポリシーグループなど）をHTTPベース、TLSベース、IPSecベースまたはその他の暗号化方法ベースのVPNサーバー２４０またはその他のポリシーが定義されたアプリケーションに送るか、など関するものである。追加的に、前記評価に続いて、クライアント１００はユーザーのためにその実際の物理的位置の名前を突き止め、このユーザーフレンドリーな位置名称をユーザーに表示しようとする。これは、位置名称評価方法を使って達成される。適切なポリシーが決められていれば、クライアント１００は上述したようにインターネットおよびVPNサーバー２４０にアクセスする。
【００６３】
ユーザーがある商業ローミングブロードバンド位置にいると決定された場合、クライアント１００はユーザーがインターネット接続を開始したときに自動的にローミングブロードバンド認証方法を選択する。ユーザーが商業ローミングブロードバンド位置にいるのではないと決定された場合、クライアント１００は自動的に社内／非社内LAN評価を開始する。社内／非社内LAN評価の目的は、ユーザーが社内ブロードバンド位置（たとえば、本社、支店、部局、製造施設など）にいるかどうかを決定することである。ユーザーが社内ブロードバンド位置にいると決定された場合、クライアント１００はユーザーがインターネット接続を開始したときに自動的にいかなるブロードバンド認証方法をも無効にする。ユーザーが社内ブロードバンド位置にいるのではないと決定された場合、クライアント１００はユーザーがインターネット接続を開始したときに直接アクセスブロードバンド認証方法を自動的に選択する。
【００６４】
クライアント１００は、ユーザーのコンピュータが有線または無線のLAN接続を有しているときにユーザーの物理的位置の位置名称を決定する位置名称評価を自動的に実行する。クライアント１００は、ユーザーのコンピュータが有線LAN接続を有しているときにユーザーまたはコンピュータ管理者が有線もしくは無線LAN接続に名前を付けたり個人設定したりすることを許し、その同じ有線もしくは無線LAN接続のその後の使用に際して正しい名前を自動的に選択して表示することができる。クライアント１００は、ユーザーのコンピュータが有線もしくは無線LAN接続を有しているときに、位置種別に基づいてユーザーのコンピュータ上でセキュリティポリシー設定が自動的かつ動的に調整されることを許す。
【００６５】
さらに、ある実施形態では、ユーザーは名前を与えることに加えて有線または無線LAN接続の属性を設定する。ユーザーは名前の付いた、あるいは名前の付いていない接続をリストから選択する。次いでユーザーは、接続の名称、位置（たとえば自宅またはローミング中）、ブロードバンド接続が確立されたときのVPNクライアント２３０の自動立ち上げの有効化／無効化（この属性はクライアントポリシーによって設定／オーバーライドされてもよい）、VPNサーバーの選択、および／またはデバイスの選択といった接続の属性を定義／再定義する。この情報はブックマークとして保存される。保存されたブックマークによって、ユーザーはそれぞれの利用可能な接続の属性を素早く決定することができ、自分の環境のために最適な接続を選択することができる。ユーザーまたは管理者は、以前に定義されたブックマークを削除または修正してもよい。
【００６６】
図１２は、本発明の例示的な方法において、ユーザーIDおよびパスワードがクライアントによって暗号化されるステップを示している。ステップ１２１０において、クライアント１００はユーザーにユーザーIDおよびパスワードを要求する。ステップ１２２０でクライアントはユーザーIDとパスワードを受け取る。ステップ１２３０でユーザーIDおよびパスワードがワンタイムシードを使って暗号化され、平文の経路制御情報、鍵IDおよびシードが付加される。これで認証要求が生成される。ステップ１２４０で認証要求が送信される。ステップ１２５０で認証判定が行われる。認証メッセージが検証されないと、クライアント１００はステップ１２６０で「アクセス拒否」メッセージを受け取る。認証メッセージが検証されると、クライアントはステップ１２７０で「アクセス許可」メッセージを受け取る。
【００６７】
図１３は、本発明の例示的な方法において、認証にワンタイムトークンを使うステップを示している。ステップ１３１０において、クライアント１００はSSOS１６０に問い合わせをする。ステップ１３２０においてSSOS１６０が未処理のチャレンジがあると示した場合、クライアントはステップ１３３０でPIN、トークンまたはパスコードを求めるプロンプトを受け取る。未処理のチャレンジがなければ、クライアントはステップ１３７０でインターネット接続が完了したとユーザーに通知する。PIN、トークンまたはパスコードが必要とされる場合、それはステップ１３４０でSSOS１６０に送られる。ステップ１３５０でこのPIN、トークンまたはパスコードがACESERVER２６０によって受理された場合、クライアントはステップ１３６０で受理メッセージを受け取る。するとクライアント１００はステップ１３７０でインターネット接続が完了したとユーザーに通知する。
【００６８】
図１４は、本発明の例示的な方法において、ユーザーIDおよびパスワードが認証サーバーによって復号されるステップを示している。ステップ１４１０において、プラットフォーム１５０は暗号化された認証要求を受信し、それを認証・復号・経路制御システム２００に送る。認証・復号・経路制御システム２００はステップ１４２０でその要求を復号する。ステップ１４３０において認証・復号・経路制御システム２００が認証メッセージを検証すると、ISP３０を通じてNAS４２に「アクセス許可」メッセージが送信され、コンピュータ１１０はインターネットにアクセスすることが許される。認証要求が検証されないと、認証・復号・経路制御システム２００は「アクセス拒否」メッセージをISP３０を通じてNAS４２に送信する。
【００６９】
図１５は、本発明の例示的な方法において、認証にワンタイムトークンを使うステップを示している。ステップ１５１０において、SSOSサーバー１６０はクライアント１００からチャレンジ問い合わせを受信する。するとステップ１５２０でSSOSが未処理のチャレンジがあるかどうかを判定する。もしあれば、SSOS１６０はステップ１５３０でクライアントに新しいPIN、トークンまたはパスコードを求めるプロンプトを送る。次いでステップ１５４０においてSSOS１６０はその新しいPIN、トークンまたはパスコードメッセージを受信し、それをメッセージの形でACESERVER２６０に送信する。もしステップ１５５０でACESERVER２６０が新しいPIN、トークンまたはパスコードを拒否した場合、ステップ１５６０でSSOS１６０はクライアント１００に失敗メッセージを送る。もしステップ１５５０でACESERVER２６０が新しいPIN、トークンまたはパスコードを受理した場合には、ステップ１５７０でSSOS１６０はクライアント１００に成功メッセージを送る。
【００７０】
図１６は、本発明の例示的な方法において、サーバーの安全性を保証するためのあるポリシーの遵守が使われるステップを示している。ステップ１６１０において、クライアント１００はユーザーからインターネットに接続する要求を受け取る。次いでクライアント１００はステップ１６１５でそのポリシーを検査する。クライアント１００はステップ１６２０ですべてのポリシーが従われているかどうかを判定する。すべてのポリシーが従われていたら、クライアントはステップ１６４０でインターネットに接続する。そうでなければ、クライアント１００はステップ１６２５でコンピュータ１１０の構成設定を前記ポリシーに従うよう修正する。次いでクライアント１００はステップ１６３０でコンピュータ１１０が前記ポリシーに従っているかどうかを改めて評価する。従っていなければ、１６３５でポリシーに基づく行動がとられる。ポリシーに基づく行動はインターネット接続の拒否および／またはユーザーへの視覚的な通知の提供を含みうる。コンピュータ１１０がこの時点で前記ポリシーに従っている場合には、クライアント１００はステップ１６４０でインターネット接続をする。
【００７１】
ステップ１６４０でインターネット接続が構築されたのち、クライアント１００はステップ１６４５でプラットフォーム１５０からポリシー更新を受信する。次いでクライアント１００はステップ１６５０で現在のポリシーの遵守を保証するよう継続的にコンピュータ１１０をモニターする。クライアント１００がステップ１６５５で不遵守を見出した場合、ステップ１６６０でコンピュータ１１０は現在のポリシーに従うよう修正される。これでステップ１６６５においてコンピュータ１１０が遵守状態になっていれば、クライアント１００はステップ１６５０に戻ってコンピュータ１１０をモニターする。しかし、クライアント１００を遵守状態にすることができなかった場合、ステップ１６７０でポリシーに基づく行動が取られる。ポリシーに基づく行動はアプリケーションの開始もしくは終了、VPN接続の停止、インターネット接続の停止および／またはユーザーへの視覚的な通知の提供を含みうる。
【００７２】
図１７は、本発明の例示的な方法において、ユーザーのコンピュータ位置および状態を用いて適切なポリシーを決定するステップを示している。クライアント１００はステップ１７１０においてユーザーからインターネット４０またはVPNサーバー２４０への接続要求を受け取る。次いでクライアント１００はステップ１７２０でコンピュータ１１０の位置および状態を決定する。ステップ１７２０で決定された位置および状態に基づいて、クライアント１００はステップ１７３０で最良の接続方法を決定する。クライアント１００はステップ１７４０でコンピュータ１１０の位置および状態のための最良のポリシーを決定する。次いでクライアント１００は図１６に示された、ステップ１６１５に始まるプロセスを実行する。
【００７３】
図１８は、本発明の実施形態を実装しうるコンピュータシステム１８０１を示している。コンピュータシステム１８０１には、情報を伝達するためのバス１８０２またはその他の通信機構と、前記情報を処理するための前記バス１８０２に結合されたプロセッサ１８０３とが含まれる。コンピュータシステム１８０１にはまた、情報やプロセッサ１８０３によって実行されるべき命令を保存するための前記バス１８０２に結合された、ランダムアクセスメモリ（RAM）またはその他の動的記憶装置（たとえば、動的RAM（DRAM）、静的RAM（SRAM）および同期DRAM（SDRAM））のようなメインメモリ１８０４が含まれる。さらに、メインメモリ１８０４は前記プロセッサ１８０３による命令実行中に一時変数またはその他の中間情報を保存するために使われうる。コンピュータシステム１８０１にはさらに、静的な情報および前記プロセッサ１８０３のための命令を保存するための前記バス１８０２に結合された、読み出し専用メモリ（ROM）１８０５またはその他の静的記憶装置（たとえば、プログラム可能ROM（PROM）、消去可能PROM（EPROM）および電気的に消去可能PROM（EEPROM））が含まれる。
【００７４】
コンピュータシステム１８０１にはまた、磁気ハードディスク１８０７およびリムーバブルメディアドライブ１８０８（たとえばフロッピー（登録商標）ディスクドライブ、読み出し専用コンパクトディスクドライブ、読み出し／書き込みコンパクトディスクドライブ、コンパクトディスクジュークボックス、テープドライブおよびリムーバブル光磁気ドライブ）といった、情報および命令を保存するための一つまたは複数の記憶装置を制御するための、前記バス１８０２に結合されたディスクコントローラ１８０６が含まれる。記憶装置はコンピュータシステム１８０１に適切なデバイスインターフェース（たとえば小型コンピュータシステムインターフェース（SCSI:  small  computer  system  interface））、統合デバイスエレクトロニクス（IDE:  integrated  device  electronics）、エンハンストIDE（E-IDE）、直接メモリアクセス（DMA）またはウルトラDMAを使って追加しうる。
【００７５】
コンピュータシステム１８０１にはまた、特殊目的論理素子（たとえば、特定用途向けIC（ASIC:  application  specific  integrated  circuit））または構成設定可能な論理素子（たとえば、単純なプログラム可能論理素子（SPLD:  simple  programmable  logic  device）、複雑なプログラム可能論理素子（CPLD:  complex  programmable  logic  device）および現場でプログラム可能なゲートアレイ（FPGA:  field  programmable  gate  array））が含まれうる。
【００７６】
コンピュータシステム１８０１にはまた、情報をコンピュータユーザーに表示するための陰極線管（CRT）のようなディスプレイ１８１０を制御するための、前記バス１８０２に結合されたディスプレイコントローラ１８０９が含まれうる。当該コンピュータシステムはキーボード１８１１およびポインティングデバイス１８１２といった、コンピュータユーザーと対話し、プロセッサ１８０３に情報を提供するための入力装置を含む。ポインティングデバイス１８１２はたとえば、方向情報およびコマンド選択をプロセッサ１８０３に伝達し、ディスプレイ１８１０上でのカーソルの動きを制御するための、マウス、トラックボールまたはポインティングスティックでありうる。さらに、コンピュータシステム１８０１によって保存または生成されるデータの印字出力を提供するプリンタがあってもよい。
【００７７】
コンピュータシステム１８０１は、プロセッサ１８０３がメインメモリ１８０４のようなメモリに含まれる一つまたは複数の命令の一つまたは複数のシーケンスを実行するのに反応して本発明の処理ステップの一部分または全部を実行する。そのような情報は、ハードディスク１８０７またはリムーバブルメディアドライブ１８０８のような別のコンピュータ可読媒体からメインメモリ１８０４に読み込まれることができる。ハードディスク１８０７はクライアント１００によって使用される一つまたは複数のデータベースおよびデータファイルを含むことができる。データベースの内容およびデータファイルは安全性向上のために暗号化されていてもよい。メインメモリ１８０４に含まれる命令のシーケンスを実行するためにマルチプロセシング構成における一つまたは複数のプロセッサを用いてもよい。代替的な実施形態では、ソフトウェア命令の代わりに、あるいはそれと組み合わせて配線による回路が使用されうる。このように、実施形態はハードウェア回路とソフトウェアのいかなる特定の組み合わせに限定されるものでもない。
【００７８】
上述したように、コンピュータシステム１８０１には、本発明の思想に従ってプログラムされた命令を保持するための、そしてデータ構造、テーブル、レコードまたはここに記載されるその他のデータを含むための少なくとも一つのコンピュータ可読媒体またはメモリが含まれる。コンピュータ可読媒体の例は、コンパクトディスク、ハードディスク、フロッピー（登録商標）ディスク、テープ、光磁気ディスク、PROM（EPROM、EEPROM、フラッシュEPROM）、DRAM、SRAM、SDRAMまたは他のいかなる磁気媒体でもよく、コンパクトディスク（たとえばCD-ROM）または他のいかなる光学式媒体でもよく、パンチカード、紙テープまたはその他の孔のパターンのある物理媒体でもよく、搬送波（後述）またはその他コンピュータが読むことのできるいかなる媒体でもよい。
【００７９】
コンピュータ可読媒体のいかなる一つまたは組み合わせに保存されていようと、本発明はコンピュータシステム１８０１を制御し、本発明を実装するために単数または複数のデバイスを駆動し、コンピュータシステム１８０１が人間のユーザー（たとえば印刷作成人員）と対話できるようにするためのソフトウェアを含む。そのようなソフトウェアは、これに限定されるものではないが、デバイスドライバ、オペレーティングシステム、開発ツールおよびアプリケーションソフトウェアが含まれうる。そのようなコンピュータ可読媒体はさらに、本発明を実施する際に実行される処理の全部または（分散処理の場合には）一部分を実行するための本発明のコンピュータプログラムプロダクトを含む。
【００８０】
本発明のコンピュータコードデバイスは、いかなる解釈可能または実行可能なコード機構であってもよく、これに限定されるわけではないが、スクリプト、インタープリタプログラム、ダイナミックリンクライブラリ（DLL）、ジャバクラスおよび完全な実行可能プログラムが含まれうる。さらに、本発明の処理の一部は効率、信頼性および／またはコストの改善のために分散されてもよい。
【００８１】
ここで使われる「コンピュータ可読媒体」の用語は、プロセッサ１８０３に実行のための命令を与えることに関わるいかなる媒体をも指すものである。コンピュータ可読媒体は多くの形を取りうる。これに限定されるものではないが、不揮発性媒体、揮発性媒体および伝送媒体がそれに含まれる。不揮発性媒体には、たとえば光学式、磁気式ディスク、光磁気ディスクが含まれ、具体的にはハードディスク１８０７またはリムーバブルメディアドライブ１８０８などである。揮発性媒体にはメインメモリ１８０４のような動的メモリが含まれる。伝送媒体は同軸ケーブル、銅線および光ファイバーが含まれ、バス１８０２をなす導線もこれに当たる。伝送媒体はまた、音波または、電波および赤外線データ通信の際に生成されるような電磁波の形をとりうる。
【００８２】
プロセッサ１８０３が実行するための一つまたは複数の命令の一つまたは複数のシーケンスを担うのには、さまざまな形のコンピュータ可読媒体が関わる可能性がある。たとえば、命令は最初はリモートコンピュータの磁気ディスク上に保存されていてもよい。リモートコンピュータは、本発明の全部または一部を実装するための命令をリモートに動的メモリに読み込み、前記命令を電話回線を通じてモデムを使って送信することができる。コンピュータシステム１８０１にあるローカルモデムは、電話回線上のデータを受信し、赤外線送信機を使って前記データを赤外線信号に変換するなどする。バス１８０２に結合された赤外線検出器は前記赤外線信号中で搬送されているデータを受信し、該データをバス１８０２に載せることができる。バス１８０２はデータをメインメモリ１８０４に伝え、該メインメモリからプロセッサ１８０３が命令を取得して実行する。メインメモリ１８０４によって受信される命令は、プロセッサ１８０３による実行の前または後に任意的に記憶装置１８０７または１８０８に保存されてもよい。
【００８３】
コンピュータシステム１８０１はまた、バス１８０２に結合した通信インターフェース１８１３を含む。通信インターフェース１８１３は、たとえば構内ネットワーク（LAN）１８１５に、あるいはインターネットのような別の通信ネットワーク１８１６に接続されているネットワークリンク１８１４への双方向データ通信結合を提供する。たとえば、通信インターフェース１８１３は、いかなるパケット交換LANに取り付けるためのネットワークインターフェースカードであってもよい。別の例として、通信インターフェース１８１３は、対応する種類の通信回線へのデータ通信接続を提供するための非対称デジタル加入者線（ADSL:  asymmetrical  digital  subscriber  line）カード、統合サービスデジタル通信網（ISDN）カードまたはモデムであってもよい。無線リンクを実装してもよい。そのようないかなる実装であれ、通信インターフェース１８１３はさまざまな種類の情報を表すデジタルデータストリームを搬送する電気的、電磁的または光学的信号を送受信する。
【００８４】
ネットワークリンク１８１４は典型的には一つまたは二つのネットワークを通じて他のデータ装置へのデータ通信を提供する。たとえば、ネットワークリンク１８１４はローカルネットワーク１８１５（たとえばLAN）を通じて、あるいは通信ネットワーク１８１６を通じて通信サービスを提供するサービスプロバイダによって運営される装置を通じて別のコンピュータへの接続を提供しうる。ローカルネットワーク１８１４および通信ネットワーク１８１６はたとえば、デジタルデータストリームを搬送する電気的、電磁的または光学的信号および対応する物理層（たとえば、CAT５ケーブル、同軸ケーブル、光ファイバーなど）を使う。さまざまなネットワークを通る信号ならびにネットワークリンク１８１４上および通信インターフェース１８１３を通る信号はデジタルデータをコンピュータシステム１８０１との間で搬送するものだが、該信号はベースバンド信号の形で実装してもよいし、搬送波ベースの信号として実装されてもよい。ベースバンド信号はデジタルデータを、デジタルデータビットのストリームを表す変調されていない電気パルスとして伝送する。ここで、「ビット」の語は広く、少なくとも一つまたは複数の情報ビットを伝えるシンボルを意味するものと解釈されるものとする。デジタルデータはまた、搬送波を変調するために用いてもよい。伝導性媒体を通じて伝搬されたり電磁波として伝搬媒質を通じて伝送されたりする振幅、位相および／または周波数変位符号化された（amplitude,  phase  and/or  frequency  shift  keyed）信号の場合がそうである。このように、デジタルデータは「有線」の通信回線を通じて変調されないベースバンドとして送信されてもよいし、および／または搬送波を変調することによってベースバンドとは異なる所定の周波数体内で送信されてもよい。コンピュータシステム１８０１はプログラムコードを含むデータをネットワーク１８１５および１８１６、ネットワークリンク１８１４ならびに通信インターフェース１８１３を通じて送受信することができる。さらに、ネットワークリンク１８１４は、携帯情報端末（PDA）、ラップトップパソコン、または携帯電話のような携帯機器１８１７へのLANを通じた接続を提供することもできる。
【００８５】
明らかに、上記の思想に照らせば本発明の数多くの修正および変更が可能である。したがって、本発明はここに明示的に記載された以外の仕方で実施することも付属の特許請求の範囲内で可能であると理解されるべきものである。
【図面の簡単な説明】
【００８６】
【図１】従来のVPNシステムのブロック図である。
【図２】従来のVPNシステムの概略図である。
【図３】従来のVPNシステムの認証プロセスの概略図である。
【図４】ユーザーIDおよびパスワードがクライアントによって暗号化され、認証サーバーによって復号される、本発明のある実施形態のブロック図である。
【図５】ユーザーIDおよびパスワードがクライアントによって暗号化され、認証サーバーによって復号され、コンピュータ１１０およびNASによって使われる認証プロトコルがCHAPである、本発明のある実施形態のブロック図である。
【図６Ａ】ユーザーIDおよびパスワードがクライアントによって暗号化され、認証サーバーによって復号される、本発明のある実施形態の概略図の前半である。
【図６Ｂ】ユーザーIDおよびパスワードがクライアントによって暗号化され、認証サーバーによって復号される、本発明のある実施形態の概略図の後半である。
【図７】本発明のある実施形態の暗号化プロセスのブロック図である。
【図８】本発明のある実施形態の復号プロセスのブロック図である。
【図９】認証のためにワンタイムトークンを使用する本発明のある実施形態のブロック図である。
【図１０】認証のためにワンタイムトークンを使用する本発明のある実施形態の概略図である。
【図１１】認証のためにワンタイムトークンを使用する本発明のある実施形態の概略図である。
【図１２】ユーザーIDおよびパスワードがクライアントによって暗号化される、本発明のある方法のある実施形態のブロック図である。
【図１３】認証のためにワンタイムトークンを使用する本発明のある方法のある実施形態のブロック図である。
【図１４】ユーザーIDおよびパスワードが認証サーバーによって復号される、本発明のある方法のある実施形態のブロック図である。
【図１５】認証のためにワンタイムトークンを使用する本発明のある方法のある実施形態のブロック図である。
【図１６】サーバー安全性を保証するためにあるポリシーの遵守が使われる、本発明のある方法のある実施形態のブロック図である。
【図１７】適切なポリシーを決定するためにユーザーのコンピュータの位置および状態が使用される、本発明のある方法のある実施形態のブロック図である。
【図１８】本発明の実施形態を実装する基礎となるコンピュータのある実施形態のブロック図である。
【図１９Ａ】いくつかのサポートされていないキャラクタのサポートされているキャラクタへのマッピングの代表例を示す表の最初の部分である。
【図１９Ｂ】いくつかのサポートされていないキャラクタのサポートされているキャラクタへのマッピングの代表例を示す表の第２の部分である。
【図１９Ｃ】いくつかのサポートされていないキャラクタのサポートされているキャラクタへのマッピングの代表例を示す表の最後の部分である。
【図１】
2007503136.tif 000003
【図２】
2007503136.tif 000004
【図３】
2007503136.tif 000005
【図４】
2007503136.tif 000006
【図５】
2007503136.tif 000007
【図６Ａ】
2007503136.tif 000008
【図６Ｂ】
2007503136.tif 000009
【図７】
2007503136.tif 000010
【図８】
2007503136.tif 000011
【図９】
2007503136.tif 000012
【図１０】
2007503136.tif 000013
【図１１】
2007503136.tif 000014
【図１２】
2007503136.tif 000015
【図１３】
2007503136.tif 000016
【図１４】
2007503136.tif 000017
【図１５】
2007503136.tif 000018
【図１６】
2007503136.tif 000019
【図１７】
2007503136.tif 000020
【図１８】
2007503136.tif 000021
【図１９Ａ】
2007503136.tif 000022
【図１９Ｂ】
2007503136.tif 000023
【図１９Ｃ】
2007503136.tif 000024
【国際調査報告】
2007503136.tif 000025
2007503136.tif 000026
2007503136.tif 000027