(57)【要約】    【課題】  身元秘匿要求並びにアクセス制限要求を同時に満たすことを可能とした通信装置を提供する。    【解決手段】  通信システムは、端末機器１、サーバ２、ＤＢサーバ３、ローカルリンクネットワーク１０、ルータ１１、ＩＰｖ６インターネット１２を備える。端末機器１は、宛先アドレス、ＥＵＩ−６４インタフェースＩＤ、時刻データ等を格納した通信管理テーブルを記憶した不揮発メモリ２５を備え、サーバ２は、製造ＩＤ、ＥＵＩ−６４インタフェースＩＤ、時刻データ等を格納した通信管理テーブルを記憶したＨＤ３５を備える。端末機器１は、サーバ側と事前共有される製造ＩＤを初期値とし、サーバ側と同期してアドレス生成入力値を更新し、ハッシュ関数を利用し、アドレス生成入力値から送信元アドレスを生成する。サーバ２は、端末機器側と事前共有される製造ＩＤを初期値とし、端末機器側と同期してアドレス生成入力値を更新し、ハッシュ関数を利用し、アドレス生成入力値から送信元アドレスを生成する。【選択図】      図１
2005079921.tif 000002
【特許請求の範囲】
【請求項１】
受信側と共有される識別子を初期値とし、前記受信側と同期してアドレス生成入力値を更新する更新手段と、電子認証で用いる演算手法に基づき、前記アドレス生成入力値から送信元アドレスを生成する生成手段とを備えることを特徴とする通信装置。
【請求項２】
送信側と共有される識別子を初期値とし、前記送信側と同期してアドレス生成入力値を更新する更新手段と、電子認証で用いる演算手法に基づき、前記アドレス生成入力値から送信元アドレスを生成する生成手段とを備えることを特徴とする通信装置。
【請求項３】
前記電子認証で用いる演算手法は、ハッシュ関数を利用した演算手法であることを特徴とする請求項１又は２記載の通信装置。
【請求項４】
通信装置により実行されるアドレス生成方法であって、
受信側と共有される識別子を初期値とし、前記受信側と同期してアドレス生成入力値を更新する更新ステップと、電子認証で用いる演算手法に基づき、前記アドレス生成入力値から送信元アドレスを生成する生成ステップとを備えることを特徴とするアドレス生成方法。
【請求項５】
通信装置により実行されるアドレス生成方法であって、
送信側と共有される識別子を初期値とし、前記送信側と同期してアドレス生成入力値を更新する更新ステップと、電子認証で用いる演算手法に基づき、前記アドレス生成入力値から送信元アドレスを生成する生成ステップとを備えることを特徴とするアドレス生成方法。
【請求項６】
アドレス生成方法をコンピュータに実行させるプログラムであって、
受信側と共有される識別子を初期値とし、前記受信側と同期してアドレス生成入力値を更新する更新モジュールと、電子認証で用いる演算手法に基づき、前記アドレス生成入力値から送信元アドレスを生成する生成モジュールとを備えることを特徴とするプログラム。
【請求項７】
アドレス生成方法をコンピュータに実行させるプログラムであって、
送信側と共有される識別子を初期値とし、前記送信側と同期してアドレス生成入力値を更新する更新モジュールと、電子認証で用いる演算手法に基づき、前記アドレス生成入力値から送信元アドレスを生成する生成モジュールとを備えることを特徴とするプログラム。
【請求項８】
前記請求項６又は７記載のプログラムを格納することを特徴とするコンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、IPv6に対応したインターネット環境におけるIPv6対応機器のアドレス設定方法に関し、特に、IPv6対応機器からサーバへアクセスする場合に、IPv6対応機器及びサーバの当事者間のみ知り得ると共に第三者に対しては秘匿されたIPv6アドレスを生成し設定することができる通信装置、アドレス生成方法、プログラム、及び記憶媒体に関する。
【背景技術】
【０００２】
IP（Internet Protocol）アドレスは、Internet Protocol Version 6（以下IPv6と略称）であるならば、2001:0340:1000::1といった表記がなされる。IPv6アドレスの構成は、上位64bitをネットワークID、下位64bitをインタフェースIDとしている。ネットワークIDは、端末機器が現在接続しているネットワークを一意に識別する識別子である。インタフェースIDは、端末機器のネットワークインタフェースを一意に識別する識別子である。
【０００３】
IPv6アドレスについては、端末機器が該IPv6アドレスを自動で設定することが可能な方法が標準化されている。IPv6対応の端末機器が自らのグローバルユニークなIPv6アドレスを設定する場合は、ネットワークIDは同一リンク内のルータからの通知により決定し、インタフェースIDは端末機器自らが生成し、ルータから通知されたネットワークID64bitとインタフェースID64bitをつなぎあわせて設定する。
【０００４】
IPv6では、インタフェースIDの設定方法としてEUI-64から導出する方式が提供されている。この方式は、端末機器のネットワークインタフェースに保持されているIEEE（Institute of Electrical and Electronics Engineers）識別子、いわゆるMAC（Media Access Control）アドレスからインタフェースIDを生成する。MACアドレスはネットワークインタフェースのハードウエアに対し１対１に一意に設定されており、MACアドレスから生成されたインタフェースIDも一意なアドレスであることが保証されている。
【０００５】
しかし、EUI-64からインタフェースIDを導出する方式では、ハードウエアに１対１に対応する情報を固定的に用いることになり、このインタフェースIDから、端末機器を特定可能であり、もしくは、その端末機器の使用者が一人の場合は使用者個人さえもが１対１で特定可能であるため、第三者がこのインタフェースIDを用いたIPv6アドレスの通信を傍受することによりプライバシーが著しく侵害されることが懸念される。
【０００６】
この課題を解決するために、RFC（Request for Comments）文書として、いわゆる匿名アドレスの使用が提案されている（例えば、非特許文献１参照）。
【０００７】
具体的な方法の１つは、MACアドレスからいわゆるハッシュ関数MD5（Message Digest 5）により128bitのダイジェスト値を計算し、ダイジェスト値を上位64bitと下位64bitに分割し、一方をインタフェースIDとして設定し、もう一方を次回の計算に利用する方法である。ハッシュ関数MD5により得られたダイジェスト値は入力値がユニークであればダイジェスト値もまたユニークであり、且つハッシュ関数MD5はダイジェスト値から入力値は算出できない関数である。また、端末機器が何らかの方法により毎回ランダムな値を生成し、この生成した値からインタフェースIDを生成する方法も提案されている。
【０００８】
このように、IPv6では、端末機器が独自の方法で設定したIPv6アドレスを使用してもよく、また、端末機器はネットワークインタフェースに複数のIPアドレスを設定し、この複数のIPアドレスを用いて通信を行ってもよい。
【０００９】
また、一方で、IPv6では、IPv4のようにプライベートアドレスの使用が意味を持たなくなり、個々の端末機器がグローバルリーチャブルのIPアドレスを持ち通信を行うような環境が一般的となる。また、端末機器が接続するネットワークを移動しても、下位64bitのインタフェースIDは変化しないアドレス構成である。そのため、IPアドレス特に下位64bitのインタフェースID自体及びその識別子に含まれている情報等によって、端末機器を識別特定した上で通信を制御するアクセスコントロール手法が強く要望されている。
【非特許文献１】RFC3041“Privacy Extentions for Stateless Address Autoconfiguration in IPv6”
【発明の開示】
【発明が解決しようとする課題】
【００１０】
ところで、上記の従来技術においては次のような問題があった。
【００１１】
先ず、身元秘匿要求については、ネットワークアドレスは仕方がないが、インタフェースIDは秘匿したいという要望がある。しかし、EUI-64から導出されるインタフェースIDの設定によるIPv6アドレスは、ネットワークを移動してもサーバから端末機器を特定することが可能であるが、第三者からも端末機器を特定されてしまいプライバシー侵害の恐れがある。
【００１２】
次に、アクセス制限要求については、特定の端末機器にのみ特定のサービスを提供する特定のサーバは、端末機器に対するアクセス制限としてIPアドレスによるアクセス制限を行いたいという要望がある。しかし、IPアドレスによるアクセス制限は処理負荷も軽く効果が高いが、上記RFC3041で規定されている匿名アドレスで通信を行う端末機器は、サーバにとっても匿名であるため、サーバから端末機器を特定することができず、IPアドレスによるアクセス制限を行うことができない。
【００１３】
従来においては、上記のように、身元秘匿要求並びにアクセス制限要求という一見矛盾する要求を同時に満たすことが要望されていた。
【００１４】
本発明の目的は、身元秘匿要求並びにアクセス制限要求を同時に満たすことを可能とした通信装置、アドレス生成方法、プログラム、及び記憶媒体を提供することにある。
【課題を解決するための手段】
【００１５】
上述の目的を達成するために、本発明は、通信装置が、受信側と共有される識別子を初期値とし、前記受信側と同期してアドレス生成入力値を更新する更新手段と、電子認証で用いる演算手法に基づき、前記アドレス生成入力値から送信元アドレスを生成する生成手段とを備えることを特徴とする。
【００１６】
また、本発明は、通信装置が、送信側と共有される識別子を初期値とし、前記送信側と同期してアドレス生成入力値を更新する更新手段と、電子認証で用いる演算手法に基づき、前記アドレス生成入力値から送信元アドレスを生成する生成手段とを備えることを特徴とする。
【００１７】
また、本発明は、前記識別子は、前記受信側と事前に共有されることを特徴とする。
【００１８】
また、本発明は、前記識別子は、前記送信側と事前に共有されることを特徴とする。
【００１９】
また、本発明は、前記識別子は、前記受信側と通信開始時に共有されることを特徴とする。
【００２０】
また、本発明は、前記識別子は、前記送信側と通信開始時に共有されることを特徴とする。
【００２１】
また、本発明は、前記識別子は、製造ID、EUI-64インタフェースID、時刻データを含む群から選択されることを特徴とする。
【００２２】
また、本発明は、前記電子認証で用いる演算手法は、ハッシュ関数を利用した演算手法であることを特徴とする。
【００２３】
また、本発明は、Internet Protocol Version 6に対応したインターネットに接続可能であることを特徴とする。
【００２４】
また、本発明は、識別子を、受信側或いは送信側と通信開始時に共有する場合、IPsecにおけるDH鍵交換方式を用いて初期値を交換し共有してもよい。
【００２５】
また、本発明は、DH鍵交換方式で交換された鍵を、ペイロード部分の暗号化及び復号化に利用してもよい。
【発明の効果】
【００２６】
本発明によれば、受信側と共有される識別子を初期値とし、受信側と同期してアドレス生成入力値を更新し、電子認証で用いる演算手法に基づき、アドレス生成入力値から送信元アドレスを生成するので、通信装置間（例えば特定の端末機器と特定のサーバとの間）の通信において、両者間のみで特定できる通信毎に生成した送信元アドレスにより、サーバへのアクセスを制御可能な通信を行うことができる。これにより、特定の端末機器と特定のサーバとの間の通信において、第三者にとってはネットワーク上においては特定の端末機器の身元が秘匿されたランダムな送信元アドレスを利用しながら、特定のサーバからは特定の端末機器からの一見ランダムに見える送信元アドレスを特定することができ、この送信元アドレスにより特定のサーバへのアクセスを特定の端末機器だけに許可するようなアクセス制限通信が可能となり、身元秘匿要求並びにアクセス制限要求を同時に満たすことができる。
【００２７】
また、本発明によれば、送信側と共有される識別子を初期値とし、送信側と同期してアドレス生成入力値を更新し、電子認証で用いる演算手法に基づき、アドレス生成入力値から送信元アドレスを生成するので、通信装置間（例えば特定の端末機器と特定のサーバとの間）の通信において、両者間のみで特定できる通信毎に生成した送信元アドレスにより、サーバへのアクセスを制御可能な通信を行うことができる。これにより、特定の端末機器と特定のサーバとの間の通信において、第三者にとってはネットワーク上においては特定の端末機器の身元が秘匿されたランダムな送信元アドレスを利用しながら、特定のサーバからは特定の端末機器からの一見ランダムに見える送信元アドレスを特定することができ、この送信元アドレスにより特定のサーバへのアクセスを特定の端末機器だけに許可するようなアクセス制限通信が可能となり、身元秘匿要求並びにアクセス制限要求を同時に満たすことができる。
【発明を実施するための最良の形態】
【００２８】
以下、本発明の実施の形態を図面に基づき説明する。
【００２９】
［第１の実施の形態］
図１は、本発明の第１の実施の形態に係る通信システムの構成例を示すブロック図である。
【００３０】
図１において、通信システムは、端末機器１、サーバ２、データベース（ＤＢ）サーバ３、ローカルリンクネットワーク１０、ルータ１１、IPv6に対応したインターネット（以下IPv6インターネットと略称）１２を備えている。
【００３１】
本実施の形態では、IPv6インターネット環境における端末機器１とサーバ２との間の通信において、端末機器１はサーバ２にアクセスし情報を入手する場合に、両者間でのみ知り得ると共に第三者からは匿名に見えるIPv6アドレスを生成し、IPv6アドレスにより通信を行い、サーバ３は接続してくる端末機器１のIPv6アドレスによりサーバ３に対するアクセス制限を可能にする通信について説明する。
【００３２】
ローカルリンクネットワーク１０には、端末機器１、ルータ１１が接続する。ローカルリンクネットワーク１０の物理層については特に種類は問わず、イーサネット（登録商標）、IEEE802.11、Bluetoothなど、物理層の上位でIPv6による通信ができれば問題ない。本実施の形態では、ローカルリンクネットワーク１０としてイーサネット（登録商標）を想定して説明する。また、IPv6インターネット１２には、ルータ１１、サーバ２、ＤＢサーバ３が接続する。端末機器１は、図２に示す構成を有する。サーバ２は、図３に示す構成を有する。ＤＢサーバ３は、不図示の機器属性データベースを有する。ルータ１１は、ローカルリンクネットワーク１０の管理情報を保持する。
【００３３】
端末機器１は、生産工場で製造IDを端末機器自身のＲＯＭに格納された状態で出荷される。生産工場では、端末機器の製造IDと、生産時期・仕向け地等の端末機器生産情報と、端末機器のカテゴリ・機能・性能・ファームウェアのバージョン等の端末機器属性情報等が、ＤＢサーバ３の機器属性データベースに登録される。製造IDは、一般的に端末機器固有のユニークな値であり、本実施の形態でもこれを前提とする。また、端末機器１は、予めネットワークインタフェースを装備した状態で出荷されることとし、ネットワークインタフェースに設定されているMACアドレスも、ＤＢサーバ３の機器属性データベースに登録される。
【００３４】
図２は、端末機器１の一般的な構成例を示すブロック図である。
【００３５】
図２において、端末機器１は、ＣＰＵ２１、ＲＯＭ２２、ＲＡＭ２３、ネットワークインタフェース２４、不揮発メモリ２５、システムバス２６を備えている。
【００３６】
ＣＰＵ２１は、端末機器１の全体の動作を制御する中央処理装置であり、ＲＯＭ２２に格納されたプログラム（更新手段、生成手段）に基づき、図４、図６、図７、図８のフローチャートに示す処理を実行する。ＲＯＭ２２は、端末機器１の製造ID及びプログラムなど、消去不可能なデータが格納されている読み出し専用記憶装置である。ＲＡＭ２３は、データを一時記憶する一時記憶装置である。不揮発メモリ２５は、電源が切断されても格納されたデータが失われない記憶装置であり、後述する通信管理テーブル（図１２（Ｂ）参照）を格納している。ネットワークインタフェース２４は、端末機器１が外部機器とデータの送受信を行う際に使用されるインタフェースである。システムバス２６は、上記各構成要素を接続する内部バスである。
【００３７】
端末機器１は、更に、ハードディスクなどの大容量記憶装置、ディスプレイやキーボード、マウス、プリントアウト部といった入出力機器用のインタフェースなどを備えていてもよい。端末機器１は、ルータ１１経由でIPv6インターネット１２と接続可能で、IPv6通信が行えれば問題ない。
【００３８】
図３は、サーバ２の一般的な構成を示すブロック図である。
【００３９】
図３において、サーバ２は、ＣＰＵ３１、ＲＯＭ３２、ＲＡＭ３３、ネットワークインタフェース３４、ハードディスク（ＨＤ）３５、システムバス３６を備えている。
【００４０】
ＣＰＵ３１は、サーバ２の全体の動作を制御する中央処理装置であり、ＲＯＭ３２に格納されたプログラム（更新手段、生成手段）に基づき、図５、図６、図９、図１０のフローチャートに示す処理を実行する。ＲＯＭ２２は、プログラムなど、消去不可能なデータが格納されている読み出し専用記憶装置である。ＲＡＭ３３は、データを一時記憶する一時記憶装置である。ＨＤ３５は、外部記憶装置であり、後述する通信管理データベースが登録されており、通信管理テーブル（図１２（Ａ）参照）の格納に使用される。ネットワークインタフェース３４は、サーバ２が外部機器とデータの送受信を行う際に使用されるインタフェースである。システムバス３６は、上記各構成要素を接続する内部バスである。
【００４１】
サーバ２は、IPv6インターネット１２と接続可能で、IPv6通信が行えれば問題ない。また、サーバ２は、IPv6インターネット１２経由でＤＢサーバ３の機器属性データベースに登録されている端末機器毎の属性データを参照でき、端末機器の製造IDを含む情報をＨＤ３５の通信管理データベース内の通信管理テーブルに格納している。この場合、MACアドレスは、EUI-64により導出されるインタフェースIDに変換され格納される。
【００４２】
図１２（Ａ）は、サーバ２で管理される上述した通信管理テーブルの例を示す図である。
【００４３】
図１２（Ａ）において、サーバ側の通信管理テーブルには、製造ID、EUI-64インタフェースID、時刻データ、通信開始フラグ、制御識別子、データ領域（if0、if1、ifn1、if2、ifn2）が格納されている。
【００４４】
図１２（Ｂ）は、端末機器１で管理される上述した通信管理テーブルの例を示す図である。
【００４５】
図１２（Ｂ）において、端末機器側の通信管理テーブルには、宛先アドレス、EUI-64インタフェースID、時刻データ、通信開始フラグ、制御識別子、データ領域（if0、if1、ifn1、if2、ifn2）が格納されている。
【００４６】
次に、上記構成を有する本実施の形態の通信システムにおいて、端末機器１は端末機器自身が生成したインタフェースIDを用いたIPv6アドレスによりサーバ２と通信を行い、サーバ２はこのインタフェースIDを端末機器１から送信されたパケットの受信以前に特定し、それに基づきアクセス制限を行うことができるまでの処理を説明する。
【００４７】
先ず、端末機器１側の登録処理を図４に基づき説明する。
【００４８】
図４は、端末機器１で実行される登録処理を示すフローチャートである。
【００４９】
端末機器１は端末機器自身が生成したインタフェースIDを用いたIPv6アドレスによりサーバ２と通信を開始する前に、サーバ２に対する通信開始を登録しなければならない。サーバ２のアドレスは、本発明による方式で端末機器１が通信する相手として、端末機器１の不揮発メモリ２５内の通信管理テーブル（図１２（Ｂ）参照）に宛先アドレスとして登録される。
【００５０】
図４において、端末機器１はサーバ２に対し通信登録要求と共に、ＲＯＭ２２から端末機器自身の製造IDを読み込み、ハッシュ関数（一方向性関数）により演算を行い、演算により得たダイジェスト値を機器識別子として送信する（ステップＳ４０１）。この際に利用するハッシュ関数は、図６に示す制御識別子生成処理で用いるSHA-1（Secure Hash Algorithm 1）とする。後述の通り、ハッシュ関数は端末機器１とサーバ２で同じものが使用される。また、この際の送信元アドレス（端末機器自身のアドレス）は、EUI-64によりMACアドレスから導出されたインタフェースIDによるものとする。EUI-64インタフェースIDは不揮発メモリ２５内の通信管理テーブルに登録する。
【００５１】
次に、端末機器１は上記ステップＳ４０１で通信登録要求と共に機器識別子をサーバ２へ送信したことに伴い、サーバ２における端末機器１の登録処理に関する結果をサーバ２から受信すると、登録処理に関する結果の判別を行う（ステップＳ４０２）。サーバ２から登録完了通知を受けた場合は、端末機器１はサーバ２から登録完了通知と共に送信されてきた時刻データを不揮発メモリ２５内の通信管理テーブルに登録し（ステップＳ４０３）、本処理を終了する。サーバ２から登録エラーが返ってきた場合は、端末機器１は表示部（図示略）に登録エラーを表示し（ステップＳ４０４）、本処理を終了する。
【００５２】
次に、サーバ２側の通信管理処理及び登録処理を図９、図１０、図５に基づき説明する。
【００５３】
図９及び図１０は、サーバ２で実行される端末機器１と通信を行う際の通信管理処理を示すフローチャートである。
【００５４】
図９及び図１０において、サーバ２は端末機器１から受信したパケットのヘッダの送信元アドレスからインタフェースIDを取得し（ステップＳ８０１）、次いでＨＤ３５内の通信管理データベースを検索し（ステップＳ８０２）、上記取得したインタフェースID が、通信管理データベース内の通信管理テーブルのEUI-64インタフェースID、if1、if2に登録されている値のどの値と一致するか否か、また通信フラグが立っているか否かを判断し、判断結果に基づき該当する処理に分岐する。
【００５５】
上記取得したインタフェースIDが通信管理データベースの通信管理テーブルにEUI-64インタフェースIDとして登録されている値と一致し、且つ、通信開始フラグが立っていない場合は、端末機器１の登録処理が行われていないことを示しているため（ステップＳ８０６）、サーバ２は端末機器１からの通信登録要求を受け登録処理を起動し（ステップＳ８０７）、取得したインタフェースID（この場合はEUI-64インタフェースID）を通信管理テーブルのif0に登録する。この後はステップＳ８０５に進む。
【００５６】
上記取得したインタフェースIDが通信管理データベースの通信管理テーブルにEUI-64インタフェースIDとして登録がない場合は、サーバ２は端末機器１が未登録の端末機器であると判断し（ステップＳ８０８）、端末機器１から受信したパケットを破棄するか、または未登録通知（エラー）を端末機器１に送信する（ステップＳ８０９）。
【００５７】
尚、上記ステップＳ８０２の分岐先の処理であるステップＳ８０３〜ステップＳ８０５については後述する。
【００５８】
図５は、サーバ２で実行される登録処理を示すフローチャートである。図５に示す登録処理は上記図１０のステップＳ８０７で起動される。
【００５９】
図５において、登録処理が起動されると、サーバ２は端末機器１から通信登録要求と共に送信された機器識別子を取得する（ステップＳ５０１）。次に、サーバ２は取得した機器識別子を、ＨＤ３５内の通信管理データベース内の通信管理テーブルに登録されている端末機器１の製造IDをハッシュ関数SHA-1で演算して得たダイジェスト値と照合し、機器識別子とダイジェスト値が一致するか否かを判断する（ステップＳ５０２）。
【００６０】
機器識別子とダイジェスト値が一致する場合は、端末機器１からの登録要求であることが確認されたことになるため、サーバ２は時刻データをサーバ２の内部クロック等から取得し、通信管理データベース内の通信管理テーブルに時刻データを登録し（ステップＳ５０３）、端末機器１に対し登録完了通知と共にこの時刻データを送信する（ステップＳ５０４）。機器識別子とダイジェスト値が一致しない場合は、サーバ２は端末機器１に対し登録エラーである旨を送信する（ステップＳ５０５）。
【００６１】
ここまでの登録処理で端末機器１の登録が完了し、以降で端末機器１からサーバ２への通信に使用するアドレスを生成するための初期値として、製造ID、EUI-64インタフェースID、時刻データが確認され、端末機器１及びサーバ２で共有されたことになる。
【００６２】
次に、端末機器１とサーバ２で実行される制御識別子生成処理を図６に基づき説明する。
【００６３】
図６は、端末機器１とサーバ２で実行される制御識別子生成処理を示すフローチャートである。
【００６４】
図６において、端末機器１（またはサーバ２）は通信管理テーブルからif0に登録されているインタフェースIDを取得する（ステップＳ６０１）。次に、端末機器１（またはサーバ２）は通信管理テーブルの通信開始フラグが立っているか否かを確認する（ステップＳ６０２）。
【００６５】
通信開始フラグが立っていない場合は、ステップＳ６０５に進む。この状態は、登録処理が行われたのみで制御識別子が生成されていない状態である。端末機器１（またはサーバ２）は通信管理テーブルに格納されている製造ID、取得したインタフェースID（この場合はEUI-64インタフェースID）、時刻データをつなぎあわせた値を入力値として、ハッシュ関数SHA-1で演算を行い160bit長のダイジェスト値を取得し、ダイジェスト値を制御識別子として通信管理テーブルに登録する（ステップＳ６０５）。通信開始フラグが立っている場合は、後述のステップＳ６０３に進む。
【００６６】
ここで利用するハッシュ関数は、条件として、128bit以上のダイジェスト値を出力する点と、サーバ２と端末機器１で同じハッシュ関数を利用する点を満足すれば、特に限定しない。ここではハッシュ関数としてSHA-1を想定して説明を進める。
【００６７】
上記ステップＳ６０３またはステップＳ６０５の処理が終了すると、端末機器１（またはサーバ２）は登録した制御識別子を、先頭bitから順に64bit毎に、先頭の64bit、2番目の64bit、残りの32bitに分割し、更に先頭64bit長のデータ（if1とする）と、2番目の64bitと残りの32bitを連結した96bit長のデータ（ifn１とする）の組と、2番目の64bit長のデータ（if2とする）と、先頭64bitと残りの32bitを連結した96bit長のデータ（ifn2とする）の組の２組のbitデータを生成し、通信管理テーブルに登録し、通信開始フラグが立っていない場合は通信開始フラグを立てる（ステップＳ６０４）。この処理を模式化して図示したものを図１１に示す。
【００６８】
図１１は、ダイジェスト値からインタフェースIDを生成する例を示す図である。
【００６９】
図１１において、上述したように、160bit長のダイジェスト値が、先頭の64bit長データ、2番目の64bit長データ、残りの32bit長データに分割された後、if1とifn１の組と、if2とifn2の組の２組のbitデータとして生成される様子が示されている。
【００７０】
制御識別子生成処理は端末機器１及びサーバ２それぞれで行われるが、初期値（製造ID、EUI-64インタフェースID、時刻データ）をこの制御識別子生成処理の前処理において端末機器１及びサーバ２で共有しているため、制御識別子生成処理で得られたif1、ifn1、if2、ifn2の値は端末機器１及びサーバ２で同じ値となる。
【００７１】
次に、制御識別子生成処理で得られたif1、 ifn1、 if2、ifn2の値を用いて、端末機器１がどのようにインタフェースIDを設定して通信を行うかを図７及び図８に基づき説明する。
【００７２】
図７及び図８は、端末機器１で実行される通信管理処理を示すフローチャートである。
【００７３】
端末機器１は、特定のサーバ２との通信以外に他のIPv6対応機器と通信を行うことが想定されるが、その場合は、生成されたインタフェースIDにより通信を行う必要はなく、EUI-64インタフェースIDを用いて通信を行えばよい。また、上述した通り、端末機器１からサーバ２への通信開始登録時にはEUI-64インタフェースIDを用いて通信を行う。
【００７４】
図７及び図８において、端末機器１は上位層のアプリケーションから設定される宛先アドレスを取得し（ステップＳ７０１）、不揮発メモリ２５内の通信管理テーブルを検索し、宛先アドレスが通信管理テーブルに登録されているか否かを判別する（ステップＳ７０２）。宛先アドレスが通信管理テーブルに登録されていない場合は、一般の通信相手のIDとして、EUI-64インタフェースIDを採用し（ステップＳ７１１）、ステップＳ７０７に進む。
【００７５】
宛先アドレスが通信管理テーブルに登録されている場合は、通信開始フラグが立っているか否かを判別する（ステップＳ７０３）。通信開始フラグが立っていない場合は、端末機器１がサーバ２への登録が行われていない状態のため、端末機器１は上述した登録処理（ステップＳ７０９）、制御識別子生成処理（ステップＳ７１０）を行う。登録処理、制御識別子生成処理が終了すれば、通信開始フラグが立つ。
【００７６】
通信開始フラグが立っている場合は、生成されたインタフェースIDによりサーバ２と通信を行える状態であるため、まず、端末機器１は通信管理テーブルのif1に登録されている値を端末機器１のインタフェースIDとして利用できるかを確認すべく、ローカルリンクネットワーク１０に対し近隣探索を行う（ステップＳ７０４）。近隣探索は、IPv6対応機器が自らのIPv６アドレスを自動設定する際に、自動設定しようとするIPv６アドレスが既に他の機器に使用されていないかを判定する機構であり、これが標準化されている。本実施の形態でもこの機構を利用し、if1の値がインタフェースIDとして利用できるかを判別する。
【００７７】
次に、端末機器１は上記近隣探索によって、if1に登録されている値をインタフェースIDとして持つ他のネットワークノードがローカルリンクネットワーク１０に存在しないかどうかを判別し（ステップＳ７０５）、if1に登録されている値をインタフェースIDとして持つ他のネットワークノードが存在しない場合は、if1の値を端末機器１のインタフェースIDとして設定する（ステップＳ７０６）。if1に登録されている値をインタフェースIDとして持つ他のネットワークノードが存在した場合は、上記ステップＳ７０４に戻りローカルリンクネットワーク１０に対し近隣探索を行う。ただし、if1の生成にハッシュ関数を用いることから、このケースは事実上無いに等しいと予想される。
【００７８】
上記ステップＳ７０６またはステップＳ７１１の処理が終了すると、端末機器１は設定したインタフェースIDとネットワークIDを繋ぎ、送信元アドレスとしてサーバ２への通信を行い（ステップＳ７０７）、if0の値を今回設定したインタフェースIDの値で更新し、次いで制御識別子生成処理を起動する（ステップＳ７０８）。
【００７９】
次に、制御識別子生成処理を上記図６に基づき説明する。
【００８０】
図６において、上述したように、端末機器１は通信管理テーブルからif0に登録されているインタフェースIDを取得し（ステップＳ６０１）、通信開始フラグが立っているか否かを確認する（ステップＳ６０２）。この場合は既に端末機器１の登録処理及び制御識別子生成処理は完了しているため、通信開始フラグは立っている。
【００８１】
次に、端末機器１は通信管理テーブルのif0に登録されている値（つまり端末機器１からサーバ２へ送信されたアドレスのインタフェースIDの値）が、通信管理テーブルのif1及びif2のどちらの値と一致するかを確認する。確認の結果、if0に登録されている値がif1の値と一致する場合はifn1を、if0に登録されている値がif2の値と一致する場合はifn2を、また、製造ID、時刻データを通信管理テーブルからそれぞれ取得し、これら３つのデータをつなぎあわせたデータを入力値として、ハッシュ関数SHA-1で演算を行い160bit長のダイジェスト値を取得し、制御識別子として通信管理テーブルに登録する（ステップＳ６０３）。次に、端末機器１は上述した方法で新たなif1、 ifn1、 if2、ifn2の値を取得し、通信管理テーブルのそれぞれの値を更新する（ステップＳ６０４）。
【００８２】
次に、サーバ２側の通信管理処理を上記図９及び図１０に基づき説明する。既にサーバ２に対する端末機器１の初期登録の場合は説明したので、サーバ２が生成されたインタフェースIDにより端末機器１からの受信を受けた場合を説明する。
【００８３】
図９及び図１０において、上述したように、サーバ２は端末機器１から受信したパケットのヘッダの送信元アドレスからインタフェースIDを取得し（ステップＳ８０１）、通信管理データベースを検索し（ステップＳ８０２）、上記取得したインタフェースID が、通信管理テーブルのEUI-64インタフェースID、if1、if2に登録されている値のどの値と一致するか否か、また通信フラグが立っているか否かを判断し、判断結果に基づき該当する処理に分岐する。
【００８４】
上記取得したインタフェースID がif1またはif2に登録されている値と一致し、且つ通信開始フラグが立っている場合は（ステップＳ８０３）、サーバ２は端末機器１からの上記パケット受信に伴い受信データを受け付け、上位層のアプリケーション、例えばhttp（hypertext transfer protocol）サーバの処理に渡し、取得したインタフェースIDでif0を更新する（ステップＳ８０４）。サーバ２は更新後、制御識別子生成処理を起動する（ステップＳ８０５）。サーバ２から端末機器１への応答は、上記ステップＳ８０１で取得した送信元アドレスに返す。
【００８５】
次に、上記図９及び図１０のステップＳ８０５の制御識別子生成処理を上記図６に基づき説明する。
【００８６】
図６において、上述したように、サーバ２は通信管理テーブルからif0に登録されているインタフェースIDを取得し（ステップＳ６０１）、通信開始フラグが立っているか否かを確認する（ステップＳ６０２）。この場合は既に端末機器１の登録処理及び制御識別子生成処理は完了しているため、通信開始フラグは立っている。
【００８７】
次に、サーバ２は上記取得したif0に登録されている値（つまり端末機器１から今回受信した送信元アドレスのインタフェースIDの値）がif1及びif2のどちらの値と一致するかを確認する。確認の結果、if0に登録されている値がif1の値と一致する場合はifn1を、if0に登録されている値がif2の値と一致する場合はifn2を、また、製造ID、時刻データを通信管理テーブルからそれぞれ取得し、この３つのデータをつなぎあわせたデータを入力値として、ハッシュ関数SHA-1で演算を行い160bit長のダイジェスト値を取得し、制御識別子として通信管理テーブルに登録する（ステップＳ６０３）。次に、端末機器１は上述した方法で新たなif1、 ifn1、 if2、ifn2の値を取得し、通信管理テーブルのそれぞれの値を更新する（ステップＳ６０４）。
【００８８】
以上説明したように、本実施の形態によれば、if1、 ifn1、 if2、ifn2の値は端末機器１及びサーバ２で個々に生成し更新することになるが、初期値の一致が保証されていれば、端末機器１ではサーバ２へのパケット送信時に、サーバ２では端末機器１からのパケット受信時に、if1、1fn1、1f2、ifn2の値をそれぞれ更新することによって、更新の同期を取りながら通信を継続することができる。これにより、サーバ２は端末機器１から受信したパケットの送信元アドレスから取得したインタフェースIDをキーとして、アクセス制御（単純には、登録されているインタフェースIDを含むIPv6アドレス以外からのアクセスを拒否する制御）を行うことが可能になる。
【００８９】
即ち、特定の端末機器と特定のサーバとの間の通信において、両者間のみで特定できる通信毎に生成したIPv6アドレスにより、サーバへのアクセスを制御可能な通信を行うことができる。これにより、特定の端末機器と特定のサーバとの間の通信において、第三者にとってはネットワーク上においては特定の端末機器の身元が秘匿されたランダムなIPv6アドレスを利用しながら、特定のサーバからは特定の端末機器からの一見ランダムに見えるIPv6アドレスを特定することができ、このIPv6アドレスにより特定のサーバへのアクセスを特定の端末機器だけに許可するようなアクセス制限通信が可能となり、身元秘匿要求並びにアクセス制限要求を同時に満たすことができる。
【００９０】
［第２の実施の形態］
次に、本発明の第２の実施の形態を説明する。本実施の形態は、上述した第１の実施の形態に対して、下記の点において相違する。本実施の形態のその他の要素は、上述した第１の実施の形態の対応するものと同一なので、説明を省略する。
【００９１】
第１の実施の形態では、ランダムなアドレスを生成するための初期値の１つを製造IDとし、製造時に端末機器１のＲＯＭ２２に製造IDを格納し、サーバ２はＤＢサーバ３に問い合わせることで端末機器１とサーバ２とで初期値を共有し、一致したインタフェースIDの生成を行った。これは、第三者に初期値を知られることで第三者にも端末機器１及びサーバ２で生成されるアドレスが分かってしまう可能性を低くするために、現実的な方法を用いたためである。
【００９２】
上記の初期値の共有は、第１の実施の形態のように、事前（通信開始前）に端末機器１とサーバ２とで別途共有しなくとも、通信開始時に第三者に対し秘匿して行ってもよい。これを実現する方式としては、例えば、IPsec（IP Security Protocol：TCP/IPにセキュリティ機能を付加するプロトコルの枠組み）におけるIKE（Internet Key Exchange：インターネット標準の鍵交換プロトコル群）で標準化されている方式であるDH（Diffie-Hellman Public Key Distribution System）鍵交換方式を用いることもできる。
【００９３】
これにより、第三者に対しては秘匿した状態で、端末機器１及びサーバ２において通信開始時にアドレス生成のための初期値を交換し共有することができる。この場合の初期値の交換は、端末機器１では図４のステップＳ４０１で行い、サーバ２では図１０のステップＳ８０７で行う。以降は、製造IDに替えて上記DH鍵交換方式で得た初期値の１つを用いて制御識別子の生成を行う。
【００９４】
以上説明したように、本実施の形態によれば、DH鍵交換方式を用いた初期値の交換は、処理に多くの計算機資源を必要とし、現状のモバイル端末等では負荷が大きいものの、第三者から知られることなく安全に行うことができる。更に、DH鍵交換方式で交換された鍵を、ペイロード（セルで転送される情報）部分の暗号化及び復号化に利用すれば、第三者からは匿名に見えるIPv6アドレスにより、通信データ自体も暗号化された通信が可能となる。
【００９５】
［他の実施の形態］
上記実施の形態では、通信システムを図１に示す構成としたが、端末機器やサーバ等の設置台数は図示のものに限定されるものではなく、設置台数は任意である。
【００９６】
また、上記実施の形態では、ランダムなアドレスを生成するための初期値の１つを製造IDとした場合を例に挙げたが、製造IDに限定されるものではなく、端末機器を識別可能なものであればよい。
【００９７】
また、上記実施の形態では、送信元アドレスを生成する際にハッシュ関数としてSHA-1を使用した場合を例に挙げたが、SHA-1に限定されるものではなく、例えば、MD5やMASHなど他のハッシュ関数を使用してもよい。
【００９８】
本発明は、上述した実施の形態の機能を実現するソフトウェアのプログラム（図４〜図１０のフローチャート）をコンピュータ又はＣＰＵに供給し、そのコンピュータ又はＣＰＵが該供給されたプログラムを読出して実行することによって、達成することができる。
【００９９】
この場合、上記プログラムは、該プログラムを記録した記憶媒体から直接供給されるか、又はインターネット、商用ネットワーク、若しくはローカルエリアネットワーク等に接続される不図示の他のコンピュータやデータベース等からダウンロードすることにより供給される。
【０１００】
上記プログラムの形態は、オブジェクトコード、インタプリタにより実行されるプログラムコード、ＯＳ（オペレーティングシステム）に供給されるスクリプトデータ等の形態から成ってもよい。
【０１０１】
また、本発明は、上述した実施の形態の機能を実現するソフトウェアのプログラムを記憶した記憶媒体をコンピュータ又はＣＰＵに供給し、そのコンピュータ又はＣＰＵが記憶媒体に記憶されたプログラムを読出して実行することによっても、達成することができる。
【０１０２】
この場合、格納媒体から読出されたプログラムコード自体が上述した各実施の形態の機能を実現すると共に、そのプログラムコードを記憶した記憶媒体は本発明を構成する。
【０１０３】
プログラムコードを記憶する記憶媒体としては、例えば、ＲＯＭ、ＲＡＭ、ＮＶ−ＲＡＭ、フロッピー（登録商標）ディスク、ハードディスク、光ディスク（登録商標）、光磁気ディスク、ＣＤ−ＲＯＭ、ＭＯ、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＤＶＤ−ＲＷ、ＤＶＤ＋ＲＷ、磁気テープ、不揮発性のメモリカード等がある。
【０１０４】
上述した実施の形態の機能は、コンピュータから読出されたプログラムコードを実行することによるばかりでなく、コンピュータ上で稼動するＯＳ等がプログラムコードの指示に基づいて実際の処理の一部又は全部を行うことによっても実現することができる。
【０１０５】
更に、本発明は、上述した実施の形態を実現するソフトウェアのプログラムがネットワーク上のデータベース又はホームページから通信プログラムによりダウンロードされ、このプログラムを読出して実行することによって達成することができる。
【０１０６】
上記プログラムは、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続し、該ホームページからコンピュータプログラム自体、又は自動インストール機能を含む圧縮ファイルをハードディスク等の記憶媒体にダウンロードすることによっても供給することができる。
【０１０７】
また、上記プログラムは、プログラムコードを暗号化した上で格納したＣＤ−ＲＯＭ等の記憶媒体をユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせ、その鍵情報を使用することにより暗号化されたプログラムコードを実行してコンピュータにインストールさせることによっても供給することができる。
【０１０８】
上述した実施の形態の機能は、プログラムコードを複数のファイルに分割し、夫々のファイルを異なるホームページからダウンロードすることによっても実現することができる。即ち、本発明の機能処理をコンピュータで実現させるためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバも、本発明を構成する。
【０１０９】
また、上述した実施の形態の機能は、記憶媒体から読出されたプログラムが、コンピュータに挿入された機能拡張ボード又はコンピュータに接続された機能拡張ユニットに備えられたメモリに書込まれた後、そのプログラムの指示に基づき、その機能拡張ボード又は機能拡張ユニットに備えられたＣＰＵ又はＭＰＵ等が実際の処理の一部又は全部を実行することによっても実現することができる。
【図面の簡単な説明】
【０１１０】
【図１】本発明の第１の実施の形態に係る通信システムの構成例を示すブロック図である。
【図２】端末機器の一般的な構成例を示すブロック図である。
【図３】サーバの一般的な構成例を示すブロック図である。
【図４】端末機器で実行される登録処理を示すフローチャートである。
【図５】サーバで実行される登録処理を示すフローチャートである。
【図６】端末機器とサーバで実行される制御識別子生成処理を示すフローチャートである。
【図７】端末機器で実行される通信管理処理を示すフローチャートである。
【図８】図７のフローチャートの続きである。
【図９】サーバで実行される通信管理処理を示すフローチャートである。
【図１０】図９のフローチャートの続きである。
【図１１】ダイジェスト値からインタフェースIDを生成する例を示す図である。
【図１２】（Ａ）はサーバで管理される通信管理テーブルの例を示す図、（Ｂ）は端末機器で管理される通信管理テーブルの例を示す図である。
【符号の説明】
【０１１１】
１  端末機器
２  サーバ
３  ＤＢサーバ
１０  ローカルリンクネットワーク
１１  ルータ
１２  IPv6インターネット
２１  ＣＰＵ
２４  ネットワークインタフェース
２５  不揮発メモリ
３１  ＣＰＵ
３４  ネットワークインタフェース
３５  ＨＤ
【図１】
2005079921.tif 000003
【図２】
2005079921.tif 000004
【図３】
2005079921.tif 000005
【図４】
2005079921.tif 000006
【図５】
2005079921.tif 000007
【図６】
2005079921.tif 000008
【図７】
2005079921.tif 000009
【図８】
2005079921.tif 000010
【図９】
2005079921.tif 000011
【図１０】
2005079921.tif 000012
【図１１】
2005079921.tif 000013
【図１２】
2005079921.tif 000014