特許第6641363号(P6641363)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ アリババ グループ ホウルディング リミテッドの特許一覧

特許6641363安全なネットワーク通信用の方法及び機器
<>
  • 特許6641363-安全なネットワーク通信用の方法及び機器 図000002
  • 特許6641363-安全なネットワーク通信用の方法及び機器 図000003
  • 特許6641363-安全なネットワーク通信用の方法及び機器 図000004
  • 特許6641363-安全なネットワーク通信用の方法及び機器 図000005
  • 特許6641363-安全なネットワーク通信用の方法及び機器 図000006
  • 特許6641363-安全なネットワーク通信用の方法及び機器 図000007
  • 特許6641363-安全なネットワーク通信用の方法及び機器 図000008
  • 特許6641363-安全なネットワーク通信用の方法及び機器 図000009
  • 特許6641363-安全なネットワーク通信用の方法及び機器 図000010
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6641363
(24)【登録日】2020年1月7日
(45)【発行日】2020年2月5日
(54)【発明の名称】安全なネットワーク通信用の方法及び機器
(51)【国際特許分類】
   H04L 9/08 20060101AFI20200127BHJP
【FI】
   H04L9/00 601C
   H04L9/00 601E
【請求項の数】20
【全頁数】27
(21)【出願番号】特願2017-521578(P2017-521578)
(86)(22)【出願日】2015年10月22日
(65)【公表番号】特表2017-533651(P2017-533651A)
(43)【公表日】2017年11月9日
(86)【国際出願番号】CN2015092506
(87)【国際公開番号】WO2016066039
(87)【国際公開日】20160506
【審査請求日】2018年10月19日
(31)【優先権主張番号】201410584748.0
(32)【優先日】2014年10月27日
(33)【優先権主張国】CN
(73)【特許権者】
【識別番号】511050697
【氏名又は名称】アリババ グループ ホウルディング リミテッド
(74)【代理人】
【識別番号】100079108
【弁理士】
【氏名又は名称】稲葉 良幸
(74)【代理人】
【識別番号】100109346
【弁理士】
【氏名又は名称】大貫 敏史
(74)【代理人】
【識別番号】100117189
【弁理士】
【氏名又は名称】江口 昭彦
(74)【代理人】
【識別番号】100134120
【弁理士】
【氏名又は名称】内藤 和彦
(72)【発明者】
【氏名】チェン,シャオジャン
【審査官】 行田 悦資
(56)【参考文献】
【文献】 特開2005−138418(JP,A)
【文献】 特開平11−331148(JP,A)
【文献】 特開2002−344438(JP,A)
【文献】 特開2007−124055(JP,A)
【文献】 特開2012−235214(JP,A)
【文献】 特開2006−276093(JP,A)
【文献】 特開2012−221111(JP,A)
【文献】 特開2009−141588(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 9/08
(57)【特許請求の範囲】
【請求項1】
少なくとも1つのプロセッサを含む機器によって実行される、安全なネットワーク通信用の方法であって、前記方法が、
前記機器が、ハンドシェイク要求メッセージをサーバに送信することであって、
前記ハンドシェイク要求メッセージが、第1の公開鍵を用いることによって暗号化された第1の乱数、及び前記第1の公開鍵を用いることによって暗号化された第1のサービス要求データを含む、送信することと、
前記機器が、前記サーバから返信されたハンドシェイク応答メッセージを受信することであって、前記ハンドシェイク応答メッセージが、前記第1のサービス要求データを用いることによって前記サーバにより生成された第1のサービス応答データと、第2の乱数とを含み、前記第1のサービス応答データは、前記第1の乱数を用いることによって暗号化され、前記第2の乱数は、前記第1の乱数を用いることによって暗号化され、前記第1の乱数と前記第1のサービス要求データは、前記ハンドシェイク応答メッセージを復号することによって取得される、受信することと、
前記機器が、前記第1のサービス応答データ及び前記第2の乱数を取得するために、前記第1の乱数を用いることによって前記ハンドシェイク応答メッセージを復号することと、
前記機器が、前記第1の乱数及び前記第2の乱数に従って、前記サーバとのセッションにおいて用いられるセッション鍵を計算することと、
を含む方法。
【請求項2】
前記機器が、暗号文サービス要求メッセージを前記サーバに送信することであって、
前記暗号文サービス要求メッセージが、前記セッション鍵の識別子、及び前記セッション鍵を用いることによって暗号化された第2のサービス要求データを含む、
送信することと、
前記機器が、前記サーバから返信された暗号文サービス応答メッセージを受信することであって、
前記暗号文サービス応答メッセージが、前記対応するセッション鍵を用いることによって暗号化された第2のサービス応答データを含み、
前記第2のサービス応答データが、前記セッション鍵の前記識別子を用いて前記暗号文サービス要求メッセージを復号することによって取得される前記第2のサービス要求データに従って生成される、
受信することと、
を更に含む、請求項1に記載の方法。
【請求項3】
前記機器が、平文サービス要求メッセージを前記サーバに送信することであって、
前記平文サービス要求メッセージが、平文の第3のサービス要求データを含む、
送信することと、
前記機器が、前記サーバから返信された平文サービス応答メッセージを受信することであって、
前記平文サービス応答メッセージが、前記平文の第3のサービス応答データを含み、
前記第3のサービス応答データが、前記平文サービス要求メッセージから取得される前記第3のサービス要求データに従って生成される、
受信することと、
を更に含む、請求項2に記載の方法。
【請求項4】
前記機器が、前記サーバから返信された前記セッション鍵の満了の通知を受信することと、
前記機器が、別のハンドシェイク要求メッセージを前記サーバに送信することと、
を更に含む、請求項2に記載の方法。
【請求項5】
少なくとも1つのプロセッサを含む機器によって実行される、安全なネットワーク通信用の方法であって、前記方法が、
前記機器が、クライアントから送信されたハンドシェイク要求メッセージを受信することであって、前記ハンドシェイク要求メッセージが、第1の公開鍵を用いることによって暗号化された第1の乱数、及び前記第1の公開鍵を用いることによって暗号化された第1のサービス要求データを含む、受信することと、
前記機器が、前記第1の乱数及び前記第1のサービス要求データを取得するために、前記第1の公開鍵に対応する第1の秘密鍵を用いることによって、前記ハンドシェイク要求メッセージを復号することと、
前記機器が、前記第1のサービス要求データに従って、第1のサービス応答データを生成することと、
前記機器が、ハンドシェイク応答メッセージを前記クライアントに送信することであって、
前記ハンドシェイク応答メッセージが、前記第1の乱数を用いることによって暗号化された前記第1のサービス応答データ、及び前記第1の乱数を用いることによって暗号化された第2の乱数を含む、
送信することと、
前記機器が、第1の鍵アルゴリズムに基づき、前記第1の乱数及び前記第2の乱数に従って、セッションにおいて用いられるセッション鍵を計算することと、
を含む方法。
【請求項6】
前記機器が、前記クライアントから送信された暗号文サービス要求メッセージを受信することであって、前記暗号文サービス要求メッセージが、前記セッション鍵の識別子、及び前記セッション鍵を用いることによって暗号化された第2のサービス要求データを含む、受信することと、
前記機器が、前記セッション鍵の前記識別子に従って、対応するセッション鍵を調べることと、
前記機器が、前記第2のサービス要求データを取得するために、前記対応するセッション鍵を用いることによって、前記暗号文サービス要求メッセージを復号することと、
前記機器が、前記第2のサービス要求データに従って、第2のサービス応答データを生成することと、
前記機器が、暗号文サービス応答メッセージを前記クライアントに送信することであって、前記暗号文サービス応答メッセージが、前記対応するセッション鍵を用いることによって暗号化された前記第2のサービス応答データを含む、送信することと、
を更に含む、請求項5に記載の方法。
【請求項7】
前記機器が、前記クライアントによって送信された平文サービス要求メッセージを受信することであって、前記平文サービス要求メッセージが、平文の第3のサービス要求データを含む、受信することと、
前記機器が、前記平文サービス要求メッセージから前記第3のサービス要求データを取得することと、
前記機器が、前記第3のサービス要求データに従って、前記平文の第3のサービス応答データを生成することと、
前記機器が、平文サービス応答メッセージを前記クライアントに送信することであって、前記平文サービス応答メッセージが、前記平文の前記第3のサービス応答データを含む、送信することと、
を更に含む、請求項6に記載の方法。
【請求項8】
前記機器が、前記クライアントから送信された第4のサービス要求メッセージを受信することと、
前記機器が、前記第4のサービス要求メッセージが、前記暗号文サービス要求メッセージか又は前記平文サービス要求メッセージかどうかを判定することと、
前記機器が、前記第4のサービス要求メッセージが、前記暗号文サービス要求メッセージか又は前記平文サービス要求メッセージかどうかの判定結果に従って、第1の暗号化識別子を生成することと、
前記機器が、前記第4のサービス要求メッセージの識別子と前記第4のサービス要求メッセージの前記第1の暗号化識別子との間の第1のマッピング関係を確立することと、
前記機器が、前記クライアントから送信された第5のサービス要求メッセージを受信すると、前記第5のサービス要求メッセージの識別子及び前記第1のマッピング関係に従って、第2の暗号化識別子を調べることと、
前記機器が、前記第5のサービス要求メッセージが前記暗号文サービス要求メッセージであることを前記第2の暗号化識別子が示す場合に、前記クライアントへの前記暗号文サービス応答メッセージの送信の実行をトリガすることと、
前記機器が、前記第5のサービス要求メッセージが前記平文サービス要求メッセージであることを前記第2の暗号化識別子が示す場合に、前記クライアントへの前記平文サービス応答メッセージの送信の実行をトリガすることと、
を更に含む、請求項7に記載の方法。
【請求項9】
安全なネットワーク通信用の機器であって、前記機器が、
ハンドシェイク要求メッセージをサーバに送信するように構成されたハンドシェイク要求送信ユニットであって、
前記ハンドシェイク要求メッセージが、第1の公開鍵を用いることによって暗号化された第1の乱数、及び前記第1の公開鍵を用いることによって暗号化された第1のサービス要求データを含む、
ハンドシェイク要求送信ユニットと、
前記サーバから返信されたハンドシェイク応答メッセージを受信するように構成されたハンドシェイク応答受信ユニットであって、前記ハンドシェイク応答メッセージが、前記第1のサービス要求データを用いることによって前記サーバにより生成された第1のサービス応答データと、第2の乱数とを含み、前記第1のサービス応答データは、前記第1の乱数を用いることによって暗号化され、前記第2の乱数は、前記第1の乱数を用いることによって暗号化され、前記第1の乱数と前記第1のサービス要求データは、前記ハンドシェイク応答メッセージを復号することによって取得される、ハンドシェイク応答受信ユニットと、
前記第1のサービス応答データ及び前記第2の乱数を取得するために、前記第1の乱数を用いることによって前記ハンドシェイク応答メッセージを復号するように構成されたハンドシェイク応答復号ユニットと、
前記第1の乱数及び前記第2の乱数に従って、前記サーバとのセッションにおいて用いられるセッション鍵を計算するように構成されたセッション鍵計算ユニットと、
を含む機器。
【請求項10】
暗号文サービス要求メッセージを前記サーバに送信するように構成された暗号文サービス要求送信ユニットであって、
前記暗号文サービス要求メッセージが、前記セッション鍵の識別子、及び前記セッション鍵を用いることによって暗号化された第2のサービス要求データを含む、
暗号文サービス要求送信ユニットと、
前記サーバから返信された暗号文サービス応答メッセージを受信するように構成された暗号文サービス応答受信ユニットであって、
前記暗号文サービス応答メッセージが、前記対応するセッション鍵を用いることによって暗号化された第2のサービス応答データを含み、
前記第2のサービス応答データが、前記セッション鍵の前記識別子を用いて前記暗号文サービス要求メッセージを復号することによって取得される前記第2のサービス要求データに従って生成される、暗号文サービス応答受信ユニットと、
を更に含む、請求項9に記載の機器。
【請求項11】
平文サービス要求メッセージを前記サーバに送信するように構成された平文サービス要求送信ユニットであって、
前記平文サービス要求メッセージが、平文の第3のサービス要求データを含む、
平文サービス要求送信ユニットと、
前記サーバから返信された平文サービス応答メッセージを受信するように構成された平文サービス応答受信ユニットであって、
前記平文サービス応答メッセージが、前記平文の第3のサービス応答データを含み、
前記第3のサービス応答データが、前記平文サービス要求メッセージから取得される前記第3のサービス要求データに従って生成される、平文サービス応答受信ユニットと、
を更に含む、請求項10に記載の機器。
【請求項12】
安全なネットワーク通信用の機器であって、
クライアントによって送信されたハンドシェイク要求メッセージを受信するように構成されたハンドシェイク要求受信ユニットであって、前記ハンドシェイク要求メッセージが、第1の公開鍵を用いることによって暗号化された第1の乱数、及び前記第1の公開鍵を用いることによって暗号化された第1のサービス要求データを含む、ハンドシェイク要求受信ユニットと、
前記第1の乱数及び前記第1のサービス要求データを取得するために、前記第1の公開鍵に対応する第1の秘密鍵を用いることによって、前記ハンドシェイク要求メッセージを復号するように構成されたハンドシェイク要求復号ユニットと、
前記第1のサービス要求データに従って第1のサービス応答データを生成するように構成された第1のサービス応答生成ユニットと、
ハンドシェイク応答メッセージを前記クライアントに送信するように構成されたハンドシェイク応答送信ユニットであって、
前記ハンドシェイク応答メッセージが、前記第1の乱数を用いることによって暗号化された前記第1のサービス応答データ、及び前記第1の乱数を用いることによって暗号化された第2の乱数を含む、
ハンドシェイク応答送信ユニットと、
第1の鍵アルゴリズムに基づき、前記第1の乱数及び前記第2の乱数に従って、セッションにおいて用いられるセッション鍵を計算するように構成されたセッション鍵計算ユニットと、
を含む機器。
【請求項13】
前記クライアントによって送信された暗号文サービス要求メッセージを受信するように構成された暗号文サービス要求受信ユニットであって、前記暗号文サービス要求メッセージが、前記セッション鍵の識別子、及び前記セッション鍵を用いることによって暗号化された第2のサービス要求データを含む、暗号文サービス要求受信ユニットと、
前記セッション鍵の前記識別子に従って、対応するセッション鍵を調べるように構成されたセッション鍵ルックアップユニットと、
前記第2のサービス要求データを取得するために、前記対応するセッション鍵を用いることによって、前記暗号文サービス要求メッセージを復号するように構成されたサービス要求復号ユニットと、
前記第2のサービス要求データに従って、第2のサービス応答データを生成するように構成された第2のサービス応答生成ユニットと、
暗号文サービス応答メッセージを前記クライアントに送信するように構成された暗号文サービス応答送信ユニットであって、前記暗号文サービス応答メッセージが、前記対応するセッション鍵を用いることによって暗号化された前記第2のサービス応答データを含む、暗号文サービス応答送信ユニットと、
を更に含む、請求項12に記載の機器。
【請求項14】
前記クライアントによって送信された平文サービス要求メッセージを受信するように構成された平文サービス要求受信ユニットであって、前記平文サービス要求メッセージが、平文の第3のサービス要求データを含む、平文サービス要求受信ユニットと、
前記平文サービス要求メッセージから前記平文の前記第3のサービス要求データを取得するように構成されたサービス要求データ取得ユニットと、
前記平文の前記第3のサービス要求データに従って、前記平文の第3のサービス応答データを生成するように構成された第3のサービス応答生成ユニットと、
平文サービス応答メッセージを前記クライアントに送信するように構成された平文サービス応答送信ユニットであって、前記平文サービス応答メッセージが、前記平文の前記第3のサービス応答データを含む、平文サービス応答送信ユニットと、
を更に含む、請求項13に記載の機器。
【請求項15】
命令のセットを格納する非一時的コンピュータ可読媒体であって、前記命令のセットは、機器に安全なネットワーク通信用の方法を行わせるように、前記機器の少なくとも一つのプロセッサによって実行可能であり、前記方法が、
ハンドシェイク要求メッセージをサーバに送信することであって、
前記ハンドシェイク要求メッセージが、第1の公開鍵を用いることによって暗号化された第1の乱数、及び前記第1の公開鍵を用いることによって暗号化された第1のサービス要求データを含む、
送信することと、
前記サーバから返信されたハンドシェイク応答メッセージを受信することであって、前記ハンドシェイク応答メッセージが、前記第1のサービス要求データを用いることによって前記サーバにより生成された第1のサービス応答データと、第2の乱数とを含み、前記第1のサービス応答データは、前記第1の乱数を用いることによって暗号化され、前記第2の乱数は、前記第1の乱数を用いることによって暗号化され、前記第1の乱数と前記第1のサービス要求データは、前記ハンドシェイク応答メッセージを復号することによって取得される、受信することと、
前記第1のサービス応答データ及び前記第2の乱数を取得するために、前記第1の乱数を用いることによって前記ハンドシェイク応答メッセージを復号することと、
前記第1の乱数及び前記第2の乱数に従って、前記サーバとのセッションにおいて用いられるセッション鍵を計算することと、
を含む、非一時的コンピュータ可読媒体。
【請求項16】
前記命令のセットは、前記機器に、
暗号文サービス要求メッセージを前記サーバに送信することであって、
前記暗号文サービス要求メッセージが、前記セッション鍵の識別子、及び前記セッション鍵を用いることによって暗号化された第2のサービス要求データを含む、
送信することと、
前記サーバから返信された暗号文サービス応答メッセージを受信することであって、
前記暗号文サービス応答メッセージが、前記対応するセッション鍵を用いることによって暗号化された第2のサービス応答データを含み、
前記第2のサービス応答データが、前記セッション鍵の前記識別子を用いて前記暗号文サービス要求メッセージを復号することによって取得される前記第2のサービス要求データに従って生成される、
受信することと、
を更に行わせるように、前記機器の前記少なくとも一つのプロセッサによって実行可能である、請求項15に記載の非一時的コンピュータ可読媒体。
【請求項17】
前記命令のセットは、前記機器に、
平文サービス要求メッセージを前記サーバに送信することであって、
前記平文サービス要求メッセージが、平文の第3のサービス要求データを含む、
送信することと、
前記サーバから返信された平文サービス応答メッセージを受信することであって、
前記平文サービス応答メッセージが、前記平文の第3のサービス応答データを含み、
前記第3のサービス応答データが、前記平文サービス要求メッセージから取得される前記第3のサービス要求データに従って生成される、
受信することと、
を更に行わせるように、前記機器の前記少なくとも一つのプロセッサによって実行可能である、請求項16に記載の非一時的コンピュータ可読媒体。
【請求項18】
命令のセットを格納する非一時的コンピュータ可読媒体であって、前記命令のセットは、機器に安全なネットワーク通信用の方法を行わせるように、前記機器の少なくとも一つのプロセッサによって実行可能であり、前記方法が、
クライアントから送信されたハンドシェイク要求メッセージを受信することであって、前記ハンドシェイク要求メッセージが、第1の公開鍵を用いることによって暗号化された第1の乱数、及び前記第1の公開鍵を用いることによって暗号化された第1のサービス要求データを含む、受信することと、
前記第1の乱数及び前記第1のサービス要求データを取得するために、前記第1の公開鍵に対応する第1の秘密鍵を用いることによって、前記ハンドシェイク要求メッセージを復号することと、
前記第1のサービス要求データに従って、第1のサービス応答データを生成することと、
ハンドシェイク応答メッセージを前記クライアントに送信することであって、
前記ハンドシェイク応答メッセージが、前記第1の乱数を用いることによって暗号化された前記第1のサービス応答データ、及び前記第1の乱数を用いることによって暗号化された第2の乱数を含む、
送信することと、
1の鍵アルゴリズムに基づき、前記第1の乱数及び前記第2の乱数に従って、セッションにおいて用いられるセッション鍵を計算することと、
を含む、非一時的コンピュータ可読媒体。
【請求項19】
前記命令のセットは、前記機器に、
前記クライアントから送信された暗号文サービス要求メッセージを受信することであって、前記暗号文サービス要求メッセージが、前記セッション鍵の識別子、及び前記セッション鍵を用いることによって暗号化された第2のサービス要求データを含む、受信することと、
前記セッション鍵の前記識別子に従って、対応するセッション鍵を調べることと、
前記第2のサービス要求データを取得するために、前記対応するセッション鍵を用いることによって、前記暗号文サービス要求メッセージを復号することと、
前記第2のサービス要求データに従って、第2のサービス応答データを生成することと、
暗号文サービス応答メッセージを前記クライアントに送信することであって、前記暗号文サービス応答メッセージが、前記対応するセッション鍵を用いることによって暗号化された前記第2のサービス応答データを含む、送信することと、
を更に行わせるように、前記機器の前記少なくとも一つのプロセッサによって実行可能である、請求項18に記載の非一時的コンピュータ可読媒体。
【請求項20】
前記命令のセットは、前記機器に、
前記クライアントによって送信された平文サービス要求メッセージを受信することであって、前記平文サービス要求メッセージが、平文の第3のサービス要求データを含む、受信することと、
前記平文サービス要求メッセージから前記第3のサービス要求データを取得することと、
前記第3のサービス要求データに従って、前記平文の第3のサービス応答データを生成することと、
平文サービス応答メッセージを前記クライアントに送信することであって、前記平文サービス応答メッセージが、前記平文の前記第3のサービス応答データを含む、送信することと、
を更に行わせるように、前記機器の前記少なくとも一つのプロセッサによって実行可能である、請求項19に記載の非一時的コンピュータ可読媒体。


【発明の詳細な説明】
【発明の概要】
【0001】
技術分野
本出願は、通信技術に関し、特に安全なネットワーク通信方法及び機器に関する。
【0002】
背景
インターネットの急速な発展と共に、情報セキュリティは、困難な問題になっている。ハイパーテキスト転送プロトコルセキュア(HTTPS)は、従来のパーソナルコンピュータ(PC)上でこの問題を解決するために採用された。HTTPSが用いられる場合に、クライアントとサーバとの間の通信プロセスは、ハンドシェイク段階を含み、その段階において、クライアントは、セキュリティキーのためにサーバと交渉する。サーバは、クライアントによって受信された応答が、正規サーバからのものであることを証明するために、関係機関によって発行された証明書をクライアントに提供する必要がある。それは、クライアントとサーバとの間の多くの対話、各対話における大きなパケットサイズ、及び巨大なネットワークトラフィックを必要とする。クライアントは、証明書を検証するために、中央処理装置(CPU)を用いることによって多くの計算を必要とする。計算の必要電力消費は、モバイル端末にとっては難題である。
【0003】
概要
本開示は、安全なネットワーク通信用の方法及び機器に関する。本開示は、クライアントとサーバとの間のセキュリティキーに関する交渉中におけるサービス要求及び応答用の情報対話の数を低減する。
【0004】
一態様において、本開示は、安全なネットワーク通信用の方法に関する。方法は、ハンドシェイク要求メッセージをサーバに送信することを含んでもよい。ハンドシェイク要求メッセージは、第1の公開鍵を用いることによって暗号化された第1の乱数、及び第1の公開鍵を用いることによって暗号化された第1のサービス要求データを含む。サーバは、第1の乱数及び第1のサービス要求データを取得するために、第1の公開鍵に対応する第1の秘密鍵に従って、ハンドシェイク要求メッセージを復号し、且つ第1のサービス要求データに従って第1のサービス応答データを生成する。方法はまた、サーバから返信されたハンドシェイク応答メッセージを受信することを含んでもよい。ハンドシェイク応答メッセージは、第1の乱数を用いることによって暗号化された第1のサービス応答データ、及び第1の乱数を用いることによって暗号化された第2の乱数を含む。方法は、第1のサービス応答データ及び第2の乱数を取得するために、第1の乱数を用いることによってハンドシェイク応答メッセージを復号することを更に含んでもよい。加えて、方法は、第1の乱数及び第2の乱数に従って、サーバとのセッションにおいて用いられるセッション鍵を計算することを含んでもよい。
【0005】
幾つかの実施形態において、方法は、暗号文サービス要求メッセージをサーバに送信することを含んでもよい。暗号文サービス要求メッセージは、セッション鍵の識別子、及びセッション鍵を用いることによって暗号化された第2のサービス要求データを含む。サーバは、セッション鍵の識別子に従って、対応するセッション鍵を調べ、且つ第2のサービス要求データを取得するために、対応するセッション鍵を用いることによって、暗号文サービス要求メッセージを復号する。方法はまた、サーバから返信された暗号文サービス応答メッセージを受信することを含んでもよい。暗号文サービス応答メッセージは、対応するセッション鍵を用いることによって暗号化された第2のサービス応答データを含む。第2のサービス応答データは、第2のサービス要求データに従って、サーバによって生成される。
【0006】
幾つかの実施形態において、方法は、平文サービス要求メッセージをサーバに送信することを含んでもよい。平文サービス要求メッセージは、平文用の第3のサービス要求データを含む。サーバは、平文サービス要求メッセージから平文用の第3のサービス要求データを取得する。方法はまた、サーバから返信された平文サービス応答メッセージを受信することを含んでもよい。平文サービス応答メッセージは、平文の第3のサービス応答データを含む。第3のサービス応答データは、第3のサービス要求データに従って、サーバによって生成される。
【0007】
幾つかの実施形態において、方法は、サーバから返信されたセッション鍵の満了の通知を受信することを含んでもよい。方法はまた、別のハンドシェイク要求メッセージをサーバに送信することを含んでもよい。
【0008】
別の態様において、本開示は、安全なネットワーク通信用の方法に関する。方法は、クライアントから送信されたハンドシェイク要求メッセージを受信することを含んでもよい。ハンドシェイク要求メッセージは、第1の公開鍵を用いることによって暗号化された第1の乱数、及び第1の公開鍵を用いることによって暗号化された第1のサービス要求データを含む。方法はまた、第1の乱数及び第1のサービス要求データを取得するために、第1の公開鍵に対応する第1の秘密鍵を用いることによって、ハンドシェイク要求メッセージを復号することを含んでもよい。方法は、第1のサービス要求データに従って、第1のサービス応答データを生成することを更に含んでもよい。加えて、方法は、ハンドシェイク応答メッセージをクライアントに送信することを含んでもよい。ハンドシェイク応答メッセージは、第1の乱数を用いることによって暗号化された第1のサービス応答データ、及び第1の乱数を用いることによって暗号化された第2の乱数を含む。クライアントは、第1のサービス応答データ及び第2の乱数を取得するために、第1の乱数を用いることによって、ハンドシェイク応答メッセージを復号し、且つ第1の鍵アルゴリズムに基づき、第1の乱数及び第2の乱数に従って、セッションにおいて用いられるセッション鍵を計算する。更に、方法は、第1の鍵アルゴリズムに基づき、第1の乱数及び第2の乱数に従って、セッションにおいて用いられるセッション鍵を計算することを含んでもよい。
【0009】
幾つかの実施形態において、方法は、クライアントから送信された暗号文サービス要求メッセージを受信することを更に含んでもよい。暗号文サービス要求メッセージは、セッション鍵の識別子、及びセッション鍵を用いることによって暗号化された第2のサービス要求データを含む。方法はまた、セッション鍵の識別子に従って、対応するセッション鍵を調べることを含んでもよい。方法は、第2のサービス要求データを取得するために、対応するセッション鍵を用いることによって、暗号文サービス要求メッセージを復号することを更に含んでもよい。加えて、方法は、第2のサービス要求データに従って、第2のサービス応答データを生成することを含んでもよい。更に、方法は、暗号文サービス応答メッセージをクライアントに送信することを含んでもよい。暗号文サービス応答メッセージは、対応するセッション鍵を用いることによって暗号化された第2のサービス応答データを含む。
【0010】
幾つかの実施形態において、方法は、クライアントによって送信された平文サービス要求メッセージを受信することを更に含んでもよい。平文サービス要求メッセージは、平文用の第3のサービス要求データを含む。方法はまた、平文サービス要求メッセージから第3のサービス要求データを取得することを含んでもよい。方法は、第3のサービス要求データに従って、平文の第3のサービス応答データを生成することを更に含んでもよい。加えて、方法は、平文サービス応答メッセージをクライアントに送信することを含んでもよい。平文サービス応答メッセージは、平文の第3のサービス応答データを含む。
【0011】
幾つかの実施形態において、方法は、クライアントから送信された第4のサービス要求メッセージを受信することを更に含んでもよい。方法はまた、第4のサービス要求メッセージが、暗号文サービス要求メッセージか又は平文サービス要求メッセージかどうかを判定することを含んでもよい。方法は、第4のサービス要求メッセージが、暗号文サービス要求メッセージか又は平文サービス要求メッセージかどうかの判定結果に従って、第1の暗号化識別子を生成することを更に含んでもよい。加えて、方法は、第4のサービス要求メッセージの識別子と第4のサービス要求メッセージの第1の暗号化識別子との間の第1のマッピング関係を確立することを含んでもよい。クライアントから送信された第5のサービス要求メッセージを受信すると、方法は、第5のサービス要求メッセージの識別子及び第1のマッピング関係に従って、第2の暗号化識別子を調べることを含んでもよい。方法は、第5のサービス要求メッセージが暗号文サービス要求メッセージであることを第2の暗号化識別子が示す場合に、クライアントへの暗号文サービス応答メッセージの送信の実行をトリガすることを含んでもよい。方法は、第5のサービス要求メッセージが平文サービス要求メッセージであることを第2の暗号化識別子が示す場合に、クライアントへの平文サービス応答メッセージの送信の実行をトリガすることを含んでもよい。
【0012】
更なる態様において、本開示は、安全なネットワーク通信用の機器に関する。機器は、ハンドシェイク要求メッセージをサーバに送信するように構成されたハンドシェイク要求送信ユニットを含んでもよい。ハンドシェイク要求メッセージは、第1の公開鍵を用いることによって暗号化された第1の乱数、及び第1の公開鍵を用いることによって暗号化された第1のサービス要求データを含む。サーバは、第1の乱数及び第1のサービス要求データを取得するために、第1の公開鍵に対応する第1の秘密鍵に従って、ハンドシェイク要求メッセージを復号し、且つ第1のサービス要求データに従って第1のサービス応答データを生成する。機器はまた、サーバから返信されたハンドシェイク応答メッセージを受信するように構成されたハンドシェイク応答受信ユニットを含んでもよい。ハンドシェイク応答メッセージは、第1の乱数を用いることによって暗号化された第1のサービス応答データ、及び第1の乱数を用いることによって暗号化された第2の乱数を含む。機器は、第1のサービス応答データ及び第2の乱数を取得するために、第1の乱数を用いることによってハンドシェイク応答メッセージを復号するように構成されたハンドシェイク応答復号ユニットを更に含んでもよい。加えて、機器は、第1の乱数及び第2の乱数に従って、サーバとのセッションにおいて用いられるセッション鍵を計算するように構成されたセッション鍵計算ユニットを含んでもよい。
【0013】
幾つかの実施形態において、機器は、暗号文サービス要求メッセージをサーバに送信するように構成された暗号文サービス要求送信ユニットを更に含んでもよい。暗号文サービス要求メッセージは、セッション鍵の識別子、及びセッション鍵を用いることによって暗号化された第2のサービス要求データを含む。サーバは、セッション鍵の識別子に従って、対応するセッション鍵を調べ、且つ第2のサービス要求データを取得するために、対応するセッション鍵を用いることによって、暗号文サービス要求メッセージを復号する。機器はまた、サーバから返信された暗号文サービス応答メッセージを受信するように構成された暗号文サービス応答受信ユニットを含んでもよい。暗号文サービス応答メッセージは、対応するセッション鍵を用いることによって暗号化された第2のサービス応答データを含む。第2のサービス応答データは、第2のサービス要求データに従って、サーバによって生成される。
【0014】
幾つかの実施形態において、機器は、平文サービス要求メッセージをサーバに送信するように構成された平文サービス要求送信ユニットを更に含んでもよい。平文サービス要求メッセージは、平文用の第3のサービス要求データを含む。サーバは、平文サービス要求メッセージから平文用の第3のサービス要求データを取得する。機器はまた、サーバから返信された平文サービス応答メッセージを受信するように構成された平文サービス応答受信ユニットを含んでもよい。平文サービス応答メッセージは、平文の第3のサービス応答データを含む。第3のサービス応答データは、第3のサービス要求データに従って、サーバによって生成される。
【0015】
更に別の態様において、本開示は、安全なネットワーク通信用の機器に関する。機器は、クライアントによって送信されたハンドシェイク要求メッセージを受信するように構成されたハンドシェイク要求受信ユニットを含んでもよい。ハンドシェイク要求メッセージは、第1の公開鍵を用いることによって暗号化された第1の乱数、及び第1の公開鍵を用いることによって暗号化された第1のサービス要求データを含む。機器はまた、第1の乱数及び第1のサービス要求データを取得するために、第1の公開鍵に対応する第1の秘密鍵を用いることによって、ハンドシェイク要求メッセージを復号するように構成されたハンドシェイク要求復号ユニットを含んでもよい。機器は、第1のサービス要求データに従って第1のサービス応答データを生成するように構成された第1のサービス応答生成ユニットを更に含んでもよい。加えて、機器は、ハンドシェイク応答メッセージをクライアントに送信するように構成されたハンドシェイク応答送信ユニットを含んでもよい。ハンドシェイク応答メッセージは、第1の乱数を用いることによって暗号化された第1のサービス応答データ、及び第1の乱数を用いることによって暗号化された第2の乱数を含む。クライアントは、第1のサービス応答データ及び第2の乱数を取得するために、第1の乱数を用いることによって、ハンドシェイク応答メッセージを復号し、且つ第1の鍵アルゴリズムに基づき、第1の乱数及び第2の乱数に従って、セッションにおいて用いられるセッション鍵を計算する。加えて、機器は、第1の鍵アルゴリズムに基づき、第1の乱数及び第2の乱数に従って、セッションにおいて用いられるセッション鍵を計算するように構成されたセッション鍵計算ユニットを含んでもよい。
【0016】
幾つかの実施形態において、機器は、クライアントによって送信された暗号文サービス要求メッセージを受信するように構成された暗号文サービス要求受信ユニットを更に含んでもよい。暗号文サービス要求メッセージは、セッション鍵の識別子、及びセッション鍵を用いることによって暗号化された第2のサービス要求データを含む。機器はまた、セッション鍵の識別子に従って、対応するセッション鍵を調べるように構成されたセッション鍵ルックアップユニットを含んでもよい。機器は、第2のサービス要求データを取得するために、対応するセッション鍵を用いることによって、暗号文サービス要求メッセージを復号するように構成されたサービス要求復号ユニットを更に含んでもよい。加えて、機器は、第2のサービス要求データに従って、第2のサービス応答データを生成するように構成された第2のサービス応答生成ユニットを含んでもよい。更に、機器は、暗号文サービス応答メッセージをクライアントに送信するように構成された暗号文サービス応答送信ユニットを含んでもよい。暗号文サービス応答メッセージは、対応するセッション鍵を用いることによって暗号化された第2のサービス応答データを含む。
【0017】
幾つかの実施形態において、機器は、クライアントによって送信された平文サービス要求メッセージを受信するように構成された平文サービス要求受信ユニットを更に含んでもよい。平文サービス要求メッセージは、平文用の第3のサービス要求データを含む。機器はまた、平文サービス要求メッセージから平文用の第3のサービス要求データを取得するように構成されたサービス要求データ取得ユニットを含んでもよい。機器は、平文用の第3のサービス要求データに従って、平文の第3のサービス応答データを生成するように構成された第3のサービス応答生成ユニットを更に含んでもよい。加えて、機器は、平文サービス応答メッセージをクライアントに送信するように構成された平文サービス応答送信ユニットを含んでもよい。平文サービス応答メッセージは、平文の第3のサービス応答データを含む。
【0018】
本開示の実施形態において提供される上記の技術的解決法から、サービス要求データは、セッション鍵を交渉するプロセスにおいて同時に送信される。サービス応答データは、セッション鍵交渉のプロセスにおいて、ハンドシェイク応答メッセージを通して取得することができる。それは、サービス要求データのこの部分のためにサービス要求メッセージを送信する追加の後続ステップを省略することが可能であり、且つまた対応するサービス応答データのためにサービス応答メッセージを受信する別の追加ステップを省略し得る。従って、サーバとのメッセージ対話の数は、先行技術と比較して低減される。
【0019】
図面の簡単な説明
本開示の実施形態において技術的解決法を説明するために、下記において例示的な図面が、簡潔に導入される。これらの図面は、本開示の幾つかの実施形態を含む。当業者は、発明的な労力なしに、これらの図面に従って更に他の図面を取得し得る。
【図面の簡単な説明】
【0020】
図1A】本出願の実施形態による、安全なネットワーク通信用の例示的な方法の流れ図である。
図1B】本出願の実施形態による、安全なネットワーク通信用の例示的な方法の流れ図である。
図2】本出願の実施形態による、安全なネットワーク通信用の例示的な方法の例示的なプロセスの概略図である。
図3】本出願の実施形態による、ハンドシェイク要求メッセージの例示的な実装形態の概略図である。
図4】本出願の実施形態による、ハンドシェイク応答メッセージの例示的な実装形態の概略図である。
図5】本出願の実施形態による、暗号文サービス要求メッセージの例示的な実装形態の概略図である。
図6】本出願の実施形態による、サービス応答メッセージの例示的な実装形態の概略図である。
図7】本出願の実施形態による、安全なネットワーク通信用の例示的な機器の概略図である。
図8】本出願の実施形態による、安全なネットワーク通信用の別の例示的な機器の概略図である。
【発明を実施するための形態】
【0021】
詳細な説明
当業者がより優れた理解を得るように本出願の技術的解決法を説明するために、本出願の幾つかの実施形態が、以下で図面を用いて説明される。これらの実施形態は、実施形態の全てではなく、本出願の実施形態の単に一部である。これらの実施形態に基づいて、発明的な労力なしに当業者によって導き出される全ての他の実施形態は、本出願の範囲内に入るものとする。
【0022】
現在の通信技術において、クライアントとサーバとの間のサービス要求及び応答は、セキュリティキー用の交渉後に進められなければならない。それは、多くのメッセージ対話を必要とし、従って、それは、時間がかかる。
【0023】
これらの問題を解決するために、本出願は、図1Aに示されているように、安全なネットワーク通信用の方法を提案する。方法は、以下のステップを含んでもよい。
【0024】
ステップS101A:ハンドシェイク要求メッセージをサーバに送信する。ハンドシェイク要求メッセージは、第1の公開鍵を用いることによって暗号化された第1の乱数、及び第1の公開鍵を用いることによって暗号化された第1のサービス要求データを含む。サーバは、第1の乱数及び第1のサービス要求データを取得するために、第1の公開鍵に対応する第1の秘密鍵に従って、ハンドシェイク要求メッセージを復号し、且つ第1のサービス要求データに従って、第1のサービス応答データを生成する。
【0025】
ステップS102A:サーバによって返信されたハンドシェイク応答メッセージを受信する。ハンドシェイク応答メッセージは、第1の乱数を用いることによって暗号化された第1のサービス応答データ、及び第1の乱数を用いることによって暗号化された第2の乱数を含む。
【0026】
ステップS103A:第1のサービス応答データ及び第2の乱数を取得するために、第1の乱数を用いることによって、ハンドシェイク応答メッセージを復号する。
【0027】
ステップS104A:第1の乱数及び第2の乱数に従って、サーバとのセッションにおいて用いられるセッション鍵を計算する。
【0028】
クライアントは、上記のステップS101A〜S104Aを実行するエンティティであってもよい。
【0029】
図1Aに示されているような実施形態において、方法は、セッション鍵を交渉するプロセスにおいて、サービス要求データを同時に送信することを含んでもよい。サービス応答データは、セッション鍵交渉のプロセスにおいて、ハンドシェイク応答メッセージを通して取得されてもよい。それは、サービス要求データ用に追加のサービス要求メッセージを送信するステップを省き得る。それはまた、対応するサービス応答データ用に追加のサービス応答メッセージを受信するステップを省き得る。従って、それは、先行技術と比較して、サーバとのメッセージ対話の数を低減し得る。
【0030】
図1Bに示されているように、本出願は、安全なネットワーク通信用の別の方法を提案する。方法は、以下のステップを含んでもよい。
【0031】
ステップS101B:クライアントから送信されたハンドシェイク要求メッセージを受信する。ハンドシェイク要求メッセージは、第1の公開鍵を用いることによって暗号化された第1の乱数、及び第1の公開鍵を用いることによって暗号化された第1のサービス要求データを含む。
【0032】
ステップS102B:第1の乱数及び第1のサービス要求データを取得するために、第1の公開鍵に対応する第1の秘密鍵を用いることによって、ハンドシェイク要求メッセージを復号する。
【0033】
ステップS103B:第1のサービス要求データに従って、第1のサービス応答データを生成する。
【0034】
ステップS104B:ハンドシェイク応答メッセージをクライアントに送信する。ハンドシェイク応答メッセージは、第1の乱数を用いることによって暗号化された第1のサービス応答データ、及び第1の乱数を用いることによって暗号化された第2の乱数を含む。クライアントは、第1のサービス応答データ及び第2の乱数を取得するために、第1の乱数を用いることによって、ハンドシェイク応答メッセージを復号し、且つ第1の鍵アルゴリズムに基づき、第1の乱数及び第2の乱数に従って、セッションにおいて用いられるセッション鍵を計算する。
【0035】
ステップS105B:第1の鍵アルゴリズムに基づき、第1の乱数及び第2の乱数に従って、セッションにおいて用いられるセッション鍵を計算する。
【0036】
サーバは、上記のステップS101B〜S105Bを実行するエンティティであってもよい。
【0037】
図1Bに示されているような実施形態において、方法は、クライアントとセッション鍵を交渉するプロセスにおいて、サービス要求データを同時に受信すること含んでもよい。サービス応答データは、セッション鍵交渉のプロセスにおいて、ハンドシェイク応答メッセージを通して送信されてもよい。それは、サービス要求データ用に追加のサービス要求メッセージを受信するステップを省き得る。それはまた、対応するサービス応答データ用に追加のサービス応答メッセージを送信する別のステップを省き得る。従って、それは、先行技術と比較して、クライアントとのメッセージ対話の数を低減し得る。
【0038】
本出願の実施形態の例示的なプロセスが、以下で詳細に示される。
【0039】
図2は、安全なネットワーク通信用の例示的な方法の例示的なプロセスの概略図である。図2に示されているように、方法は、以下のステップを含んでもよい。
【0040】
ステップS201:クライアント201は、ハンドシェイク要求メッセージをサーバ202に送信する。ハンドシェイク要求メッセージは、非対称暗号化アルゴリズムの公開鍵を用いることによって暗号化された第1の乱数(nonce1とマークされてもよい)及び公開鍵を用いることによって暗号化されたサービス要求データを含む。
【0041】
非対称暗号化アルゴリズムの公開鍵は、サーバ202によって広く分配された公開鍵である。データをサーバ202に送信する装置は、公開鍵を用いることによってデータを暗号化してもよい。サーバ202は、サーバにおいて秘密鍵を用いることによってデータを復号してもよい。
【0042】
クライアント201によってサーバ202に送信されるハンドシェイク要求メッセージは、図3に示されているようなメッセージフォーマットを採用してもよい。図3において、バージョンフィールドは、バージョン及びプロトコルに関する情報を示してもよい。例えば、クライアント201とサーバ202との間の安全な通信用の安全なチャネルが、ハイパーテキスト転送プロトコル(HTTP)に基づく場合に、バージョンフィールドは、11001B(ここでBは、前の数が2進数であることを表す)であるように設定されてもよい。安全なチャネルが、SPDYプロトコルに基づく場合に、バージョンフィールドは、11101Bであるように設定されてもよい。
【0043】
図3において、タイプフィールドは、メッセージタイプに関する情報を示してもよい。クライアント201によって送信されたハンドシェイク要求メッセージのタイプフィールドは、0x01であるように設定されてもよい。値は、メッセージタイプがハンドシェイク要求であることを示す。このように、サーバ202は、メッセージを受信すると、メッセージが、ハンドシェイク要求メッセージであることを知り得る。
【0044】
図3において、長さフィールドは、バージョン、タイプ及び長さフィールド用の最初の4バイトを除いて、メッセージの長さをバイトで示してもよい。
【0045】
図3において、RSA公開鍵(32ビット)フィールドは、32ビットのリベスト−シャミア−エーデルマン(RSA)公開鍵を示してもよい。RSA公開鍵は、ステップS201における非対称暗号化アルゴリズムの公開鍵である。
【0046】
第1の乱数は、クライアント201における計算から取得された乱数であってもよい。
【0047】
ステップS202:サーバ202は、第1の乱数及びサービス要求データを取得するために、非対称アルゴリズムの秘密鍵に従って、受信されたハンドシェイク要求メッセージを復号し、且つサービス要求データに従ってサービス応答データを生成する。
【0048】
幾つかの実施形態において、クライアント201とサーバ202との間の通信のセキュリティを保証するために、サーバ202は、クライアント201からのハンドシェイク要求メッセージを更に検証してもよい。検証が失敗である場合に、サーバ202は、クライアント201との接続を終了させ、且つ後続の手順の実行を停止してもよい。検証が成功である場合に、サーバ202は、サービス要求データに従って、引き続きサービス応答データを生成してもよい。
【0049】
2つの方法が、ハンドシェイク要求メッセージの上記の検証用に用いられてもよい。
【0050】
方法1:クライアント201によってサーバ202に送信されたハンドシェイク要求メッセージに含まれる第1の乱数の第1のフィールドは、マジックコードである。第三者が、クライアント201からサーバ202への送信プロセスにおいてメッセージを改竄した場合に、第1の乱数の第1のフィールドは、変更される。従って、ハンドシェイク要求メッセージに対するサーバ202による検証は、復号された第1の乱数の第1のフィールドがマジックコードであるかどうかをチェックすることによって行われてもよい。Yesの場合に、検証は、成功である。Noの場合に、検証は、失敗である。マジックコードはまた、マジックナンバーと呼ばれてもよい。マジックナンバーの技術は、定数を示す一定数のバイトをデータのヘッダ又は末尾に挿入することによって、メッセージの正当性を迅速に判定し得る。
【0051】
方法2:サーバ202は、クライアント201によって送信されたハンドシェイク要求メッセージの長さに要件を課してもよい。ハンドシェイク要求メッセージが、クライアント201からサーバ202に送信されるときに、攻撃のために悪意のあるユーザによって拡大された場合に、ハンドシェイク要求メッセージの長さは、異常である可能性がある。従って、ハンドシェイク要求メッセージに対するサーバ202による検証はまた、ハンドシェイク要求メッセージの長さが異常か否かをチェックすることによって行われてもよい。長さが異常である場合に、検証は、失敗である。長さが正常である場合に、検証は、成功である。
【0052】
ステップS203:クライアント202は、ハンドシェイク応答メッセージをサーバ201に送信する。ハンドシェイク応答メッセージは、セキュリティキーとして第1の乱数を用いることによって暗号化された第2の乱数(nonce2とマークされてもよい)及びセキュリティキー第1の乱数を用いることによって暗号化されたサービス応答データを含む。
【0053】
第2の乱数は、サーバ202における計算から取得された乱数であってもよい。
【0054】
サーバ202によってクライアント201に送信されたハンドシェイク応答メッセージは、図4に示されているようなメッセージフォーマットを採用してもよい。
【0055】
図4において、バージョンフィールドは、バージョン及びプロトコルに関する情報を示してもよい。例えば、クライアント201とサーバ202との間の安全な通信用の安全なチャネルが、HTTPに基づく場合に、バージョンフィールドは、11001Bであるように設定されてもよい。安全なチャネルが、SPDYプロトコルに基づく場合に、バージョンフィールドは、11101Bに設定されてもよい。
【0056】
タイプフィールドは、メッセージタイプに関する情報を示してもよい。サーバ202によって送信されるハンドシェイク応答メッセージのタイプフィールドは、0x03であるように設定されてもよい。値は、メッセージタイプが、ハンドシェイク応答であることを示す。このように、クライアント201は、メッセージを受信すると、メッセージが、ハンドシェイク応答メッセージであることを知り得る。
【0057】
図4において、長さフィールドは、バージョン、タイプ及び長さフィールド用の最初の4バイトを除いて、メッセージの長さをバイトで示してもよい。
【0058】
図4において、暗号文フィールドは、セキュリティキーとして第1の乱数を用いることによって暗号化された第2の乱数及びセキュリティキーとして第1の乱数を用いることによって暗号化されたサービス応答データを含んでもよい。
【0059】
ステップS204:クライアント201は、第2の乱数及びサービス応答データを取得するために、第1の乱数を用いることによって、受信されたハンドシェイク応答メッセージを復号してもよく、且つ対称暗号化アルゴリズムに基づき、第1の乱数及び第2の乱数に従ってセッション鍵を計算する。
【0060】
セッション鍵は、次の計算によって取得されてもよい。
セッション鍵=sha256(nonce1、nonce2)
この式で、nonce1は、第1の乱数であり、nonce2は、第2の乱数である。
【0061】
幾つかの実施形態において、クライアント201とサーバ202との間の通信のセキュリティを保証するために、クライアント201は、サーバ202からのハンドシェイク応答メッセージを更に検証してもよい。サーバ202によってクライアント201に送信されたハンドシェイク応答メッセージに含まれる第2の乱数の第1のフィールドは、マジックコードである。第三者が、サーバ202からクライアント201への送信プロセスにおいて、メッセージを改竄した場合に、第2の乱数の第1のフィールドは、変更される。従って、サーバ202のハンドシェイク応答メッセージに対する検証は、復号された第2の乱数の第1のフィールドが、マジックコードかどうかをチェックすることによって行われてもよい。Noの場合に、検証は、失敗である。Yesの場合に、検証は、成功である。クライアント201は、セッション鍵を引き続き計算してもよい。
【0062】
ステップS205:サーバ202は、第1の乱数及び第2の乱数に従って、ステップS204におけるアルゴリズムと同じアルゴリズムを介してセッション鍵を計算してもよい。
【0063】
ステップS204及びステップS205においてセッション鍵を計算するためのアルゴリズムが同じである限り、ステップS204又はステップS205のどちらかは、もう一方の前に又は同時に実行されてもよい。このようにして、サーバ202及びクライアント201は、同じセッション鍵を取得してもよい。セッション鍵は、クライアント201及びサーバ202が、サービス要求メッセージ及びサービス応答メッセージを互いに送信する場合に、データを暗号化するために用いられてもよい。
【0064】
上記のステップS201〜S205は、ハンドシェイク段階及びセッション鍵の交渉のプロセスを含んでもよい。
【0065】
クライアント201及びサーバ202は、上記のハンドシェイク段階を通してセッションを生成してもよい。このセッションに基づく後続のサービス要求メッセージ及びサービス応答メッセージの送信は、ハンドシェイク段階における交渉中に取得された共通のセッション鍵を用いることによって暗号化されてもよい。サーバ202は、セッションIDとして示される、生成されたセッション用の識別子(ID)を割り当ててもよい。図4に示されているように、セッションIDは、サーバ202からクライアント201に送信されるハンドシェイク応答メッセージに含まれてもよい。
【0066】
更に、図4におけるハンドシェイク応答メッセージは、セッション鍵の有効期間を更に含んでもよい。接続が、有効期間内において切断後に回復された場合に、セッション鍵は、再交渉なしに再利用されてもよい。有効期間がゼロである場合に、鍵は、一度だけ用いられてもよい。即ち、セッション鍵は、この接続においてのみ有効であってもよい。ひとたび接続が切断されると、別のセッション鍵を再交渉するために、再びステップS201〜S205を実行することが必要である。セッション鍵の有効期間は、相対的な期間であってもよい。例えば、セッション鍵は、サーバ202が、ハンドシェイク応答メッセージをクライアント201に送信した時刻に対する、且つその時刻後の第1の時間長さ内で有効であってもよい。第1の時間長さの値は、相対時間として、図4におけるセッション鍵フィールドの有効期間に含まれてもよい。
【0067】
図4に示されている解決法において、サーバ202が、ハンドシェイク応答メッセージを通して、セッション鍵の有効期間及びセッションIDを一緒に送ることに留意されたい。幾つかの実施形態において、セッション鍵の有効期間及びセッションIDは、別のメッセージを通してクライアント201に送られてもよい。
【0068】
ハンドシェイク段階後、クライアント201及びサーバ202は、サービスデータの対話を開始してもよい。サービスデータの対話プロセスは、以下において詳細に説明される。
【0069】
ステップS206:クライアント201は、サービス要求メッセージをサーバ202に送信する。サービス要求メッセージは、セッションID、及びセッション鍵を用いることによって暗号化されたサービス要求データを含む。
【0070】
クライアント201によって送信された暗号文サービス要求データを含むメッセージは、図5に示されているようなフォーマットを採用してもよい。
【0071】
バージョンフィールドは、バージョン及びプロトコルに関する情報を示してもよい。クライアント201とサーバ202との間の安全な通信用の安全なチャネルが、HTTPに基づく場合に、バージョンフィールドは、11001Bであるように設定されてもよい。安全なチャネルが、SPDYプロトコルに基づく場合に、バージョンフィールドは、11101Bに設定されてもよい。
【0072】
タイプフィールドは、メッセージタイプに関する情報を示してもよい。クライアントによって送信された暗号文サービス要求メッセージのタイプフィールドは、0x02であるように設定され、メッセージタイプが、暗号文サービス要求であることを示してもよい。このように、サーバ202は、メッセージを受信すると、メッセージがサービス要求メッセージであること、及びサービス要求メッセージにおけるサービス要求データが暗号化されたことを知り得る。幾つかの実施形態において、同じセッションにおける、クライアント201とサーバ202との間のサービス要求メッセージ及びサービス応答メッセージの送信は、平文データ又は暗号文データを含んでもよい。セキュリティの懸念なしにそれらのサービスデータ取得するために、クライアント201によってサーバ202に送信されたサービス要求メッセージに含まれるサービス要求データは、平文形式であってもよい。このように、サーバ202は、サービス要求メッセージのメッセージタイプに関する情報を通して、サービス要求メッセージに含まれるサービス要求データが平文であることを通知され得る。サービス要求データを復号する必要はない。従って、クライアント201によってサーバ202に送信されたサービス要求メッセージは、セッションIDを含む必要はない。
【0073】
ステップS207:サーバ202は、サービス要求メッセージにおけるセッションIDに従って、対応するセッション鍵及びセッション鍵の有効期間を調べ、且つ現在時刻がセッション鍵の有効期間を超過したかどうかを判定する。
【0074】
セッション鍵の交渉中に、サーバ202は、セッションIDとセッション鍵との間の対応関係を確立しておいてもよい。従って、サーバ202が、サービス要求メッセージにおけるセッションIDを取得した後で、正確なセッション鍵が、上記の対応関係を通して見つけられてもよい。
【0075】
幾つかの実施形態において、セッション鍵用に有効期間が割り当てられる。従って、セッション鍵が見つけられた後で、現在時刻が、セッション鍵の有効期間を超過したかどうかを判定することが必要である。幾つかの実施形態において、セッション鍵用に有効時間を割り当てるステップは、省略されてもよい。この場合に、現在時刻が、セッション鍵の有効期間を超過したかどうかを判定する必要はない。
【0076】
現在時刻がセッション鍵の有効期間を超過したとサーバ202が判定した場合に、サーバ202は、セッション鍵の無効を通知するメッセージをクライアント201に返信してもよい。それは、サーバ202との別のセッション鍵の交渉プロセスを再開するようにクライアント201に促し得る。
【0077】
ステップS208:現在時刻がセッション鍵の有効期間を超過していないとサーバ202が判定した後で、サーバ202は、復号されたサービス要求データを取得するために、セッション鍵を用いることによって、受信されたサービス要求メッセージにおけるサービス要求データを復号し、且つ復号されたサービス要求データに従ってサービス応答データを生成する。
【0078】
ステップS209:サーバ202は、サービス応答メッセージをクライアント201に送信する。サービス応答メッセージは、ステップS207において見つけられたセッション鍵を用いることによって暗号化されたサービス応答データを含む。
【0079】
サーバ202は、図6に示されているようなメッセージフォーマットを用いることによってカプセル化されたサービス応答メッセージを作成してもよい。
【0080】
図6において、バージョンフィールドは、バージョン及びプロトコルに関する情報を示してもよい。クライアント201とサーバ202との間の安全な通信用の安全なチャネルが、HTTPに基づく場合に、バージョンフィールドは、11001Bであるように設定されてもよい。安全なチャネルが、SPDYプロトコルに基づく場合に、バージョンフィールドは、11101Bであるように設定されてもよい。
【0081】
タイプフィールドは、メッセージタイプに関する情報を示してもよい。サーバ202によってクライアント201に送信されるサービス応答メッセージに含まれるサービス応答データが、暗号化される場合に、メッセージのタイプフィールドは、0x05であるように設定されてもよい。
【0082】
長さフィールドは、バージョン、タイプ及び長さフィールド用の最初の4バイトを除いて、メッセージの長さをバイトで示してもよい。
【0083】
幾つかの実施形態において、サーバ202は、クライアント201からのサービス応答メッセージを同期した態様で処理してもよい。サービス応答メッセージに関して、サービス応答メッセージにおけるサービス応答データが暗号化されるかどうかは、受信されたサービス要求メッセージにおけるサービス要求データが暗号化されているかどうかに依存してもよい。即ち、サーバ202によって受信されたサービス要求メッセージにおけるサービス要求データが、セッション鍵を通して暗号化されている場合に、サーバ202によってクライアント201に返信されるサービス応答メッセージにおけるサービス応答データもまた、セッション鍵を通して暗号化される。サーバ202によって受信されたサービス要求メッセージにおけるサービス要求データが、暗号化されていない場合に、サーバ202によってクライアント201に返信されるサービス応答メッセージにおけるサービス応答データは、暗号化されない。幾つかの実施形態において、サーバ202は、サービス要求メッセージにおけるメッセージタイプ情報を読むことによって、サービス要求メッセージにおけるサービス応答データが暗号化されているかどうかを学習してもよい。例えば、メッセージのタイプ情報が、0x05であるように設定されていることをサーバ202が発見した場合に、サーバ202は、サービス要求メッセージにおけるサービス要求データが暗号化されていると判定してもよい。
【0084】
幾つかの実施形態において、サーバ202は、クライアント201からのサービス要求メッセージを非同期の態様で処理してもよい。サーバ202が、サービス応答メッセージをクライアント201に返信する場合に、オリジナルのサービス要求メッセージにおけるサービス要求データが、暗号化されているかどうかを直接知ることは難しい。従って、サーバ202は、クライアント201によってサーバ202に送信された各サービス要求メッセージの識別子を記録し、且つ各サービス要求メッセージにおけるサービス要求データが暗号化されているかどうかに関する情報(情報は、以下において暗号化識別子と呼ばれる)を記録し、それによって、各サービス要求メッセージの識別子とサービス要求メッセージの暗号化識別子との間の関連性を維持してもよい。サーバ202が、クライアント201によって送信されたサービス要求メッセージ用のサービス応答メッセージを返信する必要がある場合に、サーバ202は、サービス要求メッセージの識別子に従い、上記の関連性を通してサービス要求メッセージの対応する暗号化識別子を最初に見つけてもよい。サービス要求データが暗号化されたことを暗号化識別子が示す場合に、サーバ202は、サービス応答メッセージにおけるサービス応答データを暗号化してもよい。サービス要求データが暗号化されていないことを暗号化識別子が示す場合に、サーバ202は、サービス応答メッセージにおけるサービス応答データを暗号化しなくてもよい。
【0085】
幾つかの実施形態において、各サービス要求メッセージの識別子と、要求メッセージのサービス要求データが暗号化されているかどうかを示す情報との間の、サーバ202によって維持された関連性は、マッピング関係を用いることによって実現されてもよい。マッピング関係は、少なくとも1つのエントリを含んでもよい。各エントリは、サービス要求メッセージの識別子、及びサービス要求メッセージの暗号化識別子を格納してもよい。例えば、サービス要求メッセージのサービス要求データが、暗号化されている場合に、サービス要求メッセージの暗号化識別子は、「1」であるように設定されてもよい。サービス要求メッセージのサービス要求データが、暗号化されていない場合に、サービス要求メッセージの暗号化識別子は、「0」であるように設定されてもよい。
【0086】
図7は、本出願の実施形態による、安全なネットワーク通信用の例示的な機器の概略図である。図7に示されているように、機器は、ハンドシェイク要求送信ユニット701、ハンドシェイク応答受信ユニット702、ハンドシェイク応答復号ユニット703、及びセッション鍵計算ユニット704を含んでもよい。
【0087】
機器は、ハンドシェイク要求メッセージをサーバに送信するように構成されたハンドシェイク要求送信ユニット701を含んでもよい。ハンドシェイク要求メッセージは、第1の公開鍵を用いることによって暗号化された第1の乱数、及び第1の公開鍵を用いることによって暗号化された第1のサービス要求データを含む。サーバは、第1の乱数及び第1のサービス要求データを取得するために、第1の公開鍵に対応する第1の秘密鍵に従ってハンドシェイク要求メッセージを復号し、且つ第1のサービス要求データに従って第1のサービス応答データを生成する。
【0088】
機器はまた、サーバから返信されたハンドシェイク応答メッセージを受信するように構成されたハンドシェイク応答受信ユニット702を含んでもよい。ハンドシェイク応答メッセージは、第1の乱数を用いることによって暗号化された第1のサービス応答データ、及び第1の乱数を用いることによって暗号化された第2の乱数を含む。
【0089】
機器はまた、第1のサービス応答データ及び第2の乱数を取得するために、第1の乱数を用いることによってハンドシェイク応答メッセージを復号するように構成されたハンドシェイク応答復号ユニット703を更に含む。
【0090】
加えて、機器は、第1の乱数及び第2の乱数に従って、サーバとのセッションにおいて用いられるセッション鍵を計算するように構成されたセッション鍵計算ユニット704を含んでもよい。
【0091】
幾つかの実施形態において、安全なネットワーク通信用の機器はまた、暗号文サービス要求送信ユニット及び暗号文サービス応答受信ユニットを含んでもよい。
【0092】
機器は、暗号文サービス要求メッセージをサーバに送信するように構成された暗号文サービス要求送信ユニットを含んでもよい。暗号文サービス要求メッセージは、セッション鍵の識別子、及びセッション鍵を用いることによって暗号化された第2のサービス要求データを含む。サーバは、セッション鍵の識別子に従って、対応するセッション鍵を調べ、且つ第2のサービス要求データを取得するために、対応するセッション鍵を用いることによって暗号文サービス要求メッセージを復号する。
【0093】
機器はまた、サーバから返信された暗号文サービス応答メッセージを受信するように構成された暗号文サービス応答受信ユニットを含んでもよい。暗号文サービス応答メッセージは、対応するセッション鍵を用いることによって暗号化された第2のサービス応答データを含む。第2のサービス応答データは、第2のサービス要求データに従って、サーバによって生成される。
【0094】
幾つかの実施形態において、安全なネットワーク通信用の機器は、平文サービス要求送信ユニット及び平文サービス応答受信ユニットを更に含んでもよい。
【0095】
機器は、平文サービス要求メッセージをサーバに送信するように構成された平文サービス要求送信ユニットを含んでもよい。平文サービス要求メッセージは、平文用の第3のサービス要求データを含む。サーバは、平文サービス要求メッセージから平文用の第3のサービス要求データを取得する。
【0096】
機器はまた、サーバから返信された平文サービス応答メッセージを受信するように構成された平文サービス応答受信ユニットを含んでもよい。平文サービス応答メッセージは、平文の第3のサービス応答データを含む。第3のサービス応答データは、第3のサービス要求データに従って、サーバによって生成される。
【0097】
幾つかの実施形態において、クライアントは、図7に示されている安全なネットワーク通信用の機器を含んでもよい。
【0098】
別の態様において、本開示はまた、サーバ側の安全なネットワーク通信用の機器に関する。図8に示されているように、安全なネットワーク通信用の機器は、ハンドシェイク要求受信ユニット801、ハンドシェイク要求復号ユニット802、第1のサービス応答生成ユニット803、ハンドシェイク応答送信ユニット804、及びセッション鍵計算ユニット805を含んでもよい。
【0099】
機器は、クライアントによって送信されたハンドシェイク要求メッセージを受信するように構成されたハンドシェイク要求受信ユニット801を含んでもよい。ハンドシェイク要求メッセージは、第1の公開鍵を用いることによって暗号化された第1の乱数、及び第1の公開鍵を用いることによって暗号化された第1のサービス要求データを含む。
【0100】
機器はまた、第1の乱数及び第1のサービス要求データを取得するために、第1の公開鍵に対応する第1の秘密鍵を用いることによって、ハンドシェイク要求メッセージを復号するように構成されたハンドシェイク要求復号ユニット803を含んでもよい。
【0101】
機器はまた、第1のサービス要求データに従って、第1のサービス応答データを生成するように構成された第1のサービス応答生成ユニット803を更に含んでもよい。
【0102】
加えて、機器は、ハンドシェイク応答メッセージをクライアントに送信するように構成されたハンドシェイク応答送信ユニット804を含んでもよい。ハンドシェイク応答メッセージは、第1の乱数を用いることによって暗号化された第1のサービス応答データ、及び第1の乱数を用いることによって暗号化された第2の乱数を含む。クライアントは、第1のサービス応答データ及び第2の乱数を取得するために、第1の乱数を用いることによって、ハンドシェイク応答メッセージを復号し、且つ第1の鍵アルゴリズムに基づき、第1の乱数及び第2の乱数に従って、セッションにおいて用いられるセッション鍵を計算する。
【0103】
更に、機器は、第1の鍵アルゴリズムに基づき、第1の乱数及び第2の乱数に従って、セッションにおいて用いられるセッション鍵を計算するように構成されたセッション鍵計算ユニット805を含んでもよい。
【0104】
幾つかの実施形態において、サーバ側における安全なネットワーク通信用の機器はまた、暗号文サービス要求受信ユニット、セッション鍵検索ユニット、サービス要求復号ユニット、第2のサービス応答生成ユニット、及び暗号文サービス応答送信ユニットを含んでもよい。
【0105】
機器は、クライアントによって送信された暗号文サービス要求メッセージを受信するように構成された暗号文サービス要求受信ユニットを含んでもよい。暗号文サービス要求メッセージは、セッション鍵の識別子、及びセッション鍵を用いることによって暗号化された第2のサービス要求データを含む。
【0106】
機器はまた、セッション鍵の識別子に従って、対応するセッション鍵を調べるように構成されたセッション鍵ルックアップユニットを含んでもよい。
【0107】
機器は、第2のサービス要求データを取得するために、対応するセッション鍵を用いることによって、暗号文サービス要求メッセージを復号するように構成されたサービス要求復号ユニットを更に含んでもよい。
【0108】
加えて、機器は、第2のサービス要求データに従って、第2のサービス応答データを生成するように構成された第2のサービス応答生成ユニットを含んでもよい。
【0109】
更に、機器は、暗号文サービス応答メッセージをクライアントに送信するように構成された暗号文サービス応答送信ユニットを含んでもよい。暗号文サービス応答メッセージは、対応するセッション鍵を用いることによって暗号化された第2のサービス応答データを含む。
【0110】
幾つかの実施形態において、サーバ側における安全なネットワーク通信用の機器は、平文サービス要求受信ユニット、サービス要求データ取得ユニット、第3のサービス応答生成ユニット、及び平文サービス応答送信ユニットを更に含んでもよい。
【0111】
機器は、クライアントによって送信された平文サービス要求メッセージを受信するように構成された平文サービス要求受信ユニットを含んでもよい。平文サービス要求メッセージは、平文用の第3のサービス要求データを含む。
【0112】
機器はまた、平文サービス要求メッセージから平文用の第3のサービス要求データを取得するように構成されたサービス要求データ取得ユニットを含んでもよい。
【0113】
機器は、平文用の第3のサービス要求データに従って、平文の第3のサービス応答データを生成するように構成された第3のサービス応答生成ユニットを更に含んでもよい。
加えて、機器は、平文サービス応答メッセージをクライアントに送信するように構成された平文サービス応答送信ユニットを含んでもよい。平文サービス応答メッセージは、平文の第3のサービス応答データを含む。
【0114】
1990年代に、技術の改善は、ハードウェアの改善(例えば、ダイオード、トランジスタ及びスイッチなどの回路構造の改善)又はソフトウェアの改善(方法手順の改善)として明らかに区別され得る。しかしながら、技術の発展と共に、現在、多くの方法手順における改善は、ハードウェア回路構造に対する直接の改善と見なされ得る。ほとんど全ての設計者は、改善された方法手順をハードウェア回路にプログラムして、対応するハードウェア回路構造を取得する。従って、方法手順に対する改善が、ハードウェアエンティティモジュールを用いることによっては実行され得ないと仮定することはできない。例えば、プログラマブル論理装置(PLD)(例えばフィールドプログラマブルゲートアレイ(FPGA))は、かかる集積回路であり、その論理機能は、ユーザプログラミング装置によって決定される。設計者は、専用集積回路チップを設計し製造するようにチップメーカに要求するのではなく、デジタルシステムをPLDのピースに集積するように独力でプログラムする。更に、現在、プログラミングは、手動で集積回路チップを製造する代わりに、論理コンパイラソフトウェアを用いることによってほとんど実行される。ソフトウェアは、プログラムを開発し書くために使用されるソフトウェアコンパイラに似ている。コンパイリング前のそのオリジナルコードはまた、特定のプログラミング言語で書かれる必要があり、その言語は、ハードウェア記述言語(HDL)と呼ばれる。単に1つのタイプではなく、高度ブール表現言語(Advanced Boolean Expression Language)(ABEL)、アルテラハードウェア記述言語(Altera Hardware Description Language)(AHDL)、Confluence、コーネル大学プログラミング言語(Cornell University programming Language)(CUPL)、HDCal、ジャバハードウェア記述言語(Java(登録商標) Hardware Description Language)(JHDL)、Lava、Lola、MyHDL、PALASM、及びルビーハードウェア記述言語(Ruby Hardware Description Language)(RHDL)などの多くのタイプのHDLが存在する。超高速集積回路ハードウェア記述言語(Very-High-Speed Integrated Circuit Hardware Description Language)(VHDL)及びVerilogは、現在、最も一般的に用いられている。当業者は、論理方法手順を実行するためのハードウェア回路が、上記の幾つかのハードウェア記述言語を用いて方法手順を論理的にプログラムし、且つそれを集積回路にコンパイルすることによってのみ容易に取得され得ることを知っているに違いない。
【0115】
コントローラが、任意の適切な方法で実現されてもよい。例えば、コントローラは、例えばマイクロプロセッサ又はプロセッサと、(マイクロ)プロセッサ、論理ゲート、スイッチ、特定用途向け集積回路(ASIC)、プログラマブル論理コントローラ及び埋め込み型マイクロコントローラによって実行可能なコンピュータ可読プログラムコード(例えばソフトウェア又はファームウェア)を格納するコンピュータ可読媒体と、の形態であってもよい。コントローラの例は、限定するわけではないが、次のマイクロコントローラを含む。即ち、ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20、及びSilicone Labs C8051F320を含む。メモリコントローラもまた、メモリの制御論理の一部として実現されてもよい。
【0116】
純粋なコンピュータ可読プログラムを用いることによるコントローラの実現に加えて、当業者はまた、方法ステップが、論理ゲート、スイッチ、特定用途向け集積回路、プログラマブル論理コントローラ、及び埋め込み型マイクロコントローラの形態で同じ機能を実行するコントローラによって、論理プログラミングを通して実行され得ることを知っている。従って、この種のコントローラは、ハードウェアコンポーネントとして見なされてもよい。そこに含まれ、且つ様々な機能を実行するように構成された機器はまた、ハードウェアコンポーネント内の構造として見なされてもよい。代替として、様々な機能を実行するように構成された機器は、方法を実行するためのソフトウェアモジュール及びハードウェアコンポーネント内の構造の両方として見なされてもよい。
【0117】
上記の実施形態に示されているシステム、機器、モジュール又はユニットは、要求される機能を有するコンピュータ、コンピューティングチップ又は機器ユニットを用いることによって実現されてもよい。
【0118】
上記の機器は、それらのそれぞれの機能に従って、様々なユニットとして説明されている。幾つかの実施形態において、これらのユニットの機能は、同じ1つの又は多数のソフトウェア及び/又はハードウェア方式で実行されてもよい。
【0119】
実装形態の前述の説明に基づいて、当業者は、本出願が、ソフトウェア+必要な汎用ハードウェアプラットフォームによって実施され得ることを明白に理解されよう。かかる理解に基づいて、本出願自体又は先行技術に寄与する部分の技術的解決法は、ソフトウェアプロダクトの形で実行され得る。典型的な構成において、コンピュータは、1つ又は複数のプロセッサ(CPU)、入力/出力インターフェース、ネットワークインターフェース、及びメモリを含んでもよい。コンピュータソフトウェアプロダクトは、本出願の実施形態又は実施形態の幾つかの部分で説明された方法を実行するようにコンピュータ(パーソナルコンピュータ、サーバ、ネットワーク装置等であってもよい)に命令するための幾つかの命令を含んでもよい。コンピュータソフトウェアプロダクトは、メモリに格納されてもよい。メモリは、揮発性メモリ、ランダムアクセスメモリ(RAM)、及び/又は読み取り専用メモリ(ROM)若しくはフラッシュRAMなど、コンピュータ可読媒体における非一時的なメモリ等を含んでもよい。メモリは、コンピュータ可読媒体の例である。コンピュータ可読媒体は、不揮発性及び揮発性媒体、並びに着脱可能及び着脱不能媒体を含んでもよく、且つ任意の方法又は技術によって情報の格納を実行してもよい。情報は、コンピュータ可読命令、データ構造、及びプログラム又は他のデータのモジュールであってもよい。コンピュータの記憶媒体は、限定するわけではないが、相変化メモリ(PRAM)、スタティックランダムアクセスメモリ(SRAM)、ダイナミックランダムアクセスメモリ(DRAM)、他のタイプのRAM、読み取り専用メモリ(ROM)、電気的消去可能プログラマブル読み取り専用メモリ(EEPROM)、フラッシュメモリ若しくは他のメモリ技術、コンパクトディスク読み取り専用メモリ(CD−ROM)、デジタル多用途ディスク(DVD)若しくは他の光記憶装置、カセットテープ、磁気テープ/磁気ディスク記憶装置若しくは他の磁気記憶装置、又は任意の他の非送信媒体を含んでもよい。コンピュータの記憶媒体は、計算装置によってアクセス可能な情報を記憶するために用いられてもよい。本明細書における定義によれば、コンピュータ可読媒体は、変調されたデータ信号及びキャリアなどの一時的な媒体を含まない。
【0120】
本出願の上記の実施形態は、増分式で説明されている。実施形態の同一又は類似部分は、互いを参照して取得されてもよい。各実施形態の説明は、他の実施形態とは異なる特徴を強調する。特に、システム実施形態が、方法実施形態にほとんど似ているので、それらは、単に簡潔に説明される。それらの類似部分の説明は、方法実施形態の説明を参照する場合がある。
【0121】
本出願の実施形態は、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルド装置又は携帯装置、タブレット装置、マルチプロセッサシステム、マイクロプロセッサベースのシステム、セットトップボックス、プログラマブル消費者電子装置、ネットワークパースンコンピュータ、マイクロコンピュータ、メインフレームコンピュータ、及び上記のシステム又は装置のいずれかを含む分散コンピューティング環境など、様々な汎用又は専用コンピュータシステム環境又は構成に適用可能である。
【0122】
本出願の実施形態は、例えばプログラムモジュールなど、コンピュータによって実行されるコンピュータ実行可能命令の共通の文脈において実行されてもよい。一般に、プログラムモジュールは、特定のタスクを実行するか又は特定の抽象データ型を実行するために用いられるルーチン、プログラム、オブジェクト、アセンブリ、データ構造等を含んでもよい。本出願の実施形態はまた、分散コンピューティング環境において実施されてもよい。分散コンピュータ環境において、タスクは、通信ネットワークを通して接続された遠隔処理装置を用いることによって実行される。分散コンピュータ環境において、プログラムモジュールは、ローカル記憶装置及び/又は遠隔コンピュータ記憶媒体に置かれてもよい。
【0123】
本出願は、上記の実施形態を通して説明されるが、当業者は、本出願が、本出願の趣旨から逸脱しない多くの変形及び変更を含むことを知っているに違いない。次の特許請求の範囲は、本出願の趣旨から逸脱しないそれらの変形及び変更をカバーする。
図1A
図1B
図2
図3
図4
図5
図6
図7
図8