JP6117068B2 - 情報処理装置、およびプログラム - Google Patents

情報処理装置、およびプログラム Download PDF

Info

Publication number
JP6117068B2
JP6117068B2 JP2013196110A JP2013196110A JP6117068B2 JP 6117068 B2 JP6117068 B2 JP 6117068B2 JP 2013196110 A JP2013196110 A JP 2013196110A JP 2013196110 A JP2013196110 A JP 2013196110A JP 6117068 B2 JP6117068 B2 JP 6117068B2
Authority
JP
Japan
Prior art keywords
unit
secure
data
access
write
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.)
Active
Application number
JP2013196110A
Other languages
English (en)
Other versions
JP2015060569A (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.)
Toshiba Corp
Original Assignee
Toshiba Corp
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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2013196110A priority Critical patent/JP6117068B2/ja
Priority to US14/482,297 priority patent/US9552307B2/en
Publication of JP2015060569A publication Critical patent/JP2015060569A/ja
Application granted granted Critical
Publication of JP6117068B2 publication Critical patent/JP6117068B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1491Protection against unauthorised use of memory or access to memory by checking the subject access rights in a hierarchical protection system, e.g. privilege levels, memory rings
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/007Encryption, En-/decode, En-/decipher, En-/decypher, Scramble, (De-)compress

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)
  • Mathematical Physics (AREA)

Description

本発明の実施形態は、情報処理装置、およびプログラムに関する。
近年、単一の計算機上で複数のオペレーティング・システム(OS)を同時に実行させるための仮想化技術がサーバから組み込み機器に至るまで広く利用されつつある。仮想化技術を用いるとペリフェラル(周辺機器)へのアクセスを監視することが可能となる。
特開2008−52713号公報
ARM TrustZone(登録商標)においてはメモリ保護機能を有しており、ARMプロセッサではメモリ空間にペリフェラルのバッファやレジスタがマップされるため、ペリフェラルへのアクセスを監視することが可能である。しかし、ARM TrustZone機能によりペリフェラルへのアクセスに対してセキュアにフィルタをかけて実行する構成が明らかではない。ペリフェラルの仮想化によってペリフェラルアクセスに対して暗号化などのフィルタをかけてペリフェラルアクセス内容を変換する構成を明らかにする必要がある。
本発明の実施形態は、上記に鑑みてなされたものであって、ペリフェラルへのアクセスにおけるセキュリティを向上させることのできる情報処理装置を提供することを目的とする。
上述した課題を解決し、目的を達成するために、本発明の実施形態は、プロセッサ部と、セキュアOS部と、ノンセキュアOS部と、モニタ部とを備える。プロセッサ部は、セキュアモードとノンセキュアモードとに選択的に切り替えられ、主記憶部に対してモードごとに独立したアクセス権を設定可能であり、それぞれのモードで所定のデータ処理を行なう。セキュアOS部は、前記セキュアモードで動作する。ノンセキュアOS部は、前記ノンセキュアモードで動作する。モニタ部は、前記セキュアOS部と、前記ノンセキュアOS部とを切り替える。
前記セキュアOS部は、処理表管理部と、メモリ保護設定部と、処理判定部と、処理実行部と、セキュアデバイスアクセス部と、エントリ部とを備える。処理表管理部は、所定の処理ごとに、アクセス対象のデータの前記主記憶部における物理アドレス、及びリード、及びライトのアクセス種別を対応付けて記憶する。メモリ保護設定部は、所定の処理ごとに、前記処理表管理部を参照して前記ノンセキュアOS部からのリード、及びライトのアクセスの少なくとも一方を禁止する前記主記憶部の保護アドレスを設定する。処理判定部は、前記アクセス種別とアクセス先の物理アドレス、前記アクセス種別がライトの場合には書き込み対象のデータを受け取るとともに、前記処理表管理部から処理の一覧を取得し、実行される処理を決定する。処理実行部は、前記処理判定部から、前記処理の種別、前記アクセス種別、及びアクセス先の物理アドレス、前記アクセス種別がライトの場合には書き込み対象のデータを受け取り、リードの場合にはセキュアデバイスアクセス部からデータを取得して、データに対して前記処理を実行する。セキュアデバイスアクセス部は、前記アクセス種別とアクセス先の物理アドレス、前記アクセス種別がライトの場合にはライトするデータを受け取り、前記物理アドレスが示す周辺機器にアクセスする。エントリ部は、前記OS切替え部から前記アクセス種別と、アクセス先の物理アドレス、前記アクセス種別がライトの場合にはライトデータを受け取り、前記処理判定部を呼び出すとともに、前記アクセス種別がリードの場合には前記処理判定部から読み込んだデータを取得し、前記OS切替え部を呼び出す。
前記モニタ部は、OS切替え部と、命令解析部と、アドレス変換部とを備える。OS切替え部は、前記セキュアOS部と、前記ノンセキュアOS部との間でOSの切り替え制御を行う。命令解析部は、命令の前記アクセス種別の判別、前記アクセス種別がリードの場合には読み込み先の物理アドレス、前記アクセス種別がライトの場合には書き込むデータを取得する。アドレス変換部は、前記ノンセキュアOS部のページテーブルを参照して仮想アドレスから物理アドレスに変換する。
実施形態の情報処理装置のハードウェア構成を示すブロック図。 実施形態の情報処理装置の構成を示す図。 実施形態の情報処理装置のソフトウェア構成を示す図。 ノンセキュアOSのページテーブルアドレスレジスタの値を示す図。 実施形態の処理の種類ごとに定められたフィルタの設定を示す図。 ノンセキュアOSおよびセキュアOSのコンテキストを示す図。 実施形態のセキュアOS部の起動時に行われる処理を示す図。 実施形態のメモリアクセス検出時の処理を示す図。 実施形態の書き込みデータ取得の処理を詳細に示した図。 実施形態の読み込みデータ保存の処理を詳細に示した図。 別例のノンセキュアOSおよびセキュアOSのコンテキストを示す図。 実施形態の変形例の情報処理装置のソフトウェア構成を示す図。 実施形態の処理表の動的変更時の処理を示す図。 第2の実施形態の情報処理装置のソフトウェア構成を示す図。 第2の実施形態の割り込み処理表を示す図。 第2の実施形態の割り込み発生時の処理の流れを示す図。 第3の実施形態の情報処理装置のソフトウェア構成を示す図。 第3の実施形態の処理のフィルタの設定を示す図。 第3の実施形態のフィルタ処理の流れを示す図。 第4の実施形態の情報処理装置のソフトウェア構成を示す図。 第4の実施形態のフィルタの設定を示す図。 第4の実施形態のフィルタ処理の流れを示す図。 第5の実施形態の情報処理装置のソフトウェア構成を示す図。 第5の実施形態のフィルタの設定を示す図。 第5の実施形態のフィルタ処理の流れを示す図。 第6の実施形態の情報処理装置のソフトウェア構成を示す図。 第6の実施形態のモニタ呼出し時の処理を示す図。 第6の実施形態のアボート発生時の処理を示す図。 第6の実施形態の変形例のアボート発生時の処理を示す図。
(第1の実施形態)
以下、図面を参照しながら、情報処理装置1の一実施形態を説明する。図1は、第1の実施形態で説明する情報処理装置1のハードウェア構成を概略的に示している。この情報処理装置1は、CPU部200(プロセッサ部)、主記憶部300、ストレージ部100を備える。またCPU部200はメモリ保護部201、割り込み制御部202や非図示のレジスタ部、演算部などを備える。ストレージ部100にはモニタ部500、セキュアOS部700、ノンセキュアOS部600といったCPU部200で実行されるプログラムが格納されている。
CPU部200は主記憶部300に格納された命令列の実行を行う。主記憶部300にはオペレーティングシステム(OS)と呼ばれるプログラムが格納され、CPU部200により実行される。また、主記憶部300にはコンテキスト待避部301が設けられている。OSは各種デバイスの管理などを行い、アプリケーションから各種デバイスを利用できるようにするためのプログラムである。またCPU部200は複数のOSを実行する機能を有し、本実施形態ではセキュアOSとノンセキュアOSの二つの実行を想定する。またモニタ部500は、各OS部600、700の起動や切替え、各OS部600、700が利用するハードウェアリソースの管理などといった各OS部600、700の管理を行うためのプログラムである。ここでいうOSの切り替えとは、同時に実行可能なOSの数はCPUが同時に実行できるプログラムの数に依存するが、時分割で各OSを切替えて実行することで仮想的にOSを複数実行しているように見せかけることを指す。OS側の要求やハードウェアからの割り込みなどによりモニタ部500が呼び出され、OSの切り替えが制御される。また、ペリフェラル部400は、情報処理装置1に接続されて使用されるものであり、例えばUSBデバイスや、マウス、キーボード、ハードディスクなどの装置である。
図2、及び図3は第1の実施形態におけるCPU部200や主記憶部300を含むハードウェアとCPU部200で動作するソフトウェア構成の一例を示している。なお、以下で示すソフトウェアは、電子回路などのハードウェアによって実現してもよい。図中におけるモニタ部500およびノンセキュアOS部600、セキュアOS部700はソフトウェアである。以降、図2の詳細な内部構成を示す図3を用いてペリフェラルの仮想化機能を有する第1の実施形態について詳細に説明する。
ノンセキュアOS部600はノンセキュアデバイスアクセス部601を有する。ノンセキュアデバイスアクセス部601はペリフェラル部400に対して読み書きの命令を出し、ペリフェラルの制御を行う機能を有する。モニタ部500はコンテキスト保存復帰部505、OS切替え部504、トラップ部501、命令解析部502、アドレス変換部503を備えている。
コンテキスト保存復帰部505はOS切り替えの際に切替え元OSのコンテキストをコンテキスト待避部301に保存し、切替え先のコンテキストをコンテキスト待避部301から復帰する機能を有する。OSの切替え時にコンテキストの保存、復帰を行うことで一つのプロセッサ内で擬似的にOSを同時に動かしているように見せかけることが可能となる。
OS切替え部504はOSの切替え命令を検知し、コンテキスト保存復帰部505に対してコンテキストの保存復帰を命令する機能を有する。OS切替え部504はエントリ部701からOS切替え命令により呼び出される場合とモニタ部500のメモリ保護例外の発生によりトラップ部501から呼び出される場合が存在する。トラップ部501から呼び出された場合には、OS切替え部504はノンセキュアOSのコンテキスト保存、セキュアOSのコンテキスト復帰をコンテキスト保存復帰部505に対して命令する。その後、トラップ部501から受け取った、リード・ライトの種別、リード・ライト対象物理アドレス、ライトの場合は書き込みを行うデータをセキュアOS部700のエントリ部701に渡す。エントリ部701から呼び出された場合には、OS切替え部504は読み込み結果を受け取り、セキュアOSのコンテキスト保存、ノンセキュアOSのコンテキスト復帰をコンテキスト保存復帰部505に対して命令する。その後、命令解析部502が保存した読み込み先レジスタの情報が指すレジスタに読み込み結果を書き込む。さらにノンセキュアデバイスアクセス部601のメモリ保護例外が発生した次の命令に戻る。
トラップ部501はメモリ保護部201でのメモリ保護例外発生によりメモリ保護部201から呼び出される。その際にトラップ部501は例外が発生した命令が配置されているメモリの仮想アドレスを取得し、命令解析部502に渡す。さらに、命令解析の完了後OS切替え部504に命令解析部502から受け取ったリード・ライトの種別、リード・ライト対象物理アドレス、ライトの場合は書き込みを行うデータを渡し、OSの切替えを命令する機能を有する。
命令解析部502はトラップ部501から呼び出され、例外が発生した命令を解析する機能を有する。命令解析部502は解析対象の命令が配置されているメモリの仮想アドレスを受け取り、アドレス変換部503を呼び出し、仮想アドレスに対応する物理アドレスを取得する。さらに、命令解析部502は取得した物理アドレスから命令を取得し、命令のリード・ライトの種別、リード・ライトを行う対象の仮想アドレスが格納されたレジスタの情報、リードの場合には保存先レジスタ情報、ライトの場合には書き込む値が格納されたレジスタ情報もしくは書き込む即値情報を解析する。さらに、命令解析部502はリード・ライト対象の仮想アドレスが格納されたレジスタ情報を元に、レジスタを参照し、リード・ライト対象の仮想アドレス情報を得る。命令解析部502は、アドレス変換部503を呼び出し、リード・ライト対象の仮想アドレスを物理アドレスに変換する。命令が書き込み命令でかつレジスタに書き込む値が格納されている場合には、命令解析部502はレジスタから書き込む値を取得する。命令が読み込み命令の場合には、命令解析部502は読み込み先のレジスタの情報を保存しておく。命令解析部502は、解析結果として命令のリード・ライトの種別、リード・ライト対象の物理アドレス、ライトの場合は書き込みを行うデータ(命令に含まれる即値情報もしくはレジスタから得た書き込む値)をトラップ部501に返す。
アドレス変換部503はノンセキュアOSで実行中のタスクのページテーブルを参照し、呼び出し元から与えられた仮想アドレスを物理アドレスに変換し、呼び出し元に返す機能を有する。アドレス変換部503はノンセキュアOSのページテーブルが格納されている場所を取得するために、図4に示されたノンセキュアOSのページテーブルアドレスレジスタの値を取得する。その後、レジスタの値が指すメモリを参照し、呼び出し元から与えられた仮想アドレスから物理アドレスに変換し、呼び出し元に返す。例えば、仮想アドレスが0x00001000であれば物理アドレス0xF0001000が返される。
セキュアOS部700は処理表管理部703、メモリ保護設定部704、処理判定部702、エントリ部701、処理実行部705、セキュアデバイスアクセス部706を備えている。
処理表管理部703は図5に示される処理表の設定や取得を行う機能を有する。図5に示されるように、処理表には、アクセス時に検出を行いたいメモリの開始物理アドレスやサイズ、検出するリード・ライトの種別(方向)、アクセス時にかけるフィルタ処理の種類がデータとして含まれている。例えば開始物理アドレスが0x10000010、サイズが1024、方向がライト、フィルタ種類が暗号化の場合には、物理アドレスが0x10000010以上、(0x10000010+1024)未満の領域に対してライトが行われた際に、そのデータの暗号化を行うことを意味する。この物理アドレスが例えば、ネットワークカードの送信バッファ領域であれば送信するパケットの暗号化を、ストレージの書き込みバッファ領域であればストレージに書き込むデータの暗号化が行われる。
メモリ保護設定部704は処理表管理部703から処理表の内容を取得し、メモリ保護部201に対してノンセキュアOSからのメモリアクセスの検出を行う内容を設定する機能を有する。メモリ保護設定部704は処理表の一覧を取得し、それぞれの項目について開始物理アドレスとサイズをメモリ保護設定部704に渡して、方向がリードならばリードの禁止設定を、方向がライトならばライトの禁止設定を、方向がリード・ライトであればリード・ライト両方の禁止設定を行い、メモリ空間における保護アドレスを設定する。
処理判定部702はエントリ部701からアクセス対象の物理アドレス、リード・ライトの種別を受け取る。さらに種別がライトの場合にはエントリ部701から書き込むデータを受け取るとともに、処理表管理部703から処理表を受け取る。また処理判定部702はアクセス対象の物理アドレスが含まれる項目を探し、対応するフィルタ種類を決定する機能を有する。例えば、アクセス対象の物理アドレスが0x10000011、リード・ライトの種別がリードであれば、0x10000010≦0x10000011<0x10001000+1024であるため、開始物理アドレスは0x10000010、サイズは1024、方向はリード、フィルタ種類は復号化の項目が該当する。このため、フィルタ種類は復号化に決定される。さらに、処理実行部705に対してフィルタ種類とともに、アクセス対象の物理アドレス、リード・ライトの種別、種別がライトの場合には書き込むデータを渡す。その戻り値として、処理実行部705からは種別がリードの場合には読み込んだデータを受け取り、エントリ部701に返す。種別がライトの場合には、エントリ部701を何も渡さずに呼び出す。
エントリ部701はOS切替え部504からアクセス対象の物理アドレス、リード・ライトの種別、種別がライトの場合には書き込むデータを受け取り、処理判定部702に渡す機能を有する。その戻り値として、処理判定部702からは種別がリードの場合には読み込んだデータを受け取り、OS切替え部504に渡す。種別がライトの場合には、OS切替え部504を何も渡さずに呼び出す。
処理実行部705は処理判定部702からフィルタ種類とともに、アクセス対象の物理アドレス、リード・ライトの種別、種別がライトの場合には書き込むデータを受け取る。さらに、種別がライトの場合にはフィルタの種別に応じてフィルタをかける。例えば暗号化であれば処理実行部705は渡された書き込むデータに対して暗号化を行い、記録であれば渡された書き込むデータについて書き込みログを残す。また、フィルタが破棄、かつ種別がライトであれば処理実行部705は何もせずに処理判定部702を呼び出す。一方フィルタが破棄、かつ種別がリードであれば処理実行部705はダミーのデータを生成し、処理判定部702に返す。さらに、フィルタがデータを破棄しないフィルタであれば、処理実行部705はアクセス対象の物理アドレス、リード・ライトの種別、種別がライトの場合にはフィルタをかけた書き込むデータをセキュアデバイスアクセス部706に渡す。その戻り値として、セキュアデバイスアクセス部706から種別がリードの場合には読み込んだデータを受け取る。さらに、種別がリードの場合には処理実行部705はフィルタの種別に応じてフィルタをかけて、フィルタをかけたデータを処理判定部702に返す。例えば種別がリードでフィルタが復号化であれば、処理実行部705はセキュアデバイスアクセス部706から受け取ったデータを復号化後、処理判定部702に返す。種別がライトの場合には処理実行部705はセキュアデバイスアクセス部706からは何も受け取らずに、処理判定部702を呼び出す。
セキュアデバイスアクセス部706はアクセス対象の物理アドレス、リード・ライトの種別、種別がライトの場合には書き込むデータを受け取る。セキュアデバイスアクセス部706はアクセス対象の物理アドレスが指すペリフェラル部400に対して、リードの場合にはデータのリードを命令して読み込んだデータを受け取り、ライトの場合には書き込むデータを渡して書き込みを命令する。リードの場合には処理実行部705に対して読み込んだデータを返し、ライトの場合には何も渡さずに処理実行部705を呼び出す。
ハードウェア部はコンテキスト待避部301、ペリフェラル部400、メモリ保護部201を備えている。コンテキスト待避部301はコンテキスト保存復帰部505から呼び出され、図6に示されるようにノンセキュアOSおよびセキュアOSのコンテキストを保存、取得する機能を有する。
ペリフェラル部400はノンセキュアデバイスアクセス部601およびセキュアデバイスアクセス部706からアクセス先仮想アドレスを指定して呼び出され、物理アドレスへの変換後、メモリ保護部201に対してアクセス元(ノンセキュアデバイスアクセス部601もしくはセキュアデバイスアクセス部706)情報とアクセス先物理アドレス、アクセスのリード・ライトの種別を渡してアクセス可否の判定結果を受け取り、アクセス可能と判定された場合に周辺機器に対して実際にアクセスを行う機能を有する。
メモリ保護部201はメモリ保護設定部704からアクセス制御対象の開始物理アドレス、サイズ、保護したいリード・ライトの種別を受け取り、そのデータを元にペリフェラル部400からのアクセス可否の判定依頼に返答する機能を有する。ペリフェラル部400からはアクセス対象物理アドレスとリード・ライトの種別、アクセス元情報を受け取り、アクセス元情報がノンセキュアデバイスアクセスの場合にはメモリ保護設定部704から受け取った保護設定の中に合致する項目があるかどうかを判定する。合致する項目があった場合にはトラップ部501を呼び出す。合致する項目がなかった場合やアクセス元情報がセキュアデバイスアクセス部706の場合には、ペリフェラル部400に対してアクセス可能という情報を返す。
次に図7のフローチャートに示されるストレージに格納されるセキュアOS部700の起動時に行われるメモリ保護設定の処理手順について述べる。まず、メモリ保護設定部704は処理表管理部703から処理表を受け取り、項目を一つ取り出し、フィルタ表に未設定の処理があるか否かを判定する(ステップS101)。フィルタ表に未設定の処理がある場合(ステップS101:Yes)、メモリ保護設定部704はアドレス(addr)、サイズ(size)、方向情報を取り出す(ステップS102)。次いで、メモリ保護設定部704は取り出した処理の方向情報を判定する(ステップS103)。方向情報がリードであれば(ステップS103:リード)、メモリ保護設定部704はメモリ保護部201に対してaddr以上、(addr+size)未満の領域のノンセキュアOS領域からのリードを禁止する(ステップS104)。方向情報がライトであれば(ステップS103:ライト)、メモリ保護設定部704はメモリ保護部201に対してaddr以上、(addr+size)未満の領域のノンセキュアOS領域からのライトを禁止する(ステップS105)。方向情報がリード・ライトであれば(ステップS103:リード・ライト)、メモリ保護設定部704はメモリ保護部201に対してaddr以上、(addr+size)未満の領域のノンセキュアOS領域からのリード・ライトを禁止する(ステップS106)。その後、ステップS101に戻る。未設定の処理表の処理がなければ(ステップS101:No)、セキュアOS部700とモニタ部500が利用するメモリ領域のノンセキュアOS部600からの読み書きの禁止設定を行うとともに、割り込み入力先をOSに設定して(ステップS107)、メモリ保護設定の処理を終了する。
続いて図8のフローチャートに示されるメモリアクセス検出時のフローについて述べる。図7のフローに示されるメモリ保護が行われた領域に対してノンセキュアOS部600からのアクセスがあった場合に図8の処理が実行される。ノンセキュアデバイスアクセス部601からペリフェラル部400に対するアクセス禁止の領域へのデバイスアクセスが発生した場合を想定している(ステップS201)。この場合、メモリ保護部201はメモリ保護の設定に違反するアクセスであることを検知し、トラップ部501を呼び出す(ステップS202)。トラップ部501は命令解析部502を呼び出し、命令解析部502はアクセス禁止領域へのアクセスを行った命令の仮想アドレスを取得する(ステップS203)。さらに命令解析部502はその仮想アドレスをアドレス変換部503に渡し、アドレス変換部503は物理アドレスへの変換を行うために、ノンセキュアOSページテーブルアドレスレジスタの値を参照する(ステップS204)。アドレス変換部503はノンセキュアOSページテーブルアドレスレジスタの値を元に、ノンセキュアOSのページテーブルを参照し、アクセス禁止領域へのアクセスを行った命令の仮想アドレスから物理アドレスへの変換を行う(ステップS205)。さらに、命令解析部502はその物理アドレスが指す先を参照し、アクセス禁止領域へのアクセスを行った命令を取得する(ステップS206)。命令解析部502はその命令がペリフェラルに対するライト命令かリード命令かを判定し(ステップS207)、ライトの場合(ステップS207:ライト)には書き込もうとしたデータを取得し(ステップS208)、ステップS09に進む。リードの場合(ステップS207:リード)には直接ステップS209に進む。
さらに、命令解析部502は命令の解析結果からペリフェラルのアクセス先の仮想アドレスを取得する(ステップS209)。さらに、命令解析部502はその仮想アドレスをアドレス変換部503に渡して、アドレス変換部503はページテーブルの参照を行い、物理アドレスに変換する(ステップS210)。
続いて、トラップ部501はOS切替え部504を呼び出し、OS切替え部504はコンテキスト保存復帰部505に対してノンセキュアOSのコンテキスト保存を要求する。(ステップS211)。またOS切替え部504は、セキュアOSのコンテキスト復帰を要求する(ステップS212)。その後、OS切替え部504はエントリ部701に命令解析部502が解析したリード・ライト種別、ペリフェラルのアクセス先物理アドレス、書き込みの場合は書き込もうとしたデータを渡す(ステップS213)。
エントリ部701は処理判定部702を呼び出し、処理判定部702は処理表管理部703から処理表を受け取り、エントリ部701から受け取ったリード・ライト種別、アクセス先物理アドレスに合致する処理表の項目を探し、取り出す(ステップS214)。処理判定部702は取り出した処理のリード・ライト種別を判定する(ステップS215)。取り出した処理のリード・ライト種別がリードの場合(ステップS215:リード)には、セキュアデバイスアクセス部706は受け取ったアクセス先物理アドレスが指す先のペリフェラル部400からデータを取得し(ステップS216)、さらに処理表の合致する項目のフィルタ種類に応じたフィルタ処理を実行する(ステップS218)。フィルタ種類が破棄の場合にはステップS216では何もせずにステップS218ではダミーのデータを生成する。
取り出した処理のリード・ライト種別がライトの場合(ステップS215:ライト)には、処理実行部705がフィルタ種類に応じたフィルタ処理を書き込もうとしたデータに対して実行した後(ステップS217)、セキュアデバイスアクセス部706は受け取ったアクセス先物理アドレスが指す先のペリフェラル部400にフィルタ処理を掛けたデータを書き込む(ステップS219)。フィルタ種類が破棄の場合にはステップS217およびステップS219では何もしない。
さらにモニタ部500のOS切替え部504に対して完了通知を読み込みの場合には読み込んだデータにフィルタを掛けたデータとともに送信する(ステップS220)。その後、OS切替え部504はノンセキュアOSのコンテキスト保存をコンテキスト保存復帰部505に命令し(ステップS221)、その後セキュアOSのコンテキスト復帰をコンテキスト保存復帰部505に対して命令する(ステップS222)。さらに、OS切替え部504は、アクセス種別を判定する(ステップS223)。アクセス種別がリードの場合には(ステップS223:リード)、エントリ部701から渡された読み込んだデータを命令解析部502が解析した保存先のレジスタに対して書き込んでステップS225に移る。アクセス種別がライトの場合(ステップS223:ライト)には直接ステップS225に移る。さらに、アクセス禁止領域へのデバイスアクセスを行った命令の次の命令に戻り(ステップS225)、処理は終了となる。
図9は図8のステップS208の書き込みデータ取得(a)の処理を詳細に示したフローである。書き込み命令は命令自体に書き込むデータが含まれる即値命令と、レジスタに格納されたデータを書き込む命令の二種類がある。このため、書き込むデータを取得するにはその二つを区別する必要があり、そのフローについて説明する。
書き込みデータ取得時に、まず命令解析部502はその命令が即値命令かどうかを判定する(ステップS301)。即値命令の場合には(ステップS301:Yes)、即値が命令内に含まれるため、命令解析部502は即値を取得し(ステップS302)、処理が完了となる。
即値命令でない場合には(ステップS301:No)、書き込むデータが格納されたレジスタを取得する(ステップS303)。さらに、命令解析部502はアクセスを行ったモードに切替え(ステップS304)、対象のレジスタデータを取得する(ステップS305)。その後、命令解析部502はモードを、モード切替を行う前のモードに戻す(ステップS306)。ここでモード切替を行う理由は、プロセッサによってはレジスタがバンクされるためである。
図10は図8の読み込みデータ取得(b)の処理を詳細に示したフローである。まず、OS切替え部504は読み込み先の対象レジスタを取得し(ステップS401)、アクセスを行ったモードにモードを切替える(ステップS402)。さらにOS切替え部504は、レジスタにエントリ部701から受け取ったデータを保存し(ステップS403)、モードを切替える前のモードに戻して(ステップS404)、処理が完了となる。例えば図11に示すように、ノンセキュアOSからr0に対して読み込みを行う命令をアクセス検出が行われる領域に対して発行した場合、ノンセキュアOS側に戻る際にはノンセキュアOS側のr0にはセキュアOS側でペリフェラルから読み込んだ値にフィルタを掛けた値が格納される。
図3の構成では処理表は固定であることを想定していた。例えばブートローダ起動時にはフィルタを掛けず、OS起動が始まったらフィルタを掛けるといったことも考えられるが、処理表が固定の場合には困難である。図12は動的な処理表の変更に対応する図3の構成の変形例である。
図12はモニタ部500aに処理設定部507とイベント検知部506を備える点が異なる。イベント検知部506は、OS起動などのイベントを検知し、処理設定部507にフィルタ設定の変更を命令する機能を有する。処理設定部507はセキュアOS部700の処理表管理部703が記憶する処理表を更新する機能を有する。処理表管理部703に対して物理開始アドレス、サイズ、方向、フィルタ内容を与え、処理表の項目追加、削除を依頼する。
図13は処理表の動的変更時の処理フローである。イベント検知部506はイベント発生時に、処理設定部507を呼び出す。処理設定部507は変更する内容を処理表管理部703に対して通知する。処理表管理部703は、追加命令なのか削除命令なのかを判定し(ステップS610)、削除命令の場合には(ステップS610:削除)、記憶する処理表から指定された項目を削除する(ステップS608)。そして処理表管理部703は、メモリ保護設定をメモリ保護部201から削除し(ステップS609)、処理終了となる。
一方、追加設定の場合には(ステップS610:追加)、処理表管理部703は、処理表に項目を追加した後(ステップS602)、アドレス・サイズ・方向情報を受け取る(ステップS603)。そして、処理表管理部703は、処理の方向情報を判定する(ステップS604)。方向情報がリードであれば(ステップS604:リード)、メモリ保護設定部704はメモリ保護部201に対してaddr以上、(addr+size)未満の領域のノンセキュアOS領域からのリードを禁止する(ステップS605)。
方向情報がライトであれば(ステップS604:ライト)、メモリ保護設定部704はメモリ保護部201に対してaddr以上、(addr+size)未満の領域のノンセキュアOS領域からのライトを禁止する(ステップS606)。方向情報がリード・ライトであれば(ステップS604:リード・ライト)、メモリ保護設定部704はメモリ保護部201に対してaddr以上、(addr+size)未満の領域のノンセキュアOS領域からのリード・ライトを禁止する(ステップS607)。以上で処理は完了となる。変形例においても起動時のフローは図7と、メモリアクセス検出時のフローは図8と同等である。
本実施形態の情報処理装置1にあっては、ノンセキュアOS部600のノンセキュアデバイスアクセス部601が意識することなく、ペリフェラルアクセス内容を変更することができる。例えばペリフェラルとしてネットワークインタフェースを想定した場合には、ネットワーク通信を透過的に暗号化することや、ストレージを想定した場合にはストレージへの入出力を透過的に暗号化することが可能となる。また、ペリフェラルアクセスを異種のペリフェラルへのアクセスに変換することも可能である。例えばローカルストレージへのアクセスをトラップし、ネットワーク上のストレージへのアクセスに変換したり、タッチパッドによるソフトウェアキーボードの入出力をハードウェアキーボードとして仮想化したりといったことも可能となる。また、メモリ保護機能によりノンセキュアOS部600からはセキュアOS部700の処理の改竄が不可能であるため、安全にデータの暗号化などのフィルタを行うことができる。
(第2の実施形態:割り込み有り)
第1の実施形態ではペリフェラルからの割り込みについては考慮しておらず、データのリードやライトを契機としてデータに対してフィルタを掛けることを前提とした構成となっていた。実際の計算機ではペリフェラルからのデータ入力通知などで割り込みを使うことも多いため、第2の実施形態では割り込みを契機としてフィルタを掛けることのできる構成について詳述する。
図14は第2の実施形態における情報処理装置1の構成を示す一例である。図14は図3とノンセキュアOS部600aに割り込みハンドラ部を備える点、セキュアOS部700aにセキュア割り込みハンドラ部707を備える点、ハードウェア部に割り込み制御部202を備える点、およびトラップ部501aとOS切替え部504a、処理判定部702a、処理表管理部703a、処理実行部705aが有する機能が異なる。
割り込み制御部202はペリフェラルに関する割り込み要求があった際に、実行中の処理を中断してトラップ部501aを呼び出す機能を有する。トラップ部501aは実行中だった処理を割り込み処理の完了後に再開するために、中断した処理の戻り先や処理の実行状態を保存する機能を有する。割り込み要求の例としては、ペリフェラルがネットワークインタフェースの場合にはパケットの到着通知や、ストレージの場合にはディスク読み込み完了通知などがある。
トラップ部501aは第1の実施形態で述べた機能に加えて、割り込み制御部202から呼び出された場合にOS切替え部504aを呼び出す機能を有する。トラップ部501aはOS切替え部504aを呼び出す際に、割り込み制御部202からの呼び出しであることを通知する。
OS切替え部504aは第1の実施形態で述べた機能に加えて、トラップ部501aから呼び出された際にトラップ部501aの呼び出し元が割り込み制御部202の場合に、セキュア割り込みハンドラ部707を呼び出す機能を有する。その際に、実行を中断したOSがノンセキュアOS、セキュアOSのどちらであるかの情報を保存する。実行を中断したOSがノンセキュアOSの場合には、OS切替え部504aはコンテキスト保存復帰部505に対してノンセキュアOSのコンテキストの保存とセキュアOSのコンテキストの復帰を命令する。コンテキストの保存復帰後、OS切替え部504aはセキュアOS部700aのセキュア割り込みハンドラ部707を呼び出す。また、セキュア割り込みハンドラ部707からOS切替え部504aが呼び出された場合には、OS切替え部504aはコンテキスト保存復帰部505に対してセキュアOSのコンテキストの保存とノンセキュアOSのコンテキストの復帰を命令し、さらにノンセキュア割り込みハンドラ部707を呼び出す機能を有する。
セキュア割り込みハンドラ部707はOS切替え部504aから呼び出され、処理判定部702を呼び出す機能を有する。この際に割り込みの種別を判定し、処理判定部702aに対して割り込みの種別を通知する。割り込みの種別とは、割り込みが発生したペリフェラルと割り込みの要因を区別するための情報で、例えばディスク読み込みの完了や、タイマー割り込みなどがある。さらに、セキュア割り込みハンドラ部707は割り込みフィルタ処理の完了後に処理判定部702aから呼び出され、OS切替え部504aを呼び出す機能を有する。
処理表管理部703aは、図5に示される処理表の保存、取得を行う第1の実施形態で述べた機能に加えて、図15に示される割り込み処理表の保存、取得を行う機能を有する。割り込み処理表には割り込みの種別と、割り込みが発生した際にかけるフィルタの種類が記載される。例えば、割り込み種別がディスク読み込み完了割り込み、フィルタ種類が記録の場合には、ディスク割り込みが完了したことを記録しておくことを意味する。
処理判定部702aは第1の実施形態で述べた機能に加えて、セキュア割り込みハンドラ部707から割り込みの種別を受け取り、掛けるフィルタを判定する機能を有する。このために、処理表管理部703aから割り込み処理表を取得し、割り込み処理表の割り込み種別がセキュア割り込みハンドラ部707から受け取った割り込み種別と一致する項目を探す。一致する項目が見つかった場合には処理実行部705aに対応するフィルタ種別と割り込み種別情報を渡してフィルタ処理を実行する。フィルタ処理完了後、セキュア割り込みハンドラ部707を呼び出す。一致する項目が見つからない場合には、フィルタ処理は行わずに再度セキュア割り込みハンドラ部707を呼び出す。すなわち一致する項目が見つからない場合には、割り込みを何もせずに通過させる。
処理実行部705aは第1の実施形態で述べた機能に加えて、処理判定部702aからフィルタ種別と割り込み種別情報を受け取り、対応するフィルタをかける機能を有する。例えばフィルタ種別として記録が指定された場合には割り込みの発生を記録媒体に記録する処理を行う。
ノンセキュア割り込みハンドラ部602はOS切替え部504aから呼び出され、割り込み処理を行う機能を有する。
図16は第2の実施形態における割り込み発生時のフローの一例である。割り込みが発生した場合に(ステップS701)、割り込み制御部202は実行中の処理を中断し中断した処理の戻り先や処理の実行状態を保存したのち、トラップ部501aを呼び出す(ステップS702)。トラップ部501aはOS切替え部504を呼び出し、OS切替え部504は実行を中断したOSの情報を保存する(ステップS703)。OS切替え部504は、中断したOSがノンセキュアOS部600であるか否かを判定する(ステップS704)。中断したOSがノンセキュアOS部600であると判定された場合(ステップS704:Yes)、コンテキスト保存復帰部505はノンセキュアOSのコンテキストを保存し(ステップS705)、セキュアOSのコンテキストを復帰する(ステップS706)。コンテキスト復帰後、セキュア割り込みハンドラ部707を呼び出す(ステップS707)。
一方、中断したOSがセキュアOS部700であれば、直接セキュアOS部700を呼び出す(ステップS707)。続いてセキュア割り込みハンドラ部707は割り込み種別を判定し(ステップS708)、処理判定部702aを呼び出す。処理判定部702aは処理表管理部703aから割り込み処理表を取得し、処理表からセキュア割り込みハンドラ部707からステップS708で判定して受け取った割り込み種別が一致する処理があるかを判定して、一致した項目を取り出す(ステップS709)。一致する項目が見つかった場合には(ステップS710:Yes)、処理判定部702aは割り込み種別と対応するフィルタ種別を渡して処理実行部705aを呼び出し、処理実行部705aは対応するフィルタ処理を実行する(ステップS711)。その後ステップS712に進む。
一致する項目が見つからなかった場合には(ステップS710:No)、ステップS712に進む。さらにセキュア割り込みハンドラ部707はモニタ部500bのOS切替え部504aを呼び出した後、OS切替え部504aはコンテキスト保存復帰部505を呼び出し、コンテキスト保存復帰部505はセキュアOSのコンテキストを保存する(ステップS713)。さらにコンテキスト保存復帰部505はノンセキュアOSのコンテキストを復帰し、OS切替え部504はノンセキュア割り込みハンドラ部707を呼び出す(ステップS714)。ノンセキュア割り込みハンドラで割り込み処理を行い、処理は完了となる(ステップS715)。
第2の実施形態におけるメモリアクセス検出時のフローは図8と同等である。また、起動時のフローについてもほぼ図7と同等であるが、ステップS107の割り込み入力先設定において割り込みの入力先をOS部ではなく、モニタ部500に設定する点のみが異なる。
以上により、データのリード・ライトを契機とするだけでなく、割り込みを契機としてフィルタ処理を行えるようになる。例えば、ディスク入力完了の割り込みを契機として入力したデータを一括して復号することや、パケット到着割り込みを監視して、通信状況を監視するといったことがノンセキュアOS部600の変更無しに、本実施形態により可能となる。またノンセキュアOS部600からはセキュアOS部700の内容を改竄することが不可能であるため、ノンセキュアOS部600の処理が完了された場合にもノンセキュアOS側の完全性を保証しつつ、割り込みの監視などが可能となる。
(第3の実施形態)
第1の実施形態においては、ペリフェラルアクセスに対して単純なフィルタをかけることを想定していた。ネットワーク通信に対するフィルタ処理の中でも特に自動的に通信をVPN(Virtual Private Network)を介した通信に変換(カプセル化)するような場合は、ペリフェラルに対するデータにフィルタをかけるセキュアOS部700c側の構成が複雑になる。例えばイーサネット(登録商標)によるネットワークを例として考えると、IPパケットをVPNによりUDPレイヤでカプセル化する場合には、ノンセキュアOS側で書き込んだパケットを解析し、MACヘッダ、IPヘッダ、UDPヘッダ、UDPボディに分割する。このとき本来の通信先ではなく、VPNサーバに対して通信を行う必要があるため、VPNサーバに対する通信のMACヘッダ、IPヘッダ、UDPヘッダを作成し、その後に元の、すなわち本来の通信先に対応するIPヘッダ、UDPヘッダ、UDPボディを暗号化したものを付加する必要がある。
第3の実施形態では通信を自動的にVPNを介した通信に変換する構成について構成の一例である図17を用いて詳説する。図17は図3とプロトコル解析部710、カプセル処理部709、暗号処理部708を備える点と、処理実行部705bの内部構成が異なる。
プロトコル解析部710は、リード・ライトを行うアクセス先のペリフェラルの物理アドレスとリード・ライト種別と、リード・ライト種別がライトの場合にはライト要求があったデータを受け取る。プロトコル解析部710はアクセス先の物理アドレスからパケット内の位置を算出する。例えば、ネットワークデバイスの送信バッファが物理アドレス0x10000000から始まる場合、アクセス先が0x10000100であれば、パケット内での位置は0x100となる。さらに、カプセル処理部709を呼出し、リード時にはカプセル化されたデータを渡してカプセル化除去、ライト時にはカプセル化したいデータを渡してカプセル化を行う機能を有する。例えば先述のUDPによるVPNの例では、MACヘッダ以降のパケット全体(IPヘッダ、UDPヘッダ、UDPボディ)を渡す。さらに、カプセル化されたパケット内での位置ではなく、カプセル除去されたパケット内の位置に対応するデータの読み書きを行う機能を有する。
カプセル処理部709はカプセル化されたデータのカプセル化除去、ライト時にはカプセル化されていないデータのカプセル化を行う機能を有する。カプセル化はまず、暗号処理部708を呼出しデータの暗号化を行う。その後、ヘッダとしてVPNサーバに対する通信のヘッダを付与する。例えば、先述の例ではMACヘッダ、IPヘッダおよびUDPヘッダを付与する。一方カプセル化除去では、VPNサーバからの通信に対応するヘッダを除去し、暗号化処理部を呼出し、データの復号化を行う。さらに、カプセル処理部709はUDPパケットのヘッダを書き換える機能を有する。これは実際に、VPNで通信を行うのが、VPNサーバであるため、実際のパケットにはVPNサーバのアドレスを書き込んでおかなければならないためである。
暗号処理部708はカプセル処理部709から呼び出され、自身が記憶する鍵を用いてデータの暗号化、復号化を行う機能を有する。暗号処理部708からは暗号・復号の種別、暗号化もしくは複合化したいデータを受け取り、暗号化もしくは複合化したデータを返す。暗号化アルゴリズムとしてはAES、DESなど一般に知られたアルゴリズムを利用すればよい。
処理実行部705bはプロトコル解析部710に対してアクセス先物理アドレス、リード・ライトの種別、ライトの場合にはライトを行うデータを渡して、パケット送受信を要求する機能を有する。
図18は第3の実施形態における処理表の一例である。送信、受信バッファがそれぞれあり、送信バッファはライト制限、受信バッファはリード制限が行われ、バッファの読み書きをトラップすることが出来る。その際に、送信バッファのデータは暗号化とカプセル化が実施され、受信バッファのデータは復号化とカプセル化解除が行われる。なお今回はリード、ライトどちらか片方を制限しているが、両方を制限しても良い。
図19は第3の実施形態におけるフィルタ処理のフローを示した例である。フィルタ処理のみについて説明する。図8の点線部分が対応し、他の処理に関しては図8と同等である。まずフィルタ処理が開始すると、処理実行部705bはプロトコル解析部710を呼出し、プロトコル解析部710は与えられた物理アドレスからパケット内の位置を計算する(ステップS801)。さらにプロトコル解析部710は命令種別がリード・ライト命令のどちらであるかを判定する(ステップS802)。リード命令の場合には(ステップS802:リード)、プロトコル解析部710は読み込みバッファからパケットを取り出し(ステップS803)、カプセル処理部709に渡す。カプセル処理部709はVPNサーバに対する通信のヘッダ部分を除去(カプセル化除去)する(ステップS804)。さらに暗号処理部708はデータの復号を行う(ステップS805)。さらにカプセル処理部709はヘッダを実際の通信元に書き換え(ステップS806)、リードするデータを決定して(ステップS807)、処理完了となる。
一方ライト命令の場合には(ステップS802:ライト)、プロトコル解析部710は書き込むデータがパケットの終端かどうかを判定する(ステップS808)。パケットの終端でない場合(ステップS808:No)、カプセル処理部709は、データを保存しておき(ステップS813)、処理終了とする。
一方、終端であれば(ステップS808:Yes)、カプセル化を実行するため、まずヘッダをカプセル処理部709はVPNサーバのものに書き換える(ステップS809)。さらに暗号化を暗号処理部708が行い(ステップS810)、カプセル処理部709はVPNサーバに対して通信するためのヘッダを付与して、カプセル化を行う(ステップS811)。さらに、カプセル処理部709は送信バッファへの実際の書き込み(データライト)を行い(ステップS812)、処理完了となる。
(第4の実施形態)
第4の実施形態はストレージを暗号化するための構成である。図20は第4の実施形態における情報処理装置1の内部構成の一例である。以降では図20を用いて第4の実施形態の情報処理装置1について説明する。図20の構成は図3の構成と位置解析部712と暗号処理部711を設ける点、処理実行部705cが有する機能が異なる。
位置解析部712はストレージに対する命令レジスタへのアクセス時にストレージアクセス命令を解析し、アクセス先のストレージ上での位置を得る機能を有する。ストレージアクセス命令の内容は処理実行部705cから書き込むデータとして与えられる。さらに、位置解析部712はアクセス命令のリード・ライト種別を解析し、リード命令であれば読み込んだデータを復号化、ライト命令であれば書き込むデータを暗号化するために暗号処理部708に暗号化もしくは復号化したいデータおよび、ディスク上での位置、暗号化・復号化の種別、機能を有する。
暗号処理部711は位置解析部712からストレージ上での位置、データと暗号化・復号化の種別を与えられて呼び出され、与えられたデータの暗号化、復号化する機能を有する。なお、ストレージ上の位置で暗号化、復号化に用いるパラメータを変えてもよい。
処理実行部705cはストレージに対する命令レジスタへのアクセス時に位置解析部712に対して命令解析を要求する機能を有する。アクセス先物理アドレス、書き込むデータを渡して呼び出す。処理表管理部703が記憶する表は図21のようになる。ストレージに対する命令を格納するレジスタの書き込みを監視する。
図22は第4の実施形態におけるフィルタ処理の詳細フローである。図22は図8の点線部分を抜き出したものであり、それ以外の処理は図8と同等である。まず、位置解析部712はアクセス命令がリード・ライトどちらであるかを判定する(ステップS902)。リードの場合(ステップS902:リード)、位置解析部712はアクセス先ストレージ上での位置を決定し、復号処理部は復号用パラメータを決定する(ステップS903)。さらに、処理実行部705cはセキュアデバイスアクセス部706を介してデータを読み込み(ステップS904)、データを復号して(ステップS905)、処理完了となる。
一方、ライトの場合(ステップS902:ライト)、位置解析部712はアクセス先ストレージ上での位置を決定し、暗号処理部708は復号用パラメータを決定する(ステップS908)。さらに、暗号処理部708は暗号化し(ステップS909)、処理実行部705はセキュアデバイスアクセス部706を介してデータを書き込み(ステップS910)、処理完了となる。
(第5の実施形態)
第4の実施形態までは単一のペリフェラルを用いて暗号化処理などのフィルタ処理を行うことを前提としていた。ペリフェラルアクセスを別種のペリフェラルアクセスに変換するような場面も考えられる。例えば、ローカルストレージアクセスをネットワーク上のサーバに対するアクセスに変換すれば、ノンセキュアOS部600はローカルのストレージにアクセスする通常のデバイスドライバだけを有すれば、ネットワーク上のサーバ上のストレージに対する透過的なアクセスが可能になる。第5の実施形態によれば、ノンセキュアOS部600に対してネットワーク上のサーバのストレージをローカルのストレージと見せかけることが可能となる。なお、本実施形態はストレージとネットワークアクセスを変換する例について述べているがこの限りではなく、変換元ペリフェラルへのアクセス要求を分析し、変換先のペリフェラルへのアクセス要求に変換する本構成と同等の構成を採ることによりペリフェラルアクセスを別種のペリフェラルアクセスに変換することが可能となる。
第5の実施形態における情報処理装置1の内部構成の一例を図23に示し、以降は本図に沿って第5の実施形態について説明する。図23は図3とパケット生成・解析部714、位置解析部713を備える点が異なる。また、処理実行部705dが有する機能が異なる。
位置解析部713はストレージに対する命令レジスタへのアクセス時に処理実行部705から呼び出され、ストレージアクセス命令を解析し、アクセス先のストレージ上での位置を得る機能を有する。ストレージアクセス命令の内容は処理実行部705から書き込むデータとして与えられる。さらに、位置解析部712はアクセス命令のリード・ライト種別を解析する機能を有する。分析したアクセス命令の種別とストレージ上での位置を処理実行部705dに返す。
パケット生成・解析部714はネットワークに送出するパケットの生成やネットワークから受信したパケットの解析を行う機能を有する。パケット生成・解析部714は処理実行部705dから呼び出される際に命令種別を受け取る。この命令種別にはサーバ上のデータのリード要求パケットの生成、サーバ上のデータのライト要求パケットの生成、サーバ上から受信したリード要求に対する返答パケットの分析の最低三種類がある。命令がサーバ上のデータのリード要求パケットの生成の場合には、パケット生成・解析部714はパケットの生成時にストレージ内での位置をサーバ上での位置に変換し、リード要求パケットを生成する。このパケットにサーバ上での位置情報が含まれる。また、サーバ上のデータのライト要求パケットの場合には、ライト要求パケットを生成するが、パケットにはライト命令、ライトするデータのサーバ上での位置情報、ライトするデータが含まれる。サーバ上から受信したリード要求に対する返答パケットの分析時にはパケットを受け取り、リードしたサーバ上のデータの分析を行う。いずれの命令もパケットの生成結果や分析結果は、処理実行部705dに渡す。
処理実行部705dはストレージアクセス要求時にまず位置解析部713を呼出し、ストレージに対する命令の解析を行う。その結果としてストレージアクセス命令のリード・ライトの種別とストレージ内でのデータの位置を受け取る。リード要求の場合には、位置解析部713はパケット生成・解析部714を呼出し、サーバ上でのデータリード用パケットの生成を行う。さらに、受け取ったパケットをセキュアデバイスアクセス部706に渡してネットワークに送出する。その後、サーバからリード要求に対する返答パケットを受け取り、パケット生成・解析部714に解析命令とともに渡す。その結果としてストレージデータを受け取り、処理判定部702に返す。一方、ライト要求の場合には、パケット生成・解析部714に書き込むデータと位置情報を渡して、サーバ上でのデータライト用パケットの生成を行う。その結果としてパケットを受け取りセキュアデバイスアクセス部706に渡してネットワークにライト要求を送出する機能を有する。サーバ上のデータのリード・ライト要求に用いるプロトコルとしては、WebDAVやFTP、WebSocketなど一般に知られたプロトコルを利用すればよい。
ストレージの命令格納用レジスタアクセスを監視する必要があるため、処理表は図24のようになる。図25は第5の実施形態におけるフィルタ処理の詳細フローである。図22は図8の点線部分を抜き出したものであり、それ以外の処理は図8と同等である。
まず、処理実行部705dは位置解析部713を呼出し、位置解析部713はアクセス要求のあった命令を解析し、リード・ライトの種別、ストレージ上での位置を得る(ステップS1001)。そして、位置解析部713は、処理の方向種別を判定する(ステップS1002)。リード・ライトの種別がリードの場合には(ステップS1002:リード)、処理実行部705dはパケット生成・解析部714にデータリードパケットの生成を命令し、パケット生成・解析部714はサーバ上での位置を含むデータリード要求のパケットを生成する(ステップS1003)。さらに、処理実行部705は生成したパケットを受け取り、セキュアデバイスアクセス部706を介してネットワークに送出する(ステップS1004)。さらにセキュアデバイスアクセス部706は送出したパケットの返答として、リード結果を受け取り、処理実行部705はパケット生成・解析部714を呼び出してパケットの解析を行い、リードしたデータを受け取る(ステップS1005)。一方、リード・ライト種別がライトの場合には(ステップS1002:ライト)、処理実行部705dはパケット生成・解析部714にデータライトパケットの生成を命令し、パケット生成・解析部714はサーバ上での位置とライトするデータを含むデータライト要求のパケットを生成する(ステップS1006)。さらに、処理実行部705dは生成したパケットを受け取り、セキュアデバイスアクセス部706を介してネットワークに送出する(ステップS1007)。
以上の実施形態により、ペリフェラルアクセスを別種のペリフェラルへのアクセスに変換することが可能となる。
(第6の実施形態)
第1の実施形態ではノンセキュアOS部600のノンセキュアデバイスアクセス部601の実装形態であるデバイスドライバがフィルタ機構の存在を意識せずに実装できることを目的としていた。すなわち、モニタ部500やセキュアOS部700がない場合にはノンセキュアデバイスアクセス部601はそのままペリフェラル部400のデバイスドライバとして利用できる。これはノンセキュアOS部600のノンセキュアデバイスアクセス部601を透過的に実装することができるという利点がある一方で、モニタ部500やセキュアOS部700の機能が肥大化するという欠点がある。そこでノンセキュアデバイスアクセス部601がペリフェラルへのアクセス時にモニタ部500を明示的に呼び出すようにすると、ペリフェラルアクセスをトラップする必要がなくなるため、モニタ部500の機能を簡略化できる。第6の実施形態は、ノンセキュアデバイスアクセス部601がモニタ部500を明示的に呼び出し、フィルタを掛ける一構成例である。以降第56の実施形態における情報処理装置1の構成を示す図26を用いて説明する。
図26に示す第6の実施形態における情報処理装置1は図3とノンセキュアOS部600bがモニタ呼び出し部603を備える点とノンセキュアデバイスアクセス部601bの機能、モニタ部500のOS切替え部504c、トラップ部501c、命令解析部502cの機能が異なる。
モニタ呼び出し部603はノンセキュアデバイスアクセス部601bから呼び出され、OS切替え部504cを呼び出す機能を有する。ノンセキュアデバイスアクセス部601bからはアクセス先のペリフェラルの仮想アドレス、リード・ライトの種別、ライトの場合には書き込む値が渡される。OS切替え部504cにはアクセス先のペリフェラルの仮想アドレス、リード・ライトの種別、ライトの場合には書き込む値が渡し、その結果としてOS切替え部504cからはリードの場合には読み込んだ値が渡され、その値をノンセキュアデバイスアクセス部601bに返す。
ノンセキュアデバイスアクセス部601はペリフェラルへのアクセス時にモニタ呼び出し部603を呼び出す機能を有する。モニタ呼び出し部603に対してはペリフェラルの仮想アドレス、リード・ライトの種別、ライトの場合には書き込む値を渡し、その結果としてリードの場合には読み込んだ値が渡される。
OS切替え部504cは第1の実施形態ではトラップ部501c及びエントリ部701から呼び出されていたが、本実施形態ではエントリ部701及びモニタ呼び出し部603から呼び出される。モニタ呼び出し部603からは仮想アドレス、リード・ライトの種別、ライトの場合には書き込む値を渡され、命令解析部502cに渡す。さらに命令解析部502cからは解析結果として仮想アドレスに対応する物理アドレスとリード・ライトの種別、ライトの場合には書き込む値を渡される。さらに、コンテキスト保存復帰部505にノンセキュアOSのコンテキスト保存を命令した後、コンテキスト保存復帰部505にセキュアOSのコンテキスト復帰を命令する。その後、セキュアOS部700のエントリ部701を呼び出す。
トラップ部501cはメモリ保護部201から呼び出された場合にノンセキュアOS部600に対してエラーを返す機能を有する。このためにノンセキュアOSのベクタテーブルのアドレスを取得後、データアボートを処理するハンドラを決定し、ノンセキュアOSのデータアボートハンドラにジャンプする。これはノンセキュアOS部600からの直接のペリフェラル呼び出しが本実施形態では許されないためである。本実施形態では、アボートハンドラにジャンプするが、単にエラーを出力するのみでも良い。
命令解析部502cは仮想アドレス、リード・ライトの種別、ライトの場合には書き込む値を渡され、アドレス変換部503に対して渡されたペリフェラルの仮想アドレスを渡して物理メモリへの変換を命令する。さらにその結果としてアドレス変換部503から物理アドレスを受け取り、OS切替え部504cに返す機能を有する。
アドレス変換部503やセキュアOS部700の構成は第1の実施形態における構成と同等である。
図27は第6の実施形態におけるモニタ呼出し時の処理フローである。ペリフェラルにアクセスする際に、ノンセキュアデバイスアクセス部601はモニタ呼出し部に対してアクセス先データ仮想アドレス、命令のリード・ライト種別、書き込みの場合には書き込むデータを渡して、ペリフェラルへのアクセスを命令する(ステップS1101)。モニタ呼出し部603はOS切替え部504cにノンセキュアデバイスアクセス部601から受け取ったアクセス先データ仮想アドレス、命令のリード・ライト種別、書き込みの場合には書き込むデータを渡して呼び出す(ステップS1102)。
OS切替え部504cは命令解析部502cに対してアクセス先データ仮想アドレス、命令のリード・ライト種別、書き込みの場合には書き込むデータを渡して解析を命令し、命令解析部502cは受け取ったアクセス先データ仮想アドレスをアドレス変換部503に渡す。アドレス変換部503はアクセス先の仮想アドレスを取得し(ステップS1103)、ノンセキュアOSページテーブルアドレスレジスタを参照し、ページテーブルのアドレスを特定したのち、そのページテーブルを参照して物理アドレスへの変換を行う(ステップS1104)。
さらに、OS切替え部504cはコンテキスト保存復帰部505を呼び出し、コンテキスト保存復帰部505はノンセキュアOSのコンテキストを保存する(ステップS1105)。その後、コンテキスト保存復帰部505はセキュアOSのコンテキストを復帰する(ステップS1106)。
その後、OS切替え部504cはエントリ部701にアクセス先データの物理アドレスと、リード・ライト種別、書き込みの場合は書き込むデータを渡す(ステップS1107)。以降のノンセキュアOSのコンテキスト復帰までステップS1108からS1116までの処理は、第1の実施形態におけるフローと同等である。すなわち、セキュアOS部700の構成は第1の実施形態と同等である。ノンセキュアOSのコンテキスト復帰後、OS切替え部504cはリード・ライト種別の判定を行い(ステップS1117)、ライト命令の場合(ステップS1117:ライト)にはモニタ呼び出し部603のモニタ呼び出し命令の次の命令に戻り(ステップS1119)、処理完了となる。一方リード命令の場合には(ステップS1117:リード)、モニタ呼び出し部603に読み込んだデータを渡してモニタ呼び出し命令の次の命令に戻り(ステップS1118)、処理完了となる。
図28は、第6の実施形態におけるアボート発生時の処理フローである。アクセスが禁止されたペリフェラルへのアクセス時には、メモリ保護部201がトラップ部501cを呼び出し、トラップ部501cはエラーを表示し(ステップS1201)、処理完了となる。図29はアボート発生時の処理の変形の例で、単にエラーを表示するのではなく、ノンセキュアOS部600bのアボートハンドラにジャンプする。そのために、まずトラップ部501cはノンセキュアベクタテーブルアドレスを取得し(ステップS1202)、データアボートハンドラのアドレスを決定する(ステップS1203)。さらにトラップ部501cは取得したアドレスにジャンプし、データアボートハンドラを呼び出す(ステップS1204)。
本構成ではモニタ部500のアドレス変換部503が仮想アドレスから物理アドレスへの変換を行っているが、ノンセキュアOS部600のモニタ呼び出し部603が変換を行っても良い。その場合にはアドレス変換部503は必須の構成ではなくなる。本構成のように、ノンセキュアデバイスアクセス部601がペリフェラルへのアクセス時にモニタ部500を明示的に呼び出すようにすると、ペリフェラルアクセスをトラップする必要がなくなるため、モニタ部500の機能を簡略化できる。
なお、この発明は上記した実施の形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を種々変形して具体化することができる。また、上記した実施の形態に開示されている複数の構成要素を適宜に組み合わせることにより、種々の発明を形成することができる。例えば、実施の形態に示される全構成要素から幾つかの構成要素を削除しても良いものである。さらに、異なる実施の形態に係る構成要素を適宜組み合わせても良いものである。
1 情報処理装置
100 ストレージ部
200 CPU部
201 メモリ保護部
202 割込み制御部
300 主記憶部
301 コンテキスト待避部
400 ペリフェラル部
500 モニタ部
501 トラップ部
502 命令解析部
503 アドレス変換部
504 OS切換え部
505 コンテキスト保存復帰部
506 イベント検知部
507 処理設定部
600 ノンセキュアOS部
601 ノンセキュアデバイスアクセス部
602 ノンセキュア割込みハンドラ部
603 モニタ呼び出し部
700 セキュアOS部
701 エントリ部
702 処理判定部
703 処理表管理部
704 メモリ保護設定部
705 処理実行部
706 セキュアデバイスアクセス部
707 セキュア割込みハンドラ部
708 暗号処理部
709 カプセル処理部
710 プロトコル解析部
711 暗号処理部
712 位置解析部
713 位置解析部
714 パケット生成・解析部

Claims (11)

  1. セキュアモードとノンセキュアモードとに選択的に切り替えられ、主記憶部に対してモードごとに独立したアクセス権を設定可能であり、それぞれのモードで所定のデータ処理を行なうプロセッサ部と、
    前記セキュアモードで動作するセキュアOS部と、
    前記ノンセキュアモードで動作するノンセキュアOS部と、
    前記セキュアOS部と、前記ノンセキュアOS部とを切り替えるモニタ部と、
    を備え、
    前記セキュアOS部は、
    所定の処理ごとに、アクセス対象のデータの前記主記憶部における物理アドレスと、リード、及びライトのアクセス種別とを対応付けて記憶する処理表管理部と、
    所定の処理ごとに、前記処理表管理部を参照して前記ノンセキュアOS部からのリード、及びライトのアクセスの少なくとも一方を禁止する前記主記憶部の保護アドレスを設定するメモリ保護設定部と、
    前記アクセス種別と、アクセス先の物理アドレスと、前記アクセス種別がライトの場合には書き込み対象のデータと、を受け取るとともに、前記処理表管理部から処理の一覧を取得し、実行される処理の種別を決定する処理判定部と、
    前記処理の種別と、前記アクセス種別と、アクセス先の物理アドレスと、前記アクセス種別がライトの場合には書き込み対象のデータと、を前記処理判定部から受け取り、前記アクセス種別がリードの場合にはセキュアデバイスアクセス部からデータを取得して、データに対して前記処理を実行する処理実行部と、
    前記アクセス種別と、アクセス先の物理アドレスと、前記アクセス種別がライトの場合にはライトするデータと、を受け取り、前記物理アドレスが示す周辺機器にアクセスするセキュアデバイスアクセス部と、
    前記モニタ部のOS切替え部から前記アクセス種別と、アクセス先の物理アドレスと、前記アクセス種別がライトの場合には書き込み対象のデータと、を受け取り、前記処理判定部を呼び出すとともに、前記アクセス種別がリードの場合には前記処理判定部から読み込んだデータと、を取得し、前記OS切替え部を呼び出すエントリ部と、
    を備え、
    前記モニタ部は、
    前記セキュアOS部と、前記ノンセキュアOS部との間でOSの切り替え制御を行うOS切替え部と、
    実行が拒否された命令の取得を行って、前記アクセス種別の判別を行うとともに、前記アクセス種別がリードの場合には読み込み先の仮想アドレスと、前記アクセス種別がライトの場合には書き込むデータと、を取得する命令解析部と、
    前記ノンセキュアOS部のページテーブルを参照して仮想アドレスから物理アドレスに変換するアドレス変換部と、
    を備えることを特徴とする情報処理装置。
  2. 前記処理表管理部が記憶する処理の設定を更新する処理設定部と、
    所定のイベントを検知し、前記イベントを検知した場合に、前記処理設定部に前記処理の設定の変更を命令するイベント検知部と、
    を備えることを特徴とする請求項1に記載の情報処理装置。
  3. 前記周辺機器に対する割込み要求があった際に、実行中の処理を中断する割り込み制御部と、
    前記実行中の処理が中断された際に、前記割り込み制御部によって呼び出され、中断した処理の実行状態を保存して、前記OS切替え部を呼び出すトラップ部と、
    OSが切替される際に呼び出され、前記処理判定部を呼び出すとともに、前記割込み要求が完了したあとに、前記OS切替え部を呼び出すセキュア割り込みハンドラ部と、
    を更に備え、
    前記処理判定部は、前記割込み要求にて指定された処理と一致する処理を前記処理表管理部から取得して、前記処理実行部へと渡し、
    前記処理実行部は、一致した処理を実行後、前記セキュア割り込みハンドラ部を呼び出す
    ことを特徴とする請求項1又は2に記載の情報処理装置。
  4. アクセス先の前記周辺機器の物理アドレスからパケット内の位置を算出するプロトコル解析部と、
    前記プロトコル解析部から呼び出され、データのカプセル化、及びカプセル化除去を行うカプセル処理部と、
    を更に備え、
    前記処理実行部は、前記プロトコル解析部に対してアクセス先の物理アドレスと、前記アクセス種別と、前記アクセス種別がライトの場合にはライトを行うデータと、を渡して、パケット送受信を要求する
    ことを特徴とする請求項1〜3のいずれか一項に記載の情報処理装置。
  5. ストレージに対する命令レジスタへのアクセス時にストレージアクセス命令を解析し、アクセス先のストレージ上での位置を得る位置解析部と、
    前記位置解析部からストレージ上での位置と、データと、暗号化、又は復号化の種別と、を与えられて呼び出され、与えられたデータの暗号化、又は復号化する暗号化処理部と、
    を更に備え、
    前記処理実行部は前記ストレージに対する命令レジスタへのアクセス時に前記位置解析部に対して命令解析を要求する
    ことを特徴とする請求項1〜4のいずれか一項に記載の情報処理装置。
  6. ストレージに対する命令レジスタへのアクセス時に前記処理実行部から呼び出され、ストレージアクセス命令を解析し、アクセス先のストレージ上での位置を得る位置解析部と、
    前記処理実行部から呼び出される際に命令種別を受け取り、前記命令種別に応じたネットワークに送出するパケットの生成、及びネットワークから受信したパケットの解析を行うパケット生成・解析部と
    を備えることを特徴とする請求項1〜4のいずれか一項に記載の情報処理装置。
  7. セキュアモードとノンセキュアモードとに選択的に切り替えられ、主記憶部に対してモードごとに独立したアクセス権を設定可能であり、それぞれのモードで所定のデータ処理を行なうプロセッサ部を備えるコンピュータを、
    前記セキュアモードで動作するセキュアOS部と、
    前記ノンセキュアモードで動作するノンセキュアOS部と、
    前記セキュアOS部と、前記ノンセキュアOS部とを切り替えるモニタ部として機能させ、
    前記セキュアOS部は、
    所定の処理ごとに、アクセス対象のデータの前記主記憶部における物理アドレス、及びリード、及びライトのアクセス種別を対応付けて記憶する処理表管理部と、
    所定の処理ごとに、前記処理表管理部を参照して前記ノンセキュアOS部からのリード、及びライトのアクセスの少なくとも一方を禁止する前記主記憶部の保護アドレスを設定するメモリ保護設定部と、
    前記アクセス種別とアクセス先の物理アドレス、前記アクセス種別がライトの場合には書き込み対象のデータを受け取るとともに、前記処理表管理部から処理の一覧を取得し、実行される処理を決定する処理判定部と、
    前記処理判定部から、前記処理の種別、前記アクセス種別、及びアクセス先の物理アドレス、前記アクセス種別がライトの場合には書き込み対象のデータを受け取り、リードの場合にはセキュアデバイスアクセス部からデータを取得して、データに対して前記処理を実行する処理実行部と、
    前記アクセス種別とアクセス先の物理アドレス、前記アクセス種別がライトの場合にはライトするデータを受け取り、前記物理アドレスが示す周辺機器にアクセスするセキュアデバイスアクセス部と、
    前記モニタ部のOS切替え部から前記アクセス種別と、アクセス先の物理アドレスと、前記アクセス種別がライトの場合にはライトデータと、を受け取り、前記処理判定部を呼び出すとともに、前記アクセス種別がリードの場合には前記処理判定部から読み込んだデータと、を取得し、前記OS切替え部を呼び出すエントリ部と、
    を備え、
    前記モニタ部は、
    前記セキュアOS部と、前記ノンセキュアOS部との間でOSの切り替え制御を行うOS切替え部と、
    命令の前記アクセス種別の判別、前記アクセス種別がリードの場合には読み込み先の物理アドレス、前記アクセス種別がライトの場合には書き込むデータを取得する命令解析部と、
    前記ノンセキュアOS部のページテーブルを参照して仮想アドレスから物理アドレスに変換するアドレス変換部と、を備える、
    プログラム。
  8. セキュアモードとノンセキュアモードとに選択的に切り替えられ、主記憶部に対してモードごとに独立したアクセス権を設定可能であり、それぞれのモードで所定のデータ処理を行なうプロセッサ部と、
    前記セキュアモードで動作するセキュアOS部と、
    前記ノンセキュアモードで動作するノンセキュアOS部と、
    前記セキュアOS部と、前記ノンセキュアOS部とを切り替えるモニタ部と、
    を備え、
    前記モニタ部は、
    前記セキュアOS部と、前記ノンセキュアOS部との間でOSの切り替え制御を行うOS切替え部と、
    実行が拒否された命令の取得を行って、読み込み先の仮想アドレスを取得する命令解析部と、
    前記ノンセキュアOS部のページテーブルを参照して前記仮想アドレスから物理アドレスに変換するアドレス変換部と、
    を備え、
    前記セキュアOS部は、
    前記ノンセキュアOS部からのリードを禁止する前記主記憶部の保護アドレスを設定するメモリ保護設定部と、
    前記物理アドレスが示す周辺機器にアクセスするセキュアデバイスアクセス部と、
    前記セキュアデバイスアクセス部から前記物理アドレスに対応するデータを取得して、データに対して所定の処理を実行する処理実行部と、
    前記アドレス変換部から読み込み先の前記物理アドレスを取得してセキュアデバイスアクセス部を呼び出すとともに、前記処理実行部から所定の処理を実行したデータを取得し、前記OS切替え部を呼び出すエントリ部と、
    を備えることを特徴とする情報処理装置。
  9. セキュアモードとノンセキュアモードとに選択的に切り替えられ、主記憶部に対してモードごとに独立したアクセス権を設定可能であり、それぞれのモードで所定のデータ処理を行なうプロセッサ部を備えるコンピュータを、
    前記セキュアモードで動作するセキュアOS部と、
    前記ノンセキュアモードで動作するノンセキュアOS部と、
    前記セキュアOS部と、前記ノンセキュアOS部とを切り替えるモニタ部として機能させ、
    前記モニタ部は、
    前記セキュアOS部と、前記ノンセキュアOS部との間でOSの切り替え制御を行うOS切替え部と、
    実行が拒否された命令の取得を行って、読み込み先の仮想アドレスを取得する命令解析部と、
    前記ノンセキュアOS部のページテーブルを参照して前記仮想アドレスから物理アドレスに変換するアドレス変換部と、
    を備え、
    前記セキュアOS部は、
    前記ノンセキュアOS部からのリードを禁止する前記主記憶部の保護アドレスを設定するメモリ保護設定部と、
    前記物理アドレスが示す周辺機器にアクセスするセキュアデバイスアクセス部と、
    前記セキュアデバイスアクセス部から前記物理アドレスに対応するデータを取得して、データに対して所定の処理を実行する処理実行部と、
    前記アドレス変換部から読み込み先の前記物理アドレスを取得してセキュアデバイスアクセス部を呼び出すとともに、前記処理実行部から所定の処理を実行したデータを取得し、前記OS切替え部を呼び出すエントリ部と、を備える
    プログラム。
  10. セキュアモードとノンセキュアモードとに選択的に切り替えられ、主記憶部に対してモードごとに独立したアクセス権を設定可能であり、それぞれのモードで所定のデータ処理を行なうプロセッサ部と、
    前記セキュアモードで動作するセキュアOS部と、
    前記ノンセキュアモードで動作するノンセキュアOS部と、
    前記セキュアOS部と、前記ノンセキュアOS部とを切り替えるモニタ部と、
    を備え、
    前記モニタ部は、
    前記セキュアOS部と、前記ノンセキュアOS部との間でOSの切り替え制御を行うOS切替え部と、
    実行が拒否された命令の取得を行って、書き込み先の仮想アドレスと、書き込み対象のデータと、を取得する命令解析部と、
    前記ノンセキュアOS部のページテーブルを参照して前記仮想アドレスから物理アドレスに変換するアドレス変換部と、
    を備え、
    前記セキュアOS部は、
    前記ノンセキュアOS部からのライトを禁止する前記主記憶部の保護アドレスを設定するメモリ保護設定部と、
    前記命令解析部から前記書き込み対象のデータを受け取り、データに対して所定の処理を実行する処理実行部と、
    前記物理アドレスと、前記処理実行部から所定の処理を実行したデータと、を受け取り、前記物理アドレスが示す周辺機器にアクセスするセキュアデバイスアクセス部と、
    前記アドレス変換部から書き込み先の前記物理アドレスを取得し、前記命令解析部から前記書き込み対象のデータを取得して前記処理実行部を呼び出すとともに、前記OS切替え部を呼び出すエントリ部と、
    を備えることを特徴とする情報処理装置。
  11. セキュアモードとノンセキュアモードとに選択的に切り替えられ、主記憶部に対してモードごとに独立したアクセス権を設定可能であり、それぞれのモードで所定のデータ処理を行なうプロセッサ部を備えるコンピュータを、
    前記セキュアモードで動作するセキュアOS部と、
    前記ノンセキュアモードで動作するノンセキュアOS部と、
    前記セキュアOS部と、前記ノンセキュアOS部とを切り替えるモニタ部として機能させ、
    前記モニタ部は、
    前記セキュアOS部と、前記ノンセキュアOS部との間でOSの切り替え制御を行うOS切替え部と、
    実行が拒否された命令の取得を行って、書き込み先の仮想アドレスと、書き込み対象のデータと、を取得する命令解析部と、
    前記ノンセキュアOS部のページテーブルを参照して前記仮想アドレスから物理アドレスに変換するアドレス変換部と、
    を備え、
    前記セキュアOS部は、
    前記ノンセキュアOS部からのライトを禁止する前記主記憶部の保護アドレスを設定するメモリ保護設定部と、
    前記命令解析部から前記書き込み対象のデータを受け取り、データに対して所定の処理を実行する処理実行部と、
    前記物理アドレスと、前記処理実行部から所定の処理を実行したデータと、を受け取り、前記物理アドレスが示す周辺機器にアクセスするセキュアデバイスアクセス部と、
    前記アドレス変換部から書き込み先の前記物理アドレスを取得し、前記命令解析部から前記書き込み対象のデータを取得して前記処理実行部を呼び出すとともに、前記OS切替え部を呼び出すエントリ部と、を備える
    プログラム。
JP2013196110A 2013-09-20 2013-09-20 情報処理装置、およびプログラム Active JP6117068B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2013196110A JP6117068B2 (ja) 2013-09-20 2013-09-20 情報処理装置、およびプログラム
US14/482,297 US9552307B2 (en) 2013-09-20 2014-09-10 Information processing apparatus and computer program product

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013196110A JP6117068B2 (ja) 2013-09-20 2013-09-20 情報処理装置、およびプログラム

Publications (2)

Publication Number Publication Date
JP2015060569A JP2015060569A (ja) 2015-03-30
JP6117068B2 true JP6117068B2 (ja) 2017-04-19

Family

ID=52692106

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013196110A Active JP6117068B2 (ja) 2013-09-20 2013-09-20 情報処理装置、およびプログラム

Country Status (2)

Country Link
US (1) US9552307B2 (ja)
JP (1) JP6117068B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10545885B2 (en) 2017-12-01 2020-01-28 Kabushiki Kaisha Toshiba Information processing device, information processing method, and computer program product
US11586779B2 (en) 2019-10-29 2023-02-21 Alibaba Group Holding Limited Embedded system and method

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9578664B1 (en) 2013-02-07 2017-02-21 Sprint Communications Company L.P. Trusted signaling in 3GPP interfaces in a network function virtualization wireless communication system
JP6189267B2 (ja) 2014-08-20 2017-08-30 株式会社東芝 情報処理装置、方法およびプログラム
US9565168B1 (en) * 2015-05-05 2017-02-07 Sprint Communications Company L.P. System and method of a trusted computing operation mode
GB2539199B (en) 2015-06-08 2018-05-23 Arm Ip Ltd Apparatus and methods for transitioning between a secure area and a less-secure area
US9686240B1 (en) 2015-07-07 2017-06-20 Sprint Communications Company L.P. IPv6 to IPv4 data packet migration in a trusted security zone
KR102411608B1 (ko) * 2015-07-27 2022-06-21 삼성전자주식회사 보안 네트워크 시스템 및 그 데이터 처리 방법
US9749294B1 (en) 2015-09-08 2017-08-29 Sprint Communications Company L.P. System and method of establishing trusted operability between networks in a network functions virtualization environment
KR102489918B1 (ko) * 2015-09-14 2023-01-20 삼성전자주식회사 전자 장치 및 이의 제어 방법
US10320786B2 (en) 2015-09-14 2019-06-11 Samsung Electronics Co., Ltd. Electronic apparatus and method for controlling the same
US10542115B1 (en) 2015-10-01 2020-01-21 Sprint Communications Company L.P. Securing communications in a network function virtualization (NFV) core network
US9811686B1 (en) 2015-10-09 2017-11-07 Sprint Communications Company L.P. Support systems interactions with virtual network functions in a trusted security zone
KR102429906B1 (ko) * 2015-10-13 2022-08-05 삼성전자주식회사 스토리지 장치, 상기 스토리지 장치와 통신하는 호스트 및 상기 스토리지 장치를 포함하는 전자 장치
CN105279021B (zh) * 2015-10-16 2019-05-07 华为技术有限公司 执行不可屏蔽中断的方法和装置
US9781016B1 (en) 2015-11-02 2017-10-03 Sprint Communications Company L.P. Dynamic addition of network function services
KR20170105353A (ko) * 2016-03-09 2017-09-19 삼성전자주식회사 전자장치 및 그 제어방법
US9904485B2 (en) * 2016-03-31 2018-02-27 Intel Corporation Secure memory controller
JP6615726B2 (ja) 2016-09-16 2019-12-04 株式会社東芝 情報処理装置、情報処理方法及びプログラム
US10250498B1 (en) 2016-10-03 2019-04-02 Sprint Communications Company L.P. Session aggregator brokering of data stream communication
JP2018106455A (ja) * 2016-12-27 2018-07-05 株式会社ケイエスジェイ 組み込み機器
KR20180084431A (ko) 2017-01-17 2018-07-25 삼성전자주식회사 전자장치 및 그 제어방법
US10348488B1 (en) 2017-08-25 2019-07-09 Sprint Communications Company L.P. Tiered distributed ledger technology (DLT) in a network function virtualization (NFV) core network
CN108614968B (zh) * 2018-05-04 2020-11-24 飞天诚信科技股份有限公司 一种在通用平台下安全交互的方法及智能终端
US11847205B1 (en) 2020-10-26 2023-12-19 T-Mobile Innovations Llc Trusted 5G network function virtualization of virtual network function elements embedded on a system-on-chip

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6986052B1 (en) * 2000-06-30 2006-01-10 Intel Corporation Method and apparatus for secure execution using a secure memory partition
EP1331539B1 (en) * 2002-01-16 2016-09-28 Texas Instruments France Secure mode for processors supporting MMU and interrupts
GB2396930B (en) * 2002-11-18 2005-09-07 Advanced Risc Mach Ltd Apparatus and method for managing access to a memory
WO2004046924A1 (en) * 2002-11-18 2004-06-03 Arm Limited Processor switching between secure and non-secure modes
AU2003278350A1 (en) 2002-11-18 2004-06-15 Arm Limited Secure memory for protecting against malicious programs
US7322042B2 (en) * 2003-02-07 2008-01-22 Broadon Communications Corp. Secure and backward-compatible processor and secure software execution thereon
US7457960B2 (en) * 2004-11-30 2008-11-25 Analog Devices, Inc. Programmable processor supporting secure mode
FR2884628A1 (fr) * 2005-04-18 2006-10-20 St Microelectronics Sa Procede de traitement d'interruptions non securisees par un processeur operant dans le mode securise, processeur associe.
JP4698285B2 (ja) * 2005-05-19 2011-06-08 富士通株式会社 情報処理装置、情報処理方法及びコンピュータプログラム
US20070180509A1 (en) * 2005-12-07 2007-08-02 Swartz Alon R Practical platform for high risk applications
US8473754B2 (en) * 2006-02-22 2013-06-25 Virginia Tech Intellectual Properties, Inc. Hardware-facilitated secure software execution environment
JP4233585B2 (ja) 2006-07-25 2009-03-04 株式会社エヌ・ティ・ティ・ドコモ ペリフェラル切替装置及びペリフェラル切替制御装置
JP2008123482A (ja) * 2006-10-18 2008-05-29 Matsushita Electric Ind Co Ltd 記憶媒体制御方法
US20080155273A1 (en) * 2006-12-21 2008-06-26 Texas Instruments, Inc. Automatic Bus Encryption And Decryption
JP2008250387A (ja) * 2007-03-29 2008-10-16 Toshiba Corp 情報処理装置
JP5117748B2 (ja) * 2007-03-29 2013-01-16 株式会社日立製作所 暗号化機能を備えたストレージ仮想化装置
US20110044451A1 (en) * 2007-07-25 2011-02-24 Panasonic Corporation Information processing apparatus and falsification verification method
US8978132B2 (en) * 2008-05-24 2015-03-10 Via Technologies, Inc. Apparatus and method for managing a microprocessor providing for a secure execution mode
US8051467B2 (en) * 2008-08-26 2011-11-01 Atmel Corporation Secure information processing
JP2010176212A (ja) * 2009-01-27 2010-08-12 Hitachi Ltd ネットワーク機器、端末装置、アクセス制御方法およびデバイス共有システム
WO2011101972A1 (ja) * 2010-02-18 2011-08-25 株式会社東芝 プログラム
US8739177B2 (en) 2010-06-21 2014-05-27 Intel Corporation Method for network interface sharing among multiple virtual machines
US8898666B2 (en) * 2010-12-21 2014-11-25 Panasonic Intellectual Property Corporation Of America Virtual machine system and virtual machine system control method for controlling program execution on a plurality of processors that have a plurality of privileged modes
WO2012102002A1 (ja) * 2011-01-24 2012-08-02 パナソニック株式会社 仮想計算機システム、仮想計算機制御方法、仮想計算機制御プログラム、記録媒体、及び集積回路
JP5911835B2 (ja) 2013-09-17 2016-04-27 株式会社東芝 情報処理装置
JP6129702B2 (ja) 2013-09-24 2017-05-17 株式会社東芝 情報処理装置、情報処理システム、プログラム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10545885B2 (en) 2017-12-01 2020-01-28 Kabushiki Kaisha Toshiba Information processing device, information processing method, and computer program product
US11586779B2 (en) 2019-10-29 2023-02-21 Alibaba Group Holding Limited Embedded system and method

Also Published As

Publication number Publication date
US20150089246A1 (en) 2015-03-26
US9552307B2 (en) 2017-01-24
JP2015060569A (ja) 2015-03-30

Similar Documents

Publication Publication Date Title
JP6117068B2 (ja) 情報処理装置、およびプログラム
Priebe et al. SGX-LKL: Securing the host OS interface for trusted execution
RU2738021C2 (ru) Система и способы для дешифрования сетевого трафика в виртуализированной среде
JP6347831B2 (ja) ハイパーバイザに制御されるシステムにおいてゲスト・イベントを処理するための方法、データ処理プログラム、コンピュータ・プログラム製品、およびデータ処理システム
CN107977573B (zh) 用于安全的盘访问控制的方法和系统
JP6192725B2 (ja) ディープパケットインスペクション方法及び装置並びにコプロセッサ
JP6188832B2 (ja) データベース・クライアント要求を処理するための方法、コンピュータ・プログラム製品、データ処理システム、およびデータベース・システム
JP4607529B2 (ja) 高信頼実行環境を備えるシステムへの安全な入力の提供
US11061710B2 (en) Virtual machine exit support by a virtual machine function
WO2016106566A1 (zh) 虚拟化系统中加解密的方法、装置和系统
US20190042474A1 (en) Enhanced storage encryption with total memory encryption (tme) and multi-key total memory encryption (mktme)
JP2009521154A (ja) セキュア・システム・オン・チップ
EP3680798B1 (en) Method and device for monitoring process
JP6955619B2 (ja) セキュリティ・モジュールを備えた、コンピュータ・システム・ソフトウェア/ファームウェアおよび処理装置
US9405708B1 (en) Preventing attacks that rely on same-page merging by virtualization environment guests
CA2841606A1 (en) File encryption method and device, file decryption method and device
US20190384923A1 (en) Mechanism to enable secure memory sharing between enclaves and i/o adapters
JPWO2016203759A1 (ja) 分析システム、分析方法、分析装置及び、コンピュータ・プログラムが記憶された記録媒体
JP2020528608A5 (ja)
JP6319369B2 (ja) 処理制御装置、処理制御方法、及び、処理制御プログラム
CN114930332A (zh) 基于存储器的加密
CN108229190B (zh) 透明加解密的控制方法、装置、程序、存储介质和电子设备
US20170123671A1 (en) Selective Secure Deletion of Data in Distributed Systems and Cloud
JP2013156798A (ja) 記憶装置、アクセスパターンの秘匿方法およびプログラム
JP2017142791A (ja) コード保護方法およびコンピュータプログラム

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20151102

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160316

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170118

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170124

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170207

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170322

R151 Written notification of patent or utility model registration

Ref document number: 6117068

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151