JP7195796B2 - 情報処理装置、情報処理装置の制御方法、及び、プログラム - Google Patents

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

Info

Publication number
JP7195796B2
JP7195796B2 JP2018137629A JP2018137629A JP7195796B2 JP 7195796 B2 JP7195796 B2 JP 7195796B2 JP 2018137629 A JP2018137629 A JP 2018137629A JP 2018137629 A JP2018137629 A JP 2018137629A JP 7195796 B2 JP7195796 B2 JP 7195796B2
Authority
JP
Japan
Prior art keywords
file
comparison
archived
package
information
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.)
Active
Application number
JP2018137629A
Other languages
English (en)
Other versions
JP2020016926A (ja
Inventor
岳史 木暮
篤 池田
宏明 小池
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 JP2018137629A priority Critical patent/JP7195796B2/ja
Priority to GB1909587.6A priority patent/GB2577955B/en
Priority to US16/512,071 priority patent/US11474855B2/en
Publication of JP2020016926A publication Critical patent/JP2020016926A/ja
Application granted granted Critical
Publication of JP7195796B2 publication Critical patent/JP7195796B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • 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
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/11File system administration, e.g. details of archiving or snapshots
    • G06F16/113Details of archiving
    • 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/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/606Protecting data by securing the transmission between two devices or processes
    • G06F21/608Secure printing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45579I/O management, e.g. providing access to device drivers or storage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45508Runtime interpretation or emulation, e g. emulator loops, bytecode interpretation
    • G06F9/45512Command shells

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Stored Programmes (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Description

本発明は、情報処理装置、情報処理装置の制御方法、及び、プログラムに関するものである。
特許文献1では、プログラムの改ざんを検知する方法として、プログラムを構成するファイルのダイジェストを検査する方法が記載されている。また、改ざんチェックをデバイス起動時だけでなく、プログラム実行時に随時検査する(ランタイムの改ざんチェック)ことで、セキュリティをより向上させる方法が記載されている。
特開平10-333902号公報
しかしながら、特許文献1では、プログラムの改ざんを検知する際に、プログラムを構成する全てのファイルのダイジェストを検査するため、プログラムの実行には必要のないデータまでダイジェストを検査し、改ざんの検知処理に時間がかかってしまう。改ざん検知処理に時間がかかると、システム全体のパフォーマンスに影響する。
上記の課題を解決するために、本発明の一態様に係る情報処理装置は以下のような構成を備える。すなわち、情報処理装置であって、前記情報処理装置の起動時に、パッケージファイルのダイジェスト情報を算出する第1の算出手段と、前記パッケージファイルにアーカイブされた複数のファイルのうち、アプリケーションを実行するためにロードするファイルのダイジェスト情報を算出する第2の算出手段と、前記第2の算出手段によって算出されたファイル個別のダイジェスト情報と、予め記憶部に記憶されたファイル個別のダイジェスト情報とを比較する比較手段と、前記比較手段による比較した結果に基づきメッセージを通知する通知手段とを有し、前記比較手段は、前記起動時に算出した前記パッケージファイルのダイジェスト情報と、予め記憶部に記憶されたパッケージファイルのダイジェスト情報とを比較し、前記通知手段は、前記比較手段による比較した結果に基づきメッセージを通知し、前記第2の算出手段は、前記アプリケーションの実行時に、前記パッケージファイルにアーカイブされた複数のファイルのうち、前記ロードするファイル以外のファイルについて、ダイジェスト情報を算出しないことを特徴とします。
本発明によれば、アーカイブ内の全てのファイルではなく、必要なファイルについてダイジェスト情報を算出するため、ダイジェスト情報の算出時間を削減することができる。
本発明の実施形態における情報処理装置301のハードウェア構成図である。 本発明の実施形態における情報処理装置301のソフトウェア構成図である。 本発明の実施形態におけるシステム構成図である。 本発明の実施形態におけるシーケンス図である。 本発明の実施形態における拡張アプリケーションをインストールするためのデータを含むアーカイブを示す図である。 本発明の実施形態におけるフローチャートである。 本発明の実施形態におけるインストール後の拡張アプリケーションパッケージとダイジェストファイルを示す図である。 本発明の実施形態におけるフローチャートである。 本発明の実施形態における操作部の表示例である。 本発明の実施形態におけるソフトウェア構成図である。 本発明の実施形態におけるシーケンス図である。 本発明の実施形態における拡張アプリケーションの依存関係を示す図である。 本発明の実施形態におけるフローチャートである。 本発明の実施形態におけるバッファメモリの構成図である。 本発明の実施形態におけるフローチャートである。 本発明の実施形態におけるパッケージ内のファイル状態の構成図である。 本発明の実施形態における拡張アプリケーションの改ざん検知時の操作部の表示例である。 本発明の実施形態における拡張アプリケーションの改ざん状態情報の構成図である。
以下、添付図面を参照して本発明の実施形態を詳しく説明する。尚、以下の実施形態は特許請求の範囲に係る本発明を限定するものでなく、また本実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。
図1は、情報処理装置301(例えば画像形成装置)の主要部の構成の例を示すブロック図である。情報処理装置301はコントローラユニット100を含み、コントローラユニット100は、画像入力デバイスであるスキャナ170や画像出力デバイスであるプリンタ195と接続されるとともに、操作部112と接続される。コントローラユニット100は、スキャナ170で読み取られた画像データをプリンタ195により印刷出力するコピー機能を実現するための制御を行う。
コントローラユニット100は、CPU101を有し、CPU101は、ROM103に格納されているブートプログラムによりオペレーションシステム(OS)を立ち上げる。CPU101は、このOS上で、ストレージ104に格納されているプログラムを実行し、これによって各種処理を実行する。このCPU101の作業領域としてはRAM102が用いられる。RAM102は、作業領域を提供するとともに、画像データを一時記憶するための画像メモリ領域を提供する。ストレージ104は、プログラムや画像データを格納する。
CPU101は、システムバス107を介して、ROM103およびRAM102、操作部I/F(操作部インターフェース)106、ネットワークI/F110、USBホストI/F113、画像バスI/F105と接続される。操作部I/F106は、タッチパネルを有する操作部112とのインターフェースであり、操作部112に表示すべき画像データを操作部112に対して出力する。また、操作部I/F106は、操作部112においてユーザーにより入力された情報をCPU101に送出する。ネットワークI/F110は、画像形成装置をLANに接続するためのインターフェースである。
USBホストI/F113は、USBストレージ114と通信するインターフェース部である。USBホストI/F113は、ストレージ104に格納されているデータを、USBストレージ114に記憶させるための出力部である。また、USBホストI/F113は、USBストレージ114に格納されているデータを入力し、CPU101にそれを伝える。USBストレージ114は、データを格納する外部記憶装置であり、USBホストI/F113に対して着脱可能である。USBホストI/F113には、USBストレージ114を含む複数のUSBデバイスが接続可能である。
画像バスI/F105は、システムバス107と、画像データを高速で転送する画像バス108とを接続し、データ形式を変換するためのバスブリッジである。画像バス108は、PCIバスまたはIEEE1394等によって構成される。画像バス108上には、デバイスI/F120、スキャナ画像処理部180、プリンタ画像処理部190が設けられる。デバイスI/F120には、スキャナ270およびプリンタ195が接続され、デバイスI/F120は、画像データの同期系/非同期系の変換を行う。スキャナ画像処理部180は、入力画像データに対し補正、加工、編集を行う。プリンタ画像処理部190は、プリント出力画像データに対してプリンタ195に応じた補正、解像度変換などを行う。
図2は、画像形成装置の拡張アプリケーションの実行環境の例を示すブロック図である。ストレージ104に記憶されているプログラムを、CPU101がRAM102にロードし、プログラムを実行することで図2の各モジュールは実現される。オペレーティングシステムであるOS201上には、プリンタやFAX、スキャナと言った画像処理ユニットを制御するためのネイティブプログラム210が動作している。また、OS201上には、拡張アプリケーションの実行環境である仮想マシン(Virtual Machine:VM)230が動作している。VM230は、拡張アプリケーションを制御するプログラムを理解し実行するモジュールである。拡張アプリケーションは、必ずVM230上で動作する。VM230で動作するプログラムは、CPU101で動作する命令とは異なり、VM230専用の命令で動作する。この命令をバイトコードと呼ぶ。一方でCPU専用命令をネイティブコードと呼ぶ。VMがこのバイトコードを逐次解釈し処理することで、CPU101上ではネイティブコードと、VMのバイトコードが動作する。VMには、バイトコードをそのまま逐次解釈処理するタイプと、バイトコードをネイティブコードに変換して実行するタイプがある。この実施例のVM230は前者のタイプであるが、後者のタイプであってもよい。一般的にCPUの種別が異なると、CPUで動作する命令に互換性が無い様に、VMが異なるとVMで動作する命令も互換性が無い。またこの実施例のVM230は、CPU101上で動作するソフトウェアモジュールであるが、ハードウェアモジュールであってもよい。
ネイティブプログラム210内には、プリンタやFAX、スキャナと言った画像処理ユニットを制御するためのネイティブスレッド214と、仮想マシン230を動かすためのVMスレッド215がある。VMスレッドはVM230の数に対応する数存在する。ここでは、211、212,213の3つのスレッドが生成されている。
VMシステムサービス220は、拡張アプリケーションから共通利用されるユーティリティライブラリである。拡張アプリケーション205からVMシステムサービス220の機能を呼び出すことにより、拡張アプリケーションを開発する手間を省く、または画像形成装置の各モジュールへアクセスすることができる。VMシステムサービス220には、VMとして最低限動作させる標準VMシステムサービス221と、画像形成装置の各モジュールにアクセスや、OSの機能を提供する拡張VMシステムサービス222がある。標準VMサービス221は、拡張アプリケーションをロードする機能も含む。VMシステムサービス220は、VM230が拡張アプリケーション内のバイトコードで指示されているAPIを実行することで、APIに関連づけられているVMシステムサービス220が呼び出される。
VM230は、拡張アプリケーション240を実行する。VM230は、拡張アプリケーションのスレッド毎に生成される。この図では拡張アプリケーションA241で2つのスレッドを動かすためのVM A-1 231 と、VM A-2 232、拡張アプリケーションB242で1つのスレッドを動かすためのVM B-1を生成している。
また、画像形成装置の操作部112に表示されるメインメニュー画面には、拡張アプリケーションごとのアイコンが表示される。このアイコンをユーザーが選択したことを、操作部112を通じて操作部I/F106が検知すると、操作部I/F106はその旨をCPU101に送信する。その旨を受け取ったCPU101はユーザーによって選択された拡張アプリケーションを起動する。
図3は、本実施例の画像形成装置を含む印刷システムの拡張アプリケーションインストール時の機器構成の例を示す図である。この印刷システムは画像形成装置301、イーサネット(登録商標)303、ホストPC302によって構成される。
画像形成装置301は、イーサネット303経由で、拡張アプリケーションのインストール手段をホストPC302に提供する。ホストPC302は、拡張アプリケーションのデータを有しており、画像形成装置301が提供する拡張アプリケーションのインストール手段を用いて画像形成装置301に拡張アプリケーションをインストールする。
図4は、ホストPC302が有する拡張アプリケーションのデータを、画像形成装置301にインストールする際のフローを示す図である。まずS401で、ホストPC302は、画像形成装置301にインストールを行うため、認証要求を行う。この時、認証に必要な情報(ユーザID,パスワード)を画像形成装置301に通知する。S402で認証要求を受けた画像形成装置301は、認証情報を確認し問題なければ認証許可を返す。この時、認証許可を示す文字列(Token)を一緒に返す。S403で、認証許可を受けたホストPCは、インストール開始要求を画像形成装置301に通知する。この時、ホストPC302が有する拡張アプリケーションのデータとS402で取得したTokenを通知する。S404で、インストール開始要求を受けた画像形成装置301は、Tokenが正しいことを確認し、問題なければ拡張アプリケーションのインストールを行う。S405でホストPC302は、インストール状況取得要求を画像形成装置301に通知する。この時、S402で取得したTokenを通知する。S406で、インストール状況取得要求を受けた画像形成装置301は、Tokenが正しいことを確認し、問題なければS404のインストール中であるため、インストール中であることを示す情報を返す。S407で、ホストPC302は、再度インストール状況取得要求を画像形成装置に通知する。S408で、インストール状況取得要求を受けた画像形成装置301は、Tokenが正しいことを確認し、問題なければS404のインストールが完了しているため、インストール完了であることを示す情報を返す。
以上の処理により、ホストPC302が有する拡張アプリケーションのデータを、画像形成装置301にインストールする。
図5は、拡張アプリケーションをインストールするためのデータを含んだアーカイブを示す図である。501はアーカイブである。このアーカイブは、拡張アプリケーションを構成するすべてのデータを1つに纏めたデータである。拡張アプリケーションを構成するファイルは、大きく2つに分けることができる。1つは拡張アプリケーションの動作をプログラム言語で記述したスクリプト(502~504)。もう一つは、アプリケーションで利用する画像データや表示メッセージなどを格納するリソースファイルである(505~506)。
このアーカイブを、後述するインストール処理によってインストールすることでスクリプトのバイトコード化を行い、拡張アプリケーション実行時のバイトコード化処理時間を短縮する。
図6は、図5で示したアーカイブ501をインストールし、拡張アプリケーションを実行可能なパッケージを生成する処理を示す図である。この処理では、アーカイブ501から、拡張アプリケーションを実行可能なパッケージ701と、ダイジェストファイル731を生成する。拡張アプリケーションを実行可能なパッケージ701、ダイジェストファイル731については後述する。この処理は、RAM102に読み込まれた命令に従って、CPU101上で実行される。
まずS601において、アーカイブ内からパッケージに書き込み処理を行っていないファイルがないか確認する。アーカイブ内に、パッケージへの書き込み処理が終わっていないファイルがあればS602に進み、すべてのファイルが書き込み処理済みであればS609に進む。
S602において、アーカイブ内から書き込み処理が終わっていないファイルを読み込む。S603において、読み込んだファイルの種別を判定し、スクリプトファイル(S1402~S1404)であればS604に進み、リソースファイル(S1405~S1406)であれば、S606に進む。S604において、読み込んだスクリプトファイルをパッケージに書き込む。S605において、読み込んだスクリプトファイルをVMのバージョンにあったバイトコードに変換するバイトコード化処理を実行する。S606において、データをパッケージに書き込む。S607において、パッケージに書き込んだデータのダイジェストを計算し、S608に進む。S608において、計算したダイジェストをダイジェストファイル731に書き込み、S601に戻る。
S609において、パッケージに書き込んだ全てのデータのダイジェストを計算する。次にS610において、計算したダイジェストをダイジェストファイル731に書き込み処理を終了する。
この処理によって、インストール時に拡張アプリケーションの実行に必要なすべてのスクリプトファイルがバイトコード化され、1つのパッケージファイル内に保持される。
図7は、アーカイブ501をもとに図6で示すインストール処理によって生成した拡張アプリケーションパッケージ701とダイジェストファイル731を示す図である。図7の拡張アプリケーションパッケージ701とダイジェストファイル731は、記憶部であるROM103またはストレージ104に記憶される。
拡張アプリケーション701は、拡張アプリケーションを実行するために必要なすべてのデータを保持する。保持するデータには、バイトコード化前のスクリプト(702、704、706、708,710,712,714,716,718)を含む。さらに、保持するデータには、バイトコード化後のスクリプト(703、705、707,709,711,713,715,717,719)と、リソース(720、721)を含む。拡張アプリケーションを実行するために必要なすべてのデータを1つのパッケージにすることで、ファイル検索時に発生するディスクアクセスを低減し、ファイルのバッファリングの効率を向上させることができる。ダイジェストファイル731は、拡張アプリケーションパッケージ701のダイジェストを保持する。保持するダイジェストは、拡張アプリケーションパッケージ701に含む各ファイルに対応するダイジェスト(732~751)と、拡張アプリケーションパッケージ701全体のダイジェスト752を含む。このダイジェストファイル731に保持する各ダイジェストを使って、後述する改ざん検知方法によって、アプリケーションの改ざんを検知する。この拡張アプリケーションパッケージ701、ダイジェストファイル731は、インストールした拡張アプリケーションごとに生成される。
図8は、画像形成装置301起動時の拡張アプリケーションの改ざん検知処理を示した図である。この処理は、RAM102に読み込まれた命令に従って、CPU101上で実行される。まず、S801において、改ざん検知処理を行っていない拡張アプリケーションの有無を確認する。改ざん検知処理を行っていないアプリがあればS802に進み、なければ処理を終了する。S802では、拡張アプリケーションパッケージ701全体のダイジェストを計算する。S803では、S802で計算したダイジェストと、ダイジェストファイル731に格納してある拡張アプリケーションパッケージ全体のダイジェスト730の比較を行う。差異が無ければS801に進み、差異があればS804に進む。S804では、ダイジェストに差異が見つかったということは、つまり改ざんされているということなので、後述する改ざん状態情報1800に改ざん「有り」を記録する。そして、S801に進む。この改ざん情報は、後述する処理で利用する。この起動時の改ざん検知処理では、拡張アプリケーションパッケージ701全体のダイジェストで比較するため、パッケージ内のどこか一か所でも改ざんがあれば、検知することが可能である。
図9は、画像形成装置301が起動した後の操作部112の表示例である。操作部112には、画像形成装置301が有する機能を示すアイコンが表示される。ここで、アイコン901が拡張アプリケーションの機能を示すアイコンである。このアイコンは、後述する拡張アプリケーションのアイコン登録処理によって、表示される。
図10は、本実施例の画像形成装置のCPU101上で動作するソフトウェアモジュールの構成図である。サーブレットサービス1004は、ネットワークI/F110を介してHTTPアクセスされた際に、アクセスされたURLによってモジュール(アプリケーション管理部1002か標準機能制御部1001)に処理を振り分けるモジュールである。UI制御部1003は、操作部112に画面を表示し、ユーザーからの操作を受け付けて、その操作情報を適切なモジュール(アプリケーション管理部1002か標準機能制御部1001)に通知を行うモジュールである。アプリケーション管理部1002は、インストールされている拡張アプリケーションのインストールや起動等の管理を行うモジュールである。アプリケーション実行制御部1005は、アプリケーション管理部1002で起動されたアプリケーションの実行制御を行うモジュールである。具体的には、VMスレッド215、VMシステムサービス220、VM230、拡張アプリケーション240を制御する。ストレージ制御部1006は画像成形装置の設定情報を記録管理するモジュールである。各モジュールは、ストレージ制御部1006にアクセスし、設定値の参照、設定を行う。標準機能制御部1001は、画像形成装置の標準機能であるコピーやFAXの制御や、その他の画像成形装置に必要な制御(例えばUSBホストパスI/F113の制御)を行うモジュールである。
図11は、起動時の拡張アプリケーションのアイコン登録処理時のアプリケーション実行制御部1005の処理を示す図である。この処理は、RAM102に読み込まれた命令に従って、CPU101上で実行される。
拡張アプリケーションのアイコン情報は拡張アプリケーションが保持しており、そのアイコン情報を問い合わせるために、アプリケーション実行制御部は拡張アプリケーションのアイコン情報問い合わせ用の処理を実行する。この実行の前に、アプリケーション実行制御部は、図8の起動時改ざん検知処理で、対象のアプリケーションに改ざんが検知されていたかどうかを確認する(S1120)。改ざんが検知されていなければ、拡張アプリケーションを実行するために、VMを起動し、そのVMに対し、インストールされている拡張アプリケーションのアイコン情報問い合わせ用スクリプトの実行要求を行う(S1100)。
S1101において、VMは指定されたスクリプトを読み込むため、標準VMシステムサービスにファイルオープン要求を行う。S1102において、標準VMシステムサービスはファイルオープン要求を受け、指定されたファイルを拡張アプリケーションパッケージ701内から検索してオープンする。S1103において、ファイルオープンが失敗している場合はロード処理を失敗させる。ファイルオープンが成功している場合、VMはオープンされたファイルからスクリプトに記録された情報をロードするため、標準VMシステムサービスにファイル読み込み要求を行う。S1104において、標準VMシステムサービスはファイル読み込み要求を受け、指定されたファイルハンドルからデータを読み込む。S1103は、標準VMシステムサービスの読み込み終了を待ち、ロード処理を行う。ロード処理後、スクリプトをロード済みにセットする。S1105において、VMはロードしたスクリプトを実行する。このスクリプト内に、アイコンを登録するための処理が記述されており、VMでそのスクリプトを実行することで、アイコンが登録される。
図12は、拡張アプリケーションのスクリプトの依存関係を示す図である。
一般的に、PCでアプリケーションを実行する場合、実行可能ファイル全体を読み込み、メモリに展開してから実行する。一方で、画像形成装置301においてはPCの様にメモリリソースが潤沢ではないため、拡張アプリケーションを機能ごとの複数のスクリプトに分割して構成し、拡張アプリケーションの処理に必要な機能を持つスクリプトを随時ロードし実行する。このような構成にすることで、拡張アプリケーションを実行するために必要なメモリリソースの削減を行っている。
図12は、Mainスクリプトをロード・実行すると、sub1、sub2、sub3のスクリプトがロード・実行される。さらにsub4、sub5、sub6、sub3、sub1、sub7のスクリプトがロード・実行されることを示している。スクリプトの依存関係は拡張アプリケーションごとに異なり、この例のsub1、sub3の様に、同じスクリプトが複数ロードされることもある。また、同じ拡張アプリケーションでも、処理する内容によって、ロードするスクリプトは異なる。なお、サブスクリプトのロードは、必要なときに随時行われるため、アプリケーションの起動タイミングと、サブスクリプトのロードまでに時間が開くこともある。
このように、メモリリソースの少ない画像形成装置301では、実行可能ファイル全体をメモリに展開するのではなく、必要な時にサブスクリプトを随時ロードする。そのため、拡張アプリケーション起動時にだけ改ざん検知処理すると、拡張アプリケーションを起動してからサブスクリプトをロードするまでの間に改ざんされた場合に、検知できなくなってしまう。そのため、改ざん検知処理は、スクリプトロード時に常に行う必要がある。一方で、スクリプトはアプリケーションパッケージ701に格納している。このアプリケーションパッケージ701の改ざんを検知するには、アプリケーションパッケージ701全体のダイジェストを計算する必要がある。この計算は、計算対象のサイズが大きい程計算時間がかかるため、スクリプトロードの度に、アプリケーションパッケージ701全体のダイジェストを計算すると処理時間がかかってしまう。図11で示したファイルオープン処理S1102では、処理時間を削減可能な検知処理を行う。具体的な処理内容については後述する。
図13は、図11で示したファイルオープン処理S1102の処理内容を示す図である。この処理は、RAM102に読み込まれた命令に従って、CPU101上で実行される。
まずS1301において、ファイルオープンがスクリプトロードのものか、あるいはリソースファイルのアクセスかを判定する。ファイルのオープンにはスクリプトをVMにロードして実行するためのオープンと、単なるデータとして使用するためのオープンがある。これによって処理を変える。ロードの場合S1303に進み、非ロードのアクセスの場合、S1302に進む。S1302では、オープンするファイルの全データが後述するバッファメモリ1400内にあり、かつ後述するパッケージ内ファイル状態情報1600が改ざんチェック済みかどうかを判定する。条件を満たす場合、S1308に進み、満たさない場合S1304に進む。S1303では、ロードするスクリプトが既にロード済みかどうかを判定し、ロード済みの場合は処理を終了し、ロード済みでない場合は、S1302に進む。S1304では、指定されたファイルを拡張アプリケーションパッケージ内から検索し、オープンする。続いてS1305では、アクセスするファイル個別のダイジェスト情報(ダイジェスト値)を算出する。続いてS1306ではアクセスするファイルに対応する個別ダイジェストをダイジェストファイル731から取得し、S1305で算出したダイジェスト情報と比較する。比較した結果、一致した場合はS1309に進み、不一致だった場合はS1307に進む。S1307では拡張アプリケーションパッケージ701は、改ざんされたものとし、後述する改ざん状態情報1800に改ざん「有り」を記録し、ファイルオープン処理を失敗させ処理を終了する。S1309では、パッケージ内ファイル状態情報1600をチェック済みにセットし、処理を終了する。S1308では、ファイルにアクセスするためのファイルオープンを行う。
この処理により、ランタイムのアプリケーションの改ざん検知では、アプリケーションパッケージに含まれるアプリケーションの実行に必要なデータのダイジェスト計算だけ行い、アプリケーションの実行に不要なデータのダイジェスト計算を省くことができる。また、バッファ上に存在する場合や、ロード済みの場合のダイジェスト計算を省くことができる。
例えば、アプリケーションのスクリプト構成が図12で示した関係を持っている場合、初めにMainスクリプトがこの処理によりオープンされ、処理S1103でロードされ、処理S1105で実行される。そして、そのMainスクリプトの実行過程でsub1スクリプトがオープン、ロード、実行される。さらにsub1スクリプトの実行過程でsub4,sub5,sub6がオープン、ロード、実行される。次にsub2スクリプトがオープン、ロード、実行される。そのsub2実行過程でsub6がオープンされるが、sub6はすでにロード済みであるため、オープン処理で改ざん検知に必要なダイジェスト計算を省くことが出来る。
アプリケーションのスクリプト構成は、アプリケーションごとに異なるが、一般的にスクリプトは機能ごとに細かく分割・作成される。また、機能によって実行するスクリプトが異なる。例えば、図11で説明しているアイコン情報問い合わせ機能と、アイコンを押した後にアプリを動かす機能とでは、実行されるスクリプトは異なる。従来技術のようにアプリケーションパッケージ全体に対してダイジェスト計算すると、実際には必要のないファイルに対してまでダイジェストを計算することになる。本実施例では、ロードするスクリプトごとにダイジェスト計算を行うことで、必要最低限の処理時間で改ざん検知を実現できる。すなわち、ロードするファイル以外のダイジェスト値は計算しない。
図14は、アクセスした拡張アプリケーションパッケージの内容をバッファリングしておくバッファメモリの内容を示す図である。
拡張アプリケーションパッケージは、ストレージ104に保持されている。ストレージはRAMに比べるとアクセスに時間がかかるため、一度アクセスしたデータをRAM内に保持しておき、次に同じデータをアクセスする際に、RAM内に保持していたデータを利用することでアクセスにかかる時間を短縮する。これをバッファリングと呼ぶ。
バッファメモリ1400は、拡張アプリケーションパッケージのオフセットを記録するオフセット領域と、拡張アプリケーションパッケージの内容を保持するデータ領域で構成する。オフセットは、拡張アプリケーションパッケージの先頭からのオフセットを記録する。オフセットが0xffffffffのものは、バッファを未使用であることを示す。ここでは、オフセット領域とデータ領域のペアをバッファブロックと呼ぶ。
図15は、図11で示したファイル読み込み処理S1104の処理内容を示す図である。この処理は、RAM102に読み込まれた命令に従って、CPU101上で実行される。
まずS1500において、読み込むファイルが拡張アプリケーションパッケージ内のどの位置にあるのかを検索する。次にS1501において、その位置を含むデータがバッファリングされているかどうか、バッファメモリ1400から検索する。バッファリングされている場合S1506に進み、バッファリングされていない場合S1502に進む。S1502では、ファイルから読み込むデータを保持しておくバッファブロックを探すため、バッファメモリ1400から未使用のバッファブロックを検索する。S1503では、未使用のバッファブロックが見つかったかどうかを判定し、未使用のバッファブロックがない場合は、S1504に進み、未使用のバッファブロックがある場合はS1505に進む。S1504では、未使用のバッファブロックがないため、バッファブロックの中から1つのバッファブロックを選択し、未使用状態に解放する。また、後述するパッケージ内ファイル状態情報1600から、このバッファブロックが保持していたファイルの改ざんチェック済み状態を「未」にクリアする。S1505では、拡張アプリケーションパッケージのデータを、選択された未使用バッファブロックに読み込む。S1506では、読み込み対象のファイルのデータを保持するバッファブロックからデータを読み込む。
このファイル読み込み処理によって、拡張アプリケーションパッケージ内のデータがバッファリングされ、アクセス頻度の高いファイルの読み込み時間の短縮が可能になる。
図16は、拡張アプリケーションパッケージ内のファイルの状態を保持するパッケージ内ファイル状態情報1600を示す図である。
パッケージ内ファイル状態情報1600は、ファイルの拡張アプリケーションパッケージ内のオフセット位置と、サイズの情報と、そのファイルが改ざんチェック済みかどうか、ファイルパスの4つの情報によって構成される。この4つの情報は、拡張アプリケーションパッケージ内の全ファイルごとに存在する。デバイス起動時にこの情報は構成され、改ざんチェック済み情報は、全て「未」にクリアされる。
図17は、改ざんを検知したことを通知するために、操作部112に改ざん検知情報を表示した例である。本実施形態における画像形成装置301は、画面下部に割り当てられたステータス行に、アプリケーションの改ざんが検知された旨のメッセージを表示する。
図18は、拡張アプリケーションが改ざんされているかの状態を表す改ざん状態情報1800を示す図である。改ざん状態情報1800は、拡張アプリケーションを識別するIDと、改ざんを検知したかどうかを示す情報とで構成される。
(その他の実施形態)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。

Claims (15)

  1. 情報処理装置であって、
    前記情報処理装置の起動時に、パッケージファイルのダイジェスト情報を算出する第1の算出手段と、
    前記パッケージファイルにアーカイブされた複数のファイルのうち、アプリケーションを実行するためにロードするファイルのダイジェスト情報を算出する第2の算出手段と、
    前記第2の算出手段によって算出されたファイル個別のダイジェスト情報と、予め記憶部に記憶されたファイル個別のダイジェスト情報とを比較する比較手段と、
    前記比較手段による比較した結果に基づきメッセージを通知する通知手段とを有し、
    前記比較手段は、前記起動時に算出した前記パッケージファイルのダイジェスト情報と、予め記憶部に記憶されたパッケージファイルのダイジェスト情報とを比較し、前記通知手段は、前記比較手段による比較した結果に基づきメッセージを通知し、前記第2の算出手段は、前記アプリケーションの実行時に、前記パッケージファイルにアーカイブされた複数のファイルのうち、前記ロードするファイル以外のファイルについて、ダイジェスト情報を算出しない
    ことを特徴とする情報処理装置。
  2. パッケージファイルにアーカイブされた複数のファイルのうち、アプリケーションを実行するためにロードするファイルのダイジェスト情報を算出する算出手段と、
    前記算出手段によって算出されたファイル個別のダイジェスト情報と、予め記憶部に記憶されたファイル個別のダイジェスト情報とを比較する比較手段と、
    前記比較手段による比較した結果に基づきメッセージを通知する通知手段と、前記パッケージファイルにアーカイブされているファイルを開く手段と、
    前記ファイルのアクセスの種別によって、改ざん検知処理を実行するか否かを判定する判定手段とを有し、
    前記算出手段は、前記アプリケーションの実行時に、前記パッケージファイルにアーカイブされた複数のファイルのうち、前記ロードするファイル以外のファイルについて、ダイジェスト情報を算出しないことを特徴とする情報処理装置。
  3. さらに、前記パッケージファイルにアーカイブされているスクリプトをVMにロードした際、そのスクリプトをロード済みであることを記録する手段と、
    前記パッケージファイルにアーカイブされているスクリプトをVMにロードする前に、そのスクリプトがロード済みかどうかを判定し、ロード済みの時に改ざんチェックを行わないようにする手段と、
    を有することを特徴とする請求項1または2に記載の情報処理装置。
  4. 前記パッケージファイルにアーカイブされているファイルを読み込んだ際、読み込んだファイルのデータをバッファメモリに格納する手段と、
    前記パッケージファイルにアーカイブされているファイルの改ざん検知処理を行った際に、そのファイルが改ざんチェック済みであることを記録する手段と、
    前記パッケージファイルにアーカイブされているファイルをオープンする時、そのファイルのデータがバッファリングされ、かつ改ざんチェック済みである場合は、改ざん検知処理を行うことなく、前記ファイルをオープンする手段と、
    を有することを特徴とする請求項1乃至のいずれか1項に記載の情報処理装置。
  5. さらに、前記比較手段による比較した結果に基づき、前記ファイルのオープン処理をさせないようにする手段を有することを特徴とする請求項1乃至のいずれか1項に記載の情報処理装置。
  6. パッケージファイルにアーカイブされた複数のファイルのうち、アプリケーションを実行するためにロードするファイルのダイジェスト情報を算出する算出手段と、
    前記算出手段によって算出されたファイル個別のダイジェスト情報と、前記アプリケーションのインストール時に算出され記憶部に記憶されたファイル個別のダイジェスト情報とを比較する比較手段と、
    前記比較手段による比較した結果に基づきメッセージを通知する通知手段とを有し、
    前記算出手段は、前記アプリケーションの実行時に、前記パッケージファイルにアーカイブされた複数のファイルのうち、前記ロードするファイル以外のファイルについてダイジェスト情報を算出しないことを特徴とする情報処理装置
  7. 前記比較手段による比較した結果、前記ファイル個別のダイジェスト情報と、前記記憶部に記憶されたファイル個別のダイジェスト情報が異なる場合、前記通知手段は、前記アーカイブされたファイルが改ざんされていることを通知することを特徴とする請求項1乃至のいずれか1項に記載の情報処理装置。
  8. コンピュータを、請求項1乃至のいずれか1項に記載の情報処理装置の各手段として機能させるためのプログラム。
  9. 情報処理装置における情報処理方法であって、
    前記情報処理装置の起動時に、パッケージファイルのダイジェスト情報を算出する第1の算出ステップと、
    前記パッケージファイルにアーカイブされた複数のファイルのうち、アプリケーションを実行するためにロードするファイルのダイジェスト情報を算出する第2の算出ステップと、
    前記第2の算出ステップによって算出されたファイル個別のダイジェスト情報と、予め記憶部に記憶されたファイル個別のダイジェスト情報とを比較する比較ステップと、
    前記比較ステップによる比較した結果に基づきメッセージを通知する通知ステップとを有し、
    前記比較ステップは、前記起動時に算出した前記パッケージファイルのダイジェスト情報と、予め記憶部に記憶されたパッケージファイルのダイジェスト情報とを比較し、前記通知ステップは、前記比較ステップによる比較した結果に基づきメッセージを通知し、前記第2の算出ステップは、前記アプリケーションの実行時に、前記パッケージファイルにアーカイブされた複数のファイルのうち、前記ロードするファイル以外のファイルについてダイジェスト情報を算出しないことを特徴とする情報処理方法
  10. パッケージファイルにアーカイブされた複数のファイルのうち、アプリケーションを実行するためにロードするファイルのダイジェスト情報を算出する算出ステップと、
    前記算出ステップによって算出されたファイル個別のダイジェスト情報と、予め記憶部に記憶されたファイル個別のダイジェスト情報とを比較する比較ステップと、
    前記比較ステップによる比較した結果に基づきメッセージを通知する通知ステップと、前記パッケージファイルにアーカイブされているファイルを開くステップと、
    前記ファイルのアクセスの種別によって、改ざん検知処理を実行するか否かを判定する判定ステップとを有し、
    前記算出ステップは、前記アプリケーションの実行時に、前記パッケージファイルにアーカイブされた複数のファイルのうち、前記ロードするファイル以外のファイルについてダイジェスト情報を算出しないことを特徴とする情報処理方法
  11. さらに、前記パッケージファイルにアーカイブされているスクリプトをVMにロードした際、そのスクリプトをロード済みであることを記録するステップと、
    前記パッケージファイルにアーカイブされているスクリプトをVMにロードする前に、そのスクリプトがロード済みかどうかを判定し、ロード済みの時に改ざんチェックを行わないようにするステップと、
    を有することを特徴とする請求項9または10に記載の情報処理方法
  12. 前記パッケージファイルにアーカイブされているファイルを読み込んだ際、読み込んだファイルのデータをバッファメモリに格納するステップと、
    前記パッケージファイルにアーカイブされているファイルの改ざん検知処理を行った際に、そのファイルが改ざんチェック済みであることを記録するステップと、
    前記パッケージファイルにアーカイブされているファイルをオープンする時、そのファイルのデータがバッファリングされ、かつ改ざんチェック済みである場合は、改ざん検知処理を行うことなく、前記ファイルをオープンするステップと、
    を有することを特徴とする請求項9乃至11のいずれか1項に記載の情報処理方法
  13. さらに、前記比較ステップによる比較した結果に基づき、前記ファイルのオープン処理をさせないようにするステップを有することを特徴とする請求項9乃至12のいずれか1項に記載の情報処理方法
  14. パッケージファイルにアーカイブされた複数のファイルのうち、アプリケーションを実行するためにロードするファイルのダイジェスト情報を算出する算出ステップと、
    前記算出ステップによって算出されたファイル個別のダイジェスト情報と、前記アプリケーションのインストール時に算出され記憶部に記憶されたファイル個別のダイジェスト情報とを比較する比較ステップと、
    前記比較ステップによる比較した結果に基づきメッセージを通知する通知ステップとを有し、
    前記算出ステップは、前記アプリケーションの実行時に、前記パッケージファイルにアーカイブされた複数のファイルのうち、前記ロードするファイル以外のファイルについてダイジェスト情報を算出しないことを特徴とする情報処理方法
  15. 前記比較ステップによる比較した結果、前記ファイル個別のダイジェスト情報と、前記記憶部に記憶されたファイル個別のダイジェスト情報が異なる場合、前記通知ステップは、前記アーカイブされたファイルが改ざんされていることを通知することを特徴とする請求項9乃至14のいずれか1項に記載の情報処理方法
JP2018137629A 2018-07-23 2018-07-23 情報処理装置、情報処理装置の制御方法、及び、プログラム Active JP7195796B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2018137629A JP7195796B2 (ja) 2018-07-23 2018-07-23 情報処理装置、情報処理装置の制御方法、及び、プログラム
GB1909587.6A GB2577955B (en) 2018-07-23 2019-07-03 Information processing apparatus, information processing method, computer program, and storage medium
US16/512,071 US11474855B2 (en) 2018-07-23 2019-07-15 Information processing apparatus, information processing method, and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018137629A JP7195796B2 (ja) 2018-07-23 2018-07-23 情報処理装置、情報処理装置の制御方法、及び、プログラム

Publications (2)

Publication Number Publication Date
JP2020016926A JP2020016926A (ja) 2020-01-30
JP7195796B2 true JP7195796B2 (ja) 2022-12-26

Family

ID=67540165

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018137629A Active JP7195796B2 (ja) 2018-07-23 2018-07-23 情報処理装置、情報処理装置の制御方法、及び、プログラム

Country Status (3)

Country Link
US (1) US11474855B2 (ja)
JP (1) JP7195796B2 (ja)
GB (1) GB2577955B (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6861670B2 (ja) * 2018-07-10 2021-04-21 キヤノン株式会社 画像処理装置、その制御方法、及びプログラム
US11093715B2 (en) * 2019-03-29 2021-08-17 Samsung Electronics Co., Ltd. Method and system for learning and enabling commands via user demonstration
US11468881B2 (en) 2019-03-29 2022-10-11 Samsung Electronics Co., Ltd. Method and system for semantic intelligent task learning and adaptive execution
CN114706621B (zh) * 2019-09-26 2023-03-24 华为技术有限公司 一种启动快应用的方法及相关装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005293109A (ja) 2004-03-31 2005-10-20 Canon Inc ソフトウェア実行管理装置、ソフトウェア実行管理方法、及び制御プログラム
JP2008177683A (ja) 2007-01-16 2008-07-31 Kyocera Mita Corp データ提供システム、データ受領システム、データ提供方法、データ提供プログラム及びデータ受領プログラム
JP2009258772A (ja) 2006-08-09 2009-11-05 Panasonic Corp アプリケーション実行装置

Family Cites Families (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3293760B2 (ja) 1997-05-27 2002-06-17 株式会社エヌイーシー情報システムズ 改ざん検知機能付きコンピュータシステム
US20040143739A1 (en) * 2003-01-16 2004-07-22 Sun Mircosystems, Inc., A Delaware Corporation Run time code integrity checks
US20040186859A1 (en) * 2003-03-20 2004-09-23 Sun Microsystems, Inc. File access based on file digests
JPWO2005004386A1 (ja) * 2003-07-07 2006-08-17 富士通株式会社 認証装置
KR20060081337A (ko) * 2005-01-07 2006-07-12 엘지전자 주식회사 비밀키를 이용한 암호화 및 복호화 방법
US7337147B2 (en) * 2005-06-30 2008-02-26 Microsoft Corporation Dynamic digital content licensing
US7953225B2 (en) * 2005-10-21 2011-05-31 Harris Corporation Mobile wireless communications device with software installation and verification features and related methods
US7526530B2 (en) * 2006-05-05 2009-04-28 Adobe Systems Incorporated System and method for cacheing web files
US7543055B2 (en) * 2006-06-20 2009-06-02 Earthlink Service provider based network threat prevention
US8484162B2 (en) * 2008-06-24 2013-07-09 Commvault Systems, Inc. De-duplication systems and methods for application-specific data
US8336079B2 (en) * 2008-12-31 2012-12-18 Hytrust, Inc. Intelligent security control system for virtualized ecosystems
JP2012003679A (ja) * 2010-06-21 2012-01-05 Kyocera Mita Corp 画像形成装置用追加アプリケーションのセキュリティ確保方法、画像形成システム及び画像形成装置
US8856889B2 (en) * 2010-10-19 2014-10-07 Hewlett-Packard Development Company, L.P. Methods and systems for generation of authorized virtual appliances
US9680894B2 (en) * 2011-10-14 2017-06-13 Bally Gaming, Inc. Multiple virtual machine memory usage reduction system and method
US20130132951A1 (en) * 2011-11-18 2013-05-23 Broadcom Corporation Network Port Profile Representation in Open Virtualization Format Package
US9116812B2 (en) * 2012-01-27 2015-08-25 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for a de-duplication cache
US8966249B2 (en) * 2012-01-29 2015-02-24 Saife, Inc. Data security and integrity by remote attestation
US9141408B2 (en) * 2012-07-20 2015-09-22 Sonatype, Inc. Method and system for correcting portion of software application
US8914668B2 (en) * 2012-09-06 2014-12-16 International Business Machines Corporation Asynchronous raid stripe writes to enable response to media errors
US9407505B2 (en) * 2013-03-04 2016-08-02 Amazon Technologies, Inc. Configuration and verification by trusted provider
KR20150035249A (ko) * 2013-09-27 2015-04-06 삼성전자주식회사 어플리케이션 패키지를 저장하는 기록 매체, 어플리케이션 패키지 생성 방법 및 장치, 어플리케이션 패키지 실행 방법 및 장치
US9483636B2 (en) * 2014-01-17 2016-11-01 Microsoft Technology Licensing, Llc Runtime application integrity protection
US10198445B2 (en) * 2014-06-30 2019-02-05 Google Llc Automated archiving of user generated media files
JP2016095792A (ja) * 2014-11-17 2016-05-26 キヤノン株式会社 情報処理装置、その制御方法、及びプログラム
US9785429B2 (en) * 2015-02-27 2017-10-10 Lenovo (Singapore) Pte. Ltd. Efficient deployment of thin client applications to end user
US9639715B2 (en) * 2015-04-27 2017-05-02 Microsoft Technology Licensing, Llc Protecting user identifiable information in the transfer of telemetry data
CN104866351B (zh) * 2015-05-27 2018-03-09 百富计算机技术(深圳)有限公司 一种数据传输方法、服务端及客户端
US10230529B2 (en) * 2015-07-31 2019-03-12 Microsft Technology Licensing, LLC Techniques to secure computation data in a computing environment
US20170230414A1 (en) * 2016-02-04 2017-08-10 Avocado Systems Inc. Identifying and deterministically avoiding use of injected or altered query files
KR101814897B1 (ko) * 2016-02-11 2018-01-04 라인 가부시키가이샤 파일 보호 방법 및 시스템
US10346310B2 (en) * 2016-02-26 2019-07-09 Red Hat, Inc. Cache block apparatus and methods
CN106055602A (zh) * 2016-05-24 2016-10-26 腾讯科技(深圳)有限公司 文件验证方法及装置
US10795706B2 (en) * 2016-06-06 2020-10-06 Vmware, Inc. Multitier application blueprint representation in open virtualization format package
US11528142B2 (en) * 2016-10-11 2022-12-13 BicDroid Inc. Methods, systems and computer program products for data protection by policing processes accessing encrypted data
US20180268159A1 (en) * 2017-03-16 2018-09-20 Jun Yu Method and System for Policy Based Real Time Data File Access Control
US10616252B2 (en) * 2017-06-30 2020-04-07 SparkCognition, Inc. Automated detection of malware using trained neural network-based file classifiers and machine learning
US10805421B2 (en) * 2018-04-03 2020-10-13 Citrix Systems, Inc. Data caching for cloud services

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005293109A (ja) 2004-03-31 2005-10-20 Canon Inc ソフトウェア実行管理装置、ソフトウェア実行管理方法、及び制御プログラム
JP2009258772A (ja) 2006-08-09 2009-11-05 Panasonic Corp アプリケーション実行装置
JP2008177683A (ja) 2007-01-16 2008-07-31 Kyocera Mita Corp データ提供システム、データ受領システム、データ提供方法、データ提供プログラム及びデータ受領プログラム

Also Published As

Publication number Publication date
GB2577955B (en) 2021-02-17
GB2577955A (en) 2020-04-15
US11474855B2 (en) 2022-10-18
JP2020016926A (ja) 2020-01-30
GB201909587D0 (en) 2019-08-14
US20200026554A1 (en) 2020-01-23

Similar Documents

Publication Publication Date Title
JP7195796B2 (ja) 情報処理装置、情報処理装置の制御方法、及び、プログラム
US9286048B2 (en) Apparatus, non-transitory computer readable information recording medium and information recording method that determine identification information for identifying a program that has issued a use request
US11140291B2 (en) Information processing apparatus, control method thereof, and storage medium
US8418169B2 (en) Management method for managing software module and information processor
US9542228B2 (en) Image processing apparatus, control method thereof and storage medium
JP5699500B2 (ja) インストールプログラム、インストール方法、画像形成装置、及び記録媒体
CN109660688B (zh) 信息处理装置及其控制方法
US11720390B2 (en) Information processing apparatus that determines whether an extended application can reuse a virtual machine, method of controlling the same, and storage medium
US10545704B2 (en) Image forming apparatus and control method to update an application in an image forming apparatus
US20130061228A1 (en) Operating system image management
US20120144390A1 (en) Customized computer image preparation and deployment including virtual machine mode
US20220129212A1 (en) Image forming apparatus capable of preventing phenomenon that printing by schedule setting will not be started due to display of confirmation screen, control method for image forming apparatus, and storage medium
JP6423645B2 (ja) 画像形成装置およびリソース管理方法およびプログラム
JP2007122348A (ja) 画像形成装置、セキュリティ管理方法、セキュリティ管理プログラム及び記録媒体
US12001870B2 (en) Injection and execution of workloads into virtual machines
JP6987530B2 (ja) 画像形成装置、情報処理方法及びプログラム
JP6834838B2 (ja) コンピュータ起動方法及びコンピュータ
US20210042131A1 (en) Information processing apparatus, method of controlling the same, and storage medium
US10951787B2 (en) Information processing apparatus that controls timing for enabling an application, control method of information processing apparatus, and recording medium
JP2013152743A (ja) 装置、セキュリティ管理方法、セキュリティ管理プログラム及び記録媒体
US11811994B2 (en) Information processing system and apparatus to manage combined application
US20230020062A1 (en) Information processing system and apparatus to generate description file corresponding to reproduction application based on edit instruction
US20230036834A1 (en) Information processing system, apparatus, and storage medium having combinational and non-combinational applications
JP2010218469A (ja) 情報処理装置、情報処理方法、プログラムおよび記録媒体
US10528335B2 (en) Image forming apparatus capable of executing extension application, method of controlling same, and storage medium

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210719

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220512

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220524

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220713

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: 20221115

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20221214

R151 Written notification of patent or utility model registration

Ref document number: 7195796

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151