(57)【特許請求の範囲】
【請求項１】
複数の無線通信装置を含む無線通信システムにおける１の無線通信装置であって、
他の無線通信装置との間で接続を確立する際に、該他の無線通信装置から通知されるべきネットワーク識別情報に基づいて、所定の演算処理を行う演算処理部と、
該演算処理部による演算結果と、前記他の無線通信装置により通知されるべき演算結果とに基づいて、前記他の無線通信装置との間で接続を確立すべきかどうかを判定する判定部と、
該判定部による判定結果に従って、前記他の無線通信装置との間で接続を確立する接続処理部と
を有し、
前記演算処理部は、当該無線通信装置が属するグループ毎に、異なる演算処理を行う、無線通信装置。
【請求項２】
請求項１に記載の無線通信装置において、
当該無線通信装置は、ＩＥＥＥ８０２．１１に規定された無線ＬＡＮプロトコルに従って、動作する、無線通信装置。
【請求項３】
請求項２に記載の無線通信装置において、
前記他の無線通信装置に対して送信すべき接続要求を生成する接続要求生成部と、
該接続要求生成部により生成された接続要求を送信する接続要求送信部と
を有し、
前記接続要求生成部は、前記接続要求に、前記ネットワーク識別情報を含める、無線通信装置。
【請求項４】
請求項１に記載の無線通信装置において、
前記演算処理部は、前記グループ毎に設定されるべき任意の文字列を利用して、演算処理を行う、無線通信装置。
【請求項５】
請求項１ないし４のいずれか１項に記載の無線通信装置において、
前記演算処理部は、一方向性関数を利用して、演算処理を行う、無線通信装置。
【請求項６】
請求項２に記載の無線通信装置において、
他の無線通信装置を検出する検出部
を有し、
前記演算処理部は、前記検出部により検出されるべき他の無線通信装置の中からユーザにより選択された他の無線通信装置との間で接続を確立する際に、該他の無線通信装置から通知されるべきネットワーク識別情報に基づいて、所定の演算処理を行う、無線通信装置。
【請求項７】
請求項２に記載の無線通信装置において、
他の無線通信装置から送信されるべきビーコンフレームに基づいて、前記他の無線通信装置から通知されるべきネットワーク識別情報により、接続処理を行うかどうかを判定する接続判定部
を有し、
前記演算処理部は、前記接続判定部により、前記他の無線通信装置から通知されるべきネットワーク識別情報に基づいて接続処理を行うと判定された場合に、該ネットワーク識別情報により、所定の演算処理を行う、無線通信装置。
【請求項８】
複数の無線通信装置を含む無線通信システムにおける１の無線通信装置によって実行される無線通信方法であって、
他の無線通信装置との間で接続を確立する際に、該他の無線通信装置から通知されるべきネットワーク識別情報に基づいて、所定の演算処理を行う演算処理ステップと、
該演算処理ステップによる演算結果と、前記他の無線通信装置により通知されるべき演算結果とに基づいて、前記他の無線通信装置との間で接続を確立すべきかどうかを判定する判定ステップと、
該判定ステップによる判定結果に従って、前記他の無線通信装置との間で接続を確立する接続処理ステップと
を有し、
前記演算処理ステップでは、当該無線通信装置が属するグループ毎に、異なる演算処理を行う、無線通信方法。
【請求項９】
請求項８に記載の無線通信方法を、コンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＷＰＳ(Wi-Fi Protected Setup)方式を用いる無線ＬＡＮ通信機器に関する。
【背景技術】
【０００２】
無線ＬＡＮ(Local Area Network)の標準規格の策定を行うＩＥＥＥ(The Institute of Electrical and Electronic Engineers)８０２．１１タスクグループにより規定された、ＩＥＥＥ８０２．１１ａ、ＩＥＥＥ８０２．１１ｇ、ＩＥＥＥ８０２．１１ｎなどの無線ＬＡＮ技術は、世界的に、オフィスまたは家庭で普及している。
【０００３】
ＩＥＥＥ８０２．１１ａは、５[GHz]の周波数帯域を用いて通信をおこなう仕様であり、一方、ＩＥＥＥ８０２．１１ｇは、２．４[GHz]の周波数帯域を用いて通信をおこなう仕様である。
【０００４】
また、ＩＥＥＥ８０２．１１ｎは、ＭＩＭＯ(Multiple Input Multiple Output)という、送信側および受信側にて複数のアンテナを組み合わせることにより、データ送受信の帯域を広げる無線通信技術である。
【０００５】
ＩＥＥＥ８０２．１１ａ／１１ｇ／１１ｎの仕様においては、その接続形態は、アクセスポイントを用いるインフラストラクチャーモードと、アクセスポイントを用いないアドホックモードの２つに分けられる。
【０００６】
インフラストラクチャーモードは、アクセスポイントを中心に、無線ＬＡＮ端末であるステーションが存在し、該あるステーションと他のステーションとの間のデータ伝送を、アクセスポイント経由で行うものである。インフラストラクチャーモードは、オフィス、家庭などの環境において、多く使用されており、一般的な接続形態である。
【０００７】
ステーションとアクセスポイントとの間の接続をおこなう際には、ステーション側にて、無線ＬＡＮネットワークの識別子となるＳＳＩＤ(Service Set Identifier)や、暗号鍵生成のためのパスフレーズを設定する必要がある。このため、有線での接続と比較した場合に煩雑となる。
【０００８】
そこで、この煩雑さを解消する方法として、無線ＬＡＮ関連の業界団体であるＷｉ−Ｆｉ Ａｌｌｉａｎｃｅにより、無線ＬＡＮ機器の接続とセキュリティの設定を簡単に実行するための規格であるＷＰＳ(Wi-Fi Protected Setup)の仕様が固められ、２００７年１月から対応機器の認定が行われている。
【０００９】
また、近年の技術動向から、パソコン、携帯電話、デジカメ、プリンタなどから、キーボードやヘッドフォンに至るまで、無線ＬＡＮ通信機能を搭載した通信機器、すなわち、Ｗｉ−Ｆｉ対応機器が増えている。このため、アクセスポイントなしで、各通信機器の間でデータ伝送をすることの必要性が高くなっている。
【００１０】
そこで、無線ＬＡＮ製品の普及促進を図ることを目的とした業界団体であるＷｉ−Ｆｉ Ａｌｌｉａｎｃｅは、２００９年１０月に、Ｗｉ−Ｆｉ端末間で直接通信する仕様「Ｗｉ−Ｆｉ ＣＥＲＴＩＦＩＥＤ Ｗｉ−Ｆｉ Ｄｉｒｅｃｔ」を発表した。この仕様については、２０１０年１０月時点では、ドラフトの仕様書が策定されている（例えば、非特許文献２参照）。
【００１１】
Ｗｉ−Ｆｉ ＣＥＲＴＩＦＩＥＤ Ｗｉ−Ｆｉ Ｄｉｒｅｃｔ仕様（以下、「Ｗｉ−Ｆｉ Ｄｉｒｅｃｔ」と記す）は、基本概念として、各Ｗｉ−Ｆｉ対応機器が、従来のインフラストラクチャーモードにおけるアクセスポイントの働きをソフトウェア上で実現する、ソフトウェアアクセスポイント機能を搭載する。ネットワークに参加する複数台のＷｉ−Ｆｉ対応通信機器（Ｐ２Ｐ Ｄｅｖｉｃｅ）の中で、いずれか一台の通信機器が、実際にソフトウェアアクセスポイントの機能を有効とするＰ２Ｐ Ｇｒｏｕｐ Ｏｗｎｅｒとなる。Ｐ２Ｐ Ｇｒｏｕｐ Ｏｗｎｅｒ以外の通信機器はＰ２Ｐ Ｃｌｉｅｎｔとなり、通信をおこなう。
【００１２】
なお、Ｐ２Ｐ Ｇｒｏｕｐ Ｏｗｎｅｒとして動作する通信機器の決定方法については、Ｗｉ−Ｆｉ Ｄｉｒｅｃｔ仕様に、Ｇｒｏｕｐ Ｏｗｎｅｒ Ｎｅｇｏｔｉａｔｉｏｎとして定義されている。各Ｐ２Ｐ Ｄｅｖｉｃｅに設定された、Ｐ２Ｐ Ｇｒｏｕｐ Ｏｗｎｅｒになりたい度合いを表すＧｒｏｕｐ Ｏｗｎｅｒ Ｉｎｔｅｎｔ（０〜１５）の値を比較し、大きい値を持つＰ２Ｐ Ｄｅｖｉｃｅが、Ｐ２Ｐ Ｇｒｏｕｐ Ｏｗｎｅｒとなる。そして、Ｗｉ−Ｆｉ Ｄｉｒｅｃｔでは、Ｐ２Ｐ ＣｌｉｅｎｔとＰ２Ｐ Ｇｒｏｕｐ Ｏｗｎｅｒとの間の接続においては、ＷＰＳを搭載することが必須項目となっている。
【００１３】
今後、ＷＰＳを搭載した通信機器は、さらに広く普及していくものと考えられる。
【００１４】
ＷＰＳでは、ステーションのように、接続要求を送信する通信機器は、Ｅｎｒｏｌｌｅｅとして定義される。また、アクセスポイントのように、接続要求を送信したＥｎｒｏｌｌｅｅに対して、ＳＳＩＤや、暗号鍵生成のためのパスフレーズなどの情報を与える役割を受け持つ通信機器は、ＡＰ／Ｒｅｇｉｓｔｒａｒとして定義される。
【００１５】
ＷＰＳにおいては、正規ユーザーのみに接続を許可ための認証方式として、プッシュボタン方式とＰＩＮ（Personal Identify Number）コード方式が規定されている。
【００１６】
プッシュボタン方式については、ユーザーが、ＡＰ／Ｒｅｇｉｓｔｒａｒ側で、プッシュボタンを押すと、ＡＰ／Ｒｅｇｉｓｔｒａｒは、ボタンが押されてから２分間だけ、Ｅｎｒｏｌｌｅｅからの接続を受け付ける。ユーザーは、Ｅｎｒｏｌｌｅｅ側にて、接続を要求するためのボタンを押すこと、または、それに準ずる行為をおこなうことにより、ＡＰ／Ｒｅｇｉｓｔｒａｒに対して、接続要求を送信する。
【００１７】
ＡＰ／Ｒｅｇｉｓｔｒａｒは、接続を要求してきたＥｎｒｏｌｌｅｅに対して、ＳＳＩＤや、暗号鍵生成のためのパスフレーズなどの、接続の確立に必要な情報を送出する。
【００１８】
Ｅｎｒｏｌｌｅｅは、ＡＰ／Ｒｅｇｉｓｔｒａｒから受け取った情報を用いて、接続をおこなうことにより、その後の通信をおこなう。ただし、プッシュボタン方式では、接続をおこなう場合に、ＡＰ／Ｒｅｇｉｓｔｒａｒが存在する場所まで行って、ボタンを押さなければならない。また、ボタンが押されてから２分間の間に、正規ユーザー以外の者が接続要求をしてきた場合に、接続を許可してしまうなどの問題がある。
【００１９】
一方、ＰＩＮコード方式は、ＡＰ／Ｒｅｇｉｓｔｒａｒ側と、Ｅｎｒｏｌｌｅｅ側とで、事前にＰＩＮコードという、４桁または８桁の数字を共有しておく。接続における暗号鍵の生成の過程で、ＡＰ／Ｒｅｇｉｓｔｒａｒ側と、Ｅｎｒｏｌｌｅｅ側との間で、それぞれＰＩＮコードを用いる。通信に必要な、暗号鍵のもととなるパスフレーズなどの情報（Ｃｒｅｄｅｎｔｉａｌｓ）は、ＰＩＮコードをもとに生成した暗号鍵を用いて、ＡＰ／ＲｅｇｉｓｔｒａｒからＥｎｒｏｌｌｅｅに送信される。そのため、ＡＰ／Ｒｅｇｉｓｔｒａｒと、Ｅｎｒｏｌｌｅｅとで共有しているＰＩＮコードが一致する場合にのみ、両者の暗号鍵が正しく対応することができ、Ｃｒｅｄｅｎｔｉａｌｓを配布することができる。
【００２０】
ＰＩＮコードをもとにＳＳＩＤを自動生成する技術が知られている（例えば、特許文献１参照）。該技術では、正規ユーザーのみが把握していることを前提とするＰＩＮコードをもとにＳＳＩＤが生成される。このため、アクセスポイントが無線ネットワークの存在を通知するために定期的に送出するビーコンフレームの中に、ＳＳＩＤを含めないステルスモードにしておけば、ＳＳＩＤを把握しているＥｎｒｏｌｌｅｅのみが、ＡＰ／Ｒｅｇｉｓｔｒａｒに対して、接続することが可能となり、正規ユーザー以外の者による接続を回避することが可能となる。
【００２１】
また、コード生成情報と、各ユーザーのユーザー識別子に対応づけた認証情報とを用いて生成されるＰＩＮコードを使用する技術が知られている（例えば、特許文献１参照）。
【発明の概要】
【発明が解決しようとする課題】
【００２２】
ＷＰＳにおけるＰＩＮコード方式では、プッシュボタン方式における、課題を克服できるという長所を持つ。具体的には、接続をおこなう場合にＡＰ／Ｒｅｇｉｓｔｒａｒが存在する場所まで行ってボタンを押さなければならないことや、ボタンが押されてから２分間の間に、正規ユーザー以外の者が接続要求をしてきた場合に、接続を許可してしまうことを解決できる。
【００２３】
ところが、ＰＩＮコードは、ユーザーにより把握されやすい。例えば、ＡＰ／Ｒｅｇｉｓｔｒａｒ側に貼付されたり、ＡＰ／Ｒｅｇｉｓｔｒａｒ側のｗｅｂサーバーにてＰＩＮコード生成ボタンをクリックすることによって表示されたりするためである。
【００２４】
ＰＩＮコード方式では、ユーザーが、ＡＰ／ＲｅｇｉｓｔｒａｒのＰＩＮコードを把握して入力しなければならない。また、ＰＩＮコードがＡＰ／Ｒｅｇｉｓｔｒａｒ側に貼付されている場合には、正規ユーザー以外の人にＰＩＮコードを把握されてしまえば、ＡＰ／Ｒｅｇｉｓｔｒａｒに不正に接続されてしまうという危険性がある。
【００２５】
正規ユーザー以外の人にＡＰ／Ｒｅｇｉｓｔｒａｒに不正に接続されてしまう危険性を回避する技術が知られている（例えば、特許文献２参照）。
【００２６】
つまり、ＡＰ／Ｒｅｇｉｓｔｒａｒに相当するアカウント管理装置がコード生成情報を生成する。該アカウント管理装置は、該コード生成情報と、各ユーザーのユーザー識別子に対応づけた認証情報とをもとにＰＩＮコードを生成する。該アカウント管理装置は、ＳＳＩＤをＥｎｒｏｌｌｅｅに送信する。
【００２７】
Ｅｎｒｏｌｌｅｅ側では、アカウント管理装置から受信したＳＳＩＤと認証情報をもとにＰＩＮコードを生成する。
【００２８】
ただし、この場合、事前に各ユーザーのユーザー識別子と認証情報とを作成し、アカウント管理装置側にて管理しておく必要がある。さらに、Ｅｎｒｏｌｌｅｅ側でも各ユーザーのユーザー識別子と認証情報とを管理しておかなければならない。
【００２９】
また、前述の特許文献１では、ＰＩＮコードを把握して入力しなければならないという煩雑さは解消されない。
【００３０】
そこで、本発明は、上述した問題点の少なくとも１つに鑑みてなされたものであり、アクセスポイントと、ステーションとの間のセキュリティ性を向上させることにある。
【課題を解決するための手段】
【００３１】
開示の一実施例の無線通信装置は、
複数の無線通信装置を含む無線通信システムにおける１の無線通信装置であって、
他の無線通信装置との間で接続を確立する際に、該他の無線通信装置から通知されるべきネットワーク識別情報に基づいて、所定の演算処理を行う演算処理部と、
該演算処理部による演算結果と、前記他の無線通信装置により通知されるべき演算結果とに基づいて、前記他の無線通信装置との間で接続を確立すべきかどうかを判定する判定部と、
該判定部による判定結果に従って、前記他の無線通信装置との間で接続を確立する接続処理部と
を有し、
前記演算処理部は、当該無線通信装置が属するグループ毎に、異なる演算処理を行う。
【発明の効果】
【００３４】
開示の実施例によれば、アクセスポイントと、ステーションとの間のセキュリティ性を向上させることができる。
【図面の簡単な説明】
【００３５】
【図１】無線通信システムの一実施例を示すブロック図である。
【図２】ステーションの一実施例を示す部分ブロック図である。
【図３】ステーションの動作の一実施例を示す図である。
【図４】ステーションの動作の一実施例を示すフローチャートである。
【図５】アクセスポイントの一実施例を示す部分ブロック図である。
【図６】PINコード生成処理（その１）の一実施例を示すフローチャートである。
【図７】PINコード生成処理（その２）の一実施例を示すフローチャートである。
【図８】無線通信システムの動作の一実施例を示すシーケンスチャートである。
【図９】PINコード生成処理（その３）の一実施例を示すフローチャートである。
【発明を実施するための形態】
【００３６】
以下、図面に基づいて、実施例を説明する。
なお、実施例を説明するための全図において、同一機能を有するものは同一符号を用い、繰り返しの説明は省略する。
【００３７】
＜実施例＞
図１は、本無線通信システムの一実施例を示す。
【００３８】
本無線通信システムは、アクセスポイント２００と、ステーション(Enrollee)１００とを有する。アクセスポイント２００には、Ｐ２Ｐ Ｇｒｏｕｐ Ｏｗｎｅｒとして機能する無線通信装置が含まれる。
【００３９】
ステーション１００は、無線通信のプロトコルとして、ＩＥＥＥ８０２．１１仕様に規定される無線ＬＡＮ(WLAN)が適用される。
【００４０】
ステーション１００は、ステーション本体１１０と、ＷＬＡＮカード１２０とを有する。ステーション本体１１０と、ＷＬＡＮカード１２０との間は、バス１３０を介して接続される。
【００４１】
ステーション本体１１０は、メインＣＰＵ(Central Processing Unit)１１３を有する。メインＣＰＵ１１３は、ＯＳ(Operating System)１１２を実行させる。メインＣＰＵ１１３は、ＯＳ１１２上で、デバイスドライバ１１４を実行させる。
【００４２】
ステーション本体１１０は、デバイスドライバ１１４を有する。デバイスドライバ１１４は、ファームウェア１２１と連携して、ＷＬＡＮ ＭＡＣ１２５を制御する。
【００４３】
ステーション本体１１０は、ステーション用無線ユーティリティツール１１１を有する。
【００４４】
ステーション本体１１０は、バス制御部１１５を有する。バス制御部１１５は、ＷＬＡＮカード１２０内のバス制御部１２４と連携して、バス１３０の制御を行う。
【００４５】
ＷＬＡＮカード１２０は、ローカルＣＰＵ１２３を有する。ローカルＣＰＵ１２３は、ＯＳ１２２を実行させる。さらに、ローカルＣＰＵ１２３は、ＯＳ１２２上でファームウェア１２１を実行させる。
【００４６】
ＷＬＡＮカード１２０は、ファームウェア１２１を有する。ファームウェア１２１は、ＷＬＡＮ ＭＡＣ１２５を制御する。つまり、ファームウェア１２１は、ＷＬＡＮ ＭＡＣ１２５内のレジスタへの値の読み書きを行うことにより、ＷＬＡＮ ＭＡＣ１２５を制御する。
【００４７】
ＷＬＡＮカード１２０は、バス制御部１２４を有する。バス制御部１２４は、ステーション本体１１０内のバス制御部１１５と連携して、バス１３０の制御を行う。
【００４８】
ＷＬＡＮカード１２０は、ＷＬＡＮ ＭＡＣ１２５を有する。ＷＬＡＮ ＭＡＣ１２５は、送信すべきデータパケットの生成や、受信したデータパケットの分割を行う。
【００４９】
ＷＬＡＮカード１２０は、ＷＬＡＮ ＰＬＣＰ１２６を有する。ＷＬＡＮ ＰＬＣＰ１２６は、ＷＬＡＮ ＭＡＣ１２５で生成されたデータパケットのディジタルデータを電気信号に変換する。ＷＬＡＮ ＰＬＣＰ１２６は、ＷＬＡＮ ＭＡＣ１２５に、電気信号に変換されたディジタルデータを入力する。また、ＷＬＡＮ ＰＬＣＰ１２６は、受信した電気信号をデータパケットのディジタルデータに変換する。ＷＬＡＮ ＰＬＣＰ１２６は、ＷＬＡＮ ＭＡＣ１２５に、ディジタルデータに変換されたデータパケットを入力する。
【００５０】
ＷＬＡＮカード１２０は、ＲＦ１２７を有する。ＲＦ１２７は、電気信号の周波数と無線の電波の周波数との周波数変換をおこなう。
【００５１】
＜ステーション用無線ユーティリティツール＞
図２は、ステーション用無線ユーティリティツール１１１の一実施例を示す。
【００５２】
ステーション用無線ユーティリティツール１１１は、ユーザーとステーション本体１１０との間のインタフェースの役割を果たす。例えば、ステーション用無線ユーティリティツール１１１は、ユーザーからの接続要求を受け付ける際に機能する。また、ステーション用無線ユーティリティツール１１１は、無線デバイスの状態を表示してユーザーに通知する際に機能する。
【００５３】
ステーション用無線ユーティリティツール１１１は、ＳＳＩＤ表示部１１１１を有する。ＳＳＩＤ表示部１１１１は、ＷＬＡＮカード１２０により検出されるべきＳＳＩＤのリストを表示する。該ＳＳＩＤのリストには、ＩＥＥＥ８０２．１１仕様におけるアクセスポイントに設定されたＳＳＩＤ、Ｗｉ−Ｆｉ Ｄｉｒｅｃｔ仕様におけるＰ２Ｐ Ｇｒｏｕｐ Ｏｗｎｅｒに設定されたＳＳＩＤが含まれる。
【００５４】
例えば、ユーザーが、マウスなどの指示デバイスを動かすことにより、ＳＳＩＤを選択できる。具体的には、指示デバイスを動かすことにより、ＳＳＩＤ表示部１１１１に表示されるべき、一つ以上のＳＳＩＤのリスト中の、いずれかのＳＳＩＤの箇所に、ポインタを持っていくことができる。ポインタにより指示されたＳＳＩＤの箇所の色が変わり、該ＳＳＩＤが選択されていることが明示される。さらに、該ＳＳＩＤの箇所に、接続クリックボタンＩ／Ｆ１１１２が表示される。
【００５５】
図３は、ＳＳＩＤ表示部１１１１により表示されるべき内容の一実施例を示す。図３には、ＷＬＡＮカード１２０により検出されるべきＳＳＩＤを選択するための１又は複数の領域が含まれる。さらに、各領域に対応し、接続する際に選択されるべき領域が含まれる。該接続する際に選択されるべき領域は、ＳＳＩＤが選択された際に表示されてもよい。
【００５６】
接続クリックボタンＩ／Ｆ１１１２は、ＳＳＩＤ表示部１１１１に表示されるべき各ＳＳＩＤと対応付けられる。ユーザーにより接続クリックボタンＩ／Ｆがクリックされると、該接続クリックボタンＩ／Ｆに対応するＳＳＩＤを送信しているアクセスポイント又はＰ２Ｐ Ｇｒｏｕｐ Ｏｗｎｅｒに対して、接続要求が送信される。
【００５７】
なお、ＷＰＳを用いた接続をおこなう際には、Ｅｎｒｏｌｌｅｅ側とＡＰ／Ｒｅｇｉｓｔｒａｒ側で設定しているＰＩＮコードが一致しているかどうかを調べる。
【００５８】
本ステーション１００は、ＳＳＩＤに基づいて、接続要求に含まれるべきＰＩＮコードを自動的に生成する。
【００５９】
ステーション用無線ユーティリティツール１１１は、ＰＩＮコード生成部１１１４を有する。ＰＩＮコード生成部１１１４は、ＰＩＮコードを自動的に生成する。例えば、ＰＩＮコード生成部１１１４は、演算処理内容を秘匿した関数を用いて、該関数の入力値としてＳＳＩＤを用いる。該演算処理を行った結果得られる演算値をＰＩＮコードとする。
【００６０】
ステーション用無線ユーティリティツール１１１は、ＷＰＳ方式判定部１１１３を有する。ＷＰＳ方式判定部１１１３は、ユーザーにより接続クリックボタンＩ／Ｆ１１１２が選択された際に、該選択された接続クリックボタンＩ／Ｆ１１１２に対応するＳＳＩＤに対応するアクセスポイントにより通知されるべき、プッシュボタンが押されていたかどうかの情報に基づいて、プッシュボタン方式での接続要求を出すかどうかを判定する。
【００６１】
また、ＷＰＳ方式判定部１１１３は、ユーザーにより接続クリックボタンＩ／Ｆ１１１２が選択された場合に、該選択された接続クリックボタンＩ／Ｆ１１１２に対応するＳＳＩＤに対応するＰ２Ｐ Ｇｒｏｕｐ Ｏｗｎｅｒにより通知されるべき、プッシュボタンが押されていたかどうかの情報に基づいて、プッシュボタン方式での接続要求を出すかどうかを判定するようにしてもよい。
【００６２】
ＷＰＳ方式判定部１１１３は、プッシュボタンが押されていると判定した場合には、プッシュボタン方式での接続要求を送出し、プッシュボタンが押されていなかったと判定した場合には、ＰＩＮコード方式での接続要求を送出する。
【００６３】
プッシュボタンが押されていたかどうかを表す情報は、ファームウェア１２１及びデバイスドライバ１１４において作成される。ファームウェア１２１は、アクセスポイント又はＰ２Ｐ Ｇｒｏｕｐ Ｏｗｎｅｒにより送出されるビーコンフレームに含まれるべき、プッシュボタンが押されてから２分以内であるかどうかを表す情報を検出する。
【００６４】
＜プッシュボタンが押されていたかどうかを表す情報の検出方法＞
ＷＰＳ仕様では、アクセスポイントまたはＰ２Ｐ Ｇｒｏｕｐ Ｏｗｎｅｒ（ＡＰ／Ｒｅｇｉｓｔｒａｒ）は、プッシュボタンが押されてから２分間の間（Ｗａｌｋ Ｔｉｍｅ）は、ビーコンフレームの中の、ＷＳＣ ＩＥ領域のＳｅｌｅｃｔｅｄ Ｒｅｇｉｓｔｒａｒ Ａｔｔｒｉｂｕｔｅの値をＴＲＵＥに設定することが規定されている。該２分間の間に、あるステーションからの接続要求を受けた場合には、該ステーションに対して、Ｃｒｅｄｅｎｔｉａｌｓを供給することが規定されている。
【００６５】
ＡＰ／Ｒｅｇｉｓｔｒａｒは、内部のタイマーを用いて、プッシュボタンが押されてから２分間経過したことを認識すると、Ｓｅｌｅｃｔｅｄ Ｒｅｇｉｓｔｒａｒ Ａｔｔｒｉｂｕｔｅの値をＦＡＬＳＥに設定することが規定されている。
【００６６】
ファームウェア１２１は、受信したビーコンフレームを解析し、Ｓｅｌｅｃｔｅｄ Ｒｅｇｉｓｔｒａｒ Ａｔｔｒｉｂｕｔｅの値がＴＲＵＥであるかＦＡＬＳＥであるかを調べる。
【００６７】
該ファームウェア１２１は、Ｓｅｌｅｃｔｅｄ Ｒｅｇｉｓｔｒａｒ Ａｔｔｒｉｂｕｔｅの値がＴＲＵＥであるかＦＡＬＳＥであるかを表す情報を、デバイスドライバ１１４を経由して、ステーション用無線ユーティリティツール１１１１に伝える。
【００６８】
ステーション用無線ユーティリティツール１１１１では、デバイスドライバ１１４から通知されるべき情報が、プッシュボタンが押されていることを示している場合には、ＷＰＳ仕様に規定されたプッシュボタン方式に基づいて、接続処理をおこなう。一方、プッシュボタンが押されていないことを示している場合には、ＰＩＮコードの自動生成をおこなう。ステーション用無線ユーティリティツール１１１１は、自動生成されたＰＩＮコードを用いて、ＷＰＳ仕様に規定されたＰＩＮコード方式に基づいて接続処理をおこなう。
【００６９】
＜接続処理＞
図４は、接続処理を示す。
【００７０】
接続処理は、ユーザにより接続クリックボタンＩ／Ｆ１１１２が押されることにより開始される。
【００７１】
ステーション１００内のステーション用無線ユーティリティツール１１１は、デバイスドライバ１１４から通知されるべき情報が、プッシュボタンが押されていることを示しているかどうかを判定する（ステップＳ４０２）。
【００７２】
プッシュボタンが押されていないことを示していると判定された場合（ステップＳ４０２：ＮＯ）、ステーション１００は、ＳＳＩＤに基づいて、ＰＩＮコードを自動生成し、ＰＩＮコード方式により接続する（ステップＳ４０４）。つまり、ＰＩＮコード生成部１１１４は、ＳＳＩＤに基づいて、ＰＩＮコードを自動生成する。ステーション１００は、ＰＩＮコード方式により接続する。
【００７３】
プッシュボタンが押されていることを示していると判定された場合（ステップＳ４０２：ＹＥＳ）、ステーション１００は、プッシュボタン方式により接続する（ステップＳ４０６）。
【００７４】
以上により、ＰＩＮコード方式又はプッシュボタン方式により、ステーション１００とアクセスポイント２００との間は、接続される。
【００７５】
本実施例では、アクセスポイント又はＰ２Ｐ Ｇｒｏｕｐ Ｏｗｎｅｒ側は、ステーション用無線ユーティリティツール１１１１と同様の機能を有する無線ユーティリティツールを有する。
【００７６】
以下、アクセスポイント又はＰ２Ｐ Ｇｒｏｕｐ Ｏｗｎｅｒ側が有するステーション用無線ユーティリティツール１１１１と同様の機能を有する無線ユーティリティツールを、「アクセスポイント用無線ユーティリティツール」という。
【００７７】
図５は、アクセスポイント２００の一実施例を示す。
【００７８】
アクセスポイント２００は、アクセスポイント用無線ユーティリティツール２１１を有する。アクセスポイント用無線ユーティリティツール２１１以外の構成は、図１を参照して説明したステーションと略同一である。
【００７９】
アクセスポイント用無線ユーティリティツール２１１は、図２に示されるステーション用無線ユーティリティツール１１１と比較して、ＰＩＮコード生成部２１１４のみを有する点で異なる。
【００８０】
ＰＩＮコード生成部２１１４は、ステーション用無線ユーティリティツール１１１１に含まれべきＰＩＮコード生成部１１１４と同様に、演算処理内容を秘匿した関数を用いる。該演算処理の内容は、ステーション用無線ユーティリティツール１１１１に含まれるＰＩＮコード生成部１１１４と略同一である。
【００８１】
従って、ステーション用無線ユーティリティツール１１１１に含まれるＰＩＮコード生成部１１１４、及びアクセスポイント用無線ユーティリティツール２１１に含まれるＰＩＮコード生成部２１１４のそれぞれに、同じ値のＳＳＩＤを入力値とした場合、両方のツールで得られる出力値、すなわちＰＩＮコードの値は、同じとなる。
【００８２】
なお、アクセスポイント又はＰ２Ｐ Ｇｒｏｕｐ Ｏｗｎｅｒとして、ビーコンフレームにＳＳＩＤを含めないようにしたＳＳＩＤステルス機能をサポートした製品も普及している。本実施例においては、ＳＳＩＤステルス機能を用いず、ビーコンフレームにＳＳＩＤが含まれる場合について説明する。
【００８３】
また、ＩＥＥＥ８０２．１１仕様では、アクティブスキャン方式と、パッシブスキャン方式とが定義されている。
【００８４】
アクティブスキャン方式では、接続を要求するステーションが、アクセスポイント又はそれに準ずる機能を持つ通信装置に対して、接続要求を示すＰｒｏｂｅ Ｒｅｑｕｅｓｔフレームを送出する際に、Ｐｒｏｂｅ Ｒｅｑｕｅｓｔフレームに、ＳＳＩＤを含める。
【００８５】
パッシブスキャン方式では、接続を要求するステーションが、アクセスポイント又はそれに準ずる機能を持つ通信装置に対して、接続要求を示すＰｒｏｂｅ Ｒｅｑｕｅｓｔフレームを送出する際に、Ｐｒｏｂｅ Ｒｅｑｕｅｓｔフレームに、ＳＳＩＤを含めない。
【００８６】
本実施例では、アクセスポイント用無線ユーティリティツール２１１上で、ＳＳＩＤが指定される。ステーション１００のステーション用無線ユーティリティツール１１１に含まれる接続クリックボタンＩ／Ｆ１１１２が押されることにより、該接続クリックボタンＩ／Ｆ１１１２に対応するＳＳＩＤの送出元であるアクセスポイントまたはそれに準ずる機能を持つ通信装置を特定して接続要求を出すため、Ｐｒｏｂｅ Ｒｅｑｕｅｓｔフレームには、ＳＳＩＤを明示しておく必要がある。そこで、本実施例では、アクティブスキャン方式によってＰｒｏｂｅ Ｒｅｑｕｅｓｔフレームが送出される場合について説明する。
【００８７】
＜ＰＩＮコード生成部における処理の詳細（その１）＞
以下、ステーション用無線ユーティリティツール１１１１のＰＩＮコード生成部１１１４の処理について説明する。アクセスポイント用無線ユーティリティツール２１１のＰＩＮコード生成部２１１４の処理についても略同一である。
【００８８】
ステーション用無線ユーティリティツール１１１１のＰＩＮコード生成部１１１４は、入力値をＳＳＩＤとし、出力値をＰＩＮコードとする。ここでは、ＰＩＮコード生成部１１１４に入力されるべきＳＳＩＤの一例として「ｎｔｗｋ０２」を適用した場合について説明する。
【００８９】
図６は、ＰＩＮコード生成部１１１４の処理（その１）を示す。
【００９０】
ＰＩＮコード生成部１１１４は、ＳＳＩＤを１文字毎にアスキーコードに変換する（ステップＳ６０２）。つまり、「ｎｔｗｋ０２」は、「20 20 6E 74 77 6B 30 32」に変換される。ここで、ＳＳＩＤの長さが９文字以上である場合には下位８文字を抽出し、ＳＳＩＤの長さが８文字未満である場合には上位に空白（スペース）を補充し８文字に拡張し、１文字ごとにアスキーコードに変換するようにしてもよい。
【００９１】
ＰＩＮコード生成部１１１４は、アスキーコードに変換されたＳＳＩＤの下から１番目のコードをハッシュ関数の入力値とする（ステップＳ６０４）。つまり、「0×32」をハッシュ関数の入力値とする。
【００９２】
ＰＩＮコード生成部１１１４は、ハッシュ関数の出力値の下１桁を、ＰＩＮコードの、下から１番目の桁の値とする（ステップＳ６０６）。例えば、ハッシュ関数の出力値として、「6」が得られた場合、該「６」をＰＩＮコードの下から１番目の桁の値とする。
【００９３】
ＰＩＮコード生成部１１１４は、ハッシュ関数の出力値と、ＳＳＩＤの下から２番目の文字コードとを加算する（ステップＳ６０８）。つまり、ハッシュ関数の出力値「6」と、ＳＳＩＤの下から2番目の文字コード「30」とを加算する。
【００９４】
ＰＩＮコード生成部１１１４は、加算した値を、ハッシュ関数の入力値とする（ステップＳ６１０）。つまり、加算した値である「0×36」をハッシュ関数の入力値とする。
【００９５】
ＰＩＮコード生成部１１１４は、ハッシュ関数の出力値の下１桁を、ＰＩＮコードの、下から２番目の桁の値とする（ステップＳ６１２）。例えば、ハッシュ関数の出力値として、「9」が得られた場合、該「9」をＰＩＮコードの下から２番目の桁の値とする。
【００９６】
ＰＩＮコード生成部１１１４は、ハッシュ関数の出力値と、ＳＳＩＤの下から３番目の文字コードとを加算する（ステップＳ６１４）。つまり、ハッシュ関数の出力値「9」と、ＳＳＩＤの下から３番目の文字コード「6B」とを加算する。
【００９７】
ＰＩＮコード生成部１１１４は、加算した値を、ハッシュ関数の入力値とする（ステップＳ６１６）。つまり、加算した値である「0×74」をハッシュ関数の入力値とする。
【００９８】
ＰＩＮコード生成部１１１４は、ハッシュ関数の出力値の下１桁を、ＰＩＮコードの、下から３番目の桁の値とする（ステップＳ６１８）。例えば、ハッシュ関数の出力値として、「2」が得られた場合、該「2」をＰＩＮコードの下から3番目の桁の値とする。
【００９９】
以下、ＰＩＮコードとして、８桁の値が算出されるまで、上述した処理を繰り返す（ステップＳ６２０）。
【０１００】
図６に示される例では、ＰＩＮコードとして、「81432296」が得られる。
【０１０１】
上述したように、ステーション用無線ユーティリティツール１１１のＰＩＮコード生成部１１１４における演算処理と、アクセスポイント用無線ユーティリティツール２１１のＰＩＮコード生成部２１１４における演算処理とは略同一である。従って、ステーション側で生成されるＰＩＮコードと、アクセスポイント又はそれに準ずる機能を有する通信装置側で生成されるＰＩＮコードとは、ＳＳＩＤが同じであるならば、同じ値となる。ステーション用無線ユーティリティツール１１１のＰＩＮコード生成部１１１４における演算処理の内容と、アクセスポイント用無線ユーティリティツール２１１のＰＩＮコード生成部２１１４における演算処理の内容は秘匿される。例えば、演算処理を含めた無線ユーティリティツールを、バイナリファイルの形で、ユーザーに配布してもよい。従って、ステーション用無線ユーティリティツール１１１又はアクセスポイント用無線ユーティリティツール２１１を有するユーザーだけが、あるＳＳＩＤから同じＰＩＮコードを生成できるため、通信をおこなうことが可能となる。ステーション用無線ユーティリティツール１１１又はアクセスポイント用無線ユーティリティツール２１１を有するユーザーだけが、あるＳＳＩＤから同じＰＩＮコードを生成できるため、セキュリティ面での安全性が高くなる。
【０１０２】
なお、以上の説明では、ステーション用無線ユーティリティツール１１１と、アクセスポイント用無線ユーティリティツール２１１の両方において秘匿されるべき演算処理に、ハッシュ関数が含まれる場合を例に取り上げたが、演算処理の内容はこの限りではない。
【０１０３】
＜ＰＩＮコード生成部における処理の詳細（その２）＞
以下、ステーション用無線ユーティリティツール１１１１のＰＩＮコード生成部１１１４の処理について説明する。アクセスポイント用無線ユーティリティツール２１１のＰＩＮコード生成部２１１４の処理についても略同一である。
【０１０４】
図７は、ＰＩＮコード生成部１１１４の処理（その２）を示す。ここでは、ＰＩＮコード生成部１１１４に入力されるべきＳＳＩＤの一例として「ｎｔｗｋ０２」が入力される場合について説明する。
【０１０５】
図７は、ＰＩＮコード生成部１１１４の処理（その２）を示す。
【０１０６】
ＰＩＮコード生成部１１１４は、ＳＳＩＤを１文字毎にアスキーコードに変換する（ステップＳ７０２）。つまり、「ｎｔｗｋ０２」は、「20 20 6E 74 77 6B 30 32」に変換される。ここで、ＳＳＩＤの長さが９文字以上である場合には下位８文字を抽出し、ＳＳＩＤの長さが８文字未満である場合には上位に空白（スペース）を補充し８文字に拡張し、１文字ごとにアスキーコードに変換するようにしてもよい。
【０１０７】
ＰＩＮコード生成部１１１４は、上位４文字と、下位４文字とを入れ替える（ステップＳ７０４）。つまり、「20 20 6E 74 77 6B 30 32」は、「77 6B 30 32 20 20 6E 74」に変換される。上位４文字と、下位４文字とを入れ替えることにより、ＳＳＩＤの長さが８文字未満の場合に、上位の文字列にスペースが集まり易くなることを回避することができる。ＳＳＩＤの長さが８文字未満の場合には上位にスペースが補充されるためである。
【０１０８】
ＰＩＮコード生成部１１１４は、下から１番目に配置された文字の、上位４ビットと下位４ビットとを足し（加算し）、１０進数の変換し、該１０進数の下から１桁目の値を、ＰＩＮコードの下から１番目の桁の値とする（ステップＳ７０６）。つまり、下から１番目に配置された「74」の、上位４ビット「0×7」と、下位４ビット「0×4」とを加算し、「0×B」を得る。該「0×B」を10進数に変換し、「11」を得る。該「11」の下から１番目の値「1」を、ＰＩＮコードの下から１番目の桁の値とする。
【０１０９】
ＰＩＮコード生成部１１１４は、下から２番目に配置された文字の、上位４ビットと下位４ビットとを足し（加算し）、１０進数の変換し、該１０進数の下から１桁目の値を、ＰＩＮコードの下から２番目の桁の値とする（ステップＳ７０８）。つまり、下から2番目に配置された「6E」の、上位４ビット「0×6」と、下位４ビット「0×E」とを加算し、「0×14」を得る。該「0×14」を10進数に変換し、「20」を得る。該「20」の下から１番目の値「0」を、ＰＩＮコードの下から2番目の桁の値とする。
【０１１０】
ＰＩＮコード生成部１１１４は、下から3番目に配置された文字の、上位４ビットと下位４ビットとを足し（加算し）、１０進数の変換し、該１０進数の下から１桁目の値を、ＰＩＮコードの下から3番目の桁の値とする（ステップＳ７１０）。つまり、下から3番目に配置された「20」の、上位４ビット「0×2」と、下位４ビット「0×0」とを加算し、「0×2」を得る。該「0×2」を10進数に変換し、「2」を得る。該「2」の下から１番目の値「2」を、ＰＩＮコードの下から3番目の桁の値とする。
【０１１１】
以下、ＰＩＮコードとして、８桁の値が算出されるまで、上述した処理を繰り返す（ステップＳ７１２）。
【０１１２】
＜本無線通信システムの動作＞
図８は、アクセスポイント２００から、ステーション１００への、Ｃｒｅｄｅｎｔｉａｌｓの配布手順の一実施例を示す。
【０１１３】
図８には、一例としてＷＰＳ仕様に従ったシーケンスが示される。図８には、ステーション１００と、アクセスポイント２００との間における、Ｐｒｏｂｅ Ｒｅｓｐｏｎｓｅフレームなどについても示される。ステーション１００により送信される接続要求に対してアクセスポイント２００が応答した後、Ｍ１（メッセージ１）からＭ８（メッセージ８）により表されるメッセージがやりとりされることにより、Ｃｒｅｄｅｎｔｉａｌｓの配布がおこなわれる。
【０１１４】
ステーション１００のＰＩＮコードはＳＳＩＤに基づいて生成される。該ステーション１００は、ＳＳＩＤに基づいて生成したＰＩＮコードを入力値とした時のハッシュ関数の出力値を、Ｍ３に格納して送出する。一方、アクセスポイント２００は、ＳＳＩＤに基づいて生成したＰＩＮコードを入力値とした時のハッシュ関数の出力値を、Ｍ４に格納して送出する。
【０１１５】
Ｍ８では、ＰＩＮコードと、Ｍ３、Ｍ４で受け渡した情報をもとに生成した暗号鍵を用いて、Ｃｒｅｄｅｎｔｉａｌｓを暗号化したものを格納して、送出する。
【０１１６】
ステーション１００側と、アクセスポイント２００側で用いるハッシュ関数は同じものであるため、ステーション１００側と、アクセスポイント２００側それぞれで生成されるＰＩＮコードが同一のものであれば、該ＰＩＮコードをハッシュ関数の入力値とした時の出力値は、ステーション１００側と、アクセスポイント２００側で同じ値になる。
【０１１７】
＜本無線通信システムの動作の詳細＞
アクセスポイント２００は、ビーコンフレームを送信する（ステップＳ８０２）。該ビーコンフレームには、ＳＳＩＤが含まれる。
【０１１８】
ステーション１００は、プローブリクエストを送信する（ステップＳ８０４）。該プローブリクエストには、ＳＳＩＤが含まれる。
【０１１９】
アクセスポイント２００は、プローブレスポンスを送信する（ステップＳ８０６）。該プローブレスポンスには、ステーションのＭＡＣアドレスが含まれる。
【０１２０】
ステーション１００は、オーセンティケーションリクエストを送信する（ステップＳ８０８）。該オーセンティケーションリクエストには、アクセスポイントのＭＡＣアドレスが含まれる。
【０１２１】
アクセスポイント２００は、オーセンティケーションレスポンスを送信する（ステップＳ８１０）。該オーセンティケーションレスポンスには、ステーションのＭＡＣアドレスが含まれる。
【０１２２】
ステーション１００は、アソシエーションリクエストを送信する（ステップＳ８１２）。該アソシエーションリクエストには、アクセスポイントのＭＡＣアドレスが含まれる。
【０１２３】
アクセスポイント２００は、アソシエーションレスポンスを送信する（ステップＳ８１４）。該アソシエーションレスポンスには、ステーションのＭＡＣアドレスが含まれる。
【０１２４】
ステーション１００は、ＳＳＩＤを入力値として、ツールに秘匿された関数により、ＰＩＮコードを生成する（ステップＳ８１６）。つまり、ＰＩＮコード生成部１１１４は、ＳＳＩＤに基づいて、ＰＩＮコードを生成する。ここで、ＳＳＩＤは、ステップＳ８０２によりアクセスポイント２００から通知されたＳＳＩＤであってもよい。
【０１２５】
アクセスポイント２００は、ＳＳＩＤを入力値として、ツールに秘匿された関数により、ＰＩＮコードを生成する（ステップＳ８１６）。つまり、ＰＩＮコード生成部２１１４は、ＳＳＩＤに基づいて、ＰＩＮコードを生成する。ここで、ＳＳＩＤは、ステップＳ８０４によりステーション１００から通知されたＳＳＩＤであってもよい。
【０１２６】
ステーション１００は、EAPOL(Extensible Authentication Protocol over LAN)-Startを送信する（ステップＳ８２０）。
【０１２７】
ステーション１００は、EAPOL-Response(M1: Message 1)を送信する（ステップＳ８２２）。
【０１２８】
アクセスポイント２００は、EAPOL-Request(M2: Message 2)を送信する（ステップＳ８２４）。
【０１２９】
ステーション１００は、PINコードを入力値として、メッセージ３(M3: Message 3)に、ハッシュ関数の出力値を格納する（ステップＳ８２６）。
【０１３０】
ステーション１００は、EAP-Response(M3)を送信する（ステップＳ８２８）。
【０１３１】
アクセスポイント２００は、PINコードを入力値として、メッセージ４(M4: Message 4)に、ハッシュ関数の出力値を格納する（ステップＳ８３０）。
【０１３２】
アクセスポイント２００は、EAP-Request(M4)を送信する（ステップＳ８３２）。
【０１３３】
ステーション１００は、EAP-Response(M5)を送信する（ステップＳ８３４）。
【０１３４】
アクセスポイント２００は、EAP-Request(M6)を送信する（ステップＳ８３６）。
【０１３５】
ステーション１００は、EAP-Response(M7)を送信する（ステップＳ８３８）。
【０１３６】
アクセスポイント２００は、認証に必要な情報(Credentials)を、ＰＩＮコードを基に生成した暗号鍵で暗号化して、メッセージ８(M8: Message 8)に格納する(ステップＳ８４０)。
【０１３７】
アクセスポイント２００は、EAP-Request(M8)を送信する（ステップＳ８４２）。
【０１３８】
以降、ステーション１００は、アクセスポイントから取得したCredentialsを用いて、アクセスポイント２００との間で、4-way  handshakeにより認証処理をおこなう。該認証処理の後、ステーション１００と、アクセスポイント２００との間で通信が開始される。
【０１３９】
アクセスポイントまたはＰ２Ｐ Ｇｒｏｕｐ Ｏｗｎｅｒにおける、ＳＳＩＤの更新のタイミングおよび間隔については、Ｐ２Ｐ Ｇｒｏｕｐ Ｏｗｎｅｒ内部にて求められるセキュリティレベルの高さと、一度作成したＰＩＮコードを再利用できる簡単さとのトレードオフを考慮して、適切な値に設定すればよい。一例として、Ｐ２Ｐ Ｇｒｏｕｐ Ｏｗｎｅｒ内部で、前回ＳＳＩＤを更新した後から日付が変わったことを検知し、かつ、全てのＰ２Ｐ Ｃｌｉｅｎｔが、Ｐ２Ｐ Ｇｒｏｕｐから切断していることを検知した場合を、ＳＳＩＤ更新のタイミングとして設定してもよい。
【０１４０】
＜変形例＞
上述した実施例では、無線ユーティリティツールを所有するユーザー同士が通信する場合について説明した。
【０１４１】
さらに、該無線ユーティリティツールの使用範囲を広げるようにしてもよい。例えば、社外のユーザーにも公開するようにしてもよい。この場合、無線ユーティリティツールの使用者に含まれる、ある特定のグループのユーザー同士が通信できるように、通信ができる範囲を限定することが必要となる。
【０１４２】
そこで、本実施例では、無線ユーティリティツールに、システム管理者によりパラメータが設定される。つまり、SSIDと、システム管理者により設定されるべきパラメータ（以下、「設定パラメータ」という）に基づいて、PINコードが生成される。システム管理者によりパラメータが設定されることにより、配布先となるグループごとに、異なる演算処理をおこなわせることができる。ここでは、SSIDとして「ｎｔｗｋ０２」、設定パラメータとして「ｒｉｃｏｈｌａｎ」が使用される例を示す。設定パラメータは、任意の文字列であってもよい。
【０１４３】
＜ＰＩＮコード生成部における処理の詳細（その３）＞
以下、ステーション用無線ユーティリティツール１１１１のＰＩＮコード生成部１１１４の処理について説明する。アクセスポイント用無線ユーティリティツール２１１のＰＩＮコード生成部２１１４の処理についても略同一である。
【０１４４】
図９は、ＰＩＮコード生成部１１１４の処理（その１）を示す。
【０１４５】
ＰＩＮコード生成部１１１４は、ＳＳＩＤの下位８文字と、設定パラメータを１文字毎にアスキーコードに変換し、１バイト毎に排他的論理和(EOR: exclusive or)を求める（ステップＳ９０２）。つまり、「ｎｔｗｋ０２」は「00 00 6E 74 77 6B 30 32」に変換され、「ｒｉｃｏｈｌａｎ」は「72 69 63 6F 68 6C 61 6E」に変換される。ここで、ＳＳＩＤの長さが９文字以上である場合には下位８文字を抽出し、ＳＳＩＤの長さが８文字未満である場合には上位に空白（スペース）を補充し８文字に拡張し、１文字ごとにアスキーコードに変換するようにしてもよい。「00 00 6E 74 77 6B 30 32」と、「72 69 63 6F 68 6C 61 6E」との間で、下位４ビット毎に、EORを求めることにより「72 69 0D 1B 1F O7 31 3C」が得られる。
【０１４６】
ＰＩＮコード生成部１１１４は、EORの下から１番目の文字のコードをハッシュ関数の入力値とする（ステップＳ９０４）。つまり、「0×3C」をハッシュ関数の入力値とする。
【０１４７】
ＰＩＮコード生成部１１１４は、ハッシュ関数の出力値の下１桁を、ＰＩＮコードの、下から１番目の桁の値とする（ステップＳ９０６）。例えば、ハッシュ関数の出力値として、「7」が得られた場合、該「7」をＰＩＮコードの下から１番目の桁の値とする。
【０１４８】
ＰＩＮコード生成部１１１４は、ハッシュ関数の出力値と、ＳＳＩＤの下から２番目の文字のコードとを加算する（ステップＳ９０８）。つまり、ハッシュ関数の出力値と、ＳＳＩＤの下から2番目の文字コード「30」とを加算する。
【０１４９】
ＰＩＮコード生成部１１１４は、加算した値を、ハッシュ関数の入力値とする（ステップＳ９１０）。つまり、加算した値である「0×38」をハッシュ関数の入力値とする。
【０１５０】
ＰＩＮコード生成部１１１４は、ハッシュ関数の出力値の下１桁を、ＰＩＮコードの、下から２番目の桁の値とする（ステップＳ９１２）。例えば、ハッシュ関数の出力値として、「4」が得られた場合、該「4」をＰＩＮコードの下から２番目の桁の値とする。
【０１５１】
ＰＩＮコード生成部１１１４は、ハッシュ関数の出力値と、ＳＳＩＤの下から３番目の文字コードとを加算する（ステップＳ９１４）。つまり、ハッシュ関数の出力値「4」と、ＳＳＩＤの下から３番目の文字コード「6B」とを加算する。
【０１５２】
ＰＩＮコード生成部１１１４は、加算した値を、ハッシュ関数の入力値とする（ステップＳ９１６）。つまり、加算した値である「0×OB」をハッシュ関数の入力値とする。
【０１５３】
ＰＩＮコード生成部１１１４は、ハッシュ関数の出力値の下１桁を、ＰＩＮコードの、下から３番目の桁の値とする（ステップＳ９１８）。例えば、ハッシュ関数の出力値として、「5」が得られた場合、該「5」をＰＩＮコードの下から3番目の桁の値とする。
【０１５４】
以下、ＰＩＮコードとして、８桁の値が算出されるまで、上述した処理を繰り返す（ステップＳ９２０）。
【０１５５】
図９に示される例では、ＰＩＮコードとして、「85662547」が得られる。
【０１５６】
本実施例では、無線ユーティリティツールを配布したグループにおいては、ＳＳＩＤとして「ｎｔｗｋ０２」に対応するＰＩＮコードは、「８５６６２５４７」という共通の値となる。
【０１５７】
他のグループでは、システム管理者が設定する文字列が「ｒｉｃｏｈｌａｎ」以外であれば、同じＳＳＩＤに対する排他的論理和の値が、前述の値とは異なる値になるため、８桁のＰＩＮコードも、「８５６６２５４７」以外の値になる。
【０１５８】
従って、あるグループ内で用いるＳＳＩＤを、そのグループ以外の人に検出されたとしても、ＰＩＮコードとして得られる値が異なるため、そのグループ以外の人に通信データを解読されることを回避することが可能となる。
【０１５９】
＜本実施例の作用効果＞
（１）複数の無線通信装置を含む無線通信システムにおける１の無線通信装置であって、
他の無線通信装置との間で接続を確立する際に、該他の通信装置から通知されるべきネットワーク識別情報に基づいて、所定の演算処理を行うＰＩＮコード生成部としての、演算処理部と、
該演算処理部による演算結果と、前記他の無線通信装置により通知されるべき演算結果とに基づいて、前記他の無線通信装置との間で接続を確立すべきかどうかを判定するステーション用無線ユーティリティツール、アクセスポイント用無線ユーティリティツールとしての、判定部と、
該判定部による判定結果に従って、前記他の無線通信装置との間で接続を確立するステーション用無線ユーティリティツール、アクセスポイント用無線ユーティリティツールとしての、接続処理部と
を有する。
【０１６０】
本実施例によれば、無線端末装置と、基地局または基地局の機能を有する無線端末装置との間の通信において、特定の使用者に配布されるべき無線通信制御用ソフトウェア内の関数を用い、指定されたネットワーク識別情報をその関数の入力値とし、得られる出力値を、接続の確立に必要となる情報の受け渡しの対象となる正規ユーザーか否かを判別するための情報として用いることができる。このため、正規ユーザーか否かを判別する情報を入力する煩雑さを解消することができる。さらに、正規ユーザーか否かを判別する情報が、正規ユーザー以外の者の目に触れることがないため、セキュリティ性を高めることが可能となる。
【０１６１】
（２）（１）に記載の無線通信装置において、
当該無線通信装置は、ＩＥＥＥ８０２．１１に規定された無線ＬＡＮプロトコルに従って、動作する。
【０１６２】
本実施例によれば、ＩＥＥＥ８０２．１１に記載の無線ＬＡＮプロトコルを用いるため、既に広く普及しており、多数の製品が市場に出ているという観点から、他社製品との相互的な接続がし易いという効果を奏する。
【０１６３】
（３）（２）に記載の無線通信装置において、
前記他の無線通信装置に対して送信すべき接続要求を生成するステーション用無線ユーティリティツールとしての、接続要求生成部と、
該接続要求生成部により生成された接続要求を送信する無線ＬＡＮカードとしての、接続要求送信部と
を有し、
前記接続要求生成部は、前記接続要求に、前記ネットワーク識別情報を含める。
【０１６４】
本実施例によれば、接続を要求するステーションが、アクセスポイントまたはそれに準ずる機能を持つ通信装置に対して送出する、接続要求を示すＰｒｏｂｅ Ｒｅｑｕｅｓｔフレーム中にＳＳＩＤを含める、アクティブスキャン方式が使用されるため、接続要求の対象となるＳＳＩＤを確実に指定することが可能となる。
【０１６５】
（４）（１）ないし（３）のいずれか１項に記載の無線通信装置において、
前記演算処理部は、当該無線通信装置が属するグループ毎に、異なる演算処理を行う。
【０１６６】
本実施例によれば、ソフトウェアが配布されるべきグループ単位ごとに異なる演算処理をおこなうように設計できる。このため、例えば、ツールを社外のユーザーにも公開する場合に、意図しないユーザーに正規のＰＩＮコードを生成されてしまうという危険を回避することが可能となる。
【０１６７】
（５）（４）に記載の無線通信装置において、
前記演算処理部は、前記グループ毎に設定されるべき任意の文字列を利用して、演算処理を行う。
【０１６８】
本実施例によれば、ソフトウェアが配布されるべきグループ単位ごとに異なる演算処理をおこなうように設計するためのパラメータを、任意の文字列とできるため、設計を受け持つ管理者にとって管理しやすいという効果を奏する。
【０１６９】
（６）（１）ないし（５）のいずれか１項に記載の無線通信装置において、
前記演算処理部は、一方向性関数を利用して、演算処理を行う。
【０１７０】
本実施例によれば、無線通信制御用ソフトウェアにおける演算処理にハッシュ関数を用いるため、単にアスキーコードを用いるものに比べ、想定されるパスワードを用いた総当たり攻撃に対する強固性を一層高くすることが可能となる。
【０１７１】
（７）（２）に記載の無線通信装置において、
他の無線通信装置を検出するＷＬＡＮカードとしての、検出部
を有し、
前記演算処理部は、前記検出部により検出されるべき他の無線通信装置の中からユーザにより選択された他の無線通信装置との間で接続を確立する際に、該他の通信装置から通知されるべきネットワーク識別情報に基づいて、所定の演算処理を行う。
【０１７２】
本実施例によれば、検出されるべき一または複数個のＳＳＩＤの中から所望のＳＳＩＤを選択して接続を要求するユーザーインターフェースを有する。このため、無線通信制御用ソフトウェア内の関数の入力値となるＳＳＩＤを特定することが可能となる。
【０１７３】
（８）（２）に記載の無線通信装置において、
他の無線通信装置から送信されるべきビーコンフレームに基づいて、前記他の通信装置から通知されるべきネットワーク識別情報により、接続処理を行うかどうかを判定する接続判定部
を有し、
前記演算処理部は、前記接続判定部により、前記他の通信装置から通知されるべきネットワーク識別情報に基づいて接続処理を行うと判定された場合に、該ネットワーク識別情報により、所定の演算処理を行う。
【０１７４】
本実施例によれば、アクセスポイントまたはそれに準ずる機能を持つ通信装置側でプッシュボタンが押されたことを示す情報を検出したかどうかによって、接続要求を出す方式を決定できる。このため、例えば、アクセスポイント側ではプッシュボタンが押されているにもかかわらずＰＩＮコード方式で接続要求を出すなどの不整合や非効率的な事象を排除することができ、その場に応じた方式で接続要求を出すことが可能となる。
【０１７５】
（９）複数の無線通信装置を含む無線通信システムにおける１の無線通信装置における無線通信方法であって、
他の無線通信装置との間で接続を確立する際に、該他の通信装置から通知されるべきネットワーク識別情報に基づいて、所定の演算処理を行う演算処理ステップと、
該演算処理ステップによる演算結果と、前記他の無線通信装置により通知されるべき演算結果とに基づいて、前記他の無線通信装置との間で接続を確立すべきかどうかを判定する判定ステップと、
該判定ステップによる判定結果に従って、前記他の無線通信装置との間で接続を確立する接続処理ステップと
を有する。
【０１７６】
（１０）（９）に記載の方法を、コンピュータに実行させるためのプログラム。
【０１７７】
以上、本発明は特定の実施例を参照しながら説明されてきたが、各実施例は単なる例示に過ぎず、当業者は様々な変形例、修正例、代替例、置換例等を理解するであろう。説明の便宜上、本発明の実施例に従った装置は機能的なブロック図を用いて説明されたが、そのような装置はハードウェアで、ソフトウエアで又はそれらの組み合わせで実現されてもよい。本発明は上記実施例に限定されず、本発明の精神から逸脱することなく、様々な変形例、修正例、代替例、置換例等が包含される。
【符号の説明】
【０１７８】
１００  ステーション(Enrollee)
１１０  ステーション本体
１１１  ステーション用無線ユーティリティツール
１１１１  SSID表示部
１１１２  接続クリックボタンI/F
１１１３  WPS方式判定部
１１１４  PINコード生成部
１１２  オペレーティングシステム(OS: Operating System)
１１３  メインCPU
１１４  デバイスドライバ
１１５  バス制御部
１２０  WLANカード
１２１  ファームウェア
１２２  OS
１２３  ローカルCPU
１２４  バス制御部
１２５  WLAN MAC
１２６  WLAN PLCP
１２７  RF
１３０  バス
２００  アクセスポイント
２１１  アクセスポイント用無線ユーティリティツール
２１１４  PINコード生成部
【先行技術文献】
【特許文献】
【０１７９】
【特許文献１】特表２００９−５１３０８９
【特許文献２】特開２００９‐２５３３８０
【非特許文献】
【０１８０】
【非特許文献１】Ｗｉ−Ｆｉ Ｐｒｏｔｅｃｔｅｄ Ｓｅｔｕｐ Ｓｐｅｃｉｆｉｃａｔｉｏｎ Ｖｅｒｓｉｏｎ １．０ｈ
【非特許文献２】Ｗｉ−Ｆｉ Ｐｅｅｒ−ｔｏ−Ｐｅｅｒ（Ｐ２Ｐ）Ｔｅｃｈｎｉｃａｌ Ｓｐｅｃｉｆｉｃａｔｉｏｎ Ｖｅｒｓｉｏｎ １．１５
【図１】
0005772105.tif 000002
【図２】
0005772105.tif 000003
【図３】
0005772105.tif 000004
【図４】
0005772105.tif 000005
【図５】
0005772105.tif 000006
【図６】
0005772105.tif 000007
【図７】
0005772105.tif 000008
【図８】
0005772105.tif 000009
【図９】
0005772105.tif 000010