(57)【要約】【課題】暗号通信を中継する装置における暗号化及び復号の負荷を軽減しつつ、暗号通信が行われた場合の通信傍受を抑制できる暗号通信中継システムを提供する。【解決手段】Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵合意中継手段８１は、クライアント７０と宛先サーバ９０との間の暗号通信に用いられる共通鍵を作成する処理であるＤｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵合意で使用されるＤｉｆｆｉｅ−Ｈｅｌｌｍａｎ公開値を中継する。暗号通信セッション管理手段８２は、クライアント７０から受信したハンドシェイク要求に含まれる宛先サーバ９０の識別情報とクライアント７０の識別情報とを通信情報記憶手段に記憶させる。通信中継手段８３は、ハンドシェイク完了後の暗号通信で、通信情報記憶手段に記憶された識別情報により特定される両装置間の通信を、共通鍵を使用して暗号化された状態で中継する。【選択図】図６
2012100206.tif 000002
【特許請求の範囲】
【請求項１】
クライアントと、
前記クライアントと暗号通信を行う宛先サーバと、
前記クライアントと前記宛先サーバとの暗号通信を中継する暗号通信中継装置とを備え、
前記暗号通信中継装置は、
当該クライアントと当該宛先サーバとの間の暗号通信に用いられる共通鍵を作成する処理であるＤｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵合意で使用されるＤｉｆｆｉｅ−Ｈｅｌｌｍａｎ公開値を中継するＤｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵合意中継手段と、
前記クライアントから受信したハンドシェイク要求に含まれる宛先サーバの識別情報と当該クライアントの識別情報とを通信情報記憶手段に記憶させる暗号通信セッション管理手段と、
前記ハンドシェイク完了後の暗号通信で、前記通信情報記憶手段に記憶された識別情報により特定される両装置間の通信を、前記共通鍵を使用して暗号化された状態で中継する通信中継手段とを備えた
ことを特徴とする暗号通信中継システム。
【請求項２】
クライアントは、
宛先サーバ指定を含むハンドシェイク要求を暗号通信中継装置に送信する第一通信手段と、
暗号通信のハンドシェイクで、宛先サーバとＤｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵合意を行う第一Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵合意手段と、
前記Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵合意により作成された共通鍵を記憶する第一鍵記憶手段とを備え、
宛先サーバは、
暗号通信のハンドシェイクで、クライアントとＤｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵合意を行う第二Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵合意手段と、
前記Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵合意により作成された共通鍵を記憶する第二鍵記憶手段と、
暗号通信中継装置を介して、前記共通鍵を用いた暗号通信を前記クライアントと行う第二通信手段を備え、
前記クライアントの第一通信手段は、暗号通信中継装置を介して、前記共通鍵を用いた暗号通信を宛先サーバと行う
請求項１記載の暗号通信中継システム。
【請求項３】
暗号通信中継装置は、
クライアントとのハンドシェイクで、公開鍵証明書をクライアントに送信する認証手段を備え、
クライアントの第一通信手段は、前記ハンドシェイクで行われる通信を前記公開鍵証明書に対応する公開鍵で暗号化して暗号通信を行い、
暗号通信中継装置のＤｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵合意中継手段は、前記公開鍵で暗号化された通信を当該公開鍵に対応する秘密鍵で復号する
請求項２記載の暗号通信中継システム。
【請求項４】
クライアントと、
前記クライアントと暗号通信を行う宛先サーバと、
前記クライアントと前記宛先サーバとの暗号通信を中継する暗号通信中継装置とを備え、
前記暗号通信中継装置は、
前記クライアントとのハンドシェイク完了後、当該クライアントから受信した前記宛先サーバへの接続要求に対し、当該クライアントと当該宛先サーバとの間の暗号通信に用いられる共通鍵を作成する処理であるＤｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵合意の開始指示を前記クライアントに行うＤｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵合意指示手段と、
前記Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵合意で使用されるＤｉｆｆｉｅ−Ｈｅｌｌｍａｎ公開値を中継するＤｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵合意中継手段と、
前記接続要求に含まれる宛先サーバの識別情報と当該クライアントの識別情報とを通信情報記憶手段に記憶させる暗号通信セッション管理手段と、
前記ハンドシェイク完了後の暗号通信で、前記通信情報記憶手段に記憶された識別情報により特定される両装置間の通信を、前記共通鍵を使用して暗号化された状態で中継する通信中継手段とを備えた
ことを特徴とする暗号通信中継システム。
【請求項５】
クライアントは、
暗号通信中継装置との暗号通信のハンドシェイク完了後、当該暗号通信上で宛先サーバへの接続要求を行う第一通信手段と、
Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵合意指示手段からの開始指示を受信したとき、宛先サーバとＤｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵合意を行う第一Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵合意手段と、
前記Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵合意により作成された共通鍵を記憶する第一鍵記憶手段とを備え、
宛先サーバは、
前記クライアントとＤｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵合意を行う第二Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵合意手段と、
前記Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵合意により作成された共通鍵を記憶する第二鍵記憶手段と、
暗号通信中継装置を介して、前記共通鍵を用いた暗号通信を前記クライアントと行う第二通信手段を備え、
前記クライアントの第一通信手段は、暗号通信中継装置を介して、前記共通鍵を用いた暗号通信を宛先サーバと行う
請求項４記載の暗号通信中継システム。
【請求項６】
クライアントと当該クライアントと暗号通信を行う宛先サーバとの間で用いられる共通鍵を作成する処理であるＤｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵合意で使用されるＤｉｆｆｉｅ−Ｈｅｌｌｍａｎ公開値を中継するＤｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵合意中継手段と、
前記クライアントから受信したハンドシェイク要求に含まれる宛先サーバの識別情報と当該クライアントの識別情報とを通信情報記憶手段に記憶させる暗号通信セッション管理手段と、
前記ハンドシェイク完了後の暗号通信で、前記通信情報記憶手段に記憶された識別情報により特定される両装置間の通信を、前記共通鍵を使用して暗号化された状態で中継する通信中継手段とを備えた
ことを特徴とする暗号通信中継装置。
【請求項７】
クライアントとのハンドシェイク完了後、前記クライアントから受信した当該クライアントと暗号通信を行う宛先サーバへの接続要求に対し、当該クライアントと当該宛先サーバとの間の暗号通信に用いられる共通鍵を作成する処理であるＤｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵合意の開始指示を前記クライアントに行うＤｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵合意指示手段と、
前記Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵合意で使用されるＤｉｆｆｉｅ−Ｈｅｌｌｍａｎ公開値を中継するＤｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵合意中継手段と、
前記接続要求に含まれる宛先サーバの識別情報と当該クライアントの識別情報とを通信情報記憶手段に記憶させる暗号通信セッション管理手段と、
前記ハンドシェイク完了後の暗号通信で、前記通信情報記憶手段に記憶された識別情報により特定される両装置間の通信を、前記共通鍵を使用して暗号化された状態で中継する通信中継手段とを備えた
ことを特徴とする暗号通信中継装置。
【請求項８】
クライアントと宛先サーバとの間で行われる暗号通信を中継する暗号通信中継装置が、当該クライアントと当該宛先サーバとの間の暗号通信に用いられる共通鍵を作成する処理であるＤｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵合意で使用されるＤｉｆｆｉｅ−Ｈｅｌｌｍａｎ公開値を中継し、
前記クライアントから受信したハンドシェイク要求に含まれる宛先サーバの識別情報と当該クライアントの識別情報とを通信情報記憶手段に記憶させ、
前記ハンドシェイク完了後の暗号通信で、前記通信情報記憶手段に記憶された識別情報により特定される両装置間の通信を、前記共通鍵を使用して暗号化された状態で中継する
ことを特徴とする暗号通信中継方法。
【請求項９】
クライアントと宛先サーバとの間で行われる暗号通信を中継する暗号通信中継装置が、当該クライアントとのハンドシェイク完了後、当該クライアントから受信した前記宛先サーバへの接続要求に対し、当該クライアントと当該宛先サーバとの間の暗号通信に用いられる共通鍵を作成する処理であるＤｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵合意の開始指示を前記クライアントに行い、
前記Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵合意で使用されるＤｉｆｆｉｅ−Ｈｅｌｌｍａｎ公開値を中継し、
前記接続要求に含まれる宛先サーバの識別情報と当該クライアントの識別情報とを通信情報記憶手段に記憶させ、
前記ハンドシェイク完了後の暗号通信で、前記通信情報記憶手段に記憶された識別情報により特定される両装置間の通信を、前記共通鍵を使用して暗号化された状態で中継する
ことを特徴とする暗号通信中継方法。
【請求項１０】
コンピュータに、
クライアントと当該クライアントと暗号通信を行う宛先サーバとの間で用いられる共通鍵を作成する処理であるＤｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵合意で使用されるＤｉｆｆｉｅ−Ｈｅｌｌｍａｎ公開値を中継するＤｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵合意中継処理、
前記クライアントから受信したハンドシェイク要求に含まれる宛先サーバの識別情報と当該クライアントの識別情報とを通信情報記憶手段に記憶させる暗号通信セッション管理処理、および、
前記ハンドシェイク完了後の暗号通信で、前記通信情報記憶手段に記憶された識別情報により特定される両装置間の通信を、前記共通鍵を使用して暗号化された状態で中継する通信中継処理
を実行させるための暗号通信中継プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、暗号通信を中継する処理負荷を軽減しつつ、暗号通信における通信傍受を抑制できる暗号通信中継システム、暗号通信中継装置、暗号通信中継方法および暗号通信中継用プログラムに関する。
【背景技術】
【０００２】
一般的な暗号通信中継方法が、特許文献１に記載されている。図１１は、特許文献１に記載された暗号化通信システムの一部を示す説明図である。
【０００３】
図１１に示す暗号化通信システムは、サーバ７１０と、クライアント７２０と、通信中継装置７３０とを備えている。通信中継装置７３０は、フレーム転送部７３１と、セッション記録部７３２と、サーバ側送受信部７３３と、クライアント側送受信部７３４と、認証記録部７３５と、共通鍵＋識別子作成部７３６と、共通鍵＋識別子転送部７３７とを含む。また、サーバ７１０は、フレーム送信部７１１と、フレーム受信部７１２とを含む。
【０００４】
このうち、通信中継装置７３０の共通鍵＋識別子作成部７３６がクライアント７２０との間で共通鍵を生成し、共通鍵＋識別子転送部７３７がサーバ７１０へ共通鍵とを送信する。そして、サーバ７１０のフレーム送信手段７１１が共通鍵を用いて送信フレームを暗号化し、フレーム受信部７１２が共通鍵を用いて受信フレームを復号する。
【０００５】
このような動作を行うことにより、図１１に示す暗号化通信システムは、通信中継装置７３０における暗号化及び復号（以下、暗号化・復号と記すこともある。）の負荷を軽減できる。なぜならば、通信中継装置７３０が通信フレームの暗号化・復号を行わず、サーバ７１０におけるフレーム送信部７１１とフレーム受信部７１２が、暗号化・復号を行うからである。
【０００６】
また、一般的な暗号鍵合意方式であるＤｉｆｆｉｅ−Ｈｅｌｌｍａｎ（以下、ＤＨと記すこともある。）鍵合意が、特許文献２及び非特許文献１に記載されている。この暗号鍵合意方式では、二者が公開値を交換し、その公開値から、二者がそれぞれ特定の手順に従って秘密値を計算する。結果として得られた秘密値は等しい値になるので、暗号通信の共通鍵として利用できる。すなわち、Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵合意は、暗号通信に用いられる共通鍵を作成する処理ということができる。
【０００７】
Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵合意は、具体的には、以下の手順に従って行われる。まず、一の装置が他の装置に対して２つの素数（Ｐ，Ｇ）を送信する。また、一の装置が乱数Ａを用意し、同様に、他の装置も乱数Ｂを用意する。さらに、一の装置が、ＧＡ  ｍｏｄ  Ｐで算出される数を他の装置の送信し、同様に、他の装置が、ＧＢ  ｍｏｄ  Ｐで算出される数を一の装置に送信する。そして、一の装置が他の装置から受信した数をＡ乗し、同様に、他の装置が一の装置から受信した数をＢ乗する。このように算出された値は、一の装置と他の装置とで、同一の値になる。このようにして、両装置は、等しい鍵を共有できることになる。
【０００８】
また、公開鍵証明書の内容が非特許文献２に記載されている。公開鍵証明書は、信頼できる第三者（証明機関）が、鍵の所有者の名前とその公開鍵を併せたメッセージに署名したものである。通信を行う装置は、この証明書の署名を確認するだけで、公開鍵を利用できるようになる。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２００６−１２１５１０号公報
【特許文献２】米国特許第４２００７７０号明細書
【非特許文献】
【００１０】
【非特許文献１】結城浩、「暗号技術入門−秘密の国のアリス」、ソフトバンククリエイティブ株式会社、2003年9月27日、p280-p285
【非特許文献２】Eric Rescorla、齋藤孝道 著，鬼頭利之、古森貞 監訳，「マスタリングＴＣＰ／ＩＰ  ＳＳＬ／ＴＬＳ編」，オーム社，平成15年11月28日，ｐ11-14
【発明の概要】
【発明が解決しようとする課題】
【００１１】
しかし、特許文献１に記載された暗号化通信システムでは、通信中継装置７３０が暗号鍵と復号鍵を生成する。そのため、通信中継装置７３０の負荷を軽減させるには限界がある。
【００１２】
また、特許文献１に記載された暗号化通信システムでは、通信中継装置７３０で通信内容が傍受される可能性があり、また、傍受されたとしても証拠が残らないという問題がある。通信内容が傍受される理由は、通信中継装置７３０とクライアント７２０との間で暗号鍵及び復号鍵が作成されるからである。すなわち、通信中継装置７３０は、復号鍵を知っており、作成された復号鍵を用いて暗号化された通信フレームを復号することで内容を傍受できることになる。
【００１３】
また、傍受の証拠が残らない理由は、サーバ７１０にはクライアント７２０の持つ暗号鍵及び復号鍵と正常に対応する暗号鍵及び復号鍵が送信されているためである。よって、傍受の事実を調査するために、クライアント７２０とサーバ７１０が利用した鍵を照合しても、鍵は正常に照合され、傍受の証拠たり得ない。
【００１４】
そこで、本発明は、暗号通信を中継する装置における暗号化及び復号の負荷を軽減しつつ、暗号通信が行われた場合の通信傍受を抑制できる暗号通信中継システム、暗号通信中継装置、暗号通信中継方法および暗号通信中継用プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１５】
本発明による暗号通信中継システムは、クライアントと、クライアントと暗号通信を行う宛先サーバと、クライアントと宛先サーバとの暗号通信を中継する暗号通信中継装置とを備え、暗号通信中継装置が、そのクライアントとその宛先サーバとの間の暗号通信に用いられる共通鍵を作成する処理であるＤｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵合意で使用されるＤｉｆｆｉｅ−Ｈｅｌｌｍａｎ公開値を中継するＤｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵合意中継手段と、クライアントから受信したハンドシェイク要求に含まれる宛先サーバの識別情報とそのクライアントの識別情報とを通信情報記憶手段に記憶させる暗号通信セッション管理手段と、ハンドシェイク完了後の暗号通信で、通信情報記憶手段に記憶された識別情報により特定される両装置間の通信を、共通鍵を使用して暗号化された状態で中継する通信中継手段とを備えたことを特徴とする。
【００１６】
本発明による他の暗号通信中継システムは、クライアントと、クライアントと暗号通信を行う宛先サーバと、クライアントと宛先サーバとの暗号通信を中継する暗号通信中継装置とを備え、暗号通信中継装置が、クライアントとのハンドシェイク完了後、そのクライアントから受信した宛先サーバへの接続要求に対し、そのクライアントとその宛先サーバとの間の暗号通信に用いられる共通鍵を作成する処理であるＤｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵合意の開始指示をクライアントに行うＤｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵合意指示手段と、Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵合意で使用されるＤｉｆｆｉｅ−Ｈｅｌｌｍａｎ公開値を中継するＤｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵合意中継手段と、接続要求に含まれる宛先サーバの識別情報とそのクライアントの識別情報とを通信情報記憶手段に記憶させる暗号通信セッション管理手段と、ハンドシェイク完了後の暗号通信で、通信情報記憶手段に記憶された識別情報により特定される両装置間の通信を、共通鍵を使用して暗号化された状態で中継する通信中継手段とを備えたことを特徴とする。
【００１７】
本発明による暗号通信中継装置は、クライアントとそのクライアントと暗号通信を行う宛先サーバとの間で用いられる共通鍵を作成する処理であるＤｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵合意で使用されるＤｉｆｆｉｅ−Ｈｅｌｌｍａｎ公開値を中継するＤｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵合意中継手段と、クライアントから受信したハンドシェイク要求に含まれる宛先サーバの識別情報とそのクライアントの識別情報とを通信情報記憶手段に記憶させる暗号通信セッション管理手段と、ハンドシェイク完了後の暗号通信で、通信情報記憶手段に記憶された識別情報により特定される両装置間の通信を、共通鍵を使用して暗号化された状態で中継する通信中継手段とを備えたことを特徴とする。
【００１８】
本発明による他の暗号通信中継装置は、クライアントとのハンドシェイク完了後、クライアントから受信したそのクライアントと暗号通信を行う宛先サーバへの接続要求に対し、そのクライアントとその宛先サーバとの間の暗号通信に用いられる共通鍵を作成する処理であるＤｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵合意の開始指示をクライアントに行うＤｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵合意指示手段と、Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵合意で使用されるＤｉｆｆｉｅ−Ｈｅｌｌｍａｎ公開値を中継するＤｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵合意中継手段と、接続要求に含まれる宛先サーバの識別情報とそのクライアントの識別情報とを通信情報記憶手段に記憶させる暗号通信セッション管理手段と、ハンドシェイク完了後の暗号通信で、通信情報記憶手段に記憶された識別情報により特定される両装置間の通信を、共通鍵を使用して暗号化された状態で中継する通信中継手段とを備えたことを特徴とする。
【００１９】
本発明による暗号通信中継方法は、クライアントと宛先サーバとの間で行われる暗号通信を中継する暗号通信中継装置が、そのクライアントとその宛先サーバとの間の暗号通信に用いられる共通鍵を作成する処理であるＤｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵合意で使用されるＤｉｆｆｉｅ−Ｈｅｌｌｍａｎ公開値を中継し、クライアントから受信したハンドシェイク要求に含まれる宛先サーバの識別情報とそのクライアントの識別情報とを通信情報記憶手段に記憶させ、ハンドシェイク完了後の暗号通信で、通信情報記憶手段に記憶された識別情報により特定される両装置間の通信を、共通鍵を使用して暗号化された状態で中継することを特徴とする。
【００２０】
本発明による他の暗号通信中継方法は、クライアントと宛先サーバとの間で行われる暗号通信を中継する暗号通信中継装置が、そのクライアントとのハンドシェイク完了後、そのクライアントから受信した宛先サーバへの接続要求に対し、そのクライアントとその宛先サーバとの間の暗号通信に用いられる共通鍵を作成する処理であるＤｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵合意の開始指示をクライアントに行い、Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵合意で使用されるＤｉｆｆｉｅ−Ｈｅｌｌｍａｎ公開値を中継し、接続要求に含まれる宛先サーバの識別情報とそのクライアントの識別情報とを通信情報記憶手段に記憶させ、ハンドシェイク完了後の暗号通信で、通信情報記憶手段に記憶された識別情報により特定される両装置間の通信を、共通鍵を使用して暗号化された状態で中継することを特徴とする。
【００２１】
本発明による暗号通信中継プログラムは、コンピュータに、クライアントとそのクライアントと暗号通信を行う宛先サーバとの間で用いられる共通鍵を作成する処理であるＤｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵合意で使用されるＤｉｆｆｉｅ−Ｈｅｌｌｍａｎ公開値を中継するＤｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵合意中継処理、クライアントから受信したハンドシェイク要求に含まれる宛先サーバの識別情報とそのクライアントの識別情報とを通信情報記憶手段に記憶させる暗号通信セッション管理処理、および、ハンドシェイク完了後の暗号通信で、通信情報記憶手段に記憶された識別情報により特定される両装置間の通信を、共通鍵を使用して暗号化された状態で中継する通信中継処理を実行させることを特徴とする。
【発明の効果】
【００２２】
本発明によれば、暗号通信を中継する装置における暗号化及び復号の負荷を軽減しつつ、暗号通信が行われた場合の通信傍受を抑制できる。
【図面の簡単な説明】
【００２３】
【図１】本発明の第１の実施形態における暗号通信中継システムの例を示すブロック図である。
【図２】第１の実施形態の動作の例を示すシーケンス図である。
【図３】本発明の第２の実施形態における暗号通信中継システムの例を示すブロック図である。
【図４】第２の実施形態の動作の例を示すシーケンス図である。
【図５】本発明の実施例における暗号通信中継システムの例を示すブロック図である。
【図６】本発明による暗号通信中継システムの最小構成の例を示すブロック図である。
【図７】本発明による暗号通信中継装置の最小構成の例を示すブロック図である。
【図８】本発明による暗号通信中継システムの他の最小構成の例を示すブロック図である。
【図９】本発明による暗号通信中継装置の他の最小構成の例を示すブロック図である。
【図１０】本発明おける暗号通信中継システムの他の実施形態の例を示すブロック図である。
【図１１】特許文献１に記載された暗号化通信システムの一部を示す説明図である。
【発明を実施するための形態】
【００２４】
以下、本発明の実施形態を図面を参照して説明する。
【００２５】
実施形態１．
図１は、本発明の第１の実施形態における暗号通信中継システムの例を示すブロック図である。本実施形態における暗号通信中継システムは、クライアント２０００と通信中継装置２１００とサーバ２２００とを備えている。
【００２６】
クライアント２０００は、通信手段２００１と、ＤＨ鍵合意手段２００２と、鍵記録手段２００３と、認証手段２００４とを備えている。クライアント２０００は、通信中継装置２１００に対し、暗号通信の通信先である宛先サーバを指定して暗号通信中継要求を行う。
【００２７】
通信手段２００１は、共通鍵による暗号化通信を行う。また、通信手段２００１は、共通鍵による暗号化通信に先立ち、後述する手順に従って、暗号化通信のハンドシェイクを行う。ハンドシェイクの際、通信手段２００１は、平文の送受信及び公開鍵による暗号文の送受信も行う。
【００２８】
ＤＨ鍵合意手段２００２は、暗号化通信のハンドシェイクにおいて、クライアント２０００とサーバ２２００との間でＤｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵合意（以下、ＤＨ鍵合意と記す。）を行い、暗号化通信のための共通鍵を算出する。ＤＨ鍵合意手段２００２が行うＤＨ鍵合意の処理については後述する。
【００２９】
鍵記録手段２００３は、ＤＨ鍵合意手段２００２が算出した共通鍵を記憶する。以下、共通鍵を鍵記録手段２００３に記憶させることを、共通鍵を記録すると記すこともある。なお、共通鍵を記録する目的は、後述する鍵記録手段２２０３が記録した共通鍵と照合するための情報を保存することである。鍵記録手段２００３は、例えば、メモリや磁気ディスク等により実現される。
【００３０】
認証手段２００４は、通信中継装置２１００を認証する。本実施形態では、認証方法として通信中継装置２１００から送られた公開鍵証明書の検証による認証方法を用いる。公開鍵証明書の検証については、例えば、非特許文献２に記載された方法を用いればよい。この認証方法を用いると、クライアント２０００は、通信中継装置２１００を認証すると同時に、通信中継装置２１００と暗号通信を行うための公開鍵を入手できる。
【００３１】
通信手段２００１と、ＤＨ鍵合意手段２００２と、認証手段２００４とは、プログラムに従って動作するコンピュータのＣＰＵによって実現される。例えば、プログラムは、クライアント２０００の記憶部（図示せず）に記憶され、ＣＰＵは、そのプログラムを読み込み、プログラムに従って、通信手段２００１と、ＤＨ鍵合意手段２００２と、認証手段２００４として動作してもよい。
【００３２】
通信中継装置２１００は、通信処理部３１００と、暗号通信セッション管理手段２１０２と、ハンドシェイク要求処理手段２１０３と、通信手段２１０９と、通信手段２１１０とを備えている。さらに、ハンドシェイク要求処理手段２１０３は、宛先サーバ決定手段２１０４と、認証手段２１０６と、ＤＨ鍵合意中継手段２１０５とを含む。また、通信部処理部３１００は、通信中継手段２１０１と、通信振分手段２１０７と、通信振分手段２１０８とを含む。
【００３３】
暗号通信セッション管理手段２１０２は、暗号通信が行われる両端点（図１に示す例では、クライアント２０００とサーバ２２００）の識別情報をメモリ等（図示せず）に記憶させる。以下、両端点の識別情報をメモリ等（図示せず）に記憶させることを、両端点の情報を登録すると記す。ここで、両端点とは、暗号化通信が行われる２つのノードを意味する。両端点の識別情報として、装置のノード情報（例えば、装置のアドレス）を用いることが典型的である。この識別情報に基づいて、後述する通信中継手段２１０１が、暗号通信を中継する。暗号通信セッション管理手段２１０２は、後述する宛先サーバ決定手段２１０４から受け取った両端点の識別情報を記録する。
【００３４】
通信中継手段２１０１は、暗号通信セッション管理手段２１０２が登録した暗号通信が行われる両端点の識別情報に基づいて、クライアント２０００とサーバ２２００の間の暗号通信を、復号することなく中継する。具体的には、通信中継手段２１０１は、暗号通信セッション管理手段２１０２に両端点の識別情報が登録されているか否かを判断し、登録されている場合に、暗号通信を中継する。なお、以下の説明では、両端点（装置）の識別情報のことを、単に、両端点（装置）の情報と記すこともある。
【００３５】
通信振分手段２１０７は、暗号通信セッション管理手段２１０２に両端点の識別情報が登録されていない場合に、受け取った通信を通信手段２１０９に振り分ける。同様に、通信振分手段２１０８は、暗号通信セッション管理手段２１０２に両端点の識別情報が登録されていない場合に、受け取った通信を通信手段２１１０に振り分ける。
【００３６】
通信手段２１０９は、通信振分手段２１０７およびハンドシェイク要求手段２１０３からの通信パケットの送出、受信、バッファリング等を行う。また、通信手段２１０９は、クライアントから暗号通信の中継要求を受信し、後述する認証手段２１０６による認証後、公開鍵証明書をクライアント２０００へ送信する。なお、公開鍵証明書は、通信中継装置２１００が備えるメモリ等（図示せず）に予め記憶される。
【００３７】
通信手段２１１０は、通信振分手段２１０８およびハンドシェイク要求処理手段２１０３からの通信パケットの送出、受信、バッファリング等を行う。また、通信手段２１１０は、サーバ２２００からサーバの登録要求を受信し、後述する認証手段２１０６による認証後、公開鍵証明書をサーバ２２００へ送信する。
【００３８】
ハンドシェイク要求処理手段２１０３では、クライアント２０００からの暗号通信中継要求と、サーバ２２００からの登録要求を処理する。また、ハンドシェイク要求処理手段２１０３では、それらの要求に伴う認証処理、ＤＨ鍵合意中継処理などが行われる。以下、ハンドシェイク要求処理手段２１０３に含まれる各手段の動作について説明する。
【００３９】
宛先サーバ決定手段２１０４は、クライアント２０００からの暗号通信中継要求に基づいて、暗号通信を行う両端点を決定する。具体的には、宛先サーバ決定手段２１０４は、クライアント２０００からの暗号通信中継要求に含まれる宛先サーバの指定（例えば、ホスト名や、アドレスなど）に基づいて、宛先サーバを暗号通信の端点として決定する。また、宛先サーバ決定手段２１０４は、暗号通信中継要求の送信元アドレスなどから、クライアント２０００も暗号通信の端点として特定し、両端点を決定する。そして、宛先サーバ決定手段２１０４は、決定した両端点の識別情報を暗号通信セッション管理手段２１０２に引き渡す。
【００４０】
ＤＨ鍵合意中継手段２１０５は、ＤＨ鍵合意に伴うクライアント２０００とサーバ２２００の間のＤＨ公開値の送受信を中継する。言い換えると、ＤＨ鍵合意中継手段２１０５が、クライアント２０００とサーバ２２００との間で行われるＤＨ鍵合意を中継していると言うこともできる。ＤＨ鍵合意とは、ノード間の暗号通信に用いられる共通鍵を作成する処理であり、ＤＨ公開値の送受信を含む共通鍵算出までの一連の処理を示す。ＤＨ鍵合意中継手段２１０５が行う中継処理については後述する。
【００４１】
認証手段２１０６は、クライアント２０００およびサーバ２２００から送られる認証子に基づいて、クライアント２０００とサーバ２２００とを認証する。例えば、認証子を示すアカウントＩＤとパスワードを組みにした情報を含むデータベースを通信中継装置２１００の記憶部（図示せず）に予め記憶しておき、クライアント２０００またはサーバ２２００から認証子を受信したときに、認証手段２１０６がそのデータベースに記憶された情報に基づいて、クライアント２０００とサーバ２２００とを認証してもよい。なお、通信を行う装置から認証子を受け取って認証を行う認証処理は、広く知られているため、これ以上の詳細な説明は省略する。
【００４２】
通信処理部３１００（より具体的には、通信中継手段２１０１と、通信振分手段２１０７と、通信振分手段２１０８）と、暗号通信セッション管理手段２１０２と、ハンドシェイク要求処理手段２１０３（より具体的には、宛先サーバ決定手段２１０４と、認証手段２１０６と、ＤＨ鍵合意中継手段２１０５）と、通信手段２１０９と、通信手段２１１０とは、プログラム（暗号通信中継用プログラム）に従って動作するコンピュータのＣＰＵによって実現される。
【００４３】
例えば、プログラムは、通信中継装置２１００の記憶部（図示せず）に記憶され、ＣＰＵは、そのプログラムを読み込み、プログラムに従って、通信処理部３１００（より具体的には、通信中継手段２１０１と、通信振分手段２１０７と、通信振分手段２１０８）、暗号通信セッション管理手段２１０２、ハンドシェイク要求処理手段２１０３（より具体的には、宛先サーバ決定手段２１０４と、認証手段２１０６と、ＤＨ鍵合意中継手段２１０５）、通信手段２１０９、および、通信手段２１１０として動作してもよい。
【００４４】
また、通信処理部３１００（より具体的には、通信中継手段２１０１と、通信振分手段２１０７と、通信振分手段２１０８）と、暗号通信セッション管理手段２１０２と、ハンドシェイク要求処理手段２１０３（より具体的には、宛先サーバ決定手段２１０４と、認証手段２１０６と、ＤＨ鍵合意中継手段２１０５）と、通信手段２１０９と、通信手段２１１０とは、それぞれが専用のハードウェアで実現されていてもよい。
【００４５】
サーバ２２００は、通信手段２２０１と、ＤＨ鍵合意手段２２０２と、鍵記録手段２２０３と、認証手段２２０４を備えている。
【００４６】
通信手段２２０１は、共通鍵による暗号化通信を行う。また、通信手段２２０１は、共通鍵による暗号化通信に先立ち、後述する手順に従い、サーバの情報としてサーバ２２００自身の情報を通信中継装置２１００に登録させる。通信中継装置２１００にサーバの情報を登録させる際、通信手段２２０１は、平文の送受信と公開鍵による暗号文の送受信も行う。
【００４７】
ＤＨ鍵合意手段２２０２は、暗号化通信のハンドシェイクにおいて、クライアント２０００とサーバ２２００との間でＤＨ鍵合意を行い、暗号化通信のための共通鍵を算出する。ＤＨ鍵合意手段２２０２が行うＤＨ鍵合意の処理については後述する。
【００４８】
鍵記録手段２２０３は、ＤＨ鍵合意手段２２０２が算出した共通鍵を記憶する。以下、共通鍵を鍵記録手段２２０３に記憶させることを、共通鍵を記録すると記すこともある。なお、共通鍵を記録する目的は、鍵記録手段２００３が記録した共通鍵と照合するための情報を保存することである。鍵記録手段２２０３は、例えば、メモリや磁気ディスク等により実現される。
【００４９】
認証手段２２０４は、通信中継装置２１００を公開鍵証明書の検証により認証し、公開鍵を入手する。なお、公開鍵証明書の検証は、認証手段２００４が行う検証と同様である。
【００５０】
通信手段２２０１と、ＤＨ鍵合意手段２２０２と、認証手段２２０４とは、プログラムに従って動作するコンピュータのＣＰＵによって実現される。例えば、プログラムは、サーバ２２００の記憶部（図示せず）に記憶され、ＣＰＵは、そのプログラムを読み込み、プログラムに従って、通信手段２２０１と、ＤＨ鍵合意手段２２０２と、認証手段２２０４として動作してもよい。
【００５１】
次に、動作について説明する。図２は、本実施形態の動作の例を示すシーケンス図である。まず、サーバ２２００の通信手段２２０１は、通信中継装置２１００にサーバ２２００の情報を送信することで、自身をサーバとして登録するよう通信中継装置２１００に要求する（ステップＳ３０１）。通信中継装置２１００が登録要求を受信すると、通信手段２１１０は、通信中継装置２１００の公開鍵証明書をサーバ２２００へ返信する（ステップＳ３０２）。
【００５２】
サーバ２２００が、公開鍵証明書を受信すると、認証手段２２０４は、その公開鍵証明書を検証して中継装置を認証し（ステップＳ３０３）、その公開鍵証明書から通信中継装置２１００の公開鍵を入手する。なお、この認証には、非特許文献２に記載された方法を用いればよい。
【００５３】
サーバ２２００が認証を完了すると、通信手段２２０１は、公開鍵で暗号化したサーバ２２００の認証子を通信中継装置２１００に送信する（ステップＳ３０４）。公開鍵で暗号化されたサーバの認証子を通信中継装置２１００が受信すると、認証手段２１０６は、宛先サーバを認証する（ステップＳ３０５）。認証が完了したならば、認証手段２１０６は、認証完了通知をサーバ２２００に返信する（ステップＳ３０６）。
【００５４】
なお、ステップＳ３０５について詳述すると、まず、サーバの認証子を通信中継装置２１００が受信すると、暗号通信セッション管理手段２１０２が、両端点のアドレスが登録されているか否かを判断する。ここでは、両端点のアドレスは登録されていないため、通信振分手段２１０８は、通信手段２１１０に通信を振り分ける。そして、通信手段２１１０は、振り分けられた通信の通信パケットを認証手段２１０６に送出する。
【００５５】
サーバ２２００が認証完了通知を受信したならば、ＤＨ鍵合意手段２２０２は、通信中継装置２１００と自身の間の通信を暗号化・復号するための通信鍵を生成する。なお、通信鍵の生成は、ＤＨ鍵合意手段２２０２以外の他の鍵生成手段（図示せず）が行ってもよい。そして、通信手段２２０１は、公開鍵を用い、公開鍵で暗号化された通信鍵を通信中継装置２１００へ送信する（ステップＳ３０７）。
【００５６】
公開鍵で暗号化された通信鍵を通信中継装置２１００が受信すると、ハンドシェイク要求処理手段２１０３における通知手段（図示せず）が登録完了通知をサーバ２２００へ返信する（ステップＳ３０８）。以上、サーバ２２００が登録要求を行い、登録完了通知を行うまでのステップＳ３０１〜ステップＳ３０８の処理が行われることで、サーバ２２００の通信中継装置２１００への登録が完了する。
【００５７】
次に、クライアント２０００の通信手段２００１は、宛先サーバへの中継開始要求を通信中継装置２１００へ送信する（ステップＳ３０９）。この宛先サーバへの中継開始要求には、サーバ２２００を宛先サーバとして指定する情報が含まれる。
【００５８】
通信中継装置２１００が宛先サーバへの中継開始要求を受信すると、宛先サーバ決定手段２１０４は、宛先サーバへの中継開始要求に含まれるサーバ２２００を宛先サーバとして指定した情報から、暗号通信の端点として宛先サーバを特定する（ステップＳ３１０）。そして、通信中継装置２１００の通信手段２１０９は、公開鍵証明書をクライアント２０００へ送信する（ステップＳ３１１）。
【００５９】
クライアント２０００が公開鍵証明書を受信すると、認証手段２００４は、公開鍵証明書を検証して通信中継装置を認証し（ステップＳ３１２）、その公開鍵証明書から通信中継装置２１００の公開鍵を入手する。なお、この認証にも、非特許文献２に記載された方法を用いればよい。
【００６０】
クライアント２０００が認証を完了すると、通信手段２００１は、公開鍵で暗号化したクライアント２０００の認証子を通信中継装置２１００に送信する（ステップＳ３１３）。公開鍵で暗号化されたクライアントの認証子を通信中継装置２１００が受信すると、認証手段２１０６は、クライアントを認証する（ステップＳ３１４）。認証が完了したならば、認証手段２１０６は、認証完了通知をクライアント２０００に返信する（ステップＳ３１５）。なお、ステップＳ３１４の処理についても、ステップＳ３０５について詳述した内容と同様、暗号通信セッション管理手段２１０２による判断処理が行われる。
【００６１】
クライアント２０００が認証完了通知を受信すると、ＤＨ鍵合意手段２００２は、ＤＨ公開値を生成する。具体的には、ＤＨ公開値として、ＤＨ鍵合意で用いられる２つの素数、それらを（秘密の）乱数で処理した情報が１つ生成される。そして、通信手段２００１は、受信した公開鍵を用いて暗号化したクライアント２０００のＤＨ公開値を通信中継装置２１００へ送信する（ステップＳ３１６）。ＤＨ鍵合意手段２００２は、例えば、非特許文献１に記載された方法によってＤＨ公開値を生成する。
【００６２】
公開鍵で暗号化されたクライアント２０００のＤＨ公開値を通信中継装置２１００が受信すると、ＤＨ鍵合意中継手段２１０５は、そのＤＨ公開値を自身の秘密鍵で復号する。そして、ＤＨ鍵合意中継手段２１０５は、復号したＤＨ公開値をステップＳ３０７で受信した通信鍵で暗号化する。そして、ＤＨ鍵合意中継手段２１０５は、暗号化したクライアントのＤＨ公開値を通信手段２１１０を介してサーバ２２００へ送信する（ステップＳ３１８）。上述するステップＳ３１６、ステップＳ３１８に示すように、ＤＨ鍵合意中継手段２１０５は、クライアント２０００とサーバ２２００との間で行われるＤＨ鍵合意を中継していると言える（ステップＳ３１７）。
【００６３】
次に、通信鍵で暗号化されたクライアント２０００のＤＨ公開値をサーバ２２００が受信すると、通信手段２２０１は、そのＤＨ公開値を通信鍵で復号する。そして、ＤＨ鍵合意手段２２０２は、サーバ２２００のＤＨ公開値を算出する。通信手段２２０１は、通信鍵を用いて暗号化したＤＨ公開値を通信中継装置２１００に送信する（ステップＳ３１９）。通信鍵で暗号化されたサーバ２２００のＤＨ公開値を通信中継装置２１００が受信すると、ＤＨ鍵合意中継手段２１０５は、その暗号化されたＤＨ公開値を通信鍵で復号し、自身の秘密鍵で署名する。そして、ＤＨ鍵合意中継手段２１０５は、秘密鍵で署名したサーバ２２００のＤＨ公開値を、通信手段２１０９を介してクライアント２０００へ送信する（ステップＳ３２１）。上述するステップＳ３１０、ステップＳ３２１に示すように、ＤＨ鍵合意中継手段２１０５は、クライアント２０００とサーバ２２００との間で行われるＤＨ鍵合意を中継していると言える（ステップＳ３２０）。
【００６４】
秘密鍵で署名された宛先サーバのＤＨ公開値をクライアント２０００が受信すると、ＤＨ鍵合意手段２００２は、そのＤＨ公開値を公開鍵で検証する。
【００６５】
以上、クライアント２０００が公開鍵で暗号化したＤＨ公開値を通信中継装置２１００に送信し、秘密鍵で署名された宛先サーバＤＨ公開値を受信するまでのステップＳ３１６〜ステップＳ３２１の処理が行われることで、ＤＨ公開値の交換が完了する。
【００６６】
その後、クライアント２０００及びサーバ２２００では、ＤＨ鍵合意手段２００２及びＤＨ鍵合意手段２２０２が、暗号通信の共通鍵を算出する。そして、ＤＨ鍵合意手段２００２及びＤＨ鍵合意手段２２０２は、算出した共通鍵を、それぞれ鍵記録手段２００３および鍵記録手段２２０３に記憶させる。ＤＨ鍵合意手段２００２及びＤＨ鍵合意手段２２０２は、例えば、非特許文献１に記載された方法を用いて共通鍵を算出すればよい。
【００６７】
そして、通信中継装置２１００の暗号通信セッション管理手段２１０２は、ＤＨ鍵合意の中継を完了すると、クライアント２０００とサーバ２２００を暗号通信の両端点として登録する。
【００６８】
以降、クライアント２０００とサーバ２２００は、ＤＨ鍵合意に基づいて算出された共通鍵を用いて暗号通信を行う。具体的には、クライアント２０００の通信手段２００１が通信中継装置２１００に対して暗号通信を行うと（ステップＳ３２２）、通信中継装置２１００の通信中継手段２１０１は、暗号通信の両端点として登録された識別情報に基づいて、クライアント２０００とサーバ２２００の間の暗号通信を、復号することなく中継する（ステップＳ３２３）。すなわち、通信中継手段２１０１は、サーバ２２００に対してそのまま暗号通信を行う（ステップＳ３２４）。
【００６９】
同様に、サーバ２２００の通信手段２２０１が通信中継装置２１００に対して暗号通信を行うと（ステップＳ３２５）、通信中継装置２１００の通信中継手段２１０１は、暗号通信の両端点として登録された識別情報に基づいて、クライアント２０００とサーバ２２００の間の暗号通信を、復号することなく中継する（ステップＳ３２６）。すなわち、通信中継手段２１０１は、クライアント２０００に対してそのまま暗号通信を行う（ステップＳ３２７）。
【００７０】
以上のように、本実施形態によれば、宛先サーバ決定手段２１０４が、クライアント２０００から受信したハンドシェイク要求に含まれる送信先指定に基づいて、サーバ２２００を通信先に決定する。また、ＤＨ鍵合意中継手段２１０５が、クライアント２０００とサーバ２２００との間で行われるＤＨ鍵合意を中継し、暗号通信セッション管理手段２１０２が、クライアントの識別情報と宛先サーバの識別情報とをメモリ（図示せず）に記憶させる。そして、ハンドシェイク完了後の暗号通信で、通信中継手段２１０１が、メモリ（図示せず）に記憶された識別情報により特定される両装置間の通信を、共通鍵を使用して暗号化された状態で（復号せずに）中継する。以上のような構成により、暗号通信を中継する装置における暗号化及び復号の負荷を軽減しつつ、暗号通信が行われた場合の通信傍受を抑制できる。
【００７１】
具体的には、本実施形態によれば、通信中継装置２１００での暗号化と復号の負荷を軽減できる。その理由は、クライアント２０００とサーバ２２００間の暗号通信の暗号化および復号処理が、ＤＨ鍵合意によって算出された共通鍵を用いてクライアント２０００とサーバ２２００で行われ、通信中継装置２１００が暗号化・復号の処理を行わないためである。
【００７２】
また、本実施形態によれば、通信中継装置２１００において通信内容傍受が行われたならば、クライアント２０００およびサーバ２２００に証拠が残ることになる。その理由は、ＤＨ鍵合意によって算出された共通鍵を鍵記録手段２００３および鍵記録手段２２０３が記録しているためである。
【００７３】
なぜならば、通信中継装置２１００が通信内容を傍受するには、クライアント２０００とサーバ２２００間の暗号通信を復号する必要がある。しかし、復号に必要な共通鍵は、通常、クライアントと宛先サーバしか所持していないため、通信中継装置２１００は通信内容を傍受できない。もし、通信中継装置がｍａｎ−ｉｎ−ｔｈｅ−ｍｉｄｄｌｅ攻撃によってＤＨ鍵合意に介入して不正に鍵を入手したならば、鍵記録手段２００３と鍵記録手段２２０３に残る鍵が不一致になるという証拠が残ることになる。
【００７４】
また、クライアント２０００と通信中継装置２１００、および、通信中継装置２１００とサーバ２２００の間に、通信を傍受しようとする他の機器が存在するとする。本実施形態によれば、このような機器がｍａｎ−ｉｎ−ｔｈｅ−ｍｉｄｄｌｅ攻撃によってＤＨ鍵合意に介入して不正に鍵を入手し、通信を傍受することを防止できる。その理由は、ハンドシェイク手順において、通信中継装置２１００が公開鍵証明書を送信し、クライアント２０００とサーバ２２００が公開鍵証明書を検証することにより通信中継装置２１００を認証する。さらに、これらの装置が公開鍵証明書から得られた公開鍵を用いて通信することにより、通信中継装置２１００のみがＤＨ公開値を中継できるように構成されているからである。
【００７５】
実施形態２．
図３は、本発明の第２の実施形態における暗号通信中継システムの例を示すブロック図である。本実施形態における暗号通信中継システムは、クライアント４０００と通信中継装置４１００とサーバ４２００とを備えている。クライアント４０００は、第１の実施形態と同様、通信中継装置４１００に対し、暗号通信の通信先である宛先サーバを指定して暗号通信中継要求を行う。
【００７６】
クライアント４０００は、通信手段４００１と、ＤＨ鍵合意手段４００２と、鍵記録手段４００３と、認証手段４００４とを備えている。
【００７７】
通信手段４００１は、平文の送受信と公開鍵による暗号文の送受信により、暗号化通信のハンドシェイクを行う。また、通信手段４００１は、ハンドシェイクの結果得られた通信鍵を用いて、サーバ４２００への接続要求を暗号文として通信中継装置４１００に送信する。さらに、通信手段４００１は、ＤＨ鍵合意の結果得られた共通鍵を用いて、暗号化通信を行う。
【００７８】
ＤＨ鍵合意手段４００２、鍵記録手段４００３および認証手段４００４については、それぞれ、第１の実施形態におけるＤＨ鍵合意手段２００２、鍵記録手段２００３および認証手段２００４と同様であるため、詳細な説明は省略する。
【００７９】
通信中継装置４１００は、通信処理部５１００と、セッション管理手段４１０２と、ハンドシェイク要求処理手段４１０３と、通信手段４１０９と、通信手段４１１０と、接続要求処理手段４１１１とを備えている。さらに、ハンドシェイク要求処理手段４１０３は、認証手段４１０６を含む。また、接続要求処理手段４１１１は、宛先サーバ決定手段４１０４と、ＤＨ鍵合意指示手段４１１２と、ＤＨ鍵合意中継手段４１０５とを含む。さらに、通信処理部５１００は、通信中継手段４１０１と、通信振分手段４１０７と、通信振分手段４１０８とを含む。これらの手段の多くは、第１の実施形態における各手段と同様の動作を行うが、一部、構成と動作に差異がある。
【００８０】
具体的には、第１の実施形態におけるハンドシェイク要求処理手段２１０３は、宛先サーバ決定手段２１０４と、ＤＨ鍵合意中継手段２１０５とを含む。一方、本実施形態におけるハンドシェイク要求処理手段４１０３は、宛先サーバ決定手段４１０４とＤＨ鍵合意中継手段４１０５を含まない（認証手段４１０６を含む）点において、第１の実施形態と異なる。これは、後述するハンドシェイクの処理において宛先サーバが指定されず、ＤＨ鍵合意も実施されないためである。
【００８１】
また、本実施形態における通信中継装置４１００では、接続要求処理手段４１１１を新たに構成要素として備える点において、第１の実施形態と異なる。上述の通り、接続要求処理手段４１１１は、宛先サーバ決定手段４１０４と、ＤＨ鍵合意指示手段４１１２と、ＤＨ鍵合意中継手段４１０５とを含む。
【００８２】
なお、通信処理部５１００（より具体的には、通信中継手段４１０１と、通信振分手段４１０７と、通信振分手段４１０８）、通信手段４１０９とおよび通信手段４１１０の動作は、それぞれ、第１の実施形態における通信処理部３１００（より具体的には、通信中継手段２１０１と、通信振分手段２１０７と、通信振分手段２１０８）、通信手段２１０９とおよび通信手段２１１０の動作と同様であるため、これらについては説明を省略し、差異のある部分について説明する。
【００８３】
接続要求処理手段４１１１では、ハンドシェイク要求処理手段４１０３がハンドシェイクの処理を完了した後に、クライアント４０００から送信される接続要求が処理される。以下、接続要求処理手段４１１１に含まれる各手段の動作について説明する。
【００８４】
宛先サーバ決定手段４１０４は、宛先サーバ決定手段２１０４と概ね同様に動作するが、その動作の起点となるのはクライアント４０００から送信される宛先サーバへの接続要求である。これは、宛先サーバ決定手段２１０４の動作起点がハンドシェイク要求である第１の実施形態とは異なる。具体的には、宛先サーバ決定手段４１０４は、クライアント４０００からの接続要求に基づいて、暗号通信を行う両端点を決定する。例えば、宛先サーバ決定手段４１０４は、クライアント４０００からの接続要求に含まれる宛先サーバの指定（例えば、ホスト名や、アドレスなど）に基づいて、宛先サーバを暗号通信の端点として決定する。
【００８５】
ＤＨ鍵合意指示手段４１１２は、接続要求に応答する形で、ＤＨ鍵合意要求をクライアント４０００に返信する。具体的には、ＤＨ鍵合意指示手段４１１２は、クライアント４０００から宛先サーバへの接続要求を受信すると、クライアント４０００に対してＤＨ鍵合意の開始指示（命令）を返信する。
【００８６】
ＤＨ鍵合意中継手段４１０５は、クライアント４０００とサーバ４２００の間のＤＨ鍵合意を中継する。なお、ＤＨ鍵合意中継手段４１０５が行う処理は、ＤＨ鍵合意中継手段２１０５が行う処理と同様である。
【００８７】
通信処理部５１００（より具体的には、通信中継手段４１０１と、通信振分手段４１０７と、通信振分手段４１０８）と、セッション管理手段４１０２と、ハンドシェイク要求処理手段４１０３（より具体的には、認証手段４１０６）と、接続要求処理手段４１１１（より具体的には、宛先サーバ決定手段４１０４と、ＤＨ鍵合意指示手段４１１２と、ＤＨ鍵合意中継手段４１０５）と、通信手段４１０９と、通信手段４１１０とは、プログラム（暗号通信中継用プログラム）に従って動作するコンピュータのＣＰＵによって実現される。
【００８８】
サーバ４２００は、通信手段４２０１と、ＤＨ鍵合意手段４２０２と、鍵記録手段４２０３と、認証手段４２０４を備えている。通信手段４２０１、ＤＨ鍵合意手段４２０２、鍵記録手段４２０３および認証手段４２０４は、それぞれ、第１の実施形態における通信手段２２０１、ＤＨ鍵合意手段２２０２、鍵記録手段２２０３および認証手段２２０４と同様であるため、詳細な説明は省略する。
【００８９】
次に、動作について説明する。図４は、本実施形態の動作の例を示すシーケンス図である。図４に例示する動作の前に、サーバ４２００が通信中継装置４１００へ自身の情報を登録させる処理が行われる。なお、この処理は、第１の実施形態において、サーバ２２００が登録要求を行い、登録完了通知を行うまでの図２におけるステップＳ３０１〜ステップＳ３０８の処理と同様であるため、説明を省略する。以降、サーバ４２００と通信中継装置４１００の間で登録処理が完了しているものとして説明する。
【００９０】
次に、クライアント４０００の通信手段４００１は、クライアント４０００と通信中継装置４１００の間のハンドシェイク開始要求を、通信中継装置４１００へ送信する（ステップＳ５０１）。通信中継装置４１００がハンドシェイク開始要求を受信すると、通信手段４１０９は、自身の公開鍵証明書をクライアント４０００へ返信する（ステップＳ５０２）。
【００９１】
クライアント４０００が公開鍵証明書を受信すると、認証手段４００４は、公開鍵証明書を検証して通信中継装置を認証し（ステップＳ５０３）、その公開鍵証明書から通信中継装置４１００の公開鍵を入手する。なお、この認証には、非特許文献２に記載された方法を用いればよい。
【００９２】
クライアント４０００が認証を完了すると、通信手段４００１は、公開鍵で暗号化したクライアント４０００の認証子を通信中継装置４１００へ送信する（ステップＳ５０４）。公開鍵で暗号化されたクライアントの認証子を通信中継装置４１００が受信すると、認証手段４１０６は、クライアントを認証する（ステップＳ５０５）。認証が完了したならば、認証手段４１０６は、ハンドシェイク続行要求をクライアント４０００に返信する（ステップＳ５０６）。
【００９３】
クライアント４０００がハンドシェイク続行要求を受信すると、ＤＨ鍵合意手段４００２は、通信中継装置４１００と自身の間の通信を暗号化・復号するための通信鍵を生成する。なお、通信鍵の生成は、ＤＨ鍵合意手段４００２以外の他の鍵生成手段（図示せず）が行ってもよい。そして、通信手段４００１は、公開鍵を用い、公開鍵で暗号化した通信鍵を通信中継装置４１００へ送信する（ステップＳ５０７）。
【００９４】
公開鍵で暗号化された通信鍵を通信中継装置４１００が受信すると、ハンドシェイク要求処理手段４１０３における通知手段（図示せず）がハンドシェイク完了通知をクライアント４０００へ返信する（ステップＳ５０８）。以上、クライアント４０００がハンドシェイク開始要求を行い、ハンドシェイク完了通知を受信するまでのステップＳ５０１〜ステップＳ５０８の処理が行われることで、クライアント４０００と通信中継装置４１００の間のハンドシェイクが完了する。
【００９５】
次に、クライアント４０００の通信手段４００１は、通信鍵で暗号化した接続要求を通信中継装置４１００へ送信する（ステップＳ５０９）。この通信鍵で暗号化された接続要求には、サーバ４２００を宛先サーバとして指定する情報が含まれる。通信中継装置４１００が通信鍵で暗号化された接続要求を受信すると、宛先サーバ決定手段４１０４は、その接続要求に含まれる情報から暗号通信の端点としてサーバ４２００を特定する。そして、通信中継装置４１００のＤＨ鍵合意指示手段４１１２は、通信鍵で暗号化されたＤＨ鍵合意要求をクライアント４０００へと送信する（ステップＳ５１０）。
【００９６】
通信鍵で暗号化されたＤＨ鍵合意要求をクライアント４０００が受信すると、ＤＨ鍵合意手段４００２は、ＤＨ公開値を生成し、通信手段４００１は、通信鍵で暗号化したＤＨ公開値を通信中継装置４１００へ送信する（ステップＳ５１１）。通信鍵で暗号化されたＤＨ公開値を通信中継装置４１００が受信すると、ＤＨ鍵合意中継手段４１０５は、クライアント４０００との間の通信鍵で復号し、あらかじめサーバ４２００登録時に取得しておいたサーバ４２００との通信鍵を用いて暗号化する。そして、ＤＨ鍵合意中継手段４１０５は、暗号化したＤＨ公開値を通信手段４１１０を介してサーバ４２００へ送信する（ステップＳ５１３）。上述するステップＳ５１１、ステップＳ５１３に示すように、ＤＨ鍵合意中継手段４１０５は、クライアント４０００とサーバ４２００との間で行われるＤＨ鍵合意を中継していると言える（ステップＳ５１２）。
【００９７】
次に、通信鍵で暗号化されたクライアント４０００のＤＨ公開値をサーバ４２００が受信すると、通信手段４２０１は、そのＤＨ公開値を通信鍵で復号する。そして、ＤＨ鍵合意手段４２０２は、サーバ４２００のＤＨ公開値を算出する。通信手段４２０１は、通信鍵を用いて暗号化したＤＨ公開値を通信中継装置４１００に送信する（ステップＳ５１４）。通信鍵で暗号化されたサーバ４２００のＤＨ公開値を通信中継装置４１００が受信すると、ＤＨ鍵合意中継手段４１０５は、その暗号化されたＤＨ公開値をサーバとの間の通信鍵で復号する。そして、ＤＨ鍵合意中継手段４１０５は、クライアント４０００との間の通信鍵を用いて暗号化されたサーバ４２００のＤＨ公開値を通信手段４１０９を介してクライアント４０００へ送信する（ステップＳ５１６）。上述するステップＳ５１４、ステップＳ５１６に示すように、ＤＨ鍵合意中継手段４１０５は、クライアント４０００とサーバ４２００との間で行われるＤＨ鍵合意を中継していると言える（ステップＳ５１５）。
【００９８】
以上、クライアント４０００が通信鍵で暗号化したＤＨ公開値を通信中継装置４１００に送信し、クライアント４０００との間の通信鍵を用いて暗号化された宛先サーバのＤＨ公開値を受信するまでのステップＳ５１１〜ステップＳ５１６の処理が行われることで、ＤＨ公開値の交換が完了する。
【００９９】
その後、クライアント４０００及びサーバ４２００では、ＤＨ鍵合意手段４００２及びＤＨ鍵合意手段４２０２が、暗号通信の共通鍵を算出する。そして、ＤＨ鍵合意手段４００２及びＤＨ鍵合意手段４２０２は、算出した共通鍵を、それぞれ鍵記録手段４００３および鍵記録手段４２０３に記録させる。
【０１００】
そして、通信中継装置４１００のセッション管理手段４１０２は、ＤＨ鍵合意の中継を完了すると、クライアント４０００とサーバ４２００を暗号通信の両端点として登録する。
【０１０１】
以降、クライアント４０００とサーバ４２００は、ＤＨ鍵合意に基づいて算出された共通鍵を用いて暗号通信を行う。具体的には、クライアント４０００の通信手段４００１が通信中継装置４１００に対して暗号通信を行うと（ステップＳ５１７）、通信中継装置４１００の通信中継手段４１０１は、暗号通信の両端点として登録された識別情報に基づいて、クライアント４０００とサーバ４２００の間の暗号通信を、復号することなく中継する（ステップＳ５１８）。すなわち、通信中継手段４１０１は、サーバ４２００に対してそのまま暗号通信を行う（ステップＳ５１９）。
【０１０２】
同様に、サーバ４２００の通信手段４２０１が通信中継装置４１００に対して暗号通信を行うと（ステップＳ５２０）、通信中継装置４１００の通信中継手段４１０１は、暗号通信の両端点として登録された識別情報に基づいて、クライアント４０００とサーバ４２００の間の暗号通信を、復号することなく中継する（ステップＳ５２１）。すなわち、通信中継手段４１０１は、クライアント４０００に対してそのまま暗号通信を行う（ステップＳ５２２）。
【０１０３】
以上のように、本実施形態によれば、宛先サーバ決定手段４１０４が、クライアント４０００とのハンドシェイク完了後、クライアント４０００から受信した接続要求に含まれる送信先指定に基づいて、暗号通信の通信先をサーバ４２００に決定する。また、ＤＨ鍵合意指示手段４１１２が、クライアント４０００からの接続要求に対し、ＤＨ鍵合意の開始指示をクライアント４０００に行い、ＤＨ鍵合意中継手段４１０５が、ＤＨ鍵合意を中継する。さらに、セッション管理手段４１０２が、クライアント４０００の識別情報と宛先サーバ４２００の識別情報とをメモリ（図示せず）に記憶させる。そして、通信中継手段４１０１が、ハンドシェイク完了後の暗号通信で、メモリ（図示せず）に記憶された識別情報により特定される両装置間の通信を、共通鍵を使用して暗号化された状態で（復号せずに）中継する。以上のような構成によっても、暗号通信を中継する装置における暗号化及び復号の負荷を軽減しつつ、暗号通信が行われた場合の通信傍受を抑制できる。すなわち、本実施形態による暗号通信中継システムも、第１の実施形態と同様の効果を得ることが出来る。
【０１０４】
さらに、本実施形態では、暗号通信プロトコルよりも上位のプロトコル層において、クライアント４０００が宛先サーバを指定できる。なぜならば、クライアント４０００と通信中継装置４１００の間で通信鍵を用いた暗号通信を行い、その暗号通信のもと、通信鍵で暗号化した接続要求を送信するからである（図４におけるステップＳ５０９参照）。これは、暗号通信プロトコル上に、より上位のプロトコルを適用し、その上で宛先サーバを指定することに相当する。
【実施例】
【０１０５】
以下、具体的な実施例により本発明を説明するが、本発明の範囲は以下に説明する内容に限定されない。なお、本実施例は、第２の実施形態における暗号通信中継システムに相当するものである。
【０１０６】
本実施例では、暗号通信にＴＬＳ（Transport Layer Security）を用いる。また、ＴＬＳ上でＨＴＴＰ（Hypertext Transfer Protocol ）を適用する、いわゆる、ＨＴＴＰＳ（Hypertext Transfer Protocol over Secure Socket Layer）を例として動作を説明する。ＴＬＳは、ＲＦＣ（Request for Comments）２２４６、ＲＦＣ４３６６およびＲＦＣ５２４６に定義されている。また、ＨＴＴＰＳは、ＲＦＣ２８１８に定義されている。
【０１０７】
図５は、本発明の本実施例における暗号通信中継システムの例を示すブロック図である。本実施例における暗号通信中継システムでは、クライアントとしてＨＴＴＰＳクライアント６００が、宛先サーバとしてＨＴＴＰサーバ６２０が、暗号通信中継装置として、一種のＨＴＴＰＳリバースプロキシ６１０が、それぞれ用いられる。すなわち、本実施例における暗号通信中継システムは、ＨＴＴＰＳクライアント６００と、ＨＴＴＰＳリバースプロキシ６１０と、ＨＴＴＰサーバ６２０とを備えている。
【０１０８】
また、ＨＴＴＰＳリバースプロキシ６１０は、トンネリング手段６１１と、トンネル管理手段６１２と、ＴＬＳハンドシェイク手段６１３と、ＨＴＴＰリクエスト処理手段６１８とを備えている。また、ＴＬＳハンドシェイク手段６１３は、認証手段６１６と、公開鍵証明書記憶手段６１７とを含む。さらに、ＨＴＴＰリクエスト処理手段６１８は、ＨＯＳＴヘッダ処理手段６１４と、再ハンドシェイク６１９と、ＤＨ鍵合意中継手段６１５とを含む。
【０１０９】
トンネリング手段６１１、トンネル管理手段６１２、ＴＬＳハンドシェイク手段６１３およびＨＴＴＰリクエスト処理手段６１８は、それぞれ、第２の実施形態における通信処理部５１００、セッション管理手段４１０２、ハンドシェイク要求処理手段４１０３および接続要求処理手段４１１１に対応する。また、認証手段６１６、ＨＯＳＴヘッダ処理手段６１４、再ハンドシェイク６１９およびＤＨ鍵合意中継手段６１５は、それぞれ、第２の実施形態における認証手段４１０６、宛先サーバ決定手段４１０４、ＤＨ鍵合意指示手段４１１２およびＤＨ鍵合意中継手段４１０５に対応する。
【０１１０】
まず、ＨＴＴＰサーバ６２０は、ＨＴＴＰＳリバースプロキシ６１０への暗号通信トンネルを接続する。この接続では、まず、ＨＴＴＰサーバ６２０は、ＨＴＴＰＳリバースプロキシ６１０の持つ公開鍵証明書を検証し、検証後に公開鍵を取り出す。そして、ＨＴＴＰサーバ６２０は、その公開鍵で通信鍵を暗号化した後、その暗号化した通信鍵をＨＴＴＰＳリバースプロキシ６１０に送信することで、暗号通信トンネルを接続する。なお、この暗号通信トンネルは、ＴＬＳを使用したものでなくともよい。また、この公開鍵証明書の検証に先立ち、認証手段６１６はＨＴＴＰサーバ６２０の認証処理を行う。
【０１１１】
次に、ＨＴＴＰＳクライアント６００は、ＨＴＴＰＳリバースプロキシ６１０へのＴＬＳ暗号通信をハンドシェイクする。このハンドシェイクでは、まず、ＨＴＴＰＳクライアント６００が、ＨＴＴＰＳリバースプロキシ６１０の持つ（具体的には、公開鍵証明書記憶手段６１７に記憶された）公開鍵証明書を検証し、公開鍵を取り出す。そして、ＨＴＴＰＳクライアント６００は、通信鍵をその公開鍵で暗号化してＨＴＴＰＳリバースプロキシ６１０へ送信することで、ＴＬＳ通信を確立する。また、この公開鍵証明書の検証に先立ち、認証手段６１６はＨＴＴＰＳクライアント６００の認証処理を行う。
【０１１２】
次に、ＨＴＴＰＳクライアント６００は、ＴＬＳ上でＨＴＴＰのリクエストをＨＴＴＰＳリバースプロキシ６１０へ送信する。このリクエストには、ＨＯＳＴヘッダフィールドが含まれる。ＨＯＳＴヘッダフィールドには、ＨＴＴＰサーバ６２０のホスト名が記載されている。ＨＴＴＰＳリバースプロキシ６１０のＨＯＳＴヘッダ処理手段６１４は、ＨＯＳＴヘッダフィールドに基づいて、宛先サーバを「ＨＴＴＰサーバ６２０」に決定する。
【０１１３】
さらに、ＨＴＴＰＳリバースプロキシ６１０の再ハンドシェイク指示手段６１９は、ＨＴＴＰＳクライアント６００にＴＬＳの再ハンドシェイクを要求する。すなわち、再ハンドシェイク指示手段６１９は、第２の実施形態におけるＤＨ鍵合意指示手段４１１２に相当する。ＨＴＴＰＳクライアント６００は、ＴＬＳの再ハンドシェイク要求を受け取ると、ＨＴＴＰＳリバースプロキシ６１０に対して、暗号方式をネゴシエーションする。本実施例では、ＨＴＴＰＳリバースプロキシ６１０は、ＤＨ鍵合意を選択する。
【０１１４】
ＨＴＴＰＳクライアント６００がＤＨ鍵合意を開始するため、ＨＴＴＰＳリバースプロキシ６１０のＤＨ鍵合意中継手段６１５は、暗号通信トンネルを用いてＨＴＴＰＳクライアント６００とＨＴＴＰサーバ６２０とのＤＨ鍵合意を中継する。
【０１１５】
ＤＨ鍵合意が完了すると、ＨＴＴＰＳクライアント６００は、ＴＬＳの暗号化方式をＤＨ鍵合意の結果にしたがって切り替える。また、この切り替え以降、ＨＴＴＰＳリバースプロキシ６１０のトンネリング手段６１１は、クライアントからの通信を復号せず、ＨＴＴＰサーバ６２０から受信した通信鍵で暗号化することもなく、暗号通信トンネルを介してＨＴＴＰサーバ６２０に転送する。このようにして、ＨＴＴＰＳリバースプロキシ６１０は、ＨＴＴＰＳクライアント６００からのＨＴＴＰＳ通信を、復号することなくＨＴＴＰサーバ６２０へと中継する。
【０１１６】
なお、ＨＴＴＰＳクライアント６００およびＨＴＴＰサーバ６２０では、ＤＨ鍵合意で算出した共通鍵をメモリ等（図示せず）に記録しておくことが望ましい。これは、共通鍵が一致していることを、後に監査できるようにするためである。
【０１１７】
次に、本発明の最小構成の例を説明する。図６は、本発明による暗号通信中継システムの最小構成の例を示すブロック図である。また、図７は、本発明による暗号通信中継装置の最小構成の例を示すブロック図である。本発明による暗号通信中継システムは、クライアント７０（例えば、クライアント２０００）と、クライアント７０と暗号通信を行う宛先サーバ９０（例えば、サーバ２２００）と、クライアント７０と宛先サーバ９０との暗号通信を中継する暗号通信中継装置８０（例えば、通信中継装置２１００）とを備えている。なお、図７に例示する暗号通信中継装置は、図６に例示する暗号通信中継装置８０と同様である。
【０１１８】
暗号通信中継装置８０は、クライアント７０と宛先サーバ９０との間の暗号通信に用いられる共通鍵を作成する処理であるＤｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵合意（ＤＨ鍵合意）で使用されるＤｉｆｆｉｅ−Ｈｅｌｌｍａｎ公開値（例えば、素数や秘密の情報で素数を処理した情報）を中継するＤｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵合意中継手段８１（例えば、ＤＨ鍵合意中継手段２１０５）と、クライアント７０から受信したハンドシェイク要求に含まれる宛先サーバ９０の識別情報（例えば、アドレス）とクライアント７０の識別情報（例えば、アドレス）とを通信情報記憶手段（例えば、通信中継装置２１００が備えるメモリ）に記憶させる暗号通信セッション管理手段８２（例えば、暗号通信セッション管理手段２１０２）と、ハンドシェイク完了後の暗号通信で、通信情報記憶手段に記憶された識別情報により特定される両装置間の通信を、共通鍵を使用して暗号化された状態で（すなわち、復号せずに）中継する通信中継手段８３（例えば、通信中継手段２１０１）とを備えている。
【０１１９】
以上のような構成により、暗号通信を中継する装置における暗号化及び復号の負荷を軽減しつつ、暗号通信が行われた場合の通信傍受を抑制できる。
【０１２０】
次に、本発明の他の最小構成の例を説明する。図８は、本発明による暗号通信中継システムの他の最小構成の例を示すブロック図である。また、図９は、本発明による暗号通信中継装置の他の最小構成の例を示すブロック図である。図８に例示する暗号通信中継システムは、クライアント５０（例えば、クライアント４０００）と、クライアント５０と暗号通信を行う宛先サーバ９０（例えば、サーバ４２００）と、クライアント５０と宛先サーバ９０との暗号通信を中継する暗号通信中継装置６０（例えば、通信中継装置４１００）とを備えている。なお、図９に例示する暗号通信中継装置は、図８に例示する暗号通信中継装置６０と同様である。
【０１２１】
暗号通信中継装置６０は、クライアント５０とのハンドシェイク完了後、クライアント５０から受信した宛先サーバ９０への接続要求に対し、クライアント５０と宛先サーバ７０との間の暗号通信に用いられる共通鍵を作成する処理であるＤｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵合意（ＤＨ鍵合意）の開始指示をクライアント５０に行うＤｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵合意指示手段６１（例えば、ＤＨ鍵合意指示手段４１１２）と、Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵合意で使用されるＤｉｆｆｉｅ−Ｈｅｌｌｍａｎ公開値（例えば、素数や秘密の情報で素数を処理した情報）を中継するＤｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵合意中継手段６２と、接続要求に含まれる宛先サーバ９０の識別情報（例えば、アドレス）とクライアント５０の識別情報（例えば、アドレス）とを通信情報記憶手段（例えば、通信中継装置４１００が備えるメモリ）に記憶させる暗号通信セッション管理手段６３（例えば、セッション管理手段４１０２）と、ハンドシェイク完了後の暗号通信で、通信情報記憶手段に記憶された識別情報により特定される両装置間の通信を、共通鍵を使用して暗号化された状態で中継する通信中継手段６４（例えば、通信中継手段４１０１）とを備えている。
【０１２２】
以上のような構成であっても、暗号通信を中継する装置における暗号化及び復号の負荷を軽減しつつ、暗号通信が行われた場合の通信傍受を抑制できる。
【０１２３】
また、本実施形態における暗号通信中継システムは、次のように構成されていてもよい。図１０は、本発明おける暗号通信中継システムの他の実施形態の例を示すブロック図である。図１０に例示する暗号通信中継システムは、クライアント１００と、通信中継装置１１０と、サーバ１２０とを備えている。
【０１２４】
クライアント１００は、通信手段１０１と、ＤＨ鍵合意手段１０２と、鍵記録手段１０３とを備えている。また、サーバ１２０は、通信手段１２１と、ＤＨ鍵合意手段１２２と、鍵記録手段１２３とを備えている。通信手段１０１および通信手段１２１は、平文での通信もしくは共通鍵による暗号化と復号を伴う暗号通信を行う。ＤＨ鍵合意手段１０２およびＤＨ鍵合意手段１２２は、さらに暗号通信セッションのハンドシェイクにおいてＤｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵合意を行って共通鍵を算出する。鍵記録手段１０３および鍵記録手段１２３は、共通鍵を記録する。
【０１２５】
通信中継装置１１０は、クライアント１００からの暗号通信セッションのハンドシェイク要求を処理するハンドシェイク要求処理手段１１３と、ハンドシェイク要求に基づいて宛先サーバ（この場合は、サーバ１２０に相当）を決定する宛先サーバ決定手段１１４と、ハンドシェイク要求におけるクライアント１００と宛先サーバとの間のＤＨ鍵合意を中継するＤＨ鍵合意中継手段１１５と、ハンドシェイク要求に基づいて暗号通信セッションを管理する暗号通信セッション管理手段１１２と、暗号通信セッション管理手段１１２に従ってクライアント１００と宛先サーバの間の暗号通信を中継する通信中継手段１１１とを備えている。
【０１２６】
これら各手段は、概略以下のように動作する。
まず、クライアント１００の通信手段１０１がハンドシェイク要求を通信中継装置１１０に送信し、通信中継装置１１０の宛先サーバ決定手段１１４が、ハンドシェイク要求に基づいて宛先サーバ（図１０に示す例ではサーバ１２０）を決定する。そして通信中継装置１１０のＤＨ鍵合意中継手段１１５が、クライアント１００とサーバ１２０との間のＤＨ鍵合意を中継することにより、ハンドシェイクを完了させる。
【０１２７】
ハンドシェイクが完了したならば、通信中継装置１１０のハンドシェイク要求処理手段１１３（より具体的には、宛先サーバ決定手段１１４）は、暗号通信セッション管理手段１１２に通信セッションの両端としてクライアント１００とサーバ１２０を登録させる。また、クライアント１００およびサーバ１２０のＤＨ鍵合意手段１０２およびＤＨ鍵合意手段１２２は、それぞれ、鍵記録手段１０３および鍵記録手段１２３に算出した鍵を記録する。
【０１２８】
ＤＨ鍵合意の結果、クライアント１００の通信手段１０１とサーバ１２０の通信手段１２１とは、算出された共通鍵を用いて、クライアント１００とサーバ１２０間で暗号通信を行う。この暗号通信が行われる際、通信中継装置１１０において、通信中継手段１１１が、暗号通信セッション管理手段１１２が記憶した情報に従って、そのまま暗号化も復号もせずに通信を中継する。
【０１２９】
このような構成によっても、暗号通信を中継する装置における暗号化及び復号の負荷を軽減しつつ、暗号通信が行われた場合の通信傍受を抑制できる。
【０１３０】
また、上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
【０１３１】
（付記１）クライアントと、前記クライアントと暗号通信を行う宛先サーバと、前記クライアントと前記宛先サーバとの暗号通信を中継する暗号通信中継装置とを備え、前記暗号通信中継装置は、当該クライアントと当該宛先サーバとの間の暗号通信に用いられる共通鍵を作成する処理であるＤｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵合意で使用されるＤｉｆｆｉｅ−Ｈｅｌｌｍａｎ公開値を中継するＤｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵合意中継手段と、前記クライアントから受信したハンドシェイク要求に含まれる宛先サーバの識別情報と当該クライアントの識別情報とを通信情報記憶手段に記憶させる暗号通信セッション管理手段と、前記ハンドシェイク完了後の暗号通信で、前記通信情報記憶手段に記憶された識別情報により特定される両装置間の通信を、前記共通鍵を使用して暗号化された状態で中継する通信中継手段とを備えたことを特徴とする暗号通信中継システム。
【０１３２】
（付記２）クライアントは、宛先サーバ指定を含むハンドシェイク要求を暗号通信中継装置に送信する第一通信手段と、暗号通信のハンドシェイクで、宛先サーバとＤｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵合意を行う第一Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵合意手段と、前記Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵合意により作成された共通鍵を記憶する第一鍵記憶手段とを備え、宛先サーバは、暗号通信のハンドシェイクで、クライアントとＤｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵合意を行う第二Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵合意手段と、前記Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵合意により作成された共通鍵を記憶する第二鍵記憶手段と、暗号通信中継装置を介して、前記共通鍵を用いた暗号通信を前記クライアントと行う第二通信手段を備え、前記クライアントの第一通信手段は、暗号通信中継装置を介して、前記共通鍵を用いた暗号通信を宛先サーバと行う付記１記載の暗号通信中継システム。
【０１３３】
（付記３）暗号通信中継装置は、クライアントとのハンドシェイクで、公開鍵証明書をクライアントに送信する認証手段を備え、クライアントの第一通信手段は、前記ハンドシェイクで行われる通信を前記公開鍵証明書に対応する公開鍵で暗号化して暗号通信を行い、暗号通信中継装置のＤｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵合意中継手段は、前記公開鍵で暗号化された通信を当該公開鍵に対応する秘密鍵で復号する付記２記載の暗号通信中継システム。
【０１３４】
（付記４）クライアントと、前記クライアントと暗号通信を行う宛先サーバと、前記クライアントと前記宛先サーバとの暗号通信を中継する暗号通信中継装置とを備え、前記暗号通信中継装置は、前記クライアントとのハンドシェイク完了後、当該クライアントから受信した前記宛先サーバへの接続要求に対し、当該クライアントと当該宛先サーバとの間の暗号通信に用いられる共通鍵を作成する処理であるＤｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵合意の開始指示を前記クライアントに行うＤｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵合意指示手段と、前記Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵合意で使用されるＤｉｆｆｉｅ−Ｈｅｌｌｍａｎ公開値を中継するＤｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵合意中継手段と、前記接続要求に含まれる宛先サーバの識別情報と当該クライアントの識別情報とを通信情報記憶手段に記憶させる暗号通信セッション管理手段と、前記ハンドシェイク完了後の暗号通信で、前記通信情報記憶手段に記憶された識別情報により特定される両装置間の通信を、前記共通鍵を使用して暗号化された状態で中継する通信中継手段とを備えたことを特徴とする暗号通信中継システム。
【０１３５】
（付記５）クライアントは、暗号通信中継装置との暗号通信のハンドシェイク完了後、当該暗号通信上で宛先サーバへの接続要求を行う第一通信手段と、Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵合意指示手段からの開始指示を受信したとき、宛先サーバとＤｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵合意を行う第一Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵合意手段と、前記Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵合意により作成された共通鍵を記憶する第一鍵記憶手段とを備え、宛先サーバは、前記クライアントとＤｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵合意を行う第二Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵合意手段と、前記Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵合意により作成された共通鍵を記憶する第二鍵記憶手段と、暗号通信中継装置を介して、前記共通鍵を用いた暗号通信を前記クライアントと行う第二通信手段を備え、前記クライアントの第一通信手段は、暗号通信中継装置を介して、前記共通鍵を用いた暗号通信を宛先サーバと行う付記４記載の暗号通信中継システム。
【０１３６】
（付記６）クライアントと当該クライアントと暗号通信を行う宛先サーバとの間で用いられる共通鍵を作成する処理であるＤｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵合意で使用されるＤｉｆｆｉｅ−Ｈｅｌｌｍａｎ公開値を中継するＤｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵合意中継手段と、前記クライアントから受信したハンドシェイク要求に含まれる宛先サーバの識別情報と当該クライアントの識別情報とを通信情報記憶手段に記憶させる暗号通信セッション管理手段と、前記ハンドシェイク完了後の暗号通信で、前記通信情報記憶手段に記憶された識別情報により特定される両装置間の通信を、前記共通鍵を使用して暗号化された状態で中継する通信中継手段とを備えたことを特徴とする暗号通信中継装置。
【０１３７】
（付記７）暗号通信中継要求装置とのハンドシェイクで、公開鍵証明書をクライアントに送信する認証手段を備え、Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵合意中継手段は、暗号通信中継要求装置とのハンドシェイクで、公開鍵証明書に対応する公開鍵で暗号化された暗号通信を受信したときに、当該暗号通信を当該公開鍵に対応する秘密鍵で復号する付記６記載の暗号通信中継装置。
【０１３８】
（付記８）クライアントとのハンドシェイク完了後、前記クライアントから受信した当該クライアントと暗号通信を行う宛先サーバへの接続要求に対し、当該クライアントと当該宛先サーバとの間の暗号通信に用いられる共通鍵を作成する処理であるＤｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵合意の開始指示を前記クライアントに行うＤｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵合意指示手段と、前記Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵合意で使用されるＤｉｆｆｉｅ−Ｈｅｌｌｍａｎ公開値を中継するＤｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵合意中継手段と、前記接続要求に含まれる宛先サーバの識別情報と当該クライアントの識別情報とを通信情報記憶手段に記憶させる暗号通信セッション管理手段と、前記ハンドシェイク完了後の暗号通信で、前記通信情報記憶手段に記憶された識別情報により特定される両装置間の通信を、前記共通鍵を使用して暗号化された状態で中継する通信中継手段とを備えたことを特徴とする暗号通信中継装置。
【０１３９】
（付記９）クライアントと宛先サーバとの間で行われる暗号通信を中継する暗号通信中継装置が、当該クライアントと当該宛先サーバとの間の暗号通信に用いられる共通鍵を作成する処理であるＤｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵合意で使用されるＤｉｆｆｉｅ−Ｈｅｌｌｍａｎ公開値を中継し、前記クライアントから受信したハンドシェイク要求に含まれる宛先サーバの識別情報と当該クライアントの識別情報とを通信情報記憶手段に記憶させ、前記ハンドシェイク完了後の暗号通信で、前記通信情報記憶手段に記憶された識別情報により特定される両装置間の通信を、前記共通鍵を使用して暗号化された状態で中継する
ことを特徴とする暗号通信中継方法。
【０１４０】
（付記１０）クライアントは、宛先サーバ指定を含むハンドシェイク要求を暗号通信中継装置に送信し、暗号通信中継装置がＤｉｆｆｉｅ−Ｈｅｌｌｍａｎ公開値を中継することにより、クライアントとサーバとは、暗号通信のハンドシェイクで、Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵合意を行い、クライアントは、Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵合意により作成された共通鍵を記憶し、宛先サーバは、Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵合意により作成された共通鍵を記憶し、宛先サーバとクライアントとは、暗号通信中継装置を介して、共通鍵を用いた暗号通信を行う付記９記載の暗号通信中継方法。
【０１４１】
（付記１１）クライアントと宛先サーバとの間で行われる暗号通信を中継する暗号通信中継装置が、当該クライアントとのハンドシェイク完了後、当該クライアントから受信した前記宛先サーバへの接続要求に対し、当該クライアントと当該宛先サーバとの間の暗号通信に用いられる共通鍵を作成する処理であるＤｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵合意の開始指示を前記クライアントに行い、前記Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵合意で使用されるＤｉｆｆｉｅ−Ｈｅｌｌｍａｎ公開値を中継し、前記接続要求に含まれる宛先サーバの識別情報と当該クライアントの識別情報とを通信情報記憶手段に記憶させ、前記ハンドシェイク完了後の暗号通信で、前記通信情報記憶手段に記憶された識別情報により特定される両装置間の通信を、前記共通鍵を使用して暗号化された状態で中継することを特徴とする暗号通信中継方法。
【０１４２】
（付記１２）クライアントは、暗号通信中継装置との暗号通信のハンドシェイク完了後、その暗号通信上で宛先サーバへの接続要求を行い、クライアントは、暗号通信中継装置からの開始指示を受信したとき、宛先サーバとＤｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵合意を行い、宛先サーバは、Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎ公開値を中継することにより、クライアントとＤｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵合意を行い、クライアントは、Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵合意により作成された共通鍵を記憶し、宛先サーバは、Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵合意により作成された共通鍵を記憶し、宛先サーバとクライアントとは、暗号通信中継装置を介して、共通鍵を用いた暗号通信を行う付記１１記載の暗号通信中継方法。
【０１４３】
（付記１３）コンピュータに、クライアントと当該クライアントと暗号通信を行う宛先サーバとの間で用いられる共通鍵を作成する処理であるＤｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵合意で使用されるＤｉｆｆｉｅ−Ｈｅｌｌｍａｎ公開値を中継するＤｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵合意中継処理、前記クライアントから受信したハンドシェイク要求に含まれる宛先サーバの識別情報と当該クライアントの識別情報とを通信情報記憶手段に記憶させる暗号通信セッション管理処理、および、前記ハンドシェイク完了後の暗号通信で、前記通信情報記憶手段に記憶された識別情報により特定される両装置間の通信を、前記共通鍵を使用して暗号化された状態で中継する通信中継処理を実行させるための暗号通信中継プログラム。
【０１４４】
（付記１４）コンピュータに、暗号通信中継要求装置とのハンドシェイクで、公開鍵証明書をクライアントに送信する認証処理を実行させ、Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵合意中継処理で、暗号通信中継要求装置とのハンドシェイクで、公開鍵証明書に対応する公開鍵で暗号化された暗号通信を受信したときに、その暗号通信をその公開鍵に対応する秘密鍵で復号させる付記１３記載の暗号通信中継プログラム。
【０１４５】
（付記１５）コンピュータに、クライアントとのハンドシェイク完了後、前記クライアントから受信した当該クライアントと暗号通信を行う宛先サーバへの接続要求に対し、当該クライアントと当該宛先サーバとの間の暗号通信に用いられる共通鍵を作成する処理であるＤｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵合意の開始指示を前記クライアントに行うＤｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵合意指示処理、前記Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵合意で使用されるＤｉｆｆｉｅ−Ｈｅｌｌｍａｎ公開値を中継するＤｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵合意中継処理、前記接続要求に含まれる宛先サーバの識別情報と当該クライアントの識別情報とを通信情報記憶手段に記憶させる暗号通信セッション管理処理、および、前記ハンドシェイク完了後の暗号通信で、前記通信情報記憶手段に記憶された識別情報により特定される両装置間の通信を、前記共通鍵を使用して暗号化された状態で中継する通信中継処理を実行させるための暗号通信中継プログラム。
【産業上の利用可能性】
【０１４６】
本発明は、ＨＴＴＰＳを中継するＨＴＴＰＳリバースプロキシに利用できる。また、通信の秘密を重視する通信事業における、暗号通信中継装置に利用できる。
【符号の説明】
【０１４７】
２０００，４０００  クライアント
２００１，２２０１，４００１，４２０１  通信手段
２００２，２２０２，４００２，４２０２  ＤＨ鍵合意手段
２００３，２２０３，４００３，４２０３  鍵記録手段
２００４，２２０４，４００４，４２０４  認証手段
２１００，４１００  通信中継装置
２１０１，４１０１  通信中継手段
２１０２  暗号通信セッション管理手段
２１０３，４１０３  ハンドシェイク要求処理手段
２１０４，４１０４  宛先サーバ決定手段
２１０５，４１０５  ＤＨ鍵合意中継手段
２１０６，４１０６  認証手段
２１０７，２１０８，４１０７，４１０８  通信振分手段
２１０９，２１１０，４１０９，４１１０  通信手段
３１００，５１００  通信処理部
２２００，４２００  サーバ
４１０２  セッション管理手段
４１１１  接続要求処理手段
４１１２  ＤＨ鍵合意指示手段
６００  ＨＴＴＰＳクライアント
６１０  ＨＴＴＰＳリバースプロキシ
６１１  トンネリング手段
６１２  トンネル管理手段
６１３  ＴＬＳハンドシェイク手段
６１４  ＨＯＳＴヘッダ処理手段
６１５  ＤＨ鍵合意中継手段
６１６  認証手段
６１７  公開鍵証明書記憶手段
６１８  ＨＴＴＰリクエスト処理手段
６１９  再ハンドシェイク指示手段
６２０  ＨＴＴＰサーバ
【図１】
2012100206.tif 000003
【図２】
2012100206.tif 000004
【図３】
2012100206.tif 000005
【図４】
2012100206.tif 000006
【図５】
2012100206.tif 000007
【図６】
2012100206.tif 000008
【図７】
2012100206.tif 000009
【図８】
2012100206.tif 000010
【図９】
2012100206.tif 000011
【図１０】
2012100206.tif 000012
【図１１】
2012100206.tif 000013