(57)【要約】【課題】外部ブートによってマルウエアの動きを抑止する。【解決手段】  ＵＳＢメモリ２は、端末１のＢＩＯＳの起動によってＲＡＭ１４の起動メモリ領域１４１に優先して読み出される、１次ローダを記憶する第１記憶部２１１と、１次ローダによるデータ転送指示を受けて起動メモリ領域１４１に順次分割された分割制御データとして読み出される、割込ベクタテーブル及び２次ローダを含む所定の制御データと分割制御データの書込位置となるアドレスデータとを記憶する第２記憶部２１２と、インターラプト転送によって分割制御データを順次起動メモリ領域１４１に転送するデータ転送部（２３，２３Ｂ）と、インターラプト転送の終了を受けてハードウエア割込を発行する転送終了処理部２３４とを備えている。【選択図】図３
2013092946.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵ及び前記ＣＰＵが実行するプログラムが展開される主メモリを備えると共に、前記主メモリと外部との間でハードウエアによるデータ通信を行う、チップセット内のコントローラを備えた情報処理装置を、前記コントローラを経由して起動に要するデータを前記主メモリに書き込んで起動させる外部ブートデバイスであって、
前記情報処理装置のＢＩＯＳが前記ＣＰＵによって実行されることによって前記主メモリの一部であるアドレス指定が可能な起動メモリ領域に優先して読み出される、データ転送の指示情報を含む１次ローダを記憶する第１の記憶部と、
前記１次ローダによる前記データ転送指示を受けて前記起動メモリ領域に順次分割された分割制御データとして読み出される少なくとも割込ベクタテーブル及び２次ローダを含む所定の制御データと前記分割制御データが前記起動メモリ領域に書き込まれる際の書込位置となるアドレスデータとを記憶する第２の記憶部と、
前記起動メモリ領域への読出後に起動される前記１次ローダから前記データ転送の指示を受けて、前記第２の記憶部から前記各分割制御データを対応する前記アドレスデータに従って前記コントローラを経由して前記主メモリに順番に読み出すデータ転送部と、
前記データ転送処理の終了を受けて前記ハードウエア割込指示信号を前記起動メモリ領域に読み出された前記割込ベクタテーブルに遷移し、前記２次ローダを起動させるべくハードウエア割込を発行させるハードウエア割込指示部とを備えたことを特徴とする外部ブートデバイス。
【請求項２】
前記制御データは、前記起動メモリ領域の記憶容量分に相当するデータ量を有することを特徴とする請求項１に記載の外部ブートデバイス。
【請求項３】
前記起動メモリ領域は、先頭から１Ｍｂｙｔｅまでの領域であることを特徴とする請求項２に記載の外部ブートデバイス。
【請求項４】
前記分割制御データは、一定のデータ量が設定されているものであることを特徴とする請求項１〜３のいずれかに記載の外部ブートデバイス。
【請求項５】
前記分割制御データは、前記２次ローダの一部を構成しない少なくとも１つのダミーデータを含むことを特徴とする請求項４に記載の外部ブートデバイス。
【請求項６】
前記２次ローダの一部を構成する分割制御データは、その内部に、順次次に繋がれる前記分割制御データへのジャンプ先のアドレスを含むことを特徴とする請求項４又は５に記載の外部ブートデバイス。
【請求項７】
前記２次ローダは、ロード対象データを前記主メモリの前記起動メモリ領域以上の領域にロードするものであることを特徴とする請求項４〜６のいずれかに記載の外部ブートデバイス。
【請求項８】
前記アドレスデータは、予め設定された複数のアドレスデータずつに分割された分割アドレステーブルとされ、
前記データ転送部は、１の前記分割アドレステーブルに含まれるアドレスデータに対応する分割制御データが読み出される毎に、次の分割アドレステーブルを前記主メモリに読み出すものであることを特徴とする請求項１〜７のいずれかに記載の外部ブートデバイス。
【請求項９】
前記各分割アドレステーブルは、テーブルの最後尾に次の前記分割アドレステーブルの書込位置であるアドレスを指定するアドレス情報を有することを特徴とする請求項８に記載の外部ブートデバイス。
【請求項１０】
前記分割制御データの読み出し順の設定、及び前記分割制御データの書込位置となる前記アドレスデータの並び替えの少なくとも一方を行う転送順設定手段を備えていることを特徴とする請求項１〜９のいずれかに記載の外部ブートデバイス。
【請求項１１】
前記転送順設定手段は、１番目の前記分割アドレステーブルの最後尾以外のアドレスに対応する分割制御データにダミーデータを対応付けていることを特徴とする請求項１０に記載の外部ブートデバイス。
【請求項１２】
前記転送データ設定手段は、２番目の前記分割アドレステーブルの先頭アドレスに割込ベクタテーブルを対応付けていることを特徴とする請求項１０又は１１に記載の外部ブートデバイス。
【請求項１３】
前記転送データ設定手段は、２番目の前記分割アドレステーブル以降の各分割アドレステーブルを前記主メモリ内の前記起動メモリ領域を超えた領域に読み出すようにアドレス情報を設定することを特徴とする請求項１０〜１２のいずれかに記載の外部ブートデバイス。
【請求項１４】
２番目の前記分割アドレステーブル以降の各分割アドレステーブルに対して、それぞれ異なるアドレス情報が設定されていることを特徴とする請求項１０〜１３のいずれかに記載の外部ブートデバイス。
【請求項１５】
前記データ転送部は、前記データ転送を、前記コントローラを経由して前記主メモリとの間でインターラプト転送によって行うことを特徴とする請求項１〜１４のいずれかに記載の外部ブートデバイス。
【請求項１６】
ハードウエア割込指示部は、前記インターラプト転送における最後の分割制御データの転送動作を受けて前記ハードウエア割込指示信号を出力することを特徴とする請求項１５に記載の外部ブートデバイス。
【請求項１７】
ＣＰＵ及び前記ＣＰＵが実行するプログラムが展開される主メモリを備えると共に、前記主メモリと外部との間でハードウエアによるデータ通信を行う、チップセット内のコントローラを備えた情報処理装置を、前記コントローラを経由して起動に要するデータを前記主メモリに書き込んで起動させる外部ブート方法であって、
前記情報処理装置のＢＩＯＳが前記ＣＰＵによって実行されることによって前記主メモリの一部であるアドレス指定が可能な起動メモリ領域に優先して読み出される、データ転送の指示情報を含む１次ローダを記憶する第１の記憶部と、
前記１次ローダによる前記データ転送指示を受けて前記起動メモリ領域に順次分割された分割制御データとして読み出される少なくとも割込ベクタテーブル及び２次ローダを含む所定の制御データと前記分割制御データが前記起動メモリ領域に書き込まれる際の書込位置となるアドレスデータとを記憶する第２の記憶部とを備え、
前記起動メモリ領域への読出後に起動される前記１次ローダから前記データ転送の指示を受けて、前記第２の記憶部から前記各分割制御データを対応する前記アドレスデータに従って前記コントローラを経由して前記主メモリに順番に読み出すデータ転送ステップと、
前記データ転送処理の終了を受けて前記ハードウエア割込指示信号を前記起動メモリ領域に読み出された前記割込ベクタテーブルに遷移し、前記２次ローダを起動させるべくハードウエア割込を発行させるハードウエア割込指示ステップとを備えたことを特徴とする外部ブート方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＣＰＵを備える情報処理装置に装着して前記情報処理装置をブートする外部ブートデバイス及び外部ブート方法に関する。
【背景技術】
【０００２】
近年、インターネット等のネットワークに接続されたサーバや端末（パーソナルコンピュータ）等の情報処理装置に対して各種のウイルス等が侵入し、乃至は潜伏し、それによってデータの盗聴、盗難、改竄、漏洩及び攻撃等の被害が生じている。かかるウイルス被害に対し、ウイルスの侵入を可及的に阻止する目的で、ウイルスを発見し乃至は駆除するソフトウエアの改良乃至は開発、回線制限（アドレス制限）の設定を行う等の対策が講じられている。しかし、ウイルスの新種発見から駆除用のソフトウエアの開発までの時間遅れ等を考慮すれば、ウイルスの侵入を確実に阻止することは困難である。また、電源投入を受けて情報処理装置が立ち上がる間にウイルス感染する虞も考えられ、かかる期間内に対する有効なウイルス対策も望まれる。
【０００３】
特許文献１には、情報処理装置のハードディスク内に格納されたＯＳ（OperationSystem）の起動方法が記載されている。より詳細には、情報処理装置の電源投入が検知されると、フラッシュメモリに記憶されているＢＩＯＳ（BasicInput/Output system）を起動して起動可能なブートデバイスを検索し、ＵＳＢ（Universal Serial Bus）メモリに格納されているブートＯＳを起動して、まず表示手段にパスワードの入力画面を表示させる。次いで、この入力画面に対して入力手段からのパスワードの入力を受け付ける。パスワードが入力されると、入力パスワードとＵＳＢメモリに固有な情報とを連結してハッシュ値に変換し、起動すべきハードディスクのロック解除パスワードを生成する。そして、起動するハードディスクがセキュリティ設定済みであると判断した場合には、前記ロック解除パスワードで前記ハードディスクのロック状態を解除する一方、前記ハードディスクがセキュリティ設定済みではないと判断した場合には、前記ハードディスクのセキュリティを設定し、ロック状態が解除された前記ハードディスクのＭＢＲ(Master Boot Record)を起動し、ＯＳのブートローダを起動し、これによってＯＳを起動する方法である。これにより、ＯＳ起動時のセキュリティ認証が可能になる。また、特許文献１には、前記ハードディスクのロック状態が解除された状態で、ＵＳＢメモリに格納されているウイルスチェック機能を用いてウイルスチェックを行うことでハードディスクのウイルスチェックを可能とすることが記載されている。
【０００４】
また、特許文献２には、起動プログラムの実行方法が記載されている。より詳細には、パーソナルコンピュータからハードディスクに対する最初の読込み要求に対し、起動プログラムを格納した記憶媒体の起動セクタに先立ってセキュリティ等の任意プログラムを格納した仮起動セクタを読み出し、該任意プログラムを実行させる起動前処理ステップを有するようにしたものである。そして、このセキュリティ等の任意プログラムの実行後に本来の起動プログラムを実行してＯＳを起動させるものである。これにより、パーソナルコンピュータのＢＯＩＳや記憶媒体の起動セクタ（ＬＢＡ０）を変更することなく、ＯＳ起動に先立ってセキュリティ等の任意のプログラムの実行を可能としている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００７−６６１２３号公報
【特許文献２】特開２００６−２３６１９３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
特許文献１は、パスワード入力画面に対してパスワードを入力する態様であるためパスワードの盗難の虞があることから、ＵＳＢメモリの固有情報と結合してハッシュ値を作成し、ロック解除情報とする個人認証技術である。また、特許文献１には、ＵＳＢメモリに格納されているウイルスチェック機能を用いてウイルスチェックを行うことでハードディスクのウイルスチェックを可能とすることが記載されているが、具体的な記載は一切ない。
【０００７】
一方、特許文献２では、ハードディスク内の仮起動セクタの任意プログラムがウィルスチェックプログラムである場合においても、そのプログラムが実行される前に、例えばＲｏｏｔｋｉｔの形態を有するような不正プログラムが起動され、任意プログラムから自身（不正プログラム）を隠蔽することも可能であるため、ウイルスチェックに対する信頼性に一定の限界がある。また、特許文献２にはＯＳ起動前にウイルスを監視する具体的な方法は一切記載されていない。電源投入前から潜伏していたウイルスを仮に発見し得るとしても、再起動（ＯＳ起動）後にはウイルスチェックは行われていないため、再起動中に侵入するウイルス対して依然として無防備の状態にある。さらに、特許文献１、２はパーソナルコンピュータ側で処理を担う一般的態様であるから、この点からしても高い信頼性を確保するには限界がある。
【０００８】
また、近年、特許文献１に記載の起動方法のような、いわゆるＵＳＢメモリブート方式が知られている。ＵＳＢメモリブート方式は、ＵＳＢメモリを端末に接続して端末の電源が投入された場合に、ＢＩＯＳからＵＳＢメモリが優先的に指定されて、その内部に記憶されたＯＳがブートされ、例えば職場の端末を自己のＰＣ環境の元で使用し得るようにした技術である。このＵＳＢメモリブート方式の別の態様として、ウイルス駆除プログラムを記憶しておき、優先的に起動させて、端末内の潜伏ウイルスを駆除可能にしたものも知られている。しかし、ＵＳＢメモリ自身のウイルス感染の有無、またウイルス駆除プログラムの起動前にウイルスによる仕掛けが実行されてウイルス駆除動作が無力化される場合、さらにウイルス駆除処理終了からＯＳの起動までの間でのウイルス侵入の有無については何等言及されていない。
【０００９】
本発明の目的は、ウイルス等のマルウエアの動きを抑止する外部ブートの技術を提供することにある。
【課題を解決するための手段】
【００１０】
本発明に係る外部ブートデバイスは、ＣＰＵ及び前記ＣＰＵが実行するプログラムが展開される主メモリを備えると共に、前記主メモリと外部との間でハードウエアによるデータ通信を行う、チップセット内のコントローラを備えた情報処理装置を、前記コントローラを経由して起動に要するデータを前記主メモリに書き込んで起動させる外部ブートデバイスであって、前記情報処理装置のＢＩＯＳが前記ＣＰＵによって実行されることによって前記主メモリの一部であるアドレス指定が可能な起動メモリ領域に優先して読み出される、データ転送の指示情報を含む１次ローダを記憶する第１の記憶部と、前記１次ローダによる前記データ転送指示を受けて前記起動メモリ領域に順次分割された分割制御データとして読み出される少なくとも割込ベクタテーブル及び２次ローダを含む所定の制御データと前記分割制御データが前記起動メモリ領域に書き込まれる際の書込位置となるアドレスデータとを記憶する第２の記憶部と、前記起動メモリ領域への読出後に起動される前記１次ローダから前記データ転送の指示を受けて、前記第２の記憶部から前記各分割制御データを対応する前記アドレスデータに従って前記コントローラを経由して前記主メモリに順番に読み出すデータ転送部と、前記データ転送処理の終了を受けて前記ハードウエア割込指示信号を前記起動メモリ領域に読み出された前記割込ベクタテーブルに遷移し、前記２次ローダを起動させるべくハードウエア割込を発行させるハードウエア割込指示部とを備えたことを特徴とするものである。
【００１１】
また、本発明に係る外部ブート方法は、ＣＰＵ及び前記ＣＰＵが実行するプログラムが展開される主メモリを備えると共に、前記主メモリと外部との間でハードウエアによるデータ通信を行う、チップセット内のコントローラを備えた情報処理装置を、前記コントローラを経由して起動に要するデータを前記主メモリに書き込んで起動させる外部ブート方法であって、前記情報処理装置のＢＩＯＳが前記ＣＰＵによって実行されることによって前記主メモリの一部であるアドレス指定が可能な起動メモリ領域に優先して読み出される、データ転送の指示情報を含む１次ローダを記憶する第１の記憶部と、前記１次ローダによる前記データ転送指示を受けて前記起動メモリ領域に順次分割された分割制御データとして読み出される少なくとも割込ベクタテーブル及び２次ローダを含む所定の制御データと前記分割制御データが前記起動メモリ領域に書き込まれる際の書込位置となるアドレスデータとを記憶する第２の記憶部とを備え、前記起動メモリ領域への読出後に起動される前記１次ローダから前記データ転送の指示を受けて、前記第２の記憶部から前記各分割制御データを対応する前記アドレスデータに従って前記コントローラを経由して前記主メモリに順番に読み出すデータ転送ステップと、前記データ転送処理の終了を受けて前記ハードウエア割込指示信号を前記起動メモリ領域に読み出された前記割込ベクタテーブルに遷移し、前記２次ローダを起動させるべくハードウエア割込を発行させるハードウエア割込指示ステップとを備えたことを特徴とするものである。
【００１２】
これらの発明によれば、パーソナルコンピュータ（ＰＣ）等の情報処理装置に、外部ブートデバイス、例えばＵＳＢ（Universal Serial Bus）メモリが装着された状態で、情報処理装置の電源が投入されると、情報処理装置は操作可能な状態になるようにＣＰＵ等によって起動（ブート）される。なお、外部ブートデバイスは、ブート処理専用デバイスでもよいし、ブート処理を可能にする外部デバイスであってもよい。
【００１３】
外部ブートデバイスには、外部ＭＢＲ等の１次ローダと、１次ローダによってロードされる制御データとが少なくとも記憶されている。情報処理装置は、電源投入後、ＣＰＵが動作可能な状態になって、まずＢＩＯＳのプログラムの起動を行う。ＢＩＯＳのＰＯＳＴ（Power On Self Test）処理によって、優先的に外部ブートデバイスが選択される。そして、外部ブートデバイスの所定セクタ、先頭セクタに書き込まれている外部ＭＢＲ(Outer Master BootRecord)の１次ローダが情報処理装置側に読み込まれ、情報処理装置の起動メモリ領域内の所定域に書き込まれる。次いで、ＣＰＵは、制御を起動プログラムである１次ローダに渡す。
【００１４】
１次ローダは、最初のアドレスデータを作成し、あるいは外部ブートデバイスから取り込むなどして、起動メモリ領域内の所定位置に書き込む。かかるデータ転送のための環境設定がなされ、さらに１次ローダからデータ転送指示が発せられると、ＣＰＵの制御を受けることなく、この指示信号を受けて、チップセット内のコントローラを経由した、データ転送部によるデータ転送処理が開始される。すなわち、外部ブートデバイスの第２の記憶部に書き込まれている制御データが、分割制御データとして、例えばインターラプト転送（interrupt transfer）によってコントローラを経由して情報処理装置に読み出され、物理アドレスであるアドレスデータに従って起動メモリ領域の所定の位置に順次書き込まれる。このデータ転送処理は、ＣＰＵの制御を受けることはない。そして、データ転送処理の終了、例えば次に転送するデータがない（１回分で転送するデータが所定のデータ量に達しない場合も含む）とか、所定回数分の転送が終了したとかの状況が生じると、例えばデータ転送の終了フラグが立てられる。この終了フラグは、ハードウエア割込指示部によって、ハードウエア割込指示信号としてコントーラに発行され、このコントローラがハードウエア割込を発行し、起動メモリ領域内の割込ベクタテーブルに制御が遷移される。そして、情報処理装置のＣＰＵによって、例えばＯＳローダ等の２次ローダが起動され、ここから、ＣＰＵの制御によってロード対象プログラム、例えばＯＳが起動メモリ領域外にロードされることとなる。なお、２次ローダは、ＯＳローダに限定されるものではなく、外部ブートデバイスに予め準備された専用のローダ、特定ＯＳローダ等を起動メモリ領域外にロードするためのものでもよい。例えば、専用のＯＳローダは、起動メモリ領域外で、かつ情報処理端末内のハードディスク等からロードされる汎用のＯＳのロード領域と区別された領域にロードされるようにすればよい。この専用のＯＳローダによって、汎用のＯＳを監視することで、よりセキュアな状態での汎用のＯＳのロードが可能となる。
【００１５】
このように、外部ブートデバイスの１次ローダによってＣＰＵの制御を離れた状態で、情報処理端末の起動メモリ領域全域に対して、外部ブートデバイスから制御データを転送して書き込ませることで、ＢＩＯＳレベルでのウイルス等のマルウエアの動きが抑制される。すなわち、仮にウイルス等のマルウエアがＢＩＯＳに潜伏しており、あるいはＢＩＯＳの起動から１次ローダの起動までの間に、仮にウイルス等のマルウエアがＣＰＵの制御を乗っ取って起動メモリ領域に危険なデータを複製等したとしても、その直後にＣＰＵの制御とは無関係に起動メモリ領域全体を外部ブートデバイスからの所定データで書き替えるので、前記複製等された危険なデータは一律に削除されることとなる。
【００１６】
請求項２に記載の発明は、請求項１に記載の外部ブートデバイスにおいて、前記制御データは、前記起動メモリ領域の記憶容量分に相当するデータ量を有することを特徴とする。
【００１７】
この構成によれば、制御データ、すなわち分割制御データによって起動メモリ領域の全域が更新可能となる。
【００１８】
請求項３に記載の発明は、請求項２に記載の外部ブートデバイスにおいて、前記起動メモリ領域は、先頭から１Ｍｂｙｔｅまでの領域であることを特徴とする。この構成によれば、情報処理装置の起動時に主メモリに展開されるデータの範囲である１ＭＢまでの範囲を外部ブートデバイスからのデータで埋め尽くすので、当該領域にマルウエア等が潜伏していたとしても、これを消去することが可能となる。
【００１９】
請求項４に記載の発明は、請求項１〜３のいずれかに記載の外部ブートデバイスにおいて、前記分割制御データは、一定のデータ量が設定されているものであることを特徴とする。この構成によれば、各データ転送を一定のデータ量で行うので、送信処理及び書込位置の設定が容易となる。
【００２０】
請求項５に記載の発明は、請求項４に記載の外部ブートデバイスにおいて、前記分割制御データは、前記２次ローダの一部を構成しない少なくとも１つのダミーデータを含むことを特徴とする。この構成によれば、ダミーデータを含めることで、制御データのデータ量を所定量に設定することが可能となる。
【００２１】
請求項６に記載の発明は、請求項４又は５に記載の外部ブートデバイスにおいて、前記２次ローダの一部を構成する分割制御データは、その内部に、順次次に繋がれる前記分割制御データへのジャンプ先のアドレスを含むことを特徴とする。この構成によれば、起動メモリ領域に分散配置された２次ローダのプログラムは連続して実行される。
【００２２】
請求項７に記載の発明は、請求項４〜６のいずれかに記載の外部ブートデバイスにおいて、前記２次ローダは、ロード対象データを前記主メモリの前記起動メモリ領域以上の領域にロードするものであることを特徴とする。この構成によれば、ロード対象データが２次ローダの配置領域以外にロードされるので、２次ローダがロード対象データによって書き替えられることがなく、２次ローダは確実に実行される。
【００２３】
請求項８に記載の発明は、請求項１〜７のいずれかに記載の外部ブートデバイスにおいて、前記アドレスデータは、予め設定された複数のアドレスデータずつに分割された分割アドレステーブルとされ、前記データ転送部は、１の前記分割アドレステーブルに含まれるアドレスデータに対応する分割制御データが読み出される毎に、次の分割アドレステーブルを前記主メモリに読み出すものであることを特徴とする。この構成によれば、アドレスデータも所定数ずつ分割して分割制御データの読み出しと関連させて主メモリに転送されるので、分散転送が可能となる。
【００２４】
請求項９に記載の発明は、請求項８に記載の外部ブートデバイスにおいて、前記各分割アドレステーブルは、テーブルの最後尾に次の前記分割アドレステーブルの書込位置であるアドレスを指定するアドレス情報を有することを特徴とする。この構成によれば、分割アドレステーブルは順次、指定したアドレスに展開される。
【００２５】
請求項１０に記載の発明は、請求項１〜９のいずれかに記載の外部ブートデバイスにおいて、前記分割制御データの読み出し順の設定、及び前記分割制御データの書込位置となる前記アドレスデータの並び替えの少なくとも一方を行う転送順設定手段を備えていることを特徴とする。この構成によれば、主メモリに書き込まれるデータの分散性をより高いものとすることが可能となる。
【００２６】
請求項１１に記載の発明は、請求項１０に記載の外部ブートデバイスにおいて、前記転送順設定手段は、１番目の前記分割アドレステーブルの最後尾以外のアドレスに対応する分割制御データにダミーデータを対応付けていることを特徴とする。この構成によれば、最初に展開される複数のデータがダミーデータであるので、マルウエアによる改竄の機会を抑制できる。
【００２７】
請求項１２に記載の発明は、請求項１０又は１１に記載の外部ブートデバイスにおいて、前記転送データ設定手段は、２番目の前記分割アドレステーブルの先頭アドレスに割込ベクタテーブルを対応付けていることを特徴とする。この構成によれば、ダミーデータの次に割込ベクタテーブルを配置することで、マルウエア用の割込ベクタを可及的に早く書き替えることができ、その分、マルウエアの動きが抑制される。
【００２８】
請求項１３に記載の発明は、請求項１０〜１２のいずれかに記載の外部ブートデバイスにおいて、前記転送データ設定手段は、２番目の前記分割アドレステーブル以降の各分割アドレステーブルを前記主メモリ内の前記起動メモリ領域を超えた領域に読み出すようにアドレス情報を設定することを特徴とする。この構成によれば、ブート中は、マルウエアがＣＰＵの制御を奪ったとしても、この間は、リアルモードであり、ＣＰＵでは起動メモリ領域を超えた領域はアドレス指定できないため、２番目の前記分割アドレステーブルのアドレスデータを改竄することはできない。
【００２９】
請求項１４に記載の発明は、請求項１０〜１３のいずれかに記載の外部ブートデバイスにおいて、２番目の前記分割アドレステーブル以降の各分割アドレステーブルに対して、それぞれ異なるアドレス情報が設定されていることを特徴とする。この構成によれば、分割アドレステーブルに対する分散配置性が向上する。
【００３０】
請求項１５に記載の発明は、請求項１〜１４のいずれかに記載の外部ブートデバイスにおいて、前記データ転送部は、前記データ転送を、前記コントローラを経由して前記主メモリとの間でインターラプト転送によって行うことを特徴とする。この構成によれば、インターラプト転送中は、ＣＰＵの制御によるデータ転送はできないから、マルウエアがＣＰＵの制御を乗っ取っても、主メモリに対するデータの入出力はできない。
【００３１】
請求項１６に記載の発明は、請求項１５に記載の外部ブートデバイスにおいて、ハードウエア割込指示部は、前記インターラプト転送における最後の分割制御データの転送動作を受けて前記ハードウエア割込指示信号の出力動作を行うことを特徴とする請求項１５に記載の外部ブートデバイス。この構成によれば、コントローラによるデータ転送の終了後にＣＰＵに制御を渡すことなく、直ちにハードウエア割込を実行することで、マルウエアの動作が確実に抑制される。
【発明の効果】
【００３２】
本発明によれば、外部ブートによってマルウエアの動きを抑止することができる。
【図面の簡単な説明】
【００３３】
【図１】本発明の一実施形態に係る外部ブートデバイスが適用されるネットワーク通信システムを示す概要図である。
【図２】端末と外部ブートデバイスの基本的な構成の一例を示すブロック図である。
【図３】端末及び外部ブートデバイスの内、主にブートに関連する機能部を示すブロック図である。
【図４】ＲＡＭへのデータ展開手順を説明するための図である。
【図５】ＵＳＢメモリが装着された状態での端末のＣＰＵによって実行されるＢＩＯＳの起動処理の手順を説明するフローチャートである。
【図６】端末のＣＰＵによって実行される外部ＭＢＲのブート処理の手順を説明するフローチャートである。
【図７】ＵＳＢメモリのＣＰＵによって実行されるインターラプト転送順変動処理の手順を説明するフローチャートである。
【図８】ＵＳＢメモリのＣＰＵによって実行されるインターラプト転送順変動処理の手順を説明するフローチャートである。
【図９】ＵＳＢメモリのＣＰＵによって実行されるインターラプト転送準備処理の手順を説明するフローチャートである。
【図１０】端末のＵＳＢホストコントローラとＵＳＢメモリのＵＳＢターゲットコントローラとによって実行されるインターラプト転送の動作を説明するタイムチャート図である。
【発明を実施するための形態】
【００３４】
図１は、本発明の一実施形態に係る外部ブートデバイスが適用されるネットワーク通信システムを示す概要図である。図１に示すネットワーク通信システムは、例えばパーソナルコンピュータを内蔵する情報処理装置の一例である端末１と、この端末１に接続可能な外部ブートデバイスの一例としてのＵＳＢ（UniversalSerial Bus）メモリ２と、インターネット等のネットワーク３とを備えている。端末１はプロバイダ（ＩＳＰ）４を介してネットワーク３と接続されている。本実施形態では、端末１はネットワーク３に接続可能なもので、また、ＵＳＢメモリ２が装着された状態では、後述するようにＵＳＢメモリ２を経由してネットワーク３と接続される構成を有する。ネットワーク３上には複数のＩＳＰ４が配設されており、各ＩＳＰ４には、１又は複数の端末１や各種の情報を提供する図略のＷｅｂサイトが接続されている。ＵＳＢメモリ２は、例えば、端末１からの操作を通して所定のサービスの提供を受ける権限を持つ会員として登録を受ける際に支給される。ＵＳＢメモリ２は、略直方体形状の筐体内にマザーボード（図略）を備えており、マザーボード上には各種の回路素子及び半導体素子が搭載されている。ＵＳＢメモリ２は、内部の記憶部に、固体（自分自身）を識別する情報、所持者となる会員を識別する情報及びその他の情報が記録されている。ＵＳＢメモリ２の構成及び機能等に関しては後述する。
【００３５】
本ネットワーク３には、ＩＳＰ４を介して、１又は所定数の会員サーバ５及び複数の取引先端末６が接続されている（図１では、各々１つが代表して記載されている。）。会員サーバ５は、端末１を所有する乃至は操作を支配し得る会員に関する適宜な情報、例えば会員の氏名、名称、電子メールアドレス、住所等の会員情報等を会員単位で記憶するものである。取引先端末６は、クライアントである各端末１からの取引要求に対する処理、例えば電子決済による処理、取引情報を記憶しかつ、取引に関連する履歴情報の管理を行うものである。会員サーバ５には、前記会員情報の他、必要に応じて端末１に提供可能な情報、例えば会員に提供するサービスを実行する上で必要な処理ソフトウエア、例えば所要の書類を作成するための書類作成プログラムとか、さらには大容量サーバに端末１毎の取引内容及び履歴情報が記憶（保管及び管理）されていてもよい。
【００３６】
なお、本発明におけるネットワーク通信システムは、以下の態様が一例として採用可能である。例えば、端末１は、送信対象のデータに一般的な処理を施してインターネット回線上を送信する汎用端末として使用する場合と、送信対象のデータに特定の処理を施してインターネット回線上を送信する専用端末として使用する場合とを、後述するようにＵＳＢメモリ２によるブートの有無によって切り替え使用可能な態様としている。端末１内には、例えば汎用端末として使用する汎用モードの場合、一般的な文書や図形の作成ソフトウエアを利用しての情報の作成、加工、記憶、更に通信用のソフトウエアを利用しての情報の送受信等の一般的な各処理を実行するプログラムファイル（汎用ＡＰ（application program）という）が格納されている。一方、ＵＳＢメモリ２内には、特定のアプリケーションソフトウエアの実行に関連する処理を行う特定モードのプログラムファイル（特定ＡＰという）が記憶されている。汎用ＡＰは、端末１内の元々のＭＢＲ乃至はローダによって読み出されるＯＳによって動作可能にされるものであり、これに対し、特定ＡＰは、ＵＳＢメモリ２内の２次ローダによって読み出されるＯＳ（特定ＯＳという）によって動作可能にされるものである。より具体的には、会員間である消費者、商店及び企業等の端末１には、特定ＡＰとして、商品やサービスの売買、見積もり乃至は請求、入出金に関する（いわゆる商取引に関する）各書類の作成と通信とを行うソフトウエア、及び必要に応じて所定の認証処理のソフトウエアが、ブート後にＵＳＢメモリ２からロードされる。すなわち、端末１は、特定ＡＰによって、一般的な商取引における決済、例えば業者店舗からの請求書の発行、受領や、購買者側から請求書発行元の契約金融機関の口座への入金（すなわち支払い）指示書、その受領書の発行の他、電子決済の如何を問わず種々の電子書面での送受信処理を可能とするものである。特定ＡＰは、各種書類をテキスト形式の、またバイナリー形式の電子ファイルとして作成可能である。電子ファイルは、例えば会員サーバ５を中継して（あるいは並行して）端末１間で授受される。各金融機関の端末１には、消費者や企業の端末１からの金融的な決済書面に従った決済指示処理（金融機関間での決済処理の指令等）を行う特定ＡＰもインストールされている。登録会員毎に固有の情報が書き込まれたＵＳＢメモリ２が配布される。会員はサービスの提供を受ける場合、このＵＳＢメモリ２を端末１のＵＳＢポートに差し込み、少なくともＵＳＢの正当性の認証処理を、好ましくはさらに個人認証（ＵＳＢメモリ２の正当所持者であることの認証）処理を受けたことを条件としている。
【００３７】
会員サーバ５は、各会員のファイル送受信履歴やそのファイル類等を管理用に記憶する記憶部を備えている。会員サーバ５は、認証機能を備えていてもよく、この場合、認証機能は、会員サーバ５と端末１との間で授受されるファイル、すなわちパケットを閲覧して、会員の正当性の有無の認証を行う態様としてもよい。
【００３８】
また、本ネットワーク通信システムは、他に種々の適用例が考えられる。例えば秘密情報を作成、保管管理する、例えば公的乃至は準公的（民間含む）な機関である団体組織（国、自治体、協会、組合等含む）外にある端末１との間における情報通信・管理体制に適用する例を挙げることができる。団体組織外にある端末との間における情報通信としては、例えば証明書の発行、申請書の発送などが想定される。
【００３９】
なお、ＴＣＰ／ＩＰ（transmissioncontrol protocol/ internet protocol）規約に沿って形成されたパケットによって文書ファイルの送受信を行う場合、受信したパケットを元のファイルに戻したり、送信予定のファイルをパケットに置換して送信したりする。さらに、送信される各パケットのヘッダには、送信元である端末１のグローバルのＩＰアドレス、送信先である他の端末及び会員サーバのグローバルのＩＰアドレスが含まれる。
【００４０】
図２は、端末と外部ブートデバイスの基本的な構成の一例を示すブロック図である。端末１は、図２に示すように、それぞれのチップセット上に、制御手段としてのＣＰＵ（Central Processing Unit）１１、ＭＣＨ（Memory Controller Hub）１２及びＩＣＨ（I/O Controller Hub）１３という公知の構成を備えている。チップセットとは、図略のマザーボードを構成する主要部品で、ＣＰＵ１１や各種メモリ１４，１５、その他ハードディスク（ＨＤＤ１６）や、図略のＣＤ−ＲＯＭ等、マザーボードに繋がっているあらゆる部品間のデータのやり取りをコントロールする回路群である。ＭＣＨ１２は、メモリとＣＰＵ１１との接続を担う機能を持ったチップセットで、３２ビット（あるいは６４ビット）で動作する構成とされている。ＩＣＨ１３は、ＵＳＢメモリ２等の外部デバイスを他の構成要素と接続させる機能を持ったチップセットで、３２ビット（あるいは６４ビット）で動作する構成とされている。端末１と外部ブートデバイス、ここではＵＳＢメモリ２との間のデータの授受は、このＩＣＨ１３、ＭＣＨ１２を介して行われる。また、ＩＣＨ１３には、ＵＳＢメモリ２と具体的にデータの送受を行う、ハードウエアからなるＵＳＢホストコントローラ１３１が形成されている。なお、ＭＣＨ１２、ＩＣＨ１３は３２ビット等で構成されていることから、物理アドレスとして１ＭＢを超えてアクセスすることが可能となる。
【００４１】
ＲＡＭ（Random Access Memory）１４は、主メモリとして機能し、所定の記憶容量、例えば４ＧＢ（なお、Ｂはbyteの略称）を有するものである。ＲＡＭ１４は、起動時のワークエリアとして機能する起動メモリ領域１４１、さらに通常処理を実行するためのワークエリアを有する。起動メモリ領域１４１は、所定の記憶容量、ここではアドレスライン２０ビット仕様、すなわち１ＭByte（なお、正確には、１ＭByte＋６４Ｋbyteであるが、一般的表記を参照し、また記載の便宜上、ここでは、１ＭByteと記述している。）を有する領域である。フラッシュＲＯＭ１５は、ＢＩＯＳ（Basic Input/Output system）プログラムを記憶するものである。ハードディスク（ＨＤＤ）１６は、端末１側のＭＢＲ、汎用ＯＳローダ、汎用ＯＳ、汎用ＡＰ等の各プログラムを記憶するものである。ＲＡＭ１４には、ＭＣＨ１２を介してＣＰＵ１１及びＩＣＨ１３が、さらにフラッシュＲＯＭ１５、ＨＤＤ１６も接続されている。また、ＣＰＵ１１には、操作者が必要な指令や情報を入力するテンキーやマウス等を備える操作部１７及び画像を表示する表示部１８が接続されている。表示部１８は、入力情報の確認のための表示や通信内容の表示のために用いられる。
【００４２】
本実施形態では、ＢＩＯＳは、外部ブートデバイスであるＵＳＢメモリ２が優先的に指定されるように設定されている。なお、指定の優先順は、別途備えられたＣＭＯＳ（Complementary MetalOxide Semiconductor）に書き替え可能に保存されている。
【００４３】
図３は、端末及び外部ブートデバイスの内、主にブートに関連する機能部を示すブロック図である。図４は、ＲＡＭ１４へのデータ展開手順を説明するための図である。ＣＰＵ１１は、ＲＡＭ１４に展開されたプログラムを実行することによって、電源投入後の端末１の起動を行わせる起動処理部１１１、設定されたモード（汎用モード、あるいは特定モード）で操作部１７によって文章作成等の情報作成処理乃至はその類似処理（例えば図表の作成）等を行う情報処理部１１２、作成した情報ファイルあるいは保管している情報ファイルを所望先へ送信するネットワーク通信処理部１１３として機能する。情報処理部１１２は汎用モード、特定モードにおいて、それぞれの汎用ＡＰ、特定ＡＰに従って情報の処理を行う。ネットワーク通信処理部１１３は、本実施形態では後述するように、汎用モードにおいて利用される。なお、公知のように、各処理部１１１〜１１３における実際の情報処理は、ＲＡＭ１４内での演算処理を含めて行われる。
【００４４】
ＵＳＢメモリ２は、端末１に装着された状態で、ＵＳＢターゲットとして位置付けられる。ＵＳＢメモリ２は、所定のデータ類を記憶する記憶部２１、ターゲット側のデータ転送処理を実行するハードウエア構成であるＵＳＢターゲットコントローラ２２、ＵＳＢターゲットコントローラ２２と協働して所定の動作、典型的にはデータ転送の準備に関連する各種処理を実行するＣＰＵ２３、外部ネットワークとの通信を制御するためのネットワーク通信処理部２４、及び外部ネットワークと通信するためのＮＩＣ（Network Interface Card）２５を備えている。
【００４５】
記憶部２１は、第１記憶部２１１〜第４記憶部２１４を有する。第１記憶部２１１は、外部ＭＢＲ１４１１（すなわち外部マスターブートレコード：１次ローダ）が記憶されるものである。外部ＭＢＲ１４１１は、後述するように、ＢＩＯＳブート時にＢＩＯＳの処理によって起動メモリ領域１４１の所定位置（例えばアドレス“0x07C00”）に書き込まれるものである。
【００４６】
第２記憶部２１２は、転送ディスクリプタ（Transfer Descriptors）データ（以下、ＴＤデータ（アドレスデータ）という。）と、ダミーデータ、割込ベクタテーブルのデータ、及び２次ローダとしての例えば特定ＯＳローダを含む制御データとが記憶されるものである。詳細は後述するが、本実施形態では、第２の記憶部２１２に記憶されている制御データは、予め所定のデータ量（例えば１ＫＢ（Ｂはbyteの略称））ずつに分割された分割制御データとされている。２次ローダは、一般的には１ＭＢより少ないデータ量を有するものである。制御データは、ダミーデータの数を調整することで後述するように１ＭＢを有するものとされている。
【００４７】
ＴＤデータは、各分割制御データが起動メモリ領域１４１に転送され、展開される際の書込位置（書込アドレス）の一覧を示すアドレスデータである。アドレスデータは、それぞれ所定のデータ量を有する分割制御データをＲＡＭ１４の起動メモリ領域１４１に展開して、起動メモリ領域１４１上を制御データで埋め尽くすように書き込ませるためのものである。また、このアドレスデータは、一度に起動メモリ領域１４１の所定アドレスに転送し、展開する方式、また１個ずつを転送する方式ではなく、本実施形態では、予め設定されたデータ量乃至はデータ数を有する（ここでは所定個の、例えば５個すなわち５行分のアドレスデータを有する。（図４の番号１４１２を参照））所定数の分割ＴＤデータテーブルに分割される。分割によって形成された分割ＴＤデータテーブル１４１２の最下行（最後尾）には、降順に従って、１番目の分割ＴＤデータテーブルＴＤ[1]から、最後から１つ手前の分割ＴＤデータテーブルＴＤ[n-1]まで、順次次のテーブルの書込アドレスが、後述するようにして設定される。なお、１番目の分割ＴＤデータテーブルＴＤ[1]は外部ＭＢＲから作成される態様でもよい。図４の例を参照すると、分割ＴＤデータテーブルＴＤ[1]の最下行には、例えばアドレス“0x40000”が設定され、分割ＴＤデータテーブルＴＤ[2]が、当該アドレス“0x40000”を基準に書き込まれている。このように順次次の分割ＴＤデータテーブルＴＤ[i]（i：１〜n-1）のアドレスをテーブルの最下行に設定することで、最後の分割ＴＤデータテーブルＴＤ[n]までの書込が可能となる。なお、本実施例では、後述するように、２番目の分割ＴＤデータテーブルＴＤ[2]以降は全て起動メモリ領域１４１を超えた領域に展開している。
【００４８】
割込ベクタテーブル１４１４は、種々の割込が発生した場合に処理するプログラムの先頭のアドレスがそれぞれ対応する所定のINT位置に格納されているテーブル（対応表）をいう。割込ベクタテーブル１４１４のデータは、後述するハードウエア割込信号の入力を受け付けるものである。なお、割込ベクタテーブル１４１４は所定数に分割してもよいが、本実施形態では、割込ベクタテーブル１４１４のデータ量が１回分の転送データ量に相当する場合には、分割せずにそのままとしている。特定ＯＳローダ（２次ローダ）のプログラムは、ハードウエア割込信号を受け付ける、割込ベクタテーブル１４１４のINT“XX”に書き込まれたアドレスデータに、（特定ＯＳローダのプログラムの最初のシーケンス部分に該当する）先頭の分割制御データが配置されることで、プログラムの全体が起動メモリ領域１４１に展開されている。また、分割制御データの読み出しに関しては後述する。なお、分割制御データの一部を構成するダミーデータは、例えば“０”とか“１”を示す簡易なデータであってもよいが、マルウエア対策として、“０”と“１”とが複雑に混在した無意味なコードからなるものでもよい。
【００４９】
第３記憶部２１３は、ＲＡＭ１４上に展開された特定ＯＳローダ（２次ローダ）によってロードされる特定ＯＳ、及び特定ＯＳの動作環境で実行される特定ＡＰの各プログラムが記憶されるものである。第４記憶部２１４は、前述した会員情報や個体識別情報等が記憶されるものである。
【００５０】
ＵＳＢターゲットコントローラ２２は、起動時には、ハードウエアによるデータ転送方式、例えば後述するインターラプト転送、すなわちＵＳＢホストコントローラ１３１からの指示に応じて動作するようになっている。インターラプト転送とは、より詳細には、ＵＳＢターゲットコントローラ２２が、ＵＳＢホストコントローラ１３１からの周期的（例えば１０msec毎）なポーリング信号の受信を待機し、受信の都度、ワークメモリであるＲＡＭ２３Ｂの所定位置に転送予定のデータがあれば、このデータをＵＳＢホストコントローラ１３１に読み出すものである。このデータ転送は、コントローラ２２，１３１によって行われるものであって、プログラムを実行することによって行われるものではないため、ＣＰＵ１１の制御を受けない。
【００５１】
ＣＰＵ２３は、起動時においてＵＳＢターゲットコントローラ２２によるデータ転送動作を支援するものである。ＣＰＵ２３は、ＲＯＭ２３Ａに格納された、ワークメモリ（ＲＡＭ）２３Ｂの所定領域に展開される処理プログラムを実行することによって、第２記憶部２１２に記憶されているデータを用いて所定のサイズの分割制御データに、後述するように加工（作成）する転送データ処理部２３１、分割制御データの転送順を設定し、転送予定のデータをＲＡＭ２３Ｂの所定域に展開する転送順設定部２３２、設定されたデータ転送順に従って転送予定のデータ単位でＲＡＭ２３Ｂの読み出し位置に準備（書き込む）する転送データ準備処理部２３３、データ転送の終了の有無を判断する転送終了処理部２３４、及び２次ローダ処理部２３５として機能する。
【００５２】
転送データ処理部２３１は、第２記憶部２１２に記憶されているデータである制御データ（ダミーデータ、割込ベクタテーブル及び特定ＯＳローダ（２次ローダ））を所定のデータサイズ、例えば１ＫＢの大きさのデータサイズに分割して分割制御データを作成して、第２記憶部２１２に書き込む処理を実行する。分割制御データは、所定数に分割された特定ＯＳローダと、１又は所定数のダミーデータと、（本実施形態では分割されないままの、１ＫＢからなる）割込ベクタテーブルとからなり、全体として起動メモリ領域１４１の容量に対応する。なお、分割制御データ自体は、１度作成すれば、固定的に使用され得るものであることから、情報処理装置１の起動毎に作成処理する方法に代えて、最初に１回だけ作成する態様でもよい。あるいは、作成された結果の分割制御データを第２記憶部２１２に格納する態様としてもよく、この場合には転送データ処理部２３１は必ずしも必要ではない。
【００５３】
転送順設定部２３２は、ＴＤデータを構成する各アドレスデータの順番と、転送データ処理部２３１で作成された分割制御データの転送順及び転送位置とを、所定のタイミングで、好ましくは端末１の外部ブート毎に変更する設定を行うものである。ＴＤデータの順番の変更（並び替え）及び分割制御データの転送順の変更は、外部ブート毎に行わなくてもよいが、ここではその都度行うようにして、より高いセキュリティを確保している。また、かかる変更処理は、外部ブートの開始時点でもよいし、直前（前回）の外部ブート終了後に前もって設定する態様でもよい。
【００５４】
前記変更やアドレスデータの並び替えの方法は、変動条件によって設定される。ここで、図４を参照して、まず、ＴＤデータについて説明する。ＴＤデータは、前述したように分割制御データのそれぞれの転送先を指し示すアドレスのリスト（テーブル）である。このＴＤデータをそのままの形で１回の転送動作で起動メモリ領域１４１に読み出すことは可能であるが、本実施形態では、所定サイズずつ、例えば１ＫＢずつに分割して、分割ＴＤデータテーブルとして転送するようにしている。この結果、後述するように、分割ＴＤデータテーブル自身も分割制御データと同列に扱ってインターラプト転送を可能にしている。なお、前述したように、図４の例では、外部ＭＢＲ１４１１によって作成された分割ＴＤデータテーブルＴＤ[1]は、外部ＭＢＲ１４１１によって起動メモリ領域１４１の所定アドレス、例えばアドレス“0x01000”を基準にした領域に展開され、２番目以降の分割ＴＤデータテーブルＴＤ[2]、…は、ＵＳＢメモリ２から読み出されて起動メモリ領域１４１を超えた領域（例えば、分割ＴＤデータテーブルＴＤ[2]は、アドレス“0x40000”）に展開されている。なお、分割ＴＤデータテーブルＴＤ[1]の展開位置は、外部ブート毎に固定でもよいが、外部ＭＢＲ１４１１によって、無作為に、あるいは所定のルールに従って変更させる態様でもよい。
【００５５】
転送順設定部２３２は、ＴＤデータ内の各アドレスデータに対して、外部ブートの都度、例えば無作為にあるいは所定のルールでシャッフルするなどして並び替えを行うものである。また、転送順設定部２３２は、並び替え後のＴＤデータに対して、先頭側、すなわち転送順に沿って、所定数ずつ、本実施形態では４個ずつのアドレスデータに分割して、これら４個のアドレスデータを含む分割ＴＤデータテーブルＴＤ[i]をそれぞれ作成する。より詳細には、４個のアドレスデータを各分割ＴＤデータテーブルＴＤ[i]の１行目から４行目に対応付け、かつ５行目に、次の分割ＴＤデータテーブルＴＤ[i+1]の展開先となるアドレスデータを設定する。かかる処理によって、分割ＴＤデータテーブルＴＤ[i]が作成される。
【００５６】
次に、分割制御データの転送順及び転送位置の変動について説明する。各分割制御データは、ダミーデータを除けば、特定ＯＳローダ（プログラム）のシーケンスのそれぞれの一部を構成するデータと、自身を識別するための例えば連番情報等の識別情報とを有している。さらに、特定ＯＳローダのそれぞれの一部を構成する各分割制御データの中には、ＲＡＭ１４に分散して展開された場合に特定ＯＳローダ内における次のシーケンスとなる分割制御データへジャンプする位置を特定するアドレス情報が、後述するように転送順設定部２３２によって付加されるようになっている。これによって分割制御データの転送順、転送位置が変更されても、シーケンス通りに特定ＯＳローダが動作可能になるようにされている。
【００５７】
転送順設定部２３２は、新たに作成された各分割ＴＤデータテーブルＴＤ[i]の１行目から４行目の各アドレスデータに対して（あるいは新たに並び替えられたＴＤデータの各アドレスデータに対して）、分割制御データの新たな対応付けを行う。所要数のダミーデータを補充することで、全てのアドレスデータに対して分割制御データを割り振ることができる。さらに、転送順設定部２３２は、少なくとも特定ＯＳローダを構成する分割制御データの全てに対して、その次のシーケンスに対応する（識別情報を有する）分割制御データに割り当てられた、新たな転送先のアドレスデータを含める（書き込む）処理、すなわちジャンプ可能処理を行う。なお、上述したＴＤデータ及び分割制御データに対する処理は、第２記憶部２１２に記憶されている各データを読み出して行われ、処理後に例えばＲＡＭ２３Ｂの所定のメモリエリアに一時的に保管される。
【００５８】
この結果、ＲＡＭ１４に展開される分割制御データの転送順及び転送位置の変動に加えて、転送位置の指定順も起動の都度変動されることになる。なお、外部ブートにおける分割制御データの転送順、転送位置及び転送位置の指定順の各変動は、少なくともいずれか１つ以上を実行することが好ましく、いずれか２つ乃至は３つ全てを実行することがセキュリティ上はさらに好ましい。また、ＴＤデータの各アドレスデータを並び替える処理と、分割制御データとＴＤデータの各アドレスデータとの割り振り処理とは少なくとも一方のみ行う態様としてもよい。
【００５９】
また、転送順設定部２３２は、前述した少なくとも１つ以上の変動処理を、無作為にあるいは所定のルールに基づいて行う。所定のルールとしては、第４記憶部２１４に書き込まれている会員情報や個体識別情報の少なくとも一方を利用したもの、さらには必要に応じてＵＳＢメモリ２が計時部を備えている態様では時間情報や、通信履歴に関する情報を記憶している態様では通信履歴情報を加味したものである。
【００６０】
そして、転送順設定部２３２は、新たに並び替えたアドレスデータ順に沿って作成した各分割ＴＤデータテーブルと、各アドレス順に対応付けて作成した新たな各分割制御データとを、ＲＡＭ２３Ｂ内の所定位置に一時的に準備する。なお、前述したように、転送順設定部２３２は、分割ＴＤデータテーブルＴＤ[1]を起動メモリ領域１４１内の所定位置に設定すると共に、分割ＴＤデータテーブルＴＤ[1]内の１行目から４行目のアドレスデータに対応する分割制御データにダミーデータを割り当てている。すなわち、転送順設定部２３２は、外部ブートの毎に、分割ＴＤデータテーブルＴＤ[1]内の１行目から４行目のアドレスデータについては変動を行う一方、１行目から４行目のアドレスデータに対応する分割制御データとしてはダミーデータを変動させて、あるいは固定的に割り当てている。また、分割ＴＤデータテーブルＴＤ[1]内の５行目のアドレスデータ、すなわち分割ＴＤデータテーブルＴＤ[2]内の展開先についても、固定する態様の他、変動させる態様でもよい。
【００６１】
転送順は、１番目の分割ＴＤデータテーブルＴＤ[1]が先頭として設定される。この１番目の分割ＴＤデータテーブルＴＤ[1]は、外部ＭＢＲ１４１１で作成されるようにしているが、転送順設定部２３２で作成し、例えば外部ＭＢＲ１４１１がＲＡＭ１４に転送する態様であってもよい。あるいは、分割ＴＤデータテーブルＴＤ[1]の配置アドレスのみを外部ＭＢＲが作成し、これに基づいてインターラプト転送開始直後に分割ＴＤデータテーブルＴＤ[1]を取り込む態様としてもよい。また、外部ＭＢＲ１４１１で分割ＴＤデータテーブルＴＤ[1]を作成する場合、転送順設定部２３２で作成した２番目の分割ＴＤデータテーブルＴＤ[2]の配置アドレスと一致させる必要があるが、これは、２番目の分割ＴＤデータテーブルＴＤ[2]の配置アドレスを固定化する態様、あるいは両者共通のルールでＴＤデータの並び替えを行うようにすればよい。
【００６２】
転送データ準備処理部２３３は、新たに作成された分割ＴＤデータテーブルＴＤ[2]、…分割ＴＤデータテーブルＴＤ[n]と、新たに作成された分割制御データとから、転送順に従った並び替えを行う。本実施例では、分割ＴＤデータテーブルＴＤ[1]の１行目のアドレスデータの位置に転送される分割制御データ（本実施例ではダミーデータ１４１３（図４参照））、分割ＴＤデータテーブルＴＤ[1]の２行目のアドレスデータの位置に転送される分割制御データ（本実施例ではダミーデータ）、…、分割ＴＤデータテーブルＴＤ[1]の４行目のアドレスデータの位置に転送される分割制御データ（本実施例ではダミーデータ）、分割ＴＤデータテーブルＴＤ[1]の５行目のアドレスデータの位置に転送される分割ＴＤデータテーブルＴＤ[2]、分割ＴＤデータテーブルＴＤ[2]の１行目のアドレスデータの位置に転送される分割制御データ（本実施例では割込ベクタテーブル１４１４（図４参照））、分割ＴＤデータテーブルＴＤ[2]の２行目のアドレスデータの位置に転送される分割制御データ、…、分割ＴＤデータテーブルＴＤ[n]の５行目のアドレスデータの位置に転送される分割制御データの順番である。このように、データ転送においては、分割ＴＤデータテーブルＴＤ[1]と分割制御データとを分割データとして同列に扱っている。なお、分割データの並び替えはデータ自体を転送順に並び替えて一時的に保管する態様でもよいし、各分割データに転送順情報を付し、転送時に順次転送位置に移す態様としてもよい。なお、分割ＴＤデータテーブルＴＤ[2]の１行目のアドレスデータの位置に割込ベクタテーブル１４１４を配置するのは、通常、割込ベクタテーブル１４１４の位置には、仮にマルウエアが存在した場合に、この領域にマルウエア用の割込ベクタがマルウエアによって作成されることから、インターラプト転送の可及的に早い段階で当該領域を正規の割込ベクタテーブルで更新することで、マルウエア用の割込ベクタを素速く削除するためである。
【００６３】
また、転送データ準備処理部２３３は、順次、次の転送予定の分割データをＲＡＭ２３Ｂの所定位置に移し替えて、次のポーリング信号が受信されるまで待機させるものである。転送データ準備処理部２３３は、ポーリング信号の受信周期に応じて、設定された転送順に従って分割データを準備する。ＲＡＭ２３Ｂの所定位置に準備された分割データは、ポーリング信号を受信する毎にＵＳＢターゲットコントローラ２２によって読み取られ、ＵＳＢホストコントローラ１３１側へ取り込まれる。ポーリング信号毎に、かかる動作を繰り返すことで、ＵＳＢメモリ２からの転送データがＲＡＭ１４に書き込まれる（埋め込まれる）。なお、ＵＳＢターゲットコントローラ２２から読み出される分割データのうち、分割ＴＤデータテーブルＴＤ[2]以降の分割ＴＤデータテーブルは起動メモリ領域１４１外であって、好ましくはそれぞれ異なる位置に読み出される一方、分割制御データは全て起動メモリ領域１４１内に読み出される。
【００６４】
ＵＳＢホストコントローラ１３１からの物理アドレス（本実施例では３２ビット対応の４ＧＢまで可能）によって分割ＴＤデータテーブルＴＤ[2]以降の分割ＴＤデータテーブルを起動メモリ領域１４１外に書き込むことで、仮にマルウエアがＣＰＵ１１を制御して分割ＴＤデータテーブルのデータを書き替えようとしても、リアルモード環境では、チップセット内のセグメントレジスタ内のセグメントデータとオフセットデータから算出されるリニアアドレスによるアクセスでは、１ＭＢ以上すなわち起動メモリ領域１４１外に対するアクセスができないため、複製動作が防止でき、マルウエアの動きを抑止できる。仮に、マルウエアがいわゆるアンリアルモード（Unreal mood）への環境設定を行う場合を考慮しても、環境変更処理等に時間を要することとなって、ポーリング周期内での動きは、結果抑止されることとなる。なお、アンリアルモードとは、リアルモード環境においてデータセグメントレジスタのアクセスリミットを４ＧＢに変更することによって、データアクセスのみ１ＭＢ以上、すなわち起動メモリ領域１４１外に対してアクセスを可能にした特殊な状態を指す。また、分割ＴＤデータテーブルＴＤ[1]に関しては、インターラプト転送での先頭から４個分の分割制御データ、すなわち先頭の１行目〜４行目の分割制御データに全てダミーデータを設定することで書き替えの機会を抑止しているし、書き替えられて起動メモリ領域１４１に何等かの改変を施したとしても、直後の分割制御データによる起動メモリ領域１４１の全域への更新によって改変内容は消去されることになる。従って、インターラプト転送前にマルウエア等によってＢＩＯＳから起動メモリ領域１４１への不正な書き込み、仕掛けが仮に施されたとしても、起動メモリ領域１４１の全域にインターラプト転送によって分割制御データを展開することで全て消去されることとなる。
【００６５】
転送終了処理部２３４は、最後の転送予定のデータのＲＡＭ２３Ｂの所定位置への移し替え（準備）が終了すると、ＲＡＭ２３Ｂ内の、あるいは他のメモリからなる制御レジスタに終了フラグをセットする。ＵＳＢターゲットコントローラ２２は、次のポーリング信号を受けたときに、制御レジスタに終了フラグがセットされていると、ＵＳＢホストコントローラ１３１にハードウエア割込指示信号を送信する。なお、ＵＳＢターゲットコントローラ２２は、ＲＡＭ２３Ｂの所定位置に転送すべきデータがない場合、一連の転送処理が終了したとして、ハードウエア割込指示信号を生成して、ＵＳＢホストコントローラ１３１に送信するようにしてもよい。
【００６６】
ハードウエア割込指示信号は、起動メモリ領域１４１の所定アドレスに転送される。すなわち、ハードウエア割込指示信号は、インターラプト転送で起動メモリ領域１４１に展開された割込ベクタテーブル１４１４のＩＮＴ“XX”に転送される。ＣＰＵ１１の制御は、かかるハードウエア割込指示信号、すなわちハードウエア割込有りとして、当該ＩＮＴ“XX”の位置に書き込まれているアドレスにジャンプする。そして、ＣＰＵ１１は、ＩNT“XX”に該当する位置に書き込まれている位置情報、すなわち、特定ＯＳローダ（２次ローダ）のプログラムの内、先頭のシーケンス部分にジャンプして、これを実行し、続いて順次、ジャンプ先のアドレスを参照して、順次展開されている２次ローダの次のシーケンスにジャンプして、それらを次々に実行させる。
【００６７】
２次ローダ処理部２３５は、端末１側のＣＰＵ１１によって２次ローダが実行された場合に、第３記憶部２１３から特定ＯＳをＲＡＭ１４の１ＭＢ以上の領域に読み出すものである。特定ＯＳは必要に応じて特定のＡＰを読み出す。そして、読み出された特定ＡＰによって、前述したように特定モードでの情報処理等が可能となる。２次ローダは、特定ＯＳローダに限らず、汎用ＯＳローダであってもよい。
【００６８】
ネットワーク通信処理部２４は、ＲＯＭ２４Ａに格納されているプログラムであって、ＲＡＭ２４Ｂに展開された処理プログラムがＣＰＵ２３によって実行されることによって、ＮＩＣ（NetworkInterface Card）２５を介してインターネット等の外部ネットワークと通信する処理を行うものである。なお、ＲＯＭ２４ＡはＲＯＭ２３Ａとで構成され、ＲＡＭ２４ＢはＲＡＭ２３Ｂとで構成されたもので、図４では、機能の違いによって別個に表しているものである。ＮＩＣ２５には図略のルータが装備され、乃至はルータとシリアルに接続されている。このルータは、例えば、送信信号乃至は受信信号としての各パケットの所定位置に付加されている送信先を示すアドレス情報が、インターネット用の規約に基づくグローバルＩＰアドレスか、このグローバルＩＰアドレスの付し方とは異なる（グローバルＩＰアドレスとは識別可能な形態である）専用ネットワーク用の、例えばイーサネット（登録商標）用等に準じた所定のローカルＩＰアドレス（ＭＡＣアドレス）かを識別するためのアドレス情報（ルーティングテーブルやａｒｐ（Address Resolution Protocol）テーブル）の設定を行うものである。パケットは、テーブルと照合されて、アドレスの一致したルートへのみ送信され、これにより伝送路をインターネット経由か、専用ネットワークかにソフトウエア的に切り換えることができる。
【００６９】
ここで、ブートの流れを簡単に説明する。ブート時における情報の流れ及びその手順は、図４中に矢印で示されている。まず、端末１の電源投入を受けて、ＣＰＵ１１は、ＢＩＯＳを起動し、ＢＩＯＳの処理によってＵＳＢメモリ２から外部ＭＢＲ１４１１を取り込む。外部ＭＢＲ１４１１の取込が終了すると、ＣＰＵ１１の処理が外部ＭＢＲ１４１１に渡されて、外部ＭＢＲ１４１１のマスターブートレコードが１次ローダとして機能する。まず、１番目の分割ＴＤデータテーブルＴＤ[1]１４１２が作成される（図４の矢印（１））。次に、外部ＭＢＲ１４１１は、ＵＳＢホストコントローラ１３１に対してインターラプト転送の開始指示（コマンド）を行う（図４の矢印（２））。まず、分割ＴＤデータテーブルＴＤ[1]の１行目のアドレスデータがＵＳＢホストコントローラ１３１で取得され、当該アドレスデータと１番目に転送される分割データであるダミーデータ１４１３とがＭＣＨ１２を経てＲＡＭ１４に送られて（図４の矢印（３））、当該アドレスに書き込まれる（図４の矢印（４））。以後、ＣＰＵ１１の制御を受けることなく、ＵＳＢホストコントローラ１３１とＵＳＢターゲットコントローラ２２との間で、ＵＳＢメモリ２から、分割データを順次取り込むことが可能となり、分割ＴＤデータテーブルＴＤ[1]の５行目のアドレスデータがＵＳＢホストコントローラ１３１で取得され、当該アドレスデータと５番目に転送される分割データである分割ＴＤデータテーブルＴＤ[2]とがＭＣＨ１２を経てＲＡＭ１４に送られて、起動メモリ領域１４１外の当該アドレス“0x40000”に書き込まれる（図４の矢印（５））。
【００７０】
この分割ＴＤデータテーブルＴＤ[2]の各行のアドレスデータに対応する分割データがＵＳＢメモリ２から順次読み込まれて、起動メモリ領域１４１に展開される。ＵＳＢホストコントローラ１３１は、分割ＴＤデータテーブルＴＤが転送される毎に、その分割ＴＤデータテーブルに含まれるアドレスデータを一時保管し、次に転送される分割制御データにアドレスデータを対応付けてＭＣＨ１２に送出するようにしている。ＭＣＨ１２は、転送されてきたデータからアドレスデータを取得し、このアドレスに分割制御データ１４１５を書き込ませる。
【００７１】
ここでは、分割ＴＤデータテーブルＴＤ[2]の１行目のアドレスデータに対応して割り込みベクタテーブル１４１４がＵＳＢメモリから読み取られて書き込まれる（図４の矢印（６））。そして、順次、分割ＴＤデータテーブルＴＤ[i]が展開され（図４の矢印（７））、最後の分割ＴＤデータテーブルＴＤ[n]の最下行のアドレスデータに対応する分割データがＵＳＢ２から読み込まれ、起動メモリ領域１４１に展開されると、同時にＭＣＨ１２経由（ＣＰＵ１１を経由することなく）で、ハードウエア割込指示信号が割込ベクタテーブルのＩＮＴ“XX”に送信される（図４の矢印（８））。ＣＰＵ１１は、このハードウエア割込指示信号を受けて、割込のコマンドを、分割された特定ＯＳローダの先頭の分割データが展開されている分割制御データ（先頭）１４１５の基準アドレスにジャンプし（図４の矢印（９））、これによって特定ＯＳローダの実行が開始される。以上の処理によって、インターラプト転送前の起動メモリ領域１４１に存在するマルウエア等は全て消去される。
【００７２】
図５は、ＵＳＢメモリが装着された状態での端末１のＣＰＵ１１によって実行されるＢＩＯＳの起動処理の手順を説明するフローチャートである。まず、端末１の電源がオンされ（ステップＳ１）、すなわちマザーボード上のクロックジェネレータが電源供給を受けてクロックパルスを出力し始めると、メモリや周辺機器のデバイスのチェック（ＰＯＳＴ処理）が開始される（ステップＳ３）。次いで、外部デバイスとしてＵＳＢメモリ２が装着されているか否かの判断が、例えば公知のハンドシェイク信号の授受を利用するなどして確認される。ここではＵＳＢメモリ２が装着されているので、判断処理を省略し、ＵＳＢメモリ２が起動される。すなわち、ＵＳＢメモリ２が装着されていると、優先順位に従い、ＢＩＯＳ起動ルーチンによってＵＳＢメモリ２のＭＢＲ（のマスターブートレコード）が、外部ＭＢＲ１４１１として起動メモリ領域１４１に読み込まれる（ステップＳ５）。なお、端末１のポートにＵＳＢメモリ２が装着されていなければ（他のポートにも外部デバイスが装着されていなければ）、端末１のＨＤＤからＭＢＲが選択されて読み込まれる。
【００７３】
次いで、外部ＭＢＲ１４１１のマスターブートレコードの書き込みが終了したか否かが判断され（ステップＳ７）、外部ＭＢＲ１４１１のマスターブートレコードの書き込みが終了していないのであれば、ステップＳ５に戻って同様の処理が繰り返される。一方、終了したのであれば、ＣＰＵ１１の制御が外部ＭＢＲ１４１１のマスターブートレコードに移される（ステップＳ９）。
【００７４】
図６は、端末１のＣＰＵ１１によって実行される外部ＭＢＲのブート処理の手順を説明するフローチャートである。まず、外部ＭＢＲのプログラムが実行され（ステップＳ２１）、次いで、分割ＴＤデータテーブルＴＤ[1]が作成され、起動メモリ領域１４１に設定される（ステップＳ２３）。そして、インターラプト転送のための環境設定信号がＵＳＢホストコントローラ１３１に送出され（ステップＳ２５）、この後、インターラプト転送を開始するコマンドがＵＳＢホストコントローラ１３１に送出される（ステップＳ２７）。
【００７５】
図７、図８は、ＵＳＢメモリ２のＣＰＵ２３によって実行されるインターラプト転送順変動処理の手順を説明するフローチャートである。まず、ＵＳＢホストコントローラ１３１からインターラプト転送のための環境設定信号が受信されたか否かが判断される（ステップ＃１）。受信されていなければ、本フローを抜ける。一方、環境設定信号が受信されたのであれば、まず、ＴＤデータの並び替えが、前述したように無作為乃至は所定のルールに従って実行される（ステップ＃３）。ＴＤデータの並び替え方法は、前述したように、乱数発生を利用する無作為式でもよいし、会員識別情報等、その他、日付、通信履歴等の各種の情報を利用する態様でもよい。これによれば、高い変動性が得られ、さらにＵＳＢメモリ２毎に異なるという点で好ましい。
【００７６】
新たに並び替えられたＴＤデータは先頭から所定数ずつ、本実施形態では４個ずつ分割されて、それぞれ分割ＴＤデータテーブルＴＤ[i]（i＝2，3，…n）が作成される（ステップ＃５）。より詳細には、これらの各分割ＴＤデータテーブルＴＤ[i]の１〜４行目には、並び替えられた順番でアドレスデータが設定される。なお、本実施形態では、前述したように最初の分割ＴＤデータテーブルＴＤ[1]は外部ＭＢＲで作成される態様としている。
【００７７】
次いで、これらの各分割ＴＤデータテーブルＴＤ[i]の５行目に次の分割ＴＤデータテーブルＴＤ[i+1]のアドレスデータが設定される（ステップ＃７）。なお、前述したように、２番目の分割ＴＤデータテーブルＴＤ[2]以降の各分割ＴＤデータテーブルの配置位置は予め設定されており、かかる設定済みのアドレスが設定される。但し、各分割ＴＤデータテーブルの配置位置が予め設定されていない態様も考えられ、この場合には、新たに作成された各分割ＴＤデータテーブルＴＤ[i]の配置アドレスを新たに作成して、ステップ＃７を実行すればよい。
【００７８】
さらに、本実施形態では、分割ＴＤデータテーブルＴＤ[2]の１行目に分割制御データとして割込ベクタテーブルが設定され（ステップ＃９）、続いて、分割ＴＤデータテーブルＴＤ[2]の１行目以外の全ての分割ＴＤデータテーブルの１〜４行目に、分割制御データ（特定ＯＳローダ、ダミーデータ）の割り振りが行われる（ステップ＃１１）。なお、ステップ＃７〜ステップ＃１１の処理は、特に順番が入れ替わってもよい。
【００７９】
続いて、割り振り後の、特定ＯＳローダを構成する（すなわちダミーデータを除いた）分割制御データの各内部に、次のシーケンスとなる分割制御データの配置アドレスの設定が行われる（ステップ＃１３）。この配置アドレスの設定処理によって、特定ＯＳローダを分割した分割制御データが起動メモリ領域１４１で分散配置されても、プログラムのシーケンスに従った処理が実行可能となる。なお、次のシーケンスとなる分割制御データの配置アドレスの設定に代えて、各分割制御データ内に最後の命令として例えばジャンプ命令とそのアドレスを付加する態様でもよい。
【００８０】
そして、かかる配置アドレスの設定処理が施された結果、分割ＴＤデータテーブルＴＤ[i]、及び分割制御データからなる分割データが、転送順（ｊ）に設定される（ステップ＃１５）、次いで、ＲＡＭ２３Ｂに一時的に保管される（ステップ＃１７）。
【００８１】
すなわち、転送順（ｊ）は、分割制御データの１〜４番目（本実施形態では全てダミーデータ）、分割ＴＤデータテーブルＴＤ[2]、分割制御データの５〜８番目（本実施形態では５番目の分割制御データは、割込ベクタテーブル）、分割ＴＤデータテーブルＴＤ[3]、分割制御データの９〜１２番目、…、そして最後の分割ＴＤデータテーブルＴＤ[n]、分割制御データの最後の４個となる。
【００８２】
図９は、ＵＳＢメモリ２のＣＰＵ２３によって実行されるインターラプト転送準備処理の手順を説明するフローチャートである。まず、データ転送順ｊが値１にセットされる（ステップ＃２１）。次いで、ｊ番目の転送順となる分割データがセットされる（ステップ＃２３）。続いて今回の転送予定の分割データが最後のデータか否かが判断され（ステップ＃２５）、最後のデータでなければ、ｊ＝ｊ＋１として転送順が１だけインクリメントされる（ステップ＃２７）。次いで、次のポーリング信号を待つための所定時間（ポーリング周期）が経過するまで待機する（ステップ＃２９）。なお、このポーリング周期の間に、ＲＡＭ２３にセットされた分割データがＵＳＢターゲットコントローラ２２によってＵＳＢホストコントローラ１３１側に読み出される。そして、所定時間が経過すると、ステップ＃２３に戻って、次の転送対象の分割データがセットされる。一方、ステップ＃２５で、最後のデータであれば、終了フラグがセットされる（ステップ＃３１）。
【００８３】
図１０は、端末１のＵＳＢホストコントローラ１３１とＵＳＢメモリ２のＵＳＢターゲットコントローラ２２とによって実行されるインターラプト転送の動作を説明するタイムチャート図である。
【００８４】
インターラプト転送のコマンドは、外部ＭＢＲの実行によって、ＣＰＵ１１、ＭＣＨ１２、ＩＣＨ１３、及びＵＳＢメモリ２側に送信される。このコマンドを受けると、ＵＳＢホストコントローラ１３１からＵＳＢターゲットコントローラ２２に対して、送信要求の有無を確認するために所定周期毎のポーリング動作が開始される（処理Ｔ１）。なお、所定周期の管理は、例えばＵＳＢホストコントローラ１３１が管理するタイマを設定し、その時間を計時することで行われる。
【００８５】
ＵＳＢターゲットコントローラ２２は、ポーリング信号を受信すると、インターラプト転送のコマンドに応じて予めＲＡＭ２３Ｂに準備した、１番目の分割制御データを読み出してＵＳＢホストコントローラ１３１に送出する（処理Ｑ１）。この１番目の分割制御データは、ＵＳＢホストコントローラ１３１に取り込まれて、ＭＣＨ１２を経てアドレスデータが指示する、起動メモリ領域１４１の配置位置に展開される（処理Ｔ３）。なお、１番目の分割制御データは、前述したように、分割ＴＤデータテーブルＴＤ[1]の１行目のアドレスデータに対応する位置に書き込まれるダミーデータ１４１３である。次いで、所定時間が計時されると（処理Ｔ５）、ポーリング信号が出力され（処理Ｔ７）、このポーリング信号に対応して２番目の分割制御データが読み出されてＵＳＢホストコントローラ１３１に送信される（処理Ｑ３）。ＵＳＢホストコントローラ１３１は、２番目の分割制御データをＭＣＨ１２を介して起動メモリ領域１４１内の起動メモリ領域１４１の配置位置に展開する。その後、ＵＳＢホストコントローラ１３１及びＭＣＨ１２を介して、分割ＴＤデータテーブルＴＤ[2]が制御データとしてＲＡＭ１４の起動メモリ領域１４１外の所定の配置位置、例えばアドレス“0x40000”に読み出される（処理Ｑ５）。次いで、分割制御データとしての割込ベクタテーブル１４１４が読み出され（処理Ｑ７）、分割ＴＤデータテーブルＴＤ[2]の１行目のアドレスデータに対応する位置、例えば起動メモリ領域１４１内のアドレス“0x00000”に書き込まれる。
【００８６】
かかる処理が繰り返されて、最後の分割制御データが読み出されて（処理Ｑ９）、分割ＴＤデータテーブルＴＤ[n]の４行目のアドレスデータに対応する位置に書き込まれてインターラプト転送が終了する。この結果、ＲＡＭ１４の起動メモリ領域１４１内は、制御データで埋め尽くされ、すなわちインターラプト転送前の起動メモリ領域１４１の全域は制御データで更新される。従って、仮にマルウエアが潜伏等していても消去されることとなる。
【００８７】
なお、この時、ＣＰＵ２３の転送終了処理部２３４は、ＲＡＭ２３Ｂ内の制御レジスタに終了フラグをセットする。そして、ＵＳＢターゲットコントローラ２２は、この終了フラグの存在を検出すると、ハードウエア割込指示信号を生成し、ＵＳＢホストコントローラ１３１に送出する（処理Ｑ１１）。このハードウエア割込指示信号は、ＭＣＨ１２を経てＲＡＭ１４内の割込ベクタテーブル１４１４のＩＮＴ“XX”に遷移させる。続いて、先頭の分割制御データ、すなわち特定ＯＳローダが起動することとなる。
【００８８】
なお、本発明は、以下の態様を採用することが可能である。
【００８９】
（１）本実施形態では、外部ブートデバイスとしてＵＳＢメモリ等の外部デバイスを採用したが、これに限定されず、少なくとも、ＣＰＵ及びＲＯＭ、ＲＡＭを内蔵するデバイスであればよい。例えばＩＣカードでもよいし、携帯型の通信機器（端末１に相当）に内蔵された態様であってもよい。
【００９０】
（２）インターラプト転送は、以下のような態様で実行することも可能である。すなわち、分割ＴＤデータテーブルＴＤ[2]の１行目のアドレスデータについては前記実施形態のように、割込ベクタテーブルを割り振る一方、この分割ＴＤデータテーブルＴＤ[2]の１行目の直後、好ましくは２行目のアドレスデータに対して、部分的なローダ（以後、準ローダという）を割り振っておく。この２行目のアドレスデータは、割込ベクタテーブル１４１４のＩＮＴ“XX”に記述されたアドレスデータと一致させておく。さらに、ＣＰＵ２３は、この準ローダのインターラプト転送が終了した時点で、最初の終了フラグを立てて、ＵＳＢターゲットコントローラ２２にハードウエア割込信号を生成させる。終了フラグは、次のインターラプト転送における転送予定データがない場合、また、転送データが所定のデータ量を有しない場合に生成される。従って、準ローダのデータ量を所定データ量未満としておけば、この準ローダのインターラプト転送の時点で終了フラグを生成することができる。
【００９１】
かかる仕掛けを施すことによって、分割ＴＤデータテーブルＴＤ[2]の１行目に対するインターラプト転送で割込ベクタテーブル１４１４が書き込まれ、次のインターラプト転送で準ローダが書き込まれる。そして、この直後にハードウエア割込指示信号が割込ベクタテーブル１４１４のＩＮＴ“XX”に送信されて準ローダが起動することとなる。準ローダは、後述する処理を実行した後、環境設定信号をＵＳＢホストコントローラ１３１を介して、ＵＳＢターゲットコントローラ２２に送信するように指示されている。その結果、インターラプト転送動作が再開され、次の分割ＴＤデータテーブルＴＤ[2]の３行目のアドレスデータに対応して割り振られた分割制御データがインターラプト転送される。なお、分割ＴＤデータテーブルＴＤ[2]の３行目〜分割ＴＤデータテーブルＴＤ[n]の４行目（すなわち最後の分割制御データの転送先）の間に、準ローダの書き込まれたアドレスに等しいアドレスデータに特定ＯＳローダの先頭の分割制御データが書き込まれるようにしておく。これによって、全てのインターラプト転送が終了した時点で発生する（いわゆる２回目の）終了フラグによって、ハードウエア割込指示が発生して、特定ＯＳローダの先頭の分割制御データにジャンプする結果、特定ＯＳローダが起動開始されることとなる。かかる設定及び処理は、転送順設定部２３２〜２次ローダ処理部２３５によって実行される。
【００９２】
上記において、準ローダは、割込ベクタテーブルの所定のＩＮＴに対して、ハードウエア割込の禁止を設定する割込コントローラＰＩＣ（Programable Interrupt Controller）命令を設定し、かつＣＰＵ１１の処理を停止するＨＡＬＴ命令を設定する処理プログラムである。但し、割込コントローラＰＩＣでは、ＩＮＴ“XX”のハードウエア割込は禁止から除かれている。
【００９３】
このように、起動メモリ領域１４１外に設定した分割ＴＤデータテーブルで設定される準ローダを利用して、次にＩＮＴ“XX”からハードウエア割込が発行されるまで、ＣＰＵ１１の動作を完全に停止するようにしたので、マルウエアの動きを抑止した状態で、１ＭＢを特定ＯＳローダに更新することができる。
【００９４】
（３）適用される情報処理装置は、会員サーバ５や取引先端末６でもよい。また、端末１の他、情報処理機能を有する装置であれば、データサーバ、携帯通信端末にも適用可能である。
【符号の説明】
【００９５】
１  端末（情報処理装置）
１１，２３  ＣＰＵ
１２  ＭＣＨ（コントローラ）
１３  ＩＣＨ（コントローラ）
１３１  ＵＳＢホストコントローラ（コントローラ）
１４  ＲＡＭ（主メモリ）
１４１  起動メモリ領域
１５  フラッシュメモリ
１６  ＨＤＤ
２  ＵＳＢメモリ（外部ブートデバイス）
２１１  第１記憶部（第１の記憶部）
２１２  第２記憶部（第２の記憶部）
２２  ＵＳＢターゲットコントローラ（データ転送部）
２３  ＣＰＵ（データ転送部）
２３１  転送データ処理部
２３２  転送順設定部（転送順設定手段）
２３３  転送データ準備処理部
２３４  転送終了処理部（ハードウエア割込指示部）
２３５  ２次ローダ処理部
２３Ｂ  ＲＡＭ（データ転送部）
【図１】
2013092946.tif 000003
【図２】
2013092946.tif 000004
【図３】
2013092946.tif 000005
【図４】
2013092946.tif 000006
【図５】
2013092946.tif 000007
【図６】
2013092946.tif 000008
【図７】
2013092946.tif 000009
【図８】
2013092946.tif 000010
【図９】
2013092946.tif 000011
【図１０】
2013092946.tif 000012