(57)【要約】  クライアントとサーバとの間の相互検証の方法が開示される。本方法は、通信リンクを介して、サーバのアドレスを含む要求を受信する工程と、検証データを受信する工程と、サーバの秘密鍵を用いて、検証データを復号する工程と、復号された検証データから、クライアントのアカウントＩＤを識別する工程と、第１のログオントークンを生成する工程と、第１のログオントークンとサーバの統一資源位置指定子（ＵＲＬ）とを含むログオンメッセージを生成する工程と、クライアントの公開鍵を用いて、ログオンメッセージを暗号化する工程と、通信リンクを介してログオンメッセージを送信する工程と、アカウントＩＤと第２のログオントークンとを含むログオン要求を受信する工程と、第２のログオントークンが第１のログオントークンと一致するか否かを決定する工程とを含む。
2017521934.tif 000002
【特許請求の範囲】
【請求項１】
クライアントとサーバとの間の相互検証の方法であって、
第１のログオントークンを生成する工程と、
前記第１のログオントークンを含むログオンメッセージを生成する工程と、
前記クライアントの公開鍵を用いて、前記ログオンメッセージを暗号化する工程と、
前記ログオンメッセージを前記クライアントに送信する工程と、
前記クライアントから、第２のログオントークンを含むログオン要求を受信する工程と、
前記第２のログオントークンが前記第１のログオントークンと一致するか否かを決定する工程と
を含むことを特徴とする方法。
【請求項２】
前記第１のログオントークンを、第１の期間にわたって有効であるよう設定する工程を更に含む、請求項１記載の方法。
【請求項３】
前記第２のログオントークンが、前記第１の期間の後に期限切れになったかまたは使用済であるか否かを決定する工程を更に含む、請求項２記載の方法。
【請求項４】
前記ログオンメッセージが、前記サーバの統一資源位置指定子（ＵＲＬ）を更に含む、請求項１記載の方法。
【請求項５】
前記ＵＲＬが、前記サーバの固定インターネットプロトコル（ＩＰ）アドレスまたは浮動ＩＰアドレスを含む、請求項４記載の方法。
【請求項６】
前記第１のログオントークンを生成する前記工程の前に、
検証データを受信する工程と、
前記サーバの秘密鍵を用いて、前記検証データを復号する工程と、
前記復号された検証データから、検証トークンを識別する工程と
を更に含む、請求項１記載の方法。
【請求項７】
前記クライアントの公開鍵を用いて、前記ログオンメッセージを暗号化する工程の前に、前記サーバの秘密鍵を用いて、前記ログオンメッセージを暗号化する工程を更に含む、請求項１記載の方法。
【請求項８】
クライアントとサーバとの間の相互検証の方法であって、
第１の検証トークンを生成する工程と、
前記第１の検証トークンを含む第１の検証データを生成する工程と、
前記サーバの公開鍵を用いて、前記第１の検証データを暗号化する工程と、
前記暗号化された第１の検証データを前記サーバに送信する工程と、
前記サーバからログオンメッセージを受信する工程と、
前記クライアントの秘密鍵を用いて、前記ログオンメッセージを復号する工程と、
前記復号されたログオンメッセージ中の第２の検証トークンを識別する工程と、
前記第２の検証トークンが前記第１の検証トークンと一致するか否かを決定する工程と
を含むことを特徴とする方法。
【請求項９】
前記第１の検証トークンが、第１の期間にわたって有効であるよう設定される、請求項７記載の方法。
【請求項１０】
前記第２の検証トークンが前記第１の期間の後に期限切れになったか否かを決定する工程を更に含む、請求項８記載の方法。
【請求項１１】
前記ログオンメッセージが、前記サーバの統一資源位置指定子（ＵＲＬ）を更に含む、請求項７記載の方法。
【請求項１２】
前記ＵＲＬが、前記サーバの固定インターネットプロトコル（ＩＰ）アドレスまたは浮動ＩＰアドレスを含む、請求項１０記載の方法。
【請求項１３】
前記ログオンメッセージが、前記サーバによって生成されたログオントークンを更に含む、請求項７記載の方法。
【請求項１４】
前記クライアントのアカウントＩＤと前記ログオントークンとを含むログオン要求を送信する工程を更に含む、請求項１２記載の方法。
【請求項１５】
クライアントとサーバとの間の相互検証のシステムにおいて、
１以上のプロセッサと、
１以上のプログラムであって、前記１以上のプロセッサによって実行された際に、前記システムに、
第１のログオントークンを生成する手順と、
前記第１のログオントークンを含むログオンメッセージを生成する手順と、
前記クライアントの公開鍵を用いて、前記ログオンメッセージを暗号化する手順と、
前記ログオンメッセージを前記クライアントに送信する手順と、
前記クライアントから第２のログオントークンを含むログオン要求を受信する手順と、
前記第２のログオントークンが前記第１のログオントークンと一致するか否かを決定する手順と
を行わせる指示を含むプログラムと
を含むことを特徴とするシステム。
【請求項１６】
前記指示が、前記システムに、前記第１のログオントークンを第１の期間にわたって有効であるよう設定する手順を更に行わせる、請求項１４記載のシステム。
【請求項１７】
前記指示が、前記システムに、前記第２のログオントークンが前記第１の期間の後に期限切れになったかまたは使用済であるか否かを決定する手順を更に行わせる、請求項１５記載のシステム。
【請求項１８】
前記ログオンメッセージが、前記サーバの統一資源位置指定子（ＵＲＬ）を更に含む、請求項１４記載のシステム。
【請求項１９】
前記ＵＲＬが、前記サーバの固定インターネットプロトコル（ＩＰ）アドレスまたは浮動ＩＰアドレスを含む、請求項１７記載のシステム。
【請求項２０】
前記指示が、前記システムに、
前記第１のログオントークンを生成する前記工程の前に、検証データを受信する手順と、
前記サーバの秘密鍵を用いて、前記検証データを復号する手順と、
前記復号された検証データから検証トークンを識別する手順と
を更に行わせる、請求項１４記載のシステム。
【請求項２１】
前記指示が、前記システムに、前記クライアントの公開鍵を用いて、前記ログオンメッセージを暗号化する前記手順の前に、前記サーバの秘密鍵を用いて、前記ログオンメッセージを暗号化する手順を更に行わせる、請求項１５記載のシステム。
【請求項２２】
前記サーバが、ログオンサーバおよび管理サーバを含む、請求項１４記載の方法。
【発明の詳細な説明】
【関連出願への相互参照】
【０００１】
本願は、２０１４年６月２７日に出願された「Electronic Communication System and Method of Logging on an Account Using a Temporarily Generated Logon Token with Mutual Verification of Client and Server」という名称の米国仮特許出願第６２／０１８，０８９号による優先権を主張するものであり、これを本明細書に参照して組み込む。
【技術分野】
【０００２】
本発明は、クライアントとサーバとの間の相互検証の方法に関する。
【背景技術】
【０００３】
インターネットのアプリケーションおよびサービスは、我々の生活に多くの面で浸透している。典型的なインターネット活動は、電子メール、インターネットサーフィン、クラウドストレージ、ソーシャルネットワーク、電子商取引、オンラインショッピング等を含む。現実世界のやりとりから仮想世界のやりとりへの関心が高まるにつれ、犯罪および悪意のある行動も急速に増加している。セキュリティを低下させることなく、インターネットサービスを継続的に発展させるために、多くの手法が提供されている。とりわけ、今日ではパスワードがよく用いられている。図１は、従来技術におけるクライアント−サーバシステム１００の模式図である。図１を参照すると、クライアントＡは、それぞれ異なるＩＤおよびパスワードのセット、即ち、パスワード＿１（psw_1）と関連づけられたＩＤ＿１〜パスワード＿ｎ（psw_n）と関連づけられたＩＤ＿ｎをそれぞれ用いて、異なるインターネットウェブサイトのサーバ＿１〜サーバ＿ｎとやりとりし得る。しかし、異なるウェブサイトに対して異なるパスワードを設定しても、依然として、コンピュータウイルスの攻撃、データハッキング、および悪意のあるクライアントＢによるインターネット詐欺等のサイバー犯罪の危険があり得る。既存のパスワードに基づくセキュリティメカニズムを改善できる方法およびシステムを有することが望ましい。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
既存のパスワードに基づくセキュリティメカニズムは、幾つかの短所を有する。ウェブサイト管理者またはコンテンツ提供者の観点からは、ウェブサイトまたはサーバは、データのセキュリティを確保し、データの盗難または改竄を防止するための対策をとらなければならない。更に、ユーザが関与する限りにおいては、ユーザは、アルファベットまたは記号の複雑な組合せからパスワードを選択し得る。ユーザにとって、それぞれ異なるウェブサイトにログオンするための特定のＩＤ／パスワードの内容を覚えることは、しばしば煩わしいものである。更に、ユーザは、パスワードが盗まれるリスクを下げるために、自分のパスワードを頻繁に変更することが求められ得る。
【０００５】
更に、既存のパスワードに基づくセキュリティメカニズムは、クライアントのＩＤを確認するのみである場合があり、クライアントを保護するためにサーバのＩＤを確認する方法は提供していない。更に、サーバとの接続を行うために、クライアントによって、サーバの数値のＩＰアドレスの代わりにドメイン名が用いられる場合がしばしばあるので、クライアントは、ドメインネームサーバ（ＤＮＳ）のハッキング（例えばＤＮＳのハイジャックまたはＤＮＳ偽装等）により、偽のサーバに接続する可能性もある。
【課題を解決するための手段】
【０００６】
本発明は、上述の問題を軽減するための、トークンに基づくメカニズムを提供する。本発明の実施形態は、クライアントとサーバとの間の相互検証の方法を提供する。本方法は、通信リンクを介して、サーバのアドレスを含む要求を受信する工程と、検証データを受信する工程と、サーバの秘密鍵を用いて、検証データを復号する工程と、復号された検証データから、クライアントのアカウントＩＤを識別する工程と、第１のログオントークンを生成する工程と、第１のログオントークンを含むログオンメッセージを生成する工程と、クライアントの公開鍵を用いて、ログオンメッセージを暗号化する工程と、通信リンクを介してログオンメッセージを送信する工程と、アカウントＩＤと第２のログオントークンとを含むログオン要求を受信する工程と、第２のログオントークンが第１のログオントークンと一致するか否かを決定する工程とを含む。
【０００７】
また、本発明の幾つかの実施形態は、クライアントとサーバとの間の相互検証の方法を提供する。本方法は、通信リンクを介してサーバに要求を送信する工程と、第１の検証トークンを生成する工程と、クライアントのアカウントＩＤと第１の検証トークンとを含む第１の検証データを生成する工程と、サーバの公開鍵を用いて、第１の検証データを暗号化する工程と、暗号化された第１の検証データを送信する工程と、ログオンメッセージを受信する工程と、クライアントの秘密鍵を用いて、ログオンメッセージを復号する工程と、復号されたログオンメッセージ中のログオントークン、第２の検証トークン、およびログオンサーバのＵＲＬを識別する工程と、第２の検証トークンを検証する工程と、第２の検証トークンが有効であると決定されたことに応答して、アカウントＩＤとログオントークンとを含むログオン要求をサーバに送信する工程とを含む。
【０００８】
本発明の実施形態は、クライアントとサーバとの間の相互検証のシステムを提供する。本システムは、１以上のプロセッサと、複数の指示を含む１以上のプログラムとを含む。これらの指示は、１以上のプロセッサによって実行された際に、通信リンクを介して、サーバのアドレスを含む要求を受信することと、検証データを受信することと、サーバの秘密鍵を用いて、検証データを復号することと、復号された検証データから、クライアントのアカウントＩＤを識別することと、第１のログオントークンを生成することと、第１のログオントークンとサーバの統一資源位置指定子（ＵＲＬ）とを含むログオンメッセージを生成することと、クライアントの公開鍵を用いて、ログオンメッセージを暗号化することと、通信リンクを介して、ログオンメッセージを送信することと、アカウントＩＤと第２のログオントークンとを含むログオン要求を受信することと、第２のログオントークンが第１のログオントークンと一致するか否かを決定することとを、システムに行わせる。
【発明の効果】
【０００９】
従って、本発明は、クライアントおよびサーバによるＩＤの検証のための、パスワードを用いないシステムを提供する。クライアントの機密のデータを保護するために、公開鍵インフラストラクチャ（ＰＫＩ）が採用される。更に、何らかのパスワードを用いる代わりに、トークンが生成され、クライアントまたはサーバの対になった秘密鍵および公開鍵のうちの公開鍵によって暗号化される。このトークンは所定の時間にわたって有効であり、これは、一旦作られたら比較的長時間にわたって有効なパスワードよりも安全である。更に、トークンはランダムに生成されて、送信の際に対になった公開鍵および秘密鍵によって保護され得る。よって、パスワードに基づくセキュリティシステムよりも効率的且つセキュアな方法で、クライアントまたはサーバのＩＤを検証することができる。
【００１０】
パスワードはなくなるので、本発明においては、クライアントの各回のログオンの前に、サーバによって、クライアントがログオンするためのログオントークンが生成される。ログオントークンは、テキスト、グラフィック、サウンド、ボイス、ビデオ、またはそれらの組合せを含む。ログオントークンは、一旦使用されると、または所定の期間の後に期限切れになると、使われなくなる。ログオンの前に毎回ログオントークンがランダムに生成されることと、比較的短い有効期間との特徴を考えると、ログオントークンが盗まれる可能性は、パスワードより低い。更に、クライアントがログオンするのをサーバが待機している間の短い有効期間中に、サーバは、クライアントがログオンするために用いるログオントークンを確認するために、元のログオントークンの代わりに、ログオントークンのハッシュ値を保持してもよい。たとえログオントークンのハッシュ値が盗まれても、悪意のある行為が、盗んだハッシュ値を利用することはできない。
【００１１】
本発明の態様は、添付の図面と共に以下の詳細な説明を読めば、最もよく理解される。
【図面の簡単な説明】
【００１２】
【図１】従来技術におけるクライアント−サーバシステムの模式図
【図２】本発明の幾つかの実施形態によるクライアント−サーバシステムの模式図
【図３】本発明の幾つかの実施形態による、クライアントとサーバとの間の相互検証の方法を示すフロー図
【図４】本発明の幾つかの実施形態による、クライアントとサーバとの間の相互検証の方法を示すフロー図
【図５】本発明の幾つかの実施形態による、クライアントとサーバとの間の相互検証の方法を示すフロー図
【発明を実施するための形態】
【００１３】
以下の開示は、提供される主題の様々な特徴を実施するための多くの異なる実施形態または例を提供する。本開示を簡潔にするために、構成要素および構成の具体的な例を以下に説明する。当然ながら、これらは単なる例であり、限定する意図はない。更に、本開示は、様々な例において、参照番号および／または参照文字を繰り返し用い得る。この繰り返しは、簡潔さおよび明瞭さを目的とするものであり、それ自体において、述べられる様々な実施形態および／または構成間の関係を決定するものではない。
【００１４】
図２は、本発明の幾つかの実施形態によるクライアント−サーバシステム２００の模式図である。図２を参照すると、クライアント−サーバシステム２００は、クライアントＡ、管理サーバ２０４、ログオンサーバ２０６、および通信リンク２１０を含む。クライアントＡは、アカウント保持者によってログオンする意図で用いられる、例えばコンピュータまたは携帯電話等のローカル装置であり、ネットワーク通信を行う機能がある。クライアントＡは、ソフトウェアの指示を実行するためのプロセッサまたは処理回路も含み得る。
【００１５】
管理サーバ２０４は、クライアントＡのアカウントを管理するホストコンピュータである。管理サーバ２０４は、複数のクライアントにサービスを提供するためのコンピューティング・インスタンスまたは組み合わされたハードウェア／ソフトウェアエンティティを表している。幾つかの実施形態において、管理サーバ２０４は仮想計算機の形態で実装され得る。幾つかの実施形態において、管理サーバ２０４は、例えばキーボード、マウス、またはタッチパネル等の入力インターフェースを含む。管理サーバ２０４は、通信リンク２１０を介して直接または間接的にアクセス可能なネットワークノードも指し得る。管理サーバ２０４は、クライアントからの要求を受理するためのネットワークポータルの役割をし、所定の手順に従って動作する。幾つかの実施形態において、管理サーバ２０４は、ファイルサーバ、データベースサーバ、またはアプリケーションサーバであり得る。管理サーバ２０４は、プロセッサと、例えばアンテナポートまたはネットワークポート等の通信端子とを含み得る。管理サーバ２０４は、クライアントの要求を処理し、サービス手順を行うための信号処理装置と、プログラムファイルまたはクライアントの情報を格納するためのストレージ装置とを更に含み得る。
【００１６】
ログオンサーバ２０６は、クライアントＡがログオンするのを許可するホストコンピュータである。ログオンサーバ２０６は、通信リンク２１０を介して、クライアントＡおよび管理サーバ２０４に接続されている。ログオンサーバ２０６は、アカウントを管理するためのデータを、管理サーバ２０４と共有し得る。図２においては、ログオンサーバ２０６と管理サーバ２０４とは別々のサーバとして示されているが、これらの機能は単一のサーバに統合または組み合わされてもよい。
【００１７】
通信リンク２１０は、クライアントＡと管理サーバ２０４とを結合するよう構成される。通信リンク２１０は、信号、メッセージ、またはデータを送信および受信するための複数の中間ネットワークノードおよび接続ルートを含み得る。通信リンク２１０は、例えばイーサネット（登録商標）、ケーブル、電力線通信、または任意の適切な媒体等の有線接続で構成される。或いは、通信リンク２１０は、例えばセルラー、ＷｉＦｉ、Ｂｌｕｅｔｏｏｔｈ（登録商標）、または任意の適切な無線通信システム等の無線環境において構成され得る。更に、通信リンク２１０は、着信または発信するメッセージを処理するための送信プロトコルスタックおよびアプリケーションを含み得る。
【００１８】
クライアントＡおよび管理サーバ２０４は、通信リンク２１０を介して、暗号化されたデータを送信および受信するよう構成される。更に、クライアントＡおよび管理サーバ２０４は、それぞれの秘密鍵および公開鍵を格納するためのメモリ装置を含む。更に、クライアントＡおよび管理サーバ２０４は、それぞれ、暗号化手順／復号手順を実施するためのハードウェアおよび／またはソフトウェアを含む。
【００１９】
データが他人に対して明かされないように、クライアントＡと管理サーバ２０４との間におけるデータのプライバシーのために、対になった秘密鍵および公開鍵が用いられる。クライアントＡおよび管理サーバ２０４の各々は、データ送信における送信者または受信者として動作し得る。プライバシーを保ってデータを送信するために、対になった秘密鍵および公開鍵を用いる例示的な工程は、以下のように提供される。
Ａ）送信者が、受信者の公開鍵を用いて、データを暗号化する。
Ｂ）送信者が、暗号化されたデータを受信者に送信する。
Ｃ）受信者が、データを取得するために、受信者の秘密鍵を用いて、暗号化されたデータを復号する。
【００２０】
受信者のみが受信者の秘密鍵を有するので、データのプライバシーが維持される。
【００２１】
ＩＤを検証するために、対になった秘密鍵および公開鍵を用いる例示的な工程は、以下の通りである。
Ａ）送信者が、送信者の秘密鍵を用いて、データを暗号化する。
Ｂ）送信者が、暗号化されたデータを受信者に送信する。
Ｃ）受信者が、送信者の公開鍵を用いて、暗号化されたデータを復号する。
【００２２】
送信者のみが送信者の秘密鍵を有するので、復号が成功すれば、送信者のＩＤが検証される。
【００２３】
更に、送信者のＩＤの検証、およびデータのプライバシーの維持のために、対になった秘密鍵および公開鍵を用いる例示的な工程は、以下の通りである。
Ａ）送信者が、第１の暗号化されたデータを生成するために、送信者の秘密鍵を用いて、データを暗号化する。
Ｂ）送信者が、第２の暗号化されたデータを生成するために、受信者の公開鍵を用いて、第１の暗号化されたデータを暗号化する。
Ｃ）送信者が、第２の暗号化されたデータを受信者に送信する。
Ｄ）受信者が、第１の暗号化されたデータを取得するために、受信者の秘密鍵を用いて、第２の暗号化されたデータを復号する。受信者のみが受信者の秘密鍵を有するので、データのプライバシーが維持される。
Ｅ）受信者が、データを取得するために、送信者の公開鍵を用いて、第１の暗号化されたデータを復号する。送信者のみが送信者の秘密鍵を有するので、復号が成功すれば、送信者のＩＤが検証される。
【００２４】
更に、送信者のＩＤの検証、およびデータのプライバシーの維持のために、対になった秘密鍵および公開鍵を用いる例示的な工程は、以下の通りである。
Ａ）送信者が、第１の暗号化されたデータを生成するために、受信者の公開鍵を用いて、データを暗号化する。
Ｂ）送信者が、第２の暗号化されたデータを生成するために、送信者の秘密鍵を用いて、第１の暗号化されたデータを暗号化する。
Ｃ）送信者が、第２の暗号化されたデータを受信者に送信する。
Ｄ）受信者が、第１の暗号化されたデータを取得するために、送信者の公開鍵を用いて、第２の暗号化されたデータを復号する。送信者のみが送信者の秘密鍵を有するので、復号が成功すれば、送信者のＩＤが検証される。しかし、受信者以外の第三者が、第１の暗号化されたデータを取得するための送信者の公開鍵を有する場合がある。
Ｅ）受信者が、データを取得するために、受信者の秘密鍵を用いて、第１の暗号化されたデータを復号する。たとえ第三者が第１の暗号化されたデータを取得しても、受信者のみが受信者の秘密鍵を有するので、データのプライバシーは依然として維持される。
【００２５】
秘密鍵または公開鍵は、データを直接暗号化または復号するために用いられなくてもよい。その代わりに、データの暗号化および復号には対称暗号の対称鍵が用いられ、秘密鍵または公開鍵は、ＩＤの検証およびデータのプライバシーという同じ目的で、対称鍵を暗号化または復号するために用いられる。例えばプライバシーを保ってデータを送信するために、対称鍵、並びに、対になった秘密鍵および公開鍵を用いる工程は、以下の通りである。
Ａ）送信者が、対称鍵を用いて、データを暗号化する。
Ｂ）送信者が、受信者の公開鍵を用いて、対称鍵を暗号化する。
Ｃ）送信者が、暗号化された対称鍵および暗号化されたデータを受信者に送信する。
Ｄ）受信者が、対称鍵を取得するために、受信者の秘密鍵を用いて、暗号化された対称鍵を復号する。
Ｅ）受信者が、データを取得するために、対称鍵を用いて、暗号化されたデータを復号する。
【００２６】
更に、データを提供する送信者のＩＤを検証するために、対称鍵、並びに、対になった秘密鍵および公開鍵を用いる工程は、以下の通りである。
Ａ）送信者が、対称鍵を用いて、データを暗号化する。
Ｂ）送信者が、送信者の秘密鍵を用いて、対称鍵を暗号化する。
Ｃ）送信者が、暗号化された対称鍵および暗号化されたデータを受信者に送信する。
Ｄ）受信者が、対称鍵を取得するために、送信者の公開鍵を用いて、暗号化された対称鍵を復号する。
Ｅ）受信者が、データを取得するために、対称鍵を用いて、暗号化されたデータを復号する。
【００２７】
本開示では、以下、データの暗号化または復号において、便宜上、秘密鍵および公開鍵のみについて説明する。しかし、対称鍵も依然として、本発明の意図される範囲内に含まれる。
【００２８】
本発明による幾つかの実施形態において、送信者（この例ではクライアントＡ）によって受信者（この例では管理サーバ２０４）のＩＤを検証するために、対になった秘密鍵および公開鍵、並びに、検証トークンを用いる方法は、以下のように提供される。
Ａ）送信者が、テキスト、グラフィック、サウンド、ボイス、ビデオ、またはそれらの組合せを含む第１の検証トークンを生成する。
Ｂ）送信者が、受信者の公開鍵を用いて、第１の検証トークンを暗号化する。
Ｃ）送信者が、暗号化された第１の検証トークンを受信者に送信する。
Ｄ）受信者が、第１の検証トークンと同一であるはずの第２の検証トークンを取得するために、受信者の秘密鍵を用いて、暗号化された第１の検証トークンを復号する。
Ｅ）受信者が、送信者の公開鍵を用いて、第２の検証トークンを暗号化する。
Ｆ）受信者が、暗号化された第２の検証トークンを送信者に送信する。
Ｇ）送信者が、第２の検証トークンを取得するために、送信者の秘密鍵を用いて、暗号化された第２の検証トークンを復号する。
Ｈ）送信者が、第１の検証トークンに照らし合わせて第２の検証トークンを確認する。第２の検証トークンが第１の検証トークンと同一であれば、受信者のＩＤが検証される。
【００２９】
本発明の幾つかの実施形態によれば、クライアントＡ、管理サーバ２０４、およびログオンサーバ２０６間のログオン処理において、対になった公開鍵および秘密鍵、検証トークン、並びにログオントークンを用いる相互検証の方法は、以下のように提供される。
Ａ）クライアントＡが、検証トークンを生成し、次に、管理サーバ２０４の公開鍵を用いて、クライアントＡのアカウントＩＤおよび検証トークンを暗号化することにより、検証データを生成する。
Ｂ）クライアントＡが、管理サーバ２０４のドメイン名またはＩＰアドレスを用いて、管理サーバ２０４に対する接続を行う。
Ｃ）クライアントＡが、管理サーバ２０４に検証データを送信する。
Ｄ）管理サーバ２０４が、クライアントＡのアカウントＩＤおよび検証トークンを取得するために、管理サーバ２０４の秘密鍵を用いて、検証データを復号する。
Ｅ）管理サーバ２０４が、ログオントークンを生成する。
Ｆ）管理サーバ２０４が、ログオンデータを生成するために、クライアントＡの公開鍵を用いて、検証トークン（リターン検証トークンと称する）、ログオンサーバ２０６のログオンＵＲＬ、およびログオントークンを暗号化する。ＵＲＬは、ＩＰアドレスを用いてログオンするためのウェブページを参照し得る。ログオンＵＲＬの一例は、「https://123.58.8.178/logon.jsp.」であり得る。
Ｇ）管理サーバ２０４が、ログオンデータをクライアントＡに送信する。
Ｈ）クライアントＡが、管理サーバ２０４からのリターン検証トークン、ログオンＵＲＬ、およびログオントークンを識別できるように、クライアントＡの秘密鍵を用いて、ログオンデータを復号する。
Ｉ）クライアントＡが、管理サーバ２０４のＩＤを検証するために、管理サーバ２０４からのリターン検証トークンを、元の検証トークンに照らし合わせて確認する。
Ｊ）管理サーバ２０４のＩＤが検証された場合には、クライアントＡは、管理サーバ２０４との接続を切断し、ウェブブラウザを起動して、ログオンＵＲＬにあるログオンウェブページを開き、ログオンウェブページにログオンするために、クライアントのアカウントＩＤおよびログオントークンを入力する。
【００３０】
更に、管理サーバ２０４を検証する機能は維持しつつ、上記の検証トークンをなくして、この検証処理を簡略化できる。上述の例の工程（Ｆ）〜（Ｈ）は、工程（Ｋ）〜（Ｏ）によって置き換えられる。
Ｋ）管理サーバ２０４が、第１のサーバデータを生成するために、管理サーバ２０４の秘密鍵を用いて、ログオンＵＲＬおよびログオントークンを暗号化する。
Ｌ）管理サーバ２０４が、第２のサーバデータを生成するために、クライアントＡの公開鍵を用いて、第１のサーバデータを暗号化する。
Ｍ）管理サーバ２０４が、第２のサーバデータをクライアントＡに送信する。
Ｎ）クライアントＡが、第１のサーバデータを取得するために、クライアントＡの秘密鍵を用いて、第２のサーバデータを復号する。
Ｏ）クライアントＡが、管理サーバ２０４の公開鍵を用いて、第１のサーバデータを復号し、管理サーバ２０４のＩＤを検証する。これにより、ログオンＵＲＬおよびログオントークンが取得される。
【００３１】
工程（Ｄ）において検証トークンを復号するための管理サーバの秘密鍵を有するのは管理サーバ２０４のみであるので、クライアントＡによる第１のサーバデータの復号が成功すれば、管理サーバ２０４のＩＤが検証される。工程（Ｋ）および（Ｌ）における、管理サーバ２０４の秘密鍵およびクライアントＡの公開鍵を用いた２つの暗号化工程の順序は、互いに交換可能である。また、暗号化の順序が変更された場合には、（Ｎ）および（Ｏ）における復号工程はそれに従って適合される。
【００３２】
クライアントＡが管理サーバ２０４のＩＤを検証する場合には、クライアントＡは、ログオンするためのＵＲＬにあるウェブページを開くために、ウェブブラウザを起動し得る。ＵＲＬは、管理サーバ２０４によって、（例えばＤＮＳのハイジャックまたはＤＮＳ偽装等のドメインネームサーバ（ＤＮＳ）ハッキングがなくなり得るように）ドメイン名ではなくＩＰアドレスを用いて提供され得る。幾つかの実施形態においては、クライアントＡが手動でウェブブラウザを起動してＩＰアドレスを入力する必要がないように、ＵＲＬにあるウェブページを開くためにウェブブラウザを起動することは、ユーザの操作を容易にするために自動処理で実施され得る。
【００３３】
管理サーバ２０４のＩＤを検証した後は、クライアントＡと管理サーバ２０４とは、ウェブページを用いずに、通信プロトコルに基づいて互いに通信し得る。
【００３４】
クライアントＡおよび管理サーバ２０４は、一般的な公開鍵インフラストラクチャ（ＰＫＩ）の下で機能するよう構成される。先に述べたように、ＰＫＩに必須の実現要素は、対になった公開鍵および秘密鍵である。クライアントＡおよび管理サーバ２０４の両方は、それぞれの対になった公開鍵および秘密鍵を有する。対になった鍵のうちの秘密鍵は、対になった鍵の所有者のみが知っており、公開鍵は、通常、公開される。対になった鍵のうちの秘密鍵を用いて暗号化されたデータは、同じ対になった鍵のうちの公開鍵を用いてのみ復号できる。同様に、対になった鍵のうちの公開鍵を用いて暗号化されたデータは、同じ対になった鍵のうちの秘密鍵を用いてのみ復号できる。
【００３５】
図２を参照すると、クライアントＡが、対になった公開鍵および秘密鍵を用いて、管理サーバ２０４とのセキュアなチャネルを確立する場合、クライアントＡは、管理サーバ２０４の公開鍵を用いてデータを暗号化してもよく、暗号化されたデータを管理サーバ２０４に送信する。受信者側では、管理サーバ２０４が、管理サーバ２０４の秘密鍵を用いて、データを復号する。管理サーバ２０４との通信を意図する任意のクライアントが、管理サーバ２０４の公開鍵が利用可能な場合は常に、送信されるデータを簡単な方法で保護するために、この手法を利用できる。同様に、管理サーバ２０４は、クライアントＡの公開鍵を用いてデータを暗号化してもよく、暗号化されたデータをクライアントＡに送信する。次に、クライアントＡが、クライアントＡの秘密鍵を用いて、受信したデータを復号する。その結果、簡単でありながらセキュアな二方向のデータ交換が達成される。
【００３６】
逆に、暗号化用の鍵と復号用の鍵とが同一である既存の対称鍵のメカニズムでは、鍵はセキュアな方法でのみ双方に知らされるべきである。クライアントＡおよび管理サーバ２０４の双方について鍵の機密性を確実にするために、更なる努力が払われるべきである。よって、送信における対称鍵については、意図しない受信者に対して鍵が明かされるリスク、およびそれに対応するメインテナンスコストが比較的高い。しかし、公開鍵インフラストラクチャの下では、関与する当事者の各々、即ち、クライアントＡまたは管理サーバ２０４が、データ送信前またはデータ送信中に、いかなる鍵の情報も交換する必要がない。従って、コストのかかる鍵の管理を行わずに、データの保護が達成される。
【００３７】
図２を参照すると、クライアントＡが管理サーバ２０４にログオンする際、クライアントＡは、ログイン要求として、アカウントＩＤを管理サーバ２０４に提供する。次に、ログイン要求に応答して、管理サーバ２０４は、クライアントＡにパスワードを尋ねる代わりに、第１のトークンを生成してクライアントＡに送信する。幾つかの実施形態では、第１のトークンは、例えばテキスト、音声、およびビデオ等のデータで構成される。幾つかの実施形態では、第１のトークンは、アルファベット、記号、および数字で構成された文字列である。第１のトークンはランダムに生成され、第１の期間にわたって有効である。一実施形態では、高いセキュリティを維持するために、第１の期間は３０分程度と非常に短い。更に、第１のトークンは、クライアントＡの公開鍵によって暗号化される。クライアントＡは、クライアントＡのアカウントＩＤ、および受信したばかりの第１のトークンをユーザ情報として用いて、管理サーバ２０４にログインしなければならない。よって、第１のトークンは、管理サーバ２０４によって、クライアントＡを検証するために生成されて用いられる。
【００３８】
更に、クライアント、およびウェブサイトが本物であることを確実することは、オンライン商取引のためにも等しく重要である。従って、トークンは、ログインするクライアントにとって、訪問したウェブサイトを検証するための別の機能を果たす。図２を参照すると、クライアントＡによって第２のトークンがランダムに生成され、管理サーバ２０４に送信される。更に、第２のトークンは、管理サーバ２０４の公開鍵を用いて暗号化される。次に、管理サーバ２０４は、管理サーバ２０４の秘密鍵によって第２のトークンを復号する。管理サーバ２０４の秘密鍵は、管理サーバ２０４のみが使用可能なので、このように、管理サーバ２０４が本物であることが確実になる。その結果、第１および第２のトークンは、受信者の公開鍵を用いた暗号化によって保護される。受信者以外の何者かには、トークンの有効期間より短い限られた時間内に、暗号化されたトークンを破ることは、たとえ不可能ではなくても、困難であろう。
【００３９】
このトークンに基づくメカニズムの下では、送信者は、受信者の公開鍵を用いてデータを暗号化しなければならない。従って、このトークンに基づくログオンメカニズムにおいては、クライアントＡおよび管理サーバ２０４の公開鍵は容易にアクセス可能である。幾つかの実施形態において、クライアントＡがログオンの要求をサーバに送信する際、クライアントＡは、要求と共にクライアントＡの公開鍵も提供し得る。幾つかの実施形態では、管理サーバ２０４は、管理サーバ２０４の公開鍵をインターネット上で提供する。別の実施形態では、管理サーバ２０４は、クライアントＡがクライアントＡの公開鍵を管理サーバ２０４に提出できるように、アクティブ化コードをクライアントＡに提供する。アクティブ化コードは、クライアントＡの公開鍵の提出の際、管理サーバ２０４によって、クライアントＡのＩＤを検証するために用いられる。
【００４０】
図３は、本発明の幾つかの実施形態による、クライアントとサーバとの間の相互検証の方法を示すフロー図である。
【００４１】
工程３１０において、管理サーバ２０４によって、通信リンク２１０を介して、要求が受信される。この要求は、管理サーバ２０４のアドレスおよびクライアントＡのアカウントＩＤを含む。クライアントＡは、クライアントＡの対になった秘密鍵および公開鍵を生成できる。それに加えて、管理サーバ２０４も、管理サーバ２０４の対になった秘密鍵および公開鍵を生成できる。幾つかの実施形態では、要求は、管理サーバ２０４の公開鍵によって暗号化される。
【００４２】
工程３２０において、管理サーバ２０４によって、検証データが受信される。クライアントＡによって生成された検証データは、第１の検証トークンおよびクライアントＡのアカウントＩＤを含む。第１の検証トークンは、クライアントＡによって、検証データより前に生成され、テキスト、アルファベット、記号、数字、音声、ビデオ、およびそれらの組合せを含み得る。次に、工程３３０において、管理サーバ２０４の秘密鍵を用いて、検証データが復号される。
【００４３】
工程３４０において、復号された検証データから、第１の検証トークンおよびクライアントＡのアカウントＩＤが識別される。第１の検証トークンを識別する試みが失敗し、その後、そのような第１の検証トークンをクライアントＡに返すことができない場合には、クライアントＡが現在通信しているサーバは無効であると見なされる。
【００４４】
工程３５０において、管理サーバ２０４によって、第１のログオントークンが生成される。第１のログオントークンはランダムに生成され、テキスト、アルファベット、記号、数字、音声、ビデオ、およびそれらの組合せを含み得る。更に、第１のログオントークンは、第１の期間にわたって有効であるよう設定される。これは、第１の期間が過ぎると、受信されたログオントークンが元の第１のログオントークンと一致するか否かに関係なく、第１のログオントークンは使われていないと見なされ、無効になることを意味する。
【００４５】
工程３６０において、ログオンメッセージが生成され、このログオンメッセージは、第１のログオントークン、第１の検証トークン、および、必要に応じてログオンサーバ２０６の統一資源位置指定子（ＵＲＬ）を含む。ＵＲＬは、ログオンサーバ２０６のドメイン名またはインターネットプロトコル（ＩＰ）アドレスを含む。ＩＰアドレスのタイプは、固定ＩＰアドレスまたは浮動ＩＰアドレスのいずれかである。ＩＰアドレスは、クライアントＡが、対応するドメイン名の代わりに数値のＩＰアドレスを用いて、サーバ２０６にログオンするのを可能にする。ドメインネームサーバ（ＤＮＳ）は、インターネットノードのドメイン名と数値のＩＰアドレスとの間での解釈のために指定される。ウェブサイトのドメイン名は、ユーザにとってウェブサイトの管理を容易にし得るが、ドメインネームサーバ（ＤＮＳ）は、ハイジャックまたは偽装されやすい傾向がある。例えば、クライアントＢ（図２）が、ハイジャックしたＤＮＳを用いて、ユーザのパケットを傍受し、ユーザを偽のウェブサイトに誘導し得る。従って、クライアントＡとログオンサーバ２０６との間のセキュアな通信を確実にするために、管理サーバ２０４は、クライアントＡに数値のＩＰアドレスを自発的に提供してもよく、または提供することが要求される。
【００４６】
工程３７０において、クライアントＡの公開鍵を用いて、ログオンメッセージが暗号化される。次に、工程３８０において、管理サーバ２０４によって、ログオンメッセージが通信リンク２１０を介してクライアントＡに送信される。
【００４７】
次に、工程３８２において、クライアントＡからの、第２のログオントークンとクライアントＡのアカウントＩＤとを含むログオン要求が受信される。クライアントＡによって、第２のログオントークンが識別され、管理サーバ２０４によって検証されるために用いられる。
【００４８】
工程３８４において、第２のログオントークンが期限切れになったかまたは使用済であるか否かが決定される。肯定された場合には、工程３９０において、管理サーバ２０４によってログオン要求が拒絶される。否定された場合には、工程３９２において、第２のログオントークンが第１のログオントークンと一致するか否かが決定される。第２のログオントークンが第１のログオントークンと一致する場合には、工程３９４において、ログオン要求が許可される。一致しない場合には、第２のログオントークンが無効であると決定される。従って、工程３９０において、ログオン要求は拒絶される。本実施形態では、工程３８４と工程３９２とは互いに交換可能である。
【００４９】
図４は、本発明の幾つかの実施形態による、クライアントとサーバとの間の相互検証の方法を示すフロー図である。
【００５０】
工程４１０において、クライアントＡによって、管理サーバ２０４にログオンするための要求が、通信リンク２１０を介して管理サーバ２０４に送信される。
【００５１】
工程４２０において、クライアントＡによって、第１の検証トークンが生成される。
【００５２】
工程４３０において、第１の検証トークンとクライアントＡのアカウントＩＤとを含む第１の検証データが生成される。
【００５３】
工程４４０において、管理サーバ２０４の公開鍵を用いて、第１の検証データが暗号化される。次に、工程４５０において、暗号化された第１の検証データが管理サーバ２０４に送信される。
【００５４】
工程４６０において、クライアントＡによって、管理サーバ２０４からのログオンメッセージが受信される。管理サーバ２０４によって生成されたログオンメッセージは、ログオントークン、第２の検証トークン、および、必要に応じてログオンサーバ２０６のＵＲＬを含む。第２の検証トークンは管理サーバ２０４によって生成され、これは、管理サーバ２０４による復号が成功すれば、第１の検証トークンと同一であるはずである。工程４７０において、クライアントＡの秘密鍵を用いて、ログオンメッセージが復号される。
【００５５】
工程４８０において、復号されたログオンメッセージ中のログオントークン、第２の検証トークン、および、必要に応じてログオンサーバ２０６のＵＲＬが識別される。ログオントークンは管理サーバ２０４によってランダムに生成される。更に、ログオントークンは第１の期間にわたって有効であるよう設定される。これは、第１の期間が過ぎると、受信されたログオントークンが元のログオントークンと一致するか否かに関係なく、ログオントークンは使われていないと見なされ、無効になることを意味する。
【００５６】
次に、クライアントＡによって、第２の検証トークンが検証される。工程４８２において、第２の検証トークンが期限切れであるか否かが決定される。肯定された場合には、工程４９０において、クライアントＡによってログオン要求が終了される。否定された場合には、工程４８４において、第２の検証トークンが第１の検証トークンと一致するか否かが決定される。肯定された場合には、工程４９２において、アカウントＩＤとログオントークンとを含むログオン要求が、クライアントＡからログオンサーバ２０６に送信される。否定された場合には、工程４９０において、クライアントＡによってログオン要求が終了される。本実施形態では、工程４８２と工程４８４とは互いに交換可能である。
【００５７】
幾つかの実施形態においては、上述の工程で説明したように、クライアントＡが管理サーバ２０４と通信するために、ウェブページが用いられ得る。しかし、管理サーバ２０４のＩＤの検証後は、クライアントＡと管理サーバ２０４とは、ウェブページを用いずに、例えばクライアントＡ上で実行されるソフトウェアに内蔵されたグラフィックユーザインターフェースを用いた、または、単にグラフィックユーザインターフェースを含まない通信プロトコルを用いた、別の形態の通信を用いてよい。
【００５８】
図５は、本発明の幾つかの実施形態による、クライアントとサーバとの間の相互検証の方法を示すフロー図である。図４に示されている実施形態と比較して、図５の方法では、クライアントＡは、管理サーバ２０４のＩＤを検証するためのいかなる検証トークンも生成せず、その代わりに、管理サーバ２０４は、クライアントＡが管理サーバ２０４の公開鍵を用いて管理サーバ２０４のＩＤを検証できるように、管理サーバ２０４の秘密鍵を用いて、ログオンメッセージを暗号化する。
【００５９】
工程５１０において、クライアントＡによって、管理サーバ２０４にログオンするための要求が、通信リンク２１０を介して管理サーバ２０４に送信される。工程５３０において、クライアントＡのアカウントＩＤを含む第１の検証データが生成される。
【００６０】
工程５４０において、管理サーバ２０４の公開鍵を用いて、第１の検証データが暗号化される。次に、工程５５０において、暗号化された第１の検証データが管理サーバ２０４に送信される。
【００６１】
工程５６０において、クライアントＡによって、管理サーバ２０４からのログオンメッセージが受信される。管理サーバ２０４によって生成されたログオンメッセージは、ログオントークン、および、必要に応じてログオンサーバ２０６のＵＲＬを含む。ログオンメッセージのデータのプライバシーを維持するために、ログオンメッセージは、クライアントＡの公開鍵を用いて暗号化される。一実施形態では、ログオンメッセージは、クライアントＡの公開鍵を用いて暗号化される前に、管理サーバ２０４のＩＤを検証するために、管理サーバ２０４の秘密鍵を用いて暗号化される。次に、工程５７０において、クライアントＡの秘密鍵を用いて、ログオンメッセージが復号される。ログオンメッセージが管理サーバ２０４の秘密鍵を用いて暗号化される状況では、ログオンメッセージは更に、管理サーバ２０４の公開鍵を用いて復号される。
【００６２】
工程５８０において、復号されたログオンメッセージから、ログオントークン、および必要に応じてログオンサーバ２０６のＵＲＬが識別される。
【００６３】
工程５９２において、アカウントＩＤおよびログオントークンを含むログオン要求がログオンサーバ２０６に送信される。
【００６４】
本開示において示されるトークンに基づく検証メカニズムは、幾つかの長所を享受する。例えば、ログオントークンは、各回のログオン手順の前に、一時的にランダムに生成される。ログオントークンは、一旦使用されると、または或る期間後に期限切れになると、使われないよう設定され得る。その結果、本発明によるトークンに基づく検証メカニズムは、サーバのデータベースに長期間にわたってパスワードを保存して、パスワードが盗まれやすくなる傾向があるものとは異なる。
【００６５】
また、サーバは、元のログオントークンではなく、ログオントークンのハッシュ値を保持し得る。サーバが、クライアントがログオンするのを待機している非常に短い時間にハッキングされた場合、盗まれたハッシュ値は役に立たない。その結果、悪意のあるログオンが防止される。
【００６６】
更に、クライアントとサーバとの間で転送されるログオントークンを含むデータは、対になった秘密鍵および公開鍵によって、他人に明かされることなく保護される。更に、サーバがクライアントのＩＤを検証するだけでなく、クライアントもサーバのＩＤを検証する。
【００６７】
更に、クライアントは、サーバに最初の接続を行うために、便利なドメイン名を用い得るが、ログオンの前に、クライアントによってサーバのＩＤが検証される。クライアントにログオンＵＲＬが送信される場合には、サーバのＩＤの検証後、クライアントは、ドメイン名ではなくＩＰアドレスを用いて、ログオンのための接続を行い、これにより、例えばＤＮＳのハイジャック、ＤＮＳ偽装等のハッキングの可能性が回避される。
【００６８】
上記は、当業者が本開示の態様をより良好に理解し得るよう、幾つかの実施形態の特徴の概要を述べたものである。当業者には、本明細書において紹介した実施形態と同じ目的を実施するため、および／または、同じ長所を達成するために、他の処理および構造を設計または変形するための基礎として、本開示が容易に用いられ得ることがわかるはずである。また、当業者は、そのような等価の構成が、本開示の趣旨および範囲から逸脱しないこと、並びに本開示の趣旨および範囲から逸脱せずに、本明細書における様々な変更、置き換え、および改変が行われ得ることを認識するはずである。
【符号の説明】
【００６９】
２００  クライアント−サーバシステム
２０４  管理サーバ
２０６  ログオンサーバ
２１０  通信リンク
Ａ  クライアント
【図１】
2017521934.tif 000003
【図２】
2017521934.tif 000004
【図３】
2017521934.tif 000005
【図４】
2017521934.tif 000006
【図５】
2017521934.tif 000007
【国際調査報告】
2017521934.tif 000008