JP2004094514A - 初期化方法及びusbドライバ - Google Patents
初期化方法及びusbドライバ Download PDFInfo
- Publication number
- JP2004094514A JP2004094514A JP2002253754A JP2002253754A JP2004094514A JP 2004094514 A JP2004094514 A JP 2004094514A JP 2002253754 A JP2002253754 A JP 2002253754A JP 2002253754 A JP2002253754 A JP 2002253754A JP 2004094514 A JP2004094514 A JP 2004094514A
- Authority
- JP
- Japan
- Prior art keywords
- usb
- host
- configuration data
- configuration
- initialization
- 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
Links
Images
Landscapes
- Information Transfer Systems (AREA)
Abstract
【課題】特権モードが一般ユーザに察知されないようにする。
【解決手段】デバイス側では、一般ユーザ向けのコンフィギュレーションデータを送信して、そのコンフィギュレーションが選択されたらユーザモードでのデータ通信を行う(A)。逆に、そのコンフィギュレーションが選択されなかった場合は、認証手順等を経た上で、特権ユーザ向けのコンフィギュレーションデータを送信して、そのコンフィギュレーションが選択されたら特権モードでのデータ通信を行う(B)。一般ユーザに係るホストが、一般ユーザ向けのコンフィギュレーションデータを選択するのに対し(A)、特権ユーザに係るホストは、再コンフィギュレーションを要求して、特権ユーザ向けのコンフィギュレーションデータによる再接続を試行する(B)。
【選択図】 図3
【解決手段】デバイス側では、一般ユーザ向けのコンフィギュレーションデータを送信して、そのコンフィギュレーションが選択されたらユーザモードでのデータ通信を行う(A)。逆に、そのコンフィギュレーションが選択されなかった場合は、認証手順等を経た上で、特権ユーザ向けのコンフィギュレーションデータを送信して、そのコンフィギュレーションが選択されたら特権モードでのデータ通信を行う(B)。一般ユーザに係るホストが、一般ユーザ向けのコンフィギュレーションデータを選択するのに対し(A)、特権ユーザに係るホストは、再コンフィギュレーションを要求して、特権ユーザ向けのコンフィギュレーションデータによる再接続を試行する(B)。
【選択図】 図3
Description
【0001】
【発明の属する技術分野】
本発明は、USB(Universal Serial Bus)デバイスをUSBホストに接続したときに実行される初期化方法、並びにこの初期化方法の実施に適するUSBドライバに関する。
【0002】
【従来の技術】
USBデバイス(以下単に「デバイス」)をUSBホスト(以下単に「ホスト」)例えばPCに接続する際には、デバイス・ホスト間通信により初期化(エニュメレーション)手順が実行される。初期化手順においては、デバイスの機能構成即ちコンフィギュレーションを示すコンフィギュレーションデータが、デバイスからホストへと送信される(コンフィギュレーション送信)。その際、複数通りのコンフィギュレーションデータをデバイスからホストへと送信することもできる。ホストは、受信したコンフィギュレーションデータの中から、そのデータにより特定されるコンフィギュレーション下でのデータ通信を許可できるものを選択して、その結果をデバイスに通知する(コンフィギュレーション選択)。これらのステップを含む初期化手順を経た上で、デバイス・ホスト間で、USBインタフェースによるデータ通信が開始される。なお、受信したコンフィギュレーションデータにより特定されるコンフィギュレーション(群)のなかに、データ通信開始を許可できるコンフィギュレーションが見あたらない場合、ホストはデータ通信を拒否する。
【0003】
また、複数通りのコンフィギュレーションをとりうるデバイスをホストに接続する際には、例えば、上述の通り、各コンフィギュレーションに対応する合計複数通りのコンフィギュレーションデータがデバイスからホストに送信される。目的・用途によっては、複数通りのコンフィギュレーションデータのうち一つにより初期化手順が実行され、その結果に応じて他のコンフィギュレーションデータにより初期化手順が実行されることもある。例えば、下記特許文献1に記載のデバイスでは、デバイスからホストへのソフトウエア類(ドライバ、ユーティリティ等)の転送に適する第1のコンフィギュレーションと、通常のデータ転送に適する第2のコンフィギュレーションとが、準備されている。デバイスをホストに接続すると、第1のコンフィギュレーションを示すコンフィギュレーションデータがホストに送られ、このコンフィギュレーションデータ中に含まれている識別情報等に従ってホストがデバイスからドライバ等を受信及びインストールする。その後、第2のコンフィギュレーションを示すコンフィギュレーションデータがホストに送られ、適宜、データ通信が開始される。従って、デバイスをホストに接続するだけで、そのデバイス用のドライバ、ユーティリティ等の更新版をホストに自動インストールできる。
【特許文献1】
特開2000−194645号公報
【0004】
【発明が解決しようとする課題】
デバイスに複数通りのコンフィギュレーションを設ける目的としては、上掲のインストール自動化の他に、ユーザ種別によるコンフィギュレーションの切替等がある。ここでいうユーザ種別とは、そのデバイスをその本来用途通りに使用する一般ユーザ、一般ユーザとは異なる権限を有する特権ユーザ等の区別のことである。USBポートを有する通信端末を例とすると、USBポートを有するPC等にその通信端末をUSB接続して通信を行うユーザが、一般ユーザに該当する。これに対して、その通信端末の保守、点検等のサービスを行う者のように、一般ユーザとは異なる目的及び権限でその通信端末を使用する者が、特権ユーザに該当する。一般ユーザと特権ユーザの権限は、例えば、デバイス内に格納されている情報、特に秘密保持義務が課されている情報に対するアクセス権等において、相違している。具体的には、漏洩することを防ぐべき個人情報等に対しては、特権ユーザはアクセスできても一般ユーザはアクセスできないようにすべきである。
【0005】
こういった目的を達成するための一手法として、一般ユーザ向けのコンフィギュレーションと特権ユーザ向けのコンフィギュレーションを個々別々に準備する、という手法がある。その場合、図12に示すように、デバイスをホストに接続した直後に、一般ユーザ向けのコンフィギュレーションデータ及び特権ユーザ向けのコンフィギュレーションデータを、デバイスからホストに送信する。これら2通りのコンフィギュレーションデータを受信したホスト、具体的にはそのホストで使用しているUSBドライバ(以下単に「ドライバ」)は、それらのうち一方を選択する。例えば、一般ユーザ向け即ち通常のデータ通信のドライバであるユーザドライバはインストールされているが、特権ユーザ向け即ち保守等の特殊用途向けのドライバである特権ドライバはインストールされていない、というホストにおいては、図12(A)に示すように、一般ユーザ向けのコンフィギュレーションが選択され、そのコンフィギュレーション下でのデータ通信即ちユーザモードでのデータ通信が実行される。これに対して、特権ドライバがインストールされているUSBホストにおいては、図12(B)に示すように、特権ユーザ向けのコンフィギュレーションが選択され、そのコンフィギュレーション下でのデータ通信即ち特権モードでのデータ通信が実行される。
【0006】
このようにすれば、一般ユーザと特権ユーザの別に応じて、デバイスのコンフィギュレーションを切り替えてデータ通信を行うことができる。しかしながら、図12に示した手法では、USBの規格・仕様に倣い、一般ユーザ向け及び特権ユーザ向けの合計2通りのコンフィギュレーションデータを同時一括送信し、ホスト側でコンフィギュレーション選択を行っている。これは、初期化シーケンスを実行し始める時点ではホストのユーザが一般か特権かをデバイスで認識できていないためであり、従来型の手順の単純応用では余儀なくされる措置であるけれども、反面、一般ユーザが使用しているホストが特権モードの存在を知ってしまうという問題を生じさせる。特権モードの存在が知られるということは、例えば、デバイス内に格納されておりユーザモードではアクセスできない情報にアクセスするための迂路の存在が、一般ユーザに知られうる、ということである。技術力と悪意又は遊戯心を持ったユーザならば、この迂路を通じて個人情報を入手することや、特権モード用のコンフィギュレーションデータと上掲の迂路を通じて入手した情報に基づき特権ドライバを自前で作成すること等が、可能である。一般ユーザ向け及び特権ユーザ向けの合計2通りのコンフィギュレーションデータを同時一括送信することには、このような情報セキュリティ面での問題を含め、いくつかの問題がある。
【0007】
本発明の目的の一つは、初期化シーケンスを特権ユーザ以外に特権モードの存在が察知されにくい手順にすること、またそれに適するドライバを提供することにある。
【0008】
【課題を解決するための手段】
このような目的を達成するために、本発明は、(1)デバイスの機能構成を示すコンフィギュレーションデータをデバイスからホストへと送信するステップ及びこの送信への応答としてホストからデバイスにUSB通信開始許可又は拒否を通知するステップを含む初期化手順を、デバイスをホストに接続する際にデバイス・ホスト間通信により実行する初期化方法において、(2)ホストからUSB通信開始拒否が通知されたときに、先に送信したコンフィギュレーションデータにより特定される機能構成とは別の機能構成を示す他のコンフィギュレーションデータをデバイスから送信することによって、初期化手順を再実行させることを特徴とする。より好ましくは、(3)初期化手順の再実行を、ホストからデバイスへとUSB通信開始許可が通知されるまで、また使用するコンフィギュレーションデータを逐次変更しつつ、所定回数を限度として繰り返すこととする。更に好ましくは、(4)初期化手順を再実行する際に、コンフィギュレーションデータの送信に先立ち、デバイス・ホスト間通信により、デバイスがホストを認証するため又はデバイス・ホスト間の相互認証のための認証手順を実行することとする。また、例えば、(5)最初に実行される初期化手順にて送受信されるコンフィギュレーションデータは、一般ユーザ向けのコンフィギュレーションデータであり、(6)再実行に係る初期化手順にて送受信されるコンフィギュレーションデータは、一般ユーザとは異なる権限を有する特権ユーザ向けのコンフィギュレーションデータであるものとする。
【0009】
また、本発明は、(7)上掲の認証機能を備え一般ユーザ向け及び特権ユーザ向けにそれぞれコンフィギュレーションデータが準備されたデバイスにインストールされるデバイス側ドライバにおいて、(8)上記デバイスがホストに接続されたときに、そのホストに対し上記デバイスの機能構成を示しかつ一般ユーザ向けのコンフィギュレーションデータを送信し、それに対する応答としてUSB通信開始許可が通知された場合に、接続先のホストとのデータ通信を開始させ、(9)接続先のホストからUSB通信開始拒否が通知された場合に、接続先のホストが特権ユーザに係るホストであると見なし、そのホストに対し特権ユーザ向けのコンフィギュレーションデータを送信して、USB通信開始許可を求めることを特徴とする。本発明は、(10)上掲のデバイス側ドライバがインストールされたデバイスが接続されるホストにインストールされるホスト側ドライバにおいて、(11)新たに接続されたデバイスからそのデバイスの機能構成を示すコンフィギュレーションデータを受信した場合に、そのコンフィギュレーションデータに関しては一般ユーザ向けのコンフィギュレーションデータであると見なし、送信元のデバイスに対しUSB通信開始拒否を通知し、(12)通知先のデバイスから前回とは異なるコンフィギュレーションデータを受信した場合に、そのコンフィギュレーションデータに関しては特権ユーザ向けのコンフィギュレーションデータであると見なし、USB通信開始許可及び拒否のいずれかを通知することを特徴とする。
【0010】
【発明の実施の形態】
以下、本発明の好適な実施形態に関し図面に基づき説明する。
【0011】
図1及び図2に本発明の実施環境の一例を示す。これらの図のうち、図1に示したのはハードウエア構成、図2に示したのはソフトウエア構成である。本発明は、これらの図に示されているように、PHS端末等のデバイス10と、PC等のホスト20とを、USBケーブルにて接続したシステム環境にて実施可能である。
【0012】
また、デバイス10は、MPU11、RAM12、ROM13、クロック発生部14、USBコントローラ15等のハードウエアを有している。アプリケーションプログラム100やドライバ101等のソフトウエア類や、それらのソフトウエアにより使用されるデータ例えばコンフィギュレーションデータは、例えばROM13に予め書き込んでおく。MPU11は、RAM12によって提供される記憶空間を利用してそれらのソフトウエアに従い処理を実行し、デバイス10全体の動作を制御・管理する。クロック発生部14は、デバイス10の動作速度を規定するクロックを発生させる。USBコントローラ15は、USB接続のためのハードウエアである。
【0013】
アプリケーションプログラム100は、ドライバ101を介してUSBを使用する。ドライバ101は、API(Application Programming Interface)102、通信制御103、プロトコル制御104、認証処理105等のモジュールにより構成されている。API102は、アプリケーションプログラム100やその実行環境であるOS等とのインタフェースである。通信制御103は、USBコントローラ15による通信動作を制御する。プロトコル制御104は、USBのプロトコルに則って通信動作を管理・制御する。認証処理105は、プロトコル制御104の一部であり、後述の認証手順を担う。
【0014】
ホスト20のハードウエア構成については、PCを初めとする情報処理装置の分野において常識的な構成であるため、特に説明しない。また、ホスト20においても、アプリケーションプログラム200がドライバ201を通じてUSBを使用する、というソフトウエア構成が採られている。このドライバ201のモジュール構成は、ドライバ101のそれと同様である。但し、ドライバ201を構成する各モジュールの必須機能は、ドライバ101を構成する各モジュールの必須機能と、異なっている。この相違は、一つには、デバイス10向けとホスト20向けというインストール先の相違による相違や、インストール先のOS等の相違による相違であり、いわゆる当業者であれば本願による開示から容易に推察できる。また、ドライバ101とドライバ201における対応モジュール間の機能上の相違は、また一つには、後述の諸機能を実現するための相違である。この相違については、いわゆる当業者であれば、本願による開示から、一意に理解できるであろう。
【0015】
図3に、本実施形態における初期化手順を示す。この初期化手順は、デバイス10がUSBケーブルによりホスト20に接続され、デバイス10とホスト20とがUSBケーブルにより接続されたことが周知の手法により検出された直後に、ドライバ101とドライバ201との通信により実行される手順であり、本発明に係る初期化方法の好適な実施形態の一つである。この手順は、より詳細には、主としてプロトコル制御104及びその一部である認証処理105、並びにこれらに対応するドライバ201の構成モジュールにより、実行される。また、先にも述べたとおり、USBにおける通常の初期化手順は、デバイス10のコンフィギュレーションを示すコンフィギュレーションデータをデバイス10からホスト20に送信し、ホスト20では受信したコンフィギュレーションデータの採否判断・選択を行い、その結果をデバイス10に通知する処理を含んでいる。本実施形態における初期化手順でも、同様の処理を実行する。しかしながら、本実施形態における初期化手順は、図12に示した初期化手順とは異なり、一般ユーザ向け即ちユーザモード用のコンフィギュレーションを示すコンフィギュレーションデータと特権ユーザ向け即ち特権モード用のコンフィギュレーションを示すコンフィギュレーションデータとを一括送信する、という処理を含んでいない。
【0016】
即ち、本実施形態では、まずユーザモードに係るコンフィギュレーションデータが、デバイス10(厳密にはそのドライバ101。以下同様)からホスト20(厳密にはそのドライバ201。以下同様)へと送信される。ホスト20が一般ユーザに係るホストである場合は、そのホスト20は、このユーザモード用のコンフィギュレーションデータについてコンフィギュレーション選択を実行し、その結果をデバイス10に通知する。USB通信開始許可を表す通知であれば、図3(A)に示すように、USBインタフェースによるデータ通信が開始される。ユーザモード用のコンフィギュレーションデータに基づく接続であることから、このデータ通信は、ユーザモードに係るコンフィギュレーションでの通信となる。この流れにおいては、特権モードに係るコンフィギュレーションデータは送信されないため、一般ユーザに係るホスト20が初期化手順の実行を通じて特権モードの存在を知ることはない。
【0017】
逆に、ホスト20が特権ユーザに係るホストである場合は、そのホスト20は、受信したコンフィギュレーションの内容如何によらず、図3(B)に示すように、デバイス10に対して再コンフィギュレーションを要求する。再コンフィギュレーションの要求は、例えばベンダーコマンドへの割当のようにUSB規格に合致する方法の他、実用上差し障りがない場合は特権モード要求(図5参照)等のコマンドを追加するというUSB規格外の方法によっても、実行できる。再コンフィギュレーションの要求を受けたデバイス10は、ホスト20を相手として、デバイス10・ホスト20間の相互認証手順(或いは少なくともデバイス10がホスト20を認証する手順)を実行する。認証一致という結果が得られた場合に限り、デバイス10は、USBコントローラ15に内蔵されるプルアップ抵抗を電気的にターンオンさせること等によって、ホスト20側に、デバイス10がホスト20から一旦切り離され再度接続されたかのように、認識させる。デバイス10は、その上で、特権モードに係るコンフィギュレーションデータをホスト20に送信し、ホスト20は、これに応じてコンフィギュレーション選択を実行し、更にその結果に応じて、デバイス10・ホスト20間のデータ通信が開始される。特権モード用のコンフィギュレーションデータに基づく接続であることから、このデータ通信は、特権モードに係るコンフィギュレーションでの通信となる。
【0018】
また、図3に示した手順では、ユーザモード及び特権モードという2種類のモードを想定していた。即ち、特権ユーザを全てひとくくりにしていた。これに対して、特権ユーザをレベル分けし、デバイス10・ホスト20間でやりとりできる情報の種別に関する制限の度合いを特権モードレベル毎に設定し、特権モードレベル毎にコンフィギュレーションを設定することも可能である。
【0019】
仮に、特権ユーザのレベル即ち特権モードレベルが、低い方から順にレベル1、レベル2、…レベルNの各レベルに分かれており(N:2以上の自然数)、接続先のホスト20がレベルIの特権ユーザに係るホストであるとする(I:1以上N以下の自然数)。この場合、例えば図4(A)に示すように、ホスト20が、再コンフィギュレーション要求に係るコマンド中に自分の特権モードレベルIを示す情報をセットしてそのコマンドを送信する。デバイス20は、認証一致と判断された後に、レベルIの特権ユーザ向けのコンフィギュレーションを示すコンフィギュレーションデータを送信することによって、初期化手順を開始・再実行する。この手順では、ホスト20の特権モードレベルが、認証前にデバイス10側に知られる。
【0020】
これに対して、図4(B)に示すように、特権モードレベルの昇順に従い、特権モードコンフィギュレーション送信/再コンフィギュレーション要求を繰り返す、という手順では、平均的に見れば図4(A)よりも時間がかかるけれども、認証前にホスト20の特権モードレベルがデバイス10側に漏れることはなくなる。即ち、図4(B)に示した手順では、デバイス10が、レベル1、レベル2、…という順で、最大でレベルNまで、そのレベルに係る特権ユーザ向けのコンフィギュレーションを示すコンフィギュレーションデータを、送信する。ホスト20では、自分の特権モードレベルに合致したコンフィギュレーションデータを受信した場合はそのコンフィギュレーションを選択し、そうでない場合は再コンフィギュレーションを要求する。ホスト20がコンフィギュレーションを選択する旨をデバイス10に通知した後、データ通信が開始される。
【0021】
また、図4(A)又は(B)に示した手順における再コンフィギュレーション要求を、特権モード要求等のUSB規格外コマンドに置き換えた図5(A)又は(B)の手順によって、本発明を実施することもできる。図5(A)に示した手順では、ホスト20が特権モード要求に係るコマンド中に自分の特権モードレベルをセットして送信し、デバイス10では認証一致後にこの特権モードレベルに対応したコンフィギュレーションデータによる初期化手順を開始・再実行する。図5(B)に示した手順では、ホスト20が特権モード要求に係るコマンド中に自分の特権モードレベルをセットせずに送信し、デバイス10では認証一致後に特権モードレベルの昇順に従いレベルNまでを限度として各特権モードレベルに対応したコンフィギュレーションデータによる初期化手順を繰り返し実行する。
【0022】
なお、図3〜図5に示したいずれの手順においても、デバイス10からホスト20に特権モードレベルに関する通知を要求する等の動作は、実行されない。これは、一般ユーザに係るホスト20に特権モードの存在を知られることを、防ぐためである。
【0023】
認証手順は、例えば図6(A)或いは(B)に示した手順により実行できる。図6(A)に示したパターンによる認証手順では、デバイス10からホスト20への認証要求及びホスト20からデバイス10への認証応答に、それぞれデバイス10又はホスト20の認証コードが含まれており、それらの認証コードに基づきデバイス10、ホスト20又はその双方にて、双方の認証コード間に認証論理上の齟齬がないかどうかの判断即ち認証一致判断を行う(ホスト20のみで一致判断を行う場合はその結果をホスト20からデバイス10に通知する)。図6(B)に示したパターンによる認証手順では、ホスト20からの再コンフィギュレーション要求に係るコマンド中に、ホスト20の認証コードが含まれている。また、図6(A)における認証要求及び認証応答に代えて、それぞれ、デバイス10の認証コードを含む認証応答と、ホスト20における認証一致判断の結果を示す認証応答通知とが、送信される。いずれのパターンによるにしろ、認証一致であれば、前述の通り特権モードでの再接続のため特権モードに係るコンフィギュレーションデータにより初期化手順が実行され、認証不一致であれば、ホスト20からの再コンフィギュレーション要求が正当なものでない等の可能性があるため、特権モードに係るコンフィギュレーションデータによる初期化手順は実行されない(切断状態となる)。なお、認証手順を別途並列的に実行することも可能である。
【0024】
図7〜図11に、図3及び図6(A)に示した手順を例として、ドライバ101及び201の動作の流れを示す。図7及び図8はドライバ101の、図9は一般ユーザに係るホスト20のドライバ201の、図10及び図11は特権ユーザに係るホスト20のドライバ201の、動作の流れである。デバイス10がホスト20に接続されそのことが認識されると(300,400)、ドライバ101によりユーザモード用のコンフィギュレーションデータが送信され(301)、そのデータがドライバ201により受信される(401)。ホスト20が一般ユーザに係るホストである場合は、そのホスト20のドライバ201によるコンフィギュレーション選択(402)の結果に応じて(302,303)、デバイス10・ホスト20間のデータ通信が開始される(304,403)。逆に、ホスト20が特権ユーザに係るホストである場合は、そのホスト20のドライバ201による再コンフィギュレーション要求(404)に応じて(302,303)、ドライバ101からの認証要求(305,405)及びドライバ201からの認証応答(406,306)を含む認証手順が実行され、ドライバ101側で認証一致判断を行う。このときドライバ201側では「切断」と認識しているため(407)、ドライバ101側で認証不一致と判断された場合はそのまま「切断」状態が続く(408)。これに対して、ドライバ101側で認証一致と判断されると、ドライバ101ではプルアップ抵抗ターンオン等により「再接続」状態に移行し(309)、ドライバ201はこれを以て「新規接続」と認識する(409)。その後、ドライバ101は特権モードに係るコンフィギュレーションデータを送信し(310,410)、ドライバ201はコンフィギュレーション選択を実行し(411,311)、しかる後、適宜、特権モードでのデータ通信が行われる(312,412)。
【0025】
なお、以上の説明では、一般ユーザと特権ユーザとを想定していたが、本発明は、このような前提を必要とするものではない。即ち、本発明は、例えばハードウエア上の制約でコンフィギュレーションをいちどきに1種類しか送信できないデバイスから、ホストに対し複数通りのコンフィギュレーションを送信する手順としても、実施できる。
【0026】
【発明の効果】
このように、本発明によれば、あるコンフィギュレーションについてホストからUSB通信開始拒否との通知を受けたデバイスが、先のコンフィギュレーションとは別のコンフィギュレーションにより初期化手順を再実行するようにしたため、特権ユーザ以外に特権モードの存在が察知されにくい形で特権モードを設けることや、ハードウエア等の制約でコンフィギュレーション送信が制限されているデバイスからの複数通りのコンフィギュレーション送信が、可能になる。例えば、まず一般ユーザ向けのコンフィギュレーションデータにより初期化手順を実行し、通信開始が拒否されたときは特権ユーザ向けのコンフィギュレーションデータにより初期化手順を実行する、という手順によって、一般ユーザに係るホストに特権モードの存在を知られること、ひいては不必要な情報流出等の問題を防止・解消できる。また、特に特権モードでの接続に当たって、デバイスがホストを認証するため又はデバイス・ホスト間の相互認証のための認証手順を実行することにより、上掲の問題は更に少なくなる。また、本発明は、一般にN通り(N:2以上の自然数)のコンフィギュレーションを想定して実施すること、例えばN階層の特権モードレベルを各特権ユーザに付与して各特権モードレベル毎に異なるコンフィギュレーションによる接続とすることができる。そのための手順として、ホストからの特権モードレベル通知を含む手順だけでなく、デバイス側で最大N回に亘り初期化手順の再実行を繰り返す手順も採用できる。そして、本発明によれば、上掲の効果を、ドライバの改良によって達成できる。
【図面の簡単な説明】
【図1】本発明のハードウエア的実施環境例を示す図である。
【図2】本発明のソフトウエア的実施環境例を示す図である。
【図3】本発明の第1の実施形態における初期化手順を示す図であり、特に(A)はホストが一般ユーザに係るホストであった場合を、(B)はホストが特権ユーザに係るホストであった場合を、それぞれ示すシーケンス図である。
【図4】本発明の他の実施形態に係る初期化手順を示す図であり、特に(A)は第2の実施形態を、(B)は第3の実施形態を、それぞれ示すシーケンス図である。
【図5】本発明の他の実施形態に係る初期化手順を示す図であり、特に(A)は第4の実施形態を、(B)は第5の実施形態を、それぞれ示すシーケンス図である。
【図6】本発明の好適な実施形態における認証手順の例を示す図であり、特に(A)は認証要求/認証応答による手順を、(B)は再コンフィギュレーション/認証応答/認証応答通知による手順を、それぞれ示すシーケンス図である。
【図7】本発明の第1の実施形態におけるデバイス側のドライバの動作の流れのうち前半を示すフローチャートである。
【図8】本発明の第1の実施形態におけるデバイス側のドライバの動作の流れのうち後半を示すフローチャートである。
【図9】本発明の第1の実施形態におけるホスト側のドライバの動作の流れ、特に一般ユーザに係るホストにおける流れを示すフローチャートである。
【図10】本発明の第1の実施形態におけるホスト側のドライバの動作の流れ、特に特権ユーザに係るホストにおける流れの前半を示すフローチャートである。
【図11】本発明の第1の実施形態におけるホスト側のドライバの動作の流れ、特に特権ユーザに係るホストにおける流れの後半を示すフローチャートである。
【図12】従来技術の単純変形による初期化手順を示す図であり、特に(A)はホストが一般ユーザに係るホストであった場合を、(B)はホストが特権ユーザに係るホストであった場合を、それぞれ示す図である。
【符号の説明】
10 デバイス、101,201 ドライバ、104 プロトコル制御、105 認証処理、20 ホスト。
【発明の属する技術分野】
本発明は、USB(Universal Serial Bus)デバイスをUSBホストに接続したときに実行される初期化方法、並びにこの初期化方法の実施に適するUSBドライバに関する。
【0002】
【従来の技術】
USBデバイス(以下単に「デバイス」)をUSBホスト(以下単に「ホスト」)例えばPCに接続する際には、デバイス・ホスト間通信により初期化(エニュメレーション)手順が実行される。初期化手順においては、デバイスの機能構成即ちコンフィギュレーションを示すコンフィギュレーションデータが、デバイスからホストへと送信される(コンフィギュレーション送信)。その際、複数通りのコンフィギュレーションデータをデバイスからホストへと送信することもできる。ホストは、受信したコンフィギュレーションデータの中から、そのデータにより特定されるコンフィギュレーション下でのデータ通信を許可できるものを選択して、その結果をデバイスに通知する(コンフィギュレーション選択)。これらのステップを含む初期化手順を経た上で、デバイス・ホスト間で、USBインタフェースによるデータ通信が開始される。なお、受信したコンフィギュレーションデータにより特定されるコンフィギュレーション(群)のなかに、データ通信開始を許可できるコンフィギュレーションが見あたらない場合、ホストはデータ通信を拒否する。
【0003】
また、複数通りのコンフィギュレーションをとりうるデバイスをホストに接続する際には、例えば、上述の通り、各コンフィギュレーションに対応する合計複数通りのコンフィギュレーションデータがデバイスからホストに送信される。目的・用途によっては、複数通りのコンフィギュレーションデータのうち一つにより初期化手順が実行され、その結果に応じて他のコンフィギュレーションデータにより初期化手順が実行されることもある。例えば、下記特許文献1に記載のデバイスでは、デバイスからホストへのソフトウエア類(ドライバ、ユーティリティ等)の転送に適する第1のコンフィギュレーションと、通常のデータ転送に適する第2のコンフィギュレーションとが、準備されている。デバイスをホストに接続すると、第1のコンフィギュレーションを示すコンフィギュレーションデータがホストに送られ、このコンフィギュレーションデータ中に含まれている識別情報等に従ってホストがデバイスからドライバ等を受信及びインストールする。その後、第2のコンフィギュレーションを示すコンフィギュレーションデータがホストに送られ、適宜、データ通信が開始される。従って、デバイスをホストに接続するだけで、そのデバイス用のドライバ、ユーティリティ等の更新版をホストに自動インストールできる。
【特許文献1】
特開2000−194645号公報
【0004】
【発明が解決しようとする課題】
デバイスに複数通りのコンフィギュレーションを設ける目的としては、上掲のインストール自動化の他に、ユーザ種別によるコンフィギュレーションの切替等がある。ここでいうユーザ種別とは、そのデバイスをその本来用途通りに使用する一般ユーザ、一般ユーザとは異なる権限を有する特権ユーザ等の区別のことである。USBポートを有する通信端末を例とすると、USBポートを有するPC等にその通信端末をUSB接続して通信を行うユーザが、一般ユーザに該当する。これに対して、その通信端末の保守、点検等のサービスを行う者のように、一般ユーザとは異なる目的及び権限でその通信端末を使用する者が、特権ユーザに該当する。一般ユーザと特権ユーザの権限は、例えば、デバイス内に格納されている情報、特に秘密保持義務が課されている情報に対するアクセス権等において、相違している。具体的には、漏洩することを防ぐべき個人情報等に対しては、特権ユーザはアクセスできても一般ユーザはアクセスできないようにすべきである。
【0005】
こういった目的を達成するための一手法として、一般ユーザ向けのコンフィギュレーションと特権ユーザ向けのコンフィギュレーションを個々別々に準備する、という手法がある。その場合、図12に示すように、デバイスをホストに接続した直後に、一般ユーザ向けのコンフィギュレーションデータ及び特権ユーザ向けのコンフィギュレーションデータを、デバイスからホストに送信する。これら2通りのコンフィギュレーションデータを受信したホスト、具体的にはそのホストで使用しているUSBドライバ(以下単に「ドライバ」)は、それらのうち一方を選択する。例えば、一般ユーザ向け即ち通常のデータ通信のドライバであるユーザドライバはインストールされているが、特権ユーザ向け即ち保守等の特殊用途向けのドライバである特権ドライバはインストールされていない、というホストにおいては、図12(A)に示すように、一般ユーザ向けのコンフィギュレーションが選択され、そのコンフィギュレーション下でのデータ通信即ちユーザモードでのデータ通信が実行される。これに対して、特権ドライバがインストールされているUSBホストにおいては、図12(B)に示すように、特権ユーザ向けのコンフィギュレーションが選択され、そのコンフィギュレーション下でのデータ通信即ち特権モードでのデータ通信が実行される。
【0006】
このようにすれば、一般ユーザと特権ユーザの別に応じて、デバイスのコンフィギュレーションを切り替えてデータ通信を行うことができる。しかしながら、図12に示した手法では、USBの規格・仕様に倣い、一般ユーザ向け及び特権ユーザ向けの合計2通りのコンフィギュレーションデータを同時一括送信し、ホスト側でコンフィギュレーション選択を行っている。これは、初期化シーケンスを実行し始める時点ではホストのユーザが一般か特権かをデバイスで認識できていないためであり、従来型の手順の単純応用では余儀なくされる措置であるけれども、反面、一般ユーザが使用しているホストが特権モードの存在を知ってしまうという問題を生じさせる。特権モードの存在が知られるということは、例えば、デバイス内に格納されておりユーザモードではアクセスできない情報にアクセスするための迂路の存在が、一般ユーザに知られうる、ということである。技術力と悪意又は遊戯心を持ったユーザならば、この迂路を通じて個人情報を入手することや、特権モード用のコンフィギュレーションデータと上掲の迂路を通じて入手した情報に基づき特権ドライバを自前で作成すること等が、可能である。一般ユーザ向け及び特権ユーザ向けの合計2通りのコンフィギュレーションデータを同時一括送信することには、このような情報セキュリティ面での問題を含め、いくつかの問題がある。
【0007】
本発明の目的の一つは、初期化シーケンスを特権ユーザ以外に特権モードの存在が察知されにくい手順にすること、またそれに適するドライバを提供することにある。
【0008】
【課題を解決するための手段】
このような目的を達成するために、本発明は、(1)デバイスの機能構成を示すコンフィギュレーションデータをデバイスからホストへと送信するステップ及びこの送信への応答としてホストからデバイスにUSB通信開始許可又は拒否を通知するステップを含む初期化手順を、デバイスをホストに接続する際にデバイス・ホスト間通信により実行する初期化方法において、(2)ホストからUSB通信開始拒否が通知されたときに、先に送信したコンフィギュレーションデータにより特定される機能構成とは別の機能構成を示す他のコンフィギュレーションデータをデバイスから送信することによって、初期化手順を再実行させることを特徴とする。より好ましくは、(3)初期化手順の再実行を、ホストからデバイスへとUSB通信開始許可が通知されるまで、また使用するコンフィギュレーションデータを逐次変更しつつ、所定回数を限度として繰り返すこととする。更に好ましくは、(4)初期化手順を再実行する際に、コンフィギュレーションデータの送信に先立ち、デバイス・ホスト間通信により、デバイスがホストを認証するため又はデバイス・ホスト間の相互認証のための認証手順を実行することとする。また、例えば、(5)最初に実行される初期化手順にて送受信されるコンフィギュレーションデータは、一般ユーザ向けのコンフィギュレーションデータであり、(6)再実行に係る初期化手順にて送受信されるコンフィギュレーションデータは、一般ユーザとは異なる権限を有する特権ユーザ向けのコンフィギュレーションデータであるものとする。
【0009】
また、本発明は、(7)上掲の認証機能を備え一般ユーザ向け及び特権ユーザ向けにそれぞれコンフィギュレーションデータが準備されたデバイスにインストールされるデバイス側ドライバにおいて、(8)上記デバイスがホストに接続されたときに、そのホストに対し上記デバイスの機能構成を示しかつ一般ユーザ向けのコンフィギュレーションデータを送信し、それに対する応答としてUSB通信開始許可が通知された場合に、接続先のホストとのデータ通信を開始させ、(9)接続先のホストからUSB通信開始拒否が通知された場合に、接続先のホストが特権ユーザに係るホストであると見なし、そのホストに対し特権ユーザ向けのコンフィギュレーションデータを送信して、USB通信開始許可を求めることを特徴とする。本発明は、(10)上掲のデバイス側ドライバがインストールされたデバイスが接続されるホストにインストールされるホスト側ドライバにおいて、(11)新たに接続されたデバイスからそのデバイスの機能構成を示すコンフィギュレーションデータを受信した場合に、そのコンフィギュレーションデータに関しては一般ユーザ向けのコンフィギュレーションデータであると見なし、送信元のデバイスに対しUSB通信開始拒否を通知し、(12)通知先のデバイスから前回とは異なるコンフィギュレーションデータを受信した場合に、そのコンフィギュレーションデータに関しては特権ユーザ向けのコンフィギュレーションデータであると見なし、USB通信開始許可及び拒否のいずれかを通知することを特徴とする。
【0010】
【発明の実施の形態】
以下、本発明の好適な実施形態に関し図面に基づき説明する。
【0011】
図1及び図2に本発明の実施環境の一例を示す。これらの図のうち、図1に示したのはハードウエア構成、図2に示したのはソフトウエア構成である。本発明は、これらの図に示されているように、PHS端末等のデバイス10と、PC等のホスト20とを、USBケーブルにて接続したシステム環境にて実施可能である。
【0012】
また、デバイス10は、MPU11、RAM12、ROM13、クロック発生部14、USBコントローラ15等のハードウエアを有している。アプリケーションプログラム100やドライバ101等のソフトウエア類や、それらのソフトウエアにより使用されるデータ例えばコンフィギュレーションデータは、例えばROM13に予め書き込んでおく。MPU11は、RAM12によって提供される記憶空間を利用してそれらのソフトウエアに従い処理を実行し、デバイス10全体の動作を制御・管理する。クロック発生部14は、デバイス10の動作速度を規定するクロックを発生させる。USBコントローラ15は、USB接続のためのハードウエアである。
【0013】
アプリケーションプログラム100は、ドライバ101を介してUSBを使用する。ドライバ101は、API(Application Programming Interface)102、通信制御103、プロトコル制御104、認証処理105等のモジュールにより構成されている。API102は、アプリケーションプログラム100やその実行環境であるOS等とのインタフェースである。通信制御103は、USBコントローラ15による通信動作を制御する。プロトコル制御104は、USBのプロトコルに則って通信動作を管理・制御する。認証処理105は、プロトコル制御104の一部であり、後述の認証手順を担う。
【0014】
ホスト20のハードウエア構成については、PCを初めとする情報処理装置の分野において常識的な構成であるため、特に説明しない。また、ホスト20においても、アプリケーションプログラム200がドライバ201を通じてUSBを使用する、というソフトウエア構成が採られている。このドライバ201のモジュール構成は、ドライバ101のそれと同様である。但し、ドライバ201を構成する各モジュールの必須機能は、ドライバ101を構成する各モジュールの必須機能と、異なっている。この相違は、一つには、デバイス10向けとホスト20向けというインストール先の相違による相違や、インストール先のOS等の相違による相違であり、いわゆる当業者であれば本願による開示から容易に推察できる。また、ドライバ101とドライバ201における対応モジュール間の機能上の相違は、また一つには、後述の諸機能を実現するための相違である。この相違については、いわゆる当業者であれば、本願による開示から、一意に理解できるであろう。
【0015】
図3に、本実施形態における初期化手順を示す。この初期化手順は、デバイス10がUSBケーブルによりホスト20に接続され、デバイス10とホスト20とがUSBケーブルにより接続されたことが周知の手法により検出された直後に、ドライバ101とドライバ201との通信により実行される手順であり、本発明に係る初期化方法の好適な実施形態の一つである。この手順は、より詳細には、主としてプロトコル制御104及びその一部である認証処理105、並びにこれらに対応するドライバ201の構成モジュールにより、実行される。また、先にも述べたとおり、USBにおける通常の初期化手順は、デバイス10のコンフィギュレーションを示すコンフィギュレーションデータをデバイス10からホスト20に送信し、ホスト20では受信したコンフィギュレーションデータの採否判断・選択を行い、その結果をデバイス10に通知する処理を含んでいる。本実施形態における初期化手順でも、同様の処理を実行する。しかしながら、本実施形態における初期化手順は、図12に示した初期化手順とは異なり、一般ユーザ向け即ちユーザモード用のコンフィギュレーションを示すコンフィギュレーションデータと特権ユーザ向け即ち特権モード用のコンフィギュレーションを示すコンフィギュレーションデータとを一括送信する、という処理を含んでいない。
【0016】
即ち、本実施形態では、まずユーザモードに係るコンフィギュレーションデータが、デバイス10(厳密にはそのドライバ101。以下同様)からホスト20(厳密にはそのドライバ201。以下同様)へと送信される。ホスト20が一般ユーザに係るホストである場合は、そのホスト20は、このユーザモード用のコンフィギュレーションデータについてコンフィギュレーション選択を実行し、その結果をデバイス10に通知する。USB通信開始許可を表す通知であれば、図3(A)に示すように、USBインタフェースによるデータ通信が開始される。ユーザモード用のコンフィギュレーションデータに基づく接続であることから、このデータ通信は、ユーザモードに係るコンフィギュレーションでの通信となる。この流れにおいては、特権モードに係るコンフィギュレーションデータは送信されないため、一般ユーザに係るホスト20が初期化手順の実行を通じて特権モードの存在を知ることはない。
【0017】
逆に、ホスト20が特権ユーザに係るホストである場合は、そのホスト20は、受信したコンフィギュレーションの内容如何によらず、図3(B)に示すように、デバイス10に対して再コンフィギュレーションを要求する。再コンフィギュレーションの要求は、例えばベンダーコマンドへの割当のようにUSB規格に合致する方法の他、実用上差し障りがない場合は特権モード要求(図5参照)等のコマンドを追加するというUSB規格外の方法によっても、実行できる。再コンフィギュレーションの要求を受けたデバイス10は、ホスト20を相手として、デバイス10・ホスト20間の相互認証手順(或いは少なくともデバイス10がホスト20を認証する手順)を実行する。認証一致という結果が得られた場合に限り、デバイス10は、USBコントローラ15に内蔵されるプルアップ抵抗を電気的にターンオンさせること等によって、ホスト20側に、デバイス10がホスト20から一旦切り離され再度接続されたかのように、認識させる。デバイス10は、その上で、特権モードに係るコンフィギュレーションデータをホスト20に送信し、ホスト20は、これに応じてコンフィギュレーション選択を実行し、更にその結果に応じて、デバイス10・ホスト20間のデータ通信が開始される。特権モード用のコンフィギュレーションデータに基づく接続であることから、このデータ通信は、特権モードに係るコンフィギュレーションでの通信となる。
【0018】
また、図3に示した手順では、ユーザモード及び特権モードという2種類のモードを想定していた。即ち、特権ユーザを全てひとくくりにしていた。これに対して、特権ユーザをレベル分けし、デバイス10・ホスト20間でやりとりできる情報の種別に関する制限の度合いを特権モードレベル毎に設定し、特権モードレベル毎にコンフィギュレーションを設定することも可能である。
【0019】
仮に、特権ユーザのレベル即ち特権モードレベルが、低い方から順にレベル1、レベル2、…レベルNの各レベルに分かれており(N:2以上の自然数)、接続先のホスト20がレベルIの特権ユーザに係るホストであるとする(I:1以上N以下の自然数)。この場合、例えば図4(A)に示すように、ホスト20が、再コンフィギュレーション要求に係るコマンド中に自分の特権モードレベルIを示す情報をセットしてそのコマンドを送信する。デバイス20は、認証一致と判断された後に、レベルIの特権ユーザ向けのコンフィギュレーションを示すコンフィギュレーションデータを送信することによって、初期化手順を開始・再実行する。この手順では、ホスト20の特権モードレベルが、認証前にデバイス10側に知られる。
【0020】
これに対して、図4(B)に示すように、特権モードレベルの昇順に従い、特権モードコンフィギュレーション送信/再コンフィギュレーション要求を繰り返す、という手順では、平均的に見れば図4(A)よりも時間がかかるけれども、認証前にホスト20の特権モードレベルがデバイス10側に漏れることはなくなる。即ち、図4(B)に示した手順では、デバイス10が、レベル1、レベル2、…という順で、最大でレベルNまで、そのレベルに係る特権ユーザ向けのコンフィギュレーションを示すコンフィギュレーションデータを、送信する。ホスト20では、自分の特権モードレベルに合致したコンフィギュレーションデータを受信した場合はそのコンフィギュレーションを選択し、そうでない場合は再コンフィギュレーションを要求する。ホスト20がコンフィギュレーションを選択する旨をデバイス10に通知した後、データ通信が開始される。
【0021】
また、図4(A)又は(B)に示した手順における再コンフィギュレーション要求を、特権モード要求等のUSB規格外コマンドに置き換えた図5(A)又は(B)の手順によって、本発明を実施することもできる。図5(A)に示した手順では、ホスト20が特権モード要求に係るコマンド中に自分の特権モードレベルをセットして送信し、デバイス10では認証一致後にこの特権モードレベルに対応したコンフィギュレーションデータによる初期化手順を開始・再実行する。図5(B)に示した手順では、ホスト20が特権モード要求に係るコマンド中に自分の特権モードレベルをセットせずに送信し、デバイス10では認証一致後に特権モードレベルの昇順に従いレベルNまでを限度として各特権モードレベルに対応したコンフィギュレーションデータによる初期化手順を繰り返し実行する。
【0022】
なお、図3〜図5に示したいずれの手順においても、デバイス10からホスト20に特権モードレベルに関する通知を要求する等の動作は、実行されない。これは、一般ユーザに係るホスト20に特権モードの存在を知られることを、防ぐためである。
【0023】
認証手順は、例えば図6(A)或いは(B)に示した手順により実行できる。図6(A)に示したパターンによる認証手順では、デバイス10からホスト20への認証要求及びホスト20からデバイス10への認証応答に、それぞれデバイス10又はホスト20の認証コードが含まれており、それらの認証コードに基づきデバイス10、ホスト20又はその双方にて、双方の認証コード間に認証論理上の齟齬がないかどうかの判断即ち認証一致判断を行う(ホスト20のみで一致判断を行う場合はその結果をホスト20からデバイス10に通知する)。図6(B)に示したパターンによる認証手順では、ホスト20からの再コンフィギュレーション要求に係るコマンド中に、ホスト20の認証コードが含まれている。また、図6(A)における認証要求及び認証応答に代えて、それぞれ、デバイス10の認証コードを含む認証応答と、ホスト20における認証一致判断の結果を示す認証応答通知とが、送信される。いずれのパターンによるにしろ、認証一致であれば、前述の通り特権モードでの再接続のため特権モードに係るコンフィギュレーションデータにより初期化手順が実行され、認証不一致であれば、ホスト20からの再コンフィギュレーション要求が正当なものでない等の可能性があるため、特権モードに係るコンフィギュレーションデータによる初期化手順は実行されない(切断状態となる)。なお、認証手順を別途並列的に実行することも可能である。
【0024】
図7〜図11に、図3及び図6(A)に示した手順を例として、ドライバ101及び201の動作の流れを示す。図7及び図8はドライバ101の、図9は一般ユーザに係るホスト20のドライバ201の、図10及び図11は特権ユーザに係るホスト20のドライバ201の、動作の流れである。デバイス10がホスト20に接続されそのことが認識されると(300,400)、ドライバ101によりユーザモード用のコンフィギュレーションデータが送信され(301)、そのデータがドライバ201により受信される(401)。ホスト20が一般ユーザに係るホストである場合は、そのホスト20のドライバ201によるコンフィギュレーション選択(402)の結果に応じて(302,303)、デバイス10・ホスト20間のデータ通信が開始される(304,403)。逆に、ホスト20が特権ユーザに係るホストである場合は、そのホスト20のドライバ201による再コンフィギュレーション要求(404)に応じて(302,303)、ドライバ101からの認証要求(305,405)及びドライバ201からの認証応答(406,306)を含む認証手順が実行され、ドライバ101側で認証一致判断を行う。このときドライバ201側では「切断」と認識しているため(407)、ドライバ101側で認証不一致と判断された場合はそのまま「切断」状態が続く(408)。これに対して、ドライバ101側で認証一致と判断されると、ドライバ101ではプルアップ抵抗ターンオン等により「再接続」状態に移行し(309)、ドライバ201はこれを以て「新規接続」と認識する(409)。その後、ドライバ101は特権モードに係るコンフィギュレーションデータを送信し(310,410)、ドライバ201はコンフィギュレーション選択を実行し(411,311)、しかる後、適宜、特権モードでのデータ通信が行われる(312,412)。
【0025】
なお、以上の説明では、一般ユーザと特権ユーザとを想定していたが、本発明は、このような前提を必要とするものではない。即ち、本発明は、例えばハードウエア上の制約でコンフィギュレーションをいちどきに1種類しか送信できないデバイスから、ホストに対し複数通りのコンフィギュレーションを送信する手順としても、実施できる。
【0026】
【発明の効果】
このように、本発明によれば、あるコンフィギュレーションについてホストからUSB通信開始拒否との通知を受けたデバイスが、先のコンフィギュレーションとは別のコンフィギュレーションにより初期化手順を再実行するようにしたため、特権ユーザ以外に特権モードの存在が察知されにくい形で特権モードを設けることや、ハードウエア等の制約でコンフィギュレーション送信が制限されているデバイスからの複数通りのコンフィギュレーション送信が、可能になる。例えば、まず一般ユーザ向けのコンフィギュレーションデータにより初期化手順を実行し、通信開始が拒否されたときは特権ユーザ向けのコンフィギュレーションデータにより初期化手順を実行する、という手順によって、一般ユーザに係るホストに特権モードの存在を知られること、ひいては不必要な情報流出等の問題を防止・解消できる。また、特に特権モードでの接続に当たって、デバイスがホストを認証するため又はデバイス・ホスト間の相互認証のための認証手順を実行することにより、上掲の問題は更に少なくなる。また、本発明は、一般にN通り(N:2以上の自然数)のコンフィギュレーションを想定して実施すること、例えばN階層の特権モードレベルを各特権ユーザに付与して各特権モードレベル毎に異なるコンフィギュレーションによる接続とすることができる。そのための手順として、ホストからの特権モードレベル通知を含む手順だけでなく、デバイス側で最大N回に亘り初期化手順の再実行を繰り返す手順も採用できる。そして、本発明によれば、上掲の効果を、ドライバの改良によって達成できる。
【図面の簡単な説明】
【図1】本発明のハードウエア的実施環境例を示す図である。
【図2】本発明のソフトウエア的実施環境例を示す図である。
【図3】本発明の第1の実施形態における初期化手順を示す図であり、特に(A)はホストが一般ユーザに係るホストであった場合を、(B)はホストが特権ユーザに係るホストであった場合を、それぞれ示すシーケンス図である。
【図4】本発明の他の実施形態に係る初期化手順を示す図であり、特に(A)は第2の実施形態を、(B)は第3の実施形態を、それぞれ示すシーケンス図である。
【図5】本発明の他の実施形態に係る初期化手順を示す図であり、特に(A)は第4の実施形態を、(B)は第5の実施形態を、それぞれ示すシーケンス図である。
【図6】本発明の好適な実施形態における認証手順の例を示す図であり、特に(A)は認証要求/認証応答による手順を、(B)は再コンフィギュレーション/認証応答/認証応答通知による手順を、それぞれ示すシーケンス図である。
【図7】本発明の第1の実施形態におけるデバイス側のドライバの動作の流れのうち前半を示すフローチャートである。
【図8】本発明の第1の実施形態におけるデバイス側のドライバの動作の流れのうち後半を示すフローチャートである。
【図9】本発明の第1の実施形態におけるホスト側のドライバの動作の流れ、特に一般ユーザに係るホストにおける流れを示すフローチャートである。
【図10】本発明の第1の実施形態におけるホスト側のドライバの動作の流れ、特に特権ユーザに係るホストにおける流れの前半を示すフローチャートである。
【図11】本発明の第1の実施形態におけるホスト側のドライバの動作の流れ、特に特権ユーザに係るホストにおける流れの後半を示すフローチャートである。
【図12】従来技術の単純変形による初期化手順を示す図であり、特に(A)はホストが一般ユーザに係るホストであった場合を、(B)はホストが特権ユーザに係るホストであった場合を、それぞれ示す図である。
【符号の説明】
10 デバイス、101,201 ドライバ、104 プロトコル制御、105 認証処理、20 ホスト。
Claims (6)
- USBデバイスの機能構成を示すコンフィギュレーションデータをUSBデバイスからUSBホストへと送信するステップ及びこの送信への応答としてUSBホストからUSBデバイスにUSB通信開始許可又は拒否を通知するステップを含む初期化手順を、USBデバイスをUSBホストに接続する際にUSBデバイス・USBホスト間通信により実行する初期化方法において、USBホストからUSB通信開始拒否が通知されたときに、先に送信したコンフィギュレーションデータにより特定される機能構成とは別の機能構成を示す他のコンフィギュレーションデータをUSBデバイスから送信することによって、初期化手順を再実行させることを特徴とする初期化方法。
- 請求項1記載の初期化方法において、
初期化手順の再実行を、USBホストからUSBデバイスへとUSB通信開始許可が通知されるまで、また使用するコンフィギュレーションデータを逐次変更しつつ、所定回数を限度として繰り返すことを特徴とする初期化方法。 - 請求項1又は2記載の初期化方法において、
初期化手順を再実行する際に、コンフィギュレーションデータの送信に先立ち、USBデバイス・USBホスト間通信により、USBデバイスがUSBホストを認証するため又はUSBデバイス・USBホスト間の相互認証のための認証手順を実行することを特徴とする初期化方法。 - 請求項1乃至3のいずれか一項記載の初期化方法において、最初に実行される初期化手順にて送受信されるコンフィギュレーションデータが、一般ユーザ向けのコンフィギュレーションデータであり、
再実行に係る初期化手順にて送受信されるコンフィギュレーションデータが、一般ユーザとは異なる権限を有する特権ユーザ向けのコンフィギュレーションデータであることを特徴とする初期化方法。 - 請求項4記載の初期化方法を実行するためUSBデバイスにインストールされるデバイス側USBドライバにおいて、
上記USBデバイスがUSBホストに接続されたときに、そのUSBホストに対し上記USBデバイスの機能構成を示しかつ一般ユーザ向けのコンフィギュレーションデータを送信し、それに対する応答としてUSB通信開始許可が通知された場合に、接続先のUSBホストとのデータ通信を開始させ、
接続先のUSBホストからUSB通信開始拒否が通知された場合に、接続先のUSBホストが特権ユーザに係るホストであると見なし、そのUSBホストに対し特権ユーザ向けのコンフィギュレーションデータを送信して、USB通信開始許可を求めることを特徴とするデバイス側USBドライバ。 - 請求項5記載のデバイス側USBドライバがインストールされたUSBデバイスが接続されるUSBホストに、請求項4記載の初期化方法を実行するため、インストールされるホスト側USBドライバにおいて、
新たに接続されたUSBデバイスからそのUSBデバイスの機能構成を示すコンフィギュレーションデータを受信した場合に、そのコンフィギュレーションデータに関しては一般ユーザ向けのコンフィギュレーションデータであると見なし、送信元のUSBデバイスに対しUSB通信開始拒否を通知し、
通知先のUSBデバイスから前回とは異なるコンフィギュレーションデータを受信した場合に、そのコンフィギュレーションデータに関しては特権ユーザ向けのコンフィギュレーションデータであると見なし、USB通信開始許可及び拒否のいずれかを通知することを特徴とするホスト側USBドライバ。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002253754A JP2004094514A (ja) | 2002-08-30 | 2002-08-30 | 初期化方法及びusbドライバ |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002253754A JP2004094514A (ja) | 2002-08-30 | 2002-08-30 | 初期化方法及びusbドライバ |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004094514A true JP2004094514A (ja) | 2004-03-25 |
Family
ID=32059670
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002253754A Pending JP2004094514A (ja) | 2002-08-30 | 2002-08-30 | 初期化方法及びusbドライバ |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004094514A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006309434A (ja) * | 2005-04-27 | 2006-11-09 | Kyocera Corp | 接続装置及び接続方法 |
JP2009528616A (ja) * | 2006-02-27 | 2009-08-06 | マイクロソフト コーポレーション | マルチプロトコルの取り外し可能な記憶装置 |
US7716384B2 (en) | 2002-11-01 | 2010-05-11 | Saslite Corp. | Removable device and control circuit for allowing a medium insertion |
-
2002
- 2002-08-30 JP JP2002253754A patent/JP2004094514A/ja active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7716384B2 (en) | 2002-11-01 | 2010-05-11 | Saslite Corp. | Removable device and control circuit for allowing a medium insertion |
JP2006309434A (ja) * | 2005-04-27 | 2006-11-09 | Kyocera Corp | 接続装置及び接続方法 |
WO2006118040A1 (ja) * | 2005-04-27 | 2006-11-09 | Kyocera Corporation | 接続装置及び接続方法 |
JP2009528616A (ja) * | 2006-02-27 | 2009-08-06 | マイクロソフト コーポレーション | マルチプロトコルの取り外し可能な記憶装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8356118B2 (en) | Storage device and storage device access control method | |
EP1877910B1 (en) | Delegating universal serial bus functionality | |
TW200417869A (en) | Data processing system with peripheral access protection and method therefor | |
CN112416841A (zh) | 基于i2c总线的多机通信的实现方法及多机通信系统 | |
US20070280186A1 (en) | Information processing apparatus and access control method | |
JP2008500635A (ja) | データ処理システムにおけるエンディアンネス制御方法および装置 | |
CN114969713A (zh) | 设备验证方法、设备及系统 | |
US7996674B2 (en) | LDAP user authentication | |
US6275851B1 (en) | Data processing system and method for remotely controlling modification of a client's initialization settings | |
US20080130553A1 (en) | Electronic apparatus and wireless connection control method | |
CN110880998A (zh) | 一种基于可编程器件的报文传输方法及装置 | |
US20080229396A1 (en) | Issuing a command and multiple user credentials to a remote system | |
CN106548096B (zh) | 数据传输方法及装置 | |
WO2007054447A1 (en) | Method for controlling mobile data connection through usb ethernet management | |
CN113132198A (zh) | 一种多主一从的spi安全通信装置及通信方法 | |
CN108108314B (zh) | 交换器系统 | |
JP2004094514A (ja) | 初期化方法及びusbドライバ | |
WO2023103992A1 (zh) | 容器运行方法、装置、电子设备和存储介质 | |
JP2020113928A (ja) | 情報処理システム、情報処理装置、及び情報処理方法 | |
WO2022035021A1 (ko) | 생체정보를 이용한 로그인방법, 장치 및 프로그램 | |
CN107425975B (zh) | 通信装置以及由通信装置执行的方法 | |
JP6138224B1 (ja) | インターフェースのセキュリティ・システム、周辺機器の接続方法、電子機器、およびコンピュータ・プログラム | |
WO2011107871A2 (en) | Portable electronic device interfaceable with a computer | |
JPH10254784A (ja) | データ処理装置およびデータ処理装置のデータ処理方法およびコンピュータが読み出し可能なプログラムを格納した記憶媒体 | |
CN112836183B (zh) | 授权方法、网络设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Effective date: 20051003 Free format text: JAPANESE INTERMEDIATE CODE: A971007 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20051115 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060116 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20060620 |