(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024018883
(43)【公開日】2024-02-08
(54)【発明の名称】コンピューティングシステムのセキュリティのシステム及び方法
(51)【国際特許分類】
G06F 21/33 20130101AFI20240201BHJP
G06F 21/64 20130101ALI20240201BHJP
【FI】
G06F21/33
G06F21/64
【審査請求】有
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2023016564
(22)【出願日】2023-02-07
(31)【優先権主張番号】17/875,967
(32)【優先日】2022-07-28
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】508018934
【氏名又は名称】廣達電腦股▲ふん▼有限公司
【氏名又は名称原語表記】Quanta Computer Inc.
【住所又は居所原語表記】No.188,Wenhua 2nd Rd.,Guishan Dist.,Taoyuan City 333,Taiwan
(74)【代理人】
【識別番号】100108833
【弁理士】
【氏名又は名称】早川 裕司
(74)【代理人】
【識別番号】100162156
【弁理士】
【氏名又は名称】村雨 圭介
(72)【発明者】
【氏名】陳 政翰
(72)【発明者】
【氏名】黄 俊傑
(57)【要約】
【課題】インバンドアクセス中のセキュリティを向上させるシステム及び方法を提供する。
【解決手段】コンピューティングシステムであって、基本入出力システム(BIOS)と、BIOSに結合され、コンピューティングシステムの1人以上のユーザーからコマンドを受信し、ロック状態とロック解除状態との間を遷移するように構成されたベースボード管理コントローラ(BMC)と、BIOS及びBMCに結合された1つ以上のハードウェアコンポーネントと、を備え、BMCは、1人以上のユーザーのそれぞれのユーザーからロック解除コマンドを受信することであって、ロック解除コマンドは、ロック解除署名を含む、ことと、ロック解除署名が真正かどうかを判定することと、ロック状態にあることと、ロック解除署名が真正であると判定したことと、に応じて、ロック解除状態に遷移し、それぞれのユーザーが1つ以上のハードウェアコンポーネントにアクセスできるようにするようことと、を行うように構成されている、コンピューティングシステム。
【選択図】
図1
【特許請求の範囲】
【請求項1】
コンピューティングシステムであって、
基本入出力システム(BIOS)と、
前記BIOSに結合され、前記コンピューティングシステムの1人以上のユーザーからコマンドを受信し、ロック状態とロック解除状態との間を遷移するように構成されたベースボード管理コントローラ(BMC)と、
前記BIOS及び前記BMCに結合された1つ以上のハードウェアコンポーネントと、を備え、
前記BMCは、
前記1人以上のユーザーのそれぞれのユーザーからロック解除コマンドを受信することとであって、前記ロック解除コマンドは、ロック解除署名を含む、ことと、
前記ロック解除署名が真正かどうかを判定することと、
前記ロック状態にあることと、前記ロック解除署名が真正であると判定したことと、に応じて、前記ロック解除状態に遷移して、前記それぞれのユーザーが前記1つ以上のハードウェアコンポーネントにアクセスするのを可能にすることと、
を行うように構成されている、
コンピューティングシステム。
【請求項2】
前記BMCが前記ロック解除状態にある場合に、前記BMCは、(i)前記それぞれのユーザーから受信した、ロック解除コマンドでない1つ以上のコマンド、(ii)前記それぞれのユーザーから受信した、真正のロック解除署名を含まない、1つ以上のロック解除コマンド、又は、(iii)(i)及び(ii)の両方に応答するように構成されており、
前記BMCが前記ロック状態にある場合に、前記BMCは、(i)前記それぞれのユーザーから受信した、ロック解除コマンドでない任意のコマンド、(ii)前記それぞれのユーザーから受信した、真正のロック解除署名を含まない任意のロック解除コマンド、又は、(iii)(i)及び(ii)の両方を無視するように構成されている、請求項1に記載のコンピューティングシステム。
【請求項3】
前記ロック解除状態への遷移に応じて、前記BMCは、ある期間ロック解除状態に留まり、(i)前記期間内に前記それぞれのユーザーから受信した、ロック解除コマンドでない1つ以上のコマンド、(ii)前記期間内に前記それぞれのユーザーから受信した、真正のロック解除署名を含まない1つ以上のコマンド、又は、(iii)(i)及び(ii)の両方に応答するように構成されている、請求項1に記載のコンピューティングシステム。
【請求項4】
前記BMCは、
前記コンピューティングシステムがブートプロセスを実行しているかどうかを判定することと、
前記BIOSから、BIOSロック解除署名を含むBIOSロック解除コマンドを受信することと、
前記BIOSロック解除署名が真正であるかどうかを判定することと、
前記ロック状態にあることと、(i)コンピューティングシステムがブートプロセスを実行していること、及び、(ii)BIOSロック解除署名が真正であることを判別したことと、に応じて、前記ロック状態から前記ロック解除状態に遷移することと、
前記ロック解除状態にあることと、前記ブートプロセスが終了したことを判定したことと、に応じて、前記ロック解除状態から前記ロック状態に遷移することと、
を行うようにさらに構成されている、請求項1に記載のコンピューティングシステム。
【請求項5】
前記BMCは、
前記コンピューティングシステムがシステム管理モードに入ったかどうかを判定することと、
前記ロック状態にあることと、前記コンピューティングシステムが前記システム管理モードに入ったことを判定したことと、に応じて、前記ロック解除状態に遷移することと、
前記コンピューティングシステムが前記システム管理モードを終了したかどうかを判定することと、
前記ロック解除状態にあることと、前記コンピューティングシステムが前記システム管理モードを終了したことを判定したことと、に応じて、前記ロック状態に遷移することと、
を行うようにさらに構成されている、請求項1に記載のコンピューティングシステム。
【請求項6】
コンピューティングシステムを保護する方法であって、
前記コンピューティングシステムは、基本入出力システム(BIOS)と、前記BIOSに結合されたベースボード管理コントローラ(BMC)と、前記BIOS及び前記BMCに結合された1つ以上のハードウェアコンポーネントと、を備え、
前記方法は、
前記コンピューティングシステムのユーザーから、ロック解除署名を含むロック解除コマンドを受信するステップと、
前記ロック解除署名が真正であるかどうかを判定するステップと、
前記ロック解除署名が真正であることと、前記BMCがロック状態にあることことと、を判定したことに応じて、前記BMCをロック解除状態に遷移させ、前記ユーザーが前記1つ以上のハードウェアコンポーネントにアクセスできるようにするステップと、を含む、
方法。
【請求項7】
前記BMCが前記ロック解除状態にある場合に、前記BMCが、(i)前記ユーザーから受信した、ロック解除コマンドでない1つ以上のコマンド、(ii)前記ユーザーから受信した、真正のロック解除署名を含まない、1つ以上のロック解除コマンド、又は、(iii)(i)及び(ii)の両方に応答するステップと、
前記BMCが前記ロック状態にある場合に、前記BMCが、(i)前記ユーザーから受信した、ロック解除コマンドでない任意のコマンド、(ii)前記ユーザーから受信した、真正のロック解除署名を含まない任意のロック解除コマンド、又は、(iii)(i)及び(ii)の両方を無視するステップと、をさらに含む、請求項6に記載の方法。
【請求項8】
前記BMCを前記ロック解除状態に遷移させ、前記BMCをある期間前記ロック解除状態に留まらせるステップであって、前記BMCは、(i)前記期間内に前記ユーザーから受信した、ロック解除コマンドでない1つ以上のコマンド、(ii)前記期間内に前記ユーザーから受信した、真正のロック解除署名を含まない1つ以上のコマンド、又は、(iii)(i)及び(ii)の両方に応答するように構成されている、ステップをさらに含む、請求項6に記載の方法。
【請求項9】
前記コンピューティングシステムがブートプロセスを実行しているかどうかを判定するステップと、
前記BIOSから、BIOSロック解除署名を含むBIOSロック解除コマンドを受信するステップと、
前記BIOSロック解除署名が真正であるかどうかを判定するステップと、
前記BMCが前記ロック状態にあることと、(i)前記コンピューティングシステムが前記ブートプロセスを実行していること、及び、(ii)前記BIOSロック解除署名が真正であること、を判定したことと、に応じて、前記BMCを前記ロック解除状態に遷移するようにさせるステップと、
前記BMCが前記ロック解除状態にあることと、前記ブートプロセスが終了したことを判定したことと、に応じて、前記BMCを前記ロック状態に遷移させるステップと、をさらに含む、請求項6に記載の方法。
【請求項10】
前記コンピューティングシステムがシステム管理モードに入ったかどうかを判定するステップと、
前記BMCが前記ロック状態にあることと、前記コンピューティングシステムが前記システム管理モードに入ったことを判定したことと、に応じて、前記BMCを前記ロック解除状態に遷移させるステップと、
前記コンピューティングシステムが前記システム管理モードを終了したかどうかを判定するステップと、
前記BMCが前記ロック解除状態にあることと、前記コンピューティングシステムが前記システム管理モードを終了したことを判定したことと、に応じて、前記BMCを前記ロック状態に遷移させるステップと、をさらに含む、請求項6に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コンピューティングシステムのセキュリティを向上させるシステム及び方法に関し、特に、インバンドアクセス(in-band access)中のセキュリティを向上させるシステム及び方法に関する。
【背景技術】
【0002】
サーバーは、ネットワークベースのシステム及びデータセンター等の需要の高いアプリケーションに大量に用いられている。コンピューティングアプリケーションのクラウドの出現により、データセンターの需要及び他の猛烈な運用の需要が高まっている。データセンターは、データを保存し、リモート接続されたコンピューターデバイスのユーザーによってアクセスされたアプリケーションを実行する多数のサーバーを有する。一般的なデータセンターは、付随する電力と通信接続を有する物理的シャーシ構造を有する。各ラックは、複数のコンピューティングサーバーとストレージサーバーを保持することができる。
【0003】
サーバーは、ユーザーが様々な異なる目的でサーバーのハードウェアコンポーネントにアクセスできるようにする。異なるユーザーが、異なる接続を介してサーバーに接続することができる。例えば、一部のユーザーが帯域外接続を介してサーバーに接続することができ、これにより、一般に、サーバーマネージャー(例えば、サーバーの所有者及び/又は運用者)がサーバーへのアクセスを簡単に制御することができるようにする(例えばユーザー名とパスワードを必要とするログインページを介して)。しかしながら、他のユーザーはインバンド接続を介してサーバーに接続することができるが、一般に、サーバーマネージャーがアクセスを簡単に制御することができない。従って、インバンドアクセス中のコンピューティングシステムのセキュリティを向上させる必要がある。
【発明の概要】
【発明が解決しようとする課題】
【0004】
インバンドアクセス中のセキュリティを向上させるシステム及び方法を提供する。
【課題を解決するための手段】
【0005】
実施形態という用語及び同様の用語(例えば、実施、構成、態様、例及びオプション等)は、本開示及び以下の請求項の発明の全てを広く指すことを意図している。これらの用語を含む記載は、本明細書に記載された主題を限定するものではなく、また以下の請求項の意味又は範囲を限定するものでもないことを理解されたい。本明細書でカバーされる本開示の実施形態は、本概要でなく、以下の請求項によって定義される。この概要は、本開示の様々な態様の高レベルの概要であり、以下の詳細な説明のセクションでさらに説明される概念のいくつかを紹介する。この概要は、請求された発明の重要な又は本質的な特徴を特定することを意図したものではない。また、この概要は、請求された発明の範囲を決定するために単独で用いられることを意図したものでもない。この発明は、本開示の全明細書の適切な部分、一部又は全ての図面、及び、各請求項を参照することによって理解されるべきである。
【0006】
本開示の特定の態様によれば、コンピューティングシステムは、基本入出力システム(BIOS)と、BIOSに結合されたベースボード管理コントローラ(BMC)と、BIOSとBMCとに結合された1つ以上のハードウェアコンポーネントと、を含む。BMCは、コンピューティングシステムの1人以上のユーザーからコマンドを受信し、ロック状態とロック解除状態との間を遷移するように構成されている。BMCは、1人以上のユーザーのそれぞれのユーザーからロック解除コマンドを受信するように構成されている。ロック解除コマンドは、ロック解除署名を含む。BMCは、ロック解除署名が真正かどうかを判定するようにさらに構成されている。BMCは、ロック状態にあることと、ロック解除署名が真正であると判定したことと、に応じて、ロック解除状態に遷移し、それぞれのユーザーが1つ以上のハードウェアコンポーネントにアクセスできるようにするようにさらに構成されている。
【0007】
本開示の特定の態様によれば、BMCは、ロック状態にあることことと、ロック解除署名が真正でないと判定したことと、に応じて、ロック状態に留まるようにさらに構成されている。
【0008】
本開示の特定の態様によれば、BMCがロック解除状態にある場合に、BMCは、(i)それぞれのユーザーから受信した、ロック解除コマンドでない1つ以上のコマンド、(ii)それぞれのユーザーから受信した、真正のロック解除署名を含まない1つ以上のロック解除コマンド、又は、(iii)(i)及び(ii)の両方に応答するように構成されている。
【0009】
本開示の特定の態様によれば、BMCがロック状態にある場合に、BMCは、(i)それぞれのユーザーから受信した、ロック解除コマンドでない任意のコマンド、(ii)それぞれのユーザーから受信した、真正のロック解除署名を含まない任意のロック解除コマンド、又は、(iii)(i)及び(ii)の両方を無視するように構成されている。
【0010】
本開示の特定の態様によれば、ロック解除状態への遷移に応じて、BMCは、ある期間ロック解除状態に留まり、(i)前記期間内にそれぞれのユーザーから受信した、ロック解除コマンドでない1つ以上のコマンド、(ii)前記期間内にそれぞれのユーザーから受信した、真正のロック解除署名を含まない1つ以上のコマンド、又は、(iii)(i)及び(ii)の両方にBMCが応答するように構成されている。
【0011】
本開示の特定の態様によれば、期間の終了に応じて、BMCは、ロック解除状態からロック状態へ遷移するように構成されている。
【0012】
本開示の特定の態様によれば、この期間は、所定量の時間、それぞれのユーザーから受信した所定の数のコマンド、又は、その両方を含む。
【0013】
本開示の特定の態様によれば、ロック解除署名は暗号化される。BMCは、暗号化されたロック解除署名を復号化し、復号化されたロック解除署名が真正かどうかを判定するようにさらに構成されている。
【0014】
本開示の特定の態様によれば、暗号化されたロック解除署名は、秘密鍵を用いて暗号化される。BMCは、暗号化されたロック解除署名を復号化するのに用いられる、秘密鍵に対応する公開鍵を含む。
【0015】
本開示の特定の態様によれば、復号化されたロック解除署名がロック解除コマンドと同一である場合に、ロック解除署名は真正である。
【0016】
本開示の特定の態様によれば、ロック解除署名が真正であることは、ロック解除コマンドがコンピューティングシステムの認証されたユーザーによって送信されたことを示す。
【0017】
本開示の特定の態様によれば、BMCは、コンピューティングシステムがブートプロセスを実行しているかどうかを判定するようにさらに構成されている。BMCは、BIOSからBIOSロック解除署名を含むBIOSロック解除コマンドを受信するようにさらに構成されている。BMCは、BIOSロック解除署名が真正であるかどうかを判定するようにさらに構成されている。BMCは、ロック状態にあることに応じて、(i)コンピューティングシステムがブートプロセスを実行しているかどうか、及び、(ii)BIOSロック解除署名が真正であり、ロック解除状態に遷移しているかどうかを判定するようにさらに構成されている。BMCは、ロック解除状態にあることと、ブートプロセスが終了したことを判定したことと、に応じて、ロック状態に遷移するようにさらに構成されている。
【0018】
本開示の特定の態様によれば、BMCのロック状態はBMCのデフォルト状態であり、コンピューティングシステムが最初に起動又は再起動され、ブートプロセスの実行を開始した場合にBMCがロック状態になる。
【0019】
本開示の特定の態様によれば、BMCは、コンピューティングシステムがシステム管理モードを終了したかどうかを判定するようにさらに構成されている。BMCは、ロック状態にあることと、コンピューティングシステムがシステム管理モードに入ったことを判定したことと、に応じて、ロック解除状態に遷移するようにさらに構成されている。
【0020】
本開示の特定の態様によれば、BMCは、コンピューティングシステムがシステム管理モードを終了したかどうかを判定するようにさらに構成されている。BMCは、ロック解除状態にあることと、コンピューティングシステムがシステム管理モードを終了したことを判定したことと、に応じて、ロック状態に遷移するようにさらに構成されている。
【0021】
本開示の特定の態様によれば、コンピューティングシステムを保護する方法が開示される。コンピューティングシステムは、基本入出力システム(BIOS)と、BIOSに結合されたベースボード管理コントローラ(BMC)と、BIOSとBMCに結合された1つ以上のハードウェアコンポーネントと、を含む。この方法は、コンピューティングシステムのユーザーからロック解除コマンドを受信するステップを含む。ロック解除コマンドは、ロック解除署名を含む。この方法は、ロック解除署名が真正であるかどうかを判定するステップをさらに含む。この方法は、ロック解除署名が真正であり、BMCがロック状態にあることを判定したことに応じて、BMCがロック解除状態に遷移するようにさせ、ユーザーがコンピューティングシステムの1つ以上のハードウェアコンポーネントにアクセスできるようにするステップをさらに含む。
【0022】
本開示の特定の態様によれば、このロック解除署名が真正でなく、BMCがロック状態にあると判定したことに応じて、BMCをロック状態に留まるようにさせるステップをさらに含む。
【0023】
本開示の特定の態様によれば、この方法は、BMCがロック解除状態にある場合に、BMCによって、(i)ユーザーから受信した、ロック解除コマンドでない1つ以上のコマンド、(ii)ユーザーから受信した、真正のロック解除署名を含まない、1つ以上のロック解除コマンド、又は、(iii)(i)及び(ii)の両方に応答するステップをさらに含む。この方法は、BMCがロック状態にある場合に、BMCによって、(i)ユーザーから受信した、ロック解除コマンドでない任意のコマンド、(ii)ユーザーから受信した、真正のロック解除署名を含まない任意のロック解除コマンド、又は、(iii)(i)及び(ii)の両方を無視するステップをさらに含む。
【0024】
本開示の特定の態様によれば、この方法は、BMCがロック解除状態に遷移して、BMCがある期間ロック解除状態に留まるようにさせ、(i)期間内にそれぞれのユーザーから受信した、ロック解除コマンドでない1つ以上のコマンド、(ii)期間内にそれぞれのユーザーから受信した、真正のロック解除署名を含まない1つ以上のコマンド、又は、(iii)(i)及び(ii)の両方にBMCが応答するように構成されるようにするステップをさらに含む。
【0025】
本開示の特定の態様によれば、この方法は、期間の終了に応じて、BMCがロック解除状態からロック状態へ遷移するようにさせるステップをさらに含む。
【0026】
本開示の特定の態様によれば、ロック解除署名は暗号化される。この方法は、暗号化されたロック解除署名を復号化し、復号化されたロック解除署名が真正であるかどうかを判定するステップをさらに含む。
【0027】
本開示の特定の態様によれば、暗号化されたロック解除署名は、秘密鍵を用いて暗号化され、BMCは、暗号化されたロック解除署名を復号化するのに用いられる、秘密鍵に対応する公開鍵を含む。
【0028】
本開示の特定の態様によれば、ロック解除署名が真正であるかどうかを判定するステップは、ロック解除署名がロック解除コマンドと同一であるかどうかを判定するステップを含む。
【0029】
本開示の特定の態様によれば、ロック解除署名が真正であることは、ロック解除コマンドがコンピューティングシステムの認証されたユーザーによって送信されたことを示す。
【0030】
本開示の特定の態様によれば、この方法は、コンピューティングシステムがブートプロセスを実行しているかどうかを判定するステップをさらに含む。この方法は、BIOSからBIOSロック解除コマンドを受信するステップをさらに含む。BIOSロック解除コマンドは、BIOSロック解除署名を含む。この方法は、BIOS署名が真正であるかどうかを判定するステップをさらに含む。この方法は、BMCがロック状態にあることに応じて、(i)コンピューティングシステムがブートプロセスを実行しているかどうか、及び、(ii)BIOSロック解除署名が真正であり、BMCをロック解除状態に遷移するようにさせるかどうかを判定するステップをさらに含む。
【0031】
本開示の特定の態様によれば、BMCのロック状態はBMCのデフォルト状態であり、コンピューティングシステムが最初に起動又は再起動され、ブートプロセスの実行を開始した場合にBMCがロック状態になる。
【0032】
本開示の特定の態様によれば、この方法は、コンピューティングシステムがシステム管理モードに入ったかどうかを判定するステップをさらに含む。この方法は、BMCがロック状態にあることと、コンピューティングシステムがシステム管理モードに入ったことを判定したことと、に応じて、BMCをロック解除状態に遷移するようにさせるステップをさらに含む。この方法は、BMCは、コンピューティングシステムがシステム管理モードを終了したかどうかを判定するステップをさらに含む。この方法は、ロック解除状態にあることと、コンピューティングシステムがシステム管理モードを終了したことを判定したことと、に応じて、BMCをロック状態に遷移するようにさせるステップをさらに含む。
【0033】
上述した概要は、本開示の各実施形態又は全ての態様を表すことを意図するものではない。むしろ、上述した概要は、本明細書に記載された新規な態様及び特徴のいくつかの例を提供するに過ぎない。本開示の上述した特徴及び利点、並びに、他の特徴及び利点は、添付の図面及び添付の特許請求の範囲と関連して、本発明を実施するための代表的な実施形態及び態様についての以下の詳細な説明から容易に明らかとなるであろう。本開示の追加的な態様は、図面を参照してなされた様々な実施形態の詳細な説明を考慮して、当業者には明らかであり、その簡単な説明が以下に提供される。
【0034】
本開示並びにその利点及び図面は、例示的な実施形態の以下の説明及び添付の図面からよりよく理解されるであろう。これらの図面は、例示的な実施形態のみを示しており、従って、様々な実施形態又は特許請求の範囲を限定するものと見なされるべきではない。
【図面の簡単な説明】
【0035】
【
図1】
図1は、本開示の特定の態様による、コンピューティングシステムのブロック図である。
【
図2】
図2は、本開示の特定の態様による、
図1のコンピューティングシステムのベースボード管理コントローラの状態のフローチャートである。
【
図3】
図3は、本開示の態様による、
図1のコンピューティングシステムを保護する方法のフローチャートである。
【発明を実施するための形態】
【0036】
本明細書で開示された例は、基本入出力システム(BIOS)と、ベースボード管理コントローラ(BMC)と、及び1つ以上のハードウェアコンポーネントと、を含むコンピューティングシステムに関する。BMCは、ロック状態とロック解除状態との間を遷移するように構成されており、ユーザーからのコマンドを受信して応答することにより、ハードウェアコンポーネントへのアクセスを制御する。ロック状態では、BMCは、ユーザーから受信したコマンドを無視し、ユーザーは、ハードウェアコンポーネントにアクセスできなくなる。ロック解除状態では、BMCは、ユーザーから受信したコマンドに応答し、ユーザーは、ハードウェアコンポーネントにアクセスできるようになる。BMCは、ロック解除署名を含むロック解除コマンドをユーザーから受信するように構成されている。BMCは、ロック解除コマンドのロック解除署名を、BIOSに保存されたBIOS署名と比較する。これらの署名が一致した場合、BMCはロック解除状態に遷移し、ユーザーがコンピューティングシステムのハードウェアコンポーネントにアクセスできるようになる。
【0037】
添付の図面を参照しながら様々な実施形態を説明するが、同様の符号は全体を通して同様の又は同一の要素を示すのに用いられる。図面は、単に本開示の態様及び特徴を説明するためのものであり、縮尺通りに描かれるとは限らない。本開示の特定の態様及び特徴の十分な理解を提供するために、多数の特定の詳細、関係及び方法が示されているが、当業者には、これらの態様及び特徴が1つ以上の特定の詳細なしに、他の関係又は他の方法を用いて行い得ることが理解できるであろう。いくつかの例では、周知の構造又は動作は、説明のために詳細には記述されていない。本明細書に開示された様々な実施形態は、必ずしも描かれた動作又はイベントの順序に限定されるものではなく、いくつかの動作は、異なる順序及び/又はその他の動作又は事象と同時に起こり得る。本開示の特定の態様及び特徴を実施するために、全ての描かれた動作又は事象が必ずしも必要とされるわけではない。
【0038】
詳細な説明の目的のために、具体的にそうではないと主張されない限り、適切な状況下で、単数形は複数形を含み、複数形は単数形を含む。「含む」という用語は、「制限なしに含む」ことを意味する。また、例えば、「約(about)」、「ほとんど(almost)」、「実質的に(substantially)」、「おおよそ(approximately)」等の近似の用語は、ここでは、例えば「…で(at)」、「…近くで(near)」、「…に近接して(nearly at)」、「…の3~5%内で」、「製造誤差の許容範囲内で」、又は、これらの任意の論理的組み合わせの意味を含むことができる。同様に、「垂直」又は「水平」という用語は、それぞれ垂直又は水平方向の「3~5%以内」を追加的に含むことを意図している。また、「上」、「下」、「左」、「右」、「上方」及び「下方」等の方向の用語は、参照図に描かれているのと同等の方向、目的(複数可)又は要素(複数可)に一般的に用いられる位置等の参照されている目的又は要素から文脈的に理解される方向、又は、本明細書に別途記載される方向と関連付けられることを意図している。
【0039】
図1は、本開示の特定の態様による、コンピューティングシステム100のブロック図を示している。いくつかの実施形態において、コンピューティングシステム100はサーバーであるが、本明細書で開示される原理は、本明細書で説明されるコンポーネントの1つ以上を有する任意のコンピューティングシステムに組み込まれ得る。コンピューティングシステム100は、ベースボード管理コントローラ(BMC)102と、基本入出力システム(BIOS)104と、及び1つ以上のハードウェアコンポーネント105と、を含む。
【0040】
コンピューティングシステム100のBIOS104は、コンピューティングシステム100がオン又は再起動された場合にBMC102(及び/又はコンピューティングシステム100の任意の他の処理ユニット)によって実行される基本命令を提供する。BIOS104は、一般に、実行可能な命令を格納するメモリチップとして実装される。BIOS104は、コンピューティングシステム100の電源投入中に、コンピューティングシステム100のハードウェアコンポーネント105の状態をチェックするパワーオンセルフテスト(POST)ルーチンを実行することができる。いくつかの実施形態では、BIOS104は、読み取り専用メモリ(ROM)デバイス又はフラッシュメモリデバイス等の不揮発性メモリを含む。
【0041】
BMC102は、一般に、それ自体の処理ユニット及びメモリデバイスを含む。BMC102の処理ユニットは、BMC102のメモリデバイスに格納されたBIOS104及び/又はファームウェアの命令を実行するのに用いられ得る。BMC102は、コンピューティングシステム100の動作を管理するように構成されている。いくつかの実施形態では、BMC102は、Intelligent Platform Management Interface(IPMI)標準を実装するのに用いられる。BMC102は、コンピューティングシステム100へのアクセスを制御することもできる。
【0042】
ハードウェアコンポーネント105は、様々な異なるコンピューティングタスクを実行するのに用いられ得る。いくつかの実施形態では、1つ以上のハードウェアコンポーネント105は、1つ以上の中央処理装置(CPU)106、1つ以上のグラフィック処理装置(GPU)108、1つ以上のメモリデバイス110、1つ以上のノースブリッジチップ112、1つ以上のサウスブリッジチップ114、1つ以上の入力/出力(I/O)インターフェース116、1つ以上のファンモジュール118、1つ以上の電源ユニット120、又は、それらの任意の組み合わせを含むことができる。しかしながら、1つ以上のハードウェアコンポーネント105は、様々なコンピューティングタスクを実行するコンピューティングシステムに見られる任意の他のコンポーネントであり、及び/又は、それらを含むことができる。
【0043】
1つ以上のメモリデバイス110は、ランダムアクセスメモリ(RAM)等のコンピュータメモリデバイス、並びに、ハードドライブ及びソリッドステートドライブ等の記憶媒体を含むことができる。I/Oインターフェース116は、イーサネット(登録商標)インターフェース、USBインターフェース、シリアルインターフェース等のように、データを転送するのに用いられ得る様々な異なるインターフェースを含むことができる。I/Oインターフェース116は、外部からアクセス可能なポート、及び、ポートをコンピューティングシステム100の他のコンポーネントに接続する任意の所望な内部回路として実装され得る。
【0044】
ユーザーは、BMC102を介して様々な異なる目的でコンピューティングシステム100へのアクセスが許可される。BMC102は、コンピューティングシステム100のユーザーからコマンドを受信し、コンピューティングシステム100のハードウェアコンポーネント105との通信を含む、適切なアクションを取ることができる。従って、BMC102は、ユーザーがコンピューティングシステム100のハードウェアコンポーネント105にアクセスして、様々な異なるタスク又は機能を実行できるようにする。場合によっては、ユーザーは、帯域外アクセスを介してコンピューティングシステム100にアクセスでき、これにより、一般に、コンピューティングシステム100のマネージャー(サーバーマネージャーと呼ばれることもある)が、アクセス条件又はその他の境界を確立できるようにする。これらのアクセス条件は、悪意のあるユーザーがコンピューティングシステム100へのアクセスを得ることができないようにするように使用することができる。例えば、コンピューティングシステム100のマネージャーは、帯域外ユーザーが認証メカニズム(ユーザー名及びパスワード等)を用いてコンピューティングシステム100にアクセスし、認証されたユーザーのみがコンピューティングシステム100にアクセスできるようにすることを要求することができる。
【0045】
場合によっては、コンピューティングシステム100のユーザーは、インバンドアクセスを介してコンピューティングシステム100にアクセスし、これにより、これらのユーザーがコンピューティングシステム100のネットワークに直接アクセスできるようにする。一般に、BMC102は、帯域外アクセスと比較して、ユーザーに同じアクセス条件を確立することができない。従って、悪意のあるユーザーがコンピューティングシステム100にアクセスできないようにし、悪意のあるユーザーが望ましくない方法でコンピューティングシステム100を操作するのを防止するようにすることが、より困難になる可能性がある。
【0046】
悪意のあるユーザーがコンピューティングシステム100にアクセスするのを防ぐために、BMC102は、認証された帯域内ユーザーのみがコンピューティングシステム100にアクセスできるようにするように構成され得る。コンピューティングシステム100へのアクセスを管理するために、BMC102は、ロック解除状態とロック状態との間で遷移することができる。ロック解除状態では、BMC102は、コマンドに応じて、帯域内ユーザーがコンピューティングシステム100のハードウェアコンポーネント105にアクセスできるようにする(例えば、BMC102は、一般に、典型的な方法で動作する)。ロック状態では、BMC102は、一般に、ユーザーから受信した任意のコマンドを無視する(例えば、BMC102は、これらのコマンドの何れにも応答しないか、これに応じたアクションをとることがない)。従って、BMC102がロック状態にある場合に、帯域内ユーザーは、一般に、コンピューティングシステム100のハードウェアコンポーネント105にアクセスすることができなくなる。
【0047】
ロック解除状態に遷移するには、BMC102は、認証済みのロック解除署名を含むロック解除コマンドをユーザーから受信する必要がある。BMC102は、ロック解除コマンド内のロック解除署名が真正であるかどうかを判定する。ロック解除署名が真正である場合(及びBMC102が既にロック解除状態でない)、BMC102は、ロック解除状態に遷移し、ユーザーがコンピューティングシステム100のハードウェアコンポーネント105にアクセスできるようにする。ロック解除署名が真正でない場合、BMC102はロック状態のままにある。本明細書で用いられる「ロック解除署名」という用語は、一般に、ロック解除コマンドに含まれる任意の署名を指す。真正でないロック解除署名を含むロック解除コマンドは、依然としてロック解除署名を有するものと見なされる。
【0048】
いくつかの実施形態では、BMC102がロック解除状態にある場合に、BMC102は、(i)ロック解除コマンドでない1つ以上のコマンド(これらのコマンドが何れのタイプの署名を含むかどうかに関係なく)、(ii)真正のロック解除署名を含まない1つ以上のロック解除コマンド(例えば、真正でないロック解除署名を含むロック解除コマンド及び/又は何れの署名も含まないロック解除コマンド)、又は(iii)(i)及び(ii)の両方に応答する。いくつかの実施形態では、BMC102は、全ての非ロック解除コマンド及び/又は真正のロック解除署名のない全てのロック解除コマンドに応答する。他の実施形態では、ロック解除状態であっても、BMC102が依然として無視する、真正でない署名を有する特定の非ロック解除コマンド及び/又はロック解除コマンドが存在することがある。例えば、コンピューティングシステム100のマネージャーは、ロック解除状態にある場合に、BMC102が全てのコマンドを無視しなければ、ロック解除状態にある場合にBMC102が特定のコマンドを無視するように要求することができる。
【0049】
いくつかの実施形態では、BMC102がロック状態にある場合に、BMC102は、一般に、(i)ロック解除コマンドでない任意のコマンド(これらのコマンドが何れのタイプの署名を含むかどうかに関係なく)、(ii)真正のロック解除署名を含まない任意のロック解除コマンド(例えば、真正でないロック解除署名を含むロック解除コマンド及び/又は何れの署名も含まないロック解除コマンド)、又は、(iii)(i)及び(ii)の両方を無視する。しかしながら、特定の実施形態では、BMC102がロック状態で応答するいくつかのコマンドがある。例えば、コンピューティングシステム100のマネージャーは、これらのコマンドが真正のロック解除署名を有するロック解除コマンドでなくても、ロック解除状態にある場合に、BMC102が特定のコマンド(例えば、緊急コマンド、ヘルプコマンド等)に応答するように要求することができる。
【0050】
いくつかの実施形態では、BMC102がロック状態にある場合に受信したコマンドを無視した場合に、BMC102は、これらのコマンドに応じたアクションをとらない。他の実施形態では、BMC102がロック状態にある場合に受信したコマンドを無視した場合に、BMC102は、BMC102がロック状態にあり、コマンドを無視していることを示す指標をユーザーに提供する。ロック解除コマンドが受信された場合に、BMC102は、ロック解除コマンドが真正のロック解除署名を含むかどうかを判定する。ロック解除コマンドが無効な場合(例えば、ロック解除コマンドがロック解除署名を含まない又は真正でないロック解除署名を含む)、BMC102は、何のアクションをとらないか、又は、ロック解除コマンドが無効であったことを示す指標をユーザーに提供することができる。同様に、ロック解除コマンドが有効であり、BMC102がロック解除状態に遷移する場合、BMC102は、さらなるアクションをとらない(ロック解除状態への遷移以外に)か、又は、ロック解除コマンドが有効であり、BMC102が現在ロック解除状態にあることを示す指標をユーザーに提供することができる。
【0051】
図1に示す実施形態では、BMC102は、コマンドをBMC102に送信する任意のユーザーを認証するのに用いられ得る公開鍵103を含む。この公開鍵は、コンピューティングシステム100の任意の認証されたユーザーによって保持された秘密鍵に対応するものである。いくつかの実施形態では、秘密鍵は、コンピューティングシステム100のマネージャーによって保持され、コンピューティングシステム100へのアクセスを有効に取得したユーザーに与えられる。公開鍵103は、BMC102によって受信されたコマンド又はメッセージと共に送信された任意の暗号化された署名を復号可するのに用いられ得る。一般に、公開鍵103は、BMC102のメモリデバイスに格納される。公開鍵103は、任意の適切なフォーマットを有することができる。例えば、公開鍵103は、Rivest-Shamir-Adleman(RSA)システム、デジタル署名アルゴリズム(DSA)システム、楕円曲線デジタル署名アルゴリズム(Elliptic Curve Digital Signature Algorithm; ECDSA)システム、エドワーズ曲線デジタル署名アルゴリズム(Edwards-curve Digital Signature Algorithm; EdDSA)システム等のように、多くの異なるデジタル署名方式と共に動作するように設計された任意の公開鍵であってもよい。
【0052】
ロック解除コマンドの送信者は、秘密鍵を用いてロック解除署名を暗号化し、BMC102は、公開鍵を用いてロック解除署名を復号化する。ロック解除署名が復号化されると、BMC102は、復号化されたロック解除署名が真正であるかどうかを判定することができる。ロック解除署名が真正である場合、BMC102はロック解除状態に遷移する。一般に、ロック解除署名が真正であるということは、ロック解除コマンドを送信したユーザーが、コンピューティングシステム100の認証/承認されたユーザーであり、コンピューティングシステム100のマネージャーによって、インバンドアクセスを介してコンピューティングシステム100にアクセスする許可が与えられていることを意味する。
【0053】
いくつかの実施形態では、真正のロック解除署名は、ロック解除コマンドを暗号化して追加したロック解除コマンドの単なるコピーである。例えば、ロック解除コマンドがテキスト文字列「UNLOCK」で構成されている場合、真正のロック解除署名は、秘密鍵を用いて暗号化されたテキスト文字列「UNLOCK」の暗号化バージョンになる。BMC102がロック解除コマンドを受信した場合に、BMC102は、公開鍵を用いてロック解除署名を復号化し、復号化されたロック解除署名がロック解除コマンドと一致するかどうかを判定する。復号化されたロック解除署名がロック解除コマンドと一致する場合(例えば、暗号化されたロック解除署名の復号化がテキスト文字列「UNLOCK」になる場合)、ロック解除署名は真正である。復号化されたロック解除署名がロック解除コマンドと一致しない場合(例えば、暗号化されたロック解除署名を復号化してもテキスト文字列「UNLOCK」にならない場合)、ロック解除署名は真正でない。
【0054】
従って、いくつかの実施形態では、真正のロック解除署名は、ロック解除コマンドと同一のロック解除署名である(例えば、ロック解除署名の内容が、ロック解除コマンド自体の内容と同じである)。この方式は、BMC102がロック解除署名を正確に復号化し、全ての潜在的な真正のロック解除署名を事前に保存する必要なく、ロック解除署名が真正であるかどうかを判定することができる。一般に、公開鍵103は、暗号化されたロック解除署名(例えば、ロック解除コマンドの送信者が保持する秘密鍵を用いて暗号化された署名)を正確に復号化するのに用いられ得る唯一の鍵である。さらに、公開鍵103は、公開鍵103が同じ暗号化されたロック解除署名を正確に復号化することもできるようにする方法で、ロック解除署名を最初に暗号化するように用いられることはできない。従って、悪意のあるユーザーが、確認済みのユーザーになりすますために、公開鍵103(公開されている)を用いて、暗号化されたロック解除署名をロック解除コマンドに追加することはできない。
【0055】
場合によっては、コンピューティングシステム100のマネージャーが秘密鍵を保持し、それを認証済みのユーザー(例えば、コンピューティングシステム100へのアクセスを有効に取得したユーザー)に提供する。次いで、認証されたユーザーは、秘密鍵を用いて、必要なロック解除署名をロック解除コマンドに含めることができる。他の場合では、コンピューティングシステム100のマネージャーは、認証されたユーザーに秘密鍵を提供せず、代わりに秘密鍵を用いてロック解除署名を追加し、有効なユーザーから受信したコマンドをロック解除する。
【0056】
いくつかの実施形態では、BMC102のロック/ロック解除状態は、コンピューティングシステム100の各ユーザー、又は、コンピューティングシステム100のユーザーのサブセットの各ユーザーに特定のものである。これらの実施形態では、BMC102は、少なくとも1人のユーザーに対してロック解除状態にあり(従って、その少なくとも1人のユーザーから受信したコマンドに応答する)、同時に、少なくとも1人の他のユーザーに対してロック状態にある(従って、その少なくとも1人のユーザーから受信したコマンドに応答しない)。他の実施形態では、BMC102のロック/ロック解除状態は、少なくとも2人のユーザー間で共有可能であり、ユーザーの1人が有効なロック解除コマンドをBMC102に送信した場合、BMC102は、全てのユーザー用にロック解除状態に遷移し、全てのユーザーがコンピューティングシステム100のハードウェアコンポーネント105にアクセスできるようになる。
【0057】
図2は、BIOS104及びBMC102の機能を示すコンピューティングシステム100(
図1)の動作のフローチャート200を示している。フローチャート200は、POST部分202Aと、ランタイム部分202Bと、システム管理モード部分202Cと、を含む。POST部分202Aは時間204Aで開始し、BIOS104がPOSTルーチンを実行してコンピューティングシステム100を初期化するとき(例えば、コンピューティングシステム100がブートプロセスを実行しているとき)の期間に対応する。POSTルーチンは、例えば、コンピューティングシステム100の起動又は再起動時に実行され得る。ランタイム部分202Bは、POSTルーチンが終了するときの時間204Cに開始する。ランタイム部分202Bは、コンピューティングシステム100がそのオペレーティングシステムに従って動作しているときに、POSTルーチンが終了した後の期間に対応する。システム管理モード部分202Cは、コンピューティングシステム100がシステム管理モードで動作している期間に対応し、これは、エラーが検出された場合に発生する可能性があるものである。
【0058】
コンピューティングシステム100がブートプロセスを実行しているときのPOST部分202Aの間、BMC102は、BIOS104から直接コマンドを受信することができる。しかしながら、BIOS104が破損している(例えば、悪意のあるアクターがBIOS104を変更(modify)した)状況では、BIOS104は、コマンドをBMC102に送信することによって、コンピューティングシステム100の様々な設定を変更することができることがある。従って、POST部分202Aの間、BMC102は、ユーザーからコマンドを受信するBMC102に対して上記と同様の方法で、BIOS104から受信したコマンドに対して、ロック状態とロック解除状態との間で遷移することができるようになる。
【0059】
POST部分202Aが時間204Aで開始したとき、BMC102は、まだロック状態でなければ、ロック状態に遷移する。いくつかの実施形態では、ロック状態は、コンピューティングシステム100が起動又は再起動されたときのBMC102のデフォルト状態である。POST部分202A中の時間204Bにおいて、BIOS104は、BIOSロック解除コマンドをBMC102に送信することができる。BIOSロック解除コマンドには、BIOSロック解除署名が含まれる。BMC102は、BIOSロック解除署名が真正であるかどうかを判定するように構成されている。BIOSロック解除署名が真正であり、BMC102がロック状態にある場合、BMC102は、ロック解除状態に遷移するように構成されている。
【0060】
従って、BMC102は、POST部分202Aが時間204Aで開始するときに開始するPOST部分202Aのサブ部分206Aの間、ロック状態にあり、BMC102が時間204Bで、BIOS104から真正のBIOSロック解除署名を有するBIOSロック解除コマンドを受信したときに終了する。時間204Cにおいて、POST部分202Aが終了し(例えば、ブートプロセスが終了した)、ランタイム部分202Bが開始する。POST部分202Aが終了したときにBMC102がロック解除状態にある場合、BMC102は再びロック状態へ遷移する。従って、時間204Bで開始し、POST部分202Aが終了するときの時間204Cで終了するPOST部分202Aのサブ部分206Bの間、BMC102はロック解除状態にある。
【0061】
いくつかの実施形態では、BIOSロック解除コマンド内のBIOSロック解除署名の認証は、ユーザーから受信したロック解除コマンド内のロック解除署名の認証と同様に機能する。BIOS104は秘密鍵を保持し、秘密鍵を用いてBIOSロック解除署名を暗号化することができる。場合によっては、秘密鍵は、コンピューティングシステム100のマネージャーによってBIOS104に提供される(例えば、BIOS104にコード化される)。BMC102が、BIOS104からBIOSロック解除コマンドを受信したとき、BMC102は、公開鍵を用いてBIOSロック解除署名を復号化し、次いで、解読されたBIOSロック解除署名が真正であるかどうかを判定することができる。いくつかの実施形態では、復号化されたBIOSロック解除署名は、BIOSロック解除コマンドと一致する場合(例えば、解読されたBIOSロック解除署名がBIOSロック解除コマンドの内容と同一である場合)に、真正である。従って、BMC102は、POST部分202A中(例えば、ブートプロセス中)にロック解除状態にあり、BIOS104から受信したコマンドに応答することができ、同時にPOST部分202A中にコンピューティングシステム100を変更しようとする可能性があるBIOS104に対する悪意のある乗っ取りに対しても依然として保護される。
【0062】
いくつかの実施形態では、コンピューティングシステム100は、POSTルーチンの状態を示す汎用入出力(GPIO)ピンを含む。BMC102は、このGPIOピンを監視して、BIOSが依然としてPOSTルーチンを実行しているかどうかを判定することができる。従って、POST部分202Aの間、BMC102は、POSTルーチンが進行中であることをGPIOピンが示していることを確認すると、ロック解除状態に留まる。POST部分202Aが時間204Bで終了したとき、GPIOピンは、POSTルーチンが終了したことを示す。BMC102は、この変化を検出し、ロック解除状態に遷移する。いくつかの実施形態では、GPIOピンは、POSTルーチンが進行中の場合に低い論理値を有し、POSTルーチンが進行中でない場合に高い論理値を有する。他の実施形態では、GPIOピンは、POSTルーチンが進行中の場合に高い論理値を有し、POSTルーチンが進行中でない場合に低い論理値を有する。
【0063】
一般に、コンピューティングシステム100内の任意の数の異なるGPIOピンを用いて、POSTルーチンが進行中であるかどうかを判定することができる。いくつかの実施形態では、BMC102が監視するGPIOピンは、CPU106の一部である。他の実施形態では、BMC102が監視するGPIOピンは、プラットフォームコントローラハブ等のコンピューティングシステム100の別のコンポーネントの一部である。一般に、コンピューティングシステム100がPOSTルーチンの状態を示すのに用いる任意のGPIOピンは、BMC102によって監視され、POSTルーチンが進行中であるかどうかを判定することができる。
【0064】
他の実施形態では、BMC102は、POST部分202A中に異なる動作をすることができる。例えば、真正のBIOSロック解除署名を有するBIOSロック解除コマンドに応答してロック解除するだけでなく、代わりに、BMC102は、全てのPOST部分202A中に、ロック状態に留まり、全てのPOST部分202A中に、ロック解除状態に留まり、真正のBIOSロック解除署名が含まれているかどうか等に関係なく、受信したBIOSロック解除コマンドに応答して、ロック解除状態に遷移する。
【0065】
フローチャート200では、ランタイム部分202Bは、ランタイム部分202B中のBMC102の機能を示すいくつかの異なるサブ部分に分割される。時間204C(ランタイム部分202Bの開始)と時間204Dとの間に延びるサブ部分206Cの間、BMC102はロック状態にあり、ユーザーコマンドを無視することになる。時間204Dでは、BMC102は、真正のロック解除署名を含むロック解除コマンドをユーザーから受信し、ロック解除状態に遷移する。ロック解除状態になると、BMC102は、一般に、ユーザーから受信した全てのコマンドに応答し、それによってユーザーがコンピューティングシステム100のハードウェアコンポーネント105にアクセスできるようになる。
【0066】
いくつかの実施形態では、BMC102は、ユーザーからロック解除コマンドを受信した後、特定の期間、ロック解除状態のままになる。いくつかの実施形態では、この期間は、特定の量の時間(例えば、10分、30分、1時間等)、特定のユーザーから受信した特定の数のコマンド(例えば、5つのコマンド、10個のコマンド、30個のコマンド等)、又は、その両方(例えば、最も早いx分数とy個の受信コマンド)を持続するように定義される。いくつかの実施形態では、この期間は、コマンドが閾値レート以上のレートで受信される限り続くと定義される(例えば、BMC102は、少なくともx個のコマンドがy秒/分ごとに受信される限り、ロック解除状態を維持する)。いくつかの実施形態では、期間は、所定のユーザーがコンピューティングシステム100にアクセスする全ての時間続くと定義される。いくつかの実施形態では、期間は他のパラメータに関連する。一般に、期間は、予め定められている(例えば、BMC102がロック解除状態に遷移する前に定義される)か、又は、可変(例えば、BMC102がロック解除状態に遷移するときに又は後に定義される)であってもよい。従って、この期間は、ユーザーがコンピューティングシステム100にアクセスするときに開始し、コンピューティングシステムへのユーザーのアクセスがユーザー及び/又はコンピューティングシステム100によって切断されたときに終了することができる。
図2では、この期間はサブ部分206Dとして示され、時間204Dから時間204Eまで続く。BMC102は、サブ部分206Dの間、ロック解除状態にある。時間204Eでは、期間が終了し、BMC102はロック状態に戻る。フローチャート200では、BMC102は、サブ部分206Eの間、ロック状態のままであり、これは、時間204Fでランタイム部分202Bが終了するまで続く。
【0067】
いくつかの実施形態では、ユーザーはロックコマンドをBMC102に送信して、BMC102がロック解除状態からロック状態に遷移するようにさせることができる。例えば、所定のユーザーがセッションを終了した場合、そのユーザーはロックコマンドをBMC102に送信して、BMC102がロック状態に遷移するようにさせることができる。いくつかの実施形態では、ロックコマンドは何れの署名(例えば、ロック署名)も必要とせず、BMC102は、ロックコマンドの受信に応答して自動的にロック状態に遷移することができる。しかしながら、他の実施形態では、BMC102は、BMC102がロック状態に遷移するようにさせるために、ロックコマンドが真正のロック署名(例えば、ロックコマンドの内容と同一のロック署名)を有するように要求する。BMC102は、BMC102がロック解除状態にある間にユーザーがコンピューティングシステム100への接続を終了した場合、自動的にロック状態に遷移することもできる。
【0068】
フローチャート200では、コンピューティングシステム100は、BMC102がロック状態にあるとき、時間204Fで開始するシステム管理モード部分202Cにある。コンピューティングシステム100は、ランタイム部分202B中にエラーが発生したことをコンピューティングシステム100が検出した場合、システム管理モードに入ることができる。システム管理モードでは、コンピューティングシステム100は制御をBIOS104に戻し、BIOS104は様々な手順に従ってエラーを修正する。コンピューティングシステム100がシステム管理モードに入ったとき、BMC102は自動的にロック解除状態に遷移し、コンピューティングシステム100がシステム管理モードに入ったときに、コンピューティングシステム100がシステム管理モードにある間に必要とされ得る任意の機能をBMC102が実行できるようにする。例えば、BMC102は、システムエラーを処理するように要求されることがあるため、BIOS104、サーバーマネージャー、ユーザー等から受信したコマンドに応答できなければならない。
【0069】
システム管理モード部分202Cは時間204Gで終了し、この時点でエラーが修正され、コンピューティングシステム100はシステム管理モードを終了する。BMC102は自動的に再びロック状態へ遷移し、BMC102が有効なロック解除コマンドを受信するまで、又は、コンピューティングシステム100が再びシステム管理モードに入るまで、ロック状態のままである。フローチャート200に示された例では、コンピューティングシステム100がシステム管理モードに入るとき、BMC102はロック状態にあり、従って自動的にロック解除状態に遷移する。しかしながら、場合によっては、コンピューティングシステム100がシステム管理モードに入るときに、BMC102はロック解除状態にあり得る。これらの場合、BMC102は単純にロック解除状態に留まることができる。
【0070】
BMC102は、コンピューティングシステム100がシステム管理モードに入ったことを様々な方法で検出することができる。いくつかの実施形態では、コンピューティングシステムは、コンピューティングシステム100がシステム管理モードに入ったかどうかを示すGPIOピンを含む。このGPIOピンは、システム管理モードの場合に論理ハイ値(logical high value)、システム管理モードでない場合に論理ロー値(logical low value)を有することができ、その逆も可能である。何れの場合も、BMC102は、このGPIOピンを監視して、コンピューティングシステム100がいつシステム管理モードに入るかを判定し、必要に応じてロック解除状態に遷移するようにさせることができる。POSTルーチンと同様に、コンピューティングシステム100内の任意の数の異なるGPIOピンは、POSTルーチンが進行中かどうかを判定するのに用いられ得る。いくつかの実施形態では、BMC102が監視するGPIOピンは、CPU106の一部である。他の実施形態では、BMC102が監視するGPIOピンは、プラットフォームコントローラハブ等のコンピューティングシステム100の別のコンポーネントの一部である。一般に、コンピューティングシステム100がシステム管理モードに入ったかどうかを示すのに用いる任意のGPIOピンは、BMC102によって監視され得る。
【0071】
他の実施形態では、コンピューティングシステム100は、図示したPOSTルーチンの実施形態のように動作することができる。これらの実施形態では、BMC102はシステム管理モードが開始したとき、自動的にロック状態に遷移(又は、既にロック状態にある場合、ロック状態に留まる)ことができ、BIOS104自体が必要に応じてBIOSロック解除コマンドをBMC102に送信することができる。BMC102は、BIOSロック解除コマンドに含まれたBIOSロック解除署名が真正であるかどうかを判定することができ、真正である場合、ロック解除状態に遷移する。次いで、BIOS104は、コンピューティングシステム100がシステム管理モードを終了すると、ロックコマンドをBMC102に送信することができ、又は、BMC102は、コンピューティングシステム100がシステム管理モードを終了したとき、自動的にロック状態に遷移するように構成され得る(まだロック状態にない場合)。
【0072】
さらなる実施形態では、BMC102は、コンピューティングシステム100がシステム管理モードに入ったことをGPIOピンが示したとき、ロック解除状態に遷移し、BIOS104がロックコマンドを送信したとき、再びロック状態へ遷移する。付加的な実施形態では、BMC102は、BIOS104が真正のBIOSロック解除署名を有するBIOSロック解除コマンドを送信したとき、ロック解除状態に遷移することができ、BMC102は、コンピューティングシステム100がシステム管理モードを終了したことをGPIOピンが示したとき、再びロック状態へ遷移することができる。
【0073】
図2のフローチャート200は、単一のPOST部分202A、単一のランタイム部分202B及び単一のシステム管理モード部分202Cを示しているが、コンピューティングシステム100は、標準ランタイム環境であり、所定の期間中にシステム管理モードを複数回実行することができ、所定の期間中にPOSTルーチンを複数回実行することもできる(例えば、コンピューティングシステム100が最初にオンにされ、その後、1人以上のユーザーが接続されている間に再起動された場合)。従って、BMC102は、コンピューティングシステム100が動作している間、必要に応じてロック状態とロック解除状態との間で継続的に遷移することができる。
【0074】
図3は、
図1のコンピューティングシステム100等のコンピューティングシステムを保護する方法300のフローチャートを示している。コンピューティングシステムは、BIOS(BIOS104等)、BMC(BMC102等)、及び、BMCとBIOSに結合された1つ以上のハードウェアコンポーネント(ハードウェアコンポーネント105の何れか等)を有する。ステップ302では、BMCは、ユーザーから、いくつかのタイプのロック解除署名を含むロック解除コマンドを受信する。
【0075】
ステップ304では、BMCは、ロック解除コマンドのロック解除署名が真正のロック解除署名であるかどうか(例えば、ロック解除署名がロック解除コマンドの内容と同一であるかどうか)を判定する。いくつかの実施形態では、ロック解除署名は暗号化されている。これらの実施形態では、ステップ304は、ロック解除署名を復号化し、復号化されたロック解除署名が真正であるかどうかを判定するステップをさらに含む。いくつかの実施形態では、ロック解除署名は秘密鍵を用いて暗号化され、BMCは秘密鍵に対応する公開鍵を保持する。BMCは公開鍵を用いて、暗号化されたロック解除署名を復号化することができる。
【0076】
ステップ306では、BMCは、ロック解除署名が真正である場合、ロック状態からロック解除状態へ遷移する。BMCがロック状態にあるとき、BMCはユーザー(単一のユーザー、サブセットのユーザー、又は全てのユーザー)から受信したコマンドを無視し、ユーザーがコンピューティングシステムのハードウェアコンポーネントにアクセスできなくなる。BMCがロック解除状態にあるとき、BMCはユーザーから受信したコマンドに応答し、ユーザーがコンピューティングシステムのハードウェアコンポーネントにアクセスし、コンピューティングシステムを所望の目的で用いることができるようになる。
【0077】
本発明を1つ以上の実施形態に関して詳細に述べてきたが、本明細書及び図面を読み理解する際に他の当業者により同等の修正及び変更が生じ得る。また、本発明の特定の特徴は、複数の実施形態のうち何れかのみに関連して述べられているが、このような特徴は、所定の又は特定の用途に必要で利点がある1つ以上の他の実施形態の他の特徴と組み合わせられてもよい。
【0078】
本開示の様々な実施形態について上述したが、それらは限定ではなく例として提示されたものであることを理解されたい。本開示の趣旨又は範囲から逸脱することなく、開示された実施形態に対する多数の変更を、本明細書の開示に従って行うことができる。従って、本開示の幅及び範囲は、上記の実施形態の何れかによって限定されるべきではない。むしろ、本開示の範囲は、添付の特許請求の範囲及びその均等物に従って定義されるべきである。
【符号の説明】
【0079】
100…コンピューティングシステム
102…ベースボード管理コントローラ(BMC)
103…公開鍵
104…基本入出力システム(BIOS)
105…ハードウェアコンポーネント
106…中央処理装置(CPU)
108…グラフィック処理装置(GPU)
110…メモリデバイス
112…ノースブリッジチップ
114…サウスブリッジチップ
116…入力/出力(I/O)インターフェース
118…ファンモジュール
120…電源ユニット
200…フローチャート
202A…POST部分
202B…ランタイム部分
202C…システム管理モード部分
204A~204G…時間
206A~206E…サブ部分
300…方法
302~306…ステップ