説明

可搬型記憶媒体、データ認証プログラム及びデータ認証方法

【課題】汎用性を維持しつつ、ウィルス感染を抑制する。
【解決手段】セッションキー生成器54は、セッションキー70を生成し、コントローラ68は、PC100から記憶領域52に記憶されるデータ(データブロック)からハッシュ値を算出して当該ハッシュ値をセッションキーで暗号化して得られるシグネチャをデータブロックに付加するフィルタA60、をPC100に送信するとともに、セッションキーをPCに送信する。また、セッションキー検出モジュール66は、データブロックが記憶領域に記憶される前に、データブロックのハッシュ値と、セッションキー記憶領域に格納されているセッションキーと、を用いて、シグネチャの正当性を確認し、正当な場合に、データブロックの記憶領域に対する記憶を許可する。

【発明の詳細な説明】
【技術分野】
【0001】
本件は、可搬型記憶媒体、データ認証プログラム及びデータ認証方法に関する。
【背景技術】
【0002】
USBメモリなどの可搬型記憶媒体のオートラン機能を用いてPC(Personal Computer)に感染するウィルスが出現してきている。これに対応すべく、最近では、特許文献1〜4のような技術が提案されている。特許文献1には、USBメモリがPCに接続されたときに、USBメモリからPCに対して書き込みと読み出しを制御するプログラムをロードする技術が開示されている。また、特許文献2には、入出力インタフェースのデバイスドライバによるフィルタリング機能に関する技術が開示されている。また、特許文献3には、コンテンツと媒体を関連付けて管理し、他の媒体への書き込み等を防止する技術が開示されている。更に、特許文献4には、情報処理装置と記憶媒体で一意のデータを共有し、書き込み・読み出し中に当該データを確認して処理を行う技術が開示されている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2006−243973号公報
【特許文献2】特開2004−318720号公報
【特許文献3】特開2009−87497号公報
【特許文献4】特開2006−31540号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、上記特許文献1〜4では、USBメモリを介してウィルス感染を目論む不正なユーザは、フィルタを外すなどして、不正なプロセスにより、USBメモリにウィルスを書き込むことができるおそれがある。
【0005】
また、特許文献3ではPC側に専用のアプリケーション(ドライバ)が必須となるため、通常のUSBメモリよりも使い勝手が悪くなる(汎用性が低下する)おそれがある。
【0006】
そこで本件は上記の課題に鑑みてなされたものであり、汎用性を維持しつつ、ウィルス感染を抑制することが可能な可搬型記憶媒体を提供することを目的とする。また、本件は、ウィルス感染を抑制することが可能なデータ認証プログラム及びデータ認証方法を提供することを目的とする。
【課題を解決するための手段】
【0007】
本明細書に記載の可搬型記憶媒体は、外部の情報処理装置から送信された記憶対象データを記憶するデータ記憶領域と、認証情報を生成する認証情報生成部と、前記データ記憶領域に記憶する記憶対象データからデータ別情報を算出し、当該データ別情報を前記認証情報で所定変換して得られる付加情報を前記記憶対象データに付加する処理を情報処理装置に実行させる制御プログラムを前記情報処理装置に送信するとともに、前記認証情報を前記情報処理装置に送信する送信部と、前記認証情報を格納する格納部と、前記情報処理装置から、前記データ記憶領域に記憶する記憶対象データを受信し、前記記憶対象データのデータ別情報と、前記格納部に格納されている前記認証情報と、を用いて、前記付加情報の正当性を確認し、正当である場合に、前記記憶対象データの前記データ記憶領域に対する記憶を許可する許可部と、を備える可搬型記憶媒体である。
【0008】
本明細書に記載のデータ認証プログラムは、ータ記憶領域を有する可搬型記憶媒体で用いられるデータ認証プログラムであって、コンピュータを、認証情報を生成する認証情報生成部、前記データ記憶領域に記憶する記憶対象データからデータ別情報を算出し、当該データ別情報を前記認証情報で所定変換して得られる付加情報を前記記憶対象データに付加する処理を情報処理装置に実行させる制御プログラム、を前記情報処理装置に送信するとともに、前記認証情報を前記情報処理装置に送信する送信部、及び前記情報処理装置から、前記データ記憶領域に記憶する記憶対象データを受信し、前記記憶対象データのデータ別情報と、前記認証情報生成部で生成された認証情報と、を用いて、前記付加情報の正当性を確認し、正当である場合に、前記記憶対象データの前記データ記憶領域に対する記憶を許可する許可部、として機能させるデータ認証プログラムである。
【0009】
本明細書に記載のデータ認証方法は、データ記憶領域を有する可搬型記憶媒体が行うデータ認証方法であって、認証情報を生成する認証情報生成工程と、前記データ記憶領域に記憶する記憶対象データからデータ別情報を算出し、当該データ別情報を前記認証情報で所定変換して得られる付加情報を前記記憶対象データに付加する処理を情報処理装置に実行させる制御プログラム、を前記情報処理装置に送信するとともに、前記認証情報を前記情報処理装置に送信する送信工程と、前記情報処理装置から、前記データ記憶領域に記憶する記憶対象データを受信し、前記記憶対象データのデータ別情報と、前記認証情報生成工程で生成された認証情報と、を用いて、前記付加情報の正当性を確認し、正当である場合に、前記記憶対象データの前記データ記憶領域に対する記憶を許可する許可工程と、を含むデータ認証方法である。
【発明の効果】
【0010】
本明細書に記載の可搬型記憶媒体は、汎用性を維持しつつ、ウィルス感染を抑制することができるという効果を奏する。また、本明細書に記載のデータ認証プログラム及びデータ認証方法は、ウィルス感染を抑制することができるという効果を奏する。
【図面の簡単な説明】
【0011】
【図1】USBメモリが接続可能なPCの構成を概略的に示す図である。
【図2】PC及びUSBメモリを示すブロック図である。
【図3】PCのUSB接続インタフェースに、USBメモリが接続されたときのUSBメモリにおける処理を示すフローチャートである。
【図4】PCのアプリケーションから、データをUSBメモリの記憶領域に記憶する際の、OSの処理について示すフローチャートである。
【図5】シグネチャが付加されたデータブロックを受信したときのUSBメモリ側での処理を示すフローチャートである。
【図6】図3の処理が終了した時点でのPC及びUSBメモリの状態を示す図である。
【図7】図4,図5の処理に対応する、PC及びUSBメモリの状態を示す図である。
【発明を実施するための形態】
【0012】
以下、可搬型記憶媒体、データ認証プログラム及びデータ認証方法の一実施形態について、図1〜図7に基づいて詳細に説明する。
【0013】
図1には、可搬型記憶媒体としてのUSBメモリ200を接続可能な情報処理装置としてのPC100の構成が概略的に示されている。このPC100は、CPU10と、ROM12と、RAM14と、ハードディスクドライブ(HDD)18と、入力手段20と、出力手段22と、USB接続インタフェース16と、を備え、これらはバスにより接続されている。入力手段20としてはキーボードやマウス等があり、出力手段22としてはCRT、LCD等のディスプレイやプリンタ等がある。USB接続インタフェース16を介して接続されたUSBメモリとの情報のやりとりが行われる。HDD18には、各種汎用プログラムが格納されており、HDD18に格納されているプログラムをCPU10が実行することにより、PC100は各種機能を実現することができる。
【0014】
図2は、本発明の一実施例を示す図である。図2の例ではPC100上にロードされたOS(Operating System)30が動作することでUSBメモリ200との間の情報のやり取り等の制御が行われる。
【0015】
USBメモリ200は、PC100上で作成されたデータ(ユーザデータ)等を格納するとともに、制御プログラムとしてのフィルタA60を格納するデータ記憶領域としての記憶領域52と、認証情報生成部としてのセッションキー生成器54と、格納部としてのセッションキー記憶領域56と、フィルタB58と、を有する。記憶領域52に格納されているフィルタA60は、書き込み・読み出し制御プログラムであり、セッションキー発生ID62と、セッションキーを保持するためのセッションキーエリア64とを有する。このフィルタA60は、フィルタB58のコントローラ68の指示の下、セッションキー検出モジュール66を経由して、PC100のOS30に送信(ロード)される。
【0016】
セッションキー生成器54は、認証情報としてのセッションキー(70)を生成する。このセッションキー70は、例えば、ワンタイムパスワードである。セッションキー記憶領域56は、セッションキー生成器54において生成されたセッションキー70を格納(記憶)する。
【0017】
フィルタB58は、許可部としてのセッションキー検出モジュール66と、送信部としてのコントローラ68とを有する。セッションキー検出モジュール66は、フィルタA60が有するセッションキー発生ID62と同一のセッションキー発生ID62を保持している。したがって、セッションキー検出モジュール66は、記憶領域52からPC100側に送信されるフィルタのセッションキー発生IDと自己が保有するセッションキー発生IDとを比較することで、当該フィルタがフィルタA60であるか否かを判断することができる。セッションキー検出モジュール66が、両セッションキー発生IDが一致したことをコントローラ68に通知すると、コントローラ68は、セッションキー生成器54に対し、セッションキーの生成開始を指示する。
【0018】
次に、上記のように構成されるPC100及びUSBメモリ200における処理について、図3〜図5のフローチャートに沿って、その他図面を適宜参照しつつ説明する。
【0019】
図3は、PC100のUSB接続インタフェース16に、USBメモリ200が接続されたときのUSBメモリ200における処理を説明するフローチャートである。この図3に示すように、ステップS10では、コントローラ68が、USBメモリ200がPC100のUSB接続インタフェース16に接続されるまで待機する。そして、ステップS10の判断が肯定されると、ステップS12に移行する。ステップS12では、コントローラ68が、フィルタA60のPC100へのロードを開始する。
【0020】
次のステップS14では、セッションキー検出モジュール66が、コントローラ68の指示の下、PC100にロードされるフィルタのセッションキー発生IDと、自己が保有するセッションキー発生IDとが一致するか否かを判断する。ここでの判断結果は、コントローラ68に通知される。ステップS14の判断が肯定された場合には、フィルタA60がPC100にロードされていることを意味する。この場合、ステップS16に移行し、コントローラ68の指示の下、セッションキー生成器54が、セッションキー70を生成し、生成したセッションキー70を、セッションキー記憶領域56に記憶する。なお、ステップS14の判断が否定された場合には、ステップS17に移行して、コントローラ68が、フィルタのロードを中止する。
【0021】
ステップS18では、コントローラ68が、ステップS16において生成されたセッションキーを、フィルタA60のセッションキーエリアに格納する。次いで、ステップS19では、コントローラ68が、PC100へのフィルタA60のロードが完了したか否かを判断する。ここでの判断が肯定されると、図3の全処理が終了する。なお、図3の処理が終了した段階(ステップS14が肯定されて終了した段階)では、PC100及びUSBメモリ200は、図6に示すような状態となる。具体的には、図6では、PC100のOS30に、セッションキーエリア64に対してセッションキー70が格納されたフィルタA60がロードされている。また、図6では、セッションキー記憶領域56に、フィルタA60に格納されているセッションキーと同一のセッションキー70が記憶されている。
【0022】
次に、図6の状態になった後に、PC100の汎用プログラム(アプリケーション)から、データをUSBメモリ200の記憶領域52に記憶する際の、OS30の処理について、図4のフローチャートに沿って説明する。
【0023】
図4のステップS20では、OS30が、アプリケーションからの指示を受けて、データをUSBメモリ200の記憶領域52に記憶(保存)するか否かを判断する。アプリケーションからOS30に対してデータが送られ(図7の太線矢印(1)参照)、OS30により判断が肯定されると、ステップS22に移行する。
【0024】
ステップS22では、OS30上で、フィルタA60が、データブロックのハッシュ値を求め、当該ハッシュ値をセッションキー70で暗号化してシグネチャを生成する。なお、ハッシュ値は、メッセージ認証符号(Message Authentication Code:MAC)とも呼ばれる。また、暗号化の方式としては、例えば、3DES(Triple DES)やAES(Advanced Encryption Standard)などを用いることができる。そして、シグネチャが生成された後、フィルタA60は、データブロックにシグネチャを付加する(図7の太線矢印(2)参照)。次いで、ステップS24では、フィルタA60は、USBメモリ200のフィルタB58(セッションキー検出モジュール66)にシグネチャが付加されたデータブロックを送信する(図7の太線矢印(3)参照)。以上により、PC100側での処理が終了する。
【0025】
次に、シグネチャが付加されたデータブロックを受信したUSBメモリ200側での処理について、図5のフローチャートに沿って説明する。図5のフローチャートでは、ステップS30において、セッションキー検出モジュール66が、データブロックが送られてきたと判断すると、ステップS32に移行し、当該データブロックにシグネチャが付加されているか否かを判断する。ここでの判断が肯定されると、ステップS34に移行し、データブロックのハッシュ値H1を算出する。
【0026】
次いで、ステップS36では、セッションキー検出モジュール66は、データブロックに付加されているシグネチャを、セッションキー記憶領域56内のセッションキーで復号化して値H2を得る(図7の太線矢印(4)参照)。なお、ここでは、前述した暗号化の方式(3DESやAESなど)に対応する(暗号化とは逆の)復号化方式を用いることとする。
【0027】
次いで、ステップS38では、セッションキー検出モジュール66は、値H1と値H2とが一致するか否かを判断する。ここで、シグネチャは、上述したステップS22で説明したように、データブロックのハッシュ値をセッションキー70で暗号化したものである。すなわち、データブロックがフィルタA60を通過していれば、シグネチャをセッションキーで復号化して得られる値H2は、データブロックのハッシュ値そのものとなるはずである。したがって、ここでの判断が肯定された場合、データブロックがフィルタA60を正当に経由したことを意味することになる。
【0028】
したがって、ステップS38の判断が肯定された場合には、データブロックが安全である(ウィルスでない)と判断できる。このため、セッションキー検出モジュール66は、ステップS40において、当該データブロックを記憶領域52に記憶(保存)する(図7の太線矢印(5)参照)。その後、図5の全処理を終了する。
【0029】
一方、ステップS32の判断が否定された場合、すなわちデータブロックにシグネチャが付加されていない場合、又はステップS38の判断が否定された場合、すなわち値H1,H2が一致しなかった場合、データブロックが正規にUSBメモリ200に送られて来ていないことを意味する。すなわち、このような場合には、USBメモリ200に記憶しようとしているデータブロックがフィルタA60を通過していない非正規なデータである可能性がある。あるいは、フィルタA60がPC100上で改変されている可能性があると考えられる。したがって、ステップS32又はステップS38の判断が否定された場合には、セッションキー検出モジュール66は、ステップS42においてデータブロックを破棄し(データブロックを保存しないようにし)、図5の全処理を終了する。
【0030】
なお、図4の処理は、アプリケーションからデータ記憶の要求が出される度に実行され、図5の処理は、PC100側からデータが送られてくる度に実行される。
【0031】
以上、詳細に説明したように、本実施形態によると、USBメモリ200は、PC100から送信される記憶対象のデータを記憶する記憶領域52と、セッションキー70を生成するセッションキー生成器54と、記憶領域52に記憶するデータ(データブロック)からハッシュ値を算出し、当該ハッシュ値をセッションキーで暗号化して得られるシグネチャをデータブロックに付加するフィルタA60、をPC100に送信するとともに、セッションキーをPC100に送信するコントローラ68と、セッションキー70をUSBメモリ200内で格納するセッションキー記憶領域56と、データブロックが記憶領域52に記憶される前に、データブロックのハッシュ値と、シグネチャと、セッションキー記憶領域56に格納されているセッションキー70とに基づいて、データブロックの記憶領域52に対する記憶を許可するセッションキー検出モジュール66とを備えている。このように、PC100側では、フィルタA60において、記憶対象のデータブロックに、シグネチャが付加され、USBメモリ200側では、データブロックに付加されているシグネチャが正当なものであるかどうかを、データブロックのハッシュ値や、USBメモリ200側に記憶されているセッションキーを用いて確認(判定)する。そして、正当である場合に限り、データブロックを記憶領域52に記憶する。したがって、データがフィルタA60を通らずに、非正規のルートでUSBメモリ200側に送信されてきた場合や、フィルタA60が改ざんされたような場合に、データを記憶領域52に記憶させないようにすることができる。これにより、USBメモリ200への非正規なデータの記憶、すなわち、ウィルス等の感染を抑制することができる。また、本実施形態では、PC100に専用のアプリケーションや新たなインタフェース等を必要とすることがないので、USBメモリの汎用性を維持することができる。
【0032】
また、本実施形態では、セッションキー検出モジュール66は、データブロックが記憶領域52に記憶される前に、データブロックからハッシュ値を算出し、当該ハッシュ値H1と、データブロックに付加されているシグネチャをセッションキーで復号化した結果得られる値H2とが一致する場合に、記憶領域52への記憶を許可することとしている。すなわち、データブロックがフィルタA60を通らなければ、値H1とH2が一致する可能性はゼロに近いので、値H1とH2とが一致しない場合に、データの記憶を禁止することとすることで、USBメモリ200へのウィルス感染を抑制することができる。
【0033】
また、本実施形態では、フィルタA60が、データブロックのハッシュ値をセッションキーで暗号化してシグネチャを算出し、セッションキー検出モジュール66が、データブロックのハッシュ値H1と、シグネチャをセッションキーで復号化して得られる値H2と、を比較することとしているので、比較的簡易な計算で、記憶領域52に対する正規のデータのみの記憶を許可することができる。
【0034】
なお、上記実施形態では、データ別情報としてハッシュ値、認証情報としてセッションキー、所定変換として暗号化、所定変換の逆変換として復号化を採用する場合について説明したが、これに限らず、その他の値、変換方法を用いることとしても良い。
【0035】
なお、上記実施形態では、可搬型記憶媒体がUSBメモリである場合について説明したが、これに限られるものではない。可搬型記憶媒体としては、例えば、メモリースティック(登録商標)、メモリースティックDuo(登録商標)、メモリースティックマイクロ(登録商標)などのメモリースティック関連の商品や、SDカード(登録商標)、MiniSDカード(登録商標)、MicroSDカード(登録商標)、xDカード(登録商標)などを用いても良い。また、USBメモリに代えて、USB-HDDを採用しても良い。
【0036】
上述した実施形態は本発明の好適な実施の例である。但し、これに限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変形実施可能である。
【符号の説明】
【0037】
52 記憶領域(データ記憶領域)
54 セッションキー生成器(認証情報生成部)
56 セッションキ―記憶領域(格納部)
60 フィルタA(制御プログラム)
66 セッションキー検出モジュール(許可部)
68 コントローラ(送信部)
70 セッションキー(認証情報)
100 PC(情報処理装置)
200 USBメモリ(可搬型記憶媒体)

【特許請求の範囲】
【請求項1】
外部の情報処理装置から送信された記憶対象データを記憶するデータ記憶領域と、
認証情報を生成する認証情報生成部と、
前記データ記憶領域に記憶する記憶対象データからデータ別情報を算出し、当該データ別情報を前記認証情報で所定変換して得られる付加情報を前記記憶対象データに付加する処理を情報処理装置に実行させる制御プログラムを前記情報処理装置に送信するとともに、前記認証情報を前記情報処理装置に送信する送信部と、
前記認証情報を格納する格納部と、
前記情報処理装置から、前記データ記憶領域に記憶する記憶対象データを受信し、前記記憶対象データのデータ別情報と、前記格納部に格納されている前記認証情報と、を用いて、前記付加情報の正当性を確認し、正当である場合に、前記記憶対象データの前記データ記憶領域に対する記憶を許可する許可部と、
を備える可搬型記憶媒体。
【請求項2】
前記許可部は、前記記憶対象データが前記データ記憶領域に記憶される前に、前記記憶対象データからデータ別情報を算出し、当該データ別情報と、前記記憶対象データに付加されている付加情報を前記認証情報を用いて前記所定変換とは逆変換をした結果得られる情報と、を比較し、両情報が一致する場合に、前記記憶対象データの前記データ記憶領域への記憶を許可することを特徴とする請求項1に記載の可搬型記憶媒体。
【請求項3】
前記制御プログラムは、前記記憶対象データのハッシュ値を前記認証情報で暗号化して前記付加情報を算出し、
前記許可部は、前記記憶対象データのハッシュ値と、前記付加情報を前記認証情報を用いて復号化して得られる情報と、を比較することを特徴とする請求項2に記載の可搬型記憶媒体。
【請求項4】
データ記憶領域を有する可搬型記憶媒体で用いられるデータ認証プログラムであって、
コンピュータを、
認証情報を生成する認証情報生成部、
前記データ記憶領域に記憶する記憶対象データからデータ別情報を算出し、当該データ別情報を前記認証情報で所定変換して得られる付加情報を前記記憶対象データに付加する処理を情報処理装置に実行させる制御プログラム、を前記情報処理装置に送信するとともに、前記認証情報を前記情報処理装置に送信する送信部、及び
前記情報処理装置から、前記データ記憶領域に記憶する記憶対象データを受信し、前記記憶対象データのデータ別情報と、前記認証情報生成部で生成された認証情報と、を用いて、前記付加情報の正当性を確認し、正当である場合に、前記記憶対象データの前記データ記憶領域に対する記憶を許可する許可部、
として機能させることを特徴とするデータ認証プログラム。
【請求項5】
データ記憶領域を有する可搬型記憶媒体が行うデータ認証方法であって、
認証情報を生成する認証情報生成工程と、
前記データ記憶領域に記憶する記憶対象データからデータ別情報を算出し、当該データ別情報を前記認証情報で所定変換して得られる付加情報を前記記憶対象データに付加する処理を情報処理装置に実行させる制御プログラム、を前記情報処理装置に送信するとともに、前記認証情報を前記情報処理装置に送信する送信工程と、
前記情報処理装置から、前記データ記憶領域に記憶する記憶対象データを受信し、前記記憶対象データのデータ別情報と、前記認証情報生成工程で生成された認証情報と、を用いて、前記付加情報の正当性を確認し、正当である場合に、前記記憶対象データの前記データ記憶領域に対する記憶を許可する許可工程と、
を含むデータ認証方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2011−197850(P2011−197850A)
【公開日】平成23年10月6日(2011.10.6)
【国際特許分類】
【出願番号】特願2010−61832(P2010−61832)
【出願日】平成22年3月18日(2010.3.18)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】