説明

暗号通信中継システム、暗号通信中継方法および暗号通信中継用プログラム

【課題】暗号通信を中継する装置における暗号化及び復号の負荷を軽減しつつ、暗号通信が行われた場合の通信傍受を抑制できる暗号通信中継システムを提供する。
【解決手段】Diffie−Hellman鍵合意中継手段81は、クライアント70と宛先サーバ90との間の暗号通信に用いられる共通鍵を作成する処理であるDiffie−Hellman鍵合意で使用されるDiffie−Hellman公開値を中継する。暗号通信セッション管理手段82は、クライアント70から受信したハンドシェイク要求に含まれる宛先サーバ90の識別情報とクライアント70の識別情報とを通信情報記憶手段に記憶させる。通信中継手段83は、ハンドシェイク完了後の暗号通信で、通信情報記憶手段に記憶された識別情報により特定される両装置間の通信を、共通鍵を使用して暗号化された状態で中継する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、暗号通信を中継する処理負荷を軽減しつつ、暗号通信における通信傍受を抑制できる暗号通信中継システム、暗号通信中継装置、暗号通信中継方法および暗号通信中継用プログラムに関する。
【背景技術】
【0002】
一般的な暗号通信中継方法が、特許文献1に記載されている。図11は、特許文献1に記載された暗号化通信システムの一部を示す説明図である。
【0003】
図11に示す暗号化通信システムは、サーバ710と、クライアント720と、通信中継装置730とを備えている。通信中継装置730は、フレーム転送部731と、セッション記録部732と、サーバ側送受信部733と、クライアント側送受信部734と、認証記録部735と、共通鍵+識別子作成部736と、共通鍵+識別子転送部737とを含む。また、サーバ710は、フレーム送信部711と、フレーム受信部712とを含む。
【0004】
このうち、通信中継装置730の共通鍵+識別子作成部736がクライアント720との間で共通鍵を生成し、共通鍵+識別子転送部737がサーバ710へ共通鍵とを送信する。そして、サーバ710のフレーム送信手段711が共通鍵を用いて送信フレームを暗号化し、フレーム受信部712が共通鍵を用いて受信フレームを復号する。
【0005】
このような動作を行うことにより、図11に示す暗号化通信システムは、通信中継装置730における暗号化及び復号(以下、暗号化・復号と記すこともある。)の負荷を軽減できる。なぜならば、通信中継装置730が通信フレームの暗号化・復号を行わず、サーバ710におけるフレーム送信部711とフレーム受信部712が、暗号化・復号を行うからである。
【0006】
また、一般的な暗号鍵合意方式であるDiffie−Hellman(以下、DHと記すこともある。)鍵合意が、特許文献2及び非特許文献1に記載されている。この暗号鍵合意方式では、二者が公開値を交換し、その公開値から、二者がそれぞれ特定の手順に従って秘密値を計算する。結果として得られた秘密値は等しい値になるので、暗号通信の共通鍵として利用できる。すなわち、Diffie−Hellman鍵合意は、暗号通信に用いられる共通鍵を作成する処理ということができる。
【0007】
Diffie−Hellman鍵合意は、具体的には、以下の手順に従って行われる。まず、一の装置が他の装置に対して2つの素数(P,G)を送信する。また、一の装置が乱数Aを用意し、同様に、他の装置も乱数Bを用意する。さらに、一の装置が、G mod Pで算出される数を他の装置の送信し、同様に、他の装置が、G mod Pで算出される数を一の装置に送信する。そして、一の装置が他の装置から受信した数をA乗し、同様に、他の装置が一の装置から受信した数をB乗する。このように算出された値は、一の装置と他の装置とで、同一の値になる。このようにして、両装置は、等しい鍵を共有できることになる。
【0008】
また、公開鍵証明書の内容が非特許文献2に記載されている。公開鍵証明書は、信頼できる第三者(証明機関)が、鍵の所有者の名前とその公開鍵を併せたメッセージに署名したものである。通信を行う装置は、この証明書の署名を確認するだけで、公開鍵を利用できるようになる。
【先行技術文献】
【特許文献】
【0009】
【特許文献1】特開2006−121510号公報
【特許文献2】米国特許第4200770号明細書
【非特許文献】
【0010】
【非特許文献1】結城浩、「暗号技術入門−秘密の国のアリス」、ソフトバンククリエイティブ株式会社、2003年9月27日、p280-p285
【非特許文献2】Eric Rescorla、齋藤孝道 著,鬼頭利之、古森貞 監訳,「マスタリングTCP/IP SSL/TLS編」,オーム社,平成15年11月28日,p11-14
【発明の概要】
【発明が解決しようとする課題】
【0011】
しかし、特許文献1に記載された暗号化通信システムでは、通信中継装置730が暗号鍵と復号鍵を生成する。そのため、通信中継装置730の負荷を軽減させるには限界がある。
【0012】
また、特許文献1に記載された暗号化通信システムでは、通信中継装置730で通信内容が傍受される可能性があり、また、傍受されたとしても証拠が残らないという問題がある。通信内容が傍受される理由は、通信中継装置730とクライアント720との間で暗号鍵及び復号鍵が作成されるからである。すなわち、通信中継装置730は、復号鍵を知っており、作成された復号鍵を用いて暗号化された通信フレームを復号することで内容を傍受できることになる。
【0013】
また、傍受の証拠が残らない理由は、サーバ710にはクライアント720の持つ暗号鍵及び復号鍵と正常に対応する暗号鍵及び復号鍵が送信されているためである。よって、傍受の事実を調査するために、クライアント720とサーバ710が利用した鍵を照合しても、鍵は正常に照合され、傍受の証拠たり得ない。
【0014】
そこで、本発明は、暗号通信を中継する装置における暗号化及び復号の負荷を軽減しつつ、暗号通信が行われた場合の通信傍受を抑制できる暗号通信中継システム、暗号通信中継装置、暗号通信中継方法および暗号通信中継用プログラムを提供することを目的とする。
【課題を解決するための手段】
【0015】
本発明による暗号通信中継システムは、クライアントと、クライアントと暗号通信を行う宛先サーバと、クライアントと宛先サーバとの暗号通信を中継する暗号通信中継装置とを備え、暗号通信中継装置が、そのクライアントとその宛先サーバとの間の暗号通信に用いられる共通鍵を作成する処理であるDiffie−Hellman鍵合意で使用されるDiffie−Hellman公開値を中継するDiffie−Hellman鍵合意中継手段と、クライアントから受信したハンドシェイク要求に含まれる宛先サーバの識別情報とそのクライアントの識別情報とを通信情報記憶手段に記憶させる暗号通信セッション管理手段と、ハンドシェイク完了後の暗号通信で、通信情報記憶手段に記憶された識別情報により特定される両装置間の通信を、共通鍵を使用して暗号化された状態で中継する通信中継手段とを備えたことを特徴とする。
【0016】
本発明による他の暗号通信中継システムは、クライアントと、クライアントと暗号通信を行う宛先サーバと、クライアントと宛先サーバとの暗号通信を中継する暗号通信中継装置とを備え、暗号通信中継装置が、クライアントとのハンドシェイク完了後、そのクライアントから受信した宛先サーバへの接続要求に対し、そのクライアントとその宛先サーバとの間の暗号通信に用いられる共通鍵を作成する処理であるDiffie−Hellman鍵合意の開始指示をクライアントに行うDiffie−Hellman鍵合意指示手段と、Diffie−Hellman鍵合意で使用されるDiffie−Hellman公開値を中継するDiffie−Hellman鍵合意中継手段と、接続要求に含まれる宛先サーバの識別情報とそのクライアントの識別情報とを通信情報記憶手段に記憶させる暗号通信セッション管理手段と、ハンドシェイク完了後の暗号通信で、通信情報記憶手段に記憶された識別情報により特定される両装置間の通信を、共通鍵を使用して暗号化された状態で中継する通信中継手段とを備えたことを特徴とする。
【0017】
本発明による暗号通信中継装置は、クライアントとそのクライアントと暗号通信を行う宛先サーバとの間で用いられる共通鍵を作成する処理であるDiffie−Hellman鍵合意で使用されるDiffie−Hellman公開値を中継するDiffie−Hellman鍵合意中継手段と、クライアントから受信したハンドシェイク要求に含まれる宛先サーバの識別情報とそのクライアントの識別情報とを通信情報記憶手段に記憶させる暗号通信セッション管理手段と、ハンドシェイク完了後の暗号通信で、通信情報記憶手段に記憶された識別情報により特定される両装置間の通信を、共通鍵を使用して暗号化された状態で中継する通信中継手段とを備えたことを特徴とする。
【0018】
本発明による他の暗号通信中継装置は、クライアントとのハンドシェイク完了後、クライアントから受信したそのクライアントと暗号通信を行う宛先サーバへの接続要求に対し、そのクライアントとその宛先サーバとの間の暗号通信に用いられる共通鍵を作成する処理であるDiffie−Hellman鍵合意の開始指示をクライアントに行うDiffie−Hellman鍵合意指示手段と、Diffie−Hellman鍵合意で使用されるDiffie−Hellman公開値を中継するDiffie−Hellman鍵合意中継手段と、接続要求に含まれる宛先サーバの識別情報とそのクライアントの識別情報とを通信情報記憶手段に記憶させる暗号通信セッション管理手段と、ハンドシェイク完了後の暗号通信で、通信情報記憶手段に記憶された識別情報により特定される両装置間の通信を、共通鍵を使用して暗号化された状態で中継する通信中継手段とを備えたことを特徴とする。
【0019】
本発明による暗号通信中継方法は、クライアントと宛先サーバとの間で行われる暗号通信を中継する暗号通信中継装置が、そのクライアントとその宛先サーバとの間の暗号通信に用いられる共通鍵を作成する処理であるDiffie−Hellman鍵合意で使用されるDiffie−Hellman公開値を中継し、クライアントから受信したハンドシェイク要求に含まれる宛先サーバの識別情報とそのクライアントの識別情報とを通信情報記憶手段に記憶させ、ハンドシェイク完了後の暗号通信で、通信情報記憶手段に記憶された識別情報により特定される両装置間の通信を、共通鍵を使用して暗号化された状態で中継することを特徴とする。
【0020】
本発明による他の暗号通信中継方法は、クライアントと宛先サーバとの間で行われる暗号通信を中継する暗号通信中継装置が、そのクライアントとのハンドシェイク完了後、そのクライアントから受信した宛先サーバへの接続要求に対し、そのクライアントとその宛先サーバとの間の暗号通信に用いられる共通鍵を作成する処理であるDiffie−Hellman鍵合意の開始指示をクライアントに行い、Diffie−Hellman鍵合意で使用されるDiffie−Hellman公開値を中継し、接続要求に含まれる宛先サーバの識別情報とそのクライアントの識別情報とを通信情報記憶手段に記憶させ、ハンドシェイク完了後の暗号通信で、通信情報記憶手段に記憶された識別情報により特定される両装置間の通信を、共通鍵を使用して暗号化された状態で中継することを特徴とする。
【0021】
本発明による暗号通信中継プログラムは、コンピュータに、クライアントとそのクライアントと暗号通信を行う宛先サーバとの間で用いられる共通鍵を作成する処理であるDiffie−Hellman鍵合意で使用されるDiffie−Hellman公開値を中継するDiffie−Hellman鍵合意中継処理、クライアントから受信したハンドシェイク要求に含まれる宛先サーバの識別情報とそのクライアントの識別情報とを通信情報記憶手段に記憶させる暗号通信セッション管理処理、および、ハンドシェイク完了後の暗号通信で、通信情報記憶手段に記憶された識別情報により特定される両装置間の通信を、共通鍵を使用して暗号化された状態で中継する通信中継処理を実行させることを特徴とする。
【発明の効果】
【0022】
本発明によれば、暗号通信を中継する装置における暗号化及び復号の負荷を軽減しつつ、暗号通信が行われた場合の通信傍受を抑制できる。
【図面の簡単な説明】
【0023】
【図1】本発明の第1の実施形態における暗号通信中継システムの例を示すブロック図である。
【図2】第1の実施形態の動作の例を示すシーケンス図である。
【図3】本発明の第2の実施形態における暗号通信中継システムの例を示すブロック図である。
【図4】第2の実施形態の動作の例を示すシーケンス図である。
【図5】本発明の実施例における暗号通信中継システムの例を示すブロック図である。
【図6】本発明による暗号通信中継システムの最小構成の例を示すブロック図である。
【図7】本発明による暗号通信中継装置の最小構成の例を示すブロック図である。
【図8】本発明による暗号通信中継システムの他の最小構成の例を示すブロック図である。
【図9】本発明による暗号通信中継装置の他の最小構成の例を示すブロック図である。
【図10】本発明おける暗号通信中継システムの他の実施形態の例を示すブロック図である。
【図11】特許文献1に記載された暗号化通信システムの一部を示す説明図である。
【発明を実施するための形態】
【0024】
以下、本発明の実施形態を図面を参照して説明する。
【0025】
実施形態1.
図1は、本発明の第1の実施形態における暗号通信中継システムの例を示すブロック図である。本実施形態における暗号通信中継システムは、クライアント2000と通信中継装置2100とサーバ2200とを備えている。
【0026】
クライアント2000は、通信手段2001と、DH鍵合意手段2002と、鍵記録手段2003と、認証手段2004とを備えている。クライアント2000は、通信中継装置2100に対し、暗号通信の通信先である宛先サーバを指定して暗号通信中継要求を行う。
【0027】
通信手段2001は、共通鍵による暗号化通信を行う。また、通信手段2001は、共通鍵による暗号化通信に先立ち、後述する手順に従って、暗号化通信のハンドシェイクを行う。ハンドシェイクの際、通信手段2001は、平文の送受信及び公開鍵による暗号文の送受信も行う。
【0028】
DH鍵合意手段2002は、暗号化通信のハンドシェイクにおいて、クライアント2000とサーバ2200との間でDiffie−Hellman鍵合意(以下、DH鍵合意と記す。)を行い、暗号化通信のための共通鍵を算出する。DH鍵合意手段2002が行うDH鍵合意の処理については後述する。
【0029】
鍵記録手段2003は、DH鍵合意手段2002が算出した共通鍵を記憶する。以下、共通鍵を鍵記録手段2003に記憶させることを、共通鍵を記録すると記すこともある。なお、共通鍵を記録する目的は、後述する鍵記録手段2203が記録した共通鍵と照合するための情報を保存することである。鍵記録手段2003は、例えば、メモリや磁気ディスク等により実現される。
【0030】
認証手段2004は、通信中継装置2100を認証する。本実施形態では、認証方法として通信中継装置2100から送られた公開鍵証明書の検証による認証方法を用いる。公開鍵証明書の検証については、例えば、非特許文献2に記載された方法を用いればよい。この認証方法を用いると、クライアント2000は、通信中継装置2100を認証すると同時に、通信中継装置2100と暗号通信を行うための公開鍵を入手できる。
【0031】
通信手段2001と、DH鍵合意手段2002と、認証手段2004とは、プログラムに従って動作するコンピュータのCPUによって実現される。例えば、プログラムは、クライアント2000の記憶部(図示せず)に記憶され、CPUは、そのプログラムを読み込み、プログラムに従って、通信手段2001と、DH鍵合意手段2002と、認証手段2004として動作してもよい。
【0032】
通信中継装置2100は、通信処理部3100と、暗号通信セッション管理手段2102と、ハンドシェイク要求処理手段2103と、通信手段2109と、通信手段2110とを備えている。さらに、ハンドシェイク要求処理手段2103は、宛先サーバ決定手段2104と、認証手段2106と、DH鍵合意中継手段2105とを含む。また、通信部処理部3100は、通信中継手段2101と、通信振分手段2107と、通信振分手段2108とを含む。
【0033】
暗号通信セッション管理手段2102は、暗号通信が行われる両端点(図1に示す例では、クライアント2000とサーバ2200)の識別情報をメモリ等(図示せず)に記憶させる。以下、両端点の識別情報をメモリ等(図示せず)に記憶させることを、両端点の情報を登録すると記す。ここで、両端点とは、暗号化通信が行われる2つのノードを意味する。両端点の識別情報として、装置のノード情報(例えば、装置のアドレス)を用いることが典型的である。この識別情報に基づいて、後述する通信中継手段2101が、暗号通信を中継する。暗号通信セッション管理手段2102は、後述する宛先サーバ決定手段2104から受け取った両端点の識別情報を記録する。
【0034】
通信中継手段2101は、暗号通信セッション管理手段2102が登録した暗号通信が行われる両端点の識別情報に基づいて、クライアント2000とサーバ2200の間の暗号通信を、復号することなく中継する。具体的には、通信中継手段2101は、暗号通信セッション管理手段2102に両端点の識別情報が登録されているか否かを判断し、登録されている場合に、暗号通信を中継する。なお、以下の説明では、両端点(装置)の識別情報のことを、単に、両端点(装置)の情報と記すこともある。
【0035】
通信振分手段2107は、暗号通信セッション管理手段2102に両端点の識別情報が登録されていない場合に、受け取った通信を通信手段2109に振り分ける。同様に、通信振分手段2108は、暗号通信セッション管理手段2102に両端点の識別情報が登録されていない場合に、受け取った通信を通信手段2110に振り分ける。
【0036】
通信手段2109は、通信振分手段2107およびハンドシェイク要求手段2103からの通信パケットの送出、受信、バッファリング等を行う。また、通信手段2109は、クライアントから暗号通信の中継要求を受信し、後述する認証手段2106による認証後、公開鍵証明書をクライアント2000へ送信する。なお、公開鍵証明書は、通信中継装置2100が備えるメモリ等(図示せず)に予め記憶される。
【0037】
通信手段2110は、通信振分手段2108およびハンドシェイク要求処理手段2103からの通信パケットの送出、受信、バッファリング等を行う。また、通信手段2110は、サーバ2200からサーバの登録要求を受信し、後述する認証手段2106による認証後、公開鍵証明書をサーバ2200へ送信する。
【0038】
ハンドシェイク要求処理手段2103では、クライアント2000からの暗号通信中継要求と、サーバ2200からの登録要求を処理する。また、ハンドシェイク要求処理手段2103では、それらの要求に伴う認証処理、DH鍵合意中継処理などが行われる。以下、ハンドシェイク要求処理手段2103に含まれる各手段の動作について説明する。
【0039】
宛先サーバ決定手段2104は、クライアント2000からの暗号通信中継要求に基づいて、暗号通信を行う両端点を決定する。具体的には、宛先サーバ決定手段2104は、クライアント2000からの暗号通信中継要求に含まれる宛先サーバの指定(例えば、ホスト名や、アドレスなど)に基づいて、宛先サーバを暗号通信の端点として決定する。また、宛先サーバ決定手段2104は、暗号通信中継要求の送信元アドレスなどから、クライアント2000も暗号通信の端点として特定し、両端点を決定する。そして、宛先サーバ決定手段2104は、決定した両端点の識別情報を暗号通信セッション管理手段2102に引き渡す。
【0040】
DH鍵合意中継手段2105は、DH鍵合意に伴うクライアント2000とサーバ2200の間のDH公開値の送受信を中継する。言い換えると、DH鍵合意中継手段2105が、クライアント2000とサーバ2200との間で行われるDH鍵合意を中継していると言うこともできる。DH鍵合意とは、ノード間の暗号通信に用いられる共通鍵を作成する処理であり、DH公開値の送受信を含む共通鍵算出までの一連の処理を示す。DH鍵合意中継手段2105が行う中継処理については後述する。
【0041】
認証手段2106は、クライアント2000およびサーバ2200から送られる認証子に基づいて、クライアント2000とサーバ2200とを認証する。例えば、認証子を示すアカウントIDとパスワードを組みにした情報を含むデータベースを通信中継装置2100の記憶部(図示せず)に予め記憶しておき、クライアント2000またはサーバ2200から認証子を受信したときに、認証手段2106がそのデータベースに記憶された情報に基づいて、クライアント2000とサーバ2200とを認証してもよい。なお、通信を行う装置から認証子を受け取って認証を行う認証処理は、広く知られているため、これ以上の詳細な説明は省略する。
【0042】
通信処理部3100(より具体的には、通信中継手段2101と、通信振分手段2107と、通信振分手段2108)と、暗号通信セッション管理手段2102と、ハンドシェイク要求処理手段2103(より具体的には、宛先サーバ決定手段2104と、認証手段2106と、DH鍵合意中継手段2105)と、通信手段2109と、通信手段2110とは、プログラム(暗号通信中継用プログラム)に従って動作するコンピュータのCPUによって実現される。
【0043】
例えば、プログラムは、通信中継装置2100の記憶部(図示せず)に記憶され、CPUは、そのプログラムを読み込み、プログラムに従って、通信処理部3100(より具体的には、通信中継手段2101と、通信振分手段2107と、通信振分手段2108)、暗号通信セッション管理手段2102、ハンドシェイク要求処理手段2103(より具体的には、宛先サーバ決定手段2104と、認証手段2106と、DH鍵合意中継手段2105)、通信手段2109、および、通信手段2110として動作してもよい。
【0044】
また、通信処理部3100(より具体的には、通信中継手段2101と、通信振分手段2107と、通信振分手段2108)と、暗号通信セッション管理手段2102と、ハンドシェイク要求処理手段2103(より具体的には、宛先サーバ決定手段2104と、認証手段2106と、DH鍵合意中継手段2105)と、通信手段2109と、通信手段2110とは、それぞれが専用のハードウェアで実現されていてもよい。
【0045】
サーバ2200は、通信手段2201と、DH鍵合意手段2202と、鍵記録手段2203と、認証手段2204を備えている。
【0046】
通信手段2201は、共通鍵による暗号化通信を行う。また、通信手段2201は、共通鍵による暗号化通信に先立ち、後述する手順に従い、サーバの情報としてサーバ2200自身の情報を通信中継装置2100に登録させる。通信中継装置2100にサーバの情報を登録させる際、通信手段2201は、平文の送受信と公開鍵による暗号文の送受信も行う。
【0047】
DH鍵合意手段2202は、暗号化通信のハンドシェイクにおいて、クライアント2000とサーバ2200との間でDH鍵合意を行い、暗号化通信のための共通鍵を算出する。DH鍵合意手段2202が行うDH鍵合意の処理については後述する。
【0048】
鍵記録手段2203は、DH鍵合意手段2202が算出した共通鍵を記憶する。以下、共通鍵を鍵記録手段2203に記憶させることを、共通鍵を記録すると記すこともある。なお、共通鍵を記録する目的は、鍵記録手段2003が記録した共通鍵と照合するための情報を保存することである。鍵記録手段2203は、例えば、メモリや磁気ディスク等により実現される。
【0049】
認証手段2204は、通信中継装置2100を公開鍵証明書の検証により認証し、公開鍵を入手する。なお、公開鍵証明書の検証は、認証手段2004が行う検証と同様である。
【0050】
通信手段2201と、DH鍵合意手段2202と、認証手段2204とは、プログラムに従って動作するコンピュータのCPUによって実現される。例えば、プログラムは、サーバ2200の記憶部(図示せず)に記憶され、CPUは、そのプログラムを読み込み、プログラムに従って、通信手段2201と、DH鍵合意手段2202と、認証手段2204として動作してもよい。
【0051】
次に、動作について説明する。図2は、本実施形態の動作の例を示すシーケンス図である。まず、サーバ2200の通信手段2201は、通信中継装置2100にサーバ2200の情報を送信することで、自身をサーバとして登録するよう通信中継装置2100に要求する(ステップS301)。通信中継装置2100が登録要求を受信すると、通信手段2110は、通信中継装置2100の公開鍵証明書をサーバ2200へ返信する(ステップS302)。
【0052】
サーバ2200が、公開鍵証明書を受信すると、認証手段2204は、その公開鍵証明書を検証して中継装置を認証し(ステップS303)、その公開鍵証明書から通信中継装置2100の公開鍵を入手する。なお、この認証には、非特許文献2に記載された方法を用いればよい。
【0053】
サーバ2200が認証を完了すると、通信手段2201は、公開鍵で暗号化したサーバ2200の認証子を通信中継装置2100に送信する(ステップS304)。公開鍵で暗号化されたサーバの認証子を通信中継装置2100が受信すると、認証手段2106は、宛先サーバを認証する(ステップS305)。認証が完了したならば、認証手段2106は、認証完了通知をサーバ2200に返信する(ステップS306)。
【0054】
なお、ステップS305について詳述すると、まず、サーバの認証子を通信中継装置2100が受信すると、暗号通信セッション管理手段2102が、両端点のアドレスが登録されているか否かを判断する。ここでは、両端点のアドレスは登録されていないため、通信振分手段2108は、通信手段2110に通信を振り分ける。そして、通信手段2110は、振り分けられた通信の通信パケットを認証手段2106に送出する。
【0055】
サーバ2200が認証完了通知を受信したならば、DH鍵合意手段2202は、通信中継装置2100と自身の間の通信を暗号化・復号するための通信鍵を生成する。なお、通信鍵の生成は、DH鍵合意手段2202以外の他の鍵生成手段(図示せず)が行ってもよい。そして、通信手段2201は、公開鍵を用い、公開鍵で暗号化された通信鍵を通信中継装置2100へ送信する(ステップS307)。
【0056】
公開鍵で暗号化された通信鍵を通信中継装置2100が受信すると、ハンドシェイク要求処理手段2103における通知手段(図示せず)が登録完了通知をサーバ2200へ返信する(ステップS308)。以上、サーバ2200が登録要求を行い、登録完了通知を行うまでのステップS301〜ステップS308の処理が行われることで、サーバ2200の通信中継装置2100への登録が完了する。
【0057】
次に、クライアント2000の通信手段2001は、宛先サーバへの中継開始要求を通信中継装置2100へ送信する(ステップS309)。この宛先サーバへの中継開始要求には、サーバ2200を宛先サーバとして指定する情報が含まれる。
【0058】
通信中継装置2100が宛先サーバへの中継開始要求を受信すると、宛先サーバ決定手段2104は、宛先サーバへの中継開始要求に含まれるサーバ2200を宛先サーバとして指定した情報から、暗号通信の端点として宛先サーバを特定する(ステップS310)。そして、通信中継装置2100の通信手段2109は、公開鍵証明書をクライアント2000へ送信する(ステップS311)。
【0059】
クライアント2000が公開鍵証明書を受信すると、認証手段2004は、公開鍵証明書を検証して通信中継装置を認証し(ステップS312)、その公開鍵証明書から通信中継装置2100の公開鍵を入手する。なお、この認証にも、非特許文献2に記載された方法を用いればよい。
【0060】
クライアント2000が認証を完了すると、通信手段2001は、公開鍵で暗号化したクライアント2000の認証子を通信中継装置2100に送信する(ステップS313)。公開鍵で暗号化されたクライアントの認証子を通信中継装置2100が受信すると、認証手段2106は、クライアントを認証する(ステップS314)。認証が完了したならば、認証手段2106は、認証完了通知をクライアント2000に返信する(ステップS315)。なお、ステップS314の処理についても、ステップS305について詳述した内容と同様、暗号通信セッション管理手段2102による判断処理が行われる。
【0061】
クライアント2000が認証完了通知を受信すると、DH鍵合意手段2002は、DH公開値を生成する。具体的には、DH公開値として、DH鍵合意で用いられる2つの素数、それらを(秘密の)乱数で処理した情報が1つ生成される。そして、通信手段2001は、受信した公開鍵を用いて暗号化したクライアント2000のDH公開値を通信中継装置2100へ送信する(ステップS316)。DH鍵合意手段2002は、例えば、非特許文献1に記載された方法によってDH公開値を生成する。
【0062】
公開鍵で暗号化されたクライアント2000のDH公開値を通信中継装置2100が受信すると、DH鍵合意中継手段2105は、そのDH公開値を自身の秘密鍵で復号する。そして、DH鍵合意中継手段2105は、復号したDH公開値をステップS307で受信した通信鍵で暗号化する。そして、DH鍵合意中継手段2105は、暗号化したクライアントのDH公開値を通信手段2110を介してサーバ2200へ送信する(ステップS318)。上述するステップS316、ステップS318に示すように、DH鍵合意中継手段2105は、クライアント2000とサーバ2200との間で行われるDH鍵合意を中継していると言える(ステップS317)。
【0063】
次に、通信鍵で暗号化されたクライアント2000のDH公開値をサーバ2200が受信すると、通信手段2201は、そのDH公開値を通信鍵で復号する。そして、DH鍵合意手段2202は、サーバ2200のDH公開値を算出する。通信手段2201は、通信鍵を用いて暗号化したDH公開値を通信中継装置2100に送信する(ステップS319)。通信鍵で暗号化されたサーバ2200のDH公開値を通信中継装置2100が受信すると、DH鍵合意中継手段2105は、その暗号化されたDH公開値を通信鍵で復号し、自身の秘密鍵で署名する。そして、DH鍵合意中継手段2105は、秘密鍵で署名したサーバ2200のDH公開値を、通信手段2109を介してクライアント2000へ送信する(ステップS321)。上述するステップS310、ステップS321に示すように、DH鍵合意中継手段2105は、クライアント2000とサーバ2200との間で行われるDH鍵合意を中継していると言える(ステップS320)。
【0064】
秘密鍵で署名された宛先サーバのDH公開値をクライアント2000が受信すると、DH鍵合意手段2002は、そのDH公開値を公開鍵で検証する。
【0065】
以上、クライアント2000が公開鍵で暗号化したDH公開値を通信中継装置2100に送信し、秘密鍵で署名された宛先サーバDH公開値を受信するまでのステップS316〜ステップS321の処理が行われることで、DH公開値の交換が完了する。
【0066】
その後、クライアント2000及びサーバ2200では、DH鍵合意手段2002及びDH鍵合意手段2202が、暗号通信の共通鍵を算出する。そして、DH鍵合意手段2002及びDH鍵合意手段2202は、算出した共通鍵を、それぞれ鍵記録手段2003および鍵記録手段2203に記憶させる。DH鍵合意手段2002及びDH鍵合意手段2202は、例えば、非特許文献1に記載された方法を用いて共通鍵を算出すればよい。
【0067】
そして、通信中継装置2100の暗号通信セッション管理手段2102は、DH鍵合意の中継を完了すると、クライアント2000とサーバ2200を暗号通信の両端点として登録する。
【0068】
以降、クライアント2000とサーバ2200は、DH鍵合意に基づいて算出された共通鍵を用いて暗号通信を行う。具体的には、クライアント2000の通信手段2001が通信中継装置2100に対して暗号通信を行うと(ステップS322)、通信中継装置2100の通信中継手段2101は、暗号通信の両端点として登録された識別情報に基づいて、クライアント2000とサーバ2200の間の暗号通信を、復号することなく中継する(ステップS323)。すなわち、通信中継手段2101は、サーバ2200に対してそのまま暗号通信を行う(ステップS324)。
【0069】
同様に、サーバ2200の通信手段2201が通信中継装置2100に対して暗号通信を行うと(ステップS325)、通信中継装置2100の通信中継手段2101は、暗号通信の両端点として登録された識別情報に基づいて、クライアント2000とサーバ2200の間の暗号通信を、復号することなく中継する(ステップS326)。すなわち、通信中継手段2101は、クライアント2000に対してそのまま暗号通信を行う(ステップS327)。
【0070】
以上のように、本実施形態によれば、宛先サーバ決定手段2104が、クライアント2000から受信したハンドシェイク要求に含まれる送信先指定に基づいて、サーバ2200を通信先に決定する。また、DH鍵合意中継手段2105が、クライアント2000とサーバ2200との間で行われるDH鍵合意を中継し、暗号通信セッション管理手段2102が、クライアントの識別情報と宛先サーバの識別情報とをメモリ(図示せず)に記憶させる。そして、ハンドシェイク完了後の暗号通信で、通信中継手段2101が、メモリ(図示せず)に記憶された識別情報により特定される両装置間の通信を、共通鍵を使用して暗号化された状態で(復号せずに)中継する。以上のような構成により、暗号通信を中継する装置における暗号化及び復号の負荷を軽減しつつ、暗号通信が行われた場合の通信傍受を抑制できる。
【0071】
具体的には、本実施形態によれば、通信中継装置2100での暗号化と復号の負荷を軽減できる。その理由は、クライアント2000とサーバ2200間の暗号通信の暗号化および復号処理が、DH鍵合意によって算出された共通鍵を用いてクライアント2000とサーバ2200で行われ、通信中継装置2100が暗号化・復号の処理を行わないためである。
【0072】
また、本実施形態によれば、通信中継装置2100において通信内容傍受が行われたならば、クライアント2000およびサーバ2200に証拠が残ることになる。その理由は、DH鍵合意によって算出された共通鍵を鍵記録手段2003および鍵記録手段2203が記録しているためである。
【0073】
なぜならば、通信中継装置2100が通信内容を傍受するには、クライアント2000とサーバ2200間の暗号通信を復号する必要がある。しかし、復号に必要な共通鍵は、通常、クライアントと宛先サーバしか所持していないため、通信中継装置2100は通信内容を傍受できない。もし、通信中継装置がman−in−the−middle攻撃によってDH鍵合意に介入して不正に鍵を入手したならば、鍵記録手段2003と鍵記録手段2203に残る鍵が不一致になるという証拠が残ることになる。
【0074】
また、クライアント2000と通信中継装置2100、および、通信中継装置2100とサーバ2200の間に、通信を傍受しようとする他の機器が存在するとする。本実施形態によれば、このような機器がman−in−the−middle攻撃によってDH鍵合意に介入して不正に鍵を入手し、通信を傍受することを防止できる。その理由は、ハンドシェイク手順において、通信中継装置2100が公開鍵証明書を送信し、クライアント2000とサーバ2200が公開鍵証明書を検証することにより通信中継装置2100を認証する。さらに、これらの装置が公開鍵証明書から得られた公開鍵を用いて通信することにより、通信中継装置2100のみがDH公開値を中継できるように構成されているからである。
【0075】
実施形態2.
図3は、本発明の第2の実施形態における暗号通信中継システムの例を示すブロック図である。本実施形態における暗号通信中継システムは、クライアント4000と通信中継装置4100とサーバ4200とを備えている。クライアント4000は、第1の実施形態と同様、通信中継装置4100に対し、暗号通信の通信先である宛先サーバを指定して暗号通信中継要求を行う。
【0076】
クライアント4000は、通信手段4001と、DH鍵合意手段4002と、鍵記録手段4003と、認証手段4004とを備えている。
【0077】
通信手段4001は、平文の送受信と公開鍵による暗号文の送受信により、暗号化通信のハンドシェイクを行う。また、通信手段4001は、ハンドシェイクの結果得られた通信鍵を用いて、サーバ4200への接続要求を暗号文として通信中継装置4100に送信する。さらに、通信手段4001は、DH鍵合意の結果得られた共通鍵を用いて、暗号化通信を行う。
【0078】
DH鍵合意手段4002、鍵記録手段4003および認証手段4004については、それぞれ、第1の実施形態におけるDH鍵合意手段2002、鍵記録手段2003および認証手段2004と同様であるため、詳細な説明は省略する。
【0079】
通信中継装置4100は、通信処理部5100と、セッション管理手段4102と、ハンドシェイク要求処理手段4103と、通信手段4109と、通信手段4110と、接続要求処理手段4111とを備えている。さらに、ハンドシェイク要求処理手段4103は、認証手段4106を含む。また、接続要求処理手段4111は、宛先サーバ決定手段4104と、DH鍵合意指示手段4112と、DH鍵合意中継手段4105とを含む。さらに、通信処理部5100は、通信中継手段4101と、通信振分手段4107と、通信振分手段4108とを含む。これらの手段の多くは、第1の実施形態における各手段と同様の動作を行うが、一部、構成と動作に差異がある。
【0080】
具体的には、第1の実施形態におけるハンドシェイク要求処理手段2103は、宛先サーバ決定手段2104と、DH鍵合意中継手段2105とを含む。一方、本実施形態におけるハンドシェイク要求処理手段4103は、宛先サーバ決定手段4104とDH鍵合意中継手段4105を含まない(認証手段4106を含む)点において、第1の実施形態と異なる。これは、後述するハンドシェイクの処理において宛先サーバが指定されず、DH鍵合意も実施されないためである。
【0081】
また、本実施形態における通信中継装置4100では、接続要求処理手段4111を新たに構成要素として備える点において、第1の実施形態と異なる。上述の通り、接続要求処理手段4111は、宛先サーバ決定手段4104と、DH鍵合意指示手段4112と、DH鍵合意中継手段4105とを含む。
【0082】
なお、通信処理部5100(より具体的には、通信中継手段4101と、通信振分手段4107と、通信振分手段4108)、通信手段4109とおよび通信手段4110の動作は、それぞれ、第1の実施形態における通信処理部3100(より具体的には、通信中継手段2101と、通信振分手段2107と、通信振分手段2108)、通信手段2109とおよび通信手段2110の動作と同様であるため、これらについては説明を省略し、差異のある部分について説明する。
【0083】
接続要求処理手段4111では、ハンドシェイク要求処理手段4103がハンドシェイクの処理を完了した後に、クライアント4000から送信される接続要求が処理される。以下、接続要求処理手段4111に含まれる各手段の動作について説明する。
【0084】
宛先サーバ決定手段4104は、宛先サーバ決定手段2104と概ね同様に動作するが、その動作の起点となるのはクライアント4000から送信される宛先サーバへの接続要求である。これは、宛先サーバ決定手段2104の動作起点がハンドシェイク要求である第1の実施形態とは異なる。具体的には、宛先サーバ決定手段4104は、クライアント4000からの接続要求に基づいて、暗号通信を行う両端点を決定する。例えば、宛先サーバ決定手段4104は、クライアント4000からの接続要求に含まれる宛先サーバの指定(例えば、ホスト名や、アドレスなど)に基づいて、宛先サーバを暗号通信の端点として決定する。
【0085】
DH鍵合意指示手段4112は、接続要求に応答する形で、DH鍵合意要求をクライアント4000に返信する。具体的には、DH鍵合意指示手段4112は、クライアント4000から宛先サーバへの接続要求を受信すると、クライアント4000に対してDH鍵合意の開始指示(命令)を返信する。
【0086】
DH鍵合意中継手段4105は、クライアント4000とサーバ4200の間のDH鍵合意を中継する。なお、DH鍵合意中継手段4105が行う処理は、DH鍵合意中継手段2105が行う処理と同様である。
【0087】
通信処理部5100(より具体的には、通信中継手段4101と、通信振分手段4107と、通信振分手段4108)と、セッション管理手段4102と、ハンドシェイク要求処理手段4103(より具体的には、認証手段4106)と、接続要求処理手段4111(より具体的には、宛先サーバ決定手段4104と、DH鍵合意指示手段4112と、DH鍵合意中継手段4105)と、通信手段4109と、通信手段4110とは、プログラム(暗号通信中継用プログラム)に従って動作するコンピュータのCPUによって実現される。
【0088】
サーバ4200は、通信手段4201と、DH鍵合意手段4202と、鍵記録手段4203と、認証手段4204を備えている。通信手段4201、DH鍵合意手段4202、鍵記録手段4203および認証手段4204は、それぞれ、第1の実施形態における通信手段2201、DH鍵合意手段2202、鍵記録手段2203および認証手段2204と同様であるため、詳細な説明は省略する。
【0089】
次に、動作について説明する。図4は、本実施形態の動作の例を示すシーケンス図である。図4に例示する動作の前に、サーバ4200が通信中継装置4100へ自身の情報を登録させる処理が行われる。なお、この処理は、第1の実施形態において、サーバ2200が登録要求を行い、登録完了通知を行うまでの図2におけるステップS301〜ステップS308の処理と同様であるため、説明を省略する。以降、サーバ4200と通信中継装置4100の間で登録処理が完了しているものとして説明する。
【0090】
次に、クライアント4000の通信手段4001は、クライアント4000と通信中継装置4100の間のハンドシェイク開始要求を、通信中継装置4100へ送信する(ステップS501)。通信中継装置4100がハンドシェイク開始要求を受信すると、通信手段4109は、自身の公開鍵証明書をクライアント4000へ返信する(ステップS502)。
【0091】
クライアント4000が公開鍵証明書を受信すると、認証手段4004は、公開鍵証明書を検証して通信中継装置を認証し(ステップS503)、その公開鍵証明書から通信中継装置4100の公開鍵を入手する。なお、この認証には、非特許文献2に記載された方法を用いればよい。
【0092】
クライアント4000が認証を完了すると、通信手段4001は、公開鍵で暗号化したクライアント4000の認証子を通信中継装置4100へ送信する(ステップS504)。公開鍵で暗号化されたクライアントの認証子を通信中継装置4100が受信すると、認証手段4106は、クライアントを認証する(ステップS505)。認証が完了したならば、認証手段4106は、ハンドシェイク続行要求をクライアント4000に返信する(ステップS506)。
【0093】
クライアント4000がハンドシェイク続行要求を受信すると、DH鍵合意手段4002は、通信中継装置4100と自身の間の通信を暗号化・復号するための通信鍵を生成する。なお、通信鍵の生成は、DH鍵合意手段4002以外の他の鍵生成手段(図示せず)が行ってもよい。そして、通信手段4001は、公開鍵を用い、公開鍵で暗号化した通信鍵を通信中継装置4100へ送信する(ステップS507)。
【0094】
公開鍵で暗号化された通信鍵を通信中継装置4100が受信すると、ハンドシェイク要求処理手段4103における通知手段(図示せず)がハンドシェイク完了通知をクライアント4000へ返信する(ステップS508)。以上、クライアント4000がハンドシェイク開始要求を行い、ハンドシェイク完了通知を受信するまでのステップS501〜ステップS508の処理が行われることで、クライアント4000と通信中継装置4100の間のハンドシェイクが完了する。
【0095】
次に、クライアント4000の通信手段4001は、通信鍵で暗号化した接続要求を通信中継装置4100へ送信する(ステップS509)。この通信鍵で暗号化された接続要求には、サーバ4200を宛先サーバとして指定する情報が含まれる。通信中継装置4100が通信鍵で暗号化された接続要求を受信すると、宛先サーバ決定手段4104は、その接続要求に含まれる情報から暗号通信の端点としてサーバ4200を特定する。そして、通信中継装置4100のDH鍵合意指示手段4112は、通信鍵で暗号化されたDH鍵合意要求をクライアント4000へと送信する(ステップS510)。
【0096】
通信鍵で暗号化されたDH鍵合意要求をクライアント4000が受信すると、DH鍵合意手段4002は、DH公開値を生成し、通信手段4001は、通信鍵で暗号化したDH公開値を通信中継装置4100へ送信する(ステップS511)。通信鍵で暗号化されたDH公開値を通信中継装置4100が受信すると、DH鍵合意中継手段4105は、クライアント4000との間の通信鍵で復号し、あらかじめサーバ4200登録時に取得しておいたサーバ4200との通信鍵を用いて暗号化する。そして、DH鍵合意中継手段4105は、暗号化したDH公開値を通信手段4110を介してサーバ4200へ送信する(ステップS513)。上述するステップS511、ステップS513に示すように、DH鍵合意中継手段4105は、クライアント4000とサーバ4200との間で行われるDH鍵合意を中継していると言える(ステップS512)。
【0097】
次に、通信鍵で暗号化されたクライアント4000のDH公開値をサーバ4200が受信すると、通信手段4201は、そのDH公開値を通信鍵で復号する。そして、DH鍵合意手段4202は、サーバ4200のDH公開値を算出する。通信手段4201は、通信鍵を用いて暗号化したDH公開値を通信中継装置4100に送信する(ステップS514)。通信鍵で暗号化されたサーバ4200のDH公開値を通信中継装置4100が受信すると、DH鍵合意中継手段4105は、その暗号化されたDH公開値をサーバとの間の通信鍵で復号する。そして、DH鍵合意中継手段4105は、クライアント4000との間の通信鍵を用いて暗号化されたサーバ4200のDH公開値を通信手段4109を介してクライアント4000へ送信する(ステップS516)。上述するステップS514、ステップS516に示すように、DH鍵合意中継手段4105は、クライアント4000とサーバ4200との間で行われるDH鍵合意を中継していると言える(ステップS515)。
【0098】
以上、クライアント4000が通信鍵で暗号化したDH公開値を通信中継装置4100に送信し、クライアント4000との間の通信鍵を用いて暗号化された宛先サーバのDH公開値を受信するまでのステップS511〜ステップS516の処理が行われることで、DH公開値の交換が完了する。
【0099】
その後、クライアント4000及びサーバ4200では、DH鍵合意手段4002及びDH鍵合意手段4202が、暗号通信の共通鍵を算出する。そして、DH鍵合意手段4002及びDH鍵合意手段4202は、算出した共通鍵を、それぞれ鍵記録手段4003および鍵記録手段4203に記録させる。
【0100】
そして、通信中継装置4100のセッション管理手段4102は、DH鍵合意の中継を完了すると、クライアント4000とサーバ4200を暗号通信の両端点として登録する。
【0101】
以降、クライアント4000とサーバ4200は、DH鍵合意に基づいて算出された共通鍵を用いて暗号通信を行う。具体的には、クライアント4000の通信手段4001が通信中継装置4100に対して暗号通信を行うと(ステップS517)、通信中継装置4100の通信中継手段4101は、暗号通信の両端点として登録された識別情報に基づいて、クライアント4000とサーバ4200の間の暗号通信を、復号することなく中継する(ステップS518)。すなわち、通信中継手段4101は、サーバ4200に対してそのまま暗号通信を行う(ステップS519)。
【0102】
同様に、サーバ4200の通信手段4201が通信中継装置4100に対して暗号通信を行うと(ステップS520)、通信中継装置4100の通信中継手段4101は、暗号通信の両端点として登録された識別情報に基づいて、クライアント4000とサーバ4200の間の暗号通信を、復号することなく中継する(ステップS521)。すなわち、通信中継手段4101は、クライアント4000に対してそのまま暗号通信を行う(ステップS522)。
【0103】
以上のように、本実施形態によれば、宛先サーバ決定手段4104が、クライアント4000とのハンドシェイク完了後、クライアント4000から受信した接続要求に含まれる送信先指定に基づいて、暗号通信の通信先をサーバ4200に決定する。また、DH鍵合意指示手段4112が、クライアント4000からの接続要求に対し、DH鍵合意の開始指示をクライアント4000に行い、DH鍵合意中継手段4105が、DH鍵合意を中継する。さらに、セッション管理手段4102が、クライアント4000の識別情報と宛先サーバ4200の識別情報とをメモリ(図示せず)に記憶させる。そして、通信中継手段4101が、ハンドシェイク完了後の暗号通信で、メモリ(図示せず)に記憶された識別情報により特定される両装置間の通信を、共通鍵を使用して暗号化された状態で(復号せずに)中継する。以上のような構成によっても、暗号通信を中継する装置における暗号化及び復号の負荷を軽減しつつ、暗号通信が行われた場合の通信傍受を抑制できる。すなわち、本実施形態による暗号通信中継システムも、第1の実施形態と同様の効果を得ることが出来る。
【0104】
さらに、本実施形態では、暗号通信プロトコルよりも上位のプロトコル層において、クライアント4000が宛先サーバを指定できる。なぜならば、クライアント4000と通信中継装置4100の間で通信鍵を用いた暗号通信を行い、その暗号通信のもと、通信鍵で暗号化した接続要求を送信するからである(図4におけるステップS509参照)。これは、暗号通信プロトコル上に、より上位のプロトコルを適用し、その上で宛先サーバを指定することに相当する。
【実施例】
【0105】
以下、具体的な実施例により本発明を説明するが、本発明の範囲は以下に説明する内容に限定されない。なお、本実施例は、第2の実施形態における暗号通信中継システムに相当するものである。
【0106】
本実施例では、暗号通信にTLS(Transport Layer Security)を用いる。また、TLS上でHTTP(Hypertext Transfer Protocol )を適用する、いわゆる、HTTPS(Hypertext Transfer Protocol over Secure Socket Layer)を例として動作を説明する。TLSは、RFC(Request for Comments)2246、RFC4366およびRFC5246に定義されている。また、HTTPSは、RFC2818に定義されている。
【0107】
図5は、本発明の本実施例における暗号通信中継システムの例を示すブロック図である。本実施例における暗号通信中継システムでは、クライアントとしてHTTPSクライアント600が、宛先サーバとしてHTTPサーバ620が、暗号通信中継装置として、一種のHTTPSリバースプロキシ610が、それぞれ用いられる。すなわち、本実施例における暗号通信中継システムは、HTTPSクライアント600と、HTTPSリバースプロキシ610と、HTTPサーバ620とを備えている。
【0108】
また、HTTPSリバースプロキシ610は、トンネリング手段611と、トンネル管理手段612と、TLSハンドシェイク手段613と、HTTPリクエスト処理手段618とを備えている。また、TLSハンドシェイク手段613は、認証手段616と、公開鍵証明書記憶手段617とを含む。さらに、HTTPリクエスト処理手段618は、HOSTヘッダ処理手段614と、再ハンドシェイク619と、DH鍵合意中継手段615とを含む。
【0109】
トンネリング手段611、トンネル管理手段612、TLSハンドシェイク手段613およびHTTPリクエスト処理手段618は、それぞれ、第2の実施形態における通信処理部5100、セッション管理手段4102、ハンドシェイク要求処理手段4103および接続要求処理手段4111に対応する。また、認証手段616、HOSTヘッダ処理手段614、再ハンドシェイク619およびDH鍵合意中継手段615は、それぞれ、第2の実施形態における認証手段4106、宛先サーバ決定手段4104、DH鍵合意指示手段4112およびDH鍵合意中継手段4105に対応する。
【0110】
まず、HTTPサーバ620は、HTTPSリバースプロキシ610への暗号通信トンネルを接続する。この接続では、まず、HTTPサーバ620は、HTTPSリバースプロキシ610の持つ公開鍵証明書を検証し、検証後に公開鍵を取り出す。そして、HTTPサーバ620は、その公開鍵で通信鍵を暗号化した後、その暗号化した通信鍵をHTTPSリバースプロキシ610に送信することで、暗号通信トンネルを接続する。なお、この暗号通信トンネルは、TLSを使用したものでなくともよい。また、この公開鍵証明書の検証に先立ち、認証手段616はHTTPサーバ620の認証処理を行う。
【0111】
次に、HTTPSクライアント600は、HTTPSリバースプロキシ610へのTLS暗号通信をハンドシェイクする。このハンドシェイクでは、まず、HTTPSクライアント600が、HTTPSリバースプロキシ610の持つ(具体的には、公開鍵証明書記憶手段617に記憶された)公開鍵証明書を検証し、公開鍵を取り出す。そして、HTTPSクライアント600は、通信鍵をその公開鍵で暗号化してHTTPSリバースプロキシ610へ送信することで、TLS通信を確立する。また、この公開鍵証明書の検証に先立ち、認証手段616はHTTPSクライアント600の認証処理を行う。
【0112】
次に、HTTPSクライアント600は、TLS上でHTTPのリクエストをHTTPSリバースプロキシ610へ送信する。このリクエストには、HOSTヘッダフィールドが含まれる。HOSTヘッダフィールドには、HTTPサーバ620のホスト名が記載されている。HTTPSリバースプロキシ610のHOSTヘッダ処理手段614は、HOSTヘッダフィールドに基づいて、宛先サーバを「HTTPサーバ620」に決定する。
【0113】
さらに、HTTPSリバースプロキシ610の再ハンドシェイク指示手段619は、HTTPSクライアント600にTLSの再ハンドシェイクを要求する。すなわち、再ハンドシェイク指示手段619は、第2の実施形態におけるDH鍵合意指示手段4112に相当する。HTTPSクライアント600は、TLSの再ハンドシェイク要求を受け取ると、HTTPSリバースプロキシ610に対して、暗号方式をネゴシエーションする。本実施例では、HTTPSリバースプロキシ610は、DH鍵合意を選択する。
【0114】
HTTPSクライアント600がDH鍵合意を開始するため、HTTPSリバースプロキシ610のDH鍵合意中継手段615は、暗号通信トンネルを用いてHTTPSクライアント600とHTTPサーバ620とのDH鍵合意を中継する。
【0115】
DH鍵合意が完了すると、HTTPSクライアント600は、TLSの暗号化方式をDH鍵合意の結果にしたがって切り替える。また、この切り替え以降、HTTPSリバースプロキシ610のトンネリング手段611は、クライアントからの通信を復号せず、HTTPサーバ620から受信した通信鍵で暗号化することもなく、暗号通信トンネルを介してHTTPサーバ620に転送する。このようにして、HTTPSリバースプロキシ610は、HTTPSクライアント600からのHTTPS通信を、復号することなくHTTPサーバ620へと中継する。
【0116】
なお、HTTPSクライアント600およびHTTPサーバ620では、DH鍵合意で算出した共通鍵をメモリ等(図示せず)に記録しておくことが望ましい。これは、共通鍵が一致していることを、後に監査できるようにするためである。
【0117】
次に、本発明の最小構成の例を説明する。図6は、本発明による暗号通信中継システムの最小構成の例を示すブロック図である。また、図7は、本発明による暗号通信中継装置の最小構成の例を示すブロック図である。本発明による暗号通信中継システムは、クライアント70(例えば、クライアント2000)と、クライアント70と暗号通信を行う宛先サーバ90(例えば、サーバ2200)と、クライアント70と宛先サーバ90との暗号通信を中継する暗号通信中継装置80(例えば、通信中継装置2100)とを備えている。なお、図7に例示する暗号通信中継装置は、図6に例示する暗号通信中継装置80と同様である。
【0118】
暗号通信中継装置80は、クライアント70と宛先サーバ90との間の暗号通信に用いられる共通鍵を作成する処理であるDiffie−Hellman鍵合意(DH鍵合意)で使用されるDiffie−Hellman公開値(例えば、素数や秘密の情報で素数を処理した情報)を中継するDiffie−Hellman鍵合意中継手段81(例えば、DH鍵合意中継手段2105)と、クライアント70から受信したハンドシェイク要求に含まれる宛先サーバ90の識別情報(例えば、アドレス)とクライアント70の識別情報(例えば、アドレス)とを通信情報記憶手段(例えば、通信中継装置2100が備えるメモリ)に記憶させる暗号通信セッション管理手段82(例えば、暗号通信セッション管理手段2102)と、ハンドシェイク完了後の暗号通信で、通信情報記憶手段に記憶された識別情報により特定される両装置間の通信を、共通鍵を使用して暗号化された状態で(すなわち、復号せずに)中継する通信中継手段83(例えば、通信中継手段2101)とを備えている。
【0119】
以上のような構成により、暗号通信を中継する装置における暗号化及び復号の負荷を軽減しつつ、暗号通信が行われた場合の通信傍受を抑制できる。
【0120】
次に、本発明の他の最小構成の例を説明する。図8は、本発明による暗号通信中継システムの他の最小構成の例を示すブロック図である。また、図9は、本発明による暗号通信中継装置の他の最小構成の例を示すブロック図である。図8に例示する暗号通信中継システムは、クライアント50(例えば、クライアント4000)と、クライアント50と暗号通信を行う宛先サーバ90(例えば、サーバ4200)と、クライアント50と宛先サーバ90との暗号通信を中継する暗号通信中継装置60(例えば、通信中継装置4100)とを備えている。なお、図9に例示する暗号通信中継装置は、図8に例示する暗号通信中継装置60と同様である。
【0121】
暗号通信中継装置60は、クライアント50とのハンドシェイク完了後、クライアント50から受信した宛先サーバ90への接続要求に対し、クライアント50と宛先サーバ70との間の暗号通信に用いられる共通鍵を作成する処理であるDiffie−Hellman鍵合意(DH鍵合意)の開始指示をクライアント50に行うDiffie−Hellman鍵合意指示手段61(例えば、DH鍵合意指示手段4112)と、Diffie−Hellman鍵合意で使用されるDiffie−Hellman公開値(例えば、素数や秘密の情報で素数を処理した情報)を中継するDiffie−Hellman鍵合意中継手段62と、接続要求に含まれる宛先サーバ90の識別情報(例えば、アドレス)とクライアント50の識別情報(例えば、アドレス)とを通信情報記憶手段(例えば、通信中継装置4100が備えるメモリ)に記憶させる暗号通信セッション管理手段63(例えば、セッション管理手段4102)と、ハンドシェイク完了後の暗号通信で、通信情報記憶手段に記憶された識別情報により特定される両装置間の通信を、共通鍵を使用して暗号化された状態で中継する通信中継手段64(例えば、通信中継手段4101)とを備えている。
【0122】
以上のような構成であっても、暗号通信を中継する装置における暗号化及び復号の負荷を軽減しつつ、暗号通信が行われた場合の通信傍受を抑制できる。
【0123】
また、本実施形態における暗号通信中継システムは、次のように構成されていてもよい。図10は、本発明おける暗号通信中継システムの他の実施形態の例を示すブロック図である。図10に例示する暗号通信中継システムは、クライアント100と、通信中継装置110と、サーバ120とを備えている。
【0124】
クライアント100は、通信手段101と、DH鍵合意手段102と、鍵記録手段103とを備えている。また、サーバ120は、通信手段121と、DH鍵合意手段122と、鍵記録手段123とを備えている。通信手段101および通信手段121は、平文での通信もしくは共通鍵による暗号化と復号を伴う暗号通信を行う。DH鍵合意手段102およびDH鍵合意手段122は、さらに暗号通信セッションのハンドシェイクにおいてDiffie−Hellman鍵合意を行って共通鍵を算出する。鍵記録手段103および鍵記録手段123は、共通鍵を記録する。
【0125】
通信中継装置110は、クライアント100からの暗号通信セッションのハンドシェイク要求を処理するハンドシェイク要求処理手段113と、ハンドシェイク要求に基づいて宛先サーバ(この場合は、サーバ120に相当)を決定する宛先サーバ決定手段114と、ハンドシェイク要求におけるクライアント100と宛先サーバとの間のDH鍵合意を中継するDH鍵合意中継手段115と、ハンドシェイク要求に基づいて暗号通信セッションを管理する暗号通信セッション管理手段112と、暗号通信セッション管理手段112に従ってクライアント100と宛先サーバの間の暗号通信を中継する通信中継手段111とを備えている。
【0126】
これら各手段は、概略以下のように動作する。
まず、クライアント100の通信手段101がハンドシェイク要求を通信中継装置110に送信し、通信中継装置110の宛先サーバ決定手段114が、ハンドシェイク要求に基づいて宛先サーバ(図10に示す例ではサーバ120)を決定する。そして通信中継装置110のDH鍵合意中継手段115が、クライアント100とサーバ120との間のDH鍵合意を中継することにより、ハンドシェイクを完了させる。
【0127】
ハンドシェイクが完了したならば、通信中継装置110のハンドシェイク要求処理手段113(より具体的には、宛先サーバ決定手段114)は、暗号通信セッション管理手段112に通信セッションの両端としてクライアント100とサーバ120を登録させる。また、クライアント100およびサーバ120のDH鍵合意手段102およびDH鍵合意手段122は、それぞれ、鍵記録手段103および鍵記録手段123に算出した鍵を記録する。
【0128】
DH鍵合意の結果、クライアント100の通信手段101とサーバ120の通信手段121とは、算出された共通鍵を用いて、クライアント100とサーバ120間で暗号通信を行う。この暗号通信が行われる際、通信中継装置110において、通信中継手段111が、暗号通信セッション管理手段112が記憶した情報に従って、そのまま暗号化も復号もせずに通信を中継する。
【0129】
このような構成によっても、暗号通信を中継する装置における暗号化及び復号の負荷を軽減しつつ、暗号通信が行われた場合の通信傍受を抑制できる。
【0130】
また、上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
【0131】
(付記1)クライアントと、前記クライアントと暗号通信を行う宛先サーバと、前記クライアントと前記宛先サーバとの暗号通信を中継する暗号通信中継装置とを備え、前記暗号通信中継装置は、当該クライアントと当該宛先サーバとの間の暗号通信に用いられる共通鍵を作成する処理であるDiffie−Hellman鍵合意で使用されるDiffie−Hellman公開値を中継するDiffie−Hellman鍵合意中継手段と、前記クライアントから受信したハンドシェイク要求に含まれる宛先サーバの識別情報と当該クライアントの識別情報とを通信情報記憶手段に記憶させる暗号通信セッション管理手段と、前記ハンドシェイク完了後の暗号通信で、前記通信情報記憶手段に記憶された識別情報により特定される両装置間の通信を、前記共通鍵を使用して暗号化された状態で中継する通信中継手段とを備えたことを特徴とする暗号通信中継システム。
【0132】
(付記2)クライアントは、宛先サーバ指定を含むハンドシェイク要求を暗号通信中継装置に送信する第一通信手段と、暗号通信のハンドシェイクで、宛先サーバとDiffie−Hellman鍵合意を行う第一Diffie−Hellman鍵合意手段と、前記Diffie−Hellman鍵合意により作成された共通鍵を記憶する第一鍵記憶手段とを備え、宛先サーバは、暗号通信のハンドシェイクで、クライアントとDiffie−Hellman鍵合意を行う第二Diffie−Hellman鍵合意手段と、前記Diffie−Hellman鍵合意により作成された共通鍵を記憶する第二鍵記憶手段と、暗号通信中継装置を介して、前記共通鍵を用いた暗号通信を前記クライアントと行う第二通信手段を備え、前記クライアントの第一通信手段は、暗号通信中継装置を介して、前記共通鍵を用いた暗号通信を宛先サーバと行う付記1記載の暗号通信中継システム。
【0133】
(付記3)暗号通信中継装置は、クライアントとのハンドシェイクで、公開鍵証明書をクライアントに送信する認証手段を備え、クライアントの第一通信手段は、前記ハンドシェイクで行われる通信を前記公開鍵証明書に対応する公開鍵で暗号化して暗号通信を行い、暗号通信中継装置のDiffie−Hellman鍵合意中継手段は、前記公開鍵で暗号化された通信を当該公開鍵に対応する秘密鍵で復号する付記2記載の暗号通信中継システム。
【0134】
(付記4)クライアントと、前記クライアントと暗号通信を行う宛先サーバと、前記クライアントと前記宛先サーバとの暗号通信を中継する暗号通信中継装置とを備え、前記暗号通信中継装置は、前記クライアントとのハンドシェイク完了後、当該クライアントから受信した前記宛先サーバへの接続要求に対し、当該クライアントと当該宛先サーバとの間の暗号通信に用いられる共通鍵を作成する処理であるDiffie−Hellman鍵合意の開始指示を前記クライアントに行うDiffie−Hellman鍵合意指示手段と、前記Diffie−Hellman鍵合意で使用されるDiffie−Hellman公開値を中継するDiffie−Hellman鍵合意中継手段と、前記接続要求に含まれる宛先サーバの識別情報と当該クライアントの識別情報とを通信情報記憶手段に記憶させる暗号通信セッション管理手段と、前記ハンドシェイク完了後の暗号通信で、前記通信情報記憶手段に記憶された識別情報により特定される両装置間の通信を、前記共通鍵を使用して暗号化された状態で中継する通信中継手段とを備えたことを特徴とする暗号通信中継システム。
【0135】
(付記5)クライアントは、暗号通信中継装置との暗号通信のハンドシェイク完了後、当該暗号通信上で宛先サーバへの接続要求を行う第一通信手段と、Diffie−Hellman鍵合意指示手段からの開始指示を受信したとき、宛先サーバとDiffie−Hellman鍵合意を行う第一Diffie−Hellman鍵合意手段と、前記Diffie−Hellman鍵合意により作成された共通鍵を記憶する第一鍵記憶手段とを備え、宛先サーバは、前記クライアントとDiffie−Hellman鍵合意を行う第二Diffie−Hellman鍵合意手段と、前記Diffie−Hellman鍵合意により作成された共通鍵を記憶する第二鍵記憶手段と、暗号通信中継装置を介して、前記共通鍵を用いた暗号通信を前記クライアントと行う第二通信手段を備え、前記クライアントの第一通信手段は、暗号通信中継装置を介して、前記共通鍵を用いた暗号通信を宛先サーバと行う付記4記載の暗号通信中継システム。
【0136】
(付記6)クライアントと当該クライアントと暗号通信を行う宛先サーバとの間で用いられる共通鍵を作成する処理であるDiffie−Hellman鍵合意で使用されるDiffie−Hellman公開値を中継するDiffie−Hellman鍵合意中継手段と、前記クライアントから受信したハンドシェイク要求に含まれる宛先サーバの識別情報と当該クライアントの識別情報とを通信情報記憶手段に記憶させる暗号通信セッション管理手段と、前記ハンドシェイク完了後の暗号通信で、前記通信情報記憶手段に記憶された識別情報により特定される両装置間の通信を、前記共通鍵を使用して暗号化された状態で中継する通信中継手段とを備えたことを特徴とする暗号通信中継装置。
【0137】
(付記7)暗号通信中継要求装置とのハンドシェイクで、公開鍵証明書をクライアントに送信する認証手段を備え、Diffie−Hellman鍵合意中継手段は、暗号通信中継要求装置とのハンドシェイクで、公開鍵証明書に対応する公開鍵で暗号化された暗号通信を受信したときに、当該暗号通信を当該公開鍵に対応する秘密鍵で復号する付記6記載の暗号通信中継装置。
【0138】
(付記8)クライアントとのハンドシェイク完了後、前記クライアントから受信した当該クライアントと暗号通信を行う宛先サーバへの接続要求に対し、当該クライアントと当該宛先サーバとの間の暗号通信に用いられる共通鍵を作成する処理であるDiffie−Hellman鍵合意の開始指示を前記クライアントに行うDiffie−Hellman鍵合意指示手段と、前記Diffie−Hellman鍵合意で使用されるDiffie−Hellman公開値を中継するDiffie−Hellman鍵合意中継手段と、前記接続要求に含まれる宛先サーバの識別情報と当該クライアントの識別情報とを通信情報記憶手段に記憶させる暗号通信セッション管理手段と、前記ハンドシェイク完了後の暗号通信で、前記通信情報記憶手段に記憶された識別情報により特定される両装置間の通信を、前記共通鍵を使用して暗号化された状態で中継する通信中継手段とを備えたことを特徴とする暗号通信中継装置。
【0139】
(付記9)クライアントと宛先サーバとの間で行われる暗号通信を中継する暗号通信中継装置が、当該クライアントと当該宛先サーバとの間の暗号通信に用いられる共通鍵を作成する処理であるDiffie−Hellman鍵合意で使用されるDiffie−Hellman公開値を中継し、前記クライアントから受信したハンドシェイク要求に含まれる宛先サーバの識別情報と当該クライアントの識別情報とを通信情報記憶手段に記憶させ、前記ハンドシェイク完了後の暗号通信で、前記通信情報記憶手段に記憶された識別情報により特定される両装置間の通信を、前記共通鍵を使用して暗号化された状態で中継する
ことを特徴とする暗号通信中継方法。
【0140】
(付記10)クライアントは、宛先サーバ指定を含むハンドシェイク要求を暗号通信中継装置に送信し、暗号通信中継装置がDiffie−Hellman公開値を中継することにより、クライアントとサーバとは、暗号通信のハンドシェイクで、Diffie−Hellman鍵合意を行い、クライアントは、Diffie−Hellman鍵合意により作成された共通鍵を記憶し、宛先サーバは、Diffie−Hellman鍵合意により作成された共通鍵を記憶し、宛先サーバとクライアントとは、暗号通信中継装置を介して、共通鍵を用いた暗号通信を行う付記9記載の暗号通信中継方法。
【0141】
(付記11)クライアントと宛先サーバとの間で行われる暗号通信を中継する暗号通信中継装置が、当該クライアントとのハンドシェイク完了後、当該クライアントから受信した前記宛先サーバへの接続要求に対し、当該クライアントと当該宛先サーバとの間の暗号通信に用いられる共通鍵を作成する処理であるDiffie−Hellman鍵合意の開始指示を前記クライアントに行い、前記Diffie−Hellman鍵合意で使用されるDiffie−Hellman公開値を中継し、前記接続要求に含まれる宛先サーバの識別情報と当該クライアントの識別情報とを通信情報記憶手段に記憶させ、前記ハンドシェイク完了後の暗号通信で、前記通信情報記憶手段に記憶された識別情報により特定される両装置間の通信を、前記共通鍵を使用して暗号化された状態で中継することを特徴とする暗号通信中継方法。
【0142】
(付記12)クライアントは、暗号通信中継装置との暗号通信のハンドシェイク完了後、その暗号通信上で宛先サーバへの接続要求を行い、クライアントは、暗号通信中継装置からの開始指示を受信したとき、宛先サーバとDiffie−Hellman鍵合意を行い、宛先サーバは、Diffie−Hellman公開値を中継することにより、クライアントとDiffie−Hellman鍵合意を行い、クライアントは、Diffie−Hellman鍵合意により作成された共通鍵を記憶し、宛先サーバは、Diffie−Hellman鍵合意により作成された共通鍵を記憶し、宛先サーバとクライアントとは、暗号通信中継装置を介して、共通鍵を用いた暗号通信を行う付記11記載の暗号通信中継方法。
【0143】
(付記13)コンピュータに、クライアントと当該クライアントと暗号通信を行う宛先サーバとの間で用いられる共通鍵を作成する処理であるDiffie−Hellman鍵合意で使用されるDiffie−Hellman公開値を中継するDiffie−Hellman鍵合意中継処理、前記クライアントから受信したハンドシェイク要求に含まれる宛先サーバの識別情報と当該クライアントの識別情報とを通信情報記憶手段に記憶させる暗号通信セッション管理処理、および、前記ハンドシェイク完了後の暗号通信で、前記通信情報記憶手段に記憶された識別情報により特定される両装置間の通信を、前記共通鍵を使用して暗号化された状態で中継する通信中継処理を実行させるための暗号通信中継プログラム。
【0144】
(付記14)コンピュータに、暗号通信中継要求装置とのハンドシェイクで、公開鍵証明書をクライアントに送信する認証処理を実行させ、Diffie−Hellman鍵合意中継処理で、暗号通信中継要求装置とのハンドシェイクで、公開鍵証明書に対応する公開鍵で暗号化された暗号通信を受信したときに、その暗号通信をその公開鍵に対応する秘密鍵で復号させる付記13記載の暗号通信中継プログラム。
【0145】
(付記15)コンピュータに、クライアントとのハンドシェイク完了後、前記クライアントから受信した当該クライアントと暗号通信を行う宛先サーバへの接続要求に対し、当該クライアントと当該宛先サーバとの間の暗号通信に用いられる共通鍵を作成する処理であるDiffie−Hellman鍵合意の開始指示を前記クライアントに行うDiffie−Hellman鍵合意指示処理、前記Diffie−Hellman鍵合意で使用されるDiffie−Hellman公開値を中継するDiffie−Hellman鍵合意中継処理、前記接続要求に含まれる宛先サーバの識別情報と当該クライアントの識別情報とを通信情報記憶手段に記憶させる暗号通信セッション管理処理、および、前記ハンドシェイク完了後の暗号通信で、前記通信情報記憶手段に記憶された識別情報により特定される両装置間の通信を、前記共通鍵を使用して暗号化された状態で中継する通信中継処理を実行させるための暗号通信中継プログラム。
【産業上の利用可能性】
【0146】
本発明は、HTTPSを中継するHTTPSリバースプロキシに利用できる。また、通信の秘密を重視する通信事業における、暗号通信中継装置に利用できる。
【符号の説明】
【0147】
2000,4000 クライアント
2001,2201,4001,4201 通信手段
2002,2202,4002,4202 DH鍵合意手段
2003,2203,4003,4203 鍵記録手段
2004,2204,4004,4204 認証手段
2100,4100 通信中継装置
2101,4101 通信中継手段
2102 暗号通信セッション管理手段
2103,4103 ハンドシェイク要求処理手段
2104,4104 宛先サーバ決定手段
2105,4105 DH鍵合意中継手段
2106,4106 認証手段
2107,2108,4107,4108 通信振分手段
2109,2110,4109,4110 通信手段
3100,5100 通信処理部
2200,4200 サーバ
4102 セッション管理手段
4111 接続要求処理手段
4112 DH鍵合意指示手段
600 HTTPSクライアント
610 HTTPSリバースプロキシ
611 トンネリング手段
612 トンネル管理手段
613 TLSハンドシェイク手段
614 HOSTヘッダ処理手段
615 DH鍵合意中継手段
616 認証手段
617 公開鍵証明書記憶手段
618 HTTPリクエスト処理手段
619 再ハンドシェイク指示手段
620 HTTPサーバ

【特許請求の範囲】
【請求項1】
クライアントと、
前記クライアントと暗号通信を行う宛先サーバと、
前記クライアントと前記宛先サーバとの暗号通信を中継する暗号通信中継装置とを備え、
前記暗号通信中継装置は、
当該クライアントと当該宛先サーバとの間の暗号通信に用いられる共通鍵を作成する処理であるDiffie−Hellman鍵合意で使用されるDiffie−Hellman公開値を中継するDiffie−Hellman鍵合意中継手段と、
前記クライアントから受信したハンドシェイク要求に含まれる宛先サーバの識別情報と当該クライアントの識別情報とを通信情報記憶手段に記憶させる暗号通信セッション管理手段と、
前記ハンドシェイク完了後の暗号通信で、前記通信情報記憶手段に記憶された識別情報により特定される両装置間の通信を、前記共通鍵を使用して暗号化された状態で中継する通信中継手段とを備えた
ことを特徴とする暗号通信中継システム。
【請求項2】
クライアントは、
宛先サーバ指定を含むハンドシェイク要求を暗号通信中継装置に送信する第一通信手段と、
暗号通信のハンドシェイクで、宛先サーバとDiffie−Hellman鍵合意を行う第一Diffie−Hellman鍵合意手段と、
前記Diffie−Hellman鍵合意により作成された共通鍵を記憶する第一鍵記憶手段とを備え、
宛先サーバは、
暗号通信のハンドシェイクで、クライアントとDiffie−Hellman鍵合意を行う第二Diffie−Hellman鍵合意手段と、
前記Diffie−Hellman鍵合意により作成された共通鍵を記憶する第二鍵記憶手段と、
暗号通信中継装置を介して、前記共通鍵を用いた暗号通信を前記クライアントと行う第二通信手段を備え、
前記クライアントの第一通信手段は、暗号通信中継装置を介して、前記共通鍵を用いた暗号通信を宛先サーバと行う
請求項1記載の暗号通信中継システム。
【請求項3】
暗号通信中継装置は、
クライアントとのハンドシェイクで、公開鍵証明書をクライアントに送信する認証手段を備え、
クライアントの第一通信手段は、前記ハンドシェイクで行われる通信を前記公開鍵証明書に対応する公開鍵で暗号化して暗号通信を行い、
暗号通信中継装置のDiffie−Hellman鍵合意中継手段は、前記公開鍵で暗号化された通信を当該公開鍵に対応する秘密鍵で復号する
請求項2記載の暗号通信中継システム。
【請求項4】
クライアントと、
前記クライアントと暗号通信を行う宛先サーバと、
前記クライアントと前記宛先サーバとの暗号通信を中継する暗号通信中継装置とを備え、
前記暗号通信中継装置は、
前記クライアントとのハンドシェイク完了後、当該クライアントから受信した前記宛先サーバへの接続要求に対し、当該クライアントと当該宛先サーバとの間の暗号通信に用いられる共通鍵を作成する処理であるDiffie−Hellman鍵合意の開始指示を前記クライアントに行うDiffie−Hellman鍵合意指示手段と、
前記Diffie−Hellman鍵合意で使用されるDiffie−Hellman公開値を中継するDiffie−Hellman鍵合意中継手段と、
前記接続要求に含まれる宛先サーバの識別情報と当該クライアントの識別情報とを通信情報記憶手段に記憶させる暗号通信セッション管理手段と、
前記ハンドシェイク完了後の暗号通信で、前記通信情報記憶手段に記憶された識別情報により特定される両装置間の通信を、前記共通鍵を使用して暗号化された状態で中継する通信中継手段とを備えた
ことを特徴とする暗号通信中継システム。
【請求項5】
クライアントは、
暗号通信中継装置との暗号通信のハンドシェイク完了後、当該暗号通信上で宛先サーバへの接続要求を行う第一通信手段と、
Diffie−Hellman鍵合意指示手段からの開始指示を受信したとき、宛先サーバとDiffie−Hellman鍵合意を行う第一Diffie−Hellman鍵合意手段と、
前記Diffie−Hellman鍵合意により作成された共通鍵を記憶する第一鍵記憶手段とを備え、
宛先サーバは、
前記クライアントとDiffie−Hellman鍵合意を行う第二Diffie−Hellman鍵合意手段と、
前記Diffie−Hellman鍵合意により作成された共通鍵を記憶する第二鍵記憶手段と、
暗号通信中継装置を介して、前記共通鍵を用いた暗号通信を前記クライアントと行う第二通信手段を備え、
前記クライアントの第一通信手段は、暗号通信中継装置を介して、前記共通鍵を用いた暗号通信を宛先サーバと行う
請求項4記載の暗号通信中継システム。
【請求項6】
クライアントと当該クライアントと暗号通信を行う宛先サーバとの間で用いられる共通鍵を作成する処理であるDiffie−Hellman鍵合意で使用されるDiffie−Hellman公開値を中継するDiffie−Hellman鍵合意中継手段と、
前記クライアントから受信したハンドシェイク要求に含まれる宛先サーバの識別情報と当該クライアントの識別情報とを通信情報記憶手段に記憶させる暗号通信セッション管理手段と、
前記ハンドシェイク完了後の暗号通信で、前記通信情報記憶手段に記憶された識別情報により特定される両装置間の通信を、前記共通鍵を使用して暗号化された状態で中継する通信中継手段とを備えた
ことを特徴とする暗号通信中継装置。
【請求項7】
クライアントとのハンドシェイク完了後、前記クライアントから受信した当該クライアントと暗号通信を行う宛先サーバへの接続要求に対し、当該クライアントと当該宛先サーバとの間の暗号通信に用いられる共通鍵を作成する処理であるDiffie−Hellman鍵合意の開始指示を前記クライアントに行うDiffie−Hellman鍵合意指示手段と、
前記Diffie−Hellman鍵合意で使用されるDiffie−Hellman公開値を中継するDiffie−Hellman鍵合意中継手段と、
前記接続要求に含まれる宛先サーバの識別情報と当該クライアントの識別情報とを通信情報記憶手段に記憶させる暗号通信セッション管理手段と、
前記ハンドシェイク完了後の暗号通信で、前記通信情報記憶手段に記憶された識別情報により特定される両装置間の通信を、前記共通鍵を使用して暗号化された状態で中継する通信中継手段とを備えた
ことを特徴とする暗号通信中継装置。
【請求項8】
クライアントと宛先サーバとの間で行われる暗号通信を中継する暗号通信中継装置が、当該クライアントと当該宛先サーバとの間の暗号通信に用いられる共通鍵を作成する処理であるDiffie−Hellman鍵合意で使用されるDiffie−Hellman公開値を中継し、
前記クライアントから受信したハンドシェイク要求に含まれる宛先サーバの識別情報と当該クライアントの識別情報とを通信情報記憶手段に記憶させ、
前記ハンドシェイク完了後の暗号通信で、前記通信情報記憶手段に記憶された識別情報により特定される両装置間の通信を、前記共通鍵を使用して暗号化された状態で中継する
ことを特徴とする暗号通信中継方法。
【請求項9】
クライアントと宛先サーバとの間で行われる暗号通信を中継する暗号通信中継装置が、当該クライアントとのハンドシェイク完了後、当該クライアントから受信した前記宛先サーバへの接続要求に対し、当該クライアントと当該宛先サーバとの間の暗号通信に用いられる共通鍵を作成する処理であるDiffie−Hellman鍵合意の開始指示を前記クライアントに行い、
前記Diffie−Hellman鍵合意で使用されるDiffie−Hellman公開値を中継し、
前記接続要求に含まれる宛先サーバの識別情報と当該クライアントの識別情報とを通信情報記憶手段に記憶させ、
前記ハンドシェイク完了後の暗号通信で、前記通信情報記憶手段に記憶された識別情報により特定される両装置間の通信を、前記共通鍵を使用して暗号化された状態で中継する
ことを特徴とする暗号通信中継方法。
【請求項10】
コンピュータに、
クライアントと当該クライアントと暗号通信を行う宛先サーバとの間で用いられる共通鍵を作成する処理であるDiffie−Hellman鍵合意で使用されるDiffie−Hellman公開値を中継するDiffie−Hellman鍵合意中継処理、
前記クライアントから受信したハンドシェイク要求に含まれる宛先サーバの識別情報と当該クライアントの識別情報とを通信情報記憶手段に記憶させる暗号通信セッション管理処理、および、
前記ハンドシェイク完了後の暗号通信で、前記通信情報記憶手段に記憶された識別情報により特定される両装置間の通信を、前記共通鍵を使用して暗号化された状態で中継する通信中継処理
を実行させるための暗号通信中継プログラム。

【図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

【図11】
image rotate


【公開番号】特開2012−100206(P2012−100206A)
【公開日】平成24年5月24日(2012.5.24)
【国際特許分類】
【出願番号】特願2010−248422(P2010−248422)
【出願日】平成22年11月5日(2010.11.5)
【出願人】(000004237)日本電気株式会社 (19,353)
【Fターム(参考)】