(57)【要約】【課題】  自己テストに失敗した場合に、セキュリティを確保しつつ、かつ利用者の利便性を損なうことがない技術を提供することを目的とする。【解決手段】  情報処理装置のセキュリティ機能に対応した自己テストを実施し、自己テストに失敗したセキュリティ機能と自己テストに失敗したセキュリティ機能に関連した機能とを利用不可能にする。【選択図】  図１
2012194964.tif 000002
【特許請求の範囲】
【請求項１】
複数の機能を有する情報処理装置であって、
前記情報処理装置のセキュリティ機能に対応した実行コードとセキュリティ機能データに関して自己テストを実施する自己テスト実施手段と、
前記自己テスト実施手段で自己テストに失敗した実行コードのセキュリティ機能と前記自己テストに失敗した実行コードのセキュリティ機能に関連した機能とを利用不可能に制御する制御手段と、
前記自己テスト実施手段で自己テストに失敗したセキュリティ機能データを利用不可能に制御する制御手段と、
前記自己テスト実施手段でセキュリティ機能データの自己テストに失敗した場合にセキュリティを確保した設定で利用可能に制御する制御手段を有することを特徴とする情報処理装置。
【請求項２】
前記制御手段は、セキュリティ機能に関連する機能の情報に基づき、利用不可能にする機能を特定することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記セキュリティ機能は、監査ログ機能、識別認証機能、アクセス制御機能、ＨＤＤ暗号化機能、ＨＤＤ完全消去機能、転送保護機能、通信路保護機能のいずれかであることを特徴とする請求項１又は請求項２に記載の情報処理装置。
【請求項４】
前記複数の機能は、セキュリティ機能と一般機能を有しており、前記一般機能は、プリント機能、スキャン機能、コピー機能、送信機能、ボックス機能、ファクス機能、ネットワーク機能、ＵＩ機能のいずれかであることを特徴とする請求項１〜３のいずれか１項に記載の情報処理装置。
【請求項５】
複数の機能を有する情報処理装置を制御する方法であって、
自己テスト実施手段が、前記情報処理装置のセキュリティ機能に対応した実行コードとセキュリティ機能データに関して自己テストを実施する自己テスト実施工程と、
制御手段が、前記自己テスト実施工程で自己テストに失敗した実行コードのセキュリティ機能と前記自己テストに失敗した実行コードのセキュリティ機能に関連した機能とを利用不可能に制御する制御工程と、
前記自己テスト実施手段で自己テストに失敗したセキュリティ機能データを利用不可能に制御する制御工程と、
前記自己テスト実施手段でセキュリティ機能データの自己テストに失敗した場合にセキュリティを確保した設定で利用可能に制御する制御工程を有することを特徴とする情報処理装置の制御方法。
【請求項６】
前記制御工程は、セキュリティ機能に関連する機能の情報に基づき、利用不可能にする機能を特定することを特徴とする請求項５に記載の情報処理装置の制御方法。
【請求項７】
前記セキュリティ機能は、監査ログ機能、識別認証機能、アクセス制御機能、ＨＤＤ暗号化機能、ＨＤＤ完全消去機能、転送保護機能、通信路保護機能のいずれかであることを特徴とする請求項５又は請求項６に記載の情報処理装置の制御方法。
【請求項８】
前記複数の機能は、セキュリティ機能と一般機能を有しており、前記一般機能は、プリント機能、スキャン機能、コピー機能、送信機能、ボックス機能、ファクス機能、ネットワーク機能、ＵＩ機能のいずれかであることを特徴とする請求項５〜７のいずれか１項に記載の情報処理装置の制御方法。
【請求項９】
コンピュータに読み込ませ実行させることで、前記コンピュータを、請求項１〜４のいずれか１項に記載の情報処理装置の各手段として機能させることを特徴とするプログラム。
【請求項１０】
請求項９に記載のプログラムを格納した、コンピュータが読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、装置上の各機能が正常に動作するかどうかをテストする自己テスト機能を有する情報処理装置に関する。
【背景技術】
【０００２】
近年では情報セキュリティの観点からセキュリティ機能を有する情報処理装置が一般的となっており、このようなセキュリティ機能は、政府の調達要件や利用者が製品を購入する際の判断として利用されている。例えば、事務機に関するセキュリティ要件をまとめたＩＥＥＥ２６００が策定され、調達要件として利用されている。したがって、情報処理装置を運用する上でセキュリティ機能が正常に動作しているかどうかを確認することが重要になっている。そのため、装置上の各デバイスや機能が正常に動作するかどうかをテストする自己テストを有し、そのテスト結果に応じて起動方法を変更する情報処理装置が知られており、ＩＥＥＥ２６００の要件にも含まれている。従来では、このような複数のデバイスや機能を有する情報処理装置において、単一の機能で致命的なエラーが発生した場合、システムが起動せずに運用できない状態となるか、あるいはエラーが発生した機能のみを無効としていた。
特許文献１は、ＣＰＵが複数の機能を有する画像形成装置の前記各機能の状態を検知し、機能の障害が検知された場合、前記障害が検知された機能のみを無効とする手法が提案されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００２−２６４４５５号
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１に記載の方式は、テスト結果としてセキュリティ機能にエラーがある場合、セキュリティ機能のみを無効としていた。つまり、セキュリティ機能自体が利用できない状態で、セキュリティ機能に関連する他の機能が利用できてしまうため、セキュリティ上の問題があった。例えば、ネットワークの暗号化通信機能に異常がある場合に、平文のままネットワーク機能が使える状態であった。
一方で、セキュリティを確保するための方法としては、１つでもデバイスや機能に異常がある場合は、装置そのものが起動せず、正常に動作している機能も利用できないようにすることが考えられるが、利用者の利便性が損なわれてしまう。
本発明は、かかる問題点に鑑みなされたものであり、自己テストに失敗した場合に、セキュリティを確保しつつ、かつ利用者の利便性を損なうことがない技術を提供することを目的とする。
【課題を解決するための手段】
【０００５】
上記課題を解決するため、本発明の情報処理装置は、
複数の機能を有する情報処理装置であって、
前記情報処理装置のセキュリティ機能に対応した、実行コードとセキュリティ機能データに関して自己テストを実施する自己テスト実施手段と、
前記自己テスト実施手段で自己テストに失敗した実行コードのセキュリティ機能と前記自己テストに失敗した実行コードのセキュリティ機能に関連した機能とを利用不可能に制御する制御手段と、
前記自己テスト実施手段で自己テストに失敗したセキュリティ機能データを利用不可能に制御する制御手段と、
前記自己テスト実施手段でセキュリティ機能データの自己テストに失敗した場合にセキュリティを確保した設定で利用可能に制御する制御手段を有する。
【発明の効果】
【０００６】
以上説明したように本発明によれば、自己テストに失敗した場合に、セキュリティを確保しつつ、かつ利用者の利便性を損なうことがないようにすることが可能となる。
【図面の簡単な説明】
【０００７】
【図１】実施形態１における情報処理装置の構成を説明する図である。
【図２】実施形態１における情報処理装置が有する機能、及び自己テスト結果を説明するための図である。
【図３】実施形態１における情報処理装置の起動方法を説明する図である。
【図４】実施形態１におけるセキュリティ機能との関連性を特定するためのテーブルを説明する図である。
【図５】実施形態１における情報処理装置の起動方法のフローを示すフローチャートである。
【図６】実施形態２における情報処理装置の機能構成を説明する図である。
【図７】実施形態２における情報処理装置の起動方法のフローを示す図である。
【図８】実施形態３における情報処理装置の機能構成を説明する図である。
【図９】実施形態３における情報処理装置の起動方法のフローを示す図である。
【発明を実施するための形態】
【０００８】
（第１の実施形態）
＜情報処理装置の構成＞
はじめに、本実施形態における情報処理装置の全体構成例を図  １（Ａ）に示す。本実施形態における情報処理装置１００は、ＣＰＵ１０１、ＲＯＭ１０２、ＲＡＭ１０３、Ｉ／Ｆ１０４、ＨＤＤ１０５、操作部１０６、処理部１０７から構成され、夫々はバス１０８で接続されている。情報処理装置１００は、例えば一般に普及しているＭＦＰ（Ｍｕｌｔｉ  Ｆｕｎｃｔｉｏｎ  Ｐｒｉｎｔｅｒ）であり、操作部１０６を用いて指示がなされた際、処理部１０７によりプリント、スキャン、コピー等の各種処理が実行される。図中、ＣＰＵ１０１は、情報処理装置内の各部の動作を制御、或いはＲＡＭ１０３にロードされたプログラムを実行することのできるＣＰＵである。ＲＯＭ１０２は、読み出し専用メモリであり、あらかじめ動作プログラムや検証データ生成に必要な共有情報が格納される。ＲＡＭ１０３は、ＣＰＵ１０１にて処理を行うために一時的にプログラムや処理対象のデータを格納しておくＲＡＭであり、ここにＯＳやＣＰＵ１０１が後述の各種処理を行うためのプログラムがロードされることになる。Ｉ／Ｆ１０４は、ネットワークやＵＳＢデバイスといった外部装置とのインタフェースであり、ネットワークを通じたデータ通信や、外部装置とデータの送受信を行う際に使用される。ＨＤＤ１０５は、ＲＡＭ等に転送されるＯＳやプログラムを格納したり、装置が動作中に入力されたデータを格納したり、読み出すために使用されるハードディスクである。操作部１０６は、利用者の操作指示、及び種々のパラメータ設定をはじめとする各種の指示を受け付けるためのユーザーインタフェースである。処理部１０７は、画像データを紙に印刷するためのプリンタエンジンや紙データから画像データを取り込むスキャナエンジンであり、操作部１０６を介して、利用者からの指示がなされると、印刷、読み込み等の各種処理を行う。
【０００９】
＜情報処理装置の機能構成＞
以下、図１（Ｂ）を用いて本実施の形態に適用される情報処理装置１００の機能構成を説明する。図１（Ｂ）に示すように、本実施形態における情報処理装置１００は、自己テスト実施部２０１、起動機能決定部２０２、起動部２０３、検証データ記憶部２０４、関連機能記憶部２０５、操作部２０６、処理部２０７から構成される。
【００１０】
自己テスト実施部２０１は、情報処理装置１００の電源入力により自己テストを実施し、テスト結果を生成して、生成されたテスト結果を起動機能決定部２０２へ出力する。本実施形態では、自己テスト実施部２０１の開始を電源入力として説明するが、定期的、あるいは利用者の指示により自己テストを実施するようにしてもよい。
【００１１】
ここで、情報処理装置１００は、複数の機能を有しており、複数の機能のうち、セキュリティに関連するセキュリティ機能と、一般機能（非セキュリティ機能）に分類することができる。本実施形態では、セキュリティ機能、及び一般機能（非セキュリティ機能）を図２（Ａ）に示されているような機能として説明する。ここで、管理機能とは、後述するセキュリティ機能、及び一般機能の各種設定を管理する機能であり、例えば利用者の登録、変更、削除は管理機能である。監査ログ機能とは、監査ログを取得、保存、閲覧する機能である。識別認証機能とは、製品を利用する前に、利用者を識別・認証する機能であり、例えばＩＤ、パスワードを入力してログインする機能は識別認証機能である。アクセス制御機能とは、情報にアクセスしたり、機能を利用したりする場合に、あらかじめ設定されている規則に基づいて制御する機能である。ＨＤＤ暗号化機能とは、ＨＤＤに保存されるデータを暗号化し、データを読み出す場合には復号する機能である。ＨＤＤ完全消去機能とは、不要となった製品内の残存情報を消去する機能である。転送保護機能とは、インタフェースが複数ある場合に、入力した情報を自動で他のインタフェースに転送することを保護する機能である。例えばファクスラインから受信したファクスデータを自動でメール転送してしまうようなことを保護する機能である。通信路保護機能とは、通信路を保護する機能であり、例えば暗号化通信が通信路保護機能である。一般機能として、プリント機能、スキャン機能、コピー機能、送信機能、ボックス機能、ファクス機能、ネットワーク機能、ＵＩ機能を有する。
【００１２】
本実施形態における自己テストは、図  ２（Ａ）に示されている機能ごとに実施するものとする。尚、図２（Ａ）に示されている機能は、ＩＥＥＥ２６００．１に関する機能であるが、本機能に限らず、例えばＩＥＥＥ２６００、ＩＥＥＥ２６００．２、ＩＥＥＥ２６００．３、ＩＥＥＥ２６００．４やＭＦＰ以外の機能であってもよい。
【００１３】
更に、情報処理装置１００が有するセキュリティ機能は、セキュリティ機能を正常に動作させるために必要なセキュリティ機能データを保持している。したがって、セキュリティ機能の自己テストをセキュリティ機能データとセキュリティ機能データを除いた実行コードに分割して実施することも可能である。本実施形態では、図２（Ａ）に示されているようなセキュリティ機能データとして説明する。監査ログ機能に関するセキュリティ機能データは、例えば、時刻情報や監査ログそのものである。識別認証機能がＩＤ、パスワードを入力してログインする識別認証機能である場合について説明する。この場合、セキュリティ機能データは、ＩＤ１、ＩＤ２、パスワード１、パスワード２、ロックアウト設定（例えばロックアウト時間や失敗の回数）、セッションタイムアウト設定（例えばタイムアウト時間）である。アクセス制御機能に関するセキュリティ機能データは、例えば、利用者に関連付けられた、管理者、一般利用者といった利用者権限、保存用のボックスに割り当てられたボックスパスワード１、ボックスパスワード２である。通信路保護機能が暗号化通信であれば、セキュリティ機能データは、鍵交換アルゴリズム１、鍵交換アルゴリズム２、鍵生成アルゴリズム１、鍵生成アルゴリズム２である。管理機能、ＨＤＤ暗号化機能、ＨＤＤ完全消去機能、転送保護機能のようにセキュリティ機能データが存在しないセキュリティ機能があってもよい。本実施形態における自己テストは、図２（Ａ）に示されているセキュリティ機能データについて説明するが、セキュリティ機能に関連するデータであればその限りではない。また、セキュリティ機能データと実行コードを分割せずに、セキュリティ機能単位で自己テストを実施してもよい。
【００１４】
ここで、情報処理装置１００が有するセキュリティ機能は、セキュリティ機能データごとに失敗時設定を保持する必要がある。失敗時設定とは、セキュリティ機能データの自己テストに失敗した場合に、セキュリティ設定が最も強化された状態で運用するための設定で起動することで、利便性を向上させるものである。例えば、識別認証機能に対応するロックアウト設定において、設定値としてロックアウトするまでの回数とロックアウト時間を設定する場合について説明する。利用者は、当該設定値として、ロックアウトするまでの回数を３回、ロックアウト時間を３分に設定したものとする。この状態で、自己テストを実施しロックアウト設定の自己テストに失敗すると、ロックアウト設定が変更されてしまっているため、当該機能を利用する識別認証機能はセキュリティ上の問題から起動しないことが望ましい。しかし、ロックアウトの設定値の範囲が限られている場合は、セキュリティ設定が最も強化された設定であれば、起動させても問題はない。つまり、ロックアウトするまでの回数が１回から１０回までの間で設定可能で、かつロックアウト時間が１分から６０分まで設定可能であった場合、ロックアウトするまでの回数が１回、ロックアウト時間が６０分として運用すればセキュリティ上は問題ない。このような、セキュリティ設定が最も強化された設定の状態で運用するための設定を失敗時設定としている。失敗時設定は、予め装置に設定していてもよいし、利用者が設定するようにしてもよい。ただし、利用者が設定する場合は、運用状態の設定値よりもセキュリティが強化されたな設定値のみを設定できるように制御する必要がある。
【００１５】
自己テスト実施部２０１は自己テスト開始の指示がなされると、機能ごとにプログラムから検証データ（例えば、チェックサムデータやハッシュデータなど）を生成する。検証データは、実行コードとセキュリティ機能データのそれぞれで生成する。例えば、図２（Ａ）の識別認証機能では、ＩＤ１、ＩＤ２、パスワード１、パスワード２、ロックアウト設定、セッションタイムアウト設定の６つの検証データが生成される。検証データ記憶部２０４は、自己テストの対象となる各機能に対する正規のプログラムやデータに基づいた検証データを機能ごとに予め保持している。自己テスト実施部２０１は、検証データ記憶部２０４で保持している検証データと、プログラムやデータから生成した検証データとに基づいて、プログラムの正当性を判断する。つまり、検証データの一致／不一致をチェックし、正当なプログラム、データであるかどうかを判断する。自己テストの手法に関しては本手法に限らず、機能の正当性を診断できる手法であればその限りではない。また、自己テストの方法については当業者にとって公知の技術であるため、詳細な説明は省略する。自己テスト実施部２０１は、まず、生成した実行コードの検証データと予め保持した実行コードの検証データが一致するかどうかを検証する。自己テスト実施部２０１は、検証結果が一致した場合に実行コードの自己テスト成功（つまり、正当なプログラムである）、不一致の場合に実行コードの自己テスト失敗（つまり、正当なプログラムでない）と判断する。次に、生成したセキュリティ機能データの検証データとあらかじめ保持したセキュリティ機能データの検証データが一致するかどうかを検証する。自己テスト実施部２０１は、検証結果が一致の場合にセキュリティ機能データの自己テスト成功（つまり、正当なプログラムである）、不一致の場合にセキュリティ機能データの自己テスト失敗（つまり、正当なプログラムでない）と判断する。全ての実行コード、セキュリティ機能データに対して検証が終わるとテスト結果を生成する。本実施形態においては、セキュリティ機能、及び一般機能の両方について自己テストを実施しているが、セキュリティ機能のみを自己テストしてもよい。尚、実行コードのテストで失敗した場合は、当該実行コードに関連するセキュリティ機能データの自己テストは実施しない。例えば、識別認証機能に関して実行コードの自己テストに失敗した場合は、ＩＤ１、ＩＤ２、パスワード１、パスワード２、ロックアウト設定、セッションタイムアウト設定に関する自己テストを実施する必要がない。
【００１６】
ここで、図２（Ｂ）を用いて本実施形態におけるテスト結果について説明する。自己テスト実施部２０１によって作成されるテスト結果は、実行コード、セキュリティ機能データごとに自己テストを行った結果を保持するものとする。例えば、本実施形態における図２（Ｂ）のテスト結果を参照すると、セキュリティ機能に分類された実行コードに関しては、通信路保護機能の自己テストに失敗し、それ以外の機能に関する自己テストは成功していると判断することができる。一般機能に分類された機能に関しては、プリント機能の自己テストに失敗し、それ以外の機能に関する自己テストは成功していると判断することができる。セキュリティ機能コードについては、識別認証機能のパスワード２、及びロックアウト設定の自己テストに失敗し、それ以外の機能に関する自己テストは成功していると判断できる。
【００１７】
自己テスト実施部２０１は、このようなテスト結果が生成されると起動機能決定部２０２へ出力する。
【００１８】
続いて、起動機能決定部２０２について説明する。起動機能決定部２０２は、自己テスト実施部２０１で生成されたテスト結果が入力され、起動対象の機能を決定し、決定した起動対象の機能を起動部２０３へ出力する。起動機能決定部２０２は、自己テスト実施部２０１からテスト結果が入力されると、そのテスト結果を検査する。起動機能決定部２０２は、テスト結果の検査結果に応じて処理を行うが、全ての自己テストに成功した場合と、自己テストに失敗している場合で処理が異なる。
【００１９】
まず、入力されたテスト結果に含まれている全ての機能に関して、実行コード、及びセキュリティ機能データのテスト結果が成功の場合について説明する。全ての機能に関するテスト結果が成功の場合、図３（Ａ）に示すように全ての機能を起動対象の機能と決定し、起動部２０３へ出力する。
【００２０】
次に、テスト結果に失敗がある場合について説明する。テスト結果に失敗がある場合については、更に実行コードのテスト結果に失敗がある場合と、セキュリティ機能データに失敗がある場合で処理が異なる。まずは、実行コードのテスト結果に失敗がある場合について説明する。起動機能決定部２０２に入力されたテスト結果として、セキュリティ機能の実行コードのテスト結果に１つでも失敗が含まれている場合、関連機能記憶部２０５を参照して起動対象となる機能を決定する。関連機能記憶部２０５は、例えば図４（Ａ）の５０１、及び図４（Ｂ）の５０２に示すようなテーブルを保持している。このテーブルは、セキュリティ機能に関連する機能を、セキュリティ機能ごとに示すものである。図中、あるセキュリティ機能の自己テストに失敗したときに、そのセキュリティ機能に関連する機能であるため起動不可にさせるべき機能に「×」を、そのセキュリティ機能に関連しないので起動してもよい機能に「○」を示している。図４（Ａ）は、「セキュリティ機能」と「セキュリティ機能の自己テストに失敗した場合のセキュリティ機能の起動可否」との関係を表している。例えば、識別認証機能の自己テストに失敗した場合、全てのセキュリティ機能を起動不可とすることを示している。同様に、ＨＤＤ暗号化機能の自己テストに失敗した場合、監査ログ機能のみを起動不可とすることを示している。ここで、ＨＤＤ暗号化機能の自己テストが失敗した場合に、監査ログ機能のみを起動不可としている理由は、監査ログ機能では、取得した監査ログをＨＤＤに保存する機能があるためである。取得した監査ログが暗号化されずにＨＤＤに保存されてしまうと、監査ログの情報が漏えいしてしまうため、ＨＤＤ暗号化機能の自己テストに失敗した場合は、監査ログ機能も起動不可とする必要がある。
【００２１】
一方で、図４（Ｂ）は、「セキュリティ機能」と「セキュリティ機能の自己テストに失敗した場合の一般機能の起動可否」との関係を表している。例えば、識別認証機能の自己テストに失敗した場合、ＵＩ機能以外の一般機能を起動不可とすることを示している。同様に、ＨＤＤ暗号化機能の自己テストに失敗した場合、ＢＯＸ機能のみを起動不可とすることを示している。ここで、ＨＤＤ完全消去機能の自己テストが失敗した場合に、プリント機能、スキャン機能、コピー機能を起動不可としている理由は、残存情報が製品に残ったままの状態になる恐れがあるためである。プリント機能、スキャン機能、コピー機能を利用した場合、テンポラリデータとして一時的に情報が生成される。このため、これらの情報が消去されない場合に情報が漏えいしてしまうため、ＨＤＤ完全消去機能の自己テストが失敗した場合は、プリント機能、スキャン機能、コピー機能も起動不可とする必要がある。
【００２２】
本実施形態のように図２（Ｂ）のようなテスト結果が入力された場合、セキュリティ機能である通信路保護機能の自己テストに失敗しているため、起動機能決定部２０２はまず図４（Ａ）に示すテーブルを利用して関連するセキュリティ機能を特定する。通信路保護機能の自己テストに失敗した場合、起動機能決定部２０２は、図４（Ａ）に示すテーブルから起動不可とするセキュリティ機能が存在しないと判断できる。
【００２３】
次に、起動機能決定部２０２は図４（Ｂ）に示すテーブルを利用して関連する一般機能を特定する。通信路保護機能の自己テストに失敗した場合、起動機能決定部２０２は、図４（Ｂ）に示すテーブルからネットワーク機能、及び送信機能を起動不可とすると判断できる。
【００２４】
次に、セキュリティ機能データの自己テスト結果に失敗がある場合について説明する。対応するセキュリティ機能に関する実行コードの自己テストが失敗している場合は、セキュリティ機能データを利用することができないため、セキュリティ機能データの自己テスト結果は影響しない。したがって、全てのセキュリティデータを利用不可とする。対応するセキュリティ機能に関する実行コードの自己テストが成功している場合、起動機能決定部２０２は、セキュリティ機能データの自己テスト結果を参照し、自己テストに成功しているセキュリティ機能データを利用可能と判断する。自己テストに失敗しているセキュリティ機能データについては、失敗時設定が存在するかどうかを確認する。失敗時設定が存在する場合には、失敗時設定を利用すると判断し、失敗時設定が存在しない場合は、利用不可と判断する。
【００２５】
起動部２０３は、起動機能決定部２０２から入力された起動対象の機能を起動、利用可能のセキュリティ機能データを利用可能な状態にする。失敗時設定を利用するセキュリティデータについては、予め登録された失敗時設定でセキュリティ機能を起動し、利用する。起動方法に関しては、起動機能決定部２０２において起動不可と判断されている機能、利用不可と判断されているセキュリティ機能データに関しては、起動しない、利用できないように制御してもよい。また、ＵＩを使用して起動不可、利用不可と判断された機能を使用できないように制御してもよい。
【００２６】
最終的に、図２（Ｂ）のようなテスト結果が入力された場合、図４（Ａ）、（Ｂ）のテーブルから図３（Ｂ）に示すような起動対象となる機能が決定され、起動部２０３へ出力する。
【００２７】
操作部２０６は、利用者の操作指示、及び種々のパラメータ設定をはじめとする各種の指示を受け付ける。処理部２０７は、起動部２０３で起動した機能に対応する処理を、操作部２０６からの操作指示に応じて、実行する。具体的な処理としては、プリント、スキャン、コピー、ファックスなどである。
【００２８】
＜情報処理装置１００のフロー＞
以下、図５を用いて情報処理装置１００の起動方法に関する処理フローを説明する。図５は本実施形態に適用可能な情報処理装置１００の起動方法流れを示すフローチャートである。
【００２９】
まず、利用者により電源入力の指示があると、自己テスト実施部２０１は自己テストを開始する（Ｓ６０１）。自己テストを開始すると、自己テスト実施部２０１は、機能ごとに実行コード、及びセキュリティ機能データの検証データを生成する（Ｓ６０２）。検証データが生成されると、自己テスト実施部２０１は、検証データ記憶部２０４に予め保持されていた検証データと比較する（Ｓ６０３）。生成した検証データと予め保持されていた検証データが一致した場合は、自己テスト成功と判断してテスト結果を生成する（Ｓ６０４）。不一致だった場合は、自己テスト失敗と判断してテスト結果を生成する（Ｓ６０５）。全ての機能に関して自己テストが実施されていない場合は、全ての機能に関する自己テストが完了するまで、Ｓ６０２からＳ６０５の処理を繰り返し実施し（Ｓ６０６）、全ての機能に関して自己テストが完了した場合は、テスト結果を判定する（Ｓ６０７）。テスト結果の判定は、起動機能決定部２０２で行い、全ての機能で自己テストに成功している場合は、起動部２０３で正常起動を実施する（Ｓ６０８）。ここで、正常起動とは、全ての機能を利用可能に起動することである。
【００３０】
実行コードの自己テストに失敗している場合、自己テストに失敗している機能がセキュリティ機能であるか、一般機能であるかを判定する（Ｓ６０９）。自己テストに失敗している機能がセキュリティ機能である場合、起動機能決定部２０２は、関連機能記憶部２０５で保持されているテーブル５０１、及び５０２を参照し、自己テストに失敗したセキュリティ機能に関連する機能を特定する（Ｓ６１０）。尚、自己テストに失敗した機能が、一般機能のみの場合は、Ｓ６１１へ処理を進める。Ｓ６１０で関連機能が特定されると起動機能決定部２０２は、実行コードの自己テストに失敗した機能とＳ６１０で特定された機能とを起動不可とし、それ以外の機能を起動対象の機能として決定する（Ｓ６１１）。起動対象の機能が決定すると、起動機能決定部２０２は、自己テストに失敗したセキュリティ機能データについて、失敗時設定があるかどうかを判断する（Ｓ６１２）。失敗時設定がある場合は、失敗時設定を利用するとし（Ｓ６１３）、失敗時設定がない場合は、利用不可とする（Ｓ６１４）。起動対象の機能が決定すると、起動部２０３は、起動対象の機能を起動する（Ｓ６１５）。
【００３１】
Ｓ６０８とＳ６１２で起動した機能に関して、操作部２０６により、操作を受け付け（Ｓ６１６）、処理部２０７で、操作部２０６より操作指示を受けた機能に関する処理を実行する（Ｓ６１７）。
【００３２】
本実施形態では、セキュリティ機能と一般機能に対して、自己テストを実施していた。しかしながら、自己テストの対象機能がセキュリティ機能のみとし、一般機能の自己テストを行わないようにしてもよい。
【００３３】
本実施形態では、起動部２０３で、起動機能決定部２０２から入力された起動対象の機能を起動した。しかしながら、起動機能決定部２０２において起動不可と判断されている機能に関して、ＵＩを利用して起動不可と判断された機能を利用できないように制御してもよい。この場合は、起動機能決定部２０２は、制御部として機能する。処理としては、図６において、Ｓ６１１で、制御部は、自己テストに失敗した機能とＳ６１０で特定された機能とを利用不可能の対象とし、それ以外の機能のみを利用可能の対象とする。Ｓ６１５では、制御部は、利用可能対象の機能が決定すると、利用可能対象の機能を不示図の表示部に表示するようにするとよい。
【００３４】
以上説明したように、本実施形態によれば、機能ごとに自己テストを実施し、自己テストに失敗した機能に加え、その機能に関連する機能に関しても、利用できないようにしている。このことにより、セキュリティの確保と、利用者の利便性の確保の両立を実現可能としている。
【００３５】
（第２の実施形態）
第１の実施形態では、全ての機能の自己テストを行った後に、自己テストが失敗した機能とその機能に関連する機能とを起動させないようにしていた。本実施形態では、セキュリティ機能の自己テストを行いながら、逐次、機能の起動、あるいは、関連する機能の起動停止を行う。
【００３６】
＜情報処理装置の機能構成＞
本実施形態における情報処理装置７００の機能構成について、図６を用いて説明する。図６に示すように、本実施形態における情報処理装置７００は、自己テスト実施部７０１、起動部７０２、検証データ記憶部２０４、関連機能記憶部２０５、操作部２０６、処理部２０７から構成される。検証データ記憶部２０４、関連機能記憶部２０５、操作部２０６、処理部２０７は、第１の実施形態と同じなので、説明を省略する。また、本実施形態に係る情報処理装置７００の物理構成は、第１の実施形態において説明した図１（Ａ）に示す物理構成と同等であり、説明は省略する。
【００３７】
自己テスト実施部７０１は、予め決められた順序で自己テストを実施し、自己テストの結果から、起動対象となる機能、あるいは、起動を停止する機能を決定して起動部７０２へ出力する。本実施形態では、セキュリティ機能の自己テストの順序を、関連機能記憶部２０５に記憶されているテーブルの上から順に自己テストを行うとする。機能ごとの自己テストの方法は、第１の実施形態で説明したものと同じであるので、説明を省略する。自己テストを行った結果、成功と判定された機能については、起動をするよう、起動部７０２に指示を送る。一方、自己テストを行った結果、失敗と判定された場合は、失敗と判定された機能に関連する機能の起動を停止するよう、起動部７０２に指示を送る。尚、関連する機能の特定は、第１の実施形態で説明したように、関連機能記憶部２０５に記憶されたテーブルを用いることとする。
【００３８】
起動部７０２は、機能の起動と、自己テスト実施部７０１からの指示を受けて、起動している機能の停止を行う。起動方法に関しては、起動機能決定部２０２において起動不可と判断されている機能に関しては、起動しないようにしてもよいし、ＵＩを使用して起動不可と判断された機能を使用できないように制御してもよい。
【００３９】
以下、図７を用いて本実施形態における情報処理装置７００の起動方法について説明する。本実施形態では、情報処理装置７００の電源が入力されると、はじめに、起動部７０２は、全ての一般機能を起動する（Ｓ８０１）。一般機能が起動すると、セキュリティ機能の自己テストが実施される。
【００４０】
まず、自己テスト実施部７０１で、管理機能の自己テストが実施される（Ｓ８０２）。ここで、機能ごとの自己テスト方法は、第１の実施形態において説明した方法と同様である。管理機能の自己テストに成功した場合は、管理機能を起動するよう、起動部７０２へ指示を送り、起動部７０２は、管理機能を起動する（Ｓ８０３）。管理機能の自己テストに失敗した場合は、関連機能記憶部２０５に記憶されたテーブルを用いて、管理機能の関連機能を特定し、特定された機能の起動停止を起動部７０２へ指示を送る。起動部７０２は、管理機能の関連機能の起動を停止する（Ｓ８０４）。
【００４１】
次に、自己テスト実施部７０１は、監査ログ機能の自己テストを実施し（Ｓ８０５）、自己テストが成功した場合は、監査ログ機能を起動するよう、起動部７０２へ指示を送り、起動部７０２は、起動部７０２は、監査ログ機能を起動する（Ｓ８０６）。自己テストに失敗した場合は、関連機能記憶部２０５に記憶されたテーブルを用いて、監査ログ機能の関連機能を特定し、特定された機能の起動停止を起動部７０２へ指示を送る。起動部７０２は、起動部７０２は、監査ログ機能の関連機能の起動を停止する（Ｓ８０７）。
【００４２】
自己テスト実施部７０１は、認証識別機能の自己テストを実施し（Ｓ８０８）、自己テストが成功した場合は、認証識別機能を起動するよう、起動部７０２へ指示を送り、起動部７０２は、起動部７０２は、認証識別機能を起動する（Ｓ８０９）。自己テストに失敗した場合は、関連機能記憶部２０５に記憶されたテーブルを用いて、認証識別機能の関連機能を特定し、特定された機能の起動停止を起動部７０２へ指示を送る。起動部７０２は、起動部７０２は、認証識別機能の関連機能の起動を停止する（Ｓ８１０）。
【００４３】
自己テスト実施部７０１は、アクセス制御機能の自己テストを実施し（Ｓ８１１）、自己テストが成功した場合は、アクセス制御機能を起動するよう、起動部７０２へ指示を送り、起動部７０２は、起動部７０２は、アクセス制御機能を起動する（Ｓ８１２）。自己テストに失敗した場合は、関連機能記憶部２０５に記憶されたテーブルを用いて、アクセス制御機能の関連機能を特定し、特定された機能の起動停止を起動部７０２へ指示を送る。起動部７０２は、起動部７０２は、アクセス制御機能の関連機能の起動を停止する（Ｓ８１３）。
【００４４】
自己テスト実施部７０１は、ＨＤＤ暗号化機能の自己テストを実施し（Ｓ８１４）、自己テストが成功した場合は、ＨＤＤ暗号化機能を起動するよう、起動部７０２へ指示を送り、起動部７０２は、起動部７０２は、ＨＤＤ暗号化機能を起動する（Ｓ８１５）。自己テストに失敗した場合は、関連機能記憶部２０５に記憶されたテーブルを用いて、ＨＤＤ暗号化機能の関連機能を特定し、特定された機能の起動停止を起動部７０２へ指示を送る。起動部７０２は、起動部７０２は、ＨＤＤ暗号化機能の関連機能の起動を停止する（Ｓ８１６）。
【００４５】
自己テスト実施部７０１は、ＨＤＤ完全消去機能の自己テストを実施し（Ｓ８１７）、自己テストが成功した場合は、ＨＤＤ完全消去機能を起動するよう、起動部７０２へ指示を送り、起動部７０２は、起動部７０２は、ＨＤＤ完全消去機能を起動する（Ｓ８１８）。自己テストに失敗した場合は、関連機能記憶部２０５に記憶されたテーブルを用いて、ＨＤＤ完全消去機能の関連機能を特定し、特定された機能の起動停止を起動部７０２へ指示を送る。起動部７０２は、起動部７０２は、ＨＤＤ完全消去機能の関連機能の起動を停止する（Ｓ８１９）。
【００４６】
自己テスト実施部７０１は、転送保護機能の自己テストを実施し（Ｓ８２０）、自己テストが成功した場合は、転送保護機能を起動するよう、起動部７０２へ指示を送り、起動部７０２は、起動部７０２は、転送保護機能を起動する（Ｓ８２１）。自己テストに失敗した場合は、関連機能記憶部２０５に記憶されたテーブルを用いて、転送保護機能の関連機能を特定し、特定された機能の起動停止を起動部７０２へ指示を送る。起動部７０２は、起動部７０２は、転送保護機能の関連機能の起動を停止する（Ｓ８２２）。
【００４７】
自己テスト実施部７０１は、通信路保護機能の自己テストを実施し（Ｓ８２３）、自己テストが成功した場合は、通信路保護機能を起動するよう、起動部７０２へ指示を送り、起動部７０２は、起動部７０２は、通信路保護機能を起動する（Ｓ８２４）。自己テストに失敗した場合は、関連機能記憶部２０５に記憶されたテーブルを用いて、通信路保護機能の関連機能を特定し、特定された機能の起動停止を起動部７０２へ指示を送る。起動部７０２は、起動部７０２は、通信路保護機能の関連機能の起動を停止する（Ｓ８２５）。
【００４８】
起動した機能に関して、操作部２０６により、操作を受け付け（Ｓ６１６）、処理部２０７で、操作部２０６より操作指示を受けた機能に関する処理を実行する（Ｓ６１７）。このように、すべてのセキュリティ機能に対して自己テストを実施し、その結果に応じて対応するセキュリティ機能の起動と、関連する機能の起動停止が決定する。
【００４９】
本実施形態では、一般機能の自己テストを実施しない例を説明したが、一般機能に対する自己テストを実施するようにしてもよい。その場合は、図７のＳ８０２の処理の前に、自己テスト実施部２０１で、それぞれの一般機能の自己テストを行い、自己テストが成功した一般機能のみを、Ｓ８０２で起動するようにするとよい。
【００５０】
本実施形態では、図４のテーブルに記載されたセキュリティ機能の順序で、自己テストを行った。本実施形態のように、自己テストを行いながら、逐次、関連する機能の起動を停止する場合は、関連する機能の数が多いセキュリティ機能から行うことが望ましい。
【００５１】
以上説明したように、機能ごとの自己テスト結果に応じた処理を行うことによって、セキュリティを確保し、かつ利用者の利便性を確保することを可能としている。尚、上記説明したように、セキュリティ機能の自己テストを行いながら、逐次、機能の起動、あるいは、関連する機能の起動停止を行うことで、起動処理の開始を早めに行うことができるという効果もある。
【００５２】
以上説明した実施形態では、図４に示した１種類のテーブルを用いて関連機能を特定した。しかしながら、予め複数種類のテーブルを保持しておき、利用環境に応じてテーブルを選択するようにしたてもよい。例えば、セキュリティレベルの異なる複数のテーブルから、利用されるセキュリティのレベルに応じて選択することが考えられる。
【００５３】
以上説明した実施形態では、情報処理装置をＭＦＰとして説明したが、セキュリティ機能を含む複数の機能を有した情報処理装置であればその限りではない。例えば、上記説明した機能のうち、少なくとも２つ以上の機能を有する情報処理装置が対象となる。
【００５４】
（第３の実施形態）
第１の実施形態、第２の実施形態では、自己テストの結果に関わらず、全ての機能に対して、自己テストを実施するようにしていた。本実施形態では、関連する機能が多い機能から自己テストを実施し、既に実施済みの自己テストが失敗したことにより起動しないことが決定した機能については自己テストの実施を省略する。
【００５５】
＜情報処理装置の機能構成＞
本実施形態における情報処理装置９００の機能構成について、図８を用いて説明する。図８に示すように、本実施形態における情報処理装置９００は、自己テスト実施部９０１、起動部２０３、検証データ記憶部２０４、関連機能記憶部２０５、操作部２０６、処理部２０７から構成される。起動部２０３、検証データ記憶部２０４、関連機能記憶部２０５、操作部２０６、処理部２０７は、第１、第２の実施形態と同じなので、説明を省略する。また、本実施形態に係る情報処理装置９００の物理構成は、第１の実施形態において説明した図１（Ａ）に示す物理構成と同等であり、説明は省略する。
【００５６】
自己テスト実施部９０１は、自己テストに失敗した場合に関連して起動不可となるセキュリティ機能、及び一般機能が多いセキュリティ機能から順に自己テストを実施する。そして、自己テストに失敗した機能と関連することにより起動しないことが決定した機能については、自己テストを実施せずに起動不可とし、起動対象となる機能のみ自己テストを実施する。その自己テストの結果から、最終的に起動対象となる機能、あるいは、起動を停止する機能を決定して起動部２０３へ出力する。本実施形態では、セキュリティ機能の自己テストの順序を、関連機能記憶部２０５に記憶されているテーブルにおいて、自己テストに失敗したときに起動不可となる機能が多い順序で実施する。本実施形態で利用する関連機能記憶部２０５が例えば、第１の実施形態と同様に図４（Ａ）、及び図４（Ｂ）とすると、管理機能、監査ログ機能、識別認証機能、アクセス制御機能において、関連機能が１４機能で最大になる。関連機能が同数の場合は、どの機能から実施してもよい。このように自己テストの実施順序を決定すると、管理機能、監査ログ機能、識別認証機能、アクセス制御機能、ＨＤＤ完全消去機能、転送保護機能、ＨＤＤ暗号化機能、通信路保護機能の順序でテストを実施することとなる。機能ごとの自己テストの方法は、第１の実施形態で説明したものと同じであるので、説明を省略する。自己テストを行った結果を、起動部２０３に送付し、起動部２０３は、第１の実施形態と同様に起動機能決定部２０２から入力された起動対象の機能を起動する。
【００５７】
以下、図９を用いて本実施形態における情報処理装置９００の起動方法について説明する。本実施形態では、情報処理装置９００の電源が入力されると、はじめに、自己テスト実施部９０１は、自己テストに失敗したときに起動不可となる機能が多い機能を特定し、自己テストの実施順序を決定する（Ｓ１００１）。自己テストの実施順序が決定すると、自己テスト実施部９０１は決定した実施順序に従って自己テストを開始し、起動不可の判定が出ているかどうかを判定する（Ｓ１００２）。起動不可の判定が出ていない場合は、自己テストを実施する（Ｓ１００３）。既に起動不可の判定が出ている場合は、自己テストを省略する（Ｓ１００４）。自己テストを実施した場合、自己テストに成功した場合は、成功結果を生成し（Ｓ１００５）、自己テストに失敗した場合は、関連機能記憶部２０５に記憶されたテーブルを用いて関連機能を特定し、関連機能と合わせて失敗結果を生成する（Ｓ１００６）。その後、全ての機能について自己テストを実施したかどうかを判定し（Ｓ１００７）、全ての機能について自己テストが実施されていない場合は、Ｓ１００２からＳ１００７の処理を繰り返す。全ての機能について自己テストが実施された場合は、特定された機能を起動する（Ｓ１００８）。その後、Ｓ１００８で起動した機能に関して、操作部２０６により、操作を受け付け（Ｓ１００９）、処理部２０７で、操作部２０６より操作指示を受けた機能に関する処理を実行する（Ｓ１０１０）。
【００５８】
（その他の実施形態）
また、本発明の構成要素は、複数の機器（例えばホストコンピュータ、インターフェース機器、リーダ、プリンタなど）から構成されるシステムに適用しても、一つの機器からなる装置（例えば、カメラ、複写機、ファクシミリ装置など）に適用しても良い。本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給し、そのシステムが記憶媒体に格納されたプログラムコードを読み出し実行することによっても達成される。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。プログラムコードを供給するための記憶媒体としては、例えば、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のデータ保存部、ＲＯＭなどを用いることが出来る。また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳ（オペレーティングシステム）などが実際の処理の一部を行う。さらに、その処理によって前述した実施形態の機能が実現される場合も含まれる。さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるデータ保存部に書き込まれる。その後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【図１】
2012194964.tif 000003
【図２】
2012194964.tif 000004
【図３】
2012194964.tif 000005
【図４】
2012194964.tif 000006
【図５】
2012194964.tif 000007
【図６】
2012194964.tif 000008
【図７】
2012194964.tif 000009
【図８】
2012194964.tif 000010
【図９】
2012194964.tif 000011