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

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

Info

Publication number
JP7171339B2
JP7171339B2 JP2018179774A JP2018179774A JP7171339B2 JP 7171339 B2 JP7171339 B2 JP 7171339B2 JP 2018179774 A JP2018179774 A JP 2018179774A JP 2018179774 A JP2018179774 A JP 2018179774A JP 7171339 B2 JP7171339 B2 JP 7171339B2
Authority
JP
Japan
Prior art keywords
program
information processing
installation
java program
verification data
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
JP2018179774A
Other languages
English (en)
Other versions
JP2020052597A (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 JP2018179774A priority Critical patent/JP7171339B2/ja
Priority to US16/579,094 priority patent/US11295005B2/en
Publication of JP2020052597A publication Critical patent/JP2020052597A/ja
Application granted granted Critical
Publication of JP7171339B2 publication Critical patent/JP7171339B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/00002Diagnosis, testing or measuring; Detecting, analysing or monitoring not otherwise provided for
    • H04N1/00026Methods therefor
    • H04N1/00037Detecting, i.e. determining the occurrence of a predetermined state
    • 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
    • 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/572Secure firmware programming, e.g. of basic input output system [BIOS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/00002Diagnosis, testing or measuring; Detecting, analysing or monitoring not otherwise provided for
    • H04N1/00071Diagnosis, testing or measuring; Detecting, analysing or monitoring not otherwise provided for characterised by the action taken
    • H04N1/00074Indicating or reporting
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/00912Arrangements for controlling a still picture apparatus or components thereof not otherwise provided for
    • H04N1/00938Software related arrangements, e.g. loading applications
    • 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
    • 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/4401Bootstrapping

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Multimedia (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Facsimiles In General (AREA)

Description

本発明は、情報処理装置、情報処理装置の制御方法、及び、プログラムに関する。
ソフトウェアの脆弱性を利用してソフトウェアを改ざんし、コンピュータを悪用する攻撃が問題となっている。
特許文献1では、第1のフラッシュメモリと第1のCPUとを有する耐タンパ性を有するモジュールと、第2のフラッシュメモリと第2のCPUとを有する本体部と、を備えた端末装置が開示されている。第1のフラッシュメモリは、予め設定されたブートプログラムを含むブート部のハッシュ値を記憶する。第1のCPUは、入力されるブート部のハッシュ値を算出し、当該算出したブート部のハッシュ値と、前記記憶されたブート部のハッシュ値と、が一致するか否かを判別し、その判別結果を出力する。第2のフラッシュメモリは、ブート部を記憶する。第2のCPUは、ブート部に記憶されたプログラムの実行により、ブート部を第1のCPUに入力してその判別結果を取得し、当該判別結果においてハッシュ値が一致する場合に、ブート部の使用を伴う端末装置の動作を許可に設定する。
特開2008-244992号公報
従来は、情報処理装置内の全てのプログラム(ソフトウェア)を、配布の段階で秘密鍵を用いてデジタル署名をつける。このため、プログラム配布後のあらゆる書き換えは改ざんとみなされる。
一方、プログラムの一部は、外部ソフトウェアとして情報処理装置にインストールされて動作する。このようなプログラムは第三者が作ったものもあり、過去のプログラムも互換性を維持して動作させたいという要求がある。
しかし、プログラムを動作させる情報処理装置のプラットホームに変更等がある場合、当該プログラムが包含しているライブラリ等の互換性が取れないことがある。例えばグラフィック関連の仕様が変わった場合、プログラムは、そのままでは正常に動作しない場合がある。このような場合には当該プログラムを改変することで、プログラムを正常に動作させることができる場合がある。より具体的には、当該プログラムが包含するライブラリを、互換性を保証できるライブラリに置き換えることによって、プログラムを正常に動作させることができる場合がある。この置き換えは情報処理装置へのプログラムのインストール時に実施される。しかしながら、このように書き換えられたプログラムは、改ざんされたものと誤検知される場合があるため、上記のように互換性を保つ上での課題となっている。特許文献1には、このような課題やその解決方法についての記載はない。
本発明の情報処理装置は、情報処理装置であって、第1のプログラムを取得する取得手段と、前記第1のプログラムに基づいて生成された第2の検証データに基づいて、前記取得手段によって取得された前記第1のプログラムの改ざんを検知する第2の検知手段と、前記第2の検知手段によって前記第1のプログラムの改ざんが検知されなかった場合、前記第1のプログラムを、前記情報処理装置での動作環境に適合するように書き換えてインストールするインストール手段と、前記インストール手段によって書き換えられた前記第1のプログラムに基づいて、第1の検証データを生成する生成手段と、前記生成手段によって生成された前記第1の検証データに基づいて、インストール後の前記第1のプログラムの改ざんを検知する第1の検知手段と、を有する。
本発明によれば、互換性を保つために書き換えられたプログラムについて、改ざんされていないにもかかわらず改ざんされたものと誤検知されることを防止できる。
複合機のハードウェア構成の一例を示す図である。 複合機のソフトウェア構成の一例を示す図である。 複合機が起動する処理の流れの例を示す図である。 複合機の起動処理の一例を示すフローチャートである。 インストール処理の一例を示すフローチャートである。 インストール処理の一例を示すフローチャートである。 複合機が起動する処理の流れの一例を示す図である。
(第1の実施形態)
図1を参照して、複合機100のハードウェア構成について説明する。図1は、複合機100のハードウェア構成の一例を示す図である。複合機100は、情報処理装置の一例である。
CPU101は、複合機100のプログラム(ソフトウェア)を実行し、複合機100の制御を行う。
ROM102は、リードオンリーメモリであり、複合機100のBIOS、固定パラメータ等を格納している。
RAM103は、ランダムアクセスメモリである。RAM103には、CPU101が複合機100を制御する際に実行するプログラムが展開される。また、RAM103は一時的なデータ等を格納する。
HDD104は、ハードディスクドライブであり、一部のアプリケーションプログラム及び各種データを格納する。
フラッシュメモリ114は、ローダー211、カーネル212、Nativeプログラム213等を格納する。ROM102、HDD104、及び、フラッシュメモリ114は、それぞれ、記憶媒体の一例である。
Embedded Controller113は、CPU115とRAM116とを有する。CPU115は、Embedded Controller113のプログラムを実行し、複合機100の中で一部の制御を行う。RAM116は、ランダムアクセスメモリである。RAM116には、CPU115が複合機100を制御する際に実行するプログラムが展開される。また、RAM116は、一時的なデータ等を格納する。
ネットワークI/F制御部105は、ネットワーク120を介した外部装置とのデータの送受信を制御する。
スキャナI/F制御部106は、スキャナ111が原稿の読み取り等を行うようにスキャナ111を制御する。
プリンタI/F制御部107は、プリンタ112が印刷処理等を行うようにプリンタ112を制御する。
パネル制御部108は、各種情報の表示をしたり、使用者からの指示を受け付けたりするようタッチパネル式の操作パネル110を制御する。
バス109は、CPU101、ROM102、RAM103、HDD104、ネットワークI/F制御部105、スキャナI/F制御部106、プリンタI/F制御部107を相互に接続する。バス109は、更に、パネル制御部108、Embedded Controller113、フラッシュメモリ114、LED117を相互に接続する。バス109を介して、CPU101からの制御信号、及び、各装置間のデータ信号が送受信される。
LED117は、CPU101の制御に基づいて点灯し、プログラム及びハードウェアの異常を外部に伝えるために利用される。
次に、図2を参照して、複合機100のソフトウェア構成について説明する。図2は、複合機100のソフトウェア構成の一例を示す図である。
通信管理部207は、ネットワーク120に接続されるネットワークI/F制御部105を制御して、ネットワーク120を介して外部装置とデータの送受信を行う。
UI制御部203は、パネル制御部108を介して操作パネル110への入力を受け取ったり、入力に応じた処理及び操作パネル110への画面出力を行ったりする。
ブートプログラム209は、複合機100の電源を入れるとEmbedded Controller113のCPU115で実行されるプログラムである。ブートプログラム209は、複合機100の起動に関わる処理を行う。また、ブートプログラム209は、BIOSの改ざん検知を行うBIOS改ざん検知処理部201を有する。
BIOS210は、ブートプログラム209の実行後にCPU101で実行されるプログラムである。BIOS210は、複合機100の起動に関わる処理を行う。また、BIOS210は、ローダー211の改ざん検知を行うローダー改ざん検知処理部202を有する。
ローダー211は、BIOS210の処理が終わった後にCPU101で実行されるプログラムである。ローダー211は、複合機100の起動に関わる処理を行う。また、ローダー211は、カーネルの改ざん検知を行うカーネル改ざん検知処理部204を有する。
カーネル212は、ローダー211の処理が終わった後にCPU101で実行されるプログラムである。カーネル212は、複合機100の起動に関わる処理を行う。また、カーネル212は、Nativeプログラム213の改ざん検知を行うプログラム改ざん検知処理部205を有する。
Nativeプログラム213は、CPU101で実行されるプログラムである。Nativeプログラム213は、複合機100のJava(登録商標)プログラム214と連携して各機能を提供する複数のプログラムから構成される。Nativeプログラム213として、例えばスキャナI/F制御部106及びプリンタI/F制御部107を制御するプログラム、並びに、起動プログラム等がある。カーネル212によってNativeプログラムの中から起動プログラムが呼び出されて、起動処理が行われる。この起動処理には、Javaプログラム214の起動、操作パネル110を操作可能にする処理、プリンタ112及びスキャナ111を動作可能にする処理、並びに、ネットワーク120を介したデータの送受信を可能する処理等が含まれる。また、Nativeプログラム213の一つとして、Javaプログラム214の改ざん検知を行うJavaプログラム改ざん検知処理部206がある。
Javaプログラム214は、CPU101で実行されるプログラムである。Javaプログラム214は、複合機100のNativeプログラム213と連携して各機能を提供するプログラム(例えば操作パネル110に画面を表示するプログラム)である。Javaプログラム214として、Javaプログラムインストール部215が存在する。Javaプログラムインストール部215は、Javaプログラム214のインストールを実施するプログラムである。Javaプログラムインストール部215を介さずしてJavaプログラム214をインストールすることは、通常はできない。
ハッシュリスト保管部216は、HDD104等の不揮発メモリ上に生成されるリストであり、Javaプログラム214のハッシュ値を保存するファイルである。ハッシュリスト保管部216には、後述のハッシュリスト310が記憶されている。
次に、図3(a)を参照して、改ざん検知を行わずに複合機100が起動する処理の流れについて説明する。図3(a)は、複合機100が起動する処理の流れの一例を示す模式図である。
図3(a)に示すように、複合機100が起動すると、ブートプログラム209が起動する。そして、ブートプログラム209がBIOS210を起動し、BIOS210がローダー211を起動し、ローダー211がカーネル212を起動し、カーネル212がNativeプログラム213に含まれる起動プログラムを起動する。そして、起動プログラムの中でJavaプログラム214が起動され、以降は、Nativeプログラム213とJavaプログラム214とが連携して複合機100の機能を提供する。
次に、図3(b)を参照して、改ざん検知を行いながら複合機100が起動する処理の流れについて説明する。図3(b)は、複合機100が起動する処理の流れの一例を示す模式図である。図3(b)では各プログラムの保存場所、デジタル署名(以下署名と呼ぶ)及び公開鍵の保存場所が示されている。以降では、ROM102にブートプログラム209とBIOS210、フラッシュメモリ114にローダー211とカーネル212とNativeプログラム213、HDD104にJavaプログラム214が保存されているものとして説明する。
ブートプログラム209には、BIOS署名検証用の公開鍵300が含まれている。BIOS210には、BIOS署名302とローダー検証用公開鍵303とが含まれている。ローダー211には、ローダー署名304とカーネル検証用公開鍵305とが含まれている。カーネル212には、カーネル署名306とNativeプログラム検証用公開鍵307とが含まれている。Nativeプログラム213には、Javaプログラム検証用公開鍵308とNativeプログラム署名309とが含まれている。ここで説明したこれらの公開鍵及び署名は予め複合機100出荷前に各プログラムに対して付与されたものとする。
図3(b)に示すように、複合機100が起動すると、ブートプログラム209が起動する。ブートプログラム209のBIOS改ざん検知処理部201がBIOS210を検証し、問題がなければ、ブートプログラム209がBIOS210を起動する。BIOS210のローダー改ざん検知処理部202がローダー211を検証し、問題がなければ、BIOS210がローダー211を起動する。ローダー211のカーネル改ざん検知処理部204がカーネル212を検証し、問題がなければ、ローダー211がカーネル212を起動する。カーネル212のプログラム改ざん検知処理部205がNativeプログラム213を検証し、問題がなければ、カーネル212がNativeプログラム213を起動する。Nativeプログラム213のJavaプログラム改ざん検知処理部206がJavaプログラム214を検証し、問題がなければ、Nativeプログラム213がJavaプログラム214を起動する。
次に、図4を参照して、図3(b)の処理の詳細について説明する。図4は、複合機100の起動処理の一例を示すフローチャートである。
複合機の電源を入れると、ROM102からRAM116にブートプログラム209が読み込まれてCPU115によって実行される。ブートプログラム209に含まれるBIOS改ざん検知処理部201は、フラッシュメモリ114からBIOS210とローダー検証用公開鍵303とBIOS署名302とをRAM116に読み込む。そして、S401の処理が行われる。
S401において、BIOS改ざん検知処理部201は、S401にてBIOS検証用の公開鍵300を用いて、BIOS署名302の検証を行い、BIOS署名302の検証に成功したか否かを判定する。BIOS署名302の検証に成功したと判定した場合、BIOS改ざん検知処理部201は、CPU101に通電し、処理をS402に進め、ブートプログラム209の処理を終了する。BIOS署名302の検証に成功した場合が、BIOS210の改ざんがなかった場合に対応する。BIOS署名302の検証に失敗したと判定した場合、BIOS改ざん検知処理部201は、S403において、LED117を点灯させることでBIOS210の改ざんを検知した旨を通知して、図4の処理を終了する。
CPU101は、通電されると、S402にてROM102からBIOS210とローダー検証用公開鍵303とをRAM103に読み込み、BIOS210を起動する。以降説明する図4の処理は全てCPU101によって処理される。
BIOS210は、起動されると、各種初期化処理を行い、BIOS210に含まれるローダー改ざん検知処理部202が、フラッシュメモリ114から、ローダー211とカーネル検証用公開鍵305とローダー署名304とをRAM103に読み込む。
S404において、ローダー改ざん検知処理部202は、ローダー検証用公開鍵303を用いてローダー署名304の検証を行い、ローダー署名304の検証に成功したか否かを判定する。ローダー署名304の検証に失敗したと判定した場合、ローダー改ざん検知処理部202は、S412において、操作パネル110にエラーメッセージを表示することでローダー211の改ざんを検知した旨を通知して、図4の処理を終了する。ローダー署名304の検証に成功したと判定した場合、ローダー改ざん検知処理部202は、処理をS405に進めて、ローダー改ざん検知処理部204は処理を終了する。ローダー署名304の検証に成功した場合が、ローダー211の改ざんがなかった場合に対応する。
S405において、BIOS210は、RAM103に読み込まれたローダー211を起動する。ローダー211は、起動されると、各種初期化処理を行う。次に、ローダー211に含まれるカーネル改ざん検知処理部204は、フラッシュメモリ114からカーネル212とNativeプログラム検証用公開鍵307とカーネル署名306とをRAM103に読み込む。
S406において、カーネル改ざん検知処理部204は、カーネル検証用公開鍵305を用いて、カーネル署名306の検証を行い、カーネル署名306の検証に成功したか否かを判定する。カーネル署名306の検証に失敗したと判定した場合、カーネル改ざん検知処理部204は、S412において、操作パネル110にエラーメッセージを表示することでカーネル212の改ざんを検知した旨を通知して、図4の処理を終了する。カーネル署名306の検証に成功したと判定した場合、カーネル改ざん検知処理部204は、処理をS407に進めて、カーネル改ざん検知処理部204は処理を終了する。カーネル署名306の検証に成功した場合が、カーネル212の改ざんがなかった場合に対応する。
S407において、ローダー211は、RAM103に読み込まれたカーネル212を起動する。カーネル212は、起動されると、各種初期化処理を行う。次に、カーネル212に含まれるプログラム改ざん検知処理部205は、フラッシュメモリ114からNativeプログラム213とJavaプログラム検証用公開鍵308とNativeプログラム署名309とをRAM103に読み込む。
S408において、プログラム改ざん検知処理部205は、Nativeプログラム検証用公開鍵307を用いて、Nativeプログラム署名309の検証を行い、Nativeプログラム署名309の検証に成功したか否かを判定する。Nativeプログラム署名309の検証に失敗したと判定した場合、プログラム改ざん検知処理部205は、S412において、次の処理を行う。すなわち、プログラム改ざん検知処理部205は、操作パネル110にエラーメッセージを表示することでNativeプログラム213の改ざんを検知した旨を通知して、図4の処理を終了する。Nativeプログラム署名309の検証に成功したと判定した場合、プログラム改ざん検知処理部205は、処理をS409に進めて、プログラム改ざん検知処理部205は処理を終了する。Nativeプログラム署名309の検証に成功した場合が、Nativeプログラム213の改ざんが検知されなかった場合に対応する。
S409において、カーネル212は、Javaプログラム改ざん検知処理部206を含むNativeプログラム213を起動する。次いで、Javaプログラム改ざん検知処理部206は、HDD104からJavaプログラム214とハッシュリスト310とをRAM103に読み込む。ハッシュリスト310には、ハッシュ値が格納されている。ハッシュリスト310のハッシュ値は、正規なJavaプログラム214であることを検証するための検証データであり、ハッシュ関数を用いて計算された値である。ハッシュリスト310の生成方法については後述する。
S410において、Javaプログラム改ざん検知処理部206は、起動するJavaプログラム214のバイナリコード全体について、既知のSHA-256等のハッシュアルゴリズムを用いてハッシュ値を生成する。そして、Javaプログラム改ざん検知処理部206は、生成したハッシュ値とハッシュリスト310とに基づいて、起動するJavaプログラム214の検証を行う。起動するJavaプログラム214のファイル名がハッシュリスト310に存在しない場合、Javaプログラム改ざん検知処理部206は、Javaプログラム214の検証に失敗したと判定する。起動するJavaプログラム214のファイル名に対応するハッシュリスト310のハッシュ値が、生成したハッシュ値と一致する場合、Javaプログラム改ざん検知処理部206は、Javaプログラム214の検証に成功したと判定する。起動するJavaプログラム214のファイル名に対応するハッシュリスト310のハッシュ値が、生成したハッシュ値と異なる場合、Javaプログラム改ざん検知処理部206は、Javaプログラム214の検証に失敗したと判定する。Javaプログラム214の検証に失敗したと判定した場合、Javaプログラム改ざん検知処理部206は、S412において、次の処理を行う。すなわち、Javaプログラム改ざん検知処理部206は、操作パネル110にエラーメッセージを表示することで、Javaプログラム214の改ざんを検知した旨を通知して、図4の処理を終了する。Javaプログラム改ざん検知処理部206は、Javaプログラム214の検証に成功したと判定した場合、処理をS411に進めて、Javaプログラム改ざん検知処理部205は処理を終了する。S410においてJavaプログラム214の検証に成功した場合が、Javaプログラム214のインストール後にJavaプログラム214の改ざんが検知されなかった場合に対応する。
S411において、Nativeプログラム213は、Javaプログラム214を起動する。
次に、図5を参照して、Javaプログラム214を複合機100にインストールするインストール処理について説明する。図5は、Javaプログラム214のインストール処理の一例を示すフローチャートである。図5の処理は、Javaプログラムインストール部215によって行われる。Javaプログラムインストール部215は、複合機100にインストールされたJavaプログラム214の一つである。Javaプログラムインストール部215は、それ自身が署名検証されており、改ざんされていないことが確認されてから実行される。
図5の処理は、操作パネル110によってJavaプログラム214のインストールが指示された場合に開始する。
S501において、Javaプログラムインストール部215は、Javaプログラム214のパッケージを取得する。Javaプログラムインストール部215は、ネットワーク120を介してサーバからJavaプログラム214のパッケージをダウンロードして取得してもよい。また、Javaプログラムインストール部215は、不図示のUSB等のローカルインタフェイスに接続されたUSBメモリ等のメディア媒体からJavaプログラム214のパッケージを取得してもよい。
S502において、Javaプログラムインストール部215は、Javaプログラム検証用公開鍵308とJavaプログラム214のパッケージの署名とに基づいて、Javaプログラム214のパッケージの署名の検証を実施する。Javaプログラム検証用公開鍵308は、Javaプログラム214のパッケージの署名の生成時に使用された秘密鍵に対応する。Javaプログラム214のパッケージの署名は、正規なパッケージであることを検証するための検証データである。
S503において、Javaプログラムインストール部215は、Javaプログラム214のパッケージの署名検証に成功したか否かを判定する。Javaプログラム214のパッケージの署名検証に成功したと判定した場合、Javaプログラムインストール部215は、処理をS504に進める。Javaプログラムのパッケージの署名検証に成功した場合が、Javaプログラムのパッケージに改ざんが検知されなかった場合に対応する。Javaプログラムのパッケージの署名検証に失敗したと判定した場合、Javaプログラムインストール部215は、処理をS507に進める。
S504において、Javaプログラムインストール部215は、S501で取得したJavaプログラム214のパッケージをHDD104に展開する。Javaプログラム214のパッケージには、入れ子状態で他のパッケージが入っていることがある。この場合、Javaプログラムインストール部215は、Javaプログラムのパッケージに入っている全てのパッケージをHDD104に展開する。これにより、入れ子状態で入っているパッケージを展開しない場合と比べて、インストールするJavaプログラム214の動作が高速化される。
S505において、Javaプログラムインストール部215は、S504で展開したパッケージの書き換えを行う。S505で実施されるパッケージの書き換えは、Javaプログラム214の互換性を維持して動作を可能とさせるための正規の書き換えである。
パッケージの書き換えについて、より詳しく説明する。複合機100の動作環境が、インストールするJavaプログラム214が元々想定する動作環境とは異なる場合がある。この場合、Javaプログラムインストール部215は、複合機100でのJavaプログラム214の実行環境に適合するように、S504で展開したパッケージを書き換える。この書き換えにより、Javaプログラム214が複合機100で正常に動作するようになる。より具体的には、Javaプログラムインストール部215は、S504で展開したパッケージに含まれるライブラリを書き換える。この書き換えによって、Javaプログラム214を動作させるJVM(Java Virtual Machine:Java動作環境)の非互換性や、操作パネル110に表示を行うグラフィックライブラリの違いが吸収される。また、Javaプログラムインストール部215は、互換性を維持するために、インストールするJavaプログラム214のコードを書き換えてもよい。S505において、パッケージの書き換えを行うことで、過去のアプリケーション資産を有効に活用することができる。S505ではインストールされるJavaプログラム214に対応するパッケージが書き換えられる。このため、S505ではJavaプログラム214が書き換えられることになる。
S506において、Javaプログラムインストール部215は、S505で書き換えたパッケージのハッシュ値を生成する。ここで計算されるハッシュ値は、Javaプログラム214のパッケージからSHA-256等の所定のハッシュアルゴリズムを用いて計算された固定サイズ(例えば32byte)のハッシュ値である。計算の元になるパッケージのデータが1bitでも異なる場合は異なるハッシュ値が生成される。また、ハッシュ値は、ハッシュ値から元のデータを推定できない一方向性を持つため、Javaプログラム214の改ざんの検知が可能である。Javaプログラムインストール部215は、インストールするJavaプログラム214のファイル名と計算したハッシュ値とを対応付けたデータをハッシュリスト310に追加する。そして、Javaプログラムインストール部215は、図5の処理を終了する。S506で更新されるハッシュリスト310は、図4のS410で行われるJavaプログラム214の検証に使われる。S506の処理によって、S501で取得したパッケージに対応するJavaプログラム214の複合機100へのインストールが完了する。
S507において、Javaプログラムインストール部215は、操作パネル110にエラーメッセージを表示することで、Javaプログラム214のパッケージが改ざんされている旨を通知して、図5の処理を終了する。
次に、ハッシュリスト310について説明する。ハッシュリスト310は、インストールされたJavaプログラム214が正規のものであるか否かを検証することを可能とするリストである。ハッシュリスト310は、Javaプログラムのファイル名とハッシュ値とを対応付けたデータを1つ以上含むリストである。ハッシュリスト310の構成例を次の表1に示す。
Figure 0007171339000001
Nativeプログラム213は、複合機100にインストールされた任意のJavaプログラム214を起動させる場合、まず、起動させるJavaプログラム214のファイル名と1カラム目の名前が一致するハッシュリスト310の行を検索する。そして、Nativeプログラム213は、検索したハッシュリスト310の行の2カラム目のハッシュ値を取得する。これにより、Nativeプログラム213は、起動させるJavaプログラム214の正しいハッシュ値を取得できる。
ハッシュリスト310も改ざんされる可能性がある。そこで、Javaプログラムインストール部215は、ハッシュリスト310の保護のために、ハッシュリスト310自体に署名をつける。ハッシュリスト310に署名をつける際、複合機100内で秘密鍵を保持する必要がある。複合機100は、例えば、TPM(Trusted Platform Module)のようなハードウェアを用いて、秘密鍵を保管する。これにより、秘密鍵を安全に保持できる。ハッシュリスト310は、複合機100外の安全なサーバに保管してもよい。ハッシュリスト310は改ざんされなければよく、ハッシュリスト310の管理方法の詳細は割愛する。
また、ハッシュリスト310は、表1に示す構成を持つファイルに限定されるものではなく、一般的なデータベース管理システムで管理されるデータの集合(データベース)であってもよい。
以上説明したように、複合機100は、Javaプログラム214をインストールする際、図5のS505において、Javaプログラム214が複合機100で正常に動作するように、パッケージの書き換えを行う。これにより、過去のプログラムの動作互換性が確保され、過去のアプリケーション資産を有効に活用できる。また、図5のS506において、S505で書き換えたパッケージのハッシュ値を計算して、ハッシュリスト310を更新する。これにより、互換性を保つために書き換えられたプログラムについて改ざんされていないにもかかわらず改ざんされたものと誤検知されることが防止され、正確に改ざんの検知ができる。
また、複合機100は、BIOS210、ローダー211、カーネル212、Nativeプログラム213、Javaプログラム214の何れかが改ざんされた場合、耐タンパ性を有するモジュールを使用することなく、改ざんを検知することができる。
(第2の実施形態)
次に、第2の実施形態について説明する。第2の実施形態の説明では、第1の実施形態と共通する事項について説明を省略し、第1の実施形態と異なる事項についての説明を行う。また、第1の実施形態と同じ要素については同じ符号を付しており、その詳細な説明は省略する。
第1の実施形態において、Javaプログラム214の改ざんを検知するための検証データとしてハッシュ値を用い、ハッシュリスト310に登録された正規なハッシュ値と一致しかた否かによって改ざん検知を可能としていた。しかし、改ざんを検知する方法はハッシュ値ではなく、署名によってでも実現することも可能である。第2の実施形態ではその方法を説明する。
図7を参照して、改ざん検知を行いながら第2の実施形態の複合機100が起動する処理の流れについて説明する。図7は、複合機100が起動する処理の流れの一例を示す模式図である。第2の実施形態でも、図3(b)を参照して説明した第1の実施形態と同様に、ブートプログラム209がBIOS210を起動し、BIOS210がローダー211を起動し、ローダー211がカーネル212を起動する。そして、カーネル212がNativeプログラム213を起動し、Nativeプログラム213がJavaプログラム214を起動する。ここで、各プログラムは、起動対象のプログラムの検証に成功した場合に、起動対象のプログラムを起動する。
図7における図3(b)と異なる点は、図7では、ハッシュリスト310のかわりに、鍵ペア710が使われる点である。鍵ペア710には、公開鍵暗号方式を用いた暗号方式における秘密鍵と公開鍵とが含まれる。鍵ペア710は、Javaプログラムの書き換え後の署名作成及び検証のために用いられる。また、鍵ペア710は、複合機100ごとに異なる。鍵ペア710の公開鍵は、鍵ペア710の秘密鍵に対応する。
次に、図6を参照して、Javaプログラムを複合機100にインストールするインストール処理について説明する。図6は、Javaプログラムのインストール処理の一例を示すフローチャートである。
S601からS605までの処理は、図5のS501からS505までの処理と同様である。S607の処理は、図5のS507の処理と同様である。
S606において、Javaプログラムインストール部215は、鍵ペア710の秘密鍵を使用して、S605で書き換えられたパッケージの署名を生成し、パッケージに添付する。
鍵ペア710の秘密鍵が漏洩すると不正に署名を作成することが可能となる。複合機100は、例えば、TPMのようなハードウェアを用いて、秘密鍵を保管する。これにより、秘密鍵を安全に保持できる。
図6の処理でインストールされたJavaプログラム214は、図4のS410、S411の処理で、Nativeプログラム213によって起動される。ただし、第2の実施形態では、S410の処理は、次のように行われる。
第2の実施形態のS410において、Javaプログラム改ざん検知処理部206は、鍵ペア710の公開鍵を用いて、S606でJavaプログラム214のパッケージに添付された署名の検証を行う。そして、Javaプログラム改ざん検知処理部206は、Javaプログラム214の検証に成功したか否かを判定する。Javaプログラム改ざん検知処理部206は、Javaプログラム214の検証に失敗したと判定した場合、S412において、操作パネル110にエラーメッセージを表示し、図4の処理を終了する。Javaプログラム改ざん検知処理部206は、Javaプログラム214の検証に成功したと判定した場合、処理をS411に進めて、Javaプログラム改ざん検知処理部205は処理を終了する。
以上説明したように、第2の実施形態においても、第1の実施形態と同様に、互換性を保つために書き換えられたプログラムについて改ざんされていないにもかかわらず改ざんされたものと誤検知されることが防止される。そして、互換性を保つために書き換えられたプログラムについて、正確に改ざんの検知ができる。
(変形例)
上記の実施形態では使用される公開鍵が全て異なるものであるとして説明したが、同じものがあってもよい。また、各プログラムの保存場所としてROM102、フラッシュメモリ114、HDD104があるものとして説明したが、保存場所を限定するものではなく、別の記憶媒体であってもよい。また、プログラムの保存場所が説明した箇所になくてもよく、例えば、ROM102上にローダー211を記憶する構成であってもよい。
(その他の実施形態)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
以上、本発明を実施形態と共に説明したが、上記実施形態は本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
例えば、複合機100のハードウェア構成として、CPUは複数存在してもよく、複数のCPUが各装置のHDD等に記憶されているプログラムに基づき処理を実行するようにしてもよい。また、複合機100のハードウェア構成として、CPUに替えてGPU(Graphics Processing Unit)を用いることとしてもよい。ソフトウェア構成の一部は、複合機100のハードウェアとして実装されてもよい。また、上記の実施形態を任意に組み合わせてもよい。
以上、上述した実施形態によれば、互換性を保つために書き換えられたプログラムについて、改ざんされていないにもかかわらず改ざんされたものと誤検知されることを防止できる。
100 複合機
201 BIOS改ざん検知処理部
202 ローダー改ざん検知処理部
204 カーネル改ざん検知処理部
205 プログラム改ざん検知処理部
206 Javaプログラム改ざん検知処理部
215 Javaプログラムインストール部

Claims (11)

  1. 情報処理装置であって、
    第1のプログラムを取得する取得手段と、
    前記第1のプログラムに基づいて生成された第2の検証データに基づいて、前記取得手段によって取得された前記第1のプログラムの改ざんを検知する第2の検知手段と、
    前記第2の検知手段によって前記第1のプログラムの改ざんが検知されなかった場合、前記第1のプログラムを、前記情報処理装置での動作環境に適合するように書き換えてインストールするインストール手段と、
    前記インストール手段によって書き換えられた前記第1のプログラムに基づいて、第1の検証データを生成する生成手段と、
    前記生成手段によって生成された前記第1の検証データに基づいて、インストール後の前記第1のプログラムの改ざんを検知する第1の検知手段と、
    を有する情報処理装置。
  2. 前記第1の検知手段によってインストール後の前記第1のプログラムの改ざんが検知されなかった場合、前記第1のプログラムを起動するよう制御する第1の制御手段を更に有する請求項1記載の情報処理装置。
  3. 前記第1の検知手段によってインストール後の前記第1のプログラムの改ざんが検知された場合、前記第1のプログラムを起動しないよう制御する第2の制御手段を更に有する請求項1又は2記載の情報処理装置。
  4. 前記第1の検知手段によってインストール後の前記第1のプログラムの改ざんが検知された場合、改ざんされた旨を通知する通知手段を更に有する請求項1乃至3何れか1項記載の情報処理装置。
  5. 前記生成手段は、前記インストール手段によって書き換えられた前記第1のプログラムに基づいて、前記第1の検証データとしてハッシュ値を生成し、
    前記第1の検知手段は、前記インストール手段によってインストールされた前記第1のプログラムに基づいて生成されたハッシュ値と、前記生成手段によって生成されたハッシュ値と、に基づいて、インストール後の前記第1のプログラムの改ざんを検知する請求項1乃至4何れか1項記載の情報処理装置。
  6. 前記生成手段は、前記インストール手段によって書き換えられた前記第1のプログラムと、第1の秘密鍵と、に基づいて、前記第1の検証データとしてデジタル署名を生成し、
    前記第1の検知手段は、前記生成手段によって生成されたデジタル署名と、前記第1の秘密鍵に対応する第1の公開鍵と、に基づいて、インストール後の前記第1のプログラムの改ざんを検知する請求項1乃至4何れか1項記載の情報処理装置。
  7. 前記第2の検知手段によって前記第1のプログラムの改ざんが検知された場合、前記インストール手段は、前記第1のプログラムをインストールしない請求項1乃至6何れか1項記載の情報処理装置。
  8. 前記第2の検証データは、第2の秘密鍵に基づいて生成されたデジタル署名であり、
    前記第2の検知手段は、前記第2の検証データであるデジタル署名と、前記第2の秘密鍵に対応する第2の公開鍵と、に基づいて、前記取得手段によって取得された前記第1のプログラムの改ざんを検知する請求項1乃至7何れか1項記載の情報処理装置。
  9. 前記情報処理装置は、複合機である請求項1乃至何れか1項記載の情報処理装置。
  10. 情報処理装置により実行される制御方法であって、
    第1のプログラムを取得する取得ステップと、
    前記第1のプログラムに基づいて生成された第2の検証データに基づいて、前記取得ステップによって取得された前記第1のプログラムの改ざんを検知する第2の検知ステップと、
    前記第2の検知ステップによって前記第1のプログラムの改ざんが検知されなかった場合、前記第1のプログラムを、前記情報処理装置での動作環境に適合するように書き換えてインストールするインストールステップと、
    前記インストールステップによって書き換えられた前記第1のプログラムに基づいて、第1の検証データを生成する生成ステップと、
    前記生成ステップによって生成された前記第1の検証データに基づいて、インストール後の前記第1のプログラムの改ざんを検知する第1の検知ステップと、
    を含む情報処理装置の制御方法。
  11. コンピュータを、請求項1乃至何れか1項記載の情報処理装置の各手段として機能させるためのプログラム。
JP2018179774A 2018-09-26 2018-09-26 情報処理装置、情報処理装置の制御方法、及び、プログラム Active JP7171339B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2018179774A JP7171339B2 (ja) 2018-09-26 2018-09-26 情報処理装置、情報処理装置の制御方法、及び、プログラム
US16/579,094 US11295005B2 (en) 2018-09-26 2019-09-23 Information processing apparatus capable of detecting alteration, method for controlling information processing apparatus, and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018179774A JP7171339B2 (ja) 2018-09-26 2018-09-26 情報処理装置、情報処理装置の制御方法、及び、プログラム

Publications (2)

Publication Number Publication Date
JP2020052597A JP2020052597A (ja) 2020-04-02
JP7171339B2 true JP7171339B2 (ja) 2022-11-15

Family

ID=69884883

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018179774A Active JP7171339B2 (ja) 2018-09-26 2018-09-26 情報処理装置、情報処理装置の制御方法、及び、プログラム

Country Status (2)

Country Link
US (1) US11295005B2 (ja)
JP (1) JP7171339B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7289641B2 (ja) * 2018-11-30 2023-06-12 キヤノン株式会社 情報処理装置、およびその制御方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008537224A (ja) 2005-04-15 2008-09-11 マイクロソフト コーポレーション 安全な起動方法およびシステム
US20150235028A1 (en) 2014-02-19 2015-08-20 Canon Kabushiki Kaisha Information processing apparatus and information processing method
US20170220426A1 (en) 2014-04-29 2017-08-03 Hewlett Packard Enterprise Development Lp Maintaining files in a retained file system
US20170262656A1 (en) 2014-11-28 2017-09-14 Thomson Licensing Method and device for providing verifying application integrity

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5944821A (en) * 1996-07-11 1999-08-31 Compaq Computer Corporation Secure software registration and integrity assessment in a computer system
US6976163B1 (en) * 2000-07-12 2005-12-13 International Business Machines Corporation Methods, systems and computer program products for rule based firmware updates utilizing certificate extensions and certificates for use therein
US20060143600A1 (en) * 2004-12-29 2006-06-29 Andrew Cottrell Secure firmware update
JP4893411B2 (ja) 2007-03-28 2012-03-07 カシオ計算機株式会社 端末装置及びプログラム
US8898477B2 (en) * 2007-11-12 2014-11-25 Gemalto Inc. System and method for secure firmware update of a secure token having a flash memory controller and a smart card
WO2009118801A1 (ja) * 2008-03-28 2009-10-01 パナソニック株式会社 ソフトウェア更新装置、ソフトウェア更新システム、無効化方法、及び無効化プログラム
JP5744004B2 (ja) * 2010-07-23 2015-07-01 パナソニック インテレクチュアル プロパティ コーポレーション オブアメリカPanasonic Intellectual Property Corporation of America Nfc通信装置およびその制御方法
US8819827B1 (en) * 2010-11-10 2014-08-26 Open Invention Network, Llc Method and apparatus of performing data executable integrity verification
US8856771B2 (en) * 2011-08-19 2014-10-07 International Business Machines Corporation Protection for unauthorized firmware and software upgrades to consumer electronic devices
US8776040B2 (en) * 2011-08-19 2014-07-08 International Business Machines Corporation Protection for unauthorized firmware and software upgrades to consumer electronic devices
JP6061632B2 (ja) * 2012-11-13 2017-01-18 キヤノン株式会社 情報処理装置
JP6317099B2 (ja) * 2013-01-08 2018-04-25 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America プログラムの正当性を確認するための確認方法及び、確認システム
US9201642B2 (en) * 2013-03-15 2015-12-01 International Business Machines Corporation Extending platform trust during program updates
JP6226709B2 (ja) * 2013-11-15 2017-11-08 キヤノン株式会社 画像形成装置及びその制御方法、並びにプログラム
CN104683409B (zh) * 2013-11-29 2019-03-01 华为终端(东莞)有限公司 终端间应用共享的方法和终端
WO2015109332A1 (en) * 2014-01-20 2015-07-23 Ian Kaiser Rolled material dispenser
JP6595822B2 (ja) * 2015-07-07 2019-10-23 キヤノン株式会社 情報処理装置及びその制御方法
US9904535B2 (en) * 2015-09-14 2018-02-27 At&T Intellectual Property I, L.P. Method and apparatus for distributing software
US10664262B2 (en) * 2017-08-29 2020-05-26 Crowdstrike, Inc. Binary suppression and modification for software upgrades

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008537224A (ja) 2005-04-15 2008-09-11 マイクロソフト コーポレーション 安全な起動方法およびシステム
US20150235028A1 (en) 2014-02-19 2015-08-20 Canon Kabushiki Kaisha Information processing apparatus and information processing method
JP2015156055A (ja) 2014-02-19 2015-08-27 キヤノン株式会社 情報処理装置、情報処理方法
US20170220426A1 (en) 2014-04-29 2017-08-03 Hewlett Packard Enterprise Development Lp Maintaining files in a retained file system
US20170262656A1 (en) 2014-11-28 2017-09-14 Thomson Licensing Method and device for providing verifying application integrity
JP2018503153A (ja) 2014-11-28 2018-02-01 トムソン ライセンシングThomson Licensing アプリケーションのインテグリティを確かめることを提供する方法及びデバイス

Also Published As

Publication number Publication date
US20200097647A1 (en) 2020-03-26
JP2020052597A (ja) 2020-04-02
US11295005B2 (en) 2022-04-05

Similar Documents

Publication Publication Date Title
US10931451B2 (en) Securely recovering a computing device
US10417427B2 (en) Method for authenticating firmware volume and system therefor
US8438377B2 (en) Information processing apparatus, method and computer-readable storage medium that encrypts and decrypts data using a value calculated from operating-state data
JP4652702B2 (ja) ハードウェア変更の許容度を有するコンピュータシステムにソフトウェアパッケージを結び付けるための詳細ハードウェア識別
US8254568B2 (en) Secure booting a computing device
US8341423B2 (en) Machine, machine management apparatus, system, and method, and recording medium
JP2004265422A (ja) ハードウェア変更の許容度を有するコンピュータシステムにソフトウェアパッケージを結び付けるためのコンパクトハードウェア識別
US8887288B2 (en) Method of detecting software falsification, apparatus configured to detect software falsification, and computer-readable storage medium
JP2006216048A (ja) ファームウェアの必要なメモリ容量を減らすと共に、ファームウェアに安全なアップデート及びストレージ領域を提供するシステム及び方法
WO2008085367A1 (en) Trusting an unverified code image in a computing device
US20170255775A1 (en) Software verification systems with multiple verification paths
JP2019212114A (ja) 情報処理装置、その制御方法およびプログラム
CN112835628A (zh) 一种服务器操作系统引导方法、装置、设备及介质
JP2023129643A (ja) 情報処理装置、情報処理方法およびプログラム
JP7171339B2 (ja) 情報処理装置、情報処理装置の制御方法、及び、プログラム
JP2009301429A (ja) ソフトウェア改ざん検知方法、機器及び画像処理装置
JP2008112297A (ja) 電子機器,プログラム,および記録媒体
EP3547194B1 (en) Apparatus and method for secure boot
CN108595981B (zh) 加密安卓系统的方法
JP7182966B2 (ja) 情報処理装置、情報処理装置の起動方法、及びプログラム
JP2008102678A (ja) 電子機器
JP2021114173A (ja) 情報処理装置、情報処理装置の処理方法およびプログラム
US20220253521A1 (en) Image forming apparatus capable of executing application programs, control method therefor, and storage medium
US20220309145A1 (en) Information processing apparatus, verification method of program, computer readable medium and image processing apparatus
JP7341376B2 (ja) 情報処理装置、情報処理方法、及び、情報処理プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210915

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220413

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220510

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220707

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20221102

R151 Written notification of patent or utility model registration

Ref document number: 7171339

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151