説明

インターネットユーザに対して認証サービスを提供するための方法およびシステム

公衆ネットワークを介して、クライアント、サーバおよびディレクトリサービスの間で伝達される情報を認証し、暗号化し、そして復号化するためのシステムおよび方法である。クライアントからアプリケーションによってセッションマスタ鍵を取得する方法は、セッションマスタ鍵のためのオープンリクエストをサーバに送信することと、セッションマスタ鍵の第2の部分を取得可能なディレクトリサーバを識別するセッションマスタ鍵の第1の部分と共に、サーバから第1の応答をアプリケーションによって受信することとを含む。アプリケーションは、セッションマスタ鍵の第2の部分のために、第1の応答でサーバによって指定されたディレクトリサーバにオープンリクエストを送信し、ディレクトリサーバからそれを受信する。セッションマスタ鍵は、セッションマスタ鍵の第1の部分および第2の部分を用いて、アプリケーションによって生成される。

【発明の詳細な説明】
【技術分野】
【0001】
(関連出願)
本出願は、同一発明者によって2006年9月6日に出願された、米国仮出願第60/842,595号の利益を主張するものである。
【0002】
(発明の分野)
本発明は、概して、インターネットトラフィックをウェブサイトに発生させて、ウェブサイトのための広告収入を提供するためのシステムおよび方法に関し、特に、ブラウザとサーバとの両方に対してサービスを提供するウェブサイトに、インターネットトラフィックを発生させるためのシステムおよび方法に関する。
【背景技術】
【0003】
(発明の背景)
インターネットウェブサイトの1つの収益モデルとして、ウェブサイトにトラフィックを発生させ、次にウェブサイト上での広告について広告主に料金を課すということがある。このモデルの真の秘訣は、広告主がウェブサイトに広告を出すことが魅力的に思える、十分なトラフィックを発生させるということである。加えて、ウェブサイトが発生させるトラフィックが多くなるほど、ウェブサイト運営者が広告主に課すことのできる料金は高くなる。
【0004】
公衆ネットワークのセキュリティは大きく進歩したが、全く軽視されている一局面がある。それは、公開精査(public scrutiny)である。公衆ネットワークにおいては、公開アーキテクチャ内に非公開のセキュアなチャネルの作成手順が、明確に定義されている。この手順には、信頼できるサードパーティによって、一意の二者間に仲介される信頼の提供(provision of trust)が含まれる。この信頼の提供のための技術および方法は、交換された情報の数学的定式(mathematic formulation)に完全に依存する。こうした方法は、現在、干渉が困難であると考えられている一方で、情報の提供を公的にチェックできる、というコンセプトが完全に欠けている。
【0005】
電子的な「警察官」の「バッジ番号をチェック」して、それを示してくれる簡単かつ公的な方法は存在しない。また、電子的な交換情報を提供する信頼できるサードパーティを精査するか、または彼らがプロバイダになった時の条件を精査する方法は存在しない。基本的に、接続のセキュリティおよびプライバシーが作成時と同様であることを確認する、数学的な情報表現(mathematic information presentation)を検証および承認するためにリアルタイムで使用可能な、公的に実証可能な方法または技術が存在していない。
【発明の概要】
【発明が解決しようとする課題】
【0006】
従って、本発明は、ウェブサイトに十分なトラフィックを発生させ、インターネットで利用可能な認証の実施を改善するための方法および装置を開発する問題に向けられる。
【課題を解決するための手段】
【0007】
(発明の概要)
本発明は、新規の信頼モデル内の新規の数学的な交換技術および信頼できる仲介者(intermediary)がサーバおよびブラウザの間で暗号鍵のセキュアな認証および伝達ができるようにするための方法を提供することにより、これらの問題およびその他の問題を解決する。
【0008】
一局面によると、本発明は、数的な認証および暗号鍵のセキュアな交換ならびに任意の添付されたメッセージコンテンツの認証された暗号化のためのシステムおよび方法に関する。本方法の例示的な実施形態は、ネットワークのソケットレイヤに応用されており、セキュアソケットレイヤ(SSL)およびトランスポートレイヤセキュリティ(TLS)技術と一般に呼ばれるものの改良である。本発明者は、この新たな本発明の方法を、拡張セキュアソケットレイヤ(SSLX)と称し、この方法は、シングルパスハンドシェイクの配信や、伝送毎のセッション鍵の生成および使用よりも数百倍も高速である。
【0009】
パフォーマンスの向上により、信頼できるサードパーティは、ネットワーク関係者への初期の認証情報の提供者としてだけでなく、セッション毎の関係者の間の新しい認証および暗号鍵情報のリアルタイムの提供者としても機能することが可能になっている。これにより、サードパーティ信頼の提供は、静的で長年変わっていない初期の認証情報およびその数学的表現に依存することから、現在SSL/TLSによって提供されているように、関係者が接続の間に任意の時点で信頼のあるトークンをリアルタイムに承認し得るように、完全に再編成されている。公開精査は、グローバルな社会の要であり、電子的世界におけるその欠如は、新たな可能性の開拓への閉塞的な障害となっている。
【0010】
本発明の一局面によると、コンピュータ上で実行しているアプリケーションによって、サーバからネットワークを介してセッションマスタ鍵を取得するための方法の例示的な実施形態は、セッションマスタ鍵のために、アプリケーションによってサーバにオープンリクエストを送信することと、セッションマスタ鍵の第1の部分と共に、サーバから第1の応答をアプリケーションによって受信することとを含む。第1の応答は、セッションマスタ鍵の第2の部分を取得可能なディレクトリサーバを識別する。アプリケーションは、セッションマスタ鍵の第2の部分のために、第1の応答でサーバによって指定されたディレクトリサーバにオープンリクエストを送信し、ディレクトリサーバからセッションマスタ鍵の第2の部分を受信する。アプリケーションからサーバへのオープンリクエストは、公開鍵を含み得、この場合には、サーバからアプリケーションへの第1の応答は、公開鍵によって暗号化されたセッションマスタ鍵の第1の部分を含む。アプリケーションからディレクトリサーバへのオープンリクエストはまた、公開鍵を含み得、この場合には、ディレクトリサーバから受信したセッションマスタ鍵の第2の部分は、公開鍵によって暗号化される。アプリケーションからディレクトリサーバへのオープンリクエストは、(i)ディレクトリサーバからアプリケーションによって取得された、アプリケーションのディレクトリサーバ鍵を用いて、SSLX−EA交換においてセッションマスタ鍵の第2の部分をラップすることか、または(ii)アプリケーションによってオープンリクエストでディレクトリサーバに提供される公開鍵を用いて、セッションマスタ鍵の第2の部分を暗号化することのいずれかを行う指示を含み得る。アプリケーションは、サーバから受信したセッションマスタ鍵の第1の部分と、ディレクトリサーバから受信したセッションマスタ鍵の第2の部分とを用いて、セッションマスタ鍵を生成する。サーバは、サーバによってディレクトリサーバから取得されたサーバのディレクトリサーバ鍵を用いて、SSLX−EA交換においてラップされたセッションマスタ鍵の第2の部分と共に、第2の応答をディレクトリサーバに送信する。セッションマスタ鍵を用いて、SSLX−EA交換においてラップされたメッセージは、アプリケーションからサーバに送信され、サーバからアプリケーションへのメッセージもまた、セッションマスタ鍵を用いて、SSLX−EA交換においてラップされる。サーバのディレクトリサーバ鍵は、ディレクトリサーバとの検証されたセットアップ動作の間にサーバによって取得することができる。同様に、アプリケーションのディレクトリサーバ鍵は、ディレクトリサーバとの検証されたセットアップ動作の間にアプリケーションによって取得され得る。アプリケーションからサーバへのオープンリクエストは、アプリケーションが検証プロセスを実行した1つ以上のディレクトリサーバのリストを含み得る。同様に、サーバからアプリケーションへの第1の応答もまた、サーバが検証プロセスを実行した1つ以上のディレクトリサーバのリストを含み得る。
【0011】
本発明の別の局面によると、ネットワークを介してサーバからコンピュータ上で実行しているアプリケーションにセッションマスタ鍵を伝送するための方法の例示的な実施形態は、セッションマスタ鍵のために、サーバによってアプリケーションからオープンリクエストを受信することと、セッションマスタ鍵の第1の部分と共に、第1の応答をアプリケーションに送信することと、サーバによってディレクトリサーバから取得されたサーバのディレクトリサーバ鍵を用いて、SSLX−EA交換においてラップされたセッションマスタ鍵の第2の部分と共に、第2の応答をディレクトリサーバに送信することとを含む。アプリケーションは、セッションマスタ鍵の第2の部分のために、第1の応答でサーバによって指定されたディレクトリサーバにオープンリクエストを送信する。ディレクトリサーバは、セッションマスタ鍵の第2の部分をアプリケーションに送信する。サーバから受信した第1の部分と、ディレクトリサーバから受信した第2の部分とを用いて、セッションマスタ鍵がアプリケーションによって生成される。アプリケーションからサーバへのオープンリクエストは、アプリケーションが検証プロセスを実行した1つ以上のディレクトリサーバのリストを含み得る。サーバからアプリケーションへの第1の応答もまた、サーバが検証プロセスを実行した1つ以上のディレクトリサーバのリストを含み得る。アプリケーションからサーバによって受信されたオープンリクエストは、公開鍵を含み得、その場合には、サーバからアプリケーションに送信された第1の応答は、公開鍵によって暗号化されるセッションマスタ鍵の第1の部分を含む。アプリケーションによってディレクトリサーバに送信されるオープンリクエストは、公開鍵を含み得、その場合には、ディレクトリサーバからアプリケーションに送信されるセッションマスタ鍵の第2の部分は、公開鍵によって暗号化される。アプリケーションによってディレクトリサーバに送信されるオープンリクエストは、(i)ディレクトリサーバからアプリケーションによって取得されたアプリケーションのディレクトリサーバ鍵を用いて、SSLX−EA交換におけるセッションマスタ鍵の第2の部分をラップすることか、または(ii)アプリケーションによってオープンリクエストでディレクトリサーバに提供される公開鍵を用いて、セッションマスタ鍵の第2の部分を暗号化することのいずれかを行う指示を含み得る。サーバからアプリケーションへのメッセージは、セッションマスタ鍵を用いて、SSLX−EA交換においてラップされて送信され、アプリケーションから受信されるメッセージは、セッションマスタ鍵を用いて、SSLX−EA交換でラップされる。サーバのディレクトリサーバ鍵は、ディレクトリサーバとの検証されたセットアップ動作の間に、サーバによって取得される。アプリケーションのディレクトリサーバ鍵は、ディレクトリサーバとの検証されたセットアップ動作の間に、アプリケーションによって取得される。
【0012】
本発明のさらに別の局面によると、ネットワーク上のコンピュータを検証する方法の例示的な実施形態は、ディレクトリサービス鍵のために、コンピュータからのリクエストが、認証リクエストの値を含むオープンリクエストをディレクトリサービスによって受信することと、認証リクエスト値が公開鍵オプションを指示する場合には、コンピュータによって送信されるオープンリクエストに含まれる公開鍵を用いて暗号化されるディレクトリサービス鍵と共に、単一の応答をディレクトリサービスによって送信することと、認証リクエスト値が帯域外(out−of−band)通信経路オプションを指示する場合には、コンピュータからリクエストで指定された帯域外通信経路を介して、ディレクトリサービス鍵を含む単一のメッセージをディレクトリサービスによって送信することと、認証リクエスト値が、公開鍵と帯域外通信経路オプションとの両方の組み合わせを指示する場合には、ディレクトリサービス鍵の第1の部分と共に、第1の応答をディレクトリサービスによってコンピュータに送り返し、ディレクトリサービス鍵の第2の部分と共に、第2の応答をコンピュータからリクエストで指定された帯域外通信経路を介して送信することとを含む。単一のメッセージは、コンピュータからディレクトリサービスへのリクエストに含まれた公開鍵を用いて暗号化されるディレクトリサービス鍵を含む。第2の応答は、コンピュータからディレクトリサービスへのリクエストに含まれた公開鍵を用いて暗号化されるディレクトリサービス鍵を含む。ディレクトリサーバによって、コンピュータから確認メッセージが受信され、ディレクトリサービス鍵を用いて、SSLX−EA交換において確認メッセージがラップされる。
【0013】
本発明のさらに別の局面によると、セキュアな通信で利用するために信頼できるサードパーティから信頼できる鍵を取得するための方法の例示的な実施形態は、リクエストが認証リクエスト値を含み、該認証リクエスト値が、信頼できる鍵のために配信オプションを指示するオープンリクエストを、信頼できる鍵のために信頼できるサードパーティに送信することと、認証リクエスト値の指示に基づき、1つ以上の通信経路を介して信頼できるサードパーティから信頼できる鍵を受信することと、信頼できる鍵を用いて、SSLX−EA交換においてラップされた確認メッセージを信頼できるサードパーティに送信することとを含む。このプロセスの最初において、公開および非公開の鍵の対が作成される。オープンリクエストに公開鍵を含め得、この場合には、該1つ以上の通信経路上で信頼できる鍵を送信する際に、信頼できる鍵を暗号化するために公開鍵が用いられる。認証リクエスト値が公開鍵オプションを指示する場合には、信頼できるサードパーティは、オープンリクエストにおいて信頼できるサードパーティに送信された公開鍵を用いてラップされた信頼できる鍵と共に、単一の応答を送信する。認証リクエスト値が帯域外通信経路オプションを指示する場合には、信頼できるサードパーティは、認証リクエスト値に指定されたアドレスに対して、帯域外通信経路を介して送信された信頼できる鍵と共に、単一の応答を送信する。認証リクエスト値が公開鍵と帯域外通信経路との両方の組み合わせを指示する場合には、信頼できるサードパーティは、公開鍵を用いて暗号化された信頼できる鍵の第1の部分と共に第1の応答を送信し、そして信頼できる鍵の第2の部分と共に第2の応答を、認証リクエストに指定された帯域外通信経路およびアドレスを介して送信する。信頼できるサードパーティは確認メッセージを復号化する。確認メッセージが正しく復号化されない場合には、信頼できるサードパーティは、公開鍵によって暗号化された拒否メッセージを送信し、この拒否メッセージはコンピュータによって復号化され、信頼できるサードパーティが検証されたセットアップリストから削除される。信頼できる鍵を受信した後、コンピュータは、1つ以上の関連付けられた信頼できる鍵と共に、コンピュータが信頼できる鍵を受信した全ての信頼できるサードパーティのリストを維持し、認証プロセスの間に別のコンピュータと情報交換する際に、該別のコンピュータへのメッセージにこのリストを含める。
【0014】
本発明のさらに別の局面によると、ネットワーク上でセキュアに通信するコンピュータ間において信頼できる仲介者の役割をするための装置の例示的な実施形態は、サーバと、任意の特定のディレクトリメンバーとセキュアに通信するための関連する情報を格納するために、サーバに連結されたデータベースとを含む。この関連する情報は、各特定のディレクトリメンバーに関連付けられたディレクトリサービス鍵を含む。また、公知の静的IPアドレスがサーバに関連付けられる。サーバ上でアプリケーションが実行される。サーバは、ブラウザからウェブサーバにリアルタイムリクエストを経路指定し、ウェブサーバからブラウザに応答を経路指定する。リクエストおよび応答は、リクエスト実行者がサーバとの検証されたセットアップを実行した場合には、リクエスト実行者が生成した公開鍵またはSSLX−EA交換の信頼できる鍵によって保障される。応答のそれぞれは、リクエスト実行者が組み合わせ、該応答のそれぞれとウェブ接続された場所とが同一であることを検証するための情報の一部分だけを含む。情報の残りの部分は、情報の残りの部分を暗号化するために、リクエスト実行者が生成した公開鍵を用いて、ウェブサイトからリクエスト実行者に直接提供される。
【0015】
本発明のこれらおよびその他の特徴および利点は、添付の図面に示されるように、以下のその例示的な実施形態の記載から、より明らかとなる。
【図面の簡単な説明】
【0016】
【図1】図1は、本発明の一局面に従った、SSLXコンポーネントを有するコンピュータネットワークの図である。
【図2】図2は、本発明の別の局面に従った、ディレクトリサービス(DS)からの、サードパート信頼を仲介された後の通常のSSLXの信頼できる通信の図である。
【図3】図3は、本発明のさらに別の局面に従った、SSLX認証ハンドシェイクの図である。
【図4】図4は、本発明のさらに別の局面に従った、検証されたセットアップ(VSU)の図である。
【図5】図5は、SSLセッションフローである。
【図6】図6は、本発明のさらに別の局面に従った、SSLXセッションフローである。
【図7】図7は、新しいセッションのためのSSLハンドシェイクフローである。
【図8】図8は、本発明の別の局面に従った、新しいセッションのためのSSLXハンドシェイクフローである。
【図9】図9は、再開されたセッションのためのSSLハンドシェイクフローである。
【図10】図10は、本発明のさらに別の局面に従った、新しいセッションのためのSSLXハンドシェイクフローである。
【発明を実施するための形態】
【0017】
(詳細な説明)
本発明は、異なるコンピュータで実行されるアプリケーションプログラムの間で非公開の通信を確実にするための、コンピュータで読み取り可能および利用可能な媒体で具現化される、新規のプロセスおよび関連するコンピュータプログラムを含む。特定のアプリケーションは、実施例としてのみ説明される。本発明は、示されている実施形態および実施例のみに制限されることを意図したものではなく、本明細書で開示されている原理および特徴と矛盾しないもっとも広い範囲が認められるべきである。
【0018】
本発明について記載する前に、共有鍵を使用した単純な復号化は、それだけで、認証を実行するのではないということに留意されたい。これは、(鍵スペースにおける強硬な手段を含む任意の手段によって)共有された鍵が見つかった場合に、鍵の知識により、その時点から各メッセージを復号化することができると共に、不正なメッセージを暗号化することによって鍵の所有者になりすますことができるという事実によるものである。SSLは任意のセッションの開始時における1回の認証しか行わないために、この復号化は単純であり脆弱である。
【0019】
本発明は、暗号化プロセスにおいてSSLX−EAと呼ばれる埋め込み認証を提供し、帯域外で提供される認証された共有鍵を用いて開始される。こうして、単純な復号化に鍵を使用する(その脆弱性を有する)代わりに、SSLX−EAは、共有鍵を復号化のために直接使用するのではなく、一方向のプロセスを通じて、各メッセージで一意のメッセージ鍵を生成するために使用するので、適切に復号化を行うための能力を確率的な認証として使用する。万一、敵がメッセージ鍵の1つを発見し、単一のメッセージを適切に復号化したとしても、これによって、その次のメッセージを復号化したり、送信者になりすまして適切なSSLX−EA出力を生成したりすることができるわけではない。SSLX−EAは、乱数(R)およびメッセージ鍵(W)を知っているからといって、用いられているアルファベット(A)または元の共有された鍵(K1)が分かるようになっていないために、元の共有鍵(K1)の不可侵性を認証の印として保持するのである。さらに、任意のメッセージ鍵(W)を知っているからといって、次のまたは任意の未来のメッセージ鍵(W)が分かるわけではない。SSLX−EAは、各通信に高速の認証メカニズムを追加することによって、SSLに存在する単純な復号化の脆弱性を補っている。
【0020】
本明細書中で用いられるように、アプリケーションは、任意のソフトウェアプログラムまたはオペレーションシステムとすることができる。それに加えて、ウェブサーバまたはサーバは、ネットワーク上の別のデバイスまたはアプリケーションと通信することができる、ネットワークに接続される任意のデバイスとすることができる。
【0021】
埋め込み認証およびデータ暗号のプロセスとしてのSSLXは、通信ネットワークの任意のレベルに配置してもよい。これはウェブブラウザおよびウェブサーバに配置されるアプリケーションレイヤで動作し、OS、ルータまたは任意のネットワークスイッチデバイスに配置した場合には、セッション、トランスポートおよびネットワークレイヤにある間、常に同様に動作できる。
【0022】
高速、低消費電力および小さいコードサイズの特徴により、SSLXは、任意のセンサまたはその他のリモートネットワーク通信プラットフォームと同様に、ワイヤレスアーキテクチャ(音声およびデータ)で動作することができる。SSLXは、通信アーキテクチャから独立したプロトコルであり、ネットワーク関係者がセキュアな、非公開のメッセージングを必要とする任意の場所で動作することができる。
【0023】
(A.ワールドワイドウェブブラウザ−サーバモデル)
SSLXは、ワールドワイドウェブのアーキテクチャで、認証されたセキュアな通信を提供するために利用可能である。配置後、SSLXは、ウェブサーバおよびソフトウェアウェブブラウザアプリケーション内のソフトウェアコンポーネントとして動作してもよい。別のソフトウェアアプリケーションがサードパーティに常駐しており、これにより、信頼を仲介し、ブラウザおよびサーバの間のセキュアなチャネルを提供する、評判の高い、独立した公開パーティが構成される。このサードパーティは、ディレクトリサービス(DS)と呼ばれる。
【0024】
後で示すように、ディレクトリサービスは、2つの異なる方法で動作可能である。公衆が利用可能なオープンエンティティ、または非公開のサーバとウェブブラウザの非公開のコミュニティとの間の信頼を仲介するために動作する非公開のエンティティとして動作可能である。非公開のサーバとウェブブラウザの非公開の通信との間の信頼を仲介するよう動作する非公開のエンティティは、非公開のディレクトリサービスと呼ばれる。SSLXのウェブの実施例の最後のものは、SSPX公開アドミニストレータ(PA)であり、これは公開ディレクトリサービスを管理する責任を有する別の公的機関であり、PAは、3つのその他のパーティの間の電子的なメカニズムを仲介するいずれの部分も提供することはない。
【0025】
全てのパーティは図1で示されるように、信頼の輪10を提供するように協力して動作する。ウェブブラウザ11、サーバ12、公開ディレクトリサービス13、SSLX公開アドミニストレータ14および非公開のディレクトリサービス15は全て、以下により詳細に記載されるように、信頼の輪10を実装および動作させるように協力して動作する。
【0026】
(通常のSSLX動作(信頼できる))
ブラウザおよびサーバの両方がSSLX−EA(埋め込み認証)セッションマスタ鍵(SMK)を共有する場合に、SSLXの通常の通信フローが用いられる。以下にSSLX−EAについて説明する。ブラウザは、2つの方法のうちの1つによってSMKを取得し、その2つの方法とは、
1.SSLX認証ハンドシェイクの実行、または
2.サーバ所有者にエンドユーザ認証を課し、ブラウザ所有者が鍵をブラウザアプリケーションに入力する一方で、サーバはこの特定のブラウザに関連付けられた鍵を作成および保存する、帯域外プロセスの実行
である。
【0027】
(通常の動作)
図2を参照すると、ウェブブラウザ21が各GETおよびPOST要求を、SSLX−EA交換(T−BRl)23でラップされたウェブサーバ22に送信すると、通常の動作20が実行される。本明細書で用いられているように、「SSLX−EA交換でのラップ」は、リクエストを暗号化するためにメッセージ鍵を使用することを意味し、メッセージ鍵は、サーバへの暗号化されたリクエストと共に含まれる乱数と組み合わされたセッションマスタ鍵(SMK)から生成される。このSSLX−EA技術の細かい詳細を以下に記載する。このプロセスは、さらに、ワンパス鍵生成確率認証(one pass key generation probabilistic authentication)プロセスであるとも呼ばれる。要するに、ブラウザ21は、これの暗号化と共に、あらゆるGETおよびPOSTリクエストを認証する。ウェブサーバ22は、SSLX−EA交換(T−WS2)24でラップされるコンテンツを有する同じ公知のSMKを用いて応答する。ブラウザと同様に、サーバは、伝送されるコンテンツの暗号化と共に、ブラウザへのあらゆる応答を認証する。ウェブブラウザ21は、次に、応答コンテンツをアンラップし、これをユーザ(T−BR3)25に表示する。
【0028】
あらゆる交換は、一意に暗号化および配信することができるか、または各ラウンドトリップ(リクエストおよび応答を含む)を一意に暗号化することができる。SSLX−EAセッション長を定義するサーバ上の設定が提供される。ウェブアーキテクチャにおけるSSLXセッション長のための設定の例示的な実施形態は、そのページ上の全てのオブジェクトのリクエストおよび応答を含むために、各ページが一意のSMK交換およびメッセージ鍵を有するように1つのHTMLページを含む。
【0029】
各セッションにおいて、SSLX通信トラフィックは非常に単純である。ウェブブラウザ21は、(セッションが開始する場合)SSLX−EA鍵交換および暗号文または(セッション内の場合)暗号文のみにおける各リクエストをラップし、これを信頼できるウェブサーバ22に送信する。サーバ22は、SSLX−EA鍵交換をアンラップしてリクエストを復号化するか、リクエストを単に復号化して、コンテンツを取得するためにリクエストを処理し、次に、セッション鍵を用いてSSLX−EA鍵交換(セッション長が各通信で設定されている場合)または暗号文の応答をラップし、これをブラウザ21に戻す。ブラウザ21は、次に、コンテンツをアンラップし、SSLX−EA鍵交換の復号化または暗号の復号化のみを実行し、これを処理する。SSLXは、暗号文を暗号化および復号化するために、任意の標準的な電子的暗号を利用する。
【0030】
(SSLX認証ハンドシェイク(AH))
SSLX認証ハンドシェイクのプロセスは、サーバのみが、開始するべきSSLX−EA鍵を有している場合に用いられる。SSLX認証ハンドシェイクは、取り扱いに注意の必要な/非公開/セキュアな情報が交換され、かつ、サーファ(surfer)に対し、接続するウェブサイトは、実際に、情報の意図された受信者であることの証拠が示される場合の、匿名のウェブサーファ接続開始時におけるウェブサイトページへの動作である。これは、ブラウザおよびサーバの間のセキュアな通信の初期設定(initialization)である。
【0031】
認証ハンドシェイクは、サーバが、所望のサーバであるかどうかのチェックを含む。これを実行するための論理的な方法は、2つのみ存在し、
1.以前の知識、または
2.サードパーティ、好適には、信頼できるサードパーティに問い合わせること
の2つである。
【0032】
第1の方法は、以前の関係を示唆するものである。すなわち、これは、両者が以前の遭遇(帯域外の鍵の確立)を通して証拠を提供する、信頼できる動作モードである。
【0033】
ディレクトリサービス/サーバ(DS)と呼ばれるものによって、「サードパーティに尋ねること」のサードパーティのSSLX実装が行われる。SSLX DSは、任意の特定のディレクトリメンバーと(セキュアに)通信するために関連情報を保持する、公開された、公知のエンティティとして機能する。ウェブインフラストラクチャ内のSSLX DSは、リアルタイムのリクエストおよび応答をルート指定するために単純なSSLXアプリケーションおよびデータベースを動作させる、公知の静的IPアドレスを有する。リクエストは、ブラウザが検証されたセットアップ(VSU)を実行した場合には、リクエスト実行者が生成した公開鍵、あるいは、DS SSLX−EA鍵で保護されている。応答は同様に保護されており、リクエスト実行者が、結合し、応答およびウェブ接続された位置が1つであり、同じであることを検証するために、必要な情報の半分となっている。情報の別の半分は、リクエスト実行者が生成した公開鍵においてウェブサイトからリクエスト実行者へ直接提供される。
【0034】
オープン公開(open public)DS(における信頼)の保証は、以下の、
・ DS位置の帯域外検証を行うことができることと、
・ リアルタイムのなりすまし/ブラウザへ、またはブラウザからのサイト位置およびDS位置の両方の操作を行うことは困難であり、検証されたサーバセットアッププロセスを最初に「壊す」ことが必要(成し遂げるためには、内部の信頼できる人間の悪意が必要)であることと、
・ DSに提供される情報は、事前登録したSSLXサーバだけから提供され得る。DSによって提供された情報は、事前登録された脆弱でない(SSLX−EA)または登録されていない脆弱性が最小限の方法(公開鍵)で、セキュアに配信できることと、
・ 通信情報全体を同化することのできる唯一の場所は、リクエスト実行者である。DSは、リクエスト実行者、またはサイトのリクエストについての情報は保存しないことと、
・ 特定のサイトコンテンツをチェックすることによって、さらなる信頼のアクティビティが実行可能となるまでセッション情報が交換されないように、任意のセキュリティ要件をともなわずに、あるページ位置でDS接続性を実行することができることと
に基づいている。
【0035】
これらの全てによって、サーバ/ウェブサイトに関与する任意のSSLXを認証するために、匿名のウェブサーファのための堅牢でセキュアな手段を形成する。
【0036】
ディレクトリサービス/サーバ(DS)は、SSL/TLSの認証機関(Certificate Authority;CA)よりも、よりスケーラブルで排他性の低い、異なる方法で実装されるサードパーティ信頼の重要なコンポーネントである。これらはさらに、登録およびレポジトリの「機関」とは反対に、ただ信頼できるスイッチであるにすぎない、より基本的で形式性の低い機能を形成する。DSネットワークとは、セキュリティオフィスの保存に類似したCAの階層的なオーソリティネットワークではなく、その特定の建物およびメンバーについて誰もが知っている一連の情報デスクのようなものである。ID交換における電子商取引の信頼は、ウェブサイトに表示されているように、特定の建物の三階のリアルストアから物を買うということの検証にすぎないため、セキュリティオフィサーを探しにいくよりも、インフォメーションデスクで相談にのってくれる係員に尋ねるほうがずっと容易であり、また有効である。
【0037】
SSLXのDSネットワークには、DSオペレータの相互接続性は必要ではない。DSが信頼できる方法で動作していることを確かめるために、外部の信頼できるSSLX公開アドミニストレータ(PA)が存在する。PAとは、
・ ワールドワイド公開ディレクトリサービスのガバナンスを提供する、評判の高い、独立したサードパーティであり、
・ DSのための動作ライセンスを割り当て、DSの公開保証(public assurance)が検証可能であるように、コントロールを維持し、
・ DSのために標準のクオリティコントロールおよび準拠基準を提供し、そして
・ ユーザのためにDSの検証を行う、DS検索の機関
である。
【0038】
DSの目的は、ウェブサーバを検証することである。認証ハンドシェイクにおけるその存在の直接の結果は、DSのネットワークが切り替えられ、次に、エンドユーザに対して複数のセキュリティレベルが可能になるということである。公知および未知のDSとの異なる通信手段を取り扱うために、AHのリストアップされたオプションが含められる。これにより、SSLXは、異なるセキュリティレベルを提供することができる。AHオプションによって提供される最も低いレベルのセキュリティに関連付けられるリスクでさえも、明確に定義および制限されている。最も高いレベルのリスクは存在しないに等しく、脆弱性のみのバックアップとして帯域外オプションがある。
【0039】
レベルは、エンドユーザのブラウザの観点から、3つの異なる利用モデルに基づく。サーバは、常に、少なくとも1つのディレクトリサービスの検証されたセットアップに関連することになるため、常時、最も高いレベルで実行可能である。より多くのおよび複数のDSによるセットアップにおけるアクティブなサーバ管理によって、サーバは、エンドユーザによってサーバがDSを通して応答する方法が選択できるので、ブラウザとより完全に関与し、ブラウザのセキュリティ期待度(設定)を下げないようにすることが可能になる。
【0040】
全てのサーバは、少なくとも1つの検証されたセットアップを実行しなければならないため、最低でも1つの公開DSが存在する必要がある。いずれかのアーキテクチャに1つしかない場合には、DSは、共通ディレクトリサービス(CDS)と呼ばれる。
【0041】
SSLXセキュリティレベルとは、
1.高−共通する少なくとも1つにより、種々のディレクトリサービスのために、サーバとブラウザの両方が一度のみの検証されたセットアップを実行する。そして、
2.中−中程度のセキュリティには、2つの考えられる状況があり、
a.サーバが検証されていない特定のDSを利用するようにブラウザが依頼されたため、サーバのDSは、ブラウザ公開鍵通信と共に用いられるか、または、
b.ブラウザは任意のDSで検証されていないが、このレベルに設定されているため、公開鍵を用いて任意の特定のDSと通信する。そして、
低−ブラウザおよびサーバは、公開鍵(マンインザミドル(MITM)攻撃に対して弱い)を用いて、任意のDS仲介なしで直接通信する。(このレベルのセキュリティは通常のハウスロックのセキュリティと似ており、不法侵入は稀であるが起きることもある)
である。
【0042】
非公開のDSは、検証されたセットアップ(VSU)を実行するようエンドユーザが勧められている場合に確立可能であり、これらは、PAのリストを持たない。これらのために、ウェブコンテンツ所有者は、いずれ分散する情報のみが、任意の通信のために高セキュリティレベルを使用することを提供しており、この場合には、サーバは、非公開のDSと共にVSUを実行していない任意のブラウザへ応答しないよう設定される。
【0043】
(動作)
図3を参照し、次に、認証ハンドシェイク30について説明する。認証ハンドシェイク(AH)30は、ウェブブラウザ31が最初に公開および非公開鍵ペアを作成し、信頼できるSSLX−EAセッションマスタ鍵(SMK)が公開鍵(A−BR1)33でラップされるよう、ウェブサーバ32にオープンリクエストを送信する場合に実行される。リクエスト33は、以下のうちのいずれか、およびどのエレメントを実行するかを決定する認証リクエスト値を有する。ウェブサーバ32は、このブラウザのSMKを生成した後で2回の応答を行う。1回は、ブラウザの送信された公開鍵(A−WS2)34を用いてラップされるSMKの前半と共に、ブラウザに対して直接、返され、もう1回は、ウェブサーバのDS鍵(検証されたセットアップ時に受信)(A−WS3)35を用いてラップされるSMKの後半と共に、DS39へ返される。ブラウザ31は、次に、ブラウザのDS鍵(検証されたセットアップ中に受信された場合)でラップされるSMKのもう半分のためにウェブサーバ32によって指定されたディレクトリサービス(サーバ)(DS)39へオープンリクエストを、または公開鍵(ブラウザがこのDSで検証されていない場合には、またはブラウザがDSで検証されておらず、これがデフォルトでサーバのDSである場合)(A−BR4)36を送信する。DS39は、ブラウザのDSまたは公開鍵(A−DS5)37を使って、ブラウザ31へSMKの後半を再びリレーする。ブラウザ31は、通常の動作(信頼できる)(A−BR6)38を用いて、ウェブサーバ32によって、セキュアな通信を開始するようにSMKを復号化する。
【0044】
プロセスを高速化し(つまり、サーバとブラウザの間の通常の通信時において、DS39では暗号化または復号化は行われないが、当然ながら、SMKの一部分の交換時において暗号化/復号化が実行される)、DS39は、実際のSMKのそのリレーされた半分を「認識」していないことをサーバ所有者およびブラウザ所有者に保証する、という両方のために、DS39を通じたSMKのスイッチベースのリレーが行われる。交換を保存し復号化を実行することは可能であるが、これが行われたとしても、それは鍵の半分にすぎず、無価値である。交換を保存しないことを示すためには、任意の動作DS39が必要となる。
【0045】
AH30においてセキュリティレベルオプションが選択される方法は、次の通りである。初期のブラウザリクエストにおいて、セキュリティ設定によって、ブラウザがVSUを実行したDSのリストは、応答のために公開鍵と共にサーバに送信される。設定が高の場合には、ブラウザは、VSU DSのそのリストを送信し、設定が中の場合には、(存在する場合)リストまたは空白リストを送信する。設定が低の場合には、ブラウザはフラグを設定し、サーバに対して、DSを用いて完全に破棄し、認証の応答全体を戻すよう送信するように指示する。サーバがリストを受信すると、VSUを実行した場所のリストにおいてそれが有するものを選択し、または、ブラウザリストが空白の場合には、サーバは、そのDSの使用をデフォルトにする。フラグがセキュリティレベル低に設定される場合には、サーバは、ブラウザに対して完全に、直接応答する。
【0046】
中または高の設定の場合には、サーバは、そのDSリストがブラウザDSリストにあるもののいずれかと一致しない場合には、そのDSをデフォルトにする。サーバがブラウザに応答する準備ができているため、まず、このAHのためにDS IDを生成する。次に、サーバは(ブラウザ公開鍵を用いて)ブラウザに応答し、セッションマスタ鍵(SMK)の関連する前半と共に、この伝送のDS IDと同様に選択としてDSを含める。サーバはさらに、SMKの後半と共にそのDS鍵を用いてDSに応答し、サーバは、常に、最低でも、CDSに対してDS鍵を有するため、サーバからDSへの応答は、常に、SSLX−EAで暗号化される。
【0047】
ブラウザがサーバ応答を受信すると、これは、公開鍵で暗号化されたコンテンツをアンラップする。低の設定において、ブラウザは全てのコンテンツを処理し、SMKは共有されており、ブラウザおよびサーバは通常の動作の準備ができている。中または高の設定の場合には、応答には、サーバで選択したDSが含まれる。このDSがブラウザの予期したものではなく(リストになく)、ブラウザのセキュリティレベルが高に設定されている場合には、警告が表示される。リストにない場合には、DSへのリクエストおよび応答は、ブラウザのDS SSLX−EA鍵(高および中の場合)を使用する。設定が中である場合および(送信されたリストにないかまたはリストが存在しないので)DSがリストにない場合には、ブラウザは、DSリクエストおよび応答の通信のために、その公開鍵を使用する。
【0048】
セキュリティ設定およびそれによるオプションの概要を示す表を、以下の表1に示す。
【0049】
【表1】

認証ハンドシェイクと、ウェブサーバとブラウザとの間のブラウザのSMKの対称認識の後、通常動作が全てのコンテンツリクエストおよび応答を処理する。
【0050】
(検証されたサーバ(オプションのブラウザ)セットアップ)
検証されたセットアップの目的は、2つのパーティ間の公知の関連を確立することである。SSLXにおいて、これは、サーバとDSとの間、または、ブラウザとDSとの間である。少なくとも、各サーバは、少なくとも1つのディレクトリサービス/サーバ(DS)と共に検証されたセットアップ(VSU)を実行する必要がある。これにより、上述したようにエンドユーザが中となるように関与しなくても、SSLXシステムの最低限のセキュリティが確立される。少なくとも1つのDSへのVSUにおけるオプションのブラウザの関与によって、高のセキュリティで通信する能力が確立される。
【0051】
電子通信における2つのパーティの初期の信頼性を検証するためには、明らかに、ある種類の人的なやりとりを有することが最適である。SSLXでは3つの手段が提供されており、1つは最小限の人的なやりとりを、2つ目は自動のプロセスを必要とする。VSUの全体の起動力(entire impetus)は、検証という行為である。いずれのSSLX方法においても、電話、メールまたはサーバ所有者およびDSオペレータの間のさらなる個人的な相互のやりとり等の、ここで説明したもの以外のいくつかのその他の帯域外の方法で「二重にチェック」することにより、さらに信頼性を検証するための機会は常に存在する。
【0052】
3つのSSLXの方法は、
1.SSLX−EA鍵のサーバ(またはブラウザ)とDSとの間の公開鍵の交換(低)、
2.SSLX−EA鍵の電子メールの交換(中)、および
3.SSLX−EA鍵の2つの半分の公開鍵交換および電子メールの組み合わせ(高)
である。
【0053】
SSLXサーバおよびブラウザの動作コードは、自動的でない場合には、人による対話的動作(カットアンドペースト、鍵のタイプによる入力等)で、これらの方法のいずれかを処理するために設定される。電子メールおよび公開鍵の対話的動作の両方がマンインザミドル(MITM)攻撃を受けやすいと言われているが、個別に使用するにせよ、共に使用するにせよ、検証されたセットアップについて留意すべき最も重要な点は、任意の種類の任意のSSLXトラフィックの前に、セットアップの信頼性に関してさらなる帯域外チェックを実行可能であるということである。セキュリティシステムに対し積極的関心を有するこうしたウェブサイトおよびその顧客の認知および期待は、そのセットアップをチェックするある種の帯域外スポットを一般的に使用すると仮定される。
【0054】
(動作)
図4を参照し、以下に、ブラウザ41とサーバの両方の検証されたセットアップ40の標準的な動作を説明する。サーバ(またはブラウザ)41は、まず、公開および非公開鍵の対を作成し、信頼できるSSLX−EA DS鍵(DSK)が公開鍵(V−WSB1)43でラップされるように、ディレクトリサービス42にオープンリクエストを送信する。リクエストは、以下のいずれか、およびどのエレメントが実行されるかを決定する認証リクエスト(AR)値を有し、
・ AR値が公開鍵オプションのものである場合には、DSは、送信された公開鍵(V−DS2)44を用いてラップされたDSK全体と共に、単一の応答のみを行い、
・ AR値が電子メールオプションのものである場合には、DSは、AR(V−DS2)44で指定される電子メールアドレスへ、電子メールで送信されるDSK全体と共に、単一の応答を行い、
・ AR値が公開鍵と電子メールの両方の組み合わせのものである場合には、DSは、このサーバまたはブラウザのためにDSKを生成した後で2回の応答を行う。1回は、送信した公開鍵(V−DS2)44を用いてラップされたDSKの前半と共に、サーバ/ブラウザへ直接再び応答し、もう1回は、前半(V−DS3)45によってオフセットされるDSKの後半と共に、ARで指定される電子メールアドレスへ、電子メールによって応答する。
【0055】
サーバまたはブラウザ41によって、DSKの最大2つの半分の入力が可能になり、VSU DSのリストにDS DSKが保存される。また、検証セットアップを完結させるために、確認TCPメッセージが、新しいDSK(V−WSB4)46でラップされて、DS42に送信される。DS42は、確認メッセージ(V−WSB5)47を復号化するために、DSKを使用する。これが確認されず、送信された値が計算された値と等しくない場合には、DS42は、公開鍵(V−DS6)48でラップされた「拒否された」メッセージを、ブラウザまたはサーバ41に返信する。ブラウザまたはサーバ41は、次に、拒否メッセージを復号化し、ユーザに通知を送信し、VSUリスト(V−DS7)49からDSを削除する。
【0056】
検証されたセットアップの後、サーバおよびブラウザの両方は、関連付けられたDSKと共にDSのリストを維持し、SSLXでサポートされるウェブサイトにおける認証リクエストにこれらを含む。
【0057】
上記の実施形態は、1つのパスによってDSKの前半を、その他のパスによって後半を伝送することを示しているが、本発明は正確な半分を2通りで送信することに制限されているわけではなく、前半を1つのパスで、後半を別のパスで送信してもよいが、両方の合計がDSKの全体と等しい限り、各部分のサイズは異なってもよい。それに加えて、必要以上の部分を送信してもよい。さらに、3つ以上のパスを利用可能であり、この場合には、DSKの複数部分を複数のパス上に送信可能である。さらに、SMS、インスタントメッセージング、通常の郵便の手紙、速達、手渡しの配達、電話による通話等、任意の通信パスを利用可能である。
【0058】
(SSLXの相互作用の詳細)
以下は、各SSLX動作モードおよびプロセスの設計仕様である。
【0059】
(通常の動作(信頼できる))
● ブラウザSSLX−EAのセッションマスタ鍵(SMK)−認証ハンドシェイクから取得された場合。
【0060】
○ OpenID(このサーバにおけるこのセッションの一意の識別子)との関連付け。
【0061】
● ブラウザSSLX−EA SMK−特定のドメインへのセキュアなアクセスのためにデータ所有者から取得される場合。
【0062】
○ 信頼できるサーバ所有者への帯域外認証されたプロセスによって取得(例:関連する認証情報(社員番号等)を有するアドミニストレータおよび鍵および永続的なOpenIDによって電子メールに応答するアドミニストレータへ、電子メールを送信する社員等)。
【0063】
・ 認証および承認された各ユーザのために、サーバはK1値を無作為に作成。
【0064】
・ サーバの鍵配信センター(KDC)における割り当てられたOpenIDと共に、K1値を保存する。
【0065】
・ K1、OpenIDおよびドメインが、所望の帯域外の方法においてブラウザ所有者へ返される。
【0066】
○ ブラウザに挿入。
【0067】
・ 追加するメニューオプション
・ 追加/編集フォーム
□ カットアンドペーストまたは鍵の入力およびOpenIDおよびドメイン
□ PINプロテクトのオプション(クッキーの最初の桁における0/1の入力またはいくつかの方法)
○ PINの入力、PINの再入力
○ MOD16(PIN、鍵)
○ テキストファイル内に保存(クッキー−形式のTBD)
● セッション長
○ セッション長を定義するためのサーバ設定
・ 0(デフォルト)=1つのHTMLページ
・ 1=リクエスト毎
・ 2=リクエスト/応答ラウンドトリップ毎
・ 3=最初のページ(サーバへの初期のリクエスト)
・ 4=5リクエスト毎
・ 5=10リクエスト毎
・ 6=nリクエスト毎
● HTTPX://ウェブアドレスの、GET/POSTのブラウザリクエスト(ブラウザ、図2、ステップ1、T−BRl)
○ SSLX−EA SMKおよびOpenIDの取得
・ 保存されたブラウザSMKの検索
・ 鍵が存在する場合には、PINが保護されているか(クッキーの最初の桁が1=Yes、0=No)
□ Yesの場合には、PINを入力するフォーム
○ PIN入力の際に、鍵ファイルを開き、鍵およびMOD16D(PIN、鍵で暗号化された)を読み込み、結果をメモリに読み込む
□ Noの場合には、鍵ファイルを開き、鍵をメモリに読み込む
・ 鍵が存在しない場合には、認証ハンドシェイクを実行し、生成されたSMKを利用する
○ リクエストテキストを取得
○ SSLX−EAセッションの開始の場合
・ SSLX−EAを実行
・ サーバへHTTPXのSSLX−EA出力を送信
○ SSLX−EAセッション内でない場合
・ リクエスト平文上のセッションSSLX−EAメッセージ鍵を用いて、暗号の暗号化を実行
・ OpenID、HTTPXの暗号文をサーバに送信
● HTTPXの応答(サーバ、図2、ステップ2、T−WS2)
○ リクエストOpenIDに基づいてブラウザのSMKを取得
・ 認証ハンドシェイク中に生成された場合には、ローカルメモリ/近傍エリアに保存される
・ OpenIDが認証ハンドシェイクで生成されなかった場合には、これは、ファイルベースのKDCのファイル検索、またはDB KDCのデータベース検索のいずれかである
○ SSLX−EAセッションの開始の場合には、
・ SSLX−EA復号化の実行
・ 復号化されたブラウザリクエストを処理し、リクエストされたコンテンツの取得
・ コンテンツが平文である場合には、SSLX−EA暗号化を実行
・ HTTPXのSSLX−EA出力をブラウザに返信
○ SSLX−EAセッション内でない場合
・ SSLX−EAメッセージ鍵を用いて暗号の復号化を実行
・ 復号化されたブラウザリクエストを処理し、リクエストされたコンテンツを取得
・ コンテンツ上でSSLX−EAメッセージ鍵を使用した、暗号の暗号化の実行
・ ブラウザへのOpenID、HTTPXの暗号文の送信
● コンテンツのブラウザ受信(ブラウザ、図2、ステップ3、T−BR3)
○ これが新たに開始されたSSLX−EAセッション(セッション長=1)の受信である場合
・ SSLX−EA復号化を実行
○ SSLX−EAセッション(セッション長<>1)内でない場合
・ 現在のSSLX−EAメッセージ鍵を用いて、暗号の復号化を実行
○ 復号化されたサーバコンテンツを処理し、HTMLテキスト/グラフィック/データを取得
○ ブラウザにおけるHTMLの処理、ユーザへの表示
●鍵の更新(永続的な信頼できるモードのための、ブラウザおよびサーバのバージョン、非AH動作)
○ SSLXは、HTTPの処理状態を把握していないこと(statelessness)を活用するためのものであるため、各セッションは、KDCからの鍵の再取得を必要とするが、この動作条件は、サーバ上に不必要な負荷(遅延)を生じさせる可能性がある。このため、サーバは、OpenIDのおよびそれらの関連付けられた一連のSSLX−EA鍵をメモリに保持するよう構成することができる。さらに、アプリケーションがクローズする際に、またはアドレスバーがサーバメモリから鍵をリリースするためにサーバのドメイン外にリクエストする際に、ブラウザからサーバに送信される「ログアウト」または「セッション終了」のメッセージが存在することがある。
【0068】
○ SSLXは、静的鍵によってSSLX−EAの方法を使用するため、一定の間隔でK1を更新するためにセキュリティモデルに関連している。
【0069】
・ K1の更新のためにサーバの構成設定と等しい測定基準(metric)に達すると(例:多数のメッセージ、ランダムな時間値等)、新しいK1を平文として使用し、鍵更新の交換を実行する
・ サーバおよびブラウザの両方が、新しいK1値を有していることを確認するまでこの値を保持し、次に、(選択する場合には、PINを用いて)ブラウザで鍵を更新し、サーバKDCを更新する
(認証ハンドシェイク(AH))
AHの場合には、最初の関連する項目はブラウザ構成である。上述したように、ブラウザは、そのSSLX接続のセキュリティレベルを設定可能である。セキュリティ設定と共に、ユーザが設定可能な2つのその他の構成項目があり、
● ハンドシェイク全体を送信するために好適な特定のDSを使用するオプションと、
● サーバが設定に適合できない(例:同じディレクトリサービスを認識していない)ため、所望のセキュリティレベルを下げることを認めるオプションと
である。
【0070】
表2に、ユーザが選択可能な、考えられる設定の組み合わせの全てのリストを示す。
【0071】
【表2】

高が選択されている場合には、ブラウザユーザは、設定を保持するためにDS VSUを実行するよう求められる(まだ実行していない場合)。
【0072】
● ウェブサーバへのブラウザ起動(ブラウザ、図3、ステップ1、A−BRl)
○ その方法による、公開/非公開鍵の対の作成
・ 公開/非公開鍵ペア生成の最短/最速/最もセキュアな方法の選択、および鍵ペアの生成(Elliptic Curve Cryptography−ECC、最も可能性の高い選択)
・ 最高のセキュリティの実施のために、AHによって生成−保存/再利用しない
・ HTTPX://呼び出しにおけるウェブサーバへの認証リクエスト(AR)の送信
・ セキュリティ設定フラグコード、オプションの公開鍵、オプションのVSU DSリスト(DS名、DS IPアドレス等)をウェブサーバに送信(セキュリティ設定フラグコードはブラウザ設定の設定であり、ブラウザセットアップ上で最初に中(#3)のデフォルトに設定)
○ セキュリティ設定フラグ(SSF)コードの設定
● 0(高)=鍵の半分が、BRへ、検証されたセットアップ(VSU)DSによって送信される
○ VSUリスト(おそらくCDSを含み、少なくとも1つを有する)、OpenID、DS ID、公開鍵が含まれる
● 1(高)=DSのみ。鍵全体がVSU DSによって送信される(#3まで低くなった場合に公開鍵が含まれる、事前登録されたDS鍵が特定のVSUに存在する)
○ 少なくとも1つのDS、OpenID、DS ID、公開鍵が含まれるリスト
● 2(中)=DSのみ。鍵全体がDSによって送信される(オプションのVSU DSリストまたはDSリストのみ、またはリストなし)
○ オプションのVSU DSリスト、OpenID、公開鍵が含まれる、DS ID
● 3(中)=(デフォルト)、鍵の半分がBRへ、DSによって送信される
○ 公開鍵が含まれる。オプションのVSU DSリスト、またはDSリストのみ、またはリストなし)、OpenID、DS ID
● 4(低)= BRのみ。鍵全体がブラウザに再び送信される(DSなし)
○ 公開鍵が含まれる、OpenID
○ OpenIDは、(このAHおよびブラウザの実施例のための)このブラウザを識別する16桁のランダムな16進数の数
○ DS IDは、DSDS IPに存在し、応答されるリクエストIDを識別する32桁のランダムな16進数の数であり、ブラウザのディレクトリサービス(VSU)の1つの公開IPアドレスである。
【0073】
○ ドメイン名は、公開HTTPの名称である。例えば、「www.sslnext.com」
● ウェブサーバは、AR、SSFに基づくブラウザに応答する(サーバ、図3、ステップ2、A−WS2)
○ SSF=0の場合
・ ブラウザSMK(K1、256ビット)を生成
・ ブラウザリストから一致するVSUを選択、DS鍵(DSK)を取得
● 一致しない場合には、SSLXエラー#「VSUの一致がありません。オプションを低くしない場合には、高のセキュリティを処理できません。コード0」で応答(公開鍵を用いてラップ)
○ ブラウザのエラーメッセージによって、現在の設定でこのサーバに接続したい場合には、構成オプションを参照し変更するよう指示される
○ DS情報(DS IP)のログテキストファイル入力の生成(ファイルが存在しない場合には、作成し、存在する場合には付け加える)
・ 公開鍵(公開鍵暗号方法)でラップされたSMKの前半(32桁、128ビット)、DS IP、ドメイン名による応答
・ DS DSKを使用し、ブラウザのOpenID、DS IDおよびSMKの後半を送信して、選択したDSへステップ3を実行
○ SSF=1の場合
・ ブラウザSMKの生成
・ ブラウザからのVSU DSの選択、DS鍵(DSK)の取得
● 一致しない場合には、(セキュリティレベルの低下は認められないため)フラグSSF設定が「3」であると仮定して応答し、以下の作業を続ける
○ DS情報(DS IP)のログテキストファイル入力の生成(ファイルが存在しない場合には、作成し、存在する場合には、付け加える)
・ 公開鍵においてラップしたDS IP、ドメイン名で応答(そのため、ブラウザは、どのDSが選択されたかを認識している)
・ DS DSKを使用し、ブラウザのOpenID、DS IDおよびSMK全体を送信して、特定のDSへステップ3を実行
○ SSF=2の場合
・ ブラウザSMKの生成
・ (リストの場合)ブラウザリストから一致するVSU DSまたは(リストの場合)任意のDSを選択するか、リストがない場合にはCDSを使用し、DS鍵(DSK)を取得する(少なくともCDS DSKとなる)
● CDSの最も低い共通の基準(denominator)を使用できるため、エラーとはならない
● サーバのVSUリストにはない、DS情報(DS IP)のログテキストファイル入力を生成(ファイルがない場合には、生成し、存在する場合には付け加える)
・ 公開鍵でラップされたDS IP、ドメイン名で応答
・ DS DSKを使用し、ブラウザのOpenID、DS IDおよびSMK全体を送信して、選択したDSにステップ3を実行する
○ SSF=3(デフォルト)の場合
・ ブラウザSMKの生成
・ (リストの場合)ブラウザリストから一致するVSU DSまたは(リストの場合)任意のDSを選択するか、リストがない場合にはCDSを使用し、DS鍵(DSK)を取得する(少なくともCDS DSKとなる)
● CDSの最も低い共通の基準(denominator)を使用可能であるため、エラーとはならない
● サーバのVSUリストにない、DS情報(DS IP)のログテキストファイル入力(ファイルがない場合には、作成し、存在する場合には、付け加える)を生成
・ 公開鍵でラップされたSMKの前半(32桁、128ビット)、DS IP、ドメイン名で応答
・ DS DSKを使用し、ブラウザのOpenID、DS IDおよびSMKの後半を送信して、選択したDSにステップ3を実行
○ SSF=4の場合
・ ブラウザSMKを生成
・ 公開鍵でラップされたブラウザへ、SMK全体、ドメインIPアドレス、ドメイン名を再び送信するステップ5を実行
● [オプション]ディレクトリサービス/サーバ(サーバ、図3、ステップ3、A−WS3)に対するサーバ応答
○ サーバは検証されたセットアップを実行して、少なくともCDSとなったはずであるため、DS鍵(DSK)が存在する
○ このステップは、(SSFのリターンから)パラメータとしてのDS IDおよびDS IP、少なくともCDSと共に呼び出される
・ SSF=0の場合
● OpenID、DS IDおよびSMKの後半を送信
・ DSKを用いてSSLX−EA鍵交換を実行、新しいメッセージ鍵を作成
・ ブラウザのOpenID、DS ID、およびSMKの後半を暗号化するために、AESでメッセージ鍵を使用
・ DSにおいてDSのIPw/WSのOpenIDにSSLX−EA出力(RおよびW1)を、およびSMKの暗号文、DS IDを応答
・ SSF=1の場合
● OpenID、DS IDおよびSMK全体を送信
・ DSKを用いてSSLX−EA鍵交換を実行、新しいメッセージ鍵を作成
・ ブラウザのOpenID、DS ID、およびSMK全体を暗号化するために、AESでメッセージ鍵を使用
・ SSLX−EA出力と共にDSのIP、ブラウザのOpenIDおよびSMKの暗号文、DS IDを応答
・ SSF=2の場合
● OpenID、DS IDおよびSMK全体を送信
・ DSKを用いてSSLX−EA鍵交換を実行、新しいメッセージ鍵を作成
・ ブラウザのOpenID、DS ID、およびSMK全体を暗号化するために、AESでメッセージ鍵を使用
・ SSLX−EA出力と共にDSのIP、ブラウザのOpenIDおよびSMKの暗号文、DS IDを応答
・ SSF=3の場合
● OpenID、DS IDおよびSMKの後半を送信
・ DSKを用いてSSLX−EA鍵交換を実行、新しいメッセージ鍵を作成
・ ブラウザのOpenID、DS ID、およびSMKの後半を暗号化するために、AESでメッセージ鍵を使用
・ SSLX−EA出力と共にDSのIP、ブラウザのOpenIDおよびSMKの暗号文、DS IDへ応答
・ SSF=4の場合には、このステップを省略
● [オプション]ディレクトリサービス/サーバへのブラウザリクエスト(ブラウザ、図3、ステップ4、A−BR4)
○ ブラウザが検証されたセットアップを終了し、DS DSKを有している、またはDSは、応答のためにブラウザの公開鍵が付与される
○ このステップは、パラメータとして、(SSFリターンから)DS IDおよびDS IP、または少なくとも、CDSと共に呼び出される
・ SSF=0の場合
● OpenID、DS IDを暗号化する指定されたDS IPへ、DSKを使用し、SMKの後半、ドメイン名、IPアドレスを求めて、DSリクエスト(DSR)を送信
・ SSF=1の場合
● OpenIDおよびDS IDが暗号化されている場合には、DSKを使用し、SMK全体、ドメイン名、IPアドレスを求めて、指定されたDS IPにDSRを送信
・ SSF=2の場合
● (リストが存在した場合およびDSKが存在する場合)DSKを用いて、OpenID、DS IDを暗号化し、SMK全体、ドメイン名、IPアドレスを求めて、指定されたDS IPにDSRを送信
・ DSKがない場合には、指定されたDS IPにDSRを送信し、ここでOpenID、DS IDおよび公開鍵がオープンに送信され、SMK全体、ドメイン名およびIPアドレスがリクエストされる
・ SSF=3の場合
● (リストが存在した場合およびDSKが存在する場合)DSKを用いて、OpenID、DS IDを暗号化し、SMKの後半、ドメイン名、IPアドレスを求めて、指定されたDS IPにDSRを送信
・ DSKがない場合には、DSRを指定したDS IPに送信し、ここでOpenID、DS IDおよび公開鍵がオープンに送信され、SMKの後半、ドメイン名およびIPアドレスがリクエストされる
・ SSF=4の場合には、このステップを省略
● [オプション]ブラウザ(DS、図3、ステップ5、A−DS5)に対するディレクトリサービス/サーバ応答
○ SSF =4の場合には、このステップは実行されない
○ ブラウザが、応答のためにDSKまたは公開鍵を用いて、DSリクエスト(DSR)を送信した
・ DSKを用いてDSRが送信された場合には、OpenIDが存在する
● このブラウザの正しいDSKを取得するためにOpenIDを使用
● DS IDが提供されている場合には、このブラウザセッションの正しいSMKを得るためにこれを使用し、提供されていない場合には、正しいSMKを得るためにOpenIDを使用する
● DSKを用いてSSLX−EA鍵交換を実行し、メッセージ鍵を現す。生成されたW1と共に送信されたW1をチェック。一致の場合には継続する(その他の場合は、エラー)
● リクエストを示すためにAES復号化でメッセージ鍵を使用(ブラウザを認証)
・ SSF=0の場合
○ AESメッセージ鍵がブラウザリクエストから既に公知
○ SMKの後半、ドメイン名およびIPアドレスの暗号化にメッセージ鍵を使用
○ SSLX−EA出力、暗号文によって、ブラウザのIPに応答
・ SSF=1の場合
○ AESメッセージ鍵がブラウザリクエストから既に公知
○ SMK全体、ドメイン名およびIPアドレスにメッセージ鍵暗号化を使用
○ SSLX−EA出力、暗号文によって、ブラウザのIPへ応答
・ SSF=2の場合
○ AESメッセージ鍵がブラウザリクエストから既に公知
○ メッセージ鍵暗号化をSMK全体、ドメイン名およびIPアドレスに使用
○ SSLX−EA出力、暗号文によって、ブラウザのIPに応答
・ SSF=3の場合
○ AESメッセージ鍵がブラウザリクエストから既に公知
○SMKの後半、ドメイン名およびIPアドレスにメッセージ鍵暗号化を使用
○ SSLX−EA出力、暗号文によって、ブラウザのIPへ応答
・ ブラウザの公開鍵を用いてDSRが送信された場合には、DS ID(およびOpenID)が存在する
● このブラウザセッションの正しいSMKを取得するためにDS IDを使用
・ SSF=2の場合
○ 公開鍵がブラウザリクエストから既に公知
○ SMK全体、ドメイン名およびIPアドレスを暗号化するために、公開鍵を使用
○ 暗号文出力によって、ブラウザのIPに応答
・ SSF=3の場合
○ 公開鍵がブラウザリクエストから既に公知
○ SMK後半、ドメイン名およびIPアドレスを暗号化するために公開鍵を使用
○ 暗号文出力による、ブラウザのIPへの応答
● コンテンツのブラウザ復号化(ブラウザ、図3、ステップ6、A−BR5)
○ SSF=0の場合
・ AESメッセージ鍵が保存されているため、SMK後半、ドメイン名およびIPアドレスを示すためにこれを使用
・ サーバからのドメイン名/IPアドレスを、DSからのドメイン名に対してチェックし、同じ場合には、継続し、その他の場合には、停止してユーザに警告!
・ SMKの前半および後半を結合させ、全体を完成させる
・ 通常の動作でSMKを使用
○ SSF=1の場合
・ AESメッセージ鍵が保存されているため、SMK、ドメイン名およびIPアドレスを示すためにこれを使用
・ サーバからのドメイン名/IPアドレスを、DSからのドメイン名に対してチェックし、同じ状況が続く場合には、停止してユーザに警告!
・ 通常の動作でSMKを使用
○ SSF=2の場合
・ DSRがDSKを用いて送信される場合
● AESメッセージ鍵が保存されるため、SMK、ドメイン名およびIPアドレスを示すためにこれを使用
・ 公開鍵を用いてDSRが送信されたのでない場合
● SMK全体、ドメイン名およびIPアドレスを示すために、公開鍵を用いて復号化を実行
・ サーバからのドメイン名を、DSからのドメイン名に対してチェックし、同じ状況が続く場合には、停止してユーザに警告!
・ 通常の動作でSMKを使用
○ SSF=3の場合
・ DSKを用いてDSRが送信される場合
● AESメッセージ鍵が保存されるため、SMK、ドメイン名およびIPアドレスを示すためにこれを使用
・ 公開鍵を用いてDSRが送信されたのではない場合
● SMK全体、ドメイン名およびIPアドレスを示すために、公開鍵を用いて復号化を実行
・ サーバからのドメイン名/IPアドレスを、DSからのドメイン名に対してチェックし、同じ状況が続く場合には、停止してユーザに警告!
・ SMKの前半および後半を結合させ、全体を完成させる
・ 通常の動作でSMKを使用
○ SSF=4の場合
・ サーバ応答が公開鍵を用いて送信される
● SMK全体、ドメイン名を示すために、公開鍵を用いて復号化を実行
● サーバからのドメイン名を、アドレスバーのドメインに対してチェックし、同じ状況が続く場合には、停止してユーザに警告
● 通常の動作でSMKを使用
(検証されたサーバ(オプションのブラウザ)セットアップ(VSU))
● ブラウザでは、ディレクトリサービス/サーバへ、メニューオプション上のVSUを起動する(ブラウザ、図4、ステップ1、V−WSB1)
● サーバの場合には、アプレット/拡張の実行時にVSUを起動する(サーバ、図4、ステップ1、V−WSB1)
● 残りのフロー(全てのステップ)は、ブラウザおよびサーバの両方のためのものであり、記載において詳細に説明する
○ 方法による公開/非公開鍵ペアの作成
・ 公開/非公開鍵ペア生成の最短/最速/最もセキュアな方法を選択し、鍵ペアを生成(Elliptic Curve Cryptography−ECC、最も可能性の高い選択肢)
・ 最高のセキュリティ実施のために、VSUによって生成し、保存/再利用しない
○ TCP呼び出しにおけるVSUリクエスト(VSUR)のDSへの送信
・ DSフラグコード、ドメイン名(サーバのみ)、オプションの公開鍵、オプションの電子メールアドレスをDSに送信
・ ブラウザ:DSフラグコードはブラウザ設定の設定である。最初、ブラウザセットアップで高(#0)、デフォルトに設定する。ブラウザにはドメイン名は不要
・ サーバ:唯一の動作方法は高であり、少なくとも、CDSと接続するためにサーバの最初の開始の際にVSUが実行される。ドメイン名は必要である。
【0074】
● DSフラグ(DSF)コードの設定
・ 0(高)=電子メールおよびDSによって送信された鍵の半分
□ 公開鍵、電子メールアドレス、ドメイン名が含まれる
・ 1(中)=電子メールのみ−鍵全体が電子メールによって送信
□ 電子メールアドレス、ドメイン名が含まれる
・ 2(低)=DSのみ−鍵全体がDSによって送信(電子メールなし)
□ 公開鍵、ドメイン名が含まれる
● 電子メールアドレスは公開POPアドレス
● ブラウザまたはサーバへのディレクトリサービス/サーバの応答(DS、図4、ステップ2、V−DS2)
○ DSF=1の場合には、このステップは実行されない
○ ブラウザまたはサーバは、応答のために公開鍵を用いて、VSURを送信した
・ エンティティのためにOpenID、DSKを生成(ブラウザまたはサーバ)
● DSF=0の場合
・ 公開鍵でラップされた、DSKの前半(32桁、128ビット)、OpenIDで応答
・ 公開鍵を使用し、DSKオフセットの後半を(MOD16で暗号化された)前半によって送信し、電子メールアドレスへステップ3を実行
● DSF=2の場合
・ 公開鍵でラップされた、DSK全体、OpenIDで応答
● ブラウザまたはサーバへのディレクトリサービス/サーバの応答(DS、図4、ステップ3、V−DS3)
○ DSF=2の場合には、このステップは実行されない
○ ブラウザまたはサーバが応答のために電子メールアドレスを用いて、VSURを送信した
・ エンティティ(ブラウザまたはサーバ)のためにOpenID、DSKを生成(ステップ2で既に行われているのではない場合)
● DSF=0の場合
・ 前半と共に暗号化されたDSK Mod16の後半(32桁、128ビット)、OpenIDによって、電子メールアドレスへ応答
● DSF=1の場合
・ 電子メールアドレスへ、メッセージにおいてDSK全体、OpenIDと共に応答
● 応答および確認のブラウザ/サーバの復号化(ブラウザ/サーバ、図4、ステップ4、V−WSB4)
○ DSF=0の場合
・ DSKの前半を示すために、公開鍵を用いて復号化を実行
・ DSKの後半を示すために、電子メールメッセージを開く
・ 鍵入力のためにアプレットを開く
● 両方の半分、およびOpenIDを、アプレットフィールドに入力(OpenID、DSKの前半、DSKの後半、DSK全体の入力のためのフォームであり、フォームの表示の際、DSF方法に適用可能なもののみ表示(前半および後半がアクティブになるか、DSK全体がアクティブになる)
● 「プラグイン鍵」のボタンをクリックする(またはいくつかの該当する、関連UIテキスト)
・ アプレットが後半を取り、適切な後半が示されるように前半を用いてMOD16Dを実行する
・ DSKの前半および後半を結合させ、全体を完成させる
・ 使用のため挿入(クッキー、ファイル、データベース内にDSK、OpenIDを保存−方法?これらは、AHのリスト送信のためのVSU DS)
○ DSF=1の場合
・ 指定された電子メールメールボックスで電子メールメッセージを開く
・ 鍵入力のためにアプレットを開く
● DSK全体およびOpenIDをアプレットフィールドに入力(カットアンドペーストを利用可能)
● 「プラグイン鍵」のボタンをクリックする(またはいくつかのUIの文字)
● アプレットが、使用のため挿入される(クッキー、ファイル、データベース内にDSK、OpenIDを保存−方法?これらは、AHのリスト送信のためのVSU DSである)
○ DSF=2の場合
・ DSK全体を示すために、公開鍵を用いて復号化を実行
・ 鍵入力のためのアプレットを開く
● 両方の半分、およびOpenIDを、アプレットフィールドに入力(OpenID、DSKの前半、DSKの後半、DSK全体の入力のためのフォームであり、フォームの表示の際、DSF方法に適用可能なもののみ表示(前半および後半がアクティブになるか、DSK全体がアクティブになる)
● 「プラグイン鍵」のボタンをクリックする(またはいくつかの該当する、関連UIの文字)
・ アプレットが後半を取り、適切な後半が示されるように前半を用いてMOD16Dを実行する
・DSKの前半および後半の結合により、全体が完成
・ 使用のために挿入(クッキー、ファイル、データベースにDSK、OpenIDを保存−方法?これらは、AHのリスト送信ではVSU DS)
○ 確認メッセージによって、TCPでDSに応答
・ DSKを用いてSSLX−EA鍵交換を実行し、メッセージ鍵を取得
・ 確認メッセージを暗号化するために、AESでメッセージ鍵を使用
● メッセージ形式:「[OpenID] DS VSUが準備完了!」
・ SSLX−EA出力(OpenID、R)および暗号文をDSに送信
● 確認メッセージのDS復号化(DS、図4、ステップ5、V−WSB5)
○ 全てのDSF値(0、1、2)
・ DSK(送信されたOpenIDによって表示される)を用いてSSLX−EA鍵交換を実行、メッセージ鍵を示す
・ 確認を復号化するためにAESでメッセージ鍵を使用
・ メッセージのOpenIDがヘッダーのOpenIDと一致する場合には、確認
● 一致しない場合には、拒否メッセージを送信し、拒否された場合にはブラウザ/サーバのみが受信
● Yesの場合には、ドメイン名、IPアドレス、OpenID、DSK、電子メールアドレスを保存
● [オプション]DS拒否メッセージ(DS、図4、ステップ6、V−DS6)
○ ブラウザまたはサーバがDS拒否メッセージを受信する場合には、DSKは正しくなく、VSUプロセスは失敗した
○ DS拒否メッセージは公開鍵でラップして送信される
・ メッセージ形式:「[OpenID] DS VSUが失敗しました!」
・ メッセージを示すために、公開鍵DS拒否メッセージを復号化
● [オプション]ウェブサーバ/ブラウザは、保存されたDSKおよびOpenID情報を削除(ブラウザ/サーバ、図4、ステップ7、V−DS7)
・ 保存されたDSK、OpenIDを削除(クッキー、ファイル、データベース入力において−方法?)
・ ユーザにVSUの失敗を通知
(SSLX埋め込み認証の説明)
SSLXは、関係者の間に認証されかつセキュアなチャネルを作成するために、従来の通信アーキテクチャおよびプロセスを使用する。SSLX通信ルーティングのための全体的な基本は各セキュアな通信のスピードおよびタイミングであるため、認証および暗号化の方法が任意の公開ネットワークユーザのためにリアルタイムで実行可能であることが必須である。容認可能な電子的暗号には、リアルタイムで暗号化可能な、高度な暗号標準(AES)を含む。現在、必要なリアルタイムスピードで実行できる認証メカニズムは存在しない。SSLXを実現させるために、以下のような新しい埋め込み認証技術が用いられる。
【0075】
SSLX埋め込み認証(SSLX−EA)アルゴリズムは、2つの部分、すなわち、認証のための部分および暗号のための部分から成る。認証は2つの新しい高速かつ単純な低レベルの機能(結合および抽出)を用いて実行され、非明示的に実行される(埋め込み)。受信者が暗号文を有効な平文(ウェブページまたはファイル伝送等のhttpトラフィック通信)に復号化する場合には、受信者は、正しい送信者からメッセージが来たと安全に想定することができる。典型的な暗号機能は、抽出の低レベルの機能によってメッセージ鍵として作成された子鍵を用いて、ストリームモードのAES−nビットを含んでおり、ここで、nビットは開始する共有鍵、Kの定義された長さである。
【0076】
以下のプロセスは、SSLX−EAについて説明するものであり、
0.一度のみのセットアップ: 共有されたnビット鍵、Kを確立する。[SSLXは、公開鍵方法および帯域外配信を含む、上記に述べているように、種々の手段によってこれを実行する。秘密は、関係者(ブラウザおよびサーバ)および信頼できるサードパーティ(DS)の間で確立された鍵である。この鍵は、ディレクトリサービス鍵(DSK)と呼ばれる]。
1.nビットのランダムの16進数(128ビットのための32 4ビットの番号)、Rを生成する。
● Rは業界標準の乱数生成器/生成技術/プロセスによって生じる。
2.RとKを結合させると、nビットの「アルファベット」Aが生成される。
3.Kを用いて、Aからnビットのメッセージ鍵Wを抽出する。
4.平文メッセージmの暗号化: 送信者は暗号文C=E(w,m)を計算し、ここでEはストリームモードにおけるAES−nビットであり、以下のメッセージ、
● OpenIDSender,R,C,[オプションでT]
を、受信者に送信する。OpenIDSenderは送信者の公的に公知の識別子であり、Tは、メッセージ全体の復号化の前の、迅速な復号化認証チェックの目的で、暗号文の開始におけるオプションのnビットトークンである(静的な事前割り当てされたトークン、AからのWの全体的または部分的な抽出、またはいくつかのその他の共有された値)。
【0077】
SSLX−EAは、SSLX関係者の間に単純および高速な認証および暗号を提供する。これによって、無作為性(ステップ0および1)、組み合わせおよび抽出機能における情報の大きなおよび十分な損失(ステップ2および3)、および最良実施例の業界標準暗号化(ステップ4)が組み合わせられる。
【0078】
SSLX−EAの代替とすることが可能な、多くの異なる利用可能なアルゴリズムが存在するが、より高速、目的にかなっている、または簡単で計算能力的にコストのかからないものはない。
【0079】
(SSLX−EAの低レベルの暗号化機能)
結合機能(ステップ2)の詳細は、
2.結合機能の詳細: RおよびKを組み合わせることにより、nビットの「アルファベット」Aが生じる。そのステップは、
2.1 1番目の桁位置で開始されるRへ、Kの1番目の桁をポインタとして使用し、Rの開始位置が0番目の値位置である場合に、桁位置のKの値を、Rの右側に移動させることにより、Rの桁を選択し、
2.2 1番目の桁位置で始まるKへ、Rの1番目の桁をポインタとして使用し、Kの開始位置が0番目の値位置である場合に、桁位置のRの値をKの右側に移動させて、Kの桁を選択し、
2.3 16進数はステップ2.1から選択したR桁およびステップ2.2からのK桁を桁上げせずに加算すると、この和は、結果の数、Aの第1の桁であり、
2.4 ステップの開始桁が以前選択した桁の右側の位置(0番目の値位置)である場合に、次の桁をRおよびKの右側に使用して、2.1、2.2および2.3を繰り返す。結果AがRおよびKと同じ長さになるまで続ける(nビット、128ビットでは32個の4ビット16進数の数)。
【0080】
実施例:
=0123456789 K=9876543210
2.1: 9、Kからの9を使用、Rで9を選択
2.2: 9、Rからの0を使用、Kで9を選択
2.3: (9+9)Mod16=2から、最初の桁は2
2.1: 8を取り、Kからの8を使い、以前選択した最後の桁(9)の右側の第1の桁位置である、1番目の位置で開始したRに8を選択することを繰り返す
2.2: 7、Rからの1を使い、以前選択した第1の桁(9)の右側の第1の桁位置である、2番目の位置で開始したKに7を選択することを繰り返す
2.3: 第2の桁は、(8+7)Mod16=FからのF
の最後に達するまでこれを継続すると、
(9+9)MOD16=2
(8+7)MOD16=F
(6+4)MOD16=A
(3+0)MOD16=3
(9+5)MOD16=E
(4+9)MOD16=D
(8+2)MOD16=A
(1+4)MOD16=5
(3+5)MOD16=8
(4+5)MOD16=9
から
A=2FA3EDA589
となる。
【0081】
抽出機能(ステップ3)の詳細は、
3.抽出機能の詳細: nビットの鍵Wを、AからKを用いて抽出する。そのステップは、
3.1 1番目の桁の位置で始まるAへ、Kの1番目の桁をポインタとして使用し、Aの開始位置が0番目の値の位置である場合に、Aの右側の桁位置にKの値を移動させることによって、Aの桁を選択し、
3.2 選択したAの桁を結果番号、Wの最初の桁として使用し、
3.3 Kの右側の次の桁、および、以前選択した桁の右側のある位置(およびこれは0番目の値位置である)としてAの開始桁を用いて、3.1および3.2を繰り返す。結果WがKおよびAと同じ長さになるまで続ける(nビット、128ビットでは32個の4ビット16進数の数)。
【0082】
実施例:
A=2FA3EDA589およびK=9876543210を使用すると、W=98A39E8F3Eとなる。
注: 全てゼロ(0)の公知の脆弱な鍵(K)は、AおよびWがRと同じになるため避けるべきである。
【0083】
(基準の実装)
以下の記載は、2つのSSLX−EA機能、および暗号化または復号化モードのいずれかでSSLX−EAを実行する単一の呼び出し機能全体のための、Visual Basicのコードである。それは、
【0084】
【数1−1】

【0085】
【数1−2】

【0086】
【数1−3】

【0087】
【数1−4】

【0088】
【数1−5】

【0089】
【数1−6】

【0090】
【数1−7】

【0091】
【数1−8】

【0092】
【数1−9】

【0093】
【数1−10】

である。
【0094】
(セキュアソケットレイヤ/トランスポートレイヤのセキュリティ(SSL/TLS)との比較)
SSLXは、SSL/TLSと同じ目標を達成する。インターネット等と同じ実施例のアーキテクチャのいくつかを含む、認証およびデータセキュリティである。SSLXを利用する利点の1つは、SSLXは同じ目的を達成するが、より少ないステップでこれを行うということであり、このより単純なステップではデータおよび計算の要求事項が低い。以下に、SSL/TLSおよびSSLXの間の明確な違いを示す。
【0095】
SSLXセッションフローの後には一般的なTCPセッションフローが続き、SSLXは、異なる呼び出し構文を使用する。例えば、図5および図6を参照されたい。SSLXにおいて、証明書は存在せず、AESは暗号モジュールとなっている。従って、SSLフローのステップ2、9および10は不要である。
【0096】
ステップ5および6はSSLの「通常の動作」であり、これはSSLXにおいてはステップ3および4で置換えられ、セッション鍵(メッセージ鍵)を定義するためにハンドシェイクを使用し、次に、ブラウザおよびサーバの間を両方向で送信するためにコンテンツを暗号化する。主な相違は、SSLにおいて、認証はハンドシェイクにおいて一度のみ実行されるということである。SSLXセッションにおいて、ステップ4は、各セッションに一回、認証されたSSLX−EA鍵交換を含み、これは各伝達と同じ長さに定義可能である。
【0097】
SSLおよびSSLXハンドシェイク図7および8を比較すると、SSLXバージョンは、より少ないステップおよびより低い計算要件を有する。SSLでは、ブラウザ証明書を含み、既に複雑なハンドシェイクをより複雑にするハンドシェイクのバージョンが存在する。
【0098】
SSLハンドシェイクのステップ3は、計算面でいうと非常にコストがかさむものである。Helloシーケンスのサインされたメッセージのダイジェストは、ブラウザ送信されたダイジェストと比較するために計算される。これらのダイジェストおよび証明書において通過する情報量も大量である(3KB以上)。比較すると、SSLXの計算は、計算能力および帯域幅の要件(256ビット)の10パーセント未満である。
【0099】
最後のSSLセッションフローは、再開されたセッションハンドシェイク、図9である。SSLにおいて、これは、最後のSSL情報をキャッシュするブラウザおよびサーバの両方が相互作用を短縮することを必要とする。その理由は、新しいハンドシェイクがあまりに高い計算能力を必要とするからである。再開されたセッションSSLハンドシェイクでさえ、単純な新しいSSLX認証ハンドシェイクよりも多くの労力を必要とするため、SSLXはこのフローを複製する必要はなく、2つのセキュリティを比較できない(図10を参照)。SSLで再開されたセッションハンドシェイクのキャッシュは非常に深刻なセキュリティ上の不利益であるが、新しいSSLX認証ハンドシェイクはそうでない。
【0100】
(データエレメントの定義および用語解説)
SSLX−EA セッションマスタ鍵(SMK)−ブラウザおよびサーバの間で用いられるSSLX−EAの256ビットK1鍵値(詳細についてはSSLX−EAを参照)。
【0101】
OpenID−セッションIDと類似している。セッション毎または長期に割り当てられたオープンランダム16桁の16進数の数(ブラウザおよびサーバコンポーネントを識別するために使用)。
【0102】
鍵配信センター(KDC)−少なくともOpenIDおよび関連付けられたSSLX−EA SMKを保持するために定義された、SSLX−EA鍵のデータストア。
【0103】
HTTPX://−SSLXプロトコル。
【0104】
認証ハンドシェイク(AH)−ウェブサイト(サーバ)の識別子をチェックおよび検証(点検)できる方法である。このプロセスは、互いに「不明」であるブラウザおよびサーバのセキュアな通信チャネルを確立する。
【0105】
通常の動作(信頼できる)−(AHまたはSSLX鍵の帯域外配信のいずれかによって)信頼できる、鍵をかけられた関係を確立後に、ブラウザおよびサーバがセキュアに通信するプロセス。
【0106】
認証リクエスト(AR)−ブラウザからウェブサイトサーバに送信される認証ハンドシェイクの開始。これは、SSF、ブラウザ生成された公開鍵、ディレクトリサービス/サーバのID等を含む、いくつかのオプションの情報を含む。
【0107】
セキュリティ設定フラグ(SSF)−認証ハンドシェイク(高、中、低)のブラウザの構成セットのセキュリティレベルを示すAR内に送信されるコード値。各SSFコードで異なるオプションが存在し、サーバおよびDSの両方からの応答方法を示す。
【0108】
検証されたセットアップ(VSU)−信頼できるサードパーティ検証のために、ディレクトリサービス/サーバ(DS)に対して、ブラウザおよびサーバが電子的IDを検証(点検)するプロセス。これは一度のみのアクションであり、既に検証されている任意のDSにおけるリセットと同様、複数のDSで実行可能である。各サーバは、任意の公開DSまたはCDSに対して少なくとも1つのVSUを実行する必要があり、ブラウザは、所望の場合には、このプロセスを実行可能である。
【0109】
検証されたセットアップリクエスト(VSUR)−特定のDSへのVSUプロセスを開始するブラウザまたはウェブサーバからの初期のTCPリクエスト。
【0110】
ディレクトリサービス/サーバ(DS)−ブラウザがウェブサーバを検証および識別(従って、信頼)できる、信頼できるスイッチとして機能する公開エンティティ。SSLX公開アドミニストレータによって保守および割り当てられた任意の数のDSが存在してもよい。
【0111】
DSリクエスト(DSR)−ブラウザによってDSに送信される、認証ハンドシェイク(AH)を完了させる初期のTCPリクエスト。
【0112】
DSフラグコード(DSF)−VSUの処理(高、中、低)のために、ブラウザの構成セットのセキュリティレベルを示すVSUR内に送信されるコード値。各DSFコードで異なるオプションが存在し、DSからの応答方法を示す。
【0113】
DS鍵(DSK)−ブラウザまたはサーバおよび(VSU中に取得された)DSの間で用いられる、SSLX−EAの256ビットのK1鍵の値。
【0114】
SSLX公開アドミニストレータ(PA)−全てのDSから独立した管理者であり、DSの順守のためのポリシーおよび手続きと同様に、公開DSのリストの保守を行う。

【特許請求の範囲】
【請求項1】
サーバからネットワークを介してセッションマスタ鍵を、コンピュータ上で実行しているアプリケーションによって取得するための方法であって、
該セッションマスタ鍵のために、該サーバに対してオープンリクエストを該アプリケーションによって送信するステップと、
該セッションマスタ鍵の第1の部分を有する第1の応答を、該サーバから該アプリケーションによって受信するステップであって、該第1の応答は、該セッションマスタ鍵の第2の部分を取得可能なディレクトリサーバを識別する、ステップと、
該セッションマスタ鍵の該第2の部分のために、該第1の応答で該サーバによって指示された該ディレクトリサーバに対してオープンリクエストを該アプリケーションによって送信するステップと、
該ディレクトリサーバから該セッションマスタ鍵の該第2の部分を該アプリケーションによって受信するステップと
を包含する、方法。
【請求項2】
前記アプリケーションから前記サーバへの前記オープンリクエストは、公開鍵を含み、該サーバから該アプリケーションへの前記第1の応答は、該公開鍵によって暗号化された前記セッションマスタ鍵の前記第1の部分を含む、請求項1に記載の方法。
【請求項3】
前記アプリケーションから前記ディレクトリサーバへの前記オープンリクエストは、公開鍵を含み、該ディレクトリサーバから受信した前記セッションマスタ鍵の第2の部分は、該公開鍵によって暗号化される、請求項1に記載の方法。
【請求項4】
前記アプリケーションから前記ディレクトリサーバへの前記オープンリクエストは、(i)該アプリケーションによって該ディレクトリサーバから取得された該アプリケーションの前記ディレクトリサーバ鍵を用いて、SSLX−EA交換において、前記セッションマスタ鍵の前記第2の部分をラップすることか、または(ii)該オープンリクエストにおいて該アプリケーションによって該ディレクトリサーバに提供される公開鍵を用いて、該セッションマスタ鍵の該第2の部分を暗号化することのいずれかを行う指示を含む、請求項1に記載の方法。
【請求項5】
前記サーバから受信した前記セッションマスタ鍵の前記第1の部分および前記ディレクトリサーバから受信した前記セッションマスタ鍵の前記第2の部分を用いて、前記アプリケーションによって、該セッションマスタ鍵を生成するステップ
をさらに包含する、請求項1に記載の方法。
【請求項6】
前記サーバによって前記ディレクトリサーバから取得されたサーバのディレクトリサーバ鍵を用いて、SSLX−EA交換においてラップされた前記セッションマスタ鍵の前記第2の部分と共に、第2の応答を該ディレクトリサーバに該サーバによって送信するステップ
をさらに包含する、請求項1に記載の方法。
【請求項7】
前記セッションマスタ鍵を用いて、SSLX−EA交換においてラップされたメッセージを前記アプリケーションから前記サーバに送信し、該セッションマスタ鍵を用いて、該SSLX−EA交換でラップされたメッセージを該サーバから受信するステップ
をさらに包含する、請求項2に記載の方法。
【請求項8】
前記サーバのディレクトリサーバ鍵は、前記ディレクトリサーバとの検証されたセットアップ動作の間に該サーバによって取得される、請求項1に記載の方法。
【請求項9】
前記アプリケーションのディレクトリサーバ鍵は、前記ディレクトリサーバとの検証されたセットアップ動作の間に該アプリケーションによって取得される、請求項1に記載の方法。
【請求項10】
前記アプリケーションから前記サーバへの前記オープンリクエストは、該アプリケーションが検証プロセスを実行した1つ以上のディレクトリサーバのリストを含む、請求項1に記載の方法。
【請求項11】
前記サーバから前記アプリケーションへの前記第1の応答は、該サーバが検証プロセスを実行した1つ以上のディレクトリサーバのリストを含む、請求項1に記載の方法。
【請求項12】
ネットワークを介してサーバからコンピュータ上で実行しているアプリケーションにセッションマスタ鍵を伝達するための方法であって、
該セッションマスタ鍵のために、該アプリケーションからのオープンリクエストを該サーバによって受信するステップと、
該セッションマスタ鍵の第1の部分と共に、第1の応答を該アプリケーションに送信するステップと、
該サーバによってディレクトリサーバから取得されたサーバのディレクトリサーバ鍵を用いて、SSLX−EA交換においてラップされた該セッションマスタ鍵の第2の部分と共に、第2の応答を該ディレクトリサーバに送信するステップと
を包含する、方法。
【請求項13】
前記セッションマスタ鍵の前記第2の部分のために、前記第1の応答において前記サーバによって指定された前記ディレクトリサーバに、前記アプリケーションによってオープンリクエストを送信するステップ
をさらに包含する、請求項12に記載の方法。
【請求項14】
前記ディレクトリサーバによって、前記セッションマスタ鍵の前記第2の部分を前記アプリケーションに送信するステップ
をさらに含む、請求項13に記載の方法。
【請求項15】
前記サーバから受信した前記第1の部分と、前記ディレクトリサーバから受信した前記第2の部分とを用いて、前記アプリケーションによって前記セッションマスタ鍵を生成するステップ
をさらに含む、請求項14に記載の方法。
【請求項16】
前記アプリケーションから前記サーバへの前記オープンリクエストは、該アプリケーションが検証プロセスを実行した1つ以上のディレクトリサーバのリストを含む、請求項12に記載の方法。
【請求項17】
前記サーバから前記アプリケーションへの前記第1の応答は、該サーバが検証プロセスを実行した1つ以上のディレクトリサーバのリストを含む、請求項12に記載の方法。
【請求項18】
前記アプリケーションから前記サーバによって受信された前記オープンリクエストは、公開鍵を含み、該サーバから該アプリケーションに送信される前記第1の応答は、該公開鍵によって暗号化された前記セッションマスタ鍵の前記第1の部分を含む、請求項12に記載の方法。
【請求項19】
前記アプリケーションによって前記ディレクトリサーバに送信された前記オープンリクエストは、公開鍵を含み、該ディレクトリサーバから該アプリケーションに送信される前記セッションマスタ鍵の前記第2の部分は、該公開鍵によって暗号化される、請求項14に記載の方法。
【請求項20】
前記アプリケーションによって前記ディレクトリサーバに送信される前記オープンリクエストは、(i)該ディレクトリサーバから該アプリケーションによって取得された該アプリケーションの前記ディレクトリサーバ鍵を用いて、SSLX−EA交換において前記セッションマスタ鍵の前記第2の部分をラップすることか、または(ii)該オープンリクエストにおいて該アプリケーションによって該ディレクトリサーバに提供される公開鍵を用いて、該セッションマスタ鍵の該第2の部分を暗号化することのいずれかを行う指示を含む、請求項12に記載の方法。
【請求項21】
前記セッションマスタ鍵を用いて、SSLX−EA交換においてラップされたメッセージを前記サーバから前記アプリケーションに送信し、該セッションマスタ鍵を用いて、該SSLX−EA交換でラップされたメッセージを該アプリケーションから受信するステップ
をさらに包含する、請求項12に記載の方法。
【請求項22】
前記サーバのディレクトリサーバ鍵は、前記ディレクトリサーバとの検証されたセットアップ動作の間に該サーバによって取得される、請求項12に記載の方法。
【請求項23】
前記アプリケーションのディレクトリサーバ鍵は、前記ディレクトリサーバとの検証されたセットアップ動作の間に該アプリケーションによって取得される、請求項12に記載の方法。
【請求項24】
ネットワーク上のコンピュータを検証するための方法であって、
ディレクトリサービス鍵のために、該コンピュータからディレクトリサービスによってオープンリクエストを受信するステップであって、該リクエストは、認証リクエストの値を含む、ステップと、
該認証リクエスト値が公開鍵オプションを指示する場合には、該コンピュータによって送信される該オープンリクエストに含まれる公開鍵を用いて暗号化される該ディレクトリサービス鍵と共に、該ディレクトリサービスによって単一の応答を送信するステップと、
該認証リクエスト値が帯域外通信経路オプションを指示する場合には、該コンピュータから該リクエストに指定される帯域外通信経路を介して、該ディレクトリサービス鍵を含む単一のメッセージを該ディレクトリサービスによって送信するステップと、
該認証リクエスト値が、公開鍵と帯域外通信経路オプションとの両方の組み合わせを指示する場合には、該ディレクトリサービスによって、該ディレクトリサービス鍵の第1の部分と共に、第1の応答を該コンピュータに送り返し、該ディレクトリサービス鍵の該第2の部分と共に、第2の応答を該コンピュータからの該リクエストに指定された該帯域外通信経路を介して送信するステップと
を包含する、方法。
【請求項25】
前記単一のメッセージは、前記コンピュータから前記ディレクトリサービスへの前記リクエストに含まれる公開鍵を用いて暗号化される前記ディレクトリサービス鍵を含む、請求項24に記載の方法。
【請求項26】
前記第2の応答は、前記コンピュータから前記ディレクトリサービスへの前記リクエストに含まれる公開鍵を用いて暗号化される前記ディレクトリサービス鍵を含む、請求項24に記載の方法。
【請求項27】
前記コンピュータからの確認メッセージを前記ディレクトリサーバによって受信するステップであって、該確認メッセージは、前記ディレクトリサービス鍵を用いてSSLX−EA交換においてラップされる、ステップ
をさらに包含する、請求項24に記載の方法。
【請求項28】
セキュアな通信において利用するために、信頼できるサードパーティから信頼できる鍵を取得するための方法であって、
該信頼できる鍵のために、該信頼できるサードパーティにオープンリクエストを送信するステップであって、該リクエストは、認証リクエスト値を含み、該認証リクエスト値は、該信頼できる鍵に対する配信オプションを指示する、ステップと、
該認証リクエスト値の該指示に基づいて、1つ以上の通信経路を介して該信頼できるサードパーティから該信頼できる鍵を受信するステップと、
該信頼できる鍵を用いて、SSLX−EA交換においてラップされる確認メッセージを該信頼できるサードパーティに送信するステップと
を包含する、方法。
【請求項29】
公開鍵および非公開鍵の対を作成するステップ
をさらに包含する、請求項28に記載の方法。
【請求項30】
前記1つ以上の通信経路を介して前記信頼できる鍵を送信する際に、該信頼できる鍵を暗号化するために用いられる公開鍵を前記オープンリクエストに含めるステップ
をさらに包含する、請求項28に記載の方法。
【請求項31】
前記認証リクエスト値が公開鍵オプションを指示する場合には、前記信頼できるサードパーティは、前記オープンリクエストにおいて該信頼できるサードパーティに送信された前記公開鍵を用いてラップされる前記信頼できる鍵と共に、単一の応答を送信する、請求項28に記載の方法。
【請求項32】
前記認証リクエスト値が帯域外通信経路オプションを指示する場合には、前記信頼できるサードパーティは、該認証リクエスト値に指定されるアドレスに帯域外通信経路を介して送信される前記信頼できる鍵と共に、単一の応答を送信する、請求項28に記載の方法。
【請求項33】
前記認証リクエスト値が、公開鍵と帯域外通信経路との両方の組み合わせを指示する場合には、前記信頼できるサードパーティは、該公開鍵を用いて暗号化される前記信頼できる鍵の第1の部分と共に第1の応答を送信し、該信頼できる鍵の前記第2の部分と共に第2の応答を、該認証リクエストに指定される帯域外通信経路およびアドレスを介して送信する、請求項28に記載の方法。
【請求項34】
前記確認メッセージを前記信頼できるサードパーティによって復号化するステップであって、
該確認メッセージが適正に復号化されない場合には、該信頼できるサードパーティは、前記公開鍵によって暗号化された拒否メッセージを送信し、
該拒否メッセージを前記コンピュータによって復号化し、検証されたセットアップリストから該信頼できるサードパーティを削除する、
ステップをさらに包含する、請求項28に記載の方法。
【請求項35】
前記信頼できる鍵を受信した後、前記コンピュータは、1つ以上の関連付けられた信頼できる鍵と共に、該コンピュータが信頼できる鍵を受信した全ての信頼できるサードパーティのリストを維持し、認証プロセスの間に別のコンピュータとの情報交換の際に、該別のコンピュータへのメッセージに該リストを含める、請求項28に記載の方法。
【請求項36】
ネットワークを介してセキュアに通信するコンピュータの間の信頼できる仲介者として機能するための装置であって、
サーバと、
該サーバに連結されて、関連する情報を格納し、任意の特定のディレクトリメンバーとセキュアに通信するデータベースであって、該関連する情報は、各特定のディレクトリメンバーに関連付けられたディレクトリサービス鍵を含む、データベースと、
該サーバに関連付けられた公知の静的IPアドレスと、
該サーバ上で実行されるアプリケーションと
を備え、
該サーバは、リアルタイムリクエストをブラウザからウェブサーバに経路指定し、かつ応答をウェブサーバからブラウザに経路指定し、
該リクエストおよび応答は、リクエスト実行者が、該サーバとの検証されたセットアップを実行した場合には、該リクエスト実行者が生成した公開鍵またはSSLX−EA交換において信頼できる鍵によって保障されており、
該応答のそれぞれは、該リクエスト実行者が組み合わせ、そして該応答のそれぞれとウェブ接続された場所とが同一であることを検証するための情報の一部分だけを含み、
情報の残りの部分は、該情報の残りの部分を暗号化するために、リクエスト実行者が生成した公開鍵を用いて、該ウェブサイトから該リクエスト実行者に直接提供される、
装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公表番号】特表2010−503320(P2010−503320A)
【公表日】平成22年1月28日(2010.1.28)
【国際特許分類】
【出願番号】特願2009−527419(P2009−527419)
【出願日】平成19年9月6日(2007.9.6)
【国際出願番号】PCT/US2007/019505
【国際公開番号】WO2008/030549
【国際公開日】平成20年3月13日(2008.3.13)
【出願人】(509064510)エスエスエルネクスト インコーポレイテッド (2)
【Fターム(参考)】