(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-12-19
(45)【発行日】2022-12-27
(54)【発明の名称】通信装置、通信装置のためのコンピュータプログラム、及び、第1の外部装置のためのコンピュータプログラム
(51)【国際特許分類】
H04W 76/10 20180101AFI20221220BHJP
H04W 88/06 20090101ALI20221220BHJP
H04W 12/069 20210101ALI20221220BHJP
H04W 84/12 20090101ALI20221220BHJP
H04W 84/10 20090101ALI20221220BHJP
H04W 12/0431 20210101ALI20221220BHJP
【FI】
H04W76/10
H04W88/06
H04W12/069
H04W84/12
H04W84/10 110
H04W12/0431
(21)【出願番号】P 2018247065
(22)【出願日】2018-12-28
【審査請求日】2021-11-26
(73)【特許権者】
【識別番号】000005267
【氏名又は名称】ブラザー工業株式会社
(74)【代理人】
【識別番号】110000110
【氏名又は名称】弁理士法人 快友国際特許事務所
(72)【発明者】
【氏名】鈴木 智詞
【審査官】齋藤 浩兵
(56)【参考文献】
【文献】特開2017-135517(JP,A)
【文献】特開2018-042057(JP,A)
【文献】特開2017-034613(JP,A)
【文献】Device Provisioning Protocol Specification V1.0,Wi-Fi Alliance,2018年04月09日,pp.20-24,Internet<http://www.sandelman.ca/tmp/ieee/dev-prov.pdf>
【文献】Ian Sherlock (Texas Instruments),WFA liaison update,IEEE 802.11-18/2026r0 ,2018年11月14日,Internet<URL:https://mentor.ieee.org/802.11/dcn/18/11-18-2026-00-0000-wfa-liaison-update.pptx>
(58)【調査した分野】(Int.Cl.,DB名)
H04W 4/00-99/00
(57)【特許請求の範囲】
【請求項1】
通信装置であって、
第1の無線インターフェースと、
前記第1の無線インターフェースとは異なる1個以上の無線インターフェースと、
前記通信装置の公開鍵である第1の公開鍵と特定情報とを前記第1の無線インターフェースに供給する第1の供給部であって、前記通信装置と第1の外部装置との間に前記第1の無線インターフェースを介した第1の無線接続が確立される場合に、前記第1の公開鍵と前記特定情報とは、前記第1の無線インターフェースを介して、前記第1の無線接続を利用して、前記第1の外部装置に送信され、前記第1の公開鍵は、第1の接続方式に従って前記通信装置と第2の外部装置との間に前記1個以上の無線インターフェースのうちの第2の無線インターフェースを介した第2の無線接続を確立するために利用され、前記特定情報は、前記第1の接続方式とは異なる第2の接続方式に従って前記通信装置と前記第1の外部装置との間に前記1個以上の無線インターフェースのうちの第3の無線インターフェースを介した第3の無線接続を確立するために利用される、前記第1の供給部と、
前記第1の公開鍵と前記特定情報とが前記第1の外部装置に送信された後に、前記第1の外部装置から、前記第2の無線インターフェースを介して、前記第1の公開鍵が利用された第1の認証要求が受信される場合に、前記第2の無線インターフェースを介して、前記第1の認証要求に対する応答である第1の認証応答を前記第1の外部装置に送信する認証応答送信部と、
前記第1の認証応答が前記第1の外部装置に送信された後に、前記第1の外部装置から、前記第2の無線インターフェースを介して、第1の接続情報を受信する接続情報受信部であって、前記第1の接続情報は、前記通信装置と前記第2の外部装置との間に前記第2の無線インターフェースを介した前記第2の無線接続を確立するための情報である、前記接続情報受信部と、
前記第1の外部装置から前記第1の接続情報が受信される場合に、前記第1の接続情報を利用して、前記通信装置と前記第2の外部装置との間に前記第2の無線インターフェースを介した前記第2の無線接続を確立する第1の確立部と、
前記第1の公開鍵と前記特定情報とが前記第1の外部装置に送信された後に、前記第1の外部装置から、前記第3の無線インターフェースを介して、前記特定情報を含む特定信号が受信される場合に、前記通信装置と前記第1の外部装置との間に前記第3の無線インターフェースを介した前記第3の無線接続を確立する第2の確立部と、
を備える、通信装置。
【請求項2】
前記第2の外部装置は、前記第1の外部装置とは異なるアクセスポイントであり、
前記第1の確立部は、前記第1の外部装置から前記第1の接続情報が受信される場合に、前記第1の接続情報を利用して、前記通信装置と前記アクセスポイントである前記第2の外部装置との間に前記第2の無線インターフェースを介した前記第2の無線接続を確立して、前記第2の外部装置が親局として動作する無線ネットワークに子局として参加する、請求項1に記載の通信装置。
【請求項3】
前記通信装置は、さらに、
前記通信装置と前記第1の外部装置との間に前記第3の無線接続が確立される場合に、前記第3の無線接続を利用して、アクセスポイントを介さずに、前記第1の外部装置との目的データの通信を実行するデータ通信部を備える、請求項1又は2に記載の通信装置。
【請求項4】
前記第1の供給部は、前記通信装置とアクセスポイントとの間に前記第2の無線インターフェースを介した無線接続が確立されていない状況において、前記通信装置と前記第1の外部装置との間に前記第1の無線接続が確立される場合に、前記第1の公開鍵と前記特定情報とを前記第1の無線インターフェースに供給し、
前記通信装置と前記アクセスポイントとの間に前記第2の無線インターフェースを介した前記無線接続が確立されている状況において、前記通信装置と前記第1の外部装置との間に前記第1の無線接続が確立される場合に、前記第1の公開鍵は前記第1の無線インターフェースに供給されない、請求項1から3のいずれか一項に記載の通信装置。
【請求項5】
前記通信装置は、さらに、
前記通信装置と前記アクセスポイントとの間に前記第2の無線インターフェースを介した前記無線接続が確立されている状況において、前記通信装置の動作モードを移行させるための移行指示がユーザから受け付けられる場合に、前記通信装置の前記動作モードを第1のモードから第2のモードに移行させるモード移行部であって、前記第1のモードは、前記第1の接続方式に従って前記通信装置と前記第2の外部装置との間に前記第2の無線接続を確立不可能なモードであり、前記第2のモードは、前記第1の接続方式に従って前記通信装置と前記第2の外部装置との間に前記第2の無線接続を確立可能なモードである、前記モード移行部を備え、
前記通信装置と前記アクセスポイントとの間に前記第2の無線インターフェースを介した前記無線接続が確立されており、かつ、前記通信装置の前記動作モードが前記第1のモードである状況において、前記通信装置と前記第1の外部装置との間に前記第1の無線接続が確立される場合に、前記第1の公開鍵は前記第1の無線インターフェースに供給されず、
前記第1の供給部は、前記通信装置と前記アクセスポイントとの間に前記第2の無線インターフェースを介した前記無線接続が確立されており、かつ、前記通信装置の前記動作モードが前記第2のモードである状況において、前記通信装置と前記第1の外部装置との間に前記第1の無線接続が確立される場合に、前記第1の公開鍵と前記特定情報とを前記第1の無線インターフェースに供給する、請求項4に記載の通信装置。
【請求項6】
前記通信装置は、さらに、
前記通信装置と前記アクセスポイントとの間に前記第2の無線インターフェースを介した前記無線接続が確立されている状況において、前記通信装置と前記第1の外部装置との間に前記第1の無線接続が確立される場合に、前記特定情報と、前記通信装置と前記第1の外部装置とが前記アクセスポイントを介して通信可能であるのか否かを判断するための判断情報と、を前記第1の無線インターフェースに供給する第2の供給部であって、前記特定情報と前記判断情報とは、前記第1の無線インターフェースを介して、前記第1の無線接続を利用して、前記第1の外部装置に送信される、前記第2の供給部を備える、請求項4又は5に記載の通信装置。
【請求項7】
前記第1の供給部は、前記通信装置とアクセスポイントとの間に前記第2の無線インターフェースを介した無線接続が確立されていない状況において、前記通信装置と前記第1の外部装置との間に前記第1の無線接続が確立される場合に、前記第1の公開鍵と前記特定情報とを前記第1の無線インターフェースに供給し、
前記通信装置と前記アクセスポイントとの間に前記第2の無線インターフェースを介した前記無線接続が確立されている状況において、前記通信装置と前記第1の外部装置との間に前記第1の無線接続が確立される場合に、前記第1の公開鍵と前記特定情報とは前記第1の無線インターフェースに供給されず、
前記通信装置は、さらに、
前記通信装置と前記アクセスポイントとの間に前記第2の無線インターフェースを介した前記無線接続が確立されている状況において、前記通信装置と前記第1の外部装置との間に前記第1の無線接続が確立される場合に、前記第1の外部装置から、前記第1の無線インターフェースを介して、前記第1の無線接続を利用して、前記第1の外部装置の公開鍵である第2の公開鍵を受信する公開鍵受信部と、
前記第1の外部装置から前記第2の公開鍵が受信される場合に、前記第2の無線インターフェースを介して、前記第2の公開鍵が利用された第2の認証要求を前記第1の外部装置に送信する認証要求送信部と、
前記第2の認証要求が前記第1の外部装置に送信された後に、前記第1の外部装置から、前記第2の無線インターフェースを介して、前記第2の認証要求に対する応答である第2の認証応答を受信する認証応答受信部と、
前記第1の外部装置から前記第2の認証応答が受信される場合に、前記2の無線インターフェースを介して、第2の接続情報を前記第1の外部装置に送信する接続情報送信部であって、前記第2の接続情報は、前記第1の外部装置と前記アクセスポイントとの間に無線接続を確立するための情報である、前記接続情報送信部と、
を備える、請求項1から3のいずれか一項に記載の通信装置。
【請求項8】
前記通信装置は、さらに、
前記第1の公開鍵と前記特定情報とが前記第1の無線インターフェースに供給された後に、前記通信装置の動作状態を不可能状態から可能状態に移行させる第1の状態移行部であって、前記不可能状態は、前記第1の外部装置から前記第1の認証要求が受信されても、前記第1の認証応答を前記第1の外部装置に送信しない状態であり、前記可能状態は、前記第1の外部装置から前記第1の認証要求が受信されることに応じて、前記第1の認証応答を前記第1の外部装置に送信する状態である、前記第1の状態移行部を備え、
前記認証応答送信部は、前記通信装置の前記動作状態が前記不可能状態から前記可能状態に移行された後に、前記第1の外部装置から前記第1の認証要求が受信される場合に、前記第2の無線インターフェースを介して、前記第1の認証応答を前記第1の外部装置に送信し、
前記通信装置は、さらに、
前記通信装置と前記第1の外部装置との間に前記第3の無線接続が確立される場合に、前記通信装置の前記動作状態を前記可能状態から前記不可能状態に移行させる第2の状態移行部を備える、請求項1から7のいずれか一項に記載の通信装置。
【請求項9】
通信装置のためのコンピュータプログラムであって、
前記通信装置は、
第1の無線インターフェースと、
前記第1の無線インターフェースとは異なる1個以上の無線インターフェースと、
コンピュータと、を備え、
前記コンピュータプログラムは、前記コンピュータを、以下の各部、即ち、
前記通信装置の公開鍵である第1の公開鍵と特定情報とを前記第1の無線インターフェースに供給する第1の供給部であって、前記通信装置と第1の外部装置との間に前記第1の無線インターフェースを介した第1の無線接続が確立される場合に、前記第1の公開鍵と前記特定情報とは、前記第1の無線インターフェースを介して、前記第1の無線接続を利用して、前記第1の外部装置に送信され、前記第1の公開鍵は、第1の接続方式に従って前記通信装置と第2の外部装置との間に前記1個以上の無線インターフェースのうちの第2の無線インターフェースを介した第2の無線接続を確立するために利用され、前記特定情報は、前記第1の接続方式とは異なる第2の接続方式に従って前記通信装置と前記第1の外部装置との間に前記1個以上の無線インターフェースのうちの第3の無線インターフェースを介した第3の無線接続を確立するために利用される、前記第1の供給部と、
前記第1の公開鍵と前記特定情報とが前記第1の外部装置に送信された後に、前記第1の外部装置から、前記第2の無線インターフェースを介して、前記第1の公開鍵が利用された第1の認証要求が受信される場合に、前記第2の無線インターフェースを介して、前記第1の認証要求に対する応答である第1の認証応答を前記第1の外部装置に送信する認証応答送信部と、
前記第1の認証応答が前記第1の外部装置に送信された後に、前記第1の外部装置から、前記第2の無線インターフェースを介して、第1の接続情報を受信する接続情報受信部であって、前記第1の接続情報は、前記通信装置と前記第2の外部装置との間に前記第2の無線インターフェースを介した前記第2の無線接続を確立するための情報である、前記接続情報受信部と、
前記第1の外部装置から前記第1の接続情報が受信される場合に、前記第1の接続情報を利用して、前記通信装置と前記第2の外部装置との間に前記第2の無線インターフェースを介した前記第2の無線接続を確立する第1の確立部と、
前記第1の公開鍵と前記特定情報とが前記第1の外部装置に送信された後に、前記第1の外部装置から、前記第3の無線インターフェースを介して、前記特定情報を含む特定信号が受信される場合に、前記通信装置と前記第1の外部装置との間に前記第3の無線インターフェースを介した前記第3の無線接続を確立する第2の確立部と、
として機能させる、コンピュータプログラム。
【請求項10】
第1の外部装置のためのコンピュータプログラムであって、
前記第1の外部装置は、
第1の無線インターフェースと、
前記第1の無線インターフェースとは異なる1個以上の無線インターフェースと、
コンピュータと、を備え、
前記コンピュータプログラムは、前記コンピュータを、以下の各部、即ち、
通信装置と前記第1の外部装置との間に前記第1の無線インターフェースを介した第1の無線接続が確立される場合に、前記通信装置から、前記第1の無線インターフェースを介して、前記第1の無線接続を利用して、前記通信装置の公開鍵と特定情報とを受信する受信部であって、前記公開鍵は、第1の接続方式に従って前記通信装置と第2の外部装置との間に第2の無線接続を確立するために利用され、前記特定情報は、前記第1の接続方式とは異なる第2の接続方式に従って前記通信装置と前記第1の外部装置との間に前記1個以上の無線インターフェースのうちの第3の無線インターフェースを介した第3の無線接続を確立するために利用される、前記受信部と、
前記通信装置から前記公開鍵と前記特定情報とが受信される場合に、前記第2の無線接続と前記第3の無線接続とのうちのいずれの無線接続を確立すべきかを判断する判断部と、
前記第2の無線接続を確立すべきと判断される場合に、前記1個以上の無線インターフェースのうちの第2の無線インターフェースを介して、前記公開鍵が利用された認証要求を前記通信装置に送信する認証要求送信部と、
前記認証要求が前記通信装置に送信される場合に、前記通信装置から、前記第2の無線インターフェースを介して、前記認証要求に対する応答である認証応答を受信する認証応答受信部と、
前記通信装置から前記認証応答が受信される場合に、前記第2の無線インターフェースを介して、接続情報を前記通信装置に送信する接続情報送信部であって、前記接続情報は、前記通信装置と前記第2の外部装置との間に前記第2の無線接続を確立するための情報である、前記接続情報送信部であって、前記通信装置では、前記第1の外部装置から前記接続情報が受信される場合に、前記接続情報が利用されて、前記通信装置と前記第2の外部装置との間に前記第2の無線接続が確立される、前記接続情報送信部と、
前記第3の無線接続が確立されるべきと判断される場合に、前記第3の無線インターフェースを介して、前記特定情報を含む特定信号を前記通信装置に送信する特定信号送信部と、
前記特定信号が前記通信装置に送信された後に、前記通信装置と前記第1の外部装置との間に前記第3の無線インターフェースを介した前記第3の無線接続を確立する確立部と、
として機能させる、コンピュータプログラム。
【請求項11】
前記コンピュータプログラムは、前記コンピュータを、さらに、
前記通信装置から前記公開鍵と前記特定情報とが受信される場合に、前記第1の接続方式と前記第2の接続方式とのうちの一方の接続方式をユーザに選択させるための選択画面を前記第1の外部装置の表示部に表示させる表示制御部として機能させ、
前記判断部は、
前記選択画面において前記第1の接続方式が前記ユーザによって選択される場合に、前記第2の無線接続を確立すべきと判断し、
前記選択画面において前記第2の接続方式が前記ユーザによって選択される場合に、前記第3の無線接続を確立すべきと判断する、請求項10に記載のコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本明細書では、通信装置と外部装置との間に無線接続を確立させるための技術を開示する。
【背景技術】
【0002】
非特許文献1には、Wi-Fi Allianceによって策定された接続方式であるDPP(Device Provisioning Protocolの略)方式が記述されている。DPP方式では、例えば、第1の装置と第2の装置との間にNFC接続が確立されることに応じて、DPP方式に従った無線通信が実行される。
【先行技術文献】
【非特許文献】
【0003】
【文献】「Device Provisioning Protocol Technical Specification Version 1.0」Wi-Fi Alliance, 2018年
【発明の概要】
【発明が解決しようとする課題】
【0004】
第1の装置と第2の装置との間にNFC接続が確立されることに応じて、DPP方式に従った無線通信が実行されるべき状況もあるし、DPP方式とは異なる接続方式に従った無線通信が実行されるべき状況もある。
【0005】
本明細書では、通信装置と外部装置との間に無線接続が確立されることに応じて、複数の接続方式のうちの適切な接続方式に従って、通信装置が上記の無線接続とは異なる無線接続を確立するための技術を開示する。
【課題を解決するための手段】
【0006】
本明細書では、通信装置を開示する。通信装置は、第1の無線インターフェースと、前記第1の無線インターフェースとは異なる1個以上の無線インターフェースと、前記通信装置の公開鍵である第1の公開鍵と特定情報とを前記第1の無線インターフェースに供給する第1の供給部であって、前記通信装置と第1の外部装置との間に前記第1の無線インターフェースを介した第1の無線接続が確立される場合に、前記第1の公開鍵と前記特定情報とは、前記第1の無線インターフェースを介して、前記第1の無線接続を利用して、前記第1の外部装置に送信され、前記第1の公開鍵は、第1の接続方式に従って前記通信装置と第2の外部装置との間に前記1個以上の無線インターフェースのうちの第2の無線インターフェースを介した第2の無線接続を確立するために利用され、前記特定情報は、前記第1の接続方式とは異なる第2の接続方式に従って前記通信装置と前記第1の外部装置との間に前記1個以上の無線インターフェースのうちの第3の無線インターフェースを介した第3の無線接続を確立するために利用される、前記第1の供給部と、前記第1の公開鍵と前記特定情報とが前記第1の外部装置に送信された後に、前記第1の外部装置から、前記第2の無線インターフェースを介して、前記第1の公開鍵が利用された第1の認証要求が受信される場合に、前記第2の無線インターフェースを介して、前記第1の認証要求に対する応答である第1の認証応答を前記第1の外部装置に送信する認証応答送信部と、前記第1の認証応答が前記第1の外部装置に送信された後に、前記第1の外部装置から、前記第2の無線インターフェースを介して、第1の接続情報を受信する接続情報受信部であって、前記第1の接続情報は、前記通信装置と前記第2の外部装置との間に前記第2の無線インターフェースを介した前記第2の無線接続を確立するための情報である、前記接続情報受信部と、前記第1の外部装置から前記第1の接続情報が受信される場合に、前記第1の接続情報を利用して、前記通信装置と前記第2の外部装置との間に前記第2の無線インターフェースを介した前記第2の無線接続を確立する第1の確立部と、前記第1の公開鍵と前記特定情報とが前記第1の外部装置に送信された後に、前記第1の外部装置から、前記第3の無線インターフェースを介して、前記特定情報を含む特定信号が受信される場合に、前記通信装置と前記第1の外部装置との間に前記第3の無線インターフェースを介した前記第3の無線接続を確立する第2の確立部と、を備えてもよい。
【0007】
上記の構成によると、通信装置は、通信装置の第1の公開鍵と特定情報とを第1の無線インターフェースに供給する。この結果、第1の公開鍵と特定情報とは、通信装置と第1の外部装置との間に第1の無線接続が確立される場合に、第1の無線接続を利用して第1の外部装置に送信される。通信装置は、第1の公開鍵と特定情報とが第1の外部装置に送信された後に、第1の外部装置から第1の公開鍵が利用された第1の認証要求を受信する場合に、第1の認証応答を第1の外部装置に送信し、第1の外部装置から第1の接続情報を受信し、第1の接続情報を利用して通信装置と第2の外部装置との間に第2の無線接続を確立する。即ち、通信装置は、第1の接続方式に従って第2の外部装置との第2の無線接続を確立することができる。一方、通信装置は、第1の公開鍵と特定情報とが第1の外部装置に送信された後に、第1の外部装置から特定情報を含む特定信号を受信する場合に、通信装置と第1の外部装置との間に第3の無線接続を確立する。即ち、通信装置は、第2の接続方式に従って第1の外部装置との第3の無線接続を確立することができる。従って、通信装置と第1の外部装置との間に第1の無線接続が確立されることに応じて、複数の接続方式のうちの適切な接続方式に従って、通信装置が第1の無線接続とは異なる第2又は第3の無線接続を確立することができる。
【0008】
上記の通信装置を実現するためのコンピュータプログラム、及び、当該コンピュータプログラムを記憶するコンピュータ可読記録媒体も新規で有用である。また、上記の通信装置によって実行される方法も新規で有用である。
【0009】
また、本明細書では、第1の外部装置のためのコンピュータプログラムを開示する。第1の外部装置は、第1の無線インターフェースと、前記第1の無線インターフェースとは異なる1個以上の無線インターフェースと、コンピュータと、を備え、前記コンピュータプログラムは、前記コンピュータを、以下の各部、即ち、通信装置と前記第1の外部装置との間に前記第1の無線インターフェースを介した第1の無線接続が確立される場合に、前記通信装置から、前記第1の無線インターフェースを介して、前記第1の無線接続を利用して、前記通信装置の公開鍵と特定情報とを受信する受信部であって、前記公開鍵は、第1の接続方式に従って前記通信装置と第2の外部装置との間に第2の無線接続を確立するために利用され、前記特定情報は、前記第1の接続方式とは異なる第2の接続方式に従って前記通信装置と前記第1の外部装置との間に前記1個以上の無線インターフェースのうちの第3の無線インターフェースを介した第3の無線接続を確立するために利用される、前記受信部と、前記通信装置から前記公開鍵と前記特定情報とが受信される場合に、前記第2の無線接続と前記第3の無線接続とのうちのいずれの無線接続を確立すべきかを判断する判断部と、前記第2の無線接続を確立すべきと判断される場合に、前記1個以上の無線インターフェースのうちの第2の無線インターフェースを介して、前記公開鍵が利用された認証要求を前記通信装置に送信する認証要求送信部と、前記認証要求が前記通信装置に送信される場合に、前記通信装置から、前記第2の無線インターフェースを介して、前記認証要求に対する応答である認証応答を受信する認証応答受信部と、前記通信装置から前記認証応答が受信される場合に、前記第2の無線インターフェースを介して、接続情報を前記通信装置に送信する接続情報送信部であって、前記接続情報は、前記通信装置と前記第2の外部装置との間に前記第2の無線接続を確立するための情報である、前記接続情報送信部であって、前記通信装置では、前記第1の外部装置から前記接続情報が受信される場合に、前記接続情報が利用されて、前記通信装置と前記第2の外部装置との間に前記第2の無線接続が確立される、前記接続情報送信部と、前記第3の無線接続が確立されるべきと判断される場合に、前記第3の無線インターフェースを介して、前記特定情報を含む特定信号を前記通信装置に送信する特定信号送信部と、前記特定信号が前記通信装置に送信された後に、前記通信装置と前記第1の外部装置との間に前記第3の無線インターフェースを介した前記第3の無線接続を確立する確立部と、として機能してもよい。
【0010】
上記の構成によると、第1の外部装置は、通信装置と第1の外部装置との間に第1の無線接続が確立される場合に、通信装置から公開鍵と特定情報とを受信し、第2の無線接続と第3の無線接続とのうちのいずれの無線接続を確立すべきかを判断する。第1の外部装置は、第2の無線接続を確立すべきと判断する場合に、公開鍵が利用された認証要求を通信装置に送信し、通信装置から認証応答を受信し、接続情報を通信装置に送信する。この結果、接続情報が利用されて、通信装置と第2の外部装置との間に第2の無線接続が確立される。一方、第1の外部装置は、第3の無線接続が確立されるべきと判断する場合に、特定情報を含む特定信号を通信装置に送信し、通信装置と第1の外部装置との間に第3の無線接続を確立する。従って、通信装置と第1の外部装置との間に無線接続が確立されることに応じて、複数の接続方式のうちの適切な接続方式に従って、通信装置が第1の無線接続とは異なる第2又は第3の無線接続を確立することができる。
【0011】
上記のコンピュータプログラムを記憶するコンピュータ可読記録媒体も新規で有用である。また、上記の第1の外部装置そのもの、及び、第1の外部装置によって実行される方法も新規で有用である。
【図面の簡単な説明】
【0012】
【
図2】プリンタとアクセスポイントとの間にDPP方式に従ったWi-Fi接続が確立されるケースAの概略を説明するための説明図を示す。
【
図3】Bootstrappingの処理のシーケンス図を示す。
【
図4】Authenticationの処理のシーケンス図を示す。
【
図5】Configurationの処理のシーケンス図を示す。
【
図6】Network Accessの処理のシーケンス図を示す。
【
図7】端末とプリンタとの間にWFD接続が確立されるケースBの処理のシーケンス図を示す。
【
図8】端末及びプリンタがアクセスポイントとのWi-Fi接続を確立済みであるケースCの処理のシーケンス図を示す。
【
図9】プリンタにおいてモード移行操作が実行されるケースDの処理のシーケンス図を示す。
【
図10】端末によって実行される処理のフローチャートを示す。
【
図11】プリンタによって実行される処理のフローチャートを示す。
【
図12】第2実施例の端末によって実行される処理のフローチャートを示す。
【
図13】第2実施例のプリンタによって実行される処理のフローチャートを示す。
【発明を実施するための形態】
【0013】
(通信システム2の構成;
図1)
図1に示されるように、通信システム2は、アクセスポイント(以下では、単に「AP」と記載する)6と、端末10と、プリンタ100と、を備える。本実施例では、ユーザが端末10を利用して、プリンタ100とAP6との間にWi-Fi方式に従った無線接続(以下では「Wi-Fi接続」と記載する)を確立させる状況を想定している。
【0014】
(端末10の構成)
端末10は、携帯電話(例えばスマートフォン)、PDA、タブレットPC等の可搬型の端末装置である。なお、変形例では、端末10は、据置型のPC、ノートPC等であってもよい。端末10は、操作部12と、表示部14と、Wi-Fiインターフェース16と、NFCインターフェース18と、制御部30と、を備える。各部12~30は、バス線(符号省略)に接続されている。以下では、インターフェースを単に「I/F」と記載する。
【0015】
操作部12は、複数のキーを備える。ユーザは、操作部12を操作することによって、様々な指示を端末10に入力することができる。表示部14は、様々な情報を表示するためのディスプレイである。
【0016】
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等)に従って、無線通信を実行するための無線通信方式である。Wi-FiI/F16は、AP6が親局として動作する無線ネットワークを識別するSSID(Service Set Identifierの略)と、当該無線ネットワークで利用されるパスワードと、が操作部12を介して入力される場合に、AP6とのWi-Fi接続を確立することができる。また、Wi-FiI/F16は、これらの情報が操作部12を介して入力されなくても、いわゆるPINコード方式又はPBC(Push Button Configurationの略)方式を利用して、AP6とのWi-Fi接続を確立することもできる。以下では、このようにして確立されるWi-Fi接続のことを「通常Wi-Fi接続」と記載することがある。
【0017】
また、Wi-FiI/F16は、Wi-Fi Allianceによって策定されたWFD(Wi-Fi Direct(登録商標)の略)方式と、Wi-Fi Allianceによって策定されたDPP(Device Provisioning Protocolの略)方式と、をサポートしている。WFD方式は、Wi-Fi Allianceによって作成された規格書「Wi-Fi Peer-to-Peer (P2P) Technical Specification Version1.1」に記述されている接続方式である。WFDの規格では、WFD機器の状態として、Group Owner状態(以下では「G/O状態」と呼ぶ)、クライアント状態、及び、デバイス状態の3つの状態が定義されている。WFD機器は、上記の3つの状態のうちの1つの状態で選択的に動作可能である。DPP方式は、Wi-Fi Allianceによって作成された規格書「Device Provisioning Protocol Technical Specification Version 1.0」に記述されており、端末10を利用して一対のデバイス(例えばプリンタ100とAP6)の間に容易にWi-Fi接続を確立させるための接続方式である。以下では、DPP方式に従って確立されるWi-Fi接続を「DPP接続」と記載し、WFD方式に従って確立されるWi-Fi接続を「WFD接続」と記載することがある。
【0018】
NFCI/F18は、NFC方式に従ったNFC通信を実行するためのI/Fである。NFC方式は、例えば、ISO/IEC14443、15693、18092等の国際標準規格に基づく無線通信方式である。なお、NFC通信を実行するためのI/Fの種類として、NFCフォーラムデバイス(NFC Forum Device)と呼ばれるI/Fと、NFCフォーラムタグと呼ばれるI/Fと、が知られている。本実施例では、NFCI/F18は、NFCフォーラムデバイスである。
【0019】
ここで、Wi-FiI/FとNFCI/Fとの間の相違点を説明しておく。Wi-FiI/Fを介した無線通信の通信速度(例えば最大の通信速度が11~600Mbps)は、NFCI/Fを介した無線通信の通信速度(例えば最大の通信速度が100~424Kbps)よりも速い。また、Wi-FiI/Fを介した無線通信に利用される周波数(例えば2.4GHz帯又は5.0GHz帯)は、NFCI/Fを介した無線通信に利用される周波数(例えば13.56MHz帯)とは異なる。また、Wi-FiI/Fを介した無線通信を実行可能な最大の距離(例えば最大で約100m)は、NFCI/Fを介した無線通信を実行可能な最大の距離(例えば最大で約10cm)よりも大きい。
【0020】
制御部30は、CPU32とメモリ34とを備える。CPU32は、メモリ34に格納されているOS(Operating Systemの略)プログラム36に従って、様々な処理を実行する。メモリ34は、揮発性メモリ、不揮発性メモリ等によって構成される。また、メモリ34は、印刷アプリケーション38(以下では単に「アプリ38」と記載する)を記憶している。アプリ38は、プリンタ100に印刷を実行させるためのプログラムであり、例えば、プリンタ100のベンダによって提供されるインターネット上のサーバから端末10にインストールされる。
【0021】
(プリンタ100の構成)
プリンタ100は、印刷機能を実行可能な周辺装置(例えば、端末10の周辺装置)である。プリンタ100は、操作部112と、表示部114と、Wi-FiI/F116と、NFCI/F118と、印刷実行部120と、制御部130と、を備える。各部112~130は、バス線(符号省略)に接続されている。
【0022】
操作部112は、複数のキーを備える。ユーザは、操作部112を操作することによって、様々な指示をプリンタ100に入力することができる。表示部114は、様々な情報を表示するためのディスプレイである。印刷実行部120は、インクジェット方式、レーザ方式等の印刷機構を備える。
【0023】
Wi-FiI/F116は、端末10のWi-FiI/F16と同様である。即ち、Wi-FiI/F116は、WFD方式とDPP方式とをサポートしている。このため、プリンタ100は、DPP方式に従ってAP6とのWi-Fi接続(即ちDPP接続)を確立することができ、さらに、WFD方式に従って端末10とのWi-Fi接続(即ちWFD接続)を確立することができる。なお、プリンタ100は、AP6との通常Wi-Fi接続を確立することもできる。
【0024】
制御部130は、CPU132とメモリ134とを備える。CPU132は、メモリ134に格納されているプログラム136に従って、様々な処理を実行する。メモリ134は、揮発性メモリ、不揮発性メモリ等によって構成される。
【0025】
メモリ134は、さらに、WFDフラグ138を格納する。WFDフラグ138は、プリンタ100がWFD方式に従って動作可能な状態であることを意味する「ON」と、プリンタ100がWFD方式に従って動作不可能な状態であることを意味する「OFF」と、のどちらかの値を示す。WFDフラグ138が「ON」である状態は、プリンタ100の動作状態が、WFD方式の3個の状態(即ち、G/O状態、クライアント状態、及び、デバイス状態)のうちのいずれかである状態である。WFDフラグ138が「OFF」である状態は、プリンタ100の動作状態が、WFD方式の3個の状態のうちのいずれでもない状態である。
【0026】
(具体例;
図2~
図9)
続いて、
図2~
図9を参照して、各デバイス6,10,100によって実行される処理の具体例を説明する。まず、
図2~
図6を参照して、プリンタ100とAP6との間にDPP接続が確立されるケースAの処理を説明する。
【0027】
(ケースAの概要;
図2)
まず、
図2を参照して、ケースAの処理の概要を説明する。端末10及びプリンタ100がDPP方式をサポートしていることを上述したが、AP6もDPP方式をサポートしている。そして、本実施例では、各デバイス6,10,100がDPP方式に従った通信を実行することによって、プリンタ100とAP6との間のDPP接続を確立することを実現する。以下では、理解の容易化のために、各デバイスのCPU(例えばCPU32,132)が実行する動作を、CPUを主体として記載せずに、各デバイス(例えば端末10、プリンタ100)を主体として記載する。
【0028】
T5では、端末10は、DPP方式のBootstrapping(以下では、単に「BS」と記載する)をAP6と実行する。当該BSは、AP6に貼り付けられているQRコード(登録商標)が端末10によって撮影されることに応じて、後述のT10のAuthentication(以下では、単に「Auth」と記載する)で利用される情報をAP6から端末10に提供する処理である。
【0029】
T10では、端末10は、T5のBSで取得済みの情報を利用して、DPP方式のAuthをAP6と実行する。当該Authは、端末10及びAP6のそれぞれが通信相手を認証するための処理である。
【0030】
T15では、端末10は、DPP方式のConfiguration(以下では、単に「Config」と記載する)をAP6と実行する。当該Configは、プリンタ100とAP6との間にDPP接続を確立するための情報をAP6に送信する処理である。具体的には、端末10は、当該Configにおいて、プリンタ100とAP6との間にDPP接続を確立させるためのAP用Configuration Object(以下では、Configuration Objectのことを単に「CO」と記載する)を生成して、AP用COをAP6に送信する。この結果、AP6では、AP用COが記憶される。
【0031】
次いで、端末10は、T20において、DPP方式のBSをプリンタ100と実行する。当該BSは、端末10のNFCI/F18とプリンタ100のNFCI/F118との間に確立されるNFC接続を利用して、後述のT25のAuthで利用される情報をプリンタ100から端末10に提供する処理である。
【0032】
T25では、端末10は、T20のBSで取得済みの情報を利用して、DPP方式のAuthをプリンタ100と実行する。当該Authは、端末10及びプリンタ100のそれぞれが通信相手を認証するための処理である。
【0033】
T30では、端末10は、DPP方式のConfigをプリンタ100と実行する。当該Configは、プリンタ100とAP6との間にDPP接続を確立するための情報をプリンタ100に送信する処理である。端末10は、当該Configにおいて、プリンタ100とAP6との間にDPP接続を確立させるためのプリンタ用COを生成して、プリンタ用COをプリンタ100に送信する。この結果、プリンタ100では、プリンタ用COが記憶される。
【0034】
T35では、プリンタ100及びAP6は、記憶済みのAP用及びプリンタ用COを利用して、DPP方式のNetwork Access(以下では、単に「NA」と記載する)を実行する。NAは、DPP接続を確立するための接続キーをプリンタ100及びAP6の間で共有するための処理である。
【0035】
T40では、プリンタ100及びAP6は、4way-handshakeの通信を実行する。4way-handshakeの通信の少なくとも一部の過程において、プリンタ100及びAP6は、T35のNAで共有済みの接続キーによって暗号化された暗号情報を通信する。そして、暗号情報の復号が成功する場合に、プリンタ100とAP6との間にDPP接続が確立される。これにより、プリンタ100は、AP6によって形成される無線ネットワークに子局として参加することができ、この結果、AP6を介して、当該無線ネットワークに参加している他のデバイスとの通信を実行することができる。なお、変形例では、プリンタ100及びAP6は、4way-handshakeの通信に代えて、SAE(Simultaneous Authentication of Equalsの略、通称「Dragonfly」)の通信を実行してもよい。
【0036】
T45では、プリンタ100は、DPP接続がAP6と確立されたことを示す完了画面を表示部114に表示させる。T45の処理が終了すると、
図2の処理が終了する。
【0037】
DPP方式では、プリンタ100とAP6との間にWi-Fi接続を確立させるために、ユーザは、AP6が親局として動作する無線ネットワークの情報(例えばSSID、パスワード等)をプリンタ100に入力する必要がない。従って、ユーザは、プリンタ100とAP6との間にWi-Fi接続を容易に確立させることができる。
【0038】
(各処理の説明;
図3~
図6)
続いて、
図3~
図6を参照して、
図2のT20~T35において実行される各処理の詳細を説明する。なお、T5~T15の処理は、プリンタ100に代えてAP6が利用される点を除いて、T20~T30の処理と同様であるので、その詳細な説明を省略する。
【0039】
(Bootstrapping(BS);
図3)
まず、
図3を参照して、
図2のT20のBSの処理を説明する。
図3の初期状態では、プリンタ100のメモリ134は、プリンタ100の公開鍵PPK1及び秘密鍵psk1を予め記憶している。また、
図3の初期状態では、プリンタ100のWFDフラグ138は「OFF」を示す。
【0040】
プリンタ100は、T100において、ユーザから電源ON操作を受け付けることに応じて、T102において、AP6との通常Wi-Fi接続が確立されていないと判断して、プリンタ100の動作モードを非設定モードから設定モードに移行する。プリンタ100は、メモリ134内にAP6との通常Wi-Fi接続を確立するためのAP情報(例えばSSID、パスワード等)が記憶されていない場合、又は、通常Wi-Fi接続が確立されているのか否かを確認するための確認信号をWi-FiI/F116を介して送信して、当該確認信号に対する応答がAP6から受信されない場合に、AP6との通常Wi-Fi接続が確立されていないと判断する。非設定モードは、NFC接続が確立されることに応じて、プリンタ100とAP6との間にDPP接続を確立するために利用されるBS情報をNFCI/F118に供給しないモードである。設定モードは、NFC接続が確立されることに応じて、BS情報をNFCI/F118に供給するモードである。換言すれば、非設定モードは、DPP方式に従ってDPP接続を確立不可能なモードであり、設定モードは、DPP方式に従ってDPP接続を確立可能なモードである。
【0041】
T103において、ユーザによって、端末10のアプリ38が起動され、かつ、端末10がプリンタ100に近付けられることに応じて、T104において、端末10のNFCI/F18とプリンタ100のNFCI/F118との間にNFC接続が確立される。この場合、プリンタ100は、T105において、NFCI/F118からNFC接続が確立されたことを示す信号を取得し、プリンタ100の動作モードが設定モードであると判断し、WFD情報とBS情報とをNFCI/F118に供給する。WFD情報は、端末10とプリンタ100との間にWFD接続を確立するために利用される情報であり、SSID「wfd」を含む。SSID「wfd」は、G/O状態として動作するプリンタ100が親局として動作する無線ネットワークを識別する情報である。SSID「wfd」は、メモリ134に予め記憶されていてもよいし、NFC接続が確立されることに応じて、プリンタ100によって生成されてもよい。BS情報は、メモリ134に記憶されているプリンタ100の公開鍵PPK1と、メモリ134に予め記憶されているチャネルリストと、プリンタ100のMACアドレスと、を含む。チャネルリストは、プリンタ100において予め決められている複数個の通信チャネル(即ちプリンタ100が利用可能な複数個の通信チャネル)を示す情報である。
【0042】
T106では、プリンタ100は、メモリ134内のWFDフラグ138を「OFF」から「ON」に変更し、デバイス状態からG/O状態に移行する。
【0043】
T108では、プリンタ100は、不可能状態から可能状態に移行する。不可能状態は、Wi-FiI/F116が、端末10からDPP Authentication Request(以下では、単に「AReq」と記載する)(後述の
図4のT210参照)を受信しても、DPP Authentication Response(以下では、単に「ARes」と記載する)(後述のT220参照)を送信しない状態である。可能状態は、Wi-FiI/F116が、端末10からAReqを受信することに応じて、AResを端末10に送信する状態である。即ち、プリンタ100は、不可能状態から可能状態に移行することによって、Auth(
図2のT25参照)を実行可能な状態になる。具体的には、本実施例では、不可能状態は、Wi-FiI/F116が、外部から信号を受信しても、当該信号をCPU132に供給しない状態である。また、可能状態は、Wi-FiI/F116が、外部から信号を受信することに応じて、当該信号をCPU132に供給し、当該信号に対する応答を送信する状態である。可能状態は、CPU132が外部から受信した信号を処理する状態であるので、不可能状態と比較して処理負荷が高い。なお、変形例では、不可能状態がWi-FiI/F116に通電されていない状態であり、可能状態がWi-FiI/F116に通電されている状態であってもよい。また、別の変形例では、不可能状態は、Wi-FiI/F116が、外部からAReqを受信しても、AReqが受信されたことを示す通知をCPU132に供給しない状態であり、可能状態は、Wi-FiI/F116が、外部からAReqを受信することに応じて、AReqが受信されたことを示す通知をCPU132に供給する状態であってもよい。
【0044】
T110では、プリンタ100のNFCI/F118は、確立済みのNFC接続を利用して、WFD情報とBS情報とを端末10に送信する。
【0045】
端末10は、T103において、アプリ38を起動すると、アプリ38に従って以下の各処理を実行する。端末10は、T110において、プリンタ100から、NFCI/F18を介して、WFD情報とBS情報とを受信する場合に、選択画面を表示部14に表示させる。選択画面は、プリンタ100とAP6との間にDPP接続を確立させるための処理を実行すべきことを示す「AP」ボタンと、端末10とプリンタ100との間にWFD接続を確立させるための処理を実行すべきことを示す「端末」ボタンと、を含む。即ち、換言すれば、選択画面は、DPP方式とWFD方式とのうちの一方の接続方式をユーザに選択させるための画面である。
【0046】
T120では、端末10は、選択画面内の「AP」ボタンを選択する操作をユーザから受け付ける。T120の処理が終了すると、
図3の処理が終了する。
【0047】
(Authentication(Auth);
図4)
続いて、
図4を参照して、
図2のT25のAuthの処理を説明する。端末10は、
図3のT120において、選択画面内の「AP」ボタンがユーザによって選択されることに応じて、T200において、端末10の公開鍵TPK1及び秘密鍵tsk1を生成する。次いで、端末10は、T202において、ECDH(Elliptic curve Diffie-Hellman key exchangeの略)に従って、生成済みの秘密鍵tsk1と、
図3のT110で受信されたプリンタ100の公開鍵PPK1と、を用いて、共有鍵SK1を生成する。そして、端末10は、T204において、生成済みの共有鍵SK1を用いてランダム値RV1を暗号化して、暗号化データED1を生成する。
【0048】
T210は、端末10は、Wi-FiI/F16を介して、
図3のT110で受信されたプリンタ100のMACアドレスを送信先として、AReqをプリンタ100に送信する。AReqは、認証の実行をプリンタ100に要求する信号である。ここで、端末10は、T110で受信されたチャネルリスト内の複数個の通信チャネルを順次利用して、AReqをプリンタ100に送信することを繰り返す。当該AReqは、T200で生成された端末10の公開鍵TPK1と、T204で生成された暗号化データED1と、端末10のcapabilityと、を含む。
【0049】
capabilityは、DPP方式をサポートしている機器において予め指定されている情報であり、DPP方式のConfiguratorのみとして動作可能であることを示す値と、DPP方式のEnrolleeのみとして動作可能であることを示す値と、Configurator及びEnrolleeのどちらとしても動作可能であることを示す値と、のいずれか1個の値を含む。なお、Configuratorは、Config(
図2のT30)において、NA(
図2のT35)で利用されるCOをEnrolleeに送信するデバイスを意味する。一方、Enrolleeは、Configにおいて、ConfiguratorからNAで利用されるCOを受信するデバイスを意味する。上記のように、本実施例では、端末10がAP用又はプリンタ用COを生成してAP6又はプリンタ100に送信する。従って、端末10のcapabilityは、Configuratorのみとして動作可能であることを示す値を含む。
【0050】
プリンタ100は、T210において、端末10から、Wi-FiI/F116を介して、AReqを受信する。上記のように、当該AReqは、プリンタ100のMACアドレスを送信先として送信される。従って、プリンタ100は、端末10から当該AReqを適切に受信することができる。
【0051】
また、プリンタ100は、
図3のT108で可能状態に移行すると、チャネルリスト内の複数個の通信チャネルのうちの1個の通信チャネルが利用されたAReqを受信することを監視する。上記のように、T210のAReqは、チャネルリスト内の複数個の通信チャネルを順次利用して送信される。従って、プリンタ100は、端末10から当該AReqを適切に受信することができる。
【0052】
次いで、プリンタ100は、AReqの送信元(即ち端末10)を認証するための以下の処理を実行する。具体的には、まず、プリンタ100は、T212において、ECDHに従って、当該AReq内の端末10の公開鍵TPK1と、メモリ134内に予め記憶されているプリンタ100の秘密鍵psk1と、を用いて、共有鍵SK1を生成する。ここで、T202で端末10によって生成される共有鍵SK1と、T212でプリンタ100によって生成される共有鍵SK1と、は同じである。従って、プリンタ100は、T214において、生成済みの共有鍵SK1を用いて、当該AReq内の暗号化データED1を適切に復号することができ、この結果、ランダム値RV1を取得することができる。プリンタ100は、暗号化データED1の復号が成功する場合には、当該AReqの送信元が
図3のT104でNFC接続が確立されたデバイスであると判断し、即ち、認証が成功したと判断し、T216以降の処理を実行する。一方、プリンタ100は、仮に、暗号化データED1の復号が成功しない場合には、当該AReqの送信元がT104でNFC接続が確立されたデバイスでないと判断し、即ち、認証が失敗したと判断し、T216以降の処理を実行しない。
【0053】
プリンタ100は、T216において、プリンタ100の新たな公開鍵PPK2及び新たな秘密鍵psk2を生成する。なお、変形例では、公開鍵PPK2及び秘密鍵psk2は、メモリ134に予め記憶されていてもよい。次いで、プリンタ100は、T217において、ECDHに従って、T210のAReq内の端末10の公開鍵TPK1と、生成済みのプリンタ100の秘密鍵psk2と、を用いて、共有鍵SK2を生成する。そして、プリンタ100は、T218において、生成済みの共有鍵SK2を用いて、取得済みのランダム値RV1及び新たなランダム値RV2を暗号化して、暗号化データED2を生成する。
【0054】
T220では、プリンタ100は、Wi-FiI/F116を介して、AResを端末10に送信する。当該AResは、T216で生成されたプリンタ100の公開鍵PPK2と、T218で生成された暗号化データED2と、プリンタ100のcapabilityと、を含む。当該capabilityは、Enrolleeのみとして動作可能であることを示す値を含む。
【0055】
端末10は、T220において、プリンタ100から、Wi-FiI/F16を介して、AResを受信することに応じて、当該AResの送信元(即ちプリンタ100)を認証するための以下の処理を実行する。具体的には、まず、端末10は、T222において、ECDHに従って、T200で生成された端末10の秘密鍵tsk1と、当該ARes内のプリンタ100の公開鍵PPK2と、を用いて、共有鍵SK2を生成する。ここで、T217でプリンタ100によって生成される共有鍵SK2と、T222で端末10によって生成される共有鍵SK2と、は同じである。従って、端末10は、T224において、生成済みの共有鍵SK2を用いて、当該ARes内の暗号化データED2を適切に復号することができ、この結果、ランダム値RV1及びRV2を取得することができる。端末10は、暗号化データED2の復号が成功する場合には、当該AResの送信元が
図3のT104でNFC接続が確立されたデバイスであると判断し、即ち、認証が成功したと判断し、T230以降の処理を実行する。一方、端末10は、仮に、暗号化データED2の復号が成功しない場合には、当該AResの送信元がT104でNFC接続が確立されたデバイスでないと判断し、即ち、認証が失敗したと判断し、T230以降の処理を実行しない。
【0056】
T230において、端末10は、Wi-FiI/F16を介して、Confirmをプリンタ100に送信する。Confirmは、端末10がConfiguratorとして動作し、かつ、プリンタ100がEnrolleeとして動作することを示す情報を含む。この結果、T232において、Configuratorとして動作することが端末10によって決定され、T234において、Enrolleeとして動作することがプリンタ100によって決定される。T234の処理が終了すると、
図4の処理が終了する。
【0057】
(Configuration(Config);
図5)
続いて、
図5を参照して、
図2のT30のConfigの処理を説明する。T300では、プリンタ100は、Wi-FiI/F116を介して、DPP Configuration Request(以下では、単に「CReq」と記載する)を端末10に送信する。当該CReqは、CO(即ちプリンタ100とAP6との間のDPP接続を確立するための情報)の送信を要求する信号である。
【0058】
端末10は、T300において、プリンタ100から、Wi-FiI/F16を介して、CReqを受信する。この場合、端末10は、T301において、端末10のメモリ34から、グループID「Group」と公開鍵TPK2と秘密鍵tsk2とを取得する。上述したように、端末10は、
図2のT15のConfigをAP6と実行済みであり、この際に、グループID「Group」と公開鍵TPK2と秘密鍵tsk2とを生成してメモリ34に記憶する。グループID「Group」は、プリンタ100とAP6との間のDPP接続が確立されることによって形成される無線ネットワークを識別する情報である。なお、変形例では、ユーザによって指定された文字列がグループIDとして利用されてもよい。即ち、T301では、端末10は、
図2のT15で記憶された各情報を取得する。次いで、端末10は、T302において、プリンタ用CO(
図2のT30参照)を生成する。具体的には、端末10は、以下の各処理を実行する。
【0059】
端末10は、端末10の公開鍵TPK2をハッシュ化することによって、ハッシュ値HVを生成する。また、端末10は、ハッシュ値HVと、グループID「Group」と、
図4のT220のARes内のプリンタ100の公開鍵PPK2と、の組み合わせをハッシュ化することによって、特定値を生成する。そして、端末10は、ECDSA(Elliptic Curve Digital Signature Algorithmの略)に従って、端末10の秘密鍵tsk2を用いて、生成済みの特定値を暗号化することによって、電子署名DSprを生成する。この結果、端末10は、ハッシュ値HVと、グループID「Group」と、プリンタ100の公開鍵PPK2と、電子署名DSprと、を含むプリンタ用Signed-Connector(以下では、Signed-Connectorのことを単に「SCont」と記載する)を生成することができる。そして、端末10は、プリンタ用SContと、端末10の公開鍵TPK2と、を含むプリンタ用COを生成する。
【0060】
T310では、端末10は、Wi-FiI/F16を介して、プリンタ用COを含むDPP Configuration Response(以下では、単に「CRes」と記載する)をプリンタ100に送信する。
【0061】
プリンタ100は、T310において、端末10から、Wi-FiI/F116を介して、CResを受信する。この場合、プリンタ100は、T312において、当該CRes内のプリンタ用COをメモリ134に記憶する。T312の処理が終了すると、
図5の処理が終了する。
【0062】
(Network Access(NA);
図6)
続いて、
図6を参照して、プリンタ100とAP6との間で実行される
図2のT35のNAの処理を説明する。上記のように、
図2のT20~T30と同様に、
図2のT5~T15の処理が端末10及びAP6の間で実行済みである。ただし、AP6は、
図3のT102~T110の処理を実行しない。AP6は、AP6の公開鍵APK1及び秘密鍵ask1を予め記憶している。そして、AP6の公開鍵APK1と、AP6のチャネルリストと、AP6のMACアドレスと、をコード化することによって得られるQRコードが、AP6の筐体に貼り付けられている。端末10が当該QRコードを撮影することによって、端末10及びAP6の間で
図4のT200以降の各処理と同様の各処理が実行される。この結果、AP6は、AP6の公開鍵APK2及び秘密鍵ask2を記憶し(
図4のT216参照)、さらに、端末10から受信されるAP用COを記憶する(
図5のT312参照)。AP用COは、AP用SContと、端末10の公開鍵TPK2と、を含む。当該公開鍵TPK2は、プリンタ用COに含まれる公開鍵TPK2と同じである。また、AP用SContは、ハッシュ値HVと、グループID「Group」と、AP6の公開鍵APK2と、電子署名DSapと、を含む。当該ハッシュ値HV及び当該グループID「Group」は、それぞれ、プリンタ用COに含まれるハッシュ値HV及びグループID「Group」と同じである。電子署名DSapは、ハッシュ値HVとグループID「Group」と公開鍵APK2との組み合わせをハッシュ化することによって得られる特定値が端末10の秘密鍵tsk2によって暗号化された情報であり、プリンタ用COに含まれる電子署名DSprとは異なる値である。
【0063】
プリンタ100は、T400において、Wi-FiI/F116を介して、プリンタ用SContを含むDPP Peer Discovery Request(以下では、単に「DReq」と記載する)をAP6に送信する。当該DReqは、認証の実行と、AP用SContの送信と、をAP6に要求する信号である。
【0064】
AP6は、T400において、プリンタ100からDReqを受信することに応じて、DReqの送信元(即ちプリンタ100)、及び、DReq内の各情報(即ち、ハッシュ値HV、「Group」、及び、公開鍵PPK2)を認証するための処理を実行する。具体的には、AP6は、T402において、まず、受信済みのプリンタ用SCont内のハッシュ値HV及びグループID「Group」が、それぞれ、記憶済みのAP用COに含まれるAP用SCont内のハッシュ値HV及びグループID「Group」に一致するのか否かに関する第1のAP判断処理を実行する。
図6のケースでは、AP6は、第1のAP判断処理で「一致する」と判断するので、DReqの送信元(即ちプリンタ100)の認証が成功したと判断する。なお、受信済みのプリンタ用SCont内のハッシュ値HVと、記憶済みのAP用COに含まれるAP用SCont内のハッシュ値HVと、が一致するということは、プリンタ用SCont及びAP用SContが、同じ装置(即ち、端末10)によって生成されたことを意味する。従って、AP6は、受信済みのプリンタ用SContの生成元(即ち、端末10)の認証が成功したとも判断する。さらに、AP6は、記憶済みのAP用COに含まれる端末10の公開鍵TPK2を用いて、受信済みのプリンタ用SCont内の電子署名DSprを復号する。
図6のケースでは、電子署名DSprの復号が成功するので、AP6は、電子署名DSprを復号することによって得られた特定値と、受信済みのプリンタ用SCont内の各情報(即ち、ハッシュ値HV、「Group」、及び、公開鍵PPK2)をハッシュ化することによって得られる値と、が一致するのか否かに関する第2のAP判断処理を実行する。
図6のケースでは、AP6は、第2のAP判断処理で「一致する」と判断するので、DReq内の各情報の認証が成功したと判断し、T404以降の処理を実行する。第2のAP判断処理で「一致する」と判断されることは、プリンタ用COがプリンタ100に記憶された後に、受信済みのプリンタ用SCont内の各情報(即ち、ハッシュ値HV、「Group」、及び、公開鍵PPK2)が第三者によって改ざんされていないことを意味する。一方、第1のAP判断処理で「一致しない」と判断される場合、電子署名DSprの復号が失敗する場合、又は、第2のAP判断処理で「一致しない」と判断される場合には、AP6は、認証が失敗したと判断し、T404以降の処理を実行しない。
【0065】
次いで、AP6は、T404において、ECDHに従って、取得済みのプリンタ100の公開鍵PPK2と、記憶済みのAP6の秘密鍵ask2と、を用いて、接続キー(即ち共有鍵)CKを生成する。
【0066】
T410では、AP6は、AP用SContを含むDPP Peer Discovery Response(以下では、単に「DRes」と記載する)をプリンタ100に送信する。
【0067】
プリンタ100は、T410において、Wi-FiI/F116を介して、AP6からDResを受信することに応じて、DResの送信元(即ちAP6)、及び、DRes内の各情報(即ち、ハッシュ値HV、「Group」、及び、公開鍵APK2)を認証するための処理を実行する。具体的には、プリンタ100は、T412において、まず、受信済みのAP用SCont内のハッシュ値HV及びグループID「Group」が、それぞれ、記憶済みのプリンタ用COに含まれるプリンタ用SCont内のハッシュ値HV及びグループID「Group」に一致するのか否かに関する第1のPR判断処理を実行する。
図6のケースでは、プリンタ100は、第1のPR判断処理で「一致する」と判断するので、DResの送信元(即ちAP6)の認証が成功したと判断する。なお、受信済みのAP用SCont内のハッシュ値HVと、記憶済みのプリンタ用COに含まれるプリンタ用SCont内のハッシュ値HVと、が一致するということは、プリンタ用SCont及びAP用SContが、同じ装置(即ち、端末10)によって生成されたことを意味する。従って、プリンタ100は、受信済みのAP用SContの生成元(即ち、端末10)の認証が成功したとも判断する。さらに、プリンタ100は、記憶済みのプリンタ用COに含まれる端末10の公開鍵TPK2を用いて、受信済みのAP用SCont内の電子署名DSapを復号する。
図6のケースでは、電子署名DSapの復号が成功するので、プリンタ100は、電子署名DSapを復号することによって得られた特定値と、受信済みのAP用SCont内の各情報(即ち、ハッシュ値HV、「Group」、及び、公開鍵APK2)をハッシュ化することによって得られる値と、が一致するのか否かに関する第2のPR判断処理を実行する。
図6のケースでは、プリンタ100は、第2のPR判断処理で「一致する」と判断するので、DRes内の各情報の認証が成功したと判断し、T414以降の処理を実行する。第2のPR判断処理で「一致する」と判断されることは、AP用COがAP6に記憶された後に、AP用SCont内の各情報(即ち、ハッシュ値HV、「Group」、及び、公開鍵APK2)が第三者によって改ざんされていないことを意味する。一方、第1のPR判断処理で「一致しない」と判断される場合、電子署名DSapの復号が失敗する場合、又は、第2のPR判断処理で「一致しない」と判断される場合には、プリンタ100は、認証が失敗したと判断し、T414以降の処理を実行しない。
【0068】
プリンタ100は、T414において、ECDHに従って、記憶済みのプリンタ100の秘密鍵psk2と、受信済みのAP用SCont内のAP6の公開鍵APK2と、を用いて、接続キーCKを生成する。ここで、T404でAP6によって生成される接続キーCKと、T414でプリンタ100によって生成される接続キーCKと、は同じである。これにより、DPP接続を確立するための接続キーCKがプリンタ100及びAP6の間で共有される。T414が終了すると、
図6の処理が終了する。
【0069】
上述したように、接続キーCKがプリンタ100及びAP6の間で共有された後に、
図2のT40において、プリンタ100及びAP6は、接続キーCKを利用して、4way-handshakeの通信を実行する。この結果、プリンタ100とAP6との間にDPP接続が確立される。プリンタ100は、AP6とのDPP接続を確立する場合に、WFDフラグ138を「ON」から「OFF」に変更する。
【0070】
(ケースB;
図7)
続いて、
図7を参照して、端末10とプリンタ100との間にWFD接続が確立されるケースBの処理を説明する。T500~T512は、
図3のT100~T112と同様である。端末10は、T520において、選択画面内の「端末」ボタンがユーザによって選択されることに応じて、T522において、端末10の接続対象の装置(即ち、プリンタ100)を検索するための検索処理を実行する。具体的には、以下の処理が実行される。
【0071】
まず、端末10は、Wi-FiI/F16を介して、Probe Request(以下では、単に「PReq」と記載する)をブロードキャストによって送信する。端末10は、PReqをブロードキャストによって送信すると、プリンタ100を含む1個以上のデバイスのそれぞれからPResを受信する。この場合、端末10は、1個以上のPResの中から、T510で受信されたSSID「wfd」を含むPResを特定することによって、接続対象のプリンタ100を特定する。そして、端末10は、Wi-FiI/F16を介して、特定済みのプリンタ100のSSID「wfd」を含むPReqをプリンタ100に送信する(即ちユニキャストによって送信する)。
【0072】
プリンタ100は、Wi-FiI/F116を介して、端末10からSSID「wfd」を含むPReqを受信することに応じて、PResを端末10に送信する。
【0073】
T530では、端末10は、プリンタ100との各種通信(Provision Discovery、Association、WPS Negotiation、4way-handshake)を実行する。端末10は、WPS Negotiationにおいて、プリンタ100から、メモリ134に記憶されているSSID「wfd」及びパスワードを含む無線設定情報を受信する。そして、端末10は、SSID「wfd」及びパスワードを利用して、プリンタ100との4way-handshakeの通信を実行して、プリンタ100とのWFD接続を確立する。
【0074】
プリンタ100は、T530において、端末10とのWFD接続が確立される場合に、T540において、可能状態から不可能状態に移行する。端末10とプリンタ100との間にWFD接続が確立される状況では、端末10とプリンタ100との間でDPP方式に従った通信が実行される可能性が低い。このような状況において、プリンタ100は、可能状態から不可能状態に移行するので、不可能状態と比較して処理負荷が高い可能状態が維持されることを抑制できる。
【0075】
端末10は、T550において、プリンタ100に印刷を実行させるための印刷操作をユーザから受け付けることに応じて、T552において、Wi-FiI/F16を介して、確立済みのWFD接続を利用して、印刷データをプリンタ100に送信する。
【0076】
プリンタ100は、T552において、端末10から、Wi-FiI/F116を介して、印刷データを受信する場合に、T554において、印刷データに従った印刷を印刷実行部120に実行させる。T554の処理が終了すると、
図7の処理が終了する。
【0077】
(ケースC;
図8)
続いて、
図8を参照して、ケースCの処理を説明する。ケースCでは、端末10及びプリンタ100は、AP6との通常Wi-Fi接続を確立している。このため、端末10のメモリ34及びプリンタ100のメモリ134は、AP6との通常Wi-Fi接続を確立するためのAP情報を記憶している。AP情報は、AP6によって形成される無線ネットワークを識別するSSID「ap6」を含む。
図8の初期状態では、プリンタ100は、メモリ134内にAP情報が記憶されているので、非設定モードとして動作している。
【0078】
T600及びT602は、
図3のT100及びT102と同様である。プリンタ100は、T604において、NFCI/F118からNFC接続が確立されたことを示す信号を取得し、プリンタ100の動作モードが非設定モードであると判断し、SSID「wfd」を含むWFD情報と、SSID「ap6」を含むAP情報と、をNFCI/F118に供給する。
【0079】
T606は、
図3のT106と同様である。T610では、プリンタ100のNFCI/F118は、確立済みのNFC接続を利用して、WFD情報とAP情報とを端末10に送信する。
【0080】
端末10は、T610において、プリンタ100から、NFCI/F18を介して、WFD情報とAP情報とを受信する場合に、受信済みのAP情報に含まれるSSID「ap6」とメモリ34に記憶されているAP情報内のSSID「ap6」とが一致すると判断する。この場合、端末10は、プリンタ100と現在通信可能であると判断して、T612において、プリンタ100と現在通信可能であることを示す通知画面を表示する。
【0081】
T650~T654は、
図7のT550~T554と同様である。プリンタ100は、T660において、T606でWFD138を「ON」に変更してから所定時間が経過したと判断し、T652において、WFD138を「ON」から「OFF」に変更する。T662の処理が終了すると、
図8の処理が終了する。
【0082】
上記のように、プリンタ100は、AP6との通常Wi-Fi接続が確立されている状況において、端末10とのNFC接続が確立される場合(T602)に、AP情報をNFCI/F118に供給する(T604)。これにより、NFCI/F118から端末10にAP情報が送信されるので、端末10は、受信済みのAP情報を利用して、プリンタ100と現在通信可能であるのか否かを判断することができる。そして、端末10は、プリンタ100と現在通信可能であると判断する場合に、通知画面を表示する。即ち、プリンタ100は、端末10とプリンタ100とが現在通信可能である状況において、プリンタ100とAP6との間のDPP接続を確立するための処理、又は、端末10とプリンタ100との間のWFD接続を確立するための処理を実行しない。従って、端末10及びプリンタ100の処理負荷が軽減できる。
【0083】
(ケースD;
図9)
続いて、
図9を参照して、プリンタ100においてモード移行操作が実行されるケースDの処理を説明する。ケースDでは、プリンタ100は、AP6との通常Wi-Fi接続を確立済みである。従って、プリンタ100は、SSID「ap6」を含むAP情報をメモリ134に記憶している。また、
図9の初期状態では、プリンタ100は、非設定モードとして動作している。
【0084】
プリンタ100は、T700において、プリンタ100の動作モードを移行させるための移行指示をユーザから受け付ける場合に、T702において、非設定モードから設定モードに移行する。T703及びT704は、
図3のT103及びT104と同様である。
【0085】
プリンタ100は、T705において、NFCI/F118からNFC接続が確立されたことを示す信号を取得し、プリンタ100の動作モードが設定モードであると判断し、WFD情報とBS情報とをNFCI/F118に供給する。T706~T712は、
図3のT106~T112と同様である。即ち、プリンタ100のNFCI/F118から端末10にWFD情報とBS情報とが送信され、端末10において選択画面が表示される。T712の処理が終了すると、
図9の処理が終了する。
【0086】
上記のように、プリンタ100とAP6との間に通常Wi-Fi接続が確立されている状況、即ち、プリンタ100が非設定モードとして動作する状況において、プリンタ100は、ユーザから移行指示を受け付ける場合に、設定モードに移行する(T702)。そして、プリンタ100は、端末10とのNFC接続が確立されることに応じて、WFD情報とBS情報とをNFCI/F118に供給する(T705)。この結果、WFD情報とBS情報とが、NFCI/F118から端末10に送信される(T710)。これにより、ユーザが端末10とプリンタ100との間でDPP方式に従った通信を実行させることを望む状況、例えば、ユーザがプリンタ100とAP6とは異なるAPとの間のDPP接続の確立を望む状況において、ユーザは、非設定モードとして動作するプリンタ100において移行指示を実行することによって、端末10とプリンタ100との間でDPP方式に従った通信を実行させることができる。
【0087】
(端末10の処理;
図10)
続いて、
図10を参照して、上記の
図2~
図9の処理を実現するために端末10のCPU32によって実行される処理を説明する。端末10のNFCI/F18とプリンタ100のNFCI/F118との間にNFC接続が確立される場合に、
図10の処理が実行される。
【0088】
S10では、端末10は、NFCI/F18を介して、確立済みのNFC接続を利用して、プリンタ100からBS情報を受信したのか否かを判断する。端末10は、プリンタ100からWFD情報とBS情報とを受信する場合(例えば
図3のT110)に、S10でYESと判断して、S15に進む。一方、端末10は、プリンタ100からWFD情報とAP情報とを受信する場合(例えば
図8のT610)に、S10でNOと判断して、S35に進む。
【0089】
S15では、端末10は、選択画面を表示部14に表示させる(例えば
図3のT112)。
【0090】
S20では、端末10は、選択画面おいて「端末」ボタンがユーザによって選択されたのか否かを判断する。端末10は、選択画面おいて「端末」ボタンがユーザによって選択される場合(例えば
図7のT520)に、S20でYESと判断して、S25に進む。一方、端末10は、選択画面において「AP」ボタンが選択される場合(例えば
図3のT120)に、S20でNOと判断して、S30に進む。
【0091】
S25では、端末10は、Wi-FiI/F16を介して、WFD方式に従って、プリンタ100との各種通信(Probe、Provision Discovery、Association、WPS Negotiation、4way-handshake)を実行して、プリンタ100とのWFD接続を確立する(例えば
図7のT522及びT530)。S25の処理が終了すると、
図10の処理が終了する。
【0092】
S30では、端末10は、Wi-FiI/F16を介して、プリンタ100とのAuth及びConfigを実行する(
図4及び
図5)。S30の処理が終了すると、
図10の処理が終了する。
【0093】
S35では、端末10は、受信済みのAP情報を利用して、プリンタ100と現在通信可能であるのか否かを判断する。端末10は、プリンタ100と現在通信可能であると判断する場合に、S35でYESと判断して、S40において、通知画面を表示部14に表示させる(例えば
図8のT612)。一方、端末10は、プリンタ100と現在通信不可能であると判断する場合に、S35でNOと判断して、S25において、受信済みのWFD情報を利用して、プリンタ100とのWFD接続を確立する。S25又はS40の処理が終了すると、
図10の処理が終了する。
【0094】
(プリンタ100の処理;
図11)
続いて、
図11を参照して、上記の
図2~
図9の処理を実現するためにプリンタ100のCPU132によって実行される処理を説明する。端末10のNFCI/F18とプリンタ100のNFCI/F118との間にNFC接続が確立される場合に、
図11の処理が実行される。
【0095】
S100では、プリンタ100は、AP6との通常Wi-Fi接続を確立中であるのか否かを判断する。プリンタ100は、メモリ134にAP情報が記憶されている場合に、S100でYESと判断して、S103に進む。一方、プリンタ100は、メモリ134にAP情報が記憶されていない場合に、S100でNOと判断して、S135に進む。
【0096】
S103では、プリンタ100は、非設定モードとして動作しているのか否かを判断する。プリンタ100は、非設定モードとして動作していると判断する場合(S103でYES)に、S105に進む。一方、プリンタ100は、設定モードとして動作していると判断する場合(S103でNO)に、S135に進む。
【0097】
S105では、プリンタ100は、WFD情報とAP情報とをNFCI/F118に供給する(例えば
図8のT604)。WFD情報は、G/O状態として動作するプリンタ100が親局として動作する無線ネットワークを識別するSSIDを含む。AP情報は、プリンタ100が通常Wi-Fi接続を確立しているAPが親局として動作する無線ネットワークを識別するSSIDを含む。
【0098】
S110では、プリンタ100は、メモリ134に記憶されているWFDフラグ138が「ON」を示すのか否かを判断する。プリンタ100は、WFDフラグ138が「ON」を示す場合に、S110でYESと判断して、S120に進む。一方、プリンタ100は、WFDフラグ138が「OFF」を示す場合に、S110でNOと判断して、S115に進む。
【0099】
S115では、プリンタ100は、メモリ134に記憶されているWFDフラグ138を「OFF」から「ON」に変更する(例えば
図8のT606)。この結果、プリンタ100は、デバイス状態として動作する。
【0100】
S120では、プリンタ100は、デバイス状態からG/O状態に移行する(例えば
図8のT606)。
【0101】
S125では、プリンタ100は、端末10から、Wi-FiI/F116を介して、PReqを受信することを監視する。プリンタ100は、端末10からPReqを受信する場合に、S125でYESと判断して、S130に進む。一方、プリンタ100は、端末10からPReqを受信することなく所定時間が経過する場合(例えば
図8のT660)に、S125でNOと判断して、S132に進む。
【0102】
S130では、プリンタ100は、WFD方式に従って、端末10との各種通信(Probe、Provision Discovery、Association、WPS Negotiation、4way-handshake)を実行して、端末10とのWFD接続を確立する。S130の処理が終了すると、
図11の処理が終了する。
【0103】
S132では、プリンタ100は、メモリ134に記憶されているWFDフラグを「ON」から「OFF」に変更する(例えば
図8のT662)。S132の処理が終了すると、
図11の処理が終了する。
【0104】
S135では、プリンタ100は、WFD情報とBS情報とをNFCI/F118に供給する(例えば
図3のT105)。BS情報は、プリンタ100の公開鍵と、チャネルリストと、プリンタ100のMACアドレスと、を含む。
【0105】
S140及びS145は、S110及びS115と同様である。S150では、プリンタ100は、デバイス状態からG/O状態に移行し、かつ、不可能状態から可能状態に移行する(例えば
図3のT106及びT108)。
【0106】
S155は、S125と同様である。なお、プリンタ100は、端末10から、Wi-FiI/F116を介して、PReqを受信する場合(例えば
図7のT522)に、S155でYESと判断して、S160に進む。一方、プリンタ100は、端末10から、Wi-FiI/F116を介して、AReqを受信する場合(例えば
図4のT210)に、S155でNOと判断して、S170に進む。
【0107】
S160は、S130と同様である。S165では、プリンタ100は、可能状態から不可能状態に移行する(例えば
図7のT540)。S165の処理が終了すると、
図11の処理が終了する。
【0108】
S170では、プリンタ100は、端末10とのAuth及びConfigを実行し(例えば
図4及び
図5)、AP6とのNA及び4-way handshakeを実行して(例えば
図6、
図2のT40)、AP6とのDPP接続を確立する。
【0109】
S175では、プリンタ100は、メモリ134に記憶されているWFDフラグを「ON」から「OFF」に変更する。S175の処理が終了すると、
図11の処理が終了する。
【0110】
(本実施例の効果)
本実施例によると、プリンタ100は、プリンタ100の公開鍵PPK1を含むBS情報と、SSID「wfd」を含むWFD情報と、をNFCI/F118に供給する(
図3のT105)。この結果、端末10は、プリンタ100とのNFC接続が確立される場合(
図3のT104)に、プリンタ100からBS情報とWFD情報とを受信して(T110)、選択画面を表示する(T112)。端末10は、選択画面において「AP」ボタンがユーザによって選択される場合(T120)、即ち、プリンタ100とAP6との間のDPP接続を確立すべきと判断する場合に、AReqをプリンタ100に送信する(
図4のT210)。プリンタ100は、端末10からAReqを受信する場合に、AResを端末10に送信する(T220)。端末10は、プリンタ100からAResを受信する場合に、プリンタ用COを含むCResをプリンタ100に送信する(
図5のT310)。プリンタ100は、端末10からCResを受信する場合に、プリンタ用COを利用してプリンタ100とAP6との間にDPP接続を確立する(
図2のT35及びT40)。即ち、プリンタ100は、DPP方式に従ってAP6とのWi-Fi接続(即ち、DPP接続)を確立することができる。一方、端末10は、選択画面において「端末」ボタンがユーザによって選択される場合(
図7のT520)、即ち、端末10とプリンタ100との間にWFD接続を確立すべきと判断する場合に、WFD情報に含まれるSSID「wfd」を含むPReqをプリンタ100に送信する(T522)。プリンタ100は、端末10からPReqを受信する場合に、端末10とプリンタ100との間にWFD接続を確立する(T530)。即ち、プリンタ100は、WFD方式に従って端末10とのWFD接続を確立することができる。従って、プリンタ100と端末10との間にNFC接続が確立されることに応じて、複数の接続方式のうちの適切な接続方式に従って、プリンタ100がNFC接続とは異なるDPP接続又はWFD接続を確立することができる。
【0111】
(対応関係)
プリンタ100、端末10、AP6が、それぞれ、「通信装置」、「第1の外部装置」、「第2の外部装置」の一例である。NFCI/F18、NFCI/F118が、それぞれ、「第1の外部装置」の「第1の無線インターフェース」、「通信装置」の「第1の無線インターフェース」の一例である、Wi-FiI/F16が、「第1の外部装置」の「第2の無線インターフェース」及び「第3の無線インターフェース」の一例である。Wi-FiI/F116が、「通信装置」の「第2の無線インターフェース」及び「第3の無線インターフェース」の一例である。プリンタ100の公開鍵PPK1、SSID「wfd」が、それぞれ、「第1の公開鍵(又は公開鍵)」、「特定情報」の一例である。
図3のT104のNFC接続、
図2のT40のDPP接続、
図7のT530のWFD接続が、それぞれ、「第1の無線接続」、「第2の無線接続」、「第3の無線接続」の一例である。DPP方式、WFD方式が、それぞれ、「第1の接続方式」、「第2の接続方式」の一例である。
図4のT210のAReq、T220のARes、プリンタ用COが、それぞれ、「第1の認証要求(又は認証要求)」、「第1の認証応答(又は認証応答)」、「第1の接続情報(又は接続情報)」の一例である。T522の検索処理で端末10から送信されるSSID「wfd」を含むPReqが、「特定信報」の一例である。
【0112】
図7のT552の印刷データが、「目的データ」の一例である。非設定モード、設定モードが、それぞれ、「第1のモード」、「第2のモード」の一例である。
図8のT610のAP情報が、「判断情報」の一例である。
図10のS20でNOと判断される場合が、「第2の無線接続を確立すべきと判断される場合」の一例であり、S20でYESと判断される場合が、「第3の無線接続を確立すべきと判断される場合」の一例である。
【0113】
図11のS135の処理、
図4のT220の処理、
図5のT310の処理、
図2のT35及びT40の処理、
図7のT530の処理が、それぞれ、「通信装置」の「第1の供給部」、「認証応答送信部」、「接続情報受信部」、「第1の確立部」、「第2の確立部」によって実行される処理の一例である。
【0114】
図10のS10の処理、S20の処理、
図4のT210の処理、T220の処理、
図5のT310の処理、
図7のT522の処理、T530の処理が、それぞれ、「第1の外部装置」の「受信部」、「判断部」、「認証要求送信部」、「認証応答受信部」、「接続情報送信部」、「特定信号送信部」、「確立部」によって実行される処理の一例である。
【0115】
(第2実施例;
図12及び
図13)
続いて、
図12及び
図13を参照して、第2実施例を説明する。第2実施例では、
図10の処理に代えて
図12の処理が端末10によって実行され、かつ、
図11の処理に代えて
図12の処理がプリンタ100によって実行される点が第1実施例とは異なる。まず、
図12を参照して、端末10のCPU32によって実行される処理を説明する。
【0116】
S210は、
図10のS10と同様である。なお、端末10は、プリンタ100からWFD情報とBS情報とを受信する場合に、S210でYESと判断して、S215に進む。S215~S230は、
図10のS15~S30と同様である。一方、端末10は、プリンタ100からNFC方式に従ったReadコマンドを受信する場合に、S210でNOと判断して、S235に進む。
【0117】
S235では、端末10は、端末10の公開鍵と、端末10において予め決められている複数個の通信チャネル(即ち端末10が利用可能な複数個の通信チャネル)を示すチャネルリストと、端末10のMACアドレスと、をNFCI/F18に供給する。この結果、NFCI/F18は、確立済みのNFC接続を利用して、公開鍵とチャネルリストとMACアドレスとをプリンタ100に送信する。
【0118】
S240では、端末10は、端末10のcapabilityの値を、Configuratorとして動作可能であることを示す値からEnrolleeとして動作可能であることを示す値に変更する。
【0119】
S245では、端末10は、不可能状態から可能状態に移行する。即ち、端末10は、チャネルリスト内の複数個の通信チャネルのうちの1個の通信チャネルが利用されたAReqを受信することを監視する処理を開始する。
【0120】
S250では、まず、端末10は、プリンタ100とのAuth及びConfigを実行する。Authでは、端末10は、プリンタからAReqを受信し、AResをプリンタ100に送信し、プリンタ100からConfirmを受信して、Enrolleeとして動作することを決定する。また、Configでは、端末10は、CReqをプリンタ100に送信して、プリンタ100から端末用COを含むCRes受信し、端末10とAP6との間にDPP接続を確立するための端末用COを記憶する。次いで、端末10は、端末用COを利用して、AP6とのNAを実行して、AP6とのDPP接続を確立するための接続キーをAP6と共有し、AP6との4-way handshakeを実行して、AP6とのDPP接続を確立する。S250の処理が終了すると、
図12の処理が終了する。
【0121】
(プリンタの処理;
図13)
続いて、
図13を参照して、プリンタ100のCPU132によって実行される処理を説明する。S300は、
図11のS100と同様である。プリンタ100は、AP6との通常Wi-Fi接続を確立中であると判断する場合(S300でYES)に、S305に進む。一方、プリンタ100は、AP6との通常Wi-Fi接続を確立中でないと判断する場合(S300でNO)に、S335に進む。S335~S375は、
図11のS135~S175と同様である。
【0122】
S305では、プリンタ100は、プリンタ100のcapabilityの値を、Enrolleeとして動作可能であることを示す値からConfiguratorとして動作可能であることを示す値に変更する。
【0123】
S310では、プリンタ100は、Readコマンドの送信をNFCI/F118に実行させる。この結果、NFCI/F118は、確立済みのNFC接続を利用して、Readコマンドを端末10に送信する。
【0124】
S315では、プリンタ100は、端末10から、NFCI/F118を介して、端末10の公開鍵とチャネルリストとMACアドレスとを受信する。
【0125】
S320では、プリンタ100は、端末10とのAuth及びConfigを実行する。Authでは、プリンタ100は、AReqを端末10に送信して、端末10からAResを受信し、Confirmを端末10に送信して、Configuratorとして動作することを決定する。また、Configでは、プリンタ100は、端末10からCReqを受信して、端末用COを生成し、端末用COを含むCResを端末10に送信する。S320の処理が終了すると、
図13の処理が終了する。
【0126】
(本実施例の効果)
本実施例では、プリンタ100は、AP6との通常Wi-Fi接続を確立中であると判断する場合(S300でYES)に、NFCI/F118を介して、Readコマンドを端末10に送信し(S310)、端末10から端末10の公開鍵とチャネルリストとMACアドレスとを受信し(S315)、Wi-FiI/F116を介して、端末10とのAuth及びConfigを実行して、端末用COを端末10に送信する(S320)。この結果、端末10は、プリンタ100から端末用COを受信して、端末用COを利用してAP6とのNAを実行し、AP6との4-way handshakeを実行して、AP6とのDPP接続を確立することができる。これにより、プリンタ100は、端末10とAP6を介した通信を実行可能となる。
【0127】
(対応関係)
図13のS315の端末10の公開鍵が、「第2の公開鍵」の一例である。S320のAuthでプリンタから端末10に送信されるAReq、端末10からプリンタ100に送信されるAResが、それぞれ、「第2の認証要求」、「第2の認証応答」の一例である。端末用COが、「第2の接続情報」の一例である。
【0128】
以上、本発明の具体例を詳細に説明したが、これらは例示にすぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には以上に例示した具体例を様々に変形、変更したものが含まれる。上記の実施例の変形例を以下に列挙する。
【0129】
(変形例1)
図2のT35において、端末10とプリンタ100との間でNAの処理が実行されて、端末10とプリンタ100との間でDPP接続が確立されてもよい。即ち、「第2の外部装置」は、「第1の外部装置」と同じ装置であってもよい。
【0130】
(変形例2)上記の実施例では、端末10を利用して、プリンタ100とAP6との間のDPP接続が確立される。これに代えて、例えば、端末10を利用して、プリンタ100と、G/Oとして動作する他のデバイス(即ち親局として動作するデバイス)と、の間のDPP接続が確立されてもよい。また、例えば、端末10を利用して、G/Oとして動作するプリンタ100(即ち親局として動作するデバイス)と、他のデバイス(即ち子局として動作するデバイス)と、の間のDPP接続が確立されてもよい。即ち、「第2の外部装置」は、「アクセスポイント」でなくてもよい。
【0131】
(変形例3)端末10及びプリンタ100が、さらに、Bluetooth(登録商標、以下では、単に「BT」と記載する)方式に従った無線通信を実行するためのBTI/Fを備えていてもよい。なお、上記のBT方式は、BT方式バージョン4.0以上(いわゆるBlue Tooth Low Energy)を含む。この場合、プリンタ100は、例えば、
図3のT105において、WFD情報に代えて、BT方式に従った無線接続(以下では、単に「BT接続」と記載する)を確立するためのBT情報をNFCI/F118に供給する。この結果、NFCI/F118は、NFC接続を利用して、BT情報とBS情報とを端末10に送信する。端末10は、プリンタ100からBT情報とBS情報とを受信する場合に、選択画面を表示部14に表示させ、選択画面において「端末」ボタンが選択されることに応じて、受信済みのBT情報を利用して、プリンタ100とのBT接続を確立する。本変形例では、端末10のBTI/Fが、「第1の外部装置」の「第3の無線インターフェース」の一例であり、プリンタ100のBTI/Fが、「通信装置」の「第3の無線インターフェース」の一例である。また、BT方式、BT接続が、それぞれ、「第2の接続方式」、「第3の無線接続」の一例である。
【0132】
(変形例4)プリンタ100は、AP6との通常Wi-Fi接続が確立されている場合にも、設定モードとして動作してもよい。本変形例では、「モード移行部」、「第2の供給部」が省略可能である。
【0133】
(変形例5)
図11のS165(又は
図13のS365)の処理が省略されてもよい。本変形例では、「第2の状態移行部」が省略可能である。
【0134】
(変形例6)
図10のS15(又は
図12のS215)の処理が省略されてもよい。この場合、端末10は、プリンタ100からWFD情報とBS情報とを受信する場合に、メモリ34内に公開鍵TPK2及び秘密鍵tsk2が記憶されているのか否か、即ち、AP6とのConfigを実行済みであるのか否かを判断してもよい。端末10は、AP6とのConfigを実行済みであると判断する場合に、S30において、プリンタ100とのAuth及びConfigを実行する。一方、端末10は、AP6とのConfigを実行済みでないと判断する場合に、S25において、プリンタ100とのWFD接続を確立する。本変形例では、AP6とのConfigを実行済みであると判断する場合が、「第2の無線接続を確立すべきと判断される場合」の一例であり、AP6とのConfigを実行済みでないと判断する場合が、「第3の無線接続を確立すべきと判断される場合」の一例である。
【0135】
(変形例7)
図11のS105において、プリンタ100は、AP情報に代えて、プリンタ100のMACアドレスをNFCI/F118に供給してもよい。端末10は、プリンタ100から、NFCI/F18を介して、WFD情報とMACアドレスと受信する場合に、プリンタ100からBS情報を受信していないと判断し(
図10のS10でNO)、S35において、受信済みのMACアドレスを利用して、プリンタ100と現在通信可能であるのか否かを判断する。具体的には、端末10は、まず、AP6との通常Wi-Fi接続を確立しているのか否かを判断する。端末10は、AP6との通常Wi-Fiを確立していないと判断する場合に、S35でNOと判断して、S25に進む。一方、端末10は、AP6との通常Wi-Fi接続を確立していると判断する場合に、Wi-FiI/F16を介して、AP6を利用して、要求信号をブロードキャストによって送信する。端末10は、要求信号をブロードキャストによって送信することに応じて、AP6に接続されている1個以上のデバイスのそれぞれから要求信号に対する応答信号を受信する。この場合、端末10は、1個以上の応答信号の中に受信済みのプリンタ100のMACアドレスを含む応答信号が含まれているのか否かを判断する。端末10は、1個以上の応答信号の中にプリンタ100のMACアドレスを含む応答信号が含まれていると判断する場合に、S35でYESと判断して、S40に進む。一方、端末10は、1個以上の応答信号の中にプリンタ100のMACアドレスを含む応答信号が含まれていないと判断する場合に、S35でNOと判断して、S25に進む。本変形例では、プリンタ100のMACアドレスが、「判断情報」の一例である。
【0136】
(変形例8)上記の実施例では、端末10は、アプリ38に従って各処理を実行したが、OSプログラム36に従って、以下の各処理を実行してもよい。即ち、端末10は、OSプログラム36に従って、プリンタ100とのNFC接続を確立し、プリンタ100から、NFCI/F18を介して、WFD情報とBS情報とを受信する。この場合、端末10は、アプリ38が起動済みであるのか否かを判断する。端末10は、アプリ38が起動済みでないと判断する場合に、プリンタ100とAP6との間のDPP接続を確立すべきと判断し、
図4及び
図5と同様の処理を実行する。一方、端末10は、アプリ38が起動済みであると判断する場合に、端末10とAP6との間のWFD接続を確立すべきと判断し、
図7のT522及びT530と同様の処理を実行する。本変形例においても、プリンタ100は、端末10からAReqを受信する場合に、AResを端末10に送信し、端末10からプリンタ用COを含むCResを受信し、プリンタ用COを利用してAP6とのDPP接続を確立することができる。一方、プリンタ100は、端末10からSSID「wfd」を含むPReqを受信する場合に、端末10とのWFD接続を確立することができる。従って、プリンタ100と端末10との間にNFC接続が確立されることに応じて、複数の接続方式のうちの適切な接続方式に従って、プリンタ100がNFC接続とは異なるDPP接続又はWFD接続を確立することができる。
【0137】
(変形例9)共有鍵(例えばSK1)を生成するための処理(例えば、
図4のT202、T212)は、ECDHに従った上記の実施例の処理に限らず、ECDHに従った他の処理であってもよい。また、共有鍵を生成するための処理は、ECDHに従った処理に限らず、他の方式(例えば、DH(Diffie-Hellman key exchangeの略)等)に従った処理が実行されてもよい。また、上記の実施例では、電子署名DSap及びDSprが、ECDSAに従って生成されたが、他の方式(例えば、DSA(Digital Signature Algorithmの略)、RAS(Rivest-Shamir-Adleman cryptosystemの略)等)に従って生成されてもよい。
【0138】
(変形例10)端末10が、NFCI/F18に代えて、NFC方式とは異なる無線方式(例えば、BT方式、TransferJet方式)に従った異なる無線インターフェースを備えていてもよい。この場合、プリンタ100も、NFCI/F118に代えて、NFC方式とは異なる無線方式に従った異なる無線インターフェースを備えていてもよい。プリンタ100は、例えば、
図3のT110において、当該無線インターフェースを介して、WFD情報とBS情報とを端末10に送信する。本変形例では、NFC方式とは異なる無線方式に従った異なる無線インターフェースが、「第1の無線インターフェース」の一例である。
【0139】
(変形例11)例えば、プリンタ100は、WFD方式のG/Oとして動作することに代えて、いわゆるSoftAPとして動作してもよい。この場合、例えば、
図3のT105では、プリンタ100は、プリンタ100がSoftAPとして動作する無線ネットワークで利用されるSSID及びパスワードを生成して、当該SSID及びパスワードを含むSoftAP情報をNFCI/F118に供給する。この結果、T110では、NFCI/F118は、確立済みのNFC接続を利用して、SoftAP情報とBS情報とをNFCI/F18に送信する。本変形例では、SoftAP情報内のSSIDが、「特定情報」の一例である。
【0140】
(変形例12)プリンタ100は、
図11のS155(又は
図13のS355)でNOと判断する場合、即ち、端末10からWi-FiI/F116を介して、AReqを受信する場合(例えば
図4のT210)に、S170の処理を実行する前に、WFDフラグを「ON」から「OFF」に変更してもよい。この場合、プリンタ100は、S170(又はS370)の処理が終了する場合に、
図11(又は
図13)の処理を終了する。端末10からAReqが受信される状況では、端末10とプリンタ100との間でWFD方式に従った通信が実行される可能性が低い。このような状況において、プリンタ100は、WFDフラグを「ON」から「OFF」に変更するので、WFDフラグが「ON」を示す状態、即ち、プリンタ100がWFD方式に従って動作可能な状態が維持されることを抑制できる。
【0141】
(変形例13)「通信装置」は、プリンタでなくてもよく、スキャナ、多機能機、携帯端末、PC、サーバ等の他のデバイスであってもよい。
【0142】
(変形例14)上記の各実施例では、
図2~
図13の各処理がソフトウェア(即ち、アプリ38、プログラム136)によって実現されるが、これらの各処理のうちの少なくとも1つが論理回路等のハードウェアによって実現されてもよい。
【0143】
また、本明細書または図面に説明した技術要素は、単独であるいは各種の組合せによって技術的有用性を発揮するものであり、出願時請求項記載の組合せに限定されるものではない。また、本明細書または図面に例示した技術は複数目的を同時に達成するものであり、そのうちの一つの目的を達成すること自体で技術的有用性を持つものである。
【符号の説明】
【0144】
2:通信システム、6:AP、10:端末、12,112:操作部、14,114:表示部、16,116:Wi-FiI/F、18,118:NFCI/F、30,130:制御部、32,132:CPU、34,134:メモリ、36:OSプログラム、38:接続アプリケーション、100:プリンタ、120:印刷実行部、136:プログラム、138:WFDフラグ