説明

データ処理装置

【課題】 データ処理装置が活線挿抜に対応したケーブルの差し替えによって特定のコンピュータシステム以外の装置と接続した場合でもデータの機密性を維持することを目的とする。
【解決手段】 データ処理装置は、コンピュータシステムとデータ処理装置との相互認証が完了後に、接続が断たれた場合に、認証状態を無効にし、特定のコンピュータシステム以外の装置に対するデータの転送を不可にする。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コンピュータシステムに外部で接続されるデータ処理装置に関し、特にデータの機密性を維持することを目的としたデータ処理装置に関する。
【背景技術】
【0002】
コンピュータシステムには、インターフェース(IDE、SCSI、USB、IEEE1394等)で外部に接続される様々な周辺装置ハードディスクドライブ(HDD)、CD−R、CD−RW、DVD−R、DVD−RW等)が存在する。
【0003】
このような周辺装置の中には機能上、特定のコンピュータシステムとの間でのみ、データの通信による制御を求められるものがある。
【0004】
このような周辺装置では、既に周辺装置内に格納された機密情報や著作権データを、他のコンピュータシステムで読み出されないように、コンピュータシステムと周辺装置との間で相互に認証処理を行うことで対応している。その場合、認証処理が完了した場合のみ周辺装置とのデータアクセスを可能にしている。
【0005】
例えば、特許文献1では、セキュリティ機能付きUSB機器を備えたコンピュータシステムに関し、コンピュータシステムとUSB機器との間で認証処理を行い、認証処理が完了した場合のみ、USB機器の使用を可能にしている。それにより、悪意を持ったユーザが、他のコンピュータシステムにUSB機器を接続し不正な使用を行うことを防止している。
【0006】
また、一方、HDDなどの周辺装置に記憶するデータを暗号化する暗号化装置も知られている。
【特許文献1】特開2003−186819号公報
【発明の開示】
【発明が解決しようとする課題】
【0007】
しかしながら、コンピュータシステムと周辺デバイスとのインターフェースが活線挿抜(ホットスワップ)に対応したインターフェースである場合、コンピュータシステムを通電したままで接続ケーブルの挿抜が可能になる。活線挿抜に対応したインターフェースとしては、例えば、USB、IEEE1394、シリアルATA(SATA)がある。そのため、認証処理後、コンピュータシステムと周辺デバイスが通電した状態でケーブルが抜き取られ、そのケーブルが他のコンピュータシステムに接続された場合には、再度認証処理が行わることなく他のコンピュータシステムによるデータアクセスが可能となってしまう。従って、他のコンピュータによって周辺デバイスを不正に利用されてしまう虞がある。
【0008】
図17は活線挿抜に対応したインターフェースのつなぎ替えの一例を示す図である。コンピュータシステム101と外部記憶装置103(例えばHDD)の間にデータ暗号化装置102を介在させることによって、コンピュータシステム101が外部記憶装置103に対して読み書きするデータに対してデータ暗号化装置102が復号化、暗号化を行う。インターフェース104がコンピュータシステム101とデータ暗号化装置102とを接続している状態から、他のコンピュータシステム1601とデータ暗号化装置102とを接続するようにつなぎ替えたとする。もし、インターフェース104が活線挿抜に対応していないインターフェース(例えば、パラレルATA)であれば、つなぎ替えによって接続されたデータ暗号化装置102と他のコンピュータシステム1601とはそのままではデータの送受信を行うことができない。よってこの場合、通常は機器の電源を入れなおす必要がある。ここで、データ暗号化装置102が電源投入時にコンピュータシステムを認証するようにしておけば、本来の接続相手ではない他のコンピュータシステム1601はデータ暗号化装置102から認証されない。これにより外部記憶装置103に記憶された暗号化データをデータ暗号化装置102が復号化して他のコンピュータシステムへ転送してしまうことは無い。ところで、従来のパラレルATAよりも高速にデータを転送できるインターフェースとして、シリアルATAが主流になりつつある。しかし、インターフェース104が活線挿抜に対応したSATAである場合、以前に接続していたコンピュータシステム101と同様に、データ暗号化装置と他のコンピュータシステム1601とのデータ送受信が可能になってしまう。たとえデータ暗号化装置102が電源投入時にコンピュータシステムを認証する仕組みを導入したとしても、認証状態を保ったまま他のコンピュータシステム1601との送受信が可能となってしまう。よって、外部記憶装置103に記憶された暗号化データはデータ暗号化装置が復号化して本来の接続相手ではない他のコンピュータシステム1601へ転送されることになり、外部記憶装置103のデータの機密を保つことができず、セキュリティ上の問題となる。
【0009】
本発明では、上記の課題に鑑みてなされたものであり、データ処理装置が、活線挿抜に対応したケーブルの差し替えによって特定のコンピュータシステム以外と接続した場合でもデータの機密性を維持することを目的とする。
【課題を解決するための手段】
【0010】
上述の課題を解決するために、本発明のデータ処理装置は、情報処理装置と第1のインターフェースを介して接続し、少なくともデータを処理して前記情報処理装置へ転送することが可能なデータ処理装置であって、前記第1のインターフェースを介して接続した情報処理装置を認証するための処理を実行する認証手段と、前記認証手段が前記情報処理装置を認証したことに基づいて前記情報処理装置へのデータ転送を可能に制御する制御手段と、前記第1のインターフェースを介した情報処理装置との接続状態を判断する判断手段と、を備え、前記判断手段が前記第1のインターフェースを介して前記情報処理装置と接続していないと判断したことに基づいて、前記認証手段は前記情報処理装置に対する認証を無効にすることを特徴とする。
【0011】
また、本発明のデータ処理装置は、情報処理装置と第1のインターフェースを介して接続し、周辺装置と第2のインターフェースを介して接続するデータ処理装置であって、前記データ処理装置の動作モードとして、前記周辺装置から受信したデータを処理して前記情報処理装置へ転送する通常モードと、前記周辺装置から受信したデータを前記情報処理装置へ転送することを禁止する遮断モードとで動作可能に制御する制御手段と、前記第1のインターフェースを介した前記情報処理装置との接続状態を判断する判断手段と、を備え、前記制御手段は、前記通常モードにおいて前記判断手段が前記第1のインターフェースを介して前記情報処理装置と接続していないと判断したことに基づいて、前記データ処理装置の動作モードを前記通常モードから前記遮断モードへ切り替えることを特徴とする。
【0012】
また、本発明のデータ処理装置の制御方法は、情報処理装置と第1のインターフェースを介して接続し、少なくともデータを処理して前記情報処理装置へ転送することが可能なデータ処理装置の制御方法であって、前記情報処理装置を認証するための処理を実行する認証工程と、前記認証工程で前記情報処理装置が認証されたことに基づいて前記情報処理装置へのデータ転送を可能に制御する制御工程と、前記第1のインターフェースを介した前記情報処理装置との接続状態を判断する判断工程と、を備え、前記判断工程で前記第1のインターフェースを介して前記情報処理装置と接続していないと判断したことに基づいて、前記認証工程での前記情報処理装置に対する認証を無効にする認証無効工程と、ことを特徴とする。
【0013】
また、本発明のデータ処理装置の制御方法は、情報処理装置と第1のインターフェースを介して接続し、周辺装置と第2のインターフェースを介して接続するデータ処理装置の制御方法であって、前記データ処理装置の動作モードとして、前記周辺装置から受信したデータを処理して前記情報処理装置へ転送する通常モードと、前記周辺装置から受信したデータを前記情報処理装置へ転送することを禁止する遮断モードとで動作可能に制御する制御工程と、前記第1のインターフェースを介した前記情報処理装置との接続状態を判断する判断工程と、を備え、前記制御工程は、前記通常モード中に、前記判断工程において前記第1のインターフェースを介して前記情報処理装置と接続していないと判断されたことに基づいて、前記データ処理装置の動作モードを前記通常モードから前記遮断モードへ切り替えることを特徴とする。
【発明の効果】
【0014】
本発明によれば、データ処理装置が特定のコンピュータシステム以外と接続した場合でもデータの機密性を維持することが可能になる。
【発明を実施するための最良の形態】
【0015】
本実施形態では、データ暗号化装置をデータ処理装置の一例として説明する。
【0016】
以下、にデータ暗号化装置の利用環境、データ暗号化装置の構成、データ暗号化装置装置でデータの機密性を維持する動作を説明する。
【0017】
<データ暗号化装置の利用環境>
図1は、データ暗号化装置の利用環境の一例としての、暗号化データ記憶システムの全体構成を示す図である。
【0018】
図1において、データ暗号化装置102は、コンピュータシステム101と外部記憶装置間103を、それぞれインタフェース104、105でブリッジするように接続される。
【0019】
データ処理装置の一例であるデータ暗号化装置102は、コンピュータシステム101から送信されたデータを暗号化し外部記憶装置103に転送し、かつ外部記憶装置103から読み込まれたデータを復号化しコンピュータシステム101に転送する。
【0020】
情報処理装置の一例であるコンピュータシステム101は、データ暗号化装置を制御する装置であって、パーソナルコンピュータなどの情報処理装置や、バンキングシステム、DTP(Desktop Publishing)システム、またはMFP(Multi Function Printer)等の装置であり、特定の装置に限定しない。
【0021】
周辺装置の一例である外部記憶装置103は、データを記憶する装置であって、ハードディスクドライブ(HDD)、フラッシュメモリを用いた記憶装置、またはCD−R/CD−RW/DVD−R/DVD−RWのような書き換え可能なディスク等である。特定種類野の外部記憶装置に限定しない。本実施形態では、外部記憶装置103はハードディスクを用いた記憶装置であるものとし、以下HDD103と呼称する。
【0022】
インタフェース104、105は、ホットプラグイン・ホットプラグアウト(以下、活線挿抜、あるいはホットプラグという)の機能を有したインタフェースである。活線挿抜とは、装置が通電中であってもの接続ケーブルの挿抜を可能とするものである。活線挿抜の機能を備えたインターフェースを用いていれば、機器を通電したままパーツやケーブルを交換することが可能になる。その方式には、活線状態におけるケーブルの挿入および抜去時に、出力ドライバをハイインピーダンス状態に制御する等、様々な方式が提案されているが、通信の誤動作を防止するものであれば、特定の方式には限定しない。活線挿抜機能を備えるインターフェースとしては、USB、IEEE1394、またはシリアルATA(SATA)等が知られている。本実施形態では、インターフェース104、105はシリアルATAを用いるものとするが活線挿抜に対応した他の種類のインターフェースでも構わない。
【0023】
なお、データ暗号化装置は暗号化機能を無効化したモードで動作することも可能である。この場合、コンピュータシステム101とHDD103とは活線挿抜の機能を備えたインターフェースで直接接続されたものと同じ状態になる。このモードにおいては、システムが通電したままインターフェース104を他のコンピュータシステムへつなぎ替えてもHDD103は正常に動作することが可能である。
【0024】
<データ暗号化装置の構成>
図2にデータ暗号化装置のハードウェア構成の一例を示す。図2のデータ暗号化装置102はコンピュータシステム内のHDDコントローラ115とHDD103に挿入されるように配置される。コンピュータシステム101は不図示のCPU、RAM、ROM、ユーザインターフェースなどを備えているものとする。コンピュータシステム101のHDDコントローラ115とデータ暗号化装置102間、データ暗号化装置102とHDD103間はHDDの通信規格であるシリアルATA(SATA)バス104及び105で接続され、データ転送、通信が行われる。データ暗号化装置102は、HDDコントローラ115からHDD103へ送られるコマンド、データの解釈を行い、HDD103へ格納するデータの暗号化、HDD103から読み出すデータの復号化処理を行う。
【0025】
データ暗号化装置102の内部は、HDDコントローラ115、HDD103との通信、データの暗号・復号化を行う部分と、データ暗号化装置の制御を行う部分に大きく分かれる。
【0026】
CPU106はデータ暗号化装置の全体を制御し、メモリ111にはCPU106の制御プログラムとデータを格納する。また、鍵情報の生成に必要情報であるシード情報(後述)や、固有情報や、データの暗号化で必要な後述の鍵情報を格納することができる。本実施形態では、メモリ111には、バッテリーでバックアップされたRAM、或いはフラッシュメモリなどが用いられるものとし、データ暗号化装置102の電源がオフになった場合でも記憶内容を保持しておくことができるものとする。RAM112はCPU106のワーク領域として用いられる。
【0027】
ATAバスセレクタ107は、HDDコントローラ115、HDD103とのインタフェースであり、後述する動作モードに応じて、HDDコントローラ115とHDD103の接続制御を行う。
【0028】
デバイスインターフェース108は、通常動作中はATAバスセレクタ107を介してHDDコントローラ115に接続される。デバイスインターフェース108は、HDDコントローラ115がデバイスインターフェース108の存在を意識する必要がないように、HDD103と同じように動作する。HDDコントローラ115が発行するコマンドは、デバイスインターフェース108で一旦受信される。CPU106によって実行可能であると判断されたコマンドはCPU106からホストインターフェース110に対して発行され、HDD103へ送られる。
【0029】
HDD103へのデータ格納の際には、HDDコントローラ115から受信したデータを暗号・復号部109で暗号化してHDD103へ転送する。また、HDD103から読み出したデータは暗号・復号部109でデータを復号して、SATAバス104を介してHDDコントローラ115へデータを転送する。その際の制御データの生成も行っている。
【0030】
暗号・復号部109はHDD103へ記憶するデータを暗号化し、HDD103から読み出したデータを復号化する。データの暗号アルゴリズムは、DES、3DES、AES(Advanced Encryption Standard)などの共通鍵暗号方式、RSAなどの公開鍵暗号方式、または共通鍵方式と公開鍵方式を組み合わせたハイブリッド方式などが利用可能である。本発明は、暗号アルゴリズムに依存する方式でないため、本発明で利用する暗号アルゴリズムを特定の暗号アルゴリズムに限定しない。また、本実施形態では、暗号・復号部109は専用のハードウェアによって実装しているが、CPU106がソフトウェア処理によって暗号化・復号化の処理を行うようにしても良い。
【0031】
ホストインターフェース110は、ATAバスセレクタ107を介してHDD103に接続される。ホストインターフェース110はデバイスインターフェース108と同様の動作を行い、HDD103へのコマンド転送、制御データの生成、暗号・復号部109とHDD103間のデータ転送を行う。
【0032】
接続検出部114は、コンピュータシステム101が通電中にコンピュータシステム101とデータ暗号化装置102の間のSATAバス104の接続が切断されたことを検出するブロックである。ATAバスセレクタ107内でSATAバス104の通信を検出する信号をもとに、SATAバス104の接続状態を判断し、その結果をCPU106へ通知する。
【0033】
また、データ暗号化装置102内の各ブロックは、アドレス・データバス113に接続され、各ブロックはCPU106により制御される。
【0034】
<動作モード>
次にデータ暗号化装置の動作モードについて説明する。
【0035】
図3は、データ暗号化装置の動作モードを説明する図である。
データ暗号化装置102の動作モードは、大きく分けて遮断モード301と通常モード302の2種類がある。また、通常モード302でのコマンドにより、処理中にバイパスモード303と暗号・復号モード304の2種類に移行する。データ暗号化装置102のCPU106による制御の下、これらモードの設定や切り替えが行われる。以下、それぞれのモードについて説明する。
【0036】
・遮断モード
データ暗号化装置102の電源が入力されると、データ暗号化装置102は、まず遮断モード301に設定される。HDDコントローラ115が行ういかなるアクセスもHDDへ到達できないように制御するモードである。
【0037】
このとき、HDDコントローラ115からHDD103へのアクセスであるHDD103内の不図示のレジスタへのアクセス(リード/ライト)はデータ暗号化装置102に対して行われ、HDDコントローラ115からHDD103へのアクセスは遮断される。
【0038】
また、遮断モード301で使用可能なコマンドは、HDDコントローラ115がHDD103にアクセスするために使用する通常コマンド以外の、新たに定義した拡張コマンドのみが使用可能である。
【0039】
遮断モード301では、コンピュータシステム101とデータ暗号化装置102との認証処理のみが実行可能となる。つまり、遮断モード301においてデータ暗号化装置102はHDD103から読み出したデータの転送は禁止し、認証処理のために必要なデータの転送は許可することで、コンピュータシステム101に対するデータの転送を制限する。
【0040】
認証処理とは、データ暗号化装置102がコンピュータシステム101を認証する処理である。本実施形態で行う認証処理については後述する。
【0041】
この認証機能が終了した場合にのみ、通常モード302に移行できる。
【0042】
HDDコントローラ115が発行するコマンドが実行可能か不可能であるかは、データ暗号化装置102内のメモリ111に格納されたプログラムで規定される。HDDコントローラ115が発行するコマンドは図2のATAバスセレクタ107を介してデバイスインターフェースが受信し、データ・アドレスバス113を介してCPU106が認識する。メモリ111内のプログラムが備える参照データと比較し、実行可能なコマンドであるか否かを判断する。
【0043】
・通常モード
通常モード302は、HDDコントローラ115がHDD103に対してアクセスを行うことが可能になるモードである。
【0044】
ただし、HDDコントローラ115が発行するコマンドは全てデータ暗号化装置102が確認し、実行可能なコマンドのみがHDD103へ転送される。データ暗号化装置102のCPU106が実行不可能なコマンドと判断した場合には、当該コマンドはデータ暗号化装置内で遮断してHDD103へは転送しない。
【0045】
コマンドの実行可能、不可能の判断は遮断モードと同様であり、動作モードごとにメモリ111内には動作モード毎の参照データを記憶しており、CPU106は参照データと受け付けたコマンドとを比較して実行可能なコマンドであるか否かを判断する。
【0046】
通常モードにおいて、CPU106により実行可能であると判断されたコマンドは、ホストインターフェース110、ATAバスセレクタ107を介してHDD103へ転送される。
【0047】
次に、HDDコントローラ115がHDD103の不図示のレジスタへアクセスするためのレジスタアクセスコマンドをデータ暗号化装置102が受け取ると、バイパスモード303へ移行する。バイパスモード303の詳細は後述する。
【0048】
HDDコントローラ115からHDD103に対するデータの格納、読み出しを示すDMAコマンドをデータ暗号化装置102が受け取ると、暗号・復号モード304へ移行する。DMA転送が終了すると、暗号・復号モード304から通常モード302へ移行する。
【0049】
また、通常モード302の状態で、特別に定義された拡張コマンド(移行コマンド)を受信すると遮断モード301へ移行する。
【0050】
また、通常モード302の状態で、接続検出部114がSATAバス104の接続が切断されたことが検出した場合には、遮断モード301へと移行する。遮断モード301では、再度、コンピュータシステム101とデータ暗号化装置102との認証処理を実行する。
【0051】
・バイパスモード
バイパスモード303は通常モード302において、HDD103へのレジスタアクセスを行うときに実行されるモードである。HDDコントローラ115のレジスタアクセスをHDD103へバイパスさせるモードである。バイパスモード303では、HDDコントローラ115がHDD103のレジスタへ種種の設定値を書き込むことができ、これにより、HDDコントローラ115がHDD103に対する設定を行うことができる。
【0052】
HDDコントローラ115によるHDD103のレジスタデータの転送完了後(レジスタアクセス完了後)、通常モード302へ移行する。
【0053】
・暗号・復号モード
暗号・復号モード304はDMA転送によるHDDコントローラ115からHDD103へのデータ転送時にデータを暗号化し、HDD103からの読み出したデータをHDDコントローラ115へ転送するときにデータを復号化するモードである。
【0054】
暗号化および復号化は、後述の暗号鍵を用いて行われる。初めてコンピュータシステム101にデータ暗号化装置102が設置(SATAバス104による接続)されたときは、後述する暗号鍵の生成を行う。
【0055】
データの暗号アルゴリズムは、AES(Advanced Encryption Standard)など共通鍵暗号方式、RSAなど公開鍵暗号方式、または共通鍵方式と公開鍵方式を組み合わせたハイブリッド方式などが利用可能である。DMA転送が完了したら通常モード302へ移行する。
【0056】
<ATAバスセレクタの構成>
図4は、ATAバスセレクタ107のハードウェア構成を示すブロック図である。
【0057】
HDDコントローラ115はHDDコントローラサイド入出力801と接続され、信号の入出力が行われる。また、HDD103はHDDサイド入出力802と接続されている。
【0058】
HDDコントローラサイド入出力801はセレクタ803を介してデバイスインターフェース108あるいはバイパス回路804に接続される。
【0059】
同様にHDDサイド入出力802はセレクタ805を介して、ホストインターフェース110あるいはバイパス回路804に接続される。
【0060】
セレクタ803、805は、それぞれ制御回路806を介してCPU106により制御される。
【0061】
HDDコントローラ115とHDD103は、バイパス回路804を介して接続されたり、暗号・復号回路109を介してデータ転送されたり、あるいはCPU106を介して接続される。
【0062】
接続検出回路114は、HDDコントローラサイド入出力801と接続され、SATAバス104の接続が切断されたことを検出した場合に、検出の結果をCPU106へと通知する。HDDコントローラサイド入出力801には、SATAバス104のインタフェース制御回路(不図示)を備える。インタフェース制御回路の物理層(Physical Layer)において、SATAバス104の通信を受け付け、物理層の初期化が終了し、SATAバス104を介した通信が可能となった場合に、通信可能状態を接続検出回路114へと通知する。接続検出回路114の動作の詳細については後述する。
【0063】
<ATAバスセレクタの動作>
図5を用いて、CPU106により実行される、各動作モードにおけるATAバスセレクタ107の動作を説明する。
【0064】
図5はATAバスセレクタ107の動作を示す図である。図5中の矢印は各モードにおけるデータバスの接続関係および転送方向を示している。太い線の矢印はデータの送受信行うPIO/DMAバスを示し、細い線はHDD103動作設定、状態確認などで使用するHDD103内、或いはデータ暗号化装置102内の不図示のレジスタ等のへアクセスを示す。
【0065】
・遮断モード・・・図5の(a)
遮断モードにおいて、ATAバスセレクタ107内のHDDコントローラ115サイド入出力はデバイスインターフェース108に接続され、HDD103サイド入出力はホストインターフェース110に接続される。これにより、後述するデータ暗号化装置102によるコンピュータシステム101(或いはHDDコントローラ115)の認証が終了するまで、データ暗号化装置102はHDD103のデータをHDDコントローラ115へ転送すること、及び、HDDコントローラ115からのデータをHDD103へ転送することを禁止する。よって、HDDコントローラ115からHDD103へのいかなるアクセスも禁止されることになる。
【0066】
・通常モード・・・図5の(b)
通常モードでは、PIO/DMAバスはデバイスインターフェース108と、ホストインターフェース110に接続される。また、レジスタアクセスについては、アクセスするレジスタに応じてアクセス先が変更されることを示す。
【0067】
HDDコントローラ115からHDD103のレジスタへの書き込みアクセスが発行されると(Wの部分)、HDDコントローラサイドの入出力信号から、アクセスするレジスタの種類に応じて、デバイスインターフェース108内のレジスタだけに書き込まれる。あるいはHDDサイドの入出力信号にそのまま接続されHDD103だけに書き込まれる。もしくは、双方に書き込まれることを示す。
【0068】
レジスタリードにおいても同様で、HDD103内のレジスタのデータがそのまま読み出せたり、ホストインターフェース110で読まれたデータをデバイスインターフェース108を介して読み出したりすることを示す。
【0069】
・バイパスモード・・・図5の(c)
バイパスモードにおいては、ホストサイド入出力801とHDDサイド入出力802は直接接続される。一部のレジスタの書き込みアクセスに関しては、HDD103のレジスタと、デバイスインターフェース108内のレジスタに同じものが書きこまれる。
【0070】
<実行可能な拡張コマンド>
図6は、本実施形態における拡張コマンドの一覧を示す図である。図6に示した拡張コマンドは、通常のHDDアクセスで使用されるATAコマンドとは異なり、遮断モード301においてデータ暗号化装置102のみが処理可能なコマンドである。データ暗号化装置102のメモリ111には、これらのコマンドを解釈し、コマンドに対応した処理を実行するためのプログラムが格納されているものとする。
【0071】
コマンド名は、動作可能なコマンドの名称を示し、タイプはアクセスの種類を示す。Non DATAタイプはデータの書き込み、読み出しを伴わないコマンドであり、HDD103のステータスを確認するためのコマンドや、遮断モードから通常モードへ移行するためのコマンドなどがある。
【0072】
WRITE、READタイプはデータの書き込み、読み出しを伴うコマンドであり、バージョン情報の取得、認証のチャレンジで使用される。
【0073】
<実行可能なATAコマンド>
図7は、本実施形態におけるATAコマンドの一覧を示す図である。図7に示したATAコマンドは、通常モード302においてデータ暗号化装置102が動作可能なコマンドである。データ暗号化装置102のメモリ111には、これらコマンドの一覧を記憶しているものとする。また、これらのコマンドに対応した処理を実行するためのプログラムもメモリ111に格納されているものとする。
【0074】
本実施形態においては、HDDコントローラ115からHDD103に対して実行可能なコマンドは、図7に示したものに限定されるものとする。これは、HDD103に対する不要なアクセスを防止してセキュリティを確保するためである。
【0075】
通常モードステップにおいて、HDDコントローラ115からコマンドが発行されるとデータ暗号化装置102の内部で一旦保持し、そのコマンドが実行可能か、すなわち、メモリ111を参照して図7の一覧に含まれるコマンドであるかをチェックする。実行可能なコマンドのみが、HDD103へ送られる。実行不可能であると判断されたコマンドについては、HDD103へは送られずにエラー(アボートエラー)としてHDDコントローラ115へ通知される。
【0076】
<認証>
次に、HDDコントローラ115とデータ暗号化装置102の間の認証に関する説明を行う。
【0077】
認証の処理としては、データ暗号化装置102を初めてHDDコントローラ115に接続した設置時の認証処理(以下、初回設置時)と、初回設置が完了した後においてHDDコントローラ115(コンピュータシステム101に含まれる)とデータ暗号化装置102の電源を投入した後の認証処理(以下、通常起動時)の2種類がある。以下、順に説明する。
【0078】
・初回設置時
図8は、初めてHDDコントローラにデータ暗号化装置102が接続されたときの認証の手順を説明するシーケンスの一例を示す図である。
【0079】
まず、データ暗号化装置102とコンピュータシステム101(HDDコントローラ115を含む)とHDD103とがSATAバス104で接続した状態でユーザの操作によって電源が入力される(ステップS801)と、各装置は起動する。データ暗号化装置102は遮断モード301で起動する(ステップS802)。HDDコントローラ115は、SATAバス104上に所定のコマンドを送出し、データ暗号化装置102が接続されているかの確認を行う(ステップS803)。HDDコントローラ115はSATAバス104を介してデータ暗号化装置102 に対して、GET STATUSコマンドを発行し(ステップS804)、データ暗号化装置102の暗号鍵の生成状態をチェックする。
【0080】
初回設置時には、データ暗号化装置102には暗号鍵が生成されていないので、データ暗号化装置102は、未インストールのステータスをHDDコントローラ115へ返す(ステップS805)。
【0081】
HDDコントローラ115は、未インストール状態を認識し、データ暗号化装置102に対してINSTALLコマンドを送信する(ステップS806)。データ暗号化装置102は、シード情報を生成する(ステップS807)。固有情報を送信する(ステップS808)。シード情報や固有情報は後に暗号鍵の生成のために用いられる。本実施形態では、固有情報は、コンピュータシステム101に固有の情報であるものとする。固有情報としてはその他に、HDDコントローラ115固有の情報でも良いものとする。また、HDDコントローラ115固有の情報とコンピュータシステム101固有の情報とを組み合わせて得られる情報を固有情報としても構わない。データ暗号化装置102は受信した固有情報をメモリ111に記憶する(ステップS809)。メモリ111は固有情報を記憶するための固有情報記憶手段の一例である。続いて、データ暗号化装置102は、ステップS807で生成したシード情報と固有情報に基づいて、暗号鍵を生成しメモリ111に書き込む(ステップS810)。暗号鍵の生成、メモリ111への書き込みが終了すると、終了のステータスをHDDコントローラ115へ送信する(ステップS811)。
【0082】
HDDコントローラ115は暗号鍵の生成終了を認識すると、CHANGEモードコマンドを、データ暗号化装置102に送信する(ステップS812)。暗号鍵の生成が終わったことで、認証の代替処理とみなし通常モード302へ移行する(ステップS813)。データ暗号化装置102は通常モード302へ移行した旨をHDDコントローラ115へ通知する(ステップS814)。
【0083】
その後は、通常モード302ではHDDコントローラ115がHDD103へのアクセスを行うことが可能となり、ATAの各種コマンドが有効となる(ステップS815)。
【0084】
<鍵情報の生成>
次に、図8の認証時にデータ暗号化装置102のCPU106のソフトウェアにより実行される、鍵情報の生成動作を説明する。
【0085】
データ暗号化装置102はHDDコントローラ115から、HDDコントローラ115、或いはHDDコントローラ115が装着されたコンピュータシステム101の固有情報(以下、固有情報)を受信する。固有情報は個々のコンピュータシステム101に固有の情報であって、シリアル番号、LAN I/Fを持つコンピュータシステムにおけるMACアドレス、またはそれらの情報を組み合わせた情報など、さまざまな情報を利用することが可能である。
【0086】
CPU106は、受信した固有情報とメモリ111に保持しているシード情報から鍵情報を生成する。本実施形態では、シード情報としては、例えば、乱数を用いるものとする。固有情報とシード情報から鍵情報を生成する方法は、例えば、以下の方法が考えられる。
・固有情報とシード情報の排他的論理和を鍵情報とする方法
・一方向性ハッシュ関数に固有情報とシード情報を入力し、出力を鍵情報とする方法
・固有情報を暗号化関数の鍵とし、シード情報を暗号化処理し、出力を鍵情報とする方法
・シード情報を暗号化関数の鍵とし、固有情報を暗号化処理し、出力を鍵情報とする方法
・Diffie−Hellman鍵共有方式(RFC 2631)に基づいて鍵情報を共有する方法。ただし、データ暗号化装置だけが鍵情報を保持できればよいので、例えば、シード情報をデータ暗号化装置のDH鍵共有方式の秘密鍵とし、固有情報をデータ暗号化装置の公開鍵とコンピュータシステムの固有の情報から得られる情報とする。
【0087】
上記方法は、固有情報とシード情報から鍵情報を生成する一例であって、本発明における鍵情報の生成方法は、2入力の関数「鍵情報=f(シード情報,固有情報)」であればどのような関数でもよい。
【0088】
また、鍵情報と鍵情報検証情報とをセットで鍵情報として管理することで、鍵情報の正当性を検証することも可能である。鍵情報検証情報の一例として、鍵情報のハッシュ値が考えられる。
【0089】
なお、シード情報の生成方法は、鍵情報の生成方法と暗号アルゴリズムに依存する。乱数を暗号アルゴリズムの鍵として利用できる場合は、シード情報も乱数または擬似乱数として生成することも可能である。一方、特定の条件を満たす情報を暗号アルゴリズムの鍵として利用しなければならない場合は、例えば、鍵情報を生成し、生成した鍵情報とシード情報から「鍵情報=f(シード情報,固有情報)」を満たすシード情報を求める必要がある。
【0090】
・通常起動時
図9は、コンピュータシステム101にデータ暗号化装置102がすでに設置済みである、通常起動時における認証のシーケンスの一例を示すシーケンス図である。
【0091】
まず、データ暗号化装置とコンピュータシステム101と、HDD103とがSATAバス104で接続した状態でユーザの操作によって電源が投入される(ステップS901)。データ暗号化装置102は遮断モード301で起動する(ステップS902)。
【0092】
HDDコントローラ115は、SATAバス104上に所定のコマンドを送出し、データ暗号化装置102が接続されているかの確認を行う(ステップS903)。その後、HDDコントローラ115は、データ暗号化装置102に対してGET STATUSコマンドを送信してデータ暗号化装置102の暗号鍵の生成状態をチェックする(ステップS904)。通常起動時においては、データ暗号化装置102では暗号鍵は生成済みであるので、データ暗号化装置102は、HDDコントローラ115に対して暗号鍵はインストール済みである旨の応答を返送する(ステップS905)。HDDコントローラ115は、データ暗号化装置102に暗号鍵がインストール済みであることを確認すると認証処理に移る。
【0093】
本実施形態における認証処理は、公知のチャレンジアンドレスポンス方式を用いるものとし、HDDコントローラ115を備えるコンピュータシステム101とデータ暗号化装置102とを相互に認証する。もちろん、他の認証方式を用いても構わない。
【0094】
まず、HDDコントローラ115はデータ暗号化装置102に、チャレンジの実行を示すチャレンジコマンドを送信し(ステップS906)し、続いてチャレンジ乱数を送信する(ステップS907)。ここで、チャレンジ乱数とは、コンピュータシステム101、或いはHDDコントローラ115が生成する乱数であり、認証の度にランダムに変化する事前予測困難な数値を示す。
【0095】
データ暗号化装置102は、チャレンジ乱数を受け取ると、受信終了のステータスをHDDコントローラ115に返信する(ステップS908)。
【0096】
データ暗号化装置102から受信終了のステータスを受信したHDDコントローラ115は、データ暗号化装置102にレスポンス要求コマンドを送信する(ステップS909)。
【0097】
データ暗号化装置102は、HDDコントローラ115からのレスポンス要求コマンドを受け取ると、メモリ111に記憶してある固有情報と受信したチャレンジ乱数とからハッシュ値を生成する。そして、生成したハッシュ値をレスポンスとしてHDDコントローラ115に送信し(ステップS910)、送信終了のステータスを返信する(ステップS911)。
【0098】
HDDコントローラ115がデータ暗号化装置102からレスポンスを受け取ると、コンピュータシステム101は自らが保持している固有情報と、ステップS906で送信したチャレンジ乱数とからハッシュ値を生成する。そして、このハッシュ値を、データ暗号化装置102から受け取ったレスポンスと比較する。比較の結果、これらが一致すれば、コンピュータシステム101は、データ暗号化装置102が正常の接続先であると判別し、次の処理であるデータ暗号化装置102からHDDコントローラ115へのチャレンジの実行に移る。
【0099】
まず、HDDコントローラ115はデータ暗号化装置102に、チャレンジの実行の要求を行うコマンドを送信する(ステップS912)。
【0100】
データ暗号化装置102はチャレンジ乱数をHDDコントローラ115へ送信し(ステップS913)、チャレンジ乱数を送信完了したステータスをHDDコントローラ115へ送信する(ステップS914)。ここで、チャレンジ乱数とは、データ暗号化装置102が生成する乱数であり、認証の度にランダムに変化する事前予測困難な数値を示す。
【0101】
続いて、コンピュータシステム101は、保持してある固有情報と受信したチャレンジ乱数とからハッシュ値を生成する。
【0102】
HDDコントローラ115はデータ暗号化装置102に、レスポンスの実行を要求するコマンドを送信して(ステップS915)、生成したハッシュ値をレスポンスとして送信する(ステップS916)。
【0103】
データ暗号化装置102はレスポンスを受け取ると、メモリ111に記憶している固有情報(図8のステップS809で記憶した固有情報)と、ステップS913で送信したチャレンジ乱数とからハッシュ値を生成する。そして、このハッシュ値を、HDDコントローラ115から受け取ったレスポンスと比較する。比較の結果、これらが一致すれば、データ暗号化装置102は、コンピュータシステム101が正常の接続先であると判別し、認証を終了する(ステップS917)。
【0104】
データ暗号化装置102はHDDコントローラ115から、通常モード302への移行コマンドを受信する(ステップS918)。データ暗号化装置102は、認証が正常に終了している場合、遮断モードから通常モード302へ移行し(ステップS919)、通常モード302へ移行したことを示すステータスをHDDコントローラ115へ送信する(ステップS920)。その後ステップS921では通常モード302において各種ATAコマンドが有効になる。
【0105】
<通常モードにおけるコマンドシーケンス>
次に、通常モード302で実行可能なコマンドの詳細シーケンスを示す。通常モードで実行可能なコマンドは、図7に示したものであり、データの転送タイプで3つに分けられる。データ転送を伴わないNonDATA転送タイプ、READ転送タイプ、DMA転送(暗号・復号)タイプの3つである。順に説明する。
【0106】
・Non Data転送タイプのコマンドシーケンス
コマンドの実行は、2ステップの処理で行われる。まず、実行するコマンドに必要なパラメータを設定するもので、HDDのコマンドブロック内の関連するレジスタ(T/Fレジスタ。I/O レジスタやコマンドブロックレジスタなどとも呼ばれる。不図示)にデータを書き込む。次に、コマンドレジスタにコマンドコードを書き込む。これにより、実際にHDDは(いったん、データ暗号化装置を介して)コマンドを実行する。
【0107】
また、パラメータ設定を行うレジスタやコマンドコードを書き込むレジスタには、HDDコントローラ115から書き込む場合と、読み出す場合で、意味の異なるものがある。ERROR/FEATURESレジスタや、STATUS/COMMANDレジスタなどである。これらは、読み出し時にはHDDのエラーやステータスを示すが、書き込み時にはコマンドの実行を示す。
【0108】
図10はNon Data転送タイプのコマンドに対するシーケンスを示す図である。
【0109】
Non Data転送タイプのコマンドとしては、RECALIBRATE、SEEKなどのコマンドがある。
【0110】
RECALIBRATEコマンドは、HDDのREZERO動作を行うもので、SEEKコマンドは、HDDの指定されたトラックへのシークおよびヘッドの選択を行うものである。
【0111】
まず、通常モードにおいて、HDDコントローラ115がHDDにアクセスするためにパラメータ設定を行う。パラメータ設定は、データ暗号化装置102とHDD103の両方のレジスタ(いずれも不図示)に設定される(ステップS1001)。
【0112】
続いて、HDDコントローラ115がコマンドレジスタに実行するコマンドを発行し、データ暗号化102のデバイスインターフェース108のレジスタに設定する(ステップS1002)。データ暗号化装置102は、実行可能なコマンドであるかの判断を行い、実行可能なコマンドのみHDD103のコマンドレジスタに設定を行う(ステップS1003)。実行可能なコマンドの一覧はメモリ111に記憶されており、データ暗号化装置102は、当該コマンド一覧を参照して実行可能なコマンドであるか否かを判断する。
【0113】
HDD103はコマンドを実行し(ステップS1004)、コマンド処理が終了するとデータ暗号化装置102に対して割り込み信号を出力する(ステップS1005)。この割り込み信号はデータ暗号化装置102だけに入力されており、データ暗号化装置102はHDD103のステータス、エラーレジスタなどのレジスタを読み出す(ステップS1006)。レジスタが読まれるとHDD103は割り込み信号をクリアする(ステップS1007)。
【0114】
データ暗号化装置102は、読み出したHDD103のステータス、エラーレジスタのデータをデータ暗号化装置102のステータス、エラーレジスタに設定する(ステップS1008)。そして、HDDコントローラ115への割り込み信号を出力する(ステップS1009)。HDDコントローラ115は割り込み信号が入力されたので、ステータスとエラーレジスタを読み出す(ステップS1010)。HDDコントローラ115による読み出しが完了したらデータ暗号化装置102は割り込み信号をクリアする(ステップS1011)。以上でNon Data転送タイプのコマンドとコマンドに対する処理のシーケンスが終了する。
【0115】
・READ転送タイプ(PIO READ)のコマンドシーケンス
図11はREAD転送タイプのコマンドに対するシーケンスを示す図である。
【0116】
通常モード(ステップS302)で実行可能なREAD転送タイプのコマンドとしては、図7に示すようにIDENTIFY DEVICEコマンドがある。IDENTIFY DEVICEコマンドを実行すると、HDD103のパラメータ情報を読み出すことができる。パラメータ情報としては、シリンダ数、ヘッド数、シリアル番号、などのHDD103に関する情報であり、HDDコントローラ115からHDD103へ書き込まれたデータとは異なる。
【0117】
図11において、まず、HDDコントローラ115はパラメータ設定を行う(ステップS1101)。そして、HDDコントローラ115はREAD転送タイプのコマンドを発行すると(ステップS1102)、データ暗号化装置102が当該コマンドを解釈し、HDD103へ転送する(ステップS1103)。HDD103は、発行されたコマンドを実行する(ステップS1104)。HDD103は、発行されたコマンドがIDENTIFY DEVICEコマンドであれば、HDD103内のセクタバッファに要求されたパラメータ情報を入れて、レジスタに発行されたコマンドに対するステータスを書き込む。そしてHDD103はデータ暗号化装置102に対して割り込み信号を出力する(ステップS1105)。
【0118】
データ暗号化装置102はレジスタを読み出し、HDD103のステータスを確認する(ステップS1106)。レジスタが読まれると、HDD103は割り込み信号をクリアする(ステップS1107)。
【0119】
そして、データ暗号化装置102はバイパスモード303へ移行するための設定を行う(ステップS1108)。バイパスモード303への移行が終了すると、HDDコントローラ115へ割り込み信号を出力し(ステップS1109)、HDD103の準備ができていることを通知する。
【0120】
HDDコントローラ115は、HDD103レジスタをリードする(ステップS1110)。HDD103のステータスレジスタがリードされたことを、データ暗号化装置102が認識し、割り込み信号をクリアする(ステップS1111)。その後、HDDコントローラ115はHDD103のデータ(パラメータ情報等)を読み出す(ステップS1112)。
【0121】
所定数のデータの読み出しが終了すると、バイパスモードが終了する(ステップS1114)。バイパスモードが終了すると、データ暗号化装置はレジスタにデータをセットする(ステップS1115)。そしてHDDコントローラ115へ割り込み信号を出力する(ステップS1116)。HDDコントローラ115はデータ暗号化装置102のレジスタのデータを読み出し(ステップS1117)、読み出しが完了したらデータ暗号化装置102は割り込み信号をクリアして(ステップS1118)一連の処理を終了する。
【0122】
・READ DMA/WRITE DMA転送タイプのコマンドシーケンス
図12はHDDへのデータの書き込み、読み出しを行うDMA転送タイプのコマンドに対するシーケンスを示す図である。
【0123】
DMA転送としては、HDD103からデータを読み出すREAD DMAと、HDD103へデータを書き込むWRITE DMAの2種類がある。データ暗号化装置102は、WRITE DMA時にはHDD103へ書き込むデータの暗号化を行い、READ DMA時には、HDD103から読み出したデータの復号化を行う。
【0124】
HDDコントローラ115がDMA転送コマンドの発行を行う場合、HDD103のレジスタにパラメータ設定を行い(ステップS1201)、DMA転送のコマンドを設定する(ステップS1202)。
【0125】
DMA転送のコマンドは、いったん、データ暗号化装置102で確認され、HDD103へ転送される(ステップS1203)。HDD103はDMA転送の準備を行い、準備が終了するとデータ暗号化装置102へDMA転送要求信号を出力する(ステップS1204)。
【0126】
データ暗号化装置102はDMA転送開始要求信号を受け取ると、暗号、あるいは復号処理に対応した内部の設定を行い、暗号・復号モード304へ移行する(ステップS1205)。暗号、あるいは復号処理のどちらであるかはHDDコントローラ115が発行したコマンドですでに認識済みである。
【0127】
続いて、暗号・復号モード304へ移行すると、DMA転送開始要求をHDDコントローラ115へ出力する(ステップS1206)。
【0128】
その後、実際にDMA転送と、同時にデータ暗号化装置102ではデータの暗号あるいは復号処理が実行される(ステップS1207)。
【0129】
所定データ数の転送が終了すると、HDD103は割り込み信号をデータ暗号化装置102へ出力する(ステップS1208)。データ暗号化装置102はHDD103のステータスレジスタのデータを読み出して内容を確認すると(ステップS1209)、HDD103は割り込みをクリアする(ステップS1210)。これで、HDD103のDMA転送が終了する。
【0130】
続いて、データ暗号化装置102はDMA転送が終了すると、内部の設定を行い通常モード(ステップS302)に移行する(ステップS1211)。HDD103から読み出したステータス、エラーの状態をレジスタに設定して(ステップS1212)、HDDコントローラ115へ割り込みを行う(ステップS1213)。HDDコントローラ115がレジスタのデータを読み出して(ステップS1214)、読み出しが完了したらデータ暗号化装置102は割り込みをくりあして一連の処理を終了する。
【0131】
・WRITE転送タイプ(PIO WRITE)のコマンドシーケンス
HDD103へのデータ書き込みコマンドとして、WRITE MULTIPLE(PIO WRITE)コマンドがある。しかし、本実施形態ではHDD103に対する不要なデータの書き込みを防止するため、使用可能なコマンドにWRITE MULTIPLE(PIO WRITE)コマンドは認めていない。そのため、HDDコントローラ115により、WRITE MULTIPLE(PIO WRITE)コマンドが発行されても、データ暗号化装置102が実行不可能であると判断し、HDD103へはコマンドを転送しない。
【0132】
<接続検出部>
図13は本実施形態における接続検出部114におけるSATAバス104の切断の検出について説明する。以下、「切断」とはSATAバス104のケーブルのコネクタ(HDDコントローラ115側、データ暗号化装置102側)が外れた場合や、ケーブルそのものが切断された場合を含むものとする。
【0133】
接続検出回路114は、ATAバスセレクタ107内のHDDコントローラサイド入出力801と接続され、暗号化データ記憶システムが稼動中にSATAバス104の接続が切断されたことが検知された場合に、検知結果をCPU106へと通知する。
【0134】
HDDコントローラサイド入出力801には、SATAバス104のインターフェース制御回路を備える。インターフェース制御回路の物理層(Physical Layer)において、SATAバス104の通信をうけ、物理層の初期化が終了し、SATAバス104を介した通信が可能となった場合に、通信可能状態をPHY通信可能信号として接続検出回路114へと通知する。
【0135】
PHY通信可能信号は、電源ON時、Lowに出力され、その後、SATAバス104を介した通信が可能となった場合に、Highへと切り替わる。
【0136】
Highへと切り替わったPHY通信可能信号は、通常動作中(電源ON中)、以下の状態が発生した場合にLowへと切り替わる。
(1)HDDコントローラ115からのATAリセットコマンド受信時
(2)データ暗号化装置のハードリセット入力時
(3)SATAバス104の信号線の切断時
接続検出回路114では、これらの状態のうち、(1)と(2)については正常動作と判別し、(3)についてはSATAバス104の切断と判断し、切断検出信号を生成して、CPU106へと通知する。
【0137】
SATAバス104の切断の判断方法としては、図13に示すようにPHY通信可能信号の通常動作中(電源ON中)に発生するLow期間が所定の時間以上であるか否かで判断する。
【0138】
本実施形態では、(1)と(2)の場合、SATAバス104のLow期間が実動作において、100msec未満であるものとする(図13の1301)。また、SATAバス104のケーブルやコネクタの抜取り後にLowとなったPHY通信可能信号は、再度接続後にHighとなるまで、100msec以上を要するものとする(図3の1302)。
【0139】
以上により、本実施形態では、PHY通信可能信号のLow期間が100msec以上のときに、接続検出回路114はSATAバス104が切断したと判断し、切断検出信号1303をLowからHighに切り替えて、CPU106へと通知する。
【0140】
なお、通常動作中(電源ON中)のPHY通信可能信号の切り替わる状態として、本発明では(1)〜(3)の3つを上げたが、(3)以外の条件として(1)、(2)の2つに限定されるものではなく、装置に応じて状態を条件に加えるものとする。
【0141】
また、本実施形態では、SATAバス104の切断か否かを、PHY通信可能信号のLow期間が100msec以上であるか否かで判断するとした。しかし、100msecという時間に限定されるものではなく、SATAバス104とコンピュータシステムとの切断を、通常動作時と切り分けられる所定時間に変更可能とする。
【0142】
続いて、接続検出部114がSATAバス104の切断を検出した場合における、データ暗号化装置102の動作モードの切り替え動作について説明する。
【0143】
図14は、本実施形態のデータ暗号化装置における動作モードの切り替え動作の一例を示すフローチャートである。本フローチャートはデータ暗号化装置102のCPU106によって実行される。
【0144】
電源ON(ステップS1401)後、データ暗号化装置102は遮断モード301で起動する(ステップS1402)。
【0145】
そして、図9のシーケンス図で説明したようにコンピュータシステム101と、通常起動時の相互認証を行う(ステップS1403)。認証が正常に行われた場合(ステップS1404でyes)、通常モード302へ移行する(ステップS1405)。一方認証が正常に行われなかった場合、通常モードへ移行せずに本フローチャートを終了する。
【0146】
通常モード302における動作を実行中(ステップS1406)、接続検出部114はPHY通信可能信号を検査する(ステップS1407)。図13の接続検出部114の検出結果に基づきSATAバス104が切断されたか否かを判定する(ステップS1408)。SATAバス104が切断されていないと判定した場合(ステップS1408でNo)、ステップS1406へ戻り通常モード302の動作を実行する。一方、SATAバス104が切断されたと判定した場合、(ステップS1408でYes)、データ暗号化装置102は動作モードを通常モード302から遮断モード301へ移行する。そしてデータ暗号化装置102はコンピュータシステム101への認証を無効にするために認証無効化の処理を実行する(ステップS1409)。そして本フローチャートを終了する。
【0147】
なお、図14のフローチャートは、図9で説明した通常起動時における動作を説明したものであるが、図8で説明した初回設置時においても適用可能である。この場合、図8におけるシード情報を生成する処理(ステップS807)や固有情報を記憶する処理(ステップS809)や暗号鍵を生成する処理(ステップS810)が図14におけるステップS1403に相当する。そして、図8における通常モード302へ移行する処理(ステップS813)が図14のステップS1405に相当する。
【0148】
以上、図14のフローチャートによれば、データ暗号化装置102とコンピュータシステム101(HDDコントローラ115)との接続が切断した場合、データ暗号化装置102は通常モード302から遮断モード301へ移行する。これにより、HDD103からのデータを復号化して読み出すことができなくなり、HDD103へのセキュリティを保つことが可能になる。
【0149】
図15は、SATAバスが切断され、遮断モードに移行したデータ暗号化装置が他の装置と接続した場合におけるデータ暗号化装置の処理の一例を示すフローチャートである。本フローチャートはデータ暗号化装置102のCPU106によって実行される。
【0150】
図14のフローチャートにおいて、ステップS1409の処理を実行してフローチャートを終了した状態のデータ暗号化装置102は図15のフローを実行開始する。ステップS1501では、遮断モード301を維持する。ステップS1502では切断されたSATAバス104がコンピュータシステムと接続されたか否かを判定する。SATAバス104がコンピュータシステムと接続すると、SATAバス104上に信号が流れるので、データ暗号化装置102はその信号を検出することでSATAバス104が接続されたと判断することができる。ここでは、単にSATAバス104が接続されたことを判定するのみである。従って、データ暗号化装置102のCPU106は、接続した装置がそれまで接続していたコンピュータシステム101であるのか、それ以外の装置であるのかは認識できない。CPU106がSATAバス104が他の装置と接続されていないと判定した場合、ステップS1501へ戻り遮断モード301を維持する。一方、CPU106がSATAバス104が他の装置と接続されたと判定した場合、図14のフローチャートのステップS1403へ進む。ステップS1403以降の処理は図14で説明したとおりである。
【0151】
ここで、データ暗号化装置102が接続した装置が以前に接続していたコンピュータシステム101である場合には、コンピュータシステムとの相互認証が(ステップS1403)が正常に行われ(ステップS1404でYes)ので、再び通常モードへ移行する。よってデータ暗号化装置102はSATAバス104が切断される前の状態に復帰することになる。
【0152】
一方、ここで、データ暗号化装置102が接続した装置が以前に接続していたコンピュータシステム101とは異なる装置(例えば、図17のコンピュータシステム1601)である場合には、コンピュータシステムとの相互認証が(ステップS1403)正常に完了しない(ステップS1404でNo)。よって、データ暗号化装置102は通常モードへ移行することが無い。これは、図8で説明した初回設置時で固有情報を取得したコンピュータシステム101が接続相手でないと認証が正常に完了しないからである。
【0153】
図14、図15のフローチャートを実行することにより、データ暗号化装置102は、SATAバス104を本来接続すべきコンピュータシステム101以外の装置に差し替えるようなことが行われた場合には、HDD103に記憶された暗号化データを復号化して差し替えた後の装置へ転送することはない。これにより、HDD103内のデータの機密を維持することが可能になる。
【0154】
<接続検出回路の他の実施形態>
また、本実施形態では、接続検出回路114は、SATAバス104の切断を図13に示すようにPHY通信可能信号の切断時間により検出したが、他の検出方法を用いても良い。図16は、ATAバスセレクタ107のハードウェア構成の他の例を示す図である。図16の構成で図4の構成を置き換えることより、本実施形態のデータ暗号化装置102を構成することができる。図16において、図4と同じ構成については同じ符号を付与してその説明は省略する。図16では、SATAバス104の接続検出信号116を設け、接続検出信号116の切り替わりを接続検出部114で検出するようにしている。しても良い。これによりSATAバス104の物理的な接続状態を検知することが可能になる。図16では、接続検出回路はインターフェースの接続時をLow、抜取り時をHighを検出するになるよう制御しているが、検出信号を別途用意できれば、接続/切断検出方法はこれに制約されるものではない。また、検出信号を、接続検出部114を介さずに直接CPU106に接続するようにしても良い。
【0155】
また本実施形態では、データ暗号化装置102とコンピュータシステム101との間のSATAバス接続を例として説明したが、これに限らない。例えば、データ暗号化装置の代わりにストレージデバイスや、携帯端末、携帯音楽プレーヤー、携帯ビデオ再生装置、携帯ゲーム機などに本実施形態の構成を適用しても良い。また、コンピュータシステム101の代わりに、複写機、プリンタ、ファクシミリ、複合機、ゲーム機などに適用しても良い。コンピュータシステムとして複写機、プリンタ、ファクシミリ、複合機が適用された場合、HDD103には暗号化された画像データや暗号化された文書データが記憶されることになる。更に、SATAの代わりに、他の活線挿抜可能なインターフェース(USB、IEEE1394、ネットワーク、PCカード)を用いても構わない。また、HDD103の代わりにフラッシュメモリなどの他の記憶装置や周辺装置を用いても構わない。
【0156】
〔他の実施形態〕
本発明は、前述した実施形態の各機能を実現するための制御プログラムを、システム若しくは装置に対して直接または遠隔から供給し、そのシステム等に含まれるコンピュータが該供給されたプログラムコードを読み出して実行することによっても達成される。
【0157】
従って、本発明の機能・処理をコンピュータや上述の装置で実現するために、該コンピュータや上述の装置にインストールされる制御プログラムのプログラムコード自体も本発明を実現するものである。つまり、上記機能・処理を実現するための制御プログラム自体も本発明の一つである。
【0158】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等、プログラムの形態を問わない。
【0159】
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、MO、CD−ROM、CD−R、CD−RWなどがある。また、記録媒体としては、磁気テープ、不揮発性のメモリカード、ROM、DVD(DVD−ROM、DVD−R)などもある。
【0160】
また、プログラムは、クライアントコンピュータのブラウザを用いてインターネット/イントラネットのウェブサイトからダウンロードしてもよい。すなわち、該ウェブサイトから本発明のコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードしてもよいのである。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるウェブサイトからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるWWWサーバも、本発明の構成要件となる場合がある。
【0161】
また、本発明のプログラムを暗号化してCD−ROM等の記憶媒体に格納してユーザに配布してもよい。この場合、所定条件をクリアしたユーザにのみ、インターネット/イントラネットを介してウェブサイトから暗号化を解く鍵情報をダウンロードさせ、その鍵情報で暗号化されたプログラムを復号して実行し、プログラムをコンピュータにインストールしてもよい。
【0162】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現されてもよい。なお、そのプログラムの指示に基づき、コンピュータ上で稼動しているOSなどが、実際の処理の一部または全部を行ってもよい。もちろん、この場合も、前述した実施形態の機能が実現され得る。
【0163】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれてもよい。そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行ってもよい。このようにして、前述した実施形態の機能が実現されることもある。
【0164】
以上、本実施形態によれば、データ暗号化装置102は、通常モードによる動作実行中に、SATAバス104のケーブル抜取り等による切断を検出したら、再度、正しいコンピュータシステム101との認証を実行しない限り、HDD103へのアクセスが行えない。従って、図17のように、SATAバスのケーブルを他のコンピュータシステム1601等に接続した場合には、認証が正常に終了できないため、データ暗号化装置102は通常モードへと移行できず、HDD103内のデータの流出を防止することができる。
【図面の簡単な説明】
【0165】
【図1】暗号化データ記憶システムの全体構成を示す図である。
【図2】データ暗号化装置のハードウェア構成を示すブロック図である。
【図3】データ暗号化装置の動作モードを説明する図である。
【図4】ATAバスセレクタのハードウェア構成を示すブロック図である。
【図5】ATAバスセレクタの動作を示す図である。
【図6】拡張コマンドの一覧を示す図である。
【図7】ATAコマンドの一覧を示す図である。
【図8】初回設置時の認証の手順を説明するシーケンスの一例を示す図である。
【図9】通常起動時の認証の手順を説明するシーケンスの一例を示す図である。
【図10】Non Data転送タイプのコマンドに対するシーケンスを示す図である。
【図11】READ転送タイプのコマンドに対するシーケンスを示す図である。
【図12】HDDへのデータの書き込み、読み出しを行うDMA転送タイプのコマンドに対するシーケンスを示す図である。
【図13】接続検出部の動作を示す図である。
【図14】データ暗号化装置の動作モードの切り替え動作を説明するフローチャートである。
【図15】データ暗号化装置が他の装置と接続した場合における処理を説明するフローチャートである。
【図16】ATAバスセレクタのハードウェア構成の他の例を示す図である。
【図17】活線挿抜に対応したインターフェースのつなぎ替えの一例を示す図である。

【特許請求の範囲】
【請求項1】
情報処理装置と第1のインターフェースを介して接続し、少なくともデータを処理して前記情報処理装置へ転送することが可能なデータ処理装置であって、
前記第1のインターフェースを介して接続した情報処理装置を認証するための処理を実行する認証手段と、
前記認証手段による前記情報処理装置の認証が正常に行われたことに基づいて前記情報処理装置へのデータ転送を可能に制御する制御手段と、
前記第1のインターフェースを介した情報処理装置との接続状態を判断する判断手段と、を備え、
前記判断手段が前記第1のインターフェースを介して前記情報処理装置と接続していないと判断したことに基づいて、前記認証手段は前記情報処理装置を認証していない状態にすることを特徴とするデータ処理装置。
【請求項2】
更に、第2のインターフェースを介して周辺装置と接続し、
前記制御手段は、前記認証手段による前記情報処理装置の認証が正常に行われない場合には前記周辺装置から受信したデータを前記情報処理装置へ転送することを禁止する遮断モードで動作するよう制御し、前記認証手段による前記情報処理装置の認証が正常に行なわれたことに基づいて、前記周辺装置から受信したデータを処理して前記情報処理装置へ転送することを許可する通常モードで動作するよう制御することを特徴とする請求項1に記載のデータ処理装置。
【請求項3】
前記データ処理装置は前記周辺装置から前記第2のインターフェースを介して暗号化されたデータを受信し、前記制御手段は、前記通常モードにおいて前記周辺装置から受信した暗号化データを復号化し、当該復号化したデータを前記情報処理装置へ転送することを特徴とする、請求項2に記載のデータ処理装置。
【請求項4】
前記制御手段は、前記通常モードにおいて前記判断手段が前記第1のインターフェースを介して前記情報処理装置と接続していないと判断したことに基づいて、前記遮断モードで動作するよう制御することを特徴とする、請求項2または請求項3に記載のデータ処理装置。
【請求項5】
前記判断手段は、前記第1のインターフェースを介した前記データ処理装置と前記情報処理装置との間のデータ転送が所定時間の間に発生しなかったことに基づいて前記第1のインターフェースを介して前記情報処理装置と接続していないと判断することを特徴とする、請求項1乃至請求項4のいずれか1項に記載のデータ処理装置。
【請求項6】
更に、前記第1のインターフェースを介した前記データ処理装置と前記情報処理装置との物理的な接続が断たれたか否かを検知する検知手段を備え、
前記判断手段は前記検知手段の検知結果に基づいて前記第1のインターフェースを介した前記情報処理装置との接続状態を判断することを特徴とする、請求項1乃至請求項4のいずれか1項に記載のデータ処理装置。
【請求項7】
更に、前記認証手段が認証すべき情報処理装置に固有の情報である固有情報を記憶する固有情報記憶手段を備え、
前記認証手段は、前記固有情報記憶手段に記憶された固有情報を用いて前記第1のインターフェースを介して接続した情報処理装置を認証するための処理を実行し、当該情報処理装置が前記固有情報に対応しない場合、当該情報処理装置を認証しないことを特徴とする、請求項1に記載のデータ処理装置。
【請求項8】
前記認証手段が前記情報処理装置を認証しない場合、前記制御手段は前記情報処理装置へのデータ転送を制限するよう制御することを特徴とする、請求項7に記載のデータ処理装置。
【請求項9】
前記判断手段が前記第1のインターフェースを介して情報処理装置と接続していない状態から接続している状態に切り替わったと判断したことに基づいて、前記認証手段は前記第1のインターフェースを介して接続した情報処理装置を認証するための処理を実行することを特徴とする、請求項1に記載のデータ処理装置。
【請求項10】
前記第1のインターフェースは、活線挿抜に対応したインターフェースであることを特徴とする、請求項1乃至請求項9のいずれか1項に記載のデータ処理装置。
【請求項11】
前記第1のインターフェースは、シリアルATAであることを特徴とする、請求項10に記載のデータ処理装置。
【請求項12】
前記情報処理装置は複合機であり、前記周辺装置は記憶装置であり、前記データ処理装置は前記複合機から転送された画像データを暗号化して前記記憶装置へ記憶させ、前記記憶装置に記憶された暗号化された画像データを復号化して前記複合機へ転送するよう動作可能であることを特徴とする、請求項2に記載のデータ処理装置。
【請求項13】
情報処理装置と第1のインターフェースを介して接続し、周辺装置と第2のインターフェースを介して接続するデータ処理装置であって、
前記データ処理装置の動作モードとして、前記周辺装置から受信したデータを処理して前記情報処理装置へ転送する通常モードと、前記周辺装置から受信したデータを前記情報処理装置へ転送することを禁止する遮断モードとで動作可能に制御する制御手段と、
前記第1のインターフェースを介した前記情報処理装置との接続状態を判断する判断手段と、を備え、
前記制御手段は、前記通常モードにおいて前記判断手段が前記第1のインターフェースを介して前記情報処理装置と接続していないと判断したことに基づいて、前記データ処理装置の動作モードを前記通常モードから前記遮断モードへ切り替えることを特徴とするデータ処理装置。
【請求項14】
情報処理装置と第1のインターフェースを介して接続し、少なくともデータを処理して前記情報処理装置へ転送することが可能なデータ処理装置の制御方法であって、
前記情報処理装置を認証するための処理を実行する認証工程と、
前記認証工程で前記情報処理装置が認証されたことに基づいて前記情報処理装置へのデータ転送を可能に制御する制御工程と、
前記第1のインターフェースを介した前記情報処理装置との接続状態を判断する判断工程と、を備え、
前記判断工程で前記第1のインターフェースを介して前記情報処理装置と接続していないと判断したことに基づいて、前記認証工程での前記情報処理装置に対する認証を無効にする認証無効工程と、ことを特徴とするデータ処理装置の制御方法。
【請求項15】
情報処理装置と第1のインターフェースを介して接続し、周辺装置と第2のインターフェースを介して接続するデータ処理装置の制御方法であって、
前記データ処理装置の動作モードとして、前記周辺装置から受信したデータを処理して前記情報処理装置へ転送する通常モードと、前記周辺装置から受信したデータを前記情報処理装置へ転送することを禁止する遮断モードとで動作可能に制御する制御工程と、
前記第1のインターフェースを介した前記情報処理装置との接続状態を判断する判断工程と、を備え、
前記制御工程は、前記通常モード中に、前記判断工程において前記第1のインターフェースを介して前記情報処理装置と接続していないと判断されたことに基づいて、前記データ処理装置の動作モードを前記通常モードから前記遮断モードへ切り替えることを特徴とするデータ処理装置の制御方法。
【請求項16】
情報処理装置と第1のインターフェースを介して接続し、少なくともデータを処理して前記情報処理装置へ転送することが可能なデータ処理装置の制御方法を前記データ処理装置が実行するための制御プログラムであって、前記制御方法は、
前記情報処理装置を認証するための処理を実行する認証工程と、
前記認証工程で前記情報処理装置が認証されたことに基づいて前記情報処理装置へのデータ転送を可能に制御する制御工程と、
前記第1のインターフェースを介した前記情報処理装置との接続状態を判断する判断工程と、を備え、
前記判断工程で前記第1のインターフェースを介して前記情報処理装置と接続していないと判断したことに基づいて、前記認証工程での前記情報処理装置に対する認証を無効にする認証無効工程と、ことを特徴とする制御プログラム。
【請求項17】
情報処理装置と第1のインターフェースを介して接続し、周辺装置と第2のインターフェースを介して接続するデータ処理装置の制御方法を前記データ処理装置が実行するための制御プログラムであって、前記制御方法は、
前記データ処理装置の動作モードとして、前記周辺装置から受信したデータを処理して前記情報処理装置へ転送する通常モードと、前記周辺装置から受信したデータを前記情報処理装置へ転送することを禁止する遮断モードとで動作可能に制御する制御工程と、
前記第1のインターフェースを介した前記情報処理装置との接続状態を判断する判断工程と、を備え、
前記制御工程は、前記通常モード中に、前記判断工程において前記第1のインターフェースを介して前記情報処理装置と接続していないと判断されたことに基づいて、前記データ処理装置の動作モードを前記通常モードから前記遮断モードへ切り替えることを特徴とする制御プログラム。

【図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

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate


【公開番号】特開2009−223387(P2009−223387A)
【公開日】平成21年10月1日(2009.10.1)
【国際特許分類】
【出願番号】特願2008−64252(P2008−64252)
【出願日】平成20年3月13日(2008.3.13)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】