JP2007317053A - コマンド実行方法、usbストレージデバイスのコントローラ及び該コントローラを搭載してなるusbストレージデバイス。 - Google Patents

コマンド実行方法、usbストレージデバイスのコントローラ及び該コントローラを搭載してなるusbストレージデバイス。 Download PDF

Info

Publication number
JP2007317053A
JP2007317053A JP2006147768A JP2006147768A JP2007317053A JP 2007317053 A JP2007317053 A JP 2007317053A JP 2006147768 A JP2006147768 A JP 2006147768A JP 2006147768 A JP2006147768 A JP 2006147768A JP 2007317053 A JP2007317053 A JP 2007317053A
Authority
JP
Japan
Prior art keywords
usb
command
controller
host
data
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.)
Pending
Application number
JP2006147768A
Other languages
English (en)
Inventor
Kaihei Ito
海平 伊藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hagiwara Sys Com Co Ltd
Original Assignee
Hagiwara Sys Com Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hagiwara Sys Com Co Ltd filed Critical Hagiwara Sys Com Co Ltd
Priority to JP2006147768A priority Critical patent/JP2007317053A/ja
Publication of JP2007317053A publication Critical patent/JP2007317053A/ja
Pending legal-status Critical Current

Links

Abstract

【課題】Windows(登録商標)2000およびWindows(登録商標)XP以降の制限ユーザがUSBデバイスに有効にアクセスし得る新たなコマンド実行方法、並びに該方法を実行し得るUSBデバイスのコントローラ及び該コントローラを搭載したUSBデバイスを提供。
【解決手段】USBデバイスのコントローラに、USBスタンダードデバイスリクエストコマンドで定義されている “bmRequest_type”、“bRequest”、“wValue”、“wIndex”の少なくとも一つに、前記それぞれに規定されているデータ長であって、且つUSBスタンダードデバイスリクエストコマンドで定義されていない所定の値が設定されたものを一のコマンドとして解釈しこれを実行するプログラムを記憶させておき、これによって、USBスタンダードデバイスリクエストコマンドでは実行せしめることのできない処理を前記デバイスに実行させる
【選択図】 図1

Description

本発明は、コンピュータのオペレーティングシステムであるWindows(登録商標)2000およびWindows(登録商標)XP以降の制限ユーザのOS使用のコンピュータに接続されているUSBストレージデバイスに対して有効なコマンドの実行方法、並びにUSBストレージデバイスのコントローラ及び該コントローラを搭載してなるUSBストレージデバイスに関する。
従来、コンピュータに接続したUSBデバイスからデバイスのID情報やパスワードデータ、或いは指紋認証用の登録データなどを取得するには、業界標準のコマンドで実行されるとセキュリティー上問題があるので、当該デバイスへコンピュータよりベンダー固有のコマンド(ベンダーコマンド)を発行していた。
ところが、コンピュータのオペレーティングシステムであるWindows(登録商標)2000およびWindows(登録商標)XPの制限ユーザ(Administratorとして設定されている以外のユーザ)からは、コンピュータウイルス対策などの観点から、任意のベンダーコマンドを発行できなくなった。ここにベンダーとは、デバイス(製品)の提供者である。
このUSBデバイスの一つとして、NANDフラッシュメモリなどの半導体記憶媒体を搭載したUSBストレージデバイスがある。USBポートに着脱式に使用されるものであるため、紛失した場合の情報漏洩が問題となっている。このため、最近では情報漏洩対策のため、パスワードの照合や指紋認証を当該デバイスのアクセス条件とするものが販売されている。
この機能を実行するためには、USBストレージデバイスに、パスワードや指紋情報(以下、本願では「ユニーク情報」という)を登録しておく必要があるが、容易に読み取られることのないよう、ホストからはベンダーコマンドでのみ確認可能にする必要がある。
しかしながら、上述の通り、Windows(登録商標)2000およびWindows(登録商標)XPの制限ユーザは、上述したように、ベンダーコマンドを自由に発行できないようになっている。ベンダーコマンドを発行するには、Administrator権限下で、専用ドライバをインストールする必要がある。この点、USBデバイスは持ち運び可能であり、外出先のPCなど、専用ドライバがインストールされていない制限ユーザのPCでは全く使用できないといった現状にある。
特開2004−54896
そこで、本発明は斯かる問題に鑑みてなされたものであり、その目的とするところは、Windows(登録商標)2000およびWindows(登録商標)XP、及びそれ以降の制限ユーザがUSBデバイスに有効にアクセスし得る新たなコマンド実行方法、並びに該方法を実行し得るUSBストレージデバイスのコントローラ及び該コントローラを搭載したUSBストレージデバイスを提供することにある。
本発明は、上記課題の解決にあたり、USBストレージデバイスのコントローラに、USBスタンダードデバイスリクエストコマンドで定義されている“bmRequest_type”、“bRequest”、“wValue”、“wIndex” の少なくとも一つに、前記それぞれに規定されているデータ長であって、且つUSBスタンダードデバイスリクエストコマンドで定義されていない所定の値を設定したものを、一のコマンドとして解釈しこれを実行するコマンド実行手段を設ける。コマンド実行手段は、コマンドを実行するためのプログラム(ソフトウエア)とこれを実行させるCPUを含む概念である。
ここで、bmRequest_type”、“bRequest”には、USBスタンダードデバイスリクエストコマンドで定義されている値を設定し得るが、定義されていない値があればそのうちの任意の値を設定してもよい。“wValue”、“wIndex”のいずれか一方、若しくはその両者には、USBスタンダードデバイスリクエストコマンドで規定されているデータ長であって、かつ、USBスタンダードデバイスリクエストコマンドで定義されていない任意の値が、“wLength”には、ホストがデバイスから取得すべき或いはホストがデバイスに書き込ませるべきデータの長さが、“Data”は実際に書き込ませるべきデータが設定され得る。
これにより、USBスタンダードデバイスリクエストコマンドや制限ユーザ下ではホストが取得できないユニーク情報を読み出し、これをホストに転送するコマンド、或いはユニーク情報をデバイスに書き込むコマンド等として定義し得る(これに限定されるものではない)。
そして、USBデバイスに設けたコントローラは、前記コマンド実行手段により、ホストからのコマンドの指令(実行すべき内容)を解釈し、ユニーク情報を読み出しこれをホストに転送し、或いはホストから指令されたパスワードなどのユニーク情報をデバイスに書き込む。これにより制限ユーザであっても、個人認証を条件としてアクセス可能なセキュリティー性の高いUSBデバイスを提供できる。
前記所定の情報は、幾通りもの値が設定可能であるため、何人(なんぴと)かが不正アクセスを試みてもその成功確率を非常に低いものとすることができる。
コマンド実行手段(ソフトウエア)の設計をホストに実行させたい命令に適宜適合させることにより、ユニーク情報のホストへの転送の他、制限ユーザがAdministratorの権限下で専用のドライバをインストールすることなくしては実行不可能であった種々のコマンドを実行することができる。
USBストレージデバイスは、更に第2のパスワード゛の認証成功により始めてアクセス可能な秘匿領域を設けてもよい。
これは、USBストレージデバイスにおいて、より機密性の高いデータを保存しているような場合に特に有効である。
また、前記ユニーク情報の実際の記憶領域(物理領域)はフラッシュメモリなどの記憶手段とは別個独立に構成されているコントローラの中に存在させてもよい。
本発明は、現状において、パーソナルコンピュータのOSである、Windows(登録商標)2000およびWindows(登録商標)XPの制限ユーザ(その使用環境においてAdministratorとして設定されている以外のユーザ)において有用な方法である。
以下、本発明方法の実施形態例について図面を用いて説明するが、本発明の実施形態は下記の例に何ら限定されることはなく、本発明の技術的範囲に属する限り種々の形態を採りうる。
(実施例) 図1は、USBストレージデバイス17とホスト10の概略構成を示すブロック図である。USBストレージデバイス17は、ホスト10のUSBポートに接続されて使用されるストレージデバイスである。
(1)ホスト10 ホスト10は、一般に広く知られたパーソナルコンピュータであり、ソフトウエアとして、オペレーティングシステム(特許請求範囲記載のOS)11、USBスタンダードデバイスリクエストドライバ12、ディスクドライブドライバ13、USBマスストレージクラスドライバ14及びデバイスドライバ15を備え、ハードウェアとしてUSBホストコントローラ16を少なくとも備える。
オペレーティングシステム11は、ホスト10を統括的に制御するソフトウエアであり、例えばWindows(登録商標)2000やWindows(登録商標)XP(それ以降のOSを含む)である。
USBスタンダードデバイスリクエストドライバ12は、USBストレージデバイス17に対し、表1に示すUSBスタンダードデバイスリクエスト(そのコマンドの発行)を行なうドライバで、以下に述べるディスクドライブドライバ13(SCSIドライバ)、USBマスストレージクラスドライバ14の上位に位置するドライバである。〔表1〕
当該コマンドでリクエストする“bmRequest_type”、“bRequest”、“wValue”、“wIndex”、“wLength”、“Data”に設定できる各データ長は、以下の表2に示す通りである。 〔表2〕
ディスクドライブドライバ13は、オペレーティングシステム11から受け取った記憶装置へのアクセス指令等をSCSIコマンド変換してUSBマスストレージクラスドライバ14に渡すとともに、USBマスストレージクラスドライバ14から指令等を受け取りオペレーティングシステム11に渡す。USBマスストレージクラスドライバ14は、USBホストコントローラ16を制御する。デバイスドライバ15は、本発明USBストレージデバイス17を駆動する専用のドライバである。USBホストコントローラ16は、図示しないUSBコネクタ(雌)を備え、USBコネクタ(雄)を備えたUSBデバイスと接続されることによって、USB規格に基づいた通信を行うことができるようになっている。
(2)USBストレージデバイス17 USBストレージデバイス17は、USBインターフェース19とコントローラ21とフラッシュメモリ25とを備える。
USBインターフェース19は、USBバス30を介してホスト10と通信を行う機能を担う。USBインターフェース19は、パケット送受信部19aとシリアルパラレル変換部19bとパケット生成分解部19cとUSBバスパワー制御部19dとを備える。
パケット送受信部19aは、図示しないUSBコネクタと接続され、USB規格に基づいたパケットを送受信する。シリアルパラレル変換部19bは、シリアルデータとパラレルデータとを相互に変換する。パケット生成分解部19cは、ホスト10と通信を行うためのパケットの生成及びパケットを分解してデータの取り出しを行う。USBバスパワー制御部19dは、ホスト10から供給される電力の管理及びUSBストレージデバイス17の各部位への電力の配分を行う。
コントローラ21は、メモリ制御部21aとUSBインターフェース制御部21bとメモリ情報記憶部21c、コマンドテーブル記憶部21d、並びに、コマンド実行部21eとを備える。メモリ制御部21aは、フラッシュメモリ25に対してデータの読み出し、書き込み及び削除を実行する。USBインターフェース制御部21bは、前述したUSBインターフェース19の各部を制御する。メモリ情報記憶部21cは、フラッシュメモリ25の領域に関する情報を記憶する。以下、図2のデータ例を用いてこの情報について説明する。
図2に示すように、メモリ情報記憶部21cは、論理ユニット番号31とフォーマット33と書き込み削除可否フラグ35と論理ブロック番号37と物理ブロック番号39とを備える。論理ユニット番号31は論理ユニットを識別するための番号であり、「0」と「1」とが存在する。フォーマット33は、論理ユニット番号31に対応し、その論理ユニットのフォーマットを表す。
データ例では、論理ユニット番号「0」は「FAT」フォーマットであり、論理ユニット番号「1」は「ISO9660」フォーマットである。書き込み削除可否フラグ35は、論理ユニット番号31に対応し、その論理ユニットに対して情報の書き込み及び削除の実行可否を表すフラグである。データ例では、論理ユニット番号「0」は「可」であり、論理ユニット番号「1」は「不可」である。論理ブロック番号37は、ホスト10によって指定されるブロック番号であり、論理ユニット毎に定義されている。
このように、フラッシュメモリ25の実ブロック番号である物理ブロック番号39と論理ブロック番号37との対応づけは、メモリ制御部21aによって管理されている。このため、物理ブロック番号39と論理ブロック番号37とは自由に対応付けを行うことができる。これは、フラッシュメモリの書き込み回数の制限などに対応させるためである。
また、論理ユニット番号「0」のフォーマットをISO9660にし、論理ユニット番号「1」のフォーマットをFATにしてもよい。また、更に論理ユニットを増やし、ユーザやアプリケーションによって使い分けられるようになっていてもよい。
又、コマンドテーブル記憶部21dには、表3(a)、(b)にそれぞれ示すコマンド照合表(テーブル)が記憶されている。 〔表3〕(a)
(b)
表3(a)は、デバイスドライバ15がUSBスタンダードデバイスリクエストドライバ12によって発行するパスワード取得コマンド(一例)に対応したテーブルである。パスワード取得コマンドは、USBスタンダードデバイスリクエストコマンドで定義されている“wValue”、“wIndex”の各々に、表(a)のような、本発明が独自の構成とする値を設定したものである。
“bmRequest_type”に0×08の値が設定されているが、これはUSBスタンダードデバイスリクエストコマンドで設定する値でリクエストタイプがデバイス情報取得タイプであることを示している。また、“bRequest”に0×06の値が設定されているが、これは同じくUSBスタンダードデバイスリクエストコマンドで設定する値で、リクエストがGet Descriptorであることを示している。
“wValue”には、0×AA、0×AAの値が設定されているが、これはUSBスタンダードデバイスリクエストコマンドでは定義されていない、即ちUSBスタンダードデバイスリクエストコマンドとしては意味のない数値である。USBスタンダードデバイスリクエストコマンドでは、“wValue”に2Byteで任意の値が設定できるからである。
“wIndex”には0x00、0x01の値が設定されているが、これも、USBスタンダードデバイスリクエストコマンドでは、意味のない値である。USBスタンダードデバイスリクエストコマンドでは、“wIndex”に2Byteで任意の値が設定できるため、“wValue”同様、このようなUSBスタンダードデバイスリクエストコマンドでは意味のない値が設定されている。
本実施例では、 “wValue”或いは“wIndex”、またはその両者を併せて、そこに設定されてなる値を、ホスト11-デバイス17間で、パスワード取得コマンドであると定義するものである。よって、後述するように、ホスト11から、表3(a)に示すコマンドが、デバイス17(より正確にはそのコントローラ21)に送られると、後述するコマンド実行部21eは、送られたコマンドを表3(a)、表3(b)と対比・照合し、その結果、表3(a)と一致すると判断した場合は、パスワード取得コマンドであると解釈して、これを実行する。
更に、“wLength”に、0×08、0×00の値が設定されているが、これはバスワードを8Byteで読み出せということを意味している。これは、パスワードがデバイス内に8Byte以内で記憶されていることに起因するものであり、仮にパスワードが6Byteであれば、ホスト10は6Byteのパスワードを受信すれば足りるので、その場合は0×06、0×00の値が設定される。“Data”には、何の値も設定されていないが、これは、本コマンドの場合は、デバイスに対し付与すべきデータ(例えば書き込ませるべきデータなど)がないためである。
表3(b)は、指紋認証用の元データ(登録データ)の取得コマンド例(そのテーブル)である。表3(a)との第1の相違点は、“wValue”が0xAA、0xBB、“wIndex”が0x00、0x02の値に設定されていることである。本発明では、前記(a)の場合同様、“wValue”と“wIndex”の両者を併せて、前記設定されてなる値を、ホスト11-デバイス17間で、指紋認証用の元データ取得コマンドであると定義している。“wValue”或いは“wIndex” のいずれかの値だけで定義することもできるが、その両者で定義しているので、より不正アクセスを防げる。
第2の相違点は、“wLength”が、0×FF、0×08という値に設定されていることである。これは、指紋認証用の元データが2Kbyte(2048Byte)の情報量であるため、当該情報量の指紋認証用の元データをホストに送信せよということを意味している。
上記で、“bmRequest_type”、“bRequest”に、USBスタンダードデバイスリクエストコマンドで定義されている値を設定しているが、定義されていない値がある場合は、規定されたデータ長で、任意の値を設定することができる。特に“wValue”、“wIndex”には、ベンダーが、2Byteのデータ長であれば、USBスタンダードデバイスリクエストコマンドで定義されていない任意の値を設定できるので、その値を、コントローラ21が実行すべき具体的コマンドとして、ホスト11-デバス17間で定義付けして使用することができる。
コマンド実行部21eは、ホスト10のUSBスタンダードデバイスリクエストドライバ12から送出された、USBスタンダードデバイスリクエストコマンドで定義されている“bmRequest_type”、“bRequest”、“wValue”、“wIndex”の各々に設定されているデータを確認し、これと前記コマンド照合表(テーブル)と対比・照合し、その同定確認を行なう。そして、そのいずれかである判断された場合は、そのコマンドで指令されている具体的内容(“wLength” 、“Data”)を判断し、これを実行する。例えば、所定データ長のユニーク情報を記憶場所から読み出して、これをホストに送出する。尚、コマンド実行部21eは、上記の他、USBマスストレージクラスドライバ14、ディスクドライブドライバ15からのコマンドも実行するものである。
フラッシュメモリ25は、記憶保持動作が不要な半導体メモリ(不揮発性メモリー)である。記憶したデータは、メモリ制御部21aによって読み出すことが可能である。また、メモリ制御部21aによって書き込み及び削除をすることもできる。
(a)起動処理 USBストレージデバイス17がホスト10に接続された際に、USBストレージデバイス17のコントローラ21でプログラムに基づいて実行される起動処理について、図3のフローチャートを用いて説明する。この起動処理は、USBストレージデバイス17がホスト10に接続されることにより、USBバスパワー制御部19dに電力が供給され、さらにホスト10側でエニュメレーション処理が実行されると開始される。尚、以下の実施例では、USBストレージデバイス17は、パスワード情報を記憶し、ユーザがキーボードなどから入力したパスワードが、前記記憶されているパスワードと一致したときに、ユーザはホスト10から、当該USBストレージデバイス17にアクセス可能になるものとする。
起動処理を開始すると、ホスト10のUSBスタンダードデバイスリクエストドライバ13からの指令に応じて、ディスクリプタと呼ばれるデバイス情報(デフォルトパイプの最大パケットサイズ等)をホスト10に送信する(S110)。
次に、同じくホスト10からのUSBスタンダードリクエストドライバ12の指令(SET Addressコマンド)に応じて、USBストレージデバイス17のアドレスを設定する(S111)。以降、このアドレス宛のフレームのみを当該USBストレージデバイス17は取得する。
次に、より詳細なデバイス情報をホスト10に送信する(S112)。このデバイス情報としては、エンドポイントに関する情報、クラス、サブクラス、プロトコル等である。その結果、ホスト10ではUSBマスストレージクラスドライバ14起動され、図示しないアプリケーションソフトウェアからディスクドライブドライバ13とUSBマスストレージクラスドライバ14とを介してUSBホストコントローラ16を制御するアクセスパスができる。
続いて、USBマスストレージクラスドライバ14が、「Get Max Logical Unit Number API」コマンドによって論理ユニット番号数を要求するため、USBストレージデバイス17は、メモリ情報記憶部21cから論理ユニット番号数が2であるという情報を読み出して、ホスト10に送信する。
そして、さらに、ディスクドライブドライバ13がInquiryマンドを発行するため、USBストレージデバイス17は、メモリ情報記憶部21cから論理ユニットのフォーマットに関する情報を読み出して、ホスト10に送信する。
これらの結果、ホスト10は、USBストレージデバイス17を、FATフォーマットから構成される論理ユニット番号「0」の領域とISO9660フォーマットから構成される論理ユニット番号「1」の領域とを有するデバイスと認識する(S113)。そして、論理ユニット番号「0」の領域がCD-ROMドライブであることを表すアイコン(ドライブレターは例えば“E”)が、論理ユニット番号「1」の領域がリムーバブルディスクであることを示すアイコン(ドライブレターは例えば“F”)が、ホストに接続されたモニター(図示せず)に表示される。こうして、ホスト10とデバイス17との通信が確立されるが、この段階では、ユーザはまだデバイスの前記各領域にはアクセスできない(アクセスロック)。
次にデバイスドライバ15は、USBスタンダードデバイスリクエストコマンドとして前述の表3(a)に示す値を設定し、USBスタンダードデバイスリクエストドライバ12に当該コマンドをデバイス17に発行させる。すると、コントローラ21は、前述したように、コマンド実行部21eがコマンドテーブル記憶部21cに記憶されているコマンドテーブル(表3(a)乃至表3(b))を参照し、コマンド内容を解釈し、これを実行する。即ち、ホスト10は、当該デバイスの8Byteのパスワードを取得し、これを図示しないRAMに一時保存する。
次にデバイスドライバ15は、ホスト10のモニタ上に、「パスワードを入力してください」と表示する。そしてキーボードなどからホスト10に入力されたパスワードが、前記一時保存しているパスワードと一致するか判断する。一致していない場合は、「パスワードが一致しないため、アクセスできません」と表示するとともに、ユーザからの当該デバイス17へのアクセスを実行しない。
パスワードが一致した場合は、当該デバイス17へのアクセスロックを解除し(S115)、フラッシュメモリ25を動作可能にし(S116)、起動処理を終了する。以降、ユーザは、ホスト10のアプリケーションソフトより、フラッシュメモリ25に対し、データの書き込みや読み出しを実行し得る。
本発明に依れば、制限ユーザはAdministrator権限下に依らず、自身の使用するホスト10にデバイスドライバ15をインストールして(例えば、CD-ROMなどによって)、デバイス17を起動しこれにアクセスできる。
その他、デバイスライバ15のホスト10へのインストール方法として、以下の方法を採ることができる。(1)デバイス17のCD-ROM領域(論理ユニット番号「0」の領域)にデバイスドライバ15を予めインストールしておく。(2)デバイスドライバ15のファイル名を、前記Eドライブ(論理ユニット番号「0」のCD-ROM領域)のルートディレクトリのautorun.infに規定しておく。(3)OS11がEドライブを認識した際、アクセスロックは掛けない。Fドライブのみアクセスロックを掛ける。
以上のように設定すれば、OS11が論理ユニット番号「0」のCD-ROM領域を認識した際、デバイスドライバ15のホスト10へのインストールが自動実行(オートラン)される。但しこれはOS11の機能に基づくものであるため、例えばWindows (登録商標)Vista以降のOSで、オートランを実行する際、オートラン実行の是非について、OS11がモニタにその確認を求めてきたときは、「YES」の入力がオートランの条件となる(本願では掛かる場合もオートランと定義する)。このようにすれば、ユーザは外出先で使用するPCに、CD-ROM等で一々デバイスドライバをインストールする必要がない。そして、パスワード認証後、Fドライブのアクセスロックを解除する。
(応用例1)上記ではパスワードを一つ用意し、デバイス17自体へのアクセス可否に使用する例について説明したが、さらに応用展開することもできる。例えば、第2のパスワード(例えば10Byte)を用意し、これを上述したパスワード(第1のパスワード)とは異なる領域に記憶しておく。さらに、フラッシュメモリ25に、オペレーティングシステム11が不可視であって、ユーザが使用可能な秘匿領域を設ける。秘匿領域は、管理領域に設けてもよいし、或いは、管理領域や前述のCD-ROM領域、リムーバブルディスク領域以外に他の領域を設けてそこを秘匿領域としてもよい。
そして、デバイスドライバ15は、第1のパスワードの照合が一致した後に、「秘匿領域にアクセスしますか」と表示し、「Yes」の入力があればその後に、第2のパスワードを入力させ、一致した場合のみ、秘匿領域にアクセス可能に構成してもよい。このようにすれば、より機密性の高い文書へのアクセスは2度のパスワードの照合をクリアーする必要があり、機密性をより高めることができる。
(応用例2) また、パスワードや指紋認証用の元データのデバイスへの登録(デバイスへの記憶保持)は、セキュリティーの関係上、そのユーザ自身によって行なわれるべきであるが、この書き込みをSCSI標準コマンドなど、一般的に誰でもが容易に入力できるとセキュリティー上極めて問題となる。よって、デバイスドライバ15によって、デバイス使用開始時に、以下の方法により、パスワードや指紋認証用の元データをデバイスに登録することが有効となる。
1.パスワード登録例USBスタンダードデバイスリクエストコマンドの一つである、SET Descriptorコマンドの “wValue”或いは“wIndex”のいずれか、若しくはその両者に、SET Descriptorコマンドでは意味をなさない2Byteのデータをそれぞれ設定する。“wLength”には、前記パスワードのデータ長を、“Data”にはユーザが指示した実際に登録すべきパスワードを設定する。コントローラのコマンドテーブル記憶部21dには、このコマンドが送られたときに対比・照合するためのコマンド照
合テーブルを設けておく。「パスワード登録コマンド」であるか否かは、上記のように、“wValue”、“wIndex”に設定されたSET Descriptorコマンドでは意味をなさないそれぞれ2Byteのデータが、予めホスト10とデバイス17間で取り決めた内容と一致するかどうかによって、コマンド実行部21eが判定する。パスワード登録コマンドであると判定された場合は、フラッシュメモリ25又は当該コントローラ21の予め設定されている場所に、そのパスワードが不揮発的に記憶される。
2.指紋認証用の元データの登録例
USBスタンダードデバイスリクエストコマンドの一つである、SET
Descriptorコマンドの“wValue”或いは“wIndex”のいずれか、若しくはその両者に、上記パスワード登録コマンドとは異なり、且つ、SET Descriptorコマンドでは意味をなさないそれぞれ2Byteのデータを設定する。“Data”には、ユーザのオリジナル指紋データ(イメージデータ若しくはビットマップデータ)を設定する。コントローラのコマンドテーブル記憶部21dには、このコマンドが送られたときに対比・照合するためのコマンド照合テーブルをさらに設けておく。
「指紋認証用の元データの登録コマンド」であるか否かは、上記のように、 “wValue”或いは“wIndex”のいずれか、若しくはその両者に設定されたSET Descriptorコマンドでは意味をなさないそれぞれ2Byteのデータが、予めホスト10とデバイス17間で取り決めた内容(前記パスワード認証の場合とは異なる)と一致するかどうかによって、コマンド実行部21eが判定する。指紋認証用元データの登録コマンドであると判定された場合は、フラッシュメモリ25又はコントローラ21の予め設定されている場所に、そのデータが不揮発的に記憶される。尚、指紋認証機能をデバイス17に搭載する場合は、登録された元データとデバイス17へのアクセス時に入力される指紋データとを対比して所定のアルゴリズムによりその同定を行なうプログラムをデバイス17(コントローラ21を含む)若しくはデバイスドライバ15に予め組み込んでおけばよい。
実施例のUSBストレージデバイスの構成を示すブロック図である。 メモリ情報記憶部に記憶されているデータ例である。 起動処理を説明するためのフローチャートである。
符号の説明
10…ホスト、11…オペレーティングシステム、12…USBスタンダードデバイスリクエストドライバ、13…ディスクドライブドライバ、14…USBマスストレージクラスドライバ、15…デバイスドライバ、16…USBホストコントローラ、17…USBストレージデバイス、19…USBインターフェース、19a…パケット送受信部、19b…シリアルパラレル変換部、19c…パケット生成分解部、19d…USBバスパワー制御部、21…コントローラ、21a…メモリ制御部、21b…USBインターフェース制御部、21c…メモリ情報記憶部、21d…コマンドテーブル記憶部、21e…コマンド実行部、25…フラッシュメモリ、30…USBバス

Claims (6)

  1. Windows(登録商標)2000およびWindows(登録商標)XP以降の制限ユーザのホストに接続されているUSBデバイスに対し、前記制限ユーザのホストから前記USBデバイスに有効にその処理を実行させるコマンド実行方法であって、
    前記デバイスのコントローラに、USBスタンダードデバイスリクエストコマンドで定義されている “bmRequest_type”、“bRequest”、“wValue”、“wIndex”の少なくとも一つに、前記それぞれに規定されているデータ長であって、且つUSBスタンダードデバイスリクエストコマンドで定義されていない所定の値を設定したものを、一のコマンドとして解釈しこれを実行するプログラムを記憶させておき、
    これによって、USBスタンダードデバイスリクエストコマンドでは実行せしめることのできない処理を前記デバイスに実行させることを特徴とするコマンド実行方法。
  2. 前記処理は、当該デバイスに記憶しているパスワード若しくは指紋認証用の登録データを読み出して、これをホストに送出させるものであることを特徴とする請求項1記載のコマンド実行方法。
  3. 前記処理は、既存のコマンドで書き替えられると不都合のあるパスワード若しくは指紋認証用の登録データなど、機密性の高いデータの書き込み若しくは書き替えであることを特徴とする、請求項1に記載のコマンド実行方法。
  4. USBスタンダードデバイスリクエストコマンドで定義されている“bmRequest_type”、“bRequest”、“wValue”、“wIndex”の少なくとも一つに、前記それぞれに規定されているデータ長であって、且つUSBスタンダードデバイスリクエストコマンドで定義されていない所定の値が設定されたものを、一のコマンドとして解釈しこれを実行するよう構成されてなることを特徴とするUSBストレージデバイスのコントローラ。
  5. 記憶手段としてのフラッシュメモリと請求項4のコントローラを搭載してなるUSBストレージデバイス。
  6. パスワード若しくは指紋認証用の登録データが、コントローラに記憶されていることを特徴とする請求項5記載のUSBストレージデバイス。
JP2006147768A 2006-05-29 2006-05-29 コマンド実行方法、usbストレージデバイスのコントローラ及び該コントローラを搭載してなるusbストレージデバイス。 Pending JP2007317053A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006147768A JP2007317053A (ja) 2006-05-29 2006-05-29 コマンド実行方法、usbストレージデバイスのコントローラ及び該コントローラを搭載してなるusbストレージデバイス。

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006147768A JP2007317053A (ja) 2006-05-29 2006-05-29 コマンド実行方法、usbストレージデバイスのコントローラ及び該コントローラを搭載してなるusbストレージデバイス。

Publications (1)

Publication Number Publication Date
JP2007317053A true JP2007317053A (ja) 2007-12-06

Family

ID=38850840

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006147768A Pending JP2007317053A (ja) 2006-05-29 2006-05-29 コマンド実行方法、usbストレージデバイスのコントローラ及び該コントローラを搭載してなるusbストレージデバイス。

Country Status (1)

Country Link
JP (1) JP2007317053A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111222183A (zh) * 2019-11-18 2020-06-02 天津津航计算技术研究所 一种基于usb接口的加密方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111222183A (zh) * 2019-11-18 2020-06-02 天津津航计算技术研究所 一种基于usb接口的加密方法
CN111222183B (zh) * 2019-11-18 2023-07-28 天津津航计算技术研究所 一种基于usb接口的加密方法

Similar Documents

Publication Publication Date Title
US8356118B2 (en) Storage device and storage device access control method
US8255930B2 (en) Method and system for dynamically switching between different device configurations
JP4663572B2 (ja) ユニバーサルシリアルバスデータ伝送方法及びその方法を実施するデバイス
US6038320A (en) Computer security key
KR100880185B1 (ko) 컴퓨터용 보안 시스템 및 그 방법
US7360073B1 (en) Method and apparatus for providing a secure boot for a computer system
US8590051B2 (en) Information processing apparatus and removable media management method
TW569142B (en) Data processing system and method for password protecting a boot device
TWI387883B (zh) 克服系統管理封鎖之方法、媒體及裝置
US20070028292A1 (en) Bus bridge security system and method for computers
US20120124380A1 (en) Usb composite device and method therefor
JP2001290776A (ja) 基本パスワードをリモートで復元するデータ処理のシステム及び方法
JP2010508578A (ja) 透明な二次因子を介したプラットフォーム認証
JP2005266934A (ja) Usbストレージデバイス及びその制御装置
US20050034125A1 (en) Multiple virtual devices
JP4767619B2 (ja) 外部記憶装置およびsbc制御方法
US20070233727A1 (en) Multiple Virtual Devices
CN114270346A (zh) 具有可变计算机文件系统的数据存储装置
JP5166307B2 (ja) 接続機器利用システムおよびその方法
JP2007317053A (ja) コマンド実行方法、usbストレージデバイスのコントローラ及び該コントローラを搭載してなるusbストレージデバイス。
JP4561213B2 (ja) ハードディスクセキュリティ管理システムおよびその方法
KR101042218B1 (ko) 컴퓨터용 데이터 보안시스템의 데이터 보안방법
US8479300B2 (en) Method for transmitting data and preventing unauthorized data duplication for human-machine interface device using mass storage class operating on universal serial bus
JP2008250797A (ja) 生体認証機能付き記憶装置
JP4807667B2 (ja) 通信システム及びそれに使用する周辺装置