(57)【要約】  通信デバイス（ＣＤ）と付属デバイス（ＡＤ）との間でユニバーサルシリアルバス（ＵＳＢ）攻撃保護を保証するために、保護デバイス（ＰＤ）は、ＵＳＢリンクを通じて通信デバイス（ＣＤ）と付属デバイス（ＡＤ）との間に挿入され、通信デバイス（ＣＤ）は、付属デバイス（ＡＤ）から受け取られたＵＳＢデバイス記述子内にある文字列記述子のインデックスの最も大きな値（ＨＶ）を記憶し、文字列記述子のリクエスト（Ｒｅｑ）を、前記最も大きな値（ＨＶ）より大きいインデックスの値（Ｖａｌ１）と共に付属デバイス（ＡＤ）に送り、保護デバイス（ＰＤ）から生成され、送られたレスポンス（Ｒｅｓ）を受け取り、保護デバイスの識別子（ＩｄＰ）を収めるレスポンスは、識別子（ＩｄＰ）がデータベース内にある場合、保護デバイス（ＰＤ）の存在を確認する。
2019501469.tif 000002
【特許請求の範囲】
【請求項１】
通信デバイス（ＣＤ）と付属デバイス（ＡＤ）との間でユニバーサルシリアルバス（ＵＳＢ）攻撃保護を保証するための方法であって、保護デバイス（ＰＤ）は、ＵＳＢリンクを通じて通信デバイス（ＣＤ）と付属デバイス（ＡＤ）との間に挿入され、方法は、通信デバイス（ＣＤ）内での以下のステップ、
付属デバイス（ＡＤ）から受け取られたＵＳＢデバイス記述子内にある文字列記述子のインデックスの最も大きな値（ＨＶ）を記憶するステップ（Ｓ１）と、
文字列記述子のリクエスト（Ｒｅｑ）を、前記最も大きな値（ＨＶ）より大きいインデックスの値（Ｖａｌ１）と共に付属デバイス（ＡＤ）に送るステップ（Ｓ３）と、
保護デバイス（ＰＤ）から生成され、送られたレスポンス（Ｒｅｓ）を受け取るステップ（Ｓ４）であって、レスポンスは、保護デバイスの識別子（ＩｄＰ）を収める、受け取るステップ（Ｓ４）と、
識別子（ＩｄＰ）がデータベース内にある場合、保護デバイス（ＰＤ）の存在を確認するステップ（Ｓ５）と
を含む、方法。
【請求項２】
保護デバイスが、リクエスト（Ｒｅｑ）をインターセプトし、この後者を付属デバイス（ＡＤ）に伝達しない、請求項１に記載の方法。
【請求項３】
前記値（Ｖａｌ１）が、前記最も大きな値（ＨＶ）を上回る次の整数である、請求項１または２に記載の方法。
【請求項４】
通信デバイスが、前記最も大きな値（ＨＶ）より大きく、かつ前記値（Ｖａｌ１）とは異なるインデックスの別の値（Ｖａｌ２）と共に、別の文字列記述子のリクエストの形で、チャレンジを保護デバイスに送り、チャレンジに対するレスポンスが有効な場合、暗号関数またはワンタイムパスワードによって、保護デバイスを認証する、請求項１から３のいずれか一項に記載の方法。
【請求項５】
前記別の値（Ｖａｌ２）が、前記値（Ｖａｌ１）を上回る次の整数である、請求項４に記載の方法。
【請求項６】
通信デバイス（ＣＤ）と保護デバイス（ＰＤ）が、対称もしくは非対称の暗号キーを共有するか、またはカウンタおよびパスワードもしくは数字のシーケンスから成る秘密を共有する、請求項４または５に記載の方法。
【請求項７】
保護デバイスが、１つまたはいくつかのタイプの付属デバイスに対して専用であり、前記１つまたはいくつかのタイプの付属デバイスだけが通信デバイスと通信することを可能にする、請求項１から６のいずれか一項に記載の方法。
【請求項８】
通信デバイス（ＣＤ）と付属デバイス（ＡＤ）との間でユニバーサルシリアルバス（ＵＳＢ）攻撃保護を保証するための方法であって、保護デバイス（ＰＤ）は、ＵＳＢリンクを通じて、通信デバイス（ＣＤ）と付属デバイス（ＡＤ）との間に挿入され、方法は、保護デバイス（ＰＤ）内での以下のステップ、
付属デバイス（ＡＤ）から受け取られたＵＳＢデバイス記述子内にある文字列記述子のインデックスの最も大きな値（ＨＶ）を記憶するステップ（Ｓ１）と、
前記最も大きな値（ＨＶ）より大きいインデックスの値（Ｖａｌ１）と共に文字列記述子のリクエスト（Ｒｅｑ）を受け取るステップ（Ｓ３）であって、リクエストは、通信デバイス（ＡＤ）から送られる、受け取るステップ（Ｓ３）と、
通信デバイス（ＣＤ）へのレスポンス（Ｒｅｓ）を生成するステップ（Ｓ４）および送るステップであって、レスポンスは、保護デバイスの識別子（ＩｄＰ）を収め、識別子は、識別子（ＩｄＰ）がデータベース内にある場合、保護デバイス（ＰＤ）の存在を確認するために通信デバイスによって使用される、生成するステップ（Ｓ４）および送るステップと
を含む、方法。
【請求項９】
通信デバイス（ＣＤ）と付属デバイス（ＡＤ）との間でユニバーサルシリアルバス（ＵＳＢ）攻撃保護を保証するための通信デバイス（ＣＤ）であって、保護デバイス（ＰＤ）は、ＵＳＢリンクを通じて通信デバイス（ＣＤ）と付属デバイス（ＡＤ）との間に挿入され、通信デバイス（ＣＤ）は、
付属デバイス（ＡＤ）から受け取られたＵＳＢデバイス記述子内にある文字列記述子のインデックスの最も大きな値（ＨＶ）を記憶するための手段（ＵＨＳ）と、
文字列記述子のリクエスト（Ｒｅｑ）を、前記最も大きな値（ＨＶ）より大きいインデックスの値（Ｖａｌ１）と共に付属デバイス（ＡＤ）に送るための手段（ＵＨＳ）と、
保護デバイス（ＰＤ）から生成され、送られたレスポンス（Ｒｅｓ）を受け取るための手段（ＵＨＳ）であって、レスポンスは、保護デバイスの識別子（ＩｄＰ）を収める、受け取るための手段（ＵＨＳ）と、
識別子（ＩｄＰ）がデータベース内にある場合、保護デバイス（ＰＤ）の存在を確認するための手段（ＵＨＳ）と
を含む、通信デバイス（ＣＤ）。
【請求項１０】
通信デバイス（ＣＤ）と付属デバイス（ＡＤ）との間でユニバーサルシリアルバス（ＵＳＢ）攻撃保護を保証するための保護デバイス（ＣＤ）であって、保護デバイス（ＣＤ）は、ＵＳＢリンクを通じて通信デバイス（ＣＤ）と付属デバイス（ＡＤ）との間に挿入され、
付属デバイス（ＡＤ）から受け取られたＵＳＢデバイス記述子内にある文字列記述子のインデックスの最も大きな値（ＨＶ）を記憶するための手段（ＳＤＡ）と、
前記最も大きな値（ＨＶ）より大きいインデックスの値（Ｖａｌ１）と共に文字列記述子のリクエスト（Ｒｅｑ）を受け取るための手段（ＳＤＡ）であって、リクエストは、通信デバイス（ＡＤ）から送られる、受け取るための手段（ＳＤＡ）と、
通信デバイス（ＣＤ）へのレスポンス（Ｒｅｓ）を生成し、送るための手段（ＳＤＡ）であって、レスポンスは、保護デバイスの識別子（ＩｄＰ）を収め、識別子は、識別子（ＩｄＰ）がデータベース内にある場合、保護デバイス（ＰＤ）の存在を確認するために通信デバイスによって使用される、生成し、送るための手段（ＳＤＡ）と
を含む、保護デバイス（ＣＤ）。
【請求項１１】
通信デバイス（ＣＤ）と付属デバイス（ＡＤ）との間でユニバーサルシリアルバス（ＵＳＢ）攻撃保護を保証するための通信デバイス（ＣＤ）内に実装されることができるコンピュータプログラムであって、保護デバイス（ＰＤ）は、ＵＳＢリンクを通じて通信デバイス（ＣＤ）と付属デバイス（ＡＤ）との間に挿入され、前記プログラムは、プログラムが、前記通信デバイス内にロードされ、実行されると、請求項１に記載の方法を実装する命令を備える、コンピュータプログラム。
【請求項１２】
通信デバイス（ＣＤ）と付属デバイス（ＡＤ）との間でユニバーサルシリアルバス（ＵＳＢ）攻撃保護を保証するための保護デバイス（ＰＤ）内に実装されることができるコンピュータプログラムであって、保護デバイス（ＰＤ）は、ＵＳＢリンクを通じて通信デバイス（ＣＤ）と付属デバイス（ＡＤ）との間に挿入され、前記プログラムは、プログラムが、前記保護デバイス内にロードされ、実行されると、請求項８に記載の方法を実装する命令を備える、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信デバイスに関し、より詳細には、ＵＳＢデバイスなどの付属デバイスを受け入れる、メディアプレーヤなどの通信デバイスに関する。
【背景技術】
【０００２】
コンピュータなどの現代の通信デバイスは、ユニバーサルシリアルバス（ＵＳＢ：ｕｎｉｖｅｒｓａｌ  ｓｅｒｉａｌ  ｂｕｓ）レセプタクルを提供することによってコンピュータメモリの増設を可能にする。ちょうど、ＵＳＢプラグを受け入れることができる通信デバイスが、物理的かつ電子的な規格のレセプタクルを有するのと同じように、ＵＳＢ周辺デバイスは、通常、物理的かつ電子的な規格のプラグを有する。
【０００３】
ＵＳＢデバイスは、ストレージデバイス（フラッシュドライブ）、コンピュータマウス、コンピュータキーボード、プリンタ、またはウェブカメラのような、種々の性質のものである可能性がある。
【０００４】
特に、ＵＳＢストレージデバイスは、小さく、安価で、かつ持ち運びにとても便利であり、現代のコンピューティングデバイスの中の至る所にある。その持ち運びに便利な性質のために、単一のＵＳＢストレージデバイスが、多くの種々のホスト通信デバイスに差し込まれていることが多い。例えば、消費者は、自分の個人的な音楽コレクションをＵＳＢストレージデバイスに格納し、コンピュータ、スマートフォン、または自動車のステレオシステム上でも、その音楽を再生することができる。
【０００５】
ＵＳＢストレージデバイスの高度に持ち運びに便利な特性は、これらをコンピュータウイルスの一般的な標的にする。
【０００６】
最近、ＢａｄＵＳＢと呼ばれる深刻な攻撃が明らかにされた。これは、１つの例では、悪意のあるＵＳＢデバイスが、被害に遭うホストを攻撃すること、およびもう１つの例では、悪意のあるホストが、被害に遭うＵＳＢデバイスを再プログラムすることを含む。両方の攻撃の組合せは、コンピュータマルウェアの物理的伝搬への道を開き、エアギャップシステム（ａｉｒ−ｇａｐｐｅｄ  ｓｙｓｔｅｍ）（あらゆる外部ネットワークから隔離されるシステム）に達することができるものである。この種の攻撃において、特別仕様で作られた（ｃｕｓｔｏｍ−ｂｕｉｌｔ）ＵＳＢデバイスは、ＵＳＢホストを攻撃するために、キーボードエミュレーションを通じて悪意をもってふるまう可能性がある。標準的なＵＳＢデバイス（例えば、ＵＳＢストレージスティック）は、悪意のあるホストによって、マイクロコントローラレベルで再プログラムされる可能性があり、したがって、ＵＳＢデバイスが挿入されるその他のＵＳＢホストを攻撃できる悪意のあるＵＳＢデバイスを作り出す。これは、ＵＳＢデバイスのコントローラレベル（ファームウェア）で行われ、フォーマットされるかまたはアンチウイルスによってスキャンされる可能性があるファイルシステムレベルでは行われない。
【０００７】
通信デバイスに接続されたＵＳＢデバイスの性質を、通信デバイスが制御することを可能にするいくつかの技法が存在する。
【０００８】
しかし、このような技法によって、ＵＳＢデバイスがフィルタ処理されるか否かを、ＵＳＢホストに対して証明する必要がある。
【発明の概要】
【課題を解決するための手段】
【０００９】
本発明の概要は、本発明の主題に関する概念を紹介するために提供される。本発明の概要は、特許請求された主題の本質的な特徴を識別することを意図するものではなく、特許請求された主題の範囲を決定または限定するのに使用することを意図するものでもない。
【００１０】
１つの実施形態によれば、通信デバイスと付属デバイスとの間でユニバーサルシリアルバス（ＵＳＢ）攻撃保護を保証するために方法が提供され、保護デバイスは、ＵＳＢリンクを通じて、通信デバイスと付属デバイスとの間に挿入され、方法は、通信デバイス内での以下のステップを含む：
付属デバイスから受け取られたＵＳＢデバイス記述子内にある文字列記述子のインデックスの最も大きな値を記憶することと、
文字列記述子のリクエストを、前記最も大きな値より大きいインデックスの値と共に付属デバイスに送ることと、
保護デバイス（ＰＤ：ｐｒｏｔｅｃｔｉｏｎ  ｄｅｖｉｃｅ）から生成され、送られたレスポンスを受け取ることであって、レスポンスは、保護デバイスの識別子を収める、受け取ることと、
識別子がデータベース内にある場合、保護デバイスの存在を確認すること。
【００１１】
好都合なことに、本発明は、ＵＳＢデバイスが、（ホストによって）知られているハードウェアＵＳＢをフィルタ処理するソリューションによってフィルタ処理される、ＵＳＢの初期化時にホストＵＳＢに証明を提供する、エンタープライズ級のソリューションを提案する。証明するための方式は、ＵＳＢプロトコルと十分に互換性がある。
【００１２】
実施形態において、保護デバイスは、リクエストをインターセプトし、この後者を付属デバイスに伝達しない。
【００１３】
実施形態において、前記値は、前記最も大きな値を上回る次の整数である。
【００１４】
実施形態において、通信デバイスは、前記最も大きな値より大きく、かつ前記値とは異なるインデックスの別の値と共に、別の文字列記述子のリクエストの形で、チャレンジを保護デバイスに送り、チャレンジに対するレスポンスが有効な場合、暗号関数またはワンタイムパスワードによって、保護デバイスを認証する。
【００１５】
実施形態において、前記別の値は、前記値を上回る次の整数である。
【００１６】
実施形態において、通信デバイスと保護デバイスは、対称もしくは非対称の暗号キーを共有するか、またはカウンタおよびパスワードもしくは数字のシーケンスから成る秘密を共有する。
【００１７】
実施形態において、保護デバイスは、１つまたはいくつかのタイプの付属デバイスに対して専用であり、前記１つまたはいくつかのタイプの付属デバイスだけが通信デバイスと通信することを可能にする。
【００１８】
本発明はまた、通信デバイスと付属デバイスとの間でユニバーサルシリアルバス（ＵＳＢ）攻撃保護を保証するための方法に関し、保護デバイスは、ＵＳＢリンクを通じて通信デバイスと付属デバイスとの間に挿入され、方法は、保護デバイス内での以下のステップを含む：
付属デバイスから受け取られたＵＳＢデバイス記述子内にある文字列記述子のインデックスの最も大きな値を記憶することと、
前記最も大きな値より大きいインデックスの値と共に文字列記述子のリクエストを受け取ることであって、リクエストは、通信デバイスから送られる、受け取ることと、
通信デバイスへのレスポンスを生成することおよび送ることであって、レスポンスは、保護デバイスの識別子を収め、識別子は、識別子がデータベース内にある場合、保護デバイスの存在を確認するために通信デバイスによって使用される、生成することおよび送ること。
【００１９】
本発明はまた、通信デバイスと付属デバイスとの間でユニバーサルシリアルバス（ＵＳＢ）攻撃保護を保証するための通信デバイスに関し、保護デバイスは、ＵＳＢリンクを通じて通信デバイスと付属デバイスとの間に挿入され、通信デバイスは含む：
付属デバイスから受け取られたＵＳＢデバイス記述子内にある文字列記述子のインデックスの最も大きな値を記憶するための手段と、
文字列記述子のリクエストを、前記最も大きな値より大きいインデックスの値と共に付属デバイスに送るための手段と、
保護デバイスから生成され、送られたレスポンスを受け取るための手段であって、レスポンスは、保護デバイスの識別子を収める、受け取るための手段と、
識別子がデータベース内にある場合、保護デバイスの存在を確認するための手段。
【００２０】
本発明はまた、通信デバイスと付属デバイスとの間でユニバーサルシリアルバス（ＵＳＢ）攻撃保護を保証するための保護デバイスに関し、保護デバイスは、ＵＳＢリンクを通じて通信デバイスと付属デバイスとの間に挿入され、含む：
付属デバイスから受け取られたＵＳＢデバイス記述子内にある文字列記述子のインデックスの最も大きな値を記憶するための手段と、
前記最も大きな値より大きいインデックスの値と共に文字列記述子のリクエストを受け取るための手段であって、リクエストは、通信デバイスから送られる、受け取るための手段と、
通信デバイスへのレスポンスを生成し、送るための手段であって、レスポンスは、保護デバイスの識別子を収め、識別子は、識別子がデータベース内にある場合、保護デバイスの存在を確認するために通信デバイスによって使用される、生成し、送るための手段。
【００２１】
本発明はまた、デバイス内に実装されることができるコンピュータプログラムに関し、前記プログラムは、プログラムが前記デバイス内で実行されると、本発明の方法によるステップを遂行する命令を含む。
【００２２】
本発明およびその利益は、添付の図面を参照する以下の図面の簡単な説明を考察すると、より理解されるであろう。
【図面の簡単な説明】
【００２３】
【図１】ＵＳＢ攻撃保護を保証するための、本発明の１つの実施形態による通信システムの概略ブロック図である。
【図２】本発明の１つの実施形態による、ＵＳＢ攻撃保護を保証するための方法のアルゴリズムの図である。
【発明を実施するための形態】
【００２４】
図１を参照すると、本発明による通信システムは、通信デバイスＣＤ、保護デバイスＰＤ、および付属デバイスＡＤを備える。
【００２５】
通信デバイスＣＤは、付属デバイスに格納された内容物にアクセスするために、ＵＳＢリンクを介して、付属デバイスＡＤと直接接続することができる。通信デバイスは、プラグを介して付属デバイスＡＤを受け入れるホストデバイスと呼ばれることがある。
【００２６】
通信デバイスＣＤは、例えば、パーソナルコンピュータもしくはラップトップ、タブレット、スマートフォン、パーソナルデジタルアシスタント、セットトップボックス、住居用ゲートウェイ、家庭用ゲーム機、または接続テレビ（ｃｏｎｎｅｃｔｅｄ  ｔｅｌｅｖｉｓｉｏｎ）であってよい。より一般に、通信デバイスＣＤは、ＵＳＢリンクを介して付属デバイスＡＤとの接続を確立して、メッセージなどのデータを付属デバイスと交換できる通信モジュールを備える、任意のタイプの電子機器に関する。
【００２７】
通信デバイスＣＤは、様々なＵＳＢ付属デバイスが、物理的に差し込まれることがある１つまたは複数のＵＳＢレセプタクルを有する。
【００２８】
通信デバイスＣＤは、オペレーティングシステム内のＵＳＢデバイスドライバを管理するソフトウェアモジュールである、ＵＳＢホストスタックＵＨＳ（ＵＳＢ  ｈｏｓｔ  ｓｔａｃｋ）を備える。ＵＳＢホストスタックＵＨＳは、ＵＳＢプロトコルを実装し、種々のＵＳＢデバイスに対する適正なドライバをインストールし、ロードする。ＵＳＢホストスタックＵＨＳは、セキュリティエージェントとしてふるまい、エンタープライズ機関（ｅｎｔｅｒｐｒｉｓｅ  ａｕｔｈｏｒｉｔｙ）によって署名された格納済みの証明書（または事前共有キー）を使用する、保護デバイスＰＤとの相互認証の責任を負うプロセスエージェントである。
【００２９】
付属デバイスＡＤは、物理的かつ電気的な接続性を実現するためにＵＳＢプラグがＵＳＢレセプタクルに差し込まれることがある、通信デバイスのＵＳＢレセプタクルと物理的かつ機械的に互換性のあるＵＳＢプラグを含む、ＵＳＢデバイスである。
【００３０】
１つの例において、付属デバイスＡＤは、ストレージデバイスのようなサムドライブまたはハードドライブである。
【００３１】
別の例において、付属デバイスＡＤは、パーソナルコンピュータ、ラップトップ、タブレット、またはスマートフォンである。
【００３２】
別の例において、付属デバイスＡＤは、広告板、テレビセット、家庭用品、通信端末、冷蔵庫、カメラなどの、接続オブジェクトである。接続オブジェクトは、接続オブジェクトに直接埋め込まれることがあるデータ処理ユニットの一部である通信インターフェースを備える。
【００３３】
付属デバイスＡＤは、ＵＳＢプロトコルおよび付属デバイスＡＤのより高い機能を実装するマイクロコントローラ上で実行するプロセス、典型的にはファームウェアを収める。
【００３４】
保護デバイスＰＤはまた、通信デバイスＣＤのＵＳＢレセプタクルと物理的かつ機械的に互換性のあるＵＳＢプラグ、ならびに付属デバイスＡＤのＵＳＢプラグと物理的かつ機械的に互換性のあるＵＳＢレセプタクルを含む。したがって、保護デバイスＰＤは、通信デバイスＣＤおよび付属デバイスＡＤと物理的かつ電気的に接続され得る。保護デバイスＰＤは、通信デバイスＣＤおよび付属デバイスＡＤが、保護デバイスＰＤを通じて電気的に接続されることを可能にする。
【００３５】
保護デバイスＰＤは、通信デバイスＣＤとの相互認証の責任を負うプロセスエージェントである、シールドデバイスエージェントＳＤＡ（ｓｈｉｅｌｄ  ｄｅｖｉｃｅ  ａｇｅｎｔ）を備える。シールドデバイスエージェントＳＤＡは、シールドポリシのロード、安全な識別子の作成、および攻撃の試みの通知の責任も負う。シールドデバイスエージェントＳＤＡは、エンタープライズ機関によって署名された証明書（代替として、エンタープライズ事前共有キーが、証明書の代わりに使用されることがある）、および証明書と関連付けられた公開キーと共にロードされる。
【００３６】
シールドデバイスエージェントＳＤＡは、付属デバイスＡＤの代理の役割も果たし、通信デバイスと付属デバイスとの間のメッセージをフィルタ処理する責任を負う。シールドデバイスエージェントＳＤＡは、例えば、一致（メッセージの）およびアクション（ドロップ、パッチ、他）を収める、セキュリティルールを収めるデータベースを実装する。
【００３７】
シールドデバイスエージェントＳＤＡは、デバイス記述子の内容を分析し、カスタムのデバイス記述子を作成することができる。デバイス記述子は、以下の説明とそれぞれ関連付けられた以下のフィールドを収める：
フィールド：ｂＬｅｎｇｔｈ
説明：この記述子の長さをバイトで指定する。
フィールド：ｂＤｅｓｃｒｉｐｔｏｒＴｙｐｅ
説明：記述子のタイプを指定する。
フィールド：ｂｃｄＵＳＢ
説明：この記述子の構造が準拠するＵＳＢ規格のバージョンを識別する。この値は、２進化１０進数である。
フィールド：ｂＤｅｖｉｃｅＣｌａｓｓ
説明：ＵＳＢ規格グループによって割り当てられるような、デバイスのクラスコードを指定する。
フィールド：ｂＤｅｖｉｃｅＳｕｂＣｌａｓｓ
説明：ＵＳＢ規格グループによって割り当てられるような、デバイスのサブクラスコードを指定する。
フィールド：ｂＤｅｖｉｃｅＰｒｏｔｏｃｏｌ
説明：ＵＳＢ規格グループによって割り当てられるような、デバイスのプロトコルコードを指定する。
フィールド：ｂＭａｘＰａｃｋｅｔＳｉｚｅ０
説明：デバイスのエンドポイントゼロに関する最大パケットサイズをバイトで指定する。この値は、８、１６、３２、または６４にセットされなければならない。
フィールド：ｉｄＶｅｎｄｏｒ
説明：ＵＳＢ規格委員会によって割り当てられるような、デバイスに関するベンダ識別子を指定する。
フィールド：ｉｄＰｒｏｄｕｃｔ
説明：製品識別子を指定する。この値は、製造業者によって割り当てられ、デバイス固有である。
フィールド：ｂｃｄＤｅｖｉｃｅ
説明：デバイスのバージョンを識別する。この値は、２進化１０進数である。
フィールド：ｉＭａｎｕｆａｃｔｕｒｅｒ
説明：このデバイスの製造業者の名前を収める文字列を提供する文字列記述子のデバイス定義のインデックスを指定する。
フィールド：ｉＰｒｏｄｕｃｔ
説明：デバイスの説明を収める文字列を提供する文字列記述子のデバイス定義のインデックスを指定する。
フィールド：ｉＳｅｒｉａｌＮｕｍｂｅｒ
説明：デバイスに関する、製造業者が決定したシリアル番号を収める文字列を提供する文字列記述子のデバイス定義のインデックスを指定する。
フィールド：ｂＮｕｍＣｏｎｆｉｇｕｒａｔｉｏｎｓ
説明：デバイスに関する可能な構成の総数を指定する。
【００３８】
シールドデバイスエージェントＳＤＡは、１つまたはいくつかのタイプのＵＳＢ付属デバイスをフィルタ処理するのに専用である。例えば、シールドデバイスエージェントＳＤＡは、ＵＳＢストレージデバイスと共に動作するのに専用であり、いかなるその他のタイプのＵＳＢ付属デバイスが通信デバイスＣＤと通信することも許可しない。そのために、例えば、シールドデバイスエージェントＳＤＡは、ＵＳＢ付属デバイスから取り出されたデバイス記述子でデータベース内のセキュリティルールを調査する。特に（ｍｏｒｅ  ｅｓｐｅｃｉａｌｌｙ）、シールドデバイスエージェントＳＤＡは、デバイスのタイプと関連付けられると想定されるフィールド「ｂＤｅｖｉｃｅＣｌａｓｓ」の値が、認可されたデバイスのリストに含まれるかどうかをチェックする。
【００３９】
図２を参照すると、本発明の１つの実施形態による、ＵＳＢ攻撃保護を保証するための方法は、通信システム内で実行されるステップＳ１からＳ７を含む。
【００４０】
最初のステップＳ０１において、ユーザは、通信デバイスＣＤと共に付属デバイスＡＤを使用することを望み、保護デバイスＰＤを通信デバイスＣＤに挿入することによって開始する。
【００４１】
保護デバイスＰＤは、通信デバイスＣＤに登録する。通信デバイスからの制御リクエストの際、シールドデバイスエージェントＳＤＡは、メッセージをＵＳＢホストスタックＵＨＳに送り、メッセージは、保護デバイスＰＤ、その設定、インターフェース、および関連するエンドポイントについての情報を含むデバイス記述子を収める。
【００４２】
この登録が、保護デバイスＰＤと通信デバイスＣＤとの間に双方向性通信リンクを確立する。
【００４３】
付属デバイスＡＤは、保護デバイスＰＤに差し込まれる。このように、保護デバイスＰＤは、付属デバイスＡＤと通信デバイスＣＤの間に挿入される。
【００４４】
ステップＳ１において、付属デバイスＡＤおよび通信デバイスＣＤは、初期化フェーズにあり、その間、ＵＳＢホストスタックＵＨＳは、付属デバイスＡＤにデバイス記述子、構成記述子、および両方の記述子に応じて、所与の数の文字列記述子を問い合わせる。
【００４５】
この初期化フェーズの間、デバイス記述子を収める少なくとも１つのメッセージは、デバイス記述子を得るという、通信デバイスＣＤからの最初のリクエストに応答して、付属デバイスＡＤから送られる。例えば、最初のリクエストは、「Ｇｅｔ  Ｄｅｖｉｃｅ  Ｄｅｓｃｒｉｐｔｏｒ」型のものである。リクエストおよびレスポンスは、リクエストおよびレスポンスの内容を分析できる保護デバイスＰＤを通じて送られる。
【００４６】
特に、保護デバイスＰＤおよび通信デバイスＣＤは、デバイス記述子内の３つの文字列記述子のインデックスの間にある、インデックスの最も大きな値ＨＶを抽出し、記憶する。
【００４７】
ステップＳ２において、初期化フェーズは、次に、通信デバイスＣＤが付属デバイスＡＤから文字列記述子自体をリクエストするポイントまで一般的な動きで継続する。例えば、リクエストは、「Ｇｅｔ  Ｓｔｒｉｎｇ  Ｄｅｓｃｒｉｐｔｏｒ」型のものである。文字列記述子の存在に応じて、ただ１つ（デフォルトの１つは、インデックス０において、必須の言語能力である）、または４つ（あらゆるインデックスが、デバイス記述子内で、０とは異なる）まで、求められる可能性がある。
【００４８】
ステップＳ３において、ＵＳＢホストスタックＵＨＳは、別の文字列記述子のリクエストＲｅｑを、前記最も大きな値より大きいインデックスの１次値Ｖａｌ１と共に付属デバイスＡＤに送る。例えば、１次値Ｖａｌ１は、前記最も大きな値を上回る次の整数である：
Ｖａｌ１＝ＨＶ＋１。
【００４９】
ＵＳＢホストスタックＵＨＳが、付属デバイスと直接、すなわち保護デバイスがない状態で通信していた場合、この値のインデックスをもつ文字列記述子が存在しないので、付属デバイスはエラーを戻すだろう。
【００５０】
ＵＳＢホストスタックＵＨＳは、保護デバイスを通じて付属デバイスと通信しているので、前記最も大きな値より大きいインデックスの値Ｖａｌを伴うリクエストは、付属デバイスに伝達されない方がよいが、保護デバイスの識別を得るという、通信デバイスからの特殊なリクエストであるということを、インデックスの最も大きな値ＨＶを記憶した保護デバイスは知っている。
【００５１】
ステップＳ４において、保護デバイスは、リクエストＲｅｑをインターセプトし、この後者を付属デバイスに伝達しない。保護デバイスは、ストリングペイロードのような、保護デバイスの識別子ＩｄＰを伴うレスポンスとして、カスタムの文字列記述子を作成する。保護デバイスは、レスポンスＲｅｓを通信デバイスに送り、レスポンスは、特に保護デバイスの識別子ＩｄＰを収める。
【００５２】
ステップＳ５において、通信デバイスＣＤは、付属デバイスと直接通信しているのではなく、確かに保護デバイスと通信していることを知っている。ＵＳＢホストスタックＵＨＳは、識別子ＩｄＰが（コンピュータに近いまたは遠い）データベース内にある場合、保護デバイスの存在を確認する。
【００５３】
後続の代替ステップＳ６およびＳ７は、保護デバイスの有効な識別子で（前記値Ｖａｌを伴う）文字列記述子のリクエストに応じるために特殊なＵＳＢデバイスを精巧に作ることができる攻撃者が、会社の保護デバイスの識別子のいくつかを知る方式を見つける場合に備えて、リプレーアタックに対する追加のセキュリティをもたらす。
【００５４】
ステップＳ６において、ＵＳＢホストスタックＵＨＳは、暗号ノンス（擬似乱数）をシールドデバイスエージェントＳＤＡに送る。ＵＳＢホストスタックＵＨＳは、ノンスの暗号化のように、ノンスに対して暗号関数を実施し、結果をＵＳＢホストスタックＵＨＳに送る。
【００５５】
ＵＳＢホストスタックＵＨＳは、（復号のように）受け取られた結果に対して、対応する暗号関数を実施し、結果が等しいかまたは首尾一貫しており、保護デバイスが本当に見た通りのものであることを意味するかどうかをチェックする。
【００５６】
ＵＳＢホストスタックＵＨＳとシールドデバイスエージェントＳＤＡは、対称暗号キーであってよい秘密を共有することができ、または公開キー／秘密キーのペアを用いる非対称暗号キーを使用することができ、秘密キーは、シールドデバイスエージェントＳＤＡに格納され、公開キーは、ＵＳＢホストスタックＵＨＳによって知られている（および保護デバイスの識別子と関連付けられる。
【００５７】
そのために、ＵＳＢホストスタックＵＨＳは、従来とは異なるサイズでリクエストをシールドデバイスエージェントＳＤＡに送り、リクエストは、前記最も大きな値よりも大きく、かつ前記１次値Ｖａｌ１とは異なるインデックスの２次値Ｖａｌ２を伴う別の文字列記述子に対するものである。
【００５８】
例えば、２次値Ｖａｌ２は、前記値を上回る次の整数である：Ｖａｌ２＝Ｖａｌ１＋１。
【００５９】
リクエストのサイズは、ノンスのサイズを考慮するために拡張されるだろう。通信デバイスが保護デバイスに接続され、典型的なＵＳＢデバイスに直接接続されないという事実が既に確立されているので、シーケンスのこの時点で従来と異なるＵＳＢパケットを使用することは、問題ではない。保護デバイスは、この第２の特殊なＵＳＢ文字列記述子のリクエストを扱うのに専用であり、通常ではないサイズのパケットを管理することができる。リクエストに対するレスポンスは、ストリングペイロードとして、シールドデバイスエージェントＳＤＡによって送られる。
【００６０】
ステップＳ７において、ＵＳＢホストスタックＵＨＳは、従来とは異なるサイズでリクエストをシールドデバイスエージェントＳＤＡに送り、リクエストは、前記最も大きな値より大きく、かつ前記１次値Ｖａｌ１とは異なるインデックスの２次値Ｖａｌ２を伴う別の文字列記述子に対するものである。
【００６１】
ＵＳＢホストスタックＵＨＳとシールドデバイスエージェントＳＤＡは、カウンタおよびパスワードまたは数字のシーケンスから成る秘密を共有することができる。シーケンスは、双方に格納されてよく、または共有機能によって生成されてよい（それぞれの保護デバイスがそれ自体の特別の機能を有し、その結果種々の保護デバイスは、種々のシーケンスを生成する）。
【００６２】
シールドデバイスエージェントＳＤＡは、ストリングペイロードとしてそのシーケンス内にかなりの数を収めるレスポンスを送り返す。ＵＳＢホストスタックＵＨＳは、この対応する保護デバイスに対してシーケンス内を探索し、受け取られた数字が保護デバイスを認証するのに有効であるかどうかをチェックするだけである。
【００６３】
それぞれのステップＳ６およびＳ７において、ＵＳＢホストスタックＵＨＳは、前記最も大きな値より大きく、かつ前記１次値Ｖａｌ１とは異なるインデックスの２次値Ｖａｌ２と共に、別の文字列記述子のリクエストという形で、従来とは異なるサイズでチャレンジをシールドデバイスエージェントＳＤＡに送り、チャレンジに対するレスポンスが有効な場合、暗号関数またはワンタイムパスワードによって、保護デバイスを認証する。
【００６４】
最終的に、一旦、保護デバイスが認証されると、通信デバイスは、一般的な初期化フェーズを再開することができる。保護デバイスの存在および／または認証が正常でない場合、通信デバイスは、エンタープライズポリシマネージャが判定したどの方策でもとることができる。
【００６５】
本明細書で説明された本発明は、ＵＳＢ攻撃保護を保証するための方法およびデバイスに関する。本発明の１つの実装形態によれば、本発明のステップは、保護デバイスＰＤなどのデバイスに組み込まれたコンピュータプログラムの命令によって決定される。プログラムは、前記プログラムがデバイス内にロードされ、実行されると、本発明の方法のステップを遂行するプログラム命令を備える。
【００６６】
結果的に、本発明はまた、コンピュータプログラム、特に、本発明を実装するのに適した情報媒体上の、またはその中のコンピュータプログラムに適用される。このプログラムは、任意のプログラミング言語を使用し、ソースコード、オブジェクトコード、またはソースコードとオブジェクトコードの中間コードの形式のような、部分的にコンパイルされた形式、もしくは本発明の方法を実装するのに望ましい任意のその他の形式でよい。
【図１】
2019501469.tif 000003
【図２】
2019501469.tif 000004
【国際調査報告】
2019501469.tif 000005
2019501469.tif 000006