説明

USBシステム装置

【課題】USBデバイスに固有のUSBクラスを駆動するドライバをUSBホストにインストールすることなく、只ひとつのドライバにて複数のUSBデバイスのセキュリティに対応するUSBシステム装置を提供する。
【解決手段】USB(Universal Serial Bus)インタフェースを用いて情報のやり取りをするUSBシステム装置(USBホスト101及びUSBデバイス107)において、ストリングディスクリプタを用いてパスワード認証を行うようにする。これにより、USBデバイスに固有のUSBクラスを駆動するドライバをUSBホストにインストールすることなく、只ひとつのドライバにて複数のUSBデバイスのセキュリティに対応することができる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、USBインタフェースを用いて情報のやり取りをするUSBシステムにおいて、ストリングディスクリプタ(String Descriptor)を用いてパスワード認証を行うことを特徴とするUSBシステム装置に関する。
【背景技術】
【0002】
近年、プリンタ、デジタルカメラ等をパーソナルコンピュータ(PC)と接続する規格としてほぼ全ての機器はUSB(Universal Serial Bus)インタフェースを保持するようになった。
【0003】
USBは、まさにPCと周辺機器を接続するために制定された規格であり、各々の機器が動作中に接続、切断が容易に行える等、利便性に優れている。
【0004】
特にUSBメモリと呼ばれているストレージ機器は、他のPCやデジタルカメラ、プリンタと言った機器へのデータ転送を容易にさせ、データの参照を容易にさせるために、市場における成長が著しい。
【0005】
【特許文献1】特開2003−150285号公報
【特許文献2】特開2003−186819号公報
【発明の開示】
【発明が解決しようとする課題】
【0006】
USBメモリ等のUSB機器の発展によってデータの可搬性が向上すると共に、そのデータに対する保守性に関する要求が高まっている。すなわちUSBメモリの出現により容易にデータの搬出が可能となったことで、その内部データが望まれない第三者によって簡単に閲覧される可能性が高まってしまっている。特に企業にとって前記の問題は、時に致命的な影響を及ぼすことがあり、社会的な問題となっている。
【0007】
このような状況を鑑みて、各USBメモリベンダはデータにアクセスする際にパスワードの入力を必要にすることで、セキュリティ対策としている。
【0008】
特許文献1では、最初に接続される内部USB装置によって認証を行い、それが成功することで内部USB装置がストレージ機能を持ったものに切り替わることが記載されている。また、特許文献2では、USBのインタフェースを認証用とストレージ等の実際にUSBデバイス動作用の二種類を用意しておくことで、認証に成功した場合にインタフェースを切替えることが記載されている。
【0009】
また、他にセキュリティを実現する方法としては、搭載するUSBクラスに特殊なコマンドを追加して実現する方法も行われている。例えばSCSIコマンドを扱うマスストレージクラスであれば、特殊なSCSIコマンドをパスワード認証用として実装しておき、まず、そのコマンドにて認証が成功しない限りディスクデータの授受を行わない、方法がある。
【0010】
しかし、これら前述の方法では夫々のUSBデバイスで独自のUSBクラスを駆動するドライバをUSBホストに搭載する必要がある。すなわち、ユーザが該機能を利用するには、まず最初に夫々に対応したドライバをUSBホストにインストールする必要があり、これは利用するUSBデバイスの種類分必要となる。
【0011】
本発明は前記した従来の技術の有するこのような問題に鑑みてなされたものである。その目的は、夫々のUSBデバイスに固有のUSBクラスを駆動するドライバをUSBホストにインストールすることなく、只ひとつのドライバにて複数のUSBデバイスのセキュリティに対応するUSBシステム装置を提供することである。
【課題を解決するための手段】
【0012】
本発明のUSBシステム装置は、USB(Universal Serial Bus)インタフェースを用いて情報のやり取りをするUSBシステム装置において、ストリングディスクリプタを用いてパスワード認証を行うことを特徴とする。
【発明の効果】
【0013】
本発明によれば、夫々のUSBデバイス毎にそのUSBクラスを駆動するドライバをUSBホストにインストールすることなく、只ひとつのドライバにて複数のUSBデバイスのセキュリティに対応することが可能となる。
【発明を実施するための最良の形態】
【0014】
以下、本発明の実施の形態を図面に基づき説明する。
(第1の実施の形態)
まず、本発明の第1の実施の形態を図1〜図7に基づき説明する。図1は、本実施の形態に係るUSB(Universal Serial Bus)ホスト/デバイスシステム装置(USBシステム装置)における、USBホストとUSBデバイスの機器内の構成を示す概念図である。
【0015】
同図において、101はUSBホストである。102は主にソフトウェアで実装されるUSBホストクラスドライバ、103は主にソフトウェアで実装されるUSBホストドライバ、104はパスワード入力機構を示す。また、105は主にハードウェアで実装されるUSBホストコントローラ、106はUSBケーブルである。
【0016】
107はUSBデバイスである。108は主にハードウェアで実装されるUSBデバイスコントローラ、109は主にソフトウェアで実装されるUSBデバイスドライバ、110はパスワード保持機構、111はパスワード判断機構、112はパスワードモード機構を示す。また、113は110から112をまとめてパスワード管理機構、114は主にソフトウェアで実装されるUSBデバイスクラスドライバを示している。
【0017】
USBホスト101は、USBホストドライバ103がUSBホストコントローラ105を制御することでUSBホストとしての機能を提供する。この際、接続された相手機器に対してパスワード入力機構104が機能することでパスワードをUSB標準リクエストであるストリングディスクリプタを用いて、USBデバイスに107に送信して認証を行う。認証が成功した場合にUSBホストクラスドライバ102が動作することで実際のUSBクラス機能を提供する。
【0018】
一方、USBデバイス107はUSBケーブル106が接続されたことでUSBデバイスコントローラ108が反応する。これをUSBデバイスドライバ109で制御することでUSBデバイスとしての機能を提供する。この際、パスワード管理機構113によってUSBホスト101から受信したパスワードの認証をパスワード判断機構111で行い、パスワードの設定をパスワード保持機構110で行う。
【0019】
これらのどちらが動作するかはパスワードモード機構112が制御する。以上の機構によってパスワードの認証が成功すると初めてUSBデバイスクラスドライバ114が動作することでUSBクラス機能を提供する。
【0020】
図1は本実施の形態の一例であり、例えばUSBホスト101に複数のUSBホストクラスドライバ102が搭載されていても、USBデバイス107に複数のUSBデバイスクラスドライバ114が搭載されていても実施可能である。
【0021】
また、前記各ドライバの実現方法として各々主にソフトウェアまたはハードウェアで実現する旨を記述しているが、どちらの方法で実現しても、また、その組合せで実現しても本発明に影響しない。本図に示された概念構成を取ることで本実施の形態を実現することが出来る。
【0022】
図2は、本実施の形態に係るUSBシステム装置における、パスワードの入力とパスワードの出力操作を行うUSBホスト・デバイスの関係を表した概念図である。同図において201はUSBホスト、202はUSBケーブル、203はUSBデバイスを示している。
【0023】
USBホスト201側のユーザインタフェースにてユーザはパスワードを入力し、それがUSBケーブル202を介してUSBデバイス203に送られる。USBデバイス203では受信したパスワードが正しいか否かを判定することで認証を行う。この成否によってその後のUSBクラス機能を提供するか否かの動作を決定することでセキュリティを実現する。
【0024】
すなわち、USBホスト201側にて最初にパスワードを入力したものを認証に用いるパスワードとしてUSBデバイス203が保持する。さらにその保持したパスワードがUSBケーブル202を介してUSBホスト201へ送信されることはないことを示している。
【0025】
図3は、本実施の形態に係るUSBシステム装置における、USBホストのハードウェア構成例を示すブロック図である。
【0026】
同図において、301はCPU(中央演算処理装置)、302はRAM(ランダムアクセスメモリ)、303はROM(リードオンリメモリ)、304はI/Oコントローラ、305はUSBホストコントローラ、306はバスを示している。
【0027】
USBホストは、本図の301、および302、303、305、306により構成されるハードウェアで構成される。また必要なモジュールを自由に組み合わせることができ、例えばI/Oコントローラ304の機構等を介して他のハードウェアを付加することが
出来る。
【0028】
また本図はあくまでも本実施の形態に係るUSBホストのハードウェア構成の一例である。モジュールを単一バスで接続しない構成や、I/Oコントローラ304を介してUS
Bホストコントローラ305を接続する、他のモジュールを介してモジュールを接続する等、さらには複数の演算装置にて構成する等、形態はさまざまなものが考えられる。
【0029】
図4は、本実施の形態に係るUSBホスト/デバイスシステム装置における、USBデバイスのハードウェア構成例を示すブロック図である。
【0030】
同図において、401はCPU(中央演算処理装置)、402はRAM(ランダムアクセスメモリ)、403はROM(リードオンリメモリ)、404はI/Oコントローラ、
405はUSBデバイスコントローラ、406はバスを示している。
【0031】
USBデバイスは本図の401、402、403、405、406により構成されるハードウェアで構成される。また必要なモジュールを自由に組み合わせることができ、例えば404の構成等を介して他のハードウェアを付加することが出来る。
【0032】
また本図はあくまでも本実施の形態に係るUSBデバイスのハードウェアの構成の例である。各モジュールを単一バスで接続しない構成やI/Oコントローラ404を介してU
SBデバイスコントローラ405を接続する他のモジュールを介してモジュールを接続する等、さらには複数の演算装置にて構成する等、形態はさまざまなものが考えられる。
【0033】
図5は、本実施の形態に係るUSBシステム装置における、USBホスト側のパスワード入力に関する処理を示している。
【0034】
ステップS501において、USBデバイスの接続を検知し、ステップS502へ進む。
【0035】
ステップS502において、USBデバイスに対してUSBアドレスを割り当てるためにSetAddress標準リクエストの一連の処理を行い、ステップS503へ進む。
【0036】
ステップS503において、USBデバイスに対してDeviceに関するGetDescriptor標準リクエストの一連の処理を行い、ステップS504へ進む。
【0037】
ステップS504において、USBデバイスに対してConfigurationに関するGetDescriptor標準リクエストの一連の処理を行い、ステップS505へ進む。
【0038】
ステップS505において、USBホストが保有しているパスワード入力機構を介してユーザがパスワードを入力し、ステップS506へ進む。
【0039】
ステップS506において、入力されたパスワードをStringに関するSetDescriptorの一連の処理を行い、ステップS507へ進む。
【0040】
ステップS507において、SetConfigurationの一連の処理を行い、ステップS508へ進む。
【0041】
ステップS508において、USBクラスの動作を行い、USBホスト側のパスワード入力に関する処理を終了する。
【0042】
本図では、ステップS502、S503、S504、S506、S507においてUSBデバイスがストール(stall)応答を行った際の処理に関しては省略してある。一般的にストール応答を受け取った後の動作は、USBリセットの後に再接続を試みる、またはそのまま応答をしない、等のエラー処理が行われる。しかしどのようなエラー処理を行うかは本発明に係る本質に影響をあたえない。
【0043】
また、ステップS505において、ユーザによるパスワードの入力処理を行うが、この際のエラー処理に関しては本図で言及していない。何度かのパスワード入力失敗を経てパスワード入力処理を終了してしまう方法や、何度も入力を繰り返す、またはその組合せなどのエラー処理が考えられる。さらに、USB接続を再接続しなければ再びパスワードを入力できなくしてしまう方法や、物理的な再接続は行わないがUSBバスリセットにより再度パスワード入力処理を行うなど種々の実現方法が考えられる。これについてもどのようなエラー処理を行っても本発明に係る本質に影響をあたえない。
【0044】
また、ステップS506において、Stringに関するSetDescriptorに対する一連の処理を行うが、この際に利用するストリングディスクリプタのIDには、幾つかの実現方法がある。そのひとつとして、ある固定のIDをパスワード専用のIDとして決め打ちそのIDでストリングディスクリプタを送信する方法がある。
【0045】
この場合パスワード専用の固定のIDはその他の用途には利用できない。もしくはDevice DescriptorやConfiguration Descriptor等に該当するIDを利用されていた場合、本発明に対応しないUSBデバイスとして認識することが出来る。
【0046】
別のひとつとして、Device DescriptorやConfiguration Descriptor等のストリングディスクリプタ IDを格納する場所にパスワード専用のIDを記述する。そのIDに対してUSBホストがGetDescriptorを行うと、ある決められた文字列がUSBホストに送られることでUSBホストがそのIDをパスワード専用のストリングディスクリプタとして扱うように実装することもできる。
【0047】
この場合、ステップS506において、いくつかのストリングディスクリプタIDに対するGetDescriptor標準リクエストをUSBホストが発行することでパスワード専用のIDが何番であるかを調査する処理が必要になる。あるいは別のひとつとして、Device DescriptorやConfiguration Descriptor等に表れないストリングディスクリプタのIDをパスワード専用のIDとして扱う方法も考えられる。
【0048】
USBホストはUSBデバイスのもつDescriptor全てを接続初期に取得を行い、それに対して利用されているストリングディスクリプタのIDを調査する。USBホストはこれに表れないIDをパスワード専用のIDとしてステップS506にて利用する。本図では、USBデバイス接続時のエニュメレーション処理を説明している。USBデバイス接続時のエニュメレーションはそれぞれの機器の都合でいくつかの処理を重複させたり、他の標準リクエストを加えたり、あるいはある標準リクエストを省くことが可能である。本発明では本図と全く同じエニュメレーションを行う必要はなく、本図どおりでなくても本発明を実現可能である。重要なのはユーザによって与えられたパスワードをパスワード専用のIDを持つストリングディスクリプタにSetDescriptor標準リクエストにてUSBデバイスへ伝達することである。
【0049】
図6は、本実施の形態に係るUSBシステム装置における、USBデバイス側のパスワード受信に関する処理を示している。
【0050】
ステップS601において、USBホストへ接続が行われ、ステップS602へ進む。
【0051】
ステップS602において、接続時の一連のエニュメレーションに対して応答を行い、ステップS603へ進む。
【0052】
ステップS603において、パスワード専用のIDに対するストリングディスクリプタへのSetDescriptor標準リクエストを受信し、ステップS604へ進む。
【0053】
ステップS604において、パスワードモード機構からパスワード設定モードか否かを判断し、パスワード設定モードの場合はステップS605へ、パスワード設定モードでない場合はステップS608へ進む。
【0054】
ステップS605において、受信したストリングディスクリプタの文字列をパスワードとしてパスワード保持機構にデータ保存しack応答を行い、ステップS606へ進む。
【0055】
ステップS606において、SetConfiguration標準リクエストに対する一連の処理を行い、ステップS607へ進む。
【0056】
ステップS607において、USBクラス動作を行い、USBデバイス側のパスワード受信に関する処理を終了する。
【0057】
一方、ステップS608においては、受信したパスワードがパスワード保持機構に保持されているデータと同一か否かをパスワード判断機構にて判断する。データが同一の場合はステップS606へ進み、データが同一でない場合はステップS609へ進む。
【0058】
ステップS609では以降のUSBホストからの通信に対してStall応答を行い、USBデバイス側のパスワード受信に関する処理を終了する。
【0059】
なお、ステップS602、S603、S606においてストール応答を行わなければならないようなデータをUSBホストが送信した際の処理に関しては省略してある。一般的にストール応答を送信した場合の動作は、USBリセットが行われたり、またはその後の通信が行われなくなる、等のエラー処理がUSBホストによって行われる。しかしどのようなエラー処理が行われても本発明に係る本質に影響を与えない。
【0060】
また、ステップS604において利用するパスワード設定モードはUSBデバイスのユーザI/O等で実現する。ユーザがパスワード設定モードに移行させるにはセキュリティ
として保護しなければならないデータは自動で消去するか、消去されることを明示する等してユーザに通告する。あるいはセキュリティ情報を作成する際に消去不可の設定を行えるようにしておき、この場合にはそのセキュリティ情報に対してUSBクラスにて消去不可の設定を解除しない限りパスワード設定モードに移行できないように構築する。
【0061】
図7は、本実施の形態に係るUSBシステム装置における、パスワード処理を含めた接続時のエニュメレーション処理例を示している。
【0062】
本図では接続時のエニュメレーションとしてSetAddress標準リクエストによりUSBデバイスにアドレスを割り当てた後、デバイスディスクリプタ、コンフィギュレーションディスクリプタの順にGetDescriptor標準リクエストを発行する。これによりUSBデバイス情報をUSBホストが取得している。
【0063】
前述したパスワード専用のストリングディスクリプタIDの決定方法によっては、この段階でUSBデバイスが指定するパスワード専用のストリングディスクリプタIDが決定する。
【0064】
次にパスワード専用のストリングディスクリプタに対してSetDescriptor標準リクエストを実行することでパスワード認証を行っている。認証に成功した後、SetConfiguration標準リクエストによってUSBデバイスの動作させるコンフィギュレーションを指定することでUSBクラスが機能する。
【0065】
先に述べたように本図はパスワード処理を含めた接続時のエニュメレーション処理例であり、実際にはこの順序でなくとも、あるいは他の通信を間にはさんでいても、あるいは一部の処理が省略されていても、本発明の実施は可能である。
【0066】
前記の意味するところは、当然パスワード専用のストリングディスクリプタに対するSetDescriptor標準リクエストの発行タイミングも変更可能であることである。つまり先に述べたパスワード専用のストリングディスクリプタIDの決定方法によっては、ます最初にパスワード専用のストリングディスクリプタに対するSetDescriptor標準リクエストを発行することも可能である。
【0067】
以上のように実装することで、ストリングディスクリプタ(String Descriptor)を用いてパスワード認証を行うことを特徴とするUSBホスト/デバイスシステム装置を構築できる。
【0068】
さらに、SetDescriptor標準リクエストによるパスワード認証で転送する文字列に暗号化を施すことも可能である。この際、言語IDを無視するような形態に実装したり、逆に暗号化に利用したりすることも可能である。また、本発明に対応していないUSBデバイスを本発明のUSBホストに接続した場合もUSBシステムとして問題はない。
【0069】
パスワード専用のストリングディスクリプタIDに対してSetDescriptor標準リクエストが成功、不成功にかかわらず、USBデバイスであればその後のSetConfiguration標準リクエスト、クラス動作に付いて不具合もなく動作する。
【0070】
別の方法としては、USBホストはUSBデバイスのデバイスIDやプロダクトID等の情報であらかじめパスワードが必要か否かの情報を保持しておけば、本発明に対応していないUSBデバイスが接続された場合にパスワード認証を行わなくて済む。
【0071】
さらに、本発明に対応していないUSBホストに本発明のUSBデバイスを接続した場合もUSBシステムとして問題はない。本発明に対応していないUSBホストはパスワード認証に係る処理をなんらせずにSetConfigurationを経てクラス動作を行おうとする。
【0072】
この際、本発明のUSBデバイスはパスワード認証が行われていないのでSetConfiguraiton及びその後のクラス動作に対するUSBホストからの通信に対して全てストール応答を行うため、セキュリティは守られる。
【0073】
(第2の実施の形態)
次に、本発明の第2の実施の形態を図8〜図11に基づき説明する。図8は、本実施の形態に係るUSBホスト/デバイスシステム装置(USBシステム装置)における、USBホストとUSBデバイスの機器内の構成を示す概念図である。
【0074】
同図において、801はUSBホストである。802は主にソフトウェアで実装されるUSBホストクラスドライバ、803は主にソフトウェアで実装されるUSBホストドライバ、804はパスワード入力機構を示す。また、805はパスワード設定機構、806は主にハードウェアで実装されるUSBホストコントローラ、807はUSBケーブルである。
【0075】
808はUSBデバイスである。809は主にハードウェアで実装されるUSBデバイスコントローラを示す。810は主にソフトウェアで実装されるUSBデバイスドライバ、811はパスワード保持機構、812はパスワード判断機構を示す。また、813は811と812を合わせてパスワード管理機構、814は主にソフトウェアで実装されるUSBデバイスクラスドライバを示している。
【0076】
USBホスト801は、USBホストドライバ803がUSBホストコントローラ806を制御することでUSBホストとしての機能を提供する。この際、接続された相手機器に対してパスワード入力機構804が機能することでパスワードをストリングディスクリプタを用いてUSBデバイスに送信することで認証を行う。さらにパスワード設定機構805が機能することで新たにパスワードを設定することが出来る。パスワード認証が成功した後にUSBホストクラスドライバ802が動作することで実際のUSBクラス機能を提供する。
【0077】
一方、USBデバイス808はUSBケーブル807が接続されることでUSBデバイスコントローラ809が反応する。これをUSBデバイスドライバ810で制御することでUSBデバイスとしての機能を提供する。この際、パスワード管理機構813によってUSBホスト801から受信したパスワードの認証をパスワード判断機構812で行い、設定されたパスワードの保持をパスワード保持機構811で行う。パスワード認証が成功すると始めてUSBデバイスクラスドライバ814が動作することでUSBクラス機能を提供する。
【0078】
図8は本実施の形態の一例であり、例えばUSBホスト801に複数のUSBホストクラスドライバ802が搭載されていても、USBデバイス808に複数のUSBデバイスクラスドライバ814が搭載されていても実施可能である。本図に示された概念構成を取ることで本実施の形態を実現することが出来る。
【0079】
図9は、本実施の形態に係るUSBシステム装置における、USBホスト側のパスワード入力に関する処理を示している。
【0080】
ステップS901において、USBデバイスの接続を検知し、ステップS902へ進む。
【0081】
ステップS902において、各標準リクエストの送信を行い、ステップS903へ進む。
【0082】
ステップS903において、USBホストが保有しているパスワード入力機構を介してユーザがパスワードを入力、ステップS904へ進む。
【0083】
ステップS904において、入力されたパスワードをStringに関するSetDescriptor標準リクエストの一連の処理を行い、ステップS905へ進む。
【0084】
ステップS905において、SetConfiguration標準リクエストの一連の処理を行い、ステップS906へ進む。
【0085】
ステップS906において、USBデバイスからストールを受信したか否かを判断する。ストールを受信した場合はステップS903へ進み、ストールを受信していない場合はステップS907へ進む。
【0086】
ステップS907において、USBクラス動作を行い、USBホスト側のパスワード入力に関する処理を終了する。
【0087】
本図では、ステップS902、ステップS906においてUSBデバイスがストール応答を行った際の処理に関しては省略してある。一般的にストール応答を受け取った後の動作は、USBリセットの後に再接続を試みる、またはそのまま応答をしない、等のエラー処理が行われる。しかしどのようなエラー処理を行うかは本発明に係る本質に影響をあたえない。
【0088】
また、ステップS905において、ユーザによるパスワードの入力処理を行うが、この際のエラー処理に関しては本図で言及していない。何度かのパスワード入力失敗を経てパスワード入力処理を終了してしまう方法や、何度も入力を繰り返す、またはその組合せなどのエラー処理が考えられる。
【0089】
さらに、USB接続を再接続しなければ再びパスワードを入力できなくしてしまう方法や、物理的な再接続は行わないがUSBバスリセットにより再度パスワード入力処理を行う等、種々の実現方法が考えられる。これについてもどのようなエラー処理を行っても本発明に係る本質の何者にも影響をあたえない。
【0090】
ステップS904において、Stringに関するSetDescriptorに対する一連の処理を行うが、この際に利用するストリングディスクリプタのIDには、幾つかの実現方法があり、これについては第1の実施形態と同様である。
【0091】
図10は、本実施の形態に係るUSBシステム装置における、USBホスト側のパスワードを設定に関する処理を示している。
【0092】
ステップS1001において、パスワード設定機構によってパスワードとして用いる文字列をユーザにより入力し、ステップS1002へ進む。
【0093】
ステップS1002において、ステップS1001で入力された文字列を持ってパスワード設定専用のストリングディスクリプタIDに関するSetDescriptorを送信し、ステップS1003へ進む。
【0094】
ステップS1003において、USBデバイスからストールを受信したか否かを判断する。ストールを受信した場合はステップS1005へ進み、ストールを受信していない場合はステップS1004へ進む。
【0095】
ステップS1004において、パスワードの設定に成功したことをユーザへ通知し、USBホスト側のパスワード設定に関する処理を終了する。
【0096】
ステップS1005において、パスワード設定に失敗したことをユーザへ通知し、USBホスト側のパスワード設定に関する処理を終了する。
【0097】
本図の処理は、必ず図9のUSBホスト側のパスワード入力に関する処理の後に行わなければならない。それ以前に行うと、ステップS1003において必ずストールをUSBデバイスから受信することになる。
【0098】
ステップS1002において、Stringに関するSetDescriptorに対する一連の処理を行うが、この際に利用するストリングディスクリプタのIDには、幾つかの実現方法がある。その方法は第一の実施形態で述べたパスワード入力専用IDの実現方法に同じである。ただし、パスワード設定専用のIDとパスワード入力専用のIDは別の値で実現する。
【0099】
図11は、本実施の形態に係るUSBシステム装置における、USBデバイス側のストリングディスクリプタに対するSetDescriptor標準リクエストに関する処理を示している。
【0100】
ステップS1101において、ストリングディスクリプタに対するSetDescriptorを受信し、ステップS1102へ進む。
【0101】
ステップS1102において、ストリングディスクリプタのIDがパスワード設定専用のIDか否かを判断する。パスワード設定専用のID場合はステップS1103へ進み、パスワード設定専用のIDでない場合はステップS1106へ進む。
【0102】
ステップS1103において、既にパスワード認証済みであるか否かを判断する。既にパスワード認証済みである場合はステップS1104へ進み、パスワード認証がなされていない場合はステップS1105へ進む。
【0103】
ステップS1104において、パスワード保持機構にUSBデバイスから送信されたストリングディスクリプタの文字列を保持し、USBデバイス側のストリングディスクリプタに対するSetDescriptor標準リクエストに関する処理を終了する。
【0104】
ステップS1105において、USBホストへストール応答をし、USBデバイス側のストリングディスクリプタに対するSetDescriptor標準リクエストに関する処理を終了する。
【0105】
ステップS1106において、ストリングディスクリプタのIDがパスワード入力専用のIDか否かを判断する。パスワード入力専用のIDの場合はステップS1108へ進み、パスワード入力専用のIDでない場合はステップS1107へ進む。
【0106】
ステップS1107において、パスワードに関連しないその他のストリングディスクリプタへの操作として動作し、USBデバイス側のストリングディスクリプタに対するSetDescriptor標準リクエストに関する処理を終了する。
【0107】
ステップS1108において、パスワード保持機構に保持されている文字列と受信したストリングディスクリプタの文字列とをパスワード判断機構で比較し、一致しているか否かを判断する。
【0108】
一致していない場合はステップS1105へ進み、一致している場合はUSBデバイス側のストリングディスクリプタに対するSetDescriptor標準リクエストに関する処理を終了する。
【0109】
以上のように実装することで、ストリングディスクリプタ(String Descriptor)を用いてパスワード認証を行うことを特徴とするUSBホスト/デバイスシステム装置を構築できる。
【0110】
なお、本実施の形態に係るその他の構成及び動作は、前述した第1の実施の形態と同じであることから、その説明は省略する。
【産業上の利用可能性】
【0111】
USBインタフェースを用いて情報のやり取りをするUSBシステムにおいて、パスワード認証を行うUSBホスト/デバイスシステム装置として利用できる。
【図面の簡単な説明】
【0112】
【図1】本発明の第1の実施形態に係るUSBホスト/デバイスシステム装置における、USBホストとUSBデバイスの機器内の構成を示す概念図である。
【図2】本発明の第1の実施形態に係るUSBホスト/デバイスシステム装置における、パスワードの入力とパスワードの出力操作を行うUSBホスト・デバイスの関係を表した概念図である。
【図3】本発明の第1の実施形態に係るUSBホスト/デバイスシステム装置における、USBホストのハードウェア構成例を示すブロック図である。
【図4】本発明の第1の実施形態に係るUSBホスト/デバイスシステム装置における、USBデバイスのハードウェア構成例を示すブロック図である。
【図5】本発明の第1の実施形態に係るUSBホスト/デバイスシステム装置における、USBホスト側のパスワード入力に関する処理を示したフローチャートである。
【図6】本発明の第1の実施形態に係るUSBホスト/デバイスシステム装置における、USBデバイス側のパスワード受信に関する処理を示したフローチャートである。
【図7】本発明の第1の実施形態に係るUSBホスト/デバイスシステム装置における、パスワード処理を含めた接続時のエニュメレーション処理例を示した図である。
【図8】本発明の第2の実施形態に係るUSBホスト/デバイスシステム装置における、USBホストとUSBデバイスの機器内の構成を示す概念図である。
【図9】本発明の第2の実施形態に係るUSBホスト/デバイスシステム装置における、USBホスト側のパスワード入力に関する処理を示したフローチャートである。
【図10】本発明の第2の実施形態に係るUSBホスト/デバイスシステム装置における、USBホスト側のパスワードの設定に関する処理を示したフローチャートである。
【図11】本発明の第2の実施形態に係るUSBホスト/デバイスシステム装置における、USBデバイス側のストリングディスクリプタに対するSetDescriptor標準リクエストに関する処理を示したフローチャートである。
【符号の説明】
【0113】
101,801 USBホスト
102,802 USBホストクラスドライバ
103,803 USBホストドライバ
104,804 パスワード入力機構
105,806 USBホストコントローラ
106,807 USBケーブル
107,808 USBデバイス
108,809 USBデバイスコントローラ
109,810 USBデバイスドライバ
110,811 パスワード保持機構
111,812 パスワード判断機構
112 パスワードモード機構
113,813 パスワード管理機構
114,814 USBデバイスクラスドライバ
201 USBホスト
202 USBケーブル
203 USBデバイス
301 CPU(中央演算処理装置)
805 パスワード設定機構

【特許請求の範囲】
【請求項1】
USB(Universal Serial Bus)インタフェースを用いて情報のやり取りをするUSBシステム装置において、
ストリングディスクリプタを用いてパスワード認証を行うことを特徴とするUSBシステム装置。
【請求項2】
前記ストリングディスクリプタを用いたパスワード認証は、USBホストからストリングをUSB標準リクエストを用いてUSBデバイスへ伝えることを特徴とする請求項1に記載のUSBシステム装置。
【請求項3】
前記USBデバイスは、USBホストから送られてきたパスワードが正しいもので無い場合に、その後のUSBクラス動作に対して全てストール応答を行うことを特徴とする請求項2に記載のUSBシステム装置。
【請求項4】
前記USBホストは、パスワード入力機構を保有することを特徴とする請求項2または3に記載のUSBシステム装置。
【請求項5】
前記USBデバイスは、パスワード管理機構を保有することを特徴とする請求項2〜4のいずれか1項に記載のUSBシステム装置。
【請求項6】
前記パスワード管理機構は、パスワード保持機構とパスワード判断機構とパスワードモード機構を保有することを特徴とする請求項5に記載のUSBシステム装置。
【請求項7】
前記USBホストは、パスワード入力機構とパスワード設定機構を保有することを特徴とする請求項2、3及び5のいずれか1項に記載のUSBシステム装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate


【公開番号】特開2010−128588(P2010−128588A)
【公開日】平成22年6月10日(2010.6.10)
【国際特許分類】
【出願番号】特願2008−299864(P2008−299864)
【出願日】平成20年11月25日(2008.11.25)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】