(57)【要約】【課題】ソリッドステートドライブに対する重要動作を認証するためのシステム及び方法を提供する。【解決手段】方法は、ソリッドステートドライブへの動作命令及び保安資格を受信する段階と、保安資格及び保安資格に基づいてエンコーディングされ、ソリッドステートドライブに格納される保安認証書を含む非同期式イベントをソリッドステートドライブにおいて認証エージェントに発行する段階と、保安資格及び保安認証書を認証エージェントから認証サーバーに伝達する段階と、認証サーバーにおいて保安資格に基づいて保安認証書の有効性を確認する段階と、有効性確認応答を認証サーバーから認証エージェントに提供する段階と、有効性確認応答を認証エージェントからソリッドステートドライブに伝達する段階と、有効性確認応答に基づいて動作命令を実行する段階と、を含む。【選択図】図２
2018041448.tif 000002
【特許請求の範囲】
【請求項１】
ソリッドステートドライブに対する重要動作を認証する方法であって、  
ソリッドステートドライブへの動作命令及び保安資格（ｓｅｃｕｒｉｔｙ  ｃｒｅｄｅｎｔｉａｌ）を受信する段階と、
前記保安資格及び前記保安資格に基づいてエンコーディングされ、前記ソリッドステートドライブに格納される保安認証書（ｓｅｃｕｒｉｔｙ  ｃｅｒｔｉｆｉｃａｔｅ）を含む非同期式イベントを前記ソリッドステートドライブにおいて認証エージェント（ａｕｔｈｅｎｔｉｃａｔｉｏｎ  ａｇｅｎｔ）に発行する段階と、
前記保安資格及び前記保安認証書を前記認証エージェントから認証サーバーに伝達する段階と、
前記認証サーバーにおいて前記保安資格に基づいて前記保安認証書の有効性を確認する段階と、
有効性確認応答を前記認証サーバーから前記認証エージェントに提供する段階と、
前記有効性確認応答を前記認証エージェントから前記ソリッドステートドライブに伝達する段階と、
前記有効性確認応答に基づいて前記動作命令を実行する段階と、を含むことを特徴とする方法。
【請求項２】
前記保安資格は、パスフレーズ（ｐａｓｓｐｈｒａｓｅ）であることを特徴とする請求項１に記載の方法。
【請求項３】
前記認証エージェントは、前記ソリッドステートドライブが連結されたホストコンピュータ上において実行されるサービスであることを特徴とする請求項１に記載の方法。
【請求項４】
前記ホストコンピュータの装置ドライバーは、前記動作命令を受信し、前記ソリッドステートドライブの制御及び動作を管理することを特徴とする請求項３に記載の方法。
【請求項５】
複数のソリッドステートドライブは、ホストコンピュータに連結され、
一連の非同期式イベントを前記複数のソリッドステートドライブから前記認証エージェントに発行する段階をさらに含むことを特徴とする請求項１に記載の方法。
【請求項６】
保安スキーム（ｓｅｃｕｒｉｔｙ  ｓｃｈｅｍｅ）を利用して前記認証エージェント及び前記認証サーバーの間の保安通信チャンネルを設定する段階をさらに含み、
前記保安スキームは、保安ソケット階層（ｓｅｃｕｒｅ  ｓｏｃｋｅｔｓ  ｌａｙｅｒ、ＳＳＬ）又は伝送階層保安（ｔｒａｎｓｐｏｒｔ  ｌａｙｅｒ  ｓｅｃｕｒｉｔｙ、ＴＬＳ）であることを特徴とする請求項１に記載の方法。
【請求項７】
前記有効性確認応答は、入出力制御（Ｉ／Ｏ  ｃｏｎｔｒｏｌ、ＩＯＣＴＬ）呼出を通じて前記認証サーバーから前記認証エージェントに提供されることを特徴とする請求項１に記載の方法。
【請求項８】
前記ソリッドステートドライブは、イーサーネット（登録商標）ネットワークに直接連結可能なイーサーネット（登録商標）ソリッドステートドライブであることを特徴とする請求項１に記載の方法。
【請求項９】
前記認証サーバーは、重要動作を前記ソリッドステートドライブに通知し、重要動作検査器は、前記重要動作のみに対して非同期式イベントを前記認証エージェントに発行することを特徴とする請求項１に記載の方法。
【請求項１０】
前記動作命令は、ネットワークに連結されたソリッドステートドライブのネームスペースに対するフォーマット命令、削除命令、生成命令、及びサイズ変更命令の中の１つであることを特徴とする請求項１に記載の方法。
【請求項１１】
前記認証サーバーのデータベースにおいて管理者（ａｄｍｉｎｉｓｔｒａｔｏｒ）から受信された第２番目の保安資格を格納する段階と、
初期化の間に前記認証エージェントによって前記ソリッドステートドライブの識別番号（ｉｄｅｎｔｉｆｉｃａｔｉｏｎ  ｎｕｍｂｅｒ、ＩＤ  ｎｕｍｂｅｒ）をスキャンする段階と、
前記認証エージェントから前記認証サーバーに前記ソリッドステートドライブの前記識別番号を提供する段階と、
前記認証サーバーにおいて前記管理者から受信された前記第２番目の保安資格に基づいて前記保安認証書を生成する段階と、
前記保安認証書を前記認証エージェントに提供する段階と、
前記保安認証書を前記ソリッドステートドライブに格納する段階と、をさらに含むことを特徴とする請求項１に記載の方法。
【請求項１２】
ユーザーからソリッドステートドライブへの動作命令を受信する段階と、
前記ユーザーにチャレンジ質問を提示する段階と、
前記チャレンジ質問に対するユーザー提供答弁を受信する段階と、
前記ユーザー提供答弁と前記ユーザーと連関された前記チャレンジ質問に対する答弁とを比較する段階と、
前記ユーザー提供答弁及び前記ユーザーと連関された前記チャレンジ質問に対する前記答弁の間に比較結果に基づいて前記動作命令を実行する段階と、を含むことを特徴とする方法。
【請求項１３】
前記ユーザーに対する識別子を含む非同期式イベントを認証エージェントに発行する段階と、
保安資格を前記認証エージェントにおいて認証サーバーに伝達する段階と、
前記チャレンジ質問を前記認証サーバーにおいて前記認証エージェント及び前記ソリッドステートドライブに提供する段階と、をさらに含むことを特徴とする請求項１２に記載の方法。
【請求項１４】
前記ユーザー提供答弁を含む第２番目の非同期式イベントを前記認証エージェントに発行する段階と、
前記ユーザー提供答弁を前記認証エージェントから前記認証サーバーに伝達する段階と、
前記ユーザー提供答弁と前記認証サーバーに格納された検証答弁とを比較して前記ユーザー提供答弁の有効性を確認する段階と、
有効性確認応答を前記認証サーバーから前記認証エージェントに提供する段階と、
前記有効性確認応答を前記認証エージェントから前記ソリッドステートドライブに伝達する段階と、
前記有効性確認応答に基づいて前記動作命令を実行する段階と、をさらに含むことを特徴とする請求項１３に記載の方法。
【請求項１５】
１つ以上の不揮発性メモリ装置と、
ホストコンピュータへのインターフェイスと、
ファームウェアドライバーと、を含み、
前記ファームウェアドライバーは、
前記インターフェイスを通じて動作命令及び保安資格を受信し、
前記保安資格及び保安認証書を含む非同期式イベントを認証エージェントに発行し、
前記認証エージェントから有効性確認応答を受信し、
前記有効性確認応答に基づいて前記動作命令を実行し、
前記保安認証書は、前記保安資格に基づいてエンコーディングされ、ソリッドステートドライブに格納されることを特徴とするソリッドステートドライブ。
【請求項１６】
前記認証エージェントは、前記保安資格及び前記保安認証書を認証サーバーに伝達し、前記認証サーバーは、前記認証サーバーのデータベースに格納された第２番目の保安資格に基づいて前記保安認証書の有効性を確認し、前記有効性確認応答を生成することを特徴とする請求項１５に記載のソリッドステートドライブ。
【請求項１７】
イーサーネット（登録商標）ネットワークに直接連結可能なイーサーネット（登録商標）ソリッドステートドライブであることを特徴とする請求項１５に記載のソリッドステートドライブ。
【請求項１８】
前記動作命令は、ネットワークに連結されたソリッドステートドライブのネームスペースに対するフォーマット命令、削除命令、生成命令、及びサイズ変更命令の中の１つであることを特徴とする請求項１５に記載のソリッドステートドライブ。
【請求項１９】
前記ファームウェアドライバーは、
前記認証エージェントから初期化要請を受信し、
前記初期化要請に応答して識別番号を前記認証エージェントに提供し、
前記認証エージェントから前記保安認証書を受信し、
メタデータとして前記ソリッドステートドライブに前記保安認証書を格納することを特徴とする請求項１５に記載のソリッドステートドライブ。
【請求項２０】
認証サーバーと、
認証エージェントが実行されるホストコンピュータと、
複数のソリッドステートドライブと、を含み、
前記認証エージェントは、初期化の間に前記認証サーバーとの保安通信チャンネルを設定し、
前記複数のソリッドステートドライブの各々は、ファームウェアドライバーを含み、前記ファームウェアドライバーは、
前記ホストコンピュータにおいて実行される装置ドライバーを通じて動作命令及び保安資格を受信し、
前記保安資格及び保安認証書を含む非同期式イベントを前記認証エージェントに発行し、
前記保安認証書は、前記保安資格に基づいてエンコーディングされ、前記複数のソリッドステートドライブの各々に格納され、
前記認証サーバーは、前記保安認証書の有効性を確認し、前記保安通信チャンネルを通じて有効性確認応答を前記認証エージェントに提供し、
前記複数のソリッドステートドライブの各々の前記ファームウェアドライバーは、前記有効性確認応答に基づいて前記動作命令を実行することを特徴とする認証システム。
【請求項２１】
前記ファームウェアドライバーは、
前記認証エージェントから初期化要請を受信し、
前記初期化要請に応答して識別番号を前記認証エージェントに提供し、
前記認証エージェントから前記保安認証書を受信し、
メタデータとして前記ソリッドステートドライブに前記保安認証書を格納することを特徴とする請求項２０に記載の認証システム。
【請求項２２】
前記複数のソリッドステートドライブの各々は、イーサーネット（登録商標）ネットワークに直接連結可能なイーサーネット（登録商標）ソリッドステートドライブであることを特徴とする請求項２０に記載の認証システム。
【請求項２３】
前記動作命令は、ネットワークに連結されたソリッドステートドライブのネームスペースに対するフォーマット命令、削除命令、生成命令、及びサイズ変更命令の中の１つであることを特徴とする請求項２０に記載の認証システム。
【請求項２４】
前記ソリッドステートドライブは、前記認証サーバーによって提供されるチャレンジ及び応答を処理することを特徴とする請求項２０に記載の認証システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般的なソリッドステートドライブ（ｓｏｌｉｄ−ｓｔａｔｅ  ｄｒｉｖｅｓ、ＳＳＤ）に係り、さらに詳細には、ソリッドステートドライブに対する重要（ｃｒｉｔｉｃａｌ）動作を認証する方法、ソリッドステートドライブ、及び認証システムに関する。
【背景技術】
【０００２】
ソリッドステートドライブは管理目的に使用される命令の集合を支援する。このような管理命令の中の一部は本質的に破壊的であり（ｄｉｓｒｕｐｔｉｖｅ）、復旧できないデータ損失を惹起する。このような破壊的な命令の例示はフォーマット命令、ネームスペース削除命令、ファームウェアアップデート命令等である。フォーマット命令はソリッドステートドライブ上の論理ブロックアドレス（ｌｏｇｉｃａｌ  ｂｌｏｃｋ  ａｄｄｒｅｓｓｅｓ、ＬＢＡｓ）を解除し、論理ブロックアドレスのコンテンツを消去する。ネームスペース削除命令は命令内の特定のネームスペースと関連された論理ブロックアドレスを解除する。ファームウェアアップデート命令はソリッドステートドライブ上の動作ファームウェアをアップデートする。
【０００３】
このような破壊的な管理命令はルート権限（ｒｏｏｔ  ｐｒｉｖｉｌｅｇｅｓ）を有するユーザーによってのみに実行される。一般的に、ルート権限は管理命令の有効性を確認するために利用可能である唯一の保安階層（ｓｅｃｕｒｉｔｙ  ｌａｙｅｒ）である。図１は管理命令を実行するための従来技術の認証スキーム１００を図示する。管理命令１１１は命令ラインユーティリティープログラム（ｃｏｍｍａｎｄ  ｌｉｎｅ  ｕｔｉｌｉｔｙ  ｐｒｏｇｒａｍ）の命令ラインインターフェイス（ｃｏｍｍａｎｄ  ｌｉｎｅ  ｉｎｔｅｒｆａｃｅ、ＣＬＩ）又はホストオペレーティングシステム（ｈｏｓｔ  ｏｐｅｒａｔｉｎｇ  ｓｙｓｔｅｍ、ｈｏｓｔ  ＯＳ）１１０からのアプリケーションを利用してソリッドステートドライブ１３０へ発行される。命令ラインユーティリティー又はアプリケーションはホストオペレーティングシステム１１０のユーザー空間（ｕｓｅｒ  ｓｐａｃｅ）において実行される。管理命令１１１はソリッドステートドライブ１３０の制御及び動作を管理する装置ドライバー１２０に送られる。装置ドライバー１２０はホストオペレーティングシステム１１０のカーネル（ｋｅｒｎｅｌ）空間又はユーザー空間において実行される。装置ドライバー１２０はソリッドステートドライブ１３０のファームウェアに管理命令１１１を伝達する。ソリッドステートドライブファームウェアは管理命令１１１によって指示された通りにソリッドステートドライブ１３０上の実際動作を遂行する。管理命令１１１が完了すれば、ソリッドステートドライブファームウェアは装置ドライバー１２０に応答１２１（例えば、成功又は失敗）を返信する。その次に装置ドライバー１２０は応答１２１を管理命令１１１が発行されたホストオペレーティングシステム１１０に返信する。
【０００４】
伝統的に、ルート権限があるユーザー（ｒｏｏｔ−ｐｒｉｖｉｌｅｇｅｄ  ｕｓｅｒ）のみが重要動作命令を開始できる。ルート権限が損傷されれば、このような重要動作命令は復旧できないデータ損失を惹起する。図１の従来技術の認証スキーム１００は命令が既に認証され、必要である許可（ｐｅｒｍｉｓｓｉｏｎｓ）を有すると仮定する。このような管理命令は普通‘‘権限がある’’動作として構成される。ホストオペレーティングシステム１１０の実行環境（ｒｕｎｔｉｍｅ  ｅｎｖｉｒｏｎｍｅｎｔ）は命令を実行するために適切な権限（例えば、スーパーユーザー（ｓｕｐｅｒ−ｕｓｅｒ））を確認する。従来技術の認証スキーム１００は、ユーザー資格（ｕｓｅｒ  ｃｒｅｄｅｎｔｉａｌｓ）が損傷されれば、悪意のある意図（ｍａｌｉｃｉｏｕｓ  ｉｎｔｅｎｔ）により発行された破壊的な命令を中断する予防メカニズムを有さないので、脆弱である。ソリッドステートドライブ１３０は発行された命令が意図されたものであることを保障する何らかのメカニズムも有さない。ソリッドステートドライブ１３０に発行された損傷された管理命令はソリッドステートドライブ１３０上の永久的で、取り返しのつかないデータ損失を惹起する。
【０００５】
正当な（ｌｅｇｉｔｉｍａｔｅ）ユーザーがミスによって管理コマンドを思いがけず実行する場合がある。この場合、ソリッドステートドライブ１３０は破壊的な動作が確実に意図された動作であることを保障する何らかのレベルの確認も有さない。例えば、正当であるが、意図しない管理命令は数多くのソリッドステートドライブがクラスター（ｃｌｕｓｔｅｒ）内の多重サーバー上に配置される大きなセットアップ（ｓｅｔｕｐｓ）により思いがけず発行されることがある。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】米国特許第７，１５５，７４５号公報
【特許文献２】米国特許第８，０８６，８３９号公報
【特許文献３】米国特許第８，５９０，０４０号公報
【特許文献４】米国特許第９，２３５，７１９号公報
【特許文献５】米国特許公開第２００８／０１５５６８０号明細書
【特許文献６】米国特許公開第２０１３／０２４７２２２号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００７】
本発明は上述した技術的課題を解決するためであって、本発明の目的はソリッドステートドライブに対する重要動作を認証する方法、ソリッドステートドライブ、及び認証システムを提供することにある。
【課題を解決するための手段】
【０００８】
一実施形態において、方法は、ソリッドステートドライブへの動作命令及び保安資格を受信する段階と、前記保安資格及び前記保安資格に基づいてエンコーディングされ、前記ソリッドステートドライブに格納される保安認証書を含む非同期式イベントを前記ソリッドステートドライブにおいて認証エージェントに発行する段階と、前記保安資格及び前記保安認証書を前記認証エージェントから認証サーバーに伝達する段階と、前記認証サーバーにおいて前記保安資格に基づいて前記保安認証書の有効性を確認する段階と、有効性確認応答を前記認証サーバーから前記認証エージェントに提供する段階と、前記有効性確認応答を前記認証エージェントから前記ソリッドステートドライブに伝達する段階と、前記有効性確認応答に基づいて前記動作命令を実行する段階と、を含む。
【０００９】
他の実施形態において、方法は、ユーザーからソリッドステートドライブへの動作命令を受信する段階と、前記ユーザーにチャレンジ質問を提示する段階と、前記チャレンジ質問に対するユーザー提供答弁を受信する段階と、前記ユーザー提供答弁と前記ユーザーと連関された前記チャレンジ質問に対する答弁とを比較する段階と、前記ユーザー提供答弁及び前記ユーザーと連関された前記チャレンジ質問に対する前記答弁の間に比較結果に基づいて前記動作命令を実行する段階と、を含む。
【００１０】
他の実施形態において、ソリッドステートドライブは、１つ以上の不揮発性メモリ装置と、ホストコンピュータへのインターフェイスと、ファームウェアドライバーと、を含む。前記ファームウェアドライバーは、前記インターフェイスを通じて動作命令及び保安資格を受信し、前記保安資格及び保安認証書を含む非同期式イベントを認証エージェントに発行し、前記認証エージェントから有効性確認応答を受信し、前記有効性確認応答に基づいて前記動作命令を実行し、前記保安認証書は、前記保安資格に基づいてエンコーディングされ、ソリッドステートドライブに格納される。
【００１１】
その他の実施形態において、認証システムは、認証サーバーと、認証エージェント（ａｕｔｈｅｎｔｉｃａｔｉｏｎ  ａｇｅｎｔ）が実行されるホストコンピュータと、複数のソリッドステートドライブを含む。
【００１２】
前記認証エージェントは初期化の間に前記認証サーバーとの保安通信チャンネルを設定する。前記複数のソリッドステートドライブの各々は、ファームウェアドライバーを含み、前記ファームウェアドライバーは、前記ホストコンピュータにおいて実行される装置ドライバーを通じて動作命令及び保安資格を受信し、
前記保安資格及び保安認証書を含む非同期式イベントを前記認証エージェントに発行し、
前記保安認証書は、前記保安資格に基づいてエンコーディングされ、前記複数のソリッドステートドライブの各々に格納され、
前記認証サーバーは、前記保安認証書の有効性を確認し、前記保安通信チャンネルを通じて有効性確認応答を前記認証エージェントに提供し、
前記複数のソリッドステートドライブの各々の前記ファームウェアドライバーは、前記有効性確認応答に基づいて前記動作命令を実行する。
【００１３】
本発明は、具現及びイベントの組合せの多様な新規な細部事項を含む上述した説明及び他の望ましい特徴を添付した図面を参照してより具体的に説明し、請求の範囲に記載する。本明細書において記述した特定システム及び方法は単なる例として示し、制限として示さないことが理解されるべきである。当業者が理解できるように、本明細書において説明する原理及び特徴は本発明の範囲を逸脱せずに多様であり、数多くの実施形態に適用できる。
【発明の効果】
【００１４】
本発明の実施形態に係る方法、ソリッドステートドライブ、及び認証システムはソリッドステートドライブ上の重要動作のための装置レベルの認証を提供する。
【図面の簡単な説明】
【００１５】
本明細書の一部分として含まれる添付図面は多様な実施形態を図示し、前述した一般的な説明及び後述する多様な実施形態の詳細な説明と共に本明細書において開示する原理を説明し、教示するために提供する。
【図１】管理命令を実行するための従来技術の認証スキームを図示する。
【図２】一実施形態において、重要動作命令の有効性を確認し、実行するための例示的な認証システムのブロック図を図示する。
【図３】一実施形態において、認証システムを初期化する例示的なプロセスを図示する。
【図４】一実施形態において、管理命令の有効性を確認するための例示的なプロセスを図示する。
【図５】他の実施形態において、管理命令の有効性を確認するための例示的なプロセスを図示する。
【図６】他の実施形態において、管理命令の有効性を確認するための例示的なプロセスを図示する。
【００１６】
図面は比率に合うように示さず、類似の構造又は機能の構成要素は図面の全体にわたって例示的な目的のために類似の参照番号により一般的に表示する。図面は単なる本明細書に説明する多様な実施形態の説明を容易にするためであり、本明細書に開示する教示のすべての側面を記述せず、請求範囲を制限しない。
【発明を実施するための形態】
【００１７】
本明細書において開示する特徴及び教示の各々は本発明のシステム及び方法を提供するために他の特徴及び教示と共に、或いは分離して使用される。このような特徴及び教示を共に、そして分離して利用する実施形態を添付した図面を参照して説明する。本明細書の詳細な説明は本教示の様相を実施するために詳細な技術分野の当業者に示すが、請求範囲を制限しない。したがって、本明細書の詳細な説明により開示する特徴の組合せは本教示の代表的な例示であり、最も広い意味として教示を実施するのに必須ではないこともあり得る。
【００１８】
以下の説明において、説明の目的のみに、特定名称を本発明の完全な理解を提供するために説明する。しかし、このような特定細部事項は本発明の思想を実施するために必要ではないことは当業者に理解される。
【００１９】
詳細な説明の幾つかの部分はアルゴリズム及びコンピュータメモリ内データビットに対する動作のシンボル表現により提供する。これらのアルゴリズム説明及び表現は他の分野の当業者に作業の実体を効果的に伝達するために、データ処理分野の当業者によって使用される。ここで、アルゴリズムは一般的に望む結果に至る段階に対する一貫性ある順序である。段階は物理的量の物理的操作が必要であるものである。一般的に、必須ではないが、このような量は格納、伝達、結合、比較、及びこれとは異なって操作される電気又は磁気信号の形態を取る。このような信号のビット、値、要素、シンボル、特徴、用語、数等としての指称の共通的使用がしばしば便利である。
【００２０】
しかし、これら及び類似の用語の全ては適切な物理量と連関され、単なるこのような量に適用される便利なラベルであることに留意しなければならない。具体的には以下の説明から明確であるように、説明において、このよう‘‘処理’’、  ‘‘コンピューティング’’、‘‘計算’’、‘‘決定’’、‘‘表示’’等の用語を使用する論議はコンピュータシステム又はコンピュータレジスター及びメモリ内において物理的（電気的）量として現れるデータをコンピュータシステムメモリ又はレジスター又は他の情報ストレージ、伝送又は表示装置内において物理的量として現れる類似の他のデータに操作及び変形する類似の電子コンピューティング装置の活動及び過程を示すと理解される。
【００２１】
本明細書において説明するアルゴリズムは本質的に任意の特定コンピュータ又は他の装置と関連されない。多様な一般的な目的のシステム、コンピュータサーバー、又は個人用コンピュータは本明細書の教示にしたがうプログラムと共に使用されるか、或いは要求された方法段階を遂行するためのより特殊化された装置を構成することが便利である。このような多様なシステムのために要求される構造を以下の説明において示す。多様なプログラミング言語が本明細書に記載されるように発明の教示を具現するのに使用されてもよいことを理解すべきである。
【００２２】
また、代表的な例に対する多様な特徴及び従属項は本発明の教示に対する有用な追加的な実施形態を提供するために明示的ではない、そして列挙されない方式に結合されることもあり得る。また、すべての値の範囲又は独立体のグループの暗示はすべての可能な中間値又は当該発明を制限する目的のみならず、本来の開示目的のための中間独立体を開示することが言及される。また、明示的な基準及び図面に図示された構成要素の形状は本明細書において実施される方式を理解できるよう記載するが、寸法及び実施形態に示した形状に限定されないことに留意する。
【００２３】
本明細書は装置レベル（ｄｅｖｉｃｅ  ｌｅｖｅｌ）において重要動作を認証できる内装形ファームウェア（ｅｍｂｅｄｄｅｄ  ｆｉｒｍｗａｒｅ）を有するソリッドステートドライブを説明する。ソリッドステートドライブの内装形ファームウェアは信頼されたエンティティー（ｅｎｔｉｔｙ、例えば、認証サーバー（ａｕｔｈｅｎｔｉｃａｔｉｏｎ  ｓｅｒｖｅｒ））と相互作用し、認証サーバーによって認証された動作のみを実行する。ソリッドステートドライブは外部の信頼されたエンティティーと相互作用することによって認証プロセス（ａｕｔｈｅｎｔｉｃａｔｉｏｎ  ｐｒｏｃｅｓｓ）に参加する。それだけでなく、本明細書は動作命令と連関された資格（ｃｒｅｄｅｎｔｉａｌｓ）を検証するためにソリッドステートドライブに対する動作命令の一部として保安資格（ｓｅｃｕｒｉｔｙ  ｃｒｅｄｅｎｔｉａｌｓ）を伝達するためのプロセスを説明する。
【００２４】
本発明において、重要動作はソリッドステートドライブ内に格納されたデータの意図されない損失を惹起する破壊を避けるためにソリッドステートドライブレベルにおいて安全に有効であるか否かを確認する。
【００２５】
重要動作を認証するための本発明のシステム及び方法はソリッドステートドライブに適用される。本発明のシステム及び方法は問題解決（ｔｒｏｕｂｌｅｓｈｏｏｔｉｎｇ）のために重要動作に対するデータを記録するソリッドステートドライブに対する監査（ａｕｄｉｔｉｎｇ）スキームをさらに提供する。例えば、ソリッドステートドライブは重要動作命令を発行するクライアントに対する動作及び応答の結果のみならず、重要動作命令、ユーザー資格（ｕｓｅｒ  ｃｒｅｄｅｎｔｉａｌｓ）、認証サーバーから受信された応答を含み、これに制限されない重要動作要請の時間記録（ｔｉｍｅ  ｌｏｇ）を維持する。ホストコンピュータは問題解決及び監査の目的としてソリッドステートドライブに対する不当な（ｕｎｗａｒｒａｎｔｅｄ）動作を監視するためにソリッドステートドライブとの適切なプロトコルにしたがって記録情報を獲得（又は検索）する。本発明のシステム及び方法はオペレーターエラーによる意図しないデータ損失の危険及び認証サーバーへのアクセス違反を無くす。
【００２６】
本発明のシステム及び方法はソリッドステートドライブ上の重要動作のための装置レベルの認証を提供する。このような重要動作の例示はフォーマット命令（例えば、保安削除（ｓｅｃｕｒｅ  ｅｒａｓｅ））、ネットワークに連結されたソリッドステートドライブ（例えば、ＮＶＭｅ（ｎｏｎ−ｖｏｌａｔｉｌｅ  ｍｅｍｏｒｙ  ｅｘｐｒｅｓｓ）−互換ソリッドステートドライブ、及びＮＶＭｅｏＦ（ＮＶＭｅ  ｏｖｅｒ  ｆａｂｒｉｃｓ）−互換ソリッドステートドライブ）上のネームスペース（ｎａｍｅｓｐａｃｅ）に対する削除命令（ｄｅｌｅｔｉｏｎ  ｃｏｍｍａｎｄ）を含むが、これに制限されない。
【００２７】
このような重要動作は復旧できないデータ損失を惹起する。本発明のシステム及び方法は悪意的な意図を防止するためのソリッドステートドライブレベルのメカニズムを提供する。
【００２８】
一実施形態において、ソリッドステートドライブのファームウェアは認証サーバーと相互作用してユーザー発行命令（ｕｓｅｒ−ｉｓｓｕｅｄ  ｃｏｍｍａｎｄ）を認証する。ユーザー発行命令は保安資格を含む。保安資格はユーザー発行命令にしたがってソリッドステートドライブに送られる。ソリッドステートドライブファームウェアは有効性確認（ｖａｌｉｄａｔｉｏｎ）のためにユーザー提供保安資格（ｕｓｅｒ−ｐｒｏｖｉｄｅｄ  ｓｅｃｕｒｉｔｙ  ｃｒｅｄｅｎｔｉａｌｓ）及び初期化の間にソリッドステートドライブに格納された認証書を認証サーバーに伝達する。ソリッドステートドライブファームウェアは認証サーバーからの有効性確認応答に基づいてユーザー発行命令を実行する。
【００２９】
図２は一実施形態において、重要動作命令の有効性を確認し、実行するための例示的な認証システムのブロック図を図示する。認証システム２００は命令ラインユーティリティー（ｃｏｍｍａｎｄ  ｌｉｎｅ  ｕｔｉｌｉｔｙ、ＣＬＴ）又は保安機能を備えたアプリケーション２１１が実行されるホストコンピュータ２１０、ソリッドステートドライブ２２０、認証エージェント２３０、及び認証サーバー（ａｕｔｈｅｎｔｉｃａｔｉｏｎ  ｓｅｒｖｅｒ）２４０を含む。ソリッドステートドライブ２２０は１つ以上の不揮発性メモリ装置、ホストコンピュータに対するインターフェイス、及びファームウェアドライバー（本明細書においてはソリッドステートドライブファームウェア２２１とも称する）を含む。認証された管理ユーザー（例えば、スーパーユーザー）は命令ラインユーティリティー又は保安機能を備えたアプリケーション２１１を通じて管理命令をソリッドステートドライブ２２０に発行する。命令ラインユーティリティー又は保安機能を備えたアプリケーション２１１はホストコンピュータ２１０において実行されるソリッドステートドライブ２２０の装置ドライバーを通じてソリッドステートドライブ２２０と相互作用する。ソリッドステートドライブ２２０はホストコンピュータ２１０に物理的に連結させるか、或いは（例えば、ＳＡＳ（ｓｅｒｉａｌ  ａｔｔａｃｈｅｄ  ＳＣＳＩ）、ＳＡＴＡ（ｓｅｒｉａｌ  ＡＴ  ａｔｔａｃｈｍｅｎｔ）、及びＰＣＩ（ｐｅｒｉｐｈｅｒａｌ  ｃｏｍｐｏｎｅｎｔ  ｉｎｔｅｒｃｏｎｎｅｃｔ））又はイーサーネット（登録商標）ネットワークのようなネットワークを通じてホストコンピュータ２１０に連結される。ソリッドステートドライブ２２０の装置ドライバーはホストオペレーティングシステムのカーネル（ｋｅｒｎｅｌ）空間又はユーザー空間において実行される。管理命令以外にも、命令ラインユーティリティー又は保安機能を備えたアプリケーション２１１は保安資格（ｓｅｃｕｒｉｔｙ  ｃｒｅｄｅｎｔｉａｌｓ）を伝達する。一実施形態において、管理ユーザーは管理命令を発行する時、保安資格を入力する。
【００３０】
ソリッドステートドライブ２２０は命令キュー（ｃｏｍｍａｎｄ  ｑｕｅｕｅ）から命令を抽出するソリッドステートドライブファームウェア２２１を有し、そして抽出された命令を実行する。ソリッドステートドライブ２２０は重要動作検査器（ｃｒｉｔｉｃａｌ  ｏｐｅｒａｔｉｏｎ  ｃｈｅｃｋｅｒ）２２２をさらに有する。重要動作検査器２２２は認証サーバー２４０と共にホストコンピュータ２１０から受信された重要動作を処理する。本発明の例示において、重要動作検査器２２２はソリッドステートドライブファームウェア２２１の一部でありえるが、重要動作検査器２２２はソリッドステートドライブ２２０内の異なるハードウェア又はファームウェアロジックとして具現できる。他の実施形態において、重要動作検査器２２２はソリッドステートドライブ２２０の外部に分離されて具現され、重要動作を処理するために１つ以上のソリッドステートドライブと連結される。
【００３１】
命令を実行する前に命令の有効性を確認するために、重要動作検査器２２２は認証サーバー２４０と相互作用する。一実施形態において、ソリッドステートドライブファームウェア２２１は認証能力（ａｕｔｈｅｎｔｉｃａｔｉｏｎ  ｃａｐａｂｉｌｉｔｉｅｓ）を有し、認証エージェント２３０を通じて認証サーバー２４０と相互作用する。一実施形態において、認証エージェント２３０はソリッドステートドライブ２２０が連結されたホストコンピュータ２１０上において実行される。他の実施形態において、認証エージェント２３０はネットワークを通じてホストコンピュータ２１０に連結された他のコンピュータ上において実行される。認証サーバー２４０はソリッドステートドライブ２２０が連結されたホストコンピュータ２１０以外の他のコンピュータであってもよい。認証エージェント２３０を通じたソリッドステートドライブファームウェア２２１及び認証サーバー２４０間の通信は強化された保安のために暗号化される。
【００３２】
一実施形態において、ソリッドステートドライブファームウェア２２１はユーザー発行命令（ｕｓｅｒ−ｉｓｓｕｅｄ  ｃｏｍｍａｎｄ）を認証するために非同期式認証イベント（ａｓｙｎｃｈｒｏｎｏｕｓ  ａｕｔｈｅｎｔｉｃａｔｉｏｎ  ｅｖｅｎｔ）を認証エージェント２３０に生成する。非同期式イベントは命令ラインユーティリティー又は保安機能を備えたアプリケーション２１１から受信された保安資格及びソリッドステートドライブ２２０に格納された保安認証書（ｓｅｃｕｒｉｔｙ  ｃｅｒｔｉｆｉｃａｔｅ）２２３を含む。ソリッドステートドライブファームウェア２２１は有効性確認結果のために認証エージェント２３０から応答を待つ。応答が有効性確認成功を示せば、ソリッドステートドライブファームウェア２２１はソリッドステートドライブ２２０において命令を実行する。ソリッドステートドライブファームウェア２２１は、また装置ドライバーを通じて成功又は失敗の状態を命令ラインユーティリティー又は保安機能を備えたアプリケーション２１１に返信する。
【００３３】
一実施形態において、認証エージェント２３０はホストコンピュータにより実行されるサービスである。ソリッドステートドライブ２２０はＳＡＳ、ＳＡＴＡ、及びＰＣＩのような多様なインターフェイスプロトコルを通じてホストコンピュータに物理的に連結される。各ホストコンピュータはそれに連結された１つ以上のソリッドステートドライブを有する。ソリッドステートドライブ２２０がネットワークに連結されたソリッドステートドライブ（例えば、ＮＶＭｅｏＦ−互換ソリッドステートドライブ）である場合、ソリッドステートドライブ２２０はネットワークを通じてホストコンピュータに連結され、自体、認証エージェント２３０として動作する。ネットワークに連結されたソリッドステートドライブ２２０は自体、認証エージェント２３０として動作するか、又はネットワークの独立したノード（例えば、コンピュータ又は他のソリッドステートドライブ）が独立認証エージェントとして機能する。初期化の間に、認証エージェント２３０が実行されるホストコンピュータは相互合意プロトコル（ｍｕｔｕａｌｌｙ  ａｇｒｅｅｄ  ｐｒｏｔｏｃｏｌ、例えば、ＮＶＭｅｏＦ）を通じてネットワークに連結されたソリッドステートドライブとの通信を設定する。ホストコンピュータの装置ドライバーは相互合意プロトコル（例えば、ＮＶＭｅｏＦ）を通じてネットワークを通じて重要動作命令をネットワークに連結されたソリッドステートドライブに伝達する。応答として、ネットワークに連結されたソリッドステートドライブは相互合意プロトコル（例えば、ＮＶＭｅｏＦ）によりネットワークを通じてホストコンピュータ上において実行される認証エージェント２３０と通信する。この場合、認証エージェント２３０はソリッドステートドライブ２２０及び認証サーバー２４０の間のゲートウェイとして動作する。
【００３４】
認証サーバー２４０はソリッドステートドライブ２２０に対する重要動作の有効性を確認するために使用される複数の有効な保安認証書２４１を格納する。起動（ｓｔａｒｔｕｐ）の間に、認証サーバー２４０は重要ソリッドステートドライブ動作のリストをソリッドステートドライブ２２０に通知する。認証サーバー２４０は、また重要ソリッドステートドライブ動作として表示された命令／動作識別子（ｉｄｅｎｔｉｆｉｅｒｓ）を送る。ソリッドステートドライブ２２０はシステムの性能低下を最少化するか、或いは避けるために、すべての入出力動作ではなく、重要ソリッドステートドライブ動作として表示された命令のみに重要動作検査器２２２を働かせる（ｔｒｉｇｇｅｒ）。
【００３５】
起動の間、認証エージェント２３０は命令認証のための一連の非同期式イベントを、物理的に又はネットワークを通じてホストコンピュータ２１０に連結された、すべてのソリッドステートドライブに登録する。それだけでなく、認証エージェント２３０は保安スキームを利用して認証サーバー２４０との保安通信チャンネル（ｓｅｃｕｒｅ  ｃｏｍｍｕｎｉｃａｔｉｏｎ  ｃｈａｎｎｅｌ）を設定する。例えば、認証エージェント２３０及び認証サーバー２４０の間の保安通信のために使用される保安スキームは保安ソケット階層（ｓｅｃｕｒｅ  ｓｏｃｋｅｔｓ  ｌａｙｅｒ、ＳＳＬ）又は伝送階層保安（ｔｒａｎｓｐｏｒｔ  ｌａｙｅｒ  ｓｅｃｕｒｉｔｙ、ＴＬＳ）である。非同期式イベントがソリッドステートドライブの中の１つによって発送されれば、認証エージェント２３０はソリッドステートドライブと連関された保安資格及び保安認証書を認証サーバー２４０に伝達し、有効性確認応答を待つ。認証サーバー２４０から応答を受信した後、認証エージェント２３０は入出力制御呼出（Ｉ／Ｏ  ｃｏｎｔｒｏｌ（ＩＯＣＴＬ）  ｃａｌｌ）又はオペレーティングシステムによって提供される類似の機能を通じて有効性確認応答をソリッドステートドライブ２２０に伝達する。
【００３６】
一実施形態において、認証サーバー２４０はクラスタワイド命令認証（ｃｌｕｓｔｅｒ−ｗｉｄｅ  ｃｏｍｍａｎｄ  ａｕｔｈｅｎｔｉｃａｔｉｏｎ）を遂行するセントラルサービス（ｃｅｎｔｒａｌ  ｓｅｒｖｉｃｅ）である。認証サーバー２４０はパスフレーズ（ｐａｓｓｐｈｒａｓｅ）／ハッシュ（ｈａｓｈ）及びチャレンジ（ｃｈａｌｌｅｎｇｅ）／応答（ｒｅｓｐｏｎｓｅ）を利用して多様な有効性確認スキームを支援する能力を有する。初期構成の間に、管理ユーザーは有効性確認スキームの中の１つを選択し、パスフレーズ／ハッシュパラメーター又はチャレンジ／応答パラメーターの中のいずれか１つを認証サーバー２４０に構成する。認証サーバー２４０はデータベースにこのようなパラメーターを持続的に格納する。幾つかの実施形態において、クラスターインターフェイス（ｃｌｕｓｔｅｒ  ｉｎｔｅｒｆａｃｅ）において実行される複数の認証エージェントは認証サーバー２４０と直接通信する。ユーザー発行命令の実行シークェンス（ｓｅｑｕｅｎｃｅ）の一部として、認証エージェント２３０は管理ユーザーから得た保安資格を認証サーバー２４０に送る。その次に認証サーバー２４０は保安資格を処理し、資格の有効性を確認し、そして応答を認証エージェント２３０に送る。
【００３７】
図３は一実施形態において、認証システムを初期化する例示的なプロセスを図示する。ホストコンピュータ２１０、ソリッドステートドライブ２２０、認証エージェント２３０、及び認証サーバー２４０を含む図２に図示した認証システム２００のエンティティーは認証システム２００がユーザー命令を安全に処理する準備が行われる前に初期化プロセスを経なければならない。
【００３８】
まず、管理者２１５（「命令ラインユーティリティー又は保安機能を備えたアプリケーション２１１」が果たす管理機能を管理者２１５という）はホストコンピュータ（図示せず）に連結されたソリッドステートドライブ（ターゲットソリッドステートドライブ２２０を含む）に対する保安資格（例えば、認証パスフレーズ（ａｕｔｈｅｎｔｉｃａｔｉｏｎ  ｐａｓｓｐｈｒａｓｅ）又はチャレンジ質問（ｃｈａｌｌｅｎｇｅ  ｑｕｅｓｔｉｏｎｓ））をセットアップする（段階３５１）。保安資格をセットアップする時、管理者２１５はホストコンピュータ２１０又は認証サーバー２４０と通信できる（例えば、ネットワークを通じて）任意の他のコンピュータを使用する。このような保安資格はソリッドステートドライブ２２０に発行された一部の重要管理命令を実行する時に使用される。認証サーバー２４０はターゲットソリッドステートドライブ２２０を含むローカルソリッドステートドライブと通信を設定するために認証エージェント２３０に通知し、要請する（段階３５２）。例えば、認証エージェント２３０はローカルソリッドステートドライブをスキャンし（段階３５３）、そしてソリッドステートドライブ２２０からのシリアル番号及びモデル番号のようなソリッドステートドライブ２２０の識別番号（ｉｄｅｎｔｉｆｉｃａｔｉｏｎ  ｎｕｍｂｅｒ、ＩＤ  ｎｕｍｂｅｒ）を獲得する（段階３５４）。認証エージェント２３０は獲得されたソリッドステートドライブ２２０の特定細部事項を認証サーバー２４０に送る（段階３５５）。獲得されたソリッドステートドライブ２２０の特定細部事項を利用して認証サーバー２４０はローカルソリッドステートドライブの各々に対する保安認証書を生成する（段階３５６）。
【００３９】
認証サーバー２４０はエンコーディングスキームに基づいて保安認証書を生成する。一実施形態において、管理者２１５によって構成される保安資格（例えば、認証パスフレーズ又はチャレンジ質問）はエンコーディングプロセスのキーとして使用される。その次に保安認証書は認証エージェント２３０に送られ（段階３５７）、認証エージェント２３０はＩＯＣＴＬ呼出又はオペレーティングシステムによって提供される類似の機能を通じて保安認証書をソリッドステートドライブ２２０に送る。ソリッドステートドライブ２２０はメタデータとして保安認証書を格納し、管理命令を認証するためにそれを使用する（段階３５８）。認証エージェント２３０を通じて、認証サーバー２４０は重要動作検査器によって処理される重要動作をソリッドステートドライブ２２０に通知する。
【００４０】
一実施形態において、認証書基盤のスキームは管理命令の有効性を確認するために使用される。この場合、管理者２１５は管理者２１５によって使用されるパスフレーズをキーとして認証サーバー２４０によって採択されたエンコーディングスキームに送る。認証サーバー２４０は管理者提供パスフレーズ（ａｄｍｉｎｉｓｔｒａｔｏｒ−ｐｒｏｖｉｄｅｄ  ｐａｓｓｐｈｒａｓｅ）を利用してソリッドステートドライブ２２０に対する保安認証書を生成する。保安認証書（例えば、図２の保安認証書２２３）はソリッドステートドライブ２２０に格納される。
【００４１】
初期化の後、ユーザーはパスフレーズと共に管理命令を発行する。ユーザーは管理者２１５又は管理命令を送る資格がある任意の他のユーザーである。ソリッドステートドライブ２２０に格納された保安認証書２２３及びユーザー提供パスフレーズ（ｕｓｅｒ−ｐｒｏｖｉｄｅｄ  ｐａｓｓｐｈｒａｓｅ）の全ては認証サーバー２４０に送られる。認証サーバー２４０はユーザー提供パスフレーズを利用して保安認証書２２３をデコードし、デコードされた保安認証書とデータベースに格納された有効な保安認証書２４１とを比較する。認証書の有効性が成功的に確認されれば、ソリッドステートドライブ２２０は命令を実行し、ユーザーに応答を送る。
【００４２】
他の実施形態において、チャレンジ応答（ｃｈａｌｌｅｎｇｅ−ｒｅｓｐｏｎｓｅ）スキームは管理命令の有効性を確認するために使用される。認証サーバー構成の一部として、管理者２１５はチャレンジ質問及び応答の集合を構成する。ユーザーが管理命令を発行した時、ソリッドステートドライブ２２０は認証サーバー２４０から１つ以上のチャレンジ質問を獲得し、ユーザーにそれらを提示する。チャレンジ応答シークェンスが成功すれば、ソリッドステートドライブ２２０は命令を完了する。
【００４３】
図４は一実施形態において、管理命令の有効性を確認するための例示的なプロセスを図示する。ユーザー２１２は保安資格（例えば、認証パスフレーズ）と共に命令ラインユーティリティーの命令ラインインターフェイス又はアプリケーションを通じて管理命令を発行する（段階４５１）。管理命令及び保安資格はソリッドステートドライブ２２０が連結されたホストコンピュータにおいて実行される装置ドライバーを通じてソリッドステートドライブ２２０のファームウェアへの命令構造に伝達される。イーサーネット（登録商標）ソリッドステートドライブの場合、管理命令及び保安資格は装置ドライバーの代わりにイニシエーター（ｉｎｉｔｉａｔｏｒ）を通じてソリッドステートドライブ２２０のファームウェアに伝達される。
【００４４】
ソリッドステートドライブファームウェアは命令構造にて伝達された保安資格を抽出し、初期化の間にソリッドステートドライブに格納されたソリッドステートドライブ保安認証書を読み出す。ソリッドステートドライブファームウェアは非同期式イベント通知を通じて＜保安認証書、保安資格＞のタプル（ｔｕｐｌｅ）を認証エージェント２３０に伝達し、応答を待つ（段階４５２）。他の実施形態において、重要動作検査器はユーザー２１２から受信された管理命令が認証サーバー２４０によって表示された重要動作であるか否かを検査し、そして重要動作として表示された管理命令のみの有効性を確認するために非同期式イベントを認証エージェント２３０に送る。
【００４５】
初期化の間に、認証エージェント２３０はターゲットノード（ｔａｒｇｅｔ  ｎｏｄｅ、又はホストコンピュータ）に連結されたすべてのソリッドステートドライブからの非同期式イベント通知を登録し、認証サーバー２４０と通信チャンネルを設定する。ソリッドステートドライブ２２０のファームウェアからの非同期式イベント通知に応答して、認証エージェント２３０は有効性を確認するために＜保安認証書、保安資格＞のタプルを認証サーバー２４０に伝達する（段階４５３）。
【００４６】
認証サーバー２４０は管理命令を認証するために認証エージェント２３０からメッセージを受信し、認証エージェント２３０によって伝達された保安資格を利用して保安認証書２２３を解読する（ｄｅｃｒｙｐｔ）。認証サーバー２４０は解読された保安認証書と認証サーバー２４０のデータベースに格納された保安認証書２４１とを比較することによって解読された保安認証書の有効性を確認する（段階４５４）。
【００４７】
有効性確認の結果に基づいて、認証サーバー２４０は成功又は失敗メッセージを認証エージェント２３０に送る（段階４５５）。認証エージェント２３０は認証サーバー２４０からの応答をソリッドステートドライブファームウェアに再び伝達する（段階４５６）。一実施形態において、認証エージェント２３０におけるソリッドステートドライブ２２０への応答はＩＯＣＴＬ呼出のような供給者特定命令（ｖｅｎｄｏｒ−ｓｐｅｃｉｆｉｃ  ｃｏｍｍａｎｄ）又はオペレーティングシステムによって提供される類似機能を通じて送られる。命令が成功的に認証されれば、ソリッドステートドライブ２２０は管理命令を実行する（段階４５７）。適切な応答が管理命令を開始したユーザー２１２に再び送られる（段階４５８）。
【００４８】
図５は他の実施形態において、管理命令の有効性を確認するための例示的なプロセスを図示する。ユーザー２１２は命令ラインユーティリティーの命令ラインインターフェイス（ＣＬＩ）又はアプリケーションを通じて管理命令を発行する（段階５５１）。管理命令はソリッドステートドライブ２２０が連結されたホストコンピュータにおいて実行される装置ドライバーを通じてソリッドステートドライブ２２０のファームウェアへの命令構造にて伝達される。イーサーネット（登録商標）ソリッドステートドライブの場合、管理命令は装置ドライバーの代わりにイニシエーターを通じてソリッドステートドライブ２２０のファームウェアに伝達される。
【００４９】
ソリッドステートファームウェアはユーザー２１２と連関された保安質問に対する答弁（ａｎｓｗｅｒｓ）を識別する。一実施形態において、初期化の間に保安質問に対する答弁はソリッドステートドライブに格納される。ソリッドステートドライブファームウェアは非同期式イベント通知を通じてユーザー２１２の識別子を認証エージェント２３０に伝達し、応答を待つ（段階５５２）。
【００５０】
初期化の間に、認証エージェント２３０はターゲットノード（又はホストコンピュータ）に連結されたすべてのソリッドステートドライブからの非同期式イベント通知を登録し、認証サーバー２４０との通信チャンネルを設定する。ソリッドステートドライブ２２０のファームウェアから非同期式イベント通知に応答して、認証エージェント２３０はユーザー２１２と連関されたチャレンジ質問を獲得するために認証サーバー２４０に要請を送る（段階５５３）。
【００５１】
認証サーバー２４０は認証エージェント２３０からチャレンジ質問に対する要請を受信し、認証エージェント２３０に応答又は１つ以上のチャレンジ質問を伝達する（段階５５４）。ユーザー２１２の身元が検証されなければ、認証サーバー２４０は管理命令を不承認するように認証エージェント２３０に指示する応答を送る。ユーザー２１２が検証されたユーザーであれば、認証エージェント２３０は１つ以上のチャレンジ質問をソリッドステートドライブファームウェアに伝達する（段階５５５）。一実施形態において、認証エージェント２３０におけるソリッドステートドライブ２２０への応答はＩＯＣＴＬ呼出のような供給者特定命令又はオペレーティングシステムによって提供される類似機能を通じて送られる。ソリッドステートドライブ２２０はＣＬＩを通じて１つ以上のチャレンジ質問をユーザー２１２に提示する（段階５５６）。ユーザー２１２はチャレンジ質問に対する答弁を提供する（段階５５７）。答弁がソリッドステートドライブ２２０に格納された答弁と一致すれば、ソリッドステートドライブ２２０は管理命令を実行する（段階５５８）。答弁が一致しなければ、ソリッドステートドライブ２２０は管理命令を中断させる（ａｂｏｒｔ）。ソリッドステートドライブ２２０は最終的にＣＬＩを通じて応答をユーザー２１２に返信する（段階５５９）。チャレンジ質問は認証サーバー２４０に遠隔に格納され、チャレンジ質問に対する答弁はソリッドステートドライブ２２０に格納されることに留意しなければならない。チャレンジ質問及び答弁に対して分離されたストレージはさらに安全な管理命令の有効性確認を提供する。
【００５２】
他の実施形態において、ソリッドステートドライブ２２０はユーザー２１２の管理命令に応答してチャレンジ質問を獲得し、質問を提示する（段階５５６）。この場合、ソリッドステートドライブ２２０は、初期化の間に、保安質問及びこれに連関された答えを格納し、そうすることによって段階５５２乃至５５５はスキップする。認証サーバー２４０は保安質問及びこれと連関された答えのコピー（ｄｕｐｌｉｃａｔｅ  ｃｏｐｙ）を格納し、そして問題解決及び監視目的としてソリッドステートドライブ２２０上の不当な動作を監視するために認証エージェント２３０を通じてソリッドステートドライブ２２０と直接通信する。認証サーバー２４０によるソリッドステートドライブ２２０上の不当な動作の監視はシステムの性能低下を最小化するためにソリッドステートドライブ２２０が動作されない時（ｉｄｌｅ）に非同期式に行われる。
【００５３】
図６は他の実施形態において、管理命令の有効性を確認するための例示的なプロセスを図示する。この場合、ソリッドステートドライブ２２０は保安質問又は答弁を格納しない。ユーザー２１２は命令ラインユーティリティーの命令ラインインターフェイス（ＣＬＩ）又はアプリケーションを通じて管理命令を発行する（段階６５１）。ソリッドステートドライブファームウェアは第１番目の非同期式イベント通知を通じてユーザー２１２の識別子を認証エージェント２３０に伝達し、応答を待つ（段階６５２）。ソリッドステートドライブ２２０のファームウェアからの非同期式イベント通知に応答して、認証エージェント２３０はユーザー２１２と連関されたチャレンジ質問を獲得するために認証サーバー２４０に要請を送る（段階６５３）。認証サーバー２４０は認証エージェント２３０からチャレンジ質問に対する要請を受信し応答又は１つ以上のチャレンジ質問を認証エージェント２３０に伝達する（段階６５４）。認証エージェント２３０は１つ以上のチャレンジ質問をソリッドステートドライブファームウェアに伝達する（段階６５５）。ソリッドステートドライブ２２０はＣＬＩを通じてユーザー２１２に１つ以上のチャレンジ質問を提示し（段階６５６）、ユーザー２１２からチャレンジ質問に対する答弁を受信する（段階６５７）。ソリッドステートドライブファームウェアは第２番目の非同期式イベント通知を通じてユーザーが提供した答弁を認証エージェント２３０に伝達し、応答を待つ（段階６５８）。認証エージェント２３０は認証サーバー２４０にユーザー提供答弁を伝達する（段階６５９）。認証サーバー２４０はユーザー提供答弁と認証質問に対する局部的に格納された検証答弁を比較することによって答弁の有効性を確認する（段階６６０）。有効性確認結果に基づいて、認証サーバー２４０は成功又は失敗メッセージを認証エージェント２３０に送る（段階６６１）。認証エージェント２３０は認証サーバー２４０からの応答をソリッドステートドライブファームウェアに再び伝達する（段階６６２）。ソリッドステートドライブ２２０は認証サーバー２４０から受信された応答に基づいて管理命令を実行することを決定する（段階６６３）。適切な応答が管理命令を開始したユーザー２１２に再び送られる（段階６６４）。
【００５４】
一実施形態において、ソリッドステートドライブはイーサーネット（登録商標）ネットワークに直接連結可能なイーサーネット（登録商標）ソリッドステートドライブである。ソリッドステートドライブはＳＡＳ、ＳＡＴＡ、及びＰＣＩのような従来の基本ストレージプロトコルと互換される。本発明の認証スキームは多量のデータを格納する任意の不揮発性ストレージ媒体に適用される。本発明の認証スキームはＮＶＭｅネームスペースの生成、サイズ変更、及び削除を含み、これに制限されず、多様な破壊的な重要動作に適用される。
【００５５】
一実施形態において、方法は、ソリッドステートドライブへの動作命令及び保安資格を受信する段階と、前記保安資格及び前記保安資格に基づいてエンコーディングされ、前記ソリッドステートドライブに格納される保安認証書を含む非同期式イベントを前記ソリッドステートドライブにおいて認証エージェントに発行する段階と、前記保安資格及び前記保安認証書を前記認証エージェントから認証サーバーに伝達する段階と、前記認証サーバーにおいて前記保安資格に基づいて前記保安認証書の有効性を確認する段階と、有効性確認応答を前記認証サーバーから前記認証エージェントに提供する段階と、前記有効性確認応答を前記認証エージェントから前記ソリッドステートドライブに伝達する段階と、前記有効性確認応答に基づいて前記動作命令を実行する段階と、を含む。
【００５６】
前記保安資格はパスフレーズ（ｐａｓｓｐｈｒａｓｅ）である。
前記認証エージェントは前記ソリッドステートドライブが連結されたホストコンピュータ上において実行されるサービスである。
【００５７】
前記ホストコンピュータの装置ドライバーは前記動作命令を受信し、前記ソリッドステートドライブの制御及び動作を管理する。
【００５８】
複数のソリッドステートドライブはホストコンピュータに連結される。方法は一連の非同期式イベントを前記複数のソリッドステートドライブにおいて前記認証エージェントに発行する段階をさらに含む。
【００５９】
方法は保安スキームを利用して前記認証エージェント及び前記認証サーバーの間の保安通信チャンネルを設定する段階をさらに含み、前記保安スキームは保安ソケット階層（ｓｅｃｕｒｅ  ｓｏｃｋｅｔｓ  ｌａｙｅｒ、ＳＳＬ）又は伝送階層保安（ｔｒａｎｓｐｏｒｔ  ｌａｙｅｒ  ｓｅｃｕｒｉｔｙ、ＴＬＳ）である。
【００６０】
前記有効性確認応答は入出力制御（Ｉ／Ｏ  ｃｏｎｔｒｏｌ、ＩＯＣＴＬ）呼出（ｃａｌｌ）を通じて前記認証サーバーから前記認証エージェントに提供される。
【００６１】
前記ソリッドステートドライブはイーサーネット（登録商標）ネットワークに直接連結可能なイーサーネット（登録商標）ソリッドステートドライブである。
【００６２】
前記認証サーバーは、重要動作を前記ソリッドステートドライブに通知し、前記重要動作検査器は、前記重要動作のみに対して非同期式イベントを前記認証エージェントに発行する。
【００６３】
前記動作命令はネットワークに連結されたソリッドステートドライブのネームスペースに対するフォーマット命令、削除命令、生成命令、及びサイズ変更命令の中の１つである。
【００６４】
方法は、前記認証サーバーのデータベースにおいて管理者（ａｄｍｉｎｉｓｔｒａｔｏｒ）から受信された第２番目の保安資格を格納する段階と、初期化の間に前記認証エージェントによって前記ソリッドステートドライブの識別番号をスキャンする段階と、前記認証エージェントから前記認証サーバーに前記ソリッドステートドライブの前記識別番号を提供する段階と、前記認証サーバーにおいて前記管理者から受信された前記第２番目の保安資格に基づいて前記保安認証書を生成する段階と、前記保安認証書を前記認証エージェントに提供する段階と、前記保安認証書を前記ソリッドステートドライブに格納する段階と、をさらに含む。
【００６５】
他の実施形態において、方法は、ユーザーからソリッドステートドライブへの動作命令を受信する段階と、前記ユーザーにチャレンジ質問を提示する段階と、前記チャレンジ質問に対するユーザー提供答弁を受信する段階と、前記ユーザー提供答弁と前記ユーザーと連関された前記チャレンジ質問に対する答弁とを比較する段階と、前記ユーザー提供答弁及び前記ユーザーと連関された前記チャレンジ質問に対する前記答弁の間に比較結果に基づいて前記動作命令を実行する段階と、を含む。
【００６６】
方法は、前記ユーザーに対する識別子を含む非同期式イベントを認証エージェントに発行する段階と、前記保安資格を前記認証エージェントにおいて認証サーバーに伝達する段階と、前記チャレンジ質問を前記認証サーバーにおいて前記認証エージェント及び前記ソリッドステートドライブに提供する段階と、をさらに含む。
【００６７】
方法は、前記ユーザー提供答弁を含む第２番目の非同期式イベントを前記認証エージェントに発行する段階と、前記ユーザー提供答弁を前記認証エージェントから前記認証サーバーに伝達する段階と、前記ユーザー提供答弁と前記認証サーバーに格納された検証答弁とを比較して前記ユーザー提供答弁の有効性を確認する段階と、有効性確認応答を前記認証サーバーから前記認証エージェントに提供する段階と、前記有効性確認応答を前記認証エージェントから前記ソリッドステートドライブに伝達する段階と、前記有効性確認応答に基づいて前記動作命令を実行する段階と、をさらに含む。
【００６８】
他の実施形態において、ソリッドステートドライブは、１つ以上の不揮発性メモリ装置と、ホストコンピュータへのインターフェイスと、ファームウェアドライバーと、を含む。前記ファームウェアドライバーは、前記インターフェイスを通じて動作命令及び保安資格を受信し、前記保安資格及び保安認証書を含む非同期式イベントを認証エージェントに発行し、前記保安認証書は、前記保安資格に基づいてエンコーディングされ、ソリッドステートドライブに格納され、前記認証エージェントから有効性確認応答を受信し、前記有効性確認応答に基づいて前記動作命令を実行する。
【００６９】
前記認証エージェントは前記保安資格及び前記保安認証書を認証サーバーに伝達し、そして前記認証サーバーは前記認証サーバーのデータベースに格納された第２番目の保安資格に基づいて前記保安認証書の有効性を確認し、前記有効性確認応答を生成する。
【００７０】
ソリッドステートドライブは、イーサーネット（登録商標）ネットワークに直接連結可能なイーサーネット（登録商標）ソリッドステートドライブである。
【００７１】
前記動作命令はネットワークに連結されたソリッドステートドライブのネームスペースに対するフォーマット命令、削除命令、生成命令、及びサイズ変更命令の中の１つである。
【００７２】
前記ファームウェアドライバーは、前記認証エージェントから初期化要請を受信し、前記初期化要請に応答して識別番号を前記認証エージェントに提供し、前記認証エージェントから前記保安認証書を受信し、そしてメタデータとして前記ソリッドステートドライブに前記保安認証書を格納する。
【００７３】
その他の実施形態において、認証システムは、認証サーバーと、認証エージェント（ａｕｔｈｅｎｔｉｃａｔｉｏｎ  ａｇｅｎｔ）が実行されるホストコンピュータと、複数のソリッドステートドライブと、を含む。前記認証エージェントは初期化の間に前記認証サーバーとの保安通信チャンネルを設定する。前記複数のソリッドステートドライブの各々は、ファームウェアドライバーを含み、前記ファームウェアドライバーは、前記ホストコンピュータにおいて実行される装置ドライバーを通じて動作命令及び保安資格（ｓｅｃｕｒｉｔｙ  ｃｒｅｄｅｎｔｉａｌ）を受信し、前記保安資格及び保安認証書を含む非同期式イベントを前記認証エージェントに発行し、前記保安認証書は、前記保安資格に基づいてエンコーディングされ、前記複数のソリッドステートドライブの各々に格納される。
【００７４】
前記認証サーバーは前記保安認証書の有効性を確認し、前記保安通信チャンネルを通じて有効性確認応答を前記認証エージェントに提供する。前記複数のソリッドステートドライブの各々の前記ファームウェアドライバーは前記有効性確認応答に基づいて前記動作命令を実行する。
【００７５】
前記ファームウェアドライバーは、前記認証エージェントから初期化要請を受信し、前記初期化要請に応答して識別番号（を前記認証エージェントに提供し、前記認証エージェントから前記保安認証書を受信し、そしてメタデータとして前記ソリッドステートドライブに前記保安認証書を格納する。
【００７６】
前記複数のソリッドステートドライブの各々はイーサーネット（登録商標）ネットワークに直接連結可能なイーサーネット（登録商標）ソリッドステートドライブである。
【００７７】
前記動作命令はネットワークに連結されたソリッドステートドライブのネームスペースに対するフォーマット命令、削除命令、生成命令、及びサイズ変更命令の中の１つである。
【００７８】
前記ソリッドステートドライブは前記認証サーバーによって提供されるチャレンジ及び応答を処理する。
【００７９】
前述した例示的な実施形態はソリッドステートドライブに対する重要動作を認証するためのシステム及び方法を提供するためのシステム及び方法を具現する多様な実施形態を説明するために本明細書において説明した。開示した例示的な実施形態から多様な変形及び離脱は当業者に発生する。本発明の範囲内に属する主題は次の請求の範囲に説明される。
【符号の説明】
【００８０】
１００  認証スキーム
１１０  ホストオペレーティングシステム
１１１  管理命令
１２０  装置ドライバー
１２１  応答
１３０、２２０  ソリッドステートドライブ
２００  認証システム
２１０  ホストコンピュータ
２１１  命令ラインユーティリティー又は保安機能を備えたアプリケーション
２１２  ユーザー
２１５  管理者
２２１  ソリッドステートドライブファームウェア
２２２  重要動作検査器
２２３、２４１  保安認証書
２３０  認証エージェント
２４０  認証サーバー
ＣＬＩ  命令ラインインターフェイス
ＣＬＴ  命令ラインユーティリティー
ＩＯＣＴＬ  入出力制御
ＬＢＡｓ  論理ブロックアドレス
ＳＳＤ  ソリッドステートドライブ
ＳＳＬ  保安ソケット階層
ＴＬＳ  伝送階層保安
【図１】
2018041448.tif 000003
【図２】
2018041448.tif 000004
【図３】
2018041448.tif 000005
【図４】
2018041448.tif 000006
【図５】
2018041448.tif 000007
【図６】
2018041448.tif 000008