JP2010211276A - Usbインタフェース装置及びusbパケット送受信方法 - Google Patents

Usbインタフェース装置及びusbパケット送受信方法 Download PDF

Info

Publication number
JP2010211276A
JP2010211276A JP2009053590A JP2009053590A JP2010211276A JP 2010211276 A JP2010211276 A JP 2010211276A JP 2009053590 A JP2009053590 A JP 2009053590A JP 2009053590 A JP2009053590 A JP 2009053590A JP 2010211276 A JP2010211276 A JP 2010211276A
Authority
JP
Japan
Prior art keywords
crc
usb
conversion
packet
target 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
JP2009053590A
Other languages
English (en)
Inventor
Takayuki Suzuki
高之 鈴木
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.)
Renesas Electronics Corp
Original Assignee
Renesas Electronics Corp
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 Renesas Electronics Corp filed Critical Renesas Electronics Corp
Priority to JP2009053590A priority Critical patent/JP2010211276A/ja
Priority to US12/659,210 priority patent/US20100228993A1/en
Publication of JP2010211276A publication Critical patent/JP2010211276A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0061Error detection codes

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Systems (AREA)

Abstract

【課題】簡単なソフトウェア又はハードウェア構成によって、USBのセキュリティ機能を実現すること。
【解決手段】USBインタフェース装置10は、USBパケットを送信する側の電子機器に設けられ、USBパケットにおいてCRCを算出する対象とされるフィールドに含まれるデータであるCRC対象データを、送信先の電子機器によってCRC対象データに対して施される変換の逆変換に相当する所定の規則に基づいて変換する変換部11と、変換部による変換前のCRC対象データに対するCRCを算出するCRC算出部12と、変換部11によって変換されたデータとCRC算出部12によって算出されたCRCとを含むUSBパケットを生成するパケット生成部13と、を備えている。
【選択図】図1

Description

本発明は、USBインタフェース装置及びUSBパケット送受信方法に関し、特に、セキュリティ機能を有するUSBインタフェース装置及びUSBパケット送受信方法に関する。
USB(Universal Serial Bus)インタフェースは利便性が高いことから、多くのパソコン(Personal Computer)に標準で装備されており、各種のデバイスはUSBによってパソコンへ接続することができるようになっている。また、USBはパソコンのみならず、デジタルTV、カーナビなどにも装備されており、パソコンを介さないデータ転送にも使用されている。
しかしながら、USBの規格は標準でセキュリティ機能を有していないため、別途セキュリティ機能を設けていないUSB機器は悪意のあるユーザによって容易に不正使用され得るという問題がある。一例として、USBデバイスに保存されたデータを不正に読み書きされ得る。また、許可されていないUSBデバイスから意図しないデータ(例えば、コンピュータウィルス)が不正にコピーされて実行され得る。
特許文献1において、セキュリティ機能付きのUSB機器を有するコンピュータシステムが記載されている。特許文献1の図1を参照すると、USBホスト10及びUSBデバイス20に対して、認証機能を実現するハードウェア及びソフトウェアを追加することによってセキュリティ機能が強化されている。USBホスト10がUSBデバイス20の接続を認識するとデータ転送に必要な情報を交換した後(Enumerationフェーズ)、通常のUSB通信が可能となる。このEnumerationフェーズに認証機能を追加し、認証をパスした場合のみデータ転送が可能となる。
特許文献1に記載されたコンピュータシステムにおいて、新たに追加されたハードウェア及びソフトウェアは、次の通りである。特許文献1の図1を参照すると、USBホスト10に対して、クライアントソフトウェア11及びID記憶部16が追加されている。一方、USBデバイス20に対して、セキュリティインタフェース24、インタフェース制御部25、インタフェース切り替えスイッチ26、セキュリティ機能切り替えスイッチ28、及びセキュリティ機能ステータス表示部29が追加されている。
特許文献1に記載のコンピュータシステムの動作は次の通りである。特許文献1の図1を参照すると、
[1]USBホスト10のID記憶部16とUSBデバイス20のID記憶部27に共通の値を登録する。
[2]USBデバイス20が接続されると、USBホスト10がUSBデバイス20のConnectを検出する。USBデバイス20は、セキュリティインタフェース24がディスクリプタを返すようにインタフェース制御部25を設定する。
[3]USBホスト10はUSBデバイス20に対し、セキュリティインタフェース24のディスクリプタを要求する。
[4]USBデバイス20はUSBホスト10に対し、セキュリティインタフェース24のディスクリプタを返す。
[5]USBホスト10はセキュリティインタフェース24のディスクリプタを取得後、USBデバイス20に対してID(ID記憶部の値)を要求する。
[6]USBデバイス20はUSBホスト10に対し、USBデバイス20のID記憶部27に登録された値を返す。
[7]USBホスト10はUSBデバイス20から送信されてきたIDに対し認証処理を行う。
[8]認証が許可された場合、USBホスト10はUSBデバイス20に対して周辺機器インタフェース21を有効にするためのコマンドを発行する。これによりUSBデバイス20はインタフェース制御部25により周辺インタフェース21がセレクトされる。以降、通常のUSBのEnumerationフェーズとなる。
なお、「通常のUSBのEnumerationフェーズ」とは、「周辺機器インタフェースとのEnumeration」を意味する。一方、認証が許可されなかった場合には、USBのEnumerationフェーズには移行しないため、USBデバイス20は使用不可となる。
特開2003−186819号公報
以下の分析は、本発明者によってなされたものである。
特許文献1に記載されたコンピュータシステムにおいては、認証後に周辺機器インタフェース21とのEnumerationが可能となるようにする。したがって、USBデバイス20において、認証前にディスクリプタの送受信を行うセキュリティインタフェース24及び、2つのインタフェースを切り替えるインタフェース制御部25が必要とされる。インタフェースの切り替えは認証結果に応じてUSBホスト10によって行われるため、本機能を実現するソフトウェアをUSBホスト10に追加する必要がある。また、USBホスト10のID記憶部16に登録されている値とUSBデバイス20から入手したIDとを照合する認証機能もUSBホスト10側に設ける必要がある。
また、セキュリティインタフェース24とのEnumerationフェーズにおいてIDの要求及び送信を実施している。しかし、これは標準デバイスリクエストではないため、標準的なUSBデバイス用ドライバ以外に別途ドライバが必要とされる。USBホスト10はOHCI/EHCI等のホストコントローラ規格に準拠している場合には、標準ドライバを流用することができる。USBデバイス20も標準的なクラスであれば標準ドライバを流用することができる。標準ドライバを流用することができれば、ソフトウェアの開発コストを抑制することができる。
しかし、特許文献1に記載されたコンピュータシステムのように、認証機能をUSBの上位層(ソフトウェア階層)において実現した場合には、標準的なソフトウェア以外に上記の機能を実現するためのソフトウェアが必要とされる。したがって、標準ソフトウェアを流用するという利点が損なわれ、専用ソフトウェアを開発することによる開発期間及びテスト期間の長期化を招き、開発コストの上昇を招くという問題がある。
そこで、簡単なソフトウェア又はハードウェア構成によって、USBのセキュリティ機能を実現することが課題となる。
本発明の第1の視点に係るUSBインタフェース装置は、USBパケットを送信する側の電子機器に設けられるUSBインタフェース装置であって、USBパケットにおいてCRC(Cyclic Redundancy Check、巡回冗長検査)を算出する対象とされるフィールドに含まれるデータであるCRC対象データを、送信先の電子機器によってCRC対象データに対して施される変換の逆変換に相当する所定の規則に基づいて変換する変換部と、変換部による変換前のCRC対象データに対するCRCを算出するCRC算出部と、変換部によって変換されたデータとCRC算出部によって算出されたCRCとを含むUSBパケットを生成するパケット生成部と、を備えている。
本発明の第2の視点に係るUSBインタフェース装置は、USBパケットを受信する側の電子機器に設けられるUSBインタフェース装置であって、USBパケットにおいてCRCを算出する対象とされるフィールドに含まれるデータであるCRC対象データと、CRCとをUSBパケットから抽出する抽出部と、CRC対象データに対して送信元の電子機器によって施された変換の逆変換に相当する所定の規則に基づいて、抽出部により抽出されたCRC対象データを変換する変換部と、変換部による変換後のCRC対象データに対するCRCを算出するCRC算出部と、抽出部により抽出されたCRCとCRC算出部により算出されたCRCとを比較する比較部と、を備えている。
本発明の第3の視点に係る電子機器は、上記のUSBインタフェース装置を備えている。
本発明の第4の視点に係るUSB通信システム装置は、上記の電子機器を複数備えている。
本発明の第5の視点に係るUSBパケット送信方法は、USBパケットにおいてCRCを算出する対象とされるフィールドに含まれるデータであるCRC対象データを、送信先の電子機器によってCRC対象データに対して施される変換の逆変換に相当する所定の規則に基づいて変換する工程と、変換工程における変換前のCRC対象データに対するCRCを算出する工程と、変換工程において変換されたデータとCRC算出工程において算出されたCRCとを含むUSBパケットを生成して送信する工程と、を含む。
本発明の第6の視点に係るUSBパケット受信方法は、USBパケットを受信する工程と、受信したUSBパケットにおいてCRCを算出する対象とされるフィールドに含まれるデータであるCRC対象データと、CRCとをUSBパケットから抽出する工程と、CRC対象データに対して送信元の電子機器によって施された変換の逆変換に相当する所定の規則に基づいて、抽出工程において抽出されたCRC対象データを変換する工程と、変換工程における変換後のCRC対象データに対するCRCを算出する工程と、抽出工程において抽出されたCRCとCRC算出工程において算出されたCRCとを比較する工程と、を含む。
本発明の第7の視点に係るUSBパケット通信方法は、上記のUSBパケット送信方法における各工程と、上記のUSBパケット受信方法における各工程と、を含む。
本発明の第8の視点に係るプログラムは、USBパケットにおいてCRCを算出する対象とされるフィールドに含まれるデータであるCRC対象データを、送信先の電子機器によってCRC対象データに対して施される変換の逆変換に相当する所定の規則に基づいて変換する処理と、変換処理における変換前のCRC対象データに対するCRCを算出する処理と、変換処理において変換されたデータとCRC算出処理において算出されたCRCとを含むUSBパケットを生成して送信する処理とを、USBパケットを送信する側のコンピュータに実行させる。
本発明の第9の視点に係るプログラムは、USBパケットを受信する処理と、受信したUSBパケットにおいてCRCを算出する対象とされるフィールドに含まれるデータであるCRC対象データと、CRCとをUSBパケットから抽出する処理と、CRC対象データに対して送信元の電子機器によって施された変換の逆変換に相当する所定の規則に基づいて、前記抽出処理において抽出されたCRC対象データを変換する処理と、変換処理における変換後のCRC対象データに対するCRCを算出する処理と、抽出処理において抽出されたCRCとCRC算出処理において算出されたCRCとを比較する処理とを、USBパケットを受信する側のコンピュータに実行させる。
本発明に係るUSBインタフェース装置、USBパケット送受信方法、及びプログラムによると、簡単なソフトウェア又はハードウェア構成によって、USBのセキュリティ機能を実現することができる。
本発明の第1の実施形態に係るUSBインタフェース装置の構成を示すブロック図である。 本発明の第2の実施形態に係るUSBインタフェース装置の構成を示すブロック図である。 本発明の第4の実施形態に係るUSBインタフェース装置の構成を示すブロック図である。 実施例1におけるUSBパケット処理回路(SIE)の構成を示すブロック図である。 USBにおけるトークンパケットの構成を示す図である。 USBにおけるデータパケットの構成を示す図である。 本発明の第2の実施例に係るUSBインタフェース装置の構成を示すブロック図である。 本発明の第2の実施例に係るUSBインタフェース装置によるIN方向のUSBトランザクション処理のフローチャートである。 本発明の第3の実施例に係るUSBインタフェース装置の構成を示すブロック図である。 本発明の第3の実施例に係るUSBインタフェース装置によるIN方向のUSBトランザクション処理のフローチャートである。 本発明の第3の実施例に係るUSBインタフェース装置によるOUT方向のUSBトランザクション処理のフローチャートである。 本発明の第4の実施例に係るUSBインタフェース装置の構成を示すブロック図である。
(第1の実施形態)
本発明の第1の実施形態に係るUSBインタフェース装置について、図面を参照して説明する。図1は、本発明の実施形態に係るUSBインタフェース装置であってUSBパケット送信側の電子機器に設けられるものの構成を示すブロック図である。図1を参照すると、USBインタフェース装置10は、変換部11、CRC算出部12、及びパケット生成部13を備えている。
変換部11は、USBパケットにおいてCRCを算出する対象とされるフィールドに含まれるデータであるCRC対象データを、送信先の電子機器によってCRC対象データに対して施される変換の逆変換に相当する所定の規則に基づいて変換する。
CRC算出部12は、変換部11による変換前のCRC対象データに対するCRCを算出する。
パケット生成部13は、変換部11によって変換されたデータとCRC算出部12によって算出されたCRCとを含むUSBパケットを生成する。
(第2の実施形態)
本発明の第2の実施形態に係るUSBインタフェース装置について、図面を参照して説明する。図2は、本発明の実施形態に係るUSBインタフェース装置であってUSBパケット受信側の電子機器に設けられるものの構成を示すブロック図である。図2を参照すると、USBインタフェース装置20は、抽出部21、変換部22、CRC算出部23、及び比較部24を備えている。
抽出部21は、USBパケットにおいてCRCを算出する対象とされるフィールドに含まれるデータであるCRC対象データと、CRCとをUSBパケットから抽出する。
変換部22は、CRC対象データに対して送信元の電子機器によって施された変換の逆変換に相当する所定の規則に基づいて、抽出部21により抽出されたCRC対象データを変換する。
CRC算出部23は、変換部22による変換後のCRC対象データに対するCRCを算出する。
比較部24は、抽出部21により抽出されたCRCとCRC算出部23により算出されたCRCとを比較する。
(第3の実施形態)
上記第1の実施形態のUSBインタフェース装置10における変換部11、及び、上記第2の実施形態のUSBインタフェース装置20における変換部22による所定の規則に基づく変換は、送信元と送信先との間で共有された所定のデータを用いて行われるようにしてもよい。
また、上記の所定のデータは所定のビット列であって、上記の所定の規則は所定のビット列とCRC対象データとの間で、ビット単位で排他的論理和を求めることであってもよい。
さらに、上記の所定のデータは共通鍵暗号における共通鍵であって、上記の所定の規則は共通鍵に基づいてCRC対象データを暗号化又は復号化することであってもよい。
USBインタフェース装置10又はUSBインタフェース装置20は、上記の所定のデータを記憶する記憶部14又は記憶部25をさらに備えていてもよい。
また、上記のUSBパケットは、USB通信におけるトークンパケット又はデータパケットでことが好ましい。
電子機器において、上記のUSBインタフェース10及び/又は20を備えていることが好ましい。さらに、USB通信システム装置は、かかる電子機器を複数備えていることが好ましい。
(第4の実施形態)
本発明の第4の実施形態に係るUSBインタフェース装置について図面を参照して説明する。図3を参照すると、USBホスト101のUSBインタフェース装置102、及び、USBデバイス107のUSBインタフェース装置108は、それぞれ、送信するデータを、ID記憶部106、112に記録された値に応じて変換する変換回路105、111を有することによって、セキュリティ機能を実現している。
特許文献1に記載されたコンピュータシステムにおいては、認証機能を追加することでUSBのセキュリティを向上させている。一方、本発明においては、共通のID(ID記憶部106、112の値)を持たないUSBホストとUSBデバイスとの間のUSB通信においてはCRCエラーを生じさせ、USB通信を成立させないことによりセキュリティを向上させている。本実施形態において、標準的なUSBシステムに対して追加する必要があるのは、変換回路105、111、及び、ID記憶部106、112である。
一例として、変換回路105、111は、XOR回路のような簡素な回路構成によって実現することができる。また、ID記憶部106、112へのIDの登録をソフトウェアによって実現する場合には、かかる機能を実現するソフトウェアが必要とされる。しかし、USBホスト101及びUSBデバイス107のUSBインタフェース装置102、108よりも上層における処理は、標準的なUSBの処理であるため、標準的なソフトウェアのみに基づいて実現することができる。
以上のことから、本実施形態のUSBインタフェース装置によると、簡単なハードウェア(回路)とソフトウェアを追加することで、セキュリティ機能を実現することができる。
本発明の第1の実施例について、図面を参照して説明する。USB通信においては、トークンパケット、データパケット、及び、ハンドシェークパケットからなるトランザクションが繰り返される。
図5は、USBにおけるトークンパケットの構成を示す図である。一方、図6は、USBにおけるデータパケットの構成を示す図である。図5及び図6を参照すると、トークンパケットとデータパケットは、パケット内の特定のフィールド301、401(以後、「CRC対象フィールド」とする)に格納されたデータ(以後、「CRC対象データ」とする)のCRCを含む。
CRCは、パケットの送信側において、CRC対象データに対して算出され、パケットに付加されて送信される。すなわち、USBのパケットに付加されているCRCは、そのパケットのCRC対象データから算出された値である。受信側においては、CRC対象データに対するCRCが再び計算され、再計算されたCRCと受信したパケットに付加されていたCRCとを照合し、一致した場合にはそのパケットを正常受信するとともに、一致しない場合には破棄する。以上が、通常のUSB通信の概要である。
一方、本実施例においては、送信されるパケット内のCRC対象データとそのパケットに付加されたCRCとの関係が上述した通常のUSB通信におけるパケットとは異なる。すなわち、送信パケットに付加されるCRCは変換回路で変換される前のCRC対象フィールドに対して算出したCRCであり、CRC対象データはCRC変換後のデータとなっている。本実施例においては、送信側で変換されたCRC対象データが受信側において復元できない場合には、USB通信が成立しない。
なお、変換が必要なのはCRC対象フィールドに格納されるデータであり、PID(Packet ID)などCRC算出の対象となっていないフィールドの値は変換不要である。したがって、CRCを含んでいないハンドシェークパケットは変換されない。
図4は、本実施例においてUSBパケットを処理するSIE(Serial Interface Engine)の構成を示すブロック図である。図4のSIE201は、図3のSIE105、110の機能ブロックの概要を示す。SIE201は、変換回路を有し、パケットの生成を行う。
USBホストコントローラ103及び論理デバイス109からSIE104、110へ入力されるデータは、一般に、PID(Packet ID)とDATA(CRC対象データ)に分離されている。しかし、入力されたデータが分離されていない場合には、データ分離・統合回路206は、入力されたデータをPIDとDATAに分離する。
SIE201によって、PIDとDATAから送信パケットを生成する動作は次の通りである。
[1]変換回路202は、SIE201へ入力されたDATAをID記憶部204の値を用いて変換する。
[2]CRC算出回路207は、SIE201へ入力されたDATAのCRCを算出する。
[3]パケット生成回路208は、SIE201へ入力されたPIDと変換後のデータとCRCに基づいて送信パケットを生成する。
[4]USB符号化・復号化回路209は、送信パケットをUSBのバスフォーマットへ変換し、送信する。
一方、受信パケットの処理動作は以下のとおりである。
[1]USB符号化・復号化回路209は、受信パケットをUSBのバスフォーマットからSIEで処理することのできるフォーマットへ復号する。
[2]パケット分解回路210は、受信パケットをPID、DATA、CRCに分離する。
[3]変換回路203は、受信パケットから分離されたDATAをID記憶部205の値を用いて変換する。
[4]CRC算出回路211は、変換後のデータのCRCを算出する。
[5]CRC比較回路212は、変換後のデータのCRCと受信パケットから分離されたCRCとを比較する。
[6]データ分離・統合回路206は、比較結果に応じて受信パケットを処理する。データ分離・統合回路206は、比較結果が一致した場合にはパケットを正常処理し、一致しない場合にはパケットを破棄する。
なお、図3においては、変換回路105、111は、それぞれSIE104、110に配置されている。しかしながら、変換後のデータと変換前のデータのCRCとを含むパケットを生成することができる構成であれば、変換回路105、111はUSBインタフェース装置102、108のいずれに配置してもよい。また、変換回路202、203は、それぞれ、ID記憶部204、205の値を用いて、送信側で変換されたデータを受信側で復元することができる構成であれば、どのような回路構成であってもよい。
変換回路202、203は、一例として、XOR回路であってもよい。このとき、変換回路202は、CRC対象データとID記憶部204の値とをXORした値を送信パケットのCRC対象フィールドに格納する。また、変換回路202、203は、DES又はAESなどの共通鍵を用いた暗号回路であってもよい。このとき、変換回路202、203は、ID記憶部204の値を共通鍵として暗号化したCRC対象データを送信パケットのCRC対象フィールドに格納する。
特に、変換回路202、203をXOR回路とする構成は簡素な回路構成となる。SIE201のモジュール内にXOR回路を配置した構成について、実施例2〜4において述べる。ただし、図7、図9、図12においては、図4における機能ブロックの記載は省略した。
本実施例においては、USBにおいてセキュリティ機能を実現するために、従来技術のように認証フェーズを追加するのではなく、送受信されるパケットのCRC対象フィールドに格納されるデータに変換が施される。したがって、USBインタフェースの上位のソフトウェアによるデータ処理については、標準的なUSBにおける処理フローと同一である。すなわち、従来技術のようにセキュリティ機能を実現するためのソフトウェアを追加する必要はなく、標準的なUSBソフトウェアのみに基づいて、セキュリティ機能を実現することができる。
なお、本実施例においては、USBインタフェース装置に送信データの変換回路を追加する必要がある。一例として、変換回路をXOR回路とすることによって、簡素な回路構成で送信データを変換することができる。
本発明の第2の実施例について図面を参照して説明する。本実施例においては、USBデバイスからUSBホストへ向かう方向(以下「IN方向」という。)のデータのみを変換対象とする。図7は、本実施例に係るUSBインタフェース装置の構成を示すブロック図である。
図7を参照すると、USBホスト501において、XOR回路505は、USBデバイス507からのデータとID記憶部506の値とをXORしたデータがUSBホストコントローラ503へ受け渡されるように配置される。USBデバイス507において、XOR回路511は、USBホスト501へ送信されるデータとID記憶部512の値とをXORしたデータがUSBホスト501へ送信されるように配置される。
図7に示した構成においては、IN方向のデータのみが変換対象とされるため、主に、USBデバイス507のセキュリティを向上させる効果が生じる。例えば、IDを知らないUSBホスト501(すなわち、許可されていないUSBホスト)がUSBデバイスに507保存されているデータを不正に入手しようとした場合、IDが一致しないときにはUSB通信が成立しないため、USBホスト501によるデータの不正入手を防止することができる。
(動作)
図8は、本実施例に係るUSBインタフェース装置502、508によるIN方向のUSBトランザクション処理のフローチャートである。本実施例に係るUSBインタフェース装置502、508の具体的な動作を以下に示す。一例として、送信対象データを11110000、ID記憶部506、512の値(ID)を10101010として、動作の説明を行う。
なお、図8のフローチャートにおいては、簡単のため、以下の処理に関する記載は省略されている(図10及び図11においても同様である。)。
・USBデバイスの接続認識からUSB速度決定までの処理
・CRCエラー以外のエラー処理
・CRC対象データに変換を実施したパケット以外のCRC再算出およびCRC照合処理
・HS(High Speed)モード時のOUT転送において実施されるPINGフロー
・ACK以外のハンドシェークパケットの送信およびそれに伴う処理
図8は、本実施例に係るUSBインタフェース装置502、508(すなわち、IN方向のデータのみを変換対象とする装置)によるIN方向のUSBトランザクション処理のフローチャートである。なお、OUT方向のUSBトランザクション処理においては、USBデバイス507からUSBホスト501へ送信されるパケットはハンドシェークパケットのみであり、XOR回路505、511によるデータの変換は発生しない。すなわち、標準的なUSBトランザクションフローと同一であるため、図8においてかかるパケットの処理を省略した。
図7及び図8を参照すると、
[1]USBホスト501のID記憶部506とUSBデバイス507のID記憶部512に共通の値を登録する(ステップS11、ステップS21)。
[2]OUT方向のデータの場合、USBホスト501においてCRC対象データはSIE504内でXORされず、パス513を経由する。したがって、USBのバス上のパケットのCRC対象フィールドには”11110000”が格納され、パケットには”11110000”に対して算出されたCRCが付加されている。
[3]USBデバイス507において、受信したパケットのCRC対象データはSIE510内でXORされず、パス514を経由する。したがって、CRC対象データ”11110000”に対してCRCが再び算出される。再算出されたCRCと受信パケットに付加されていたCRCが一致した場合には、パケットは正常に受信され、処理される。
[4]IN方向のデータの場合、USBデバイス507においてホスト側に送信したいCRC対象データのCRCを算出する(ステップS23)。
[5]CRCを算出後、送信したいCRC対象データ”11110000”とID記憶部512の値”10101010”とのXORを実施する(ステップS24)。
[6]USBデバイス507は、XOR後のデータ”01011010”をCRC対象フィールドに格納し、変換前のデータ”11110000”に対するCRCを付加したパケットを生成して(ステップS25)、USBホスト501へ送信する(ステップS26)。
[7]USBホスト501において、受信したパケットのCRC対象データ”01011010”とID記憶部506の値”10101010”とのXORを実施する(ステップS13)。
[8]XOR後のデータ”11110000”に対してCRCを再算出する(ステップS14)。再算出されたCRCと受信パケットに付加されていたCRCが一致した場合には(ステップS15のYes)、当該パケットは正常に受信され、処理される(ステップS16)。一方、USBホスト501がUSBデバイス507とは異なるIDを用いた場合には、CRC照合において不一致が生じる(ステップS15のNo)ため、当該パケットは破棄される。
具体例を挙げると、USBホスト501のID記憶部506の値が”10101111”の場合、USBホスト501におけるXOR後のデータは”10100101”となる。再算出されたCRCは”10100101”に対するCRCであるため、受信パケットに付加されたCRCとは一致しない。
図8のフローチャートにおいて、標準的なUSBトランザクション処理フローに含まれない処理は、ステップS11、S21、S24、S13である。ステップS11、S21の処理をソフトウェアで実現する場合には専用のソフトウェアが必要とされる。しかし、これらの処理はUSBディスクリプタの処理とは無関係であるから、標準的なUSBソフトウェア(ドライバなど)の変更を必要としない。また、ステップS24、S13はUSBインタフェース装置502、508(ハードウェア)への機能追加によって実現されることから、これらの処理において標準的なUSBソフトウェアは介在しない。ステップS25の処理においては、CRC対象データとCRCの組み合わせが標準のUSBのパケット構成と異なることから図4に示した回路構成が必要とされる。しかし、ステップS25の処理においても標準的なソフトウェアは介在しない。図8における他の処理は標準的なUSBトランザクション処理フローと同一である。
したがって、本実施例によると、標準的なUSBソフトウェアとUSBディスクリプタ処理に関係しないソフトウェアのみによって、セキュリティ機能を備えたUSBトランザクションが可能となる。すなわち、USBのセキュリティ機能を、認証機能の追加ではなく、USBパケットの構成の変更によって実現することにより、簡単な回路の追加と標準的なソフトウェアのみに基づいて、USBのセキュリティ機能を実現することができる。
本発明の第2の実施例について図面を参照して説明する。本実施例においては、USBホストからUSBデバイスへ向かう方向(OUT方向)のデータのみを変換対象とする。図9は、本実施例に係るUSBインタフェース装置の構成を示すブロック図である。
図9を参照すると、USBホスト601において、XOR回路605は、USBデバイス607へ送信されるデータとID記憶部606の値とのXORしたデータがUSBデバイス607へ送信されるように配置される。USBデバイス607においては、XOR回路611は、USBホスト601からのデータとID記憶部612の値とをXORしたデータが論理デバイス609へ受け渡されるように配置される。
図9に示した構成においては、OUT方向のみのデータが変換対象とされるため、主に、USBホスト601のセキュリティを向上させる効果が生じる。例えば、IDを知らないUSBデバイス607(すなわち、許可されていないUSBデバイス)において自動実行される不正なプログラム(例えば、USBウィルス)が保存されていた場合、当該デバイスをUSBホストに接続してもUSBホスト側から送信されるトークンパケットは変換回路において変換されており、IDが一致しない限りUSB通信が成立しないため、不正なプログラムの実行を防止することができる。
(動作)
図10は、本実施例に係るUSBインタフェース装置602、608によるIN方向のUSBトランザクション処理のフローチャートである。本実施例に係るUSBインタフェース装置602、608の具体的な動作を以下に示す。一例として、送信対象データを11110000、ID記憶部606、612の値(ID)を10101010として、動作の説明を行う。
図9及び図10を参照すると、
[1]USBホスト601のID記憶部606とUSBデバイス607のID記憶部612に共通の値を登録する(ステップS31、ステップS41)。
[2]OUT方向のデータの場合、USBホスト601においてUSBデバイス607に送信されるCRC対象データのCRCを算出する(ステップS32)。
[3]CRCを算出後、送信されるCRC対象データ”11110000”とID記憶部606の値”10101010”とのXORを実施する(ステップS33)。
[4]USBホスト601は、XOR後のデータ”01011010”をCRC対象フィールドに格納し、変換前のデータ”11110000”に対するCRCを付加したパケット生成して(ステップS34)、USBデバイス607へ送信する(ステップS35)。
[5]USBデバイス607において、受信したパケットのCRC対象データ”01011010”とID記憶部612の値”10101010”とのXORを実施する(ステップS43)。
[6]XOR後のデータ”11110000”に対してCRCを再算出する(ステップS44)。再算出されたCRCと受信パケットに付加されていたCRCが一致した場合には(ステップS45のYes)、当該パケットは正常に受信され、処理される。一方、USBデバイス607がUSBホスト601とは異なるIDを用いた場合には、CRC照合において不一致が生じる(ステップS45のNo)ため、当該パケットは破棄される。
[7]IN方向のデータの場合、USBデバイス607においてCRC対象データはSIE610内でXORされず、パス613を経由する。したがって、USBのバス上のパケットのCRC対象フィールドには”11110000”が格納され、パケットには”11110000”に対して算出されたCRCが付加されている。
[8]USBホスト601において、受信したパケットのCRC対象データはSIE604内でXORされず、パス614を経由する。したがって、CRC対象データ”11110000”に対してCRCが再算出される。再算出されたCRCとパケットに付加されていたCRCが一致した場合、当該パケットは正常に受信され、処理される。
図11は、本実施例に係るUSBインタフェース装置602、608によるOUT方向のUSBトランザクション処理のフローチャートである。図11においては、トークンパケット及びデータパケットの双方について、XOR回路605、611に基づく変換が施される。
図10及び図11のフローチャートにおいて、標準的なUSBトランザクションフローに含まれない処理は、図10のステップS31、S41、S33、S43、図11のステップS51、S71、S53、S73、S57、S77である。ステップS31、S41、S51、S71の処理をソフトウェアで実現する場合には専用のソフトウェアが必要とされる。しかし、これらの処理はUSBディスクリプタの処理とは無関係であるから、標準的なUSBソフトウェア(ドライバなど)の変更を必要としない。また、ステップS33、S43、S53、S73、S57およびS77はUSBインタフェース装置602、608(ハードウェア)への機能追加によって実現されることから、これらの処理において標準的なUSBソフトウェアは介在しない。ステップS34、S54、S58の処理においては、CRC対象データとCRCの組み合わせが標準のUSBのパケットの構成と異なることから、図4に示した回路構成が必要とされる。しかし、これらの処理にも標準的なソフトウェアは介在しない。図10及び図11における他の処理は標準的なUSBトランザクション処理フローと同一である。
したがって、本実施例によると、標準的なUSBソフトウェアとUSBディスクリプタ処理に関係しないソフトウェアのみによって、セキュリティ機能を備えてUSBトランザクションが可能となる。
本発明の第4の実施例について図面を参照して説明する。本実施例においては、IN方向及びOUT方向の双方のデータが変換対象とされる。図12は、本実施例に係るUSBインタフェース装置の構成を示すブロック図である。
図12を参照すると、本実施例に係るUSBインタフェース装置702、708においては、IN方向のデータに対するXOR回路714、715と、OUT方向のデータに対するXOR回路705、711を別個に設ける。また、IN方向に対するID記憶部713、716と、OUT方向に対するID記憶部706、712とを別個に設ける。このとき、実施例2(図7)及び実施例3(図9)と比較してセキュリティ強度を強化することができる。セキュテイ強度はIDのビット長に依存することから、nビットのIDを用いた場合には、実施例2及び実施例3の構成と比較して、セキュリティ強度は2のn乗倍となる。
以上の記載は実施例に基づいて行ったが、本発明は、上記実施例に限定されるものではない。
10、20、102、108、502、508、602、608、702、708 USBインタフェース装置
11、22 変換部
12、23 CRC算出部
13 パケット生成部
14、25 記憶部
21 抽出部
24 比較部
101、501、601、701 USBホスト
103、503、603、703 USBホストコントローラ
104、110、201、504、510、604、610、704、710 SIE(Serial Interface Engine)
105、111、202、203 変換回路
106、112、204、205、506、512、606、612、706、712、713、716 ID記憶部
107、507、607、707 USBデバイス
109、509、609、709 論理デバイス
206 データ分離・統合回路
207、211 CRC算出回路
208 パケット生成回路
209 USB符号化・復号化回路
210 パケット分解回路
212 CRC比較回路
301、401 フィールド(CRC対象フィールド)
505、511、605、611、705、711、714、715 XOR回路
513、514、613、614 パス

Claims (14)

  1. USBパケットを送信する側の電子機器に設けられるUSBインタフェース装置であって、
    USBパケットにおいてCRCを算出する対象とされるフィールドに含まれるデータであるCRC対象データを、送信先の電子機器によってCRC対象データに対して施される変換の逆変換に相当する所定の規則に基づいて変換する変換部と、
    前記変換部による変換前のCRC対象データに対するCRCを算出するCRC算出部と、
    前記変換部によって変換されたデータと前記CRC算出部によって算出されたCRCとを含むUSBパケットを生成するパケット生成部と、を備えていることを特徴とするUSBインタフェース装置。
  2. USBパケットを受信する側の電子機器に設けられるUSBインタフェース装置であって、
    USBパケットにおいてCRCを算出する対象とされるフィールドに含まれるデータであるCRC対象データと、CRCとをUSBパケットから抽出する抽出部と、
    CRC対象データに対して送信元の電子機器によって施された変換の逆変換に相当する所定の規則に基づいて、前記抽出部により抽出されたCRC対象データを変換する変換部と、
    前記変換部による変換後のCRC対象データに対するCRCを算出するCRC算出部と、
    前記抽出部により抽出されたCRCと前記CRC算出部により算出されたCRCとを比較する比較部と、を備えていることを特徴とするUSBインタフェース装置。
  3. 前記変換部による所定の規則に基づく変換は、送信元と送信先との間で共有された所定のデータを用いて行われることを特徴とする、請求項1又は2に記載のUSBインタフェース装置。
  4. 前記所定のデータは所定のビット列であって、
    前記所定の規則は前記所定のビット列と前記CRC対象データとの間で、ビット単位で排他的論理和を求めることであることを特徴とする、請求項3に記載のUSBインタフェース装置。
  5. 前記所定のデータは共通鍵暗号における共通鍵であって、
    前記所定の規則は前記共通鍵に基づいて前記CRC対象データを暗号化又は復号化することであることを特徴とする、請求項3に記載のUSBインタフェース装置。
  6. 前記所定のデータを記憶する記憶部をさらに備えていることを特徴とする、請求項1乃至5のいずれか1項に記載のUSBインタフェース装置。
  7. 前記USBパケットは、USB通信におけるトークンパケット又はデータパケットであることを特徴とする、請求項1乃至6のいずれか1項に記載のUSBインタフェース装置。
  8. 請求項1及び/又は請求項2に記載のUSBインタフェース装置を備えていることを特徴とする電子機器。
  9. 請求項8に記載の電子機器を複数備えていることを特徴とするUSB通信システム装置。
  10. USBパケットにおいてCRCを算出する対象とされるフィールドに含まれるデータであるCRC対象データを、送信先の電子機器によってCRC対象データに対して施される変換の逆変換に相当する所定の規則に基づいて変換する工程と、
    前記変換工程における変換前のCRC対象データに対するCRCを算出する工程と、
    前記変換工程において変換されたデータと前記CRC算出工程において算出されたCRCとを含むUSBパケットを生成して送信する工程と、を含むことを特徴とするUSBパケット送信方法。
  11. USBパケットを受信する工程と、
    受信したUSBパケットにおいてCRCを算出する対象とされるフィールドに含まれるデータであるCRC対象データと、CRCとをUSBパケットから抽出する工程と、
    CRC対象データに対して送信元の電子機器によって施された変換の逆変換に相当する所定の規則に基づいて、前記抽出工程において抽出されたCRC対象データを変換する工程と、
    前記変換工程における変換後のCRC対象データに対するCRCを算出する工程と、
    前記抽出工程において抽出されたCRCと前記CRC算出工程において算出されたCRCとを比較する工程と、を含むことを特徴とするUSBパケット受信方法。
  12. 請求項10に記載のUSBパケット送信方法における各工程と、
    請求項11に記載のUSBパケット受信方法における各工程と、を含むことを特徴とするUSBパケット通信方法。
  13. USBパケットにおいてCRCを算出する対象とされるフィールドに含まれるデータであるCRC対象データを、送信先の電子機器によってCRC対象データに対して施される変換の逆変換に相当する所定の規則に基づいて変換する処理と、
    前記変換処理における変換前のCRC対象データに対するCRCを算出する処理と、
    前記変換処理において変換されたデータと前記CRC算出処理において算出されたCRCとを含むUSBパケットを生成して送信する処理とを、USBパケットを送信する側のコンピュータに実行させることを特徴とするプログラム。
  14. USBパケットを受信する処理と、
    受信したUSBパケットにおいてCRCを算出する対象とされるフィールドに含まれるデータであるCRC対象データと、CRCとをUSBパケットから抽出する処理と、
    CRC対象データに対して送信元の電子機器によって施された変換の逆変換に相当する所定の規則に基づいて、前記抽出処理において抽出されたCRC対象データを変換する処理と、
    前記変換処理における変換後のCRC対象データに対するCRCを算出する処理と、
    前記抽出処理において抽出されたCRCと前記CRC算出処理において算出されたCRCとを比較する処理とを、USBパケットを受信する側のコンピュータに実行させることを特徴とするプログラム。
JP2009053590A 2009-03-06 2009-03-06 Usbインタフェース装置及びusbパケット送受信方法 Pending JP2010211276A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2009053590A JP2010211276A (ja) 2009-03-06 2009-03-06 Usbインタフェース装置及びusbパケット送受信方法
US12/659,210 US20100228993A1 (en) 2009-03-06 2010-03-01 USB interface apparatus and USB packet transmitting/receiving method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009053590A JP2010211276A (ja) 2009-03-06 2009-03-06 Usbインタフェース装置及びusbパケット送受信方法

Publications (1)

Publication Number Publication Date
JP2010211276A true JP2010211276A (ja) 2010-09-24

Family

ID=42679288

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009053590A Pending JP2010211276A (ja) 2009-03-06 2009-03-06 Usbインタフェース装置及びusbパケット送受信方法

Country Status (2)

Country Link
US (1) US20100228993A1 (ja)
JP (1) JP2010211276A (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013175167A (ja) * 2012-01-27 2013-09-05 Panasonic Corp 電子機器
US9076003B2 (en) * 2013-08-20 2015-07-07 Janus Technologies, Inc. Method and apparatus for transparently encrypting and decrypting computer interface data
CN108491339B (zh) * 2018-03-28 2021-09-14 联想(北京)有限公司 一种信号处理方法与电子设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005184811A (ja) * 2003-12-18 2005-07-07 Samsung Electronics Co Ltd ギガビットイーサネット(登録商標)受動光加入者網及び方法
JP2008250297A (ja) * 2008-01-28 2008-10-16 Kyocera Corp 通信方法および通信システム

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6219736B1 (en) * 1997-04-24 2001-04-17 Edwin E. Klingman Universal serial bus (USB) RAM architecture for use with microcomputers via an interface optimized for integrated services device network (ISDN)
GB2372186B (en) * 1999-11-22 2004-04-07 Intel Corp Integrity check values (icv) based on pseudorandom binary matrices
US8782801B2 (en) * 2007-08-15 2014-07-15 Samsung Electronics Co., Ltd. Securing stored content for trusted hosts and safe computing environments

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005184811A (ja) * 2003-12-18 2005-07-07 Samsung Electronics Co Ltd ギガビットイーサネット(登録商標)受動光加入者網及び方法
JP2008250297A (ja) * 2008-01-28 2008-10-16 Kyocera Corp 通信方法および通信システム

Also Published As

Publication number Publication date
US20100228993A1 (en) 2010-09-09

Similar Documents

Publication Publication Date Title
US20200356699A1 (en) Security plugin for a system-on-a-chip platform
US10095634B2 (en) In-vehicle network (IVN) device and method for operating an IVN device
TWI269169B (en) Methods and systems for cryptographically protecting secure content
JP6058237B1 (ja) 暗号文変換装置、暗号文変換プログラム及び暗号文変換方法
CN110378097B (zh) 保障传感器数据安全
TW484293B (en) Secure packet processing
US11159329B2 (en) Collaborative operating system
TWI809292B (zh) 資料的加解密方法、裝置、存儲介質及加密文件
US9509669B2 (en) Efficient routing of streams encrypted using point-to-point authentication protocol
US11212671B2 (en) Method and system for securing communication links using enhanced authentication
US20170063853A1 (en) Data cipher and decipher based on device and data authentication
CN105790927B (zh) 一种总线分级加密***
JP2008544710A (ja) 暗号化を実現する方法及び装置
CN108491727B (zh) 一种融合通用计算、可信计算、密码计算的安全处理器
CN112714911A (zh) 用于***组件互连(pci)快速(pcie)***的安全技术
US10296765B2 (en) Multi-level security enforcement
US9282083B2 (en) Encryption system and method
JP2010211276A (ja) Usbインタフェース装置及びusbパケット送受信方法
CN115804062A (zh) 针对认证加密算法的数据完整性增强
CN117335953A (zh) 在具有分布式计算机的计算环境中进行数据处理的方法
CN115085925A (zh) 密钥信息组合加密的安全芯片处理方法及装置
CN114697051A (zh) 安全传输数据的方法、装置及***
CN111970130A (zh) 量子区块链建立方法及***
CN111294199A (zh) 加解密***、加密装置、解密装置和加解密方法
CN106919846B (zh) 一种消息中间件处理方法和***

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20111101

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20121031

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121106

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20130402