(57)【要約】【課題】  IPsecやIKEにおいて、ユーザが指定しなければいけないパラメータは多岐に亘り、パラメータのうち１つでも一致しない場合には、通信が不可能となる。ユーザが容易に設定可能で、失敗の少ない方法が求められている。【解決手段】  送信側の通信装置は、IKEにおいて、暗号アルゴリズム、ハッシュアルゴリズム、ＤＨ（Diffie-Hellman）グループの全ての組み合わせを、受信側の通信装置に提案してネゴシエーションを開始する。受信側の通信装置は、その中から１つの組み合わせを選択する。送信側の通信装置は、その選択された１つの組み合わせにより、受信側の通信装置とIPsec通信を行う。【選択図】  図１
2011077931.tif 000002
【特許請求の範囲】
【請求項１】
IPsec (Internet Protocol Security) 通信を行うためのIPsec通信手段と、
IPsec SA (Security Association) を生成するためのネゴシエーションを行うIKE (Internet Key Exchange) を実行するIKE手段と、
を有し、
前記IKE手段は、
暗号アルゴリズム、ハッシュアルゴリズム、ＤＨ（Diffie-Hellman）グループの全ての組み合わせを対向装置に提案して前記ネゴシエーションを行うネゴシエーション手段と、
前記ネゴシエーションによってIPsec SAの生成に成功した場合、前記全ての組み合わせの中から、前記対向装置によって選択された暗号アルゴリズム、ハッシュアルゴリズム、ＤＨグループの１つの組み合わせを抽出してこれをIKE決定値として記憶手段に格納する抽出手段と、
を含み、
前記IPsec通信手段は、前記抽出手段により抽出された暗号アルゴリズム、ハッシュアルゴリズム、ＤＨグループを用いて前記対向装置とIPsec通信を行う
ことを特徴とする通信装置。
【請求項２】
前記ネゴシエーション手段は、前記記憶手段にIKE決定値が記憶されている場合は、当該IKE決定値に係る暗号アルゴリズム、ハッシュアルゴリズム、ＤＨグループの組み合わせを前記対向装置に提案し、前記記憶手段にIKE決定値が記憶されていない場合に、前記全ての組み合わせを前記対向装置に提案することを特徴とする請求項１に記載の通信装置。
【請求項３】
前記ネゴシエーション手段は、ユーザによって設定された暗号アルゴリズム、ハッシュアルゴリズム、ＤＨグループの１つの組み合わせを前記対向装置に提案するか、前記全ての組み合わせを前記対向装置に提案するかを、ユーザの指定に応じて選択する選択手段を含むことを特徴とする請求項１に記載の通信装置。
【請求項４】
IPsec (Internet Protocol Security) 通信を行うためのIPsec通信手段と、
IPsec SA (Security Association) を生成するためのネゴシエーションを行うIKE (Internet Key Exchange) を実行するIKE手段と、
を有する通信装置によって実行される通信方法であって、
前記IKE手段が、暗号アルゴリズム、ハッシュアルゴリズム、ＤＨ（Diffie-Hellman）グループの全ての組み合わせを対向装置に提案して前記ネゴシエーションを行うネゴシエーションステップと、
前記IKE手段が、前記ネゴシエーションによってIPsec SAの生成に成功した場合、前記全ての組み合わせの中から、前記対向装置によって選択された暗号アルゴリズム、ハッシュアルゴリズム、ＤＨグループの１つの組み合わせを抽出してこれをIKE決定値として記憶手段に格納する抽出ステップと、
前記IPsec通信手段が、前記抽出ステップで抽出された暗号アルゴリズム、ハッシュアルゴリズム、ＤＨグループを用いて前記対向装置とIPsec通信を行うIPsec通信ステップと、
有することを特徴とする通信方法。
【請求項５】
コンピュータを、請求項１乃至３のいずれか１項に記載の通信装置が有する各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＩＰ層でセキュアな通信を提供するIPsec（Internet Protocol Security）およびIKE（Internet Key Exchange）通信に関する通信方法およびシステムに関する。
【背景技術】
【０００２】
近年、コンピュータネットワークにおけるセキュリティ意識の高まりに伴い、様々なセキュアプロトコルが提案されている。その中の一つに、OSI参照モデルにおけるネットワーク層であるIP（Internet Protocol）層でのセキュアな通信を提供するIPsec（Internet Protocol Security）がある。
【０００３】
IPsecは暗号化通信にどのような暗号アルゴリズムを使用するかなどの通信機器間のセキュリティ設定をSA（Security Association）で実現している。また、通信する装置毎に、暗号化通信を行う／行わないなどのセキュリティポリシーをSP（Security Policy）で実現している。SAについては、鍵交換プロトコルであるIKE（Internet Key Exchange）を使用することにより、IPsec通信を行うそれぞれの機器に対して自動的に生成することが可能である。
【０００４】
IKEは、２段階の手続きを踏んでIPsec SAを生成する。まず、IKEの第１段階であるフェーズ１において、機器間でISAKMP（Internet Security Association Key Management Protocol） SAを折衝する。ISAKMP SAとは、IKEの第２段階であるフェーズ２で提供される暗号通信で使用する暗号アルゴリズムや鍵などを定義したものである。その後のフェーズ２において、ISAKMP SAを使用した暗号通信によって、IPsec SAを折衝する。
【０００５】
ISAKMP SAには暗号アルゴリズムや認証データの他に、使用しているISAKMP SAやIPsec SAを作り直すまでの期間を指定することも可能である。上記の期間を経過した場合には、現在使用しているIPsec SAを破棄し、再度IKEを用いて装置間で折衝を行うことにより、ISAKMP SAまたはIPsec SAを生成し直す。
【０００６】
IPsec通信において、機器間でIPsec SAが生成されない場合は、IPプロトコルでの通信を行うことが不可能となる。そのため、装置間でISAKMPおよびIPsecの設定値を一致させることが重要となる。
【０００７】
IPsec機能を提供するデバイスにおいて、従来、ユーザは、それぞれのデバイスで通信に使用する暗号アルゴリズムを設定し、IKEでネゴシエーションすることによって、デバイス間で使用する暗号アルゴリズムを一致させる必要がある。
【０００８】
IKEプロトコルにおいて、アルゴリズムを提案する側のイニシエータは複数のアルゴリズムを提案することが可能である。また、IKEプロトコルにおける提案受け入れ側のレスポンダはその中から一つを選択して、デバイス間で使用するアルゴリズムを決定する。
【０００９】
暗号化通信の先行技術として、例えば特許文献１がある。しかしながら、特許文献１は一般的な暗号化通信に対するものである。そのため、IPsecに適用するためにはIPsecの標準プロトコル以外に独自プロトコルを実装する必要がある。ゆえに、通信相手のデバイスも独自プロトコルに対応している必要があり、通信相手が限られるという問題がある。
【００１０】
また、他の問題の解決方法として、Microsoft Windows(登録商標）では、予めユーザ向けに設定値セットを用意してある。しかしながら、設定値セットは通信装置を開発しているメーカによって組み合わせが異なることが考えられる。また、新しい暗号アルゴリズムが登場した場合や古いアルゴリズムの暗号強度が低下したために使用が禁止された場合には、設定値セットが変更となることが考えられる。以上のような場合には、対応することができない。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開２００４−０３２５０２号公報
【発明の概要】
【発明が解決しようとする課題】
【００１２】
以上のように、IPsecやIKEにおいて、ユーザが指定しなければいけないパラメータは多岐に亘る。また、パラメータのうち１つの項目でも一致していない場合にはIKEの折衝に失敗し、通信が不可能となってしまう。そのため、ユーザが容易に設定可能であり、かつ失敗の少ない方法が求められている。
【００１３】
本発明は、上記課題を解決するためになされたものであり、ユーザが設定値を通信相手の設定値に合わせて個別に設定する必要をなくすことにより、ユーザの利便性を向上させる仕組みを提供することを目的とする。
【課題を解決するための手段】
【００１４】
本発明の一側面によれば、IPsec (Internet Protocol Security) 通信を行うためのIPsec通信手段と、IPsec SA (Security Association) を生成するためのネゴシエーションを行うIKE (Internet Key Exchange) を実行するIKE手段とを有し、前記IKE手段は、暗号アルゴリズム、ハッシュアルゴリズム、ＤＨ（Diffie-Hellman）グループの全ての組み合わせを対向装置に提案して前記ネゴシエーションを行うネゴシエーション手段と、前記ネゴシエーションによってIPsec SAの生成に成功した場合、前記全ての組み合わせの中から、前記対向装置によって選択された暗号アルゴリズム、ハッシュアルゴリズム、ＤＨグループの１つの組み合わせを抽出してこれをIKE決定値として記憶手段に格納する抽出手段とを含み、前記IPsec通信手段は、前記抽出手段により抽出された暗号アルゴリズム、ハッシュアルゴリズム、ＤＨグループを用いて前記対向装置とIPsec通信を行うことを特徴とする通信装置が提供される。
【発明の効果】
【００１５】
本発明によれば、ユーザが設定値を通信相手の設定値に合わせて個別に設定する必要がないため、ユーザの利便性を向上させることができる。
【図面の簡単な説明】
【００１６】
【図１】実施形態における暗号通信装置のモジュール構成図。
【図２】実施形態におけるIPsec処理を示すフローチャート。
【図３】実施形態におけるIKE処理を示すフローチャート。
【発明を実施するための形態】
【００１７】
以下、図面を参照して、本発明の好適な実施形態を説明する。
（実施形態１）
図１には、IPsec (Internet Protocol Security) 通信を行うことが可能な、１００で示されるIPsec通信装置Ａと、１１０で示される対向装置であるIPsec通信装置Ｂが示されている。図示のように、IPsec通信装置Ａは、主にネットワークモジュール１０１、IKE (Internet Key Exchange) モジュール１０２、記憶手段としての不揮発記憶領域１０３及び揮発記憶領域１０４を備える。なお、ネットワークモジュール１０１や、IKEモジュール１０２は、それぞれ、IPsec通信装置Ａが備えるＣＰＵが、ＲＯＭから読み出したプログラムを実行することによって実現される。また、IPsec通信装置ＡやIPsec通信装置Ｂは、パーソナルコンピュータ等の情報処理装置であってもよいし、複合機等の画像形成装置であってもよい。または、それらの装置に搭載される拡張装置であっても良い。
【００１８】
ネットワークモジュール１０１は、ＬＡＮ（Local Area Network）やＷＡＮ(Wide Area Network)などを介して、IPsec通信装置Ｂのような外部の通信装置とIPsec通信を行う機能を有する。一般的にこの種の機能は、ＯＳＩ参照モデルを基にしたプロトコルスタックにより構成される。一般的にIPsec機能を提供するモジュールは、プロトコルスタックのＩＰ層に含まれる。IKEモジュール１０２は、ネットワークモジュール１０１を使用して、IKEプロトコルを実行する機能を有する。具体的には、通信相手との間でISAKMP SA (Security Association) １０８やIPsec SA (Security Association) １０９の折衝を行う。
【００１９】
不揮発記憶領域１０３には、IKE／IPsec設定値１０５が保存されている。このIKE／IPsec設定値１０５は、IKE提案設定値およびIPsec提案設定値を含む。IKE提案設定値は、IKEプロトコルのフェーズ２で用いられる暗号アルゴリズム、ハッシュアルゴリズム、認証方法、ＤＨ（Diffie-Hellman）グループ、ISAKMP SA１０８の有効期間などから構成される。一方、IPsec提案設定値は、IPsec通信で用いられる暗号アルゴリズム、ハッシュアルゴリズム、IPsec SA１０９の有効期間などから構成される。なお、暗号アルゴリズム、ハッシュアルゴリズム、ＤＨグループは、一つの提案の中で複数選択することも可能である。
【００２０】
IKE／IPsec決定値１０６は、IKE決定値及びIPsec決定値を含む。IKE／IPsec決定値１０６は、IKE提案設定値およびIPsec提案設定値が複数選択されている場合に、IKEネゴシエーションの結果、複数の候補の中で決定された項目がどれであるかの情報を記憶している。例えば、ユーザがIPsec通信の暗号アルゴリズムの組み合わせとして、ＡＥＳ、３ＤＥＳを選択し、ハッシュアルゴリズムの組み合わせとして、ＭＤ５、ＳＨＡ−１を選択したとする。その場合は、IPsec提案設定値として、３ＤＥＳ、ＡＥＳ、ＭＤ５、ＳＨＡ−１を保持する。
【００２１】
また、提案候補として、ＡＥＳとＳＨＡ−１の組み合わせと、３ＤＥＳとＭＤ５の組み合わせを選択した場合には、それぞれの組み合わせを提案候補として保持する。上記のIPsec提案設定値を用いてIKEネゴシエーションを行った結果、暗号アルゴリズムにＡＥＳ、ハッシュアルゴリズムにＳＨＡ−１が決定されたとする。その場合は、IKE／IPsec決定値１０６としてＡＥＳ、ＳＨＡ−１を保持する。
【００２２】
IKEモジュール１０２は、IKEフェーズ１において、IKE提案設定値を用いてネゴシエーションを行い、装置間で整合性の取れたISAKMP SA１０８を生成する機能を有する。また、IKEモジュール１０２はIKEフェーズ２で、IPsec提案設定値を用いて、装置間で整合性の取れたIPsec SA１０９を生成する機能も有する。さらに、IKEモジュール１０２は、ISAKMP SA１０８およびIPsec SA１０９の生成以外にも、削除通知メッセージの送信処理を行う機能も有する。なお、IKEモジュール１０２により生成されたISAKMP SA１０８ならびに、IPsec SA１０９は揮発記憶領域１０４に格納される。
【００２３】
不揮発記憶領域１０３には、IPsec SP１０７が保存されている。IPsec SP１０７は、IPsec通信を適用する通信相手のＩＰやIPsecの適用／不適用に関するポリシー、IPsecを適用するプロトコルやポート番号などの情報によって構成される。一般的に、IKE提案設定値、IPsec提案設定値、IPsec SP１０７はユーザにより手動で設定される。
【００２４】
図２は、本実施形態におけるIPsec通信装置によるIPsec処理の一例を示すフローチャートである。IPsec通信装置Ａ内のアプリケーションは、外部の装置と通信を行うために、ネットワークモジュール１０１にＩＰパケットの生成を依頼する。ネットワークモジュール１０１は、ＩＰパケットを生成する前に、パケットの送り先ＩＰアドレスやプロトコルをIPsec SP１０７に設定されている値と比較し、そのパケットにIPsecを適用するかどうかを判断する（ステップＳ１００）。ステップＳ１００においてIPsecを適用しないと判断された場合には、ネットワークモジュール１０１はＩＰパケットを生成し（ステップＳ１０３）、通信相手の装置（ここでは、装置Ｃ）へＩＰパケットを送信する（ステップＳ１０４）。
【００２５】
ステップＳ１００においてIPsecを適用すると判断された場合には、ネットワークモジュール１０１はIPsec SA１０９に該当するものが存在するかどうかを確認する（ステップＳ１０１）。ステップＳ１０１において、該当するIPsec SA１０９が存在する場合には、ネットワークモジュール１０１はIPsec SA１０９を用いてパケットのデータ部分に暗号化を施し（ステップＳ１０２）、ＩＰパケットを生成する（ステップＳ１０３）。
【００２６】
その後、ネットワークモジュール１０１は、生成したＩＰパケットを通信相手の装置（ここでは、装置Ｂ）へ送信する（ステップＳ１０４）。ステップＳ１０１において、IPsec SA１０９が存在しない場合には、ネットワークモジュール１０１はIPsec SP１０７に設定されている通信装置との間でIPsec SA１０９を生成するために、IKEモジュール１０２を呼び出す。
【００２７】
図３は、本実施形態の通信装置におけるIKEフェーズ１処理の一例を示すフローチャートである。IKEモジュール１０２は、IKE決定値が存在するか否かを確認する（ステップＳ２００）。IKE決定値が存在しない場合には、IKEモジュール１０２は自装置が提供可能な、暗号アルゴリズム、ハッシュアルゴリズム、ＤＨ（Diffie-Hellman）グループの全ての組み合わせを生成する（ステップＳ２０２）。例えば、提供可能なものとして、ＡＥＳ、３ＤＥＳ、ＳＨＡ−１、ＤＨグループ１、ＤＨグループ２があった場合の全ての組み合わせは次の組み合わせとなる。ＡＥＳ、ＳＨＡ−１、ＤＨグループ１の組み合わせと、ＡＥＳ、ＳＨＡ−１、ＤＨグループ２の組み合わせと、３ＤＥＳ、ＳＨＡ−１、ＤＨグループ１の組み合わせと、３ＤＥＳ、ＳＨＡ−１、ＤＨグループ２の組み合わせである。
【００２８】
その後、上記全ての組み合わせを用いて、ネゴシエーションを開始する（ステップＳ２０３）。ステップＳ２００において、IKE決定値が存在する場合には、IKEモジュール１０２はそのIKE決定値に係る１つの組み合わせの提案を生成し（ステップＳ２０１）、ネゴシエーションを開始する（ステップＳ２０３）。
【００２９】
この処理により、一度ISAKMP SA１０８が生成された後に再度鍵の更新を行う場合には、提案する候補数を必要最小限にでき提案時のパケットサイズを小さく抑えることが可能となる。また、こうして提案候補数を少なくできることによって、提案を受信した側の処理も少なくなる。
【００３０】
IKEモジュール１０２は、ステップＳ２０３にてネゴシエーションを開始した後にネゴシエーションが終了し、ISAKMP SA１０８の生成に成功したかどうかを確認する（ステップＳ２０４）。ISAKMP SA１０８の生成に成功した場合には、IKEモジュール１０２はISAKMP SA１０８から暗号アルゴリズムとハッシュアルゴリズムとＤＨグループとを抽出し、IKE決定値として保存する（ステップＳ２０５）。
【００３１】
なお、以前のIKE決定値が存在した場合にはその値を更新する。ステップＳ２０４において、ISAKMP SA１０８の生成に失敗した場合には、IKEモジュール１０２はネゴシエーションで提案した候補がIKE決定値から生成された提案であったかどうかを確認する（ステップＳ２０６）。
【００３２】
IKE決定値から生成された提案候補であった場合には、IKEモジュール１０２は上記全ての組み合わせから提案を生成し（ステップＳ２０７）、ネゴシエーションを開始する（ステップＳ２０３）。この処理により、IPsec通信相手のIKE提案設定値１０５が以前の値から変更されていた場合であっても、自装置のIKE決定値を更新することができ、IKEネゴシエーションの失敗を防ぐことが可能となる。ステップＳ２０６において、IKE決定値から生成された提案候補でなかった場合には、IKEモジュール１０２はIKE処理を終了する。
【００３３】
以上、図３に基づき、IKEフェーズ１の処理について説明したが、IKEフェーズ２においても、IPsec提案設定値、IPsec決定値を用いるなどの差異はあるが同様のフローで処理を行うことができる。ここでは詳細の説明は省略する。IKEモジュール１０２はIKEフェーズ１およびフェーズ２の処理を行うことで、最終的にIPsec SA１０９を生成する。
【００３４】
（実施形態２）
上述の実施形態１では、ステップＳ２００において、IKE決定値が存在するかどうかを判断し、提案候補として、IKE決定値または全ての組み合わせを用いた。以下では、実施形態１の提案決定方法を「自動設定方式」といい、一方、一般的にIPsec通信装置で使用されているユーザが手動で提案候補を設定する方式を「手動設定方式」という。これら自動設定方式と手動設定方式とを、ユーザの指定に応じて選択できるようにしてもよい。
【００３５】
また、自動設定方式として、実施形態１のステップＳ２０２における全ての組み合わせを一度に提案する方法以外にも、一つの提案候補を成功するまで繰り返し提案し続けることも可能である。例えば、提供可能なものとして、ＡＥＳ、３ＤＥＳ、ＳＨＡ−１、ＤＨグループ１、ＤＨグループ２があった場合の全ての組み合わせは次の組み合わせとなる。ＡＥＳ、ＳＨＡ−１、ＤＨグループ１の組み合わせと、ＡＥＳ、ＳＨＡ−１、ＤＨグループ２の組み合わせと、３ＤＥＳ、ＳＨＡ−１、ＤＨグループ１の組み合わせと、３ＤＥＳ、ＳＨＡ−１、ＤＨグループ２の組み合わせである。
【００３６】
実施形態１では、上記の４つの提案候補を一度に相手に提案するのに対して、まず、ＡＥＳ、ＳＨＡ−１、ＤＨグループ１の組み合わせを提案する。提案に失敗した場合は、ＡＥＳ、ＳＨＡ−１、ＤＨグループ２の組み合わせを提案し、さらに失敗した場合には、３ＤＥＳ、ＳＨＡ−１、ＤＨグループ１を提案し、成功するまで、または、全ての提案候補を提案し終わるまで繰り返す。
【００３７】
本発明では、上記全ての提案候補の組み合わせを一度に提案する手法、または上記成功するまで提案を繰り返す手法をユーザに選択させることも可能である。
【００３８】
（他の実施形態）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
2011077931.tif 000003
【図２】
2011077931.tif 000004
【図３】
2011077931.tif 000005