JP2013152743A - Device, security management method, security management program and recording medium - Google Patents
Device, security management method, security management program and recording medium Download PDFInfo
- Publication number
- JP2013152743A JP2013152743A JP2013071868A JP2013071868A JP2013152743A JP 2013152743 A JP2013152743 A JP 2013152743A JP 2013071868 A JP2013071868 A JP 2013071868A JP 2013071868 A JP2013071868 A JP 2013071868A JP 2013152743 A JP2013152743 A JP 2013152743A
- Authority
- JP
- Japan
- Prior art keywords
- class
- security
- framework
- application program
- security management
- 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
Links
Images
Abstract
Description
本発明は、装置、セキュリティ管理方法、セキュリティ管理プログラム及び記録媒体に関し、特にインタフェースの少なくとも一部が公開されているフレームワークを有し、前記フレームワークに基づいて作成されたアプリケーションを実行可能な装置、セキュリティ管理方法、セキュリティ管理プログラム及び記録媒体に関する。 The present invention relates to an apparatus, a security management method, a security management program, and a recording medium, and more particularly, an apparatus having a framework with at least a part of an interface open and capable of executing an application created based on the framework The present invention relates to a security management method, a security management program, and a recording medium.
Java(登録商標)言語にはC/C++言語のように列挙型(enum型)が用意されていないため、ある変数の取り得る値をあらかじめ指定したい場合は、図1に示されるような定義によって、列挙型を擬似的に実現することが可能である。 Since the Java (registered trademark) language does not have an enumerated type (enum type) as in the C / C ++ language, if you want to specify possible values of a variable in advance, use the definition shown in FIG. The enumeration type can be realized in a pseudo manner.
図1は、Java(登録商標)言語において列挙型を実現するための第一の方法を説明するための図である。 FIG. 1 is a diagram for explaining a first method for realizing an enumeration type in the Java (registered trademark) language.
図1では、列挙値に相当する定数の宣言を「final static int」によって行う例を示している。すなわち、(A)では、フォントの種類を表現する定数(PLAIN、BOLD)が、以下のように定義されている。 FIG. 1 shows an example in which constants corresponding to enumerated values are declared by “final static int”. That is, in (A), constants (PLAIN, BOLD) representing the type of font are defined as follows.
public final static int PLAIN = 1 ;
public final static int BOLD = 2 ;
これにより、(B)に示されるようなcreateFont()メソッドの呼び出し側では、第二引数(fontStyle)の値としてPLAIN、BOLDを指定することができる。
public final static int PLAIN = 1;
public final static int BOLD = 2;
Thus, PLAIN and BOLD can be designated as the value of the second argument (fontStyle) on the call side of the createFont () method as shown in (B).
ただし、図1の方法は、新たな型が定義されるわけではなく、PLAIN、BOLD等は既存の型(ここでは、int型)として扱われるため、createFont()メソッドの第二引数には任意の値を指定することができてしまう。従って、createFont()メソッド内で第二引数の値の範囲チェックを行う必要がある。 However, the new type is not defined in the method of Fig. 1, and PLAIN, BOLD, etc. are treated as existing types (here, int type), so the second argument of the createFont () method is optional. Can be specified. Therefore, it is necessary to check the range of the second argument value in the createFont () method.
また、定義された定数と同じ型であれば、他の引数(例えば、createFont()メソッドの第三引数であるint型のsize)に対しても、当該定数(PLAIN、BOLD等)を指定することができ、コンパイラではそのコーディングミスを検出することができず、実行時に予期せぬエラーを発生させる可能性がある。 If the type is the same as the defined constant, specify the constant (PLAIN, BOLD, etc.) for other arguments (for example, int type size, which is the third argument of the createFont () method). The compiler cannot detect the coding mistake and may cause an unexpected error at runtime.
そこで、一般的には図2に示されるような定義によって列挙型を実現することが多い。図2は、Java(登録商標)言語において列挙型を実現するための第二の方法を説明するための図である。 Therefore, in general, enumeration types are often realized by definitions as shown in FIG. FIG. 2 is a diagram for explaining a second method for realizing the enumeration type in the Java (registered trademark) language.
図2では、列挙値をクラスのオブジェクトとして定義する例を示している。すなわち、(A)では、フォントの種類を表現する定数(PLAIN、BOLD)が、以下のようにFontStyleクラスのインスタンスとして定義されている。 FIG. 2 shows an example in which enumerated values are defined as class objects. That is, in (A), constants (PLAIN, BOLD) representing the font type are defined as instances of the FontStyle class as follows.
public final static int PLAIN = new FontStyle() ;
public final static int BOLD = new FontStyle() ;
これにより、(B)に示されるようなcreateFont()メソッドの第二引数の型を「FontStyle」型として定義することが可能となる。したがって、createFont()メソッドの第二引数にFontStyle型以外の値が指定されるとコンパイルエラーとなり、実行時のエラーを防ぐことが可能となる。また、図2の例では、FontStyleクラスの定義にfinal修飾子が付加されているため、FontSytleクラスのサブクラスが定義されるのを防止することができ、サブクラスの定義による想定外の定数の拡張を防止することができる。よって、定数が所定の範囲内であることが保証され、createFont()メソッド内部での値の範囲チェックを行う必要を無くすことができる。
public final static int PLAIN = new FontStyle ();
public final static int BOLD = new FontStyle ();
As a result, the type of the second argument of the createFont () method as shown in (B) can be defined as the “FontStyle” type. Therefore, if a value other than the FontStyle type is specified as the second argument of the createFont () method, a compile error will occur, and an error during execution can be prevented. In the example of Fig. 2, the final modifier is added to the definition of the FontStyle class, so it is possible to prevent the subclass of the FontSytle class from being defined. Can be prevented. Therefore, it is guaranteed that the constant is within a predetermined range, and it is possible to eliminate the need to check the value range within the createFont () method.
しかしながら、上記のようなクラス(enum型を実現するためのクラス)がいわゆるフレームワークにおいて定義されている場合、列挙値を拡張するためにはFontStyleクラスのサブクラス化が行えないため、FonsStyleクラスの定義自体を変更しなければならない。したがって、フレームワークの提供者は、当該フレームワークの利用者に対して、拡張部分のみならず、拡張後のフレームワーク全体を改めて提供しなければならず、場合によっては、当該フレームワークの利用者は、当該フレームワーク上に構築したアプリケーションの再コンパイル等を実行しなければならないという問題がある。 However, if the above class (class for realizing the enum type) is defined in the so-called framework, the FontStyle class cannot be subclassed to extend the enumeration values, so the FonsStyle class definition It must change itself. Therefore, the provider of the framework must provide not only the extended part but also the entire extended framework to the user of the framework. In some cases, the user of the framework However, there is a problem in that recompilation of an application built on the framework must be executed.
近年では、複写機や融合機等の画像形成装置においても、フレームワークが実装され、そのAPI(Application Program Interface)が公開されているものがある。そして、画像形成装置の利用者側で、そのAPIに基づくアプリケーションを実装することで、利用者独自の機能を追加できるものがある。したがって、上記のような問題はかかる画像形成装置においても同様に発生し得る問題である。 In recent years, some image forming apparatuses such as copiers and multi-function peripherals have a framework mounted and an API (Application Program Interface) published. Some users of the image forming apparatus can add functions unique to the user by installing an application based on the API. Therefore, the above-described problem can occur in such an image forming apparatus as well.
本発明は、上記の点に鑑みてなされたものであって、セキュリティを適切に維持しつつフレームワークの機能を拡張させることのできる装置、セキュリティ管理方法、セキュリティ管理プログラム及び記録媒体の提供を目的とする。 The present invention has been made in view of the above points, and it is an object of the present invention to provide an apparatus, a security management method, a security management program, and a recording medium that can expand the functions of the framework while appropriately maintaining security. And
そこで上記課題を解決するため、本発明は、インタフェースの少なくとも一部が公開されているフレームワークを有し、前記フレームワークに基づいて作成されたアプリケーションプログラムを実行可能な装置であって、前記アプリケーションプログラムに付与されたセキュリティレベルを判断し、前記セキュリティレベルに応じて当該アプリケーションプログラムによる前記フレームワークの利用を制限するセキュリティ管理手段と、前記セキュリティレベルごとに前記フレームワークの利用の権限を示す情報を管理する権限管理手段とを有し、前記セキュリティ管理手段は、前記権限管理手段に基づいて前記フレームワークの利用を制限することを特徴とする。 Accordingly, in order to solve the above-described problem, the present invention includes a framework having at least a part of an interface open to the public and capable of executing an application program created based on the framework, the application A security management means for determining a security level given to the program and restricting the use of the framework by the application program according to the security level; and information indicating an authority to use the framework for each security level. Authority management means for managing, and the security management means restricts the use of the framework based on the authority management means.
このような装置では、セキュリティを適切に維持しつつフレームワークの機能を拡張させることができる。 In such an apparatus, the function of the framework can be expanded while maintaining security appropriately.
また、上記課題を解決するため、本発明は、上記装置におけるセキュリティ管理方法、前記セキュリティ管理方法をコンピュータに実行させるためのセキュリティ管理プログラム、又は前記セキュリティ管理プログラムを記録した記録媒体としてもよい。 In order to solve the above problems, the present invention may be a security management method in the above apparatus, a security management program for causing a computer to execute the security management method, or a recording medium on which the security management program is recorded.
本発明によれば、セキュリティを適切に維持しつつフレームワークの機能を拡張させることのできる装置、セキュリティ管理方法、セキュリティ管理プログラム及び記録媒体を提供することができる。 According to the present invention, it is possible to provide an apparatus, a security management method, a security management program, and a recording medium that can expand the functions of a framework while appropriately maintaining security.
以下、図面に基づいて本発明の実施の形態を説明する。図3は、本発明の実施の形態における融合機を表す図である。図3の融合機101は、種々のハードウェア111と、種々のソフトウェア112と、融合機起動部113により構成される。
Hereinafter, embodiments of the present invention will be described with reference to the drawings. FIG. 3 is a diagram showing the multi-function apparatus according to the embodiment of the present invention. The
融合機101のハードウェア111としては、撮像部121と、印刷部122と、その他のハードウェア123が存在する。撮像部121は、読取原稿から画像(画像データ)を読み取るためのハードウェアである。印刷部122は、画像(画像データ)を印刷用紙に印刷するためのハードウェアである。
As the hardware 111 of the multi-function peripheral 101, there are an
融合機101のソフトウェア112としては、種々のアプリケーション131と、種々のプラットフォーム132が存在する。これらのプログラムは、UNIX(登録商標)等のOS(オペレーティングシステム)によりプロセス単位で並列的に実行される。
As the
アプリケーション131としては、コピー用のアプリケーションであるコピーアプリ141、プリンタ用のアプリケーションであるプリンタアプリ142、スキャナ用のアプリケーションであるスキャナアプリ143、ファクシミリ用のアプリケーションであるファクシミリアプリ144、ネットワークファイル用のアプリケーションであるネットワークファイルアプリ145が存在する。そしてさらに、Webページの閲覧用のソフトウェアであるWebブラウザ181、Webページの配信用のソフトウェアであるWebサーバソフト182、CSDKアプリ146やJSDKアプリ147の制御用のソフトウェアであるSDKアプリケーションサービス(SAS)183が存在する。
The
アプリケーション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は、本発明の実施の形態においてフレームワークの具体例に相当する。
The
プラットフォーム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が存在する。
The
NCS161のプロセスは、ネットワーク通信の仲介を行う。FCS162のプロセスは、ファクシミリのAPIを提供する。DCS163のプロセスは、蓄積文書の配信処理に関する制御を行う。ECS164のプロセスは、撮像部121や印刷部122に関する制御を行う。MCS165のプロセスは、メモリやハードディスクドライブに関する制御を行う。OCS166のプロセスは、オペレーションパネルに関する制御を行う。CCS167のプロセスは、認証処理や課金処理に関する制御を行う。UCS168のプロセスは、ユーザ情報の管理に関する制御を行う。SCS169のプロセスは、システムの管理に関する制御を行う。
The process of the NCS 161 mediates network communication. The
アプリケーション131とプラットフォーム132の仲介を行うソフトウェア112として、仮想アプリケーションサービス(VAS)135が存在する。VAS135は、アプリケーション131をクライアントとするサーバプロセスとして動作すると共に、プラットフォーム132をサーバとするクライアントプロセスとして動作する。VAS135は、アプリケーション131から見てプラットフォーム132を隠蔽するラッピング機能を備え、プラットフォーム132のバージョンアップに伴うバージョン差を吸収する役割等を担う。
A virtual application service (VAS) 135 exists as
融合機起動部113は、融合機101の電源投入時に最初に実行される。これにより、UNIX(登録商標)等のOSが起動され、アプリケーション131やプラットフォーム132が起動される。これらのプログラムは、ハードディスクドライブやメモリカードに蓄積されており、ハードディスクドライブやメモリカードから再生されて、メモリに起動されることになる。
The
図4は、本発明の実施の形態における融合機のハードウェア構成図である。融合機101のハードウェア111としては、コントローラ201と、オペレーションパネル202と、ファクシミリコントロールユニット(FCU)203と、撮像部121と、印刷部122が存在する。
FIG. 4 is a hardware configuration diagram of the compound machine according to the embodiment of the present invention. The hardware 111 of the multi-function peripheral 101 includes a
コントローラ201は、CPU211、ASIC212、NB221、SB222、MEM−P231、MEM−C232、HDD(ハードディスクドライブ)233、メモリカードスロット234、NIC(ネットワークインタフェースコントローラ)241、USBデバイス242、IEEE1394デバイス243、セントロニクスデバイス244により構成される。
The
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は、セントロニクス仕様の接続端子を提供するためのデバイスである。
The
オペレーションパネル202は、オペレータが融合機101に入力を行うためのハードウェア(操作部)であると共に、オペレータが融合機101から出力を得るためのハードウェア(表示部)である。
The
図5は、本発明の実施の形態における融合機の外観図である。図5には、撮像部121の位置と、印刷部122の位置と、オペレーションパネル202の位置が図示されている。図5には更に、読取原稿のセット先となる原稿セット部301と、印刷用紙の給紙先となる給紙部302と、印刷用紙の排紙先となる排紙部303が図示されている。
FIG. 5 is an external view of the compound machine in the embodiment of the present invention. FIG. 5 illustrates the position of the
オペレーションパネル202は、図6のように、タッチパネル311と、テンキー312と、スタートボタン313と、リセットボタン314と、機能キー315と、初期設定ボタン316により構成される。タッチパネル311は、タッチ操作で入力を行うためのハードウェア(タッチ操作部)であると共に、画面表示で出力を得るためのハードウェア(画面表示部)である。テンキー312は、キー(ボタン)操作で数字入力を行うためのハードウェアである。スタートボタン313は、ボタン操作でスタート操作を行うためのハードウェアである。リセットボタン314は、ボタン操作でリセット操作を行うためのハードウェアである。機能キー315は、キー(ボタン)操作でCSDKアプリ146やJSDKアプリ147による操作画面を表示させるためのハードウェアである。初期設定ボタン316は、ボタン操作で初期設定画面を表示させるためのハードウェアである。
As shown in FIG. 6, the
原稿セット部301は、ADF(自動原稿搬送装置)321と、フラットベッド322と、フラットベッドカバー323により構成される。給紙部302は、4個の給紙トレイにより構成される。排紙部303は、1個の排紙トレイにより構成される。ADF321には、複数枚の読取原稿を重ねてセットすることができる。フラットベッド322には、読取原稿を下向きにセットする。
The
(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)
FIG. 7 is a class diagram of the JSDK application and the JSDK platform. The
JSDKアプリ147としては、ユーザアプリ701と、JSDK GUI Manager711と、Task Bar Manager712等が存在する。
As the
ユーザアプリ701は、融合機101のユーザ(例えばベンダ)がJSDKを使用して開発したJSDKアプリである。JSDK GUI Manager711は、他のJSDKアプリ(ユーザアプリ701等)を操作対象とする操作画面の表示等を行うJSDKアプリである。Task Bar Manager712は、他のJSDKアプリ(ユーザアプリ701等)を操作対象とするタスクバーの表示等を行うJSDKアプリである。
The
ユーザアプリ701はここでは、スタンドアロンアプリケーションやアプレットと並ぶJava(登録商標)アプリケーションであるXletである。JSDK GUI Manager711とTask Bar Manager712はここでは、独自の拡張を施したXlet(XletEx)である。
Here, the
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等のクラスが存在する。
The
JSDK Main721は、JSDKシステムの起動設定を行うクラスである。JSDK Environment722は、JSDKシステムの起動環境設定を行うクラスである。Locale Manager723は、国際化対応(言語指定)を行うクラスである。
The
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によって管理される。
The
System Event Manager743は、図3のプラットフォーム132からのシステムイベント(電力モード等)の管理を行うクラスである。Panel Manager744は、1個のXletがオペレーションパネル202の画面を占有する際の調停等を行うクラスである。Install Manager745は、SDcardやWebからのインストールやアンインストールの管理を行うクラスである。
The
図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等が存在する。
The JSDK system shown in FIG. 7 includes JSDK API 751 and
(Security Manager)
Security Manager(セキュリティマネージャ)747は、Java(登録商標)で元々提供されているSecurityManagerクラスを拡張したクラスであり、JSDKプラットフォーム148上において不正なアプリケーションが実行されないよう、セキュリティ機構を実現する。すなわち、ユーザアプリ701は、JSDKプラットフォーム148における各種のクラスのうち、JSDK公開クラスとJava(登録商標)標準クラス(以下、単に「標準クラス」という。)に対するアクセスが許可されるが、そのアクセス時には、ユーザアプリ701からセキュリティマネージャ747に対してアクセス権限に関する問い合わせが行われる。
(Security Manager)
The Security Manager (security manager) 747 is a class that extends the Security Manager class originally provided by Java (registered trademark), and implements a security mechanism so that an unauthorized application is not executed on the
図8は、セキュリティマネージャの機能を説明するための図である。例えば、ユーザアプリ701が、JSDKプラットフォーム148におけるJSDK公開クラス148aにアクセスすると(S101)、それに基づいてJSDK非公開クラス148b及び標準クラス148cが呼び出される(S102、S103)。S101〜S103は、例えば、或るJSDK公開クラス148aのコンストラクタがユーザアプリ701に呼び出され、当該JSDK公開クラス148aのスーパークラスとしてのJSDK非公開クラス148b及び標準クラス148cのコンストラクタが連鎖的に呼び出されるような場合を想定するとよい。なお、JSDK公開クラスとは、そのインタフェースが公開されているクラスをいい、JSDK非公開クラスとは、そのインタフェースが非公開のクラスをいう。
FIG. 8 is a diagram for explaining the function of the security manager. For example, when the
続いて、標準クラス148cは、セキュリティマネージャ747に対して当該ユーザアプリ701の権限の問い合わせを行う(S104)。問い合わせに応じ、セキュリティマネージャ747は、Policyオブジェクトより、JSDKプラットフォーム148のセキュリティポリシーを読み出し、当該ユーザアプリ701の権限を判断する(S105)。なお、Policyオブジェクトは、JSDKプラットフォーム148の起動時等において、JSDKプラットフォーム148のセキュリティポリシーが予め設定されたファイル(以下「セキュリティポリシー設定ファイル」という。)よりセキュリティポリシーを読み込んで保持しておくためのオブジェクトである(S106)。
Subsequently, the
セキュリティマネージャ148は、当該ユーザアプリ701が、当該JSDK非公開クラス148bに対するアクセス権を有していないと判断すると例外を発生させる(S107)。当該例外は、標準クラス148c、JSDK非公開クラス148b、JSDK公開クラス148aを介してユーザアプリ701に通知される(S108、S109、S110)。
If the
本実施の形態におけるJSDKプラットフォーム148のセキュリティポリシーは、セキュリティレベルに基づいて定義されている。ここで、セキュリティレベルとは、各ユーザアプリ701の権限を分類するための情報をいい、例えば、3段階のレベルを有する。すなわち、セキュリティポリシー設定ファイルには、セキュリティレベルごとに融合機101の各種のリソースに対するアクセス権限が設定されている。
The security policy of the
図9は、セキュリティポリシー設定ファイルの定義例を示す図である。図9では、便宜上、アクセス権限の内容の具定例は記載されていないが、例えば、レベル1のアプリケーションは、JSDKプラットフォーム148と同じ権限(非公開クラス148bも含めて全てのリソースへのアクセスが可能な権限)を有し、レベル2のアプリケーションは、レベル1に比べてリソースへのアクセスが制限され、レベル3のアプリケーションは、リソースへのアクセスが更に制限されるといったような内容が定義される。
FIG. 9 is a diagram illustrating a definition example of a security policy setting file. In FIG. 9, for the sake of convenience, a specific example of the contents of the access authority is not described. For example, the
一方、各ユーザアプリ701には、予めセキュリティレベルが付与されている。したがって、図8においてセキュリティマネージャ747は、当該ユーザアプリ701のセキュリティレベルとセキュリティレベル設定ファイルの設定内容とを照合することにより、当該ユーザアプリ701の権限を判断する。
On the other hand, each
なお、セキュリティレベルの付与及び変更は、例えば融合機101のベンダに対する申請によって行うようにしてもよい。そうすることで、各ユーザアプリ701の権限の管理を融合機101のベンダが厳格に行うことができる。また、各ユーザアプリ701に対するセキュリティレベルの値は、所定のファイル内に定義しておき、そのファイルに基づいてセキュリティマネージャ747が判断してもよいし、ユーザアプリ701がセキュリティマネージャ747に通知するようにしてもよい。
The security level may be assigned and changed by applying to the vendor of the
例えば、レベル1が付与されたユーザアプリ701の動作は、図10のようになる。図10は、レベル1のユーザアプリの動作を説明するための図である。
For example, the operation of the
レベル1のユーザアプリ701は、JSDK公開クラス148aのみならず、JSDK非公開クラス148bに対するアクセスも認められる。したがって、いずれかに対する呼び出しに基づき(S201、S202)、標準クラス148cが呼び出される(S203、S204)。標準クラス148cは、セキュリティマネージャ747に対して当該ユーザアプリ701の権限の問い合わせを行う。セキュリティマネージャ747は、当該ユーザアプリ701のセキュリティレベル(レベル1)とセキュリティポリシー設定ファイルの設定内容とを照合することにより、当該ユーザアプリ701の当該非公開クラス148bに対するアクセスを許可する。
The
(列挙型)
以下、上記のような仕組みを有するJSDKプラットフォーム148において、Java(登録商標)言語で列挙型を実現する例について説明する。
(Enumeration)
Hereinafter, an example in which an enumeration type is realized in the Java (registered trademark) language in the
図11は、本発明の実施の形態におけるJSDKプラットフォームにおいて列挙型の実現例を説明するための図である。 FIG. 11 is a diagram for explaining an implementation example of the enumeration type in the JSDK platform according to the embodiment of the present invention.
図11では、列挙値をクラスのオブジェクトとして定義する例を示している。すなわち、定義800は、当該クラスとしてJSDKプラットフォーム148に予め実装されるFontStyleクラスの定義例を示す。記述801に示されるように、FontStyleクラスの定義にはfinal修飾子が付加されている。これによって、FontStyleクラスの継承が禁止される。また、FontStyleクラスはCoreFontクラスを継承している。ここで、CoreFontクラスはJSDK非公開クラスの一つとして定義されているクラスである。更に、記述804に示されるように、FontStyleクラスのコンストラクタには、public修飾子及びprotected修飾子が付加されていない。これによって、同一のパッケージ内及びサブクラスに対してのみFontStyleクラスのオブジェクトの生成が許可される。また、記述805に示されるように、コンストラクタの中では、親クラス(ここではCoreFontクラス)のコンストラクタを呼び出すようにしておく。
FIG. 11 shows an example in which enumerated values are defined as class objects. That is, the
記述802及び記述803では、列挙値としてFontSytleクラスのオブジェクトであるPLAINとBOLDとがインスタンス化されている。なお、FontStyleクラスは、JSDK公開クラスとして実装されている。
In
FontStyleクラスを上記のように定義することで、列挙値の拡張が必要となった場合(例えば、新たな列挙値としてITALICの追加が必要となった場合)、定義900に示されるような実装をオプションライブラリとして追加的に行うことができる。ここで、追加的にとは、JSDKプラットフォーム148のソースコード(ここでは、FontStyleクラスの定義)を変更する必要がないことを意味する。すなわち、当該オプションライブラリを配布されたユーザは、当該オプションライブラリを融合機101にインストールすれば列挙値の拡張を行うことができる。
By defining the FontStyle class as described above, if the enumeration value needs to be expanded (for example, if ITALIC needs to be added as a new enumeration value), the implementation shown in the
定義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)としておく。
In the
記述902は、新たな列挙値のITALICがFontStyleSubクラスのインスタンスとして定義されている。但し、FontStyleSubクラスは、FontStyleクラスのサブクラスであるため、ITALICはFontStyle型として扱うことができる。
なお、記述903に示されるように、FontStyleSubクラスのコンストラクタは、FontStyleクラスと同様にpublic修飾子及びpretected修飾子を付加しない。また、記述904に示されるように親クラス(ここではFontStyleクラス)のコンストラクタを呼び出すようにしておく。
As shown in the
図11の継承関係をクラス図に示すと図12のようになる。図12は、本発明の実施の形態において列挙値を定義するためのクラスの継承関係を示す図である。 The inheritance relationship of FIG. 11 is shown in a class diagram as shown in FIG. FIG. 12 is a diagram showing the inheritance relationship of classes for defining enumerated values in the embodiment of the present invention.
図11で既に説明したとおり、FontStyleクラス502は、CoreFontクラス501を継承する。ここで、CoreFontクラスはJSDK非公開クラスであり、セキュリティレベルがレベル1のアプリケーションでないとアクセスは許可されない。一方、FontStyleクラス502は、JSDK公開クラスである。なお、CoreFontクラス501及びFontStyleクラス502は、JSDKプラットフォーム148に予め実装されているクラスである。
As already described in FIG. 11, the
フォントの種類を表す列挙値について新たな拡張が必要となった場合、FontStyleクラス502を継承して、FontStyleSubクラス503が定義される。ここで、ユーザアプリ701において、FontStyleSubクラス503を継承したユーザ拡張クラス504をパッケージ「ja.co.rrr.function.font」内に定義しようとしても、当該ユーザアプリ701に対してレベル1のセキュリティレベルが付与されなければ、ユーザ拡張クラス504を利用することはできない。
When a new extension is necessary for the enumeration value representing the font type, the
すなわち、図8において説明したように、ユーザ拡張クラス504をインスタンス化しようとすると、FontStyleSubクラス503、FontStyleクラス502及びCoreFontクラス501のコンストラクタが呼び出され、CoreFontクラス501からのセキュリティマネージャ747への問い合わせによって、セキュリティマネージャ747は、当該ユーザアプリ701の権限(セキュリティレベル)を判断する。その結果当該ユーザアプリ701のセキュリティレベルがレベル1でなければ、セキュリティマネージャ747は例外を発生させる。これによって、ユーザ拡張クラス504の利用を禁止し、予期せぬ列挙値の拡張を防止することができる。
That is, as described with reference to FIG. 8, when the
なお、ユーザ拡張クラス504をFontStyleSubクラス503と異なるパッケージにおいて定義した場合は、FontStyleSubクラス503の定義におけるfinal修飾子によって、異なるパッケージにおける継承は禁止されているため、やはりセキュリティマネージャ747によって例外が発生させられる。
If the
なお、上記においては、列挙値の拡張例を説明したが、本発明は、列挙値の拡張に限定されず、JSDKプラットフォーム148のようなフレームワークに対するサブクラス化等による様々な機能拡張を行う際のセキュリティの確保に対して有効である。
In the above description, the example of enumeration value expansion has been described. However, the present invention is not limited to enumeration value expansion, and various function expansions such as subclassing a framework such as the
以上、本発明の実施例について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。 As mentioned above, although the Example of this invention was explained in full detail, this invention is not limited to the specific embodiment which concerns, In the range of the summary of this invention described in the claim, various deformation | transformation * It can be changed.
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
DESCRIPTION OF
212 ASIC
221 NB
222 SB
231 MEM-P
232 MEM-C
233 HDD
234
242
322
712 Task Bar Manager
721 JSDK Main
722 JSDK Environment
723 Local 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
そこで上記課題を解決するため、本発明は、装置であって、当該装置を制御可能とするインタフェースと、前記インタフェースのうち、特定のプログラムによるアクセス可能な第一のインタフェースに該プログラムがアクセスすると、該プログラムに付与されたアクセス権限を判断し、該アクセス権限に応じて該プログラムによる第二のインタフェースのアクセスを制限するセキュリティ管理手段とを有し、特定の前記アクセス権限が付与されたプログラムは、前記第一のインタフェースと前記第二のインタフェースとへのアクセスが許可されることを特徴とする。
Therefore, in order to solve the above-mentioned problem, the present invention is an apparatus, and when the program accesses a first interface accessible by a specific program among the interfaces that can control the apparatus, Security management means for determining an access right given to the program and restricting access of the second interface by the program according to the access right, and the program to which the specific access right is given, Access to the first interface and the second interface is permitted .
Claims (10)
前記アプリケーションプログラムに付与されたセキュリティレベルを判断し、前記セキュリティレベルに応じて当該アプリケーションプログラムによる前記フレームワークの利用を制限するセキュリティ管理手段と、
前記セキュリティレベルごとに前記フレームワークの利用の権限を示す情報を管理する権限管理手段とを有し、
前記セキュリティ管理手段は、前記権限管理手段に基づいて前記フレームワークの利用を制限することを特徴とする装置。 An apparatus having a framework in which at least a part of the interface is open and capable of executing an application program created based on the framework,
Security management means for determining a security level given to the application program and restricting the use of the framework by the application program according to the security level;
Authority management means for managing information indicating the authority to use the framework for each security level;
The security management means restricts the use of the framework based on the authority management means.
前記セキュリティ管理手段は、前記アプリケーションプログラムが前記クラスを継承させたサブクラスを利用する際に、前記セキュリティレベルに応じて当該アプリケーションプログラムによる前記クラスの利用を制限することを特徴とする請求項1又は2記載の装置。 The framework is composed of a plurality of classes,
The said security management means restrict | limits the use of the said class by the said application program according to the said security level, when the said application program uses the subclass which inherited the said class. The device described.
前記セキュリティ管理手段は、前記アプリケーションプログラムが前記列挙値を定義するクラスを継承させたサブクラスを利用する際に、前記セキュリティレベルに応じて当該アプリケーションプログラムによる前記列挙値を定義するクラスの利用を制限することを特徴とする請求項3記載の装置。 One of the plurality of classes is a class that defines an enumeration value;
When the application program uses a subclass that inherits a class that defines the enumeration value, the security management unit restricts use of the class that defines the enumeration value by the application program according to the security level. The apparatus of claim 3.
前記アプリケーションプログラムに付与されたセキュリティレベルを判断するセキュリティレベル判断手順と、
前記セキュリティレベルに応じて当該アプリケーションプログラムによる前記フレームワークの利用を制限するセキュリティ管理手順とを有し、
前記セキュリティ管理手順は、前記セキュリティレベルごとに前記フレームワークの利用の権限を示す権限情報に基づいて前記フレームワークの利用を制限することを特徴とするセキュリティ管理方法。 A security management method in an apparatus that has a framework in which at least a part of an interface is open and that can execute an application program created based on the framework,
A security level determination procedure for determining a security level given to the application program;
Security management procedures for restricting the use of the framework by the application program according to the security level,
The security management method is characterized in that the use of the framework is restricted based on authority information indicating the authority to use the framework for each security level.
前記セキュリティ管理手順は、前記アプリケーションプログラムが前記クラスを継承させたサブクラスを利用する際に、前記セキュリティレベルに応じて当該アプリケーションプログラムによる前記クラスの利用を制限することを特徴とする請求項5又は6記載のセキュリティ管理方法。 The framework is composed of a plurality of classes,
7. The security management procedure, when the application program uses a subclass that inherits the class, restricts use of the class by the application program according to the security level. The security management method described.
前記セキュリティ管理手順は、前記アプリケーションプログラムが前記列挙値を定義するクラスを継承させたサブクラスを利用する際に、前記セキュリティレベルに応じて当該アプリケーションプログラムによる前記列挙値を定義するクラスの利用を制限することを特徴とする請求項7記載のセキュリティ管理方法。 One of the plurality of classes is a class that defines an enumeration value;
The security management procedure restricts the use of the class that defines the enumerated value by the application program according to the security level when the application program uses a subclass that inherits the class that defines the enumerated value. 8. The security management method according to claim 7, wherein:
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013071868A JP2013152743A (en) | 2013-03-29 | 2013-03-29 | Device, security management method, security management program and recording medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013071868A JP2013152743A (en) | 2013-03-29 | 2013-03-29 | Device, security management method, security management program and recording medium |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011123085A Division JP5287930B2 (en) | 2011-06-01 | 2011-06-01 | Apparatus, security management method, security management program, and recording medium |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2013152743A true JP2013152743A (en) | 2013-08-08 |
Family
ID=49048981
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013071868A Pending JP2013152743A (en) | 2013-03-29 | 2013-03-29 | Device, security management method, security management program and recording medium |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2013152743A (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015064694A (en) * | 2013-09-24 | 2015-04-09 | キヤノン株式会社 | Information processing device and control method thereof, and program |
US10389901B2 (en) | 2017-09-28 | 2019-08-20 | Ricoh Company, Ltd. | Information processing device, information processing system, and information processing method |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002351563A (en) * | 2001-05-30 | 2002-12-06 | Canon Inc | Information processor, and information processing method and program |
-
2013
- 2013-03-29 JP JP2013071868A patent/JP2013152743A/en active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002351563A (en) * | 2001-05-30 | 2002-12-06 | Canon Inc | Information processor, and information processing method and program |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015064694A (en) * | 2013-09-24 | 2015-04-09 | キヤノン株式会社 | Information processing device and control method thereof, and program |
US10389901B2 (en) | 2017-09-28 | 2019-08-20 | Ricoh Company, Ltd. | Information processing device, information processing system, and information processing method |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8264717B2 (en) | Image forming apparatus, information processing apparatus, information processing method, information processing program and storage medium | |
JP4597834B2 (en) | Image forming apparatus, information processing method, information processing program, and recording medium | |
JP4625343B2 (en) | Image forming apparatus, terminal apparatus, information processing method, information processing program, and recording medium | |
JP5037422B2 (en) | Image forming apparatus, access control method, and access control program | |
US20080235765A1 (en) | Information processing apparatus, access control method, access control program product, recording medium, and image forming apparatus | |
JP4843386B2 (en) | Apparatus, information processing method, information processing program, and recording medium | |
JP4787594B2 (en) | Apparatus, security management method, security management program, and recording medium | |
US20060140658A1 (en) | Image forming apparatus, install method, and computer readable recording medium where an install program is recorded | |
JP5664692B2 (en) | Electronic device, image forming apparatus, information processing method, information processing program, and recording medium | |
JP2007048270A (en) | Image forming apparatus, information processing apparatus, information processing method, information processing program and recording medium | |
JP2013152743A (en) | Device, security management method, security management program and recording medium | |
US10545704B2 (en) | Image forming apparatus and control method to update an application in an image forming apparatus | |
JP5287930B2 (en) | Apparatus, security management method, security management program, and recording medium | |
JP4969481B2 (en) | Image forming apparatus, information processing method, and program | |
JP5565439B2 (en) | Apparatus, information processing method, information processing program, and recording medium | |
JP2005269439A (en) | Image forming apparatus, information processing method, information processing program, and recording medium | |
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 (en) | Information processor, information processing method, program and recording medium | |
JP2012018680A (en) | Device, information processing method, program and recording medium | |
JP2011060236A (en) | Information processor, development support program, and software integrated development environment | |
JP5477425B2 (en) | Information processing apparatus, access control method, access control program, and recording medium | |
JP2017182682A (en) | Electronic apparatus | |
JP2005267447A (en) | Image forming apparatus and image forming method | |
JP5121494B2 (en) | Image forming apparatus, information processing method, and information processing program | |
JP2017182688A (en) | Electronic apparatus |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20140131 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20140212 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20140227 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20140325 |