JP2020035078A - 情報処理装置、その制御方法、およびそのプログラム - Google Patents

情報処理装置、その制御方法、およびそのプログラム Download PDF

Info

Publication number
JP2020035078A
JP2020035078A JP2018159476A JP2018159476A JP2020035078A JP 2020035078 A JP2020035078 A JP 2020035078A JP 2018159476 A JP2018159476 A JP 2018159476A JP 2018159476 A JP2018159476 A JP 2018159476A JP 2020035078 A JP2020035078 A JP 2020035078A
Authority
JP
Japan
Prior art keywords
application
application program
verification
information processing
processing apparatus
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2018159476A
Other languages
English (en)
Other versions
JP7084826B2 (ja
JP2020035078A5 (ja
Inventor
安川 朱里
Shuri Yasukawa
朱里 安川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2018159476A priority Critical patent/JP7084826B2/ja
Priority to US16/537,909 priority patent/US11526597B2/en
Publication of JP2020035078A publication Critical patent/JP2020035078A/ja
Publication of JP2020035078A5 publication Critical patent/JP2020035078A5/ja
Application granted granted Critical
Publication of JP7084826B2 publication Critical patent/JP7084826B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1469Backup restoration techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/554Detecting local intrusion or implementing counter-measures involving event detection and direct action
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/82Solving problems relating to consistency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Stored Programmes (AREA)

Abstract

【課題】アプリケーション検証により、システムの可用性を担保しつつ、機器をセキュアに利用させる手段を提供する。【解決手段】アプリケーションの正当性を確認するシステムにおいて、正当性の検証に失敗した際、アプリケーション種別に応じて復旧であるか否かを判断し、復旧可能と判断した場合はアプリケーションを自動で復旧して起動することで、システムの可用性を担保しつつ、ユーザは機器をセキュアに利用することができる。【選択図】図8A

Description

本発明は、例えばソフトウェア改ざん検知機能等を有する情報処理装置、その制御方法、およびそのプログラムに関する。
機器を制御するソフトウェアを第三者が改ざんし、不正利用する攻撃が問題になっている。不正利用されてしまうと、情報資産を盗まれたり、他のシステムを攻撃する踏み台に利用されたりすることで、機器の所有者に甚大な被害を引き起こす危険性がある。そういった攻撃に対し、ソフトウェアが改ざんされていないことを機器利用時に検証する手段が考案されている(特許文献1)。
また、特許文献2では複合機に接続された拡張ユニットを起動する際に、拡張ユニットのソフトウェアの正当性を確認し、正当性が確認された後に拡張ユニットを起動する手段が考案されている。正当性確認に失敗した場合は、拡張ユニットの利用を停止し、不正なソフトウェアが動作しないように制御する。
特開2017−153044号公報 特開2008−171041号公報
特許文献2では、ソフトウェアの正当性確認に失敗した場合、拡張ユニットの利用を一律停止するため、拡張ユニットが利用できずシステムの可用性が低下するという問題がある。
本発明は上記従来例に鑑みてなされたもので、システムの可用性を担保しつつ、機器をセキュアに利用させることを目的とする。
上記目的を達成するために本発明は以下の構成を有する。
本発明の一側面によれば、アプリケーションプログラムの検証を行う検証手段と、
前記検証手段による検証が失敗した場合には、前記アプリケーションプログラムの種別に基づき、前記アプリケーションプログラムの復旧を行うか否かを判定し、
復旧を行うと判定した場合には前記アプリケーションプログラムを復旧し、
復旧を行わないと判定した場合には前記アプリケーションプログラムの実行を許さず、
前記検証手段による検証が成功したアプリケーションプログラム又は前記復旧したアプリケーションプログラムの実行を許す制御手段とを有することを特徴とする情報処理装置が提供される。
本発明によれば、システムの可用性を担保しつつ、ユーザは機器をセキュアに利用することができる。
本発明に係わるMFPとクライアントPCの接続形態を示すブロック構成図である。 MFPのコントローラ部の内部構成図である。 MFPのコントローラ内で実行されるソフトウェアのブロック構成図である。 起動時検証用正解値リストの例を示す図である。 アプリケーションの構成図である。 アプリケーションの管理ファイル及び正解値リストの例を示す図である。 本発明のMFP側の処理を実施するフロー図である。 本発明のMFP側の処理を実施するフロー図である。 本発明のMFP側の処理を実施するフロー図である。 設定に係る画面構成図である。 設定に係る画面構成図である。 本発明のMFP側の処理を実施するフロー図である。 設定に係る画面構成図である。
[実施形態1]
以下、本発明の実施の形態を図面に基づいて解説する。本実施形態では、ソフトウェア起動時のソフトウェア検証処理について説明する。ここではMFP(Multi-Function Peripheral:複合機)を例に実施形態を説明するが、本発明は複合機以外の任意の情報処理装置に適用可能な技術である。
図1は本発明に係るMFPとクライアントPCの接続形態を示すブロック図である。MFP100とクライアントPC120はLAN150を介して接続されている。MFP100はユーザとの入出力を行う操作部102を有する。操作部102はユーザインターフェイスを提供する。MFP100は電子データを紙媒体に出力するプリンタ部103を有する。MFP100は紙媒体を読み込み電子データに変換するスキャナ部104を有する。操作部102とプリンタ部103とスキャナ部104はコントローラ部101に接続され、コントローラ部101の制御に従い複合機としての機能を実現する。クライアントPC120はMFP100に対してプリントジョブの送信といった処理を行う。
●コントローラ部の構成
図2はMFP100のコントローラ部101の詳細を示すブロック図である。CPU201はコントローラ内の主な演算処理を行うプロセッサーである。CPU201はバスを介してDRAM202と接続される。DRAM202はCPU201が演算する過程で演算命令を表すプログラムデータや、処理対象のデータを一時的に配置するための作業メモリとしてCPU201によって使用される。CPU201はバスを介してI/Oコントローラ203と接続される。I/Oコントローラ203はCPU201の指示に従い各種デバイスに対する入出力を行う。I/Oコントローラ203にはSATA(Serial Advanced Technology Attachment)I/F205が接続され、その先にFlash(登録商標)ROM211が接続される。CPU201はFlash ROM211を、MFPの機能を実現するためのプログラム、およびドキュメントファイルを永続的に記憶するために使用する。Flash ROM211に格納されるプログラムには、追加的にインストールされたアプリケーションプログラム(アプリケーション)が含まれる。I/Oコントローラ203にはネットワークI/F204が接続され。ネットワークI/F204の先には、有線LANデバイス210が接続される。
CPU201はネットワークI/F204を介して有線LANデバイス210を制御することで、LAN150上の通信を実現する。I/Oコントローラ203にはパネルI/F206が接続され、CPU201はパネルI/F206を介して操作部102に対するユーザ向けの入出力を実現する。I/Oコントローラ203にはプリンタI/F207が接続され、CPU201はプリンタI/F207を介してプリンタ部103を利用した紙媒体の出力処理を実現する。I/Oコントローラ203にはスキャナI/F208が接続され、CPU201はスキャナI/F208を介してスキャナ部104を利用した原稿の読み込み処理を実現する。I/Oコントローラ203にはUSB I/F209が接続され、USB I/Fに接続された任意の機器の制御を行う。ROM220はCPU201とバスで接続されていて、BIOS(Basic Input Output System:基本入出力システム)を実現する制御プログラムが記憶している。
BIOS検証ユニット221はROM220およびCPU201とバスで接続されていて、ROM220に記憶されたBIOSデータの検証と、CPUへのBIOS起動指示を行う。ここで、BIOS検証ユニット221はハードウェアであり、BIOS検証がハードウェア検証であることを確認しておく。BIOS検証ユニット221とCPU201を繋ぐバスは悪意のある第三者に細工をされないために、同一チップ、またはそれに準ずる構成で実現され外部から物理的に確認できない形態になっている。本実施形態では、BIOS検証ユニット221の制御機構は集積回路としてハードウェアで実現されている構成を想定するが、専用のCPU、制御ソフトを記憶したROMといった要素を同一チップ内に実装し、製造後に変更できない構成であっても良い。BIOS検証ユニット221はCPU201にバスで接続されているものとしたが、I/Oコントローラ203を介して接続されていてもよい。
コピー機能を実施する場合は、CPU201がSATA I/F205を介してFlash ROM211からコピー機能のためのプログラムとデータをDRAM202に読み込む。CPU201がDRAM202に読み込まれたプログラムを実行してパネルI/F206を介して操作部102に対するユーザからのコピー指示を検出する。CPU201はコピー指示を検出するとスキャナI/F208を介してスキャナ部104から原稿を電子データとして受け取りDRAM202に格納する。CPU201はDRAM202に格納した画像データに対して出力に適した色変換処理などを実施する。CPU201はDRAM202に格納した画像データをプリンタI/F207を介してプリンタ部103に転送し、紙媒体への出力処理を実施する。
PDL(ページ記述言語)印刷を実施する場合は、クライアントPC120がLAN150を介して印刷指示を行う。CPU201はSATA I/F205を介してFlash211からPDL印刷のプログラムとデータをDRAM202に読み込み、DRAM202に読み込まれたプログラムを実行してネットワークI/F204を介して印刷指示を検出する。CPU201はPDL送信指示を検出するとネットワークI/F204を介して印刷データを受信し、SATA I/F205を介してFlash ROM211に印刷データを保存する。CPU201は印刷データの保存が完了すると、Flash ROM211に保存した印刷データをDRAM202に画像データとして展開する。CPU201はDRAM202に格納した画像データに対して出力に適した色変換処理などを実施する。CPU201はDRAM202に格納した画像データをプリンタI/F207を介してプリンタ部103に転送し、紙媒体への出力処理を実施する。
●ソフトウェアの構成
図3はMFPのコントローラ部101で実行されるソフトウェアの構造をあらわすブロック図である。コントローラ部101で実行されるソフトウェアは全て、CPU201が実行する。CPU201は、ROM220に記憶されたBIOS360を実行する。CPU201は、Flash ROM211に記憶された、ローダ370、Initrd380、コントローラソフト300をDRAM202に読み込んだ後に実行する。BIOS360はI/Oコントローラ203やDRAM202をCPU201が制御するための基本処理を実行する。
BIOS360は内部的にBIOSとしての制御ソフトと制御ソフトに対応する署名データとを含む。ローダ読み込み検証部361はBIOS360の制御ソフトに含まれ、ローダを検証する処理コードとローダに付与された署名に対応する公開鍵を含む。さらにBIOS360はFlash ROM211からローダ370を読み込み、開始する処理を含む。ローダ370はFlash ROM211からカーネル390、Initrd380を読み込み、開始する処理を実行する。ローダ370は内部的にローダとしての制御ソフトと制御ソフトに対応する署名データとを含む。
カーネル、Initrd読み込み検証部371はローダ370に含まれ、カーネル、Initrdを検証する処理とカーネル、Initrdに付与された署名に対する公開鍵を含む。Initrd380はFlash ROM211からコントローラソフト300を読み込み、開始する処理を実行する。Initrd380は内部的にInitrdとしての制御ソフトと制御ソフトに対する署名データとを含む。起動時検証部381はInitrd380に含まれ、コントローラソフト300を構成する全てのプログラムファイルを起動時に検証する処理と、付与された署名に対する公開鍵を含む。ここで、全ての署名データに対する秘密鍵はソフトウェアの開発時のみ利用され一般に流通することはない。
操作制御部301は操作部102にユーザ向けの画面イメージを表示し、ユーザ操作を検知して、操作された画面上に表示したボタン等の画面部品に紐づけられた処理を実行する。データ記憶部302は他の制御部からの要求でデータをFlash ROM211に記憶、および読み出しを行う。例えば、ユーザが何らかの機器設定を変更したい場合は、操作部102にユーザが入力した内容を操作制御部301が検知し、操作制御部301からの要求でデータ記憶部302が設定値としてFlash ROM211に保存する。ネットワーク制御部307はデータ記憶部302に記憶された設定値に従い、システム起動時や、設定変更検出時にIPアドレスなどネットワーク設定をTCP/IP制御部308に行う。
TCP/IP制御部308は他の制御からの指示に従い、ネットワークI/F204を介して、ネットワークパケットの送受信処理を行う。ジョブ制御部303は他の制御部からの指示に従って、ジョブ実行の制御を行う。画像処理部304はジョブ制御部303からの指示に従って、画像データを用途ごとに適した形式に加工する。印刷処理部305はジョブ制御部303からの指示に従い、プリンタI/F207を介して、紙媒体に画像を印刷し出力する。読み取り制御部306はジョブ制御部303からの指示に従い、スキャナI/F208を介して、設置された原稿を読み込む。USB制御部311はUSB I/F209を制御し、USB接続された任意の機器の制御を行う。起動時検証用正解値リスト321は起動時検証部381が検証処理に利用する正解値のリストである。図4に起動時検証用正解値リスト321のデータ形式のサンプルを示す。起動時検証用正解値リスト321はコントローラソフト300に含まれる全てのプログラムファイルに対して、ファイル名3001とハッシュ3002の組み合わせをリスト化したものである。プログラムファイルにはOSのプログラムおよび機能を提供するプログラムまたはそのいずれかが含まれる。データの内容としては、少なくともファイル名称、ファイルの配置場所(ディレクトリ上の位置)、ファイルから計算したハッシュ値を含むものとし、ハッシュ値等の情報がリスト化される。
アプリケーション制御部332は、MFP100上で動作するアプリケーションの動作状態やアプリケーションの起動/停止を管理する。本実施形態では、Java(登録商標)モジュールの動的インストールや実行を管理する、OSGI(Open Services Gateway Initiative)フレームワークを用いて動作するアプリケーションの管理を行う。アプリケーション検証部331はアプリケーション制御部332が起動するアプリケーションの検証を実施する。
バンドルアプリケーション記憶部335はコントローラソフト300に予め包含されるアプリケーション(バンドルアプリケーション)を記憶する。図3のバンドルアプリケーション記憶部335では、認証アプリケーション333とコピーアプリケーション334が記憶されている。認証アプリケーション333は、MFP100を利用するユーザを認証する処理を行うためのアプリケーションである。コピーアプリケーション334は操作部102にコピーを実行するための設定等を行うための画面を表示し、ユーザの指示を受け付けてコピーを実行するためのアプリケーションである。尚、MFP100には操作部102を用いてコントローラソフト300に含まれないアプリケーションを更に追加することが可能である。アプリケーションの管理の詳細については後述する。
例えば、コピー機能を実行する場合は、アプリケーション制御部332がコピーアプリケーション334を起動して操作制御部301にコピー画面の表示を指示する。操作制御部301がコピー機能の開始要求を検知し、ジョブ制御部303にコピーを指示する。ジョブ制御部303は読み取り制御部306に原稿読み取りを指示し、スキャン画像を取得する。ジョブ制御部303は画像処理部304に指示し、スキャン画像を印刷に適した形式に変換する。ジョブ制御部303は印刷処理部305に印刷を指示し、コピー結果を出力する。実行される機能や、機能に応じたユーザインターフェイスに相違はあっても、他の機能についてもこれと同様の手順でアプリケーションは実行される。
●アプリケーション制御部による処理
図5を用いてアプリケーション制御部332の処理について詳細に説明する。図5はFlash ROM211内のアプリケーションに関連するディレクトリ構成の一例を示す図である。
Flash ROM211は、バンドルディレクトリ510、キャッシュディレクトリ520を含む。バンドルディレクトリ510には、図3のバンドルアプリケーション(例えば認証アプリケーション333とコピーアプリケーション334)が格納されている。MFP100にコントローラソフト300がインストールもしくはアップデートされたタイミングでバンドルアプリケーションがバンドルディレクトリ510に格納される。キャッシュディレクトリ520には、インストールされたアプリケーション(521〜524)、そのアプリケーションが利用するデータ、インストールされたアプリケーションの起動順や状態を管理する管理ファイル525、アプリケーション検証のための正解値リスト526が格納されている。インストールされたアプリケーションとは、バンドルアプリケーションに加え、MFP100の操作部102を用いて後からインストールされた、コントローラソフト300に含まれないアプリケーションも含む。図5において、カード認証アプリケーション523、送信アプリケーション524が後からインストールされたアプリケーションである。すなわち、バンドルアプリケーションは、バンドルディレクトリ510に元のプログラムファイルが格納されており、それが展開されて例えば実行可能な形式でキャッシュディレクトリ520に格納されている。そのため、キャッシュディレクトリ520内のプログラムやデータが損なわれても、バンドルディレクトリ510からキャッシュディレクトリ520へと再インストールすることで復旧できる。
図6(A)に管理ファイル525、図6(B)にアプリケーション検証用正解値リスト526のデータ形式のサンプルを示す。
図6(A)の管理ファイル525は、キャッシュディレクトリ520に含まれる全てのアプリケーションに対して、アプリケーション名6001、バンドルディレクトリパス6002、アプリケーション種別6003、アプリケーションの状態6004、起動順6005の組み合わせをリスト化したものである。図6(A)において、それぞれ認証アプリケーション521がlogin_app、コピーアプリケーション522がcopy_app、カード認証アプリケーション523がcard_app、送信アプリケーション524がsend_appに対応する。アプリケーション種別6003とは、バンドルアプリケーションであるか否かやアプリケーションタイプを示す。アプリケーションタイプとは、ログインアプリケーションやコピーアプリケーションであるかを示す情報である。ログインアプリケーションとは、MFPを利用するユーザを認証する処理を行うアプリケーションであり、例えば操作部102に図12のような認証入力画面を表示し、入力された認証情報に対してユーザ認証を実施する。ユーザ認証を実施することでMFPの不正利用を制限したり、ユーザ毎にカスタマイズしたメニュー画面を表示したりすることが可能となる。図5において、認証アプリケーション521及びカード認証アプリケーション523がログインアプリケーションに分類される。
図6(B)のアプリケーション検証用正解値リスト526は、キャッシュディレクトリ520に含まれる全てのアプリケーションに対して、アプリケーション名6101とハッシュ6102の組み合わせをリスト化したものである。尚、アプリケーション検証用正解値リスト526は不正に改ざんされないよう暗号化や署名を付与してFlash ROM211に格納してもよい。
アプリケーション制御部332は、MFP100にアプリケーションが追加でインストールされると、キャッシュディレクトリ520内にアプリケーションを格納し、アプリケーションが利用するデータを格納するディレクトリを生成する。更に、アプリケーションとデータの関連、アプリケーション種別等のアプリケーションの情報を管理ファイル525に格納する。また、アプリケーション制御部332はコントローラソフト300のインストールに伴い、バンドルディレクトリ510のアプリケーションが追加されると、キャッシュディレクトリ520内にアプリケーションを格納し、アプリケーションが利用するデータを格納するディレクトリを生成する。バンドルディレクトリ510のアプリケーションが更新された場合は、バンドルディレクトリ510のアプリケーションを用いてキャッシュディレクトリ520のアプリケーションを更新する。例えば、コントローラソフト300の更新に伴い、バンドルディレクトリ510の認証アプリケーション333が更新されると、認証アプリケーション333を用いてキャッシュディレクトリ520内の認証アプリケーション521の更新を行う。
アプリケーション制御部332はキャッシュディレクトリ520のアプリケーションを追加もしくは更新する際に、アプリケーション検証部331にアプリケーション検証用の正解値リスト526の更新を依頼する。アプリケーション検証部331はアプリケーション制御部332からの指示に基づきキャッシュディレクトリ520に格納されたアプリケーションのハッシュ値を算出し、アプリケーション用正解値リスト526を更新する。アプリケーション制御部332は、MFP100起動時に管理ファイル525を読み込み、起動順に従ってキャッシュディレクトリ510内のアプリケーションを順に起動する。また、アプリケーション制御部332は、アプリケーションの状態の変更等により管理情報に変更が発生すると、それに合わせて管理ファイル525を更新する。
●ソフトウェアの検証処理
図7を用いて、MFP100が起動時にソフトウェアを検証する処理フローを説明する。この処理は、MFP100が起動するたびに一度行われる。ここで図7(A)のMFP100が実施する処理は、BIOS検証ユニット221が実施するものである。以下の説明で、図7(A)の検証処理をハードウェア検証と呼ぶ。図7(B)のMFP100が実施する処理は、Flash ROM211に格納されたプログラムをCPU201がDRAM202に読み込んだのち、CPU201の演算処理として実施するものである。以下の説明で、図7(B)の検証処理をソフトウェア検証と呼ぶ。夫々の検証処理は同じMFP100による検証処理であっても、検証主体が異なること、ハードウェア検証はCPU201の実行するソフトウェアの検証処理ではないことに留意されたい。
電源が供給され、起動処理が開始されるとBIOS検証ユニット221が起動され、S1001としてBIOSの検証処理を開始する。S1002でMFP100はBIOS360の検証処理を実施し、成功したかどうか確認する。成功した場合はS1003を実行し、失敗した場合はS1005を実行する。検証処理としてはBIOS検証ユニット221がROM220から読み込んだBIOS360の署名に対して、BIOS検証ユニット221に配置された公開鍵を用いて署名検証を行う。本実施形態の起動時検証は、起動順序を考慮した署名検証であり、署名検証では、次に起動する主体の署名検証を行うことでセキュリティ性を担保する。本例では初段のBIOS検証のみが専用ハードウェアで行われ、これ以降の検証はソフトウェアで行われるので、ここでは検証ソフトウェアをひとつのオブジェクトとして見ることで検証処理の主体として扱っている。BIOS検証の次段の検証主体は、本例ではBIOS360に含まれたローダ読み込み検証部361である。
S1003でMFP100はCPU201に指示することでBIOS360を起動する。S1005でMFP100はBIOSの起動を行わず、起動シーケンスをこのステップで中止することでシステムを停止する。ここで、BIOS検証ユニット221はユーザ通知に関するデバイスを持たないため、通知は行わないが、LED(Light Emitting Diode)を接続して、発光させることで通知をおこなっても良い。S1004でMFP100はBIOS360の検証処理を終了する。ハードウェア検証は、ハードウェアで実装された検証方法であり、この検証処理を改ざんするためには集積回路の改ざんが必要であり、極めて堅牢な検証方法である。
BIOS360が起動されると、S1011としてFlashROM211に配置されたソフトウェアの検証処理を開始する。すなわち、検証の成功を契機にして、検証済みの主体により、次の段の検証主体となるソフトウェアの検証が行われる。
S1012でMFP100はローダ読み込み検証部361を利用して、ローダ370の検証処理を実施し、成功したかどうか確認する。成功した場合はS1013を実行し、失敗した場合はS1022を実行する。検証処理としてはFlashROM211から読み込んだ、次の起動対象であるローダ370の署名に対して、ローダ読み込み検証部361が持つ公開鍵を用いて署名検証を行う。
S1013でMFP100はローダを起動する。S1014でMFPはカーネル、Initrd読み込み検証部371を利用して、カーネル390の検証処理を実施し、成功したかどうか確認する。成功した場合はS1015を実行し、失敗した場合はS1022を実行する。検証処理としてはFlashROM211から読み込んだ、次の起動対象であるカーネル390の署名に対して、Initrd読み込み検証部371が持つカーネル390の署名に対する公開鍵を用いて署名検証を行う。S1015でMFP100はカーネルを起動する。
S1016でMFPはカーネル、Initrd読み込み検証部371を利用して、Initrd380の検証処理を実施し、成功したかどうか確認する。成功した場合はS1017を実行し、失敗した場合はS1022を実行する。検証処理としてはFlashROM211から読み込んだ、次の起動対象であるInitrd380の署名に対して、Initrd読み込み検証部371が持つInitrd380の署名に対する公開鍵を用いて署名検証を行う。S1017でMFP100はInitrd380を起動する。
S1018でMFP100は起動時検証部381を利用して、コントローラソフト300の検証を実施し、成功したかどうか確認する。成功した場合はS1019を実行し、失敗した場合はS1022を実行する。検証処理としてはFlash ROM211から読み込んだ次の起動対象である起動時検証用正解値リスト321に記載された、コントローラソフト300に含まれる全プログラムファイルのハッシュ値を取得する。そして、Flash ROM211を読み込んで再計算した全プログラムファイルのハッシュ値と、ファイル毎に比較する処理が行われる。S1019でMFP100はコントローラソフト300の起動を開始する。コントローラソフト300は複数のプログラムファイルに分割されているため、システムの起動のために必要なプログラムファイルが順次起動される。S1020でMFPはアプリケーション制御部332を利用して、アプリケーションの起動処理を実施する。アプリケーションの起動処理については後述する。S1022でMFP100は改ざんを検知したことを、操作部102にエラー画面を表示することでユーザに通知する。S1023でMFP100は起動シーケンスをこのステップで中止することでシステムを停止する。S1021でMFP100はFlashROM211に配置されたソフトウェアの検証処理を終了する。
一般的にソフトウェア検証はソフトウェアであるプログラムによって実装された検証方法であるため、記憶部のソフトウェアを書き換えることで改ざんすることができる。上記フローの様に、検証を行うソフトウェアをあらかじめ別の構成部によって検証しておくことで、改ざんされていないことを保証できる。そして、プログラム内の各プログラムは順番にソフトウェア検証を行うが、1つ前のソフトウェア検証を起点にシステム全体が改ざんされていないことを保証できる。
●アプリケーション起動処理
図8A、図8Bを用いて、MFP100がアプリケーション制御部332によりアプリケーションを起動する処理フローを説明する。図8のMFP100が実施する処理は、Flash ROM211に格納されたプログラムをCPU201がDRAM202に読み込んだのち、CPU201の演算処理として実施するものである。
MFP100はアプリケーション制御部332を利用して、S2001にて、Flash ROM211のキャッシュディレクトリ520から管理ファイル525を読み込み起動するアプリケーションを決定する。アプリケーション制御部332はアプリケーションを起動する前に当該アプリケーションの検証をアプリケーション検証部331に要求する(S2002)。ここで、アプリケーション制御部332は、アプリケーション検証要求に、起動するアプリケーション名及びアプリケーション種別を含める。アプリケーション名、アプリケーション種別は、それぞれ図6(A)の管理ファイル525に含まれるアプリケーション名6001、アプリケーション種別6003の情報を示す。アプリケーション検証部331はアプリケーションの検証要求を受信するとS2100で検証処理を実行する。その詳細は図8Bを参照して後で説明する。
アプリケーション検証が終了すると、アプリケーション検証部331はその結果を通知し(S2101)、S2003にてアプリケーション制御部332はアプリケーション検証部331から結果情報を受信する。アプリケーション制御部332は受信した結果情報を確認する(S2004)。結果情報が「アプリケーション起動許可」であると判断した場合、アプリケーション制御部332は当該アプリケーションの起動処理を実施する(S2005)。結果情報が「アプリケーション起動禁止」であると判断した場合、アプリケーション制御部332は当該アプリケーションの起動処理は実施せず、停止アプリケーションとして管理ファイルの状態を更新する(S2006)。結果情報が「アプリケーション復旧要求」であると判断した場合、アプリケーション制御部332はアプリケーションの復旧処理を実施する(S2007)。
アプリケーションの復旧処理として、アプリケーション制御部332はまずキャッシュディレクトリ520内の当該アプリケーションを削除し、バンドルディレクトリ510内に含まれる当該アプリケーションをキャッシュディレクトリ520に展開して、アプリケーションを復旧する。すなわち、バンドルディレクトリ510に含まれるプログラムファイルを用いて、アプリケーションをキャッシュディレクトリ520に再インストールするということもできる。例えば、図5のコピーアプリケーション522の検証結果が「アプリケーション復旧要求」であった場合、アプリケーション制御部332はキャッシュディレクトリ520内のコピーアプリケーション522を削除し、管理ファイル525を参照してバンドルディレクトリ510内のコピーアプリケーション334を取得して、キャッシュディレクトリ520のコピーアプリケーションの領域に展開することでコピーアプリケーション522を復旧する。そして、アプリケーション制御部332はアプリケーション検証部331にアプリケーション検証用の正解値リスト526の更新を依頼する(S2008)。アプリケーション検証部331はそれを受信すると(S2102)、キャッシュディレクトリ520の更新されたアプリケーションを用いてハッシュ値を算出し、アプリケーション用正解値リスト526を更新する(S2103)。そして正解値リスト526の更新の完了をアプリケーション制御部332に通知する(S2104)。アプリケーション制御部332は、正解値リストの更新完了の通知を受けると(S2009)、キャッシュディレクトリ520の当該アプリケーションを起動する(S2010)。アプリケーション制御部332は、管理ファイル525を参照して次に起動するアプリケーションの起動処理を、S2002から繰り返す。なお図8Aにおいて台形のブロックは、それに挟まされたブロックを、条件に従って繰り返すことを示す。ここでその条件はキャッシュディレクトリ520内のアプリケーションすべてを対象とすることである。
ここで、バンドルディレクトリ510内のアプリケーションは起動時検証部381によりコントローラソフトウェア300の一部としてS1018において検証されており、改ざんされていないことが保証されている。そのため、S2007にてバンドルディレクトリ510のアプリケーションを用いてアプリケーションを復旧する際、バンドルディレクトリ510のアプリケーションの検証は実施しない。また、復旧されたキャッシュディレクトリ520内のアプリケーションについても検証を実施せず、そのままアプリケーションの起動を行う。
次に図8Bのアプリケーション検証処理について説明する。アプリケーション検証部331はアプリケーションの検証要求を受信すると(S2200)、検証すべきアプリケーション名とアプリケーション種別の情報を取得する(S2201)。そして、S2202にてアプリケーション検証部331はFlash ROM211のキャッシュディレクトリ520からアプリケーション検証用正解値リスト526を読み込む。次に、S2203にてアプリケーション検証部331はアプリケーションの検証処理を実施し、検証が成功したかどうか確認する。アプリケーションの検証処理では、Flash ROM211のキャッシュディレクトリ520に格納されたアプリケーションのデータを読み込んでハッシュ値を算出し、正解値リスト526に記載された当該アプリケーションのハッシュ値と比較する処理が行われる。比較した値が一致してアプリケーションの検証に成功した場合は、結果情報として「アプリケーション起動許可」を設定する(S2205)。アプリケーションの検証に成功しなかった場合は、S2206において、アプリケーション検証部331はS2201で取得したアプリケーションの種別を確認し、バンドルアプリケーションか否かを判断する。バンドルアプリケーションではないと判断した場合は、結果情報として「アプリケーション起動禁止」を設定する(S2208)。バンドルアプリケーションであると判断した場合、結果情報として「アプリケーション復旧要求」を設定する(S2207)。S2101にてアプリケーション検証部331は結果情報をアプリケーション制御部332に通知する。
このように、本実施形態の情報処理装置は、BIOSに含まれたローダを初段とし、アプリケーションプログラムをロードするためのInitrdを最終段として、ローディング対象のプログラムをロードするとともに前段のローダにより次段のローダをロードする複数段のローダを備えている。これによって、ローダを含むBIOSを改ざんできないハードウェア等により検証し、検証されたローダによってプログラムを読み、プログラムと次段のローダを検証する。この繰り返しによって、ロードされるプログラムの正当性が検証される。
以上、実施形態1により、アプリケーションの正当性を確認するシステムにおいて、正当性の検証に失敗した際、アプリケーション種別に応じて復旧できるか否かを判断し、復旧可能(すなわち再インストール可能ということもできる)と判断した場合はアプリケーションを自動で復旧して起動することで、システムの可用性を担保しつつ、ユーザは機器をセキュアに利用することができる。
[実施形態2]
以下、本発明の第2の実施の形態を図面に基づいて解説する。本実施形態では、アプリケーション検証に失敗した場合にアプリケーションの種別に応じて、ユーザへの通知方法を制御する方法について説明する。
図9は操作部102に表示されるメニュー画面901であり、複合機が持つさまざまな機能の実行をユーザが指示するためのものである。ボタン902はコピー機能をユーザが指示するために利用される。ボタン903はスキャンして保存する機能をユーザが指示するために利用される。ボタン904はスキャンして送信する機能をユーザが指示するために利用される。ボタン905は機器の設定変更をユーザが指示するために利用される。また、画面下部にメッセージ表示領域906があり、機器の動作中に発生したさまざまなユーザ向けのメッセージを表示することができる。図9では、検証に失敗したアプリケーションがある旨をユーザに通知している。このメッセージは、検証に失敗したアプリケーションプログラムの使用が許されないことも同時に示している。
図10は操作部102に表示されるエラー画面1001である。図8では検証に失敗したアプリケーションがあるため、システムを停止したことを通知している。また、この画面から通常の機能実行画面に遷移することはできず、ユーザはMFP100を利用することはない。
図11に本実施形態におけるアプリケーション検証処理を示す。これは実施形態1の図8Bに代えて実行される手順を示す。図8Bとの差異は、バンドルアプリケーションであると判定された場合に実行されるS2301〜S2303であり、それ以外は実施形態1と同じ構成および処理である。以下に図11を説明するが図8Bと共通するステップについては説明を省略した部分がある。
S2204でアプリケーションの検証に失敗した場合、アプリケーション検証部331はアプリケーション種別を確認する。S2206にてS2201で取得したアプリケーション種別を確認しバンドルアプリケーションか否かを判断する。バンドルアプリケーションではないと判断した場合、アプリケーション検証部331はS2301において更に、アプリケーション種別がログインアプリケーションであるか否かを判断する。S2301において、アプリケーション検証部331はアプリケーション種別がログインアプリケーションであると判断した場合、図10に示すようなエラー画面1001を表示し、MFP100のシステム全体を停止する(S2303)。システム全体の停止とは、MFP100は起動しているがユーザはMFP100の機能を利用できない状態を示す。MFP100は操作部102に図10のエラー画面を表示し、通常の機能実行画面への遷移を禁止するため、例えばコピー機能などのMFP100の機能は利用できないように制限される。また、MFP100は、図10のエラー画面表示に伴い、ネットワークI/F204を介したMFP100の機能についても、利用できないように制限する。例えば、図10のエラー画面を表示中にネットワークI/F204を介してPDL印刷指示を受信しても、MFP100は印刷の実行は行わずエラーとして印刷を終了する。S2302にて、アプリケーション検証部331はアプリケーション種別がログインアプリケーションでないと判断した場合、図9に示すようにメニュー画面のメッセージ領域にエラーメッセージ906を表示する。それにより、ユーザは不正なアプリケーション以外のMFP100の利用を継続できる。
ログインアプリケーションの起動を停止すると、ユーザは認証されずにMFPを利用できるようになるため、MFPのセキュリティレベルが低下する。そのため、S2303でエラー画面を表示し、MFP100が利用できないようにすることでログインアプリケーションが改ざんされ、不正にMFP100を利用されることを防止することができる。
以上、実施形態2により、アプリケーションの正当性を確認するシステムにおいて、正当性の検証に失敗した場合に、アプリケーションの種別に応じてシステムを停止することで、検証失敗時に、機器を不正に利用されることを防止し、かつシステムの可用性を担保しつつ、ユーザは機器をセキュアに利用することができる。
[その他の実施例]
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
また上記実施形態では、BIOS検証ユニット221をハードウェアで実現しているが、たとえば書き換え不可能なROMに固定的に記憶したプログラムなどにより、内容を変更できない(或いは改ざんできない)よう構成したBIOS検証ユニット221を実現してもよい。
100 MFP、220 CPU、331 アプリケーション検証部、332 アプリケーション制御部、510 バンドルディレクトリ、520 キャッシュディレクトリ

Claims (10)

  1. アプリケーションプログラムの検証を行う検証手段と、
    前記検証手段による検証が失敗した場合には、前記アプリケーションプログラムの種別に基づき、前記アプリケーションプログラムの復旧を行うか否かを判定し、
    復旧を行うと判定した場合には前記アプリケーションプログラムを復旧し、
    復旧を行わないと判定した場合には前記アプリケーションプログラムの実行を許さず、
    前記検証手段による検証が成功したアプリケーションプログラム又は前記復旧したアプリケーションプログラムの実行を許す制御手段と
    を有することを特徴とする情報処理装置。
  2. 請求項1に記載の情報処理装置であって、
    前記検証手段は、前記アプリケーションプログラムのハッシュ値を計算し、
    前記制御手段は、計算した前記ハッシュ値と予め記憶したハッシュ値とが一致した場合に検証が成功したと判定することを特徴とする情報処理装置。
  3. 請求項2に記載の情報処理装置であって、
    前記制御手段は、前記アプリケーションプログラムが実行可能な形式で再インストール可能であれば、前記アプリケーションプログラムの復旧を行うと判定し、前記アプリケーションプログラムを再インストールし、前記アプリケーションプログラムのハッシュ値を計算し、計算した前記ハッシュ値により、前記予め記憶したハッシュ値を更新する
    ことを特徴とする情報処理装置。
  4. 請求項1乃至3のいずれか一項に記載の情報処理装置であって、
    基本入出力システムに含まれたローダを初段とし、前記アプリケーションプログラムをロードするためのローダを最終段として、前段のローダにより次段のローダを検証し、ローディング対象のプログラムをロードする複数段のローダ手段と、
    前記基本入出力システムを検証する、改ざんできない第2の検証手段とを更に有し、
    前記第2の検証手段により前記基本入出力システムを検証し、前記複数段のローダのそれぞれによって読み込まれたプログラム及び次段のローダを検証する
    ことを特徴とする情報処理装置。
  5. 請求項4に記載の情報処理装置であって、
    前記第2の検証手段はハードウェアにより前記基本入出力システムを検証する
    ことを特徴とする情報処理装置。
  6. 請求項1乃至5のいずれか一項に記載の情報処理装置であって、
    ユーザインターフェイス手段を更に有し、
    前記制御手段により前記アプリケーションプログラムの実行を許さない場合には、前記ユーザインターフェイス手段により前記アプリケーションプログラムの実行が許されていないことを表示する
    ことを特徴とする情報処理装置。
  7. 請求項6に記載の情報処理装置であって、
    実行を禁止される前記アプリケーションプログラムがログインアプリケーションの場合には、前記情報処理装置による機能の提供を停止する
    ことを特徴とする情報処理装置。
  8. 請求項1乃至7のいずれか一項に記載の情報処理装置であって、
    プリンタ手段と、
    スキャナ手段と
    を更に有することを特徴とする情報処理装置。
  9. アプリケーションプログラムの検証を行い、
    前記検証手段による検証が失敗した場合には、前記アプリケーションプログラムの種別に基づき、前記アプリケーションプログラムの復旧を行うか否かを判定し、
    復旧を行うと判定した場合には前記アプリケーションプログラムを復旧し、
    復旧を行わないと判定した場合には前記アプリケーションプログラムの実行を許さず、
    前記検証手段による検証が成功したアプリケーションプログラム又は前記復旧したアプリケーションプログラムの実行を許す
    ことを特徴とする情報処理装置の制御方法。
  10. アプリケーションプログラムの検証を行う検証手段と、
    前記検証手段による検証が失敗した場合には、前記アプリケーションプログラムの種別に基づき、前記アプリケーションプログラムの復旧を行うか否かを判定し、
    復旧を行うと判定した場合には前記アプリケーションプログラムを復旧し、
    復旧を行わないと判定した場合には前記アプリケーションプログラムの実行を許さず、
    前記検証手段による検証が成功したアプリケーションプログラム又は前記復旧したアプリケーションプログラムの実行を許す制御手段と
    してコンピュータを機能させるためのプログラム。
JP2018159476A 2018-08-28 2018-08-28 情報処理装置、その制御方法、およびそのプログラム Active JP7084826B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2018159476A JP7084826B2 (ja) 2018-08-28 2018-08-28 情報処理装置、その制御方法、およびそのプログラム
US16/537,909 US11526597B2 (en) 2018-08-28 2019-08-12 Information processing apparatus, method of controlling the same, and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018159476A JP7084826B2 (ja) 2018-08-28 2018-08-28 情報処理装置、その制御方法、およびそのプログラム

Publications (3)

Publication Number Publication Date
JP2020035078A true JP2020035078A (ja) 2020-03-05
JP2020035078A5 JP2020035078A5 (ja) 2021-10-07
JP7084826B2 JP7084826B2 (ja) 2022-06-15

Family

ID=69640011

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018159476A Active JP7084826B2 (ja) 2018-08-28 2018-08-28 情報処理装置、その制御方法、およびそのプログラム

Country Status (2)

Country Link
US (1) US11526597B2 (ja)
JP (1) JP7084826B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7289641B2 (ja) * 2018-11-30 2023-06-12 キヤノン株式会社 情報処理装置、およびその制御方法
JP2022135443A (ja) * 2021-03-05 2022-09-15 キヤノン株式会社 情報処理装置、情報処理方法及びプログラム

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008018666A (ja) * 2006-07-14 2008-01-31 Ricoh Printing Systems Ltd プリンタ
US20120290870A1 (en) * 2010-11-05 2012-11-15 Interdigital Patent Holdings, Inc. Device validation, distress indication, and remediation
JP2017153044A (ja) * 2016-02-26 2017-08-31 キヤノン株式会社 情報処理装置、情報処理システム、情報処理方法、及びプログラム

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6412082B1 (en) * 1997-12-17 2002-06-25 Sony Corporation Method and apparatus for selecting computer programs based on an error detection mechanism
JP4209789B2 (ja) * 2003-03-19 2009-01-14 株式会社リコー ファイル作成方法、サーバ、記録媒体及びプログラム追加システム
JP2008171041A (ja) 2007-01-05 2008-07-24 Ricoh Co Ltd 画像形成装置、画像形成装置の起動方法、制御装置及び拡張ユニットの起動方法
US8181032B2 (en) * 2008-05-13 2012-05-15 Intel Corporation Method and apparatus with chipset-based protection for local and remote authentication of booting from peripheral devices
US8804172B2 (en) * 2010-08-18 2014-08-12 Konica Minolta Business Technologies, Inc. Non-transitory computer readable recording medium stored with printer driver updating program and printer driver updating method
EP2656205A4 (en) * 2010-12-20 2014-12-03 Hewlett Packard Development Co DEVICE, SYSTEM AND METHOD FOR OPERATING FLOW OPTIMIZATION
JP2014089652A (ja) * 2012-10-31 2014-05-15 Toshiba Corp 情報処理装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008018666A (ja) * 2006-07-14 2008-01-31 Ricoh Printing Systems Ltd プリンタ
US20120290870A1 (en) * 2010-11-05 2012-11-15 Interdigital Patent Holdings, Inc. Device validation, distress indication, and remediation
JP2016006659A (ja) * 2010-11-05 2016-01-14 インターデイジタル パテント ホールディングス インコーポレイテッド デバイスの妥当性確認、障害指示、および修復
JP2017153044A (ja) * 2016-02-26 2017-08-31 キヤノン株式会社 情報処理装置、情報処理システム、情報処理方法、及びプログラム

Also Published As

Publication number Publication date
US11526597B2 (en) 2022-12-13
JP7084826B2 (ja) 2022-06-15
US20200074075A1 (en) 2020-03-05

Similar Documents

Publication Publication Date Title
JP4848190B2 (ja) アプリケーション実行装置、アプリケーション実行方法及びアプリケーション実行プログラム
JP5599557B2 (ja) 情報処理装置、ライセンス判定方法、プログラム及び記録媒体
JP2012003679A (ja) 画像形成装置用追加アプリケーションのセキュリティ確保方法、画像形成システム及び画像形成装置
JP2014021953A (ja) 情報処理装置、画像処理装置、起動制御方法及び起動制御プログラム
JP2015052996A (ja) 画像形成装置、及び画像形成装置の制御方法
JP2023129643A (ja) 情報処理装置、情報処理方法およびプログラム
JP2019212114A (ja) 情報処理装置、その制御方法およびプログラム
CN112114842A (zh) 信息处理装置及其控制方法和储存介质
JP7084826B2 (ja) 情報処理装置、その制御方法、およびそのプログラム
JP5272602B2 (ja) 認証機能連携機器、認証機能連携システム及び認証機能連携プログラム
US20190325138A1 (en) Information processing apparatus, control method, and storage medium
JP2022135443A (ja) 情報処理装置、情報処理方法及びプログラム
US20100259773A1 (en) Image forming system and image forming method
JP2005148934A (ja) 情報処理装置、プログラム起動方法、プログラム起動プログラム及び記録媒体
JP2008171041A (ja) 画像形成装置、画像形成装置の起動方法、制御装置及び拡張ユニットの起動方法
US20220113990A1 (en) Information processing apparatus, information processing method, and storage medium
JP5679151B2 (ja) 画像形成システム、画像形成装置およびプログラム
JP2021140601A (ja) 情報処理装置、その制御方法、及びプログラム
JP2021005337A (ja) 情報処理装置、情報処理方法およびプログラム
JP2007174314A (ja) 電子証明書管理方法および画像処理装置
JP2020052597A (ja) 情報処理装置、情報処理装置の制御方法、及び、プログラム
US20220253521A1 (en) Image forming apparatus capable of executing application programs, control method therefor, and storage medium
JP5151531B2 (ja) 画像形成装置及びデータ管理方法
JP2018097888A (ja) 画像形成装置、及び画像形成装置の制御方法
US20220309145A1 (en) Information processing apparatus, verification method of program, computer readable medium and image processing apparatus

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20210103

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210113

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210824

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210824

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220420

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20220506

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220603

R151 Written notification of patent or utility model registration

Ref document number: 7084826

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151