(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-11-28
(45)【発行日】2023-12-06
(54)【発明の名称】通信装置と通信装置のためのコンピュータプログラム
(51)【国際特許分類】
H04L 9/14 20060101AFI20231129BHJP
H04L 9/32 20060101ALI20231129BHJP
H04W 12/06 20210101ALI20231129BHJP
H04W 12/04 20210101ALI20231129BHJP
H04W 12/77 20210101ALI20231129BHJP
【FI】
H04L9/14
H04L9/32 200B
H04L9/32 200F
H04W12/06
H04W12/04
H04W12/77
(21)【出願番号】P 2022119798
(22)【出願日】2022-07-27
(62)【分割の表示】P 2018097688の分割
【原出願日】2018-05-22
【審査請求日】2022-08-26
(73)【特許権者】
【識別番号】000005267
【氏名又は名称】ブラザー工業株式会社
(74)【代理人】
【識別番号】110000110
【氏名又は名称】弁理士法人 快友国際特許事務所
(72)【発明者】
【氏名】柴田 寛
【審査官】行田 悦資
(56)【参考文献】
【文献】特開2018-046435(JP,A)
【文献】特開2004-118709(JP,A)
【文献】特開2015-061100(JP,A)
【文献】特開2018-037978(JP,A)
【文献】特開2018-026722(JP,A)
【文献】特開2009-260847(JP,A)
【文献】特開2009-229063(JP,A)
【文献】特開2007-316678(JP,A)
【文献】特開2013-186573(JP,A)
【文献】特開2008-068470(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 9/14
H04L 9/32
H04W 12/06
H04W 12/04
H04W 12/77
(57)【特許請求の範囲】
【請求項1】
通信装置であって、
出力部と、
第1の無線インターフェースと、
第1の公開鍵を記憶するメモリであって、前記出力部は、前記第1の公開鍵が前記メモリに記憶された後に所定の指示が前記通信装置に入力される場合に、前記メモリ内の前記第1の公開鍵を用いて得られる第1の情報を出力する、前記メモリと、
前記第1の情報が出力された後に、前記第1の公開鍵を取得した端末装置から、前記第1の無線インターフェースを介して、前記第1の公開鍵が利用された認証要求を受信する認証要求受信部と、
前記端末装置から前記認証要求が受信される場合に、前記第1の無線インターフェースを介して、前記認証要求に対する応答である認証応答を前記端末装置に送信する認証応答送信部と、
前記認証応答が前記端末装置に送信された後に、前記端末装置から、前記第1の無線インターフェースを介して、接続情報を受信する接続情報受信部であって、前記接続情報は、前記通信装置と外部装置との間に前記第1の無線インターフェースを介した無線接続を確立するための情報である、前記接続情報受信部と、
前記端末装置から前記接続情報が受信される場合に、前記接続情報を利用して、前記通信装置と前記外部装置との間に前記第1の無線インターフェースを介した前記無線接続を確立する確立部と、
前記第1の情報が出力された後に所定条件が満たされる場合に、前記第1の公開鍵とは異なる第2の公開鍵を生成して、前記第2の公開鍵を前記メモリに記憶する公開鍵生成部
であって、前記出力部が前記第1の情報の出力を停止した後に前記所定条件が満たされる、前記公開鍵生成部と、を備え、
前記出力部は、さらに、前記第2の公開鍵が前記メモリに記憶された後に前記所定の指示が前記通信装置に再び入力される場合に、前記メモリ内の前記第2の公開鍵を用いて得られる第2の情報を出力する、通信装置。
【請求項2】
前記接続情報が前記端末装置から受信される場合に、前記所定条件が満たされる、請求項1に記載の通信装置。
【請求項3】
前記出力部が前記第1の情報の出力を停止した後で、かつ、前記接続情報を利用した前記無線接続が確立される前に、前記所定条件が満たされる、請求項1又は2に記載の通信装置。
【請求項4】
前記通信装置と前記外部装置との間に前記無線接続が確立される場合に、前記所定条件が満たされる、請求項1
又は2に記載の通信装置。
【請求項5】
前記通信装置は、さらに、
前記通信装置と前記外部装置との間に前記無線接続が確立され、かつ、前記通信装置と前記端末装置とが前記外部装置を経由して通信可能である場合に、前記所定条件が満たされる、請求項
4に記載の通信装置。
【請求項6】
前記出力部は、第2の無線インターフェースであり、
前記第2の無線インターフェースである前記出力部は、
前記所定の指示が前記通信装置に入力される場合に、前記第1の情報を外部に送信し、
前記所定の指示が前記通信装置に再び入力される場合に、前記第2の情報を外部に送信し、
前記通信装置は、さらに、
前記通信装置と前記外部装置との間に前記無線接続が確立される場合に、前記第2の無線インターフェースを介した前記第1の情報の送信を停止する停止部を備える、請求項
4又は
5に記載の通信装置。
【請求項7】
前記出力部は、表示部であり、
前記第1の情報は、前記第1の公開鍵がコード化されることによって得られる第1のコード画像であり、
前記第2の情報は、前記第2の公開鍵がコード化されることによって得られる第2のコード画像であり、
前記通信装置は、さらに、
前記所定の指示が前記通信装置に入力される場合に、前記第1のコード画像である前記第1の情報を前記表示部である前記出力部に表示させる第1の表示制御部と、
前記所定の指示が前記通信装置に再び入力される場合に、前記第2のコード画像である前記第2の情報を前記表示部である前記出力部に表示させる第2の表示制御部と、を備える、請求項1から
5のいずれか一項に記載の通信装置。
【請求項8】
前記通信装置は、さらに、
前記所定の指示が前記通信装置に入力される場合に、前記メモリ内の前記第1の公開鍵を利用して、前記第1のコード画像を生成する第1の画像生成部と、
前記所定の指示が前記通信装置に再び入力される場合に、前記メモリ内の前記第2の公開鍵を利用して、前記第2のコード画像を生成する第2の画像生成部と、を備える、請求項
7に記載の通信装置。
【請求項9】
前記公開鍵生成部は、前記所定の指示が前記通信装置に再び入力されることなく、前記第1の情報が出力された後に前記所定条件が満たされる場合に、前記第2の公開鍵を生成する、請求項1から
8のいずれか一項に記載の通信装置。
【請求項10】
前記所定の指示は、
前記通信装置の操作部に対する所定操作がユーザによって実行されること、及び、
前記端末装置から特定の信号を受信すること、
のうちの少なくとも一方を含む、請求項1から
9のいずれか一項に記載の通信装置。
【請求項11】
前記通信装置は、さらに、
前記認証応答が前記端末装置に送信された後に、前記無線接続を確立するための処理を実行中であることを示す実行中画面を前記通信装置の表示部に表示させる画面表示制御部を備える、請求項1から
10のいずれか一項に記載の通信装置。
【請求項12】
前記公開鍵生成部は、前記通信装置の通信量に関係する情報を利用して、前記第2の公開鍵を生成する、請求項1から
11のいずれか一項に記載の通信装置。
【請求項13】
前記公開鍵生成部は、さらに、前記通信装置の電源が投入される際に、前記第1の公開鍵を生成して、前記第1の公開鍵を前記メモリに記憶させる、請求項1から
12のいずれか一項に記載の通信装置。
【請求項14】
通信装置のためのコンピュータプログラムであって、
前記通信装置は、
出力部と、
第1の無線インターフェースと、
第1の公開鍵を記憶するメモリであって、前記出力部は、前記第1の公開鍵が前記メモリに記憶された後に所定の指示が前記通信装置に入力される場合に、前記メモリ内の前記第1の公開鍵を用いて得られる第1の情報を出力する、前記メモリと、を備え、
前記コンピュータプログラムは、前記通信装置のコンピュータを、
前記第1の情報が出力された後に、前記第1の公開鍵を取得した端末装置から、前記第1の無線インターフェースを介して、前記第1の公開鍵が利用された認証要求を受信する認証要求受信部と、
前記端末装置から前記認証要求が受信される場合に、前記第1の無線インターフェースを介して、前記認証要求に対する応答である認証応答を前記端末装置に送信する認証応答送信部と、
前記認証応答が前記端末装置に送信された後に、前記端末装置から、前記第1の無線インターフェースを介して、接続情報を受信する接続情報受信部であって、前記接続情報は、前記通信装置と外部装置との間に前記第1の無線インターフェースを介した無線接続を確立するための情報である、前記接続情報受信部と、
前記端末装置から前記接続情報が受信される場合に、前記接続情報を利用して、前記通信装置と前記外部装置との間に前記第1の無線インターフェースを介した前記無線接続を確立する確立部と、
前記第1の情報が出力された後に所定条件が満たされる場合に、前記第1の公開鍵とは異なる第2の公開鍵を生成して、前記第2の公開鍵を前記メモリに記憶する公開鍵生成部
であって、前記出力部が前記第1の情報の出力を停止した後に前記所定条件が満たされる、前記公開鍵生成部と、として機能させ、
前記出力部は、さらに、前記第2の公開鍵が前記メモリに記憶された後に前記所定の指示が前記通信装置に再び入力される場合に、前記メモリ内の前記第2の公開鍵を用いて得られる第2の情報を出力する、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本明細書では、外部装置との無線接続を確立可能な通信装置に関する技術を開示する。
【背景技術】
【0002】
特許文献1に記載の技術では、カメラは、ユーザから通信パラメータ設定処理を実行するための指示を受け付ける場合に、通信パラメータ設定処理の認証処理に用いる情報を生成する。そして、カメラは、当該情報からコード情報を生成して表示する。スマートフォンは、カメラのコード情報を撮影して当該情報を取得し、当該情報を利用してカメラに認証要求を送信し、その結果、カメラによって認証処理が実行される。認証処理が成功すると、カメラとスマートフォンとの間でデータ通信が可能となる。
【先行技術文献】
【特許文献】
【0003】
【非特許文献】
【0004】
【文献】「DRAFT Device Provisioning Protocol Technical Specification Version 0.2.11」 Wi-Fi Alliance, 2017年
【発明の概要】
【発明が解決しようとする課題】
【0005】
上記の文献の技術では、ユーザから通信パラメータ設定処理を実行するための指示を受け付けた後に認証処理に用いる情報を生成するので、ユーザは、当該情報が生成されるのを待つ必要がある。このために、ユーザの利便性が損なわれる可能性がある。本明細書では、ユーザの利便性を向上させるための技術を提供する。
【課題を解決するための手段】
【0006】
本明細書によって開示される通信装置は、出力部と、第1の無線インターフェースと、第1の公開鍵を記憶するメモリであって、前記出力部は、前記第1の公開鍵が前記メモリに記憶された後に所定の指示が前記通信装置に入力される場合に、前記メモリ内の前記第1の公開鍵を用いて得られる第1の情報を出力する、前記メモリと、前記第1の情報が出力された後に、前記第1の公開鍵を取得した端末装置から、前記第1の無線インターフェースを介して、前記第1の公開鍵が利用された認証要求を受信する認証要求受信部と、前記端末装置から前記認証要求が受信される場合に、前記第1の無線インターフェースを介して、前記認証要求に対する応答である認証応答を前記端末装置に送信する認証応答送信部と、前記認証応答が前記端末装置に送信された後に、前記端末装置から、前記第1の無線インターフェースを介して、接続情報を受信する接続情報受信部であって、前記接続情報は、前記通信装置と外部装置との間に前記第1の無線インターフェースを介した無線接続を確立するための情報である、前記接続情報受信部と、前記端末装置から前記接続情報が受信される場合に、前記接続情報を利用して、前記通信装置と前記外部装置との間に前記第1の無線インターフェースを介した前記無線接続を確立する確立部と、前記第1の情報が出力された後に所定条件が満たされる場合に、前記第1の公開鍵とは異なる第2の公開鍵を生成して、前記第2の公開鍵を前記メモリに記憶する公開鍵生成部であって、前記出力部が前記第1の情報の出力を停止した後に前記所定条件が満たされる、前記公開鍵生成部と、を備える。前記出力部は、さらに、前記第2の公開鍵が前記メモリに記憶された後に前記所定の指示が前記通信装置に再び入力される場合に、前記メモリ内の前記第2の公開鍵を用いて得られる第2の情報を出力する。
【0007】
上記のように、通信装置は、第1の情報が出力された後に所定の条件が満たされる場合に、第2の公開鍵を生成してメモリに記憶する。そして、通信装置は、第2の公開鍵がメモリに記憶された後に所定の指示が通信装置に再び入力される場合に、メモリ内の第2の公開鍵を用いて得られる第2の情報を出力する。このような構成によれば、所定の指示が通信装置に再び入力された後に第2の公開鍵を生成する構成と比較して、第2の情報を早期に出力することができ、この結果、ユーザの利便性を向上させることができる。
【0008】
上記の通信装置を実現するためのコンピュータプログラム、及び、当該コンピュータプログラムを記憶するコンピュータ可読記録媒体も新規で有用である。また、上記の通信装置によって実行される方法も新規で有用である。
【図面の簡単な説明】
【0009】
【
図2】実施例の概要を説明するための説明図を示す。
【
図3】1回目のBootstrappingの処理のシーケンス図を示す。
【
図4】Authenticationの処理のシーケンス図を示す。
【
図5】Configurationの処理のシーケンス図を示す。
【
図6】Network Accessの処理のシーケンス図を示す。
【
図7】2回目のBootstrappingの処理のシーケンス図を示す。
【
図8】第2実施例においてQRコードが撮影されない場合の1回目のBootstrappingの処理のシーケンス図を示す。
【
図9】第2実施例においてQRコードが撮影される場合の1回目のBootstrappingの処理のシーケンス図を示す。
【
図10】第2実施例においてQRコードが撮影される場合のConfigurationの処理のシーケンス図を示す。
【
図11】第3実施例を説明するための説明図を示す。
【発明を実施するための形態】
【0010】
(通信システム;
図1)
図1に示されるように、通信システム2は、複数個のAP(Access Pointの略)6、8と、複数個の端末10、50、70と、プリンタ100と、を備える。本実施例では、ユーザが端末(例えば端末10)を利用して、プリンタ100とAP(例えばAP6)との間にWi-Fi方式に従った無線接続(以下では「Wi-Fi接続」と記載する)を確立させる状況を想定している。
【0011】
(端末10の構成)
端末10は、携帯電話(例えばスマートフォン)、PDA、タブレットPC等の可搬型の端末装置である。なお、変形例では、端末10は、据置型のPC、ノートPC等であってもよい。端末10は、カメラ15と、Wi-Fiインターフェース16と、を備える。以下では、インターフェースを単に「I/F」と記載する。カメラ15は、物体を撮影するためのデバイスであり、本実施例では、特に、AP(例えばAP6)及びプリンタ100のためのQRコード(登録商標)を撮影するために利用される。また、端末10は、接続アプリケーション40(以下では単に「アプリ40」と記載する)を記憶している。アプリ40は、プリンタ100とAPとの間にWi-Fi接続を確立させるためのプログラムであり、例えば、プリンタ100のベンダによって提供されるインターネット上のサーバから端末10にインストールされる。他の各端末50、70は、端末10と同様の構成を備える。
【0012】
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によって作成された規格書のドラフトである「DRAFT Device Provisioning Protocol Technical Specification Version 0.2.11」に記述されており、端末(例えば端末10)を利用して一対のデバイス(例えばプリンタ100とAP6)の間に容易にWi-Fi接続を確立させるための無線通信方式である。
【0013】
(プリンタ100の構成)
プリンタ100は、印刷機能を実行可能な周辺装置(例えば、端末10の周辺装置)である。プリンタ100は、操作部112と、表示部114と、Wi-FiI/F116と、印刷実行部118と、制御部130と、を備える。各部112~130は、バス線(符号省略)に接続されている。
【0014】
操作部112は、複数のキーを備える。ユーザは、操作部112を操作することによって、様々な指示をプリンタ100に入力することができる。表示部114は、様々な情報を表示するためのディスプレイである。Wi-FiI/F116は、端末10のWi-FiI/F16と同様である。即ち、Wi-FiI/F116は、DPP方式をサポートしている。また、Wi-FiI/F116は、MACアドレス「abc」を有する。印刷実行部118は、インクジェット方式、レーザ方式等の印刷機構を備える。
【0015】
制御部130は、CPU132とメモリ134とを備える。CPU132は、メモリ134に格納されているプログラム136に従って、様々な処理を実行する。メモリ134は、揮発性メモリ、不揮発性メモリ等によって構成される。
【0016】
(本実施例の概要;
図2)
続いて、
図2を参照して、本実施例の概要を説明する。端末10及びプリンタ100がDPP方式をサポートしていることを上記したが、AP6もDPP方式をサポートしている。そして、本実施例では、まず、AP6、端末10、及び、プリンタ100がDPP方式に従った通信を実行することによって、プリンタ100とAP6との間のWi-Fi接続を確立することを実現する。本実施例では、さらに、プリンタ100とAP6との間に確立されたWi-Fi接続が切断された後に、AP8、端末50、及び、プリンタ100がDPP方式に従った通信を実行することによって、プリンタ100とAP8との間のWi-Fi接続を確立することを実現する。以下では、理解の容易化のために、各デバイスのCPU(例えばCPU132等)が実行する動作を、CPUを主体として記載せずに、各デバイス(例えばプリンタ100)を主体として記載する。
【0017】
T2では、端末10は、DPP方式のBootstrapping(以下では、単に「BS」と記載する)をAP6と実行する。当該BSは、AP6に貼り付けられているQRコードが端末10によって撮影されることに応じて、後述のT4のAuthentication(以下では、単に「Auth」と記載する)で利用される情報をAP6から端末10に提供する処理である。
【0018】
T4では、端末10は、T2のBSで取得済みの情報を利用して、DPP方式のAuthをAP6と実行する。当該Authは、端末10及びAP6のそれぞれが通信相手を認証するための処理である。
【0019】
T6では、端末10は、DPP方式のConfiguration(以下では、単に「Config」と記載する)をAP6と実行する。当該Configは、プリンタ100とAP6との間のWi-Fi接続を確立するための情報をAP6に送信する処理である。具体的には、端末10は、当該Configにおいて、プリンタ100とAP6との間にWi-Fi接続を確立させるための第1のConfiguration Object(以下では、Configuration Objectのことを単に「CO」と記載する)を生成して、第1のCOをAP6に送信する。この結果、AP6では、第1のCOが記憶される。
【0020】
次いで、端末10は、T12において、DPP方式のBSをプリンタ100と実行する。当該BSは、プリンタ100に表示されるQRコードが端末10によって撮影されることに応じて、後述のT14のAuthで利用される情報をプリンタ100から端末10に提供する処理である。
【0021】
T14では、端末10は、T12のBSで取得済みの情報を利用して、DPP方式のAuthをプリンタ100と実行する。当該Authは、端末10及びプリンタ100のそれぞれが通信相手を認証するための処理である。
【0022】
T16では、端末10は、DPP方式のConfigをプリンタ100と実行する。当該Configは、プリンタ100とAP6との間のWi-Fi接続を確立するための情報をプリンタ100に送信する処理である。端末10は、当該Configにおいて、プリンタ100とAP6との間にWi-Fi接続を確立させるための第2のCOを生成して、第2のCOをプリンタ100に送信する。この結果、プリンタ100では、第2のCOが記憶される。
【0023】
T20では、プリンタ100及びAP6は、記憶済みの第1及び第2のCOを利用して、DPP方式のNetwork Access(以下では、単に「NA」と記載する)を実行する。NAは、Wi-Fi接続を確立するための接続キーをプリンタ100及びAP6の間で共有するための処理である。
【0024】
T30では、プリンタ100及びAP6は、4way-handshakeの通信を実行する。4way-handshakeの通信の少なくとも一部の過程において、プリンタ100及びAP6は、T20のNAで共有済みの接続キーによって暗号化された暗号情報を通信する。そして、暗号情報の復号が成功する場合に、プリンタ100とAP6との間にWi-Fi接続が確立される。これにより、プリンタ100は、AP6によって形成される無線ネットワークに子局として参加することができ、この結果、AP6を介して、当該無線ネットワークに参加している他のデバイス(例えば端末70)との通信を実行することができる。なお、変形例では、プリンタ100及びAP6は、4way-handshakeの通信に代えて、SAE(Simultaneous Authentication of Equalsの略、通称「Dragonfly」)の通信を実行してもよい。
【0025】
本実施例では、端末70とAP6との間にWi-Fi接続が既に確立されている。このため、プリンタ100がAP6によって形成される無線ネットワークに参加すると、端末70及びプリンタ100の双方が当該無線ネットワークに参加している状態になる。このために、プリンタ100は、T32において、端末70から、AP6を経由して、印刷対象の画像を表わす印刷データを受信することができる。この場合、プリンタ100は、T34において、当該印刷データに従った印刷を実行する。
【0026】
本実施例では、プリンタ100のユーザが、プリンタ100とAP6との間にWi-Fi接続が確立されている状態に代えて、プリンタ100とAP8との間にWi-Fi接続が確立されている状態が構築されることを望む。この場合、プリンタ100とAP6との間のWi-Fi接続が切断された後に、T52~T80の処理が実行されて、プリンタ100とAP8との間にWi-Fi接続が確立される。
【0027】
具体的には、端末50は、T52において、DPP方式のBSをAP8と実行し、T54において、T52のBSで取得済みの情報を利用して、DPP方式のAuthをAP8と実行し、T56において、DPP方式のConfigをAP8と実行する。この結果、AP8では、プリンタ100とAP8との間にWi-Fi接続を確立させるための第3のCOが記憶される。
【0028】
また、端末50は、T62において、DPP方式のBSをプリンタ100と実行し、T64において、T62のBSで取得済みの情報を利用して、DPP方式のAuthをプリンタ100と実行し、T66において、DPP方式のConfigをプリンタ100と実行する。この結果、プリンタ100では、プリンタ100とAP8との間にWi-Fi接続を確立させるための第4のCOが記憶される。
【0029】
プリンタ100及びAP8は、T70において、記憶済みの第3及び第4のCOを利用してDPP方式のNAを実行し、T80において、4way-handshakeの通信を実行する。この結果、プリンタ100とAP8との間にWi-Fi接続が確立される。
【0030】
(各処理の説明;
図3~
図7)
続いて、
図3~
図7を参照して、
図2のT12~T16、及び、T62において実行される各処理の詳細を説明する。なお、T2~T6の処理は、プリンタ100に代えてAP6が利用される点を除いて、T12~T16と同様であり、T52~T56の処理は、プリンタ100に代えてAP8が利用される点を除いて、T12~T16と同様であり、T64及びT66の処理は、端末10に代えて端末50が利用される点を除いて、T14、T16と同様である。このため、これらの処理の詳細な説明は省略する。
【0031】
(1回目のBootstrapping(BS);
図3)
まず、
図3を参照して、
図2のT12においてプリンタ100によって実行される1回目のBSの処理を説明する。
図3の初期状態では、プリンタ100が出荷されてから、プリンタ100の電源が一度も投入されていない。
【0032】
プリンタ100は、T100において、ユーザから電源投入操作を受け付けると、T102において、公開鍵PPK1及び秘密鍵psk1を生成する。具体的には、プリンタ100は、擬似乱数を利用して公開鍵PPK1を生成する。また、プリンタ100は、生成済みの公開鍵PPK1を利用して、公開鍵PPK1と対になる秘密鍵psk1を生成する。以下でも特に説明しない限り、公開鍵及び秘密鍵は上記の手法で生成される。そして、プリンタ100は、公開鍵PPK1及び秘密鍵psk1をメモリ134に記憶する。これにより、後述するQRコードボタンの選択(T120参照)の前に、公開鍵PPK1を予めメモリ134に記憶することができる。この結果、後述するQRコードボタンの選択後に、公開鍵PPK1をコード化することによって得られるQRコードを早期に表示することができる。
【0033】
T105では、プリンタ100は、メニュー画面を表示部114に表示させる。メニュー画面は、換言すればプリンタ100のデフォルト画面であり、プリンタ100に印刷を実行させる印刷ボタンと、プリンタ100の各種設定(例えば印刷設定等)を指定するための設定ボタンと、を含む。
【0034】
T106では、プリンタ100は、メニュー画面内の設定ボタンがユーザによって選択されると、T107において、設定画面を表示部114に表示させる。設定画面は、プリンタ100の印刷設定を変更するための印刷設定ボタンと、QRコードの表示をプリンタ100に実行させるためのQRコードボタンと、を含む。
【0035】
プリンタ100は、T120において、設定画面内のQRコードボタンの選択を受け付けると、T121において、メモリ134内の公開鍵PPK1と、MACアドレス「abc」と、をコード化することによって、QRコードを生成する。別言すれば、QRコードは、公開鍵PPK1とMACアドレス「abc」とを用いて得られるコード画像である。プリンタ100は、T122において、生成済みのQRコードを表示部114に表示させる。
【0036】
例えば、上記のT102で公開鍵PPK1が生成された後であって、QRコードボタンの選択の前に、QRコードを生成してメモリ134に記憶しておく比較例が想定される。この場合、QRコードボタンが選択されるまでQRコードを記憶する領域がメモリ134内に必要である。これに対して、本実施例では、QRコードボタンの選択の後にQRコードが生成されるので、当該領域をメモリ134内に設ける必要がない。なお、変形例では、上記の比較例の構成を採用してもよい。
【0037】
次いで、T124では、プリンタ100は、プリンタ100の動作状態を不可能状態から可能状態に移行させる。不可能状態は、Wi-FiI/F116が、端末10からDPP Authentication Request(以下では、単に「AReq」と記載する)(後述の
図4のT200参照)を受信しても、DPP Authentication Response(以下では、単に「ARes」と記載する)(後述のT210参照)を送信しない状態である。可能状態は、Wi-FiI/F116が、端末10からAReqを受信することに応じて、AResを端末10に送信する状態である。即ち、プリンタ100は、不可能状態から可能状態に移行されることによって、Auth(
図2のT14参照)を実行可能な状態になる。具体的には、本実施例では、不可能状態は、Wi-FiI/F116が、外部から信号を受信しても、当該信号をCPU132に供給しない状態である。また、可能状態は、Wi-FiI/F116が、外部から信号を受信することに応じて、当該信号をCPU132に供給し、当該信号に対する応答を送信する状態である。可能状態は、CPU132が外部から受信した信号を処理する状態であるので、不可能状態と比較して処理負荷が高い。なお、変形例では、不可能状態がWi-FiI/F116に通電されていない状態であり、可能状態がWi-FiI/F116に通電されている状態であってもよい。また、別の変形例では、不可能状態は、Wi-FiI/F116が、外部からAReqを受信しても、AReqが受信されたことを示す通知をCPU132に供給しない状態であり、可能状態は、Wi-FiI/F116が、外部からAReqを受信することに応じて、AReqが受信されたことを示す通知をCPU132に供給する状態であってもよい。
【0038】
次いで、端末10は、T130において、ユーザからアプリ40の起動操作を受け付けると、アプリ40を起動し、さらに、カメラ15を起動する。端末10によって実行される以降の各処理は、アプリ40によって実現される。次いで、端末10は、T132において、カメラ15を利用して、プリンタ100に表示されたQRコード(T122参照)を撮影する。そして、端末10は、T134において、撮影済みのQRコードをデコードして、公開鍵PPK1とMACアドレス「abc」とを取得する。
【0039】
T136では、端末10は、プリンタ100とAP6との間にWi-Fi接続を確立するための接続処理を実行するのか否かをユーザに問い合せる確認画面を表示する。確認画面は、接続処理を実行することを示すYESボタンと、接続処理を実行しないことを示すNOボタンと、を含む。T140では、端末10は、ユーザから接続画面内のYESボタンの選択を受け付ける。T140の処理が終了すると、
図3の処理が終了する。
【0040】
(Authentication(Auth);
図4)
続いて、
図4を参照して、
図2のT14のAuthの処理を説明する。端末10は、
図3のT140において、接続画面内のYESボタンの選択を受け付けると、T141において、端末10の公開鍵TPK1及び秘密鍵tsk1を生成する。次いで、端末10は、T142において、ECDH(Elliptic curve Diffie-Hellman key exchangeの略)に従って、生成済みの秘密鍵tsk1と、
図3のT134で取得されたプリンタ100の公開鍵PPK1と、を用いて、共有鍵SK1を生成する。そして、端末10は、T144において、生成済みの共有鍵SK1を用いてランダム値RV1を暗号化して、暗号化データED1を生成する。
【0041】
T200では、端末10は、Wi-FiI/F16を介して、
図3のT134で取得されたMACアドレス「abc」を送信先として、AReqをプリンタ100に送信する。AReqは、認証の実行をプリンタ100に要求する信号である。当該AReqは、T141で生成された端末10の公開鍵TPK1と、T144で生成された暗号化データED1と、端末10のcapabilityと、を含む。
【0042】
capabilityは、DPP方式をサポートしている機器において予め指定されている情報であり、DPP方式のConfiguratorのみとして動作可能であることを示す値と、DPP方式のEnrolleeのみとして動作可能であることを示す値と、Configurator及びEnrolleeのどちらとしても動作可能であることを示す値と、のいずれか1個の値を含む。なお、Configuratorは、Config(
図2のT16)において、NA(
図2のT20)で利用されるCOをEnrolleeに送信するデバイスを意味する。一方、Enrolleeは、Configにおいて、ConfiguratorからNAで利用されるCOを受信するデバイスを意味する。上記のように、本実施例では、端末10が第1又は第2のCOを生成してAP6又はプリンタ100に送信する。従って、端末10のcapabilityは、Configuratorのみとして動作可能であることを示す値を含む。
【0043】
次いで、プリンタ100は、AReqの送信元(即ち端末10)を認証するための以下の処理を実行する。具体的には、まず、プリンタ100は、T202において、ECDHに従って、当該AReq内の端末10の公開鍵TPK1と、メモリ134内に予め記憶されているプリンタ100の秘密鍵psk1と、を用いて、共有鍵SK1を生成する。ここで、T142で端末10によって生成される共有鍵SK1と、T204でプリンタ100によって生成される共有鍵SK1と、は同じである。従って、プリンタ100は、T204において、生成済みの共有鍵SK1を用いて、当該AReq内の暗号化データED1を適切に復号することができ、この結果、ランダム値RV1を取得することができる。プリンタ100は、暗号化データED1の復号が成功する場合には、当該AReqの送信元がプリンタ100で表示されたQRコードを撮影した端末であると判断し、即ち、認証が成功したと判断し、T206以降の処理を実行する。一方、プリンタ100は、仮に、暗号化データED1の復号が成功しない場合には、当該AReqの送信元がプリンタ100で表示されたQRコードを撮影した端末でないと判断し、即ち、認証が失敗したと判断し、T206以降の処理を実行しない。
【0044】
T206では、プリンタ100は、プリンタ100の新たな公開鍵PPK2及び新たな秘密鍵psk2を生成する。なお、変形例では、公開鍵PPK2及び秘密鍵psk2は、T102の時点で生成されてメモリ134に予め記憶されていてもよい。次いで、プリンタ100は、T207において、ECDHに従って、T200のAReq内の端末10の公開鍵TPK1と、生成済みのプリンタ100の秘密鍵psk2と、を用いて、共有鍵SK2を生成する。そして、プリンタ100は、T208において、生成済みの共有鍵SK2を用いて、取得済みのランダム値RV1及び新たなランダム値RV2を暗号化して、暗号化データED2を生成する。
【0045】
T210では、プリンタ100は、Wi-FiI/F116を介して、AResを端末10に送信する。当該AResは、T206で生成されたプリンタ100の公開鍵PPK2と、T208で生成された暗号化データED2と、プリンタ100のcapabilityと、を含む。当該capabilityは、Enrolleeのみとして動作可能であることを示す値を含む。
【0046】
端末10は、T210において、プリンタ100から、Wi-FiI/F16を介して、AResを受信することに応じて、当該AResの送信元(即ちプリンタ100)を認証するための以下の処理を実行する。具体的には、まず、端末10は、T212において、ECDHに従って、T141で生成された端末10の秘密鍵tsk1と、当該ARes内のプリンタ100の公開鍵PPK2と、を用いて、共有鍵SK2を生成する。ここで、T207でプリンタ100によって生成される共有鍵SK2と、T212で端末10によって生成される共有鍵SK2と、は同じである。従って、端末10は、T214において、生成済みの共有鍵SK2を用いて、当該ARes内の暗号化データED2を適切に復号することができ、この結果、ランダム値RV1及びRV2を取得することができる。端末10は、暗号化データED2の復号が成功する場合には、当該AResの送信元が撮影済みのQRコードを表示したプリンタであると判断し、即ち、認証が成功したと判断し、T220以降の処理を実行する。一方、端末10は、仮に、暗号化データED2の復号が成功しない場合には、当該AResの送信元が撮影済みのQRコードを表示したプリンタでないと判断し、即ち、認証が失敗したと判断し、T220以降の処理を実行しない。
【0047】
T220では、端末10は、Wi-FiI/F16を介して、Confirmをプリンタ100に送信する。Confirmは、端末10がConfiguratorとして動作し、かつ、プリンタ100がEnrolleeとして動作することを示す情報を含む。この結果、T222において、Configuratorとして動作することが端末10によって決定され、T224において、Enrolleeとして動作することがプリンタ100によって決定される。
【0048】
プリンタ100は、T224において、Enrolleeとして動作することを決定すると、T226において、
図3のT122で表示されたQRコードに代えて、Setup画面を表示部114に表示させる。即ち、プリンタ100は、QRコードの表示を停止して、Setup画面の表示を開始する。Setup画面は、後述するConfigの処理(
図5参照)とNAの処理(
図6参照)が実行されている間に表示される画面であり、これら処理を実行中であることを示す。これにより、ユーザは、プリンタ100がWi-Fi接続を確立するための処理を実行中であることを知ることができる。また、QRコードの表示を停止することにより、公開鍵PPK1が他の端末によって取得されることを抑制することができる。T226の処理が終了すると、
図4の処理が終了する。
【0049】
(Configuration(Config);
図5)
続いて、
図5を参照して、
図2のT16のConfigの処理を説明する。T300では、プリンタ100は、Wi-FiI/F116を介して、DPP Configuration Request(以下では、単に「CReq」と記載する)を端末10に送信する。当該CReqは、CO(即ちプリンタ100とAP6との間のWi-Fi接続を確立するための情報)の送信を要求する信号である。
【0050】
端末10は、T300において、Wi-FiI/F16を介して、プリンタ100からCReqを受信すると、T301において、端末10のメモリ(図示省略)から、グループID「Group1」と公開鍵TPK2と秘密鍵tsk2とを取得する。上記のように、端末10は、
図2のT6のConfigをAP6と実行済みであり、この際に、グループID「Group1」と公開鍵TPK2と秘密鍵tsk2とを生成してメモリに記憶する。グループID「Group1」は、プリンタ100とAP6との間のWi-Fi接続が確立されることによって形成される無線ネットワークを識別する情報である。なお、変形例では、ユーザによって指定された文字列がグループIDとして利用されてもよい。即ち、T301では、端末10は、
図2のT6で記憶された各情報を取得する。次いで、端末10は、T302において、第2のCO(
図2のT16参照)を生成する。具体的には、端末10は、以下の各処理を実行する。
【0051】
端末10は、端末10の公開鍵TPK2をハッシュ化することによって、ハッシュ値HVを生成する。また、端末10は、ハッシュ値HVと、グループID「Group1」と、
図4のT210のARes内のプリンタ100の公開鍵PPK2と、の組み合わせをハッシュ化することによって、特定値を生成する。そして、端末10は、ECDSA(Elliptic Curve Digital Signature Algorithmの略)に従って、端末10の秘密鍵tsk2を用いて、生成済みの特定値を暗号化することによって、電子署名DS1を生成する。この結果、端末10は、ハッシュ値HVと、グループID「Group1」と、プリンタ100の公開鍵PPK2と、電子署名DS1と、を含むプリンタ用Signed-Connector(以下では、Signed-Connectorのことを単に「SCont」と記載する)を生成することができる。そして、端末10は、プリンタ用SContと、端末10の公開鍵TPK2と、を含む第2のCOを生成する。
【0052】
T310では、端末10は、Wi-FiI/F16を介して、第2のCOを含むDPP Configuration Response(以下では、単に「CRes」と記載する)をプリンタ100に送信する。
【0053】
プリンタ100は、T310において、Wi-FiI/F116を介して、端末10からCResを受信すると、T312において、当該CRes内の第2のCOをメモリ134に記憶する。
【0054】
また、プリンタ100は、T320において、
図3のT102で生成された公開鍵PPK1及び秘密鍵psk1をメモリ134から削除する。そして、T322では、プリンタ100は、後述する2回目のBootstrapping(
図2のT62、
図7参照)のために、公開鍵PPK1とは異なる公開鍵PPK3と、秘密鍵psk1とは異なる秘密鍵psk3と、を生成する。具体的には、プリンタ100は、プリンタ100の通信量に関係する情報(例えば、Wi-FiI/F116を介して受信されたパケットの総数、Wi-FiI/F116を介して受信された情報の総データサイズ等)を利用して、擬似乱数を生成し、擬似乱数を利用して公開鍵PPK3を生成する。このように、上記の通信量に関係する情報とMACアドレス「abc」とを利用すれば、ユニークな擬似乱数を生成することができ、この結果、今までに生成されていない公開鍵PPK3を適切に生成することができる。なお、変形例では、上記の通信量に関係する情報を利用せずに公開鍵PPK3を生成してもよいし、プリンタ100に関係するその他の情報(例えば、印刷枚数)を利用して公開鍵PPK3を生成してもよい。また、プリンタ100は、生成済みの公開鍵PPK3を利用して、公開鍵PPK3と対になる秘密鍵psk3を生成する。そして、プリンタ100は、公開鍵PPK3と秘密鍵psk3とをメモリ134に記憶する。
【0055】
また、プリンタ100は、T324において、プリンタ100の動作状態を可能状態から不可能状態に移行させる。これにより、プリンタ100において長時間に亘って可能状態が継続することを抑制することができる。即ち、Wi-FiI/F116が外部から受信した信号をCPU132に供給する状態、即ち、CPU132が外部から受信された信号を処理する状態が継続することを抑制できる。これにより、プリンタ100の処理負荷を軽減することができる。T324の処理が終了すると、
図5の処理が終了する。
【0056】
(Network Access(NA);
図6)
続いて、
図6を参照して、プリンタ100とAP6との間で実行される
図2のT20のNAの処理を説明する。上記のように、
図2のT2~T6の処理が端末10及びAP6の間で実行済みである。ただし、AP6は、
図3のT102~T124の処理を実行しない。AP6は、AP6の公開鍵APK1及び秘密鍵ask1を予め記憶している。そして、AP6の公開鍵APK1と、AP6のMACアドレスと、をコード化することによって得られるQRコードが、AP6の筐体に貼り付けられている。端末10が当該QRコードを撮影することによって、端末10及びAP6の間で
図3のT134以降の各処理と同様の各処理が実行される。この結果、AP6は、AP6の公開鍵APK2及び秘密鍵ask2を記憶し(
図4のT206参照)、さらに、端末10から受信される第1のCOを記憶する(
図5のT310参照)。第1のCOは、AP用SContと、端末10の公開鍵TPK2と、を含む。当該公開鍵TPK2は、第2のCOに含まれる公開鍵TPK2と同じである。また、AP用SContは、ハッシュ値HVと、グループID「Group1」と、AP6の公開鍵APK2と、電子署名DS2と、を含む。当該ハッシュ値HV及び当該グループID「Group1」は、それぞれ、第2のCOに含まれるハッシュ値HV及びグループID「Group1」と同じである。電子署名DS2は、ハッシュ値HVとグループID「Group1」と公開鍵APK2との組み合わせをハッシュ化することによって得られる特定値が端末10の秘密鍵tsk2によって暗号化された情報であり、第2のCOに含まれる電子署名DS1とは異なる値である。
【0057】
プリンタ100は、T400において、Wi-FiI/F116を介して、プリンタ用SContを含むDPP Peer Discovery Request(以下では、単に「DReq」と記載する)をAP6に送信する。当該DReqは、認証の実行と、AP用SContの送信と、をAP6に要求する信号である。
【0058】
AP6は、T400において、プリンタ100からDReqを受信すると、DReqの送信元(即ちプリンタ100)、及び、DReq内の各情報(即ち、ハッシュ値HV、「Group1」、及び、公開鍵PPK2)を認証するための処理を実行する。具体的には、AP6は、T402において、まず、受信済みのプリンタ用SCont内のハッシュ値HV及びグループID「Group1」が、それぞれ、記憶済みの第1のCOに含まれるAP用SCont内のハッシュ値HV及びグループID「Group1」に一致するのか否かに関する第1のAP判断処理を実行する。
図6のケースでは、AP6は、第1のAP判断処理で「一致する」と判断するので、DReqの送信元(即ちプリンタ100)の認証が成功したと判断する。なお、受信済みのプリンタ用SCont内のハッシュ値HVと、記憶済みの第1のCOに含まれるAP用SCont内のハッシュ値HVと、が一致するということは、プリンタ用SCont及びAP用SContが、同じデバイス(即ち、端末10)によって生成されたことを意味する。従って、AP6は、受信済みのプリンタ用SContの生成元(即ち、端末10)の認証が成功したとも判断する。さらに、AP6は、記憶済みの第1のCOに含まれる端末10の公開鍵TPK2を用いて、受信済みのプリンタ用SCont内の電子署名DS1を復号する。
図6のケースでは、電子署名DS1の復号が成功するので、AP6は、電子署名DS1を復号することによって得られた特定値と、受信済みのプリンタ用SCont内の各情報(即ち、ハッシュ値HV、「Group1」、及び、公開鍵PPK2)をハッシュ化することによって得られる値と、が一致するのか否かに関する第2のAP判断処理を実行する。
図6のケースでは、AP6は、第2のAP判断処理で「一致する」と判断するので、DReq内の各情報の認証が成功したと判断し、T404以降の処理を実行する。第2のAP判断処理で「一致する」と判断されることは、第2のCOがプリンタ100に記憶された後に、受信済みのプリンタ用SCont内の各情報(即ち、ハッシュ値HV、「Group1」、及び、公開鍵PPK2)が第三者によって改ざんされていないことを意味する。一方、第1のAP判断処理で「一致しない」と判断される場合、電子署名DS1の復号が失敗する場合、又は、第2のAP判断処理で「一致しない」と判断される場合には、AP6は、認証が失敗したと判断し、T404以降の処理を実行しない。
【0059】
次いで、AP6は、T404において、ECDHに従って、取得済みのプリンタ100の公開鍵PPK2と、記憶済みのAP6の秘密鍵ask2と、を用いて、接続キー(即ち共有鍵)CKを生成する。
【0060】
T410では、AP6は、AP用SContを含むDPP Peer Discovery Response(以下では、単に「DRes」と記載する)をプリンタ100に送信する。
【0061】
プリンタ100は、T410において、Wi-FiI/F116を介して、AP6からDResを受信すると、DResの送信元(即ちAP6)、及び、DRes内の各情報(即ち、ハッシュ値HV、「Group1」、及び、公開鍵APK2)を認証するための処理を実行する。具体的には、プリンタ100は、T412において、まず、受信済みのAP用SCont内のハッシュ値HV及びグループID「Group1」が、それぞれ、記憶済みの第2のCOに含まれるプリンタ用SCont内のハッシュ値HV及びグループID「Group1」に一致するのか否かに関する第1のPR判断処理を実行する。
図6のケースでは、プリンタ100は、第1のPR判断処理で「一致する」と判断するので、DResの送信元(即ちAP6)の認証が成功したと判断する。なお、受信済みのAP用SCont内のハッシュ値HVと、記憶済みの第2のCOに含まれるプリンタ用SCont内のハッシュ値HVと、が一致するということは、プリンタ用SCont及びAP用SContが、同じデバイス(即ち、端末10)によって生成されたことを意味する。従って、プリンタ100は、受信済みのAP用SContの生成元(即ち、端末10)の認証が成功したとも判断する。さらに、プリンタ100は、記憶済みの第2のCOに含まれる端末10の公開鍵TPK2を用いて、受信済みのAP用SCont内の電子署名DS2を復号する。
図6のケースでは、電子署名DS2の復号が成功するので、プリンタ100は、電子署名DS2を復号することによって得られた特定値と、受信済みのAP用SCont内の各情報(即ち、ハッシュ値HV、「Group1」、及び、公開鍵APK2)をハッシュ化することによって得られる値と、が一致するのか否かに関する第2のPR判断処理を実行する。
図6のケースでは、プリンタ100は、第2のPR判断処理で「一致する」と判断するので、DRes内の各情報の認証が成功したと判断し、T414以降の処理を実行する。第2のPR判断処理で「一致する」と判断されることは、第1のCOがAP6に記憶された後に、AP用SCont内の各情報(即ち、ハッシュ値HV、「Group1」、及び、公開鍵APK2)が第三者によって改ざんされていないことを意味する。一方、第1のPR判断処理で「一致しない」と判断される場合、電子署名DS2の復号が失敗する場合、又は、第2のPR判断処理で「一致しない」と判断される場合には、プリンタ100は、認証が失敗したと判断し、T414以降の処理を実行しない。
【0062】
プリンタ100は、T414において、ECDHに従って、記憶済みのプリンタ100の秘密鍵psk2と、受信済みのAP用SCont内のAP6の公開鍵APK2と、を用いて、接続キーCKを生成する。ここで、T404でAP6によって生成される接続キーCKと、T414でプリンタ100によって生成される接続キーCKと、は同じである。これにより、Wi-Fi接続を確立するための接続キーCKがプリンタ100及びAP6の間で共有される。T414が終了すると、
図6の処理が終了する。
【0063】
上記のように、接続キーCKがプリンタ100及びAP6の間で共有された後に、
図2のT30において、プリンタ100及びAP6は、接続キーCKを利用して、4way-handshakeの通信を実行する。この結果、プリンタ100とAP6との間にWi-Fi接続が確立される。
【0064】
(2回目のBootstrapping(BS);
図7)
続いて、
図7を参照して、
図2のT62においてプリンタ100によって実行される2回目のBSの処理を説明する。
図7の初期状態では、
図2に示すように、プリンタ100とAP6との間のWi-Fi接続が切断されている。さらに、
図5のT322の処理によって、公開鍵PPK3及び秘密鍵psk3がプリンタ100のメモリ134に予め記憶されている。まず、プリンタ100は、
図3のT105~T120と同様の処理を実行する。プリンタ100は、設定画面内のQRコードボタンがユーザによって選択される場合(
図3のT120参照)に、T521において、メモリ134内の公開鍵PPK3と、MACアドレス「abc」と、をコード化することによって、QRコードを生成する。プリンタ100は、T522において、生成済みのQRコードを表示部114に表示させる。T524は、
図3のT124と同様である。
【0065】
T530、T532は、それぞれ、
図3のT130、T132と同様である。端末50は、T534において、T532で撮影したQRコードをデコードして、公開鍵PPK3とMACアドレス「abc」とを取得する。T536、T540は、それぞれ、
図3のT136、T140と同様である。T540が終了すると、
図7のBSの処理が終了する。
【0066】
図7(即ち
図2のT62)のBSの処理が実行された後に、T64~T80の処理が実行される。この結果、プリンタ100とAP8との間にWi-Fi接続が確立される。
【0067】
(本実施例の効果)
プリンタ100が同じ公開鍵PPK1及び秘密鍵psk1を利用し続けると、プリンタ100の正規のユーザではない第三者によって公開鍵PPK1が取得され得る。この場合、第三者は、プリンタ100を第三者のAPに接続させることができ、プリンタ100を不正に利用することができる。これを避けるために、本実施例では、プリンタ100は、公開鍵PPK1及び秘密鍵psk1を利用したBS及びAuthが終了すると、公開鍵PPK1及び秘密鍵psk1を削除して、新たな公開鍵PPK3及び秘密鍵psk3を生成する。これにより、第三者がプリンタ100を不正に利用することを抑制することができる。
【0068】
ここで、例えば、
図5のT322の処理が実行されずに、
図7のBSにおいて、設定画面内のQRコードボタンがユーザによって選択された後に、公開鍵PPK3及び秘密鍵psk3が生成される比較例が想定される。この場合、ユーザは、設定画面内のQRコードボタンを選択した後に、公開鍵PPK3及び秘密鍵psk3が生成されるのを待つ必要がある。これに対して、本実施例では、プリンタ100は、
図5のConfigにおいて、公開鍵PPK3及び秘密鍵psk3を生成してメモリ134に記憶する。即ち、プリンタ100は、
図7のBSにおいてQRコードボタンがユーザによって再び選択される前に、公開鍵PPK3及び秘密鍵psk3を生成してメモリ134に予め記憶する(
図5のT322)。このために、プリンタ100は、QRコードボタンがユーザによって再び選択される場合に、メモリ134内の公開鍵PPK3を用いて得られるQRコードを表示部114に迅速に表示させることができる(
図7のT522)。この結果、プリンタ100とAP8との間のWi-Fi接続を迅速に確立することができる。本実施例によると、ユーザの利便性を向上させることができる。
【0069】
(対応関係)
プリンタ100、端末10、AP6が、それぞれ、「通信装置」、「端末装置」、「外部装置」の一例である。表示部114、Wi-FiI/F116が、それぞれ、「出力部」、「第1の無線インターフェース」の一例である。
図3のT120においてQRコードボタンを選択することが、「所定の指示」の一例である。
図3の公開鍵PPK1が、「第1の公開鍵」の一例であり、T122のQRコードが、「第1の情報(及び第1のコード画像)」の一例である。
図4のT200のAReq、T210のAResが、それぞれ、「認証要求」、「認証応答」の一例である。
図4のT226のSetup画面が、「実行中画面」の一例である。
図5のT302の第2のCOが、「接続情報」の一例である。
図5のT310において端末10からCResが受信されることが、「所定条件が満たされる場合」の一例である。
図5の公開鍵PPK3が、「第2の公開鍵」の一例であり、
図7のT522のQRコードが、「第2の情報(及び第2のコード画像)」の一例である。
【0070】
図4のT200の処理、T210の処理、
図5のT310の処理、
図2のT30の処理、
図5のT322の処理が、それぞれ、「認証要求受信部」、「認証応答送信部」、「接続情報受信部」、「確立部」、「公開鍵生成部」によって実現される処理の一例である。
【0071】
(第2実施例)
本実施例では、プリンタ100は、公開鍵を用いて得られるQRコードを表示するのに代えて(
図3のT122)、QRコードを含むQR画像を印刷する。
【0072】
(各処理の説明;
図8~
図10)
続いて、
図8~
図10を参照して、
図2のT12及びT16において実行される各処理の詳細を説明する。
【0073】
(
図2のT12のBS(撮影されないケース);
図8)
図8を参照して、
図2のT12のBSにおいて、QRコードが撮影されないケースを説明する。
【0074】
T600~T606は、
図3のT100~T106と同様である。T607で表示される設定画面は、QRコードを表示するためのボタンに代えて、QR画像を印刷するためのコード印刷ボタンを含む。
【0075】
プリンタ100は、T620において、設定画面内のコード印刷ボタンの選択を受け付けると、T621において、メモリ134内の公開鍵PPK1と、MACアドレス「abc」と、をコード化することによって、接続用QRコードを生成する。そして、プリンタ100は、T622において、接続用QRコードと、アプリダウンロード用QRコードと、印刷日時と、有効期間と、を含むQR画像の印刷を印刷実行部118に実行させる。
【0076】
アプリダウンロード用QRコードは、アプリ40のインターネット上の位置、即ち、アプリ40を記憶しているサーバのURL(Uniform Resource Locatorの略)がコード化されることによって得られるコード画像である。例えば、端末10は、カメラ15を利用して、QR画像内のアプリダウンロード用QRコードを撮影すると、撮影済みのアプリダウンロード用QRコードをデコードして、URLを取得する。そして、端末10は、取得済みのURLを利用してサーバにアクセスして、サーバからアプリ40をインストールする。これにより、ユーザは、アプリ40が端末10にインストールされていない状況でも、アプリ40を端末10にインストールしてプリンタ100とAP6との間にWi-Fi接続を確立させることができる。
【0077】
印刷日時は、QR画像が印刷された日時を示す。有効期間は、公開鍵PPK1を利用可能な期間を示す。有効期間は、例えば、印刷日時から1時間が経過するまでの期間である。接続用QRコードを含む印刷物が第三者によって取得されると、プリンタ100の公開鍵PPK1が第三者によって取得される。本実施例のように公開鍵PPK1の有効期間を設けると、公開鍵PPK1が第三者によって取得されることを抑制することができる。
【0078】
T624は、
図3のT124と同様である。本ケースでは、QR画像が印刷された後に、端末10によって接続用QRコードが撮影されずに有効期間が経過する。この場合、プリンタ100は、Authの処理等を実行することなく、T720Aにおいて、公開鍵PPK1及び秘密鍵psk1をメモリ134から削除する。そして、T722Aでは、プリンタ100は、公開鍵PPK3及び秘密鍵psk3を生成してメモリ134に記憶する。T724Aは、
図5のT324と同様である。
【0079】
本ケースによれば、公開鍵PPK3等が有効期間の経過時に生成されるので、設定画面内のコード印刷ボタンが再び選択される際に、公開鍵PPK3を用いて得られる接続用QRコードを含むQR画像を迅速に印刷することができる。ユーザの利便性を向上させることができる。
【0080】
(
図2のT12のBS(撮影されるケース);
図9)
図9を参照して、印刷されたQR画像内のQRコードが撮影されるケースにおける1回目のBSの処理を説明する。
【0081】
T600~T624は、
図8と同様である。本ケースでは、有効期間が経過する前に、端末10によってQR画像内の接続用QRコードが撮影される。具体的には、T630は、
図3のT130と同様であり、T632は、QR画像内の接続用QRコードが撮影される点を除いて、
図3のT132と同様である。T634~T640は、
図3のT134~T140と同様である。これにより、
図2のT14のAuthの処理(
図4参照)が実行される。
【0082】
(Configuration;
図10)
図10を参照して、Authの処理に続いて実行される
図2のT16のConfigの処理を説明する。
【0083】
図10のケースC1では、Configの処理が完了した後に有効期間が経過する。具体的には、T700B~T712Bは、
図5のT300~T312と同様である。T712Bの処理が終了することによって、Configの処理が完了する。そして、プリンタ100は、T712Bの処理が終了した後(即ち、端末10から第2のCOを含むCResを受信して記憶した後)に、有効期間が経過する場合に、T720B~T724Bの処理を実行する。T720B~T724Bは、
図8のT720A~T724Aと同様である。その後、
図2のT20及びT30が実行されて、プリンタ100とAP6との間にWi-Fi接続が確立される。
【0084】
ケースC1でも、
図8のケースと同様に、公開鍵PPK3等が有効期間の経過時に生成される。このために、設定画面内のコード印刷ボタンが再び選択される際に、接続用QRコードを含むQR画像を迅速に印刷することができる。
【0085】
図10のケースC2では、Configの処理が完了する前に有効期間が経過する。具体的には、T700CにおいてCReqが端末10に送信された後であって、T710Cにおいて端末10からCResが受信される前に、有効期間が経過する。この場合、プリンタ100は、公開鍵PPK1の削除及び公開鍵PPK3の生成を実行しない。そして、プリンタ100は、T710Cにおいて、端末10からCResを受信すると、T712Cにおいて、CRes内の第2のCOをメモリ134に記憶して、T720B~T724Bと同様の処理を実行する。なお、例えば、Authの処理の途中で有効期間が経過する場合も、プリンタ100は、公開鍵PPK1の削除及び公開鍵PPK3の生成を実行せずに、端末10からCResを受信する場合に、公開鍵PPK1の削除及び公開鍵PPK3の生成を実行する。
【0086】
例えば、Authの処理及びConfigの処理の途中で有効期間が経過することに起因して公開鍵PPK1が削除されると、Authの処理及びConfigの処理を継続することが不可能になり得る。本実施例では、Configの処理が完了する前に有効期間が経過しても公開鍵PPK1が削除されないので、Authの処理及びConfigの処理を適切に実行することができる。また、プリンタ100は、端末10からCResを受信すると(T710C)公開鍵PPK3を生成するので、設定画面内のコード印刷ボタンが再び選択される際に、接続用QRコードを含むQR画像を迅速に印刷することができる。
【0087】
(対応関係)
図8のT620においてコード印刷ボタンを選択することが、「所定の指示」の一例である。有効期間、接続アプリケーション40が、それぞれ、「所定期間」、「アプリケーションプログラム」の一例である。有効期間が経過することが、「所定の条件が満たされる場合」の一例である。
【0088】
(第3実施例)
本実施例では、プリンタ100は、公開鍵を用いて得られるQRコードを表示又は印刷するのに代えて、Bluetooth(登録商標)を利用して公開鍵PPK1を含む信号を送信する。
【0089】
本実施例では、
図1に示すように、プリンタ100は、Bluetoothインターフェース120(以下では「BTI/F120」と記載する)を備える。BTI/F120は、Bluetooth方式(以下では「BT方式」と記載)に従った無線通信を実行するためのI/Fである。BT方式は、例えば、IEEE802.15.1の規格、及び、それに準ずる規格に基づく無線通信方式である。より具体的に言うと、BTI/F22は、BLE(Bluetooth Low Energyの略)をサポートしている。BLEは、BT方式のバージョン4.0以降のバージョンで実現されている規格である。BLEでは、後述するAdvertise信号を利用可能である。また、端末10も、プリンタ100のBTI/F120と同様のBTI/F20を備える。
【0090】
Wi-Fi方式とBT方式との相違点を記述しておく。Wi-Fi通信の通信速度(例えば最大の通信速度が600Mbps)は、BT通信の通信速度(例えば最大の通信速度が24Mbps)よりも速い。Wi-Fi通信における搬送波の周波数は、2.4GHz帯又は5.0GHz帯である。BT通信における搬送波の周波数は、2.4GHz帯である。即ち、Wi-Fi通信における搬送波の周波数として5.0GHz帯が採用される場合には、Wi-Fi通信における搬送波の周波数とBT通信における搬送波の周波数とは異なる。また、Wi-Fi通信を実行可能な最大の距離(例えば約250m)は、BT通信を実行可能な最大の距離(例えば約100m)よりも大きい。
【0091】
(本実施例の処理;
図11)
図11を参照して、本実施例の処理を説明する。
図11の初期状態では、プリンタ100が出荷されてからプリンタ100の電源が一度も投入されていない。また、端末10とAP6との間にWi-Fi接続が確立されている。さらに、端末10とAP6との間で
図2のT2~T6の処理が実行済みである。
【0092】
プリンタ100は、T800において、ユーザから電源投入操作を受け付けると、
図3のT102~T106と同様の処理を実行する。T807で表示される設定画面は、QRコードの表示又は印刷を実行するためのボタンに代えて、AP6とのWi-Fi接続を確立するための処理をプリンタ100に実行させるための接続実行ボタンを含む点。
【0093】
プリンタ100は、T820において、設定画面内の接続実行ボタンの選択を受け付けると、T822において、BTI/F120を介して、公開鍵PPK1とMACアドレス「abc」とを含むAdvertise信号をブロードキャストによって送信する。Advertise信号は、プリンタ100の周囲の機器にプリンタ自身の存在を知らせるための信号である。T824は、
図3のT124と同様である。
【0094】
端末10は、T822において、BTI/F20を介して、プリンタ100からAdvertise信号を受信する。これにより、端末10は、Advertise信号内の情報(即ち、公開鍵PPK1とMACアドレス「abc」)を取得する。T836、T840は、それぞれ、
図3のT136、T140と同様である。T914~T930は、
図2のT14~T30と同様である。これにより、プリンタ100とAP6との間にWi-Fi接続が確立される。
【0095】
また、端末10は、T950、T952において、プリンタ100がAP6によって形成される無線ネットワークに子局として参加したのか否かを判断する。具体的には、端末10は、T950において、Wi-FiI/F16を介して、ブロードキャストの確認信号をAP6に送信する。これにより、AP6とのWi-Fi接続を確立している全ての子局に確認信号が送信される。上記のように、プリンタ100とAP6との間にWi-Fi接続が確立されているので、プリンタ100は、T950において、Wi-FiI/F116を介して、AP6から確認信号を受信する。この場合、プリンタ100は、T952において、Wi-FiI/F116を介して、確認信号に対する応答信号をAP6に送信する。当該応答信号は、MACアドレス「abc」を含む。
【0096】
AP6は、T952において、プリンタ100から応答信号を受信する。ただし、AP6は、プリンタ100のみならず、他の子局からの応答信号を受信し得る。この場合、AP6は、T952において、各子局から受信される各応答信号を端末10に送信する。
【0097】
端末10は、T952において、Wi-FiI/F16を介して、AP6から各応答信号を受信する。この場合、端末10は、受信済みの各応答信号の中に、T822で取得されたプリンタ100のMACアドレス「abc」を含む応答信号が存在するのか否かを判断する。本ケースでは、MACアドレス「abc」を含む応答信号が存在するので、端末10は、プリンタ100がAP6によって形成される無線ネットワークに子局として参加したと判断する。そして、端末10は、T954において、Wi-FiI/F16を介して、AP6を経由して、完了通知をプリンタ100に送信する。完了通知は、端末10及びプリンタ100が同じAP6とのWi-Fi接続を確立している状態となったことを示す通知である。
【0098】
プリンタ100は、T954において、Wi-FiI/F116を介して、AP6を経由して、端末10から完了通知を受信すると、端末10及びプリンタ100が同じAP6とのWi-Fi接続を確立している状態となったこと、即ち、AP6を経由して端末10と通信可能であると判断して、T956以降の処理を実行する。T956は、
図5のT324と同様である。T958では、プリンタ100は、Advertise信号の送信を停止する。これにより、プリンタ100の処理負荷を低減することができる。
【0099】
また、プリンタ100は、T954において、端末10から完了通知を受信すると、T960において、公開鍵PPK1及び秘密鍵psk1を削除し、T962において、公開鍵PPK3及び秘密鍵psk3を生成する。
【0100】
以上の処理が実行されると、端末10及びプリンタ100が同じAP6とのWi-Fi接続を確立している状態になる。この場合、プリンタ100は、T970において、端末10からAP6を経由して印刷データを受信することができる。この結果、プリンタ100は、T972において、当該印刷データに従った印刷を実行することができる。
【0101】
本実施例によると、プリンタ100は、AP6とプリンタ100との間にWi-Fi接続が確立されて、端末10と通信可能であると判断する場合(T952)に、公開鍵PPK3及び秘密鍵psk3を生成してメモリ134に記憶する(T962)。このような構成によれば、設定画面内の接続実行ボタンがユーザによって再び選択される場合に、公開鍵PPK3を含むAdvertise信号を迅速に送信することができる。このために、ユーザの利便性を向上させることができる。
【0102】
一方、プリンタ100は、T950で応答信号を送信してから所定時間が経過しても端末10から完了通知を受信しない場合に、AP6を経由して端末10と通信可能でないと判断する。例えば、端末10とAP6との間のWi-Fi接続が切断されてしまった場合には、応答信号が端末10によって受信されないので、プリンタ100は、完了通知を受信することができない。この場合、プリンタ100は、公開鍵PPK1及び秘密鍵psk1を削除しない。これにより、端末10及びプリンタ100が同じAP6とのWi-Fi接続を確立している状態となるまで、公開鍵PPK1を含むAdvertise信号の送信を継続することができる。
【0103】
(対応関係)
公開鍵PPK1、公開鍵PPK3が、それぞれ、「第1の情報」、「第2の情報」の一例である。BTI/F120が、「第2の無線インターフェース」の一例である。
図11のT952において応答信号を受信することが、「所定条件が満たされる場合」の一例である。
【0104】
以上、本発明の具体例を詳細に説明したが、これらは例示にすぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には以上に例示した具体例を様々に変形、変更したものが含まれる。上記の実施例の変形例を以下に列挙する。
【0105】
(変形例1)上記の第1実施例では、プリンタ100は、公開鍵PPK1を用いて得られるQRコードを表示する(
図3のT122、
図7のT522)。これに代えて、プリンタ100は、公開鍵PPK1(又はPPK3)を用いて得られるバーコードを表示してもよい。本変形例では、バーコードが、「第1の情報(及び第1のコード画像)」、「第2の情報(及び第2のコード画像)」の一例である。
【0106】
(変形例2)上記の第1実施例では、プリンタ100は、端末10からCResが受信される場合に、公開鍵PPK3を生成する(
図5のT322)。これに代えて、プリンタ100は、
図4のT210において、AResを端末10に送信する場合に、公開鍵PPK3を生成してもよい。一般的に言えば、認証応答が端末装置に送信される場合に、所定条件が満たされてもよい。また、上記の構成に代えて、プリンタ100は、
図4のT226が実行された後に、公開鍵PPK3を生成してもよいし、操作部112に対するユーザの所定操作に応じてQRコードの表示が停止する場合に、公開鍵PPK3を生成してもよい。一般的に言えば、出力部が前記第1の情報の出力を停止する場合に、所定条件が満たされてもよい。
【0107】
(変形例3)
図4のT226の処理は実行されなくてもよい。一般的に言えば、出力部は、第1の情報の出力を停止しなくてもよい。また、本変形例では、「画面表示制御部」を省略可能である。
【0108】
(変形例4)上記の第1実施例では、プリンタ100は、T322の前に、T226の処理を実行する。これに代えて、プリンタ100は、T322の後に、T226の処理を実行してもよい。一般的に言えば、出力部が第1の情報の出力を停止する前に、所定条件が満たされてもよい。
【0109】
(変形例5)上記の第1実施例では、プリンタ100は、設定画面内のQRコードボタンがユーザによって選択される場合に、QRコードを生成する(
図3のT121)。これに代えて、プリンタ100は、QRコードボタンの選択の前に、QRコードを生成してもよい。本変形例では、「第1の画像生成部」、「第2の画像生成部」を省略可能である。
【0110】
(変形例6)上記の第2実施例では、プリンタ100は、有効期間を含むQR画像の印刷を実行する。これに代えて、プリンタ100は、有効期間が終了する日時を含むQR画像の印刷を実行してもよい。本変形例では、有効期間が終了する日時が、「所定期間を示す情報」の一例である。
【0111】
(変形例7)上記の第2実施例では、プリンタ100は、アプリダウンロード用QRコードを含むQR画像の印刷を実行する。これに代えて、プリンタ100は、サーバのURL、接続アプリケーション40のアプリ名等を含むQR画像の印刷を実行してもよい。本変形例では、URL、アプリ名が、「アプリケーションプログラムに関係する情報」の一例である。
【0112】
(変形例8)QR画像は、有効期間を含まなくてもよい。本変形例では、所定期間を示す情報の印刷を省略可能である。また、QR画像は、アプリダウンロード用QRコードを含まなくてもよい。本変形例では、アプリケーションプログラムに関係する情報の印刷を省略可能である。
【0113】
(変形例9)
図10のケースC2の処理は実行されなくてもよい。一般的に言えば、端末装置から認証要求が受信された後であって、端末装置から接続情報が受信される前に、所定期間が経過することに起因して所定条件が満たされる場合に、第2の公開鍵が生成されてもよい。
【0114】
(変形例10)上記の第3実施例では、プリンタ100は、端末10から完了通知を受信する場合に、プリンタ100と端末10とがAP6を経由して通信可能であると判断する(
図11のT954)。これに代えて、プリンタ100は、Wi-FiI/F116を介して、AP6を経由して、確認信号を端末10に送信し、端末10から確認信号に対する応答信号を受信する場合に、プリンタ100と端末10とがAP6を経由して通信可能であると判断してもよい。本変形例では、端末10から応答信号を受信することが、「通信装置と端末装置とが外部装置を経由して通信可能である場合」の一例である。
【0115】
(変形例11)「第2の無線インターフェース」は、BTI/F120に限らず、例えば、NFC(Near Field Communicationの略)、赤外線通信、トランスファージェット等の他の通信方式に従った無線通信を実行するためのNFCI/Fであってもよい。また、「第2の無線インターフェース」は「第1の無線インターフェース」と同じであってもよい。具体的には、プリンタ100は、Wi-FiI/F116のインバンドの機能を利用して、Wi-FiI/F116を介して、公開鍵PPK1を端末10に送信してもよい(
図11のT822参照)。
【0116】
(変形例12)上記の第3実施例では、プリンタ100は、プリンタ100と端末10とがAP6を経由して通信可能であると判断する場合(
図11のT954)に、公開鍵PPK3を生成する(T962)。これに代えて、プリンタ100は、T950~T954の処理を実行せず、プリンタ100とAP6との間にWi-Fi接続が確立される場合(T930)に、公開鍵PPK3を生成してもよい。一般的に言えば、「所定条件が満たされること」は、通信装置と端末装置とが外部装置を経由して通信可能であることを含まなくてもよい。
【0117】
(変形例13)
図11のT932の処理は実行されなくてもよい。本変形例では、「停止部」を省略可能である。
【0118】
(変形例14)「所定の指示」は、操作部112に対する所定操作(例えば、設定画面内のQRコードボタンの選択(
図3のT120))がユーザによって実行されることに限らず、例えば、端末10から特定の信号を受信することであってもよい。特定の信号は、例えば、Wi-Fi方式に従ったProbe要求信号、BT方式に従ったAdvertise信号、NFC方式に従ったPolling信号等である。
【0119】
(変形例15)
図2のT20において、端末10とプリンタ100との間でNAの処理が実行されて、端末10とプリンタ100との間でWi-Fi接続が確立されてもよい。即ち、「外部装置」は、「端末装置」と同じであってもよい。
【0120】
(変形例16)
図3のT124の処理は実行されなくてもよい。本変形例では、「第1の状態移行部」を省略可能である。また、
図5のT324の処理は実行されなくてもよい。本変形例では、「第2の状態移行部」を省略可能である。
【0121】
(変形例17)
図3のT102の処理は実行されなくてもよい。例えば、公開鍵PPK1は、プリンタ100の出荷段階からメモリ134に予め記憶されていてもよい。一般的に言えば、第1の公開鍵は、通信装置の電源が投入される際に生成されなくてもよい。
【0122】
(変形例18)「通信装置」は、プリンタでなくてもよく、スキャナ、多機能機、携帯端末、PC、サーバ等の他のデバイスであってもよい。
【0123】
(変形例19)上記の各実施例では、
図2~
図11の各処理がソフトウェア(即ちプログラム136)によって実現されるが、これらの各処理のうちの少なくとも1つが論理回路等のハードウェアによって実現されてもよい。
【0124】
また、本明細書または図面に説明した技術要素は、単独であるいは各種の組合せによって技術的有用性を発揮するものであり、出願時請求項記載の組合せに限定されるものではない。また、本明細書または図面に例示した技術は複数目的を同時に達成するものであり、そのうちの一つの目的を達成すること自体で技術的有用性を持つものである。
以下に、本明細書で開示する技術の特徴を列挙する。
(項目1)
通信装置であって、
出力部と、
第1の無線インターフェースと、
第1の公開鍵を記憶するメモリであって、前記出力部は、前記第1の公開鍵が前記メモリに記憶された後に所定の指示が前記通信装置に入力される場合に、前記メモリ内の前記第1の公開鍵を用いて得られる第1の情報を出力する、前記メモリと、
前記第1の情報が出力された後に、前記第1の公開鍵を取得した端末装置から、前記第1の無線インターフェースを介して、前記第1の公開鍵が利用された認証要求を受信する認証要求受信部と、
前記端末装置から前記認証要求が受信される場合に、前記第1の無線インターフェースを介して、前記認証要求に対する応答である認証応答を前記端末装置に送信する認証応答送信部と、
前記認証応答が前記端末装置に送信された後に、前記端末装置から、前記第1の無線インターフェースを介して、接続情報を受信する接続情報受信部であって、前記接続情報は、前記通信装置と外部装置との間に前記第1の無線インターフェースを介した無線接続を確立するための情報である、前記接続情報受信部と、
前記端末装置から前記接続情報が受信される場合に、前記接続情報を利用して、前記通信装置と前記外部装置との間に前記第1の無線インターフェースを介した前記無線接続を確立する確立部と、
前記第1の情報が出力された後に所定条件が満たされる場合に、前記第1の公開鍵とは異なる第2の公開鍵を生成して、前記第2の公開鍵を前記メモリに記憶する公開鍵生成部と、を備え、
前記出力部は、さらに、前記第2の公開鍵が前記メモリに記憶された後に前記所定の指示が前記通信装置に再び入力される場合に、前記メモリ内の前記第2の公開鍵を用いて得られる第2の情報を出力する、通信装置。
(項目2)
前記接続情報が前記端末装置から受信される場合に、前記所定条件が満たされる、項目1に記載の通信装置。
(項目3)
前記出力部は、前記認証応答が前記端末装置に送信される場合に、前記第1の情報の出力を停止する、項目1又は2に記載の通信装置。
(項目4)
前記出力部が前記第1の情報の出力を停止した後に前記所定条件が満たされる、項目1から3のいずれか一項に記載の通信装置。
(項目5)
前記出力部は、表示部であり、
前記第1の情報は、前記第1の公開鍵がコード化されることによって得られる第1のコード画像であり、
前記第2の情報は、前記第2の公開鍵がコード化されることによって得られる第2のコード画像であり、
前記通信装置は、さらに、
前記所定の指示が前記通信装置に入力される場合に、前記第1のコード画像である前記第1の情報を前記表示部である前記出力部に表示させる第1の表示制御部と、
前記所定の指示が前記通信装置に再び入力される場合に、前記第2のコード画像である前記第2の情報を前記表示部である前記出力部に表示させる第2の表示制御部と、を備える、項目1から4のいずれか一項に記載の通信装置。
(項目6)
前記通信装置は、さらに、
前記所定の指示が前記通信装置に入力される場合に、前記メモリ内の前記第1の公開鍵を利用して、前記第1のコード画像を生成する第1の画像生成部と、
前記所定の指示が前記通信装置に再び入力される場合に、前記メモリ内の前記第2の公開鍵を利用して、前記第2のコード画像を生成する第2の画像生成部と、を備える、項目5に記載の通信装置。
(項目7)
前記出力部は、印刷実行部であり、
前記第1の情報は、前記第1の公開鍵がコード化されることによって得られる第1のコード画像であり、
前記第2の情報は、前記第2の公開鍵がコード化されることによって得られる第2のコード画像であり、
前記通信装置は、さらに、
前記所定の指示が前記通信装置に入力される場合に、前記第1のコード画像である前記第1の情報の印刷を前記印刷実行部である前記出力部に実行させる第1の印刷制御部と、
前記所定の指示が前記通信装置に再び入力される場合に、前記第2のコード画像である前記第2の情報の印刷を前記印刷実行部である前記出力部に実行させる第2の印刷制御部と、を備え、
前記第1のコード画像である前記第1の情報の印刷が実行されてから所定期間が経過する場合に、前記所定条件が満たされる、項目1に記載の通信装置。
(項目8)
前記第1の印刷制御部は、さらに、前記所定期間を示す情報の印刷を前記印刷実行部である前記出力部に実行させる、項目7に記載の通信装置。
(項目9)
前記第1の印刷制御部は、さらに、前記第1の公開鍵を利用して前記無線接続を確立するためのアプリケーションプログラムに関係する情報の印刷を前記印刷実行部である前記出力部に実行させる、項目7又は8に記載の通信装置。
(項目10)
前記公開鍵生成部は、
前記端末装置から前記認証要求が受信される前に、前記所定期間が経過することに起因して前記所定条件が満たされる場合に、前記第2の公開鍵を生成し、
前記端末装置から前記接続情報が受信された後に、前記所定期間が経過することに起因して前記所定条件が満たされる場合に、前記第2の公開鍵を生成し、
前記端末装置から前記認証要求が受信された後であって、前記端末装置から前記接続情報が受信される前に、前記所定期間が経過することに起因して前記所定条件が満たされても、前記第2の公開鍵を生成せず、前記端末装置から前記接続情報が受信された後に、前記第2の公開鍵を生成する、項目7から9のいずれか一項に記載の通信装置。
(項目11)
前記通信装置と前記外部装置との間に前記無線接続が確立される場合に、前記所定条件が満たされる、項目1に記載の通信装置。
(項目12)
前記通信装置は、さらに、
前記通信装置と前記外部装置との間に前記無線接続が確立され、かつ、前記通信装置と前記端末装置とが前記外部装置を経由して通信可能である場合に、前記所定条件が満たされる、項目11に記載の通信装置。
(項目13)
前記出力部は、第2の無線インターフェースであり、
前記第2の無線インターフェースである前記出力部は、
前記所定の指示が前記通信装置に入力される場合に、前記第1の情報を外部に送信し、
前記所定の指示が前記通信装置に再び入力される場合に、前記第2の情報を外部に送信し、
前記通信装置は、さらに、
前記通信装置と前記外部装置との間に前記無線接続が確立される場合に、前記第2の無線インターフェースを介した前記第1の情報の送信を停止する停止部を備える、項目11又は12に記載の通信装置。
(項目14)
前記公開鍵生成部は、前記所定の指示が前記通信装置に再び入力されることなく、前記第1の情報が出力された後に前記所定条件が満たされる場合に、前記第2の公開鍵を生成する、項目1から13のいずれか一項に記載の通信装置。
(項目15)
前記所定の指示は、
前記通信装置の操作部に対する所定操作がユーザによって実行されること、及び、
前記端末装置から特定の信号を受信すること、
のうちの少なくとも一方を含む、項目1から14のいずれか一項に記載の通信装置。
(項目16)
前記通信装置は、さらに、
前記認証応答が前記端末装置に送信された後に、前記無線接続を確立するための処理を実行中であることを示す実行中画面を前記通信装置の表示部に表示させる画面表示制御部を備える、項目1から15のいずれか一項に記載の通信装置。
(項目17)
前記公開鍵生成部は、前記通信装置の通信量に関係する情報を利用して、前記第2の公開鍵を生成する、項目1から16のいずれか一項に記載の通信装置。
(項目18)
前記通信装置は、さらに、
前記所定の指示が前記通信装置に入力される場合に、前記通信装置の動作状態を不可能状態から可能状態に移行させる第1の状態移行部であって、前記不可能状態は、前記端末装置から前記認証要求が受信されても、前記認証応答を送信しない状態であり、前記可能状態は、前記端末装置から前記認証要求が受信される場合に、前記認証応答を前記端末装置に送信する状態である、前記第1の状態移行部を備え、
前記認証応答送信部は、前記通信装置の動作状態が前記可能状態に移行された後に、前記端末装置から前記認証要求が受信される場合に、前記第1の無線インターフェースを介して、前記認証応答を前記端末装置に送信する、項目1から17のいずれか一項に記載の通信装置。
(項目19)
前記通信装置は、さらに、
前記通信装置の動作状態が前記可能状態である状況において、前記第2の公開鍵が生成される場合に、前記通信装置の動作状態を前記可能状態から前記不可能状態に移行させる第2の状態移行部を備える、項目18に記載の通信装置。
(項目20)
前記公開鍵生成部は、さらに、前記通信装置の電源が投入される際に、前記第1の公開鍵を生成して、前記第1の公開鍵を前記メモリに記憶させる、項目1から19のいずれか一項に記載の通信装置。
(項目21)
通信装置のためのコンピュータプログラムであって、
前記通信装置は、
出力部と、
第1の無線インターフェースと、
第1の公開鍵を記憶するメモリであって、前記出力部は、前記第1の公開鍵が前記メモリに記憶された後に所定の指示が前記通信装置に入力される場合に、前記メモリ内の前記第1の公開鍵を用いて得られる第1の情報を出力する、前記メモリと、を備え、
前記コンピュータプログラムは、前記通信装置のコンピュータを、
前記第1の情報が出力された後に、前記第1の公開鍵を取得した端末装置から、前記第1の無線インターフェースを介して、前記第1の公開鍵が利用された認証要求を受信する認証要求受信部と、
前記端末装置から前記認証要求が受信される場合に、前記第1の無線インターフェースを介して、前記認証要求に対する応答である認証応答を前記端末装置に送信する認証応答送信部と、
前記認証応答が前記端末装置に送信された後に、前記端末装置から、前記第1の無線インターフェースを介して、接続情報を受信する接続情報受信部であって、前記接続情報は、前記通信装置と外部装置との間に前記第1の無線インターフェースを介した無線接続を確立するための情報である、前記接続情報受信部と、
前記端末装置から前記接続情報が受信される場合に、前記接続情報を利用して、前記通信装置と前記外部装置との間に前記第1の無線インターフェースを介した前記無線接続を確立する確立部と、
前記第1の情報が出力された後に所定条件が満たされる場合に、前記第1の公開鍵とは異なる第2の公開鍵を生成して、前記第2の公開鍵を前記メモリに記憶する公開鍵生成部と、として機能させ、
前記出力部は、さらに、前記第2の公開鍵が前記メモリに記憶された後に前記所定の指示が前記通信装置に再び入力される場合に、前記メモリ内の前記第2の公開鍵を用いて得られる第2の情報を出力する、コンピュータプログラム。
【符号の説明】
【0125】
2:通信システム、10:端末、15:カメラ、16:Wi-FiI/F、20:BTI/F、40:接続アプリケーション、50:端末、70:端末、100:プリンタ、112:操作部、114:表示部、116:Wi-FiI/F、118:印刷実行部、120:BTI/F、130:制御部、132:CPU、134:メモリ、136:プログラム、APK1、APK2:公開鍵、ask1、ask2:秘密鍵、CK:接続キー、DS1、DS2:電子署名、ED1、ED2:暗号化データ、HV:ハッシュ値、PPK1、PPK2、PPK3:公開鍵、psk1、psk2、psk3:秘密鍵、RV1、RV2:ランダム値、SK1、SK2:共有鍵、TPK1、TPK2:公開鍵、tsk1、tsk2:秘密鍵