説明

モバイルインターネットデバイス(MID)でUEFIファームウェア及びUEFIアウェアなオペレーティングシステムのセキュアなブートのためのシステム及び方法

【課題】モバイルコンピューティングプラットフォームにおいて、オーナにより許可されたやり方でのみファームウェアが実行されるようにする。
【解決手段】システムは、ホストオペレーティングシステム及びホストアプリケーションを実行するホストプロセッサ910と、前記ホストプロセッサ910をブートするファームウェアであって、ブートの間に1以上の署名鍵を利用するファームウェアと、それぞれの署名鍵は、ブートの間に前記プラットフォームにロードされるソフトウェア画像921に関連され、前記ファームウェア及び他のホストプロセッサ910のアプリケーションにとってアクセス不可能であるセキュアメモリストア920に結合される前記プラットフォームのセキュリティプロセッサ931であって、前記1以上の署名鍵を管理してブートの間の画像のロードを制御するセキュリティプロセッサ931と、を有する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施の形態は、モバイルコンピューティングプラットフォームに関し、より詳細には、本発明の実施の形態は、プラットフォームオーナ又はアドミニストレータのための機能を追加して、署名されたコンポーネントによるような、オーナにより許可されたやり方でのみファームウェアが実行されることを保証するものである。
【0002】
本実施の形態は、CRTM(Core Root of Trust for Measurement)を、RTS(Root-of-Trust for Storage)SRK(Storage Root Key)としてモバイル装置における暗号化コプロセッサの使用を介して、UEFI(Unified Extensible Firmware Interface)PI(Platform Initialization)の画像認証及びブートマネージャに拡張する場合がある。
【0003】
本実施の形態には、著作権保護を受けるマテリアルが含まれる。著作権者は、特許商標庁のファイル又はレコードに現れたときに任意の人物による特許の開示のファクシミリの複製に対して異論はなく、さもなければ、無断での複写・複製・転載を禁じる。
【背景技術】
【0004】
セキュアなブート(secure booting)のための様々なメカニズムが存在する。UEFI(Unified Extensible Firmware Interface)仕様は、オペレーティングシステムとプラットフォームファームウェアとの間のインタフェース向けの新たなモデルを定義する。このインタフェースは、プラットフォームに関連する情報に加え、オペレーティングシステム及びそのローダにとって利用可能なブート及びランタイムのサービスコールを含むデータテーブルから構成される。同時に、これらは、オペレーティングシステムをブートし、プリブートアプリケーションを実行する標準的な環境を提供する。UEFIに関する更なる情報は、URL www*uefi*org/homeでのパブリックなインターネットで発見される場合がある。不注意なハイパーリンクを防止するため、この文書ではピリオドはアスタリスクで置き換えられている。UEFI標準は、プラットフォームのセキュアなブートを支援するために使用される。
【0005】
UEFI仕様2.1の26節は、セキュアなブートのプロトコルを記載する。定義されたプロトコルは、特定のデバイスパスをもつ一般的な認証情報のためのアクセスを提供する。プロトコルは、物理的又は論理的なデバイスに関連する情報を取得するために任意のデバイスで使用される場合がある。公開鍵及び証明書は、ファームウェアで保持され、第三者の(U)EFIドライバ及びオペレーティングシステム(OS)ローダでデジタル署名をチェックする。プラットフォームに公開鍵を束縛することは、デプロイメントの問題となっている。セキュリティは、プラットフォームが公開鍵をセキュアに記憶することができるのと同様に良好である(すなわち、恐ろしい「鍵の管理の問題」)。公開鍵又は証明書のブートタイムでの失効は、可能ではない。サーバからの証明書失効リスト(CRL)を解明することができないので、早期のブート環境は、ネットワークにアクセスすることができない。偽者のローダは、セキュリティを巧みに逃れるためにプラットフォームに挿入される場合がある。したがって、このセキュアなブート方法は、ブートタイムの間の攻撃に対して脆弱である場合がある。
【0006】
モバイルデバイス、及びより詳細にはモバイルインターネットデバイス(MID)は、使用においてユビキタスになっている。モバイルデバイスをブートする様々なメカニズムが存在し、これらの方法は、デスクトップ及びラップトップシステムをブートするために使用される方法とは異なる。デスクトップ及びサーバプラットフォームでは、TCG(Trusted Computing Group)により文書化されるチップのタイプであるTPM(Trusted Platform Module)コンポーネントは、バージョン1.2である承認された最新の変形によれば、セキュアなブートを支援するために使用される場合がある。TPMは、AMD社のPresidio及びそのSKINITインストラクション又はIntel社のSENTERインストラクションを使用したTXT(Trusted-eXecution-Technology)(aka LaGrande Technology)のようなプロセッサ/チップセット技術と結合されたとき、これらのタイプのプラットフォームでのファームウェアのブートをプロテクトする役割をする場合がある。しかし、MIDプロセッサは、TXT(Trusted-eXecution-Technology)又はTCG1.2TPMをサポートせず、したがって、ファームウェアの「セキュアなブート」及びプラットフォームにおける信頼できる起点(root-of-trust)は、オペレーティングシステム(OS)ブートストラップの一部として必要とされる。追加されたセキュリティのため、オペレーティングシステムの始動の前にMIDでのファームウェアのブートをプロテクトすることが望まれる場合がある。これは、音楽及び他のマルチメディアのようなハイバリューコンテンツがMIDシステムで使用され、コンテンツプロバイダにより要求される高いプロテクションを必要とする場合があるために特に当てはまる。
【発明の概要】
【課題を解決するための手段】
【0007】
本発明の実施の形態は、モバイルデバイスに関するシステム及び方法である。例示的な目的について、本発明の実施の形態は、モバイルインターネットデバイス(MID)に関連するものとして記載される。しかし、本発明の実施の形態は、携帯電話、ポータブルMP3プレーヤ、パーソナルデジタルアシスタント(PDA)又は、インターネットアクセスを有さない他のモバイルデバイスに適用可能な場合がある。本発明の実施の形態は、プラットフォームのオーナ又はアドミニストレータの能力を追加して、署名されたコンポーネントによるようなオーナーにより許可されたやり方でのみファームウェアが実行されることを保証する。本実施の形態は、測定のための信頼できるコアとなる起点(CRTM: Core Root of Trust for Measurement)を、記憶のための信頼できる起点(RTS: Root-of-Trust for Storage)の記憶の起点の鍵(SRK: Storage Root Key)として、モバイル装置における暗号化コプロセッサの使用を介して、UEFI(Unified Extensible Firmware Interface)のPI(Platform Initialization)の画像認証及びブートマネージャに拡張する場合がある。
【0008】
本発明の「1実施の形態」又は「実施の形態」に対する明細書における参照は、実施の形態との関連で記載される特定の特徴、構造又は特性が本発明の少なくとも1つの実施の形態に含まれることを意味する。したがって、明細書を通して様々な場所で現れるフレーズ「1実施の形態では」の登場は、必ずしも、同じ実施の形態を全て参照するものではない。
【0009】
説明のために、本発明の全体的な理解を提供するために特定のコンフィギュレーション及び詳細が述べられる。しかし、本発明の実施の形態は、本明細書で与えられる特定の詳細なしに実施される場合があることが当業者にとって明らかであろう。さらに、公知の特徴は、本発明を曖昧にしないために省略又は簡略化される場合がある。様々な例は、この説明を通して与えられる場合がある。これらは、本発明の特定の実施の形態の単なる記載である。本発明の範囲は、与えられる例に限定されない。
【0010】
本発明の実施の形態は、不透明な「OEMブートモジュール」を採用し、UEFIのセキュアなブート及びプラットフォームの初期化(PI: Platform Initialization)に基づくファームウェアのポリシーに基づくディスパッチを適用してセキュリティのソリューションを実施し、MIDを市場に提供するOEM(Original Equipment Manufactures)及びODM(Original Design Manufactures)を可能にする。特に、この技術分野は、セキュアなブートのプラットフォームドライバ、第三者のオプションのROM(O-ROM)、並びに(Microsoft Windows(登録商標)向け)Winroad.efi及び(Linux向け)eLifo.efiのようなOSローダを含む。eLifoは、EFIに基づくPCハードウェア用の標準的なLinuxブートローダである。実施の形態は、認証された可変のサービスを要求する前にプラットフォームのオーナがペイロードを署名しなければならないときに、秘密鍵を露出する危険を除く。また、実施の形態は、SSO(Single Sign-On)シナリオ、及び1タッチの提供を実現する。たとえば、プラットフォームのオーナは、同じ認証データにより、OSフェーズ及びプレOSフェーズの両者においてオーナシップを取得する場合がある。
【0011】
本発明の実施の形態は、秘密の署名鍵を管理するためにMIDのセキュリティプロセッサを利用する。これにより、セキュリティプロセッサのポリシーエンジンをもつUEFIのセキュリティブートは、マネージャビリティ及びプロビジョニングインフラストラクチャに継ぎ目なく統合することができる。
【図面の簡単な説明】
【0012】
本発明の特徴及び利点は、本発明の以下の詳細な説明から明らかとなるであろう。
【図1】署名の技術を使用してシステムにおけるブート及びシステムインテグリティを保証するために使用される署名鍵の階層を例示するブロック図である。
【図2】本発明の実施の形態に係る、プラットフォームのオーナがオーナシップを取得し、セキュリティプロセッサによりプラットフォームの証明書を生成するときのフローを例示する図である。
【図3】本発明に係る、オーナシップを取得し、プラットフォームの証明書を登録する方法を例示するフローチャートである。
【図4】本発明の実施の形態を実現するために使用される例示的なCコードを説明する図である。
【図5】本発明の実施の形態に係る、証明書のデータベースの例示的な構造を説明するブロック図である。
【図6】本発明の実施の形態に係る、プラットフォームのオーナが第三者の認証の証明書を登録する方法を説明するフローチャートである。
【図7】本発明の実施の形態に係る、プラットフォームのオーナがデジタル署名を登録する方法を説明するフローチャートである。
【図8】本発明の実施の形態に係る、実行可能なUEFIを許可する例示的な方法を説明するフローチャートである。
【図9】本発明の実施の形態に係る、プライマリプロセッサエレメント及びセキュリティ処理チップセットを有するプラットフォームを例示するブロック図である。
【図10】本発明の実施の形態に係る、埋め込まれたセキュリティプロセッサを有する例示的な暗号化ユニットのブロック図である。
【発明を実施するための最良の形態】
【0013】
図9を参照して、プライマリ又はホストプロセッサエレメント910及びセキュリティプロセッシングチップセット930を有するプラットフォーム900を例示するブロック図が示される。本発明の実施の形態では、プラットフォーム900は、マルウェアからプロテクトするためにセキュアなOSのブートを必要とするプライマリプロセッサ911をもつプライマリランタイム環境910を有する。プロセッサ911は、システムメモリ905に結合される。セキュリティプロセッサのチップセットユニット930は、セキュリティエンジン又はプロセッサ931、(x86ファームウェアをロードする前にプラットフォームの初期化の幾つかを行う)システムコントローラ(ARC)933、及び専用のリードオンリメモリ(ROM)935を有する。ROMは、コード及びデータを更に保護して、セキュアブートを保証するために使用され、リードオンリであるとき、コード及びデータは、悪意のある改ざんにより変更されない場合がある。フラッシュメモリ920は、セキュリティプロセッサに結合され、プライマリプロセッサ911をブートするためにブートソフトウェアの画像921を保持する。プライマリプロセッサ911にロードされるブートソフトウェア画像は認証され、マルウェアがないことが重要である。
【0014】
実施の形態では、検証されたブートは、セキュリティチップセット930を使用して実現される場合がある。セキュリティエンジン931は、以下に説明されるように、鍵及び署名の手順を実現するために構成される。セキュリティプロセッサ931は、プライマリプロセッサ911によるアクセスから隔離される専用装置であるので、セキュリティエンジンは、改ざんからプロテクトされる。セキュリティエンジンは、プライマリプロセッサがブートするのを可能にする前に、プライマリプロセッサについてブートROMを検証するために構成される。たとえばIntel(登録商標)Core(登録商標)2Duoに基づくPC(Personal Computer)といった既存のシステムでは、プライマリプロセッサは、検証することなしに、フラッシュの部分、すなわちブートROMにブート制御を自動的に移す。幾つかのデスクトップ、ラップトップ又は他のフル機能PCでは、TXT技術は、ブートROM及び後続する処理を検証するのを介入する。プラットフォームは、ブートプロセスまでセキュアな状態になり、特に、SENTER命令により起動されるTXTマイクロコードは、プラットフォーム上の全てのプロセッサを同期させ、測定された起動環境(MLE: Measured Launch Environment)について、オプションのROM及びプラットフォームのBIOSを含めて、その前に実行したソフトウェアの全てに独立にすることができる。しかし、TXT処理は、MID及び他の低コストプラットフォームで利用可能ではない。実施の形態では、セキュリティプロセッサは、他のシステムにおけるTXTに対する代替として、ブートROMを検証するためにMIDに追加される。しかし、セキュアプロセッサを有するMIDの実施の形態では、OEMのブートモジュールのみが検証されることが可能である。
【0015】
OEMブートモジュール951は、基本的にUEFIファームウェアである。セキュリティプロセッサ930は、OEMブートモジュール951を検証する。ひとたび検証されると、セキュリティプロセッサ930は、OEMブートモジュール951をプライマリプロセッサ911のSRAM905にコピーする。OEMブートモジュールは、プレEFI初期化(PEI)及びドライバ実行環境(DXE)を包含する場合がある。これらのフェーズは、オペレーティングシステム(OS)が起動される前に実行される必要がある。幾つかのシステムでは、ひとたびOEMブートモジュールが実行されると、OSローダ953は、PEIフェーズから始動される。OSローダ953は、信頼されたOS955を始動する。しかし、OSの信頼は、実際に検証されるのではなく、これらのシステムで前提とされる。本発明の実施の形態は、OEMブートモジュール951を検証することを超えて、OSローダ及び他のEFIモジュールを認証するためにイネーブルにされる。これは、多数の署名されたOSインスタンスを記憶し、署名されたアプリケーションを検証する機能を提供する。
【0016】
既存のMIDシステムでは、OSローダ及びOSコードは、1つの実行可能な画像として記憶されることが理解される。MIDでUEFIアーキテクチャを実現することは、ブート及びOSロードのそれぞれのフェーズについて画像の分離を可能にする。本発明の実施の形態は、それぞれの個々の画像がそれ自身のデジタル署名を有し、独立に検証される場合があるように、UEFIアーキテクチャの構築を利用する。また、これは、個々のコンポーネントが必要に応じて更新又は変更されるのを可能にする。
【0017】
幾つかの実施の形態では、MIDにおいて代替的なオペレーティングシステムをブートする機能を提供することが望まれる場合がある。たとえば、多数のオペレーティングシステムが携帯電話に既にロードされているか、又は遠隔的にロードされて適切に認証されることができる場合に、同じスマートフォンでセルラーキャリアの間で、携帯電話のユーザにとってより便利である。この場合、ユーザに新たな携帯電話を購入させるのではなく、新たなキャリアから再ブートを要求し、カスタムソフトウェアによりキャリアにMID(スマートフォン)を再ブートさせることがユーザにとって望ましい。また、同じキャリアを続ける間でさえ、装置の好適なソフトウェアに基づいて、異なるオペレーティングシステムをブートすることが望まれる場合がある。しかし、新たなオペレーティングシステムの始動が検証及び許可されることが重要である。例示する目的のため、モバイルインターネットデバイスを示すが、カメラ機能又はミュージックストレージ及び再生のような他のアプリケーションがモバイルデバイスに選択的にインストールされる場合があるが、インターネットアクセスは本発明を実現するために必要とされないことを理解されたい。
【0018】
MIDがUEFIアーキテクチャを使用するとき、代替的なオペレーティングシステムは、UEFI OSローダを利用し、UEFIファームウェアは、セキュリティプロセッサと通信し、EFIドライバ及びローダを署名するため、認証された変数及び証明書を不揮発性メモリに記憶し、認証された変数は、セキュリティプロセッサの不揮発性メモリ及び/又はプラットフォームフラッシュのセキュアエリアに記憶され、セキュリティプロセッサのRSAエンジンにより署名される。セキュリティプロセッサは、ドライバの実行環境(DXE)及びプレEFI初期化環境(PEI)コードが正しく、破壊されていないことを保証する場合がある。次いで、DXEフェーズは、セキュリティプロセッサの機能を使用して、UEFIのセキュアなブートのために証明書及び許可証を管理する。
【0019】
セキュリティプロセッサは、プライマリプロセッサにアクセス不可能なそれ自身のメモリストレージを有する場合がある。鍵及び証明書は、プライマリプロセッサで実行する悪意のあるコードによる改ざんの危険なしに、セキュリティプロセッサストレージにセキュアに記憶される。別の実施の形態では、鍵及び証明書は、ホストプロセッサにアクセス不可能なホストプロセッサのフラッシュメモリのセキュアなエリアに記憶される場合がある。この領域確保は、プラットフォームのチップセットによりイネーブルにされ、セキュリティプロセッサへのアクセスのみを可能にする。
【0020】
OEMブートモジュールを検証するため、典型的に、OEMは、MIDのチップセットに公開鍵を記憶する。OEMブートモジュールは署名され、公開鍵でチェックされる場合がある。署名されたモジュールがセキュリティプロセッサにより検証されたとき、チップセットは、ブートを開始するためにプライマリプロセッサにモジュールを解放する。
【0021】
セキュアなマルチメディアのスタック961、セキュアな管理容易性のスタック963(すなわちRealNetworks社からのHelixのようなメディアプレーヤソフトウェア)を保持し、MIDで実行されるべき様々なアプリケーションのうちで署名されたアプリケーション965を検証することが望ましく、OSローダまで及びOSローダを含めて、プリブート環境が信頼されない場合に、プラットフォームは、これらのアプリケーションにおいて信頼を構築することができない。本発明の実施の形態は、OEMブートモジュールに加えて、これらのアプリケーションが検証されたことを保証する。したがって、本発明の実施の形態は、MIDプライマリプロセッサで実行する全てのモジュールは、鍵及び署名技術を使用して検証及び認証されたことを保証し、この場合、鍵はセキュリティプロセッサにより管理される。
【0022】
図10を参照して、本発明の実施の形態に係る、埋め込まれたセキュリティプロセッサを有する暗号化ユニットが示される。暗号化セル1000は、埋め込まれたセキュリティプロセッサ931を有する。セキュリティプロセッサ931は、ROM935及びシステムRAM937の両者に接続される。暗号化セル1000は、セキュアデバックマネージャ1010を含む場合がある。セキュアデバックマネージャは、JTAG(Joint Test Action Group)標準のテストアクセスポート1011、及びバンダリスキャンを使用してプリント回路ボードをテストするために使用されるテストアクセスポート用のバンダリスキャンアーキテクチャに結合される。暗号化コア1020は、典型的に、リング発振器1021に結合される固定された機能のハードウェアである。暗号化セル1000は、それ自身のクロック1030及びパワー1040を有する。クロック1030は、外部クロック1031で駆動又は同期される。暗号化コア1020は、署名及び検証のために使用される非対称及び対称暗号化のためのRSAアルゴリズム又は他のアルゴリズムにより使用されるモジュラー演算を加速する。暗号化のための固定された機能のハードウェアを使用することは、これらの機能のためにX86プロセッサを使用するコストのため、MIDシステムにとって典型的であり、この場合、コストは、価格、サイズ、効率及び電力の要件により測定される。暗号化セル1000への電力は、外部のパワーユニット1041及びリセットユニット1043により駆動又はリセットされる。暗号化セル1000は、不揮発性メモリ(NVM)ユニット1051を制御するため、不揮発性メモリ(NVM)マネージャ1050を有する。
【0023】
暗号化セル1000は、AHB(Advanced High-performance Bus)マスタ及びAPB(Advanced Peripheral Bus)スレーブをもつシステムインタフェース1070を有する。AHBは、インテリジェントセキュリティプロセッサとホストとの間の相互接続である。AHBは、幾つかの優れたコマンドを保持することができる。暗号化演算のようなこれらのコマンドの幾つかは、固定された機能のハードウェアでそれらを処理するため、APBに送出される場合がある。暗号化のために固定化された機能のハードウェアを有することは、汎用プロセッサで暗号化を実行するよりも良好なMIPS(Millions of Instructions Per Second)/ワット効率を有する。
【0024】
実施の形態では、UEFIのブートが検証及び認証されたことを保証するために使用される証明書は、セキュリティプロセッサにアクセス可能な不揮発性メモリ1051に記憶される。x509v2標準に準拠するような証明書は、n組の情報をそれぞれ記憶する。この情報は、公開鍵、証明書がアクティブである日付/時間、Verisign又はOSベンダのような信頼される第三者(TTP)からの証明書の署名を含む。かかるように、公開鍵1053は、検証を支援するために暗号化セル1000のチップセットNVM1051に記憶される場合がある。ブートを認証するために使用されるプロセスは、以下に更に記載される。実施の形態では、使用される証明書の署名及び鍵の技術は、署名の鍵を使用して既存のシステムで使用されるものに類似している。しかし、既存の方法は、改ざんの危険なしに、MIDプライマリプロセッサで直接的に使用することができない。
【0025】
図1は、署名技術を現在使用するシステムにおけるブート及びシステムインテグリティを保証するために使用される署名の鍵の階層を例示する。この署名の階層は、ルート及びリーフをもつカノニカルなストアである。破線で輪郭が描かれた鍵は、書き込みがプロテクトされたストレージにある場合がある。本発明の実施の形態では、このプロテクトされたストレージは、プライマリプロセッサ又はデバイスオペレーティングシステムではなく、セキュリティデバイスにアクセス可能である。例示的なUEFIの実施の形態では、PV−00、PV−01、PV−30及びPV−31(101a−d)は、UEFIプロテクトされた変数をプロテクトする鍵を表す。これらプロテクトされた変数(PV)は、署名されたUEFIローダ及びドライバを示す。KeK0pub,KeK1pub,KeK2pub及びKeK3pub(103a−d)は、暗号化コアを記憶する公開鍵を表す。UEFIファームウェアは、暗号化コアに送出されるコマンドを介して、署名が正しいかを調べるため、公開鍵103を使用してUEFIドライバ及びローダに埋め込まれたデジタル署名をチェックする。幾つかの鍵は、プロテクトされた変数に応答しない場合がある。それぞれのオペレーティングシステムのローダは、典型的に、それ自身の鍵を有する。たとえば、プラットフォームは、Windows(登録商標)ローダ及びLinuxローダの両者を有する場合がある。両者がプロテクトされる必要がある。それぞれのローダは、それ自身の公開鍵を有する。それぞれのOSベンダは、典型的に、それらのローダのプロダクツをデジタルで署名する。プラットフォームの鍵(PK)は、会社の情報技術(IT)部門のようなプラットフォームのオーナがプラットフォームに与える鍵である。プラットフォームは、PKを使用して、全ての他の鍵を暗号化/署名する。たとえば、OSベンダ又は独立したハードウェアベンダ(IHV)からの鍵KEK103は、PK105を使用して暗号化される。言い換えれば、プラットフォームのファームウェアは、PKを使用して、KEKを保護する。
【0026】
Platform_admin_r107は、システム又はプラットフォームのアドミニストレータ又はITプロフェッショナルを表す。このアドミニストレータは、典型的に、鍵/署名/暗号化機能をオンにし、PK105をインストールする。幾つかのシステムでは、プラットフォームアドミニストレータ107は、マネージメントコンソールに存在し、Intelアクティブマネージメントテクノロジ(iAMT)ネットワーキングを介するような、ネットワークを介してコマンドをUEFIマシンに送出することでセキュアなブート機能を遠隔的にインストール及び始動する。携帯電話のMIDシステムについて、プラットフォームアドミニストレータは、アドミニストレイティブコンソールに対して(TLS/SSLのような)信頼されるチャネルを想定するか、又はOMA(OpenMobileAlliance.org)プロトコルのような他の技術を使用して、ワイヤレスセルラー通信を介するか、又はインターネット接続を介して鍵/署名をオンにする。
【0027】
リモートサーバ110は、プラットフォーム鍵113a又はOSローダ鍵113bのような秘密鍵、証明書及び廃止リストをアクティブなディレクトリ111に保持する。アクティブディレクトリ111は、企業のレジストリである。レジストリは、管理されるプラットフォームに関する情報を保持する。良好/有効な鍵のリストは、アクティブなディレクトリ111に記憶される場合がある。他のシステムでは、管理可能性エンジン(ME: Manageability Engine)又はIntelアクティブマネージメントテクノロジ(iAMT)デバイスは、リモートサーバ110のアクティブディレクトリ111にアクセスし、鍵が有効であるか、又は鍵が取り消されているかを判定する。代替において、MEは、たとえばパブリックなインターネットを介して、他のリモートサーバ又はネットワークにアクセスし、良好又は取り消された鍵のリストを検索する。本発明の実施の形態では、セキュリティプロセッサは、鍵及び証明書を管理するために使用される。証明書のリストは、プライマリプロセッサではなく、セキュリティプロセッサにアクセス可能な不揮発性メモリ(NVM)に記憶される一方で、証明書は、ランタイムの間のインターネットのアクセスによる上述されたのと同じやり方で、又はプラットフォームアドミニストレータが無線通信経路を介してMIDに新たな証明書のセットを送出することで更新又は取り消される場合がある。
【0028】
実施の形態では、セキュリティプロセッサは、MID上のアクティブなハードウェアの部分である。UEFIセキュアなブートは、セキュアなブートをイネーブルにする、検証の実施のための信頼できる起点(Root of Trust for Enforcement of Validation (RTE/RTV))を追加する。RTE及び「セキュアなブート」は、実際に、ホワイトリスト又はデジタル署名におけるハッシュのような幾つかのインテグリティメトリックにソフトウェアの状態が合致しない場合に、ブートを途中停止させる。UEFIは、両方のケースをイネーブルにするか、後者を支持する。これは、可能性のあるハッシュのリストは際限がなく、管理上の悪夢となる可能性があるからである。公開鍵は、間接のレベル(a level of indirection)について、鍵を幾つかの信頼されるソースにマッピングすることを可能にし、したがってデプロイメントに関する管理の問題が解消される。
【0029】
本発明の実施の形態により対処される問題は、(1)第三者のUEFIドライバ、アプリケーション及びOSローダの証明書を管理する1つのポリシーメカニズムを有すること、及び(2)ひとたびプラットフォームオーナがプレOS又はOSの何れかにおいてシステムのオーナシップを取得すると、第三者のUEFIドライバ、アプリケーション及びOSローダの実行を許可すること、を含む。
【0030】
セキュリティプロセッサは、プラットフォームオーナ、プラットフォームファームウェア、及び第三者(すなわちOSV、OEM等)の間の信頼関係を可能にする。信頼関係を記述する2つのタイプの証明書が利用される場合がある。第一に、プラットフォームの証明書が使用され、プラットフォームのオーナとファームウェアとの間の信頼関係が確立される。プラットフォームのオーナは、オーナシップを取得して他の証明書を登録するために使用される、非対称鍵の対を含むルートの証明書としてプラットフォームの証明書を形成する。第二に、第三者の証明書は、第三者のベンダとファームウェアとの間の信頼関係を確立する。プラットフォームオーナは、信頼される第三者のベンダの証明書を登録する場合があり、この証明書は、第三者の実行ファイルの実行を許可するために使用される。この種類の証明書は、ベンダにより生成された公開鍵、及びベンダに特化した情報の両者を含む場合がある。
【0031】
プラットフォームの証明書は秘密鍵を含み、第三者の証明書を登録するために使用されるので、ローカルマシンは、明示的な秘密鍵の操作(すなわちペイロードの署名)を必要とする。MIDでは、デスクトップシステム又は他の既存のシステムにおけるものとしてこれら2つの問題に対処することは困難である。したがって、本発明の実施の形態は、ストレージのための信頼できる起点(RTS)としてセキュリティプロセッサを使用するクリエイティブなやり方を提供して、プラットフォームの証明書を生成し、第一の問題に係らず秘密鍵をセキュアに記憶する。後者の問題に関して、本実施の形態は、セキュリティプロセッサを使用して、署名の動作を内部的に実行するものであり、これは、秘密鍵を露出しない。
【0032】
実施の形態では、プラットフォームのオーナの視点でSETUP及びUSERモードといった2つの動作モードが定義される。セキュリティポリシーは、後者のモードで強制される。特に、SETUPは、証明書を提供させるためにコンピュータがオープンである場合であり、USERモードは、UEFIファームウェアが、検証のために信頼できる起点(RTV)となり、デジタルで署名されたUEFIのOSローダ又はドライバのみを起動し、証明書における関連される検証の公開鍵は、MIDデバイスにインストールされる場合である。
【0033】
図2は、プラットフォームのオーナがオーナシップを取得し、セキュリティプロセッサによりプラットフォームの証明書を生成するときのフローを説明する。図2は、例示的な実現を示す。SETUPモード201は、オーナシップを取得し、プラットフォームの証明書を登録し、制御をUSERモード203に移す。USERモード203は、第三者の証明書を登録する。USERモード203は、オーナシップをSETUPモード201に譲る。
【0034】
この後者の動作は、MIDシステムが悪意のあるソフトウェアにより攻撃されたときに起こる場合があり、UFEIファームウェアは、もはやコンピュータをブートせず、したがってコンピュータをドアストップと同様に実用的にする。自然の応答は、デバイスのオーナにとって、キャリア/サプライヤに返送することである。工場に戻って、特定のハードウェアの兆候/刺激/他のメカニズムが使用され、コンピュータがユーザモードからセットアップモードに移され、コンピュータへの証明書及び/又はソフトウェアのロードが再提供される。
【0035】
図3は、本発明の実施の形態に係る、オーナシップを取得し、プラットフォームの証明書を登録する方法を説明するフローチャートである。これは、デバイスの証明書のデータベースを生成又は更新する1つの可能性のある方法を説明する。プラットフォームのアドミニストレータ310は、携帯電話の場合において携帯電話会社であり、オーナシップのインストールが必要であるかをブロック301で判定する。オーナシップのインストールが必要である場合、ブロック303で、アドミニストレータは、現在の所在をアサートする。これは、デバイスがアドミニストレータの制御を任せる前に、製造の間に典型的に実行される。幾つかの実施の形態では、証明書を登録するために現在の所在ではなくアウトオブバンドの所在が使用される。SecProcForceClearのコマンドは、オーナシップをクリアするためにセキュリティプロセッサに送出される。次いで、ブロック305において、秘密のプラットフォーム鍵(PK)を使用してオーナはクリアされる。セキュリティプロセッサでSETUPモードに入る。オーナが既にインストールされるとき、及びオーナシップをクリアして、SETUPモードに入った後、ブロック307において、管理上のパスワードが送出される。ブロック309において、プラットフォームの証明書の一部として鍵の対が形成される。ブロック311で、公開のプラットフォーム鍵PKpub、秘密のプラットフォーム鍵(PKpri)の関数としての暗号化演算(ESRK)により、鍵の対340が形成される場合がある。用語ESRK(PKpri)は、秘密のプラットフォーム鍵での暗号化演算を示す。暗号化は、秘密鍵(PKpri)に影響を与え、この秘密鍵は、セキュリティプロセッサをそのままにぜず、これにより、公開鍵の暗号化の問題が解決され、誰かが君の秘密鍵を取得した場合、彼らはコンピュータを所有する。セキュリティプロセッサは、秘密鍵へのこれらの影響をプロキシするものであり、x86UEFIコードが秘密鍵それ自身を扱う必要がない。鍵の対は、不揮発性ストレージ330に記憶される。SecProcCreateKeyコマンドは、鍵の対を生成するため、セキュリティプロセッサ320で実行される場合がある。ひとたび、鍵の対が形成されると、セキュリティプロセッサは、USERモードに入る。ブロック313において、他の証明書が登録される場合がある。
【0036】
図4は、本発明の実施の形態を実現するために使用される例示的なCコードを説明する。それぞれの画像は、ロード及び起動されるのを許可される前に認証される必要がある。実施の形態では、UEFI画像は、典型的に、PE/COFF(Portable Executable and Common Object File Format)実行可能な画像である。それぞれのPE/COFF画像は、セキュリティディレクトリとよばれる部分を有する。セキュリティディレクトリは、画像のデジタル署名及び関連される公開鍵を含む。PE/COFF画像及び関連する公開鍵のハッシュは、画像を認証するためにセキュリティプロセッサに送出される。セキュリティプロセッサは、証明書のデータベースから適切な証明書を検索し、チップセットの暗号化ハードウェア機能を使用して画像を認証する。図4を参照して、それぞれのUEFI画像について、機能AuthenticateImageWithSecProc() 401が実行され、セキュリティの違反(EFI_SECURITY_VIOLATION)がリターンされたかに関する判定403が行われる。セキュリティの違反がリターンされた場合、次の画像を認証するために次の画像(NextImage())405機能が実行される。ブート、又はファームウェア、画像が認証された場合、LaunchImage()機能407を実行することで起動される。セキュリティプロセッサ(AuthenticateImageWithSecProc())401による画像の認証は、画像の証明書(Image_Credential)が第三者の証明書データベース409にあるか、及び画像の証明書が第三者の認証の証明書のデータベース411により検証されるかを判定することを含む。画像の証明書が第三者の証明書データベース409にあり、画像の証明書が第三者の認証の証明書のデータベース411により検証される場合、機能は成功413をリターンする。これらのチェックの何れかが失敗した場合、機能は、セキュリティの違反(EFI_SECURITY_VIOLATION)415でリターンする。
【0037】
これらの証明書は、UEFI EFIの証明書のデータベース(EFI_CERTIFICATE_DATABASE)のタイプ440に記憶され、持続性のある又は不揮発性のストレージに記憶される。また、本発明の実施の形態は、ネットワークでロードされるプリブート実行環境(PXE: Pre-boot Execution Environment)画像を認証するために使用される場合がある。セキュリティプロセッサは、提供されるNVM及び認証されたアクセスによりこのストレージを保護する。
【0038】
なお、様々なオペレーティングシステム及びローダが様々なフォーマットを使用する場合があり、すなわち常にPE/COFFを使用するものではないことを理解されたい。セキュリティプロセッサは、全ての許容可能なオペレーティングシステムについてフォーマットを受けるために構成される。フォーマットに係らず、画像は、デジタル署名と、セキュリティプロセッサにアクセス可能であってデバイスのプライマリプロセッサにアクセス不可能な証明書データベースと整合されるべき公開鍵とを含む。
【0039】
証明書のデータベースのために使用されるデータ構造の例は、図4に示される。EFI_CERTIFICATE_DATABASE440は、データベースのサイズ、証明書のリストのカウント、及び証明書のリストデータを含む。証明書のリスト(EFI_CERTIFICATE_LIST)データ構造450は、証明書のリストのサイズ、証明書のカウント、証明書のタイプ、証明書のヘッダサイズ、証明書のヘッダ、及び証明書を含む場合がある。証明書のデータ構造は、識別子及びデータを含む場合がある。識別子は、グルーバル一意識別子(GUID)である場合がある。証明書データ(EFI_CERTIFICATE_DATA)640は、GUID及び任意のサイズのテキストフィールドを有する構造である。
【0040】
図5は、本発明の実施の形態に係る、UEFI証明書のデータベース500の構造を更に視覚的に例示する。データベースの一般的な構造は、ヘッダ501及び3つの証明書のリスト503a〜cにより左に示される。証明書のリスト510は、リストサイズ511、証明書のカウント513、タイプ515、ヘッダサイズ517、証明書のサイズ519証明書のヘッダ520、及び、識別子521a〜n及びデータ523a〜nを有するそれぞれの証明書530により右に示される。
【0041】
図6は、本発明の実施の形態に係る、プラットフォームのオーナが第三者の認証の証明書を登録する方法を説明するフローチャートである。この登録は、たとえばOEMにより提供される全てのUEFIドライバを認証する証明書といった、関連する第三者の実行ファイルのセットの1つの認証の実行のために使用される。ステップ601において、プラットフォームアドミニストレータ310は、プラットフォームの鍵(PK)が生成されたかを判定するためにチェックを始動する。ブロック603において、アドミニストレータを認証するためにパスワードのチャレンジが典型的に必要とされる。ブロック605において、アドミニストレータは、第三者の証明書の署名を認証する。この署名は、セキュリティプロセッサ320における鍵の形成(SecProcCreateKey)、署名(SecProcSign)及び鍵のアンロード(SecProcUnloadKey)の機能の実行を始動する。適切なストレージルートの鍵(ESRK)640の動作は、不揮発性ストレージ330からセキュリティプロセッサによりリターンされる。次いで、ブロック607において、第三者の証明書は登録され、ブロック609において、署名がデータベースに登録され、特に、署名の登録は、秘密鍵えおもつ証明書を改ざん防止の位置に記憶すること、又は、その後の画像の検証における使用のために実行ファイルのハッシュを保持することである。
【0042】
図7は、本発明の実施の形態に係る、プラットフォームのオーナが署名を登録する方法を説明するフローチャートである。この登録は、他の実行ファイルに係らず、実行ファイルの実行を認証するために使用される場合がある。ブロック701において、プラットフォームアドミニストレータ310は、署名の登録を始動する。ブロック703において、署名は、Security_Arch_Protocolを使用して認証される。ブロック705で判定されるように認証が成功した場合、ブロック709において、パスワードのチャレンジがアドミニストレータに課される。認証が成功しない場合、ブロック707において、とにかく署名が追加されるべきかに関して、プラットフォームのベンダに特化したポリシーを使用した判定が行われる。署名が追加されるべきではない場合、ブロック740において、完了することなしに、登録が存在する。とにかく署名が追加されるべきである場合、ブロック709において、パスワードのチャレンジによる処理が継続する。ひとたび、アドミニストレータが正しいパスワードを入力すると、ブロック711において、セキュリティプロセッサ320により、鍵はロードされ(SecProcLoadKey)、署名され(SecProcSign)、次いで鍵はアンロードされる(SecProcUnloadKey)。次いで、ブロック713において、署名は、変数(SetVariable機能)を設定することでNVM330に登録される。プロセスは、ブロック760において完了する。これは、更なる署名をデータベースに追加する管理行為を実行するプロセスである。これは、デバイスのオーナが、デバイスの製造の間にその証明書が登録される新たなオペレーティングシステムのローダ又はアプリケーションを起動するのを望む場合に行われる場合がある。
【0043】
図8は、本発明の実施の形態に係る、UEFI実行ファイルを認証する例示的な方法を説明するフローチャートである。ブロック801で、MIDは電源オンにされるか、又はリセットされる。ブロック803で、最初の鍵は記憶され、これは、工場が供給するNVM/データベースとすることができる。ブロック805において、上述されたように、セキュリティプロセッサは、公開鍵に対する署名をチェックすることで、UEFIの検証が成功したかを判定する。検証が失敗した場合、ブロック809において、UEFIの実行ファイルが認証されたかが判定される。許可されたアプリケーションは署名されたアプリケーションであり、関連される公開の検証鍵をプラットフォームに有し、UEFI画像におけるデジタル署名は、検証テストを通過する。検証のアクションは、たとえばブロック823において後に実行される場合があり、この場合、画像は、データベースにはない場合があるが、OSのランタイムの間、OSは、リモートオーソリティと通信し、画像の状態を問い合わせするか、又はユーザが次にこの画像を登録/実行するのを望むかを判定するためにユーザに問い合わせる場合がある。
【0044】
UEFIの実行ファイルが認証されない場合、ブロック813において、次のブートオプションが試みられる場合がある。あるケースでは、このブートオプションは、ブートするためのデバイスの完全な失敗である場合がある。他のケースでは、ブートオプションは、管理モードOSをブートするか、少なく機能するOSをブートする場合がある。ブロック815において、プラットフォームアドミニストレータがUEFIの署名をシステムのコンフィギュレーションテーブルに追加し、ブロック813において、次のブートオプションが試みられるまで、ブートが延期される場合がある。
【0045】
検証が成功したとき、ブロック807において、UEFIの実行ファイルは記憶される。検証が失敗したが、認証が許可されたとき、UEFIの実行ファイルの署名は、ブロック807において実行ファイルが開始される前に、ブロック811において、データベース830に保存される。
【0046】
ひとたび、ブロック821においてOSが起動されると、ブロック823において、OSアプリケーションがUEFI実行ファイルで検証されたかに関する判定が行われる。OSアプリケーションがUEFI実行ファイルで検証されない場合、プロセスはブロック850で終了する。検証された場合、ブロック825において、UEFIの実行ファイルの署名データベースが更新され、プロセスは、ブロック850で終了する。
【0047】
モバイルインターネットデバイスのアーキテクチャは、携帯電話の市場を更に厳密に目標とするため、意図的に「PC互換性」を避ける場合がある。そうすることにおいて、SENTERのようなTXT GETSEC命令のようなインバンドプロセッサの信頼されるプラットフォーム技術の幾つかを省略/除く。代わりに、MIDアーキテクチャは、上述されたように、専用の統合されたセキュリティプロセッサを選ぶ場合がある。そうすることにおいて、MIDは、「OEMブートモジュール」の充填に対するエコシステムのギャップを有する。この「ギャップ」は、BIOSベンダがPC/ATプラットフォームのブートコードを構築することに慣れているためである。PC/ATから発散することで、トラディショナルなBIOSは、MIDでもはや機能しない。早期の初期化のためのUEFIプラットフォームの初期化(PI)コード及びOSロードのためのUEFIインタフェースからなる、モジュール性のあるプラットフォームに独立な設計がここでは有利である。UEFI及びPIコードは、このノントラディショナルな(すなわちPC/ATではない)プラットフォームについて再びターゲットとされる。その点で、更に多くのフォームは、UEFIを介して追加され、UEFIのセキュアなブートの誘導的なセキュリティを使用して、手を携えてセキュリティプロセッサと機能し、ランタイム環境への製造者の信頼を維持する。特に、セキュリティプロセッサは、署名されたUEFI PIファームウェアボリュームを理解することが教示される。DXEにおけるUEFIの実現は、セキュリティプロセッサを使用して、(画像の検証のために使用される公開鍵と共に)証明書を記憶し、UEFI OSローダ及びドライバを認証する(すなわち、SHAのような1方向ハッシュ関数及びRSAのようなデジタル署名アルゴリズムを実行する)。
【0048】
本発明の実施の形態は、記憶のための信頼できる起点(RTS)としてセキュリティプロセッサを使用して、上述されたように秘密鍵を露出する危険なしに、ペイロードの署名のような暗号化の動作と同様に、鍵の生成及び記憶のような鍵の管理を実行する。既存のシステムでは、認証された変数の使用は、認証された変数のAuthInfoフィールドを幾つかのインバンドコードに署名させることを必要とし、これは、シールドされた位置を有することなしに危険となる可能性がある。セキュリティプロセッサは、シールドされた位置及びプラットフォームでの認証された変数を署名することを許容し、これは、コンピュータから離れてリモートの署名サーバで署名が行われる必要がある幾つかのスキームとは対照的である。この後者の、コンピュータから離れた署名は、更新又は管理行為が行われるときは何時でもモバイルデバイスとリモートサーバとの同期を必要とするために扱いにくい。
【0049】
また、本発明の実施の形態は、上から下へ、言い換えれば、プラットフォームの証明書から第三者のauth−証明書及び第三者のexe−証明書への方式で、証明書の階層を確立する。これにより、1つの証明書への依存を除き、同様に、証明書の発行者を区別する。さらに、本発明の実施の形態は、単一のサインオンのシナリオを実現する。たとえば、プラットフォームオーナは、同じ認証データでOS及びプレOSフェーズの両者でオーナシップを取得する。
【0050】
さらに、セキュリティプロセッサを利用する本発明の実施の形態は、マルウェアを実行することで引き起こされるダメージを回避するため、許可されないコードの実行を禁止する。
【0051】
Itanium(登録商標)プラットフォーム及びMIDは、TXT又はLT−SXを有さないので、本発明の実施の形態は、OSローダを含めて、プレOS実行ファイルを検証するために使用される場合があり、これにより、アタックベクタ(attack vector)としてマルウェアがプレOSを利用することができない。
【0052】
セキュリティプロセッサは、デジタル著作権管理(DRM)、信頼されるブート及びセキュアな記憶のようなMID使用のためのハードウェアに基づいたセキュリティエンジンである。セキュリティプロセッサは、暗号化機能(対称、PKI)、ハッシュ機能及び認証のためのハードウェアの高速化(acceleration)を提供する。セキュリティプロセッサは、DRMライセンス/ライトオブジェクト(RO)(たとえばどの位長く映画を視聴することができるか、歌が再生されるか等)を分析し、コンテンツの復号のための鍵を抽出し、システムメモリに鍵を決して露出しない。また、セキュリティプロセッサは、DRMライセンス/ROファイルからの抽出された鍵を使用してDRMコンテンツを復号する場合がある。
【0053】
本実施の形態で記載された技術は、特定のハードウェア又はソフトウェアコンフィギュレーションに限定されず、これらの技術は、計算、家電製品、又は処理環境における応用を発見する場合がある。これらの技術は、ハードウェア、ソフトウェア、又は2つの組み合わせで実現される場合がある。
【0054】
シミュレーションについて、プログラムコードは、ハードウェア記述言語、又は設計されたハードウェアがどのように実行することが期待されるかに関するモデルを本質的に提供する別の機能記述言語を使用したハードウェアを表す場合がある。プログラムコードは、アセンブリ又はコンピュータ言語、或いは、コンパイル及び/又は解釈されるデータである場合がある。さらに、ソフトウェアについて、ある形式又は別の形式において動作を行うか又は結果を生じさせることは、当該技術分野において一般的である。係る表現は、プロセッサに動作を実行させるか又は結果を生じさせる処理システムにより、プログラムコードの実行を提示する簡単明瞭なやり方である。
【0055】
それぞれのプログラムは、処理システムと通信するため、ハイレベルの手続き又はオブジェクト指向のプログラミング言語で実現される。しかし、プログラムは、望まれる場合、アセンブリ又はコンピュータ言語で実現される。何れのケースにおいて、言語はコンパイル又は解釈される場合がある。
【0056】
プログラム命令は、命令でプログラムされた汎用又は特定用途の処理システムに本実施の形態で記載された動作を実行させるために使用される。代替的に、動作は、動作を実行するハードワイヤドロジックを含む特定のハードウェアコンポーネントによるか、プログラムされたコンピュータコンポーネントとカスタムハードウェアコンポーネントとの組み合わせにより実行される場合がある。本実施の形態で記載される方法は、本方法を実行するために処理システム又は他の電子装置をプログラムするために使用される命令を記憶したコンピュータによりアクセス可能な媒体を含むコンピュータプログラムプロダクトとして提供される場合がある。
【0057】
プログラムコード、又は命令は、たとえば、コンピュータによりアクセス可能な生物学的状態を保持するストレージのような更にエキゾチックな媒体と同様に、固体メモリ、ハードドライブ、フロプティカルディスク、光ストレージ、テープ、フラッシュメモリ、メモリスティック、デジタルビデオディスク、デジタルバーサティルディスク(DVD)等を含むストレージデバイス及び/又は関連されるコンピュータにより読取り可能又はコンピュータによりアクセス可能な媒体のような揮発性及び/又は不揮発性メモリに記憶される場合がある。コンピュータにより読み取り可能な媒体は、コンピュータにより読み取り可能な形式で情報を記憶、送信又は受信するメカニズムを含み、媒体は、電気、光、音又は他の形式のプログラムコードを符号化する伝播信号又は搬送波がアンテナ、光ファイバ、通信インタフェース等を通過する有形の媒体を含む場合がある。プログラムコードは、パケット、シリアルデータ、パラレルデータ、伝播信号等の形式で伝送され、圧縮又は暗号化された形式で使用される場合がある。
【0058】
プログラムコードは、携帯型又は静止型コンピュータ、パーソナルデジタルアシスタント、携帯電話及びページャ、家電製品(DVDプレーヤ、パーソナルビデオレコーダ、パーソナルビデオプレーヤ、サテライトレシーバ、ステレオレシーバ、ケーブルTVレシーバを含む)、プロセッサ、プロセッサにより読み取り可能な揮発性及び/又は不揮発性メモリ、少なくとも1つの入力装置及び/又は1以上の出力装置を含む他の電子装置のようなプログラマブルコンピュータで実行するプログラムで実現される場合がある。プログラムコードは、記載された実施の形態を実行して出力情報を生成するために入力装置を使用して入力されるデータに印加される場合がある。出力情報は、1以上の出力装置に印加される場合がある。当業者であれば、開示された主題の実施の形態は、広汎性又はミニチュアコンピュータ、或いは任意の装置に仮想的に埋め込まれるプロセッサと同様に、マルチプロセッサ又はマルチコアプロセッサシステム、ミニコンピュータを含む様々なコンピュータシステムのコンフィギュレーションで実施することができることを理解されたい。開示された主題の実施の形態は、そのタスク又は部分が通信ネットワークを通してリンクされるリモート処理装置により実行される分散されたコンピュータ環境においても実施することができる。
【0059】
動作は順次的なプロセスとして記載されたが、動作の幾つかは、並列、同時、及び/又は分散された環境で実行される場合があり、プログラムコードは、シングルプロセッサマシン又はマルチプロセッサマシンによるアクセスのためにローカル及び/又はリモートに記憶される。さらに、幾つかの実施の形態では、動作の順序は、開示された主題の精神から逸脱することなしに再配列される場合がある。プログラムコードは、埋め込まれたコントローラにより、又は埋め込まれたコントローラにより使用される場合がある。
【0060】
本発明は例示的な実施の形態を参照して記載されたが、この記載は、限定的な意味で解釈されるべきではないことが意図される。本発明が属する当業者にとって明らかである本発明の他の実施の形態と同様に、例示的な実施の形態の様々な変更は、本発明の精神及び範囲にあるとみなされる。

【特許請求の範囲】
【請求項1】
モバイルプラットフォームでのセキュアなブートのシステムであって、
ホストオペレーティングシステム及びホストアプリケーションを実行するホストプロセッサと、
前記ホストプロセッサをブートするファームウェアであって、ブートの間に1以上の署名鍵を利用するファームウェアと、それぞれの署名鍵は、ブートの間に前記プラットフォームにロードされるソフトウェア画像に関連され、
前記ファームウェア及び他のホストプロセッサのアプリケーションにとってアクセス不可能であるセキュアメモリストアに結合される前記プラットフォームのセキュリティプロセッサであって、前記1以上の署名鍵を管理してブートの間の画像のロードを制御するセキュリティプロセッサと、
を有することを特徴とするシステム。
【請求項2】
前記セキュアメモリストアは、前記セキュリティプロセッサに結合される不揮発性メモリストアに存在する、
請求項1記載のシステム。
【請求項3】
前記セキュリティプロセッサは、デジタル署名を検証するのを支援する暗号化コアに結合されるチップセットに存在する、
請求項1記載のシステム。
【請求項4】
前記プラットフォームのチップセットに結合される公開鍵と、
前記セキュアメモリストアに記憶される証明書データベースとを更に有し、
前記証明書データベースは、複数の証明書を記憶し、それぞれの証明書は、前記ホストプロセッサにより実行可能な複数のソフトウェア画像のうちの1つに対応し、
前記セキュリティプロセッサは、前記証明書データベースにおける対応する証明書、前記ソフトウェア画像に埋め込まれたデジタル署名、前記チップセットに結合される前記公開鍵を使用する検証に基づいて、前記ホストコンピュータにロードされるそれぞれのソフトウェア画像を検証する、
請求項3記載のシステム。
【請求項5】
プラットフォームアドミニストレータによりモバイルプラットフォームのオーナシップを取得する手段と、
前記証明書のデータベースにおける証明書を登録する手段とを更に有し、
前記証明書は、プラットフォームの証明書と第三者の証明書の少なくとも1つを含む、
請求項4記載のシステム。
【請求項6】
前記ソフトウェア画像は、UEFI(Unified Extensible Firmware Interface)アーキテクチャと互換性がある、
請求項4記載のシステム。
【請求項7】
前記ファームウェアは、前記ソフトウェア画像の関連する署名が検証に失敗した場合、前記ソフトウェア画像をロード又は起動しない、
請求項1記載のシステム。
【請求項8】
検証の失敗は、期限切れの証明書、紛失した証明書、又は取り消された証明書の少なくとも1つの結果である、
請求項7記載のシステム。
【請求項9】
署名鍵は、プラットフォーム鍵、プロテクトされた可変鍵又は公開鍵の少なくとも1つを含む、
請求項1記載のシステム。
【請求項10】
前記1以上の署名鍵は、上位の鍵が下位の鍵をプロテクトする署名鍵の階層を含む、
請求項9記載のシステム。
【請求項11】
前記プラットフォーム鍵は、公開鍵よりも上位であるプロテクトされた可変鍵よりも上位にあり、
公開鍵は、ブートの間にロードされるそれぞれのソフトウェア画像に関連される、
請求項10記載のシステム。
【請求項12】
当該システムは、遠隔のプラットフォームのアドミニストレータが前記セキュリティプロセッサに結合される証明書のデータベースを更新するのを可能にする無線通信機能を有する、
請求項1記載のシステム。
【請求項13】
モバイルプラットフォームでのセキュアなブート方法であって、
前記プラットフォームでホストプロセッサのセキュアなブートを始動するステップと、
ブートモジュールがデジタル署名され、前記ホストプロセッサにロードされることが許可されるかを前記プラットフォームのセキュリティプロセッサにより判定するステップと、
前記ブートモジュールがデジタル署名及び許可されたとき、前記ブートモジュールを前記ホストプロセッサにロードして実行し、前記ブートモジュールが前記ホストプロセッサにロードされることが許可された後に複数のソフトウェア画像がロードされるかを前記セキュリティプロセッサにより判定するステップと、前記複数のソフトウェア画像のうちの1つが許可されたとき、実行のために前記ホストプロセッサに前記複数のソフトウェア画像のうちの1つをロードするステップと、
前記デジタル署名されたブートモジュールが許可されない場合、プラットフォームのアドミニストレータにより前記ブート画像を許可するステップと前記プラットフォームをブートするのを失敗するステップの少なくとも1つを実行するステップと、前記複数のソフトウェア画像の1つが許可されないとき、前記複数のソフトウェア画像のうちの1つを前記ホストプロセッサにロードするのを失敗するステップと、
を含むことを特徴とする方法。
【請求項14】
前記セキュリティプロセッサは、無線通信機能を有し、
当該方法は、前記セキュリティプロセッサにより、前記セキュリティプロセッサにとってアクセス可能な不揮発性メモリに記憶される証明書のデータベースにおける証明書を管理するステップを更に含み、
前記不揮発性メモリは、前記証明書に関する情報を有するリモートアドミニストレータとの無線通信を介して、前記ホストプロセッサにとってアクセス不可能である、
請求項13記載の方法。
【請求項15】
ブートモジュールがデジタル署名され、前記ホストプロセッサにロードされることが許可されるかを判定する前記ステップは、
前記ブートモジュールが前記証明書のデータベースにおける画像の証明書を有するかを判定するステップと、
前記ブートモジュールの画像の証明書が前記証明書のデータベースにおける画像の証明書に基づいて検証されたかを判定するステップと、
を更に含む請求項13記載の方法。
【請求項16】
前記ブートモジュールが前記ホストプロセッサにロードされることが許可された後に複数のソフトウェア画像がロードされるかを前記セキュリティプロセッサにより判定する前記ステップは、
前記ソフトウェア画像のそれぞれが前記証明書のデータベースにおける対応する画像の証明書を有するかを判定するステップと、
前記ソフトウェア画像の証明書のそれぞれが前記証明書のデータベースにおける画像の証明書に基づいて検証されたかを判定するステップと、
を含む請求項15記載の方法。
【請求項17】
前記セキュリティプロセッサと同じチップセットに存在する暗号化コアにより前記ブートモジュール及びソフトウェア画像におけるデジタル署名を検証するステップを更に含む、
請求項13記載の方法。
【請求項18】
モバイルプラットフォームでのセキュアなブートを利用するため、コンピュータがアクセス可能な記憶媒体に記憶された命令を含むコンピュータがアクセス可能な記憶媒体であって、
前記命令は、前記プラットフォームで実行されたとき、前記プラットフォームに、
前記プラットフォームでホストプロセッサのセキュアなブートを始動するステップと、
ブートモジュールがデジタル署名され、前記ホストプロセッサにロードされることが許可されるかを前記プラットフォームのセキュリティプロセッサにより判定するステップと、
前記ブートモジュールがデジタル署名及び許可されたとき、前記ブートモジュールを前記ホストプロセッサにロードして実行し、前記ブートモジュールが前記ホストプロセッサにロードされることが許可された後に複数のソフトウェア画像がロードされるかを前記セキュリティプロセッサにより判定するステップと、前記複数のソフトウェア画像のうちの1つが許可されたとき、実行のために前記ホストプロセッサに前記複数のソフトウェア画像のうちの1つをロードするステップと、
前記デジタル署名されたブートモジュールが許可されない場合、プラットフォームのアドミニストレータにより前記ブート画像を許可するステップと前記プラットフォームをブートするのを失敗するステップの少なくとも1つを実行するステップと、前記複数のソフトウェア画像の1つが許可されないとき、前記複数のソフトウェア画像のうちの1つを前記ホストプロセッサにロードするのを失敗するステップと、
を実行させることを特徴とする記録媒体。
【請求項19】
前記セキュリティプロセッサは、無線通信機能を有し、
当該記録媒体は、前記プラットフォームに、
前記セキュリティプロセッサにより、前記セキュリティプロセッサにとってアクセス可能な不揮発性メモリに記憶される証明書のデータベースにおける証明書を管理するステップを実行させる命令を更に含み、
前記不揮発性メモリは、前記証明書に関する情報を有するリモートアドミニストレータとの無線通信を介して、前記ホストプロセッサにとってアクセス不可能である、
請求項18記載の記録媒体。
【請求項20】
ブートモジュールがデジタル署名され、前記ホストプロセッサにロードされることが許可されるかを判定する前記ステップを実行させる前記命令は、
前記ブートモジュールが前記証明書のデータベースにおける画像の証明書を有するかを判定するステップと、
前記ブートモジュールの画像の証明書が前記証明書のデータベースにおける画像の証明書に基づいて検証されたかを判定するステップと、
を実行させる命令を更に含む請求項18記載の記録媒体。
【請求項21】
前記ブートモジュールが前記ホストプロセッサにロードされることが許可された後に複数のソフトウェア画像がロードされるかを前記セキュリティプロセッサにより判定する前記ステップを実行させる前記命令は、
前記ソフトウェア画像のそれぞれが前記証明書のデータベースにおける対応する画像の証明書を有するかを判定するステップと、
前記ソフトウェア画像の証明書のそれぞれが前記証明書のデータベースにおける画像の証明書に基づいて検証されたかを判定するステップと、
を実行させる命令を更に含む請求項20記載の記録媒体。
【請求項22】
前記セキュリティプロセッサと同じチップセットに存在する暗号化コアにより前記ブートモジュール及びソフトウェア画像におけるデジタル署名を検証するステップを実行させる命令を更に含む、
請求項18記載の記録媒体。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2010−73193(P2010−73193A)
【公開日】平成22年4月2日(2010.4.2)
【国際特許分類】
【外国語出願】
【出願番号】特願2009−152986(P2009−152986)
【出願日】平成21年6月26日(2009.6.26)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.Linux
【出願人】(593096712)インテル コーポレイション (931)
【Fターム(参考)】