JP6494373B2 - 情報処理装置、情報処理装置の制御方法、およびコンピュータプログラム - Google Patents

情報処理装置、情報処理装置の制御方法、およびコンピュータプログラム Download PDF

Info

Publication number
JP6494373B2
JP6494373B2 JP2015072865A JP2015072865A JP6494373B2 JP 6494373 B2 JP6494373 B2 JP 6494373B2 JP 2015072865 A JP2015072865 A JP 2015072865A JP 2015072865 A JP2015072865 A JP 2015072865A JP 6494373 B2 JP6494373 B2 JP 6494373B2
Authority
JP
Japan
Prior art keywords
information processing
processing apparatus
secure chip
pcr
initialized
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
JP2015072865A
Other languages
English (en)
Other versions
JP2016192159A (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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2015072865A priority Critical patent/JP6494373B2/ja
Priority to CN201610165030.7A priority patent/CN106022136B/zh
Priority to EP16162234.5A priority patent/EP3076324B1/en
Priority to KR1020160035058A priority patent/KR102062073B1/ko
Priority to US15/082,891 priority patent/US10482256B2/en
Publication of JP2016192159A publication Critical patent/JP2016192159A/ja
Application granted granted Critical
Publication of JP6494373B2 publication Critical patent/JP6494373B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/81Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer by operating on the power supply, e.g. enabling or disabling power-on, sleep or resume operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/629Protecting access to data via a platform, e.g. using keys or access control rules to features or functions of an application
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4403Processor initialisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/034Test or assess a computer or a system

Description

本発明は、セキュアチップを有する情報処理装置、情報処理装置の制御方法、およびコンピュータプログラムに関するものである。
セキュアチップを用いて、コンピュータ上で動作するコンピュータプログラムの改竄検知を行うことが提案されている。一般的なセキュアチップとしては、揮発性メモリおよび不揮発性メモリを有するTPM(Trusted Platform Module)がある。
例えば、コンピュータの起動後、CPUが実行したコンピュータプログラムのハッシュ値をTPM内の揮発性メモリに順次登録しておく。コンピュータプログラムには、ブートローダ、オペレーティングシステム、アプリケーションソフトウェアなどが含まれる。そして、登録後、実行中のコンピュータプログラムから再計算されたハッシュ値と、TPM内の揮発性メモリに登録されたハッシュ値とを比較することにより、コンピュータプログラムが改竄されたか否かを検知することが出来る。
また、省電力モード等の休止状態からの復帰時に、当該コンピュータ内のメモリ内データの改竄検知を行う技術も提案されている。
省電力モードにおける休止状態に入ると、TPMへの電源供給が停止されるため、TPM内の揮発性メモリに登録したハッシュ値は消失してしまう。よって、コンピュータが休止状態から復帰した時には、すでにTPM内の揮発性メモリに登録したハッシュ値は消失してしまっている。ハッシュ値が消失してしまっていると、改竄検知を行うことが出来ないため、TPMでは以下のような対処がなされている。
すなわち、TPMは休止状態へ移行する前に、TPM内の揮発性メモリに登録されたハッシュ値を、不揮発性メモリへ退避させる。退避後、電源供給を停止する。そして、休止状態からの復帰後、不揮発性メモリへ退避したハッシュ値を揮発性メモリに復元する。
特許文献1には上記ハッシュ値の退避に関する技術が開示されている。具体的には、まず休止状態へ移行する前のメモリのスナップショットのハッシュ値を、TPM内の不揮発性メモリに格納しておく。そして、休止状態からの復帰時に、スナップショットから再計算したハッシュ値と不揮発性メモリに格納に格納されているハッシュ値とを比較するというものである。
特開2009−187134号公報
しかしながら、TPMが揮発性メモリに登録されたハッシュ値を不揮発性メモリに退避した後、CPUがアプリケーションソフトウェアを実行した場合、当該アプリケーションソフトウェアのハッシュ値が、再度、揮発性メモリに登録されてしまうことになる。
つまり、この時点で不揮発性メモリと揮発性メモリとの内容が一致しなくなってしまう。このメモリ内容の不一致の発生を防止するために、TPMでは、揮発性メモリの内容を不揮発性メモリに退避した後に揮発性メモリにハッシュ値が登録された場合、不揮発性メモリの内容を初期化するようにしている。
休止状態への移行前に不揮発性メモリが初期化された場合、休止状態からの復帰時には揮発性メモリには初期値が復元されることになる。この状態では、既に起動しているアプリケーションソフトウェアが改竄されたものであるか否かを検知することは出来ない。また、新たに起動するアプリケーションソフトウェアのハッシュ値を登録しようとすると、ブートローダやオペレーティングシステムなどの他のソフトウェアのハッシュ値が登録されていない状態でハッシュ値が登録されてしまう。ブートローダやオペレーティングシステムなどの他のソフトウェアのハッシュ値が登録されていない状態で改竄検知を行うと、当然ながら改竄されたものとみなされてしまう。
本発明は、上記課題を鑑みてなされたものであり、セキュアチップを有する情報処理装置が休止状態から復帰した後、当該セキュアチップにアプリケーションソフトウェアのハッシュ値を登録する際の不具合を防止することを目的とする。
上記課題を解決するため、本発明におけるセキュアチップを有する情報処理装置は、前記情報処理装置が休止状態から復帰したか否かを判定する判定手段と、前記判定手段により休止状態から復帰したと判定された場合、前記セキュアチップが初期化されているか否かを、アプリケーションソフトウェアを起動する前に検知する検知手段と、前記検知手段により前記セキュアチップが初期化されていることが検知された場合、初期化されている前記セキュアチップに、前記アプリケーションソフトウェアのハッシュ値が登録されないように前記情報処理装置の動作を制御する制御手段と、を有することを特徴とする。
本発明によれば、セキュアチップを有する情報処理装置が休止状態から復帰した後、当該セキュアチップにアプリケーションソフトウェアのハッシュ値を登録する際の不具合を防止することが出来る。
第一の実施形態における情報処理装置を説明する図である。 第一の実施形態における起動処理を説明する図である。 第一の実施形態における休止状態移行処理を説明する図である。 第一の実施形態におけるシステム復帰処理を説明する図である。 第二の実施形態におけるシステム復帰処理を説明する図である。 第四の実施形態におけるシステム復帰処理を説明する図である。 第五の実施形態におけるシステム復帰処理を説明する図である。 データ利用制限処理、及びデータ利用処理を説明する図である。 改竄検知処理を説明する図である。 TPM利用処理を説明する図である。 第一の実施形態における休止状態移行処理を説明する図である。
〔実施形態〕
(第一の実施形態)
(情報処理装置のハードウェア構成)
はじめに、図1を用いて、本実施の形態に適応可能な情報処理装置のハードウェア構成について説明する。図1は本実施形態に係る情報処理装置のハードウェアの基本構成を示す図である。同図において、情報処理装置11は、例えば一般に普及しているパーソナルコンピュータ・情報携帯端末、或いは画像データのコピー、スキャン、プリント等を実行可能な画像処理装置、或いはデジタル写真を撮影可能な撮像装置などである。
図1に示すように、本実施形態における情報処理装置11は、ROM12、HDD14、RAM110、CPU111、TPM112から構成される。
ROM12は、物理的、或いは論理的な書き換えが不可能な不揮発性メモリであり、BIOS13、不図示の各種プログラム、及びデータを記憶可能な補助記憶部である。BIOS13は情報処理装置11全体を制御するプログラムである。また、BIOS13は、情報処理装置11に電源が投入された際、情報処理装置内部で最初に起動されるコンピュータプログラムである。
HDD14は、ブートローダ15、OS16、アプリ17、アプリ18、アプリ19、及び種々のデータを記憶可能な補助記憶部である。ここで、ブートローダ15は、次に起動すべきOSを特定・起動するといった制御をする。OS16は、種々のアプリのロード、RAM110のメモリ管理、及び不図示のキーボードや画面出力などの入出力機能を制御するプログラムである。アプリ17、アプリ18、及びアプリ19は、アドレス帳、メール、ワードプロセッサ、表計算、データベース管理、ネットワークブラウジングなどである。他にも、映像・音声再生、印刷、通信など、情報処理装置11の利用者が実行したい作業を機能として提供するプログラム(アプリケーションソフトウェア)である。本実施形態においては、情報処理装置11には3つのアプリが搭載されているものとして説明するが、本実施形態はこれに限定されることなく、任意数のアプリを搭載してもよい。
RAM110は揮発性メモリであり、CPU111にて処理を行うために一時的にプログラムや各種データ(動作状態)を一時的に格納しておく主記憶部である。
CPU111は、情報処理装置11内の各部の動作を制御、或いはRAM110にロードされたプログラムを実行することのできる電子回路である。
TPM112(Trusted Platform Module)は、耐タンパー性を有するセキュアチップである。耐タンパー性とは、外部からの解析を困難にすると共に、外部から解析しようとした場合に内部に記憶されているプログラム、或いはデータを破壊することにより自己防衛する特性である。また、TPM112は、制御部113、NvRAM114、及びPCR115から構成されている。
制御部113は、後述する様なPCR115へのハッシュ値登録、デジタル署名生成、暗号復号などを実行する。NvRAM114は不揮発性メモリであり、後述するハッシュ値の他、デジタル署名の生成に必要な秘密鍵、暗号復号に必要な暗号鍵などを記憶する。PCR115は揮発性メモリ(レジスタ)であり、情報処理装置11内で実行されたプログラムのハッシュ値に基づいた値を記憶する。尚、以降の説明においては、プログラムとは、前述したBIOS13、ブートローダ15、OS16、アプリ17、アプリ18、アプリ19の何れかを示すものとする。
ここで、本実施形態における情報処理装置11は、後述する休止状態では、TPM112への電源供給は停止されるものとする。即ち、TPM112内のNvRAM114は不揮発性メモリであるため、その内部データは休止状態中も保持される。一方、PCR115は揮発性メモリであるため、情報処理装置11が休止状態となった際に、その内部情報は破棄される(初期値に初期化される)。即ち、休止状態に移行する前にPCR115で保持されていたデータは、休止状態から復帰した後にPCR115で保持されないことに留意されたい。
以上、本実施形態における情報処理装置のハードウェア構成について説明した。
(起動処理フロー)
次に、図2(A)を用いて、本実施形態における起動処理の詳細を説明する。以下のフローは、前述した情報処理装置11内で実行され、各ステップは該当するプログラム及びそれを実行するCPU111によって実現する。
図2(A)は、本実施形態に適応可能な起動処理の流れを示すフローチャートである。
まず、情報処理装置11に電源が投入されると、ステップ21において、まずBIOS13が起動される。BIOS13は、ステップ22において、BIOS13自身のハッシュ値を計測して、計測したハッシュ値をTPM112に登録する。
ここで、本実施形態における計測処理、及び登録処理について説明する。計測処理とは、計測対象であるプログラムコードのハッシュ値を算出することである。本実施形態においては、ハッシュ値を算出するためのハッシュ関数は特に限定することなく、SHA1、SHA256、SHA512等の公知の種々のハッシュ関数を適応可能である。或いは、計測対象となるプログラムを一意に識別可能な特徴量を算出可能な関数であれば、任意の関数を適応可能である。
一方、登録処理とは、計測処理によって算出されたハッシュ値を、TPM112に送信し、TPM112の内部で次の式に従って算出した値をPCR115に記録する処理である。
DATA_i+1=H(DATA_i|INPUT) (式1)
ここで、INPUTはTPM112の外部から入力されたハッシュ値である。DATA_iはTPM112に登録する時点で、既にPCR115に記録されている値である。また、「x|y」は値xと値yの連結処理を示す。更に、DATA_i+1はTPM112の外部から値INPUTが入力された場合に算出される結果である。即ち、TPM112にINPUTが入力された場合に、結果として、DATA_i+1がTPM112内のPCR115に記録されることになる。
ここで、本実施形態においては、i=0の場合のPCRの初期値(DATA_0)は「0」であるものとする。しかしながら、本発明はこれに限定されることなく、PCRの初期値は「0」以外の任意の定数であっても良い。
また、本実施形態においては、PCR115は5つの記憶領域から構成されており、夫々の記憶領域をIDで識別できるものとする。図2(B)に、本実施形態におけるPCRの構成を示す。図2(B)の29に示す様に、本実施形態におけるPCRは、ID1〜5で識別できる5つの領域を備える。尚、本実施形態においては、PCRは5つの領域を備えるものとして説明するが、本発明はこれに限定することなく、任意の領域数を備える様な構成も可能である。
図2(B)の29は、情報処理装置11の起動前のPCRの状態を示している。即ち、前述したように初期値「0」が各PCRに記憶されている。一方、図2(B)の211は、ステップ22におけるBIOS計測・登録処理後のPCRの状態を示している。211に示す様に、BIOSのハッシュ値をINPUTとして、式1に基づいてDATA_1が算出され、その結果がH1としてPCR1に記録される。ここで、PCR1はID=1のPCRの記憶領域と示す。以降の説明では、PCRn(n=1〜5)と記載した場合には、ID=nのPCRの記憶領域を示すものとする。
図2(A)に戻って説明を続ける。BIOS13は、ステップ22に続いて、ステップ23においてブートローダ15のハッシュ値を計測して、計測したハッシュ値をTPM112に登録する。ステップ23におけるブートローダの計測・登録処理は、前述したステップ22におけるBIOSの計測・登録処理と同様であるため、詳細な説明は省略する。ステップ23は、ブートローダ15のハッシュ値をINPUTとして、式1に基づいて算出された値をPCR2にH2として登録する。図2(B)の213に、ステップ23におけるブートローダ計測・登録後のPCRの状態を示す。BIOS13は、ステップ23の後、ステップ24においてブートローダ15を起動する。
続いて、ブートローダ15は、ステップ25において、OS16のハッシュ値を計測して、計測したハッシュ値をTPM112に登録する。ステップ25におけるOSの計測・登録処理は、前述したステップ22、及びステップ23と同様であるため、詳細な説明は省略する。ステップ25は、OS16のハッシュ値をINPUTとして、式1に基づいて算出された値をPCR3にH3として登録する。図2(B)の215に、ステップ25におけるOS計測・登録後のPCRの状態を示す。
ブートローダ15は、ステップ25の後、ステップ26においてOSを起動する。OS16は、ステップ27において、アプリ17のハッシュ値を計測して、計測したハッシュ値をTPM112に登録する。ステップ27におけるアプリの計測・登録処理は前述した計測・登録処理と同様であるため、詳細な説明は省略する。ステップ27は、アプリ17のハッシュ値をINPUTとして、式1に基づいて算出された値をPCR4にH4として登録する。図2(B)の217に、ステップ27におけるアプリの計測・登録後のPCRの状態を示す。
尚、本実施形態では、起動処理において、1つのアプリ17だけを起動するものとして説明するが、本実施形態はこれに限定されることなく、任意数のアプリを起動するようにしても良い。
OS16は、ステップ27の後、ステップ28においてアプリ17を起動する。
以上、本実施形態における起動処理のフローについて説明した。以上説明した様に、情報処理装置11に電源が投入されると、BIOS13、ブートローダ15、OS16、及びアプリ17の順にプログラムが起動する。そして、一連の起動処理の中で、各プログラムのハッシュ値が順次PCRに記録され、情報処理装置11の起動処理が完了すると、図2(B)の217に示す様なPCRの状態となる。即ち、起動処理が完了した時点では、情報処理装置11の内部で実行している全てのプログラムのハッシュ値がPCRに記録されていることになる。
尚、図2(B)の210、212、214、216、及び218には、TPM112内のNvRAM114の状態を示している。本実施形態においては、NvRAM114もPCR115と同様に、5つの記憶領域から構成されており、夫々の記憶領域をIDで識別できるものとする。尚、本実施形態においては、NvRAMは5つの領域を備えるものとして説明するが、本発明はこれに限定することなく、任意の領域数を備える様な構成も可能である。本実施形態においては、起動処理の過程で、NvRAM114には如何なる値も記録されないため、図2(B)の210、212、214、216、及び218には、初期値「0」が登録され続けていることになる。
以上説明した起動処理によって、PCR115に登録されたハッシュ値が、後述するデータ利用制限処理や改竄検知処理で利用されることになる。
(休止状態移行処理)
次に、図3(A)を用いて、本実施形態における休止状態移行処理の詳細を説明する。以下のフローは、前述した情報処理装置11内で実行され、各ステップは該当するプログラム及びそれを実行するCPU111によって実現する。
図3(A)は、本実施形態に適応可能な起動処理の流れを示すフローチャートである。
情報処理装置11の利用者が、不図示のキーボード、マウス、或いはボタンなどを用いて、情報処理装置11に対して休止状態移行処理の実行を指示した際に、休止状態移行処理が開始される。或いは、情報処理装置11に対する操作が、所定時間発生しなかった場合に、情報処理装置11が自動的に休止状態移行処理を開始するようにしても良い。
休止状態移行処理が開始されると、ステップ31において、TPM112内のPCR115内の値がNvRAM114に退避される。ステップ31における処理の詳細を、図3(B)を用いて説明する。図3(B)の35、及び36は夫々、ステップ31におけるPCR退避前のPCR115、NvRAM114の状態を示している。前述した、図2(B)における217、及び218と同様の状態であると理解しやすい。ステップ31は、PCR115に保持されているハッシュ値をNvRAM114にコピーする。結果として、PCR退避後に、NvRAM114は図3(B)38に示す様な状態となる。一方、ステップ31によってPCR115の内部状態は変化しない。よって図3(B)の37は、35は同じ状態が保たれる。
ステップ31におけるPCR退避処理後、ステップ32において、情報処理装置11は休止状態となる。本実施形態においては、休止状態において、情報処理装置11内のRAM110への電源供給は継続されるが、TPM112の電源供給は停止される。前述した様に、TPM112内のPCR115は揮発性メモリであるため、ステップ32において情報処理装置11が休止状態になると、PCR115内のハッシュ値は破棄され、初期値「0」に初期化される。図3(B)の39は、休止状態におけるPCR115の状態を示している。休止状態においては、TPM112には電源供給が停止されるため、PCR115は初期値「0」に初期化されていることがわかる。
一方、TPM112内のNvRAM114は不揮発性メモリであるため、ステップ32において、たとえ情報処理装置11が休止状態になっても、NvRAM114内のハッシュ値は保持され続ける。図3(B)の310は、休止状態におけるNvRAM114の状態を示している。
本実施形態では、後述するシステム復帰処理において、システム復帰状態か否かを判定するために、情報処理装置11が休止状態であることを示すフラグを、HDD14に記録しておく。
以上、本実施形態における休止状態移行処理について説明した。
尚、図3(A)に示した休止状態移行処理は、ステップ31におけるNvRAM114へのPCR退避処理の直後に、ステップ32において休止状態に移行するというフローであった。しかしながら、本発明はこれに限定されることなく、ステップ31におけるNvRAM114へのPCR退避処理後に、アプリが起動するようなことも想定され得る。これは、本来想定していないが、実行優先度が高いアプリの場合や、システムの割り込み等により、意図せずしてアプリが起動する場合に起こり得る。或いは、マルウェアが意図的にステップ31におけるPCR退避後に、起動する場合もあり得る。
以降では、図3(C)を用いて、ステップ31におけるNvRAM114へのPCR退避処理後に、アプリが起動する場合の休止状態移行処理について説明する。以下のフローは、前述した情報処理装置11内で実行され、各ステップは該当するプログラム及びそれを実行するCPU111によって実現する。
図3(C)は、本実施形態に適応可能な起動処理の流れを示すフローチャートである。図3(A)と図3(C)とで同じ処理を示すステップには、同じ番号を付与するものとし、詳細な説明は省略するものとする。また、図3(D)は、一連の休止状態移行処理におけるPCR115、及びNvRAM114の状態の変化を説明する図である。図3(B)と図3(D)とで同じ状態を示す場合には、同じ番号を付与するものとし、詳細な説明は省略するものとする。
図3(C)に示す様に、ステップ31におけるNvRAM114へのPCR退避処理後、ステップ33はアプリ18の計測・登録処理を実行する。ステップ33は、アプリ18のハッシュ値をINPUTとして、式1に基づいて算出された値をPCR5にH5として登録する。アプリ18の計測・登録処理後、ステップ34がアプリ18を実行する。
ここで、図3(D)の311に、ステップ33におけるアプリ18の計測・登録処理後のPCRの状態を示す。この時点で、NvRAM114の状態38と、アプリ18の計測・登録処理を実行した後の状態311とでPCR5の値が異なっていることに留意されたい。詳細は後述するシステム復帰処理において説明するが、この段階でNvRAM114に退避しているハッシュ値(状態38)が、システム復帰後にPCR115に復元されることになる。すると、休止状態になる前のPCR115の状態(状態311)と、休止状態から復帰した後のPCR115の状態(状態38)が一致しない。即ち、ステップ34が実行したアプリ18のハッシュ値が、休止状態から復帰した後のPCR115に反映されないことになる。
これを避けるため、本実施形態においては、ステップ35において、NvRAM114を初期化するようにする。ステップ35においてNvRAM114を初期値「0」に初期化した後のNvRAM114の状態を図3(D)の312に示す。
そして、ステップ35におけるNvRAM114の初期化後、ステップ32において、情報処理装置11を休止状態に移行するようにする。休止状態に移行後の、PCR115、及びNvRAM114の状態を、夫々図3(D)の313、及び314に示す。TPM112への電源供給が停止されるため、不揮発性メモリであるPCR115は初期化される。一方、NvRAM114は、ステップ35において初期化された状態が、引き続き継続する。
以上説明した様に、本実施形態において休止状態である情報処理装置11のPCR115は、必ず初期値となっている。一方、NvRAM114は、図3(B)の状態310の様にハッシュ値が記録されているか、或いは図3(B)の状態314の様に初期化されているかの何れかとなる。
また、休止状態への移行処理に入る際に、PCR退避後にアプリの実行があったか否かの判定をしても良い。図11は、PCR退避後にアプリの実行があったか否かの判定を行うフローを示した図である。図に示す通り、PCR退避後にアプリの実行があった場合、休止状態に入ることを防止し、ユーザに対してモニタ表示などでアラートなどの報知を行うようにしている。このようにすることで、NvRAMが初期化された状態で休止状態に移行してしまうことを防止することが出来る。
以上、本実施形態における休止状態移行処理について説明した。
(システム復帰処理)
次に、図4(A)を用いて、本実施形態におけるシステム復帰処理の詳細を説明する。以下のフローは、前述した情報処理装置11内で実行され、各ステップは該当するプログラム及びそれを実行するCPU111によって実現する。
図4(A)は、本実施形態に適応可能な起動処理の流れを示すフローチャートである。図3(A)、及び(C)を用いて説明した休止状態移行処理によって休止状態となっている情報処理装置11に対して、利用者が不図示のキーボード、マウス、或いはボタンなどを用いて、システム復帰処理の実行を指示した際に、システム復帰処理が開始される。
まず、ステップ41において休止状態からの復帰か否かが判定される。これは、前述した図3のステップ32において、HDD14に記録したおいたフラグを用いて判定する。フラグが休止状態であることを示す場合、処理をステップ42に進める。さもなければ、処理をステップ46に進める。
次に、ステップ42は、NvRAM114に記録されているハッシュ値をPCR115に復帰する。ここで、本実施形態におけるPCR復帰処理について、図4(B)、及び(C)を用いて説明する。図4(B)の48、及び49は夫々、前述した図3(A)の休止状態移行処理後のPCR115とNvRAM114の状態を示している。状態48、及び49は夫々、前述した図3(B)の状態39、及び状態310であると考えると理解しやすい。
一方、図4(C)の414、及び415は夫々、前述した図3(B)の休止状態移行処理後のPCR115とNvRAM114の状態を示している。状態414、及び415は夫々、前述した図3(D)の状態313、及び状態314であると考えると理解しやすい。
ステップ42におけるPCR復帰処理後、図4(B)の場合、NvRAM114の状態49がPCR115にコピーされ、結果として、PCR115は状態410となる。同様に、図4(C)の場合、NvRAM114の状態415がPCR115にコピーされ、結果として、PCR115は状態416となる。ここで、ステップ42におけるPCR復帰処理後も、NvRAM114の状態は変化しない。よって、図4(B)の状態49、及び415は夫々、引き続き、同じ状態411、及び417となる。
ステップ42におけるPCR復帰処理の後、ステップ43はPCRの状態を読み出す。本実施形態においては、ステップ43は図4(B)の状態410、或いは状態416の何れかの状態を読み出すことになる。
そして、ステップ44において、読み出したPCRの値が初期値か否かが判定される。初期値である場合は、処理を45に進める。さもなければ、処理を46に進める。
ステップ46は、情報処理装置11の利用者が不図示のマウス、キーボード、或いはボタンなどにより、アプリ19の実行を指示した場合に、アプリ19のハッシュ値を計測して、計測したハッシュ値をTPM112に登録する。ステップ46におけるアプリ19の計測・登録処理は、前述した計測・登録処理と同様であるため、詳細な説明は省略する。ステップ46は、アプリ19のハッシュ値をINPUTとして、式1に基づいて算出された値をPCR5にH6として登録する。図4(B)の412に、ステップ46におけるアプリ19計測・登録後のPCR115の状態を示す。ステップ46の後、ステップ47においてアプリ19を実行する。
尚、本実施形態においては、1つのアプリ19だけを起動するものとして説明するが、本実施形態はこれに限定されることなく、任意数のアプリを起動することが可能である。その際、ステップ46、及びステップ47が繰り返し実行されることになる。
一方、ステップ45は、情報処理装置11を再起動する。再起動により、前述した起動処理(図2(A))が再度実行されることになる。図2(A)の起動処理では、BIOS、ブートローダ、OS、及びアプリといった一連のプログラムが再計測され、再計測された値がPCR115に再登録されることになるため、初期値でない正当なPCR115の状態を復元できる。
ここで、ステップ44においてPCR115が初期値か否かを確認するタイミングは非常に重要である。仮に、ステップ42におけるPCR復帰前に、ステップ44を実行したとしても、PCR115の正当性を正しく判定することはできない。何故なら、PCR復帰前は、PCR115の値は必ず初期値となっているからである。
また、仮に、ステップ46において、アプリ19が計測・登録された後に、ステップ44を実行した場合も、PCR115の正当性を正しく判定することはできない。何故なら、アプリ19の計測・登録により、PCR115の値は式1に基づき更新されてしまうからである。
よって、本実施形態に示したように、ステップ44は、ステップ42におけるNvRAM114からのPCR復帰処理の後、且つ、ステップ46における計測・登録処理の前に実行することにより、正しくPCR115の正当性を確認可能となる。
一方、ステップ41において、休止状態からの復帰時にだけ、ステップ44におけるPCR115の確認をすることも非常に重要である。仮に、休止状態からのシステム復帰処理(図4(A))ではなく、通常の起動処理(図2(A))の際に、ステップ44を実行したとしても、PCR115の正当性を正しく判定することはできない。何故なら、通常の起動処理前には、PCR115の値は必ず初期値となっているからである。
よって、本実施形態に示したように、ステップ44は、ステップ41において、当該システム復帰処理が、休止状態からの復帰であることを確認できた場合にだけ実行することにより、正しくPCR115の正当性を確認可能となる。
以上、本実施形態におけるシステム復帰処理のフローについて説明した。
(第二の実施形態)
第一の実施形態のシステム復帰処理では、ステップ44においてPCRが初期値であると判定された場合には、ステップ45において情報処理装置11を強制的に再起動するようにしていた。しかしながら、本実施形態は必ずしも強制的に再起動する必要はなく、情報処理装置11の利用は継続し、TPM112だけを利用できないように機能縮退するようにしても良い。以降では、TPM112を利用できないように機能縮退する場合のシステム復帰処理の実施形態を説明する。
図5(A)は、本実施形態におけるシステム復帰処理の流れを示すフローチャートである。図5(A)において、図4(A)と同様の処理については、同じ番号を付与するものとし、詳細な説明は省略する。以降では、図4(A)と図5(A)とで異なる処理について説明をする。
ステップ44において、PCR115が初期値か否かを判定し、初期値であると判定された場合には、処理をステップ51に進める。ステップ51では、情報処理装置11に備えられている不図示の画面を用いて、情報処理装置11の利用者に対してシステムを再起動するか否かを問い合わせる。情報処理装置11の利用者は、マウス、キーボード、ボタンなどを用いて、情報処理装置11の再起動を許可するか否かを選択する。再起動が許可された場合には、処理をステップ45に進める。さもなければ、処理をステップ52に進める。
ステップ52では、TPM112を一時的に利用することが出来ないように制御する。本実施形態では、TPM112に対して、一時的にTPM112を利用不可にするようなコマンド(例えば、TPM_SetTempDeactivated)を送信する。このコマンドにより、TPM112は非アクティベートモードとなり、TPM112外部からのコマンドを受け付けないようになる。よって、仮にTPM112の外部からTPM112を利用しようとした場合でも、TPM112を利用することができないため、機能縮退を実現することができる。
尚、本実施形態はこれに限定されることなく、TPM112を利用不可にするための種々の方式を適応可能である。例えば、TPM112に対して、正しくないパスワード・認可コードなどを大量に送信することにより、TPM112をロック状態にするようにしても良い。ロック状態のTPM112もまた、外部からのコマンドを受け付けない様になるため、機能縮退を実現することができる。
ステップ52の後、処理をステップ46に進める。ステップ52によりTPMが利用不可になっている場合、たとえステップ46においてアプリのハッシュ値をTPM112に登録しようとした場合でも、これを実行することができない。即ち、図5(Bに示す様に、アプリ19の計測・登録後もPCR115の状態53は、計測・登録前の状態416から変化はない。
また、後述するデータ利用処理、及び完全性レポート生成処理において、TPM112を利用する場合も、ステップ52においてTPM112が利用不可となっているため、これらの処理も実行することができない。何れの場合も、情報処理装置11の利用を継続したまま、TPM112の利用だけを不可とする機能縮退が実現可能となる。
以上、本実施形態におけるシステム復帰処理の実施形態について説明した。
(第三の実施形態)
第二の実施形態で説明したシステム復帰処理では、図5(A)のステップ52において、TPM112そのものを利用できないようにしていた。具体的には、一時的に非アクティベートモードとなるようなコマンドを送信したり、正しくないパスワード・認可コードを送信してロック状態にするようにしていた。しかしながら、本実施形態はこれに限定されることなく、ステップ52において、TPM112そのものを利用できないようにする代わりに、情報処理装置11からTPM112を利用できないように制御しても良い。
情報処理装置11からTPM112を利用できないように制御するために、情報処理装置11からTPM112を利用するためのデバイスドライバにおいて、TPM112を利用できないようにしてもよい。具体的には、ステップ52において、TPM112の利用不可を示すフラグをHDD14、或いはNvRAM114などに設定するようにする。その後、情報処理装置11内のプログラムが、前記デバイスドライバを使ってTPM112を利用しようとした場合に、前記フラグに応じてTPM112へのアクセスを制御する。
ここで、本実施形態におけるTPM利用処理について、図10(A)を用いて説明する。図10(A)は、図5(A)によってシステム復帰した情報処理装置11に対して、利用者が不図示のキーボード、マウス、或いはボタンなどを用いてTPM112を利用しようとした際に、前記デバイスドライバにて開始される。
まず、ステップ101において、プログラムからTPMコマンドを受信する。そして、ステップ102において、前記TPM112の利用不可を示すフラグを確認する。フラグが利用不可を示す場合には、処理をステップ104に進める。さもなければ、処理をステップ103に進める。ステップ103では、ステップ101が受信したTPMコマンドをTPM112に送信する。一方、ステップ104では、TPM112を利用できないことを示すエラーを情報処理装置11のモニタ(不図示)などに表示する。
以上説明した処理により、TPM112そのものを利用不可にする代わりに、情報処理装置11からTPM112の利用を不可にすることができる。
尚、図10(A)では、TPM112の利用不可を示すフラグが設定されていた場合に、必ずTPM112を利用できないように制御した。しかし、本実施形態はこれに限定されることなく、実行しようとしているTPMコマンドに応じて、利用制御をするようにしてもよい。以降では、この場合のTPM利用処理について、図10(B)を用いて説明する。
図10(B)と図10(A)とで同様の処理については、同じ番号を付与するものとし、詳細な説明は省略する。
ステップ102において、TPM利用不可であると判断された後、ステップ105において、実行しようとしているTPMコマンドがPCRに関連するか否かを判定する。TPMコマンドがPCRに関連する場合は、処理をステップ104に進める。さもなければ、処理をステップ103に進める。
ステップ105では、予めTPMコマンドがPCRに関連するか否かを示すテーブルを用意しておき、当該テーブルを参照することにより判定するようにする。図10(C)に、テーブルの例を示す。図10(C)におけるテーブルの例では、PCRに関連するコマンドに対して「○」、PCRに関連しないコマンドに対して「×」を付与している。本実施形態においてPCRに関連するコマンドとは、当該TPMコマンドがTPM112内で実行される際に、TPM112内のPCRにアクセス(読み・書き)するコマンドである。図10(C)に示した例では、TPM_Seal、TPM_Quote、TPM_Bindの3つのコマンドは、夫々のコマンドがTPM112内で実行された際にPCRにアクセスするコマンドである。一方、TPM_GetRandom、TPM_GetTicks、TPM_Signの3つのコマンドは、PCRにアクセスすることなくコマンドが実行される。
以上説明した様なTPM利用処理により、PCRに関連のないコマンドに関しては、たとえTPM112の利用不可のフラグが設定されている場合でも、利用を許可することができる。
尚、本実施形態はこれらに限定されることなく、種々の方法で情報処理装置11からTPM112を利用不可とすることができる。例えば、当該TPM112を利用するためのデバイスファイル名を変更するようにしても良い。例えば、デバイスファイル名が「/dev/tpm」である場合、ステップ52において、このデバイスファイル名を「/dev/tpm.deny」と変更する。これにより、情報処理装置11内のプログラムが、デバイスファイル/dev/tpmを介してTPM112を利用しようした場合、デバイスファイル/dev/tpmが存在しないため、TPM112を利用することができない。
以上説明した様に、TPM112そのものを利用不可にする代わりに、アクセスを制限することにより、情報処理装置11からTPM112の利用を不可にすることができる。
(第四の実施形態)
図5(A)で説明したシステム復帰処理では、ステップ44においてPCR115が初期値であると判定された場合、必ずしも強制的に情報処理装置11を再起動させない。TPM112の利用制限をすることによって、情報処理装置11を利用し続けることができる。しかしながら、本実施形態はこれに限定されることなく、システム復帰時にPCR115が正しくなかった場合(初期値であった場合)に、その後のデータ利用制限処理(後述する)において、データの利用を禁止することも可能である。同様に、システム復帰時にPCR115が正しくなかった場合(初期値であった場合)に、その後の改竄検出処理(後述する)において、「検証失敗」と判定するようにすることも可能である。以降では、この場合のシステム復帰処理の実施形態を説明する。
図6(A)は、本実施形態におけるシステム復帰処理の流れを示すフローチャートである。図6(A)において、図4(A)及び図5(A)と同様の処理については、同じ番号を付与するものとし、詳細な説明は省略する。以降では、図4(A)及び図5(A)と、図6(A)とで異なる処理について説明をする。
ステップ51において、情報処理装置11の再起動が許可されなかった場合には、処理をステップ61に進める。
ステップ61では、PCR115に所定の値を登録する。本実施形態では、PCR115の各記憶領域に、「PCR1→A1、PCR2→A2、PCR3→A3、PCR4→A4、PCR5→A5」といった値を式1におけるINPUTとして登録するものとする。ここで「PCR1→A1」は、PCR1には値A1を登録することを意味する。ここで、A1、A2、A3、A4、A5は、「システム復帰した際にPCRが初期値であったことを示す定数」である。
尚、本実施形態においては、PCR115の5つの記憶領域の夫々に異なる値(A1、A2、A3、A4、及びA5)を入力するものとして説明するが、本発明はこれに限定することなく、各記憶領域に同じ値(例えば、A1)を登録するようにしても良い。また、A1、A2、A3、A4、及びA5は、予め定められた定数が望ましい。或いは、ステップ61を実行する毎に異なる疑似乱数を発生させて、発生した疑似乱数を登録するようにしてもよい。
ここで、ステップ61により、所定の値が登録された後のPCR115の状態を図6(B)の62に示す。ここで、例えばPCR1に登録されているR1は、A1をINPUTとして、式1に基づいて算出された値である。
ステップ61の後、処理をステップ46に進める。ステップ46では、前述したようにアプリ19のハッシュ値をINPUTとして、式1に基づいてアプリ19のハッシュ値をPCR5に登録する。ここで、PCR5に登録されているR5’は、アプリ19のハッシュ値をINPUTとして、式1に基づいて算出された値である。
以上、本実施形態におけるシステム復帰処理の実施形態について説明した。
本実施形態によれば、システム復帰後のPCRが初期値であった場合に、「システム復帰した際にPCRが初期値であったことを示す定数」がPCRに登録されることになる。これにより、後述するデータ利用制限処理時に、暗号化データ内のPCR条件と、TPM112中のPCRの値が一致しないため、暗号化データの利用を禁止することができる。同様に、後述する改竄検出処理に、完全性レポート中のPCRの値が、PCR期待値として登録されていないため、「検証失敗」と判定することができる。
(第五の実施形態)
図4(A)で説明したシステム復帰処理では、ステップ44においてPCR115が初期値か否かを確認するタイミングは非常に重要であることを説明した。即ち、ステップ44は、ステップ52におけるNvRAM114からのPCR復帰処理の後、且つ、ステップ44における計測・登録処理の前に実行することにより、正しくPCR115の正当性を確認可能となる。以降では、より確実に、正しいタイミングでPCR115の確認可能とする実施形態を説明する。
図7(A)は、本実施形態における状態遷移を説明する図である。また、図7(B)は、本実施形態におけるシステム復帰処理の流れを示すフローチャートである。図7(B)において、図4(A)と同様の処理については、同じ番号を付与するものとし、詳細な説明は省略する。以降では、図4(A)と図7(B)とで異なる処理について、図7(A)の状態遷移を使いながら説明する。
システム復帰処理を開始すると、まず、ステップ75において、状態を「初期状態」に設定する。本実施形態では、状態を示すフラグをHDD14に保持するものとする。この時点で、図7(A)の71の状態となる。
そして、ステップ41において、休止状態からの復帰であると判定された場合、ステップ76において、状態を「システム復帰状態」に移行する。この時点で、図7(A)の72の状態となる。
そして、ステップ42において、NvRAMからPCR復帰処理を実行後、ステップ77において、状態を「PCR復帰状態」に移行する。この時点で、図7(A)の73の状態となる。
そして、ステップ78では、状態が「PCR復帰状態」であるか否かが判定される。これは、HDD14に保持されている状態を示すフラグを確認するようにすれば良い。そして、状態を示すフラグが「PCR復帰状態」を示す場合には処理を、ステップ44に進める。さもなければ処理をステップ45に進める。
そして、ステップ47において、アプリ19を実行した後、ステップ79において、状態を「プログラム実行状態」に移行する。この時点で、図7(A)の74の状態となる。
以上、本実施形態におけるシステム復帰処理について説明した。
本実施形態によれば、システム復帰処理の一連の処理を状態管理し、ステップ44におけるPCRが初期値であることの確認を、「PCR復帰状態」で確実に実行することが可能となる。ここで、「PCR復帰状態」は、ステップ52におけるNvRAM114からのPCR復帰処理の後、且つ、ステップ44における計測・登録処理の前の状態である。
(データ利用制限処理)
次に、図8(A)を用いて、本実施形態におけるデータ利用制限処理の詳細を説明する。以下のフローは、前述した情報処理装置11内で実行され、各ステップは該当するプログラム及びそれを実行するCPU111によって実現する。
図8(A)は、本実施形態に適応可能な起動処理の流れを示すフローチャートである。
データ利用制限処理は、情報処理装置11の利用者が、不図示のキーボード、マウス、或いはボタンなどを用いて、情報処理装置11に対してデータ利用処理の実行を指示した際に実行される。
データ利用制限処理が開始されると、まずステップ81において、データ利用制限の対象となる平文データが入力される。平文データとしては、画像データ、文書データ、音声データなど種々のデータを入力可能である。情報処理装置11内のHDD14内に、予め保持されているデータを入力するようにしてもよい。或いは、不図示のインターフェイス(通信・メディア)により情報処理装置11の外部からデータを入力するようにしてもよい。
次に、ステップ82において、当該平文データを利用可能とするPCR条件を入力する。本実施形態におけるPCR条件とは、前述したTPM112内のPCR115がどのような状態の時に、当該平文データを利用可能とするかを示す条件である。本実施形態では、前述した起動処理(図2(A))において、BIOS13、ブートローダ15、OS16、及びアプリ17が起動した後のPCR115の状態をPCR条件として指定することを例として説明する。この場合のPCR条件は、「PCR1=H1、PCR2=H2、PCR3=H3、PCR4=H4」となる。
尚、本発明はこれに限定されることなく、種々のPCR115の状態をPCR条件として指定可能であることは明らかである。
次に、ステップ83において、ステップ81で入力した平文データを暗号化する。本実施形態では、暗号化するための暗号アルゴリズムは、特に限定されることなく、AES、DES、3DESなどの共通鍵暗号や、RSA、ElGamal暗号、楕円曲線暗号などの公開鍵暗号など、種々の暗号アルゴリズムを適応可能である。また、暗号化に利用する暗号鍵は、TPM112内に保持しておくものとする。
最後に、ステップ84において、暗号化データを出力する。本実施形態では、ステップ83において生成された暗号化データに、ステップ82で入力したPCR条件を付加し、暗号化データとして出力する。図8(B)の85に、本実施形態における暗号化データの例を示す。
以上、本実施形態におけるデータ利用制限処理について説明した。
(データ利用処理)
次に、図8(C)を用いて、本実施形態におけるデータ利用制限処理の詳細を説明する。以下のフローは、前述した情報処理装置11内で実行され、各ステップは該当するプログラム及びそれを実行するCPU111によって実現する。
図8(C)は、本実施形態に適応可能な起動処理の流れを示すフローチャートである。
データ利用制限処理は、情報処理装置11の利用者が、不図示のキーボード、マウス、或いはボタンなどを用いて、情報処理装置11に対してデータ利用処理の実行を指示した際に実行される。
データ利用処理が開始されると、まずステップ86において、データ利用の対象となる暗号化データが入力される。本実施形態においては、前述した図8(B)の85における暗号化データを入力するものとして説明する。
次に、ステップ87において、TPM112からPCR115の値が読み出される。以降の説明では、例として、前述した起動処理(図2(A))の後に、データ利用処理を実行する場合には、図2(B)の状態217が読み出されるものとして説明する。
次に、ステップ88において、ステップ86が入力した暗号化データ85内に付加されているPCR条件と、ステップ87がTPM112から読み出したPCRの値が一致するか否かを確認する。一致する場合には、処理をステップ89に進める。さもなければ、データ利用処理を終了する。PCRが一致しない時には、ステップ86で入力した暗号化データが利用できないことを示すエラーを表示するようにしても良い。本実施形態においては、図2(B)の状態217、及び図8(B)のPCR条件は一致するため、処理はステップ89に進むことになる。
ステップ88においてPCRが一致する場合には、ステップ89において、暗号化データを復号する。本実施形態では、復号するための暗号アルゴリズムは、特に限定されることなく、AES、DES、3DESなどの共通鍵暗号や、RSA、ElGamal暗号、楕円曲線暗号などの公開鍵暗号など、種々の暗号アルゴリズムを適応可能である。また、暗号化に利用する暗号鍵は、TPM112内に保持しておくものとする。
最終的に、ステップ810は、ステップ89が復号した平文データを出力する。
以上、本実施形態におけるデータ利用処理について説明した。
以上説明したデータ利用制限処理、及びデータ利用処理によれば、図2(A)に示した起動処理により、改竄されていないプログラムが実行された場合に、図8(B)に示したデータを利用可能となる。また、図5(A)に示したシステム復帰処理におけるステップ52においてTPMが利用不可と制御されている場合には、図8(B)に示したデータの利用を禁止できる。更に、図6(A)に示したシステム復帰処理におけるステップ61においてPCRに所定値が登録されている場合にも、図8(B)に示したデータの利用を禁止することができる。
(改竄検知システム)
次に、図9(A)を用いて本実施形態における改竄検知システム構成について説明する。
図9(A)は本実施形態に適応可能なシステムの概要を示す図である。図9(A)に示すように、本実施形態におけるシステムは被検証装置91、及び検証装置92から構成される。被検証装置91と検証装置92とは、有線、或いは無線の通信回線を用いて接続されており、互いにデータを通信可能となっている。また、被検証装置91及び検証装置92としては、前述した情報処理装置11(図1)を適応可能である。
本実施形態では、検証装置92が被検証装置91内のソフトウェアが信頼できるか否かを確認できる。この処理を改竄検知処理と呼ぶ。改竄検知処理のため、被検証装置91内において、PCRから完全性レポート(詳細は後述)を生成し、検証装置92へ送信する。検証装置92では、受信した完全性レポート、及び予め期待値DB93に登録してあるハッシュ値の期待値を用いて、当該完全性レポートを送信した被検証装置91内のソフトウェアが改竄されているか否かを検証する。本実施形態の場合、ハッシュ値の期待値であるH1、H2、H3、H4、及びH6を登録しておく。
以上、本実施形態に適応可能な改竄検知システムの概要を説明した。
(完全性レポート生成処理)
次に、図9(B)を用いて、本実施形態における、被検証装置91での完全性レポート生成処理について説明する。以下のフローは、前述した情報処理装置11の構成を備える被検証装置91上でソフトウェアとして実現され、各ステップは該当するプログラム及びそれを実行するCPU111によって実現する。
図9(B)は、本実施形態に適応可能な完全性レポート生成処理の流れを示すフローチャートである。
まず、ステップ94で、検証装置92からNonceを受信する。後述するステップ910において送信されたNonceを受信する。本実施形態においては、Nonceは疑似乱数を利用するものとする。しかしながら、本発明はこれに限定されることなく、改竄検知処理を実行する度に異なる値であり、推測困難な値であれば任意のデータを利用可能である。
次に、ステップ95において、TPM112を使って、Nonce、及びその時点でのPCR115の値からデジタル署名を生成する。デジタル署名を生成するためのアルゴリズムは、特に限定することなく、RSA、DSA、ElGamalなど種々のアルゴリズムを適応可能である。また、デジタル署名を生成するための秘密鍵は、TPM112の内部で管理されているものを適応するものとする。
次に、ステップ96において、ステップ94で受信したNonce、ステップ95で生成したデジタル署名、ステップ95で署名の生成対象となったPCRの値、及び証明書から完全性レポートを生成する。ここで、証明書には前述した秘密鍵に対応する公開鍵を含んでおく。
ここで、図9(C)に、本実施形態における完全性レポートの例を示す。図9(C)の98は、前述した図4(B)の状態412から生成した完全性レポートである。一方、図9(C)の99は、前述した図6(B)の状態63から生成した完全性レポートである。
最後に、ステップ97において、ステップ96で生成した完全性レポートを検証装置92に送信する。
以上、本実施形態における完全性レポート生成処理について説明した。
(完全性レポート検証処理)
次に、図9(D)を用いて、本実施形態における、検証装置92での完全性レポート検証処理について説明する。以下のフローは、前述した情報処理装置11の構成を備える被検証装置91上でソフトウェアとして実現され、各ステップは該当するプログラム及びそれを実行するCPU111によって実現する。
図9(D)は、本実施形態に適応可能な完全性レポート生成処理の流れを示すフローチャートである。
まず、ステップ910で、被検証装置91にNonceを送信する。ステップ910が送信したNonceが、前述したステップ94で受信される。同様に、ステップ911において、被検証装置91から完全性レポートを受信する。前述したステップ97において、被検証装置91が送信した完全性レポートを受信する。
次に、ステップ911において、ステップ911が受信した完全性レポート内の署名を、同じく完全性レポート内の証明書に含まれている公開鍵を用いて検証する。そして、ステップ912において署名検証に成功したか否かを確認する。成功した場合には処理をステップ913に進める。さもなければ、処理をステップ918に進める。
ステップ914では、ステップ911で受信した完全性レポート内のNonceの値と、ステップ910で送信したNonceの値が一致するか否かを確認する。そして、ステップ915において、一致するか否かを判定し、一致する場合には処理をステップ916に進める。さもなければ、処理をステップ918に進める。
ステップ916では、ステップ911で受信した完全性レポート内のPCRの値が、図9(A)の期待値DB93に含まれているか否かを確認する。そして、ステップ916において、含まれているか否かを判定し、含まれている場合には処理をステップ919に進める。さもなければ、処理をステップ918に進める。
例えば、前述した図9(C)の98の完全性レポートの場合は、H1、H2、H3、H4、及びH6が全て期待値DB93に保持されているため、含まれていると判断される。一方、図9(C)の99の完全性レポートの場合は、R1、R2、R3、R4、R5’の何れも期待値DB93に保持されていないため、含まれていないと判断される。
最終的に、ステップ918では検証失敗と判定する。この場合、被検証装置91内のプログラムは改竄されていると判定されることになる。一方、ステップ918では検証成功と判定する。この場合、被検証装置91内のプログラムは改竄されていないと判定されることになる。
以上、本実施形態における完全性レポート検証処理について説明した。
以上説明した改竄検知処理によれば、被検証装置91内のPCRが、図4(B)の状態412である場合には、完全性レポートとして、図9(C)の98が生成され、結果として、検証成功であると判断することができる。一方、被検証装置91内のPCRが、図6(B)の63である場合には、完全性レポートとして、図9(C)の99が生成され、結果として検証失敗であると判断することができる。
本実施形態によれば、休止状態移行処理(図2(A))時に、NvRAM114へのPCR退避処理後にアプリが実行されたか否かに関わらず、システム復帰処理(図4(A))時に、PCR復帰処理後のPCRの値の正当性を正しく検証することが可能となる。そして、PCRが正当でないと判断された場合には、情報処理装置11を再起動することにより、PCRを再び正しい状態に復元することが可能となる。一方、PCRが正当である場合だけ、情報処理装置11内でアプリを起動し、所望の処理を実行することが可能となる。
(その他の実施形態)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
41 休止状態からの復帰判定
42 NvRAMからPCR復帰処理
43 PCR読み出し処理
44 PCRの初期値判定
45 システム再起動処理
46 アプリ計測・登録処理

Claims (14)

  1. セキュアチップを有する情報処理装置であって、
    前記情報処理装置が休止状態から復帰したか否かを判定する判定手段と、
    前記判定手段により休止状態から復帰したと判定された場合、前記セキュアチップが初期化されているか否かを、アプリケーションソフトウェアを起動する前に検知する検知手段と、
    前記検知手段により前記セキュアチップが初期化されていることが検知された場合、初期化されている前記セキュアチップに、前記アプリケーションソフトウェアのハッシュ値が登録されないように前記情報処理装置の動作を制御する制御手段と、を有することを特徴とする情報処理装置。
  2. 前記セキュアチップは、前記情報処理装置で起動したソフトウェアのハッシュ値を登録するための揮発性のメモリを有することを特徴とする請求項1に記載の情報処理装置。
  3. 前記セキュアチップは、TPM(Trusted Platform Module)であることを特徴とする請求項1に記載の情報処理装置。
  4. 前記制御手段は、前記検知手段により前記セキュアチップが初期化されていることが検知された場合、前記情報処理装置を再起動させることを特徴とする請求項1乃至3のいずれか1項に記載の情報処理装置。
  5. 前記制御手段は、前記検知手段により前記セキュアチップが初期化されていることが検知された場合、前記情報処理装置が前記セキュアチップを利用することが出来ないようにすることを特徴とする請求項1乃至3のいずれか1項に記載の情報処理装置。
  6. 前記制御手段は、前記検知手段により前記セキュアチップが初期化されていることが検知された場合、前記セキュアチップに利用不可にするコマンドを送信することにより、前記情報処理装置が前記セキュアチップを利用することが出来ないようにすることを特徴とする請求項5に記載の情報処理装置。
  7. 前記制御手段は、前記検知手段により前記セキュアチップが初期化されていることが検知された場合、前記セキュアチップへのアクセスを制限することにより、前記情報処理装置が前記セキュアチップを利用することが出来ないようにすることを特徴とする請求項5に記載の情報処理装置。
  8. 前記制御手段は、前記検知手段により前記セキュアチップが初期化されていることが検知された場合、前記セキュアチップに、システム復帰した際にPCRが初期値であったことを示す定数を登録することを特徴とする請求項1に記載の情報処理装置。
  9. 前記制御手段は、前記検知手段により前記セキュアチップが初期化されていることが検知された場合、前記セキュアチップに乱数を登録することを特徴とする請求項1に記載の情報処理装置。
  10. セキュアチップを有する情報処理装置の制御方法であって、
    判定手段が、前記情報処理装置が休止状態から復帰したか否かを判定する判定工程と、
    検知手段が、前記判定工程により休止状態から復帰したと判定された場合、前記セキュアチップが初期化されているか否かを、アプリケーションソフトウェアを起動する前に検知する検知工程と、
    前記検知工程により前記セキュアチップが初期化されていることが検知された場合、初期化されている前記セキュアチップに、前記アプリケーションソフトウェアのハッシュ値が登録されないように前記情報処理装置の動作を制御する制御工程と、を有することを特徴とする制御方法。
  11. コンピュータを、
    セキュアチップを有する情報処理装置であって、
    前記情報処理装置が休止状態から復帰したか否かを判定する判定手段と、
    前記判定手段により休止状態から復帰したと判定された場合、前記セキュアチップが初期化されているか否かを、アプリケーションソフトウェアを起動する前に検知する検知手段と、
    前記検知手段により前記セキュアチップが初期化されていることが検知された場合、初期化されている前記セキュアチップに、前記アプリケーションソフトウェアのハッシュ値が登録されないように前記情報処理装置の動作を制御する制御手段と、を有することを特徴とする情報処理装置として機能させるためのコンピュータプログラム。
  12. セキュアチップを有する情報処理装置であって、
    アプリケーションソフトウェアを起動した場合、前記セキュアチップの揮発性メモリにアプリケーションソフトウェアのハッシュ値を登録する第一の登録手段と、
    前記情報処理装置が休止状態に入る場合、前記揮発性メモリに登録されたハッシュ値を前記セキュアチップの不揮発性メモリに登録する第二の登録手段と、
    前記第二の登録手段における登録後に、アプリケーションソフトウェアを起動した場合、
    ユーザに対して報知を行う報知手段と、を有することを特徴とする情報処理装置。
  13. セキュアチップを有する情報処理装置であって、
    第一の登録手段が、アプリケーションソフトウェアを起動した場合、前記セキュアチップの揮発性メモリにアプリケーションソフトウェアのハッシュ値を登録する第一の登録工程と、
    第二の登録手段が、前記情報処理装置が休止状態に入る場合、前記揮発性メモリに登録されたハッシュ値を前記セキュアチップの不揮発性メモリに登録する第二の登録工程と、
    前記第二の登録工程における登録後に、アプリケーションソフトウェアを起動した場合、ユーザに対して報知を行う報知工程と、を有することを特徴とする情報処理装置。
  14. コンピュータを、
    セキュアチップを有する情報処理装置であって、
    アプリケーションソフトウェアを起動した場合、前記セキュアチップの揮発性メモリにアプリケーションソフトウェアのハッシュ値を登録する第一の登録手段と、
    前記情報処理装置が休止状態に入る場合、前記揮発性メモリに登録されたハッシュ値を前記セキュアチップの不揮発性メモリに登録する第二の登録手段と、
    前記第二の登録手段における登録後に、アプリケーションソフトウェアを起動した場合、ユーザに対して報知を行う報知手段と、を有することを特徴とする情報処理装置として機能させるためのコンピュータプログラム。
JP2015072865A 2015-03-31 2015-03-31 情報処理装置、情報処理装置の制御方法、およびコンピュータプログラム Active JP6494373B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2015072865A JP6494373B2 (ja) 2015-03-31 2015-03-31 情報処理装置、情報処理装置の制御方法、およびコンピュータプログラム
CN201610165030.7A CN106022136B (zh) 2015-03-31 2016-03-22 信息处理装置及该装置的控制方法
EP16162234.5A EP3076324B1 (en) 2015-03-31 2016-03-24 Information processing apparatus and method of controlling the apparatus
KR1020160035058A KR102062073B1 (ko) 2015-03-31 2016-03-24 정보처리장치 및 정보처리장치의 제어방법
US15/082,891 US10482256B2 (en) 2015-03-31 2016-03-28 Information processing apparatus and method of controlling the apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015072865A JP6494373B2 (ja) 2015-03-31 2015-03-31 情報処理装置、情報処理装置の制御方法、およびコンピュータプログラム

Publications (2)

Publication Number Publication Date
JP2016192159A JP2016192159A (ja) 2016-11-10
JP6494373B2 true JP6494373B2 (ja) 2019-04-03

Family

ID=55650208

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015072865A Active JP6494373B2 (ja) 2015-03-31 2015-03-31 情報処理装置、情報処理装置の制御方法、およびコンピュータプログラム

Country Status (5)

Country Link
US (1) US10482256B2 (ja)
EP (1) EP3076324B1 (ja)
JP (1) JP6494373B2 (ja)
KR (1) KR102062073B1 (ja)
CN (1) CN106022136B (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR3060161A1 (fr) * 2016-12-08 2018-06-15 Orange Technique de gestion d'un droit d'acces a un service pour un dispositif communicant
JP6584487B2 (ja) * 2017-12-20 2019-10-02 キヤノン株式会社 情報処理装置、その制御方法およびプログラム
JP7179482B2 (ja) * 2018-04-19 2022-11-29 キヤノン株式会社 情報処理装置、制御方法、およびそのプログラム
JP7289641B2 (ja) * 2018-11-30 2023-06-12 キヤノン株式会社 情報処理装置、およびその制御方法
US11216366B2 (en) 2020-02-13 2022-01-04 Intel Corporation Security check systems and methods for memory allocations
WO2022139850A1 (en) * 2020-12-26 2022-06-30 Intel Corporation Cryptographic computing including enhanced cryptographic addresses
US11954045B2 (en) 2021-09-24 2024-04-09 Intel Corporation Object and cacheline granularity cryptographic memory integrity
US20230214493A1 (en) * 2021-12-30 2023-07-06 Moxa Inc. Computer System for Failing a Secure Boot in a Case Tampering Event

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7412596B2 (en) * 2004-10-16 2008-08-12 Lenovo (Singapore) Pte. Ltd. Method for preventing system wake up from a sleep state if a boot log returned during the system wake up cannot be authenticated
KR101041543B1 (ko) * 2006-04-21 2011-06-17 인터디지탈 테크날러지 코포레이션 신뢰된 컴퓨팅 무결성 측정 보고를 수행하는 장치 및 방법
JP5001123B2 (ja) * 2006-12-07 2012-08-15 パナソニック株式会社 記録デバイス、集積回路、アクセス制御方法、プログラム記録媒体
JP2009187134A (ja) * 2008-02-04 2009-08-20 Ricoh Co Ltd 情報処理装置、情報処理装置の起動制御方法、プログラム及び記録媒体
US8341393B2 (en) * 2009-12-17 2012-12-25 Lenovo (Singapore) Pte. Ltd. Security to extend trust
US8943329B2 (en) * 2010-03-29 2015-01-27 Lenovo (Singapore) Pte. Ltd. Method and apparatus for sharing an integrity security module in a dual-environment computing device
US8627464B2 (en) * 2010-11-02 2014-01-07 Microsoft Corporation Globally valid measured operating system launch with hibernation support
JP5969845B2 (ja) * 2012-07-18 2016-08-17 キヤノン株式会社 情報処理装置及びその制御方法
JP5980050B2 (ja) * 2012-08-29 2016-08-31 キヤノン株式会社 情報処理装置

Also Published As

Publication number Publication date
KR102062073B1 (ko) 2020-01-03
KR20160117216A (ko) 2016-10-10
CN106022136A (zh) 2016-10-12
JP2016192159A (ja) 2016-11-10
US20160292422A1 (en) 2016-10-06
CN106022136B (zh) 2019-10-22
US10482256B2 (en) 2019-11-19
EP3076324A1 (en) 2016-10-05
EP3076324B1 (en) 2020-02-19

Similar Documents

Publication Publication Date Title
JP6494373B2 (ja) 情報処理装置、情報処理装置の制御方法、およびコンピュータプログラム
US9965268B2 (en) Method and apparatus for preventing software version rollback
US10225426B2 (en) Image forming apparatus having firmware update function, method of controlling the same, program for executing the method, and storage medium
JP4769608B2 (ja) 起動検証機能を有する情報処理装置
JP5116325B2 (ja) 情報処理装置、ソフトウェア更新方法及び画像処理装置
JP4994903B2 (ja) 暗号鍵復旧方法、情報処理装置及び暗号鍵復旧プログラム
JP6391439B2 (ja) 情報処理装置、サーバ装置、情報処理システム、制御方法及びコンピュータプログラム
JP2020160747A (ja) 情報処理装置、その制御方法、及びプログラム
JP2019212114A (ja) 情報処理装置、その制御方法およびプログラム
JP2021117928A (ja) 情報処理装置とその起動方法
JP2020095470A (ja) 情報処理装置及びその制御方法
JP5961059B2 (ja) 情報処理装置およびその起動方法
JP5582231B2 (ja) 情報処理装置、真正性確認方法、及び記録媒体
CN114995918A (zh) 基板管理控制器的启动方法、配置方法、装置及电子设备
JP7321795B2 (ja) 情報処理装置、情報処理方法およびプログラム
US11971991B2 (en) Information processing apparatus, control method for controlling the same and storage medium
US10657268B2 (en) Information processing apparatus, information processing method, and non-transitory computer readable medium to verify validity of backup data
US20230126541A1 (en) Information processing apparatus, control method for controlling the same and storage medium
US20230103698A1 (en) Information processing apparatus and control method therefor
US20230351029A1 (en) Information processing apparatus, control method for the same, and storage medium
JP2022182837A (ja) 情報処理装置、及びその制御方法
JP2022062877A (ja) 情報処理装置および情報処理方法
JP5310897B2 (ja) 情報処理装置、ソフトウェア更新方法及び記録媒体
JP2013191226A (ja) 情報処理装置、ソフトウェア更新方法及び画像処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180323

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20181218

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: 20190205

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190305

R151 Written notification of patent or utility model registration

Ref document number: 6494373

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151