(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0017】
次に、本発明の実施形態について説明する。
【0018】
(A)本発明の実施形態の構成の説明
図1は、本発明の実施形態に係る中継装置50を含むネットワークシステムの構成の一例を示す図である。
図1に示すネットワークシステムは、端末装置10、LAN(Local Area Network)20、通信装置30,31、ネットワーク40、中継装置50、DHCP(Dynamic Host Configuration Protocol)サーバ60、DNS(Domain Name System)サーバ70、LAN80、端末装置90を有している。
【0019】
ここで、端末装置10は、例えば、パーソナルコンピュータによって構成されるとともに、ユーザによって操作され、通信装置30、ネットワーク40、および、中継装置50を介して端末装置90に接続し、情報の授受を行うことができる。
【0020】
LAN20は、例えば、企業内に配置されたローカルなネットワークであり、通信装置30と端末装置10を接続し、これらの間で情報の授受を可能とする。
【0021】
通信装置30,31は、IPsec(Security Architecture for Internet Protocol)に基づく暗号化通信によりネットワーク40を介して中継装置50との間で情報の授受を行うことができる。
【0022】
ネットワーク40は、例えば、インターネットによって構成され、通信装置30,31、中継装置50、DHCPサーバ60、および、DNSサーバ70の間で情報の授受を可能とするネットワークである。
【0023】
中継装置50は、IPsecに基づく暗号化通信によりネットワーク40を介して通信装置30,31との間で情報の授受を行うことができる。
【0024】
DHCPサーバ60は、通信装置30,31がネットワーク40に一時的に接続する際に、IPアドレス等の必要な情報を自動的に割り当てることができるサーバである。
【0025】
DNSサーバ70は、ネットワーク40に接続される装置のドメイン名(またはホスト名)とIPアドレスの対応関係を管理するサーバである。
【0026】
LAN80は、例えば、企業内に配置されたローカルなネットワークであり、端末装置90と中継装置50を接続し、これらの間で情報の授受を可能とする。
【0027】
端末装置90は、例えば、パーソナルコンピュータによって構成されるとともに、ユーザによって操作され、LAN80、中継装置50、ネットワーク40、および、通信装置30を介して端末装置10と通信を行うことができる。
【0028】
図2は、
図1に示す中継装置50の詳細な構成の一例を示す図である。この
図2に示すように、中継装置50は、制御部51(特許請求の範囲中の「取得手段」、「認証手段」、「無効化手段」、および、「検索手段」に対応)および記憶部55(特許請求の範囲中の「記憶手段」に対応)を主要な構成要素とする。ここで、制御部51は、記憶部55に記憶されている情報に基づいて、通信相手との間で情報を授受するとともに、装置の各部を制御する。記憶部55は、半導体記憶装置(例えば、ROM(Read Only Memory)およびRAM(Random Access Memory)等)または磁気記憶装置(例えば、HDD(Hard Disk Drive)装置等)によって構成される。記憶部55は、この
図2の例では、設定管理部52(特許請求の範囲中の「第2領域」に対応)、ネゴシエーション管理部53、および、キャッシュ管理部54(特許請求の範囲中の「第1領域」に対応)を有している。ここで、設定管理部52は、例えば、通信相手に関する情報が、管理者の操作に基づいて記憶される領域である。ネゴシエーション管理部53は、通信相手から接続要求がなされた場合に、セッションの確立を行う際に必要な情報を記憶する領域である。キャッシュ管理部54は、通信相手に関するドメイン名およびIPアドレスが記憶される領域である。
【0029】
図3は、
図2に示す設定管理部52、ネゴシエーション管理部53、および、キャッシュ管理部54に格納される情報の一例を示す図である。
図3(A)は、設定管理部52に記憶される情報の一例を示している。この例では、設定管理部52には、通信相手に関するポリシー名、ドメイン名、および、プリシェアードキー(PSK)が関連付けされて格納されている。ここで、ポリシー名は、それぞれの設定に対して付与された名前であり、通信相手毎に設定される。ドメイン名は、通信相手のドメインの名称を示す。プリシェアードキー(事前共有鍵(特許請求の範囲中の「共有鍵」に対応))は、通信相手との間でIPsecによって通信を行うための情報であり、通信相手と同じ情報を共有する。
【0030】
図3(B)は、キャッシュ管理部54に記憶される情報の一例を示している。この例では、上側に示す正引きに関する情報と、下側に示す逆引きに関する情報とが記憶されている。ここで、「正引き」とは、DNSサーバ70に対して通信相手のドメイン名を通知し、対応するIPアドレスを得ることをいう。なお、以降では、正引きによって得た情報を「正引き情報」と称する。また、「逆引き」とは、DNSサーバ70に対して通信相手のIPアドレスを通知し、対応するドメイン名を得ることをいう。なお、以降では、逆引きによって得た情報を「逆引き情報」と称する。なお、記憶領域を分けることで、正引き情報と逆引き情報を区別するようにしてもよい。もちろん、これら以外の方法でもよい。
【0031】
図3(C)は、ネゴシエーション管理部53に記憶される情報の一例を示す図である。この例では、ネゴシエーション管理部53には、通信相手との間で使用するポリシー名とIPアドレスとが関連付けされて記憶されている。制御部51は、通信相手からIPアドレスが通知された場合には、このIPアドレスを参照して、ネゴシエーション管理部53から対応するポリシーを特定し、特定したポリシーに基づいて通信相手とセッション確立処理を実行する。
【0032】
図4は、通信装置30,31に記憶される情報の一例を示している。この
図4の例では、通信装置30,31の図示しない記憶部には、設定管理部およびネゴシエーション管理部を有している。ここで、設定管理部は、例えば、半導体記憶装置または磁気記憶装置の所定の記憶領域に確保され、通信相手に関する情報が、例えば、管理者の操作に基づいて記憶される。ネゴシエーション管理部は、通信相手に接続要求を行う場合に、設定管理部に設定されている情報に基づいて、通信相手との間で通信プロトコル等の情報交換を行う際に参照される。なお、
図4の例では、設定管理部は、自局ドメイン名、自局IPアドレス、中継装置50のIPアドレス、および、プリシェアードキー(PSK)を記憶している。
【0033】
図5は、DNSサーバ70が有する図示しない記憶部に記憶される情報の一例を示す図である。
図5の例では、DNSサーバ70の記憶部は、リソースレコード管理部を有している。リソースレコード管理部は、正引き情報を提供するための正引き用情報と、逆引き情報を提供するための逆引き用情報を有している。より詳細には、正引き用情報では、通信相手のドメイン名とIPアドレスが対応付けされて格納されている。また、逆引き用情報では、通信相手のIPアドレスとドメイン名が対応付けされて格納されている。なお、中継装置50から正引きによる問い合わせがなされた場合には、
図5の左側に示す正引き用情報が参照されてIPアドレスが特定され、特定されたIPアドレスが中継装置50に通知される。また、逆引きによる問い合わせがなされた場合には、
図5の右側に示す逆引き用情報が参照されてドメイン名が特定され、特定されたドメイン名が中継装置50に通知される。
【0034】
図6および
図7は、IPsecのAggressive−modeとMain−modeのそれぞれにおけるセッション確立処理の流れを示す図である。本実施形態では、Main−modeに基づいて通信処理を実行するので、以下では、これらの違いについて
図6および
図7を参照して説明する。なお、以下では、通信装置30と中継装置50の間の処理を示しているが、通信装置31と中継装置50の間でも同様の処理が実行される。
【0035】
図6は、通信装置30と中継装置50の間で、IPsecのAggressive−modeに基づいて暗号化通信を開始するまでのパケットの流れを示す図である。
図6の例では、まず、通信装置30から中継装置50に対して、ISAKMP(Internet Security Association and Key Management Protocol)の最初のパケット(1st Packet)が送信される。このパケットには、通信装置30のIPアドレスが「1.1.1.1」であり、通信装置30のIDが「userA」であることが「src=1.1.1.1 ID=userA」として含まれている。このようなパケットを受信した中継装置50は、通信装置30に使用する設定を決定し、2番目のパケット(2nd Packet)を通信装置30に対して返信する。その後は、通信装置30が3番目のパケット(3rd Packet)を中継装置50に送信し、それを受けた中継装置50は認証処理を実行する。さらに、通信装置30と中継装置50の間で1往復半のパケットの授受が行われた後に暗号化通信が開始される。
【0036】
図7は、通信装置30と中継装置50の間で、IPsecのMain−modeに基づいて暗号化通信を開始するまでのパケットの流れを示す図である。
図7の例では、まず、通信装置30から中継装置50に対して、ISAKMPの最初のパケット(1st Packet)が送信される。このパケットには、通信装置30のアドレスが「1.1.1.1」であることが「src=1.1.1.1」として示されているが、IDは含まれていない。このようなパケットを受信した中継装置50は、通信装置30に使用する設定を決定し、2番目のパケット(2nd Packet)を通信装置30に対して返信する。その後は、通信装置30が3番目のパケット(3rd Packet)を中継装置50に送信し、これに対して中継装置50が通信装置30に対して4番目のパケット(4th Packet)を送信する。通信装置30から中継装置50に対して送信される5番目のパケット(5th Packet)は、暗号化され、このパケットに通信装置30のIPアドレス(1.1.1.1)とともに、ID(userA)が格納されている。その後は、中継装置50は認証処理を実行した後に、通信装置30に対して6番目のパケット(6th Packet)を送信し、通信装置30と中継装置50の間で1往復半のパケットの授受が行われた後に、暗号化通信が開始される。
【0037】
図6および
図7の比較から、IPsecのAggressive−modeでは、最初のパケット(1st Packet)にはIPアドレスおよびIDの「userA」が格納されており、一方、Main−modeでは、最初のパケット(1st Packet)にはIPアドレスのみが格納され、IDの「userA」については格納されていないことが分かる。IPsecのAggressive−modeの場合では、中継装置50はIDから一意にポリシーを特定し、特定されたポリシーおよび特定されたポリシーに対応するプリシェアードキーに基づいてセッション確立処理を実行する。一方、IPsecのMain−modeの場合では、IDによりポリシーを一意に特定できない。そこで、中継装置50は、通信相手のIPアドレスとポリシー名とを対応付けて記憶することで、任意の通信相手から接続要求がなされた場合には、当該通信相手のIPアドレスからポリシーを特定し、特定されたポリシーおよび特定されたポリシーに対応するプリシェアードキーに基づいてセッション確立処理を実行する。
【0038】
ところで、IPsecのMain−modeの場合において、通信装置30のIPアドレスが固定ではなく、DHCPサーバ60によって動的に割り当てられる環境下では、IPアドレスとドメイン名との対応関係が固定でなく変化するため、中継装置50は、IPアドレスとポリシー名とを対応づけて記憶することができない。そこで、中継装置50は、IPアドレスの代わりにドメイン名をポリシー名と対応づけて記憶する。この場合、最初のパケット(1st Packet)によって通知されるIPアドレスに対応するドメイン名を特定する必要がある。そこで、中継装置50は、DNSサーバ70に対してアドレス解決のための問い合わせを行うとともに、アドレス解決によって得られた情報を、
図2に示すキャッシュ管理部54に記憶させ、次回以降の問い合わせに備える。
【0039】
(B)本発明の実施形態の動作の説明
つぎに、本発明の実施形態に係る中継装置50の動作を説明する。以下では、つぎの4通りの場合についての動作を説明する。
【0040】
(a)通信装置30のIPアドレスが変化した場合の動作
(b)DNSサーバ70に設定されているドメイン名と中継装置50の設定管理部の相手ドメイン名が一致しない場合の動作
(c)DNSサーバ70に設定されている正引き情報と逆引き情報が一致しない場合の動作
(d)DNSサーバ70に設定されている正引き情報が登録されていない場合の動作
【0041】
まず、(a)通信装置30のIPアドレスが変化した場合の動作について説明する。例えば、
図8(A)に示すように、通信装置30の設定管理部に記憶されている自局IPアドレスが「1.1.1.1」であった場合に、DHCPサーバ60によって新たなIPアドレス「2.2.2.2」が付与されたとする。すると、設定管理部に格納されている自局IPアドレスは、
図8(B)に示すように「2.2.2.2」に変化する。なお、このとき、自局ドメイン名は「Domain A」であり、プリシェアードキーは「Secret A」であるとする。
【0042】
通信装置30に付与されているIPアドレスが変更されると、DDNS(Dynamic Updates in the Domain Name System)によって、DNSサーバ70に格納されている情報が更新される。
図9はDNSサーバ70のリソースレコード管理部に格納されている情報の一例を示している。
図9(A)に示す変更前の例では、通信装置30に対応する「Domain A」のIPアドレスは正引き用情報および逆引き用情報ともに「1.1.1.1」である。一方、
図9(B)に示す変更後では、「Domain A」のIPアドレスは正引き用情報および逆引き用情報ともに「2.2.2.2」になっている。また、IPアドレス「2.2.2.2」が重複して存在することから、重複する古い情報である「Domain B」に関する正引きおよび逆引き用情報がクリアされている。
【0043】
このような状態において、通信装置30が中継装置50に対してIPsecのMain−modeにより接続要求を行ったとする。この場合、通信装置30から中継装置50に対して送信される最初のパケット(1st Packet)では、通信装置30の変更後のIPアドレスである「2.2.2.2」が通知される。なお、中継装置50は、通信装置30のIPアドレスが「2.2.2.2」に変更されたことを知らないため、以下のような処理が実行される。
【0044】
すなわち、このようなパケットを受信した中継装置50では、制御部51が、設定管理部52、ネゴシエーション管理部53、および、キャッシュ管理部54を参照してセッションの確立を実行する。より詳細には、制御部51は、まず、キャッシュ管理部54から、IPアドレス「2.2.2.2」に対応するドメイン名を検索する。
図10(A)の例では、IPアドレス「2.2.2.2」に対応するドメイン名としては古い情報である「Domain B」が記憶されているので、対応するドメイン名として「Domain B」を得る。つぎに、制御部51は、キャッシュ管理部54から取得した「Domain B」に対応するポリシー名とプリシェアードキーを、設定管理部52から取得する。
図10(A)の例では、「Policy B」と「Secret B」を得る。なお、前述したように、通信装置30のIPアドレスが「1.1.1.1」から「2.2.2.2」に変更されていることを、中継装置50は知らないことから、古い情報に基づいて、IPアドレス「2.2.2.2」に対応する「Policy B」と「Secret B」が誤って取得される。
【0045】
このような情報を受け取った制御部51は、「Policy B」と「Secret B」に基づいて、通信装置30とセッション確立処理を行うが、プリシェアードキーが間違っているため、通信装置30とのセッションの確立に失敗する。
【0046】
このように、セッションの確立に失敗した場合、本実施形態に係る中継装置50では、制御部51がキャッシュ管理部54に記憶されている対応する情報を無効化する。より詳細には、制御部51は、
図10(B)に示すように、キャッシュ管理部54に記憶されている「Domain B」に関する正引き情報と逆引き情報を無効化(
図10(B)の例ではクリア)する。なお、
図10(B)に示すように、対応する情報をクリアするのではなく、所定の文字列または数値を書き込むことで、当該情報が無効であることを示すようにしてもよい。
【0047】
以上のように、セッションの確立に失敗した後に、通信装置30から再度接続要求がなされたとする。このとき、通信装置30は、自局IPアドレスとして「2.2.2.2」を通知する。中継装置50の制御部51は、
図10(B)に示すキャッシュ管理部54を参照し、IPアドレス「2.2.2.2」に対応する情報が存在しないことから、DNSサーバ70に対して逆引きにより問い合わせする。すなわち、制御部51は、IPアドレス「2.2.2.2」に対応するドメイン名を特定するように、DNSサーバ70に要求する。DNSサーバ70には
図9(B)の右側に示すようにIPアドレス「2.2.2.2」に関する逆引き用情報として「Domain A」が記憶されていることから、「Domain A」が中継装置50に対して返答される。
【0048】
このような返答を受け取った中継装置50の制御部51は、逆引きによって取得した情報を逆引き情報としてキャッシュ管理部54に記憶させる。なお、キャッシュ管理部54に「Domain A」に対応する正引きおよび逆引き情報が、逆引き情報を取得する前から既に存在する場合にはこれらを無効化する。例えば、
図10(B)の例では、キャッシュ管理部54には正引きおよび逆引き情報として「Domain A」に関する情報が既に存在するので、これらの情報が無効化(例えば、クリア)される。この結果、
図10(C)に示すように、「Domain A」および「1.1.1.1」が対応付けされた古い正引きおよび逆引き情報がキャッシュ管理部54からクリアされるとともに、「Domain A」および「2.2.2.2」が対応付けされた新しい情報が逆引き情報として記憶された状態となる。
【0049】
つぎに、制御部51は、逆引きによって得た情報が正しいか確認するために、ドメイン名「Domain A」に対応するIPアドレスを問い合わせる正引きをDNSサーバ70に対して行う。このような問い合わせを受けたDNSサーバ70は、
図9(B)の左側に示すように、ドメイン名「Domain A」に対応するIPアドレスとして「2.2.2.2」を正引き用情報として有しているので、このIPアドレス「2.2.2.2」を中継装置50に返す。
【0050】
IPアドレス「2.2.2.2」を受け取った中継装置50の制御部51は、キャッシュ管理部54に既に記憶されている逆引き情報と比較して、IPアドレスが正しいことから、IPアドレス「2.2.2.2」とドメイン名「Domain A」を
図10(D)に示すように、正引き情報としてキャッシュ管理部54に記憶させる。
【0051】
以上のようにして、正引き情報および逆引き情報の登録が完了すると、制御部51は、IPアドレス「2.2.2.2」に対応するドメイン名として「Domain A」を取得し、このドメイン名に対応するポリシーを設定管理部52から取得する。より詳細には、制御部51は、設定管理部52から、「Domain A」に対応するポリシーとして「Policy A」を特定するとともにプリシェアードキーとして「Secret A」を特定する。そして、制御部51は、特定した「Policy A」と「Secret A」に基づいて通信相手との間でセッション確立処理を実行する。前述したように、通信装置30のプリシェアードキーは「Secret A」であることから、セッションの確立は成功し、通信装置30と中継装置50は暗号化通信を開始することができる。
【0052】
以上に説明したように、(a)通信装置30のIPアドレスが変化した場合において、中継装置50がセッションの確立に失敗した場合、制御部51が、
図10(B)に示すように、キャッシュ管理部54に記憶されている該当する正引きおよび逆引き情報を無効化するようにしたので、通信装置30から接続要求が再度なされた場合には、制御部51がDNSサーバ70に対して速やかに問い合わせを行うことができる。本実施形態のように、正引きおよび逆引き情報を無効化しない場合には、TTLの期限が切れるまで逆引きおよび正引き情報がクリアされない。TTLの期限は、1〜2日程度に設定される場合が多いので、本実施形態のように、正引きおよび逆引き情報を無効化しない場合には、1〜2日程度の間通信を行うことができなかったが、本実施形態では、直ちに通信を再開することができる。
【0053】
また、本実施形態では、逆引きに成功した場合には、
図10(C)に示すように、対応する正引き情報を無効化するようにした。これにより、古い情報である正引き情報が無効化されることから、この情報に基づく誤動作が発生することを防止できる。
【0054】
つぎに、(b)DNSサーバ70に設定されているドメイン名と中継装置50の設定管理部の相手ドメイン名が一致しない場合の動作について説明する。
【0055】
例えば、
図11(A)に示すように、通信装置30のドメイン名が「Domain A」であり、IPアドレスが「1.1.1.1」であるとする。このとき、DNSサーバ70のリソースレコード管理部に記憶されている情報が
図11(B)に示すように、「Domain A」ではなく誤った「Domain D」であり、DNSサーバ70に設定されているドメイン名と中継装置50の設定管理部の相手ドメイン名が一致していないとする。また、中継装置50のキャッシュ管理部54は、
図12(A)に示すように、「Domain A」に対応する情報が記憶されていない状態であるとする。
【0056】
このような場合に、通信装置30が中継装置50に対してIPsecのMain−modeにより接続要求を行ったとすると、中継装置50の制御部51は、IPアドレス「1.1.1.1」に対応するドメイン名をキャッシュ管理部54から検索する。しかしながら、キャッシュ管理部54には、
図12(A)に示すように、該当する情報が記憶されていないことから、制御部51は、DNSサーバ70に対して逆引きによる問い合わせを行う。この結果、DNSサーバ70は、誤った情報である「Domain D」を制御部51に対して通知する。
【0057】
つぎに、制御部51は、以上のようにして得た「Domain D」に対するIPアドレスをDNSサーバ70に正引きによって問い合わせ、受け取った結果から正引きおよび逆引き情報が一致するとして、
図12(B)に示すように、キャッシュ管理部54に正引きおよび逆引き情報として記憶させる。
【0058】
つぎに、制御部51は、ドメイン名「Domain D」に対応する情報が設定管理部52に存在しないことから、キャッシュ管理部54に記憶されている「Domain D」に関する情報を無効化する。この結果、
図12(C)に示すように、キャッシュ管理部54に記憶されている「Domain D」に関する正引きおよび逆引き情報が無効化される。
【0059】
このように、キャッシュ管理部54に記憶されている正引きおよび逆引き情報を無効化することで、制御部51は、通信装置30から接続要求がなされる毎にDNSサーバ70に問い合わせを行うことから、DNSサーバ70に記憶されている情報が訂正された後には、セッションの確立に成功するので、直ちに暗号化通信を開始することができる。仮に、キャッシュ管理部54に記憶されている正引きおよび逆引き情報を無効化しない場合には、TTLの期限が切れるまで、正引きおよび逆引き情報が無効化されないため、1日〜2日の長きに亘って、暗号化通信を行うことができなくなる。しかしながら、本実施形態では、TTLの期限が切れる前でも、DNSサーバ70に記憶されている情報が訂正された場合には暗号化通信を行うことができる。
【0060】
つぎに、(c)DNSサーバ70に設定されている正引き情報と逆引き情報が一致しない場合の動作について説明する。
【0061】
例えば、
図13(A)に示すように、通信装置30のドメイン名が「Domain A」であり、IPアドレスが「1.1.1.1」であるとする。このとき、DNSサーバ70のリソースレコード管理部に記憶されている情報が
図13(B)に示すように、逆引き用情報のIPアドレスが「1.1.1.1」であり、正引き用情報のIPアドレスが「2.2.2.2」であり、これらが一致しないとする。また、中継装置50のキャッシュ管理部54は、
図14(A)に示すように、「Domain A」に対応する情報が記憶されていない状態であるとする。
【0062】
このような場合に、通信装置30が中継装置50に対してIPsecのMain−modeにより接続要求を行ったとすると、中継装置50の制御部51は、通信相手のIPアドレスである「1.1.1.1」に対応するドメイン名をキャッシュ管理部54から検索する。しかしながら、キャッシュ管理部54には、
図14(A)に示すように、該当する情報が記憶されていないことから、制御部51は、DNSサーバ70に対して逆引きによる問い合わせを行う。この結果、DNSサーバ70は、逆引き用情報として記憶されている「Domain A」を制御部51に対して通知する。制御部51は、
図14(B)に示すように、キャッシュ管理部54に「Domain A」と「1.1.1.1」を逆引き情報として記憶させる。
【0063】
つぎに、制御部51は、「Domain A」に対するIPアドレスをDNSサーバ70に正引きにより問い合わせる。この結果、DNSサーバ70は、正引き用情報を参照し、「Domain A」に対するIPアドレスとして誤った情報である「2.2.2.2」を返す。制御部51は、受け取った「2.2.2.2」と「Domain A」を対応付けて正引き情報として
図14(B)に示すようにキャッシュ管理部54に記憶させる。
【0064】
続いて、制御部51は、取得した正引き情報と逆引き情報が一致するか否か判定し、一致しない場合には誤った情報であるとして正引きおよび逆引き情報を無効化する。いまの例では、
図14(B)に示すように、正引き情報と逆引き情報は一致しないことから、制御部51は、キャッシュ管理部54に記憶されているこれらの正引き情報と逆引き情報の双方を無効化する。この結果、
図14(C)に示すように、キャッシュ管理部54に記憶されている正引きおよび逆引き情報が無効化(この例ではクリア)されることになる。
【0065】
このように、キャッシュ管理部54に記憶されている正引きおよび逆引き情報が一致しない場合に、これらを無効化することで、制御部51は、通信装置30から接続要求がなされる毎にDNSサーバ70に問い合わせを行う。このため、DNSサーバ70に記憶されている情報が訂正された後には、セッションの確立に成功するので、暗号化通信を開始することができる。仮に、キャッシュ管理部54に記憶されている正引きおよび逆引き情報を無効化しない場合には、TTLの期限が切れるまで、正引きおよび逆引き情報が無効化されないため、1日〜2日の長きに亘って、暗号化通信を行うことができなくなる。しかしながら、本実施形態では、TTLの期限が切れる前でも、DNSサーバ70に記憶されている情報が訂正された後には暗号化通信を行うことができる。
【0066】
つぎに、(d)DNSサーバ70に設定されている正引き情報が登録されていない場合の動作について説明する。
【0067】
例えば、
図15(A)に示すように、通信装置30のドメイン名が「Domain A」であり、IPアドレスが「1.1.1.1」であるとする。このとき、DNSサーバ70のリソースレコード管理部に記憶されている情報が
図15(B)に示すように、逆引き用情報としては正しい情報が記憶され、正引き用情報が記憶されていないとする。また、中継装置50のキャッシュ管理部54は、
図16(A)に示すように、「Domain A」に対応する情報が記憶されていない状態であるとする。
【0068】
このような場合に、通信装置30が中継装置50に対してIPsecのMain−modeにより接続要求を行ったとすると、中継装置50の制御部51は、通信相手のIPアドレス「1.1.1.1」に対応するドメイン名をキャッシュ管理部54から検索する。しかしながら、キャッシュ管理部54には、
図16(A)に示すように、該当する情報が記憶されていないことから、制御部51は、DNSサーバ70に対して逆引きによる問い合わせを行う。この結果、DNSサーバ70は、「Domain A」を制御部51に対して通知するので、
図16(B)に示すように、キャッシュ管理部54には「Domain A」と「1.1.1.1」が逆引き情報として記憶される。
【0069】
つぎに、制御部51は、「Domain A」に対するIPアドレスをDNSサーバ70に正引きによって問い合わせる。この結果、DNSサーバ70は、正引き用情報を参照し、「Domain A」に対するIPアドレスを特定しようとするが、
図15(B)に示すように「Domain A」に関する情報が記憶されていないことから、DNSサーバ70は、該当する正引き情報が存在しないことを中継装置50に通知する。
【0070】
このような通知を受けた中継装置50の制御部51は、正引きに失敗したと判定し、
図16(C)に示すように、キャッシュ管理部54に既に記憶している逆引き情報を無効化(この例ではクリア)する。
【0071】
このように、正引きに失敗した場合に、既に記憶している逆引き情報を無効化することで、制御部51は、通信装置30から接続要求がなされる毎にDNSサーバ70に問い合わせを行うことになる。DNSサーバ70に正引き情報が登録されていない情報は、確度が低い可能性が高いので、このような情報を無効化することで、正引き情報を含む確度が高い情報が記憶された場合には、セッションの確立に成功するので、暗号化通信を開始することができる。
【0072】
つぎに、
図17および
図18を参照して、
図2に示す中継装置50において実行される処理について説明する。
【0073】
まず、
図17は、
図2に示す中継装置50において実行されるメインの処理の一例である。この処理が開始されると、以下のステップが実行される。
【0074】
ステップS11では、制御部51は、通信相手から接続要求があったか否かを判定し、接続要求があったと判定した場合(ステップS11:Yes)にはステップS12に進み、それ以外の場合(ステップS11:No)には通信相手から接続要求があるまで同様の処理を繰り返す。例えば、通信装置30から、IPsecのMain−modeにより、接続要求がなされた場合にはYesと判定してステップS12に進む。
【0075】
ステップS12では、制御部51は、ネゴシエーション管理部53にデータベースを作成する。この結果、ネゴシエーション管理部53には、
図3(C)に示すようなデータベースが作成される。なお、
図3(C)では、Policy名が記憶されている状態を示しているが、Policy名は、後述するステップS18において記憶される。
【0076】
ステップS13では、制御部51は、ステップS11において接続要求を受けた通信相手の正引き情報をキャッシュ管理部54から検索する。例えば、通信装置30から接続要求を受けた場合には、通信装置30のIPアドレスに対応する正引き情報をキャッシュ管理部54から検索する。
【0077】
ステップS14では、制御部51は、該当する正引き情報がキャッシュ管理部54に存在するか否かを判定し、存在すると判定した場合(ステップS14:Yes)にはステップS16に進み、それ以外の場合(ステップS14:No)にはステップS15に進む。
【0078】
ステップS15では、制御部51は、DNSサーバ70に対してIPアドレスに対応するドメイン名を問い合わせるアドレス解決処理を実行する。例えば、通信装置30に対応する正引き情報がキャッシュ管理部54に存在しない場合には、DNSサーバ70に対してアドレス解決を要求する。なお、この処理の詳細は、
図18を参照して後述する。
【0079】
ステップS16では、制御部51は、キャッシュ管理部54から該当する正引き情報を取得し、ステップS17に進む。例えば、通信装置30に対応する正引き情報がキャッシュ管理部54に存在する場合には、対応する正引き情報を取得してステップS17に進む。
【0080】
ステップS17では、制御部51は、ステップS15またはステップS16において取得したドメイン名に対応するポリシーを設定管理部52から検索する。例えば、制御部51は、通信装置30に対応するポリシーを設定管理部52から検索する。
【0081】
ステップS18では、制御部51は、ステップS17における検索の結果、該当するポリシーが存在するか否かを判定し、存在すると判定した場合には、
図3(C)に示すデータベースに対してポリシー名を格納した後にステップS19に進み、それ以外の場合にはステップS20に進む。例えば、通信装置30に対応するポリシーが設定管理部52に存在する場合には、
図3(C)に示すデータベースに対してポリシー名を格納した後にステップS19に進み、存在しない場合にはステップS20に進む。
【0082】
ステップS19では、制御部51は、ステップS18で特定されたポリシーに対応するプリシェアードキーを設定管理部52から取得する。例えば、制御部51は、通信装置30に対応するプリシェアードキーを設定管理部52から取得する。
【0083】
ステップS20では、制御部51は、ステップS15の処理を、実行済みか否かを判定し、実行済みと判定した場合(ステップS20:Yes)にはステップS21に進み、それ以外の場合(ステップS20:No)には処理を終了する。例えば、ステップS14において、正引き情報が存在しない(No)と判定してステップS15に進んだ場合にはYesと判定される。
【0084】
ステップS21では、制御部51は、キャッシュ管理部54に記憶されている、正引きおよび逆引き情報を無効化する。例えば、ステップS18において、通信装置30に対応するポリシーが存在しないと判定されるとともに、ステップS20においてステップS15の処理を実行済みと判定された場合には、対応する正引きおよび逆引き情報が無効化される。なお、ポリシーが存在しない場合に、正引きおよび逆引き情報が無効化されるのは、前述した(b)の動作に対応している。
【0085】
ステップS22では、制御部51は、
図7に示す2nd〜5thパケットを、通信相手との間で送受信する。より詳細には、制御部51は、
図7に示す2nd〜5thパケットを、通信相手との間で送受信する。
【0086】
ステップS23では、制御部51は、ステップS19で取得したプリシェアードキーに基づいて通信相手の認証処理を実行する。例えば、通信装置30から接続要求があった場合には、ステップS19で取得されたプリシェアードキーに基づいて通信装置30の認証処理が実行される。
【0087】
ステップS24では、制御部51は、認証処理に成功したか否かを判定し、成功したと判定した場合(ステップS24:Yes)にはステップS25に進み、それ以外の場合(ステップS24:No)にはステップS21に進む。例えば、通信装置30の認証に成功した場合にはステップS25に進み、失敗した場合にはステップS21に進む。なお、ステップS24でNoと判定されてステップS21で正引きおよび逆引き情報が無効化される処理は、前述した(a)の動作に対応している。
【0088】
ステップS25では、制御部51は、接続要求を行った通信相手との間でSA(Security Association)を確立し、処理を終了する。例えば、通信装置30から接続要求がなされた場合には、通信装置30との間でSAが確立される。
【0089】
つぎに、
図18を参照して、
図17のステップS15に示す「アドレス解決処理」の詳細について説明する。
図18に示すフローチャートの処理が開始されると、以下のステップが実行される。
【0090】
ステップS30では、制御部51は、DNSサーバ70に対して逆引きによる問い合わせを行う。例えば、通信装置30の逆引きによる問い合わせを行う場合に、通信装置30のIPアドレスが「1.1.1.1」であるときには、制御部51はDNSサーバ70に対して、IPアドレス「1.1.1.1」に対応するドメイン名を通知するように要求する。
【0091】
ステップS31では、制御部51は、ステップS30における逆引きに成功したか否かを判定し、成功したと判定した場合(ステップS31:Yes)にはステップS32に進み、それ以外の場合(ステップS32:No)には処理を終了する。例えば、通信装置30に関する逆引きが成功した場合にはステップS32に進み、失敗した場合には処理を終了する。
【0092】
ステップS32では、制御部51は、ステップS30において取得に成功した情報を逆引き情報としてキャッシュ管理部54に記憶させる。例えば、通信装置30に関する逆引きに成功し、ドメイン名として「Domain A」を取得した場合には、IPアドレス「1.1.1.1」とドメイン名「Domain A」を対応付けてキャッシュ管理部54に記憶させる。
【0093】
ステップS33では、制御部51は、キャッシュ管理部54に、同一ドメイン名に係る正引き情報が、ステップS30で逆引き情報を取得する前から既に存在するか判定し、存在する場合(ステップS33:Yes)にはステップS34に進み、それ以外の場合(ステップS33:No)にはステップS37に進む。例えば、ドメイン名「Domain A」に係る正引き情報(
図10の例では「1.1.1.1」に関する正引き情報)がキャッシュ管理部54に既に記憶されている場合にはステップS34に進む。
【0094】
ステップS34では、制御部51は、ステップS33で特定されたキャッシュ管理部54に既に存在する同一ドメイン名に係る正引き情報を無効化する。例えば、ドメイン名「Domain A」に対応する正引き情報が既に存在する場合には、当該情報を無効化する。なお、逆引きに成功した場合に、同一ドメイン名に係る既に存在する正引き情報を無効化するこの処理は、前述した(a)の動作に対応している。
【0095】
ステップS35では、制御部51は、キャッシュ管理部54に、同一ドメイン名に係る逆引き情報が、ステップS30で逆引き情報を取得する前から既に存在するか判定し、存在する場合(ステップS35:Yes)にはステップS36に進み、それ以外の場合(ステップS35:No)にはステップS37に進む。例えば、ドメイン名「Domain A」に係る逆引き情報(
図10の例では「1.1.1.1」に関する逆引き情報)がキャッシュ管理部54に既に記憶されている場合にはステップS36に進む。
【0096】
ステップS36では、制御部51は、ステップS35で特定されたキャッシュ管理部54に既に存在する同一ドメイン名に係る逆引き情報を無効化する。例えば、ドメイン名「Domain A」に係る逆引き情報が既に存在する場合には、当該情報を無効化する。なお、逆引きに成功した場合に、同一ドメイン名に係る既に存在する逆引き情報を無効化するこの処理は、前述した(a)の動作に対応している。
【0097】
ステップS37では、制御部51は、ステップS30において取得した逆引きによって得られた情報に基づいて、DNSサーバ70に対して正引きによる問い合わせを行う。例えば、通信装置30の場合には、ドメイン名「Domain A」をDNSサーバ70に供給し、対応するIPアドレスを問い合わせる。
【0098】
ステップS38では、制御部51は、正引きに成功したか否かを判定し、成功したと判定した場合(ステップS38:Yes)にはステップS39に進み、それ以外の場合(ステップS38:No)にはステップS41に進む。例えば、通信装置30の場合には、ドメイン名「Domain A」に対応するIPアドレスが得られた場合にはステップS39に進み、得られなかった場合にはステップS41に進む。
【0099】
ステップS39では、制御部51は、ステップS37で取得に成功した情報を正引き情報としてキャッシュ管理部54に記憶させる。例えば、ステップS37において、通信装置30に対する正引き情報の取得に成功した場合には、当該情報を正引き情報としてキャッシュ管理部54に記憶させる。
【0100】
ステップS40では、制御部51は、正引きと逆引きの内容が一致するか否かを判定し、これらが一致すると判定した場合(ステップS40:Yes)には元の処理に復帰(リターン)し、それ以外の場合(ステップS40:No)にはステップS41に進む。例えば、通信装置30の正引き情報と逆引き情報が一致する場合には元の処理(
図17の処理)に復帰し、一致しない場合にはステップS41に進む。
【0101】
ステップS41では、制御部51は、キャッシュ管理部54に記憶されている、該当する正引き情報および逆引き情報を無効化し、処理を終了する。より詳細には、ステップS38において正引きに失敗したと判定された場合には逆引き情報を無効化し、ステップS40において正引きと逆引き情報が一致しないと判定した場合には正引き情報と逆引き情報を無効化する。なお、正引きに失敗した場合に逆引き情報を無効化する処理は、前述した(d)の処理に対応する。また、正引き情報と逆引き情報が一致しない場合に無効化する処理は、前述した(c)の動作に対応している。
【0102】
以上の処理によれば、前述した(a)〜(d)の動作を実現することができる。
【0103】
(C)変形実施形態の説明
以上の実施形態は一例であって、本発明が上述したような場合のみに限定されるものでないことはいうまでもない。例えば、以上の実施形態では、IPsecにおける通信を例に挙げて説明したが、本発明はこのような場合に限定されるものではなく、IPアドレスを提示して通信要求がなされるとともに、認証が行われる通信方式であれば本発明を適用することができる。例えば、PPP(Point-to-Point Protocol)における認証処理であるPAP(Password Authentication Protocol)またはCHAP(Challenge Handshake Authentication Protocol)等を用いる通信方式に対して本発明を適用することができる。より詳細には、例えば、レイヤ2(すなわちPPP)のフレームをIPでトンネリングするプロトコルであるL2TP(Layer Two Tunneling Protocol)に対して本発明を適用することができる。
【0104】
また、以上の実施形態では、設定管理部52とキャッシュ管理部54は別の領域に格納するようにしたが、これらを共通する領域に格納するようにしてもよい。
【0105】
また、
図1に示す構成例では、LAN20には端末装置10が1台だけ接続され、また、LAN80には端末装置90が1台だけ接続される構成としたが、複数の端末装置がLAN20,80にそれぞれ接続される構成としてもよい。
【0106】
また、以上の説明では、
図2に示す制御部51が設定管理部52、ネゴシエーション管理部53、および、キャッシュ管理部54を制御するようにしたが、設定管理部52、ネゴシエーション管理部53、および、キャッシュ管理部54のそれぞれに対して、制御機能の一部を分担させ、これらの部分が自分自身を制御するようにしたり、他の部分に対して情報を授受したりするようにしてもよい。もちろん、
図2に示す構成は一例であって、これ以外の構成としてもよい。
【0107】
また、
図18に示すフローチャートでは、ステップS32において、逆引き情報を記憶した後に、ステップS34およびステップS36において、逆引き前から存在する正引きおよび逆引き情報を無効化するようにしたが、無効化した後に逆引き情報を記憶するようにしてもよい。
【0108】
また、以上に例を挙げて説明した(a)〜(d)の動作は一例であって、これ以外の場合であっても、通信相手との間で認証が成立しない場合には、キャッシュ管理部54に記憶されている情報を無効化することで、通信を迅速に再開することができる。例えば、一例として、(c)の場合において、DNSサーバ70の逆引き用情報が間違っている場合に、キャッシュ管理部54の情報を無効化するようにしてもよい。
【0109】
また、以上の説明では、IPアドレスは「1.1.1.1」等のように、IPv4(Internet Protocol Version 4)のアドレス形式となっているが、IPv6(Internet Protocol Version 6)のアドレス形式であってもよいことはいうまでもない。