(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022170326
(43)【公開日】2022-11-10
(54)【発明の名称】通信装置、端末装置のためのコンピュータプログラム、及び、端末装置
(51)【国際特許分類】
H04W 76/10 20180101AFI20221102BHJP
H04W 84/12 20090101ALI20221102BHJP
H04W 88/06 20090101ALI20221102BHJP
H04W 12/06 20210101ALI20221102BHJP
【FI】
H04W76/10
H04W84/12
H04W88/06
H04W12/06
【審査請求】未請求
【請求項の数】19
【出願形態】OL
(21)【出願番号】P 2021076391
(22)【出願日】2021-04-28
(71)【出願人】
【識別番号】000005267
【氏名又は名称】ブラザー工業株式会社
(74)【代理人】
【識別番号】110000110
【氏名又は名称】弁理士法人 快友国際特許事務所
(72)【発明者】
【氏名】三宅 猛
(72)【発明者】
【氏名】朝倉 弘崇
【テーマコード(参考)】
5K067
【Fターム(参考)】
5K067AA21
5K067DD11
5K067EE02
(57)【要約】
【課題】通信装置と外部装置との間に無線接続をセキュアに確立させ得る技術を提供すること。
【解決手段】通信装置は、OSI参照モデルのネットワーク層以上の通信を実行することによって、端末装置から、公開鍵を受信する公開鍵受信部と、端末装置から公開鍵が受信された後に、端末装置から、前記公開鍵が利用された認証要求を受信する認証要求受信部と、端末装置から認証要求が受信される場合に、認証要求の送信元である端末装置の認証を実行する認証実行部と、端末装置の認証が成功する場合に、認証応答を端末装置に送信する認証応答送信部と、認証応答が端末装置に送信された後に、端末装置から、第1の接続情報を受信する第1の接続情報受信部と、端末装置から第1の接続情報が受信される場合に、第1の接続情報を利用して、第2の無線接続を外部装置と確立する第2の確立部と、を備える。
【選択図】
図5
【特許請求の範囲】
【請求項1】
通信装置であって、
Wi-Fi規格に従った第1の無線接続を端末装置と確立する第1の確立部と、
前記第1の無線接続を利用して、OSI(Open Systems Interconnectionの略)参照モデルのネットワーク層以上の通信を実行することによって、前記端末装置から、前記通信装置によって利用されるべき公開鍵を受信する公開鍵受信部と、
前記端末装置から前記公開鍵が受信される場合に、前記公開鍵を利用して、前記公開鍵に対応する秘密鍵を生成する秘密鍵生成部と、
前記端末装置から前記公開鍵が受信された後に、前記端末装置から、前記公開鍵が利用された認証要求であって、前記Wi-Fi規格の所定方式に従った前記認証要求を受信する認証要求受信部と、
前記端末装置から前記認証要求が受信される場合に、前記秘密鍵を利用して、前記認証要求の送信元である前記端末装置の認証を実行する認証実行部と、
前記端末装置の前記認証が成功する場合に、前記所定方式に従った認証応答であって、前記端末装置の前記認証が成功したことを示す前記認証応答を前記端末装置に送信する認証応答送信部であって、前記端末装置の前記認証が失敗する場合に、前記認証応答は送信されない、前記認証応答送信部と、
前記認証応答が前記端末装置に送信された後に、前記端末装置から、前記所定方式に従った第1の接続情報を受信する第1の接続情報受信部と、
前記端末装置から前記第1の接続情報が受信される場合に、前記第1の接続情報を利用して、第2の無線接続を前記端末装置とは異なる外部装置と確立する第2の確立部と、
を備える、通信装置。
【請求項2】
前記通信装置は、さらに、
前記通信装置の識別情報を前記端末装置に送信する識別情報送信部であって、前記識別情報は、前記公開鍵を生成するために前記端末装置によって利用される、前記識別情報送信部を備える、請求項1に記載の通信装置。
【請求項3】
前記通信装置は、さらに、
前記第1の無線接続を利用して、前記端末装置から、前記通信装置の状態の移行要求を受信する移行要求受信部と、
前記端末装置から前記移行要求が受信される場合に、前記通信装置の状態を非応答状態から応答状態に移行させる第1の移行部であって、前記非応答状態は、前記認証応答を前記端末装置に送信不可能な状態であり、前記応答状態は、前記認証応答を前記端末装置に送信可能な状態である、前記第1の移行部と、を備え、
前記認証応答送信部は、前記通信装置の状態が前記応答状態に移行され、かつ、前記端末装置の前記認証が成功する場合に、前記認証応答を前記端末装置に送信する、請求項1又は2に一項に記載の通信装置。
【請求項4】
前記通信装置は、さらに、
前記第1の無線接続を利用して、前記通信装置が利用可能な1個以上の無線チャネルを示すチャネル情報を前記端末装置に送信するチャネル情報送信部を備え、
前記認証要求受信部は、前記チャネル情報によって示される前記1個以上の無線チャネルのうちの1個の無線チャネルを利用して、前記端末装置から前記認証要求を受信する、請求項1から3のいずれか一項に記載の通信装置。
【請求項5】
前記通信装置は、さらに、
前記第1の無線接続を利用して、前記通信装置に関連する装置情報を前記端末装置に送信する装置情報送信部であって、前記装置情報が前記端末装置によって受信されることに応じて、前記装置情報が前記端末装置の表示部に表示される、前記装置情報送信部を備える、請求項1から4のいずれか一項に記載の通信装置。
【請求項6】
前記通信装置は、さらに、
前記第1の無線接続を利用して、前記端末装置から、ユーザ認証情報を受信する認証情報受信部を備え、
前記第2の確立部は、前記ユーザ認証情報の認証が成功し、かつ、前記端末装置から前記第1の接続情報が受信される場合に、前記第2の無線接続を前記外部装置と確立し、
前記ユーザ認証情報の認証が失敗する場合に、前記第2の無線接続は確立されない、請求項1から5のいずれか一項に記載の通信装置。
【請求項7】
前記第1の無線接続は、前記通信装置が親局として動作すると共に前記端末装置が子局として動作するための無線接続であり、
前記通信装置は、さらに、
前記第1の無線接続を確立するための第2の接続情報を出力部に出力させる出力制御部であって、前記第2の接続情報が出力されることに応じて、前記第2の接続情報が前記端末装置によって取得される、前記出力制御部を備え、
前記第1の確立部は、前記第2の接続情報が前記端末装置によって取得される場合に、前記第1の無線接続を前記端末装置と確立する、請求項1から6のいずれか一項に記載の通信装置。
【請求項8】
前記通信装置は、さらに、
無線接続を前記外部装置と確立するための確立指示をユーザから受け付ける受付部と、
前記確立指示が受け付けられる場合に、前記通信装置の状態を前記親局として動作しない非親局状態から前記親局として動作する親局状態に移行させる第2の移行部と、を備え、
前記第1の確立部は、前記通信装置の状態が前記親局状態に移行された後に、前記第1の無線接続を前記端末装置と確立する、請求項7に記載の通信装置。
【請求項9】
前記公開鍵受信部は、前記端末装置が前記所定方式をサポートしている場合に、前記端末装置から前記公開鍵を受信し、
前記通信装置は、さらに、
前記端末装置が前記所定方式をサポートしていない場合に、前記端末装置から前記公開鍵を受信することなく、前記第1の無線接続を利用して、前記端末装置から、前記Wi-Fi規格の前記所定方式とは異なる方式に従った第3の接続情報を受信する第2の接続情報受信部と、
前記端末装置から前記第3の接続情報が受信される場合に、前記第3の接続情報を利用して、前記Wi-Fi規格に従った第3の無線接続を前記外部装置と確立する第3の確立部と、
を備える、請求項1から8のいずれか一項に記載の通信装置。
【請求項10】
前記所定方式は、DPP(Device Provisioning Protocolの略)方式であり、
前記第1の接続情報は、前記DPP方式のConfiguration Objectである、請求項1から9のいずれか一項に記載の通信装置。
【請求項11】
端末装置のためのコンピュータプログラムであって、
前記コンピュータプログラムは、前記端末装置のコンピュータを、以下の各部、即ち、
前記端末装置と通信装置との間に確立されている第1の無線接続であって、Wi-Fi規格に従った前記第1の無線接続を利用して、OSI(Open Systems Interconnectionの略)参照モデルのネットワーク層以上の通信を実行することによって、前記通信装置によって利用されるべき公開鍵を前記通信装置に送信する公開鍵送信部と、
前記公開鍵が前記通信装置に送信された後に、前記端末装置と前記通信装置との間で所定方式に従った無線通信を実行するための第1の制御処理を実行する第1の通信制御部であって、
前記所定方式に従った前記無線通信は、
前記通信装置の公開鍵が利用された認証要求を前記通信装置に送信する認証要求送信処理と、
前記認証要求が前記通信装置に送信される場合に、前記通信装置から認証応答を受信する認証応答受信処理と、
前記通信装置から前記認証応答が受信された後に、第1の接続情報を前記通信装置に送信する第1の接続情報送信処理であって、前記第1の接続情報は、前記通信装置と、前記端末装置とは異なる外部装置と、の間に前記Wi-Fi規格に従った第2の無線接続を確立するために、前記通信装置によって利用される情報である、前記第1の接続情報送信処理と、
を含む、前記第1の通信制御部と、
として機能させる、コンピュータプログラム。
【請求項12】
前記コンピュータプログラムは、前記コンピュータを、さらに、
前記第1の無線接続を利用して、前記通信装置から、前記通信装置の識別情報を受信する識別情報受信部と、
前記識別情報を利用して、前記公開鍵を生成する公開鍵生成部と、
として機能させる、請求項11に記載のコンピュータプログラム。
【請求項13】
前記コンピュータプログラムは、前記コンピュータを、さらに、
前記第1の無線接続を利用して、移行要求を前記通信装置に送信する移行要求送信部であって、前記移行要求は、前記通信装置の状態を非応答状態から応答状態に移行させるための要求であり、前記非応答状態は、前記認証応答を前記端末装置に送信不可能な状態であり、前記応答状態は、前記認証応答を前記端末装置に送信可能な状態である、前記移行要求送信部として機能させ、
前記認証応答受信処理は、前記通信装置の状態が前記応答状態に移行され、かつ、前記公開鍵が前記通信装置に送信された後に、前記認証要求が前記通信装置に送信される場合に、前記通信装置から前記認証応答を受信する、請求項11又は12に記載のコンピュータプログラム。
【請求項14】
前記コンピュータプログラムは、前記コンピュータを、さらに、
前記第1の無線接続を利用して、前記通信装置から、前記通信装置が利用可能な1個以上のチャネルを示すチャネル情報を受信するチャネル情報受信部として機能させ、
前記認証要求送信処理は、前記チャネル情報によって示される1個以上の無線チャネルのうちの1個の無線チャネルを利用して、前記認証要求を前記通信装置に送信する、請求項11から13のいずれか一項に記載のコンピュータプログラム。
【請求項15】
前記コンピュータプログラムは、前記コンピュータを、さらに、
前記第1の無線接続を利用して、前記通信装置から、前記通信装置に関連する装置情報を受信する装置情報受信部と、
受信済みの前記装置情報を前記端末装置の表示部に表示させる表示制御部と、
として機能させる、請求項11から14のいずれか一項に記載のコンピュータプログラム。
【請求項16】
前記コンピュータプログラムは、前記コンピュータを、さらに、
前記第1の無線接続を利用して、ユーザ認証情報を前記通信装置に送信する認証情報送信部として機能させ、
前記通信装置において、前記ユーザ認証情報の認証が成功し、かつ、前記端末装置から前記第1の接続情報が受信される場合に、前記通信装置と前記外部装置との間に前記第2の無線接続が確立され、
前記通信装置において、前記ユーザ認証情報の認証が失敗する場合に、前記第2の無線接続は確立されない、請求項11から15のいずれか一項に記載のコンピュータプログラム。
【請求項17】
前記コンピュータプログラムは、前記コンピュータを、さらに、
前記第1の無線接続を利用して、前記通信装置から、前記通信装置が前記所定方式をサポートしているのか否かを示す可否情報を受信する可否情報受信部として機能させ、
前記公開鍵送信部は、前記可否情報が、前記通信装置が前記所定方式をサポートしていることを示す場合に、前記公開鍵を前記通信装置に送信し、
前記コンピュータプログラムは、前記コンピュータを、さらに、
前記可否情報が、前記通信装置が前記所定方式をサポートしていないことを示す場合に、前記端末装置と前記通信装置との間で前記Wi-Fi規格の前記所定方式とは異なる方式に従った無線通信を実行するための第2の制御処理を実行する第2の通信制御部であって、
前記異なる方式に従った前記無線通信は、
前記公開鍵を前記通信装置に送信することなく、前記第1の無線接続を利用して、第3の接続情報を前記通信装置に送信する第2の接続情報送信処理であって、前記第3の接続情報は、前記通信装置と前記外部装置との間に前記Wi-Fi規格に従った第3の無線接続を確立するために、前記通信装置によって利用される情報である、前記第2の接続情報送信処理、
を含む、前記第2の通信制御部として機能させる、請求項11から16のいずれか一項に記載のコンピュータプログラム。
【請求項18】
前記所定方式は、DPP(Device Provisioning Protocolの略)方式であり、
前記第1の接続情報は、前記DPP方式のConfiguration Objectである、請求項11から17のいずれか一項に記載のコンピュータプログラム。
【請求項19】
端末装置であって、
Wi-Fi規格に従った第1の無線接続を通信装置と確立する第1の確立部と、
前記第1の無線接続を利用して、OSI(Open Systems Interconnectionの略)参照モデルのネットワーク層以上の通信を実行することによって、前記通信装置によって利用されるべき公開鍵を前記通信装置に送信する公開鍵送信部と、
前記公開鍵が前記通信装置に送信された後に、前記公開鍵が利用された認証要求であって、前記Wi-Fi規格の所定方式に従った前記認証要求を前記通信装置に送信する認証要求送信部と、
前記認証要求が前記通信装置に送信される場合に、前記通信装置から、前記所定方式に従った認証応答を受信する認証応答受信部と、
前記通信装置から前記認証応答が受信された後に、前記所定方式に従った第1の接続情報を前記通信装置に送信する第1の接続情報送信部であって、前記第1の接続情報は、前記通信装置と、前記端末装置とは異なる外部装置と、の間に前記Wi-Fi規格に従った第2の無線接続を確立するために、前記通信装置によって利用される情報である、前記第1の接続情報送信部と、
を備える、端末装置。
【発明の詳細な説明】
【技術分野】
【0001】
本明細書は、通信装置と外部装置との間に無線接続を確立させるための技術を開示する。
【背景技術】
【0002】
特許文献1には、端末を利用して、プリンタとアクセスポイント(以下では「AP」と記載する)との間にWi-Fi接続を確立させる技術が開示されている。特に、DPP(Device Provisioning Protocolの略)方式に従って、プリンタとAPとの間にWi-Fi接続を確立させる技術が開示されている。この技術では、端末は、公開鍵を含む情報がコード化されたQRコード(登録商標)を読み取ることによって、プリンタ及びAPのそれぞれの公開鍵を取得し、これらの公開鍵を利用して、プリンタとAPとの間にWi-Fi接続を確立させる。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2020-113851号公報
【特許文献2】特開2020-088620号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
本明細書では、通信装置と外部装置との間に無線接続をセキュアに確立させ得る技術を提供する。
【課題を解決するための手段】
【0005】
本明細書は、通信装置を開示する。通信装置は、Wi-Fi規格に従った第1の無線接続を端末装置と確立する第1の確立部と、前記第1の無線接続を利用して、OSI(Open Systems Interconnectionの略)参照モデルのネットワーク層以上の通信を実行することによって、前記端末装置から、前記通信装置によって利用されるべき公開鍵を受信する公開鍵受信部と、前記端末装置から前記公開鍵が受信される場合に、前記公開鍵を利用して、前記公開鍵に対応する秘密鍵を生成する秘密鍵生成部と、前記端末装置から前記公開鍵が受信された後に、前記端末装置から、前記公開鍵が利用された認証要求であって、前記Wi-Fi規格の所定方式に従った前記認証要求を受信する認証要求受信部と、前記端末装置から前記認証要求が受信される場合に、前記秘密鍵を利用して、前記認証要求の送信元である前記端末装置の認証を実行する認証実行部と、前記端末装置の前記認証が成功する場合に、前記所定方式に従った認証応答であって、前記端末装置の前記認証が成功したことを示す前記認証応答を前記端末装置に送信する認証応答送信部であって、前記端末装置の前記認証が失敗する場合に、前記認証応答は送信されない、前記認証応答送信部と、前記認証応答が前記端末装置に送信された後に、前記端末装置から、前記所定方式に従った第1の接続情報を受信する第1の接続情報受信部と、前記端末装置から前記第1の接続情報が受信される場合に、前記第1の接続情報を利用して、第2の無線接続を前記端末装置とは異なる外部装置と確立する第2の確立部と、を備えてもよい。
【0006】
上記の構成によると、通信装置は、OSI参照モデルのネットワーク層以上の通信を実行することによって、端末装置から公開鍵を受信する。このように、通信装置は、ネットワーク層以上の通信を実行するので、端末装置から公開鍵をセキュアに受信し得る。このために、通信装置と外部装置との間に無線接続をセキュアに確立させ得る。
【0007】
また、本明細書は、端末装置のためのコンピュータプログラムも開示する。前記コンピュータプログラムは、前記端末装置のコンピュータを、以下の各部、即ち、前記端末装置と通信装置との間に確立されている第1の無線接続であって、Wi-Fi規格に従った前記第1の無線接続を利用して、OSI(Open Systems Interconnectionの略)参照モデルのネットワーク層以上の通信を実行することによって、前記通信装置によって利用されるべき公開鍵を前記通信装置に送信する公開鍵送信部と、前記公開鍵が前記通信装置に送信された後に、前記端末装置と前記通信装置との間で前記所定方式に従った前記無線通信を実行するための第1の制御処理を実行する第1の通信制御部であって、前記所定方式に従った前記無線通信は、前記通信装置の公開鍵が利用された認証要求を前記通信装置に送信する認証要求送信処理と、前記認証要求が前記通信装置に送信される場合に、前記通信装置から認証応答を受信する認証応答受信処理と、前記通信装置から前記認証応答が受信された後に、第1の接続情報を前記通信装置に送信する第1の接続情報送信処理であって、前記第1の接続情報は、前記通信装置と、前記端末装置とは異なる外部装置と、の間に前記Wi-Fi規格に従った第2の無線接続を確立するために、前記通信装置によって利用される情報である、前記第1の接続情報送信処理と、を含む、前記第1の通信制御部と、として機能させてもよい。
【0008】
上記の構成によると、端末装置は、OSI参照モデルのネットワーク層以上の通信を実行することによって、通信装置に公開鍵を送信する。このように、端末装置は、ネットワーク層以上の通信を実行するので、公開鍵をセキュアに通信装置に送信し得る。このために、通信装置と外部装置との間に無線接続をセキュアに確立させ得る。
【0009】
上記の通信装置のためのコンピュータプログラム、当該コンピュータプログラムを記憶するコンピュータ可読記録媒体、及び、通信装置によって実行される方法も新規で有用である。また、上記の端末装置のためのコンピュータプログラムを格納するコンピュータ可読記録媒体、当該コンピュータプログラムによって実現される端末装置、及び、当該端末装置によって実行される方法も、新規で有用である。また、上記の通信装置と、上記のコンピュータプログラムによって実現される端末装置と、を備える通信システムも、新規で有用である。
【図面の簡単な説明】
【0010】
【
図2】各デバイスによって実行される処理のシーケンス図を示す。
【
図3】第1実施例のアプリケーションによって実行される処理のフローチャートを示す。
【
図9】第2実施例のアプリケーションによって実行される処理のフローチャートを示す。
【
図10】ケースD-1及びケースD-2のシーケンス図を示す。
【
図12】第3実施例のアプリケーションによって実行される処理のフローチャートを示す。
【発明を実施するための形態】
【0011】
(第1実施例)
(通信システム2の構成;
図1)
図1に示されるように、通信システム2は、複数個の端末10A,10Bと、複数個のプリンタ100A,100Bと、AP(Access Pointの略)6と、を備える。本実施例の技術は、端末(例えば10A)を利用して、プリンタ(例えば100A)とAP6との間にWi-Fi規格に従った無線接続(以下では、「Wi-Fi接続」と記載する)を確立させる技術である。
【0012】
(端末10Aの構成)
端末10Aは、携帯電話(例えばスマートフォン)、PDA、タブレットPC等の可搬型の端末装置である。変形例では、端末10Aは、据置型のPC、ノートPC等であってもよい。端末10Aは、操作部12Aと表示部14AとWi-Fiインターフェース16Aとカメラ18Aと制御部30Aとを備える。各部12A~30Aは、バス線(符号省略)に接続されている。以下では、インターフェースのことを「I/F」と記載する。
【0013】
操作部12Aは、複数のキーを備える。ユーザは、操作部12を操作することによって、様々な指示を端末10Aに入力することができる。表示部14Aは、様々な情報を表示するためのディスプレイである。カメラ18Aは、物体を撮影するためのデバイスである。本実施例では、カメラ18Aは、AP6のQRコード、及び、プリンタ(例えば100A)に表示されるQRコードを撮影するために利用される。
【0014】
Wi-FiI/F16Aは、Wi-Fi規格に従ったWi-Fi通信を実行するための無線I/Fである。Wi-Fi規格は、例えば、IEEE(The Institute of Electrical and Electronics Engineers, Inc.の略)の802.11の規格、及び、それに準ずる規格(例えば802.11a,11b,11g,11n、11ac等)に従って、無線通信を実行するための無線通信規格である。特に、Wi-FiI/F16Aは、Wi-Fi Allianceによって策定されたDPP(Device Provisioning Protocolの略)方式をサポートしている。DPP方式の詳細は、Wi-Fi Allianceによって作成された規格書「Device Provisioning Protocol Specification Version 1.1.13」に記述されている。
【0015】
Wi-FiI/F16Aは、さらに、Wi-Fi Allianceによって策定されたWFD(Wi-Fi Direct(登録商標)の略)方式をサポートしている。WFD方式の詳細は、Wi-Fi Allianceによって作成された規格書「Wi-Fi Peer-to-Peer (P2P) Technical Specification Version1.1」に記述されている。WFD方式では、Group Owner状態(以下では「G/O状態」と記載する)、及び、クライアント状態(以下では「CL状態」と記載する)が定義されている。G/O状態は、WFD方式に従って確立される無線接続において親局として動作する状態であり、CL状態は、当該無線接続において子局として動作する状態である。以下では、WFD方式に従って確立されるWi-Fi接続のことを「WFD接続」と記載することがある。
【0016】
また、端末10Aは、DPP方式及びWFD方式とは異なる通常のWi-Fi方式に従って、AP6とのWi-Fi接続を確立することができる(以下では「通常のWi-Fi方式をサポートしている」と記載することがある)。具体的には、通常のWi-Fi方式では、端末10Aは、AP6によって形成されている無線ネットワークのSSID(Service Set Identifierの略)及びパスワードを利用して、AP6とのWi-Fi接続を確立することができる。以下では、パスワードのことを「PW」と記載する。
【0017】
制御部30Aは、CPU32Aとメモリ34Aとを備える。CPU32Aは、メモリ34Aに格納されているプログラム36A,38Aに従って、様々な処理を実行する。メモリ34Aは、揮発性メモリ、不揮発性メモリ等によって構成される。
【0018】
OS(Operating Systemの略)プログラム36Aは、端末10Aの基本的な動作を実現するためのプログラムである。アプリケーション38Aは、端末10AとAP6との間にWi-Fi接続を確立させたり、プリンタ(例えば100A)とAP6との間にWi-Fi接続を確立させたりするためのプログラムである。以下では、OSプログラム、アプリケーションのことを、それぞれ、「OS」、「アプリ」と記載する。アプリ38Aは、DPP方式に従った処理をOS36Aに実行させることによって、端末10AとAP6との間、又は、プリンタ(例えば100A)とAP6との間にWi-Fi接続を確立させることができる。アプリ38Aは、例えば、プリンタ100A,100Bのベンダによって提供されるインターネット上のサーバ(図示省略)から端末10Aにインストールされる。
【0019】
(端末10Bの構成)
端末10Bは、携帯電話(例えばスマートフォン)、PDA、タブレットPC等の可搬型の端末装置である。変形例では、端末10Bは、据置型のPC、ノートPC等であってもよい。端末10Bは、操作部12Bと表示部14BとWi-FiI/F16Bとカメラ18Bと制御部30Bとを備える。各部12B~30Bは、バス線(符号省略)に接続されている。制御部30Bは、CPU32Bとメモリ34Bとを備える。各部12B~34Bの構成は、Wi-FiI/F16BがDPP方式をサポートしていない点を除いて、端末10Aの各部12A~34Aの構成と同様である。即ち、Wi-FiI/F16Bは、WFD方式と通常のWi-Fi方式とをサポートしているが、DPP方式をサポートしていない。
【0020】
(プリンタ100Aの構成)
プリンタ100Aは、印刷機能を実行可能な周辺装置(例えば端末10Aの周辺装置)である。変形例では、プリンタ100Aは、印刷機能に加えて、スキャン機能、FAX機能等を実行可能な多機能機であってもよい。プリンタ100Aは、プリンタID「AAA」を有する。プリンタ100Aは、操作部112Aと表示部114AとWi-FiI/F116Aと印刷実行部118Aと制御部130Aとを備える。各部112A~130Aは、バス線(符号省略)に接続されている。
【0021】
操作部112Aは、複数のキーを備える。ユーザは、操作部112Aを操作することによって、様々な指示をプリンタ100Aに入力することができる。表示部114Aは、様々な情報を表示するためのディスプレイである。印刷実行部118Aは、インクジェット方式、レーザ方式等の印刷機構を備える。Wi-FiI/F116Aは、端末10AのWi-FiI/F16Aと同様である。即ち、Wi-FiI/F116Aは、DPP方式とWFD方式と通常のWi-Fi方式とをサポートしている。
【0022】
制御部130Aは、CPU132Aとメモリ134Aとを備える。CPU132Aは、メモリ134Aに格納されているプログラム136Aに従って、様々な処理を実行する。メモリ134Aは、揮発性メモリ、不揮発性メモリ等によって構成される。メモリ134Aは、Wi-FiI/F116AのMACアドレス140Aを記憶している。
【0023】
(プリンタ100Bの構成)
プリンタ100Bは、印刷機能を実行可能な周辺装置(例えば端末10Aの周辺装置)である。変形例では、プリンタ100Bは、印刷機能に加えて、スキャン機能、FAX機能等を実行可能な多機能機であってもよい。プリンタ100Bは、プリンタID「BBB」を有する。プリンタ100Bは、操作部112Bと表示部114BとWi-FiI/F116Bと印刷実行部118Bと制御部130Bとを備える。各部112B~130Bは、バス線(符号省略)に接続されている。制御部130Bは、CPU132Bとメモリ134Bとを備える。各部112B~134Bの構成は、Wi-FiI/F116BがDPP方式をサポートしていない点、及び、メモリ134BがWi-FiI/F116BのMACアドレス140Bを記憶している点を除いて、プリンタ100Aの各部112A~134Aの構成と同様である。即ち、Wi-FiI/F116Bは、WFD方式と通常のWi-Fi方式とをサポートしているが、DPP方式をサポートしていない。
【0024】
(AP6の構成)
AP6は、WFDのG/O状態の機器ではなく、無線アクセスポイント又は無線LANルータと呼ばれる通常のアクセスポイントである。AP6は、DPP方式と通常のWi-Fi方式とをサポートしている。AP6は、AP6が親局として動作するWi-Fiネットワークに所属している一対の機器の間の通信を中継する。
【0025】
AP6は、公開鍵PKapと、秘密鍵pkapと、AP6のWi-FiI/F(図示省略)のMACアドレス8と、チャネル情報CI1と、SSID「S1」と、PW「P1」を記憶している。公開鍵PKap及び秘密鍵pkapは、DPP方式に従った認証を実行する際に利用される。チャネル情報CI1は、AP6が利用可能な複数のチャネル(換言すると周波数の幅)のうちの1個以上のチャネルを示す情報である。AP6の筐体には、公開鍵PKap、MACアドレス8、及び、チャネル情報CI1をコード化することによって得られるQRコードが貼付されている。SSID「S1」は、AP6によって形成されるWi-Fiネットワークを識別する情報である。PW「P1」は、機器をWi-Fiネットワークに所属させる際に利用される認証情報である。
【0026】
(端末10AとAP6との間のDPP方式に従ったWi-Fi接続の確立;
図2)
続いて、
図2を参照して、端末10AとAP6との間に、DPP方式に従ったWi-Fi接続を確立するための処理を説明する。
図2の以下の説明では、理解の容易化のために、各デバイスのCPU(例えばCPU32A、132A等)が実行する動作を、CPUを主体として記載せずに、各デバイス(例えば端末10A、プリンタ100A等)を主体として記載する。また、端末(例えば端末10A)を主体として記載する代わりに、OS(例えばOS36A)又はアプリ(例えばアプリ38A)を主体として記載することがある。また、端末10A,10B及びプリンタ100A,100Bによって実行されるすべての通信はWi-FiI/F16A等を介して実行される。従って、以下では、通信を説明する際に、「Wi-FiI/Fを介して」という説明を省略する。
図4~
図8の説明の際にも同様である。
【0027】
T10では、アプリ38Aは、ユーザからアプリ38Aを起動する操作を受け付ける。この結果、T12において、アプリ38Aが起動される。
【0028】
T14では、アプリ38Aは、ユーザから、セットアップ開始操作を受け付ける。本実施例の「セットアップ」は、端末10AとAP6との間にWi-Fi接続を確立させ、その後、プリンタとAP6との間にWi-Fi接続を確立させることを意味する。アプリ38Aは、セットアップ開始操作を受け付けると、T16において、カメラ18Aを起動する。そして、T18では、アプリ38Aは、ユーザから、AP6の筐体に貼付されているQRコードをカメラ18Aによって撮影する操作を受け付ける。
【0029】
T19では、アプリ38Aは、撮影済みのQRコードをデコードする。この結果、アプリ38Aは、公開鍵PKapとMACアドレス8とチャネル情報CI1とを取得する。T19の処理は、DPP方式のBootstrappingに相当する。
【0030】
アプリ38Aは、公開鍵PKap等を取得すると、T20において、DPP開始指示をOS36Aに供給する。DPP開始指示は、公開鍵PKapとMACアドレスMAC8とチャネル情報CI1とを含む。
【0031】
OS36Aは、T20において、アプリ38AからDPP開始指示を取得すると、T22において、DPP開始指示に含まれるMACアドレス8を送信先として、DPP開始指示に含まれる公開鍵PKapが利用されたAuthentication RequestをAP6に送信する。以下では、Authenticationのことを「Auth」と記載し、Requestのことを「Req」と記載する。ここで、OS36Aは、DPP開始指示に含まれるチャネル情報CI1によって示される1個以上のチャネルを順次利用して、Auth ReqをAP6に送信することを繰り返す。このように、OS36Aは、AP6が利用可能なチャネルを利用してAuth Reqを送信するので、Auth ReqをAP6に適切に受信させることができる。
【0032】
Auth Reqは、送信元の端末10Aの認証の実行を要求する信号である。具体的には、OS36Aは、まず、端末10Aの秘密鍵(図示省略)とAP6の公開鍵PKapとを利用して共有鍵を生成し、共有鍵を利用してランダム値を暗号化することによって暗号化データを生成する。そして、OS36Aは、端末10Aの公開鍵(図示省略)と暗号化データと端末10AのCapabilityとを含むAuth ReqをAP6に送信する。端末10AのCapabilityは、DPP方式のConfiguratorのみとして動作可能であることを示す値を含む。
【0033】
AP6は、T22において、端末10AからAuth Reqを受信すると、T23において、Auth Reqに含まれる暗号化データの認証を実行する。具体的には、AP6は、Auth Reqに含まれる端末10Aの公開鍵とAP6の秘密鍵pkapとを利用して共有鍵を生成し、共有鍵を利用して暗号化データを復号する。AP6は、暗号化データの復号が成功する場合に、認証が成功したと判断し、T24以降の処理を実行する。
【0034】
T24では、AP6は、AP6のCapabilityを含むAuth Respnoseを端末10Aに送信する。以下では、Responseのことを「Res」と記載する。AP6のCapabilityは、DPP方式のEnrolleeのみとして動作可能であることを示す値を含む。
【0035】
OS36Aは、T24において、AP6からAuth Resを受信すると、Auth Resに含まれるAP6のCapability(即ちEnrollee)と、端末10A自身のCapability(即ちConfigurator)と、が衝突しないと判断する。そして、OS36Aは、T25において、Auth ConfirmをAP6に送信する。Auth Confirmは、端末10AがConfiguratorとして動作し、かつ、AP6がEnrolleeとして動作することを示す情報を含む。この結果、OS36Aは、T26において、Configuratorとして動作することを決定する。Configuratorは、後述のConfiguration Object(以下では「CO」と記載する)をEnrolleeに送信する役割を担うデバイスである。
【0036】
また、T28では、AP6は、Enrolleeとして動作することを決定する。Enrolleeは、ConfiguratorからCOを受信する役割を担うデバイスである。T22~T28の処理は、DPP方式のAuthに相当する。
【0037】
T30では、AP6は、Configuration Reqを端末10Aに送信する。以下では、Configurationのことを「Config」と記載する。Config Reqは、COの送信を要求する信号である。
【0038】
OS36Aは、T30において、AP6からConfig Reqを受信すると、AP用COを生成する。具体的には、OS36Aは、まず、Wi-Fi接続を確立するためにAP6によって利用されるべき情報であるAP用Signed Connector(以下では「SC」と記載する)を生成する。AP用SCは、例えば、無線ネットワークを識別する識別子であるグループIDを含む。そして、OS36Aは、AP用SCを含むAP用COを生成し、T32において、AP用COを含むConfig ResをAP6に送信する。
【0039】
AP6は、T32において、端末10AからConfig Resを受信すると、T34において、Config Resultを端末10Aに送信する。Config Resultは、Configが成功したことを示すコード「STATUS_OK」を含む。T30~T34の処理は、DPP方式のConfigに相当する。
【0040】
次いで、OS36Aは、Wi-Fi接続を確立するために端末10Aによって利用されるべき情報である端末用SCを生成する。端末用SCは、AP用SCに含まれるグループIDと同じグループIDを含む。そして、OS36Aは、T40において、端末用SCを含むDiscovery ReqをAP6に送信する。Discovery Reqは、相手のSCの送信を要求する信号である。
【0041】
AP6は、T40において、端末10AからDiscovery Reqを受信すると、AP用SCを利用して、Discovery Reqに含まれる端末用SCの認証を実行する。AP6は、端末用SCの認証が成功すると、接続キーを生成する。そして、AP6は、T42において、AP用SCを含むDiscovery Resを端末10Aに送信する。
【0042】
OS36Aは、T42において、AP6からDiscovery Resを受信すると、端末用SCを利用して、Discovery Resに含まれるAP用SCの認証を実行する。OS36Aは、AP用SCの認証が成功すると、接続キーを生成する。ここで生成される接続キーは、AP6によって生成される接続キーと同じである。即ち、端末10A及びAP6によって接続キーが共有される。T40及びT42の処理は、DPP方式のNetwork Accessに相当する。
【0043】
次いで、OS36Aは、接続キーを利用して、4way-handshakeの通信をAP6と実行する。この結果、T50において、端末10AとAP6との間にWi-Fi接続が確立される。これにより、AP6が親局として動作する無線ネットワークが形成され、端末10Aが当該無線ネットワークに子局として所属する。
【0044】
次いで、AP6は、T52において、Status Query Result(以下では「Result」と記載する)を端末10Aに送信する。Resultは、端末10AとAP6との間のWi-Fi接続が確立されたことを示す情報と、AP6のSSID「S1」と、を含む。
【0045】
OS36Aは、T52において、AP6からResultを受信することによって、AP6のSSID「S1」を取得する。
【0046】
(アプリの処理;
図3)
続いて、
図3を参照して、端末(例えば端末10A)にインストールされるアプリ(例えばアプリ38A)によって実行される処理を説明する。
図3の処理は、端末及びプリンタにおいて事前処理が実行されることに応じて、端末とプリンタとの間にWFD接続が確立されることをトリガとして開始される。事前処理については、
図4を参照して後述する。以下では、WFD接続が確立される端末、プリンタのことを、それぞれ、「対象端末」、「対象プリンタ」と記載する。また、
図3の処理を説明する際に、対象端末のCPUではなく、対象端末にインストールされているアプリ(以下では「対象アプリ」と記載する)を主体として記載する。
【0047】
図3の初期状態では、対象端末とAP6との間にWi-Fi接続が確立済みである。ここで、対象端末とAP6との間に確立されているWi-Fi接続は、DPP方式に従ったWi-Fi接続と、通常のWi-Fi方式に従ったWi-Fi接続と、のいずれか一方である。対象端末は、DPP方式に従ったWi-Fi接続をAP6と確立済みである場合には、AP6のSSID「S1」をメモリに記憶済みである(
図2のT52参照)。また、対象端末は、通常のWi-Fi方式に従ったWi-Fi接続をAP6と確立済みである場合にも、AP6のSSID「S1」をメモリに記憶済みである。即ち、対象端末は、DPP方式及び通常のWi-Fi方式のどちらに従ったWi-Fi接続がAP6確立済みである場合にも、AP6のSSID「S1」をメモリに記憶済みである。
【0048】
S10では、対象アプリは、認証画面SC1を対象端末の表示部に表示させる。認証画面SC1は、対象プリンタにログインするためのユーザ名及びPWを入力することを促すメッセージと、ユーザ名入力領域と、PW入力領域と、OKボタンと、キャンセルボタンと、を含む。以下では、ユーザ名及びPWの組合せのことを「ユーザ認証情報」と記載する。
【0049】
S12では、対象アプリは、ユーザからユーザ認証情報の入力を受け付ける。具体的には、対象アプリは、ユーザから、認証画面SC1において、ユーザ名及びPWの入力を受け付けた後に、OKボタンの選択を受け付ける。
【0050】
S14では、対象アプリは、確立済みのWFD接続を利用して、S12で入力されたユーザ認証情報を対象プリンタに送信する。
【0051】
S16では、対象アプリは、ユーザ認証が成功したのか否かを判断する。具体的には、まず、S14において、ユーザ認証情報が対象プリンタに送信されることに応じて、対象プリンタにおいて、当該ユーザ認証情報の認証が実行される。当該ユーザ認証情報が対象プリンタに記憶されている場合に認証が成功し、当該ユーザ認証情報が対象プリンタに記憶されていない場合に認証が失敗する。対象アプリは、確立済みのWFD接続を利用して、対象プリンタから認証が成功したことを示す情報を受信する場合に、ユーザ認証が成功したと判断し(S16でYES)、S20に進む。一方、対象アプリは、確立済みのWFD接続を利用して、対象プリンタから認証が失敗したことを示す情報を受信する場合に、ユーザ認証が失敗したと判断し(S16でNO)、S20以降の処理を実行することなく
図3の処理を終了する。
【0052】
仮に、ユーザ認証情報の認証が実行されない構成を採用すると、対象プリンタの正規のユーザではない第三者が、対象プリンタとAPとの間にWi-Fi接続を確立させ得る。本実施例では、ユーザ認証情報の認証が成功する場合にのみS20以降の処理が実行されるので、第三者が対象プリンタとAPとの間にWi-Fi接続を確立させることを抑制することができる。この結果、対象プリンタのセキュリティを高めることができる。
【0053】
S20では、対象アプリは、対象端末がDPP方式をサポートしているのか否かを判断する。具体的には、対象端末のメモリは、対象端末のWi-FiI/FがDPP方式をサポートしているのか否かを示す情報(図示省略)を記憶している。対象アプリは、DPP方式をサポートしていることを示す情報がメモリに記憶されている場合に、S20でYESと判断し、S22に進む。一方、対象アプリは、当該情報がメモリに記憶されていない場合に、S20でNOと判断し、S60に進む。
【0054】
S22では、対象アプリは、対象端末とAP6との間で、DPP方式に従った各種通信(即ち、
図2のT22~T52)を実行済みであるのか否かを判断する。具体的には、対象端末のメモリは、対象端末と対象APとの間でDPP方式に従った各種通信を実行済みである場合には、その旨を示す情報(例えばAP用CO)を記憶する。対象アプリは、当該情報がメモリに記憶されている場合に、S22でYESと判断し、S30に進む。一方、対象アプリは、当該情報がメモリに記憶されていない場合に、S22でNOと判断し、S60に進む。
【0055】
S30では、対象アプリは、WFD接続を利用して、OSI(Open System Interconnectionの略)参照モデルのネットワーク層以上の通信を実行することによって、問合せを対象プリンタに送信する。当該問合せは、対象プリンタがDPP方式をサポートしているのか否かを問い合わせると共に、対象プリンタのプリンタID、能力情報、及び、現在のステータスを問い合わせるための信号である。能力情報は、対象プリンタが実行可能な能力(例えばカラー印刷、両面印刷等)を示す情報である。
【0056】
S30では、対象アプリは、さらに、WFD接続を利用して、対象プリンタから応答を受信する。当該応答は、対象プリンタがDPP方式をサポートしているのか否かを示す情報と、プリンタIDと、能力情報と、ステータスと、を含む。また、対象プリンタがDPP方式をサポートしている場合、当該応答は、さらに、MACアドレスと、チャネル情報と、を含む。MACアドレス及びチャネル情報は、後述の公開鍵と合わせて、DPP方式に従った各種通信(例えばAuth)において利用される情報である。
【0057】
S32では、対象アプリは、対象プリンタがDPP方式をサポートしているのか否かを判断する。具体的には、対象アプリは、DPP方式をサポートしていることを示す情報を含む応答を受信した場合に、S32でYESと判断し、S34に進む。一方、対象アプリは、S30において、DPP方式をサポートしていないことを示す情報を含む応答を受信した場合に、S32でNOと判断し、S62に進む。
【0058】
S34では、対象アプリは、確認画面SC2を対象端末の表示部に表示させる。確認画面SC2は、対象プリンタとAP6との間のWi-Fi接続を確立させるための処理を実行するのか否かをユーザに問い合わせるための画面であり、S30で受信済みの各情報の一部(即ち、プリンタID、能力情報、ステータス)と、OKボタンと、キャンセルボタンと、を含む。ユーザは、確認画面SC2を見ることによって、AP6とWi-Fi接続を確立すべきプリンタ(即ち対象プリンタ)の情報を確認することができる。
【0059】
S36では、対象アプリは、確認画面SC2内のOKボタンが選択されたのか、キャンセルボタンが選択されたのか、を判断する。対象アプリは、OKボタンが選択される場合に、S36でYESと判断してS40に進み、キャンセルボタンが選択される場合に、S36でNOと判断して、S40以降の処理を実行することなく
図3の処理を終了する。
【0060】
S40では、対象アプリは、S30で受信済みの応答に含まれるMACアドレスを利用して、対象プリンタによって利用されるべき公開鍵を生成する。
【0061】
S42では、対象アプリは、WFD接続を利用して、OSI参照モデルのネットワーク層以上の通信を利用することによって、生成済みの公開鍵を対象プリンタに送信する。このために、対象プリンタは、対象プリンタの公開鍵を取得することができる。S40及びS42の処理は、DPP方式のBootstrappingに相当する。
【0062】
S44では、対象アプリは、WFD接続を利用して、ネットワーク層以上の通信を実行することによって、移行要求を対象プリンタに送信する。移行要求は、対象プリンタの状態を、DPP非応答状態からDPP応答状態に移行させることを要求する信号である。ここで、DPP非応答状態は、Auth Resを送信不可能な状態であり、DPP応答状態は、Auth Resを送信可能な状態である。このために、プリンタ100Aは、端末10AからAuth Reqを受信することに応じて、Auth Resを端末10Aに送信することができる。また、DPP応答状態は、通常、DPP非応答状態と比較してプリンタの処理負荷が高い状態である。これからAuthが実行されるタイミングで移行要求が対象プリンタに送信されて対象プリンタがDPP応答状態に移行するので、対象プリンタの処理負荷を低減することができる。
【0063】
S50では、対象アプリは、DPP開始指示を対象端末のOSに供給する。DPP開始指示は、S40で生成済みの公開鍵と、S30で受信済みの応答に含まれるMACアドレスと、S30で受信済みの応答に含まれるチャネル情報と、を含む。DPP開始指示がOSによって取得されると、対象端末と対象プリンタとの間、及び、対象プリンタとAP6との間でDPP方式に従った各種通信が実行され、対象プリンタとAP6との間にDPP方式に従ったWi-Fi接続が確立される。S50の処理が終了すると、
図3の処理が終了する。
【0064】
また、S60では、対象アプリは、WFD接続を利用して、ネットワーク層以上の通信を実行することによって、問合せを対象プリンタに送信し、対象プリンタから応答を受信する。当該問合せは、対象プリンタがDPP方式をサポートしているのか否かを問い合わせない点を除いて、S30で送信される問合せと同様である。また、S60で受信される応答は、対象プリンタがDPP方式をサポートしているのか否かを示す情報を含まない点を除いて、S30で受信される応答と同様である。
【0065】
S62では、対象アプリは、確認画面SC2を対象端末の表示部に表示させる。対象アプリは、S30を経たS62では、S30で受信された各情報(即ち、プリンタID、能力情報、ステータス)を含む確認画面SC2を表示させる。対象アプリは、S60を経たS62では、S60で受信された各情報の一部(即ち、プリンタID、能力情報、ステータス)を含む確認画面SC2を表示させる。
【0066】
S64では、対象アプリは、確認画面SC2内のOKボタンが選択されたのか、キャンセルボタンが選択されたのか、を判断する。対象アプリは、OKボタンが選択される場合に、S64でYESと判断してS66に進み、キャンセルボタンが選択される場合に、S64でNOと判断して、S66以降の処理を実行することなく
図2の処理を終了する。
【0067】
S66では、対象アプリは、AP6のSSID「S1」を取得する。具体的には、対象アプリは、SSID要求を対象端末のOSに供給して、対象端末のOSからAP6のSSID「S1」を取得する。
【0068】
S70では、対象アプリは、入力画面SC3を対象端末の表示部に表示させる。入力画面SC3は、PWの入力を促すメッセージと、S66で取得済みのSSID「S1」と、PW入力領域と、OKボタンと、キャンセルボタンと、を含む(
図6参照)。
【0069】
S72では、対象アプリは、PWの入力を受け付けたのか否かを判断する。具体的には、対象アプリは、入力画面SC3において、PWの入力とOKボタンの選択とを受け付ける場合に、S72でYESと判断し、S74に進む。一方、対象アプリは、入力画面SC3において、キャンセルボタンの選択を受け付ける場合に、S72でNOと判断し、S74の処理を実行することなく
図3の処理を終了する。
【0070】
S74では、対象アプリは、WFD接続を利用して、S66で取得済みのSSID及びS72で入力済みのPWを対象プリンタに送信する。この結果、対象プリンタにおいてSSID及びPWが利用されることによって、対象プリンタとAP6との間に通常のWi-Fi方式に従ったWi-Fi接続が確立される。S74の処理が終了すると、
図3の処理が終了する。
【0071】
(ケースA-1;
図4及び
図5)
続いて、
図3の処理によって実現される具体的なケースを説明する。まず、
図4及び
図5を参照して、DPP方式に従ったWi-Fi接続をAP6と確立済みである端末10Aを利用して、プリンタ100AとAP6との間にWi-Fi接続を確立させるケースA-1を説明する。
図4の初期状態では、端末10AとAP6との間にDPP方式に従ったWi-Fi接続が確立済みである。即ち、
図4の初期状態では、端末10A及びAP6において、
図2の処理が実行済みであり、AP6は、AP用COを記憶済みである(
図2のT32参照)。
図4では、まず、T110~T140の事前処理が実行される。
【0072】
T110では、プリンタ100Aは、ユーザからセットアップ開始操作を受け付ける。この場合、プリンタ100Aは、T112において、WFD方式のG/O状態に移行する。プリンタ100AがG/O状態として動作する無線ネットワークでは、SSID「S2」及びPW「P2」が利用される。このように、プリンタ100Aは、ユーザからセットアップ開始操作を受け付けることに応じてG/O状態に移行するので、ユーザが望むタイミングでG/O状態に移行することができる。
【0073】
T114では、プリンタ100Aは、SSID「S2」及びPW「P2」をコード化することによって得られるQRコードを表示部114Aに表示する。
【0074】
T120~T126の処理は、
図2のT10~T16の処理と同様である。また、T128の処理は、端末10Aによって撮影されるQRコードが、T114で表示されたQRコードである点を除いて、
図2のT28の処理と同様である。
【0075】
T130では、アプリ38Aは、撮影済みのQRコードをデコードする。この結果、アプリ38Aは、SSID「S2」及びPW「P2」を取得する。
【0076】
T132では、アプリ38Aは、WFD接続指示をOS36Aに供給する。WFD接続指示は、SSID「S2」及びPW「P2」を含む。
【0077】
OS36Aは、T132において、アプリ38AからWFD接続指示を取得すると、T140において、プリンタ100AとWFD接続を確立する。具体的には、OS36Aは、Authentication、Association、4way-handshake等の各種通信をプリンタ100Aと実行する。当該各種通信の過程において、プリンタ100AにおいてSSID「S2」及びPW「P2」を利用した認証が実行され、当該認証が成功する場合に、端末10Aとプリンタ100Aとの間にWFD接続が確立される。このように、SSID「S2」及びPW「P2」がコード化されたQRコードがプリンタ100Aによって表示され、当該QRコードが端末10Aによって読み取られるので、端末10Aとプリンタ100Aとの間にWFD接続が適切に確立される。なお、図示省略しているが、端末10Aとプリンタ100Aとの間にWFD接続が確立されると、WFD接続が確立されたことを示す情報がOS36Aからアプリ38Aに供給される。また、WFD接続が利用される以下の全ての通信は、OSI参照モデルのネットワーク層以上の通信である。
【0078】
アプリ38Aは、OS36AからWFD接続が確立されたことを示す情報を取得する(
図3の処理のトリガ)と、T142において、認証画面SC1(
図3参照)を表示する(S10)。
【0079】
T144では、アプリ38Aは、ユーザからユーザID「U1」及びPW「P3」の入力を受け付けた後に、OKボタンの選択を受け付ける(S12)。この場合、アプリ38Aは、T150において、WFD接続を利用して、入力済みのユーザID「U1」及びPW「P3」を含むユーザ認証情報をプリンタ100Aに送信する(S14)。
【0080】
プリンタ100Aは、T150において、端末10Aからユーザ認証情報を受信すると、当該ユーザ認証情報の認証を実行する。本ケースでは、プリンタ100Aは、T152において、認証が成功したと判断し、T154において、WFD接続を利用して、認証が成功したことを示す情報を端末10Aに送信する。
【0081】
アプリ38Aは、T154において、プリンタ100Aから認証が成功したことを示す情報を受信すると(S16でYES)、端末10AがDPP方式をサポートしており(S20でYES)、かつ、端末10AとAP6との間でDPP方式に従った各種通信が実行済みである(S22でYES)ので、T160において、WFD接続を利用して、問合せをプリンタ100Aに送信する(S30)。
【0082】
プリンタ100Aは、T160において、端末10Aから問合せを受信すると、T162において、WFD接続を利用して、応答を端末10Aに送信する。当該応答は、プリンタ100AがDPP方式をサポートしていることを示す情報と、プリンタ100AのMACアドレス140Aと、チャネル情報CI2と、プリンタ100Aの各情報(即ち、プリンタID「AAA」、能力情報、ステータス)と、を含む。チャネル情報CI2は、プリンタ100Aが利用可能な複数のチャネル(換言すると周波数の幅)のうちの1個以上のチャネルを示す情報である。
【0083】
アプリ38Aは、T162において、プリンタ100Aから応答を受信すると(S30)、プリンタ100AがDPP方式をサポートしていると判断し(S32でYES)、T164において、確認画面SC2(
図3参照)を表示する(S34)。その後、T166において、アプリ38Aは、ユーザから、確認画面SC2内のOKボタンの選択を受け付ける(S36でYES)。
【0084】
(
図4の続き;
図5)
図5のT170では、アプリ38Aは、
図4のT162で受信済みのプリンタ100AのMACアドレス140Aを利用して、プリンタ140Aによって利用されるべき公開鍵PKprを生成する(
図3のS40)。そして、アプリ38Aは、T172において、WFD接続を利用して、生成済みの公開鍵Pkprをプリンタ100Aに送信する(S42)。
【0085】
プリンタ100Aは、T172において、端末10Aから公開鍵PKprを受信すると、T174において、受信済みの公開鍵PKprに対応する秘密鍵pkprを生成する。
このために、プリンタ100Aは、端末10Aから公開鍵PKprを受信する前から、公開鍵PKpr及び秘密鍵pkprを記憶しておく必要がない。特に、プリンタ100Aは、公開鍵PKprを生成せずに済む。
【0086】
また、アプリ38Aは、T176において、WFD接続を利用して、移行要求をプリンタ100Aに送信する(S44)。
【0087】
プリンタ100Aは、T176において、端末10Aから移行要求を受信すると、T178において、プリンタ100Aの状態をDPP非応答状態からDPP応答状態に移行させる。
【0088】
アプリ38Aは、T180において、DPP開始指示をOS36Aに供給する(S50)。DPP開始指示は、T172で受信済みの公開鍵PKprと、T162で受信済みのMACアドレス140Aと、T162で受信済みのチャネル情報CI2と、を含む。
【0089】
T182~T196の処理は、各処理を実行する主体が異なる点、及び、各処理において利用される情報が異なる点を除いて、
図2のT22~T42の処理と同様である。特に、OS36Aは、プリンタ100Aが利用可能なチャネルを利用してAuth Reqを送信するので、Auth Reqをプリンタ100Aに適切に受信させることができる。T182~T196の処理の後に、T198において、プリンタ100AとAP6との間にDPP方式に従ったWi-Fi接続が確立される。T199の処理は、当該処理を実行する主体が異なる点を除いて、T52の処理と同様である。
【0090】
上記の各処理によって、端末10A及びプリンタ100Aの双方がAP6によって形成される無線ネットワークに所属する。これにより、プリンタ100Aは、端末10AからAP6を介して印刷データを受信して、当該印刷データに従った印刷を実行することができる。
【0091】
(ケースA-2;
図6)
続いて、
図6を参照して、通常のWi-Fi方式に従ったWi-Fi接続をAP6と確立済みである端末10Aを利用して、プリンタ100AとAP6との間にWi-Fi接続を確立させるケースA-2を説明する。
図6の初期状態は、端末10AとAP6との間に通常のWi-Fi方式に従ったWi-Fi接続が確立済みである点を除いて、
図4の初期状態と同様である。即ち、
図6の初期状態では、
図2の処理は実行されておらず、端末10AとAP6との間には、SSID「S1」及びPW「P1」が利用されたWi-Fi接続が確立されている。
【0092】
図6では、まず、
図4のT110~T154と同様の処理が実行される。そして、アプリ38Aは、
図6で参照するT154において、プリンタ100Aから認証が成功したことを示す情報を受信すると(
図3のS16でYES)、端末10AがDPP方式をサポートしており(S20でYES)、端末10AとAP6との間でDPP方式に従った各種通信が実行済みでないので(S22でNO)、T260において、WFD接続を利用して、問合せをプリンタ100Aに送信する(S60)。
【0093】
プリンタ100Aは、T260において、端末10Aから問合せを受信すると、T262において、WFD接続を利用して、応答を端末10Aに送信する。当該応答は、プリンタ100AがDPP方式をサポートしているのか否かを示す情報、MACアドレス、及びチャネル情報を含まない点を除いて、
図4のT162で送信される応答と同様である。T264及びT266の処理は、T164及びT166の処理と同様である。
【0094】
アプリ38Aは、T270において、SSID要求をOS36Aに供給する。
【0095】
OS36Aは、T270において、アプリ36AからSSID要求を取得すると、T272において、端末10AがWi-Fi接続を現在確立しているAP6のSSID「S1」をアプリ38Aに供給する。この結果、アプリ38Aは、AP6のSSID「S1」を取得する(S66)。
【0096】
アプリ38Aは、T274において、入力画面SC3を表示する(S70)。入力画面SC3は、T272で取得済みのSSID「S1」を含む。
【0097】
アプリ38Aは、T276において、ユーザからPW「P1」の入力を受け付けた後に、OKボタンの選択を受け付ける(S72でYES)。この場合、アプリ38Aは、T278において、WFD接続を利用して、SSID「S1」及びPW「P1」をプリンタ100Aに送信する(S74)。
【0098】
プリンタ100Aは、T278において、端末10AからSSID「S1」及びPW「」を受信する。この結果、プリンタ100Aは、T280において、通常のWi-Fi方式に従ったWi-Fi接続をAP6と確立する。具体的には、プリンタ100Aは、Authentication、Association、4way-handshake等の各種通信をAP6と実行する。当該各種通信の過程において、AP6においてSSID「S1」及びPW「P1」を利用した認証が実行され、当該認証が成功する場合に、プリンタ100AとAP6との間に通常のWi-Fi方式に従ったWi-Fi接続が確立される。本ケースでも、端末10A及びプリンタ100Aの双方がAP6によって形成される無線ネットワークに所属することができる。
【0099】
(ケースB;
図7)
続いて、
図7を参照して、通常のWi-Fi方式に従ったWi-Fi接続をAP6と確立済みである端末10Bを利用して、プリンタ100AとAP6との間にWi-Fi接続を確立させるケースBを説明する。T310~T354の処理は、
図4のT110~T154の処理と同様である。
【0100】
アプリ38Bは、T354において、プリンタ100Aから認証が成功したことを示す情報を受信すると(
図3のS16でYES)、端末10BがDPP方式をサポートしていないので(S20でNO)、T360において、問合せをプリンタ100Aに送信する(S60)。T360~T380の処理は、
図6のT260~T280の処理と同様である。本ケースでは、端末10B及びプリンタ100Aの双方がAP6によって形成される無線ネットワークに所属することができる。
【0101】
(ケースC;
図8)
続いて、
図8を参照して、DPP方式に従ったWi-Fi接続をAP6と確立済みである端末10Aを利用して、プリンタ100BとAP6との間にWi-Fi接続を確立させるケースCを説明する。T410~T460の処理は、端末10Aとプリンタ100Bの間にWFD接続を確立するために利用されるSSID及びPWがそれぞれSSID「S4」及びPW「P4」である点を除いて、
図4のT110~T160の処理と同様である。また、T462の処理は、応答が、プリンタ100BがDPP方式をサポートしていないことを示す情報と、プリンタ100Bの各情報(即ち、プリンタID「BBB」、能力情報、ステータス)と、を含むとともに、プリンタ100BのMACアドレス及びチャネル情報を含まない点を除いて、T162の処理と同様である。
【0102】
アプリ38Aは、T462において、プリンタ100Bから応答を受信すると(S30)、プリンタ100BがDPP方式をサポートしていないと判断し(S32でNO)、T464において、確認画面SC2を表示する(S62)。T466~T480の処理は、
図6のT266~T280の処理と同様である。本ケースでは、端末10A及びプリンタ100Bの双方がAP6によって形成される無線ネットワークに所属することができる。
【0103】
(本実施例の効果)
上記の構成によると、端末10Aは、DPP方式をサポートしているプリンタ100Aと、DPP方式に従った各種通信を実行することによって(
図5のT182~T196)、プリンタ100AとAP6との間にDPP方式に従ったWi-Fi接続を確立させることができる。また、端末10Aは、DPP方式をサポートしていないプリンタ100Bと、通常のWi-Fi方式に従った各種通信を実行することによって、プリンタ100BとAP6との間に通常のWi-Fi方式に従ったWi-Fi接続を確立させることができる。このように、端末10Aは、各プリンタ100A,100BとAP6との間に適切な方式に従ったWi-Fi接続を確立させることができる。
【0104】
また、プリンタ100Aは、プリンタ用SCを含むプリンタ用COを受信することによって(
図5のT192)、DPP方式に従って、AP6とのWi-Fi接続を確立する(T198)。一方、プリンタ100Aは、DPP方式をサポートしていない端末10Bから、AP6によって形成される無線ネットワークのSSID「S1」及びPW「P1」を受信することによって(
図7のT378)、通常のWi-Fi方式に従って、AP6とのWi-Fi接続を確立する(T380)。特に、プリンタ100Aは、DPP方式をサポートしている端末10Aからプリンタ用SCを含むプリンタ用COを受信し、DPP方式をサポートしていない端末10BからSSID「S1」及びPW「P1」を受信する。このように、プリンタ100Aは、端末10A又は10Bを利用して、プリンタ100AとAP6との間に適切な方式に従ったWi-Fi接続を確立することができる。
【0105】
特に、プリンタ100Aは、DPP方式に従ってAP6とWi-Fi接続を確立することも(
図4、
図5のケースA-1)、通常のWi-Fi方式に従ってAP6とWi-Fi接続を確立することもできる(
図6のケースA-2)。そして、アプリ38Aは、プリンタ100AとAP6との間にDPP方式に従ったWi-Fi接続を確立できる場合には、DPP方式に従ったWi-Fi接続を確立させることを優先させる(
図3のS32でYESの場合にS34~S50を実行する)。上記の通り、DPP方式では、ユーザがPWの入力を実行する必要がない。このように、DPP方式に従ったWi-Fi接続を確立させることを優先させることによって、ユーザが実行すべき操作が少なくなり得るので、ユーザの利便性が向上し得る。
【0106】
また、端末10AとAP6との間でDPP方式に従った各種通信を実行済みでない場合に、端末10AとAP6との間でDPP方式に従った各種通信を実行することをユーザに促す比較例を想定する。この比較例では、プリンタ100AとAP6との間にWi-Fi接続を確立させるための各種処理を中断して端末10AとAP6との間でDPP方式に従った各種通信を実行することになる。このため、プリンタ100AとAP6との間にWi-Fi接続を確立させるまでに比較的時間がかかる。一方、本実施例では、端末10AとAP6との間で、DPP方式に従った各種通信を実行済みでない場合(
図3のS22でNO)に、通常のWi-Fi方式に従って、プリンタ100AとAP6との間にWi-Fi接続を確立させる。従って、上記の比較例のようにプリンタ100AとAP6との間にWi-Fi接続を確立させるための各種処理を中断しなくて済むので、比較的迅速にプリンタ100AとAP6との間にWi-Fi接続を確立させることができる。
【0107】
また、一般的に、AP6のSSID「S1」はAP6の管理者によって変更され得るが、AP用SCを含むAP用COは管理者によって変更不可能である。従って、DPP方式に従ったWi-Fi接続では、管理者によってAP6のSSID「S1」が変更されたとしても、プリンタ100AとAP6との間に確立されたWi-Fi接続が切断されない。このために、DPP方式に従ったWi-Fi接続を確立させることを優先させることによって、プリンタ100AとAP6との間のWi-Fi接続が切断される可能性を低くすることができる。
【0108】
また、プリンタ100AとAP6との間にDPP方式に従ったWi-Fi接続を確立させる際に利用されるQRコードと、プリンタ100AとAP6との間に通常のWi-Fi方式に従ったWi-Fi接続を確立させる際に利用されるQRコードと、が異なる比較例を想定する。この比較例では、Wi-Fi接続の知識に乏しいユーザは、どちらのQRコードを利用してプリンタ100AとAP6との間にWi-Fi接続を確立させるべきかがわからず、この結果、プリンタ100AとAP6との間にWi-Fi接続が確立されない可能性がある。一方、本実施例では、ユーザは、DPP方式に従ったWi-Fi接続が確立されるべき状況でも、通常のWi-Fi方式に従ってWi-Fi接続が確立されるべき状況でも、プリンタ100Aに表示される同じQRコード(
図4のT114参照)を撮影すれば、適切な方式に従ってプリンタ100AとAP6との間にWi-Fi接続を確立させることができる。このため、ユーザの利便性が向上する。
【0109】
また、アプリ38Aは、OSI参照モデルのネットワーク層以上の通信を実行することによって、公開鍵PKprをプリンタ100Aに送信する(
図3のS42、
図5のT172)。このように、アプリ38Aは、ネットワーク層以上の通信を実行するので、例えば、Probe Req等のネットワーク層より下層のレイヤの通信を実行することによって公開鍵PKprを送信する構成と比較して、公開鍵PKprをセキュアに送信し得る。このために、プリンタ100AとAP6との間に無線接続をセキュアに確立させ得る。
【0110】
(対応関係)
ケースA-1及びケースA-2では、プリンタ100A、端末10Aが、それぞれ、「通信装置」、「端末装置」の一例である。ケースBでは、プリンタ100A、端末10Bが、それぞれ、「通信装置」、「端末装置」の一例である。ケースCでは、プリンタ100B、端末10Aが、それぞれ、「通信装置」、「端末装置」の一例である。AP6が、「外部装置」の一例である。DPP方式、通常のWi-Fi方式が、それぞれ、「所定方式」、「異なる方式」の一例である。プリンタ100Aの公開鍵PKpr、プリンタ100Aの秘密鍵が、それぞれ、「公開鍵」、「秘密鍵」の一例である。プリンタ用SCを含むプリンタ用COが、「第1の接続情報」の一例である。プリンタ100AがG/Oとして動作する無線ネットワークのSSID「S2」及びPW「P2」が、「第2の接続情報」の一例である。AP6のSSID「S1」及びPW「P1」が、「第3の接続情報」の一例である。プリンタ100Aの表示部114Aが、「出力部」の一例である。WFD方式のG/O状態が、「親局状態」の一例である。ユーザID「U1」及びPW「P3」の組合せが、「ユーザ認証情報」の一例である。プリンタ100AのMACアドレス140Aが、「識別情報」の一例である。プリンタID、能力情報、及びステータスが、「装置情報」の一例である。チャネル情報CI2が、「チャネル情報」の一例である。応答に含まれるDPP方式をサポートしているのか否かを示す情報が、「可否情報」の一例である。
【0111】
図4のT140で確立されるWFD接続、
図5のT198で確立されるWi-Fi接続、
図6のT280で確立されるWi-Fi接続が、それぞれ、「第1の無線接続」、「第2の無線接続」、「第3の無線接続」の一例である。
図4のT110で受け付けられるセットアップ開始操作が、「確立指示」の一例である。
【0112】
図4のT110の処理、T112の処理、T114の処理が、それぞれ、「通信装置」の「受付部」、「第2の移行部」、「出力制御部」によって実行される処理の一例である。T140の処理、T150の処理、T162の処理が、それぞれ、「通信装置」の「第1の確立部」、「認証情報受信部」、「装置情報送信部(識別情報送信部、及びチャネル情報送信部)」によって実行される処理の一例である。
図5のT172の処理、T174の処理、T176の処理、T178の処理が、それぞれ、「通信装置」の「公開鍵受信部」、「秘密鍵生成部」、「移行要求受信部」、「第1の移行部」によって実行される処理の一例である。T182の処理、T183の処理、T184の処理、T192の処理、T198の処理が、それぞれ、「通信装置」の「認証要求受信部」、「認証実行部」、「認証応答送信部」、「第1の接続情報受信部」、「第2の確立部」によって実行される処理の一例である。
図7のT378の処理、T380の処理が、それぞれ、「通信装置」の「第2の接続情報受信部」、「第3の確立部」によって実行される処理の一例である。
【0113】
図3のS14の処理が、「コンピュータプログラム」の「認証情報送信部」によって実行される処理の一例である。S30の処理が、「コンピュータプログラム」の「識別情報受信部」、「チャネル情報受信部」、「装置情報受信部」、及び「可否情報受信部」によって実行される処理の一例である。また、S60の処理が、「コンピュータプログラム」の「装置情報受信部」によって実行される処理の一例である。S34及びS62の処理、S40の処理、S42の処理、S44の処理が、それぞれ、「コンピュータプログラム」の「表示制御部」、「公開鍵生成部」、「公開鍵送信部」、「移行要求送信部」によって実行される処理の一例である。S50の処理、S66~S74の処理が、それぞれ、「コンピュータプログラム」の「第1の通信制御部」、「第2の通信制御部」によって実行される処理の一例である。特に、S74の処理が、「第2の接続情報送信処理」の一例である。
図5のT182の処理、T184の処理、T192の処理が、それぞれ、「端末装置」の「認証要求送信処理」、「認証応答受信処理」、「第1の接続情報送信処理」の一例である。
【0114】
(第2実施例)
続いて、第2実施例を説明する。第2実施例は、
図3のS22の処理に代えて
図9のS122の処理が実行される点、
図3のS50の具体的な処理が異なる点、及び、
図3のS66の具体的な処理が異なり得る点が、第1実施例とは異なる。
【0115】
(アプリケーションの処理;
図9)
図9を参照して、第2実施例のアプリケーションによって実行される処理を説明する。なお、
図9の初期状態では、対象端末とAP(例えばAP6)との間にWi-Fi接続が確立されていなくてもよい。
【0116】
図9のS16でYESと判断される場合に、対象アプリは、S122において、対象端末とAP6との間にWi-Fi接続が確立済みであるのか否かを判断する。具体的には、対象端末のメモリは、対象端末とAP6との間にWi-Fi接続が確立されているのか否かを示すフラグ情報(図示省略)を記憶している。対象アプリは、対象端末とAP6との間にWi-Fi接続が確立済みであることを示すフラグ情報がメモリに記憶されている場合に、S122でYESと判断して、S20に進む。一方、対象アプリは、対象端末とAP6との間にWi-Fi接続が確立済みでないことを示すフラグ情報がメモリに記憶されている場合に、S122でNOと判断して、S60に進む。
【0117】
なお、対象アプリは、S122でYESと判断される場合には、対象端末とAP6との間に確立されているWi-Fi接続が、DPP方式に従ったWi-Fi接続であるのか、通常のWi-Fi方式に従ったWi-Fi接続であるのか、を判断し、その判断結果を記憶する。即ち、対象端末とAP6との間で、DPP方式に従った各種通信を実行済みであるのか否かを判断し、その判断結果を記憶する。その具体的な処理は、
図3のS22の処理と同様である。
【0118】
S150では、対象アプリは、DPP開始指示を対象端末のOSに供給する。DPP開始指示は、公開鍵、MACアドレス、及びチャネル情報に加えて、対象端末とAP6との間に確立されているWi-Fi接続が、DPP方式に従ったWi-Fi接続であるのか、通常のWi-Fi方式に従ったWi-Fi接続であるのか、を示す情報(S122参照)を含む。この情報は、対象端末と対象プリンタとの間でConfigが実行される際に利用される。
【0119】
また、
図9のS166では、S122でNOを経た場合と、S20でNO、又はS32でNOを経た場合と、で具体的な処理が異なる。S20でNO、又はS32でNOを経たS166の具体的な処理は、
図2のS66の処理と同様である。
【0120】
S122でNOを経たS166では、対象アプリは、Probe Reqをブロードキャストによって送信し、対象端末の周囲に存在するAPから、当該APのSSIDを含むProbe Resを受信することによって、APのSSIDを取得する。なお、対象アプリは、1個以上のSSIDが取得される場合に、S70の処理を実行する前に、1個以上のSSIDの中から1個のSSIDをユーザに選択させるための選択画面を対象端末の表示部に表示させてもよい。そして、対象アプリは、S70において、取得済みのSSIDのうちの1個のSSIDを含む入力画面SC3を対象端末の表示部に表示させる。変形例では、対象アプリは、S122でNOを経た場合、S166の処理を省略してもよい。この場合、S70の処理に代えて、SSIDの入力欄と、PWの入力欄と、OKボタンと、キャンセルボタンと、を含む入力画面を対象端末の表示部に表示させてもよい。そして、対象アプリは、S72において、SSID及びPWの入力を受け付けた後にOKボタンの選択を受け付ける場合に、S74において、入力済みのSSID及びPWを対象プリンタに送信してもよい。
【0121】
(ケースD-1;
図10)
続いて、
図9の処理によって実行される具体的なケースを説明する。まず、
図10を参照して、DPP方式に従ったWi-Fi接続をAP6と確立済みである端末10Aを利用して、プリンタ100AとAP6との間にWi-Fi接続を確立させるケースD-1を説明する。
図10は、
図4の続きの処理である。即ち、ケースD-1では、端末10AとAP6との間にDPP方式に従ったWi-Fi接続が確立済みであり(
図9のS122でYES、S20でYES)、かつ、プリンタ100AがDPP方式をサポートしている(S32でYES)。
【0122】
まず、ケースD-1では、
図5のT170~T178と同様の処理が実行される。その後、アプリ38Aは、T510において、DPP開始指示をOS36Aに供給する(S150)。DPP開始指示は、公開鍵PKprと、MACアドレス140Aと、チャネル情報CI2と、端末10AとAP6との間にDPP方式に従ったWi-Fi接続が確立済みであることを示す情報と、を含む。その後、T182~T188と同様の処理が実行される。
【0123】
T520~T524では、DPP方式のConfigが実行される。T520~T524の処理は、
図5のT190~T194の処理と同様である。その後、
図5のT195~T199と同様の処理が実行され、プリンタ100AとAP6との間にDPP方式に従ったWi-Fi接続が確立される。本ケースでも、端末10A及びプリンタ100Aの双方がAP6によって形成される無線ネットワークに所属することができる。
【0124】
(ケースD-2;
図10)
続いて、
図10を参照して、通常のWi-Fi方式に従ったWi-Fi接続をAP6と確立済みである端末10Aを利用して、プリンタ100AとAP6との間にWi-Fi接続を確立させるケースD-2を説明する。ケースD-2では、端末10AとAP6との間に、SSID「S1」及びPW「P1」が利用されたWi-Fi接続(即ち、通常のWi-Fi方式に従ったWi-Fi接続)が確立済みであり(S122でYES)、かつ、端末10AがDPP方式をサポートしており(S22でYES)、かつ、プリンタ100AがDPP方式をサポートしている(S32でYES)。
【0125】
まず、ケースD-2では、
図4のT110~T166の処理、及び、
図5のT170~T178と同様の処理が実行される。その後、アプリ38Aは、T530において、DPP開始指示をOS36Aに供給する。DPP開始指示は、公開鍵PKprと、MACアドレス140Aと、チャネル情報CI2と、端末10AとAP6との間に通常のWi-Fi方式に従ったWi-Fi接続が確立済みであることを示す情報と、を含む。その後、T182~T188と同様の処理が実行される。
【0126】
T540~T544では、DPP方式のConfigが実行される。T540~T544の処理は、T542において端末10Aからプリンタ100Aに送信されるプリンタ用COが、AP6のSSID「S1」及びPW「P1」を含む点を除いて、
図5のT190~T194の処理と同様である。
【0127】
T550では、プリンタ100Aは、通常のWi-Fi方式に従ったWi-Fi接続をAP6と確立する。具体的には、プリンタ100Aは、Authentication、Association、4way-handshake等の各種通信をAP6と実行する。当該各種通信の過程において、AP6においてSSID「S1」及びPW「P1」を利用した認証が実行され、当該認証が成功する場合に、プリンタ100AとAP6との間に通常のWi-Fi方式に従ったWi-Fi接続が確立される。T552の処理は、T199の処理と同様である。本ケースでも、端末10A及びプリンタ100Aの双方がAP6によって形成される無線ネットワークに所属することができる。AP6のSSID「S1」及びPW「P1」を含むプリンタ用COが、「第1の接続情報」の一例である。
【0128】
(ケースE;
図11)
続いて、
図11を参照して、APとのWi-Fi接続を確立済みでない端末10Aを利用して、プリンタ100AとAP6との間にWi-Fi接続を確立させるケースEを説明する。
図11の初期状態では、端末10AとAP6との間にWi-Fi接続が確立されていない(S122でNO)。
【0129】
まず、ケースEでは、
図4のT110~T154と同様の処理が実行される。T660~T666の処理は、
図6のT260~T266の処理と同様である。
【0130】
T670では、アプリ38Aは、Probe Reqをブロードキャストによって送信し、T672において、AP6からProbe Resを受信する。Probe Resは、AP6のSSID「S1」を含む。T674~T680の処理は、
図6のT274~T280の処理と同様である。このように、端末10AがAP6とWi-Fi接続を確立済みでない状況でも、プリンタ100AとAP6との間にWi-Fi接続を確立させることができる。
【0131】
(本実施例の効果)
上記のように、プリンタ100Aは、端末10AがAP6とのWi-Fi接続を確立済みである場合(
図10のケースD-1及びケースD-2)、プリンタ用SC(又はAP6のSSID「S1」及びPW「P1」)を含むプリンタ用COを受信することによって(
図10のT522(又は
図10のT542))、AP6とのWi-Fi接続を確立する(
図10で参照する
図5のT198(又はT550))。一方、プリンタ100Aは、端末10AがAP6とのWi-Fi接続を確立済みでない場合(
図11のケースE)、端末10AからAP6によって形成される無線ネットワークのSSID「S1」及びPW「P1」を受信することによって(
図11のT678)、AP6とのWi-Fi接続を確立する(T680)。このように、プリンタ100Aは、端末10Aから受信される情報に応じて、AP6とのWi-Fi接続を適切に確立することができる。
【0132】
(第3実施例)
続いて、第3実施例を説明する。第3実施例は、
図3のS30及びS32の処理が実行されるタイミングが異なる。また、第3実施例では、S60の処理は実行されない。以下では、第1実施例とは異なる点を中心に説明する。また、
図12では、第1実施例と同様の処理のステップには同じステップ番号を付し、その詳細な説明を省略する。
【0133】
(アプリケーションの処理;
図12)
図12を参照して、第3実施例のアプリケーションによって実行される処理を説明する。
図12のS16でYESと判断される場合に、対象アプリは、S30及びS32の処理を実行する。対象アプリは、S32でYESと判断する場合にS20に進み、S32でNOと判断する場合にS62に進む。また、対象アプリは、S20でNOと判断される場合に、S62に進む。同様に、対象アプリは、S22でNOと判断される場合に、S62に進む。
【0134】
即ち、第3実施例では、端末がDPP方式をサポートしているのか否かの判断に先立って、プリンタがDPP方式をサポートしているのか否かを判断する。このような場合でも、端末は、プリンタとAPとの間に適切な方式に従ったWi-Fi接続を確立させることができる。
【0135】
以上、本明細書が開示する技術の具体例を詳細に説明したが、これらは例示に過ぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には、以上に例示した具体例を様々に変形、変更したものが含まれる。上記の実施例の変形例を以下に列挙する。
【0136】
(変形例1)プリンタ100Aは、
図4のT112でWFD方式のG/Oに移行することに代えて、SoftAPの親局に移行してもよい。本変形例では、SoftAPの親局に移行する処理が、「通信装置」の「第2の移行部」によって実行される処理の一例である。また、別の変形例では、プリンタ100Aがセットアップ開始操作を受け付けることに応じて、端末(例えば端末10A)が親局になるべきことを示す情報を含むQRコードを表示してもよい。そして、当該QRコードが端末10Aによって撮影されることに応じて、端末10AがWFD方式のG/O状態に移行して、端末10Aとプリンタ100Aとの間にWFD接続が確立されてもよい。本変形例では、「通信装置」の「出力制御部」、及び「第2の移行部」を省略可能である。一般的に言うと、「第1の無線接続」は、「通信装置」が親局として動作してもよいし、「端末装置」が親局として動作してもよい。
【0137】
(変形例2)アプリ38Aは、複数個の公開鍵を予め記憶しており、
図5のT170において、当該複数個の公開鍵のうちの1個の公開鍵を、プリンタ100Aによって利用されるべき公開鍵PKprとして選択してもよい。本変形例では、「通信装置」の「識別情報送信部」を省略可能であり、「コンピュータプログラム」の「識別情報受信部」及び「公開鍵生成部」を省略可能である。
【0138】
(変形例3)公開鍵PKprは、プリンタ100AのMACアドレス140Aを用いて得られる情報でなくてもよく、例えば、プリンタ100Aのシリアル番号、プリンタID等を用いて得られる情報であってもよい。即ち、「識別情報」は、プリンタ100Aを識別するための情報であればよい。また、別の変形例では、公開鍵PKprは、「識別情報」を用いて得られる情報でなくてもよい。
【0139】
(変形例4)プリンタ100Aは、常にDPP応答状態として動作してもよい。本変形例では、「通信装置」の「移行要求受信部」及び「第1の移行部」を省略可能であり、「コンピュータプログラム」の「移行要求送信部」を省略可能である。
【0140】
(変形例5)プリンタ100Aは、
図4のT162において、チャネル情報CI2を含まない応答を端末10Aに送信してもよい。例えば、プリンタ100Aは、
図5のT172の処理が実行された後に、チャネル情報CI2を端末10Aに送信してもよい。即ち、「通信装置」の「チャネル情報送信部」、及び「コンピュータプログラム」の「チャネル情報受信部」によって実行される処理のタイミングは、上記の実施例の形態に限定されない。また、別の変形例では、プリンタ100Aは、チャネル情報CI2を端末10Aに送信しなくてもよい。本変形例では、「通信装置」の「チャネル情報送信部」を省略可能であり、「コンピュータプログラム」の「チャネル情報受信部」を省略可能である。
【0141】
(変形例6)プリンタ100Aは、
図4のT162において、プリンタID「AAA」、能力情報、及びステータスを含まない応答を端末10Aに送信してもよい。本変形例では、「通信装置」の「装置情報送信部」を省略可能である。また、S20でNO又はS22でNOと判断される場合に、アプリ38は、
図3のS60~S64の処理を省略して、S66の処理に進んでもよい。本変形例では、「通信装置」の「装置情報送信部」を省略可能であり、「コンピュータプログラム」の「装置情報受信部」及び「表示制御部」を省略可能である。
【0142】
(変形例7)アプリ38Aは、
図3のS10~S16の処理を省略可能である。本変形例では、「通信装置」の「認証情報受信部」を省略可能であり、「コンピュータプログラム」の「認証情報送信部」を省略可能である。
【0143】
(変形例8)プリンタ100Aは、
図4のT114において、SSID「S2」及びPW「P2」がコード化されたQRコードの印刷を印刷実行部118Aに実行させてもよい。本変形例では、印刷実行部118Aが「出力部」の一例であり、QRコードの印刷が、「通信装置」の「出力制御部」によって実行される処理の一例である。また、別の変形例では、プリンタ100Aは、T114において、SSID「S2」及びPW「P2」をNFC(Near Field Communicationの略)I/Fに供給してもよい。この場合、端末(例えば端末10A)がプリンタ100Aに近づけられることに応じて、端末はSSID「S2」及びPW「P2」を取得する。本変形例では、NFCI/Fが「出力部」の一例であり、SSID「S2」及びPW「P2」のNFCI/Fへの供給が、「通信装置」の「出力制御部」によって実行される処理の一例である。また、別の変形例では、プリンタ100Aは、T114において、SSID「S2」及びPW「P2」をBT(Bluetooth(登録商標)の略)I/Fに供給してもよい。この場合、端末(例えば端末10A)は、BTI/Fを介してSSID「S2」及びPW「P2」を取得する。本変形例では、BTI/Fが「出力部」の一例であり、SSID「S2」及びPW「P2」のBTI/Fへの供給が、「出力制御部」によって実行される処理の一例である。
【0144】
(変形例9)プリンタ100Aは、
図4のT110において、ウェブサーバとして機能するプリンタ100Aへのアクセスを端末(例えば端末10A)から受け付けて、端末からウェブサーバを介してセップ開始操作を受け付けてもよい。本変形例では、端末からウェブサーバを介してセットアップ開始操作を受け付けることが、「通信装置」の「受付部」によって実行される処理の一例である。
【0145】
(変形例10)プリンタ100Aは、
図7のT354の処理が終了した後に、端末10Bから、端末10BがDPP方式をサポートしていないことを示す情報を受信してもよい。そして、プリンタ100Aは、当該情報の受信に応じて、DPP方式に従ったWi-FiをAP6と確立できないことをユーザに通知する通知画面を表示してもよい。本変形例では、「通信装置」の「第2の接続情報受信部」及び「第3の確立部」を省略可能である。また、別の変形例では、アプリ38Aは、
図8のT462において、プリンタ100BがDPP方式をサポートしていないことを示す情報を含む応答を受信することに応じて、DPP方式に従ったWi-Fiをプリンタ100BとAP6との間に確立できないことをユーザに通知する通知画面を表示してもよい。本変形例では、「コンピュータプログラム」の「第2の通信制御部」を省略可能である。また、別の変形例では、プリンタ100Aは、
図4のT162において、プリンタ100AがDPP方式をサポートしていることを示す情報を含まない応答を端末10Aに送信してもよい。本変形例では、「コンピュータプログラム」の「可否情報受信部」を省略可能である。
【0146】
(変形例11)上記の実施例では、
図5のT182~T194の処理が端末10AのOS36Aによって実行されたが、これに代えて、これらの各種処理がアプリ38Aによって実行されてもよい。
【0147】
(変形例12)端末10A及びプリンタ100Aは、DPP方式とは異なる方式をサポートしていてもよく、プリンタ100Aは、DPP方式とは異なる方式に従って、端末10Aとプリンタ100Aとの間で、認証要求、認証応答、第1の接続情報等の各種通信を実行してもよい。一般的に言うと、「所定方式」はDPP方式に限定されない。
【0148】
(変形例13)上記の各実施例では、
図2~
図12の各処理がソフトウェア(例えばOS36A,36B,アプリ38A,38B、プログラム136A,136B)によって実現されるが、これらの各処理の少なくとも1つが論理回路等のハードウェアによって実現されてもよい。
【0149】
本明細書または図面に説明した技術要素は、単独で、あるいは各種の組合せによって技術的有用性を発揮するものであり、出願時請求項記載の組合せに限定されるものではない。また、本明細書または図面に例示した技術は複数目的を同時に達成し得るものであり、そのうちの一つの目的を達成すること自体で技術的有用性を持つものである。
【符号の説明】
【0150】
2:通信システム、6:AP、8,140A,140B:MACアドレス、10A,10B:端末、12A,12B,112A,112B:操作部、14A,14B,114A,114B:表示部、16A,16B,116A,116B:Wi-FiI/F、18A,18B:カメラ、30A,30B,130A,130B:制御部、32A,32B,132A,132B:CPU、34A,34B,134A,134B:メモリ、36A,36B:OSプログラム、38A,38B:アプリケーション、100A,100B:プリンタ、118A,118B:印刷実行部、136A,136B:プログラム