JP2004086336A - 記憶装置及びその制御方法 - Google Patents
記憶装置及びその制御方法 Download PDFInfo
- Publication number
- JP2004086336A JP2004086336A JP2002243843A JP2002243843A JP2004086336A JP 2004086336 A JP2004086336 A JP 2004086336A JP 2002243843 A JP2002243843 A JP 2002243843A JP 2002243843 A JP2002243843 A JP 2002243843A JP 2004086336 A JP2004086336 A JP 2004086336A
- Authority
- JP
- Japan
- Prior art keywords
- authentication
- owner
- user
- information
- disk device
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Landscapes
- Storage Device Security (AREA)
Abstract
【課題】複数ユーザに対応したデータ保全機能を備えながら、複数ユーザからのアクセスを可能とする。
【解決手段】可搬型ディスク装置107は、外部装置としてのホストコンピュータ109よりアクセスが可能なデータを記憶する媒体102を有する記憶装置である。ワンチップマイコン500内のフラッシュメモリ106には、複数のアクセス者の各々を特定する名称とそのパスワードが認証情報として記憶される。可搬型ディスク装置107が装着され、ホストコンピュータ109より認証情報が入力されると、ワンチップマイコン500は、入力された認証情報とフラッシュメモリ106に記憶された認証情報に基づいて認証処理を行なう。そして、認証がとれた場合にはホストコンピュータ106からの記憶媒体へのアクセスが可能な状態へ移行する。
【選択図】 図1
【解決手段】可搬型ディスク装置107は、外部装置としてのホストコンピュータ109よりアクセスが可能なデータを記憶する媒体102を有する記憶装置である。ワンチップマイコン500内のフラッシュメモリ106には、複数のアクセス者の各々を特定する名称とそのパスワードが認証情報として記憶される。可搬型ディスク装置107が装着され、ホストコンピュータ109より認証情報が入力されると、ワンチップマイコン500は、入力された認証情報とフラッシュメモリ106に記憶された認証情報に基づいて認証処理を行なう。そして、認証がとれた場合にはホストコンピュータ106からの記憶媒体へのアクセスが可能な状態へ移行する。
【選択図】 図1
Description
【0001】
【発明の属する技術分野】
本発明は、ディスク装置などの記憶装置に関し、特に、記憶装置に格納されるデータのセキュリティを確保するためのアクセス制御が可能な記憶装置及びそのアクセス制御方法に関する。
【0002】
【従来の技術】
近年、ハードディスク装置は、大容量化、および低価格化が急速に進んでおり、パーソナルコンピュータ(PC)等の補助記憶装置として広く使用されている。また、テレビ番組をハードディスクで録画再生可能なハードディスクレコーダと呼ばれる製品も販売され、ハードディスクの用途は多岐に渡っている。最近では、iVDR(Information Versatile Disk for Removable usage、http://www.ivdr.org/)という、2.5型ハードディスクをカートリッジに収容し、AV機器からPCまで幅広い用途に対応でき、かつ小型軽量、持ち運び可能なリムーバブルハードディスク装置も提案されている。
【0003】
一方、iVDRのようなハードディスク装置は、その簡便性がゆえに、持ち運ぶことによって、置き忘れたり、また盗難にあったりする危険性が増す。よって、ハードディスク装置に保存されているデータのセキュリティを確保するための対策がますます重要となっている。
【0004】
そこで、ハードディスク装置等に代表される記憶装置に保存されているデータのセキュリティを確保するためのアクセス制御方法として、様々な方法が提案されている。
【0005】
例えば、ハードディスク装置の標準インタフェースとして知られているATA(AT Attachment、http://www.t13.org/)インタフェースでも、記憶装置に格納されるデータのセキュリティを確保するためのアクセス制御方法が「Security Mode feature set」として規定されている。ATAでは、User passwordを設定することによりセキュリティシステムが有効となり、User passwordの入力なしにはディスク装置へのアクセスができなくなる。このUser passwordは、1台のディスク装置に対し、1つだけ設定可能である。
【0006】
また、特開平11−296436号公報で開示されているアクセス制御方法、記憶装置及び記憶媒体では、1つあるユーザパスワードに対して複数のユーザネームを設定することにより、1つの記憶媒体に対し、複数ユーザのアクセス制御を行う方法が提案されている。
【0007】
また、特開平8−263383号公報で開示されている情報処理装置では、ディスク装置を複数の領域に分け、それぞれの領域ごとに、1対1で対応する第一のパスワードを設定するとともに、同時に、それぞれの領域ごとに第一のパスワードとは異なる第二のパスワードを対応付けることが出来る。この情報処理装置は、第一のパスワード、あるいは第二のパスワードの何れかの一致により、それぞれのパスワードと対応付けられる当該記憶領域へのアクセスを許可することが可能である。
【0008】
【発明が解決しようとする課題】
しかしながら、ATAで規定されているアクセス制御方法や、特開平11−296436号公報で開示されているアクセス制御方法では、単一のパスワードを使用しているため、ディスク装置の持ち主が他人に対してデータの読み書きを許可する場合にはパスワードを他人に教える必要がある。このため、パスワード効果が薄れ、データのセキュリティ機能が低下するとういう問題がある。
【0009】
また、特開平8−263383号公報で開示されているアクセス制御方法によれば、ディスクの領域ごとに複数のパスワードを設定することにより、ディスクの所有者が他人にパスワードを教えることによるパスワード効果の低減は防止される。しかしながら、複数ユーザのパスワード認証、およびアクセス制御は全てディスク装置側で行われる。このため、当該発明を実施したディスク装置をホストに装着した場合に、同時に複数のユーザからのアクセスを可能とするためには、ホストが、ディスク装置に対してデータの読み書きを行う際に、どのユーザのデータであるかの識別をディスク装置が行うための識別情報が必要となる。そして、このような冗長な識別情報を、ディスク装置とやり取りするコマンドパケットごと、あるいはデータパケットごとに付与して伝送する必要がある。さらには、認証情報を設定したディスク装置を、認証無しで使用したい場合には、全ての設定されている認証情報を消去しなければならないという問題がある。
【0010】
本発明は以上の課題に鑑みてなされたものであり、複数ユーザに対応したデータ保全機能を備えながら、同時に複数ユーザからのアクセスを可能とすることを目的とする。
さらに本発明の他の目的は、権限を有するユーザによって容易にデータ保全機能を有効化/無効化することを可能とすることにある。
【0011】
【課題を解決するための手段】
上記目的を達成するために、本発明の記憶装置は以下の構成を備える。すなわち、
外部装置よりアクセスが可能なデータを記憶する記憶媒体を有する記憶装置であって、
複数のアクセス者の各々を認証するための認証情報を記憶する記憶手段と、
外部装置から入力された認証情報と前記記憶手段に記憶された認証情報とに基づいて認証処理を行なう認証手段と、
前記認証手段によって認証がとれた場合に、前記外部装置による前記記憶媒体へのアクセスが可能な状態へ移行する制御手段と、
前記制御手段によってアクセスが可能な状態へ移行した後に、外部からの認証情報を伴った照会指令に応じて前記記憶手段に当該認証情報が記憶されているか否かを通知する照会手段とを備える。
【0012】
また、上記の目的を達成するための本発明による記憶装置の制御方法は、
外部装置よりアクセスが可能なデータを記憶する記憶媒体を有する記憶装置の制御方法であって、
複数のアクセス者の各々を認証するための認証情報をメモリに記憶する記憶工程と、
外部装置から入力された認証情報と前記メモリに記憶された認証情報とに基づいて認証処理を行なう認証工程と、
前記認証工程によって認証がとれた場合に、前記外部装置による前記記憶媒体へのアクセスが可能な状態へ移行する制御工程と、
前記制御工程によってアクセスが可能な状態へ移行した後に、外部からの認証情報を伴った照会指令に応じて前記メモリに当該認証情報が記憶されているか否かを通知する照会工程とを備える。
【0013】
【発明の実施の形態】
以下、添付の図面を参照して本発明の好適な実施形態を説明する。
【0014】
図1は、本発明の一実施形態の可搬型ディスク装置の構成を示すブロック図である。可搬型ディスク装置107は、ソケット50を介し、ホストコンピュータ109に着脱可能に接続され、ホストコンピュータ109から送出される制御コマンドにより動作する。
【0015】
3700は、ホストコンピュータ109に接続されたモニタであり、3950、3900は、それぞれホストコンピュータ109に接続されたマウス、及びキーボードである。詳細は説明しないが、ホストコンピュータ109上で動作するソフトウェアの制御により、ホストコンピュータ109を使用するユーザは、マウス3950、およびキーボード3900を操作することにより、様々な処理を実行し、また、その実行結果をモニタ3700により確認することが出来る。
【0016】
可搬型ディスク装置107は、機構部100と電子回路部105とを備えている。本実施形態では、この電子回路部105に、ユーザ登録情報を格納する部分を設けている。具体的には、本実施形態では、電源遮断時でも記憶情報を維持するために、並びに、悪意のある第三者に記憶情報を読み出され難くするために、ワンチップマイコン500に内蔵されたフラッシュメモリ106に上記ユーザ登録情報を格納している。
【0017】
機構部100は、データを読み書きするためのヘッド101、ユーザデータを保存するための円盤型磁気媒体102、ヘッドを駆動するためのモータであるボイスコイルモータ103、円盤型磁気媒体102を回転するためのスピンドルモータ104とを備えている。
【0018】
また、電子回路部105は、ワンチップマイコン500と、機構制御部511と、データ処理部502と、ヘッド101とデータ処理部502との間で記録再生するデータの受け渡しおよび受け取りを行う記録/再生回路501と、円盤型磁気媒体102から読み出したデータを一時的に保持するデータバッファ509とを備えている。
【0019】
ワンチップマイコン500は、CPU505と、フラッシュメモリ106と、ROM(不図示)と、RAM(不図示)とを備え、ホストコンピュータ109からのコマンドを解釈し、そのコマンドに基づいて、機構部100の制御などを行う。また、フラッシュメモリ106に格納されたユーザ登録情報に基づくユーザ認証、アクセス制御などの処理も、ワンチップマイコン500によって行う。
【0020】
機構制御部511およびデータ処理部502は、ワンチップマイコン500のシステムバス11に接続されている。機構制御部511とヘッド101とは、制御線12によって接続されている。機構制御部511は、制御線12を介して、機構部100に、機械的な動作を制御する信号を出力する。記録/再生回路501は、データ線13によってヘッド101と接続され、ヘッド101に記録すべきデータ信号を受渡し、ヘッドが再生したデータ信号を受け取る。記録/再生回路501と機構制御部511とは、制御線14によって接続されている。また、データ処理部502とデータバッファ509とはデータバス15によって接続されている。
【0021】
データ処理部502の構成を更に説明する。データ処理部502は、CPUインタフェースコントロール部504と、ホストインタフェースコントロール部510と、ドライブインタフェースコントロール部503と、バッファコントロール部507と、読み出し誤り検出情報(ECC)処理部506とを備えている。CPUインタフェースコントロール部504、ホストインタフェースコントロール部510、および、ドライブインタフェースコントロール部503は、内部制御バス16に接続されている。バッファコントロール部507、ホストインタフェースコントロール部510、ドライブインタフェースコントロール部503、および、ECC処理部506は、データバス17によって接続されている。ホストインタフェースコントロール部510には、内部にコマンドレジスタ521とエラーレジスタ522とが配置され、IDE等のインタフェース108を介してコネクタ508と接続されている。
【0022】
可搬型ディスク装置107とソケット50とは、可搬型ディスク装置107のコネクタ508と、ソケット50のコネクタ51とを嵌合することによって接続される。
【0023】
ソケット50は、可搬型ディスク装置107を接続するためのコネクタ51と、可搬型ディスク装置107がソケット50に装着されたことを検出するためのマイクロスイッチ52とを備えている。コネクタ51はIDE等のインタフェース53を介してホストコンピュータ109と接続されている。
【0024】
マイクロスイッチ52は信号線54によりホストコンピュータ109と接続され、ホストコンピュータ109によるポーリングや、ホストコンピュータ109への割り込み信号の発生によって、ホストコンピュータ109が、可搬型ディスク装置107の装着を検出することが可能な構成となっている。
【0025】
ホストコンピュータ109は、パーソナルコンピュータ(PC)に代表されるコンピュータ装置である。また、図1では、ソケット50がホストコンピュータ109の外部にある構成になっているが、接続形態が同様であれば、ソケット50はホストコンピュータ109の内部にあっても構わない。
【0026】
次に、フラッシュメモリ106に格納する登録情報について説明する。図2はユーザ登録情報のフォーマットを示す図である。登録情報は(a)に示すように、ディスク情報71、オーナー情報72、ゲスト情報73の3種類から構成される。オーナーとゲストとは、共に使用者であるユーザを表すユーザ登録情報であるが、違いについては後述する。
【0027】
ディスク情報71は、図2の(b)に示すように、シリアル番号71a、ディスク名71b、ロックモード71cを含む。シリアル番号71aは、工場出荷時に設定されるもので、当該可搬型ディスク装置107の製造上の通し番号が記憶されている。ディスク名71bは、後述するディスク情報登録コマンドによりユーザによって設定される。ロックモード71cは、当該可搬型ディスク装置107がロック状態にあるか否かを示す情報であり、後述するオーナー名72aとオーナーパスワード72b、またはゲスト名73aとゲストパスワード73bが登録されている時に、ユーザ認証なしで可搬型ディスク装置107のデータ領域にアクセスできる状態を「非ロック状態」、ユーザ認証しなければアクセスできない状態を「ロック状態」として表す。
【0028】
オーナー情報72は、図2の(c)に示すように、オーナー名72a、オーナーパスワード72b、オーナー属性72cを含む。オーナー情報72は、後述するオーナー登録コマンドによりユーザによって設定される。オーナー名72a、オーナーパスワード72bは、可搬型ディスク装置107にアクセスするためのユーザ認証に使用する情報である。オーナー属性72cは、オーナーでユーザ認証した場合の、ユーザの可搬型ディスク装置107に対する属性を設定する。属性には、可搬型ディスク装置107のデータ領域全体に対する、読み書きを許可する属性、読み出しのみを許可する属性等が設定可能である。
【0029】
ゲスト情報73は、図2の(a)に示すように、1からnまで複数の設定が可能である。また、ゲスト情報73は、図2の(d)に示すように、ゲスト名73a、ゲストパスワード73b、ゲスト属性73cを含む。ゲスト名73a、ゲストパスワード73bは、可搬型ディスク装置107にアクセスするためのユーザ認証に使用する情報である。ゲスト属性73cは、ゲストでユーザ認証したユーザの可搬型ディスク装置107に対する属性を設定する。属性には、可搬型ディスク装置107のデータ領域全体に対する、読み書きを許可する属性、書き込みを禁止する属性等が設定可能である。
【0030】
なお、オーナーパスワード72bとゲストパスワード73bは、秘匿性を高めるために、ハッシュ関数と呼ばれる一方向性関数で変換処理を行ったハッシュ値を記憶することも可能である。
【0031】
また、工場出荷時におけるフラッシュメモリ106に格納されている登録情報は、ロックモードは非ロック状態、ディスク名、オーナー情報およびゲスト情報は未登録となっている。
【0032】
ここで、オーナー情報72と、ゲスト情報73の違いについて説明する。オーナー情報72は、可搬型ディスク装置107に対して一つだけ設定可能であり、可搬型ディスク装置107の所有者を意味する情報である。これに対し、ゲスト情報73は、オーナーによって可搬型ディスク装置107へのアクセスを許可されたユーザを示す情報である。登録やユーザ認証に関わる詳細な手順については後述するが、オーナー名72a、オーナーパスワード72bを入力することにより認証(オーナー認証)されたユーザ(オーナー)は、ディスク名71b、ロックモード71c、オーナー名72a、オーナーパスワード72b、オーナー属性72c、ゲスト名73a、ゲストパスワード73b、ゲスト属性73c、の登録や変更が可能である。これに対して、ゲスト名73a、ゲストパスワード73bを入力することにより認証(ゲスト認証)されたユーザ(ゲスト)は、自分自身のゲストパスワード73cの変更ができるのみである。
【0033】
次に、本ディスク装置におけるユーザ認証処理について説明する。図3は、ロックモード71cがロック状態に設定されている場合の、ホストコンピュータとディスク装置間のコマンド等のやり取りを示したタイムチャートである。また、図4は、ロックモード71cが非ロック状態に設定されている場合の、ホストコンピュータとディスク装置間のコマンド等のやり取りを示したタイムチャートである。また、図5は、ユーザ認証に失敗した場合の、ホストコンピュータとディスク装置間のコマンド等のやり取りを示したタイムチャートである。また、図6は、ユーザ認証処理を行う可搬型ディスク装置107内のワンチップマイコン500による処理の流れを示したフローチャートである。更に、図7は可搬型ディスク装置107よりホストコンピュータに出力される登録情報の内容を示す図である。
【0034】
図3において、まず、ユーザがソケット50に可搬型ディスク装置107を挿入すると、マイクロスイッチ52によって可搬型ディスク装置107の挿入が検知され、これがホストコンピュータ109に通知される。可搬型ディスク装置107の挿入を検知したホストコンピュータ109は、可搬型ディスク装置107に対して登録情報の要求を行う情報要求コマンドを発行する。
【0035】
情報要求コマンドを受けた可搬型ディスク装置107は、フラッシュメモリ106に格納されている情報のうち、図7に示す登録情報をホストコンピュータ109に通知する。ホストコンピュータ109は通知された登録情報をユーザに表示する。ユーザはディスク認証のためのユーザ名(オーナー名またはゲスト名)とパスワード(オーナーパスワードまたはゲストパスワード)を入力する。
【0036】
ホストコンピュータ109はユーザによって入力されたユーザ名とパスワードを含むユーザ認証コマンドを、可搬型ディスク装置107に対して発行する。ユーザ認証コマンドを受けた可搬型ディスク装置107は、入力されたユーザ名、パスワードが正しければ、ホストコンピュータ109に正しく認証が行われたことを通知し、可搬型ディスク装置107のデータ領域にアクセス可能な状態に遷移する。ここで、パスワードがハッシュ値で記憶されている場合は、入力されたパスワードをハッシュ値に変換処理してハッシュ値同士での比較を行う。また、省電力のために、正しく認証が行われるまでは、スピンドルモータ104を回転させず、正しく認証が行われてはじめてスピンドルモータ104を回転させることも可能である。
【0037】
次に、図4を用いて、非ロック状態の場合について説明する。ホストコンピュータ109からの情報要求コマンドに対して、可搬型ディスク装置107が登録情報を通知するところまでは図3の場合(ロック状態の場合)と同様である。その後、ロックモード71cが非ロック状態であった場合は、可搬型ディスク装置107はユーザ名とパスワードの入力を待たずに、データ領域にアクセス可能な状態に遷移する。
【0038】
次に、図5を用いて、ロック状態においてユーザ認証に失敗した場合について説明する。ホストコンピュータ109がユーザ認証コマンドを発行するところまでは図3の場合と同様である。入力されたユーザ名、パスワードが正しくなかった場合、可搬型ディスク装置107はホストコンピュータ109に認証が正しく行われなかったことを通知する。この結果、ホストコンピュータ109から可搬型ディスク装置107のデータ領域へのアクセスはできないままとなる。
【0039】
次に、図3から図5のタイムチャートに該当する、可搬型ディスク装置107による処理の流れについて、図9のフローチャートに沿って説明する。ここで、可搬型ディスク装置107の処理とは、すなわち可搬型ディスク装置107内のワンチップマイコン500によってなされる処理のことである。
【0040】
可搬型ディスク装置107は、ホストコンピュータ109からの情報要求コマンドを受信すると(ステップS101)、フラッシュメモリ106に格納されている登録情報のうち、図7に示す情報をホストコンピュータ109に通知する(ステップS102)。図7は、上述したステップS102において、ホストコンピュータ109に出力する登録情報を示している。図7に示すように、ホストコンピュータ109に通知する登録情報は、シリアル番号71a、ディスク名71b、ロックモード71c、オーナー名72a、オーナー属性72c、ゲスト名73a、ゲスト属性73cである。ゲスト情報は1からnまでのゲストの人数分が出力される。
【0041】
次に、フラッシュメモリ106に格納されたロックモード71cを自身で評価し(ステップS103)、ロック状態であればステップS104に、非ロック状態であればステップS106に分岐する。
【0042】
ロック状態であった場合、可搬型ディスク装置107はユーザ認証コマンドの受信を待ち、ユーザ認証コマンドを受信すると(ステップS104)、受信したユーザ名、パスワードと、フラッシュメモリ106に記憶されているユーザ名(オーナー名またはゲスト名)、パスワード(オーナーパスワードまたはゲストパスワード)との照合を行い(ステップS105)、ユーザ名、パスワードが共に合致するユーザが登録されていればステップS106に進み、合致しなかった場合はアクセス可能な状態に遷移することなく処理を終了する。或いは、ステップS104へ戻り、ユーザ認証コマンドを待つようにしてもよい。
【0043】
ステップS106では、図8に示すように、可搬型ディスク装置107がロック状態であるか否かを示すロックモード81、ロック状態であった場合に認証されたユーザがオーナーであったかゲストであったか、またゲストであった場合はどのゲストであったかを示す認証ユーザレベル82、および認証されたユーザの属性83(読み書き可能か、読み出し専用か等のアクセスレベル)をワンチップマイコン500内のRAM領域に一時記憶する。そして、ホストコンピュータ109が、可搬型ディスク装置107のデータ領域にアクセス可能な状態に遷移する。なお、上記のようにして認証されたユーザを以下、認証ユーザと呼ぶ。よって、認証ユーザレベル82には認証ユーザがゲストかオーナーか、ゲストであれば当該認証ユーザのユーザ名が保持され、属性83には認証ユーザのアクセスレベルが保持される。
【0044】
データ領域にアクセス可能な状態に遷移したとき、可搬型ディスク装置107は、自身が非ロック状態であった場合は、読み書き可能なハードディスクとして動作する。また、ロック状態でユーザ認証が行われた場合は、認証ユーザの属性83に基づき、属性が読み書き可能であった場合は読み書き可能なハードディスクとして、読み出しのみであった場合は、データの書き込みコマンドを受け付けないハードディスクとして動作する。このデータ書き込み時の動作を、図9のフローチャートに沿って説明する。
【0045】
ホストコンピュータ109からデータ書き込みコマンドが来ると(ステップS201)、RAMに記憶されたロックモード81を調べ(ステップS202)、非ロック状態であった場合はステップS203に分岐し、ロック状態であった場合はステップS205に分岐する。ステップS203では、受け取った書き込みコマンドに相応する書き込み処理を行い、上位装置すなわちホストコンピュータ109に対して正常に書き込みができた旨を通知し(ステップS204)、処理を終了する。ステップS205では、RAMに一時記憶されている、前記認証ユーザの属性83を調べ、読み書き可能であれば上述のステップS203の書き込み処理に分岐する。一方、読み出しのみであった場合はステップS207へ進み、書き込み処理は行わず、上位装置すなわちホストコンピュータ109に書き込みができなかった旨を通知し、処理を終了する。
【0046】
次に、フラッシュメモリ106に格納しているユーザ情報をホストコンピュータ109から照会する場合の処理について説明する。このユーザ照会処理のコマンドは、図6のフローチャートで説明した認証処理が終了し、アクセス可能になった状態で有効となるコマンドである。
【0047】
図10は、ユーザ照会時に可搬型ディスク装置107が受け取るユーザ照会コマンドの内容を表した図である。91は本コマンドがユーザ照会コマンドであることを表すコマンドコード、92は登録されているか否かを照会したいユーザ名、93は照会したいユーザ(照会したいユーザ名92)のパスワードである。
【0048】
図11のフローチャートを用い、可搬型ディスク装置107におけるユーザ照会動作について説明する。ユーザ照会コマンドを受け取ると(ステップS301)、現在認証している認証ユーザレベル82(図8)を調べる(ステップS302)。この結果、オーナーで無い場合はホストコンピュータ109にエラーを通知し(ステップS303、S307)、本処理を終了する。認証ユーザレベル82がオーナーであった場合は、このユーザ照会コマンドで受け取ったユーザ名92とパスワード94とが、フラッシュメモリ106に格納されているユーザ名(オーナー名またはゲスト名)とパスワード(オーナーパスワードまたはゲストパスワード)に一致するか否かを調べる(ステップS303、S304)。一致するユーザが登録されていれば、そのユーザの属性(アクセスレベル)と正常にコマンドが終了したことをホストコンピュータ109に通知し処理を終了する(ステップS305、S306)。一方、一致するユーザが登録されていなかった場合はエラーを返す(ステップS305、S307)。
【0049】
次に、フラッシュメモリ106に格納する情報の登録、変更に関わる処理について説明する。
【0050】
図12は、新規にオーナー情報72を登録する場合の、ホストコンピュータ109におけるユーザインタフェースの一例を示した図である。オーナー登録に際しては、オーナー登録ウインドウ200において、オーナー名201、オーナーパスワード202、オーナー属性203を入力し、OKボタン204をクリックすることにより、可搬型ディスク装置107に対してこれらの情報を伴ったオーナー登録コマンドが送られる。ここで属性203は、RW(Read/Write、読み書き可能)とRO(Read Only、読み出しのみ可能)の何れかを設定する。なお、キャンセルボタン205がクリックされると、オーナー登録コマンドが発行されることなく処理が終了する。
【0051】
このオーナー登録の処理の流れを、図13のフローチャートに沿って説明する。なお、この処理は、装着された可搬型ディスクにオーナーが未登録の場合に起動可能である。ユーザによって、オーナー名、オーナーパスワード、オーナー属性が入力され(ステップS401)、オーナー登録コマンドがホストコンピュータ109から可搬型ディスク装置107に送信されると(ステップS402)、オーナー登録コマンドを受信した可搬型ディスク装置107は、既にフラッシュメモリ106にオーナーが登録されているか否かを判別する(ステップS403)。オーナーが登録されていなければステップS402で受信したオーナー登録コマンドに従ってオーナー登録(ステップS404)を行う。一方、既にオーナー登録がされていれば、オーナー登録を行わずに処理を終了する。
【0052】
なお、上記処理ではオーナーの新規登録が行なわれるが、既に登録されているオーナーを変更したい場合は、当該登録されたオーナーによって自分自身の登録を削除してから、上記図12、図13で説明した処理を実行する。なお、現在登録されているオーナーに対してオーナー変更の権限を与えてもよい。この場合、例えば後述のゲスト登録処理におけるインターフェース(図17)に類似のインターフェースを提示し(213、214はそれぞれ新規オーナー名、新規パスワードとなる)、現在のオーナーの認証がとれた場合に限り、新規オーナー名と新規パスワードに変更する。
【0053】
図14は、ゲスト情報73を登録する場合の、ホストコンピュータ109におけるユーザインタフェースの一例を示した図である。ゲスト登録はオーナーにしかできないので、オーナー名とオーナーパスワードの入力も要求される。ゲスト登録ウインドウ210において、オーナー名211、オーナーパスワード212、登録したいゲスト名213、そのゲストパスワード214、ゲスト属性215を入力し、OKボタン216をクリックすることにより、可搬型ディスク装置107に対してこれらの情報を伴ったゲスト登録コマンドが送られる。
【0054】
このゲスト登録の処理の流れを、図15のフローチャートに沿って説明する。ゲスト登録ウインドウ210を用いて、ユーザによって、オーナー名、オーナーパスワード、登録したいゲスト名、ゲストパスワード、ゲスト属性が入力され(ステップS501)、ゲスト登録コマンドがホストコンピュータ109から可搬型ディスク装置107に送信されると(ステップS502)、ゲスト登録コマンドを受信した可搬型ディスク装置107は、フラッシュメモリ106にゲスト名が一致するゲストが既に登録されているか否かを判別する(ステップS503)。登録されていなければ、入力されたオーナー名とオーナーパスワードが、フラッシュメモリ106に格納されているオーナー名、オーナーパスワードと一致しているか否かの判別を行う(ステップS504)。一致していれば、ユーザ入力されたゲスト名、ゲストパスワード、ゲスト属性をフラッシュメモリ106に格納する(ステップS505)。ステップS503においてゲストが登録済みであった場合と、ステップS504においてオーナー名またはオーナーパスワードの何れかが不一致であった場合は、ゲスト登録を行わずに処理を終了する。
なお、オーナーは登録されているゲストを消去する権限も有する。登録ゲストの消去では、ゲスト消去用のウインドウ(図14と類似のウインドウ)を提示し、消去すべきゲスト名(ゲストのパスワードは不要)をゲスト消去コマンドとともに可搬型ディスクに送信する。可搬型ディスクは、オーナーの認証を行なった後に、ゲスト名で特定される認証情報をフラッシュメモリ106より消去する。但し、ホストコンピュータ109内のアクセス許可管理テーブル(後述)に消去されたゲストが登録されている可能性があるので、これをフラッシュメモリ106内の認証情報と同期させるべく、後述のアクセス許可管理テーブルを初期化する処理(図22)を行なう。
【0055】
図16は、ディスク情報71を登録する場合の、ホストコンピュータ109におけるユーザインタフェースの一例を示した図である。ディスク情報登録はオーナーにしかできないため、オーナー名、オーナーパスワードの入力が要求される。ディスク情報登録ウインドウ220において、オーナー名221、オーナーパスワード222、ディスク名223、ロックモード224を入力し、OKボタン225をクリックすることにより、可搬型ディスク装置107に対してこれらの情報を伴ったディスク情報登録コマンドが送られる。なお、本実施形態では、ディスク名とロックモードのうち変更したいものだけを選択できるチェックボックス223a,224aを設け、ディスク情報登録コマンドにより登録したいものだけを送信できるようにしている。
【0056】
このディスク情報登録の処理の流れを、図17のフローチャートに沿って説明する。ユーザによって、オーナー名、オーナーパスワード、ディスク名、ロックモードが入力され(ステップS601)、ディスク情報登録コマンドがホストコンピュータ109から可搬型ディスク装置107に送信されると(ステップS602)、ディスク情報登録コマンドを受信した可搬型ディスク装置107は、入力されたオーナー名とオーナーパスワードが、フラッシュメモリ106に格納されているオーナー名、オーナーパスワードと一致しているか否かの判別を行う(ステップS603)。この判別の結果、両者が一致していれば、ユーザ入力されたディスク名、ロックモードをフラッシュメモリ106に格納する(ステップS604)。一方、ステップS603においてオーナー名またはオーナーパスワードの何れかが不一致であった場合は、ディスク情報の登録を行わずに処理を終了する。このディスク情報登録の処理によって、ロックモードの変更が可能となる。
【0057】
以上、可搬型ディスク装置側の動作を主体として処理を説明した。次いで、ホストコンピュータ109の動作を、図面を用いて説明する。
【0058】
図18は、ホストコンピュータ109の構成を示すブロック図である。図18において、点線で囲った部分がホストコンピュータ109を示す。前述の如く、3700、50、52、107は、それぞれ上述したモニタ、ソケット、マイクロスイッチ、および可搬型ディスク装置である。なお、本実施形態では、ソケット50とホストコンピュータ109の間の接続バス53は、IDEインターフェースとして説明する。
【0059】
ホストコンピュータ109は、マザーボード3000、電源ユニット3300、無停電電源装置(UPS)3400、CD−RWドライブ装置3600、および拡張ボードとして構成されたIDEコントローラボード3100を備える。
【0060】
まず、初めに、マザーボード3000の構成について説明する。3001は、CPUであり、ホストコンピュータ109で実行するアプリケーションソフトウェアの処理全般を司る。3002は、所謂ノースブリッジであり、CPU3001のローカルバス3028に接続されており、CPU3001の動作に応じて、マザーボード3000内部で必要な、各種のタイミング信号を発生する。主な機能としては、リフレッシュ、リード/ライト等のメインメモリ制御、内部バスを介しての入出力デバイス制御、グラフィックス専用バスを介してのグラフィックスコントローラ制御、後述のメモリバス3006、グラフィックス専用バス3007、内部バス3008と、CPUローカルバス3028間の動作タイミングの調停等を司る。
【0061】
3003はメインメモリであり、メモリバス3006を介して、前述のノースブリッジ3002に接続されている。リフレッシュ動作、リード/ライト動作等に必要なタイミング信号は、ノースブリッジ3002より供給される。3004は、グラフィックスコントローラであり、グラフィックスコントローラ専用バス(AGPバス)3007を介してノースブリッジ3002に接続されている。
【0062】
グラフィックスコントローラ3004には、CPU3001が実行するプログラムにより生成される、ライン描画、塗りつぶし、BitBlt等の描画コマンド、あるいは、CPU3001が実行するプログラムにより生成されるラスターイメージの画像データ等が、ノースブリッジ3002、およびAGPバス3007を介して供給される。また、グラフィックスコントローラ3004は、内部に、モニタ3700に送出する映像信号に必要な同期信号を発生する同期信号発生器、デジタル信号をモニタに適したアナログ信号に変換する為のA/D変換器等を含んでいる。更に、後述の表示用ラスターイメージを保持するビデオメモリの動作に必要なタイミング信号等も発生する。
【0063】
3005は、グラフィックコントローラに接続されているビデオメモリであり、前述の如く、グラフィックスコントローラ3004により生成されるラスターイメージの画像データを保持している。ビデオメモリ3005の動作に必要な全ての制御信号は、グラフィックスコントローラ3004より供給される。
【0064】
3011はモニタ接続用コネクタであり、グラフィックスコントローラ3004の映像出力ピンに接続される。グラフィックスコントローラ3004で生成される映像出力信号は、このコネクタ3011と接続ケーブルを介してモニタ3700へ送出される。
【0065】
3009は、所謂サウスブリッジであり、内部バス3008を介して、前述のノースブリッジ3002に接続されている。サウスブリッジ3009は、内部に、ハードディスクドライブ、CD−ROMドライブ等を接続する為のIDEコントローラ、Flash ROM、キーボード、およびマウス等の低速デバイス接続用のLPC(Low Pin Count)バスコントローラ、AC97コントローラ、汎用バス規格であるPCIバスコントローラ、汎用ディスクリート信号入出力コントローラ(PIO)等の標準インターフェースを含んでいる。IDEコントローラはIDEバス3010を介し、LPCバスコントローラはLPCバス3016を介し、AC97コントローラはAC97バス3049を介し、PCIバスコントローラはPCIバス3026を介し、それぞれのバスに接続してあるデバイスと接続されている。更に、外部のボタン型リチウム電池3025より電源供給される、小容量のCMOSメモリも内臓しており、システム動作に必要な、各種パラメータを記録しておくことが出来る。
【0066】
PIO入力端子3027には、前述のソケット50に取り付けてあるマイクロスイッチ52の出力信号線54が接続されており、PIO出力端子3047には、後述のスイッチ3046の制御端子が接続されている。
【0067】
3012、および3048は、IDEバス3010に接続されたコネクタであり、それぞれ接続ケーブルを介して、CD−ROMドライブ装置3600、およびハードディスクドライブ装置3610に接続されている。ハードディスクドライブ3610は、ホストコンピュータ109を制御するオペレーティングシステム(例えば、マイクロソフト社のWindows(登録商標)(商標)オペレーティングシステム)、前述のユーザ認証用アプリケーションソフトウェアを含む各種のアプリケーションソフトウェア等を格納する。
【0068】
3013は、AC97コーデックであり、音声ライン入力コネクタ3017、ステレオ音声ライン出力コネクタ3018および3019を介して入出力されるアナログオーディオ信号を、それぞれA/D変換およびD/A変換し、AC97規格に準拠したプロトコルで、AC97バス3049を介して、前述のサウスブリッジ3009内のAC97コントローラと通信を行なう。
【0069】
3014はFLASH ROMであり、LPCバス3016を介してサウスブリッジ3009に接続されている。電源投入直後に、CPU3001が最初に実行する初期化プログラム、マザーボードに搭載されている周辺デバイス等を制御する基本入出力制御プログラム、ハードディスク3610より、オペレーティングシステム(OS)を起動実行する為のイニシャルブートローダ等を含む。
【0070】
LPCバス3016には、Super IOチップ(IC)3015も接続されている。Super IOチップ3015は、キーボード、マウス、RS232Cシリアル、セントロニクスパラレル等の、低速デバイス用コントローラを集積したICである。Super IOチップ3015には、キーボードコネクタ3020、マウスコネクタ3021、シリアルコネクタ3022、パラレルコネクタ3023を介して、対応する周辺デバイスが接続される。なお、図18には示していないが、図1に示したように、キーボードコネクタ3020には、キーボード3900が、マウスコネクタ3021には、マウス3950が接続されている。
【0071】
3034は、USB2.0規格に準拠したホストコントローラである。ホストコントローラ3034はPCIバス3026に接続され、CPU3001によって実行される制御ソフトウェアにより、コネクタ3039、3040、3041、3042、3043を介して接続される様々なUSB規格準拠の周辺装置を制御する。USB規格準拠の周辺装置としては、デジタルカメラ、プリンタ、スキャナ等が挙げられる。
【0072】
3044および3029は、イーサネット(登録商標)コントローラである。イーサネット(登録商標)コントローラ3029は、コネクタ3038を介し、PAN(Personal Area Network)3200に接続されている。イーサネット(登録商標)コントローラ3044は、スイッチ3046、コネクタ3045を介し、WAN(Wide Area Network)3800に接続されている。スイッチ3046は、前述のサウスブリッジ3009内のPIOの出力信号端子3047に接続されており、CPU3001によって実行されるプログラムの働きにより、任意にON/OFFが制御できる。3030、3031、3032、3033はPCIバスに接続された、拡張ボード搭載用のコネクタである。
【0073】
3035は、電源回路であり、電源コネクタ3037を介して供給されるDC電源より、各部の動作に必要なDC電圧を生成し、各部へ供給する。3300は、電源ユニットであり、無停電電源装置3400よリ供給されるAC電源より、DC電圧を生成し、電源回路3035へ供給する。3400は、無停電電源装置であり、内臓バッテリにより、外部AC電源の出力低下時にも、間断なく、電源ユニット3300に電力供給ケーブル3500を介して、AC電源を供給するように動作する。また、外部AC電源の出力低下検知時には、コネクタ3036、信号線3024を介して、CPU3001により実行される電源管理制御プログラムへ、電源異常の発生した事が通知される。信号線3024は、前述のSuper IOチップ3015内部のシリアルコントローラに接続されている。
【0074】
次いで、本実施形態のホストコンピュータ109によって実行される制御プログラムの動作を、図を用いて説明する。
【0075】
図19は、本実施形態によるディスクアクセスの動作を模式的に説明した図である。図19において、イチロー、ジローは、前述の可搬型ディスク装置107に登録されているユーザであり、サブローは未登録ユーザである。イチロー、ジロー、サブローの何れも、ホストコンピュータ109を使用するユーザである。各ユーザは、キーボード3900、およびマウス3950を介して、ホストコンピュータ109にアクセスしても良いし、前述のWAN3800、あるいはPAN3200に接続してある、他のクライアントコンピュータからネットワークを介してアクセスしても良い。
【0076】
さて、図19において、300はホストコンピュータ109内部におけるソフトウェア階層を模式的に示している。最上位の階層はアプリケーションプログラム301であり、各ユーザが可搬型ディスク装置107に対して何らかのデータの書き込みまたは読み出しを要求する。アプリケーションプログラム301が可搬型ディスク装置107に対して書き込み、または読み出し処理を行なう場合、通常は、オペレーティングシステムのファイルシステム(303)に対して、書き込み、または読み出し処理のサービスを要求する。
【0077】
本実施形態によるアクセス制御プログラムは、アプリケーション301とファイルシステムドライバ303の中間に位置するように構成されている。図19において、アクセス許可管理テーブル302として示された部分がこれに該当する。この部分は、実際には、管理テーブルだけがあるのではなく、管理テーブルのメンテナンス機能、および管理テーブルを使用した各ユーザ毎のアクセス許可管理機能を有する。なお、管理テーブルは、ホストコンピュータ109上のメインメモリ上に存在する。
【0078】
動作の詳細は後述するが、例えば、図示した管理テーブルにおいては、イチローには可搬型ディスク装置107に対して書き込みおよび読み出し許可が与えられ、ジローには可搬型ディスク装置107に対して書き込み許可および読み出し不許可が与えられていることを示す情報が書き込まれている。この状態で、アプリケーション301により、各ユーザが可搬型ディスク装置107に対して書き込み、あるいは読み出し処理を要求すると、本実施形態によるプログラムは、アクセス許可管理テーブルを基に、次のような処理を行なう。
【0079】
▲1▼イチローからの書き込みあるいは読み出し処理要求:
管理テーブル302により、可搬型ディスク装置107に対するアクセスは、書き込み、読み出しともに許可されていることが判明するので、アプリケーション301からの書き込みあるいは読み出し処理要求を、ファイルシステムに対しそのまま通過させる(但し、認証ユーザの属性83(図8)の内容とのANDがとられる。例えば、認証ユーザの属性が読み書き可能であれば上記のように書込み及び読み出しの処理要求が通過されるが、認証ユーザの属性が読み出しであれば、書込み要求はブロックされる。詳細は図26により後述する)。
【0080】
▲2▼ジローからの書き込みあるいは読み出し処理要求:
管理テーブル302により、可搬型ディスク装置107に対するアクセスは、書き込みは不許可であり、読み出しは許可されていることが判明するので、アプリケーション301からの書き込み処理要求をブロックし、ファイルシステムに対し通知せず、エラーステータスを当該アプリケーション301に返す。一方、アプリケーション301からの読み出し処理要求については、ファイルシステムに対し、そのまま通過させる。なお、書込み処理要求をブロックした際には、当該要求者(ジローのコンピュータ)に対してその旨の通知を行なうようにしてもよい。
【0081】
▲3▼サブローからの書き込みあるいは読み出し処理要求:
管理テーブル302にはサブローは登録されておらず、可搬型ディスク装置107に対するアクセス権限は不明である。よって、可搬型ディスク装置107に対して、前述のユーザ照会コマンドを発行する。その結果、未登録ユーザであることが判明したら、アプリケーション301からの書き込み処理要求および読み出し処理要求をともにブロックし、ファイルシステムに対して通知せず、エラーステータスをアプリケーション301に返す。なお、読み出し処理要求及び書込み処理要求をブロックした際には、当該要求者(ジローのコンピュータ)に対してその旨の通知を行なうようにしてもよい。
【0082】
以下、フローチャートを用いて、上記の動作を詳細に説明する。
【0083】
図20は、ディスク挿入時のホストコンピュータ109内の本実施形態にかかわる処理をフローチャートで示したものである。
【0084】
前述したように、可搬型ディスク装置107がソケット50に装着されると、マイクロスイッチ52はオンとなり、信号線54、サウスブリッジ3009のPIO入力線3027を経由して、CPU3001に対して割り込み処理要求が発生される。図20は、この割り込み処理要求に対応した処理ルーチンのフローを示している。
【0085】
可搬型ディスク装置107がソケット50に装着されたことを検知すると、ステップS701において、可搬型ディスク装置107に対して前述の情報要求コマンドを発行する。次いで、ステップS702において、可搬型ディスク装置107より、情報要求コマンドに対する応答として図7に示した如き登録情報を取得する。
【0086】
ステップS703では、ステップS702で取得した登録情報に含まれるロックモード71cの値を調べ、当該可搬型ディスク装置が、ロック状態であるか否かを判断する。ロック状態であった場合は、ステップS704に進み、ユーザに対し、ユーザ名とパスワードの入力を促す。図31は、ユーザ名とパスワードの入力を促す場合の、ユーザインターフェースの一例を示した図である。ユーザが、ユーザ名とパスワードをそれぞれ該当するフィールド321、322に入力した後、OKボタン323をクリックすることにより、ステップS704の処理が完了し、ステップS706へと処理が進む。
【0087】
ステップS706では、ステップS704でユーザが入力したユーザ名を、変数unameに、パスワードを変数passwdに保存し、後述のアクセス可否判断処理を行なう。その後、処理はステップS707へと進む。なお、ステップS706において実行されるアクセス可否判断処理では、変数unameに保存されたユーザ名、変数passwdに保存されたパスワードが、当該可搬型ディスク装置107に登録されたユーザであるか否かを調べる。そして、その結果として、アクセスの可否を変数goAheadに、許可されているアクセスモードを変数modeに保存するように処理が行なわれる。なお、変数goAheadの値が1の場合はアクセス許可を示し、値が0の場合はアクセス不許可を示す。また、変数modeには、当該ユーザに許可されたアクセスモード、すなわち読み出し可能および書き込み可能を意味するフラグが各々図32に示したビット位置にセット、またはリセットされる。本例では、ビット内容が1であればアクセス権限有りを、ビット内容が0であればアクセス権限無しを意味する。
【0088】
一方、ステップS703にて、ステップS702で取得した登録情報に含まれる、図3に示したディスク情報内のロックモード71cの値を調べた結果、当該可搬型ディスク装置107が非ロック状態であった場合は、変数goAheadに値1を保存し、ステップS707へと進む。
【0089】
ステップS707では、変数goAheadの値を調べ、其の値が1、すなわち当該可搬型ディスク装置107に当該ユーザが登録されている場合、あるいは当該可搬型ディスク装置107が非ロック状態である場合にはステップS708へ進む。一方、其の値が0、すなわち当該可搬型ディスク装置107がロック状態であり、かつ、当該可搬型ディスク装置107に当該ユーザが登録されていない場合には、ステップS709へと進む。
【0090】
ステップS708では、当該可搬型ディスク装置107をシステムが使用可能状態とする為に、当該可搬型ディスク装置107より、パーティション情報を読み取り、ホストコンピュータ109で当該可搬型ディスク装置107を正しく取り扱う為の内部変数の初期化等を行なう。具体的な処理内容は、ホストコンピュータ109に搭載しているオペレーティングシステム、可搬型ディスク装置107を制御するデバイスドライバの構造に依存するので、詳細は、ここでは詳しくは説明しない。ステップS710では、当該可搬型ディスク装置107をファイルシステムに登録して処理を終了する。
【0091】
ステップS709では、当該可搬型ディスク装置107がロック状態であり、かつ、当該可搬型ディスク装置107に当該ユーザが登録されていない旨を示すダイアログ画面等をモニタ3700に表示して本処理を終了する。
【0092】
図21は、上述したステップS706におけるアクセス可否判断処理の動作を説明する為のフローチャートである。本処理ルーチンに制御が移る前に、ステップS704によって変数unameにはユーザ名が、変数passwdにはパスワードが予め書き込まれている。また、システム初期化時に、変数authには、値0が書き込まれている。
【0093】
本アクセス可否判断処理ルーチンに制御が移ると、ステップS761にて、当該可搬型ディスク装置107が、既に、ユーザ認証済みであるか否かの判断を行なう。これは、変数authの値を調べることにより行なわれる。変数authの値が1であれば、当該可搬型ディスク装置107は認証済みであり、処理はステップS762に進む。一方、ステップS761において変数authの値が0であれば、当該可搬型ディスク装置107は未認証であり、従って処理はステップS768に進む。
【0094】
ステップS768では、前述のユーザ認証コマンドを当該可搬型ディスク装置107に対して発行する。この認証の結果、認証OKの場合は、変数successに値1を、認証NGの場合は、変数successに値0を書き込み、ステップS769へと進む。ステップS769では、変数successの値を調べ、其の値が1であればステップS770へ進み、其の値が0であればステップS775へ進む。すなわち、ステップS768で行なわれた当該可搬型ディスク装置107に対するユーザ認証の結果、認証に成功した場合はステップS770へ、失敗した場合はステップS775へと進む。
【0095】
ステップS770では、変数authに値1を書き込み、当該可搬型ディスク装置107が認証済みであることをマークし、ステップS771へと進む。ステップS771では、詳細は後述するが、アクセス許可管理テーブルの初期化を行い、ステップS772へと進む。
【0096】
ステップS772では、前述の情報要求コマンドを、当該可搬型ディスク装置107に対して発行し、ステップS773へと進む。ステップS773では、当該可搬型ディスク装置107より、ステップS772で発行した情報要求コマンドに対する応答として、図7に示した登録情報を取得し、ステップS774へと進む。ステップS774では、変数uname、およびステップS773で取得した登録情報から、必要なデータを上述したアクセス許可管理テーブル302にコピーし、ステップS764へと進む。
【0097】
ステップS775では、ステップS768におけるユーザ認証に失敗、あるいは、後述のステップS766におけるユーザ照会に失敗し、当該可搬型ディスク装置107に対するアクセス権を獲得できなかったことを、変数goAheadに値0を書き込むことにより示し処理を終了する。
【0098】
一方、ステップS761において、当該可搬型ディスク装置107が既にユーザ認証済みであると判断され、ステップS762に進んだ場合には、以下のように処理される。まず、ステップS762において、詳細は後述するが、変数unameに保持されているユーザ名がアクセス許可管理テーブル302に存在するか否かを調べる。この処理の結果、もし変数unameに保持されているユーザ名がアクセス許可管理テーブル302に存在しない場合は変数indexに値0を書き込み、存在する場合はアクセス許可管理テーブル302内の相対位置を示す0以外の値を変数indexに書き込むよう処理を行い、ステップS763へと進む。ステップS763では、変数indexの値を調べ、其の値が0であればステップS766へ進み、其の値が0以外であればステップS764へ進む。すなわち、変数unameに保持されているユーザ名が、既にアクセス許可管理テーブル302に存在する場合は、ステップS764へ進み、存在しない場合は、ステップS766へ進む。
【0099】
ステップS766では、前述のユーザ照会コマンドを当該可搬型ディスク装置107に対して発行する。そして、その照会結果が照会OKの場合は変数registeredに値1を、照会NGの場合は変数registeredに値0を書き込み、ステップS767へと進む。ステップS767では、変数registeredの値を調べ、其の値が1の場合は、前述のステップS772へ、其の値が0の場合は、前述のステップS775へと進む。すなわち、ステップS766におけるユーザ照会コマンドの結果、変数unameに保存されているユーザ名のユーザが、当該可搬型ディスク装置107に登録されており、アクセスが許可されている場合にはステップS772へと進み、未登録でアクセスが不許可の場合には、ステップS775へと進む。
【0100】
ステップS764では、アクセス許可管理テーブル302から、当該ユーザのアクセスモードを、変数modeにコピーし、ステップS765へ進む。ステップS765では、当該可搬型ディスク装置107に対するアクセス権を獲得できたことを、変数goAheadに値1を書き込むことにより示し、本アクセス可否判断処理を終了する。
【0101】
図22は、アクセス管理許可テーブル(ステップS771)の初期化処理の動作を示すフローチャートである。
【0102】
ステップS801においては、ステップS802以降の処理の為に、変数indexの値を1に初期化する。ステップS802では、変数indexの値と、変数indexの取り得る値の最大値を表す定数MaxUserの値との比較を行い、変数indexの値が、定数MaxUserの値以下であれば、ステップS803に進む。変数indexの値が定数MaxUserの値より大きければ、ステップS809進む。ここでは、MaxUserの値は規定しないが、10でも20でも、ホストコンピュータ109に想定される最大ユーザ数以上の適当な整数値であれば何でも構わない。
【0103】
ステップS803においては、変数indexにより相対位置を特定される、アクセス許可管理テーブル302のインデックスフィールド(table.index[index])に、変数indexの値をコピーする。ステップS804においては、変数indexにより相対位置を特定される、アクセス許可管理テーブル302のユーザ名フィールド(table.uname[index])に空白文字列(“”)を書き込む。ステップS805においては、変数indexにより相対位置を特定される、アクセス許可管理テーブル302の認証フィールド(table.auth[index])に、不許可を意味する定数NOを書き込む。NOの値は、前述の説明によれば値0である。ステップS806においては、変数indexにより相対位置を特定される、アクセス許可管理テーブル302のアクセスモードフィールド(table.mode[index])に値0を書き込む。値0は、前述の説明では、書き込みと読み出しともに不許可を意味する。ステップS807においては、変数indexにより相対位置を特定される、アクセス許可管理テーブルのリンクフィールド(table.link[index])に変数indexの値をコピーする。
【0104】
以上、ステップS803からステップS807までの処理が完了したら、ステップS808へと進み、変数indexの値を1だけ増分し、ステップS801に戻って上述の処理を繰り返す。
【0105】
結果、変数indexの値が、1から定数MaxUserまでの範囲で相対位置を特定されるアクセス許可管理テーブル302の各フィールドに所定の値が書き込まれることになる。最後に、変数indexの値が、定数MaxUserの値より大きくなったとろこで、ステップS809へ進み、変数indexに値0を書き込み、アクセス許可管理テーブルの初期化処理は完了する。図27に初期化処理完了後のアクセス許可管理テーブルの状態を示す。
【0106】
図23は、アクセス許可管理テーブルへ、新規ユーザの追加登録する際の処理(ステップS774)を説明する為の、フローチャートである。
【0107】
ステップS851においては、ステップS852以降の処理の為に、変数indexの値を1に初期化する。ステップS852では、変数indexの値と、変数indexの取り得る値の最大値を表す定数MaxUserの値との比較を行い、変数indexの値が、定数MaxUserの値以下であれば、ステップS853に進み、変数indexの値が、定数MaxUserの値より大きければ、ステップS863へ進む。ここで、定数MaxUserは上記図22のフローチャートで説明したものと同じである。
【0108】
ステップS853では、変数indexにより相対位置を特定される、アクセス許可管理テーブル302のインデックスフィールド(table.index[index])の値と変数indexの値を比較し、その値が等しくなければ処理はステップS854へ進み、値が等しければ処理はステップS855へ進む。ステップS854では、変数indexの値を1だけ増分し、ステップS852に戻り上記処理を繰り返す。
【0109】
ステップS855では、変数indexにより相対位置を特定される、アクセス許可管理テーブル302のユーザ名フィールド(table.uname[index])に変数unameに保持されているユーザ名をコピーする。ステップS856では、変数indexにより相対位置を特定されるアクセス許可管理テーブル302の認証フィールド(table.auth[index])に、許可を意味する定数YESを書き込む。YESの値は、前述の説明では、値1である。
【0110】
また、ステップS857〜ステップS861では、アクセスモードフィールド(table.mode[index])の設定が行なわれる。まず、ステップS857において、変数indexにより相対位置を特定されるアクセス許可管理テーブルのアクセスモードフィールド(table.mode[index])に、書き込み不許可及び読み出し不許可を示す値0を書き込む。
【0111】
ステップS858では、前述の情報要求コマンドにより得られる、当該認証ユーザの登録情報内の属性情報、すなわち、オーナの場合は図2の(c)に示したオーナ属性、ゲストの場合は図2の(d)に示したゲスト属性に含まれる、当該認証ユーザに許可された書き込み許可属性に則り、対応するアクセスモードフィールドを設定する。すなわち、書込み許可属性が書込み許可を示す場合は、ステップS858からステップS859へ進み、変数indexにより相対位置が特定されるアクセス許可管理テーブルのアクセスモードフィールドの書き込み許可フラグを1にセットする。一方、不許可の場合は、何もせずに、ステップS860へ進む。
【0112】
ステップS860では、前述の情報要求コマンドにより得られる、当該認証ユーザの登録情報内の属性情報、すなわち、オーナの場合は、図2の(c)に示したオーナ属性、ゲストの場合は、図2の(d)に示したゲスト属性に含まれる、当該認証ユーザに許可された読み出し許可属性に則ってアクセスモードフィールドが設定される。すなわち、読み出し許可属性が読み出し許可を示す場合は、ステップS861へ進み、変数indexにより相対位置を特定されるアクセス許可管理テーブルのアクセスモードフィールドの読み出し許可フラグを、1にセットする。不許可の場合は、何もせずに、ステップS862へ進む。
【0113】
更に、ステップS862では、当該フィールドが有効であることを示す為に、変数indexにより相対位置を特定される、アクセス許可管理テーブルのリンクフィールド(table.link[index])に、変数indexの値に1を加えた値をコピーし、処理を終了する。
【0114】
一方、ステップS852で、変数indexの値と、変数indexの取り得る値の最大値を表す定数MaxUserの値との比較を行い、変数indexの値が、定数MaxUserの値より大きかった場合は、ステップS863へ進む。これは、アクセス許可管理テーブルがオーバーフローしたことを示す。オーバーフロー時の、ホストコンピュータ109のアプリケーションの処理は説明しないが、例えば、ユーザにその旨を通知するダイアログを表示し、ユーザからのリクエストをキャンセルするように処理を行なえば良い。
【0115】
図28は、当該可搬型ディスク装置107に、書き込み許可、読み出し許可として登録されているユーザ、イチローを登録した後の、前記アクセス許可管理テーブルの状態を示したものである。
【0116】
図29は、当該可搬型ディスク装置107に、書き込み不許可、読み出し許可として登録されているユーザ、ジローを登録した後の、前記アクセス許可管理テーブルの状態を示したものである。
【0117】
更に、図30は、当該可搬型ディスク装置107に、登録されていないユーザ、サブローによってディスクアクセスしようとした後のアクセス許可管理テーブルの状態を示したものである。この場合の結果は、図29と同様である。
【0118】
図24は、アクセス管理許可テーブル302に当該ユーザが登録済みであるか否かを確認するユーザ確認処理ルーチンの動作を説明する為のフローチャートである。
【0119】
ステップS881においては、ステップS882以降の処理の為に、変数indexの値を1に初期化する。ステップS882では、変数indexの値と、変数indexの取り得る値の最大値を表す定数MaxUserの値との比較を行い、変数indexの値が、定数MaxUserの値以下であれば、ステップS883に進み、変数indexの値が、定数MaxUserの値より大きければ、ステップS885へ進む。ここで、定数MaxUserは上記図22、図23のフローチャートで説明したものと同じである。
【0120】
ステップS883では、変数indexにより相対位置を特定される、アクセス許可管理テーブルのユーザ名フィールド(table.uname[index])と、変数unameに保持されるユーザ名を比較し、一致した場合は、そのままユーザ確認処理を終了する。不一致の場合は、ステップS884に進み、変数indexの値を1だけ増分し、ステップS882へ戻る。ステップS885では、変数indexに、値0を書き込み、処理を終了する。
【0121】
以上の処理により、変数unameに保持されたユーザ名と一致するユーザがアクセス許可管理テーブルに登録されている場合は、アクセス許可管理テーブルの相対位置を示す値が変数indexに保持される。一方、変数unameに保持されたユーザ名と一致するユーザがアクセス許可管理テーブルに登録されていなかった場合は値0が変数indexに保持されるようになる。
【0122】
図25は、当該可搬型ディスク装置107が、ホストコンピュータ109から取り外された事を検知した際の処理を示したフローチャートである。
【0123】
前述したように、可搬型ディスク装置107が、ソケット50より取り外されると、マイクロスイッチ52はオフとなり、信号線54、サウスブリッジ3009のPIO入力線3027を経由して、CPU3001に対して割り込み処理要求が発生する。図25は、この割り込み処理要求に対応した処理ルーチンのフローを示している。
【0124】
上記割り込み処理要求を受け付けると、ステップS901で、当該可搬型ディスク装置107のファイルシステムへの登録を削除する。次いで、ステップS902では、可搬型ディスク装置107が、未認証状態であることを示す値0を、変数authに書き込む。次いで、ステップS903で、アクセス許可管理テーブルを初期化(図22)し、可搬型ディスク装置107取り外し処理を終了する。
【0125】
次に、ディスクアクセス要求時の処理について図26のフローチャートを参照して説明する。本処理は例えば、ネットワーク上の他のコンピュータから可搬型ディスク装置107にアクセスがあった場合に起動されることになる。まず、ステップS921において、図21のフローチャートで説明したアクセス可否の判断処理を行なう。ステップS922ではこのアクセス可否の判断処理の結果をチェックし、アクセス可能であると判断されていれば(goAhead=1)ステップS923へ進む。
【0126】
ステップS923では、アクセス可否判断処理の結果、indexが1となっているか否かを判定する。indexが1である場合は、当該アクセス要求者が、ディスク挿入検知時(図20)にアクセスした者であることを示す。従って、可搬型ディスク装置のRAMに一時的に記憶されているディスク認証ユーザ(図8)は当該アクセス要求者と一致するので、その属性(アクセス可能動作モード)も一致するので、そのままアクセス処理が行なわれる。
【0127】
ステップS923でindex≠1であった場合は、ステップS924へ進む。この場合、当該アクセス要求者はディスク認証ユーザとは異なるため、その属性(アクセス可能動作モード)も異なる可能性がある。従って、可搬型ディスク装置のRAMに一時的に記憶されているディスク認証ユーザの属性(図8の83)を変数authmodeにコピーし(ステップS924)、当該アクセス要求者の属性が保持されている変数modeとのアンドをとり、これをアクセス可能動作モードとする(ステップS925)。例えば、認証ユーザが読み出しのみを許可されている場合、当該アクセス要求者が書込みと読み出しを許可されたユーザであったとしても、当該アクセスにおいては読み出しのみが許可されることになる(仮にステップS924、S925の処理がなくても、図9で説明した可搬型ディスクのデータ書き込み処理によって同様のアクセス結果を生じることになる)。
【0128】
以上説明したように上記実施形態によれば、オーナー認証されたユーザであれば、ユーザ照会コマンドによって登録ユーザの照会が可能となり、複数ユーザ対応のデータ保全機能を備えながら、上位装置によって、同時に複数ユーザからのアクセスを制御することが可能となる。
【0129】
さらには、オーナー認証されたユーザであれば、ディスク情報登録コマンドにより、ディスクを「ロック状態」と「非ロック状態」とに簡単に切り替えることが可能であり、ディスクに設定されたユーザ認証情情報(オーナー情報とゲスト情報)を消去すること無しに、認証無しでディスクにアクセスすることが可能となる。よって、本アクセス制御方法に対応していない本体装置(従来のパソコン等)でも、本可搬型記憶装置の使用が可能となり、利便性が向上する。
【0130】
なお、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読出し実行することによっても、達成されることは言うまでもない。
【0131】
この場合、記憶媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【0132】
プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク,ハードディスク,光ディスク,光磁気ディスク,CD−ROM,CD−R,磁気テープ,不揮発性のメモリカード,ROMなどを用いることができる。
【0133】
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0134】
さらに、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0135】
【発明の効果】
以上説明したように、本発明によれば、複数ユーザに対応したデータ保全機能を備えながら、同時に複数ユーザからアクセスすることが可能となる。
さらに本発明の他の目的は、権限を有するユーザであれば簡単にデータ保全機能を有効化/無効化することが可能となる。
【図面の簡単な説明】
【図1】可搬型ディスク装置の構成を示すブロック図である。
【図2】フラッシュメモリに格納する登録情報のフォーマットと、ディスク情報、オーナー情報、ゲスト情報の詳細を示す図である。
【図3】ロック状態に設定されている場合の、可搬型ディスク装置とホストコンピュータとの通信動作を示すタイムチャートである。
【図4】非ロック状態に設定されている場合の、可搬型ディスク装置とホストコンピュータとの通信動作を示すタイムチャートである。
【図5】ユーザ認証に失敗した場合の、可搬型ディスク装置とホストコンピュータとの通信動作を示すタイムチャートである。
【図6】ユーザ認証処理の手順を示すフローチャートである。
【図7】ホストコンピュータに出力する登録情報の内容を示す図である。
【図8】ユーザ認証後、RAMに一時的に記憶される情報を示す図である。
【図9】データ書き込み処理における可搬型ディスク装置のフローチャートである。
【図10】ユーザ照会コマンドの内容を示す図である。
【図11】可搬型ディスク装置におけるユーザ照会処理を示すフローチャートである。
【図12】オーナー登録処理の画面表示の例を示す図である。
【図13】オーナー登録処理を説明するフローチャートである。
【図14】ゲスト登録処理の画面表示の例を示す図である。
【図15】ゲスト登録処理を説明するフローチャートである。
【図16】ディスク情報登録処理の画面表示の例を示す図である。
【図17】ディスク情報登録処理を説明するフローチャートである。
【図18】ホストコンピュータ109の構成を示すブロック図である。
【図19】本実施形態による制御プログラムの動作を模式的に説明した図である。
【図20】可搬型ディスク装置挿入時の処理を説明するためのフローチャートである。
【図21】アクセス可否判断処理ルーチンの動作を説明するためのフローチャートである。
【図22】アクセス許可管理テーブルの、初期化処理を説明するためのフローチャートである。
【図23】アクセス許可管理テーブルへ、新規ユーザを登録する際の動作を説明するためのフローチャートである。
【図24】ユーザ名が、アクセス管理許可テーブルに登録されているか否かを調べる処理ルーチンの動作を説明するためのフローチャートである。
【図25】可搬型ディスク取り外しの動作を説明するためのフローチャートである。
【図26】可搬型ディスク装置へのアクセス要求があった場合の、ホストコンピュータにおける処理を説明するためのフローチャートである。
【図27】初期化処理完了後のアクセス許可管理テーブルの状態を示した図である。
【図28】ユーザ認証後のアクセス許可管理テーブルの状態を示した図である。
【図29】登録ユーザが、ユーザ照会した後のアクセス許可管理テーブルの状態を示した図である。
【図30】未登録ユーザが、ユーザ照会した後のアクセス許可管理テーブルの状態を示した図である。
【図31】ユーザ名とパスワード入力を促すダイアログの説明図である。
【図32】アクセスモードを保持する変数modeのビット割り当ての説明図である。
【発明の属する技術分野】
本発明は、ディスク装置などの記憶装置に関し、特に、記憶装置に格納されるデータのセキュリティを確保するためのアクセス制御が可能な記憶装置及びそのアクセス制御方法に関する。
【0002】
【従来の技術】
近年、ハードディスク装置は、大容量化、および低価格化が急速に進んでおり、パーソナルコンピュータ(PC)等の補助記憶装置として広く使用されている。また、テレビ番組をハードディスクで録画再生可能なハードディスクレコーダと呼ばれる製品も販売され、ハードディスクの用途は多岐に渡っている。最近では、iVDR(Information Versatile Disk for Removable usage、http://www.ivdr.org/)という、2.5型ハードディスクをカートリッジに収容し、AV機器からPCまで幅広い用途に対応でき、かつ小型軽量、持ち運び可能なリムーバブルハードディスク装置も提案されている。
【0003】
一方、iVDRのようなハードディスク装置は、その簡便性がゆえに、持ち運ぶことによって、置き忘れたり、また盗難にあったりする危険性が増す。よって、ハードディスク装置に保存されているデータのセキュリティを確保するための対策がますます重要となっている。
【0004】
そこで、ハードディスク装置等に代表される記憶装置に保存されているデータのセキュリティを確保するためのアクセス制御方法として、様々な方法が提案されている。
【0005】
例えば、ハードディスク装置の標準インタフェースとして知られているATA(AT Attachment、http://www.t13.org/)インタフェースでも、記憶装置に格納されるデータのセキュリティを確保するためのアクセス制御方法が「Security Mode feature set」として規定されている。ATAでは、User passwordを設定することによりセキュリティシステムが有効となり、User passwordの入力なしにはディスク装置へのアクセスができなくなる。このUser passwordは、1台のディスク装置に対し、1つだけ設定可能である。
【0006】
また、特開平11−296436号公報で開示されているアクセス制御方法、記憶装置及び記憶媒体では、1つあるユーザパスワードに対して複数のユーザネームを設定することにより、1つの記憶媒体に対し、複数ユーザのアクセス制御を行う方法が提案されている。
【0007】
また、特開平8−263383号公報で開示されている情報処理装置では、ディスク装置を複数の領域に分け、それぞれの領域ごとに、1対1で対応する第一のパスワードを設定するとともに、同時に、それぞれの領域ごとに第一のパスワードとは異なる第二のパスワードを対応付けることが出来る。この情報処理装置は、第一のパスワード、あるいは第二のパスワードの何れかの一致により、それぞれのパスワードと対応付けられる当該記憶領域へのアクセスを許可することが可能である。
【0008】
【発明が解決しようとする課題】
しかしながら、ATAで規定されているアクセス制御方法や、特開平11−296436号公報で開示されているアクセス制御方法では、単一のパスワードを使用しているため、ディスク装置の持ち主が他人に対してデータの読み書きを許可する場合にはパスワードを他人に教える必要がある。このため、パスワード効果が薄れ、データのセキュリティ機能が低下するとういう問題がある。
【0009】
また、特開平8−263383号公報で開示されているアクセス制御方法によれば、ディスクの領域ごとに複数のパスワードを設定することにより、ディスクの所有者が他人にパスワードを教えることによるパスワード効果の低減は防止される。しかしながら、複数ユーザのパスワード認証、およびアクセス制御は全てディスク装置側で行われる。このため、当該発明を実施したディスク装置をホストに装着した場合に、同時に複数のユーザからのアクセスを可能とするためには、ホストが、ディスク装置に対してデータの読み書きを行う際に、どのユーザのデータであるかの識別をディスク装置が行うための識別情報が必要となる。そして、このような冗長な識別情報を、ディスク装置とやり取りするコマンドパケットごと、あるいはデータパケットごとに付与して伝送する必要がある。さらには、認証情報を設定したディスク装置を、認証無しで使用したい場合には、全ての設定されている認証情報を消去しなければならないという問題がある。
【0010】
本発明は以上の課題に鑑みてなされたものであり、複数ユーザに対応したデータ保全機能を備えながら、同時に複数ユーザからのアクセスを可能とすることを目的とする。
さらに本発明の他の目的は、権限を有するユーザによって容易にデータ保全機能を有効化/無効化することを可能とすることにある。
【0011】
【課題を解決するための手段】
上記目的を達成するために、本発明の記憶装置は以下の構成を備える。すなわち、
外部装置よりアクセスが可能なデータを記憶する記憶媒体を有する記憶装置であって、
複数のアクセス者の各々を認証するための認証情報を記憶する記憶手段と、
外部装置から入力された認証情報と前記記憶手段に記憶された認証情報とに基づいて認証処理を行なう認証手段と、
前記認証手段によって認証がとれた場合に、前記外部装置による前記記憶媒体へのアクセスが可能な状態へ移行する制御手段と、
前記制御手段によってアクセスが可能な状態へ移行した後に、外部からの認証情報を伴った照会指令に応じて前記記憶手段に当該認証情報が記憶されているか否かを通知する照会手段とを備える。
【0012】
また、上記の目的を達成するための本発明による記憶装置の制御方法は、
外部装置よりアクセスが可能なデータを記憶する記憶媒体を有する記憶装置の制御方法であって、
複数のアクセス者の各々を認証するための認証情報をメモリに記憶する記憶工程と、
外部装置から入力された認証情報と前記メモリに記憶された認証情報とに基づいて認証処理を行なう認証工程と、
前記認証工程によって認証がとれた場合に、前記外部装置による前記記憶媒体へのアクセスが可能な状態へ移行する制御工程と、
前記制御工程によってアクセスが可能な状態へ移行した後に、外部からの認証情報を伴った照会指令に応じて前記メモリに当該認証情報が記憶されているか否かを通知する照会工程とを備える。
【0013】
【発明の実施の形態】
以下、添付の図面を参照して本発明の好適な実施形態を説明する。
【0014】
図1は、本発明の一実施形態の可搬型ディスク装置の構成を示すブロック図である。可搬型ディスク装置107は、ソケット50を介し、ホストコンピュータ109に着脱可能に接続され、ホストコンピュータ109から送出される制御コマンドにより動作する。
【0015】
3700は、ホストコンピュータ109に接続されたモニタであり、3950、3900は、それぞれホストコンピュータ109に接続されたマウス、及びキーボードである。詳細は説明しないが、ホストコンピュータ109上で動作するソフトウェアの制御により、ホストコンピュータ109を使用するユーザは、マウス3950、およびキーボード3900を操作することにより、様々な処理を実行し、また、その実行結果をモニタ3700により確認することが出来る。
【0016】
可搬型ディスク装置107は、機構部100と電子回路部105とを備えている。本実施形態では、この電子回路部105に、ユーザ登録情報を格納する部分を設けている。具体的には、本実施形態では、電源遮断時でも記憶情報を維持するために、並びに、悪意のある第三者に記憶情報を読み出され難くするために、ワンチップマイコン500に内蔵されたフラッシュメモリ106に上記ユーザ登録情報を格納している。
【0017】
機構部100は、データを読み書きするためのヘッド101、ユーザデータを保存するための円盤型磁気媒体102、ヘッドを駆動するためのモータであるボイスコイルモータ103、円盤型磁気媒体102を回転するためのスピンドルモータ104とを備えている。
【0018】
また、電子回路部105は、ワンチップマイコン500と、機構制御部511と、データ処理部502と、ヘッド101とデータ処理部502との間で記録再生するデータの受け渡しおよび受け取りを行う記録/再生回路501と、円盤型磁気媒体102から読み出したデータを一時的に保持するデータバッファ509とを備えている。
【0019】
ワンチップマイコン500は、CPU505と、フラッシュメモリ106と、ROM(不図示)と、RAM(不図示)とを備え、ホストコンピュータ109からのコマンドを解釈し、そのコマンドに基づいて、機構部100の制御などを行う。また、フラッシュメモリ106に格納されたユーザ登録情報に基づくユーザ認証、アクセス制御などの処理も、ワンチップマイコン500によって行う。
【0020】
機構制御部511およびデータ処理部502は、ワンチップマイコン500のシステムバス11に接続されている。機構制御部511とヘッド101とは、制御線12によって接続されている。機構制御部511は、制御線12を介して、機構部100に、機械的な動作を制御する信号を出力する。記録/再生回路501は、データ線13によってヘッド101と接続され、ヘッド101に記録すべきデータ信号を受渡し、ヘッドが再生したデータ信号を受け取る。記録/再生回路501と機構制御部511とは、制御線14によって接続されている。また、データ処理部502とデータバッファ509とはデータバス15によって接続されている。
【0021】
データ処理部502の構成を更に説明する。データ処理部502は、CPUインタフェースコントロール部504と、ホストインタフェースコントロール部510と、ドライブインタフェースコントロール部503と、バッファコントロール部507と、読み出し誤り検出情報(ECC)処理部506とを備えている。CPUインタフェースコントロール部504、ホストインタフェースコントロール部510、および、ドライブインタフェースコントロール部503は、内部制御バス16に接続されている。バッファコントロール部507、ホストインタフェースコントロール部510、ドライブインタフェースコントロール部503、および、ECC処理部506は、データバス17によって接続されている。ホストインタフェースコントロール部510には、内部にコマンドレジスタ521とエラーレジスタ522とが配置され、IDE等のインタフェース108を介してコネクタ508と接続されている。
【0022】
可搬型ディスク装置107とソケット50とは、可搬型ディスク装置107のコネクタ508と、ソケット50のコネクタ51とを嵌合することによって接続される。
【0023】
ソケット50は、可搬型ディスク装置107を接続するためのコネクタ51と、可搬型ディスク装置107がソケット50に装着されたことを検出するためのマイクロスイッチ52とを備えている。コネクタ51はIDE等のインタフェース53を介してホストコンピュータ109と接続されている。
【0024】
マイクロスイッチ52は信号線54によりホストコンピュータ109と接続され、ホストコンピュータ109によるポーリングや、ホストコンピュータ109への割り込み信号の発生によって、ホストコンピュータ109が、可搬型ディスク装置107の装着を検出することが可能な構成となっている。
【0025】
ホストコンピュータ109は、パーソナルコンピュータ(PC)に代表されるコンピュータ装置である。また、図1では、ソケット50がホストコンピュータ109の外部にある構成になっているが、接続形態が同様であれば、ソケット50はホストコンピュータ109の内部にあっても構わない。
【0026】
次に、フラッシュメモリ106に格納する登録情報について説明する。図2はユーザ登録情報のフォーマットを示す図である。登録情報は(a)に示すように、ディスク情報71、オーナー情報72、ゲスト情報73の3種類から構成される。オーナーとゲストとは、共に使用者であるユーザを表すユーザ登録情報であるが、違いについては後述する。
【0027】
ディスク情報71は、図2の(b)に示すように、シリアル番号71a、ディスク名71b、ロックモード71cを含む。シリアル番号71aは、工場出荷時に設定されるもので、当該可搬型ディスク装置107の製造上の通し番号が記憶されている。ディスク名71bは、後述するディスク情報登録コマンドによりユーザによって設定される。ロックモード71cは、当該可搬型ディスク装置107がロック状態にあるか否かを示す情報であり、後述するオーナー名72aとオーナーパスワード72b、またはゲスト名73aとゲストパスワード73bが登録されている時に、ユーザ認証なしで可搬型ディスク装置107のデータ領域にアクセスできる状態を「非ロック状態」、ユーザ認証しなければアクセスできない状態を「ロック状態」として表す。
【0028】
オーナー情報72は、図2の(c)に示すように、オーナー名72a、オーナーパスワード72b、オーナー属性72cを含む。オーナー情報72は、後述するオーナー登録コマンドによりユーザによって設定される。オーナー名72a、オーナーパスワード72bは、可搬型ディスク装置107にアクセスするためのユーザ認証に使用する情報である。オーナー属性72cは、オーナーでユーザ認証した場合の、ユーザの可搬型ディスク装置107に対する属性を設定する。属性には、可搬型ディスク装置107のデータ領域全体に対する、読み書きを許可する属性、読み出しのみを許可する属性等が設定可能である。
【0029】
ゲスト情報73は、図2の(a)に示すように、1からnまで複数の設定が可能である。また、ゲスト情報73は、図2の(d)に示すように、ゲスト名73a、ゲストパスワード73b、ゲスト属性73cを含む。ゲスト名73a、ゲストパスワード73bは、可搬型ディスク装置107にアクセスするためのユーザ認証に使用する情報である。ゲスト属性73cは、ゲストでユーザ認証したユーザの可搬型ディスク装置107に対する属性を設定する。属性には、可搬型ディスク装置107のデータ領域全体に対する、読み書きを許可する属性、書き込みを禁止する属性等が設定可能である。
【0030】
なお、オーナーパスワード72bとゲストパスワード73bは、秘匿性を高めるために、ハッシュ関数と呼ばれる一方向性関数で変換処理を行ったハッシュ値を記憶することも可能である。
【0031】
また、工場出荷時におけるフラッシュメモリ106に格納されている登録情報は、ロックモードは非ロック状態、ディスク名、オーナー情報およびゲスト情報は未登録となっている。
【0032】
ここで、オーナー情報72と、ゲスト情報73の違いについて説明する。オーナー情報72は、可搬型ディスク装置107に対して一つだけ設定可能であり、可搬型ディスク装置107の所有者を意味する情報である。これに対し、ゲスト情報73は、オーナーによって可搬型ディスク装置107へのアクセスを許可されたユーザを示す情報である。登録やユーザ認証に関わる詳細な手順については後述するが、オーナー名72a、オーナーパスワード72bを入力することにより認証(オーナー認証)されたユーザ(オーナー)は、ディスク名71b、ロックモード71c、オーナー名72a、オーナーパスワード72b、オーナー属性72c、ゲスト名73a、ゲストパスワード73b、ゲスト属性73c、の登録や変更が可能である。これに対して、ゲスト名73a、ゲストパスワード73bを入力することにより認証(ゲスト認証)されたユーザ(ゲスト)は、自分自身のゲストパスワード73cの変更ができるのみである。
【0033】
次に、本ディスク装置におけるユーザ認証処理について説明する。図3は、ロックモード71cがロック状態に設定されている場合の、ホストコンピュータとディスク装置間のコマンド等のやり取りを示したタイムチャートである。また、図4は、ロックモード71cが非ロック状態に設定されている場合の、ホストコンピュータとディスク装置間のコマンド等のやり取りを示したタイムチャートである。また、図5は、ユーザ認証に失敗した場合の、ホストコンピュータとディスク装置間のコマンド等のやり取りを示したタイムチャートである。また、図6は、ユーザ認証処理を行う可搬型ディスク装置107内のワンチップマイコン500による処理の流れを示したフローチャートである。更に、図7は可搬型ディスク装置107よりホストコンピュータに出力される登録情報の内容を示す図である。
【0034】
図3において、まず、ユーザがソケット50に可搬型ディスク装置107を挿入すると、マイクロスイッチ52によって可搬型ディスク装置107の挿入が検知され、これがホストコンピュータ109に通知される。可搬型ディスク装置107の挿入を検知したホストコンピュータ109は、可搬型ディスク装置107に対して登録情報の要求を行う情報要求コマンドを発行する。
【0035】
情報要求コマンドを受けた可搬型ディスク装置107は、フラッシュメモリ106に格納されている情報のうち、図7に示す登録情報をホストコンピュータ109に通知する。ホストコンピュータ109は通知された登録情報をユーザに表示する。ユーザはディスク認証のためのユーザ名(オーナー名またはゲスト名)とパスワード(オーナーパスワードまたはゲストパスワード)を入力する。
【0036】
ホストコンピュータ109はユーザによって入力されたユーザ名とパスワードを含むユーザ認証コマンドを、可搬型ディスク装置107に対して発行する。ユーザ認証コマンドを受けた可搬型ディスク装置107は、入力されたユーザ名、パスワードが正しければ、ホストコンピュータ109に正しく認証が行われたことを通知し、可搬型ディスク装置107のデータ領域にアクセス可能な状態に遷移する。ここで、パスワードがハッシュ値で記憶されている場合は、入力されたパスワードをハッシュ値に変換処理してハッシュ値同士での比較を行う。また、省電力のために、正しく認証が行われるまでは、スピンドルモータ104を回転させず、正しく認証が行われてはじめてスピンドルモータ104を回転させることも可能である。
【0037】
次に、図4を用いて、非ロック状態の場合について説明する。ホストコンピュータ109からの情報要求コマンドに対して、可搬型ディスク装置107が登録情報を通知するところまでは図3の場合(ロック状態の場合)と同様である。その後、ロックモード71cが非ロック状態であった場合は、可搬型ディスク装置107はユーザ名とパスワードの入力を待たずに、データ領域にアクセス可能な状態に遷移する。
【0038】
次に、図5を用いて、ロック状態においてユーザ認証に失敗した場合について説明する。ホストコンピュータ109がユーザ認証コマンドを発行するところまでは図3の場合と同様である。入力されたユーザ名、パスワードが正しくなかった場合、可搬型ディスク装置107はホストコンピュータ109に認証が正しく行われなかったことを通知する。この結果、ホストコンピュータ109から可搬型ディスク装置107のデータ領域へのアクセスはできないままとなる。
【0039】
次に、図3から図5のタイムチャートに該当する、可搬型ディスク装置107による処理の流れについて、図9のフローチャートに沿って説明する。ここで、可搬型ディスク装置107の処理とは、すなわち可搬型ディスク装置107内のワンチップマイコン500によってなされる処理のことである。
【0040】
可搬型ディスク装置107は、ホストコンピュータ109からの情報要求コマンドを受信すると(ステップS101)、フラッシュメモリ106に格納されている登録情報のうち、図7に示す情報をホストコンピュータ109に通知する(ステップS102)。図7は、上述したステップS102において、ホストコンピュータ109に出力する登録情報を示している。図7に示すように、ホストコンピュータ109に通知する登録情報は、シリアル番号71a、ディスク名71b、ロックモード71c、オーナー名72a、オーナー属性72c、ゲスト名73a、ゲスト属性73cである。ゲスト情報は1からnまでのゲストの人数分が出力される。
【0041】
次に、フラッシュメモリ106に格納されたロックモード71cを自身で評価し(ステップS103)、ロック状態であればステップS104に、非ロック状態であればステップS106に分岐する。
【0042】
ロック状態であった場合、可搬型ディスク装置107はユーザ認証コマンドの受信を待ち、ユーザ認証コマンドを受信すると(ステップS104)、受信したユーザ名、パスワードと、フラッシュメモリ106に記憶されているユーザ名(オーナー名またはゲスト名)、パスワード(オーナーパスワードまたはゲストパスワード)との照合を行い(ステップS105)、ユーザ名、パスワードが共に合致するユーザが登録されていればステップS106に進み、合致しなかった場合はアクセス可能な状態に遷移することなく処理を終了する。或いは、ステップS104へ戻り、ユーザ認証コマンドを待つようにしてもよい。
【0043】
ステップS106では、図8に示すように、可搬型ディスク装置107がロック状態であるか否かを示すロックモード81、ロック状態であった場合に認証されたユーザがオーナーであったかゲストであったか、またゲストであった場合はどのゲストであったかを示す認証ユーザレベル82、および認証されたユーザの属性83(読み書き可能か、読み出し専用か等のアクセスレベル)をワンチップマイコン500内のRAM領域に一時記憶する。そして、ホストコンピュータ109が、可搬型ディスク装置107のデータ領域にアクセス可能な状態に遷移する。なお、上記のようにして認証されたユーザを以下、認証ユーザと呼ぶ。よって、認証ユーザレベル82には認証ユーザがゲストかオーナーか、ゲストであれば当該認証ユーザのユーザ名が保持され、属性83には認証ユーザのアクセスレベルが保持される。
【0044】
データ領域にアクセス可能な状態に遷移したとき、可搬型ディスク装置107は、自身が非ロック状態であった場合は、読み書き可能なハードディスクとして動作する。また、ロック状態でユーザ認証が行われた場合は、認証ユーザの属性83に基づき、属性が読み書き可能であった場合は読み書き可能なハードディスクとして、読み出しのみであった場合は、データの書き込みコマンドを受け付けないハードディスクとして動作する。このデータ書き込み時の動作を、図9のフローチャートに沿って説明する。
【0045】
ホストコンピュータ109からデータ書き込みコマンドが来ると(ステップS201)、RAMに記憶されたロックモード81を調べ(ステップS202)、非ロック状態であった場合はステップS203に分岐し、ロック状態であった場合はステップS205に分岐する。ステップS203では、受け取った書き込みコマンドに相応する書き込み処理を行い、上位装置すなわちホストコンピュータ109に対して正常に書き込みができた旨を通知し(ステップS204)、処理を終了する。ステップS205では、RAMに一時記憶されている、前記認証ユーザの属性83を調べ、読み書き可能であれば上述のステップS203の書き込み処理に分岐する。一方、読み出しのみであった場合はステップS207へ進み、書き込み処理は行わず、上位装置すなわちホストコンピュータ109に書き込みができなかった旨を通知し、処理を終了する。
【0046】
次に、フラッシュメモリ106に格納しているユーザ情報をホストコンピュータ109から照会する場合の処理について説明する。このユーザ照会処理のコマンドは、図6のフローチャートで説明した認証処理が終了し、アクセス可能になった状態で有効となるコマンドである。
【0047】
図10は、ユーザ照会時に可搬型ディスク装置107が受け取るユーザ照会コマンドの内容を表した図である。91は本コマンドがユーザ照会コマンドであることを表すコマンドコード、92は登録されているか否かを照会したいユーザ名、93は照会したいユーザ(照会したいユーザ名92)のパスワードである。
【0048】
図11のフローチャートを用い、可搬型ディスク装置107におけるユーザ照会動作について説明する。ユーザ照会コマンドを受け取ると(ステップS301)、現在認証している認証ユーザレベル82(図8)を調べる(ステップS302)。この結果、オーナーで無い場合はホストコンピュータ109にエラーを通知し(ステップS303、S307)、本処理を終了する。認証ユーザレベル82がオーナーであった場合は、このユーザ照会コマンドで受け取ったユーザ名92とパスワード94とが、フラッシュメモリ106に格納されているユーザ名(オーナー名またはゲスト名)とパスワード(オーナーパスワードまたはゲストパスワード)に一致するか否かを調べる(ステップS303、S304)。一致するユーザが登録されていれば、そのユーザの属性(アクセスレベル)と正常にコマンドが終了したことをホストコンピュータ109に通知し処理を終了する(ステップS305、S306)。一方、一致するユーザが登録されていなかった場合はエラーを返す(ステップS305、S307)。
【0049】
次に、フラッシュメモリ106に格納する情報の登録、変更に関わる処理について説明する。
【0050】
図12は、新規にオーナー情報72を登録する場合の、ホストコンピュータ109におけるユーザインタフェースの一例を示した図である。オーナー登録に際しては、オーナー登録ウインドウ200において、オーナー名201、オーナーパスワード202、オーナー属性203を入力し、OKボタン204をクリックすることにより、可搬型ディスク装置107に対してこれらの情報を伴ったオーナー登録コマンドが送られる。ここで属性203は、RW(Read/Write、読み書き可能)とRO(Read Only、読み出しのみ可能)の何れかを設定する。なお、キャンセルボタン205がクリックされると、オーナー登録コマンドが発行されることなく処理が終了する。
【0051】
このオーナー登録の処理の流れを、図13のフローチャートに沿って説明する。なお、この処理は、装着された可搬型ディスクにオーナーが未登録の場合に起動可能である。ユーザによって、オーナー名、オーナーパスワード、オーナー属性が入力され(ステップS401)、オーナー登録コマンドがホストコンピュータ109から可搬型ディスク装置107に送信されると(ステップS402)、オーナー登録コマンドを受信した可搬型ディスク装置107は、既にフラッシュメモリ106にオーナーが登録されているか否かを判別する(ステップS403)。オーナーが登録されていなければステップS402で受信したオーナー登録コマンドに従ってオーナー登録(ステップS404)を行う。一方、既にオーナー登録がされていれば、オーナー登録を行わずに処理を終了する。
【0052】
なお、上記処理ではオーナーの新規登録が行なわれるが、既に登録されているオーナーを変更したい場合は、当該登録されたオーナーによって自分自身の登録を削除してから、上記図12、図13で説明した処理を実行する。なお、現在登録されているオーナーに対してオーナー変更の権限を与えてもよい。この場合、例えば後述のゲスト登録処理におけるインターフェース(図17)に類似のインターフェースを提示し(213、214はそれぞれ新規オーナー名、新規パスワードとなる)、現在のオーナーの認証がとれた場合に限り、新規オーナー名と新規パスワードに変更する。
【0053】
図14は、ゲスト情報73を登録する場合の、ホストコンピュータ109におけるユーザインタフェースの一例を示した図である。ゲスト登録はオーナーにしかできないので、オーナー名とオーナーパスワードの入力も要求される。ゲスト登録ウインドウ210において、オーナー名211、オーナーパスワード212、登録したいゲスト名213、そのゲストパスワード214、ゲスト属性215を入力し、OKボタン216をクリックすることにより、可搬型ディスク装置107に対してこれらの情報を伴ったゲスト登録コマンドが送られる。
【0054】
このゲスト登録の処理の流れを、図15のフローチャートに沿って説明する。ゲスト登録ウインドウ210を用いて、ユーザによって、オーナー名、オーナーパスワード、登録したいゲスト名、ゲストパスワード、ゲスト属性が入力され(ステップS501)、ゲスト登録コマンドがホストコンピュータ109から可搬型ディスク装置107に送信されると(ステップS502)、ゲスト登録コマンドを受信した可搬型ディスク装置107は、フラッシュメモリ106にゲスト名が一致するゲストが既に登録されているか否かを判別する(ステップS503)。登録されていなければ、入力されたオーナー名とオーナーパスワードが、フラッシュメモリ106に格納されているオーナー名、オーナーパスワードと一致しているか否かの判別を行う(ステップS504)。一致していれば、ユーザ入力されたゲスト名、ゲストパスワード、ゲスト属性をフラッシュメモリ106に格納する(ステップS505)。ステップS503においてゲストが登録済みであった場合と、ステップS504においてオーナー名またはオーナーパスワードの何れかが不一致であった場合は、ゲスト登録を行わずに処理を終了する。
なお、オーナーは登録されているゲストを消去する権限も有する。登録ゲストの消去では、ゲスト消去用のウインドウ(図14と類似のウインドウ)を提示し、消去すべきゲスト名(ゲストのパスワードは不要)をゲスト消去コマンドとともに可搬型ディスクに送信する。可搬型ディスクは、オーナーの認証を行なった後に、ゲスト名で特定される認証情報をフラッシュメモリ106より消去する。但し、ホストコンピュータ109内のアクセス許可管理テーブル(後述)に消去されたゲストが登録されている可能性があるので、これをフラッシュメモリ106内の認証情報と同期させるべく、後述のアクセス許可管理テーブルを初期化する処理(図22)を行なう。
【0055】
図16は、ディスク情報71を登録する場合の、ホストコンピュータ109におけるユーザインタフェースの一例を示した図である。ディスク情報登録はオーナーにしかできないため、オーナー名、オーナーパスワードの入力が要求される。ディスク情報登録ウインドウ220において、オーナー名221、オーナーパスワード222、ディスク名223、ロックモード224を入力し、OKボタン225をクリックすることにより、可搬型ディスク装置107に対してこれらの情報を伴ったディスク情報登録コマンドが送られる。なお、本実施形態では、ディスク名とロックモードのうち変更したいものだけを選択できるチェックボックス223a,224aを設け、ディスク情報登録コマンドにより登録したいものだけを送信できるようにしている。
【0056】
このディスク情報登録の処理の流れを、図17のフローチャートに沿って説明する。ユーザによって、オーナー名、オーナーパスワード、ディスク名、ロックモードが入力され(ステップS601)、ディスク情報登録コマンドがホストコンピュータ109から可搬型ディスク装置107に送信されると(ステップS602)、ディスク情報登録コマンドを受信した可搬型ディスク装置107は、入力されたオーナー名とオーナーパスワードが、フラッシュメモリ106に格納されているオーナー名、オーナーパスワードと一致しているか否かの判別を行う(ステップS603)。この判別の結果、両者が一致していれば、ユーザ入力されたディスク名、ロックモードをフラッシュメモリ106に格納する(ステップS604)。一方、ステップS603においてオーナー名またはオーナーパスワードの何れかが不一致であった場合は、ディスク情報の登録を行わずに処理を終了する。このディスク情報登録の処理によって、ロックモードの変更が可能となる。
【0057】
以上、可搬型ディスク装置側の動作を主体として処理を説明した。次いで、ホストコンピュータ109の動作を、図面を用いて説明する。
【0058】
図18は、ホストコンピュータ109の構成を示すブロック図である。図18において、点線で囲った部分がホストコンピュータ109を示す。前述の如く、3700、50、52、107は、それぞれ上述したモニタ、ソケット、マイクロスイッチ、および可搬型ディスク装置である。なお、本実施形態では、ソケット50とホストコンピュータ109の間の接続バス53は、IDEインターフェースとして説明する。
【0059】
ホストコンピュータ109は、マザーボード3000、電源ユニット3300、無停電電源装置(UPS)3400、CD−RWドライブ装置3600、および拡張ボードとして構成されたIDEコントローラボード3100を備える。
【0060】
まず、初めに、マザーボード3000の構成について説明する。3001は、CPUであり、ホストコンピュータ109で実行するアプリケーションソフトウェアの処理全般を司る。3002は、所謂ノースブリッジであり、CPU3001のローカルバス3028に接続されており、CPU3001の動作に応じて、マザーボード3000内部で必要な、各種のタイミング信号を発生する。主な機能としては、リフレッシュ、リード/ライト等のメインメモリ制御、内部バスを介しての入出力デバイス制御、グラフィックス専用バスを介してのグラフィックスコントローラ制御、後述のメモリバス3006、グラフィックス専用バス3007、内部バス3008と、CPUローカルバス3028間の動作タイミングの調停等を司る。
【0061】
3003はメインメモリであり、メモリバス3006を介して、前述のノースブリッジ3002に接続されている。リフレッシュ動作、リード/ライト動作等に必要なタイミング信号は、ノースブリッジ3002より供給される。3004は、グラフィックスコントローラであり、グラフィックスコントローラ専用バス(AGPバス)3007を介してノースブリッジ3002に接続されている。
【0062】
グラフィックスコントローラ3004には、CPU3001が実行するプログラムにより生成される、ライン描画、塗りつぶし、BitBlt等の描画コマンド、あるいは、CPU3001が実行するプログラムにより生成されるラスターイメージの画像データ等が、ノースブリッジ3002、およびAGPバス3007を介して供給される。また、グラフィックスコントローラ3004は、内部に、モニタ3700に送出する映像信号に必要な同期信号を発生する同期信号発生器、デジタル信号をモニタに適したアナログ信号に変換する為のA/D変換器等を含んでいる。更に、後述の表示用ラスターイメージを保持するビデオメモリの動作に必要なタイミング信号等も発生する。
【0063】
3005は、グラフィックコントローラに接続されているビデオメモリであり、前述の如く、グラフィックスコントローラ3004により生成されるラスターイメージの画像データを保持している。ビデオメモリ3005の動作に必要な全ての制御信号は、グラフィックスコントローラ3004より供給される。
【0064】
3011はモニタ接続用コネクタであり、グラフィックスコントローラ3004の映像出力ピンに接続される。グラフィックスコントローラ3004で生成される映像出力信号は、このコネクタ3011と接続ケーブルを介してモニタ3700へ送出される。
【0065】
3009は、所謂サウスブリッジであり、内部バス3008を介して、前述のノースブリッジ3002に接続されている。サウスブリッジ3009は、内部に、ハードディスクドライブ、CD−ROMドライブ等を接続する為のIDEコントローラ、Flash ROM、キーボード、およびマウス等の低速デバイス接続用のLPC(Low Pin Count)バスコントローラ、AC97コントローラ、汎用バス規格であるPCIバスコントローラ、汎用ディスクリート信号入出力コントローラ(PIO)等の標準インターフェースを含んでいる。IDEコントローラはIDEバス3010を介し、LPCバスコントローラはLPCバス3016を介し、AC97コントローラはAC97バス3049を介し、PCIバスコントローラはPCIバス3026を介し、それぞれのバスに接続してあるデバイスと接続されている。更に、外部のボタン型リチウム電池3025より電源供給される、小容量のCMOSメモリも内臓しており、システム動作に必要な、各種パラメータを記録しておくことが出来る。
【0066】
PIO入力端子3027には、前述のソケット50に取り付けてあるマイクロスイッチ52の出力信号線54が接続されており、PIO出力端子3047には、後述のスイッチ3046の制御端子が接続されている。
【0067】
3012、および3048は、IDEバス3010に接続されたコネクタであり、それぞれ接続ケーブルを介して、CD−ROMドライブ装置3600、およびハードディスクドライブ装置3610に接続されている。ハードディスクドライブ3610は、ホストコンピュータ109を制御するオペレーティングシステム(例えば、マイクロソフト社のWindows(登録商標)(商標)オペレーティングシステム)、前述のユーザ認証用アプリケーションソフトウェアを含む各種のアプリケーションソフトウェア等を格納する。
【0068】
3013は、AC97コーデックであり、音声ライン入力コネクタ3017、ステレオ音声ライン出力コネクタ3018および3019を介して入出力されるアナログオーディオ信号を、それぞれA/D変換およびD/A変換し、AC97規格に準拠したプロトコルで、AC97バス3049を介して、前述のサウスブリッジ3009内のAC97コントローラと通信を行なう。
【0069】
3014はFLASH ROMであり、LPCバス3016を介してサウスブリッジ3009に接続されている。電源投入直後に、CPU3001が最初に実行する初期化プログラム、マザーボードに搭載されている周辺デバイス等を制御する基本入出力制御プログラム、ハードディスク3610より、オペレーティングシステム(OS)を起動実行する為のイニシャルブートローダ等を含む。
【0070】
LPCバス3016には、Super IOチップ(IC)3015も接続されている。Super IOチップ3015は、キーボード、マウス、RS232Cシリアル、セントロニクスパラレル等の、低速デバイス用コントローラを集積したICである。Super IOチップ3015には、キーボードコネクタ3020、マウスコネクタ3021、シリアルコネクタ3022、パラレルコネクタ3023を介して、対応する周辺デバイスが接続される。なお、図18には示していないが、図1に示したように、キーボードコネクタ3020には、キーボード3900が、マウスコネクタ3021には、マウス3950が接続されている。
【0071】
3034は、USB2.0規格に準拠したホストコントローラである。ホストコントローラ3034はPCIバス3026に接続され、CPU3001によって実行される制御ソフトウェアにより、コネクタ3039、3040、3041、3042、3043を介して接続される様々なUSB規格準拠の周辺装置を制御する。USB規格準拠の周辺装置としては、デジタルカメラ、プリンタ、スキャナ等が挙げられる。
【0072】
3044および3029は、イーサネット(登録商標)コントローラである。イーサネット(登録商標)コントローラ3029は、コネクタ3038を介し、PAN(Personal Area Network)3200に接続されている。イーサネット(登録商標)コントローラ3044は、スイッチ3046、コネクタ3045を介し、WAN(Wide Area Network)3800に接続されている。スイッチ3046は、前述のサウスブリッジ3009内のPIOの出力信号端子3047に接続されており、CPU3001によって実行されるプログラムの働きにより、任意にON/OFFが制御できる。3030、3031、3032、3033はPCIバスに接続された、拡張ボード搭載用のコネクタである。
【0073】
3035は、電源回路であり、電源コネクタ3037を介して供給されるDC電源より、各部の動作に必要なDC電圧を生成し、各部へ供給する。3300は、電源ユニットであり、無停電電源装置3400よリ供給されるAC電源より、DC電圧を生成し、電源回路3035へ供給する。3400は、無停電電源装置であり、内臓バッテリにより、外部AC電源の出力低下時にも、間断なく、電源ユニット3300に電力供給ケーブル3500を介して、AC電源を供給するように動作する。また、外部AC電源の出力低下検知時には、コネクタ3036、信号線3024を介して、CPU3001により実行される電源管理制御プログラムへ、電源異常の発生した事が通知される。信号線3024は、前述のSuper IOチップ3015内部のシリアルコントローラに接続されている。
【0074】
次いで、本実施形態のホストコンピュータ109によって実行される制御プログラムの動作を、図を用いて説明する。
【0075】
図19は、本実施形態によるディスクアクセスの動作を模式的に説明した図である。図19において、イチロー、ジローは、前述の可搬型ディスク装置107に登録されているユーザであり、サブローは未登録ユーザである。イチロー、ジロー、サブローの何れも、ホストコンピュータ109を使用するユーザである。各ユーザは、キーボード3900、およびマウス3950を介して、ホストコンピュータ109にアクセスしても良いし、前述のWAN3800、あるいはPAN3200に接続してある、他のクライアントコンピュータからネットワークを介してアクセスしても良い。
【0076】
さて、図19において、300はホストコンピュータ109内部におけるソフトウェア階層を模式的に示している。最上位の階層はアプリケーションプログラム301であり、各ユーザが可搬型ディスク装置107に対して何らかのデータの書き込みまたは読み出しを要求する。アプリケーションプログラム301が可搬型ディスク装置107に対して書き込み、または読み出し処理を行なう場合、通常は、オペレーティングシステムのファイルシステム(303)に対して、書き込み、または読み出し処理のサービスを要求する。
【0077】
本実施形態によるアクセス制御プログラムは、アプリケーション301とファイルシステムドライバ303の中間に位置するように構成されている。図19において、アクセス許可管理テーブル302として示された部分がこれに該当する。この部分は、実際には、管理テーブルだけがあるのではなく、管理テーブルのメンテナンス機能、および管理テーブルを使用した各ユーザ毎のアクセス許可管理機能を有する。なお、管理テーブルは、ホストコンピュータ109上のメインメモリ上に存在する。
【0078】
動作の詳細は後述するが、例えば、図示した管理テーブルにおいては、イチローには可搬型ディスク装置107に対して書き込みおよび読み出し許可が与えられ、ジローには可搬型ディスク装置107に対して書き込み許可および読み出し不許可が与えられていることを示す情報が書き込まれている。この状態で、アプリケーション301により、各ユーザが可搬型ディスク装置107に対して書き込み、あるいは読み出し処理を要求すると、本実施形態によるプログラムは、アクセス許可管理テーブルを基に、次のような処理を行なう。
【0079】
▲1▼イチローからの書き込みあるいは読み出し処理要求:
管理テーブル302により、可搬型ディスク装置107に対するアクセスは、書き込み、読み出しともに許可されていることが判明するので、アプリケーション301からの書き込みあるいは読み出し処理要求を、ファイルシステムに対しそのまま通過させる(但し、認証ユーザの属性83(図8)の内容とのANDがとられる。例えば、認証ユーザの属性が読み書き可能であれば上記のように書込み及び読み出しの処理要求が通過されるが、認証ユーザの属性が読み出しであれば、書込み要求はブロックされる。詳細は図26により後述する)。
【0080】
▲2▼ジローからの書き込みあるいは読み出し処理要求:
管理テーブル302により、可搬型ディスク装置107に対するアクセスは、書き込みは不許可であり、読み出しは許可されていることが判明するので、アプリケーション301からの書き込み処理要求をブロックし、ファイルシステムに対し通知せず、エラーステータスを当該アプリケーション301に返す。一方、アプリケーション301からの読み出し処理要求については、ファイルシステムに対し、そのまま通過させる。なお、書込み処理要求をブロックした際には、当該要求者(ジローのコンピュータ)に対してその旨の通知を行なうようにしてもよい。
【0081】
▲3▼サブローからの書き込みあるいは読み出し処理要求:
管理テーブル302にはサブローは登録されておらず、可搬型ディスク装置107に対するアクセス権限は不明である。よって、可搬型ディスク装置107に対して、前述のユーザ照会コマンドを発行する。その結果、未登録ユーザであることが判明したら、アプリケーション301からの書き込み処理要求および読み出し処理要求をともにブロックし、ファイルシステムに対して通知せず、エラーステータスをアプリケーション301に返す。なお、読み出し処理要求及び書込み処理要求をブロックした際には、当該要求者(ジローのコンピュータ)に対してその旨の通知を行なうようにしてもよい。
【0082】
以下、フローチャートを用いて、上記の動作を詳細に説明する。
【0083】
図20は、ディスク挿入時のホストコンピュータ109内の本実施形態にかかわる処理をフローチャートで示したものである。
【0084】
前述したように、可搬型ディスク装置107がソケット50に装着されると、マイクロスイッチ52はオンとなり、信号線54、サウスブリッジ3009のPIO入力線3027を経由して、CPU3001に対して割り込み処理要求が発生される。図20は、この割り込み処理要求に対応した処理ルーチンのフローを示している。
【0085】
可搬型ディスク装置107がソケット50に装着されたことを検知すると、ステップS701において、可搬型ディスク装置107に対して前述の情報要求コマンドを発行する。次いで、ステップS702において、可搬型ディスク装置107より、情報要求コマンドに対する応答として図7に示した如き登録情報を取得する。
【0086】
ステップS703では、ステップS702で取得した登録情報に含まれるロックモード71cの値を調べ、当該可搬型ディスク装置が、ロック状態であるか否かを判断する。ロック状態であった場合は、ステップS704に進み、ユーザに対し、ユーザ名とパスワードの入力を促す。図31は、ユーザ名とパスワードの入力を促す場合の、ユーザインターフェースの一例を示した図である。ユーザが、ユーザ名とパスワードをそれぞれ該当するフィールド321、322に入力した後、OKボタン323をクリックすることにより、ステップS704の処理が完了し、ステップS706へと処理が進む。
【0087】
ステップS706では、ステップS704でユーザが入力したユーザ名を、変数unameに、パスワードを変数passwdに保存し、後述のアクセス可否判断処理を行なう。その後、処理はステップS707へと進む。なお、ステップS706において実行されるアクセス可否判断処理では、変数unameに保存されたユーザ名、変数passwdに保存されたパスワードが、当該可搬型ディスク装置107に登録されたユーザであるか否かを調べる。そして、その結果として、アクセスの可否を変数goAheadに、許可されているアクセスモードを変数modeに保存するように処理が行なわれる。なお、変数goAheadの値が1の場合はアクセス許可を示し、値が0の場合はアクセス不許可を示す。また、変数modeには、当該ユーザに許可されたアクセスモード、すなわち読み出し可能および書き込み可能を意味するフラグが各々図32に示したビット位置にセット、またはリセットされる。本例では、ビット内容が1であればアクセス権限有りを、ビット内容が0であればアクセス権限無しを意味する。
【0088】
一方、ステップS703にて、ステップS702で取得した登録情報に含まれる、図3に示したディスク情報内のロックモード71cの値を調べた結果、当該可搬型ディスク装置107が非ロック状態であった場合は、変数goAheadに値1を保存し、ステップS707へと進む。
【0089】
ステップS707では、変数goAheadの値を調べ、其の値が1、すなわち当該可搬型ディスク装置107に当該ユーザが登録されている場合、あるいは当該可搬型ディスク装置107が非ロック状態である場合にはステップS708へ進む。一方、其の値が0、すなわち当該可搬型ディスク装置107がロック状態であり、かつ、当該可搬型ディスク装置107に当該ユーザが登録されていない場合には、ステップS709へと進む。
【0090】
ステップS708では、当該可搬型ディスク装置107をシステムが使用可能状態とする為に、当該可搬型ディスク装置107より、パーティション情報を読み取り、ホストコンピュータ109で当該可搬型ディスク装置107を正しく取り扱う為の内部変数の初期化等を行なう。具体的な処理内容は、ホストコンピュータ109に搭載しているオペレーティングシステム、可搬型ディスク装置107を制御するデバイスドライバの構造に依存するので、詳細は、ここでは詳しくは説明しない。ステップS710では、当該可搬型ディスク装置107をファイルシステムに登録して処理を終了する。
【0091】
ステップS709では、当該可搬型ディスク装置107がロック状態であり、かつ、当該可搬型ディスク装置107に当該ユーザが登録されていない旨を示すダイアログ画面等をモニタ3700に表示して本処理を終了する。
【0092】
図21は、上述したステップS706におけるアクセス可否判断処理の動作を説明する為のフローチャートである。本処理ルーチンに制御が移る前に、ステップS704によって変数unameにはユーザ名が、変数passwdにはパスワードが予め書き込まれている。また、システム初期化時に、変数authには、値0が書き込まれている。
【0093】
本アクセス可否判断処理ルーチンに制御が移ると、ステップS761にて、当該可搬型ディスク装置107が、既に、ユーザ認証済みであるか否かの判断を行なう。これは、変数authの値を調べることにより行なわれる。変数authの値が1であれば、当該可搬型ディスク装置107は認証済みであり、処理はステップS762に進む。一方、ステップS761において変数authの値が0であれば、当該可搬型ディスク装置107は未認証であり、従って処理はステップS768に進む。
【0094】
ステップS768では、前述のユーザ認証コマンドを当該可搬型ディスク装置107に対して発行する。この認証の結果、認証OKの場合は、変数successに値1を、認証NGの場合は、変数successに値0を書き込み、ステップS769へと進む。ステップS769では、変数successの値を調べ、其の値が1であればステップS770へ進み、其の値が0であればステップS775へ進む。すなわち、ステップS768で行なわれた当該可搬型ディスク装置107に対するユーザ認証の結果、認証に成功した場合はステップS770へ、失敗した場合はステップS775へと進む。
【0095】
ステップS770では、変数authに値1を書き込み、当該可搬型ディスク装置107が認証済みであることをマークし、ステップS771へと進む。ステップS771では、詳細は後述するが、アクセス許可管理テーブルの初期化を行い、ステップS772へと進む。
【0096】
ステップS772では、前述の情報要求コマンドを、当該可搬型ディスク装置107に対して発行し、ステップS773へと進む。ステップS773では、当該可搬型ディスク装置107より、ステップS772で発行した情報要求コマンドに対する応答として、図7に示した登録情報を取得し、ステップS774へと進む。ステップS774では、変数uname、およびステップS773で取得した登録情報から、必要なデータを上述したアクセス許可管理テーブル302にコピーし、ステップS764へと進む。
【0097】
ステップS775では、ステップS768におけるユーザ認証に失敗、あるいは、後述のステップS766におけるユーザ照会に失敗し、当該可搬型ディスク装置107に対するアクセス権を獲得できなかったことを、変数goAheadに値0を書き込むことにより示し処理を終了する。
【0098】
一方、ステップS761において、当該可搬型ディスク装置107が既にユーザ認証済みであると判断され、ステップS762に進んだ場合には、以下のように処理される。まず、ステップS762において、詳細は後述するが、変数unameに保持されているユーザ名がアクセス許可管理テーブル302に存在するか否かを調べる。この処理の結果、もし変数unameに保持されているユーザ名がアクセス許可管理テーブル302に存在しない場合は変数indexに値0を書き込み、存在する場合はアクセス許可管理テーブル302内の相対位置を示す0以外の値を変数indexに書き込むよう処理を行い、ステップS763へと進む。ステップS763では、変数indexの値を調べ、其の値が0であればステップS766へ進み、其の値が0以外であればステップS764へ進む。すなわち、変数unameに保持されているユーザ名が、既にアクセス許可管理テーブル302に存在する場合は、ステップS764へ進み、存在しない場合は、ステップS766へ進む。
【0099】
ステップS766では、前述のユーザ照会コマンドを当該可搬型ディスク装置107に対して発行する。そして、その照会結果が照会OKの場合は変数registeredに値1を、照会NGの場合は変数registeredに値0を書き込み、ステップS767へと進む。ステップS767では、変数registeredの値を調べ、其の値が1の場合は、前述のステップS772へ、其の値が0の場合は、前述のステップS775へと進む。すなわち、ステップS766におけるユーザ照会コマンドの結果、変数unameに保存されているユーザ名のユーザが、当該可搬型ディスク装置107に登録されており、アクセスが許可されている場合にはステップS772へと進み、未登録でアクセスが不許可の場合には、ステップS775へと進む。
【0100】
ステップS764では、アクセス許可管理テーブル302から、当該ユーザのアクセスモードを、変数modeにコピーし、ステップS765へ進む。ステップS765では、当該可搬型ディスク装置107に対するアクセス権を獲得できたことを、変数goAheadに値1を書き込むことにより示し、本アクセス可否判断処理を終了する。
【0101】
図22は、アクセス管理許可テーブル(ステップS771)の初期化処理の動作を示すフローチャートである。
【0102】
ステップS801においては、ステップS802以降の処理の為に、変数indexの値を1に初期化する。ステップS802では、変数indexの値と、変数indexの取り得る値の最大値を表す定数MaxUserの値との比較を行い、変数indexの値が、定数MaxUserの値以下であれば、ステップS803に進む。変数indexの値が定数MaxUserの値より大きければ、ステップS809進む。ここでは、MaxUserの値は規定しないが、10でも20でも、ホストコンピュータ109に想定される最大ユーザ数以上の適当な整数値であれば何でも構わない。
【0103】
ステップS803においては、変数indexにより相対位置を特定される、アクセス許可管理テーブル302のインデックスフィールド(table.index[index])に、変数indexの値をコピーする。ステップS804においては、変数indexにより相対位置を特定される、アクセス許可管理テーブル302のユーザ名フィールド(table.uname[index])に空白文字列(“”)を書き込む。ステップS805においては、変数indexにより相対位置を特定される、アクセス許可管理テーブル302の認証フィールド(table.auth[index])に、不許可を意味する定数NOを書き込む。NOの値は、前述の説明によれば値0である。ステップS806においては、変数indexにより相対位置を特定される、アクセス許可管理テーブル302のアクセスモードフィールド(table.mode[index])に値0を書き込む。値0は、前述の説明では、書き込みと読み出しともに不許可を意味する。ステップS807においては、変数indexにより相対位置を特定される、アクセス許可管理テーブルのリンクフィールド(table.link[index])に変数indexの値をコピーする。
【0104】
以上、ステップS803からステップS807までの処理が完了したら、ステップS808へと進み、変数indexの値を1だけ増分し、ステップS801に戻って上述の処理を繰り返す。
【0105】
結果、変数indexの値が、1から定数MaxUserまでの範囲で相対位置を特定されるアクセス許可管理テーブル302の各フィールドに所定の値が書き込まれることになる。最後に、変数indexの値が、定数MaxUserの値より大きくなったとろこで、ステップS809へ進み、変数indexに値0を書き込み、アクセス許可管理テーブルの初期化処理は完了する。図27に初期化処理完了後のアクセス許可管理テーブルの状態を示す。
【0106】
図23は、アクセス許可管理テーブルへ、新規ユーザの追加登録する際の処理(ステップS774)を説明する為の、フローチャートである。
【0107】
ステップS851においては、ステップS852以降の処理の為に、変数indexの値を1に初期化する。ステップS852では、変数indexの値と、変数indexの取り得る値の最大値を表す定数MaxUserの値との比較を行い、変数indexの値が、定数MaxUserの値以下であれば、ステップS853に進み、変数indexの値が、定数MaxUserの値より大きければ、ステップS863へ進む。ここで、定数MaxUserは上記図22のフローチャートで説明したものと同じである。
【0108】
ステップS853では、変数indexにより相対位置を特定される、アクセス許可管理テーブル302のインデックスフィールド(table.index[index])の値と変数indexの値を比較し、その値が等しくなければ処理はステップS854へ進み、値が等しければ処理はステップS855へ進む。ステップS854では、変数indexの値を1だけ増分し、ステップS852に戻り上記処理を繰り返す。
【0109】
ステップS855では、変数indexにより相対位置を特定される、アクセス許可管理テーブル302のユーザ名フィールド(table.uname[index])に変数unameに保持されているユーザ名をコピーする。ステップS856では、変数indexにより相対位置を特定されるアクセス許可管理テーブル302の認証フィールド(table.auth[index])に、許可を意味する定数YESを書き込む。YESの値は、前述の説明では、値1である。
【0110】
また、ステップS857〜ステップS861では、アクセスモードフィールド(table.mode[index])の設定が行なわれる。まず、ステップS857において、変数indexにより相対位置を特定されるアクセス許可管理テーブルのアクセスモードフィールド(table.mode[index])に、書き込み不許可及び読み出し不許可を示す値0を書き込む。
【0111】
ステップS858では、前述の情報要求コマンドにより得られる、当該認証ユーザの登録情報内の属性情報、すなわち、オーナの場合は図2の(c)に示したオーナ属性、ゲストの場合は図2の(d)に示したゲスト属性に含まれる、当該認証ユーザに許可された書き込み許可属性に則り、対応するアクセスモードフィールドを設定する。すなわち、書込み許可属性が書込み許可を示す場合は、ステップS858からステップS859へ進み、変数indexにより相対位置が特定されるアクセス許可管理テーブルのアクセスモードフィールドの書き込み許可フラグを1にセットする。一方、不許可の場合は、何もせずに、ステップS860へ進む。
【0112】
ステップS860では、前述の情報要求コマンドにより得られる、当該認証ユーザの登録情報内の属性情報、すなわち、オーナの場合は、図2の(c)に示したオーナ属性、ゲストの場合は、図2の(d)に示したゲスト属性に含まれる、当該認証ユーザに許可された読み出し許可属性に則ってアクセスモードフィールドが設定される。すなわち、読み出し許可属性が読み出し許可を示す場合は、ステップS861へ進み、変数indexにより相対位置を特定されるアクセス許可管理テーブルのアクセスモードフィールドの読み出し許可フラグを、1にセットする。不許可の場合は、何もせずに、ステップS862へ進む。
【0113】
更に、ステップS862では、当該フィールドが有効であることを示す為に、変数indexにより相対位置を特定される、アクセス許可管理テーブルのリンクフィールド(table.link[index])に、変数indexの値に1を加えた値をコピーし、処理を終了する。
【0114】
一方、ステップS852で、変数indexの値と、変数indexの取り得る値の最大値を表す定数MaxUserの値との比較を行い、変数indexの値が、定数MaxUserの値より大きかった場合は、ステップS863へ進む。これは、アクセス許可管理テーブルがオーバーフローしたことを示す。オーバーフロー時の、ホストコンピュータ109のアプリケーションの処理は説明しないが、例えば、ユーザにその旨を通知するダイアログを表示し、ユーザからのリクエストをキャンセルするように処理を行なえば良い。
【0115】
図28は、当該可搬型ディスク装置107に、書き込み許可、読み出し許可として登録されているユーザ、イチローを登録した後の、前記アクセス許可管理テーブルの状態を示したものである。
【0116】
図29は、当該可搬型ディスク装置107に、書き込み不許可、読み出し許可として登録されているユーザ、ジローを登録した後の、前記アクセス許可管理テーブルの状態を示したものである。
【0117】
更に、図30は、当該可搬型ディスク装置107に、登録されていないユーザ、サブローによってディスクアクセスしようとした後のアクセス許可管理テーブルの状態を示したものである。この場合の結果は、図29と同様である。
【0118】
図24は、アクセス管理許可テーブル302に当該ユーザが登録済みであるか否かを確認するユーザ確認処理ルーチンの動作を説明する為のフローチャートである。
【0119】
ステップS881においては、ステップS882以降の処理の為に、変数indexの値を1に初期化する。ステップS882では、変数indexの値と、変数indexの取り得る値の最大値を表す定数MaxUserの値との比較を行い、変数indexの値が、定数MaxUserの値以下であれば、ステップS883に進み、変数indexの値が、定数MaxUserの値より大きければ、ステップS885へ進む。ここで、定数MaxUserは上記図22、図23のフローチャートで説明したものと同じである。
【0120】
ステップS883では、変数indexにより相対位置を特定される、アクセス許可管理テーブルのユーザ名フィールド(table.uname[index])と、変数unameに保持されるユーザ名を比較し、一致した場合は、そのままユーザ確認処理を終了する。不一致の場合は、ステップS884に進み、変数indexの値を1だけ増分し、ステップS882へ戻る。ステップS885では、変数indexに、値0を書き込み、処理を終了する。
【0121】
以上の処理により、変数unameに保持されたユーザ名と一致するユーザがアクセス許可管理テーブルに登録されている場合は、アクセス許可管理テーブルの相対位置を示す値が変数indexに保持される。一方、変数unameに保持されたユーザ名と一致するユーザがアクセス許可管理テーブルに登録されていなかった場合は値0が変数indexに保持されるようになる。
【0122】
図25は、当該可搬型ディスク装置107が、ホストコンピュータ109から取り外された事を検知した際の処理を示したフローチャートである。
【0123】
前述したように、可搬型ディスク装置107が、ソケット50より取り外されると、マイクロスイッチ52はオフとなり、信号線54、サウスブリッジ3009のPIO入力線3027を経由して、CPU3001に対して割り込み処理要求が発生する。図25は、この割り込み処理要求に対応した処理ルーチンのフローを示している。
【0124】
上記割り込み処理要求を受け付けると、ステップS901で、当該可搬型ディスク装置107のファイルシステムへの登録を削除する。次いで、ステップS902では、可搬型ディスク装置107が、未認証状態であることを示す値0を、変数authに書き込む。次いで、ステップS903で、アクセス許可管理テーブルを初期化(図22)し、可搬型ディスク装置107取り外し処理を終了する。
【0125】
次に、ディスクアクセス要求時の処理について図26のフローチャートを参照して説明する。本処理は例えば、ネットワーク上の他のコンピュータから可搬型ディスク装置107にアクセスがあった場合に起動されることになる。まず、ステップS921において、図21のフローチャートで説明したアクセス可否の判断処理を行なう。ステップS922ではこのアクセス可否の判断処理の結果をチェックし、アクセス可能であると判断されていれば(goAhead=1)ステップS923へ進む。
【0126】
ステップS923では、アクセス可否判断処理の結果、indexが1となっているか否かを判定する。indexが1である場合は、当該アクセス要求者が、ディスク挿入検知時(図20)にアクセスした者であることを示す。従って、可搬型ディスク装置のRAMに一時的に記憶されているディスク認証ユーザ(図8)は当該アクセス要求者と一致するので、その属性(アクセス可能動作モード)も一致するので、そのままアクセス処理が行なわれる。
【0127】
ステップS923でindex≠1であった場合は、ステップS924へ進む。この場合、当該アクセス要求者はディスク認証ユーザとは異なるため、その属性(アクセス可能動作モード)も異なる可能性がある。従って、可搬型ディスク装置のRAMに一時的に記憶されているディスク認証ユーザの属性(図8の83)を変数authmodeにコピーし(ステップS924)、当該アクセス要求者の属性が保持されている変数modeとのアンドをとり、これをアクセス可能動作モードとする(ステップS925)。例えば、認証ユーザが読み出しのみを許可されている場合、当該アクセス要求者が書込みと読み出しを許可されたユーザであったとしても、当該アクセスにおいては読み出しのみが許可されることになる(仮にステップS924、S925の処理がなくても、図9で説明した可搬型ディスクのデータ書き込み処理によって同様のアクセス結果を生じることになる)。
【0128】
以上説明したように上記実施形態によれば、オーナー認証されたユーザであれば、ユーザ照会コマンドによって登録ユーザの照会が可能となり、複数ユーザ対応のデータ保全機能を備えながら、上位装置によって、同時に複数ユーザからのアクセスを制御することが可能となる。
【0129】
さらには、オーナー認証されたユーザであれば、ディスク情報登録コマンドにより、ディスクを「ロック状態」と「非ロック状態」とに簡単に切り替えることが可能であり、ディスクに設定されたユーザ認証情情報(オーナー情報とゲスト情報)を消去すること無しに、認証無しでディスクにアクセスすることが可能となる。よって、本アクセス制御方法に対応していない本体装置(従来のパソコン等)でも、本可搬型記憶装置の使用が可能となり、利便性が向上する。
【0130】
なお、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読出し実行することによっても、達成されることは言うまでもない。
【0131】
この場合、記憶媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【0132】
プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク,ハードディスク,光ディスク,光磁気ディスク,CD−ROM,CD−R,磁気テープ,不揮発性のメモリカード,ROMなどを用いることができる。
【0133】
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0134】
さらに、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0135】
【発明の効果】
以上説明したように、本発明によれば、複数ユーザに対応したデータ保全機能を備えながら、同時に複数ユーザからアクセスすることが可能となる。
さらに本発明の他の目的は、権限を有するユーザであれば簡単にデータ保全機能を有効化/無効化することが可能となる。
【図面の簡単な説明】
【図1】可搬型ディスク装置の構成を示すブロック図である。
【図2】フラッシュメモリに格納する登録情報のフォーマットと、ディスク情報、オーナー情報、ゲスト情報の詳細を示す図である。
【図3】ロック状態に設定されている場合の、可搬型ディスク装置とホストコンピュータとの通信動作を示すタイムチャートである。
【図4】非ロック状態に設定されている場合の、可搬型ディスク装置とホストコンピュータとの通信動作を示すタイムチャートである。
【図5】ユーザ認証に失敗した場合の、可搬型ディスク装置とホストコンピュータとの通信動作を示すタイムチャートである。
【図6】ユーザ認証処理の手順を示すフローチャートである。
【図7】ホストコンピュータに出力する登録情報の内容を示す図である。
【図8】ユーザ認証後、RAMに一時的に記憶される情報を示す図である。
【図9】データ書き込み処理における可搬型ディスク装置のフローチャートである。
【図10】ユーザ照会コマンドの内容を示す図である。
【図11】可搬型ディスク装置におけるユーザ照会処理を示すフローチャートである。
【図12】オーナー登録処理の画面表示の例を示す図である。
【図13】オーナー登録処理を説明するフローチャートである。
【図14】ゲスト登録処理の画面表示の例を示す図である。
【図15】ゲスト登録処理を説明するフローチャートである。
【図16】ディスク情報登録処理の画面表示の例を示す図である。
【図17】ディスク情報登録処理を説明するフローチャートである。
【図18】ホストコンピュータ109の構成を示すブロック図である。
【図19】本実施形態による制御プログラムの動作を模式的に説明した図である。
【図20】可搬型ディスク装置挿入時の処理を説明するためのフローチャートである。
【図21】アクセス可否判断処理ルーチンの動作を説明するためのフローチャートである。
【図22】アクセス許可管理テーブルの、初期化処理を説明するためのフローチャートである。
【図23】アクセス許可管理テーブルへ、新規ユーザを登録する際の動作を説明するためのフローチャートである。
【図24】ユーザ名が、アクセス管理許可テーブルに登録されているか否かを調べる処理ルーチンの動作を説明するためのフローチャートである。
【図25】可搬型ディスク取り外しの動作を説明するためのフローチャートである。
【図26】可搬型ディスク装置へのアクセス要求があった場合の、ホストコンピュータにおける処理を説明するためのフローチャートである。
【図27】初期化処理完了後のアクセス許可管理テーブルの状態を示した図である。
【図28】ユーザ認証後のアクセス許可管理テーブルの状態を示した図である。
【図29】登録ユーザが、ユーザ照会した後のアクセス許可管理テーブルの状態を示した図である。
【図30】未登録ユーザが、ユーザ照会した後のアクセス許可管理テーブルの状態を示した図である。
【図31】ユーザ名とパスワード入力を促すダイアログの説明図である。
【図32】アクセスモードを保持する変数modeのビット割り当ての説明図である。
Claims (9)
- 外部装置よりアクセスが可能なデータを記憶する記憶媒体を有する記憶装置であって、
複数のアクセス者の各々を認証するための認証情報を記憶する記憶手段と、
外部装置から入力された認証情報と前記記憶手段に記憶された認証情報とに基づいて認証処理を行なう認証手段と、
前記認証手段によって認証がとれた場合に、前記外部装置による前記記憶媒体へのアクセスが可能な状態へ移行する制御手段と、
前記制御手段によってアクセスが可能な状態へ移行した後に、外部からの認証情報を伴った照会指令に応じて前記記憶手段に当該認証情報が記憶されているか否かを通知する照会手段と
を備えることを特徴とする記憶装置。 - 前記記憶手段は、各アクセス者毎に、前記記憶媒体に対する読み出し/書き込みの両方または一方のみを許可設定する許可設定情報を記憶し、
前記制御手段は、前記認証手段によって認証されたアクセス者に対応する許可設定情報に基づいて、前記記憶媒体へのアクセスを制限することを特徴とする請求項1に記載の記憶装置。 - 前記記憶手段は、前記認証情報によって特定される複数のアクセス者の各々についてオーナーであるか否かを示すオーナー情報を含み、
前記制御手段は、認証されたアクセス者がオーナーである場合に、前記記憶手段に記憶された情報の更新を許可することを特徴とする請求項1または2に記載の記憶装置。 - 前記記憶手段は、前記認証情報によって特定される複数のアクセス者の各々についてオーナーであるか否かを示すオーナー情報を含み、
前記制御手段は、認証されたアクセス者がオーナーである場合に、前記記憶手段に記憶されたアクセス者を照会可能とすることを特徴とする請求項1乃至3のいずれかに記載の記憶装置。 - 前記記憶手段は、前記認証情報によって特定される複数のアクセス者の各々についてオーナーであるか否かを示すオーナー情報を含み、
前記制御手段は、認証されたアクセス者がオーナーである場合に、前記記憶手段に記憶された認証情報に基づくアクセス制御を有効化/無効化することを可能とすることを特徴とする請求項1乃至4のいずれかに記載の記憶装置。 - 前記認証情報は一方向性関数で変更された値で記憶されていることを特徴とする請求項1乃至5のいずれかに記載の記憶装置。
- 前記記憶手段は、不揮発性の半導体デバイスに前記認証情報を記憶することを特徴とする請求項1に記載の記憶装置。
- 前記記憶媒体はデータを記憶する円盤型磁気媒体であり、
前記円盤型磁気媒体を回転させるためのスピンドルモータと、
前記認証手段による認証の後に前記スピンドルモータを回転する駆動手段とを更に備えることを特徴とする請求項1乃至7のいずれかに記載の記憶装置。 - 外部装置よりアクセスが可能なデータを記憶する記憶媒体を有する記憶装置の制御方法であって、
複数のアクセス者の各々を認証するための認証情報をメモリに記憶する記憶工程と、
外部装置から入力された認証情報と前記メモリに記憶された認証情報とに基づいて認証処理を行なう認証工程と、
前記認証工程によって認証がとれた場合に、前記外部装置による前記記憶媒体へのアクセスが可能な状態へ移行する制御工程と、
前記制御工程によってアクセスが可能な状態へ移行した後に、外部からの認証情報を伴った照会指令に応じて前記メモリに当該認証情報が記憶されているか否かを通知する照会工程と
を備えることを特徴とする記憶装置の制御方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002243843A JP2004086336A (ja) | 2002-08-23 | 2002-08-23 | 記憶装置及びその制御方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002243843A JP2004086336A (ja) | 2002-08-23 | 2002-08-23 | 記憶装置及びその制御方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004086336A true JP2004086336A (ja) | 2004-03-18 |
Family
ID=32052504
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002243843A Withdrawn JP2004086336A (ja) | 2002-08-23 | 2002-08-23 | 記憶装置及びその制御方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004086336A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007272282A (ja) * | 2006-03-30 | 2007-10-18 | I-O Data Device Inc | 情報保護機能付記録装置、それを用いた情報保護システム及びその方法 |
WO2016069023A1 (en) * | 2014-10-31 | 2016-05-06 | Hewlett-Packard Development Company, L.P. | Providing auxiliary services or functionality on an apparatus |
-
2002
- 2002-08-23 JP JP2002243843A patent/JP2004086336A/ja not_active Withdrawn
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007272282A (ja) * | 2006-03-30 | 2007-10-18 | I-O Data Device Inc | 情報保護機能付記録装置、それを用いた情報保護システム及びその方法 |
JP4598707B2 (ja) * | 2006-03-30 | 2010-12-15 | 株式会社アイ・オー・データ機器 | 情報保護機能付記録装置、それを用いた情報保護システム及びその方法 |
WO2016069023A1 (en) * | 2014-10-31 | 2016-05-06 | Hewlett-Packard Development Company, L.P. | Providing auxiliary services or functionality on an apparatus |
CN107209691A (zh) * | 2014-10-31 | 2017-09-26 | 惠普发展公司,有限责任合伙企业 | 在装置上提供辅助服务和功能性 |
US10592289B2 (en) | 2014-10-31 | 2020-03-17 | Hewlett-Packard Development Company, L.P. | Providing auxiliary services or functionality on an apparatus |
CN107209691B (zh) * | 2014-10-31 | 2021-05-11 | 惠普发展公司,有限责任合伙企业 | 在装置上提供辅助服务和功能性 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6915427B2 (en) | Hub apparatus with copyright protection function | |
JP3389186B2 (ja) | 半導体メモリカード及び読み出し装置 | |
JP3688292B2 (ja) | 取外し可能なメモリを有するコンピュータ・メモリにおいてデータ・セキュリティを講じる装置および方法 | |
US8032756B2 (en) | Information processing system | |
US8135880B2 (en) | USB mass storage locking | |
KR20210090505A (ko) | 메모리 컨트롤러, 및 이를 포함하는 스토리지 장치 | |
TW200837602A (en) | Cryptographic key containers on a USB token | |
US8695085B2 (en) | Self-protecting storage | |
JPWO2005048111A1 (ja) | 半導体メモリカード | |
JP2008090494A (ja) | 環境移行システム、端末装置、情報処理装置、管理サーバ、可搬型記憶媒体 | |
WO2006031030A1 (en) | Method and apparatus for searching for rights objects stored in portable storage device using object identifier | |
US20100106928A1 (en) | Storage device, storage system, and unlock processing method | |
US7814562B2 (en) | Information processing apparatus, control method thereof, control program, and storage medium | |
JP2007133770A (ja) | メモリカード、プロセッサモジュールおよびホスト機器の制御方法 | |
JP2004086337A (ja) | 情報処理装置及び方法 | |
JP2005222409A (ja) | オペレーティングシステム、ライセンス管理サーバ、ライセンス管理方法、ライセンス管理プログラム、及び記録媒体 | |
JP5062687B2 (ja) | 情報処理装置 | |
JP2004086336A (ja) | 記憶装置及びその制御方法 | |
JP6154683B2 (ja) | 計算機システム | |
JP4757482B2 (ja) | 記憶装置及び記憶装置制御方法 | |
JP2010237768A (ja) | 補助記憶装置 | |
JP2003345789A (ja) | 文書管理システム、文書管理装置、認証方法、コンピュータ読み取り可能なプログラム、及び記憶媒体 | |
JP4342326B2 (ja) | データベース制御装置 | |
JP5168359B2 (ja) | 入出力管理装置、情報処理装置及びコンピュータプログラム | |
JP4434428B2 (ja) | 情報端末装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20051101 |