JP2018136920A - 画像形成装置及びその制御方法 - Google Patents

画像形成装置及びその制御方法 Download PDF

Info

Publication number
JP2018136920A
JP2018136920A JP2017221286A JP2017221286A JP2018136920A JP 2018136920 A JP2018136920 A JP 2018136920A JP 2017221286 A JP2017221286 A JP 2017221286A JP 2017221286 A JP2017221286 A JP 2017221286A JP 2018136920 A JP2018136920 A JP 2018136920A
Authority
JP
Japan
Prior art keywords
permission
bundle
application
image forming
prohibited
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.)
Granted
Application number
JP2017221286A
Other languages
English (en)
Other versions
JP6991837B2 (ja
Inventor
速水 祥和
Sachikazu Hayamizu
祥和 速水
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to US15/901,283 priority Critical patent/US10484564B2/en
Publication of JP2018136920A publication Critical patent/JP2018136920A/ja
Application granted granted Critical
Publication of JP6991837B2 publication Critical patent/JP6991837B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)
  • Facsimiles In General (AREA)

Abstract

【課題】開発中のアプリも含めて、画像形成装置の安全性を担保しながら、アプリのインストールを行う技術を提供する。【解決手段】アプリケーションのインストール時に、署名をチェックする設定になっているかを判定しS1001、署名をチェックする設定になっていない場合、アプリケーションに含まれるパーミッションが、禁止されたパーミッションでないかを判定するS1004。アプリケーションに含まれるパーミッションが、禁止されたパーミッションでないと判定された場合、アプリケーションのインストールを許可するS1005。【選択図】図10

Description

本発明は、アプリケーションプログラムのインストールに関するものである。
近年、画像形成装置においては、JAVA(登録商標)環境に代表されるようなアプリ動作環境が提供されている。JAVA(登録商標)の持つプログラムの可搬性を利用して、拡張可能なアプリを提供する技術が提案されている。
画像形成装置の機能やユーザビィリティの向上を図るために、上記JAVA(登録商標)環境などの環境下で動作するアプリを作成し、画像形成装置にインストールすることで、当該アプリにより所望の機能を実現できる。
アプリプラットフォームとしては、OSGi(Open Services Gateway Initiative)Service Platform(以下、OSGi)がある(非特許文献1)。OSGiは、組み込み機器向けのJAVA(登録商標)アプリプラットフォームである。OSGiでは、ソフトウェアモジュールの管理単位としてバンドルを定義しており、インストール/開始/停止/更新/アンインストールからなるライフサイクルを管理するための仕様を定義している。ここで、バンドルとは、JAVA(登録商標)モジュールのことを指し、本発明においては、アプリケーションプログラム(以下「アプリ」と略称する)と同義である。そのため、以後アプリのことをバンドルと表記する。
このようなアプリプラットフォームでは、コピー、スキャン、プリント等の組み込み機能をバンドルが提供することができる。
各バンドルは、JAVA(登録商標)の標準仕様で設けられたパーミッションと呼ばれるセキュリティアクセス権限の仕組みを持つ。このパーミッションは、各バンドル個別に定義することが可能である。
「OSGi Service Platform,Release4」, http://www.osgi.org/Download/Release4V40, 2005年10月
しかしながら、バンドルが管理者権限のような強いパーミッションをもつことで、画像形成装置内に悪影響を与えるバンドルを作ることが可能である。例えば、開発中のバンドルとして、(java.security.AllPermission)を保持するバンドルを作成する。それを開発時のテスト用の画像形成装置にインストールすることで、画像形成装置内のシステムバンドルへアクセスしてシステムバンドルの内部情報を抜き出すことも考えられる。
本発明は、開発中のアプリも含めて、画像形成装置の安全性を担保しながら、アプリのインストールを行う技術を提供することを目的とする。
本発明の画像形成装置は、アプリケーションのインストール時に、署名をチェックする設定になっているかを判定する第1の判定手段と、前記第1の判定手段で、署名をチェックする設定になっていない場合、アプリケーションに含まれるパーミッションが、禁止されたパーミッションでないかを判定する第2の判定手段と、前記第2の判定手段で、アプリケーションに含まれるパーミッションが、禁止されたパーミッションでないと判定された場合、前記アプリケーションのインストールを許可する手段を有することを特徴とする。
本発明によれば、開発中のアプリも含めて、画像形成装置の安全性を担保しながら、アプリのインストールを行うことができるという効果がある。
画像形成装置のハードウェア構成図 画像形成装置のソフトウェアモジュール階層図 バンドルのインストールする流れを示したブロック図 バンドル管理画面、インストール画面のUIを示した図 バンドルのリリースまでの状態と対応する画像形成装置の状態を説明したブロック図 バンドル管理サービスによる、署名チェック状態切り替えライセンスをインストールするフローチャート バンドルの内部構成について説明した図 禁止パーミッションリストの例を説明した図 画像形成装置にバンドルをインストールするときのインストール制御サービスのフローチャート バンドルインストール時のOSGi拡張部のフローチャート OSGi拡張部が禁止パーミッション判定を行うときのフローチャート バンドルが保持するパーミッションが、禁止パーミッションに含まれるかどうかの判定方法について説明した図 ホワイトリスト形式の禁止パーミッションについて説明したブロック図 OSGi拡張部がホワイトリスト形式で定義された禁止パーミッションの禁止パーミッション保持判定を行うときのフローチャート バンドルが保持するパーミッションが、ホワイトリスト形式の禁止パーミッションに含まれるかどうかの判定方法について説明した図 OSGi拡張部がブラックリスト形式とホワイトリスト形式の両方で定義された禁止パーミッションの禁止パーミッション保持判定を行うときのフローチャート
以下、本発明を実施するための最良の形態について図面を用いて説明する。
(実施形態1)
図1は、プリント機能やスキャン機能、ネットワーク通信機能などを備える画像形成装置130のハードウェア構成図である。
画像形成装置130は、スキャナ部113やプリンタ部114と電気的に接続され、一方でLAN116を介して外部デバイスと接続される。
CPU101は、ROM102に記憶された制御プログラム等に基づいて接続中の各種ハードウェアとのアクセスを統括的に制御し、またコントローラ内部で行われる各種処理についても統括的に制御する。
ROM102は読み出し専用の不揮発記憶領域であり、画像形成装置130のブートプログラム、ファームウェアなどが格納されている。
RAM103は、CPU101が動作するためのシステムワークメモリであり、各種データを一時記憶するためのメモリである。このRAM103は、記憶した内容を電源off後も保持可能なFRAM(登録商標)およびSRAM、電源off後に記憶内容が消去されるDRAMなどにより構成される。
HDD104は不揮発記憶領域であり、システムバンドルなどを格納する。図3で説明するインストールするバンドルを含むファームウェアは、HDD104に格納される。
操作部I/F105は、システムバス119と操作部118を接続するインタフェース部である。具体的には操作部118に表示するデータをシステムバス119から受取り表示すると共に、操作部118からの入力情報をシステムバス119へ出力する。画像形成装置130に対するユーザの指示や情報提示は、操作部118を介して行う。
ネットワークI/F106はLAN116、WAN117及びシステムバス119に接続し、外部との情報の入出力を行う。
スキャナI/F108は、スキャナ部113から受取った画像データに対して、補正、加工、及び編集を行う。
画像形成部109は、画像データの方向変換、画像圧縮、伸張部などを行う。
プリンタI/F110は、画像形成部109から送られた画像データを受取り、画像形成後にプリンタ部114にて印刷する。
図2は、本発明に関係する画像形成装置130のソフトウェアモジュール階層図である。なお図2以降に示す各ソフトウェアはROM102、もしくは、HDD104に保存され、CPU101にて実行される。また、実行時に使用する各種情報はRAM103もしくはHDD104に保持してソフトウェア機能間での各種情報のやりとりを行う。さらに外部機器との通信は、ネットワークI/F106を用いて通信を行う。
次に各ソフトウェアの説明をする。ソフトウェアは、まずオペレーティングシステム(OS)プラットフォーム201を有する。
UI202はユーザインタフェースモジュールであり、オペレータが画像形成装置130に対する各種操作・設定を行う際に、装置とユーザ操作との仲介を行うモジュールである。このモジュールは、オペレータの操作に従い、後述の各種モジュールに入力情報を転送して処理の依頼、或いはデータの設定変更等を行う。
次に、JAVA(登録商標)側の構成について述べる。
JAVA(登録商標)側のソフトウェアプラットフォームは、JavaVM207のランタイム環境として構成されており、インタプリタとしてのJavaVM207、ライブラリ208、フレームワーク群209で構成される。ライブラリ208は、標準のAPIライブラリを含んで構成される。フレームワーク群209は、OSGi210を含んで構成され、このOSGi210は、単一のJavaVM207に複数のバンドルを動作させる。更に、OSGi拡張部211は、インターフェース仕様であるOSGi210に対する実装部分を担うモジュールである。OSGi拡張部211は、OSGi210の仕様を満たす範囲で必要に応じて機能を拡張可能であることを示す。このOSGi210、及びOSGi拡張部211は、バンドルのライフサイクルの管理やバンドル間通信機能などを提供する。
このOSGi210上には、複数のシステムバンドル群212がある。システムバンドル群212としては、複数のバンドルを管理し、新たなバンドルの追加、更新、削除をするためのバンドル管理サービス214がある。バンドル管理サービス214は、PCからのインストール指示を受信する受け口でもある。インストール指示を受診したバンドル管理サービス214は、インストール制御サービス213を利用して、バンドルの追加、更新を行う。
更に、システムバンドル群212の中には、画像形成装置130の認証機能を担う認証バンドル215がある。認証バンドル215は、ユーザが画像形成装置に認証中に任意のバンドルから任意のタイミングで認証情報の問い合わせがあるため、停止できない特性を持つバンドルである。
一方で、後からインストールするタイプの後入れバンドル群217がある。バンドルのインストールについては、図3で示す。後入れバンドル群217として、後入れバンドル219は、画像形成装置130において各種処理をユーザに提供する。例えば、画像の加工や圧縮バンドル、印刷制限などの部門管理を行うバンドルなどがある。
各種機能を実現する後入れバンドル219は、バンドル管理サービス214の管理下で動作する。バンドル管理サービス214は、管理下に追加されたバンドルのバージョンを含むバンドル情報、ライセンス情報などを保持している。
図3は、PC300から画像形成装置130へ、後入れバンドル219をインストールする流れを示したブロック図である。
市販された後入れバンドル219は、図5で示すように改ざん防止の為、デジタル署名が付与され、そのうえで暗号化されている。また、後入れバンドル219は、パーミッション定義ファイル301が含まれる。このパーミッション定義ファイル301は、後入れバンドル219がインストール後に様々な機能を使用する上で利用可能なパーミッションを示す。ここで、パーミッションとは、JAVA(登録商標)の標準仕様で設けられたセキュリティアクセス権限の仕組みである。パーミッション定義ファイル301は、必要がなければ、保持しなくても構わない。このパーミッションは、通常以下のように、パーミッション名とnameとactionという形式で定義される。nameとactionに取りうる値は、パーミッションの種類によって異なる。また、*指定による、ワイルドカード指定が可能である。
(XXXPermission,“name”,“action”)
PC300のWEBブラウザにバンドルインストールUI303を表示し、このバンドルインストールUI303からインストールしたいバンドル219を指定し、インストールを行う。バンドルインストールUI303で指定されたバンドルを受信したバンドル管理サービス214は、それをインストール制御サービス213に渡す。バンドルファイルを受信したインストール制御サービス213は、受信したバンドル219の復号化処理や正当性を示すデジタル署名をもつかの確認処理を行った上で、確認に問題がない場合は、最終的にOSGi拡張部211にインストールを依頼する。図7で示す禁止パーミッションリスト302は、HDD104に格納されている。OSGi拡張部211は、後述する画像形成装置130がデジタル署名チェックオフ状態の場合、この禁止パーミッションリスト302を参照し、バンドル219がもつパーミッションに禁止パーミッションを含むかどうかを確認した上でインストールを行う。ここで、パーミッションの管理は、OSGi210の規定に含まれ、また、最終的なバンドルのインストール処理を担っていることからも、禁止パーミッションのチェックは、OSGi拡張部211で実行することが最適と考えられる。インストールされたバンドルは、バンドル管理サービス214によって管理される。
図4は、バンドルインストールUI303における、バンドル管理画面400とインストール画面430を示した図である。
バンドル名401は、管理されているバンドル名を表示する。この例の場合、バンドルA405とバンドルB406の2つが管理されている。インストール日402は、各バンドルがインストールされた日付である。バンドルID403は、各バンドルに一意に割り振られたバンドルIDを表示している。状態404は、各バンドルの状態を示している。バンドルが開始であれば開始409、停止であれば停止412と表示される。開始ボタン416/停止ボタン413は、バンドルの開始停止を切り替える指示ボタンである。開始状態のバンドルの場合、停止ボタンとなり、停止状態のバンドルの場合、開始ボタンと表示される。開始状態のバンドル(本例では、「バンドルA405」)の停止ボタン413を押下すると、その状態404は停止に変更される。一方、停止状態のバンドル(本例では、「バンドルB406」)の開始ボタン416を押下すると、その状態404は開始に変更される。アンインストールボタン417、420は、各バンドルのアンインストール指示ボタンである。
次に、インストール画面430について説明する。参照ボタン433は、ファイルパスを選択する画面を表示する。その画面でバンドルファイルを指定すると、バンドルファイルのパス431にバンドルファイルへのパスが入力される。バンドルは、セキュリティやビジネス上の観点からインストール処理において、バンドルを復号するためのライセンスファイルが必要となる場合がある。その場合、参照ボタン434を押下すると、ファイルパスを選択する画面を表示する。そこでバンドル指定と同様にライセンスファイルを指定すると、ライセンスファイルのパス432にライセンスファイルへのパスが入力される。インストールボタン435が押下されると、バンドルファイルのパス431で指定したバンドルのインストールが開始される。
図5は、バンドルのリリースまでの状態と対応する画像形成装置の状態を説明したブロック図である。
開発環境500は、開発中のバンドル501と画像形成装置510の状態について説明したものである。開発環境500では、後述する市場環境とは異なり、ベリフィケーションを通す前の開発中であり、開発者は、自由にパーミッションを付与することができる。
バンドル501は、開発中であるため、バンドルの正当性を示すデジタル署名が付与されていない。そのため、バンドル501を画像形成装置510にインストール531を実行して動作確認を行う場合、画像形成装置510の署名チェック状態をオフ511にしておく必要がある。ここで署名チェックとは、バンドルインストール時に、バンドルに正規の署名が付与されているかをチェックするものであり、チェックした結果、正規の署名をもたない場合は、バンドルのインストールに失敗する。署名チェック状態511がオフ512とは、署名チェックを行わない状態を示す。
一方、市場環境502は、市場でリリースされた暗号化されたバンドル504と画像形成装置520の状態について説明したものである。市場環境502では、開発されたバンドルの市場リリース前には、バンドルの正当性の確認(ベリフィケーション)を行う。ベリフィケーションを行ったバンドルには、その正当性を証明する為のデジタル署名を付与する。バンドルを、画像形成装置にインストールする際に、必ずこの署名のチェックを行うことで、正当性が証明されたバンドルしかインストールすることができない。
開発したバンドル501を市場にリリースする為には、バンドルの正当性確認530が必要となる。このバンドルの正当性確認530とは、バンドルが利用するリソースが正常範囲内に収まるかなどの確認だけでなく、バンドルに適正なパーミッションが付与されているかどうかも確認される。その正当性が確認されたバンドル501には、デジタル署名503が付与される。その上で、セキュリティ確保の為に暗号化504が実施される。この暗号化を復号するめの鍵の情報を保持するために対応するライセンス505が必要となる。
また、市場環境502での画像形成装置520の状態は、署名チェック状態511をオン521にしておく必要がある。こうすることで、署名がない開発中のバンドル501は、市場の画像形成装置520にはインストールできなくなる。一方、署名503をもつリリースされた暗号化バンドル504は、ライセンス505と共にインストール532を実行することで画像形成装置520にインストール可能である。
このように、画像形成装置の署名チェック状態は重要な設定であるため、市場において簡単に切り替えることはできない仕組みが必要である。そこで、533で示すように、画像形成装置の署名チェック状態は、署名チェック状態を変更する専用の署名チェック状態切替ライセンス534を利用してのみ切り替えることを可能とする。また、この署名チェック状態511のオンオフの情報は、HDD104に保持されている。
図6は、署名チェック状態切り替えライセンス534をインストールするフローチャートである。PC300からライセンスインストールUI(不図示)からバンドル管理サービス214に対して署名チェック状態切り替えライセンス534をインストールする。
S600において、バンドル管理サービス214は、受信した署名チェック状態切り替えライセンス534のインストール処理を開始する。
S601において、受信した署名チェック状態切り替えライセンス534がオン指定であるかを判断する。オン指定である場合、S602に進む。オフ指定である場合、S603に進む。または、指定されたライセンスが不正な状態である場合、S604に進む。ここで、不正な状態とは、正しいフォオーマットでないなどの状態を指す。
S602において、コードチェック状態511をオンに設定する。S603において、コードチェック状態511をオフに設定する。S604において、署名チェック状態切り替えライセンス534のインストール処理を終了する。
図7(a)は、バンドルの内部構成について説明した図である。バンドルjarファイル700は、マニフェストファイル701やバンドルの実体であるクラスファイル703だけでなく、パーミッション定義ファイル702を保持している。このパーミッション定義ファイル702の例を図7(b)に示す。ここに記載されたパーミッションが、バンドルjarファイル700が利用することができるパーミッションということになる。
図8は、禁止パーミッションリスト302の例を説明した図である。禁止パーミッションリスト302とは、バンドルがこれらのパーミッションを保持し、適宜プログラムを作成することで、例えば画像形成装置のシステムバンドルの情報を取得できる不正利用につながるパーミッション801の一覧である。これらをブラックリスト形式で列挙することで、バンドルが保持することを禁止するパーミッションであることを定義している。
図9は、画像形成装置にバンドルをインストールするときのインストール制御サービス213のフローチャートである。
S900において、バンドル管理サービス214から指定されたバンドルを受信したインストール制御サービス213は、バンドルインストール処理を開始する。
S901において、指定されたバンドルが暗号化されているかを判断する。暗号化されている場合は、S902に進む。暗号化されていないと判断した場合は、S904に進む。ここで、暗号化されているのは市販のバンドル504の状態であり、暗号化されていないのは開発中のバンドル501の状態が想定される。
S902においては、暗号化されたバンドルの場合は、一緒に指定されたライセンスに付与されたバンドル復号の為の鍵を使用して、暗号化されたバンドルを復号化する。
S903において、バンドルの復号化に成功したかどうかを判断する。失敗した場合は、S907に進んでインストールの実行は失敗する。失敗する原因としては、バンドルとライセンスの組み合わせが正しくないことが想定される。S903において、バンドルの復号化が成功した場合は、S904に進む。S904において、デバイスの署名チェック状態を判断する。S904において、署名チェックオンの場合は、S905に進む。一方、署名チェックオフの場合は、S906に進む。
S905において、バンドルに付与されている署名503が正しいかどうかを判断する。S905において、正規の署名と判断された場合は、S906に進む。正規の署名と判断されなかった場合は、S907に進んでインストールの実行は失敗する。つまり、正規の署名が付与されているかどうかで、インストールの可否を判断する。S906において、図9で示すOSGi拡張部211のインストール処理にバンドルを渡す。S908において、インストール制御サービス213のインストール処理が終了する。
図10は、S906においてインストール制御サービス213からjarを受信したバンドルインストール時のOSGi拡張部211のフローチャートである。
S1000において、OSGi拡張部211は、バンドルインストール処理を開始する。S1001において、デバイスの署名チェック状態を判断する。S1001において、署名チェックオンの場合は、S1005に進む。一方、署名チェックオフの場合は、S1002に進む。
S1002において、インストールするjarが、図3で示したように後入れのバンドルかどうかを判断する。ここで、後入れでないバンドルというのは、画像形成装置130に最初から同梱されているシステムバンドル群212である。S1002において、後入れでないと判断された場合は、S1005に進み、禁止パーミッションのチェックは省略する。これは、システムバンドル群212は、禁止パーミッションのような強いパーミッションを必要とする機能があるということと、同梱されているということで安全性は確保されているということから、省略可能とする。一方、後入れであると判断された場合は、S1003に進む。S1003において、バンドルがパーミッション定義ファイルを保持しているかを判断する。保持していない場合は、S1005に進む。一方、保持している場合は、S1004に進む。
S1004において、バンドルが保持しているパーミッションが禁止パーミッションを含むかどうかを判断する。この判断方法については、図11で示す。S1004において、禁止パーミッションを判断していないと判断した場合は、S1005に進む。一方、禁止パーミッションを保持していると判断した場合は、S1006に進んでインストールの実行は失敗する。S1005において、jarをインストール先フォルダにコピーし、バンドルのインストール実行を完了する。S1007において、OSGi拡張部211のバンドルインストール処理が終了する。
図11は、OSGi拡張部211が禁止パーミッション判定処理のフローチャートである。
S1100において、バンドルが保持するパーミッションが禁止パーミッションに含まれるかの判定処理が開始される。
S1101において、バンドルが保持するパーミッション全てに対するチェックが開始される。そのため、バンドルが保持するパーミッション全てのパーミッションに対して次のチェックを行う。
S1102において、禁止パーミッションリスト302に記載されたパーミッション全てに対するループが開始される。
S1103において、禁止パーミッションリスト302に記載された最初のパーミッションと、バンドルが保持する最初のパーミッションが一致するかを判断する。この一致するかどうかの具体的な判断方法については、図11で示す。一致したと判断した場合は、S1104に進み、禁止パーミッションを保持していると判定し、S1108において判定処理を終了する。この場合は、S1004の判定結果として、YESが返ることになる。一方、S1103において、一致していないと判断した場合は、S1105に進む。
S1105において、最後の禁止パーミッションかどうかを判定する。残っている場合は、S1103に戻り、引き続き次の禁止パーミッションとの判定処理を繰り返す。こうして、全ての禁止パーミッションのチェックが完了した後、S1106に進む。
S1106において、バンドルが保持する最後のパーミッションかどうかを判定し、残っている場合は、S1103に戻り、引き続きバンドルが保持する次のパーミッションで判定処理を繰り返す。こうして、全てのバンドルが保持するパーミッションのチェックが完了した後、S1107に進む。
S1107においては、禁止パーミッションを保持していないと判定し、S1108において判定処理を終了する。この場合は、S1004の判定結果として、NOが返ることになる。
図12は、バンドルが保持するパーミッションが、禁止パーミッションに含まれるかどうかの判定方法について説明した図である。
例1として、禁止パーミッションが(1200)の場合を説明する。この禁止パーミッション(1200)は、パーミッションとしては、(java.lang.RuntimePermission)であり、nameとして、“loadLibrary.*”が指定されている。ここで*は、ワイルドカードを示している。
バンドルが保持するパーミッションが(java.lang.RuntimePermission“loadLibrary.xxx.jar”)(1201)であった場合、パーミッションとnameが一致している。そのため、禁止パーミッションを保持していると判定される。一方、(java.lang.RuntimePermission“createClassLoader”)(1202)であった場合、パーミッションは一致しているが、nameは一致していないため、禁止パーミッションを保持していないと判定される。
例2として、禁止パーミッションが(1203)の場合を説明する。
この禁止パーミッション(1203)は、パーミッションとしては、(org.osgi.framework.AdminPermission)であり、nameとして“*”、actionとして“resource”が指定されている。ここで*は、ワイルドカードを示している。
バンドルが保持するパーミッションが(org.osgi.framework.AdminPermission“xxx”“resource”)(1204)であった場合、パーミッションとname、action全てが一致している。そのため、禁止パーミッションを保持していると判定される。一方、(org.osgi.framework,AdminPermission“*”“metadata”)(1205)であった場合、パーミッションとnameは一致しているが、actionは一致していな。そのため、禁止パーミッションを保持していないと判定される。
尚、図11は、インストールしようとしているバンドルが、禁止パーミッションを保持するかを判定するためのフローチャートであるが、判定の仕方は一例である。つまり、図11のフローチャート通りでなくてもよく、インストールしようとしているバンドルのパーミッション定義ファイルのパーミッションに、図8に記載の禁止パーミッションリストにあるパーミッションが含まれているか、いないかを判定すればよい。インストールしようとしているバンドルのパーミッション定義ファイルのパーミッションに、図8に記載の禁止パーミッションリストにあるパーミッションが含まれていない場合、禁止パーミッションが保持されていないと判定される。そして、禁止パーミッションが保持されていないと判定された場合に、インストールが実行される。
(実施形態1の変形例1)
変形例1では、実施形態1の図8で示したブラックリスト形式の禁止パーミッションではなく、ホワイトリスト形式の定義方法について述べる。
図13は、ホワイトリスト形式の禁止パーミッションについて説明したブロック図である。1300は、図8で示したブラックリスト形式の禁止パーミッション定義である。つまり、網掛けで示したここに記載されたパーミッションは、全て禁止パーミッションとなる。
一方、こうしたブラックリスト形式だと禁止パーミッションの指定が難しい(java.io.FilePermission)の定義について説明する。
1301は、(java.io.FilePermission)の禁止パーミッションを示している。FilePermissionは、nameとして対象ファイルのパス、actionとして対象ファイルに対する操作の形式の指定となっている。
一部のFilePermissionを許容して、それ以外全てを禁止したいケースを考える。禁止したい対象ファイルのパスは無限にあるため、ブラックリスト形式では、禁止パーミッションの定義ができない。そこで、1302に示すように、許容したい対象ファイルを定義し、この許容した対象ファイル以外のFilePermissionを禁止パーミッションとした定義とする。このように、FilePermissionは、ホワイトリスト形式の禁止パーミッション定義となる。
図14は、OSGi拡張部がホワイトリスト形式で定義された禁止パーミッションの禁止パーミッション保持判定を行うときのフローチャートである。このフローチャートは、S1004で示した禁止パーミッションが保持するかどうかの判定処理方法の一つであり、図11で示したブラックリスト形式の禁止パーミッション保持判定処理に引き続いて行われると考えてよい。
S1400において、バンドルが保持するパーミッションが、ホワイトリスト形式の禁止パーミッションに含まれるかの判定処理が開始される。
S1401において、バンドルが保持するパーミッション全てに対するチェックが開始される。そのため、バンドルが保持するパーミッション全てのパーミッションに対して次のチェックを行う。
S1402において、パーミッションがホワイトリスト形式で定義されたFilePermissionであるかどうかを判断する。FilePermissionでない場合、S1408に進む。FilePermissionである場合、S1403に進む。
S1403において、ホワイトリスト形式で定義された禁止パーミッションリスト1302に記載されたパーミッション全てに対するループが開始される。
S1404において、ホワイトリスト形式で定義された禁止パーミッションリスト1302に記載されたパーミッション全てと、バンドルが保持するFilePermissionが一致するかを判断する。この一致するかどうかの具体的な判断方法については、図15で示す。一致したと判断した場合は、S1405に進み、S1405において、許容されたパーミッションを保持していると判定され、S1408に進む。
一方、S1404において、一致していないと判断した場合は、S1406に進む。
S1406において、最後のホワイトリスト形式で定義された禁止パーミッションリスト1302かどうかを判定する。残っている場合は、S1404に戻り、引き続き次のホワイトリスト形式で定義された禁止パーミッションとの判定処理を繰り返す。こうして、全ての禁止パーミッションのチェックが完了し、許容されたFilePermissionを持っていない場合は、S1407に進む。
S1407においては、禁止パーミッションを保持していると判定され、S1410において判定処理を終了する。この場合は、S1004の判定結果として、YESが返ることになる。
S1408において、バンドルが保持する最後のパーミッションかどうかを判定し、残っている場合は、S1402に戻り、引き続きバンドルが保持する次のパーミッションで判定処理を繰り返す。こうして、全てのバンドルが保持するパーミッションのチェックが完了した後、S1409に進む。
S1409においては、禁止パーミッションを保持していないと判定し、S1410において判定処理を終了する。この場合は、S1004の判定結果として、NOが返ることになる。
図15は、バンドルが保持するパーミッションが、ホワイトリスト形式の禁止パーミッションに含まれるかどうかの判定方法について説明した図である。
例1として、禁止パーミッション(1500)の場合を説明する。この禁止パーミッション(1500)は、パーミッションとしては、(java.io.FilePermission)である。nameとして、“/xxx/yyy/zzz/−”、actionとして“read,write,delete”が指定されている。ここで“−”は/xxx/yyy/zzz/以下の全てのディレクトリ、ファイルを示している。
これに対して、バンドルが保持するパーミッションが(java.io.FilePermission“<<ALL FILES>>”“read,write,delete”)(1501)であった場合を考える。ここで、nameにおける<<ALL FILES>>は、全てのファイルが対象であることを意味する。そのため、許容されているファイルパス以外を含むとみなされ、禁止パーミッションを保持していると判定される。
また、バンドルが保持するパーミッションが(java.io.FilePermission“/xxx/yyy/zzz/−”“read,write,delete,execute”)(1502)であった場合を考える。この場合、パーミッションとnameは一致しているが、actionとしてexcuteは許容外とみなされて、禁止パーミッションを保持していると判定される。
バンドルが保持するパーミッションが(java.io.FilePermission“/xxx/yyy/zzz/aaa.log”“write”)(1503)であった場合、パーミッションとname、action全てが許容範囲内とみなされる。そのため、禁止パーミッションを保持していないと判定される。
バンドルが保持するパーミッションが(java.io.FilePermission“/xxx/yyy/zzz/www”“read,write”)(1504)であった場合でも、パーミッションとname、action全てが許容範囲内とみなされる。そのため、禁止パーミッションを保持していないと判定される。
尚、図14は、インストールしようとしているバンドルが、禁止パーミッションを保持するかを判定するためのフローチャートであるが、判定の仕方は一例である。つまり、図14のフローチャート通りでなくてもよく、インストールしようとしているバンドルのパーミッション定義ファイルのパーミッションに、図13に記載の禁止パーミッションリストにあるパーミッションが含まれているか、いないかを判定すればよい。そして、禁止パーミッションが保持されていないと判定された場合に、インストールが実行される。
以上、説明した実施形態で示した方法により、具体的には以下に示すような効果を得ることができる。
(実施形態1の変形例2)
変形例2では、実施形態1の図8の801で示したブラックリスト形式と実施形態1の変形例1の図13の1301で示したホワイトリスト形式の両方を合わせもつ禁止パーミッションの判定処理について述べる。
図16は、OSGi拡張部211による、ブラックリスト形式とホワイトリスト形式の両方を合わせもつ禁止パーミッション判定処理のフローチャートである。
この判定処理は、インストール全体のフローを示す図10のS1004の判断に相当する。
S1600において、バンドルが保持するパーミッションが禁止パーミッションに含まれるかの判定処理が開始される。
S1601において、バンドルが保持するパーミッション全てに対するブラックリスト形式の禁止パーミッションチェックが開始される。このフローの詳細は、図11で示したとおりである。図11のS1104で禁止パーミッション保持している判定をした場合、一致が返ってくるため、S1604に進む。一方、図11のS1107で禁止パーミッション保持していない判定をした場合、一致しないが返ってくるため、S1602に進む。
続いて、S1602において、バンドルが保持するパーミッション全てに対するホワイトクリスト形式の禁止パーミッションチェックが開始される。このフローの詳細は、図14で示したとおりである。図14のS1407で禁止パーミッション保持している判定の場合、一致が返ってくるため、S1604に進む。一方、図14のS1409で禁止パーミッション保持していない判定の場合、一致しないが返ってくるため、S1603に進む。
S1603においては、ブラックリスト形式、ホワイト形式ともに、禁止パーミッションを保持していない判定となり、S1004に対して、NOが返却される。
一方、S1604においては、ブラックリスト形式、または、ホワイト形式のどちらかで禁止パーミッションを保持している判定となり、S1004に対して、YESが返却される。
S1605において、ブラックリスト形式とホワイトリスト形式の両方を合わせもつ禁止パーミッション判定処理のフローが終了する。
バンドルの作成方法をソフトウェア開発キット(SDK)として公開することで、画像形成装置を開発している自社だけでなく、外部のソフトウェアベンダー(以下、3rdベンダー)が画像形成装置のカスタマイズした機能を開発することができる。カスタマイズしたバンドルを開発することができるということは、画像形成装置に悪影響のあるバンドルが開発できる可能性がある。
デバイスの署名チェック状態からバンドルの開発中という判断を行った場合、予め悪影響を及ぼす可能性のあるパーミッションとして定義した禁止パーミッションを保持するバンドルのインストールを不許可とする。そのため、結果として、SDKビジネスにおける画像形成装置の安全性が担保される。
以上、説明した実施形態によれば、開発中においても画像形成装置内の情報を抜く可能性があるパーミッションをもつアプリをインストールすることができなくなり、画像形成装置の安全性が担保される。
(その他の実施形態)
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(又はCPUやMPU等)がプログラムを読み出して実行する処理である。

Claims (12)

  1. アプリケーションのインストール時に、署名をチェックする設定になっているかを判定する第1の判定手段と、
    前記第1の判定手段で、署名をチェックする設定になっていない場合、アプリケーションに含まれるパーミッションが、禁止されたパーミッションでないかを判定する第2の判定手段と、
    前記第2の判定手段で、アプリケーションに含まれるパーミッションが、禁止されたパーミッションでないと判定された場合、前記アプリケーションのインストールを許可する手段を有することを特徴とする画像形成装置。
  2. アプリケーションのインストール時に、署名をチェックする設定に関する情報を保持する保持手段を有することを特徴とする請求項1に記載の画像形成装置。
  3. 前記第2の判定手段で、アプリケーションに含まれるパーミッションが、禁止されたパーミッションであると判定された場合、前記アプリケーションのインストールを許可しないことを特徴とする請求項1又は請求項2に記載の画像形成装置。
  4. 前記アプリケーションは、パーミッションを定義するファイルを含むことを特徴とする請求項1乃至3の何れか1項に記載の画像形成装置。
  5. 前記第1の判定手段で、署名をチェックする設定になっている場合、アプリケーションに含まれる署名を用いて、前記アプリケーションのインストールの可否を判断することを特徴とする請求項1乃至4の何れか1項に記載の画像形成装置。
  6. 前記第1の判定手段で、署名をチェックする設定になっている場合、アプリケーションに含まれるパーミッションは用いず、アプリケーションに含まれる署名を用いて、前記アプリケーションのインストールの可否を判断することを特徴とする請求項5に記載の画像形成装置。
  7. 画像形成装置の制御方法であって、
    アプリケーションのインストール時に、署名をチェックする設定になっているかを判定する第1の判定工程と、
    前記第1の判定工程で、署名をチェックする設定になっていない場合、アプリケーションに含まれるパーミッションが、禁止されたパーミッションでないかを判定する第2の判定工程と、
    前記第2の判定工程で、アプリケーションに含まれるパーミッションが、禁止されたパーミッションでないと判定された場合、前記アプリケーションのインストールを許可する工程を有することを特徴とする画像形成装置の制御方法。
  8. 前記第2の判定工程で、アプリケーションに含まれるパーミッションが、禁止されたパーミッションであると判定された場合、前記アプリケーションのインストールを許可しないことを特徴とする請求項7に記載の画像形成装置の制御方法。
  9. 前記アプリケーションは、パーミッションを定義するファイルを含むことを特徴とする請求項7又は請求項8に記載の画像形成装置の制御方法。
  10. 前記第1の判定工程で、署名をチェックする設定になっている場合、アプリケーションに含まれる署名を用いて、前記アプリケーションのインストールの可否を判断することを特徴とする請求項7乃至9の何れか1項に記載の画像形成装置の制御方法。
  11. 前記第1の判定工程で、署名をチェックする設定になっている場合、アプリケーションに含まれるパーミッションは用いず、アプリケーションに含まれる署名を用いて、前記アプリケーションのインストールの可否を判断することを特徴とする請求項10に記載の画像形成装置の制御方法。
  12. 請求項1乃至6の何れか1項に記載の画像形成装置としてコンピュータを機能させるための該コンピュータで読み取り可能なプログラム。
JP2017221286A 2017-02-23 2017-11-16 画像形成装置及びその制御方法 Active JP6991837B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US15/901,283 US10484564B2 (en) 2017-02-23 2018-02-21 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

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2017032444 2017-02-23
JP2017032444 2017-02-23

Publications (2)

Publication Number Publication Date
JP2018136920A true JP2018136920A (ja) 2018-08-30
JP6991837B2 JP6991837B2 (ja) 2022-01-13

Family

ID=63365619

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017221286A Active JP6991837B2 (ja) 2017-02-23 2017-11-16 画像形成装置及びその制御方法

Country Status (1)

Country Link
JP (1) JP6991837B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021081763A (ja) * 2019-11-14 2021-05-27 京セラドキュメントソリューションズ株式会社 情報処理装置及び情報処理プログラム

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004171258A (ja) * 2002-11-20 2004-06-17 Nec Corp パーミッショントークン管理システム及びプログラム
JP2007183969A (ja) * 2006-01-09 2007-07-19 Sun Microsyst Inc 保護ドメインに基づいたセキュリティ用の方法及び装置
JP2009104618A (ja) * 2008-12-02 2009-05-14 Ntt Docomo Inc 端末装置およびプログラム
JP2011044065A (ja) * 2009-08-24 2011-03-03 Kddi Corp プログラム検査装置及び該装置としてコンピュータを動作させるプログラム
JP2011233081A (ja) * 2010-04-30 2011-11-17 Kddi Corp アプリケーション判定システムおよびプログラム
US20140282490A1 (en) * 2013-03-15 2014-09-18 Ricoh Company, Ltd. Information processing system, information processing apparatus, and recording medium storing information processing program

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004171258A (ja) * 2002-11-20 2004-06-17 Nec Corp パーミッショントークン管理システム及びプログラム
JP2007183969A (ja) * 2006-01-09 2007-07-19 Sun Microsyst Inc 保護ドメインに基づいたセキュリティ用の方法及び装置
JP2009104618A (ja) * 2008-12-02 2009-05-14 Ntt Docomo Inc 端末装置およびプログラム
JP2011044065A (ja) * 2009-08-24 2011-03-03 Kddi Corp プログラム検査装置及び該装置としてコンピュータを動作させるプログラム
JP2011233081A (ja) * 2010-04-30 2011-11-17 Kddi Corp アプリケーション判定システムおよびプログラム
US20140282490A1 (en) * 2013-03-15 2014-09-18 Ricoh Company, Ltd. Information processing system, information processing apparatus, and recording medium storing information processing program

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021081763A (ja) * 2019-11-14 2021-05-27 京セラドキュメントソリューションズ株式会社 情報処理装置及び情報処理プログラム

Also Published As

Publication number Publication date
JP6991837B2 (ja) 2022-01-13

Similar Documents

Publication Publication Date Title
JP5190800B2 (ja) プログラムの実行制御システム、実行制御方法、実行制御用コンピュータプログラム
US9854131B2 (en) Image forming apparatus with personal setting synchronization and method for controlling same
JP4848190B2 (ja) アプリケーション実行装置、アプリケーション実行方法及びアプリケーション実行プログラム
JP5173563B2 (ja) ライセンス管理装置及び方法
JP6236816B2 (ja) 画像処理システム、情報処理装置及びプログラム
WO2011138852A1 (ja) 情報処理装置、情報処理方法、及びプログラム配信システム
US20080250385A1 (en) Automating the deployment of applications
JP4938869B2 (ja) Sdk使用制限付加装置及び使用制限付ソフトウェア開発システム
JP2007200102A (ja) 不正コードおよび不正データのチェックシステム、プログラムおよび方法
JP4728611B2 (ja) 記憶媒体、記憶装置、情報処理装置、情報処理方法、情報処理プログラム及び記録媒体
EP3502873A2 (en) Method and apparatus for application development environment
JP5272602B2 (ja) 認証機能連携機器、認証機能連携システム及び認証機能連携プログラム
JP2010074431A (ja) 外部認証を用いた認証機能連携機器、認証機能連携システム及び認証機能連携プログラム
JP5052367B2 (ja) 画像処理装置、認証パッケージインストール方法、認証パッケージインストールプログラム、及び記録媒体
JP6991837B2 (ja) 画像形成装置及びその制御方法
JP5387706B2 (ja) 情報処理装置、情報処理方法及び記録媒体
EP3462363B1 (en) Image forming apparatus and control method therefor
JP2008171041A (ja) 画像形成装置、画像形成装置の起動方法、制御装置及び拡張ユニットの起動方法
US9940334B2 (en) Image forming apparatus and control method thereof
JP6459805B2 (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
JP2012058803A (ja) シンクライアントシステム、およびオペレーティングシステム更新方法
KR101028149B1 (ko) 클라이언트 단말의 파일관리장치, 방법 및 그 프로그램이 기록된 기록매체
KR101028150B1 (ko) 클라이언트 단말의 파일관리장치, 방법 및 그 프로그램이 기록된 기록매체
JP6772009B2 (ja) 情報処理装置および情報処理装置における制御方法、およびプログラムと画像処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20201106

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210818

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210824

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20211019

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20211208

R151 Written notification of patent or utility model registration

Ref document number: 6991837

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151