(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024109226
(43)【公開日】2024-08-14
(54)【発明の名称】デバイス、コンピュータプログラム、方法
(51)【国際特許分類】
G06F 21/44 20130101AFI20240806BHJP
G06F 21/33 20130101ALI20240806BHJP
G06F 21/32 20130101ALI20240806BHJP
【FI】
G06F21/44
G06F21/33
G06F21/32
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2023013918
(22)【出願日】2023-02-01
(71)【出願人】
【識別番号】000005267
【氏名又は名称】ブラザー工業株式会社
(74)【代理人】
【識別番号】110001058
【氏名又は名称】鳳国際弁理士法人
(72)【発明者】
【氏名】森 匡平
(57)【要約】
【課題】デバイスに情報が不正に格納される可能性を低減する。
【解決手段】
デバイスの状態が所定の状態である場合には対象処理を禁止せずに、デバイスの状態が所定の状態でない場合に対象処理を禁止する。対象処理は、特定情報の要求を外部装置に送信する要求送信処理と、特定情報を第1記憶領域に格納する格納処理と、の一方、または、両方を含む。第1記憶領域に格納される特定情報を使用して、アクセス情報を仲介サーバから取得する。アクセス情報を使用して、特定のサービスを使用するための設定情報を対象サーバから取得する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
ネットワークに接続可能なデバイスであって、
第1記憶領域と、
デバイスの状態が所定の状態か否かを判断する判断部と、
特定情報の要求を外部装置に送信する要求送信処理と、前記特定情報を前記第1記憶領域に格納する格納処理と、の一方、または、両方を含む対象処理を、前記デバイスの状態が前記所定の状態である場合には禁止せずに、前記デバイスの前記状態が前記所定の状態でない場合に前記対象処理を禁止する、禁止処理部であって、前記特定情報は、ネットワークを介して前記デバイスと通信可能な仲介サーバの位置情報と、前記デバイスに割り当てられる識別情報と、を含む、前記禁止処理部と、
前記外部装置から前記デバイスに前記特定情報が送信される場合に、前記特定情報を受信する特定情報受信部と、
前記格納処理が禁止されない場合に、前記格納処理を実行する第1格納処理部と、
前記第1記憶領域に格納される前記特定情報を使用して、前記位置情報によって示される前記仲介サーバにアクセスして、前記識別情報に対応付けられるアクセス情報を前記仲介サーバから取得する第1取得部であって、前記アクセス情報は前記ネットワークを介して通信可能な対象サーバにアクセスするための情報であり、前記対象サーバは特定のサービスを提供するサーバである、前記第1取得部と、
取得されるアクセス情報を使用して、前記対象サーバにアクセスして、前記特定のサービスを使用するための設定情報を前記対象サーバから取得する第2取得部と、
を備える、デバイス。
【請求項2】
請求項1に記載のデバイスであって、
前記所定の状態は、秘密鍵と、前記秘密鍵に対応付けられるとともに前記対象サーバとの通信で使用すべき証明書と、を含む対象情報が前記第1記憶領域に格納されていない状態である、
デバイス。
【請求項3】
請求項1または2に記載のデバイスであって、
前記所定の状態は、前記特定情報を含む対象情報が前記第1記憶領域に格納されていない状態である、
デバイス。
【請求項4】
請求項1または2に記載のデバイスであって、さらに、
第2記憶領域と、
前記対象サーバから取得される設定情報を第2記憶領域に格納する第2格納処理部と、
前記対象サーバから新たな特定情報を取得する第3取得部と、
前記新たな特定情報を前記第1記憶領域に格納する第3格納処理部と、
前記外部装置から送信される前記特定情報、または、前記新たな特定情報である、前記第1記憶領域に格納される最新の特定情報を前記第1記憶領域から削除せずに、前記設定情報を前記第2記憶領域から削除するリセットを実行するリセット処理部と、
を備える、デバイス。
【請求項5】
請求項4に記載のデバイスであって、さらに、
前記リセットを実行すべき場合に、前記識別情報に対応付けられる前記アクセス情報を前記仲介サーバに登録する指示を、前記対象サーバに送信する登録処理部を備える、デバイス。
【請求項6】
請求項1または2に記載のデバイスであって、さらに、
前記特定情報の前記要求を前記外部装置に送信する要求送信部を備え、
前記特定情報は、前記特定情報の前記要求に応じて前記外部装置から送信され、
前記特定情報の前記要求の送信と前記特定情報の受信とは、FIDO Device Onboarding (FDO) のDevice Initialize Protocol (DI)に従って、行われる、
デバイス。
【請求項7】
請求項1または2に記載のデバイスであって、
前記仲介サーバからの前記アクセス情報の取得は、FIDO Device Onboarding (FDO) のTransfer Ownership Protocol 1 (TO1)に従って、行われる、
デバイス。
【請求項8】
請求項1または2に記載のデバイスであって、
前記対象サーバからの前記設定情報の取得は、FIDO Device Onboarding (FDO) のTransfer Ownership Protocol 2 (TO2) に従って、行われる、
デバイス。
【請求項9】
コンピュータプログラムであって、
デバイスの状態が所定の状態か否かを判断する判断機能と、
特定情報の要求を外部装置に送信する要求送信処理と、前記特定情報を第1記憶領域に格納する格納処理と、の一方、または、両方を含む対象処理を、前記デバイスの状態が前記所定の状態である場合には禁止せずに、前記デバイスの前記状態が前記所定の状態でない場合に前記対象処理を禁止する、禁止処理機能であって、前記特定情報は、ネットワークを介して前記デバイスと通信可能な仲介サーバの位置情報と、前記デバイスに割り当てられる識別情報と、を含む、前記禁止処理機能と、
前記外部装置から前記デバイスに前記特定情報が送信される場合に、前記特定情報を受信する特定情報受信機能と、
前記格納処理が禁止されない場合に、前記格納処理を実行する第1格納処理機能と、
前記第1記憶領域に格納される前記特定情報を使用して、前記位置情報によって示される前記仲介サーバにアクセスして、前記識別情報に対応付けられるアクセス情報を前記仲介サーバから取得する第1取得機能であって、前記アクセス情報は前記ネットワークを介して通信可能な対象サーバにアクセスするための情報であり、前記対象サーバは特定のサービスを提供するサーバである、前記第1取得機能と、
取得されるアクセス情報を使用して、前記対象サーバにアクセスして、前記特定のサービスを使用するための設定情報を前記対象サーバから取得する第2取得機能と、
をコンピュータに実現させる、コンピュータプログラム。
【請求項10】
ネットワークに接続可能なデバイスによって実行される方法であって、
デバイスの状態が所定の状態か否かを判断する判断工程と、
特定情報の要求を外部装置に送信する要求送信処理と、前記特定情報を第1記憶領域に格納する格納処理と、の一方、または、両方を含む対象処理を、前記デバイスの状態が前記所定の状態である場合には禁止せずに、前記デバイスの前記状態が前記所定の状態でない場合に前記対象処理を禁止する、禁止処理工程であって、前記特定情報は、ネットワークを介して前記デバイスと通信可能な仲介サーバの位置情報と、前記デバイスに割り当てられる識別情報と、を含む、前記禁止処理工程と、
前記外部装置から前記デバイスに前記特定情報が送信される場合に、前記特定情報を受信する特定情報受信工程と、
前記格納処理が禁止されない場合に、前記格納処理を実行する第1格納処理工程と、
前記第1記憶領域に格納される前記特定情報を使用して、前記位置情報によって示される前記仲介サーバにアクセスして、前記識別情報に対応付けられるアクセス情報を前記仲介サーバから取得する第1取得工程であって、前記アクセス情報は前記ネットワークを介して通信可能な対象サーバにアクセスするための情報であり、前記対象サーバは特定のサービスを提供するサーバである、前記第1取得工程と、
取得されるアクセス情報を使用して、前記対象サーバにアクセスして、前記特定のサービスを使用するための設定情報を前記対象サーバから取得する第2取得工程と、
を備える、方法。
【発明の詳細な説明】
【技術分野】
【0001】
本明細書は、デバイスがサーバと通信する技術に関する。
【背景技術】
【0002】
ネットワークを介してデバイスとサーバとを接続するための種々の仕組みが知られている。非特許文献1の技術では、デバイスの製造工程において、デバイス毎にユニークな情報を含むクレデンシャルがデバイスに格納される。デバイスの製造者は、クレデンシャルに対応付けられるバウチャーを発行する。サービスを提供するサーバと、デバイスとは、クレデンシャルとバウチャーを使用して、安全に接続される。
【先行技術文献】
【非特許文献】
【0003】
【非特許文献1】"FIDO Device Onboard Specification 1.1",[online],令和4年4月19日, FIDO Alliance, [令和5年1月6日検索],インターネット<URL:https://fidoalliance.org/specs/FDO/FIDO-Device-Onboard-PS-v1.1-20220419/FIDO-Device-Onboard-PS-v1.1-20220419.html>
【発明の概要】
【発明が解決しようとする課題】
【0004】
クレデンシャルのような特定情報がデバイスに不正に格納される場合には、デバイスとサーバとの安全な接続が実現できない可能性がある。
【0005】
本明細書は、デバイスに情報が不正に格納される可能性を低減する技術を開示する。
【課題を解決するための手段】
【0006】
本明細書に開示された技術は、以下の適用例として実現することが可能である。
【0007】
[適用例1]ネットワークに接続可能なデバイスであって、第1記憶領域と、デバイスの状態が所定の状態か否かを判断する判断部と、特定情報の要求を外部装置に送信する要求送信処理と、前記特定情報を前記第1記憶領域に格納する格納処理と、の一方、または、両方を含む対象処理を、前記デバイスの状態が前記所定の状態である場合には禁止せずに、前記デバイスの前記状態が前記所定の状態でない場合に前記対象処理を禁止する、禁止処理部であって、前記特定情報は、ネットワークを介して前記デバイスと通信可能な仲介サーバの位置情報と、前記デバイスに割り当てられる識別情報と、を含む、前記禁止処理部と、前記外部装置から前記デバイスに前記特定情報が送信される場合に、前記特定情報を受信する特定情報受信部と、前記格納処理が禁止されない場合に、前記格納処理を実行する第1格納処理部と、前記第1記憶領域に格納される前記特定情報を使用して、前記位置情報によって示される前記仲介サーバにアクセスして、前記識別情報に対応付けられるアクセス情報を前記仲介サーバから取得する第1取得部であって、前記アクセス情報は前記ネットワークを介して通信可能な対象サーバにアクセスするための情報であり、前記対象サーバは特定のサービスを提供するサーバである、前記第1取得部と、取得されるアクセス情報を使用して、前記対象サーバにアクセスして、前記特定のサービスを使用するための設定情報を前記対象サーバから取得する第2取得部と、を備える、デバイス。
【0008】
この構成によれば、特定情報の要求を外部装置に送信する要求送信処理と、特定情報を第1記憶領域に格納する格納処理と、の一方、または、両方を含む対象処理が、デバイスの状態が所定の状態でない場合に禁止されるので、デバイスに情報が不正に格納される可能性を低減できる。
【0009】
なお、本明細書に開示の技術は、種々の態様で実現することが可能であり、例えば、デバイス、デバイスに情報を格納する方法、デバイスによって実行される方法、デバイスをサーバに接続する方法、デバイスの制御方法、それらの方法または装置の機能を実現するためのコンピュータプログラム、そのコンピュータプログラムを記録した記録媒体(例えば、一時的ではない記録媒体)、等の形態で実現することができる。
【図面の簡単な説明】
【0010】
【
図1】一実施例としてのシステムを示す説明図である。
【
図2】初期設定処理の例を示すシーケンス図である。
【
図3】(A)-(H)は、処理に使用される情報の例を示す説明図である。
【
図4】バウチャー登録処理の例を示すシーケンス図である。
【
図5】接続設定処理の例を示すシーケンス図である。
【
図6】リセット処理の例を示すシーケンス図である。
【
図8】(A)、(B)は、初期設定処理とリセット処理との別の実施例を示すシーケンス図である。
【
図9】初期設定処理の別の実施例を示すシーケンス図である。
【発明を実施するための形態】
【0011】
A.第1実施例:
A1.システムの構成:
図1は、一実施例としてのシステムを示す説明図である。このシステム1000は、プリンタ100と、設定装置500と、仲介サーバ200と、サービスサーバ300と、を含む。設定装置500は、第1ローカルエリアネットワークLN1に接続されている。設定装置500と第1ローカルエリアネットワークLN1とは、プリンタ100の製造事業者によって管理されている。プリンタ100の製造時には、プリンタ100は、初期化のために、第1ローカルエリアネットワークLN1に接続される(詳細は、後述)。第1ローカルエリアネットワークLN1は、図示しないルータを介して、インターネットITに接続され得る。サーバ200、300は、それぞれ、インターネットITに接続されている。また、ユーザによる使用時には、プリンタ100は、第2ローカルエリアネットワークLN2に接続される。第2ローカルエリアネットワークLN2は、ユーザによって管理されている。第2ローカルエリアネットワークLN2は、図示しないルータを介して、インターネットITに接続されている。
【0012】
プリンタ100は、プロセッサ110と、記憶装置115と、表示部140と、操作部150と、印刷実行部160と、通信インタフェース180とを、有している。これらの要素は、図示しないバスを介して互いに接続されている。
【0013】
表示部140は、液晶ディスプレイ、有機ELディスプレイなどの、画像を表示するように構成された装置である。操作部150は、ボタン、レバー、表示部140上に重ねて配置されたタッチパネルなどの、ユーザによる操作を受け取るように構成された装置である。通信インタフェース180は、他の装置と通信するためのインタフェースである(例えば、有線LAN、IEEE802.11の無線LAN、のうちの1種以上のインタフェースを含む)。通信インタフェース180は、第1ローカルエリアネットワークLN1、または、第2ローカルエリアネットワークLN2に、接続される。
【0014】
印刷実行部160は、画像を印刷する装置である。本実施例では、印刷実行部160は、いわゆるインクジェットプリンタである。印刷実行部160は、1種類以上の印刷材(例えば、シアンとマゼンタとイエローとブラックの4色のインク)を使用して、画像を印刷するように構成されている。なお、印刷実行部160は、他の方式で画像を印刷する装置であってよい(例えば、レーザープリンタ)。
【0015】
プロセッサ110は、データを処理するように構成された装置である。プロセッサ110は、例えば、CPU(Central Processing Unit)、または、SoC(System on a chip)である。記憶装置115は、揮発性記憶装置120と、第1不揮発性記憶装置130と、第2不揮発性記憶装置135と、を含む。揮発性記憶装置120は、例えば、DRAMであり、第1不揮発性記憶装置130は、例えば、フラッシュメモリであり、第2不揮発性記憶装置135は、例えば、セキュリティチップである。揮発性記憶装置120は、処理に使用されるデータ(例えば、設定装置500などの外部装置から受信したデータ)を一時的に格納するバッファとして、使用される。セキュリティチップは、データを保護する機能を有する記憶装置である。セキュリティチップは、例えば、記憶領域に対する自由なデータの読み書きと削除とを禁止し得る。本実施例では、第2不揮発性記憶装置135とプログラムPG1とは、プロセッサ110がプログラムPG1に従って第2不揮発性記憶装置135にアクセスする場合に、第2不揮発性記憶装置135の記憶領域SAsに対するデータの読み書きと削除とが許容されるように、構成されている。セキュリティチップとしては、例えば、Trusted Computing Group (TCG)によって策定された規格に準拠したTrusted platform module (TPM)が採用されてよい。
【0016】
第1不揮発性記憶装置130の記憶領域SAn(通常記憶領域SAnとも呼ぶ)は、プログラムPG1と、サービス設定情報SIと、のそれぞれのデータを格納している。プログラムPG1に従ってプロセッサ110によって実行される処理は、サービスサーバ300との接続のための設定処理(オンボーディングとも呼ばれる)と、設定処理の後のサービスのための処理と、を含む。サービス設定情報SIは、サービスのための処理で使用される情報であり、設定処理によって、通常記憶領域SAnに格納される。プログラムPG1のデータは、プリンタ100の製造時に、通常記憶領域SAnに格納される。なお、プログラムPG1は、ネットワークを通じて図示しないサーバから、または、プリンタ100に接続された図示しない携帯記憶装置(例えば、USBフラッシュドライブ)から、通常記憶領域SAnに格納されてよい。
【0017】
第2不揮発性記憶装置135の記憶領域SAs(セキュア記憶領域SAsとも呼ぶ)は、クレデンシャルCIと、秘密鍵SKと、証明書CTと、のそれぞれのデータを格納している。これらの情報CI、SK、CTのそれぞれのデータは、設定処理によって、セキュア記憶領域SAsに格納される。情報CI、SK、CTの詳細については、後述する。なお、図中の完了フラグFLG、後述する第2実施例で使用される。本実施例では、完了フラグFLGは、省略される。
【0018】
設定装置500は、製造事業者の計算機であり、例えば、パーソナルコンピュータ、スマートフォン、または、タブレットコンピュータである。設定装置500は、プロセッサ510と、記憶装置515と、表示部540と、操作部550と、通信インタフェース580とを、有している。これらの要素は、図示しないバスを介して互いに接続されている。
【0019】
表示部540は、液晶ディスプレイ、有機ELディスプレイなどの、画像を表示するように構成された装置である。操作部550は、ボタン、レバー、表示部540上に重ねて配置されたタッチパネルなどの、ユーザによる操作を受け取るように構成された装置である。通信インタフェース580は、他の装置と通信するためのインタフェースである(例えば、有線LAN、IEEE802.11の無線LAN、のうちの1種以上のインタフェースを含む)。通信インタフェース580は、第1ローカルエリアネットワークLN1に接続されている。
【0020】
プロセッサ510は、データを処理するように構成された装置である(例えば、CPU、または、SoC)。記憶装置515は、揮発性記憶装置520と、不揮発性記憶装置530と、を含む。揮発性記憶装置520は、例えば、DRAMであり、不揮発性記憶装置530は、例えば、フラッシュメモリである。
【0021】
不揮発性記憶装置530は、プログラムPG5のデータを格納している。プログラムPG5に従ってプロセッサ510によって実行される処理は、後述する初期設定処理を含む。
【0022】
次に、サーバ200、300のハードウェア構成について説明する。本実施例では、サーバ200、300は、類似するハードウェア構成を有している。サーバ200、300は、プロセッサ210、310と、記憶装置215、315と、通信インタフェース280、380とを、それぞれ有している。各サーバにおいて、これらの要素は、図示しないバスを介して互いに接続されている。通信インタフェース280、380は、他の装置と通信するためのインタフェースである(例えば、有線LAN、IEEE802.11の無線LAN、のうちの1種以上のインタフェースを含む)。各通信インタフェース280、380は、インターネットITに接続されている。プロセッサ210、310は、データを処理するように構成された装置である(例えば、CPU、または、SoC)。記憶装置215、315は、揮発性記憶装置220、320と、不揮発性記憶装置230、330とを、それぞれ含む。揮発性記憶装置220、320は、例えば、DRAMであり、不揮発性記憶装置230、330は、例えば、フラッシュメモリである。
【0023】
次に、各サーバ200、300について、説明する。サービスサーバ300は、プリンタ100を使用するサービスを提供するための処理を実行する。プリンタ100を使用するサービスは、消耗品(インク、用紙など)の残量をネットワークを介して取得し、残量に応じて消耗品をユーザに配送する配送サービス、ネットワークを介してプリンタ100に画像を印刷させるサービスなど、種々のサービスであってよい。サービスサーバ300は、サービスを提供するサービス事業者によって、運用される。
【0024】
サービスサーバ300の不揮発性記憶装置330は、プログラムPG3と、バウチャーVC1aと、のそれぞれのデータを格納している。プロセッサ310は、プログラムPG3を実行することによって、サービスを提供するための種々の処理を実行する(詳細は、後述)。プログラムPG3は、サービス事業者によって、サービスサーバ300にアップロードされる。バウチャーVC1aは、プリンタ100とのサービスのための接続の確立に、使用される(詳細は、後述)。
【0025】
仲介サーバ200は、適切なサーバに接続するための接続情報(例えば、IPアドレス、URL等)を、デバイス(例えば、プリンタ100)に提供する。仲介サーバ200を運用する事業者は、プリンタ100の製造事業者である。これに代えて、仲介サーバ200を運用する事業者は、製造事業者とは異なる事業者であってよい。
【0026】
仲介サーバ200の不揮発性記憶装置230は、プログラムPG2と、アクセス情報テーブルT2と、のそれぞれのデータを格納している。プロセッサ210は、プログラムPG2を実行することによって、接続情報を提供するための種々の処理を実行する(詳細は、後述)。プログラムPG2は、仲介サーバ200を運用する事業者によって、仲介サーバ200にアップロードされる。アクセス情報テーブルT2Aの詳細については、後述する。
【0027】
A2.初期設定処理:
図2は、初期設定処理の例を示すシーケンス図である。初期設定処理は、例えば、プリンタ100(
図1)の製造工程の最後に、行われる。後述するように、初期設定処理によって、プリンタ100の第2不揮発性記憶装置135のセキュア記憶領域SAsに、情報CI、SK、CTのデータが格納される。初期設定処理は、プリンタ100と設定装置500とが第1ローカルエリアネットワークLN1を介して通信可能な状態で、行われる。なお、初期設定処理は、第1ローカルエリアネットワークLN1がインターネットITから切り離された状態で、行われてよい。
【0028】
図中には、装置100、500の種々のステップが示されている。これらのステップは、装置100、500のプロセッサ110、510によって、それぞれ実行される。以下、装置100、500のプロセッサ110、510が処理を実行することを、単に、装置100、500が処理を実行する、とも表現する。
【0029】
S110では、プリンタ100に、初期設定処理の開始指示が入力される。例えば、作業者は、プリンタ100の操作部150を操作することによって、開始指示を入力する。開始指示に応じて、プリンタ100は、初期設定処理を開始する。
【0030】
S120では、プリンタ100は、プリンタ100の状態が、初期化を許容する所定の状態であるか否かを判断する。本実施例では、所定の状態は、クレデンシャルCIと秘密鍵SKと証明書CTとのいずれもがセキュア記憶領域SAsに格納されていない第1状態ST1である(クレデンシャルCIは、後述する初期クレデンシャルCI1と、更新されたクレデンシャル(例えば、第2クレデンシャルCI2)と、を含む)。後述するように、情報CI、SK、CTのデータは、初期設定処理によって、セキュア記憶領域SAsに格納される。従って、初期設定処理が実行される前には、プリンタ100の状態は、第1状態ST1である。初期設定処理の完了後には、プリンタ100の状態は、第1状態ST1とは異なる。
【0031】
プリンタ100の状態が所定の状態でない場合(S120:No)、プリンタ100は、S130で、後述するS205の処理を禁止して実行せずに、初期化処理を終了する。以上により、初期設定処理の完了後に、プリンタ100に、初期設定処理の開始指示が誤って入力される場合に、情報CI、SK、CTの意図しない更新は、回避可能である。なお、S130では、プリンタ100は、表示部140にエラーメッセージを表示することが好ましい。
【0032】
プリンタ100の状態が所定の状態である場合(S120:Yes)、プリンタ100は、デバイス初期化処理S200を開始する(単に、初期化処理S200とも呼ぶ)。本実施例では、プリンタ100と設定装置500とは、「FIDO Device Onboard (FDO) protocols」(以下、「FDOプロトコル」と呼ぶ)の「Device Initialize Protocol (DI)」に従って、初期化処理S200を実行する。FDOプロトコルは、例えば、上記の「FIDO Device Onboard Specification」(以下、「FDO仕様書」と呼ぶ)によって、規定されている。
【0033】
初期化処理S200は、S205-S250を含んでいる。S205では、プリンタ100は、クレデンシャルの要求を、設定装置500に送信する。S210では、設定装置500は、要求に応じて、クレデンシャルを生成する(製造クレデンシャルと呼ぶ)。
図3(A)-
図3(H)は、処理に使用される情報の例を示す説明図である。
図3(A)は、製造クレデンシャルの例を示している。製造クレデンシャルCImは、プロトコル情報PIと、仲介サーバ情報RSIと、GUIDと、デバイス情報DIと、公開鍵PKmと、を含む。
【0034】
プロトコル情報PIは、FDOプロトコルのバージョンを示している。仲介サーバ情報RSIは、ランデブーインフォとも呼ばれ、仲介サーバのネットワーク上の位置を示す位置情報(例えば、IPアドレス、URL等)を含む。本実施例では、仲介サーバ情報RSIは、仲介サーバ200(
図1)を示している。GUID(
図2(A))は、プリンタ100の識別子であり、ランダムな値に設定される。以下、S210で生成されるGUIDが、GUID1であることとする。デバイス情報DIは、プリンタ100の製造事業者によって任意に記述されるプリンタ100に関する情報である。公開鍵PKmは、プリンタ100の製造事業者が有する秘密鍵(製造秘密鍵と呼ぶ)に対応付けられる公開鍵である。以下、S210で生成される公開鍵PKmが、PKm1であることとする。
【0035】
S215(
図2)では、設定装置500は、製造クレデンシャルCImのデータをプリンタ100に送信する。S220では、プリンタ100は、ランダムな値を使用してシークレットSCを生成する。
【0036】
S225では、プリンタ100は、シークレットSCと製造クレデンシャルCImとを使用して、最終的なクレデンシャルCIを生成する(デバイスクレデンシャルCIとも呼ぶ)。
図3(B)は、デバイスクレデンシャルの例を示している。デバイスクレデンシャルCI1(単に、クレデンシャルCI1とも呼ぶ)は、製造クレデンシャルCIm(
図2(A))に含まれる情報PI、RSI、GUID、DIと同じ情報を含む。クレデンシャルCI1は、更に、公開鍵ハッシュPKHと、シークレットSCと、を含む。公開鍵ハッシュPKHは、公開鍵PKm(
図2(A))を所定のハッシュ関数を使用して変換することによって得られるハッシュ値である。以下、公開鍵ハッシュPKHが、PKH1であることとする。S225では、プリンタ100は、生成したクレデンシャルCI1のデータを、セキュア記憶領域SAsに格納する。以下、クレデンシャルCI1を、初期クレデンシャルCI1と呼ぶ。
【0037】
S230では、プリンタ100は、HMAC(Keyed-Hashing for Message Authentication Code)を生成する。本実施例では、プリンタ100は、シークレットSCを秘密鍵として使用し、製造クレデンシャルCImをメッセージとして使用することによって、HMACを算出する。以下、生成されるHMACが、HMAC1であることとする。S235では、プリンタ100は、生成したHMAC1のデータを、設定装置500に送信する。
【0038】
S240では、設定装置500は、製造クレデンシャルCImとHMAC(ここでは、HMAC1)とを使用して、バウチャーを生成する。
図3(C)は、バウチャーの例を示している。バウチャーVC1は、バウチャーヘッダVHを含んでいる。バウチャーヘッダVH1は、上述した情報PI、RSI、GUID、DI、PKm、HMACを含んでいる。以下、バウチャーVC1を、初期バウチャーVC1とも呼ぶ。
【0039】
S245では、設定装置500は、生成した初期バウチャーVC1のデータを、不揮発性記憶装置530に格納する。S250では、設定装置500は、完了通知を、プリンタ100に送信する。
【0040】
初期化処理S200の後、証明書準備処理S260が行われる。証明書準備処理S260は、S262、S264、S266を含んでいる。S262では、設定装置500は、秘密鍵SKと、秘密鍵SKに対応付けられる証明書CTと、を取得する。秘密鍵SKと証明書CTとは、プリンタ100とサービスサーバ300との通信の安全性を向上するために、使用される。本実施例では、証明書CTは、クライアント認証のためのクライアント証明書として使用される。
【0041】
本実施例では、設定装置500は、ランダムな値を使用して秘密鍵SKを生成する。設定装置500は、秘密鍵SKを使用して、証明書CTを生成する。証明書CTの構成は、秘密鍵SKと証明書CTとを使用することによって通信の安全性を向上可能な、任意の構成であってよい。本実施例では、証明書CTは、秘密鍵SKに対応する公開鍵PKcと、署名Scと、を含んでいる。署名Scは、公開鍵PKcを含む特定の情報と、認証局の秘密鍵とを使用して、生成される。本実施例では、設定装置500が、認証局として、署名Sc(ひいては、証明書CT)を生成する(すなわち、設定装置500の不揮発性記憶装置530には、認証局の秘密鍵のデータが、予め格納される)。
【0042】
これに代えて、設定装置500は、外部の認証局サーバ(図示せず)に、秘密鍵SKと証明書CTとの生成を要求してよい。そして、設定装置500は、認証局サーバから、秘密鍵SKと証明書CTとのそれぞれのデータを取得してよい。また、設定装置500は、自分で秘密鍵SKと公開鍵PKcとを生成し、公開鍵PKcを含む特定情報を認証局サーバに送信してよい。そして、設定装置500は、認証局サーバによって生成された証明書CTを認証局サーバから取得してよい。
【0043】
S264では、設定装置500は、秘密鍵SKと証明書CTとのそれぞれのデータを、プリンタ100に送信する。S266では、プリンタ100は、秘密鍵SKと証明書CTとのそれぞれのデータを、セキュア記憶領域SAsに格納する。そして、
図2の初期設定処理は、終了する。初期設定処理の後、プリンタ100は、第1ローカルエリアネットワークLN1から切り離され、そして、出荷される。
【0044】
A3.バウチャー登録処理:
図4は、バウチャー登録処理の例を示すシーケンス図である。本実施例では、プリンタ100は、サービスサーバ300を運用するサービス事業者によって提供されるサービスに、使用されることとする。例えば、サービス事業者は、製造事業者からプリンタ100を取得し、取得したプリンタ100をユーザに提供する。製造事業者は、プリンタ100の使用が開始される前に、バウチャー登録処理を開始する。バウチャー登録処理は、第1ローカルエリアネットワークLN1(
図1)がインターネットITに接続された状態で、行われる。
【0045】
図中には、装置200、300、500の種々のステップが示されている。これらのステップは、装置200、300、500のプロセッサ210、310、510によって、それぞれ実行される。以下、装置200、300、500のプロセッサ210、310、510が処理を実行することを、単に、装置200、300、500が処理を実行する、とも表現する。
【0046】
S310では、設定装置500は、プリンタ100の新しいオーナーがサービス事業者であることを示すエントリを、S240(
図2)で生成された初期バウチャーVC1に追加する。
図3(D)は、エントリの追加によって得られるバウチャーVC1aの例を示している。バウチャーVC1aは、初期バウチャーVC1(
図3(C))と第1エントリET1とを含んでいる。以下、バウチャーVC1aを、第1バウチャーVC1aと呼ぶ。
【0047】
第1エントリET1は、公開鍵PKsと、署名SDと、を含んでいる。公開鍵PKsは、新オーナー(ここでは、サービス事業者)の秘密鍵に対応付けられる公開鍵である。署名SDは、公開鍵PKsを含む情報を旧オーナー(ここでは、製造事業者)の秘密鍵を使用して暗号化することによって得られる。1個のエントリは、所有権の1回の移転を示している。所有権の移転がN回(Nは、ゼロ以上の整数)行われる場合、バウチャーVCは、N個のエントリを含む。最後のエントリの公開鍵に対応付けられるオーナーが、最新のオーナーである。以下、第1バウチャーVC1aの第1エントリET1において、公開鍵PKsがPKs1であり、署名SDがSD1であることとする。
【0048】
S320(
図4)では、設定装置500は、第1バウチャーVC1aのデータを、サービスサーバ300に送信する。S330では、サービスサーバ300は、第1バウチャーVC1aのデータを、不揮発性記憶装置330に格納する。
【0049】
S340では、サービスサーバ300は、第1バウチャーVC1aとアクセス情報IXaとの登録指示を、仲介サーバ200に送信する。この指示は、第1バウチャーVC1aのデータと、アクセス情報IXaのデータと、を含む。アクセス情報IXaは、サービスサーバ300にアクセスするための情報である。
図3(E)は、アクセス情報の例を示している。アクセス情報IXは、ネットワーク上の位置情報(例えば、IPアドレス、URLなど)と、ポート番号と、プロトコルと、を含む。サービスサーバ300は、自身の位置情報を使用して、サービスサーバ300を示すアクセス情報IXaを生成する。S340は、FDOプロトコルの「Transfer Ownership Protocol 0 (TO0)」に従って、行われる。
【0050】
S350では、仲介サーバ200は、第1バウチャーVC1aに含まれるGUID1と、アクセス情報IXaとを、アクセス情報テーブルT2に登録する。
図3(F)は、アクセス情報テーブルT2の例を示している。アクセス情報テーブルT2は、GUIDとアクセス情報IXとの対応関係を示している。第1行は、S350で登録されるGUID1とアクセス情報IXaとを示している。
【0051】
以上により、バウチャー登録処理は、終了する。なお、S340の処理は、サービスサーバ300に代えて、設定装置500によって、実行されてよい。
【0052】
A4.接続設定処理(オンボーディングの処理):
図5は、接続設定処理の例を示すシーケンス図である。本実施例では、ユーザによるプリンタ100(
図1)の使用の開始時に、接続設定処理が行われる。接続設定処理は、プリンタ100が第2ローカルエリアネットワークLN2に接続された状態で、行われる。
【0053】
図中には、装置100、200、300の種々のステップが示されている。これらのステップは、装置100、200、300のプロセッサ110、210、310によって、それぞれ実行される。以下、装置100、200、300のプロセッサ110、210、310が処理を実行することを、単に、装置100、200、300が処理を実行する、とも表現する。
【0054】
S405で、ユーザは、プリンタ100の電源を投入する。本実施例では、プリンタ100は、電源投入を、ネットワークへの接続指示として扱う。プリンタ100は、接続指示に応じて、
図5の処理を開始する。
【0055】
S410では、プリンタ100は、接続設定処理が要るか否かを判断する。接続設定処理が要ると判断するための接続処理条件は、種々の条件であってよい。本実施例では、接続処理条件は、サービス設定情報SIが通常記憶領域SAnに格納されていないことである。
【0056】
接続処理条件が満たされる場合(S410:Yes)、プリンタ100は、S420で、仲介サーバ200と通信する。S420(S422、S424を含む)では、プリンタ100は、FDOプロトコルの「Transfer Ownership Protocol 1 (TO1)」に従って、仲介サーバ200からアクセス情報IXaを取得する。S422では、プリンタ100は、セキュア記憶領域SAsから最新のクレデンシャルCI1(
図3(B))の仲介サーバ情報RSIとGUID1とを取得する。仲介サーバ情報RSIは、仲介サーバ200を示している。プリンタ100は、GUID1のデータを、仲介サーバ200に送信する。S424では、仲介サーバ200は、アクセス情報テーブルT2(
図3(F))を参照し、そして、GUID1に対応付けられるアクセス情報IXaのデータを、プリンタ100に送信する。
【0057】
S420の後、S500で、プリンタ100は、アクセス情報IXaによって示されるサービスサーバ300と通信する。S500では、プリンタ100は、FDOプロトコルの「Transfer Ownership Protocol 2 (TO2)」に従って、サービスサーバ300との接続を行う。
【0058】
S505では、プリンタ100は、バウチャーを検証する。バウチャーの検証は、例えば、以下のように行われる。プリンタ100は、最新のクレデンシャルCI1(
図3(B))に含まれるGUID1のデータを、サービスサーバ300に送信する。サービスサーバ300は、GUID1を示す第1バウチャーVC1a(
図3(D))のデータと、メッセージ署名のデータとを、プリンタ100に送信する。メッセージ署名は、サービス事業者の秘密鍵を使用して、生成される。サービス事業者の秘密鍵は、第1バウチャーVC1aのエントリET1に含まれる公開鍵PKs1に対応付けられる秘密鍵である。プリンタ100は、クレデンシャルCI1と第1バウチャーVC1aとを使用する検証を行う。本実施例では、この検証の方法は、FDO仕様書のTO2の解説で説明されているFDOデバイスによるバウチャーの検証方法と同じである。この検証では、クレデンシャルCI1の公開鍵ハッシュPKHを使用して、第1バウチャーVC1aのヘッダVHの公開鍵PKmが検証される。検証済の公開鍵PKmを使用して、第1エントリET1の署名SD1が検証される。バウチャーが複数のエントリを含む場合には、検証済のエントリの公開鍵を使用して次のエントリの署名を検証する処理が、繰り返される。プリンタ100は、検証済の最後のエントリ(本実施例では、第1エントリET1)に含まれる公開鍵(ここでは、公開鍵PKs1)を使用して、メッセージ署名を検証する。以上により、第1バウチャーVC1aが検証される。
【0059】
また、S505では、プリンタ100とサービスサーバ300とは、予め決められたフォーマットの情報(例えば、EAT(Entity Attestation Token))を使用して、互いにの正当性を検証する。
【0060】
本実施例では、S505のバウチャーの検証と正当性の検証とが成功することとする。図示を省略するが、バウチャーの検証、または、正当性の検証が失敗する場合、プリンタ100とサービスサーバ300とは、処理を終了する。
【0061】
S505の後、S510では、設定装置500は、クレデンシャルの更新のための新情報を生成する。新情報は、クレデンシャルに含まれる種々の要素の情報であってよい。本実施例では、サービスサーバ300は、公開鍵PKmとGUIDと仲介サーバ情報RSIとを新たに生成する。サービスサーバ300は、ランダムな値を使用して秘密鍵を生成し、秘密鍵に対応付けられる公開鍵PKmを算出する(以下、算出される公開鍵PKmがPKm2であることとする)。また、サービスサーバ300は、ランダムな値を使用してGUIDを生成する(以下、生成されるGUIDが、GUID2であることとする)。新たな仲介サーバ情報RSIは、第1バウチャーVC1aに含まれる仲介サーバ情報RSIと同じであってよい。
【0062】
S515では、サービスサーバ300は、生成した新情報PKm2、GUID2、RSIのデータを、プリンタ100に送信する。S520では、プリンタ100は、セキュア記憶領域SAsに格納されている最新のクレデンシャルCI1に新情報PKm2、GUID2、RSIを適用することによって、更新済のクレデンシャルCI2を生成する(第2クレデンシャルCI2と呼ぶ)。プリンタ100は、生成した第2クレデンシャルCI2のデータを、セキュア記憶領域SAsに格納する。
図3(G)は、第2クレデンシャルCI2の例を示している。GUIDは、サービスサーバ300から提供されたGUID2に設定される。公開鍵ハッシュPKHは、新しい公開鍵PKm2から算出されるハッシュ値PKH2に設定される。仲介サーバ情報RSIは、サービスサーバ300から提供された仲介サーバ情報RSIに設定される。他の要素(例えば、プロトコル情報PI)の値は、更新前のクレデンシャルCI1の対応する要素の値と同じである。なお、プリンタ100は、初期クレデンシャルCI1のデータを削除せずに、維持する。
【0063】
S525では、プリンタ100は、シークレットSCと第2クレデンシャルCI2とを使用して、HMACを生成する(生成されるHMACが、HMAC2であることとする)。S530では、プロセッサ110は、生成したHMAC2のデータを、サービスサーバ300に送信する。
【0064】
S535では、サービスサーバ300は、S510で生成された新情報と、S530で取得されるHMAC2と、を使用して、新たなバウチャーVC2を生成する(第2バウチャーVC2と呼ぶ)。
図3(H)は、第2バウチャーVC2の例を示している。第2バウチャーVC2は、バウチャーヘッダVH2を含んでいる。バウチャーヘッダVH2は、新情報GUID2、PKm2、RSIと、新たなHMAC2と、を示している。なお、第2バウチャーVC2の複数の要素のうち、新情報と新たなHMACと以外の要素(例えば、プロトコル情報PI)は、S505の検証に使用された第1バウチャーVC1aの対応する要素と同じ値に設定されてよい。また、本実施例では、サービスサーバ300は、エントリの無い第2バウチャーVC2を生成する。バウチャーヘッダVH2の公開鍵PKmはサービス事業者の秘密鍵に対応しているので、第2バウチャーVC2は、オーナーがサービス事業者であることを示している。なお、サービスサーバ300は、サービスサーバ300を示すエントリを第2バウチャーVC2に追加してよい。
【0065】
S540では、サービスサーバ300は、第2バウチャーVC2のデータを、不揮発性記憶装置330に格納する。
【0066】
プリンタ100は、S530の後、S560で、証明書CTを含む認証情報のデータを、サービスサーバ300に送信する。S565では、サービスサーバ300は、プリンタ100との接続を確立するために、認証情報を使用してプリンタ100を認証する。認証方法は、種々の方法であってよく、認証情報は、認証に使用される種々の情報を含んでよい。本実施例では、サービスサーバ300の不揮発性記憶装置330には、S262(
図2)で証明書CTの生成に使用された認証局の秘密鍵に対応する公開鍵(第1公開鍵と呼ぶ)のデータが、信用済の鍵として、予め格納される。サービスサーバ300は、第1公開鍵を使用して、証明書CTに含まれる署名を検証する(本実施例では、この検証に成功することとする)。なお、サービスサーバ300は、認証局の第1公開鍵を、認証局サーバ(図示せず)から取得してよい。
【0067】
なお、プリンタ100とサービスサーバ300との接続が許可されるための接続条件は、証明書CTを使用するクライアント認証の成功に加えて、サーバ認証の成功を含んでよい。サーバ認証の方法は、クライアント認証の方法におけるサーバとクライアントとの立場を入れ替えたものと同じである。サービスサーバ300は、サービスサーバ300の証明書(サーバ証明書と呼ぶ)を、プリンタ100に送信する。プリンタ100は、サーバ証明書に署名した認証局の公開鍵(第2公開鍵と呼ぶ)を使用して、サーバ証明書を検証する。第2公開鍵のデータは、プリンタ100のセキュア記憶領域SAsに、信用済の鍵として、予め格納されてよい。これに代えて、プリンタ100は、サーバ証明書に対応付けられる認証局サーバ(図示せず)から、第2公開鍵のデータを取得してよい。なお、第2公開鍵に対応する認証局は、第1公開鍵に対応する認証局と、同じであってよく、異なってよい。
【0068】
接続条件が満たされる場合、サービスサーバ300は、プリンタ100とのサービスのための接続を確立する。具体的には、S570で、サービスサーバ300は、プリンタ100を使用するサービスに使用されるサービス設定情報SIを生成し、サービス設定情報SIのデータを、プリンタ100に送信する。サービス設定情報SIは、サービスに使用される任意の情報であってよい(例えば、通信用のトークン、通信プロトコル、サービス用の識別番号、など)。S575では、プリンタ100は、サービス設定情報SIのデータを、通常記憶領域SAnに格納する。
【0069】
図示を省略するが、接続条件が満たされない場合(例えば、証明書CTの検証が失敗する場合)、サービスサーバ300は、S570を実行せずに、接続設定処理を終了する。この場合、プリンタ100は、セキュア記憶領域SAsの最新のクレデンシャルを、S520による更新の前のクレデンシャル(ここでは、初期クレデンシャルCI1)に戻すことが好ましい。サービスサーバ300は、プリンタ100のためのバウチャーを、S535による更新の前のバウチャー(ここでは、第1バウチャーVC1a)に戻すことが好ましい。
【0070】
S500の後、S650で、プリンタ100とサービスサーバ300とは、サービス設定情報SIを使用して、サービスのための通信を行う。
【0071】
以上により、接続設定処理が終了する。接続設定処理により、プリンタ100のクレデンシャルは、第2クレデンシャルCI2に更新される。サービスサーバ300は、第2クレデンシャルCI2に対応付けられる第2バウチャーVC2を取得する。そして、プリンタ100は、サービスのための処理で使用されるサービス設定情報SIを取得する。
【0072】
なお、S410で、接続設定処理が不要と判断される場合(S410:No)、プリンタ100は、S650へ移行する。本実施例では、S410の判断結果がNoである場合、通常記憶領域SAnに、サービス設定情報SIが格納済である。プリンタ100は、サービス設定情報SIを使用して、サービスサーバ300とサービスのための通信を行う。
【0073】
A5.リセット処理:
本実施例では、プリンタ100は、プリンタ100の状態を工場出荷時の状態に戻すファクトリリセットを実行することができる。例えば、解消が困難なエラーがプリンタ100に発生した場合や、第三者にプリンタ100を譲渡する場合などに、ユーザは、プリンタ100にファクトリリセットを実行させる。ファクトリリセットでは、プリンタ100は、プリンタ100がユーザに納品された後にプリンタ100の記憶装置115に格納されたデータ(例えば、第2クレデンシャルCI2、サービス設定情報SI)を、全て削除する。工場出荷時に記憶装置115に格納済のデータ(例えば、プログラムPG1、初期クレデンシャルCI1、秘密鍵SK、証明書CT)は、削除されない。
【0074】
ファクトリリセットによって第2クレデンシャルCI2とサービス設定情報SIとが削除されるので、ファクトリリセットの後には、プリンタ100は、そのままでは、サービスサーバ300とのサービスのための接続を確立することができない。ユーザが、サービスサーバ300を使用するサービスを、リセット処理の後にも使用したい場合、再度、上述した接続設定処理(
図5)が行われる。S505の検証処理では、プリンタ100は、削除された第2クレデンシャルCI2の代わりに、初期クレデンシャルCI1を使用する。サービスサーバ300は、更新済の第2バウチャーVC2を、プリンタ100に提供する。第2バウチャーVC2は、初期クレデンシャルCI1には対応していないので、初期クレデンシャルCI1と第2バウチャーVC2とを使用する検証は、失敗し得る。
【0075】
そこで、本実施例では、プリンタ100は、ファクトリリセットとは異なる再使用リセットを実行することができる。再使用リセットは、再使用リセットの後に接続設定処理が適切に行われるように、構成されている。以下、再使用リセットを含むリセット処理について、説明する。
【0076】
図6は、リセット処理の例を示すシーケンス図である。図中には、装置100、200、300の種々のステップが示されている。これらのステップは、装置100、200、300のプロセッサ110、210、310によって、それぞれ実行される。以下、装置100、200、300のプロセッサ110、210、310が処理を実行することを、単に、装置100、200、300が処理を実行する、とも表現する。
【0077】
S710では、ユーザは、操作部150を操作することによって、リセット指示をプリンタ100に入力する。リセット指示に応じて、プリンタ100は、リセット処理を開始する。
【0078】
S715では、プリンタ100は、使用中のサービスを特定する。本実施例では、プリンタ100は、通常記憶領域SAnからサービス設定情報を検索し、見つかったサービス設定情報に対応付けられるサービスを、使用中のサービスとして特定する。以下、サービス設定情報SIに対応付けられるサービスAが、特定されることとする。
【0079】
S720では、プリンタ100は、指示入力画面を表示部140に表示する。
図7は、指示入力画面の例を示す図である。指示入力画面UIは、メッセージMSと、ボタンB1、B2と、を含む。メッセージMSは、使用中のサービスの通知と、使用中のサービスをリセット後にも使用するか否かの問合せと、を表している。第1ボタンB1は、リセット後にサービスを使用する指示(再使用指示とも呼ぶ)を入力するためのボタンである。第2ボタンB2は、リセット後にサービスを使用しない指示を入力するためのボタンである。ユーザは、操作部150を操作することによって、これらの要素B1、B2を操作できる。
【0080】
第2ボタンB2が操作される場合、プリンタ100は、ファクトリリセットを実行してプリンタ100の状態を工場出荷時の状態に戻し、リセット処理を終了する(図示省略)。この場合、ユーザは、製造事業者、または、サービス事業者に、プリンタ100の初期設定処理とバウチャー登録処理とを要求してよい。
【0081】
第1ボタンB1が操作される場合(S725)、S730で、プリンタ100は、バウチャーとアクセス情報との登録指示を、使用中のサービスを提供するサービスサーバ300に送信する。この指示は、最新のクレデンシャルCI2に含まれるGUID2のデータを含んでいる。
【0082】
S735では、サービスサーバ300は、S730の指示に応じて、バウチャーとアクセス情報との登録指示を、仲介サーバ200に送信する。この指示は、S730で取得されるGUID2を示す第2バウチャーVC2のデータと、自身の位置情報を含むアクセス情報IXaのデータと、を含んでいる。第2バウチャーVC2のデータは、
図5のS540で、不揮発性記憶装置330に格納済である。S735は、FDOプロトコルのTO0に従って、行われる。
【0083】
S740では、仲介サーバ200は、第2バウチャーVC2に含まれるGUID2と、アクセス情報IXaとを、アクセス情報テーブルT2に登録する。
【0084】
プリンタ100は、S730の後、S745で、再使用指示のためのリセットである再使用リセットを実行する。ファクトリリセットと異なる点は、再使用リセットでは、最新のクレデンシャル(ここでは、第2クレデンシャルCI2)のデータは、削除されずに維持される点である。再使用リセットでは、プリンタ100は、サービス設定情報SIを、通常記憶領域SAnから削除し、第2クレデンシャルCI2と秘密鍵SKと証明書CTとのそれぞれのデータを、セキュア記憶領域SAsから削除せずに、維持する。
【0085】
以上のように、リセット指示(S710)に応じて、S715-S745を含むリセット処理S700が行われる。リセット処理S700の後、S405で、ユーザは、接続指示をプリンタ100に入力する(例えば、ユーザは、プリンタ100の電源を入れ直す)。接続指示に応じて、設定処理S800が行われる。この設定処理S800の手続きは、
図5の設定処理の手続きと、同じである。ただし、以下に説明するように、手続きに使用される情報の一部は、
図5の設定処理で使用される情報と異なっている。
【0086】
S410(
図6)では、サービス設定情報SIが通常記憶領域SAnに格納されていないので、判断結果はYesである。この場合、S420Aの処理(TO1の処理)と、S500Aの処理(TO2の処理)と、が行われる。
【0087】
S420Aの処理は、GUID1に代えてGUID2が使用される点を除いて、
図5のS420の処理と同じである。プリンタ100は、GUID2に対応付けられるアクセス情報IXaのデータを、仲介サーバ200から取得する。
【0088】
S500Aの処理は、初期クレデンシャルCI1と第1バウチャーVC1aとに代えて、第2クレデンシャルCI2と第2バウチャーVC2とが使用される点を除いて、
図5のS500の処理と同じである。
【0089】
図5のS505に相当するステップでは、第2クレデンシャルCI2と第2バウチャーVC2とを使用する検証が、行われる。
図5のS535で説明したように、第2バウチャーVC2は、第2クレデンシャルCI2に対応している。従って、バウチャーの検証は、成功する(
図5の処理と同様に、正当性の検証も成功することとする)。
【0090】
図5のS515-S540に相当するステップでは、クレデンシャルとバウチャーとが更新される。
【0091】
図5のS560-S565に相当するステップでは、証明書CTが検証される。
図5の処理と同様に、証明書CTの検証は成功し、接続条件が満たされることとする。
【0092】
図5のS570-S575に相当するステップでは、サービスサーバ300は、プリンタ100とのサービスのための接続を確立する。具体的には、プリンタ100は、サービスサーバ300から、サービス設定情報SIを取得する。なお、S500Aで取得されるサービス設定情報SIの内容は、
図5のS500で取得されるサービス設定情報SIの内容から、変更されてよい。
【0093】
S500Aの後のS650は、
図5のS650と同じである。プリンタ100とサービスサーバ300とは、サービス設定情報SIを使用して、サービスのための通信を行う。
【0094】
以上のように、本実施例では、プリンタ100(
図1)は、セキュア記憶領域SAsを備えている。プリンタ100のプロセッサ110は、以下の処理を実行する。S120(
図2)では、プロセッサ110は、プリンタ100の状態が所定の状態か否かを判断する。プロセッサ110は、プリンタ100の状態が所定の状態である場合には(S120:Yes)、S205の処理を禁止せずに、プリンタ100の状態が所定の状態でない場合に(S120:No)、S130で、S205の処理を禁止する。S205の処理は、クレデンシャルの要求を、外部装置の例である設定装置500に送信する処理である。要求されるクレデンシャルCImは、
図3(A)で説明したように、仲介サーバ情報RSIとGUIDとを含んでいる。仲介サーバ情報RSIは、ネットワークIT、LN2を介してプリンタ100と通信可能な仲介サーバ200の位置情報(IPアドレス、URLなど)を表している。GUIDは、プリンタ100に割り当てられた識別情報の例である。このように、仲介サーバ情報RSIとGUIDとの全体は、仲介サーバ200の位置情報とプリンタ100に割り当てられる識別情報とを含む特定情報の例である(以下、仲介サーバ情報RSIとGUIDとの全体を、特定情報Ikと呼ぶ)。S205のクレデンシャルの要求は、特定情報Ikの要求を含んでいる。
【0095】
S215では、設定装置500からプリンタ100にクレデンシャルCIm(特定情報Ikを含む)が送信される場合に、プロセッサ110は、クレデンシャルCImを受信する。S225では、プリンタ100は、特定情報Ikを含むクレデンシャル(ここでは、クレデンシャルCI1)をセキュア記憶領域SAsに格納する格納処理を実行する。本実施例では、設定装置500は、プリンタ100からクレデンシャルの要求を受信しない場合には、クレデンシャルCImをプリンタ100に送信しない。従って、特定情報Ikを含むクレデンシャルの格納処理が禁止されるか否かの判断は、省略される(すなわち、格納処理は、禁止されずに、許容される)。
【0096】
S420(
図5)では、プロセッサ110は、セキュア記憶領域SAsに格納されるクレデンシャルCI1(
図3(B))の特定情報Ikを使用して、仲介サーバ情報RSIによって示される仲介サーバ200にアクセスして、GUID1に対応付けられるアクセス情報IXaを仲介サーバ200から取得する。アクセス情報IXaは、
図3(E)で説明したように、ネットワークIT、LN2を介して通信可能なサービスサーバ300にアクセスするための情報の例である。サービスサーバ300は、特定のサービスを提供する対象サーバの例である。
【0097】
S500(
図5)では、プロセッサ110は、取得されるアクセス情報IXaを使用して、サービスサーバ300にアクセスして、特定のサービスを使用するためのサービス設定情報SIをサービスサーバ300から取得する。
【0098】
このように、プリンタ100の状態が所定の状態でない場合に(
図2:S120:No)、S130で、プロセッサ110は、特定情報Ikの要求をプリンタ100の外部にある設定装置500に送信する処理(S205)を禁止する。従って、プリンタ100に情報が不正に格納される可能性は、低減する。
【0099】
また、
図2のS120で説明したように、所定の状態は、秘密鍵SKと、秘密鍵SKに対応付けられるとともにサービスサーバ300との通信で使用すべき証明書CTと、を含む情報(対象情報とよぶ)がセキュア記憶領域SAsに格納されていない状態である。従って、秘密鍵SKと証明書CTとがセキュア記憶領域SAsに格納されている場合に、秘密鍵SKまたは証明書CTが不適切な情報に更新される可能性は、低減する。
【0100】
また、
図2のS120で説明したように、所定の状態は、クレデンシャルCI(ひいては、特定情報Ik)を含む対象情報がセキュア記憶領域SAsに格納されていない状態である、従って、クレデンシャルCI(例えば、初期クレデンシャルCI1、または、第2クレデンシャルCI2)がセキュア記憶領域SAsに格納されている場合に、クレデンシャルCIが不適切なクレデンシャルに更新される可能性は、低減する。
【0101】
また、プリンタ100(
図1)は、通常記憶領域SAnを備えている。プリンタ100のプロセッサ110は、以下の処理を実行する。S575(
図5)では、プロセッサ110は、サービスサーバ300から取得されるサービス設定情報SIを通常記憶領域SAnに格納する。S515では、プロセッサ110は、サービスサーバ300から新たな特定情報Ik(例えば、GUID2、RSI)を取得する。S520では、プロセッサ110は、新たな特定情報Ikをセキュア記憶領域SAsに格納する。S745(
図6)では、プロセッサ110は、再使用リセットを実行する。再使用リセットでは、プロセッサ110は、セキュア記憶領域SAsに格納される最新の特定情報(ここでは、最新のクレデンシャルCI2に含まれる特定情報Ik)をセキュア記憶領域SAsから削除せずに、サービス設定情報SIを通常記憶領域SAnから削除する。最新のクレデンシャルCI2の特定情報Ikは、S515(
図5)で取得された新たな特定情報Ikである。
【0102】
このように、再使用リセットでは、最新の特定情報は削除されないので、プロセッサ110は、再使用リセットの後に、特定情報を使用して仲介サーバと通信できる。また、サービス設定情報SIがエラーを含む場合に、プロセッサ110は、再使用リセットによって、エラーの原因であるサービス設定情報SIを削除できる。
【0103】
また、S730(
図6)では、プロセッサ110は、再使用リセットを実行すべき場合(S725)に、GUID2に対応付けられるアクセス情報IXaを仲介サーバ200に登録する指示を、サービスサーバ300に送信する。従って、再使用リセット(S745)の後に、プロセッサ110は、仲介サーバ200にアクセスして、GUID2に対応付けられるアクセス情報IXaを仲介サーバ200から取得できる(S420A)。
【0104】
また、プロセッサ110は、S205(
図2)で、クレデンシャル(特定情報Ikを含む)の要求を設定装置500に送信する。S215では、特定情報Ikは、特定情報Ikの要求に応じて設定装置500から送信される。そして、プリンタ100による特定情報Ikの要求の送信と特定情報Ikの受信とは、FIDO Device Onboarding (FDO) のDevice Initialize Protocol (DI)に従って、行われる。従って、特定情報Ikの取得のためのプロトコルを新たに準備する場合と比べて、プリンタ100と設定装置500との接続のための設計の負担は、軽減可能である。
【0105】
また、仲介サーバ200からのアクセス情報IXaの取得(
図5:S420、
図6:S420A)は、FIDO Device Onboarding (FDO) のTransfer Ownership Protocol 1 (TO1)に従って、行われる。すなわち、プリンタ100のプロセッサ110は、オンボーディングの処理の一環として、アクセス情報IXaを取得できる。従って、アクセス情報IXaの取得のためのプロトコルを新たに準備する場合と比べて、プリンタ100と仲介サーバ200との安全な接続のための設計の負担は、軽減可能である。
【0106】
また、 サービスサーバ300からのサービス設定情報SIの取得(
図5:S570)は、FIDO Device Onboarding (FDO) のTransfer Ownership Protocol 2 (TO2) に従って、行われる。すなわち、プリンタ100のプロセッサ110は、オンボーディングの処理の一環として、サービス設定情報SIを取得できる。従って、サービス設定情報SIの取得のためのプロトコルを新たに準備する場合と比べて、プリンタ100とサービスサーバ300との安全な接続のための設計の負担は、軽減可能である。
【0107】
B.第2実施例:
図8(A)、
図8(B)は、初期設定処理とリセット処理との別の実施例を示すシーケンス図である。
図8(A)の初期設定処理は、
図2の初期設定処理の代わりに、実行される。
図8(B)のリセット処理は、
図6のリセット処理S700の代わりに、実行される。
図2、
図6の実施例との差異は、初期化を許容するか否かがフラグを使用して判断される点である。
【0108】
まず、
図8(A)の初期設定処理について説明する。
図2の初期設定処理と
図8(A)の初期設定処理との間の差異は、S120がS120Bに置換され、S260の後にS270Bが追加されている点だけである。
図8(A)において、
図2のステップと同じステップには、同じ符号を付して、説明を省略する。
【0109】
開始指示の入力(S110)に応じて、プリンタ100は、S120Bで、プリンタ100の状態が、初期化を許容する所定の状態であるか否かを判断する。本実施例では、所定の状態は、「初期化完了」を示す完了フラグFLGのデータがセキュア記憶領域SAsに格納されていない第2状態ST2である。後述するように、完了フラグFLGのデータは、初期設定処理の最後に、セキュア記憶領域SAsに格納される。初期設定処理が完了する前には、完了フラグFLGのデータは、セキュア記憶領域SAsには格納されていない。完了フラグFLGのデータがセキュア記憶領域SAsに格納されていないことは、初期設定処理が未完了であることを示している。初めて初期設定処理が実行される場合、S120Bでは、プリンタ100の状態は、第2状態ST2である。
【0110】
プリンタ100の状態が所定の状態でない場合(S120B:No)、プリンタ100は、S130で、S205の処理を禁止して実行せずに、初期化処理を終了する。S130は、
図2のS130と同じである。プリンタ100の状態が所定の状態である場合(S120B:Yes)、プリンタ100は、デバイス初期化処理S200を開始する。
図8(A)のS200は、
図2のS200と同じである。S200の後、S260の処理が実行される。
図8(A)のS260は、
図2のS260と同じである。
【0111】
S260の後、S270Bで、プリンタ100は、完了フラグFLGのデータをセキュア記憶領域SAsに格納する。そして、初期設定処理は終了する。このように、プリンタ100は、初期設定処理の最後に、完了フラグFLGのデータをセキュア記憶領域SAsに格納する。
【0112】
次に、
図8(B)のリセット処理S700Bについて説明する。
図6のリセット処理S700と
図8(B)のリセット処理S700Bとの間の差異は、S745がS745Bに置換されている点だけである。
図8(B)において、
図6のステップと同じステップには、同じ符号を付して、説明を省略する。
【0113】
S710-S740は、
図6のS710-S740と、それぞれ同じである。本実施例では、
図6の実施例と同様に、再使用指示(S725)が入力されることとする。S730の後、プリンタ100は、S745Bで、再使用リセットを実行する。
図6の再使用リセット(S745)との差異は、完了フラグFLGのデータが、削除されずに維持される点だけである。本実施例の再使用リセットでは、プリンタ100は、サービス設定情報SIを、通常記憶領域SAnから削除し、最新のクレデンシャルCI2と秘密鍵SKと証明書CTと完了フラグFLGとのそれぞれのデータを、セキュア記憶領域SAsから削除せずに、維持する。なお、初期クレデンシャルCI1のデータも、削除されずに維持される。
【0114】
以上のように、本実施例では、プリンタ100のプロセッサ110は、S120B(
図8(A))で、完了フラグFLGを使用することによって、プリンタ100の状態が未初期化の状態であるか否かを適切に判断できる。
【0115】
なお、初期設定処理とリセット処理と以外の処理(例えば、
図4、
図5の処理)は、上記の実施例と同じである。また、本実施例の初期設定処理(
図8(A))は、
図2の初期設定処理からS120Bを除いた残りのステップを含んでいる。本実施例のリセット処理S700B(
図8(B))は、
図6のリセット処理S700からS745を除いた残りのステップを含んでいる。従って、本実施例は、
図2、
図4、
図5、
図6の実施例のものと同じ種々の利点を有する。
【0116】
C.第3実施例:
図9は、初期設定処理の別の実施例を示すシーケンス図である。本実施例では、プリンタ100は、外部装置からのコマンドを待ち受ける待機モードで動作可能である。待機モードでは、プロセッサ110は、外部装置から提供されるコマンドに従って、処理を実行する。使用可能なコマンドは、例えば、ファクトリリセット、再使用リセット、クレデンシャル格納など、種々のコマンドを含んでよい。
【0117】
図中には、装置100、500の種々のステップが示されている。これらのステップは、装置100、500のプロセッサ110、510によって、それぞれ実行される。以下、装置100、500のプロセッサ110、510が処理を実行することを、単に、装置100、500が処理を実行する、とも表現する。
【0118】
S110Cでは、プリンタ100に、待機モードでの動作の開始指示が入力される。例えば、作業者は、プリンタ100の操作部150を操作することによって、開始指示を入力する。開始指示に応じて、プリンタ100は、待機モードでの動作を開始する。また、本実施例では、S112Cで、設定装置500に、初期設定処理の開始指示が入力される。例えば、作業者は、設定装置500の操作部550を操作することによって、開始指示を入力する。開始指示に応じて、設定装置500は、S210の処理を実行する。S210は、
図2のS210と同じである。設定装置500は、製造クレデンシャルCImを生成する。
【0119】
S215Cでは、設定装置500は、クレデンシャルの格納指示を、プリンタ100に送信する。この指示は、クレデンシャル格納を示すコマンドと、製造クレデンシャルCImと、のそれぞれのデータと、を含んでいる。プリンタ100は、設定装置500からのデータを受信する。プリンタ100は、受信したデータを、セキュア記憶領域SAs以外の記憶領域(例えば、揮発性記憶装置120、または、第1不揮発性記憶装置130)に格納する。
【0120】
プリンタ100は、設定装置500から受信したコマンドに対応付けられる処理を実行する。コマンドがクレデンシャル格納を示す場合(S215C)、S217Cで、プリンタ100は、プリンタ100の状態が、初期化を許容する所定の状態であるか否かを判断する。所定の状態は、例えば、
図2で説明した第1状態ST1と、
図8(A)で説明した第2状態ST2と、から予め選択された状態であってよい。
【0121】
プリンタ100の状態が所定の状態でない場合(S217C:No)、プリンタ100は、S218Cで、後述するS225を禁止して実行せずに、処理を終了する。そして、プリンタ100は、次のコマンドを待つ。これに代えて、プリンタ100は、待機モードでの動作を終了してよい。なお、S218Cでは、プリンタ100は、表示部140にエラーメッセージを表示することが好ましい。
【0122】
プリンタ100の状態が所定の状態である場合(S217C:Yes)、プリンタ100は、S220、S225の処理を実行する。S220、S225は、
図2のS220、S225と、それぞれ同じである。S225の後、
図2の実施例と同様に、S230、S235、S240、S245、S250の処理が、それぞれ実行される。
【0123】
以上のように、S210-S250を含むデバイス初期化処理S200Cが実行される。デバイス初期化処理S200Cでは、プリンタ100は、セキュア記憶領域SAsに初期クレデンシャルCI1を格納し(S225)、設定装置500は、不揮発性記憶装置530に初期バウチャーVC1を格納する(S245)。
【0124】
デバイス初期化処理S200Cの後、証明書準備処理S260が行われる。S260は、
図2のS260と同じである。証明書準備処理S260では、プリンタ100は、秘密鍵SKと証明書CTとのそれぞれのデータを、セキュア記憶領域SAsに格納する。
【0125】
S217Cの判断に第2状態ST2が適用される場合、プリンタ100は、S260の後、S270Bで、完了フラグFLGのデータをセキュア記憶領域SAsに格納する(S270Bは、
図8(A)のS270Bと同じである)。そして、初期設定処理は終了する。S217Cの判断に第1状態ST1が適用される場合、S270Bは省略される。
【0126】
以上のように、本実施例では、プリンタ100のプロセッサ110は、以下の処理を実行する。S217Cでは、プロセッサ110は、プリンタ100の状態が所定の状態か否かを判断する。プロセッサ110は、プリンタ100の状態が所定の状態である場合には(S217C:Yes)、S225の処理を禁止せずに、プリンタ100の状態が所定の状態でない場合に(S217C:No)、S218Cで、S225の処理を禁止する。S225の処理は、特定情報Ikを含むクレデンシャルをセキュア記憶領域SAsに格納する処理である。
【0127】
S215Cでは、設定装置500からプリンタ100にクレデンシャルCIm(特定情報Ikを含む)が送信される場合に、プロセッサ110は、クレデンシャルCImを受信する。プリンタ100は、S225の処理が禁止されない場合に(S217C:Yes)、S225で、特定情報Ikを含むクレデンシャル(ここでは、クレデンシャルCI1)をセキュア記憶領域SAsに格納する。
【0128】
このように、プロセッサ110は、プリンタ100の状態が所定の状態でない場合に(S217C:No)、特定情報Ikを含むクレデンシャルをセキュア記憶領域SAsに格納する格納処理(S225)を禁止する。従って、プリンタ100に情報が不正に格納される可能性は、低減する。
【0129】
なお、初期設定処理以外の処理は、上記の各実施例と同じであってよい。例えば、本実施例では、
図5の接続設定処理が行われてよい。第1実施例と同様に、プリンタ100のプロセッサ110は、S420で、クレデンシャルCI1の特定情報Ikを使用して、アクセス情報IXaを仲介サーバ200から取得する。S500で、プロセッサ110は、アクセス情報IXaを使用して、サービス設定情報SIをサービスサーバ300から取得する。
【0130】
初期設定処理以外の処理(例えば、
図4、
図5、
図6、
図8(B)の処理)は、上記の各実施例と同じである。従って、本実施例は、上記の各実施例のものと同じ種々の利点を有する。ここで、S217Cの所定の状態が第1状態ST1である場合、
図6のリセット処理が採用されてよい。S217Cの所定の状態が第2状態ST2である場合、
図8(B)のリセット処理が採用されてよい。
【0131】
D.変形例:
(1)
図9の初期設定処理は、他の実施例の初期設定処理(例えば、
図2、
図8(A))とともに、プリンタ100に実装されてよい。初期設定処理の開始指示がプリンタ100に入力される場合、プリンタ100のプロセッサ110は、
図2、または、
図8(A)の初期設定処理を開始してよい。待機モードでの動作の開始指示がプリンタ100に入力され、そして、プリンタ100がクレデンシャル格納のコマンドを受信する場合、プリンタ100のプロセッサ110は、
図9の初期設定処理を実行してよい。このように、プリンタ100のプロセッサ110は、プリンタ100の状態が所定の状態でない場合に(S120、S120B、S217C:No)、S130とS218Cとで、S205の処理(特定情報Ikの要求の送信)と、S225の処理(特定情報Ikの格納)と、の両方を含む対象処理を、禁止してよい。なお、S217C(
図9)の所定の状態は、S120(
図2)とS120B(
図8(A))との所定の状態と、同じであってよく、異なってよい。
【0132】
(2)初期設定処理は、
図2、
図8(A)、
図9の処理に代えて、プリンタ100に特定情報(例えば、特定情報Ik)を格納する種々の処理であってよい。例えば、S120(
図2)、S217C(
図9)で使用される所定の状態は、Ik(例えば、仲介サーバ情報RSIとGUID)と、秘密鍵SKと、証明書CTとの4個の情報から予め任意に選択された1以上の情報を使用して定められてよい。例えば、所定の状態は、特定情報Ik、例えば、仲介サーバ情報RSIとGUIDの両方が、セキュア記憶領域SAsに格納されていない状態であってよい(すなわち、秘密鍵SKと証明書CTとは判断に使用されない)。また、所定の状態は、秘密鍵SKと証明書CTとが、セキュア記憶領域SAsに格納されていない状態であってよい(すなわち、仲介サーバ情報RSIとGUIDとは判断に使用されない)。
【0133】
(3)接続設定処理は、
図5の処理に代えて、種々の処理であってよい。特定情報Ikの更新は、省略されてよい。例えば、
図5のS510で生成される新情報は、S505で検証済のバウチャーVC1aに含まれる情報と同じであってよい。また、特定情報Ikを含むクレデンシャルの更新(すなわち、クレデンシャルと、クレデンシャルに対応するバウチャーと、の更新)は、省略されてよい。例えば、
図5のS510-S540は、省略されてよい。この場合、初期クレデンシャルCI1と第1バウチャーVC1aとは、再使用されてよい。再使用リセット(S745(
図6)、S745B(
図8(B)))では、プロセッサ110は、セキュア記憶領域SAsに格納される最新の特定情報(ここでは、初期クレデンシャルCI1に含まれる特定情報Ik)をセキュア記憶領域SAsから削除せずに、サービス設定情報SIを通常記憶領域SAnから削除する。初期クレデンシャルCI1に含まれる特定情報Ikは、初期設定処理(例えば、
図2、
図8(A)、
図9)で、設定装置500から送信される特定情報である。
【0134】
また、
図5のS510で、GUIDは更新されずに維持されてよい(例えば、新GUIDは、旧GUIDと同じであってよい)。この場合、
図6のS730、S735、S740は、省略されてよい。アクセス情報IXaの有効期間が十分に長い値に設定される場合には、S420A(
図6)では、仲介サーバ200は、
図4のS350で登録された情報を参照して、GUID1に対応付けられるIXaを提供できる。
【0135】
(4)上記の実施例と変形例とにおいて、初期設定処理(例えば、
図2、
図8(A)、
図9)と、仲介サーバ200に対するアクセス情報の登録(例えば、
図4)と、接続設定処理(例えば、
図5)と、で使用されるプロトコルは、FDOプロトコルに代えて、他の種々のプロトコルであってよい。例えば、上記の処理は、プリンタ100の製造事業者または管理事業者によって定められた他の手順に従って、行われてよい。
【0136】
例えば、特定情報Ikに含まれる位置情報は、仲介サーバ情報RSIに限らず、仲介サーバ200のネットワーク上の位置を示す種々の情報であってよい(例えば、ドメイン名など)。また、特定情報Ikに含まれる識別情報は、GUIDに限らず、プリンタ100に割り当てられる種々の識別情報であってよい(例えば、シリアル番号など)。また、クレデンシャルとバウチャーとの代わりに、特定情報Ikが使用されてよい。
【0137】
(5)証明書準備処理S260(
図2、
図6、
図8(A)、
図9)では、設定装置500は、証明書CTに加えて、いわゆる中間証明書を、プリンタ100に送信してよい。また、証明書CTの構成は、公開鍵と、認証局に関連する情報と、を含む種々の構成であってよい。また、証明書CTを使用する認証は、TO2の処理(例えば、
図5)の中に代えて、TO2の処理の完了後に行われてよい。なお、証明書CTは、省略されてよい。例えば、証明書準備処理S260(
図2、
図6、
図8(A)、
図9)は省略され、そして、証明書CTを使用する認証(S560、S565(
図5))は省略されてよい。
【0138】
(6)特定情報Ikを格納するための記憶領域である第1記憶領域は、セキュア記憶領域SAs(
図1)に代えて、他の種々の記憶領域であってよい。例えば、第1記憶領域は、第1不揮発性記憶装置130の記憶領域に含まれてよい。この場合、第1不揮発性記憶装置130は、サービス設定情報SIを格納する記憶領域である第2記憶領域(例えば、通常記憶領域SAn)と、第1記憶領域と、を含む。このように、第1記憶領域と第2記憶領域とは、同じ記憶装置によって形成される同じ記憶領域に含まれる互いに異なる部分であってよい。また、第1記憶領域と第2記憶領域とは、
図1の実施例のように、互いに異なる記憶装置によって形成される互いに異なる記憶領域に設けられてよい。
【0139】
ここで、秘密鍵SKと証明書CTとは、第1記憶領域に格納されてよく、第1記憶領域とは異なる記憶領域に格納されてよい。例えば、特定情報Ikは、第1不揮発性記憶装置130の記憶領域に格納され、秘密鍵SKと証明書CTとは、第2不揮発性記憶装置135の記憶領域に格納されてよい。また、第2不揮発性記憶装置135は、省略されてよい。いずれの場合も、プログラムPG1は、特定情報Ikと秘密鍵SKと証明書CTとを格納する記憶領域に対する自由なデータの読み書きと削除とを実行しないように、構成されることが好ましい。
【0140】
(7)仲介サーバ200とサービスサーバ300と通信可能なデバイスは、プリンタ100に代えて、他の任意の種類のデバイスであってよい。例えば、複合機、スキャナ、ミシン、カッティングマシン、工作機械、スマートフォン、監視カメラ、のいずれかが、デバイスとして使用されてよい。サービスサーバを使用して提供されるサービスは、サービスサーバを介するデバイスの遠隔操作など、任意のサービスであってよい。
【0141】
(8)設定装置500は、上記の初期設定処理を実行可能な任意の装置であってよい。設定装置500は、例えば、インターネットITに接続されたサーバであってよい。また、サーバ(例えば、仲介サーバ200とサービスサーバ300)は、1以上の処理モジュールを含んでよい。処理モジュールは、例えば、物理的なコンピュータ、または、仮想化されたコンピュータであってよい。
【0142】
上記各実施例において、ハードウェアによって実現されていた構成の一部をソフトウェアに置き換えるようにしてもよく、逆に、ソフトウェアによって実現されていた構成の一部あるいは全部をハードウェアに置き換えるようにしてもよい。
【0143】
また、本開示の機能の一部または全部がコンピュータプログラムで実現される場合には、そのプログラムは、コンピュータ読み取り可能な記録媒体(例えば、一時的ではない記録媒体)に格納された形で提供することができる。プログラムは、提供時と同一または異なる記録媒体(コンピュータ読み取り可能な記録媒体)に格納された状態で、使用され得る。「コンピュータ読み取り可能な記録媒体」は、メモリーカードやCD-ROMのような携帯型の記録媒体に限らず、各種ROM等のコンピュータ内の内部記憶装置や、ハードディスクドライブ等のコンピュータに接続されている外部記憶装置も含み得る。
【0144】
上記の実施例と変形例とは、適宜に組み合わせることができる。また、上記の実施例と変形例とは、本開示の理解を容易にするためのものであり、本発明を限定するものではない。本発明は、その趣旨を逸脱することなく、変更、改良され得ると共に、本発明にはその等価物が含まれる。
【符号の説明】
【0145】
100…プリンタ、110…プロセッサ、115…記憶装置、120…揮発性記憶装置、130…第1不揮発性記憶装置、135…第2不揮発性記憶装置、140…表示部、150…操作部、160…印刷実行部、180…通信インタフェース、200…仲介サーバ、210…プロセッサ、215…記憶装置、220…揮発性記憶装置、230…不揮発性記憶装置、280…通信インタフェース、300…サービスサーバ、310…プロセッサ、315…記憶装置、320…揮発性記憶装置、330…不揮発性記憶装置、380…通信インタフェース、500…設定装置、510…プロセッサ、515…記憶装置、520…揮発性記憶装置、530…不揮発性記憶装置、540…表示部、550…操作部、580…通信インタフェース、1000…システム、IT…インターネット、LN1…第1ローカルエリアネットワーク、LN2…第2ローカルエリアネットワーク