説明

情報装置及び認証プログラム

【課題】接続されたコンピュータに対する認証処理が情報装置側で完結する情報装置を提供する。
【解決手段】情報装置は、コンピュータと接続された場合、該コンピュータによってネットワークデバイスとして認識されることが可能な通信部を介して接続された第1のコンピュータに対して第1の試験要求情報を送信し、第1の試験要求情報に対する第1のコンピュータからの第1の試験応答情報を受信した場合に第1の試験要求情報の送信に使用した第1のポート番号を保持し、該保持した第1のポート番号の組み合わせと予め保持しているコンピュータを識別するための識別ポート番号の組み合わせとを照合して、第1のコンピュータの認証を行うことにより、上記課題の解決を図る。

【発明の詳細な説明】
【技術分野】
【0001】
本実施形態は、接続されたコンピュータに対する認証処理を行う情報装置に関する。
【背景技術】
【0002】
顧客情報や会社の重要なデータを含む情報の漏えいが問題となっている。例えばUSB(Universal Serial Bus)規格に準拠した可搬型メモリ装置(いわゆるUSBメモリ装置)などの可搬媒体経由での漏えい事件も多い。そこで、USBメモリ装置からの情報漏洩を防止するために、USBメモリ装置の記憶領域にアクセスするためにパスワードを必要とする製品や、指紋入力を必要とする製品が流通している。
【0003】
また、ポータブルデバイスをホストデバイスに接続すると、そのホストデバイスに当該ポータブルデバイスを識別させ、ホストデバイスとの通信リンクを確立させることができるポータブルデバイスが開示されている(例えば、特許文献1)。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2006‐114048号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
従来のUSBメモリ装置の記憶領域にアクセスするためにパスワードを必要とする製品や指紋入力を必要とする製品はコンピュータと接続され、当該製品とコンピュータとの間で認証処理が行われることが多い。しかし、セキュリティの観点からは、認証処理は個々の装置で完結しているのが望ましい。
【0006】
そこで、接続されたコンピュータに対する認証処理が情報装置側で完結する情報装置を提供する。
【課題を解決するための手段】
【0007】
本実施形態の一例に係る情報装置は、コンピュータと接続された場合、該コンピュータにおいて起動しているデバイスドライバに基づいて該コンピュータにネットワークデバイスとして認識されることが可能であって該コンピュータとの通信を可能にする通信部と、コンピュータを識別するためのポート番号である識別ポート番号を格納する格納部と、前記通信部を介して接続された第1のコンピュータに対して第1の試験要求情報を送信し、該第1の試験要求情報に対する該第1のコンピュータからの第1の試験応答情報を受信した場合に該第1の試験要求情報の送信に使用した第1のポート番号を保持し、該保持した第1のポート番号の組み合わせと前記識別ポート情報の組み合わせとを照合し、該照合結果に基づいて前記第1のコンピュータの認証を行う認証部と、を含む。
【0008】
本実施形態の一例に係る、コンピュータに接続可能な情報装置の制御部により実行される認証プログラムは、コンピュータと接続された場合、該コンピュータにおいて起動しているデバイスドライバに基づいて該コンピュータにネットワークデバイスとして認識されることが可能であって該コンピュータとの通信を可能にする前記情報装置に設けられた通信部を介して接続された第1のコンピュータに対して第1の試験要求情報を送信する送信処理と、前記第1の試験要求情報に対する前記第1のコンピュータからの第1の試験応答情報を受信した場合に該第1の試験要求情報の送信に使用した第1のポート番号を保持する保持処理と、前記保持した第1のポート番号の組み合わせと、コンピュータを識別するためのポート番号である識別ポート情報の組み合わせとを照合し、該照合結果に基づいて前記第1のコンピュータの認証を行う認証処理と、を前記制御部に実行させる。
【発明の効果】
【0009】
本発明の実施形態における情報装置によれば、接続されたコンピュータに対する認証処理が情報装置側で完結することができる。
【図面の簡単な説明】
【0010】
【図1】PC100とUSBメモリ装置の関連付けを実現するための構成を示す。
【図2】USBメモリ装置200をPC100に接続したときの様子を示す。
【図3】アプリケーションプログラム231がPC100にロードされてプロセス101が起動された様子を示す。
【図4】プロセス101によるPC100とUSBメモリ装置200(コントローラ240)の関連付けのシーケンスを示す。
【図5】PC100との関連付け処理が完了したUSBメモリ装置200を利用する場合に行われるシーケンスを示す。
【図6】本実施形態におけるUSBメモリ装置201の全体構成の一例(PC100がネットワークデバイスを認識する前の状態)を示す。
【図7】本実施形態におけるUSBメモリ装置201の全体構成の一例(PC100がネットワークデバイス500を認識している状態)を示す。
【図8】本実施形態におけるマイコン600の内部構成の一例を示す。
【図9】本実施形態におけるPC100とUSBメモリ装置201の関連付けの前提として実行されるPC100によるネットワークアドレスの割り当て処理からUSBメモリ装置201によるPC100のIPアドレス取得までのシーケンスの一例を示す。
【図10】3WAY−HandShakeを説明するための図である。
【図11】本実施形態におけるSYNフラグがセットしてあるTCP受信パケットをDROPするように設定されたPC100のポートに対してTCP接続を試みた場合のシーケンスの一例を示す。
【図12】本実施形態におけるSYNパケットを受信できるポートに対してSYNパケットを送信した場合のシーケンスの一例を示す。
【図13】予め決められたポート番号の範囲に対するポートスキャン実施後のポート番号格納領域601に格納されたポート番号の一例を示す。
【図14】本実施形態におけるマイコン600による全体の制御フローの一例を示す。
【図15】本実施形態における関連付け設定処理フローの一例を示す。
【図16】本実施形態におけるUSBメモリ装置による接続されたコンピュータに対する認証処理フローの一例を示す。
【発明を実施するための形態】
【0011】
USBメモリ装置を介した情報漏洩を防ぐため、USBメモリ装置を特定のコンピュータのみにおいて使用できるように、USBメモリ装置とPCとの関連付けを行う技術が考えられる。すなわち、USBメモリ装置等の可搬型記憶装置を、所有者のPCでのみ利用できるようにするために、初回利用時にPCと関連付けをし、他のPCでは利用できないようにすることが考えられる。USBメモリ装置を特定のコンピュータPCのみにおいて使用できるように、USBメモリ装置とPCとの関連付けを行う技術としては、例えば、次のものが考えられる。
【0012】
まず、使用を許可するPCの固有のID(BIOSのID等)と、その関連付けを行うための自動起動アプリケーションプログラムとをUSBメモリ装置に予め格納しておく。USBメモリ装置がPCに接続されると、当該アプリケーションプログラムがPC上に読み込まれて起動され、PCの所定の位置に格納された固有のIDを読み込む。
【0013】
そして、アプリケーションプログラムは、PCから読み込んだIDと、USBメモリ装置上に格納されたIDとを照合する。照合の結果、両IDが一致すれば、アプリケーションプログラムは、USBメモリ装置の使用を許可し、一致しない場合にはUSBメモリ装置へのアクセスを禁止する。USBメモリ装置とPCとの関連付けを行う技術について、以下で説明する。なお、以下では、可搬媒体をUSBメモリ装置として説明するがこれに限定されない。
【0014】
図1は、PC100とUSBメモリ装置の関連付けを実現するための構成を示す。USBメモリ装置200は、PC100に接続する前の状態である。この時点では、PC100とUSBメモリ装置200との関連付けは、行われていない。ROM230は、リードオンリーメモリである。ROM230には、PC100とUSBメモリ装置200との関連付けを制御するアプリケーションプログラム231が保存されている。
【0015】
メモリ220は、データ等を保存するためのフラッシュメモリである。メモリ220には、保護すべきコンテンツ221が保存されている。USBハブ210は、ROM230とメモリ220をPC100側に見せるためのハブ装置である。
【0016】
コントローラ240は、アプリケーションプログラム231からの制御コマンドを受けて、メモリ220をPC100側に見せるようにUSBハブ210に指示する装置である。また、PC100との関連付け情報を保存するための関連付け保存領域241を持つ。
【0017】
図2は、USBメモリ装置200をPC100に接続したときの様子を示す。USBメモリ装置200のUSBコネクタを、PC100のUSBコネクタに接続する。すると、PC100は、USBハブ210を介して、ROM230とコントローラ240とを参照できるようになる。
【0018】
それから、PC100を利用するユーザは、ROM230上のアプリケーションプログラム231を起動する。もしくは、オペレーションシステム(以下では「OS」と称する。OSとして例えば、本実施形態ではWindows(登録商標)を用いる。)の自動起動機能により、アプリケーションプログラム231が自動起動される。
【0019】
図3は、アプリケーションプログラム231がPC100にロードされてプロセス101が起動された様子を示す。図3では、ROM230に格納されたアプリケーションプログラム231が、USBハブ210を介して、PC100に設けられたRAM(Random Access Memory)にロードされている。そして、アプリケーションプログラム231はプロセス101としてPC100上で実行されている。
【0020】
図4は、プロセス101によるPC100とUSBメモリ装置200(コントローラ240)の関連付けのシーケンスを示す。USBメモリ装置200からPC100上で起動されたプロセス101は、PC100に割り当てられたユニークなID(PCID)を、PC100から抽出する。PCIDは例えば、PC100において、ネットワークカードに割り当てられているMACアドレスやBIOSに割り当てられているBIOS−ID等である。プロセス101は、その抽出したPCIDをUSBメモリ装置200へ転送する。
【0021】
コントローラ240は、PCIDを格納する関連付け保存領域241を有している。コントローラ240は、PC100から受け取ったPCIDを、関連付け保存領域241に保存する。これにより、PC100のPCIDは、コントローラ240に設定される(S1)。
【0022】
PCIDの設定の終了後、プロセス101はバインディグ・フェーズを完了することをコントローラ240に通知する(S2)。
図5は、PC100との関連付け処理が完了したUSBメモリ装置200を利用する場合に行われるシーケンスを示す。まず、図4で説明したPC100との関連付け処理が完了したUSBメモリ装置200のUSBコネクタを、PC100のUSBコネクタに接続する。
【0023】
すると、PC100上のプロセス101は、PC100のPCIDを、上記と同様にPC100から抽出する。それから、USBメモリ装置200と接続されたPCが図4のシーケンスを経て関連付けされたPC100かどうかを確認するために、プロセス101は、PCIDをコントローラ240へその確認依頼と共にそのPCIDを送信する(S11)。
【0024】
コントローラ240は、その確認依頼を受信すると、図4のS1で保存したPCIDと、S11でプロセス101から送られてきたPCIDとを比較する。その比較の結果、コントローラ240は、PCIDが一致すれば予めUSBメモリ装置200と関連付けされたPCと判断し、一致しなければ関連付けされていないPCと判断する。
【0025】
関連付けされていないPCの場合は、メモリ220の情報を消去、もしくは、メモリ220の機能自体を無効にするなどの処理が施行される。
ところが、本方式は、PC100が関連付けされているかを確認するために、PC100上でUSBメモリ装置200のアプリケーションプログラム231を起動しなければならない。
【0026】
もしアプリケーションプログラム231を起動させないとすると、USBメモリ装置200が予め関連付けされていないPCに接続されていても、USBメモリ装置200の機能自体を無効化するなどの処理を施せないことになる。
【0027】
このように図1−図5の場合、PC100とUSBメモリ装置200との関連付けを行うためのアプリケーションプログラム231をPC100側で実行する必要がある。USBメモリ装置200側にとって、PC100は信頼できない(ブラックボックスである)ため、このような構成については問題がある。すなわち、セキュリティの観点からは、関連付けを行う仕組みが、USBメモリ装置内で完結しているのが望ましい。
【0028】
そこで、本実施形態では、接続されたコンピュータにネットワークデバイスとして認識させ、PCとUSBメモリ装置との関連付けを確認するプログラムを実行させるようにする。このプログラムは、コンピュータに対してネットワーク接続により所定の試験要求パケット(PC固有の振る舞いがネットワークから判別できるパケットであって、例えば、特定のポートの開閉状況を確認するためのパケット等)を送信する。そして、そのプログラムは、そのパケットに対する試験応答を受信する。そして、そのプログラムは、そのPCが、予めUSBメモリ装置と関連付けがあることを確認した場合、コンピュータにメモリアクセスを許可する。
【0029】
このように構成することにより、PCとUSBメモリ装置との関連付けを判定する仕組みがUSBメモリ装置内で完結する。そのため、PCが信頼できないという前提であっても、安全に、PCとUSBメモリ装置とが関連付けされているか否かの判定をすることができる。
【0030】
以下では、USBメモリ装置201の初期時に行われるPCとの関連付け処理について図6〜図13を用いて説明し、USBメモリ装置201によるPCの認証処理を含めた全体の処理については図14−図16を用いて説明する。
【0031】
図6は、本実施形態におけるUSBメモリ装置201の全体構成の一例(PC100がネットワークデバイスを認識する前の状態)を示す。
USBメモリ装置201は、USBハブ210、ROM230、メモリ220、コントローラ240、ネットワークデバイス、マイクロコンピュータ(以下、「マイコン」と称する)600を含む。図6は、図1の構成に、ネットワークデバイス500、マイコン600を追加したものである。
【0032】
USBハブ210は、ネットワークデバイス500と、ROM230及びメモリ220とを切り替えて、PC100側に見せるためのハブ装置である。UBSハブ210は、USBメモリ装置201がPC100に接続された場合、ネットワークデバイス500だけがPC100側から見えるように切り替えられている。
【0033】
ネットワークデバイス500は、ネットワークに接続してPC100との通信を制御するためのデバイスであり、例えばMACアドレス等を有する。
USBメモリ装置201が接続されて、ネットワークデバイス500を検知したPC100側のOSは、自身が予め格納しているネットワークデバイス500のドライバを読み出し、インストールする。
【0034】
なお、UBSメモリ装置201にネットワークデバイス500のドライバを格納しておき、PC100のOSが予め保持していない場合には、PC100にネットワークデバイス500のドライバをインストールすることができるようにしてもよい。
【0035】
その後、PC100側のOSは、ネットワークアドレスを割り当てる処理を行う。アドレス割り当ての方法として、DHCP(Dynamic Host Configuration Protocol)やAutoIPなどの方法がある。
【0036】
マイコン600は、USBメモリ装置201と接続されたPC100に対する認証のための設定処理及び認証処理を制御する。マイコン600には、PC100を識別するためにPC100のポート番号を格納することができるポート番号格納領域601を有する不揮発性メモリを含む。
【0037】
マイコン600によるPC100の認証が成功した場合、マイコン600の制御に基づいて、コントローラ240は、USBハブ210に、PC100側に見せるデバイスを、ネットワークデバイス500から、ROM230及びメモリ220へと切り替えさせる。
【0038】
図7は、本実施形態におけるUSBメモリ装置201の全体構成の一例(PC100がネットワークデバイス500を認識している状態)を示す。
デバイスドライバ110、ネットワークスタック120は、PC100のOS(Windows(登録商標))に搭載され、起動している。デバイスドライバ110は、上記でインストールしたネットワークデバイス500のドライバである。デバイスドライバ110により、PC100は、ネットワークデバイス500をネットワーク上に存在するデバイスと認識することができる。
ネットワークスタック120は、デバイスドライバ110を介して、USBメモリ装置201から送られてきたパケットについての通信プロトコル解析を行う。
【0039】
図8は、本実施形態におけるマイコン600の内部構成の一例を示す。マイコン600は、パケット受信部611、パケット解析部612、パケット送信部613、不揮発性メモリ603を有する。
パケット受信部611は、ネットワークデバイス500により転送された、PC100からのパケット(例えば、DHCP−DISCOVERY、PC100のIPアドレス等)を受信する。
【0040】
パケット解析部612は、その受信したパケットを解析する。パケット解析部612は、その解析の結果、DHCP−DISCOVERYであると判定した場合には、DHCP−DISCOVERYに対する返信をしないで、RARPパケットを生成する。また、パケット解析部612は、予め設定されたポート番号の範囲内において、取得したIPアドレスを用いて、TCPパケットを生成し、ポートスキャンを行う。また、パケット解析部612は、PC100から送られてきたPC100のIPアドレス及びポートスキャンにより得られたポート番号を不揮発性メモリ603に格納する。ここで、ポート番号とは、通信ネットワーク上の機器間の通信における、ネットワークアプリケーションプログラムの識別番号をいう。
【0041】
パケット送信部613は、パケット解析部612で生成されたRARPパケット、TCPパケット等を、PC100へ転送するために、ネットワークデバイス500へ転送する。
【0042】
不揮発性メモリ603は、ポート番号格納領域601とIPアドレス格納領域602を有する。ポート番号格納領域601には、例えば、1以上のポート番号(例えば、ポート1、ポート2、ポート3等)を保持することができる。
【0043】
また、IPアドレス格納領域602には、PC100から取得したPC100のIPアドレスが格納される。なお、IPアドレス格納領域602は、不揮発性メモリ603とは別の記憶装置に格納されていてもよく、その場合は揮発性メモリであってもよい。
【0044】
初期状態では、ポート番号格納領域601において、例えば、ポート1〜3にはそれぞれ0がセットされている。また、IPアドレス格納領域602には、IPアドレス「0.0.0.0」がセットされている。
【0045】
USBメモリ装置201及びマイコン600は上記の構成要素を含んでいる。これらの構成要素による具体的な処理の一例については、以下にて順を追って説明する。
まず、後述するように、USBメモリ装置201とPC100との関連付け処理に際し、USBメモリ装置201はPC100に対し、ポートスキャンを実行する。したがって、そのポートスキャンの前提として、USBメモリ装置201はPC100のネットワークアドレスを必要とする。そこで、図9を用いて、USBメモリ装置201によるPC100のネットワークアドレスの取得処理について説明する。
【0046】
図9は、本実施形態におけるPC100とUSBメモリ装置201の関連付けの前提として実行されるPC100によるネットワークアドレスの割り当て処理からUSBメモリ装置201によるPC100のIPアドレス取得までのシーケンスの一例を示す。
【0047】
PC100のネットワークアドレスを取得する場合、その前段階として、PC100によりアドレス割り当て処理が行われる。アドレス割り当ての方法として、上述の通り、DHCP(Dynamic Host Configuration Protocol)やAutoIPなどの方法がある。今回はネットワークアドレスの割り当ての1つの実施例としてAutoIP(Automatic Private IP Addressing)に関して説明する。
【0048】
まず、ネットワークスタック120は、デバイスドライバ110及びネットワークデバイス500を介してDHCP−DISCOVERYをマイコン600へ送信する(S21−S23)。
【0049】
マイコン600は、その送信されたパケットを解析する。その解析の結果、そのパケットがDHCP−DISCOVERYを示すパケットであると判定すると、マイコン600は、そのDHCP−DISCOVERYに対して返信をしない(S24)。
【0050】
その結果、DHCP−DISCOVERYに対する応答時間がタイムアウトになる。タイムアウトになると、ネットワークスタック120は、PC100内において、自動的にPC100及びネットワークデバイス500にIPアドレスを割り当てる処理を開始する(S25)。すなわち、ネットワークスタック120がDHCP−DISCOVERYに対する返答がない(=DHCPサーバが不在)と判断した時に、AutoIP機能が開始される。AutoIP機能では、ネットワークスタック120により、ネットワークデバイス500のIPアドレスが、169.254.0.0〜169.250.255.255の範囲から適当に選択されて決定される。このとき、PC100のOSは、PC100のIPアドレスと、ネットワークデバイス100のIPアドレスとを関連付けた情報を保持している。
【0051】
なお、DHCPの場合でも、AoutoIPの場合と同様に、ネットワークスタック120がネットワークデバイス500の割り当てを行い、PC100のIPアドレスと、ネットワークデバイス100のIPアドレスとを関連付けた情報を作成する。
【0052】
次に、USBメモリ装置201によるPC100のIPアドレス取得シーケンスについて説明する。
USBメモリ装置201側では、マイコン600は、ネットワークスタック120からのDHCP−DISCOVERYを受信すると、RARP(Reverse Address Resolution Protocol)を発行する。RARPは、特定のMACアドレスを持つネットワークデバイスに割り当てられているIPアドレスを取得するプロトコルである。RARPは、ネットワークデバイス500及びデバイスドライバ110を介して、ネットワークスタック120へ転送される(S31−S33)。
【0053】
ネットワークスタック120はそのRARPに対して、S25でPC100に割り当てたIPアドレスを、マイコン600へ送信する(S34)。
RARPの返答として、ネットワークスタック120から送信されたPC100のIPアドレスを受信すると、マイコン600はネットワークスタック120がPC100及びネットワークデバイス500にIPアドレスを割り当てたことを検知できる。マイコン600は、受信したPC100のIPアドレスをポート番号格納領域601に格納する。
【0054】
次に、PC100とUSBメモリ装置201との関連付けを説明する。利用者は、関連付けするPC100のデフォルトのファイヤフォール設定を、予め変更しておく。具体的には、PC100のファイヤフォール設定において、例えばポート番号41000〜42000の範囲のうち、1以上の任意のポート番号で示されるポートについてのSYNパケット受信時の動作を、その範囲内の他のポート番号で示されるポートとは異なる動作となるように設定する。この設定した任意のポート番号の組み合わせがそのPC100を識別するための識別情報となり得る。すなわち、USBメモリ装置201がPC100に対して、ポート番号41000〜42000の範囲をポートスキャンした場合、そのポートスキャンに対する応答があったときにポートスキャンに使用したポート番号の組み合わせを、PC100の識別情報とすることができる。また、USBメモリ装置201がPC100に対して、ポート番号41000〜42000の範囲をポートスキャンした場合、そのポートスキャンに対する応答がなかったときにポートスキャンに使用したポート番号の組み合わせを、PC100の識別情報としてもよい。
【0055】
なお、USBメモリ装置201がポート番号41000〜42000の範囲のポートについてポートスキャンするということは事前に利用者に通知してあるとする。ポートスキャンは、TCP(Transmission Control Protocol)でコネクションを確立するための手順である3WAY−HandShakeに従って行う。
【0056】
図10は、3WAY−HandShakeを説明するための図である。本実施形態では、クライアントCLがUSBメモリ装置201に相当し、サーバSVがPC100に相当する。
【0057】
ここで、3WAY−HandShakeにおいて、例えば、ポート番号41001,41020,41100で示されるポートについて、USBメモリ装置201からのSYNフラグがセットしてあるTCP受信パケットを受信するように設定が行われているとする。また、これら以外のポート番号で示されるポートについて、SYNフラグがセットしてあるTCP受信パケットをドロップするように、PC100のファイヤフォール機能の設定が行われているとする。
【0058】
それでは、3WAY−HandShakeによるTCP接続の説明をする。3WAY−HandShakeによるTCP接続の際、ポート番号41001,41020,41100で示されるポートのそれぞれについて、クライアントCL(=201)からサーバSV(=100)へSYNパケットを送信する(S41)。
【0059】
そのSYNパケットを受け取ったサーバSV(=100)は、そのSYNパケットに対するACKと、サーバSV(=100)からクライアントCL(=201)へのSYNをSYN+ACKの形で送る(S42)。
【0060】
クライアントCL(=201)はそのSYN+ACKに対するACKを返す(S43)。PC100は、ポート番号41001,41020,41100で示されるポートについて、SYN+ACKまでは返答する(S32)。しかし、PC100は、ACKフラグが立っているTCP受信パケットをドロップするように設定されているものとする(S33において、PC100は、USBメモリ装置201から送信されたACKをDROPする)。
【0061】
次に、この3WAY−HandShakeを利用したポートスキャンについて説明する。予め、利用者は、3WAY−HandShakeにおいて、例えば、ポート番号41001,41020,41100で示されるポートについて、USBメモリ装置201からのSYNフラグがセットしてあるTCP受信パケットを受信するように設定を行う。これ以外のポート番号で示されるポートについて、SYNフラグがセットしてあるTCP受信パケットをドロップするように、PC100のファイヤフォール機能の設定を行う。これにより、PC100の特徴を表すことができる。
【0062】
まず、マイコン600は、PC100より取得したPC100のIPアドレスを用いて、PC100のポート番号41000〜42000の範囲に含まれる各ポートについてポートスキャンする。
【0063】
具体的には、取得したPC100のIPアドレスを使って、PC100のポート番号41000〜42000の範囲内の各ポートに対して、図10で説明したように、3WAY−HandShakeにより、TCP接続を試みる。以下に、SYNフラグがセットしてあるTCP受信パケットをDROPするように設定されたポートに対してTCP接続をするシーケンス(図11)、SYNパケットを受信できるポートに対してSYNパケットを送信した場合のシーケンス(図12)について説明する。
【0064】
図11は、本実施形態におけるSYNフラグがセットしてあるTCP受信パケットをDROPするように設定されたPC100のポートに対してTCP接続を試みた場合のシーケンスの一例を示す。
【0065】
マイコン600は、ネットワークスタック120から取得したPC100のIPアドレスを用いて、ネットワークドライバ500及びデバイスドライバ110を介して、PC100のポート番号41000で示されるポートに対してTCP−SYNパケットを送信する(S51−S53)。
【0066】
上述したように、PC100のファイアウォール機能の設定により、ポート番号41001、41020、41100以外のポート番号で示されるポートについて、SYNフラグがセットしてあるTCP受信パケットをドロップするように設定されている。よって、ネットワークスタック120は、その受信したポート番号41000で示されるポートに対するTCP−SYNパケットをDROP(破棄)する(S54)。
【0067】
図12は、本実施形態におけるSYNパケットを受信できるポートに対してSYNパケットを送信した場合のシーケンスの一例を示す。マイコン600は、ネットワークスタック120から取得したPC100のIPアドレスを用いて、ネットワークドライバ500及びデバイスドライバ110を介して、PC100のポート番号41001で示されるポートに対してTCP−SYNパケットを送信する(S61−S63)。
【0068】
当該SYN受信パケットは、SYNパケットを受信できるポート番号41001で示されるポートに対するSYN受信パケットである。従って、ネットワークスタック120は、デバイスドライバ110及びネットワークドライバ500を介して、マイコン600へSYN+ACKパケットを返信する(S64−S66)。
【0069】
マイコン600は、そのポートスキャンに対する応答パケット(SYN+ACKパケット)を受信する。そして、図13で説明するように、マイコン600は、その応答パケットを受信した場合にそのポートスキャンに用いたポート番号を格納する。
【0070】
図13は、予め決められたポート番号の範囲に対するポートスキャン実施後のポート番号格納領域601に格納されたポート番号の一例を示す。SYN+ACKパケットを受け取った時にそのポートスキャンで使用したポート番号は、図13に示すように、ポート番号格納領域601に格納される。この時点でPC100とUSBメモリ装置201の関連付けが完了する。すなわち、USBメモリ装置201の初期設定が完了する。
【0071】
ポートスキャン後のポート番号格納領域601に格納されたポート番号の組み合わせがPC100を識別する識別情報となり得る。上述したように、PC100を識別するために、PC100に応じて、1以上の任意のポート番号で示されるポートに対して、応答パケットを送信するように設定している。したがって、その応答パケットを受信した場合にそのポートスキャンで使用したポート番号の組み合わせがPC100を識別するための識別情報となり得る。図13の例では、ポート番号41001,41020,41100の組み合わせが、USBメモリ装置201と関連付けられたPC100の識別番号ということになる。
【0072】
次に、特定のPCと関連付けがされたUSBメモリ装置201が、当該USBメモリ装置201と接続されたPC100に対して認証を行うことを説明する。
USBメモリ装置201を任意のコンピュータに接続してUSBメモリ装置201を利用する場合、図9で説明したようにPC100のIPアドレスを取得し、図11及び図12で説明したようにポート番号41000〜42000の範囲で示されるポートについてポートスキャンする。このとき、マイコン600は、SYN+ACKパケットを受信した時にそのポートスキャンで使用したポート番号を保持しておく。
【0073】
ポートスキャンの終了後、その保持されたポート番号の組み合わせが、ポート番号格納領域601に格納されたポート番号の組み合わせと一致するか否かを判定する。その保持されたポート番号の組み合わせが、ポート番号格納領域601に格納されたポート番号の組み合わせと一致した場合、マイコン600は、そのPC100は予め関連付けられているPC100であると判断する。この場合、マイコン600は、コントローラ240に切替指示を行う。この切替指示に基づいて、コントローラ240は、USBハブ210に、PC100側に見せるデバイスを、ネットワークデバイス500から、ROM230及びメモリ220へと切り替えさせる。これにより、PC100に対してUSBメモリ装置201の機能を有効にすることができる。
【0074】
一方、ポートスキャンの終了後、その保持されたポート番号の組み合わせが、ポート番号格納領域601に格納されたポート番号の組み合わせと一致しない場合、マイコン600は、そのPC100は予め関連付けられているPC100ではないと判断する。この場合、マイコン600はコントローラ240に切替指示を行わない。したがって、PC100に対してUSBメモリ装置201の機能が有効になることはない。
【0075】
上記では、PC100とUBSメモリ装置200aとの間のシーケンスに着目して本実施形態を説明した。以下では、マイコン600に着目して、図9−図12で説明した内容を図14−図16を用いて説明する。
【0076】
図14は、本実施形態におけるマイコン600による全体の制御フローの一例を示す。まず、ユーザによってUSBメモリ装置201がPC100に接続される。すると、PC100によるUSBメモリ装置201のネットワークデバイス500の認識後、PC100からDHCP−DISCOVERYパケットが送信される。マイコン600は、その送信されたパケットを受信する(S101)。マイコン600は、その送信されたパケットを解析し、その解析の結果、そのパケットがDHCP−DISCOVERYを示す場合には、そのDHCP−DISCOVERYに対する返信をしない。
【0077】
それから、マイコン600は、RARPをPC100へ送信する(S102)。マイコン600は、このRARPへの応答として、PC100から送信されたPC100のIPアドレスを受信する。マイコン600は、その受信したPC100のIPアドレスをIPアドレス格納領域602に設定する(S103)。
【0078】
このとき、ポート番号格納領域601に格納されているポート番号が全て0の場合(S104で「Yes」)、マイコン600は関連付け設定処理(図15)を行う(S105)。一方、ポート番号格納領域601に格納されているポート番号のいずれかが0でない場合(S104で「Yes」)、マイコン600はUSBメモリ装置201を利用する際に接続されるコンピュータに対する認証処理(図16)を行う(S106)。
【0079】
図15は、本実施形態における関連付け設定処理フローの一例を示す。図15は、USBメモリ装置201の初期設定時に行われるポート番号設定処理を示す。図15は、図11、図12のマイコン600の処理に対応する。
【0080】
マイコン600は、ポートスキャンの対象となるPC100のポート番号i(i=41000〜42000)で示されるポートに対して、TPC−SYNパケットを送信する(S111)。
【0081】
マイコン600は、PC100から返信されたパケットがSYN+ACKか否か判定する(S112)。PC100から返信されたパケットがSYN+ACKでない場合(S112で「No」)、マイコン600は、ポート番号iをインクリメントして(S115)、S111の処理へ戻る。
【0082】
PC100から返信されたパケットがSYN+ACKである場合(S112で「Yes」)、マイコン600は、TPC−SYNパケット送信(S111)で使用したポート番号iをポート番号格納領域601に保存する(S113)。
【0083】
それから、マイコン600は、ポート番号格納領域601に予め格納すべきポート番号が全て0でなくなったか、またはスキャンすべきポートが終了したかを判定する。ポート番号格納領域に予め格納すべきポート番号のいずれかが0か(S114で「No」)、またはスキャンすべき全てのポートのスキャンが終了していない場合(S114で「No」)、マイコン600は、ポート番号iをインクリメントして(S115)、S111の処理へ戻る。
【0084】
マイコン600は、ポート番号格納領域601に予め格納すべきポート番号が全て0でなくなったか(S114で「Yes」)、またはスキャンすべき全てのポートのスキャンが終了した場合(S114で「Yes」)、図15のフローは終了する。
【0085】
これにより、この時点でPC100とUSBメモリ装置201の関連付け、すなわち、USBメモリ装置201の初期設定が完了する。その結果、ポート番号格納領域601に格納されたポート番号の組み合わせをPC100の識別情報とすることができる。
【0086】
図16は、本実施形態におけるUSBメモリ装置による接続されたコンピュータに対する認証処理フローの一例を示す。
マイコン600は、ポートスキャンの対象となるPC100のポート番号i(例えば、i=41000〜42000)で示されるポートに対して、TPC−SYNパケットを送信する(S121)。
【0087】
マイコン600は、PC100から返信されたパケットがSYN+ACKか否か判定する(S122)。PC100から返信されたパケットがSYN+ACKでない場合(S122で「No」)、マイコン600は、ポート番号iをインクリメントして(S125)、S111の処理へ戻る。
【0088】
PC100から返信されたパケットがSYN+ACKである場合(S122で「Yes」)、マイコン600は、その受信したSYN+ACKパケットに対応するTPC−SYNパケット送信(S121)で使用したポート番号が、ポート番号格納領域601に格納されたポート番号のいずれかと一致するか否かを判定する(S123)。
【0089】
その受信したSYN+ACKパケットに対応するTPC−SYNパケット送信(S121)に使用したポート番号がポート番号格納領域601に格納されたポート番号のいずれとも一致しない場合(S123で「No」)、マイコン600は、そのPC100は予め関連付けされているPC100ではないと判断し、図16のフローを終了する(認証失敗)。
【0090】
その受信したSYN+ACKパケットに対応するTPC−SYNパケット送信に使用したポート番号がポート番号格納領域601に格納されたポート番号のいずれかと一致した場合(S123で「Yes」、S124で「No」)、マイコン600は、ポート番号iをインクリメントして(S125)、S111の処理へ戻る。ポートスキャンの対象となるポートへのスキャンがすべて終了するまで、S121−S125を繰り返す。
【0091】
その受信したSYN+ACKパケットに対応するTPC−SYNパケット送信に使用したポート番号の組み合わせがポート番号格納領域601に格納されたポート番号の組み合わせと一致した場合、マイコン600は、そのPC100は予め関連付けされているPC100であると判断する(認証成功)。
【0092】
認証成功の場合、マイコン600は、コントローラ240に切替指示を行う。この切替指示に基づいて、コントローラ240は、USBハブ210に、PC100側に見せるデバイスを、ネットワークデバイス500から、ROM230及びメモリ220へと切り替えさせる。これにより、USBメモリ装置201の機能が有効になる。
【0093】
本実施形態では、USB規格のメモリ装置を用いたが、これに限定されず、IEEE1394、PCI、PCI Express等の他の規格を用いてもよい。また、機器もメモリ装置に限定されず、例えば、デジタルカメラ、プリンタ、ハードディスクドライブ、マウス等のコンピュータと接続する機器であればよい。また、本実施形態では、アドレス割り当ての方法として、AutoIPを用いたが、これに限定されず、DHCPまたはその他のアドレス割り当ての方法を用いてもよい。また、本実施形態で用いた数値は一例であって、その数値に限定されない。
【0094】
本実施形態によれば、USBメモリ装置を一旦汎用的なネットワークデバイスと見せかけておく。そして、PC側で通信可能な状態になったときに、USBメモリ装置側からPCに対してダミーの通信を開始する。USBメモリ装置は、そのダミーの通信によって、そのPCの特徴を検知し、特定のPCかどうかを判定することができる。これにより、USBメモリ装置がPCと接続された場合、そのPCが当該USBメモリ装置と予め関連付けされているか否かの認証処理をUSBメモリ装置内で完結させることができる。そして、USBメモリ装置は、認証結果に基づいて、特定のコンピュータのみに自身の機能を有効にすることができる。
【0095】
したがって、PC側はUSBメモリ装置をネットワークデバイスとして認識して通信可能な状態になり得ればよく、PC側で認証プロセスが発生し認証処理が実行されることもない。よって、コンピュータの認証に際し、コンピュータに依存することなく認証を行うことができる。すなわち、当該USBメモリ装置より認証処理の独立性を向上させることができる。その結果、USBメモリ装置への不正なアクセスを回避してセキュリティを向上させることができる。
【0096】
上述の通り、本実施形態に係る情報装置は、通信部と、格納部と、認証部を含む。
通信部は、コンピュータと接続された場合、該コンピュータにおいて起動しているデバイスドライバに基づいて該コンピュータにネットワークデバイスとして認識されることが可能であって該コンピュータとの通信を可能にする。通信部は、例えば本実施形態で言えば、ネットワークデバイス500に相当する。
【0097】
格納部は、コンピュータを識別するためのポート番号である識別ポート番号を格納する。より具体的には、前記通信部を介して接続された第2のコンピュータに対して送信した第2の試験要求情報(TPC−SYNパケット)に対する該第2のコンピュータからの第2の試験応答情報(SYN+ACKパケット)を受信した場合に該第2の試験要求情報の送信に使用した第2のポート番号を格納する。ここで、該第2のコンピュータは、1以上のポートについて試験要求情報を受信した場合に他のポート番号で示されるポートとは異なる動作をするように設定されている。格納部は、例えば本実施形態で言えば、ポート番号格納領域601に相当する。
【0098】
認証部は、前記通信部を介して接続された第1のコンピュータに対して第1の試験要求情報を送信し、該第1の試験要求情報に対する該第1のコンピュータからの第1の試験応答情報を受信した場合に該第1の試験要求情報の送信に使用した第1のポート番号を保持し、該保持した第1のポート番号の組み合わせと前記識別ポート情報の組み合わせとを照合し、該照合結果に基づいて前記第1のコンピュータの認証を行う。すなわち、前記認証部は、前記接続された第1のコンピュータに対して所定のポート番号の範囲でポートスキャンを行い、該ポートスキャンに対する該第1のコンピュータからの前記第1の試験応答情報を受信した場合に該ポートスキャンに使用した前記第1のポート番号を保持し、該第1のポート番号の組み合わせと前記識別ポート情報の組み合わせとを照合して、前記第1のコンピュータの認証を行うことができる。認証部は、例えば本実施形態で言えば、マイコン600またはパケット解析部612に相当する。
【0099】
このように構成することにより、PCに情報装置の通信部を認識させた後、情報装置によって、送信した試験要求情報に対する試験応答情報があった場合にその試験要求情報を送信した際に使用したポート情報の組み合わせと、PCの識別情報として予め保持しているポート情報との組み合わせとを照合して、そのPCに対する認証を行うことができる。これにより、コンピュータは情報装置をネットワークデバイスとして認識して通信可能な状態になり得ればよく、コンピュータ側で認証プロセスを発生させることがない。よって、情報装置内において認証処理を完結させることができる。したがって、情報装置への不正なアクセスを回避して、より情報装置に対するセキュリティを向上させることができる。
【0100】
前記情報装置は、さらに、切替部と、切替制御部とを含む。
切替部は、前記第1のコンピュータに対して前記情報装置の機能を有効にするか否かを切り替える。切替部は、例えば本実施形態で言えば、USBハブ210に相当する。
【0101】
切替制御部は、前記認証部による照合結果に基づいて、前記切替部の切り替えを制御する。切替制御部は、例えば本実施形態で言えば、コントローラ240に相当する。
このように構成することにより、認証されたコンピュータに対してのみ、情報装置へのアクセスを許可することができる。なお、情報装置は、一例として可搬型記憶媒体であってもよい。
【0102】
なお、本発明の実施形態は、以上に述べた実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内で種々の構成または実施形態を取ることができる。
【符号の説明】
【0103】
100 PC
101 プロセス
120 ネットワークスタック
200,201 USBメモリ装置
210 USBハブ
220 メモリ
221 コンテンツ
230 ROM
231 アプリケーションプログラム
240 コントローラ
241 関連付け保存領域
500 ネットワークデバイス
600 マイコン
601 ポート番号格納領域
602 IPアドレス格納領域
603 不揮発性メモリ
611 パケット受信部
612 パケット解析部
613 パケット送信部

【特許請求の範囲】
【請求項1】
コンピュータと接続された場合、該コンピュータにおいて起動しているデバイスドライバに基づいて該コンピュータにネットワークデバイスとして認識されることが可能であって該コンピュータとの通信を可能にする通信部と、
コンピュータを識別するためのポート番号である識別ポート番号を格納する格納部と、
前記通信部を介して接続された第1のコンピュータに対して第1の試験要求情報を送信し、該第1の試験要求情報に対する該第1のコンピュータからの第1の試験応答情報を受信した場合に該第1の試験要求情報の送信に使用した第1のポート番号を保持し、該保持した第1のポート番号の組み合わせと前記識別ポート情報の組み合わせとを照合し、該照合結果に基づいて前記第1のコンピュータの認証を行う認証部と、
を備えることを特徴とする情報装置。
【請求項2】
前記格納部は、前記通信部を介して接続された第2のコンピュータであって、1以上のポートについて試験要求情報を受信した場合に他のポート番号で示されるポートとは異なる動作をするように設定された該第2のコンピュータに対して送信した第2の試験要求情報に対する該第2のコンピュータからの第2の試験応答情報を受信した場合に該第2の試験要求情報の送信に使用したポートの番号を前記識別ポート番号として格納する
ことを特徴とする請求項1に記載の情報装置。
【請求項3】
前記認証部は、前記接続された第1のコンピュータに対して所定のポート番号の範囲でポートスキャンを行い、該ポートスキャンに対する該第1のコンピュータからの前記第1の試験応答情報を受信した場合に該ポートスキャンに使用した前記第1のポート番号を保持し、該第1のポート番号の組み合わせと前記識別ポート情報の組み合わせとを照合して、前記第1のコンピュータの認証を行う
ことを特徴とする請求項1または2に記載の情報装置。
【請求項4】
前記情報装置は、さらに、
前記第1のコンピュータに対して前記情報装置の機能を有効にするか否かを切り替える切替部と、
前記認証部による照合結果に基づいて、前記切替部の切り替えを制御する切替制御部と、
を備えることを特徴とする請求項1〜3のうちいずれか1項に記載の情報装置。
【請求項5】
前記情報装置は、可搬型記憶媒体である
ことを特徴とする請求項1〜4のうちいずれか1項に記載の情報装置。
【請求項6】
コンピュータに接続可能な情報装置の制御部により実行される認証プログラムであって、
コンピュータと接続された場合、該コンピュータにおいて起動しているデバイスドライバに基づいて該コンピュータにネットワークデバイスとして認識されることが可能であって該コンピュータとの通信を可能にする前記情報装置に設けられた通信部を介して接続された第1のコンピュータに対して第1の試験要求情報を送信する送信処理と、
前記第1の試験要求情報に対する前記第1のコンピュータからの第1の試験応答情報を受信した場合に該第1の試験要求情報の送信に使用した第1のポート番号を保持する保持処理と、
前記保持した第1のポート番号の組み合わせと、コンピュータを識別するためのポート番号である識別ポート情報の組み合わせとを照合し、該照合結果に基づいて前記第1のコンピュータの認証を行う認証処理と、
を前記制御部に実行させることを特徴とする認証プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate