(57)【特許請求の範囲】
【請求項１】
機密保護ガーベージコレクションを実行する方法であって、該方法は、モバイルデバイスによって実行され、
該方法は、
受信器手段が、無線ネットワークを介して機密保護オブジェクトを該モバイルデバイスにおいて受信するステップであって、該機密保護オブジェクトは、暗号化されている、ステップと、
復号化手段が、該機密保護オブジェクトを復号化することにより、機密オブジェクトを取得するステップと、
格納手段が、該モバイルデバイスのメモリーに該機密オブジェクトを格納するステップと、
アクセス手段が、該モバイルデバイス上で動作するソフトウェアアプリケーションを用いて、該機密オブジェクトにアクセスするステップであって、該アクセスすることは、該機密オブジェクトを参照することを含む、ステップと、
判定手段が、トリガーを待つステップであって、該トリガーは、機密保護ガーベージコレクション動作が開始されるべきであることを示すものである、ステップと、
該判定手段が、該トリガーが発生したか否かを判定するステップと、
該トリガーが発生した場合に、該判定手段が、該ソフトウェアアプリケーションが該機密オブジェクトを参照しないことを要求するステップであって、該ソフトウェアアプリケーションが該機密オブジェクトを参照していないために該機密オブジェクトが到達不能になる、ステップと、
該判定手段が、該メモリー内の該機密オブジェクトの位置に基づいて、該機密オブジェクトが到達不能になったか否かを判定するステップと、
該機密オブジェクトが到達不能になったという判定に基づいて、抹消手段が、該到達不能な機密オブジェクトを該メモリーから抹消するステップと、
該抹消するステップの後に、再生利用手段が、該機密オブジェクトが使用していた該メモリーを再生利用するステップと
を含む、方法。
【請求項２】
プロセッサおよびメモリーを含むモバイルデバイス上で、機密保護ガーベージコレクションをトリガーする方法であって、
該方法は、
該プロセッサが、トリガーを待つステップであって、該トリガーは、機密保護ガーベージコレクション動作が開始されるべきであることを示すものである、ステップと、
該プロセッサが、該トリガーが発生したか否かを判定するステップと、
該トリガーが発生した場合に、該プロセッサが、該メモリー内に格納された機密オブジェクトの位置に基づいて、該モバイルデバイス上で動作するアプリケーションが機密オブジェクトを参照しないことを要求するステップであって、該機密オブジェクトは、暗号化されている機密保護オブジェクトの復号化バージョンである、ステップと、
該プロセッサが、該参照されない機密オブジェクトに対して機密保護ガーベージコレクションを実行するステップと
を含み、
該機密保護ガーベージコレクションは、該参照されない機密オブジェクトを読み出し不能にする、方法。
【請求項３】
モバイルデバイス上で動作するガーベージコレクション・システムであって、該モバイルデバイスは、ソフトウェア・プログラムにより使用される機密オブジェクトを格納するメモリーを含み、該機密オブジェクトは、該モバイルデバイス上に格納されている機密保護オブジェクトの復号化バージョンであり、該機密保護オブジェクトは、暗号化されており、
該システムは、
トリガリング・イベントに関連するパラメータを格納するためのコンフィギュレーション・データ構造であって、該トリガリング・イベントは、機密保護ガーベージコレクション動作が開始されるべきであることを示すものである、コンフィギュレーション・データ構造と、
該コンフィギュレーション・データ構造および該メモリーへのデータ・アクセス経路を有するガーベージコレクション・モジュールと
を含み、
該ガーベージコレクション・モジュールは、該トリガリング・イベントを検出したことに基づいて機密保護ガーベージコレクション動作を実行するように構成されており、該トリガリング・イベントの検出は、該コンフィギュレーション・データ構造に格納されている該パラメータに基づいて行われ、
該機密保護ガーベージコレクション動作は、該メモリー内の該機密オブジェクトの位置に基づいて該機密オブジェクトが到達不能であるという判定と、該到達不能な機密オブジェクトに関するワイプ機能の呼び出しとを含む、ガーベージコレクション・システム。
【請求項４】
無線ネットワークを介して機密保護オブジェクトを該モバイルデバイスにおいて受信する手段であって、該機密保護オブジェクトは、暗号化されている、手段と、
該機密保護オブジェクトを復号化することにより、機密オブジェクトを取得する手段と、
該モバイルデバイスのメモリーに該機密オブジェクトを格納する手段と、
該格納された機密オブジェクトにアクセスする手段と、
トリガリング・イベントが発生したか否かを判定する手段であって、該トリガリング・イベントは、機密保護ガーベージコレクション動作が開始されるべきであることを示すものである、手段と、
該メモリー内の該機密オブジェクトの位置に基づいて、該機密オブジェクトが到達不能になったか否かを判定する手段と、
該機密オブジェクトが到達不能であると判定された後に該機密オブジェクトを該メモリーから抹消することにより、該到達不能な機密オブジェクトを読み出し不能にする手段と、
該到達不能な機密オブジェクトが使用していた該メモリーを再生利用する手段と
を含む、機密保護ガーベージコレクション・システム。
【請求項５】
機密保護ガーベージコレクションを実行するように構成可能なモバイルデバイスであって、
前記モバイルデバイスは、
暗号化されている機密保護オブジェクトを復号化することにより、機密オブジェクトを取得するソフトウェアアプリケーションを実行するように構成可能なマイクロプロセッサであって、該ソフトウェアアプリケーションは、該機密オブジェクトを参照する、マイクロプロセッサと、
該機密オブジェクトを格納するヒープ・メモリーと、
該マイクロプロセッサ上で動作可能なガーベージコレクション・モジュールであって、該ヒープ・メモリーへのデータ・アクセス経路を有するガーベージコレクション・モジュールと
を含み、
該ガーベージコレクション・モジュールは、該ヒープ・メモリー内の該機密オブジェクトの位置に基づいて該ヒープ・メモリー内の該機密オブジェクトが到達不能であると検出されると、該ヒープ・メモリーに格納されている該機密オブジェクトに関してワイプ機能を呼び出すように構成可能であり、
該機密オブジェクトを参照しないようにとの要求が該ソフトウェアアプリケーションに提供されたことが原因で、該ヒープ・メモリー内の該機密オブジェクトは到達不能になり、
該要求は、トリガーに応答して送信され、該トリガーは、機密保護ガーベージコレクション動作が開始されるべきであることを示すものである、モバイルデバイス。
【請求項６】
前記モバイルデバイスは、パーソナルディジタルアシスタント、モバイル通信デバイス、データメッセージ能力を有するセルラー電話、無線ツーウェイ通信デバイス、データメッセージデバイス、ツーウェイページャー、無線インターネット機器のうちの１つを含む、請求項１に記載の方法。
【請求項７】
前記機密保護オブジェクトは、Ｓ／ＭＩＭＥ暗号化されたメッセージを含む、請求項１に記載の方法。
【請求項８】
前記機密オブジェクトは、前記Ｓ／ＭＩＭＥ暗号化されたメッセージの暗号化されていないバージョンを含む、請求項７に記載の方法。
【請求項９】
前記復号化は、秘密鍵を取得し、該秘密鍵を前記Ｓ／ＭＩＭＥ暗号化されたメッセージに適用することを含む、請求項８に記載の方法。
【請求項１０】
前記機密オブジェクトは、パーソナル情報管理（ＰＩＭ）アプリケーションのために前記モバイルデバイスによって使用される、請求項１に記載の方法。
【請求項１１】
前記機密オブジェクトは、音声通信のために前記モバイルデバイスによって使用される、請求項１に記載の方法。
【請求項１２】
前記機密オブジェクトは、ビデオ通信、ショートメッセージサービス（ＳＭＳ）通信、ｅ−メール・メッセージ通信、ウェブページ通信、無線アクセスプロトコル（ＷＡＰ）通信のうちの少なくとも１つのために前記モバイルデバイスによって使用される、請求項１に記載の方法。
【請求項１３】
前記到達不能な機密オブジェクトは、他のオブジェクトによって参照されない、請求項１に記載の方法。
【請求項１４】
前記機密オブジェクトが到達不能であると検出された場合に、該機密オブジェクトが使用していたメモリーを再生利用するためにワイプ機能が使用される、請求項１に記載の方法。
【請求項１５】
前記機密オブジェクトの抹消に加えてシステム・クリップボードが清掃される、請求項１４に記載の方法。
【請求項１６】
前記モバイルデバイス上で実行される少なくともいくつかのガーベージコレクションが前記ワイプ機能を使用する、請求項１４に記載の方法。
【請求項１７】
前記抹消することは、前記メモリー内の機密オブジェクトを全てゼロでまたは全て１でまたはランダムなデータで上書きすることを含む、請求項１に記載の方法。
【請求項１８】
前記メモリーは、前記機密オブジェクトを格納する際に用いられる動的に割り当てることが可能なメモリーを含む、請求項１に記載の方法。
【請求項１９】
前記メモリーは、ヒープ・メモリーを含み、前記機密オブジェクトおよび前記機密保護オブジェクトは、該ヒープ・メモリーに格納されており、仮想マシーン・ソフトウェアは、参照テーブルを介して該ヒープ・メモリーに格納されている該機密オブジェクトおよび該機密保護オブジェクトにアクセスするように構成されている、請求項１に記載の方法。
【請求項２０】
前記ヒープ・メモリーは、前記機密オブジェクトが前記機密保護オブジェクトから区別されるように仕切りを含む、請求項１９に記載の方法。
【請求項２１】
前記ヒープ・メモリーは、不揮発性メモリーと揮発性メモリーとを含み、前記機密保護オブジェクトは、該不揮発性メモリーに格納されており、前記機密オブジェクトは、該揮発性メモリーに格納されている、請求項２０に記載の方法。
【請求項２２】
前記機密保護オブジェクトおよび前記機密オブジェクトのメモリー・アドレスが前記参照テーブルに格納されており、該参照テーブルにおいて該機密保護オブジェクトのインデックスまたは該機密オブジェクトのインデックスが与えられると当該オブジェクトのメモリー・アドレスが取得され得る、請求項２１に記載の方法。
【請求項２３】
前記当該オブジェクトは、当該オブジェクトの任意の他のオブジェクトへの参照を含むフォーマットを有する、請求項２２に記載の方法。
【請求項２４】
前記参照テーブルは、他のオブジェクトが前記揮発性メモリーに格納されているか前記不揮発性メモリーに格納されているかに関わらず、前記当該オブジェクトが該他のオブジェクトにアクセスすることを可能にする、請求項２３に記載の方法。
【請求項２５】
前記メモリー内の前記複数の機密オブジェクトの位置に基づいて前記ソフトウェアアプリケーションによって該複数の機密オブジェクトが参照されなくなったという判定に基づいて、該複数の機密オブジェクトが抹消される、請求項１に記載の方法。
【請求項２６】
複数のソフトウェアアプリケーションは、前記トリガーに応答してそれぞれの機密オブジェクトを参照しないように要求される、請求項１に記載の方法。
【請求項２７】
前記トリガーは、所定のイベントが発生したことに基づいて発生する、請求項１に記載の方法。
【請求項２８】
前記イベントは、前記モバイルデバイスが所定時間にわたってアイドルであるときに発生するタイムアウト・イベント、クレードル・イベント、ホルスター・イベント、スクリーン・ロック・イベント、ユーザ・ロック・イベント、アプリケーション・イベント、ロールバック・トリガー・イベント、トランシーバに基づくイベントのうちの１つである、請求項２７に記載の方法。
【請求項２９】
前記クレードル・イベントは、前記モバイルデバイスが該モバイルデバイスのクレードルに入れられるとき、または、該モバイルデバイスのクレードルから取り除かれるときに発生する、請求項２８に記載の方法。
【請求項３０】
前記ホルスター・イベントは、前記モバイルデバイスが該モバイルデバイスのホルスターに入れられるとき、または、該モバイルデバイスのホルスターから取り除かれるときに発生する、請求項２８に記載の方法。
【請求項３１】
前記アプリケーション・イベントは、視聴者が前記機密オブジェクトを表示するのを止めたときを含む、請求項２８に記載の方法。
【請求項３２】
前記機密保護オブジェクトは、暗号化されたメッセージを含み、前記機密オブジェクトは、該暗号化されたメッセージの復号化バージョンを含み、所定のタイムアウト期間の後に前記トリガーを発生させるようにコンフィギュレーション・パラメータが使用される、請求項３１に記載の方法。
【請求項３３】
前記所定のタイムアウト期間は、前記復号化されたメッセージが参照されず、抹消される前に、前記モバイルデバイスのユーザが、該復号化されたメッセージを見て、該復号化されたメッセージを閉じて、該復号化されたメッセージを再び開くための機会を有する期間である、請求項３２に記載の方法。
【請求項３４】
前記ロールバック・トリガー・イベントは、前記モバイルデバイスのシステム・クロック又は時間帯が変更されたときに発生する、請求項２８に記載の方法。
【請求項３５】
前記トランシーバに基づくイベントは、前記モバイルデバイスが前記無線ネットワークを介して通信する場合に発生する、請求項２８に記載の方法。
【請求項３６】
前記トリガーの判定に基づいて、これらのオブジェクトが機密保護オブジェクトの復号化されたバージョンであるか否かにかかわらず、機密保護アプリケーションが前記ソフトウェアアプリケーションによって参照されるすべてのオブジェクトを参照しないことを要求することをさらに含む、請求項１に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
関連する事件
本出願は、２００２年３月２０日に出願された米国仮特許出願第６０／３６５，５１５号の利益及び優先権を主張し、その開示の全体を参照により本出願に取り入れる。
【０００２】
背景
１．  技術分野
本発明は、移動装置に関し、特に移動装置における機密保護メモリー手法に関する。
【背景技術】
【０００３】
２．  関連技術の説明
多くの公知移動装置は、データ、音声、及び／又はマルチメディア（オーディオ／ビデオ）を送信し、受信し、或いは少なくとも使用するためにジャヴァ（Ｊａｖａ（登録商標））を用いるなどしてオブジェクトを支援する。これらのオブジェクトは、セルラーネットワークからの機密情報に含まれ、多様なサービスと関連する。しかし、移動装置で現在実行されるガーベージコレクション操作には機密保護上の欠陥がある。
【０００４】
その様な欠陥の非限定的実例は、到達不能のオブジェクトの収集を含む。例えば、図１は参照符が付されていないオブジェクトのガーベージコレクション間のヒープの代表的状態を示す。代表的なガーベージ・コレクターは、到達不能のオブジェクトを収集する前にメモリーがローになるまで待つ。従って、オブジェクトは、収集されるよりかなり前に到達不能になる可能性がある。これは、特にメモリー回復自体が安全でなければ、攻撃の機会の予測できない窓を生じさせる。
【発明の概要】
【課題を解決するための手段】
【０００５】
要約
本書に開示されている教示により機密保護ガーベージコレクション・システムが提供され、このシステムはマイクロプロセッサと、アドレス指定可能な記憶装置とを含み、ヒープと、ワイプ機能を呼び出すことのできる機密保護ガーベージコレクション・ソフトウェア・モジュールとを有する。機密保護ガーベージコレクション・ソフトウェア・モジュールは、ヒープ内のオブジェクトが到達不能になっていることを検出すると、ワイプ機能を呼び出すことによって、それらが使用していたメモリーを安全に回収する。
【０００６】
他の実施態様では、機密保護安全ガーベージコレクションを多様な方法でトリガーすることができ、その方法は、トリガーを待ち、全ての機密保護アプリケーションについて後続のステップを実行し、機密保護アプリケーションが機密オブジェクトを無参照符化することを要求し、機密保護ガーベージコレクションを実行し、全ての機密保護アプリケーションが処理され終わっているか否か判定することステップを含むが、これらに限定はされない。
【図面の簡単な説明】
【０００７】
【図１】図１は、公知のガーベージコレクターを用いる無参照符オブジェクト間の代表的ヒープの状態を示す。
【図２】図２は、本発明の実施態様に従う代表的な機密保護ガーベージコレクション・システムを示すブロック図である。
【図３】図３ａは、代表的暗号メッセージ観察アプリケーションにおけるＲＡＭ及びフラッシュ内のオブジェクトを特徴とする、図２のアドレス指定可能な記憶装置の例の物理的ビューを詳しく示すブロック図である。図３ｂは、図３ａの論理ビューを示すブロック図である。
【図４】図４は、本発明の実施態様に従う移動装置において機密保護ガーベージコレクションをトリガーする方法の例を示す流れ図である。
【図５】図５は、本発明の実施態様に従って無参照符オブジェクトを確実にガーベージコレクションする機密保護ガーベージコレクション方法例を示す流れ図である。
【図６】図６は、移動装置において機密保護ガーベージコレクションに用いるソフトウェア・コンポーネントを示すブロック図である。
【図７】図７は、代表的無線装置のコンポーネントの略図である。
【発明を実施するための形態】
【０００８】
詳細な説明
図を参照すると、図２は代表的な機密保護ガーベージコレクション・システム３００を示すブロック図である。システム３００は特に機密情報を保護するものであり、機密情報は、それ自体として独立して存在するか、パーソナル情報管理（ＰＩＭ）から生じるか、或いは、音声及び／又はビデオ通話、ショートメッセージサービス（ＳＭＳ）通信、ｅ−メールメッセージ通信、ウェブページ通信及び無線アクセスプロトコル（ＷＡＰ）通信などの通信から生じることがある。システム３００は、機密保護暗号解読手法及び機密保護永続記憶手法を可能にする。パーソナルディジタルアシスタント、移動通信装置、セルラー電話、及び無線双方向通信装置、などのいろいろなタイプの移動装置が、また機密情報を有する任意の装置において、システム３００を利用することができる。
【０００９】
図２の代表的機密保護ガーベージコレクション・システム３００は、マイクロプロセッサ１００と、データバス１３０によってマイクロプロセッサ１１０に接続されたアドレス指定可能な記憶装置１２０とを含む。アドレス指定可能な記憶装置１２０はマイクロプロセッサ・ソフトウェア・モジュール１４０、ヒープ１５０及び参照符テーブル１６０を格納する。
【００１０】
マイクロプロセッサ・ソフトウェア１４０は、固有ワイプ機能１７０を含む。固有ワイプ機能１７０は、アドレス指定可能な記憶装置１２０の一部分に存するデータを抹消することができる。“Ｃ”プログラミング言語中の適当な機能は機能’ｍｅｍｓｅｔ（）’であり、これを用いて、精巧なメモリー回復手法を妨害するためにデータを全部ゼロ又は全部１又はランダム・データで書き換えることができる。マイクロプロセッサ・ソフトウェア１４０は、仮想マシーン・ソフトウェア２００も含むことができ、これは、固有ワイプ機能１７０を使用することができると共に参照符テーブル１６０を介してヒープ１５０中のオブジェクトにアクセスすることができる機密保護ガーベージコレクター・ソフトウェア・モジュール２０５を有する。このソフトウェア１４０は、オブジェクト指向環境（例えば、ジャヴァ）などの多様な実施環境で使用され得るものである。
【００１１】
仮想マシーン・ソフトウェア２００は、ソフトウェア・モジュール２１０で見出される仮想マシーン命令を解釈することができる。特定の仮想マシーン・ソフトウェア・モジュール（例えば、機密保護ビューアー・アプリケーション２２０）が示されていて、機密保護ガーベージコレクション手法を使用するアプリケーション例として用いられる。
【００１２】
機密保護ビューアー・アプリケーション２２０は、仮想マシーン・ソフトウェア２００により実行されたとき、ビューアー・オブジェクト１０Ｖがヒープ１５０において割り当てられるという結果をもたらし、それに対応する参照符テーブル１６０内の＠Ｖ３５Ｖエントリーを介してアクセス可能である。ビューアー・オブジェクト１０Ｖは、例えば、オブジェクト１０Ｓなどの機密オブジェクト内の機密情報を表示するユーザ・インターフェース・オブジェクトであって良い。ビューアー・オブジェクト１０Ｖは、好ましくは、ビューアー・アプリケーション２２０における認証によって機密保護オブジェクト７０Ｅから機密オブジェクト１０Ｓを動的に作成する。
【００１３】
例えば、機密保護オブジェクト７０ＥがＳ／ＭＩＭＥ被暗号化メッセージであれば、機密オブジェクト１０Ｓは、好ましくはプライベート・キーを入手して被暗号化Ｓ／ＭＩＭＥメッセージ・オブジェクト７０Ｅに対して使用することにより、機密保護ビューアー・アプリケーション・モジュール２２０（この場合にはＳ／ＭＩＭＥｅ−メール・ビューアー・アプリケーション）により動的に作成されるＳ／ＭＩＭＥメッセージの透明な暗号化されていないバージョンである。
【００１４】
ヒープ１５０の機密部分及び機密保護部分の境界をそれぞれ示す領域１５２及び１５７により示されているように、オブジェクト１０Ｓなどの機密オブジェクトをオブジェクト７０Ｅなどの機密保護オブジェクトから区別できるようにヒープ１５０を分割することができる。近い将来に事態を調整するために機密オブジェクト及び機密保護オブジェクトの処理に関して多様な分割形態が可能であり、或いは全く不可能であることが理解されなければならない。
【００１５】
領域１５５により、ヒープ１５０の到達不能な部分も示されている。領域１５５は、最早他のオブジェクトにより参照符付けされていなくて、それ自体としてガーベージコレクションに適するオブジェクト１０Ｖ’，１０Ｓ’及び７０Ｅ’を含んでいる。オブジェクト１０Ｓ’は到達不能でもあり且つ機密であり、オブジェクト７０Ｅ’は到達不能であり且つ機密保護であり、オブジェクト１０Ｖ’は到達不能であるだけであることに注目されたい。
【００１６】
Ｓ／ＭＩＭＥビューアー・アプリケーション２２０の例に戻ると、例えばＳ／ＭＩＭＥビューアー・アプリケーションが削除メッセージ・ユーザインターフェース・コマンドに応答してビューアー１０Ｖ’を表示することを止めたならば、オブジェクト１０Ｖ’、１０Ｓ’及び７０Ｅ’は到達不能である。従って、１０Ｖ’への参照符が失われたとき、ビューアー１０Ｖ’が機密オブジェクト１０Ｓ’及び７０Ｅ’への参照符を有する唯一のオブジェクトであったならば、３つのオブジェクト全部がガーベージコレクションされ得る候補となる。しかし、オブジェクト７０Ｅは、ビューアー１０Ｖ’によって参照符付けされているけれども、依然として到達可能であって機密保護されるということに注目しなければならない（例えば、暗号化されたＳ／ＭＩＭＥ−おそらく、それはビューアー１０Ｖ’によって見られた前のメッセージであってユーザにより削除されていなかったので）。
【００１７】
機密保護ガーベージコレクター・モジュール２０５は、オブジェクト１０Ｖ’、１０Ｓ’及び７０Ｅ’が到達不能であることを発見すると、固有ワイプ機能１７０を呼び出して少なくともオブジェクト１０Ｓ’と、また任意にオブジェクト１０Ｖ’及び７０Ｅ’をワイプすることによって、これらのオブジェクトが使用していたメモリーを確実に回収する。任意に、全てのガーベージコレクションがワイプ固有機能１７０を使用し、これにより全てのオブジェクトを機密扱いする。
【００１８】
図３ａ及び３ｂを参照すると、図３ａは、代表的な暗号メッセージ・ビューイング・アプリケーションにおける、参照符テーブル、ＲＡＭ内のビューアー・オブジェクト、フラッシュ内の永続的被暗号化オブジェクト、及びＲＡＭ内の一時的機密オブジェクトを特徴とする、図２のアドレス指定可能な記憶装置例の物理的ビューを詳しく示すブロック図である。
【００１９】
図３ｂは、図３ａの論理ビューを示すブロック図である。両方について、次に説明する。
【００２０】
オブジェクト１０Ｓ及びオブジェクト７０Ｅを参照符付けするオブジェクト１０Ｖは、ＲＡＭ２０又はフラッシュ８０内の何処かに現れるものとして示されている。
【００２１】
ＲＡＭ２０内の何処かにあるものとして参照符テーブル３０も示されている。参照符テーブル３０は、記憶素子へのインデックス付きアクセスを簡単化するために一定サイズ“ｗ”３７の記憶素子（３５Ｖ，３５Ｓ，３５Ｅ）を数個有する。各々の使用されている記憶素子（３５Ｖ，３５Ｓ，３５Ｅ）は、ここではＲＡＭ２０及びフラッシュ８０から成るアドレス指定可能なスペースに位置するオブジェクト（１０Ｖ，１０Ｓ，７０Ｅ）に対応する。例えば、オブジェクトＶ１０Ｖは記憶素子インデックス“ｖ”３５Ｖとの対応関係を見出し、オブジェクトＥ７０Ｅは記憶素子インデックス“ｅ”３５Ｅとの対応関係を見出すが、オブジェクトＳ１０Ｓは記憶素子インデックス“ｓ”３５Ｓとの対応関係を見出す。対応するオブジェクト（１０Ｖ，１０Ｓ，７０Ｅ）のアドレス（４０Ｖ，４０Ｓ，９０Ｅ）が記憶素子（３５Ｖ，３５Ｓ，３５Ｅ）に格納されているので、参照符テーブル３０内のオブジェクトのインデックスを知ればオブジェクト（１０Ｖ，１０Ｓ，７０Ｅ）のアドレス（４０Ｖ，４０Ｓ，９０Ｅ）をそれぞれ得ることが可能である。このことは、初めに参照符テーブル３０のアドレス＠Ｒ５０を得ることにより行われる。次に、例えば実例Ｖオブジェクト１０Ｖについての“ｓ”５５Ｓなどのオブジェクトの参照符が与えられると、インデックス５５Ｖ“ｖ”に各記憶素子のサイズ“ｗ”３７を掛けることによって記憶素子のアドレス＠（Ｒ＋ｖ＊ｗ）６０Ｗを得ることができる。
【００２２】
“ｖ”記憶素子３５Ｖは対応するオブジェクトＶ１０Ｖのアドレスを保持しているので、この記憶素子の内容を分析すればＲＡＭ２０内のオブジェクトＶ１０Ｖのアドレス＠Ｖ４０Ｖが得られる。同様に、“ｓ”記憶素子３５Ｓを分析すればＲＡＭ２０内のオブジェクト１０Ｓのアドレス＠Ｓ４０Ｓが得られ、“ｅ”記憶素子３５Ｅはフラッシュ８０内のオブジェクト７０Ｅのアドレス＠Ｅ９０Ｅを指す。各オブジェクト（１０Ｖ，１０Ｓ，７０Ｅ）がそのフォーマットの中に参照符テーブル３０と関連する“この参照符”（５５Ｖ，５５Ｓ，５５Ｅ）をどのように含むかということも示されている。オブジェクトＶ１０Ｖがそのフォーマットの中にオブジェクトＥ７０Ｅへの参照符“Ｅ”６５ＥとオブジェクトＳ１０Ｓへの参照符“Ｓ”６５Ｓとをどのように含むかということも示されている。このことは、オブジェクトＥ７０Ｅがフラッシュ８０内のアドレス９０ＥにありオブジェクトＶ７０ＡがＲＡＭ２０内にあるという事実に関わらず、オブジェクトＶ１０Ｖの範囲内の実行時間コンテキストがオブジェクトＥ７０Ｅと１０Ｓとに同様にアクセスできることを許容する。
【００２３】
オブジェクト１０Ｖは機密保護多目的インターネット・メール・エクステンション（Ｓ／ＭＩＭＥ）ビューアーであって良く、その場合にはオブジェクト７０Ｅは永続（Ｓ／ＭＩＭＥ）被暗号化メッセージであって良く、オブジェクト１０Ｓは被暗号化メッセージ７０Ｅの機密の解読されたバージョンであって良い。ビューアー・オブジェクト１０Ｖは、ビューアー１０Ｖのユーザ（即ち、Ｓ／ＭＩＭＥメッセージの意図された受取人）の要求時に及びその認証後に、被暗号化オブジェクト７０Ｅから機密オブジェクト１０Ｓを作成しても良い。
【００２４】
図４を参照すると、図４は移動装置で機密保護ガーベージコレクションをトリガーする方法の例を示す流れ図を示している。ステップ４１０はトリガーを待つことを含む。トリガーに関連する任意のパラメータを、コンフィギュレーション４０２を介して記憶装置１２０からロードすることができる。トリガーは、下記の多様なイベントから生じ得るけれども、これらに限定されない：
・  ４０５Ｉはタイムアウト・イベントであり、これは移動装置がアイドル状態に置かれているときに発生し得る；
・  ４０５Ｈは、ホルスター又はクレードル・イベントであり、これはユーザ又はアタッカーが装置をそのホルスター（その様に装備されている場合）或いはクレードル（その様に装備されている場合）に入れたり或いはそれから取り除くときに発生し得る；
・  ４０５Ｌはスクリーン・ロック又はユーザ・ロック・イベントであり、これは例えばユーザがロック・スクリーンでパスワードを入力するときやユーザが装置又はスクリーンをわざわざロックするときなど、任意の数の理由から発生し得る；
・  ４０５Ａはビューアーが機密オブジェクトを表示するのを止めたときなどの、アプリケーション・イベントである。Ｓ／ＭＩＭＥの場合、メッセージは好ましくは機密保護され（暗号化され）、見られるときだけ解読される。しかし、メッセージを見たり、それを閉じたり、短いタイムアウト期間中にそれを再開したりする機会を機密保護ガーベージコレクション・トリガーからユーザに与えさせる前に、解読されたメッセージをコンフィギュレーション・パラメータを用いて熟成させることができる。
【００２５】
・  ４０５Ｒはロールバック・トリガーであり、これはシステム・クロック（その様に装備されている場合）又は時刻帯が変更されるときに発生し得る。具体的場合を明示するためにコンフィギュレーション・パラメータを用いることができる。
【００２６】
・  ４０５Ｅはトランシーバ・イベントであり、これは移動装置が例えば無線ネットワークを介して通信する場合（その様に装備されている場合）に発生し得る。例えば、Ｓ／ＭＩＭＥを使用して通信するとき、或いはＳＳＬ又はＴＬＳを用いてブラウズしている間、キャッシュを確実にガーベージコレクションすることができる。
【００２７】
ステップ４２０は、全ての機密保護アプリケーションのために後続のステップを実行することを含む。機密保護アプリケーションは、コンフィギュレーションにより選択することができ、或いは全てのアプリケーションを包含することができる。
【００２８】
ステップ４３０は、機密保護アプリケーションが機密オブジェクトの参照符を取ることを要求する。従って、このステップはアタッカーの機会の窓がトリガーに関わらず機密保護アプリケーションにおいて大いに制限されることを保証するのに役立つ。
【００２９】
ステップ４４０は確実にガーベージコレクションすることを含む。このステップは、少なくとも、固有ワイプ機能コールを呼び出すことを含むが、例えばシステム・クリップボード（もしその様に装備され構成されていれば）を一掃する（これに限定はされない）などの他の動作を含んでいても良い。このステップを実行する代表的方法について以下で図５を参照して説明する。
【００３０】
ステップ４５０は、全ての機密保護アプリケーションが処理されたか否か判定することを含む。もし全てのアプリケーションがクリーンならば（例えば、アプリケーションが機密オブジェクトへの参照符を持っていないなど）、残っている機密保護アプリケーションのためにステップ４３０及び４４０が反復される。或いは、もし全ての機密保護アプリケーションがクリーンならば、ステップ４１０が続き、該方法が新たに始まる。
【００３１】
図４の方法は、仮想マシーンのための“デーモン”アプリケーションとして実行されて良い。
【００３２】
図５を参照すると、図５は無参照符オブジェクトを確実にガーベージコレクションする機密保護ガーベージコレクションの代表的方法を示す流れ図である。
【００３３】
図５の方法５００を用いて図４のステップ４４０を実行することができる。ステップ５１０は、無参照符オブジェクトを回収することを含む。このステップは、図４の方法４００においてどのトリガーがガーベージコレクションを行わせたかなどの表示を例えばコンフィギュレーション情報５０２を介して受け取ることができる。例えば、Ｓ／ＭＩＭＥビューアー・アプリケーションがトリガーであったならば、無参照符機密オブジェクトは好ましくはトリガーの原因の付近から始まってヒープから収集される。
【００３４】
ステップ５２０はヒープ内の全ての無参照符オブジェクトのために後続のステップを実行することを含む。ステップ５３０は、無参照符オブジェクトが機密であるか否か判定することを含む。図２を参照して説明したように、好ましい実施態様では、全ての無参照符オブジェクトが機密扱いされる。このことはコンフィギュレーション情報５０２において明示されても良い。もし無参照符オブジェクトが機密であると判定されたならば、ステップ５４０が続き、これにステップ５５０が続くが、もし否であれば、ステップ５５０が続く。
【００３５】
ステップ５４０は、固有ワイプ機能を呼び出して無参照符機密オブジェクト中の機密情報を抹消することを含む。図２を参照して説明したように、固有ワイプ機能はゼロ、１、又はランダムなデータに対するオブジェクト・データのＣ“ｍｅｍｓｅｔ（）”であって良い。どのオプションを使うかはコンフィギュレーション５０２で指定されて良い。非固有ワイプ機能を使用することも考えられる。
【００３６】
ステップ５５０は、オブジェクト・メモリーを回収することを含む。このステップは在来のガーベージコレクターにより達成され得る。在来のガーベージコレクターに対する呼び出しを機密保護ガーベージコレクターに対する呼び出しと置き換えることにより、多数の現存する方法及びシステムにおいて機密保護ガーベージコレクションを可能にすることができる。
【００３７】
ステップ５６０は全ての無参照符オブジェクトが回収されたか否か判定することを含む。この判定がなされたならば、該方法は終了する。もし否であれば、ステップ５３０が続き、機密保護ガーベージコレクションを続行する。
【００３８】
図６は、６００において、機密保護ガーベージコレクション・システムを有する移動装置を示す。移動装置６００は、無線ネットワーク６０４を介して情報（例えば、機密保護メッセージ６０２）を受け取る。移動装置６００で動作するソフトウェア・プログラム６０６は、機密保護メッセージ６０２を扱うために機密保護オブジェクトが作成されてアドレス指定可能な記憶装置６０８内に格納されるように、機密保護メッセージ６０２を処理する。この例では、機密情報が機密保護メッセージ６０６から抽出され、この機密情報を扱うために機密オブジェクトが作成されてアドレス指定可能な記憶装置６０８内に格納される。
【００３９】
アドレス指定可能な記憶装置６０８内のオブジェクト（６１０，６１２，６１４）が到達不能であると検出されたとき、機密保護ガーベージコレクター・モジュール６１６はワイプ機能６１８を呼び出すことによって該オブジェクト（６１０，６１２，６１４）が使っていたメモリー６０８を確実に回収する。随意に、全てのガーベージコレクションがワイプ機能６１８を使い、これにより全てのオブジェクト（６１０，６１２，６１４）を機密扱いする。しかし、ガーベージコレクション・モジュール６１６は、ワイプ機能６１８を使えるオブジェクトのタイプを変更する可能性があることが理解されなければならない。例えば、ガーベージコレクション・モジュール６１６は、到達不能の機密オブジェクト６１０に対してのみ、或いは到達不能の機密保護オブジェクト６１２に対してのみ、或いはこれらの組み合わせに対してワイプ機能６１８を使用するように構成されて良い。更に、ガーベージコレクション・モジュール６１６は、１つ以上のソフトウェア・プログラムの到達不能のオブジェクトに対してワイプ機能６１８を使用するように構成されて良い。その様なアプローチは、機密情報への認可されていないアクセスを阻止するために機密保護ガーベージコレクションを始動する。メモリーが不足したときだけではなくてオブジェクト（機密オブジェクトなど）が到達不能になったときに機密保護ガーベージコレクションが始動される。
【００４０】
図７に示されている無線装置など、多様な移動装置が本書に開示されているシステム及び方法を利用することができる。図７を参照すると、無線装置９００は、好ましくは、少なくとも音声及びデータ通信能力を有する双方向通信装置である。装置９００は、好ましくは、インターネット上の他のコンピュータシステムと通信する能力を有する。該装置により提供される機能性により、装置９００は、データ・メッセージ通信装置、双方向ページャー、データ・メッセージ通信能力付きセルラー電話、無線インターネット装置或いはデータ通信装置（電話能力を持っていたり持っていなかったりする）と称されて良い。
【００４１】
装置９００が双方向通信用に動作可能にされるときには、装置９００は通信サブシステム９１１を含むことができ、これは受信装置９１２、送信装置９１４、及び付随するコンポーネントを含み、この付随コンポーネントは、１つ以上の好ましくは埋め込み式の或いは内部のアンテナ素子９１６及び９１８、局部発振器（ＬＯ）９１３、及びディジタル信号処理装置（ＤＳＰ）９２０等の処理モジュールなどである。通信分野の専門家にとっては明らかであるように、通信サブシステム９１１の具体的デザインは、該装置が動作するように意図された通信ネットワークに依存する。例えば、北米市場向けの装置９００はＭｏｂｉｔｅｘ移動通信システム又はＤａｔａＴＡＣ移動通信システム内で動作するように設計された通信サブシステム９１１をおそらく含むであろうし、欧州用の装置９００は一般パケット無線サービス（ＧＰＲＳ）通信サブシステム９１１をおそらく含むであろう。
【００４２】
一般に、装置９００は、該装置とセルラーネットワークとの相互作用及び該ネットワークが提供するサービスを通じて機密保護情報及び機密情報を取得又は作成することができる。セルラーネットワークと、該ネットワークが提供するサービスとの例は、大体は音声サービス及び一定のデータサービスを提供する符号分割多重アクセス（ＣＤＭＡ）ネットワーク及びグローバルサービスモバイル（ＧＳＭ）ネットワークを含む。音声サービスは、通常は簡素な旧式電話サービス（ＰＯＴＳ）と両立する。一定のセルラーネットワークではショートメッセージサービス（ＳＭＳ）及び無線アプリケーション・プロトコル（ＷＡＰ）が利用できる。ＭｏｂｉＴｅｘ（商標）、Ｄａｔａｔａｃ（商標）などのデータネットワーク及び一般パケット無線サービス（ＧＰＲＳ）及びユニバーサル移動通信システム（ＵＭＴＳ）などの高度ネットワークは、適切に構成された無線移動装置がｅ−メール、ウェブ・ブラウジング、ＳＭＳ、ＷＡＰ及びＰＩＭなどのデータサービスを提供することを可能にする。将来のネットワークはおそらくビデオサービスも提供するであろう。従って、機密情報のソースはたくさんある。
【００４３】
ネットワーク・アクセス要件もネットワーク９１９のタイプによりまちまちであろう。例えば、Ｍｏｂｉｔｅｘ及びＤａｔａＴＡＣネットワークでは、９００等の移動装置は、各装置に関連する独特の個人識別番号即ちＰＩＮを用いてネットワークに登録される。しかし、ＧＰＲＳネットワークでは、ネットワーク・アクセスは装置９００の加入者又はユーザに関連付けられる。従って、ＧＰＲＳ装置は、ＧＰＲＳネットワークで動作するためには、一般にＳＩＭカードと呼ばれる加入者アイデンティティー・モジュール（図示されていない）を必要とする。ＳＩＭカードが無ければ、ＧＰＲＳ装置は十分に機能しない。局所的な又は非ネットワーク通信機能（もしあれば）は動作可能であろうが、装置９００はネットワーク９１９を介する通信に関わる如何なる機能も実行することはできないであろう。所要のネットワーク登録又は起動手続きが完了すれば、装置９００はネットワーク９１９を介して通信信号を送受信することができる。通信ネットワーク９１９を通してアンテナ９１６により受信された信号は受信装置９１２に入力され、これは、信号増幅、周波数下降変換、フィルタリング、チャネル選択などのような一般的受信装置機能を実行することができ、また図７に示されている実例システムではアナログディジタル変換を実行することができる。受信された信号をアナログディジタル変換すれば、復調及び復号のようなより複雑な通信機能をＤＳＰ９２０で実行することが可能となる。同様に、送信されることになる信号はＤＳＰ９２０によって例えば変調及び符号化を含む処理をされ、そしてディジタルアナログ変換、周波数上昇変換、フィルタリング、増幅及びアンテナ９１８を介しての通信ネットワーク９１９での送信のために送信装置９１４に入力される。
【００４４】
ＤＳＰ９２０は、通信信号を処理するだけではなくて、受信装置及び送信装置の制御にも備える。例えば、受信装置９１２及び送信装置９１４で通信信号に加えられる利得は、ＤＳＰ９２０で実行される自動利得制御アルゴリズムを通して適応的に制御され得る。
【００４５】
装置９００は好ましくはマイクロプロセッサ９３８を含み、これは装置の全体的動作を制御する。少なくともデータ通信及び音声通信を含む通信機能は、通信サブシステム９１１を通して実行される。マイクロプロセッサ９３８は、ディスプレイ９２２、フラッシュメモリー９２４、ランダムアクセスメモリー（ＲＡＭ）９２６、補助入出力（Ｉ／Ｏ）サブシステム９２８、シリアルポート９３０、キーボード９３２、スピーカー９３４、マイクロフォン９３６、短距離通信サブシステム９４０及び全体として９４２で示されているその他の装置サブシステムなどの更なる装置サブシステムとも相互作用する。
【００４６】
図７に示されているサブシステムのうちの或るものは通信関連機能を実行するが、その他のサブシステムは“常駐”の又は装置搭載の機能を提供することができる。特に、例えばキーボード９３２及びディスプレイ９２２などの一部のサブシステムは、通信ネットワークを介して送信されるテキストメッセージを入力するなどの通信関連機能と計算器又はタスクリストなどの装置常駐機能との両方のために使用され得るものである。
【００４７】
図２のエレメント１１０であって良いマイクロプロセッサ９３８により使用されるオペレーティングシステム・ソフトウェアは好ましくはフラッシュメモリー９２４などの永続的記憶装置に格納されるが、このメモリーは、図３ａのエレメント８０であって良く、またその代わりに読み出し専用メモリー（ＲＯＭ）又は同様の記憶エレメントであっても良く、或いは図２，３ａ及び３ｂのアドレス指定可能な記憶装置１２０の一部分であっても良い。オペレーティングシステム、具体的装置アプリケーション、或いはその部分を、図２のエレメント２０であって良いＲＡＭ９２６などの揮発性記憶装置に一時的にロードしても良いことを当業者は理解するであろう。受信された通信信号をＲＡＭ９２６に格納し得るということも考えられる。フラッシュメモリー９２４は、好ましくはデータ通信モジュール９２４Ｂを含み、装置９００が音声通信用に動作可能にされるときには音声通信モジュール９２４Ａを含む。本発明の目的上、フラッシュメモリー９２４には他のソフトウェア・モジュール９２４Ｎも含まれ、これは図２のマイクロプロセッサ・ソフトウェア１４０であって良い。
【００４８】
マイクロプロセッサ９３８は、そのオペレーティングシステム機能に加えて、好ましくは該装置でのソフトウェア・アプリケーションの実行を可能にする。例えば少なくともデータ・アプリケーション及び音声通信アプリケーションを含む基本的装置動作を制御するアプリケーションの所定集合が普通は製造時に装置９００にインストールされる。装置にロードできる好ましいアプリケーションは、ｅ−メール、カレンダー・イベント、音声メール、予約、及びタスク・アイテムなどの（これらに限定はされない）装置ユーザに関連するデータ・アイテムを組織し管理する能力を有するパーソナル情報マネージャー（ＰＩＭ）アプリケーションであろう。当然、装置へのＰＩＭデータ・アイテムの格納を容易にするために利用し得る１つ以上の記憶装置が装置で利用可能であろう。この様なＰＩＭアプリケーションは、好ましくは、無線ネットワークを介してデータ・アイテムを送受信する能力を有する。好ましい実施態様では、ＰＩＭデータ・アイテムは無線ネットワークを介してシームレスに統合、同期化及び更新され、装置ユーザの対応するデータ・アイテムはホストコンピュータ・システムに格納され或いは関連付けられる。更なるアプリケーションを、ネットワーク９１９、補助Ｉ／Ｏサブシステム９２８、シリアルポート９３０、短距離通信システム９４０又は他の任意の適切なサブシステム９４２を通して装置９００にロードし、マイクロプロセッサ９３８により実行されるようにユーザによりＲＡＭ９２６又は好ましくは不揮発性記憶装置（図示されていない）にインストールすることができる。アプリケーションのインストレーションがこの様に柔軟であるので、装置の機能性が向上し、強化された装置搭載機能、通信関連機能、またはこれら両方が提供され得る。例えば、機密保護通信アプリケーションは、電子商業機能及び他のその様な財務取引を装置９００を用いて実行することを可能にすることができる。
【００４９】
データ通信モードでは、テキスト・メッセージ或いはウェブページ・ダウンロードなどの受信された信号は通信サブシステム９１１によって処理されてマイクロプロセッサ９３８に入力され、これは好ましくはその受信された信号をディスプレイ９２２に、或いはその代わりに補助Ｉ／Ｏ装置９２８に出力するために、更に処理する。装置９００のユーザは、キーボード９３２を用いて例えばｅ−メール・メッセージなどのデータ・アイテムを作成することもでき、これは好ましくはディスプレイ９２２及び場合によっては補助Ｉ／Ｏ装置９２８と関連する完全な英数字キーボード又は電話型キーパッドである。その様に作成されたアイテムは、通信サブシステム９１１を通して通信ネットワークで送信されて良い。
【００５０】
音声通信については、受信された信号が好ましくはスピーカー９３４に出力され、送信される信号がマイクロフォン９３６により作られる点を除いて、装置９００の全体としての動作は実質的に同様である。音声メッセージ記録サブシステムなどの、代わりの音声システム又はオーディオＩ／Ｏサブシステムも装置９００で実現されて良い。音声又はオーディオ信号出力は好ましくは主としてスピーカー９３４を通して達成されるけれども、例えば電話を掛けた人のアイデンティティー、音声通話の持続時間、或いはその他の音声通話関連情報の表示を提供するためにディスプレイ９２２を使用することもできる。
【００５１】
シリアルポート９３０は、普通は、ユーザのデスクトップコンピュータ（図示されていない）と同期することが望ましいパーソナルディジタルアシスタント（ＰＤＡ）型の通信装置で実現されるが、オプションの装置コンポーネントである。この様なポート９３０は、ユーザが外部装置又はソフトウェアアプリケーションを通して好みをセットすることを可能にし、また無線通信ネットワークを通す方法以外の方法で行われる装置９００への情報又はソフトウェアのダウンロードに備えることによって装置の能力を拡張する。この代わりのダウンロード経路を使用して、例えば直接的で従って確実で信頼できる接続を通して暗号化キーを装置にロードし、これにより機密保護装置通信を可能にすることができる。
【００５２】
短距離通信サブシステム９４０は、装置９００といろいろなシステム又は装置（これらは必ずしも類似する装置でなくても良い）との間の通信に備えることのできる更なるオプションのコンポーネントである。例えば、サブシステム９４０は、赤外線装置及び関連する回路及びコンポーネントを含むことができ、或いは同様に動作可能にされているシステム及び装置との通信に備えるＢｌｕｅｔｏｏｔｈ（商標）通信モジュールを含むことができる。
【００５３】
好ましい動作方法を含めて本発明の好ましい実施態様を詳しく説明したが、多様なエレメント及びステップでこの動作を実行できることが理解されなければならない。この好ましい実施態様は、実例として提示されたに過ぎず、本発明の範囲を限定するように意図されたものではない。この明細書は、同様に本発明のエレメントに対応する代わりのエレメントを有する実施例を当業者が作って使用することをおそらく可能にするであろう。従って、本発明の意図された範囲は、本明細書の文字どおりの言葉と異ならない他の構造、システム又は方法を包含し、更に本明細書の文字どおりの言葉と大差の無い他の構造、システム又は方法も包含する。
【図１】
0004918573.tif 000002
【図２】
0004918573.tif 000003
【図３】
0004918573.tif 000004
【図４】
0004918573.tif 000005
【図５】
0004918573.tif 000006
【図６】
0004918573.tif 000007
【図７】
0004918573.tif 000008