(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-02-21
(45)【発行日】2024-03-01
(54)【発明の名称】システム特徴をセキュアに分離するためのシステムおよび方法
(51)【国際特許分類】
G06F 21/70 20130101AFI20240222BHJP
G06F 21/62 20130101ALI20240222BHJP
【FI】
G06F21/70
G06F21/62
【外国語出願】
(21)【出願番号】P 2022117179
(22)【出願日】2022-07-22
(62)【分割の表示】P 2019552241の分割
【原出願日】2017-12-06
【審査請求日】2022-08-19
(32)【優先日】2017-03-22
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】502303739
【氏名又は名称】オラクル・インターナショナル・コーポレイション
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】バレンティノ,ラルフ・ピィ
(72)【発明者】
【氏名】ヘック,ジェームズ・エイ
(72)【発明者】
【氏名】ハートウェル,デイビッド・ダブリュ
【審査官】小林 秀和
(56)【参考文献】
【文献】特開2008-305401(JP,A)
【文献】特開2000-267847(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/70
G06F 21/62
(57)【特許請求の範囲】
【請求項1】
システムであって、
1つまたは複数のシステム特徴の組の各々の機能を有効または無効にする信号のための信号状態の組を格納する不揮発性メモリを備え、
前記システムは、
(a)前記不揮発性メモリ内に格納された前記信号状態の組が変更されることができないロックダウン状態と、
(b)前記不揮発性メモリ内に格納された前記信号状態の組が変更されることができる非ロックダウン状態とに構成可能なハードウェア要素と、
(a)前記信号状態の組を前記信号にマップし、
(b)前記信号状態に基づき前記1つまたは複数のシステム特徴の組の各々の機能を有効または無効にする前記信号を伝送する、ハードウェアロジックとを備
え、
前記ロックダウン状態と前記非ロックダウン状態との間の変化は、前記システムの物理的操作なしに引き起こされることができず、
前記システムの前記物理的操作は、(a)前記システム内に備えられたマザーボード上の2つのピンを接続するためにジャンパを追加すること、または(b)前記ジャンパを除去して、前記システム内に備えられたマザーボード上の2つのピンを切断することを備える、システム。
【請求項2】
システムであって、
1つまたは複数のシステム特徴の組の各々の機能を有効または無効にする信号のための信号状態の組を格納する不揮発性メモリを備え、
前記システムは、
(a)前記不揮発性メモリ内に格納された前記信号状態の組が変更されることができないロックダウン状態と、
(b)前記不揮発性メモリ内に格納された前記信号状態の組が変更されることができる非ロックダウン状態とに構成可能なハードウェア要素と、
(a)前記信号状態の組を前記信号にマップし、
(b)前記信号状態に基づき前記1つまたは複数のシステム特徴の組の各々の機能を有効または無効にする前記信号を伝送する、ハードウェアロジックとを備え、
前記ロックダウン状態と前記非ロックダウン状態との間の変化は、前記システム内に備えられた信頼されたエンティティを介する前記システムの遠隔操作を用いて引き起こされることができる、システム。
【請求項3】
前記ハードウェアロジックは、前記非ロックダウン状態の間に再プログラムされることができ、前記ハードウェアロジックは、前記ロックダウン状態の間に再プログラムされることができない、請求項1
または2に記載のシステム。
【請求項4】
前記ハードウェアロジックは、前記ロックダウン状態または前記非ロックダウン状態のいずれの間にも再プログラムされることができないハード化されたロジックを備える、請求項1
または2に記載のシステム。
【請求項5】
前記システムは、前記ハードウェアが前記非ロックダウン状態にあるときに前記不揮発性メモリ内に格納された前記信号状態の組を変更するための機能を含む前記ハードウェアロジックの外部のコントローラをさらに備え、前記コントローラは、前記ハードウェアが前記ロックダウン状態にあるときに前記不揮発性メモリ内に格納された前記信号状態の組を変更することができない、請求項1から請求項
4のいずれか1項に記載のシステム。
【請求項6】
前記コントローラは、ベースボード管理コントローラ(BMC)である、請求項
5に記載のシステム。
【請求項7】
前記コントローラは、前記ハードウェアが前記ロックダウン状態にあるときに前記不揮発性メモリ内に格納された前記信号状態の組を読み込むための機能を含む、請求項
5に記載のシステム。
【請求項8】
前記不揮発性メモリは、前記ハードウェアロジックのみを介してアクセス可能である、請求項1から請求項
7のいずれか1項に記載のシステム。
【請求項9】
方法であって、
システムの不揮発性メモリに、1つまたは複数のシステム特徴の組の各々の機能を有効または無効にする信号のための信号状態の組を格納することと、
前記システムのハードウェアを、
(a)前記不揮発性メモリ内に格納された前記信号状態の組が変更されることができないロックダウン状態と、
(b)前記不揮発性メモリ内に格納された前記信号状態の組が変更されることができる非ロックダウン状態とに構成することと、
ハードウェアロジックが前記信号状態の組を前記信号にマッピングすることと、
前記ハードウェアロジックが、前記信号状態に基づき前記1つまたは複数のシステム特徴の組の各々の機能を有効または無効にする前記信号を伝送することとを備
え、
前記ロックダウン状態と前記非ロックダウン状態との間の変化は、前記システムの物理的操作なしに引き起こされることができず、
前記システムの前記物理的操作は、(a)前記システム内に備えられたマザーボード上の2つのピンを接続するためにジャンパを追加すること、または(b)前記ジャンパを除去して、前記システム内に備えられたマザーボード上の2つのピンを切断することを備える、方法。
【請求項10】
方法であって、
システムの不揮発性メモリに、1つまたは複数のシステム特徴の組の各々の機能を有効または無効にする信号のための信号状態の組を格納することと、
前記システムのハードウェアを、
(a)前記不揮発性メモリ内に格納された前記信号状態の組が変更されることができないロックダウン状態と、
(b)前記不揮発性メモリ内に格納された前記信号状態の組が変更されることができる非ロックダウン状態とに構成することと、
ハードウェアロジックが前記信号状態の組を前記信号にマッピングすることと、
前記ハードウェアロジックが、前記信号状態に基づき前記1つまたは複数のシステム特徴の組の各々の機能を有効または無効にする前記信号を伝送することとを備え、
前記ロックダウン状態と前記非ロックダウン状態との間の変化は、前記システム内に備えられた信頼されたエンティティを介する前記システムの遠隔操作を用いて引き起こされることができる、方法。
【発明の詳細な説明】
【技術分野】
【0001】
技術分野
本発明は、コンピュータセキュリティに関する。特に、本発明は、1つまたは複数のシステム特徴の選択的分離に関する。
【0002】
優先権
この出願は、2017年3月22日に出願された米国仮出願第15/466,484号の利益と優先権を主張し、その全体は、参照によりここに組み込まれる。
【背景技術】
【0003】
背景
コンピューティングシステムは、多くのコンポーネントおよび特徴を含む。コンポーネントは、ユニバーサルシリアルバス(USB)といったインターフェース、不揮発性メモリといったハードウェア、およびリモートサーバ管理のために使用される管理コントローラといった統合されたデバイスを含む。特徴は、コンポーネントがターンオンにされもしくはターンオフにされているかどうか、コンポーネントがリセット状態に保持されているか、またはコンポーネントがクロックにアクセスし得るかといった、コンポーネントの一部または状態を含む。
【0004】
これらのコンポーネントおよび特徴の各々は、潜在的な攻撃のベクトルとして参照され得、ここから無許可のエンティティがシステムにリモートに侵入し、システムを変更し得る。いくつかのこれらのコンポーネントは、あるユーザに対して非常に望ましくあり得、別のユーザによってセキュリティの懸念のために明確に禁止される。たとえば、あるユーザは、USBインターフェースを必要とし得、一方、別のユーザは、セキュリティの理由のために彼女のシステム上にUSBインターフェースを有することができない。
【0005】
ソフトウェアベースの解決策は、周辺インターフェースに対してソフトウェアをアンロードすることまたは無効化することを含む。たとえば、ネットワークスタックまたはドライバは、アンロードされまたは無効にされ得る。しかし、ソフトウェア変更は、無許可の者によって、リモートにまたはシステム上の隠しソフトウェアの実行を通して覆され得る。暗号化、パスワード、およびドライバ認証といった適用された保護のレイヤにも関わらず、ソフトウェアベースの解決策は、リモートに覆されやすい。せいぜい、ソフトウェア変更は、システムの侵入に成功するのをより困難にし、時間がかかるようにする。
【0006】
このセクションにおいて記載されたアプローチは、特許請求可能なアプローチであり、既知のまたは特許請求されたアプローチとはかぎらない。したがって、特に明記しない限り、このセクションに記載されたアプローチのいずれかが、単にこのセクションに含まれているという理由だけで、先行技術として認められると想定されるべきではない。
【0007】
図面の簡単な説明
実施形態は、添付の図面の図において限定ではなく例として示される。本開示における「ある」または「1つ」の実施形態への言及は、必ずしも同じ実施形態への言及ではなく、少なくとも一つを意味することに留意されたい。
【図面の簡単な説明】
【0008】
【
図1A】1つまたは複数の実施形態に従う、ロックダウン状態にあるシステムを示す。
【
図1B】1つまたは複数の実施形態に従う、非ロックダウン状態にあるシステムを示す。
【
図2】1つまたは複数の実施形態に従う、信号状態の組を変更するための例示的動作の組を示す。
【
図3】1つまたは複数の実施形態に従うシステムのブロック図を示す。
【発明を実施するための形態】
【0009】
詳細な説明
以下の説明では、説明の目的で、完全な理解を提供するために多くの特定の詳細が述べられる。1つまたは複数の実施形態は、これらの特定の詳細なしで、実施されることができる。1つの実施形態で説明される特徴は、異なる実施形態で説明される特徴と組み合わせることができる。いくつかの例では、本発明を不必要に不明瞭にすることを避けるために、ブロック図形式を参照して既知の構造およびデバイスを説明する。
【0010】
1. 一般概要
2. ロックダウン構成にあるシステム
3. 非ロックダウン構成にあるシステム
4. システム特徴の分離
5. リモート再構成
6. その他、拡張
7. ハードウェア概要
【0011】
1.一般概要
1つまたは複数の実施形態は、システム特徴を選択的におよびセキュアに分離することを含む。システムは、1つまたは複数の特徴を含む。1つまたは複数のこれらの特徴は、無効状態にあり得、または有効状態にあり得る。システムは、ロックダウン状態へと構成されることができ、その状態では特定のシステム特徴の無効にされた状態または有効にされた状態は、変えられることができない。
【0012】
実施形態では、システムは、不揮発性メモリを含み、これは、システム特徴の各々に対する信号状態を備える信号状態の組を格納する。ロックダウン状態では、信号状態の組は、変更されることができない。システムはまた、非ロックダウン状態に構成されることができ、その状態では信号状態の組は、変更されることができる。ハードウェアロジックは、信号状態に基づきシステム特徴の機能を構成する。
【0013】
本明細書に記載されおよび/または特許請求の範囲に記載される1つまたは複数の実施形態は、この一般概要セクションに含まれていない場合がある。
【0014】
2.ロックダウン構成におけるシステム
図1Aは、1つまたは複数の実施形態に従う、ロックダウン構成におけるシステムを示す。プログラマブルハードウェアロジック110は、不揮発性ストレージ116内に格納された信号状態118に基づき機能を実装する。システムはさらに、プログラミングインターフェース102、ロックダウンジャンパ104、ベースボード管理コントローラ(BMC)112、および特徴120a-120nを含む。システムはさらに、マザーボード(図示されない)を含む。1つまたは複数の実施形態では、システムは、
図1A内に示されたコンポーネントよりも多いまたは少ないコンポーネントを含み得る。
図1A内に示されたコンポーネントは、互いにローカルにまたはリモートにあり得る。
図1A内に示されたコンポーネントは、ソフトウェアおよび/またはハードウェア内に実装され得る。各コンポーネントは、複数のアプリケーションおよび/またはマシンにわたって分散され得る。複数のコンポーネントは、1つのアプリケーションおよび/またはマシンへと組み合わ
され得る。1つのコンポーネントに対して記載された動作は、代わりに別のコンポーネントによって行われ得る。
【0015】
1つまたは複数の実施形態では、特徴(たとえば、特徴120a-120n)は、デバイス、デバイスの一部、または2つ以上のデバイスの組み合わせを参照する。例示的デバイスは、ネットワークスタック、ドライバ、管理コントローラ、および拡張スロットを含む。デバイスの特徴は、デバイスへの電力、デバイスがリセット状態にあるかどうか、デバイスのクロック、およびデバイスの入力または出力を含む。
【0016】
1つまたは複数の実施形態では、プログラマブルハードウェアロジック110は、集積回路(IC)に対応する。プログラマブルハードウェアロジックは、フィールドプログラマブルゲートアレイ(FPGA)、コンプレックスプログラマブルロジックデバイス(CPLD)、または任意の他の種類のプログラマブルロジックデバイス(PLD)であり得る。
【0017】
プログラマブルハードウェアロジック110は、特徴120a-120n、プログラミングインターフェース102、バッファ122、データインターフェース114、および不揮発性ストレージ116に直接接続を介してまたはネットワークを介して通信可能に結合され得る。さらに、プログラマブルハードウェアロジック110は、BMC112、不揮発性ストレージ116、および特徴120a-120nと同じコンピューティングシステム上に実装され得またはその上で実行し得る。代替的にまたは追加的に、プログラマブルハードウェアロジック110は、BMC112、不揮発性ストレージ116、および特徴120a-120nとは別個のコンピューティングシステム上に実装されまたはその上で実行し得る。プログラマブルリードオンリーメモリ(PROM)はまた、プログラマブルハードウェアロジックの機能を行い得る。
【0018】
別の実施形態では、プログラム不可のハードウェアロジックは、プログラマブルハードウェアロジックの代わりに使用され得る。ハードウェアロジックは、ハード化されたロジックを含み得る。ハード化されたロジックは、システムがロックダウン状態または非ロックダウン状態にあるかどうかに関わらず、再プログラムされることができない。
【0019】
実施形態では、プログラマブルハードウェアロジック110は、特徴120a-120nを制御するための機能を含む。プログラマブルハードウェアロジックは、特徴に、その特徴を有効または無効にする信号を伝送するための機能を含み得る。プログラマブルハードウェアロジックは、0(すなわち、ロー、または真ではない)または1(すなわち、ハイ、または真)を論理的に特定し得る。プログラマブルハードウェアロジックは、0または1を有効または無効信号にマップするための機能を含み得る。プログラマブルハードウェアロジックの構成は、少なくとも部分的に、不揮発性ストレージ116内に格納された信号状態118によって規定され得る。プログラマブルハードウェアロジックは、信号状態118と特徴120a-120nのそれぞれの特徴の有効性との間のマッピングを格納し得る。追加的に、プログラマブルハードウェアロジックは、不揮発性ストレージ内の信号状態を変更するための機能を含み得る。
【0020】
図1Aでは、
図1A内の特徴120a-120nを指し示す矢印で示されるように、特徴120a-120nは無効にされる。特徴は、プログラマブルハードウェアロジックから受信された特定の信号に応じて無効にされる。たとえば、特徴は、ハードドライブの電源であり得る。プログラマブルハードウェアロジックは、ハードドライブへの電力を無効にするための信号を伝送し得る。ハードドライブへの電力およびハードドライブそれ自体は、動作不能にレンダリングされる。特徴は、ロックダウンモードなどで必ずしもすべて無効にされることを要さない。各デバイスは、所望のセキュリティモデルに依存して選択
的に無効または有効にされ得る。たとえば、特徴aおよび特徴bは、有効にされ得、特徴nは、無効にされ得る。別の例として、すべての特徴は、有効にされ得る。
【0021】
実施形態では、プログラミングインターフェース102は、プログラマブルハードウェアロジック110を構成するための命令を伝送するように構成されるハードウェアおよび/またはソフトウェアを含む。プログラミングインターフェースは、プログラマブルハードウェアロジックに命令を伝送し、プログラマブルハードウェアロジックのハードウェアロジックを変更するための機能を含み得る。プログラミングインターフェースは、任意の種類のインターフェースであり得、限定しない一例として、シリアルバス(Joint Test Action Group(JTAG)バスなど)、パラレルインターフェイス、または汎用入出力(GPIO)である。
【0022】
プログラミングインターフェースは、プログラムマブルハードウェアロジックを構成するための命令を含むコードを含むプロセッシングユニットに接続され得る。追加的にまたは代替的に、プログラミングインターフェースは、ユーザ入力を受信するために通信可能に結合され得る。ユーザ入力は、たとえば、コードを受信するためのコマンドライン、またはアプリケーションプログラミングインターフェイス(API)から受信され得る。
【0023】
実施形態では、不揮発性ストレージ116は、信号状態の組を格納するための機能を含む。不揮発性ストレージは、スタティックランダムアクセスメモリであり、システムが電源オフのときに内容がそこに保存される。したがって、システムの電源がオンオフされても、不揮発性ストレージ内に格納された設定は、保たれる。不揮発性ストレージは、例えば、読み取り専用メモリ(ROM)、プログラム可能な読み取り専用メモリ(PROM)、フラッシュメモリ、ハードディスクドライブ、または磁気テープであり得る。不揮発性ストレージ116は、プログラマブルハードウェアロジック110のみに直接接続され、そうでなければシステムから分離される。不揮発性ストレージは、プログラムマブルハードウェアロジックによってのみ変更されることができる。
【0024】
実施形態では、信号状態118は、不揮発性ストレージ116に格納される。信号状態は、所与の信号に対して可能な離散的な値である。信号状態は、有効/無効テーブルとして格納され得る。有効/無効テーブルは、特定の特徴を有効または無効にするかどうかを決定するために使用されるべき設定を格納する。信号状態は、たとえば、1(ハイ)または0(ロー)であり得る。プログラマブルハードウェアロジックは、信号状態を変更し得る。信号状態を保持する不揮発性ストレージがプログラマブルハードウェアロジックのみに結合され、そうでなければシステムから分離されるので、信号状態は、プログラマブルハードウェアロジックからの命令なしに変更されることができない。
【0025】
実施形態では、BMC112は、プログラマブルハードウェアロジック110を通して不揮発性ストレージ116をプログラムするための機能を含むコントローラである。BMCは、電力制御、故障検出、および送信アラートといった機能を行うことによってシステムを監視し管理するための機能を含む。BMCは、システム特徴内の故障を検出し得、その結果、信号状態を再プログラムしてその特徴を無効にする。BMCは、プログラマブルハードウェアロジック110にデータインターフェース114を介して結合される。BMCの代わりに、外部コントローラまたはホストは、不揮発性ストレージをプログラムするために使用され得る。
【0026】
実施形態では、データインターフェース114は、BMC112がプログラマブルハードウェアロジック110内のデータを変化させることを可能とする通信インターフェースである。データインターフェースは、命令をプログラマブルハードウェアロジックに伝送し、不揮発性ストレージ116内に格納された1つまたは複数の信号状態118を変更し
得る。データインターフェースは、任意の種類のインターフェースであり得、限定しない一例として、シリアルバス(たとえば、インターインテグレーテッドサーキット(I2C))、パラレルインターフェイス、または汎用入出力(GPIO)通信インターフェースである。
【0027】
実施形態では、ロックダウンジャンパ104は、マザーボード上の2つのピンを接続するために挿入され得る短い長さの導電体である。ロックダウンジャンパは、マザーボードに挿入されまたはそこから除去され得、回路を開閉する。
図1Aでは、ロックダウンジャンパが配置される。ロックダウンジャンパが挿入されるとき、システムは、ロックダウンモードにある。ロックダウンジャンパが配置された状態で、0(ロー)信号は、伝送される。代替的に、システムは、ロックダウンジャンパが配置されたときに1(ハイ)信号が伝送されるように構成され得る。ロックダウンジャンパが配置された状態でどちらの信号が送信されるように構成されようとも、その信号は、無効を意味するようにプログラムされる。無効信号は、システム上で実行する任意のソフトウェアによって変更されることができない。無効信号は、ロックダウンジャンパを物理的に除去することによってのみ変更されることができる。無効信号106、124は、ロックダウンジャンパが配置されたときに送信される。
【0028】
無効信号106は、分離バッファ108を制御する。プログラミングインターフェース102は、プログラマブルハードウェアロジック110に分離バッファ108を通して接続する。無効信号は、プログラミングインターフェースがプログラマブルハードウェアロジックの内容を変更することを阻止する。無効106は、ロックダウンジャンパのみを通して制御されることが可能である。ロックダウンジャンパは、プログラミングインターフェースを物理的に中断して、プログラマブルハードウェアロジックを分離する。ロックダウンジャンパが配置されたときに、プログラミングインターフェースの電気的分離が存在する。
【0029】
無効信号106は、ロックダウンジャンパからプログラミングインターフェース102へとバッファ108を介して伝送される信号である。無効信号106は、プログラミングインターフェースがプログラマブルハードウェアロジックと通信し、および/またはこれを構成することを無効にする。無効信号は、必要な電力および/または接続をアクティベート解除することによって通信を阻止し得る。ロックダウンジャンパが存在するとき、プログラミングインターフェースは、プログラマブルハードウェアロジックを変更することができない。
【0030】
無効124は、ロックダウンジャンパからプログラマブルハードウェアロジック110へと、バッファ122を介して伝送される信号である。無効124は、プログラマブルハードウェアロジック110の入力に、データインターフェース114に送信される。無効信号がアクティブであるとき、データインターフェースは、信号状態118を変更しないように論理的に分離される。無効124は、信号状態118へのアクセスを有するプログラマブルハードウェアロジック110の部分に送信される通信を遮断することによって、BMCが不揮発性ストレージを変更することを阻止する。結果として、不揮発性ストレージは、書き込み保護される。無効信号は、データインターフェースの書き込みのみを無効にし得、読み込みを無効にしない。この場合、BMCは、不揮発性ストレージ内に格納された値を依然として読み込むことができるが、その内部の任意の値を変更することができない。
【0031】
バッファ122は、プログラマブルハードウェアロジック110からの逆駆動を阻止するための機能を含む1方向バッファである。バッファ122は、プログラマブルハードウェアロジックからの信号がロックダウンジャンパからの信号を変えることを阻止する。バ
ッファ122は、データがプログラマブルハードウェアロジックに伝送されるときにデータを一時的に格納する機能をさらに含み得る。
【0032】
別のバッファであるバッファ126は、プログラマブルハードウェアロジック110の内部に置かれる。バッファ126は、ロジックバッファとして機能する。バッファ126は、1方向バッファであり得、逆駆動を阻止する。バッファ126は、プログラマブルハードウェアロジックが無効信号を変更することを阻止するための機能を含む。バッファ126は、データがプログラマブルハードウェアロジックからおよび/またはそこへと伝送されるときに、データを一時的に格納するための機能をさらに含み得る。
【0033】
3.非ロックダウン構成にあるシステム
図1Bは、1つまたは複数の実施形態に従う、非ロックダウン構成にあるシステムを示す。プログラミングインターフェース102と、BMC112と、データインターフェース114と、バッファ108、122、126と、プログラマブルハードウェアロジック110と、不揮発性ストレージ116と、信号状態118と、特徴120a-120nとは、上述のセクション2において
図1Aを参照して説明されたが、以下に記述するように異なって実装されまたは異なって動作し得る。
図1Bでは、システムは、非ロックダウン状態にある。ロックダウンジャンパは、非ロックダウン状態において挿入されない。
図1B内に示されたコンポーネントは、互いにローカルにまたはリモートにあり得る。
図1B内に示されたコンポーネントは、ソフトウェアおよび/またはハードウェア内に実装され得る。各コンポーネントは、複数のアプリケーションおよび/またはマシンにわたって分散され得る。複数のコンポーネントは、1つのアプリケーションおよび/またはマシンへと組み合わされ得る。1つのコンポーネントに対して記載された動作は、代わりに別のコンポーネントによって行われ得る。
【0034】
ロックダウンジャンパが挿入されないとき、システムは、非ロックダウンモードにある。ロックダウンジャンパが無い状態で、システムは、1(ハイ)信号を伝送する。代替的に、システムは、ロックダウンジャンパが配置されていないときに0(ロー)信号を伝送し得る。いずれの場合にも、0または1それぞれは、有効信号に対応する。ロックダウンジャンパが配置されていない状態で、システムは、有効信号130、132を生成する。
【0035】
有効信号130は、ロックダウンジャンパからプログラミングインターフェース102にバッファ108を介して伝送される信号である。有効信号130は、プログラミングインターフェースを有効にしてプログラマブルハードウェアロジックと通信し、および/またはこれを構成する。有効信号は、必要な電力および/または接続をアクティベートすることによって通信を可能とし得る。ロックダウンジャンパが無いときに、プログラミングインターフェースは、プログラマブルハードウェアロジックを変更することができる。
【0036】
有効132は、ロックダウンジャンパからプログラマブルハードウェアロジック110へとバッファ122を介して伝送される信号である。有効信号132は、データインターフェース114が有効にされることを引き起こす。有効信号は、必要な電力および/または接続をアクティベートすることによってデータインターフェースを有効にし得る。BMCは、データインターフェース114を介して、プログラマブルハードウェアロジック110を介した不揮発性ストレージへの読み込みおよび書き込みの両方をし得る。ロックダウンジャンパが挿入されないとき、プログラマブルハードウェアロジックは、不揮発性ストレージ内の信号状態を変更することができる。
【0037】
4. システム特徴の分離
図2は、1つまたは複数の実施形態に従う、システム特徴を分離するための例示的動作の組を示す。
図2において示された1つまたは複数の動作は、変形され、再配置され、ま
たはすべて削除され得る。従って、
図2に示される特定の動作シーケンスは、1つ以上の実施形態の範囲を限定するものとして解釈されるべきではない。
【0038】
実施形態では、システムは、システム特徴の組に対する信号状態を格納する(動作202)。信号状態は、所与のデバイスに対応するビットを変更することによって不揮発性ストレージ内に格納され得る。プログラマブルハードウェアロジックは、BMCから命令を受信し、特定の信号状態を格納し得る。プログラマブルハードウェアロジックは、BMCからの命令を受信したことに応答して、プログラマブルハードウェアロジック内に格納された信号状態を変更し得る。
【0039】
たとえば、BMCは、システムを攻撃から強化するために所与の特徴が無効にされるべきと決定し得る。BMCは、データインターフェースを介して、特徴を無効にするための命令を伝送し得る。要求に応答して、プログラマブルハードウェアロジックは、そのデバイスに対応するテーブルエントリ内に1または0の信号状態を格納するように不揮発性ストレージに命令する。
【0040】
プログラマブルハードウェアロジックは、信号状態に基づきシステム特徴の機能を構成する。(動作204)。プログラマブルハードウェアロジックは、信号状態を、システム特徴を有効または無効にするための命令に変換するために、マッピングを使用し得る。ハードウェアロジックは、対応する命令をシステム特徴に伝送する。特徴が無効にされる場合、特徴は、システムの残りの部分から分断されおよび/または機能することを阻止される。特徴が有効にされた場合、特徴は、機能しおよび/またはシステムの残りの部分と通信し得る。
【0041】
システムは、それがロックダウン構成にあるかまたは非ロックダウン構成にあるかで異なる振る舞いをし得る(206)。システムがロックダウン構成にあるかどうかは、ハードウェアロジックの問題であり、ロックダウンジャンパがマザーボードへと挿入されるかされないかによって決定される。代替的にまたは追加的に、システムは、セクション5において以下に説明するように、リモートでロックダウンまたは非ロックダウン構成へとされることができる。
【0042】
システムがロックダウン構成にある場合、システムは、信号状態が変更されることを禁止する(動作210)。ロックダウン構成では、ロックダウンジャンパは、挿入され、このことは、無効信号を生成し、ハードウェアロックを実効的に作成する。無効信号は、プログラマブルハードウェアロジックへのプログラミングインターフェースを遮断する。ハードウェアロックは、プログラマブルハードウェアロジックの更新を阻止する。ソフトウェアは、信号状態を覆すことができない。無効信号はまた、BMCからプログラマブルハードウェアロジックへのデータインターフェースを遮断する。データインターフェースを無効にすることは、ソフトウェアが不揮発性ストレージ内に格納された信号状態を変更することをプログラマブルハードウェアロジックが可能とするのを阻止する。無効信号は、プログラマブルハードウェアロジックがその内部ハードウェアロジックを変更するのをさらに禁止する。プログラマブルハードウェアロジック内のハードウェアロジックの再構成を阻止することは、プログラマブルハードウェアロジックが信号状態を直接的に変更することを阻止する。
【0043】
システムがロックダウン構成にない場合(システムは非ロックダウン状態にある場合)、システムは、信号状態が変更されることを可能とする(動作220)。非ロックダウン構成では、ロックダウンジャンパは、挿入されず、このことは、有効信号がプログラマブルハードウェアロジックに伝送されることを引き起こす。この有効信号は、ソフトウェアが不揮発性ストレージ内に格納された信号状態を変更することを可能とするのを、プログ
ラマブルハードウェアロジックに可能とする。有効信号はまた、プログラミングインターフェースに伝送される。この有効信号は、ソフトウェアがプログラマブルハードウェアロジックを変更することを可能とする。
【0044】
たとえば、システムは、1つの特徴、たとえばドライバに対する信号状態を含む。不揮発性ストレージは、ドライバに対する1という信号状態を格納する。プログラマブルハードウェアロジックは、ドライバに対応するこの1という信号状態を取得する。プログラマブルハードウェアロジックは、取得された信号状態に応答して、1を有効信号にマップする。プログラマブルハードウェアロジックは、有効信号をドライバに伝送する。
【0045】
ロックダウンジャンパは、挿入されない。システムは、非ロックダウン状態にある。この状態では、有効信号は、プログラマブルハードウェアロジックへのプログラミングインターフェースに伝送される。有効信号は、ハードウェアロジックを変更するためにソフトウェアを有効にする。たとえば、プログラミングインターフェースからの命令は、プログラマブルハードウェアロジックに直接的に命令し、ドライバを無効にするためにその内部ロジックを再構成する。
【0046】
非ロックダウンモードでは、有効信号はまた、BMCへのデータインターフェースに伝送される。この有効信号は、プログラマブルハードウェアロジックにデータインターフェースを介して命令を送信することによって、不揮発性ストレージ内の信号状態を変更するためにBMCを有効にする。
【0047】
たとえば、BMCは、ドライバが攻撃を受けやすいと決定し得、その信号状態を0に設定する。プログラマブルハードウェアロジックがドライバのための信号状態を参照するとき、それは、信号状態が0であると分かる。プログラマブルハードウェアロジックは、無効信号をドライバに送信するためにそのハードウェアを再構成する。そして、ドライバは無効にされる。
【0048】
ドライバが無効に維持されることを確実にするため、システムとの物理対話が必要とされる。管理者は、ロックダウンジャンパをシステムのマザーボード上の2つのピンの間に挿入する。ロックダウンジャンパの挿入は、システムをロックダウンモードにさせる。
【0049】
ロックダウン状態では、システムは、無効信号をプログラマブルハードウェアロジックに伝送する。この無効信号は、プログラマブルハードウェアロジックの変更を阻止する。ソフトウェアは、プログラマブルハードウェアロジックに、そのハードウェアロジックを再構成してドライバを有効にするよう命令することができない。
【0050】
システムは、プログラマブルハードウェアロジックへの無効信号をBMCへのデータインターフェースにさらに伝送する。この無効信号は、BMCが不揮発性ストレージ内に格納された信号状態をプログラマブルハードウェアロジック110の機能を変えることによって調整することを阻止する。BMCは、プログラマブルハードウェアロジックにドライバのための信号状態を(ドライバを有効にする)1に変化させるよう命令することができない。不揮発性ストレージは、書き込み保護され、変更されることができない。
【0051】
そして、どのソフトウェアもプログラマブルハードウェアロジックまたは不揮発性ストレージ内の信号状態を再構成することができない。ドライバは、ロックダウンジャンパが物理的に除去され、信号状態が再構成されない限り、無効に維持される。
【0052】
5.リモート再構成
実施形態では、システムは、ロックダウン状態へとまたはそれからリモートに再構成さ
れることができる。ロックダウンは、ジャンパを用いてアサートされる必要はない。この場合、ロックダウンは、システム内の信頼されたエンティティを使用してアサートされ、これは、システムのリモート管理を可能とする。
【0053】
無許可のリモート再構成を阻止するために、システムは、信頼されたエンティティを含む。信頼されたエンティティは、たとえば、独自のプライベートインタフェースを有するアドインカードであり得る。信頼されたカードは、システムの残りの部分から分離され、信頼されたユーザまたはデバイスによってのみ制御下に維持される。信頼されたカードは、簡易なマイクロコントローラ上で動作し得、それが信頼された状態にあることを検証するのを容易にする。信頼されたエンティティは、システム内の信号をシステムのセキュリティモデルとは独立に操作する。たとえば、信頼されたエンティティは、有効または無効信号を操作することができ、または信頼されたエンティティは、システムへの電力を操作することができる。
【0054】
信頼されたエンティティは、セキュアなジャンパの代わりにシステムロジックに接続される。信頼されたエンティティは、外部ソースからの命令を受信することができる。信頼されたエンティティはそして、有効または無効信号の伝送を上述のように制御し得る。
【0055】
実施形態では、信頼されたエンティティは、リモートインタフェースに信頼されたリモート接続を介して通信可能に結合される。信頼されたリモート接続は、システムに接続された任意の他のインターフェースに対してプライベートである。信頼されたリモート接続は、シリアルインタフェース、および/またはプライベートネットワークのみに接続するネットワーク接続であり得る。リモートインタフェースを使用することによって、認可されたユーザは、ハードウェア構成をセキュアモードへとまたはそれから変え得る。
【0056】
6.その他、拡張
実施形態は、ハードウェアプロセッサを含み、本明細書に記載および/または添付の特許請求の範囲のいずれかに列挙される動作のいずれかを実行するように構成される1つまたは複数のデバイスを有するシステムに向けられる。
【0057】
実施形態では、非一時的なコンピュータ可読記憶媒体は、1つまたは複数のハードウェアプロセッサによって実行されると、本明細書に記載されたおよび/または請求項のいずれかに記載された動作を実行させる命令を含む。
【0058】
本明細書で説明される特徴および機能の任意の組み合わせは、1つまたは複数の実施形態に従って使用され得る。上述の明細書において、実施形態は、実装ごとに異なり得る多数の特定の詳細を参照して説明されてきた。したがって、明細書および図面は、限定的な意味ではなく、例示的な意味で考えられるべきである。本発明の範囲の唯一かつ排他的な指標および本出願人が本発明の範囲とすることを意図するものは、本出願から発行される特許請求の範囲の文言通りおよび均等の範囲であり、そのような特許請求の範囲は、特定の形式において後の訂正を含む。
【0059】
7.ハードウェア概要
1つの実施形態に従って、ここで説明される技法は、1つまたは複数の特定用途のコンピューティングデバイスによって実装される。特定用途コンピューティングデバイスは、技法を実行するために有線であり得、または技法を実行するために永続的にプログラムされた1つまたは複数の特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、またはネットワーク処理ユニット(NPU)といったデジタル電子デバイスを含み得、またはファームウェア、メモリ、他のストレージ、または組み合わせにおけるプログラム命令に従って技法を実行するようにプログラムされた1つまたは
複数の汎用ハードウェアプロセッサを含み得る。そのような特定用途コンピューティングデバイスは、カスタム有線ロジック、ASIC、FPGA、またはNPUをカスタムプログラミングと組み合わせて、技法を実現し得る。特定用途コンピューティングデバイスは、デスクトップコンピュータシステム、ポータブルコンピューターシステム、ハンドヘルドデバイス、ネットワークデバイス、または技法を実装するための有線および/またはプログラムロジックを組み込んだ任意の他のデバイスであり得る。
【0060】
たとえば、
図3は、本発明の実施形態がその上に実装され得るコンピュータシステム300を示すブロックダイアグラムである。コンピュータシステム300は、情報を通信するためのバス302または他の通信機構、および情報を処理するためにバス302と結合されたハードウェアプロセッサ304を含む。ハードウェアプロセッサ304は、たとえば、汎用マイクロプロセッサであり得る。コンピュータシステム300はまた、プロセッサ304によって実行される情報および命令を格納するためにバス302に結合されたランダムアクセスメモリ(RAM)または他の動的ストレージデバイスなどのメインメモリ306を含む。メインメモリ306はまた、プロセッサ304によって実行される命令の実行中に一時変数または他の中間情報を格納するために使用され得る。そのような命令は、プロセッサ304がアクセス可能な非一時的記憶媒体に格納されると、コンピュータシステム300を、命令において特定された動作を実行するようにカスタマイズされた特定用途マシンにする。
【0061】
コンピュータシステム300は、プロセッサ304に対する静的情報および命令を格納するためにバス302に結合された読み出し専用メモリ(ROM)308または他の静的ストレージデバイスをさらに含む。磁気ディスクまたは光ディスクなどの記憶装置310が提供され、情報および命令を格納するためにバス302に結合される。
【0062】
コンピュータシステム300は、情報をコンピュータユーザに表示するために、バス302を介して陰極線管(CRT)などのディスプレイ312に結合され得る。英数字および他のキーを含む入力デバイス314は、情報およびコマンド選択をプロセッサ304に伝達するためにバス302に結合される。別の種類のユーザ入力デバイスは、方向情報およびコマンド選択をプロセッサ304に伝達し、ディスプレイ312上のカーソル移動を制御するためのマウス、トラックボール、またはカーソル方向キーなどのカーソル制御316である。この入力デバイスは典型的に、第1軸(xなど)および第2軸(yなど)の2つの軸において2つの自由度があり、デバイスが平面内の位置を特定可能にする。
【0063】
コンピュータシステム300は、カスタマイズされた有線ロジック、1つまたは複数のASICまたはFPGA、ファームウェアおよび/またはプログラムロジックを使用して本明細書に記載の技法を実装し、これらはコンピュータシステムと組み合わせてコンピュータシステム300を特定用途マシンにするまたはプログラムする。一実施形態によれば、本明細書の技法は、プロセッサ304がメインメモリ306に含まれる1つまたは複数の命令の1つまたは複数のシーケンスを実行したことに応答して、コンピュータシステム300によって実行される。そのような命令は、ストレージデバイス310などの別の記憶媒体からメインメモリ306に読み込まれ得る。メインメモリ306に含まれる命令のシーケンスの実行により、プロセッサ304は本明細書に記載の処理ステップを実行する。代替実施形態では、ソフトウェア命令の代わりに、またはそれと組み合わせて、有線回路を使用することができる。
【0064】
本明細書で使用される「記憶媒体」という用語は、マシンを特定の方法で動作させるデータおよび/または命令を記憶する任意の非一時的媒体を指す。そのような記憶媒体は、不揮発性媒体および/または揮発性媒体を含み得る。不揮発性媒体は、たとえば、ストレージデバイス310などの光ディスクまたは磁気ディスクが含まれる。揮発性媒体は、メ
インメモリ306などの動的メモリを含む。記憶媒体の一般的な形態は、たとえば、フロッピー(登録商標)ディスク、フレキシブルディスク、ハードディスク、ソリッドステートドライブ、磁気テープ、または他の磁気データ記憶媒体、CD-ROM、その他の光学データ記憶媒体、穴のパターンを備えた物理媒体、RAM、PROM、およびEPROM、フラッシュEPROM、NVRAM、その他のメモリチップまたはカートリッジ、連想メモリ(CAM)、およびTernary Content-Addressable Memory(TCAM)を含む。
【0065】
記憶媒体は、伝送媒体と別のものであるが、これと組み合わせて使用されることができる。伝送メディアは、記憶媒体間の情報の送信に関与する。たとえば、伝送媒体は、バス302を構成するワイヤを含む同軸ケーブル、銅線、光ファイバーを含む。伝送媒体は、電波および赤外線データ通信中に生成される音波などの音響波または光波の形態を取ることができる。
【0066】
さまざまな形態の媒体が、実行のためにプロセッサ304に1つまたは複数の命令の1つまたは複数のシーケンスを運ぶことに関与し得る。たとえば、命令は、初期的にリモートディスクの磁気ディスクまたはソリッドステートドライブで実行されることができる。リモートコンピュータは、命令を動的メモリにロードし、モデムを使用して電話回線で命令を送信することができる。コンピュータシステム300に対してローカルなモデムは、電話線でデータを受信し、赤外線送信機を使用してデータを赤外線信号に変換することができる。赤外線検出器は、赤外線信号で運ばれるデータを受信でき、適切な回路は、データをバス302に配置することができる。バス302は、データをメインメモリ306に運び、プロセッサ304は、そこから命令を取り出して実行する。メインメモリ306によって受信された命令は、プロセッサ304による実行の前または後のいずれかに、ストレージデバイス310に任意に格納され得る。
【0067】
コンピュータシステム300はまた、バス302に結合された通信インターフェース318を含む。通信インターフェース318は、ローカルネットワーク322に接続されたネットワークリンク320に結合する双方向データ通信を提供する。例えば、通信インターフェース318は、統合サービスデジタルネットワーク(ISDN)カード、ケーブルモデム、衛星モデム、または対応する種類の電話回線へのデータ通信接続を提供するモデムであり得る。別の例として、通信インターフェース318は、互換性のあるLANへのデータ通信接続を提供するローカルエリアネットワーク(LAN)カードであり得る。無線はまた、実装され得る。そのような実装では、通信インターフェース318は、さまざまな種類の情報を表すデジタルデータストリームを運ぶ電気信号、電磁信号、または光信号を送受信する。
【0068】
ネットワークリンク320は、典型的に、1つまたは複数のネットワークを介して他のデータデバイスへのデータ通信を提供する。たとえば、ネットワークリンク320は、ローカルネットワーク322を介してホストコンピューター324またはインターネットサービスプロバイダー(ISP)326によって運営されるデータ機器への接続を提供することができる。ISP326は、今日一般に「インターネット」328と呼ばれる世界規模のパケットデータ通信ネットワークを通じてデータ通信サービスを次いで提供する。ローカルネットワーク322およびインターネット328は両方とも、デジタルデータストリームを運ぶ電気信号、電磁信号または光信号を使用する。コンピュータシステム300へとまたはそこへとデジタルデータを搬送する、さまざまなネットワークを介した信号、およびネットワークリンク320および通信インターフェース318を介した信号は、伝送媒体の例示的な形態である。
【0069】
コンピュータシステム300は、ネットワーク(複数可)、ネットワークリンク320
、および通信インターフェース318を通じて、メッセージを送信し、プログラムコードを含むデータを受信することができる。インターネットの例では、サーバ330は、インターネット328、ISP326、ローカルネットワーク322、および通信インターフェース318を介して、アプリケーションプログラムに要求されたコードを送信する。
【0070】
受信されたコードは、プロセッサ304が受信されたときにそれによって実行され、および/または後で実行するためにストレージデバイス310または他の不揮発性ストレージに格納され得る。
【0071】
上述の明細書では、本発明の実施形態は、実装ごとに異なり得る多数の特定の詳細を参照して説明されてきた。したがって、明細書と図面は、限定的な意味ではなく、例示的な意味で考えられるべきである。本発明の範囲の唯一かつ排他的な指標および本出願人が本発明の範囲とすることを意図するものは、本出願から発行される特許請求の範囲の文言通りおよび均等の範囲であり、そのような特許請求の範囲は、特定の形式において後の訂正を含む。