(57)【要約】  暗号化されたリンクが、複数の暗号により確立される。セキュアなセッションを確立する際のハンドシェイク・プロトコルの間に、暗号スイートの少なくとも２つのセットが、クライアントによってサーバに送信される。暗号スイートの少なくとも２つのセットのそれぞれのセット用の選択暗号スイートが、クライアントによってサーバから受信される。クライアントは、サーバから受信した選択暗号スイートの中から、第１の選択暗号スイートを選択する。クライアントは、第１の選択暗号スイートを使用しサーバとの接続を確立して、接続を暗号化する。【選択図】図２
2021502014.tif 000002
【特許請求の範囲】
【請求項１】
暗号化されたリンクを提供するシステムであって、
暗号スイートの２つ以上のセットを含むメモリと、
前記メモリと通信しているプロセッサと
を備え、前記コンピュータ・システムは方法を実施するように構成され、前記方法は、
ハンドシェイクの間に、暗号スイートの少なくとも２つのセットをサーバに送信することと、
前記暗号スイートの少なくとも２つのセットのそれぞれのセットについての選択暗号スイートを前記サーバから受信することと、
第１の選択暗号スイートを選択することと、
前記第１の選択暗号スイートを使用し前記サーバとの接続を確立して、前記接続を暗号化することと
を含む、システム。
【請求項２】
前記少なくとも２つの暗号スイートのそれぞれは、異なる程度のデータ・セキュリティを提供する、請求項１に記載のシステム。
【請求項３】
前記少なくとも２つの暗号スイートの少なくとも１つは、セキュアな暗号である、請求項２に記載のシステム。
【請求項４】
前記方法は、クライアント鍵交換を実施することをさらに含む、請求項１に記載のシステム。
【請求項５】
前記サーバから選択暗号スイートを受信することは、サーバ鍵交換を含む、請求項１に記載のシステム。
【請求項６】
暗号化されたリンクを確立する方法であって、
ハンドシェイクの間に、暗号スイートの少なくとも２つのセットをサーバに送信することと、
前記暗号スイートの少なくとも２つのセットのそれぞれのセットについての選択暗号スイートを前記サーバから受信することと、
第１の選択暗号スイートを選択することと、
前記第１の選択暗号スイートを使用し前記サーバとの接続を確立して、前記接続を暗号化することと
を含む方法。
【請求項７】
前記サーバとの接続を確立することは、鍵交換と、前記第１の選択暗号スイートを使用する変更暗号プロトコルとを含む、請求項６に記載の方法。
【請求項８】
第２の選択暗号スイートを選択することと、
前記第２の選択暗号スイートにより前記サーバとの変更暗号プロトコルを開始することと、
前記変更暗号プロトコルが完了したという指標を前記サーバから受信することと、
前記変更暗号プロトコルが完了したという前記指標を受信したことに応答して、前記第２の選択暗号スイートを使用して暗号化されたデータを送信することと
をさらに含む、請求項６に記載の方法。
【請求項９】
変更暗号プロトコルおよび第２の選択暗号スイートを前記サーバから受信することと、
前記変更暗号プロトコルが完了したという指標を前記サーバに送信することと、
前記第２の選択暗号スイートにより暗号化したデータを前記サーバから受信することと、
前記第２の選択暗号スイートを使用して、受信された前記データを復号することと
をさらに含む、請求項６に記載の方法。
【請求項１０】
前記暗号スイートの少なくとも２つのセットのそれぞれは、異なる程度のデータ・セキュリティを提供する、請求項６に記載の方法。
【請求項１１】
前記第１の選択暗号スイートを使用してデータを前記サーバに転送することをさらに含み、前記第１の選択暗号スイートは、前記転送されたデータに関連付けられたセキュリティの程度に従って選択される、請求項１０に記載の方法。
【請求項１２】
クライアント証明書を送信することをさらに含む、請求項６に記載の方法。
【請求項１３】
暗号化されたリンクを確立する方法であって、
ハンドシェイクの間に、クライアントから暗号スイートの少なくとも２つのセットを受信することと、
前記暗号スイートの少なくとも２つのセットのそれぞれのセットについて選択暗号スイートを選択することと、
前記選択暗号スイートを前記クライアントに送信することと、
第１の選択暗号スイートを使用し前記クライアントとの接続を確立して、前記接続を暗号化することと
を含む方法。
【請求項１４】
前記クライアントとの接続を確立することは、鍵変更と、前記第１の選択暗号スイートを使用する変更暗号プロトコルとを含む、請求項１３に記載の方法。
【請求項１５】
変更暗号プロトコルを使用して前記クライアントから第２の暗号スイートを受信することと、
前記第２の暗号スイートを初期化することと、
前記変更暗号プロトコルが完了したという指標を前記クライアントに送信することと、
第２の選択暗号スイートを使用して前記接続を暗号化することと
をさらに含む、請求項１３に記載の方法。
【請求項１６】
変更暗号プロトコルおよび第２の暗号スイートを前記クライアントに送信することと、
前記変更暗号プロトコルが完了したという指標を前記クライアントから受信することと、
前記第２の選択暗号スイートを使用してデータ・セットを暗号化することと、
前記第２の選択暗号スイートにより暗号化された前記データ・セットを、前記クライアントに送信することと
をさらに含む、請求項１３に記載の方法。
【請求項１７】
前記選択暗号スイートのそれぞれは、設定ファイルに従って選択される、請求項１３に記載の方法。
【請求項１８】
前記設定ファイルは、適合する暗号スイートを識別する、請求項１７に記載の方法。
【請求項１９】
前記暗号スイートの少なくとも２つのセットのそれぞれは、異なる程度のデータ・セキュリティを提供する、請求項１３に記載の方法。
【請求項２０】
前記第１の選択暗号スイートを使用してデータを前記サーバに転送することをさらに含み、前記第１の選択暗号スイートは、前記転送されたデータに関連付けられたセキュリティの程度に従って選択される、請求項１９に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、セキュアな通信に関し、より詳細にはネットワーク上でのセキュアな通信に関する。
【背景技術】
【０００２】
セキュア・ソケット・レイヤ（ＳＳＬ）接続は、ハンドシェイクとデータ転送との２つのフェーズを有している。暗号アルゴリズムの取り決めおよび対称な暗号化鍵交換をセットアップするためのハンドシェイクの間、非対称な鍵暗号化アルゴリズムが使用される。データ転送フェーズの間、所与の暗号アルゴリズムで、取り決められた（agree upon）鍵で接続が確立され、次いで接続を共有するデバイス間で暗号化されたデータを交換することができる。
【発明の概要】
【０００３】
本発明の実施形態によると、暗号化されたリンクを複数の暗号により確立する方法が本明細書で説明される。セキュアなセッションを確立する際のハンドシェイク・プロトコルの間に、クライアントによって暗号スイートの少なくとも２つのセットがサーバに送信される。次に、暗号スイートの少なくとも２つのセットのそれぞれのセット用の選択暗号スイート（choice cipher suite）を、クライアントによってサーバから受信することができる。クライアントは、サーバから受信した選択暗号スイートの中から、第１の選択暗号スイートを選択する。クライアントは、第１の選択暗号スイートを使用しサーバとの接続を確立して、接続を暗号化する。
【０００４】
本発明の実施形態によると、暗号化されたリンクを複数の暗号により確立する方法が本明細書で説明される。サーバは、ハンドシェイクの間に、暗号スイートの少なくとも２つのセットをクライアントから受信する。選択暗号スイートは暗号スイートの少なくとも２つのセットのそれぞれのセットについて選択される。選択暗号スイートがクライアントに送信される。第１の選択暗号スイートを使用し接続を確立して、接続を暗号化する。
【０００５】
コンピューティング・システムおよびコンピュータ・プログラム製品は、本開示の方法および構造を具体化することができる。コンピューティング・システムは、ネットワークと、暗号スイートを記憶するよう構成されたメモリと、メモリと通信するプロセッサとを備えることができる。コンピューティング・システムは方法を実施するように構成することができる。
【０００６】
上述の概要は、本発明の例示された各実施形態またはあらゆる実装形態を説明することを意図されていない。
【０００７】
本明細書の図面は本明細書に組み込まれ、また本明細書の一部を形成する。図面は本発明の実施形態を例示しており、説明と共に本発明の原理を説明するよう機能する。図面は本発明の特定の実施形態を例示するに過ぎず、本開示を限定するものではない。
【図面の簡単な説明】
【０００８】
【図１】本発明の実施形態による、複数の暗号でセキュアなリンクを確立するための例示のシステムのブロック図である。
【図２】本発明の実施形態による、ＳＳＬ接続のライフタイムの一例の図である。
【図３】本発明の実施形態による、ＳＳＬのハンドシェイク・プロトコルの一例の図である。
【図４】本発明の実施形態による、暗号化されたリンクを開始するための、クライアント側デバイス用のプロセス例のフローチャートである。
【図５】本発明の実施形態による、暗号化されたリンクを開始するための、サーバ側デバイス用のプロセス例のフローチャートである。
【図６】本発明の実施形態による、本明細書で説明される方法またはモジュール、および任意の関連の機能または動作のうち１つまたは複数を実装する際に使用されるコンピュータ・システム例の高次ブロック図である。
【発明を実施するための形態】
【０００９】
本発明は様々な変更形態および代替的な形態に従う一方、その具体例は図面に例として示してあり、詳細に説明される。しかしながら、本発明は、説明された特定の実施形態に限定されることを意図されていないことが理解されるべきである。逆に、本発明の範囲に入るすべての変更形態、均等物、および代替形態をカバーすることを意図されている。
【００１０】
本発明の態様は、セキュアな通信に関し、より詳細な態様はネットワーク上のセキュアな通信に関する。本発明は必ずしもそのような用途に限定されないが、本発明の様々な態様はこのコンテキストを使用して様々な例の議論を通じて理解することができる。
【００１１】
セキュア・ソケット・レイヤ（ＳＳＬ）プロトコル、およびトランスポート層セキュリティ（ＴＬＳ）などの他の類似の通信セキュリティ・プロトコルは、ネットワーク通信をセキュアにするために対称および非対称の鍵アルゴリズムの組合せを使用する。非対称な鍵暗号化アルゴリズムは、セッションを確立して参加者（例えば、クライアントおよびサーバ）を認証するために使用することができる。さらには、暗号化された通信は、参加者によって取り決められた暗号アルゴリズムと関連の対称な暗号化鍵とを使用する。それぞれのセッションは、単一の取り決められた暗号スイート（暗号化アルゴリズムと関連付けられる暗号化鍵との組合せ）を使用して確立される。新しい暗号と鍵との組合せを選択することが望ましくなってゆく場合、既存のセッションは閉じられ、新しい暗号および鍵を選択する際に支援するように修正された設定情報を有する新しいハンドシェイクで、新しいセッションが開始されなければならない。
【００１２】
使用中の暗号と鍵との組合せを変更する１つの理由は、モバイル・デバイスのバッテリー寿命を節約することである。セキュアな通信がデータを保護するために一般的に好ましいことがある一方で、これらのプロトコルは電力供給上とても消耗が多く（draining）なり得る。デバイスはバッテリーを保存するために、セキュアなセッションを閉じ、セキュリティの低い暗号および鍵を用いて新しいセッションを開始するほうを選ぶことがある。しかしながら、それぞれのセッションを確立することは非対称鍵の暗号化／復号を必要とするため、所与の動作のための複数のセッションを確立することは、プロセッサ使用量およびプロセスに必要な合計時間の観点から、コスト高である。
【００１３】
固定された暗号化（暗号と鍵との組合せ）により単一セッションを維持することは、それ自体のコストがかかる。「強力な」暗号化が使用される場合、プロセッサ使用量および必要な時間は相当なものである。中程度または弱い暗号化が使用される場合、データはセキュリティの脅威にさらされることがある。
【００１４】
本明細書に提供されるのは、複数の暗号スイートおよび関連付けられる暗号化鍵により暗号化されたリンクを提供するためのシステム、方法、およびコンピュータ・プログラム製品である。デバイスが複数の暗号および鍵によりセッションを確立できるようにすることによって、セッションの暗号化の強度は、使用中の暗号を変更することにより変えられて、新しいセッションを初期化することなく電力使用量を最適化することができる。
【００１５】
本明細書で説明されるのは、メモリおよびプロセッサを含むシステムである。メモリは、暗号スイートの２つ以上のセットを含む。プロセッサはメモリと通信しており、セキュアなセッションを確立することによるなどして、セキュアな通信を実施するよう構成することができる。通信をセキュアなものにするためにプロセッサによって使用される方法は、下記に説明されるようなものとしうる。
【００１６】
本明細書に説明されるように、セキュアな通信リンクを確立する方法は、一般的にクライアントとサーバとの間で行われ得る。本発明の実施形態において、クライアントは、サーバへ「ｈｅｌｌｏ」メッセージを送信することにより、ハンドシェイクを介してセキュアな接続の確立を開始することができる。ハンドシェイクの間に、クライアントは暗号スイートの２つ以上の異なるセットをサーバに送信する。暗号スイートのそれぞれのセットは、異なるレベルのセキュリティを表現することがある。例えば、クライアントは、スループットのスイートのセットとセキュアのスイートのセットとの２つの暗号スイートを、サーバに送信することができる。本発明の実施形態において、クライアントはまた、スイートの第３のセット、例えばスイートの中間セットなどを送信することがある。
【００１７】
次いで、クライアントは、送信された暗号スイートのセットに応答して、暗号スイートの少なくとも２つのセットの各セットについての選択暗号スイートを、サーバから受信する。選択暗号スイートは一般的に、サーバがそれ自体の設定に最も適していると見出した各セットにあるスイートであり得る。例えば、上述のようにサーバが、クライアントから暗号スイートの２つのセット、すなわちスループットのセットとセキュアのセットとを受信する場合、サーバは、２つの選択スイート、すなわち選択スループット暗号スイートと選択セキュア暗号スイートとをクライアントに選択して返すことになる。サーバは、所定のパラメータのセット、例えばサーバ自体の設定ファイルに従って、選択スループット暗号スイートおよび選択セキュア暗号スイートのそれぞれを選択する。実施形態において、サーバは、選択暗号スイートを送信する際にサーバ鍵交換を含むことができるか、またはクライアント証明書のリクエストをサブミットすることができるか、あるいはその両方である。
【００１８】
それぞれのセットについてサーバの選択スイートを受信した後、クライアントは、サーバによって識別された２つ以上の選択暗号スイートの中から第１の暗号スイートを選択するよう進むことができる。第１の暗号スイートは一般的に、サーバに転送されるクライアント・データの第１の部分について、適切なセキュリティのレベルに従って選ぶことができる。例えば、クライアントが転送したいデータの第１の部分が慎重を要するデータである場合、クライアントは、サーバによって第１の暗号スイートとして識別された２つ以上の選択暗号スイートの中から最もセキュアな暗号スイートを選択することができる。第１の暗号スイートが選択されると、クライアントは、暗号化されたリンクを、変更暗号プロトコル（change cipher protocol）を使用して暗号化／復号するために第１の暗号スイートを使用するよう、サーバに知らせることができる。クライアントは、接続を暗号化するための第１の暗号スイートを使用することにより、サーバとのセキュアな接続の確立を終了することができる。クライアントは、追加的に、変更暗号プロトコルに先立ってサーバとの鍵交換に参加することができる。クライアントは、クライアントの証明書のサーバ・リクエストに応答して、サーバにクライアント証明書をサブミットすることができ、追加的に証明書の確認を実施することができる。実施形態において、クライアント、サーバ、または任意の送信デバイスは、暗号化されたリンクを暗号化するために使用される選択暗号スイートのうち１つを選択し、変更暗号プロトコルを使用して、現在使用中の暗号を変更することができる。
【００１９】
本発明の実施形態において、第２の選択暗号スイートを選択することができる。第２の選択暗号スイートは、第１の選択暗号スイートとして選択されたものではない任意の選択暗号スイートであってもよい。例えば、クライアントが、暗号スイートの２つのセット、すなわちセキュアのセットとスループットのセットとを送信する場合、クライアントは、サーバから２つの選択スイート、すなわち選択セキュア・スイートと選択スループット・スイートとを受信する。クライアントが、転送されるクライアント・データの第１の部分に適しているとして、選択セキュア・スイートを第１の選択スイートとして選択するものの、後にセキュリティの低いデータを転送する場合、次にクライアントは、選択スループット・スイートを選択し、変更暗号プロトコルを使用して、リンクを暗号化するのに使用される暗号を選択セキュア・スイートから選択スループット・スイートに変更してもよい。
【００２０】
第２の選択暗号スイートが選択されると、クライアントは、第２の選択暗号スイートを使用してサーバとの変更暗号プロトコルを開始することができる。それに応答して、クライアントは、変更暗号プロトコルが完了したとの指標をサーバから受信する。クライアントは、この指標を受信すると、暗号化のための第２の選択暗号スイートによる送信を始めることができる。
【００２１】
本発明の実施形態において、サーバまたは他の受信デバイスは、ハンドシェイクの間に、クライアントから暗号スイートの少なくとも２つのセットを受信する。サーバは、暗号スイートの少なくとも２つのセットの各セットについて選択暗号スイートを選択する。サーバは、サーバ自体の設定に従って選択暗号スイートを選択すること、その設定に最適な各セットにおけるスイートを選択することができる。サーバは、サーバ自体の設定に最適な１つまたは複数の暗号スイートを含む設定ファイルを参照することができる。サーバは、選択暗号スイートをクライアントに送信する。次にサーバは、クライアントと共にセキュアな接続の確立に参加し、その際にクライアントは、接続を暗号化するためにクライアントまたは他の送信デバイスによって選択された第１の選択暗号スイートを使用する。本発明の実施形態において、サーバは、サーバとのセキュアな接続を確立する際にクライアント鍵交換を受信することができる。第１の選択暗号スイートは、変更暗号プロトコルを使用して確立することができる。
【００２２】
本発明の実施形態において、サーバは、クライアントまたは他の送信デバイスから、第２の選択暗号スイートを確立する変更暗号プロトコルを受信することができる。それに応じて、サーバまたは受信デバイスは、変更暗号プロトコルを使用して、第２の選択暗号スイートを初期化することができる。サーバは、変更暗号プロトコルが完了したという指標を、クライアントに送信することができる。次いでサーバは、第２の選択暗号スイートを使用して暗号化されたデータを送受信することができる。実施形態において、サーバはまた、変更暗号プロトコルを使用して、取り決められた暗号のうちの１つをサブミットすることによりセッションの暗号化を変更することができる。
【００２３】
次に図１を参照すると、本発明の実施形態による、複数の暗号によりセキュアなリンクを確立するための例示のシステム１００のブロック図が描かれている。限定されないが、ネットワーク・リンクを介して接続される３つ以上のデバイスを有するシステムを含めて、他のあり得る編成／設定が可能であることから、図１にあるような２つのコンピュータ１１２Ａ、１１２Ｂとしてシステム１００の図示された編成は非限定的であることを理解されたい。
【００２４】
システム１００はネットワーク・リンク１１４を介して通信する２つのコンピュータ１１２Ａおよび１１２Ｂを描いている。コンピュータ１１２Ａ、１１２Ｂのそれぞれは、ネットワーク・プロトコルを含むネットワーク層１１０Ａ、１１０Ｂを含み、ネットワーク・リンク１１４を有効にし、かつサポートしている。ネットワーク・プロトコルはアドレッシング、ルーティング、およびトラフィック制御を含むことができる。
【００２５】
コンピュータ１１２Ａ、１１２Ｂのそれぞれは、主にＩｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ（ＩＰ）およびＩＰアドレスに関するデータ・パケットの適切な取り扱いに関係しているインターネット層１０８Ａ、１０８Ｂを含む。
【００２６】
コンピュータ１１２Ａ、１１２Ｂのそれぞれは、トランスポート層１０６Ａ、１０６Ｂを含む。トランスポート層１０６Ａ、１０６Ｂは一般的にはネットワーク上のポイント間のデータ・セグメントの送信を担当することができる。この役割にはセグメント化、確認応答、および多重化が含まれ得る。
【００２７】
コンピュータ１１２Ａ、１１２Ｂのそれぞれは、主に認証メカニズムに関係し得るセキュリティ層１０４Ａ、１０４Ｂを含む。実施形態において、本明細書で説明される方法はセキュリティ層１０４Ａ、１０４Ｂによって実行することができる。
【００２８】
コンピュータ１１２Ａ、１１２Ｂのそれぞれは、アプリケーション層１０２Ａ、１０２Ｂを含む。アプリケーション層は、リソース共有およびリモート・ファイル・アクセスなどの高次のアプリケーション・プログラミング・インターフェースを含むことができる。
【００２９】
次に図２を参照すると、本発明の実施形態による、ＳＳＬ接続のライフタイム２００の例が描かれている。この例では、接続のライフタイム２００はホストＡ２１２からホストＢ２１４に向かうものとして示されている。最初のハンドシェイクおよび暗号ネゴシエーションの後、ホストＢ２１４はホストＢ２１４からホストＡ２１２への同一の通信チャネル上で独立的にデータおよび暗号変更を送信することができることを理解されたい。同様に、本発明の実施形態において、ホストＢ２１４はハンドシェイクおよび暗号ネゴシエーションを開始することができる。
【００３０】
２０２において、ホストＡ２１２は、ハンドシェイクおよび複数の暗号ネゴシエーションを開始することにより接続を開始する。この例の開始デバイスであるホストＡ２１２は、この例の受信デバイスであるホストＢ２１４にデータ・パケットを送信することにより、２０２でハンドシェイクを開始することができる。本発明の実施形態において、ホストＡ２１２はブラウザであってもよく、ホストＢ２１４はｈｔｔｐサーバであってもよい。ホストＡ２１２は、ハンドシェイクの間に、暗号スイートの２つ以上のセットをホストＢ２１４にサブミットすることにより、複数の暗号ネゴシエーションをさらに開始することができる。暗号スイートのセットは、提供されるセキュリティの程度によって編成することができるか、または本発明の実施形態において、セットにランダムにソートしてもよい。例えば、ホストＡ２１２は、それぞれが高セキュリティの暗号化を含む暗号スイートの２つのセットをサブミットすることができる。このように、ホストＡ２１２は、６つの高セキュリティ暗号スイートを含むことができるか、また６つの高セキュリティのスイートを３つのスイートの２つのセットにランダムに編成することができる。暗号スイートを２つのセットでホストＢ２１４にサブミットすることにより、ホストＡ２１２は、ホストＢ２１４に、ホストＡ２１２が２つの高セキュリティ暗号化をネゴシエートしてセッション中で使用しようとしていることを知らせる。実施形態において、ホストＡ２１２は、セット内の暗号スイートを優先順位の順でサブミットすることができる。ホストＢ２１４は、サーバがサポート可能と判断したそれぞれのセット内で第１のスイートを選択することにより、ホストＡ２１２の優先順に重み付けすることができる。
【００３１】
２０４において、ホストＡ２１２は、変更暗号プロトコルを使用して第１の暗号をセットする。２０６において、ホストＡ２１２は、第１の暗号を使用してホストＢ２１４にデータを転送する。
【００３２】
２０８において、ホストＡ２１２は、第２の暗号をセットするために変更暗号プロトコルを使用することにより暗号を変更する。２０８において、ホストＡ２１２は、現在の暗号化でのセキュリティ・リスクを検出したことに応答して暗号を変更することができるか、または定期的なもしくはランダムな間隔で暗号を変更することができる。上の例のように、ハンドシェイクの間に複数の高セキュリティのスイートが取り決められる場合、使用中の暗号化はセッションのセキュリティを高めるために交代することができる。
【００３３】
次に２１０において、ホストＡ２１２は、第２の暗号を使用して、データをホストＢ２１４に転送することができる。
【００３４】
ホストＢ２１４がホストＡ２１２から第２の暗号を含む変更暗号プロトコルのパケットを受信すると、ホストＢ２１４は、受信される後続のデータが第２の暗号で暗号化されると判断することができる。まず、ホストＢ２１４は、第２の暗号を初期化する前に、復号のために第１の暗号を使用して、その読み取り保留バッファ内のすべてのデータを読み取ることができる。実施形態において、ホストＢ２１４は、読み取り保留バッファ内のデータを復号するために、第１および第２の暗号のそれぞれを試行することができる。
【００３５】
次に図３を参照すると、本発明の実施形態による、クライアント３０２とサーバ３０４との間のＳＳＬハンドシェイク・プロトコルの例が描かれている。限定されないが、プロトコルまたはプロトコルの一部、例えば変更暗号プロトコルを開始するサーバ３０４を含めて、他の可能な編成／設定が可能であることから、クライアント３０２からサーバ３０４へ向けられるものとして描かれるプロトコルの編成は、非限定的であることを理解されたい。
【００３６】
クライアント３０２または他の送信デバイスは、クライアント「ｈｅｌｌｏ」メッセージ３０６を使用してハンドシェイクおよび複数の暗号ネゴシエーションを開始する。クライアント「Ｈｅｌｌｏ」メッセージは、２つ以上の暗号セットを含むことができ、暗号セットは、与えられた異なるセキュリティ・レベルに従って暗号スイートをセット内にソートさせることができる。スイートはセットごとに優先順位の順で一覧にすることができる。
【００３７】
サーバ３０４または他の受信デバイスは、サーバ「ｈｅｌｌｏ」メッセージ３０８に応答する。サーバ「ｈｅｌｌｏ」メッセージ３０８は、クライアント「ｈｅｌｌｏ」メッセージ３０６内でクライアントによってサブミットされたそれぞれのセットから、開始された暗号化されたリンクのセッション中に使用するためにサーバによって選択された、選択暗号スイートを含むことができる。本発明の実施形態において、サーバ「ｈｅｌｌｏ」メッセージ３０８は、任意選択でクライアント証明書のリクエストを含むことができる。サーバ「ｈｅｌｌｏ」メッセージ３０８は、選択された暗号スイートのそれぞれについてサーバ鍵交換を含むことができる。
【００３８】
クライアント「ｈｅｌｌｏ」メッセージ３０６およびサーバ「ｈｅｌｌｏ」メッセージ３０８は共に、ハンドシェイク・プロトコルの第１のフェーズを含むことができる。このフェーズの間に、クライアント３０２およびサーバ３０４のそれぞれは、各自の「ｈｅｌｌｏ」メッセージに含まれているパケットを介してデータを互いに交換することができる。クライアントとサーバは、セキュリティ機能（プロトコルのバージョンを含む）、セッションＩＤ、暗号スイート、圧縮方法、および最初の乱数の確立に関するパケットを交換することができる。
【００３９】
本発明の実施形態において、サーバ３０４はまた、サーバ「ｈｅｌｌｏ  ｄｏｎｅ」メッセージ３１０を与えることができる。
【００４０】
サーバ「ｈｅｌｌｏ  ｄｏｎｅ」メッセージ３１０は、ハンドシェイク・プロトコルの第２のフェーズを含むことができる。実施形態において、第２のフェーズは、サーバ証明書メッセージ、サーバ鍵交換、およびクライアント証明書のサーバ・リクエストをさらに含むことができる。
【００４１】
本発明の実施形態において、クライアント３０２は、例えばサーバによってリクエストされる場合、任意選択でクライアント証明書メッセージ３１２を与えることができる。
【００４２】
クライアント３０２およびサーバ３０４は、一連の鍵交換に参加し、１つの鍵交換は、サーバによって選択されたそれぞれの暗号スイートについてである。プロトコル内に提示される例では、スループット鍵交換３１４、セキュリティ鍵交換３１６、および中間鍵交換３１８、の３つの鍵交換がある。鍵交換の数は、プロトコルのフェーズ１の間にクライアント３０２によってサブミットされた暗号スイートのセットの数に従って、決定される。交換される鍵は、サーバとクライアントの両方に共通している。
【００４３】
本発明の実施形態において、クライアント３０２は、任意選択でクライアント証明書確認メッセージ３２０を与えることができる。
【００４４】
クライアント証明書メッセージ３１２、鍵交換３１４、３１６、３１８、およびクライアント証明書確認メッセージ３２０は、プロトコルの第３のフェーズを含むことができる。
【００４５】
クライアント３０２は、変更暗号プロトコルのメッセージ３２２を使用して、暗号化のための最初の選択暗号スイートを選択することができる。最初の選択暗号スイートは、サーバ３０４に転送されるデータの第１の部分の保護必要度に従って、クライアント３０２によって選択することができる。
【００４６】
サーバ３０４は、選択された暗号スイートを初期化し、変更暗号プロトコルのメッセージ３２４を使用して、サーバ３０４が最初の選択暗号スイートで暗号化されたデータを受信するよう準備されたことをクライアント３０２にアラートする。
【００４７】
本発明の実施形態において、変更暗号プロトコルのメッセージ３２２および３２４は、プロトコルの第４のフェーズであり得る。クライアント３０２およびサーバ３０４のそれぞれは、各自の変更暗号プロトコルの部分を完了した後、「ｆｉｎｉｓｈｅｄ」メッセージを追加的に与えることができる。ハンドシェイク・プロトコルはこの第４のフェーズの間に完了することができる。
【００４８】
次いで、クライアント３０２およびサーバ３０４は、選択された暗号スイートを使用してデータ転送３２６用の暗号化されたリンクを使用することができる。実施形態において、クライアント３０２およびサーバ３０４のそれぞれは、変更暗号プロトコルと、ハンドシェイクの間に取り決められた選択暗号スイートのうちの１つとをサブミットすることにより、セッションの暗号化を変更することができる。
【００４９】
本発明の実施形態において、セッション接続はいったん確立されると双方向のものになり得る。サーバ３０４およびクライアント３０２のそれぞれは、互いにデータを送信することができ、それぞれはデータを同時に送信および受信の両方ともできる。送信側として作用する場合、それぞれは変更暗号プロトコルを独立的に実行し、転送されるデータについて取り決められた暗号のうちの１つを選択することができる。この方法では、チャネル上には２つの異なる暗号があり得、１つはサーバからクライアントへのリンク上に、もう一方はクライアントからサーバへのリンク上にある。
【００５０】
データ転送３２６に続いて、クライアント３０２およびサーバ３０４は、別の変更暗号プロトコル３２８に参加し、その別の選択暗号プロトコルを用いてデータ転送３３０などのさらなる通信を暗号化することができる。例えば、クライアント３０２は、暗号プロトコルの２つのセットを、クライアント「ｈｅｌｌｏ」メッセージ３０６と共にサーバにサブミットすることができる。クライアント３０２は、暗号スイートＱ、Ｒ、およびＳを有するセット、ならびにスイートＸ、Ｙ、およびＺを有する別のセットをサブミットすることができる。サーバ３０４は、クライアント３０２の優先順位およびサーバ３０４自体の設定に従って、スイートＱおよびＸを選択暗号スイートとして選択することができる。変更暗号プロトコル・メッセージ３２２を使用して、クライアント３０２は、そのセッション用の現在の暗号化アルゴリズムとしてスイートＱを確立することができる。次いでデータ転送３２６内のデータを、暗号スイートＱを使用して暗号化および復号することができる。次いで、暗号変更プロトコル３２８を使用して、クライアント３０２またはサーバ３０４のいずれかは、現在の暗号化アルゴリズムを別の取り決められた選択暗号スイート、この例ではスイートＸに変更することができる。次いでデータ転送３３０内のデータを、暗号スイートＸを使用して暗号化および復号することができる。実施形態において、サーバ３０４または受信デバイスは、変更暗号プロトコル・メッセージ３２８が受信されると、転送３２６からのデータを読み取り保留バッファ内に有することができる。サーバ３０４は、変更暗号プロトコル・メッセージ３２８に応答してスイートＸの初期化が完了する前に、スイートＱを使用してデータ転送３２６からのデータの読み取りを完了することができる。
【００５１】
次に図４を参照すると、本発明の実施形態による、暗号化されたリンクを開始するための、クライアント側デバイス用の、例示のプロセス４００のフローチャートが描かれている。
【００５２】
動作４０４において、クライアントまたは他の送信デバイスは、最初のデータ・パケットを送信することによりハンドシェイクを開始する。最初のデータ・パケットは、クライアント「ｈｅｌｌｏ」メッセージと、クライアントがセッションの間に使用することを提案する２つ以上の暗号スイートのセットとを含むことができる。
【００５３】
動作４１２において、クライアントは、サーバまたは他の受信デバイスから、サーバのデータ・パケットを受信する。サーバのデータ・パケットは、動作４０４でクライアントによって提案された暗号スイートのそれぞれのセットからのサーバの選択暗号スイートを含むことができる。
【００５４】
動作４１４において、例えばサーバがクライアント証明書をリクエストする場合、クライアントは証明書をサーバに送信することができる。動作４１６において、クライアントは、クライアント鍵交換をそれぞれの選択暗号スイートについて送信する。動作４１８において、例えばサーバがクライアント証明書をリクエストしておいた場合、クライアントは、クライアント証明書確認を送信することができる。動作４２０において、クライアントは、リンクを暗号化するための最初の暗号スイート、および最初の暗号スイートをセットするための変更暗号プロトコルを送信する。動作４２６において、クライアントは、サーバが暗号変更プロトコルのサーバ側を完了して最初の暗号スイートをセットしたという確認を受信する。
【００５５】
次に図５を参照すると、本発明の実施形態による、暗号化されたリンクを開始するための、サーバ側デバイス用の、例示のプロセス４０１のフローチャートが描かれている。限定されないが、サーバにより開始されるプロセス４００およびクライアントにより実行されるプロセス４０１を含めて他の可能な編成／設定が可能であることから、クライアントからサーバへ向けられるものとして描かれたプロセス４００および４０１の編成は、非限定的であることを理解されたい。
【００５６】
動作４０６において、サーバは、クライアントの最初のデータ・パケットを受信する。最初のデータ・パケットは、例えばそれぞれのスイートによって与えられる様々なセキュリティの程度に従って、セットに分割される数多くの暗号スイートを含むことができる。
【００５７】
動作４０８において、サーバは、それぞれのセットに与えられる暗号スイートの中から、サーバがサポートすることができるそれぞれのセット由来の１つの暗号スイートを選択する。実施形態において、サーバは、所与のセットのうちサーバがサポートしうる暗号スイートを決定するためのパラメータについて、設定ファイルを、例えばサーバ自体の設定ファイルを参照することができる。本発明の実施形態において、受信されたセットは、含まれている暗号スイートをクライアントの優先順位の順に配置することができ、サーバは、適合するものとして識別するそれぞれのセット内の第１のスイートを選択することができる。
【００５８】
本発明の実施形態において、サーバは、クライアントによってサブミットされるセットよりも少ない選択暗号スイートを選択することができる。例えば、クライアントは、暗号スイートの２つのセットをサブミットすることができるが、サーバは、そのセットのうちの１つに適合するスイートを見つけられないことがある。そのような状況では、サーバは、１つの選択暗号スイートのみを返すことがある。
【００５９】
動作４１０において、サーバは、選択暗号スイート、すなわちセッションが開始される間に使用するためにサーバが選択しておいたそれぞれのセットからの暗号スイートを、クライアントまたは他の送信デバイスに送信する。実施形態において、サーバは、クライアント証明書リクエストまたは選択暗号スイート用のサーバ鍵交換あるいはその両方を追加的に転送することができる。
【００６０】
動作４２２において、サーバは、クライアントから第１の暗号と共に暗号変更プロトコルを受信する。第１の暗号は、サーバへ転送されるデータについての所望のセキュリティの程度に従って、クライアントまたは他の送信デバイスによって選択することができる。サーバは、暗号変更プロトコルに応答して、第１の暗号スイートを初期化する。サーバは、例えばサーバがリクエストしていれば、クライアント証明書確認およびクライアント側鍵交換を伴って、またはそれを伴わずに、クライアント証明書を追加的に受信することができる。
【００６１】
動作４２４において、サーバは、サーバがプロトコルのその部分を完了して第１の暗号スイートを初期化したことを示すために、暗号変更プロトコル・メッセージをクライアントに送信する。本発明の実施形態において、セッションの間を通じてクライアントまたはサーバのいずれかがさらなる暗号変更プロトコルを開始することができ、転送されるデータのセキュリティの必要性または所望の程度に従って、さらにはバッテリー寿命などの電力節約を考慮して、暗号化のセキュリティを調節している。
【００６２】
次に図６を参照すると、本発明の実施形態による、（例えば１つまたは複数の、プロセッサ回路またはコンピュータのコンピュータ・プロセッサを使用して）本明細書で説明される方法またはモジュール、および任意の関連の機能または動作のうち、１つまたは複数を実装する際使用することができる、例示のコンピュータ・システム（すなわちコンピュータ）５００の高次ブロック図が示されている。本発明のいくつかの実施形態において、コンピュータ・システム５００の主要なコンポーネントは、１つまたは複数のプロセッサまたはＣＰＵ５０２、メモリ・サブシステム５０４、端末インターフェース５１２、Ｉ／Ｏ（入力／出力）デバイス・インターフェース５１４、ストレージ・インターフェース５１６、およびネットワーク・インターフェース５１８を備えることができ、これらのすべては、メモリ・バス５０３、Ｉ／Ｏバス５０８、およびＩ／Ｏバス・インターフェース・ユニット５１０を介するコンポーネント間通信のために、直接的または間接的に通信可能に接続され得る。
【００６３】
コンピュータ・システム５００は、１つまたは複数の汎用でプログラム可能な中央処理装置（ＣＰＵ）５０２Ａ、５０２Ｂ、５０２Ｃ、および５０２Ｄを含むことができ、本明細書においては一般的にＣＰＵ５０２と称する。本発明のいくつかの実施形態において、コンピュータ・システム５００は、比較的大規模なシステムに典型的である複数のプロセッサを含むことができるが、本発明の他の実施形態において、コンピュータ・システム５００は、代替的に単一ＣＰＵのシステムであってもよい。それぞれのＣＰＵ５０２は、メモリ・サブシステム５０４に記憶される命令を実行することができ、１つまたは複数のレベルのオンボード・キャッシュを含むことができる。
【００６４】
本発明のいくつかの実施形態において、メモリ・サブシステム５０４は、ランダムアクセスの半導体メモリ、ストレージ・デバイス、またはデータおよびプログラムを記憶するための（揮発性または非揮発性いずれかの）記憶媒体を含むことができる。本発明のいくつかの実施形態において、メモリ・サブシステム５０４は、コンピュータ・システム５００の仮想メモリ全体を表現することができ、またコンピュータ・システム５００に接続されるか、またはネットワークを介して接続される他のコンピュータ・システムの仮想メモリを含むことができる。メモリ・サブシステム５０４は、概念的に単一のモノリシックなエンティティであってもよいが、本発明のいくつかの実施形態において、メモリ・サブシステム５０４は、キャッシュおよび他のメモリ・デバイスの階層構造などのより複雑な配置構成であってもよい。例えば、メモリは、複数のレベルのキャッシュに存在することができ、１つのキャッシュが命令を保持する一方で、別のキャッシュはプロセッサによって使用される非命令のデータを保持するように、これらのキャッシュは機能によってさらに分割することができる。メモリは、様々ないわゆるｎｏｎ−ｕｎｉｆｏｒｍ  ｍｅｍｏｒｙ  ａｃｃｅｓｓ（ＮＵＭＡ）のコンピュータ・アーキテクチャのいずれかで知られるように、異なるＣＰＵまたはＣＰＵセットに、さらに分散され関連付けられてもよい。本発明のいくつかの実施形態において、主メモリまたはメモリ・サブシステム５０４は、ＣＰＵ５０２によって使用されるメモリの制御およびフローの要素を含むことができる。これはメモリ・コントローラ５０５を含むことができる。メモリ５０４は、暗号スイートの複数のセットを含むことができる。例示のシステムでは、スループット暗号スイート５２０Ａのセットおよびセキュア暗号スイート５２０Ｂのセットが描かれている。実施形態において、暗号スイートの他のセット、例えば中間のセキュリティの暗号スイートのセット、またはセキュリティ以外の他の基準に従って編成された暗号スイートが記憶されてもよい。
【００６５】
図６では、メモリ・バス５０３は、ＣＰＵ５０２、メモリ・サブシステム５０４、およびＩ／Ｏバス・インターフェース５１０間で直接的な通信経路を与える単一のバス構造として示されているが、メモリ・バス５０３は、本発明のいくつかの実施形態において、複数の異なるバスまたは通信経路を含むことができ、それらは階層構造、星状もしくはウェブ状の構成におけるポイントツーポイントのリンク、複数の階層構造的なバス、並列および冗長な経路または他の適当なタイプの構成などの様々な形態のいずれかで配置構成され得る。さらには、Ｉ／Ｏバス・インターフェース５１０およびＩ／Ｏバス５０８は、単一の個々のユニットとして示されているが、コンピュータ・システム５００は、本発明のいくつかの実施形態において、複数のＩ／Ｏバス・インターフェース・ユニット５１０、複数のＩ／Ｏバス５０８またはその両方を含んでもよい。さらには、複数のＩ／Ｏインターフェース・ユニットが示され、様々なＩ／Ｏデバイスへつながる様々な通信経路からＩ／Ｏバス５０８を隔てているが、本発明の他の実施形態において、Ｉ／Ｏデバイスのいくつかまたは全ては、１つまたは複数のシステムＩ／Ｏバスに直接的に接続することができる。
【００６６】
本発明のいくつかの実施形態において、コンピュータ・システム５００は、マルチユーザのメーンフレーム・コンピュータ・システム、シングルユーザのシステム、または直接的なユーザ・インターフェースを有していないか殆ど有していないサーバ・コンピュータもしくは類似のデバイスであり得るが、他のコンピュータ・システム（クライアント）からのリクエストを受信する。さらには、本発明のいくつかの実施形態において、コンピュータ・システム５００は、デスクトップ・コンピュータ、ポータブル・コンピュータ、ラップトップもしくはノートブック型コンピュータ、タブレット・コンピュータ、ポケット・コンピュータ、電話機、スマートフォン、モバイル・デバイス、またはあらゆる他の適切なタイプの電子デバイスとして実装することができる。
【００６７】
図６は例示的なコンピュータ・システム５００の代表的な主要なコンポーネントを描くよう意図されていることに留意されたい。しかしながら、本発明のいくつかの実施形態において、個別のコンポーネントは図６で表現されるものと比べて多かれ少なかれ複雑さを有することがあり、図６で示されるもの以外にまたはそれらに追加的にコンポーネントが存在してもよく、そのようなコンポーネントの数、タイプ、および設定は変わることがあってもよい。
【００６８】
本発明は、インテグレーションのあらゆる可能な技術的詳細レベルにおけるシステム、方法、またはコンピュータ・プログラム製品あるいはその組合せであってもよい。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令を有するコンピュータ可読記憶媒体を含むことができる。
【００６９】
コンピュータ可読記憶媒体は、命令実行デバイスによる使用のための命令を保持および記憶することができる有形のデバイスであり得る。コンピュータ可読記憶媒体は、例えば、電子記憶装置デバイス、磁気記憶装置デバイス、光学記憶装置デバイス、電磁気記憶装置デバイス、半導体記憶装置デバイスまたは前述のあらゆる適切な組合せであってもよいが、それに限定はしない。コンピュータ可読記憶媒体のより具体的な例の非網羅的な列挙としては、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、消去可能プログラマブル読み取り専用メモリ（ＥＰＲＯＭまたはフラッシュ・メモリ）、静的ランダム・アクセス・メモリ（ＳＲＡＭ）、ポータブル・コンパクト・ディスク読み取り専用メモリ（ＣＤ−ＲＯＭ）、デジタル多用途ディスク（ＤＶＤ）、メモリ・スティック、フロッピー・ディスク、命令を記録されて有するパンチカードまたは溝に刻まれた構造などの機械的にエンコードされたデバイス、および前述のあらゆる適切な組合せ、を含む。本明細書において使用される場合、コンピュータ可読記憶媒体は、電波または他の自由に伝搬する電磁波、導波路もしくは他の送信媒体（例えば、光ファイバ・ケーブルを通過する光パルス）を介して伝搬する電磁波、または電線を介して送信される電気的信号など、一過性の信号そのものであると解釈されてはならない。
【００７０】
本明細書において説明されるコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体から、個別の計算／処理デバイスに、あるいは、例えばインターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワークもしくは無線ネットワークまたはその組合せなどのネットワークを介して、外部のコンピュータもしくは外部の記憶装置デバイスに、ダウンロードすることができる。ネットワークは、銅の送信ケーブル、光学送信ファイバ、無線送信、ルータ、ファイヤウォール、スイッチ、ゲートウェイ・コンピュータまたはエッジ・サーバあるいはその組合せを備えることができる。それぞれの計算／処理デバイスのネットワーク・アダプタ・カードまたはネットワーク・インターフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、個別の計算／処理デバイス内のコンピュータ可読記憶媒体に記憶するためにコンピュータ可読プログラム命令を転送する。
【００７１】
本発明の動作を実施するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャ（ＩＳＡ）命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路のための構成データ、あるいはＳｍａｌｌｔａｌｋ、Ｃ＋＋などのオブジェクト指向プログラミング言語、および”Ｃ”プログラミング言語などの手続き型プログラミング言語もしくは類似するプログラミング言語、を含む１つまたは複数のプログラミング言語の任意の組合せで記述された、ソース・コードまたはオブジェクト・コードのいずれかであってもよい。コンピュータ可読プログラム命令は、すべてユーザのコンピュータ上で、一部はユーザのコンピュータ上でスタンドアロンのソフトウェア・パッケージとして、一部はユーザのコンピュータ上かつ一部は遠隔のコンピュータ上で、またはすべて遠隔のコンピュータ上もしくはサーバ上で、実行することができる。後者のシナリオにおいて、遠隔のコンピュータは、ローカル・エリア・ネットワーク（ＬＡＮ）もしくはワイド・エリア・ネットワーク（ＷＡＮ）を含むあらゆるタイプのネットワークを介してユーザのコンピュータに接続されてもよく、または接続は外部のコンピュータ（例えば、インターネット・サービス・プロバイダを使用するインターネットを介して）に対してなされてもよい。一部の実施形態において、例えば、プログラマブル論理回路、フィールドプログラマブル・ゲート・アレイ（ＦＰＧＡ）、またはプログラマブル論理アレイ（ＰＬＡ）を含む電子回路は、本発明の態様を実施するために、コンピュータ可読プログラム命令の状態情報を利用することによって、コンピュータ可読プログラム命令を実行して電子回路を個別化することができる。
【００７２】
本発明の態様は本発明の実施形態による方法、装置（システム）、およびコンピュータ・プログラム製品のフローチャート図またはブロック図あるいはその両方を参照しながら本明細書において説明される。フローチャート図またはブロック図あるいはその両方のそれぞれのブロック、およびフローチャート図またはブロック図あるいはその両方におけるブロックの組合せは、コンピュータ可読プログラム命令によって実装され得ることが理解されよう。
【００７３】
これらのコンピュータ可読プログラム命令は、コンピュータまたは他のプログラマブル・データ処理装置のプロセッサを介して実行する命令が、フローチャートまたはブロック図あるいはその両方のブロックに指定される機能／作用を実装する手段を作成するように、汎用コンピュータ、特殊目的コンピュータ、または他のプログラマブル・データ処理装置のプロセッサに提供されて機械を生成するものであってよい。これらのコンピュータ可読プログラム命令はまた、命令を記憶して有するコンピュータ可読記憶媒体が、フローチャートまたはブロック図あるいはその両方のブロックに指定される機能／作用の態様を実装するための命令を含む製造物品を備えるように、コンピュータ、プログラマブル・データ処理装置、または他のデバイスあるいはその組合せに特定のやり方で機能するように指示することができるコンピュータ可読記憶媒体に記憶されてもよい。
【００７４】
コンピュータ可読プログラム命令はまた、コンピュータ、他のプログラマブル装置、または他のデバイスで実行する命令がフローチャートまたはブロック図あるいはその両方のブロックに指定される機能／作用を実装するように、コンピュータ、他のプログラマブル・データ処理装置、または他のデバイス上にロードされて、コンピュータ、他のプログラマブル装置、または他のデバイス上で一連の動作可能なステップを実施させ、コンピュータ実装処理を生成するものであってもよい。
【００７５】
図面中のフローチャートおよびブロック図は、本発明の様々な実施形態に従って、システム、方法、およびコンピュータ・プログラム製品の可能な実装形態の、アーキテクチャ、機能性、および動作を図示している。この点において、フローチャートまたはブロック図のそれぞれのブロックは、指定される論理機能を実装するための１つまたは複数の実行可能な命令を含む、命令のモジュール、セグメント、または部分を表現することができる。一部の代替的な実装形態において、ブロックにおいて示した機能は、図面で示した順とは異なって発生してもよい。例えば、連続して示される２つのブロックは、実際には実質的に同時に実行されてもよく、またはブロックは、関与する機能性によっては時に逆の順で実行されてもよい。ブロック図またはフローチャート図あるいはその両方のそれぞれのブロック、およびブロック図またはフローチャート図あるいはその両方のブロックの組合せは、指定される機能もしくは作用を実施する、または特殊目的ハードウェアおよびコンピュータ命令の組合せを実行する、特殊目的ハードウェア・ベースのシステムによって実装され得ることにも留意されたい。
【００７６】
例示を目的として本発明の様々な実施形態の説明を提示してきたが、網羅的であること、または開示された本発明の実施形態に限定することは意図されていない。本発明の説明された実施形態の範囲から逸脱することなく、多くの変更および変形が当業者にとって明らかとなろう。本明細書において使用される用語は、本発明の原理、実践的な用途もしくは市場で見られる技術を超える技術的な改善を説明するため、または他の当業者が本明細書に開示される本発明の実施形態を理解できるように選ばれたものである。
【図１】
2021502014.tif 000003
【図２】
2021502014.tif 000004
【図３】
2021502014.tif 000005
【図４】
2021502014.tif 000006
【図５】
2021502014.tif 000007
【図６】
2021502014.tif 000008
【手続補正書】
【提出日】令和2年5月29日(2020.5.29)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
暗号化されたリンクを提供するシステムであって、
暗号スイートの２つ以上のセットを含むメモリと、
前記メモリと通信しているプロセッサと
を備え、前記プロセッサは方法を実施するように構成され、前記方法は、
ハンドシェイクの間に、暗号スイートの少なくとも２つのセットをサーバに送信することと、
前記暗号スイートの少なくとも２つのセットのそれぞれのセットについての選択暗号スイートを前記サーバから受信することと、
第１の選択暗号スイートを選択することと、
前記第１の選択暗号スイートを使用し前記サーバとの接続を確立して、前記接続を暗号化することと
を含む、システム。
【請求項２】
前記暗号スイートの少なくとも２つのセットのそれぞれは、異なる程度のデータ・セキュリティを提供する、請求項１に記載のシステム。
【請求項３】
前記暗号スイートの少なくとも２つのセットの少なくとも１つは、セキュアな暗号である、請求項２に記載のシステム。
【請求項４】
前記方法は、クライアント鍵交換を実施することをさらに含む、請求項１に記載のシステム。
【請求項５】
前記サーバから選択暗号スイートを受信することは、サーバ鍵交換を含む、請求項１に記載のシステム。
【請求項６】
暗号化されたリンクを確立する方法であって、
ハンドシェイクの間に、暗号スイートの少なくとも２つのセットをサーバに送信することと、
前記暗号スイートの少なくとも２つのセットのそれぞれのセットについての選択暗号スイートを前記サーバから受信することと、
第１の選択暗号スイートを選択することと、
前記第１の選択暗号スイートを使用し前記サーバとの接続を確立して、前記接続を暗号化することと
を含む方法。
【請求項７】
前記サーバとの接続を確立することは、鍵交換と、前記第１の選択暗号スイートを使用する変更暗号プロトコルとを含む、請求項６に記載の方法。
【請求項８】
第２の選択暗号スイートを選択することと、
前記第２の選択暗号スイートにより前記サーバとの変更暗号プロトコルを開始することと、
前記変更暗号プロトコルが完了したという指標を前記サーバから受信することと、
前記変更暗号プロトコルが完了したという前記指標を受信したことに応答して、前記第２の選択暗号スイートを使用して暗号化されたデータを送信することと
をさらに含む、請求項６に記載の方法。
【請求項９】
変更暗号プロトコルおよび第２の選択暗号スイートを前記サーバから受信することと、
前記変更暗号プロトコルが完了したという指標を前記サーバに送信することと、
前記第２の選択暗号スイートにより暗号化したデータを前記サーバから受信することと、
前記第２の選択暗号スイートを使用して、受信された前記データを復号することと
をさらに含む、請求項６に記載の方法。
【請求項１０】
前記暗号スイートの少なくとも２つのセットのそれぞれは、異なる程度のデータ・セキュリティを提供する、請求項６に記載の方法。
【請求項１１】
前記第１の選択暗号スイートを使用してデータを前記サーバに転送することをさらに含み、前記第１の選択暗号スイートは、前記転送されたデータに関連付けられたセキュリティの程度に従って選択される、請求項１０に記載の方法。
【請求項１２】
クライアント証明書を送信することをさらに含む、請求項６に記載の方法。
【請求項１３】
暗号化されたリンクを確立する方法であって、
ハンドシェイクの間に、クライアントから暗号スイートの少なくとも２つのセットを受信することと、
前記暗号スイートの少なくとも２つのセットのそれぞれのセットについて選択暗号スイートを選択することと、
前記選択暗号スイートを前記クライアントに送信することと、
第１の選択暗号スイートを使用し前記クライアントとの接続を確立して、前記接続を暗号化することと
を含む方法。
【請求項１４】
前記クライアントとの接続を確立することは、鍵変更と、前記第１の選択暗号スイートを使用する変更暗号プロトコルとを含む、請求項１３に記載の方法。
【請求項１５】
変更暗号プロトコルを使用して前記クライアントから第２の暗号スイートを受信することと、
前記第２の暗号スイートを初期化することと、
前記変更暗号プロトコルが完了したという指標を前記クライアントに送信することと、
第２の選択暗号スイートを使用して前記接続を暗号化することと
をさらに含む、請求項１３に記載の方法。
【請求項１６】
変更暗号プロトコルおよび第２の暗号スイートを前記クライアントに送信することと、
前記変更暗号プロトコルが完了したという指標を前記クライアントから受信することと、
前記第２の選択暗号スイートを使用してデータ・セットを暗号化することと、
前記第２の選択暗号スイートにより暗号化された前記データ・セットを、前記クライアントに送信することと
をさらに含む、請求項１３に記載の方法。
【請求項１７】
前記選択暗号スイートのそれぞれは、設定ファイルに従って選択される、請求項１３に記載の方法。
【請求項１８】
前記設定ファイルは、適合する暗号スイートを識別する、請求項１７に記載の方法。
【請求項１９】
前記暗号スイートの少なくとも２つのセットのそれぞれは、異なる程度のデータ・セキュリティを提供する、請求項１３に記載の方法。
【請求項２０】
前記第１の選択暗号スイートを使用してデータを前記サーバに転送することをさらに含み、前記第１の選択暗号スイートは、前記転送されたデータに関連付けられたセキュリティの程度に従って選択される、請求項１９に記載の方法。
【国際調査報告】
2021502014.tif 000009
2021502014.tif 000010