IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ブラザー工業株式会社の特許一覧

特開2024-2666通信装置のためのコンピュータプログラム、通信装置、及び、通信装置によって実行される方法
<>
  • 特開-通信装置のためのコンピュータプログラム、通信装置、及び、通信装置によって実行される方法 図1
  • 特開-通信装置のためのコンピュータプログラム、通信装置、及び、通信装置によって実行される方法 図2
  • 特開-通信装置のためのコンピュータプログラム、通信装置、及び、通信装置によって実行される方法 図3
  • 特開-通信装置のためのコンピュータプログラム、通信装置、及び、通信装置によって実行される方法 図4
  • 特開-通信装置のためのコンピュータプログラム、通信装置、及び、通信装置によって実行される方法 図5
  • 特開-通信装置のためのコンピュータプログラム、通信装置、及び、通信装置によって実行される方法 図6
  • 特開-通信装置のためのコンピュータプログラム、通信装置、及び、通信装置によって実行される方法 図7
  • 特開-通信装置のためのコンピュータプログラム、通信装置、及び、通信装置によって実行される方法 図8
  • 特開-通信装置のためのコンピュータプログラム、通信装置、及び、通信装置によって実行される方法 図9
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024002666
(43)【公開日】2024-01-11
(54)【発明の名称】通信装置のためのコンピュータプログラム、通信装置、及び、通信装置によって実行される方法
(51)【国際特許分類】
   H04L 9/08 20060101AFI20231228BHJP
   H04W 12/069 20210101ALI20231228BHJP
   H04W 12/0471 20210101ALI20231228BHJP
   H04W 12/77 20210101ALI20231228BHJP
   H04W 84/12 20090101ALI20231228BHJP
   H04W 76/10 20180101ALI20231228BHJP
   G06F 21/44 20130101ALI20231228BHJP
【FI】
H04L9/08 B
H04W12/069
H04W12/0471
H04W12/77
H04W84/12
H04W76/10
G06F21/44
H04L9/08 C
【審査請求】未請求
【請求項の数】13
【出願形態】OL
(21)【出願番号】P 2022101998
(22)【出願日】2022-06-24
(71)【出願人】
【識別番号】000005267
【氏名又は名称】ブラザー工業株式会社
(74)【代理人】
【識別番号】110000110
【氏名又は名称】弁理士法人 快友国際特許事務所
(72)【発明者】
【氏名】吉田 聖也
(72)【発明者】
【氏名】朝倉 弘崇
【テーマコード(参考)】
5K067
【Fターム(参考)】
5K067AA33
5K067DD11
5K067DD17
5K067DD24
5K067EE02
5K067EE16
5K067EE25
5K067FF23
5K067HH22
5K067HH23
5K067HH24
(57)【要約】
【課題】通信装置と外部装置との間に無線接続を確立させる状況における新規な技術を提供すること。
【解決手段】第1の通信装置は、サーバから、特定の識別情報に関連付けられている第1のブートストラッピングキーを受信し、第1のブートストラッピングキーが利用された認証要求を第2の通信装置に送信し、第1の接続情報の通信を第2の通信装置と実行し、第1の接続情報の通信が実行された後に、第2の通信装置から、第2のブートストラッピングキーを受信し、第2の通信装置から第2のブートストラッピングキーが受信される場合に、特定の識別情報と第2のブートストラッピングキーとを含む第1の更新要求をサーバに送信してもよい。第1の更新要求は、特定の識別情報に関連付けて、第1のブートストラッピングキーに代えて第2のブートストラッピングキーを記憶することをサーバに要求する信号である。
【選択図】図2
【特許請求の範囲】
【請求項1】
第1の通信装置のためのコンピュータプログラムであって、
前記第1の通信装置は、
Wi-Fi規格に従ったWi-Fi通信を実行するためのWi-Fiインターフェースと、
コンピュータと、
を備え、
前記コンピュータプログラムは、前記コンピュータを、以下の各部、即ち、
第2の通信装置を識別する特定の識別情報を取得する取得部と、
前記特定の識別情報を前記第2の通信装置とは異なるサーバに送信する識別情報送信部であって、前記サーバは、1個以上の通信装置のそれぞれについて、当該通信装置を識別する識別情報と、当該通信装置に記憶されているブートストラッピングキーと、を関連付けて記憶するように構成されている、前記識別情報送信部と、
前記特定の識別情報が前記サーバに送信されることに応じて、前記サーバから、前記特定の識別情報に関連付けられている第1のブートストラッピングキーを受信する第1のキー受信部と、
前記サーバから前記第1のブートストラッピングキーが受信される場合に、前記Wi-Fiインターフェースを介して、前記第1のブートストラッピングキーが利用された認証要求であって、前記Wi-Fi規格の第1の方式に従った前記認証要求を前記第2の通信装置に送信する認証要求送信部と、
前記認証要求が前記第2の通信装置に送信されることに応じて、前記第2の通信装置から、前記Wi-Fiインターフェースを介して、前記第1の方式に従った認証応答を受信する認証応答受信部と、
前記第2の通信装置から前記認証応答が受信される場合に、前記Wi-Fiインターフェースを介して、前記第1の方式に従った第1の接続情報の通信を前記第2の通信装置と実行する第1の接続情報通信部であって、前記第1の接続情報は、前記第1の通信装置又は前記第2の通信装置と外部装置との間にWi-Fi接続を確立するための情報である、前記第1の接続情報通信部と、
前記第1の接続情報の通信が実行された後に、前記第2の通信装置から、前記Wi-Fiインターフェースを介して、前記第1のブートストラッピングキーとは異なる第2のブートストラッピングキーを受信する第2のキー受信部と、
前記第2の通信装置から前記第2のブートストラッピングキーが受信される場合に、前記Wi-Fiインターフェースを介して、前記特定の識別情報と前記第2のブートストラッピングキーとを含む第1の更新要求を前記サーバに送信する第1の更新要求送信部であって、前記第1の更新要求は、前記特定の識別情報に関連付けて、前記第1のブートストラッピングキーに代えて前記第2のブートストラッピングキーを記憶することを前記サーバに要求する信号である、前記第1の更新要求送信部と、
として機能させる、コンピュータプログラム。
【請求項2】
前記コンピュータプログラムは、前記コンピュータを、さらに、
前記第1の接続情報の通信が実行された後に、前記Wi-Fiインターフェースを介して、第2の更新要求を前記第2の通信装置に送信する第2の更新要求送信部であって、前記第2の更新要求は、前記第1のブートストラッピングキーに代えて前記第2のブートストラッピングキーを記憶することを前記第2の通信装置に要求する信号である、前記第2の更新要求送信部として機能させ、
前記第2のキー受信部は、前記第2の更新要求が前記第2の通信装置に送信されることに応じて、前記第2の通信装置から前記第2のブートストラッピングキーを受信する、請求項1に記載のコンピュータプログラム。
【請求項3】
前記コンピュータプログラムは、前記コンピュータを、さらに、
前記第1の接続情報の通信が実行された後に、パスワード入力画面を前記第1の通信装置の表示部に表示させる第1の表示制御部として機能させ、
前記第2の更新要求送信部は、前記パスワード入力画面に入力されるパスワードを含む前記第2の更新要求を前記第2の通信装置に送信し、
前記第2のキー受信部は、前記第2の更新要求が前記第2の通信装置に送信され、かつ、前記第2の通信装置において前記パスワードの認証が成功する場合に、前記第2の通信装置から前記第2のブートストラッピングキーを受信し、
前記第2の更新要求が前記第2の通信装置に送信され、かつ、前記第2の通信装置において前記パスワードの認証が失敗する場合に、前記第2のブートストラッピングキーは受信されない、請求項2に記載のコンピュータプログラム。
【請求項4】
前記サーバは、前記1個以上の通信装置を含む複数個の通信装置のそれぞれについて、当該通信装置の識別情報と、当該通信装置が前記第1の方式をサポートしているのか否かを示すサポート情報と、を関連付けて記憶するように構成されており、
前記コンピュータプログラムは、前記コンピュータを、さらに、
前記特定の識別情報が前記サーバに送信されることに応じて、前記サーバから、前記特定の識別情報に関連付けられている特定のサポート情報を受信するサポート情報受信部として機能させ、
前記第2の更新要求送信部は、前記特定のサポート情報が前記第1の方式をサポートしていることを示す場合に、前記第2の更新要求を前記第2の通信装置に送信し、
前記特定のサポート情報が前記第1の方式をサポートしていないことを示す場合に、前記第2の更新要求は送信されない、請求項2に記載のコンピュータプログラム。
【請求項5】
前記特定の識別情報は、前記第2の通信装置のシリアル番号であり、
前記取得部は、前記第2の通信装置に貼付されたバーコードであって、前記シリアル番号をコード化することによって得られる前記バーコードが読み取られることに応じて、前記シリアル番号を取得する、請求項1に記載のコンピュータプログラム。
【請求項6】
前記サーバは、前記1個以上の通信装置のそれぞれについて、当該通信装置を識別する識別情報と、当該通信装置の状態を、認証応答を送信不可能な状態から、認証応答を送信可能な状態に移行させるための手法を示す手法情報と、を関連付けて記憶するように構成されており、
前記コンピュータプログラムは、前記コンピュータを、さらに、
前記特定の識別情報が前記サーバに送信されることに応じて、前記サーバから、前記特定の識別情報に関連付けられている特定の手法情報を受信する手法情報受信部と、
前記サーバから前記手法情報が受信される場合に、前記特定の手法情報によって示される手法を表わす手法画面を前記第1の通信装置の表示部に表示させる第2の表示制御部と、
として機能させる、請求項1に記載のコンピュータプログラム。
【請求項7】
前記識別情報送信部は、前記特定の識別情報が取得され、かつ、前記第1の通信装置が前記第1の方式をサポートしている場合に、前記特定の識別情報を前記サーバに送信し、
前記特定の識別情報が取得され、かつ、前記第1の通信装置が前記第1の方式をサポートしていない場合に、前記特定の識別情報は送信されない、請求項1に記載のコンピュータプログラム。
【請求項8】
前記コンピュータプログラムは、前記コンピュータを、さらに、
前記特定の識別情報が取得され、かつ、前記第1の通信装置が前記第1の方式をサポートしていない場合に、前記Wi-Fiインターフェースを介して、前記第1の方式とは異なる第2の方式に従った第2の接続情報の通信を前記第2の通信装置と実行する第2の接続情報通信部であって、前記第2の接続情報は、前記第1の通信装置又は前記第2の通信装置と前記外部装置との間にWi-Fi接続を確立させるための情報である、前記第2の接続情報通信部として機能させる、請求項7に記載のコンピュータプログラム。
【請求項9】
前記第1のキー受信部は、前記サーバが前記特定の識別情報と前記第1のブートストラッピングキーとを関連付けて記憶している場合に、前記特定の識別情報が前記サーバに送信されることに応じて、前記サーバから前記第1のブートストラッピングキーを受信し、
前記サーバが前記特定の識別情報と前記第2の通信装置のブートストラッピングキーとを関連付けて記憶していない場合に、前記特定の識別情報が前記サーバに送信されても、前記サーバからブートストラッピングキーは受信されず、
前記コンピュータプログラムは、前記コンピュータを、さらに、
前記サーバからブートストラッピングキーが受信されない場合に、前記Wi-Fiインターフェースを介して、前記第1の方式とは異なる第2の方式に従った第2の接続情報の通信を前記第2の通信装置と実行する第2の接続情報通信部であって、前記第2の接続情報は、前記第1の通信装置又は前記第2の通信装置と前記外部装置との間にWi-Fi接続を確立させるための情報である、前記第2の接続情報通信部と、
として機能させる、請求項1に記載のコンピュータプログラム。
【請求項10】
前記第1の接続情報通信部は、前記第2の通信装置から、前記認証要求に応じた認証が成功したことを示す前記認証応答が受信される場合に、前記第1の接続情報の通信を前記第2の通信装置と実行し、
前記コンピュータプログラムは、前記コンピュータを、さらに、
前記通信装置から、前記認証が失敗したことを示す前記認証応答が受信される場合に、前記第1の方式とは異なる第2の方式に従った第2の接続情報の通信を前記第2の通信装置と実行する第2の接続情報通信部であって、前記第2の接続情報は、前記第1の通信装置又は前記第2の通信装置と前記外部装置との間にWi-Fi接続を確立させるための情報である、前記第2の接続情報通信部と、
として機能させる、請求項1に記載のコンピュータプログラム。
【請求項11】
前記コンピュータプログラムは、前記コンピュータを、さらに、
前記Wi-Fiインターフェースを介して、前記特定の識別情報に関連する関連情報を含むProbe要求を送信するProbe要求送信部であって、前記Probe要求は、前記関連情報に関連する前記特定の識別情報によって識別される前記第2の通信装置の状態を、前記認証応答を送信不可能な状態から、前記認証応答を送信可能な状態に移行させるための信号である、前記Probe要求送信部として機能させる、請求項1に記載のコンピュータプログラム。
【請求項12】
第1の通信装置であって、
Wi-Fi規格に従ったWi-Fi通信を実行するためのWi-Fiインターフェースと、
第2の通信装置を識別する特定の識別情報を取得する取得部と、
前記特定の識別情報を前記第2の通信装置とは異なるサーバに送信する識別情報送信部であって、前記サーバは、1個以上の通信装置のそれぞれについて、当該通信装置を識別する識別情報と、当該通信装置に記憶されているブートストラッピングキーと、を関連付けて記憶するように構成されている、前記識別情報送信部と、
前記特定の識別情報が前記サーバに送信されることに応じて、前記サーバから、前記特定の識別情報に関連付けられている第1のブートストラッピングキーを受信する第1のキー受信部と、
前記サーバから前記第1のブートストラッピングキーが受信される場合に、前記Wi-Fiインターフェースを介して、前記第1のブートストラッピングキーが利用された認証要求であって、前記Wi-Fi規格の第1の方式に従った前記認証要求を前記第2の通信装置に送信する認証要求送信部と、
前記認証要求が前記第2の通信装置に送信されることに応じて、前記第2の通信装置から、前記Wi-Fiインターフェースを介して、前記第1の方式に従った認証応答を受信する認証応答受信部と、
前記認証応答が受信される場合に、前記Wi-Fiインターフェースを介して、前記第1の方式に従った第1の接続情報の通信を前記第2の通信装置と実行する第1の接続情報通信部であって、前記第1の接続情報は、前記第1の通信装置又は前記第2の通信装置と外部装置との間にWi-Fi接続を確立するための情報である、前記第1の接続情報通信部と、
前記第1の接続情報の通信が実行された後に、前記第2の通信装置から、前記Wi-Fiインターフェースを介して、前記第1のブートストラッピングキーとは異なる第2のブートストラッピングキーを受信する第2のキー受信部と、
前記第2の通信装置から前記第2のブートストラッピングキーが受信される場合に、前記Wi-Fiインターフェースを介して、前記特定の識別情報と前記第2のブートストラッピングキーとを含む第1の更新要求を前記サーバに送信する第1の更新要求送信部であって、前記第1の更新要求は、前記特定の識別情報に関連付けて、前記第1のブートストラッピングキーに代えて前記第2のブートストラッピングキーを記憶することを前記サーバに要求する信号である、前記第1の更新要求送信部と、
を備える、第1の通信装置。
【請求項13】
第1の通信装置によって実行される方法であって、
前記第1の通信装置は、
Wi-Fi規格に従ったWi-Fi通信を実行するためのWi-Fiインターフェースを備え、
前記方法は、
第2の通信装置を識別する特定の識別情報を取得する取得工程と、
前記特定の識別情報を前記第2の通信装置とは異なるサーバに送信する識別情報送信工程であって、前記サーバは、1個以上の通信装置のそれぞれについて、当該通信装置を識別する識別情報と、当該通信装置に記憶されているブートストラッピングキーと、を関連付けて記憶するように構成されている、前記識別情報送信工程と、
前記特定の識別情報が前記サーバに送信されることに応じて、前記サーバから、前記特定の識別情報に関連付けられている第1のブートストラッピングキーを受信する第1のキー受信工程と、
前記サーバから前記第1のブートストラッピングキーが受信される場合に、前記Wi-Fiインターフェースを介して、前記第1のブートストラッピングキーが利用された認証要求であって、前記Wi-Fi規格の第1の方式に従った前記認証要求を前記第2の通信装置に送信する認証要求送信工程と、
前記認証要求が前記第2の通信装置に送信されることに応じて、前記第2の通信装置から、前記Wi-Fiインターフェースを介して、前記第1の方式に従った認証応答を受信する認証応答受信工程と、
前記認証応答が受信される場合に、前記Wi-Fiインターフェースを介して、前記第1の方式に従った第1の接続情報の通信を前記第2の通信装置と実行する第1の接続情報通信工程であって、前記第1の接続情報は、前記第1の通信装置又は前記第2の通信装置と外部装置との間にWi-Fi接続を確立するための情報である、前記第1の接続情報通信工程と、
前記第1の接続情報の通信が実行された後に、前記第2の通信装置から、前記Wi-Fiインターフェースを介して、前記第1のブートストラッピングキーとは異なる第2のブートストラッピングキーを受信する第2のキー受信工程と、
前記第2の通信装置から前記第2のブートストラッピングキーが受信される場合に、前記Wi-Fiインターフェースを介して、前記特定の識別情報と前記第2のブートストラッピングキーとを含む第1の更新要求を前記サーバに送信する第1の更新要求送信工程であって、前記第1の更新要求は、前記特定の識別情報に関連付けて、前記第1のブートストラッピングキーに代えて前記第2のブートストラッピングキーを記憶することを前記サーバに要求する信号である、前記第1の更新要求送信工程と、
を備える、方法。
【発明の詳細な説明】
【技術分野】
【0001】
本明細書は、通信装置と外部装置との間に無線接続を確立させるための技術に関する。
【背景技術】
【0002】
非特許文献1には、DPP(Device Provisioning Protocolの略)に従って一対のデバイスの間に無線接続を確立させる技術が開示されている。
【先行技術文献】
【非特許文献】
【0003】
【非特許文献1】「Wi-Fi Easy Connect(商標) Specification Version 2.0」 Wi-Fi Alliance,2020年
【発明の概要】
【発明が解決しようとする課題】
【0004】
本明細書では、DPPのブートストラッピングキーをセキュアに管理するための技術を提供する。
【課題を解決するための手段】
【0005】
本明細書は、第1の通信装置のためのコンピュータプログラムを開示する。前記第1の通信装置は、Wi-Fi規格に従ったWi-Fi通信を実行するためのWi-Fiインターフェースと、コンピュータと、を備えてもよい。前記コンピュータプログラムは、前記コンピュータを、以下の各部、即ち、第2の通信装置を識別する特定の識別情報を取得する取得部と、前記特定の識別情報を前記第2の通信装置とは異なるサーバに送信する識別情報送信部であって、前記サーバは、1個以上の通信装置のそれぞれについて、当該通信装置を識別する識別情報と、当該通信装置に記憶されているブートストラッピングキーと、を関連付けて記憶するように構成されている、前記識別情報送信部と、前記特定の識別情報が前記サーバに送信されることに応じて、前記サーバから、前記特定の識別情報に関連付けられている第1のブートストラッピングキーを受信する第1のキー受信部と、前記サーバから前記第1のブートストラッピングキーが受信される場合に、前記Wi-Fiインターフェースを介して、前記第1のブートストラッピングキーが利用された認証要求であって、前記Wi-Fi規格の第1の方式に従った前記認証要求を前記第2の通信装置に送信する認証要求送信部と、前記認証要求が前記第2の通信装置に送信されることに応じて、前記第2の通信装置から、前記Wi-Fiインターフェースを介して、前記第1の方式に従った認証応答を受信する認証応答受信部と、前記認証応答が受信される場合に、前記Wi-Fiインターフェースを介して、前記第1の方式に従った第1の接続情報の通信を前記第2の通信装置と実行する第1の接続情報通信部であって、前記第1の接続情報は、前記第1の通信装置又は前記第2の通信装置と外部装置との間にWi-Fi接続を確立するための情報である、前記第1の接続情報通信部と、前記第1の接続情報の通信が実行された後に、前記第2の通信装置から、前記Wi-Fiインターフェースを介して、前記第1のブートストラッピングキーとは異なる第2のブートストラッピングキーを受信する第2のキー受信部と、前記第2の通信装置から前記第2のブートストラッピングキーが受信される場合に、前記Wi-Fiインターフェースを介して、前記特定の識別情報と前記第2のブートストラッピングキーとを含む第1の更新要求を前記サーバに送信する第1の更新要求送信部であって、前記第1の更新要求は、前記特定の識別情報に関連付けて、前記第1のブートストラッピングキーに代えて前記第2のブートストラッピングキーを記憶することを前記サーバに要求する信号である、前記第1の更新要求送信部と、として機能させてもよい。
【0006】
上記の構成によると、第1の通信装置は、第1のブートストラッピングキーを利用した後に、第2の通信装置から第2のブートストラッピングキーを受信し、第2のブートストラッピングキーを含む第1の更新要求をサーバに送信する。この結果、サーバにおいて、第1のブートストラッピングキーに代えて第2のブートストラッピングキーが記憶される。このために、ブートストラッピングキーをセキュアに管理することができる。
【0007】
上記のコンピュータプログラムを記憶するコンピュータ可読記録媒体、上記のコンピュータプログラムによって実現される第1の通信装置そのもの、及び、上記の第1の通信装置によって実行される方法も、新規で有用である。また、第1の通信装置と第2の通信装置とを備える通信システムも、新規で有用である。
【図面の簡単な説明】
【0008】
図1】通信システムの構成を示す。
図2】アプリによって実行される処理のフローチャートを示す(第1実施例)。
図3】第1実施例ケースAのシーケンス図を示す。
図4図3の続きのシーケンス図を示す。
図5】第1実施例ケースBのシーケンス図を示す。
図6】第1実施例ケースCのシーケンス図を示す。
図7】第1実施例ケースDのシーケンス図を示す。
図8】アプリによって実行される処理のフローチャートを示す(第2実施例)。
図9】第2実施例ケースEのシーケンス図を示す。
【発明を実施するための形態】
【0009】
(第1実施例)
(通信システム2の構成;図1
図1に示されるように、通信システム2は、AP(Access Pointの略)6と、2個の端末10A,10Bと、2個のプリンタ100A,100Bと、サーバ200と、を備える。以下では、本実施例では、端末10A又は10Bを利用して、各プリンタ100A,100BとAP6との間にWi-Fi規格に従った無線接続(以下では「Wi-Fi接続」と記載する)を確立させる状況を想定している。以下では、端末10A,10Bを特に区別しない場合には、「端末10」と記載する。
【0010】
(端末10Aの構成)
端末10Aは、携帯電話(例えばスマートフォン)、PDA、タブレットPC等の可搬型の端末装置である。変形例では、端末10Aは、据置型のPC、ノートPC等であってもよい。端末10Aは、操作部12Aと表示部14AとWi-Fiインターフェース16Aとカメラ18Aと制御部30Aとを備える。各部12A~30Aは、バス線(符号省略)に接続されている。以下では、インターフェースのことを「I/F」と記載する。
【0011】
操作部12Aは、様々な指示を端末10Aに入力するためのI/Fである。表示部14Aは、様々な情報を表示するためのディスプレイである。表示部14Aは、いわゆるタッチパネルであり、操作部12Aとしても機能する。カメラ18Aは、物体を撮影するためのデバイスである。本実施例では、カメラ18Aは、プリンタ100A,100Bの筐体に貼付されているバーコードを撮影するために利用される。
【0012】
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によって作成された規格書「Wi-Fi Easy Connect(商標) Specification Version 2.0」に記述されている。
【0013】
また、Wi-FiI/F16Aは、さらに、Wi-Fi Allianceによって策定されたWFD(Wi-Fi Direct(登録商標)の略)をサポートしている。WFDの詳細は、Wi-Fi Allianceによって作成された規格書「Wi-Fi Direct Specification Version1.9」に記述されている。以下では、WFDに従って確立されるWi-Fi接続のことを「WFD接続」と記載する。
【0014】
制御部30Aは、CPU32Aとメモリ34Aとを備える。CPU32Aは、メモリ34Aに記憶されているプログラム36A,38Aに従って、様々な処理を実行する。メモリ34Aは、揮発性メモリ、不揮発性メモリ等によって構成される。
【0015】
OS(Operating Systemの略)プログラム36Aは、端末10Aの基本的な動作を実現するためのプログラムである。アプリケーション38Aは、端末10AとAP6との間にWi-Fi接続を確立させたり、プリンタ(例えばプリンタ100A)とAP6との間にWi-Fi接続を確立させたりするためのプログラムである。以下では、OSプログラム、アプリケーションのことを、それぞれ、「OS」、「アプリ」と記載する。アプリ38Aは、例えば、プリンタ100A,100Bのベンダによって提供されるインターネット(図示省略)上のサーバ200又はOS36Aのベンダによって提供されるインターネット上のサーバ(図示省略)から端末10にインストールされる。
【0016】
なお、アプリ38Aは、OS36Aに指示を供給することによって、OS36Aに様々な処理を実行させたり、OS36Aを介して他のアプリに様々な処理を実行させたりすることができる。従って、アプリ38Aからの指示に応じてOS36A又は他のアプリによって実行される各処理も、アプリ38Aによって実現される処理である(即ち当該処理を実行する実行部としてCPU32Aを機能させる)と言える。
【0017】
(端末10Bの構成)
端末10Bは、携帯電話(例えばスマートフォン)、PDA、タブレットPC等の可搬型の端末装置である。変形例では、端末10Bは、据置型のPC、ノートPC等であってもよい。端末10Bは、操作部12Bと表示部14BとWi-FiI/F16Bとカメラ18Bと制御部30Bとを備える。各部12B~30Bは、バス線(符号省略)に接続されている。各部12B~30Bの構成は、Wi-FiI/F16BがDPPをサポートしていない点を除いて、端末10Aの各部12A~30Aと同様である。
【0018】
(プリンタ100Aの構成)
プリンタ100Aは、印刷機能を実行可能な周辺装置(例えば、端末10Aの周辺装置)である。変形例では、プリンタ100Aは、スキャン機能、ファクシミリ機能等を実行可能な多機能機であってもよい。プリンタ100Aは、操作部112AとWi-FiI/F116Aと印刷実行部118Aと制御部130Aとを備える。各部112A~130Aは、バス線(符号省略)に接続されている。プリンタ100Aの筐体(図示省略)には、プリンタ100Aのシリアル番号SNAをコード化することによって得られるバーコードが貼付されている。
【0019】
操作部112Aは、複数のキーを備える。ユーザは、操作部112Aを操作することによって、様々な指示をプリンタ100Aに入力することができる。Wi-FiI/F116Aは、端末10AのWi-FiI/F16Aと同様である。即ち、Wi-FiI/F116Aは、DPPとWFDとをサポートしている。印刷実行部118Aは、インクジェット方式、レーザ方式等の印刷機構を備える。
【0020】
制御部130Aは、CPU132Aとメモリ134Aとを備える。CPU132Aは、メモリ134Aに記憶されているプログラム136Aに従って、様々な処理を実行する。メモリ134Aは、揮発性メモリ、不揮発性メモリ等によって構成される。メモリ134Aは、さらに、シリアル番号SNAと、公開鍵PKA1と、を記憶する。公開鍵PKA1は、DPPに従った認証において利用される情報であり、プリンタ100Aの出荷段階からメモリ134Aに記憶されている。
【0021】
(プリンタ100Bの構成)
プリンタ100Bは、印刷機能を実行可能な周辺装置(例えば、端末10Aの周辺装置)である。変形例では、プリンタ100Bは、スキャン機能、ファクシミリ機能等を実行可能な多機能機であってもよい。プリンタ100Bは、操作部112BとWi-FiI/F116Bと印刷実行部118Bと制御部130Bとを備える。各部112B~130Bは、バス線(符号省略)に接続されている。各部112B~130Bの構成は、Wi-FiI/F116BがDPPをサポートしていない点を除いて、プリンタ100Aの各部112A~130A成と同様である。即ち、Wi-FiI/F116Bは、端末10BのWi-FiI/F16Bと同様である。
【0022】
(サーバ200の構成)
サーバ200は、プリンタ100A,100Bを含む複数個のプリンタを管理するためのサーバである。サーバ200は、プリンタ100A,100Bのベンダによって、インターネット(図示省略)上に設置されるサーバである。サーバ200は、通信I/F216と制御部230とを備える。
【0023】
制御部230は、CPU232とメモリ234とを備える。CPU232は、メモリ234に記憶されているプログラム236に従って、様々な処理を実行する。メモリ234は、揮発性メモリ、不揮発性メモリ等によって構成される。
【0024】
メモリ234は、さらに、プリンタテーブル240を記憶する。プリンタテーブル240は、シリアル番号と、サポート情報と、公開鍵と、手法情報と、を関連付けて記憶する。これらの各種情報は、管理対象のプリンタが出荷される前に、プリンタのベンダによってプリンタテーブル240に登録される。
【0025】
サポート情報は、DPPをサポートしていることを示す「サポート」と、DPPをサポートしていないことを示す「非サポート」と、のいずれか一方を示す。なお、公開鍵及び手法情報は、サポート情報が「サポート」を示す場合にのみに登録される情報である。手法情報は、DPPに従った処理を開始するためにユーザが実行すべき操作を示す情報である。
【0026】
上記の通り、プリンタ100Aは、公開鍵PKA1をメモリ134Aに記憶している。従って、プリンタ100Aが公開鍵PKA1を直接的に出力(例えば、公開鍵をコード化することによって得られるQRコード(登録商標)の表示等)することができれば、端末10Aは、公開鍵PKA1を取得して、DPPに従った通信をプリンタ100Aと実行することができる。しかしながら、本実施例では、プリンタ100Aが公開鍵PKA1を直接的に出力できない状況を想定している。当該状況は、例えば、プリンタ100Aが表示部を備えない状況、プリンタ100Aが表示部を備えるが表示部が小さい状況等である。本実施例では、このような状況でも、端末10AがDPPに従った通信をプリンタ100Aと実行することを実現する。
【0027】
(アプリの処理;図2
続いて、図2を参照して、端末(例えば端末10A)のCPU(例えばCPU32A)がアプリ(例えばアプリ38A)を実行することによって実現される処理を説明する。図2は、AP6とのWi-Fi接続を確立している対象端末が、プリンタ(例えばプリンタ100A)とAP6との間にWi-Fi接続を確立させるための処理である。以下では、図2の処理を説明する際に、CPU(例えばCPU32A)ではなく、アプリ(例えばアプリ38A、以下「対象アプリ」と記載する)を主体として記載する。また、以下では、図2の処理の主体である対象アプリがインストールされた端末、Wi-Fi接続の確立対象のプリンタのことを、それぞれ、「対象端末」、「対象プリンタ」と記載する。図2の処理は、対象端末のカメラが対象プリンタのバーコードを撮影することに応じて、対象アプリが対象プリンタのシリアル番号を取得することをトリガとして開始される。
【0028】
S10では、対象アプリは、対象端末がDPPをサポートしているのか否かを判断する。具体的には、図1では図示省略しているが、対象端末のWi-FiI/FがDPPをサポートしているのか否かを示す情報が対象端末のメモリに記憶されている。対象アプリは、当該情報をメモリから取得する。対象アプリは、DPPをサポートしていることを示す情報を取得する場合にS10でYESと判断してS12に進み、DPPをサポートしていないことを示す情報を取得する場合にS10でNOと判断してS30に進む。
【0029】
S12では、対象アプリは、対象端末のWi-FiI/Fを介して、公開鍵送信要求をサーバ200に送信する。公開鍵送信要求は、サーバ200に公開鍵の送信を要求する信号であり、取得済みのシリアル番号を含む。この結果、サーバ200において、公開鍵送信要求に含まれるシリアル番号に関連付けて記憶されている各種情報(即ちサポート情報、サポート情報が「サポート」を示す場合には、さらに公開鍵及び手法情報)が特定される。そして、サーバ200から対象端末に特定済みの各種情報を含む応答が送信される。
【0030】
S14では、対象アプリは、対象端末のWi-FiI/Fを介して、サーバ200から応答を受信する。当該応答は、上記の特定済みの各種情報を含む。
【0031】
S16では、対象アプリは、公開鍵を取得したのか否かを判断する。具体的には、対象アプリは、S14で受信済みの応答が公開鍵を含むのか否かを判断する。対象アプリは、受信済みの応答が公開鍵を含む場合にS16でYESと判断してS18に進み、受信済みの応答が公開鍵を含まない場合にS16でNOと判断してS30に進む。
【0032】
S18では、対象アプリは、通知画面SC1を対象端末の表示部に表示させる。通知画面SC1は、DPP処理を開始させるための画面であり、詳細については後述する。
【0033】
S20では、対象アプリは、DPP処理を対象プリンタと実行する。DPP処理は、DPPに従った各種通信を含む。
【0034】
S22では、対象アプリは、DPP処理が成功したのか否かを判断する。詳しくは後述するが、対象アプリは、対象プリンタとのDPP処理が成功すると、対象プリンタから、DPP処理が成功したことを示す情報を含むStatus Query Result(以下では、単に「Result」と記載する)を受信する。対象アプリは、当該Resultを受信する場合にS22でYESと判断してS50に進む。一方、対象アプリは、当該Resultを受信しない場合にS22でNOと判断してS30に進む。なお、DPP処理が成功する場合(S22でYES)には、対象プリンタとAP6との間にWi-Fi接続が確立される。このため、対象端末は、AP6を介したWi-Fi通信を対象プリンタと実行可能である。
【0035】
S30では、対象アプリは、通知画面SC2を対象端末の表示部に表示させる。通知画面SC2は、非DPP処理を開始させるための画面であり、詳細については後述する。
【0036】
S32では、対象アプリは、非DPP処理を対象プリンタと実行する。非DPP処理は、DPPとは異なる方式に従った各種通信を含む。この結果、対象プリンタとAP6との間にWi-Fi接続が確立される。このため、対象端末は、AP6を介したWi-Fi通信を対象プリンタと実行可能である。
【0037】
S34では、対象アプリは、対象プリンタのサポート情報を取得済みであるのか否かを判断する。上記の通り、S14で受信済みの応答は、サポート情報を含む。従って、S14を経たS34(即ち、S16でNO又はS22でNOのケース)では、対象アプリは、対象プリンタのサポート情報を取得済みであるので、S34でYESと判断して、S36及びS38をスキップしてS40に進む。一方、S14を経ないS34(即ち、S10でNOのケース)では、対象アプリは、対象プリンタのサポート情報を取得済みでないので、S34でNOと判断してS36に進む。
【0038】
S36では、対象アプリは、Wi-FiI/F及びAP6を介して、サポート問合せを対象プリンタに送信する。サポート問合せは、対象プリンタがDPPをサポートしているのか否かを対象プリンタに問い合わせる信号である。
【0039】
S38では、対象アプリは、Wi-FiI/F及びAP6を介して、対象プリンタから、サポート問合せに対する応答を受信する。当該応答は、対象プリンタがDPPをサポートしているのか否かを示す情報(即ちサポート情報)を含む。
【0040】
S40では、対象アプリは、対象プリンタがDPPをサポートしているのか否かを判断する。具体的には、対象アプリは、S14で受信済みの応答に含まれるサポート情報、又は、S38で受信済みの応答に含まれるサポート情報が、「サポート」を示すのか「非サポート」を示すのかを判断する。対象アプリは、サポート情報が「サポート」を示す場合に、S40でYESと判断してS50に進む。一方、対象アプリは、サポート情報が「非サポート」を示す場合に、S40でNOと判断して、S50以降の処理をスキップして、図2の処理を終了する。
【0041】
S50では、対象アプリは、通知画面SC3を対象端末の表示部に表示させる。通知画面SC3は、対象プリンタの公開鍵を更新するための画面であり、詳細については後述する。
【0042】
S52では、対象アプリは、Wi-FiI/F及びAP6を介して、公開鍵更新要求を対象プリンタに送信する。公開鍵更新要求は、公開鍵の更新を対象プリンタに要求する信号である。この結果、対象プリンタにおいて公開鍵が更新される。以下では、更新済みの公開鍵を「新公開鍵」と記載することがある。
【0043】
S54では、対象アプリは、Wi-FiI/F及びAP6を介して、対象プリンタから新公開鍵を受信する。
【0044】
S56では、対象アプリは、Wi-FiI/F及びAP6を介して、更新要求をサーバ200に送信する。更新要求は、対象プリンタのシリアル番号と、S54で受信済みの新公開鍵と、を含む。更新要求は、対象プリンタのシリアル番号に関連付けられている公開鍵に代えて新公開鍵を記憶することをサーバ200に要求する信号である。この結果、サーバ200は、更新要求に含まれるシリアル番号に関連付けられている公開鍵に代えて新公開鍵をプリンタテーブル240に記憶する。サーバ200は、新公開鍵を記憶すると、更新完了通知を対象端末に送信する。
【0045】
S58では、対象アプリは、Wi-FiI/F及びAP6を介して、サーバ200から更新完了通知を受信する。更新完了通知は、サーバ200において、公開鍵の更新が完了したことを示す通知である。
【0046】
S60では、対象アプリは、通知画面SC4を対象端末の表示部に表示させる。通知画面SC4は、公開鍵の更新が完了したことを示す画面である。S60の処理が終了すると、図2の処理が終了する。
【0047】
(ケースA;図3及び図4
続いて、図2の処理によって実現される具体的なケースを説明する。まず、図3及び図4を参照して、ケースAを説明する。ケースAは、端末10Aを利用して、DPPをサポートしているプリンタ100AとAP6との間にWi-Fi接続を確立させるケースである。図示省略しているが、図3の初期状態では、端末10AとAP6との間でDPP処理が実行されており、端末10AとAP6との間にWi-Fi接続が確立済みである。プリンタ100Aの筐体(図示省略)には、シリアル番号SNAをコード化することによって得られるバーコードB1が貼付されている。
【0048】
なお、図3及び図4の以下の説明では、理解の容易化のために、各デバイスのCPU(例えばCPU32、132、232等)が実行する動作を、CPUを主体として記載せずに、各デバイス(例えば端末10A,10B、プリンタ100A,100B、サーバ200)を主体として記載する。特に、端末10Aのアプリ38A(又は端末10Bのアプリ38B)によって実行される処理を説明する際には、端末10A(又は端末10B)に代えてアプリ38A(又はアプリ38B)を主体として記載することがある。図5図7及び図9の説明でも同様である。また、以下の各デバイス6,10,100,200の間の通信は、Wi-FiI/F(又は通信I/F)を介して実行される。従って、以下では、各デバイス間の通信を説明する際に、「Wi-FiI/F(又は通信I/F)を介して」という説明を省略する。
【0049】
プリンタ100Aは、T100において、ユーザから電源ON操作を受け付けると、T102において電源をONする。
【0050】
端末10Aは、T110において、ユーザからアプリ起動操作(例えば、アプリ38Aのアイコンを選択する操作)を受け付けると、アプリ38Aを起動する。アプリ38Aが起動されると、アプリ38Aは、カメラ18Aを起動し、T112において、バーコードB1を撮影する操作をユーザから受け付ける。この場合、アプリ38Aは、バーコードB1をデコードして、プリンタ100Aのシリアル番号SNAを取得する(図2の処理のトリガ)。このようなバーコードB1は、製品を管理する目的等のために従来から用いられていた。このために、端末10Aにシリアル番号を取得させるための新たな構成をプリンタ100Aに追加することなく、端末10Aにシリアル番号を取得させることができる。
【0051】
アプリ38Aは、シリアル番号SNAを取得すると、T114において、端末10AのWi-FiI/F16AがDPPをサポートしていると判断し(S10でYES)、T120において、公開鍵送信要求をサーバ200に送信する(S12)。公開鍵送信要求は、取得済みのシリアル番号SNAを含む。なお、図示省略しているが、公開鍵送信要求は、AP6を介してサーバ200に送信される。以下で説明する端末10Aとサーバ200との間の各種通信についても同様にAP6を介して実行される。変形例では、端末10Aは、4G、5G等を利用して、サーバ200との通信を実行してもよい。
【0052】
サーバ200は、T120において、端末10Aから公開鍵送信要求を受信すると、プリンタテーブル240から、公開鍵送信要求に含まれるシリアル番号SNAを特定する。そして、サーバ200は、特定済みのシリアル番号SNAに関連付けられている各種情報(即ちサポート情報「サポート」、公開鍵PKA1、手法情報M1)を特定し、T122において、これらを含む応答を端末10Aに送信する。
【0053】
アプリ38Aは、T122において、サーバ200から応答を受信すると(S14)、当該応答が公開鍵PKA1を含むので(S16でYES)、T124において、通知画面SC1を表示部14Aに表示させる(S18)。通知画面SC1は、プリンタ100Aの第1の所定ボタンを押下した後にOKボタンを選択することをユーザに促すメッセージと、OKボタンと、を含む。プリンタの第1の所定ボタンは、当該プリンタをDPP非応答状態からDPP応答状態に移行させるためのボタンである。DPP非応答状態は、後述のAuthentication Requestに応じてAuthentication Responseを送信不可能な状態であり、DPP応答状態は、当該Responseを送信可能な状態である。以下では、Authenticationのことを「Auth」と記載し、Request、Responseのことを、それぞれ、「Req」、「Res」と記載する。DPP非応答状態からDPP応答状態に移行させる手法は、プリンタの機種によって異なる。このため、サーバ200は、プリンタの機種毎に異なる手法情報を記憶しており、本ケースでは、プリンタ100Aのための手法情報M1を含む応答を端末10Aに送信する。対象アプリは、取得済みの手法情報M1によって特定される手法を含む通知画面SC1を表示させるので、ユーザは、プリンタ100AをDPP応答状態に移行させるための手法を適切に実行することができる。
【0054】
プリンタ100Aは、T126において、通知画面SC1を見たユーザから、第1の所定ボタンの押下(即ち、プリンタ100AをDPP応答状態に移行させるための操作)を受け付けると、T128において、DPP応答状態に移行する。
【0055】
その後、アプリ38Aは、T129において、通知画面SC1内のOKボタンの選択を受け付けると、T130において、公開鍵PKA1が利用されたAuth Requestをプリンタ100Aに送信する(S30)。
【0056】
Auth Reqは、送信元の端末10Aの認証の実行を要求する信号である。具体的には、端末10Aは、まず、端末10Aの秘密鍵(図示省略)とプリンタ100Aの公開鍵PKA1とを利用して共有鍵を生成し、共有鍵を利用してランダム値を暗号化することによって暗号化データを生成する。そして、端末10Aは、端末10Aの公開鍵(図示省略)と暗号化データと端末10AのCapabilityとを含むAuth Reqをプリンタ100Aに送信する。端末10AのCapabilityは、DPPのConfiguratorのみとして動作可能であることを示す値を含む。
【0057】
プリンタ100Aは、T130において、端末10AからAuth Reqを受信すると、Auth Reqに含まれる暗号化データの認証を実行する。具体的には、プリンタ100Aは、Auth Reqに含まれる端末10Aの公開鍵とプリンタ100Aの秘密鍵とを利用して共有鍵を生成し、共有鍵を利用して暗号化データを復号する。プリンタ100Aは、暗号化データの復号が成功する場合に、認証が成功したと判断し、T132以降の処理を実行する。
【0058】
プリンタ100Aは、T132において、プリンタ100AのCapabilityを含むAuth Resを端末10Aに送信する。プリンタ100Aは、DPP応答状態に移行済みであるので(T128参照)、Auth Resを適切に送信することができる。プリンタ100AのCapabilityは、DPPのEnrolleeのみとして動作可能であることを示す値を含む。
【0059】
端末10Aは、T132において、プリンタ100AからAuth Resを受信すると、Auth Resに含まれるプリンタ100AのCapability(即ちEnrollee)と、端末10A自身のCapability(即ちConfigurator)と、が衝突しないと判断する。そして、端末10Aは、T134において、Auth ConfirmをAP6に送信する。Auth Confirmは、端末10AがConfiguratorとして動作し、かつ、プリンタ100AがEnrolleeとして動作することを示す情報を含む。この結果、端末10Aは、T136において、Configuratorとして動作することを決定する。Configuratorは、Configuration Object(以下では「CO」と記載する)をEnrolleeに送信する役割を担うデバイスである。
【0060】
また、T138では、プリンタ100Aは、Enrolleeとして動作することを決定する。Enrolleeは、ConfiguratorからCOを受信する役割を担うデバイスである。T130~T138の処理は、DPPのAuthに相当する。
【0061】
プリンタ100Aは、T140において、Configuration Reqを端末10Aに送信する。以下では、Configurationのことを「Config」と記載する。Config Reqは、COの送信を要求する信号である。
【0062】
端末10Aは、T140において、プリンタ100AからConfig Reqを受信すると、プリンタ用COを生成する。具体的には、端末10Aは、まず、Wi-Fi接続を確立するためにプリンタ100Aによって利用されるべき情報であるプリンタ用Signed Connector(以下では「SC」と記載する)を生成する。プリンタ用SCは、例えば、無線ネットワークを識別する識別子であるグループIDを含む。そして、端末10Aは、プリンタ用SCを含むプリンタ用COを生成し、T142において、プリンタ用COを含むConfig Resをプリンタ100Aに送信する。
【0063】
プリンタ100Aは、T142において、端末10AからConfig Resを受信すると、T144において、Config Resultを端末10Aに送信する。Config Resultは、Configが成功したことを示す情報を含む。T140~T144の処理は、DPPのConfigに相当する。
【0064】
プリンタ100Aは、T150において、プリンタ用SCを含むDiscovery ReqをAP6に送信する。Discovery Reqは、相手のSCの送信を要求する信号である。
【0065】
AP6は、T152において、プリンタ100AからDiscovery Reqを受信すると、AP用SCを利用して、Discovery Reqに含まれるプリンタ用SCの認証を実行する。AP6は、プリンタ用SCの認証が成功すると、接続キーを生成する。そして、AP6は、T152において、AP用SCを含むDiscovery Resをプリンタ100Aに送信する。
【0066】
プリンタ100Aは、T152において、AP6からDiscovery Resを受信すると、プリンタ用SCを利用して、Discovery Resに含まれるAP用SCの認証を実行する。プリンタ100Aは、AP用SCの認証が成功すると、接続キーを生成する。ここで生成される接続キーは、AP6によって生成される接続キーと同じである。即ち、プリンタ100A及びAP6によって接続キーが共有される。
【0067】
次いで、プリンタ100Aは、接続キーを利用して、4way-handshakeの通信をAP6と実行する。この結果、T154において、プリンタ100AとAP6との間にWi-Fi接続が確立される。端末10AとAP6との間にもWi-Fi接続が確立済みであるので、端末10Aとプリンタ100Aとは、AP6を介して相互に通信可能となる。T150~T154の処理は、DPPのNetwork Accessに相当する。また、上記のT130~T144の処理が、図2のS20の「DPP処理」に相当する
【0068】
また、プリンタ100Aは、AP6とのWi-Fi接続を確立すると、Wi-Fi接続が確立されたことを示す情報「成功」を含むResultを端末10Aに送信する。
【0069】
端末10Aは、T156において、プリンタ100Aから「成功」を含むResultを受信する(S22でYES)。
【0070】
上述したように、プリンタ100Aは、AP6とのWi-Fi接続を確立することができる。このために、プリンタ100Aは、端末10AからAP6を介して印刷対象の画像を表わす印刷データを受信して、当該印刷データによって表わされる画像の印刷を実行することができる。
【0071】
図3の続き;図4
アプリ38Aは、図4のT160において、通知画面SC3を表示部14Aに表示させる(図2のS50)。通知画面SC3は、プリンタの公開鍵を更新することをユーザに通知するメッセージと、プリンタのパスワードの入力を促すメッセージと、パスワード入力領域と、OKボタンと、を含む。
【0072】
アプリ38Aは、T162において、通知画面SC3においてパスワードの入力を受け付けた後に、OKボタンの選択を受け付ける。この場合、アプリ38Aは、T164において、公開鍵更新要求をプリンタ100Aに送信する(S52)。公開鍵更新要求は、入力済みのパスワードを含む。
【0073】
プリンタ100Aは、T164において、端末10Aから公開鍵更新要求を受信すると、T166において、公開鍵更新要求に含まれるパスワードの認証を実行する。ここで、パスワードは、プリンタ100Aに予め記憶されている情報であり、ユーザは、当該パスワードを予め取得している。例えば、ユーザは、当該ユーザによって指定される特定の文字列を、プリンタ100Aのパスワードとしてプリンタ100Aに予め登録している。本ケースでは、プリンタ100Aにおいてパスワードの認証が成功するので、T168において、新公開鍵PKA2を生成し、記憶済みの公開鍵PKA1に代えて、新公開鍵PKA2をメモリ134Aに記憶する。なお、図示省略しているが、プリンタ100Aは、T168において、新公開鍵PKA2と共に、新公開鍵PKA2に対応する新秘密鍵(図示省略)も生成し、記憶済みの秘密鍵に代えて新秘密鍵をメモリ134Aに記憶する。具体的には、プリンタ100Aは、まず、乱数を用いて、新秘密鍵を生成する。次いで、プリンタ100Aは、新秘密鍵を利用して、新公開鍵PKA2を生成する。このようにして、プリンタ100Aにおいて、公開鍵及び秘密鍵が適切に更新される。特に、公開鍵及び秘密鍵の更新にはパスワードの入力が必要であるので、公開鍵及び秘密鍵をセキュアに更新することができる。なお、変形例では、プリンタ100Aは、固定の秘密鍵を記憶しており、T168において秘密鍵を更新(即ち新秘密鍵を生成)しなくてもよい。その後、プリンタ100Aは、T170において、新公開鍵PKA2を端末10Aに送信する。
【0074】
ここで、プリンタ100Aの公開鍵及び秘密鍵が更新されない比較例を想定する。例えば、プリンタ100Aが固定の秘密鍵を記憶しており、端末10A等のプリンタ100Aとは異なるデバイスが、プリンタ100Aのシリアル番号SNA等を利用してプリンタ100Aの公開鍵を生成する状況が想定される。このような状況では、端末10Aがプリンタ100Aの公開鍵を生成するロジックが第三者に流出してしまうと、当該第三者は、プリンタ100Aのシリアル番号を取得すれば、プリンタ100Aの公開鍵を生成することができてしまう。一方、本実施例では、図3の処理が実行される毎に、プリンタ100Aは、乱数を利用して新たな秘密鍵及び公開鍵を生成(即ち更新)する。このように、本実施例では、図3の処理が実行される毎に新たな秘密鍵及び公開鍵が生成されるので、比較例と比較してセキュリティを高めることができる。
【0075】
アプリ38Aは、T170において、プリンタ100Aから新公開鍵PKA2を受信する(S54)。この場合、アプリ38Aは、更新要求をサーバ200に送信する(S56)。更新要求は、プリンタ100Aのシリアル番号SNAと、受信済みの新公開鍵PKA2と、を含む。
【0076】
サーバ200は、T172において、端末10Aから更新要求を受信すると、T174において、プリンタテーブル240を更新する。具体的には、まず、サーバ200は、プリンタテーブル240から、更新要求に含まれるシリアル番号SNAを特定する。次いで、サーバ200は、特定済みのシリアル番号SNAに関連付けられている公開鍵PKA1に代えて新公開鍵PKA2を記憶する。その後、サーバ200は、T176において、プリンタテーブル240の更新が完了したことを示す更新完了通知を端末10Aに送信する。
【0077】
アプリ38Aは、T176において、サーバ200から更新完了通知を受信すると(S58)、T178において、通知画面SC4を表示部14Aに表示させる(S60)。通知画面SC4は、公開鍵の更新が完了したことを示すメッセージを含む。ユーザは、通知画面SC4を見ることによって、公開鍵の更新が完了したことを知ることができる。また、上記の処理によって、プリンタ100Aに記憶される公開鍵と、サーバ200に記憶される公開鍵と、が一致するので、プリンタ100Aと端末(例えば10A)とは、DPP処理を適切に再び実行することができる。
【0078】
(ケースB;図5
続いて、図5を参照して、ケースBを説明する。ケースBは、端末10Aを利用して、DPPをサポートしていないプリンタ100BとAP6との間にWi-Fi接続を確立させるケースである。図5の初期状態では、端末10AとAP6との間でDPP処理が実行されており、端末10AとAP6との間にWi-Fi接続が確立済みである。プリンタ100Bの筐体(図示省略)には、シリアル番号SNBをコード化することによって得られるバーコードB2が貼付されている。T200~T210の処理は、図3のT100~T110の処理と同様である。
【0079】
アプリ38Aは、T212において、バーコードB2を撮影する操作をユーザから受け付ける。この場合、アプリ38Aは、バーコードB2をデコードして、プリンタ100Bのシリアル番号SNBを取得する(図2の処理のトリガ)。
【0080】
アプリ38Aは、シリアル番号SNBを取得すると、T214において、端末10AのWi-FiI/F16AがDPPをサポートしていると判断し(S10でYES)、T220において、公開鍵送信要求をサーバ200に送信する(S12)。公開鍵送信要求は、取得済みのシリアル番号SNBを含む。
【0081】
サーバ200は、T220において、端末10Aから公開鍵送信要求を受信すると、プリンタテーブル240から、公開鍵送信要求に含まれるシリアル番号SNBを特定する。そして、サーバ200は、特定済みのシリアル番号SNBに関連付けられている情報(即ちサポート情報「非サポート」)を特定し、T122において、これを含む応答を端末10Aに送信する。
【0082】
アプリ38Aは、T222において、サーバ200から応答を受信すると(S14)、当該応答が公開鍵を含まないので(S16でNO)、T224において、通知画面SC2を表示部14Aに表示させる(S30)。通知画面SC2は、プリンタ100Bの第2の所定ボタンを押下した後にOKボタンを選択することをユーザに促すメッセージと、OKボタンと、を含む。プリンタの第2の所定ボタンは、当該プリンタをWFDのGroup Owner(以下では「G/O」と記載する)に移行させるためのボタンである。G/Oは、当該プリンタが無線ネットワークの親局として動作する状態である。
【0083】
プリンタ100Bは、T226において、通知画面SC2を見たユーザから第2の所定ボタンの押下(即ち、プリンタ100BをG/Oに移行させるための操作)を受け付けると、T228において、G/Oに移行する。
【0084】
その後、アプリ38Aは、T229において、通知画面SC2内のOKボタンの選択を受け付ける。この結果、T230において、端末10Aとプリンタ100Bとの間にWFD接続が確立される。具体的には、端末10Aは、G/Oとして動作するプリンタ100Bによって形成される無線ネットワークに子局として所属する。なお、図示省略しているが、端末10Aは、T229においてOKボタンが選択されると、AP6とのWi-Fi接続を切断する。端末10Aは、AP6とのWi-Fi接続と、プリンタ100BとのWFD接続と、を同時的に確立することができないからである。端末10Aが、AP6とのWi-Fi接続と、プリンタ100BとのWFD接続と、を同時的に確立可能な変形例では、端末10Aは、T229においてOKボタンが選択されても、AP6とのWi-Fi接続を切断しなくてもよい。
【0085】
アプリ38Aは、T232において、確立済みのWFD接続を利用して、SSID検索要求をプリンタ100Bに送信する。SSID検索要求は、SSIDの検索をプリンタ100Bに要求する信号である。
【0086】
プリンタ100Bは、T232において、端末10AからSSID検索要求を受信すると、T234において、SSID検索をブロードキャストによって送信する。SSID検索は、プリンタ100Bの周囲に存在するAPを検索する信号である。
【0087】
AP6は、T234において、プリンタ100BからSSID検索を受信すると、T236において、自身のSSID「S1」をプリンタ100Bに送信する。
【0088】
プリンタ100Bは、T236において、AP6からSSID「S1」を受信する。本ケースでは、プリンタ100Bは、AP6のみからSSIDを受信する。
【0089】
プリンタ100Bは、T238において、確立済みのWFD接続を利用して、検索結果を端末10Aに送信する。検索結果は、SSID検索で見つかったSSID(本ケースでは、1個のSSID「S1」)を含む。
【0090】
アプリ38Aは、T238において、プリンタ100Bから検索結果を受信すると、T240において、検索結果画面SC5を表示部14Aに表示させる。検索結果画面SC5は、上記のSSID検索によって見つかったSSID一覧と、SSID一覧の中から1個のSSIDを選択してパスワードを入力することを促すメッセージと、パスワード入力領域と、OKボタンと、を含む。
【0091】
アプリ38Aは、T242において、ユーザから、SSID「S1」の選択と、当該SSID「S1」によって識別される無線ネットワーク(即ち、AP6によって形成される無線ネットワーク)で利用されるパスワードの入力と、OKボタンの選択と、を受け付ける。当該パスワードは予め決められた文字列であり、ユーザは、当該パスワードを予め取得している。アプリ38Aは、T244において、確立済みのWFD接続を利用して、選択済みのSSID「S1」と、入力済みのパスワードと、をプリンタ100Bに送信する。
【0092】
プリンタ100Bは、T244において、端末10AからSSID「S1」とパスワードとを受信すると、T250において、これらの情報を利用して、AP6とのWi-Fi接続を確立する。このように、DPPをサポートしていないプリンタ100B等、サーバ200において公開鍵が記憶されていない状況においても、端末10Aを利用して、プリンタ100BとAP6との間にWi-Fi接続を確立させることができる。そして、プリンタ100Bは、T252において、確立済みのWFD接続を利用して、AP6とのWi-Fi接続が確立されたことを示す確立通知を端末10Aに送信する。以上のT230~T252の処理が、図2のS32の「非DPP処理」に相当する。
【0093】
アプリ38Aは、T252において、プリンタ100Bから確立通知を受信すると、T222で受信済みの応答がサポート情報「非サポート」を含む(S34でYES、S40でNO)ので、公開鍵を更新するための処理を実行しない。プリンタ100BはDPPをサポートしていないので、公開鍵が利用されたDPP処理を実行できないからである。従って、アプリ38Aは、不必要な処理を実行せずに済む。なお、図示省略しているが、端末10Aは、プリンタ100Bから確立通知を受信すると、切断されていたAP6とのWi-Fi接続を再確立する。このために、プリンタ100Bは、端末10AからAP6を介して印刷対象の画像を表わす印刷データを受信して、当該印刷データによって表わされる画像の印刷を実行することができる。
【0094】
(ケースC;図6
続いて、図6を参照して、ケースCを説明する。ケースCは、端末10Aを利用して、DPPをサポートしているプリンタ100AとAP6との間にWi-Fi接続を確立させるケースである。但し、ケースCでは、プリンタ100Aが記憶する公開鍵PKA1と、サーバ300においてプリンタ100Aのシリアル番号SNAに関連付けられている公開鍵PKA3と、が異なることに起因して、DPP処理が失敗する。例えば、図4のT168で、プリンタ100Aにおいて新公開鍵が生成された後に、端末10Aとプリンタ100Aとの間のT170の通信、又は、端末10Aとサーバ200との間のT172の通信が失敗する状況が想定される。このような状況では、プリンタ100Aは新公開鍵を記憶しているが、サーバ200は、新公開鍵を記憶していない。図6の初期状態でも、端末10AとAP6との間でDPP処理が実行されており、端末10AとAP6との間にWi-Fi接続が確立済みである。ケースCでは、まず、図3のT100~T120と同様の処理が実行される。
【0095】
アプリ38Aは、T322において、サーバ200から応答を受信する。T322の応答は、サポート情報「サポート」と、公開鍵PKA3と、手法情報M1と、を含む。T324~T329の処理は、図3のT124~T129の処理と同様である。T330の処理は、利用される公開鍵がPKA3である点を除いて、図3のT130の処理と同様である。
【0096】
上記の通り、本ケースでは、プリンタ100Aが記憶する公開鍵PKA1と、Auth Reqで利用される公開鍵(即ちサーバ200が記憶する公開鍵)PKA3と、が異なることに起因して、プリンタ100Aにおいて認証が失敗する。この場合、プリンタ100Aは、認証が失敗したことを示すAuth Resを端末10Aに送信する。
【0097】
アプリ38Aは、T332において、プリンタ100Bから、認証が失敗したことを示すAuth Resを受信すると、DPP処理が失敗したと判断して(図2のS22でNO)、T340において、通知画面SC2を表示部14Aに表示させる(S30)。T340~T372の処理は、図5のT224~T252の処理と同様である。このように、端末10Aとプリンタ100Aとの間のDPP処理が失敗する状況においても、端末10Aを利用して、プリンタ100AとAP6との間にWi-Fi接続を確立させることができる。
【0098】
また、アプリ38Aは、T372において、プリンタ100Aから確立通知を受信すると、T322で受信済みの応答がサポート情報「サポート」を含む(S34でYES、S40でYES)ので、公開鍵を更新するための処理(即ち図2のS50~S60、図4の処理)を実行する。このために、プリンタ100Aに記憶される公開鍵と、サーバ200の記憶される公開鍵と、が共に新公開鍵PKA2となる。このために、DPP処理が再び実行される場合に、プリンタ100Aに記憶される公開鍵と、サーバ200に記憶される公開鍵と、が一致するので、プリンタ100Aと端末(例えば10A)とは、DPP処理を適切に再び実行することができる。
【0099】
(ケースD;図7
続いて、図7を参照して、ケースDを説明する。ケースDは、DPPをサポートしていない端末10Bを利用して、プリンタ100AとAP6との間にWi-Fi接続を確立させるケースである。図7の初期状態では、端末10BとAP6との間にWi-Fi接続が確立済みである。T400~T412の処理は、処理の主体が端末10Bのアプリ38Bである点を除いて、図3のT100~T112の処理と同様である。
【0100】
アプリ38Bは、T414において、端末10BのWi-FiI/F16BがDPP方式をサポートしていないと判断し(図2のS10でNO)、T440において、通知画面SC2を表示部14Bに表示させる。T440~T472の処理は、端末10Aに代えて端末10Bが利用される点を除いて、図5のT224~T252の処理と同様である。このように、DPPをサポートしていない端末10Bを利用して、プリンタ100AとAP6との間にWi-Fi接続を確立させることができる。
【0101】
また、アプリ38Bは、T472において、プリンタ100Aから確立通知を受信すると、プリンタ100Aのサポート情報を取得済みでないので(S34でNO)、T480において、AP6を介して、DPPサポート問合せをプリンタ100Aに送信する(S36)。DPPサポート問合せは、プリンタ100AがDPPをサポートしているのか否かをプリンタ100Aに問い合わせるための信号である。
【0102】
プリンタ100Aは、端末10BからDPPサポート問合せを受信すると、プリンタ100AのWi-FiI/F116ADPPをサポートしているので、T482において、AP6を介して、DPPをサポートしていることを示す情報を端末10Bに送信する。
【0103】
アプリ38Bは、T482において、プリンタ100AからDPPをサポートしていることを示す情報を受信する(S38、S40でYES)。この場合、アプリ38Bは、公開鍵を更新するための処理(即ち図2のS50~S60、図4の処理)を実行する。
【0104】
上記の通り、DPPをサポートしていない端末10Bが利用される場合には、公開鍵送信要求はサーバ200に送信されない。端末10BがDPPをサポートしていないので、仮に公開鍵送信要求をサーバ200に送信して公開鍵を受信したとしても、当該公開鍵を用いたAuth Reqを送信することができないからである。従って、端末10Bは不要な処理を実行せずに済むので、端末10Bの処理負荷を軽減することができる。
【0105】
(第1実施例の効果)
上記の構成によると、端末10Aは、公開鍵PKA1を利用した後(図3のT130参照)に、プリンタ100Aから、公開鍵PKA1とは異なる新公開鍵PKA2を受信し(図4のT170)、新公開鍵PKA2を含む更新要求をサーバに送信する(T172)。この結果、サーバ200において、公開鍵PKA1に代えて新公開鍵PKA2が記憶される(T174)。このために、公開鍵をセキュアに管理することができる。
【0106】
(対応関係)
端末10A及び端末10Bが、「第1の通信装置」の一例である。プリンタ100A及びプリンタ100Bが、「第2の通信装置」の一例である。サーバ200、AP6が、それぞれ、「サーバ」、「外部装置」の一例である。DPP、DPPとは異なる方式が、それぞれ、「第1の方式」、「第2の方式」の一例である。シリアル番号が、「特定の識別情報」の一例である。公開鍵PKA1、公開鍵PKA2が、それぞれ、「第1のブートストラッピングキー」、「第2のブートストラッピングキー」の一例である。Auth Req、Auth Res、プリンタ用COが、「認証要求」、「認証応答」、「第1の接続情報」の一例である。AP6によって形成される無線ネットワークのSSID及びパスワードが、「第2の接続情報」の一例である。通知画面SC3、通知画面SC1が、それぞれ、「パスワード入力画面」、「手法画面」の一例である。図4のT172の更新要求、T164の公開鍵更新要求が、それぞれ、「第1の更新要求」、「第2の更新要求」の一例である。
【0107】
図3のT112の処理が、「取得部」によって実行される処理の一例である。図2のS12の処理、S14の処理、S18の処理、S50の処理、S52の処理、S54の処理、S56の処理が、それぞれ、「識別情報送信部」、「第1のキー受信部(及びサポート情報受信部、及び手法情報受信部)」、「第2の表示制御部」、「第1の表示制御部」、「第2の更新要求送信部」、「第2のキー受信部」、「第1の更新要求送信部」によって実行される処理の一例である。図3のT130の処理、T132の処理、T142の処理が、それぞれ、「認証要求送信部」、「認証応答受信部」、「第1の接続情報通信部」によって実行される処理の一例である。図5のT244の処理が、「第2の接続情報通信部」によって実行される処理の一例である。
【0108】
(第2実施例)
続いて、第2実施例を説明する。第2実施例は、プリンタをDPP応答状態に移行させるための手法が、第1実施例とは異なる。また、第2実施例では、プリンタテーブル240において、シリアル番号に関連付けて手法情報は記憶されない。
【0109】
(アプリの処理;図8
図8を参照して、対象端末のCPUが対象アプリを実行することによって実現される第2実施例の処理を説明する。図8は、対象プリンタとAP6との間にWi-Fi接続を確立させるための処理である。図8では、図2と同じ処理には同じ参照番号を付している。図2と同じ処理についての詳細な説明は省略し、図2と異なる処理について以下に説明する。
【0110】
図8のS118では、対象アプリは、Probe Reqをブロードキャストによって送信する。Probe Reqは、対象プリンタをDPP応答状態に移行させるための所定のSSIDを含む。当該Probe Reqが対象プリンタによって受信されることによって、対象プリンタがDPP非応答状態からDPP応答状態に移行する。
【0111】
(ケースE;図9
続いて、図8の処理によって実現される具体的なケースEを説明する。ケースEは、端末10Aを利用して、DPPをサポートしているプリンタ100AとAP6との間にWi-Fi接続を確立させるケースである。図9の初期状態は、図3の初期状態と同様である。T500~T520の処理は、図3のT100~T120の処理と同様である。また、T522の処理は、手法情報を含まない点を除いて、図3のT122の処理と同様である。
【0112】
アプリ38Aは、T524において、取得済みの公開鍵PKA1をハッシュ関数でハッシュ化することによって、SSID「hash(PKA1)」を生成する。ここで、「hash(PKA1)」は、公開鍵PKA1をハッシュ関数でハッシュ化することによって得られる文字列を意味する。そして、アプリ38Aは、T526において、生成済みのSSID「hash(PKA1)」を含むProbe Reqをブロードキャストによって送信する(図8のS118)。
【0113】
プリンタ100Aは、T526において、端末10AからProbe Reqを受信すると、以下の処理を実行する。まず、プリンタ100Aは、Probe Reqに含まれるSSIDと、自身が親局として動作する無線ネットワークのSSIDと、が一致するのか否かを判断する。本ケースでは、プリンタ100Aは、親局として動作していないので、これらが一致しないと判断する。次いで、プリンタ100Aは、記憶している公開鍵PKA1をハッシュ関数でハッシュ化する。ここで利用されるハッシュ関数は、T524において端末10Aによって利用されるハッシュ関数と同じである。そして、プリンタ100Aがハッシュ化した文字列と、Probe Reqに含まれるSSIDと、が一致するのか否かを判断する。本ケースでは、これらが一致するので、プリンタ100Aは、T528において、DPP応答状態に移行する。
【0114】
T530~T556の処理は、図3のT130~T156の処理と同様である。その後、図4と同様の処理が実行され、プリンタ100Aの公開鍵が更新される。
【0115】
(第2実施例の効果)
第2実施例でも、第1実施例と同様に、公開鍵をセキュアに管理することができる。特に、第2実施例では、プリンタ100Aの状態をDPP非応答状態からDPP応答状態に移行させるための第1の所定ボタンの押下を実行する必要がない。従って、ユーザが実行すべき操作が減るので、ユーザの利便性が向上する。SSID「hash(PKA1)」が、「関連情報」の一例である。図8のS118の処理が、「Probe要求送信部」によって実行される処理の一例である。
【0116】
以上、本明細書が開示する技術の具体例を詳細に説明したが、これらは例示に過ぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には、以上に例示した具体例を様々に変形、変更したものが含まれる。上記の実施例の変形例を以下に列挙する。
【0117】
(変形例1)上記の実施例では、例えばプリンタ100AとAP6との間にWi-Fi接続を確立させるために、端末10Aとプリンタ100Aとの間でDPP処理が実行された。変形例では、端末10AとAP6との間にWi-Fi接続を確立させるために、端末10Aとプリンタ100Aとの間でDPP処理が実行されてもよい。本変形例では、プリンタ100AがConfiguratorとして動作し、端末10AがEnrolleeとして動作し、プリンタ100Aが端末用COを端末10Aに送信してもよい。本変形例では、端末用COが、「第1の接続情報」の一例である。また、別の変形例では、端末10Aとプリンタ100Aとの間にWi-Fi接続を確立させるために、端末10Aとプリンタ100Aとの間でDPP処理が実行されてもよい。本変形例では、端末10A又はプリンタ100Aが、「外部装置」の一例である。また、別の変形例では、端末10Aは、プリンタ用SCを含むプリンタ用COをプリンタ100Aに送信することに代えて、AP6のSSID及びパスワードを含むプリンタ用COをプリンタ100Aに送信してもよい。本変形例では、AP6のSSID及びパスワードを含むプリンタ用COが、「第1の接続情報」の一例である。
【0118】
(変形例2)「識別情報」は、プリンタのシリアル番号に限定されず、例えば、プリンタのMACアドレス等、プリンタを識別する情報であればよい。また、シリアル番号を取得する手段は、バーコードの撮影に限定されず、例えば、ユーザが手入力でシリアル番号を端末に入力してもよい。本変形例では、ユーザからシリアル番号の手入力を受け付けることが、「取得部」によって実行される処理の一例である。
【0119】
(変形例3)プリンタ100Aは、例えば端末10AにResultを送信した後に、端末10Aから公開鍵更新要求(図4のT164参照)を受信することなく、新公開鍵PKA2を生成してもよい。本変形例では、図2のS52の処理を省略可能である。一般的に言うと、「第2の更新要求送信部」を省略可能である。
【0120】
(変形例4)アプリ38Aは、通知画面SC3を表示部14Aに表示させなくてもよい。この場合、公開鍵更新要求は、パスワードを含まなくてもよい。本変形例では、図2のS50の処理を省略可能である。一般的に言うと、「第1の表示制御部」は省略可能であり、また、「第2の更新要求」は、「パスワード」を含まなくてもよい。
【0121】
(変形例5)サーバ200は、プリンタテーブル240において、サポート情報を記憶しなくてもよい。この場合、アプリ38Aは、プリンタがDPPをサポートしているのか否かに関わらず、公開鍵更新要求を当該プリンタに送信してもよい。なお、DPPをサポートしていないプリンタに公開鍵更新要求が送信される場合には、当該プリンタは、当該要求に対してエラーで応答してもよい。本変形例では、図2のS34~S40の処理を省略可能である。一般的に言うと、「サポート情報受信部」は省略可能である。
【0122】
(変形例6)アプリは、当該アプリがインストールされている端末がDPPをサポートしているのか否かに関わらず、公開鍵送信要求をサーバ200に送信してもよい。本変形例では、図2のS10の処理を省略可能である。特に、端末がDPPをサポートしていない場合に、アプリは、DPP処理の実行を試行してもよい。この場合、端末がDPPをサポートしていないので、DPP処理は失敗する。この場合、アプリは、非DPP処理を実行することなく、DPP処理が失敗したことを示すエラーを表示してもよい。本変形例では、「第2の接続情報通信部」を省略可能である。
【0123】
(変形例7)アプリ38Aは、図2のS14でサーバ200から受信される応答に公開鍵が含まれない場合に、非DPP処理を実行することなく、DPP処理が実行できないことを示すエラーを表示してもよい。本変形例では、「第2の接続情報通信部」を省略可能である。
【0124】
(変形例8)プリンタ100AにおいてAuth Reqに応じた認証が失敗する場合に、アプリ38Aは、非DPP処理を実行することなく、DPP処理が失敗したことを示すエラーを表示してもよい。本変形例では、「第2の接続情報通信部」を省略可能である。
【0125】
(変形例9)上記の実施例では、図2図9の各処理がOSプログラム36A、アプリ38A等のソフトウェアによって実現されたが、これらの各処理の少なくとも1つの処理が、論理回路等のハードウェアによって実現されてもよい。
【0126】
本明細書または図面に説明した技術要素は、単独で、あるいは各種の組合せによって技術的有用性を発揮するものであり、出願時請求項記載の組合せに限定されるものではない。また、本明細書または図面に例示した技術は複数目的を同時に達成し得るものであり、そのうちの一つの目的を達成すること自体で技術的有用性を持つものである。
【0127】
本特許出願時の特許請求の範囲において、各請求項が一部の請求項のみに従属している場合であっても、各請求項が当該一部の請求項のみに従属可能であることに限定されない。技術的に矛盾しない範囲において、各請求項は、出願時に従属していない他の請求項にも従属可能である。即ち、各請求項の技術は以下のように組み合わせることができる。
(項目1)
第1の通信装置のためのコンピュータプログラムであって、
前記第1の通信装置は、
Wi-Fi規格に従ったWi-Fi通信を実行するためのWi-Fiインターフェースと、
コンピュータと、
を備え、
前記コンピュータプログラムは、前記コンピュータを、以下の各部、即ち、
第2の通信装置を識別する特定の識別情報を取得する取得部と、
前記特定の識別情報を前記第2の通信装置とは異なるサーバに送信する識別情報送信部であって、前記サーバは、1個以上の通信装置のそれぞれについて、当該通信装置を識別する識別情報と、当該通信装置に記憶されているブートストラッピングキーと、を関連付けて記憶するように構成されている、前記識別情報送信部と、
前記特定の識別情報が前記サーバに送信されることに応じて、前記サーバから、前記特定の識別情報に関連付けられている第1のブートストラッピングキーを受信する第1のキー受信部と、
前記サーバから前記第1のブートストラッピングキーが受信される場合に、前記Wi-Fiインターフェースを介して、前記第1のブートストラッピングキーが利用された認証要求であって、前記Wi-Fi規格の第1の方式に従った前記認証要求を前記第2の通信装置に送信する認証要求送信部と、
前記認証要求が前記第2の通信装置に送信されることに応じて、前記第2の通信装置から、前記Wi-Fiインターフェースを介して、前記第1の方式に従った認証応答を受信する認証応答受信部と、
前記第2の通信装置から前記認証応答が受信される場合に、前記Wi-Fiインターフェースを介して、前記第1の方式に従った第1の接続情報の通信を前記第2の通信装置と実行する第1の接続情報通信部であって、前記第1の接続情報は、前記第1の通信装置又は前記第2の通信装置と外部装置との間にWi-Fi接続を確立するための情報である、前記第1の接続情報通信部と、
前記第1の接続情報の通信が実行された後に、前記第2の通信装置から、前記Wi-Fiインターフェースを介して、前記第1のブートストラッピングキーとは異なる第2のブートストラッピングキーを受信する第2のキー受信部と、
前記第2の通信装置から前記第2のブートストラッピングキーが受信される場合に、前記Wi-Fiインターフェースを介して、前記特定の識別情報と前記第2のブートストラッピングキーとを含む第1の更新要求を前記サーバに送信する第1の更新要求送信部であって、前記第1の更新要求は、前記特定の識別情報に関連付けて、前記第1のブートストラッピングキーに代えて前記第2のブートストラッピングキーを記憶することを前記サーバに要求する信号である、前記第1の更新要求送信部と、
として機能させる、コンピュータプログラム。
(項目2)
前記コンピュータプログラムは、前記コンピュータを、さらに、
前記第1の接続情報の通信が実行された後に、前記Wi-Fiインターフェースを介して、第2の更新要求を前記第2の通信装置に送信する第2の更新要求送信部であって、前記第2の更新要求は、前記第1のブートストラッピングキーに代えて前記第2のブートストラッピングキーを記憶することを前記第2の通信装置に要求する信号である、前記第2の更新要求送信部として機能させ、
前記第2のキー受信部は、前記第2の更新要求が前記第2の通信装置に送信されることに応じて、前記第2の通信装置から前記第2のブートストラッピングキーを受信する、項目1に記載のコンピュータプログラム。
(項目3)
前記コンピュータプログラムは、前記コンピュータを、さらに、
前記第1の接続情報の通信が実行された後に、パスワード入力画面を前記第1の通信装置の表示部に表示させる第1の表示制御部として機能させ、
前記第2の更新要求送信部は、前記パスワード入力画面に入力されるパスワードを含む前記第2の更新要求を前記第2の通信装置に送信し、
前記第2のキー受信部は、前記第2の更新要求が前記第2の通信装置に送信され、かつ、前記第2の通信装置において前記パスワードの認証が成功する場合に、前記第2の通信装置から前記第2のブートストラッピングキーを受信し、
前記第2の更新要求が前記第2の通信装置に送信され、かつ、前記第2の通信装置において前記パスワードの認証が失敗する場合に、前記第2のブートストラッピングキーは受信されない、項目2に記載のコンピュータプログラム。
(項目4)
前記サーバは、前記1個以上の通信装置を含む複数個の通信装置のそれぞれについて、当該通信装置の識別情報と、当該通信装置が前記第1の方式をサポートしているのか否かを示すサポート情報と、を関連付けて記憶するように構成されており、
前記コンピュータプログラムは、前記コンピュータを、さらに、
前記特定の識別情報が前記サーバに送信されることに応じて、前記サーバから、前記特定の識別情報に関連付けられている特定のサポート情報を受信するサポート情報受信部として機能させ、
前記第2の更新要求送信部は、前記特定のサポート情報が前記第1の方式をサポートしていることを示す場合に、前記第2の更新要求を前記第2の通信装置に送信し、
前記特定のサポート情報が前記第1の方式をサポートしていないことを示す場合に、前記第2の更新要求は送信されない、項目2又は3に記載のコンピュータプログラム。
(項目5)
前記特定の識別情報は、前記第2の通信装置のシリアル番号であり、
前記取得部は、前記第2の通信装置に貼付されたバーコードであって、前記シリアル番号をコード化することによって得られる前記バーコードが読み取られることに応じて、前記シリアル番号を取得する、項目1から4のいずれか一項に記載のコンピュータプログラム。
(項目6)
前記サーバは、前記1個以上の通信装置のそれぞれについて、当該通信装置を識別する識別情報と、当該通信装置の状態を、認証応答を送信不可能な状態から、認証応答を送信可能な状態に移行させるための手法を示す手法情報と、を関連付けて記憶するように構成されており、
前記コンピュータプログラムは、前記コンピュータを、さらに、
前記特定の識別情報が前記サーバに送信されることに応じて、前記サーバから、前記特定の識別情報に関連付けられている特定の手法情報を受信する手法情報受信部と、
前記サーバから前記手法情報が受信される場合に、前記特定の手法情報によって示される手法を表わす手法画面を前記第1の通信装置の表示部に表示させる第2の表示制御部と、
として機能させる、項目1から5のいずれか一項に記載のコンピュータプログラム。
(項目7)
前記識別情報送信部は、前記特定の識別情報が取得され、かつ、前記第1の通信装置が前記第1の方式をサポートしている場合に、前記特定の識別情報を前記サーバに送信し、
前記特定の識別情報が取得され、かつ、前記第1の通信装置が前記第1の方式をサポートしていない場合に、前記特定の識別情報は送信されない、項目1から6のいずれか一項に記載のコンピュータプログラム。
(項目8)
前記コンピュータプログラムは、前記コンピュータを、さらに、
前記特定の識別情報が取得され、かつ、前記第1の通信装置が前記第1の方式をサポートしていない場合に、前記Wi-Fiインターフェースを介して、前記第1の方式とは異なる第2の方式に従った第2の接続情報の通信を前記第2の通信装置と実行する第2の接続情報通信部であって、前記第2の接続情報は、前記第1の通信装置又は前記第2の通信装置と前記外部装置との間にWi-Fi接続を確立させるための情報である、前記第2の接続情報通信部として機能させる、項目7に記載のコンピュータプログラム。
(項目9)
前記第1のキー受信部は、前記サーバが前記特定の識別情報と前記第1のブートストラッピングキーとを関連付けて記憶している場合に、前記特定の識別情報が前記サーバに送信されることに応じて、前記サーバから前記第1のブートストラッピングキーを受信し、
前記サーバが前記特定の識別情報と前記第2の通信装置のブートストラッピングキーとを関連付けて記憶していない場合に、前記特定の識別情報が前記サーバに送信されても、前記サーバからブートストラッピングキーは受信されず、
前記コンピュータプログラムは、前記コンピュータを、さらに、
前記サーバからブートストラッピングキーが受信されない場合に、前記Wi-Fiインターフェースを介して、前記第1の方式とは異なる第2の方式に従った第2の接続情報の通信を前記第2の通信装置と実行する第2の接続情報通信部であって、前記第2の接続情報は、前記第1の通信装置又は前記第2の通信装置と前記外部装置との間にWi-Fi接続を確立させるための情報である、前記第2の接続情報通信部と、
として機能させる、項目1から8のいずれか一項に記載のコンピュータプログラム。
(項目10)
前記第1の接続情報通信部は、前記第2の通信装置から、前記認証要求に応じた認証が成功したことを示す前記認証応答が受信される場合に、前記第1の接続情報の通信を前記第2の通信装置と実行し、
前記コンピュータプログラムは、前記コンピュータを、さらに、
前記通信装置から、前記認証が失敗したことを示す前記認証応答が受信される場合に、前記第1の方式とは異なる第2の方式に従った第2の接続情報の通信を前記第2の通信装置と実行する第2の接続情報通信部であって、前記第2の接続情報は、前記第1の通信装置又は前記第2の通信装置と前記外部装置との間にWi-Fi接続を確立させるための情報である、前記第2の接続情報通信部と、
として機能させる、項目1から9のいずれか一項に記載のコンピュータプログラム。
(項目11)
前記コンピュータプログラムは、前記コンピュータを、さらに、
前記Wi-Fiインターフェースを介して、前記特定の識別情報に関連する関連情報を含むProbe要求を送信するProbe要求送信部であって、前記Probe要求は、前記関連情報に関連する前記特定の識別情報によって識別される前記第2の通信装置の状態を、前記認証応答を送信不可能な状態から、前記認証応答を送信可能な状態に移行させるための信号である、前記Probe要求送信部として機能させる、項目1から10に記載のコンピュータプログラム。
(項目12)
第1の通信装置であって、
Wi-Fi規格に従ったWi-Fi通信を実行するためのWi-Fiインターフェースと、
第2の通信装置を識別する特定の識別情報を取得する取得部と、
前記特定の識別情報を前記第2の通信装置とは異なるサーバに送信する識別情報送信部であって、前記サーバは、1個以上の通信装置のそれぞれについて、当該通信装置を識別する識別情報と、当該通信装置に記憶されているブートストラッピングキーと、を関連付けて記憶するように構成されている、前記識別情報送信部と、
前記特定の識別情報が前記サーバに送信されることに応じて、前記サーバから、前記特定の識別情報に関連付けられている第1のブートストラッピングキーを受信する第1のキー受信部と、
前記サーバから前記第1のブートストラッピングキーが受信される場合に、前記Wi-Fiインターフェースを介して、前記第1のブートストラッピングキーが利用された認証要求であって、前記Wi-Fi規格の第1の方式に従った前記認証要求を前記第2の通信装置に送信する認証要求送信部と、
前記認証要求が前記第2の通信装置に送信されることに応じて、前記第2の通信装置から、前記Wi-Fiインターフェースを介して、前記第1の方式に従った認証応答を受信する認証応答受信部と、
前記認証応答が受信される場合に、前記Wi-Fiインターフェースを介して、前記第1の方式に従った第1の接続情報の通信を前記第2の通信装置と実行する第1の接続情報通信部であって、前記第1の接続情報は、前記第1の通信装置又は前記第2の通信装置と外部装置との間にWi-Fi接続を確立するための情報である、前記第1の接続情報通信部と、
前記第1の接続情報の通信が実行された後に、前記第2の通信装置から、前記Wi-Fiインターフェースを介して、前記第1のブートストラッピングキーとは異なる第2のブートストラッピングキーを受信する第2のキー受信部と、
前記第2の通信装置から前記第2のブートストラッピングキーが受信される場合に、前記Wi-Fiインターフェースを介して、前記特定の識別情報と前記第2のブートストラッピングキーとを含む第1の更新要求を前記サーバに送信する第1の更新要求送信部であって、前記第1の更新要求は、前記特定の識別情報に関連付けて、前記第1のブートストラッピングキーに代えて前記第2のブートストラッピングキーを記憶することを前記サーバに要求する信号である、前記第1の更新要求送信部と、
を備える、第1の通信装置。
(項目13)
第1の通信装置によって実行される方法であって、
前記第1の通信装置は、
Wi-Fi規格に従ったWi-Fi通信を実行するためのWi-Fiインターフェースを備え、
前記方法は、
第2の通信装置を識別する特定の識別情報を取得する取得工程と、
前記特定の識別情報を前記第2の通信装置とは異なるサーバに送信する識別情報送信工程であって、前記サーバは、1個以上の通信装置のそれぞれについて、当該通信装置を識別する識別情報と、当該通信装置に記憶されているブートストラッピングキーと、を関連付けて記憶するように構成されている、前記識別情報送信工程と、
前記特定の識別情報が前記サーバに送信されることに応じて、前記サーバから、前記特定の識別情報に関連付けられている第1のブートストラッピングキーを受信する第1のキー受信工程と、
前記サーバから前記第1のブートストラッピングキーが受信される場合に、前記Wi-Fiインターフェースを介して、前記第1のブートストラッピングキーが利用された認証要求であって、前記Wi-Fi規格の第1の方式に従った前記認証要求を前記第2の通信装置に送信する認証要求送信工程と、
前記認証要求が前記第2の通信装置に送信されることに応じて、前記第2の通信装置から、前記Wi-Fiインターフェースを介して、前記第1の方式に従った認証応答を受信する認証応答受信工程と、
前記認証応答が受信される場合に、前記Wi-Fiインターフェースを介して、前記第1の方式に従った第1の接続情報の通信を前記第2の通信装置と実行する第1の接続情報通信工程であって、前記第1の接続情報は、前記第1の通信装置又は前記第2の通信装置と外部装置との間にWi-Fi接続を確立するための情報である、前記第1の接続情報通信工程と、
前記第1の接続情報の通信が実行された後に、前記第2の通信装置から、前記Wi-Fiインターフェースを介して、前記第1のブートストラッピングキーとは異なる第2のブートストラッピングキーを受信する第2のキー受信工程と、
前記第2の通信装置から前記第2のブートストラッピングキーが受信される場合に、前記Wi-Fiインターフェースを介して、前記特定の識別情報と前記第2のブートストラッピングキーとを含む第1の更新要求を前記サーバに送信する第1の更新要求送信工程であって、前記第1の更新要求は、前記特定の識別情報に関連付けて、前記第1のブートストラッピングキーに代えて前記第2のブートストラッピングキーを記憶することを前記サーバに要求する信号である、前記第1の更新要求送信工程と、
を備える、方法。
【符号の説明】
【0128】
2:通信システム、6:AP、10A,10B:端末、12A,12B,112A,112B:操作部、14A,14B:表示部、16A,16B,116A,116B:Wi-FiI/F、18A,18B:カメラ、30A,30B,130A,130B,230:制御部、32A,32B,132A,132B,232:CPU、34A,34B,134A,134B,234:メモリ、36A,36B:OSプログラム、38A,38B:アプリケーション、100A,100B:プリンタ、118A,118B:印刷実行部、136A,136B、236:プログラム、200:サーバ、216:通信I/F、240:プリンタテーブル
図1
図2
図3
図4
図5
図6
図7
図8
図9