JP5287930B2 - 装置、セキュリティ管理方法、セキュリティ管理プログラム及び記録媒体 - Google Patents

装置、セキュリティ管理方法、セキュリティ管理プログラム及び記録媒体 Download PDF

Info

Publication number
JP5287930B2
JP5287930B2 JP2011123085A JP2011123085A JP5287930B2 JP 5287930 B2 JP5287930 B2 JP 5287930B2 JP 2011123085 A JP2011123085 A JP 2011123085A JP 2011123085 A JP2011123085 A JP 2011123085A JP 5287930 B2 JP5287930 B2 JP 5287930B2
Authority
JP
Japan
Prior art keywords
class
security management
framework
application program
jsdk
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.)
Expired - Fee Related
Application number
JP2011123085A
Other languages
English (en)
Other versions
JP2011165222A (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.)
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 JP2011123085A priority Critical patent/JP5287930B2/ja
Publication of JP2011165222A publication Critical patent/JP2011165222A/ja
Application granted granted Critical
Publication of JP5287930B2 publication Critical patent/JP5287930B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、装置、セキュリティ管理方法、セキュリティ管理プログラム及び記録媒体に関し、特にインタフェースの少なくとも一部が公開されているフレームワークを有し、前記フレームワークに基づいて作成されたアプリケーションを実行可能な装置、セキュリティ管理方法、セキュリティ管理プログラム及び記録媒体に関する。
Java(登録商標)言語にはC/C++言語のように列挙型(enum型)が用意されていないため、ある変数の取り得る値をあらかじめ指定したい場合は、図1に示されるような定義によって、列挙型を擬似的に実現することが可能である。
図1は、Java(登録商標)言語において列挙型を実現するための第一の方法を説明するための図である。
図1では、列挙値に相当する定数の宣言を「final static int」によって行う例を示している。すなわち、(A)では、フォントの種類を表現する定数(PLAIN、BOLD)が、以下のように定義されている。
public final static int PLAIN = 1 ;
public final static int BOLD = 2 ;
これにより、(B)に示されるようなcreateFont()メソッドの呼び出し側では、第二引数(fontStyle)の値としてPLAIN、BOLDを指定することができる。
ただし、図1の方法は、新たな型が定義されるわけではなく、PLAIN、BOLD等は既存の型(ここでは、int型)として扱われるため、createFont()メソッドの第二引数には任意の値を指定することができてしまう。従って、createFont()メソッド内で第二引数の値の範囲チェックを行う必要がある。
また、定義された定数と同じ型であれば、他の引数(例えば、createFont()メソッドの第三引数であるint型のsize)に対しても、当該定数(PLAIN、BOLD等)を指定することができ、コンパイラではそのコーディングミスを検出することができず、実行時に予期せぬエラーを発生させる可能性がある。
そこで、一般的には図2に示されるような定義によって列挙型を実現することが多い。図2は、Java(登録商標)言語において列挙型を実現するための第二の方法を説明するための図である。
図2では、列挙値をクラスのオブジェクトとして定義する例を示している。すなわち、(A)では、フォントの種類を表現する定数(PLAIN、BOLD)が、以下のようにFontStyleクラスのインスタンスとして定義されている。
public final static int PLAIN = new FontStyle() ;
public final static int BOLD = new FontStyle() ;
これにより、(B)に示されるようなcreateFont()メソッドの第二引数の型を「FontStyle」型として定義することが可能となる。したがって、createFont()メソッドの第二引数にFontStyle型以外の値が指定されるとコンパイルエラーとなり、実行時のエラーを防ぐことが可能となる。また、図2の例では、FontStyleクラスの定義にfinal修飾子が付加されているため、FontSytleクラスのサブクラスが定義されるのを防止することができ、サブクラスの定義による想定外の定数の拡張を防止することができる。よって、定数が所定の範囲内であることが保証され、createFont()メソッド内部での値の範囲チェックを行う必要を無くすことができる。
しかしながら、上記のようなクラス(enum型を実現するためのクラス)がいわゆるフレームワークにおいて定義されている場合、列挙値を拡張するためにはFontStyleクラスのサブクラス化が行えないため、FonsStyleクラスの定義自体を変更しなければならない。したがって、フレームワークの提供者は、当該フレームワークの利用者に対して、拡張部分のみならず、拡張後のフレームワーク全体を改めて提供しなければならず、場合によっては、当該フレームワークの利用者は、当該フレームワーク上に構築したアプリケーションの再コンパイル等を実行しなければならないという問題がある。
近年では、複写機や融合機等の画像形成装置においても、フレームワークが実装され、そのAPI(Application Program Interface)が公開されているものがある。そして、画像形成装置の利用者側で、そのAPIに基づくアプリケーションを実装することで、利用者独自の機能を追加できるものがある。したがって、上記のような問題はかかる画像形成装置においても同様に発生し得る問題である。
本発明は、上記の点に鑑みてなされたものであって、セキュリティを適切に維持しつつフレームワークの機能を拡張させることのできる装置、セキュリティ管理方法、セキュリティ管理プログラム及び記録媒体の提供を目的とする。
そこで上記課題を解決するため、本発明は、インタフェースの少なくとも一部が公開されているフレームワークを有し、前記フレームワークに基づいて作成されたアプリケーションプログラムを実行可能な装置であって、前記アプリケーションプログラムに付与されたセキュリティレベルを判断し、前記セキュリティレベルに応じて当該アプリケーションプログラムによる前記フレームワークの利用を制限するセキュリティ管理手段と、前記セキュリティレベルごとに前記フレームワークの利用の権限を示す情報を管理する権限管理手段とを有し、前記セキュリティ管理手段は、前記権限管理手段に基づいて前記フレームワークの利用を制限することを特徴とする。
このような装置では、セキュリティを適切に維持しつつフレームワークの機能を拡張させることができる。
また、上記課題を解決するため、本発明は、上記装置におけるセキュリティ管理方法、前記セキュリティ管理方法をコンピュータに実行させるためのセキュリティ管理プログラム、又は前記セキュリティ管理プログラムを記録した記録媒体としてもよい。
本発明によれば、セキュリティを適切に維持しつつフレームワークの機能を拡張させることのできる装置、セキュリティ管理方法、セキュリティ管理プログラム及び記録媒体を提供することができる。
Java(登録商標)言語において列挙型を実現するための第一の方法を説明するための図である。 Java(登録商標)言語において列挙型を実現するための第二の方法を説明するための図である。 本発明の実施の形態における融合機を表す図である。 本発明の実施の形態における融合機のハードウェア構成図である。 本発明の実施の形態における融合機の外観図である。 オペレーションパネルを表す図である。 JSDKアプリとJSDKプラットフォームのクラス図である。 セキュリティマネージャの機能を説明するための図である。 セキュリティポリシー設定ファイルの定義例を示す図である。 レベル1のユーザアプリの動作を説明するための図である。 本発明の実施の形態におけるJSDKプラットフォームにおいて列挙型の実現例を説明するための図である。 本発明の実施の形態において列挙値を定義するためのクラスの継承関係を示す図である。
以下、図面に基づいて本発明の実施の形態を説明する。図3は、本発明の実施の形態における融合機を表す図である。図3の融合機101は、種々のハードウェア111と、種々のソフトウェア112と、融合機起動部113により構成される。
融合機101のハードウェア111としては、撮像部121と、印刷部122と、その他のハードウェア123が存在する。撮像部121は、読取原稿から画像(画像データ)を読み取るためのハードウェアである。印刷部122は、画像(画像データ)を印刷用紙に印刷するためのハードウェアである。
融合機101のソフトウェア112としては、種々のアプリケーション131と、種々のプラットフォーム132が存在する。これらのプログラムは、UNIX(登録商標)等のOS(オペレーティングシステム)によりプロセス単位で並列的に実行される。
アプリケーション131としては、コピー用のアプリケーションであるコピーアプリ141、プリンタ用のアプリケーションであるプリンタアプリ142、スキャナ用のアプリケーションであるスキャナアプリ143、ファクシミリ用のアプリケーションであるファクシミリアプリ144、ネットワークファイル用のアプリケーションであるネットワークファイルアプリ145が存在する。そしてさらに、Webページの閲覧用のソフトウェアであるWebブラウザ181、Webページの配信用のソフトウェアであるWebサーバソフト182、CSDKアプリ146やJSDKアプリ147の制御用のソフトウェアであるSDKアプリケーションサービス(SAS)183が存在する。
アプリケーション131は、専用のSDK(ソフトウェア開発キット)を使用して開発することができる。SDKを使用して開発したアプリケーション131をSDKアプリと呼ぶ。専用のSDKとしては、C言語でアプリケーション131を開発するための「CSDK」や、Java(登録商標)言語でアプリケーション131を開発するための「JSDK」が提供される。CSDKを使用して開発したアプリケーション131を「CSDKアプリ」と呼び、JSDKを使用して開発したアプリケーション131を「JSDKアプリ」と呼ぶ。図3の融合機101にも、CSDKアプリ146と、JSDKアプリ147が存在する。図3の融合機101にはさらに、Java(登録商標)言語で記述されたJSDKアプリ147とC言語で記述された他のソフトウェア112との仲介を行うソフトウェア112として、JSDKプラットフォーム148が存在する。なお、JSDKプラットフォーム148は、本発明の実施の形態においてフレームワークの具体例に相当する。
プラットフォーム132としては、種々のコントロールサービス151、システムリソースマネージャ152、種々のハンドラ153が存在する。コントロールサービス151としては、ネットワークコントロールサービス(NCS)161、ファクシミリコントロールサービス(FCS)162、デリバリコントロールサービス(DCS)163、エンジンコントロールサービス(ECS)164、メモリコントロールサービス(MCS)165、オペレーションパネルコントロールサービス(OCS)166、サーティフィケーションコントロールサービス(CCS)167、ユーザディレクトリコントロールサービス(UCS)168、システムコントロールサービス(SCS)169が存在する。ハンドラ153としては、ファクシミリコントロールユニットハンドラ(FCUH)171、イメージメモリハンドラ(IMH)172が存在する。
NCS161のプロセスは、ネットワーク通信の仲介を行う。FCS162のプロセスは、ファクシミリのAPIを提供する。DCS163のプロセスは、蓄積文書の配信処理に関する制御を行う。ECS164のプロセスは、撮像部121や印刷部122に関する制御を行う。MCS165のプロセスは、メモリやハードディスクドライブに関する制御を行う。OCS166のプロセスは、オペレーションパネルに関する制御を行う。CCS167のプロセスは、認証処理や課金処理に関する制御を行う。UCS168のプロセスは、ユーザ情報の管理に関する制御を行う。SCS169のプロセスは、システムの管理に関する制御を行う。
アプリケーション131とプラットフォーム132の仲介を行うソフトウェア112として、仮想アプリケーションサービス(VAS)135が存在する。VAS135は、アプリケーション131をクライアントとするサーバプロセスとして動作すると共に、プラットフォーム132をサーバとするクライアントプロセスとして動作する。VAS135は、アプリケーション131から見てプラットフォーム132を隠蔽するラッピング機能を備え、プラットフォーム132のバージョンアップに伴うバージョン差を吸収する役割等を担う。
融合機起動部113は、融合機101の電源投入時に最初に実行される。これにより、UNIX(登録商標)等のOSが起動され、アプリケーション131やプラットフォーム132が起動される。これらのプログラムは、ハードディスクドライブやメモリカードに蓄積されており、ハードディスクドライブやメモリカードから再生されて、メモリに起動されることになる。
図4は、本発明の実施の形態における融合機のハードウェア構成図である。融合機101のハードウェア111としては、コントローラ201と、オペレーションパネル202と、ファクシミリコントロールユニット(FCU)203と、撮像部121と、印刷部122が存在する。
コントローラ201は、CPU211、ASIC212、NB221、SB222、MEM−P231、MEM−C232、HDD(ハードディスクドライブ)233、メモリカードスロット234、NIC(ネットワークインタフェースコントローラ)241、USBデバイス242、IEEE1394デバイス243、セントロニクスデバイス244により構成される。
CPU211は、種々の情報処理用のICである。ASIC212は、種々の画像処理用のICである。NB221は、コントローラ201のノースブリッジである。SB222は、コントローラ201のサウスブリッジである。MEM−P231は、融合機101のシステムメモリである。MEM−C232は、融合機101のローカルメモリである。HDD233は、融合機101のストレージである。メモリカードスロット234は、メモリカード235をセットするためのスロットである。NIC241は、MACアドレスによるネットワーク通信用のコントローラである。USBデバイス242は、USB規格の接続端子を提供するためのデバイスである。IEEE1394デバイス243は、IEEE1394規格の接続端子を提供するためのデバイスである。セントロニクスデバイス244は、セントロニクス仕様の接続端子を提供するためのデバイスである。
オペレーションパネル202は、オペレータが融合機101に入力を行うためのハードウェア(操作部)であると共に、オペレータが融合機101から出力を得るためのハードウェア(表示部)である。
図5は、本発明の実施の形態における融合機の外観図である。図5には、撮像部121の位置と、印刷部122の位置と、オペレーションパネル202の位置が図示されている。図5には更に、読取原稿のセット先となる原稿セット部301と、印刷用紙の給紙先となる給紙部302と、印刷用紙の排紙先となる排紙部303が図示されている。
オペレーションパネル202は、図6のように、タッチパネル311と、テンキー312と、スタートボタン313と、リセットボタン314と、機能キー315と、初期設定ボタン316により構成される。タッチパネル311は、タッチ操作で入力を行うためのハードウェア(タッチ操作部)であると共に、画面表示で出力を得るためのハードウェア(画面表示部)である。テンキー312は、キー(ボタン)操作で数字入力を行うためのハードウェアである。スタートボタン313は、ボタン操作でスタート操作を行うためのハードウェアである。リセットボタン314は、ボタン操作でリセット操作を行うためのハードウェアである。機能キー315は、キー(ボタン)操作でCSDKアプリ146やJSDKアプリ147による操作画面を表示させるためのハードウェアである。初期設定ボタン316は、ボタン操作で初期設定画面を表示させるためのハードウェアである。
原稿セット部301は、ADF(自動原稿搬送装置)321と、フラットベッド322と、フラットベッドカバー323により構成される。給紙部302は、4個の給紙トレイにより構成される。排紙部303は、1個の排紙トレイにより構成される。ADF321には、複数枚の読取原稿を重ねてセットすることができる。フラットベッド322には、読取原稿を下向きにセットする。
(JSDK)
図7は、JSDKアプリとJSDKプラットフォームのクラス図である。JSDKアプリ147とJSDKプラットフォーム148は、全体で1プロセスとして、同一プロセス上で実行される。JSDKアプリ147とJSDKプラットフォーム148中の各ブロックは、それぞれこの1プロセス上のスレッドとして、スレッド単位で並列的に実行(マルチスレッド)される。JSDKアプリ147とJSDKプラットフォーム148は、Java(登録商標)コンパイラによりソースコードからバイトコードに一括翻訳されており、Java(登録商標)仮想マシンにより逐次実行される。JSDKアプリ147とJSDKプラットフォーム148は、Java(登録商標) 2 Micro EditionのPersonal Basis Profileをベースとする実装となっている。
JSDKアプリ147としては、ユーザアプリ701と、JSDK GUI Manager711と、Task Bar Manager712等が存在する。
ユーザアプリ701は、融合機101のユーザ(例えばベンダ)がJSDKを使用して開発したJSDKアプリである。JSDK GUI Manager711は、他のJSDKアプリ(ユーザアプリ701等)を操作対象とする操作画面の表示等を行うJSDKアプリである。Task Bar Manager712は、他のJSDKアプリ(ユーザアプリ701等)を操作対象とするタスクバーの表示等を行うJSDKアプリである。
ユーザアプリ701はここでは、スタンドアロンアプリケーションやアプレットと並ぶJava(登録商標)アプリケーションであるXletである。JSDK GUI Manager711とTask Bar Manager712はここでは、独自の拡張を施したXlet(XletEx)である。
JSDKプラットフォーム148には、JSDK Main721と、JSDK Environment722と、Locale Manager723と、Xlet Manager731と、Multi Xlet Manager732と、JSDK Manager733と、Send Manager741と、Event Manager742と、System Event Manager743と、Panel Manager744と、Install Manager745と、Server/Client Manager746と、Security Manager747等のクラスが存在する。
JSDK Main721は、JSDKシステムの起動設定を行うクラスである。JSDK Environment722は、JSDKシステムの起動環境設定を行うクラスである。Locale Manager723は、国際化対応(言語指定)を行うクラスである。
Xlet Manager731は、1対1でXletのライフサイクルを管理するクラスである。ここでは、5個のXletのライフサイクルが1対1で5個のXlet Manager731によって管理される。Multi Xlet Manager732は、全てのXlet Manager731のライフサイクルを管理するクラスである。ここでは、5個のXlet Manager731のライフサイクルが全て1個のMulti Xlet Manager732によって管理される。JSDK Manager733は、JSDKシステム全体のライフサイクルを管理するクラスである。例えば、Multi Xlet Manager732,Send Manager741,Event Manager742,System Event Manager743,Panel Manager744,Install Manager745,Server/Client Manager746,Security Manager747のライフサイクルが、JSDK Manager733によって管理される。
System Event Manager743は、図3のプラットフォーム132からのシステムイベント(電力モード等)の管理を行うクラスである。Panel Manager744は、1個のXletがオペレーションパネル202の画面を占有する際の調停等を行うクラスである。Install Manager745は、SDcardやWebからのインストールやアンインストールの管理を行うクラスである。
図7のJSDKシステムには、APIとして、JSDK API751とJSDK API752等が存在する。なお、XletとXletExの差異として、オブジェクトにアクセスするのにJSDK API751の利用とJSDKプラットフォーム148へのアクセスが可能である点が挙げられる。図3の融合機101にはさらに、図7のJSDKシステムに係る要素として、C言語とJava(登録商標)言語のインタフェースとなるJSDK Session753とNative JSDK Session754等が存在する。図3の融合機101にはさらに、図7のJSDKシステムに係る要素として、Java(登録商標)コンパイラによりソースコードからバイトコードに一括翻訳されたJava(登録商標)プログラムを逐次実行するためのJava(登録商標)仮想マシンであるCVM(コンパクト仮想マシン)755等が存在する。
(Security Manager)
Security Manager(セキュリティマネージャ)747は、Java(登録商標)で元々提供されているSecurityManagerクラスを拡張したクラスであり、JSDKプラットフォーム148上において不正なアプリケーションが実行されないよう、セキュリティ機構を実現する。すなわち、ユーザアプリ701は、JSDKプラットフォーム148における各種のクラスのうち、JSDK公開クラスとJava(登録商標)標準クラス(以下、単に「標準クラス」という。)に対するアクセスが許可されるが、そのアクセス時には、ユーザアプリ701からセキュリティマネージャ747に対してアクセス権限に関する問い合わせが行われる。
図8は、セキュリティマネージャの機能を説明するための図である。例えば、ユーザアプリ701が、JSDKプラットフォーム148におけるJSDK公開クラス148aにアクセスすると(S101)、それに基づいてJSDK非公開クラス148b及び標準クラス148cが呼び出される(S102、S103)。S101〜S103は、例えば、或るJSDK公開クラス148aのコンストラクタがユーザアプリ701に呼び出され、当該JSDK公開クラス148aのスーパークラスとしてのJSDK非公開クラス148b及び標準クラス148cのコンストラクタが連鎖的に呼び出されるような場合を想定するとよい。なお、JSDK公開クラスとは、そのインタフェースが公開されているクラスをいい、JSDK非公開クラスとは、そのインタフェースが非公開のクラスをいう。
続いて、標準クラス148cは、セキュリティマネージャ747に対して当該ユーザアプリ701の権限の問い合わせを行う(S104)。問い合わせに応じ、セキュリティマネージャ747は、Policyオブジェクトより、JSDKプラットフォーム148のセキュリティポリシーを読み出し、当該ユーザアプリ701の権限を判断する(S105)。なお、Policyオブジェクトは、JSDKプラットフォーム148の起動時等において、JSDKプラットフォーム148のセキュリティポリシーが予め設定されたファイル(以下「セキュリティポリシー設定ファイル」という。)よりセキュリティポリシーを読み込んで保持しておくためのオブジェクトである(S106)。
セキュリティマネージャ148は、当該ユーザアプリ701が、当該JSDK非公開クラス148bに対するアクセス権を有していないと判断すると例外を発生させる(S107)。当該例外は、標準クラス148c、JSDK非公開クラス148b、JSDK公開クラス148aを介してユーザアプリ701に通知される(S108、S109、S110)。
本実施の形態におけるJSDKプラットフォーム148のセキュリティポリシーは、セキュリティレベルに基づいて定義されている。ここで、セキュリティレベルとは、各ユーザアプリ701の権限を分類するための情報をいい、例えば、3段階のレベルを有する。すなわち、セキュリティポリシー設定ファイルには、セキュリティレベルごとに融合機101の各種のリソースに対するアクセス権限が設定されている。
図9は、セキュリティポリシー設定ファイルの定義例を示す図である。図9では、便宜上、アクセス権限の内容の具定例は記載されていないが、例えば、レベル1のアプリケーションは、JSDKプラットフォーム148と同じ権限(非公開クラス148bも含めて全てのリソースへのアクセスが可能な権限)を有し、レベル2のアプリケーションは、レベル1に比べてリソースへのアクセスが制限され、レベル3のアプリケーションは、リソースへのアクセスが更に制限されるといったような内容が定義される。
一方、各ユーザアプリ701には、予めセキュリティレベルが付与されている。したがって、図8においてセキュリティマネージャ747は、当該ユーザアプリ701のセキュリティレベルとセキュリティレベル設定ファイルの設定内容とを照合することにより、当該ユーザアプリ701の権限を判断する。
なお、セキュリティレベルの付与及び変更は、例えば融合機101のベンダに対する申請によって行うようにしてもよい。そうすることで、各ユーザアプリ701の権限の管理を融合機101のベンダが厳格に行うことができる。また、各ユーザアプリ701に対するセキュリティレベルの値は、所定のファイル内に定義しておき、そのファイルに基づいてセキュリティマネージャ747が判断してもよいし、ユーザアプリ701がセキュリティマネージャ747に通知するようにしてもよい。
例えば、レベル1が付与されたユーザアプリ701の動作は、図10のようになる。図10は、レベル1のユーザアプリの動作を説明するための図である。
レベル1のユーザアプリ701は、JSDK公開クラス148aのみならず、JSDK非公開クラス148bに対するアクセスも認められる。したがって、いずれかに対する呼び出しに基づき(S201、S202)、標準クラス148cが呼び出される(S203、S204)。標準クラス148cは、セキュリティマネージャ747に対して当該ユーザアプリ701の権限の問い合わせを行う。セキュリティマネージャ747は、当該ユーザアプリ701のセキュリティレベル(レベル1)とセキュリティポリシー設定ファイルの設定内容とを照合することにより、当該ユーザアプリ701の当該非公開クラス148bに対するアクセスを許可する。
(列挙型)
以下、上記のような仕組みを有するJSDKプラットフォーム148において、Java(登録商標)言語で列挙型を実現する例について説明する。
図11は、本発明の実施の形態におけるJSDKプラットフォームにおいて列挙型の実現例を説明するための図である。
図11では、列挙値をクラスのオブジェクトとして定義する例を示している。すなわち、定義800は、当該クラスとしてJSDKプラットフォーム148に予め実装されるFontStyleクラスの定義例を示す。記述801に示されるように、FontStyleクラスの定義にはfinal修飾子が付加されている。これによって、FontStyleクラスの継承が禁止される。また、FontStyleクラスはCoreFontクラスを継承している。ここで、CoreFontクラスはJSDK非公開クラスの一つとして定義されているクラスである。更に、記述804に示されるように、FontStyleクラスのコンストラクタには、public修飾子及びprotected修飾子が付加されていない。これによって、同一のパッケージ内及びサブクラスに対してのみFontStyleクラスのオブジェクトの生成が許可される。また、記述805に示されるように、コンストラクタの中では、親クラス(ここではCoreFontクラス)のコンストラクタを呼び出すようにしておく。
記述802及び記述803では、列挙値としてFontSytleクラスのオブジェクトであるPLAINとBOLDとがインスタンス化されている。なお、FontStyleクラスは、JSDK公開クラスとして実装されている。
FontStyleクラスを上記のように定義することで、列挙値の拡張が必要となった場合(例えば、新たな列挙値としてITALICの追加が必要となった場合)、定義900に示されるような実装をオプションライブラリとして追加的に行うことができる。ここで、追加的にとは、JSDKプラットフォーム148のソースコード(ここでは、FontStyleクラスの定義)を変更する必要がないことを意味する。すなわち、当該オプションライブラリを配布されたユーザは、当該オプションライブラリを融合機101にインストールすれば列挙値の拡張を行うことができる。
定義900では、記述901に示されるようにFontStyleクラスのサブクラスとしてFontStyleSubクラスを定義している。なお、FontStyleSubクラスについてもfinal修飾子を付加することで継承を禁止しておくとよい。ところで、上記においてFontStyleクラスの継承は禁止される旨を説明したが、厳密には、同一パッケージ内であればFontStyleクラスの継承は許可される。したがって、FontStyleSubクラスをFontStyleクラスと同一パッケージとすることでFontStyleクラスの継承が可能となる。図11では、FontStyleクラスのパッケージは、記述806に示されるように「ja.co.rrr.function.font」であるため、FontStyleSubクラスのパッケージも「ja.co.rrr.function.font」(記述905)としておく。
記述902は、新たな列挙値のITALICがFontStyleSubクラスのインスタンスとして定義されている。但し、FontStyleSubクラスは、FontStyleクラスのサブクラスであるため、ITALICはFontStyle型として扱うことができる。
なお、記述903に示されるように、FontStyleSubクラスのコンストラクタは、FontStyleクラスと同様にpublic修飾子及びpretected修飾子を付加しない。また、記述904に示されるように親クラス(ここではFontStyleクラス)のコンストラクタを呼び出すようにしておく。
図11の継承関係をクラス図に示すと図12のようになる。図12は、本発明の実施の形態において列挙値を定義するためのクラスの継承関係を示す図である。
図11で既に説明したとおり、FontStyleクラス502は、CoreFontクラス501を継承する。ここで、CoreFontクラスはJSDK非公開クラスであり、セキュリティレベルがレベル1のアプリケーションでないとアクセスは許可されない。一方、FontStyleクラス502は、JSDK公開クラスである。なお、CoreFontクラス501及びFontStyleクラス502は、JSDKプラットフォーム148に予め実装されているクラスである。
フォントの種類を表す列挙値について新たな拡張が必要となった場合、FontStyleクラス502を継承して、FontStyleSubクラス503が定義される。ここで、ユーザアプリ701において、FontStyleSubクラス503を継承したユーザ拡張クラス504をパッケージ「ja.co.rrr.function.font」内に定義しようとしても、当該ユーザアプリ701に対してレベル1のセキュリティレベルが付与されなければ、ユーザ拡張クラス504を利用することはできない。
すなわち、図8において説明したように、ユーザ拡張クラス504をインスタンス化しようとすると、FontStyleSubクラス503、FontStyleクラス502及びCoreFontクラス501のコンストラクタが呼び出され、CoreFontクラス501からのセキュリティマネージャ747への問い合わせによって、セキュリティマネージャ747は、当該ユーザアプリ701の権限(セキュリティレベル)を判断する。その結果当該ユーザアプリ701のセキュリティレベルがレベル1でなければ、セキュリティマネージャ747は例外を発生させる。これによって、ユーザ拡張クラス504の利用を禁止し、予期せぬ列挙値の拡張を防止することができる。
なお、ユーザ拡張クラス504をFontStyleSubクラス503と異なるパッケージにおいて定義した場合は、FontStyleSubクラス503の定義におけるfinal修飾子によって、異なるパッケージにおける継承は禁止されているため、やはりセキュリティマネージャ747によって例外が発生させられる。
なお、上記においては、列挙値の拡張例を説明したが、本発明は、列挙値の拡張に限定されず、JSDKプラットフォーム148のようなフレームワークに対するサブクラス化等による様々な機能拡張を行う際のセキュリティの確保に対して有効である。
以上、本発明の実施例について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
101 融合機
111 ハードウェア
112 ソフトウェア
113 融合機起動部
121 撮像部
122 印刷部
123 その他のハードウェア
131 アプリケーション
132 プラットフォーム
133 アプリケーションプログラムインタフェース
134 エンジンインタフェース
135 仮想アプリケーションサービス
141 コピーアプリ
142 プリンタアプリ
143 スキャナアプリ
144 ファクシミリアプリ
145 ネットワークファイルアプリ
146 CSDKアプリ
147 JSDKアプリ
148 JSDKプラットフォーム
151 コントロールサービス
152 システムリソースマネージャ
153 ハンドラ
161 ネットワークコントロールサービス
162 ファクシミリコントロールサービス
163 デリバリコントロールサービス
164 エンジンコントロールサービス
165 メモリコントロールサービス
166 オペレーションパネルコントロールサービス
167 サーティフィケーションコントロールサービス
168 ユーザディレクトリコントロールサービス
169 システムコントロールサービス
171 ファクシミリコントロールユニットハンドラ
172 イメージメモリハンドラ
181 Webブラウザ
182 Webサーバソフト
183 SDKアプリケーションサービス
201 コントローラ
202 オペレーションパネル
203 ファクシミリコントロールユニット
211 CPU
212 ASIC
221 NB
222 SB
231 MEM−P
232 MEM−C
233 HDD
234 メモリカードスロット
235 メモリカード
241 NIC
242 USBデバイス
243 IEEE1394デバイス
244 セントロニクスデバイス
301 原稿セット部
302 給紙部
303 排紙部
311 タッチパネル
312 テンキー
313 スタートボタン
314 リセットボタン
315 機能キー
316 初期設定ボタン
321 ADF
322 フラットベッド
323 フラットベッドカバー
501 CoreFontクラス
502 FontStyleクラス
503 FontStyleSubクラス
504 ユーザ拡張クラス
711 JSDK GUI Manager
712 Task Bar Manager
721 JSDK Main
722 JSDK Environment
723 Locale Manager
731 Xlet Manager
732 Multi Xlet Manager
733 JSDK Manager
741 Send Manager
742 Event Manager
743 System Event Manager
744 Panel Manager
745 Install Manager
746 Server/Client Manager
747 Security Manager
751 JSDK API
752 JSDK API
753 JSDK Session
754 Native JSDK Session
755 CVM

Claims (8)

  1. インタフェースの少なくとも一部が公開されているフレームワークを有し、前記フレームワークに基づいて作成されたアプリケーションプログラムを実行可能な装置であって、
    複数のレベルに分類される権限に関して、前記アプリケーションプログラムに付与されたレベルを判断し、前記レベルに応じて当該アプリケーションプログラムによる前記フレームワークの利用を制限するセキュリティ管理手段と、
    記レベルごとに前記フレームワークの利用の権限を示す情報を管理する権限管理手段とを有し、
    前記セキュリティ管理手段は、前記権限管理手段に基づいて前記フレームワークの利用を制限することを特徴とする装置。
  2. 前記フレームワークは複数のクラスによって構成され、
    前記セキュリティ管理手段は、前記アプリケーションプログラムが前記クラスを継承させたサブクラスを利用する際に、前記レベルに応じて当該アプリケーションプログラムによる前記クラスの利用を制限することを特徴とする請求項記載の装置。
  3. 前記複数のクラスの一つは列挙値を定義するクラスであり、
    前記セキュリティ管理手段は、前記アプリケーションプログラムが前記列挙値を定義するクラスを継承させたサブクラスを利用する際に、前記レベルに応じて当該アプリケーションプログラムによる前記列挙値を定義するクラスの利用を制限することを特徴とする請求項記載の装置。
  4. インタフェースの少なくとも一部が公開されているフレームワークを有し、前記フレームワークに基づいて作成されたアプリケーションプログラムを実行可能な装置におけるセキュリティ管理方法であって、
    複数のレベルに分類される権限に関して、前記アプリケーションプログラムに付与されたレベルを判断する判断手順と、
    記レベルに応じて当該アプリケーションプログラムによる前記フレームワークの利用を制限するセキュリティ管理手順とを有し、
    前記セキュリティ管理手順は、前記レベルごとに前記フレームワークの利用の権限を示す権限情報に基づいて前記フレームワークの利用を制限することを特徴とするセキュリティ管理方法。
  5. 前記フレームワークは複数のクラスによって構成され、
    前記セキュリティ管理手順は、前記アプリケーションプログラムが前記クラスを継承させたサブクラスを利用する際に、前記レベルに応じて当該アプリケーションプログラムによる前記クラスの利用を制限することを特徴とする請求項記載のセキュリティ管理方法。
  6. 前記複数のクラスの一つは列挙値を定義するクラスであり、
    前記セキュリティ管理手順は、前記アプリケーションプログラムが前記列挙値を定義するクラスを継承させたサブクラスを利用する際に、前記レベルに応じて当該アプリケーションプログラムによる前記列挙値を定義するクラスの利用を制限することを特徴とする請求項記載のセキュリティ管理方法。
  7. 請求項乃至いずれか一項記載のセキュリティ管理方法をコンピュータに実行させるためのセキュリティ管理プログラム。
  8. 請求項記載のセキュリティ管理プログラムを記録したコンピュータ読み取り可能な記録媒体。
JP2011123085A 2011-06-01 2011-06-01 装置、セキュリティ管理方法、セキュリティ管理プログラム及び記録媒体 Expired - Fee Related JP5287930B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011123085A JP5287930B2 (ja) 2011-06-01 2011-06-01 装置、セキュリティ管理方法、セキュリティ管理プログラム及び記録媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011123085A JP5287930B2 (ja) 2011-06-01 2011-06-01 装置、セキュリティ管理方法、セキュリティ管理プログラム及び記録媒体

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2005312834A Division JP4787594B2 (ja) 2005-10-27 2005-10-27 装置、セキュリティ管理方法、セキュリティ管理プログラム及び記録媒体

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2013071868A Division JP2013152743A (ja) 2013-03-29 2013-03-29 装置、セキュリティ管理方法、セキュリティ管理プログラム及び記録媒体

Publications (2)

Publication Number Publication Date
JP2011165222A JP2011165222A (ja) 2011-08-25
JP5287930B2 true JP5287930B2 (ja) 2013-09-11

Family

ID=44595748

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011123085A Expired - Fee Related JP5287930B2 (ja) 2011-06-01 2011-06-01 装置、セキュリティ管理方法、セキュリティ管理プログラム及び記録媒体

Country Status (1)

Country Link
JP (1) JP5287930B2 (ja)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5940590A (en) * 1997-05-31 1999-08-17 International Business Machines Corporation System and method for securing computer-executable program code using task gates
IL139327A (en) * 1999-11-22 2005-06-19 Sun Microsystems Inc Mechanism for determining restrictions to impose on an implementation of a service
US20050091658A1 (en) * 2003-10-24 2005-04-28 Microsoft Corporation Operating system resource protection
JP4994575B2 (ja) * 2004-03-12 2012-08-08 キヤノン株式会社 ネットワークインターフェース装置及びその制御方法、及び画像形成システム
JP4787594B2 (ja) * 2005-10-27 2011-10-05 株式会社リコー 装置、セキュリティ管理方法、セキュリティ管理プログラム及び記録媒体

Also Published As

Publication number Publication date
JP2011165222A (ja) 2011-08-25

Similar Documents

Publication Publication Date Title
US8264717B2 (en) Image forming apparatus, information processing apparatus, information processing method, information processing program and storage medium
JP5037422B2 (ja) 画像形成装置、アクセス制御方法、及びアクセス制御プログラム
JP4597834B2 (ja) 画像形成装置、情報処理方法、情報処理プログラム及び記録媒体
JP4625343B2 (ja) 画像形成装置、端末装置、情報処理方法、情報処理プログラム、及び記録媒体
US20080235765A1 (en) Information processing apparatus, access control method, access control program product, recording medium, and image forming apparatus
JP4843386B2 (ja) 機器、情報処理方法、情報処理プログラム、及び記録媒体
JP4787594B2 (ja) 装置、セキュリティ管理方法、セキュリティ管理プログラム及び記録媒体
US20060140658A1 (en) Image forming apparatus, install method, and computer readable recording medium where an install program is recorded
JP5664692B2 (ja) 電子機器、画像形成装置、情報処理方法、情報処理プログラム、及び記録媒体
JP2007048270A (ja) 画像形成装置、情報処理装置、情報処理方法、情報処理プログラム、及び記録媒体
JP2013152743A (ja) 装置、セキュリティ管理方法、セキュリティ管理プログラム及び記録媒体
JP5287930B2 (ja) 装置、セキュリティ管理方法、セキュリティ管理プログラム及び記録媒体
US20090217053A1 (en) Image forming apparatus, data processing method, and computer readable recording medium
JP5565439B2 (ja) 装置、情報処理方法、情報処理プログラム、及び記録媒体
JP2005269439A (ja) 画像形成装置、情報処理方法、情報処理プログラム、及び記録媒体
JP6330933B2 (ja) 機器、情報処理システム、情報処理方法、及びプログラム
JP5477425B2 (ja) 情報処理装置、アクセス制御方法、アクセス制御プログラム、及び記録媒体
US10484564B2 (en) Image forming apparatus and method for controlling the same comprising a storage medium that indicates whether the image forming apparatus is in a setting of checking a signature when an application is installed
JP2010218469A (ja) 情報処理装置、情報処理方法、プログラムおよび記録媒体
JP6089794B2 (ja) 機器、情報処理システム、情報処理方法、及びプログラム
JP2017182682A (ja) 電子機器
JP2011060236A (ja) 情報処理装置、開発支援プログラム、及びソフトウェア統合開発環境
JP2005267447A (ja) 画像形成装置及び画像形成方法
JP2017182688A (ja) 電子機器

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110601

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130121

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130129

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130329

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130520

R151 Written notification of patent or utility model registration

Ref document number: 5287930

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

LAPS Cancellation because of no payment of annual fees