JP5986897B2 - 端末装置、完全性検証システム、およびプログラム - Google Patents

端末装置、完全性検証システム、およびプログラム Download PDF

Info

Publication number
JP5986897B2
JP5986897B2 JP2012249108A JP2012249108A JP5986897B2 JP 5986897 B2 JP5986897 B2 JP 5986897B2 JP 2012249108 A JP2012249108 A JP 2012249108A JP 2012249108 A JP2012249108 A JP 2012249108A JP 5986897 B2 JP5986897 B2 JP 5986897B2
Authority
JP
Japan
Prior art keywords
program
measurement
service
value
boot loader
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2012249108A
Other languages
English (en)
Other versions
JP2014098951A (ja
Inventor
竹森 敬祐
敬祐 竹森
秀明 川端
秀明 川端
隆将 磯原
隆将 磯原
歩 窪田
歩 窪田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
KDDI Corp
Original Assignee
KDDI Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by KDDI Corp filed Critical KDDI Corp
Priority to JP2012249108A priority Critical patent/JP5986897B2/ja
Publication of JP2014098951A publication Critical patent/JP2014098951A/ja
Application granted granted Critical
Publication of JP5986897B2 publication Critical patent/JP5986897B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、スマートフォン等の端末装置の完全性(改竄されていないこと)を検証する技術に関する。
OS(Operating System)から独立した、耐タンパ性を有する専用チップで構成され、暗号化等の処理を安全に行うTrusted Platform Module(TPM)が開発されている。TPMは主に、x86アーキテクチャをベースとした端末、いわゆるパソコンに搭載されている。非特許文献1,2には、TPMを利用して、端末上のファイルが改竄されていない完全な状態であるか否かを検証しながら端末を安全に起動させる「セキュアブート」を可能とする技術が記載されている。
この技術では、パソコン用のOSのプログラムが書き込まれたCD-ROMを起動ディスクとしてOSを起動させる際に、OSの起動を行うブートローダのプログラムに対して、TPMを利用して完全性の検証が行われる。CD-ROMに書き込まれたOSのプログラムを書き換えることはできないので、ブートローダの完全性を検証することで、端末が完全な状態で起動したか否かを確認することができる。
完全性の検証は、例えば以下のように行われる。
(1)検証対象のプログラムに対応する完全な状態のプログラムを構成する各ファイルをハッシュ関数の入力値としてハッシュ値を算出する「測定」を行い、測定結果としてハッシュ値(期待値)を得る。このハッシュ値は、検証対象のプログラムに対して同様の測定を行った場合に測定結果として得られることが期待される値である。
(2)検証対象のプログラムを構成する各ファイルに対して測定を行い、測定結果としてハッシュ値(測定値)を得る。
(3)完全な状態のプログラムを測定して得られた期待値と、検証対象のプログラムを測定して得られた測定値とを比較する。両方の測定値が一致した場合、検証対象のプログラムは完全であり、両方の測定値が異なる場合、検証対象のプログラムは完全ではないと判断できる。
"KNOPPIXとTPMの組み合わせで「安全なサービス」実現へ",[online],[平成24年10月29日検索],インターネット<URL:http://www.atmarkit.co.jp/news/200802/07/aist.html> "Knoppix 5.1.1 for Trusted Computing Geeks",[online],[平成24年11月07日検索],インターネット<URL:http://unit.aist.go.jp/itri/knoppix/TCGeeks-CD20071105.pdf>
パソコンでは、OSの主要な機能を実現するプログラムを含むシステムファイルが保存されるハードディスク上のシステム領域がユーザに開放されている。このため、例えばユーザがパソコンに任意のアプリケーションを追加する等の行為により、システム領域の状態が任意に変化する。このような事情から、パソコンの完全な状態の基準を策定しきれない難しさがあり、2012年7月現在、パソコンのセキュアブートは普及に至っていない。
OSのシステムファイルが保存されるシステム領域と、ユーザが任意にファイルを追加することが可能なユーザ領域とが分離しているスマートフォン等の端末の場合、端末に対してウイルスによる攻撃等の特殊な状況を除いて、基本的には端末メーカや通信キャリアのみがシステム領域を設定することができる。OSの更新やパッチの適用が行われる場合でも、どのような更新あるいは適用が行われるのかを把握できることを前提とすれば、OSの更新あるいはパッチの適用後に想定されるシステム領域の状態を事前に策定することが可能となる。
しかし、OSのシステムファイルのサイズが膨大であるため、TPMの非力な演算回路がOSのシステムファイルの測定を行うと、膨大な時間を要する。そこで、処理を高速に行える端末のCPU(Central Processing Unit)を用いてOSのシステムファイルの測定を行う手法が考えられる。この手法では、OSを起動するブートローダがCPUを制御し、OSのシステムファイルの測定を行うことになる。しかし、ブートローダは、シングルタスク/シングルスレッドで動作するために、マルチタスク/マルチスレッドで動作可能なOSと比較して処理能力が低い。また、メモリ・キャッシュも限定的にしか機能していないためCPUの動作も、OSが機能している場合よりも遅い。このため、膨大なサイズのOSのシステムファイルの測定を行うのに時間を要し、セキュアブートを実現する際に端末の高速起動の障害となるという問題がある。
また、OSのシステムファイルの測定値と期待値との比較をTPMの演算回路が行うためには、TPM内の記憶装置にOSのシステムファイルの期待値を予め保持させておく必要がある。しかし、OSのシステムファイルのサイズが膨大であるため、OSのシステムファイルの期待値も膨大となり、OSのシステムファイルの期待値を、記憶容量に乏しいTPMの記憶装置に予め保持させておくことが困難である。そこで、十分な記憶容量を有する記憶装置を備えた外部装置(サーバ)にOSのシステムファイルの期待値を予め保持させておき、端末の起動時にOSのシステムファイルの測定値を端末から外部装置へ送信し、外部装置がOSのシステムファイルの測定値と期待値との比較を行う手法が考えられる。
本発明は、上述した課題に鑑みてなされたものであって、端末装置の起動時にOSの完全性の検証を行うと共に端末装置をより高速に起動することを目的とする。
本発明は、上記の課題を解決するためになされたもので、OS(Operating System)が提供するサービスの機能を実現するためのサービスプログラムと、カーネルによる制御に従って、前記サービスプログラムを測定し、測定結果である第1の測定値を生成した後、前記サービスを起動するサービス測定・起動部の機能を実現するためのサービス測定・起動プログラムと、前記サービス測定・起動部を起動し、前記サービス測定・起動部によって行われる処理を制御する前記カーネルの機能を実現するためのカーネルプログラムと、を含むOSプログラムを記憶する第1の記憶部と、前記サービス測定・起動プログラムを測定し、測定結果である第2の測定値を生成すると共に、前記カーネルプログラムを測定し、測定結果である第3の測定値を生成した後、前記カーネルを起動するブートローダの機能を実現するためのブートローダプログラムを記憶する第2の記憶部と、前記OSプログラムおよび前記ブートローダプログラムに従って処理を行う処理部と、前記サービスプログラムを測定したときに期待される測定結果である第1の期待値と前記第1の測定値とを比較し、前記サービス測定・起動プログラムを測定したときに期待される測定結果である第2の期待値と前記第2の測定値とを比較し、前記カーネルプログラムを測定したときに期待される測定結果である第3の期待値と前記第3の測定値とを比較することにより前記OSの完全性を検証するサーバへ前記第1の測定値、前記第2の測定値、および前記第3の測定値を送信する送信部と、を備えたことを特徴とする端末装置である。
また、本発明の端末装置は、前記サービス測定・起動プログラムを測定し、測定結果である第2の測定値を生成すると共に、前記カーネルプログラムを測定し、測定結果である第3の測定値を生成した後、前記カーネルを起動する第1のブートローダの機能を実現するための、書き換え可能な第1のブートローダプログラムを記憶する前記第2の記憶部と、前記第1のブートローダプログラムを測定し、測定結果である第4の測定値を生成した後、前記第1のブートローダを起動する第2のブートローダの機能を実現するための、書き換え不可能な第2のブートローダプログラムを記憶する第3の記憶部と、前記第1のブートローダプログラムを測定したときに期待される測定結果である第4の期待値と前記第4の測定値とを比較することにより前記第1のブートローダプログラムの完全性を検証する検証部と、を有することを特徴とする。
また、本発明の端末装置において、前記検証部は、耐タンパ性を有するTPM(Trusted Platform Module)であって、前記第4の期待値を記憶する記憶部と、前記第4の期待値と前記第4の測定値とを比較することにより前記第1のブートローダプログラムの完全性を検証する比較部と、を有することを特徴とする。
また、本発明の端末装置において、前記TPMはさらに、前記第1の測定値、前記第2の測定値、および前記第3の測定値の電子署名を生成する署名部を有し、前記送信部は、前記サーバへ、前記第1の測定値、前記第2の測定値、前記第3の測定値、および前記電子署名を送信することを特徴とする。
また、本発明の端末装置において、前記サービス測定・起動プログラムは、起動した前記カーネルが最初に実行するプログラムであることを特徴とする。
また、本発明は、端末装置およびサーバを備えた完全性検証システムであって、前記端末装置は、OS(Operating System)が提供するサービスの機能を実現するためのサービスプログラムと、カーネルによる制御に従って、前記サービスプログラムを測定し、測定結果である第1の測定値を生成した後、前記サービスを起動するサービス測定・起動部の機能を実現するためのサービス測定・起動プログラムと、前記サービス測定・起動部を起動し、前記サービス測定・起動部によって行われる処理を制御する前記カーネルの機能を実現するためのカーネルプログラムと、を含むOSプログラムを記憶する第1の記憶部と、前記サービス測定・起動プログラムを測定し、測定結果である第2の測定値を生成すると共に、前記カーネルプログラムを測定し、測定結果である第3の測定値を生成した後、前記カーネルを起動するブートローダの機能を実現するためのブートローダプログラムを記憶する第2の記憶部と、前記OSプログラムおよび前記ブートローダプログラムに従って処理を行う処理部と、前記サーバへ前記第1の測定値、前記第2の測定値、および前記第3の測定値を送信する送信部と、を有し、前記サーバは、前記サービスプログラムを測定したときに期待される測定結果である第1の期待値、前記サービス測定・起動プログラムを測定したときに期待される測定結果である第2の期待値、および前記カーネルプログラムを測定したときに期待される測定結果である第3の期待値を記憶する第2の記憶部と、前記端末装置から前記第1の測定値、前記第2の測定値、および第3の測定値を受信する受信部と、前記第1の期待値と前記第1の測定値とを比較し、前記第2の期待値と前記第2の測定値とを比較し、前記第3の期待値と前記第3の測定値とを比較することにより、前記OSの完全性を検証する検証部と、を有することを特徴とする完全性検証システムである。
また、本発明は、OS(Operating System)が提供するサービスの機能を実現するためのサービスプログラムと、カーネルによる制御に従って、前記サービスプログラムを測定し、測定結果である第1の測定値を生成した後、前記サービスを起動するサービス測定・起動部の機能を実現するためのサービス測定・起動プログラムと、前記サービス測定・起動部を起動し、前記サービス測定・起動部によって行われる処理を制御する前記カーネルの機能を実現するためのカーネルプログラムと、を含むOSプログラムを記憶する第1の記憶部と、前記サービス測定・起動プログラムを測定し、測定結果である第2の測定値を生成すると共に、前記カーネルプログラムを測定し、測定結果である第3の測定値を生成した後、前記カーネルを起動するブートローダの機能を実現するためのブートローダプログラムを記憶する第2の記憶部と、前記OSプログラムおよび前記ブートローダプログラムに従って処理を行う処理部と、前記サービスプログラムを測定したときに期待される測定結果である第1の期待値と前記第1の測定値とを比較し、前記サービス測定・起動プログラムを測定したときに期待される測定結果である第2の期待値と前記第2の測定値とを比較し、前記カーネルプログラムを測定したときに期待される測定結果である第3の期待値と前記第3の測定値とを比較することにより前記OSの完全性を検証するサーバへ前記第1の測定値、前記第2の測定値、および前記第3の測定値を送信する送信部と、としてコンピュータを機能させるためのプログラムである。
本発明によれば、端末装置が、端末装置のOSの完全性を検証するサーバへ第1の測定値、第2の測定値、および第3の測定値を送信することによって、端末装置の起動時にサーバが端末装置のOSの完全性を検証することができる。また、カーネルによる制御に従って、サービス測定・起動部がサービスプログラムを測定することによって、端末装置をより高速に起動することができる。
本発明の一実施形態による端末装置の構成を示すブロック図である。 本発明の一実施形態による端末装置が有するCPUの機能構成を示すブロック図である。 本発明の一実施形態によるサーバの構成を示すブロック図である。 本発明の一実施形態におけるOSのファイルシステムを示す参考図である。 本発明の一実施形態による端末装置の動作の手順を示すフローチャートである。 本発明の一実施形態による端末装置の動作の手順を示すフローチャートである。 本発明の一実施形態によるサーバの動作の手順を示すフローチャートである。
以下、図面を参照し、本発明の実施形態を説明する。本実施形態による完全性検証システムは、完全性の検証の対象であるOSを有する端末装置と、端末装置が有するOSの完全性の検証を行うサーバとを含む。図1は、本実施形態による端末装置1の構成を示している。
端末装置1は、通信部10(送信部)、CPU11(処理部)、フラッシュメモリ12、ROM(Read Only Memory)13、RAM(Random Access Memory)14、およびTPM15を有する。通信部10は、サーバ2と通信を行う通信回路を有する。CPU11は、各種の処理を行う処理回路を有する。フラッシュメモリ12は、各種のプログラムを記憶する不揮発性のメモリである。ROM13は、各種のプログラムを記憶する、書き換えが不可能な不揮発性のメモリである。RAM14は、各種のプログラムやデータを一時記憶する揮発性のメモリである。フラッシュメモリ12、ROM13、およびRAM14は、以下で説明する各プログラムを記憶する記憶部として機能する。TPM15(検証部)は、内部にCPU(図示せず)を有しており、耐タンパ性を有する専用チップで構成されている。本実施形態では、OSとして、スマートフォン用のOSとして一般的なAndroid(登録商標)が端末装置1に搭載されている場合を例として説明する。
フラッシュメモリ12は、サービスプログラム120、サービス測定・起動プログラム121、カーネルプログラム122、および第1ブートローダプログラム123を記憶する。ROM13は第2ブートローダプログラム130を記憶する。
サービスプログラム120は、OSが提供するサービスの機能を実現するためのシステムファイルを含むプログラムである。サービスプログラム120がフラッシュメモリ12からRAM14に読み込まれることによりサービス140が起動する。サービス140は、RAM14に常駐しているプログラムであり、OSによってはデーモンと呼ばれることもある。起動したサービス140は、サービスプログラム120で規定されている命令をCPU11に与えることにより、サービスの機能を実現する。
サービス測定・起動プログラム121は、サービスプログラム120を測定し、測定値(第1の測定値)を生成した後、サービス140を起動する機能を実現するためのプログラムである。サービス測定・起動プログラム121がフラッシュメモリ12からRAM14に読み込まれることによりサービス測定・起動部141が起動する。起動したサービス測定・起動部141は、サービス測定・起動プログラム121で規定されている命令をCPU11に与えることにより、上記の機能を実現する。
カーネルプログラム122は、メモリ管理、プロセス管理、デバイス管理等のOSとしての基本機能を実現すると共に、本実施形態ではサービス測定・起動部141を起動し、サービス測定・起動部141によって行われる処理を制御する機能を実現するためのプログラムである。カーネルプログラム122がフラッシュメモリ12からRAM14に読み込まれることによりカーネル142が起動する。起動したカーネル142は、カーネルプログラム122で規定されている命令をCPU11に与えることにより、上記の機能を実現する。
サービスプログラム120、サービス測定・起動プログラム121、およびカーネルプログラム122はOSプログラムを構成する。また、RAM14上で起動したサービス140、サービス測定・起動部141、およびカーネル142はOSを構成する。サービスプログラム120、サービス測定・起動プログラム121、およびカーネルプログラム122は、圧縮された状態でフラッシュメモリ12に格納されている。
第1ブートローダプログラム123は、サービス測定・起動プログラム121を測定し、測定値(第2の測定値)を生成すると共に、カーネルプログラム122を測定し、測定値(第3の測定値)を生成した後、カーネル142を起動する機能を実現するためのプログラムである。第1ブートローダプログラム123がフラッシュメモリ12からRAM14に読み込まれることにより第1ブートローダ143が起動する。起動した第1ブートローダ143は、第1ブートローダプログラム123で規定されている命令をCPU11に与えることにより、上記の機能を実現する。本実施形態の第1ブートローダプログラム123は書き換え可能なプログラムであり、ブートローダの機能の更新に対応することが可能である。
第2ブートローダプログラム130は、第1ブートローダプログラム123を測定し、測定値(第4の測定値)を生成した後、第1ブートローダ143を起動する機能を実現するためのプログラムである。第2ブートローダプログラム130がROM13からRAM14に読み込まれることにより第2ブートローダ144が起動する。起動した第2ブートローダ144は、第2ブートローダプログラム130で規定されている命令をCPU11に与えることにより、上記の機能を実現する。本実施形態の第2ブートローダプログラム130は書き換え不可能なプログラムである。
第1ブートローダ143および第2ブートローダ144はブートローダを構成する。本実施形態では第1ブートローダ143および第2ブートローダ144が使用されるが、第1ブートローダ143を設けず、第2ブートローダ144にその機能を持たせてもよい。この場合、ブートローダの全体が書き換え不可能となる。
TPM15は、記憶部150、比較部151、および署名部152を有する。記憶部150は、第1ブートローダプログラム123を測定したときに測定結果として期待される期待値(第4の期待値)を記憶する。比較部151は、第2ブートローダ144が第1ブートローダプログラム123を測定して得られた測定値と、記憶部150に格納されている期待値とを比較することにより第1ブートローダ143の完全性を検証する。
署名部152は、第1ブートローダ143がサービス測定・起動プログラム121を測定して得られる測定値と、第1ブートローダ143がカーネルプログラム122を測定して得られる測定値と、サービス測定・起動部141がサービスプログラム120を測定して得られる測定値とのそれぞれに対して電子署名を付加した署名ファイルを生成する。生成された署名ファイルはサーバ2へ送信される。
CPU11は、RAM14に読み込まれて起動したサービス140、サービス測定・起動部141、カーネル142、第1ブートローダ143、および第2ブートローダ144から与えられる各種命令を実行することによって、それらの機能に対応する処理を実行する処理部として機能する。図2はCPU11の機能構成を模式的に示している。CPU11は、サービス140の機能に対応するサービス処理部110、サービス測定・起動部141の機能に対応するサービス測定・起動処理部111、カーネル142の機能に対応するカーネル処理部112、第1ブートローダ143の機能に対応する第1ブートローダ処理部113、および第2ブートローダ144の機能に対応する第2ブートローダ処理部114として機能する。
本実施形態では、第1ブートローダ143の完全性の検証は端末装置1で行われる。しかし、サービス140、サービス測定・起動部141、およびカーネル142を含むOSの完全性の検証は、測定値と期待値との比較に時間を要するため、サーバ2で行われる。
図3は、本実施形態によるサーバ2の構成を示している。サーバ2は、通信部20(受信部)、検証部21、および記憶部22を有する。通信部20は、端末装置1と通信を行う通信回路を有する。検証部21は、端末装置1から受信された署名ファイルに基づいて、測定値が改竄されているか否かを確認し、さらに、署名ファイルに含まれる測定値と、記憶部22に格納されている期待値とを比較することにより、端末装置1におけるOSの完全性を検証する。記憶部22は、サービスプログラム120を測定したときに測定結果として期待される期待値(第1の期待値)と、サービス測定・起動プログラム121を測定したときに測定結果として期待される期待値(第2の期待値)と、カーネルプログラム122を測定したときに測定結果として期待される期待値(第3の期待値)と、検証部21が端末装置1におけるOSの完全性を検証した結果とを記憶する。サーバ2の完全性は予め保証されているものとする。
次に、本実施形態におけるOSのファイルシステムを説明する。図4は、フラッシュメモリ12上に構築されているOSのファイルシステムを示している。なお、図4は、端末装置1の起動時の状態を示している。「*」はルートディレクトリを示している。“[”と“]”で囲まれた文字列はディレクトリ(フォルダ)を示している。ルートディレクトリには、ディレクトリである/data、/proc、/sbin、/sys、/systemのほか、プログラムである/init、ファイルであるdefault.prop、init.goldfish.rc、init.rc、tcg-scan.conf等がある。ディレクトリにはファイルをマウント(格納)することが可能であり、例えば/sbinにはadbというファイルがマウントされている。/data、/proc、/sys、/systemには端末装置1の起動時にファイルはマウントされていない。
initは、カーネル142が最初に実行するプログラムである。initが処理を実行する順番は、init.rcに規定されている。init.rcには、サービスプログラム120を起動して初期化する従来の処理に対して、サービスプログラム120を測定する処理が追加されている。また、initがinit.rcに従ってサービスプログラム120を測定する際の条件はtcg-scan.confに規定されている。tcg-scan.confには、例えば測定するファイルのパス、測定対象となるエントリーの名称のマッチングパターン、エントリーのタイプ(ファイル、ディレクトリ、ノード、リンク、デバイス等)等が含まれる。
サービス測定・起動プログラム121は、少なくともinit、init.rc、tcg-scan.confを含んでいる。また、サービスプログラム120は、少なくとも/dataおよび/systemにマウントされるシステムファイルを含んでいる。上述したように、端末装置1の起動時に/dataおよび/systemにはファイルがマウントされていないため、サービスプログラム120を構成するシステムファイルが/dataおよび/systemにマウントされた後、サービスプログラム120が測定される。なお、カーネルプログラム122はファイルシステムに含まれていない。
次に、本実施形態による端末装置1の起動時の動作を説明する。図5および図6は端末装置1の起動時の動作を示している。図5はOSおよびブートローダの動作を示し、図6はTPM15の動作を示している。RAM14に読み込まれて起動した各プログラムに従ってCPU11が処理を行うことによって、図4に示す各処理が行われるが、以下では、RAM14上で起動した各プログラムを処理の主体として説明を行う。
端末装置1の電源が投入され、起動が指示されると、図5に示すように、第2ブートローダプログラム130がROM13からRAM14に読み込まれ、第2ブートローダ144が起動する(ステップS100)。第2ブートローダ144は、フラッシュメモリ12からRAM14に第1ブートローダプログラム123を読み込み、第1ブートローダプログラム123を測定する(ステップS105)。第1ブートローダプログラム123の測定値はTPM15へ出力される。
続いて、第2ブートローダ144はフラッシュメモリ12からRAM14に第1ブートローダプログラム123を読み込み、第1ブートローダ143を起動する(ステップS110)。起動した第1ブートローダ143は、TPM15から指示が出力されるのを待つ。
図6に示すように、TPM15の比較部151は、第1ブートローダプログラム123の測定値が入力されると、第1ブートローダプログラム123の期待値を記憶部150から読み出す。比較部151は、第1ブートローダプログラム123の測定値と期待値とを比較する(ステップS200)。
続いて、比較部151は、第1ブートローダプログラム123の測定値と期待値とが一致するか否かを判定する(ステップS205)。第1ブートローダプログラム123の測定値と期待値とが一致しなかった場合、比較部151は終了指示を出力し(ステップS235)、TPM15は処理を終了する。この場合、第1ブートローダ143の完全性が確認できなかったことになる。
また、第1ブートローダプログラム123の測定値と期待値とが一致した場合、比較部151は起動指示を出力する(ステップS210)。この場合、第1ブートローダ1434の完全性が確認できたことになる。続いて、署名部152は、TPM15に測定値が入力されるのを待つ。
図5に示すように、第1ブートローダ143は、TPM15から出力された指示の内容を判定する(ステップS115)。TPM15から出力された指示が終了指示であった場合、第1ブートローダ143は処理を終了する。この場合、端末装置1の起動は中止される。また、TPM15から出力された指示が起動指示であった場合、第1ブートローダ143は、圧縮されたカーネルプログラム122をフラッシュメモリ12から読み出して測定しながら、カーネルプログラム122をRAM14に展開(伸張)する。また、第1ブートローダ143は、圧縮されたサービス測定・起動プログラム121をフラッシュメモリ12から読み出して測定しながら、サービス測定・起動プログラム121をRAM14に展開する(ステップS120)。カーネルプログラム122およびサービス測定・起動プログラム121のそれぞれの測定値はTPM15へ出力される。
続いて、第1ブートローダ143は、圧縮されたカーネルプログラム122をフラッシュメモリ12から再度読み出してRAM14に展開し、カーネル142を起動する。また、第1ブートローダ143は、圧縮されたサービス測定・起動プログラム121をフラッシュメモリ12から再度読み出してRAM14に展開し、サービス測定・起動部141を起動する(ステップS125)。
続いて、起動したカーネル142が、前述したinitを起動することにより、サービス測定・起動部141を起動する(ステップS130)。起動したサービス測定・起動部141のinitは、init.rcで規定されている手順に従って処理を行う。本実施形態のinit.rcでは、サービスプログラム120を構成するシステムファイルのマウント、サービスプログラム120の測定、サービス140の起動の順に処理を行うことが規定されている。したがって、サービス測定・起動部141のinitは、圧縮されたサービスプログラム120をフラッシュメモリ12から読み出して展開し、サービスプログラム120を構成するシステムファイルをフラッシュメモリ12中の/dataと/systemにマウントする(ステップS135)。
続いて、サービス測定・起動部141のinitは、tcg-scan.confに従って、/dataと/systemにマウントされたサービスプログラム120をフラッシュメモリ12からRAM14に読み込み、サービスプログラム120を測定する(ステップS140)。ステップS140では、サービスプログラム120を構成するシステムファイルに含まれるファイル毎に測定が行われ、ファイル毎に測定値が算出される。各ファイルの測定値は1つのファイルにまとめられ、サービスプログラム120の測定値を記録したファイルとしてフラッシュメモリ12に格納される。
続いて、サービス測定・起動部141のinitは、/dataと/systemにマウントされたサービスプログラム120をフラッシュメモリ12からRAM14に読み込み、サービス140を起動する(ステップS145)。起動したサービス140は、通信に関する機能が起動した時点で、TPM15から指示が出力されるのを待つ。
図6に示すように、TPM15の署名部152は、比較部151から起動指示が出力された後、カーネルプログラム122の測定値が入力されると、この測定値と電子署名とを含む署名ファイルを生成し、フラッシュメモリ12に格納する(ステップS215)。この署名ファイルに含まれる電子署名は、カーネルプログラム122の測定値のハッシュ値を、TPM15が保持する秘密鍵で暗号化した情報である。署名ファイルの生成に使用される秘密鍵は、例えば記憶部150に格納されている。
続いて、署名部152は、サービス測定・起動プログラム121の測定値が入力されると、この測定値と電子署名とを含む署名ファイルを生成し、フラッシュメモリ12に格納する(ステップS220)。この署名ファイルに含まれる電子署名は、サービス測定・起動プログラム121の測定値のハッシュ値を、TPM15が保持する秘密鍵で暗号化した情報である。
続いて、署名部152は、サービスプログラム120の測定値を含むファイルをフラッシュメモリ12から読み出し、この測定値と電子署名とを含む署名ファイルを生成し、フラッシュメモリ12に格納する(ステップS220)。この署名ファイルに含まれる電子署名は、サービスプログラム120の測定値のハッシュ値を、TPM15が保持する秘密鍵で暗号化した情報である。
続いて、署名部152は、サービス140に署名ファイルの送信指示を出力し(ステップS230)、TPM15は処理を終了する。
図5に示すように、サービス140は、TPM15から署名ファイルの送信指示が出力されたか否かを判定する(ステップS150)。署名ファイルの送信指示が出力されていない場合、サービス140は、署名ファイルの送信指示が出力されるまで待つ。また、署名ファイルの送信指示が出力された場合、サービス140は、フラッシュメモリ12から署名ファイルを読み出して通信部10へ出力し、署名ファイルをサーバ2へ送信させる(ステップS225)。この署名ファイルは、カーネルプログラム122の測定値を含む署名ファイルと、サービス測定・起動プログラム121の測定値を含む署名ファイルと、サービスプログラム120の測定値を含む署名ファイルとからなる。署名ファイルは、これらの各プログラムの測定値と電子署名とを含む1つのファイルであってもよい。署名ファイルの送信後、サービス140は、端末装置1の起動に関する処理を完了し、起動中の処理を行う。
第1ブートローダプログラム123の書き換えは、必要に応じて、サービス140が起動した後に行われる。第1ブートローダプログラム123の書き換えが行われた直後に、第1ブートローダプログラム123の期待値が算出される。算出された期待値はTPM15へ出力され、TPM15の記憶部150に格納されている期待値が、TPM15に入力された期待値に更新される。第1ブートローダプログラム123の書き換えが失敗する可能性を想定して、以下のようにしてもよい。例えば、初期状態の第1ブートローダプログラム123がROM13に予め格納されており、TPM15の比較部151は、第1ブートローダプログラム123の測定値と期待値とが一致しなかったと判定した場合に、初期状態の第1ブートローダプログラム123を使用した起動の指示を出力する。第2ブートローダ144は、この起動指示に基づいて、ROM13からRAM14に初期状態の第1ブートローダプログラム123を読み込み、第1ブートローダ143を起動する。起動した第1ブートローダ143はステップS120の処理を行う。
次に、本実施形態によるサーバ2の動作を説明する。図7はサーバ2の動作を示している。
通信部20は端末装置1から署名ファイルを受信し、検証部21へ出力する(ステップS300)。検証部21は、署名ファイルに含まれている電子署名を検証する(ステップS305)。このとき、検証部21は、記憶部22から公開鍵を読み出し、署名ファイルに含まれている電子署名を公開鍵で復号し、得られたハッシュ値と、署名ファイルに含まれている測定値から算出したハッシュ値とが一致するか否かを確認する。両者が一致すれば、署名ファイルの内容が改竄されていないことが保証される。
サーバ2が有する公開鍵は、端末装置1のTPM15が有する秘密鍵と対になる鍵である。端末装置1の起動時に通信が可能になった時点で、署名ファイルとは別々に、あるいは署名ファイルと一緒に、公開鍵が端末装置1からサーバ2へ送信される。
署名ファイルの内容が改竄されていなければ、検証部21は、カーネルプログラム122の期待値を記憶部22から読み出し、署名ファイルに含まれるカーネルプログラム122の測定値と、記憶部22から読み出した期待値とを比較する(ステップS310)。続いて、検証部21は、サービス測定・起動プログラム121の期待値を記憶部22から読み出し、署名ファイルに含まれるサービス測定・起動プログラム121の測定値と、記憶部22から読み出した期待値とを比較する(ステップS315)。さらに、検証部21は、サービスプログラム120の期待値を記憶部22から読み出し、署名ファイルに含まれるサービスプログラム120の測定値と、記憶部22から読み出した期待値とを比較する(ステップS320)。サービスプログラム120の期待値は、サービスプログラム120を構成するシステムファイルに含まれるファイル毎の期待値からなる。
続いて、検証部21は、ステップS310,S315,S320の処理の結果に基づいて、端末装置1のOSが完全であるか否かを判定する(ステップS325)。ステップS310,S315,S320の全てにおいて、全てのファイルの測定値と期待値とが完全に一致した場合、端末装置1のOSが完全であると判定される。また、ステップS310,S315,S320の少なくともいずれかにおいて、いずれかのファイルの測定値と期待値とが一致しなかった場合、端末装置1のOSが完全でないと判定される。
端末装置1のOSが完全であると判定された場合、検証部21は、端末装置1のOSが完全であることを示す情報を生成し、端末装置1の識別情報(MACアドレスやTPM15のID等)と関連付けて記憶部22に記録する(ステップS330)。また、端末装置1のOSが完全でないと判定された場合、検証部21は、端末装置1のOSが完全でないことを示す情報を生成し、端末装置1の識別情報と関連付けて記憶部22に記録する(ステップS335)。ステップS330,S335で記憶部22に記録された情報を参照することにより、端末装置1が完全な状態で起動したのか否かを後から確認することができる。ステップS330,S335のいずれかの処理が終了すると、サーバ2は、端末装置1のOSの完全性を検証する処理を終了する。
本実施形態では、以下の変形が可能である。ステップS115の判定はステップS110の処理が行われる前に第2ブートローダ144によって行われてもよい。また、ステップS215,S220,S225の各処理が行われる順番は、図6に示す順番でなくてもよい。また、ステップS310,S315,S320の各処理が行われる順番は、図7に示す順番でなくてもよい。
上記の説明では、サービス測定・起動部141のinitがサービス測定・起動プログラム121およびカーネルプログラム122の測定を行っているが、サービス測定・起動部141のinitが測定用プログラムを実行し、その測定用プログラムがサービス測定・起動プログラム121およびカーネルプログラム122の測定を行ってもよい。この場合、サービス測定・起動プログラム121は測定用プログラムを含む。
上記の説明では、第2ブートローダ144が、圧縮されたサービス測定・起動プログラム121およびカーネルプログラム122の測定および展開を行っているが、第2ブートローダ144が、圧縮されたサービス測定・起動プログラム121およびカーネルプログラム122の測定を行い、カーネル142が起動した後、カーネル142が、圧縮されたサービス測定・起動プログラム121およびカーネルプログラム122の展開を行ってもよい。
上記の説明では、サービス測定・起動プログラム121およびカーネルプログラム122が分離しているが、両者が一体化されていてもよい。
上記の説明では、第1ブートローダプログラム123および第2ブートローダプログラム130が分離しているが、両者が一体化され、そのプログラムがROM13に格納されていてもよい。
次に、端末装置1をより高速に起動することができる理由を説明する。本実施形態では、サービス測定・起動部141のinitがサービスプログラム120の測定を行うことにより、ブートローダがサービスプログラム120の測定を行う場合よりも測定時間を短縮し、その結果、端末装置1をより高速に起動することができる。
カーネル142が起動する前、ブートローダはカーネル142によって提供されるファイルのオープン、ファイルのクローズ、スレッドの生成等の機能を使用することができない。サービスプログラム120を構成するシステムファイルの測定はファイル単位で行われるため、ブートローダがサービスプログラム120の測定を行うためにはブートローダがファイルを扱えるようにする必要がある。しかし、ブートローダにファイルのオープンやクローズを扱う機能を追加するとコードサイズが大きくなるので、その機能を追加する代わりにブートローダにファイルキャッシュ(ページキャッシュ)の機能を実装しないことが考えられる。
ファイルキャッシュの機能がないと、ファイルをオープンするたびに、ファイルシステムの最上位位置にあるルートディレクトリから、開くファイルがマウントされているディレクトリまでディレクトリの検索を行うためにデバイス(本実施形態ではフラッシュメモリ12)にアクセスする必要があり、ファイルのオープンに要する時間が長くなる。また、ファイルの先読み機能も実装されないことが考えられ、ファイルを読み込むためにデバイスにアクセスし、多くの待ち時間が発生する。さらに、L2キャッシュ(2次キャッシュ)のハンドリングが面倒であるため、L2キャッシュを無効にすることが考えられる。これにより、L1キャッシュ(1次キャッシュ)でのキャッシュミスによるミスペナルティが発生し、処理速度が低下する。
また、前述したように、ブートローダはシングルタスク/シングルスレッドで動作するため、複数のCPUコアが搭載されている場合でも1つのCPUコアしか使用することができない。
一方、サービス測定・起動部141のinitが起動したとき、カーネル142が起動しているので、サービス測定・起動部141のinitは、カーネル142によって提供されるファイルのオープン、ファイルのクローズ、スレッドの生成等の機能を使用することができる。これにより、サービス測定・起動部141のinitは、マルチタスク/マルチスレッドで動作することができ、測定対象のファイルの読み込みと測定とを並行的に行うことができる。また、ファイルキャッシュの機能により、開くファイルがマウントされているディレクトリの検索を行う際に同じディレクトリを繰り返し無駄に読み込む回数が減る。さらに、ファイルの先読み機能により、デバイスにアクセスする回数が減る。さらに、L2キャッシュを有効にすることにより、L1キャッシュでのキャッシュミスによるミスペナルティが減少する。
また、複数のCPUコアが搭載されている場合には、複数のスレッドのそれぞれにCPUコアを割り当てて測定を並行的に行うことができる。
以上のように、サービス測定・起動部141のinitがカーネル142の各種機能を使用することによって、サービスプログラム120の測定に要する時間を短縮し、その結果、端末装置1をより高速に起動することができる。
次に、本実施形態の完全性検証システムを適用した例を説明する。個人が所有している端末装置を会社に持ち込むBring Your Own Device(BYOD)が進んでいる。システム領域が完全である、つまり、マルウエア感染や社員による不正改造の影響を受けていない安全な端末装置であることを検証した後に端末装置を会社のネットワークに接続させる検疫サービスに対して、本実施形態の完全性検証システムを適用することが可能である。例えば、サーバ2は会社の管理サーバであり、端末装置1のOSが完全であることが確認できた場合のみ、端末装置1を会社のネットワークに接続させる。
また、銀行決済アプリケーションを利用する際に、端末装置1の完全性の確認を行うようにしてもよい。例えば、端末装置1に銀行決済アプリケーションがインストールされており、銀行決済アプリケーションが銀行のサーバに決済の要求を行った際に、銀行のサーバがサーバ2に端末装置1の完全性の確認を求める。サーバ2は、記憶部22に格納されている情報に基づいて、端末装置1のOSが完全であるか否かを確認し、確認結果を銀行のサーバに通知する。銀行のサーバは、端末装置1のOSが完全であることが確認できた場合のみ、決済の処理を行う。あるいは、サーバ2が銀行のサーバであってもよい。
上述したように、本実施形態によれば、端末装置1の起動時にサーバ2が端末装置1のOSの完全性を検証することができる。また、カーネル142による制御に従って、サービス測定・起動部141がサービスプログラム120を測定することによって、端末装置1をより高速に起動することができる。
また、サービス140の初期化を行う初期化プログラム(init)に対してサービスプログラム120の測定を行う機能を追加してサービス測定・起動プログラム121を構成することによって、サービス測定・起動プログラム121の実装が容易になる。
以上、図面を参照して本発明の実施形態について詳述してきたが、具体的な構成は上記の実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含まれる。本実施形態では、測定値および期待値にハッシュ値を用いているが、不可逆な値であれば、ハッシュ値の代わりに用いることが可能である。また、本実施形態では、端末装置1にOSとしてAndroid(登録商標)が搭載されているが、端末装置のディスク領域(フラッシュメモリやハードディスクドライブ等の領域)において、OSのシステムファイルが保存されるシステム領域と、ユーザが任意にファイルを追加することが可能なユーザ領域とが分離していればよく、他のOSが端末装置1に搭載されていてもよい。
1 端末装置、2 サーバ、10,20 通信部、11 CPU、12 RAM、13 フラッシュメモリ、14 ROM、15 TPM、21 検証部、22,150 記憶部、110 サービス処理部、111 サービス測定・起動処理部、112 カーネル処理部、113 第1ブートローダ処理部、114 第2ブートローダ処理部、120 サービスプログラム、121 サービス測定・起動プログラム、122 カーネルプログラム、123 第1ブートローダプログラム、130 第2ブートローダプログラム、140 サービス、141 サービス測定・起動部、142 カーネル、143 第1ブートローダ、144 第2ブートローダ、151 比較部、152 署名部

Claims (7)

  1. OS(Operating System)が提供するサービスの機能を実現するためのサービスプログラムと、
    カーネルによる制御に従って、前記サービスプログラムを測定し、測定結果である第1の測定値を生成した後、前記サービスを起動するサービス測定・起動部の機能を実現するためのサービス測定・起動プログラムと、
    前記サービス測定・起動部を起動し、前記サービス測定・起動部によって行われる処理を制御する前記カーネルの機能を実現するためのカーネルプログラムと、
    を含むOSプログラムを記憶する第1の記憶部と、
    前記サービス測定・起動プログラムを測定し、測定結果である第2の測定値を生成すると共に、前記カーネルプログラムを測定し、測定結果である第3の測定値を生成した後、前記カーネルを起動するブートローダの機能を実現するためのブートローダプログラムを記憶する第2の記憶部と、
    前記OSプログラムおよび前記ブートローダプログラムに従って処理を行う処理部と、
    前記サービスプログラムを測定したときに期待される測定結果である第1の期待値と前記第1の測定値とを比較し、前記サービス測定・起動プログラムを測定したときに期待される測定結果である第2の期待値と前記第2の測定値とを比較し、前記カーネルプログラムを測定したときに期待される測定結果である第3の期待値と前記第3の測定値とを比較することにより前記OSの完全性を検証するサーバへ前記第1の測定値、前記第2の測定値、および前記第3の測定値を送信する送信部と、
    を備えたことを特徴とする端末装置。
  2. 前記サービス測定・起動プログラムを測定し、測定結果である第2の測定値を生成すると共に、前記カーネルプログラムを測定し、測定結果である第3の測定値を生成した後、前記カーネルを起動する第1のブートローダの機能を実現するための、書き換え可能な第1のブートローダプログラムを記憶する前記第2の記憶部と、
    前記第1のブートローダプログラムを測定し、測定結果である第4の測定値を生成した後、前記第1のブートローダを起動する第2のブートローダの機能を実現するための、書き換え不可能な第2のブートローダプログラムを記憶する第3の記憶部と、
    前記第1のブートローダプログラムを測定したときに期待される測定結果である第4の期待値と前記第4の測定値とを比較することにより前記第1のブートローダプログラムの完全性を検証する検証部と、
    を有することを特徴とする請求項1に記載の端末装置。
  3. 前記検証部は、耐タンパ性を有するTPM(Trusted Platform Module)であって、
    前記第4の期待値を記憶する記憶部と、
    前記第4の期待値と前記第4の測定値とを比較することにより前記第1のブートローダプログラムの完全性を検証する比較部と、
    を有することを特徴とする請求項2に記載の端末装置。
  4. 前記TPMはさらに、前記第1の測定値、前記第2の測定値、および前記第3の測定値の電子署名を生成する署名部を有し、
    前記送信部は、前記サーバへ、前記第1の測定値、前記第2の測定値、前記第3の測定値、および前記電子署名を送信する
    ことを特徴とする請求項3に記載の端末装置。
  5. 前記サービス測定・起動プログラムは、起動した前記カーネルが最初に実行するプログラムであることを特徴とする請求項1〜請求項4のいずれか一項に記載の端末装置。
  6. 端末装置およびサーバを備えた完全性検証システムであって、
    前記端末装置は、
    OS(Operating System)が提供するサービスの機能を実現するためのサービスプログラムと、
    カーネルによる制御に従って、前記サービスプログラムを測定し、測定結果である第1の測定値を生成した後、前記サービスを起動するサービス測定・起動部の機能を実現するためのサービス測定・起動プログラムと、
    前記サービス測定・起動部を起動し、前記サービス測定・起動部によって行われる処理を制御する前記カーネルの機能を実現するためのカーネルプログラムと、
    を含むOSプログラムを記憶する第1の記憶部と、
    前記サービス測定・起動プログラムを測定し、測定結果である第2の測定値を生成すると共に、前記カーネルプログラムを測定し、測定結果である第3の測定値を生成した後、前記カーネルを起動するブートローダの機能を実現するためのブートローダプログラムを記憶する第2の記憶部と、
    前記OSプログラムおよび前記ブートローダプログラムに従って処理を行う処理部と、
    前記サーバへ前記第1の測定値、前記第2の測定値、および前記第3の測定値を送信する送信部と、
    を有し、
    前記サーバは、
    前記サービスプログラムを測定したときに期待される測定結果である第1の期待値、前記サービス測定・起動プログラムを測定したときに期待される測定結果である第2の期待値、および前記カーネルプログラムを測定したときに期待される測定結果である第3の期待値を記憶する第2の記憶部と、
    前記端末装置から前記第1の測定値、前記第2の測定値、および第3の測定値を受信する受信部と、
    前記第1の期待値と前記第1の測定値とを比較し、前記第2の期待値と前記第2の測定値とを比較し、前記第3の期待値と前記第3の測定値とを比較することにより、前記OSの完全性を検証する検証部と、
    を有することを特徴とする完全性検証システム。
  7. OS(Operating System)が提供するサービスの機能を実現するためのサービスプログラムと、
    カーネルによる制御に従って、前記サービスプログラムを測定し、測定結果である第1の測定値を生成した後、前記サービスを起動するサービス測定・起動部の機能を実現するためのサービス測定・起動プログラムと、
    前記サービス測定・起動部を起動し、前記サービス測定・起動部によって行われる処理を制御する前記カーネルの機能を実現するためのカーネルプログラムと、
    を含むOSプログラムを記憶する第1の記憶部と、
    前記サービス測定・起動プログラムを測定し、測定結果である第2の測定値を生成すると共に、前記カーネルプログラムを測定し、測定結果である第3の測定値を生成した後、前記カーネルを起動するブートローダの機能を実現するためのブートローダプログラムを記憶する第2の記憶部と、
    前記OSプログラムおよび前記ブートローダプログラムに従って処理を行う処理部と、
    前記サービスプログラムを測定したときに期待される測定結果である第1の期待値と前記第1の測定値とを比較し、前記サービス測定・起動プログラムを測定したときに期待される測定結果である第2の期待値と前記第2の測定値とを比較し、前記カーネルプログラムを測定したときに期待される測定結果である第3の期待値と前記第3の測定値とを比較することにより前記OSの完全性を検証するサーバへ前記第1の測定値、前記第2の測定値、および前記第3の測定値を送信する送信部と、
    としてコンピュータを機能させるためのプログラム。
JP2012249108A 2012-11-13 2012-11-13 端末装置、完全性検証システム、およびプログラム Active JP5986897B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012249108A JP5986897B2 (ja) 2012-11-13 2012-11-13 端末装置、完全性検証システム、およびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012249108A JP5986897B2 (ja) 2012-11-13 2012-11-13 端末装置、完全性検証システム、およびプログラム

Publications (2)

Publication Number Publication Date
JP2014098951A JP2014098951A (ja) 2014-05-29
JP5986897B2 true JP5986897B2 (ja) 2016-09-06

Family

ID=50940940

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012249108A Active JP5986897B2 (ja) 2012-11-13 2012-11-13 端末装置、完全性検証システム、およびプログラム

Country Status (1)

Country Link
JP (1) JP5986897B2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6257460B2 (ja) * 2014-06-25 2018-01-10 Kddi株式会社 遠隔完全性検証システム、方法及びプログラム
EP3040896A1 (en) * 2014-12-30 2016-07-06 Gemalto Sa Secure element
JP6675227B2 (ja) * 2016-02-26 2020-04-01 キヤノン株式会社 情報処理装置、情報処理システム、情報処理方法、及びプログラム
US10757087B2 (en) * 2018-01-02 2020-08-25 Winbond Electronics Corporation Secure client authentication based on conditional provisioning of code signature
JP7152920B2 (ja) * 2018-09-28 2022-10-13 キヤノン株式会社 情報処理装置とその制御方法、及びプログラム
JP7313395B2 (ja) * 2021-04-21 2023-07-24 キヤノン株式会社 情報処理装置とその制御方法、及びプログラム

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004265286A (ja) * 2003-03-04 2004-09-24 Fujitsu Ltd 環境に応じて選択されたセキュリティ・ポリシーに従うモバイル機器の管理
JP4950195B2 (ja) * 2006-07-03 2012-06-13 パナソニック株式会社 証明装置、検証装置、検証システム、コンピュータプログラム及び集積回路
JP5001123B2 (ja) * 2006-12-07 2012-08-15 パナソニック株式会社 記録デバイス、集積回路、アクセス制御方法、プログラム記録媒体
JP5085287B2 (ja) * 2007-11-21 2012-11-28 株式会社リコー 情報処理装置、正当性検証方法および正当性検証プログラム

Also Published As

Publication number Publication date
JP2014098951A (ja) 2014-05-29

Similar Documents

Publication Publication Date Title
US11687645B2 (en) Security control method and computer system
CN103718165B (zh) Bios闪存攻击保护和通知
CN109669734B (zh) 用于启动设备的方法和装置
JP5986897B2 (ja) 端末装置、完全性検証システム、およびプログラム
US9087188B2 (en) Providing authenticated anti-virus agents a direct access to scan memory
EP2854066B1 (en) System and method for firmware integrity verification using multiple keys and OTP memory
JP6319609B2 (ja) 信頼できるカーネル起動方法および装置
WO2020063001A1 (zh) 基本输入输出***固件的管理方法、装置和服务器
JP5970141B2 (ja) コンピュータでソフトウェア・モジュールを実行するための方法、ブートローダ、ユーザ信頼デバイス、およびシステム
RU2481616C2 (ru) Способ и устройство для загрузки программного обеспечения
KR20160110504A (ko) 컴퓨팅 디바이스의 초기화 트레이스
US20220382874A1 (en) Secure computation environment
CN109992966B (zh) 存储器子***、安全客户端装置及其认证方法
CN108595950A (zh) 一种结合远程认证的sgx安全增强方法
US10019577B2 (en) Hardware hardened advanced threat protection
US20160239364A1 (en) Method of verifying integrity of program using hash
Muramoto et al. Improving Hardware Security on Talos II Architecture Through Boot Image Encryption
US7913074B2 (en) Securely launching encrypted operating systems
JP2005182509A (ja) 計算機システム並びにデータ改竄検出方法
US20240054001A1 (en) Data manipulation detection through a verification operating system
CN115859225A (zh) 加固方法、注册方法、运行方法、电子设备和存储介质
KR20110048014A (ko) 컴퓨터 플랫폼에서의 방법 및 장치

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150806

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20150810

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160616

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160712

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160808

R150 Certificate of patent or registration of utility model

Ref document number: 5986897

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150