(第一の実施形態)
図1は、無線通信によりデータ伝送を可能とする無線通信システムの構成例を示す図である。図1において、デジタルカメラ(101〜102)は、無線通信機能を搭載しており、適切な設定を施せば無線通信手段を用いて、デジタルカメラ同士、あるいは、プリンタ(103)との間で、データ伝送を行うことが可能である。このように基地局を介さずに端末同士が直接通信する通信モードをアドホックモードと呼ぶ。なお、本実施形態は、WPS(Wi−Fi Protected Setup)をアドホックモードに適用する例について説明する。従って、本説明においても便宜上、IEEE802.11標準において規定される各種通信パラメータ(ネットワーク識別子であるSSID、周波数チャネル、認証方式、暗号方式、暗号鍵等)を他の機器に提供、管理する機器をレジストリ機器とする。また、レジストリ機器からの通信パラメータの提供を受け、設定する機器をエンローリ機器とする。なお、SSIDとは、Service Set Identifierの略である。
図2は、デジタルカメラの機能ブロック図を示す。ここではデジタルカメラ101とデジタルカメラ102は同じ機能ブロックをもつ。
操作部210は、システムコントローラ211を介してCPU215に接続し、デジタルカメラのシャッタースイッチや各種操作キーを有する。撮像部202は、シャッターが押下されたときに画像を撮影するブロックであり、撮影画像は撮像処理部203によって処理される。表示部206は、LCD表示、LED表示、音声表示等、ユーザに対する情報を表示するブロックであり、表示処理部207によってその表示内容の制御処理が行われる。また表示部206に表示された情報から選択するなどの操作は操作部210と連動して行われることになる。すなわち、表示部206と操作部210とがユーザインタフェイスを構成することになる。メモリカードI/F208は、メモリカード209を接続する為のインタフェースである。USBI/F212は、外部機器とUSBを用いて接続する為のインタフェースである。オーディオI/F214は、音信号を外部機器と接続する為のインタフェースである。
これらのブロック図に示される機能部分は、CPU215からの制御によって処理され、CPU215によって制御されるプログラムは、ROM216、もしくは、フラッシュROM213に格納される。CPU215によって処理されるデータはRAM217、もしくはフラッシュROM213に対して、書き込み、読み込みが行われる。
無線通信機能部204は無線通信を行うブロックであり、RF部205は、他の無線通信機器との間で無線信号の送受信を行う。RF部205と無線通信機能部204は、一つのブロックとして実現される場合もあるが、ここでは分離して示した。無線通信機能部204の機能は無線の規格となるパケットのフレーミング、データに対する応答処理、データの暗号/復号処理などが実装されている。無線通信機能部204とRF部205を動作させるプログラムは通常ROM216上に置かれ、CPU215上で動作する。またフラッシュROM213は不揮発性の記憶領域であり、ここに無線通信の設定情報などを記憶する。本実施形態では、無線通信機能部204とRF部205とにより、IEEE802.11標準に代表される無線LAN通信を行う。
アドホックモードにおけるビーコンの送信の制御はRF部205無線通信機能部204により実施される。ビーコン信号は、報知信号の一種であり、ネットワークにブロードキャストされる。ビーコンの送信はビーコンコンテンションウィンドウと呼ばれる範囲(0〜CWmax)で乱数を決定して、その乱数値を一定間隔でデクリメントして0になった時点でビーコンを送信する。ビーコンコンテンションウィンドウはCPU215上で動作するプログラムで変更できるものもあれば、無線通信機能部204で固定の値をもつものも存在する。ビーコンに付加する情報はCPU215上で動作するプログラムからの所定の設定をすることで、無線通信部204で実際に送信されるフレームに格納されてRF部205を介して送信される。付加した情報を削除する場合も、同様にCPU215上で動作するプログラムからの所定の設定をすることで、削除することが可能となる。
図3は、プリンタ103の機能ブロックを示す。操作部310は、システムコントローラ311を介してCPU315に接続されている。プリントエンジン302は、実際に用紙に画像をプリントする機能ブロックであり、プリントする画像はプリント処理部303によって処理される。表示部306は、LCD表示、LED表示、音声表示等、ユーザに対する情報を表示するブロックであり、表示処理部307によって処理される。また表示部306に表示された情報から選択するなどの操作は操作部310を介して行われる。メモリカードI/F308は、メモリカード309を接続する為のインタフェースである。USBI/F312は、外部機器とUSBを用いて接続する為のインタフェースである。パラレルI/F314は、外部機器とパラレル通信を用いて接続する為のインタフェースである。
これらのブロック図に示される機能部分は、CPU315からの制御によって処理され、CPUによって制御されるプログラムは、ROM315、もしくは、フラッシュROM313に格納される。CPU315によって処理されるデータは、RAM317、もしくは、フラッシュROM313に対して、書き込み、読み込みが行われる。
無線通信機能部304は無線通信を行うブロックであり、RF部305は、他の無線通信機器との間で無線信号の送受信を行う。RF部305と無線通信機能部304は一つのブロックとして実現される場合もあるが、ここでは分離して示した。無線通信機能部304の機能は無線の規格となるパケットのフレーミング、データに対する応答処理、データの暗号/復号処理などが実装されている。無線通信機能部304とRF部305をアプリケーションの指示により動作させるプログラムは通常ROM316上に置かれ、CPU315上で動作する。またフラッシュROM313は不揮発性の記憶領域であり、ここに無線通信の設定情報などを記憶する。本実施形態では、無線通信機能部204とRF部205とにより、IEEE802.11標準に代表される無線LAN通信を行う。
アドホックモードにおけるビーコンの送信の制御はRF部305無線通信機能部304により実施される。ビーコンの送信はビーコンコンテンションウィンドウと呼ばれる範囲(0〜CWmax)で乱数を決定して、その乱数値を一定間隔でデクリメントして0になった時点でビーコンを送信する。ビーコンコンテンションウィンドウはCPU315上で動作するプログラムで変更できるものもあれば、無線通信機能部304で固定の値をもつものも存在する。ビーコンに付加する情報はCPU315上で動作するプログラムからの所定の設定をすることで、無線通信機能部304で実際に送信されるフレームに格納されてRF部305を介して送信される。付加した情報を削除する場合も、同様にCPU315上で動作するプログラムからの所定の設定をすることで、削除することが可能となる。
以上、実施形態におけるデジタルカメラ101、102とプリンタ103のそれぞれの構成について説明した。なお、RF部にはアンテナが設けられるが、外部に突出する形態で有するものとは限らない。特に、デジタルカメラの場合、携帯性が重要なファクタであるから、アンテナは外部に突出するのではなく、内蔵もしくは表面上に実装されることが望ましい。
本実施形態では、プリンタ103がネットワークを構築するための通信パラメータ提供者(レジストラ機器)になるとする。また、カメラ101は、既に通信パラメータを取得して所望の設定を終了してプリンタ103と無線通信を行える。カメラ102は、パラメータ提供者から新しく通信パラメータを取得しようとしている。つまり、カメラ102は、エンローリ機器として機能する。
プリンタ103とカメラ102は、ほぼ同時にボタンを押下することで、同一の通信パラメータを共有することが可能となる(WPSのPB方式に相当)。
まず、プリンタ103の動作を図4のフローチャートをもとに説明する。なお、図4の動作は、ROM316、もしくは、フラッシュROM313に格納されるプログラムをCPU315が実行し、各部を制御することにより行われる。なお、プリンタ103は、カメラ101とあるアルゴリズムに従って、ビーコン送信を行っている。このアルゴリズムに従い、プリンタ103がビーコン送信の役割になると、プリンタ103がビーコンを送信し、カメラ101がビーコン送信の役割になると、カメラ101がビーコンを送信する。従って、プリンタ103とカメラ101とが交互にビーコンを送信しながらネットワークを構成する場合、一方の機器だけがビーコンを送信する場合、ランダムにビーコンを送信しあう場合など様々なケースがある。本実施形態は、これら様々なケースにも対応する。
まず、CPU315は、ユーザ指示に従って、プリンタを通信パラメータ提供者(レジストラ)として設定する(S401)。本実施例では全ての機器は通信パラメータ提供者になりうるが、デフォルトの設定(初期設定)を通信パラメータ取得者としている。そのため、本実施形態では、ユーザ間で合意のうえでレジストラを選定し、ユーザが操作部310を介して指定、設定することにした。これらは特に本実施例の制約を与えるものではなく、レジストラを決定する手続きは手動で決めても、自動で決めるメカニズムを考案して構わない。
次に、プリンタ103のCPU315は、ユーザによる操作部310の通信パラメータ交換のためのボタン操作を検出すると(S402)、付加情報としてレジストラ情報をビーコンに付加して送信する(S403)。通信パラメータ交換のためのボタン操作は、表示部306でメニューを変更しながら所望の機能を選択するなど複数のオペレーションの結果、表示されるソフトボタンでも構わない。
レジストラ情報は、現在パラメータ提供サービスを実行中であるという情報、プッシュボタン方式による認証に関する情報等を含み、ビーコンには、これらの情報を特定のフォーマットで格納する。また、レジストラ情報には、WPSで規定しているWPSIE(WPS Information Element)と同様な内容に加え、レジストラの宛先を示したMACアドレス(識別情報)を含む情報も含まれる。レジストラ機器であるプリンタ103がビーコンを送信した場合には、プリンタ103のMACアドレスが含まれることになる。
また、本説明はアドホックモードにおける動作なので、ビーコンの送信は、プリンタ103がビーコンを送信する役割になった場合に行われる。
プッシュボタン方式での通信パラメータの提供期間は安全性を考慮して、パラメータ提供サービスを開始してから一定期間内(設定期間)となっており、その期間の間、プリンタ103はレジストラ情報を付加してビーコンを送信する(S404)。この期間が満了すると、CPU315は、送信するビーコンからレジストラ情報を削除する(S405)。
CPU315は、設定期間の満了するまでは、エンローリ機器からパラメータ取得の要求が送られてくるかを監視する(S406)。エンローリ機器からのパラメータ取得の要求を受信すると、CPU315は、該要求を送信したエンローリ機器に対して自身が管理する通信パラメータを提供する(S407)。
通信パラメータを提供し終わると、S403に戻り、設定期間が満了するまで他のエンローリ機器に対する通信パラメータ提供処理を行う。なお、本説明では、設定期間が満了するまで他のエンローリ機器に対する通信パラメータ提供処理を行う事とするが、エンローリ機器に対して通信パラメータを提供すると、処理を終了してもよい。このようにすると、意図しない機器に対して通信パラメータを提供してしまうことを防止できる。
次に既にプリンタ103と通信パラメータを交換済み(提供済)のカメラ101の動作を図5のフローチャートをもとに説明する。図5の動作は、ROM216、もしくは、フラッシュROM213に格納されるプログラムをCPU215が実行し、各部を制御することにより行われる。
カメラ101のCPU215は、プリンタ103からのビーコンを監視し、プリンタ103からのビーコンを受信すると、前回受信したプリンタ103からのビーコンと内容が変化しているか判断する(S501)。なお、カメラ101は、プリンタ103からのビーコンを監視している最中にも、カメラ101がビーコン送信の役割になるとビーコンを送信する。受信したビーコン内の情報に変化があるか否かを判断するために、カメラ101のCPU215は、ビーコンを受信すると、ビーコンに含まれている情報をRAM217に記憶しておく。この情報には、ビーコンの送信元機器のアドレス情報が含まれているため、同じアドレスの機器からのビーコンの内容を比較し、同じ機器からのビーコン情報が変化したか否かを判断する(S501)。
この判断の結果、ビーコン情報に変化がある場合、ビーコンにレジストラ情報が付加された変化か、削除された変化かを判断する(S502、S505)。
レジストラ情報が付加された場合は、CPU215は、その内容を確認し、WPSIEの情報要素と通信パラメータ提供者のMACアドレスがあることを確認する(S503)。そして、カメラ101が送信するビーコンに、受信したレジストラ情報(プリンタ103が付加したWPSIEとプリンタ103のMACアドレス)を付加するようにする(S504)。カメラ101がビーコンを送信する役割の時には、受信したレジストラ情報(プリンタ103が付加したWPSIEとプリンタ103のMACアドレス)を付加したビーコンを送信する。このように既にレジストラ機器が存在しているネットワークと同一の通信パラメータを共有し、同じネットワークで通信可能状態にある機器は、レジストラ機器からのレジストラ情報を自身のビーコンに付加して送信する。このようにすることにより、このビーコン(レジストラ以外の機器からのビーコン)を受信した機器(エンローリ)は、レジストラ機器の情報を認識することができる。従って、レジストラ機器が常にビーコンを送信するとは限らないアドホックモードにおいても、レジストラ機器の意向(レジストラ情報)を他の機器に効率良く報知することができる。
また、受信したビーコン情報の変化が、レジストラ情報が削除された変化である場合は(S505)、カメラ101が送信するビーコンから、レジストラ情報が削除されるようにする(S506)。従って、これ以降、カメラ101が送信するビーコンからは、レジストラ情報が削除される。
プリンタ103の通信パラメータ提供期間は限られた時間で終了する。そのため、プリンタ103からのビーコンに付加されたレジストラ情報はこの期間を満了すると削除される。プリンタ103のビーコンからレジストラ情報が削除されると、カメラ101が送信するビーコンからのレジストラ情報は削除される。従って、レジストラ機器がパラメータ提供サービスを終了しているにも係らず、レジストラ機器以外の機器からレジストラ機器に関する情報がアナウンスされることを防止できる。よって、パラメータ提供サービス期間外のセキュリティも向上する。
次に、プリンタ103と、カメラ101が探索要求(Probe要求信号、探索信号)を受信した際の動作について図7のフローチャートをもとに説明する。なお、図7の動作は、図4、図5の動作と並行して行われる。また、プリンタ103が図7に示す動作を実行する場合は、図7の動作は、ROM316、もしくは、フラッシュROM313に格納されるプログラムをCPU315が実行し、各部を制御することにより行われる。カメラ101が図7に示す動作を実行する場合は、図7の動作は、ROM216、もしくは、フラッシュROM213に格納されるプログラムをCPU215が実行し、各部を制御することにより行われる。
ネットワーク探索要求を受信すると(S701)、CPU215、315は探索要求に応答するか否かを判断する(S702)。アドホックモードでは、探索要求が送信される直前にビーコンを送信した機器が、探索要求に応答することが定められている。従って、CPU215、315は探索要求を受信した直前にビーコンを送信したかどうかを判断し、自身が直前にビーコンを送信した機器である場合に、自身が探索要求に応答する機器(応答機器)であると判断する(S702)。他の機器が直前にビーコンを送信し、自身がビーコンを送信していなければ(S702)、探索要求には応答しないと判断し、処理を終了する。
CPU215、315は、自身が応答機器であると判断した場合には、パラメータ提供サービス中であるか否かを判断する(S703)。CPU315の場合は、S402においてボタン操作が検出され、パラメータ提供サービス状態に移行していれば、パラメータ提供サービス中であると判断する。CPU215の場合は、S501において受信したビーコン情報に変化があり、かつ、この変化が、受信したビーコンにレジストラ情報が付加される変化であった場合には、パラメータ提供サービス中であると判断する。つまり、ビーコンを送信した機器(レジストラ機器)がパラメータ提供サービス中であり、自身もレジストラ機器からのレジストラ情報をビーコンに付加して送信する状態の時には、パラメータ提供サービス中であると判断する。
CPU215、315は、パラメータ提供サービス中であると判断すると、探索要求に対する応答に、レジストラ情報(WPSIEと通信パラメータ提供者のMACアドレス)を付加して送信する(S704)。また、CPU215、315は、パラメータ提供サービス中でないと判断すると、探索要求に対する応答に、レジストラ情報(WPSIEと通信パラメータ提供者のMACアドレス)を付加せず送信する(S705)。CPU215、315は、探索要求の応答を、探索要求を送信した機器に対してユニキャスト送信する。
次に、通信パラメータを取得しようと試みるカメラ102の動作を、図6をもとにフロ−チャートを説明する。なお、図6の動作は、ROM216、もしくは、フラッシュROM213に格納されるプログラムをCPU215が実行し、各部を制御することにより行われる。
カメラ102のCPU215は、ユーザによる操作部210の通信パラメータ交換のためのボタン操作を検出すると(S601)、無線通信部204とRF部205を介してネットワーク探索要求を送信する(S602)。そして、探索要求に対する応答が受信されるかを監視する(S603)。S601におけるボタン操作の検出から設定期間が満了するまでに応答を受信すると、S604に進む。応答が受信されなければ、設定期間が満了するまで(S607)は定期的にネットワーク探索要求を送信する。
S604では、受信した応答にレジストラ情報があるか否かを判断する。レジストラ情報がなければ、S607に進み、設定期間が満了するまでは定期的にネットワーク探索要求を送信する。レジストラ情報が含まれた応答を受信しないまま設定期間が満了する(S607)と、処理を終了する。受信した応答にレジストラ情報が含まれている場合は(S604)、レジストラ情報に含まれる、通信パラメータ提供者のMACアドレスに対してパラメータ取得要求を送信し、通信パラメータの提供を要求する(S605)。そして、通信パラメータ提供者から通信パラメータの提供を受け、通信パラメータを取得する(S606)。通信パラメータ提供処理の具体的な手続きとしては、Diffie−HellmanやRSAなどの公開鍵を用いて安全に鍵を含む通信パラメータの交換を行う。
通信パラメータの取得が正常に終了したら(S607)、取得したパラメータをフラッシュROM213又はRAM217等のメモリに保存する(S608)。通信パラメータの取得が正常に終了しなければ、処理を終了する。なお、メモリに保存した通信パラメータは、CPU215からの指示により、無線通信機能部204に設定され、カメラ102は、設定した通信パラメータに従った無線通信を行う。この設定は、通信パラメータの取得が成功すると自動的に行われても、ユーザによる操作部210の操作により行われても良い。なお、本実施形態では、カメラ102がプリンタ103と無線通信したいために通信パラメータの取得を行うため、CPU215は、通信パラメータの取得が成功する取得した通信パラメータを自動的に無線通信機能部204に設定するものとする。
エンローリ機器は、レジストラ情報に含まれるレジストラ機器のアドレスに対してパラメータ取得要求を送信するので、レジストラ機器以外の機器が探索応答を送信しても、エンローリ機器はレジストラ機器から通信パラメータの提供を受けることができる。
図8は、カメラ101、カメラ102およびプリンタ103の全体のシーケンス図である。
カメラ101とプリンタ103とは、両機器が作成するネットワーク上で動作している。S801では、プリンタ103がビーコンを送信している。ユーザがプリンタ103の操作部310を操作し、プリンタ103をレジストラ機器に設定し、通信パラメータ提供処理のためのボタンを操作する(S802)。これを受けて、プリンタ103は、ビーコンにレジストラ情報(WPSIEとプリンタ103のMACアドレス)を付加して送信する(S803)。
このビーコンを受信したカメラ101は、この情報を修正せずビーコンに付加して送信している(S804)。
次に新しくネットワークに参加したカメラ102のユーザは、通信パラメータ提供処理のためのボタンを操作する(S805)。カメラ102は上記操作を検出すると、ネットワーク探索要求(Prob Req)を送信する(S807)。図8では、この要求は、直前にビーコンを送信したカメラ101に対して送信しているが、全ての機器に対してブロードキャストしてもよい。
この探索要求を受信したカメラ101は、探索要求に対する応答(Prob Res)を返す(S808)。この応答には、プリンタ103のレジストラ情報が含まれている。
カメラ102は、探索要求に対する応答を受信すると、応答の中のWPSIE情報とMACアドレスを獲得する。カメラ102は、これによってレジストラ機器がプリンタ103であることを確認する。その後、カメラ102は、レジストラであるプリンタ103に通信パラメータを要求し、通信パラメータの提供を受ける(通信パラメータの交換)(S809)。
カメラ102は、プリンタ103から通信パラメータの提供を受けると、該通信パラメータを設定し、プリンタ103とカメラ101と同じネットワークに参加する。同じネットワークに参加すると、カメラ102もネットワークを構成する端末であるので、図5に示したフローチャートに基づきビーコン送信を行う(S810)。設定のための時間が終了すると、プリンタ103から送信されるビーコンからレジストラ情報が削除される(S811)。これ以降は、他の機器が送信するビーコンからも、レジストラ情報が削除されることになる。
なお、カメラ102の動作に加え、S604の次に、探索応答に含まれていたレジストラ情報とビーコンに含まれていたレジストラ情報を比較する処理を加えても良い。この比較に結果、レジストラ情報が一致する場合に、S605に進み、パラメータ取得要求を送信する。レジストラ情報が一致しない場合は、パラメータ提供サービス中のレジストラが複数存在し、希望しない通信パラメータの提供を受ける可能性、悪意を持つ機器が不正な通信パラメータを提供しようとしている可能性がある。
従って、探索応答とビーコンのレジストラ情報が一致しない場合には、処理を終了するようにしてもよい。このようにすることにより、セキュリティを向上することができる。
これまでアドホック通信において、他の通信端末が送信した特定の情報を次の異なる端末が情報を引き継いで配送するという仕組みは考えられていなかった。この仕組みを提供することで、新しく参加する端末がビーコンや探索応答の情報から、どの端末がレジストラかをいち早く検出することが可能となる。
以上のように、アクセスポイントが存在しないアドホックモードにおいても、通信パラメータの提供、受理を効率良く行え、簡単に通信パラメータの設定を行うことができるようになる。
(第二の実施形態)
本実施形態では、エンローリ機器は受信したビーコンに含まれているレジストラ情報を用いて、通信パラメータを要求する。
ネットワークの構成、各機器の構成は第一の実施形態と同じであるので説明は割愛する。また、カメラ101、プリンタ103の動作も第一の実施形態と同じであるので説明は割愛する。
以下、通信パラメータを取得しようと試みるカメラ102の動作を、図9をもとにフロ−チャートを説明する。なお、図9の動作は、ROM216、もしくは、フラッシュROM213に格納されるプログラムをCPU215が実行し、各部を制御することにより行われる。
カメラ102のCPU215は、ユーザによる操作部210の通信パラメータ交換のためのボタン操作を検出すると(S901)、ビーコンの受信を監視する(S902)。ビーコンを受信すると、受信したビーコンにレジストラ情報があるか否かを判断する(S903)。レジストラ情報がなければ、S902に戻り、ビーコンの受信を監視する。S901におけるボタン操作の検出から設定期間が満了するまでにレジストラ情報が含まれるビーコンを受信しなければ、処理を終了する(S908)。
受信したビーコンにレジストラ情報が含まれている場合は(S903)、レジストラ情報に含まれる、通信パラメータ提供者のMACアドレスに対してパラメータ取得要求を送信し、通信パラメータの提供を要求する(S904)。そして、通信パラメータ提供者から通信パラメータの提供を受け、通信パラメータを取得する(S905)。通信パラメータ提供処理の具体的な手続きとしては、Diffie−HellmanやRSAなどの公開鍵を用いて安全に鍵を含む通信パラメータの交換を行う。
通信パラメータの取得が正常に終了したら(S906)、取得したパラメータをフラッシュROM213又はRAM217等のメモリに保存する(S907)。通信パラメータの取得が正常に終了しなければ、処理を終了する。なお、メモリに保存した通信パラメータは、CPU215からの指示により、無線通信機能部204に設定され、カメラ102は、設定した通信パラメータに従った無線通信を行う。この設定は、通信パラメータの取得が成功すると自動的に行われても、ユーザによる操作部210の操作により行われても良い。なお、本実施形態では、カメラ102がプリンタ103と無線通信したいために通信パラメータの取得を行うため、CPU215は、通信パラメータの取得が成功する取得した通信パラメータを自動的に無線通信機能部204に設定するものとする。
本実施形態によれば、ネットワーク探索要求を送信することなく、ビーコンからレジストラ情報を取得し、通信パラメータの提供を受けることができる。
(第三の実施形態)
本実施形態は、ビーコン情報が改竄された際の対処ついて説明する。
悪意を持つ第3者が正しくボタンを押した2端末の間に入って盗聴し、レジストラに成りすまして通信パラメータを交換し、その後重要なデータが盗まれることを防止する。
ネットワークの構成、各機器の構成は第一の実施形態と同じであるので説明は割愛する。また、本実施形態においても、プリンタ103がネットワークを構築するための通信パラメータ提供者になる。また、カメラ101は、既に通信パラメータを取得して所望の設定を終了して無線通信を行っている。カメラ102は、新しく通信パラメータを取得しようとしている。プリンタ103とカメラ102はほぼ同時にボタンを押下することで、同一の通信パラメータを共有することが可能となる(WPSのPB方式に相当)。
プリンタ103の動作を図10のフローチャートをもとに説明する。なお、図10の動作は、ROM316、もしくは、フラッシュROM313に格納されるプログラムをCPU315が実行し、各部を制御することにより行われる。なお、プリンタ103は、カメラ101とあるアルゴリズムに従って、ビーコン送信を行っている。このアルゴリズムに従い、プリンタ103がビーコン送信の役割になると、プリンタ103がビーコンを送信し、カメラ101がビーコン送信の役割になると、カメラ101がビーコンを送信する。従って、プリンタ103とカメラ101とが交互にビーコンを送信しながらネットワークを構成する場合、一方の機器だけがビーコンを送信する場合、ランダムにビーコンを送信しあう場合など様々なケースがある。本実施形態は、これら様々なケースにも対応する。
まず、CPU315は、ユーザ指示に従って、プリンタを通信パラメータ提供者(レジストラ)として設定する(S1001)。本実施例では全ての機器は通信パラメータ提供者になりうるが、デフォルトの設定(初期設定)を通信パラメータ取得者としている。そのため、本実施形態では、ユーザ間で合意のうえでレジストラを選定し、ユーザが操作部310を介して指定、設定することにした。これらは特に本実施例の制約を与えるものではなく、レジストラを決定する手続きは手動で決めても、自動で決めるメカニズムを考案して構わない。
次に、プリンタ103のCPU315は、ユーザによる操作部310の通信パラメータ交換のためのボタン操作を検出すると(S1002)、レジストラ情報をビーコンに付加して送信する(S1003)。通信パラメータ交換のためのボタン操作は、表示部306でメニューを変更しながら所望の機能を選択するなど複数のオペレーションの結果、表示されるソフトボタンでも構わない。
上記レジストラ情報は、現在パラメータ提供サービスを実行中であるという情報、プッシュボタン方式による認証に関する情報等であり、ビーコンには、これらの情報を特定のフォーマットで格納する。また、レジストラ情報は、WPSで規定しているWPSIE(WPS Information Element)と同様な内容に加え、レジストラの宛先を示したMACアドレスを含む情報である。
また、本説明はアドホックモードにおける動作なので、ビーコンの送信は、プリンタ103がビーコンを送信する役割になった場合に行われる。
CPU315は、他の端末のビーコンを受信すると(S1004)、自端末が追加したレジストラ情報と同じレジストラ情報が付加されているかを確認する(S1005)。つまり、自端末が追加したレジストラ情報が修正もしくは削除されてないことを確認する。言い換えると、自端末が追加したレジストラ情報と異なるレジストラ情報が付加されているかもしくは削除されてないことを確認する。この確認するため、自端末が追加したレジストラ情報(WPSIEとMACアドレス)と受信したビーコン中のレジストラ情報(WPSIEとMACアドレス)をそのまま比較する。または、S1003においてレジストラ情報をビーコンに付加するときに上記情報要素のハッシュ値を算出して保存し、そのハッシュ値と受信した情報のハッシュ値を比較することで削除、修正されていないかを確認してもよい。
S1005の判断の結果、比較したレジストラ情報が同じでない場合(修正または削除されている場合)は、同一ネットワーク上の全端末が受信可能なブロードキャストフレームを用いて警告メッセージを送信する(S1008)。この警告メッセージにより、通信パラメータ提供サービスの処理中断の警告を通知する(S1008)。このように、比較したレジストラ情報が同じでない場合(修正または削除されている場合)は、誰かが改竄を企てようとして、ビーコン情報を変更した可能性がある。そのため、他の端末に警告し、処理を中断させる。ブロードキャストフレームは、IEEE802.11のマネージメントフレームでも、EAPヘッダを含む認証などに特別に流れるデータパケットで転送してもよい。また、S1008において警告を行う場合には、表示部306に警告メッセージを表示し、ユーザに通信パラメータ提供サービスの処理中断を通知するようにしてもよい。
レジストラ情報が同じ場合は、通信パラメータを提供する設定期間が満了したかをチェックし(S1006)、満了していなければS1003へ戻る。プッシュボタン方式での通信パラメータの提供期間は安全性を考慮して、パラメータ提供サービスを開始してから一定期間内(設定期間)となっており、その期間の間、プリンタ103はレジストラ情報を付加してビーコンの送信を試みる(S1003)。
設定期間が満了すると(S1006)、ビーコンからレジストラ情報(WPSIEとMACアドレス)を削除する(S1007)。
CPU315は、ビーコンを受信しない場合は、エンローリ機器からパラメータ取得の要求が送られてくるかを監視する(S1009)。エンローリ機器からのパラメータ取得の要求を受信すると、CPU315は、該要求を送信したエンローリ機器に対して自身が管理する通信パラメータを提供する(S1010)。
通信パラメータを提供し終わると、S1003に戻り、設定期間が満了するまで他のエンローリ機器に対する通信パラメータ提供処理を行う。なお、本説明では、設定期間が満了するまで他のエンローリ機器に対する通信パラメータ提供処理を行う事とするが、エンローリ機器に対して通信パラメータを提供すると、処理を終了してもよい。このようにすると、意図しない機器に対して通信パラメータを提供してしまうことを防止できる。
次に既にプリンタ103と同一のネットワークに存在し、プリンタ103と通信パラメータを交換済みのカメラ101の動作を図11のフローチャートをもとに説明する。図11の動作は、ROM216、もしくは、フラッシュROM213に格納されるプログラムをCPU215が実行し、各部を制御することにより行われる。
カメラ101のCPU215は、ビーコンを監視し、ビーコンを受信すると、前回受信したプリンタ103からのビーコンと内容が変化しているか判断する(S1101)。なお、カメラ101は、プリンタ103からのビーコンを監視している最中にも、カメラ101がビーコン送信の役割にあるとビーコンを送信する。受信したビーコン内の情報に変化があるか否かを判断するために、カメラ101のCPU215は、ビーコンを受信すると、ビーコンに含まれている情報をRAM217に記憶しておく。この情報には、ビーコンの送信元機器のアドレス情報が含まれているため、同じアドレスの機器からのビーコンの内容を比較し、同じ機器からのビーコン情報が変化したか否かを判断する(S1101)。
受信したビーコン情報に変化がある場合、ビーコンにレジストラ情報が付加された変化か判断する(S1102)。レジストラ情報が付加される変化でない場合は、S1101に戻る。
レジストラ情報が付加された場合は、CPU215は、その内容を確認し、WPSIEの情報要素と通信パラメータ提供者のMACアドレスがあることを確認する(S1103)。そして、レジストラ情報(WPSIEとMACアドレス)をメモリ(フラッシュROM213又はRAM217)に保存する(S1104)。保存する方法は、レジストラ情報をそのまま保存しても、WPSIEとMACアドレスのハッシュ値を保存しても構わない。そして、カメラ101が送信するビーコンに、受信したレジストラ情報(プリンタ103が付加したWPSIEとプリンタ103のMACアドレス)を付加するようにする(S1105)。カメラ101がビーコンを送信する役割の時には、受信したレジストラ情報(プリンタ103が付加したWPSIEとプリンタ103のMACアドレス)を付加したビーコンを送信する。このように既にレジストラ機器が存在しているネットワークと同一の通信パラメータを共有し、同じネットワークで通信可能状態にある機器は、レジストラ機器からのレジストラ情報を自身のビーコンに付加して送信する。このビーコン(レジストラ以外の機器からのビーコン)を受信した機器(エンローリ)は、レジストラ機器の情報を認識することができる。従って、レジストラ機器が常にビーコンを送信するとは限らないアドホックモードにおいても、レジストラ機器の意向(レジストラ情報)を他の機器に効率良く報知することができる。
次に、カメラ101のCPU215は、ビーコンの受信を監視する(S1106)。ビーコンを受信すると、S1104で保存したレジストラ情報が削除又は修正されてないか確認する(S1107)。削除又は修正されていない場合は、S1106に戻り、ビーコンの受信を監視する。
受信したビーコンに付加されていたレジストラ情報が削除又は修正されていた場合は、カメラ101が送信するビーコンから、レジストラ情報(プリンタ103が付加したWPSIEとプリンタ103のMACアドレス)が削除されるようにする(S1109)。従って、これ以降、カメラ101が送信するビーコンには、レジストラ情報が削除される。
このようにビーコンに付加されたレジストラ情報が削除又は修正された場合は、第3者によるレジストラ情報の改竄が考えられる。よって、カメラ101が送信するビーコンから、レジストラ情報を削除し、改竄による被害を防止する。また、ユーザが選択したレジストラ機器(プリンタ103)がレジストラ情報を送信してビーコンを送信した場合、つまり、通信パラメータ提供サービスを中止した場合にも、カメラ101が受信したビーコンのレジストラ情報が削除又は修正される。この場合も、カメラ101が送信するビーコンからレジストラ情報を削除するので、レジストラ機器がパラメータ提供サービスを終了しているにも係らず、レジストラ機器以外の機器からレジストラ機器に関する情報がアナウンスされることを防止できる。
プリンタ103と、カメラ101が探索要求(Probe要求信号)を受信した際の動作は、第1実施形態と同じであり、図7に示すように動作するので説明は割愛する。
次に、通信パラメータを取得しようと試みるカメラ102の動作を、図12をもとにフロ−チャートを説明する。なお、図12の動作は、ROM216、もしくは、フラッシュROM213に格納されるプログラムをCPU215が実行し、各部を制御することにより行われる。
カメラ102のCPU215は、ユーザによる操作部210の通信パラメータ交換のためのボタン操作を検出すると(S1201)、無線通信部204とRF部205を介してネットワーク探索要求を送信する(S1202)。そして、探索要求に対する応答が受信されるかを監視する(S1203)。S1201におけるボタン操作の検出から設定期間が満了するまでに応答を受信すると、S1204に進む。応答が受信されなければ、設定期間が満了するまで(S1211)は定期的にネットワーク探索要求を送信する。
S1204では、受信した応答の中にレジストラ情報(WPSIEと通信パラメータ提供者のMACアドレス)があるかないかを確認する(S1204)。存在しない場合は、設定期間が満了するまで(S1211)は定期的にネットワーク探索要求を送信する。レジストラ情報が含まれた応答を受信しないまま設定期間が満了する(S1211)と、処理を終了する。受信した応答にレジストラ情報が含まれている場合は(S1204)、レジストラ情報に含まれる、通信パラメータ提供者のMACアドレスに対してパラメータ取得要求を送信し、通信パラメータの提供を要求する(S1205)。そして、通信パラメータ提供者から通信パラメータの提供を受け、通信パラメータを取得する(S1206)。通信パラメータ提供処理の具体的な手続きとしては、Diffie−HellmanやRSAなどの公開鍵を用いて安全に鍵を含む通信パラメータの交換を行う。
通信パラメータの取得が正常に終了しなければ(S1207)、処理を終了する。通信パラメータの取得が正常に終了したら(S607)、警告メッセージが到着し、警告の通知があるかどうかを一定期間確認する(S1208)。警告メッセージが到着しない場合は、取得したパラメータをフラッシュROM213又はRAM217等のメモリに保存する(S1209)。警告メッセージが到着した場合は、取得したパラメータを破棄する(S1210)。なお、メモリに保存した通信パラメータは、CPU215からの指示により、無線通信機能部204に設定され、カメラ102は、設定した通信パラメータに従った無線通信を行う。この設定は、通信パラメータの取得が成功すると自動的に行われても、ユーザによる操作部210の操作により行われても良い。なお、本実施形態では、カメラ102がプリンタ103と無線通信したいために通信パラメータの取得を行うため、CPU215は、通信パラメータの取得が成功する取得した通信パラメータを自動的に無線通信機能部204に設定するものとする。
また、通信パラメータを破棄した場合には、表示部206に通信パラメータの取得の失敗を表示し、ユーザに通知するようにする。この通知を確認したユーザは、再度、通信パラメータの設定処理を開始できる。また、ユーザ通知の際に、レジストラ機器(プリンタ103)からの警告通知により通信パラメータを破棄したことを表示するようにしてもよい。このようにすることにより、ユーザは悪意のある第3者の存在を認識でき、通信パラメータの設定処理を中止することもできる。
図13は、カメラ101、カメラ102およびプリンタ103の全体のシーケンス図である。
図8に示したシーケンスとパラメータ交換を行うS1309までは同じ処理となっている。しかしながら、図13の例では、S1310においてカメラ101がビーコンに異なるレジストラ情報を付加して送信している。これを契機に、S1311で警告メッセージがプリンタ103より送信される。この警告メッセージを受信したカメラ102はパラメータを破棄する(S1312)。
以上のように、ビーコンに付加したレジストラ情報が改竄された場合に、改竄された情報を元に通信パラメータを設定されてしまうことを防止でき、通信パラメータの交換を安全に行うことが可能となる。
なお、上記説明では、エンローリ機器は探索要求に対する応答に付加されていたレジストラ情報に含まれていた情報を用いて、パラメータ取得要求を送信した。しかしながら、第二の実施形態のように、受信したビーコンに含まれているレジストラ情報を用いて、通信パラメータを要求するようにしてもよい。
以上のように上記説明では、通信装置が、他の通信装置が送信した報知信号の内容の変化判断を行う。そして、この判断に基づいて、通信装置が送信する報知信号に通信装置が受信した報知信号に含まれていた特定の付加情報を付加、または、通信装置が送信する報知信号から特定の付加情報を削除して送信するようにした。
ここで、上記構成を以下の構成にしてもよい。すなわち、通信装置は、報知信号を他の通信装置と所定のアルゴリズムに従い送信する。また、報知信号の内容の変化は、受信した報知信号に付加情報が付加されたか、または、削除されたか、または、修正されたかを判断することにより行う。また、付加情報は、通信パラメータの提供サービスを実行中であることを示す情報、または、通信パラメータの提供サービスを実行する機器の識別情報、または、認証に関する情報を含む。また、他の通信装置からの探索信号を受信した場合に、探索信号に応答するか否かを判断する応答判断を行い、他の通信装置が通信パラメータの提供サービスを実行中か否かを判断するサービス判断を行う。そして、応答判断と、サービス判断に応じて、探索信号に対する応答信号に、受信した報知信号に含まれていた特定の付加情報を付加、または、付加せずに送信する。
また、上記説明では、通信装置が、ユーザ操作に基づいて、報知信号に特定の付加情報を付加して送信し、他の通信装置が送信した報知信号に、送信した報知信号に付加した付加情報が付加されているか否かを判断する。この判断に応じて、警告通知を行うようにした。
ここで、上記構成を以下の構成にしてもよい。すなわち、上記警告は、通信パラメータ提供サービスの処理中断を通知する。また、上記警告は、他の通信装置又はユーザに警告通知を行う。また、他の通信装置が送信した報知信号から、送信した報知信号に付加した付加情報が削除されたか、または、他の通信装置が送信した報知信号には、送信した報知信号に付加した付加情報と異なる付加情報が付加されているかを判断する。
また、上記説明では、受信した信号に、通信パラメータ提供サービスを実行している機器の識別情報が含まれているかを確認し、受信信号に含まれていた識別情報に基づいて、通信パラメータ提供サービスを実行している機器から通信パラメータを取得する。そして、通信パラメータ提供サービスを実行している機器から送信された警告メッセージに基づいて、取得した通信パラメータを破棄するようにした。
従って、アクセスポイントが存在しないアドホックモードにおいても、通信パラメータの提供、受理を効率良く行え、簡単に通信パラメータの設定を行うことができるようになる。
即ち、常に同じ機器がビーコンを送信しなくても、また、探索要求に対し、必ず同じ機器が応答しなくても、通信パラメータの提供、受理を効率良く行え、簡単に通信パラメータの設定を行うことができるようになる。