JPWO2009157136A1 - アクセス制御装置、アクセス制御プログラム、及びアクセス制御方法 - Google Patents

アクセス制御装置、アクセス制御プログラム、及びアクセス制御方法 Download PDF

Info

Publication number
JPWO2009157136A1
JPWO2009157136A1 JP2010517686A JP2010517686A JPWO2009157136A1 JP WO2009157136 A1 JPWO2009157136 A1 JP WO2009157136A1 JP 2010517686 A JP2010517686 A JP 2010517686A JP 2010517686 A JP2010517686 A JP 2010517686A JP WO2009157136 A1 JPWO2009157136 A1 JP WO2009157136A1
Authority
JP
Japan
Prior art keywords
information
resource
program
access
holding unit
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
JP2010517686A
Other languages
English (en)
Other versions
JP4977782B2 (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.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial 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 Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Priority to JP2010517686A priority Critical patent/JP4977782B2/ja
Publication of JPWO2009157136A1 publication Critical patent/JPWO2009157136A1/ja
Application granted granted Critical
Publication of JP4977782B2 publication Critical patent/JP4977782B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Storage Device Security (AREA)

Abstract

アクセス制御装置100は、新たなプログラムがメモリ等の資源を利用して処理を開始しようとする場合、既に他の実行中のプログラムによって該当する資源が確保されていても、新たなプログラムの優先度が実行中のプログラムの優先度よりも高ければ、実行中のプログラムを停止させて、新たなプログラムに資源を利用させる。

Description

本発明は、プログラムによる資源へのアクセスを制御する制御装置に関する。
近年、CPU(Central Processing Unit:中央処理装置)の性能の向上、メモリ等の記憶素子の大容量化等により、1つの機器上で複数の互いに異なる情報処理を行うことができるようになっている。
例えば、携帯電話端末では、本来の電話機能に加えて、メール送受信機能、インターネットブラウザ機能、カメラ機能、音楽再生機能、ワンセグテレビ受信機能等、様々な情報処理機能を1つの携帯電話端末で実現している。
携帯電話端末は、このような機能を実現する為のアプリケーションプログラムを、マルチタスク制御方式等によって並列的に動作させることで、多様な機能のスムーズな動作を実現している。
コンピュータシステム上で複数のプログラムを実行する技術として、例えば、複数のプログラムが同一のメモリ等の資源にアクセスする際の資源へのアクセスを制限する技術(例えば特許文献1参照)が提案されている。
特開平6−161789号公報
しかしながら、マルチタスク制御方式等を用いて複数のプログラムによる処理を行うコンピュータシステムにおいて、直ちに処理を開始する必要のある新たなプログラムを実行しようとしても、既に実行中のプログラムによって使用したい資源が確保されてしまっている場合に、実行中のプログラムが資源を解放するまで待たないと、新たなプログラムを実行することができないという問題がある。
特に、資源の解放待ちで実行を開始できないプログラムによる処理がリアルタイム性を求められる処理である場合には、プログラムによる処理の開始が遅れることにより、リアルタイム性を確保できなくなってしまうことが起こってしまう。
そこで、本発明は係る問題に鑑みてなされたものであり、プログラムによって、コンピュータシステムを構成するメモリ等の資源を用いて処理を開始しようとする場合に、既に他のプログラムによって該当する資源が確保されていた場合であっても、該当する資源の解放待ちがボトルネックとなってプログラムの処理の開始が遅くなってしまうことのない、アクセス制御装置を提供することを目的とする。
上記課題を解決するために本発明に係るアクセス制御装置は、資源の利用要求を出した後において当該資源へのアクセスを行う複数のプログラムによる資源へのアクセスを制御するアクセス制御装置であって、プログラムから資源を利用する要求を受け付ける要求受付部と、プログラム情報を含む資源アクセス情報を保持する情報保持部と、前記情報保持部が保持している資源アクセス情報に含まれるプログラム情報が示すプログラムからのアクセスに限って、対応する資源へのアクセスを許可するアクセス許可部と、前記情報保持部が、第1のプログラムを示す第1のプログラム情報を含む第1の資源アクセス情報を保持する場合において、前記要求受付部が、第2のプログラムから資源を利用する要求を受け付けたとき、前記第2のプログラムについて予め定められている優先度の方が、前記第1のプログラムについて予め定められている優先度よりも高ければ、前記第1の資源アクセス情報を前記情報保持部から削除して、前記第2のプログラムを示す第2のプログラム情報を含む第2の資源アクセス情報を前記情報保持部に追加する情報書換部とを備えることを特徴とする。
ここで、アクセスとは、データを読み出す、又はデータを書き込むことをいう。
また、資源アクセス情報を情報保持部から削除するとは、情報保持部から資源アクセス情報を消去して、資源アクセス情報が許可情報保持部に存在しない状態にすること、もしくは、情報保持部から資源アクセス情報を消去せずに、資源アクセス情報に、資源アクセス情報が削除されている旨を示すフラグを付加することで、情報保持部が保持する資源アクセス情報が示すプログラムからのアクセスであっても、アクセス許可部が、対応する資源へのアクセスを許可しないようにすることをいう。
上述の構成を備える本発明に係るアクセス制御装置は、情報保持部が保持する資源アクセス情報が示すプログラムに限って対応する資源へのアクセスを許可し、さらに、要求受付部が資源の利用の要求を受け付けたプログラムから、資源へのアクセスを許可されているプログラムがアクセスする資源と同じ部分を含む資源へのアクセスの要求があった場合、要求のあったプログラムの優先度の方が高ければ、要求のあったプログラムがアクセスする資源と同じ部分を含む資源へのアクセスを許可されているプログラムに対して、資源へのアクセスの許可を取り消し、要求のあったプログラムに対して、資源へのアクセスを許可することになる。
従って、実行中のプログラムよりも実行の優先度の高いプログラムが、実行中のプログラムのアクセスする資源と同じ部分を含む資源をアクセスしようとした場合、実行中のプログラムによる資源へのアクセスの許可を取り消して、実行の優先度の高いプログラムに資源へのアクセスする許可を与えることによって、実行の優先度の高いプログラムが、該当する資源の解放待ちがボトルネックとなってプログラムの処理の開始が遅くなってしまわないという効果を有する。
また、前記資源アクセス情報は、前記プログラム情報と、前記プログラム情報が示すプログラムがアクセスする資源を示す資源情報とを対応付けた情報であって、前記情報書換部は、前記情報保持部が、第1の資源を示す第1の資源情報と第1のプログラムを示す第1のプログラム情報とを対応付けた第1の資源アクセス情報を保持する場合において、前記要求受付部が、第2のプログラムから、前記第1の資源の少なくとも一部の資源を含む第2の資源を利用する要求を受け付けたとき、前記第2のプログラムについて予め定められている優先度の方が、前記第1のプログラムについて予め定められている優先度よりも高ければ、前記第1の資源アクセス情報を前記情報保持部から削除して、前記第2の資源を示す第2の資源情報と前記第2のプログラムを示す第2のプログラム情報とを対応付けたものである第2の資源アクセス情報を前記情報保持部に追加する情報書換部であることとしてもよい。
このようにすることによって、資源が複数ある場合に、資源毎に応じたアクセス制御を行うことができるようになる。
また、前記情報書換部は、前記資源アクセス情報を前記情報保持部から削除する場合、削除する資源アクセス情報に含まれるプログラム情報が示すプログラムに対して、対応する資源へのアクセスの許可を取り消す旨の通知をすることとしてもよい。
このような構成にすることによって、アクセス許可部から削除される資源アクセス情報に対応するプログラムが、情報保持部から資源アクセス情報が削除されることによって資源へのアクセスができなくなる場合に、プログラムは、資源へのアクセスの許可を取り消す旨の通知を受けることができるため、資源へのアクセスができなくなることに対応する処理を行うことができるようになる。
また、前記資源アクセス情報を保持する待機情報保持部とをさらに備え、前記情報書換部は、前記第2の資源アクセス情報を前記情報保持部に追加するとき、前記第1の資源アクセス情報を前記待機情報保持部に追加し、前記情報保持部が、前記第1の資源アクセス情報を保持する場合において、前記要求受付部が、前記第2のプログラムから、前記第1の資源の少なくとも一部の資源を含む前記第2の資源を利用する要求を受け付けたとき、前記第2のプログラムについて予め定められている優先度の方が、前記第1のプログラムについて予め定められている優先度よりも高くなければ、前記第2の資源アクセス情報を前記待機情報保持部に追加することとしてもよい。
このような構成にすることによって、情報保持部で保持しない資源アクセス情報であっても、待機情報保持部で保持することになる為、情報保持部で保持しなかった資源アクセス情報を必要とする場合に、短時間で資源アクセス情報を利用することができるようになる。
また、前記情報書換部は、前記要求受付部が、第3のプログラムから第3の資源を利用する要求を受け付けた場合において、前記第3の資源が、前記情報保持部の保持する全ての資源アクセス情報に含まれる資源情報が示す資源を含まないとき、前記第3の資源を示す資源情報と前記第3のプログラムを示すプログラム情報とを対応付けたものである第3の資源アクセス情報を前記情報保持部に追加し、前記情報保持部が、前記第3の資源アクセス情報を保持する場合において、前記第3のプログラムが実行を終了したとき、前記第3の資源アクセス情報を前記情報保持部から削除することとしてもよい。
このような構成にすることによって、他のプログラムによって利用されていない資源への利用を要求するプログラムから、資源を利用する要求を受け付けた場合に、資源の利用を要求したプログラムに資源の利用を許可することができ、さらに、プログラムが資源の利用を終了したとき、その資源を他のプログラムが利用できるようにすることができる。
また、前記情報保持部から前記資源アクセス情報が削除された場合において、前記待機情報保持部が保持する資源アクセス情報の中に、対応する資源情報が、前記情報保持部の保持する全ての資源アクセス情報に含まれる資源情報が示す資源を含まない許可可能資源アクセス情報があるとき、前記許可可能資源アクセス情報のうち、対応するプログラム情報が示すプログラムについて予め定められている優先度が最も高い許可可能資源アクセス情報を、前記待機情報保持部から削除して前記情報保持部に追加する情報追加部とをさらに備えることとしてもよい。
このような構成にすることによって、情報保持部から資源アクセス情報が削除されると、既に待機情報保持部で保持している資源アクセス情報を、情報保持部に追加するようになる為、短時間で情報保持部に資源アクセス情報を追加していくことができるようになる。
また、前記情報追加部は、前記資源アクセス情報を前記情報保持部に追加する場合、前記追加する資源アクセス情報に含まれるプログラム情報が示すプログラムに、対応する資源へのアクセスを許可する旨の通知をすることとしてもよい。
このような構成にすることによって、資源アクセス情報を許可情報保持部に追加する場合に、情報保持部に追加する資源アクセス情報に対応するプログラムが、資源へのアクセスを許可する旨の通知を受けることができるため、通知を受け取ったプログラムが、資源へのアクセスができるようになることに対応する処理を行うことができるようになる。
また、前記資源アクセス情報は、前記資源情報と前記プログラム情報とに加えて、プログラムが資源にアクセスする方式が、他のプログラムからのアクセスを許容する共有方式か他のプログラムからのアクセスを許容しない占有方式かのいずれか一方のアクセス方式を示す方式情報とを対応付けたものであって、前記情報書換部は、前記情報保持部からの前記第1の資源アクセス情報の削除と、前記情報保持部への前記第2の資源アクセス情報の追加とを、前記第1の資源に対応する方式情報と、前記第2の資源に対応する方式情報とのうち、少なくとも1つの方式情報が前記占有方式を示しているという条件をさらに満たす場合に限って実行することとしてもよい。
このような構成にすることによって、資源へアクセスする方式に応じて資源へのアクセスを制御できるようになるので、効率の良い資源の利用を実現することができる。
また、前記情報追加部は、前記情報保持部から資源アクセス情報が削除された場合において、前記待機情報保持部が前記許可可能資源アクセス情報を保持するとき、もしくは、前記待機情報保持部が保持する資源アクセス情報のうち、方式情報が前記共有方式を示し、対応する資源が、前記情報保持部が保持する資源アクセス情報のうち、方式情報が前記占有方式を示す資源アクセス情報に対応する資源を含まない許可可能共有資源アクセス情報があるとき、前記許可可能資源アクセス情報、及び、前記許可可能共有資源アクセス情報のうち、対応する前記プログラム情報が示すプログラムについて予め定められている優先度が最も高い資源アクセス情報を、前記待機情報保持部から削除して前記情報保持部に追加することとしてもよい。
このような構成にすることによって、待機情報保持部が保持する資源アクセス情報のアクセス方式に応じて、情報保持部に追加する資源アクセス情報を決めることができるようになる。
また、特定のプログラム、特定の資源、特定の優先度、及びこれらの組み合わせが正当であると認証する証明書を受信し、前記特定の資源を示す正当資源情報と、前記特定のプログラムを示す正当プログラム情報と、前記特定の優先度を示す正当優先度情報とを対応付けたものであるポリシィ情報を保持するポリシィ保持部とを備え、前記要求受付部は、プログラムからの資源の利用要求が、前記ポリシィ保持部が保持しているポリシィ情報に含まれる正当プログラム情報の示すプログラムからの対応する正当資源情報の示す資源の利用要求であるという条件を満たさない場合に、プログラムから資源の利用要求の受け付を拒絶し、前記第1のプログラムについて予め定められている優先度とは、前記ポリシィ保持部が保持している前記ポリシィ情報の前記第1のプログラムが前記第1の資源にアクセスする際の前記優先度情報が示す優先度であって、前記第2のプログラムについて予め定められている優先度とは、前記ポリシィ保持部が保持している前記ポリシィ情報の前記第2のプログラムが前記第2の資源にアクセスする際の前記優先度情報が示す優先度であることとしてもよい。
このような構成にすることによって、証明書によって認証されていない不正プログラムからの資源への利用を認めないアクセス制御装置を実現することができる。
また、前記要求受付部は、前記情報保持部に前記資源アクセス情報が追加された場合に限って、当該追加された資源アクセス情報に含まれるプログラム情報が示すプログラムへ、対応する資源へのアクセスに用いる論理アドレスを提供することとしてもよい。
このような構成にすることによって、プログラムは、対応する資源へのアクセスに用いる論理アドレスを提供されるので、論理アドレスによって対応する資源へのアクセスを実現することができるようになる。
また、前記アクセス許可部は、前記情報保持部が保持している資源アクセス情報に含まれるプログラム情報が示すプログラムからのアクセスに限って、対応する資源へのアクセスを許可するか否かの判定を、プログラムにおけるメモリの読み書きに係る命令をデコードする際に行い、否定的な判定の場合に、エラー処理を実行することとしてもよい。
このような構成にすることによって、メモリの読み書きに係る命令をデコードのタイミングで、資源へのアクセスを許可するか否かの判断し、アクセスを許可しない場合に、エラー処理を実行することができるようになる為、例えば、資源へのアクセスを許可しないと判断する場合に割り込みを発生して、OSにプログラムを終了させるというような処理を行うことができるようになる。
アクセス制御装置の構成図 資源と物理アドレスとの対応関係を示す図 ポリシィ保持部が保持するポリシィ情報を示す図 ポリシィ保持部が保持するアクセス制限情報を示す図 許可情報保持部で保持する資源アクセス情報を示す図 待機情報保持部で保持する資源アクセス情報を示す図 プログラムから資源利用要求がある場合のフローチャートその1 プログラムから資源利用要求がある場合のフローチャートその2 資源アクセスルーチンが終了した場合のフローチャート 許可情報保持部が更新された場合のフローチャート 論理アドレスを物理アドレスに変換する場合のフローチャート ポリシィ情報を更新する場合のフローチャート 変形例におけるポリシィ保持部が保持するポリシィ情報を示す図 変形例におけるポリシィ保持部が保持するアクセス制限情報を示す図 変形例における物理アドレスの重複が起こる場合を示す図その1 変形例における物理アドレスの重複が起こる場合を示す図その2 変形例におけるプログラムから資源利用要求がある場合のフローチャートその1 変形例におけるプログラムから資源利用要求がある場合のフローチャートその2
<実施の形態>
以下、本発明に係るアクセス制御装置の一実施形態として、複数のプログラムそれぞれからの資源へのアクセスを制御するアクセス制御装置について説明する。
<構成>
本実施の形態に係るアクセス制御装置は、認証局によって正当性を認証されているアプリケーションプログラムに限って資源の利用要求を受け付け、受け付けたアプリケーションプログラムの資源利用に関する優先度等に基づいて、アプリケーションプログラムによる資源へのアクセスを排他的に制御するアクセス制御装置である。
以下、本実施の形態に係るアクセス制御装置の構成について、図面を参照しながら説明する。
図1は、本実施の形態に係るアクセス制御装置100と、プログラム群101と、資源102と、認証局103とからなる資源アクセスシステム1000の構成を示す構成図である。
アクセス制御装置100は、図示していないプロセッサ、メモリ、メモリコントローラ、タイマ、ハードディスク等のハードウエアと、このハードウエア上で実行されるOS(Operating System)とによって実現される、プログラム群101を構成する複数のアプリケーションプログラムそれぞれからの資源102へのアクセスを制御するアクセス制御装置である。
ここで、アプリケーションプログラムが資源をアクセスするとは、アプリケーションプログラムを構成する、メモリへの読み出し、書き込み等の命令が、プロセッサによって解読、実行されることで、資源へのデータの読み出し、資源へのデータの書き込み等がなされることをいう。
プログラム群101は、資源102にアクセスするアプリケーションプログラム(以後、単に「プログラム」と呼ぶ)複数個から構成され、各プログラムは、このOS上で実行される。
資源102は、メモリコントローラに物理アドレスを指定することでアクセスされる資源であって、アクセス制御装置100によって、プログラム群101を構成するプログラムからのアクセスを制御されている。
認証局103は、プログラムが資源にアクセスすることの正当性を認証する認証局であって、アクセス制御装置100は、認証局103が認証しているプログラムから資源へのアクセスに限って、アクセスを許可する。
以下、プログラム群101、資源102、認証局103、及び、アクセス制御装置100ついて、図を用いながら順に説明する。
<プログラム群101>
プログラム群101を構成するプログラムは、資源102を1回以上アクセスする一連の処理からなる処理ルーチン(以後「資源アクセス処理ルーチン」と呼ぶ)と、プログラムに含まれる処理ルーチンのうち、OSからの通知を受けて動作する処理ルーチンそれぞれの開始アドレスを、OSに通知する処理ルーチン(以後「OS通知処理ルーチン」と呼ぶ)とを含んでいるプログラムである。
資源アクセス処理ルーチンは、資源102を1回以上アクセスする一連の処理を開始する際に、要求受付部111に対して資源102の利用を要求し、一連の処理を終了する際に、許可情報書換部115に資源アクセス処理ルーチンの実行終了の旨を通知する。
プログラムが要求受付部111に対して資源102の利用を要求する為に、OSは、プログラムから資源を指定されて呼び出されると、要求受付部111が、呼び出したプログラムを特定する情報と、指定された資源を特定する情報と、ポリシィ保持部112が保持するポリシィ情報とから、資源アクセス情報を作成する処理を開始する資源利用API(Application Program Interface)を備えている。
この資源利用APIは、プログラムから呼び出されると、要求受付部111が、戻り値として、プログラムが資源を利用する際に使用する論理アドレス空間の開始アドレス(以後「開始論理アドレス」と呼ぶ)を、呼び出したプログラムに戻す。
資源アクセス処理ルーチンは、資源102をアクセスする場合に、戻り値として戻された開始論理アドレスを用いて作成する論理アドレスを指定して、資源102にアクセスする。
OSはさらに、プログラムが許可情報書換部115に資源アクセス処理ルーチンの実行終了の旨を通知する為に、プログラムから呼び出されると、許可情報書換部115が、許可情報保持部113で保持する、呼び出したプログラムに対応する資源アクセス情報を削除する処理を開始する終了処理APIと、プログラムがOSに処理ルーチンの開始アドレスを通知する為に、プログラムから処理ルーチンの開始アドレスを指定されて呼び出されると、OSに、処理ルーチンの開始アドレスを関連付けて記憶させるアドレス通知APIとを備えている。
本実施の形態は、資源アクセス情報を削除する場合が、資源アクセス情報を消去して存在しない状態にする場合である一実施例となっている。
<資源102>
資源102は、メモリコントローラに物理アドレスを指定することでアクセスされる資源であって、保護メモリ121と、共用メモリ122と、暗号エンジン123とから構成されている。
暗号エンジン123は、暗号処理用ハードウエアであって、そのレジスタをメモリアドレスとして割り当てられることによって、他のメモリと同様のインターフェースで、レジスタへの読み出し、書き込み等の操作が行われる。
図2は、資源102を構成する保護メモリ121、共用メモリ122、暗号エンジン123に割り当てられている物理アドレスを示す図である。
保護メモリ121は、物理アドレスの開始アドレスが0x00010000でサイズが0x010000のメモリであって、割り当てられている物理アドレスが0x00010000〜0x0001FFFFである。
同様に、共用メモリ122は、割り当てられている物理アドレスが0x000B0000〜0x000BFFFFのメモリであって、暗号エンジン123は、割り当てられている物理アドレスが0xE0004000〜0xE0005FFFFの暗号処理用ハードウエアである。
<認証局103>
認証局103は、プログラムを示す情報と、そのプログラムがアクセスする資源の情報と、そのプログラムが資源にアクセスする際の優先度の情報と、そのプログラムが資源にアクセスする際のアクセス方式の情報とを受け取ると、特定のプログラムが特定の資源に特定の優先度で特定のアクセス方式でアクセスすることを認証し、認証したことを証明する証明書を発行する、証明書発行システムである。
認証局103は、特定のプログラムが特定の資源に特定の優先度で特定のアクセス方式でアクセスすることに不都合がない場合に、特定のプログラムと特定の資源と特定の優先度と特定のアクセス方式との情報を対応付けた情報であるポリシィ情報を作成し、作成したポリシィ情報を、優先度毎に異なる秘密鍵を使って暗号化することで、証明書として発行する。
<アクセス制御装置100>
アクセス制御装置100は、認証局103によって正当性を認証されているプログラムに限って資源102の利用要求を受け付け、受け付けたプログラムの資源利用に関する優先度等に基づいて、プログラムによる資源102へのアクセスを制御するアクセス制御装置であって、要求受付部111と、ポリシィ保持部112と、許可情報保持部113と、待機情報保持部114と、許可情報書換部115と、許可情報追加部116と、アドレス変換テーブル118を含むアクセス許可部117とから構成されている。
以下、アクセス制御装置100を構成する各ブロックについて、図を用いながら順に説明する。
<ポリシィ保持部112>
ポリシィ保持部112は、アクセス制限情報(後述)を保持し、認証局103が発行した証明書を、秘密鍵に対応する公開鍵を使ってポリシィ情報に復号し、少なくとも復号したポリシィ情報の内容が、アクセス制限情報の制限に違反していないという条件を満たすポリシィ情報に限って、そのポリシィ情報を保持するブロックである。
また、ポリシィ保持部112は、図示していないディスプレイを備え、証明書を復号した際に、復号したポリシィ情報を保持した場合に、登録成功の旨を示すメッセージを表示し、復号したポリシィ情報を保持しなかった場合に、登録失敗の旨を示すメッセージを表示する。
図3は、ポリシィ保持部112が保持するポリシィ情報を示す図である。
ポリシィ情報は、プログラムID(IDentification)302で特定されるプログラムが、優先度303で示される優先度で、保護メモリ121、共用メモリ122、又は、暗号エンジン123に、占有方式、又は共有方式のいずれかの方式でアクセスすることが許されている、もしくはアクセスすることが許されていない旨を示す情報である。
ここで、アクセスする方式が占有方式とは、プログラムが資源にアクセスする際の方式が他のプログラムによる資源のアクセスを認めない排他的なアクセスである方式のことであり、共有方式とは、プログラムが資源にアクセスする際の方式が他のプログラムによる資源のアクセスを認める排他的でないアクセスである方式のことである。
例えば、図3において、ポリシィ番号301が2であるポリシィ情報は、プログラムIDが0002であるプログラムが、優先度2で、保護メモリ121には占有方式でのアクセス、共用メモリ122には共有方式でのアクセス、暗号エンジン123には共有方式でのアクセスが許されている旨を示している。
図4は、ポリシィ保持部112が保持するアクセス制限情報を示す図である。
アクセス制限情報とは、優先度401で示される優先度を持つプログラムは、保護メモリ121、共用メモリ122、又は、暗号エンジン123に、占有方式、又は共有方式のいずれかの方式でアクセスすることが許されている、もしくはアクセスすることが許されていない旨を示す情報であって、予めポリシィ保持部112の一部として組み込まれている情報である。
例えば、図4において、優先度3が付与されているプログラムは、保護メモリ121には占有アクセス方式でのアクセスが許され、共用メモリ122には共有アクセス方式でのアクセスが許され、暗号エンジン123には共有アクセス方式でのアクセスが許されている旨を示しているので、ポリシィ保持部112は、優先度が3であるポリシィ情報であれば、プログラムが保護メモリ121へ占有アクセス方式でアクセスし、共用メモリ122へ共有アクセス方式でアクセスし、プログラムが暗号エンジン123へ共有アクセス方式でアクセスすることを示すポリシィ情報に限って、保持する。
<要求受付部111>
要求受付部111は、プログラム群101を構成するプログラムから、資源102を利用する要求をされると、プログラムの情報と資源の情報と優先度の情報とアクセス方式の情報とを対応付けた情報である資源アクセス情報を作成し、プログラムに対して開始論理アドレスを戻り値として戻すブロックである。
要求受付部111は、プログラムから、資源102を利用する要求をされると、ポリシィ保持部112で保持するポリシィ情報の中に、要求を出したプログラムに対応するポリシィ情報があるか否かを検索し、要求を出したプログラムに対応するポリシィ情報がある場合であって、許可情報保持部113に対応する資源アクセス情報が存在しないときに限って、対応するポリシィ情報の、プログラムの情報と資源の情報と優先度の情報とアクセス方式の情報とを参照して資源アクセス情報を作成し、許可情報書換部115又は許可情報追加部116から開始論理アドレスを通知されると、要求を出したプログラムに対して、通知された開始論理アドレスを、戻り値として戻す。
ここでは、要求受付部111が資源アクセス情報を作成することをもって、要求受付部111がプログラムからの資源への利用要求を受け付けたこととする。
なお、要求を出したプログラムに対応するポリシィ情報が、ポリシィ保持部112にない場合には、要求受付部111は要求を出したプログラムの実行を停止させる。
<許可情報保持部113>
許可情報保持部113は、要求受付部111が作成した資源アクセス情報のうち、アクセス制御装置100がプログラムに対して資源102へのアクセスを許可している資源アクセス情報を、開始論理アドレスと対応付けて保持するブロックである。
図5は、許可情報保持部113が、開始論理アドレスと対応付けて保持する資源アクセス情報を示すものである。
許可情報保持部113は、資源名501と物理アドレス502とで特定される資源と、プログラムID506で特定されるプログラムと、優先度507で指定される優先度と、アクセス方式508とで特定されるアクセス方式とを対応付けた情報である資源アクセス情報と、開始論理アドレス509とを対応付けて保持する。
ここで、開始論理アドレス509は、資源アクセス情報が初めて許可情報保持部113に保持される場合にのみ、許可情報書換部115又は許可情報追加部116によって、資源アクセス情報を基にして作成される。
例えば、図5において、許可情報保持部113は、保護メモリ121を、プログラムID0001のプログラムが、優先度5で、占有方式でアクセスするという資源アクセス情報と、プログラムID0001のプログラムに対して開始論理アドレスとして0xA0000を対応付けて記憶している。
<待機情報保持部114>
待機情報保持部114は、要求受付部111が作成した資源アクセス情報のうち、資源へのアクセスを許可していない資源アクセス情報、すなわち、資源へのアクセスが許可されることを待機しているプログラムに対応する資源アクセス情報を、論理開始アドレスと、保持開始時刻とを対応付けて保持するブロックである。
図6は、待機情報保持部114が、論理開始アドレスと、保持開始時刻とを対応付けて保持する資源アクセス情報を示すものである。
待機情報保持部114は、資源名601と物理アドレス602とで特定される資源と、プログラムID606で特定されるプログラムと、優先度607で指定される優先度と、アクセス方式608とで特定されるアクセス方式とを対応付けた情報である資源アクセス情報と、開始論理アドレス609と、この資源アクセス情報を保持した時刻を示す保持開始時刻610とを対応付けて保持する。
開始論理アドレス609は、前述したように、許可情報保持部113で保持されたことがある資源アクセス情報に対してのみ、提供されている為、許可情報保持部113で保持されたことのない資源アクセス情報に対しては、対応付けるべき開始論理アドレスは存在しない。
例えば、図6において、待機情報保持部114は、保護メモリ121の待ちスロット番号2のスロットに、保護メモリ121を、プログラムID0009のプログラムが、優先度4で、占有方式でアクセスするという資源アクセス情報と、プログラムID0009のプログラムに対して開始論理アドレスとして0x90000を提供しているという情報と、この資源アクセス情報を保持した時刻が、2009年4月4日21時00分01秒33であるという情報とを対応付けて記憶している。
<許可情報書換部115>
許可情報書換部115は、要求受付部111が資源アクセス情報を作成した場合に、作成された資源アクセス情報を、許可情報保持部113か待機情報保持部114かのいずれか一方に追加する機能と、許可情報保持部113が保持する資源アクセス情報に対応するプログラムから、資源アクセス処理ルーチンの実行終了の旨を通知されると、その資源アクセス情報を許可情報保持部113から削除する機能とを備えるブロックである。
ここで、要求受付部111が作成した資源アクセス情報が、アクセス制御装置100がプログラムから資源へのアクセスを許可する資源アクセス情報である場合に、資源アクセス情報を許可情報保持部113に追加し、許可しない資源アクセス情報である場合に、資源アクセス情報を待機情報保持部114に追加する。
以下、許可情報書換部115の機能を、いくつかの場合にわけて説明する。
許可情報書換部115は、許可情報保持部113に、資源アクセス情報を追加する場合に、1)資源アクセス情報に基づいて、開始論理アドレスと、論理アドレスを物理アドレスに変換する為の情報(以後「アドレス変換情報」と呼ぶ)とを作成し、2)資源アクセス情報を、作成した開始論理アドレスと対応付けて、許可情報保持部113に追加し、3)作成したアドレス変換情報を、プログラムを示す情報と対応付けて、アドレス変換テーブル構成要素とし、作成したアドレス変換テーブル構成要素を、アクセス許可部117が保持する、アドレス変換テーブル118に追加し、4)作成した論理開始アドレスを、要求受付部111に通知し、5)資源アクセス情報に対応するプログラムに対して対応する資源へのアクセスを許可する旨を示す許可情報を通知する。
許可情報書換部115が、プログラムに対して許可情報を通知すると、プログラムは、資源アクセス処理ルーチンの実行を開始する。
許可情報書換部115は、要求受付部111が作成した資源アクセス情報を許可情報保持部113に追加しようとする場合において、作成した資源アクセス情報が示す資源と一致する資源が、許可情報保持部113が既に保持している資源アクセス情報が示す資源の中にあるときには、一致する資源を示す許可情報保持部113で保持している資源アクセス情報を、許可情報保持部113から削除して待機情報保持部114に追加する。
許可情報書換部115は、許可情報保持部113で保持している資源アクセス情報を削除する場合に、対応するプログラムに対して、対応する資源へのアクセスの許可を取り消す旨を示す削除情報を通知し、アクセス許可部117のアドレス変換テーブル118から対応するアドレス変換テーブル構成要素を削除する。
許可情報書換部115がプログラムに対して削除情報を通知すると、プログラムは、プログラムを終了する為の後処理をして、プログラムを終了する。
<許可情報追加部116>
許可情報追加部116は、許可情報保持部113が保持する資源アクセス情報が更新される場合に、待機情報保持部114で保持する資源アクセス情報を許可情報保持部113に追加する機能を備えるブロックである。
以下、許可情報追加部116の機能を、いくつかの場合にわけて説明する。
許可情報追加部116は、許可情報保持部113が保持する資源アクセス情報が更新された場合において、待機情報保持部114で保持している資源アクセス情報の中に、許可情報保持部113に追加できる資源を示す資源アクセス情報(以後「該当資源アクセス情報」と呼ぶ)があるとき、該当資源アクセス情報の中から許可情報保持部113で保持すべき資源アクセス情報(以後「追加資源アクセス情報」と呼ぶ)を選択し、選択した追加資源アクセス情報を待機情報保持部114から削除し、許可情報保持部113に追加する。
ここで、許可情報保持部113に追加できる資源とは、1)アクセス方式が占有方式であって、許可情報保持部113が保持する全ての資源アクセス情報が示す資源を含まない資源か、2)アクセス方式が共有方式であって、許可情報保持部113が保持する資源アクセス情報が示す資源のうちアクセス方式が占有方式である資源を含まない資源かのいずれかの資源のことを言う。
追加資源アクセス情報の選択条件については、後程詳細に説明する。
許可情報追加部116は、許可情報保持部113に資源アクセス情報を追加する場合であって、追加する資源アクセス情報に対応する開始論理アドレスが、待機情報保持部114に保持されていなかったときに、1)資源アクセス情報に基づいて、開始論理アドレスと、アドレス変換情報とを作成し、2)資源アクセス情報を、作成した開始論理アドレスと対応付けて許可情報保持部113に追加し、3)作成したアドレス変換情報を、プログラムを示す情報と対応付けて、アドレス変換テーブル構成要素とし、作成したアドレス変換テーブル構成要素を、アクセス許可部117が保持する、アドレス変換テーブル118に追加し、4)作成した論理開始アドレスを、要求受付部111に通知し、5)資源アクセス情報に対応するプログラムに対して対応する資源へのアクセスを許可する旨を示す追加情報を通知する。
許可情報追加部116が、プログラムに対して追加情報を通知すると、プログラムは、資源アクセス処理ルーチンの実行を開始する。
許可情報追加部116は、許可情報保持部113に資源アクセス情報を追加する場合であって、追加する資源アクセス情報に対応する開始論理アドレスが、待機情報保持部114に保持されていたときに、1)資源アクセス情報に基づいて、アドレス変換情報を作成し、2)資源アクセス情報を、開始論理アドレスと対応付けて許可情報保持部113に追加し、3)作成したアドレス変換情報を、プログラムを示す情報と対応付けて、アドレス変換テーブル構成要素とし、作成したアドレス変換テーブル構成要素を、アクセス許可部117が保持する、アドレス変換テーブル118に追加し、4)作成した論理開始アドレスを、要求受付部111に通知し、5)資源アクセス情報に対応するプログラムを起動する。
<アクセス許可部117>
アクセス許可部117は、プログラムに含まれる、資源の読み書きに係る命令をプロセッサのデコーダがデコードする場合に、資源の読み書きに係る命令で指定される論理アドレスを、アドレス変換テーブル118を用いて、対応する物理アドレスに変換し、変換した物理アドレスを用いて、資源102へのアクセスを管理しているメモリコントローラを動作させることで、資源への読み書きを行うブロックであって、その一部は、プロセッサのデコーダの一部によって構成されている。
アクセス許可部117が保持するアドレス変換テーブル118は、プログラムを示す情報と、論理アドレスを物理アドレスに変換する為の情報であるアドレス変換情報とを対応付けた情報である、アドレス変換テーブル構成要素を複数保持している。
アクセス許可部117は、アドレス変換テーブル118の保持する、アドレス変換テーブル構成要素に対応するプログラムにのみ、対応するアドレス変換情報を用いて、論理アドレスを物理アドレスに変換する。
アクセス許可部117は、アドレス変換テーブル118を構成する、アドレス変換テーブル構成要素に対応するプログラム以外のプログラムが、資源102への読み書きを行う場合には、例外を発生して、OSにそのプログラムの実行を停止させる。
<動作>
<資源の利用要求を受けた場合の動作>
以下、図面を使って、プログラムからの資源の利用要求を受けた場合の動作について説明する。
図7、8は、プログラム群101を構成するプログラムから資源102の利用要求を受けた場合の動作を示すフローチャートである。
要求受付部111は、プログラム群101の中のプログラムから資源102を利用する要求をされる(ステップS100)と、ポリシィ保持部112で保持するポリシィ情報の中に、要求を出したプログラムに対応するポリシィ情報があるか否かを検索し(ステップS110)、該当するポリシィ情報がある場合(ステップS110:Yes)には、許可情報保持部113に要求を出したプログラムに対応する資源アクセス情報があるか否かを検索し(ステップS113)、対応する資源アクセス情報を見つけられなかったら(ステップS113:Yes)、要求を出したプログラムに対応する資源アクセス情報を作成して(ステップS116)資源利用要求を受け付ける。
要求受付部111が資源利用要求を受け付けると、許可情報書換部115は、要求受付部111が作成した資源アクセス情報(以後「新規資源アクセス情報」と呼ぶ)の示す資源と同一の資源(以後「重複資源」と呼ぶ)を示す資源アクセス情報(以後「重複資源アクセス情報」と呼ぶ)が許可情報保持部113に保持されているか否かを検索する(ステップS120)。
許可情報書換部115は、重複資源アクセス情報が許可情報保持部113に保持されている場合(ステップS120:Yes)、新規資源アクセス情報が示すプログラム(以後「新規プログラム」と呼ぶ)が重複資源にアクセスするアクセス方式と、重複資源アクセス情報が示すプログラム(以後「重複プログラム」と呼ぶ)が重複資源にアクセスするアクセス方式のうち、少なくとも一方のアクセス方式が占有方式であれば(ステップS130:Yes)、新規プログラムが重複資源にアクセスする優先度と、重複プログラムが重複資源にアクセスする優先度とを比較し(ステップS140)、新規プログラムが重複資源にアクセスする優先度のほうが重複プログラムの重複資源にアクセスする優先度よりも高ければ(ステップS140:Yes)、許可情報書換部115は、重複プログラムに対して削除情報を通知する(ステップS150)。
許可情報書換部115が重複プログラムに対して削除情報を通知すると、重複プログラムは、前述した後処理を実行してプログラムを終了する。
許可情報書換部115は、削除情報を通知してから所定の時間経過すると、許可情報保持部113から重複資源アクセス情報と、対応する開始論理アドレスとを削除する(ステップS160)。
ここでいう所定の時間とは、重複プログラムが後処理を実行してプログラムを終了するのに必要な、予め定めておいた時間のことをいい、ここでは、全てのプログラムに対して一律同じ時間に設定してあり、許可情報書換部115は、図示していないタイマを使って所定の時間を計測している。
許可情報書換部115は、許可情報保持部113から重複資源アクセス情報と、対応する開始論理アドレスとを削除すると、アドレス変換テーブル118から該当するアドレス変換テーブル構成要素を削除し(ステップS170)、重複資源アクセス情報を、対応する開始論理アドレスと対応付けて、待機情報保持部114に追加(ステップS250)する。
許可情報書換部115は、重複資源アクセス情報を待機情報保持部114に追加すると、新規アクセス情報に対応するアドレス変換テーブル構成要素を作成し、許可情報保持部113に、新規資源アクセス情報を、作成した論理開始アドレスに対応付けて追加して(ステップS260)、アドレス変換テーブル118に作成したアドレス変換テーブル構成要素を追加する(ステップS270)。
許可情報書換部115は、ステップS270を実行する、もしくは、ステップS113において、要求受付部111が、許可情報保持部113に、要求を出したプログラムに対応する資源アクセス情報を見つけると(ステップS113:No)、要求を出したプログラムに対応する開始論理アドレスを要求受付部111に通知し、要求を出したプログラムに、許可情報を通知する。
要求受付部111は、許可情報書換部115から開始論理アドレスを通知されると、通知された開始論理アドレスを戻り値として、要求を出したプログラムに返して(ステップS280)資源の利用要求を受けた場合の動作を終了する。
プログラムは、許可情報と開始論理アドレスと通知されると、資源アクセス処理ルーチンを開始する。
ステップS140において、新規プログラムが重複資源にアクセスする優先度のほうが重複プログラムが重複資源にアクセスする優先度よりも高くなければ(ステップS140:No)、許可情報書換部115は、新規資源アクセス情報を待機情報保持部114に追加(ステップS180)して、資源の利用要求を受けた場合の動作を終了する。
ステップS120において、許可情報保持部113に重複資源アクセス情報が保持されていない場合(ステップS120:No)、または、ステップS130において、新規プログラムが重複資源にアクセスするアクセス方式と、重複プログラムが重複資源にアクセスするアクセス方式との双方が共有方式である場合(ステップS130:No)には、許可情報書換部115は、上述したステップS260〜ステップS280の動作を行い、資源の利用要求を受けた場合の動作を終了する。
ステップS110において該当するポリシィ情報がない場合(ステップS110:No)には、要求受付部111は、プログラムの実行を停止させて(ステップS200)、資源の利用要求を受けた場合の動作を終了する。
<資源アクセス処理ルーチンが終了した場合の動作>
以下、図面を使って、資源アクセス処理ルーチンが終了した場合の動作について説明する。
図9は、資源アクセス処理ルーチンが終了した場合の動作を示すフローチャートである。
プログラムは、資源アクセス処理ルーチンを終了すると、許可情報書換部115に実行終了の旨を通知する(ステップS300)。
許可情報書換部115は、プログラムから実行終了の旨を通知されると、許可情報保持部113から、資源アクセス情報と、対応する開始論理アドレスとを削除し(ステップS310)、アドレス変換テーブル118から該当するアドレス変換テーブル構成要素を削除して(ステップS320)、資源アクセス処理ルーチンが終了した場合の動作を終了する。
<許可情報保持部113が更新される場合の動作>
以下、図面を使って、許可情報保持部113の保持する内容が更新された場合の動作について説明する。
図10は、プログラムからの資源の利用要求を受け付けた場合や、実行中のプログラムが終了した場合等において、許可情報保持部113の保持する情報が更新されるときの動作を示すフローチャートである。
許可情報保持部113の保持する情報が更新される(ステップS400)と、許可情報追加部116は、待機情報保持部114の保持する資源アクセス情報の中に、許可情報保持部113に追加することができる資源がある場合(ステップS410:Yes)において、該当する資源アクセス情報が複数(ステップS420:Yes)であれば、該当する資源アクセス情報の該当する優先度を比較する(ステップS430)。
許可情報追加部116は、優先度を比較した結果、最も優先度が高い資源アクセス情報が複数ある場合(ステップS430:Yes)には、待機情報保持部114に保持された時刻が最も早い資源アクセス情報を追加資源アクセス情報として選択し(ステップS440)、最も優先度が高い資源アクセス情報が1つである場合(ステップS430:No)には、その最も優先度が高い資源アクセス情報を追加資源アクセス情報として選択し(ステップS450)、また、ステップS420において、該当する資源アクセス情報が1つであった場合(ステップS420:No)には、該当する資源アクセス情報を追加資源アクセス情報として選択する。
許可情報追加部116は、追加資源アクセス情報を選択する場合において、対応する開始論理アドレスが待機情報保持部114で保持されていれば、1)追加資源アクセス情報を開始論理アドレスに対応付けて、許可情報保持部113に追加し(ステップS470)、2)アドレス変換テーブル構成要素を作成して、作成したアドレス変換テーブル構成要素をアドレス変換テーブル118に追加して(ステップS480)要求受付部111に論理開始アドレスを通知し、3)待機情報保持部114から、追加資源アクセス情報と、対応する開始論理アドレスと保持開始時刻とを削除し、4)追加資源アクセス情報に対応するプログラムを起動する。
また、許可情報追加部116は、追加資源アクセス情報を選択する場合において、対応する開始論理アドレスが待機情報保持部114で保持されていなければ、1)開始論理アドレスを作成し、追加資源アクセス情報を開始論理アドレスに対応付けて、許可情報保持部113に追加し(ステップS470)、2)アドレス変換テーブル構成要素を作成して、作成したアドレス変換テーブル構成要素をアドレス変換テーブル118に追加して(ステップS480)要求受付部111に論理開始アドレスを通知し、3)待機情報保持部114から、追加資源アクセス情報と、対応する開始論理アドレスと保持開始時刻とを削除し、4)追加資源アクセス情報に対応するプログラムに、許可情報を通知する。
要求受付部111は、開始論理アドレスを通知されると、通知された開始論理アドレスを戻り値として対応するプログラムに返す(ステップS490)。
論理アドレスを物理アドレスに変換する動作については、後程詳細に説明する。
要求受付部111が、開始論理アドレスを追加資源アクセス情報に対応するプログラムに通知する(ステップS490)と、再びステップS410に戻って、以降の処理を継続する。
ステップS410において、許可情報追加部116は、待機情報保持部の保持する資源アクセス情報の中に追加することができる資源がない(ステップS410:No)と、許可情報保持部113が更新される場合の動作を終了する。
<プログラムが資源にアクセスする動作>
以下、図面を使って、プログラムが資源にアクセスする動作について説明する。
図11は、プログラムに含まれる資源の読み書きに係る命令を、プロセッサのデコーダがデコードして、資源102への読み書きを行う動作を示すフローチャートである。
アクセス許可部117は、論理アドレスを指定することで資源102の読み書きを行う命令を、プロセッサの命令フェッチ部から受け取る(ステップS600)と、アクセス許可部117は、受け取った命令のデコードを開始する。
アクセス許可部117は、命令のデコードを開始すると、アドレス変換テーブル118の中に、対応するアドレス変換テーブル構成要素があるか否かを確認し(ステップS610)、アドレス変換テーブル構成要素がある場合(ステップS610:Yes)、対応するアドレス変換情報に基づいて、論理アドレスを物理アドレスに変換して(ステップS620)、変換した物理アドレスを用いて、受け取った命令のデコードを完了する。
さらに、アクセス許可部は、物理アドレスを含むデコード後の命令を用いて、資源102へのアクセスを管理しているメモリコントローラを動作させることで、資源102への読み書きを行い、プログラムが資源にアクセスする動作を終了する。
ステップS610において、対応するアドレス変換テーブルがない場合(ステップS610:No)、アクセス許可部117は、割り込みを発生して、OSにプログラムの実行を停止させる処理ルーチンを実行させることで、プログラムの実行を停止させて(ステップS630)、プログラムが資源にアクセスする動作を終了する。
<ポリシィ情報を更新する動作>
以下、図面を使って、認証局103からの証明書を受け取る場合の動作について説明する。
図12は、認証局103から証明書受け取って、ポリシィ情報をポリシィ保持部112に登録する場合の動作を示すフローチャートである。
認証局103は、受け取ったプログラムが特定の資源に特定の優先度で特定のアクセス方式でアクセスすることに不都合がない場合に、受け取ったプログラムが特定の資源に特定の優先度で特定のアクセス方式でアクセスすることを認証し、認証した特定のプログラムと特定の資源と特定の優先度と特定のアクセス方式との情報を対応付けた情報であるポリシィ情報を作成する。
認証局103は、作成したポリシィ情報を、優先度毎に異なる秘密鍵を使って暗号化し、暗号化したものを証明書としてプログラム所有者へ提出する。
認証局103は、秘密鍵に対応する公開鍵を広く一般に公開している。
プログラム所有者は、証明書を受け取ると、証明書をポリシィ保持部112に入力する。
アクセス制御装置100を用いて資源102にアクセスするプログラムの所有者は、そのプログラムと、そのプログラムが使用する資源と、その資源を使用する際の優先度と、その資源を使用する際のアクセス方式とを認証局103へ提出する。
認証局103は、特定のプログラムが特定の資源に特定の優先度で特定のアクセス方式で特定のアクセス方式でアクセスすることの正当性を認証すると、ポリシィ情報を作成し、作成したポリシィ情報に対して、優先度毎に対応する秘密鍵を使って暗号化して証明書を作成する。
ここで使用する秘密鍵に対応する公開鍵は、予め広く一般に公開している。
ポリシィ保持部112は、認証局が証明書作成の際に使用する秘密鍵に対応する公開鍵を予め保持しておく(ステップS700)。
認証局103で作成したポリシィ情報を、ポリシィ保持部112に登録させたいプログラムの所有者は、認証局103が発行した証明書をポリシィ保持部112に入力し、ポリシィ保持部112は、証明書を入力されると(ステップS710)、優先度0〜5の6種類の優先度のそれぞれに対応する6つの公開鍵を使って、証明書を正しく解読できるか否かを確かめる(ステップS720)。
ここで、OSは、証明書を指定して呼びだすと、ポリシィ保持部112が指定された証明書の解読処理を開始する証明書入力APIを備えており、プログラムの所有者が、証明書入力APIを呼び出すプログラムを、OS上で実行することで、プログラムの所有者は、証明書をポリシィ保持部112に入力する。
ポリシィ保持部112は、6つの公開鍵のうちのいずれか1つの公開鍵で証明書を正しく解読する(ステップS720:Yes)と、1)解読したことによって得られたポリシィ情報の優先度と、解読に使用した公開鍵に対応する優先度とが一致して、2)解読したことによって得られたポリシィ情報における、優先度と資源とアクセス条件との組み合わせが、ポリシィ保持部112が保持するアクセス制限情報の制限に違反していなければ、登録要求内容が正当な要求であると判断し(ステップS730:Yes)、解読したことによって得られたポリシィ情報をポリシィ保持部112に追加して保持し(ステップS740)、ディスプレイに登録完了の旨のメッセージを表示して(ステップS750)、ポリシィ情報を更新する動作を終了する。
ステップS720において、ポリシィ保持部112が、6つの公開鍵のうちいずれか1つの公開鍵で証明書を正しく解読できない(ステップS720:No)場合、もしくは、ステップS730において、ポリシィ保持部112が、登録内容が正当な要求であると判断しない場合(ステップS730:No)には、ポリシィ保持部112は新たにポリシィ情報を追加して保持することなく、ディスプレイに登録失敗の旨のメッセージを表示させて(ステップS760)、ポリシィ情報を更新する動作を終了する。
<変形例>
実施の形態では、資源102が保護メモリ121と共用メモリ122と暗号エンジン123という3つの単位で区別されている例について説明したが、変形例では、資源102が、物理アドレスの範囲を任意に指定される領域に区別され、任意に区別された領域の単位で使用される資源となっている例である。
以下変形例について、実施の形態との相違点を中心に説明する。
<変形例における ポリシィ情報と資源アクセス情報とアクセス制限情報>
図13は変形例におけるポリシィ保持部112が保持するポリシィ情報である。
ポリシィ保持部112は、プログラムID1302で特定されるプログラムが、優先度1303で示される優先度で、資源のアドレス1304で指定される領域の資源に、アクセス方式1307で示されるアクセス方式でアクセスすることができる旨を示す情報であるポリシィ情報を保持する。
実施の形態におけるポリシィ情報との相違点は、実施の形態におけるポリシィ情報では、資源は、保護メモリ121と共用メモリ122と暗号エンジン123の3つの資源であった部分が、変形例におけるポリシィ情報では、資源は、物理アドレスで指定される任意の領域の資源となっている点と、実施の形態におけるポリシィ情報では、資源へのアクセス方式が、保護メモリ121と共用メモリ122と暗号エンジン123の3つの資源それぞれにアクセス方式を対応付けていた部分が、変形例におけるポリシィ情報では、物理アドレスで指定される任意の領域の1つの資源に対応する1つのアクセス方式を対応付けるようになっている点である。
資源アクセス情報は、ポリシィ保持部の保持するポリシィ情報を参照して、要求受付部111が作成する情報であり、ポリシィ情報の場合と同様に、実施の形態における資源アクセス情報では、資源は、保護メモリ121と共用メモリ122と暗号エンジン123の3つの資源であった部分が、変形例におけるポリシィ情報では、資源は、物理アドレスで指定される任意の領域の資源となっている。
また、同様に、実施の形態における資源アクセス情報では、資源へのアクセス方式が、保護メモリ121と共用メモリ122と暗号エンジン123の3つの資源それぞれにアクセス方式を対応付けていた部分が、変形例における資源アクセス情報では、物理アドレスで指定される任意の領域の1つの資源に対応する1つのアクセス方式を対応付けるようになっている。
図14は、変形例におけるポリシィ保持部112が保持するアクセス制限情報である。
図14に示すように、アクセス制限情報は、優先度1401で示される優先度に応じて、対応するプログラムが資源へのアクセスを行う際の制限を示している情報である。
実施の形態では、資源として保護メモリ121と共用メモリ122と暗号エンジン123との3つの資源があったが、変形例におけるアクセス制限情報は、1つの資源のみとなっている。
<変形例における資源の重複>
実施の形態においては、複数のプログラムに対応する資源が重複している場合として、複数のプログラムに対応する資源が同じ資源である場合しかなかったが、変形例においては、複数のプログラムのアクセスしようとする資源が、様々な形態で重複している場合が発生する。
ここでは、変形例における資源の重複が発生する場合について、資源の重複が発生する形態を、複数のプログラムに対応する領域の資源を全て含む資源の利用要求がある形態をパターン1、プログラムに対応する領域の資源の一部の領域を含む資源への資源の利用要求がある形態をパターン2とする2つのパターンに分類して、図面を使って説明する。
図15は、変形例において、資源の重複がパターン1の形態で発生する場合について、各プログラムが使用する資源の領域の関係を、模式的に示す図である。
ここでは、プログラムAとプログラムBとプログラムCとが、資源を使用して実行中のプログラムである場合において、プログラムAが使用している資源が、物理アドレス空間1500上の、0000_1000h〜0000_11FFhの領域の資源であって、プログラムBが使用している資源が、0000_1200h〜0000_13FFhの領域の資源であって、プログラムCが使用している資源が、000_1400h〜0000_15FFhの領域の資源あるとき、新たにプログラムDから、0000_1000h〜0000_15FFhの領域の資源を利用する要求を受け取った場合を例として、資源の重複がパターン1の形態で発生する場合を、いくつかの場合に場合分けして説明する。
1)プログラムDが資源にアクセスするアクセス方式が、占有方式である場合。
プログラムDの優先度が、プログラムAの優先度とプログラムBの優先度とプログラムCの優先度の全てよりも優先度が高い場合に、許可情報書換部115によって、プログラムDに対応する資源アクセス情報が、許可情報保持部113に追加され、プログラムAとプログラムBとプログラムCとに対応する資源アクセス情報が、許可情報保持部113から削除されて、待機情報保持部114に追加される。
プログラムDの優先度が、プログラムAの優先度とプログラムBの優先度とプログラムCの優先度の全てよりも優先度が高くない場合に、許可情報書換部115によって、プログラムDに対応する資源アクセス情報が、待機情報保持部114に追加される。
プログラムDの優先度が、プログラムAの優先度よりも高くなく、プログラムBの優先度と、プログラムCの優先度より高い場合に(例えば、プログラムAの優先度>プログラムDの優先度>プログラムBの優先度>プログラムCの優先度)、許可情報書換部115によって、プログラムAの資源アクセス情報が削除されたとき、プログラムBとプログラムCに対応する資源アクセス情報が、許可情報保持部113から削除されて、待機情報保持部114に追加され、さらに、プログラムDに対応する資源アクセス情報が、許可情報保持部113に追加される。
2)プログラムDが資源にアクセスするアクセス方式が、共有方式である場合。
2−1)プログラムA、プログラムB、プログラムCが資源にアクセスする方式が、全て占有方式である場合。
プログラムDの優先度が、プログラムAの優先度とプログラムBの優先度とプログラムCの優先度の全てよりも優先度が高い場合に、許可情報書換部115によって、プログラムDに対応する資源アクセス情報が、許可情報保持部113に追加され、プログラムAとプログラムBとプログラムCとに対応する資源アクセス情報が、許可情報保持部113から削除されて、待機情報保持部114に追加される。
プログラムDの優先度が、プログラムAの優先度とプログラムBの優先度とプログラムCの優先度の全てよりも優先度が高くない場合に、許可情報書換部115によって、プログラムDに対応する資源アクセス情報が、待機情報保持部114に追加される。
2−2)プログラムA、プログラムB、プログラムCが資源にアクセスする方式が、占有方式と共有方式とが混在している場合。
ここではプログラムAとプログラムBとが資源にアクセスするアクセス方法が、占有方式で、プログラムCが資源にアクセスするアクセス方法が、共有方式であるとして説明する。
プログラムDの優先度が、資源にアクセスするアクセス方式が占有方式である全てのプログラム(すなわちプログラムAとプログラムB)の優先度よりも優先度が高い場合に、許可情報書換部115によって、プログラムDに対応する資源アクセス情報が、許可情報保持部113に追加され、プログラムAとプログラムBとに対応する資源アクセス情報が、許可情報保持部113から削除されて、待機情報保持部114に追加される。
プログラムDの優先度が、資源にアクセスするアクセス方式が占有方式である全てのプログラム(すなわちプログラムAとプログラムB)の優先度よりも優先度が高くない場合に、許可情報書換部115によって、プログラムDに対応する資源アクセス情報が、待機情報保持部114に追加される。
2−3)プログラムA、プログラムB、プログラムCが資源にアクセスする方法が、全て共有方式である場合。
プログラムDに対応する資源アクセス情報が、許可情報書換部115によって、許可情報保持部113に追加される。
図16は、変形例において、資源の重複がパターン1の形態で発生する場合について、各プログラムが使用する資源の領域の関係を、模式的に示す図である。
ここでは、プログラムAとプログラムBとが、資源を使用して実行中のプログラムである場合において、プログラムAが使用している資源が、物理アドレス空間1500上の、0000_1000h〜0000_11FFhの領域の資源であって、プログラムBが使用している資源が、0000_1200h〜0000_13FFhの領域の資源であるとき、新たにプログラムCから、0000_1100h〜0000_12FFhの領域の資源を利用する要求を受け取った場合を例として、資源の重複がパターン2の形態で発生する場合を、いくつかの場合に場合分けして説明する。
3)プログラムCが資源にアクセスするアクセス方式が、占有方式である場合。
プログラムCの優先度が、プログラムAの優先度とプログラムBの優先度との双方よりも優先度が高い場合に、許可情報書換部115によって、プログラムCに対応する資源アクセス情報が、許可情報保持部113に追加され、プログラムAとプログラムBとに対応する資源アクセス情報が、許可情報保持部113から削除されて、待機情報保持部114に追加される。
プログラムCの優先度が、プログラムAの優先度とプログラムBの優先度との双方よりも優先度が高くない場合に、許可情報書換部115によって、プログラムCに対応する資源アクセス情報が、待機情報保持部114に追加される。
4)プログラムCが資源にアクセスするアクセス方式が、共有方式である場合。
4−1)プログラムA、プログラムBが資源にアクセスする方式が、全て占有方式である場合。
プログラムCの優先度が、プログラムAの優先度とプログラムBの優先度との双方よりも優先度が高い場合に、許可情報書換部115によって、プログラムCに対応する資源アクセス情報が、許可情報保持部113に追加され、プログラムAとプログラムBとに対応する資源アクセス情報が、許可情報保持部113から削除されて、待機情報保持部114に追加される。
プログラムCの優先度が、プログラムAの優先度とプログラムBの優先度との双方よりも優先度が高くない場合に、許可情報書換部115によって、プログラムCに対応する資源アクセス情報が、待機情報保持部114に追加される。
4−2)プログラムA、プログラムBが資源にアクセスする方式が、占有方式と共有方式とが混在している場合。
ここではプログラムAが資源にアクセスするアクセス方法が占有方式で、プログラムBが資源にアクセスするアクセス方法が共有方式であるとして説明する。
プログラムCの優先度が、資源にアクセスするアクセス方式が占有方式であるプログラムAの優先度よりも優先度が高い場合に、許可情報書換部115によって、プログラムCに対応する資源アクセス情報が、許可情報保持部113に追加され、プログラムAに対応する資源アクセス情報が、許可情報保持部113から削除されて、待機情報保持部114に追加される。
プログラムCの優先度が、資源にアクセスするアクセス方式が占有方式であるプログラムAの優先度よりも優先度が高くない場合に、許可情報書換部115によって、プログラムCに対応する資源アクセス情報が、待機情報保持部114に追加される。
4−3)プログラムA、プログラムBが資源にアクセスする方法が、全て共有方式である場合。
プログラムCに対応する資源アクセス情報が、許可情報書換部115によって、許可情報保持部113に追加される。
<変形例における資源の利用要求を受けた場合の動作>
以下、図面を使って、変形例における、プログラムからの資源の利用要求を受けた場合の動作について説明する。
図17、18は、プログラム群101を構成するプログラムから資源102の利用要求を受けた場合の動作を示すフローチャートである。
要求受付部111は、プログラム群101の中のプログラムから資源102を利用する要求をされる(ステップS800)と、ポリシィ保持部112で保持するポリシィ情報の中に、要求を出したプログラムに対応するポリシィ情報があるか否かを検索し(ステップS810)、該当するポリシィ情報がある場合(ステップS810:Yes)には、許可情報保持部113に要求を出したプログラムに対応する資源アクセス情報があるか否かを検索し(ステップS813)、対応する資源アクセス情報を見つけられなかったら(ステップS813:Yes)、要求を出したプログラムに対応する資源アクセス情報を作成して(ステップS816)資源利用要求を受け付ける。
要求受付部111が資源利用要求を受け付けると、許可情報書換部115は、要求受付部111が作成した資源アクセス情報(新規資源アクセス情報)の示す領域の資源を少なくとも一部に含む領域資源(重複資源)を示す資源アクセス情報(重複資源アクセス情報)が許可情報保持部113に保持されているか否かを検索する(ステップS820)。
許可情報書換部115は、重複資源アクセス情報が許可情報保持部113に保持されている場合(ステップS820:Yes)において、新規資源アクセス情報が示すプログラム(以後「新規プログラム」と呼ぶ)から対応する資源にアクセスするアクセス方式が共有方式であるとき(ステップS830:Yes)、重複資源アクセス情報が示すプログラム(以後「重複プログラム」と呼ぶ)が重複資源にアクセスするアクセス方式のうち、少なくとも1つのアクセス方式が占有方式であれば(ステップS840:Yes)、新規プログラムが重複資源にアクセスする優先度と、重複プログラムのうち、資源にアクセスするアクセス方式が占有方式であるプログラム(以後「重複占有プログラム」)が重複資源にアクセスする優先度(以後「重複占有優先度」と呼ぶ)とを比較し(ステップS850)、新規プログラムが重複資源にアクセスする優先度の方が全ての重複占有優先度よりも高ければ(ステップS850:Yes)、許可情報書換部115は、全ての重複占有プログラムに対して削除情報を通知する(ステップS860)。
また、ステップS830において、新規プログラムから対応する資源にアクセスするアクセス方式が占有方式であるとき(ステップS830:No)、新規プログラムが重複資源にアクセスする優先度と重複プログラムが重複資源にアクセスする優先度とを比較し(ステップS845)、新規プログラムが重複資源にアクセスする優先度の方が全ての重複プログラムが重複資源にアクセスする優先度よりも高ければ(ステップS845:Yes)、許可情報書換部115は、全ての重複プログラムに対して削除情報を通知する(ステップS860)。
削除情報を通知された、重複占有プログラムもしくは重複プログラム(以後「該当プログラム」と呼ぶ)は、削除情報を通知されると、前述した後処理を実行してプログラムを終了する。
許可情報書換部115は、削除情報を通知してから所定の時間経過すると、許可情報保持部113から全ての該当プログラムに対応する資源アクセス情報(以後「該当資源アクセス情報」と呼ぶ)と、対応する開始論理アドレスとを削除し(ステップS870)、アドレス変換テーブル118から該当する全てのアドレス変換テーブル構成要素を削除して(ステップS950)、全ての該当資源アクセス情報を、対応する開始論理アドレスに対応付けて、待機情報保持部114に追加(ステップS960)する。
許可情報書換部115は、全ての該当資源アクセス情報を待機情報保持部114に追加すると、新規アクセス情報に対応するアドレス変換テーブル構成要素を作成し、許可情報保持部113に、新規資源アクセス情報を、作成した論理開始アドレスに対応付けて追加して(ステップS970)、アドレス変換テーブル118に作成したアドレス変換テーブル構成要素を追加する(ステップS980)。
許可情報書換部115は、ステップS980を実行する、もしくは、ステップS813において、要求受付部111が、許可情報保持部113に、要求を出したプログラムに対応する資源アクセス情報を見つけると(ステップS813:No)、要求を出したプログラムに対応する開始論理アドレスを要求受付部111に通知し、要求を出したプログラムに、許可情報を通知する。
要求受付部111は、許可情報書換部115から開始論理アドレスを通知されると、通知された開始論理アドレスを戻り値として、要求を出したプログラムに返して(ステップS990)資源の利用要求を受けた場合の動作を終了する。
プログラムは、許可情報と開始論理アドレスと通知されると、資源アクセス処理ルーチンを開始する。
許可情報書換部115は、新規プログラムに対して許可通知信号を通知すると、新規資源アクセス情報を基にして、アドレス変換テーブル構成要素と開始論理アドレスとを作成し、新規資源アクセス情報を作成した開始論理アドレスに対応付けて許可情報保持部113に追加し(ステップS970)、アドレス変換テーブル118に作成したアドレス変換テーブル構成要素を追加し(ステップS980)、作成した開始論理アドレスを要求受付部111に通知する。
要求受付部111は、開始論理アドレスを通知されると、通知された開始論理アドレスを戻り値として新規プログラムに返して(ステップS990)、資源の利用要求を受けた場合の動作を終了する。
ステップS845において、新規プログラムが重複資源にアクセスする優先度の方が全ての重複プログラムが重複資源にアクセスする優先度よりも高くなければ(ステップS845:No)、もしくは、ステップS850において、新規プログラムが重複資源にアクセスする優先度の方が全ての重複占有優先度よりも高くなければ(ステップS850:No)許可情報書換部115は、新規資源アクセス情報を待機情報保持部114に追加(ステップS880)して、資源の利用要求を受けた場合の動作を終了する。
ステップS820において、許可情報保持部113に重複資源アクセス情報が保持されていない場合(ステップS820:No)、または、ステップS840において、重複プログラムが重複資源にアクセスするアクセス方式が全て共有方式であれば(ステップS840:No)、許可情報書換部115は、新規プログラムに対して許可通知信号を通知して、上述したステップS970〜ステップS990の処理を行い、資源の利用要求を受けた場合の動作を終了する。
ステップS810において該当するポリシィ情報がない場合(ステップS810:No)には、要求受付部111は、プログラムの実行を停止させて(ステップS900)、資源の利用要求を受けた場合の動作を終了する。
<補足>
以上、本発明に係るアクセス制御装置の一実施形態として、複数のプログラムそれぞれからの資源へのアクセスを制御するアクセス制御装置について、また、その変形例としてのアクセス制御装置について説明したが、さらに以下のように変形することも可能であり、本発明は上述した実施の形態で示した通りのアクセス制御装置に限られないことはもちろんである。
(1)実施の形態において、資源アクセス情報を保持するブロックとして、許可情報保持部113と待機情報保持部114との2つのブロックを使用するとして説明したが、例えば、情報保持部という1つのブロックのみで、資源アクセス情報を保持するとしてもよい。
この際、例えば、資源アクセス情報が、実施の形態において許可情報保持部113で保持する資源アクセス情報である場合に1、待機情報保持部114で保持する資源アクセス情報である場合に0となる許可情報フラグを用意しておき、情報保持部で資源アクセス情報を保持する場合に、資源アクセス情報とこの許可情報フラグとを対応付けて保持するようにしておく。
資源アクセス情報を保持するブロックが1つであっても、資源アクセス情報に対応付けられている許可情報フラグを参照することで、実施の形態における許可情報保持部113で保持されているべき資源アクセス情報なのか、実施の形態における待機情報保持部114で保持されているべき資源アクセス情報なのかの区別をすることができる為、実施の形態と同様の動作を行うことができる。
このような構成にすることによって、実施の形態において、許可情報保持部113と待機情報保持部114との間で、資源アクセス情報の削除、追加を行う代わりに、許可情報フラグの値を変更するだけで同様の動作を実現できるようになる。
(2)実施の形態において、資源アクセス情報は、要求受付部111が、プログラムから、資源を利用する要求をされると、要求を出したプログラムに対応するポリシィ情報の、プログラムの情報と資源の情報と優先度の情報とアクセス方式の情報とを参照して、資源アクセス情報を作成するとしたが、プログラムの情報と資源の情報と優先度の情報とアクセス方式の情報との情報のうち、一部の情報もしくは全ての情報を、ポリシィ情報以外の情報を参照して、資源アクセス情報を作成するとしてもよい。
例えば、プログラムが要求受付部111に対して、資源を利用する要求をする際に、プログラムの情報と資源の情報と優先度の情報とアクセス情報とを含むデータを指定して要求し、要求受付部111は、この指定されたデータから、プログラムの情報と資源の情報と優先度の情報とアクセス情報とを参照して資源アクセス情報を作成するとしても構わない。
ここでは、この指定されたデータが、ポリシィ保持部112が保持するアクセス制限情報を満たしている場合にのみ、資源アクセス情報を作成するとしておくか、ポリシィ保持部112が保持するポリシィ情報を満たしている場合にのみ、資源アクセス情報を作成するとしておく。
このような構成にすることによって、要求受付部111は、プログラムから資源の利用を要求される毎に資源アクセス情報を作成できるようになり、同一のプログラムに対応する資源アクセス情報を作る場合であっても、状況に応じて異なる資源アクセス情報を作成することができるようになる。
(3)実施の形態において、ポリシィ保持部112のアクセス制限情報の資源へのアクセスを行う際に許されているアクセス方式、及び、ポリシィ情報の資源へのアクセスを行う際に許されているアクセス方式が、占有アクセス可と共有アクセス可とのいずれかの方式である例を示したが、これ以外の方式、例えば、占有アクセスと共有アクセス等の複数のアクセス方式でアクセスすることを許していることを示す、複数方式アクセス可という方式をも含んでいても構わない。
このような構成にすることによって、要求受付部111が、プログラムから資源の利用を要求される毎に資源アクセス情報を作成できる場合において、同一のプログラムに対応する資源アクセス情報を作る場合であっても、状況に応じて、異なるアクセス方式の資源アクセス情報を作成することができるようになる。
(4)実施の形態において、認証局103は、作成したポリシィ情報を、優先度毎に異なる秘密鍵で暗号化することで証明書としていたが、これ以外の方法で証明書を作成しても構わない。
例えば、優先度に関わらず共通の秘密鍵で暗号化しても構わないし、秘密鍵を用いない手法で暗号化しても構わないし、暗号化せずに証明書としても構わない。
暗号化の手法については、その暗号が解読されるリスクと、暗号化に伴うコストとのトレードオフで、最も適切だと考えられる手法を採用するのが望ましい。
(5)実施の形態において、要求受付部111は、プログラムから資源102を利用する要求をされる場合において、要求を出したプログラムに対応するポリシィ情報がポリシィ保持部112にないときは、プログラムの実行を停止させるとしたが、プログラムの実行を停止させるとしなくても構わない。
プログラムは、要求受付部111からプログラムの実行を停止されなくても、アクセス許可部117によって資源へのアクセスができなくなっている為、わざわざプログラムの実行を停止させる積極的理由がなければ、特にプログラムを停止させる必要性は低い為、例えば、プログラムの実行を停止させる理由がないシステムにおいては、プログラムの実行を停止させない仕様であっても問題はない。
(6)許可情報書換部115は、資源アクセス情報を許可情報保持部113に追加する場合、資源アクセス情報に対応するプログラムに、許可情報を通知するとしたが、許可情報を通知しない構成であっても構わない。
例えば、プログラムが、許可情報を通知されなくても、アドレス変換テーブル118に対応するアドレス変換テーブル構成要素が追加されると、資源へのアクセスを開始するようなプログラムであれば、許可情報を通知する必要がない。
(7)許可情報書換部115は、資源アクセス情報を許可情報保持部113から削除する場合、資源アクセス情報に対応するプログラムに、削除情報を通知するとしたが、削除情報を通知しない構成であっても構わない。
許可情報書換部115は、プログラムに削除情報を通知することなく、従って、中断処理を実行することなくアクセス処理ルーチンを停止させる構成であっても、例えば、停止したアクセス処理ルーチンを再開する場合に、アクセス処理ルーチンを最初から実行させるという構成であれば、削除情報を通知する必要がない。
(8)プログラムは資源アクセス処理ルーチンを終了すると、許可情報書換部115に実行終了の旨を通知するとしたが、許可情報書換部115に実行終了の旨を通知しない構成であっても、例えば、OSが、資源アクセス処理ルーチンが終了すると、資源アクセス処理ルーチンが終了した旨を知ることができるようになっていれば、OSが、許可情報書換部115に、資源アクセス処理ルーチンが終了した旨を通知するという構成しても構わない。
(9)アクセス制限情報は、予めポリシィ保持部112の一部として組み込まれている情報であるとしたが、これ以外の構成、例えば、ポリシィ保持部112で保持するアクセス制御情報を、外部のユーザが書き換えることができる不揮発性メモリ等で記憶させている等の構成にすることで、ユーザによってアクセス制限情報を設定することができる構成であっても構わない。
このような構成にすることで、アクセス制限情報に不都合が生じた場合でも、ユーザによってアクセス制限情報を更新することができるようになる。
(10)開始論理アドレスは、許可情報書換部115、もしくは、許可情報追加部116が、資源アクセス情報を基にして作成するとしたが、これ以外の構成、例えば、ポリシィ情報が、プログラムと、優先度と、資源と、アクセス方法とに加えて、開始論理アドレスを対応付けた情報であるとしておいて、許可情報書換部115、もしくは、許可情報追加部116が、このポリシィ保持部112の保持するポリシィ情報を参照することで、論理開始アドレスを作成するとしても構わない。
(11)なお、プログラム群101を構成するプログラムは、削除情報を通知されると、プログラムを終了する為の後処理をして、プログラムを終了するとしたが、実行中の資源アクセスルーチンを停止し、停止した資源アクセス処理ルーチンを再開できるように、停止時点で資源アクセスルーチンが使用しているレジスタの情報等を、メモリやハードディスク等に退避させるという退避処理をするとしてもよい。
さらに、許可情報追加部116が、許可情報保持部113に資源アクセス情報を追加する場合であって、追加する資源アクセス情報に対応する開始論理アドレスが、待機情報保持部114に保持されているとき、資源アクセス情報に対応するプログラムに、再許可情報を通知し、プログラムは、再許可情報を通知されると、退避処理でメモリやハードディスク等に退避させていた情報を読み込んで、停止していた資源アクセス処理ルーチンを再開させるとしてもよい。
このようにすることで、プログラムは、削除情報を通知されて資源アクセス処理ルーチンを停止させても、再許可情報を通知されると、停止させた時点から資源アクセス処理ルーチンを再開させることができる為、停止させた時点までに行った処理を無駄にすることなく、資源アクセス処理ルーチンを実行することができるようになる。
(12)また、アクセス制御装置に相当するOSの一部のプログラムを、コンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、CD―ROM、MO、DVD、DVD−ROM、DVD−RAM、BD(Blu−ray Disc)、半導体メモリなどに記録したり、電気通信回線、無線又は有線通信回線、インターネットを代表とするネットワーク等を経由して伝送してもよい。
このようにすることで、アクセス制御装置に相当するOSの一部のプログラムを、コンピュータシステムにインストールして、実施形態で示したアクセス制御装置として機能させることができる。
本発明は、コンピュータシステム分野、コンピュータシステムを用いた情報機器や家電機器等の分野等に広く利用することができる。
100 アクセス制御装置
101 プログラム群
102 資源
103 認証局
111 要求受付部
112 ポリシィ保持部
113 許可情報保持部
114 待機情報保持部
115 許可情報書換部
116 許可情報追加部
117 アクセス許可部
118 アドレステーブル変換部
121 保護メモリ
122 共用メモリ
123 暗号エンジン
本発明は、プログラムによる資源へのアクセスを制御する制御装置に関する。
近年、CPU(Central Processing Unit:中央処理装置)の性能の向上、メモリ等の記憶素子の大容量化等により、1つの機器上で複数の互いに異なる情報処理を行うことができるようになっている。
例えば、携帯電話端末では、本来の電話機能に加えて、メール送受信機能、インターネットブラウザ機能、カメラ機能、音楽再生機能、ワンセグテレビ受信機能等、様々な情報処理機能を1つの携帯電話端末で実現している。
携帯電話端末は、このような機能を実現する為のアプリケーションプログラムを、マルチタスク制御方式等によって並列的に動作させることで、多様な機能のスムーズな動作を実現している。
コンピュータシステム上で複数のプログラムを実行する技術として、例えば、複数のプログラムが同一のメモリ等の資源にアクセスする際の資源へのアクセスを制限する技術(例えば特許文献1参照)が提案されている。
特開平6−161789号公報
しかしながら、マルチタスク制御方式等を用いて複数のプログラムによる処理を行うコンピュータシステムにおいて、直ちに処理を開始する必要のある新たなプログラムを実行しようとしても、既に実行中のプログラムによって使用したい資源が確保されてしまっている場合に、実行中のプログラムが資源を解放するまで待たないと、新たなプログラムを実行することができないという問題がある。
特に、資源の解放待ちで実行を開始できないプログラムによる処理がリアルタイム性を求められる処理である場合には、プログラムによる処理の開始が遅れることにより、リアルタイム性を確保できなくなってしまうことが起こってしまう。
そこで、本発明は係る問題に鑑みてなされたものであり、プログラムによって、コンピュータシステムを構成するメモリ等の資源を用いて処理を開始しようとする場合に、既に他のプログラムによって該当する資源が確保されていた場合であっても、該当する資源の解放待ちがボトルネックとなってプログラムの処理の開始が遅くなってしまうことのない、アクセス制御装置を提供することを目的とする。
上記課題を解決するために本発明に係るアクセス制御装置は、資源の利用要求を出した後において当該資源へのアクセスを行う複数のプログラムによる資源へのアクセスを制御するアクセス制御装置であって、プログラムから資源を利用する要求を受け付ける要求受付部と、プログラム情報を含む資源アクセス情報を保持する情報保持部と、前記情報保持部が保持している資源アクセス情報に含まれるプログラム情報が示すプログラムからのアクセスに限って、対応する資源へのアクセスを許可するアクセス許可部と、前記情報保持部が、第1のプログラムを示す第1のプログラム情報を含む第1の資源アクセス情報を保持する場合において、前記要求受付部が、第2のプログラムから資源を利用する要求を受け付けたとき、前記第2のプログラムについて予め定められている優先度の方が、前記第1のプログラムについて予め定められている優先度よりも高ければ、前記第1の資源アクセス情報を前記情報保持部から削除して、前記第2のプログラムを示す第2のプログラム情報を含む第2の資源アクセス情報を前記情報保持部に追加する情報書換部とを備えることを特徴とする。
ここで、アクセスとは、データを読み出す、又はデータを書き込むことをいう。
また、資源アクセス情報を情報保持部から削除するとは、情報保持部から資源アクセス情報を消去して、資源アクセス情報が許可情報保持部に存在しない状態にすること、もしくは、情報保持部から資源アクセス情報を消去せずに、資源アクセス情報に、資源アクセス情報が削除されている旨を示すフラグを付加することで、情報保持部が保持する資源アクセス情報が示すプログラムからのアクセスであっても、アクセス許可部が、対応する資源へのアクセスを許可しないようにすることをいう。
上述の構成を備える本発明に係るアクセス制御装置は、情報保持部が保持する資源アクセス情報が示すプログラムに限って対応する資源へのアクセスを許可し、さらに、要求受付部が資源の利用の要求を受け付けたプログラムから、資源へのアクセスを許可されているプログラムがアクセスする資源と同じ部分を含む資源へのアクセスの要求があった場合、要求のあったプログラムの優先度の方が高ければ、要求のあったプログラムがアクセスする資源と同じ部分を含む資源へのアクセスを許可されているプログラムに対して、資源へのアクセスの許可を取り消し、要求のあったプログラムに対して、資源へのアクセスを許可することになる。
従って、実行中のプログラムよりも実行の優先度の高いプログラムが、実行中のプログラムのアクセスする資源と同じ部分を含む資源をアクセスしようとした場合、実行中のプログラムによる資源へのアクセスの許可を取り消して、実行の優先度の高いプログラムに資源へのアクセスする許可を与えることによって、実行の優先度の高いプログラムが、該当する資源の解放待ちがボトルネックとなってプログラムの処理の開始が遅くなってしまわないという効果を有する。
また、前記資源アクセス情報は、前記プログラム情報と、前記プログラム情報が示すプログラムがアクセスする資源を示す資源情報とを対応付けた情報であって、前記情報書換部は、前記情報保持部が、第1の資源を示す第1の資源情報と第1のプログラムを示す第1のプログラム情報とを対応付けた第1の資源アクセス情報を保持する場合において、前記要求受付部が、第2のプログラムから、前記第1の資源の少なくとも一部の資源を含む第2の資源を利用する要求を受け付けたとき、前記第2のプログラムについて予め定められている優先度の方が、前記第1のプログラムについて予め定められている優先度よりも高ければ、前記第1の資源アクセス情報を前記情報保持部から削除して、前記第2の資源を示す第2の資源情報と前記第2のプログラムを示す第2のプログラム情報とを対応付けたものである第2の資源アクセス情報を前記情報保持部に追加する情報書換部であることとしてもよい。
このようにすることによって、資源が複数ある場合に、資源毎に応じたアクセス制御を行うことができるようになる。
また、前記情報書換部は、前記資源アクセス情報を前記情報保持部から削除する場合、削除する資源アクセス情報に含まれるプログラム情報が示すプログラムに対して、対応する資源へのアクセスの許可を取り消す旨の通知をすることとしてもよい。
このような構成にすることによって、アクセス許可部から削除される資源アクセス情報に対応するプログラムが、情報保持部から資源アクセス情報が削除されることによって資源へのアクセスができなくなる場合に、プログラムは、資源へのアクセスの許可を取り消す旨の通知を受けることができるため、資源へのアクセスができなくなることに対応する処理を行うことができるようになる。
また、前記資源アクセス情報を保持する待機情報保持部とをさらに備え、前記情報書換部は、前記第2の資源アクセス情報を前記情報保持部に追加するとき、前記第1の資源アクセス情報を前記待機情報保持部に追加し、前記情報保持部が、前記第1の資源アクセス情報を保持する場合において、前記要求受付部が、前記第2のプログラムから、前記第1の資源の少なくとも一部の資源を含む前記第2の資源を利用する要求を受け付けたとき、前記第2のプログラムについて予め定められている優先度の方が、前記第1のプログラムについて予め定められている優先度よりも高くなければ、前記第2の資源アクセス情報を前記待機情報保持部に追加することとしてもよい。
このような構成にすることによって、情報保持部で保持しない資源アクセス情報であっても、待機情報保持部で保持することになる為、情報保持部で保持しなかった資源アクセス情報を必要とする場合に、短時間で資源アクセス情報を利用することができるようになる。
また、前記情報書換部は、前記要求受付部が、第3のプログラムから第3の資源を利用する要求を受け付けた場合において、前記第3の資源が、前記情報保持部の保持する全ての資源アクセス情報に含まれる資源情報が示す資源を含まないとき、前記第3の資源を示す資源情報と前記第3のプログラムを示すプログラム情報とを対応付けたものである第3の資源アクセス情報を前記情報保持部に追加し、前記情報保持部が、前記第3の資源アクセス情報を保持する場合において、前記第3のプログラムが実行を終了したとき、前記第3の資源アクセス情報を前記情報保持部から削除することとしてもよい。
このような構成にすることによって、他のプログラムによって利用されていない資源への利用を要求するプログラムから、資源を利用する要求を受け付けた場合に、資源の利用を要求したプログラムに資源の利用を許可することができ、さらに、プログラムが資源の利用を終了したとき、その資源を他のプログラムが利用できるようにすることができる。
また、前記情報保持部から前記資源アクセス情報が削除された場合において、前記待機情報保持部が保持する資源アクセス情報の中に、対応する資源情報が、前記情報保持部の保持する全ての資源アクセス情報に含まれる資源情報が示す資源を含まない許可可能資源アクセス情報があるとき、前記許可可能資源アクセス情報のうち、対応するプログラム情報が示すプログラムについて予め定められている優先度が最も高い許可可能資源アクセス情報を、前記待機情報保持部から削除して前記情報保持部に追加する情報追加部とをさらに備えることとしてもよい。
このような構成にすることによって、情報保持部から資源アクセス情報が削除されると、既に待機情報保持部で保持している資源アクセス情報を、情報保持部に追加するようになる為、短時間で情報保持部に資源アクセス情報を追加していくことができるようになる。
また、前記情報追加部は、前記資源アクセス情報を前記情報保持部に追加する場合、前記追加する資源アクセス情報に含まれるプログラム情報が示すプログラムに、対応する資源へのアクセスを許可する旨の通知をすることとしてもよい。
このような構成にすることによって、資源アクセス情報を許可情報保持部に追加する場合に、情報保持部に追加する資源アクセス情報に対応するプログラムが、資源へのアクセスを許可する旨の通知を受けることができるため、通知を受け取ったプログラムが、資源へのアクセスができるようになることに対応する処理を行うことができるようになる。
また、前記資源アクセス情報は、前記資源情報と前記プログラム情報とに加えて、プログラムが資源にアクセスする方式が、他のプログラムからのアクセスを許容する共有方式か他のプログラムからのアクセスを許容しない占有方式かのいずれか一方のアクセス方式を示す方式情報とを対応付けたものであって、前記情報書換部は、前記情報保持部からの前記第1の資源アクセス情報の削除と、前記情報保持部への前記第2の資源アクセス情報の追加とを、前記第1の資源に対応する方式情報と、前記第2の資源に対応する方式情報とのうち、少なくとも1つの方式情報が前記占有方式を示しているという条件をさらに満たす場合に限って実行することとしてもよい。
このような構成にすることによって、資源へアクセスする方式に応じて資源へのアクセスを制御できるようになるので、効率の良い資源の利用を実現することができる。
また、前記情報追加部は、前記情報保持部から資源アクセス情報が削除された場合において、前記待機情報保持部が前記許可可能資源アクセス情報を保持するとき、もしくは、前記待機情報保持部が保持する資源アクセス情報のうち、方式情報が前記共有方式を示し、対応する資源が、前記情報保持部が保持する資源アクセス情報のうち、方式情報が前記占有方式を示す資源アクセス情報に対応する資源を含まない許可可能共有資源アクセス情報があるとき、前記許可可能資源アクセス情報、及び、前記許可可能共有資源アクセス情報のうち、対応する前記プログラム情報が示すプログラムについて予め定められている優先度が最も高い資源アクセス情報を、前記待機情報保持部から削除して前記情報保持部に追加することとしてもよい。
このような構成にすることによって、待機情報保持部が保持する資源アクセス情報のアクセス方式に応じて、情報保持部に追加する資源アクセス情報を決めることができるようになる。
また、特定のプログラム、特定の資源、特定の優先度、及びこれらの組み合わせが正当であると認証する証明書を受信し、前記特定の資源を示す正当資源情報と、前記特定のプログラムを示す正当プログラム情報と、前記特定の優先度を示す正当優先度情報とを対応付けたものであるポリシィ情報を保持するポリシィ保持部とを備え、前記要求受付部は、プログラムからの資源の利用要求が、前記ポリシィ保持部が保持しているポリシィ情報に含まれる正当プログラム情報の示すプログラムからの対応する正当資源情報の示す資源の利用要求であるという条件を満たさない場合に、プログラムから資源の利用要求の受け付を拒絶し、前記第1のプログラムについて予め定められている優先度とは、前記ポリシィ保持部が保持している前記ポリシィ情報の前記第1のプログラムが前記第1の資源にアクセスする際の前記優先度情報が示す優先度であって、前記第2のプログラムについて予め定められている優先度とは、前記ポリシィ保持部が保持している前記ポリシィ情報の前記第2のプログラムが前記第2の資源にアクセスする際の前記優先度情報が示す優先度であることとしてもよい。
このような構成にすることによって、証明書によって認証されていない不正プログラムからの資源への利用を認めないアクセス制御装置を実現することができる。
また、前記要求受付部は、前記情報保持部に前記資源アクセス情報が追加された場合に限って、当該追加された資源アクセス情報に含まれるプログラム情報が示すプログラムへ、対応する資源へのアクセスに用いる論理アドレスを提供することとしてもよい。
このような構成にすることによって、プログラムは、対応する資源へのアクセスに用いる論理アドレスを提供されるので、論理アドレスによって対応する資源へのアクセスを実現することができるようになる。
また、前記アクセス許可部は、前記情報保持部が保持している資源アクセス情報に含まれるプログラム情報が示すプログラムからのアクセスに限って、対応する資源へのアクセスを許可するか否かの判定を、プログラムにおけるメモリの読み書きに係る命令をデコードする際に行い、否定的な判定の場合に、エラー処理を実行することとしてもよい。
このような構成にすることによって、メモリの読み書きに係る命令をデコードのタイミングで、資源へのアクセスを許可するか否かの判断し、アクセスを許可しない場合に、エラー処理を実行することができるようになる為、例えば、資源へのアクセスを許可しないと判断する場合に割り込みを発生して、OSにプログラムを終了させるというような処理を行うことができるようになる。
アクセス制御装置の構成図 資源と物理アドレスとの対応関係を示す図 ポリシィ保持部が保持するポリシィ情報を示す図 ポリシィ保持部が保持するアクセス制限情報を示す図 許可情報保持部で保持する資源アクセス情報を示す図 待機情報保持部で保持する資源アクセス情報を示す図 プログラムから資源利用要求がある場合のフローチャートその1 プログラムから資源利用要求がある場合のフローチャートその2 資源アクセスルーチンが終了した場合のフローチャート 許可情報保持部が更新された場合のフローチャート 論理アドレスを物理アドレスに変換する場合のフローチャート ポリシィ情報を更新する場合のフローチャート 変形例におけるポリシィ保持部が保持するポリシィ情報を示す図 変形例におけるポリシィ保持部が保持するアクセス制限情報を示す図 変形例における物理アドレスの重複が起こる場合を示す図その1 変形例における物理アドレスの重複が起こる場合を示す図その2 変形例におけるプログラムから資源利用要求がある場合のフローチャートその1 変形例におけるプログラムから資源利用要求がある場合のフローチャートその2
<実施の形態>
以下、本発明に係るアクセス制御装置の一実施形態として、複数のプログラムそれぞれからの資源へのアクセスを制御するアクセス制御装置について説明する。
<構成>
本実施の形態に係るアクセス制御装置は、認証局によって正当性を認証されているアプリケーションプログラムに限って資源の利用要求を受け付け、受け付けたアプリケーションプログラムの資源利用に関する優先度等に基づいて、アプリケーションプログラムによる資源へのアクセスを排他的に制御するアクセス制御装置である。
以下、本実施の形態に係るアクセス制御装置の構成について、図面を参照しながら説明する。
図1は、本実施の形態に係るアクセス制御装置100と、プログラム群101と、資源102と、認証局103とからなる資源アクセスシステム1000の構成を示す構成図である。
アクセス制御装置100は、図示していないプロセッサ、メモリ、メモリコントローラ、タイマ、ハードディスク等のハードウエアと、このハードウエア上で実行されるOS(Operating System)とによって実現される、プログラム群101を構成する複数のアプリケーションプログラムそれぞれからの資源102へのアクセスを制御するアクセス制御装置である。
ここで、アプリケーションプログラムが資源をアクセスするとは、アプリケーションプログラムを構成する、メモリへの読み出し、書き込み等の命令が、プロセッサによって解読、実行されることで、資源へのデータの読み出し、資源へのデータの書き込み等がなされることをいう。
プログラム群101は、資源102にアクセスするアプリケーションプログラム(以後、単に「プログラム」と呼ぶ)複数個から構成され、各プログラムは、このOS上で実行される。
資源102は、メモリコントローラに物理アドレスを指定することでアクセスされる資源であって、アクセス制御装置100によって、プログラム群101を構成するプログラムからのアクセスを制御されている。
認証局103は、プログラムが資源にアクセスすることの正当性を認証する認証局であって、アクセス制御装置100は、認証局103が認証しているプログラムから資源へのアクセスに限って、アクセスを許可する。
以下、プログラム群101、資源102、認証局103、及び、アクセス制御装置100ついて、図を用いながら順に説明する。
<プログラム群101>
プログラム群101を構成するプログラムは、資源102を1回以上アクセスする一連の処理からなる処理ルーチン(以後「資源アクセス処理ルーチン」と呼ぶ)と、プログラムに含まれる処理ルーチンのうち、OSからの通知を受けて動作する処理ルーチンそれぞれの開始アドレスを、OSに通知する処理ルーチン(以後「OS通知処理ルーチン」と呼ぶ)とを含んでいるプログラムである。
資源アクセス処理ルーチンは、資源102を1回以上アクセスする一連の処理を開始する際に、要求受付部111に対して資源102の利用を要求し、一連の処理を終了する際に、許可情報書換部115に資源アクセス処理ルーチンの実行終了の旨を通知する。
プログラムが要求受付部111に対して資源102の利用を要求する為に、OSは、プログラムから資源を指定されて呼び出されると、要求受付部111が、呼び出したプログラムを特定する情報と、指定された資源を特定する情報と、ポリシィ保持部112が保持するポリシィ情報とから、資源アクセス情報を作成する処理を開始する資源利用API(Application Program Interface)を備えている。
この資源利用APIは、プログラムから呼び出されると、要求受付部111が、戻り値として、プログラムが資源を利用する際に使用する論理アドレス空間の開始アドレス(以後「開始論理アドレス」と呼ぶ)を、呼び出したプログラムに戻す。
資源アクセス処理ルーチンは、資源102をアクセスする場合に、戻り値として戻された開始論理アドレスを用いて作成する論理アドレスを指定して、資源102にアクセスする。
OSはさらに、プログラムが許可情報書換部115に資源アクセス処理ルーチンの実行終了の旨を通知する為に、プログラムから呼び出されると、許可情報書換部115が、許可情報保持部113で保持する、呼び出したプログラムに対応する資源アクセス情報を削除する処理を開始する終了処理APIと、プログラムがOSに処理ルーチンの開始アドレスを通知する為に、プログラムから処理ルーチンの開始アドレスを指定されて呼び出されると、OSに、処理ルーチンの開始アドレスを関連付けて記憶させるアドレス通知APIとを備えている。
本実施の形態は、資源アクセス情報を削除する場合が、資源アクセス情報を消去して存在しない状態にする場合である一実施例となっている。
<資源102>
資源102は、メモリコントローラに物理アドレスを指定することでアクセスされる資源であって、保護メモリ121と、共用メモリ122と、暗号エンジン123とから構成されている。
暗号エンジン123は、暗号処理用ハードウエアであって、そのレジスタをメモリアドレスとして割り当てられることによって、他のメモリと同様のインターフェースで、レジスタへの読み出し、書き込み等の操作が行われる。
図2は、資源102を構成する保護メモリ121、共用メモリ122、暗号エンジン123に割り当てられている物理アドレスを示す図である。
保護メモリ121は、物理アドレスの開始アドレスが0x00010000でサイズが0x010000のメモリであって、割り当てられている物理アドレスが0x00010000〜0x0001FFFFである。
同様に、共用メモリ122は、割り当てられている物理アドレスが0x000B0000〜0x000BFFFFのメモリであって、暗号エンジン123は、割り当てられている物理アドレスが0xE0004000〜0xE0005FFFFの暗号処理用ハードウエアである。
<認証局103>
認証局103は、プログラムを示す情報と、そのプログラムがアクセスする資源の情報と、そのプログラムが資源にアクセスする際の優先度の情報と、そのプログラムが資源にアクセスする際のアクセス方式の情報とを受け取ると、特定のプログラムが特定の資源に特定の優先度で特定のアクセス方式でアクセスすることを認証し、認証したことを証明する証明書を発行する、証明書発行システムである。
認証局103は、特定のプログラムが特定の資源に特定の優先度で特定のアクセス方式でアクセスすることに不都合がない場合に、特定のプログラムと特定の資源と特定の優先度と特定のアクセス方式との情報を対応付けた情報であるポリシィ情報を作成し、作成したポリシィ情報を、優先度毎に異なる秘密鍵を使って暗号化することで、証明書として発行する。
<アクセス制御装置100>
アクセス制御装置100は、認証局103によって正当性を認証されているプログラムに限って資源102の利用要求を受け付け、受け付けたプログラムの資源利用に関する優先度等に基づいて、プログラムによる資源102へのアクセスを制御するアクセス制御装置であって、要求受付部111と、ポリシィ保持部112と、許可情報保持部113と、待機情報保持部114と、許可情報書換部115と、許可情報追加部116と、アドレス変換テーブル118を含むアクセス許可部117とから構成されている。
以下、アクセス制御装置100を構成する各ブロックについて、図を用いながら順に説明する。
<ポリシィ保持部112>
ポリシィ保持部112は、アクセス制限情報(後述)を保持し、認証局103が発行した証明書を、秘密鍵に対応する公開鍵を使ってポリシィ情報に復号し、少なくとも復号したポリシィ情報の内容が、アクセス制限情報の制限に違反していないという条件を満たすポリシィ情報に限って、そのポリシィ情報を保持するブロックである。
また、ポリシィ保持部112は、図示していないディスプレイを備え、証明書を復号した際に、復号したポリシィ情報を保持した場合に、登録成功の旨を示すメッセージを表示し、復号したポリシィ情報を保持しなかった場合に、登録失敗の旨を示すメッセージを表示する。
図3は、ポリシィ保持部112が保持するポリシィ情報を示す図である。
ポリシィ情報は、プログラムID(IDentification)302で特定されるプログラムが、優先度303で示される優先度で、保護メモリ121、共用メモリ122、又は、暗号エンジン123に、占有方式、又は共有方式のいずれかの方式でアクセスすることが許されている、もしくはアクセスすることが許されていない旨を示す情報である。
ここで、アクセスする方式が占有方式とは、プログラムが資源にアクセスする際の方式が他のプログラムによる資源のアクセスを認めない排他的なアクセスである方式のことであり、共有方式とは、プログラムが資源にアクセスする際の方式が他のプログラムによる資源のアクセスを認める排他的でないアクセスである方式のことである。
例えば、図3において、ポリシィ番号301が2であるポリシィ情報は、プログラムIDが0002であるプログラムが、優先度2で、保護メモリ121には占有方式でのアクセス、共用メモリ122には共有方式でのアクセス、暗号エンジン123には共有方式でのアクセスが許されている旨を示している。
図4は、ポリシィ保持部112が保持するアクセス制限情報を示す図である。
アクセス制限情報とは、優先度401で示される優先度を持つプログラムは、保護メモリ121、共用メモリ122、又は、暗号エンジン123に、占有方式、又は共有方式のいずれかの方式でアクセスすることが許されている、もしくはアクセスすることが許されていない旨を示す情報であって、予めポリシィ保持部112の一部として組み込まれている情報である。
例えば、図4において、優先度3が付与されているプログラムは、保護メモリ121には占有アクセス方式でのアクセスが許され、共用メモリ122には共有アクセス方式でのアクセスが許され、暗号エンジン123には共有アクセス方式でのアクセスが許されている旨を示しているので、ポリシィ保持部112は、優先度が3であるポリシィ情報であれば、プログラムが保護メモリ121へ占有アクセス方式でアクセスし、共用メモリ122へ共有アクセス方式でアクセスし、プログラムが暗号エンジン123へ共有アクセス方式でアクセスすることを示すポリシィ情報に限って、保持する。
<要求受付部111>
要求受付部111は、プログラム群101を構成するプログラムから、資源102を利用する要求をされると、プログラムの情報と資源の情報と優先度の情報とアクセス方式の情報とを対応付けた情報である資源アクセス情報を作成し、プログラムに対して開始論理アドレスを戻り値として戻すブロックである。
要求受付部111は、プログラムから、資源102を利用する要求をされると、ポリシィ保持部112で保持するポリシィ情報の中に、要求を出したプログラムに対応するポリシィ情報があるか否かを検索し、要求を出したプログラムに対応するポリシィ情報がある場合であって、許可情報保持部113に対応する資源アクセス情報が存在しないときに限って、対応するポリシィ情報の、プログラムの情報と資源の情報と優先度の情報とアクセス方式の情報とを参照して資源アクセス情報を作成し、許可情報書換部115又は許可情報追加部116から開始論理アドレスを通知されると、要求を出したプログラムに対して、通知された開始論理アドレスを、戻り値として戻す。
ここでは、要求受付部111が資源アクセス情報を作成することをもって、要求受付部111がプログラムからの資源への利用要求を受け付けたこととする。
なお、要求を出したプログラムに対応するポリシィ情報が、ポリシィ保持部112にない場合には、要求受付部111は要求を出したプログラムの実行を停止させる。
<許可情報保持部113>
許可情報保持部113は、要求受付部111が作成した資源アクセス情報のうち、アクセス制御装置100がプログラムに対して資源102へのアクセスを許可している資源アクセス情報を、開始論理アドレスと対応付けて保持するブロックである。
図5は、許可情報保持部113が、開始論理アドレスと対応付けて保持する資源アクセス情報を示すものである。
許可情報保持部113は、資源名501と物理アドレス502とで特定される資源と、プログラムID506で特定されるプログラムと、優先度507で指定される優先度と、アクセス方式508とで特定されるアクセス方式とを対応付けた情報である資源アクセス情報と、開始論理アドレス509とを対応付けて保持する。
ここで、開始論理アドレス509は、資源アクセス情報が初めて許可情報保持部113に保持される場合にのみ、許可情報書換部115又は許可情報追加部116によって、資源アクセス情報を基にして作成される。
例えば、図5において、許可情報保持部113は、保護メモリ121を、プログラムID0001のプログラムが、優先度5で、占有方式でアクセスするという資源アクセス情報と、プログラムID0001のプログラムに対して開始論理アドレスとして0xA0000を対応付けて記憶している。
<待機情報保持部114>
待機情報保持部114は、要求受付部111が作成した資源アクセス情報のうち、資源へのアクセスを許可していない資源アクセス情報、すなわち、資源へのアクセスが許可されることを待機しているプログラムに対応する資源アクセス情報を、論理開始アドレスと、保持開始時刻とを対応付けて保持するブロックである。
図6は、待機情報保持部114が、論理開始アドレスと、保持開始時刻とを対応付けて保持する資源アクセス情報を示すものである。
待機情報保持部114は、資源名601と物理アドレス602とで特定される資源と、プログラムID606で特定されるプログラムと、優先度607で指定される優先度と、アクセス方式608とで特定されるアクセス方式とを対応付けた情報である資源アクセス情報と、開始論理アドレス609と、この資源アクセス情報を保持した時刻を示す保持開始時刻610とを対応付けて保持する。
開始論理アドレス609は、前述したように、許可情報保持部113で保持されたことがある資源アクセス情報に対してのみ、提供されている為、許可情報保持部113で保持されたことのない資源アクセス情報に対しては、対応付けるべき開始論理アドレスは存在しない。
例えば、図6において、待機情報保持部114は、保護メモリ121の待ちスロット番号2のスロットに、保護メモリ121を、プログラムID0009のプログラムが、優先度4で、占有方式でアクセスするという資源アクセス情報と、プログラムID0009のプログラムに対して開始論理アドレスとして0x90000を提供しているという情報と、この資源アクセス情報を保持した時刻が、2009年4月4日21時00分01秒33であるという情報とを対応付けて記憶している。
<許可情報書換部115>
許可情報書換部115は、要求受付部111が資源アクセス情報を作成した場合に、作成された資源アクセス情報を、許可情報保持部113か待機情報保持部114かのいずれか一方に追加する機能と、許可情報保持部113が保持する資源アクセス情報に対応するプログラムから、資源アクセス処理ルーチンの実行終了の旨を通知されると、その資源アクセス情報を許可情報保持部113から削除する機能とを備えるブロックである。
ここで、要求受付部111が作成した資源アクセス情報が、アクセス制御装置100がプログラムから資源へのアクセスを許可する資源アクセス情報である場合に、資源アクセス情報を許可情報保持部113に追加し、許可しない資源アクセス情報である場合に、資源アクセス情報を待機情報保持部114に追加する。
以下、許可情報書換部115の機能を、いくつかの場合にわけて説明する。
許可情報書換部115は、許可情報保持部113に、資源アクセス情報を追加する場合に、1)資源アクセス情報に基づいて、開始論理アドレスと、論理アドレスを物理アドレスに変換する為の情報(以後「アドレス変換情報」と呼ぶ)とを作成し、2)資源アクセス情報を、作成した開始論理アドレスと対応付けて、許可情報保持部113に追加し、3)作成したアドレス変換情報を、プログラムを示す情報と対応付けて、アドレス変換テーブル構成要素とし、作成したアドレス変換テーブル構成要素を、アクセス許可部117が保持する、アドレス変換テーブル118に追加し、4)作成した論理開始アドレスを、要求受付部111に通知し、5)資源アクセス情報に対応するプログラムに対して対応する資源へのアクセスを許可する旨を示す許可情報を通知する。
許可情報書換部115が、プログラムに対して許可情報を通知すると、プログラムは、資源アクセス処理ルーチンの実行を開始する。
許可情報書換部115は、要求受付部111が作成した資源アクセス情報を許可情報保持部113に追加しようとする場合において、作成した資源アクセス情報が示す資源と一致する資源が、許可情報保持部113が既に保持している資源アクセス情報が示す資源の中にあるときには、一致する資源を示す許可情報保持部113で保持している資源アクセス情報を、許可情報保持部113から削除して待機情報保持部114に追加する。
許可情報書換部115は、許可情報保持部113で保持している資源アクセス情報を削除する場合に、対応するプログラムに対して、対応する資源へのアクセスの許可を取り消す旨を示す削除情報を通知し、アクセス許可部117のアドレス変換テーブル118から対応するアドレス変換テーブル構成要素を削除する。
許可情報書換部115がプログラムに対して削除情報を通知すると、プログラムは、プログラムを終了する為の後処理をして、プログラムを終了する。
<許可情報追加部116>
許可情報追加部116は、許可情報保持部113が保持する資源アクセス情報が更新される場合に、待機情報保持部114で保持する資源アクセス情報を許可情報保持部113に追加する機能を備えるブロックである。
以下、許可情報追加部116の機能を、いくつかの場合にわけて説明する。
許可情報追加部116は、許可情報保持部113が保持する資源アクセス情報が更新された場合において、待機情報保持部114で保持している資源アクセス情報の中に、許可情報保持部113に追加できる資源を示す資源アクセス情報(以後「該当資源アクセス情報」と呼ぶ)があるとき、該当資源アクセス情報の中から許可情報保持部113で保持すべき資源アクセス情報(以後「追加資源アクセス情報」と呼ぶ)を選択し、選択した追加資源アクセス情報を待機情報保持部114から削除し、許可情報保持部113に追加する。
ここで、許可情報保持部113に追加できる資源とは、1)アクセス方式が占有方式であって、許可情報保持部113が保持する全ての資源アクセス情報が示す資源を含まない資源か、2)アクセス方式が共有方式であって、許可情報保持部113が保持する資源アクセス情報が示す資源のうちアクセス方式が占有方式である資源を含まない資源かのいずれかの資源のことを言う。
追加資源アクセス情報の選択条件については、後程詳細に説明する。
許可情報追加部116は、許可情報保持部113に資源アクセス情報を追加する場合であって、追加する資源アクセス情報に対応する開始論理アドレスが、待機情報保持部114に保持されていなかったときに、1)資源アクセス情報に基づいて、開始論理アドレスと、アドレス変換情報とを作成し、2)資源アクセス情報を、作成した開始論理アドレスと対応付けて許可情報保持部113に追加し、3)作成したアドレス変換情報を、プログラムを示す情報と対応付けて、アドレス変換テーブル構成要素とし、作成したアドレス変換テーブル構成要素を、アクセス許可部117が保持する、アドレス変換テーブル118に追加し、4)作成した論理開始アドレスを、要求受付部111に通知し、5)資源アクセス情報に対応するプログラムに対して対応する資源へのアクセスを許可する旨を示す追加情報を通知する。
許可情報追加部116が、プログラムに対して追加情報を通知すると、プログラムは、資源アクセス処理ルーチンの実行を開始する。
許可情報追加部116は、許可情報保持部113に資源アクセス情報を追加する場合であって、追加する資源アクセス情報に対応する開始論理アドレスが、待機情報保持部114に保持されていたときに、1)資源アクセス情報に基づいて、アドレス変換情報を作成し、2)資源アクセス情報を、開始論理アドレスと対応付けて許可情報保持部113に追加し、3)作成したアドレス変換情報を、プログラムを示す情報と対応付けて、アドレス変換テーブル構成要素とし、作成したアドレス変換テーブル構成要素を、アクセス許可部117が保持する、アドレス変換テーブル118に追加し、4)作成した論理開始アドレスを、要求受付部111に通知し、5)資源アクセス情報に対応するプログラムを起動する。
<アクセス許可部117>
アクセス許可部117は、プログラムに含まれる、資源の読み書きに係る命令をプロセッサのデコーダがデコードする場合に、資源の読み書きに係る命令で指定される論理アドレスを、アドレス変換テーブル118を用いて、対応する物理アドレスに変換し、変換した物理アドレスを用いて、資源102へのアクセスを管理しているメモリコントローラを動作させることで、資源への読み書きを行うブロックであって、その一部は、プロセッサのデコーダの一部によって構成されている。
アクセス許可部117が保持するアドレス変換テーブル118は、プログラムを示す情報と、論理アドレスを物理アドレスに変換する為の情報であるアドレス変換情報とを対応付けた情報である、アドレス変換テーブル構成要素を複数保持している。
アクセス許可部117は、アドレス変換テーブル118の保持する、アドレス変換テーブル構成要素に対応するプログラムにのみ、対応するアドレス変換情報を用いて、論理アドレスを物理アドレスに変換する。
アクセス許可部117は、アドレス変換テーブル118を構成する、アドレス変換テーブル構成要素に対応するプログラム以外のプログラムが、資源102への読み書きを行う場合には、例外を発生して、OSにそのプログラムの実行を停止させる。
<動作>
<資源の利用要求を受けた場合の動作>
以下、図面を使って、プログラムからの資源の利用要求を受けた場合の動作について説明する。
図7、8は、プログラム群101を構成するプログラムから資源102の利用要求を受けた場合の動作を示すフローチャートである。
要求受付部111は、プログラム群101の中のプログラムから資源102を利用する要求をされる(ステップS100)と、ポリシィ保持部112で保持するポリシィ情報の中に、要求を出したプログラムに対応するポリシィ情報があるか否かを検索し(ステップS110)、該当するポリシィ情報がある場合(ステップS110:Yes)には、許可情報保持部113に要求を出したプログラムに対応する資源アクセス情報があるか否かを検索し(ステップS113)、対応する資源アクセス情報を見つけられなかったら(ステップS113:Yes)、要求を出したプログラムに対応する資源アクセス情報を作成して(ステップS116)資源利用要求を受け付ける。
要求受付部111が資源利用要求を受け付けると、許可情報書換部115は、要求受付部111が作成した資源アクセス情報(以後「新規資源アクセス情報」と呼ぶ)の示す資源と同一の資源(以後「重複資源」と呼ぶ)を示す資源アクセス情報(以後「重複資源アクセス情報」と呼ぶ)が許可情報保持部113に保持されているか否かを検索する(ステップS120)。
許可情報書換部115は、重複資源アクセス情報が許可情報保持部113に保持されている場合(ステップS120:Yes)、新規資源アクセス情報が示すプログラム(以後「新規プログラム」と呼ぶ)が重複資源にアクセスするアクセス方式と、重複資源アクセス情報が示すプログラム(以後「重複プログラム」と呼ぶ)が重複資源にアクセスするアクセス方式のうち、少なくとも一方のアクセス方式が占有方式であれば(ステップS130:Yes)、新規プログラムが重複資源にアクセスする優先度と、重複プログラムが重複資源にアクセスする優先度とを比較し(ステップS140)、新規プログラムが重複資源にアクセスする優先度のほうが重複プログラムの重複資源にアクセスする優先度よりも高ければ(ステップS140:Yes)、許可情報書換部115は、重複プログラムに対して削除情報を通知する(ステップS150)。
許可情報書換部115が重複プログラムに対して削除情報を通知すると、重複プログラムは、前述した後処理を実行してプログラムを終了する。
許可情報書換部115は、削除情報を通知してから所定の時間経過すると、許可情報保持部113から重複資源アクセス情報と、対応する開始論理アドレスとを削除する(ステップS160)。
ここでいう所定の時間とは、重複プログラムが後処理を実行してプログラムを終了するのに必要な、予め定めておいた時間のことをいい、ここでは、全てのプログラムに対して一律同じ時間に設定してあり、許可情報書換部115は、図示していないタイマを使って所定の時間を計測している。
許可情報書換部115は、許可情報保持部113から重複資源アクセス情報と、対応する開始論理アドレスとを削除すると、アドレス変換テーブル118から該当するアドレス変換テーブル構成要素を削除し(ステップS170)、重複資源アクセス情報を、対応する開始論理アドレスと対応付けて、待機情報保持部114に追加(ステップS250)する。
許可情報書換部115は、重複資源アクセス情報を待機情報保持部114に追加すると、新規アクセス情報に対応するアドレス変換テーブル構成要素を作成し、許可情報保持部113に、新規資源アクセス情報を、作成した論理開始アドレスに対応付けて追加して(ステップS260)、アドレス変換テーブル118に作成したアドレス変換テーブル構成要素を追加する(ステップS270)。
許可情報書換部115は、ステップS270を実行する、もしくは、ステップS113において、要求受付部111が、許可情報保持部113に、要求を出したプログラムに対応する資源アクセス情報を見つけると(ステップS113:No)、要求を出したプログラムに対応する開始論理アドレスを要求受付部111に通知し、要求を出したプログラムに、許可情報を通知する。
要求受付部111は、許可情報書換部115から開始論理アドレスを通知されると、通知された開始論理アドレスを戻り値として、要求を出したプログラムに返して(ステップS280)資源の利用要求を受けた場合の動作を終了する。
プログラムは、許可情報と開始論理アドレスと通知されると、資源アクセス処理ルーチンを開始する。
ステップS140において、新規プログラムが重複資源にアクセスする優先度のほうが重複プログラムが重複資源にアクセスする優先度よりも高くなければ(ステップS140:No)、許可情報書換部115は、新規資源アクセス情報を待機情報保持部114に追加(ステップS180)して、資源の利用要求を受けた場合の動作を終了する。
ステップS120において、許可情報保持部113に重複資源アクセス情報が保持されていない場合(ステップS120:No)、または、ステップS130において、新規プログラムが重複資源にアクセスするアクセス方式と、重複プログラムが重複資源にアクセスするアクセス方式との双方が共有方式である場合(ステップS130:No)には、許可情報書換部115は、上述したステップS260〜ステップS280の動作を行い、資源の利用要求を受けた場合の動作を終了する。
ステップS110において該当するポリシィ情報がない場合(ステップS110:No)には、要求受付部111は、プログラムの実行を停止させて(ステップS200)、資源の利用要求を受けた場合の動作を終了する。
<資源アクセス処理ルーチンが終了した場合の動作>
以下、図面を使って、資源アクセス処理ルーチンが終了した場合の動作について説明する。
図9は、資源アクセス処理ルーチンが終了した場合の動作を示すフローチャートである。
プログラムは、資源アクセス処理ルーチンを終了すると、許可情報書換部115に実行終了の旨を通知する(ステップS300)。
許可情報書換部115は、プログラムから実行終了の旨を通知されると、許可情報保持部113から、資源アクセス情報と、対応する開始論理アドレスとを削除し(ステップS310)、アドレス変換テーブル118から該当するアドレス変換テーブル構成要素を削除して(ステップS320)、資源アクセス処理ルーチンが終了した場合の動作を終了する。
<許可情報保持部113が更新される場合の動作>
以下、図面を使って、許可情報保持部113の保持する内容が更新された場合の動作について説明する。
図10は、プログラムからの資源の利用要求を受け付けた場合や、実行中のプログラムが終了した場合等において、許可情報保持部113の保持する情報が更新されるときの動作を示すフローチャートである。
許可情報保持部113の保持する情報が更新される(ステップS400)と、許可情報追加部116は、待機情報保持部114の保持する資源アクセス情報の中に、許可情報保持部113に追加することができる資源がある場合(ステップS410:Yes)において、該当する資源アクセス情報が複数(ステップS420:Yes)であれば、該当する資源アクセス情報の該当する優先度を比較する(ステップS430)。
許可情報追加部116は、優先度を比較した結果、最も優先度が高い資源アクセス情報が複数ある場合(ステップS430:Yes)には、待機情報保持部114に保持された時刻が最も早い資源アクセス情報を追加資源アクセス情報として選択し(ステップS440)、最も優先度が高い資源アクセス情報が1つである場合(ステップS430:No)には、その最も優先度が高い資源アクセス情報を追加資源アクセス情報として選択し(ステップS450)、また、ステップS420において、該当する資源アクセス情報が1つであった場合(ステップS420:No)には、該当する資源アクセス情報を追加資源アクセス情報として選択する。
許可情報追加部116は、追加資源アクセス情報を選択する場合において、対応する開始論理アドレスが待機情報保持部114で保持されていれば、1)追加資源アクセス情報を開始論理アドレスに対応付けて、許可情報保持部113に追加し(ステップS470)、2)アドレス変換テーブル構成要素を作成して、作成したアドレス変換テーブル構成要素をアドレス変換テーブル118に追加して(ステップS480)要求受付部111に論理開始アドレスを通知し、3)待機情報保持部114から、追加資源アクセス情報と、対応する開始論理アドレスと保持開始時刻とを削除し、4)追加資源アクセス情報に対応するプログラムを起動する。
また、許可情報追加部116は、追加資源アクセス情報を選択する場合において、対応する開始論理アドレスが待機情報保持部114で保持されていなければ、1)開始論理アドレスを作成し、追加資源アクセス情報を開始論理アドレスに対応付けて、許可情報保持部113に追加し(ステップS470)、2)アドレス変換テーブル構成要素を作成して、作成したアドレス変換テーブル構成要素をアドレス変換テーブル118に追加して(ステップS480)要求受付部111に論理開始アドレスを通知し、3)待機情報保持部114から、追加資源アクセス情報と、対応する開始論理アドレスと保持開始時刻とを削除し、4)追加資源アクセス情報に対応するプログラムに、許可情報を通知する。
要求受付部111は、開始論理アドレスを通知されると、通知された開始論理アドレスを戻り値として対応するプログラムに返す(ステップS490)。
論理アドレスを物理アドレスに変換する動作については、後程詳細に説明する。
要求受付部111が、開始論理アドレスを追加資源アクセス情報に対応するプログラムに通知する(ステップS490)と、再びステップS410に戻って、以降の処理を継続する。
ステップS410において、許可情報追加部116は、待機情報保持部の保持する資源アクセス情報の中に追加することができる資源がない(ステップS410:No)と、許可情報保持部113が更新される場合の動作を終了する。
<プログラムが資源にアクセスする動作>
以下、図面を使って、プログラムが資源にアクセスする動作について説明する。
図11は、プログラムに含まれる資源の読み書きに係る命令を、プロセッサのデコーダがデコードして、資源102への読み書きを行う動作を示すフローチャートである。
アクセス許可部117は、論理アドレスを指定することで資源102の読み書きを行う命令を、プロセッサの命令フェッチ部から受け取る(ステップS600)と、アクセス許可部117は、受け取った命令のデコードを開始する。
アクセス許可部117は、命令のデコードを開始すると、アドレス変換テーブル118の中に、対応するアドレス変換テーブル構成要素があるか否かを確認し(ステップS610)、アドレス変換テーブル構成要素がある場合(ステップS610:Yes)、対応するアドレス変換情報に基づいて、論理アドレスを物理アドレスに変換して(ステップS620)、変換した物理アドレスを用いて、受け取った命令のデコードを完了する。
さらに、アクセス許可部は、物理アドレスを含むデコード後の命令を用いて、資源102へのアクセスを管理しているメモリコントローラを動作させることで、資源102への読み書きを行い、プログラムが資源にアクセスする動作を終了する。
ステップS610において、対応するアドレス変換テーブルがない場合(ステップS610:No)、アクセス許可部117は、割り込みを発生して、OSにプログラムの実行を停止させる処理ルーチンを実行させることで、プログラムの実行を停止させて(ステップS630)、プログラムが資源にアクセスする動作を終了する。
<ポリシィ情報を更新する動作>
以下、図面を使って、認証局103からの証明書を受け取る場合の動作について説明する。
図12は、認証局103から証明書受け取って、ポリシィ情報をポリシィ保持部112に登録する場合の動作を示すフローチャートである。
認証局103は、受け取ったプログラムが特定の資源に特定の優先度で特定のアクセス方式でアクセスすることに不都合がない場合に、受け取ったプログラムが特定の資源に特定の優先度で特定のアクセス方式でアクセスすることを認証し、認証した特定のプログラムと特定の資源と特定の優先度と特定のアクセス方式との情報を対応付けた情報であるポリシィ情報を作成する。
認証局103は、作成したポリシィ情報を、優先度毎に異なる秘密鍵を使って暗号化し、暗号化したものを証明書としてプログラム所有者へ提出する。
認証局103は、秘密鍵に対応する公開鍵を広く一般に公開している。
プログラム所有者は、証明書を受け取ると、証明書をポリシィ保持部112に入力する。
アクセス制御装置100を用いて資源102にアクセスするプログラムの所有者は、そのプログラムと、そのプログラムが使用する資源と、その資源を使用する際の優先度と、その資源を使用する際のアクセス方式とを認証局103へ提出する。
認証局103は、特定のプログラムが特定の資源に特定の優先度で特定のアクセス方式で特定のアクセス方式でアクセスすることの正当性を認証すると、ポリシィ情報を作成し、作成したポリシィ情報に対して、優先度毎に対応する秘密鍵を使って暗号化して証明書を作成する。
ここで使用する秘密鍵に対応する公開鍵は、予め広く一般に公開している。
ポリシィ保持部112は、認証局が証明書作成の際に使用する秘密鍵に対応する公開鍵を予め保持しておく(ステップS700)。
認証局103で作成したポリシィ情報を、ポリシィ保持部112に登録させたいプログラムの所有者は、認証局103が発行した証明書をポリシィ保持部112に入力し、ポリシィ保持部112は、証明書を入力されると(ステップS710)、優先度0〜5の6種類の優先度のそれぞれに対応する6つの公開鍵を使って、証明書を正しく解読できるか否かを確かめる(ステップS720)。
ここで、OSは、証明書を指定して呼びだすと、ポリシィ保持部112が指定された証明書の解読処理を開始する証明書入力APIを備えており、プログラムの所有者が、証明書入力APIを呼び出すプログラムを、OS上で実行することで、プログラムの所有者は、証明書をポリシィ保持部112に入力する。
ポリシィ保持部112は、6つの公開鍵のうちのいずれか1つの公開鍵で証明書を正しく解読する(ステップS720:Yes)と、1)解読したことによって得られたポリシィ情報の優先度と、解読に使用した公開鍵に対応する優先度とが一致して、2)解読したことによって得られたポリシィ情報における、優先度と資源とアクセス条件との組み合わせが、ポリシィ保持部112が保持するアクセス制限情報の制限に違反していなければ、登録要求内容が正当な要求であると判断し(ステップS730:Yes)、解読したことによって得られたポリシィ情報をポリシィ保持部112に追加して保持し(ステップS740)、ディスプレイに登録完了の旨のメッセージを表示して(ステップS750)、ポリシィ情報を更新する動作を終了する。
ステップS720において、ポリシィ保持部112が、6つの公開鍵のうちいずれか1つの公開鍵で証明書を正しく解読できない(ステップS720:No)場合、もしくは、ステップS730において、ポリシィ保持部112が、登録内容が正当な要求であると判断しない場合(ステップS730:No)には、ポリシィ保持部112は新たにポリシィ情報を追加して保持することなく、ディスプレイに登録失敗の旨のメッセージを表示させて(ステップS760)、ポリシィ情報を更新する動作を終了する。
<変形例>
実施の形態では、資源102が保護メモリ121と共用メモリ122と暗号エンジン123という3つの単位で区別されている例について説明したが、変形例では、資源102が、物理アドレスの範囲を任意に指定される領域に区別され、任意に区別された領域の単位で使用される資源となっている例である。
以下変形例について、実施の形態との相違点を中心に説明する。
<変形例における ポリシィ情報と資源アクセス情報とアクセス制限情報>
図13は変形例におけるポリシィ保持部112が保持するポリシィ情報である。
ポリシィ保持部112は、プログラムID1302で特定されるプログラムが、優先度1303で示される優先度で、資源のアドレス1304で指定される領域の資源に、アクセス方式1307で示されるアクセス方式でアクセスすることができる旨を示す情報であるポリシィ情報を保持する。
実施の形態におけるポリシィ情報との相違点は、実施の形態におけるポリシィ情報では、資源は、保護メモリ121と共用メモリ122と暗号エンジン123の3つの資源であった部分が、変形例におけるポリシィ情報では、資源は、物理アドレスで指定される任意の領域の資源となっている点と、実施の形態におけるポリシィ情報では、資源へのアクセス方式が、保護メモリ121と共用メモリ122と暗号エンジン123の3つの資源それぞれにアクセス方式を対応付けていた部分が、変形例におけるポリシィ情報では、物理アドレスで指定される任意の領域の1つの資源に対応する1つのアクセス方式を対応付けるようになっている点である。
資源アクセス情報は、ポリシィ保持部の保持するポリシィ情報を参照して、要求受付部111が作成する情報であり、ポリシィ情報の場合と同様に、実施の形態における資源アクセス情報では、資源は、保護メモリ121と共用メモリ122と暗号エンジン123の3つの資源であった部分が、変形例におけるポリシィ情報では、資源は、物理アドレスで指定される任意の領域の資源となっている。
また、同様に、実施の形態における資源アクセス情報では、資源へのアクセス方式が、保護メモリ121と共用メモリ122と暗号エンジン123の3つの資源それぞれにアクセス方式を対応付けていた部分が、変形例における資源アクセス情報では、物理アドレスで指定される任意の領域の1つの資源に対応する1つのアクセス方式を対応付けるようになっている。
図14は、変形例におけるポリシィ保持部112が保持するアクセス制限情報である。
図14に示すように、アクセス制限情報は、優先度1401で示される優先度に応じて、対応するプログラムが資源へのアクセスを行う際の制限を示している情報である。
実施の形態では、資源として保護メモリ121と共用メモリ122と暗号エンジン123との3つの資源があったが、変形例におけるアクセス制限情報は、1つの資源のみとなっている。
<変形例における資源の重複>
実施の形態においては、複数のプログラムに対応する資源が重複している場合として、複数のプログラムに対応する資源が同じ資源である場合しかなかったが、変形例においては、複数のプログラムのアクセスしようとする資源が、様々な形態で重複している場合が発生する。
ここでは、変形例における資源の重複が発生する場合について、資源の重複が発生する形態を、複数のプログラムに対応する領域の資源を全て含む資源の利用要求がある形態をパターン1、プログラムに対応する領域の資源の一部の領域を含む資源への資源の利用要求がある形態をパターン2とする2つのパターンに分類して、図面を使って説明する。
図15は、変形例において、資源の重複がパターン1の形態で発生する場合について、各プログラムが使用する資源の領域の関係を、模式的に示す図である。
ここでは、プログラムAとプログラムBとプログラムCとが、資源を使用して実行中のプログラムである場合において、プログラムAが使用している資源が、物理アドレス空間1500上の、0000_1000h〜0000_11FFhの領域の資源であって、プログラムBが使用している資源が、0000_1200h〜0000_13FFhの領域の資源であって、プログラムCが使用している資源が、000_1400h〜0000_15FFhの領域の資源あるとき、新たにプログラムDから、0000_1000h〜0000_15FFhの領域の資源を利用する要求を受け取った場合を例として、資源の重複がパターン1の形態で発生する場合を、いくつかの場合に場合分けして説明する。
1)プログラムDが資源にアクセスするアクセス方式が、占有方式である場合。
プログラムDの優先度が、プログラムAの優先度とプログラムBの優先度とプログラムCの優先度の全てよりも優先度が高い場合に、許可情報書換部115によって、プログラムDに対応する資源アクセス情報が、許可情報保持部113に追加され、プログラムAとプログラムBとプログラムCとに対応する資源アクセス情報が、許可情報保持部113から削除されて、待機情報保持部114に追加される。
プログラムDの優先度が、プログラムAの優先度とプログラムBの優先度とプログラムCの優先度の全てよりも優先度が高くない場合に、許可情報書換部115によって、プログラムDに対応する資源アクセス情報が、待機情報保持部114に追加される。
プログラムDの優先度が、プログラムAの優先度よりも高くなく、プログラムBの優先度と、プログラムCの優先度より高い場合に(例えば、プログラムAの優先度>プログラムDの優先度>プログラムBの優先度>プログラムCの優先度)、許可情報書換部115によって、プログラムAの資源アクセス情報が削除されたとき、プログラムBとプログラムCに対応する資源アクセス情報が、許可情報保持部113から削除されて、待機情報保持部114に追加され、さらに、プログラムDに対応する資源アクセス情報が、許可情報保持部113に追加される。
2)プログラムDが資源にアクセスするアクセス方式が、共有方式である場合。
2−1)プログラムA、プログラムB、プログラムCが資源にアクセスする方式が、全て占有方式である場合。
プログラムDの優先度が、プログラムAの優先度とプログラムBの優先度とプログラムCの優先度の全てよりも優先度が高い場合に、許可情報書換部115によって、プログラムDに対応する資源アクセス情報が、許可情報保持部113に追加され、プログラムAとプログラムBとプログラムCとに対応する資源アクセス情報が、許可情報保持部113から削除されて、待機情報保持部114に追加される。
プログラムDの優先度が、プログラムAの優先度とプログラムBの優先度とプログラムCの優先度の全てよりも優先度が高くない場合に、許可情報書換部115によって、プログラムDに対応する資源アクセス情報が、待機情報保持部114に追加される。
2−2)プログラムA、プログラムB、プログラムCが資源にアクセスする方式が、占有方式と共有方式とが混在している場合。
ここではプログラムAとプログラムBとが資源にアクセスするアクセス方法が、占有方式で、プログラムCが資源にアクセスするアクセス方法が、共有方式であるとして説明する。
プログラムDの優先度が、資源にアクセスするアクセス方式が占有方式である全てのプログラム(すなわちプログラムAとプログラムB)の優先度よりも優先度が高い場合に、許可情報書換部115によって、プログラムDに対応する資源アクセス情報が、許可情報保持部113に追加され、プログラムAとプログラムBとに対応する資源アクセス情報が、許可情報保持部113から削除されて、待機情報保持部114に追加される。
プログラムDの優先度が、資源にアクセスするアクセス方式が占有方式である全てのプログラム(すなわちプログラムAとプログラムB)の優先度よりも優先度が高くない場合に、許可情報書換部115によって、プログラムDに対応する資源アクセス情報が、待機情報保持部114に追加される。
2−3)プログラムA、プログラムB、プログラムCが資源にアクセスする方法が、全て共有方式である場合。
プログラムDに対応する資源アクセス情報が、許可情報書換部115によって、許可情報保持部113に追加される。
図16は、変形例において、資源の重複がパターン1の形態で発生する場合について、各プログラムが使用する資源の領域の関係を、模式的に示す図である。
ここでは、プログラムAとプログラムBとが、資源を使用して実行中のプログラムである場合において、プログラムAが使用している資源が、物理アドレス空間1500上の、0000_1000h〜0000_11FFhの領域の資源であって、プログラムBが使用している資源が、0000_1200h〜0000_13FFhの領域の資源であるとき、新たにプログラムCから、0000_1100h〜0000_12FFhの領域の資源を利用する要求を受け取った場合を例として、資源の重複がパターン2の形態で発生する場合を、いくつかの場合に場合分けして説明する。
3)プログラムCが資源にアクセスするアクセス方式が、占有方式である場合。
プログラムCの優先度が、プログラムAの優先度とプログラムBの優先度との双方よりも優先度が高い場合に、許可情報書換部115によって、プログラムCに対応する資源アクセス情報が、許可情報保持部113に追加され、プログラムAとプログラムBとに対応する資源アクセス情報が、許可情報保持部113から削除されて、待機情報保持部114に追加される。
プログラムCの優先度が、プログラムAの優先度とプログラムBの優先度との双方よりも優先度が高くない場合に、許可情報書換部115によって、プログラムCに対応する資源アクセス情報が、待機情報保持部114に追加される。
4)プログラムCが資源にアクセスするアクセス方式が、共有方式である場合。
4−1)プログラムA、プログラムBが資源にアクセスする方式が、全て占有方式である場合。
プログラムCの優先度が、プログラムAの優先度とプログラムBの優先度との双方よりも優先度が高い場合に、許可情報書換部115によって、プログラムCに対応する資源アクセス情報が、許可情報保持部113に追加され、プログラムAとプログラムBとに対応する資源アクセス情報が、許可情報保持部113から削除されて、待機情報保持部114に追加される。
プログラムCの優先度が、プログラムAの優先度とプログラムBの優先度との双方よりも優先度が高くない場合に、許可情報書換部115によって、プログラムCに対応する資源アクセス情報が、待機情報保持部114に追加される。
4−2)プログラムA、プログラムBが資源にアクセスする方式が、占有方式と共有方式とが混在している場合。
ここではプログラムAが資源にアクセスするアクセス方法が占有方式で、プログラムBが資源にアクセスするアクセス方法が共有方式であるとして説明する。
プログラムCの優先度が、資源にアクセスするアクセス方式が占有方式であるプログラムAの優先度よりも優先度が高い場合に、許可情報書換部115によって、プログラムCに対応する資源アクセス情報が、許可情報保持部113に追加され、プログラムAに対応する資源アクセス情報が、許可情報保持部113から削除されて、待機情報保持部114に追加される。
プログラムCの優先度が、資源にアクセスするアクセス方式が占有方式であるプログラムAの優先度よりも優先度が高くない場合に、許可情報書換部115によって、プログラムCに対応する資源アクセス情報が、待機情報保持部114に追加される。
4−3)プログラムA、プログラムBが資源にアクセスする方法が、全て共有方式である場合。
プログラムCに対応する資源アクセス情報が、許可情報書換部115によって、許可情報保持部113に追加される。
<変形例における資源の利用要求を受けた場合の動作>
以下、図面を使って、変形例における、プログラムからの資源の利用要求を受けた場合の動作について説明する。
図17、18は、プログラム群101を構成するプログラムから資源102の利用要求を受けた場合の動作を示すフローチャートである。
要求受付部111は、プログラム群101の中のプログラムから資源102を利用する要求をされる(ステップS800)と、ポリシィ保持部112で保持するポリシィ情報の中に、要求を出したプログラムに対応するポリシィ情報があるか否かを検索し(ステップS810)、該当するポリシィ情報がある場合(ステップS810:Yes)には、許可情報保持部113に要求を出したプログラムに対応する資源アクセス情報があるか否かを検索し(ステップS813)、対応する資源アクセス情報を見つけられなかったら(ステップS813:Yes)、要求を出したプログラムに対応する資源アクセス情報を作成して(ステップS816)資源利用要求を受け付ける。
要求受付部111が資源利用要求を受け付けると、許可情報書換部115は、要求受付部111が作成した資源アクセス情報(新規資源アクセス情報)の示す領域の資源を少なくとも一部に含む領域資源(重複資源)を示す資源アクセス情報(重複資源アクセス情報)が許可情報保持部113に保持されているか否かを検索する(ステップS820)。
許可情報書換部115は、重複資源アクセス情報が許可情報保持部113に保持されている場合(ステップS820:Yes)において、新規資源アクセス情報が示すプログラム(以後「新規プログラム」と呼ぶ)から対応する資源にアクセスするアクセス方式が共有方式であるとき(ステップS830:Yes)、重複資源アクセス情報が示すプログラム(以後「重複プログラム」と呼ぶ)が重複資源にアクセスするアクセス方式のうち、少なくとも1つのアクセス方式が占有方式であれば(ステップS840:Yes)、新規プログラムが重複資源にアクセスする優先度と、重複プログラムのうち、資源にアクセスするアクセス方式が占有方式であるプログラム(以後「重複占有プログラム」)が重複資源にアクセスする優先度(以後「重複占有優先度」と呼ぶ)とを比較し(ステップS850)、新規プログラムが重複資源にアクセスする優先度の方が全ての重複占有優先度よりも高ければ(ステップS850:Yes)、許可情報書換部115は、全ての重複占有プログラムに対して削除情報を通知する(ステップS860)。
また、ステップS830において、新規プログラムから対応する資源にアクセスするアクセス方式が占有方式であるとき(ステップS830:No)、新規プログラムが重複資源にアクセスする優先度と重複プログラムが重複資源にアクセスする優先度とを比較し(ステップS845)、新規プログラムが重複資源にアクセスする優先度の方が全ての重複プログラムが重複資源にアクセスする優先度よりも高ければ(ステップS845:Yes)、許可情報書換部115は、全ての重複プログラムに対して削除情報を通知する(ステップS860)。
削除情報を通知された、重複占有プログラムもしくは重複プログラム(以後「該当プログラム」と呼ぶ)は、削除情報を通知されると、前述した後処理を実行してプログラムを終了する。
許可情報書換部115は、削除情報を通知してから所定の時間経過すると、許可情報保持部113から全ての該当プログラムに対応する資源アクセス情報(以後「該当資源アクセス情報」と呼ぶ)と、対応する開始論理アドレスとを削除し(ステップS870)、アドレス変換テーブル118から該当する全てのアドレス変換テーブル構成要素を削除して(ステップS950)、全ての該当資源アクセス情報を、対応する開始論理アドレスに対応付けて、待機情報保持部114に追加(ステップS960)する。
許可情報書換部115は、全ての該当資源アクセス情報を待機情報保持部114に追加すると、新規アクセス情報に対応するアドレス変換テーブル構成要素を作成し、許可情報保持部113に、新規資源アクセス情報を、作成した論理開始アドレスに対応付けて追加して(ステップS970)、アドレス変換テーブル118に作成したアドレス変換テーブル構成要素を追加する(ステップS980)。
許可情報書換部115は、ステップS980を実行する、もしくは、ステップS813において、要求受付部111が、許可情報保持部113に、要求を出したプログラムに対応する資源アクセス情報を見つけると(ステップS813:No)、要求を出したプログラムに対応する開始論理アドレスを要求受付部111に通知し、要求を出したプログラムに、許可情報を通知する。
要求受付部111は、許可情報書換部115から開始論理アドレスを通知されると、通知された開始論理アドレスを戻り値として、要求を出したプログラムに返して(ステップS990)資源の利用要求を受けた場合の動作を終了する。
プログラムは、許可情報と開始論理アドレスと通知されると、資源アクセス処理ルーチンを開始する。
許可情報書換部115は、新規プログラムに対して許可通知信号を通知すると、新規資源アクセス情報を基にして、アドレス変換テーブル構成要素と開始論理アドレスとを作成し、新規資源アクセス情報を作成した開始論理アドレスに対応付けて許可情報保持部113に追加し(ステップS970)、アドレス変換テーブル118に作成したアドレス変換テーブル構成要素を追加し(ステップS980)、作成した開始論理アドレスを要求受付部111に通知する。
要求受付部111は、開始論理アドレスを通知されると、通知された開始論理アドレスを戻り値として新規プログラムに返して(ステップS990)、資源の利用要求を受けた場合の動作を終了する。
ステップS845において、新規プログラムが重複資源にアクセスする優先度の方が全ての重複プログラムが重複資源にアクセスする優先度よりも高くなければ(ステップS845:No)、もしくは、ステップS850において、新規プログラムが重複資源にアクセスする優先度の方が全ての重複占有優先度よりも高くなければ(ステップS850:No)許可情報書換部115は、新規資源アクセス情報を待機情報保持部114に追加(ステップS880)して、資源の利用要求を受けた場合の動作を終了する。
ステップS820において、許可情報保持部113に重複資源アクセス情報が保持されていない場合(ステップS820:No)、または、ステップS840において、重複プログラムが重複資源にアクセスするアクセス方式が全て共有方式であれば(ステップS840:No)、許可情報書換部115は、新規プログラムに対して許可通知信号を通知して、上述したステップS970〜ステップS990の処理を行い、資源の利用要求を受けた場合の動作を終了する。
ステップS810において該当するポリシィ情報がない場合(ステップS810:No)には、要求受付部111は、プログラムの実行を停止させて(ステップS900)、資源の利用要求を受けた場合の動作を終了する。
<補足>
以上、本発明に係るアクセス制御装置の一実施形態として、複数のプログラムそれぞれからの資源へのアクセスを制御するアクセス制御装置について、また、その変形例としてのアクセス制御装置について説明したが、さらに以下のように変形することも可能であり、本発明は上述した実施の形態で示した通りのアクセス制御装置に限られないことはもちろんである。
(1)実施の形態において、資源アクセス情報を保持するブロックとして、許可情報保持部113と待機情報保持部114との2つのブロックを使用するとして説明したが、例えば、情報保持部という1つのブロックのみで、資源アクセス情報を保持するとしてもよい。
この際、例えば、資源アクセス情報が、実施の形態において許可情報保持部113で保持する資源アクセス情報である場合に1、待機情報保持部114で保持する資源アクセス情報である場合に0となる許可情報フラグを用意しておき、情報保持部で資源アクセス情報を保持する場合に、資源アクセス情報とこの許可情報フラグとを対応付けて保持するようにしておく。
資源アクセス情報を保持するブロックが1つであっても、資源アクセス情報に対応付けられている許可情報フラグを参照することで、実施の形態における許可情報保持部113で保持されているべき資源アクセス情報なのか、実施の形態における待機情報保持部114で保持されているべき資源アクセス情報なのかの区別をすることができる為、実施の形態と同様の動作を行うことができる。
このような構成にすることによって、実施の形態において、許可情報保持部113と待機情報保持部114との間で、資源アクセス情報の削除、追加を行う代わりに、許可情報フラグの値を変更するだけで同様の動作を実現できるようになる。
(2)実施の形態において、資源アクセス情報は、要求受付部111が、プログラムから、資源を利用する要求をされると、要求を出したプログラムに対応するポリシィ情報の、プログラムの情報と資源の情報と優先度の情報とアクセス方式の情報とを参照して、資源アクセス情報を作成するとしたが、プログラムの情報と資源の情報と優先度の情報とアクセス方式の情報との情報のうち、一部の情報もしくは全ての情報を、ポリシィ情報以外の情報を参照して、資源アクセス情報を作成するとしてもよい。
例えば、プログラムが要求受付部111に対して、資源を利用する要求をする際に、プログラムの情報と資源の情報と優先度の情報とアクセス情報とを含むデータを指定して要求し、要求受付部111は、この指定されたデータから、プログラムの情報と資源の情報と優先度の情報とアクセス情報とを参照して資源アクセス情報を作成するとしても構わない。
ここでは、この指定されたデータが、ポリシィ保持部112が保持するアクセス制限情報を満たしている場合にのみ、資源アクセス情報を作成するとしておくか、ポリシィ保持部112が保持するポリシィ情報を満たしている場合にのみ、資源アクセス情報を作成するとしておく。
このような構成にすることによって、要求受付部111は、プログラムから資源の利用を要求される毎に資源アクセス情報を作成できるようになり、同一のプログラムに対応する資源アクセス情報を作る場合であっても、状況に応じて異なる資源アクセス情報を作成することができるようになる。
(3)実施の形態において、ポリシィ保持部112のアクセス制限情報の資源へのアクセスを行う際に許されているアクセス方式、及び、ポリシィ情報の資源へのアクセスを行う際に許されているアクセス方式が、占有アクセス可と共有アクセス可とのいずれかの方式である例を示したが、これ以外の方式、例えば、占有アクセスと共有アクセス等の複数のアクセス方式でアクセスすることを許していることを示す、複数方式アクセス可という方式をも含んでいても構わない。
このような構成にすることによって、要求受付部111が、プログラムから資源の利用を要求される毎に資源アクセス情報を作成できる場合において、同一のプログラムに対応する資源アクセス情報を作る場合であっても、状況に応じて、異なるアクセス方式の資源アクセス情報を作成することができるようになる。
(4)実施の形態において、認証局103は、作成したポリシィ情報を、優先度毎に異なる秘密鍵で暗号化することで証明書としていたが、これ以外の方法で証明書を作成しても構わない。
例えば、優先度に関わらず共通の秘密鍵で暗号化しても構わないし、秘密鍵を用いない手法で暗号化しても構わないし、暗号化せずに証明書としても構わない。
暗号化の手法については、その暗号が解読されるリスクと、暗号化に伴うコストとのトレードオフで、最も適切だと考えられる手法を採用するのが望ましい。
(5)実施の形態において、要求受付部111は、プログラムから資源102を利用する要求をされる場合において、要求を出したプログラムに対応するポリシィ情報がポリシィ保持部112にないときは、プログラムの実行を停止させるとしたが、プログラムの実行を停止させるとしなくても構わない。
プログラムは、要求受付部111からプログラムの実行を停止されなくても、アクセス許可部117によって資源へのアクセスができなくなっている為、わざわざプログラムの実行を停止させる積極的理由がなければ、特にプログラムを停止させる必要性は低い為、例えば、プログラムの実行を停止させる理由がないシステムにおいては、プログラムの実行を停止させない仕様であっても問題はない。
(6)許可情報書換部115は、資源アクセス情報を許可情報保持部113に追加する場合、資源アクセス情報に対応するプログラムに、許可情報を通知するとしたが、許可情報を通知しない構成であっても構わない。
例えば、プログラムが、許可情報を通知されなくても、アドレス変換テーブル118に対応するアドレス変換テーブル構成要素が追加されると、資源へのアクセスを開始するようなプログラムであれば、許可情報を通知する必要がない。
(7)許可情報書換部115は、資源アクセス情報を許可情報保持部113から削除する場合、資源アクセス情報に対応するプログラムに、削除情報を通知するとしたが、削除情報を通知しない構成であっても構わない。
許可情報書換部115は、プログラムに削除情報を通知することなく、従って、中断処理を実行することなくアクセス処理ルーチンを停止させる構成であっても、例えば、停止したアクセス処理ルーチンを再開する場合に、アクセス処理ルーチンを最初から実行させるという構成であれば、削除情報を通知する必要がない。
(8)プログラムは資源アクセス処理ルーチンを終了すると、許可情報書換部115に実行終了の旨を通知するとしたが、許可情報書換部115に実行終了の旨を通知しない構成であっても、例えば、OSが、資源アクセス処理ルーチンが終了すると、資源アクセス処理ルーチンが終了した旨を知ることができるようになっていれば、OSが、許可情報書換部115に、資源アクセス処理ルーチンが終了した旨を通知するという構成しても構わない。
(9)アクセス制限情報は、予めポリシィ保持部112の一部として組み込まれている情報であるとしたが、これ以外の構成、例えば、ポリシィ保持部112で保持するアクセス制御情報を、外部のユーザが書き換えることができる不揮発性メモリ等で記憶させている等の構成にすることで、ユーザによってアクセス制限情報を設定することができる構成であっても構わない。
このような構成にすることで、アクセス制限情報に不都合が生じた場合でも、ユーザによってアクセス制限情報を更新することができるようになる。
(10)開始論理アドレスは、許可情報書換部115、もしくは、許可情報追加部116が、資源アクセス情報を基にして作成するとしたが、これ以外の構成、例えば、ポリシィ情報が、プログラムと、優先度と、資源と、アクセス方法とに加えて、開始論理アドレスを対応付けた情報であるとしておいて、許可情報書換部115、もしくは、許可情報追加部116が、このポリシィ保持部112の保持するポリシィ情報を参照することで、論理開始アドレスを作成するとしても構わない。
(11)なお、プログラム群101を構成するプログラムは、削除情報を通知されると、プログラムを終了する為の後処理をして、プログラムを終了するとしたが、実行中の資源アクセスルーチンを停止し、停止した資源アクセス処理ルーチンを再開できるように、停止時点で資源アクセスルーチンが使用しているレジスタの情報等を、メモリやハードディスク等に退避させるという退避処理をするとしてもよい。
さらに、許可情報追加部116が、許可情報保持部113に資源アクセス情報を追加する場合であって、追加する資源アクセス情報に対応する開始論理アドレスが、待機情報保持部114に保持されているとき、資源アクセス情報に対応するプログラムに、再許可情報を通知し、プログラムは、再許可情報を通知されると、退避処理でメモリやハードディスク等に退避させていた情報を読み込んで、停止していた資源アクセス処理ルーチンを再開させるとしてもよい。
このようにすることで、プログラムは、削除情報を通知されて資源アクセス処理ルーチンを停止させても、再許可情報を通知されると、停止させた時点から資源アクセス処理ルーチンを再開させることができる為、停止させた時点までに行った処理を無駄にすることなく、資源アクセス処理ルーチンを実行することができるようになる。
(12)また、アクセス制御装置に相当するOSの一部のプログラムを、コンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、CD―ROM、MO、DVD、DVD−ROM、DVD−RAM、BD(Blu−ray Disc)、半導体メモリなどに記録したり、電気通信回線、無線又は有線通信回線、インターネットを代表とするネットワーク等を経由して伝送してもよい。
このようにすることで、アクセス制御装置に相当するOSの一部のプログラムを、コンピュータシステムにインストールして、実施形態で示したアクセス制御装置として機能させることができる。
本発明は、コンピュータシステム分野、コンピュータシステムを用いた情報機器や家電機器等の分野等に広く利用することができる。
100 アクセス制御装置
101 プログラム群
102 資源
103 認証局
111 要求受付部
112 ポリシィ保持部
113 許可情報保持部
114 待機情報保持部
115 許可情報書換部
116 許可情報追加部
117 アクセス許可部
118 アドレステーブル変換部
121 保護メモリ
122 共用メモリ
123 暗号エンジン

Claims (14)

  1. 資源の利用要求を出した後において当該資源へのアクセスを行う複数のプログラムによる資源へのアクセスを制御するアクセス制御装置であって、
    プログラムから資源を利用する要求を受け付ける要求受付部と、
    プログラム情報を含む資源アクセス情報を保持する情報保持部と、
    前記情報保持部が保持している資源アクセス情報に含まれるプログラム情報が示すプログラムからのアクセスに限って、対応する資源へのアクセスを許可するアクセス許可部と、
    前記情報保持部が、第1のプログラムを示す第1のプログラム情報を含む第1の資源アクセス情報を保持する場合において、前記要求受付部が、第2のプログラムから資源を利用する要求を受け付けたとき、前記第2のプログラムについて予め定められている優先度の方が、前記第1のプログラムについて予め定められている優先度よりも高ければ、前記第1の資源アクセス情報を前記情報保持部から削除して、前記第2のプログラムを示す第2のプログラム情報を含む第2の資源アクセス情報を前記情報保持部に追加する情報書換部とを備えることを特徴とする
    アクセス制御装置。
  2. 前記資源アクセス情報は、前記プログラム情報と、前記プログラム情報が示すプログラムがアクセスする資源を示す資源情報とを対応付けた情報であって、
    前記情報書換部は、前記情報保持部が、第1の資源を示す第1の資源情報と第1のプログラムを示す第1のプログラム情報とを対応付けた第1の資源アクセス情報を保持する場合において、前記要求受付部が、第2のプログラムから、前記第1の資源の少なくとも一部の資源を含む第2の資源を利用する要求を受け付けたとき、前記第2のプログラムについて予め定められている優先度の方が、前記第1のプログラムについて予め定められている優先度よりも高ければ、前記第1の資源アクセス情報を前記情報保持部から削除して、前記第2の資源を示す第2の資源情報と前記第2のプログラムを示す第2のプログラム情報とを対応付けたものである第2の資源アクセス情報を前記情報保持部に追加する情報書換部であることを特徴とする
    請求項1記載のアクセス制御装置。
  3. 前記情報書換部は、前記資源アクセス情報を前記情報保持部から削除する場合、削除する資源アクセス情報に含まれるプログラム情報が示すプログラムに対して、対応する資源へのアクセスの許可を取り消す旨の通知をすることを特徴とする
    請求項2記載のアクセス制御装置。
  4. 前記資源アクセス情報を保持する待機情報保持部とをさらに備え、
    前記情報書換部は、
    前記第2の資源アクセス情報を前記情報保持部に追加するとき、前記第1の資源アクセス情報を前記待機情報保持部に追加し、
    前記情報保持部が、前記第1の資源アクセス情報を保持する場合において、前記要求受付部が、前記第2のプログラムから、前記第1の資源の少なくとも一部の資源を含む前記第2の資源を利用する要求を受け付けたとき、前記第2のプログラムについて予め定められている優先度の方が、前記第1のプログラムについて予め定められている優先度よりも高くなければ、前記第2の資源アクセス情報を前記待機情報保持部に追加することを特徴とする
    請求項3記載のアクセス制御装置。
  5. 前記情報書換部は、
    前記要求受付部が、第3のプログラムから第3の資源を利用する要求を受け付けた場合において、前記第3の資源が、前記情報保持部の保持する全ての資源アクセス情報に含まれる資源情報が示す資源を含まないとき、前記第3の資源を示す資源情報と前記第3のプログラムを示すプログラム情報とを対応付けたものである第3の資源アクセス情報を前記情報保持部に追加し、
    前記情報保持部が、前記第3の資源アクセス情報を保持する場合において、前記第3のプログラムが実行を終了したとき、前記第3の資源アクセス情報を前記情報保持部から削除することを特徴とする
    請求項4記載のアクセス制御装置。
  6. 前記情報保持部から前記資源アクセス情報が削除された場合において、
    前記待機情報保持部が保持する資源アクセス情報の中に、対応する資源情報が、前記情報保持部の保持する全ての資源アクセス情報に含まれる資源情報が示す資源を含まない許可可能資源アクセス情報があるとき、前記許可可能資源アクセス情報のうち、対応するプログラム情報が示すプログラムについて予め定められている優先度が最も高い許可可能資源アクセス情報を、前記待機情報保持部から削除して前記情報保持部に追加する情報追加部とをさらに備えることを特徴とする
    請求項5記載のアクセス制御装置。
  7. 前記情報追加部は、前記資源アクセス情報を前記情報保持部に追加する場合、前記追加する資源アクセス情報に含まれるプログラム情報が示すプログラムに、対応する資源へのアクセスを許可する旨の通知をすることを特徴とする
    請求項6記載のアクセス制御装置。
  8. 前記資源アクセス情報は、前記資源情報と前記プログラム情報とに加えて、プログラムが資源にアクセスする方式が、他のプログラムからのアクセスを許容する共有方式か他のプログラムからのアクセスを許容しない占有方式かのいずれか一方のアクセス方式を示す方式情報とを対応付けたものであって、
    前記情報書換部は、前記情報保持部からの前記第1の資源アクセス情報の削除と、前記情報保持部への前記第2の資源アクセス情報の追加とを、
    前記第1の資源に対応する方式情報と、前記第2の資源に対応する方式情報とのうち、少なくとも1つの方式情報が前記占有方式を示しているという条件をさらに満たす場合に限って実行することを特徴とする
    請求項4記載のアクセス制御装置。
  9. 前記情報追加部は、前記情報保持部から資源アクセス情報が削除された場合において、
    前記待機情報保持部が前記許可可能資源アクセス情報を保持するとき、
    もしくは、前記待機情報保持部が保持する資源アクセス情報のうち、方式情報が前記共有方式を示し、対応する資源が、前記情報保持部が保持する資源アクセス情報のうち、方式情報が前記占有方式を示す資源アクセス情報に対応する資源を含まない許可可能共有資源アクセス情報があるとき、前記許可可能資源アクセス情報、及び、前記許可可能共有資源アクセス情報のうち、対応する前記プログラム情報が示すプログラムについて予め定められている優先度が最も高い資源アクセス情報を、前記待機情報保持部から削除して前記情報保持部に追加することを特徴とする
    請求項8記載のアクセス制御装置。
  10. 特定のプログラム、特定の資源、特定の優先度、及びこれらの組み合わせが正当であると認証する証明書を受信し、前記特定の資源を示す正当資源情報と、前記特定のプログラムを示す正当プログラム情報と、前記特定の優先度を示す正当優先度情報とを対応付けたものであるポリシィ情報を保持するポリシィ保持部とを備え、
    前記要求受付部は、プログラムからの資源の利用要求が、前記ポリシィ保持部が保持しているポリシィ情報に含まれる正当プログラム情報の示すプログラムからの対応する正当資源情報の示す資源の利用要求であるという条件を満たさない場合に、プログラムから資源の利用要求の受け付を拒絶し、
    前記第1のプログラムについて予め定められている優先度とは、前記ポリシィ保持部が保持している前記ポリシィ情報の前記第1のプログラムが前記第1の資源にアクセスする際の前記優先度情報が示す優先度であって、
    前記第2のプログラムについて予め定められている優先度とは、前記ポリシィ保持部が保持している前記ポリシィ情報の前記第2のプログラムが前記第2の資源にアクセスする際の前記優先度情報が示す優先度であることを特徴とする
    請求項9記載のアクセス制御装置。
  11. 前記要求受付部は、前記情報保持部に前記資源アクセス情報が追加された場合に限って、当該追加された資源アクセス情報に含まれるプログラム情報が示すプログラムへ、対応する資源へのアクセスに用いる論理アドレスを提供することを特徴とする
    請求項10記載のアクセス制御装置。
  12. 前記アクセス許可部は、前記情報保持部が保持している資源アクセス情報に含まれるプログラム情報が示すプログラムからのアクセスに限って、対応する資源へのアクセスを許可するか否かの判定を、プログラムにおけるメモリの読み書きに係る命令をデコードする際に行い、否定的な判定の場合に、エラー処理を実行することを特徴とする
    請求項1記載のアクセス制御装置。
  13. コンピュータに、資源の利用要求を出した後において当該資源へのアクセスを行う複数のアプリケーションプログラムによる資源へのアクセスを制御するアクセス制御装置として機能させる為のアクセス制御プログラムであって、
    コンピュータに、
    アプリケーションプログラムから資源を利用する要求を受け付ける要求受付部と、
    アプリケーションプログラム情報を含む資源アクセス情報を保持する情報保持部と、
    前記情報保持部が保持している資源アクセス情報に含まれるプログラム情報が示すアプリケーションプログラムからのアクセスに限って、対応する資源へのアクセスを許可するアクセス許可部と、
    前記情報保持部が、第1のアプリケーションプログラムを示す第1のプログラム情報を含む第1の資源アクセス情報を保持する場合において、前記要求受付部が、第2のアプリケーションプログラムから資源を利用する要求を受け付けたとき、前記第2のアプリケーションプログラムについて予め定められている優先度の方が、前記第1のアプリケーションプログラムについて予め定められている優先度よりも高ければ、前記第1の資源アクセス情報を前記情報保持部から削除して、前記第2のアプリケーションプログラムを示す第2のプログラム情報を含む第2の資源アクセス情報を前記情報保持部に追加する情報書換部とを備えることを特徴とするアクセス制御装置として機能させることを特徴とする
    アクセス制御プログラム。
  14. プログラム情報を含む資源アクセス情報を保持する情報保持部と、要求受付部と、アクセス許可部と、情報書換部とを備えるアクセス制御装置に、資源の利用要求を出した後において当該資源へのアクセスを行う複数のプログラムによる資源へのアクセスを制御させる為のアクセス制御方法であって、
    前記要求受付部が、プログラムから資源を利用する要求を受け付ける要求受付ステップと、
    前記アクセス許可部が、前記情報保持部が保持している前記資源アクセス情報に含まれるプログラム情報が示すプログラムからのアクセスに限って、対応する資源へのアクセスを許可するアクセス許可ステップと
    前記情報保持部が、第1のプログラムを示す第1のプログラム情報を含む第1の資源アクセス情報を保持する場合において、前記要求受付ステップが、第2のプログラムから資源を利用する要求を受け付けたとき、前記第2のプログラムについて予め定められている優先度の方が、前記第1のプログラムについて予め定められている優先度よりも高ければ、前記情報書換部が、前記第1の資源アクセス情報を前記情報保持部から削除して、前記第2のプログラムを示す第2のプログラム情報を含む第2の資源アクセス情報を前記情報保持部に追加する許可情報書換ステップとを備えることを特徴とする
    アクセス制御方法。
JP2010517686A 2008-06-24 2009-06-02 アクセス制御装置、アクセス制御プログラム、及びアクセス制御方法 Expired - Fee Related JP4977782B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010517686A JP4977782B2 (ja) 2008-06-24 2009-06-02 アクセス制御装置、アクセス制御プログラム、及びアクセス制御方法

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2008164074 2008-06-24
JP2008164074 2008-06-24
PCT/JP2009/002445 WO2009157136A1 (ja) 2008-06-24 2009-06-02 アクセス制御装置、アクセス制御プログラム、及びアクセス制御方法
JP2010517686A JP4977782B2 (ja) 2008-06-24 2009-06-02 アクセス制御装置、アクセス制御プログラム、及びアクセス制御方法

Publications (2)

Publication Number Publication Date
JPWO2009157136A1 true JPWO2009157136A1 (ja) 2011-12-08
JP4977782B2 JP4977782B2 (ja) 2012-07-18

Family

ID=41444209

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010517686A Expired - Fee Related JP4977782B2 (ja) 2008-06-24 2009-06-02 アクセス制御装置、アクセス制御プログラム、及びアクセス制御方法

Country Status (4)

Country Link
US (1) US20110055841A1 (ja)
JP (1) JP4977782B2 (ja)
CN (1) CN102016873A (ja)
WO (1) WO2009157136A1 (ja)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8924982B2 (en) * 2010-01-12 2014-12-30 Amazon Technologies, Inc. Managing private use of program execution capacity
JP5704176B2 (ja) * 2011-01-25 2015-04-22 富士通株式会社 プロセッサ処理方法、およびプロセッサシステム
US8689299B2 (en) * 2011-12-22 2014-04-01 Blackberry Limited System and method for accessing a software application
CN102567233B (zh) * 2011-12-23 2014-07-02 福建升腾资讯有限公司 基于磁盘虚拟技术的usb存储设备数据保护方法
CN103257898A (zh) * 2012-02-15 2013-08-21 北京邦天信息技术有限公司 嵌入式系统中资源分配方法和系统
US9253209B2 (en) 2012-04-26 2016-02-02 International Business Machines Corporation Policy-based dynamic information flow control on mobile devices
JP6098110B2 (ja) * 2012-10-24 2017-03-22 富士通株式会社 情報処理装置、データ保護方法、およびプログラム
CN109063467A (zh) * 2013-05-27 2018-12-21 华为终端(东莞)有限公司 系统功能调用的方法、装置及终端
US9917791B1 (en) 2014-09-26 2018-03-13 Netflix, Inc. Systems and methods for suspended playback
KR101968106B1 (ko) * 2015-04-14 2019-04-11 후아웨이 테크놀러지 컴퍼니 리미티드 프로세스 관리 방법, 장치, 및 디바이스
CN105165837A (zh) * 2015-08-27 2015-12-23 周保东 一种含有苯醚甲环唑与氟醚菌酰胺的杀菌组合物
CN106603256B (zh) * 2015-10-14 2020-01-10 阿里巴巴集团控股有限公司 一种流量控制方法及装置
JP6253865B2 (ja) * 2015-12-04 2017-12-27 三菱電機株式会社 転送制御装置、車両及び転送制御方法
JP6948021B2 (ja) * 2016-04-08 2021-10-13 大日本印刷株式会社 電子情報記憶媒体、情報処理方法、及び情報処理プログラム
JP6805097B2 (ja) * 2017-08-25 2020-12-23 日本電信電話株式会社 リソース確保装置、リソース確保方法及びコンピュータプログラム
FR3089316B1 (fr) * 2018-11-30 2020-10-30 Thales Sa Procédé et dispositif de surveillance d’application(s) logicielle(s) avec période temporelle tampon précédant une section réservée pour un ensemble de ressource(s) partagée(s), programme d’ordinateur et système avionique associés
JP2020167509A (ja) * 2019-03-29 2020-10-08 コベルコ建機株式会社 情報処理システム、情報処理方法、およびプログラム
JP7230703B2 (ja) * 2019-06-20 2023-03-01 オムロン株式会社 制御装置
CN110489940A (zh) * 2019-08-12 2019-11-22 北京猎户星空科技有限公司 机器人控制类应用程序的权限管理方法及装置

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5392433A (en) * 1992-09-25 1995-02-21 International Business Machines Corporation Method and apparatus for intraprocess locking of a shared resource in a computer system
US6910210B1 (en) * 1998-11-24 2005-06-21 Microsoft Corp. System and method for terminating applications
US7257814B1 (en) * 1998-12-16 2007-08-14 Mips Technologies, Inc. Method and apparatus for implementing atomicity of memory operations in dynamic multi-streaming processors
US8041754B1 (en) * 2000-01-22 2011-10-18 Intel Corporation Establishing thread priority in a processor or the like
EP1387593A3 (en) * 2002-07-31 2005-06-15 Matsushita Electric Industrial Co., Ltd. Information processing terminal and information processing method
JP2004078936A (ja) * 2002-07-31 2004-03-11 Matsushita Electric Ind Co Ltd 情報処理端末及び情報処理方法
US7536689B2 (en) * 2003-01-10 2009-05-19 Tricerat, Inc. Method and system for optimizing thread scheduling using quality objectives
JP3822577B2 (ja) * 2003-05-22 2006-09-20 株式会社エヌ・ティ・ティ・ドコモ コンピュータ及びプログラム
US20040268349A1 (en) * 2003-06-30 2004-12-30 Sabre Inc. Systems, methods and computer program products for assigning at least one task to at least one shift
US7370326B2 (en) * 2004-04-02 2008-05-06 Emulex Design & Manufacturing Corporation Prerequisite-based scheduler
US7610586B2 (en) * 2004-04-30 2009-10-27 Tvworks, Llc Resource manager for clients in an information distribution system
FR2873830B1 (fr) * 2004-07-30 2008-02-22 Commissariat Energie Atomique Procede d'ordonnancement de traitement de taches et dispositif pour mettre en oeuvre le procede
US8146090B2 (en) * 2005-09-29 2012-03-27 Rockstar Bidco, LP Time-value curves to provide dynamic QoS for time sensitive file transfer
US20070094343A1 (en) * 2005-10-26 2007-04-26 International Business Machines Corporation System and method of implementing selective session replication utilizing request-based service level agreements
US20070136731A1 (en) * 2005-12-09 2007-06-14 Caterpillar Inc. Systems and methods for prioritizing tasks
KR20080064608A (ko) * 2007-01-05 2008-07-09 삼성전자주식회사 SPI(Simple PriorityInheritance) 방식에 따른 멀티태스킹 방법 및임베디드 시스템
US7530072B1 (en) * 2008-05-07 2009-05-05 International Business Machines Corporation Method to segregate suspicious threads in a hosted environment to prevent CPU resource exhaustion from hung threads

Also Published As

Publication number Publication date
US20110055841A1 (en) 2011-03-03
CN102016873A (zh) 2011-04-13
WO2009157136A1 (ja) 2009-12-30
JP4977782B2 (ja) 2012-07-18

Similar Documents

Publication Publication Date Title
JP4977782B2 (ja) アクセス制御装置、アクセス制御プログラム、及びアクセス制御方法
US8650406B2 (en) Memory protection and security using credentials
US9104618B2 (en) Managing access to an address range in a storage device
JP5611338B2 (ja) 仮想モバイル機器のセキュリティの提供
US8060716B2 (en) Information processing device for securely processing data that needs to be protected using a secure memory
US20070113079A1 (en) Data processing apparatus
RU2406116C2 (ru) Миграция цифровой лицензии с первой платформы на вторую платформу
EP1756694B1 (en) Authentication method for authenticating a first party to a second party
JP5175617B2 (ja) データ保護システム、データ保護方法、及びメモリカード
JP2007234003A (ja) 携帯用格納装置および携帯用格納装置のデータ管理方法
JP4551231B2 (ja) プログラム実行保護システム、プログラム実行保護方法
JP2010267135A (ja) メモリコントローラ
KR20150032970A (ko) 보안 기능을 제공하는 저장 매체 및 그 보안 방법
US11853604B2 (en) Computational storage device, method, and data processing system executing operation in accordance with information in command
CN111538995B (zh) 一种数据存储方法、装置及电子设备
JP4591163B2 (ja) バスアクセス制御装置
JP5188057B2 (ja) 情報処理システム、情報処理装置、および情報処理方法
JP2007109053A (ja) バスアクセス制御装置
JP2003122643A (ja) コンテンツ読出装置
JPWO2012042734A1 (ja) アクセス制御情報生成システム
JP4741984B2 (ja) 通信端末、通信制御方法、及び、通信制御プログラム
JP2005252403A (ja) コンテンツ記録システム及びコンテンツ記録方法、並びにコンピュータ・プログラム
JP2007193421A (ja) コンテンツ利用制御方法及びその装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120118

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120416

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150420

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees