JP2020072441A - 通信装置、制御方法及びプログラム - Google Patents
通信装置、制御方法及びプログラム Download PDFInfo
- Publication number
- JP2020072441A JP2020072441A JP2018207194A JP2018207194A JP2020072441A JP 2020072441 A JP2020072441 A JP 2020072441A JP 2018207194 A JP2018207194 A JP 2018207194A JP 2018207194 A JP2018207194 A JP 2018207194A JP 2020072441 A JP2020072441 A JP 2020072441A
- Authority
- JP
- Japan
- Prior art keywords
- communication device
- authentication
- communication
- sharing
- dpp
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/06—Authentication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W76/00—Connection management
- H04W76/10—Connection setup
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W84/00—Network topologies
- H04W84/02—Hierarchically pre-organised networks, e.g. paging networks, cellular networks, WLAN [Wireless Local Area Network] or WLL [Wireless Local Loop]
- H04W84/10—Small scale networks; Flat hierarchical networks
- H04W84/12—WLAN [Wireless Local Area Networks]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
【課題】 DPP規格に準拠したパラメータ共有処理において、ユーザの利便性を向上させることを目的とする。【解決手段】 無線ネットワークに接続するための通信パラメータを他の通信装置と共有するための共有処理を開始する指示を受け付けた場合に、固定の認証コードを用いて、他の通信装置との間で、Wi−Fi DPP(Device Provisioning Protocol)規格によって定められた所定の公開鍵を共有する際に認証処理を行い、当該認証処理に成功した場合に、他の通信装置と前記通信パラメータを共有する。【選択図】 図3
Description
本発明は、通信パラメータの共有処理を行う装置に関する。
近年、無線ネットワークにアクセスするための通信パラメータを共有する技術として、Wi−Fi DPP(Device Provisioning Protocol)規格が策定された。
DPP規格では、コンフィグレータと呼ばれる装置が、エンローリと呼ばれる装置に通信パラメータを提供することが定められている(特許文献1)。また、DPP規格では、一方の通信装置がQRコード(登録商標)を撮影して相手装置を特定することによって、誤った相手装置と通信パラメータを共有してしまうことを防いでいる。
しかしながら、QRコードを撮影することのできるスマートフォンやカメラなどの装置がない場合であっても、簡便なユーザ操作でDPP規格に準拠した通信パラメータの共有処理を行えるようにすることが求められている。
上記の課題を鑑み、本発明は、DPP規格に準拠したパラメータ共有処理において、ユーザの利便性を向上させることを目的とする。
本発明の通信装置は、無線ネットワークに接続するための通信パラメータを他の通信装置と共有するための共有処理を開始する第1の指示を受け付ける第1の受け付け手段と、前記第1の受け付け手段により前記第1の指示を受け付けた場合に、固定の認証コードを用いて、前記他の通信装置との間で、Wi−Fi DPP(Device Provisioning Protocol)規格によって定められた所定の公開鍵を前記他の通信装置と共有する際に認証処理を行う第1の認証手段と、前記第1の認証手段による認証処理に成功した場合に、前記他の通信装置と前記通信パラメータを共有する共有手段と、を有する。
本発明によれば、DPP規格に準拠したパラメータ共有処理において、ユーザの利便性を向上させることができる。
図1に、本実施形態における通信システムの構成を示す。
通信装置101は、無線基地局であるアクセスポイントとして動作して、無線ネットワーク103を構築する。具体的には、通信装置101は、無線ネットワーク103の情報を含むビーコンを周期的に送信し、また、他の通信装置からの接続要求を受け付け、当該他の通信装置の無線ネットワーク103への接続を許可する。
また、通信装置101は、DPP(Device Provisioning Protocol)規格に準拠したコンフィギュレータとして動作する。コンフィギュレータとは、無線ネットワーク103に接続するために必要な通信パラメータを提供する役割の装置である。即ち、通信装置101は、通信装置102に対して無線ネットワーク103の通信パラメータを提供する。
なお、通信パラメータとは、例えば、DPP規格に準拠したクレデンシャルであり、無線ネットワーク103に接続するために必要な鍵情報であるnetAccessKey等の情報が含まれる。しかし、これに限らず、鍵情報としてPre Shared Key等の情報含むものであってもよい。また、通信パラメータは、無線ネットワーク103の識別子であるSSID(Service Set Identification)や周波数チャネルの情報を含んでいてもよい。また、無線ネットワーク103において用いられる暗号方式や認証方式等の情報を含んでいてもよいし、当該通信パラメータの有効期限を含んでいてもよい。
また、コンフィギュレータである通信装置101は、通信パラメータを提供する際に、役割情報も通知する。この役割情報とは、通信パラメータの共有処理が行われた後の役割を示す。この役割は、取得した通信パラメータを用いて無線ネットワークを構築するアクセスポイント、もしくは、取得した通信パラメータを用いて無線ネットワークに接続する接続装置(以下ステーションと称する)のどちらかを示す。通信装置101は、アクセスポイントとして動作するため、アクセスポイントを示す役割情報を通知する。
一方、通信装置102は、無線ネットワークに接続するステーションとして動作して、無線ネットワーク103に接続する。また、通信装置102は、DPP規格に準拠したエンローリとして動作する。即ち、通信装置102は、通信装置101から通信パラメータを取得し、無線ネットワーク103に接続することができる。
なお、通信装置101および通信装置102の具体例としては、アクセスポイント、携帯電話、デジタルカメラ、ビデオカメラ、プリンタ、プロジェクタ、PC、PDA、スマートフォン、スマートウォッチなどが挙げられるが、これらに限られない。
また、無線ネットワーク103は、IEEE802.11シリーズに準拠した無線ネットワークであり、通信装置101が構築したネットワークである。ここで、IEEEとは、The Institute of Electrical and Electronics Engineersの略である。しかしこれに限らず、無線ネットワーク103は、通信装置101や通信装置102とは異なる他のアクセスポイントが構築したネットワークであってもよい。また、通信装置101、もしくは、これとは異なる装置が、Wi−Fi Direct規格に準拠したGroup Ownerとして構築したネットワークであってもよい。更に、無線ネットワーク103は、ワイヤレスUSB、MBOA、Bluetooth(登録商標)、UWB、ZigBee、NFC等に準拠したネットワークであってもよい。ここで、MBOAは、Multi Band OFDM Allianceの略であり、UWBは、Ultra Wide Bandの略である。また、UWBは、ワイヤレスUSB、ワイヤレス1394、WINETなどが含まれる。
図2に、通信装置101のハードウェア構成を示す。なお、通信装置102も同様のハードウェア構成を有する。
記憶部201はROMやRAM等の1以上のメモリにより構成され、後述する各種動作を行うためのプログラムや、無線通信のための通信パラメータ等の各種情報を記憶する。なお、記憶部201として、ROM、RAM等のメモリの他に、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、磁気テープ、不揮発性のメモリカード、DVDなどの記憶媒体を用いてもよい。
制御部202はCPUやMPU等の1以上のプロセッサにより構成され、記憶部201に記憶されたプログラムを実行することにより通信装置101全体を制御する。なお、制御部202は、記憶部201に記憶されたプログラムとOS(Operating System)との協働により通信装置101全体を制御するようにしてもよい。また、制御部202がマルチコア等の複数のプロセッサを備え、複数のプロセッサにより通信装置101全体を制御するようにしてもよい。
また、制御部202は、機能部203を制御して、撮像や印刷、投影等の所定の処理を実行する。機能部203は、通信装置101が所定の処理を実行するためのハードウェアである。例えば、通信装置101がカメラである場合、機能部203は撮像部であり、撮像処理を行う。また、例えば、通信装置101がプリンタである場合、機能部203は印刷部であり、印刷処理を行う。また、例えば、通信装置101がプロジェクタである場合、機能部203は投影部であり、投影処理を行う。機能部203が処理するデータは、記憶部201に記憶されているデータであってもよいし、後述する通信部206を介して他の通信装置と通信したデータであってもよい。
入力部204は、ユーザからの各種操作の受付を行う。出力部205は、ユーザに対して各種出力を行う。ここで、出力部205による出力とは、画面上への表示や、スピーカーによる音声出力、振動出力等の少なくとも1つを含む。なお、タッチパネルのように入力部204と出力部205の両方を1つのモジュールで実現するようにしてもよい。
通信部206は、IEEE802.11シリーズに準拠した無線通信の制御や、IP(Internet Porotocol)通信の制御を行う。また、通信部206はアンテナ207を制御して、無線通信のための無線信号の送受信を行う。通信装置101は通信部206を介して、画像データや文書データ、映像データ等のコンテンツを通信装置102と通信する。
図3に、通信装置101の電源が投入された場合に、記憶部201に記憶されたプログラムを制御部202が読み出し、それを実行することで実現される処理の流れのフローチャートを示す。なお、通信装置101の電源が投入された場合に代えて、ユーザ操作等により通信装置101が通信設定モード等、所定の動作モードに入った場合や、通信設定アプリケーション等、所定のアプリケーションが起動した場合に、実現されるようにしてもよい。
また、図3に示すフローチャートの少なくとも一部をハードウェアにより実現してもよい。ハードウェアにより実現する場合、例えば、所定のコンパイラを用いることで、各ステップを実現するためのプログラムからFPGA上に自動的に専用回路を生成すればよい。FPGAとは、Field Programmable Gate Arrayの略である。また、FPGAと同様にしてGate Array回路を形成し、ハードウェアとして実現するようにしてもよい。また、ASIC(Application Specific Integrated Circuit)により実現するようにしてもよい。この場合、以下のフローチャートにおける各ブロックは、ハードウェアブロックとして見做すことができる。なお、複数のブロックをまとめて1つのハードウェアブロックとして構成してもよいし、1つのブロックを複数のハードウェアブロックとして構成してもよい。
通信装置101は、まず、ユーザからのDPP開始指示を待ち受ける(S301)。ここでは、通信装置101は、入力部204を介してユーザからのDPP開始指示を受け付ける。なお、入力部204として、ハードウェアとしてのボタンであってもよいし、出力部205に表示されたUI(User Interface)上のボタンであってもよい。また、通信装置101は、不図示の外部装置(例えば赤外線通信を行うリモコンなど)からDPP開始指示を受け付けるようにしてもよい。
DPP開始指示を受け付けると、通信装置101は、DPP規格に準拠した処理であり、IETFドラフトに準拠したPKEX処理に用いられる認証コードとして、予め定められた固定の文字列を設定する(S302)。なお、IETFはInternet Engineering Task Forceの略であり、PKEXはPublic Key Exchangeの略である。IETFドラフトに準拠したPKEX処理は、公開鍵交換プロトコルとも呼ばれる。
ここで、固定の文字列とは、例えば、“0000”のような固定の数字列や、“Push−Button−Configuration”などの固定の英字列(記号を含んでもよい)や、英数字を組み合わせた英数字列である。固定の文字列は、DPP規格において共通の文字列として定めるようにしてもよいし、各サービスに対応する固定の文字列として定めるようにしてもよい。例えば、プリントサービスを実行するためにDPP規格を用いて通信パラメータの共有処理を行う場合には第1の固定の文字列“Print”が認証コードとして用いられるようにする。そして、ディスプレイサービスを実行するためにDPP規格を用いて通信パラメータの共有処理を行う場合には第2の固定の文字列“Display”が認証コードとして用いられるようにする。
なお、プリントサービスとは、一方の装置が印刷データを送信し、他方の装置が印刷データを受信して印刷するサービスのことである。また、ディスプレイサービスとは、一方の装置が表示画像データを送信し、他方の装置が表示画像データを受信して表示するサービスのことである。
また、認証コードは、ユーザがボタンを押す回数に対応する固定の文字列(例えば、5回ボタンを押した場合は“0005”など)であってもよい。この場合、ユーザは通信装置101と通信装置102とで同じ回数だけボタンを押す必要がある。
なお、認証コードとして、いずれの固定コードを用いるかは、規格や、システムにおいて、予め決められているものとする。
認証コードの設定がされると通信装置101は、通信装置102との間で、当該認証コードを用いたPKEX処理を実行する(S303)。そして、通信装置101は当該PKEX処理が成功したかを確認する(S304)。
なお、PKEX処理では、認証コードを用いて互いの認証が行われ、また、その後の処理に用いられる認証用公開鍵(例えばDPP規格で規定されたbootstrapping key)の授受が為される。即ち、認証コードを用いたPKEX処理に成功すると、通信装置101と通信装置102とは、各々、互いの認証用公開鍵を共有できる。なお、PKEX処理の詳細は、図4を用いて後述する。
認証コードの不一致や、通信エラー等によりPKEX処理に失敗した場合(S304のNo)、通信装置101はエラーを通知する(S305)。具体的には、通信装置101は、出力部205に通信パラメータの共有処理に失敗した旨や、認証処理に失敗をした旨を示すエラーを示すメッセージを表示することで、ユーザにエラーを通知する。なお、通信装置101は、これに加えて、もしくは、代えて、通信装置102に対してエラーを通知するようにしてもよい。また、通知するエラーに、エラーの理由を示すエラーコード等を含めてもよい。
その後、通信装置101は、図3に示す処理を終了する。なお、図3に示す処理を終了することに代えて、ステップS301に戻り、新たなDPP開始指示を待ち受けるようにしてもよい。
一方、PKEX処理に成功した場合(S304のYes)は、通信装置101は、PKEX処理で行われた認証処理とは異なる認証処理であって、DPP規格に準拠した認証処理を開始するための認証要求を通信装置102に送信する(S306)。ここで、認証要求とは、DPP規格に準拠したDPP Authentication Requestフレームである。また、認証要求には、認証処理に用いられる認証情報、通信装置101の識別情報、通信装置101が生成した乱数、および、共有鍵を生成するために用いられる共有鍵生成用の公開鍵(通信装置101の公開鍵)が含まれる。なお、当該共有鍵は、認証のために当該乱数を暗号化する際に用いられる。
ここで、認証情報とは、具体的にはPKEX処理により取得した通信装置102の認証用公開鍵のハッシュ値である。また、通信装置101の識別情報とは、具体的には、PKEX処理により通信装置102に送信した通信装置101の認証用公開鍵のハッシュ値である。また、乱数は、述する認証応答の受信時に、認証のために使用される。
認証要求を送信した通信装置101は、その後、通信装置102からの認証応答を所定時間、待ち受ける(S307)。なお、認証応答を待ち受ける時間は、認証要求を送信してから所定時間であってもよいし、ステップS301においてDPP開始指示を受け付けてから所定時間であってもよい。
認証要求を受信した通信装置102は、認証要求を送信した装置の検証処理を行う。この判定は、認証要求に含まれている認証情報を用いて行われる。即ち、通信装置102が、通信装置102の認証用公開鍵のハッシュ値を計算し、計算されたハッシュ値と認証要求に含まれるハッシュ値(認証情報)とを比較し、両者が一致した場合に検証が成功したと判定する。なお、このときのハッシュ値の計算に用いられるハッシュ関数は、DPP規格において定められており、通信装置101がハッシュ値の計算に用いたハッシュ関数と同じある。
検証に成功した場合、通信装置102は、認証に成功した場合、更に、通信装置101の共有鍵生成用の公開鍵と、通信装置102の共有鍵生成用の秘密鍵の双方を用いて共有鍵を生成する。共有鍵は、例えば、ECDH(Elliptic Curve Diffie−Hellman)方式に基づいて生成される。なお、共有鍵の生成方法は、ECDH方式に限定されるものではなく、その他の公開鍵暗号方式であってもよい。
そして、通信装置102は認証応答を送信する。なお、検証に失敗した場合には、通信装置102は、通信装置102は認証応答を送信しない。しかし、これに代えて、検証に失敗した場合に、通信装置102は、検証に失敗したことを示す認証応答を送信するようにしてもよい。
ここで、認証応答とは、DPP規格に準拠したDPP Authentication Responseフレームである。認証応答には、通信装置102の共有鍵生成用の公開鍵、通信装置102が生成した乱数、および、タグ情報が含まれる。なお、タグ情報とは、通信装置101の送信した認証要求に含まれていた乱数を、上述した共有鍵により暗号化したものである。当該タグ情報は、通信装置101における認証処理に用いられる。
ステップS307の説明に戻る。通信装置101は、所定時間内に認証応答を受信しなかった場合(S307のNo)、エラーを通知する(S308)。なお、検証に失敗したことを示す認証応答を受信した場合にも、ステップS308に進む。
エラーの通知方法についてはステップS305と同様であるため説明を省略する。なお、エラーコード等を含める場合には、ステップS305とは異なる理由によるエラーであることを通知してもよい。その後、通信装置101は、図3に示す処理を終了する。なお、図3に示す処理を終了することに代えて、ステップS301に戻り、新たなDPP開始指示を待ち受けるようにしてもよい。
一方、所定時間内に認証応答を受信した場合(S307のYes)、通信装置101は、認証応答に含まれる情報に基づいて、通信装置102の認証を行う(S309)。より具体的に説明する。通信装置101は、まず、通信装置101の共有鍵生成用の秘密鍵と通信装置102の共有鍵生成用の公開鍵とを用いて、通信装置102が共有鍵を生成したのと同じ方法により共有鍵を生成する。
ここで、通信装置101の共有鍵生成用の秘密鍵は、通信装置102が共有鍵を生成した際に用いられた通信装置101の共有鍵生成用の公開鍵に対応する通信装置101の秘密鍵である。また、通信装置102の共有鍵生成用の公開鍵は、通信装置102が共有鍵を生成した際に用いられた通信装置102の共有鍵生成用の秘密鍵に対応する公開鍵である。このような組み合わせの鍵を用いることにより、通信装置101は、通信装置102が生成した共有鍵と同じ共有鍵を生成することができる。
なお、共有鍵生成用の互いの公開鍵が、上述した認証要求および認証応答の送受により、通信装置101と通信装置102との間で正しく授受されなかった場合には、同じ共有鍵を生成できないことになる。
次に、通信装置101は、認証応答に含まれるタグ情報を、生成した共有鍵で復号し、認証要求に含めた乱数を正しく復号できるかを確認する。正しく復号できた場合には、通信装置101は、通信装置102の認証に成功したと判定する。一方、正しく復号できなかった場合には認証に失敗したと判定する。なお、正しく復号できない場合とは、例えば、同じ共有鍵を生成できなかった場合である。
認証に失敗した場合(S309のNo)、ステップS308に進み、通信装置101はエラーを通知する。一方、認証に成功した場合(S309のYes)、通信装置101は、通信装置102へ認証確認を送信する(S310)。ここで、認証確認とは、DPP規格に準拠したDPP Authentication Confirmフレームであり、タグ情報を含む。タグ情報は、通信装置102が送信した認証応答に含まれていた乱数を通信装置101が共有鍵によって暗号化したものである。
認証確認を送信した通信装置101は、その後、通信装置102からの設定要求を所定時間、待ち受ける(S311)。なお、設定要求を待ち受ける時間は、認証要求を送信してから所定時間であってもよいし、ステップS301においてDPP開始指示を受け付けてから所定時間であってもよい。また、本ステップにおける所定時間は、ステップS307における所定時間と同じ時間であってもよいし、異なる時間であってもよい。
認証確認を受信した通信装置102は、当該認証確認に含まれているタグ情報を自身が生成した共有鍵で正しく復号できた場合に、認証成功と判定する。認証成功と判定すると、通信装置102は、認証要求を送信した通信装置101をコンフィギュレータと認定し、通信装置101に対して設定要求を送信する。ここで、設定要求とは、DPP規格に準拠したDPP Configuration Requestフレームである。この設定要求には、通信装置102のデバイス情報および役割情報が含まれる。デバイス情報とは、通信装置102のデバイス名などである。また、役割情報とは、通信パラメータ受信後の役割を示す情報であり、「アクセスポイント」もしくは「ステーション」である。設定要求に含まれる情報は、通信装置102が認証応答の送信時においてタグ情報の暗号化に使用した共有鍵で暗号化される。一方、認証成功と判定されなかった場合、即ち、認証に失敗した場合は、通信装置102は、設定要求を送信しない。
ステップS311の説明に戻る。通信装置101は、所定時間内に、通信装置102からの設定要求が受信されなかった場合(S311のNo)、ステップS308に進み、エラーを通知する。一方、所定時間内に、通信装置102からの設定要求が受信された場合(S311のYes)、通信装置101は、設定応答として、無線ネットワーク103に接続するための通信パラメータの提供処理を行う(S312)。ここで、設定応答とは、DPP規格に準拠したDPP Configuration Responseフレームである。
通信装置101の通信パラメータ処理部208が送信する設定応答には、通信パラメータ、通信パラメータの有効期限、通信装置101のコンフィギュレータ専用の公開鍵、役割情報などが含まれる。なお、通信パラメータは、DPP規格に準拠したクレデンシャルの他、通信装置102からの認証応答に含まれる公開鍵を含む。また、設定応答において、通信パラメータは、通信装置101のコンフィギュレータ専用の秘密鍵で暗号化されている。さらに、設定応答に含まれる情報は、通信装置101において生成された共有鍵で暗号化される。
エンローリである通信装置102は、設定要求を送信後、コンフィギュレータである通信装置101から設定応答が送信されるのを待ち受ける。設定応答を受信した通信装置102は、設定応答に含まれる情報共有鍵で復号する。さらに、通信装置102は、通信装置101のコンフィギュレータ専用の秘密鍵で暗号化された通信パラメータを、通信装置101のコンフィギュレータ専用の公開鍵で復号する。通信装置102は、復号して得られた通信パラメータで無線ネットワーク103に接続することができる。
以上のような処理を行う通信装置101が通信装置102に通信パラメータを提供するまでの、通信装置101と通信装置102の動作についてさらに説明する。図4は、通信装置101が、通信装置102に通信パラメータを提供する際のシーケンス図である。
まず、通信装置102は、押しボタンによるDPP開始指示をユーザから受け付けると(S401)、固定の認証コードを設定する(S402)。この認証コードとは、IETFドラフトにおける公開鍵交換プロトコルのpasswordに相当する。
一方、通信装置101は、押しボタンによるDPP開始指示をユーザから受け付けると(S403)、固定の認証コードを設定する(S404)。具体的には、通信装置101は、設定した認証コードのハッシュ(Hash)と、DPP規格において定められた要素(Pi)とを組み合わせて暗号要素Qaを生成する。また、通信装置101は、一時的な鍵ペア(秘密鍵xおよび公開鍵X)を生成し、暗号要素Qaに、生成された一時的な鍵ペアの公開鍵Xを付与して、情報要素Mを生成する。なお、公開鍵Xおよび情報要素Mは、x成分およびy成分を含むベクトルである。
Qa=Hash(認証コード)*Pi
M=X+Qa
M=X+Qa
そして、通信装置101は、生成した暗号要素Qa、情報要素M、および、通信装置101の識別子(例えばMACアドレス)を含むコード交換要求を、通信装置102に送信する(S405)。ここでは、IEEE802.11シリーズに準拠したアクションフレームを用いて、コード交換要求を送信するものとする。しかしこれに限らず、NFCやBluetooth、トランスファージェット(TransferJet)、Ethernet、USB等に準拠した信号を用いるようにしてもよい。なお、NFCとは、Near Field Communicationの、USBとはUniversal Serial Busの各々、略である。
これにより、IETFドラフトにおける公開鍵交換プロトコルの認証フェーズ(Authentication Phase)が開始される。
通信装置102は、通信装置101からのコード交換要求を受信すると、コード交換要求に含まれる情報要素Mと、自装置で計算した暗号要素Qa’とから、一時鍵X’の算出を行う。なお、通信装置102は、自装置が設定した認証コードのハッシュと、DPP規格において定められた要素(Pi)とを組み合わせて暗号要素Qa’を生成する。
Qa’=Hash(認証コード)*Pi
X’=M−Qa’
X’=M−Qa’
ここで、通信装置101が設定した固定の認証コードと、通信装置102が設定した固定の認証コードとが同じである場合には、QaとQa’とは同じ値になる。その結果、XとX’も同じ値となる。これにより、通信装置102は、通信装置101の一時的な鍵ペアの公開鍵Xを取得できることになる。
また、通信装置102は、更に、設定した認証コードのハッシュと、DPP規格において定められた要素(Pr)とを組み合わせて暗号要素Qbを生成する。また、通信装置101は、一時的な鍵ペア(秘密鍵yおよび公開鍵Y)を生成し、暗号要素Qbに、生成された一時的な鍵ペアの公開鍵Yを付与して、情報要素Nを生成する。なお、公開鍵Y、および、情報要素Nは、x成分およびy成分を含むベクトルである。
Qb=Hash(認証コード)*Pr
N=Y+Qb
N=Y+Qb
そして、通信装置102は、生成した暗号要素Qb、情報要素N、および、通信装置102の識別子(例えばMACアドレス)を含むコード交換応答を、通信装置101に送信する(S406)。
通信装置101は、通信装置102からのコード交換応答を受信すると、コード交換応答に含まれる情報要素Nと、自装置で計算した暗号要素Qb’とから、一時鍵Y’の算出を行う。なお、通信装置101は、自装置が設定した認証コードのハッシュと、DPP規格において定められた要素(Pr)とを組み合わせて暗号要素Qb’を生成する。
Qb’=Hash(認証コード)*Pr
Y’=N−Qb’
Y’=N−Qb’
ここで、通信装置101が設定した固定の認証コードと、通信装置102が設定した固定の認証コードとが同じである場合には、QbとQb’とは同じ値になる。その結果、YとY’も同じ値となる。これにより、通信装置101は、通信装置102の一時的な鍵ペアの公開鍵Yを取得できることになる。
なお、通信装置101は、DPP開始指示を受け付けてから所定時間内に通信装置102からコード交換応答を受信しなかった場合には、PKEX処理に失敗したものとして処理を進めるようにしてもよい。即ち、通信装置101は、図3におけるステップS305のエラー処理を実行して、通信パラメータを共有することなく、共有処理を終了してもよい。これにより、通信装置101と通信装置102との間で所定時間内にDPP開始指示が為されなければ共有処理が終了されるため、セキュリティが向上する。
次に、通信装置101は、通信装置101の秘密鍵xと通信装置102の公開鍵Y’から一時的な暗号情報Kを算出する。ここで、暗号情報Kは、x成分およびy成分を含むベクトル値である。通信装置101は、更に、IETFドラフトに定められた関数KDF−n(Key Delivery Function)を用いて、共通鍵Zを算出する。
K=x*Y’
Z=KDF−n(<>,通信装置101の識別子|通信装置102識別子|M.x|N.x|認証コード,K.x)
Z=KDF−n(<>,通信装置101の識別子|通信装置102識別子|M.x|N.x|認証コード,K.x)
ここで、<>は関数に引き渡される第1の引数がブランクであることを示す。また、|は、各要素を結合させることを示す。また、M.x、N.x、および、K.xは、各々、M、N、Kのx成分の値を示す。
一方、通信装置102は、通信装置102の秘密鍵yと通信装置101の公開鍵X’から一時的な暗号情報K’を算出する。そして、同じ関数KDF−nを用いて、共通鍵Z’を算出する。
K’=y*X’
Z=KDF−n(<>,通信装置101の識別子|通信装置102識別子|M.x|N.x|認証コード,K’.x)
Z=KDF−n(<>,通信装置101の識別子|通信装置102識別子|M.x|N.x|認証コード,K’.x)
ここで、XとX’とが同じ値であり、かつ、YとY’とが同じ値である場合には、KとK’とは同じ値になる。その結果、Z’とZも同じ値となる。これにより、通信装置101と通信装置102は、同じ共通鍵Zを共有することができ、公開鍵交換プロトコルの認証フェーズ(Authentication Phase)が完了する。
公開鍵交換プロトコルの認証フェーズ(Authentication Phase)が完了すると、IETFドラフトにおける公開鍵交換プロトコルの公開鍵共有フェーズ(Reveal Phase)が開始される。
具体的には、通信装置101は、通信装置101の識別子、通信装置101の認証用公開鍵(例えばDPP規格で規定されたbootstrapping key)、X.x、および、Y’.xを用いて情報要素uを算出する。ここで、X.x、および、Y’.xは、各々、XおよびY’のx成分の値を示す。そして、通信装置101は、情報要素uおよび通信装置101の認証用公開鍵を、共通鍵Zで暗号化して送信する(S407)。
また、通信装置102は、通信装置101の識別子、通信装置101の認証用公開鍵、X’.x、および、Y.xを用いて情報要素u’を算出する。そして、通信装置102は、情報要素u’および通信装置102の認証用公開鍵を、共通鍵Zで暗号化して送信する(S408)。
通信装置101は、共通鍵Zを用いて、通信装置102から受信した情報要素u’および通信装置102の認証用公開鍵を復号する。その結果、取得した情報要素u’が、自装置が算出した情報要素uと一致していた場合には、PKEX処理に成功したものと判定する。なお、上述したように、互いに設定された認証コードが一致していた場合には、情報要素uと情報要素u’とが一致することになる。このようにして、PKEX処理における認証コードを用いた認証処理が行われ、互いの認証用公開鍵が共有される。互いの認証用公開鍵が共有されると、公開鍵交換プロトコルの公開鍵共有フェーズ(Reveal Phase)が完了する。
次に、通信装置101は認証要求を生成し、送信する(S409)。通信装置102はこの認証要求を受信し、受信した認証要求の内容を検証する(S410)。そして、通信装置102は、認証応答を生成、送信する(S411)。通信装置101へ認証応答を送信した通信装置102は、通信装置101から認証確認が送信されるのを待ち受ける。
認証応答を受信した通信装置101は、認証応答に基づく認証を行う(S412)。通信装置101は、認証成功と判定すると、通信装置102へ認証確認を送信する(S413)。通信装置101から認証確認を受信した通信装置102は、認証確認の内容を検証する(S414)。そして、認証に成功したと判定されると、通信装置102は、通信パラメータの設定処理を行うために設定要求を送信し(S415)、通信装置101から設定応答が送信されるのを待ち受ける。設定要求を受信した通信装置101は、通信装置101のコンフィギュレータ専用の秘密鍵で暗号化した通信パラメータと、コンフィギュレータ専用の公開鍵を設定応答に含めて送信する(S416)。設定応答を受信した通信装置102は、通信装置101のコンフィギュレータ専用の公開鍵で通信パラメータを復号する。その後、通信装置102は、この復号された通信パラメータを用いて無線ネットワーク103に接続する(S417)。
以上、図3、図4を用いて説明した処理によって、通信装置101が、通信装置102に通信パラメータを提供することができる。なお、上述の実施形態では、コンフィギュレータである通信装置101がコード交換要求を送信したが、エンローリである通信装置102が送信してもよい。その場合、コンフィギュレータである通信装置101がコード交換要求を待ち受け、コード交換応答を送信する。また、通信装置101と通信装置102がコード交換要求の送信処理と待ち受け処理を適当な時間間隔で交互に繰り返すことで、送受信できるようにしてもよい。
以上のようにして、DPPを用いた通信パラメータの共有処理を行う場合であっても簡易なユーザインタフェースを利用することが可能となり、ユーザの利便性が向上する。より具体的には、例えば、ユーザは2台の装置のボタンを押すだけで、DPPを用いた通信パラメータの共有処理を行うことができる。
また、上述の実施形態では、通信装置101がコンフィギュレータとして動作して通信パラメータを提供した。これに限らず、通信装置101がエンローリとして動作し、通信装置102がコンフィギュレータとして動作することによって、通信装置101が通信装置102から通信パラメータを受信する構成であってもよい。
また、通信装置101は、図3に代えて図5のように動作してもよい。即ち、通信装置101は、ユーザからのDPP開始指示を待ち受ける(S501)。ここでは、ユーザは複数の方法で、DPPの開始を指示できるものとする。例えば、通信装置101が、各々が異なる指示に対応する複数のボタンを有する構成であってもよいし、切り替えスイッチを有する構成であってもよい。また、これらのボタンやスイッチは、ハードウェアによって実現されてもよいし、ソフトウェアによって実現されてもよい。
そして、通信装置101は、ユーザからのDPP開始指示を受け付けると、当該DPP開始指示が所定のDPP開始指示であるかを判定する(S502)。所定のDPP開始指示である場合には(S502のYes)、通信装置101は、上述したステップS302からS312の処理を実行する。一方、所定のDPP開始指示でない場合には(S502のNo)、ユーザに認証コードを入力させる(S503)。そして、通信装置101は、固定の認証コードではなく、ユーザに入力された認証コードを用いてPKEX処理を行うようにする(S504)。その後、通信装置101は、上述したステップS304からS312の処理を実行する。
このような構成によれば、固定の認証コードを用いたDPPの通信パラメータ共有処理を行うか、ユーザに入力された認証コードを用いたDPPの通信パラメータ共有処理を行うかを切り替えることができる。
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
101 通信装置
102 通信装置
103 無線ネットワーク
102 通信装置
103 無線ネットワーク
Claims (17)
- 通信装置であって、
無線ネットワークに接続するための通信パラメータを他の通信装置と共有するための共有処理を開始する第1の指示を受け付ける第1の受け付け手段と、
前記第1の受け付け手段により前記第1の指示を受け付けた場合に、固定の認証コードを用いて、前記他の通信装置との間で、Wi−Fi DPP(Device Provisioning Protocol)規格によって定められた所定の公開鍵を前記他の通信装置と共有する際に認証処理を行う第1の認証手段と、
前記第1の認証手段による認証処理に成功した場合に、前記他の通信装置と前記通信パラメータを共有する共有手段と、
を有することを特徴とする通信装置。 - 前記所定の公開鍵は、DPP規格に準拠したbootstrapping keyであることを特徴とする請求項1に記載の通信装置。
- 前記共有処理を開始する第2の指示を受け付ける第2の受け付け手段と、
前記第2の受け付け手段により前記第2の指示を受け付けた場合に、ユーザに認証コードを入力させる入力手段を更に有し、
前記第2の指示を受け付けた場合、前記第1の認証手段は、前記入力手段により入力された認証コードを用いて、前記他の通信装置との間で認証処理を行うことを特徴とする請求項1または2に記載の通信装置。 - 前記共有手段は、DPP規格に準拠した信号を前記他の通信装置と送受信することにより、前記通信パラメータを共有することを特徴とする請求項1から3のいずれか1項に記載の通信装置。
- 前記第1の認証手段による認証処理に成功した場合に前記他の通信装置から取得される前記他の通信装置の公開鍵を用いて、前記他の通信装置とDPP規格によって定められた認証処理を行う第2の認証手段を更に有し、
前記共有手段は、前記第2の認証手段による認証処理に成功した場合に、前記他の通信装置と前記通信パラメータを共有することを特徴とする請求項1から4のいずれか1項に記載の通信装置。 - 前記第2の認証手段による認証処理に失敗した場合、エラーを通知する第1の通知手段を更に有することを特徴とする請求項5に記載の通信装置。
- 前記第1の通知手段は、ユーザにエラーを通知することを特徴とする請求項6に記載の通信装置。
- 前記第1の通知手段は、前記他の通信装置にエラーを通知することを特徴とする請求項6または7に記載の通信装置。
- 前記第1の認証手段による認証処理に失敗した場合、エラーを通知する第2の通知手段を更に有することを特徴とする請求項1から8のいずれか1項に記載の通信装置。
- 前記第2の通知手段は、ユーザにエラーを通知することを特徴とする請求項9に記載の通信装置。
- 前記第2の通知手段は、前記他の通信装置にエラーを通知することを特徴とする請求項9または10に記載の通信装置。
- 前記共有手段は、前記他の通信装置に前記通信パラメータを提供することにより、前記他の通信装置と前記通信パラメータを共有することを特徴とする請求項1から11のいずれか1項に記載の通信装置。
- 前記共有手段は、前記他の通信装置から前記通信パラメータを受信することにより、前記他の通信装置と前記通信パラメータを共有することを特徴とする請求項1から11のいずれか1項に記載の通信装置。
- 前記第1の認証手段は、IETF(Internet Engineering Task Force)において規定されたPublic Key Exchangeにおける認証フェーズに準拠した認証処理を行うことを特徴とする請求項1から13のいずれか1項に記載の通信装置。
- 前記第1の受け付け手段は、ボタンであることを特徴とする請求項1から14のいずれか1項に記載の通信装置。
- 通信装置の制御方法であって、
無線ネットワークに接続するための通信パラメータを他の通信装置と共有するための共有処理を開始する指示を受け付ける受け付け工程と、
前記指示を受け付けた場合に、固定の認証コードを用いて、前記他の通信装置との間で、Wi−Fi DPP(Device Provisioning Protocol)規格によって定められた所定の公開鍵を前記他の通信装置と共有する際に認証処理を行う認証工程と、
前記認証処理に成功した場合に、前記他の通信装置と前記通信パラメータを共有する共有工程と、
を有することを特徴とする制御方法。 - コンピュータを請求項1から15のいずれか1項に記載の通信装置として動作させるためのプログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018207194A JP2020072441A (ja) | 2018-11-02 | 2018-11-02 | 通信装置、制御方法及びプログラム |
PCT/JP2019/040469 WO2020090443A1 (ja) | 2018-11-02 | 2019-10-15 | 通信装置、制御方法及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018207194A JP2020072441A (ja) | 2018-11-02 | 2018-11-02 | 通信装置、制御方法及びプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2020072441A true JP2020072441A (ja) | 2020-05-07 |
Family
ID=70462356
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018207194A Pending JP2020072441A (ja) | 2018-11-02 | 2018-11-02 | 通信装置、制御方法及びプログラム |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP2020072441A (ja) |
WO (1) | WO2020090443A1 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2021190930A (ja) * | 2020-06-03 | 2021-12-13 | 株式会社バッファロー | 無線通信システム、通信方法、無線アクセスポイント、及び制御プログラム |
JP7495608B2 (ja) | 2020-06-03 | 2024-06-05 | 株式会社バッファロー | 無線通信システム、通信方法、無線アクセスポイント、及び制御プログラム |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6759011B2 (ja) * | 2016-09-02 | 2020-09-23 | キヤノン株式会社 | 通信装置、通信方法、及びプログラム |
JP6702833B2 (ja) * | 2016-09-15 | 2020-06-03 | キヤノン株式会社 | 通信装置、通信装置の制御及びプログラム |
-
2018
- 2018-11-02 JP JP2018207194A patent/JP2020072441A/ja active Pending
-
2019
- 2019-10-15 WO PCT/JP2019/040469 patent/WO2020090443A1/ja active Application Filing
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2021190930A (ja) * | 2020-06-03 | 2021-12-13 | 株式会社バッファロー | 無線通信システム、通信方法、無線アクセスポイント、及び制御プログラム |
JP7495608B2 (ja) | 2020-06-03 | 2024-06-05 | 株式会社バッファロー | 無線通信システム、通信方法、無線アクセスポイント、及び制御プログラム |
Also Published As
Publication number | Publication date |
---|---|
WO2020090443A1 (ja) | 2020-05-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2963959B1 (en) | Method, configuration device, and wireless device for establishing connection between devices | |
US20200154276A1 (en) | Communication device, control method for communication device, and non-transitory computer-readable storage medium | |
US11757874B2 (en) | Mutual authentication system | |
EP3068091B1 (en) | Network configuration method, and related device and system | |
JP2018006983A (ja) | 通信装置、通信方法、及びプログラム | |
US11736274B2 (en) | Terminal device and non-transitory computer-readable medium storing computer-readable instructions for terminal device | |
KR101963545B1 (ko) | 통신 장치, 통신 방법, 및 프로그램 | |
US20210282011A1 (en) | Communication apparatus, control method, and storage medium | |
WO2018030296A1 (ja) | 通信装置、通信方法、及びプログラム | |
US20220022034A1 (en) | Communication apparatus, communication method, program, and storage medium | |
JP2023120266A (ja) | 通信装置、制御方法、およびプログラム | |
JP7406893B2 (ja) | 通信装置、制御方法およびプログラム | |
WO2020090443A1 (ja) | 通信装置、制御方法及びプログラム | |
JP6486228B2 (ja) | 通信装置、制御方法、および、プログラム | |
JP2011061574A (ja) | 無線通信装置と無線通信システム | |
JP7266727B2 (ja) | 通信装置およびその制御方法 | |
WO2023053699A1 (ja) | 通信装置およびその制御方法、通信システム | |
WO2023218759A1 (ja) | 通信装置およびその制御方法、通信システム | |
JP2024055092A (ja) | 通信装置、制御方法及びプログラム | |
JP6641503B2 (ja) | 通信機器、電気機器、端末、通信方法およびプログラム | |
JP2012195781A (ja) | 無線通信装置および方法 |