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

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

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

特許7582381端末装置のためのコンピュータプログラム、端末装置、通信装置、及び、通信装置のためのコンピュータプログラム
<>
  • 特許-端末装置のためのコンピュータプログラム、端末装置、通信装置、及び、通信装置のためのコンピュータプログラム 図1
  • 特許-端末装置のためのコンピュータプログラム、端末装置、通信装置、及び、通信装置のためのコンピュータプログラム 図2
  • 特許-端末装置のためのコンピュータプログラム、端末装置、通信装置、及び、通信装置のためのコンピュータプログラム 図3
  • 特許-端末装置のためのコンピュータプログラム、端末装置、通信装置、及び、通信装置のためのコンピュータプログラム 図4
  • 特許-端末装置のためのコンピュータプログラム、端末装置、通信装置、及び、通信装置のためのコンピュータプログラム 図5
  • 特許-端末装置のためのコンピュータプログラム、端末装置、通信装置、及び、通信装置のためのコンピュータプログラム 図6
  • 特許-端末装置のためのコンピュータプログラム、端末装置、通信装置、及び、通信装置のためのコンピュータプログラム 図7
  • 特許-端末装置のためのコンピュータプログラム、端末装置、通信装置、及び、通信装置のためのコンピュータプログラム 図8
  • 特許-端末装置のためのコンピュータプログラム、端末装置、通信装置、及び、通信装置のためのコンピュータプログラム 図9
  • 特許-端末装置のためのコンピュータプログラム、端末装置、通信装置、及び、通信装置のためのコンピュータプログラム 図10
  • 特許-端末装置のためのコンピュータプログラム、端末装置、通信装置、及び、通信装置のためのコンピュータプログラム 図11
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-11-05
(45)【発行日】2024-11-13
(54)【発明の名称】端末装置のためのコンピュータプログラム、端末装置、通信装置、及び、通信装置のためのコンピュータプログラム
(51)【国際特許分類】
   H04L 9/32 20060101AFI20241106BHJP
   H04W 76/11 20180101ALI20241106BHJP
   H04W 12/069 20210101ALI20241106BHJP
   H04W 84/12 20090101ALN20241106BHJP
【FI】
H04L9/32 200B
H04L9/32 200F
H04W76/11
H04W12/069
H04W84/12
【請求項の数】 12
(21)【出願番号】P 2023101724
(22)【出願日】2023-06-21
(62)【分割の表示】P 2022018513の分割
【原出願日】2018-03-30
(65)【公開番号】P2023123630
(43)【公開日】2023-09-05
【審査請求日】2023-07-21
(73)【特許権者】
【識別番号】000005267
【氏名又は名称】ブラザー工業株式会社
(74)【代理人】
【識別番号】110000110
【氏名又は名称】弁理士法人 快友国際特許事務所
(72)【発明者】
【氏名】辻 亮弥
【審査官】行田 悦資
(56)【参考文献】
【文献】特開2018-042058(JP,A)
【文献】特開2017-050612(JP,A)
【文献】特開2017-135519(JP,A)
【文献】特表2017-513265(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 9/32
H04W 76/11
H04W 12/069
H04W 84/12
(57)【特許請求の範囲】
【請求項1】
端末装置のためのコンピュータプログラムであって、
前記端末装置は、
無線インターフェースと、
コンピュータと、
メモリと、
表示部と、を備え、
前記メモリは、秘密鍵と、第1の無線接続に関係する関係情報と、を対応付けて記憶し、
前記秘密鍵は、外部装置に記憶される第1の接続情報に含まれる少なくとも一部の情報を用いて得られる情報を暗号化するために利用され、
前記第1の接続情報は、前記端末装置と前記外部装置との間に前記無線インターフェースを介した前記第1の無線接続を確立するための情報であり、
前記コンピュータプログラムは、前記コンピュータを、
前記関係情報を含む選択画面を前記表示部に表示する表示制御部と、
通信装置の第1の公開鍵を取得する第1の取得部と、
前記第1の公開鍵が取得された後に、前記無線インターフェースを介して、前記第1の公開鍵が利用された第1の認証要求を前記通信装置に送信する第1の認証要求送信部と、
前記第1の認証要求が前記通信装置に送信された後に、前記通信装置から、前記無線インターフェースを介して、前記第1の認証要求に対する応答である第1の認証応答を受信する第1の認証応答受信部と、
前記選択画面に含まれる前記関係情報が選択され、かつ、前記通信装置から前記第1の認証応答が受信される場合に、前記メモリから、前記関係情報に対応付けられている前記秘密鍵を取得し、取得済みの前記秘密鍵を利用して、前記通信装置のための第2の接続情報を生成する第1の生成部であって、前記第2の接続情報は、前記通信装置と前記外部装置との間に第2の無線接続を確立するための情報である、前記第1の生成部と、
前記無線インターフェースを介して、前記第2の接続情報を前記通信装置に送信する第1の情報送信部と、
前記第2の接続情報が前記通信装置に送信された後に、前記無線インターフェースを介して、問合要求を前記通信装置に送信する問合要求送信部と、
前記問合要求が前記通信装置に送信され、かつ、前記通信装置と前記外部装置との間に前記第2の無線接続が確立された後に、前記通信装置から、前記無線インターフェースを介して、前記問合要求に対する応答である問合応答を受信する問合応答受信部と、
として機能させるコンピュータプログラム。
【請求項2】
前記選択画面は、さらに、前記関係情報とは異なる所定情報を含み、
前記コンピュータプログラムは、前記コンピュータを、さらに、
前記選択画面に含まれる前記所定情報が選択される場合に、前記端末装置と前記外部装置との間に前記第1の無線接続を確立する確立部として機能させる、請求項に記載のコンピュータプログラム。
【請求項3】
前記通信装置は、印刷機能を実行可能なプリンタであり、
前記コンピュータプログラムは、前記コンピュータを、さらに、
前記第2の接続情報が前記通信装置に送信された後に、前記無線インターフェースを介して、前記外部装置を介し、印刷対象の画像を表わす印刷データを前記通信装置に送信する印刷データ送信部として機能させる、請求項1又は2に記載のコンピュータプログラム。
【請求項4】
前記印刷データ送信部は、前記通信装置から前記問合応答が受信された後に、前記外部装置を介して、前記印刷データを前記通信装置に送信する、請求項に記載のコンピュータプログラム。
【請求項5】
前記第1の情報送信部は、前記第2の接続情報と特定情報とを前記通信装置に送信し、
前記特定情報は、通信チャネルを示すチャネル情報と、前記外部装置を識別する装置識別情報と、の少なくも一方を含む、請求項1からのいずれか一項に記載のコンピュータプログラム。
【請求項6】
前記コンピュータプログラムは、前記コンピュータを、さらに、
前記秘密鍵を利用して、前記端末装置のための第3の接続情報を生成する第2の生成部であって、前記第3の接続情報は、前記端末装置と前記外部装置との間に前記第1の無線接続を確立するための情報であり、前記秘密鍵は、前記第3の接続情報に含まれる少なくとも一部の情報を用いて得られる情報を暗号化するために利用される、前記第2の生成部と、
前記第3の接続情報を利用して、前記端末装置と前記外部装置との間に前記第1の無線接続を確立する確立部と、
として機能させる、請求項1からのいずれか一項に記載のコンピュータプログラム。
【請求項7】
前記コンピュータプログラムは、前記コンピュータを、さらに、
前記外部装置の第2の公開鍵を取得する第2の取得部と、
前記第2の公開鍵が取得された後に、前記無線インターフェースを介して、前記第2の公開鍵が利用された第2の認証要求を前記外部装置に送信する第2の認証要求送信部と、
前記第2の認証要求が前記外部装置に送信された後に、前記外部装置から、前記無線インターフェースを介して、前記第2の認証要求に対する応答である第2の認証応答を受信する第2の認証応答受信部と、
前記通信装置から前記第2の認証応答が受信される場合に、前記秘密鍵を利用して、前記外部装置のための前記第1の接続情報を生成する第3の生成部と、
前記無線インターフェースを介して、前記第1の接続情報を前記外部装置に送信する第2の情報送信部と、
前記第1の接続情報が前記外部装置に送信された後に、前記第1の接続情報が前記外部装置によって利用される場合に、前記端末装置と前記外部装置との間に前記第1の無線接続を確立する確立部と、
として機能させる、請求項1からのいずれか一項に記載のコンピュータプログラム。
【請求項8】
前記第1の生成部は、Wi-Fi規格に従ったConfiguratorとして動作して、前記第2の接続情報を生成し、
前記第1の情報送信部は、前記Wi-Fi規格に従った前記Configuratorとして動作して、前記第2の接続情報を前記通信装置に送信する、請求項1からのいずれか一項に記載のコンピュータプログラム。
【請求項9】
前記第2の接続情報は、認証情報を含み、
前記認証情報は、前記外部装置から前記通信装置に送信される情報の認証を実行するために前記通信装置によって利用される、請求項1からのいずれか一項に記載のコンピュータプログラム。
【請求項10】
前記通信装置は、前記第1の公開鍵がコード化されることによって得られるコード画像を出力し、
前記第1の取得部は、前記通信装置から出力される前記コード画像を撮影することによって、前記第1の公開鍵を取得する、請求項1からのいずれか一項に記載のコンピュータプログラム。
【請求項11】
前記外部装置は、アクセスポイントである、請求項1から10のいずれか一項に記載のコンピュータプログラム。
【請求項12】
端末装置であって、
無線インターフェースと、
秘密鍵と、第1の無線接続に関係する関係情報と、を対応付けて記憶するメモリであって、前記秘密鍵は、外部装置に記憶される第1の接続情報に含まれる少なくとも一部の情報を用いて得られる情報を暗号化するために利用され、前記第1の接続情報は、前記端末装置と前記外部装置との間に前記無線インターフェースを介した前記第1の無線接続を確立するための情報である、前記メモリと、
表示部と、
前記関係情報を含む選択画面を前記表示部に表示する表示制御部と、
通信装置の第1の公開鍵を取得する第1の取得部と、
前記第1の公開鍵が取得された後に、前記無線インターフェースを介して、前記第1の公開鍵が利用された第1の認証要求を前記通信装置に送信する第1の認証要求送信部と、
前記第1の認証要求が前記通信装置に送信された後に、前記通信装置から、前記無線インターフェースを介して、前記第1の認証要求に対する応答+である第1の認証応答を受信する第1の認証応答受信部と、
前記選択画面に含まれる前記関係情報が選択され、かつ、前記通信装置から前記第1の認証応答が受信される場合に、前記メモリから、前記関係情報に対応付けられている前記秘密鍵を取得し、取得済みの前記秘密鍵を利用して、前記通信装置のための第2の接続情報を生成する第1の生成部であって、前記第2の接続情報は、前記通信装置と前記外部装置との間に第2の無線接続を確立するための情報である、前記第1の生成部と、
前記無線インターフェースを介して、前記第2の接続情報を前記通信装置に送信する第1の情報送信部と、
前記第2の接続情報が前記通信装置に送信された後に、前記無線インターフェースを介して、問合要求を前記通信装置に送信する問合要求送信部と、
前記問合要求が前記通信装置に送信され、かつ、前記通信装置と前記外部装置との間に前記第2の無線接続が確立された後に、前記通信装置から、前記無線インターフェースを介して、前記問合要求に対する応答である問合応答を受信する問合応答受信部と、
を備える端末装置。
【発明の詳細な説明】
【技術分野】
【0001】
本明細書では、外部装置との無線接続を確立可能な端末装置及び通信装置に関する技術を開示する。
【背景技術】
【0002】
非特許文献1には、Wi-Fi Allianceによって策定された無線通信方式であるDPP(Device Provisioning Protocolの略)方式が記述されている。DPP方式は、Wi-Fi接続を容易に確立させるための無線通信方式である。非特許文献1には、クライアントデバイスとアクセスポイントとの間にWi-Fi接続が確立されて、インフラストラクチャのネットワークが形成されることが開示されている。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2017-28454号公報
【文献】特開2017-135520号公報
【文献】特開2018-37978号公報
【非特許文献】
【0004】
【文献】「DRAFT Device Provisioning Protocol Technical Specification Version 0.2.11」 Wi-Fi Alliance, 2017年
【発明の概要】
【発明が解決しようとする課題】
【0005】
上記の非特許文献1には、複数個のクライアントデバイスのそれぞれとアクセスポイントとの間にWi-Fi接続を確立するための具体的な手法について開示されていない。
【0006】
本明細書では、端末装置及び通信装置のそれぞれと外部装置との間に無線接続を適切に確立するための技術を開示する。
【課題を解決するための手段】
【0007】
本明細書は、端末装置のためのコンピュータプログラムを開示する。端末装置は、無線インターフェースと、コンピュータと、前記端末装置の秘密鍵を記憶するメモリであって、前記秘密鍵は、外部装置のための第1の接続情報に含まれる少なくとも一部の情報を用いて得られる情報を暗号化するために利用済みであり、前記第1の接続情報は、前記端末装置と前記外部装置との間に前記無線インターフェースを介した第1の無線接続を確立するための情報であって、前記外部装置に記憶されている情報である、前記メモリと、を備え、前記コンピュータプログラムは、前記コンピュータを、前記外部装置とは異なる通信装置の第1の公開鍵を取得する第1の取得部と、前記第1の公開鍵が取得された後に、前記無線インターフェースを介して、前記第1の公開鍵が利用された第1の認証要求を前記通信装置に送信する第1の認証要求送信部と、前記第1の認証要求が前記通信装置に送信された後に、前記通信装置から、前記無線インターフェースを介して、前記第1の認証要求に対する応答である第1の認証応答を受信する第1の認証応答受信部と、前記通信装置から前記第1の認証応答が受信される場合に、前記秘密鍵を利用して、前記通信装置のための第2の接続情報を生成する第1の生成部であって、前記第2の接続情報は、前記通信装置と前記外部装置との間に第2の無線接続を確立するための情報であり、前記秘密鍵は、前記第2の接続情報に含まれる少なくとも一部の情報を用いて得られる情報を暗号化するために利用される、前記第1の生成部と、前記無線インターフェースを介して、前記第2の接続情報を前記通信装置に送信する第1の情報送信部と、として機能させてもよい。
【0008】
上記の構成によると、外部装置のための第1の接続情報に含まれる少なくとも一部の情報を用いて得られる情報の暗号化に利用される秘密鍵と、通信装置のための第2の接続情報に含まれる少なくとも一部の情報を用いて得られる情報の暗号化に利用される秘密鍵と、が同じである。そして、第1の接続情報が外部装置によって利用されると、端末装置と外部装置との間に第1の無線接続が確立され、第2の接続情報が通信装置によって利用されると、通信装置と外部装置との間に第2の無線接続が確立される。従って、端末装置及び通信装置のそれぞれと外部装置との間に無線接続を適切に確立することができる。
【0009】
また、本明細書は、通信装置を開示する。通信装置は、無線インターフェースと、端末装置から、前記無線インターフェースを介して、前記通信装置の第1の公開鍵が利用された認証要求を受信する認証要求受信部と、前記端末装置から前記認証要求が受信される場合に、前記無線インターフェースを介して、前記認証要求に対する応答である認証応答を前記端末装置に送信する認証応答送信部と、前記認証応答が前記端末装置に送信された後に、前記端末装置から、前記無線インターフェースを介して、接続情報と特定情報とを受信する情報受信部であって、前記接続情報は、前記通信装置と外部装置との間に前記無線インターフェースを介した第2の無線接続を確立するための情報であり、前記特定情報は、前記端末装置と外部装置との間に確立される第1の無線接続において利用される通信チャネルを示すチャネル情報と、前記外部装置を識別する装置識別情報と、の少なくも一方を含む、前記情報受信部と、前記端末装置から前記接続情報と前記特定情報とが受信される場合に、前記接続情報と前記特定情報とを利用して、前記通信装置と前記外部装置との間に前記第2の無線接続を確立する確立部と、を備えてもよい。
【0010】
上記の構成によると、通信装置は、端末装置から認証要求を受信すると、認証応答を端末装置に送信し、端末装置から接続情報と特定情報とを受信する。特定情報は、端末装置と外部装置との間に確立される第1の無線接続において利用される通信チャネルを示すチャネル情報と、外部装置を識別する装置識別情報と、の少なくとも一方を含む。このために、通信装置は、接続情報と特定情報とを利用して、通信装置と外部装置との間に第2の無線接続を適切に確立することができる。従って、端末装置及び通信装置のそれぞれと外部装置との間に無線接続を適切に確立することができる。
【0011】
端末装置そのもの、及び、端末装置のためのコンピュータプログラムを記憶するコンピュータ可読記録媒体も、新規で有用である。通信装置のためのコンピュータプログラム、及び、当該コンピュータプログラムを記憶するコンピュータ可読記録媒体も新規で有用である。端末装置によって実行される方法、及び、通信装置によって実行される方法も新規で有用である。また、端末装置と通信装置とを備える通信システムも、新規で有用である。
【図面の簡単な説明】
【0012】
図1】通信システムの構成を示す。
図2】実施例の概略を説明するための説明図を示す。
図3】APとのBootstrappingの処理のシーケンス図を示す。
図4】APとのAuthenticationの処理のシーケンス図を示す。
図5】APとのConfigurationの処理のシーケンス図を示す。
図6】APとのNetwork Accessの処理のシーケンス図を示す。
図7】プリンタとのBootstrappingの処理のシーケンス図を示す。
図8】プリンタとのAuthenticationの処理のシーケンス図を示す。
図9】プリンタとのConfigurationの処理のシーケンス図を示す。
図10】プリンタ及びAPの間のNetwork Accessの処理のシーケンス図を示す。
図11】端末とプリンタとAPとの間で実行される処理のシーケンス図を示す。
【発明を実施するための形態】
【0013】
(通信システム2の構成;図1
図1に示されるように、通信システム2は、AP(Access Pointの略)6と、端末10と、プリンタ100と、を備える。本実施例では、ユーザが、端末10を利用して、端末10とAP6との間にWi-Fi方式に従った無線接続(以下では「Wi-Fi接続」と記載する)を確立させ、その後、プリンタ100とAP6との間にWi-Fi接続を確立させることを実現する。
【0014】
(端末10の構成)
端末10は、携帯電話(例えばスマートフォン)、PDA、タブレットPC等の可搬型の端末装置である。なお、変形例では、端末10は、据置型のPC、ノートPC等であってもよい。
【0015】
端末10は、操作部12と、表示部14と、カメラ15と、Wi-Fiインターフェース16と、制御部30と、を備える。各部12~30は、バス線(符号省略)に接続されている。なお、以下では、インターフェースのことを単に「I/F」と記載する。
【0016】
操作部12は、複数個のキーを備える。ユーザは、操作部12を操作することによって、様々な指示を端末10に入力することができる。表示部14は、様々な情報を表示するためのディスプレイである。表示部14は、ユーザから指示を受け付けるタッチパネル(即ち操作部)としても機能する。カメラ15は、物体を撮影するためのデバイスであり、本実施例では、特に、AP6及びプリンタ100のためのQRコード(登録商標)を撮影するために利用される。
【0017】
Wi-FiI/F16には、MACアドレス「macte」が割り当てられている。Wi-FiI/F16は、Wi-Fi方式に従った無線通信(以下では「Wi-Fi通信」と呼ぶ)を実行するための無線インターフェースである。Wi-Fi方式は、例えば、IEEE(The Institute of Electrical and Electronics Engineers, Inc.の略)の802.11の規格、及び、それに準ずる規格(例えば802.11a,11b,11g,11n,11ac等)に従って、無線通信を実行するための無線通信方式である。特に、Wi-FiI/F16は、Wi-Fi Allianceによって策定される予定であるDPP(Device Provisioning Protocolの略)方式をサポートしている。DPP方式は、Wi-Fi Allianceによって作成された規格書のドラフトである「DRAFT Device Provisioning Protocol Technical Specification Version 0.2.11」に記述されており、端末10を利用して、一対のデバイス(例えば端末10とAP6、又は、プリンタ100とAP6)の間に容易にWi-Fi接続を確立させるための無線通信方式である。
【0018】
制御部30は、CPU32とメモリ34とを備える。CPU32は、メモリ34に格納されているプログラム36,38に従って、様々な処理を実行する。メモリ34は、揮発性メモリ、不揮発性メモリ等によって構成され、OSプログラム36と接続アプリケーション38(以下では単に「アプリ38」と記載する)とを記憶する。
【0019】
OSプログラム36は、端末10の基本的な動作を制御するためのプログラムである。アプリ38は、DPP方式に従って一対のデバイスの間にWi-Fi接続を確立させるためのプログラムである。アプリ38は、例えば、プリンタ100のベンダによって提供されるインターネット上のサーバから端末10にインストールされる。
【0020】
(プリンタ100の構成)
プリンタ100は、印刷機能を実行可能な周辺装置(例えば、端末10等の周辺装置)である。プリンタ100は、操作部112と、表示部114と、Wi-FiI/F116と、印刷実行部118と、制御部130と、を備える。各部112~130は、バス線(符号省略)に接続されている。
【0021】
操作部112は、複数のキーを備える。ユーザは、操作部112を操作することによって、様々な指示をプリンタ100に入力することができる。表示部114は、様々な情報を表示するためのディスプレイである。表示部114は、ユーザから指示を受け付けるタッチパネル(即ち操作部)としても機能する。Wi-FiI/F116は、端末10のWi-FiI/F16と同様である。即ち、Wi-FiI/F116は、DPP方式をサポートしている。また、Wi-FiI/F116には、MACアドレス「macpr」が割り当てられている。印刷実行部118は、インクジェット方式、レーザ方式等の印刷機構を備える。
【0022】
制御部130は、CPU132とメモリ134とを備える。CPU132は、メモリ134に格納されているプログラム136に従って、様々な処理を実行する。メモリ134は、揮発性メモリ、不揮発性メモリ等によって構成される。
【0023】
(本実施例の概要;図2
続いて、図2を参照して、本実施例の概要を説明する。端末10及びプリンタ100がDPP方式をサポートしていることを上述したが、AP6もDPP方式をサポートしている。また、AP6には、MACアドレス「macap」が割り当てられている。本実施例では、各デバイス6,10,100がDPP方式に従った通信を実行することによって、端末10及びプリンタ100のそれぞれとAP6との間にWi-Fi接続を確立させることを実現する。以下では、理解の容易化のために、各デバイスのCPU(例えばCPU32、CPU132)が実行する動作を、CPUを主体として記載せずに、各デバイス(例えば端末10、プリンタ100)を主体として記載する。
【0024】
T5では、端末10は、DPP方式のBootstrapping(以下では、単に「BS」と記載する)をAP6と実行する。当該BSは、AP6に貼り付けられているQRコードが端末10によって撮影されることに応じて、後述のT10のAuthentication(以下では、単に「Auth」と記載する)で利用される情報をAP6から端末10に提供する処理である。
【0025】
T10では、端末10は、T5のBSで取得済みの情報を利用して、DPP方式のAuthをAP6と実行する。当該Authは、端末10及びAP6のそれぞれが通信相手を認証するための処理である。
【0026】
T15では、端末10は、DPP方式のConfiguration(以下では、単に「Config」と記載する)をAP6と実行する。当該Configは、AP6がWi-Fi接続を確立するための情報をAP6に送信する処理である。具体的には、端末10は、AP用Configuration Object(以下では、Configuration Objectのことを単に「CO」と記載する)を生成して、AP用COをAP6に送信する。この結果、AP6では、AP用COが記憶される。
【0027】
T20では、端末10は、DPP方式のNetwork Access(以下では、単に「NA」と記載する)をAP6と実行する。端末10は、当該NAにおいて、端末用COを生成して、メモリ34に記憶する。そして、端末10及びAP6は、端末用CO及びAP用COを利用して、端末10とAP6との間のWi-Fi接続を確立するための接続キーを共有する。
【0028】
T25では、端末10及びAP6は、4way-handshakeの通信を実行する。4way-handshakeの通信の少なくとも一部の過程において、端末10及びAP6は、T20のNAで共有済みの接続キーによって暗号化された暗号情報を通信する。そして、暗号情報の復号が成功する場合に、端末10とAP6との間にWi-Fi接続が確立される。これにより、端末10は、AP6によって形成される無線ネットワークに子局として参加する。なお、変形例では、4way-handshakeの通信に代えて、SAE(Simultaneous Authentication of Equalsの略、通称「Dragonfly」)の通信が利用されてもよい。
【0029】
次いで、端末10は、T55において、DPP方式のBSをプリンタ100と実行する。当該BSは、プリンタ100に表示されるQRコードが端末10によって撮影されることに応じて、後述のT60のAuthで利用される情報をプリンタ100から端末10に提供する処理である。
【0030】
T60では、端末10は、T55のBSで取得済みの情報を利用して、DPP方式のAuthをプリンタ100と実行する。当該Authは、端末10及びプリンタ100のそれぞれが通信相手を認証するための処理である。
【0031】
T65では、端末10は、DPP方式のConfigをプリンタ100と実行する。当該Configは、プリンタ100がWi-Fi接続を確立するための情報をプリンタ100に送信する処理である。具体的には、端末10は、プリンタ用COを生成して、プリンタ用COをプリンタ100に送信する。この結果、プリンタ100では、プリンタ用COが記憶される。
【0032】
T70では、プリンタ100及びAP6は、プリンタ用CO及びAP用COを利用して、DPP方式のNAを実行する。当該NAは、プリンタ100とAP6との間のWi-Fi接続を確立するための接続キーをプリンタ100及びAP6の間で共有するための処理である。
【0033】
T75では、プリンタ100及びAP6は、4way-handshakeの通信を実行する。4way-handshakeの通信の少なくとも一部の過程において、プリンタ100及びAP6は、T70のNAで共有済みの接続キーによって暗号化された暗号情報を通信する。そして、暗号情報の復号が成功する場合に、プリンタ100とAP6との間にWi-Fi接続が確立される。これにより、プリンタ100は、AP6によって形成される無線ネットワークに子局として参加する。
【0034】
上記のT5~T75の処理が実行されると、端末10及びプリンタ100のそれぞれがAP6によって形成される無線ネットワークに子局として参加している状態になる。この結果、端末10及びプリンタ100は、当該無線ネットワークを利用して、AP6を介して相互に通信することができる。例えば、端末10及びプリンタ100は、次の通信を実行することができる。即ち、T80では、印刷対象の画像を表わす印刷データが端末10からAP6に送信され、T85において、当該印刷データがAP6からプリンタ100に送信される。この結果、T90において、プリンタ100は、当該印刷データに従った印刷を実行する。
【0035】
DPP方式では、端末10及びプリンタ100のそれぞれとAP6との間にWi-Fi接続を確立させるために、ユーザは、AP6が親局として動作する無線ネットワークの情報(例えばSSID(Service Set Identifierの略)、パスワード等)を端末10及びプリンタ100に入力する必要がない。従って、ユーザは、端末10及びプリンタ100のそれぞれとAP6との間にWi-Fi接続を容易に確立させることができる。
【0036】
(AP6とのBootstrapping(BS);図3
続いて、図3図10を参照して、図2のT5~T20及びT55~T70において実行される各処理の詳細を説明する。まず、図3を参照して、図2のT5において端末10とAP6との間で実行されるBSの処理を説明する。図3の初期状態では、AP6は、AP6の公開鍵APK1及び秘密鍵ask1を予め記憶している。また、AP6の公開鍵APK1と、AP6のチャネルリストL1と、AP6のMACアドレス「macap」と、をコード化することによって得られるQRコードが、AP6の筐体に貼り付けられている。チャネルリストL1は、Auth(図2のT10参照)で利用されるべき複数個の通信チャネル(即ちAP6が利用可能な複数個の通信チャネル)のリストである。
【0037】
端末10は、T100において、ユーザからアプリ38の起動操作を受け付けることに応じて、アプリ38を起動する。端末10によって実行される以降の各処理は、アプリ38によって実現される。次いで、T102では、端末10は、選択画面を表示部14に表示する。当該選択画面は、端末10が新たなWi-Fi接続を確立することを示す「New」ボタンを含む。
【0038】
端末10は、T104において、選択画面内の「New」ボタンがユーザによって選択されることに応じて、T106において、グループIDを入力するための入力画面を表示部14に表示させる。グループIDは、端末10が新たなWi-Fi接続が確立することによって形成される無線ネットワークを識別する情報である。
【0039】
端末10は、T108において、ユーザによって指定される任意の文字列であるグループID「home」が入力されることに応じて、T110において、AP6とのWi-Fi接続の確立を実行するのか否かをユーザに確認するための確認画面を表示部14に表示する。確認画面は、AP6とのWi-Fi接続の確立を実行することを示すYESボタンと、AP6とのWi-Fi接続の確立を実行しないことを示すNOボタンと、を含む。
【0040】
端末10は、T112において、確認画面内のYESボタンがユーザによって選択されることに応じて、カメラ15を起動し、T120において、カメラ15を利用して、AP6の筐体に貼り付けられているQRコードを撮影する。そして、端末10は、T122において、撮影済みのQRコードをデコードして、公開鍵APK1とチャネルリストL1とMACアドレス「macap」とを取得する。T122の処理が終了すると、図3の処理が終了する。
【0041】
(AP6とのAuthentication(Auth);図4
続いて、図4を参照して、図2のT10において端末10とAP6との間で実行されるAuthの処理を説明する。
【0042】
T200では、端末10は、端末10の公開鍵TPK1及び秘密鍵tsk1を生成する。次いで、端末10は、T201において、ECDH(Elliptic curve Diffie-Hellman key exchangeの略)に従って、生成済みの秘密鍵tsk1と、図3のT122で取得されたAP6の公開鍵APK1と、を用いて、共有鍵SK1を生成する。そして、端末10は、T202において、生成済みの共有鍵SK1を用いてランダム値RV1を暗号化して、暗号化データED1を生成する。
【0043】
T210では、端末10は、Wi-FiI/F16を介して、図3のT122で取得されたMACアドレス「macap」を送信先として、DPP Authentication Request(以下では、単に「AReq」と記載する)をAP6に送信する。AReqは、認証の実行をAP6に要求する信号であり、T200で生成された端末10の公開鍵TPK1と、T202で生成された暗号化データED1と、端末10のcapabilityと、を含む。ここで、端末10は、図3のT122で取得されたチャネルリストL1内の複数個の通信チャネルを順次利用して、AReqをAP6に送信することを繰り返す。
【0044】
capabilityは、DPP方式をサポートしている機器において予め指定されている情報であり、DPP方式のConfiguratorのみとして動作可能であることを示す値と、DPP方式のEnrolleeのみとして動作可能であることを示す値と、Configurator及びEnrolleeのどちらとしても動作可能であることを示す値と、のいずれか1個の値を含む。Configuratorは、Config(例えば図2のT15)において、NA(例えば図2のT20)で利用されるCOをEnrolleeに送信するデバイスを意味する。一方、Enrolleeは、Configにおいて、ConfiguratorからNAで利用されるCOを受信するデバイスを意味する。上記のように、本実施例では、端末10がAP用CO又はプリンタ用COを生成してAP6又はプリンタ100に送信する。従って、端末10のcapabilityは、Configuratorのみとして動作可能であることを示す値を含む。
【0045】
AP6は、T210において、端末10からAReqを受信する。上記のように、当該AReqは、AP6のMACアドレス「macap」を送信先として送信される。従って、AP6は、端末10から当該AReqを適切に受信することができる。また、AP6は、チャネルリストL1内の複数個の通信チャネル(即ちAP6が利用可能な複数個の通信チャネル)のうちの1個の通信チャネルが利用されたAReqを受信することを監視する状態になる。上記のように、T210のAReqは、チャネルリストL1内の複数個の通信チャネルを順次利用して送信される。従って、AP6は、端末10から当該AReqを適切に受信することができる。
【0046】
次いで、AP6は、AReqの送信元(即ち端末10)を認証するための以下の処理を実行する。具体的には、AP6は、T212において、ECDHに従って、AReq内の端末10の公開鍵TPK1と、AP6の秘密鍵ask1と、を用いて、共有鍵SK1を生成する。ここで、T201で端末10によって生成される共有鍵SK1と、T212でAP6によって生成される共有鍵SK1と、は同じである。従って、AP6は、T214において、生成済みの共有鍵SK1を用いて、AReq内の暗号化データED1を適切に復号することができ、この結果、ランダム値RV1を取得することができる。AP6は、暗号化データED1の復号が成功する場合には、AReqの送信元がAP6のQRコードを撮影したデバイスであると判断し、即ち、認証が成功したと判断し、T216以降の処理を実行する。一方、AP6は、仮に、暗号化データED1の復号が成功しない場合には、AReqの送信元がAP6のQRコードを撮影したデバイスでないと判断し、即ち、認証が失敗したと判断し、T216以降の処理を実行しない。
【0047】
AP6は、T216において、AP6の新たな公開鍵APK2及び新たな秘密鍵ask2を生成する。なお、変形例では、AP6は、公開鍵APK2及び秘密鍵ask2を予め記憶していてもよい。次いで、AP6は、T217において、ECDHに従って、T210のAReq内の端末10の公開鍵TPK1と、生成済みのAP6の秘密鍵ask2と、を用いて、共有鍵SK2を生成する。そして、AP6は、T218において、生成済みの共有鍵SK2を用いて、取得済みのランダム値RV1及び新たなランダム値RV2を暗号化して、暗号化データED2を生成する。
【0048】
T220では、AP6は、DPP Authentication Response(以下では、単に「ARes」と記載する)を端末10に送信する。当該AResは、T216で生成されたAP6の公開鍵APK2と、T218で生成された暗号化データED2と、AP6のcapabilityと、を含む。当該capabilityは、Enrolleeのみとして動作可能であることを示す値を含む。
【0049】
端末10は、T220において、AP6から、Wi-FiI/F16を介して、AResを受信することに応じて、当該AResの送信元(即ちAP6)を認証するための以下の処理を実行する。具体的には、端末10は、T222において、ECDHに従って、T200で生成された端末10の秘密鍵tsk1と、ARes内のAP6の公開鍵APK2と、を用いて、共有鍵SK2を生成する。ここで、T217でAP6によって生成される共有鍵SK2と、T222で端末10によって生成される共有鍵SK2と、は同じである。従って、端末10は、T224において、生成済みの共有鍵SK2を用いて、ARes内の暗号化データED2を適切に復号することができ、この結果、ランダム値RV1及びRV2を取得することができる。端末10は、暗号化データED2の復号が成功する場合には、AResの送信元が撮影済みのQRコードを有するデバイスであると判断し、即ち、認証が成功したと判断し、T230以降の処理を実行する。一方、端末10は、仮に、暗号化データED2の復号が成功しない場合には、AResの送信元が撮影済みのQRコードを有するデバイスでないと判断し、即ち、認証が失敗したと判断し、T230以降の処理を実行しない。
【0050】
T230では、端末10は、Wi-FiI/F16を介して、ConfirmをAP6に送信する。Confirmは、端末10がConfiguratorとして動作し、かつ、AP6がEnrolleeとして動作することを示す情報を含む。この結果、T232において、Configuratorとして動作することが端末10によって決定され、T234において、Enrolleeとして動作することがAP6によって決定される。T234の処理が終了すると、図4の処理が終了する。なお、図4の処理が終了すると、端末10は、公開鍵TPK1及び秘密鍵tsk1を破棄(即ちメモリ34から削除)する。
【0051】
(AP6とのConfiguration(Config);図5
続いて、図5を参照して、図2のT15において端末10とAP6との間で実行されるConfigの処理を説明する。
【0052】
T300では、AP6は、DPP Configuration Request(以下では、単に「CReq」と記載する)を端末10に送信する。当該CReqは、AP用COの送信を要求する信号である。
【0053】
端末10は、T300において、AP6から、Wi-FiI/F16を介して、CReqを受信する。この場合、端末10は、T302において、端末10の新たな公開鍵TPK2及び新たな秘密鍵tsk2を生成してメモリ34内に記憶する。次いで、端末10は、T304において、生成済みの秘密鍵tsk2を利用して、AP用COを生成する。具体的には、端末10は、以下の各処理を実行する。
【0054】
端末10は、まず、端末10の公開鍵TPK2をハッシュ化することによって、ハッシュ値HVを生成する。また、端末10は、ハッシュ値HVと、図3のT108で入力されたグループID「home」と、図4のT220のARes内のAP6の公開鍵APK2と、の組み合わせをハッシュ化することによって、第1の値を生成する。そして、端末10は、ECDSA(Elliptic Curve Digital Signature Algorithmの略)に従って、端末10の秘密鍵tsk2を利用して、生成済みの第1の値を暗号化することによって、電子署名DSapを生成する。この結果、端末10は、ハッシュ値HVと、グループID「home」と、AP6の公開鍵APK2と、電子署名DSapと、を含むAP用Signed-Connector(以下では、Signed-Connectorのことを単に「SC」と記載する)を生成することができる。そして、端末10は、AP用SCと、端末10の公開鍵TPK2と、を含むAP用COを生成する。
【0055】
T310では、端末10は、Wi-FiI/F16を介して、AP用COを含むDPP Configuration Response(以下では、単に「CRes」と記載する)をAP6に送信する。
【0056】
AP6は、T310において、端末10からCResを受信する。この場合、AP6は、T312において、当該CRes内のAP用COを記憶する。T312の処理が終了すると、図5の処理が終了する。
【0057】
(AP6とのNetwork Access(NA);図6
続いて、図6を参照して、図2のT20において端末10とAP6との間で実行されるNAの処理を説明する。
【0058】
T400では、端末10は、端末10の新たな公開鍵TPK3及び秘密鍵tsk3を生成する。次いで、T402において、端末10は、図5のT302でメモリ34に記憶された端末10の秘密鍵tsk2を利用して、端末用COを生成する。具体的には、端末10は、以下の各処理を実行する。
【0059】
端末10は、まず、端末10の公開鍵TPK2をハッシュ化することによって、ハッシュ値HVを生成する。また、端末10は、ハッシュ値HVと、図3のT108で入力されたグループID「home」と、T400で生成された端末10の公開鍵TPK3と、の組み合わせをハッシュ化することによって、第2の値を生成する。そして、端末10は、ECDSAに従って、端末10の秘密鍵tsk2を利用して、生成済みの第2の値を暗号化することによって、電子署名DSteを生成する。この結果、端末10は、ハッシュ値HVと、グループID「home」と、端末10の公開鍵TPK3と、電子署名DSteと、を含む端末用SCを生成することができる。端末用SCに含まれるハッシュ値HV及びグループID「home」は、それぞれ、AP用SCに含まれるハッシュ値HV及びグループID「home」と同じである。端末用SCに含まれる公開鍵TPK3及び電子署名DSteは、それぞれ、AP用SCに含まれる公開鍵APK2及び電子署名DSapとは異なる。そして、端末10は、端末用SCと、図3のT302でメモリ34に記憶された端末10の公開鍵TPK2と、を含む端末用COを生成して、端末用COをメモリ34に記憶する。
【0060】
T410では、端末10は、Wi-FiI/F16を介して、端末用SCを含むDPP Peer Discovery Request(以下では、単に「DReq」と記載する)をAP6に送信する。当該DReqは、認証の実行と、AP用SCの送信と、をAP6に要求する信号である。
【0061】
AP6は、T410において、端末10からDReqを受信することに応じて、DReqの送信元(即ち端末10)、及び、DReq内の各情報(即ち、ハッシュ値HV、「home」、及び、公開鍵TPK3)を認証するための処理を実行する。具体的には、AP6は、T412において、まず、端末用SC内のハッシュ値HV及びグループID「home」が、それぞれ、AP用SC内のハッシュ値HV及びグループID「home」に一致するのか否かに関する第1のAP判断処理を実行する。図6のケースでは、AP6は、第1のAP判断処理で「一致する」と判断するので、DReqの送信元(即ち端末10)の認証が成功したと判断する。なお、第1のAP判断処理で「一致する」と判断することは、端末用SC及びAP用SCが同じ装置(即ち端末10)によって生成されたことを意味する。従って、AP6は、端末用SCの生成元(即ち端末10)の認証が成功したとも判断する。さらに、AP6は、AP用COに含まれる端末10の公開鍵TPK2を用いて、端末用SC内の電子署名DSteを復号する。図6のケースでは、電子署名DSteの復号が成功するので、AP6は、電子署名DSteを復号することによって得られた第2の値と、端末用SC内の各情報(即ち、ハッシュ値HV、「home」、及び、公開鍵TPK3)をハッシュ化することによって得られる値と、が一致するのか否かに関する第2のAP判断処理を実行する。図6のケースでは、AP6は、第2のAP判断処理で「一致する」と判断するので、DReq内の各情報の認証が成功したと判断し、T414以降の処理を実行する。なお、第2のAP判断処理で「一致する」と判断することは、端末用COが端末10に記憶された後に、端末用SC内の各情報が第三者によって改ざんされていないことを意味する。なお、後述の電子署名を利用した認証も、第三者によって情報が改ざんされていないことを確認するための処理である。一方、第1のAP判断処理で「一致しない」と判断される場合、電子署名DSteの復号が失敗する場合、又は、第2のAP判断処理で「一致しない」と判断される場合には、AP6は、認証が失敗したと判断し、T414以降の処理を実行しない。
【0062】
次いで、AP6は、T414において、ECDHに従って、AP用COに含まれる端末10の公開鍵TPK2と、AP6の秘密鍵ask2と、を用いて、接続キー(即ち共有鍵)CK1を生成する。
【0063】
T420では、AP6は、AP用SCを含むDPP Peer Discovery Response(以下では、単に「DRes」と記載する)を端末10に送信する。
【0064】
端末10は、T420において、Wi-FiI/F16を介して、AP6からDResを受信することに応じて、DResの送信元(即ちAP6)、及び、DRes内の各情報(即ち、ハッシュ値HV、「home」、及び、公開鍵APK2)を認証するための処理を実行する。具体的には、端末10は、T422において、まず、AP用SC内のハッシュ値HV及びグループID「home」が、それぞれ、端末用SC内のハッシュ値HV及びグループID「home」に一致するのか否かに関する第1のTE判断処理を実行する。図6のケースでは、端末10は、第1のTE判断処理で「一致する」と判断するので、DResの送信元(即ちAP6)の認証が成功したと判断する。なお、第1のTE判断処理で「一致する」と判断することは、端末用SC及びAP用SCが同じ装置(即ち端末10)によって生成されたことを意味する。従って、端末10は、端末用SCの生成元(即ち端末10)の認証が成功したとも判断する。さらに、端末10は、端末用COに含まれる端末10の公開鍵TPK2を用いて、AP用SC内の電子署名DSapを復号する。図6のケースでは、電子署名DSapの復号が成功するので、端末10は、電子署名DSapを復号することによって得られた第1の値と、AP用SC内の各情報(即ち、ハッシュ値HV、「home」、及び、公開鍵APK2)をハッシュ化することによって得られる値と、が一致するのか否かに関する第2のTE判断処理を実行する。図6のケースでは、端末10は、第2のTE判断処理で「一致する」と判断するので、DRes内の各情報の認証が成功したと判断し、T424以降の処理を実行する。一方、第1のTE判断処理で「一致しない」と判断される場合、電子署名DSapの復号が失敗する場合、又は、第2のTE判断処理で「一致しない」と判断される場合には、端末10は、認証が失敗したと判断し、T424以降の処理を実行しない。
【0065】
端末10は、T424において、ECDHに従って、端末10の秘密鍵tsk2と、AP用SC内のAP6の公開鍵APK2と、を用いて、接続キーCK1を生成する。ここで、T414でAP6によって生成される接続キーCK1と、T424で端末10によって生成される接続キーCK1と、は同じである。これにより、Wi-Fi接続を確立するための接続キーCK1が端末10及びAP6の間で共有される。T424が終了すると、図6の処理が終了する。
【0066】
上述したように、接続キーCK1が端末10及びAP6の間で共有された後に、図2のT25において、端末10及びAP6は、接続キーCK1を利用して、4way-handshakeの通信を実行する。この結果、端末10とAP6との間にWi-Fi接続が確立される。
【0067】
(プリンタ100とのBootstrapping(BS);図7
続いて、図7を参照して、図2のT55において端末10とプリンタとの間で実行されるBSの処理を説明する。図7の初期状態では、端末10は、端末10の公開鍵TPK2及び秘密鍵tsk2(図5のT302参照)と、端末10の公開鍵TPK3及び秘密鍵tsk3(図6のT400参照)と、端末用CO(T402参照)と、をメモリ34内に記憶している。また、プリンタ100は、プリンタ100の公開鍵PPK1及び秘密鍵psk1をメモリ134内に予め記憶している。
【0068】
T500は、図3のT100と同様である。端末10は、まず、メモリ34に記憶されている端末用CO内の端末用SCに含まれるグループID「home」を取得する。この場合、端末10は、T502において、「New」ボタンに加えて、取得済みのグループID「home」と同じ文字列を有する「home」ボタンを含む選択画面を表示部14に表示させる。
【0069】
ユーザは、プリンタ100とAP6との間にWi-Fi接続を確立させることを望む場合に、T504において、選択画面内の「home」ボタンを選択する。上記のように、文字列「home」は、ユーザによって入力された文字列であるので(図3のT108参照)、ユーザは、プリンタ100とAP6との間にWi-Fi接続を確立させることを望む場合に、「home」ボタンを選択すべきことを容易に認識することができる。なお、例えば、ユーザは、端末10とAP6とは異なるAPとの間にWi-Fi接続を確立させることを望む場合には、選択画面内の「New」ボタンを選択することができる。この場合、端末10は、図3図6と同様の処理を当該異なるAPと実行して、当該異なるAPとのWi-Fi接続を確立する。このように、本実施例によると、ユーザによって意図される一対の装置の間にWi-Fi接続を適切に確立することができる。端末10は、T504において、選択画面内の「home」ボタンが選択される場合に、カメラ15を起動し、T506において、QRコードを撮影すべきことを示すメッセージを含む指示画面を表示部14に表示する。
【0070】
プリンタ100は、T510において、QRコードを表示するためのQRコード表示操作がユーザによって実行されることに応じて、T512において、QRコードを表示部114に表示する。当該QRコードは、メモリ134に予め記憶されている公開鍵PPK1と、メモリ134に予め記憶されているチャネルリストL2と、Wi-FiI/F116のMACアドレス「macpr」と、がコード化されることによって得られるコード画像である。チャネルリストL2は、Auth(図2のT60参照)で利用されるべき複数個の通信チャネル(即ちプリンタ100が利用可能な複数個の通信チャネル)のリストである。当該QRコードは、T512においてプリンタ100によって生成されてもよいし、プリンタ100の出荷段階からメモリ134に予め記憶されていてもよい。
【0071】
端末10は、T520において、カメラ115を利用して、プリンタ100に表示されたQRコードを撮影する。そして、端末10は、T522において、撮影済みのQRコードをデコードして、公開鍵PPK1とチャネルリストL2とMACアドレス「macpr」とを取得する。T522の処理が終了すると、図7の処理が終了する。
【0072】
(プリンタ100とのAuthentication(Auth);図8
続いて、図8を参照して、図2のT60において端末10とプリンタ100との間で実行されるAuthの処理を説明する。
【0073】
端末10は、T600において、端末10の新しい公開鍵TPK4及び秘密鍵tsk4を生成し、T601において、ECDHに従って、生成済みの秘密鍵tsk4と、図7のT522で取得されたプリンタ100の公開鍵PPK1と、を用いて、共有鍵SK3を生成する。そして、端末10は、T602おいて、生成済みの共有鍵SK3を用いてランダム値RV3を暗号化して、暗号化データED3を生成する。
【0074】
T610では、端末10は、Wi-FiI/F16を介して、図7のT522で取得されたMACアドレス「macpr」を送信先として、AReqをプリンタ100に送信する。ここで、端末10は、T522で取得されたチャネルリストL2内の複数個の通信チャネルを順次利用して、AReqをプリンタ100に送信することを繰り返す。当該AReqは、T600で生成された端末10の公開鍵TPK4と、T602で生成された暗号化データED3と、端末10のcapabilityと、を含む。当該capabilityは、Configuratorのみとして動作可能であることを示す値を含む。
【0075】
プリンタ100は、T610において、端末10から、Wi-FiI/F116を介して、AReqを受信する。当該AReqがプリンタ100のMACアドレス「macpr」を送信先として送信されるので、プリンタ100は、当該AReqを適切に受信することができる。また、当該AReqがチャネルリストL2内の複数個の通信チャネル(即ちプリンタ100が利用可能な複数個の通信チャネル)を順次利用して送信されるので、プリンタ100は、当該AReqを適切に受信することができる。
【0076】
次いで、プリンタ100は、AReqの送信元(即ち端末10)を認証するためのT612及びT614の処理を実行する。T612及びT614は、利用されるデータ(鍵、暗号化データ等)が異なる点を除くと、図4のT212及びT214と同様である。即ち、プリンタ100は、T612において、公開鍵TPK4と秘密鍵psk1とを用いて共有鍵SK3を生成し、T614において、共有鍵SK3を用いてAReq内の暗号化データED3を復号する。この場合、プリンタ100は、認証が成功したと判断し、T616以降の処理を実行する。
【0077】
プリンタ100は、T616において、プリンタ100の新たな公開鍵PPK2及び新たな秘密鍵psk2を生成する。なお、変形例では、公開鍵PPK2及び秘密鍵psk2は、メモリ134に予め記憶されていてもよい。続いて実行されるT617及びT618は、利用されるデータ(鍵、暗号化データ等)が異なる点を除くと、図4のT217及びT218と同様である。即ち、プリンタ100は、T617において、公開鍵TPK4と秘密鍵psk2とを用いて共有鍵SK4を生成し、T618において、共有鍵SK4を用いてランダム値RV3,RV4を暗号化して暗号化データED4を生成する。
【0078】
T620では、プリンタ100は、Wi-FiI/F116を介して、AResを端末10に送信する。当該AResは、T616で生成されたプリンタ100の公開鍵PPK2と、T618で生成された暗号化データED4と、プリンタ100のcapabilityと、を含む。当該capabilityは、Enrolleeのみとして動作可能であることを示す値を含む。
【0079】
T622~T634は、通信対象がプリンタ100である点、公開鍵PPK2、暗号化データED4、秘密鍵tsk4、共有鍵SK4、及び、ランダム値RV3,RV4が端末10によって利用される点を除いて、図4のT222~T234と同様である。この結果、Configuratorとして動作することが端末10によって決定され、Enrolleeとして動作することがプリンタ100によって決定される。T634の処理が終了すると、図8の処理が終了する。なお、図8の処理が終了すると、端末10は公開鍵TPK4及び秘密鍵tsk4を破棄(即ちメモリ34から削除)する。
【0080】
(プリンタ100とのConfiguration(Config);図9
続いて、図9を参照して、図2のT65において端末10とプリンタ100との間で実行されるConfigの処理を説明する。
【0081】
T700では、プリンタ100は、Wi-FiI/F116を介して、CReqを端末10に送信する。当該CReqは、プリンタ用COの送信を要求する信号である。
【0082】
端末10は、T700において、プリンタ100から、Wi-FiI/F16を介して、CReqを受信する。この場合、端末10は、T702において、メモリ34から端末10の公開鍵TPK2及び秘密鍵tsk2を取得する。具体的には、端末10は、メモリ34から、図7のT504で選択された「home」と同じ文字列を有するグループID「home」を含む端末用COを取得する。図7の初期状態に示されるように、端末用SCは公開鍵TPK2を含む。従って、端末10は、端末用COに含まれる公開鍵TPK2を取得することができる。そして、端末10は、メモリ34から、取得済みの公開鍵TPK2に対応する秘密鍵tsk2を取得する。
【0083】
T704では、端末10は、プリンタ用COを生成する。T704は、利用されるデータ(鍵等)が異なる点を除くと、図5のT304と同様である。プリンタ用COは、プリンタ用SCと、T702で取得された公開鍵TPK2と、を含む。プリンタ用SCは、ハッシュ値HVと、グループID「home」と、プリンタ100の公開鍵PPK2と、電子署名DSprと、を含む。電子署名DSprは、ハッシュ値HVとグループID「home」と公開鍵PPK2との組み合わせをハッシュ化することによって得られる第3の値が、T702で取得された秘密鍵tsk2によって暗号化された情報である。
【0084】
端末10は、図2のT25において、AP6とのWi-Fi接続を確立する場合に、図3のT122で取得されたAP6のMACアドレス「macap」と、AP6とのWi-Fi接続において利用される通信チャネルを示すチャネル情報と、をメモリ34内に記憶している。T710では、端末10は、Wi-FiI/F16を介して、T704で生成されたプリンタ用COと、記憶済みのAP6のMACアドレス「macap」と、記憶済みのチャネル情報と、を含むCResをプリンタ100に送信する。
【0085】
プリンタ100は、T710において、端末10から、Wi-FiI/F116を介して、CResを受信する。この場合、プリンタ100は、T712において、当該CRes内のプリンタ用COとMACアドレス「macap」とチャネル情報とをメモリ134に記憶する。T712の処理が終了すると、図9の処理が終了する。
【0086】
(プリンタ100及びAP6の間のNetwork Access(NA);図10
続いて、図10を参照して、プリンタ100とAP6との間で実行される図2のT70のNAの処理を説明する。図10の初期状態では、プリンタ100は、公開鍵PPK1,PPK2と秘密鍵psk1,psk2とプリンタ用COとを記憶している。また、AP6は、公開鍵APK1,APK2と秘密鍵ask1,ask2とAP用COとを記憶している。
【0087】
プリンタ100は、T810において、Wi-FiI/F116を介して、図9のT712で記憶されたAP6のMACアドレス「macap」を送信先として、T712で記憶されたチャネル情報によって示される通信チャネルを利用して、プリンタ用SCを含むDReqをAP6に送信する。
【0088】
AP6は、T810において、プリンタ100からDReqを受信する。上記のように、AP6のMACアドレス「macap」を送信先としてDReqが送信されるので、AP6は、プリンタ100からDReqを適切に受信することができる。また、端末10とAP6との間で或る通信チャネルを利用したWi-Fi接続が確立されている場合には、AP6が、当該或る通信チャネルとは異なる通信チャネルを利用した通信を実行することができない可能性がある。本実施例では、上記のように、チャネル情報によって示される当該或る通信チャネルを利用してDReqが送信されるので、AP6は、プリンタ100からDReqを適切に受信することができる。
【0089】
AP6は、T810において、プリンタ100からDReqを受信することに応じて、DReqの送信元(即ちプリンタ100)、及び、DReq内の各情報(即ち、ハッシュ値HV、「home」、及び、公開鍵PPK2)を認証するためのT812の処理を実行する。T812は、利用されるデータ(鍵等)が異なる点を除くと、図6のT412と同様である。即ち、AP6は、プリンタ用SC内のハッシュ値HV及びグループID「home」が、それぞれ、AP用SC内のハッシュ値HV及びグループID「home」に一致すると判断する(即ち、DReqの送信元(即ちプリンタ100)の認証が成功したと判断する)。また、AP6は、AP用COに含まれる端末10の公開鍵TPK2を用いてプリンタ用SC内の電子署名DSprを復号し、それによって得られた第3の値と、プリンタ用SC内の各情報(即ち、ハッシュ値HV、「home」、及び、公開鍵PPK2)をハッシュ化することによって得られる値と、が一致すると判断する(即ち、DReq内の各情報の認証が成功したと判断する)。
【0090】
T814及びT820は、通信対象がプリンタ100である点、プリンタ100の公開鍵PPK2及び接続キーCK2が利用される点を除いて、図6のT414及びT420と同様である。プリンタ100は、T820において、Wi-FiI/F116を介して、AP6からDResを受信することに応じて、DResの送信元(即ちAP6)、及び、DRes内の各情報(即ち、ハッシュ値HV、「home」、及び、公開鍵APK2)を認証するためのT822の処理を実行する。T822は、実行主体がプリンタ100である点、及び、利用されるデータ(鍵等)が異なる点を除くと、図6のT422と同様である。即ち、プリンタ100は、AP用SC内のハッシュ値HV及びグループID「home」が、それぞれ、プリンタ用SC内のハッシュ値HV及びグループID「home」に一致すると判断する(即ち、DResの送信元(即ちAP6)の認証が成功したと判断する)。また、プリンタ100は、プリンタ用COに含まれる端末10の公開鍵TPK2を用いて、AP用SC内の電子署名DSapを復号し、それによって得られた第1の値と、AP用SC内の各情報(即ち、ハッシュ値HV、「home」、及び、公開鍵APK2)をハッシュ化することによって得られる値と、が一致すると判断する(即ち、DRes内の各情報の認証が成功したと判断する)。
【0091】
プリンタ100は、T824において、ECDHに従って、プリンタ100の秘密鍵psk2と、AP用SC内のAP6の公開鍵APK2と、を用いて、接続キーCK2を生成する。ここで、T814でAP6によって生成される接続キーCK2と、T824でプリンタ100によって生成される接続キーCK2と、は同じである。これにより、Wi-Fi接続を確立するための接続キーCK2がプリンタ100及びAP6の間で共有される。T824が終了すると、図10の処理が終了する。
【0092】
上述したように、接続キーCK2がプリンタ100及びAP6の間で共有された後に、図2のT75において、プリンタ100及びAP6は、接続キーCK2を利用して、4way-handshakeの通信を実行する。この結果、プリンタ100とAP6との間にWi-Fi接続が確立される。特に、プリンタ100は、図9のT712で記憶されたチャネル情報によって示される通信チャネルを利用して、AP6とのWi-Fi接続を確立する。このために、端末10とAP6との間に或る通信チャネルが利用されるWi-Fi接続が確立されている状況であっても、プリンタ100は、当該或る通信チャネルと同じ通信チャネルを利用するので、AP6とのWi-Fi接続を適切に確立することができる。
【0093】
なお、上述したように、プリンタ100は、プリンタ100のチャネルリストL2に含まれる複数個の通信チャネルのうちの1個の通信チャネルを利用して、端末10から図8のT610のAReqを受信する。即ち、プリンタ100は、プリンタ100と端末10との双方が利用可能な通信チャネルを利用して、端末10からAReqを受信する。一方、図2のT75では、プリンタ100は、チャネル情報によって示される通信チャネルを利用して、Wi-Fi接続をAP6と確立する。即ち、プリンタ100は、プリンタ100とAP6との双方が利用可能な通信チャネルを利用して、AP6とのWi-Fi接続を確立する。ここで、端末10が利用可能な通信チャネルと、AP6が利用可能な通信チャネルと、は異なる場合がある。本実施例では、プリンタ100が図8のT610で端末10からAReqを受信するための通信チャネルと、プリンタ100が図2のT75でAPとのWi-Fi接続を確立するための通信チャネルと、が異なる。ただし、変形例では、前者の通信チャネルと後者の通信チャネルとは同じでもよい。
【0094】
(各デバイス6,10,100によって実行される接続確認処理;図11
続いて、図11を参照して、図10の処理の後に各デバイス6,10,100によって実行される処理を説明する。
【0095】
端末10は、図9のT710において、CResをプリンタ100に送信することに応じて、T900において、Wi-FiI/F16を介して、図7のT522で取得されたMACアドレス「macpr」を送信先として、問合要求をプリンタ100に繰り返し送信することを開始する。当該問合要求は、プリンタ100がAP6とのWi-Fi接続を確立したのか否かをプリンタ100に問い合わせる信号であり、AP6を介さずにプリンタ100に送信される。問合要求の通信は、OSI参照モデルのデータリンク層の通信である。
【0096】
プリンタ100は、AP6とのWi-Fi接続を確立する前に、端末10から、Wi-FiI/F116を介して、問合要求を受信しても、問合要求に対する応答である問合応答を端末10に送信しない。プリンタ100は、T910(即ち図2のT75)において、AP6とのWi-Fi接続を確立した後に、端末10から、Wi-FiI/F116を介して、問合要求を受信する場合に、T912において、Wi-FiI/F116を介して、問合応答を端末10に送信する。
【0097】
端末10は、T912において、プリンタ100から、Wi-FiI/F16を介して、問合応答を受信する場合に、AP6を介した通信をプリンタ100と実行可能であるのか否かを確認するための処理を実行する。ここで、以下の確認要求は、第1の要求信号と第2の要求信号とを含み、確認応答は、第1の応答信号と第2の応答信号とを含む。
【0098】
(ケースA)
まず、端末10とAP6との間にWi-Fi接続が確立された後(図2のT25)に、当該Wi-Fi接続が切断されることなく、T910において、プリンタ100とAP6との間にWi-Fi接続が確立されるケースAを説明する。
【0099】
T920では、端末10は、Wi-FiI/F16を介して、ブロードキャストの第1の要求信号(即ち宛先が特定されてない要求)をAP6に送信する。これにより、AP6とのWi-Fi接続を確立している全ての子局に第1の要求信号が送信される。この結果、プリンタ100は、T922において、Wi-FiI/F116を介して、AP6から第1の要求信号を受信する。この場合、プリンタ100は、T924において、Wi-FiI/F116を介して、第1の応答信号をAP6に送信する。当該第1の応答信号は、MACアドレス「macpr」と、プリンタ100のIPアドレスと、を含む。
【0100】
AP6は、T924において、プリンタ100から第1の応答信号を受信する。ただし、AP6は、プリンタ100のみならず、他の子局からも第1の応答信号を受信し得る。この場合、AP6は、T926において、各子局から受信される各第1の応答信号を端末10に送信する。
【0101】
端末10は、T926において、Wi-FiI/F16を介して、AP6から各第1の応答信号を受信する。この場合、端末10は、受信済みの各第1の応答信号の中に、図7のT522で取得されたプリンタ100のMACアドレス「macpr」を含む第1の応答信号が存在するのか否かを判断する。ケースAでは、端末10は、MACアドレス「macpr」を含む第1の応答信号が存在するので、AP6を介した通信をプリンタ100と実行可能であると判断する。そして、端末10は、当該第1の応答信号内のプリンタ100のIPアドレスを取得する。第1の要求信号及び第1の応答信号の通信は、例えば、OSI参照モデルのデータリンク層のARP(Address Resolution Protocolの略)を用いた通信である。
【0102】
端末10は、さらに、取得済みのプリンタ100のIPアドレスを送信先として、AP6を介して、第2の要求信号をプリンタ100に送信し(T920,T922)、プリンタ100から、AP6を介して、第2の応答信号を受信する(T924,T926)。第2の要求信号及び第2の応答信号の通信は、例えば、OSI参照モデルのネットワーク層のICPM(Internet Control Protocolの略)を用いたPINGの通信である。これにより、端末10は、OSI参照モデルのネットワーク層の通信をプリンタ100と実行可能であることを確認する。
【0103】
T930,T932では、端末10は、Wi-FiI/F16を介して、取得済みのプリンタ100のIPアドレスを送信先として、印刷対象の画像を表わす印刷データをAP6に送信する(図2のT80,T85参照)。当該印刷データは、印刷テストをプリンタ100に実行させるためのテスト画像を表わすデータであってもよいし、ユーザによって指定される画像を表わすデータであってもよい。
【0104】
プリンタ100は、T932において、端末10から、AP6を介して、Wi-FiI/F116を介して、印刷データを受信する。この場合、プリンタ100は、T940において、受信済みの印刷データを印刷実行部118に供給して、当該印刷データに従った印刷を印刷実行部118に実行させる(図2のT90参照)。T940の処理が終了すると、ケースAの処理が終了する。
【0105】
(ケースB)
続いて、端末10とAP6との間にWi-Fi接続が確立された後(図2のT25)に、当該Wi-Fi接続が切断されるケースBを説明する。例えば、端末10の電源がOFFされることに起因して、当該Wi-Fi接続が切断される。そして、端末10の電源が再びONされた後に、端末10とプリンタ100との間で図2のT55~T75の処理が実行され、図11のT910において、プリンタ100とAP6との間でWi-Fi接続が確立される。
【0106】
端末10は、T912において、プリンタ100から、Wi-FiI/F16を介して、問合応答を受信することに応じて、T960において、Wi-FiI/F16を介して、ブロードキャストの確認要求(即ち第1の要求信号)をAP6に送信する。しかしながら、本ケースBでは、端末10とAP6との間のWi-Fi接続が切断されているので、端末10は、確認要求をAP6に送信することができず、この結果、プリンタ100から確認応答(即ち第1の応答信号)を受信しない。これにより、端末10は、端末10とAP6との間のWi-Fi接続が切断されていることを知ることができる。
【0107】
端末10は、AP6とのWi-Fi接続が切断されていることを知った後に、T970において、メモリ34内に記憶されている接続キーCK1(図6のT424)を利用して、4way-handshakeの通信をAP6と実行して、AP6とのWi-Fi接続を再び確立する。これにより、端末10及びプリンタ100のそれぞれがAP6とのWi-Fi接続を確立している状態、即ち、各デバイス6,10,100が同じネットワークに所属している状態になる。このために、ケースAのT920~T940と同様の処理を実行することができる。
【0108】
(本実施例の効果)
本実施例では、AP6のためのAP用COに含まれる電子署名DSapの生成に利用される秘密鍵tsk2と、プリンタ100のためのプリンタ用COに含まれる電子署名DSprの生成に利用される秘密鍵tsk2と、が同じである。そして、AP用COがAP6によって利用されると、端末10とAP6との間にWi-Fi接続が確立され(図2のT25)、プリンタ用COがプリンタ100によって利用されると、プリンタ100とAP6との間にWi-Fi接続が確立される(T75)。従って、端末10及びプリンタ100のそれぞれとAP6との間にWi-Fi接続を適切に確立することができる。
【0109】
また、本実施例では、プリンタ100は、端末10から、プリンタ用COと、端末10とAP6との間に確立されるWi-Fi接続において利用される通信チャネルを示すチャネル情報と、AP6のMACアドレス「macap」と、を受信する(図9のT710)。このために、プリンタ100は、MACアドレス「macap」とチャネル情報によって示される通信チャネルとを利用して、AP6とのWi-Fi接続を適切に確立することができる。従って、端末10及びプリンタ100のそれぞれとAP6との間にWi-Fi接続を適切に確立することができる。
【0110】
(対応関係)
端末10、プリンタ100、AP6が、それぞれ、「端末装置」、「通信装置」、「外部装置」の一例である。Wi-FiI/F16、CPU32、アプリ38が、それぞれ、「端末装置」の「無線インターフェース」、「端末装置」の「コンピュータ」、「端末装置」のための「コンピュータプログラム」の一例である。端末10の秘密鍵tsk2、AP用CO、図2のT25のWi-Fi接続が、それぞれ、「秘密鍵」、「第1の接続情報」、「第1の無線接続」の一例である。AP用COに含まれるハッシュ値HVとグループID「home」と公開鍵APK2との組み合わせをハッシュ化することによって得られる第1の値が、「第1の接続情報に含まれる少なくとも一部の情報を用いて得られる情報」の一例である。プリンタ100の公開鍵PPK1、図8のT610のAReq、T620のARes、プリンタ用COが、それぞれ、「第1の公開鍵」、「第1の認証要求」、「第1の認証応答」、「第2の接続情報」の一例である。プリンタ用COに含まれるハッシュ値HVとグループID「home」と公開鍵PPK2との組み合わせをハッシュ化することによって得られる第2の値が、「第2の接続情報に含まれる少なくとも一部の情報を用いて得られる情報」の一例である。図2のT75(又は図11のT910)のWi-Fi接続が、「第2の無線接続」の一例である。
【0111】
グループID「home」、図7のT502の選択画面内の文字列「New」が、それぞれ、「関係情報」、「所定情報」の一例である。AP6のMACアドレス「macap」が、「装置識別情報」の一例である。端末用COが、「第3の接続情報」の一例であり、端末用COに含まれるハッシュ値HVとグループID「home」と公開鍵TPK3との組み合わせをハッシュ化することによって得られる第3の値が、「第3の接続情報に含まれる少なくとも一部の情報を用いて得られる情報」の一例である。AP6の公開鍵APK1、図4のT210のAReq、T220のAResが、それぞれ、「第2の公開鍵」、「第2の認証要求」、「第2の認証応答」の一例である。プリンタ用COに含まれるハッシュ値HV、AP用SCが、それぞれ、「認証情報」、「外部装置から通信装置に送信される情報」の一例である。図7のT512で表示されるQRコードが、「コード画像」の一例である。
【0112】
Wi-FiI/F116が、「通信装置」の「無線インターフェース」の一例である。図8のT610のAReq、T620のAResが、それぞれ、「認証要求」、「認証応答」の一例である。プリンタ用COが「接続情報」の一例であり、チャネル情報及びAP6のMACアドレス「macap」が「特定情報」の一例である。図8のT610で利用される通信チャネル、図2のT75で利用される通信チャネルが、それぞれ、「第1の通信チャネル」、「第2の通信チャネル」の一例である。
【0113】
図7のT522の処理、図8のT610、T620、図9のT704、T710が、それぞれ、「端末装置」の「第1の取得部」、「第1の認証要求送信部」、「第1の認証応答送信部」、「第1の生成部」、「第1の情報送信部」によって実行される処理の一例である。図8のT610、T620、図9のT710が、それぞれ、「通信装置」の「認証要求受信部」、「認証応答送信部」、「情報受信部」によって実行される処理の一例である。図10のT810、T822、T824、及び、図2のT75が、「通信装置」の「確立部」によって実行される処理の一例である。
【0114】
以上、本発明の具体例を詳細に説明したが、これらは例示にすぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には以上に例示した具体例を様々に変形、変更したものが含まれる。上記の実施例の変形例を以下に列挙する。
【0115】
(変形例1)上記の実施例では、電子署名(例えばDSpr)は、ハッシュ値HVとグループID「home」と公開鍵(例えばAPK2)との組み合わせをハッシュ化することによって得られる値が秘密鍵tsk2によって暗号化されたものである。これに代えて、電子署名は、上記の組み合わせそのものが秘密鍵tsk2によって暗号化されたものであってもよい。本変形例では、SC(例えばAP用SC)に含まれる上記の組み合わせそのものが、「第1(又は、第2、第3)の接続情報に含まれる少なくとも一部の情報」、及び、「第1(又は、第2、第3)の接続情報に含まれる少なくとも一部の情報を用いて得られる情報」の一例である。
【0116】
(変形例2)図3のT102及び図7のT502において、端末10は、選択画面を表示部14に表示しなくてもよい。この場合、端末10は、端末用COを記憶していない状態で図3のT100においてアプリ38が起動されると、T102及びT104をスキップしてT106を実行する。また、端末10は、端末用COを記憶している状態で図7のT500においてアプリ38が起動されると、T502及びT504をスキップしてT506を実行する。本変形例では、「端末装置」の「表示制御部」を省略可能である。
【0117】
(変形例3)図11のT920~T926及びT960の処理が省略されてもよい。本変形例では、「端末装置」の「確認要求送信部」及び「確認応答受信部」を省略可能である。また、「通信装置」の「確認要求受信部」及び「確認応答送信部」が省略可能である。
【0118】
(変形例4)図11のT970の処理が省略されてもよい。本変形例では、「端末装置」の「再確立部」を省略可能である。
【0119】
(変形例5)図11のT930及びT932の処理が省略されてもよい。本変形例では、「端末装置」の「印刷データ送信部」を省略可能である。また、「通信装置」の「印刷実行部」、「印刷データ受信部」、及び、「印刷制御部」を省略可能である。
【0120】
(変形例6)図11のT912において、プリンタ100は、プリンタ100のIPアドレスを含む問合応答を端末10に送信してもよい。この場合、端末10は、T920,T922において、プリンタ100のIPアドレスを送信先として含む確認要求(即ちユニキャストの確認要求)を、AP6を介して、プリンタ100に送信することができる。ここで、確認要求は、例えば、OSI参照モデルのデータリンク層を用いた通信である。本変形例も、「端末装置」の「確認要求送信部」によって実行される処理の一例である。
【0121】
(変形例7)図11のT900及びT912の処理が省略されてもよい。この場合、端末10は、図9のT710において、CResをプリンタ100に送信することに応じて、T920において、確認要求をAP6に繰り返し送信してもよい。本変形例では、「端末装置」の「問合要求送信部」及び「問合応答受信部」を省略可能である。また、「通信装置」の「問合要求受信部」及び「問合応答送信部」を省略可能である。
【0122】
(変形例8)図3のT122~図6のT424(さらには図2のT25)は、アプリ38ではなく、OS36によって実現されてもよい。即ち、「端末装置」のための「コンピュータプログラム」は、「コンピュータ」を、「第2の生成部」、「確立部」、「第2の取得部」、「第2の認証要求送信部」、「第3の生成部」、及び、「第2の情報送信部」として機能させなくてもよい。
【0123】
(変形例9)図7のT512において、プリンタ100は、QRコードを表示することに代えて、QRコードを含む画像を印刷媒体上に印刷してもよい。本変形例では、QRコードの印刷が「コード画像を出力」の一例である。
【0124】
(変形例10)「通信装置」は、プリンタ100でなくてもよく、スキャナ、多機能機、携帯端末、PC、サーバ等の他のデバイスであってもよい。また、「外部装置」は、AP6でなくてもよく、プリンタ、スキャナ、携帯端末、PC、サーバ等の他のデバイスであってもよい。
【0125】
(変形例11)図9のT710において、端末10は、AP6のMACアドレス「macap」を含まず、プリンタ用COとチャネル情報とを含むCResをプリンタ100に送信してもよい。この場合、プリンタ100は、図10のT810において、チャネル情報によって示される通信チャネルを利用して、ブロードキャストによってDReqを送信する。また、別の変形例では、T710において、端末10は、チャネル情報を含まず、プリンタ用COとAP6のMACアドレス「macap」とを含むCResをプリンタ100に送信してもよい。この場合、プリンタ100は、T710において、AP6のMACアドレス「macap」を送信先として、プリンタ100が利用可能な各無線チャネルを順次利用して、DReqをAP6に送信する。即ち、「特定情報」は、「チャネル情報」と「装置識別情報」との少なくも一方を含んでいればよい。
【0126】
(変形例12)端末10は、図2のT5~25の処理をAP6と実行する前に、T55及びT60の処理を実行してもよい。この場合、端末10は、T60の処理の後にT5~25の処理をAP6と実行し、その後、T65の処理をプリンタ100と実行する。
【0127】
(変形例13)「装置識別情報」は、AP6のMACアドレス「macap」に限られず、AP6のIPアドレス、デバイス名等であってもよい。
【0128】
(変形例14)共有鍵(例えばSK1)を生成するための処理(例えば、図4のT201)は、ECDHに従った上記の実施例の処理に限らず、ECDHに従った他の処理であってもよい。また、共有鍵を生成するための処理は、ECDHに従った処理に限らず、他の方式(例えば、DH(Diffie-Hellman key exchangeの略)等)に従った処理が実行されてもよい。また、上記の実施例では、電子署名(DSap等)が、ECDSAに従って生成されたが、他の方式(例えば、DSA(Digital Signature Algorithmの略)、RAS(Rivest-Shamir-Adleman cryptosystemの略)等)に従って生成されてもよい。
【0129】
(変形例15)図7のT512でプリンタ100に表示されるQRコードは、チャネルリストL2及びMACアドレス「macpr」がコード化されたものでなくてもよい。即ち、QRコードは、少なくとも公開鍵PPK1がコード化されることによって得られるコード画像であればよい。この場合、プリンタ100は、T510でQRコード表示操作を受け付けることに応じて、プリンタ100が利用可能な全ての無線チャネルのうちの1個の無線チャネルが利用されたAReqを受信することを監視する。また、端末10は、図8のT610において、端末10が利用可能な全ての無線チャネルを順次利用して、AReqをブロードキャストによって順次送信する。即ち、「コード画像」は、少なくとも「第1の公開鍵」がコード化されることによって得られる画像であればよい。
【0130】
(変形例16)図7のT510及びT512の処理が省略されてもよい。この場合、公開鍵PPK1とチャネルリストL2とMACアドレス「macpr」とがコード化されたQRコードがプリンタ100の筐体に貼り付けられていてもよい。本変形例では、「通信装置」の「出力制御部」が省略可能である。
【0131】
(変形例17)Wi-Fi Allianceによって作成された規格書のドラフトである「DRAFT Device Provisioning Protocol Technical Specification Version 0.2.11」には、共有コード、キー、フレーズ、及び、ワードを「コード」と呼ぶことが記載されている。従って、プリンタ100は、図7のT512において、QRコードに代えて、公開鍵PPK1とチャネルリストとMACアドレス「abc」とがコード化されることによって得られる共有コード、キー、フレーズ、及び、ワードを含む画像を表示部114に表示してもよい。
【0132】
(変形例18)上記の実施例では、図2図11の各処理がソフトウェア(即ち各プログラム36,38,136)によって実現されるが、これらの各処理のうちの少なくとも1つが論理回路等のハードウェアによって実現されてもよい。
【0133】
また、本明細書または図面に説明した技術要素は、単独であるいは各種の組合せによって技術的有用性を発揮するものであり、出願時請求項記載の組合せに限定されるものではない。また、本明細書または図面に例示した技術は複数目的を同時に達成するものであり、そのうちの一つの目的を達成すること自体で技術的有用性を持つものである。
以下、特許出願時の特許請求の範囲に記載の事項を列挙しておく。
(項目1)
端末装置のためのコンピュータプログラムであって、
前記端末装置は、
無線インターフェースと、
コンピュータと、
前記端末装置の秘密鍵を記憶するメモリであって、前記秘密鍵は、外部装置のための第1の接続情報に含まれる少なくとも一部の情報を用いて得られる情報を暗号化するために利用済みであり、前記第1の接続情報は、前記端末装置と前記外部装置との間に前記無線インターフェースを介した第1の無線接続を確立するための情報であって、前記外部装置に記憶されている情報である、前記メモリと、を備え、
前記コンピュータプログラムは、前記コンピュータを、
前記外部装置とは異なる通信装置の第1の公開鍵を取得する第1の取得部と、
前記第1の公開鍵が取得された後に、前記無線インターフェースを介して、前記第1の公開鍵が利用された第1の認証要求を前記通信装置に送信する第1の認証要求送信部と、
前記第1の認証要求が前記通信装置に送信された後に、前記通信装置から、前記無線インターフェースを介して、前記第1の認証要求に対する応答である第1の認証応答を受信する第1の認証応答受信部と、
前記通信装置から前記第1の認証応答が受信される場合に、前記秘密鍵を利用して、前記通信装置のための第2の接続情報を生成する第1の生成部であって、前記第2の接続情報は、前記通信装置と前記外部装置との間に第2の無線接続を確立するための情報であり、前記秘密鍵は、前記第2の接続情報に含まれる少なくとも一部の情報を用いて得られる情報を暗号化するために利用される、前記第1の生成部と、
前記無線インターフェースを介して、前記第2の接続情報を前記通信装置に送信する第1の情報送信部と、
として機能させるコンピュータプログラム。
(項目2)
前記端末装置は、さらに、表示部を備え、
前記メモリは、前記秘密鍵と、前記第1の無線接続に関係する関係情報と、を対応付けて記憶し、
前記コンピュータプログラムは、前記コンピュータを、さらに、
前記関係情報を含む選択画面を前記表示部に表示する表示制御部として機能させ、
前記第1の生成部は、
前記選択画面に含まれる前記関係情報が選択される場合に、前記メモリから、前記関係情報に対応付けられている前記秘密鍵を取得し、
取得済みの前記秘密鍵を利用して、前記第2の接続情報を生成する、項目1に記載のコンピュータプログラム。
(項目3)
前記選択画面は、さらに、前記関係情報とは異なる所定情報を含み、
前記コンピュータプログラムは、前記コンピュータを、さらに、
前記選択画面に含まれる前記所定情報が選択される場合に、前記端末装置と前記外部装置との間に前記第1の無線接続を確立する確立部として機能させる、項目2に記載のコンピュータプログラム。
(項目4)
前記コンピュータプログラムは、前記コンピュータを、さらに、
前記第2の接続情報が前記通信装置に送信された後に、前記無線インターフェースを介して、確認要求を前記通信装置に送信する確認要求送信部であって、前記端末装置と前記外部装置との間に前記第1の無線接続が確立されており、かつ、前記通信装置と前記外部装置との間に前記第2の無線接続が確立されている場合に、前記確認要求は、前記端末装置から前記外部装置を介して前記通信装置に送信される、前記確認要求送信部と、
前記無線インターフェースを介して、前記確認要求に対する応答である確認応答を受信する確認応答受信部であって、前記端末装置と前記外部装置との間に前記第1の無線接続が確立されており、かつ、前記通信装置と前記外部装置との間に前記第2の無線接続が確立されている場合に、前記確認応答は、前記通信装置から前記外部装置を介して前記端末装置に送信される、前記確認応答受信部と、
として機能させる、項目1から3のいずれか一項に記載のコンピュータプログラム。
(項目5)
前記コンピュータプログラムは、前記コンピュータを、さらに、
前記端末装置と前記外部装置との間に前記第1の無線接続が確立された後に前記第1の無線接続が切断されたことに起因して、前記確認応答が受信されない場合に、前記端末装置と前記外部装置との間に前記第1の無線接続を再確立する再確立部として機能させる、項目4に記載のコンピュータプログラム。
(項目6)
前記通信装置は、印刷機能を実行可能なプリンタであり、
前記コンピュータプログラムは、前記コンピュータを、さらに、
前記第2の接続情報が前記通信装置に送信された後に、前記無線インターフェースを介して、前記外部装置を介し、印刷対象の画像を表わす印刷データを前記通信装置に送信する印刷データ送信部として機能させる、項目1から5のいずれか一項に記載のコンピュータプログラム。
(項目7)
前記コンピュータプログラムは、前記コンピュータを、さらに、
前記第2の接続情報が前記通信装置に送信された後に、前記無線インターフェースを介して、前記外部装置を介さずに、前記第2の無線接続が確立されたのか否かを前記通信装置に問い合わせるための問合要求を前記通信装置に送信する問合要求送信部と、
前記問合要求が前記通信装置に送信され、かつ、前記通信装置と前記外部装置との間に前記第2の無線接続が確立された後に、前記通信装置から、前記外部装置を介さずに、前記無線インターフェースを介して、前記問合要求に対する応答である問合応答を受信する問合応答受信部と、として機能させ、
前記印刷データ送信部は、前記通信装置から前記問合応答が受信された後に、前記外部装置を介して、前記印刷データを前記通信装置に送信する、項目6に記載のコンピュータプログラム。
(項目8)
前記第1の情報送信部は、前記第2の接続情報と特定情報とを前記通信装置に送信し、
前記特定情報は、前記第1の無線接続において利用される通信チャネルを示すチャネル情報と、前記外部装置を識別する装置識別情報と、の少なくも一方を含む、項目1から7のいずれか一項に記載のコンピュータプログラム。
(項目9)
前記コンピュータプログラムは、前記コンピュータを、さらに、
前記秘密鍵を利用して、前記端末装置のための第3の接続情報を生成する第2の生成部であって、前記第3の接続情報は、前記端末装置と前記外部装置との間に前記第1の無線接続を確立するための情報であり、前記秘密鍵は、前記第3の接続情報に含まれる少なくとも一部の情報を用いて得られる情報を暗号化するために利用される、前記第2の生成部と、
前記第3の接続情報を利用して、前記端末装置と前記外部装置との間に前記第1の無線接続を確立する確立部であって、前記第1の無線接続は、前記第1の接続情報が前記外部装置によって利用されることによって確立される、前記確立部と、
として機能させる、項目1から8のいずれか一項に記載のコンピュータプログラム。
(項目10)
前記コンピュータプログラムは、前記コンピュータを、さらに、
前記外部装置の第2の公開鍵を取得する第2の取得部と、
前記第2の公開鍵が取得された後に、前記無線インターフェースを介して、前記第2の公開鍵が利用された第2の認証要求を前記外部装置に送信する第2の認証要求送信部と、
前記第2の認証要求が前記外部装置に送信された後に、前記外部装置から、前記無線インターフェースを介して、前記第2の認証要求に対する応答である第2の認証応答を受信する第2の認証応答受信部と、
前記通信装置から前記第2の認証応答が受信される場合に、前記秘密鍵を利用して、前記外部装置のための前記第1の接続情報を生成する第3の生成部と、
前記無線インターフェースを介して、前記第1の接続情報を前記外部装置に送信する第2の情報送信部と、
前記第1の接続情報が前記外部装置に送信された後に、前記第1の接続情報が前記外部装置によって利用される場合に、前記端末装置と前記外部装置との間に前記第1の無線接続を確立する確立部と、
として機能させる、項目1から9のいずれか一項に記載のコンピュータプログラム。
(項目11)
前記第1の生成部は、Wi-Fi規格に従ったConfiguratorとして動作して、前記第2の接続情報を生成し、
前記第1の情報送信部は、前記Wi-Fi規格に従った前記Configuratorとして動作して、前記第2の接続情報を前記通信装置に送信する、項目1から10のいずれか一項に記載のコンピュータプログラム。
(項目12)
前記第2の接続情報は、認証情報を含み、
前記認証情報は、前記外部装置から前記通信装置に送信される情報の認証を実行するために前記通信装置によって利用される、項目1から11のいずれか一項に記載のコンピュータプログラム。
(項目13)
前記通信装置は、前記第1の公開鍵がコード化されることによって得られるコード画像を出力し、
前記第1の取得部は、前記通信装置から出力される前記コード画像を撮影することによって、前記第1の公開鍵を取得する、項目1から12のいずれか一項に記載のコンピュータプログラム。
(項目14)
前記外部装置は、アクセスポイントである、項目1から13のいずれか一項に記載のコンピュータプログラム。
(項目15)
端末装置であって、
無線インターフェースと、
前記端末装置の秘密鍵を記憶するメモリであって、前記秘密鍵は、外部装置のための第1の接続情報に含まれる少なくとも一部の情報を用いて得られる情報を暗号化するために利用済みであり、前記第1の接続情報は、前記端末装置と前記外部装置との間に前記無線インターフェースを介した第1の無線接続を確立するための情報であって、前記外部装置に記憶されている情報である、前記メモリと、
前記外部装置とは異なる通信装置の第1の公開鍵を取得する第1の取得部と、
前記第1の公開鍵が取得された後に、前記無線インターフェースを介して、前記第1の公開鍵が利用された第1の認証要求を前記通信装置に送信する第1の認証要求送信部と、
前記第1の認証要求が前記通信装置に送信された後に、前記通信装置から、前記無線インターフェースを介して、前記第1の認証要求に対する応答である第1の認証応答を受信する第1の認証応答受信部と、
前記通信装置から前記第1の認証応答が受信される場合に、前記秘密鍵を利用して、前記通信装置のための第2の接続情報を生成する第1の生成部であって、前記第2の接続情報は、前記通信装置と前記外部装置との間に第2の無線接続を確立するための情報であり、前記秘密鍵は、前記第2の接続情報に含まれる少なくとも一部の情報を用いて得られる情報を暗号化するために利用される、前記第1の生成部と、
前記無線インターフェースを介して、前記第2の接続情報を前記通信装置に送信する第1の情報送信部と、
を備える端末装置。
(項目16)
通信装置であって、
無線インターフェースと、
端末装置から、前記無線インターフェースを介して、前記通信装置の第1の公開鍵が利用された認証要求を受信する認証要求受信部と、
前記端末装置から前記認証要求が受信される場合に、前記無線インターフェースを介して、前記認証要求に対する応答である認証応答を前記端末装置に送信する認証応答送信部と、
前記認証応答が前記端末装置に送信された後に、前記端末装置から、前記無線インターフェースを介して、接続情報と特定情報とを受信する情報受信部であって、前記接続情報は、前記通信装置と外部装置との間に前記無線インターフェースを介した第2の無線接続を確立するための情報であり、前記特定情報は、前記端末装置と外部装置との間に確立される第1の無線接続において利用される通信チャネルを示すチャネル情報と、前記外部装置を識別する装置識別情報と、の少なくも一方を含む、前記情報受信部と、
前記端末装置から前記接続情報と前記特定情報とが受信される場合に、前記接続情報と前記特定情報とを利用して、前記通信装置と前記外部装置との間に前記第2の無線接続を確立する確立部と、
を備える通信装置。
(項目17)
前記通信装置は、さらに、
前記端末装置から前記接続情報と前記特定情報とが受信された後に、前記端末装置から、前記無線インターフェースを介して、確認要求を受信する確認要求受信部であって、前記端末装置と前記外部装置との間に前記第1の無線接続が確立されており、かつ、前記通信装置と前記外部装置との間に前記第2の無線接続が確立されている場合に、前記確認要求は、前記端末装置から前記外部装置を介して前記通信装置に送信される、前記確認要求受信部と、
前記端末装置から前記確認要求が受信される場合に、前記無線インターフェースを介して、前記確認要求に対する応答である確認応答を前記端末装置に送信する確認応答送信部であって、前記端末装置と前記外部装置との間に前記第1の無線接続が確立されており、かつ、前記通信装置と前記外部装置との間に前記第2の無線接続が確立されている場合に、前記確認応答は、前記通信装置から前記外部装置を介して前記端末装置に送信される、前記確認応答送信部と、
を備える項目16に記載の通信装置。
(項目18)
前記通信装置は、さらに、
印刷実行部と、
前記通信装置と前記外部装置との間に前記第2の無線接続が確立された後に、前記端末装置から、前記外部装置を介して、前記無線インターフェースを介し、印刷対象の画像を表わす印刷データを受信する印刷データ受信部と、
前記端末装置から前記印刷データが受信される場合に、前記印刷データによって表わされる前記画像の印刷を前記印刷実行部に実行させる印刷制御部と、
を備える項目16又は17に記載の通信装置。
(項目19)
前記通信装置は、さらに、
前記端末装置から、前記外部装置を介さずに、前記無線インターフェースを介して、前記第2の無線接続が確立されたのか否かを前記通信装置に問い合わせるための問合要求を受信する問合要求受信部と、
前記端末装置から前記問合要求が受信され、かつ、前記通信装置と前記外部装置との間に前記第2の無線接続が確立された後に、前記無線インターフェースを介して、前記外部装置を介さずに、前記問合要求に対する応答である問合応答を前記端末装置に送信する問合応答送信部と、を備え、
前記印刷データ受信部は、前記問合応答が前記端末装置に送信された後に、前記端末装置から前記印刷データを受信する、項目18に記載の通信装置。
(項目20)
前記情報受信部は、Wi-Fi規格に従ったEnrolleeとして動作して、前記端末装置から前記接続情報を受信する、項目16から19のいずれか一項に記載の通信装置。
(項目21)
前記接続情報は、認証情報を含み、
前記確立部は、
前記認証情報を利用して、前記外部装置から受信される情報の認証を実行し、
前記認証が成功する場合に、前記通信装置と前記外部装置との間に前記第2の無線接続を確立する、項目16から20のいずれか一項に記載の通信装置。
(項目22)
前記通信装置は、さらに、
前記第1の公開鍵がコード化されることによって得られるコード画像を出力する出力制御部を備え、
前記通信装置から出力される前記コード画像が前記端末装置によって撮影されることによって、前記第1の公開鍵が前記端末装置によって取得される、項目16から21のいずれか一項に記載の通信装置。
(項目23)
前記認証要求受信部は、第1の通信チャネルを利用して、前記端末装置から前記認証要求を受信し、
前記特定情報は、前記第1の無線接続において利用される第2の通信チャネルを示す前記チャネル情報を含み、
前記確立部は、前記チャネル情報によって示される前記第2の通信チャネルを利用して、前記通信装置と前記外部装置との間に前記第2の無線接続を確立し、
前記第2の通信チャネルは、前記第1の通信チャネルとは異なる、項目16から22いずれか一項に記載の通信装置。
(項目24)
通信装置のためのコンピュータプログラムあって、
前記通信装置のコンピュータを、
端末装置から、前記通信装置の無線インターフェースを介して、前記通信装置の第1の公開鍵が利用された認証要求を受信する認証要求受信部と、
前記端末装置から前記認証要求が受信される場合に、前記無線インターフェースを介して、前記認証要求に対する応答である認証応答を前記端末装置に送信する認証応答送信部と、
前記認証応答が前記端末装置に送信された後に、前記端末装置から、前記無線インターフェースを介して、接続情報と特定情報とを受信する情報受信部であって、前記接続情報は、前記通信装置と外部装置との間に前記無線インターフェースを介した第2の無線接続を確立するための情報であり、前記特定情報は、前記端末装置と外部装置との間に確立される第1の無線接続において利用される通信チャネルを示すチャネル情報と、前記外部装置を識別する装置識別情報と、の少なくも一方を含む、前記情報受信部と、
前記端末装置から前記接続情報と前記特定情報とが受信される場合に、前記接続情報と前記特定情報とを利用して、前記通信装置と前記外部装置との間に前記第2の無線接続を確立する確立部と、
として機能させるコンピュータプログラム。
【符号の説明】
【0134】
2:通信システム、6:AP、10:端末、12,112:操作部、14,114:表示部、15:カメラ、16,116:Wi-FiI/F、30,130:制御部、32,132:CPU、34,134:メモリ、36:OSプログラム、38:接続アプリケーション、100:プリンタ、118:印刷実行部、136:プログラム
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11