(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-08-19
(45)【発行日】2024-08-27
(54)【発明の名称】端末装置のためのコンピュータプログラム、及び、通信装置
(51)【国際特許分類】
H04W 12/0471 20210101AFI20240820BHJP
H04M 1/72505 20210101ALI20240820BHJP
H04W 12/062 20210101ALI20240820BHJP
H04W 12/73 20210101ALI20240820BHJP
H04W 76/11 20180101ALI20240820BHJP
H04W 84/12 20090101ALI20240820BHJP
【FI】
H04W12/0471
H04M1/72505
H04W12/062
H04W12/73
H04W76/11
H04W84/12
(21)【出願番号】P 2023076131
(22)【出願日】2023-05-02
(62)【分割の表示】P 2019005470の分割
【原出願日】2019-01-16
【審査請求日】2023-05-19
(73)【特許権者】
【識別番号】000005267
【氏名又は名称】ブラザー工業株式会社
(74)【代理人】
【識別番号】110000110
【氏名又は名称】弁理士法人 快友国際特許事務所
(72)【発明者】
【氏名】三宅 猛
【審査官】田畑 利幸
(56)【参考文献】
【文献】特開2018-182572(JP,A)
【文献】特開2004-007120(JP,A)
【文献】特開2017-135517(JP,A)
【文献】特開2020-108118(JP,A)
【文献】国際公開第2018/075135(WO,A1)
【文献】特表2019-537871(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04W 4/00-99/00
H04M 1/00
H04M 1/72- 1/72516
H04M 11/00-11/10
H04L 12/28
H04L 12/44-12/46
G06F 3/09- 3/12
B41J 29/00-29/70
(57)【特許請求の範囲】
【請求項1】
端末装置のためのコンピュータプログラムであって、
前記端末装置のコンピュータを、以下の各部、即ち、
DPP(Device Provisioning Protocolの略)方式のConfiguratorとして動作して、前記DPP方式のEnrolleeとして動作する第1のアクセスポイント
と、Bootstrapping、Authentification、及び、Configurationを実行する第1のDPP処理部と、
前記DPP方式のConfiguratorとして動作して、前記DPP方式のEnrolleeとして動作する第2のアクセスポイント
と、Bootstrapping、Authentification、及び、Configurationを実行する第2のDPP処理部と、
前記DPP方式のConfiguratorとして動作して、前記DPP方式のEnrolleeとして動作する通信装置
と、Bootstrapping、Authentification、及び、Configurationを実行する第3のDPP処理部であって、前記第3のDPP処理部によって実行される前記Configurationでは、前記端末装置が、第1の識別子と、前記第1の識別子とは異なる第2の識別子と、を含む
Configuration Objectを前記通信装置に送信し、前記第1の識別子は、前記第1のアクセスポイントが親局として動作する第1の無線ネットワークを識別する情報であり、前記第2の識別子は、前記第2のアクセスポイントが親局として動作する第2の無線ネットワークを識別する情報である、前記第3の
DPP処理部と、
として機能させる、コンピュータプログラム。
【請求項2】
前記第1の
DPP処理部が前記Configurationを実行し、かつ、前記第2の
DPP処理部が前記Configurationを実行した後に、
前記第3のDPP処理部が前記Bootstrappingを実行する、請求項1に記載のコンピュータプログラム。
【請求項3】
前記コンピュータプログラムは、前記コンピュータを、さらに、
前記第1のDPP処理部が前記Configurationを実行する場合に、前記第1の識別子を前記端末装置のメモリに記憶する第1の記憶制御部と、
前記第2のDPP処理部が前記Configurationを実行する場合に、前記第2の識別子を前記メモリに記憶する第2の記憶制御部と、
前記第1のDPP処理部が前記Configurationを実行し、かつ、
前記第2のDPP処理部が前記Configurationを実行した後に、前記メモリ内の前記第1の識別子及び前記第2の識別子を含む複数個の識別子の中から1個以上の識別子を選択するための選択画面を前記端末装置の表示部に表示させる表示制御部と、として機能させ、
前記第3の
DPP処理部は、前記選択画面において前記複数個の識別子の中から前記第1の識別子と前記第2の識別子とが選択され、かつ、
前記第3のDPP処理部において前記Authentificationが実行される場合に、選択済みの前記第1の識別子と選択済みの前記第2の識別子とを含む前記
Configuration Objectを前記通信装置に送信する、請求項2に記載のコンピュータプログラム。
【請求項4】
前記表示制御部は、
前記第3のDPP処理部が前記Bootstrappingにおいて前記
通信装置の公開鍵
を取得
する前に、前記選択画面を前記表示部に表示させる、請求項3に記載のコンピュータプログラム。
【請求項5】
前記第2のアクセスポイントは、前記第1のアクセスポイントとは異なる、請求項1から4のいずれか一項に記載のコンピュータプログラム。
【請求項6】
前記
第1のDPP処理部において前記第1のアクセスポイントに送信されるConfiguration Objectと前記
第2のDPP処理部において前記第2のアクセスポイントに送信されるConfiguration Objectと前記
第3のDPP処理部において前記通信装置に送信される前記Configuration Objectとのそれぞれは、前記端末装置の同じ公開鍵を含む、請求項1から5のいずれか一項に記載のコンピュータプログラム。
【請求項7】
前記
第3のDPP処理部では、1個の前記Configuration Objectが送信される、請求項1から6のいずれか一項に記載のコンピュータプログラム。
【請求項8】
前記第1の識別子は、
前記DP
P方式に従ったグループIDであり、
前記第2の識別子は、前記DPP方式に従ったグループIDであって、前記第1の識別子とは異なる前記グループIDである、請求項1から7のいずれか一項に記載のコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本明細書では、端末装置を利用して、通信装置と外部装置との間に無線接続を確立する技術に関する。
【背景技術】
【0002】
非特許文献1には、Wi-Fi Allianceによって策定された無線通信方式であるDPP(Device Provisioning Protocolの略)方式が記述されている。DPP方式は、一対の装置の間に容易にWi-Fi接続を確立させるための無線通信方式である。例えば、Initiatorとして動作する端末装置とResponderとして動作するアクセスポイント(以下では「AP」と記載する)との間で公開鍵が共有化される。そして、端末装置とAPとの間で公開鍵が利用された通信が実行されることに応じて、端末装置は、Configuratorとして動作して、Wi-Fi接続を確立するためのAP用接続情報をAP(即ちEnrollee)に送信する。また、Initiatorとして動作する端末装置とResponderとして動作する周辺装置との間で公開鍵が共有化され、端末装置は、Configuratorとして機能して、Wi-Fi接続を確立するための装置用接続情報を周辺装置(即ちEnrollee)に送信する。この結果、APと周辺装置との間で各接続情報が利用された通信が実行されることに応じて、APと周辺装置との間にWi-Fi接続が確立される。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2017-28452号公報
【文献】特開2017-135520号公報
【文献】特開2016-187135号公報
【非特許文献】
【0004】
【文献】「Device Provisioning Protocol Technical Specification Version 1.0」 Wi-Fi Alliance, 2018年
【発明の概要】
【発明が解決しようとする課題】
【0005】
例えば、端末装置のユーザが、周辺装置が第1のAPの近くに存在する場合には、周辺装置と第1のAPとの間にWi-Fi接続を確立させ、周辺装置が第2のAPの近くに存在する場合には、周辺装置と第2のAPとの間にWi-Fi接続を確立させることを望む状況が想定される。この場合、ユーザは、周辺装置が第1のAPの近くに存在する場合には、端末装置が第1のAP用接続情報を第1のアクセスポイントに送信するための作業を行ない、端末装置が第1の装置用接続情報を周辺装置に送信するための作業を行なう。一方、ユーザは、周辺装置が第2のAPの近くに存在する場合には、端末装置が第2のAP用接続情報を第2のAPに送信するための作業を行ない、端末装置が第2の装置用接続情報を周辺装置に送信するための作業を行なう。このように、端末装置のユーザが多くの作業を行なう必要がある。
【0006】
本明細書では、端末装置のユーザの作業負荷を軽減し得る技術を開示する。
【課題を解決するための手段】
【0007】
本明細書は、端末装置のためのコンピュータプログラムを開示する。コンピュータプログラムは、前記端末装置のコンピュータを、以下の各部、即ち、第1のアクセスポイントの公開鍵である第1の公開鍵を取得する第1の取得部と、前記第1の公開鍵が取得される場合に、前記第1の公開鍵が利用された第1の認証要求を前記第1のアクセスポイントに送信する第1の認証要求送信部と、前記第1の認証要求が前記第1のアクセスポイントに送信される場合に、前記第1のアクセスポイントから、前記第1の認証要求に対する応答である第1の認証応答を受信する第1の認証応答受信部と、前記第1のアクセスポイントから前記第1の認証応答が受信される場合に、第1の接続情報を前記第1のアクセスポイントに送信する第1の接続情報送信部であって、前記第1の接続情報は、通信装置と前記第1のアクセスポイントとの間に無線接続を確立するための情報である、前記第1の接続情報送信部と、第2のアクセスポイントの公開鍵である第2の公開鍵を取得する第2の取得部と、前記第2の公開鍵が取得される場合に、前記第2の公開鍵が利用された第2の認証要求を前記第2のアクセスポイントに送信する第2の認証要求送信部と、前記第2の認証要求が前記第2のアクセスポイントに送信される場合に、前記第2のアクセスポイントから、前記第2の認証要求に対する応答である第2の認証応答を受信する第2の認証応答受信部と、前記第2のアクセスポイントから前記第2の認証応答が受信される場合に、第2の接続情報を前記第2のアクセスポイントに送信する第2の接続情報送信部であって、前記第2の接続情報は、前記通信装置と前記第2のアクセスポイントとの間に無線接続を確立するための情報である、前記第2の接続情報送信部と、前記通信装置の公開鍵である第3の公開鍵を取得する第3の取得部と、前記第3の公開鍵が取得される場合に、前記第3の公開鍵が利用された第3の認証要求を前記通信装置に送信する第3の認証要求送信部と、前記第3の認証要求が前記通信装置に送信される場合に、前記通信装置から、前記第3の認証要求に対する応答である第3の認証応答を受信する第3の認証応答受信部と、前記通信装置から前記第3の認証応答が受信される場合に、第3の接続情報を前記通信装置に送信する第3の接続情報送信部であって、前記第3の接続情報は、第1の識別子と、前記第1の識別子とは異なる第2の識別子と、を含み、前記第1の識別子は、前記第1のアクセスポイントが親局として動作する第1の無線ネットワークを識別する情報であり、前記第2の識別子は、前記第2のアクセスポイントが親局として動作する第2の無線ネットワークを識別する情報である、前記第3の接続情報送信部と、として機能させてもよい。
【0008】
上記の構成によると、端末装置は、第1の接続情報を第1のアクセスポイントに送信し、第2の接続情報を第2のアクセスポイントに送信する。また、端末装置は、第1の識別子と第2の識別子とを含む第3の接続情報を通信装置に送信する。第3の接続情報が第1の識別子を含むので、通信装置は、当該第1の識別子によって識別される第1の無線ネットワークの親局として動作する第1のアクセスポイントとの無線接続を確立することができる。具体的には、通信装置によって第3の接続情報が利用され、かつ、第1のアクセスポイントによって第1の接続情報が利用されると、通信装置と第1のアクセスポイントとの間に無線接続が確立される。また、第3の接続情報が第2の識別子も含むので、通信装置は、当該第2の識別子によって識別される第2の無線ネットワークの親局として動作する第2のアクセスポイントとの無線接続を確立することができる。具体的には、通信装置によって第3の接続情報が利用され、かつ、第2のアクセスポイントによって第2の接続情報が利用されると、通信装置と第2のアクセスポイントとの間に無線接続が確立される。このように、端末装置のユーザが第3の接続情報を通信装置に送信するための作業を行なえば、第1の識別子と第2の識別子とを含む第3の接続情報が通信装置に送信され、この結果、通信装置は、第1のアクセスポイント又は第2のアクセスポイントとの無線接続を確立することができる。従って、端末装置のユーザの作業負荷を軽減し得る。
【0009】
また、本明細書は、通信装置を開示する。通信装置は、端末装置から、前記通信装置の公開鍵が利用された認証要求を受信する認証要求受信部と、前記端末装置から前記認証要求が受信される場合に、前記認証要求に対する応答である認証応答を前記端末装置に送信する認証応答送信部と、前記認証応答が前記端末装置に送信される場合に、前記端末装置から、接続情報を受信する接続情報受信部であって、前記接続情報は、第1の識別子と、前記第1の識別子とは異なる第2の識別子と、を含み、前記第1の識別子は、第1のアクセスポイントが親局として動作する第1の無線ネットワークを識別する情報であり、前記第2の識別子は、第2のアクセスポイントが親局として動作する第2の無線ネットワークを識別する情報である、前記接続情報受信部と、前記端末装置から前記接続情報が受信される場合に、前記接続情報を利用して、前記通信装置と前記第1のアクセスポイント又は前記第2のアクセスポイントとの間に無線接続を確立する確立部と、を備えてもよい。
【0010】
上記の構成によると、通信装置は、端末装置から公開鍵が利用された認証要求を受信して、認証応答を端末装置に送信し、端末装置から接続情報を受信する。これにより、通信装置は、第1の識別子及び第2の識別子を含む接続情報を利用して、第1のアクセスポイント又は第2のアクセスポイントとの無線接続を確立することができる。このように、端末装置のユーザが接続情報を通信装置に送信するための作業を行なえば、第1の識別子と第2の識別子とを含む接続情報が通信装置に送信され、この結果、通信装置は、第1のアクセスポイント又は第2のアクセスポイントとの無線接続を確立することができる。従って、端末装置のユーザの作業負荷を軽減し得る。
【0011】
端末装置そのもの、及び、端末装置のためのコンピュータプログラムを記憶するコンピュータ可読記録媒体も、新規で有用である。通信装置のためのコンピュータプログラム、及び、当該コンピュータプログラムを記憶するコンピュータ可読記録媒体も新規で有用である。端末装置によって実行される方法、及び、通信装置によって実行される方法も新規で有用である。また、端末装置と通信装置とを備える通信システムも、新規で有用である。
【図面の簡単な説明】
【0012】
【
図2】実施例の概略を説明するための説明図を示す。
【
図3】APとのBootstrappingの処理のシーケンス図を示す。
【
図4】APとのAuthenticationの処理のシーケンス図を示す。
【
図5】APとのConfigurationの処理のシーケンス図を示す。
【
図6】APとのNetwork Accessの処理のシーケンス図を示す。
【
図7】他のAPとのBootstrappingの処理のシーケンス図を示す。
【
図8】他のAPとのAuthenticationの処理のシーケンス図を示す。
【
図9】他のAPとのConfigurationの処理のシーケンス図を示す。
【
図10】他のAPとのNetwork Accessの処理のシーケンス図を示す。
【
図11】プリンタとのBootstrappingの処理のシーケンス図を示す。
【
図12】プリンタとのAuthenticationの処理のシーケンス図を示す。
【
図13】プリンタとのConfigurationの処理のシーケンス図を示す。
【
図14】プリンタ及びAPの間のNetwork Accessの処理のシーケンス図を示す。
【
図15】比較例の概略を説明するための説明図を示す。
【発明を実施するための形態】
【0013】
(通信システム2の構成;
図1)
図1に示されるように、通信システム2は、複数個のAP(Access Pointの略)6,7と、端末10と、プリンタ100と、を備える。本実施例では、各AP6,7が例えば同じ会社内の異なる部屋に設置されており、プリンタ100が可搬型の小型プリンタである状況を想定している。即ち、プリンタ100が移動してAP6の近くに設置されることもあればAP7の近くに設置されることもある。このような状況において、本実施例では、プリンタ100がAP6の近くに存在する場合には、プリンタ100とAP6との間にWi-Fi方式に従った無線接続(以下では「Wi-Fi接続」と記載する)を確立させ、プリンタ100がAP7の近くに存在する場合には、プリンタ100とAP7との間にWi-Fi接続を確立させることを実現する。
【0014】
(端末10の構成)
端末10は、携帯電話(例えばスマートフォン)、PDA、タブレットPC等の可搬型の端末装置である。なお、変形例では、端末10は、据置型のPC、ノートPC等であってもよい。
【0015】
端末10は、操作部12と、表示部14と、カメラ15と、Wi-Fiインターフェース16と、制御部30と、を備える。各部12~30は、バス線(符号省略)に接続されている。なお、以下では、インターフェースのことを単に「I/F」と記載する。
【0016】
操作部12は、複数個のキーを備える。ユーザは、操作部12を操作することによって、様々な指示を端末10に入力することができる。表示部14は、様々な情報を表示するためのディスプレイである。表示部14は、ユーザから指示を受け付けるタッチパネル(即ち操作部)としても機能する。カメラ15は、物体を撮影するためのデバイスであり、本実施例では、特に、各AP6,7及びプリンタ100のためのQRコード(登録商標)を撮影するために利用される。
【0017】
Wi-FiI/F16には、MACアドレス「macte」が割り当てられている。Wi-FiI/F16は、Wi-Fi方式に従った無線通信(以下では「Wi-Fi通信」と呼ぶ)を実行するための無線インターフェースである。Wi-Fi方式は、例えば、IEEE(The Institute of Electrical and Electronics Engineers, Inc.の略)の802.11の規格、及び、それに準ずる規格(例えば802.11a,11b,11g,11n,11ac等)に従って、無線通信を実行するための無線通信方式である。特に、Wi-FiI/F16は、Wi-Fi Allianceによって策定されたDPP(Device Provisioning Protocolの略)方式をサポートしている。DPP方式は、Wi-Fi Allianceによって作成された規格書である「Device Provisioning Protocol Technical Specification Version 1.0」に記述されており、端末10を利用して、一対のデバイス(例えばプリンタ100とAP6又は7)の間に容易にWi-Fi接続を確立させるための無線通信方式である。
【0018】
制御部30は、CPU32とメモリ34とを備える。CPU32は、メモリ34に格納されているプログラム36,38に従って、様々な処理を実行する。メモリ34は、揮発性メモリ、不揮発性メモリ等によって構成され、OSプログラム36と接続アプリケーション38(以下では単に「アプリ38」と記載する)とを記憶する。
【0019】
OSプログラム36は、端末10の基本的な動作を制御するためのプログラムである。アプリ38は、DPP方式に従って一対のデバイスの間にWi-Fi接続を確立させるためのプログラムである。アプリ38は、例えば、プリンタ100のベンダによって提供されるインターネット上のサーバから端末10にインストールされる。
【0020】
(プリンタ100の構成)
プリンタ100は、印刷機能を実行可能な周辺装置(例えば、端末10等の周辺装置)である。プリンタ100は、操作部112と、表示部114と、Wi-FiI/F116と、印刷実行部118と、制御部130と、を備える。各部112~130は、バス線(符号省略)に接続されている。
【0021】
操作部112は、複数のキーを備える。ユーザは、操作部112を操作することによって、様々な指示をプリンタ100に入力することができる。表示部114は、様々な情報を表示するためのディスプレイである。表示部114は、ユーザから指示を受け付けるタッチパネル(即ち操作部)としても機能する。Wi-FiI/F116は、端末10のWi-FiI/F16と同様である。即ち、Wi-FiI/F116は、DPP方式をサポートしている。また、Wi-FiI/F116には、MACアドレス「macpr」が割り当てられている。印刷実行部118は、インクジェット方式、レーザ方式等の印刷機構を備える。
【0022】
制御部130は、CPU132とメモリ134とを備える。CPU132は、メモリ134に格納されているプログラム136に従って、様々な処理を実行する。メモリ134は、揮発性メモリ、不揮発性メモリ等によって構成される。
【0023】
(本実施例の概要;
図2)
続いて、
図2を参照して、本実施例の概要を説明する。端末10及びプリンタ100がDPP方式をサポートしていることを上述したが、各AP6,7もDPP方式をサポートしている。また、AP6,7には、それぞれ、MACアドレス「macap1」、「macap2」が割り当てられている。本実施例では、各デバイス6,7,10,100がDPP方式に従った通信を実行することによって、プリンタ100とAP6又はAP7との間にWi-Fi接続を確立させることを実現する。以下では、理解の容易化のために、各デバイスのCPU(例えばCPU32、CPU132)が実行する動作を、CPUを主体として記載せずに、各デバイス(例えば端末10、プリンタ100)を主体として記載する。
【0024】
T5では、端末10は、DPP方式のBootstrapping(以下では、単に「BS」と記載する)をAP6と実行する。当該BSは、AP6に貼り付けられているQRコードが端末10によって撮影されることに応じて、後述のT10のAuthentication(以下では、単に「Auth」と記載する)で利用される情報をAP6から端末10に提供する処理である。
【0025】
T10では、端末10は、T5のBSで取得済みの情報を利用して、DPP方式のAuthをAP6と実行する。当該Authは、端末10及びAP6のそれぞれが通信相手を認証するための処理である。
【0026】
T15では、端末10は、DPP方式のConfiguration(以下では、単に「Config」と記載する)をAP6と実行する。当該Configは、AP6がWi-Fi接続を確立するための情報をAP6に送信する処理である。具体的には、端末10は、第1のAP用Configuration Object(以下では、Configuration Objectのことを単に「CO」と記載する)を生成して、第1のAP用COをAP6に送信する。この結果、AP6では、第1のAP用COが記憶される。
【0027】
T20では、端末10は、DPP方式のNetwork Access(以下では、単に「NA」と記載する)をAP6と実行する。端末10は、当該NAにおいて、第1の端末用COを生成して、メモリ34に記憶する。そして、端末10及びAP6は、第1の端末用CO及び第1のAP用COを利用して、端末10とAP6との間のWi-Fi接続を確立するための接続キーを共有する。
【0028】
T25では、端末10及びAP6は、4way-handshakeの通信を実行する。4way-handshakeの通信の少なくとも一部の過程において、端末10及びAP6は、T20のNAで共有済みの接続キーによって暗号化された暗号情報を通信する。そして、暗号情報の復号が成功する場合に、端末10とAP6との間にWi-Fi接続が確立される。これにより、端末10は、AP6によって形成される無線ネットワークに子局として参加する。この場合、端末10は、AP6を識別するSSID(Service Set Identifierの略)「ap6」をメモリ34に記憶する。なお、変形例では、4way-handshakeの通信に代えて、SAE(Simultaneous Authentication of Equalsの略、通称「Dragonfly」)の通信が利用されてもよい。
【0029】
次いで、端末10は、T35において、DPP方式のBSをAP7と実行する。当該BSは、AP7に貼り付けられているQRコードが端末10によって撮影されることに応じて、後述のT40のAuthで利用される情報をAP7から端末10に提供する処理である。
【0030】
T40では、端末10は、T35のBSで取得済みの情報を利用して、DPP方式のAuthをAP7と実行する。当該Authは、端末10及びAP7のそれぞれが通信相手を認証するための処理である。
【0031】
T45では、端末10は、DPP方式のConfigをAP7と実行する。当該Configは、AP7がWi-Fi接続を確立するための情報をAP7に送信する処理である。具体的には、端末10は、第2のAP用COを生成して、第2のAP用COをAP7に送信する。この結果、AP7では、第2のAP用COが記憶される。
【0032】
T50では、端末10は、DPP方式のNAをAP7と実行する。端末10は、当該NAにおいて、第2の端末用COを生成して、メモリ34に記憶する。そして、端末10及びAP7は、第2の端末用CO及び第2のAP用COを利用して、端末10とAP7との間のWi-Fi接続を確立するための接続キーを共有する。
【0033】
T55では、端末10及びAP7は、4way-handshakeの通信を実行する。4way-handshakeの通信の少なくとも一部の過程において、端末10及びAP7は、T50のNAで共有済みの接続キーによって暗号化された暗号情報を通信する。そして、暗号情報の復号が成功する場合に、端末10とAP7との間にWi-Fi接続が確立される。これにより、端末10は、AP7によって形成される無線ネットワークに子局として参加する。この場合、端末10は、AP7を識別するSSID「ap7」をメモリ34に記憶する。なお、変形例では、4way-handshakeの通信に代えて、SAEの通信が利用されてもよい。
【0034】
次いで、端末10は、T65において、DPP方式のBSをプリンタ100と実行する。当該BSは、プリンタ100に表示されるQRコードが端末10によって撮影されることに応じて、後述のT70のAuthで利用される情報をプリンタ100から端末10に提供する処理である。
【0035】
T70では、端末10は、T65のBSで取得済みの情報を利用して、DPP方式のAuthをプリンタ100と実行する。当該Authは、端末10及びプリンタ100のそれぞれが通信相手を認証するための処理である。
【0036】
T75では、端末10は、DPP方式のConfigをプリンタ100と実行する。当該Configは、プリンタ100がWi-Fi接続を確立するための情報をプリンタ100に送信する処理である。具体的には、端末10は、プリンタ用COを生成して、プリンタ用COをプリンタ100に送信する。この結果、プリンタ100では、プリンタ用COが記憶される。
【0037】
T80では、プリンタ100及びAP6又はAP7は、DPP方式のNAを実行する。具体的には、プリンタ100がAP6の近くに存在する場合には、プリンタ100及びAP6は、プリンタ用CO及び第1のAP用COを利用して、DPP方式のNAを実行する。また、プリンタ100がAP7の近くに存在する場合には、プリンタ100及びAP7は、プリンタ用CO及び第2のAP用COを利用して、DPP方式のNAを実行する。当該NAは、プリンタ100とAP6又はAP7との間のWi-Fi接続を確立するための接続キーをプリンタ100及びAP6又はAP7の間で共有するための処理である。
【0038】
T85では、プリンタ100及びAP6又はAP7は、4way-handshakeの通信を実行する。4way-handshakeの通信の少なくとも一部の過程において、プリンタ100及びAP6又はAP7は、T80のNAで共有済みの接続キーによって暗号化された暗号情報を通信する。そして、暗号情報の復号が成功する場合に、プリンタ100とAP6又はAP7との間にWi-Fi接続が確立される。これにより、プリンタ100は、AP6又はAP7によって形成される無線ネットワークに子局として参加する。
【0039】
DPP方式では、プリンタ100とAP6又はAP7との間にWi-Fi接続を確立させるために、ユーザは、AP6又はAP7が親局として動作する無線ネットワークの情報(例えばSSID、パスワード等)をプリンタ100に入力する必要がない。従って、ユーザは、プリンタ100とAP6又はAP7との間にWi-Fi接続を容易に確立させることができる。
【0040】
(AP6とのBootstrapping(BS);
図3)
続いて、
図3~
図14を参照して、
図2のT5~T20、T35~T50、及び、T65~T80において実行される各処理の詳細を説明する。まず、
図3を参照して、
図2のT5において端末10とAP6との間で実行されるBSの処理を説明する。
図3の初期状態では、AP6は、AP6の公開鍵APK1及び秘密鍵ask1を予め記憶している。また、AP6の公開鍵APK1と、AP6のチャネルリストL1と、AP6のMACアドレス「macap1」と、をコード化することによって得られるQRコードが、AP6の筐体に貼り付けられている。チャネルリストL1は、Auth(
図2のT10参照)で利用されるべき複数個の通信チャネル(即ちAP6が利用可能な複数個の通信チャネル)のリストである。
【0041】
端末10は、T100において、ユーザからアプリ38の起動操作を受け付けることに応じて、アプリ38を起動する。端末10によって実行される以降の各処理は、アプリ38によって実現される。次いで、T102では、端末10は、選択画面を表示部14に表示する。当該選択画面は、端末10が新たなWi-Fi接続を確立することを示す「New」ボタンを含む。
【0042】
端末10は、T104において、選択画面内の「New」ボタンがユーザによって選択されることに応じて、T106において、グループIDを入力するための入力画面を表示部14に表示させる。グループIDは、端末10が新たなWi-Fi接続が確立することによって形成される無線ネットワークを識別する情報である。
【0043】
端末10は、T108において、ユーザによって指定される任意の文字列であるグループID「office1」が入力されることに応じて、T110において、AP6とのWi-Fi接続の確立を実行するのか否かをユーザに確認するための確認画面を表示部14に表示する。確認画面は、AP6とのWi-Fi接続の確立を実行することを示すYESボタンと、AP6とのWi-Fi接続の確立を実行しないことを示すNOボタンと、を含む。
【0044】
端末10は、T112において、確認画面内のYESボタンがユーザによって選択されることに応じて、カメラ15を起動し、T120において、カメラ15を利用して、AP6の筐体に貼り付けられているQRコードを撮影する。そして、端末10は、T122において、撮影済みのQRコードをデコードして、公開鍵APK1とチャネルリストL1とMACアドレス「macap1」とを取得する。T122の処理が終了すると、
図3の処理が終了する。
【0045】
(AP6とのAuthentication(Auth);
図4)
続いて、
図4を参照して、
図2のT10において端末10とAP6との間で実行されるAuthの処理を説明する。
【0046】
T200では、端末10は、端末10の公開鍵TPK1及び秘密鍵tsk1を生成する。次いで、端末10は、T201において、ECDH(Elliptic curve Diffie-Hellman key exchangeの略)に従って、生成済みの秘密鍵tsk1と、
図3のT122で取得されたAP6の公開鍵APK1と、を用いて、共有鍵SK1を生成する。そして、端末10は、T202において、生成済みの共有鍵SK1を用いてランダム値RV1を暗号化して、暗号化データED1を生成する。
【0047】
T210では、端末10は、Wi-FiI/F16を介して、
図3のT122で取得されたMACアドレス「macap1」を送信先として、DPP Authentication Request(以下では、単に「AReq」と記載する)をAP6に送信する。AReqは、認証の実行をAP6に要求する信号であり、T200で生成された端末10の公開鍵TPK1と、T202で生成された暗号化データED1と、端末10のcapabilityと、を含む。ここで、端末10は、
図3のT122で取得されたチャネルリストL1内の複数個の通信チャネルを順次利用して、AReqをAP6に送信することを繰り返す。
【0048】
capabilityは、DPP方式をサポートしている機器において予め指定されている情報であり、DPP方式のConfiguratorのみとして動作可能であることを示す値と、DPP方式のEnrolleeのみとして動作可能であることを示す値と、Configurator及びEnrolleeのどちらとしても動作可能であることを示す値と、のいずれか1個の値を含む。Configuratorは、Config(例えば
図2のT15)において、NA(例えば
図2のT20)で利用されるCOをEnrolleeに送信するデバイスを意味する。一方、Enrolleeは、Configにおいて、ConfiguratorからNAで利用されるCOを受信するデバイスを意味する。上記のように、本実施例では、端末10が第1のAP用CO、第2のAP用CO、又は、プリンタ用COを生成してAP6、AP7、又は、プリンタ100に送信する。従って、端末10のcapabilityは、Configuratorのみとして動作可能であることを示す値を含む。
【0049】
AP6は、T210において、端末10からAReqを受信する。上記のように、当該AReqは、AP6のMACアドレス「macap1」を送信先として送信される。従って、AP6は、端末10から当該AReqを適切に受信することができる。また、AP6は、チャネルリストL1内の複数個の通信チャネル(即ちAP6が利用可能な複数個の通信チャネル)のうちの1個の通信チャネルが利用されたAReqを受信することを監視する状態になる。上記のように、T210のAReqは、チャネルリストL1内の複数個の通信チャネルを順次利用して送信される。従って、AP6は、端末10から当該AReqを適切に受信することができる。
【0050】
次いで、AP6は、AReqの送信元(即ち端末10)を認証するための以下の処理を実行する。具体的には、AP6は、T212において、ECDHに従って、AReq内の端末10の公開鍵TPK1と、AP6の秘密鍵ask1と、を用いて、共有鍵SK1を生成する。ここで、T201で端末10によって生成される共有鍵SK1と、T212でAP6によって生成される共有鍵SK1と、は同じである。従って、AP6は、T214において、生成済みの共有鍵SK1を用いて、AReq内の暗号化データED1を適切に復号することができ、この結果、ランダム値RV1を取得することができる。AP6は、暗号化データED1の復号が成功する場合には、AReqの送信元がAP6のQRコードを撮影したデバイスであると判断し、即ち、認証が成功したと判断し、T216以降の処理を実行する。一方、AP6は、仮に、暗号化データED1の復号が成功しない場合には、AReqの送信元がAP6のQRコードを撮影したデバイスでないと判断し、即ち、認証が失敗したと判断し、T216以降の処理を実行しない。
【0051】
AP6は、T216において、AP6の新たな公開鍵APK2及び新たな秘密鍵ask2を生成する。なお、変形例では、AP6は、公開鍵APK2及び秘密鍵ask2を予め記憶していてもよい。次いで、AP6は、T217において、ECDHに従って、T210のAReq内の端末10の公開鍵TPK1と、生成済みのAP6の秘密鍵ask2と、を用いて、共有鍵SK2を生成する。そして、AP6は、T218において、生成済みの共有鍵SK2を用いて、取得済みのランダム値RV1及び新たなランダム値RV2を暗号化して、暗号化データED2を生成する。
【0052】
T220では、AP6は、DPP Authentication Response(以下では、単に「ARes」と記載する)を端末10に送信する。当該AResは、T216で生成されたAP6の公開鍵APK2と、T218で生成された暗号化データED2と、AP6のcapabilityと、を含む。当該capabilityは、Enrolleeのみとして動作可能であることを示す値を含む。
【0053】
端末10は、T220において、AP6から、Wi-FiI/F16を介して、AResを受信することに応じて、当該AResの送信元(即ちAP6)を認証するための以下の処理を実行する。具体的には、端末10は、T222において、ECDHに従って、T200で生成された端末10の秘密鍵tsk1と、ARes内のAP6の公開鍵APK2と、を用いて、共有鍵SK2を生成する。ここで、T217でAP6によって生成される共有鍵SK2と、T222で端末10によって生成される共有鍵SK2と、は同じである。従って、端末10は、T224において、生成済みの共有鍵SK2を用いて、ARes内の暗号化データED2を適切に復号することができ、この結果、ランダム値RV1及びRV2を取得することができる。端末10は、暗号化データED2の復号が成功する場合には、AResの送信元が撮影済みのQRコードを有するデバイスであると判断し、即ち、認証が成功したと判断し、T230以降の処理を実行する。一方、端末10は、仮に、暗号化データED2の復号が成功しない場合には、AResの送信元が撮影済みのQRコードを有するデバイスでないと判断し、即ち、認証が失敗したと判断し、T230以降の処理を実行しない。
【0054】
T230では、端末10は、Wi-FiI/F16を介して、ConfirmをAP6に送信する。Confirmは、端末10がConfiguratorとして動作し、かつ、AP6がEnrolleeとして動作することを示す情報を含む。この結果、T232において、Configuratorとして動作することが端末10によって決定され、T234において、Enrolleeとして動作することがAP6によって決定される。T234の処理が終了すると、
図4の処理が終了する。なお、
図4の処理が終了すると、端末10は、公開鍵TPK1及び秘密鍵tsk1を破棄(即ちメモリ34から削除)する。
【0055】
(AP6とのConfiguration(Config);
図5)
続いて、
図5を参照して、
図2のT15において端末10とAP6との間で実行されるConfigの処理を説明する。
【0056】
T300では、AP6は、DPP Configuration Request(以下では、単に「CReq」と記載する)を端末10に送信する。当該CReqは、AP用COの送信を要求する信号である。
【0057】
端末10は、T300において、AP6から、Wi-FiI/F16を介して、CReqを受信する。この場合、端末10は、T302において、端末10の新たな公開鍵TPK2及び新たな秘密鍵tsk2を生成してメモリ34内に記憶する。次いで、端末10は、T304において、生成済みの秘密鍵tsk2を利用して、第1のAP用COを生成する。具体的には、端末10は、以下の各処理を実行する。
【0058】
端末10は、まず、端末10の公開鍵TPK2をハッシュ化することによって、ハッシュ値HVを生成する。また、端末10は、ハッシュ値HVと、
図3のT108で入力されたグループID「office1」と、
図4のT220のARes内のAP6の公開鍵APK2と、の組み合わせをハッシュ化することによって、第1の値を生成する。そして、端末10は、ECDSA(Elliptic Curve Digital Signature Algorithmの略)に従って、端末10の秘密鍵tsk2を利用して、生成済みの第1の値を暗号化することによって、電子署名DSap1を生成する。この結果、端末10は、ハッシュ値HVと、グループID「office1」と、AP6の公開鍵APK2と、電子署名DSap1と、を含む第1のAP用Signed-Connector(以下では、Signed-Connectorのことを単に「SC」と記載する)を生成することができる。そして、端末10は、第1のAP用SCと、端末10の公開鍵TPK2と、を含む第1のAP用COを生成する。
【0059】
T310では、端末10は、Wi-FiI/F16を介して、第1のAP用COを含むDPP Configuration Response(以下では、単に「CRes」と記載する)をAP6に送信する。
【0060】
AP6は、T310において、端末10からCResを受信する。この場合、AP6は、T312において、当該CRes内の第1のAP用COを記憶する。T312の処理が終了すると、
図5の処理が終了する。
【0061】
(AP6とのNetwork Access(NA);
図6)
続いて、
図6を参照して、
図2のT20において端末10とAP6との間で実行されるNAの処理を説明する。
【0062】
T400では、端末10は、端末10の新たな公開鍵TPK3及び秘密鍵tsk3を生成する。次いで、T402において、端末10は、
図5のT302でメモリ34に記憶された端末10の秘密鍵tsk2を利用して、第1の端末用COを生成する。具体的には、端末10は、以下の各処理を実行する。
【0063】
端末10は、まず、端末10の公開鍵TPK2をハッシュ化することによって、ハッシュ値HVを生成する。また、端末10は、ハッシュ値HVと、
図3のT108で入力されたグループID「office1」と、T400で生成された端末10の公開鍵TPK3と、の組み合わせをハッシュ化することによって、第2の値を生成する。そして、端末10は、ECDSAに従って、端末10の秘密鍵tsk2を利用して、生成済みの第2の値を暗号化することによって、電子署名DSte1を生成する。この結果、端末10は、ハッシュ値HVと、グループID「office1」と、端末10の公開鍵TPK3と、電子署名DSte1と、を含む第1の端末用SCを生成することができる。第1の端末用SCに含まれるハッシュ値HV及びグループID「office1」は、それぞれ、第1のAP用SCに含まれるハッシュ値HV及びグループID「office1」と同じである。第1の端末用SCに含まれる公開鍵TPK3及び電子署名DSte1は、それぞれ、第1のAP用SCに含まれる公開鍵APK2及び電子署名DSap1とは異なる。そして、端末10は、第1の端末用SCと、
図3のT302でメモリ34に記憶された端末10の公開鍵TPK2と、を含む第1の端末用COを生成して、第1の端末用COをメモリ34に記憶する。
【0064】
T410では、端末10は、Wi-FiI/F16を介して、第1の端末用SCを含むDPP Peer Discovery Request(以下では、単に「DReq」と記載する)をAP6に送信する。当該DReqは、認証の実行と、AP用SCの送信と、をAP6に要求する信号である。
【0065】
AP6は、T410において、端末10からDReqを受信することに応じて、DReqの送信元(即ち端末10)、及び、DReq内の各情報(即ち、ハッシュ値HV、「office1」、及び、公開鍵TPK3)を認証するための処理を実行する。具体的には、AP6は、T412において、まず、第1の端末用SC内のハッシュ値HV及びグループID「office1」が、それぞれ、第1のAP用SC内のハッシュ値HV及びグループID「office1」に一致するのか否かに関する第1のAP判断処理を実行する。
図6のケースでは、AP6は、第1のAP判断処理で「一致する」と判断するので、DReqの送信元(即ち端末10)の認証が成功したと判断する。なお、第1のAP判断処理で「一致する」と判断することは、第1の端末用SC及び第1のAP用SCが同じ装置(即ち端末10)によって生成されたことを意味する。従って、AP6は、第1の端末用SCの生成元(即ち端末10)の認証が成功したとも判断する。さらに、AP6は、第1のAP用COに含まれる端末10の公開鍵TPK2を用いて、第1の端末用SC内の電子署名DSte1を復号する。
図6のケースでは、電子署名DSte1の復号が成功するので、AP6は、電子署名DSte1を復号することによって得られた第2の値と、第1の端末用SC内の各情報(即ち、ハッシュ値HV、「office1」、及び、公開鍵TPK3)をハッシュ化することによって得られる値と、が一致するのか否かに関する第2のAP判断処理を実行する。
図6のケースでは、AP6は、第2のAP判断処理で「一致する」と判断するので、DReq内の各情報の認証が成功したと判断し、T414以降の処理を実行する。なお、第2のAP判断処理で「一致する」と判断することは、第1の端末用COが端末10に記憶された後に、第1の端末用SC内の各情報が第三者によって改ざんされていないことを意味する。なお、後述の電子署名を利用した認証も、第三者によって情報が改ざんされていないことを確認するための処理である。一方、第1のAP判断処理で「一致しない」と判断される場合、電子署名DSte1の復号が失敗する場合、又は、第2のAP判断処理で「一致しない」と判断される場合には、AP6は、認証が失敗したと判断し、T414以降の処理を実行しない。
【0066】
次いで、AP6は、T414において、ECDHに従って、第1のAP用COに含まれる端末10の公開鍵TPK2と、AP6の秘密鍵ask2と、を用いて、接続キー(即ち共有鍵)CK1を生成する。
【0067】
T420では、AP6は、第1のAP用SCを含むDPP Peer Discovery Response(以下では、単に「DRes」と記載する)を端末10に送信する。
【0068】
端末10は、T420において、Wi-FiI/F16を介して、AP6からDResを受信することに応じて、DResの送信元(即ちAP6)、及び、DRes内の各情報(即ち、ハッシュ値HV、「office1」、及び、公開鍵APK2)を認証するための処理を実行する。具体的には、端末10は、T422において、まず、第1のAP用SC内のハッシュ値HV及びグループID「office1」が、それぞれ、第1の端末用SC内のハッシュ値HV及びグループID「office1」に一致するのか否かに関する第1のTE判断処理を実行する。
図6のケースでは、端末10は、第1のTE判断処理で「一致する」と判断するので、DResの送信元(即ちAP6)の認証が成功したと判断する。なお、第1のTE判断処理で「一致する」と判断することは、第1の端末用SC及び第1のAP用SCが同じ装置(即ち端末10)によって生成されたことを意味する。従って、端末10は、第1の端末用SCの生成元(即ち端末10)の認証が成功したとも判断する。さらに、端末10は、第1の端末用COに含まれる端末10の公開鍵TPK2を用いて、第1のAP用SC内の電子署名DSap1を復号する。
図6のケースでは、電子署名DSap1の復号が成功するので、端末10は、電子署名DSap1を復号することによって得られた第1の値と、第1のAP用SC内の各情報(即ち、ハッシュ値HV、「office1」、及び、公開鍵APK2)をハッシュ化することによって得られる値と、が一致するのか否かに関する第2のTE判断処理を実行する。
図6のケースでは、端末10は、第2のTE判断処理で「一致する」と判断するので、DRes内の各情報の認証が成功したと判断し、T424以降の処理を実行する。一方、第1のTE判断処理で「一致しない」と判断される場合、電子署名DSap1の復号が失敗する場合、又は、第2のTE判断処理で「一致しない」と判断される場合には、端末10は、認証が失敗したと判断し、T424以降の処理を実行しない。
【0069】
端末10は、T424において、ECDHに従って、端末10の秘密鍵tsk2と、第1のAP用SC内のAP6の公開鍵APK2と、を用いて、接続キーCK1を生成する。ここで、T414でAP6によって生成される接続キーCK1と、T424で端末10によって生成される接続キーCK1と、は同じである。これにより、Wi-Fi接続を確立するための接続キーCK1が端末10及びAP6の間で共有される。T424が終了すると、
図6の処理が終了する。
【0070】
上述したように、接続キーCK1が端末10及びAP6の間で共有された後に、
図2のT25において、端末10及びAP6は、接続キーCK1を利用して、4way-handshakeの通信を実行する。この結果、端末10とAP6との間にWi-Fi接続が確立される。これにより、端末10は、AP6が親局として動作する無線ネットワークであって、グループID「office1」によって識別される無線ネットワークに子局として参加する。端末10は、AP6とのWi-Fi接続が確立される場合に、AP6のSSID「ap6」を第1の端末用COと関連付けてメモリ34に記憶する。
【0071】
(AP7とのBootstrapping(BS);
図7)
続いて、
図7を参照して、
図2のT35において端末10とAP7との間で実行されるBSの処理を説明する。
図7の初期状態では、端末10は、端末10の公開鍵TPK2及び秘密鍵tsk2(
図5のT302参照)と、公開鍵TPK3及び秘密鍵tsk2(
図6のT400参照)と、第1の端末用CO(T402参照)と、をメモリ34に記憶している。また、AP7は、AP7の公開鍵APK3及び秘密鍵ask3を予め記憶している。また、AP7の公開鍵APK3と、AP7のチャネルリストL2と、AP7のMACアドレス「macap2」と、をコード化することによって得られるQRコードが、AP7の筐体に貼り付けられている。チャネルリストL2は、Auth(
図2のT40参照)で利用されるべき複数個の通信チャネル(即ちAP7が利用可能な複数個の通信チャネル)のリストである。
【0072】
T500は、
図3のT100と同様である。端末10によって実行される以降の各処理は、アプリ38によって実現される。T502では、端末10は、選択画面を表示部14に表示する。具体的には、端末10は、まず、メモリ34に記憶されている第1の端末用CO内の第1の端末用SCに含まれるグループID「office1」を取得する。この場合、端末10は、「New」ボタンに加えて、取得済みのグループID「office1」と同じ文字列を有する「office1」ボタンを含む選択画面を表示部14に表示させる。
【0073】
T504~T522は、通信対象がAP7である点、及び、グループID「office2」、AP7の公開鍵TPK3、チャネルリストL2、MACアドレス「macap2」が利用される点を除いて、
図3のT104~T122と同様である。T522の処理が終了すると、
図7の処理が終了する。
【0074】
(AP7とのAuthentication(Auth);
図8)
続いて、
図8を参照して、
図2のT40において端末10とAP7との間で実行されるAuthの処理を説明する。
【0075】
端末10は、T600において、端末10の新たな公開鍵TPK4及び秘密鍵tsk4を生成し、T601において、ECDHに従って、生成済みの秘密鍵tsk4と、
図7のT522で取得されたAP7の公開鍵APK3と、を用いて、共有鍵SK3を生成する。そして、端末10は、T602において、生成済みの共有鍵SK3を用いてランダム値RV3を暗号化して、暗号化データED3を生成する。
【0076】
T610では、端末10は、Wi-FiI/F16を介して、
図7のT522で取得されたMACアドレス「macap2」を送信先として、AReqをAP7に送信する。ここで、端末10は、
図7のT722で取得されたチャネルリストL2内の複数個の通信チャネルを順次利用して、AReqをAP7に送信することを繰り返す。当該AReqは、T600で生成された端末10の公開鍵TPK4と、T602で生成された暗号化データED3と、端末10のcapabilityと、を含む。当該capabilityは、Configuratorのみとして動作可能であることを示す値を含む。
【0077】
AP7は、T610において、端末10からAReqを受信する。当該AReqが、AP7のMACアドレス「macap2」を送信先として送信されるので、AP7は、端末10から当該AReqを適切に受信することができる。また、T610のAReqは、チャネルリストL2内の複数個の通信チャネルを順次利用して送信される。従って、AP7は、端末10から当該AReqを適切に受信することができる。
【0078】
次いで、AP6は、AReqの送信元(即ち端末10)を認証するためのT612及びT614の処理を実行する。T612及びT614は、利用されるデータ(鍵、暗号化データ等)が異なる点を除くと、
図4のT212及びT214と同様である。即ち、AP7は、T612において、公開鍵TPK4と秘密鍵ask3とを用いて共有鍵SK3を生成し、T614において、共有鍵SK3を用いてAReq内の暗号化データED3を復号する。この場合、AP7は、認証が成功したと判断し、T616以降の処理を実行する。
【0079】
AP7は、T616において、AP6の新たな公開鍵APK4及び秘密鍵ask4を生成する。なお、変形例では、AP7は、公開鍵APK4及び秘密鍵ask4を予め記憶していてもよい。続いて実行されるT617及びT618は、利用されるデータ(鍵、暗号化データ等)が異なる点を除くと、
図4のT217及びT218と同様である。即ち、AP7は、T617において、公開鍵TPK4と秘密鍵ask4とを用いて共有鍵SK4を生成し、T618において、共有鍵SK4を用いてランダム値RV3,RV4を暗号化して暗号化データED4を生成する。
【0080】
T620では、AP7は、AResを端末10に送信する。当該AResは、T616で生成されたAP7の公開鍵APK4と、T618で生成された暗号化データED4と、AP7のcapabilityと、を含む。当該capabilityは、Enrolleeのみとして動作可能であることを示す値を含む。
【0081】
T622~T634は、通信対象がAP7である点、及び、利用されるデータ(鍵、暗号化データ等)が異なる点を除くと、
図4のT222~T234と同様である。この結果、Configuratorとして動作することが端末10によって決定され、Enrolleeとして動作することがAP7によって決定される。T634の処理が終了すると、
図8の処理が終了する。なお、
図8の処理が終了すると、端末10は公開鍵TPK4及び秘密鍵tsk4を破棄(即ちメモリ34から削除)する。
【0082】
(AP7とのConfiguration(Config);
図9)
続いて、
図9を参照して、
図2のT45において端末10とAP7との間で実行されるConfigの処理を説明する。
【0083】
T700は、通信対象がAP7である点を除いて、
図5のT300と同様である。T702では、端末10は、メモリ34から公開鍵TPK2及び秘密鍵tsk2を取得する。具体的には、端末10は、メモリ34に記憶されている第1の端末用COを特定し、第1の端末用COに含まれる公開鍵TPK2を取得する。そして、端末10は、取得済みの公開鍵TPK2に対応する秘密鍵tsk2を取得する。
【0084】
T704では、端末10は、第2のAP用COを生成する。T704は、利用されるデータ(鍵等)が異なる点を除くと、
図5のT304と同様である。第2のAP用COは、第2のAP用SCと、T702で取得された公開鍵TPK2と、を含む。第2のAP用COに含まれる公開鍵TPK2は、第1のAP用COに含まれる公開鍵TPK2と同じである。第2のAP用SCは、ハッシュ値HVと、
図7のT508で入力されたグループID「office2」と、AP7の公開鍵APK4と、電子署名DSap2と、を含む。電子署名DSap2は、ハッシュ値HVとグループID「office2」と公開鍵APK4との組み合わせをハッシュ化することによって得られる第3の値が、T702で取得された秘密鍵tsk2によって暗号化された情報である。
【0085】
T710及びT712は、通信対象がAP7である点、及び、第2のAP用COが利用される点を除いて、
図5のT310及びT312と同様である。T712の処理が終了すると、
図9の処理が終了する。
【0086】
(AP7とのNetwork Access(NA);
図10)
続いて、
図10を参照して、
図2のT50において端末10とAP7との間で実行されるNAの処理を説明する。
【0087】
T800では、端末10は、端末10の新たな公開鍵TPK5及び秘密鍵tsk5を生成する。次いで、T802において、端末10は、第2の端末用COを生成する。T802は、利用されるデータ(鍵等)が異なる点を除くと、
図6のT402と同様である。第2の端末用COは、第2の端末用SCと、
図9のT702で取得された公開鍵TPK2と、を含む。第2の端末用SCは、ハッシュ値HVと、グループID「office2」と、生成済みの端末10の公開鍵TPK5と、電子署名DSte2と、を含む。電子署名DSte2は、ハッシュ値HVとグループID「office2」と公開鍵TPK5との組み合わせをハッシュ化することによって得られる第4の値が、T702で取得された秘密鍵tsk2によって暗号化された情報である。
【0088】
T810は、通信対象がAP7である点、及び、第2の端末用SCが利用される点を除いて、
図6のT410と同様である。T812では、AP7は、DReqの送信元(即ち端末10)、及び、DReq内の各情報(即ち、ハッシュ値HV、「office2」、及び、公開鍵TPK5)を認証するための処理を実行する。T812は、実行主体がAP7である点、及び、利用されるデータ(鍵等)が異なる点を除くと、
図6のT412と同様である。即ち、AP7は、第2の端末用SC内のハッシュ値HV及びグループID「office2」が、それぞれ、第2のAP用SC内のハッシュ値HV及びグループID「office2」に一致すると判断する(即ち、DReqの送信元(即ち端末10)の認証が成功したと判断する)。また、AP7は、第2のAP用COに含まれる端末10の公開鍵TPK2を用いて第2の端末用SC内の電子署名DSte2を復号し、それによって得られた第4の値と、第2の端末用SC内の各情報(即ち、ハッシュ値HV、「office2」、及び、公開鍵TPK5)をハッシュ化することによって得られる値と、が一致すると判断する(即ち、DReq内の各情報の認証が成功したと判断する)。
【0089】
T814及びT820は、通信対象がAP7である点、及び、AP7の秘密鍵ask4、接続キーCK2、第2のAP用SCが利用される点を除いて、
図6のT414及びT420と同様である。端末10は、T820において、Wi-FiI/F16を介して、AP7からDResを受信することに応じて、DResの送信元(即ちAP7)、及び、DRes内の各情報(即ち、ハッシュ値HV、「office2」、及び、公開鍵APK4)を認証するためのT822の処理を実行する。T822は、通信対象がAP7である点、及び、利用されるデータ(鍵等)が異なる点を除くと、
図6のT422と同様である。即ち、端末10は、第2のAP用SC内のハッシュ値HV及びグループID「office2」が、それぞれ、第2の端末用SC内のハッシュ値HV及びグループID「office2」に一致すると判断する(即ち、DResの送信元(即ちAP7)の認証が成功したと判断する)。また、端末10は、第2の端末用COに含まれる端末10の公開鍵TPK2を用いて、第2のAP用SC内の電子署名DSap2を復号し、それによって得られた第3の値と、第2のAP用SC内の各情報(即ち、ハッシュ値HV、「office2」、及び、公開鍵APK4)をハッシュ化することによって得られる値と、が一致すると判断する(即ち、DRes内の各情報の認証が成功したと判断する)。
【0090】
T824は、利用されるデータ(鍵等)が異なる点を除いて、
図6のT424と同様である。T824の処理が終了すると、
図10の処理が終了する。上述したように、接続キーCK2が端末10及びAP7の間で共有された後に、
図2のT55において、端末10及びAP7は、接続キーCK2を利用して、4way-handshakeの通信を実行する。この結果、端末10とAP7との間にWi-Fi接続が確立される。これにより、端末10は、AP7が親局として動作する無線ネットワークであって、グループID「office2」によって識別される無線ネットワークに子局として参加する。この場合、端末10は、AP7のSSID「ap7」を第2の端末用COと関連付けてメモリ34に記憶する。
【0091】
(プリンタ100とのBootstrapping(BS);
図11)
続いて、
図11を参照して、
図2のT65において端末10とプリンタ100との間で実行されるBSの処理を説明する。
図11の初期状態では、端末10は、端末10の公開鍵TPK2及び秘密鍵tsk2(
図5のT302参照)と、端末10の公開鍵TPK3及び秘密鍵tsk3(
図6のT400参照)と、第1の端末用CO(T402参照)と、端末10の公開鍵TPK5及び秘密鍵tsk5(
図10のT800参照)と、第2の端末用CO(
図10のT802参照)と、をメモリ34内に記憶している。また、プリンタ100は、プリンタ100の公開鍵PPK1及び秘密鍵psk1をメモリ134内に予め記憶している。
【0092】
T900は、
図3のT100と同様である。T902では、端末10は、選択画面を表示部14に表示させる。具体的には、端末10は、まず、メモリ34に記憶されている第1の端末用CO内の第1の端末用SCに含まれるグループID「office1」を取得する。また、端末10は、メモリ34に記憶されている第2の端末用CO内の第2の端末用SCに含まれるグループID「office2」を取得する。そして、端末10は、「New」ボタンに加えて、取得済みのグループID「office1」と同じ文字列を有する「office1」ボタンと、取得済みのグループID「office2」と同じ文字列を有する「office2」ボタンと、を含む選択画面を表示部14に表示させる。
【0093】
ユーザは、プリンタ100とAP6又はAP7との間にWi-Fi接続を確立させることを望む場合に、T904において、選択画面内の「office1」ボタン及び「office2」ボタンを選択する。この場合、端末10は、T906において、QRコードを撮影すべきことを示すメッセージを含む指示画面を表示部14に表示する。
【0094】
プリンタ100は、T910において、QRコードを表示するためのQRコード表示操作がユーザによって実行されることに応じて、T912において、QRコードを表示部114に表示する。当該QRコードは、メモリ134に予め記憶されている公開鍵PPK1と、メモリ134に予め記憶されているチャネルリストL3と、プリンタ100のMACアドレス「macpr」と、がコード化されることによって得られるコード画像である。チャネルリストL3は、Auth(
図2のT70参照)で利用されるべき複数個の通信チャネル(即ちプリンタ100が利用可能な複数個の通信チャネル)のリストである。当該QRコードは、T912においてプリンタ100によって生成されてもよいし、プリンタ100の出荷段階からメモリ134に予め記憶されていてもよい。また、変形例では、当該QRコードがプリンタ100の筐体に貼り付けられていてもよい。
【0095】
端末10は、T920において、カメラ15を利用して、プリンタ100に表示されたQRコードを撮影する。そして、端末10は、T922において、撮影済みのQRコードをデコードして、公開鍵PPK1とチャネルリストL3とMACアドレス「macpr」とを取得する。T922の処理が終了すると、
図11の処理が終了する。
【0096】
(プリンタ100とのAuthentication(Auth);
図12)
続いて、
図12を参照して、
図2のT70において端末10とプリンタ100との間で実行されるAuthの処理を説明する。
【0097】
端末10は、T1000において、端末10の新たな公開鍵TPK6及び秘密鍵tsk6を生成し、T1001において、ECDHに従って、生成済みの秘密鍵tsk6と、
図11のT922で取得されたプリンタ100の公開鍵PPK1と、を用いて、共有鍵SK5を生成する。そして、端末10は、T1002おいて、生成済みの共有鍵SK5を用いてランダム値RV5を暗号化して、暗号化データED5を生成する。
【0098】
T1010では、端末10は、Wi-FiI/F16を介して、
図11のT922で取得されたMACアドレス「macpr」を送信先として、AReqをプリンタ100に送信する。ここで、端末10は、T922で取得されたチャネルリストL3内の複数個の通信チャネルを順次利用して、AReqをプリンタ100に送信することを繰り返す。当該AReqは、T1000で生成された端末10の公開鍵TPK6と、T1002で生成された暗号化データED5と、端末10のcapabilityと、を含む。当該capabilityは、Configuratorのみとして動作可能であることを示す値を含む。
【0099】
プリンタ100は、T1010において、端末10から、Wi-FiI/F116を介して、AReqを受信する。当該AReqがプリンタ100のMACアドレス「macpr」を送信先として送信されるので、プリンタ100は、当該AReqを適切に受信することができる。また、当該AReqがチャネルリストL3内の複数個の通信チャネル(即ちプリンタ100が利用可能な複数個の通信チャネル)を順次利用して送信されるので、プリンタ100は、当該AReqを適切に受信することができる。
【0100】
次いで、プリンタ100は、AReqの送信元(即ち端末10)を認証するためのT1012及びT1014の処理を実行する。T1012及びT1014は、実行主体がプリンタ100である点、及び、利用されるデータ(鍵、暗号化データ等)が異なる点を除くと、
図4のT212及びT214と同様である。即ち、プリンタ100は、T1012において、公開鍵TPK6と秘密鍵psk1とを用いて共有鍵SK5を生成し、T1014において、共有鍵SK5を用いてAReq内の暗号化データED5を復号する。この場合、プリンタ100は、認証が成功したと判断し、T1016以降の処理を実行する。
【0101】
プリンタ100は、T1016において、プリンタ100の新たな公開鍵PPK2及び新たな秘密鍵psk2を生成する。なお、変形例では、公開鍵PPK2及び秘密鍵psk2は、メモリ134に予め記憶されていてもよい。続いて実行されるT1017及びT1018は、実行主体がプリンタ100である点、及び、利用されるデータ(鍵、暗号化データ等)が異なる点を除くと、
図4のT217及びT218と同様である。即ち、プリンタ100は、T1017において、公開鍵TPK6と秘密鍵psk2とを用いて共有鍵SK6を生成し、T1018において、共有鍵SK6を用いてランダム値RV5,RV6を暗号化して暗号化データED6を生成する。
【0102】
T1020では、プリンタ100は、Wi-FiI/F116を介して、AResを端末10に送信する。当該AResは、T1016で生成されたプリンタ100の公開鍵PPK2と、T1018で生成された暗号化データED6と、プリンタ100のcapabilityと、を含む。当該capabilityは、Enrolleeのみとして動作可能であることを示す値を含む。
【0103】
T1022~T1034は、通信対象がプリンタ100である点、及び、利用されるデータ(鍵、暗号化データ等)が異なる点を除いて、
図4のT222~T234と同様である。この結果、Configuratorとして動作することが端末10によって決定され、Enrolleeとして動作することがプリンタ100によって決定される。T1034の処理が終了すると、
図12の処理が終了する。なお、
図12の処理が終了すると、端末10は公開鍵TPK6及び秘密鍵tsk6を破棄(即ちメモリ34から削除)する。
【0104】
(プリンタ100とのConfiguration(Config);
図13)
続いて、
図13を参照して、
図2のT75において端末10とプリンタ100との間で実行されるConfigの処理を説明する。
【0105】
T1100では、プリンタ100は、Wi-FiI/F116を介して、CReqを端末10に送信する。当該CReqは、プリンタ用COの送信を要求する信号である。
【0106】
端末10は、T1100において、プリンタ100から、Wi-FiI/F16を介して、CReqを受信する。この場合、端末10は、T1102において、メモリ34から端末10の公開鍵TPK2及び秘密鍵tsk2を取得する。具体的には、端末10は、メモリ34から、
図11のT904で選択された「office1」と同じ文字列を有するグループID「office1」を含む第1の端末用COと、T904で選択された「office2」と同じ文字列を有するグループID「office2」を含む第2の端末用COと、を取得する。
図11の初期状態に示されるように、第1及び第2の端末用COは公開鍵TPK2を含む。従って、端末10は、第1及び第2の端末用COに含まれる公開鍵TPK2を取得することができる。そして、端末10は、取得済みの公開鍵TPK2に対応する秘密鍵tsk2を取得する。
【0107】
T1104では、端末10は、プリンタ用COを生成する。具体的には、端末10は、以下の各処理を実行する。即ち、端末10は、まず、端末10の公開鍵TPK2をハッシュ化することによって、ハッシュ値HVを生成する。また、端末10は、ハッシュ値HVと、2個のグループID「office1」及び「office2」と、
図12のT1020のARes内のプリンタ100の公開鍵PPK2と、の組み合わせをハッシュ化することによって、第5の値を生成する。そして、端末10は、ECDSAに従って、端末10の秘密鍵tsk2を利用して、生成済みの第5の値を暗号化することによって、電子署名DSprを生成する。この結果、端末10は、ハッシュ値HVと、2個のグループID「office1」及び「office2」と、プリンタ100の公開鍵PPK2と、電子署名DSprと、を含むプリンタ用SCを生成することができる。また、端末10は、メモリ34から、グループID「office1」を含む第1の端末用COに関連付けて記憶されているAP6のSSID「ap6」を取得し、グループID「office2」を含む第2の端末用COに関連付けて記憶されているAP7のSSID「ap7」を取得する。そして、端末10は、プリンタ用SCと、端末10の公開鍵TPK2と、2個のSSID「ap6」及び「ap7」と、を含む1個のプリンタ用COを生成する。これにより、例えば、端末10が、グループID「office1」を含む第1のプリンタ用COと、グループID「office2」を含む第2のプリンタ用COと、を生成する構成と比較して、端末10の処理負荷を軽減することができる。なお、変形例では、上記の構成が採用されてもよい。プリンタ用COに含まれる公開鍵TPK2は、第1及び第2のAP用COに含まれる公開鍵TPK2と同じである。
【0108】
T1110では、端末10は、Wi-FiI/F16を介して、T1104で生成されたプリンタ用COを含むCResをプリンタ100に送信する。
【0109】
プリンタ100は、T1110において、端末10から、Wi-FiI/F116を介して、CResを受信する。この場合、プリンタ100は、T1112において、当該CRes内のプリンタ用COをメモリ134に記憶する。T1112の処理が終了すると、
図13の処理が終了する。
【0110】
(プリンタ100及びAP6の間のNetwork Access(NA);
図14)
続いて、
図14を参照して、プリンタ100がAP6の近くに存在する場合にプリンタ100とAP6との間で実行される
図2のT80のNAの処理を説明する。
図14の初期状態では、プリンタ100は、公開鍵PPK1及び秘密鍵psk1と、公開鍵PPK2及び秘密鍵psk2と、プリンタ用COと、をメモリ134に記憶している。また、AP6は、公開鍵APK1及び秘密鍵ask1と、公開鍵APK2及び秘密鍵ask2と、第1のAP用COとを記憶している。
【0111】
T1200では、プリンタ100は、Wi-FiI/F116を介して、Probe Request(以下では、単に「PReq」と記載する)をブロードキャストによって送信する。当該PReqは、プリンタ100の周辺の機器を検索するための信号である。
【0112】
プリンタ100は、PReqをブロードキャストによって送信することに応じて、プリンタ100の周囲に存在する複数のデバイスのそれぞれからProbe Response(以下では、単に「PRes」と記載する)を受信する。プリンタ100は、T1202において、AP6から、Wi-FiI/F116を介して、SSID「ap6」を含むPResを受信する場合に、メモリ134に含まれるプリンタ用COに含まれるSSID「ap6」と受信済みのPResに含まれるSSID「ap6」とが一致すると判断する。これにより、プリンタ100は、通信対象のデバイスがAP6であると判断することができ、T1210において、Wi-FiI/F116を介して、プリンタ用SCを含むDReqをAP6に送信することができる。
【0113】
AP6は、T1210において、プリンタ100からDReqを受信することに応じて、DReqの送信元(即ちプリンタ100)、及び、DReq内の各情報(即ち、ハッシュ値HV、「office1」、及び、公開鍵PPK2)を認証するためのT1212の処理を実行する。T1212は、利用されるデータ(鍵等)が異なる点を除くと、
図6のT412と同様である。即ち、AP6は、プリンタ用SC内のハッシュ値HV及びグループID「office1」が、それぞれ、第1のAP用SC内のハッシュ値HV及びグループID「office1」に一致すると判断する(即ち、DReqの送信元(即ちプリンタ100)の認証が成功したと判断する)。また、AP6は、第1のAP用COに含まれる端末10の公開鍵TPK2を用いてプリンタ用SC内の電子署名DSprを復号し、それによって得られた第5の値と、プリンタ用SC内の各情報(即ち、ハッシュ値HV、「office1」、及び、公開鍵PPK2)をハッシュ化することによって得られる値と、が一致すると判断する(即ち、DReq内の各情報の認証が成功したと判断する)。
【0114】
T1214及びT1220は、通信対象がプリンタ100である点、及び、利用されるデータ(鍵等)が異なる点を除いて、
図6のT414及びT420と同様である。プリンタ100は、T1220において、Wi-FiI/F116を介して、AP6からDResを受信することに応じて、DResの送信元(即ちAP6)、及び、DRes内の各情報(即ち、ハッシュ値HV、「office1」、及び、公開鍵APK2)を認証するためのT1222の処理を実行する。T1222は、実行主体がプリンタ100である点、及び、利用されるデータ(鍵等)が異なる点を除くと、
図6のT422と同様である。即ち、プリンタ100は、第1のAP用SC内のハッシュ値HV及びグループID「office1」が、それぞれ、プリンタ用SC内のハッシュ値HV及びグループID「office1」に一致すると判断する(即ち、DResの送信元(即ちAP6)の認証が成功したと判断する)。プリンタ100は、プリンタ用COに含まれる端末10の公開鍵TPK2を用いて、第1のAP用SC内の電子署名DSap1を復号し、それによって得られた第1の値と、第1のAP用SC内の各情報(即ち、ハッシュ値HV、「office1」、及び、公開鍵APK2)をハッシュ化することによって得られる値と、が一致すると判断する(即ち、DRes内の各情報の認証が成功したと判断する)。
【0115】
プリンタ100は、T1224において、ECDHに従って、プリンタ100の秘密鍵psk2と、第1のAP用SC内のAP6の公開鍵APK2と、を用いて、接続キーCK3を生成する。ここで、T1214でAP6によって生成される接続キーCK3と、T1224でプリンタ100によって生成される接続キーCK3と、は同じである。これにより、Wi-Fi接続を確立するための接続キーCK3がプリンタ100及びAP6の間で共有される。T1224が終了すると、
図14の処理が終了する。
【0116】
上述したように、接続キーCK3がプリンタ100及びAP6の間で共有された後に、
図2のT85において、プリンタ100及びAP6は、接続キーCK3を利用して、4way-handshakeの通信を実行する。この結果、プリンタ100とAP6との間にWi-Fi接続が確立される。これにより、プリンタ100は、AP6が親局として動作する無線ネットワークであって、グループID「office1」によって識別される無線ネットワークに子局として参加する。
【0117】
なお、図示を省略しているが、プリンタ100がAP7の近くに存在する場合には、通信対象がAP7である点、及び、AP7のSSID「ap7」、第2のAP用SCが利用される点を除いて、T1200~T1224と同様の処理がプリンタ100によって実行され、プリンタ100とAP7との間にWi-Fi接続が確立される。これにより、プリンタ100は、AP7が親局として動作する無線ネットワークであって、グループID「office2」によって識別される無線ネットワークに子局として参加する。
【0118】
(比較例;
図15)
ここで、
図15を参照して、比較例を説明する。比較例では、端末10は、1個のグループIDを含むプリンタ用COをプリンタ100に送信する。T1305~T1355は、
図2のT5~T55と同様である。即ち、端末10は、T1315において、グループID「office1」を含む第1のAP用COをAP6に送信し、T1345において、グループID「office2」を含む第2のAP用COをAP7に送信する。
【0119】
次いで、端末10は、プリンタ100とAP6との間にWi-Fi接続を確立するための第1のプリンタ用COを送信するための処理を実行する。即ち、端末10は、T1360において、BSをプリンタ100と実行し、T1365において、Authをプリンタ100と実行し、T1370において、Configをプリンタ100と実行する。当該Configでは、端末10は、1個のグループID「office1」を含む第1のプリンタ用COを生成して、第1のプリンタ用COをプリンタ100に送信する。この結果、プリンタ100では、第1のプリンタ用COが記憶される。
【0120】
また、端末10は、プリンタ100とAP7との間にWi-Fi接続を確立するための第2のプリンタ用COを送信するための処理を実行する。即ち、端末10は、T1375において、2回目のBSをプリンタ100と実行し、T1380において、2回目のAuthをプリンタ100と実行し、T1385において、2回目のConfigをプリンタ100と実行する。当該Configでは、端末10は、1個のグループID「office2」を含む第2のプリンタ用COを生成して、第2のプリンタ用COをプリンタ100に送信する。この結果、プリンタ100では、第2のプリンタ用COが記憶される。
【0121】
T1390では、プリンタ100及びAP6又はAP7は、DPP方式のNAを実行する。具体的には、プリンタ100がAP6の近くに存在する場合には、プリンタ100及びAP6は、第1のプリンタ用CO及び第1のAP用COを利用して、DPP方式のNAを実行する。また、プリンタ100がAP7の近くに存在する場合には、プリンタ100及びAP7は、第2のプリンタ用CO及び第2のAP用COを利用して、DPP方式のNAを実行する。この結果、プリンタ100及びAP6又はAP7の間で接続キーが共有されるので、プリンタ100及びAP6又はAP7は、T1395において、4way-handshakeの通信を実行して、プリンタ100とAP6又はAP7との間にWi-Fi接続を確立する。T1395の処理が終了すると、
図15の処理が終了する。
【0122】
(本実施例の効果)
上記のように、比較例では、端末10は、プリンタ100との間でBS、Auth、及び、Configのそれぞれを2回実行して(
図15のT1360~T1385)、2個のプリンタ用COをプリンタ100に送信する。即ち、端末10のユーザは、プリンタ用COをプリンタ100に送信するための作業(例えば、プリンタ100のQRコードを撮影する操作(
図11のT920)等)を2回実行する必要がある。これに対し、本実施例では、端末10は、プリンタ100との間でBS、Auth、及び、Configのそれぞれを1回だけ実行して(
図2のT65~T75)、2個のグループID「office1」及び「office2」を含む1個のプリンタ用COをプリンタ100に送信する。プリンタ用COがグループID「office1」を含むので、プリンタ100は、グループID「office1」によって識別される無線ネットワークの親局として動作するAP6とのWi-Fi接続を確立することができる。具体的には、プリンタ100によってプリンタ用COが利用され、かつ、AP6によって第1のAP用COが利用されて、プリンタ100とAP6との間でNAが実行されると(
図2のT80)、プリンタとAP6との間にWi-Fi接続が確立される(T85)。また、プリンタ用COがグループID「office2」も含むので、プリンタ100は、グループID「office2」によって識別される無線ネットワークの親局として動作するAP7との無線接続を確立することができる。具体的には、プリンタ100によってプリンタ用COが利用され、かつ、AP7によって第2のAP用COが利用されて、プリンタ100及びAP7との間でNAが実行されると(T80)、プリンタ100とAP7との間にWi-Fi接続が確立される(T85)。このように、端末10のユーザが1個のプリンタ用COをプリンタ100に送信するための作業を1回だけ行なえば、2個のグループID「office1」及び「office2」を含むプリンタ用COがプリンタ100に送信され、この結果、プリンタ100は、AP6又はAP7とのWi-Fi接続を確立することができる。従って、比較例と比べると、端末10のユーザの作業負荷を軽減し得る。
【0123】
また、上記のように、端末10は、選択画面を表示部14に表示させ(
図11のT902)、選択画面において「office1」ボタン及び「office2」ボタンがユーザによって選択される場合(T904)に、選択済みの文字列と同じ文字列を有する2個のグループID「office1」及び「office2」を含むプリンタ用COを生成して(
図13のT1104)、プリンタ用COをプリンタ100に送信する(T1110)。従って、ユーザが所望するAPとプリンタ100との間にWi-Fiを確立させることができる。
【0124】
また、上記のように、第1及び第2のAP用COとプリンタ用COとは、端末10の同じ公開鍵TPK2を含む。ここで、例えば、端末10が、公開鍵TPK2とは異なる公開鍵(例えばTPK10)を含む第2のAP用COをAP7に送信する構成を想定する。この場合、端末10は、公開鍵TPK10に対応する秘密鍵(例えばtsk10)を利用して第2のAP用SCを生成する。また、端末10は、プリンタ100とのConfigにおいて、秘密鍵tsk2を利用してグループID「office1」を含む第1のプリンタ用SCを生成し、秘密鍵tsk10を用いてグループID「office2」を含む第2のプリンタ用SCを生成する。そして、端末10は、第1のプリンタ用SCと、第2のプリンタ用SCと、公開鍵TPK2と、公開鍵TPK10と、SSID「ap6」及び「ap7」と、を含むプリンタ用COを生成して、当該プリンタ用COをプリンタ100に送信する。従って、端末10は、プリンタ用COを生成するために、公開鍵TPK2及びtsk2に加えて公開鍵TPK10及び秘密鍵tsk10をメモリ34に記憶しておかなければならず、かつ、2個のプリンタ用SCを生成しなければならない。これに対し、本実施例では、端末10は、プリンタ用COを生成するために、公開鍵TPK2及び秘密鍵tsk2をメモリ34に記憶していればよく、1個のプリンタ用SCを生成すればよい。従って、本実施例では、上記の構成と比較して、端末10の処理負荷を軽減できる。なお、変形例では、上記の構成が採用されてもよい。
【0125】
(対応関係)
端末10、AP6、AP7、プリンタ100が、それぞれ、「端末装置」、「第1のアクセスポイント」、「第2のアクセスポイント」、「通信装置」の一例である。AP6の公開鍵APK1、AP7の公開鍵APK3、プリンタ100の公開鍵PPK1が、それぞれ、「第1の公開鍵」、「第2の公開鍵」、「第3の公開鍵」の一例である。
図4のT210のAReq、
図8のT610のAReq、
図12のT1010のAReqが、それぞれ、「第1の認証要求」、「第2の認証要求」、「第3の認証要求」の一例である。T220のARes、T620のARes、T1020のAResが、それぞれ、「第1の認証応答」、「第2の認証応答」、「第3の認証応答」の一例である。第1のAP用CO、第2のAP用CO、プリンタ用COが、それぞれ、「第1の接続情報」、「第2の接続情報」、「第3の接続情報」の一例である。グループID「office1」、グループID「office2」が、それぞれ、「第1の識別子」、「第2の識別子」の一例である。
【0126】
端末10の公開鍵TPK2が、「端末装置の同じ公開鍵」の一例である。AP6のSSID「ap6」、AP7のSSID「ap7」が、それぞれ、「第1のSSID」、「第2のSSID」の一例である。
図14のT1200のPReqが、「機器検索信号」の一例である。
【0127】
図3のT122の処理、
図4のT210の処理、T220の処理、
図5のT310の処理が、それぞれ、「第1の取得部」、「第1の認証要求送信部」、「第1の認証応答受信部」、「第1の接続情報送信部」によって実行される処理の一例である。
図7のT522の処理、
図8のT610の処理、T620の処理、
図9のT710の処理が、それぞれ、「第2の取得部」、「第2の認証要求送信部」、「第2の認証応答受信部」、「第2の接続情報送信部」によって実行される処理の一例である。
図11のT922の処理、
図12のT1010の処理、T1020の処理、
図13のT1110の処理が、それぞれ、「第3の取得部」、「第3の認証要求送信部」、「第3の認証応答受信部」、「第3の接続情報送信部」によって実行される処理の一例である。
【0128】
図12のT1010の処理、T1020の処理、
図13のT1110の処理が、それぞれ、「通信装置」の「認証要求受信部」、「認証応答送信部」、「接続情報受信部」によって実行される処理の一例である。
図2のT80及びT85の処理が、「通信装置」の「確立部」によって実行される処理の一例である。
【0129】
以上、本発明の具体例を詳細に説明したが、これらは例示にすぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には以上に例示した具体例を様々に変形、変更したものが含まれる。上記の実施例の変形例を以下に列挙する。
【0130】
(変形例1)上記の実施例では、端末10は、AP6及びAP7のそれぞれとの間でBS、Auth、Config、及び、NAを1回ずつ実行したが、これに限らず、一方のAP(例えばAP6)との間でBS、Auth、Config、及び、NAを2回実行してもよい。Wi-Fi方式に従った無線通信では、2.4GHz及び5.0GHzの2種類の周波数帯のどちらかの電波(即ち搬送波)が利用される。本変形例では、AP6が2種類の周波数帯(即ち2.4GHz及び5.0GHz)をサポートしており、AP6の筐体に2種類のQRコード(即ち2.4GHz用、及び、5.0GHz用)が貼り付けられている。端末10は、AP6の2種類のQRコードを利用して、AP6との間でBS、Auth、Config、及び、NAを2回実行した後に、プリンタ100との間でBS、Auth、及び、Configを実行する。これにより、プリンタ100は、プリンタ100がサポートしている周波数帯(即ち2.4GHz又は5.0GHz)が利用されるWi-Fi接続をAP6と確立することができる。即ち、「第2のアクセスポイント」は、「第1のアクセスポイント」と同じでもよい。
【0131】
(変形例2)第1のAP用COと第2のAP用COとが、同じグループID(例えば「office」)を含んでいてもよく、プリンタ用COが1個のグループID「office」を含んでいてもよい。本変形例によっても、プリンタ100がAP6の近くに存在する場合には、プリンタ100は、
図14のT1200において、PReqをブロードキャストによって送信して、T1202において、AP6からSSID「ap6」を含むPResを受信し、T1210~T1224と同様の処理を実行することができる。また、プリンタ100がAP7の近くに存在する場合には、プリンタ100は、PReqをブロードキャストによって送信して、AP7からSSID「ap7」を含むPResを受信し、通信対象がAP7である点を除いてT1210~T1224と同様の処理を実行することができる。本変形例では、SSID「ap6」、SSID「ap7」が、それぞれ、「第1の識別子」、「第2の識別子」の一例である。
【0132】
(変形例3)上記の実施例では、端末10は、プリンタ100との間で
図2のT65~T75の処理を実行した後に、AP6又はAP7との間でT5~T55の処理を実行してもよい。即ち、「第3の取得部」は、第1の接続情報が前記第1のアクセスポイントに送信され、かつ、第2の接続情報が前記第2のアクセスポイントに送信される前に、第3の公開鍵を取得してもよい。
【0133】
(変形例4)
図11のT902及び904の処理が省略されてもよい。本変形例では、「表示制御部」が省略可能である。
【0134】
(変形例5)上記の実施例では、端末10はBSにおいて選択画面を表示したが(
図3のT102、
図7のT502、
図11のT902)、これに限らず、例えば、Auth又はConfigにおいて選択画面を表示してもよい、即ち、「選択画面」は、Bootstrappingにおいて第3の公開鍵が取得された後に表示されてもよい。
【0135】
(変形例6)プリンタ用COが、2個のSSID「ap6」及び「ap7」を含まなくてもよい。この場合、プリンタ100は、
図14のT1200及びT1202の処理を省略して、例えば、DReqをブロードキャストによって送信してもよい。即ち、「接続情報」は、「第1のSSID」と「第2のSSID」を含まなくてもよい。また、本実施例では、「検索信号送信部」が省略可能である。
【0136】
(変形例7)「通信装置」は、プリンタ100でなくてもよく、スキャナ、多機能機、携帯端末、PC、サーバ等の他のデバイスであってもよい。
【0137】
(変形例8)共有鍵(例えばSK1)を生成するための処理(例えば、
図4のT201)は、ECDHに従った上記の実施例の処理に限らず、ECDHに従った他の処理であってもよい。また、共有鍵を生成するための処理は、ECDHに従った処理に限らず、他の方式(例えば、DH(Diffie-Hellman key exchangeの略)等)に従った処理が実行されてもよい。また、上記の実施例では、電子署名(DSap1等)が、ECDSAに従って生成されたが、他の方式(例えば、DSA(Digital Signature Algorithmの略)、RAS(Rivest-Shamir-Adleman cryptosystemの略)等)に従って生成されてもよい。
【0138】
(変形例9)例えば、
図11のT912でプリンタ100に表示されるQRコードは、チャネルリストL3及びMACアドレス「macpr」がコード化されたものでなくてもよい。即ち、プリンタ100のQRコードは、少なくとも公開鍵PPK1がコード化されることによって得られるコード画像であればよい。この場合、プリンタ100は、T910でQRコード表示操作を受け付けることに応じて、プリンタ100が利用可能な全ての無線チャネルのうちの1個の無線チャネルが利用されたAReqを受信することを監視する。また、端末10は、
図12のT1010において、端末10が利用可能な全ての無線チャネルを順次利用して、AReqをブロードキャストによって順次送信する。
【0139】
(変形例10)Wi-Fi Allianceによって作成された規格書である「Device Provisioning Protocol Technical Specification Version 1.0」には、共有コード、キー、フレーズ、及び、ワードを「コード」と呼ぶことが記載されている。従って、プリンタ100は、
図11のT912において、QRコードに代えて、公開鍵PPK1とチャネルリストL3とMACアドレス「macpr」とがコード化されることによって得られる共有コード、キー、フレーズ、及び、ワードを含む画像を表示部114に表示してもよい。
【0140】
(変形例11)上記の実施例では、
図2~
図15の各処理がソフトウェア(即ち各プログラム36,38,136)によって実現されるが、これらの各処理のうちの少なくとも1つが論理回路等のハードウェアによって実現されてもよい。
【0141】
また、本明細書または図面に説明した技術要素は、単独であるいは各種の組合せによって技術的有用性を発揮するものであり、出願時請求項記載の組合せに限定されるものではない。また、本明細書または図面に例示した技術は複数目的を同時に達成するものであり、そのうちの一つの目的を達成すること自体で技術的有用性を持つものである。
以下、本明細書で開示する技術の特徴を列挙する。
(項目1)
端末装置のためのコンピュータプログラムであって、
前記端末装置のコンピュータを、以下の各部、即ち、
第1のアクセスポイントの公開鍵である第1の公開鍵を取得する第1の取得部と、
前記第1の公開鍵が取得される場合に、前記第1の公開鍵が利用された第1の認証要求を前記第1のアクセスポイントに送信する第1の認証要求送信部と、
前記第1の認証要求が前記第1のアクセスポイントに送信される場合に、前記第1のアクセスポイントから、前記第1の認証要求に対する応答である第1の認証応答を受信する第1の認証応答受信部と、
前記第1のアクセスポイントから前記第1の認証応答が受信される場合に、第1の接続情報を前記第1のアクセスポイントに送信する第1の接続情報送信部であって、前記第1の接続情報は、通信装置と前記第1のアクセスポイントとの間に無線接続を確立するための情報である、前記第1の接続情報送信部と、
第2のアクセスポイントの公開鍵である第2の公開鍵を取得する第2の取得部と、
前記第2の公開鍵が取得される場合に、前記第2の公開鍵が利用された第2の認証要求を前記第2のアクセスポイントに送信する第2の認証要求送信部と、
前記第2の認証要求が前記第2のアクセスポイントに送信される場合に、前記第2のアクセスポイントから、前記第2の認証要求に対する応答である第2の認証応答を受信する第2の認証応答受信部と、
前記第2のアクセスポイントから前記第2の認証応答が受信される場合に、第2の接続情報を前記第2のアクセスポイントに送信する第2の接続情報送信部であって、前記第2の接続情報は、前記通信装置と前記第2のアクセスポイントとの間に無線接続を確立するための情報である、前記第2の接続情報送信部と、
前記通信装置の公開鍵である第3の公開鍵を取得する第3の取得部と、
前記第3の公開鍵が取得される場合に、前記第3の公開鍵が利用された第3の認証要求を前記通信装置に送信する第3の認証要求送信部と、
前記第3の認証要求が前記通信装置に送信される場合に、前記通信装置から、前記第3の認証要求に対する応答である第3の認証応答を受信する第3の認証応答受信部と、
前記通信装置から前記第3の認証応答が受信される場合に、第3の接続情報を前記通信装置に送信する第3の接続情報送信部であって、前記第3の接続情報は、第1の識別子と、前記第1の識別子とは異なる第2の識別子と、を含み、前記第1の識別子は、前記第1のアクセスポイントが親局として動作する第1の無線ネットワークを識別する情報であり、前記第2の識別子は、前記第2のアクセスポイントが親局として動作する第2の無線ネットワークを識別する情報である、前記第3の接続情報送信部と、
として機能させる、コンピュータプログラム。
(項目2)
前記第3の取得部は、前記第1の接続情報が前記第1のアクセスポイントに送信され、かつ、前記第2の接続情報が前記第2のアクセスポイントに送信された後に、前記第3の公開鍵を取得する、項目1に記載のコンピュータプログラム。
(項目3)
前記第1の接続情報は、前記第1の識別子を含み、
前記第2の接続情報は、前記第2の識別子を含み、
前記コンピュータプログラムは、前記コンピュータを、さらに、
前記第1の識別子を含む前記第1の接続情報が前記第1のアクセスポイントに送信される場合に、前記第1の識別子を前記端末装置のメモリに記憶する第1の記憶制御部と、
前記第2の識別子を含む前記第2の接続情報が前記第2のアクセスポイントに送信される場合に、前記第2の識別子を前記メモリに記憶する第2の記憶制御部と、
前記第1の接続情報が前記第1のアクセスポイントに送信され、かつ、前記第2の接続情報が前記第2のアクセスポイントに送信された後に、前記メモリ内の前記第1の識別子及び前記第2の識別子を含む複数個の識別子の中から1個以上の識別子を選択するための選択画面を前記端末装置の表示部に表示させる表示制御部と、として機能させ、
前記第3の接続情報送信部は、前記選択画面において前記複数個の識別子の中から前記第1の識別子と前記第2の識別子とが選択され、かつ、前記通信装置から前記第3の認証応答が受信される場合に、選択済みの前記第1の識別子と選択済みの前記第2の識別子とを含む前記第3の接続情報を前記通信装置に送信する、項目2に記載のコンピュータプログラム。
(項目4)
前記表示制御部は、DPP(Device Provisioning Protocolの略)方式に従ったBootstrappingにおいて前記第3の公開鍵が取得される前に、前記選択画面を前記表示部に表示させる、項目3に記載のコンピュータプログラム。
(項目5)
前記第2のアクセスポイントは、前記第1のアクセスポイントとは異なる、項目1から4のいずれか一項に記載のコンピュータプログラム。
(項目6)
前記第1の接続情報と前記第2の接続情報と前記第3の接続情報とのそれぞれは、前記端末装置の同じ公開鍵を含む、項目1から5のいずれか一項に記載のコンピュータプログラム。
(項目7)
前記第3の接続情報は、1個のDPP(Device Provisioning Protocolの略) Configuration Objectである、項目1から6のいずれか一項に記載のコンピュータプログラム。
(項目8)
前記第1の識別子は、DPP(Device Provisioning Protocolの略)方式に従ったグループIDであり、
前記第2の識別子は、前記DPP方式に従ったグループIDであって、前記第1の識別子とは異なる前記グループIDである、項目1から7のいずれか一項に記載のコンピュータプログラム。
(項目9)
通信装置であって、
端末装置から、前記通信装置の公開鍵が利用された認証要求を受信する認証要求受信部と、
前記端末装置から前記認証要求が受信される場合に、前記認証要求に対する応答である認証応答を前記端末装置に送信する認証応答送信部と、
前記認証応答が前記端末装置に送信される場合に、前記端末装置から、接続情報を受信する接続情報受信部であって、前記接続情報は、第1の識別子と、前記第1の識別子とは異なる第2の識別子と、を含み、前記第1の識別子は、第1のアクセスポイントが親局として動作する第1の無線ネットワークを識別する情報であり、前記第2の識別子は、第2のアクセスポイントが親局として動作する第2の無線ネットワークを識別する情報である、前記接続情報受信部と、
前記端末装置から前記接続情報が受信される場合に、前記接続情報を利用して、前記通信装置と前記第1のアクセスポイント又は前記第2のアクセスポイントとの間に無線接続を確立する確立部と、
を備える、通信装置。
(項目10)
前記接続情報は、さらに、前記第1のアクセスポイントを識別する第1のSSIDと、前記第2のアクセスポイントを識別する第2のSSIDと、を含み、
前記通信装置は、さらに、
前記端末装置から前記接続情報を受信する場合に、前記通信装置の周辺の機器を検索するための機器検索信号を外部に送信する検索信号送信部を備え、
前記確立部は、
前記第1のアクセスポイントから前記機器検索信号に対する応答信号であって、前記第1のSSIDを含む前記応答信号が受信される場合に、前記接続情報を利用して、前記通信装置と前記第1のアクセスポイントとの間に無線接続を確立し、
前記第2のアクセスポイントから、前記第2のSSIDを含む応答信号が受信される場合に、前記接続情報を利用して、前記通信装置と前記第2のアクセスポイントとの間に無線接続を確立する、項目9に記載の通信装置。
【符号の説明】
【0142】
2:通信システム、6,7:AP、10:端末、12,112:操作部、14,114:表示部、15:カメラ、16,116:Wi-FiI/F、30,130:制御部、32,132:CPU、34,134:メモリ、36:OSプログラム、38:接続アプリケーション、100:プリンタ、118:印刷実行部、136:プログラム