(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-12-16
(45)【発行日】2022-12-26
(54)【発明の名称】情報処理方法、情報処理システム、および通信装置
(51)【国際特許分類】
H04L 9/32 20060101AFI20221219BHJP
G09C 1/00 20060101ALI20221219BHJP
H04L 9/08 20060101ALI20221219BHJP
G06F 21/60 20130101ALI20221219BHJP
【FI】
H04L9/32 200A
G09C1/00 640E
H04L9/08 C
H04L9/08 E
G06F21/60
(21)【出願番号】P 2018143281
(22)【出願日】2018-07-31
【審査請求日】2021-07-29
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】100126240
【氏名又は名称】阿部 琢磨
(74)【代理人】
【識別番号】100124442
【氏名又は名称】黒岩 創吾
(72)【発明者】
【氏名】炭田 知成
【審査官】青木 重徳
(56)【参考文献】
【文献】特開2018-032910(JP,A)
【文献】特開2017-184169(JP,A)
【文献】特開2016-197790(JP,A)
【文献】特開2011-077740(JP,A)
【文献】特開平07-303104(JP,A)
【文献】米国特許出願公開第2017/0201886(US,A1)
【文献】米国特許出願公開第2018/0063102(US,A1)
【文献】足立 英治,接続&データ通信を司る上位層のプロトコル,Interface,日本,CQ出版株式会社,2015年08月01日,第41巻 第8号,p. 107-113,特設:保存版 最新Bluetooth Low Energy通信規格 第4章
(58)【調査した分野】(Int.Cl.,DB名)
H04L 9/32
G09C 1/00
H04L 9/08
G06F 21/60
(57)【特許請求の範囲】
【請求項1】
所定の無線通信により通信を行う第1の通信部を有する通信装置と、前記所定の無線通信により通信を行う第2の通信部を有する情報処理装置を含む情報処理システムにおける情報処理方法であって、
前記通信装置が
、鍵情報を、前記情報処理装置が前記第2の通信部により参照可能な記憶領域に
、第1の要因が発生した場合と前記第1の要因と異なる第2の要因が発生した場合に少なくとも書き込む書き込み工程と、
前記通信装置が、前記鍵情報が前記第1の要因が発生したことで前記記憶領域に前記書き込み工程において書き込まれてからの経過時間が第1の時間を越えた場合に、前記記憶領域に記憶された前記鍵情報が前記情報処理装置によって取得されないようにする制御を行い、前記通信装置が、前記鍵情報が前記第2の要因が発生したことで前記記憶領域に前記書き込み工程において書き込まれてからの経過時間が前記第1の時間と異なる第2の時間を越えた場合に、前記制御を行う制御工程と、
前記制御が行われる前において、前記情報処理装置が前記第2の通信部により、前記書き込み工程において前記通信装置により前記記憶領域に書き込まれた前記鍵情報を、前記第1の通信部から読み込む読み込み工程と、
前記情報処理装置が、前記読み込み工程において読み込まれた前記鍵情報に基づき復号鍵を生成し、前記生成された復号鍵に基づき所定の条件が満たされた場合に、前記通信装置を登録するための登録処理を実行する登録工程と、
を有
することを特徴とする情報処理方法。
【請求項2】
前記第1の要因は、前記通信装置における所定のユーザ操作であることを特徴とする請求項1に記載の情報処理方法。
【請求項3】
前記情報処理装置は、前記通信装置において前記所定のユーザ操作を行うことを促す表示を行う表示工程を実行することを特徴とする請求項2に記載の情報処理方法。
【請求項4】
前記第2の要因は、前記表示工程における前記表示がなく行われる、前記所定のユーザ操作とは異なる前記通信装置におけるユーザ操作であり、
前記第1の時間よりも、前記第2の時間の方が長いことを特徴とする請求項3に記載の情報処理方法。
【請求項5】
前記第2の要因は、所定の状態である前記通信装置の電源をオンにする操作であり、
前記通信装置は、前記通信装置が前記所定の状態でないときに前記通信装置の電源をオンにするユーザ操作が行われたとしても、前記鍵情報を前記記憶領域に書き込まないことを特徴とする請求項4に記載の情報処理方法。
【請求項6】
前記所定の状態は、前記通信装置において所定のフラグがセットされている状態であり、
前記書き込み工程において前記通信装置は、前記通信装置の電源がオンになったときに前記所定のフラグがセットされていることを条件に、前記鍵情報を前記記憶領域に書き込むことを特徴とする請求項5に記載の情報処理方法。
【請求項7】
前記制御工程において前記通信装置は、前記経過時間
に基づいて前記制御が実行される前でも、前記登録処理の後における所定の通知が前記情報処理装置から受信された場合には、前記制御を行うことを特徴とする請求項1乃至6のいずれか1項に記載の情報処理方法。
【請求項8】
前記書き込み工程において前記通信装置は、前記鍵情報と、前記鍵情報により生成される復号鍵に対応する暗号鍵により暗号化が行われた所定の第1の情報とを、前記記憶領域に書き込み、
前記読み込み工程において前記情報処理装置は、前記第2の通信部により、前記書き込み工程において前記通信装置により前記記憶領域に書き込まれた前記鍵情報と前記第1の情報を、前記第1の通信部から読み込み、
前記情報処理装置には、前記通信装置との通信に関わらず、前記第1の情報に対応する所定の第2の情報が予め記憶されており、
前記登録工程において前記情報処理装置は、前記鍵情報に基づいて復号鍵を生成し、生成された前記復号鍵により前記第1の情報が復号化され且つ復号化された前記第1の情報が前記第2の情報に対応する場合に、前記登録処理を行うことを特徴とする請求項1乃至7のいずれか1項に記載の情報処理方法。
【請求項9】
前記第1の書き込み工程において前記通信装置は、前記鍵情報に基づいて暗号鍵を作成し、作成された暗号鍵により前記第1の情報を暗号化して、前記記憶領域に書き込むことを特徴とする請求項8に記載の情報処理方法。
【請求項10】
前記情報処理装置が、前記登録工程において前記登録処理が実行されたことを条件に、前記登録処理が実行される前に取得可能でなかった情報を、前記第1の通信部から取得する取得工程をさらに有することを特徴とする請求項1乃至9のいずれか1項に記載の情報処理方法。
【請求項11】
前記情報処理装置は、前記取得工程において取得された情報を、前記読み込み工程において読み込まれた前記鍵情報により生成された復号鍵により復号化することを特徴とする請求項10に記載の情報処理方法。
【請求項12】
前記所定の無線通信は、Bluetooth Low Energy(BLE)であることを特徴とする請求項1乃至11のいずれか1項に記載の情報処理方法。
【請求項13】
前記通信装置は、印刷を行うプリンタであることを特徴とする請求項1乃至12のいずれか1項に記載の情報処理方法。
【請求項14】
前記情報処理装置が前記第2の通信部により前記鍵情報を前記第1の通信部から読み込んだ後に、前記制御が実行された場合、前記所定の条件が満たされないことを特徴とする請求項1乃至13のいずれか1項に記載の情報処理方法。
【請求項15】
所定の無線通信により通信を行う第1の通信部を有する通信装置と、前記所定の無線通信により通信を行う第2の通信部を有する情報処理装置を含む情報処理システムであって、
前記通信装置は、
鍵情報を、前記情報処理装置が前記第2の通信部により参照可能な記憶領域に
、第1の要因が発生した場合と前記第1の要因と異なる第2の要因が発生した場合に少なくとも書き込む書き込み手段
と、
前記通信装置が、前記鍵情報が前記第1の要因が発生したことで前記記憶領域に前記書き込み工程において書き込まれてからの経過時間が第1の時間を越えた場合に、前記記憶領域に記憶された前記鍵情報が前記情報処理装置によって取得されないようにする制御を行い、前記通信装置が、前記鍵情報が前記第2の要因が発生したことで前記記憶領域に前記書き込み工程において書き込まれてからの経過時間が前記第1の時間と異なる第2の時間を越えた場合に、前記制御を行う制御手段と、
を有し、
前記情報処理装置は、
前記制御が行われる前において、前記第2の通信部により、前記書き込み手段により前記通信装置により前記記憶領域に書き込まれた前記鍵情報を、前記第1の通信部から読み込む読み込み手段と、
前記読み込み手段により読み込まれた前記鍵情報に基づき復号鍵を生成し、前記生成された復号鍵に基づき所定の条件が満たされた場合に、前記通信装置を登録するための登録処理を実行する登録手段と、
を有
することを特徴とする情報処理システム。
【請求項16】
所定の無線通信により
、鍵情報を他の装置の記憶領域から読み込む読み込み手段と、前記読み込み手段により読み込まれた前記鍵情報に基づき復号鍵を生成し、前記生成された復号鍵に基づき所定の条件が満たされた場合に、前記他の装置を登録するための登録処理を実行する登録手段とを有する情報処理装置と前記所定の無線通信により通信を行う通信装置であって、
前記鍵情報を、前記情報処理装置が前記所定の無線通信により参照可能な記憶領域に
、第1の要因が発生した場合と前記第1の要因と異なる第2の要因が発生した場合に少なくとも書き込む書き込み手段と、
前記書き込み手段により前記鍵情報が
前記第1の要因が発生したことで前記記憶領域に書き込まれてからの経過時間が
第1の時間を越えた場合に、
前記記憶領域に記憶された前記鍵情報が前記情報処理装置によって取得されないようにする制御を
行い、前記鍵情報が前記第2の要因が発生したことで前記記憶領域に前記書き込み工程において書き込まれてからの経過時間が前記第1の時間と異なる第2の時間を越えた場合に、前記制御を行う制御手段と、
を有
することを特徴とする通信装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、所定の無線通信により通信を行う情報処理方法、情報処理システム、および通信装置に関する。
【背景技術】
【0002】
近年、装置間での無線通信が普及している。また、その無線通信で種々のデータがやり取りされる前に、装置間で認証や相手装置の登録を行う技術がある。特許文献1には、一方の装置が公開鍵の送信を行い、もう一方の装置が該公開鍵により暗号化したデータを返信することで認証を行う方法が開示されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
仮に、無線通信のための認証が常に可能であった場合、ユーザが意図しないタイミングで、意図しない他のユーザにより認証が行われてしまう可能性があり、即ちセキュリティーレベルが低下してしまう可能性がある。そのため、認証が可能な状態に時間的制限を設けることが考えられる。
【0005】
しかしながら、例えばその制限時間が短い場合、無線通信による認証を行わせるユーザ操作が無効になる可能性が高まり、ユーザの利便性が低下する可能性がある一方、その制限時間が長い場合、セキュリティーレベルが低下してしまう可能性がある。
【0006】
そこで本発明は、通信相手の装置を登録するための処理において、ユーザの利便性とセキュリティーレベルの確保とを両立させることができる情報処理方法、情報処理システム、および通信装置を提供することを目的とする。
【課題を解決するための手段】
【0007】
本発明は、上記の課題を解決するためになされたものであり、所定の無線通信により通信を行う第1の通信部を有する通信装置と、前記所定の無線通信により通信を行う第2の通信部を有する情報処理装置を含む情報処理システムにおける情報処理方法であって、
前記通信装置が、鍵情報を、前記情報処理装置が前記第2の通信部により参照可能な記憶領域に、第1の要因が発生した場合と前記第1の要因と異なる第2の要因が発生した場合に少なくとも書き込む書き込み工程と、前記通信装置が、前記鍵情報が前記第1の要因が発生したことで前記記憶領域に前記書き込み工程において書き込まれてからの経過時間が第1の時間を越えた場合に、前記記憶領域に記憶された前記鍵情報が前記情報処理装置によって取得されないようにする制御を行い、前記通信装置が、前記鍵情報が前記第2の要因が発生したことで前記記憶領域に前記書き込み工程において書き込まれてからの経過時間が前記第1の時間と異なる第2の時間を越えた場合に、前記制御を行う制御工程と、
前記制御が行われる前において、前記情報処理装置が前記第2の通信部により、前記書き込み工程において前記通信装置により前記記憶領域に書き込まれた前記鍵情報を、前記第1の通信部から読み込む読み込み工程と、前記情報処理装置が、前記読み込み工程において読み込まれた前記鍵情報に基づき復号鍵を生成し、前記生成された復号鍵に基づき所定の条件が満たされた場合に、前記通信装置を登録するための登録処理を実行する登録工程と、を有することを特徴とする。
【発明の効果】
【0008】
本発明によれば、通信相手の装置を登録するための処理において、ユーザの利便性とセキュリティーレベルの確保とを両立させることができる
【図面の簡単な説明】
【0009】
【
図1】本本実施形態の情報処理装置と通信装置の構成を示す図である。
【
図2】本実施形態における近距離無線通信部の構成を示す図である。
【
図3】本実施形態に記載のGATTのデータ形式を示す図である。
【
図4】本実施形態に記載の鍵シードを生成または読み出す処理を示す図である。
【
図5】近距離無線通信部157に暗号化したデータを書き込む処理を示す図である。
【
図6】通信装置の近距離無線通信部が備えるデータベースの構造を示す図である。
【
図7】通信装置の鍵シード公開に関する状態遷移を示す図である。
【
図8】情報処理装置におけるプリンタ登録処理を示す図である。
【
図9】情報処理装置におけるBLE経由での情報取得を示す図である。
【
図10】初期設定時の通信装置151による処理を説明するための図である。
【
図11】鍵シード公開状態を保つ、タイムアウト時間を示す図である。
【発明を実施するための形態】
【0010】
以下に、図面を参照しながら、本発明の実施の形態を例示的に詳しく説明する。ただし、この実施の形態に記載されている構成要素の相対配置、表示画面等は、特に限定的な記載がない限りは、この発明の範囲をそれらのみに限定する趣旨のものではない。
【0011】
本実施形態では、所定の無線通信として、Bluetooth Core Specification V4.2において策定されている、Bluetooth Low Energy(以下、BLE)という低消費電力の無線通信を例に説明する。BLE規格によれば、通信機器がアドバタイジングパケットを間欠的にブロードキャストすることで自分自身の存在を周知する。他の通信機器はブロードキャスト通信されたアドバタイズパケットを受信して、受信後のタイミングでGeneric Attribute Profile(以下、GATT)通信処理に従いデバイス間の通信が行われる。詳細は後述する。
【0012】
次に、本実施形態の情報処理システムに含まれる情報処理装置及び通信装置について説明する。情報処理装置として、本実施形態ではスマートフォンを例示しているが、これに限定されず、携帯端末、ノートPC、タブレット端末、PDA(Personal Digital Assistant)、デジタルカメラ等、種々のものを適用可能である。また、通信装置として、本実施形態ではプリンタを例示しているが、これに限定されず、情報処理装置と無線通信を行うことが可能な装置であれば、種々のものを適用可能である。例えば、プリンタであれば、インクジェットプリンタ、フルカラーレーザービームプリンタ、モノクロプリンタ等に適用することができる。また、プリンタのみならず複写機やファクシミリ装置、携帯端末、スマートフォン、ノートPC、タブレット端末、PDA、デジタルカメラ、音楽再生デバイス、テレビ等にも適用可能である。その他、複写機能、FAX機能、印刷機能等の複数の機能を備えるMFP(Multi Function Printer)にも適用可能である。
【0013】
まず、本実施形態の情報処理装置と、本実施形態の情報処理装置と通信可能な通信装置の構成について説明する。
図1は、本実施形態の情報処理装置と通信装置の構成を示す図である。また、本実施形態では以下の構成を例に記載するが、本実施形態は通信装置と通信を行うことが可能な装置に関して適用可能なものであり、特にこの図のとおりに機能を限定するものではない。
【0014】
情報処理装置101は、本実施形態の情報処理装置である。情報処理装置101は、入力インタフェース102、CPU103、ROM104、RAM105を有する。情報処理装置101はさらに、外部記憶装置106、出力インタフェース107、表示部108、通信部109、近距離無線通信部110、撮影装置111等を有する。情報処理装置101は、スマートフォンのようなデバイスが想定されるが、スマートフォンに限定するものではなく、PC等の種々の装置であってもよい。
【0015】
入力インタフェース102は、ユーザからのデータ入力や動作指示を受け付けるためのインタフェースであり、物理キーボードやボタン、タッチパネル等で構成される。なお、後述の出力インタフェース107と入力インタフェース102とを同一の構成とし、画面の出力とユーザからの操作の受け付けを同一の構成で行うような形態としても良い。
【0016】
CPU103は、システム制御部であり、情報処理装置101の全体を制御する。
【0017】
ROM104は、CPU103が実行する制御プログラムやデータテーブル、組み込みオペレーティングシステム(以下、OSという。)プログラム等の固定データを格納する。本実施形態では、ROM104に格納されている各制御プログラムは、ROM104に格納されている組み込みOSの管理下で、スケジューリングやタスクスイッチ、割り込み処理等のソフトウエア実行制御を行う。
【0018】
RAM105は、バックアップ電源を必要とするSRAM(Static Random Access Memory)等で構成される。なお、RAM105は、図示しないデータバックアップ用の1次電池によってデータが保持されているため、プログラム制御変数等の重要なデータを揮発させずに格納することができる。また、情報処理装置101の設定情報や情報処理装置101の管理データ等を格納するメモリーエリアもRAM105に設けられている。また、RAM105は、CPU103の主メモリーとワークメモリーとしても用いられる。
【0019】
外部記憶装置106は、印刷実行機能を提供するアプリケーションを備えている。また、外部記憶装置106は、通信装置151が解釈可能な印刷情報を生成する印刷情報生成プログラム、通信部109を介して接続している通信装置151との間で送受信する情報送受信制御プログラム等の各種プログラムを備えている。これらのプログラムが使用する各種情報を保存している。また、通信部を介して他の情報処理装置やインターネットから得た画像データも保存している。
【0020】
出力インタフェース107は、表示部108がデータの表示や情報処理装置101の状態の通知を行うための制御を行うインタフェースである。
【0021】
表示部108は、LED(発光ダイオード)やLCD(液晶ディスプレイ)などから構成され、データの表示や情報処理装置101の状態の通知を行う。なお、表示部108上に、数値入力キー、モード設定キー、決定キー、取り消しキー、電源キー等のキーを備えるソフトキーボードを設置することで、表示部108を介してユーザからの入力を受け付けても良い。
【0022】
通信部109は、通信装置151等の装置と接続して、データ通信を実行するための構成である。例えば、通信部109は、通信装置151内のアクセスポイント(不図示)に接続可能である。通信部109と通信装置151内のアクセスポイントが接続することで、情報処理装置101と通信装置151は相互に通信可能となる。なお、通信部109は無線通信で通信装置151とダイレクトに通信しても良いし、情報処理装置101や通信装置151の外部に存在する外部アクセスポイント(アクセスポイント131)を介して通信しても良い。無線通信方式としては、例えば、Wi-Fi(WirelessFidelity)(商標登録)やBluetooth(商標登録)等が挙げられる。また、アクセスポイント131としては、例えば、無線LANルーター等の機器などが挙げられる。なお、本実施形態において、情報処理装置101と通信装置151とが外部アクセスポイントを介さずにダイレクトに接続する方式をダイレクト接続方式という。また、情報処理装置101と通信装置151とが外部アクセスポイントを介して接続する方式をインフラストラクチャー接続方式という。
【0023】
近距離無線通信部110は、通信装置151等の装置と近距離で無線接続して、データ通信を実行するための構成であり、通信部109とは異なる通信方式によって通信を行う。近距離無線通信部110は、通信装置151内の近距離無線通信部157と接続可能である。なお、本実施形態では、近距離無線通信部110の通信方式として、Bluetooth Low Energy(BLE)が用いられる。Bluetooth機器の各々の通信モジュールには、機器固有の識別情報であるBD_ADDR(Bluetooth Device Address)が割り当てられている。
【0024】
撮影装置111は撮影素子で撮影した画像をデジタルデータに変換する装置である。デジタルデータは一度RAM105に格納する。その後、CPU154が実行するプログラムで所定の画像フォーマットに変換し、画像データとして外部記憶装置106に保存する。
【0025】
ROM152は、CPU154が実行する制御プログラムやデータテーブル、OSプログラム等の固定データを格納する。
【0026】
通信装置151は、本実施形態の通信装置である。通信装置151は、ROM152、RAM153、CPU154、プリントエンジン155、通信部156、近距離無線通信部157、入力インタフェース158、出力インタフェース159、表示部160、不揮発性メモリー161等を有する。通信装置151は、Multi Function Printer(MFP)のようなデバイスを想定しているが、MFPに限定するものではない。
【0027】
通信部156は、通信装置151内部のアクセスポイントとして、情報処理装置101等の装置と接続するためのアクセスポイントを有している。なお、該アクセスポイントは、情報処理装置101の通信部109に接続可能である。なお、通信部156は無線通信で情報処理装置101とダイレクトに通信しても良いし、アクセスポイント131を介して通信しても良い。通信方式としては、例えば、Wi-Fi(商標登録)やBluetooth等が挙げられる。また、通信部156は、アクセスポイントとして機能するハードウェアを備えていてもよいし、アクセスポイントとして機能させるためのソフトウエアにより、アクセスポイントとして動作してもよい。
【0028】
RAM153は、バックアップ電源を必要とするDynamic Random Access Memory(DRAM)等で構成される。なお、RAM153は、図示しないデータバックアップ用の電源が供給されることによってデータが保持されているため、プログラム制御変数等の重要なデータを揮発させずに格納することができる。また、RAM153は、CPU154の主メモリーとワークメモリーとしても用いられ、情報処理装置101等から受信した印刷情報を一旦保存するための受信バッファや各種の情報を保存する。
【0029】
ROM152は、CPU154が実行する制御プログラムやデータテーブル、OSプログラム等の固定データを格納する。本実施形態では、ROM152に格納されている各制御プログラムは、ROM152に格納されている組み込みOSの管理下で、スケジューリングやタスクスイッチ、割り込み処理等のソフトウエア実行制御を行う。また、通信装置151の設定情報や通信装置151の管理データ等の電源供給がされていない場合も保持する必要があるデータを格納するメモリーエリアもROM152に設けられている。
【0030】
CPU154は、システム制御部であり、通信装置151の全体を制御する。
【0031】
プリントエンジン155、RAM153に保存された情報や情報処理装置101等から受信した印刷ジョブに基づき、インク等の記録剤を用いて紙等の記録媒体上に画像形成し、印刷結果を出力する。この時、情報処理装置101等から送信される印刷ジョブは、送信データ量が大きく、高速な通信が求められるため、近距離無線通信部157よりも高速に通信可能な通信部156を介して受信する。
【0032】
入力インタフェース158は、ユーザからのデータ入力や動作指示を受け付けるためのインタフェースであり、物理キーボードやボタン、タッチパネル等で構成される。なお、後述の出力インタフェース159と入力インタフェース158とを同一の構成とし、画面の出力とユーザからの操作の受け付けを同一の構成で行うような形態としても良い。出力インタフェース159は、表示部160がデータの表示や通信装置151の状態の通知を行うための制御を行うインタフェースである。
【0033】
表示部160は、LEDやLCDなどから構成され、データの表示や通信装置151の状態の通知を行う。なお、表示部160上に、数値入力キー、モード設定キー、決定キー、取り消しキー、電源キー等のキーを備えるソフトキーボードを設置することで、表示部160を介してユーザからの入力を受け付けても良い。
不揮発性メモリー161は、Electrically Erasable Programmable Read-Only Memory(EEPROM)、フラッシュメモリ-等のデバイスから構成される。不揮発性メモリー161は主に、通信装置151の電源が供給されない時も保持する必要がある、通信装置151の設定値等のデータを保存する目的で使用する。
【0034】
図2は、近距離無線通信部157の詳細を示す図である。近距離無線通信部157は、情報処理装置101等の装置と近距離で無線接続するための構成である。本実施形態では、近距離無線通信部157の通信方式として、BLEが用いられる。近距離無線通信部157とCPU154は、Inter-Integrated Circuit(I
2C)等のバスインタフェースを介して通信を行う。また、近距離無線通信部157内には、CPU201と記憶領域202とROM203とRAM204を備えている。記憶領域202は、CPU154からアクセス可能である。また、近距離無線通信部110を介して情報処理装置101からもアクセス可能である。RAM204は、バックアップ電源を必要とするDRAM等で構成される。なお、RAM204は、図示しないデータバックアップ用の電源が供給されることによってデータが保持されているため、プログラム制御変数等の重要なデータを揮発させずに格納することができる。また、RAM204は、CPU201の主メモリーとワークメモリーとしても用いられる。ROM203は、CPU201が実行する制御プログラムやデータテーブル、OSプログラム等の固定データを格納する。
【0035】
なお、通信装置151には、外付けHDDやSDカード等のメモリーがオプション機器として装着されてもよく、通信装置151に保存される情報は、当該メモリーに保存されても良い。
【0036】
ここでは、例として情報処理装置101と通信装置151との処理分担を上記のように示したが、特にこの分担形態に限らず他の形態であってもよい。
【0037】
ここで、BLE規格におけるGeneric Attribute Profile(GATT)通信の概要について説明する。
【0038】
GATTにおいては、データの転送元と転送先に基づいてGATTクライアント、GATTサーバーの2つのロールを定義されている。GATTクライアントは、GATTサーバーにリクエストを送信し、GATTサーバーからの応答を受信する。本実施形態では、情報処理装置101がGATTクライアントとなる。GATTサーバーは、GATTクライアントからの要求を受信すると、応答を返す。本実施形態では、通信装置151がGATTサーバーとなる。またGATTサーバーは、データまたは状態情報を格納するデバイスである。一方、GATTクライアントは、GATTサーバーに対して、データのリード・ライトを実行することが出来る。
【0039】
次に、GATTのデータ形式について説明する。GATTのデータは、サービス、キャラクタリスティック、ディスクリプタと呼ばれる3つの要素から構成される。これら3つの要素の関係を
図3に示す。ただし、ディスクリプタは存在していなくてもかまわない。
【0040】
サービス、キャラクタリスティック、ディスクリプタは32桁のUniversally Unique Identifier(UUID)で識別することができる。ただし、Bluetooth SIG の標準で定義されているものについては 4桁で表現される。
【0041】
ここで言う、UUIDとは、ソフトウエア上でオブジェクトを一意に識別するための識別子として使用されるものである。UUIDは128ビットの数値だが、通常は16進数で「550e8400-e29b-41d4-a716-446655440000」のように表現する。
【0042】
キャラクタリスティックは、キャラクタリスティック毎に単一の値を持つ。ディスクリプタは、キャラクタリスティックに付加情報が必要な際に用いられる属性値を持つ。サービス、キャラクタリスティック、ディスクリプタは、それぞれ、GATTクライアントに対する、リード・ライトの属性やセキュリティーの属性を設定することが出来る。
【0043】
GATTクライアントは、サービス、キャラクタリスティックそれぞれのUUIDを指定することで、キャラクタリスティック毎に持っている値に対して、リード・ライトを実行することが出来る。ただし、リード・ライトが実行できるかは、各サービス、キャラクタリスティックに設定されている、リード・ライト属性に従う。
【0044】
図4、
図5、
図6、
図7、
図8、
図9、
図10、
図11を用いて、本実施形態に係る処理の説明を行う。以下、通信装置151による処理は、CPU154がROM152等の記憶領域に記憶されているプログラムをRAM153において実行することで実現される。一方、情報処理装置101による処理は、CPU103がROM104等の記憶領域に記憶されているプログラム(例えばアプリケーションプログラム)をRAM105において実行することで実現される。
【0045】
通信装置151が鍵シードを生成する、もしくは既存の鍵シードを読み出す処理について、
図4のフローチャートを用いて説明する。
【0046】
ここで、鍵シードとは暗号鍵に関する鍵情報であり、暗号鍵を生成するために利用する値のことである。また、暗号鍵とは暗号化を施す際に用いられる値であって、本実施形態では、暗号鍵は鍵シードを用いて算出される。この鍵シードから暗号鍵を算出するアルゴリズムは、本実施形態ではハッシュ関数を用いる。ハッシュ関数とは入力に対して出力が一意となる関数であり、出力の重複が少なくなるよう設計されている関数である。ただし、暗号鍵を算出するアルゴリズムはハッシュ関数に限定されるわけではなく、入力と出力が一意に定まるどのようなアルゴリズムを用いても構わない。
【0047】
また、本実施形態においては鍵シードと無効値が区別可能なように制御を行い、鍵シードを生成する。具体的には鍵シードの値が0であれば無効値として扱い、鍵シードを生成する際には、無効値を生成しないように制御される。
【0048】
S401で、通信装置151は、通信装置151内の不揮発性メモリー161に鍵シードが保存されているかどうかを確認する。S401では、CPU154が不揮発性メモリー161に設けられた鍵シードのための領域から情報を読み出す処理を実行し、その情報が無効値であるか否かを判定することで、鍵シードが保存されているかどうか判定される。
【0049】
なお、
図4に示す処理が開始されるタイミング、即ちS401において鍵シードが保存されているかを確認するタイミングは、本実施形態では通信装置151の起動時である。ただし、それ以外のタイミングで
図4に示す処理が開始されてもかまわない。
【0050】
S401で鍵シードが保存されていないと判定された場合は、鍵シードを生成する必要があるとして、S402において通信装置151は、鍵シードを生成する処理を実行する。鍵シードは、生成する毎に同じ値を生成しても、ランダムな値を生成してもかまわないが、無効値は生成されないように制御される。またS402において通信装置151は、生成された鍵シードを不揮発性メモリー161に保存する。なお、S401で鍵シードが保存されていると判定された場合でも、ユーザが鍵シードの再生成を指示した場合は、通信装置151は、鍵シードの生成を実行する。
【0051】
次に、
図4で説明したように不揮発性メモリー161に保存された鍵シードを通信装置151が利用する例について説明する。具体的には、通信装置151は、鍵シードを用いて暗号鍵を生成し、その暗号鍵を用いてRAM153または不揮発性メモリー161に保存されている設定値を暗号化した上で、近距離無線通信部157に書き込む。この処理の詳細について、
図5のフローチャート、
図6を用いて説明する。
【0052】
図6は、本実施形態における、通信装置151の近距離無線通信部157がGATTサーバーとして備えるデータベースの構造を示す。
図5を用いて後述する処理により、
図6に示すデータベースに暗号化された情報が書き込まれる。
図6において、ベンダーの独自サービス名Original(Service UUID:00000000-0000-1000-1000-00405f9b34fb)には5つのキャラクタリスティックが設けられている。各々に対しRead或いはWrite属性及び保存するデータに対する暗号化の有無が定められている。図中の「Read」が「○」でかつ「暗号化」部分が「○」で示されている各キャラクタリスティックに関しては、後述する鍵シード603にて提供される鍵シードの値より算出される暗号鍵により暗号化が施された後に保存される。
【0053】
次に近距離無線通信部157が備える各キャラクタリスティックの一部の内容について詳細に説明する。SSID601、パスワード602のキャラクタリスティックには通信装置151の通信部156をアクセスポイントとしてダイレクトに接続が可能となるSSIDとパスワードが暗号化された状態で保存される。また本実施形態の固有名称604のキャラクタリスティックには固有名称である“printer”という文字列が暗号化された状態で保存される。これらの暗号化された情報は機密性の高い情報として扱われる。
図6で説明される近距離無線通信部157がGATTサーバーとして備えるデータベースは本実施形態における一例であって、任意の項目を追加することが可能であり、これに限定されるものではない。
【0054】
S501で、通信装置151は、近距離無線通信部157のキャラクタリスティックを更新するタイミングであるか判定する。近距離無線通信部157のキャラクタリスティックを更新するタイミングとは、例えば、通信装置151内のRAM153または不揮発性メモリー161に保存されている設定値が更新される場合のことである。また、通信装置151の起動時に近距離無線通信部157のキャラクタリスティックを初期化する場合や設定値に因らないキャラクタリスティックの値を更新する場合、また鍵シードが初期化された場合も含まれる。
【0055】
S501においてキャラクタリスティックを更新するタイミングであると判定されると、該更新が必要であるとして、処理がS502に進む。S502で通信装置151は、S402においてRAM153や不揮発性メモリー161に保存された鍵シード値を読み出す。S503で通信装置151は、S502で読みだされた鍵シードを利用して暗号鍵を生成する。暗号鍵とは暗号化アルゴリズムを用いて情報に暗号化を施す際に用いる値である。
【0056】
本実施形態で用いる暗号化アルゴリズムは、情報に対して暗号化を施す際に用いる暗号鍵と、復号化を実施する際に用いる復号鍵が同一である共通鍵暗号化方式である。本実施形態では暗号化アルゴリズムとして、共通鍵暗号化方式の一種であるAdvanced Encryption Standard(AES)を用いるが、これに限定されるものではなく、その他の暗号化アルゴリズムを用いても良い。
【0057】
S504で通信装置151は、S503で生成された暗号鍵を用いて、RAM153または不揮発性メモリー161に保存されている情報(通信装置151の設定値)を読み出し、これを暗号化する。本実施形態では、情報処理装置101が通信装置151の通信部109とダイレクトに通信するためのSSID及びパスワードを、RAM153または不揮発性メモリー161から読み出す設定値とするが、これに限定されるものではない。
【0058】
S505で、S504で暗号化された情報(設定値)を近距離無線通信部157のキャラクタリスティックへ書き込む。また、暗号化する必要のない値に関してはこのタイミングでRAM153や不揮発性メモリー161から読み出し、暗号化を施さずに近距離無線通信部157のキャラクタリスティックに書き込んでも良い。本実施形態においてネットワーク設定値が更新された場合は、SSID601、パスワード602をS504で暗号化を施した上でキャラクタリスティックに書き込む。もちろんこの組み合わせに限定するものではなく、任意の値に暗号化を施し、もしくは暗号化を施さずにキャラクタリスティックに書き込むことも可能である。
【0059】
また、S501において、鍵シードが初期化されたことが判定された場合には、S502の処理及びS503の処理により、初期化された鍵シードにより暗号鍵を生成する。その後、通信装置151は、
図6において「Read」が「○」でかつ「暗号化」部分が「○」で示される各キャラクタリスティックに保存される全ての値をRAM153または不揮発性メモリー161から読み出す。そして、通信装置151は、読み出された値についてS504において暗号化を実施した上で、S505においてキャラクタリスティックに書き込む。
【0060】
次に、通信装置151による鍵シードの公開について説明する。
図8を用いて後述するように、本実施形態では、鍵シードの公開および暗号化された情報の送受信により、BLEのGATT通信のためのペアリング(通信相手の登録処理)が実行される。そこで
図7のフローチャートを用いて、通信装置151における、鍵シード公開状態の処理について説明する。
【0061】
なお、本実施形態では、通信装置151が鍵シード公開状態へ遷移する要因として、入力インタフェース158を介したユーザによる特定のキー操作がある。このキー操作を行うことにより、通信装置151の状態が鍵シード公開状態へ移行する。本実施形態では、鍵シード非公開状態とは、鍵シードの値が無効値になっている状態を示し、鍵シード公開状態とは、鍵シードの値が有効値となっている状態を示すものとする。
【0062】
ユーザにより特定のキー操作が行われると、S701の処理が実行される。S701において通信装置151は、
図6に示したデータベースにおける、鍵シードの値を格納する所定のGATTキャラクタリスティックである鍵シード603に対して、S402において作成された鍵シードの値を書き込む。鍵シード603は、情報処理装置101が、BLE通信により参照可能である。
【0063】
S702、S704で通信装置151は、鍵シード公開状態の所定の終了条件が満たされたか判定する。鍵シードの公開状態は、該終了条件が満たされるまで継続される。S702における終了条件は、例えば情報処理装置101とのGATT通信による、情報処理装置101からの、通信装置151が登録された旨の通知である。例えば、
図8のS810について後述する、完了通知である。この通知が受信されると、S702では、上記終了条件が満たされたと判定される。一方、S704における判定で用いられる終了条件はタイムアウトである。即ち、S701における鍵シードの書き込みから所定時間経過した場合(タイムアウトとなった場合)、S704においては終了条件が満たされたと判定される。即ち、S702において、通信装置151が登録された旨の通知を情報処理装置101から受信したと判定された場合、もしくは、S704においてタイムアウトとなったと判定された場合に、鍵シード公開状態の終了条件が満たされたと判定される。終了条件が満たされるまでS702、S704の処理を繰り返す。なお、S701においてユーザ操作に応じて鍵シードが公開された場合のS704における判定のためのタイムアウト時間は、後述する
図11において、初期設定時に鍵シードが公開された場合のタイムアウト時間より短く設定されている。詳細は
図11を用いて説明する。
【0064】
S702またはS704で終了条件が満たされたと判定されると、S703で通信装置151は、鍵シード603が示す鍵シードの値を無効値に書き換える。S703における処理により、通信装置151の状態が鍵シード非公開状態に遷移し、
図7に示す処理が終了する。
【0065】
なお、S703における鍵シード非公開状態への遷移は、
図6に示すGATTデータベース上で鍵シードが格納されているキャラクタリスティックを読み取り不可能な状態にすることによっても行うことができる。この場合でも本実施形態の効果を得ることが可能となる。このように制御が行われることで、装置に対して特定の操作を行える正当な利用者以外は、鍵シードを読み取れないようにすることができる。
【0066】
次に、情報処理装置101によるペアリング処理(通信相手の登録処理)について説明する。
図8のフローチャートを用いて、情報処理装置101のアプリケーションにおける通信装置151としてのプリンタの登録処理について説明する。なお、
図8に示すプリンタ登録処理は、アプリケーションにより表示部108に表示された特定のキーに対する、入力インタフェース102を介したユーザの指示が入力された場合に開始される。また、
図8に示す処理は、情報処理装置101において該アプリケーションが実行されることで実現される。
【0067】
アプリケーションにおいてプリンタ登録処理が開始されると、S801で近距離無線通信部110は、周囲のプリンタからのBLEアドバタイズ及びスキャンレスポンスによりアドバタイズ情報を受信する。
【0068】
その後、S802において情報処理装置101は、S801で受信したアドバタイズ情報により、アプリケーションが対応可能であり且つ登録済みでないプリンタを確認する。そして、該プリンタが新規登録可能なプリンタであることを示すプリンタ情報を、表示部108に表示する。なお、S802でアドバタイズ情報により新規登録可能なプリンタが複数見つかった場合には、複数のプリンタに対応する複数のプリンタ情報を表示し、ユーザに登録するプリンタを選択させる(不図示)。
【0069】
次にS803において情報処理装置101は、ユーザにより選択されたプリンタ情報に対応するプリンタに対し、近距離無線通信部110を通じて接続要求を行い、BLE接続を行う。なお、この段階ではペアリング済みであることが必要なGATT通信は行われない。BLE接続が完了すると、S804において情報処理装置101は、通信装置151の鍵シード603に格納されている所定のキャラクタリスティックの値を読み込む。
【0070】
その後、S805において情報処理装置101は、通信装置151が鍵シード公開状態であるかどうかを判断する。具体的には、S805において情報処理装置101は、S804で読み込んだ鍵シード603の値が無効値である場合や読み取れない場合に、通信装置151が鍵シード非公開状態と判断する。
【0071】
S805において通信装置151が鍵シード非公開状態であると判断されると、処理はS806に進む。S806において情報処理装置101は、所定時間待機する。なお、S806において情報処理装置101は、情報処理装置101の表示部108などにより、通信装置151を鍵シード公開状態に移行するように促す表示を行ってもよい。
【0072】
情報処理装置101は、S806における所定時間の待機後に、S804、S805の処理を繰り返すことにより通信装置151が鍵シード公開状態になるのを待つ。S806における待機が所定回数繰り返されても、あるいはS806における待機時間より長い所定時間経過しても、通信装置151が鍵シード公開状態にならない場合、
図8に示す処理が終了する(不図示)。あるいは、ユーザによるキャンセル指示などを受けた場合、
図8に示す処理が終了する(不図示)。
【0073】
S805において、通信装置151が鍵シード公開状態であると判断されると、S807において情報処理装置101は、S804において読み込んだ鍵シード603を元に復号鍵を生成する。
【0074】
図6で説明した通信装置151のGATTデータベースには固有名称604のキャラクタリスティックには“printer”という固有名称文字列が暗号化された状態で保存され、読み取り可能な状態となっている。S808で情報処理装置101は、ペアリングが不要なGATT通信により、暗号化された固有名称604を読み込み、S807で生成した復号鍵により復号化を行う。
【0075】
なお、
図8に示す処理を実行するための上記のアプリケーションは、
図6で説明したキャラクタリスティックに関する構成、固有名称604の復号化後の固有値、及び完了通知605への書き込み値を、通信装置151との通信に関わらず、予め記憶している。例えば、該アプリケーションのプログラムが情報処理装置101にインストールされたときに、情報処理装置101に記憶される。上記のキャラクタリスティックに関する構成、固有名称604の復号化後の固有値、及び完了通知605への書き込み値は、通信装置151であるプリンタが備えるベンダー独自サービスに関するものである。そのため、例えば通信装置151とアプリケーションを同一ベンダーが提供している場合、これらの構成、値が定められている。
【0076】
S809で情報処理装置101は、S809において復号化した固有名称情報と、情報処理装置101に予め記憶してある固有名称情報“printer”とを比較し、両者が一致した場合、復号鍵が正常値であると判断する。
【0077】
S809において復号鍵が正常値であると判断されると、S810において情報処理装置101は、S802において選択されたプリンタのBD_ADDRなどの識別子と鍵シードを紐付けて記憶することにより、登録処理を行う。更に完了通知605のキャラクタリスティックに対して、登録が完了したことを示す“registered”という特定の文字列を上記共通鍵方式で暗号化を行い、GATT通信を用いて値を書き込み、
図8に示す処理を終了する。一方、S809において復号鍵が正常値でないと判断された場合には、情報処理装置101は、プリンタを登録せずに、
図8に示す処理を終了する。
【0078】
通信装置151は、S810において情報処理装置101により完了通知605として書き込まれた値を復号化する。そして、その復号化された値が予め定められた値である場合、当該完了通知605としての書き込みが、
図4において指定した鍵シードを用いて暗号化が行われた上で行われた書き込みであることを確認する。この確認により、通信装置151においても、情報処理装置101において登録処理が正常に完了したことを確認することが可能となる。
【0079】
次に、
図9のフローチャートを用いて、情報処理装置101のアプリケーションにおける、通信装置151としてのプリンタからBLE経由で情報を取得する処理について詳細に説明する。ここでは前提として、
図8に示す処理が行われ、情報処理装置101にプリンタが登録されているとする。即ち、S803のように情報処理装置101と通信装置151はBLE接続済の状態でありかつ、S810の処理により通信装置151は情報処理装置101のアプリケーションに登録済みの状態であるものとする。また、
図9に示す処理についても、情報処理装置101が、
図8に示す処理を実行する際に使用したアプリケーションを実行することにより実現される。
【0080】
S901において情報処理装置101は、通信装置151としてのプリンタに対して、近距離無線通信部110を通じて情報取得要求を行う。ここで取得要求を行う情報は、
図6で示される情報のうち、「暗号化」に「○」が付いているSSID、パスワードのような情報であり、S504における通信装置151における処理により暗号化されている情報である。なお、情報処理装置101のアプリケーションは、S810の処理により通信装置151が情報処理装置101に登録済みの状態であることを条件に、SSIDやパスワード等の取得要求を行う。即ち、S810の処理が行われる前は取得可能でなかった情報が、該処理により取得可能となる。
【0081】
S902において情報処理装置101は、S804における処理により通信装置151から取得した鍵シードから、暗号化された情報を復号化するための復号鍵を生成する。復号鍵を生成する処理は、S503とS807と同様の処理である。なお、本実施形態では共通鍵暗号化方式を用いるため、暗号鍵の算出処理と復号鍵の算出処理が同様となるが、その他の暗号化方式を用いる場合には必ずしも暗号鍵の算出処理と同様となるものではない。
【0082】
S903において情報処理装置101は、S901にて取得した情報を、S902で生成した復号鍵を用いて、復号化を行う。この復号化処理により、情報処理装置101のアプリケーションは、通信装置151としてのプリンタから暗号化された情報を取得し、取得した通信装置151の情報を活用することが可能となる。例えば情報処理装置101がアクセスポイント131のSSID、パスワードの情報を事前に記憶している場合、通信装置151に通知することで、通信装置151の操作をすることなくアクセスポイント131と接続する構成をとることが可能となる。
【0083】
以上の実施形態によれば、
図8に示したように、BLEのペアリング(通信相手の登録処理)を行う際に、暗号化された情報の通信によりペアリングを行うことができる。また、本実施形態によれば、ユーザは情報処理装置101(スマートフォン等)と、通信装置151(プリンタ等)とに対するキーの押下により、ペアリングが自動で実行される。そのため、例えば通信装置151に表示されたPINコードをユーザが情報処理装置101に入力するペアリング方法などと比べて、容易にペアリングを実行させることができる。即ち、本実施形態における処理によれば、セキュアな通信により容易にペアリングを実行させることができる。
【0084】
また、本実施形態によれば、
図9に示したようなペアリング後の、暗号化、復号化が行われるセキュア通信と同様に、情報の暗号化、情報の送受信、情報の復号化を情報処理装置101、通信装置151で行うことで、ペアリングが行われる。そのため、上記のPINコードを表示、入力する方法のように、ペアリング後の通信とは異なる特別な処理を行わなくても、ペアリング後のセキュア通信と同様の処理により、ペアリングを実現することができる。
【0085】
次に、通信装置151における初期設定時の動作について説明する。本実施形態では、通信装置151において鍵シードが公開される要因として、
図7に示したように、ユーザ操作(例えば通信装置151に設けられた特定のキーの押下)がある。また本実施形態では、通信装置151において鍵シードが公開される別の要因として、通信装置151の電源オン時の初期設定がある。初期設定とは、通信装置151(例えばプリンタ)の電源が初めて投入された場合に行われる設定である。初期設定には、通信装置151とPC、スマートフォン等の装置(例えば情報処理装置101)を無線LAN等で接続するためのネットワーク設定を含む。そのネットワーク設定のために、初期設定において公開された鍵シードにより情報処理装置101が自動的に通信装置151と、
図8に示した処理によりBLEによるペアリングを行う。ペアリングが完了すると、情報処理装置101と通信装置151の間で、GATT通信によりネットワーク設定(無線LAN設定等)のための情報が通信され、その通信により、情報処理装置101と通信装置151が自動的に無線LAN等で接続される。
【0086】
本実施形態におけるネットワーク設定は種々のものであってよい。例えば通信装置151がアクセスポイントとして動作するときの、該アクセスポイントのSSID601、パスワード602を、情報処理装置101がペアリング後のGATT通信により受信してもよい。そして、情報処理装置101が受信したSSID601、パスワード602を用いてアクセスポイントと接続することで、情報処理装置101、通信装置151がダイレクトに無線LANで接続されてもよい。ネットワーク設定の別の方法として、例えば情報処理装置101が接続されている外部のアクセスポイント(例えばアクセスポイント131)のSSID、パスワードを、情報処理装置101がペアリング後のGATT通信により通信装置151に送信してもよい。そして、通信装置151が、受信したSSID、パスワードにより、自動的にアクセスポイントに接続することで、情報処理装置101、通信装置151が、共通のアクセスポイントに接続される。これにより、情報処理装置101と通信装置151が自動的に無線LANで接続されてもよい。この場合、通信装置151がアクセスポイントを検索し、その検索結果として複数のSSIDがGATT通信により情報処理装置101に通知されてもよい。そして、情報処理装置101が、受信した複数のSSIDのうち、自身が接続されているアクセスポイントのSSIDを通信装置151にGATT通信により送信してもよい。これにより、通信装置151と情報処理装置101が共に接続可能なアクセスポイントにより確実に両者を接続させることができる。
【0087】
次に、
図10を用いて初期設定時の通信装置151による処理を詳細に説明する。通信装置151の初期設定時においては、個人情報、利用履歴など、流出してはならない機密性の高い情報は、GATTデータベースに保持していない。ユーザが機器を利用していくにつれ、機密性の高い情報が機器に蓄えられ、GATTデータベースにS505で説明した通り、暗号化した状態で情報を保存し、共通の暗号鍵を保持する外部機器から読み込みが可能となる。ここでいう初期設定時とは、例えば機器購入後に初めて利用を開始する場合や、機密性の高い情報を全てクリアした状態を示す。通信装置151の不揮発性メモリー161には初期設定状態であるかどうかを示す、初期設定フラグが記憶されており、特に通信装置151の販売時や、機密性の高い情報が全てクリアされた状態ではフラグがセットされた状態で記憶されている。
【0088】
図10のフローチャートは、通信装置151に電源が投入された、立ち上げ時の処理を示している。S1001で通信装置151は、不揮発性メモリー161に記憶されている初期設定フラグを確認し、初期設定状態であるかどうかを判断する。初期設定状態でないと判断された場合は
図10に示す処理が終了する。
【0089】
初期設定状態であると判断された場合は、S1002において通信装置151は、鍵シード公開状態を継続する、タイムアウト時間を1時間に設定する。このタイムアウト時間については後述する。S1003において通信装置151は、S701での説明と同様に鍵シード603に有効値を書き込み鍵シード公開状態に移行する。
【0090】
S1004、S1005では、前述の
図7のS702、S704における鍵シード公開の終了条件の判定処理と同様の判定処理を示している。S1004において通信装置151は、
図8のS810で説明したプリンタ登録処理が終わり、完了通知を受け取ったか否かの判定を行う。登録完了通知を受けていない場合は、S1005において通信装置151は、S1003において鍵シードが公開されてからの経過時間が、タイムアウト時間を超すかを確認する。終了条件が満たされるまでS1004、S1005の処理を繰り返す。
【0091】
S1004において登録完了通知を受けた場合は、S1006において通信装置151は、
図7のS703と同様に鍵シード非公開状態に移行する。続いてS1007において通信装置151は、暗号鍵が生成された情報処理装置101と、GATT通信により、ネットワーク設定のための暗号化された情報を通信する。ネットワーク設定のための情報は、例えば上述のように、情報処理装置101が接続されているアクセスポイント131のSSID、パスワード等である。通信装置151は、その受信した情報を復号化して利用することにより、アクセスポイント131を経由した情報処理装置101とのネットワーク接続を確立する。
【0092】
一方、S1004において登録完了が通知されないままS1005においてタイムアウト時間が満了したと判定された場合、S1009において通信装置151は、S703およびS1006と同様に、鍵シード非公開の状態に遷移する。
【0093】
S1007においてネットワーク設定が完了した場合、もしくはS1009において鍵シード非公開状態に遷移した場合、S1008において通信装置151は、初期状態フラグを落とし、初期設定状態を解除して、
図10に示す処理を終了する。なお、初期設定としてネットワーク設定以外の設定項目があり、且つそれが未完了の場合、S1008においてその設定項目の設定が実行されてもよい。
【0094】
図10に示した処理により、通信装置151の初期設定状態において、ユーザは、通信装置151の電源ONを指示した後、通信装置151を操作せずに、情報処理装置101を操作することで、通信装置151にネットワーク設定を行わせることが可能となる。
【0095】
図11は、鍵シード公開状態を保つ、タイムアウト時間を示している。
図7で説明したように、ユーザが特定のキーを操作することにより通信装置151が鍵シード公開状態に移行する場合は、S704において、鍵シード公開状態の終了判定のためのタイムアウト時間として、10秒間が設定される。この特定のキー操作が発生するタイミングは、
図8のS805で説明したように、情報処理装置101において、通信装置151を鍵シード公開状態へ移行させることを促す表示が行われた場合が想定される。即ち、情報処理装置101による該表示を見たユーザが、通信装置151において上記特定のキーの操作を行うことが想定される。例えば、通信装置151が既に他の情報処理装置101とBLE接続がされた状態で、新たに別の情報処理装置101とBLE接続を行う場合に、上記のような特定のキーの操作が行われる。
【0096】
一方、
図10で説明したような、通信装置151が初期設定状態であるときに電源がオンされた場合、S1005において、鍵シード公開状態のタイムアウト時間が1時間に設定される。例えば、通信装置151としてのプリンタにおける初期設定処理では、S1007におけるネットワーク設定処理と同時に、インクタンクの充填処理や印刷媒体の設定処理などのメンテナンス処理が実行される。そのため、S1005における判定のためのタイムアウト時間を比較的長い時間に設定される。即ち、インクタンクや印刷媒体に関する処理に時間を要したとしても、情報処理装置101を通して通信装置151のネットワーク設定処理が実施可能な構成となっている。このように、本実施形態では、ユーザ操作時よりも初期設定時の方が比較的長い時間に設定されている。具体的なタイムアウト時間は、
図11に示す時間に限られない。
【0097】
このように、鍵シードの公開時間にタイムアウト制限を設けることにより、不用意な鍵シードの公開を避けることが可能となりセキュリティーを向上させることができる。また、通信装置の利用状況に応じて鍵シード公開状態のタイムアウト時間を変更させることにより、セキュリティーを確保しつつ利便性の高い機器を提供することができる。例えば、
図7について説明したユーザの特定のキー操作では、ユーザに対してキー操作が通知されており、且つユーザが明示的にBLEのペアリングを指示している。そのため、鍵シード公開状態のタイムアウト時間として比較的短い時間でも十分であり、またその短い時間によりセキュリティーを確保することができる。一方、
図10について説明した、初期設定については、通信装置151の最初の電源オンに伴い、自動的に鍵シードが公開されている。さらに、インクタンクや印刷媒体等の設定操作をユーザが行う必要がある。そのため、鍵シード公開状態のタイムアウト時間として比較的長い時間が設定されることで、ユーザによるBLEペアリングの機会を確保することができる。
【0098】
なお、本実施形態において、
図7のS703、
図10のS1006、S1009において通信装置151は、自身に記憶された鍵シードを非公開にするための制御として、鍵シードに無効値を書き込んでいた。しかし、情報処理装置101により登録処理が行われないようにするための、通信装置151に記憶された鍵シードに関する制御はこれに限らない。例えば、鍵シードを削除する制御が行われてもよいし、鍵シードが記憶される記憶領域へのアクセスを禁止する制御が行われてもよい。これらの制御によっても、情報処理装置101において、鍵シードを用いた復号鍵の生成や、その復号鍵による復号が行えなくなる。そのため、情報処理装置101において登録処理を行う条件が満たされなくなり、登録処理が行われることを防ぐことができる。
【0099】
なお、本実施形態では、BLE通信を使用して情報処理装置101が通信装置151から暗号化された情報を取得する処理について記載している。しかし、情報処理装置101が通信装置151から暗号化された情報を取得する通信方式はNFC(Near Field Communication)等のBLE以外の近距離無線通信を利用しても本実施形態の効果を得ることができる。
【0100】
なお、本実施形態の機能は以下の構成によっても実現することができる。つまり、本実施形態の処理を行うためのプログラムコードをシステムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)がプログラムコードを実行することによっても達成される。この場合、記憶媒体から読み出されたプログラムコード自体が上述した実施形態の機能を実現することとなり、またそのプログラムコードを記憶した記憶媒体も本実施形態の機能を実現することになる。
【0101】
また、本実施形態の機能を実現するためのプログラムコードを、1つのコンピュータ(CPU、MPU)で実行する場合であってもよいし、複数のコンピュータが協働することによって実行する場合であってもよい。さらに、プログラムコードをコンピュータが実行する場合であってもよいし、プログラムコードの機能を実現するための回路等のハードウェアを設けてもよい。またはプログラムコードの一部をハードウェアで実現し、残りの部分をコンピュータが実行する場合であってもよい。
【符号の説明】
【0102】
103 CPU
104 ROM
105 RAM
152 ROM
153 RAM
154 CPU