(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-12-18
(45)【発行日】2023-12-26
(54)【発明の名称】端末装置のためのコンピュータプログラム、及び、端末装置
(51)【国際特許分類】
H04W 76/14 20180101AFI20231219BHJP
H04W 84/12 20090101ALI20231219BHJP
H04W 76/10 20180101ALI20231219BHJP
H04M 1/72412 20210101ALI20231219BHJP
H04M 11/00 20060101ALI20231219BHJP
G06F 3/12 20060101ALI20231219BHJP
【FI】
H04W76/14
H04W84/12
H04W76/10 130
H04M1/72412
H04M11/00 302
G06F3/12 336
(21)【出願番号】P 2023006174
(22)【出願日】2023-01-18
(62)【分割の表示】P 2018184176の分割
【原出願日】2018-09-28
【審査請求日】2023-02-17
(73)【特許権者】
【識別番号】000005267
【氏名又は名称】ブラザー工業株式会社
(74)【代理人】
【識別番号】110000110
【氏名又は名称】弁理士法人 快友国際特許事務所
(72)【発明者】
【氏名】三宅 猛
【審査官】永田 義仁
(56)【参考文献】
【文献】特開2017-028460(JP,A)
【文献】特開2016-213573(JP,A)
【文献】特開2011-114377(JP,A)
【文献】特開2018-037979(JP,A)
【文献】米国特許出願公開第2017/0295448(US,A1)
【文献】特開2014-165594(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F3/09-3/12
H04B7/24-7/26
H04M1/00
1/24-3/00
3/16-3/20
3/38-3/58
7/00-7/16
11/00-11/10
99/00
H04W4/00-99/00
(57)【特許請求の範囲】
【請求項1】
端末装置のためのコンピュータプログラムであって、
前記端末装置のコンピュータを、以下の各部、即ち、
通信装置から、前記通信装置の公開鍵と、前記通信装置を識別する対象の識別情報と、を取得する取得部であって、前記対象の識別情報は、前記通信装置を識別する第1の識別情報と、前記通信装置を識別する第2の識別情報と、のうちの一方であり、前記第1の識別情報は、前記通信装置が前記端末装置とは異なる外部装置との無線接続を確立するための識別情報であり、前記第2の識別情報は、前記通信装置が前記端末装置との無線接続を確立するための識別情報である、前記取得部と、
前記端末装置の無線インターフェースを介して、
検索信号を送信することによって、前記通信装置を検索する検索部と
、
前記通信装置が、前記外部装置との前記無線接続を確立すべきか、前記端末装置との前記無線接続を確立すべきか、を判断する判断部
であって、
前記通信装置から、前記無線インターフェースを介して、前記対象の識別情報を含む検索応答が受信され、かつ、前記検索応答が所定情報を含まないと判断する場合に、前記通信装置が前記外部装置との前記無線接続を確立すべきと判断し、
前記通信装置から、前記無線インターフェースを介して、前記対象の識別情報を含む前記検索応答が受信され、かつ、前記検索応答が前記所定情報を含むと判断する場合に、前記通信装置が前記端末装置との前記無線接続を確立すべきと判断する、
前記判断部と、
前記通信装置が前記外部装置との無線接続を確立すべきと判断され、かつ、第1の接続情報が前記端末装置のメモリに記憶されていない場合に、前記端末装置と前記外部装置との間に無線接続を確立させるべきことをユーザに通知するための通知画面を表示部に表示させる表示制御部であって、前記第1の接続情報は、前記端末装置が前記外部装置との前記無線接続を確立するための情報である、前記表示制御部と、
前記通信装置が前記端末装置との前記無線接続を確立すべきと判断され、かつ、前記通信装置から前記公開鍵と前記対象の識別情報とが取得された後に、前記無線インターフェースを介して、前記公開鍵を利用した認証要求を前記通信装置に送信する認証要求送信部と、
前記認証要求が前記通信装置に送信された後に、前記通信装置から、前記無線インターフェースを介して、前記認証要求に対する応答である認証応答を受信する認証応答受信部と
、
前記通信装置が前記端末装置との前記無線接続を確立すべきと判断され、かつ、前記通信装置から前記認証応答が受信される場合に、前記無線インターフェースを介して、前記第1の接続情報とは異なる第2の接続情報を前記通信装置に送信す
る接続情報送信部であって、前記第2の接続情報は、前記通信装置が前記端末装置との前記無線接続を確立するための情報である、前
記接続情報送信部と、
前記第2の接続情報が前記通信装置に送信された後に、前記第2の接続情報を利用して、前記無線インターフェースを介して、前記通信装置との前記無線接続を確立す
る確立部と、
として機能させる、コンピュータプログラム。
【請求項2】
前記検索部は、前記通信装置から前記公開鍵と前記対象の識別情報とが取得された後に、前記無線インターフェースを介して、前記通信装置を検索する、請求項1に記載のコンピュータプログラム。
【請求項3】
前記通信装置から前記対象の識別情報を含む前記検索応答が受信されない場合に、前記判断は実行されない、請求項1又は2に記載のコンピュータプログラム。
【請求項4】
前記検索信号は、Probe Requestである、請求項
1から3のいずれか一項に記載のコンピュータプログラム。
【請求項5】
前記第1の識別情報は、前記通信装置の第1のMACアドレスであり、
前記第2の識別情報は、前記通信装置の第2のMACアドレスである、請求項1から
4のいずれか一項に記載のコンピュータプログラム。
【請求項6】
前記第1のMACアドレスと前記第2のMACアドレスとは、前記通信装置が備える物理的に1個の無線インターフェースに割り当てられている、請求項
5に記載のコンピュータプログラム。
【請求項7】
前
記確立部は、前記無線インターフェースを介して、Wi-Fi Direct方式に従って、前記通信装置との前記無線接続を確立する、請求項1から
6のいずれか一項に記載のコンピュータプログラム。
【請求項8】
前記取得部は、前記端末装置のカメラを利用して、前記通信装置に表示されるQRコード(登録商標)であって、前記公開鍵と前記対象の識別情報とがコード化されることによって得られる前記QRコードを撮影することによって、前記通信装置から前記公開鍵と前記対象の識別情報とを取得する、請求項1から
7のいずれか一項に記載のコンピュータプログラム。
【請求項9】
前記コンピュータプログラムは、前記コンピュータを、さらに、
前記通信装置が、前記外部装置との前記無線接続を確立すべきか、前記端末装置との前記無線接続を確立すべきか、を選択するための指示を
、前記端末装置において、ユーザから受け付けることなく、前記通信装置から前記公開鍵と前記対象の識別情報とを取得するための取得指示を前記ユーザから受け付ける指示受付部として機能させ、
前記取得部は、前記ユーザから前記取得指示が受け付けられる場合に、前記通信装置から前記公開鍵と前記対象の識別情報とを取得する、請求項1から
8のいずれか一項に記載のコンピュータプログラム。
【請求項10】
前記コンピュータプログラムは、前記コンピュータを、さらに、
前記通信装置との前記無線接続が確立された後に、前記無線インターフェースを介して、前記外部装置を経由することなく
、対象データを前記通信装置に送信す
るデータ送信部
として機能させる、請求項1から
9のいずれか一項に記載のコンピュータプログラム。
【請求項11】
前記コンピュータプログラムは、前記コンピュータを、さらに
、
前記外部装置を経由することなく前記対象データが前記通信装置に送信される場合に、前記通信装置との前記無線接続を切断する切断部
として機能させる、請求項
10に記載のコンピュータプログラム。
【請求項12】
前記対象データは、印刷対象の画像を表わす印刷データを含み、
前記印刷対象の画像は、前記通信装置の印刷実行部によって用紙に印刷される、請求項
10又は
11に記載のコンピュータプログラム。
【請求項13】
前記第2の識別情報は、前記第1の識別情報とは異なる、請求項1から12のいずれか一項に記載のコンピュータプログラム。
【請求項14】
端末装置であって、
無線インターフェースと、
通信装置から、前記通信装置の公開鍵と、前記通信装置を識別する対象の識別情報と、を取得する取得部であって、前記対象の識別情報は、前記通信装置を識別する第1の識別情報と、前記通信装置を識別する第2の識別情報と、のうちの一方であり、前記第1の識別情報は、前記通信装置が前記端末装置とは異なる外部装置との無線接続を確立するための識別情報であり、前記第2の識別情報は、前記通信装置が前記端末装置との無線接続を確立するための識別情報である、前記取得部と、
前記無線インターフェースを介して、
検索信号を送信することによって、前記通信装置を検索する検索部と
、
前記通信装置が、前記外部装置との前記無線接続を確立すべきか、前記端末装置との前記無線接続を確立すべきか、を判断する判断部
であって、
前記通信装置から、前記無線インターフェースを介して、前記対象の識別情報を含む検索応答が受信され、かつ、前記検索応答が所定情報を含まないと判断する場合に、前記通信装置が前記外部装置との前記無線接続を確立すべきと判断し、
前記通信装置から、前記無線インターフェースを介して、前記対象の識別情報を含む前記検索応答が受信され、かつ、前記検索応答が前記所定情報を含むと判断する場合に、前記通信装置が前記端末装置との前記無線接続を確立すべきと判断する、
前記判断部と、
前記通信装置が前記外部装置との無線接続を確立すべきと判断され、かつ、第1の接続情報が前記端末装置のメモリに記憶されていない場合に、前記端末装置と前記外部装置との間に無線接続を確立させるべきことをユーザに通知するための通知画面を表示部に表示させる表示制御部であって、前記第1の接続情報は、前記端末装置が前記外部装置との前記無線接続を確立するための情報である、前記表示制御部と、
前記通信装置が前記端末装置との前記無線接続を確立すべきと判断され、かつ、前記通信装置から前記公開鍵と前記対象の識別情報とが取得された後に、前記無線インターフェースを介して、前記公開鍵を利用した認証要求を前記通信装置に送信する認証要求送信部と、
前記認証要求が前記通信装置に送信された後に、前記通信装置から、前記無線インターフェースを介して、前記認証要求に対する応答である認証応答を受信する認証応答受信部と
、
前記通信装置が前記端末装置との前記無線接続を確立すべきと判断され、かつ、前記通信装置から前記認証応答が受信される場合に、前記無線インターフェースを介して、前記第1の接続情報とは異なる第2の接続情報を前記通信装置に送信す
る接続情報送信部であって、前記第2の接続情報は、前記通信装置が前記端末装置との前記無線接続を確立するための情報である、前
記接続情報送信部と、
前記第2の接続情報が前記通信装置に送信された後に、前記第2の接続情報を利用して、前記無線インターフェースを介して、前記通信装置との前記無線接続を確立す
る確立部と、
を備える、端末装置。
【発明の詳細な説明】
【技術分野】
【0001】
本明細書では、端末装置を利用して通信装置に無線接続を確立させるための技術を開示する。
【背景技術】
【0002】
特許文献1には、カメラとアクセスポイントとの間の無線接続と、カメラとスマートフォンとの間の無線接続と、のどちらも確立可能な技術が開示されている。
【0003】
カメラは、ユーザからアクセスポイントとの接続の指示を受け付けることに応じて、アクセスポイントとの接続を確立するための情報を含む第1のQRコード(登録商標)を表示する。スマートフォンは、第1のQRコードを読み取り、カメラとの認証処理を実行し、認証成功を示すメッセージをカメラに送信する。カメラは、スマートフォンからメッセージを受信する場合に、アクセスポイントとの接続を確立することを示すケイパビリティ情報をスマートフォンに送信する。スマートフォンは、カメラからケイパビリティ情報を受信する場合に、アクセスポイントとの接続を確立するための通信パラメータをカメラに送信する。これにより、カメラは、受信済みの通信パラメータを用いて、アクセスポイントとの無線接続を確立することができる。
【0004】
一方、カメラは、ユーザからスマートフォンとの接続の指示を受け付けることに応じて、スマートフォンとの接続を確立するための情報を含む第2のQRコードを表示する。スマートフォンは、第2のQRコードを読み取り、カメラとの認証処理を実行して、認証成功を示すメッセージをカメラに送信する。カメラは、スマートフォンからメッセージを受信する場合に、スマートフォンとの接続を確立することを示すケイパビリティ情報をスマートフォンに送信する。スマートフォンは、カメラからケイパビリティ情報を受信する場合に、スマートフォンに接続するための通信パラメータをカメラに送信する。これにより、カメラは、受信済みの通信パラメータを用いて、スマートフォンとの無線接続を確立することができる。
【先行技術文献】
【特許文献】
【0005】
【文献】特開2017-28460号公報
【文献】国際公開第2017/126311号
【発明の概要】
【発明が解決しようとする課題】
【0006】
本明細書では、通信装置と外部装置との間に無線接続を確立させるのか、通信装置と端末装置との間に無線接続を確立させるのか、を適切に切り替えることが可能な技術を開示する。
【課題を解決するための手段】
【0007】
本明細書は、端末装置のためのコンピュータプログラムを開示する。コンピュータプログラムは、前記端末装置のコンピュータを、以下の各部、即ち、通信装置から、前記通信装置の公開鍵と、前記通信装置を識別する対象の識別情報と、を取得する取得部であって、前記対象の識別情報は、前記通信装置を識別する第1の識別情報と、前記通信装置を識別する第2の識別情報と、のうちの一方であり、前記第1の識別情報は、前記通信装置が前記端末装置とは異なる外部装置との無線接続を確立するための識別情報であり、前記第2の識別情報は、前記通信装置が前記端末装置との無線接続を確立するための識別情報である、前記取得部と、前記端末装置の無線インターフェースを介して、前記通信装置を検索する検索部と、前記対象の識別情報と前記検索の結果とに基づいて、前記通信装置が、前記外部装置との前記無線接続を確立すべきか、前記端末装置との前記無線接続を確立すべきか、を判断する判断部と、前記通信装置から前記公開鍵と前記対象の識別情報とが取得された後に、前記無線インターフェースを介して、前記公開鍵を利用した認証要求を前記通信装置に送信する認証要求送信部と、前記認証要求が前記通信装置に送信された後に、前記通信装置から、前記無線インターフェースを介して、前記認証要求に対する応答である認証応答を受信する認証応答受信部と、前記通信装置が前記外部装置との前記無線接続を確立すべきと判断され、かつ、前記通信装置から前記認証応答が受信される場合に、前記無線インターフェースを介して、第1の接続情報を前記通信装置に送信する第1の接続情報送信部であって、前記第1の接続情報は、前記通信装置が前記外部装置との前記無線接続を確立するための情報である、前記第1の接続情報送信部と、前記通信装置が前記端末装置との前記無線接続を確立すべきと判断され、かつ、前記通信装置から前記認証応答が受信される場合に、前記無線インターフェースを介して、前記第1の接続情報とは異なる第2の接続情報を前記通信装置に送信する第2の接続情報送信部であって、前記第2の接続情報は、前記通信装置が前記端末装置との前記無線接続を確立するための情報である、前記第2の接続情報送信部と、前記第2の接続情報が前記通信装置に送信された後に、前記第2の接続情報を利用して、前記無線インターフェースを介して、前記通信装置との前記無線接続を確立する第1の確立部と、として機能させてもよい。
【0008】
上記の構成によると、端末装置は、通信装置から公開鍵と対象の識別情報とを取得し、通信装置を検索し、対象の識別情報と検索の結果とに基づいて、通信装置が、外部装置との無線接続を確立すべきか、端末装置との無線接続を確立すべきか、を判断する。また、端末装置は、公開鍵を利用した認証要求を通信装置に送信し、通信装置から認証応答を受信する。端末装置は、通信装置が外部装置との無線接続を確立すべきと判断し、かつ、通信装置から認証応答を受信する場合に、通信装置が外部装置との無線接続を確立するための第1の接続情報を通信装置に送信する。一方、端末装置は、通信装置が端末装置との無線接続を確立すべきと判断し、かつ、通信装置から認証応答を受信する場合に、通信装置が端末装置との無線接続を確立するための第2の接続情報を通信装置に送信し、第2の接続情報を利用して、通信装置との無線接続を確立する。従って、通信装置と外部装置との間に無線接続を確立させるのか、通信装置と端末装置との間に無線接続を確立させるのか、を適切に切り替えることができる。
【0009】
端末装置そのものも新規で有用である。端末装置のためのコンピュータプログラムを記憶するコンピュータ可読記録媒体、及び、端末装置によって実行される方法も新規で有用である。また、端末装置と他の装置(例えば、通信装置、外部装置)とを備える通信システムも、新規で有用である。
【図面の簡単な説明】
【0010】
【
図2】プリンタとAPとの間に無線接続が確立されるケースAの概略を説明するための説明図を示す。
【
図3】端末とプリンタとの間に無線接続が確立されるケースBの概略を説明するための説明図を示す。
【
図4】端末によって実行される処理のフローチャート図を示す。
【
図5】通常Wi-Fi処理のフローチャート図を示す。
【
図7】APとのBootstrappingの処理のシーケンス図を示す。
【
図8】APとのAuthenticationの処理のシーケンス図を示す。
【
図9】APとのConfigurationの処理のシーケンス図を示す。
【
図10】APとのNetwork Accessの処理のシーケンス図を示す。
【
図11】プリンタとのBootstrapping及びP2P Discoveryの処理のシーケンス図を示す。
【
図12】プリンタとのAuthenticationの処理のシーケンス図を示す。
【
図13】プリンタとのConfigurationの処理のシーケンス図を示す。
【
図14】プリンタ及びAPの間のNetwork Accessの処理のシーケンス図を示す。
【
図15】プリンタとのBootstrapping、P2P Discovery、及び、G/O Negotiationの処理のシーケンス図を示す。
【
図16】プリンタとのAuthenticationの処理のシーケンス図を示す。
【
図17】プリンタとのConfigurationの処理のシーケンス図を示す。
【
図18】プリンタとのNetwork Accessの処理のシーケンス図を示す。
【
図19】端末に通知画面が表示されるケースCの処理のシーケンス図を示す。
【発明を実施するための形態】
【0011】
(通信システム2の構成;
図1)
図1に示されるように、通信システム2は、AP(Access Pointの略)6と、端末10と、プリンタ100と、を備える。本実施例では、ユーザが、端末10を利用して、プリンタ100に印刷を実行させる状況を想定している。印刷対象の画像を表わす印刷データを端末10からプリンタ100に送信するために、端末10とAP6との間に無線接続を確立させ、プリンタ100とAP6との間に無線接続を確立させること、及び、端末10とプリンタ100との間に無線接続を確立させることが実現される。
【0012】
(端末10の構成)
端末10は、携帯電話(例えばスマートフォン)、PDA、タブレットPC等の可搬型の端末装置である。なお、変形例では、端末10は、据置型のPC、ノートPC等であってもよい。
【0013】
端末10は、操作部12と、表示部14と、カメラ15と、Wi-Fiインターフェース16と、制御部30と、を備える。各部12~30は、バス線(符号省略)に接続されている。なお、以下では、インターフェースのことを単に「I/F」と記載する。
【0014】
操作部12は、複数個のキーを備える。ユーザは、操作部12を操作することによって、様々な指示を端末10に入力することができる。表示部14は、様々な情報を表示するためのディスプレイである。表示部14は、ユーザから指示を受け付けるタッチパネル(即ち操作部)としても機能する。カメラ15は、物体を撮影するためのデバイスであり、本実施例では、特に、AP6及びプリンタ100のためのQRコードを撮影するために利用される。
【0015】
Wi-FiI/F16は、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、又は、端末10とプリンタ100)の間に容易にWi-Fiに従った無線接続を確立させるための無線通信方式である。
【0016】
また、Wi-FiI/F16は、Wi-Fi Allianceによって策定されたWFD(Wi-Fi Direct(登録商標)の略)方式をサポートしている。即ち、端末10は、WFD機器である。WFD方式は、Wi-Fi Allianceによって作成された規格書「Wi-Fi Peer-to-Peer (P2P) Technical Specification Version1.1」に記述されている無線通信方式である。WFDの規格では、WFD方式をサポートしているWFD機器の状態として、Group Owner状態(以下では「G/O状態」と呼ぶ)、クライアント状態、及び、デバイス状態の3つの状態が定義されている。WFD機器は、上記の3つの状態のうちの1つの状態で選択的に動作可能である。即ち、端末10は、WFD方式ではない通常のWi-Fi方式に従った無線接続と、WFD方式に従った無線接続と、を確立することができる。以下では、通常のWi-Fi方式の無線接続、WFD方式の無線接続を、それぞれ、「通常Wi-Fi接続」、「WFD接続」と記載する。
【0017】
制御部30は、CPU32とメモリ34とを備える。CPU32は、メモリ34に格納されているプログラム36,38に従って、様々な処理を実行する。メモリ34は、揮発性メモリ、不揮発性メモリ等によって構成され、OSプログラム36と接続アプリケーション38(以下では単に「アプリ38」と記載する)とを記憶する。
【0018】
OSプログラム36は、端末10の基本的な動作を制御するためのプログラムである。アプリ38は、DPP方式に従って一対のデバイスの間にWi-Fi接続を確立させるためのプログラムである。アプリ38は、例えば、プリンタ100のベンダによって提供されるインターネット上のサーバから端末10にインストールされる。
【0019】
(プリンタ100の構成)
プリンタ100は、印刷機能を実行可能な周辺装置(例えば、端末10等の周辺装置)である。プリンタ100は、Wi-FiI/F116と、印刷実行部118と、を備える。Wi-FiI/F116は、物理的に1個のI/Fである。Wi-FiI/F116は、端末10のWi-FiI/F16と同様である。即ち、Wi-FiI/F116は、DPP方式、及び、WFD方式をサポートしている。Wi-FiI/F116には、通常Wi-Fi接続を確立するためのMACアドレス「macpr1」と、WFD接続を確立するためのMACアドレス「macpr2」と、が割り当てられている。MACアドレス「macpr1」と、MACアドレス「macpr2」と、は異なるMACアドレスである。印刷実行部118は、インクジェット方式、レーザ方式等の印刷機構を備える。
【0020】
(本実施例の概要;
図2及び
図3)
続いて、
図2及び
図3を参照して、本実施例の概要を説明する。端末10及びプリンタ100がDPP方式をサポートしていることを上述したが、AP6もDPP方式をサポートしている。また、AP6には、MACアドレス「macap」が割り当てられている。以下では、理解の容易化のために、各デバイスのCPU(例えばCPU32)が実行する動作を、CPUを主体として記載せずに、各デバイス(例えば端末10)を主体として記載する。
【0021】
(ケースAの概要;
図2)
まず、
図2を参照して、プリンタ100とAP6との間に通常Wi-Fi接続が確立されるケースAの概要を説明する。ケースAでは、各デバイス6,10,100がDPP方式に従った通信を実行することによって、端末10及びプリンタ100のそれぞれとAP6との間に通常Wi-Fi接続を確立させることを実現する。
【0022】
T2では、端末10は、DPP方式のBootstrapping(以下では、単に「BS」と記載する)をAP6と実行する。当該BSは、AP6に貼り付けられているQRコードが端末10によって撮影されることに応じて、後述のT4のAuthentication(以下では、単に「Auth」と記載する)で利用される情報をAP6から端末10に提供する処理である。
【0023】
T4では、端末10は、T2のBSで取得済みの情報を利用して、DPP方式のAuthをAP6と実行する。当該Authは、端末10及びAP6のそれぞれが通信相手を認証するための処理である。
【0024】
T6では、端末10は、DPP方式のConfiguration(以下では、単に「Config」と記載する)をAP6と実行する。当該Configは、AP6がWi-Fi接続を確立するための情報をAP6に送信する処理である。具体的には、端末10は、AP用Configuration Object(以下では、Configuration Objectのことを単に「CO」と記載する)を生成して、AP用COをAP6に送信する。この結果、AP6では、AP用COが記憶される。
【0025】
T8では、端末10は、DPP方式のNetwork Access(以下では、単に「NA」と記載する)をAP6と実行する。端末10は、当該NAにおいて、第1の端末用COを生成して、メモリ34に記憶する。そして、端末10及びAP6は、第1の端末用CO及びAP用COを利用して、端末10とAP6との間のWi-Fi接続を確立するための接続キーを共有する。
【0026】
T10では、端末10及びAP6は、4way-handshakeの通信を実行する。4way-handshakeの通信の少なくとも一部の過程において、端末10及びAP6は、T8のNAで共有済みの接続キーによって暗号化された暗号情報を通信する。そして、暗号情報の復号が成功する場合に、端末10とAP6との間に通常Wi-Fi接続が確立される。これにより、端末10は、AP6によって形成される無線ネットワークに子局として参加する。なお、変形例では、4way-handshakeの通信に代えて、SAE(Simultaneous Authentication of Equalsの略、通称「Dragonfly」)の通信が利用されてもよい。
【0027】
次いで、端末10は、T12において、DPP方式のBSをプリンタ100と実行する。当該BSは、プリンタ100に表示される第1のQRコードが端末10によって撮影されることに応じて、後述のT14のAuthで利用される情報をプリンタ100から端末10に提供する処理である。
【0028】
T13では、端末10は、プリンタ100を検索するためのP2P Discovery(以下では、単に「PDis」と記載する)を実行する。当該PDisにおいて、端末10は、Wi-FiI/F16を介して、Probe Request(以下では、単に「PReq」と記載する)をブロードキャストによって送信し、プリンタ100からProbe Response(以下では、単に「PRes」と記載する)を受信する。当該PResは、通常Wi-Fi接続を確立するためのMACアドレス「macpr1」を含む。
【0029】
T14では、端末10は、T12のBSで取得済みの情報を利用して、DPP方式のAuthをプリンタ100と実行する。当該Authは、端末10及びプリンタ100のそれぞれが通信相手を認証するための処理である。
【0030】
T16では、端末10は、DPP方式のConfigをプリンタ100と実行する。当該Configは、プリンタ100が通常Wi-Fi接続を確立するための情報をプリンタ100に送信する処理である。具体的には、端末10は、第1のプリンタ用COを生成して、第1のプリンタ用COをプリンタ100に送信する。この結果、プリンタ100では、第1のプリンタ用COが記憶される。
【0031】
T18では、プリンタ100及びAP6は、第1のプリンタ用CO及びAP用COを利用して、DPP方式のNAを実行する。当該NAは、プリンタ100とAP6との間の通常Wi-Fi接続を確立するための接続キーをプリンタ100及びAP6の間で共有するための処理である。
【0032】
T20では、プリンタ100及びAP6は、4way-handshakeの通信を実行する。4way-handshakeの通信の少なくとも一部の過程において、プリンタ100及びAP6は、T18のNAで共有済みの接続キーによって暗号化された暗号情報を通信する。そして、暗号情報の復号が成功する場合に、プリンタ100とAP6との間に通常Wi-Fi接続が確立される。これにより、プリンタ100は、AP6によって形成される無線ネットワークに子局として参加する。この結果、端末10及びプリンタ100のそれぞれがAP6によって形成される無線ネットワークに子局として参加している状態になる。即ち、端末10及びプリンタ100は、当該無線ネットワークを利用して、AP6を介して相互に通信することができる。
【0033】
T30及びT32では、端末10は、Wi-FiI/F16を介して、AP6を経由して、印刷データをプリンタ100に送信する。
【0034】
プリンタ100は、T32において、端末10から、Wi-FiI/F116を介して、AP6を経由して、印刷データを受信する場合に、T34において、当該印刷データに従った印刷を実行する。そして、T40及びT41では、プリンタ100は、Wi-FiI/F116を介して、AP6を経由して、印刷が完了したことを示す完了通知を端末10に送信する。
【0035】
端末10は、T41において、プリンタ100から、Wi-FiI/F16を介して、AP6を経由して、完了通知を受信する場合に、T42及びT44において、Wi-FiI/F16を介して、AP6を経由して、プリンタ100とAP6との通常Wi-Fi接続を切断させるための切断指示をプリンタ100に送信する。
【0036】
プリンタ100は、T44において、端末10から、Wi-FiI/F116を介して、AP6を経由して、切断指示を受信する場合に、T46において、通常Wi-Fi接続の切断を要求する切断要求をAP6に送信し、T48において、AP6との通常Wi-Fi接続を切断する。これにより、プリンタ100において印刷が完了したにも関わらず、プリンタ100とAP6との間に通常Wi-Fi接続が確立されている状態が維持されることを抑制できる。T48の処理が終了すると、ケースAの処理が終了する。
【0037】
上記のように、DPP方式では、端末10及びプリンタ100のそれぞれとAP6との間に通常Wi-Fi接続を確立させるために、ユーザは、AP6が親局として動作する無線ネットワークの情報(例えばSSID(Service Set Identifierの略)、パスワード等)を端末10及びプリンタ100に入力する必要がない。従って、ユーザは、端末10及びプリンタ100のそれぞれとAP6との間に通常Wi-Fi接続を容易に確立させることができる。
【0038】
(ケースBの概要;
図3)
続いて、
図3を参照して、端末10とプリンタ100との間にWFD接続が確立されるケースBの概要を説明する。ケースBでは、各デバイス10,100がDPP方式に従った通信を実行することによって、端末10とプリンタ100との間にWFD接続を確立させることを実現する。
【0039】
T52では、端末10は、DPP方式のBSをプリンタ100と実行する。当該BSは、プリンタ100に表示される第2のQRコードが端末10によって撮影されることに応じて、後述のT54のAuthで利用される情報をプリンタ100から端末10に提供する処理である。
【0040】
T53では、端末10は、プリンタ100を検索するためのPDisを実行する。当該PDisにおいて、端末10は、Wi-FiI/F16を介して、PReqをブロードキャストによって送信し、プリンタ100からPResを受信する。当該PResは、WFD接続を確立するためのMACアドレス「macpr2」と、プリンタ100がWFD方式をサポートしていることを示すP2P情報と、を含む。
【0041】
T54では、端末10は、G/O Negotiation(以下では、単に「G/O Nego」と記載する)をプリンタ100と実行して、G/O状態及びクライアント状態のうちのどちらで動作すべきかを決定する。本ケースでは、プリンタ100がG/O状態として動作し、端末10がクライアント状態として動作することが決定される。なお、変形例では、端末10がG/O状態として動作し、プリンタ100がクライアント状態として動作することが決定されてもよい。
【0042】
T55では、端末10は、T52のBSで取得済みの情報を利用して、DPP方式のAuthをプリンタ100と実行する。当該Authは、端末10及びプリンタ100のそれぞれが通信相手を認証するための処理である。
【0043】
T56では、端末10は、DPP方式のConfigをプリンタ100と実行する。当該Configは、プリンタ100がWFD接続を確立するための情報をプリンタ100に送信する処理である。具体的には、端末10は、第2のプリンタ用COを生成して、第2のプリンタ用COをプリンタ100に送信する。この結果、プリンタ100では、第2のプリンタ用COが記憶される。
【0044】
T58では、端末10は、DPP方式のNAをプリンタ100と実行する。端末10は、当該NAにおいて、第2の端末用COを生成して、メモリ34に記憶する。そして、端末10及びプリンタ100は、第2の端末用CO及び第2のプリンタ用COを利用して、端末10とプリンタ100との間のWFD接続を確立するための接続キーを共有する。
【0045】
T60では、端末10は、T58で共有された接続キーを利用して、プリンタ100とのWFD接続を確立し、プリンタ100が親局として動作する無線ネットワークにWFD方式のクライアントとして参加する。これにより、端末10及びプリンタ100は、AP6を経由することなく、当該無線ネットワークを利用して相互に通信することができる。
【0046】
T70では、端末10は、Wi-FiI/F16を介して、WFD接続を利用して、印刷データをプリンタ100に送信する。
【0047】
プリンタ100は、T70において、Wi-FiI/F116を介して、端末10から印刷データを受信する場合に、T72において、当該印刷データに従った印刷を実行し、T80において、Wi-FiI/F116を介して、WFD接続を利用して、完了通知を端末10に送信する。
【0048】
端末10は、T80において、Wi-FiI/F16を介して、プリンタ100から完了通知を受信する場合に、T82において、WFD接続の切断を要求する切断要求をプリンタ100に送信し、T84において、プリンタ100とのWFD接続を切断する。これにより、プリンタ100において印刷が完了したにも関わらず、端末10とプリンタ100との間にWFD接続が確立されている状態が維持されることを抑制できる。T84の処理が終了すると、ケースBの処理が終了する。
【0049】
上記のように、DPP方式では、端末10とプリンタ100との間にWFD接続を確立させるために、ユーザは、プリンタ100が親局として動作する無線ネットワークの情報(例えばSSID、パスワード等)を端末10に入力する必要がない。従って、ユーザは、端末10とプリンタ100との間にWFD接続を容易に確立させることができる。
【0050】
(端末10の処理;
図4)
続いて、
図4を参照して、
図2及び
図3の処理を実現するために端末10のCPU32によって実行される処理を説明する。プリンタ100に表示されるQRコードが端末10によって撮影することに応じて、
図4の処理が実行される。プリンタ100に表示されるQRコードは、プリンタ100の公開鍵と、プリンタ100のチャネルリストと、プリンタ100のMACアドレス(即ち、「macpr1」及び「macpr2」のうちの一方)と、がコード化されることによって得られるコードである。以下では、プリンタ100のMACアドレス(即ち、「macpr1」又は「macpr2」)を「対象MACアドレス」と記載する。チャネルリストは、Auth(
図2のT14又は
図3のT55参照)で利用されるべき複数個の通信チャネル(即ちプリンタ100が利用可能な複数個の通信チャネル)のリストである。
【0051】
S5では、端末10は、撮影済みのQRコードをデコードして、プリンタ100の公開鍵とプリンタ100のチャネルリストと対象MACアドレスとを取得する。
【0052】
S10では、端末10は、Wi-FiI/F16を介して、PReqをブロードキャストによって送信する。
【0053】
端末10は、PReqをブロードキャストによって送信することに応じて、端末10の周囲に存在する複数のデバイス(例えば、プリンタ100)から複数のPResを受信する。複数のPResのそれぞれは、当該PResの送信元であるデバイスのMACアドレスを含む。S20では、端末10は、プリンタ100から、S5で取得された対象MACアドレスに一致するMACアドレス(即ち、対象MACアドレス)を含むPResを受信したのか否かを判断する。端末10は、プリンタ100から対象MACアドレスを含むPResを受信する場合に、S20でYESと判断して、S25に進む。一方、端末10は、対象MACアドレスを含むPResを所定時間内に受信しない場合に、S20でNOと判断して、
図4の処理を終了する。プリンタ100から対象MACアドレスを受信できない状況とは、例えば、プリンタ100において対象MACアドレスが割り当てられているI/Fが通信を実行不可能な状態(例えば、通電されていない状態)であることが想定される。端末10は、プリンタ100から対象MACアドレスを含むPResを受信しない場合、即ち、プリンタ100において対象MACアドレスが割り当てられているI/Fが通信を実行不可能な状態である場合に、S25以降の処理を実行しない。これにより、端末10の処理負荷を軽減できる。
【0054】
S25では、端末10は、受信済みのPResがP2P情報を含むのか否かを判断する。端末10は、受信済みのPResがP2P情報を含む場合(S25でYES)に、当該PResの送信元のデバイス(即ち、プリンタ100)がWFD方式をサポートしていると判断して、プリンタ100が端末10とのWFD接続を確立すべきと判断して、S35において、端末10とプリンタ100との間にWFD接続を確立させるためのWFD処理(
図6参照)を実行する。一方、端末10は、受信済みのPResがP2P情報を含まない場合(S25でNO)に、当該PResの送信元のデバイスがWFD方式をサポートしていないと判断して、プリンタ100がAP6との通常Wi-Fi接続を確立すべきと判断して、S30において、プリンタ100とAP6との間に通常Wi-Fi接続を確立させるための通常Wi-Fi処理(
図5参照)を実行する。S30又はS35の処理が終了すると、
図4の処理が終了する。
【0055】
(通常Wi-Fi処理;
図5)
続いて、
図5を参照して、
図2のS30の通常Wi-Fi処理において実行される処理の詳細を説明する。S100では、端末10は、端末用COがメモリ34に記憶されているのか否かを判断する。ここで、端末10がDPP方式に従ってAP6との通常Wi-Fi接続を確立している場合には、AP6とのNA(
図2のT6参照)において生成された第1の端末用COがメモリ34に記憶されている。即ち、端末用COがメモリ34に記憶されていることは、端末10がAP6との間でDPP方式に従った通信を実行済みであることを意味する。端末10は、端末用COがメモリ34に記憶されていると判断する場合(S100でYES)、即ち、端末10とAP6との間でDPP方式に従った通信が実行済みである場合に、S105に進む。一方、端末10は、端末用COがメモリ34に記憶されていないと判断する場合(S100でNO)、即ち、端末10とAP6との間でDPP方式に従った通信が実行済みでない場合に、S103に進む。
【0056】
S103では、端末10は、端末10とAP6との間でDPP方式に従った通信を実行させるべきことをユーザに通知するための通知画面を表示部14に表示させる。端末10とAP6との間でDPP方式に従った通信が実行されていない状況では、AP6がAP用COを記憶していない。この場合、プリンタ100とAP6との間でDPP方式に従ったNA(
図2のT18)を実行することができない。このような状況において、通知画面が端末10に表示されるので、ユーザは、端末10とAP6との間でDPP方式に従った通信を実行させるべきことを知ることができ、端末10とAP6との間でDPP方式に従った通信を実行させることができる。
【0057】
S105では、端末10は、プリンタ100とAP6との間に通常Wi-Fi接続を確立させるための通常Wi-Fi接続処理を実行する。具体的には、端末10は、各種通信(Auth、Config)をプリンタ100と実行し、Configにおいて、プリンタ用COをプリンタ100に送信する。この結果、AP用CO及びプリンタ用COを利用して、プリンタ100及びAPとの間でDPP方式に従ったNA(
図2のT18)が実行され、接続キーがプリンタ100及びAP6の間で共有される。そして、当該接続キーが利用されて、プリンタ100とAP6との間で通常Wi-Fi接続が確立される(
図2のT20)。
【0058】
S110では、端末10は、Wi-FiI/F16を介して、AP6を経由して、印刷データをプリンタ100に送信する(
図2のT30及びT32)。
【0059】
S115では、端末10は、プリンタ100から、Wi-FiI/F16を介して、AP6を経由して、完了通知を受信することを監視する。端末10は、プリンタ100から完了通知を受信する場合(
図2のT41)に、S115でYESと判断して、S120に進む。
【0060】
S120では、端末10は、Wi-FiI/F16を介して、AP6を経由して、切断指示をプリンタ100に送信する(
図2のT42及びT44)。S120の処理が終了すると、
図5の処理が終了する。
【0061】
(WFD処理;
図6)
続いて、
図6を参照して、
図2のS35のWFD処理において実行される処理の詳細を説明する。S200では、端末10は、端末10とプリンタ100との間にWFD接続を確立させるためのWFD接続処理を実行する。具体的には、端末10は、各種通信(G/O Nego、Auth、Config、NA等)をプリンタ100と実行し、プリンタ100とのWFD接続を確立する(
図3のT54~T60)。
【0062】
S205では、端末10は、Wi-FiI/F16を介して、確立済みのWFD接続を利用して、印刷データをプリンタ100に送信する(
図3のT70)。
【0063】
S210では、端末10は、Wi-FiI/F16を介して、プリンタ100から完了通知を受信することを監視する。端末10は、プリンタ100から完了通知を受信する場合(
図3のT80)に、S210でYESと判断して、S220に進む。
【0064】
S220では、端末10は、Wi-FiI/F16を介して、切断要求をプリンタ100に送信し(
図3のT82)、プリンタ100とのWFD接続を切断する(
図3のT84)。S220の処理が終了すると、
図6の処理が終了する。
【0065】
(ケースAの処理;
図7~
図14)
続いて、
図7~
図14を参照して、
図2のケースAのT2~T8及びT12~T18において実行される各処理の詳細を説明する。まず、
図7を参照して、
図2のT2において端末10とAP6との間で実行されるBSの処理を説明する。
図7の初期状態では、AP6は、AP6の公開鍵APK1及び秘密鍵ask1を予め記憶している。また、AP6の公開鍵APK1と、AP6のチャネルリストL1と、AP6のMACアドレス「macap」と、をコード化することによって得られるQRコードが、AP6の筐体に貼り付けられている。チャネルリストL1は、Auth(
図2のT4参照)で利用されるべき複数個の通信チャネル(即ちAP6が利用可能な複数個の通信チャネル)のリストである。
【0066】
端末10は、T100において、ユーザからアプリ38の起動操作を受け付けることに応じて、アプリ38を起動する。端末10によって実行される以降の各処理は、アプリ38によって実現される。次いで、T101では、端末10は、QRコードを利用して無線接続を確立するための接続処理を実行するのか否かをユーザに確認するための確認画面を表示部14に表示する。確認画面は、接続処理を実行することを示すYESボタンと、接続処理を実行しないことを示すNOボタンと、を含む。
【0067】
端末10は、T102において、確認画面内のYESボタンがユーザによって選択されることに応じて、カメラ15を起動し、T103において、カメラ15を利用して、AP6の筐体に貼り付けられているQRコードを撮影する。そして、端末10は、T104において、撮影済みのQRコードをデコードして、公開鍵APK1とチャネルリストL1とMACアドレス「macap」とを取得する。T104の処理が終了すると、
図7の処理が終了する。
【0068】
(AP6とのAuth;
図8)
続いて、
図8を参照して、
図2のT4において端末10とAP6との間で実行されるAuthの処理を説明する。
【0069】
T200では、端末10は、端末10の公開鍵TPK1及び秘密鍵tsk1を生成する。次いで、端末10は、T201において、ECDH(Elliptic curve Diffie-Hellman key exchangeの略)に従って、生成済みの秘密鍵tsk1と、
図7のT104で取得されたAP6の公開鍵APK1と、を用いて、共有鍵SK1を生成する。そして、端末10は、T202において、生成済みの共有鍵SK1を用いてランダム値RV1を暗号化して、暗号化データED1を生成する。
【0070】
T210では、端末10は、Wi-FiI/F16を介して、
図7のT104で取得されたMACアドレス「macap」を送信先として、DPP Authentication Request(以下では、単に「AReq」と記載する)をAP6に送信する。AReqは、認証の実行をAP6に要求する信号であり、T200で生成された端末10の公開鍵TPK1と、T202で生成された暗号化データED1と、端末10のcapabilityと、を含む。ここで、端末10は、
図7のT104で取得されたチャネルリストL1内の複数個の通信チャネルを順次利用して、AReqをAP6に送信することを繰り返す。
【0071】
capabilityは、DPP方式をサポートしている機器において予め指定されている情報であり、DPP方式のConfiguratorのみとして動作可能であることを示す値と、DPP方式のEnrolleeのみとして動作可能であることを示す値と、Configurator及びEnrolleeのどちらとしても動作可能であることを示す値と、のいずれか1個の値を含む。Configuratorは、Config(例えば
図2のT6)において、NA(例えば
図2のT8)で利用されるCOをEnrolleeに送信するデバイスを意味する。一方、Enrolleeは、Configにおいて、ConfiguratorからNAで利用されるCOを受信するデバイスを意味する。上記のように、本実施例では、端末10がAP用CO又はプリンタ用COを生成してAP6又はプリンタ100に送信する。従って、端末10のcapabilityは、Configuratorのみとして動作可能であることを示す値を含む。
【0072】
AP6は、T210において、端末10からAReqを受信する。上記のように、当該AReqは、AP6のMACアドレス「macap」を送信先として送信される。従って、AP6は、端末10から当該AReqを適切に受信することができる。また、AP6は、チャネルリストL1内の複数個の通信チャネル(即ちAP6が利用可能な複数個の通信チャネル)のうちの1個の通信チャネルが利用されたAReqを受信することを監視する状態になる。上記のように、T210のAReqは、チャネルリストL1内の複数個の通信チャネルを順次利用して送信される。従って、AP6は、端末10から当該AReqを適切に受信することができる。
【0073】
次いで、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以降の処理を実行しない。
【0074】
AP6は、T216において、AP6の新たな公開鍵APK2及び新たな秘密鍵ask2を生成する。なお、変形例では、AP6は、公開鍵APK2及び秘密鍵ask2を予め記憶していてもよい。次いで、AP6は、T217において、ECDHに従って、T210のAReq内の端末10の公開鍵TPK1と、生成済みのAP6の秘密鍵ask2と、を用いて、共有鍵SK2を生成する。そして、AP6は、T218において、生成済みの共有鍵SK2を用いて、取得済みのランダム値RV1及び新たなランダム値RV2を暗号化して、暗号化データED2を生成する。
【0075】
T220では、AP6は、DPP Authentication Response(以下では、単に「ARes」と記載する)を端末10に送信する。当該AResは、T216で生成されたAP6の公開鍵APK2と、T218で生成された暗号化データED2と、AP6のcapabilityと、を含む。当該capabilityは、Enrolleeのみとして動作可能であることを示す値を含む。
【0076】
端末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以降の処理を実行しない。
【0077】
T230では、端末10は、Wi-FiI/F16を介して、ConfirmをAP6に送信する。Confirmは、端末10がConfiguratorとして動作し、かつ、AP6がEnrolleeとして動作することを示す情報を含む。この結果、T232において、Configuratorとして動作することが端末10によって決定され、T234において、Enrolleeとして動作することがAP6によって決定される。T234の処理が終了すると、
図8の処理が終了する。なお、
図8の処理が終了すると、端末10は、公開鍵TPK1及び秘密鍵tsk1を破棄(即ちメモリ34から削除)する。
【0078】
(AP6とのConfig;
図9)
続いて、
図9を参照して、
図2のT6において端末10とAP6との間で実行されるConfigの処理を説明する。
【0079】
T300では、AP6は、DPP Configuration Request(以下では、単に「CReq」と記載する)を端末10に送信する。当該CReqは、AP用COの送信を要求する信号である。
【0080】
端末10は、T300において、AP6から、Wi-FiI/F16を介して、CReqを受信する。この場合、端末10は、T302において、端末10の新たな公開鍵TPK2及び新たな秘密鍵tsk2を生成してメモリ34内に記憶する。次いで、端末10は、T304において、生成済みの秘密鍵tsk2を利用して、AP用COを生成する。具体的には、端末10は、以下の各処理を実行する。
【0081】
端末10は、まず、端末10の公開鍵TPK2をハッシュ化することによって、ハッシュ値HV1を生成する。また、端末10は、グループID「Gap」を生成する。グループID「Gap」は、端末10とAP6との間の通常Wi-Fi接続が確立されることによって形成される無線ネットワークを識別する情報である。なお、変形例では、ユーザによって指定された文字列がグループIDとして利用されてもよい。また、端末10は、ハッシュ値HV1と、グループID「Gap」と、
図8のT220のARes内のAP6の公開鍵APK2と、の組み合わせをハッシュ化することによって、第1の値を生成する。そして、端末10は、ECDSA(Elliptic Curve Digital Signature Algorithmの略)に従って、端末10の秘密鍵tsk2を利用して、生成済みの第1の値を暗号化することによって、電子署名DSapを生成する。この結果、端末10は、ハッシュ値HV1と、グループID「Gap」と、AP6の公開鍵APK2と、電子署名DSapと、を含むAP用Signed-Connector(以下では、Signed-Connectorのことを単に「SC」と記載する)を生成することができる。そして、端末10は、AP用SCと、端末10の公開鍵TPK2と、を含むAP用COを生成する。
【0082】
T310では、端末10は、Wi-FiI/F16を介して、AP用COを含むDPP Configuration Response(以下では、単に「CRes」と記載する)をAP6に送信する。
【0083】
AP6は、T310において、端末10からCResを受信する。この場合、AP6は、T312において、当該CRes内のAP用COを記憶する。T312の処理が終了すると、
図9の処理が終了する。
【0084】
(AP6とのNA;
図10)
続いて、
図10を参照して、
図2のT8において端末10とAP6との間で実行されるNAの処理を説明する。
【0085】
T400では、端末10は、端末10の新たな公開鍵TPK3及び秘密鍵tsk3を生成する。次いで、T402において、端末10は、
図9のT302でメモリ34に記憶された端末10の秘密鍵tsk2を利用して、第1の端末用COを生成する。具体的には、端末10は、以下の各処理を実行する。
【0086】
端末10は、まず、端末10の公開鍵TPK2をハッシュ化することによって、ハッシュ値HV1を生成する。また、端末10は、ハッシュ値HV1と、グループID「Gap」と、T400で生成された端末10の公開鍵TPK3と、の組み合わせをハッシュ化することによって、第2の値を生成する。そして、端末10は、ECDSAに従って、端末10の秘密鍵tsk2を利用して、生成済みの第2の値を暗号化することによって、電子署名DSte1を生成する。この結果、端末10は、ハッシュ値HV1と、グループID「Gap」と、端末10の公開鍵TPK3と、電子署名DSte1と、を含む端末用SCを生成することができる。端末用SCに含まれるハッシュ値HV1及びグループID「Gap」は、それぞれ、AP用SCに含まれるハッシュ値HV1及びグループID「Gap」と同じである。端末用SCに含まれる公開鍵TPK3及び電子署名DSte1は、それぞれ、AP用SCに含まれる公開鍵APK2及び電子署名DSapとは異なる。そして、端末10は、端末用SCと、
図9のT302でメモリ34に記憶された端末10の公開鍵TPK2と、を含む第1の端末用COを生成して、第1の端末用COをメモリ34に記憶する。
【0087】
T410では、端末10は、Wi-FiI/F16を介して、端末用SCを含むDPP Peer Discovery Request(以下では、単に「PDReq」と記載する)をAP6に送信する。当該PDReqは、認証の実行と、AP用SCの送信と、をAP6に要求する信号である。
【0088】
AP6は、T410において、端末10からPDReqを受信することに応じて、PDReqの送信元(即ち端末10)、及び、PDReq内の各情報(即ち、ハッシュ値HV1、「Gap」、及び、公開鍵TPK3)を認証するための処理を実行する。具体的には、AP6は、T412において、まず、端末用SC内のハッシュ値HV1及びグループID「Gap」が、それぞれ、AP用SC内のハッシュ値HV1及びグループID「Gap」に一致するのか否かに関する第1のAP判断処理を実行する。
図10のケースでは、AP6は、第1のAP判断処理で「一致する」と判断するので、PDReqの送信元(即ち端末10)の認証が成功したと判断する。なお、第1のAP判断処理で「一致する」と判断することは、端末用SC及びAP用SCが同じ装置(即ち端末10)によって生成されたことを意味する。従って、AP6は、端末用SCの生成元(即ち端末10)の認証が成功したとも判断する。さらに、AP6は、AP用COに含まれる端末10の公開鍵TPK2を用いて、端末用SC内の電子署名DSte1を復号する。
図10のケースでは、電子署名DSte1の復号が成功するので、AP6は、電子署名DSte1を復号することによって得られた第2の値と、端末用SC内の各情報(即ち、ハッシュ値HV1、「Gap」、及び、公開鍵TPK3)をハッシュ化することによって得られる値と、が一致するのか否かに関する第2のAP判断処理を実行する。
図10のケースでは、AP6は、第2のAP判断処理で「一致する」と判断するので、PDReq内の各情報の認証が成功したと判断し、T414以降の処理を実行する。なお、第2のAP判断処理で「一致する」と判断することは、第1の端末用COが端末10に記憶された後に、端末用SC内の各情報が第三者によって改ざんされていないことを意味する。なお、後述の電子署名を利用した認証も、第三者によって情報が改ざんされていないことを確認するための処理である。一方、第1のAP判断処理で「一致しない」と判断される場合、電子署名DSte1の復号が失敗する場合、又は、第2のAP判断処理で「一致しない」と判断される場合には、AP6は、認証が失敗したと判断し、T414以降の処理を実行しない。
【0089】
次いで、AP6は、T414において、ECDHに従って、AP用COに含まれる端末10の公開鍵TPK2と、AP6の秘密鍵ask2と、を用いて、接続キー(即ち共有鍵)CK1を生成する。
【0090】
T420では、AP6は、AP用SCを含むDPP Peer Discovery Response(以下では、単に「PDRes」と記載する)を端末10に送信する。
【0091】
端末10は、T420において、Wi-FiI/F16を介して、AP6からPDResを受信することに応じて、PDResの送信元(即ちAP6)、及び、PDRes内の各情報(即ち、ハッシュ値HV1、「Gap」、及び、公開鍵APK2)を認証するための処理を実行する。具体的には、端末10は、T422において、まず、AP用SC内のハッシュ値HV1及びグループID「Gap」が、それぞれ、端末用SC内のハッシュ値HV1及びグループID「Gap」に一致するのか否かに関する第1のTE判断処理を実行する。
図10のケースでは、端末10は、第1のTE判断処理で「一致する」と判断するので、PDResの送信元(即ちAP6)の認証が成功したと判断する。なお、第1のTE判断処理で「一致する」と判断することは、端末用SC及びAP用SCが同じ装置(即ち端末10)によって生成されたことを意味する。従って、端末10は、端末用SCの生成元(即ち端末10)の認証が成功したとも判断する。さらに、端末10は、第1の端末用COに含まれる端末10の公開鍵TPK2を用いて、AP用SC内の電子署名DSapを復号する。
図10のケースでは、電子署名DSapの復号が成功するので、端末10は、電子署名DSapを復号することによって得られた第1の値と、AP用SC内の各情報(即ち、ハッシュ値HV1、「Gap」、及び、公開鍵APK2)をハッシュ化することによって得られる値と、が一致するのか否かに関する第2のTE判断処理を実行する。
図10のケースでは、端末10は、第2のTE判断処理で「一致する」と判断するので、PDRes内の各情報の認証が成功したと判断し、T424以降の処理を実行する。一方、第1のTE判断処理で「一致しない」と判断される場合、電子署名DSapの復号が失敗する場合、又は、第2のTE判断処理で「一致しない」と判断される場合には、端末10は、認証が失敗したと判断し、T424以降の処理を実行しない。
【0092】
端末10は、T424において、ECDHに従って、端末10の秘密鍵tsk2と、AP用SC内のAP6の公開鍵APK2と、を用いて、接続キーCK1を生成する。ここで、T414でAP6によって生成される接続キーCK1と、T424で端末10によって生成される接続キーCK1と、は同じである。これにより、Wi-Fi接続を確立するための接続キーCK1が端末10及びAP6の間で共有される。T424が終了すると、
図10の処理が終了する。
【0093】
上述したように、接続キーCK1が端末10及びAP6の間で共有された後に、
図2のT10において、端末10及びAP6は、接続キーCK1を利用して、4way-handshakeの通信を実行する。この結果、端末10とAP6との間に通常Wi-Fi接続が確立される。
【0094】
(プリンタ100とのBS及びPDis;
図11)
続いて、
図11を参照して、
図2のT12及びT13において端末10とプリンタ100との間で実行されるBS及びPDisの処理を説明する。
図11の初期状態では、端末10は、端末10の公開鍵TPK2及び秘密鍵tsk2(
図9のT302参照)と、端末10の公開鍵TPK3及び秘密鍵tsk3(
図10のT400参照)と、第1の端末用CO(T402参照)と、をメモリ34内に記憶している。また、プリンタ100は、プリンタ100の公開鍵PPK1及び秘密鍵psk1と、公開鍵PPK2及び秘密鍵psk2と、を予め記憶している。公開鍵PPK1及び秘密鍵psk1は、通常Wi-Fi接続を確立するための公開鍵及び秘密鍵である。公開鍵PPK2及び秘密鍵psk2は、WFD接続を確立するための公開鍵及び秘密鍵である。
【0095】
プリンタ100は、T500において、プリンタ100に無線接続を確立させるための接続操作がユーザによって実行されることに応じて、T502において、プリンタ100が接続すべき接続対象のデバイスを選択するための選択画面を表示する。選択画面は、プリンタ100がAP6との通常Wi-Fi接続を確立すべきことを示す「APと接続」ボタンと、プリンタ100が端末10とのWFD接続を確立すべきことを示す「端末と接続」ボタンと、を含む。
【0096】
プリンタ100は、T510において、選択画面内の「APと接続」ボタンがユーザによって選択されることに応じて、T512において、通常Wi-Fi接続を確立するための第1のQRコードを表示する。第1のQRコードは、プリンタ100に予め記憶されている公開鍵PPK1と、プリンタ100に予め記憶されているチャネルリストL2と、通常Wi-Fi接続を確立するためのMACアドレス「macpr1」と、がコード化されることによって得られるコード画像である。第1のQRコードは、T512においてプリンタ100によって生成されてもよいし、プリンタ100の出荷段階からプリンタ100のメモリ(図示省略)に予め記憶されていてもよい。
【0097】
T520~T522は、
図7のT100~T102と同様である。端末10は、T523において、カメラ15を利用して、プリンタ100に表示される第1のQRコードを撮影し、T524において、撮影済みの第1のQRコードをデコードして、公開鍵PPK1とチャネルリストL2とMACアドレス「macpr1」とを取得する(
図4のS5)。そして、T530では、端末10は、Wi-FiI/F16を介して、PReqをブロードキャストによって送信する(S10)。
【0098】
プリンタ100は、T530において、端末10から、Wi-FiI/F116を介して、PReqを受信することに応じて、T532において、MACアドレス「macpr1」を含むが、P2P情報を含まないPResを端末10に送信し、T533において、MACアドレス「macpr2」を含むと共に、P2P情報を含むPResを端末10に送信する。
【0099】
端末10は、T532及びT533において、プリンタ100から、Wi-FiI/F16を介して、2個のPResを受信する。本ケースでは、端末10は、T532において、T524で取得済みのMACアドレス「macpr1」に一致するMACアドレス「macpr1」を含むPResを受信したと判断する(
図4のS20でYES)。次いで、端末10は、当該PResがP2P情報を含まないと判断し(S25でNO)、通常Wi-Fi処理(S30)を実行することを決定する。そして、プリンタ100は、メモリ34に第1の端末用COが記憶されていると判断する(
図3のS100でYES)。T533の処理が終了すると、
図11の処理が終了する。
【0100】
(プリンタ100とのAuth;
図12)
続いて、
図12を参照して、
図2のT14において端末10とプリンタ100との間で実行されるAuthの処理を説明する。
【0101】
端末10は、T600において、端末10の新しい公開鍵TPK4及び秘密鍵tsk4を生成し、T601において、ECDHに従って、生成済みの秘密鍵tsk4と、
図11のT524で取得されたプリンタ100の公開鍵PPK1と、を用いて、共有鍵SK3を生成する。そして、端末10は、T602おいて、生成済みの共有鍵SK3を用いてランダム値RV3を暗号化して、暗号化データED3を生成する。
【0102】
T610では、端末10は、Wi-FiI/F16を介して、
図11のT524で取得されたMACアドレス「macpr1」を送信先として、AReqをプリンタ100に送信する。ここで、端末10は、T524で取得されたチャネルリストL2内の複数個の通信チャネルを順次利用して、AReqをプリンタ100に送信することを繰り返す。当該AReqは、T600で生成された端末10の公開鍵TPK4と、T602で生成された暗号化データED3と、端末10のcapabilityと、を含む。当該capabilityは、Configuratorのみとして動作可能であることを示す値を含む。
【0103】
プリンタ100は、T610において、端末10から、Wi-FiI/F116を介して、AReqを受信する。当該AReqがプリンタ100のMACアドレス「macpr1」を送信先として送信されるので、プリンタ100は、当該AReqを適切に受信することができる。また、当該AReqがチャネルリストL2内の複数個の通信チャネル(即ちプリンタ100が利用可能な複数個の通信チャネル)を順次利用して送信されるので、プリンタ100は、当該AReqを適切に受信することができる。
【0104】
次いで、プリンタ100は、AReqの送信元(即ち端末10)を認証するためのT612及びT614の処理を実行する。T612及びT614は、利用されるデータ(鍵、暗号化データ等)が異なる点を除くと、
図8のT212及びT214と同様である。即ち、プリンタ100は、T612において、公開鍵TPK4と秘密鍵psk1とを用いて共有鍵SK3を生成し、T614において、共有鍵SK3を用いてAReq内の暗号化データED3を復号する。この場合、プリンタ100は、認証が成功したと判断し、T616以降の処理を実行する。
【0105】
プリンタ100は、T616において、プリンタ100の新たな公開鍵PPK3及び新たな秘密鍵psk3を生成する。なお、変形例では、プリンタ100は、公開鍵PPK3及び秘密鍵psk3を予め記憶していてもよい。続いて実行されるT617及びT618は、利用されるデータ(鍵、暗号化データ等)が異なる点を除くと、
図8のT217及びT218と同様である。即ち、プリンタ100は、T617において、公開鍵TPK4と秘密鍵psk3とを用いて共有鍵SK4を生成し、T618において、共有鍵SK4を用いてランダム値RV3,RV4を暗号化して暗号化データED4を生成する。
【0106】
T620では、プリンタ100は、Wi-FiI/F116を介して、AResを端末10に送信する。当該AResは、T616で生成されたプリンタ100の公開鍵PPK3と、T618で生成された暗号化データED4と、プリンタ100のcapabilityと、を含む。当該capabilityは、Enrolleeのみとして動作可能であることを示す値を含む。
【0107】
T622~T634は、通信対象がプリンタ100である点、公開鍵PPK3、暗号化データED4、秘密鍵tsk4、共有鍵SK4、及び、ランダム値RV3,RV4が端末10によって利用される点を除いて、
図8のT222~T234と同様である。この結果、T632において、Configuratorとして動作することが端末10によって決定され、T634において、Enrolleeとして動作することがプリンタ100によって決定される。T634の処理が終了すると、
図11の処理が終了する。なお、
図8の処理が終了すると、端末10は公開鍵TPK4及び秘密鍵tsk4を破棄(即ちメモリ34から削除)する。
【0108】
(プリンタ100とのConfig;
図13)
続いて、
図13を参照して、
図2のT16において端末10とプリンタ100との間で実行されるConfigの処理を説明する。
【0109】
T700では、プリンタ100は、Wi-FiI/F116を介して、CReqを端末10に送信する。当該CReqは、プリンタ用COの送信を要求する信号である。
【0110】
端末10は、T700において、プリンタ100から、Wi-FiI/F16を介して、CReqを受信する。この場合、端末10は、T702において、メモリ34から端末10の公開鍵TPK2及び秘密鍵tsk2を取得する。具体的には、端末10は、メモリ34から、第1の端末用COを取得し、第1の端末用COに含まれる公開鍵TPK2を取得する。そして、端末10は、メモリ34から、取得済みの公開鍵TPK2に対応する秘密鍵tsk2を取得する。
【0111】
T704では、端末10は、第1のプリンタ用COを生成する。T704は、利用されるデータ(鍵等)が異なる点を除くと、
図9のT304と同様である。第1のプリンタ用COは、プリンタ用SCと、T702で取得された公開鍵TPK2と、を含む。プリンタ用SCは、ハッシュ値HV1と、グループID「Gap」と、プリンタ100の公開鍵PPK3と、電子署名DSpr1と、を含む。電子署名DSpr1は、ハッシュ値HV1とグループID「Gap」と公開鍵PPK3との組み合わせをハッシュ化することによって得られる第3の値が、T702で取得された秘密鍵tsk2によって暗号化された情報である。
【0112】
端末10は、
図2のT10において、AP6との通常Wi-Fi接続を確立する場合に、
図7のT104で取得されたAP6のMACアドレス「macap」と、AP6とのWi-Fi接続において利用される通信チャネルを示すチャネル情報と、をメモリ34内に記憶している。T710では、端末10は、Wi-FiI/F16を介して、T704で生成された第1のプリンタ用COと、記憶済みのAP6のMACアドレス「macap」と、記憶済みのチャネル情報と、を含むCResをプリンタ100に送信する。
【0113】
プリンタ100は、T710において、端末10から、Wi-FiI/F116を介して、CResを受信する。この場合、プリンタ100は、T712において、当該CRes内の第1のプリンタ用COとMACアドレス「macap」とチャネル情報とを記憶する。T712の処理が終了すると、
図13の処理が終了する。
【0114】
(プリンタ100及びAP6の間のNA;
図14)
続いて、
図14を参照して、プリンタ100とAP6との間で実行される
図2のT18のNAの処理を説明する。
図14の初期状態では、プリンタ100は、公開鍵PPK1,PPK3と秘密鍵psk1,psk3と第1のプリンタ用COとを記憶している。また、AP6は、公開鍵APK1,APK2と秘密鍵ask1,ask2とAP用COとを記憶している。
【0115】
プリンタ100は、T810において、Wi-FiI/F116を介して、
図13のT712で記憶されたAP6のMACアドレス「macap」を送信先として、T712で記憶されたチャネル情報によって示される通信チャネルを利用して、プリンタ用SCを含むPDReqをAP6に送信する。
【0116】
AP6は、T810において、プリンタ100からPDReqを受信する。上記のように、AP6のMACアドレス「macap」を送信先としてPDReqが送信されるので、AP6は、プリンタ100からPDReqを適切に受信することができる。また、チャネル情報によって示される当該或る通信チャネルを利用してPDReqが送信されるので、AP6は、プリンタ100からPDReqを適切に受信することができる。
【0117】
AP6は、T810において、プリンタ100からPDReqを受信することに応じて、PDReqの送信元(即ちプリンタ100)、及び、PDReq内の各情報(即ち、ハッシュ値HV1、「Gap」、及び、公開鍵PPK3)を認証するためのT812の処理を実行する。T812は、利用されるデータ(鍵等)が異なる点を除くと、
図10のT412と同様である。即ち、AP6は、プリンタ用SC内のハッシュ値HV1及びグループID「Gap」が、それぞれ、AP用SC内のハッシュ値HV1及びグループID「Gap」に一致すると判断する(即ち、PDReqの送信元(即ちプリンタ100)の認証が成功したと判断する)。また、AP6は、AP用COに含まれる端末10の公開鍵TPK2を用いてプリンタ用SC内の電子署名DSpr1を復号し、それによって得られた第3の値と、プリンタ用SC内の各情報(即ち、ハッシュ値HV1、「Gap」、及び、公開鍵PPK3)をハッシュ化することによって得られる値と、が一致すると判断する(即ち、PDReq内の各情報の認証が成功したと判断する)。
【0118】
T814及びT820は、通信対象がプリンタ100である点、プリンタ100の公開鍵PPK3及び接続キーCK2が利用される点を除いて、
図10のT414及びT420と同様である。プリンタ100は、T820において、Wi-FiI/F116を介して、AP6からPDResを受信することに応じて、PDResの送信元(即ちAP6)、及び、PDRes内の各情報(即ち、ハッシュ値HV1、「Gap」、及び、公開鍵APK2)を認証するためのT822の処理を実行する。T822は、実行主体がプリンタ100である点、及び、利用されるデータ(鍵等)が異なる点を除くと、
図10のT422と同様である。即ち、プリンタ100は、AP用SC内のハッシュ値HV1及びグループID「Gap」が、それぞれ、プリンタ用SC内のハッシュ値HV1及びグループID「Gap」に一致すると判断する(即ち、PDResの送信元(即ちAP6)の認証が成功したと判断する)。また、プリンタ100は、第1のプリンタ用COに含まれる端末10の公開鍵TPK2を用いて、AP用SC内の電子署名DSapを復号し、それによって得られた第1の値と、AP用SC内の各情報(即ち、ハッシュ値HV1、「Gap」、及び、公開鍵APK2)をハッシュ化することによって得られる値と、が一致すると判断する(即ち、PDRes内の各情報の認証が成功したと判断する)。
【0119】
プリンタ100は、T824において、ECDHに従って、プリンタ100の秘密鍵psk3と、AP用SC内のAP6の公開鍵APK2と、を用いて、接続キーCK2を生成する。ここで、T814でAP6によって生成される接続キーCK2と、T824でプリンタ100によって生成される接続キーCK2と、は同じである。これにより、通常Wi-Fi接続を確立するための接続キーCK2がプリンタ100及びAP6の間で共有される。T824が終了すると、
図14の処理が終了する。
【0120】
上述したように、接続キーCK2がプリンタ100及びAP6の間で共有された後に、
図2のT20において、プリンタ100及びAP6は、接続キーCK2を利用して、4way-handshakeの通信を実行する。この結果、プリンタ100とAP6との間に通常Wi-Fi接続が確立されるので、
図2のT30~T48の処理を実行することができる。
【0121】
(ケースBの処理;
図15~
図18)
続いて、
図15~
図18を参照して、
図3のケースBのT52~T58において実行される各処理の詳細を説明する。まず、
図15を参照して、
図3のT52~T54において端末10とプリンタ100との間で実行されるBS、PDis、及び、G/O Negoの処理を説明する。
図15の初期状態では、プリンタ100は、プリンタ100の公開鍵PPK1及び秘密鍵psk1と、公開鍵PPK2及び秘密鍵psk2と、を予め記憶している。
【0122】
T900及びT902は、
図11のT500及びT902と同様である。プリンタ100は、T910において、選択画面内の「端末と接続」ボタンがユーザによって選択されることに応じて、T912において、WFD接続を確立するための第2のQRコードを表示する。第2のQRコードは、プリンタ100に予め記憶されている公開鍵PPK2と、プリンタ100に予め記憶されているチャネルリストL2と、WFD接続を確立するためのMACアドレス「macpr2」と、がコード化されることによって得られるコード画像である。第2のQRコードは、T912においてプリンタ100によって生成されてもよいし、プリンタ100の出荷段階からプリンタ100のメモリ(図示省略)に予め記憶されていてもよい。
【0123】
T920~T922は、
図7のT100~T102と同様である。端末10は、T923において、カメラ15を利用して、プリンタ100に表示される第2のQRコードを撮影し、T524において、撮影済みの第2のQRコードをデコードして、公開鍵PPK2とチャネルリストL2とMACアドレス「macpr2」とを取得する(
図4のS5)。T930~T933は、
図11のT530~T533と同様である。
【0124】
本ケースでは、端末10は、T933において、T924で取得済みのMACアドレス「macpr2」に一致するMACアドレス「macpr2」を含むPResを受信したと判断する(
図4のS20でYES)。次いで、端末10は、当該PResがP2P情報を含むと判断し(S25でYES)、WFD処理(S35)を実行することを決定する。
【0125】
次いで、端末10は、プリンタ100とのG/O Negoを実行する。具体的には、端末10は、T940において、Wi-FiI/F16を介して、G/O Negoの実行を要求するG/O Negotiation Requestをプリンタ100に送信し、T942において、プリンタ100からG/O Negotiation Responseを受信する。G/O Negoの結果、端末10がクライアントとして動作し、プリンタ100がG/Oとして動作することが決定され、T944において、端末10がクライアント状態に移行し、T946において、プリンタ100がG/O状態に移行する。T946の処理が終了すると、
図15の処理が終了する。
【0126】
(プリンタ100とのAuth;
図16)
続いて、
図16を参照して、
図3のT55において端末10とプリンタ100との間で実行されるAuthの処理を説明する。
【0127】
T1000では、プリンタ100は、Wi-FiI/F116を介して、DPP Discovery Request(以下では、単に「DReq」と記載する)を端末10に送信する。DReqは、端末10を検索するための信号であり、G/Oとして動作するデバイスからクライアントとして動作するデバイスに送信される信号である。
【0128】
端末10は、T1000において、プリンタ100から、Wi-FiI/F16を介して、DReqを受信する場合に、T1002において、DReqに対する応答であるDPP Discovery Response(以下では、単に「DRes」と記載する)をプリンタ100に送信する。
【0129】
次いで、端末10は、T1004において、端末10の新しい公開鍵TPK5及び秘密鍵tsk5を生成し、T1006において、ECDHに従って、生成済みの秘密鍵tsk6と、
図15のT924で取得されたプリンタ100の公開鍵PPK2と、を用いて、共有鍵SK5を生成する。そして、端末10は、T1008おいて、生成済みの共有鍵SK5を用いてランダム値RV5を暗号化して、暗号化データED5を生成する。
【0130】
T1010では、端末10は、Wi-FiI/F16を介して、
図15のT924で取得されたMACアドレス「macpr2」を送信先として、AReqをプリンタ100に送信する。また、端末10は、T924で取得されたチャネルリストL2内の複数個の通信チャネルを順次利用して、AReqをプリンタ100に送信することを繰り返す。当該AReqは、T1004で生成された端末10の公開鍵TPK5と、T1008で生成された暗号化データED5と、端末10のcapabilityと、を含む。当該capabilityは、Configuratorのみとして動作可能であることを示す値を含む。
【0131】
プリンタ100は、T1010において、端末10から、Wi-FiI/F116を介して、AReqを受信する。当該AReqがプリンタ100のMACアドレス「macpr2」を送信先として送信されるので、プリンタ100は、当該AReqを適切に受信することができる。
【0132】
次いで、プリンタ100は、AReqの送信元(即ち端末10)を認証するためのT1012及びT1014の処理を実行する。T1012及びT1014は、利用されるデータ(鍵、暗号化データ等)が異なる点を除くと、
図8のT212及びT214と同様である。即ち、プリンタ100は、T1012において、公開鍵TPK5と秘密鍵psk2とを用いて共有鍵SK5を生成し、T1014において、共有鍵SK5を用いてAReq内の暗号化データED5を復号する。この場合、プリンタ100は、認証が成功したと判断し、T1016以降の処理を実行する。
【0133】
プリンタ100は、T1016において、プリンタ100の新たな公開鍵PPK4及び新たな秘密鍵psk4を生成する。なお、変形例では、プリンタ100は、公開鍵PPK4及び秘密鍵psk4を予め記憶していてもよい。続いて実行されるT1017及びT1018は、利用されるデータ(鍵、暗号化データ等)が異なる点を除くと、
図8のT217及びT218と同様である。即ち、プリンタ100は、T1017において、公開鍵TPK5と秘密鍵psk4とを用いて共有鍵SK6を生成し、T1018において、共有鍵SK6を用いてランダム値RV5,RV6を暗号化して暗号化データED6を生成する。
【0134】
T1020では、プリンタ100は、Wi-FiI/F116を介して、AResを端末10に送信する。当該AResは、T1016で生成されたプリンタ100の公開鍵PPK4と、T1018で生成された暗号化データED6と、プリンタ100のcapabilityと、を含む。当該capabilityは、Enrolleeのみとして動作可能であることを示す値を含む。
【0135】
T1022~T1034は、通信対象がプリンタ100である点、公開鍵PPK4、暗号化データED6、秘密鍵tsk5、共有鍵SK6、及び、ランダム値RV5,RV6が端末10によって利用される点を除いて、
図8のT222~T234と同様である。この結果、T1032において、Configuratorとして動作することが端末10によって決定され、T1034において、Enrolleeとして動作することがプリンタ100によって決定される。T1034の処理が終了すると、
図11の処理が終了する。なお、
図15の処理が終了すると、端末10は公開鍵TPK5及び秘密鍵tsk5を破棄(即ちメモリ34から削除)する。
【0136】
(プリンタ100とのConfig;
図17)
続いて、
図17を参照して、
図3のT56において端末10とプリンタ100との間で実行されるConfigの処理を説明する。
【0137】
T1100は、
図13のT700と同様である。端末10は、T1102において、端末10の新たな公開鍵TPK6及び秘密鍵tsk6を生成する。
【0138】
T1104では、端末10は、第2のプリンタ用COを生成する。T1104は、利用されるデータ(鍵等)が異なる点を除くと、
図9のT304と同様である。第2のプリンタ用COは、プリンタ用SCと、T1102で生成された公開鍵TPK6と、を含む。当該プリンタ用SCは、ハッシュ値HV2と、グループID「Gwfd」と、プリンタ100の公開鍵PPK4と、電子署名DSpr2と、を含む。ハッシュ値HV2は、端末10の公開鍵TPK6をハッシュ化することによって得られる値である。グループID「Gwfd」は、端末10とプリンタ100との間のWFD接続が確立されることによって形成される無線ネットワークを識別する情報である。電子署名DSpr2は、ハッシュ値HV2とグループID「Gwfd」と公開鍵PPK4との組み合わせをハッシュ化することによって得られる第4の値が、T1102で生成された秘密鍵tsk6によって暗号化された情報である。
【0139】
T1110では、端末10は、Wi-FiI/F16を介して、T1104で生成された第2のプリンタ用COを含むCResをプリンタ100に送信する。
【0140】
プリンタ100は、T1110において、端末10から、Wi-FiI/F116を介して、CResを受信する。この場合、プリンタ100は、T1112において、当該CRes内の第2のプリンタ用COを記憶する。T1112の処理が終了すると、
図17の処理が終了する。
【0141】
(プリンタ100とのNA;
図18)
続いて、
図18を参照して、
図3のT58において端末10とプリンタ100との間で実行されるNAの処理を説明する。
図18の初期状態では、端末10は、公開鍵TPK6及び秘密鍵tsk6をメモリ34に記憶している。また、プリンタ100は、公開鍵PPK2,PPK4と秘密鍵psk2,psk4と第2のプリンタ用COとを記憶している。
【0142】
T1200では、端末10は、端末10の新たな公開鍵TPK7及び秘密鍵tsk7を生成する。次いで、T1202において、端末10は、
図16のT1102でメモリ34に記憶された端末10の秘密鍵tsk6を利用して、第2の端末用COを生成する。T1202は、利用されるデータ(鍵等)が異なる点を除くと、
図10のT402と同様である。第2の端末用COは、端末用SCと、T1102で生成された公開鍵TPK6と、を含む。当該端末用SCは、ハッシュ値HV2と、グループID「Gwfd」と、端末10の公開鍵TPK7と、電子署名DSte2と、を含む。電子署名DSte2は、ハッシュ値HV2とグループID「Gwfd」と公開鍵TPK7との組み合わせをハッシュ化することによって得られる第5の値が、T1102で生成された秘密鍵tsk6によって暗号化された情報である。
【0143】
T1210では、端末10は、Wi-FiI/F16を介して、端末用SCを含むPDReqをプリンタ100に送信する。
【0144】
プリンタ100は、T1210において、端末10からPDReqを受信することに応じて、PDReqの送信元(即ち端末10)、及び、PDReq内の各情報(即ち、ハッシュ値HV2、「Gwfd」、及び、公開鍵TPK7)を認証するためのT1212の処理を実行する。T1212は、利用されるデータ(鍵等)が異なる点を除くと、
図10のT412と同様である。即ち、プリンタ100は、端末用SC内のハッシュ値HV2及びグループID「Gwfd」が、それぞれ、プリンタ用SC内のハッシュ値HV2及びグループID「Gwfd」に一致すると判断する(即ち、PDReqの送信元(即ち端末10)の認証が成功したと判断する)。また、プリンタ100は、第2のプリンタ用COに含まれる端末10の公開鍵TPK6を用いて端末用SC内の電子署名DSte2を復号し、それによって得られた第5の値と、端末用SC内の各情報(即ち、ハッシュ値HV2、「Gwfd」、及び、公開鍵TPK7)をハッシュ化することによって得られる値と、が一致すると判断する(即ち、PDReq内の各情報の認証が成功したと判断する)。
【0145】
T1214及びT1220は、通信対象がプリンタ100である点、端末10の公開鍵TPK6、プリンタ100の公開鍵PPK4、及び、接続キーCK3が利用される点を除いて、
図10のT414及びT420と同様である。端末10は、T1220において、Wi-FiI/F16を介して、プリンタ100からPDResを受信することに応じて、PDResの送信元(即ちプリンタ100)、及び、PDRes内の各情報(即ち、ハッシュ値HV2、「Gwfd」、及び、公開鍵PPK4)を認証するためのT1222の処理を実行する。T1222は、利用されるデータ(鍵等)が異なる点を除くと、
図10のT422と同様である。即ち、端末10は、プリンタ用SC内のハッシュ値HV2及びグループID「Gwfd」が、それぞれ、端末用SC内のハッシュ値HV2及びグループID「Gwfd」に一致すると判断する(即ち、PDResの送信元(即ちプリンタ100)の認証が成功したと判断する)。また、端末10は、第2の端末用COに含まれる端末10の公開鍵TPK6を用いて、プリンタ用SC内の電子署名DSpr2を復号し、それによって得られた第4の値と、プリンタ用SC内の各情報(即ち、ハッシュ値HV2、「Gwfd」、及び、公開鍵PPK4)をハッシュ化することによって得られる値と、が一致すると判断する(即ち、PDRes内の各情報の認証が成功したと判断する)。
【0146】
端末10は、T1224において、ECDHに従って、端末10の秘密鍵tsk6と、プリンタ用SC内のプリンタ100の公開鍵PPK4と、を用いて、接続キーCK3を生成する。ここで、T1214でプリンタ100によって生成される接続キーCK3と、T1224で端末10によって生成される接続キーCK3と、は同じである。これにより、WFD接続を確立するための接続キーCK3が端末10及びプリンタ100の間で共有される。T1224が終了すると、
図18の処理が終了する。
【0147】
上述したように、接続キーCK3が端末10及びプリンタ100の間で共有された後に、
図3のT60において、端末10及びプリンタ100は、接続キーCK3を利用して、WFD接続を確立する。この結果、
図3のT70~T84の処理が実行される。
【0148】
上記のケースA及びケースBで説明したように、端末10は、プリンタ100から、プリンタ100の公開鍵PPK1(又はPPK2)とMACアドレス「macpr1」(又は「macpr2」)とを取得し(
図11のT524又は
図15のT924)、PReqをブロードキャストによって送信して(T530又はT930)、プリンタ100からMACアドレス「macpr1」(又は「macpr2」)を含むPResを受信する(T532及びT533、又は、T932及びT933)。また、端末10は、公開鍵PPK1(又はPPK2)を利用したAReqをプリンタ100に送信し(
図12のT610又は
図16のT1010)、プリンタ100からAResを受信する(T620又はT1020)。端末10は、取得済みのMACアドレス「macpr1」を含むPResがP2P情報を含まない場合(T532)に、プリンタ100がAP6との通常Wi-Fi接続を確立すべきと判断し、プリンタ100がAP6との通常Wi-Fi接続を確立するための第1のプリンタ用COをプリンタ100に送信する(
図13のT710)。この結果、第1のプリンタ用COが利用されて、プリンタ100とAP6との間に通常Wi-Fiを確立することができる(
図2のT20)。一方、端末10は、取得済みのMACアドレス「macpr2」を含むPResがP2P情報を含む場合(T933)に、プリンタ100が端末10とのWFD接続を確立すべきと判断し、プリンタ100が端末10とのWFD接続を確立するための第2のプリンタ用COをプリンタ100に送信し(
図17のT1110)、第2のプリンタ用COを利用して、プリンタ100とのWFD接続を確立することができる(
図3のT60)。従って、プリンタ100とAP6との間に通常Wi-Fi接続を確立させるのか、プリンタ100と端末10との間にWFD接続を確立させるのか、を適切に切り替えることができる。
【0149】
(ケースC;
図19)
続いて、
図19を参照して、端末10において通知画面が表示されるケースCを説明する。
図19の処理状態では、端末10は、端末用COをメモリ34に記憶していない。
【0150】
T1300~T1333は、
図11のT500~T533と同様である。即ち、端末10は、プリンタ100に表示された第1のQRコードを撮影することによって、プリンタ100の公開鍵PPK1とチャネルリストL2とMACアドレス「macpr1」とを取得し、PReqをブロードキャストによって送信して、プリンタ100から、MACアドレス「macpr1」を含むPResと、MACアドレス「macpr2」とP2P情報とを含むPResと、を受信する。
【0151】
本ケースでは、端末10は、T1332において、T1324で取得済みのMACアドレス「macpr1」に一致するMACアドレス「macpr1」を含むPResを受信したと判断する(
図4のS20でYES)。次いで、端末10は、当該PResがP2P情報を含まないと判断し(S25でNO)、通常Wi-Fi処理(S30)を実行することを決定する。しかしながら、端末10のメモリ34に端末用COが記憶されていないので、端末10は、端末10とAP6との間でDPP方式に従った通信が実行されていないと判断して(
図5のS100でNO)、T1340において、通知画面を表示する(S103)。T1340の処理が終了すると、ケースCの処理が終了する。
【0152】
(対応関係)
端末10、プリンタ100、AP6が、それぞれ、「端末装置」、「通信装置」、「外部装置」の一例である。Wi-FiI/F16、CPU32、アプリ38が、それぞれ、「端末装置」の「無線インターフェース」、「端末装置」の「コンピュータ」、「端末装置」のための「コンピュータプログラム」の一例である。プリンタ100の公開鍵PPK1(又はPPK2)、プリンタ100のMACアドレス「macpr1」、プリンタ100のMACアドレス「macpr2」が、それぞれ、「公開鍵」、「第1の識別情報」、「第2の識別情報」の一例である。PReq、PRes、
図12のT610(又は
図16のT1010)のAReq、T620(又はT1020)のAResが、それぞれ、「検索信号」、「検索応答」、「認証要求」、「認証応答」の一例である。第1の
端末用CO、第2のプリンタ用COが、それぞれ、「第1の接続情報」、「第2の接続情報」の一例である。P2P情報が、「所定の情報」の一例である。Wi-FiI/F116が、「通信装置」の「無線インターフェース」の一例である。印刷データが、「対象データ」の一例である。
【0153】
図4のS5の処理、S10の処理、S25の処理、
図12のT610(又はT16のT1010)の処理、T620(又はT1020)の処理
、図17のT1110の処理、
図3のT60の処理が、それぞれ、「取得部」、「検索部」、「判断部」、「認証要求送信部」、「認証応答受信部
」、「接続情報送信部」、
「確立部」によって実行される処理の一例である。
【0154】
以上、本発明の具体例を詳細に説明したが、これらは例示にすぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には以上に例示した具体例を様々に変形、変更したものが含まれる。上記の実施例の変形例を以下に列挙する。
【0155】
(変形例1)端末10は、
図2のT12(又は
図3のT52)において、プリンタ100とのBSを実行する前に、プリンタ100とのPDis(T13又はT53)を実行してもよい。即ち、「検索部」は、通信装置から公開鍵と対象の識別情報とが取得される前に、通信装置を検索してもよい。
【0156】
(変形例2)
図4のS25において、端末10は、P2P情報に代えて、例えば、PResが、プリンタ100が通常Wi-Fi接続を確立すべきであることを示す第1の情報を含むのか、プリンタ100がWFD接続を確立すべきであることを示す第2の情報を含むのか、を判断してもよい。この場合、端末10は、受信済みのPResが第1の情報を含む場合に、S30において、通常Wi-Fi処理を実行し、受信済みのPResが第2の情報を含む場合に、S35において、WFD処理を実行する。本変形例では
、第2の情報が、「所定情報」の一例である。
【0157】
(変形例3)プリンタ100が、通常Wi-Fi接続を確立するためのI/F(以下では、単に「通常Wi-FiI/F」と記載する)と、WFD接続を確立するためのI/F(以下では、単に「WFDI/F」と記載する)と、を含む物理的に2個のI/Fを備えていてもよい。この場合、通常Wi-FiI/Fに、MACアドレス「macpr1」が割り当てられており、WFDI/Fに、MACアドレス「macpr2」が割り当てられていてもよい。即ち、「第1のMACアドレス」と「第2のMACアドレス」とは、通信装置が備える物理的に1個の無線インターフェースに割り当てられていなくてもよい。
【0158】
(変形例4)
図3のケースBにおいて、端末10は、WFD方式とは異なる方式(例えば、通常のWi-Fi方式)に従って、例えば、SoftAPとして動作するプリンタ100と通常Wi-Fi接続を確立してもよい。即ち、「第1の確立部」は、WFD方式とは異なる方式に従って、通信装置との無線接続を確立してもよい。
【0159】
(変形例5)
図7のT101、
図15のT921、及び、
図19のT1321の処理が省略されてもよい。本変形例では、「指示受付部」が省略可能である。
【0160】
(変形例6)通常Wi-Fi接続を確立するためのプリンタ100のMACアドレス「macpr1」が、プリンタ100が通常Wi-Fi接続を確立すべきことを示す文字列(例えば「aaa」)を含んでいてもよく、WFD接続を確立するためのプリンタ100のMACアドレス「macpr2」が、プリンタ100がWFD接続を確立すべきことを示す文字列(例えば「bbb」)を含んでいてもよい。即ち、プリンタ100のWi-FiI/F116に、通常Wi-Fi接続を確立するためのMACアドレスとして「macpr1-aaa」と、WFD接続を確立するためのMACアドレスとして「macpr2-bbb」と、が割り当てられていてもよい。この場合、
図4のS25において、端末10は、受信済みのPRes内の対象MACアドレスが、文字列「bbb」を含むのか否かを判断する。端末10は、対象MACアドレスが文字列「aaa」を含む場合に、S25でNOと判断して、S30において、通常Wi-Fi処理を実行し、対象MACアドレスが文字列「bbb」を含む場合に、S25でYESと判断して、S35において、WFD処理を実行する。本変形例では、文字列「bbb」が、「所定情報」の一例である。
【0161】
(変形例7)端末10が、Wi-FiI/F16とはとは異なる無線インターフェース(例えば、NFC(Near Field Communicationの略)I/F、Bluetooth(登録商標)I/F)を備えていてもよい。なお、当該BluetoothI/Fは、Bluetooth方式バージョン4.0以上に従った通信を実行するための無線インターフェースを含む。この場合、例えば、端末10は、
図11のT524において、プリンタ100から、当該無線インターフェースを介して、公開鍵PPK1とチャネルリストL2とMACアドレス「macpr1」とを受信してもよい。即ち、「取得部」は、無線通信を実行することによって、通信装置から公開鍵と対象の識別情報とを取得してもよい。
【0162】
(変形例8)
図2のT30~T40の処理、及び、
図3のT70~T80の処理が省略されてもよい。本変形例では、「第1のデータ送信部」、「第2のデータ送信部」が省略可能である。
【0163】
(変形例9)
図2のT42~T48、及び、
図3のT82,T84の処理が省略されてもよい。本変形例では、「指示送信部」、「切断部」が省略可能である。
【0164】
(変形例10)
図2のケースAにおいて、プリンタ100とAP6とは異なる親局装置(例えば、SoftAPとして動作するデバイス、G/Oとして動作するデバイス)との間に無線接続が確立されてもよい。即ち、「外部装置」は、AP6に限られず、無線ネットワークの親局として動作するデバイスであればよい。
【0165】
(変形例11)上記の実施例では、選択画面におけるユーザの選択に応じて、プリンタ100が、第1のQRコード又は第2のQRコードを表示したが、変形例では、第1のQRコード及び第2のQRコードの一方がプリンタ100の筐体に貼り付けられていてもよい。本変形例においても、プリンタ100に第1のQRコードが貼り付けられている場合には、ケースAと同様の処理が実行され、プリンタ100に第2のQRコードが貼り付けられている場合には、ケースBと同様の処理が実行されるので、プリンタ100とAP6との間に通常Wi-Fi接続を確立させるのか、プリンタ100と端末10との間にWFD接続を確立させるのか、を適切に切り替えることができる。また、本変形例では、端末10及びプリンタ100の双方において、ユーザが、プリンタ100とAP6との間に通常Wi-Fi接続を確立させるのか、プリンタ100と端末10との間にWFD接続を確立させるのか、を選択することなく、プリンタ100に適切な接続対象との無線接続を確立させることができる。
【0166】
(変形例12)上記の実施例では、プリンタ100のWi-FiI/F116には、通常Wi-Fi接続を確立するためのMACアドレス「macpr1」と、WFD接続を確立するためのMACアドレス「macpr2」と、の2個のMACアドレスが割り当てられていたが、これに限らず、1個のMACアドレス(例えば、「macpr3」)が割り当てられていてもよい。この場合、Wi-FiI/F116は、通常Wi-Fi接続を確立するための第1のモードと、WFD接続を確立するための第2のモードと、の一方で動作可能である。プリンタ100は、
図11のT510において、「APとの接続」ボタンがユーザによって選択されることに応じて、第1のモードに移行して、MACアドレス「macpr1」に代えてMACアドレス「macpr3」を利用して、ケースAの処理を実行する。また、プリンタ100は、
図15のT910において、「端末との接続」ボタンがユーザによって選択されることに応じて、第2のモードに移行して、MACアドレス「macpr2」に代えてMACアドレス「macpr3」を利用して、ケースBの処理を実行する。本変形例では、MACアドレス「macpr3」が、「第1の識別情報」及び「第2の識別情報」の一例である。即ち、「第1の識別情報」と「第2の識別情報」とが同じ情報であってもよい。
【0167】
(変形例13)「通信装置」は、プリンタ100でなくてもよく、スキャナ、多機能機、携帯端末、PC、サーバ等の他のデバイスであってもよい。また、「外部装置」は、AP6でなくてもよく、プリンタ、スキャナ、携帯端末、PC、サーバ等の他のデバイスであってもよい。
【0168】
(変形例14)共有鍵(例えばSK1)を生成するための処理(例えば、
図8のT201)は、ECDHに従った上記の実施例の処理に限らず、ECDHに従った他の処理であってもよい。また、共有鍵を生成するための処理は、ECDHに従った処理に限らず、他の方式(例えば、DH(Diffie-Hellman key exchangeの略)等)に従った処理が実行されてもよい。また、上記の実施例では、電子署名(DSap等)が、ECDSAに従って生成されたが、他の方式(例えば、DSA(Digital Signature Algorithmの略)、RAS(Rivest-Shamir-Adleman cryptosystemの略)等)に従って生成されてもよい。
【0169】
(変形例15)
図11のT512(又は
図15のT912)でプリンタ100に表示される第1(又は第2)のQRコードは、チャネルリストL2がコード化されたものでなくてもよい。即ち、第1のQRコードは、少なくとも公開鍵PPK1(又はPPK2)とMACアドレス「macpr1」(又は「macpr2」)とがコード化されることによって得られるコード画像であればよい。この場合、例えば、プリンタ100は、T512で第1のQRコードを表示することに応じて、プリンタ100が利用可能な全ての無線チャネルのうちの1個の無線チャネルが利用されたAReqを受信することを監視する。また、端末10は、
図11のT610において、端末10が利用可能な全ての無線チャネルを順次利用して、AReqをブロードキャストによって順次送信する。即ち、「QRコード」は、少なくとも「公開鍵」と「対象の識別情報」とがコード化されることによって得られる画像であればよい。
【0170】
(変形例16)上記の実施例では、
図2~
図19の各処理がソフトウェア(即ち各プログラム36,38)によって実現されるが、これらの各処理のうちの少なくとも1つが論理回路等のハードウェアによって実現されてもよい。
【0171】
また、本明細書または図面に説明した技術要素は、単独であるいは各種の組合せによって技術的有用性を発揮するものであり、出願時請求項記載の組合せに限定されるものではない。また、本明細書または図面に例示した技術は複数目的を同時に達成するものであり、そのうちの一つの目的を達成すること自体で技術的有用性を持つものである。
以下の項目は、出願時の特許請求の範囲に記載の要素である。
(項目1)
端末装置のためのコンピュータプログラムであって、
前記端末装置のコンピュータを、以下の各部、即ち、
通信装置から、前記通信装置の公開鍵と、前記通信装置を識別する対象の識別情報と、を取得する取得部であって、前記対象の識別情報は、前記通信装置を識別する第1の識別情報と、前記通信装置を識別する第2の識別情報と、のうちの一方であり、前記第1の識別情報は、前記通信装置が前記端末装置とは異なる外部装置との無線接続を確立するための識別情報であり、前記第2の識別情報は、前記通信装置が前記端末装置との無線接続を確立するための識別情報である、前記取得部と、
前記端末装置の無線インターフェースを介して、前記通信装置を検索する検索部と、
前記対象の識別情報と前記検索の結果とに基づいて、前記通信装置が、前記外部装置との前記無線接続を確立すべきか、前記端末装置との前記無線接続を確立すべきか、を判断する判断部と、
前記通信装置から前記公開鍵と前記対象の識別情報とが取得された後に、前記無線インターフェースを介して、前記公開鍵を利用した認証要求を前記通信装置に送信する認証要求送信部と、
前記認証要求が前記通信装置に送信された後に、前記通信装置から、前記無線インターフェースを介して、前記認証要求に対する応答である認証応答を受信する認証応答受信部と、
前記通信装置が前記外部装置との前記無線接続を確立すべきと判断され、かつ、前記通信装置から前記認証応答が受信される場合に、前記無線インターフェースを介して、第1の接続情報を前記通信装置に送信する第1の接続情報送信部であって、前記第1の接続情報は、前記通信装置が前記外部装置との前記無線接続を確立するための情報である、前記第1の接続情報送信部と、
前記通信装置が前記端末装置との前記無線接続を確立すべきと判断され、かつ、前記通信装置から前記認証応答が受信される場合に、前記無線インターフェースを介して、前記第1の接続情報とは異なる第2の接続情報を前記通信装置に送信する第2の接続情報送信部であって、前記第2の接続情報は、前記通信装置が前記端末装置との前記無線接続を確立するための情報である、前記第2の接続情報送信部と、
前記第2の接続情報が前記通信装置に送信された後に、前記第2の接続情報を利用して、前記無線インターフェースを介して、前記通信装置との前記無線接続を確立する第1の確立部と、
として機能させる、コンピュータプログラム。
(項目2)
前記検索部は、前記通信装置から前記公開鍵と前記対象の識別情報とが取得された後に、前記無線インターフェースを介して、前記通信装置を検索する、項目1に記載のコンピュータプログラム。
(項目3)
前記検索部は、前記無線インターフェースを介して、検索信号を送信し、
前記判断部は、前記通信装置から、前記無線インターフェースを介して、前記対象の識別情報を含む検索応答が受信される場合に、前記通信装置が、前記外部装置との前記無線接続を確立すべきか、前記端末装置との前記無線接続を確立すべきか、を判断し、
前記通信装置から前記対象の識別情報を含む前記検索応答が受信されない場合に、前記判断は実行されない、項目1又は2に記載のコンピュータプログラム。
(項目4)
前記検索部は、前記無線インターフェースを介して、検索信号を送信し、
前記判断部は、
前記通信装置から、前記無線インターフェースを介して、前記対象の識別情報を含む検索応答が受信され、かつ、前記検索応答が所定情報を含まないと判断する場合に、前記通信装置が前記外部装置との前記無線接続を確立すべきと判断し、
前記通信装置から、前記無線インターフェースを介して、前記対象の識別情報を含む前記検索応答が受信され、かつ、前記検索応答が前記所定情報を含むと判断する場合に、前記通信装置が前記端末装置との前記無線接続を確立すべきと判断する、項目1から3のいずれか一項に記載のコンピュータプログラム。
(項目5)
前記検索信号は、Probe Requestである、項目3又は4に記載のコンピュータプログラム。
(項目6)
前記第1の識別情報は、前記通信装置の第1のMACアドレスであり、
前記第2の識別情報は、前記通信装置の第2のMACアドレスである、項目1から5のいずれか一項に記載のコンピュータプログラム。
(項目7)
前記第1のMACアドレスと前記第2のMACアドレスとは、前記通信装置が備える物理的に1個の無線インターフェースに割り当てられている、項目6に記載のコンピュータプログラム。
(項目8)
前記第1の確立部は、前記無線インターフェースを介して、Wi-Fi Direct方式に従って、前記通信装置との前記無線接続を確立する、項目1から7のいずれか一項に記載のコンピュータプログラム。
(項目9)
前記取得部は、前記端末装置のカメラを利用して、前記通信装置に表示されるQRコード(登録商標)であって、前記公開鍵と前記対象の識別情報とがコード化されることによって得られる前記QRコードを撮影することによって、前記通信装置から前記公開鍵と前記対象の識別情報とを取得する、項目1から8のいずれか一項に記載のコンピュータプログラム。
(項目10)
前記コンピュータプログラムは、前記コンピュータを、さらに、
前記通信装置が、前記外部装置との前記無線接続を確立すべきか、前記端末装置との前記無線接続を確立すべきか、を選択するための指示をユーザから受け付けることなく、前記通信装置から前記公開鍵と前記対象の識別情報とを取得するための取得指示を前記ユーザから受け付ける指示受付部として機能させ、
前記取得部は、前記ユーザから前記取得指示が受け付けられる場合に、前記通信装置から前記公開鍵と前記対象の識別情報とを取得する、項目1から9のいずれか一項に記載のコンピュータプログラム。
(項目11)
前記コンピュータプログラムは、前記コンピュータを、さらに、
前記無線インターフェースを介して、前記外部装置との無線接続を確立する第2の確立部と、
前記外部装置との前記無線接続が確立された後であって、前記第1の接続情報が前記通信装置に送信された後に、前記無線インターフェースを介して、前記外部装置を経由して、対象データを前記通信装置に送信する第1のデータ送信部と、
前記通信装置との前記無線接続が確立された後に、前記無線インターフェースを介して、前記外部装置を経由することなく、前記対象データを前記通信装置に送信する第2のデータ送信部と、
として機能させる、項目1から10のいずれか一項に記載のコンピュータプログラム。
(項目12)
前記コンピュータプログラムは、前記コンピュータを、さらに、
前記外部装置を経由して前記対象データが前記通信装置に送信される場合に、前記無線インターフェースを介して、前記外部装置を経由して、切断指示を前記通信装置に送信する指示送信部であって、前記切断指示は、前記通信装置と前記外部装置との間の前記無線接続を切断させるための指示である、前記指示送信部と、
前記外部装置を経由することなく前記対象データが前記通信装置に送信される場合に、前記通信装置との前記無線接続を切断する切断部と、
として機能させる、項目11に記載のコンピュータプログラム。
(項目13)
前記対象データは、印刷対象の画像を表わす印刷データを含み、
前記印刷対象の画像は、前記通信装置の印刷実行部によって用紙に印刷される、項目11又は12に記載のコンピュータプログラム。
(項目14)
前記第2の識別情報は、前記第1の識別情報とは異なる、項目1から12のいずれか一項に記載のコンピュータプログラム。
(項目15)
端末装置であって、
無線インターフェースと、
通信装置から、前記通信装置の公開鍵と、前記通信装置を識別する対象の識別情報と、を取得する取得部であって、前記対象の識別情報は、前記通信装置を識別する第1の識別情報と、前記通信装置を識別する第2の識別情報と、のうちの一方であり、前記第1の識別情報は、前記通信装置が前記端末装置とは異なる外部装置との無線接続を確立するための識別情報であり、前記第2の識別情報は、前記通信装置が前記端末装置との無線接続を確立するための識別情報である、前記取得部と、
前記無線インターフェースを介して、前記通信装置を検索する検索部と、
前記対象の識別情報と前記検索の結果とに基づいて、前記通信装置が、前記外部装置との前記無線接続を確立すべきか、前記端末装置との前記無線接続を確立すべきか、を判断する判断部と、
前記通信装置から前記公開鍵と前記対象の識別情報とが取得された後に、前記無線インターフェースを介して、前記公開鍵を利用した認証要求を前記通信装置に送信する認証要求送信部と、
前記認証要求が前記通信装置に送信された後に、前記通信装置から、前記無線インターフェースを介して、前記認証要求に対する応答である認証応答を受信する認証応答受信部と、
前記通信装置が前記外部装置との前記無線接続を確立すべきと判断され、かつ、前記通信装置から前記認証応答が受信される場合に、前記無線インターフェースを介して、第1の接続情報を前記通信装置に送信する第1の接続情報送信部であって、前記第1の接続情報は、前記通信装置が前記外部装置との前記無線接続を確立するための情報である、前記第1の接続情報送信部と、
前記通信装置が前記端末装置との前記無線接続を確立すべきと判断され、かつ、前記通信装置から前記認証応答が受信される場合に、前記無線インターフェースを介して、前記第1の接続情報とは異なる第2の接続情報を前記通信装置に送信する第2の接続情報送信部であって、前記第2の接続情報は、前記通信装置が前記端末装置との前記無線接続を確立するための情報である、前記第2の接続情報送信部と、
前記第2の接続情報が前記通信装置に送信された後に、前記第2の接続情報を利用して、前記無線インターフェースを介して、前記通信装置との前記無線接続を確立する第1の確立部と、
を備える、端末装置。
【符号の説明】
【0172】
2:通信システム、6:AP、10:端末、12:操作部、14:表示部、15:カメラ、16,116:Wi-FiI/F、30:制御部、32:CPU、34:メモリ、36:OSプログラム、38:接続アプリケーション、100:プリンタ、118:印刷実行部