(57)【要約】【課題】新規且つ改善された、ファームウェアの安全なダウンロードのための方法及びシステムの提供。【解決手段】ファームウェアは、情報記憶装置によって生成された暗号化キーを用いて、ホストから情報記憶装置へ安全にダウンロードされる。暗号化キーは、ホストによるファームウェア・ダウンロード・リクエストに応答して生成される。ホストは、暗号化キーでファームウェアイメージを暗号化し（４０８）、暗号化されたファームウェアイメージを情報記憶装置へダウンロードする（４０９）。情報記憶装置は、暗号化されたファームウェアイメージを受信し（４１０）、当該ファームウェアイメージを復号し（４１１）、当該ファームウェアイメージでこのファームウェアを更新する。【選択図】      図４
2010020750.tif 000002
【特許請求の範囲】
【請求項１】
情報記憶装置のためのファームウェアを更新する方法であって、
ホストからファームウェアを更新するリクエストを受信するステップと、
暗号化キーを生成するステップと、
前記暗号化キーを前記ホストへ送信するステップと、
前記暗号化キーによって暗号化される新たなファームウェアを前記ホストから受信するステップと、
を具備することを特徴とするファームウェア更新方法。
【請求項２】
前記暗号化キーは暗号化された形式でホストへ送信され、前記暗号化キーを暗号化するのに使用されるキーは前記ホストへ送信される前記暗号化キーとは異なることを特徴とする請求項１に記載のファームウェア更新方法。
【請求項３】
前記ホストからユーザ証明を受信するステップと、
前記ユーザ証明が認証されたら、前記暗号化キーを前記ホストへ送信するステップと、
を更に具備することを特徴とする請求項１に記載のファームウェア更新方法。
【請求項４】
前記固有のキーは乱数として生成されることを特徴とする請求項１に記載のファームウェア更新方法。
【請求項５】
前記ホストから受信された前記新たなファームウェアを、前記暗号化キーを用いて復号するステップと、
前記新たなファームウェアを用いて前記情報記憶装置を再プログラムするステップと、
を更に具備することを特徴とする請求項１に記載のファームウェア更新方法。
【請求項６】
情報記憶装置のためのファームウェアを更新する方法であって、
ファームウェアを更新するリクエストを前記情報記憶装置へ送信するステップと、
前記情報記憶装置から暗号化キーを受信するステップと、
前記暗号化キーを用いて新たなファームウェアを暗号化するステップと、
前記暗号化された新たなファームウェアを前記情報記憶装置へ送信するステップと、
を具備することを特徴とするファームウェア更新方法。
【請求項７】
前記リクエスト及び前記暗号化された新たなファームウェアはネットワーク上で前記情報記憶装置へ送信されることを特徴とする請求項６に記載のファームウェア更新方法。
【請求項８】
前記暗号化キーは暗号化された形式で前記情報記憶装置から受信され、前記暗号化キーを暗号化するのに使用されるキーは前記情報記憶装置から受信される前記暗号化キーとは異なることを特徴とする請求項６に記載のファームウェア更新方法。
【請求項９】
前記新たなファームウェアを前記情報記憶装置へ送信するために、標準ダウンロード・マイクロコード・コマンドが用いられることを特徴とする請求項６に記載のファームウェア更新方法。
【請求項１０】
ファームウェアを更新する別のリクエストを前記情報記憶装置へ送信するステップと、
前記情報記憶装置から前記暗号化キーとは異なる別の暗号化キーを受信するステップと、
を更に具備する請求項６に記載のファームウェア更新方法。
【請求項１１】
マイクロコントローラと、
前記マイクロコントローラのファームウェアを記憶するメモリユニットと、を具備するハードディスクドライブであって、
前記ファームウェアは、新たなファームウェアを前記マイクロコントローラにダウンロードするリクエストに応答して前記マイクロコントローラに暗号化キーを生成させる命令を含むことを特徴とするハードディスクドライブ。
【請求項１２】
新たなファームウェアを前記マイクロコントローラにダウンロードするリクエストが前記マイクロコントローラによって受信される都度、新たな暗号化キーが生成されることを特徴とする請求項１１に記載のハードディスクドライブ。
【請求項１３】
前記暗号化キーは乱数として生成されることを特徴とする請求項１１に記載のハードディスクドライブ。
【請求項１４】
前記ファームウェアは、前記マイクロコントローラに前記暗号化キーを暗号化させ前記、暗号化された暗号化キーをホストに送信させる命令を更に含むことを特徴とする請求項１１に記載のハードディスクドライブ。
【請求項１５】
前記暗号化キーはホストで設定されたセッションキーを用いて暗号化されることを特徴とする請求項１１に記載のハードディスクドライブ。
【請求項１６】
前記ファームウェアは、前記マイクロコントローラに、前記ホストから受信された暗号化された新たなファームウェアを復号させ、前記新たなファームウェアを前記メモリユニットにロードさせる命令を更に含むことを特徴とする請求項１１に記載のハードディスクドライブ。
【請求項１７】
前記ファームウェアは、前記暗号化キーを前記ホストへ送信するのに先立って、前記マイクロコントローラに前記ユーザを認証させる命令を更に含むことを特徴とする請求項１１に記載のハードディスクドライブ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の各実施形態は情報記憶装置一般に関し、より具体的には、情報記憶装置においてファームウェアを更新する方法及びシステムに関する。
【背景技術】
【０００２】
コンピューティング(computing)において、ファームウェアは、例えばマイクロコントローラ(microcontroller)等のハードウェア装置に組み込まれたコンピュータプログラムである。ファームウェアはまた、フラッシュＲＯＭに備えることも、あるいはホストによって既存のハードウェアにアップロードできる二値画像ファイルとして備えることも可能である。その名が示すとおり、ファームウェアはハードウェアとソフトウェアのおよそ中間、すなわち、プロセッサのための機械語命令から成る、ハードウェア装置のプログラム可能なコンテンツ、あるいは固定機能装置(fixed-function device)、ゲートアレイ又はプログラム可能な論理装置の構成設定である。ソフトウェアと同様に、ファームウェアはマイクロプロセッサ又はマイクロコントローラによって実行されるコンピュータプログラムであるが、ファームウェアはハードウェアの特定の要素に密接に結びつき、当該要素のために書き込まれているため、一般には装置外であるという意味を有する。
【０００３】
ファームウェアは一般に、情報記憶装置において用いられ、特にディスクドライブ、光学記憶装置、固体記憶装置や磁気メディア等において用いられる。ファームウェアに共通する特徴は、追加のハードウェアを必要とせずにホストによって製造後に電気的に更新可能であることであり、例えば関連するハードウェアの機能性を向上させること、及び／又はファームウェアの旧バージョンにおける既知のバグのアドレスを指定することである。ファームウェアの更新は対象装置の機能を変更するよう修正できるため、あるいは既知の利用可能な脆弱性を有するバージョンは装置にロード可能であるため、情報記憶装置のファームウェアへのアクセスはしばしば規制される。例えばハードディスクドライブ（ＨＤＤ）の場合、ファームウェアの更新は、フラッシュメモリチップ内等の、ハードドライブアッセンブリに含まれる電子回路パッケージ内に存する。ＨＤＤファームウェアへの不正なアクセスを防ぐために、ファームウェアファイル(firmware file)、すなわちファームウェアイメージ(firmware image)はＨＤＤへダウンロードされる際に暗号化でき、ダウンロードされたファームウェアイメージへのアクセスは、ＨＤＤのパスワード保護といったセキュリティ対策(security measures)によって管理することができる。
【０００４】
ダウンロード処理では、ホストが、ファームウェアの暗号化されたバージョンをＨＤＤにダウンロードするが、このダウンロード処理の間、ホストとＨＤＤの間に生じる通信トラフィック(communication traffic)を権限のないユーザが「詮索(snoop)」するおそれがある。例えば、ラップトップのユーザによってＨＤＤに送信されるコマンドを監視するため、バスアナライザ(bus analyzer)がラップトップ上で使用されることがあり、ネットワークアナライザ(network analyzer)が、ＨＤＤへの遠隔ダウンロードセッション(remote-download session)中のネットワークトラフィックの監視に使用されることがある。このような通信トラフィックは通常、暗号化されたファームウェアファイル、これらのファイルを復号化するために必要な暗号化キー、更にはＨＤＤパスワードといったセキュリティ関係のファイルを含む。このようにセキュリティ関連のファイルは、ダウンロード処理の間、権限のないユーザによって監視され得る。暗号化キーの不正な知識は、暗号化されたファイルが復号される可能性を増大させる。権限のないユーザが暗号化されたファームウェアファイルの復号に成功すれば、同じタイプの全ての装置が潜在的に攻撃可能となる。
【０００５】
上述の観点から、情報記憶装置のためのファームウェア及び情報記憶装置への不正なアクセスの可能性を低減する、情報記憶装置のためのファームウェアを更新する方法が必要とされる。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
そこで、本発明は、新規且つ改善された、ファームウェアの安全なダウンロードのための方法及びシステムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の１又は複数の実施形態は、情報記憶装置のためのファームウェアを更新する方法を提供し、当該ファームウェアは、情報記憶装置によって生成された暗号化キーを用いてホストから情報記憶装置へと安全にダウンロードされる。
【０００８】
（１）一実施形態において、情報記憶装置のためのファームウェアを更新する方法は、ホストからファームウェアを更新するリクエストを受信するステップと、暗号化キーを生成することと、当該暗号化キーを当該ホストへ送信するステップと、前記暗号化キーによって暗号化される新たなファームウェアを当該ホストから受信するステップとを備える。
【０００９】
（２）前記暗号化キーは暗号化された形式でホストへ送信され、前記暗号化キーを暗号化するのに使用されるキーは前記ホストへ送信される前記暗号化キーとは異なることを特徴とする（１）に記載の方法。
【００１０】
（３）前記ホストからユーザ証明を受信するステップと、
前記ユーザ証明が認証されたら、前記暗号化キーを前記ホストへ送信するステップと、
を更に具備することを特徴とする（１）に記載の方法。
【００１１】
（４）前記固有のキーは乱数として生成されることを特徴とする（１）に記載の方法。
【００１２】
（５）前記ホストから受信された前記新たなファームウェアを、前記暗号化キーを用いて復号するステップと、
前記新たなファームウェアを用いて前記情報記憶装置を再プログラムするステップと、
を更に具備することを特徴とする（１）に記載の方法。
【００１３】
（６）他の実施形態において、情報記憶装置のためのファームウェアを更新する方法は、ファームウェアを更新するリクエストを当該情報記憶装置に送信するステップと、当該情報記憶装置から暗号化キーを受信するステップと、当該暗号化キーを用いて新たなファームウェアを暗号化するステップと、暗号化された当該新たなファームウェアを当該情報記憶装置に送信するステップとを備える。
【００１４】
（７）前記リクエスト及び前記暗号化された新たなファームウェアはネットワーク上で前記情報記憶装置へ送信されることを特徴とする（６）に記載の方法。
【００１５】
（８）前記暗号化キーは暗号化された形式で前記情報記憶装置から受信され、前記暗号化キーを暗号化するのに使用されるキーは前記情報記憶装置から受信される前記暗号化キーとは異なることを特徴とする（６）に記載の方法。
【００１６】
（９）前記新たなファームウェアを前記情報記憶装置へ送信するために、標準ダウンロード・マイクロコード・コマンドが用いられることを特徴とする（６）に記載の方法。
【００１７】
（１０）ファームウェアを更新する別のリクエストを前記情報記憶装置へ送信するステップと、
前記情報記憶装置から前記暗号化キーとは異なる別の暗号化キーを受信するステップと、
を更に具備する（６）に記載の方法。
【００１８】
（１１）本発明の一実施形態によれば、ハードディスクドライブは、マイクロコントローラと、当該マイクロコントローラのファームウェアを記憶するメモリユニットを備え、当該ファームウェアは、新たなファームウェアを当該マイクロコントローラにダウンロードするリクエストに応答して当該マイクロコントローラに暗号化キーを生成させる命令を含む。
【００１９】
（１２）新たなファームウェアを前記マイクロコントローラにダウンロードするリクエストが前記マイクロコントローラによって受信される都度、新たな暗号化キーが生成されることを特徴とする（１１）に記載のハードディスクドライブ。
【００２０】
（１３）前記暗号化キーは乱数として生成されることを特徴とする（１１）に記載のハードディスクドライブ。
【００２１】
（１４）前記ファームウェアは、前記マイクロコントローラに前記暗号化キーを暗号化させ前記、暗号化された暗号化キーをホストに送信させる命令を更に含むことを特徴とする（１１）に記載のハードディスクドライブ。
【００２２】
（１５）前記暗号化キーはホストで設定されたセッションキーを用いて暗号化されることを特徴とする（１１）に記載のハードディスクドライブ。
【００２３】
（１６）前記ファームウェアは、前記マイクロコントローラに、前記ホストから受信された暗号化された新たなファームウェアを復号させ、前記新たなファームウェアを前記メモリユニットにロードさせる命令を更に含むことを特徴とする（１１）に記載のハードディスクドライブ。
【００２４】
（１７）前記ファームウェアは、前記暗号化キーを前記ホストへ送信するのに先立って、前記マイクロコントローラに前記ユーザを認証させる命令を更に含むことを特徴とする（１１）に記載のハードディスクドライブ。
【発明の効果】
【００２５】
本発明によれば、新規且つ改善された、ファームウェアの安全なダウンロードのための方法及びシステムを提供することができる。
【図面の簡単な説明】
【００２６】
【図１】暗号化されたファームウェアのダウンロードを実行するよう構成され得る情報記憶装置を示すブロック図。
【図２】図１におけるプリント基板の構成要素を概略的に示すブロック図。
【図３】図２におけるシステムオンチップの構成要素を概略的に示すブロック図。
【図４】本発明の一実施形態に係る、ファームウェアイメージを情報記憶装置に安全にダウンロードする方法を示すフロー図。
【発明を実施するための形態】
【００２７】
本発明の各実施形態は、ファームウェアを情報記憶装置に安全にダウンロードする方法及びシステムを意図するものであり、ホストからダウンロードされたファームウェアイメージを符号化するために、情報記憶装置によって生成された暗号化キーが用いられる。より高い安全性のため、ファームウェアのダウンロードを受ける情報記憶装置は、それぞれのファームウェア・ダウンロード・リクエストに対して固有の暗号化キーを生成してもよい。加えて、暗号化キー自体は、情報記憶装置からホストへ送信される前に暗号化されてもよい。
【００２８】
図１は、暗号化されたファームウェアのダウンロードを実行するよう構成され得る情報記憶装置、すなわちディスクドライブ１００の一実施形態を示すブロック図である。ディスクドライブ１００の機械的な構成要素は、スピンドルモータ１０２によって回転される磁気ディスク１０１、サスペンションアーム１０３の一端に配置された読み出し／書き込みヘッド１０４を含む。アームアクチュエータ１０５はサスペンションアーム１０３に連結され、磁気ディスク１０１の異なるトラックにアクセスするため要求のとおりにアーム１０３を動かす。ディスクドライブ１００の電子的な構成要素は、プリント基板ＰＣＢ２００及びプリアンプ(pre-amplifier)１０７を含み、後者は読み出し／書き込みヘッド１０４に電気的に接続されている。プリアンプ１０７は、読み出し／書き込みヘッド１０４への信号、及び読み出し／書き込みヘッド１０４からの信号を調節し増幅する。ＰＣＢ２００は、ディスクドライブ１００を動作させるために、システムオンチップ(system-on-chip)（ＳｏＣ）、ＲＡＭ、及び他の集積回路を含み、以下では図２及び図３に関連して説明される。図示の通り、ＰＣＢ２００は、電気的接続１０６を介してプリアンプ１０７に、電気的接続１０８を介してスピンドルモータ１０２に、電気的接続１０９を介してアームアクチュエータ１０５に電気的に接続される。ＰＣＢ２００は、ホスト９０とケーブル１１０を介して通信するが、ケーブル１１０はＳＡＴＡ、ＰＡＴＡ、ＳＣＳＩ又は他のインタフェースであってもよい。ホスト９０は、ラップトップコンピュータやデスクトップコンピュータであっても、あるいはセットトップボックス、テレヴィジョンやビデオプレーヤのような装置であってもよく、これはＬＡＮあるいはＷＡＮを通じて記憶装置にアクセスする遠隔コンピューティング装置又はコンピュータに含まれる暗号化可能な記憶装置の１又は複数のセクタへのアクセスを要求する。
【００２９】
図２は、図１におけるＰＣＢ２００の構成要素を概略的に示すブロック図である。ＰＣＢ２００はＳｏＣ３００、ＤＲＡＭ２０２、フラッシュメモリ２０１、及びコンボチップ２０３を含み、ＤＲＡＭ２０２はＳｏＣ３００の内部にあっても外部にあってもよく、コンボチップ２０３はスピンドルモータ１０２とアームアクチュエータ１０５を駆動する。コンボチップ２０３はまた、ＳｏＣ３００、プリアンプ１０７及びＳｏＣ３００に含まれるモーターコントローラのための電圧レギュレータを含む。図示のように、フラッシュメモリ２０１とＤＲＡＭ２０２はＳｏＣ３００に電気的に連結され、ＳｏＣ３００は、ケーブル１１０を介してホストと、電気的接続１０６を介してプリアンプ１０７と、シリアルバス２０４を介してコンボチップ２０３とインタフェースする。実施形態によっては、フラッシュメモリ２０１はＳｏＣ３００内に存在する。ディスクドライブ１００のファームウェアはフラッシュメモリ２０１内に存在する。
【００３０】
別の構成においては、変更不能なファームウェアのごく一部がＳｏＣ３００内のリードオンリーメモリ内に存在し、ファームウェアの大部分は磁気ディスク１０１上に存在し、電源投入直後にロードされる。磁気ディスク１０１上に存在するファームウェアは、以下に述べる本発明の実施形態に従って、更新され得る。
【００３１】
図３は、図２におけるＳｏＣ３００の構成要素を概略的に示すブロック図である。ＳｏＣ３００は、ディスクドライブ１００がファームウェアを安全にダウンロードするのに必要な制御及び暗号化／復号化動作を実行するように構成された、特定用途向け集積回路(application-specific integrated circuit)（ＡＳＩＣ）である。ＳｏＣ３００は特定の機能を実行するよう設計された多数の機能ブロックを含む。プロセッサ３０１はディスクドライブ１００の動作を制御するよう構成されたマイクロコントローラであり、図示のように、ＳｏＣ３００の他の機能ブロックと通信するための入力／出力機能性及びＲＡＭを含む。一実施形態において、プロセッサ３０１は、ＰＣＢ２００上でフラッシュメモリ２０１の近くに配置されるよりもむしろ、フラッシュメモリ２０１を内部に伴って構成されてもよい。ＳＡＴＡブロック３０２は、ケーブル１１０を介してホストへ信号を送信しホストから信号を受信するＳｏＣ３００に含まれる入力／出力ブロックである。コンボチップＩ／Ｏブロック３０９は、シリアルバス２０４を介したプロセッサ３０１とコンボチップ２０３との間の通信専用のＩ／Ｏブロックである。プロセッサ３０１はまた、ディスクドライブ１００とホスト間のデータトラフィック、特に暗号化キー等のセキュリティ関係のトラフィックを暗号化及び復号化するよう構成されている。
【００３２】
暗号化／復号化ブロック３０３は、プロセッサ３０１の制御下にあり、ＳＡＴＡブロック３０２とＳｏＣ３００の他の全ての構成要素との間のデータパスに配置され、安全な記憶のため入ってくるデータを暗号化し、ホストによる使用のため出ていくデータを復号する。すなわち、暗号化／復号化ブロック３０３は、ＳＡＴＡブロック３０２を介してホストから入力データ（例えば書き込みデータ）を受信して暗号化し、ＳＡＴＡブロック３０２を介してホストへ出力データ（例えばディスクドライブ１００からアクセスされた読み出しデータ）を復号して送信する。暗号化／復号化ブロック３０３は、暗号化キーを保持しデータトラフィックの暗号化／復号化の間データをバッファするメモリに加えて所望の暗号化アルゴリズムを実施する状態機械(state machine)も含む。動作中、暗号化／復号化ブロック３０３は、ホストからのデータを暗号化されていない形式で受信する。適切な暗号化キーが、入ってくるデータと共に用いられるために提供されると、当該データは暗号化／復号化ブロック３０３によって暗号化され、ＤＲＡＭ２０２又は磁気ディスク１０１に記憶される。ホストが記憶されたデータを取り出す場合、暗号化されていないデータをホストが受信するよう、暗号化／復号化ブロック３０３は、ＳＡＴＡブロック３０２による送信に先立ってデータを復号する。
【００３３】
ＤＲＡＭコントローラ３０４は、ディスクドライブ１００の適切な動作についての必要に応じて、暗号化／復号化ブロック３０３、プロセッサ３０１、読み出し／書き込みチャネル３０５及びエラー訂正及び生成ブロック３０６からＤＲＡＭ２０２へアクセスできるようにして、ＤＲＡＭ２０２をリフレッシュしＤＲＡＭ２０２の使用を調整する。ＤＲＡＭ２０２は、磁気ディスク１０１に書き込まれている又は磁気ディスク１０１から読み出されているデータ、暗号化の後ホストから受信されるデータのＤＲＡＭバッファとして機能する。ＤＲＡＭ２０２は、図示のようにＳｏＣ３００の外部にあってもよいが、あるいはＳｏＣ３００内に含まれる機能ブロックの１つを構成してもよい。磁気ディスク１０１からのエラーの無いデータ取り出しのためには、復号化及びホストへの送信のためにデータがＤＲＡＭ２０２にバッファされる前に、エラー訂正ブロック３０６は磁気ディスク１０１から読み出されたデータに対してエラー訂正を適用する。加えて、データが磁気ディスク１０１に書き込みされている時は、エラー訂正ブロック３０６は、磁気ディスク１０１からのデータ読み出しについてエラー訂正が可能となるように、当該データに情報を付加する。
【００３４】
ホストが磁気ディスク１０１からデータを読み出すにためは、読み出し／書き込みヘッド１０４によって磁気ディスク１０１からデータが読み出され、プリアンプ１０７によって調整され、電気的接続１０６Ａによってアナログ・デジタル変換器３０７へアナログ信号として運ばれる。アナログ・デジタル変換器３０７はアナログ信号をデジタル信号３１１に変換し、デジタル信号３１１はスプリッタブロック３０８に送られる。モータ１０５を用いるアームアクチュエータ１０３及びスピンドルモータ１０２の最適な制御のため、スプリッタブロック３０８は、デジタル信号３１１から、適切なサーボ関連のデータをサーボブロック３１０へ送る。スプリッタブロック３０８は、ホストによって要求されたデータを読み出し／書き込みチャネル３０５へ送り、読み出し／書き込みチャネル３０５はエラー訂正ブロック３０６を介して当該データをＤＲＡＭ２０２に送るが、これは当該データが復号され及びホストに送信され得るまでバッファするためである。
【００３５】
ホストによる磁気ディスク１０１上へのデータの記憶のため、暗号化されたデータは必要に応じてＤＲＡＭ２０２にバッファされ、エラー訂正ブロック３０６を介した後、読み出し／書き込みチャネル３０５へ送られる。読み出し／書き込みチャネル３０５はその後電気的接続１０６Ｂを介してプリアンプ１０７へデジタル信号を送り、プリアンプ１０７は、読み出し／書き込みヘッド１０４が磁気ディスク１０１に暗号化されたデータを書き込めるように、デジタル信号を調節及び増幅する。暗号化されたデータはディスクドライブ１００に含まれる記憶メディア、たとえばＤＲＡＭ２０２や磁気ディスク１０１内に存在することが、当業者には理解されるだろう。
【００３６】
図４は、本発明の一実施形態による、ハードディスクドライブといった情報記憶装置にファームウェアイメージを安全にダウンロードする方法４００を示すフロー図である。例えば、方法４００は、本明細書中に述べるように、図１におけるディスクドライブ１００と構成及び動作が同様のディスクドライブで実行されてもよい。方法４００を構成するステップは２列に配列されるが、ホストによって実行されるステップは左の列に配置され、記憶装置によって実行されるステップは右の列に配置される。
【００３７】
ステップ４０１では、ホストと記憶装置の間に通信セッションが設定される。本明細書中に説明される実施形態においては、ネットワーク上のトラフィックを観察する誰もが伝送されるメッセージを読むことができないよう、通信セッションは暗号化される。ホスト及び記憶装置は、ユーザが記憶装置に―ネットワークユーザがネットワーク端末にログインするのとほぼ同じ方法で―ログインすると、通信セッションを設定する。ホストはラップトップ又はデスクトップコンピュータであってよく、ハードディスクドライブといった当該コンピュータに含まれる暗号化可能な記憶装置の１又は複数のセクタへのアクセス、すなわち書き込み／読み出し権限をリクエストする。あるいは、ホストは例えばネットワークコンピュータ又はターミナル等の遠隔コンピューティング装置であってもよく、ＬＡＮ又はＷＡＮを通じて当該記憶装置にアクセスする。権限のないユーザによる記憶装置へのアクセスを防ぐため、記憶装置のためのファームウェアをダウンロードする能力と同様に、記憶装置の一部又は全部はパスワード保護されている。一実施形態において、特定の許諾レベルを設定するため、例えば、ホストは、ユーザＩＤ及び関連するアクセスコードといったある種のユーザ証明(user credential)を記憶装置に送信する必要がある。許諾レベルが異なれば、記憶装置の異なる部分へのアクセス及び／又は記憶装置へのファームウェアのダウンロード許可が与えられる。
【００３８】
一実施形態においては、ダブルパスワード(double password)スキームがログインの認証に用いられる。このようなアプローチでは、２部パスワード(two part password)及び固有のキー暗号化キー(key encryption key)（ＫＥＫ）が各“ユーザ”に関連付けられる。パスワードの第１部分Ｐ１、パスワードの第２部分Ｐ２、及びＫＥＫは固定値の乱数又は英数字の組み合わせであって、ユーザごとに異なり、以下に述べるように暗号化キーとして用いられる。Ｐ１、Ｐ２及びＫＥＫは、例えば２５６ビットの大きな数であり、従って、推測し難い。ＫＥＫは、例えばＡＥＳ(advanced encryption standard)キーラップ(key-wrap)プロトコルで用いられてもよく、記憶装置及びホストメモリ双方により既知である、すなわち記憶装置及びホストメモリ双方の内部に存在する。しかしながら、記憶装置において２部パスワードは暗号化されない形式では保持されない。従って、特定のホストログインに要する全ての情報は記憶装置上に存在しない。代わりに、ユーザが記憶装置上で最初に設定されると、Ｐ２はＰ１を暗号化キーとして用いて暗号化され記憶装置に記憶される。暗号化されないＰ１はその後、ユーザ・セットアップ・プロシージャ(user setup procedure)の一部として記憶装置から消去される。一実施形態において、ＡＥＳ−２５６を利用しＰ１を暗号化キーとして用いてＰ２が暗号化される。
【００３９】
ホストと記憶装置の間で安全な通信セッションを設定するには、Ｐ１及びＰ２はホストから記憶装置に第１のパッケージ、すなわちパッケージ１で送られる。パッケージ１を形成するには、Ｐ２がホストソフトウェアによって選択された乱数又は英数字の組み合わせＲ１と混合される。２つの数を混合する技術的に知られた一例は、ＸＯＲ演算である。Ｐ１はその後、Ｐ２−Ｒ２の組み合わせに連結されるか、そうでなければ当該組み合わせと共にパッケージされる。パッケージ１はその後、ホストに関連するＫＥＫを用いてキーラップされ(key-wrapped)、記憶装置に送られる。記憶装置は、記憶装置内に存在するＫＥＫを用いてパッケージ１をアンラップ(unwrap)する。記憶装置はその後、Ｐ１を暗号化キーとして用いて、現在ログインしているホストに関連する記憶装置内に存在するＰ２の暗号化されたバージョンを復号する。Ｐ２が与えられると、記憶装置はＰ２及びＲ１の混合を解くことができる。Ｒ１はここでホスト及び記憶装置に知られ、固有セッションキー(unique session key)あるいは２部分からなる固有セッションキーの一部として使用され得る。固有セッションキーの使用は、所定のホスト及びＫＥＫと関連する一方向性関数(one-way function)についてＫＥＫの完全な知識があったとしても、権限のない人員には記憶装置とホストの間のデータトラフィックを復号できないことを保証する。
【００４０】
より堅固なセッションキーのため、第２の乱数又は英数字の組み合わせＲ２が記憶装置によって以下の方法で生成される。Ｐ１、Ｐ２及びＲ１が決定されると、記憶装置はＲ２をＰ２と混合して（例えば、Ｒ２及びＰ２にＸＯＲ演算を実行することによって）パッケージ２を形成する。記憶装置はＫＥＫを用いてパッケージ２をキーラップし、暗号化されたパッケージ２をホストへ送信する。ホストはその後、パッケージ２をアンラップしてＰ２からＲ２の混合を解き、ホスト及び記憶装置の両方がＲ１及びＲ２の値を得て、その結果Ｒ１とＲ２の組み合わせを固有セッションキーとして使用できるようにする。これ以降、ホストと記憶装置との間のデータトラフィックは、Ｒ１及びＲ２で構成される固有セッションキーを用いて暗号化できる。
【００４１】
このように、安全性の向上のため、暗号化キーを明白に送信することなく、また記憶装置アクセスを設定するのに要する全ての情報を記憶装置上に記憶することなく、ホスト及び記憶装置の間で固有セッションキーを設定することができる。いったん安全な通信セッションが設定されると、ホストと記憶装置間でのその後のデータトラフィックは詮索から保護されるが、これは全てのデータトラフィックがＲ１及びＲ２からなる固有セッションキーを用いて暗号化されるためである。これらの技術の詳細な説明はまた、２００８年３月３１日に提出された「記憶装置及び暗号化方法」と題された米国特許出願１２／０６０，１８２に基づく日本出願２００９−０１８５９３に記載されている。当業者には、ホストと記憶装置の間で安全な通信セッションを設定するのに、他のログインスキームもまたステップ４０１において用いられてもよいことが理解されるだろう。
【００４２】
ステップ４０２では、ユーザはホストを介して、ファームウェアを記憶装置にダウンロードする許可をリクエストする。このリクエストは、Ｒ１及びＲ２から生成された固有セッションキーによってもたらされる安全なデータ交換を通じて成される。
【００４３】
ステップ４０３では、記憶装置は、固有セッションキーを用いてホストから受信したデータトラフィックを復号することによって、当該リクエストを受信する。
【００４４】
ステップ４０４では、記憶装置はユーザがファームウェアダウンロード権を有するかを確認する。この権利は、ユーザが最初に設定される際に、記憶装置において定義される。例えば、ダウンロード権は通常、管理役を果たすユーザに与えられる。
【００４５】
ステップ４０５では、記憶装置はファームウェアダウンロード権を持たないユーザを決定しており、ユーザがファームウェアを記憶装置にダウンロードするための許可は拒否される。
【００４６】
ステップ４０６では、記憶装置はファームウェアダウンロード権を有するユーザを決定しており、記憶装置は“許可スリップ(permission slip)”を発行する。許可スリップの一例は、暗号化キーである。安全性の向上のため、許可スリップは、記憶装置によって生成された乱数に基づく使い捨ての暗号化キーであってもよく、従って一回のファームウェアダウンロードに対してのみ有効である。ホストが別のファームウェアダウンロードの許可をリクエストすると、ステップ４０３〜４０５が記憶装置によって繰り返される。詮索に対する安全のため、許可スリップはＫＥＫを用いてキーラップされ、ラップされた許可スリップを含むデータトラフィックはＲ１及びＲ２に基づく固有セッションキーを用いて暗号化される。
【００４７】
ステップ４０７では、ホストはセッションキー及びＫＥＫを用いて記憶装置が提供する暗号化された許可スリップを受信して復号し、２つの暗号化の層をアンラップする。
【００４８】
ステップ４０８では、ホストは許可スリップを暗号化キーとして用いてファームウェアイメージを暗号化する。一実施形態において、許可スリップを得るために用いられたのと同様のトラフィックのスタイルを用いて、暗号化されたファームウェアイメージがディスクドライブに届くと、セッションキーを用いる更なる暗号化の層が使用される。
【００４９】
ステップ４０９では、ホストはファームウェアを記憶装置にダウンロードする。一実施形態においては、これはスタンダードＡＴＡダウンロード・マイクロコード・コマンド(standard ATA download microcode command)を用いて行われる。
【００５０】
ステップ４１０では、記憶装置は、暗号化されたファームウェアダウンロードを受信する。
【００５１】
ステップ４１１では、許可スリップを用いて、また、もし更なる暗号化の層が使われていればまずセッションキーを用いて、記憶装置は暗号化されたファームウェアダウンロードを復号する。
【００５２】
ステップ４１２では、記憶装置はファームウェアダウンロードを装置の必須のフラッシュメモリブロックに実装する。ファームウェアの可変部分が磁気ディスク上に存在する実施形態では、このステップは磁気ディスク上に存在するファームウェアを更新する。
【００５３】
加えて、スタンダードＡＴＡダウンロード・マイクロコード関数呼び出しといった関数呼び出しのため、監査ログ(audit log)が記憶装置によって保持される。この関数呼び出しの開始時に、監査ログでは新しいエントリが生成される。この関数が実行されると、この関数を呼び出した認証されたユーザについてのデータを含んで、この新しいエントリのフィールドが満たされる。この関数が終了すると、その最終状態が満たされる。
【００５４】
方法４００は、本明細書中で説明されるように、ファームウェアを記憶装置にダウンロードするための当技術分野で既知の方法よりも多くの利点をもたらす。第１に、ホストと記憶装置の間で安全なリンクを設定するために用いられる他の暗号化スキームに加えて、ファームウェアダウンロードは更なる暗号化の層で、すなわち許可スリップで保護される。第２に、ファームウェアダウンロードについて、パスワード強度が保証される。ユーザが選択したパスワードとは異なり、方法４００の許可スリップは盗まれたり推測されたりはされ得ないが、このようなことは一般に、例えば日付、名前等の弱いパスワードがユーザによって選択される場合に生じる。これは、許可スリップが、プログラム可能な装置により自動化された方法で選択された乱数に基づくためである。第３に、複数のファームウェアダウンロードセッションは、同じ通信セッション中に同じユーザによって実行されたとしても、記憶装置の安全性をそれほどには損ねないが、これは、個々のファームウェダウンロードリクエストについて、固有の許可スリップがホストに対して発行されるためである。
【００５５】
方法４００はその上、他の利点も有する。第１に、ファームウェアの更新は現在認証された機能である。装置のためにファームウェアを有することは充分ではない。ユーザは特定の記憶装置について管理者の役割を負う権限を受けなくてはならず、またファームウェアをダウンロードする権利を予め与えられていなくてはならない。第２に、当該更新は既存のホストインタフェース“ダウンロード・マイクロコード”機能及びこれをサポートする何らかの関連するインフラストラクチャを用いる。第３に、許可スリップのリクエスト及び結果としてもたらされるファームウェアイメージは、何者にもコンテンツの詮索が可能となること無しに、ネットワーク上で配信され得る。
【００５６】
上記の記載は本発明の各実施形態を対象にしているが、本発明の他の更なる実施形態が本発明の基本的な範囲を逸脱することなく考案されてもよく、本発明の範囲は以下の特許請求の範囲によって決定される。
【符号の説明】
【００５７】
９０…ホスト、１００…ディスクドライブ、１０１…磁気ディスク、１０２…スピンドルモータ、１０３…サスペンションアーム、１０４Ａ，Ｂ…読み出し／書き込みヘッド、１０５…アクチュエータアーム、１０６、１０８、１０９…電気的接続、１０７…プリアンプ、１１０…ケーブル、２００…プリント基板
【図１】
2010020750.tif 000003
【図２】
2010020750.tif 000004
【図３】
2010020750.tif 000005
【図４】
2010020750.tif 000006