JP2005148934A - 情報処理装置、プログラム起動方法、プログラム起動プログラム及び記録媒体 - Google Patents

情報処理装置、プログラム起動方法、プログラム起動プログラム及び記録媒体 Download PDF

Info

Publication number
JP2005148934A
JP2005148934A JP2003382761A JP2003382761A JP2005148934A JP 2005148934 A JP2005148934 A JP 2005148934A JP 2003382761 A JP2003382761 A JP 2003382761A JP 2003382761 A JP2003382761 A JP 2003382761A JP 2005148934 A JP2005148934 A JP 2005148934A
Authority
JP
Japan
Prior art keywords
program
signature data
application
information processing
kernel
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.)
Pending
Application number
JP2003382761A
Other languages
English (en)
Inventor
Kiwamu Okabe
究 岡部
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.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
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 Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2003382761A priority Critical patent/JP2005148934A/ja
Publication of JP2005148934A publication Critical patent/JP2005148934A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】 、不正なプログラムが実行されるのを防止することができる情報処理装置、プログラム起動方法、プログラム起動プログラム及び記録媒体の提供を目的とする。
【解決手段】 プログラムを実行する情報処理装置であって、前記プログラムを起動する前に、前記プログラムを構成する情報に基づいて第一の署名データを生成し(S114)、前記第一の署名データと前記プログラムに対応して保存されている第二の署名データとを比較することにより前記プログラムの正当性を判断し(S117)、正当であることが確認された場合に前記プログラムを起動することにより上記課題を解決する。
【選択図】 図12

Description

本発明は、情報処理装置、プログラム起動方法、プログラム起動プログラム及び記録媒体に関し、特に不正なプログラムの起動を防止するための情報処理装置、プログラム起動方法、プログラム起動プログラム及び記録媒体に関する。
コンピュータ等、ソフトウェアを処理することによって様々な機能を実現する情報処理装置は、例えば、図1に示すようなソフトウェア構成を有している。
図1は、各種ソフトウェアを動作させる情報処理装置における従来のソフトウェア構成例を示す図である。図1に示される情報処理装置500は、システムBIOS501と、ブートローダ502と、カーネル503と、起動プロセス504と、アプリケーション505a、505b及び505c等の各種アプリケーション(以下、総称する場合「アプリケーション505」という。)とから構成されている。
システムBIOS501は、情報処理装置500の起動時に最初に起動されるプログラムであり、ブートローダ502を起動する。ブートローダ502は、情報処理装置500にインストールされている各種OS(Operating System)を使い分けるために、その起動時にカーネル503等、指定されたカーネルを起動するプログラムである。
カーネル503は、メモリ管理やタスク管理等OSの基本機能を実現するプログラムであり、その起動時に起動プロセス504を起動する。起動プロセス504は、各種アプリケーションを起動するためのプロセスである。
アプリケーション505a、505b及び505cは、カーネル上でプロセスとして動作し、ユーザ、又は情報処理装置500内のその他の機能に対して各種のサービスを提供するためのプログラムである。
図1のようなソフトウェア構成を有する情報処理装置500においては、その起動時に図2に示されるような処理が実行される。図2は、情報処理装置における従来の起動処理を説明するためのシーケンス図である。
情報処理装置500の電源が入れられると、システムBIOS501が起動される(S901)。システムBIOS501は、必要な初期化及び診断処理等を実行し(S902)、異常がないことを確認するとブートローダ502を起動する(S903)。
ブートローダ502は、やはり必要な初期化及び診断処理等を実行し(S904)、異常がないことを確認するとカーネル503を起動する(S905)。カーネル503は、デバイスドライバの初期化等を実行し(S906)、起動プロセス504を起動する(S907)。
起動プロセス504は、カーネル上に常駐し、必要に応じてアプリケーション505a等、各種アプリケーションを起動する。すなわち、その後にカーネル上で動作するアプリケーションは、全て起動プロセス504によって起動される。
しかしながら、従来の起動処理においては、プログラムを起動する側は、起動対象となるプログラムの正当性の確認等を行っていないため、起動対象となるプログラムが不正に書き換えられている場合には、不正なプログラムがそのまま起動されるという危険性があった。
例えば、起動プロセス504が不正に書き換えられた場合を想定する。図3は、起動プロセスが不正に書き換えられた場合のソフトウェア構成例を示す図である。図3中、図1と同一部分には同一符号を付し、その説明は省略する。
図3の情報処理装置500においては、本来の起動プロセス504が、不正な起動プロセス504bによって同じファイル名で書き換えられている。また、不正な起動プロセス504bによって起動され、例えば、システムファイルの破壊等の不正な処理を実行する不正なアプリケーション506が追加されている。
図4は、起動プロセスが不正に書き換えられた場合に想定される起動処理を説明するためのシーケンス図である。図4中、図2におけるステップと同一ステップには同一符号を付している。すなわち、図4において、カーネル503が起動され、デバイスドライバの初期化処理が実行されるまで(S906)の処理は図2と同様に実行される。
その後、カーネル503は起動プロセス504を起動することになるが、起動プロセス504は、不正な起動プロセス504bに同じファイル名で書き換えられているため、カーネル503は、不正な起動プロセス504bをそのまま起動してしまう(S511)。
その結果、不正な起動プロセス504bによって不正なアプリケーション506が起動され(S512)、情報処理装置500のシステムファイルは、不正なアプリケーション506によって破壊されてしまうという事態が発生しうる。
本発明は、上記の点に鑑みてなされたものであって、不正なプログラムが実行されるのを防止することができる情報処理装置、プログラム起動方法、プログラム起動プログラム及び記録媒体の提供を目的とする。
そこで上記課題を解決するため、本発明は、プログラムを実行する情報処理装置であって、前記プログラムを起動する前に、前記プログラムを構成する情報に基づいて第一の署名データを生成し、前記第一の署名データと前記プログラムに対応して保存されている第二の署名データとを比較することにより前記プログラムの正当性を判断し、正当であることが確認された場合に前記プログラムを起動することを特徴とする。
このような情報処理装置では、プログラムを起動する前に当該プログラムの正当性を確認することができるため、不正なプログラムが実行されることを防止することができる。
また、上記課題を解決するため、本発明は、上記情報処理装置におけるプログラム起動方法、前記プログラム起動方法を前記情報処理装置に実行させるためのプログラム起動プログラム、又は前記プログラム起動プログラムを記録した記録媒体としてもよい。
本発明によれば、不正なプログラムが実行されるのを防止することができる情報処理装置、プログラム起動方法、プログラム起動プログラム及び記録媒体を提供することができる。
以下、図面に基づいて本発明の実施の形態を説明する。本実施の形態においては、プログラムを実行する情報処理装置の具体例として、コピー機等の画像形成装置を用いて説明する。近年の画像形成装置には、各種アプリケーションが実装され、そのアプリケーションプログラムを処理することによって各種の機能を実現するものが提供されている。
図5は、本発明の実施の形態における画像形成装置のコントローラボードの構成例を示す図である。図5に示されるように、画像形成装置10のコントローラボード100は、CPU101、メモリ102、チップセット103、BIOSフラッシュロム104、ASIC(Application Specific Integrated Circuit)105、起動用SD(Secure Digital memory card)スロット106、及びユーザアプリケーション用SDスロット107等から構成されている。
CPU101は、画像形成装置10に実装されたプログラムを処理することにより当該プログラムに係る機能を実現するための部品である。メモリ102は、プログラムの実行時に当該プログラム等を格納するための記憶領域である。チップセット103は、CPU101、メモリ102、BIOSフラッシュロム104及びASIC105等を相互に接続すると共に、これらの部品を制御するためのコントローラボード100の中枢部品である。
BIOSフラッシュロム104は、後述されるようにシステムBIOSが書き込まれているROMである。ASIC105は、画像処理用のハードウェア要素を有する画像処理用途向けのICである。
起動用SDスロット106及びユーザアプリケーション用SDスロット107は、SDカードを装着するためのスロットである。起動用SDスロット106は、システムの起動に必要なプログラム等が書き込まれたSDカード(以下、「起動用SDカード108」という。)が装着されるスロットであり、ユーザアプリケーション用SDスロット107は、画像形成装置10のユーザが必要に応じてアプリケーションを追加する際に当該アプリケーションが書き込まれたSDカード(以下、「ユーザアプリケーション用SDカード109」という。)を装着するためのスロットである。したがって、ユーザアプリケーション用SDスロット107においては、起動用SDスロット106に比べて頻繁にSDカードが差し替えられる。
図6は、本発明の実施の形態における画像形成装置のソフトウェア構成例を示す図である。図6に示されるように、画像形成装置10には、システムBIOS11と、ブートロー12と、カーネル13と、起動プロセス14と、アプリケーション15a、15b及び15c等の各種アプリケーション(以下、総称する場合「アプリケーション15」という。)とが実装されている。
システムBIOS11は、画像形成装置10の起動時に最初に起動されるプログラムであり、ブートローダ12を起動する。ブートローダ12は、画像形成装置10にインストールされている各種OS(Operating System)を使い分けるために、その起動時にカーネル13等、指定されたカーネルを起動するプログラムである。なお、本実施の形態におけるブートローダ12は、公開鍵121を有している。公開鍵121は、ブートローダ12が、カーネル13及び起動プロセス14等の正当性を確認するために用いる暗号鍵である。
カーネル13は、メモリ管理やタスク管理等OSの基本機能を実現するプログラムであり、その起動時に起動プロセス14を起動する。起動プロセス14は、各種アプリケーション15を起動するためのプログラムである。
アプリケーション15a、15b及び15cは、カーネル13上でプロセスとして動作し、ユーザ、又は画像形成装置10内のその他の機能に対して各種のサービスを提供するためのプログラムである。
画像形成装置10にはまた、カーネル13、起動プロセス14、及びアプリケーション15のそれぞれの正当性を保証するための電子的な署名情報(電子署名)が記録されたファイルとしてカーネル電子署名ファイル131と、起動プロセス電子署名ファイル141と、アプリケーション電子署名ファイル151a、151b及び151c(以下、総称する場合「アプリケーション電子署名ファイル151」という。)とが保存されている。
図7は、画像形成装置における各種ソフトウェア等の配置位置を示す図である。図7に示されるように、システムBIOS11は、BIOSフラッシュロム104に格納されている。また、ブートローダ12、カーネル13、カーネル電子署名ファイル131、起動プロセス14、及び起動プロセス電子署名ファイル141は、起動用SDスロット106に装着された起動用SDカード108に格納されている。更に、アプリケーション15及びアプリケーション電子署名ファイル151は、ユーザアプリケーション用SDスロット107に装着されたユーザアプリケーション用SDカード109に格納されている。
なお、図7のようにブートローダ12を起動用SDスロット106に配置した場合は、ブートローダ12が有している公開鍵121が、悪意のあるユーザによって容易に参照及び改竄されてしまう可能性がある。SDカードは簡単に取り外すことができ、その内容は他のPC(Personal Computer)等において容易に参照及び書き換えが可能だからである。したがって、ブートローダ12をBIOSフラッシュロム104に配置するようにしてもよい。
図8は、ブートローダをBIOSフラッシュロムに配置した例を示す図である。BIOSフラッシュロム104の内容を参照するのは、SDカードの内容を参照する場合に比べ困難であるため、図8のように、ブートローダ12をBIOSフラッシュロム104に配置することによって、公開鍵121の改竄等の危険性を低減させることができる。
以下、画像形成装置10の処理手順について説明する。図9は、画像形成装置の起動処理を説明するためのシーケンス図である。
画像形成装置10の電源が入れられると、システムBIOS11が起動される(S11)。システムBIOS11は、必要な初期化及び診断処理等を実行し(S12)、異常がないことを確認するとブートローダ12を起動する(S13)。
ブートローダ12は、やはり必要な初期化及び診断処理等を実行し(S14)、異常がないことを確認すると、公開鍵121を使ってカーネル13及び起動プロセス14の正当性をチェックする(S15、S16)。なお、公開鍵121を使った正当性のチェックの詳細については後述する。
カーネル13及び起動プロセス14が正当であることが確認できた場合は、ブートローダ12は、カーネル13を起動する(S17)。なお、ブートローダ12は、カーネル13を起動する際に、引数として公開鍵121をカーネル13に引き渡す。したがって、公開鍵121が、カーネル13によって保持される。
カーネル13は、デバイスドライバの初期化等を実行し(S18)、起動プロセス14を起動する(S19)。
起動プロセス14は、カーネル13が保持している公開鍵121を、例えば、カーネル13のシステムコールを呼び出すことにより取得し、保持しておく(S20)。その後も起動プロセス14はカーネル上に常駐し、アプリケーション15の起動が要求された際に、公開鍵121を使ってアプリケーション15の正当性をチェックし(S21)、正当であることが確認されたアプリケーション15のみを起動する(S22)。
上述における公開鍵121の流れに焦点を当て、図10を用いて説明する。図10は、公開鍵の流れを説明するための図である。システムBIOS11は、公開鍵121を有していないため、システムBIOS11がブートローダ12を起動する際には、公開鍵121は移動しない(S31)。ブートローダ12は、自らが有している公開鍵121を使って、カーネル13及び起動プロセス14の正当性を確認し、カーネル13を起動する。この際に引数として公開鍵121がカーネル13に渡され、公開鍵121はカーネル13によって保持される(S32)。
カーネル13が、起動プロセス14を起動すると(S33)、起動プロセス14は、カーネル13のシステムコールを呼び出すことにより、カーネル13に保持されている公開鍵121を取得する(S34)。その後、起動プロセス14は、アプリケーション15を起動する際に、公開鍵121を使ってアプリケーション15の正当性を確認する(S35)。
上述したように、本実施の形態における画像形成装置10によれば、カーネル13、起動プロセス14及びアプリケーション15については正当性が確認された場合のみ起動されるため、これらが不正に改竄されている場合はその旨を検知することができ、不正なプログラムが実行されることによる予期せぬ障害の発生を未然に防止することができる。
なお、上述において、システムBIOS11ではなくブートローダ12がカーネル13及び起動プロセス14の正当性を確認しているのは、ブートローダ12でないと起動すべきカーネル13を判断することができないからであり、また、起動すべきカーネル13が判断できないと、カーネル13上で起動される起動プロセス14を判断することができないからである。
また、カーネル13ではなく、起動プロセス14がアプリケーション15の正当性を確認しているのは、正当性を確認するための機能(後述する認証ルーチン195)に要する実装が大きいことによる。すなわち、カーネル13をなるべく軽い実装にしておくためであり、アプリケーション15の起動に必ず関与する起動プロセス14に当該実装を行うことにより、カーネル13は、軽い実装のままアプリケーション15の正当性を可能としているのである。
次に、カーネル13、起動プロセス14及びアプリケーション15等の正当性を確認するための認証処理(ステップS15、S16及びS22)の詳細について説明する。なお、認証処理は全て共通的な処理であるため、以下においては、認証する側を認証チェックプログラムと、認証される側を対象プログラムと抽象化して説明することとする。
すなわち、ステップS15においてはブートローダ12が認証チェックプログラムに該当し、カーネル13が対象プログラムに該当する。また、ステップS16においてはブートローダ12が認証チェックプログラムに該当し、起動プロセス14が対象プログラムに該当する。更に、ステップS21においては起動プロセス14が認証チェックプログラムに該当し、アプリケーション15が対象プログラムに該当する。
また、認証処理は対象ファイルの形式によって多少異なったものとなるため、以下においては、対象ファイルがELF形式による場合とgzip圧縮されている場合とに分けて認証処理を説明する。
図11は、対象プログラムがELF形式によって生成されている場合の認証チェックプログラムによる認証処理の概要を説明するための図である。
図11において、SDカード110は、起動用SDカード108及びユーザアプリケーション用SDカード109の両者を抽象化して表現するものであり、elfファイル160a及びelf電子署名ファイル170aを格納している。
elfファイル160aは、ELF形式によって生成されている対象ファイルであり、elf実行形式ファイルヘッダ161a、テキスト領域162a、データ領域163a、BSS領域164a及びシンボル領域165a等から構成されている。elf実行形式ファイルヘッダ161aは、ヘッダ情報が格納されている領域である。テキスト領域162aとデータ領域163aとはプログラムの本体である。BSS領域164aは、0で埋められた領域であり、シンボル領域165aは、デバッグ情報が格納された領域である。
elf電子署名ファイル170aは、elfファイル160aに対する電子署名であるelf電子署名171aが暗号化されて格納されている電子署名ファイルである。すなわちelf電子署名ファイル170aは、カーネル電子署名ファイル131、起動プロセス電子署名ファイル141、又はアプリケーション電子署名ファイル151等を抽象化して表現したものである。
認証チェックプログラムは、まず、elfファイル160aのうちelf実行形式ファイルヘッダ161aを除く領域をメモリ102上に展開し(S101)、メモリ102上に展開したテキスト領域162aとデータ領域163aとを、例えばメッセージダイジエストによって数値化することにより電子署名166aを生成する(S102)。
続いてelf電子署名ファイル170aを公開鍵121によって復号化し、暗号化されていたelf電子署名171aをelf電子署名172aとしてメモリ102上に展開する(S103)。
最後に、電子署名166aとelf電子署名172aとの値を比較し、両者の値が一致した場合はelfファイル160aを正当なファイルであると判断し、両者の値が一致しない場合はelfファイル160aを不正なファイルであると判断する。
図11で図示した処理を図12によって更に詳細に説明する。図12は、対象プログラムがELF形式によって生成されている場合の認証チェックプログラムによる認証処理を説明するためのフローチャートである。
まず、認証チェックプログラムは、公開鍵121を取得する(S111)。elfファイル160aの存在を確認し(S112)、elfファイル160aが存在する場合はelfファイル160aをメモリ102上に展開する(S113)。更に、メモリ102上に展開したelfファイル160aのテキスト領域162aとデータ領域163aとに基づいて電子署名166a(MD1)を生成する(S114)。
続いて、elf電子署名ファイル170aの存在を確認し(S115)、elf電子署名ファイル170aが存在する場合はelf電子署名ファイル170aを公開鍵121で復号化し、elf電子署名172a(MD2)をメモリ102上に展開する。
最後に、電子署名166aとelf電子署名172aとの値を比較し(S117)、両者の値が同一の場合はelfファイル160aを正当なファイルであると判断し(S118)、メモリ102に展開されているelfファイル160aを起動する(S119)。
このように、elfファイル160の電子署名を生成する際に、SDカード10に保存されているelfファイル160にアクセスするのではなく、elfファイル160を起動するためにメモリ102上に展開されている情報に基づいてelfファイル160の電子署名を生成することで、一般にアクセス速度が遅いSDカード10に対するアクセス回数を低減することができ認証処理の高速化を図ることができる。
なお、電子署名166aとelf電子署名172aとの値が異なる場合や、elfファイル160a又はelf電子署名ファイル170aが存在しない場合は、elfファイル160aの認証に失敗したものと判断し(S120)、起動処理を停止する(S121)。
次に、対象ファイルがgzip圧縮されている場合について説明する。図13は、対象プログラムがgzip圧縮されている場合の認証チェックプログラムによる認証処理の概要を説明するための図である。図13中、図11と同一部分には同一符号を付し、その説明は省略する。
図13において、gzip圧縮ファイル160bは、gzip圧縮されている対象ファイルであり、gzipファイルヘッダ161b及び圧縮データ162b等から構成されている。gzipファイルヘッダ161bは、ヘッダ情報が格納されている領域である。圧縮データ162bは圧縮されたプログラムの本体である。
gzip電子署名ファイル170bは、gzip圧縮ファイル160bに対する電子署名であるgzip電子署名161bが暗号化されて格納されている電子署名ファイルである。すなわちgzip電子署名ファイル170bは、カーネル電子署名ファイル131、起動プロセス電子署名ファイル141、又はアプリケーション電子署名ファイル151等を抽象化して表現したものである。
認証チェックプログラムは、まず、gzip圧縮ファイル160bの圧縮データ162bをメモリ102上に解凍し(S201)、解凍した解凍済みデータ163bを、例えばメッセージダイジエストによって数値化することにより電子署名164bを生成する(S202)。
続いて、gzip電子署名ファイル170bを公開鍵121によって復号化し、暗号化されていたgzip電子署名171bをgzip電子署名172bとしてメモリ102上に展開する(S203)。
最後に、電子署名164bとgzip電子署名172bとの値を比較し、両者の値が一致した場合はgzip圧縮ファイル160bを正当なファイルであると判断し、両者の値が一致しない場合はgzip圧縮ファイル160bを不正なファイルであると判断する。
図13で図示した処理を図14によって更に詳細に説明する。図14は、対象プログラムがgzip圧縮されている場合の認証チェックプログラムによる認証処理を説明するためのフローチャートである。
まず、認証チェックプログラムは、公開鍵121を取得する(S211)。gzip圧縮ファイル160bの存在を確認し(S212)、gzip圧縮ファイル160bが存在する場合はgzip圧縮ファイル160bをメモリ102上に解凍する(S213)。更に、解凍した解凍済みデータ163bに基づいて電子署名163b(MD1)を生成する(S214)。
続いて、gzip電子署名ファイル170bの存在を確認し(S215)、gzip電子署名ファイル170bが存在する場合はgzip電子署名ファイル170bを公開鍵121で復号化し、gzip電子署名172b(MD2)をメモリ102上に展開する。
最後に、電子署名164bとgzip電子署名172bとの値を比較し(S217)、両者の値が同一の場合はgzip圧縮ファイル160bを正当なファイルであると判断し(S218)、メモリ上に展開されている解凍済みデータ163bを起動する(S219)。
なお、電子署名164bとgzip電子署名172bとの値が異なる場合や、gzip圧縮ファイル160b又はgzip電子署名ファイル170bが存在しない場合は、gzip圧縮ファイル160bの認証に失敗したものと判断し(S220)、起動処理を停止する(S221)。
ところで、上述した方法では、SDカード10は認証の対象とされていないため、SDカード10の内容が他のSDカードに不正にコピーされ、コピーされた他のSDカードが利用された場合に、対象ファイルが不正にコピーされたものであることを検知することができない。そこで、次に、SDカードについても認証の対象とすることにより、より高いセキュリティの確保を可能とした例について説明する。
図15は、SDカードも認証の対象とする場合の認証チェックプログラムによる認証処理の概要を説明するための図である。図15中、図13と同一部分には同一符号を付し、その説明は省略する。
図15と図13とを比較すると、図15のSDカード10には、SDID180が更に格納されている。SDID180は、各SDカードに一意に割り当てられたIDである。
認証チェックプログラムは、まず、gzip圧縮ファイル160bの圧縮データ162bをメモリ102上に解凍すると共に(S301)SDID180をメモリ102上に展開し(S302)、解凍した解凍済みデータ163bとSDID180とを、例えばメッセージダイジエストによって数値化することにより電子署名164bを生成する(S303)。
続いて、gzip電子署名ファイル170bを公開鍵121によって復号化し、暗号化されていたgzip電子署名171bをgzip電子署名172bとしてメモリ102上に展開する(S304)。
最後に、電子署名164bとgzip電子署名172bとの値を比較し、両者の値が一致した場合はgzip圧縮ファイル160bを正当なファイルであると判断し、両者の値が一致しない場合はgzip圧縮ファイル160bを不正なファイルであると判断する。
図15で図示した処理を図16によって更に詳細に説明する。図16は、SDカードも認証の対象とする場合の認証チェックプログラムによる認証処理を説明するためのフローチャートである。
まず、認証チェックプログラムは、公開鍵121を取得する(S311)。gzip圧縮ファイル160bの存在を確認し(S312)、gzip圧縮ファイル160bが存在する場合はgzip圧縮ファイル160bをメモリ102上に解凍する(S313)。更に、SDID180をメモリ102上に展開し(S314)、解凍済みデータ163bとSDIS102とに基づいて電子署名163b(MD1)を生成する(S315)。
続いて、gzip電子署名ファイル170bの存在を確認し(S316)、gzip電子署名ファイル170bが存在する場合はgzip電子署名ファイル170bを公開鍵121で復号化し、gzip電子署名172bをメモリ102上に展開する(S317)。
最後に、電子署名164bとgzip電子署名172bとの値を比較し(S318)、両者の値が同一の場合はgzip圧縮ファイル160bを正当なファイルであると判断し(S319)、メモリ上に展開されている解凍済みデータ163bを起動する(S320)。
なお、電子署名164bとgzip電子署名172bとの値が異なる場合や、gzip圧縮ファイル160b又はgzip電子署名ファイル170bが存在しない場合は、gzip圧縮ファイル160bの認証に失敗したものと判断し(S321)、起動処理を停止する(S322)。
図15及び図16に示した方法では、各SDカードに一意な値であるSDID180を用いて電子署名123を生成するため、電子署名123の値はSDカードごとに異なったものとなる。したがって、対象ファイルが他のSDカードに不正にコピーされた場合は、電子署名123とgzip電子署名171bとの値が一致せず、不正にコピーされた旨を検知することができる。
なお、図15及び図16においては、対象ファイルがgzip圧縮されている場合について説明しているが、対象ファイルがELF形式による場合も、SDID180を用いて電子署名を生成するようにすることで、同様の効果を得ることができる。
更に、上述した認証処理を実現するための認証チェックプログラムの詳細について説明する。図17は、認証チェックプログラムのオブジェクト図である。図17のオブジェクト図は、対象ファイルがELF形式による場合であってもgzip圧縮されている場合であっても共通であるため、更に抽象化して説明する。
図17に示されるように、認証チェックプログラム190は、電子署名比較メソッド、ファイル読み込みメソッド及びプログラム起動メソッド等を有しており、更に認証チェックルーチン195を内包している。
電子署名比較メソッドは、対象ファイル160から生成した電子署名と、予め電子署名ファイルに保存されている電子署名との値を比較するためのメソッドである。ファイル読み込みメソッドは、対象ファイル160をメモリ102上に展開するためのメソッドである。プログラム起動メソッドは、認証された対象ファイル160を起動するためのメソッドである。
認証チェックルーチン195は、電子署名生成メソッドと電子署名復号化メソッドとを有したライブラリである。電子署名生成メソッドは対象ファイルから電子署名を生成するためのメソッドであり、電子署名復号化メソッドは、公開鍵121を用いて電子署名ファイルを復号化するためのメソッドである。
図18は、認証処理の際の認証チェックプログラム内の動作を説明するためのシーケンス図である。
認証チェックプログラム106は、ファイル読み込みメソッドを呼び出すことによりSDカード10に格納されている対象ファイル160をメモリ102上に展開する(S401)。認証チェックプログラム190が、認証チェックルーチン195の電子署名生成メソッドを呼び出すと(S402)、認証チェックルーチン195は、メモリ102上に展開された対象ファイル160に基づいて電子署名を生成し、生成した電子署名を認証チェックプログラム190に対して返却する(S403)。
続いて、認証チェックプログラム190が、認証チェックルーチン195の電子署名復号化メソッドを呼び出すと(S404)、認証チェックルーチン195は、暗号化されている電子署名ファイルを公開鍵121によって復号化し、復号化された電子署名を認証チェックプログラム190に対して返却する(S405)。
認証チェックプログラム180は、二つの電子署名の値を比較し(S406)、両者が一致した場合は、対象ファイル190を起動する(S407)。
なお、上述(図7等)においては、ブートローダ12が公開鍵121を有している例について説明したが、公開鍵121は、必ずしもブートローダ121が有している必要はなく、例えば、システムBIOS11に持たせるようにしてもよい。以下、システムBIOS11が公開鍵を有している場合について説明する。
図19は、システムBIOSに公開鍵を持たせた場合の画像形成装置のソフトウェア構成例を示す図である。図19中、図7と同一部分には同一符号を付し、その説明は省略する。図19と図7とを比較すると、図19においてはブートローダ12ではなくシステムBIOS11が公開鍵121を有している。更に、ブートローダ12に対する電子署名が格納されているブートローダ電子署名ファイル122が、起動用SDカード108に保存されている。
以下、図19の画像形成装置10の処理手順について説明する。図20は、システムBIOSに公開鍵を持たせた場合の画像形成装置の起動処理を説明するためのシーケンス図である。
画像形成装置10の電源が入れられると、システムBIOS11が起動される(S511)。システムBIOS11は、必要な初期化及び診断処理等を実行し(S512)、異常がないことを確認すると、公開鍵121とブートローダ電子署名ファイル122とに基づいてブートローダ12の正当性をチェックする。ブートローダ12の正当性が確認できた場合は、システムBIOS11は、ブートローダ12を起動する(S514)。
ブートローダ12は、ソフトウェア割り込みを利用してシステムBIOS11より公開鍵121を取得し保持しておく(S515)。ブートローダ12は更に、必要な初期化及び診断処理等を実行し(S516)、異常がないことを確認すると、取得した公開鍵121を使ってカーネル13及び起動プロセス14の正当性をチェックする(S517、S518)。
カーネル13及び起動プロセス14の正当性が確認できた場合は、ブートローダ12は、カーネル13を起動する(S519)。なお、ブートローダ12は、カーネル13を起動する際に、引数として公開鍵121をカーネル13に引き渡す。したがって、公開鍵121が、カーネル13によって保持される。
以降の処理は、図9におけるステップS18以降の処理と同じであるため説明を省略する。
なお、上述における公開鍵121の流れに焦点を当て、図21を用いて説明する。図21は、システムBIOSに公開鍵を持たせた場合の公開鍵の流れを説明するための図である。システムBIOS11によって起動されたブートローダ12は、ソフトウェア割り込みによってシステムBIOS11が有している公開鍵121を取得する(S531)。
ブートローダ12は、取得した公開鍵121を使って、カーネル13及び起動プロセス14の正当性を確認し、カーネル13を起動する。この際に引数として公開鍵121がカーネル13に渡され、公開鍵121はカーネル13によって保持される(S532)。
カーネル13が、起動プロセス14を起動すると(S533)、起動プロセス14は、カーネル13のシステムコールを呼び出すことにより、カーネル13に保持されている公開鍵121を取得する(S534)。その後、起動プロセス14は、アプリケーション15を起動する際に、公開鍵121を使ってアプリケーション15の正当性を確認する(S535)。
このように、システムBIOS11に公開鍵を持たせるようにすることによって、ブートローダ12の正当性のチェックも可能となり、より高度なセキュリティの確保が可能となる。
なお、上述における画像形成装置10は、例えば、図22及び図23に示されるような機能構成又はハードウェア構成を有する多機能型の融合機を用いても良い。
図22は、融合機の一例の構成図を示す。融合機1000は、プロッタ1011と,スキャナ1012と,ファクシミリなどのその他のハードウェアリソース1013と,ソフトウェア群1020と,融合機起動部1050とを有する。また、ソフトウェア群1020はアプリケーション1030とプラットフォーム1040とを有する。
アプリケーション1030は、プリンタ,コピー,ファクシミリおよびスキャナなどの画像形成処理にかかるユーザサービスにそれぞれ固有の処理を行うものである。
アプリケーション1030は、ページ記述言語(PDL,PCL)およびポストスクリプト(PS)を有するプリンタ用のアプリケーションであるプリンタアプリ1031と,コピー用のアプリケーションであるコピーアプリ1032と,ファクシミリ用アプリケーションであるファックスアプリ1033と,スキャナ用アプリケーションであるスキャナアプリ1034と,ネットワークファイル用アプリケーションであるネットファイルアプリ1035とを有している。
また、プラットフォーム1040は、アプリケーション1030からの処理要求を解釈してハードウェア資源の獲得要求を発生するコントロールサービスと、1つ以上のハードウェア資源の管理を行ってコントロールサービスからの獲得要求を調停するシステムリソースマネージャ(以下、SRMという)1043と、オペレーティングシステム(以下、OSという)1041とを有するように構成されている。
コントロールサービスは、システムコントロールサービス(以下、SCSという)1042,エンジンコントロールサービス(以下、ECSという)1044,メモリコントロールサービス(以下、MCSという)1045,オペレーションパネルコントロールサービス(以下、OCSという)1046,ファックスコントロールサービス(以下、FCSという)1047,ネットワークコントロールサービス(以下、NCSという)1048など、一つ以上のサービスモジュールを有するように構成されている。
なお、プラットフォーム1040は予め定義されている関数によりアプリケーション1030からの処理要求を受信可能とするアプリケーションプログラムインタフェース(以下、APIという)を有するように構成されている。OS1041は、ユニックス(UNIX(登録商標))等であって、アプリケーション1030およびプラットフォーム1040の各ソフトウェアをプロセスとして並列実行する。
SRM1043のプロセスは、SCS1042と共にシステムの制御およびハードウェア資源の管理を行うものである。例えばSRM1043のプロセスは、エンジン,メモリ,HDDファイル,ホストI/O(セントロI/F,ネットワークI/F,IEEE1394 I/F,RS232C I/Fなど)のハードウェア資源を利用する上位層からの要求に従って調停を行い、実行制御する。
具体的に、SRM1043は要求されたハードウェア資源が利用可能であるか(他の要求により利用されていないかどうか)を判定し、利用可能であれば要求されたハードウェア資源が利用可能である旨を上位層に通知する。また、SRM1043は上位層からの要求に対してハードウェア資源を利用するためのスケジューリングを行い、要求内容(例えば、プリンタエンジンによる紙搬送と作像動作,メモリ確保,ファイル生成など)を直接実施している。
SCS1042のプロセスは、アプリケーション管理,操作部制御,システム画面表示,LED表示,ハードウェア資源管理,割り込みアプリケーション制御などの処理を行う。ECS1044のプロセスは、プロッタ1011,スキャナ1012,その他のハードウェアリソース1013などのエンジンの制御を行う。
MCS1045のプロセスは、画像メモリの取得および解放,HDDの利用,画像データの圧縮および伸張などのメモリ制御を行う。OCS1046のプロセスは、オペレータと本体制御との間の情報伝達手段となるオペレーションパネル(操作パネル)の制御を行う。
FCS1047のプロセスは、システムコントローラの各アプリケーション層からPSTNまたはISDN網を利用したファクシミリ送受信,バックアップ用のメモリで管理されている各種ファクシミリデータの登録/引用,ファクシミリ読み取り,ファクシミリ受信印刷,融合送受信を行うためのAPIを提供する。
NCS1048のプロセスは、ネットワークI/Oを必要とするアプリケーションに対して共通に利用できるサービスを提供するものであり、ネットワーク側から各プロトコルによって受信したデータを各アプリケーションに振り分けたり、各アプリケーションからのデータをネットワーク側に送信する際の仲介を行う。
例えばNCS1048は、ネットワークを介して接続されるネットワーク機器とのデータ通信をhttpd(HyperText Transfer Protocol Daemon)により、HTTP(HyperText Transfer Protocol)で制御する。
融合機起動部1050は、融合機1000の電源投入時に最初に実行され、プラットフォーム1040やアプリケーション1030を起動するものである。
融合機1000は、各アプリケーションで共通的に必要な処理をプラットフォーム1040で一元的に処理することができる。次に、融合機1000のハードウェア構成について説明する。
図23は、融合機の一例のハードウェア構成図を示す。図23の融合機1000は、コントローラ1060,オペレーションパネル1080,FCU1081,エンジン部1082を有する。
コントローラ1060は、CPU1061,システムメモリ1062,ノースブリッジ(NB)1063,サウスブリッジ(SB)1064,ASIC1066,ローカルメモリ1067,HDD1068、ネットワークインタフェースカード(NIC)1069,USBデバイス1070,IEEE1394デバイス1071,セントロニクス1072を有する。
オペレーションパネル1080は、コントローラ1060のASIC1066に接続されている。また、FCU1081およびエンジン部1082は、コントローラ1060のASIC1066にPCIバス1083で接続されている。
コントローラ1060は、ASIC1066にローカルメモリ1067,HDD1068などが接続されると共に、CPU1061とASIC1066とがCPUチップセットのNB1063を介して接続されている。コントローラ1060は、NB1063を介してCPU1061とASIC1066とを接続することにより、CPU1061のインタフェースが公開されていない場合に対応する。なお、ASIC1066とNB1063とはAGP(Accelerated Graphics Port )1065を介して接続されている。
このように、図22のアプリケーション1030やプラットフォーム1040を形成する一つ以上のプロセスを実行制御するため、ASIC1066とNB1063とを低速のPCIバスでなくAGP1065を介して接続することで、パフォーマンスの低下を防いでいる。
CPU1061は、融合機1000の全体制御を行うものである。CPU1061は、SCS1042,SRM1043,ECS1044,MCS1045,OCS1046,FCS1047,NCS1048をOS1041上に起動して実行させると共に、アプリケーション1030を形成するプリンタアプリ1031,コピーアプリ1032,ファックスアプリ1033,スキャナアプリ1034,ネットファイルアプリ1035を起動して実行させる。
NB1063は、CPU1061,システムメモリ1062,SB1064,ASIC1066,NIC1069,USBデバイス1070,IEEE1394デバイス1071およびセントロニクス1072を接続するためのブリッジである。
SB1064,NIC1069,USBデバイス1070,IEEE1394デバイス1071およびセントロニクス1072は、PCIバス1073を介してNB1063に接続されている。なお、SB1064は、PCIバス1073とROMや周辺デバイス等とを接続するためのブリッジである。
システムメモリ1062は、融合機1000の描画用メモリなどとして用いるメモリである。ローカルメモリ1067はコピー用画像バッファ,符号バッファとして用いるメモリである。
ASIC1066は、画像処理用のハードウェア要素を有する画像処理用途向けのICである。HDD1068は、画像データの蓄積,文書データの蓄積,プログラムの蓄積,フォントデータの蓄積,フォームの蓄積などを行うストレージ(補助記憶機器)の一例である。
NIC1069は、融合機1000をネットワークに接続するインタフェース機器である。USBデバイス1070,IEEE1394デバイス1071およびセントロニクス1072は、夫々の規格に準じたインタフェースである。
また、オペレーションパネル1080は、オペレータからの入力操作を受け付けると共に、オペレータに向けた表示を行う操作部である。なお、FCU1081はバックアップ用のメモリを有している。FCU1081が有するメモリは、例えば融合機1000の電源がOFFのときに受信したファクシミリデータを一時的に格納するために利用される。
以上、本発明の好ましい実施例について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
各種ソフトウェアを動作させる情報処理装置における従来のソフトウェア構成例を示す図である。 情報処理装置における従来の起動処理を説明するためのシーケンス図である。 起動プロセスが不正に書き換えられた場合のソフトウェア構成例を示す図である。 起動プロセスが不正に書き換えられた場合に想定される起動処理を説明するためのシーケンス図である。 本発明の実施の形態における画像形成装置のコントローラボードの構成例を示す図である。 本発明の実施の形態における画像形成装置のソフトウェア構成例を示す図である。 画像形成装置における各種ソフトウェア等の配置位置を示す図である。 ブートローダをBIOSフラッシュロムに配置した例を示す図である。 画像形成装置の起動処理を説明するためのシーケンス図である。 公開鍵の流れを説明するための図である。 対象プログラムがELF形式によって生成されている場合の認証チェックプログラムによる認証処理の概要を説明するための図である。 対象プログラムがELF形式によって生成されている場合の認証チェックプログラムによる認証処理を説明するためのフローチャートである。 対象プログラムがgzip圧縮されている場合の認証チェックプログラムによる認証処理の概要を説明するための図である。 対象プログラムがgzip圧縮されている場合の認証チェックプログラムによる認証処理を説明するためのフローチャートである。 SDカードも認証の対象とする場合の認証チェックプログラムによる認証処理の概要を説明するための図である。 SDカードも認証の対象とする場合の認証チェックプログラムによる認証処理を説明するためのフローチャートである。 認証チェックプログラムのオブジェクト図である。 認証処理の際の認証チェックプログラム内の動作を説明するためのシーケンス図である。 システムBIOSに公開鍵を持たせた場合の画像形成装置のソフトウェア構成例を示す図である。 システムBIOSに公開鍵を持たせた場合の画像形成装置の起動処理を説明するためのシーケンス図である。 システムBIOSに公開鍵を持たせた場合の公開鍵の流れを説明するための図である。 融合機の一例の構成図を示す。 融合機の一例のハードウェア構成図を示す。
符号の説明
10 画像形成装置
11 システムBIOS
12 ブートローダ
13 カーネル
14 処理プロセス
15a、15b、15c アプリケーション
101 CPU
102 メモリ
103 チップセット
104 BIOSフラッシュロム
105 ASIC
106 起動用SDスロット
107 ユーザアプリケーション用SDスロット
121 公開鍵
122 ブートローダ電子署名ファイル
131 カーネル電子署名ファイル
141 起動プロセス電子署名ファイル
151a、151b、151c アプリケーション電子署名ファイル
160 対象ファイル
160a elfファイル
161a elf実行形式ファイルヘッダ
162a テキスト領域
163a データ領域
164a BSS領域
165a シンボル領域
166a 電子署名
160b gzip圧縮ファイル
161b gzipファイルヘッダ
162b 圧縮データ
163b 解凍済みデータ
164b 電子署名
170a elf電子署名ファイル
171a、172a elf電子署名
172a elf電子署名
170b gzip電子署名ファイル
171b、172b gzip電子署名
180 SDID
190 認証チェックプログラム
195 認証チェックルーチン
500 情報処理装置
501 システムBIOS
502 ブートローダ
503 カーネル
504 起動プロセス
504b 不正な起動プロセス
505a、505b、505c アプリケーション
506 不正なアプリケーション
1000 融合機
1011 プロッタ
1012 スキャナ
1013 ハードウェアリソース
1020 ソフトウェア群
1030 アプリケーション
1031 プリンタアプリ
1032 コピーアプリ
1033 ファックスアプリ
1034 スキャナアプリ
1035 ネットファイルアプリ
1040 プラットフォーム
1041 オペレーティングシステム(OS)
1042 システムコントロールサービス(SCS)
1043 システムリソースマネージャ(SRM)
1044 エンジンコントロールサービス(ECS)
1045 メモリコントロールサービス(MCS)
1046 オペレーションパネルコントロールサービス(OCS)
1047 ファックスコントロールサービス(FCS)
1048 ネットワークコントロールサービス(NCS)
1050 融合機起動部
1060 コントローラ
1061 CPU
1062 システムメモリ
1063 ノースブリッジ(NB)
1064 サウスブリッジ(SB)
1065 AGP(Accelerated Graphics Port)
1066 ASIC
1067 ローカルメモリ
1068 ハードディスク装置(HDD)
1080 オペレーションパネル
1081 ファックスコントロールユニット(FCU)
1082 エンジン部

Claims (23)

  1. プログラムを実行する情報処理装置であって、
    前記プログラムを起動する前に、前記プログラムを構成する情報に基づいて第一の署名データを生成し、前記第一の署名データと前記プログラムに対応して保存されている第二の署名データとを比較することにより前記プログラムの正当性を判断し、正当であることが確認された場合に前記プログラムを起動することを特徴とする情報処理装置。
  2. 前記第二の署名データは暗号化されて保存されており、
    前記情報処理装置は、暗号化されている前記第二の署名データを予め保存されている暗号鍵に基づいて復号化し、
    前記第一の署名データと復号化された第二の署名データとを比較することにより前記プログラムの正当性を判断することを特徴とする請求項1記載の情報処理装置。
  3. 前記第一の署名データの値と前記第二の署名データの値とが一致した場合に、前記プログラムは正当であると判断することを特徴とする請求項1又は2記載の情報処理装置。
  4. 前記プログラムを構成する情報と前記プログラムが記録されている記録媒体に一意に割り当てられた情報とに基づいて前記第一の署名データを生成することを特徴とする請求項1乃至3いずれか一項記載の情報処理装置。
  5. 前記プログラムはカーネルであり、
    前記カーネルを起動する前に前記カーネルを構成する情報に基づいて前記第一の署名データを生成し、該第一の署名データと前記カーネルに対応して保存されている前記第二の署名データとを比較することにより前記カーネルの正当性を判断することを特徴とする請求項1乃至4いずれか一項記載の情報処理装置。
  6. 前記プログラムは前記カーネル上で動作するアプリケーションプログラムの起動処理を実行するアプリケーション起動プログラムであり、
    前記アプリケーション起動プログラムを起動する前に、前記アプリケーション起動プログラムを構成する情報に基づいて前記第一の署名データを生成し、該第一の署名データと前記アプリケーション起動プログラムに対応して保存されている前記第二の署名データとを比較することにより前記アプリケーション起動プログラムの正当性を判断することを特徴とする請求項5記載の情報処理装置。
  7. 前記プログラムは前記アプリケーションプログラムであり、前記アプリケーションプログラムを起動する前に、前記アプリケーションプログラムを構成する情報に基づいて前記第一の署名データを生成し、該第一の署名データと前記アプリケーションプログラムに対応して保存されている前記第二の署名データとを比較することにより前記アプリケーションプログラムの正当性を判断することを特徴とする請求項6記載の情報処理装置。
  8. 前記カーネルより前に起動される所定のプログラムが、前記カーネルを構成する情報に基づいて前記第一の署名データを生成し、該第一の署名データと前記カーネルに対応して保存されている前記第二の署名データとを比較することにより前記カーネルの正当性を判断することを特徴とする請求項5乃至7いずれか一項記載の情報処理装置。
  9. 前記所定のプログラムは、前記カーネルを起動することを特徴とする請求項8記載の情報処理装置。
  10. 前記所定のプログラムは、更に、前記アプリケーション起動プログラムを構成する情報に基づいて前記第一の署名データを生成し、該第一の署名データと前記アプリケーション起動プログラムに対応して保存されている前記第二の署名データとを比較することにより前記アプリケーション起動プログラムの正当性を判断することを特徴とする請求項8又は9記載の情報処理装置。
  11. 前記アプリケーション起動プログラムが、前記アプリケーションプログラムを構成する情報に基づいて前記第一の署名データを生成し、該第一の署名データと前記アプリケーションプログラムに対応して保存されている前記第二の署名データとを比較することにより前記アプリケーションプログラムの正当性を判断することを特徴とする請求項6乃至10いずれか一項記載の情報処理装置。
  12. 前記所定のプログラムは前記暗号鍵を有し、該暗号鍵を用いて前記カーネルに対応して保存されている前記第二の署名データ又は前記アプリケーション起動プログラムに対応して保存されている前記第二の署名データを復号化することを特徴とする請求項8乃至11いずれか一項記載の情報処理装置。
  13. 前記アプリケーション起動プログラムは、前記所定のプログラムより前記暗号鍵を引き継いで、該暗号鍵を用いて前記アプリケーションプログラムに対応して保存されている前記第二の署名データを復号化することを特徴とする請求項12記載の情報処理装置。
  14. 前記所定のプログラムは、前記カーネルに前記暗号鍵を引き渡し、
    前記アプリケーション起動プログラムは、前記カーネルより前記暗号鍵を取得することを特徴とする請求項13記載の情報処理装置。
  15. 前記情報処理装置の起動時に最初に起動されるプログラムが、前記所定のプログラムを構成する情報に基づいて前記第一の署名データを生成し、該第一の署名データと前記所定のプログラムに対応して保存されている前記第二の署名データとを比較することにより前記所定のプログラムの正当性を判断することを特徴とする請求項8乃至11いずれか一項記載の情報処理装置。
  16. 前記最初に起動されるプログラムは前記暗号鍵を有し、該暗号鍵を用いて前記所定のプログラムに対応して保存されている前記第二の署名データ又は前記アプリケーション起動プログラムに対応して保存されている前記第二の署名データを復号化することを特徴とする請求項15記載の情報処理装置。
  17. 前記所定のプログラムは、前記最初に起動されるプログラムより前記暗号鍵を取得し、該暗号鍵を用いて前記カーネルに対応して保存されている前記第二の署名データ又は前記アプリケーション起動プログラムに対応して保存されている前記第二の署名データを復号化することを特徴とする請求項16記載の情報処理装置。
  18. プログラムを実行する情報処理装置におけるプログラム起動方法であって、
    前記プログラムを起動する前に前記プログラムを構成する情報に基づいて第一の署名データを生成する署名データ生成手順と、
    前記署名データ生成手順において生成された前記第一の署名データと前記プログラムに対応して保存されている第二の署名データとを比較することにより前記プログラムの正当性を判断するプログラム認証手順と、
    前記プログラム認証手順において正当であることが確認された場合に、前記プログラムを起動するプログラム起動で順と
    を有することを特徴とするプログラム起動方法。
  19. 前記第二の署名データは暗号化されて保存されており、
    暗号化されている前記第二の署名データを予め保存されている暗号鍵に基づいて復号化する署名データ複合化手順を更に有し、
    前記プログラム認証手順は、前記第一の署名データと復号化された第二の署名データとを比較することにより前記プログラムの正当性を判断することを特徴とする請求項18記載のプログラム起動方法。
  20. 前記プログラム認証手順は、前記第一の署名データの値と前記第二の署名データの値とが一致した場合に、前記プログラムは正当であると判断することを特徴とする請求項18又は19記載のプログラム起動方法。
  21. 前記署名データ生成手順は、前記プログラムを構成する情報と前記プログラムが記録されている記録媒体に一意に割り当てられた情報とに基づいて前記第一の署名データを生成することを特徴とする請求項18乃至20いずれか一項記載のプログラム起動方法。
  22. プログラムを実行する情報処理装置に、
    前記プログラムを起動する前に前記プログラムを構成する情報に基づいて第一の署名データを生成する署名データ生成手順と、
    前記署名データ生成手順において生成された前記第一の署名データと前記プログラムに対応して保存されている第二の署名データとを比較することにより前記プログラムの正当性を判断するプログラム認証手順と、
    前記プログラム認証手順において正当であることが確認された場合に、前記プログラムを起動するプログラム起動で順と
    を実行させるためのプログラム起動プログラム。
  23. プログラムを実行する情報処理装置に、
    前記プログラムを起動する前に前記プログラムを構成する情報に基づいて第一の署名データを生成する署名データ生成手順と、
    前記署名データ生成手順において生成された前記第一の署名データと前記プログラムに対応して保存されている第二の署名データとを比較することにより前記プログラムの正当性を判断するプログラム認証手順と、
    前記プログラム認証手順において正当であることが確認された場合に、前記プログラムを起動するプログラム起動で順と
    を実行させるためのプログラム起動プログラムを記録したコンピュータ読み取り可能な記録媒体。
JP2003382761A 2003-11-12 2003-11-12 情報処理装置、プログラム起動方法、プログラム起動プログラム及び記録媒体 Pending JP2005148934A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003382761A JP2005148934A (ja) 2003-11-12 2003-11-12 情報処理装置、プログラム起動方法、プログラム起動プログラム及び記録媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003382761A JP2005148934A (ja) 2003-11-12 2003-11-12 情報処理装置、プログラム起動方法、プログラム起動プログラム及び記録媒体

Publications (1)

Publication Number Publication Date
JP2005148934A true JP2005148934A (ja) 2005-06-09

Family

ID=34691733

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003382761A Pending JP2005148934A (ja) 2003-11-12 2003-11-12 情報処理装置、プログラム起動方法、プログラム起動プログラム及び記録媒体

Country Status (1)

Country Link
JP (1) JP2005148934A (ja)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007102791A (ja) * 2005-09-30 2007-04-19 Fiinikkusu Technologies Ltd 無許可のブートローダの実行を防止することによって安全性を高めた実行環境
JP2008090485A (ja) * 2006-09-29 2008-04-17 Nomura Research Institute Ltd ジョブ管理装置、システムおよびプログラム
JP2009193528A (ja) * 2008-02-18 2009-08-27 Ricoh Co Ltd ソフトウェア改ざん検知方法、ソフトウェア改ざん検知プログラム及び機器
JP2010182196A (ja) * 2009-02-06 2010-08-19 Kddi Corp 情報処理装置およびファイル検証システム
JP2011517894A (ja) * 2008-03-24 2011-06-16 クゥアルコム・インコーポレイテッド 通信局にプログラマブル識別子を安全に記憶する方法
US8495364B2 (en) 2007-09-14 2013-07-23 Ricoh Company, Limited Image processing apparatus and method using electronic signature information
WO2013190598A1 (ja) * 2012-06-21 2013-12-27 パイオニア株式会社 放送受信装置のプログラム書き換え方法、放送受信装置およびプログラム
US8756414B2 (en) 2007-03-15 2014-06-17 Ricoh Company, Ltd. Information processing apparatus, software verification method, and software verification program
KR101566141B1 (ko) 2014-10-20 2015-11-06 숭실대학교산학협력단 서명정보를 이용하여 응용 프로그램의 위변조 여부를 탐지하는 사용자 단말기 및 그것을 이용한 위변조 탐지 방법
JP2019175000A (ja) * 2018-03-27 2019-10-10 キヤノン株式会社 情報処理装置、及び情報処理方法
GB2574290B (en) * 2018-03-14 2021-08-18 Canon Kk Energy saving information processing apparatus with verification means

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007102791A (ja) * 2005-09-30 2007-04-19 Fiinikkusu Technologies Ltd 無許可のブートローダの実行を防止することによって安全性を高めた実行環境
JP2008090485A (ja) * 2006-09-29 2008-04-17 Nomura Research Institute Ltd ジョブ管理装置、システムおよびプログラム
JP4554581B2 (ja) * 2006-09-29 2010-09-29 株式会社野村総合研究所 ジョブ管理装置、システムおよびプログラム
US8756414B2 (en) 2007-03-15 2014-06-17 Ricoh Company, Ltd. Information processing apparatus, software verification method, and software verification program
US8495364B2 (en) 2007-09-14 2013-07-23 Ricoh Company, Limited Image processing apparatus and method using electronic signature information
JP2009193528A (ja) * 2008-02-18 2009-08-27 Ricoh Co Ltd ソフトウェア改ざん検知方法、ソフトウェア改ざん検知プログラム及び機器
US8468366B2 (en) 2008-03-24 2013-06-18 Qualcomm Incorporated Method for securely storing a programmable identifier in a communication station
JP2011517894A (ja) * 2008-03-24 2011-06-16 クゥアルコム・インコーポレイテッド 通信局にプログラマブル識別子を安全に記憶する方法
JP2010182196A (ja) * 2009-02-06 2010-08-19 Kddi Corp 情報処理装置およびファイル検証システム
WO2013190598A1 (ja) * 2012-06-21 2013-12-27 パイオニア株式会社 放送受信装置のプログラム書き換え方法、放送受信装置およびプログラム
KR101566141B1 (ko) 2014-10-20 2015-11-06 숭실대학교산학협력단 서명정보를 이용하여 응용 프로그램의 위변조 여부를 탐지하는 사용자 단말기 및 그것을 이용한 위변조 탐지 방법
WO2016064040A1 (ko) * 2014-10-20 2016-04-28 숭실대학교 산학협력단 서명정보를 이용하여 응용 프로그램의 위변조 여부를 탐지하는 사용자 단말기 및 그것을 이용한 위변조 탐지 방법
GB2574290B (en) * 2018-03-14 2021-08-18 Canon Kk Energy saving information processing apparatus with verification means
JP2019175000A (ja) * 2018-03-27 2019-10-10 キヤノン株式会社 情報処理装置、及び情報処理方法
US11748482B2 (en) * 2018-03-27 2023-09-05 Canon Kabushiki Kaisha Information processing apparatus, and information processing method

Similar Documents

Publication Publication Date Title
JP4848190B2 (ja) アプリケーション実行装置、アプリケーション実行方法及びアプリケーション実行プログラム
JP4676724B2 (ja) 情報処理装置、情報処理方法、情報処理プログラム、及び記録媒体
JP2006279935A (ja) 情報処理装置、その制御方法及びコンピュータ読取可能記録媒体
JP2009110268A (ja) サーバ装置、管理システム、管理方法、記憶媒体、プログラム
US20110067088A1 (en) Image processing device, information processing method, and recording medium
JP4698211B2 (ja) 情報処理装置、画像形成装置、電子データの移動の取り消し方法
JP5095325B2 (ja) 画像処理装置及び画像処理方法
EP3502873A2 (en) Method and apparatus for application development environment
JP2005148934A (ja) 情報処理装置、プログラム起動方法、プログラム起動プログラム及び記録媒体
JP2010074431A (ja) 外部認証を用いた認証機能連携機器、認証機能連携システム及び認証機能連携プログラム
US8239857B2 (en) Information processing apparatus and method of installing application program
JP4485785B2 (ja) 電子データ処理システム及び電子データ処理方法
JP5776741B2 (ja) 情報処理装置、情報処理システム、情報処理方法及び情報処理プログラム
US9013735B2 (en) Image forming system and image forming method providing controls of settings of image position and restriction
JP2007183922A (ja) 情報処理装置、及びアプリケーションインストール方法
JP2007249575A (ja) 情報処理装置、コンピュータ読み取り可能な可搬性記録媒体、情報処理方法、情報処理プログラム及び情報処理システム
JP2004303209A (ja) 画像形成装置、プログラム更新方法、及び更新用記憶媒体
JP2008171041A (ja) 画像形成装置、画像形成装置の起動方法、制御装置及び拡張ユニットの起動方法
JP4444641B2 (ja) 情報処理装置、画像形成装置、及び電子データ移動方法
JP4246540B2 (ja) 画像形成装置およびプログラム実行方法
JP2004303222A (ja) 情報処理装置,画像形成装置,プログラム起動方法および記録媒体
JP2004299389A (ja) 画像形成装置、プログラム更新方法、及び更新用記憶媒体
JP5293238B2 (ja) 情報処理装置、画像形成装置及びプログラムインストール方法
JP3993121B2 (ja) 情報処理装置及びプログラム追加方法
JP2004046801A (ja) 画像形成装置およびプログラム停止方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20051020

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070622

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070710

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070907

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080701

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080828

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20090901