説明

通信システム及びそれに使用する周辺装置

【課題】記憶制御装置を搭載しない物理構造を有しつつ、非常に強固なセキュリティ性を実現できるデータフォーマット構造を有したカード型記憶メディアを提供する。
【解決手段】ノーマルモードでは、カード型記憶メディア11のセキュリティエリア400の全体が暗号化された1つのマクロセキュリティファイルにしか見えず、内容解読が困難である。また、復号化するべきマクロセキュリティファイルの書込位置がヘッダエリア401に書き込まれており、認証用チェックセクタがその先頭に固定して記述されているので、マクロセキュリティファイル自体がどのような内部データ構造になっているかが暗号化により識別できないにも拘わらず、認証用チェックセクタはホスト装置側で決められたシーケンスによりメディアから問題なく読み出すことができ。その認証結果を受けてマクロセキュリティファイルの予め定められた必要部分を一括して復号化することができる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、着脱式記憶メディアを使用する通信システム及びそれに使用する周辺装置に関する。
【背景技術】
【0002】
【特許文献1】特開2002−92745号公報
【特許文献2】特開2006−18345号公報
【0003】
近年、フラッシュメモリなどの不揮発性メモリがカード型にパッケージングされたいわゆるメモリーカード(カード型記憶メディア:記録メディアの一例)が広く知られている。このメモリーカードは、デジタルカメラや携帯音楽プレーヤーなどのデジタル機器に用いられるデータの記憶メディアとして急速に普及している。メモリーカードの仕様は統一されておらず、例えば、コンパクトフラッシュ(登録商標、以下「CF」と略称する)、スマートメディア(登録商標、以下「SM」と略称する)、メモリースティック(登録商標、以下「MS」と略称する)、SDメモリーカード(登録商標、以下「SD」と略称する)など、種々のものが市場に出回っている。これらメモリーカードは、PCなどに接続されてメモリーカードの読み書きを行なうメモリーカードリーダライタ(周辺装置の一例、以下「リーダライタ」と略称する)を用いることで、PCから上記メモリーカードへのアクセスが可能となる。これにより、PCとメモリーカードとの間でデータ通信が行なえるようになる。逆にいえば、これらのメモリーカードは、リーダライタに装着されることによって初めてデータ通信が可能となるものであって、能動的な通信機能部(例えばプロトコル解析部やデータ送受信部)や記憶制御装置は自身には搭載されず、リーダライタ側に依存する。
【0004】
上記のメモリーカードには、PCに内蔵されたカードリーダドライブを介してソフトウェア処理により暗号化したパスワードを書き込むようにし、PC側でそのパスワードを読み出して、ユーザーが入力したパスワードと照合して認証を行なうようにしたものが知られている(特許文献1)。他方、記憶制御装置を搭載し、補助記憶装置としての機能を兼ね備えた着脱式記憶メディアとして、いわゆるUSBメモリが知られている。このUSBメモリの中には、その記憶制御装置内にセキュリティ用ハードウェアロジック(例えば、データの暗号化ないし復号化のロジック)を搭載し、ファイルアロケーションテーブル(FAT)の記憶内容を保護できるようにしたものが知られている(特許文献2)。
【発明の開示】
【発明が解決しようとする課題】
【0005】
しかし、特許文献1及び特許文献2のいずれにおいても、メモリに書き込まれる肝心のデータファイルには暗号化が一切施されず、セキュリティ性や不正アクセスによるデータ破壊などへの対策が必ずしも強固とはいえない問題がある。また、特許文献2の構成の場合、暗号化ロジックを備えた専用のメディア(例えば、上記のごとくセキュリティ用のロジックを搭載した特殊なUSBメモリ)を用いなければセキュリティ機能を享受できず、一般的な構造のメモリーカードには適用不能な技術である。さらに、格納するファイル別に暗号化履歴とFAT上の各ファイルの格納セクタ情報とを対応付けていちいちPC側に記録する必要があり、記録の残っているPCでしか復号化ができない大きな欠点がある。また、暗号化されたファイルがあるかどうかを履歴上で検索し、対応する暗号化FAT領域を選択的に復号化する処理を行なわなければならず、処理プログラムの複雑化を招く。なお、ユーザーがPC上で専用ソフトウェアにより記憶するべきデータファイルをファイル毎に暗号化してから、通常のファイルと同様にメモリーカードに書き込む方法もあるが、この方法はいうまでもなく、保存するファイル数が多い場合には大変な手間がかかり、大容量化が進むメモリーカードにおいては現実的な方法といえない。
【0006】
本発明の課題は、特に暗号化等のセキュリティ用ハードウェアロジックを搭載しない物理構造を有しつつも、非常に強固なセキュリティ性を実現できるデータフォーマット構造を有した着脱式記憶メディアを用いる通信システムと、それに使用する周辺装置とを提供することにある。
【課題を解決するための手段及び発明の効果】
【0007】
上記課題を解決するために、本発明の通信システムは、
ホスト装置と、該ホスト装置に接続される該ホスト装置の通信対象となる周辺装置であって、着脱式記憶メディアがスロットに着脱可能に装着され、周辺装置との間の通信イベントに基づいて該着脱式記憶メディアに対してデータアクセスを行なう記憶装置として構成された周辺装置とを備え、
着脱式記憶メディアは、
データの読出し及び書き込みに係るデータアクセスが可能とされた不揮発性メモリからなり、ファイル単位による記憶データの読出し、書込み及び消去が可能とされた実データ記憶エリアと、該実データ記憶エリア内における各データファイルの占有エリアと、データファイルに占有されない空きエリアとを少なくとも、それらエリアのデータ記憶エリア内での位置を特定可能に記述されたファイル管理情報を記憶する実ファイル管理情報記憶エリアとが、予め定められたメディアフォーマットに従い形成された実メディアエリアを有するとともに、実データ記憶エリアに、記憶内容が全て暗号化された状態で書きまれるセキュリティエリアと、暗号化がなされないノーマルエリアとを分割形成したものであり、
ノーマルエリアに非暗号化状態で格納されるデータファイルをノーマルファイル、セキュリティエリアに暗号化状態で格納されるデータファイルをセキュリティファイルとして、
実ファイル管理情報記憶エリアには、ノーマルエリアにおけるノーマルファイルの占有エリアの位置と、該ノーマルファイルに占有されない空きエリアの位置とを特定するとともに、実メディアエリアの先頭を基準とする第一のエリア座標系に従って記述されたノーマルファイル管理情報が記憶されるようになっており、
セキュリティファイルを格納するとともに、ファイル単位による記憶データの読出し、書込み及び消去が可能とされた仮想データ記憶エリアと、該仮想データ記憶エリア内における各セキュリティファイルの占有エリア位置と、該セキュリティファイルに占有されない空きエリア位置とを少なくとも特定可能に記述されたファイル管理情報を記憶する仮想ファイル管理情報記憶エリアとが、実データ記憶エリアと実ファイル管理情報記憶エリアとの形成形態を規定するメディアフォーマットと同一のフォーマットに従い形成された仮想メディアエリアがセキュリティエリアに形成され、
仮想ファイル管理情報記憶エリアは、仮想メディアエリアを独立した別の着脱式記憶メディアとみなして、仮想データ記憶エリア内にてセキュリティファイルの占有エリア及び空きエリアを位置特定するためのファイル管理情報が、仮想メディアエリアの先頭を基準とする第二のエリア座標系に従って記述されるようになっており、
セキュリティエリアの先頭には、仮想メディアエリアとは別に、第一のエリア座標系に従って記述されたファイル管理情報を第二のエリア座標系でのファイル管理情報に変換するためのエリア座標変換情報と、ヘッダエリア内の固定領域に書き込まれセキュリティエリアへのアクセスを認証するための認証照合情報とを格納するためのヘッダエリアが形成され、
セキュリティファイルを含むセキュリティエリア内の情報を一括して暗号化することにより、実データ記憶エリア上にて仮想単一ファイルとして扱われるマクロセキュリティファイルが形成されるようになっており、該マクロセキュリティファイルの実データ記憶エリア上での記憶位置を特定するマクロセキュリティファイル記憶位置情報が実データ記憶エリア外に書き込まれるものであり、さらに、
周辺装置に装着された着脱式記憶メディアへのアクセスモードを、ノーマルエリアにのみアクセスが可能なノーマルモードと、セキュリティエリアにアクセスが可能なセキュリティモードとのいずれかに設定するアクセスモード設定手段と、
着脱式記憶メディアからマクロセキュリティファイル記憶位置情報を読み出すことにより、該着脱式記憶メディア内のマクロセキュリティファイルの位置を特定し、ヘッダエリアの先頭に位置する認証照合情報情報を読み出し、該認証照合情報に基づいて、着脱式記憶メディアへのホスト装置側からのアクセス権を認証する認証手段と、
認証手段による認証結果が受理認証であった場合にのみ、アクセスモード設定手段に対しアクセスモードをセキュリティモードに設定させるアクセスモード設定制御手段と、
セキュリティモードに移行した場合に、当該セキュリティモードの適用対象となる装着中の着脱式記憶メディアを別の着脱式記憶メディアとして仮想認識させるためのメディア仮想交換情報を周辺装置からホスト装置に送信するメディア仮想交換情報送信手段と、
メディア仮想交換情報の送信後の、ホスト装置側からのセキュリティエリアへのデータアクセス時において、アクセス対象となるセキュリティファイルの第二のエリア座標系にて記述された仮想ファイル管理情報を取得し、エリア座標変換情報を用いて第一のエリア座標系にて記述されたファイル管理情報に変換するファイル管理情報変換手段と、
当該変換後のファイル管理情報を用いてセキュリティエリアへのデータアクセスを、ファイル書込時には当該ファイルを暗号化しつつ書き込み、ファイル読出し時には当該ファイルを復号化しつつ読み出すセキュリティエリアアクセス手段と、を有することを特徴とする。
【0008】
また、本発明の周辺装置は、上記本発明の通信システムを構成する周辺装置であって、上記の着脱式記憶メディアがスロットに着脱可能に装着され、通信イベントにより該着脱式記憶メディアに対してデータアクセスを行なう記憶装置として構成されるとともに、
着脱式記憶メディアに書き込まれた認証照合情報に基づいて、着脱式記憶メディアへのホスト装置側からのアクセス権を認証する認証手段と、
セキュリティエリアに書込対象となるデータファイルを暗号化した状態で書き込む暗号化手段と、
さらに、セキュリティエリア内の暗号化された読出し対象となるデータファイルを復号化して読み出す復号化手段と、が設けられていることを特徴とする。
【0009】
上記本発明によると、着脱式記憶メディアの記憶エリアが、周知のファイルシステムによるデータファイルへのアクセスが可能となるように、データ記憶エリアと、該データ記憶エリア内における各データファイルの占有エリアと、データファイルに占有されない空きエリアと、それらエリアのデータ記憶エリア内での位置を特定可能に記述されたファイル管理情報を記憶するファイル管理情報記憶エリアとに区画される。そして、そのデータ記憶エリアの内部に、セキュリティファイル専用の仮想メディアエリアが形成される。本発明においては、現実の着脱式記憶メディアの上記データ記憶エリアとファイル管理情報記憶エリアとを含む全記憶領域を、この仮想メディアエリアと区別するために「実メディアエリア」と称し、上記のデータ記憶エリアとファイル管理情報記憶エリアとをそれぞれ、「実データ記憶エリア」及び「実ファイル管理情報記憶エリア」と称する。この仮想メディアエリアが、実データ記憶エリア内に別途形成されたヘッダエリアとともにセキュリティエリアを形成するとともに、該セキュリティエリア内の全情報が一括して暗号化され、実メディアエリアから見たときに単一のマクロセキュリティファイルが形成されるようになっている。実データ記憶エリア内のセキュリティエリア外の領域には、暗号化されたノーマルファイルの格納エリア(ノーマルエリア)として使用される。マクロセキュリティファイルの実データ記憶エリア上の格納位置は、マクロセキュリティファイル記憶位置情報として実データ記憶エリア外に書き込まれる。
【0010】
ヘッダエリアには、セキュリティエリアへのアクセスを認証するための認証照合情報が(暗号化された形で)その先頭に格納される。ホスト装置側からセキュリティエリアへアクセスしようとした場合に、セキュリティエリアの先頭にある固定領域の情報を認証照合情報として読み込んで認証処理を行ない、認証受理であれば、セキュリティエリアにおけるセキュリティファイルの読出しないし書き込みのためのアクセスが許可される。このとき、本発明において重要な点は、セキュリティエリアへのアクセスが認証受理により許可されるに伴い周辺装置からホスト装置(PC)にメディア仮想交換情報を、実際に装着されているメディアが、仮想メディアエリアに実体が一致する新しいメディアに、(実際には交換はなされていないが)仮想的に交換されたものとしてホスト装置に認識させることにある。つまり、仮想ファイル管理情報はセキュリティファイルの格納位置を示す情報でありながら、実ファイル管理情報記憶エリアではなく、実データ記憶エリア内に書き込まれているファイルの一部をなす情報として記録されているので、同じメディアとして認識され続ける以上、セキュリティファイルの在り処を示すファイル管理情報として読み出すことができない。従って、実メディアエリア上では正規のファイル管理情報として認識されない仮想ファイル管理情報を、セキュリティファイル用のファイル管理情報として認識させるために、上記の仮想メディアエリアを新しいメディアとして認識させることが、本発明では不可欠である。
【0011】
ノーマルファイルについては、実ファイル管理情報記憶エリアに、ノーマルエリアにおける各ノーマルファイルの占有エリアの位置と空きエリアの位置とを特定するノーマルファイル管理情報が、実メディアエリアの先頭を基準とする第一のエリア座標系に従って記述され、ホスト装置側からはこのノーマルファイル管理情報を直接用いてノーマルエリアへのアクセスが可能である。一方、仮想メディアエリアについては、上記のごとくホスト装置においては交換された新しいメディアとして認識されるが、実際はメディア交換はなされておらず、実体は同じメディアの実データ記憶エリアの一部を新しいメディアに見せかけているに過ぎない。そして、ここに書き込まれるセキュリティファイルを管理する仮想ファイル管理情報は、新メディアに交換されたと認識する周辺装置からは、該新メディアに相当する仮想メディアエリアの先頭を基準とした第二のエリア座標系に従って記述されていなければならないが、メディアへのアクセス動作を直接行なう周辺装置側から見れば、実際には交換されていないメディアの実メディアエリアへのアクセスに何ら変わりはなく、ノーマルファイルと同様に、第一のエリア座標系に従って記述されたファイル管理情報を用いなければならない。
【0012】
そこで、セキュリティエリアの前述のヘッダエリアに、第一のエリア座標系に従って記述されたファイル管理情報を第二のエリア座標系でのファイル管理情報に変換するためのエリア座標変換情報を格納しておき、セキュリティエリアへのアクセスイベントが発生する場合は、仮想メディアエリア(つまり、新メディア)から第二のエリア座標系で記述されたファイル管理情報を用いてアクセス位置を認識し、上記エリア座標変換情報によりその仮想ファイル管理情報を実際のメディアのアクセス位置を示す第一のエリア座標系で記述されたファイル管理情報に逐次変換して周辺装置に与えるようにする(この変換の演算は、OS上で動作するアプリケーションによりホスト装置側で行なうようにすることも、周辺装置側で行なうようにすることも、いずれも可能である)。
【0013】
以上の結果、本発明では、以下のような効果が達成される。
(1)ノーマルモードでは、セキュリティエリアの全体が(複数のセキュリティファイルが格納されていても)暗号化された1つのマクロセキュリティファイルにしか見えず、内容解読が非常に困難であり、セキュリティ性を実現できる。また、マクロセキュリティファイル内への誤アクセス等によるデータ破壊も生じにくい。
(2)復号化するべきセキュリティエリアの開始位置(マクロセキュリティファイルの書込位置)が、マクロセキュリティファイル記憶位置情報としてメディア内の決められた領域に書き込まれており、認証用の認証照合情報がその先頭に固定して記述されているので、マクロセキュリティファイル自体がどのような内部データ構造になっているかが暗号化により識別できないにも拘わらず、認証照合情報自体はホスト装置側で決められたシーケンスによりメディアから問題なく読み出すことができる。つまり、そのメディアに固有の認証ロジックを搭載する必要がなくなり、結果として、セキュリティ用ハードウェアロジックを搭載しない着脱式メディアであるにも拘わらず、高度なセキュリティ性が実現する。また、その認証結果を受けてマクロセキュリティファイルの予め定められた必要部分(例えば、後述の(仮想)ファイルアロケーションテーブル)を一括して復号化すればよいので、特許文献1のような暗号化履歴の記録や、その暗号化履歴の検索を行なわずとも、復号化を簡単に行なうことができる。
【0014】
なお、本発明の適用対象となる着脱式記憶メディアはセキュリティ用ハードウェアロジックを搭載しない着脱式記憶メディアであればよく、例えば、(記憶制御装置を有さない)カード型記憶メディアとすることができる。また、セキュリティ用ハードウェアロジックは搭載しないが記憶制御装置は一体的に組み込まれた着脱式記憶メディアであってもよい。
【0015】
上記着脱式記憶メディアは以下のように構成することができる。すなわち、実メディアエリアが一定サイズの複数のセクタに区分され、データファイルの読出し、書込み及び消去が該セクタ単位でなされるとともに、ファイルの占有エリアと空きエリアとの位置を特定するためのエリア座標系が一連のセクタを個々に特定するために連続番号で各セクタに付与されたセクタ番号を用いて規定されたものとする。セキュリティエリアは、実データ記憶エリア内にてセクタの連続した連続エリアとして形成され、実ファイル管理情報記憶エリアにおいてノーマルファイル管理情報は、ノーマルファイルの占有セクタ番号と、該ノーマルファイルに占有されない空きセクタ番号とを、実メディアエリアの先頭セクタ番号を基準として定めた第一のエリア座標系として第一のセクタ番号列を用いて記述したものとする。仮想ファイル管理情報記憶エリアにおいてファイル管理情報は、セキュリティファイルの占有セクタ番号と、該セキュリティファイルに占有されない空きセクタ番号とを、仮想メディアエリアの先頭セクタ番号を基準として定めた第二のエリア座標系として第二のセクタ番号列を用いて記述したものとする。エリア座標変換情報は、実データ記憶エリアの先頭セクタ位置から仮想データ記憶エリアの先頭セクタ位置に至るオフセットセクタ数を特定可能なオフセット情報を含むものとする。
【0016】
この場合の通信システムは、
メディア仮想交換情報の送信後に、セキュリティエリアのヘッダを除いた部分のセキュリティセクタ数を、仮想的な別の着脱式記憶メディアのセクタ数としてホスト装置に通知するセクタ数通知手段と、
ホスト装置側からのセキュリティエリアへのデータアクセス時において、ホスト装置側から受け取る第二のセクタ番号列を用いて記述されたアクセス対象ファイルのセクタ番号を、オフセット情報を用いて第一のセクタ番号列を用いて記述されたアクセス対象ファイルのセクタ番号に変換するファイル管理情報変換手段としてのセクタ番号変換手段とを備え、セキュリティエリアアクセス手段は、当該変換後のセクタ番号にてセキュリティエリアへのデータアクセスを行なうものとして構成する。
この構成により、オフセットセクタ数を減算することで、第一のセクタ番号を第二のセクタ番号に簡単に変換でき、仮想メディアエリアを新しいメディアとして認識するためのセクタ変換処理のアルゴリズムを大幅に簡略化できる。
【0017】
また、このようなセクタ構造を採用する場合、前述の(2)の作用効果を達成するためには、実ファイル管理情報記憶エリアは実データ記憶エリアの先頭側に隣接するセクタエリアに設けられており、仮想メディアエリア内において、仮想ファイル管理情報記憶エリアが仮想データ記憶エリアの先頭側に隣接するセクタエリアに設けられており、セキュリティエリア内にて、ヘッダエリアが仮想メディアエリアの先頭側に隣接するセクタエリアに設けられた構成とする必要がある。
【0018】
次に、認証照合情報は、暗号化キーで予め定められた情報を暗号化した照合情報であって当該暗号化キー自身には照合適合しない情報として、ヘッダエリアの先頭に一定バイト数にて記憶しておくことが望ましい。この構成によると、パスワード等の暗号化キーがメディア内に直接書き込まれないので、セキュリティ性をより高めることができる。
【0019】
また、セキュリティエリアの末尾セクタ(つまり、セキュリティエリアの大きさ)を特定するために、ヘッダエリアには、仮想データ記憶エリアのセクタ数を特定するための仮想データ記憶エリアセクタ数情報を記憶しておく必要がある。この仮想データ記憶エリアセクタ数情報を、ホスト装置からの指令値(例えば所望によりユーザーが入力する情報に基づいて設定される)により書換え可能としておけば、メディア内に設定されるセキュリティエリアの大きさを自由に変更することができる。また、ノーマルエリアがセキュリティエリアの前後に分割した形で形成されている場合は、仮想データ記憶エリアセクタ数情報に基づいてセキュリティエリアの後に続くノーマルエリアを特定することが可能となる。
【0020】
次に、前述のメディアフォーマットは、実データ記憶エリア及び実ファイル管理情報記憶エリアと該実ファイル管理情報記憶エリアの先頭側に隣接したブートセクタとがメディア内に1つのみのパーティションエリアを構成する形で、ANSI(American National Standard Institute)に準拠したハードディスクフォーマットをエミュレーションする形で定めることができる。該ハードディスクフォーマットでは、ブートセクタは、当該パーティションエリアをブートディスクとして使用するためのイニシャルプログラムローダー(IPL)の格納セクタとして確保される。この場合、実ファイル管理情報記憶エリアには、その先頭側から、ノーマルファイルの占有セクタ番号をファイル名と対応付けて記憶するファイルアロケーションテーブル(FAT)の格納セクタと、ノーマルファイルのルートディレクトリ(RD)の格納セクタとが確保される。実メディアエリアの先頭セクタは、上記パーティションエリアにてイニシャルプログラムローダーの有無を検索し、これを起動するためのマスターブートプログラムと、メディア内のパーティション情報を記憶したパーティションテーブルとを格納するためのマスターブートレコードセクタ(MBR)として確保される。この方式を採用すると、ANSIにより広範に普及しているハードディスクの規格インフラを着脱式記憶メディアにもそっくり適用でき、そのデータファイルの読み書き制御に係るソフトウェア開発の負担を大幅に軽減することができる。この場合、マクロセキュリティファイル記憶位置情報として該マクロセキュリティファイルの占有セクタ番号(連続セクタなので、特定セクタ(例えば、先頭セクタ)だけを特定できるものであってもよい)を、マスターブートレコードセクタ、ブートセクタ及びファイルアロケーションテーブルのいずれかに書き込んでおけばよい。
【0021】
ホスト装置から、着脱式記憶メディア(周辺装置(記憶装置))へのデータアクセスは、OS上で動作するファイルシステムを利用してデータファイル単位でアクセスを行なう第一方式の他、例えばSCSI通信を応用した後述の付加情報通信機構を用いることにより、データファイルを構成しない独立データの形にてセクタ単位でアクセスする第二方式も可能である。
【0022】
この場合、記憶エリアとして定義されていないパーティションエリアをブートディスクとして使用しない前提では、マスターブートレコードセクタにおいてマスターブートプログラムの格納用として確保された空き領域(つまり、使用するメディアにシステム起動ディスクの機能を持たせない場合は、マスターブートプログラムを搭載する必要がない)に、マクロセキュリティファイルの占有セクタ番号(マクロセキュリティファイル記憶位置情報)を書き込むことができる。また、パーティションエリアをブートディスクとして使用しない前提にて、ブートセクタにおいては、イニシャルプログラムローダーも搭載の必要がないから、その格納用として確保された空き領域に、マクロセキュリティファイルの占有セクタ番号を書き込むこともできる。いずれの方式も、第二方式を採用することで容易に実現できる。
【0023】
一方、第一方式を前提とする場合は、マクロセキュリティファイルの占有セクタ番号を、該マクロセキュリティファイルに固有に定められた固定ファイル名と対応付けた形で、ファイルアロケーションテーブルに書き込んでおくこともできる。つまり、ノーマルモードでもファイルとして顕在化できるように、マクロセキュリティファイルにファイル名を付けてファイルアロケーションテーブル(ノーマルモード用のもの)に登録しておくことで、OS上のファイルシステムからマクロセキュリティファイルの格納位置を容易に特定できる。
【0024】
認証照合情報を、暗号化キーで予め定められた情報を暗号化した照合情報であって当該暗号化キー自身には照合適合しない情報として着脱式記憶メディア内に書き込むための具体的な方式として、次のようなものを例示できる。すなわち、前述のヘッダエリアに、予め定められた照合用元データを、マスター暗号化キーで暗号化した状態で認証照合情報として格納する認証用照合情報格納領域を設ける。周辺装置には、照合用元データをセキュリティーマスター情報として記憶するセキュリティーマスター情報記憶手段を設け、認証手段は、ホスト装置側からセキュリティ参照情報として復号化キーを兼ねる暗号化キーを受信し、該暗号化キーにより認証用照合データを復号化した情報を照合対象情報として、該照合対象情報がセキュリティーマスター情報と照合一致した場合に受理認証とし、照合不一致の場合に棄却認証とするものとする。暗号化キーは、例えばユーザーが個別に秘匿するパスワードである。パスワードと暗号化とを組み合わせた照合処理により、データ保護をより確実に図ることができる。また、上記の方式では、周辺装置側に個々のユーザーのパスワード登録部を設ける必要がなく、また、記憶メディアにはパスワードが直接書き込まれない(直接書き込まれるのは、パスワードをキーとして照合用元データを暗号化した情報である)のでより安全性が高い。また、パスワードとして、暗号化キーと復号化キーとを兼ねたものを使用することで、公開暗号化キー方式のように、ホスト装置側に、秘密キー(暗号化キー)と対をなす固有の公開キー(復号化キー)をいちいち登録する必要がないので簡便である。
【0025】
次に、本発明の通信システムは、
通信イベントの起動決定権を有したホスト装置と、該ホスト装置に接続される該ホスト装置の通信対象となる周辺装置とを含み、通信イベントを実行命令するためのコマンドをホスト装置から周辺装置に向けて順次発行する一方、発行されたコマンドを受領した周辺装置が当該コマンドに対応するデータ処理を逐次実行し、その実行結果に応じた応答情報をホスト装置側に返信するようになっており、かつ、コマンドの発行方向がホスト装置側から周辺装置側への一方向に規制された主通信プロトコルを有する通信システムとして構成することができる。この場合、
ホスト装置側に設けられ、周辺装置に対し該周辺装置自身に対する調査報告処理を要求する調査要求コマンドを発行するとともに、該調査要求コマンドの発行に伴い、調査報告指示内容を示す予め定められたフレームフォーマットを有するとともに当該フレームの予め定められたフィールドに付加情報が書き込まれた調査指示データを作成する調査指示データ作成手段と、
作成された調査指示データを周辺装置に送信する調査指示データ送信手段と、
周辺装置に設けられ、調査指示データを受けて、予め定められたフレームフォーマットを有する調査報告データを生成する調査報告データ生成手段と、
周辺装置に設けられ、調査報告データを応答情報としてホスト装置に送信する調査報告データ送信手段と、
周辺装置側に設けられ、受信した該調査指示データの予め定められたフィールドから付加情報を抽出する付加情報抽出手段と、を有する付加情報通信機構を構築できる。
そして、該付加情報通信機構により実現される機能手段として、
ホスト装置側で取得されるセキュリティ参照情報を、調査指示データ上の付加情報として周辺装置に送信するセキュリティ参照情報送信手段を設け、
周辺装置には、着脱式記憶メディアに書き込まれた認証照合情報と、ホスト装置から受信するセキュリティ参照情報とを用いて、着脱式記憶メディアへのホスト装置側からのアクセス権を認証する認証手段を設けることができる。
【0026】
この場合、本発明の周辺装置は、本発明の通信システムの上記構成に使用することを前提として、
調査指示データを受けて、予め定められたフレームフォーマットを有する調査報告データを生成する調査報告データ生成手段と、
調査報告データを応答情報としてホスト装置に送信する調査報告データ送信手段と、
受信した調査指示データの予め定められたフィールドから付加情報を抽出する付加情報抽出手段と、を有するものとして構成できる。
【0027】
主通信プロトコルは、周辺装置をなす記憶装置との間のデータファイルの送受信を行なうのが主目的であり、主通信プロトコルがサポートしていない制御処理(特に、周辺装置側で通信イベントを開始するような処理)に関与する情報は、主通信プロトコルがサポートする制御情報からは独立した付加情報として取り扱う必要がある。このような付加情報は、送受信の対象となるデータファイルの本体に書き込んでも意味がない。なぜなら、制御実行等のために付加情報の内容をホスト装置側あるいは周辺装置側で参照しようとした場合、そのデータファイルを開くためのアプリケーションソフトを立ち上げる必要が生じ、全く現実性がないためである。しかし、上記の構成によれば、特有の上記付加情報通信機構により、ホスト装置側から周辺装置側へ送りたい付加情報を、周辺装置に対し該周辺装置自身に対する調査報告処理を要求する調査要求イベントを利用する形で、その調査要求コマンドの発行に伴い作成される調査指示データの予め定められたフィールドに書き込むことで、主通信プロトコルによる制御下でデータファイルを経由せずに確実に送信することができる。
【0028】
そして、本発明では、付加情報通信機構により、ホスト装置側で取得されるセキュリティ参照情報を、調査指示データ上の付加情報として周辺装置に送信することが可能となる。そして、周辺装置には、着脱式記憶メディアに書き込まれた認証照合情報と、ホスト装置から受信するセキュリティ参照情報とを用いて、着脱式記憶メディアへのホスト装置側からのアクセス権を認証する認証手段とを設けておくことで、PC側から周辺装置側への一方向に規制されているにも拘わらず、周辺装置に装着された着脱式記憶メディアをセキュリティ認証するための通信機構を簡単に実現できる。
【0029】
主通信プロトコルとしては、本発明においてはSCSIプロトコル(SCSI−1、SCSI−2及びSCSI−3のいずれか:特に、現在も多くのOSカーネルで使われつづけているSCSI−2)を採用することができるが、これに限定されるものではない。
【0030】
他方、本発明においては、周辺装置とホスト装置とを、ホスト装置側からの周辺装置のポーリングは可能であって、該周辺装置側からのホスト装置の逆ポーリングが不能なシリアル通信機構を介して接続し、通信イベントを実行するためのホスト装置と周辺装置との間における情報転送を、ホスト装置が周辺装置をポーリングする形式にてシリアル通信により実行されるものとして構成できる。この構成では、周辺装置側からホスト装置をポーリングすることができない(つまり、周辺装置側に通信開始の決定権が与えられない)形になるので、上記の効果がより有効に発揮されるばかりでなく、周辺装置を直接接続するためのホスト装置側の通信インターフェースが大幅に簡略化され、システム構成の軽量・低コスト化を図ることができる。このようなシリアル通信の規格として、USB(Universal Serial Bus)を例示できる。また、本明細書では、主通信プロトコルとしてSCSIプロトコルが採用され、かつ、ホスト装置とUSBプロトコルに従うシリアル通信バスにより接続される周辺機器のことを、USB/SCSI型周辺機器とも称する。
【0031】
USBを採用する場合、周辺装置は、より具体的には以下のように構成できる。すなわち、コマンドをホスト装置から受信してコマンド内容を解析するコマンド解析ステップと、該コマンドの解析内容を反映したデータ処理を実行するデータ処理ステップと、データ処理の結果を示す応答情報をホスト装置に返信する応答情報返信ステップとをこの順序で実行する形で周辺機器側の通信処理制御を行なうアクセス制御デバイスと、上記コマンド及び応答情報の相互転送を、前記ホスト装置が複数の前記アクセス制御デバイスをポーリングする形式にてシリアル通信により実行するシリアル通信部とを有するものとして構成する。アクセス制御デバイスは、シリアル通信部との間でコマンド及び応答情報を送受信する送受信部と、コマンドを解釈してその内容に応じたデータ処理を制御実行主体とからなるものとして構成される。なお、送受信部とシリアル通信部とは専用ICに集積することができる。この構成では、USBプロトコルに従うシリアル通信にバスを介して、SCSI等の主通信プロトコルに従うコマンドないし応答情報のやり取りを問題なく行なうことができる。
【0032】
より具体的には、周辺装置側のシリアル通信部が、ホスト装置からのシリアル通信バスを接続する通信バス接続端子と、シリアル通信バスと送受信部との間でコマンド及び応答情報の転送通信処理を実行する通信制御部とを備え、該通信制御部が、通信バス接続端子に接続される通信処理のプロトコルエンジン部と、該プロトコルエンジン部にFIFOメモリからなる制御用の双方向エンドポイントを介して接続され、転送通信処理の制御を司る制御指令部とを備えたものとして構成できる。そして、送受信部は上記プロトコルエンジン部に対し、FIFOメモリからなる該プロトコルエンジン部への入力用エンドポイントと、FIFOメモリからなる該プロトコルエンジン部からの出力用エンドポイントとを介して入出力経路が分離された形で接続することができる。また、通信制御部は、ホスト装置側から、データアクセスの対象となる送受信部の特定情報と、該送受信部に対応するエンドポイントの特定情報とを受信して、各送受信部をターゲットデバイスとしてポーリングするものとなるように構成することができる。送受信のデータバッファとなるエンドポイントを送信側と受信側とで独立して設け、ポーリング時にいずれのエンドポイントを指定するかによって、データの転送方向も容易に特定することができる。
【0033】
次に、本発明においては、付加情報通信機構により実現される機能手段として、認証手段による認証結果を反映した認証結果反映情報を周辺装置に要求する認証結果要求情報を調査指示データ上の付加情報として周辺装置に送信するとともに、調査報告データの予め定められたフレームにホスト装置側からの付加情報に対応する対応付加情報として認証結果反映情報が書き込まれた調査報告データを、応答情報として周辺装置からホスト装置に返信する認証通信手段を設けることができる。この場合、ホスト装置には、返信された認証結果反映情報を出力する認証結果反映情報出力手段を設けることができる。特有の付加情報通信機構により、周辺装置からホスト装置に着脱式記憶メディアの認証結果を問題なく返すことができ、ホスト装置では、その認証結果反映情報を出力することで、認証がうまくなされたかどうかをユーザーは適格に把握できる。
【0034】
また、本発明においては、付加情報通信機構により実現される機能手段として、周辺装置に設定されているアクセスモードの種別を該周辺装置に報告させるためのアクセスモード報告指示情報を、調査指示データ上の付加情報として周辺装置に送信するとともに、調査報告データの予め定められたフレームにホスト装置側からの付加情報に対応する対応付加情報としてアクセスモード設定手段が設定中のアクセスモードを報告するアクセスモード報告情報が書き込まれた調査報告データを、応答情報として周辺装置側からホスト装置に返信するアクセスモード報告通信手段を設けることができる。この場合、ホスト装置には、アクセスモード報告通信手段により取得されたアクセスモードの種別を表示するアクセスモード種別表示手段を設けることができる。この構成により、周辺装置に設定されているアクセスモードが何であるかを、ホスト装置側の表示によりユーザーが容易に把握できる。
【0035】
また、ホスト装置には、アクセスモードとしてノーマルモードとセキュリティモードとのいずれかを選択するためのアクセスモード選択手段を設けることができる。この場合、付加情報通信機構により実現される機能手段として、ホスト装置側でノーマルモードが選択された場合に、該ノーマルモードへの移行を周辺装置に指示するノーマルモード移行指示情報を、調査指示データ上の付加情報として周辺装置に送信するノーマルモード移行指示情報送信手段と、該ノーマルモード移行指示情報を受けた周辺装置が、アクセスモード設定手段がアクセスモードをノーマルモードに設定するに伴い、調査報告データの予め定められたフレームにホスト装置側からの付加情報に対応する対応付加情報として、ノーマルモードへの設定完了を報告するノーマルモード設定完了報告情報を調査報告データとしてホスト装置に返信するノーマルモード設定完了報告情報返信手段とを設けることができる。これにより、ホスト装置側でノーマルモードが選択された場合、これを周辺装置に問題なく転送でき、周辺装置側ではノーマルモードの設定を速やかに行なうことができる。他方、ホスト装置は、セキュリティ参照情報の入力手段を有し、前述のセキュリティ参照情報送信手段は、入力されたセキュリティ参照情報を、調査指示データ上の付加情報として周辺装置に送信するものとして構成できる。これにより、ホスト装置側でセキュリティモードが選択された場合、ユーザーが入力したセキュリティ参照情報を周辺装置に問題なく転送でき、周辺装置側では該セキュリティー参照情報による認証処理と、認証受理であった場合のセキュリティモードの設定を速やかに行なうことができる。
【0036】
調査指示データ作成手段は調査指示データにおいて、格納するべき主格納情報として付加情報以外の情報が格納されるよう主通信プロトコルに規定されたフィールドに、付加情報を主格納情報に兼用させる形で書き込むものとすることができる。主通信プロトコルがSCSIプロトコルのごとく既製の通信規格に従う場合などにおいては、付加情報用の専用フィールドを、調査指示データのフレーム内に新たに設定できる余地が存在しない場合がある。このとき、上記のように本来付加情報とは全く別の主格納情報用に用意されたフィールドに、付加情報(を含む付加情報)を当該主格納情報に兼用させる形で書き込むようにすれば、上記のごとく専用フィールドを設ける余裕がない場合でも付加情報を問題なく書き込むことができる。
【0037】
例えば、周辺装置が、少なくともデータの読出しに係るデータアクセスが可能とされた着脱式記憶メディアが内蔵されるか又は着脱可能に装着され、通信イベントにより該着脱式記憶メディアに対してデータアクセスを行なう記憶装置として構成される場合、調査指示データにおいて、主通信プロトコルに従い着脱式記憶メディアに対するデータの読み出し又は書き込みに係る通信イベントを実行する際に、該読み出し処理又は書き込み処理に割り当てられる当該着脱式記憶メディア上のメモリエリアのアロケーション長を設定するためのフィールドをアロケーション長設定フィールドとして確保することができる。この場合、該アロケーション長設定フィールドにおいてアロケーション長情報を主格納情報とする形で、該アロケーション長情報に兼用される発生報告指示情報を書き込むことができる。このようにすると、アロケーション長情報に兼用させる形で、主通信プロトコルに規定されていない固有の付加情報を周辺装置側へ送信することが可能となる。
【0038】
主通信プロトコルにおいて、アロケーション長設定フィールドのサイズが一定ビット長に定められる場合、アロケーション長設定フィールドに上記付加情報を書き込む空きエリアを形成するために、次のような巧妙な方法が存在する。すなわち、アロケーション長として設定可能な最大値をバイト単位にて表わしたときのビット数を、アロケーション長設定フィールドの総ビット数未満に設定する。そして、上記最大値を超えるアロケーション長がアロケーション長設定フィールドに記述された場合には、記述されたアロケーション長値とは無関係に上記最大値をアロケーション長の実設定値として定める。そして、該最大値を超える冗長なアロケーション長記述値に一義的に対応付ける形で、付加情報を含む、異なる付加情報内容を定義することができる。例えば、SCSIプロトコルにおける後述のInquiryコマンドのCDBを調査指示データとして使用する場合、このCDBはSCSIプロトコル制御用に割り振られたフィールドばかりからなり、ユーザーが新たなデータを書き込むための余裕は一見全く存在しないように見える。しかし、本来はSCSIプロトコルの主格納情報であるアロケーション長の設定フィールドにおいて、上記のごとくアロケーション長として設定可能な最大値をアロケーション長設定フィールドの総ビット数未満に設定することで、該最大値を超える冗長なアロケーション長の設定記述値に、付加情報を含む付加情報としての意味をもたせることができる。
【0039】
次に、SCSIプロトコル等の場合、調査要求コマンドにはいくつかの種別が用意されている場合がある。この場合、どのような種別の調査要求コマンドを使用するかが問題になる場合がある。例えば、周辺装置が、データの読出し及び書込の双方に係るデータアクセスが可能とされた着脱式記憶メディアが着脱可能に装着され、通信イベントにより該着脱式記憶メディアに対してデータアクセスを行なう記憶装置として構成される場合、周辺装置には、着脱式記憶メディアの交換がなされた場合に当該着脱式記憶メディアの交換をホスト装置に通知するための交換通知情報を保持する交換通知情報保持手段と、ホスト装置から予め定められた第一種コマンドを受信した場合には、該コマンドの実行後に交換通知情報保持手段に保持されている交換通知情報をクリアし、同じく第一種コマンド以外の第二種コマンドを受信した場合は、該コマンドの実行後においても交換通知情報保持手段による交換通知情報の保持状態を保留する交換通知情報保持制御手段とが設けられる場合がある。この場合、使用する調査要求コマンドとしては、第二種コマンドの使用が強く推奨される。なぜならば、このような目的に第一種コマンドを使用した場合、交換通知情報を特に必要としない付加情報の送信イベントであるにも拘わらず、処理終了時には交換通知情報がクリアされてしまい、ホスト装置側でこの交換通知情報を本来必要とするシステムコンポーネント(例えばファイルシステム)が、これを取得できなくなってしまう状況が発生し、着脱式記憶メディアの記憶内容が破壊されたりするといったトラブルにつながる場合があるためである。
【0040】
調査要求コマンドとしては、例えば、周辺装置に対し該周辺装置自身の構成及び属性を特定する情報である構成/属性特定情報の報告を指示する構成/属性調査要求コマンドを採用することができる。このような周辺装置自身の構成及び属性の特定に係る通信イベントは、主通信プロトコル上では、例えばどのような種別の周辺装置(デバイス:SCSIの場合、ターゲット)が接続されているのかを、装置立ち上げ時に認識するために実行する目的で使用されることが多いが、ここでは、付加情報通信機構を実現するために、装置立ち上げ後においても任意のタイミングで発行する。該構成/属性調査要求コマンドにより規定される通信イベントは、本来的には(装置使用中においては不変となる)周辺装置のいわば「素性」を認識することのみが目的であり、例えば、コマンドの発生の前後で着脱式記憶メディアの交換があった場合において、交換通知情報の保持状態等に不要な影響を与えるべきではないので、上記の第二種コマンドとして用意することが望ましいのである。これを付加情報通信機構に流用することで、該コマンドを何度繰り返し発行しても交換通知情報の保持状態には影響が及ばず、前述のトラブルを防ぐことができる。
【0041】
主通信プロトコルがSCSIプロトコルである場合、上記の調査要求コマンドとしてInquiry(照会)コマンドを使用することが望ましい。この場合、ホスト装置(イニシエータ)から周辺装置(ターゲット)に送られる調査指示データは、Inquiryコマンドの詳細内容を記述する、CDB(Command Descriptor Block:コマンド記述ブロック、コマンド毎にフレーム形式がSCSIプロトコルにて詳細に規定されている)であり、周辺装置(ターゲット)からホスト装置(イニシエータ)に返される調査報告データはInquiryデータ(フレーム形式がSCSIプロトコルにて詳細に規定されている)である。表1はInquiryコマンドに対応するCDBの形式を示すものである。
【0042】
【表1】

【0043】
SCSIプロトコルでは、ホスト装置(イニシエータ)側で周辺装置(ターゲット)から返されるInquiryデータの種別を指定することができる。具体的には、Inquiryコマンドに対応するCDBには、EVPD(Enable Vital Product Data)と称されるフィールド(1ビット)と、ページコード(8ビット)と称されるフィールドが形成されている。表2に示すごとくEVPDフィールドに「0」が記述されているCDB(以下、CDB(0)と略記する)に対しては、Inquiryデータとして、表3に示すような、周辺装置の仕様に関係なく形式及び内容が共通に定められたスタンダードInquiryデータ(以下、S/Iデータと略称する)が返される。S/Iデータのうち、SCSIプロトコルによる通信制御に直接使用しない空きエリアを、特有の対応付加情報の記述フィールドとして使用することができる。
【0044】
【表2】

【0045】
【表3】

【0046】
例えば、S/Iデータでは、デバイスのベンダに固有の情報を記述するための一定長のフィールド(以下、ベンダ固有エリアという)が設けられており、このフィールドに空きエリアがある場合は、これを特有の応答情報の記述フィールドとして使用することができる。また、ビット数は僅少であるが、次のような空きエリアも、特有の応答情報の記述フィールドとして利用することができる。すなわち、8ビットに設定された追加データ長フィールド(S/Iデータのバイト5以降のデータ長)は、S/Iデータにおけるデータフレーム長の上限から、最大データ長が8ビットに満たないことがある。この場合、追加データ長フィールドに上記最大データ長を超えるデータ長が指定されている場合、追加データ長フィールドの記述内容によらず、最大データ長が指定されることとなる。その結果、最大データ長を超えるビット値の範囲は、実質的に対応付加情報を記述するための「空きエリア」として活用できる。
【0047】
一方、表4のごとく、EVPDフィールドに「1」が記述されているCDB(以下、CDB(1)と略記する)は、ホスト装置(イニシエータ)により詳細な、あるいはデバイス固有の情報を提供するための、表5のようなVPD(Vital Product Data)と称される特殊なInquiryデータが返される。
【0048】
【表4】

【0049】
【表5】

【0050】
VPDにはいくつかの種類が規定されており、どの種別のVPDを指定するかをCDBのページコードフィールドに記述する(具体的には、ページコードリスト(ページコード:00)、FRU ASCII情報(ページコード:01〜7F)、ユニットシリアル番号(ページコード:80)、動作モード定義(ページコード:81)、ASCII動作モード定義(ページコード:82)、及びベンダ固有の形式(ページコード:C0〜FF))。周辺装置はページコードフィールドで指定された種類のVDPを作成し、ホスト装置に返信する。特に、FRU ASCII情報形式及びASCII動作モード定義形式のVPDは、ページ長フィールドに続いて、必要なASCII情報を書き込むフィールドのデータ長のフィールドと、そのデータ長で指定されるASCII情報フィールドとが形成されるが、以降のフィールドはベンダ固有エリアとして、対応付加情報を記述するための「空きエリア」として活用できる。例えば、ASCII動作モード定義形式のVPDにおいて、ASCII情報フィールドを、デバイスのバージョン情報などを記述するためのバイト数の小さい(例えば1〜3バイト)のフィールドとして定義すれば、ベンダ固有エリアとなる残りのフィールドの長さを比較的大きく確保することができ、ある程度サイズの大きい対応付加情報を書き込むことが可能となる。
【0051】
SCSIプロトコルでは、ターゲット(周辺装置)、あるいはこれに含まれる1又は複数のロジカルユニット(周辺装置が記憶装置である場合は、1又は複数のメディア装着スロットである)上で事象や状態の変化が、ホスト装置(イニシエータ)の動作とは非同期に発生した場合、これを該イニシエータに通知するためのユニット・アテンション・コンディションを生成する機能が設けられている。周辺装置にて着脱式記憶メディアの交換が発生した場合、その交換通知情報が生成されるユニット・アテンション・コンディションに反映されることとなる。SCSIプロトコルでは、そのようなユニット・アテンション・コンディションを保留中の周辺装置に向けてInquiryコマンドが発行された場合、該周辺装置は保留中のユニット・アテンション・コンディションをクリアせずに(ただし、Copy Aborded(CA)状態の生成前に限る)、発行されたInquiryコマンドが実行される(Inquiryデータの作成・返信)。従って、対応付加情報の返信要求イベントを起動する際にあっては、Inquiryコマンドを用いることで、着脱式記憶メディアの交換がなされた場合も、その交換通知情報を含むユニット・アテンション・コンディションが保持され、交換通知情報の喪失を防ぐことができる。Inquiryコマンドが前述の第二種コマンドに該当するものであることは明らかである。
【0052】
なお、SCSIプロトコルでは、Request Senseコマンドと称される別の調査要求コマンドも使用が可能である。Request Senseコマンドは、周辺装置(ターゲット)に例えばエラー原因や種類などを報告するためのセンスデータを要求するコマンドであり、調査報告データとして該センスデータが規定フォーマットのフレームに記述されて返される。本発明においては、このセンスデータの空きエリアを利用して対応付加情報を書き込み、ホスト装置に返すことも原理的には可能である。しかし、SCSIプロトコルでは、ユニット・アテンション・コンディションを保留中の周辺装置に向けてRequest Senseコマンドが発行された場合、該周辺装置は保留中のユニット・アテンション・コンディションをクリアするように(ただし、Copy Aborded(CA)状態の生成前に限る)決められており、着脱式記憶メディアの交換がなされた場合に、その交換通知情報を含むユニット・アテンション・コンディションがクリアされ、交換通知情報が喪失する惧れがある。つまり、Request Senseコマンドは前述の第一種コマンドに該当するものである。
【発明を実施するための最良の形態】
【0053】
以下、適宜図面を参照して本発明の実施形態に係る通信システム1について説明する。図1は通信システム1に適用されるマルチリーダライタ2(記憶装置:周辺装置の一例)の斜視図、図2はマルチリーダライタ2の概略構成を示すブロック図、図6は通信システム1に適用されるPC3(ホスト装置の一例)の概略構成を示すブロック図である。なお、以下に説明する通信システム1の構成は、本発明を具現化するための単なる一例であり、本発明の要旨を変更しない範囲で構成を適宜変更できることは当然である。
【0054】
図1(a)に示すように、マルチリーダライタ2は、その前面に着脱可能なカード型記憶メディア(着脱式記憶メディア)として、第1メモリーカード11(例えばCF)を挿入するための第1スロット16と、第2メモリーカード12(例えばSM)を挿入するための第2スロット17と、第3メモリーカード13(例えばMS)を挿入するための第3スロット18と、第4メモリーカード14(例えばSD)を挿入するための第4スロット19とを備えている。なお、本実施形態では、周辺装置としてマルチリーダライタ2を例示して説明するが、シングルスロットタイプのリーダライタにも適用可能である。
【0055】
マルチリーダライタ2はUSB/SCSI型周辺機器として構成され、その背面には、図1B及び図2に示すように、USBケーブル25(図2参照)を接続するためのUSB端子24が設けられている。また、本実施形態では、主通信プロトコルとしてSCSI−2のプロトコルが採用されているものとする。図2に示すように、マルチリーダライタ2は、その内部に、各構成部を制御するCPU27と、制御プログラムや種々のデータ等を格納するROM28と、CPU27による演算の作業エリアとなるRAM29と、入出力制御LSI31と、USBチップ32とを備え、これらがバス33を介して相互にデータ転送が可能なように接続されている。マルチリーダライタ2は、該マルチリーダライタ2が接続されるPC3との間で、SCSIプロトコルに従うデータ通信を行なう。
【0056】
具体的には、ROM28には、SCSIプロトコルに基づいて作成された通信制御プログラムと、PC3から送信されたデータ(CDB)を解析するために用いられる解析データのテーブルリストが格納され、CPU27は、リーダライタ2がSCSI対応機器のターゲットとして機能するための、受信したSCSIコマンドに対応した通信イベントの実行制御処理を行なう。また、各スロット16〜19に着脱可能に装着される各第1〜第4メモリーカード11〜14は、例えば、コンパクトフラッシュ(CF:登録商標)、スマートメディア(SM:登録商標)、メモリースティック(MS:登録商標)、SDメモリーカード(SD:登録商標)など、PC3によるデータの書き込み、書き換え、消去、読出し、メディア装着確認等のデータアクセスが可能なフラッシュメモリを搭載したカード型記憶メディアである。
【0057】
SCSIプロトコルに従い、PC3はホスト装置として通信イベントの起動決定権が与えられ、該PC3(ホスト装置:イニシエータ)に接続されるマルチリーダライタ2は、PC3(ホスト装置)の通信対象(ターゲット)となる。そして、通信イベントを実行命令するためのSCSIコマンドがPC3(ホスト装置)からマルチリーダライタ2(周辺装置)に向けて順次発行される一方、発行されたコマンドを受領したマルチリーダライタ2(周辺装置)が当該SCSIコマンドに対応するデータ処理を逐次実行し、その実行結果に応じた応答情報をホスト装置側に返信する。また、SCSIコマンドの発行方向は、PC3(ホスト装置)側からマルチリーダライタ2(周辺装置)側への一方向に規制されている。
【0058】
次に、USBチップ32には、各外部メモリ入出力制御部51〜54に共通して設けられたコマンド・データ・ステータス送受信部(以下、単に「送受信部」という;転送要素送受信部)341と、USB端子(通信バス接続端子)24に接続されたUSBプロトコルエンジン(プロトコルエンジン部)321と、転送通信処理の制御を司るUSBコントロール部(制御指令部)331とが集積されてなる。
【0059】
ここで、USBプロトコルエンジン(プロトコルエンジン部)321と、USBコントロール部(制御指令部)331とで構成される部分が通信制御部に該当し、また、この通信制御部と、USB端子(通信バス接続端子)24とで構成される部分がシリアル通信部に該当する。
【0060】
各USBコントロール部331は、対応するUSBプロトコルエンジン321にFIFOメモリからなる制御用の双方向エンドポイントを介して接続されている。また、送受信部341は、USBプロトコルエンジン321に対し、FIFOメモリからなるUSBプロトコルエンジン321への入力用エンドポイントと、FIFOメモリからなるUSBプロトコルエンジン321からの出力用エンドポイントとを介して入出力経路が分離された形で接続されている。
【0061】
USBプロトコルエンジン321とUSBコントロール部331とで構成される通信制御部は、それぞれ、PC側から、送受信部341の特定情報と、該送受信部341に対応するエンドポイントの特定情報とを受信して、該送受信部341をターゲットデバイスとしてポーリングすることにより、データアクセス先が外部メモリ入出力制御部51〜54であることと、データ送受信の方向とを特定する。なお、当然のことであるが、ターゲットデバイスとなる送受信部341側からホスト装置であるPC3を逆ポーリングすることは、USBプロトコルでは許されていない。
【0062】
送受信部(転送要素送受信部)341は、USBプロトコルエンジン321との間でSCSIプロトコルに従い送受信するものである。ここで、転送要素とは、PC3との間でUSBバスを介してやり取りされる、通信イベントの内容を特定するコマンド(SCSIコマンド)と、通信イベント処理実行に対応して周辺装置側から返信される応答情報(ステータス)とを含む(SCSIコマンドに特定された処理内容が、メモリーカードに記憶されたデータの送受信に関係するデータアクセス処理であった場合は、そのデータも転送要素となる)。
【0063】
また、送受信部341は、図3に示すように、コントロールレジスタ81(図4参照)、ステータスレジスタ82(図5参照)、SCSIコマンドバッファ83、SCSIステータスバッファ84、SCSIデータDMAアドレスレジスタ85、SCSIデータDMAカウントレジスタ86を有する。これらの詳細については後述する。
【0064】
CPU27は、送受信部341が受信したSCSIコマンドを解析するコマンド解析ステップと、該SCSIコマンドに特定された内容の通信イベントを、対象となる外部メモリ入出力制御部51〜54(つまり、リーダライタ2をターゲットとした場合、それに含まれている複数のロジカルユニット)との間で行なうイベント実行ステップと、ステータスを送受信部341に送信させるステータス送信ステップと、をこの順序で実行する。
【0065】
マルチリーダライタ2では、挿入されたメモリーカードに対してデータの読み書きを行なう場合は、該メモリーカードからデータを読み出すために使用するメモリエリアあるいは該メモリーカードにデータを記憶するために使用するメモリエリアの割り当てが行われる。この割り当てられるメモリエリアのデータ長はアロケーション長と呼ばれている。一般に、該アロケーション長はマルチリーダライタ2にアクセスするPC3からの指定されたデータ長に設定されるが、本実施形態では、マルチリーダライタ2で設定可能なアロケーション長の最大値が、PC3側から指定し得る最大数値未満に設定されている。
【0066】
PC3は、図6に示すように、各構成部を制御するCPU41と、ROM42と、RAM43と、各種ソフトウェアプログラムやデータが格納されたHDD44と、ビデオコントロールLSI45と、USBチップ46と、ビデオ端子47と、複数の入出力ポートを有するUSB端子48などを備え、これらがバス49を介して相互にデータ転送が可能なように接続されている。これら各部はいわゆるマザーボードと呼ばれるメイン制御基板に一体的に組み込まれている。ビデオ端子47にはビデオケーブルを介してディスプレイ56が接続されている。USB端子48はUSBハブ機能を有する。このUSB端子48には、キーボード57及びマウス58等の入力手段が接続されており、さらに、マルチリーダライタ2が接続されている。
【0067】
ROM42には、マルチリーダライタ2へ送信されるデータであって、マルチリーダライタ2のCPU27に所定の処理を実行させる指示データが格納されている。該指示データはテーブルリスト化された状態でHDD44又はROM42に格納されている。また、HDD44のプログラム格納エリアには、PC3のオペレーションシステムであるWindows2000(登録商標)のSP3(以下「WIN2000」と称する)や、マルチリーダライタ2へのデータの書き込み及び読み出しを可能とするためのR/Wアプリケーションなどのソフトウェアプログラムが格納されている。これらソフトウェアプログラムがCPU41によって読み出されて所定の演算処理がなされることにより、各アプリケーションがPC3において動作可能となる。また、上記プログラム格納エリアには、マルチリーダライタ2との間でSCSIプロトコルに従うデータ通信プログラムが格納されている。本実施形態では、WIN2000が搭載されたPC3を例示して説明するが、Linuxシリーズ、MacOSシリーズなどのOSが搭載されたものであってもよい。もちろん、Windows2000のSP3をSP4や、WindowsXP(登録商標)に代替することも可能である。
【0068】
上記R/Wアプリケーション、PC3側のデータ通信プログラム及びリーダライタ2側の制御プログラムは、互いに協働して、以下の各手段を機能的に実現する処理を行なう。
【0069】
・調査指示データ送信手段:PC3(ホスト装置)側に設けられ、マルチリーダライタ2(周辺装置)に対し該マルチリーダライタ2(周辺装置)自身に対する調査報告処理を要求する調査要求コマンドを発行するとともに、該調査要求コマンドの発行に伴い、調査報告指示内容を示す予め定められたフレームフォーマットを有するとともに当該フレームの予め定められたフィールドに付加情報が書き込まれた調査指示データを作成する調査指示データ作成手段と、作成された調査指示データをマルチリーダライタ2(周辺装置)に送信する。
・調査報告データ生成手段:マルチリーダライタ2(周辺装置)に設けられ、調査指示データを受けて、予め定められたフレームフォーマットを有する調査報告データを生成する。
・調査報告データ送信手段:マルチリーダライタ2(周辺装置)に設けられ、調査報告データを応答情報としてPC3(ホスト装置)に送信する。
・付加情報抽出手段:マルチリーダライタ2(周辺装置)側に設けられ、受信した該調査指示データの予め定められたフィールドから付加情報を抽出する。以上が、請求項でいう付加情報通信機構を構築する。
【0070】
付加情報通信機構により実現される機能手段は以下のごとくである。
・セキュリティ参照情報送信手段:PC3(ホスト装置)側で取得されるセキュリティ参照情報(本実施形態では、ユーザーが入力するパスワードのことである)を、調査指示データ上の付加情報としてマルチリーダライタ2(周辺装置)に送信する。
これに対応して、以下に説明するごとく、マルチリーダライタ2(周辺装置)には、カード型記憶メディアに書き込まれた認証照合情報と、PC3(ホスト装置)から受信するセキュリティ参照情報とを用いて、カード型記憶メディアへのPC3(ホスト装置)側からのアクセス権を認証する認証手段が形成される。
【0071】
・認証通信手段:認証手段による認証結果を反映した認証結果反映情報をマルチリーダライタ2(周辺装置)に要求する認証結果要求情報を調査指示データ上の付加情報としてマルチリーダライタ2(周辺装置)に送信するとともに、調査報告データの予め定められたフレームにPC3(ホスト装置)側からの付加情報に対応する対応付加情報として認証結果反映情報が書き込まれた調査報告データを、応答情報としてマルチリーダライタ2(周辺装置)からPC3(ホスト装置)に返信する。
これに対応して、PC3(ホスト装置)には、返信された認証結果反映情報を出力する認証結果反映情報出力手段が形成される。
【0072】
・アクセスモード報告通信手段:マルチリーダライタ2(周辺装置)に設定されているアクセスモードの種別を該マルチリーダライタ2(周辺装置)に報告させるためのアクセスモード報告指示情報を、調査指示データ上の付加情報としてマルチリーダライタ2(周辺装置)に送信するとともに、調査報告データの予め定められたフレームにPC3(ホスト装置)側からの付加情報に対応する対応付加情報としてアクセスモード設定手段が設定中のアクセスモードを報告するアクセスモード報告情報が書き込まれた調査報告データを、応答情報としてマルチリーダライタ2(周辺装置)側からPC3(ホスト装置)に返信する。
これに対応して、PC3(ホスト装置)には、アクセスモード報告通信手段により取得されたアクセスモードの種別を表示するアクセスモード種別表示手段が形成される。
【0073】
・ノーマルモード移行指示情報送信手段:PC3(ホスト装置)側でノーマルモードが選択された場合に、該ノーマルモードへの移行をマルチリーダライタ2(周辺装置)に指示するノーマルモード移行指示情報を、調査指示データ上の付加情報としてマルチリーダライタ2(周辺装置)に送信する。
・ノーマルモード設定完了報告情報返信手段:該ノーマルモード移行指示情報を受けたマルチリーダライタ2(周辺装置)が、アクセスモード設定手段がアクセスモードをノーマルモードに設定するに伴い、調査報告データの予め定められたフレームにPC3(ホスト装置)側からの付加情報に対応する対応付加情報として、ノーマルモードへの設定完了を報告するノーマルモード設定完了報告情報を調査報告データとしてPC3(ホスト装置)に返信する。
【0074】
また、PC3(ホスト装置)には、アクセスモードとしてノーマルモードとセキュリティモードとのいずれかを選択するためのアクセスモード選択手段と、キュリティー参照情報の入力手段と、セキュリティモードが選択されることにより、該入力手段からのセキュリティ参照情報の入力を受け付ける入力制御手段とが形成される。前述のセキュリティ参照情報送信手段は、入力されたセキュリティ参照情報を、調査指示データ上の付加情報としてマルチリーダライタ2(周辺装置)に送信するものとされる。
【0075】
まず、図7を用いて、SCSIコマンドに基づいて、PC3と、USB−I/F78を介して該PC3とUSB接続されたリーダライタ2との間で行われるデータ通信の概略について説明する。OS70は、GUI(Graphical User Interface)71とファイルシステム72とOSカーネル73を備えてその基幹システムが構成されている。GUI71は、コンピュータグラフィックスとマウスなどのポインティングデバイスを用いてユーザーの入力操作を実現するユーザインターフェースであり、ファイルシステム72は、コンピュータ内部でファイルやフォルダを用いてデータを管理する方式及びその管理システムである。また、OSカーネル73はアプリケーションや周辺機器を監視する等の基本機能を実装したソフトウェアである。なお、PC3には、リーダライタ2へのアクセスが可能なようにドライバソフト74が予めインストールされており、該ドライバソフト74はモジュール化された状態でOSカーネル73に実装されている。
【0076】
例えば、リーダライタ2へアクセスするためのアプリケーションの一例であるエクスプローラ75とR/Wアプリケーション76とがPC3上で起動されたとする。エクスプローラ75は周知のごとく、ファイルやフォルダを管理するためのものである。エクスプローラ75はOS70のシステムに準拠して作成されており、一般には、OS70の一機能として認識されている。従って、エクスプローラ75はファイルシステム72を介してリーダライタ2と通信する。一方、R/Wアプリケーション76は、例えばリーダライタ2の製造メーカが開発した独自のアプリケーションソフトであって、リーダライタ2に挿入された記録メディアに対してデータを書き込む処理あるいはデータを読み出す処理を行なうものである。一般に、R/Wアプリケーション76は、ファイルシステム72の仕様が公開されていないため、OS70には準拠せずに作成される。
【0077】
まず、エクスプローラ75からリーダライタ2にアクセスする場合について説明する。OS70が起動され、エクスプローラ75が起動されると、エクスプローラ75によって、Inquiryコマンドがファイルシステム72を介してOSカーネル73に発行される。なお、Inquiryコマンドを含む全てのSCSIコマンドは、OSカーネル73において仮想的に設けられたSCSIコマンド処理入口79に対して発行されるようになっている。上記Inquiryコマンドが発行されると、リーダライタ2へは対応するCDB(ここではCDB(0);表2)が送信され、リーダライタ2は応答情報として、その型式やデバイス名、SCSI−ID、LUN(Logical Unit Number:ロジカルユニット番号)の有無、メモリーカードの種別などの構成情報を含むInquiryデータ(この場合、S/Iデータ(表3))を作成し、PC3に返信する。これにより、リーダライタ2が認識される。
【0078】
リーダライタ2が認識されると、GUI71によってエクスプローラ75上にリーダライタ2のドライブアイコンが生成される。そして、ユーザーがマウスなどを用いて上記ドライブアイコンにアクセスするなどして、データの読出指示が入力されると、エクスプローラ75はファイルシステム72に働きかけて、OSカーネル73に対してReadコマンド(SCSIコマンドの一例)を発行させる。一方、同様に、書込指示を入力すると、OSカーネル73に対してWriteコマンド(SCSIコマンドの一例)を発行させる。これらのコマンドデータがUSBなどのI/Fを介してリーダライタ2に転送され、該コマンドに従った読み出し若しくは書き込みがリーダライタ2側で実行される。なお、上記InquiryコマンドはPC3にリーダライタ2が接続されたときや、リーダライタ2が接続された状態でPC3の電源がリセットされたときにも発行される。
【0079】
次に、R/Wアプリケーション76からリーダライタ2にアクセスする場合について説明する。R/Wアプリケーション76が起動されると、OSカーネル73に対してR/Wアプリケーションにのみデータバスを開放する要求が出される。OSカーネル73はこの要求を受けてR/Wアプリケーション76にデータバスを占有させる。換言すれば、ファイル72からSCSIコマンド処理入口79に対して発行されたSCSIコマンドを該SCSIコマンド処理入口79で受け入れないようにする。従って、R/Wアプリケーション76の起動中は、ファイルシステム72はリーダライタ2へアクセスできなくなる。また、R/Wアプリケーション76が起動されると、GUI71によってR/Wアプリケーション76でプログラムされた入力画面(ユーザインターフェース画面)がディスプレイ上に表示される。また、ドライバソフト74によって、InquiryコマンドがOSカーネル73に発行されて、その応答情報であるInquiryデータ(この場合、表3のS/Iデータ)の返信により、リーダライタ2の型式やデバイス名などの構成情報が取得される。これにより、リーダライタ2が認識される。その後、ドライバソフト74によってOSカーネル73に対して出されたReadコマンドやWriteコマンドに従って、リーダライタ2側でデータの読み出し若しくは書き込みが実行される。
【0080】
リーダライタ2の認識は次のようにして行われる。すなわち、まず、OSカーネル73に対してInquiryコマンドを発行した際に生成されるCDB(0)(表2)をリーダライタ2に送信する。該CDB(0)を受信したリーダライタ2側では、CDB(0)に含まれる種々の情報を参照して、該情報に従った構成情報を生成し、該構成情報を含むS/Iデータ(表3)をPC3へ返信する。この返信されたS/Iデータに基づき、リーダライタ2が認識される。
【0081】
なお、リーダライタ2(ターゲット:周辺装置)上のいずれかのスロット(あるいは外部メモリ入出力制御部:ロジカルユニット)上で、メモリーカードの交換(つまり、事象や状態の変化)がなされると、PC3(イニシエータ)に通知するためのユニット・アテンション・コンディションが生成される。PC3のファイルシステムは、このユニット・アテンション・コンディションを参照してメモリーカードの交換を認識し、FAT(ファイルアロケーションテーブル)等のファイル情報の更新を行なう。このようなユニット・アテンション・コンディションを保留中のロジカルユニットに向けてInquiryコマンドが発行された場合、該ロジカルユニットは保留中のユニット・アテンション・コンディションをクリアせずに、Inquiryコマンドを実行する。つまり、Inquiryコマンドが実行された場合でも、該ユニット・アテンション・コンディションに反映されているメモリーカードの交換通知情報は消去されずに保持されるので、PC3のファイルシステムは、交換後のメモリーカードに対するアクセスを問題なく行なうことができる。
【0082】
次に、リーダライタ2のより具体的な動作について、図8のフローチャートを用いて説明する。なお、以下の説明では、1つのスロットに対する処理についてのみ行っている。複数のスロットに対しては、当該処理が割り込み処理により並列して行われる。CPU27は、PC3からUSBケーブルを介して供給される電源(バスパワー)によりONされると(T1)、USBチップ32からの割り込みを許可する状態となる(T2)。USBチップ32では、PC3側からUSBバス上を伝送してきたコマンドを、USBプロトコルエンジン321及びUSBコントロール部331の動作によって送受信部341へ転送する。なお、ここではまだ、コマンドを受け取ったことを示すレスポンスを返さない。
【0083】
送受信部341は、コマンドを受け取ると、ステータスレジスタ82の「コマンド受信完了」bitを1にし、CPU27に割り込みを掛ける。この場合、CPU27は、ステータスレジスタ82を参照することで何のための割り込みなのかを把握することができる。また、受け取ったコマンドは、SCSIコマンドバッファ83に格納される。
【0084】
CPU27は、割り込みがあり(T3:YES)、SCSIコマンドの受信が完了すると(T4:YES)、送受信部341が受け取ったコマンドの解釈を行なう(T5)。すなわち、CPU27は、送受信部341のステータスレジスタ82を参照し、送受信部341がコマンドを受け取ったことを知ると、SCSIコマンドバッファ83からコマンドを取得して、それを解釈する。これにより、CPU27は、SCSIデータの有無や伝送方向、大きさを把握する。
【0085】
CPU27は、コマンドの解釈によって、SCSIデータが無いと把握した場合(例えば、InquiryコマンドやTest Unit Readyコマンドの場合)およびSCSIデータの伝送方向がデバイス→PC(送信)であると把握した場合(例えば、Readコマンドの場合)には(T6:YES)、送受信部341のコントロールレジスタ81の「コマンド受付完了」bitと「ステータスレジスタクリア」bitに1を書き込む(T7)。
【0086】
送受信部341は、T7で「コマンド受付完了」bitに1が書き込まれた時点で、PCに対してコマンドを受け取ったことを示すレスポンスを返す。ここで、PC3側は、レスポンスを受け取ると、SCSIデータが無い場合には次がSCSIステータスの受信で、SCSIデータの伝送方向がデバイス→PCである場合には次がSCSIデータの受信であるので、デバイス待ちの状態に遷移する。
【0087】
他方、CPU27は、コマンドの解釈によって、SCSIデータの伝送方向がPC→デバイス(受信)であると把握した場合(例えば、Writeコマンドの場合)には(T6:NO)、PC3からのSCSIデータを受信する準備をする(T8)。具体的には、RAM29上に受信に必要なエリアを確保し、その先頭アドレスをSCSIデータDMAアドレスレジスタ85に書き込み、受信するバイト数をSCSIデータDMAカウントレジスタ86に書き込む。その後、送受信部341のコントロールレジスタ81の「コマンド受付完了」bitと「ステータスレジスタクリア」bitに1を書き込む(T9)。
【0088】
送受信部341は、T9で「コマンド受付完了」bitに1が書き込まれた時点で、PC3に対してコマンドを受け取ったことを示すレスポンスを返す。ここで、PC3側は、レスポンスを受け取ると、デバイス側でコマンドを解釈してSCSIデータを受け取る準備が出来たと認識して、SCSIデータの送信を開始する。
【0089】
そして、送受信部341は、SCSIデータDMAカウントレジスタ86が0になった時点で、ステータスレジスタ82の「データ受信完了」bitを1にし、CPU27に割り込みを掛ける。
【0090】
CPU27は、割り込みがあると(T10:YES)、送受信部341のコントロールレジスタ81の「データ受取完了」bitと「ステータスレジスタクリア」bitに1を書き込んで、SCSIデータの受信を完了する(T11:YES)。ここで、PC3側は、SCSIデータがデバイスに到達されたことが通知され、次がSCSIステータスの受信であるので、デバイス待ちの状態に遷移する。
【0091】
T7およびT11(YES)の後には、CPU27は、コマンドを実行する(T12)。例えばTest Unit Readyコマンドなら、第1〜第4メモリーカード11〜14が挿入されているか否かを判断する。例えばReadコマンドなら、第1〜第4メモリーカード11〜14からデータを読み出す。例えばWriteコマンドなら、この時点で書き込むべきデータをPC3から受け取っているので(上述のT8〜T11)、それを第1〜第4メモリーカード11〜14に書き込む。
【0092】
次に、CPU27は、SCSIデータの伝送方向がデバイス→PC(送信)である場合(例えば、Readコマンドの場合)には(T13:YES)、読み出したデータをPC3へ送信する準備をする(T14)。具体的には、RAM29上に送信に必要なエリアを確保して読み出したデータを格納するとともに、その先頭アドレスをSCSIデータDMAアドレスレジスタ85に書き込み、受信するバイト数をSCSIデータDMAカウントレジスタ86に書き込む。そして、送受信部341のコントロールレジスタ81の「データ送信開始」bitに1を書き込む。
【0093】
送受信部341は、T14で「データ送信開始」bitに1が書き込まれた時点で、PC3へSCSIデータの転送を開始する。そして、送受信部341は、SCSIデータの転送が終わったら、ステータスレジスタ82の「データ送信完了」bitを1にし、CPU27に割り込みを掛ける。
【0094】
CPU27は、割り込みがあると(T15:YES)、SCSIデータの転送が終わったことを把握するので、送受信部341のコントロールレジスタ81の「ステータスレジスタクリア」bitに1を書き込んで、SCSIデータの送信を完了する(T16:YES)。
【0095】
T13(NO)およびT16(YES)の後には、CPU27は、SCSIステータスの送信を開始する(T17)。具体的には、CPU27は、上記処理の中で、PC3に返すべきステータスを既に決定しているので、そのステータスをSCSIステータスバッファ84に書き込み、送受信部341のコントロールレジスタ81の「ステータス送信開始」bitに1を書き込んで、SCSIステータスの送信を開始する。
【0096】
送受信部341は、T17で「ステータス送信開始」bitに1が書き込まれた時点で、PC3へSCSIステータスの送信を開始する。そして、送受信部341は、PC3側からSCSIステータスを受け取ったレスポンスを受けると、ステータスレジスタ82の「ステータス送信完了」bitを1にし、CPU27に割り込みを掛ける。
【0097】
CPU27は、割り込みがあると(T18:YES)、SCSIステータスの送信が終わったことを把握するので、送受信部341のコントロールレジスタ81の「ステータスレジスタクリア」bitに1を書き込んで、SCSIデータの送信を完了する(T19:YES)。これにより、送受信部341のステータスレジスタ82がクリアされて、元の状態に戻る。
【0098】
次に、本通信システム1において、Inquiryデータを用いたデータ通信処理の流れの一例について説明する。なお、各ステップにおける処理(請求項に記載した機能実現手段)は、PC3のCPU41あるいはマルチリーダライタ2のCPU27によって各構成部が制御されることにより行われる。図9は、主処理の流れを示すフローチャートである。すなわち、PC3にマルチリーダライタ2が接続され、各装置に電源が投入されると、まず、PC3に接続されている不明なデバイスに対してドライブを割り当てるドライブ割当処理(S1)が実行される。本実施形態では、デバイスとしてマルチリーダライタ2だけが接続されているため、これのみにドライブが割り当てられる。
【0099】
次に、ユーザーによって選択されたドライブを通信相手として設定するドライブ設定処理(S2)が行われる。ドライブが設定されると、設定されたドライブに対応するデバイス(本実施形態ではマルチリーダライタ2)が通信相手として認識される。そして、マルチリーダライタ2へのメモリーカード11〜14に対するセキュリティ処理(S3)が実施される。該主処理ルーチンは、起動管理タイマールーチンから定期的に出される起動トリガを用いる等により、一定の時間間隔(例えば100ms〜1000ms:例えば500ms)で繰り返し定常的に実行される。
【0100】
図10は、PC3においてCPU41により実行されるドライブ割当処理(S1)の詳細を示すものである。まず、参照されるドライブ(以下「参照ドライブ」と称する)がAドライブに初期設定される(S101)。該参照ドライブは、PC3側で割り当て可能なドライブのことを意味するものであって、該ドライブが複数存在する場合はドライブの割り当て処理時に昇順で参照される。参照ドライブは、PC3のWIN2000のOSカーネルで管理されている。本実施形態では、割り当て可能なドライブ数をA〜Zの26個としている。
【0101】
参照ドライブが設定されると、次に、CPU41によって、ドライブが割り当てられるデバイスからS/Iデータを返信させるためのInquiryコマンド(以下「Inq(0)コマンド」と称する)が参照ドライブに対して発行される(S102)。実際には、CPU41によって該Inq(0)コマンドがOSカーネルに対して発行され、該OSカーネルにおいて該Inq(0)コマンドが参照ドライブに発行されたものとして取り扱われる。そして、OSカーネルにより、EVPDエリアが“0”に設定されたCDB(0)が生成されて、参照ドライブに関連づけられた不明デバイスに送信される。SCSI規格では、EVPDエリアが“0”に設定されている場合はS/Iデータを返信するよう定義されている。CDB(0)の具体例は、前述のごとく表2に示している。なお、表2のデータ欄には、各データが16進数表記で示されている。本明細書において特に明示しない限り、データ欄は全て16進数表記で示すものとする。
【0102】
参照ドライブに関連づけられたデバイスが存在する場合であって、該デバイスがSCSIコマンドを処理することができるデバイス(SCSIコマンド対応デバイス)である場合は、該デバイスからS/Iデータが返信される。一方、デバイスが存在しない場合、あるいは存在していても該デバイスがSCSIコマンドを処理することができない場合(SCSIコマンド非対応デバイス)は、該デバイスからS/Iデータは返信されない。S103では、S/Iデータの返信の有無に基づいてCPU41によってエラー判定が行われる(S103)。具体的には、S/Iデータの返信がない場合はエラーと判定される(S103のYes側)。この場合、その後の処理はステップS107に進む。また、S/Iデータの返信がある場合はエラーと判定されない(S103のNo側)。すなわち、当該参照ドライブに関連づけられたデバイスが存在すると判定される。この場合、その後の処理はステップS104に進む。
【0103】
S103においてエラーでないと判定されると、返信されたS/Iデータに基づいて、参照ドライブに関連づけられたデバイスが通信対象となり得るデバイスであるかどうか、すなわち、通信可能なデバイスであるかどうかが判定される。本実施形態では、当該ステップは、参照ドライブに関連付けられたデバイスがマルチリーダライタ2であるかどうかを判定するために行われる。また、本実施形態では、マルチリーダライタ2から、表3に示すS/IデータがPC3へ返信されるようになっており、当該ステップにおける判定処理は、返信されたS/Iデータのバイト0のエリアやバイト1のエリアのデータ、あるいは、バイト8〜15のエリアのベンダIDや、バイト16〜31のエリアのプロダクトIDなどが、PC3側で予め登録しておいたID情報等と一致しているかどうかによって行われる。当該ステップで、通信可能なデバイスであると判定されると(S104のYes側)、処理はステップS105に進み、通信可能なデバイスではないと判定されると(S104のNo側)、処理はS107に進む。なお、表3中のバイト0エリアのデータ「0x00」はダイレクトアクセスデバイスを示し、バイト1のエリアのデータ「0x80」は可換カード型記憶メディア(カード型記憶メディア)を示すものである。上述の各バイトエリアに記述される内容については、SCSI規格で定義されているため、詳細については、当該規格書を参照されたい。
【0104】
処理がS105に進むと、ここでは、返信されたS/Iデータに基づいて、当該参照ドライブのLUNが“0”であるかどうかがCPU41によって判定される。かかる判定は、S/Iデータにおけるベンダ固有エリアのバイト54のエリアのデータに基づいて行われる。本実施形態では、上述したように、マルチリーダライタ2から、表3に示すS/IデータがPC3へ返信されるようになっている。また、表3のバイト54エリアの備考欄にも記載しているように、マルチリーダライタ2では、S/Iデータを返信する際に、バイト54のエリアの上位4ビットに該マルチリーダライタ2の物理的I/Fを示す情報(本実施形態ではUSBであることを示す情報)が格納され、下位4ビットにLUNの番号を格納するようにプログラミングされている。従って、CPU41は、バイト54のエリアのデータを参照すれば、LUNの情報を取得することができる。これにより、当該ステップの判定処理を行なうことができる。例えば、バイト54のエリアに「0x10」が格納されている場合は、物理的I/FがUSB接続コネクタであって、LUNが0であることが取得され、「0x23」が格納されている場合は、物理的I/FがSCSI接続コネクタであって、LUNが3であることが取得される。
【0105】
S105で、LUNが“0”であると判定されると(S105のYes側)処理はS106に進み、LUNが“0”でないと判定されると(S105のNo側)処理はS107に進む。なお、WIN2000がインストールされたPC3と接続されている場合は、マルチリーダライタ2側でバイト54のエリアに、例えばLUN=1の情報を格納したとしても、PC3側ではLUN=0として認識するようになっている。そのため、当該S105の処理は必ずYes側に進むことになる。この場合は、S105の判定処理は意味を成さないため省略してもよい。
【0106】
S106では、現在の参照ドライブを対応ドライブリストに追加する処理が実行される。対応ドライブリストは、最終的にドライブが割り当てられる参照ドライブをリストアップしたものである。詳細には、該対応ドライブリストがRAM43の所定の記憶エリアに展開されており、該当する参照ドライブが該記憶エリアに書き込まれる。その後、処理はS107に進む。
【0107】
S107では、参照ドライブがZドライブであるかどうかがCPU41によって判定される。例えば、カウンタメモリなどにドライブの参照順をカウントさせておき、そのカウンタ値をCPU41が監視することにより、現在の参照ドライブがZドライブであるかどうかの判定が可能である。かかる判定は、設定された参照ドライブが最後であるかどうかを判定するために行われる。ここで、参照ドライブがZドライブであると判定されると、参照可能なドライブが存在しないため、続く処理はS109に進む。参照ドライブがZドライブではないと判定されると、参照ドライブを次順のドライブに設定した後に(S108)、S102からの処理がS107においてYesと判定されるまで繰り返し行われる。
【0108】
処理がS109に進むと、ここでは、対応ドライブリストに基づいてドライブの割り当てがなされる。これにより、一連のドライブ割当処理(S1)が終了する。なお、本実施形態では、外部ストレージデバイスとしてマルチリーダライタ2のみが接続されているため、Aドライブに対してマルチリーダライタ2が割り当てられ、他のドライブには何ら割り当てられないものとする。
【0109】
続いて、図11は、ドライブ設定処理(S2)の詳細を示すものである。S201では、前記ドライブ割当処理(S1)によって割り当てられたドライブ(以下「対応ドライブ」と称する)が存在するかどうかが判定される(S201)。すなわち、PC3で割当可能なドライブのいずれかに所定のデバイスが割り当てられたかどうかが判定される。本実施形態では、マルチリーダライタ2が割り当てられたAドライブが存在するため、対応ドライブがあると判定される。その後、対応ドライブが1つであるかどうかが判定される(S202)。一方、S201で、対応ドライブが存在しないと判定されると(S201のNo側)、通信対象が存在しないため、処理が終了する。
【0110】
S202で対応ドライブが1つであると判定されると(S202のYes側)、当該対応ドライブが通信対象として設定される(S205)。すなわち、当該対応ドライブに関連付けられたデバイスが通信対象に設定される。なお、本実施形態では、Aドライブが通信対象として設定される。換言すれば、マルチリーダライタ2が通信対象のデバイスとして設定される。
【0111】
一方、対応ドライブが複数存在すると判定された場合は(S202のNo側)、対応ドライブを示すアイコンをダイアログ表示させる(S203)。その後、ユーザーからいずれかのアイコンが選択されることによって所望の対応ドライブが選択されると(S204)、選択された対応ドライブが通信対象として設定される(S205)。なお、いずれのアイコンも選択されない場合であっても、例えば、対応ドライブごとに優先度が設定されている場合は、最も優先度の高い対応ドライブが通信対象に自動的に設定される。これにより、一連のドライブ設定処理(S2)が終了する。
【0112】
次に、セキュリティ処理(S3)について説明する。図2においてマルチリーダライタ2のROM28には、前述の認証手段の機能を実現するための認証ファームウェアが格納されている。カード型記憶メディアへのアクセスモードは、ノーマルエリアにのみアクセスが可能なノーマルモードと、セキュリティエリアにアクセスが可能なセキュリティモードとのいずれかに設定されるものであり、該認証ファームウェアは、認証手段による認証結果が受理認証であった場合にのみ、アクセスモードをセキュリティモードに設定する処理も行なう。
【0113】
図15に示すように、メモリーカード11は、本発明特有の構造を有するカード型記憶メディアとして構成されたものであり、ファイル単位による記憶データの読出し、書込み及び消去が可能とされた実データ記憶エリア308と、該実データ記憶エリア308内における各データファイルの占有エリアと、データファイルに占有されない空きエリアとを少なくとも、それらエリアのデータ記憶エリア内での位置を特定可能に記述されたファイル管理情報を記憶する実ファイル管理情報記憶エリア307とが、予め定められたメディアフォーマットに従い形成された実メディアエリア300を有する。実データ記憶エリア308には、記憶内容が全て暗号化された状態で書きまれるセキュリティエリア400と、暗号化がなされないノーマルエリア309とが分割形成されている。以下、ノーマルエリア309に非暗号化状態で格納されるデータファイルをノーマルファイル、セキュリティエリア400に暗号化状態で格納されるデータファイルをセキュリティファイルとして定義する。
【0114】
実ファイル管理情報記憶エリア307には、ノーマルエリア309におけるノーマルファイルの占有エリアの位置と、該ノーマルファイルに占有されない空きエリアの位置とを特定するとともに、実メディアエリア300の先頭を基準とする第一のエリア座標系に従って記述されたノーマルファイル管理情報が記憶されるようになっている。また、セキュリティエリア400には仮想メディアエリア420が形成されている。該仮想メディアエリア420には、セキュリティファイルを格納するとともに、ファイル単位による記憶データの読出し、書込み及び消去が可能とされた仮想データ記憶エリア407と、該仮想データ記憶エリア407内における各セキュリティファイルの占有エリア位置と、該セキュリティファイルに占有されない空きエリア位置とを少なくとも特定可能に記述されたファイル管理情報を記憶する仮想ファイル管理情報記憶エリア407とが、実データ記憶エリア308と実ファイル管理情報記憶エリア307との形成形態を規定するメディアフォーマットと同一のフォーマットに従い形成されている。
【0115】
仮想ファイル管理情報記憶エリア407は、仮想メディアエリア420を独立した別のカード型記憶メディアとみなして、仮想データ記憶エリア407内にてセキュリティファイルの占有エリア及び空きエリアを位置特定するためのファイル管理情報が、仮想メディアエリア420の先頭を基準とする第二のエリア座標系に従って記述されるようになっている。セキュリティエリア400の先頭には、仮想メディアエリア420とは別に、第一のエリア座標系に従って記述されたファイル管理情報を第二のエリア座標系でのファイル管理情報に変換するためのエリア座標変換情報と、ヘッダエリア401内の固定領域に書き込まれセキュリティエリア400へのアクセスを認証するための認証照合情報とを格納するためのヘッダエリア401が形成されている。
【0116】
そして、セキュリティファイルを含むセキュリティエリア400内の情報を一括して暗号化することにより、実データ記憶エリア308上にて仮想単一ファイルとして扱われるマクロセキュリティファイルが形成されるようになっており、該マクロセキュリティファイルの実データ記憶エリア308上での記憶位置を特定するマクロセキュリティファイル記憶位置情報が実データ記憶エリア308外に書き込まれている。
【0117】
動作の概要を以下に説明する。リーダライタ2(周辺装置)に装着されたメモリーカード11へのアクセスモードは、ノーマルエリア309にのみアクセスが可能なノーマルモードと、セキュリティエリア400にアクセスが可能なセキュリティモードとのいずれかに設定される。そして、メモリーカード11からマクロセキュリティファイル記憶位置情報が読み出されることにより、該メモリーカード11内のマクロセキュリティファイルの位置が特定され、ヘッダエリア401の先頭に位置する認証照合情報が読み出され、該認証照合情報に基づいて、メモリーカード11へのPC3側からのアクセス権が認証される。
【0118】
そして、上記の認証結果が受理認証であった場合にのみ、アクセスモードがセキュリティモードに設定され、セキュリティモードに移行した場合に、当該セキュリティモードの適用対象となる装着中のメモリーカード11を別のカード型記憶メディアとして仮想認識させるためのメディア仮想交換情報がリーダライタ2からPC3に送信される。メディア仮想交換情報の送信後の、PC3側からのセキュリティエリア400へのデータアクセス時において、アクセス対象となるセキュリティファイルの第二のエリア座標系にて記述された仮想ファイル管理情報が取得され、エリア座標変換情報を用いて第一のエリア座標系にて記述されたファイル管理情報に変換される。そして、当該変換後のファイル管理情報を用いてセキュリティエリア400へのデータアクセスが、ファイル書込時には当該ファイルを暗号化しつつ書き込み、ファイル読出し時には当該ファイルを復号化しつつ読み出す形で実施される。
【0119】
上記メモリーカード11は、実メディアエリア300が一定サイズの複数のセクタに区分され、データファイルの読出し、書込み及び消去が該セクタ単位でなされるとともに、ファイルの占有エリアと空きエリアとの位置を特定するためのエリア座標系が一連のセクタを個々に特定するために連続番号で各セクタに付与されたセクタ番号を用いて規定されている。セキュリティエリア400は、実データ記憶エリア308内にてセクタの連続した連続エリアとして形成される。実ファイル管理情報記憶エリア307においてノーマルファイル管理情報は、ノーマルファイルの占有セクタ番号と、該ノーマルファイルに占有されない空きセクタ番号とを、実メディアエリア300の先頭セクタ番号を基準として定めた第一のエリア座標系として第一のセクタ番号列(セクタ0〜セクタMAX)を用いて記述したものとされる。また、仮想ファイル管理情報記憶エリア407においてファイル管理情報は、セキュリティファイルの占有セクタ番号と、該セキュリティファイルに占有されない空きセクタ番号とを、仮想メディアエリア420の先頭セクタ番号を基準として定めた第二のエリア座標系として第二のセクタ番号列(セクタ0’〜セクタMAX’)を用いて記述したものとされる。図16に示すように、エリア座標変換情報は、実データ記憶エリア308の先頭セクタ位置から仮想データ記憶エリア407の先頭セクタ位置に至るオフセットセクタ数である。
【0120】
この場合の具体的な動作概要は以下の通りである。メディア仮想交換情報の送信後に、セキュリティエリア400のヘッダエリア401を除いた部分のセキュリティセクタ数が、仮想的な別のカード型記憶メディアのセクタ数としてPC3に通知される。PC3側からのセキュリティエリア400へのデータアクセス時において、PC3側から受け取る第二のセクタ番号列を用いて記述されたアクセス対象ファイルのセクタ番号が、オフセット情報を用いて第一のセクタ番号列を用いて記述されたアクセス対象ファイルのセクタ番号に変換される。そして、当該変換後のセクタ番号にてセキュリティエリア400へのデータアクセスが行なわれる。
【0121】
実ファイル管理情報記憶エリア307は、実データ記憶エリア308の先頭側に隣接するセクタエリアに設けられている。また、仮想メディアエリア420内において、仮想ファイル管理情報記憶エリア407は、仮想データ記憶エリア407の先頭側に隣接するセクタエリアに設けられている。そして、セキュリティエリア400内にて、ヘッダエリア401は、仮想メディアエリア420の先頭側に隣接するセクタエリアに設けられている。
【0122】
認証照合情報は、後に詳述する通り、暗号化キーで予め定められた情報を暗号化した照合情報であって当該暗号化キー自身には照合適合しない情報として、ヘッダエリア401の先頭のチェックセクタに一定バイト数にて記憶されている。また、セキュリティエリア400の末尾セクタ(つまり、セキュリティエリア400の大きさ)を特定するために、ヘッダエリア401には、セキュリティセクタ数(仮想データ記憶エリア407のセクタ数を特定するための仮想データ記憶エリアセクタ数情報)が記憶されている。なお、このセキュリティセクタ数を、PC3からの指令値(例えば所望によりユーザーが入力する情報に基づいて設定される)により書換え可能としておけば、メディア内に設定されるセキュリティエリア400の大きさを自由に変更することができる。また、ノーマルエリア309がセキュリティエリア400の前後に分割した形で形成されている場合は、仮想データ記憶エリア407セクタ数情報に基づいてセキュリティエリア400の後に続くノーマルエリア309を特定することが可能となる。
【0123】
次に、前述のメディアフォーマットは、実データ記憶エリア308及び実ファイル管理情報記憶エリア307と該実ファイル管理情報記憶エリア307の先頭側に隣接したブートセクタ304とがメディア内に1つのみのパーティションエリア310を構成する形で、ANSI(American National Standard Institute)に準拠したハードディスクフォーマットをエミュレーションする形で定められている。
【0124】
該ハードディスクフォーマットでは、ブートセクタ304は、当該パーティションエリア310をブートディスクとして使用するためのイニシャルプログラムローダー(IPL)の格納セクタとして確保される。この場合、実ファイル管理情報記憶エリア307には、その先頭側から、ノーマルファイルの占有セクタ番号をファイル名と対応付けて記憶するファイルアロケーションテーブル(FAT)の格納セクタ305と、ノーマルファイルのルートディレクトリ(RD)の格納セクタと306が形成される。実メディアエリア300の先頭セクタは、マスターブートプログラム(ブートストラップローダともいう)と、メディア内のパーティション情報を記憶したパーティションテーブルとを格納するためのマスターブートレコード(MBR)セクタ302として確保される。
【0125】
図17は、マスターブートレコードセクタ302の構造を示すもので、上記のハードディスクフォーマットを踏襲したものであるから、OSのブートシーケンスに必要なエリアが以下のごとく形成されている。すなわち、仮に、このメモリーカードのパーティションエリア310がブートドライブ(つまり、起動ディスク)として設定されている場合、マスターブートレコードセクタ302の先頭には、前述のマスターブートプログラムの格納エリア302Aと、パーティションテーブル302Bの格納エリアがそれぞれ形成されている。また、符号302は、マスターブートレコードセクタ302の有効性を識別するためのシグネチャである。一方、ブートセクタ304は、先頭から、イニシャルプログラム開始位置へのジャンプを指令するジャンプコードの格納エリア304Jと、パーティション内のフォーマット情報の格納エリア304Bと、ブートプログラムの格納エリア304Aとがこの順序で形成されている(符号304Cは、ブートセクタの有効性を識別するためのシグネチャである。
【0126】
OSのブートシーケンスでは、PC2が立ち上がったあとBIOSが読み込まれ、続いてマスターブートレコードセクタ302へのアクセスが行なわれて、マスターブートプログラムが実行される。これにより、上記パーティションエリア310にてイニシャルプログラムローダーの有無が検索され、イニシャルプログラムローダーが見つかればこれを起動する。イニシャルプログラムローダーはOS起動の起点となるもので、ハードウェアのチェックを行なった後、OSの読み込みを行なうべく動作するものである。
【0127】
しかし、本実施形態では、メモリーカードは起動ディスクとして使用されず、マスターブートプログラムの格納エリア302Aも、ブートプログラムの格納エリア304Aもブートプログラムも空き領域としての活用が可能である。
【0128】
次に、セキュリティ参照情報は暗号化キーとして使用されるパスワードであり、例えば、PC3のキーボード57から入力されるものである。そして、セキュリティエリアには書込対象データが暗号化キーにより暗号化した状態で書き込まれる。他方、セキュリティエリア内の暗号化された読出し対象データは、暗号化キーにより復号化して読み出される。この暗号化/復号化のファームウェアは、本実施形態ではマルチリーダライタ2のROM28内に格納されているものとするが、PC3側に設けてもよい。また、暗号化/復号化のロジックとしては、周知のアルゴリズム(例えばDES(Data Encryption Standard)、トリプルDES、AES(Advanced Encryption Standard)等)を採用できる。
【0129】
ただし、本実施形態では、上記の暗号化/復号化のファームウェアは、データの暗号化/復号化を直接行なうものではなく、暗号化/復号化の演算そのものは、周知の暗号化/復号化アルゴリズムを実行する論理演算回路によって実行し、ファームウェアは該論理演算回路への被処理データの転送処理と、処理済データの取得処理を行なうのみとされている。具体的には、図2においてアドレスバス及びデータバスに、暗号化論理演算を行なうハードウェアロジックである暗号化ロジック回路6と、復号化論理演算を行なうハードウェアロジックである復号化ロジック回路7とが、暗号化/復号化用バッファRAM5を介して接続されている。暗号化/復号化のファームウェアの実行により、暗号化/復号化の処理対象となるデータが暗号化/複合化用バッファRAM5を介して暗号化ロジック回路6もしくは復号化ロジック回路7に送られ、ここで、暗号化もしくは復号化の演算が行なわれて、暗号化/復号化用バッファRAM5を介して処理済データとして順次取得される。
【0130】
図16に戻り、セキュリティエリア400の先頭には、前述のごとく、1ないし数セクタのヘッダが設けられている。このヘッダには、予め定められた照合用元データ(本実施形態では、このデータを一定長の固定データとしているが、必要に応じて内容を変更できるようにしてもよい)を、マスター暗号化キー(つまり、正しいパスワード)で暗号化した状態で認証照合情報として格納するチェックセクタ(認証照合情報格納エリア)が形成されている。マルチリーダライタ2には、上記の照合用元データをセキュリティーマスター情報として保有する。照合用元データは、例えば上記の暗号化/復号化のファームウェアに組み込んだ形で、ROM28に記憶しておくことができる。そして、PC3側から受信した(つまり、PC3側でユーザーが入力したパスワード)暗号化キーで認証照合情報を復号化した情報を照合対象情報として、該照合対象情報が、マルチリーダライタ2側の照合用元データ(セキュリティーマスター情報)と照合一致した場合に受理認証とし、照合不一致の場合に棄却認証とする処理が行なわれる。
【0131】
セキュリティエリアの仮想データ記憶エリア407内には、データファイル(仮想データ記憶エリア407のサイズが許す限り、複数個のデータファイルの格納が可能である)がパスワードにて暗号化された状態で書きまれる。このセキュリティエリアはセクタの連続した連続エリアとして確保されており、当該セキュリティエリア内に格納された暗号化済のデータファイルの集合をマクロセキュリティファイルとして取り扱うために、当該マクロセキュリティファイルを定義するための情報として、前述のオフセットセクタ数と、セセキュリティセクタ数がヘッダ部に記憶されている。
【0132】
マルチリーダライタ2(周辺装置)は、パスワードによる認証が受理認証となった場合にセキュリティモードに移行し、当該セキュリティモードの適用対象となる装着中のメモリーカードを別のメモリーカードとして仮想認識させるための仮想交換情報をPC3(ホスト装置)に送信する。つまり、実際にはメモリーカードは交換されていないが、認証受理によりアクセス許可することとなったセキュリティエリアを、仮想的に独立した新しいメモリーカードとしてPC3に認識させるために、メディア交換通知を発行し、これをユニット・アテンション・コンディションに反映させる。PC3側ではファイルシステムにより、このメディア交換通知を取得する。
【0133】
この場合、セキュリティセクタ数も合わせて、仮想的な別カード型記憶メディアのセクタ数としてPC3(ホスト装置)に通知する。PC3は、実際には同じメモリーカードのセキュリティーセクタエリアを、交換された新しいメモリーカードの実データ記憶エリアであると認識する。この場合、PC3側では、セキュリティエリアの先頭セクタはその新しい仮想メモリーカードの先頭セクタとして把握されるので、アクセスのためのセクタ番号も、当然、仮想メモリーカードの先頭セクタを基準としたもの(第二のセクタ番号列)が指定されることとなる。
【0134】
しかし、実際には、メモリーカードは交換されておらず、PC3が新カードの実データ記憶エリアの先頭として認識するセクタは、実際のメモリーカードの実データ記憶エリアの先頭からはオフセットセクタ数だけ下がった位置にあるセキュリティーセクタエリアの先頭セクタである。従って、マルチリーダライタ2は、セキュリティモードでは、PC3(ホスト装置)側からのセキュリティエリアへのデータアクセス時において、PC3(ホスト装置)側から受け取るアクセス対象セクタ番号をセキュリティセクタ数でオフセットする形で、セキュリティエリアへの実アクセスセクタ番号(第一のセクタ番号列での表示)に変換し、当該変換後の実アクセスセクタ番号にてセキュリティエリアへのデータアクセスを行なうこととなる。
【0135】
図12は、セキュリティ処理のPC3側の流れを、図13はマルチリーダライタ2側の流れをそれぞれ示すものである。まず、PC3側において、マルチリーダライタ2から、現在のアクセスモードの設定状態の報告にかかるVPD(Vital Product Data)を該マルチリーダライタ2に返信させるためのInquiryコマンド(以下「Inq(1)コマンド」と称する)(その1)がAドライブに対して発行される(S301)。実際には、該Inq(1)コマンドが、OSカーネル73に対して発行され、該OSカーネル73によってAドライブに対して発行されたものとして取り扱われる。上記Inq(1)コマンドが発行されると、OSカーネル73によって、EVPDエリアが“1”に設定されたCDB(1)が生成されて、Aドライブに関連づけられたマルチリーダライタ2にUSBケーブル25を介して送信される。このとき生成されるCDB(1)を表4に示す。すなわち、該CDB(1)のバイト2のエリアにはページコード「0xE0」が記述されている。
【0136】
CDB(1)のバイト4のエリア、すなわちアロケーション長エリアには「0x10」(2進数表記では「00010000」)が格納されている。本来、アロケーション長エリアには、接続されたデバイスに要求するデータ長が格納される。本実施の形態では、マルチリーダライタ2のアロケーション長の最大値が予め固定長(ここでは、仮に15バイトとしているが、これに限定されるものではない)に設定されている。この“15”という数は下位4ビットで表現できる。SCSI規格に従えば、マルチリーダライタ2において設定された上記最大値以上の数値がアロケーション長として指定されたとしても、マルチリーダライタ2のアロケーション長は上記最大値、すなわち、15バイトに設定される。従って、アロケーション長エリアに「0x10」が記述されていても、また、「0x11」以上が記述されていても、アロケーション長は15バイトに設定される。これは、アロケーション長エリアのデータのうち、上位4ビットのいずれかのビットが「1」である場合は、該アロケーション長エリアのデータを(アロケーション長の設定値に兼用された)任意のデータ(付加情報)として自由に使用することができるということを意味する。すなわち、上位4ビットのいずれかのビットを「1」とすることにより、アロケーション長エリアにおける当該ビット以外のビットを、いわば仮想的な空きエリアとして確保することができる。このように確保された仮想的な空きエリアに任意のデータを付加することで、PC3とマルチリーダライタ2との間で、上記付加情報に係るデータ通信が可能となるのである。
【0137】
なお、上記アロケーション長は常に固定長(ここでは15バイト)に設定されるのではなく、CDB(1)のページコードに応じてその最大値が設定されるようにしてもよい。例えば、ページコード「0xE0」の場合は、アロケーション長の最大値が15バイトの固定長に設定され、ページコード「0xE2」の場合は、9バイトの固定長に設定される。かかる設定処理は、CDB(1)を受信したマルチリーダライタ2のCPU27によってページコードの内容が読み取られ、読み取られた内容に応じて、予めROM28に格納しておいた固定長対応リストから該当する固定長を選定することにより行われる。もちろん、15バイトあるいは9バイトと定めた上記アロケーション長は任意に設定することができる。
【0138】
表6及び表7に、上記アロケーション長エリアに確保された空きエリアに付加される通信データを類別して示す。各表のデータ内容欄に示すように、各データには、それ自体が何を意味するものであるのかが定義づけられている。具体的には、データ内容欄の記載を参照されたい。なお、表6はページコードが「0xE0」の場合に送信される通信データであり、表7は、ページコードが「0xE2」の場合に送信される通信データ(主に、パスワードなどの文字情報を付加情報として、PC3側からマルチリーダライタ2側に送信するのに用いる)である。CDB(調査指示データ)において、このページコード(調査指示データ種別識別情報)を変更すれば、アロケーション長最大値や付加情報内容の異なる別の調査指示データフォーマットを生成することができる。
【0139】
【表6】

【0140】
【表7】

【0141】
表6及び表7の左欄には、アロケーション長エリアに記述されるデータそのものが、右欄にはそのデータの意味する内容が示されている。PC3側からマルチリーダライタ2に上記左欄のデータが送信されると、マルチリーダライタ2側では、CPU27により、受信したCDB(1)からアロケーション長エリアのデータが抽出され、抽出されたデータの内容が解析され、そして、解析されたデータの内容に従った処理が実行される。なお、表6及び表7に示す内容は、テーブルリスト化されて、PC3のHDD44又はROM42と、マルチリーダライタ2のROM28に予め格納されている。
【0142】
上記S301でInq(1)コマンドが発行されて生成されたCDB(1)には、表4に示すように、アロケーション長エリアに「0x10」(付加情報)が記述されている。Inq(1)コマンド(その1)は、PC3からマルチリーダライタ2に対して、アクセスモードが何であるか(ノーマルモード又はセキュリティモード(後述))を対応付加情報として要求するコマンドであることがわかる。同様に、「0x11」はPC3からマルチリーダライタ2に対してノーマルモードへの移行を要求するコマンドであり、「0x13」は同じくセキュリティモードへの移行を要求するコマンドである。
【0143】
一方、マルチリーダライタ2側では、送信されたCDB(1)が受信される。その後、CPU27によって、CDB(1)内のアロケーション長エリアのデータ「0x10」(付加情報)が抽出される(付加情報抽出手段)。そして、該データに従って、アクセスモードの設定状態を検出する処理が行われる。
【0144】
メモリーカードの装着発生有無の検出が終了すると、その検出結果がCPU27によってPC3へ返信される。該返信処理は、具体的には、CDB(1)の受信後に生成されてPC3へ返信されるVPDに上記検出結果を書き込むことにより行われる。より詳細には、表8に示すように、バイト7のエリアにアクセスモードの報告情報が書き込まれる。本実施形態では、アクセスモードがノーマルモードの場合は「0x00」が書き込まれ、セキュリティモードの場合は「0x01」が書き込まれる。なお、表8はノーマルモードの場合のVPDを示す。同様に、バイト8のエリアはノーマルモードへの移行完了報告、バイト9のエリアはセキュリティモードへの移行完了報告である(いずれも、「0x00」は未完了、「0x01」は完了)。
【0145】
【表8】

【0146】
続いて、PC3側では、マルチリーダライタ2から返信される表8のVPDを受信して、対応付加情報を取得する。例えば、該VPDのバイト7のエリアを参照することにより、マルチリーダライタ2側に設定されているアクセスモードが判定される。以上説明したごとく、PC3側でのInq(1)コマンドの発行及び付加情報が書き込まれたCDB(1)データのマルチリーダライタ2(周辺装置)への送信と、マルチリーダライタ2(周辺装置)側からの該付加データに応答するための対応付加データ(上記の場合、選択確定操作の有無を報告する情報)を書き込んだVPDを返す特有の一連の通信処理を、Inq(1)/VPD付加情報通信と称する。
【0147】
PC3側では、図14Aに示すようなダイアログボックスが表示され、取得した現在のアクセスモードがエリア501に表示される。また、モード選択のためのソフトボタン503,504も表示され、これをマウス等でクリックすることによりアクセスモードの選択入力がなされる。この入力を図12のS302で行なう。ノーマルモードが選択されると、PC3は、図14Dに示すような確認用のダイアログボックス507を表示し、確定ボタン510がクリックされると、モード設定処理に移行する。すなわち、S303に進み、新たなInq(1)コマンド(その2)が発行され、対応するCDB(1)に書き込んだ付加情報によりマルチリーダライタ2へノーマルモードへの移行を要求する。そして、これを受け取ったマルチリーダライタ2はノーマルモードを設定し、設定完了を示す対応付加情報を書き込んだVPDを返す。PC3は、これを受け取り、S304に進んで、図14Aのダイアログボックス500のエリア501表示状態を対応するモードのものに更新する。
【0148】
一方、S302でセキュリティモードを選択する場合、ユーザーはキーボード57等から図14Aのダイアログボックス500のパスワード入力ウィンドウ502にパスワードを入力し、セキュリティボタン504を押す。すると、新たなInq(1)コマンド(その2)が発行され、対応するCDB(1)にパスワードを付加情報として書き込んでマルチリーダライタ2へ送信する。このパスワードは文字列データとしてマルチリーダライタ2へ送信する必要がある。文字列データは、表示対象となる文字に一対一に対応したビットコードデータ(文字コード)であり、JISコード、シフトJISコードあるいはASCIIコードなどの既製のコードをそのまま使用してもよいし、独自のコードを使用してもよい。ただし、周辺装置側の表示用文字データテーブル(例えばROM28内:表示用データ自体は、ビットマップ型あるいはアウトライン型のフォントデータである)が上記既製コードを用いて作成されたものである場合、上記独自コードとの対応関係を示すテーブルを別途周辺装置側にて用意しておき(例えばROM28内)、このテーブルを参照して該独自コードを上記既製コードに変換してから表示に用いるとよい。
【0149】
文字列データの送信処理は、以下の処理手順に従って行われる。まず、Inq(1)コマンドが発行される。このInq(1)コマンドが発行されることにより生成されたCDB(1)データはマルチリーダライタ2へ送信される。なお、Inq(1)コマンドの発行によりマルチリーダライタ2からVPDが返信されてくるが、文字列送信の場合の該VPDには返信データは付加されないように決めてある。それ故、ここではVPDの返信処理の説明を省略する。
【0150】
より詳細には、ページコードとしてバイト2のエリアに「0xE2」が、アロケーション長エリアに「0x18」が記述されたCDB(1)データが生成される。従って、該ステップで発行されるInq(1)コマンドは、表7に基づけば、「0x90」で示される文字列番号に対応する文字列記憶エリア(RAM29内の記憶エリア)の先頭にポインタをセットさせるための要求命令である。もちろん、この要求命令はマルチリーダライタ2に対してなされるものである。なお、上記ポインタとは、切り出された文字を格納する位置を指示する指標を意味する。
【0151】
続いて、PC3のRAM43に格納されたファイルリスト表示用の文字列データの先頭から順番に文字が切り出される。その後、切り出された文字が終端文字であるかどうかがCPU41によって判定される。かかる処理は、切り出された文字を示すデータが「0x00」であるかどうかによって判定される。「0x00」は文字を示すものではないため、このステップで、「0x00」であると判定されると、終端文字であると判定される。切り出された文字が終端文字であると判定されると、処理は次のステップに進む。一方、切り出された文字が終端文字でないと判定されると、Inq(1)コマンドが発行され、ページコードとして「0xE2」が、アロケーション長エリアに、前記切り出された文字データの記述されたCDB(1)データが生成される。そして、生成されたCDB(1)データがマルチリーダライタ2へ送信される。
【0152】
CDB(1)データの送信後は、文字データの切り出し位置が次の文字に設定され、その後に、上記の処理が繰り返し実行される。その後、新たなInq(1)コマンドが発行されて、ページコードとしてバイト2のエリアに「0xE2」が、アロケーション長エリアに「0x17」が記述されたCDB(1)データが生成される。これは、現在の文字列記憶エリアにおいて、最後に格納された文字(即ち末文字)が格納されたエリア以降のすべてのビットエリアを「0x00」で埋めるための要求命令である。換言すれば、マルチリーダライタ2に送信され、RAM29に格納されたデータの終端以降に「0x00」を付け加えて、格納されたデータを所定長さ(例えば128ビット)のビットデータに揃えさせるための要求命令である。以上で、文字列(パスワード)の送信処理が完了する。
【0153】
送信された文字列データはマルチリーダライタ2側で受信され、該受信されたデータがRAM29に格納される。実際には、上記ステップで切り出された文字が一つずつ送信される毎に、その文字データが順次RAM29に格納される。
【0154】
図12に戻り、S305では、再度、PC3側でInq(1)コマンドが発行され、これにより生成されたCDB(1)データがマルチリーダライタ2へ送信される。このとき生成されるCDB(1)データを表9に示す。表9に示すように、バイト2のエリアに「0xE0」が、アロケーション長エリアに「0x12」が記述されているため、表6に基づけば、このとき発行されたInq(1)コマンドは、受信したパスワードに基づく認証処理実行命令(つまり、セキュリティモードへの移行指令)であることが理解できる。
【0155】
【表9】

【0156】
マルチリーダライタ2側では、既に説明した方式により認証処理がなされ、受理認証であればアクセスモードをセキュリティモードに設定し、その結果をVPDに書き込んでPC3に返す。PC3は、これを受け取り、S307に進んで、図14Aのダイアログボックス500のエリア501表示状態を対応するモードのものに更新する。他方、棄却認証の結果が返ってきた場合は、図14Cのようなセキュリティモードへの移行失敗を報知するダイアログボックス506を表示する。
【0157】
図13は、図12に対応する、マルチリーダライタ2側でのSCSIプロトコルに従う状態遷移タスクの流れを示すものである。S1401ではアクセスモードをノーマルモードに設定し、メモリーカードの交換状態に遷移する。S1402では、PC3側からセキュリティモードへの移行指示があるかどうかを確認する。YesであればS1403でメモリーカードの装着があるかどうかを確認し、装着がなければS1404に進んでPC3にメモリーカードなしを通知し、S1402に戻る。また、メモリーカードが装着されていればS1405に進み、そのメモリーカードにセキュリティエリアがあるかどうかを判定する。セキュリティエリアなしであればS1406に進んでPC3にセキュリティエリアなしを通知し、S1402に戻る。
【0158】
セキュリティエリアがあるかどうかの判定は、マクロセキュリティファイル記憶位置情報(マクロセキュリティファイルの占有セクタ番号:連続セクタなので、特定セクタ(例えば、先頭セクタ)だけを特定できるものであってもよい)の有無により判定する。前述のごとく、この場合は次の3つの方法のいずれかにより実行できる。
(1)図17のマスターブートレコードセクタ302においてマスターブートプログラムの格納用として確保された空き領域302Aに、マクロセキュリティファイルの占有セクタ番号(マクロセキュリティファイル記憶位置情報)を書き込んでおき、上記の付加情報通信機構により、その情報をPC2に転送する。PC2では、これを取得して、マクロセキュリティファイルの先頭位置(つまり、チェックセクタ位置)を把握する。
(2)図18のブートセクタ304においてブートプログラムの格納用として確保された空き領域304Aに、マクロセキュリティファイルの占有セクタ番号を書き込んでおき、上記の付加情報通信機構により、その情報をPC2に転送する。PC2では、これを取得して、マクロセキュリティファイルの先頭位置(チェックセクタ位置)を把握する。
【0159】
(3)マクロセキュリティファイルの占有セクタ番号を、該マクロセキュリティファイルに固有に定められた固定ファイル名と対応付けた形で、ファイルアロケーションテーブル305に書き込んでおく。この場合は、OS上のファイルシステムからマクロセキュリティファイルのファイル名を読み込み、ファイルアロケーションテーブル305内でそのファイル名と対応付けて記憶されているセクタ番号(の先頭のもの)を、チェックセクタ位置として取得する。マクロセキュリティファイルのファイル名は固定的に定めてもよいし、ユーザーがカスタマイズできるようにしてもよい。
【0160】
他方、セキュリティエリアがあればS1407に進み、PC3から受信したパスワードをキーとして前述のチェックセクタの復号化を行い、S1408でこれを照合用元データと照合して、照合不一致であれば棄却認証とし、S1409に進んでPC3にパスワード間違いを通知し、S1402に戻る。他方、照合一致であれば受理認証とし、S1410に進んでPC3にパスワード正解を通知し、S1411でセキュリティモードを設定するとともに、PC3に前述の仮想新カードとして認識させるためのメモリーカードの交換状態に遷移する。S1412では、PC3からのノーマルモードへの移行指示があるかどうかを確認し、移行指示があればS1401へ返る。移行指示がない場合はS1413へ進み、メモリーカードが抜かれたかどうかの確認を行なう。抜かれていなければS1412へ返る。また、抜かれていればS1401へ返る。
【0161】
図15において、セキュリティエリア400は、ヘッダエリア401と仮想メディアエリア420との全体が、いずれも、セクタ単位で暗号化ないし復号化がなされる(つまり、隣接する複数のセクタにまたがった暗号化はなされない)。従って、暗号化されたデータの復号化も個々のセクタ毎に行なうことができる。この場合、セキュリティエリア400(ヘッダエリア401)の先頭のチェックセクタも暗号化が施されているが、前述のごとく、このチェックセクタだけは、マクロセキュリティファイル記憶位置情報(マクロセキュリティファイルの占有セクタ番号)から特定可能であり、ここからセキュリティエリア400は連続セクタとして形成されているので、チェックセクタの復号化と照合認証が無時に終了すれば、以下は、以降のセクタを順次復号化してゆけばよい。そして、セキュリティエリア400内のファイルアロケーションテーブル405のセクタの復号化が終了すれば、その内容をPC2側で解析することにより個々のセキュリティファイルのセクタ番号を特定でき、読出し対象となるファイルのセクタ(ただし、セクタ番号は前述のごとくオフセット変換する)を暗号化状態のまま読み出しつつ順次復号化してPC3に転送する。また、書込時には、各セクタに書き込むデータを、復号化状態のままPC3からリーダライタ2へ転送し、順次暗号化して対応するセクタ(ただし、セクタ番号は前述のごとくオフセット変換する)に書き込む。
【0162】
なお、上述した実施形態は本発明の一例に過ぎず、本発明の要旨を変更しない範囲で、実施形態を適宜変更することができる。例えば、カード型記憶メディアに代え、セキュリティ用ハードウェアロジックは搭載しないが記憶制御装置は一体的に組み込まれた着脱式記憶メディア(例えばUSBメモリ)を用いることもできる。
【図面の簡単な説明】
【0163】
【図1A】本発明に適用されるマルチリーダライタの一例を正面側から見た斜視図。
【図1B】同じく背面側から見た斜視図。
【図2】マルチリーダライタの電気的構成の一例を示すブロック図。
【図3】マルチリーダライタのSCSIコマンド・データ・ステータス送受信部の説明図。
【図4】コントロールレジスタの説明図。
【図5】ステータスレジスタの説明図。
【図6】本発明の通信システムに適用されるPCの概略構成を示すブロック図。
【図7】PC上で動作するOSと、該OS上で動作するアプリケーションを説明するための概念図。
【図8】マルチリーダライタのSCSIコマンド・データ・ステータス送受信部が行なう処理の流れを表すフローチャート。
【図9】本発明の通信システムにおいて実行されるデータ通信処理の処理の流れを表すフローチャート。
【図10】図9のドライブ割当処理の流れを表すフローチャート。
【図11】図9のドライブ設定処理の流れを表すフローチャート。
【図12】図9のセキュリティ処理のPC側の流れを表すフローチャート。
【図13】図12に対応するマルチリーダライタ側の状態遷移タスクの流れを示すフローチャート。
【図14A】PC側のダイアログボックスの第一表示例を示す図。
【図14B】PC側のダイアログボックスの第二表示例を示す図。
【図14C】PC側のダイアログボックスの第三表示例を示す図。
【図14D】PC側のダイアログボックスの第四表示例を示す図。
【図15】メモリーカードのセクタ構造の概念図。
【図16】図15の要部説明図。
【図17】マスターブートレコードセクタの概念図。
【図18】イニシャルプログラムローダー格納用セクタの概念図。
【符号の説明】
【0164】
1 通信システム
2 マルチリーダライタ(周辺装置)
3 PC(ホスト装置)
11 第1メモリーカード(カード型記憶メディア)
12 第2メモリーカード(カード型記憶メディア)
13 第3メモリーカード(カード型記憶メディア)
14 第4メモリーカード(カード型記憶メディア)
21 液晶ディスプレイ(表示部)
27 CPU(調査報告データ生成手段、トリガ発生報告情報書き込み手段、調査報告データ送信手段、交換通知情報保持手段、交換通知情報保持制御手段、付加情報抽出手段、認証手段、認証通信手段、アクセスモード設定手段、アクセスモード設定制御手段、アクセスモード報告通信手段、ノーマルモード設定完了報告情報返信手段、ファイル管理情報変換手段、セキュリティエリアアクセス手段、セクタ数通知手段、セクタ番号変換手段)
41 CPU(報告情報受領手段、調査指示データ作成手段、調査指示データ送信手段、セキュリティ参照情報送信手段、認証通信手段、認証結果反映情報出力手段、ノーマルモード移行指示情報送信手段)
51〜54 入出力制御部
56 ディスプレイ(認証結果反映情報出力手段、アクセスモード種別表示手段)

【特許請求の範囲】
【請求項1】
ホスト装置と、該ホスト装置に接続される該ホスト装置の通信対象となる周辺装置であって、着脱式記憶メディアがスロットに着脱可能に装着され、前記周辺装置との間の通信イベントに基づいて該着脱式記憶メディアに対してデータアクセスを行なう記憶装置として構成された周辺装置とを備え、
前記着脱式記憶メディアは、
データの読出し及び書き込みに係るデータアクセスが可能とされた不揮発性メモリからなり、ファイル単位による記憶データの読出し、書込み及び消去が可能とされた実データ記憶エリアと、該実データ記憶エリア内における各データファイルの占有エリアと、データファイルに占有されない空きエリアと、それらエリアの前記実データ記憶エリア内での位置を特定可能に記述されたファイル管理情報を記憶する実ファイル管理情報記憶エリアとが、予め定められたメディアフォーマットに従い形成された実メディアエリアを有するとともに、前記実データ記憶エリアに、記憶内容が全て暗号化された状態で書きまれるセキュリティエリアと、前記暗号化がなされないノーマルエリアとを分割形成したものであり、
前記ノーマルエリアに非暗号化状態で格納されるデータファイルをノーマルファイル、前記セキュリティエリアに暗号化状態で格納されるデータファイルをセキュリティファイルとして、
前記実ファイル管理情報記憶エリアには、前記ノーマルエリアにおける前記ノーマルファイルの前記占有エリアの位置と、該ノーマルファイルに占有されない前記空きエリアの位置とを特定するとともに、前記実メディアエリアの先頭を基準とする第一のエリア座標系に従って記述されたノーマルファイル管理情報が記憶されるようになっており、
前記セキュリティファイルを格納するとともに、ファイル単位による記憶データの読出し、書込み及び消去が可能とされた仮想データ記憶エリアと、該仮想データ記憶エリア内における各セキュリティファイルの占有エリア位置と、該セキュリティファイルに占有されない空きエリア位置とを少なくとも特定可能に記述されたファイル管理情報を記憶する仮想ファイル管理情報記憶エリアとが、前記実データ記憶エリアと前記実ファイル管理情報記憶エリアとの形成形態を規定する前記メディアフォーマットと同一のフォーマットに従い形成された仮想メディアエリアが前記セキュリティエリアに形成され、
前記仮想ファイル管理情報記憶エリアは、前記仮想メディアエリアを独立した別の着脱式記憶メディアとみなして、前記仮想データ記憶エリア内にて前記セキュリティファイルの占有エリア及び空きエリアを位置特定するためのファイル管理情報が、前記仮想メディアエリアの先頭を基準とする第二のエリア座標系に従って記述されるようになっており、
前記セキュリティエリアの先頭には、前記仮想メディアエリアとは別に、前記第一のエリア座標系に従って記述されたファイル管理情報を前記第二のエリア座標系でのファイル管理情報に変換するためのエリア座標変換情報と、ヘッダエリア内の固定領域に書き込まれ前記セキュリティエリアへのアクセスを認証するための認証照合情報とを格納するためのヘッダエリアが形成され、
前記セキュリティファイルを含む前記セキュリティエリア内の情報を一括して暗号化することにより、前記実データ記憶エリア上にて仮想単一ファイルとして扱われるマクロセキュリティファイルが形成されるようになっており、該マクロセキュリティファイルの前記実データ記憶エリア上での記憶位置を特定するマクロセキュリティファイル記憶位置情報が前記実データ記憶エリア外に書き込まれるものであり、さらに、
前記周辺装置に装着された前記着脱式記憶メディアへのアクセスモードを、前記ノーマルエリアにのみアクセスが可能なノーマルモードと、前記セキュリティエリアにアクセスが可能なセキュリティモードとのいずれかに設定するアクセスモード設定手段と、
前記着脱式記憶メディアから前記マクロセキュリティファイル記憶位置情報を読み出すことにより、該着脱式記憶メディア内のマクロセキュリティファイルの位置を特定し、前記ヘッダエリアの先頭に位置する前記認証照合情報を読み出し、該認証照合情報に基づいて、前記着脱式記憶メディアへの前記ホスト装置側からのアクセス権を認証する認証手段と、
前記認証手段による認証結果が受理認証であった場合にのみ、前記アクセスモード設定手段に対し前記アクセスモードを前記セキュリティモードに設定させるアクセスモード設定制御手段と、
前記セキュリティモードに移行した場合に、当該セキュリティモードの適用対象となる装着中の着脱式記憶メディアを別の着脱式記憶メディアとして仮想認識させるためのメディア仮想交換情報を前記周辺装置から前記ホスト装置に送信するメディア仮想交換情報送信手段と、
前記メディア仮想交換情報の送信後の、前記ホスト装置側からの前記セキュリティエリアへのデータアクセス時において、前記アクセス対象となるセキュリティファイルの前記第二のエリア座標系にて記述された前記仮想ファイル管理情報を取得し、前記エリア座標変換情報を用いて前記第一のエリア座標系にて記述されたファイル管理情報に変換するファイル管理情報変換手段と、
当該変換後のファイル管理情報を用いて前記セキュリティエリアへのデータアクセスを、ファイル書込時には当該ファイルを暗号化しつつ書き込み、ファイル読出し時には当該ファイルを復号化しつつ読み出すセキュリティエリアアクセス手段と、
を有することを特徴とする通信システム。
【請求項2】
前記着脱式記憶メディア内において前記ヘッダエリアには、予め定められた照合用元データを、マスター暗号化キーで暗号化した状態で前記認証照合情報として格納する認証照合情報格納領域が設けられ、前記周辺装置には、前記照合用元データをセキュリティーマスター情報として記憶するセキュリティーマスター情報記憶手段が設けられるとともに、前記認証手段は、前記ホスト装置側からセキュリティ参照情報として復号化キーを兼ねる前記暗号化キーを受信し、該暗号化キーにより前記認証照合情報を復号化した情報を照合対象情報として、該照合対象情報が前記セキュリティーマスター情報と照合一致した場合に受理認証とし、照合不一致の場合に棄却認証とするものである請求項1記載の通信システム。
【請求項3】
前記着脱式記憶メディアは、前記実メディアエリアが一定サイズの複数のセクタに区分され、データファイルの読出し、書込み及び消去が該セクタ単位でなされるとともに、前記ファイルの占有エリアと空きエリアとの位置を特定するためのエリア座標系が一連の前記セクタを個々に特定するために連続番号で各前記セクタに付与されたセクタ番号を用いて規定され、
前記セキュリティエリアは、前記実データ記憶エリア内にて前記セクタ番号の連続した連続エリアとして形成され、
前記実ファイル管理情報記憶エリアにおいて前記ノーマルファイル管理情報は、前記ノーマルファイルの占有セクタ番号と、該ノーマルファイルに占有されない空きセクタ番号とを、前記実メディアエリアの先頭セクタ番号を基準として定めた前記第一のエリア座標系として第一のセクタ番号列を用いて記述され、
前記仮想ファイル管理情報記憶エリアにおいて前記ファイル管理情報は、前記セキュリティファイルの占有セクタ番号と、該セキュリティファイルに占有されない空きセクタ番号とを、前記仮想メディアエリアの先頭セクタ番号を基準として定めた前記第二のエリア座標系として第二のセクタ番号列を用いて記述したものであり、
前記エリア座標変換情報は、前記実データ記憶エリアの先頭セクタ位置から前記仮想データ記憶エリアの先頭セクタ位置に至るオフセットセクタ数を特定可能なオフセット情報を含むものであり、
前記メディア仮想交換情報の送信後に、前記セキュリティエリアの前記ヘッダを除いた部分のセキュリティセクタ数を、仮想的な前記別の着脱式記憶メディアのセクタ数として前記ホスト装置に通知するセクタ数通知手段と、
前記ホスト装置側からの前記セキュリティエリアへのデータアクセス時において、前記ホスト装置側から受け取る前記第二のセクタ番号列を用いて記述されたアクセス対象ファイルのセクタ番号を、前記オフセット情報を用いて前記第一のセクタ番号列を用いて記述された前記アクセス対象ファイルのセクタ番号に変換する前記ファイル管理情報変換手段としてのセクタ番号変換手段とを備え、
前記セキュリティエリアアクセス手段は、当該変換後のセクタ番号にて前記セキュリティエリアへのデータアクセスを行なう請求項2記載の通信システム。
【請求項4】
前記着脱式記憶メディアは、
前記実ファイル管理情報記憶エリアが前記実データ記憶エリアの先頭側に隣接するセクタエリアに設けられており、
前記仮想メディアエリア内において、前記仮想ファイル管理情報記憶エリアが前記仮想データ記憶エリアの先頭側に隣接するセクタエリアに設けられており、
前記セキュリティエリア内にて、前記ヘッダエリアが前記仮想メディアエリアの先頭側に隣接するセクタエリアに設けられたものである請求項3記載の通信システム。
【請求項5】
前記着脱式記憶メディアは、前記認証照合情報が、暗号化キーで予め定められた情報を暗号化した照合情報であって当該暗号化キー自身には照合適合しない情報として、前記ヘッダエリアの先頭に一定バイト数にて記憶されるものである請求項4記載の通信システム。
【請求項6】
前記着脱式記憶メディアの前記ヘッダエリアには、前記仮想データ記憶エリアのセクタ数を特定するための仮想データ記憶エリアセクタ数情報が記憶されている請求項4又は請求項5に記載の通信システム。
【請求項7】
前記着脱式記憶メディアの前記ノーマルエリアが前記セキュリティエリアの前後に分割した形で形成され、前記仮想データ記憶エリアセクタ数情報に基づいて前記セキュリティエリアの後に続く前記ノーマルエリアが特定可能とされてなる請求項6記載の通信システム。
【請求項8】
前記着脱式記憶メディアの前記メディアフォーマットは、前記実データ記憶エリア及び前記実ファイル管理情報記憶エリアと該実ファイル管理情報記憶エリアの先頭側に隣接したブートセクタとがメディア内に1つのみのパーティションエリアを構成する形で、ANSIに準拠したハードディスクフォーマットをエミュレーションする形で定められ、前記ブートセクタは、当該パーティションエリアをブートディスクとして使用するためのイニシャルプログラムローダーの格納セクタとして確保されるとともに、前記実ファイル管理情報記憶エリアには、その先頭側から、前記ノーマルファイルの占有セクタ番号をファイル名と対応付けて記憶するファイルアロケーションテーブルの格納セクタと、前記ノーマルファイルのルートディレクトリの格納セクタとが確保され、さらに、
前記実メディアエリアの先頭セクタが、前記パーティションエリアにて前記イニシャルプログラムローダーの有無を検索し、これを起動するためのマスターブートプログラムと、メディア内のパーティション情報を記憶したパーティションテーブルとを格納するためのマスターブートレコードセクタとして確保され、
前記マクロセキュリティファイル記憶位置情報として該マクロセキュリティファイルの占有セクタ番号が、前記マスターブートレコードセクタ、前記ブートセクタ及び前記ファイルアロケーションテーブルのいずれかに書き込まれる請求項3ないし請求項7のいずれか1項に記載の通信システム。
【請求項9】
前記着脱式記憶メディアの前記パーティションエリアを前記ブートディスクとして使用しない前提にて、前記マスターブートレコードセクタにおいて前記マスターブートプログラムの格納用として確保された空き領域に、前記マクロセキュリティファイルの占有セクタ番号が書き込まれる請求項8記載の通信システム。
【請求項10】
前記着脱式記憶メディアの前記パーティションエリアを前記ブートディスクとして使用しない前提にて、前記ブートセクタにおいて前記イニシャルプログラムローダーの格納用として確保された空き領域に、前記マクロセキュリティファイルの占有セクタ番号が書き込まれる請求項8記載の通信システム。
【請求項11】
前記着脱式記憶メディアの前記マクロセキュリティファイルの占有セクタ番号が、該マクロセキュリティファイルに固有に定められた固定ファイル名と対応付けた形で、前記ファイルアロケーションテーブルに書き込まれる請求項8記載の通信システム。
【請求項12】
通信イベントの起動決定権を有した前記ホスト装置と、該ホスト装置に接続される該ホスト装置の通信対象となる前記周辺装置とを含み、前記通信イベントを実行命令するためのコマンドを前記ホスト装置から前記周辺装置に向けて順次発行する一方、発行されたコマンドを受領した前記周辺装置が当該コマンドに対応するデータ処理を逐次実行し、その実行結果に応じた応答情報を前記ホスト装置側に返信するようになっており、かつ、前記コマンドの発行方向が前記ホスト装置側から前記周辺装置側への一方向に規制された主通信プロトコルを有する前記通信システムとして構成され、
前記ホスト装置側に設けられ、前記周辺装置に対し該周辺装置自身に対する調査報告処理を要求する調査要求コマンドを発行するとともに、該調査要求コマンドの発行に伴い、調査報告指示内容を示す予め定められたフレームフォーマットを有するとともに当該フレームの予め定められたフィールドに付加情報が書き込まれた調査指示データを作成する調査指示データ作成手段と、
作成された前記調査指示データを前記周辺装置に送信する調査指示データ送信手段と、
前記周辺装置に設けられ、前記調査指示データを受けて、予め定められたフレームフォーマットを有する調査報告データを生成する調査報告データ生成手段と、
前記周辺装置に設けられ、前記調査報告データを応答情報として前記ホスト装置に送信する調査報告データ送信手段と、
前記周辺装置側に設けられ、受信した該調査指示データの前記予め定められたフィールドから前記付加情報を抽出する付加情報抽出手段とを有する付加情報通信機構が構築され、
該付加情報通信機構により実現される機能手段として、
前記ホスト装置側で取得されるセキュリティ参照情報を、前記調査指示データ上の前記付加情報として前記周辺装置に送信するセキュリティ参照情報送信手段が設けられ、
前記周辺装置には、着脱式記憶メディアに書き込まれた認証照合情報と、前記ホスト装置から受信するセキュリティ参照情報とを用いて、前記着脱式記憶メディアへの前記ホスト装置側からのアクセス権を認証する前記認証手段が設けられている請求項1ないし請求項11のいずれか1項に記載の通信システム。
【請求項13】
前記周辺装置と前記ホスト装置とは、前記ホスト装置側からの前記周辺装置のポーリングは可能であって、該周辺装置側からの前記ホスト装置の逆ポーリングが不能なシリアル通信機構を介して接続され、前記通信イベントを実行するための前記ホスト装置と前記周辺装置との間における情報転送が、前記ホスト装置が前記周辺装置を前記ポーリングする形式にてシリアル通信により実行されるようになっている請求項12記載の通信システム。
【請求項14】
前記シリアル通信機構はUSBプロトコルに従うものである請求項13記載の通信システム。
【請求項15】
前記付加情報通信機構により実現される機能手段として、
前記認証手段による認証結果を反映した認証結果反映情報を前記周辺装置に要求する認証結果要求情報を前記調査指示データ上の前記付加情報として前記周辺装置に送信するとともに、前記調査報告データの予め定められたフレームに前記ホスト装置側からの前記付加情報に対応する対応付加情報として前記認証結果反映情報が書き込まれた前記調査報告データを、応答情報として前記周辺装置から前記ホスト装置に返信する認証通信手段が設けられ、
前記ホスト装置には、返信された前記認証結果反映情報を出力する認証結果反映情報出力手段が設けられている請求項12ないし請求項14のいずれか1項に記載の通信システム。
【請求項16】
前記付加情報通信機構により実現される機能手段として、
前記周辺装置に設定されている前記アクセスモードの種別を該周辺装置に報告させるためのアクセスモード報告指示情報を、前記調査指示データ上の前記付加情報として前記周辺装置に送信するとともに、前記調査報告データの予め定められたフレームに前記ホスト装置側からの前記付加情報に対応する対応付加情報として前記アクセスモード設定手段が設定中のアクセスモードを報告するアクセスモード報告情報が書き込まれた前記調査報告データを、応答情報として前記周辺装置側から前記ホスト装置に返信するアクセスモード報告通信手段が設けられ、
前記ホスト装置には、前記アクセスモード報告通信手段により取得された前記アクセスモードの種別を表示するアクセスモード種別表示手段が設けられてなる請求項15記載の通信システム。
【請求項17】
前記ホスト装置には、前記アクセスモードとして前記ノーマルモードと前記セキュリティモードとのいずれかを選択するためのアクセスモード選択手段が設けられ、
前記付加情報通信機構により実現される機能手段として、
前記ホスト装置側で前記ノーマルモードが選択された場合に、該ノーマルモードへの移行を前記周辺装置に指示するノーマルモード移行指示情報を、前記調査指示データ上の前記付加情報として前記周辺装置に送信するノーマルモード移行指示情報送信手段と、
該ノーマルモード移行指示情報を受けた前記周辺装置が、前記アクセスモード設定手段が前記アクセスモードを前記ノーマルモードに設定するに伴い、前記調査報告データの予め定められたフレームに前記ホスト装置側からの前記付加情報に対応する対応付加情報として、ノーマルモードへの設定完了を報告する前記ノーマルモード設定完了報告情報を前記調査報告データとして前記ホスト装置に返信するノーマルモード設定完了報告情報返信手段が設けられ、
前記ホスト装置は、前記セキュリティ参照情報の入力手段とを有し、
前記セキュリティ参照情報送信手段は、前記入力された前記セキュリティ参照情報を、前記調査指示データ上の前記付加情報として前記周辺装置に送信する請求項15又は請求項17記載の通信システム。
【請求項18】
前記調査指示データ作成手段は前記調査指示データにおいて、格納するべき主格納情報として前記付加情報以外の情報が格納されるよう前記主通信プロトコルに規定されたフィールドに、前記付加情報を前記主格納情報に兼用させる形で書き込むものである請求項12ないし請求項17のいずれか1項に記載の通信システム。
【請求項19】
前記調査指示データにおいて、前記主通信プロトコルに従い前記着脱式記憶メディアに対するデータの読み出し又は書き込みに係る通信イベントを実行する際に、該読み出し処理又は書き込み処理に割り当てられる当該着脱式記憶メディア上のメモリ領域のアロケーション長情報を格納するためのフィールドがアロケーション長設定フィールドとして確保されてなり、該アロケーション長設定フィールドにおいて前記アロケーション長情報を前記主格納情報とする形で、該アロケーション長情報に兼用される前記付加情報を書き込む請求項18記載の通信システム。
【請求項20】
前記主通信プロトコルにおいて、前記アロケーション長設定フィールドのサイズが一定ビット長に定められるとともに、前記アロケーション長として設定可能な最大値をバイト単位にて表わしたときのビット数を、前記アロケーション長設定フィールドの総ビット数未満に設定し、前記最大値を超える前記アロケーション長が前記アロケーション長設定フィールドに記述された場合には、記述されたアロケーション長値とは無関係に前記最大値を前記アロケーション長の実設定値として定める一方、該最大値を超える冗長なアロケーション長記述値に一義的に対応付ける形で互いに異なる付加情報内容が定義されてなる請求項19記載の通信システム。
【請求項21】
前記周辺装置には、前記着脱式記憶メディアの交換がなされた場合に当該着脱式記憶メディアの交換を前記ホスト装置に通知するための交換通知情報を保持する交換通知情報保持手段と、前記ホスト装置から予め定められた第一種コマンドを受信した場合には、該コマンドの実行後に前記交換通知情報保持手段に保持されている前記交換通知情報をクリアし、同じく前記第一種コマンド以外の第二種コマンドを受信した場合は、該コマンドの実行後においても前記交換通知情報保持手段による前記交換通知情報の保持状態を保留する交換通知情報保持制御手段とを有し、
前記調査要求コマンドとして前記第二種コマンドが使用される請求項12ないし請求項20のいずれか1項に記載の通信システム。
【請求項22】
前記調査要求コマンドが、前記周辺装置に対し該周辺装置自身の構成及び属性を特定する情報である構成/属性特定情報の報告を指示するための、前記第二種コマンドをなす構成/属性調査要求コマンドである請求項21記載の通信システム。
【請求項23】
前記主通信プロトコルがSCSIプロトコルであり、前記調査要求コマンドとしてInquiryコマンドが使用される請求項22記載の通信システム。
【請求項24】
請求項1ないし請求項23のいずれか1項に記載の通信システムを構成する前記周辺装置であって、請求項1ないし請求項11のいずれか1項に記載の着脱式記憶メディアがスロットに着脱可能に装着され、前記通信イベントにより該着脱式記憶メディアに対してデータアクセスを行なう記憶装置として構成されるとともに、
前記着脱式記憶メディアに書き込まれた前記認証照合情報に基づいて、前記着脱式記憶メディアへの前記ホスト装置側からのアクセス権を認証する前記認証手段と、
前記セキュリティエリアに書込対象となるデータファイルを暗号化した状態で書き込む暗号化手段と、
さらに、前記セキュリティエリア内の暗号化された読出し対象となるデータファイルを復号化して読み出す復号化手段と、
が設けられていることを特徴とする周辺装置。
【請求項25】
請求項12ないし請求項23のいずれか1項に記載の通信システムに使用され、
前記調査指示データを受けて、予め定められたフレームフォーマットを有する前記調査報告データを生成する前記調査報告データ生成手段と、
前記調査報告データを前記応答情報として前記ホスト装置に送信する前記調査報告データ送信手段と、
受信した前記調査指示データの前記予め定められたフィールドから前記付加情報を抽出する前記付加情報抽出手段と、
を有する請求項24記載の周辺装置。

【図1A】
image rotate

【図1B】
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

【図14A】
image rotate

【図14B】
image rotate

【図14C】
image rotate

【図14D】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate


【公開番号】特開2008−33450(P2008−33450A)
【公開日】平成20年2月14日(2008.2.14)
【国際特許分類】
【出願番号】特願2006−203812(P2006−203812)
【出願日】平成18年7月26日(2006.7.26)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.Linux
【出願人】(000005267)ブラザー工業株式会社 (13,856)
【Fターム(参考)】