(57)【要約】      （修正有）【課題】不揮発性のワーキングメモリから効率よく秘匿性の高い情報を消去し、端末のセキュリティを向上させるノーマリオフ端末装置を提供する。【解決手段】オブジェクト指向言語で、実行時にインタプリタあるいはバーチャルマシンを必要とする言語で記述されたアプリケーションプログラムを実装し、プロセッサ内のワーキングメモリの一部に不揮発メモリを使用したノーマリオフ端末装置。ワーキングメモリには、インタプリタ或いはバーチャルマシンによってオブジェクトが動的に確保され、オブジェクトは揮発性オブジェクトと、不揮発性オブジェクトとに分類され、端末装置で取り扱うオブジェクトの揮発性を設定するメモリ管理のオペレーティングシステムと、端末装置の情報や個人情報に相当する情報が割り当てられたワーキングメモリのメモリ領域を揮発性オブジェクト用として判定する機能を有し、揮発性オブジェクトをガーベジコレクトの前に消去する。【選択図】図１
2014235591.tif 000002
【特許請求の範囲】
【請求項１】
オブジェクト指向言語であって、実行時にインタプリタあるいはバーチャルマシンを必要とする言語で記述されたアプリケーションプログラムを実装し、プロセッサ内のワーキングメモリの一部に不揮発メモリを使用したノーマリオフ端末装置であって、
前記ワーキングメモリには、前記インタプリタあるいはバーチャルマシンによってオブジェクトが動的に確保され、該オブジェクトは揮発性と判定されたオブジェクトである揮発性オブジェクトと、不揮発性と判定されたオブジェクトである不揮発性オブジェクトとに分類され、
前記端末装置で取り扱う前記オブジェクトの揮発性を設定するメモリ管理部を有するオペレーティングシステムと、
前記端末装置の情報や個人情報に相当する情報が割り当てられた前記ワーキングメモリのメモリ領域を前記揮発性オブジェクト用として判定する揮発性判定部と、前記オブジェクトの揮発性を伝播させる揮発性伝播部と、前記揮発性オブジェクトに割り当てられたメモリ領域を解放する前に、前記メモリ領域を消去するガーベジコレクタとを有するインタプリタとを備え、
前記揮発性オブジェクトをガーベジコレクトの前に消去するノーマリオフ端末装置。
【請求項２】
前記メモリ管理部でメモリ領域を確保する際、オペレーティング・システム（ＯＳ）によるコンパイル時に指定された揮発性にすべきアドレスであるかどうかによって、メモリマップエントリの揮発性メンバの設定を行う請求項１記載のノーマリオフ端末装置。
【請求項３】
前記アプリケーションプログラムで前記オブジェクトが生成される際、揮発性と判定されたアドレスかどうかによって、前記オブジェクトの揮発性を設定する請求項１又は請求項２記載のノーマリオフ端末装置。
【請求項４】
前記アプリケーションプログラムで前記オブジェクト同士が演算される際、演算にかかわる前記オブジェクトのいずれかが揮発性かどうかによって、前記オブジェクトの揮発性を設定する請求項１乃至請求項３のいずれか１項に記載のノーマリオフ端末装置。
【請求項５】
前記ガーベジコレクタが前記オブジェクトのメモリを解放する際、前記オブジェクトが揮発性であれば、前記メモリを消去後に前記メモリを解放する請求項１乃至請求項４のいずれか１項に記載のノーマリオフ端末装置。
【請求項６】
前記オペレーティングシステムはUNIX（登録商標）（登録商標）ベースOS(4.4BSD)であり、
前記ワーキングメモリはＭＲＡＭ（磁気抵抗メモリ）であり、
前記インタプリタは、Rubyインタプリタである請求項１乃至請求項５のいずれか１項に記載のノーマリオフ端末装置。
【請求項７】
前記揮発性オブジェクトの消去は、乱数書き込みである請求項１乃至請求項６のいずれか１項に記載のノーマリオフ端末装置。
【請求項８】
前記揮発性オブジェクトの消去は、ゼロフィルである請求項１乃至請求項６のいずれか１項に記載のノーマリオフ端末装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、ノーマリオフ端末装置に関する。
【背景技術】
【０００２】
ディジタル携帯機器が高性能化し、インターネットから任意のプログラムを動作させることができるようになっている。
【０００３】
また、ディジタル携帯機器の低消費電力化を実現するため、プロセッサ内のワーキングメモリに高速不揮発メモリを使用したノーマリオフ端末装置が研究開発されている。揮発メモリであれば、電源オフ時にワーキングメモリの内容はすべて消去されるが、不揮発メモリの場合は残ってしまう。
【０００４】
ノーマリオフ端末装置では、個人情報や端末情報など、秘匿性の高いデータの漏洩防止がより困難になる。
【０００５】
電源をオフにしても秘匿性の高い情報がメモリに残る場合、その情報を盗み見るための方法として次の２つが考えられる。
【０００６】
（１）メモリを取り外して物理的に読み取る。  
（２）悪意あるプログラムを実行させて、インターネット等にアップロードする。
【０００７】
対策としては、
（ａ）メモリを物理的に取り外して、データを消去あるいは難読化されたデータの書込み
（ｂ）アプリケーション開発者が秘匿性の高い情報だけ消去するようプログラミングする、定期的にデータを消去する、アプリケーションが解放したメモリ内の情報をOSが消去する。
【０００８】
しかしながら、（ａ）の対策は（ｂ）の対策とならず、（ｂ）の各対策も、開発者の負担が増える上、完全性が期待できない、複製・演算された情報を追跡・消去することができない、秘匿性の低い情報も消去するためオーバーヘッドが大きいという問題がある。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２０１１−１８１０００号公報
【特許文献２】特開２０１１−４８８６１号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
本発明が解決しようとする課題は、不揮発性のワーキングメモリから効率よく秘匿性の高い情報を消去することができ、端末のセキュリティを向上させることができるノーマリオフ端末装置を提供することである。
【課題を解決するための手段】
【００１１】
実施形態のノーマリオフ端末装置は、オブジェクト指向言語であって、実行時にインタプリタあるいはバーチャルマシンを必要とする言語で記述されたアプリケーションプログラムを実装し、プロセッサ内のワーキングメモリの一部に不揮発メモリを使用したノーマリオフ端末装置であって、前記ワーキングメモリには、前記インタプリタあるいはバーチャルマシンによってオブジェクトが動的に確保され、該オブジェクトは揮発性と判定されたオブジェクトである揮発性オブジェクトと、不揮発性と判定されたオブジェクトである不揮発性オブジェクトとに分類され、前記端末装置で取り扱う前記オブジェクトの揮発性を設定するメモリ管理部を有するオペレーティングシステムと、前記端末装置の情報や個人情報に相当する情報が割り当てられた前記ワーキングメモリのメモリ領域を前記揮発性オブジェクト用として判定する揮発性判定部と、前記オブジェクトの揮発性を伝播させる揮発性伝播部と、前記揮発性オブジェクトに割り当てられたメモリ領域を解放する前に、前記メモリ領域を消去するガーベジコレクタとを有するインタプリタとを備え、前記揮発性オブジェクトをガーベジコレクトの前に消去する。
【図面の簡単な説明】
【００１２】
【図１】本実施形態に係るノーマリオフ端末装置の概略構成を示すブロック図である。
【図２】UNIX（登録商標）ベースOS(4.4BSD)におけるメモリ空間のレイアウトを示す図である。
【図３】Rubyインタプリタによる揮発性伝播部の処理コードの一例を抜粋したものである。
【図４】Rubyインタプリタによるガーベジコレクタの処理コードの一例を抜粋したものである。
【図５】メモリ管理部でメモリを確保するときの処理の流れを示すフローチャートである。
【図６】プログラムでオブジェクトが生成される際の処理の流れを示すフローチャートである。
【図７】プログラムでオブジェクト同士が演算される際の処理の流れを示すフローチャートである。
【図８】ガーベジコレクションでオブジェクトのメモリを解放する際の処理の流れを示すフローチャートである。
【発明を実施するための形態】
【００１３】
以下、本発明の一実施の形態について、図面を参照して説明する。
【００１４】
まず、本実施形態で用いる主要な用語について説明する。
【００１５】
「オペレーティングシステム（OS）」とは、コンピュータにおいて、ハードウェアを抽象化したインタフェースをアプリケーションに提供するソフトウェアをいう。
【００１６】
「ワーキングメモリ」とは、プログラムを動作させるときに利用するメモリをいう。高速であることが望ましいため、通常、SDRAM等の揮発性メモリが用いられる。揮発性メモリは電源をオフにすると全データが消去される。揮発性メモリと同等のスピードをもった不揮発性メモリが研究開発されており、これをワーキングメモリに用いた「ノーマリオフ端末」（通常時電源オフ）が研究開発されている。
【００１７】
「オブジェクト指向言語」とは、相互にメッセージを送りあうオブジェクトの集まりとして構成されたプログラミング言語をいう。本実施形態においては、実行時にインタプリタ（例えば、Ruby）やバーチャルマシン（例えば、Java（登録商標））が必要となる言語、後述する「ガーベジコレクション」や「taintモデル」が実装された言語を前提とする。
【００１８】
「ガーベジコレクション」とは、プログラムが動的に確保したメモリ領域のうち、不要になった領域を自動的に解放する機能をいう。
【００１９】
「taintモデル」とは、オブジェクト指向言語で実装されているセキュリティモデルのひとつである。汚染されたオブジェクトを演算して生成されたオブジェクトも汚染されている（汚染の伝播）とみなす。汚染されたオブジェクトによって、システムに関わる危険な操作（ファイル操作など）をしようとするとプログラムのセキュリティ例外が発生する（例えば異常終了する）。本実施形態においては、taintモデルにおける伝播の考え方をオブジェクトの「揮発性」について適用させている。すなわち、「揮発性」を有したオブジェクトを演算処理して生成されたオブジェクトも「揮発性」を有しているとし、「揮発性」が伝播するものと取り扱う。
【００２０】
本実施形態では、秘匿性の高い情報は、揮発性オブジェクトに分類させるものである。
【００２１】
本実施形態は、プログラマの意思に依らず、秘匿性の高いデータ（演算結果を含む）を、必要最小限のオーバーヘッドで消去するプログラムを実装したノーマリオフ端末装置である。
【００２２】
図１は、本実施形態に係るノーマリオフ端末装置の概略構成を示すブロック図である。
【００２３】
図１に示すように、本実施形態に係るノーマリオフ端末装置１は、大別すると、オペレーティングシステム１０、インタプリタ２０、アプリケーションプログラム３０、ワーキングメモリ４０から構成されている。
【００２４】
オペレーティングシステム１０は、メモリ管理部１１を備え、メモリ管理部１１は、揮発性設定部１１１を備えている。本実施形態に係るノーマリオフ端末装置では、OSコンパイル時に、秘匿性の高い情報を格納するメモリアドレスが端末メーカによって指定される。ここで、秘匿性の高い情報は、例えば、端末ID、ユーザ氏名等が該当する。
【００２５】
揮発性設定部１１１は、オペレーティングシステム１０が提供するシステムコールにて、当該オブジェクトの「揮発性」を設定する。上述したように、秘匿性の高い情報の格納領域情報は、端末装置のメーカによって、予め設定される。
【００２６】
インタプリタ２０は、ガーベジコレクタ２１と、揮発性伝播部２２と、揮発性判定部２３を備えている。ガーベジコレクタ２１は、メモリ消去部２１１を備えている。メモリ消去部２１１は、揮発性オブジェクトに割り当てられたメモリ領域を解放する前に、該当メモリ領域を消去するものである。消去方法は、ゼロフィルや乱数書き込みなどが好適である。消去方法は、特段限定されるものではない。
【００２７】
揮発性伝播部２２は、「揮発性」を伝播するための機構を追加するものである。ここで、伝播の仕組みは、taintモデルがオブジェクトの「汚染」を伝播するのと同様に、「揮発性」を伝播する。端末装置の情報や個人情報に相当する情報のように、秘匿性の高い情報は揮発性設定部１１１により揮発性オブジェクトと設定され、それらを演算処理等した結果のオブジェクトも「揮発性」となる。
【００２８】
揮発性判定部２３は、端末装置の情報や個人情報に相当する情報が割り当てられたメモリ領域を「揮発性」として判定する。上述したように、秘匿性の高い情報は、揮発性オブジェクトに割り当てられたメモリ領域に格納されている。
【００２９】
ワーキングメモリ４０には、インタプリタまたはバーチャルマシンによってオブジェクトが動的に確保される。そのオブジェクトは「揮発性」と判定されたオブジェクトである揮発性オブジェクト４１と、「不揮発性」と判定されたオブジェクトである不揮発性オブジェクト４２に分類される。
【００３０】
＜実施例＞
以上のように構成されたノーマリオフ端末装置１の一実施例について説明する。
【００３１】
オペレーティングシステム１０は、例えばUNIX（登録商標）ベースのOSである4.4BSDで構成することができる。
【００３２】
UNIX（登録商標）ベースOS(4.4BSD)のメモリ管理部では、端末情報や個人情報に相当するメモリ領域を、「揮発性」として設定する。図２は、UNIX（登録商標）ベースOS(4.4BSD)におけるメモリ空間のレイアウトを示す図である。図２に示すように、vm_map_entry構造体に「揮発性」の有無を表すメンバ変数を追加する。ここでは、オブジェクトが端末情報や個人情報だった場合は1、そうでない場合は0と設定する。また、メモリアドレスを与えたときに、「揮発性」の有無を返すシステムコールを追加するのが好適である。
【００３３】
インタプリタ２０としては、オブジェクト指向言語としてRubyインタプリタを実装することができる。図３は、Rubyインタプリタによる揮発性伝播部の処理コードの一例を抜粋したものである。taint モデルにおける「汚染の伝播」の実装と同様に、演算後も秘匿性が伝播するものとして実装している。
【００３４】
図４は、Rubyインタプリタによるガーベジコレクタの処理コードの一例を抜粋したものである。ここでは、揮発性メモリを解放する前にゼロフィルしている。
【００３５】
アプリケーションプログラム３０は、Rubyスクリプトによるメールソフトをインストールする。
【００３６】
ワーキングメモリ４０は、例えば、不揮発性メモリのＭＲＡＭ（磁気抵抗メモリ）が好適である。
【００３７】
以上のように構成したノーマリオフ端末装置１において、端末に設定された「ユーザ氏名」をメールソフトが読みとり、メールを送信する場合の処理の一例は、次のようになる。
【００３８】
（１）メールソフトが端末に設定された「ユーザ氏名」文字列を読み取る。予め、氏名の文字列はOSによって揮発性オブジェクトと設定されている。
【００３９】
（２）「ユーザ氏名」が含まれたメール本文が作成される。メール本文の文字列は、「氏名」文字列が演算されて生成されるため、揮発性オブジェクトになる。
【００４０】
（３）メールを送信し、メール本文がワーキングメモリ上で不要となったため、ガーベジコレクションの対象となる。メモリが解放される前に消去（ゼロフィル等）される。アプリケーション（ここでは、メールソフト）が利用する記憶容量全体のうち、端末に記憶された秘匿性の高い情報（ユーザ氏名等）と、それを元に生成された情報（メール本文等）が占める割合は小さい。それゆえ、不揮発性のワーキングメモリから効率よく秘匿性の高い情報を消去することができる。
【００４１】
図５は、メモリ管理部でメモリを確保するときの処理の流れを示すフローチャートである。
【００４２】
まず、OSコンパイル時に指定された揮発性にすべきアドレスか否かを判定する（ステップＳ５１）。
【００４３】
次に、「ユーザ氏名」が格納されたアドレスであれば揮発性にすべきアドレスなので（ステップＳ５１でＹｅｓ）、メモリマップエントリの揮発性メンバを1に設定する（ステップＳ５２）。その後、メモリ確保処理を終了する。
【００４４】
一方、揮発性にすべきアドレスでなければ（ステップＳ５１でＮｏ）、メモリマップエントリの揮発性メンバを0に設定（ステップＳ５３）した後、メモリ確保処理を終了する。
【００４５】
図６は、プログラムでオブジェクトが生成される際の処理の流れを示すフローチャートである。
【００４６】
まず、揮発性と判定されたアドレスか否かを判定する（ステップＳ６１）。係る処理は、システムコールで問い合わせる。
【００４７】
次に、「ユーザ氏名」情報のアドレスは揮発性なので（ステップＳ６１でＹｅｓ）、オブジェクトの揮発性をTRUEに設定する（ステップＳ６２）。その後、オブジェクトが生成される際の処理を終了する。
【００４８】
一方、揮発性と判定されたアドレスでなければ（ステップＳ６１でＮｏ）、オブジェクトの揮発性をFALSEに設定する（ステップＳ６３）。その後、オブジェクトが生成される際の処理を終了する。
【００４９】
図７は、プログラムでオブジェクト同士が演算される際の処理の流れを示すフローチャートである。
【００５０】
まず、演算にかかわるオブジェクトのいずれかが揮発性か否かを判定する（ステップＳ７１）。
【００５１】
次に、「ユーザ氏名」は揮発性オブジェクトなので（ステップＳ７１でＹｅｓ）、オブジェクトの揮発性をTRUEに設定する（ステップＳ７２）。その後、オブジェクトが生成される際の処理を終了する。
【００５２】
一方、揮発性のオブジェクトでなければ（ステップＳ７１でＮｏ）、オブジェクトの揮発性をFALSEに設定する（ステップＳ７３）。その後、オブジェクト同士が演算される際の処理を終了する。
【００５３】
図８は、ガーベジコレクションでオブジェクトのメモリを解放する際の処理の流れを示すフローチャートである。
【００５４】
まず、オブジェクトが揮発性か否かを判定する（ステップＳ８１）。
【００５５】
次に、「メール本文」は「ユーザ氏名」を演算して生成されたオブジェクトなので（ステップＳ８１でＹｅｓ）、メモリを消去（例：ゼロフィル）する（ステップＳ８２）する。その後、ステップＳ８３に移行してメモリを解放する。
【００５６】
一方、オブジェクトが揮発性がなければ（ステップＳ８１でＮｏ）、メモリを解放する（ステップＳ８３）。その後、オブジェクトのメモリが解放された際の処理を終了する。
【００５７】
以上説明したように、本実施形態によれば、不揮発性のワーキングメモリから効率よく秘匿性の高い情報を消去することができるので、端末のセキュリティを向上させることができる。
【００５８】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００５９】
１・・・ノーマリオフ端末装置
１０・・・オペレーティングシステム
１１・・・メモリ管理部
１１１・・・揮発性設定部
２０・・・インタプリタ
２１・・・ガーベジコレクタ
２１１・・・メモリ消去部
２２・・・揮発性伝播部
２３・・・揮発性判定部
３０・・・アプリケーションプログラム
４０・・・ワーキングメモリ
４１・・・揮発性オブジェクト
４２・・・不揮発性オブジェクト
【図１】
2014235591.tif 000003
【図２】
2014235591.tif 000004
【図３】
2014235591.tif 000005
【図４】
2014235591.tif 000006
【図５】
2014235591.tif 000007
【図６】
2014235591.tif 000008
【図７】
2014235591.tif 000009
【図８】
2014235591.tif 000010