説明

IPsec通信方法および装置

【課題】 IPsecやIKEにおいて、ユーザが指定しなければいけないパラメータは多岐に亘り、パラメータのうち1つでも一致しない場合には、通信が不可能となる。ユーザが容易に設定可能で、失敗の少ない方法が求められている。
【解決手段】 送信側の通信装置は、IKEにおいて、暗号アルゴリズム、ハッシュアルゴリズム、DH(Diffie-Hellman)グループの全ての組み合わせを、受信側の通信装置に提案してネゴシエーションを開始する。受信側の通信装置は、その中から1つの組み合わせを選択する。送信側の通信装置は、その選択された1つの組み合わせにより、受信側の通信装置とIPsec通信を行う。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、IP層でセキュアな通信を提供するIPsec(Internet Protocol Security)およびIKE(Internet Key Exchange)通信に関する通信方法およびシステムに関する。
【背景技術】
【0002】
近年、コンピュータネットワークにおけるセキュリティ意識の高まりに伴い、様々なセキュアプロトコルが提案されている。その中の一つに、OSI参照モデルにおけるネットワーク層であるIP(Internet Protocol)層でのセキュアな通信を提供するIPsec(Internet Protocol Security)がある。
【0003】
IPsecは暗号化通信にどのような暗号アルゴリズムを使用するかなどの通信機器間のセキュリティ設定をSA(Security Association)で実現している。また、通信する装置毎に、暗号化通信を行う/行わないなどのセキュリティポリシーをSP(Security Policy)で実現している。SAについては、鍵交換プロトコルであるIKE(Internet Key Exchange)を使用することにより、IPsec通信を行うそれぞれの機器に対して自動的に生成することが可能である。
【0004】
IKEは、2段階の手続きを踏んでIPsec SAを生成する。まず、IKEの第1段階であるフェーズ1において、機器間でISAKMP(Internet Security Association Key Management Protocol) SAを折衝する。ISAKMP SAとは、IKEの第2段階であるフェーズ2で提供される暗号通信で使用する暗号アルゴリズムや鍵などを定義したものである。その後のフェーズ2において、ISAKMP SAを使用した暗号通信によって、IPsec SAを折衝する。
【0005】
ISAKMP SAには暗号アルゴリズムや認証データの他に、使用しているISAKMP SAやIPsec SAを作り直すまでの期間を指定することも可能である。上記の期間を経過した場合には、現在使用しているIPsec SAを破棄し、再度IKEを用いて装置間で折衝を行うことにより、ISAKMP SAまたはIPsec SAを生成し直す。
【0006】
IPsec通信において、機器間でIPsec SAが生成されない場合は、IPプロトコルでの通信を行うことが不可能となる。そのため、装置間でISAKMPおよびIPsecの設定値を一致させることが重要となる。
【0007】
IPsec機能を提供するデバイスにおいて、従来、ユーザは、それぞれのデバイスで通信に使用する暗号アルゴリズムを設定し、IKEでネゴシエーションすることによって、デバイス間で使用する暗号アルゴリズムを一致させる必要がある。
【0008】
IKEプロトコルにおいて、アルゴリズムを提案する側のイニシエータは複数のアルゴリズムを提案することが可能である。また、IKEプロトコルにおける提案受け入れ側のレスポンダはその中から一つを選択して、デバイス間で使用するアルゴリズムを決定する。
【0009】
暗号化通信の先行技術として、例えば特許文献1がある。しかしながら、特許文献1は一般的な暗号化通信に対するものである。そのため、IPsecに適用するためにはIPsecの標準プロトコル以外に独自プロトコルを実装する必要がある。ゆえに、通信相手のデバイスも独自プロトコルに対応している必要があり、通信相手が限られるという問題がある。
【0010】
また、他の問題の解決方法として、Microsoft Windows(登録商標)では、予めユーザ向けに設定値セットを用意してある。しかしながら、設定値セットは通信装置を開発しているメーカによって組み合わせが異なることが考えられる。また、新しい暗号アルゴリズムが登場した場合や古いアルゴリズムの暗号強度が低下したために使用が禁止された場合には、設定値セットが変更となることが考えられる。以上のような場合には、対応することができない。
【先行技術文献】
【特許文献】
【0011】
【特許文献1】特開2004−032502号公報
【発明の概要】
【発明が解決しようとする課題】
【0012】
以上のように、IPsecやIKEにおいて、ユーザが指定しなければいけないパラメータは多岐に亘る。また、パラメータのうち1つの項目でも一致していない場合にはIKEの折衝に失敗し、通信が不可能となってしまう。そのため、ユーザが容易に設定可能であり、かつ失敗の少ない方法が求められている。
【0013】
本発明は、上記課題を解決するためになされたものであり、ユーザが設定値を通信相手の設定値に合わせて個別に設定する必要をなくすことにより、ユーザの利便性を向上させる仕組みを提供することを目的とする。
【課題を解決するための手段】
【0014】
本発明の一側面によれば、IPsec (Internet Protocol Security) 通信を行うためのIPsec通信手段と、IPsec SA (Security Association) を生成するためのネゴシエーションを行うIKE (Internet Key Exchange) を実行するIKE手段とを有し、前記IKE手段は、暗号アルゴリズム、ハッシュアルゴリズム、DH(Diffie-Hellman)グループの全ての組み合わせを対向装置に提案して前記ネゴシエーションを行うネゴシエーション手段と、前記ネゴシエーションによってIPsec SAの生成に成功した場合、前記全ての組み合わせの中から、前記対向装置によって選択された暗号アルゴリズム、ハッシュアルゴリズム、DHグループの1つの組み合わせを抽出してこれをIKE決定値として記憶手段に格納する抽出手段とを含み、前記IPsec通信手段は、前記抽出手段により抽出された暗号アルゴリズム、ハッシュアルゴリズム、DHグループを用いて前記対向装置とIPsec通信を行うことを特徴とする通信装置が提供される。
【発明の効果】
【0015】
本発明によれば、ユーザが設定値を通信相手の設定値に合わせて個別に設定する必要がないため、ユーザの利便性を向上させることができる。
【図面の簡単な説明】
【0016】
【図1】実施形態における暗号通信装置のモジュール構成図。
【図2】実施形態におけるIPsec処理を示すフローチャート。
【図3】実施形態におけるIKE処理を示すフローチャート。
【発明を実施するための形態】
【0017】
以下、図面を参照して、本発明の好適な実施形態を説明する。
(実施形態1)
図1には、IPsec (Internet Protocol Security) 通信を行うことが可能な、100で示されるIPsec通信装置Aと、110で示される対向装置であるIPsec通信装置Bが示されている。図示のように、IPsec通信装置Aは、主にネットワークモジュール101、IKE (Internet Key Exchange) モジュール102、記憶手段としての不揮発記憶領域103及び揮発記憶領域104を備える。なお、ネットワークモジュール101や、IKEモジュール102は、それぞれ、IPsec通信装置Aが備えるCPUが、ROMから読み出したプログラムを実行することによって実現される。また、IPsec通信装置AやIPsec通信装置Bは、パーソナルコンピュータ等の情報処理装置であってもよいし、複合機等の画像形成装置であってもよい。または、それらの装置に搭載される拡張装置であっても良い。
【0018】
ネットワークモジュール101は、LAN(Local Area Network)やWAN(Wide Area Network)などを介して、IPsec通信装置Bのような外部の通信装置とIPsec通信を行う機能を有する。一般的にこの種の機能は、OSI参照モデルを基にしたプロトコルスタックにより構成される。一般的にIPsec機能を提供するモジュールは、プロトコルスタックのIP層に含まれる。IKEモジュール102は、ネットワークモジュール101を使用して、IKEプロトコルを実行する機能を有する。具体的には、通信相手との間でISAKMP SA (Security Association) 108やIPsec SA (Security Association) 109の折衝を行う。
【0019】
不揮発記憶領域103には、IKE/IPsec設定値105が保存されている。このIKE/IPsec設定値105は、IKE提案設定値およびIPsec提案設定値を含む。IKE提案設定値は、IKEプロトコルのフェーズ2で用いられる暗号アルゴリズム、ハッシュアルゴリズム、認証方法、DH(Diffie-Hellman)グループ、ISAKMP SA108の有効期間などから構成される。一方、IPsec提案設定値は、IPsec通信で用いられる暗号アルゴリズム、ハッシュアルゴリズム、IPsec SA109の有効期間などから構成される。なお、暗号アルゴリズム、ハッシュアルゴリズム、DHグループは、一つの提案の中で複数選択することも可能である。
【0020】
IKE/IPsec決定値106は、IKE決定値及びIPsec決定値を含む。IKE/IPsec決定値106は、IKE提案設定値およびIPsec提案設定値が複数選択されている場合に、IKEネゴシエーションの結果、複数の候補の中で決定された項目がどれであるかの情報を記憶している。例えば、ユーザがIPsec通信の暗号アルゴリズムの組み合わせとして、AES、3DESを選択し、ハッシュアルゴリズムの組み合わせとして、MD5、SHA−1を選択したとする。その場合は、IPsec提案設定値として、3DES、AES、MD5、SHA−1を保持する。
【0021】
また、提案候補として、AESとSHA−1の組み合わせと、3DESとMD5の組み合わせを選択した場合には、それぞれの組み合わせを提案候補として保持する。上記のIPsec提案設定値を用いてIKEネゴシエーションを行った結果、暗号アルゴリズムにAES、ハッシュアルゴリズムにSHA−1が決定されたとする。その場合は、IKE/IPsec決定値106としてAES、SHA−1を保持する。
【0022】
IKEモジュール102は、IKEフェーズ1において、IKE提案設定値を用いてネゴシエーションを行い、装置間で整合性の取れたISAKMP SA108を生成する機能を有する。また、IKEモジュール102はIKEフェーズ2で、IPsec提案設定値を用いて、装置間で整合性の取れたIPsec SA109を生成する機能も有する。さらに、IKEモジュール102は、ISAKMP SA108およびIPsec SA109の生成以外にも、削除通知メッセージの送信処理を行う機能も有する。なお、IKEモジュール102により生成されたISAKMP SA108ならびに、IPsec SA109は揮発記憶領域104に格納される。
【0023】
不揮発記憶領域103には、IPsec SP107が保存されている。IPsec SP107は、IPsec通信を適用する通信相手のIPやIPsecの適用/不適用に関するポリシー、IPsecを適用するプロトコルやポート番号などの情報によって構成される。一般的に、IKE提案設定値、IPsec提案設定値、IPsec SP107はユーザにより手動で設定される。
【0024】
図2は、本実施形態におけるIPsec通信装置によるIPsec処理の一例を示すフローチャートである。IPsec通信装置A内のアプリケーションは、外部の装置と通信を行うために、ネットワークモジュール101にIPパケットの生成を依頼する。ネットワークモジュール101は、IPパケットを生成する前に、パケットの送り先IPアドレスやプロトコルをIPsec SP107に設定されている値と比較し、そのパケットにIPsecを適用するかどうかを判断する(ステップS100)。ステップS100においてIPsecを適用しないと判断された場合には、ネットワークモジュール101はIPパケットを生成し(ステップS103)、通信相手の装置(ここでは、装置C)へIPパケットを送信する(ステップS104)。
【0025】
ステップS100においてIPsecを適用すると判断された場合には、ネットワークモジュール101はIPsec SA109に該当するものが存在するかどうかを確認する(ステップS101)。ステップS101において、該当するIPsec SA109が存在する場合には、ネットワークモジュール101はIPsec SA109を用いてパケットのデータ部分に暗号化を施し(ステップS102)、IPパケットを生成する(ステップS103)。
【0026】
その後、ネットワークモジュール101は、生成したIPパケットを通信相手の装置(ここでは、装置B)へ送信する(ステップS104)。ステップS101において、IPsec SA109が存在しない場合には、ネットワークモジュール101はIPsec SP107に設定されている通信装置との間でIPsec SA109を生成するために、IKEモジュール102を呼び出す。
【0027】
図3は、本実施形態の通信装置におけるIKEフェーズ1処理の一例を示すフローチャートである。IKEモジュール102は、IKE決定値が存在するか否かを確認する(ステップS200)。IKE決定値が存在しない場合には、IKEモジュール102は自装置が提供可能な、暗号アルゴリズム、ハッシュアルゴリズム、DH(Diffie-Hellman)グループの全ての組み合わせを生成する(ステップS202)。例えば、提供可能なものとして、AES、3DES、SHA−1、DHグループ1、DHグループ2があった場合の全ての組み合わせは次の組み合わせとなる。AES、SHA−1、DHグループ1の組み合わせと、AES、SHA−1、DHグループ2の組み合わせと、3DES、SHA−1、DHグループ1の組み合わせと、3DES、SHA−1、DHグループ2の組み合わせである。
【0028】
その後、上記全ての組み合わせを用いて、ネゴシエーションを開始する(ステップS203)。ステップS200において、IKE決定値が存在する場合には、IKEモジュール102はそのIKE決定値に係る1つの組み合わせの提案を生成し(ステップS201)、ネゴシエーションを開始する(ステップS203)。
【0029】
この処理により、一度ISAKMP SA108が生成された後に再度鍵の更新を行う場合には、提案する候補数を必要最小限にでき提案時のパケットサイズを小さく抑えることが可能となる。また、こうして提案候補数を少なくできることによって、提案を受信した側の処理も少なくなる。
【0030】
IKEモジュール102は、ステップS203にてネゴシエーションを開始した後にネゴシエーションが終了し、ISAKMP SA108の生成に成功したかどうかを確認する(ステップS204)。ISAKMP SA108の生成に成功した場合には、IKEモジュール102はISAKMP SA108から暗号アルゴリズムとハッシュアルゴリズムとDHグループとを抽出し、IKE決定値として保存する(ステップS205)。
【0031】
なお、以前のIKE決定値が存在した場合にはその値を更新する。ステップS204において、ISAKMP SA108の生成に失敗した場合には、IKEモジュール102はネゴシエーションで提案した候補がIKE決定値から生成された提案であったかどうかを確認する(ステップS206)。
【0032】
IKE決定値から生成された提案候補であった場合には、IKEモジュール102は上記全ての組み合わせから提案を生成し(ステップS207)、ネゴシエーションを開始する(ステップS203)。この処理により、IPsec通信相手のIKE提案設定値105が以前の値から変更されていた場合であっても、自装置のIKE決定値を更新することができ、IKEネゴシエーションの失敗を防ぐことが可能となる。ステップS206において、IKE決定値から生成された提案候補でなかった場合には、IKEモジュール102はIKE処理を終了する。
【0033】
以上、図3に基づき、IKEフェーズ1の処理について説明したが、IKEフェーズ2においても、IPsec提案設定値、IPsec決定値を用いるなどの差異はあるが同様のフローで処理を行うことができる。ここでは詳細の説明は省略する。IKEモジュール102はIKEフェーズ1およびフェーズ2の処理を行うことで、最終的にIPsec SA109を生成する。
【0034】
(実施形態2)
上述の実施形態1では、ステップS200において、IKE決定値が存在するかどうかを判断し、提案候補として、IKE決定値または全ての組み合わせを用いた。以下では、実施形態1の提案決定方法を「自動設定方式」といい、一方、一般的にIPsec通信装置で使用されているユーザが手動で提案候補を設定する方式を「手動設定方式」という。これら自動設定方式と手動設定方式とを、ユーザの指定に応じて選択できるようにしてもよい。
【0035】
また、自動設定方式として、実施形態1のステップS202における全ての組み合わせを一度に提案する方法以外にも、一つの提案候補を成功するまで繰り返し提案し続けることも可能である。例えば、提供可能なものとして、AES、3DES、SHA−1、DHグループ1、DHグループ2があった場合の全ての組み合わせは次の組み合わせとなる。AES、SHA−1、DHグループ1の組み合わせと、AES、SHA−1、DHグループ2の組み合わせと、3DES、SHA−1、DHグループ1の組み合わせと、3DES、SHA−1、DHグループ2の組み合わせである。
【0036】
実施形態1では、上記の4つの提案候補を一度に相手に提案するのに対して、まず、AES、SHA−1、DHグループ1の組み合わせを提案する。提案に失敗した場合は、AES、SHA−1、DHグループ2の組み合わせを提案し、さらに失敗した場合には、3DES、SHA−1、DHグループ1を提案し、成功するまで、または、全ての提案候補を提案し終わるまで繰り返す。
【0037】
本発明では、上記全ての提案候補の組み合わせを一度に提案する手法、または上記成功するまで提案を繰り返す手法をユーザに選択させることも可能である。
【0038】
(他の実施形態)
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。

【特許請求の範囲】
【請求項1】
IPsec (Internet Protocol Security) 通信を行うためのIPsec通信手段と、
IPsec SA (Security Association) を生成するためのネゴシエーションを行うIKE (Internet Key Exchange) を実行するIKE手段と、
を有し、
前記IKE手段は、
暗号アルゴリズム、ハッシュアルゴリズム、DH(Diffie-Hellman)グループの全ての組み合わせを対向装置に提案して前記ネゴシエーションを行うネゴシエーション手段と、
前記ネゴシエーションによってIPsec SAの生成に成功した場合、前記全ての組み合わせの中から、前記対向装置によって選択された暗号アルゴリズム、ハッシュアルゴリズム、DHグループの1つの組み合わせを抽出してこれをIKE決定値として記憶手段に格納する抽出手段と、
を含み、
前記IPsec通信手段は、前記抽出手段により抽出された暗号アルゴリズム、ハッシュアルゴリズム、DHグループを用いて前記対向装置とIPsec通信を行う
ことを特徴とする通信装置。
【請求項2】
前記ネゴシエーション手段は、前記記憶手段にIKE決定値が記憶されている場合は、当該IKE決定値に係る暗号アルゴリズム、ハッシュアルゴリズム、DHグループの組み合わせを前記対向装置に提案し、前記記憶手段にIKE決定値が記憶されていない場合に、前記全ての組み合わせを前記対向装置に提案することを特徴とする請求項1に記載の通信装置。
【請求項3】
前記ネゴシエーション手段は、ユーザによって設定された暗号アルゴリズム、ハッシュアルゴリズム、DHグループの1つの組み合わせを前記対向装置に提案するか、前記全ての組み合わせを前記対向装置に提案するかを、ユーザの指定に応じて選択する選択手段を含むことを特徴とする請求項1に記載の通信装置。
【請求項4】
IPsec (Internet Protocol Security) 通信を行うためのIPsec通信手段と、
IPsec SA (Security Association) を生成するためのネゴシエーションを行うIKE (Internet Key Exchange) を実行するIKE手段と、
を有する通信装置によって実行される通信方法であって、
前記IKE手段が、暗号アルゴリズム、ハッシュアルゴリズム、DH(Diffie-Hellman)グループの全ての組み合わせを対向装置に提案して前記ネゴシエーションを行うネゴシエーションステップと、
前記IKE手段が、前記ネゴシエーションによってIPsec SAの生成に成功した場合、前記全ての組み合わせの中から、前記対向装置によって選択された暗号アルゴリズム、ハッシュアルゴリズム、DHグループの1つの組み合わせを抽出してこれをIKE決定値として記憶手段に格納する抽出ステップと、
前記IPsec通信手段が、前記抽出ステップで抽出された暗号アルゴリズム、ハッシュアルゴリズム、DHグループを用いて前記対向装置とIPsec通信を行うIPsec通信ステップと、
有することを特徴とする通信方法。
【請求項5】
コンピュータを、請求項1乃至3のいずれか1項に記載の通信装置が有する各手段として機能させるためのプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate


【公開番号】特開2011−77931(P2011−77931A)
【公開日】平成23年4月14日(2011.4.14)
【国際特許分類】
【出願番号】特願2009−228651(P2009−228651)
【出願日】平成21年9月30日(2009.9.30)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】