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

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

▶ 株式会社リコーの特許一覧

特開2023-84913情報処理システム、情報処理装置、情報処理方法、及びプログラム
<>
  • 特開-情報処理システム、情報処理装置、情報処理方法、及びプログラム 図1
  • 特開-情報処理システム、情報処理装置、情報処理方法、及びプログラム 図2
  • 特開-情報処理システム、情報処理装置、情報処理方法、及びプログラム 図3
  • 特開-情報処理システム、情報処理装置、情報処理方法、及びプログラム 図4
  • 特開-情報処理システム、情報処理装置、情報処理方法、及びプログラム 図5
  • 特開-情報処理システム、情報処理装置、情報処理方法、及びプログラム 図6
  • 特開-情報処理システム、情報処理装置、情報処理方法、及びプログラム 図7
  • 特開-情報処理システム、情報処理装置、情報処理方法、及びプログラム 図8
  • 特開-情報処理システム、情報処理装置、情報処理方法、及びプログラム 図9
  • 特開-情報処理システム、情報処理装置、情報処理方法、及びプログラム 図10
  • 特開-情報処理システム、情報処理装置、情報処理方法、及びプログラム 図11
  • 特開-情報処理システム、情報処理装置、情報処理方法、及びプログラム 図12
  • 特開-情報処理システム、情報処理装置、情報処理方法、及びプログラム 図13
  • 特開-情報処理システム、情報処理装置、情報処理方法、及びプログラム 図14
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023084913
(43)【公開日】2023-06-20
(54)【発明の名称】情報処理システム、情報処理装置、情報処理方法、及びプログラム
(51)【国際特許分類】
   G06F 21/57 20130101AFI20230613BHJP
   G06F 21/64 20130101ALI20230613BHJP
【FI】
G06F21/57 320
G06F21/57 350
G06F21/64
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2021199303
(22)【出願日】2021-12-08
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.Linux
(71)【出願人】
【識別番号】000006747
【氏名又は名称】株式会社リコー
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(72)【発明者】
【氏名】櫻田 大樹
(57)【要約】
【課題】更新用ファイルを用いて情報処理装置の起動用ファイルを更新する情報処理システムにおいて、更新した起動用ファイルをより正しく検証できるようにする。
【解決手段】情報処理システムは、更新用ファイルから求めたハッシュ値を用いて第1の署名データを作成する第1の作成部と、更新用ファイルと第1の署名データとを取得する取得部と、起動用ファイルを更新するときに、第1の署名データを用いて更新用ファイルを検証する第1の検証部と、検証した更新用ファイルで第2の情報処理装置の起動用ファイルを更新する更新部と、第1の署名データから取得したハッシュ値に基づいて、更新した起動用ファイルを検証する検証データを作成する第2の作成部と、更新した起動用ファイルを用いて第2の情報処理装置を起動するときに、検証データを用いて更新部が更新した起動用ファイルを検証する第2の検証部と、を有する。
【選択図】図4
【特許請求の範囲】
【請求項1】
更新用ファイルを提供する第1の情報処理装置と、前記更新用ファイルを用いて起動用ファイルを更新する第2の情報処理装置とを含む情報処理システムであって、
前記第1の情報処理装置は、
前記更新用ファイルから求めたハッシュ値を用いて、前記更新用ファイルに対する第1の署名データを作成する第1の作成部を有し、
前記第2の情報処理装置は、
前記更新用ファイルと前記第1の署名データとを取得する取得部と、
前記更新用ファイルで前記起動用ファイルを更新するときに、前記第1の署名データを用いて前記更新用ファイルを検証する第1の検証部と、
前記第1の検証部が検証した前記更新用ファイルで前記第2の情報処理装置の前記起動用ファイルを更新する更新部と、
前記第1の署名データから取得した前記ハッシュ値に基づいて、前記更新部が更新した前記起動用ファイルを検証する検証データを作成する第2の作成部と、
前記更新部が更新した前記起動用ファイルを用いて前記第2の情報処理装置を起動するときに、前記検証データを用いて前記更新部が更新した前記起動用ファイルを検証する第2の検証部と、
を有する、情報処理システム。
【請求項2】
前記検証データは、前記第1の署名データから取得した前記ハッシュ値を用いて作成した第2の署名データを含む、請求項1に記載の情報処理システム。
【請求項3】
前記検証データは、前記第1の署名データから取得した前記ハッシュ値を含む、請求項1に記載の情報処理システム。
【請求項4】
前記情報処理装置は、前記第1の検証部が前記更新用ファイルの検証に失敗したときに、エラーを通知する通知部を有する、請求項1乃至3のいずれか一項に記載の情報処理システム。
【請求項5】
前記情報処理装置は、前記第2の検証部が前記起動用ファイルの検証に失敗したときに、エラーを通知する通知部を有する、請求項1乃至3のいずれか一項に記載の情報処理システム。
【請求項6】
前記通知部は、前記エラーを通知するエラー通知画面を表示する、請求項4又は5に記載の情報処理システム。
【請求項7】
前記第2の作成部は、前記検証データを作成するときに、前記更新部が更新した前記起動用ファイルのハッシュ値の算出を行わずに、前記検証データを作成する、請求項1乃至6のいずれか一項に記載の情報処理システム。
【請求項8】
更新用ファイルを用いて起動用ファイルを更新する情報処理装置であって、
他の情報処理装置が作成した、起動用ファイルを更新する更新用ファイルと前記更新用ファイルを検証する第1の署名データとを取得する取得部と、
前記更新用ファイルで前記起動用ファイルを更新するときに、前記第1の署名データを用いて前記更新用ファイルを検証する第1の検証部と、
前記第1の検証部が検証した前記更新用ファイルで前記情報処理装置の前記起動用ファイルを更新する更新部と、
前記第1の署名データから取得したハッシュ値に基づいて、前記更新部が更新した前記起動用ファイルを検証する検証データを作成する第2の作成部と、
前記更新部が更新した前記起動用ファイルを用いて前記情報処理装置を起動するときに、前記検証データを用いて前記更新部が更新した前記起動用ファイルを検証する第2の検証部と、
を有する、情報処理装置。
【請求項9】
更新用ファイルを用いて起動用ファイルを更新する情報処理装置が、
他の情報処理装置が作成した、起動用ファイルを更新する更新用ファイルと前記更新用ファイルを検証する第1の署名データとを取得する取得処理と、
前記更新用ファイルで前記起動用ファイルを更新するときに、前記第1の署名データを用いて前記更新用ファイルを検証する第1の検証処理と、
前記第1の検証処理で検証した前記更新用ファイルで前記情報処理装置の前記起動用ファイルを更新する更新処理と、
前記第1の署名データから取得したハッシュ値に基づいて、前記更新処理で更新した前記起動用ファイルを検証する検証データを作成する第2の作成処理と、
前記更新処理で更新した前記起動用ファイルを用いて前記情報処理装置を起動するときに、前記検証データを用いて前記更新処理で更新した前記起動用ファイルを検証する第2の検証部と、
を実行する、情報処理方法。
【請求項10】
請求項9に記載の情報処理方法を情報処理装置に実行させる、プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理システム、情報処理装置、情報処理方法、及びプログラムに関する。
【背景技術】
【0002】
情報処理装置において、起動用のファイル(ファームウェア、又はソフトウェア)に対して改竄、又は破損等を検知し、起動中に正当なファイルのみ実行できるように検証する技術(例えばTrusted Boot、又はLinux‐IMA等)が知られている。
【0003】
また、更新時に、ネットワークサーバが作成した署名データを用いて更新用ファイルを検証するとともに、起動時に、Linux-IMA等の署名ファイルで、更新した起動用ファイルを検証する情報処理システムが知られている(例えば、特許文献1参照)。
【発明の概要】
【発明が解決しようとする課題】
【0004】
特許文献1の技術では、ストレージデバイス等に書き込んだ更新後の起動用ファイルの一部が予期せぬエラー等で破損した場合、破損した起動用ファイルに基づいて検証用の署名データが作成されるため、起動用ファイルを正しく検証できないという問題がある。
【0005】
本発明の一実施形態は、上記の問題点に鑑みてなされたものであって、更新用ファイルを用いて情報処理装置の起動用ファイルを更新する情報処理システムにおいて、更新した起動用ファイルをより正しく検証できるようにする。
【課題を解決するための手段】
【0006】
上記の課題を解決するため、一実施形態に係る情報処理システムは、更新用ファイルを提供する第1の情報処理装置と、前記更新用ファイルを用いて起動用ファイルを更新する第2の情報処理装置とを含む情報処理システムであって、前記第1の情報処理装置は、前記更新用ファイルから求めたハッシュ値を用いて、前記更新用ファイルに対する第1の署名データを作成する第1の作成部を有し、前記第2の情報処理装置は、前記更新用ファイルと前記第1の署名データとを取得する取得部と、前記更新用ファイルで前記起動用ファイルを更新するときに、前記第1の署名データを用いて前記更新用ファイルを検証する第1の検証部と、前記第1の検証部が検証した前記更新用ファイルで前記第2の情報処理装置の前記起動用ファイルを更新する更新部と、前記第1の署名データから取得した前記ハッシュ値に基づいて、前記更新部が更新した前記起動用ファイルを検証する検証データを作成する第2の作成部と、前記更新部が更新した前記起動用ファイルを用いて前記第2の情報処理装置を起動するときに、前記検証データを用いて前記更新部が更新した前記起動用ファイルを検証する第2の検証部と、を有する。
【発明の効果】
【0007】
本発明の一実施形態によれば、更新用ファイルを用いて情報処理装置の起動用ファイルを更新する情報処理システムにおいて、更新した起動用ファイルをより正しく検証できるようになる。
【図面の簡単な説明】
【0008】
図1】一実施形態に係る情報処理システムのシステム構成の例を示す図である。
図2】一実施形態に係るコンピュータのハードウェア構成の例を示す図である。
図3】一実施形態に係る画像形成装置のハードウェア構成の例を示す図である。
図4】一実施形態に係る情報処理システムの機能構成の例を示す図である。
図5】第1の実施形態に係るサーバ装置の処理のイメージを示す図である。
図6】第1の実施形態に係るサーバ装置の処理の例を示すフローチャートである。
図7】第1の実施形態に係る情報処理装置の更新時の処理のイメージを示す図である。
図8】第1の実施形態に係る情報処理装置の更新時の処理の例を示すフローチャートである。
図9】第1の実施形態に係るエラー通知画面の例を示す図(1)である。
図10】第1の実施形態に係る情報処理装置の起動時の処理のイメージを示す図である。
図11】第1の実施形態に係る情報処理装置の起動時の処理の例を示すフローチャートである。
図12】第1の実施形態に係るエラー通知画面の例を示す図(2)である。
図13】第2の実施形態に係る情報処理装置の更新時の処理の例を示すフローチャートである。
図14】第2の実施形態に係る情報処理装置の起動時の処理の例を示すフローチャートである。
【発明を実施するための形態】
【0009】
以下、本発明の実施形態について、図面を参照しながら詳細に説明する。
<システム構成>
図1は、一実施形態に係る情報処理システムのシステム構成の例を示す図である。情報処理システム1は、情報処理装置100の更新用ファイル21を提供するサーバ装置10と、更新用ファイル21を用いて起動用ファイル121を更新する情報処理装置100とを含む。
【0010】
サーバ装置(第1の情報処理装置)10は、例えば、コンピュータの構成を有する情報処理装置、又は複数のコンピュータを含むシステムである。なお、コンピュータは、物理マシン(コンピュータ)に限られず、クラウド上の仮想マシン等であってもよい。サーバ装置10は、1つ以上のコンピュータで、所定のプログラム(署名作成アプリケーション等)を実行することにより、更新用ファイル21を検証するための第1の署名データ22を作成する。また、サーバ装置10は、更新用ファイル21と第1の署名データ22とを含むダウンロードファイル20を情報処理装置100に提供する。このとき、サーバ装置10は、更新用ファイル21から求めたハッシュ値を用いて、更新用ファイル21に対する第1の署名データ22を作成する。
【0011】
ここで、更新用ファイル21は、情報処理装置100が起動時に読み込んで実行するプログラム(ソフトウェア、又はファームウェア)である起動用ファイル121を更新するためのプログラムである。なお、更新用ファイル21、及び起動用ファイル121には、プログラムに加えて、例えば、設定データ等のデータが含まれていてもよい。第1の署名データ22は、更新用ファイル21が改竄されていないことを確認するためのデジタル署名である。
【0012】
情報処理装置(第2の情報処理装置)100は、例えば、コンピュータの構成を有する画像形成装置等の電子機器、又はPC(Personal Computer)、タブレット端末、又はスマートフォン等の汎用の情報処理装置である。なお、電子機器は、画像形成装置に限られず、例えば、PJ(Projector:プロジェクタ)、IWB(Interactive White Board:相互通信が可能な電子式の黒板機能を有する白板)、デジタルサイネージ等の出力装置、又はHUD(Head Up Display)装置等であってもよい。また、電子機器は、例えば、産業機械、撮像装置、集音装置、医療機器、ネットワーク家電、自動車(Connected Car)、ゲーム機、PDA(Personal Digital Assistant)、デジタルカメラ、ウェアラブル端末等であってもよい。
【0013】
ここでは、一例として、情報処理装置100が、スキャン機能、コピー機能、印刷機能、及びFAX機能等を一つの筐体に搭載したMFP(Multifunction Peripheral)等の画像形成装置であるものとして以下の説明を行う。
【0014】
情報処理装置100は、サーバ装置10が提供するダウンロードファイル20を取得し、例えば、外部メモリ、又は情報処理装置100が備えるストレージデバイス等の一時記憶領域110に記憶する。例えば、情報処理装置100は、通信ネットワーク2を介して、サーバ装置10からダウンロードファイル20をダウンロードして一時記憶領域110に記憶してもよい。或いは、情報処理装置100は、他の情報処理装置がダウンロードしたダウンロードファイル20を、他の情報処理装置を介して取得してもよい。例えば、情報処理装置100は、他の情報処理装置がダウンロードファイル20を保存した外部メモリを、一時記憶領域110として使用してもよい。
【0015】
情報処理装置100は、起動用ファイル121を更新するときに、更新用ファイル21を第1の署名データ22で検証し、検証に成功した場合、記憶部120に記憶している起動用ファイル121を、更新用ファイル21で更新する。これにより、情報処理装置100は、起動用ファイル121の更新に用いる更新用ファイル21が改竄されていないこと(完全性、又は真正性)を保証することができる。
【0016】
このとき、情報処理装置100は、更新した起動用ファイル121を検証する検証データを作成し、起動用ファイル121のメタデータ領域に格納する。また、情報処理装置100は、更新した起動用ファイル121を用いて起動するときに、更新した起動用ファイル121を、メタデータ領域に格納した検証データで検証し、検証に成功した場合、更新した起動用ファイル121へのアクセスを許可する。これにより、情報処理装置100は、更新した起動用ファイル121が改竄されていないこと(完全性、又は真正性)を保証することができる。
【0017】
ただし、従来の技術では、例えば、Linux-IMA(Integrity Measurement. Architecture)等の署名データを使って、更新した起動用ファイル121が改竄されていないことを検証していた。この方法では、更新した起動用ファイル121が、予期せぬエラー等により一部のデータが破損した場合、破損した起動用ファイル121に基づいて署名データを作成するため、破損した起動用ファイル121を正しく検証することができないという問題がある。
【0018】
また、従来の技術では、更新した起動用ファイル121を記憶部120に記憶した後に、更新した起動用ファイル121に対してハッシュ演算を行い、署名データ等を作成しているため、ハッシュ演算のための処理時間を要するという問題がある。
【0019】
そこで、本実施形態に係る情報処理装置100は、ダウンロードファイル20に含まれる第1の署名データ22から、サーバ装置10が算出したハッシュ値を取得し、取得したハッシュ値に基づいて、更新した起動用ファイル121を検証する検証データを作成する。これにより、本実施形態に係る情報処理装置100は、更新した起動用ファイル121の一部のデータが破損した場合でも、サーバ装置10が算出したハッシュ値に基づく検証データを用いて、更新した起動用ファイル121を正しく検証することができる。また、情報処理装置100は、更新した起動用ファイル121に対してハッシュ演算を行わずに、検証データを作成するため、ハッシュ演算のための処理時間を削減することができる。
【0020】
以上、本実施形態によれば、更新用ファイルを用いて情報処理装置100の起動用ファイルを更新する情報処理システム1において、更新した起動用ファイルをより正しく検証できるようになる。
【0021】
なお、図1に示した情報処理システム1のシステム構成は一例である。例えば、サーバ装置10と情報処理装置100とは、通信ネットワーク2を介して接続されていなくてもよい。具体的な一例として、情報処理装置100は、他の情報処理装置がサーバ装置10からダウンロードしたダウンロードファイル20を、外部メモリ等を介して取得してもよい。
【0022】
<ハードウェア構成>
サーバ装置10は、例えば、図2に示すようなコンピュータ200のハードウェア構成を有している。或いは、サーバ装置10は、複数のコンピュータ200によって構成される。
【0023】
図2は、一実施形態に係るコンピュータのハードウェア構成の例を示す図である。コンピュータ200は、例えば、図2に示されるように、CPU(Central Processing Unit)201、ROM(Read Only Memory)202、RAM(Random Access Memory)203、HD(Hard Disk)204、HDD(Hard Disk Drive)コントローラ205、ディスプレイ206、外部機器接続I/F(Interface)207、ネットワークI/F208、キーボード209、ポインティングデバイス210、DVD-RW(Digital Versatile Disk Rewritable)ドライブ212、メディアI/F214、及びバスライン215等を備えている。
【0024】
これらのうち、CPU201は、コンピュータ200全体の動作を制御する。ROM202は、例えば、起動用ファイル等のコンピュータ200の起動に用いられるプログラム、及びデータ等を記憶する。RAM203は、例えば、CPU201のワークエリア等として使用される。HD204は、例えば、OS(Operating System)、アプリケーション、デバイスドライバ等のプログラムや、各種データを記憶する。HDDコントローラ205は、例えば、CPU201の制御に従ってHD204に対する各種データの読み出し又は書き込みを制御する。
【0025】
ディスプレイ206は、例えば、カーソル、メニュー、ウィンドウ、文字、又は画像などの各種情報を表示する。なお、ディスプレイ206は、コンピュータ200の外部に設けられていても良い。外部機器接続I/F207は、コンピュータ200に、例えば、外部メモリ等の様々な外部装置を接続するためのインタフェースである。ネットワークI/F208は、例えば、通信ネットワーク2等を利用してデータ通信をするためのインタフェースである。
【0026】
キーボード209は、文字、数値、各種指示などの入力のための複数のキーを備えた入力手段の一種である。ポインティングデバイス210は、各種指示の選択や実行、処理対象の選択、カーソルの移動などを行なう入力手段の一種である。なお、キーボード209、及びポインティングデバイス210は、コンピュータ200の外部に設けられていても良い。
【0027】
DVD-RWドライブ212は、着脱可能な記録媒体の一例としてのDVD-RW211に対する各種データの読み出し又は書き込みを制御する。なお、DVD-RW211は、DVD-RWに限らず、他の着脱可能な記録媒体であっても良い。メディアI/F214は、フラッシュメモリ等のメディア213に対するデータの読み出し又は書き込み(記憶)を制御する。バスライン215は、上記の各構成要素を電気的に接続するためのアドレスバス、データバス及び各種の制御信号等を含む。
【0028】
なお、図2に示すコンピュータ200の構成は一例である。コンピュータ200は、例えば、CPU201、ROM202、RAM203、及びネットワークI/F208等を有していれば、他は任意の構成であって良い。
【0029】
(画像形成装置のハードウェア構成)
ここでは、情報処理装置100の一例である画像形成装置300のハードウェア構成について説明する。なお、情報処理装置100は、図2に示すようなコンピュータ200のハードウェア構成を有していてもよい。
【0030】
図3は、一実施形態に係る画像形成装置のハードウェア構成の例を示す図である。画像形成装置300は、例えば、図3に示されるように、コントローラ310、近距離通信回路320、エンジン制御部330、操作パネル340、ネットワークI/F350、及び外部機器接続I/F360等を備えている。
【0031】
これらのうち、コントローラ310は、コンピュータの主要部であるCPU301、システムメモリ(MEM-P)302、ノースブリッジ(NB)303、サウスブリッジ(SB)304、ASIC(Application Specific Integrated Circuit)305、記憶部であるローカルメモリ(MEM-C)306、HDDコントローラ307、及び、記憶部であるHD308等を有し、NB303とASIC305との間をAGP(Accelerated Graphics Port)バス311で接続した構成となっている。
【0032】
これらのうち、CPU301は、画像形成装置300の全体制御を行なう制御部である。NB303は、CPU301と、MEM-P302、SB304、及びAGPバス311とを接続するためのブリッジであり、MEM-P302に対する読み書きなどを制御するメモリコントローラと、PCI(Peripheral Component Interconnect)マスタ及びAGPターゲットとを有する。
【0033】
MEM-P302は、コントローラ310の各機能を実現させるプログラムやデータの格納用メモリであるROM302a、プログラムやデータの展開、及びメモリ印刷時の描画用メモリなどとして用いるRAM302bとからなる。なお、RAM302bに記憶されているプログラムは、インストール可能な形式又は実行可能な形式のファイルでCD-ROM、CD-R、DVD等のコンピュータで読み取り可能な記録媒体に記録して提供するように構成しても良い。また、ROM301aは、起動用ファイル121を記憶する起動用の記憶領域の一例である。
【0034】
SB304は、NB303とPCIデバイス、周辺デバイスとを接続するためのブリッジである。ASIC305は、画像処理用のハードウェア要素を有する画像処理用途向けのIC(Integrated Circuit)であり、AGPバス311、PCIバス312、HDDコントローラ307、及びMEM-C306をそれぞれ接続するブリッジの役割を有する。このASIC305は、PCIターゲット及びAGPマスタ、ASIC305の中核をなすアービタ(ARB)、MEM-C306を制御するメモリコントローラ、ハードウェアロジック等により画像データの回転などを行なう複数のDMAC(Direct Memory Access Controller)、並びに、スキャナ部331及びプリンタ部332との間でPCIバス312を介したデータ転送を行なうPCIユニットとからなる。なお、ASIC305には、USBのインタフェースや、IEEE1394(Institute of Electrical and Electronics Engineers 1394)のインタフェースを接続するようにしても良い。
【0035】
MEM-C306は、コピー用画像バッファ及び符号バッファとして用いるローカルメモリである。HD308は、画像データの蓄積、印刷時に用いるフォントデータの蓄積、フォームの蓄積を行なうためのストレージである。なお、HD308は、例えば、OS、アプリケーション、デバイスドライバ等のプログラムや、各種データを記憶しても良い。HDDコントローラ307は、CPU301の制御に従ってHD308に対するデータの読出又は書込を制御する。AGPバス311は、グラフィック処理を高速化するために提案されたグラフィックスアクセラレータカード用のバスインタフェースであり、MEM-P302に高スループットで直接アクセスすることにより、グラフィックスアクセラレータカードを高速にすることができる。
【0036】
近距離通信回路320は、近距離通信回路用のアンテナ320a等を用いて、各種の近距離無線通信を行なう。エンジン制御部330は、例えば、スキャナ部331及びプリンタ部332等によって構成されている。スキャナ部331は、原稿等を読み取る読取装置である。プリンタ部332は、印刷データを印刷媒体に印刷する印刷装置である。スキャナ部331又はプリンタ部332には、例えば、誤差拡散やガンマ変換等の画像処理部分が含まれている。
【0037】
操作パネル340は、現在の設定値や選択画面等を表示させ、操作者からの入力を受け付けるタッチパネル等のパネル表示部340a、並びに、濃度の設定条件などの画像形成に関する条件の設定値を受け付けるテンキー及びコピー開始指示を受け付けるスタートキー等からなる操作ボタン340bを備えている。コントローラ310は、画像形成装置300全体の制御を行ない、例えば、描画、通信、操作パネル340からの入力等を制御する。
【0038】
なお、画像形成装置300は、例えば、操作パネル340のアプリケーション切り替えキーにより、ドキュメントボックス機能、コピー機能、プリンタ機能、及びファクシミリ機能を順次に切り替えて選択することが可能となる。例えば、ドキュメントボックス機能の選択時にはドキュメントボックスモードとなり、コピー機能の選択時にはコピーモードとなり、プリンタ機能の選択時にはプリンタモードとなり、ファクシミリモードの選択時にはファクシミリモードとなる。
【0039】
ネットワークI/F350は、通信ネットワーク2を利用してデータ通信をするためのインタフェースである。外部機器接続I/F360は、画像形成装置300に、例えば、外部メモリ等の様々な外部装置を接続するためのインタフェースである。近距離通信回路320、ネットワークI/F350、及び外部機器接続I/F360は、例えば、PCIバス312を介して、ASIC305に電気的に接続されている。
【0040】
なお、図3に示した画像形成装置300のハードウェア構成は、情報処理装置100のハードウェア構成の一例である。情報処理装置100は、例えば、CPU301、ROM302a、RAM302b、ネットワークI/F208、及び外部機器接続I/F360等を有していれば、他は任意の構成であって良い。
【0041】
<機能構成>
続いて、情報処理システム1の機能構成について説明する。図4は、一実施形態に係る情報処理システムの機能構成の例を示す図である。
【0042】
(サーバ装置の機能構成)
サーバ装置(第1の情報処理装置)10は、例えば、記憶部421、第1の作成部422、及び提供部423等を有する。
【0043】
記憶部421は、例えば、CPU201が実行するプログラム、及びHD204、HDDコントローラ205等によって実現され、ダウンロードファイル20、及び秘密鍵A424等を記憶する。情報処理システム1は、公開鍵暗号の秘密鍵Aと公開鍵Aの組合せを生成し、サーバ装置10の記憶部421に秘密鍵Aを予め記憶するとともに、情報処理装置100の記憶部120に公開鍵Aを予め記憶しておく。
【0044】
第1の作成部422は、例えば、CPU201が実行するプログラム(署名作成アプリケーション等)によって実現され、更新用ファイル21を検証するための第1の署名データ22を作成する第1の作成処理を実行する。また、第1の作成部422は、更新用ファイル21と第1の署名データ22とを含むダウンロードファイル20を作成し、記憶部421に記憶する。
【0045】
提供部423は、例えば、CPU201が実行するプログラム(署名作成アプリケーション等)によって実現され、第1の作成部422が作成したダウンロードファイル20を提供する提供処理を実行する。例えば、サーバ装置10は、情報処理装置100からのダウンロード要求に応じて、情報処理装置100にダウンロードファイル20を提供してもよい。或いは、サーバ装置10は、情報処理装置100とは異なる他の情報処理装置からの要求に応じて、他の情報処理装置にダウンロードファイル20を提供してもよい。この場合、他の情報処理装置を利用するユーザは、サーバ装置10からダウンロードしたダウンロードファイル20を外部メモリに格納して、当該外部メモリを情報処理装置100に接続する。
【0046】
(情報処理装置の機能構成)
情報処理装置100は、例えば、取得部401、第1の検証部402、更新部403、第2の作成部404,第2の検証部405、通知部406、一時記憶領域110、及び記憶部120等を有する。
【0047】
取得部401は、例えば、CPU301が実行するプログラム(システム更新アプリケーション等)によって実現され、更新用ファイル21と第1の署名データ22とを含むダウンロードファイル20を取得する取得処理を実行する。例えば、取得部401は、外部メモリ等を介して、サーバ装置10が提供するダウンロードファイル20を取得してもよいし、通信ネットワーク2を介して、サーバ装置10が提供するダウンロードファイル20を取得してもよい。
【0048】
第1の検証部402は、例えば、CPU301が実行するプログラム(システム更新アプリケーション等)によって実現される。第1の検証部402は、更新用ファイル21で起動用ファイル121を更新するときに、第1の署名データ22を用いて更新用ファイル21を検証する第1の検証処理を実行する。例えば、第1の検証部402は、第1の署名データ22を、公開鍵Aで復号して第1のハッシュ値を取得するとともに、更新用ファイル21にハッシュ演算を行い、第2のハッシュ値を求める。また、第1の検証部402は、第1のハッシュ値と第2のハッシュ値とを比較して一致した場合、更新用ファイル21が正当なファイル(改竄されていない)と判断する。一方、第1の検証部402は、第1のハッシュ値と第2のハッシュ値とを比較して一致しない場合、更新用ファイル21が不正なファイル(改竄されている)と判断する。
【0049】
なお、情報処理システム1は、前述したように、公開鍵暗号の秘密鍵Aと公開鍵Aの組合せを生成し、サーバ装置10の記憶部421に秘密鍵Aを予め記憶するとともに、情報処理装置100の記憶部120に公開鍵Aを予め記憶しておく。
【0050】
更新部403は、例えば、CPU301が実行するプログラム(システム更新アプリケーション等)によって実現され、第1の検証部402が検証した更新用ファイル21で情報処理装置100の起動用ファイル121を更新する更新処理を実行する。例えば、更新部403は、第1の検証部402が正当と判断した更新用ファイル21を、記憶部120の起動用ファイル121に上書きする。
【0051】
第2の作成部404は、例えば、CPU301が実行するプログラム(システム更新アプリケーション等)によって実現される。第2の作成部404は、例えば、第1の署名データ22から取得した第1のハッシュ値に基づいて、403更新部が更新した起動用ファイル121を検証する検証データ122を作成する第2の作成処理を実行する。一例として、第2の作成部404は、第1の署名データ22から取得した第1のハッシュ値を、起動時用の秘密鍵Bで暗号化して作成した第2の署名データを、検証データ122とする。この場合、情報処理装置100は、起動時用の秘密鍵Bと公開鍵Bとの組合せを、記憶部120に予め記憶しておく。
【0052】
別の一例として、第2の作成部404は、第1の署名データ22から取得した第1のハッシュ値を、検証データ122としてもよい。
【0053】
第2の検証部405は、例えば、CPU301が実行するプログラム(システム更新アプリケーション等)によって実現される。第2の検証部405は、例えば、更新部403が更新した起動用ファイル121を用いて情報処理装置100を起動するときに、第2の作成部404が作成した検証データ122を用いて、更新部403が更新した起動用ファイル12を検証する第2の検証処理を実行する。一例として、第2の検証部405は、第2の作成部404が作成した第2の署名データ(検証データの一例)を公開鍵Bで復号して第1のハッシュ値を取得するとともに、更新した起動用ファイル121にハッシュ演算を行い、第3のハッシュ値を求める。また、第2の検証部405は、第1のハッシュ値と第3のハッシュ値とを比較して一致した場合、更新した起動用ファイル121が正当なファイル(改竄されていない)と判断する。この場合、情報処理装置100は、更新された起動用ファイル121を、RAM領域に展開し、当該起動用ファイル121へのアクセスを許可する。
【0054】
一方、第2の検証部405は、第1のハッシュ値と第3のハッシュ値とを比較して一致しない場合、更新した起動用ファイル121が不正なファイル(改竄されている)と判断する。この場合、情報処理装置100は、更新された起動用ファイル121のRAM領域への展開を中止、又は当該起動用ファイル121へのアクセスを禁止する。
【0055】
通知部406は、例えば、CPU301が実行するプログラム(システム更新アプリケーション等)によって実現される。通知部406は、第1の検証部402が、更新用ファイル21の検証に失敗した場合、エラーを通知する通知処理(第1の通知処理)を実行する。また、通知部406は、第2の検証部405が、起動用ファイル121の検証に失敗した場合、エラーを通知する通知処理(第2の通知処理)を実行する。一例として、通知部406は、エラー通知画面を、操作パネル340等の表示部に表示することにより、エラーを通知する。別の一例として、通知部406は、所定の端末装置等に、メール送信、又はプッシュ通知することにより、エラーを通知してもよい。
【0056】
一時記憶領域110は、例えば、情報処理装置100に接続された外部メモリ、RAM302b、又はHD308等のストレージデバイス等によって実現され、更新用ファイル21、及び第1の署名データ22等を一時的に記憶する。
【0057】
記憶部120は、例えば、ROM302a、RAM302b、MEM-C306、HD308等のストレージデバイス、又はASIC305の内部の記憶領域等によって実現される。記憶部120は、例えば、公開鍵A411、秘密鍵B412、公開鍵B413、起動用ファイル121、及び検証データ122等を記憶する。なお、記憶部120には、例えば、起動用の記憶領域、及びRAM領域等が含まれる。
【0058】
<処理の流れ>
続いて、本実施形態に係る情報処理方法の処理の流れについて説明する。
【0059】
[第1の実施形態]
(サーバ装置の処理)
図5は、第1の実施形態に係るサーバ装置の処理のイメージを示す図である。図5のステップS1において、サーバ装置10の第1の作成部422は、更新用ファイル21を取得する。このとき、第1の作成部422は、サーバ装置10が備える記憶部421等から更新用ファイル21を取得してもよいし、情報処理システム1の外部のサーバ装置等から更新用ファイル21を取得してもよい。
【0060】
ステップS2において、第1の作成部422は、取得した更新用ファイル21にハッシュ演算を行い、第1のハッシュ値を算出する。例えば、第1の作成部422は、SHA-256(Secure Hash Algorithm 256-bit)等のハッシュ関数を用いて、更新用ファイル21のハッシュ演算を行う。
【0061】
ステップS3において、第1の作成部422は、算出した第1のハッシュ値を、更新用の秘密鍵Aで暗号化し、第1の署名データ11を作成する。また、ステップS4において、第1の作成部422は、更新用ファイル21と第1の署名データ22とを含むダウンロードファイル20を作成し、記憶部421に記憶する。
【0062】
なお、複数の更新用ファイル21がある場合には、第1の作成部422は、ステップS1~S4の処理を、複数の更新用のファイルの各々に対して実行し、複数のダウンロードファイル20を作成する。
【0063】
ステップS5において、サーバ装置10の提供部423は、例えば、情報処理装置100等からの要求に応じて、記憶部421に記憶した1つ以上のダウンロードを提供する。なお、図5の処理をフローチャートで表すと図6のようになる。
【0064】
(サーバ装置の処理のフローチャート)
図6は、第1の実施形態に係るサーバ装置の処理の例を示すフローチャートである。この処理は、サーバ装置10が、更新用ファイル21と第1の署名データ22とを含むダウンロードファイル20を作成し、提供する処理の例を示している。なお、図6の処理の処理内容は、図5で説明した処理内容と同様なので、ここでは同様の処理に対する詳細な説明は省略する。
【0065】
ステップS601において、サーバ装置10の第1の作成部422は、更新用ファイル21を取得する。
【0066】
ステップS602において、第1の作成部422は、取得した更新用ファイル21に対してハッシュ演算を行い、第1のハッシュ値を算出する。
【0067】
ステップS603において、第1の作成部422は、第1のハッシュ値を秘密鍵Aで暗号化して第1の署名データを作成する。
【0068】
ステップS604において、第1の作成部422は、取得した更新用ファイル21と、作成した第1の署名データ22とを含むダウンロードファイル20を作成する。
【0069】
ステップS605において、サーバ装置10の提供部423は、ダウンロードファイル20を、例えば、情報処理装置100、又は他の情報処理装置等に提供する。
【0070】
(更新時の処理)
図7は、第1の実施形態に係る情報処理装置の更新時の処理のイメージを示す図である。図7のステップS11において、情報処理装置100の取得部401は、サーバ装置10が提供する1つ以上のダウンロードファイル20を取得する。例えば、取得部401は、通信ネットワーク2を介して、サーバ装置10から1つ以上のダウンロードファイル20をダウンロードして、一時記憶領域110に記憶してもよい。或いは、取得部401は、情報処理装置100に接続された外部メモリ等から、1つ以上のダウンロードファイル20を取得してもよい。ここでは、説明を容易にするため、ダウンロードファイル20が1つであるものとして、以下の説明を行う。
【0071】
ステップS12において、情報処理装置100の第1の検証部402は、取得部401が取得したダウンロードファイル20に含まれる更新用ファイル21のハッシュ演算を行い、第2のハッシュ値を取得する。例えば、第1の検証部402は、SHA-256等のハッシュ関数を用いて、更新用ファイル21のハッシュ演算を行う。
【0072】
ステップS13において、第1の検証部402は、取得部401が取得したダウンロードファイル20に含まれる第1の署名データ22を、更新用の公開鍵A411で復号して、第1のハッシュ値を取得する。
【0073】
ステップS14において、第1の検証部402は、第1の署名データ22を検証する。例えば、第1の検証部402は、第1のハッシュ値と第2のハッシュ値とを比較し、一致した場合、更新用ファイル21が改竄されていない正当なファイルであると判断する。この場合、情報処理装置100の更新部403は、ステップS51aにおいて、正当なファイルと判断した更新用ファイル21で、記憶部120の起動用の記憶領域に記憶されている起動用ファイル121を更新し、ステップS16以降の処理を実行する。
【0074】
一方、第1の検証部402は、第1のハッシュ値と第2のハッシュ値とを比較し、一致しない場合、更新用ファイル21が改竄された(又は壊れた)不当なファイルであると判断する。この場合、情報処理装置100の通知部406は、システムエラー通知を行い、ステップS16以降の処理の実行を中止する。
【0075】
ステップS16において、情報処理装置100の第2の作成部404は、ステップS13で、第1の検証部402が取得した第1のハッシュ値を、起動用の秘密鍵B412で暗号化して、第2の署名データ701を作成する。
【0076】
ステップS17において、第2の作成部404は、作成した第2の署名データを、記憶部120の起動用の記憶領域に記憶した、更新した起動用ファイル121のメタデータ領域に格納する。
【0077】
なお、複数のダウンロードファイル20がある場合には、情報処理装置100は、複数のダウンロードファイル20の各々に対して、ステップS12~S17の処理を実行する。図7の処理をフローチャートで表すと図8のようになる。
【0078】
(更新時の処理のフローチャート)
図8は、第1の実施形態に係る情報処理装置の更新時の処理の例を示すフローチャートである。この処理は、情報処理装置100が、サーバ装置10が提供するダウンロードファイル20を用いて、情報処理装置100の起動用ファイル121を更新する処理の一例を示している。なお、図8の処理の処理内容は、図7で説明した処理内容と同様なので、ここでは同様の処理に対する詳細な説明は省略する。
【0079】
ステップS801において、情報処理装置100の取得部401は、サーバ装置10が提供するダウンロードファイル20に含まれる更新用ファイル21と、第1の署名データ22とを取得する。
【0080】
ステップS802において、情報処理装置100の第1の検証部402は、取得部401が取得した更新用ファイル21にハッシュ演算を行い、ハッシュ値(第2のハッシュ値)を取得する。
【0081】
ステップS803において、第1の検証部402は、取得部401が取得した第1の署名データ22を、記憶部120に予め記憶した更新用の公開鍵A411で復号して、サーバ装置10が作成した第1のハッシュ値を取得する。なお、ステップS803の処理は、ステップS802の処理の前に実行してもよいし、ステップS802の処理と並行して実行してもよい。
【0082】
ステップS804において、第1の検証部402は、第1のハッシュ値と第2のハッシュ値との2つのハッシュ値が一致するか否かを判断する。2つハッシュ値が一致した場合、第1の検証部402は、処理をステップS805に移行させる。一方、2つのハッシュ値が一致しない場合、第1の検証部402は、処理をステップS805に移行させる。
【0083】
ステップS805に移行すると、情報処理装置100の更新部403は、取得部401が取得した更新用ファイル21が正当なファイルであると判断し、当該更新用ファイル21で、記憶部120に記憶している起動用ファイル121を更新する。
【0084】
ステップS806において、情報処理装置100の第2の作成部404は、ステップS803で、第1の検証部402が取得した第1のハッシュ値を、起動用の秘密鍵B412で暗号化して、第2の署名データ701を作成する。
【0085】
ステップS807において、第2の作成部404は、作成した第2の署名データ701を、更新した起動用ファイル121のメタデータ領域に格納する。なお、第2の署名データ701は、更新した起動用ファイル121を検証するための検証データ122の一例である。例えば、検証データ122は、第2の実施形態で後述するように、第1のハッシュ値等であってもよい。
【0086】
一方、ステップS804からステップS808に移行すると、情報処理装置100は、更新処理を中止し、情報処理装置100の通知部406は、エラーを通知する。例えば、通知部406は、図9に示すようなエラー通知画面900を、操作パネル340等の表示部に表示する。図9の例では、エラー通知画面900には、起動用ファイル121の更新に失敗したことを示すメッセージ、エラーコード、及び問い合わせ先等の情報が表示されている。このように、本実施形態に係る情報処理装置100は、第1の署名データ22の検証に失敗したときに、エラー情報を操作パネル340等の表示部の画面上で知らせることができる。
【0087】
(起動時の処理)
図10は、第1の実施形態に係る情報処理装置の起動時の処理のイメージを示す図である。図10のステップS21において、情報処理装置100は、図7、又は図8の処理により、起動用ファイル121を更新した後に起動(又は再起動)する。
【0088】
ステップS22において、情報処理装置100の第2の検証部405は、起動用ファイル121がファイルアクセスされたときに、起動用ファイル121にハッシュ演算を行い、第3のハッシュ値を取得する。
【0089】
ステップS23において、第2の検証部405は、ファイルアクセスされた起動用ファイル121のメタデータ領域にある第2の署名データ701を、起動用の公開鍵Bで復号して、第1のハッシュ値を取得する。
【0090】
ステップS24において、第2の検証部405は、第1の検証部402は、第1の署名データ22を検証する。例えば、第2の検証部405は、第1のハッシュ値と第3のハッシュ値とを比較し、一致した場合、起動用ファイル121が改竄されていない正当なファイルであると判断する。この場合、第2の検証部405は、ステップS24aにおいて、正当なファイルと判断した起動用ファイル121を、記憶部120のRAM領域に展開し、当該起動用ファイル121に対するファイルアクセスを許可する。
【0091】
一方、第2の検証部405は、第1のハッシュ値と第3のハッシュ値とを比較し、一致しない場合、起動用ファイル121が改竄されている、又は破損している不当なファイルであると判断する。この場合、情報処理装置100の通知部406は、システムエラー通知を行い、ステップS24aの処理を中止する。なお、図10の処理をフローチャートで表すと図11のようになる。
【0092】
(起動時の処理のフローチャート)
図11は、第1の実施形態に係る情報処理装置の起動時の処理の例を示すフローチャートである。この処理は、情報処理装置100が、例えば、図8の処理により、起動用ファイル121を更新した後に、起動、又は再起動するときに実行する起動処理の一例を示している。なお、図11の処理の処理内容は、図10で説明した処理内容と同様なので、ここでは同様の処理に対する詳細な説明は省略する。
【0093】
ステップS1101において、情報処理装置100が、更新した起動用ファイル121にアクセスすると、情報処理装置100は、ステップS1102以降の処理を実行する。
【0094】
ステップS1102において、情報処理装置100の第2の検証部405は、更新した起動用ファイル121にハッシュ演算を行い、ハッシュ値(第3のハッシュ値)を取得する。
【0095】
ステップS1103において、第2の検証部405は、更新した起動用ファイル121のメタデータ領域にある第2の署名データ701を、起動用の公開鍵Bで復号して、ハッシュ値(第1のハッシュ値)を取得する。なお、ステップS1103の処理は、ステップS1102の処理の前に実行してもよいし、ステップS1102の処理と並行して実行してもよい。
【0096】
ステップS1104において、第2の検証部405は、第1のハッシュ値と第3のハッシュ値の2つのハッシュ値が一致するか否かを判断する。2つのハッシュ値が一致する場合、第2の検証部405は、処理をステップS1105に移行させる。一方、2つのハッシュ値が一致しない場合、第2の検証部405は、処理をステップS1106に移行させる。
【0097】
ステップS1105に移行すると、第2の検証部405は、正当なファイルと判断した起動用ファイル121を、記憶部120のRAM領域に展開し、当該起動用ファイル121に対するファイルアクセスを許可する。これにより、情報処理装置100は、当該起動用ファイル121を実行することができるようになる。
【0098】
一方、ステップS1106に移行すると、情報処理装置100は、不当なファイルと判断した起動用ファイル121へのアクセスを禁止し、情報処理装置100の通知部406は、エラーを通知する。例えば、通知部406は、図12に示すようなエラー通知画面1200を、操作パネル340等の表示部に表示する。
【0099】
図12の例では、エラー通知画面1200には、起動用ファイル121が起動できないことを示すメッセージ、エラーコード、及び問い合わせ先等の情報が表示されている。このように、本実施形態に係る情報処理装置100は、第1の署名データ22の検証に失敗したときに、エラー情報を操作パネル340等の表示部の画面上で知らせることができる。
【0100】
このように、第1の実施形態では、情報処理装置100は、起動用ファイル121を更新した後の起動時に、サーバ装置10が算出した第1のハッシュデータを用いて、更新した起動用ファイル121の正当性を検証することができる。
【0101】
[第2の実施形態]
第1の実施形態では、更新した起動用ファイル121を検証するための検証データ122が、第2の署名データである場合の処理の例について説明した。ただし、これは一例であり、更新した起動用ファイル121を検証するための検証データ122は、第1のハッシュ値であってもよい。第2の実施形態では、更新した起動用ファイル121を検証するための検証データ122が、第1のハッシュ値である場合の処理の例について説明する。
【0102】
(更新時の処理のフローチャート)
図13は、第2の実施形態に係る情報処理装置の更新時の処理の例を示すフローチャートである。この処理は、情報処理装置100が、サーバ装置10が提供するダウンロードファイル20を用いて、情報処理装置100の起動用ファイル121を更新する処理の別の一例を示している。なお、図13に示す処理のうち、ステップS801~S805、S808の処理は、図8で説明した第1の実施形態に係る更新時の処理と同様なので、ここでは、第1の実施形態との相違点について説明する。
【0103】
図13のステップS1301において、情報処理装置100の第2の作成部404は、第1の検証部402が取得した第1のハッシュ値を、検証データ122として、更新した起動用ファイル121のメタデータ領域に格納する。なお、第1のハッシュ値は、更新した起動用ファイル121を検証するための検証データ122の別の一例である。
【0104】
(起動時の処理のフローチャート)
図14は、第2の実施形態に係る情報処理装置の更新時の処理の例を示すフローチャートである。この処理は、情報処理装置100が、図13の処理により、起動用ファイル121を更新した後に、起動、又は再起動するときに実行する起動処理の別の一例を示している。なお、図14に示す処理のうち、ステップS1101、1102、S1104~S1106の処理は、図11で説明した第1の実施形態に係る起動時の処理と同様なので、ここでは、第1の実施形態との相違点について説明する。
【0105】
図14のステップS1401において、情報処理装置100の第2の検証部405は、更新した起動用ファイル121のメタデータ領域に、検証データ122として格納された第1のハッシュ値を取得する。第2の検証部405は、取得した第1のハッシュ値を用いて、起動用ファイル121の正当性を検証する。
【0106】
このように、起動用ファイル121を検証するための検証データ122は、第2の署名データ701に限られず、第1のハッシュデータ等であってもよい。第2の実施形態においても、情報処理装置100は、起動用ファイル121を更新した後の起動時に、サーバ装置10が算出した第1のハッシュデータを用いて、更新した起動用ファイル121の正当性を検証することができる。
【0107】
以上、本発明の各実施形態によれば、更新用ファイル21を用いて情報処理装置100の起動用ファイル121を更新する情報処理システム1において、更新した起動用ファイル121をより正しく検証できるようになる。
【0108】
<補足>
上記で説明した各実施形態の各機能は、一又は複数の処理回路によって実現することが可能である。ここで、本明細書における「処理回路」とは、電子回路により実装されるプロセッサのようにソフトウェアによって各機能を実行するようプログラミングされたプロセッサや、上記で説明した各機能を実行するよう設計されたASIC(Application Specific Integrated Circuit)、DSP(digital signal processor)、FPGA(field programmable gate array)や従来の回路モジュール等のデバイスを含むものとする。
【0109】
また、実施例に記載された装置群は、本明細書に開示された実施形態を実施するための複数のコンピューティング環境のうちの1つを示すものに過ぎない。ある実施形態では、サーバ装置10は、サーバクラスタといった複数のコンピューティングデバイスを含む。複数のコンピューティングデバイスは、ネットワークや共有メモリなどを含む任意のタイプの通信リンクを介して互いに通信するように構成されており、本明細書に開示された処理を実施する。
【0110】
また、サーバ装置10は、1つの装置にまとめられていても良いし、複数の装置に分けられていても良い。さらに、サーバ装置10、及び情報処理装置100の機能構成のうち、少なくとも一部は、外部のクラウドサービス等を利用して実行するものであってもよい。
【符号の説明】
【0111】
1 情報処理システム
10 サーバ装置(第1の情報処理装置)
21 更新用ファイル
22 第1の署名データ
100 情報処理装置(第2の情報処理装置)
121 起動用ファイル
122 検証データ
401 取得部
402 第1の検証部
403 更新部
404 第2の作成部
405 第2の検証部
406 通知部
422 第1の作成部
900、1200 エラー通知画面
【先行技術文献】
【特許文献】
【0112】
【特許文献1】特開2021-077971号公報
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14