(57)【要約】【課題】パケットを中継するルータ装置においてパケット改変が起こり得るアクティブパケット方式によるネットワークにおいて、パケットの認証および暗号化を効率的に行なう。【解決手段】アクティブパケット送信者が、ルータ装置にあらかじめ固有の鍵を送付し、送信者がアクティブパケット送信する際には、前記鍵を用いた認証ダイジェストの付加あるいは暗号化を行ない、ルータ装置は前記鍵を用いて認証ダイジェストの検証あるいは復号化を行なった上でプログラム処理を実行する。ルータ装置においてパケットの改変が行なわれた場合、ルータ装置は前記鍵を用いて認証ダイジェストの再計算あるいは再暗号化を行なう。加えて、パケットを複数の部分に分けて認証ダイジェストの計算あるいは暗号化を行なうことで、パケットの認証あるいは暗号化による保護を効率的に実現する。【選択図】　　　　図１
2004015582.tif 000002
【特許請求の範囲】
【請求項１】
複数のルータ装置を有線または無線により接続することによって構成される通信ネットワークであり、パケットがルータ装置を通過する際に、当該パケットに添付されたプログラムが当該ルータ装置上で実行され、その実行結果によってパケットの書き換えが起こり得るアクティブパケット方式によるネットワークにおいて、
パケットの送信者は、事前に、固有の鍵を含む鍵パケットを当該パケットの配送経路上のルータ装置に配布し、
前記鍵パケットを受信したルータ装置は、鍵を記憶しておき、
その後、前記送信者は、パケットを送信する際には、前記鍵を用いて、パケットの全体または指定部分の認証ダイジェストを計算して各パケットに付加した上で、送信し、
前記ルータ装置は、認証ダイジェストを付加されたパケットを中継する際、記憶した前記鍵を用いて、認証ダイジェストの検証を行ない、
認証ダイジェストの検証に成功した場合にのみ、当該パケットに関するプログラムを実行し、プログラム処理の結果、当該パケットの改変が行なわれた場合には、前記鍵を用いて、当該パケットに関する認証ダイジェストの再計算を行ない、当該パケットの認証ダイジェストとして上書きした上で、転送を行なう
ことを特徴とするパケット認証方法。
【請求項２】
請求項１に記載のパケット認証方法であって、
認証ダイジェストの計算が、パケットを分割した各部分ごとに行なわれ、それぞれパケットに付加され、
ルータ装置は、プログラム実行により変更が行なわれたパケットの分割部分に関する認証ダイジェストの再計算と上書きを行なう
ことを特徴とするパケット認証方法。
【請求項３】
複数のルータ装置を有線または無線により接続することによって構成される通信ネットワークであり、パケットがルータ装置を通過する際に、当該パケットに添付されたプログラムが当該ルータ装置上で実行され、その実行結果によってパケットの書き換えが起こり得るアクティブパケット方式によるネットワークにおいて、
パケットの送信者は、事前に、固有の鍵を含む鍵パケットを当該パケットの配送経路上の中継ルータに配布し、
前記鍵パケットを受信したルータ装置は、鍵を記憶しておき、
その後、前記送信者は、パケットを送信する際には、前記鍵を用いて、パケットの全体または指定部分の暗号化を行なった上で、送信し、
前記ルータ装置は、暗号化されたパケットを中継する際、記憶した前記鍵を用いて、復号化を行ない、
復号化に成功した場合にのみ、当該パケットに関するプログラムを実行し、
プログラム処理の結果、当該パケットの改変が行なわれた場合には、前記鍵を用いて、当該パケットの再暗号化を行なった上で、転送を行なう
ことを特徴とするパケット暗号化方法。
【請求項４】
請求項３に記載のパケット暗号化方法であって、
暗号化の処理が、パケットを分割した各部分ごとに行なわれ、
ルータ装置は、プログラム実行により変更が行なわれたパケットの分割部分に関する再暗号化を行なう
ことを特徴とするパケット暗号化方法。
【請求項５】
パケットがルータ装置を通過する際に、当該パケットに添付されたプログラムが当該ルータ装置上で実行され、その実行結果によってパケットの書き換えが起こり得るアクティブパケット方式のネットワークにおけるルータ装置であって、
第一の鍵を格納する第一の記憶領域と、
第二の鍵を格納する第二の記憶領域と、
を設け、
第一の鍵によって暗号化された第二の鍵の情報を有する鍵配布パケットと第二の鍵によって認証されたアクティブパケットを識別するパケット識別機能と、
前記鍵配布パケット内の第二の鍵の情報を、前記第一の記憶領域に予め格納された第一の鍵を参照しながら復号化し、第二の鍵を前記第二の記憶領域に格納する鍵格納機能と、
前記第二の記憶領域に格納された前記第二の鍵を用いて、前記第二の鍵によって認証されたアクティブパケットの全体または指定の部分の認証ダイジェストの検査を行なう検査機能と、
前記認証されたアクティブパケットについて認証の検査に成功した場合にのみ、当該パケットに関するプログラムを実行するアクティブパケット処理機能と、当該パケットに関するプログラムを実行した結果、当該パケットの改変が行われた場合に、当該パケットの全体または指定された部分について、前記第二鍵を用いて、認証ダイジェストの再計算を行い、当該パケットの認証ダイジェストとして上書きする認証機能と、
を実現する手段を設けたルータ装置。
【請求項６】
パケットがルータ装置を通過する際に、当該パケットに添付されたプログラムが当該ルータ装置上で実行され、その実行結果によってパケットの書き換えが起こり得るアクティブパケット方式のネットワークにおけるルータ装置であって、
第一の鍵を格納する第一の記憶領域と、
第二の鍵を格納する第二の記憶領域と、
を設け、
第一の鍵によって暗号化された第二の鍵の情報を有する鍵配布パケットと第二の鍵によって暗号化されたアクティブパケットと識別するパケット識別機能と、
前記鍵配布パケット内の第二の鍵の情報を、前記第一の記憶領域に予め格納された第一の鍵を参照しながら復号化し、第二の鍵を前記第二の記憶領域に格納する鍵格納機能と、
前記第二の記憶領域に格納された前記第二の鍵を用いて、前記第二の鍵によって暗号化されたアクティブパケットの全体または指定の部分の復号化を行なう復号化機能と、
前記暗号化されたアクティブパケットについて復号化に成功した場合にのみ、当該パケットに関するプログラムを実行するアクティブパケット処理機能と、
当該パケットに関するプログラムを実行した結果、当該パケットの改変が行われた場合に、当該パケットの全体または指定された部分について、前記第二鍵を用いて、暗号化を行なう暗号化機能と、
を実現する手段を設けたルータ装置。
【請求項７】
パケットがルータ装置を通過する際に、当該パケットに添付されたプログラムが当該ルータ装置上で実行され、その実行結果によってパケットの書き換えが起こり得るアクティブパケット方式のネットワークにおけるルータ装置の処理方法であって、
第一の鍵によって暗号化された第二の鍵の情報を有する鍵配布パケットと第二の鍵によって認証されたアクティブパケットを識別するステップと、
前記鍵配布パケット内の第二の鍵の情報を、第一の記憶領域に予め格納された第一の鍵を参照しながら復号化し、第二の鍵を第二の記憶領域に格納するステップと、
前記第二の記憶領域に格納された前記第二の鍵を用いて、前記第二の鍵によって認証されたアクティブパケットの全体または指定の部分の認証ダイジェストの検査を行なうステップと、
前記認証されたアクティブパケットについて認証の検査に成功した場合にのみ、当該パケットに関するプログラムを実行するステップと、
当該パケットに関するプログラムを実行した結果、当該パケットの改変が行われた場合に、当該パケットの全体または指定された部分について、前記第二鍵を用いて、認証ダイジェストの再計算を行い、当該パケットの認証ダイジェストとして上書きするステップと、
を含むルータ装置の処理方法。
【請求項８】
パケットがルータ装置を通過する際に、当該パケットに添付されたプログラムが当該ルータ装置上で実行され、その実行結果によってパケットの書き換えが起こり得るアクティブパケット方式のネットワークにおけるルータ装置の処理方法であって、
第一の鍵によって暗号化された第二の鍵の情報を有する鍵配布パケットと第二の鍵によって暗号化されたアクティブパケットを識別するパケット識別機能と、
前記鍵配布パケット内の第二の鍵の情報を、前記第一の記憶領域に予め格納された第一の鍵を参照しながら復号化し、第二の鍵を第二の記憶領域に格納する鍵格納機能と、
前記第二の記憶領域に格納された前記第二の鍵を用いて、前記第二の鍵によって暗号化されたアクティブパケットの全体または指定の部分の復号化を行なう復号化機能と、
前記暗号化されたアクティブパケットについて復号化に成功した場合にのみ、当該パケットに関するプログラムを実行するアクティブパケット処理機能と、
当該パケットに関するプログラムを実行した結果、当該パケットの改変が行われた場合に、当該パケットの全体または指定された部分について、前記第二鍵を用いて、暗号化を行なう暗号化機能と、
を実現する手段を設けたルータ装置の処理方法。
【請求項９】
パケットがルータ装置を通過する際に、当該パケットに添付されたプログラムが当該ルータ装置上で実行され、その実行結果によってパケットの書き換えが起こり得るアクティブパケット方式のネットワークにおけるルータ装置のためのプログラムであって、
第一の鍵によって暗号化された第二の鍵の情報を有する鍵配布パケットと第二の鍵によって認証されたアクティブパケットを識別するパケット識別機能と、
前記鍵配布パケット内の第二の鍵の情報を、第一の記憶領域に予め格納された第一の鍵を参照しながら復号化し、第二の鍵を第二の記憶領域に格納する鍵格納機能と、
前記第二の記憶領域に格納された前記第二の鍵を用いて、前記第二の鍵によって認証されたアクティブパケットの全体または指定の部分の認証ダイジェストの検査を行なう検査機能と、
前記認証されたアクティブパケットについて認証の検査に成功した場合にのみ、当該パケットに関するプログラムを実行するアクティブパケット処理機能と、
当該パケットに関するプログラムを実行した結果、当該パケットの改変が行われた場合に、当該パケットの全体または指定された部分について、前記第二鍵を用いて、認証ダイジェストの再計算を行い、当該パケットの認証ダイジェストとして上書きする認証機能と、
を実現させるためのプログラム。
【請求項１０】
パケットがルータ装置を通過する際に、当該パケットに添付されたプログラムが当該ルータ装置上で実行され、その実行結果によってパケットの書き換えが起こり得るアクティブパケット方式のネットワークにおけるルータ装置のためのプログラムであって、
第一の鍵によって暗号化された第二の鍵の情報を有する鍵配布パケットと第二の鍵によって暗号化されたアクティブパケットを識別するパケット識別機能と、
前記鍵配布パケット内の第二の鍵の情報を、第一の記憶領域に予め格納された第一の鍵を参照しながら復号化し、第二の鍵を第二の記憶領域に格納する鍵格納機能と、
前記第二の記憶領域に格納された前記第二の鍵を用いて、前記第二の鍵によって暗号化されたアクティブパケットの全体または指定の部分の復号化を行なう復号化機能と、
前記暗号化されたアクティブパケットについて復号化に成功した場合にのみ、当該パケットに関するプログラムを実行するアクティブパケット処理機能と、
当該パケットに関するプログラムを実行した結果、当該パケットの改変が行われた場合に、当該パケットの全体または指定された部分について、前記第二鍵を用いて、暗号化を行なう暗号化機能と、
を実現させるためのプログラム。
【請求項１１】
請求項９または請求項１０に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
パケットにプログラムを添付し、ルータ装置上でプログラムを解釈・実行することで、当該パケットの転送方法の変更、当該パケットの書換え、またはルータ装置の設定の変更などが行なわれるアクティブパケット（またはカプセル）方式のアクティブネットワークにおけるルータ装置内の処理に関する。とくに、当該パケット上のヘッダ、プログラム、ペイロード領域の書換えを行なう場合のパケット内容の認証または暗号化による秘匿に関する。
【０００２】
【従来の技術】
アクティブパケット方式は、各パケットにプログラムを添付してネットワークに注入し、転送経路上のルータ装置がそのパケットを適宜解釈・実行する方式である。パケット上のプログラムにより、当該パケットあるいは後続のパケットについて、転送方法の変更やパケットの書き換え、または、ルータ装置の設定の変更などを行う。とくに、パケット内容の変更はアクティブパケット方式に特有の現象であり、パケット処理の結果を経路下流のルータ装置あるいは受信者に通知し、これによりネットワーク内でのデータの分散処理を可能にするという特徴を持っている。アクティブパケットが広く用いられるためには、パケットの処理が信頼できる装置によってのみ行なわれることを保証する機構が必要となる。このためには、受信者だけでなく各中継ノードにおいて、パケットの認証あるいは暗号化を行なうことが考えられる。パケットの認証および暗号化のための鍵は、アプリケーションのフロー毎など、細かく一時的に設定できることが望ましい。
【０００３】
ネットワークで転送されるパケットの認証および暗号化による秘匿について、いくつかの技術が提案・使用されている。インタネット・プロトコルに関する標準的なセキュリティ手順であるＩＰ　ｓｅｃｕｒｉｔｙ（ＲＦＣ２４０１，２４０２，２４０６）は、パケットの送信者（または送信者近くのセキュリティ・ゲイトウェイ）と受信者（または受信者近くのセキュリティ・ゲイトウェイ）の間で、パケットの認証あるいは暗号化を行う方式である。ＩＰ　ｓｅｃｕｒｉｔｙは、エンド・トウ・エンドでのパケットの認証および暗号化を対象としたものであり、転送途中でのパケット改変は想定されていない。中継ルータは認証あるいは暗号化に必要な鍵を保持していないため、中継ノードでの認証や暗号化を行なうことができない。
【０００４】
また、ＩＰ　ｓｅｃｕｒｉｔｙでは、認証または暗号化はパケット全体を対象として行なわれる。パケットの一部分のみを選択的に認証または暗号化することはできない。
【０００５】
ＩＰ　ｓｅｃｕｒｉｔｙを経路上のルータ装置間の各ホップにおいて使用した場合、またはＩＥＥＥ８０２．１１のＷＥＰに代表されるようなリンクレイヤの暗号化技術を用いた場合、中継ルータでの認証あるいは暗号化は可能である。しかし、この場合、認証および暗号化は任意のルータで可能であり、アクティブパケットの処理を信頼できる中継ルータのみに制限することができない。
【０００６】
ＰＫＩ（Ｐｕｂｌｉｃ　Ｋｅｙ　Ｉｎｆｒａｓｔｒｕｃｔｕｒｅ；公開鍵基盤）のような手段を用いて、あるいはその他のオフライン手段により、信頼できる中継ルータに鍵を配布する手法が考えられる。この場合、信頼できる中継ルータだけがパケットの認証および暗号化を可能とすることができる。しかし、アプリケーションのフロー毎など細かい単位で鍵を設定する場合、鍵配布の手間が大きくなるという問題があった。
【０００７】
【発明が解決しようとする課題】
本発明は上記を鑑みて考案されたものであり、アクティブパケット方式において、ＰＫＩ（Ｐｕｂｌｉｃ　Ｋｅｙ　Ｉｎｆｒａｓｔｒｕｃｔｕｒｅ；公開鍵基盤）のような手段を用いて、パケットの認証あるいは暗号化を信頼できる一部の中継ルータのみで行なう場合に、アプリケーションのフロー毎に異なる認証あるいは暗号化を行うための鍵を効率的に配布する機構を提供する。また、パケットの一部分のみを指定して認証あるいは暗号化するための機構を提供することで、認証または暗号化の計算量を削減し、高速な処理を行なうことができる。
【０００８】
【課題を解決するための手段】
上記目的を達成するために、各ルータ装置には、アクティブパケットの処理を行なう機構（以下、アクティブパケット処理機能）、パケットの転送を行なう機能（パケット転送機能）に加えて、送信者毎に規定される鍵（以下、ホスト鍵という）を格納する第一の記憶領域、アプリケーションのフロー毎に規定される鍵（以下、フロー鍵という）を格納する第二の記憶領域を設ける。
【０００９】
さらに、各ルータ装置には、到着パケットの識別機能を設け、送信者のホスト鍵によって暗号化されたフロー鍵の情報を有するパケット（以下、フロー鍵配布パケット）、アプリケーションのデータを格納しフロー鍵によって認証または暗号化されたパケット（以下、データパケット）を識別する機能を設ける。
【００１０】
さらに、各ルータ装置には、前記フロー鍵配布パケット内のフロー鍵の情報を、前記第一の記憶領域を参照しながら復号化し前記第二の記憶領域に格納する機能（以下、鍵格納機能）を設ける。
【００１１】
さらに、各ルータ装置には、前記データパケットそれぞれについて、当該パケットに書かれた認証あるいは暗号化の対象となっているパケットの部分に関する情報を参照し、前記第二の記憶領域に記憶されたフロー鍵を用いて、認証の検査または復号化を行なう機能（以下、検査復号化機能）を設ける。
【００１２】
さらに、各ルータ装置には、当該ルータが送出しようとするパケットについて、当該パケットの指定された部分について、フロー鍵を用いて、認証または暗号化を行なう機能（以下、認証暗号化機能）を設ける。
【００１３】
【発明の実施の形態】
次に、本発明について図面を参照して説明する。本実施例ではパケットの形式としてインタネットで用いられるＩＰ（Ｉｎｔｅｒｎｅｔ　Ｐｒｏｔｏｃｏｌ）パケットを用いる。
【００１４】
図１は本実施例に現れるＩＰパケットの構成を示したものである。ＩＰパケットは発信元ＩＰアドレスや宛先ＩＰアドレス等が書かれたＩＰヘッダ部分１１０とＩＰペイロード１２０からなる。本実施例では、本発明による処理の対象となるパケットはＩＰヘッダのプロトコルフィールドの値が、１０７であることにより識別される。
【００１５】
ＩＰペイロード部分の先頭に、属性を示す領域を設け、その属性値が１の場合は、フロー鍵配布パケット、２の場合は認証されたアクティブパケット（以下、認証パケット）、３の場合は暗号化されたアクティブパケット（以下、暗号化パケット）であることを示す。属性値が０の場合は、認証あるいは暗号化されないアクティブパケットを示す。各パケットのＩＰペイロード部分は、セキュリティヘッダ部分とプログラム部分、データ部分からなる。ただし、フロー鍵配布パケットはプログラム部分を持たない。各属性のパケットに共通なセキュリティヘッダ部分のフィールドであるヘッダ長は、その値によりセキュリティヘッダの長さを示す。
【００１６】
フロー鍵配布パケット１３０のセキュリティヘッダには、属性（＝１）、ヘッダ長に加え、当該パケットの送信者ホストの識別子、送信者ホストにより暗号化されたフロー鍵の情報が書かれている。フロー鍵の情報は、固定長のフロー鍵識別子、フロー鍵の値とフロー鍵付加情報よりなる。フロー鍵付加情報は、フロー鍵の有効期限やフロー鍵を用いた認証および暗号化のアルゴリズムを指定するものである。これらフロー鍵の情報はビット列として連結され、送信者ホスト固有のホスト鍵により暗号化されてフロー鍵配布パケットのセキュリティヘッダに書き込まれる。フロー鍵配布パケット末尾には、パケット宛先の受信者で利用可能なユーザデータが付加される。このユーザデータは無くても良い。ユーザデータは、たとえば、フロー鍵の配布が完了したことを受信者に通知する際の文字列メッセージとして利用できる。
【００１７】
認証パケット１４０のセキュリティヘッダは、属性（＝２）、ヘッダ長に加え、シーケンス番号、フロー鍵識別子、構造情報、ダイジェストのフィールドを持つ。これらのあとに、アクティブパケットとしてのプログラム部分、ユーザデータ部分が付加される。シーケンス番号は、認証パケットの第三者による再送攻撃を検出するためのものであり、フローに属する一連のパケットについて規則的に変化する（通常は、パケットごとに一つずつ増加する）値を記入する。構造情報により指定されるパケットの部分についてフロー鍵識別子により指定される鍵を用いてＨＭＡＣ−ＭＤ５などのアルゴリズムにより計算したダイジェストデータがダイジェストフィールドの値として記入されている。前記シーケンス番号は、ダイジェストデータ計算におけるパラメータ（ソルト）として使用される。構造情報の指定に関する実施例は後述する。
【００１８】
暗号化パケット１５０のセキュリティヘッダは、属性（＝３）、ヘッダ長に加え、シーケンス番号、フロー鍵識別子、構造情報のフィールドを持つ。シーケンス番号は、暗号化パケットの第三者による再送攻撃を検出するためのものであり、フローに属する一連のパケットについて規則的に変化する（通常は、パケットごとに一つずつ増加する）値を記入する。セキュリティヘッダに続けて、構造情報により指定されるプログラムまたはデータまたはその両方が、フロー鍵識別子により指定される鍵を用いてＤＥＳなど秘密鍵型の暗号化アルゴリズムにより暗号化されて、パケットに付加される。シーケンス番号は、暗号化におけるパラメータ（ソルト）として使用される。構造情報の指定に関する実施例は後述する。
【００１９】
認証あるいは暗号化されていないアクティブパケット１６０は、前記の各種パケットと区別するために、属性（＝０）、ヘッダ長のみからなるセキュリティヘッダを持つ。セキュリティヘッダに続けて、アクティブパケットのプログラムとデータが付加される。
【００２０】
図２は本実施例におけるルータ装置の構成と処理の流れを示したものである。本実施例におけるルータ装置２００は、通常のＩＰルータ装置と同様に他のＩＰルータ装置または発信者装置からのＩＰパケットを受信するパケット受信機能２０１と他のＩＰルータ装置または受信者装置へのＩＰパケットの送信を行うパケット送信機能２０２を有する。ルータ装置は、パケット識別機能２１０、ホスト鍵記憶領域２２０、フロー鍵格納機能２３０、フロー鍵記憶領域２４０、検査復号化機能２５０、アクティブパケット処理機能２６０、認証暗号化機能２７０を有する。
【００２１】
図２において、ａ１からａ８で示される矢印は、フロー鍵配布パケットの処理の流れを示す。ｂ１からｂ９で示される矢印は、アクティブパケット（認証または暗号化されたものとそうでないものの双方）に関する処理の流れを示す。ｃ１からｃ３で示される矢印は、フロー鍵配布パケットやアクティブパケットでない通常のパケット（ＩＰヘッダのプロトコルフィールドが１０７でない）の処理の流れを示す。
【００２２】
パケット識別機能は、ＩＰヘッダのプロトコルフィールドの値およびセキュリティヘッダの属性値によって、各種類のアクティブパケットの識別をおこなう。
【００２３】
ルータ装置は、外部にある共有鍵基盤またはその他のオフライン手段２９９により、到着したフロー鍵配布パケットの発信者に対応するホスト鍵に関する情報を、事前にまたは動的にホスト鍵記憶領域に格納する（ａ５）。ホスト鍵記憶領域は、図３に示されるように、フロー鍵配布パケットの発信者となるホストの識別子、そのホスト鍵の値、ホスト鍵の寿命や使用すべき暗号化アルゴリズムなどのホスト鍵付加情報の組を記憶する。
【００２４】
パケット識別機能により識別されたフロー鍵配布パケット（属性＝１）は、パケット送信機能に転送される（ａ７）が、あわせてパケットの複製がフロー鍵格納機能により処理される（ａ３）。フロー鍵格納機能は、当該フロー鍵配布パケットに記載されたホスト識別子に関して、ホスト鍵記憶領域の参照を行い、当該ホスト識別子に対応付けられたホスト鍵を獲得する（ａ４）。次に、得られたホスト鍵を用いて、当該フロー鍵配布パケットに書かれた暗号化されたフロー鍵の情報を復号化し、フロー鍵識別子、フロー鍵の値、フロー鍵付加情報を復元する。復元されたフロー鍵の情報はフロー鍵記憶領域に格納される（ａ６）。パケットに記載されたホスト識別子に関する情報がホスト鍵記憶領域への参照により得られない場合、当該フロー鍵の情報は、フロー鍵記憶領域に格納されない。
【００２５】
フロー鍵記憶領域は図４に示されるように、フロー鍵の識別子、そのフロー鍵の値、フロー鍵の寿命や使用すべき認証および暗号化アルゴリズムなどのフロー鍵付加情報の組を記憶する。
【００２６】
パケット識別機能により識別されたアクティブパケット（属性＝２または３または０）は、検査復号化機能により処理される（ｂ３）。
【００２７】
認証パケット（属性＝２）について、検査復号化機能は、当該パケットのセキュリティヘッダ内に記載されたフロー鍵識別子に関して、フロー鍵記憶領域の参照を行い、当該フロー鍵識別子に対応付けられたフロー鍵を獲得する（ｂ４）。当該フロー鍵識別子に関する記述がフロー鍵記憶領域に存在しない場合、当該認証パケットは破棄される。当該フロー鍵識別子に関する記述がフロー鍵記憶領域に存在する場合、当該フロー鍵を用いて、ＨＭＡＣ−ＭＤ５などのアルゴリズムを用いて、セキュリティヘッダ内の構造情報の値に応じたパケットの一部のダイジェストを計算する。得られたダイジェストを、セキュリティヘッダに記載されているダイジェストと比較し、一致した場合に当該パケットに関してアクティブパケット処理機能を起動する（ｂ５）。二つのダイジェストが一致しない場合、当該認証パケットは破棄される。
【００２８】
暗号化パケット（属性＝３）について、検査復号化機能は、当該パケットのセキュリティヘッダ内に記載されたフロー鍵識別子に関して、フロー鍵記憶領域の参照を行い、当該フロー鍵識別子に対応付けられたフロー鍵を獲得する（ｂ４）。当該フロー鍵識別子に関する記述がフロー鍵記憶領域に存在しない場合、当該暗号化パケットは破棄される。当該フロー鍵識別子に関する記述がフロー鍵記憶領域に存在する場合、当該フロー鍵を用いて、ＤＥＳなどの暗号化アルゴリズムを用いて、セキュリティヘッダ内の構造情報の値を参照しながら、暗号化されたパケット部分の復号を行う。復号されたパケットは、アクティブパケット処理機能に送られる（ｂ５）。
【００２９】
認証または暗号化されていない属性＝０のアクティブパケットは、そのまま、アクティブパケット処理機能に送られる（ｂ５）。
【００３０】
アクティブパケット処理機能は、パケットに搭載されたプログラムを実行する。実行の結果、ルータの設定等の変更、当該パケットのヘッダやプログラム、データの変更、当該パケットの（一回以上の）再転送などが、起こりうる。
【００３１】
再転送が行われるアクティブパケットは、認証暗号化機能により、当該パケットのセキュリティヘッダの属性に応じた処理を受ける。
【００３２】
認証パケット（属性＝２）の場合、認証暗号化機能は、当該パケットのセキュリティヘッダ内に記載されたフロー鍵識別子に関して、フロー鍵記憶領域の参照を行い、当該フロー鍵識別子に対応付けられたフロー鍵を獲得する（ｂ７）。当該フロー鍵識別子に関する記述がフロー鍵記憶領域に存在しない場合、当該認証パケットは破棄される。当該フロー鍵識別子に関する記述がフロー鍵記憶領域に存在する場合、当該フロー鍵を用いて、ＨＭＡＣ−ＭＤ５などのアルゴリズムを用いて、セキュリティヘッダ内の構造情報の値に応じたパケットの一部のダイジェストを計算する。得られたダイジェストをセキュリティヘッダのダイジェストフィールドに上書きしたのち、パケットをパケット送信機能に引き渡す。
【００３３】
暗号化パケット（属性＝３）について、認証暗号化機能は、当該パケットのセキュリティヘッダ内に記載されたフロー鍵識別子に関して、フロー鍵記憶領域の参照を行い、当該フロー鍵識別子に対応付けられたフロー鍵を獲得する（ｂ７）。当該フロー鍵識別子に関する記述がフロー鍵記憶領域に存在しない場合、当該暗号化パケットは破棄される。当該フロー鍵識別子に関する記述がフロー鍵記憶領域に存在する場合、当該フロー鍵を用いて、ＤＥＳなどの暗号化アルゴリズムを用いて、セキュリティヘッダ内の構造情報の値を参照しながら、パケット部分の暗号化を行ったのち、パケットをパケット送信機能に引き渡す。
【００３４】
認証または暗号化されていない属性＝０のアクティブパケットは、そのまま、パケット送信機能に引き渡される。
【００３５】
パケット送信機能は、通常のＩＰルータ装置におけるものと同様に、送付すべきパケットの宛先ＩＰアドレスの値に基づき、ＩＰ経路表を参照して、次転送先のルータ装置または受信者に、当該パケットを送付する。
【００３６】
認証パケットのセキュリティヘッダに記載される構造情報は、パケットのどの部分に関して、認証のためのダイジェストが計算され、セキュリティヘッダのダイジェストフィールドに書き込まれるかを指定する。その様子を図５に示す。構造情報にヘッダが指定された場合（５−１）、ＩＰヘッダおよびセキュリティヘッダのダイジェストが計算される。構造情報にプログラムが指定された場合（５−２）、アクティブパケットのプログラム部分のダイジェストが計算される。構造情報にデータが指定された場合（５−３）、アクティブパケットのデータ部分のダイジェストが計算される。構造情報に全体が指定された場合（５−４）、アクティブパケットの全体のダイジェストが計算される。ただし、ダイジェスト計算の対象にヘッダが含まれる５−１および５−４の場合、通常のＩＰルータで書き換えの対象となるＩＰ　ＴＴＬや当該ダイジェストフィールド自体は０が埋められていると見倣して、ダイジェストの計算が行われる。
【００３７】
暗号化パケットのセキュリティヘッダに記載される構造情報は、パケットのどの部分が暗号化されるかを指定する。その様子を図６に示す。構造情報にプログラムが指定された場合（６−１）、アクティブパケットのプログラム部分の暗号化が行われる。構造情報にデータが指定された場合（６−２）、アクティブパケットのデータ部分の暗号化が行われる。構造情報にプログラムとデータ双方が指定された場合（６−３）、アクティブパケットのプログラム部分とデータ部分の暗号化が行われる。
【００３８】
以上述べた実施例のうち、フロー鍵配布パケットおよび認証パケットに関する記述が、請求項１の発明に対応する。
【００３９】
以上述べた実施例のうち、フロー鍵配布パケットおよび暗号化パケットに関する記述が、請求項３の発明に対応する。
【００４０】
次に、請求項２、４の発明に関して図７を用いて説明する。アクティブパケットにおいて、前述のセキュリティヘッダを二つ以上組み合わせられるパケットヘッダ形式を使用する。図７においては簡単のために、属性および構造情報、認証ダイジェスト（属性＝１の場合）のみを図中に示している。この場合に、７−１のようにパケット中の二つの部分を独立に認証し、または７−２のようにパケット中の二つの部分を独立に暗号化し、または７−３のようにパケット中の二つの部分を独立に認証または暗号化することが可能である。さらに、３つ以上のセキュリティヘッダを利用できるように拡張することは容易である。
【００４１】
また、前記実施例における各機能はプログラムによって実現することができ、そのプログラムを記録媒体に記録することができることは明らかである。請求項５〜１０の第一の鍵、第一の記憶領域、第二の鍵、第二の記憶領域は、それぞれ前記実施例のホスト鍵、ホスト鍵記憶領域、フロー鍵、フロー鍵記憶領域に対応する。
【００４２】
以上、本発明者によってなされた発明を、前記実施例に基づき具体的に説明したが、本発明は、前記実施例に限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは勿論である。
【００４３】
【発明の効果】
以上説明したように、本発明により、アクティブパケット方式において、ＰＫＩ（Ｐｕｂｌｉｃ　Ｋｅｙ　Ｉｎｆｒａｓｔｒｕｃｔｕｒｅ；公開鍵基盤）のような手段によりホスト鍵を配布された信頼できる中継ルータ装置に対して、アプリケーションのフロー毎に異なる認証あるいは暗号化のための鍵を容易に配布することが出来る。また、パケットの一部分のみを指定して認証あるいは暗号化するための機構を提供することで、認証または暗号化の計算量を削減し、高速な処理を行なうことができる。
【００４４】
さらに、パケットの異なる部分について独立に認証または暗号化の処理を施すことを可能にすることで、中継ルータにおいて変更された部分のみに関して再認証または再暗号化を行うことが可能となる。認証および暗号化の処理は一般に認証すべきまたは暗号化すべきデータの量に比例することから、本発明により中継ルータにおけるパケット改変に伴う処理量を削減することが可能である。
【図面の簡単な説明】
【図１】本発明におけるアクティブパケットの構成例を示した図である。
【図２】本発明におけるルータ装置の構成と処理の流れの例を示した図である。
【図３】本発明におけるルータ装置内のホスト鍵記憶領域の概念を示した図である。
【図４】本発明におけるルータ装置内のフロー鍵記憶領域の概念を示した図である。
【図５】本発明の一実施例における構造情報を用いた認証部分の指定方式の例を示した図である。
【図６】本発明の一実施例における構造情報を用いた暗号化部分の指定方式の例を示した図である。
【図７】本発明の一実施例における複数のパケット部分に独立に認証または暗号化を行う例を示した図である。
【符号の説明】
１１０…ＩＰヘッダ、１２０…ＩＰペイロード、１３０…フロー鍵配布パケット、１４０…認証パケット、１５０…暗号化パケット、１６０…その他のアクティブパケット、１３１、１４１、１５１、１６１…属性、２００…ルータ装置、２０１…パケット受信機能、２０２…パケット送信機能、２１０…パケット識別機能、２２０…ホスト鍵記憶領域、２３０…フロー鍵格納機能、２４０…フロー鍵記憶領域、２５０…検査復号化機能、２６０…アクティブパケット処理機能、２７０…認証暗号化機能、２９９…共通鍵基盤またはオフライン手段、ａ１−８…フロー鍵配布パケットの処理の流れ、ｂ１−８…認証または暗号化パケットの処理の流れ、ｃ１−４…それ以外のパケット処理の流れ。
【図１】
2004015582.tif 000003
【図２】
2004015582.tif 000004
【図３】
2004015582.tif 000005
【図４】
2004015582.tif 000006
【図５】
2004015582.tif 000007
【図６】
2004015582.tif 000008
【図７】
2004015582.tif 000009