(57)【要約】【課題】マルチOS環境において、一方のOSから他方のOSへの機密情報の読出しや改竄の攻撃を防御するOS切替装置及びOS切替方法を提供する。【解決手段】OS切替装置は、OSを停止するOS停止部２０１、３０１と、OSの実行を再開するOS起動部２０２、３０２とを含む複数のOS２００、３００と、複数のOSを切替えて動作させるOS切替部１００とを備える。OS切替装置は、例外処理を実施する例外処理部２１０と、セキュリティ機能の実現に用いるシークレットを生成するシークレット生成部２１２と、例外処理部２１０内に実装され、シークレットの演算を実行するシークレット演算部２１１とを備える。【選択図】図１
2008046887.tif 000002
【特許請求の範囲】
【請求項１】
OSを停止するOS停止部と、OSの実行を再開するOS起動部とを含む複数のOSと、該複数のOSを切替えて動作させるOS切替部とを備えるOS切替装置であって、
例外処理を実施する例外処理部と、
セキュリティ機能の実現に用いるシークレットを生成するシークレット生成部と、
前記例外処理部内に実装され、前記シークレットの演算を実行するシークレット演算部と
を備えることを特徴とするOS切替装置。
【請求項２】
前記OSは、機密情報を格納する機密情報保持部と、該機密情報保持部に格納した機密情報の暗号化および復号を行う暗号化・復号部とを備え、
前記シークレット演算部において演算されたシークレットを用いて、前記暗号化・復号部が利用する暗号鍵を生成する鍵生成部を更に備えることを特徴とする請求項１に記載のOS切替装置。
【請求項３】
前記OSは、データあるいはコードの完全性を検証する完全性検証部を更に備えることを特徴とする請求項２に記載のOS切替装置。
【請求項４】
前記OS切替部は、機密情報を格納する機密情報保持部と、該機密情報保持部に格納した機密情報の暗号化および復号を行う暗号化・復号部とを備え、
前記シークレット演算部において演算されたシークレットを用いて、前記暗号化・復号部が利用する暗号鍵を生成する鍵生成部を更に備えることを特徴とする請求項１に記載のOS切替装置。
【請求項５】
前記OS切替部は、データあるいはコードの完全性を検証する完全性検証部を更に備えることを特徴とする請求項４に記載のOS切替装置。
【請求項６】
前記シークレット生成部をメモリの仮想アドレス空間に複数マップする複製メモリ管理部を更に備えることを特徴とする請求項２〜５のいずれか１項にOS切替装置。
【請求項７】
前記シークレット生成部がシークレットを生成するためのデータを取得する場合、絶対メモリアドレスを利用してデータを指定する絶対メモリアドレス管理部を更に備えることを特徴とする請求項６に記載のOS切替装置。
【請求項８】
データおよびコードを保存する読取専用記憶部を更に備えることを特徴とする請求項１〜７のいずれか１項に記載のOS切替装置。
【請求項９】
改竄を検出し、正規の状態に復旧する障害復旧部を更に備えることを特徴とする請求項８に記載のOS切替装置。
【請求項１０】
前記OSは、前記OS切替部の完全性を検証する完全性検証部を更に備えることを特徴とする請求項９に記載のOS切替装置。
【請求項１１】
前記OS切替部は、前記OSの完全性を検証する完全性検証部を更に備えることを特徴とする請求項９に記載のOS切替装置。
【請求項１２】
前記シークレット演算部において演算されたシークレットを用いて、ハードウェアアシスト難読化を実施するハードウェアアシスト難読化部を更に備えることを特徴とする請求項１〜１１のいずれか１項に記載のOS切替装置。
【請求項１３】
複数のOSと、該複数のOSを切替えて動作させるOS切替部とを備えるOS切替装置において、１のOSから他のOSへ制御を切替えるOS切替方法であって、
セキュリティ機能の実現に用いるシークレットを生成するステップと、
例外処理を実施する例外処理部において、前記シークレットの演算を実行するステップと、
前記演算されたシークレットを用いて、機密情報あるいはOS内のメモリ全体の暗号化を行うステップと
を含むことを特徴とするOS切替方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、OS切替装置及びOS切替方法に関する。
【背景技術】
【０００２】
従来、単一のコードをユーザレベル（保護モード）における実行部分と、カーネルレベル（非保護モード）の実行部分とに分離する技術が提案されている（例えば、特許文献１参照。）。この技術では、クリティカルなコードをカーネルの例外ハンドラにおいて実行することにより、クリティカルコードの実行をデバッガから隠蔽してコードの難読化を図る。
【非特許文献１】US 2003/0093685 A1
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、上記の特許文献1では、単一のOS内においてユーザランドにおける実行プロセスがカーネル内のコードを読み出すことを防止する機能に効果が限定されており、複数のOSが動作するマルチOS環境において他のOSへの攻撃を防止することができない。
【０００４】
そこで、本発明は、上記の課題に鑑み、マルチOS環境において、一方のOSから他方のOSへの機密情報の読出しや改竄の攻撃を防御するOS切替装置及びOS切替方法を提供することを目的とする。
【課題を解決するための手段】
【０００５】
上記目的を達成するため、本発明の第１の特徴は、OSを停止するOS停止部と、OSの実行を再開するOS起動部とを含む複数のOSと、該複数のOSを切替えて動作させるOS切替部とを備えるOS切替装置であって、（ａ）例外処理を実施する例外処理部と、（ｂ）セキュリティ機能の実現に用いるシークレットを生成するシークレット生成部と、（ｃ）例外処理部内に実装され、シークレットの演算を実行するシークレット演算部とを備えるOS切替装置であることを要旨とする。
【０００６】
第１の特徴に係るOS切替装置によると、マルチOS環境において、一方のOSから他方のOSへの機密情報の読出しや改竄の攻撃を防御することができる。
【０００７】
又、第１の特徴に係るOS切替装置において、OSは、機密情報を格納する機密情報保持部と、該機密情報保持部に格納した機密情報の暗号化および復号を行う暗号化・復号部とを備え、シークレット演算部において演算されたシークレットを用いて、暗号化・復号部が利用する暗号鍵を生成する鍵生成部を更に備えてもよい。
【０００８】
このOS切替装置によると、OS内に保持したシークレット生成部においてシークレット（擬似乱数データ）を生成する際に、OSの例外処理部においてシークレットに演算を実施することにより、攻撃OSによる再現が困難なシークレットを生成することができる。
【０００９】
又、第１の特徴に係るOS切替装置において、OSは、データあるいはコードの完全性を検証する完全性検証部を更に備えてもよい。
【００１０】
このOS切替装置によると、データあるいはコードの完全性を更に高めることができる。
【００１１】
又、上記のOS切替装置において、OS切替部は、機密情報を格納する機密情報保持部と、該機密情報保持部に格納した機密情報の暗号化および復号を行う暗号化・復号部とを備え、シークレット演算部において演算されたシークレットを用いて、暗号化・復号部が利用する暗号鍵を生成する鍵生成部を更に備えてもよい。
【００１２】
このOS切替装置によると、OS切替部内に保持したシークレット生成部においてシークレット（擬似乱数データ）を生成する際に、OS切替部の例外処理部においてシークレットに演算を実施することにより、攻撃OSによる再現が困難なシークレットを生成することができる。
【００１３】
又、上記のOS切替装置において、OS切替部は、データあるいはコードの完全性を検証する完全性検証部を更に備えてもよい。
【００１４】
このOS切替装置によると、データあるいはコードの完全性を更に高めることができる。
【００１５】
又、上記のOS切替装置において、シークレット生成部をメモリの仮想アドレス空間に複数マップする複製メモリ管理部を更に備えてもよい。
【００１６】
このOS切替装置によると、シークレット生成時に利用する元データを仮想メモリ上の複数の場所にマッピングし、特定のレジスタから離れた場所を指定することにより、シークレットの再生をさらに困難にすることができる。
【００１７】
又、上記のOS切替装置において、シークレット生成部がシークレットを生成するためのデータを取得する場合、絶対メモリアドレスを利用してデータを指定する絶対メモリアドレス管理部を更に備えてもよい。
【００１８】
このOS切替装置によると、シークレット生成用の元データを仮想メモリ上のエイリアスを用いて指定することにより、シークレットの再現を更に困難にし、安全性をより向上させることができる。
【００１９】
又、第１の特徴に係るOS切替装置は、データおよびコードを保存する読取専用記憶部を更に備えてもよい。
【００２０】
このOS切替装置によると、ROMよりシークレットの生成や暗号化の処理を実施することにより、改竄の攻撃を未然に防止することができる。
【００２１】
又、第１の特徴に係るOS切替装置は、改竄を検出し、正規の状態に復旧する障害復旧部を更に備えてもよい。
【００２２】
このOS切替装置によると、改竄や障害を検知した場合にROMから復旧することにより、攻撃OSによる読出しだけではなく、改竄の攻撃に対しても耐性を高めることができる。
【００２３】
又、上記のOS切替装置において、OSは、OS切替部の完全性を検証する完全性検証部を更に備えてもよい。
【００２４】
このOS切替装置によると、OS切替部の完全性を更に高めることができる。
【００２５】
又、上記のOS切替装置において、OS切替部は、OSの完全性を検証する完全性検証部を更に備えてもよい。
【００２６】
このOS切替装置によると、OSの完全性を更に高めることができる。
【００２７】
又、第１の特徴に係るOS切替装置は、シークレット演算部において演算されたシークレットを用いて、ハードウェアアシスト難読化を実施するハードウェアアシスト難読化部を更に備えてもよい。
【００２８】
このOS切替装置によると、ハードウェアアシスト難読化に、攻撃OSが再生困難なシークレットを利用することにより、安全性を更に高めることができる。
【００２９】
本発明の第２の特徴は、複数のOSと、該複数のOSを切替えて動作させるOS切替部とを備えるOS切替装置において、１のOSから他のOSへ制御を切替えるOS切替方法であって、（ａ）セキュリティ機能の実現に用いるシークレットを生成するステップと、（ｂ）例外処理を実施する例外処理部において、シークレットの演算を実行するステップと、（ｃ）演算されたシークレットを用いて、機密情報あるいはOS内のメモリ全体の暗号化を行うステップとを含むOS切替方法であることを要旨とする。
【００３０】
第２の特徴に係るOS切替方法によると、マルチOS環境において、一方のOSから他方のOSへの機密情報の読出しや改竄の攻撃を防御することができる。
【発明の効果】
【００３１】
本発明によると、マルチOS環境において、一方のOSから他方のOSへの機密情報の読出しや改竄の攻撃を防御するOS切替装置及びOS切替方法を提供することができる。
【発明を実施するための最良の形態】
【００３２】
次に、図面を参照して、本発明の実施の形態を説明する。以下の図面の記載において、同一又は類似の部分には、同一又は類似の符号を付している。ただし、図面は模式的なものであることに留意すべきである。
【００３３】
（OS切替装置）
まず、本実施形態に係るOS切替装置について、図１及び図２を用いて説明する。
【００３４】
図１は、暗号化等のモジュールをOS内に実装する場合のOS切替装置の機能的構成を示すブロック図である。
【００３５】
OS切替装置は、OS切替部１００と、OS２００、３００とから構成される。
【００３６】
OS２００、３００は、OSをサスペンド状態にするためのOS停止部２０１、３０１と、OSをサスペンド状態から稼動状態に復帰させるためのOS起動部２０２、３０２を保持する。
【００３７】
OS２００は、更に、例外処理部２１０と、メモリ管理部２２０と、シークレット生成部２１２と、鍵生成部２１３と、暗号化・復号部２１４と、完全性検証部２１５と、読取専用記憶部２１６と、障害復旧部２１７と、情報保持部２３０とを備える。
【００３８】
例外処理部２１０は、カーネル内において例外処理を実施する。例外処理部２１０は、シークレット演算部２１１をその内部に実装する。例外処理部２１０内に実装されたシークレット演算部２１１は、シークレットへの演算を実施する。
【００３９】
メモリ管理部２２０は、カーネル内において物理メモリと論理メモリの対応を管理する。メモリ管理部２２０は、複製メモリ管理部２２１と絶対メモリアドレス管理部２２２とを備える。複製メモリ管理部２２１は、シークレット生成部２１２において利用するシークレットを生成するためのデータを仮想メモリ上の複数の場所にマッピングする。絶対メモリアドレス管理部２２２は、シークレット生成部２１２においてシークレットの生成に利用するデータを仮想メモリ上の絶対アドレスにより指定するためにデータの絶対メモリアドレスを管理する。
【００４０】
シークレット生成部２１２は、シークレット演算部２１１の演算機能を用いてシークレットを生成する。
【００４１】
鍵生成部２１３は、シークレット生成部２１２の出力結果として得られたシークレットを用いて暗号化・復号用の鍵を生成する。
【００４２】
暗号化・復号部２１４は、鍵生成部２１３で得られた鍵を利用して暗号化および復号を実施する。
【００４３】
完全性検証部２１５は、シークレット生成部２１２で得られたシークレットを用いて完全性検証用のデータを作成・保持し、完全性の検証を実施する。
【００４４】
読取専用記憶部２１６は、OS内のデータやコードを保存する。
【００４５】
障害復旧部２１７は、完全性検証部２１５の検証結果として改竄や障害が検知された場合に復旧を実施する。
【００４６】
情報保持部２３０は、OS２００のカーネルおよびユーザランドのプログラムの用いるデータやコードを保持する。情報保持部２３０は、機密情報保持部２３１を備える。機密情報保持部２３１は、読出しや改竄を防止することが必要な機密情報を保持する。
【００４７】
又、図示していないが、OS２００は、シークレット演算部２１１において演算されたシークレットを用いて、ハードウェアアシスト難読化を実施するハードウェアアシスト難読化部を更に備えてもよい。
【００４８】
例外処理部２１０は、カーネル内の例外処理を意味しており、ページフォールトやゼロ除算等の例外に対する処理を実施する例外ハンドラ関数である。シークレット演算部２１１を例外処理部２１０内に実装することでOS３００からの解析が困難になる。シークレット生成部２１２においてシークレットを生成する際に、例外処理部２１０の例外ハンドラが呼び出されるようにするため、例えば、メモリ管理部２２０内のTLB(Translation Look-aside Buffer)のエントリをOS２００に制御が移る際に消去する。これにより、シークレット生成部２１２においてシークレットを生成する際に、必ず例外処理部２１０内のシークレット演算部２１１が実行される。しかし、OS３００からシークレットの再現を試みる場合、コードを単純に実行するだけでは例外処理が発生せず、シークレット演算部２１１が呼び出されないため、正しい暗号化・復号鍵を入手することができない。シークレット生成部２１２においてシークレットを生成するための元のデータとして、例えば、シークレットを生成する関数自身の仮想メモリ上のアドレス、この関数からの戻りアドレス、擬似乱数を用いることができる。一般的に、関数の戻りアドレスはスタックポインタから1ワード分小さいメモリアドレスを指定することで取得する。この処理をそのまま実装する代わりに、仮想メモリ上に関数の戻りアドレスへのエイリアスをメモリ管理部２２０内のTLBエントリとして追加する。エイリアスは関数の戻りアドレスと同じ物理メモリを指すように仮想メモリと物理メモリのマッピングを行ったメモリ１ページ分のエントリである。関数の戻りアドレスを指定する際に、エイリアスされた仮想アドレスで指定することにより、関数の戻りアドレスを利用していることが明示的に示されなくなり、OS３００においてシークレットを再生することが困難となる。このための前提として、OS停止部２０１における動作が決定的となるようにOS２００を実装することにより、メモリ管理部２２０内の仮想メモリのスタックの状態はOSのサスペンド処理時に常に同じ状態とすることが必要である。
【００４９】
図２は、暗号化等のモジュールをOS切替部へ実装する場合のOS切替装置の機能的構成を示すブロック図である。
【００５０】
OS切替装置は、図１に示したものと同じ機能の各モジュールから構成される。図１に示したOS切替装置と異なる点として、OS７００（図１のOS２００）に入っていた多くの機能がOS切替部６００に含まれている。
【００５１】
OS切替部６００は、例外処理部７１０、シークレット演算部７１１、シークレット生成部７１２、鍵生成部７１３、暗号化・復号部７１４、完全性検証部７１５、読取専用記憶部７１６、障害復旧部７１７、メモリ管理部７２０、複製メモリ管理部７２１、絶対メモリアドレス管理部７２２から構成される。
【００５２】
OS切替部６００に配置された各機能、OS切替処理部６０１、例外処理部７１０、シークレット演算部７１１、シークレット生成部７１２、鍵生成部７１３、暗号化・復号部７１４、完全性検証部７１５、読取専用記憶部７１６、障害復旧部７１７、メモリ管理部７２０、複製メモリ管理部７２１、絶対メモリアドレス管理部７２２は、図１に示す各機能、OS切替処理部１０１、例外処理部２１０、シークレット演算部２１１、シークレット生成部２１２、鍵生成部２１３、暗号化・復号部２１４、完全性検証部２１５、読取専用記憶部２１６、障害復旧部２１７、メモリ管理部２２０、複製メモリ管理部２２１、絶対メモリアドレス管理部２２２と同様であるので、ここでは説明を省略する。
【００５３】
又、OS７００に配置された各機能、OS停止部７０１、OS起動部７０２、情報保持部７３０、機密情報保持部７３１は、図１に示す各機能、OS停止部２０１、OS起動部２０２、情報保持部２３０、機密情報保持部２３１と同様であるので、ここでは説明を省略する。
【００５４】
更に、OS８００に配置された各機能、OS停止部８０１、OS起動部８０２は、図１に示す各機能、OS停止部３０１、OS起動部３０２と同様であるので、ここでは説明を省略する。
【００５５】
（OS切替方法）
次に、本実施形態に係るOS切替方法について説明する。
【００５６】
図３及び図４は、図１に示すOS切替装置におけるOS切替時のフローチャートである。
【００５７】
図３は、OS停止部２０１においてOSのサスペンド処理を開始した際の暗号化の手順を示し、図４は、OS起動部２０２においてOSの起動処理を開始した際の完全性検証・復号の手順を示している。
【００５８】
図３において、OS停止部２０１がOS切替の処理を開始すると（ステップ１００）、シークレット生成部２１２は、暗号化の鍵の種となるシークレットを生成する（ステップ１０１）。
【００５９】
次に、シークレット生成時に必ず呼び出されるようにあらかじめ設定された例外処理部２１０内において、シークレット演算部２１１がシークレットに演算を施し（ステップ１０２）、鍵生成部２１３は、最終的に得られたシークレットを利用して暗号化鍵を生成する。
【００６０】
次に、暗号化・復号部２１４は、得られた暗号鍵を利用してOS内のクリティカルなデータやコード、あるいはOS全体の暗号化を実施する（ステップ１０３）。OS全体を暗号化する際には、単純に排他的論理和を算出するような簡易な暗号化を利用して計算時間を短縮する方法をとってもよい。
【００６１】
次に、完全性検証部２１５は、暗号化したデータに対する完全性検証データを生成し（ステップ１０４）、OS切替処理部１０１は、OSの切替を実施する（ステップ１０５）。
【００６２】
次に、他のOSの動作が完了し、元のOSに制御が戻る際の処理手順を図４を用いて説明する。
【００６３】
まず、元のOSを起動するため、OS起動部２０２がOS切替の処理を開始すると（ステップ１０６）、シークレット生成部２１２は、復号の鍵の種となるシークレットを生成する（ステップ１０７）。
【００６４】
次に、シークレット生成時に例外処理部２１０において、シークレット演算部２１１がシークレットの演算を実施し、暗号化の際と同じシークレットを再生する（ステップ１０８）。
【００６５】
次に、完全性検証部２１５は、ステップ１０４で生成した完全性検証用のデータを利用してクリティカルなコードやデータ、あるいはメモリ全体の完全性を検証し（ステップ１０９）、問題がなければ、暗号化・復号部２１４は、復号を実施する（ステップ１１０）。完全性の検証に失敗し、改竄や障害の可能性がある場合、障害復旧部２１７は、ROM等より復旧の処理を実施する（ステップ１１２）。
【００６６】
そして、正しい状態に復号あるいは復旧を完了すると、OS切替処理部１０１は、OSの切替を実施して元のOSを起動し処理を完了する（ステップ１１１）。
【００６７】
図５及び図６は、図２に示すOS切替装置におけるOS切替時のフローチャートである。処理内容は基本的に図３及び図４に示した手順と同様であり、これらの処理をOS切替部内で実施する点が異なっている。
【００６８】
図５は、OS停止部７０１においてOSのサスペンド処理を開始した際の暗号化の手順を示し、図６は、OS起動部７０２においてOSの起動処理を開始した際の完全性検証・復号の手順を示している。
【００６９】
図５において、OS停止部７０１がOS切替の処理を開始すると（ステップ２００）、シークレット生成部７１２は、暗号化の鍵の種となるシークレットを生成する（ステップ２０１）。
【００７０】
次に、シークレット生成時に必ず呼び出されるようにあらかじめ設定された例外処理部７１０内において、シークレット演算部７１１がシークレットに演算を施し（ステップ２０２）、鍵生成部２１３は、最終的に得られたシークレットを利用して暗号化鍵を生成する。
【００７１】
次に、暗号化・復号部２１４は、得られた暗号鍵を利用してOS内のクリティカルなデータやコード、あるいはOS全体の暗号化を実施する（ステップ２０３）。OS全体を暗号化する際には、単純に排他的論理和を算出するような簡易な暗号化を利用して計算時間を短縮する方法をとってもよい。
【００７２】
次に、完全性検証部７１５は、暗号化したデータに対する完全性検証データを生成し（ステップ２０４）、OS切替処理部６０１は、OSの切替を実施し、別ドメインのOSを起動する（ステップ２０５）。
【００７３】
次に、他のOSの動作が完了し、元のOSに制御が戻る際の処理手順を図６を用いて説明する。
【００７４】
まず、元のOSを起動するため、OS起動部７０２がOS切替の処理を開始すると（ステップ２０６）、シークレット生成部７１２は、復号の鍵の種となるシークレットを生成する（ステップ２０７）。
【００７５】
次に、シークレット生成時に例外処理部７１０において、シークレット演算部７１１がシークレットの演算を実施し、暗号化の際と同じシークレットを再生する（ステップ２０８）。
【００７６】
次に、完全性検証部７１５は、ステップ２０４で生成した完全性検証用のデータを利用してクリティカルなコードやデータ、あるいはメモリ全体の完全性を検証し（ステップ２０９）、問題がなければ、暗号化・復号部７１４は、復号を実施する（ステップ２１０）。完全性の検証に失敗し、改竄や障害の可能性がある場合、障害復旧部７１７は、ROM等より復旧の処理を実施する（ステップ２１２）。
【００７７】
そして、正しい状態に復号あるいは復旧を完了すると、OS切替処理部６０１は、OSの切替を実施して、別ドメインOSを起動し、処理を完了する（ステップ２１１）。
【００７８】
（作用及び効果）
本実施形態では、二つ以上のOSがSwitcher方式により適宜切替えられつつ、通常通りの特権モードで動作するようなMulti-OS 環境を想定している。
【００７９】
本実施形態に係るOS切替装置及びOS切替方法では、攻撃OSの実行時に正しく動作しない擬似乱数生成器(Blackbox PRNG)を実現する。中断状態に移行させられるOS領域中の重要情報保存部分に対して、当該PRNGから生成した擬似乱数データにより、暗号化・完全性保証データ付加等の処理を適用することで、その後実行状態に移行させられるOSからの攻撃に対処することが可能となる。即ち、本実施形態に係るOS切替装置及びOS切替方法によると、暗号化や完全性に利用するシークレットをカーネルの例外処理において実施することにより、攻撃OSによるシークレットの再生を困難とすることができる。又、シークレットの種として利用する戻りアドレスのメモリをエイリアンすることにより、シークレットの再生を困難とすることができる。
【００８０】
又、本実施形態に係るOS切替装置において、OSは、機密情報を格納する機密情報保持部と、機密情報保持部に格納した機密情報の暗号化および復号を行う暗号化・復号部とを備え、シークレット演算部において演算されたシークレットを用いて、暗号化・復号部が利用する暗号鍵を生成する鍵生成部を備える。このため、OS内に保持したシークレット生成部においてシークレット（擬似乱数データ）を生成する際に、OSの例外処理部においてシークレットに演算を実施することにより、攻撃OSによる再現が困難なシークレットを生成することができる。
【００８１】
又、OSは、データあるいはコードの完全性を検証する完全性検証部を備える。このため、データあるいはコードの完全性を更に高めることができる。
【００８２】
又、OS切替部は、機密情報を格納する機密情報保持部と、該機密情報保持部に格納した機密情報の暗号化および復号を行う暗号化・復号部とを備え、シークレット演算部において演算されたシークレットを用いて、暗号化・復号部が利用する暗号鍵を生成する鍵生成部を備える。このため、OS切替部内に保持したシークレット生成部においてシークレット（擬似乱数データ）を生成する際に、OS切替部の例外処理部においてシークレットに演算を実施することにより、攻撃OSによる再現が困難なシークレットを生成することができる。
【００８３】
又、OS切替部は、データあるいはコードの完全性を検証する完全性検証部を備える。このため、データあるいはコードの完全性を更に高めることができる。
【００８４】
又、OS切替装置は、シークレット生成部をメモリの仮想アドレス空間に複数マップする複製メモリ管理部を備える。このため、シークレット生成時に利用する元データを仮想メモリ上の複数の場所にマッピングし、特定のレジスタから離れた場所を指定することにより、シークレットの再生をさらに困難にすることができる。
【００８５】
又、OS切替装置は、シークレット生成部がシークレットを生成するためのデータを取得する場合、絶対メモリアドレスを利用してデータを指定する絶対メモリアドレス管理部を備える。このため、シークレット生成用の元データを仮想メモリ上のエイリアスを用いて指定することにより、シークレットの再現を更に困難にし、安全性をより向上させることができる。
【００８６】
又、OS切替装置は、データおよびコードを保存する読取専用記憶部を備える。このため、ROMよりシークレットの生成や暗号化の処理を実施することにより、改竄の攻撃を未然に防止することができる。
【００８７】
又、OS切替装置は、改竄を検出し、正規の状態に復旧する障害復旧部を備える。このため、改竄や障害を検知した場合にROMから復旧することにより、攻撃OSによる読出しだけではなく、改竄の攻撃に対しても耐性を高めることができる。
【００８８】
又、OSは、OS切替部の完全性を検証する完全性検証部を備える。このため、OS切替部の完全性を更に高めることができる。
【００８９】
又、OS切替部は、OSの完全性を検証する完全性検証部を備える。このため、OSの完全性を更に高めることができる。
【００９０】
又、OS切替装置は、ハードウェアアシスト難読化を実施するハードウェアアシスト難読化部を備える。このため、ハードウェアアシスト難読化に、攻撃OSが再生困難なシークレットを利用することにより、安全性を更に高めることができる。
【００９１】
（その他の実施の形態）
本発明は上記の実施形態によって記載したが、この開示の一部をなす論述及び図面はこの発明を限定するものであると理解すべきではない。この開示から当業者には様々な代替実施形態、実施例及び運用技術が明らかとなろう。
【００９２】
例えば、図１及び図２において、OSが２つであるOS切替装置について説明したが、OSの数はこれに限らず、３以上のOSを切替える装置に本発明を適用してもよいことは勿論である。
【００９３】
このように、本発明はここでは記載していない様々な実施形態等を含むことは勿論である。従って、本発明の技術的範囲は上記の説明から妥当な特許請求の範囲に係る発明特定事項によってのみ定められるものである。
【図面の簡単な説明】
【００９４】
【図１】本実施形態に係るOS切替装置を示す機能ブロック図である（その１）。
【図２】本実施形態に係るOS切替装置を示す機能ブロック図である（その２）。
【図３】本実施形態に係るOS切替方法を示すフローチャートである（その１）。
【図４】本実施形態に係るOS切替方法を示すフローチャートである（その２）。
【図５】本実施形態に係るOS切替方法を示すフローチャートである（その３）。
【図６】本実施形態に係るOS切替方法を示すフローチャートである（その４）。
【符号の説明】
【００９５】
１００、６００…OS切替部
１０１、６０１…OS切替処理部
２００、３００、７００、８００…OS
２０１、３０１、７０１、８０１…OS停止部
２０２、３０２、７０２，８０２…OS起動部
２１０、７１０…例外処理部
２１１、７１１…シークレット演算部
２１２、７１２…シークレット生成部
２１３、７１３…鍵生成部
２１４、７１４…暗号化・復号部
２１５、７１５…完全性検証部
２１６、７１６…読取専用記憶部
２１７、７１７…障害復旧部
２２０、７２０…メモリ管理部
２２１、７２１…複製メモリ管理部
２２２、７２２…絶対メモリアドレス管理部
２３０、７３０…情報保持部
２３１、７３１…機密情報保持部
【図１】
2008046887.tif 000003
【図２】
2008046887.tif 000004
【図３】
2008046887.tif 000005
【図４】
2008046887.tif 000006
【図５】
2008046887.tif 000007
【図６】
2008046887.tif 000008