IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 富士通株式会社の特許一覧

<>
  • 特開-情報処理装置および情報処理方法 図1
  • 特開-情報処理装置および情報処理方法 図2
  • 特開-情報処理装置および情報処理方法 図3
  • 特開-情報処理装置および情報処理方法 図4
  • 特開-情報処理装置および情報処理方法 図5
  • 特開-情報処理装置および情報処理方法 図6
  • 特開-情報処理装置および情報処理方法 図7
  • 特開-情報処理装置および情報処理方法 図8
  • 特開-情報処理装置および情報処理方法 図9
  • 特開-情報処理装置および情報処理方法 図10
  • 特開-情報処理装置および情報処理方法 図11
  • 特開-情報処理装置および情報処理方法 図12
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024068593
(43)【公開日】2024-05-20
(54)【発明の名称】情報処理装置および情報処理方法
(51)【国際特許分類】
   H04L 9/32 20060101AFI20240513BHJP
   H04L 9/08 20060101ALI20240513BHJP
   G06F 21/57 20130101ALI20240513BHJP
   G06F 21/64 20130101ALI20240513BHJP
【FI】
H04L9/32 200B
H04L9/08 A
G06F21/57 320
G06F21/64
【審査請求】未請求
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2022179171
(22)【出願日】2022-11-08
(71)【出願人】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】100104190
【弁理士】
【氏名又は名称】酒井 昭徳
(72)【発明者】
【氏名】山▲嵜▼ 晃
(57)【要約】
【課題】セキュリティを確保しつつ、対象データの書き換えを可能にすること。
【解決手段】情報処理装置101は、可変領域112に対象データ120を格納するにあたり、対象データ120の書き込みを許可された者固有の第1秘密鍵K1-2で署名された対象データ120を取得する。情報処理装置101は、固定領域111に格納された第2公開鍵K2-1を用いて、公開鍵証明書130を検証する。公開鍵証明書130は、第2秘密鍵K2-2で署名された情報であり、第1公開鍵K1-1を含む。第2公開鍵K2-1は、情報処理装置101と同一機種の装置間で共通の鍵情報である。情報処理装置101は、公開鍵証明書130の検証に成功した場合、公開鍵証明書130に含まれる第1公開鍵K1-1を用いて、対象データ120を検証する。情報処理装置101は、対象データ120の検証に成功した場合、可変領域112に対象データ120を書き込む。
【選択図】図1
【特許請求の範囲】
【請求項1】
自装置の起動時に実行されるファームウェアが管理する不揮発性記憶領域と、
前記不揮発性記憶領域のうち書き換え可能な可変領域に対象データを格納するにあたり、当該対象データの書き込みを許可された者固有の第1秘密鍵を用いて署名された前記対象データを取得し、自装置と同一機種の装置間で共通の第2秘密鍵を用いて署名された、前記第1秘密鍵に対応する第1公開鍵を含む公開鍵証明書を取得し、前記不揮発性記憶領域のうち書き換えが制限される固定領域に格納された、前記第2秘密鍵に対応する第2公開鍵を用いて、前記公開鍵証明書を検証し、前記公開鍵証明書の検証に成功した場合、前記公開鍵証明書に含まれる前記第1公開鍵を用いて、前記対象データを検証し、前記対象データの検証に成功した場合、前記可変領域に前記対象データを書き込む制御部と、
を有することを特徴とする情報処理装置。
【請求項2】
前記制御部は、
前記対象データの検証に成功した場合、前記可変領域に前記公開鍵証明書を書き込む、ことを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記制御部は、
前記可変領域に格納された前記対象データを使用するにあたり、前記可変領域から前記公開鍵証明書を取得し、前記固定領域に格納された前記第2公開鍵を用いて、取得した前記公開鍵証明書を検証し、前記公開鍵証明書の検証に成功した場合、前記公開鍵証明書に含まれる前記第1公開鍵を用いて、前記可変領域に格納された前記対象データを検証し、前記対象データの検証に成功した場合、前記対象データの使用を許可する、
ことを特徴とする請求項2に記載の情報処理装置。
【請求項4】
前記ファームウェアは、BIOS(Basic Input/Output System)である、ことを特徴とする請求項1~3のいずれか一つに記載の情報処理装置。
【請求項5】
前記対象データは、前記BIOSの画面を表示するための外観情報である、ことを特徴とする請求項4に記載の情報処理装置。
【請求項6】
前記第2公開鍵および前記第2秘密鍵は、前記BIOSのセキュアブート機能に用いられる、自装置と同一機種の装置間で共通の公開鍵および秘密鍵である、ことを特徴とする請求項4に記載の情報処理装置。
【請求項7】
前記対象データの書き込みを許可された者は、自装置の製造委託元である、ことを特徴とする請求項1~3のいずれか一つに記載の情報処理装置。
【請求項8】
自装置の起動時に実行されるファームウェアが管理する不揮発性記憶領域のうち書き換え可能な可変領域に対象データを格納するにあたり、当該対象データの書き込みを許可された者固有の第1秘密鍵を用いて署名された前記対象データを取得し、
自装置と同一機種の装置間で共通の第2秘密鍵を用いて署名された、前記第1秘密鍵に対応する第1公開鍵を含む公開鍵証明書を取得し、
前記不揮発性記憶領域のうち書き換えが制限される固定領域に格納された、前記第2秘密鍵に対応する第2公開鍵を用いて、前記公開鍵証明書を検証し、
前記公開鍵証明書の検証に成功した場合、前記公開鍵証明書に含まれる前記第1公開鍵を用いて、前記対象データを検証し、
前記対象データの検証に成功した場合、前記可変領域に前記対象データを書き込む、
処理をコンピュータが実行することを特徴とする情報処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置および情報処理方法に関する。
【背景技術】
【0002】
従来、BIOS(Basic Input/Output System)が管理する不揮発性領域には、書き換えが制限される固定領域と、許可なく書き換え可能な可変領域とがある。BIOSのロゴやメニューなどを表示するための外観情報は、通常固定領域に格納される。このため、外観情報をカスタマイズする場合には、固定領域に格納された外観情報の書き換えが行われていた。
【0003】
先行技術としては、例えば、BIOSのコードを記憶するコード領域と、可変設定領域と、構成要素の設定情報を記憶する固定設定領域とを有し、製造初期状態において、メイン基板に実装可能な構成要素の設定情報を可変設定領域に記憶するものがある。また、BIOSメモリのソース画像ファイルを更新するための技術がある。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2022-75183号公報
【特許文献2】特開2009-59343号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、従来技術では、BIOSの固定領域に格納されていた外観情報などのデータを、セキュリティを確保しつつ、所望のデータに書き換え可能にすることが難しい。
【0006】
一つの側面では、本発明は、セキュリティを確保しつつ、対象データの書き換えを可能にすることを目的とする。
【課題を解決するための手段】
【0007】
1つの実施態様では、自装置の起動時に実行されるファームウェアが管理する不揮発性記憶領域を有し、前記不揮発性記憶領域のうち書き換え可能な可変領域に対象データを格納するにあたり、当該対象データの書き込みを許可された者固有の第1秘密鍵を用いて署名された前記対象データを取得し、自装置と同一機種の装置間で共通の第2秘密鍵を用いて署名された、前記第1秘密鍵に対応する第1公開鍵を含む公開鍵証明書を取得し、前記不揮発性記憶領域のうち書き換えが制限される固定領域に格納された、前記第2秘密鍵に対応する第2公開鍵を用いて、前記公開鍵証明書を検証し、前記公開鍵証明書の検証に成功した場合、前記公開鍵証明書に含まれる前記第1公開鍵を用いて、前記対象データを検証し、前記対象データの検証に成功した場合、前記可変領域に前記対象データを書き込む、情報処理装置が提供される。
【発明の効果】
【0008】
本発明の一側面によれば、セキュリティを確保しつつ、対象データの書き換えを可能にすることができるという効果を奏する。
【図面の簡単な説明】
【0009】
図1図1は、実施の形態にかかる情報処理方法の一実施例を示す説明図である。
図2図2は、情報処理システム200のシステム構成例を示す説明図である。
図3図3は、対象装置Miのハードウェア構成例を示すブロック図である。
図4図4は、対象装置Mi内部のシステム構成例を示す説明図である。
図5図5は、外観情報AdおよびOEM公開鍵証明書Cdの生成時の動作例を示す説明図である。
図6図6は、対象装置Miの機能的構成例を示すブロック図である。
図7図7は、外観情報Adの更新時の第1の動作例を示す説明図である。
図8図8は、外観情報Adの更新時の第2の動作例を示す説明図である。
図9図9は、外観情報Adの使用時の動作例を示す説明図である。
図10図10は、BIOSアップデート時の状態を示す説明図である。
図11図11は、対象装置Miの外観情報更新時の検証処理手順の一例を示すフローチャートである。
図12図12は、対象装置Miの外観情報使用時の検証処理手順の一例を示すフローチャートである。
【発明を実施するための形態】
【0010】
以下に図面を参照して、本発明にかかる情報処理装置および情報処理方法の実施の形態を詳細に説明する。
【0011】
(実施の形態)
図1は、実施の形態にかかる情報処理方法の一実施例を示す説明図である。図1において、情報処理装置101は、対象データ120の書き込みを制御するコンピュータである。対象データ120は、情報処理装置101の起動時に実行されるファームウェアが使用する情報である。情報処理装置101は、例えば、サーバやPC(Personal Computer)などのコンピュータシステムである。
【0012】
サーバなどのコンピュータシステムには、BIOSが管理する不揮発性記憶領域が存在する。不揮発性記憶領域は、固定領域と可変領域とのデータ領域に分かれている。固定領域は、改ざん防止のため署名されており、出荷後の書き換えが制限される(BIOSアップデートを除く)。可変領域は、署名されておらず、エンドユーザが自由に書き換え可能である。
【0013】
例えば、固定領域は、BIOSを作成する際に署名され、コンピュータシステムの起動時に、BIOS自身が固定領域の書き換えが行われていないかを毎回検証することで、意図しない書き換えを防ぐことができる。一方、可変領域は、エンドユーザが自由に書き換え可能な領域となっており、意図しない書き換えを防ぐことはできない。
【0014】
ただし、可変領域には、セキュアブート(Secure Boot)機能に関する設定を格納することができる。セキュアブート機能とは、UEFI(Unified Extensible Firmware Interface)仕様に準拠したBIOSの一機能であり、コンピュータ起動時の安全性を確保するためのものである。
【0015】
セキュアブート機能を有効にすると、セキュアブート機能に関する設定は意図しない書き換えを防ぐことができる。セキュアブート機能では、固定領域に格納されるPK(Platform Key)と、可変領域に格納されるKEK(Key Exchange Key)、db(Secure Boot Signature Store)を用いて、意図しない書き換えが行われていないかを検証する。
【0016】
例えば、既存のコンピュータシステムでは、セキュアブート機能により、PCI(Peripheral Component Interconnect) Expressカードに含まれるモジュールやOS(Operating System)起動前にブートローダが意図せず書き換えられていないかを検証することができる。
【0017】
ここで、BIOSは、コンピュータシステムの起動中に、企業や製品のロゴマークを表示したり、予め設定された配色でメニュー画面を表示したりする。ロゴマークや配色を含む外観の情報は、意図せずに書き換えられることを防ぐために、一般的にはBIOSが管理する不揮発領域のうち、固定領域に格納される。
【0018】
一方、コンピュータシステムをOEM(Original Equipment Manufacturing)委託企業の製品として出荷する場合がある。この場合、外観の情報を、企業や製品ごとに変更したいという要望が多い。従来、固定領域に外観の情報が含まれており、固定領域の署名はBIOSを作成するときに実施される。
【0019】
このため、外観の情報をOEM委託企業ごとに変更する場合、OEM委託企業の数だけBIOSを個別に作成することになる。また、別のBIOSとなることから、例えば、OEM委託企業の数だけ再評価が必要となり、個別に作成したBIOSの数に比例して手番が増加する。
【0020】
さらに、BIOSのアップデート時は、アップデートファイルが分かれるため、カスタマイズを希望するOEM委託企業が増加すると、アップデートファイルの管理や評価が煩雑となる。また、個別にアップデートファイルの評価を行うため、毎回の共通BIOSの公開と連動してアップデートファイルを個別提供することが難しく、機能追加、障害修正にタイムラグが生じる。
【0021】
また、外観の情報を、固定領域ではなく可変領域に格納することが考えられる。ここで、外観の情報は、コンピュータシステムを製造するOEM受託企業と、外観を変更して自社製品として販売するOEM委託企業の2者のみが変更可能にすることが求められる。しかし、可変領域はOEM受託企業やOEM委託企業だけでなく、エンドユーザが自由に変更可能なため、要件を満たすことができない。
【0022】
また、外観の情報に署名を付与し、その署名を検証するための公開鍵証明書を、セキュアブート機能有効時にOSのブートローダなどを検証する公開鍵証明書の一群に追加することで、可変領域に格納する外観の情報を検証可能にすることが考えられる。しかし、外観の情報のカスタマイズに使用するKEKやdbを生成するための鍵が漏れた場合、不正な外部モジュールやOSのブートローダが実行可能となるリスクがある。また、セキュアブート機能は無効化できるため、無効化設定時に任意の第三者が外観の情報を変更可能となるという問題がある。
【0023】
そこで、本実施の形態では、セキュリティを確保しつつ、対象データ120の書き換えを可能にする情報処理方法について説明する。
【0024】
まず、情報処理装置101が有する不揮発性記憶領域110について説明する。不揮発性記憶領域110は、情報処理装置101の起動時に実行されるファームウェアがアクセス可能な記憶領域である。ファームウェアは、例えば、BIOSである。
【0025】
不揮発性記憶領域110は、固定領域111と可変領域112とを含む。固定領域111は、書き換えが制限される記憶領域である。固定領域111は、例えば、BIOSのアップデートを除いて、出荷後の書き換えが制限される。可変領域112は、書き換え可能な記憶領域である。
【0026】
つぎに、対象データ120の検証に用いられる鍵情報について説明する。対象データ120は、例えば、BIOSの画面を表示するための外観情報である。外観情報をカスタマイズすることで、例えば、BIOSの起動時に表示されるロゴマークや、BIOSのメニュー画面の配色などを変更することができる。また、対象データ120は、例えば、OSの設定値を変更するための情報であってもよい。
【0027】
ここで、第1公開鍵K1-1および第1秘密鍵K1-2は、対象データ120の書き込みを許可された者固有の鍵情報である。例えば、情報処理装置101をOEMで製造される製品とする。この場合、対象データ120の書き込みを許可された者は、例えば、情報処理装置101の製造委託元(OEMベンダーなど)である。
【0028】
第2公開鍵K2-1および第2秘密鍵K2-2は、情報処理装置101と同一機種の装置間で共通の鍵情報である。第2公開鍵K2-1は、固定領域111に格納されている。第2秘密鍵K2-2は、固定領域111の書き換え権限を有する者によって管理される。固定領域111の書き換え権限を有する者は、例えば、情報処理装置101の製造委託先(OEM受託企業など)である。
【0029】
以下、不揮発性記憶領域110の可変領域112に対象データ120を格納する際の情報処理装置101の処理例について説明する。
【0030】
(1)情報処理装置101は、可変領域112に対象データ120を格納するにあたり、第1秘密鍵K1-2を用いて署名された対象データ120を取得する。第1秘密鍵K1-2は、例えば、情報処理装置101の製造委託元固有の鍵情報である。
【0031】
(2)情報処理装置101は、第2秘密鍵K2-2を用いて署名された公開鍵証明書130を取得する。ここで、公開鍵証明書130は、第2秘密鍵K2-2を用いて署名された証明書情報であり、第1公開鍵K1-1を含む。公開鍵証明書130は、例えば、情報処理装置101の製造委託元からの要求に応じて、製造委託先によって生成される。
【0032】
(3)情報処理装置101は、不揮発性記憶領域110のうち固定領域111に格納された第2公開鍵K2-1を用いて、公開鍵証明書130を検証する。第2公開鍵K2-1は、情報処理装置101と同一機種の装置間で共通の鍵情報であり、例えば、BIOSのセキュアブート機能に用いられる鍵情報(PK公開鍵)である。
【0033】
ここで、公開鍵証明書130には、例えば、第1公開鍵K1-1のハッシュ値を第2秘密鍵K2-2で暗号化されたデータ(署名)が含まれる。まず、情報処理装置101は、固定領域111に格納された第2公開鍵K2-1を用いて、公開鍵証明書130に含まれる暗号化されたデータ(署名)を復号する。
【0034】
つぎに、情報処理装置101は、復号したデータと、公開鍵証明書130に含まれる第1公開鍵K1-1のハッシュ値とを比較する。ここで、復号したデータとハッシュ値とが一致する場合、情報処理装置101は、公開鍵証明書130の検証に成功したと判断する。
【0035】
一方、復号したデータとハッシュ値とが一致しない場合、情報処理装置101は、公開鍵証明書130の検証に失敗したと判断する。公開鍵証明書130の検証に成功した場合、公開鍵証明書130に含まれる第1公開鍵K1-1が、対象データ120の書き込みを許可された者固有の鍵情報であるといえる。
【0036】
(4)情報処理装置101は、公開鍵証明書130の検証に成功した場合、公開鍵証明書130に含まれる第1公開鍵K1-1を用いて、対象データ120を検証する。具体的には、例えば、情報処理装置101は、第1公開鍵K1-1を用いて、対象データ120に付与された署名(暗号化されたデータ)を復号する。
【0037】
つぎに、情報処理装置101は、復号したデータと、対象データ120のハッシュ値とを比較する。ここで、復号したデータとハッシュ値とが一致する場合、情報処理装置101は、対象データ120の検証に成功したと判断する。一方、復号したデータとハッシュ値とが一致しない場合、情報処理装置101は、対象データ120の検証に失敗したと判断する。
【0038】
対象データ120の検証に成功した場合、対象データ120が、対象データ120の書き込みを許可された者によって生成(カスタマイズ)された情報であるといえる。
【0039】
(5)情報処理装置101は、対象データ120の検証に成功した場合、可変領域112に対象データ120を書き込む。一方、情報処理装置101は、対象データ120の検証に失敗した場合、可変領域112への対象データ120の書き込みを許可しない。
【0040】
このように、情報処理装置101によれば、セキュリティを確保しつつ、対象データ120の書き換えを可能にすることができる。例えば、対象データ120をBIOSの外観情報とすると、製造委託元が、出荷後にBIOSの外観を変更することができる。また、対象データ120をBIOSの設定情報とすると、製造委託元が、出荷後にOSの設定値を変更することができる。
【0041】
(情報処理システム200のシステム構成例)
つぎに、図1に示した情報処理装置101を含む情報処理システム200のシステム構成例について説明する。
【0042】
以下の説明では、図1に示した情報処理装置101を、情報処理システム200内の対象装置M1~Mnに適用した場合を例に挙げて説明する。また、対象装置M1~Mnの起動時に実行されるファームウェアを「BIOS」とし、対象データとして「BIOSの外観情報」を例に挙げて説明する。
【0043】
図2は、情報処理システム200のシステム構成例を示す説明図である。図2において、情報処理システム200は、対象装置M1~Mn(n:2以上の自然数)と、受託側端末201と、委託側端末202と、を含む。情報処理システム200において、対象装置M1~Mn、受託側端末201および委託側端末202は、有線または無線のネットワーク210を介して接続される。ネットワーク210は、例えば、インターネット、LAN(Local Area Network)、WAN(Wide Area Network)などである。
【0044】
ここで、対象装置M1~Mnは、同一機種の装置であり、OEMで製造される製品(コンピュータシステム)の一例である。対象装置M1~Mnは、例えば、UEFI仕様に準拠したBIOSを有する。BIOSの外観情報は、OEM委託企業によってカスタマイズ可能である。
【0045】
以下の説明では、対象装置M1~Mnのうちの任意の対象装置を「対象装置Mi」と表記する場合がある(i=1,2,…,n)。
【0046】
受託側端末201は、OEM受託企業のユーザが使用するコンピュータである。OEM受託企業は、対象装置M1~Mnの製造委託先となる企業である。受託側端末201は、例えば、PC、タブレット端末、スマートフォンなどである。
【0047】
委託側端末202は、OEM委託企業のユーザが使用するコンピュータである。OEM委託企業は、対象装置M1~Mnの製造委託元となる企業(OEMベンダ)である。委託側端末202は、例えば、PC、タブレット端末、スマートフォンなどである。
【0048】
なお、ここでは受託側端末201と委託側端末202をそれぞれ1台のみ表示したが、これに限らない。例えば、情報処理システム200には、複数の受託側端末201や委託側端末202が含まれてもよい。
【0049】
(対象装置Miのハードウェア構成例)
つぎに、対象装置Miのハードウェア構成例について説明する。
【0050】
図3は、対象装置Miのハードウェア構成例を示すブロック図である。図3において、対象装置Miは、CPU(Central Processing Unit)301と、メモリ302と、ディスクドライブ303と、ディスク304と、通信I/F(Interface)305と、可搬型記録媒体I/F306と、可搬型記録媒体307と、を有する。また、各構成部は、バス300によってそれぞれ接続される。
【0051】
ここで、CPU301は、対象装置Miの全体の制御を司る。CPU301は、複数のコアを有していてもよい。メモリ302は、例えば、ROM(Read Only Memory)、RAM(Random Access Memory)およびフラッシュROMなどを有する。具体的には、例えば、フラッシュROMがOSのプログラムを記憶し、ROMがアプリケーションプログラムを記憶し、RAMがCPU301のワークエリアとして使用される。メモリ302に記憶されるプログラムは、CPU301にロードされることで、コーディングされている処理をCPU301に実行させる。
【0052】
ディスクドライブ303は、CPU301の制御に従ってディスク304に対するデータのリード/ライトを制御する。ディスク304は、ディスクドライブ303の制御で書き込まれたデータを記憶する。ディスク304は、例えば、磁気ディスク、光ディスクなどである。
【0053】
通信I/F305は、通信回線を通じてネットワーク210に接続され、ネットワーク210を介して外部のコンピュータ(例えば、図2に示した受託側端末201や委託側端末202など)に接続される。そして、通信I/F305は、ネットワーク210と装置内部とのインターフェースを司り、外部のコンピュータからのデータの入出力を制御する。
【0054】
可搬型記録媒体I/F306は、CPU301の制御に従って可搬型記録媒体307に対するデータのリード/ライトを制御する。可搬型記録媒体307は、可搬型記録媒体I/F306の制御で書き込まれたデータを記憶する。可搬型記録媒体307は、例えば、CD(Compact Disc)-ROM、DVD(Digital Versatile Disk)、USB(Universal Serial Bus)メモリなどである。
【0055】
なお、対象装置Miは、上述した構成部のほかに、例えば、入力装置、ディスプレイなどを有してもよい。また、対象装置Miは、上述した構成部のうち、例えば、可搬型記録媒体I/F306、可搬型記録媒体307を有さなくてもよい。また、図2に示した受託側端末201、委託側端末202についても、対象装置Miと同様のハードウェア構成により実現することができる。ただし、受託側端末201、委託側端末202は、上述した構成部のほかに、例えば、入力装置、ディスプレイなどを有する。
【0056】
(対象装置Mi内部のシステム構成例)
つぎに、対象装置Mi内部のシステム構成例について説明する。
【0057】
図4は、対象装置Mi内部のシステム構成例を示す説明図である。図4において、対象装置Miは、SPI(Serial Peripheral Interface)フラッシュ410と、メインメモリ420と、PCI Expressカード430と、ストレージ440とを含む。SPIフラッシュ410およびメインメモリ420は、例えば、図3に示したメモリ302に対応する。PCI Expressカード430は、例えば、図3に示した通信I/F305に対応する。ストレージ440は、例えば、図3に示したディスク304に対応する。
【0058】
SPIフラッシュ410は、BIOSが管理する不揮発性記憶領域であり、固定領域411と可変領域412とを含む。BIOSは、UEFI仕様に準拠したBIOSである。固定領域411は、出荷後の書き換えが制限されるデータ領域である(BIOSアップデートを除く)。固定領域411には、モジュール群414が格納される。
【0059】
モジュール群414は、BIOSについてのモジュールの集合体であり、例えば、外観表示モジュール421、SecureBoot検証モジュール422、Variable管理モジュール423、外観情報検証・更新モジュール424などを含む。外観表示モジュール421は、BIOSの外観情報Ad(例えば、ロゴマークやメニュー画面など)を表示するためのモジュールである。
【0060】
SecureBoot検証モジュール422は、セキュアブート機能により、PCI Expressカード管理モジュール431やOSブートローダ441などを検証するためのモジュールである。PCI Expressカード管理モジュール431は、PCI Expressカード430に含まれるモジュールである。また、OSブートローダ441は、OSを起動するためのソフトウェアである。
【0061】
Variable管理モジュール423は、可変領域412にアクセスするためのモジュールである。外観情報検証・更新モジュール424は、BIOSの外観情報を検証したり更新したりするためのモジュールである。モジュール群414(例えば、外観表示モジュール421、SecureBoot検証モジュール422、Variable管理モジュール423、外観情報検証・更新モジュール424)は、メインメモリ420に読み出されて実行される。
【0062】
また、固定領域411には、PK公開鍵k11が格納される。PK公開鍵k11は、BIOSのセキュアブート機能に用いられる鍵情報であり、対象装置Miと同一機種の装置間(例えば、対象装置M1~Mn)で共通の公開鍵である。PK公開鍵k11は、例えば、図1に示した第2公開鍵K2-1に対応する。
【0063】
可変領域412は、書き換え可能なデータ領域である。可変領域412には、例えば、OEM公開鍵証明書Cdが格納される。OEM公開鍵証明書Cdは、OEM公開鍵k21の真正性を検証するための証明情報である。OEM公開鍵証明書Cdは、OEM公開鍵k21と暗号化データe1とを含む。OEM公開鍵k21は、OEM委託企業(対象装置Miの製造委託元)固有の鍵情報である。
【0064】
暗号化データe1は、OEM公開鍵k21のハッシュ値をPK秘密鍵k12(例えば、後述する図6参照)で暗号化したデータ(署名)である。OEM公開鍵証明書Cdは、例えば、図1に示した公開鍵証明書130に対応する。OEM公開鍵k21は、例えば、図1に示した第1公開鍵K1-1に対応する。PK秘密鍵k12は、例えば、図1に示した第2秘密鍵K2-2に対応する。
【0065】
また、可変領域412には、外観情報領域413が設けられる。外観情報領域413は、外観情報Adを格納するための特定のデータ領域である。外観情報Adは、BIOSのロゴマークやメニュー画面などを表示するための情報である。外観情報Adは、例えば、OEM委託企業ごとにカスタマイズされる。外観情報Adには、署名Sが付与される。
【0066】
なお、図示は省略するが、可変領域412には、例えば、セキュアブート機能に用いられるKEKやdbなどが格納される。
【0067】
(外観情報AdおよびOEM公開鍵証明書Cdの生成時の動作例)
つぎに、情報処理システム200における外観情報AdおよびOEM公開鍵証明書Cdの生成時の動作例について説明する。外観情報AdおよびOEM公開鍵証明書Cdの生成は、例えば、BIOSのロゴマークやメニュー画面などをOEM委託企業ごとにカスタマイズする際に行われる。
【0068】
図5は、外観情報AdおよびOEM公開鍵証明書Cdの生成時の動作例を示す説明図である。図5において、OEM受託企業P1は、対象装置Miの製造委託先となる企業を示す。OEM委託企業P2は、対象装置Miの製造委託元となる企業(OEMベンダ)を示す。ここでは、OEM受託企業P1によって製造された対象装置MiのBIOSの外観情報AdをOEM委託企業P2がカスタマイズする場合を想定する。
【0069】
この場合、まず、OEM委託企業P2は、外観情報Adの更新(カスタマイズ)に使用するOEM公開鍵k21とOEM秘密鍵k22とのペアを生成する。つぎに、OEM委託企業P2は、生成したOEM公開鍵k21をOEM受託企業P1に渡す。
【0070】
OEM受託企業P1は、OEM委託企業P2からOEM公開鍵k21を受け取ると、OEM公開鍵k21をPK秘密鍵k12で署名することにより、OEM公開鍵証明書Cdを生成する。具体的には、例えば、OEM受託企業P1は、所定のハッシュ関数からOEM公開鍵k21のハッシュ値を算出し、算出したハッシュ値をPK秘密鍵k12で暗号化することにより、暗号化データe1(図4参照)を生成する。そして、OEM受託企業P1は、受け取ったOEM公開鍵k21と、生成した暗号化データe1とを含むOEM公開鍵証明書Cdを生成する。
【0071】
OEM受託企業P1は、生成したOEM公開鍵証明書CdをOEM委託企業P2に渡す。また、OEM受託企業P1は、対象装置Miの製造時に、BIOSの固定領域411(図4参照)にPK公開鍵k11を格納する。PK公開鍵k11とPK秘密鍵k12は、BIOSのセキュアブート機能に用いられる鍵情報である。
【0072】
OEM委託企業P2は、対象装置MiのBIOSの外観情報Adを作成する。具体的には、例えば、OEM委託企業P2は、OEM受託企業P1から提供されるカスタマイズツールを用いて、BIOS起動時のロゴマークやBIOSのメニュー画面の配色などを指定することにより、外観情報Adを作成する。
【0073】
つぎに、OEM委託企業P2は、作成した外観情報AdをOEM秘密鍵k22で署名する。OEM秘密鍵k22は、例えば、図1に示した第1秘密鍵K1-2に対応する。具体的には、例えば、OEM委託企業P2は、所定のハッシュ関数から外観情報Adのハッシュ値を算出し、算出したハッシュ値をOEM秘密鍵k22で暗号化したデータ(署名S)を外観情報Adに付与する。
【0074】
これにより、OEM委託企業P2は、外観情報Ad(署名S付き)およびOEM公開鍵証明書Cdを生成することができる。生成された外観情報AdおよびOEM公開鍵証明書Cdは、対象装置Miにおいて、真正性が検証された上で書き込まれる。なお、OEM受託企業P1とOEM委託企業P2との各種情報のやり取りは、セキュリティが確保された手段を用いて行われる。また、図2に示した対象装置M1~MnをOEM委託企業P2のOEM製品として出荷する場合、外観情報Adは、例えば、対象装置M1~Mnで共通の外観情報となる。
【0075】
(対象装置Miの機能的構成例)
つぎに、対象装置Miの機能的構成例について説明する。
【0076】
図6は、対象装置Miの機能的構成例を示すブロック図である。図6において、対象装置Miは、受付部601と、取得部602と、第1の検証部603と、第2の検証部604と、書込制御部605と、を含む。受付部601~書込制御部605は制御部600となる機能であり、具体的には、例えば、図3に示したメモリ302、ディスク304、可搬型記録媒体307などの記憶装置に記憶されたプログラムをCPU301に実行させることにより、または、通信I/F305により、その機能を実現する。各機能部の処理結果は、例えば、メモリ302、ディスク304などの記憶装置に記憶される。より具体的には、例えば、各機能部は、BIOSの一モジュールである、図4に示した外観情報検証・更新モジュール424によって実現される。
【0077】
受付部601は、対象データ書込要求を受け付ける。ここで、対象データ書込要求は、対象装置Miへの外観情報Ad(対象データ)の書き込みを要求するものである。対象データ書込要求は、例えば、外観情報Adの初回の書き込み時、または、外観情報Adの更新時に行われる。対象データ書込要求は、例えば、外観情報Adを含む。また、対象データ書込要求は、OEM公開鍵証明書Cdを含むものであってもよい。
【0078】
具体的には、例えば、受付部601は、図2に示した委託側端末202から受信することにより、対象データ書込要求を受け付ける。また、外観情報AdとOEM公開鍵証明書CdがOEM委託企業P2からOEM受託企業P1に渡された場合、受付部601は、図2に示した受託側端末201から受信することにより、対象データ書込要求を受け付けてもよい。
【0079】
取得部602は、BIOSが管理する不揮発性記憶領域(例えば、SPIフラッシュ410)のうちの可変領域412に外観情報Adを格納するにあたり、OEM秘密鍵k22を用いて署名された外観情報Adと、PK秘密鍵k12を用いて署名されたOEM公開鍵証明書Cdとを取得する。
【0080】
ここで、OEM秘密鍵k22は、OEM公開鍵k21とペアとなる秘密鍵である。OEM公開鍵k21およびOEM秘密鍵k22は、OEM委託企業P2固有の鍵情報である。OEM公開鍵証明書Cdは、OEM公開鍵k21の真正性を検証するための証明情報である。PK秘密鍵k12は、PK公開鍵k11とペアとなる秘密鍵である。PK公開鍵k11およびPK秘密鍵k12は、BIOSのセキュアブート機能に用いられる鍵情報であり、対象装置Miと同一機種の装置間で共通の鍵情報である。
【0081】
具体的には、例えば、取得部602は、委託側端末202(または、受託側端末201)から受信することにより、外観情報AdとOEM公開鍵証明書Cdとを取得する。より詳細に説明すると、例えば、取得部602は、受け付けた対象データ書込要求に含まれる外観情報AdとOEM公開鍵証明書Cdとを取得してもよい。
【0082】
なお、OEM公開鍵証明書Cdは、可変領域412に格納されている場合がある(例えば、外観情報Adの2回目以降の書き込み時)。この場合、取得部602は、OEM公開鍵証明書Cdについては、可変領域412から取得してもよい。
【0083】
第1の検証部603は、BIOSが管理する不揮発性記憶領域のうちの固定領域411に格納されたPK公開鍵k11を用いて、取得されたOEM公開鍵証明書Cdを検証する。具体的には、例えば、第1の検証部603は、固定領域411からPK公開鍵k11を読み出す。
【0084】
つぎに、第1の検証部603は、読み出したPK公開鍵k11を用いて、OEM公開鍵証明書Cdに含まれる暗号化データe1(例えば、図4参照)を復号する。また、第1の検証部603は、所定のハッシュ関数からOEM公開鍵証明書Cdに含まれるOEM公開鍵k21のハッシュ値を算出する。
【0085】
そして、第1の検証部603は、復号したデータと、算出したOEM公開鍵k21のハッシュ値とを比較する。ここで、復号したデータとハッシュ値とが一致する場合、第1の検証部603は、OEM公開鍵証明書Cdの検証に成功したと判断する。一方、復号したデータとハッシュ値とが一致しない場合、第1の検証部603は、OEM公開鍵証明書Cdの検証に失敗したと判断する。
【0086】
第2の検証部604は、OEM公開鍵証明書Cdの検証に成功した場合、OEM公開鍵証明書Cdに含まれるOEM公開鍵k21を用いて、取得された外観情報Adを検証する。具体的には、例えば、第2の検証部604は、OEM公開鍵k21を用いて、外観情報Adに付与された署名S(暗号化されたデータ)を復号する。また、第2の検証部604は、所定のハッシュ関数から外観情報Adのハッシュ値を算出する。
【0087】
つぎに、第2の検証部604は、復号したデータと、算出した外観情報Adのハッシュ値とを比較する。ここで、復号したデータとハッシュ値とが一致する場合、第2の検証部604は、外観情報Adの検証に成功したと判断する。一方、復号したデータとハッシュ値とが一致しない場合、第2の検証部604は、外観情報Adの検証に失敗したと判断する。
【0088】
書込制御部605は、外観情報Adの検証に成功した場合、可変領域412に外観情報Adを書き込む。また、書込制御部605は、外観情報Adの検証に成功した場合、可変領域412にOEM公開鍵証明書Cdを書き込む。具体的には、例えば、書込制御部605は、外観情報Adの検証に成功した場合、可変領域412内の外観情報領域413(図4参照)に外観情報Ad(署名S付き)を書き込むとともに、可変領域412にOEM公開鍵証明書Cdを書き込む。
【0089】
より詳細に説明すると、例えば、書込制御部605(外観情報検証・更新モジュール424)は、Variable管理モジュール423(図4参照)を介して、可変領域412にOEM公開鍵証明書Cdを書き込み、外観情報領域413に外観情報Ad(署名S付き)を書き込む。
【0090】
また、書込制御部605は、可変領域412に外観情報Adを格納するにあたり、OEM公開鍵証明書Cdの検証に失敗した場合、または、外観情報Adの検証に失敗した場合、可変領域412への外観情報Adの書き込みを拒否する。具体的には、例えば、書込制御部605は、受け付けた対象データ書込要求に対して、外観情報Adの書き込みを許可しない旨のエラー応答を行ってもよい。
【0091】
また、第1の検証部603は、可変領域412に格納された外観情報Adを使用するにあたり、可変領域412からOEM公開鍵証明書Cdを取得する。外観情報Adは、例えば、対象装置Miの起動時に、ロゴマークを表示したり、BIOSのメニュー画面を表示したりするために使用される。具体的には、例えば、書込制御部605(外観情報検証・更新モジュール424)は、Variable管理モジュール423を介して、可変領域412からOEM公開鍵証明書Cdを取得する。
【0092】
そして、第1の検証部603は、固定領域411に格納されたPK公開鍵k11を用いて、取得したOEM公開鍵証明書Cdを検証する。OEM公開鍵証明書Cdを検証する具体的な処理内容は、可変領域412に外観情報Adを格納する際の処理内容と同様である。
【0093】
また、第2の検証部604は、OEM公開鍵証明書Cdの検証に成功した場合、OEM公開鍵証明書Cdに含まれるOEM公開鍵k21を用いて、可変領域412に格納された外観情報Adを検証する。外観情報Adを検証する具体的な処理内容は、可変領域412に外観情報Adを格納する際の処理内容と同様である。
【0094】
そして、書込制御部605は、外観情報Adの検証に成功した場合、可変領域412に格納された外観情報Adの使用を許可する。具体的には、例えば、書込制御部605は、外観表示モジュール421(図4)による外観情報Adの使用を許可する。この結果、外観表示モジュール421により、可変領域412に格納された外観情報Adを用いて、ロゴマークやメニュー画面が表示される。なお、ロゴマークやメニュー画面は、対象装置Miに接続されたディスプレイ(不図示)に表示される。
【0095】
また、書込制御部605は、可変領域412に格納された外観情報Adを使用するにあたり、OEM公開鍵証明書Cdの検証に失敗した場合、または、外観情報Adの検証に失敗した場合、外観情報Adの使用を許可しない。具体的には、例えば、書込制御部605は、外観情報Adの使用を許可しない旨のエラー応答を行って、対象装置Miの起動を中断してもよい。
【0096】
(外観情報Adの更新時の動作例)
ここで、外観情報Adの更新(書き込み)時の動作例について説明する。まず、図7を用いて、OSブート前の外観情報Adの更新時の動作例について説明する。
【0097】
図7は、外観情報Adの更新時の第1の動作例を示す説明図である。図7において、BMC(Baseboard Management Controller)700は、対象装置Miが有する制御用チップである。BMC700は、例えば、遠隔から対象装置Miを管理するために用いられる。
【0098】
OEM委託企業P2は、委託側端末202を用いて、OSブート前の対象装置MiのBMC700に対して、外観情報AdとOEM公開鍵証明書Cdとを含む対象データ書込要求を送信する。外観情報Adには、署名Sが付与されている。BMC700は、受信した対象データ書込要求を外観情報検証・更新モジュール424に送信する。
【0099】
外観情報検証・更新モジュール424は、対象データ書込要求を受信すると、固定領域411からPK公開鍵k11を取得する。つぎに、外観情報検証・更新モジュール424は、取得したPK公開鍵k11を用いて、対象データ書込要求に含まれるOEM公開鍵証明書Cdを検証する。ここで、OEM公開鍵証明書Cdの検証に成功した場合、外観情報検証・更新モジュール424は、OEM公開鍵証明書Cdに含まれるOEM公開鍵k21を用いて、対象データ書込要求に含まれる外観情報Adの署名Sを検証する。
【0100】
そして、外観情報検証・更新モジュール424は、外観情報Adの署名Sの検証に成功した場合に、外観情報領域413に外観情報Adを格納する。また、外観情報検証・更新モジュール424は、Variable管理モジュール423を介して、OEM公開鍵証明書Cdを可変領域412に格納する。
【0101】
これにより、外観情報検証・更新モジュール424は、OSブート前に外観情報Adを更新するにあたり、セキュリティを確保しつつ、カスタマイズされた外観情報Adを格納することができる。例えば、外観情報検証・更新モジュール424は、OEM公開鍵k21が改ざんされている場合、OEM公開鍵証明書Cdの検証に失敗するため、第三者によるなりすましを防ぐことができる。また、外観情報検証・更新モジュール424は、外観情報Adが改ざんされている場合、外観情報Adの検証に失敗するため、OEM委託企業P2が意図しない外観情報が格納されるのを防ぐことができる。
【0102】
なお、2回目以降の更新時に外観情報Adのみを更新する場合は、対象データ書込要求にOEM公開鍵証明書Cdが含まれていなくてもよい。この場合、外観情報検証・更新モジュール424は、可変領域412に格納されたOEM公開鍵証明書Cdの検証を行う。
【0103】
つぎに、図8を用いて、OS起動後の外観情報Adの更新時の動作例について説明する。
【0104】
図8は、外観情報Adの更新時の第2の動作例を示す説明図である。図8において、更新アプリ800は、対象装置MiのOS上で動作するアプリケーションである。更新アプリ800は、例えば、外観情報AdやOEM公開鍵証明書Cdを更新するために用いられる。
【0105】
OEM委託企業P2は、委託側端末202を用いて、OS起動後の対象装置Miの更新アプリ800に対して、外観情報AdとOEM公開鍵証明書Cdとを含む対象データ書込要求を送信する。外観情報Adには、署名Sが付与されている。更新アプリ800は、例えば、API(Application Programming Interface)を呼び出して、受信した対象データ書込要求を外観情報検証・更新モジュール424に送信する。
【0106】
外観情報検証・更新モジュール424は、対象データ書込要求を受信すると、固定領域411からPK公開鍵k11を取得する。つぎに、外観情報検証・更新モジュール424は、取得したPK公開鍵k11を用いて、対象データ書込要求に含まれるOEM公開鍵証明書Cdを検証する。ここで、OEM公開鍵証明書Cdの検証に成功した場合、外観情報検証・更新モジュール424は、OEM公開鍵証明書Cdに含まれるOEM公開鍵k21を用いて、対象データ書込要求に含まれる外観情報Adの署名Sを検証する。
【0107】
そして、外観情報検証・更新モジュール424は、外観情報Adの署名Sの検証に成功した場合に、外観情報領域413に外観情報Adを格納する。また、外観情報検証・更新モジュール424は、Variable管理モジュール423を介して、OEM公開鍵証明書Cdを可変領域412に格納する。
【0108】
これにより、外観情報検証・更新モジュール424は、OS起動後に外観情報Adを更新するにあたり、セキュリティを確保しつつ、カスタマイズされた外観情報Adを格納することができる。
【0109】
(外観情報Adの使用時の動作例)
ここで、図9を用いて、外観情報Adおよびの使用時の動作例について説明する。
【0110】
図9は、外観情報Adの使用時の動作例を示す説明図である。図9において、外観情報検証・更新モジュール424は、OSブート前に外観情報Adを使用するにあたり、固定領域411からPK公開鍵k11を取得する。
【0111】
つぎに、外観情報検証・更新モジュール424は、Variable管理モジュール423を介して、可変領域412からOEM公開鍵証明書Cdを取得する。そして、外観情報検証・更新モジュール424は、取得したPK公開鍵k11を用いて、取得したOEM公開鍵証明書Cdを検証する。
【0112】
ここで、OEM公開鍵証明書Cdの検証に成功した場合、外観情報検証・更新モジュール424は、OEM公開鍵証明書Cdに含まれるOEM公開鍵k21を用いて、取得された外観情報Adの署名Sを検証する。そして、外観情報検証・更新モジュール424は、外観情報Adの署名Sの検証に成功した場合に、外観情報領域413に格納された外観情報Adの使用を許可する。
【0113】
これにより、外観情報検証・更新モジュール424は、セキュリティを確保しつつ、カスタマイズされた外観情報Adを使用することができる。例えば、外観情報検証・更新モジュール424は、可変領域412に格納されたOEM公開鍵証明書Cdに含まれるOEM公開鍵k21が改ざんされた場合、OEM公開鍵証明書Cdの検証に失敗するため、外観情報Adの不正使用を防ぐことができる。また、外観情報検証・更新モジュール424は、外観情報領域413に格納された外観情報Adが改ざんされた場合、外観情報Adの検証に失敗するため、OEM委託企業P2が意図しないBIOSの外観が表示されるのを防ぐことができる。
【0114】
(BIOSアップデート時の状態)
つぎに、図10を用いて、BIOSアップデート時の状態について説明する。
【0115】
図10は、BIOSアップデート時の状態を示す説明図である。図10において、対象装置MiのBIOSのアップデートが実施される場合、SPIフラッシュ410の固定領域411のみが書き換えられる。このため、可変領域412の外観情報AdやOEM公開鍵証明書Cdは維持される。
【0116】
また、BIOSのアップデートが実施されても、PK公開鍵k11は更新されない。したがって、BIOSのアップデート後も、外観情報検証・更新モジュール424は、セキュリティを確保しつつ、カスタマイズされた外観情報Adを使用することができる。
【0117】
(対象装置Miの情報処理手順)
つぎに、対象装置Miの情報処理手順について説明する。まず、図11を用いて、対象装置Miの外観情報更新時の情報処理手順について説明する。外観情報更新時の情報処理は、例えば、対象装置MiのBIOS(モジュール群414)により実行される。
【0118】
図11は、対象装置Miの外観情報更新時の検証処理手順の一例を示すフローチャートである。図11のフローチャートにおいて、まず、対象装置Miは、対象データ書込要求を受け付けたか否かを判断する(ステップS1101)。ここで、対象装置Miは、対象データ書込要求を受け付けるのを待つ(ステップS1101:No)。
【0119】
対象装置Miは、対象データ書込要求を受け付けた場合(ステップS1101:Yes)、SPIフラッシュ410の固定領域411からPK公開鍵k11を取得する(ステップS1102)。つぎに、対象装置Miは、取得したPK公開鍵k11を用いて、対象データ書込要求に含まれるOEM公開鍵証明書Cdを検証する(ステップS1103)。
【0120】
そして、対象装置Miは、OEM公開鍵証明書Cdの検証に成功したか否かを判断する(ステップS1104)。ここで、OEM公開鍵証明書Cdの検証に成功した場合(ステップS1104:Yes)、対象装置Miは、OEM公開鍵証明書Cdに含まれるOEM公開鍵k21を用いて、対象データ書込要求に含まれる外観情報Adの署名Sを検証する(ステップS1105)。
【0121】
そして、対象装置Miは、外観情報Adの署名Sの検証に成功したか否かを判断する(ステップS1106)。ここで、外観情報Adの署名Sの検証に成功した場合(ステップS1106:Yes)、SPIフラッシュ410の可変領域412にOEM公開鍵証明書Cdを書き込む(ステップS1107)。
【0122】
そして、対象装置Miは、SPIフラッシュ410の可変領域412内の外観情報領域413に外観情報Ad(署名S付き)を書き込んで(ステップS1108)、本フローチャートによる一連の処理を終了する。
【0123】
また、ステップS1104において、OEM公開鍵証明書Cdの検証に失敗した場合(ステップS1104:No)、または、ステップS1106において、外観情報Adの署名Sの検証に失敗した場合(ステップS1106:No)、対象装置Miは、エラー処理を実行して(ステップS1109)、本フローチャートによる一連の処理を終了する。エラー処理では、例えば、対象データ書込要求に対して、外観情報Adの書き込みを許可しない旨のエラー応答が行われる。
【0124】
これにより、対象装置Miは、セキュリティを確保しつつ、BIOSの外観情報Adを更新することができる。
【0125】
つぎに、図12を用いて、対象装置Miの外観情報使用時の情報処理手順について説明する。外観情報使用時の情報処理は、例えば、対象装置Miの起動時にBIOSの外観情報検証・更新モジュール424により実行される。
【0126】
図12は、対象装置Miの外観情報使用時の検証処理手順の一例を示すフローチャートである。図12のフローチャートにおいて、まず、対象装置Miは、自装置の起動時に、SPIフラッシュ410の固定領域411からPK公開鍵k11を取得する(ステップS1201)。
【0127】
つぎに、対象装置Miは、SPIフラッシュ410の可変領域412からOEM公開鍵証明書Cdを取得する(ステップS1202)。そして、対象装置Miは、取得したPK公開鍵k11を用いて、取得したOEM公開鍵証明書Cdを検証する(ステップS1203)。
【0128】
対象装置Miは、OEM公開鍵証明書Cdの検証に成功したか否かを判断する(ステップS1204)。ここで、OEM公開鍵証明書Cdの検証に成功した場合(ステップS1204:Yes)、対象装置Miは、SPIフラッシュ410の可変領域412内の外観情報領域413から外観情報Adを取得する(ステップS1205)。
【0129】
そして、対象装置Miは、OEM公開鍵証明書Cdに含まれるOEM公開鍵k21を用いて、取得した外観情報Adの署名Sを検証する(ステップS1206)。そして、対象装置Miは、外観情報Adの署名Sの検証に成功したか否かを判断する(ステップS1207)。
【0130】
ここで、外観情報Adの署名Sの検証に成功した場合(ステップS1207:Yes)、外観情報Adの使用を許可して(ステップS1208)、本フローチャートによる一連の処理を終了する。この結果、例えば、BIOSの外観表示モジュール421により、外観情報Adを用いて、ロゴマークやメニュー画面が表示される。
【0131】
また、ステップS1204において、OEM公開鍵証明書Cdの検証に失敗した場合(ステップS1204:No)、または、ステップS1207において、外観情報Adの署名Sの検証に失敗した場合(ステップS1207:No)、対象装置Miは、自装置の起動を中断して(ステップS1209)、本フローチャートによる一連の処理を終了する。
【0132】
これにより、対象装置Miは、セキュリティを確保しつつ、BIOSの外観情報Adを使用することができる。
【0133】
以上説明したように、実施の形態にかかる対象装置Miによれば、BIOSが管理するSPIフラッシュ410の可変領域412に外観情報Adを格納するにあたり、OEM秘密鍵k22を用いて署名された外観情報Adと、PK秘密鍵k12を用いて署名されたOEM公開鍵証明書Cdとを取得することができる。外観情報Adは、BIOSの画面を表示するための情報である。OEM秘密鍵k22は、外観情報Adの書き込みを許可された者固有の鍵情報である。外観情報Adの書き込みを許可された者は、例えば、対象装置Miの製造委託元(OEMベンダ)である。PK秘密鍵k12は、BIOSのセキュアブート機能に用いられる、対象装置Miと同一機種の装置(例えば、対象装置M1~Mn)間で固有の鍵情報である。そして、対象装置Miによれば、SPIフラッシュ410の固定領域411に格納されたPK公開鍵k11を用いて、公開鍵証明書C1を検証し、公開鍵証明書C1の検証に成功した場合、公開鍵証明書C1に含まれるOEM公開鍵k21を用いて、外観情報Adを検証し、外観情報Adの検証に成功した場合、可変領域412に外観情報Adを書き込むことができる。
【0134】
これにより、対象装置Miは、セキュリティを確保しつつ、カスタマイズされた外観情報Adを書込可能にすることができる。例えば、製造委託元(例えば、OEM受託企業P1)は、BIOSの外観を任意に変更することができる。また、対象装置Miは、検証の根元となる鍵として、同一機種の装置間で共通のセキュアブート機能の鍵情報(PK公開鍵k11、PK秘密鍵k12)を使用することで、製造委託先(例えば、OEM受託企業P1)が管理する鍵の数を減らせるとともに、固定領域411の使用量を抑えることができる。
【0135】
また、対象装置Miによれば、外観情報Adの検証に成功した場合、可変領域412に公開鍵証明書C1を書き込むことができる。
【0136】
これにより、対象装置Miは、自装置の起動時に可変領域412に格納された外観情報Adを使用する際に、可変領域412に格納された公開鍵証明書C1を用いて、外観情報Adを検証することができる。
【0137】
また、対象装置Miによれば、可変領域412に外観情報Adを格納するにあたり、外観情報Adの検証に成功した場合、可変領域412内の外観情報領域413(特定の領域)に外観情報Adを書き込むことができる。
【0138】
これにより、対象装置Miは、可変領域412が他のデータに使用されて外観情報Adを格納できなくなることを防ぐことができる。
【0139】
また、対象装置Miによれば、可変領域412に外観情報Adを格納するにあたり、公開鍵証明書C1の検証に失敗した場合、または、外観情報Adの検証に失敗した場合、可変領域412への外観情報Adの書き込みを拒否することができる。
【0140】
これにより、対象装置Miは、第三者によるなりすましを防ぎ、製造委託元(例えば、OEM受託企業P1)が意図しない外観情報が書き込まれるのを防ぐことができる。
【0141】
また、対象装置Miによれば、可変領域412に格納された外観情報Adを使用するにあたり、可変領域412から公開鍵証明書C1を取得し、固定領域411に格納されたPK公開鍵k11を用いて、取得した公開鍵証明書C1を検証することができる。そして、対象装置Miによれば、公開鍵証明書C1の検証に成功した場合、公開鍵証明書C1に含まれるOEM公開鍵k21を用いて、可変領域412に格納された外観情報Adを検証し、外観情報Adの検証に成功した場合、外観情報Adの使用を許可することができる。
【0142】
これにより、対象装置Miは、セキュリティを確保しつつ、カスタマイズされた外観情報Adを使用することができる。
【0143】
また、対象装置Miによれば、可変領域412に格納された外観情報Adを使用するにあたり、公開鍵証明書C1の検証に失敗した場合、または、外観情報Adの検証に失敗した場合、外観情報Adの使用を許可しないことができる。
【0144】
これにより、対象装置Miは、外観情報Adの不正使用を防ぐとともに、製造委託元(例えば、OEM受託企業P1)が意図しないBIOSの外観が表示されるのを防ぐことができる。
【0145】
これらのことから、対象装置Miによれば、出荷後にBIOSのロゴマークやメニュー画面などの外観を変更することが可能となり、製造委託元の利便性を向上させることができる。また、対象装置Miによれば、カスタマイズ後のBIOSのアップデートでは、共通のアップデートファイルを使用できるため、アップデートファイルの管理や評価にかかる負荷の増加を抑えることができる。また、対象装置Miによれば、セキュアブート機能が無効化された場合であっても、許可されていない第三者による外観の変更を制限することができる。また、製造委託元(OEMベンダ)が管理する鍵が漏れた場合であっても、影響を受ける範囲を外観のみに絞ることができるため、悪意ある改造が加えられたOSブートローダなどが起動できるようになることを防ぐことができる。
【0146】
なお、本実施の形態で説明した情報処理方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本情報処理プログラムは、ハードディスク、フレキシブルディスク、CD(Compact Disc)-ROM、DVD(Digital Versatile Disk)、USB(Universal Serial Bus)メモリ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、本情報処理プログラムは、インターネット等のネットワークを介して配布してもよい。
【0147】
上述した実施の形態に関し、さらに以下の付記を開示する。
【0148】
(付記1)自装置の起動時に実行されるファームウェアが管理する不揮発性記憶領域と、
前記不揮発性記憶領域のうち書き換え可能な可変領域に対象データを格納するにあたり、当該対象データの書き込みを許可された者固有の第1秘密鍵を用いて署名された前記対象データを取得し、自装置と同一機種の装置間で共通の第2秘密鍵を用いて署名された、前記第1秘密鍵に対応する第1公開鍵を含む公開鍵証明書を取得し、前記不揮発性記憶領域のうち書き換えが制限される固定領域に格納された、前記第2秘密鍵に対応する第2公開鍵を用いて、前記公開鍵証明書を検証し、前記公開鍵証明書の検証に成功した場合、前記公開鍵証明書に含まれる前記第1公開鍵を用いて、前記対象データを検証し、前記対象データの検証に成功した場合、前記可変領域に前記対象データを書き込む制御部と、
を有することを特徴とする情報処理装置。
【0149】
(付記2)前記制御部は、
前記対象データの検証に成功した場合、前記可変領域に前記公開鍵証明書を書き込む、ことを特徴とする付記1に記載の情報処理装置。
【0150】
(付記3)前記制御部は、
前記可変領域に格納された前記対象データを使用するにあたり、前記可変領域から前記公開鍵証明書を取得し、前記固定領域に格納された前記第2公開鍵を用いて、取得した前記公開鍵証明書を検証し、前記公開鍵証明書の検証に成功した場合、前記公開鍵証明書に含まれる前記第1公開鍵を用いて、前記可変領域に格納された前記対象データを検証し、前記対象データの検証に成功した場合、前記対象データの使用を許可する、
ことを特徴とする付記2に記載の情報処理装置。
【0151】
(付記4)前記ファームウェアは、BIOS(Basic Input/Output System)である、ことを特徴とする付記1~3のいずれか一つに記載の情報処理装置。
【0152】
(付記5)前記対象データは、前記BIOSの画面を表示するための外観情報である、ことを特徴とする付記4に記載の情報処理装置。
【0153】
(付記6)前記第2公開鍵および前記第2秘密鍵は、前記BIOSのセキュアブート機能に用いられる、自装置と同一機種の装置間で共通の公開鍵および秘密鍵である、ことを特徴とする付記4または5に記載の情報処理装置。
【0154】
(付記7)前記対象データの書き込みを許可された者は、自装置の製造委託元である、ことを特徴とする付記1~6のいずれか一つに記載の情報処理装置。
【0155】
(付記8)前記制御部は、
前記可変領域に前記対象データを格納するにあたり、前記対象データの検証に成功した場合、前記可変領域内の特定のデータ領域に前記対象データを書き込む、ことを特徴とする付記1~7のいずれか一つに記載の情報処理装置。
【0156】
(付記9)前記制御部は、
前記可変領域に前記対象データを格納するにあたり、前記公開鍵証明書の検証に失敗した場合、または、前記対象データの検証に失敗した場合、前記可変領域への前記対象データの書き込みを拒否する、ことを特徴とする付記1~8のいずれか一つに記載の情報処理装置。
【0157】
(付記10)前記制御部は、
前記可変領域に格納された前記対象データを使用するにあたり、前記公開鍵証明書の検証に失敗した場合、または、前記対象データの検証に失敗した場合、前記対象データの使用を許可しない、ことを特徴とする付記3に記載の情報処理装置。
【0158】
(付記11)自装置の起動時に実行されるファームウェアが管理する不揮発性記憶領域のうち書き換え可能な可変領域に対象データを格納するにあたり、当該対象データの書き込みを許可された者固有の第1秘密鍵を用いて署名された前記対象データを取得し、
自装置と同一機種の装置間で共通の第2秘密鍵を用いて署名された、前記第1秘密鍵に対応する第1公開鍵を含む公開鍵証明書を取得し、
前記不揮発性記憶領域のうち書き換えが制限される固定領域に格納された、前記第2秘密鍵に対応する第2公開鍵を用いて、前記公開鍵証明書を検証し、
前記公開鍵証明書の検証に成功した場合、前記公開鍵証明書に含まれる前記第1公開鍵を用いて、前記対象データを検証し、
前記対象データの検証に成功した場合、前記可変領域に前記対象データを書き込む、
処理をコンピュータが実行することを特徴とする情報処理方法。
【符号の説明】
【0159】
101 情報処理装置
110 不揮発性記憶領域
111,411 固定領域
112,412 可変領域
120 対象データ
130 公開鍵証明書
200 情報処理システム
201 受託側端末
202 委託側端末
210 ネットワーク
300 バス
301 CPU
302 メモリ
303 ディスクドライブ
304 ディスク
305 通信I/F
306 可搬型記録媒体I/F
307 可搬型記録媒体
410 SPIフラッシュ
413 外観情報領域
414 モジュール群
420 メインメモリ
421 外観表示モジュール
422 SecureBoot検証モジュール
423 Variable管理モジュール
424 外観情報検証・更新モジュール
430 PCI Expressカード
431 PCI Expressカード管理モジュール
440 ストレージ
441 OSブートローダ
600 制御部
601 受付部
602 取得部
603 第1の検証部
604 第2の検証部
605 書込制御部
700 BMC
800 更新アプリ
Ad 外観情報
Cd OEM公開鍵証明書
k11 PK公開鍵
k12 PK秘密鍵
k21 OEM公開鍵
k22 OEM秘密鍵
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12