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

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

▶ キヤノン株式会社の特許一覧

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