ネッ トワーク機器、 ネッ トワークシステム、 および、 グループ管理方 法 技術分野
明 本発明は、 ネットワークに接続する特定の機器間で排他的かつ安全に通信を行う 田
技術に関する。 背景技術
Internet Protocol (以下、 I Pと呼ぶ) と呼ばれる通信プロ ト コル を使用する I Pネッ トワークは、 コンピュータネッ トワークのデファク トスタンダードと しての地位を確立し、 一般ユーザへの普及が著しい。 この I Pネッ トワークを介して機器間でデータをやり と りするには、 その機器それぞれに一意的に I Pァドレスを付与することが必要である 。 現在では、 I Pア ドレスを 3 2ビッ トで表す I P v 4 (Internet Prot ocol version 4)が用いられているが、 I Pネッ トワークの利用が増大 するに連れて、 I Pア ドレスの不足が大きな問題となってきている。
このような状況を背景に、 I Pア ドレスを 1 2 8 ビッ トに拡張し、 さ らに、 セキュリティ機能など、 今までの I Pァ ドレスになかった機能を 付加した新しい I Pア ドレスを用いる I Pネッ トワークと して I P v 6 Unternet Protocol version 6)力 I E T F unternet Engineering Tas k Force)にて採択され、 それを用いたネッ トワークサービスが次世代 I Pと して標準化されつつある。
さらに、 使用可能なア ドレス数が増え、 セキュリティ機能が充実した Γ P V 6の新たな適用先と して、 冷蔵庫、 洗濯機などの白物家電、 ある
いはテレビ、 ビデオといった AV機器といった家庭内の機器から構成され るホームネッ トワークなどが注目されている。
これらの機器それぞれに I Pア ドレスを割り当てることにより、 各機 器をサーバとみなすことができるようになり、 機器間通信により新しい サービスを実現したり、 外部端末からの機器の制御、 サービスセンタか らの機器の制御といったィ ンターネッ トを介した新しいサービスを実現 するといつたことが考えられている。
ところで、 家庭内機器のような特定の機器間の通信においては、 利用 者が認識している範囲外の機器からの操作を排除するようなシステムが 要求される。 例えば、 友人が持ってきた機器による勝手な操作の防止が 必要である。
すなわち、 利用者が互いの通信を許可する範囲を決定し、 それらの機 器をグループ化し、 グループ化された機器間でのみ通信がなされるよう なシステムが要求される。 そして、 このような通信を実現するためには 、 グループ内の機器間で、 互いをグループ内に属する真正な機器である ことを認証するための認証機能が必要である。
このような認証機能と して、 従来のクライアント、 サーバ型のシステ ムでは、 認証サーバを用いたものが実現されている。 例えば、 R F C 2 8 6 5で定義される RAD I U S (Remote Authentication Dial-In Use r Serviceでは、 サーバにアクセスするクライアン トのアカウント (ュ 一ザ名、 パスワード) を R AD I U Sサーバと呼ばれる認証サーバで一 括管理し、 サーバは、 クライアン トからのアクセス要求(ユーザ名点パ スワードを含む)を RAD I U Sサーバに転送しアクセス可否の判断結 果を受けて、 クライアントとの通信を行うかどうか判断する。
例えば、 従来のグループ化された特定の機器間での暗号通信システム 及びその通信方法と しては、 特開 2 0 0 2-1 2 4 9 4 1号公報及ぴ特 開平 5— 3 4 7 6 1 6号公報 (特許文献 2 ) に示されているものがある
発明の開示 ホームネッ トワークに接続されている機器の中で、 利用者が指定した 機器間でのみ所定の通信を行うためには、 互いに相手が指定された機器 であることを認証する機能が必要と考えられている。
従来の認証機能は、 クライアント · サーバシステムが前提であり、 サ ーバにアクセスするクライアン トのアクセス情報を管理する認証サーバ を備えることで実現されている。
これに対し、 ホームネッ トワークを構成する機器は、 適宜サービスに 応じて必要な機器間で通信を行なう といったァドホック型である。 この ため、 全ての機器がサーバにもクライアントにもなり得、 アクセス情報 の設定がより煩雑になるという問題がある。
このような場合に、 従来のように認証サーバを備え、 機器間でのセッ ション確立毎、 あるいはサービス開始毎に個別に認証を行うようにする と、 認証のオーバへッ ドが大きくなるという問題もある。
例えば、 前述の特許文献 1に開示された技術は、 認証機能を有したグ ループ通信システムである。 本技術は、 グループを構成する機器以外に 、 グループ通信システム内にグループ暗号鍵を生成する機能及びグルー プに所属する端末情報を管理する機能を備えたグループ暗号鍵管理部と 及び中継装置とを備えて構成され、 大規模なネッ トワーク構成を前提と したものである。
また、 前述の特許文献 2に開示された技術は、 まず、 グループ通信を 行う機器ごとに I Cカードを具備していなければならない。 そして、 そ の I Cカードには、 予め送受信相手の所属ごとに設定された複数のマス タ鍵とグループ鍵生成プログラムとが記録されている必要がある。
このように、 従来の技術では、 実際に通信を行なう機器以外に認証サ ーバとなる機器を用意する必要があったり、 マスタ鍵と個々の通信相手
先の関係といった複雑な情報を予め記憶させておく記録媒体をグループ を構成する機器の数だけ用意する必要があった。
本発明は、 このような事情に鑑みなされたもので、 本発明の目的は、 利用者が認めた機器間で容易に互いを認証し合うことが可能なグループ を構成し、 そのグループに属する機器間の安全な通信を実現することに ある。
さらに、 本発明の他の目的は、 グループ内の機器が提供するアプリケ ーションにグループ外の機器にもアクセスを許可するものがある場合、 グループ外の機器から、 そのアプリケーションにのみアクセスを許可す るといったアクセス制御を実現することにある。
本発明は、 共有の鍵を用いて暗号通信を行うことで互いを認証し、 セ キユリティの確保された通信を行なう機器の集まりをグループとみなし 、 そのグループを構成する機器となり うる個々の機器のいずれもが、 グ ループを生成し、 参加し、 また、 そのグループから離脱するといったグ ループ管理の手段を有する。
また、 機器がいずれかのグループに属していても、 グループ外の機器 との通信の可能性も保有するものである。
具体的には、 ネッ トワークを介して接続された他のネッ トワーク機器 と通信を行なうネッ トワーク機器であって、 互いに認証可能な前記ネッ トワーク機器をグループと して管理するグループ管理手段と、 前記ダル ープ所属するネッ トワーク機器間で共通の暗号化鍵による暗号通信を行 う暗号通信手段と、 前記グループに所属するネッ トワーク機器の、 ホス ト名とア ドレスとを含む識別情報および前記暗号化鍵の情報を含む前記 グループに所属するネッ トワーク機器と暗号通信を行うために必要な暗 号通信情報を格納する記憶手段と、 外部から情報を取得する取得手段と 、 を備え、 前記グループ管理手段は、 前記記憶手段に前記暗号通信情報 が格納されていない状態で、 前記取得手段において前記暗号通信情報を 取得すると、 当該暗号通信情報を前記記憶手段に格納するとともに、 前
記暗号通信手段を介して自身の識別情報を前記グループに所属するネッ トワーク機器に送信し、 前記暗号通信手段を介して他のネッ トワーク機 器から当該他のネッ トワーク機器の識別情報を取得すると、 前記記憶手 段に記憶している前記暗号通信情報に当該識別情報を追加することを特 徴とするネッ ト ワーク機器を提供する。
また、 前記グループ管理手段は、 さらに、 前記取得手段においてダル ープから離脱する指示を受け付けると、 前記記憶手段に記憶されている 前記グループに所属する全てのネッ トワーク機器に、 前記暗号通信手段 を介して自身のネッ トワーク機器の離脱を通知するとともに、 前記記憶 手段から前記暗号通信情報を削除し、 前記暗号通信手段を介して他のネ ッ トワーク機器から、 当該他のネッ トワーク機器が離脱する通知を受け 付けると、 前記記憶手段に記憶している前記暗号通信情報から、 当該他 のネッ トワーク機器の識別情報を削除する、 ことを特徴とするネッ トヮ ーク機器を提供する。 図面の簡単な説明 図 1は、 本発明を適用した実施形態のシステム構成を示す図である 図 2は、 本実施形態におけるノ一ドのハードウエア構成を示す図である 図 3は、 本実施形態におけるノードにおけるソフ トウェア構成を示す図 である。
図 4は、 グループ通信に用いる A Hへッダ付きの I Pパケッ トの構成を 示す図である。
図 5は、 グループ通信に用いる E S Pヘッダ付きの I Pバケツ トの構成 を示す図である。
図 6は、 本実施形態のおけるグループ管理処理部の機能構成を示す図で め 。
図 7は、 本実施形態におけるグループ制御 I Pバケツ トのデータ部の構 成の一例を示す図である。
図 8は、 グループ管理テーブルの構成の一例を示す図である。
図 9は、 アクセス制御対象アプリケーション管理テーブルの構成の一例 を示す図である。
図 1 0は、 グループメンバ管理テーブルの構成の一例を示す図である。 図 1 1は、 セキュリティァソシエーシヨンと して設定する情報構成の一 例を示す図である。
図 1 2は、 グループ管理処理の処理手順を示す図である。
図 1 3は、 グループ生成処理の処理手順を示す図である。
図 1 4は、 グループ参加処理の処理手順を示す図である。
図 1 5は、 グループ内への新メンバ通知処理の処理手順を示す図である 図 1 6は、 グループ離脱処理の処理手順を示す図である。
図 1 7は、 グループ制御 I Pパケッ ト受信処理の処理手順を示す図であ る。
図 1 8は、 I Pパケッ ト受信時の I P受信部の処理手順を示す図である 図 1 9は、 I Pパケッ ト受信時の受信アクセス制御部の処理手順を示す 図である 発明を実施するための最良の形態 以下、 本発明の実施の形態を、 図を用いて説明する。
本実施形態では、 宅内において家電などにより構成されるネッ トヮー クに本発明を適用した場合を例にあげ、 説明する。
本実施形態の宅内のネッ トワークは、 I P v 6により構成され、 それ ぞれに I Pア ドレスが付与された、 例えば、 電子レンジやエアコンなど
の家電機器、 テレビやビデオなどの AV機器、 センサ等が接続されている 。 以下、 ネッ トワークに接続され、 I P v 6による I Pア ドレスを付与 されている各機器を、 ノードと呼ぶこととする。
本実施形態では、 これらのノードのうち、 利用者が互いに通信を行な うことを許可したものをグループと し、 グループに属するノ一ド間で認 証のために共通の暗号化鍵による暗号通信を行なう。
ここで、 本ネッ トワークで採用している I P V 6は、 前述したように 、 確保できる I Pァ ドレス数が莫大となるだけでなく、 I P s e c と呼 ばれる暗号■認証の仕組みが標準で装備され、 高度な安全性を保ちなが ら、 使い勝手もよいという特徴を持つ。 本実施形態においては、 I P V 6の I P s e cを用いて、 グループを構成する機器間のみでの安全な通 信を実現する。
本実施形態の詳細な説明の前に、 まず、 I P s e cの概要について説 明する。
I P s e cは、 I P層において相互接続可能で高品質な暗号化ベースの セキュリティを提供する技術である。 このセキュリティは、 認証ヘッダ A H (Authentication Header) と I P B音号ィ匕ペイロード E S P (Encap sulation Security Payload) の 2つのトラフィ ックセキュリティプロ トコル等によって実現されている。
AHは、 I Pパケッ トの改ざんを防ぐ機能を提供し、 E S Pは、 I P パケッ トを暗号化し、 かつ、 その認証データを格納することで、 I Pパ ケッ トの機密性と完全性とを保証するものである。
AH、 E S P共に、 認証鍵、 暗号鍵を用いて、 それぞれ認証情報、 暗 号データを作成し、 送付した暗号化されたデータを解読可能な鍵を保有 しているか否かにより通信相手の機器を認証する。
図 4 と図 5 とに、 それぞれ、 AHプロ トコノレおょぴ E S Pプロ トコノレ を利用した場合の I Pパケッ トの構成を示す。 なお、 これらのパケッ ト 構成は、 I P s e cノヽ。ケッ トと して R F C 2 4 0 1〜 2 4 0 3に規定さ
れているものである。
図 4は、 AHプロ トコルを利用した場合の I Pバケツ トの構成を示す ものである。 この場合の I Pパケッ トは、 I Pヘッダ 4 0 0 と、 T C P ノ UD Pヘッダ 4 0 2 と、 データ 4 0 3に対するハッシュ値を格納する AHヘッダ 4 0 1 とを備える。
A Hヘッダ 4 0 1に格納されているハッシュ値は、 バケツ トが改ざん されていないことを証明するためのもので、 通信相手間で相互に保有す る認証鍵を用いて計算された値が格納される。 これは、 認証されている もの同士では同じ認証鍵を保有することが前提となっているもので、 送 信側で自身が保有する認証鍵によって計算して格納したデータのハッシ ュ値を、 受信側が、 自身が保有する認証鍵によって計算したデータのハ ッシュ値と比較し、 両者が合致することにより、 相手が同じ認証鍵を保 有するものであることを確認することができる。 すなわち、 パケッ トの 送信相手が同じ暗号化鍵を保有するグループ内の機器であることが証明 される。
図 5は E S Pプロ トコルを利用した場合の I Pバケツ トの構成を示す ものである。 T C PZUD Pヘッダと、 データを暗号化した場合のへッ ダ構成である。
この場合の I Pバケツ トは、 暗号化しているバケツ トであることを示 す E S Pヘッダ 5 0 1 と、 暗号化の区切り を揃えるための E S P トレー ラ 5 0 4 と、 認証データ 5 0 5 とを備える。 認証データ 5 0 5はォプシ ヨ ンであり、 £ 3 ?へッダ 5 0 5 と、 暗号化された T C P/UD Pへッ ダ 5 0 2 と、 データ 5 0 3 と、 E S P トレーラ 5 0 4 とのハッシュ値を 格納するものである。
認証データ 5 0 5に格納されるハッシュ値は、 I Pペイ口一ドの完全 性を確保し、 暗号化して転送する T C P /U D Pヘッダ 5 0 2およびデ ータ 5 0 3の機密性を確保する。 暗号化を行なう際には送信側が保有す る暗号鍵を用いる。 送信側が自身が保有する暗号鍵を用いて暗号化した
データを受信側は自身が保有する暗号鍵で復号する。 受信側において、 復号ができれば、 相手が同じ暗号鍵を保有することが確認できる。 すな わち、 バケツ ト送信相手が同じ暗号鍵を保有するグループ内機器である こ との証明となる。
また、 I P S e cで使用する暗号/認証アルゴリ ズム、 鍵など、 各機 器間で I P s e c の規格に従って通信を行う (以後、 I P s e c の規格 に従って行う通信のことを I P s e c通信と呼ぶ) ために共有すべき情 報は、 セキュリティアソシエーショ ン(S A)と して管理される。
S Aは、 それによつて運ばれる トラフィ ックに対してセキュリティサ 一ビスを提供する単方向の 「コネクショ ン」 である。 このため、 I P s e c通信を行うにあたって、 通信を行う機器間で一方向の通信ごとに、 予め設定を行う必要がある。 すなわち、 両方向の通信を行なうためには 、 送信方向と受信方向とのそれぞれの S Aを設定する必要がある。
なお、 I P s e c の詳細は、 R F C 2 4 0 1 " Security Architectur e for the Internet Protocol" 【こ規定されてレヽる。
図 1は、 本発明を適用した一実施形態に係るグループ通信システムの 構成を示す図である。
本図に示すように、 本実施形態においては、 4つのノード 1 0 0 ( 1 0 0 A、 1 0 0 B、 1 0 0 C、 1 0 0 D ) 力 S I P v 6によるネッ トヮー ク 1 1 0に接続されている。 もちろん構成ノード数はこれに限られない これらのノード 1 0 0間で、 ネッ トワーク 1 1 0を介して I Pバケツ ト形式のコマンドを送受信することにより、 ノード 1 0 0各々が備える 機器特有のサービス機能に対する他のノード 1 0 0からの操作、 および 、 他のノー ド 1 0 0へのサービス提供が実現される。
具体的には、 ネッ トワークを介して、 テレビからエアコンの温度調節 をしたり、 テレビからの操作により、 ビデオカメラで撮影している画像 をビデオに送信し、 ビデオカメラで撮影した画像をビデオで録画させる
といったことが実現されるものである。
例えば、 ノード 1 0 0 A〜ノード 1 0 0 Cは、 利用者が相互にサービ スを利用することを許可しているグループに属するノードであり、 ノー ド 1 0 0 Dは、 そのグループ外のノードとすると、 グループを構成する ノード 1 0 0 Α、 1 0 0 Β、 1 0 0 C間では、 サービス機能の利用要求 を送信する際に、 要求元ノードは、 グループで共有する鍵 (以後、 グル ープ鍵と呼ぶ) により計算されたハッシュ値を格納した、 または、 暗号 化した I Pパケッ トを送付する ( 1 0 1方向) 。 利用要求を受け取った 要求先ノ一ドは、 自身の保有するグループ鍵により要求元ノ一ドがダル ープ構成ノードであることを確認し、 サービス機能を要求元ノードに提 供する ( 1 0 2方向) 、 とレ、つた I P s e c通信を行なう。
これに対し、 ノード 1 0 0 Dからは、 サービス機能の利用要求は、 通 常の I Pバケツ トによって送信することとなるため、 ノード 1 0 0 Cに 通常の I Pパケッ トを送信すると ( 1 0 4方向) 、 ノード 1 0 0 Cにお いてグループ外ノードと判断され、 サービス提供拒否のバケツ トの返答 を受けること となる ( 1 0 3方向) 。
ここで、 ノード 1 0 0 Bがグループ外のノード 1 0 0に提供を許可す るサービスを有するノードの場合、 ノード 1 0 O Dからそのサービスの 提供を指定して通常の I Pバケツ トを送信すると ( 1 0 4 b方向) 、 ノ ー ド 1 0 O Bよ りそのサービスが提供される ( 1 0 3 b方向) 。
本実施形態では、 以上のように I P s e cの仕組みを標準で実装する I P v 6を用いたプロ トコルによる通信が可能なネッ トワークを例にあ げて説明する。 しかし、 グループを構成するノード 1 0 0間に共通の暗 号化鍵を持たせ、 その鍵を認証鍵または暗号鍵と して当該グループ間で 通信を行うことができる環境を構築できるならば、 通信プロ トコルはこ れに限られない。
以下、 このようなネッ トワークに接続されたノード 1 0 0間で、 所定 のサービスの安全な利用を実現するグループの管理方法、 すなわち、 一
つのノード 1 0 0においてグループを生成し、 生成されたグループに他 のノード 1 0 0が参加し、 また、 生成されたグループから離脱する方法 について説明する。
本実施形態では、 空のメモリカード A、 Bの 2つを用意し、 最初にグ ループに参加するノード 1 0 0において、 グループ内で I P s e c通信 を行うために必要な情報を生成し、 そのうちの一つのメモリカード Aに 、 登録する。 その後参加するノード 1 0 0は、 メモリカード Aから必要 な情報を取得することで、 グループに参加する。 また、 グループから離 脱する際は、 空のメモ リ カー ド Bを用いる。
図 2にノード 1 0 0のハードウエア構成を、 図 3にその機能構成を示 す。
ノード 1 0 0は、 ノード 1 0 0が備える一つ以上の固有機能部 2 0 2 と、 ネッ トワークカード 2 0 5 と、 固有機能部 2 0 2及ぴネッ トワーク カード 2 0 5を制御するプロセッサ 2 0 0 と、 プロセッサ 2 0 0で実行 するプログラムを記憶するメモリ 2 0 1 と、 プログラム及び設定情報を 記憶するハードディスク等の外部記憶装置 2 0 4と、 グループ情報を受 け渡すためのメモリカード等のインタフェースを提供する記憶媒体ィン タフエース 2 0 6 と、 これらを接続するシステムバス 2 0 3 とを備える なお、 固有機能部 2 0 2が実現する固有機能とは、 例えばェアコンで あれば、 例えば冷暖房機能、 温度管理機能、 タイマ機能等を司る処理部 などのことである。
また、 記憶媒体ィンタフェース 2 0 6は、 揷入する記憶媒体に書き込 み中であることを利用者に通知する L E D (発光ダイオード) ライ トを 具備している。
次に、 各ノード 1 0 0が備える機能を図 3に従って説明する。 これら の機能により、 ノード 1 0 0は、 ネッ トワークを介して、 利用者がサー ビスの相互利用を許可したグループを構成するノード 1 0 0間でサービ
スの提供を実現する。
各ノード 1 0 0は、 アプリケーショ ン 3 0 1 と、 グループ管理処理部 3 0 2 と、 T C P ZUD P送信処理部 3 0 3 と、 I P送信部 3 0 4 と、 アクセスポリシデータベース 3 0 8 と、 S Aデータベース 3 0 9 と、 ネ ッ ト ワークイ ンタフェース受信処理部 3 1 0 と、 I P受信部 3 1 4 と、 T C P /U D P受信処理部 3 1 5 と、 ネッ ト ワークイ ンタフエース送信 処理部 3 1 7 と、 記憶媒体ィンタフェース処理部 3 1 8 とを備える。 アプリケーショ ン 3 0 1は、 各ノード特有のサービスを提供するもの である。
グループ管理処理部 3 0 2は、 後述するグループの生成、 離脱、 更新 など、 グループに関する管理を行なう ものである。
ネッ ト ワークイ ンタフエ一ス受信処理部 3 1 0 とネッ ト ワークインタ フェース送信処理部 3 1 7 とは、 ネッ ト ワークカー ドを制御するもので ある。
記憶媒体ィンタフェース処理部 3 1 8は、 記憶媒体ィンタフェース 2 0 6を制御するものである。 記憶媒体ィ ンタフェース 3 1 8は、 メモリ カード等の記録媒体が記録媒体ィンタ フェース 2 0 6に揷入されたこと を検出すると、 記憶媒体ィンタフェース 2 0 6に備えられている L ED ライ トを点灯し、 メモリカー を利用中であることを利用者に対して示 す。 また、 グループ管理処理部 3 0 2から処理終了の通知を受けると、 記憶媒体ィンタフェース 2 0 6に備えられている L E Dライ トを消灯し 、 利用者に対し、 メモリカード等の記憶媒体への書込みが終了したこと 、 および、 グループ管理処理部 3 0 2における処理が完了したことを通 知する。
なお、 通知を受けた利用者は、 メモ リ カー ドを当該記憶媒体インタフ エース 2 0 6から取り出すことができる。
T C P D P送信処理部 3 0 3 と、 I P送信部 3 0 4 と、 I P受信 部 3 1 4 と、 T C PZUD P受信処理部 3 1 5 とは、 送受する I Pパケ
ッ トに対し、 各層の処理を行い、 通信を実現するものである。
I P送信部 3 0 4は、 I P V 6送信前処理部 3 0 5 と、 I P s e c送 信処理部 3 0 6と、 I P V 6後処理部 3 0 7 とを備え、 I P受信部 3 1 4は、 I P v 6受信前処理部 3 1 1 と、 I P s e c受信処理部 3 1 2 と 、 I P V 6受信後処理部 3 1 3 とを備える。 I P送信部 3 0 4 と I P受 信部 3 1 4 とで、 I P V 6による通信を実現する。
ここで、 I P V 6受信前処理部 3 1 1は、 I Pヘッダを構成するバー ジョン、 ペイ口一ド長、 ホップ ' リ ミ ッ トの設定値の確認およびォプシ ョンヘッダ (AHと E S Pとを除く) 処理といった I P V 6受信前処理 を行なうものである。 I P v 6受信前処理部 3 1 1は、 受け取った I P バケツ トに A Hへッダまたは E S Pへッダのいずれかが付加されていた 場合、 その I Pバケツ トを I P s e c処理部 3 1 2に受け渡す。 いずれ のへッダも付加されていなかった場合、 その I Pバケツ トを後述する受 信アクセス制御部 3 1 6に受け渡す。
I P s e c処理部 3 1 2は、 I Pヘッダのオプショ ンヘッダのうち、 A Hと E S Pの処理を行ない、 受信した I Pパケッ トがグループに属す るノード 1 0 0から送信されたものか否かを判断する。
I P v 6受信後処理部 3 1 3は、 I Pバケツ トを受け取ると、 送信元 I Pア ドレス、 送信先 I Pア ドレスを含む Pusedo Headerを作成し、 受 け取った I Pバケツ トの I Pヘッダと置き換え、 T C P/UD P受信処 理部 3 1 5に受け渡すといった I P V 6受信後処理を行なう。
また、 I P受信部 3 1 4は、 受信アクセス制御部 3 1 6をさらに備える 受信アクセス制御部 3 1 6は、 I P v 6受信前処理部 3 1 1力ゝら、 A Hヘッダまたは E S Pヘッダを有していない I Pバケツ トを受け取り、 当該 I Pバケツ トのアプリケーショ ンへのアクセスを制御するものであ る。
S Aデータベース 3 0 9は、 I P s e cで必要なセキュリティァソシ
4 エーシヨ ン ( S A ) が格納されているものである。
アクセスポリシデータベース 3 0 8は、 グループ内での通信を実現す るため、 各ノー ドに対するアクセス制御に関する情報及びグループ情報 が格納されているものである。
アクセスポリ シデータベース 3 0 8 は、 グループ管理テーブル 6 0 0 と、 アクセス制御対象アプリケーショ ン管理テーブル 7 0 0 と、 グルー プメ ンバ管理テーブル 8 0 0 とを備える。
なお、 グループ管理テーブル 6 0 0は、 記憶媒体イ ンタフェース 2 0 6を介してノー ドに接続される記憶媒体であるメモリカー ド上でも保持 されるものである。
以下、 グループ管理処理部 3 0 2、 アクセスポリシデータベース 3 0 6の各データベース、 および、 S Aデータベース 3 0 9内の S Aについ て、 その詳細を説明する。
図 6に、 グループ管理処理部 3 0 2の機能構成図を示す。
本図に示すよ うに、 グループ管理処理部 3 0 2は、 制御部 3 1 0 0 と 、 グループ生成処理部 3 2 0 0 と、 グループ参加処理部 3 3 0 0 と、 グ ループ離脱処理部 3 4 0 0 と、 グループ情報更新処理部 3 5 0 0 と、 グ ループ制御 I Pパケッ ト受信処理部 3 6 0 0 とを備える。
グループ管理処理部 3 0 2は、 ユーザがメモリカー ドを記憶媒体ィン タフエース 2 0 6に揷入したことを検出した記憶媒体イ ンタフェース処 理部 3 1 8からの指示で処理を開始する。
制御部 3 1 0 0は、 記憶媒体ィンタフェース処理部 3 1 8からの指示 を受け、 揷入されたメモリカー ド内と、 自身が保有するアクセスポリ シ データベース 3 0 8 を検索し、 グループ管理テーブル 6 0 0 の有無を確 認する。
グループ生成処理部 3 2 0 0は、 グループ自体が存在しない場合に、 新たにグループを生成するグループ生成処理を行なう。 グループ生成処 理は、 制御部 3 1 0 0がメモリカー ドにもアクセスポリ シデータベース
5
3 0 8にもグループ管理テーブル 6 0 0が存在しないと判断した場合に 行なわれるものである。
具体的には、 グループに属する他のノードと喑号通信を行なうために 必要な情報、 すなわち、 グループ管理テーブル 6 0 0に登録すべき項目 を生成、 選択し、 グループ管理テーブル 6 0 0を作成し、 それを、 メモ リカー ドおよびアクセスポリシデータベース 3 0 8に登録する。
グループ参加処理部 3 3 0 0は、 既存のグループに、 新たなメ ンバと して自身を参加させるグループ参加処理を行なう ものである。 グループ 参加処理は、 制御部 3 1 0 0がメモ リカー ドにはグループ管理テーブル 6 0 0が存在するが、 アクセスポリ シデータベース 3 0 8にグループ管 理テーブル 6 0 0が存在しないと判断した際に行われるものである。
グループ参加処理部 3 3 0 0は、 揷入されたメモ リカー ドに格納され ている暗号通信に必要な情報を取得し、 また、 自身のノード 1 0 0 と暗 号通信を行なうために必要な情報をグループに既に属している他のノ一 ド 1 0 0に送信する。 具体的には、 メモリカード内のグループ管理テー プル 6 0 0に自身の情報を追加し、 自身の情報が追加されたグループ管 理テーブル 6 0 0を、 アクセスポリ シデータベース 3 0 8に登録する。
また、 グループ管理テーブル 6 0 0から得た、 グループに既に属して いるノード 1 0 0のホス ト名から I Pァ ドレスを解決することで、 グル ープメンバ管理テーブル 8 0 0を生成する。
さ らに、 グループ参加処理部 3 3 0 0は、 グループ内の各ノード 1 0 0 と I P s e c通信が可能となるよ う に、 セキュリティァソシエーショ ンの設定を行ない、 S Aデータベース 3 0 9に登録し、 グループ内の既 存のメ ンバのノー ド 1 0 0に、 I P s e c通信で自身が追加された.こと を通知する。
グループ離脱処理部 3 4 0 0は、 グループから離脱するグループ離脱 処理を行なう ものである。
本実施形態では、 ユーザが所定のノー ド 1 0 0をグループから離脱さ
6
せたい場合、 当該ノード 1 0 0に空のメモリカードを揷入することとす る。 すなわち、 グループ離脱処理は、 制御部 3 1 0 0が、 自身のァクセ スポリシデータベース 3 0 8にはグループ管理テーブル 6 0 0が存在す るが、 揷入されたメモリカードにはグループ管理テーブル 6 0 0が存在 しないと判断した際に行われるものである。
グループ離脱処理は、 グループに属する他のノード 1 0 0に自身のノ ード 1 0 0が離脱することを通知し、 当該グループ内で暗号通信を行な うために必要な情報、 すなわち、 自身のアクセスポリシデータベース 3 0 8および S Aデータベース 3 0 9内のグループ間の通信に係わるデー タを削除するものである。
ここで、 グループ参加処理部 3 3 0 0およびグループ離脱処理部 3 4 0 0がそれぞれ、 参加および離脱をグループに属する各ノード 1 0 0に 通知する際は、 グループ制御 I Pパケッ トと呼ぶ特別なデータ部を有す る I Pバケツ トを用いる。
ここで、 そのグループ制御 I Pパケッ トについて説明する。 図 7にグ ループ制御 I Pバケツ トのデータ部 1 0 0 0 の一例を示す。
本図に示すように、 グループ制御 I Pバケツ トのデータ部 1 0 0 0は 、 コマン ド識別子を格納するコマンド識別子格納部 1 0 0 1 と、 I Pァ ドレス とホス ト名とをそれぞれ格納する、 1 6バイ トの I Pア ドレス格 納部 1 0 0 2 と、 ホス ト名格納部 1 0 0 3 とを備える。
ここで、 新規参加を通知する際にグループに属する各ノード 1 0 0に 送信されるグループ制御 I Pバケツ トの場合、 コマン ド識別子格納部 1 0 0 1に 「加入」 を示す ( 0 0 ) hexが設定される (以後、 本グループ 制御 I Pパケッ トを加入コマンドと呼ぶ) 。 そして、 I Pァ ドレス格納 部 1 0 0 2 と、 ホス ト名格納部 1 0 0 3 とには、 それぞれ自身のァ ドレ スとホス ト名とが設定される。
また、 グループから離脱する際にグループに属する各ノード 1 0 0に 送信されるグループ制御 I Pバケツ トの場合、 コマン ド識別子格納部 1
0 0 1に 「離脱」 を示す (0 1 ) hexが設定される (以後、 本グループ 制御 I Pバケツ トを離脱コマンドと呼ぶ) 。 そして、 I Pァ ドレス格納 部 1 0 0 2 と、 ホス ト名格納部 1 0 0 3 とには、 それぞれ自身のァ ドレ ス とホス ト名とが設定される。
グループ情報更新処理部 3 5 0 0は、 グループ管理テーブル 6 0 0の 内容を更新したり、 それをメモリカードにコピーするといったグループ 情報更新処理を行なうものである。
本実施形態においては、 セキュリティを向上させるために、 グループ 内で利用するグループ鍵が所定の期間ごとに更新される設定となってい る。 グループ情報更新処理部 3 5 0 0は、 グループ管理テーブル 6 0 0 の鍵有効期限がタイムァゥ ト した時点で、 新しいグループ鍵を生成する ここで、 グループ管理テーブル 6 0 0生成時に、 ノード毎に、 異なる 鍵有効期限が設定される。 具体的には、 所定の有効期限の、 例えば、 プ ラスマイナス 3 0 %間のランダムな値を、 その鍵有効期限に加算あるい は減算することで得られた値を鍵有効期限と して各ノードに設定する。 このため、 各ノードで鍵有効期限のタイムァゥ トが異なるタイ ミングで 生じ、 鍵の更新を行なうノードが一つに定まり、 グループのメンバが同 時にグループ鍵を生成することを避けることができる。
そして、 更新されたグループ鍵を更新前のグループ鍵で暗号化し、 グ ループ鍵を更新したメンバからグループに属する各ノ一ドに送付する。 このとき、 鍵の更新とともに、 各ノードの鍵有効期限を再設定してもよ レ、。
また、 グループ情報更新処理部 3 5 0 0は、 他のノードから、 更新さ れたグループ鏈を受信した場合、 自身の保有するグループ鍵の情報を更 新するとともに、 グループに属する各ノード 1 0 0 の I Pア ドレスが更 新された場合、 関連するデータベース内の I Pァドレスを更新する。
こ こで、 本実施形態では、 グループの鍵の更新は上述のように行なわ
8 れるため、 グループ参加処理に用いられるメモリカード内のグループ管 理テーブル 6 0 0には反映されない。 同様に、 上述のグループからの離 脱処理は、 空のメモリカード.を用いて行なわれ、 離脱したノード 1 0 0 からグループを構成する他のノー ド 1 0 0への通知は、 I P s e c通信 によって行われる。 このため、 グループ離脱によるグループ構成メ ンバ の変更も、 グループ参加処理に用いられるメモリカード内のグループ管 理テーブル 6 0 0に反映されない。
このため、 本実施形態では、 グループ情報更新処理部 3 5 0 0が、 メ モリカー ド内のグループ管理テーブル 6 0 0の更新処理も行なう。
グループ情報更新処理部 3 5 0 0が行なうメモ リカー ド内のグループ 管理テーブル' 6 0 0の更新処理は、 制御部 3 1 0 0が、 自身のアクセス ポリ シデータベース 3 0 8にも、 揷入されたメモリカードにもグループ 管理テーブル 6 0 0が存在すると判断した際に行われるものである'。
グループ情報更新処理部 3 5 0 0は、 当該ノー ド 1 0 0のアクセスポ リ シデータベース 3 0 8に格納されているグループ管理テーブル 6 0 0 の情報をメモリカー ド内のグループ管理テーブル 6 0 0にコピーする。 本実施形態では、 実際のグループ参加処理において、 グループ参加処 理を行なう場合に、 グループに既に所属しているノード 1 0 0にメモリ カー ドを揷入し、 メモ リカード内のグループ管理テーブル 6 0 0を最新 のものとする処理を前もって行なう よ う手順を定めておく。
グループ制御 I Pバケツ ト受信処理部 3 6 0 0は、 前述のグループ制 御 I Pパケッ トを受信した際の処理を行う ものである。
具体的には、 加入コマン ドを受信した場合は、 I Pア ドレス格納部 1 0 0 2およぴホス ト名格納部 1 0 0 3 に格納されている I Pア ドレスお よびホス ト名を自身のグループ管理テーブル 6 0 0およびグループメ ン バ管理テーブル 8 0 0 とに追加し、 送信元ノー ド 1 0 0 と暗号通信を行 なうために必要なセキュリティアソシエーショ ンを作成する。 一方、 離 脱コマン ドを受信した場合は、 それらを削除する。
9 次に、 アクセスポリシデータベース 3 0 8に格納されるグループ管理 テーブル 6 0 0 とァクセス制御対応アプリケーショ ン管理テーブル 7 0 0 と、 グループメ ンバ管理テーブル 8 0 0 とについて以下に説明する。 グループ管理テーブル 6 0 0は、 グループに属するノード 1 0 0を識 別するための情報とグループで共有する鍵の情報とを格納するテーブル である。 図 8にその一例を示す。
本図に示すよ うにグループ管理テーブル 6 0 0は、 ネッ トワークに接 続されたノー ド 1 0 0によって構成されるグループを識別するためのグ ループ識別子を格納するグループ識別子格納フィールド 6 0 1 と、 ダル 一プ鍵を格納するグループ鍵格納フィールド 6 0 2 と、 そのグループ鍵 の有効期限を格納するグループ鍵有効期限格納フィールド 6 0 3 と、 A H、 E S P といったグループ内で通信に利用する I P s e cの機能の種 別を格納する I P s e c種別格納フィールド 6 0 4 と、 認証あるいは喑 号に用いるアルゴリ ズムを格納するアルゴリ ズム格納フィールド 6 0 5 と、 グループに属するノー ド 1 0 0を識別する情報であるホス ト名を格 納するホス ト名格納フィールド 6 0 6 ( 6 0 6 A〜6 0 6 B ) とを備え る。 .
アクセス制御対象アプリケーショ ン管理テーブル 7 0 0は、 ノー ド 1 0 0にグループ外のノード 1 0 0が利用可能なアプリケーショ ンが実装 されている場合、 ノード 1 0 0に実装されている各アプリケーシヨ ンに 対するアクセス制御のために用いる情報が格納されているテーブルであ る。
なお、 本テーブルは、 ノード 1 0 0がグノレープ内からのアクセスに対 してのみ提供するアプリケーショ ンだけを実装している場合は不要なも のである。
アクセス制御対象アプリケーショ ン管理テーブル 7 0 0の一例を図 9 に示す。
本図に示すよ うに、 アクセス制御対象アプリケーショ ン管理テーブル
7 0 0は、 グループ外のノード 1 0 0にも開放されているアプリケーシ ヨ ンが利用するポート番号を格納するポート番号格納フィ一ルド 7 0 1 ( 7 0 1 A、 7 0 1 B ) を備える。 各ノード 1 0 0は、 I Pパケッ ト受 信時に、 本テーブルを参照し、 当該 I Pバケツ トがアクセスしよう と し ているアプリケーションがグループ外のノード 1 0 0にも開放されたァ プリケーシヨ ンであるか否かの判定を行う。
次に、 グループメンバ管理テーブル 8 0 0について説明する。 各ノー ド 1 0 0間で、 I P V 6に基づき、 I Pパケッ ト通信を行なうためには 、 各ノード 1 0 0の I Pア ドレスを知る必要がある。 グループに属する 各ノード 1 0 0 の I Pア ドレスは、 グループ参加時に取得した各ノード 1 0 0のホス ト名力、ら I CM P (Internet Control Message Protocol) Echo Request/Replyノヽ0ケッ トのやり と りにより、 了 ドレスの解決を行な うことで取得する。 このように、 グループメンバ管理テーブル 8 0 0は 、 各ノードにおいてホス ト名から I Pァ ドレスを解決して作成するもの で、 そこには、 グループに属する各ノード 1 0 0のホス ト名と I Pァ ド レスとの対応が格納されている。
図 1 0にグループメンバ管理テーブル 8 0 0の一例を示す。
本図に示すように、 本テーブルは、 ノードを特定するホス ト名を格納 するホス ト名格納フィール ド 8 0 1 と、 ホス ト名と対応させて各ノード 1 0 0 の I Pァ ドレスを格納する I Pァ ドレス格納フィールド 8 0 2 と 、 I Pァドレスの有効期限を格納する有効期限格納フィールド 8 0 2 と を備える。
ノード 1 0 0が再起動しだ場合などに、 ノード 1 0 0の I Pァ ドレス は変わる可能性がある。 また、 一定時間内に I Pア ドレス格納部 8 0 2 に格納されている I Pア ドレス と送受信が行われないと、 有効期限が切 れる場合がある。
このようなノードに対し I Pバケツ トを送信する場合、 ノード 1 0 0 の I P V 6送信前処理部 3 0 5は、 I CM P Echo Request/Replyパケ
2
ッ トのやり と りにより、 ホス ト名からァ ドレスの解決を再度行ない、 グ ループ管理処理部 3 0 2に通知する。 それを受けて、 グループ管理処理 部 3 0 2のグループ情報更新処理部 3 5 0 0は、 I Pァ ドレスが登録さ れている本テーブルおよびグループ内の通信に利用するセキュリティア ソシエーショ ンを更新する。
次に、 S Aデータベース 3 0 9に格納されている、 セキュリティァソ シエーショ ン 9 0 0 について説明する。 セキュ リ ティ アソシエーショ ン 9 0 0は、 I P s e cにのつとつた通信を行うために共有すべき情報を 管理するものであり、 例えば、 ノード 1 0 0 Aとノード 1 0 0 B間で通 信する場合、 ノード 1 0 0 Aからノード 1 0 0 B方向の通信、 および、 ノード 1 0 0 Bからノード 1 0 O A方向の通信、 両者に対し、 独立して 設定する必要があるものである。
図 1 1に、 セキュリティアソシエーショ ン 9 0 0 の一例を示す。
本図に示すように、 セキュリティアソシエーショ ン 9 0 0は、 各セキ ユリティアソシエーションを識別する S P I (セキュリティポリシ識別 子)、 送信元 I Pア ドレス、 送信先ァドレス、 プロ トコルと して認証あ るいは暗号の指定、 暗号範囲と して ト ランスポー トモー ドあるいは ト ン ネルモー ドの指定、 暗号アルゴリ ズム、 暗号鍵、 認証アルゴリ ズム、 認 証鍵、 鍵の有効期限などを含む。
本実施形態では、 各ノード 1 0 0においてセキュリティアソシエーシ ヨン 9 0 0を作成するにあたり、 送信用のセキュリティアソシエーショ ン 9 0 0を作成する場合は、 送信元 I Pアドレスには、 自身のノード 1 0 0 の I Pア ドレスを、 送信先 I Pァ ドレスには、 通信相手先ノー ドの I Pア ドレスを設定し、 受信用を作成する場合は、 送信元 I Pア ドレス には、 通信相手先の I Pァ ドレスを設定し、 送信先 I P了 ドレスには、 自身のノード 1 0 0の I Pァ ドレスを設定する。
S P I には、 送信用、 受信用ともに、 グループ管理テーブル 6 0 0の グループ識別子格納部 6 0 1に格納されているグループ識別子が格納さ
れる。 また、 送信用、 受信用ともに、 プロ トコル、 認証鍵アルゴリ ズム 、 認証鍵、 有効期限には、 それぞれ、 グループ管理テーブル 6 0 0に格 納されているものが設定される。
以上、 本実施形態におけるノード 1 0 0の各機能などについて説明し た。
次に、 本実施形態における、 ネッ トワーク 1 1 0に接続された各ノー ド 1 0 0間で、 グループを生成し、 参加する手順、 また、 一旦参加した グループから離脱する手順などを説明する。
以下においては、 I P s e cの機能種別と して A Hを、 モードと して ト ランスポー トモー ドを、 認証アルゴリ ズム と して S H A _ 1 ( Secure Hash Al gori thm 一 1 : SHS (Secure Hash Standard) FIPS 180と して規 定) を用いる場合を例にあげ、 説明する。 I P s e c通信の設定は、 こ れらに限られない。
また、 本実施形態においては、 前述したよ うに、 グループの情報を格 納するメモリカードと、 グループを離脱する際に用いる空のメモリカー ドとの 2つのメモリカードを用いてグループの生成、 参加、 離脱、 情報 更新などを行なう。
図 1 2に、 グループ管理処理部 3 0 2が行なうグループ管理処理手順 3 0 2 0を示す。
グループ管理処理手順 3 0 2 0は、 ユーザがメモリカードを各ノード 1 0 0の記録媒体ィンタフェース 2 0 6に揷入することをきっかけに開 始される。
そして、 ノード 1 0 0 の記憶媒体イ ンタフェース処理部 3 1 8は、 メ モリカードが記録媒体ィンタフエース 2 0 6に揷入されたことを検出す ると、 記憶媒体ィンタフェース 2 0 6に備えられている L E Dライ トを 点灯し、 メモ リ カー ドを利用中であることを利用者に対して示す。
L E Dライ トが消灯されたことにより、 ユーザは処理が終了したこと を知り、 メモ リ カー ドを取り出すことができる。
また、 記憶媒体ィンタフェース処理部 3 1 8は、 メモリ カー ドを検出 したことをグループ管理処理部 3 0 2へ通知する。 その通知を受けて、 グループ管理処理部 3 0 2は、 グループ管理処理 1 0 0 0を開始する。 まず、 グループ管理処理部 3 0 2の制御部 3 1 0 0は、 自身のァクセ スポリシデータベース 3 0 8 と、 記録媒体ィンタフェース処理部 3 1 8 を介してメモリカード揷入されたメモリカー ドとにアクセス し、 グルー プ管理テーブル 6 0 0の有無を確認する (ステップ 3 0 2 1 ) 。
ここで、 どちらにもグループ管理テーブル 6 0 0がない場合、 グルー プ自体が存在しない、 すなわち、 グループを生成する必要があると判断 し、 制御部 3 1 0 0は、 グループ生成処理部 3 2 0 0にグループ生成処 理 3 2 1 0を行わせる (ステップ 3 0 2 2 ) 。 グループ生成処理 3 2 1 0が完了すると、 制御部 3 0 2は、 記憶媒体ィンタフェース処理部 3 1 8に対し、 メモリカードの書き込み終了を通知し (ステップ 3 0 2 7 ) 、 処理を終える。
自身のアクセスポリ シデータベース 3 0 2には無く、 メモリカードには 存在した場合、 制御部 3 1 0 0は、 メモリ カー ドに存在するグループに 自身が参加しょ う と していると判断し、 グループ参加処理部 3 3 0 0に グループ参加処理 3 3 1 0を行なわせ (ステップ 3 0 2 3 ) 、 グループ 参加処理が完了する と、 ステップ 3 0 2 7に進む。
メモリカードには無く、 自身のアクセスポリ シデータベース 3 0 2に は存在した場合、 制御部 3 1 0 0は、 自身は既にグループに属している が空白のメモリカー ドが挿入されたこ とによ り、 グループ離脱処理を行 なう ものと判断し、 グループ離脱処理部 3 4 0 0にグループ離脱処理 3 4 1 0を行なわせ (ステップ 3 0 2 6 ) 、 グループ離脱処理が完了する とステップ 3 0 2 7に進む。
どちらにもグループ管理テーブル 6 0 0が存在する場合は、 制御部 3 1 0 0は、 まず、 アクセスポリ シデータベース 3 0 2内のグループ管理 テーブル 6 0 0 とメモリカー ド内のグループ管理テーブル 6 0 0 とのグ
ループ識別子を比較する (ステップ 3 0 2 4 ) 。
ここで、 両者が同じであれば、 メモリカードのグループ情報を更新す る処理を行なう ものと判断し、 グループ情報更新処理部 3 5 0 0にダル ープ情報更新処理 3 5 1 0 と してアクセスポリシデータベース 3 0 2内 のグループ管理テーブル 6 0 0をメモリカードにコピーする処理を行な わせ (ステップ 3 0 2 5 ) 、 当該処理が完了すると、 ステップ 3 0 2 7 に進む。
ステップ 3 0 2 4において、 両者が異なつた場合、 制御部 3 1 0 0は 、 誤ったメモリカードが揷入されたと判断し、 そのままステップ 3 0 2 7にすすむ。
次に、 グループ生成処理 1 2 0 0、 グループ参加処理 1 3 0 0、 グル ープ離脱処理 1 6 0 0、 グループ情報更新処理 1 5 0 0の手順を説明す る。
まず、 グループ生成処理 3 2 1 0の処理手順を図 1 3に示す。
制御部 3 1 0 0から処理開始の指示を受けると、 グループ生成処理部 3 2 0 0は、 グループ鍵を生成し (ステップ 3 2 1 1 ) 、 グループを識 別するためのグループ識別子を生成し (ステップ 3 2 1 2 ) 、 認証 - 暗 号モードと して認証 ( A H) を選択.し (ステップ 3 2 1 3 ) 、 アルゴリ ズムと して S H A— 1 を選択する (ステップ 3 2 1 4 ) 。
そして、 それぞれを、 グループ鍵格納フィールド 6 0 2、 グループ識 別子格納フィールド 6 0 1、 I P s e c種別格納フィールド 6 0 4、 了 ルゴリズム格納フィールド 6 0 5に格納し、 グループ管理テーブル 6 0 0を作成する (ステップ 3 2 1 5 ) 。 そして、 ホス ト名格納フィールド 6 0 6に自ノード 1 0 0のホス ト名を登録する (ステップ 3 2 1 6 ) 。 グループ管理テーブル 6 0 0が完成すると、 グループ生成処理部 3 2 0 0は、 本テーブルをメモリカードにコピーすると共に、 自ノー ド 1 0 0のァクセスポリシデータベース 3 0 8に記憶し (ステップ 3 2 1 7, 3 2 1 8 ) 、 処理が終了したことを制御部 3 1 0 0に通知する。
次に、 グループ参加処理 3 3 1 0の処理手順を図 1 4に示す。
制御部 3 1 0 0から処理開始の指示を受けると、 グループ参加処理部 3 3 0 0は、 メモリカード上のグループ管理テーブル 6 0 0のホス ト名 格.鈉フィール ド 6 0 6に自 ノー ド 1 0 0のホス ト名を追加し (ステップ 3 3 1 1 ) 、 メモリカード上のグループ管理テーブル 6 0 0を自身のァ クセスポリ シデータベース 3 0 8内に記憶する (ステップ 3 3 1 2 ) 。 次に、 グループメンバ管理テーブル 8 0 0を作成するともに、 グルー プに既に属している各ノード 1 0 0に、 自身の参加を通知する新メ ンバ 通知処理 3 7 1 0を行なう (ステップ 3 3 1 3 ) 。
そして、 今までのステップで記録されたグループ管理テーブル 6 0 0 の情報およびグループメンバ管理テーブル 8 0 0の情報とを用い、 各ノ ード 1 0 0 との I P s e c通信に用いるセキュリティアソシエーショ ン
9 0 0を生成し (ステップ 3 3 1 4 ) 、 処理が終了したことを制御部 3
1 0 0に通知する。
ここで、 新メ ンバ通知処理 3 7 1 0 についてその処理手順を説明する 。 図 1 5にその処理手順を示す。
新メ ンバ通知処理 3 7 1 0では、 グループ管理テーブル 6 0 0內のホ ス ト名フィールド 6 0 6に格納されているホス トごとに順に、 I CMP Echo Request I Replyによ り I Pア ドレスを取得し (ステップ 3 7 1 2 ) 、 グループメ ンバ管理テーブル 8 0 0に、 ホス ト名ごとに取得した I Pア ドレスを登録する (ステップ 3 7 1 3 ) 。
上記のステップで取得した、 グループを構成する各ノード 1 0 0の I Pァ ドレスに対して加入コマンドを生成し (ステップ 3 7 1 4 ) 、 それ を送信する (ステップ 3 7 1 5 ) 。
そして、 次のホス ト名を読み出して、 ステップ 1 3 3 0から 1 3 6 0 の処理を繰り返す (ステップ 3 3 1 6 ) 。 ここで、 読み出したホス ト名 が自身のホス ト名の場合は、 何も処理を行わず、 次のホス ト名を読み出 す (ステップ 3 7 1 1 ) 。
そして、 グループ管理テーブル 6 0 0のホス ト名格納フィールド 6 0 6 に格納されている、 自身のノー ド 1 0 0を除く全てのノードに対して以 上の処理を終えると (ステップ 3 7 1 7 ) 、 グループ内への新メ ンバ通 知処理 1 3 3 0を終える。
以上、 グループ参加処理 3 3 1 0について説明した。
次に、 グループ離脱処理 3 4 1 0について、 図 1 6を用いて説明する 制御部 3 1 0 0から処理開始の指示を受ける と、 グループ離脱処理部 3 4 0 0は、 ノー ド 1 0 0内のグループ管理テーブル 6 0 0のホス ト名 格納部 6 0 6に登録されているホス ト名を順番に読み出す (ステップ 3 3 1 1 ) 。
ここで、 読み出したホス ト名が自ホス ト名と一致した場合は、 次のホ ス ト名を読み出す。
読み出したホス ト名が自ホス ト名と一致しない場合は、 グループメ ン バ管理テーブル 8 0 0から読み出したホス ト名に対応する I Pア ドレス を検索する (ステップ 3 3 1 2 ) 。 以後、 この I Pア ドレスを検索した I Pア ドレス と呼ぶ。
次に、 送信先 I Pア ドレスを検索した I Pア ドレスと した離脱コマン ドを作成し (ステ ップ 3 3 1 3 ) 、 その送信先 I Pァ ドレスを有するノ ード 1 0 0に送信する (ステップ 3 3 1 4 ) 。
グループ離脱処理部 3 4 0 0は、 自身の保有するグループメンバ管理 テーブル 8 0 0から以上の操作を行なった検索した I Pア ドレスに係わ るデータを削除する (ステップ 3 3 1 5 ) 。
次に、 S Aデータベース 3 0 9に記憶されているセキュリティアソシ エーショ ン 9 0 0から検索した I Pァ ドレス と等しい送信先 I Pァ ドレ スを持つものを抽出し、 そのセキュ リティアソシエーショ ン 9 0 0を削 除する (ステップ 3 3 1 6 ) 。
また、 検索した I Pア ドレスと等しい送信元 I Pア ドレスを持つセキ
ユ リティアソシエーショ ン 9 0 0を抽出し、 それを削除する (ステップ 3 3 1 7 ) 。
グループ離脱処理部 3 4 0 0は、 グループ管理テーブル 6 0 0に登録 されている全てのホス ト名に対して、 以上のステップ 3 3 1 1〜ステツ プ 3 3 1 7の処理を実行した後 (ステ ップ 3 3 1 8 ) 、 自身が保有する グループ管理テーブル 6 0 0を削除し (ステップ 3 3 1 9 ) 、 グループ 離脱処理 3 3 1 0を終了する。 そして、 制御部 3 1 0 0に処理終了を通 知する。
次に、 上記のグループ参加処理 3 3 1 0内のグループ内への新メ ンバ 通知処理 3 7 1 0のステップ 3 7 1 5およびグループ離脱処理 3 3 1 0 のステップ 3 3 1 4において送信された、 それぞれ加入コマンドおよび 離脱コマンドを受信した場合の各ノー ド 1 0 0側での処理を以下に説明 する。
本処理は、 グループ制御 I Pパケッ ト受信処理部 3 6 0 0によつて行 なわれ、 グループ制御 I Pパケッ ト受信処理 3 6 1 0 と呼ぶ。 図 1 7に 本処理の手順を示す。
グループを構成する各ノード 1 0 0は、 ネッ トワークイ ンタフェース 受信処理部 3 1 0においてグループ制御 I Pバケツ トを受信すると、 I P受信部 3 1 4、 T C P /U D P受信処理部 3 1 5を経てグループ管理 処理部 3 0 2のグループ制御 I Pバケツ ト受信処理部 3 6 0 0へ受け渡 す。
受信したグループ制御 I Pバケツ ト受信処理部 3 6 0 0は、 コマンド 識別子格納部 1 0 0 1 に設定されているコマンド識別子が加入であるか 否かを確認する (ステップ 3 6 1 1 ) 。
ステップ 3 6 1 1でコマンド識別子が加入を示す ( 0 0 ) hexであつ た場合、 すなわち、 加入コマンドを受信した場合、 ステップ 3 6 1 2に 進み、 グループ制御 I Pパケッ トのホス ト名 1 0 0 3に設定されている 加入コマンドを送信してきたノード 1 0 0のホス ト名をグループ管理テ
一ブル 6 0 0に登録する (ステ ップ 3 6 1 2 ) 。
そして、 グループメンバ管理テーブル 8 0 0に、 加入コマンドを送信 してきたノー ド 1 0 0のホス ト名と、 グループ制御 I Pバケツ トの I P ァ ドレス格納部 1 0 0 2に設定されているその I Pア ドレス と を登録す る (ステップ 3 6 1 3 ) 。
次に、 グループ制御 I Pバケツ ト受信処理部 3 6 0 0は、 送信用、 す なわち、 自身のノー ド 1 0 0から加入コマン ドを送信してきた新規に加 入したノー ド 1 0 0方向の送信、 および、 受信用、 すなわち、 加入コマ ンドを送信してきた新規に加入したノード 1 0 0から自身のノード 1 0 0方向の送信、 各々のセキュ リティアソシエーショ ン 9 0 0を作成する 処理を行なう (ステップ 3 6 1 4、 3 6 1 5 ) 。
次に、 ステップ 3 6 1 1でコマンド識別子が離脱を示す ( 0 1 ) hex であった場合、 すなわち、 離脱コマン ドを受信した場合、 グループ制御 I Pパケッ ト受信処理部 3 6 0 0は、 ステップ 3 6 1 6に進む。
ここで、 グループ制御 I Pパケッ ト受信処理部 3 6 0 0は、 S Aデー タベース 3 0 9に記憶されているセキュ リティァソシエーシヨ ン 9 0 0 から、 受信したグループ離脱コマン ドのデータ部 1 0 0 0の I Pァ ドレ ス 1 0 0 2に格納されている I Pア ドレス と等しい送信先 I Pア ドレス を持つものを抽出し、 抽出したセキュ リティアソシエーショ ンを削除す る (ステップ 3 6 1 6 ) 。
次に、 受信した離脱コマン ドの I Pア ドレス 1 0 0 2 と等しレヽ I Pァ ドレスを有するデータをグループメ ンパ管理テーブル 8 0 0から削除し (ステップ 3 6 1 7 ) 、 受信した離脱コマン ドのホス ト名 1 0 0 3に格 納されているホス ト名と等しいホス ト名を、 自ノード 1 0 0上のグルー プ管理テーブル 6 0 0から削除する (ステップ 3 6 1 8 ) 。
グループ内の全てのノード 1 0 0において以上の手順を行なう ことに より、 全てのノー ド 1 0 0が保有する離脱したノード 1 0 0に対応する セキュ リティアソシエーショ ン 9 0 0 を削除し、 また、 グループ管理テ
一ブル 6 0 0から、 離脱したノード 1 0 0の情報を削除する。
以上のようにして、 グループを構成するノード 1 0 0に新規加入また は離脱といった変更があった場合、 当該ノード 1 0 0から送信されるグ ループ制御 I Pパケッ トを受信した他のノード 1 0 0において、 自身の 保有するセキュリティァソシエーショ ンおよびグループ管理テーブル 6 0 0が更新される。
以上、 グループ制御 I Pバケツ ト受信処理を説明した。
ここまで、 グループ管理処理部 3 0 2による、 グループの生成、 参加 、 離脱などのグループ管理処理について説明した。
次に、 上記の手順で生成され管理されているグループ内で、 アプリケ ーショ ンを互いに利用する手順を以下に説明する。
アプリケーショ ンの利用は、 I Pバケツ トを互いに送受することによ つて行なわれる。 まず、 この I Pパケッ トの送受信について説明する。 ' 前述のように、 I P s e c通信を行うために予め設定の必要なセキュ リティアソシエーシヨン 9 0 0は、 グループ管理処理 3 0 2において、 新たなグループ構成メンバが追加される際に生成される。 すなわち、 グ ループに属している限り、 I P s e c通信は可能である。
I Pバケツ トを送信するにあたり、 I P s e c送信処理部 3 0 6は、 送信する I Pへッダの送信先 I Pア ドレスをキーに、 S Aデータベース 3 0 9を検索し、 対応する I Pァ ドレスが送信先 I Pア ドレスと して格 納されているセキュリティアソシエーション 9 0 0を抽出する。 抽出し たセキュリティアソシエーショ ン 9 0 0に登録されている情報に基づき 、 I P s e c処理を行い、 I P v 6送信後処理 3 0 7を行い、 ネッ トヮ ークインタフェース送信処理部を介して、 送信先ノードに I Pパケッ ト を送信する。
次に、 I Pパケッ ト受信時の処理手順を図 1 8を用いて説明する。 ネッ トワークインタフエース受信処理部 3 1 0を介して I Pパケッ ト を受信すると、 I P V 6受信前処理部 3 1 1は、 I P v 6受信前処理を
行い (ステップ 4 0 1 0 ) 、 受信した I Pヘッダ内の、 A Hヘッダの有 無をチェックする (ステップ 4 0 2 0 ) 。
受信した I Pヘッダ内に A Hヘッダ 4 0 1があると判断したならば、 その I Pパケッ トを I P s e c受信処理部 3 1 2に受け渡す。
受け取った I P s e c受信処理部 3 1 2は、 後述する I P s e c受信 処理 3 1 2 0を行い (ステップ 4 0 3 0 ) 、 I P v 6受信後処理部 3 1 3に I Pパケッ トを受け渡す。
そして、 I P V 6受信後処理部 3 1 3は、 I P v 6受信後処理 3 1 3 0を行い (ステップ 4 0 4 0 ) 、 処理を終了する。
なお、 ここで、 I P V 6受信後処理部 3 1 3は、 I P v 6受信後処理 3 1 3 0を終えた受信したバケツ トを T C P/UD P受信処理部 3 1 5 に受け渡す。 受け取った T C P /U D P受信処理部 3 1 5は、 受け取つ たパケッ トの受信処理を行い、 アプリケーシヨ ン 3 0 1に受信データと して渡す。
ステップ 4 0 2 0で、 上記のヘッダがないと判断した場合、 その I P パケッ トを受信アクセス制御部 3 1 6に受け渡す。
受け取った受信アクセス制御部 3 1 6は、 それが I C M Pバケツ トで あるか否かチェックする (ステップ 4 0 5 0 ) 。
ステップ 4 0 5 0で、 受信した I Pパケッ トが、 I C M Pパケッ トで あると判断されたならば、 そのまま I P V 6受信後処理部 3 1 3に受け 渡し、 I P v 6受信後処理 3 1 3 0を行い (ステップ 4 0 4 0 ) 、 処理 を終了する。
ステップ 4 0 5 0で、 I C M Pバケツ トではないと判断されたならば 、 受信アクセス制御部 3 1 6は、 その I Pパケッ トをグループ外のノ一 ド 1 0 0から送信されたグループ外 I Pバケツ トであると判断し、 後述 するグループ外 I Pパケッ ト受信処理 3 1 6 0を行い (ステップ 4 0 6 0 ) 、 処理を終了する。
次に、 上記の I P s e c処理 3 1 2 0について説明する。
I P s e c処理部 3 1 2は、 AHへッダを有する I Pバケツ トを受信 すると、 I Pヘッダの送信元 I Pア ドレス、 送信先 I Pア ドレス、 AH ヘッダ 4 0 1に設定されている S P I がー致するセキュリティアソシェ ーショ ン 9 0 0を S Aデータベース 3 0 9から抽出する。
そして、 抽出したセキュリティアソシエーショ ン 9 0 0に記憶されて いる認証鍵を用いて受信した I Pバケツ トの認証情報を作成し、 AHへ ッダ 4 0 1に設定されている認証情報と比較する。
両者が一致していれば、 受信した I Pバケツ トをグループに属する正 当なノード 1 0 0力 らの送信とみなし、 I P v 6受信後処理部 3 1 3に 受け渡す。 そして、 一致しない場合は、 その I Pバケツ ト破棄する。 以上 I P s e c処理 3 1 2 0について説明した。
次に、 受信アクセス制御部 3 1 6によるグループ外バケツ ト受信処理 3 1 6 0について説明する。
以上のように、 本実施形態においては、 グループに属するノード 1 0 0は、 グループ外のノード 1 0 0力、ら、 A Hヘッダを有する I Pパケッ トを受信した場合は、 I P s e c通信処理部 3 1 2において、 また、 A Hへッダを有しない I Pバケツ トを受信した場合は、 I P v 6受信前処 理部 3 1 1において、 当該 I Pバケツ トが、 I P V 6受信後処理部 3 1 3、 T C P /U D P受信処理部 3 1 5を介してアプリケーショ ン 3 0 1 に到達することを排除している。
しかし、 本実施形態においては、 ノード 1 0 0によっては、 その保有 するアプリケーションの利用を、 グループ外のノード 1 0 0にも開放し ているものがある。 前述したように、 このようなアプリケーショ ンを有 するノード 1 0 0は、 アプリケーショ ンごとのポート番号を、 アクセス 制御対象アプリケーション管理テーブル 7 0 0において管理している。
グループ外のノード 1 0 0から AHへッダを有する I Pパケッ トを受 信した場合は、 その I Pパケッ トを復号することができないため、 それ は I P s e c通信処理部 3 1 2において破棄することは先に説明した。
グループ外 I Pバケツ ト受信処理 3 1 6 0は、 グループ外のノード 1 0 0から通常の I Pバケツ トを受信した際に、 グループ外のノード 1 0 0に開放しているアプリケーショ ンに当該 I Pパケッ トを送達する処理 である。
グループ外 I Pバケツ ト受信処理 3 1 6 0では、 I Pパケッ トを受け 取ったノード 1 0 0が、 グループ外のノード 1 0 0に対し何らサービス 機能を提供しない場合、 アクセスエラーをデータと して格納した I Pパ ケッ トを送信元に対して送信し、 受信した I Pバケツ トは破棄する。 こ れに対し、 グループ外のノード 1 0 0に対して何らかのサービス機能を 提供する場合は、 アクセス制御対象アプリケーション管理テーブル 7 0 0の登録に従って、 アプリケーションを提供するよう制御している。 以下にその手順を図 1 9を用いて説明する。
受信アクセス制御部 3 1 6は、 I P v 6受信前処理部 3 1 1カゝら I C M Pパケッ トではない I Pパケッ トを受信した場合、 当該 I Pバケツ ト から読取った送信先ポート番号とアクセス制御対象アプリ ケーシヨ ン管 理テーブル 7 0 0に登録されているポート番号 7 0 1 との比較を行なう (ステップ 3 1 6 1 ) 。
アクセス制御対象アプリケーション管理テーブル 7 0 0には、 グルー プ外のノードに利用が許可されているアプリケーショ ンのポー ト番号が 登録されているため、 両者が一致した場合、 サービス機能を要求元ノー ド 1 0 0に提供できることとなる。
この場合、 受信アクセス制御部 3 1 6は、 受け取った I Pパケッ トを I P v 6受信後処理部 3 1 3に受け渡し、 受け取った I P v 6受信後処 理部 3 1 3は、 I P V 6受信後処理 3 1 3 0を行なう (ステップ 3 1 6 4 ) 。
そして、 I P V 6受信後処理部 3 1 3から処理された I Pバケツ トを 受け取った T C P/UD P受信処理部 3 1 5は、 それを、 アプリケ——ン ヨ ン 3 0 1に受け渡す。
ステップ 3 1 6 1において、 ポート番号が一致しない場合は、 提供で きるサービス機能がないため、 受信アクセス制御部 3 1 6は、 アクセス エラーをデータと して格納した I Pバケツ トを生成し I P送信部 3 0 4 から送信元に送信し (ステップ 3 1 6 2 ) 、 受信した I Pバケツ トは破 棄する (ステップ 3 1 6 3 ) 。
以上、 グループ外 I Pパケッ ト受信処理について説明した。
このように、 本実施形態においては、 グループ内のノード 1 0 0間で は I P s e c通信を行い、 グループ外のノード 1 0 0 とは通常の I Pパ ケッ トによる通信を行うことで、 アクセス制御対象アプリケーショ ン管 理テーブル 7 0 0で管理している各アプリケーションのポート番号に従 つて、 アプリケーションごとにグループ内外のアクセス許可を制御する ことができる。 これにより、 一つのノード 1 0 0において、 グループだ けで利用するサービス機能と、 誰もが利用できるサービス機能とを実装 し、 それぞれへのアクセス制御を可能と している。
本実施形態によれば、 ホームネッ トワークを構成するノード 1 0 0に おいて作成したグループ鍵を含む I P s e c通信に必要な情報を、 共通 のメモリカードを介して、 利用者が相互に利用することを許可する各ノ ード 1 0 0に配布する。
配布されたノード 1 0 0は、 グループに所属している他のノード 1 0 0と I P s e c通信ができるように、 セキュリティアソシエーショ ン 9 0 0を設定するとともに、 新規加入したことを、 グループに所属してい る他のノード 1 0 0に通知する。
通知を受けたノード 1 0 0は、 それぞれ、 新規に加入したノード 1 0 0 との I P s e c通信ができるように、 セキュリティアソシエーショ ン 9 0 0を設定する。
以上のように、 本実施形態では、 例えば、 通信を開始する際に認証サ ーバ、 あるいは鍵管理手段を備えた装置等といったグループを構成する 機器以外の装置を介さずに、 互いに認証可能で安全な通信を行なうこと
のできるグループを、 そのグループを構成する機器が、 容易に生成し管 理することを実現している。
また、 グループを生成し管理するために必要な情報を、 メモリカー ド といった記憶媒体を介して各ノードに与えること、 および、 グループの 生成、 グループへの参加、 および、 グループからの離脱の指示を各ノー ドに与えることを実現している。
このよ うに、 本実施形態では、 サーバなどの特別な機器を設けること なく、 また、 複数のマスタ鍵などを備えた I Cカードを用意してグルー プを構成する機器それぞれに予めセッ トしておくなどの事前の準備をす ることなく、 グループを構成する機器間でのみ、 容易に I P s e c通信 可能な環境を構築できる。
また、 本実施形態では、 一つのノードに、 グループ内のノードのみ利 用できるアプリケーショ ンとグループ外のノードも利用できるアプリケ ーシヨンとが実装されている場合も容易にそれぞれのアクセス制御を実 現できる。
なお、 本実施形態では、 グループ生成、 加入、 離脱時の指示を行なう 際に利用する記憶媒体と してメモリカードを例にあげ、 説明したが、 利 用する記憶媒体はこれに限られない。 可搬型の記憶媒体であり、 各ノー ドがそのインタフェースを備えていれば、 どのような記憶媒体であつて もよい。
また、 本実施形態では、 I P s e c通信を行うために必要な情報の授 受を記憶媒体で行なう といった設定と したが、 これに限られない。 例え ば、 各ノードに入力装置を備え、 ユーザが入力するようにしてもよい。
さらに、 グループからの離脱処理を開始するきつかけと して、 空のメ モリカードの入力を例にあげ説明したが、 これに限られない。 例えば、 各ノードがリセッ トボタンを備え、 ユーザがそのリセッ トボタンを介し て離脱処理を開始する指示を与えるよ うにしてもよい。
また、 L E Dを備えることにより、 利用者に対しグループ生成、 加入
処理の終了を通知する事を実現している。 通知のための機能も、 これに 限られない。
なお、 本発明は上記の実施形態に限定されるものではなく、 その要旨 の範囲内で様々な変形が可能である。
例えば、 上記の実施形態では、 宅内のネッ トワークを例にと り説明し たが、 本発明はこれに限定されない。 本発明は、 互いに認証を必要とす る様々なネッ トワークシステムに広く適用できる。
本実施形態においては、 特別に認証サーバまたは鍵管理手段を備えた 装置を保有しなくても、 グループを構成する機器間で、 互いにグループ 構成機器であることを認証し、 安全な通信を実現するグループを容易に 生成し、 管理することができる。
また、 機器がグループ内の機器にのみ提供するアプリケーシヨンとグ ループ外の機器に提供するアプリケーシヨンとを有する場合、 そのァク セス制御を簡単な構成にて行なうことができる。