JP5357152B2 - 情報処理装置、情報処理方法、これらを実現するコンピュータプログラム及び集積回路 - Google Patents

情報処理装置、情報処理方法、これらを実現するコンピュータプログラム及び集積回路 Download PDF

Info

Publication number
JP5357152B2
JP5357152B2 JP2010517683A JP2010517683A JP5357152B2 JP 5357152 B2 JP5357152 B2 JP 5357152B2 JP 2010517683 A JP2010517683 A JP 2010517683A JP 2010517683 A JP2010517683 A JP 2010517683A JP 5357152 B2 JP5357152 B2 JP 5357152B2
Authority
JP
Japan
Prior art keywords
modules
module
value
certificate
verification
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.)
Expired - Fee Related
Application number
JP2010517683A
Other languages
English (en)
Other versions
JPWO2009157133A1 (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.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial Co Ltd
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 Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Priority to JP2010517683A priority Critical patent/JP5357152B2/ja
Publication of JPWO2009157133A1 publication Critical patent/JPWO2009157133A1/ja
Application granted granted Critical
Publication of JP5357152B2 publication Critical patent/JP5357152B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3263Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/80Wireless

Description

本発明は、パーソナルコンピュータや携帯電話などの情報通信機器、インターネットアクセス機能を備えたテレビ受信装置などの情報家電機器等の情報処理装置、情報処理方法、これらを実現するコンピュータプログラム及び集積回路に関するものである。
特に、端末のソフトウェアが複数の提供者から提供される複数のモジュール群から構成される場合において、新しいソフトウェアモジュールを各提供者から個別にダウンロードすることでソフトウェアモジュールの更新を可能にしつつ、不正な動作をするモジュールにすり替えたり、不正にソフトウェアを古いバージョンに戻したりするといった不正行為を防止し、安定して確実に正しいソフトウェア構成で起動することを可能にするものである。
近年、ネットワークを介して提供されるサービスは、音楽や映像といった著作物の提供や、企業が保有する機密情報の閲覧、オンラインバンキングなど多岐に渡り、かつ、その中で扱われる情報の価値も高価なものになってきている。多岐に渡るサービスに対応するため、パーソナルコンピュータ、携帯端末、携帯電話、デジタル家電などの端末には、複数の提供者から提供された複数のソフトウェアがインストールされている。
例えば、携帯電話の場合、携帯電話の端末メーカーが提供する携帯電話の基本機能に関するモジュール群と、携帯電話のオペレータが提供する携帯通信機能に関するモジュール群と、ISP(Internet Service Provider)が提供する携帯電話上で動作するサービス・アプリケーションを構成するモジュール群がインストールされている場合がある。
また、高価な価値を持つ情報を安全に扱うために、パーソナルコンピュータ、携帯端末、携帯電話、デジタル家電などの端末には、ソフトウェアモジュールの改ざん等の不正行為を防止する仕組みがモジュール群ごとに組み込まれている。例えば、各ソフトウェアモジュールに対して提供者が証明書を発行し、各ソフトウェアモジュールの起動時に、その証明書を用いてソフトウェアモジュールの完全性を検証するといった仕組もその一つである。この仕組は、モジュール群を構成するソフトウェアモジュールをモジュール単位で更新する場合にも有効であり、モジュール群の提供者が新しいソフトウェアモジュールと共に、その新しいソフトウェアモジュールの証明書を提供することにより、端末側で提供者側から受信した新しいソフトウェアモジュールの完全性を検証することが可能となる。
上記の証明書を用いて不正行為を防止する仕組みと同様の技術は、例えば特許文献1において公開されている。
また、セキュアなコンピュータプラットフォームを開発、普及させることを目的として、Trusted Computing Group(TCG)が設立されている。TCGでは、Trusted Platform Module(TPM)と呼ばれるセキュリティモジュールを利用し、ソフトウェアモジュールの完全性だけでなく、ソフトウェアモジュールを起動する順番が正しいことを検証しながらソフトウェアモジュールを起動するセキュアブートと呼ばれる起動処理を端末が行うことで、安全な端末環境を実現している(非特許文献1〜5参照)。
US2005/0021968
TPM Main,Part1 Design Principles,Specification version 1.2 Level2 Rivision103(9 July 2007) TPM Main,Part2 TPM Structures,Specification verion1.2 Level2 Rivision103(9 July 2007) TPM Main Part3 Commands,Specification verion 1.2 Level2 Rivision103(9 July 2007) TCG Mobile Trusted Module Specification version 1.0 Revision 1(12 June 2007) TCG Mobile Reference Architecture Specification version1.0 Revision1(12 June 2007)
しかし、従来提案されている技術では、図16に示すように、端末のソフトウェアを構成するモジュール群が複数の提供者(ステークホルダー)から提供され、それらのモジュール群に対してTCGのセキュアブートを行うように構成された端末において、1つのモジュールを新しいモジュールに更新する場合に課題がある。
例えば、従来提案されている技術によれば、セキュアブートでは、第2の提供者(第2ステークホルダー)が提供するモジュール#21が、第1の提供者(第1ステークホルダー)が提供するモジュール群であるモジュール#11、#12、#13を利用する場合には、モジュール#11、#12、#13は事前に起動されている必要があるため、モジュール#21を起動する前に、正規のモジュール#11、#12、#13が起動されていることを次のような方法で検証する。
この場合、第2の提供者がモジュール#21と共に提供する証明書#21の中には、モジュール#21のハッシュ値と共に、第1のモジュール群のそれぞれのモジュールのハッシュ値を累積的にハッシュ演算した場合の累積ハッシュ値が含まれる。
モジュール#21を起動する前に、証明書#21に含まれるモジュール#21のハッシュ値と実際のモジュール#21から算出したハッシュ値とを照合することで、モジュール#21が改ざんされていないことを検証すると同時に、起動されているモジュールの累積ハッシュ値を格納するレジスタであるPCR(Platform Configuration Register)と証明書#21に含まれる累積ハッシュ値とを照合することで、モジュール#21を起動する前に正規のモジュール#11、#12、#13が起動されていることを検証する。
しかし、第2の提供者が提供する証明書#21が、第1の提供者が提供する第1のモジュール群に依存することになるため、仮に、モジュール#13を新しいモジュールに更新する場合には、モジュール#13に対応する証明書#13と共に証明書#21も同時に更新する必要がある。これを実現するためには、第1のモジュール群のモジュールを更新する度に、第1の提供者がモジュールの更新情報を事前に第2の提供者側に通知して、証明書#21も同時に更新するメカニズムが必要となり、提供者間の独立性が損なわれるという問題がある。具体的には、第1の提供者側が緊急にモジュール#13を新しいモジュール#13に更新する必要があっても、第2の提供者側で新しいモジュール#13に対応する証明書#21の準備ができるまでは、モジュール#13を更新することができず、緊急を要する更新には対応できないといった問題がある。また、第2の提供者側は、第1の提供者が提供するモジュール群の更新のために、証明書#21を生成して、それを配信するというコストを払う必要があるといった問題がある。
本発明は、こうした従来の問題点を解決するものであり、端末のソフトウェアが、複数の提供者が提供するモジュール群から構成される場合において、提供者間の独立性を維持した上で、モジュール群間を跨るセキュアブートを継続的に行うことが可能な情報処理装置、情報処理方法、これらを実現するコンピュータプログラム及び集積回路を提供することを目的としている。
上記課題を解決するために、本発明の一実施態様である情報処理装置は、第1ステークホルダーに対応する第1の複数のモジュールと、前記第1の複数のモジュールの各モジュールについて、前記各モジュールのハッシュ値から生成される第1照合値及び前記第1の複数のモジュールに含まれるモジュールのハッシュ値を累積した場合の累積値から生成される第1累積照合値を含む証明書とを格納する第1記憶部と、第2ステークホルダーに対応し前記第1の複数のモジュールと依存関係にある第2の複数のモジュールと、前記第2の複数のモジュールの各モジュールについて、前記各モジュールのハッシュ値から生成される第2照合値及び前記第2の複数のモジュールに含まれるモジュールのハッシュ値を累積した場合の累積値から生成される第2累積照合値を含む証明書とを格納する第2記憶部と、前記第1の複数のモジュールの各モジュールの実際のハッシュ値と前記第1照合値とを比較して、前記第1の複数のモジュールの正当性を検証し、前記検証された第1の複数のモジュールを起動する第1制御部と、前記第1の複数のモジュールの正当性が検証された場合、前記第2の複数のモジュールの各モジュールの実際のハッシュ値と前記第2照合値とを比較して、前記第2の複数のモジュールの正当性を検証し、前記検証された第2の複数のモジュールを起動する第2制御部と、前記第2の複数のモジュールの先頭モジュールの正当性を検証する第3照合値及び前記第1の複数のモジュールに含まれるモジュールのハッシュ値を累積した場合の累積値から生成される第3累積照合値を含む連携証明書の保持部と、を具備し、前記第1制御部は、前記第1の複数のモジュールを更新した場合、更新後の第1の複数のモジュールの証明書について前記証明書の署名を検証すると、前記検証された証明書の中の第1照合値を用いて前記連携証明書に含まれる第3累積照合値を更新し、前記第1制御部は、前記第1の複数のモジュールを起動した後、前記連携証明書に含まれる第3累積照合値を用いて正当な第1の複数のモジュールが起動していることを検証し、かつ、前記第2の複数のモジュールの先頭モジュールの正当性を、前記連携証明書に含まれる第3照合値を用いて検証した場合に、前記第2の複数のモジュールの先頭モジュールを起動し、前記第2制御部は、前記第2の複数のモジュールの正当性を検証して、前記第2の複数のモジュールを起動させることを特徴とする。
上記態様によると、端末のソフトウェアが、複数のソフトウェアモジュールから構成される場合において、ソフトウェアモジュールを古いソフトウェアモジュールにすりかえるといった不正行為を防止し、各ソフトウェアモジュールの更新処理を個別に行うことが可能となる。
また、証明書の更新の際に電源断が起こり、ソフトウェアモジュールのコードイメージや証明書間に不整合が生じてしまった場合でも、セキュアブート処理時に構成情報累積部と代替仮想構成情報累積部の両方を参照して検証をすることで、古いソフトウェアモジュールを実行することなく、セキュアブート処理を完了させ、証明書の更新処理を再開することが出来る。
本発明の実施の形態1に係る端末の構成を示すブロック図 図2(a)は、本発明の実施の形態1に係る端末の第1のセキュリティモジュールの構成を示すブロック図、図2(b)は、本発明の実施の形態1に係る端末の第2のセキュリティモジュールの構成を示すブロック図 図3(a)は、本発明の実施の形態1に係る端末の第1の記憶部に格納されるモジュールと証明書の一例を示す図、図3(b)は、本発明の実施の形態1に係る端末の第2の記憶部に格納されるモジュールと証明書の一例を示す図、図3(c)は、本発明の実施の形態1に係る端末の連携証明書記憶部に格納される連携証明書の一例を示す図、図3(d)は、本発明の実施の形態2に係る端末の連携証明書記憶部に格納される連携証明書の一例を示す図 本発明の実施の形態1におけるソフトウェアモジュールの証明書のデータ構造を示す図 本発明の実施の形態1における連携証明書のデータ構造を示す図 本発明の実施の形態1におけるセキュアブート処理のフロー図 本発明の実施の形態1における連携証明書の更新処理の途中までのフロー図 本発明の実施の形態1における連携証明書の更新処理のフロー図であり、図7の続きの処理を示す 本発明の実施の形態1における連携証明書の依存リストの一例を示す図 本発明の実施の形態2におけるセキュアブート及びソフトウェアモジュールの更新を説明するための模式図 本発明の実施の形態2におけるソフトウェアモジュールの証明書のデータ構造を示す図 本発明の実施の形態2における連携証明書のデータ構造を示す図 本発明の実施の形態2におけるセキュアブート処理のフロー図 本発明の実施の形態2における連携証明書の更新処理の途中までのフロー図 本発明の実施の形態2における連携証明書の更新処理のフロー図であり、図14の続きの処理を示す 従来技術に基づくセキュアブート処理の一例を説明する図
請求項1記載の態様の情報処理装置は、第1ステークホルダーに対応する第1の複数のモジュールと、前記第1の複数のモジュールの各モジュールについて、前記各モジュールのハッシュ値から生成される第1照合値及び前記第1の複数のモジュールに含まれるモジュールのハッシュ値を累積した場合の累積値から生成される第1累積照合値を含む証明書とを格納する第1記憶部と、第2ステークホルダーに対応し前記第1の複数のモジュールと依存関係にある第2の複数のモジュールと、前記第2の複数のモジュールの各モジュールについて、前記各モジュールのハッシュ値から生成される第2照合値及び前記第2の複数のモジュールに含まれるモジュールのハッシュ値を累積した場合の累積値から生成される第2累積照合値を含む証明書とを格納する第2記憶部と、前記第1の複数のモジュールの各モジュールの実際のハッシュ値と前記第1照合値とを比較して、前記第1の複数のモジュールの正当性を検証し、前記検証された第1の複数のモジュールを起動する第1制御部と、前記第1の複数のモジュールの正当性が検証された場合、前記第2の複数のモジュールの各モジュールの実際のハッシュ値と前記第2照合値とを比較して、前記第2の複数のモジュールの正当性を検証し、前記検証された第2の複数のモジュールを起動する第2制御部と、前記第2の複数のモジュールの先頭モジュールの正当性を検証する第3照合値及び前記第1の複数のモジュールに含まれるモジュールのハッシュ値を累積した場合の累積値から生成される第3累積照合値を含む連携証明書の保持部と、を具備し、前記第1制御部は、前記第1の複数のモジュールを更新した場合、更新後の第1の複数のモジュールの証明書について前記証明書の署名を検証すると、前記検証された証明書の中の第1照合値を用いて前記連携証明書に含まれる第3累積照合値を更新し、前記第1制御部は、前記第1の複数のモジュールを起動した後、前記連携証明書に含まれる第3累積照合値を用いて正当な第1の複数のモジュールが起動していることを検証し、かつ、前記第2の複数のモジュールの先頭モジュールの正当性を、前記連携証明書に含まれる第3照合値を用いて検証した場合に、前記第2制御部を起動して前記第2の複数のモジュールの正当性を検証させることを特徴とする。
本態様によると、前記第2の複数のモジュールの先頭モジュールの正当性を検証する第3照合値及び前記第1の複数のモジュールに含まれるモジュールのハッシュ値を累積した場合の累積値から生成される第3累積照合値を含む連携証明書を保持する。
また、前記第1制御部は、前記第1の複数のモジュールを更新した場合、更新後の第1の複数のモジュールの証明書について前記証明書の署名を検証すると、前記検証された証明書の中の第1照合値を用いて前記連携証明書に含まれる第3累積照合値を更新し、一方、前記第1制御部は、前記第1の複数のモジュールを起動した後、前記連携証明書に含まれる第3累積照合値を用いて正当な第1の複数のモジュールが起動していることを検証し、かつ、前記第2の複数のモジュールの先頭モジュールの正当性を、前記連携証明書に含まれる第3照合値を用いて検証した場合に、前記第2の複数のモジュールの先頭モジュールを起動し、前記第2制御部は、前記第2の複数のモジュールの正当性を検証して、前記第2の複数のモジュールを起動するものである。
これにより、前記第1の複数のモジュールの正当性が検証されたことを前提に、前記第2の複数のモジュールの正当性を検証する場合において、前記第1の複数のモジュールの更新があった場合に、前記第1の複数のモジュールの更新があったために変更が必要となる第2制御部での処理を前記第1制御部で行う。そのため、前記第1の複数のモジュールの更新があった場合でも、前記第2制御部においては前記第1の複数のモジュールの更新前と同一の処理を行うだけよく、前記第1の複数のモジュールの更新に連動して処理を変更する負荷を回避できる。
即ち、従来では、前記第2の複数のモジュールの検証は前記第1の複数のモジュールに依存するので、前記第1の複数のモジュールの更新があった場合、前記第2の複数のモジュールの先頭モジュールの証明書に含まれる、前記第2の複数のモジュールの先頭モジュールの正当性を検証する第3照合値及び前記第1の複数のモジュールに含まれるモジュールのハッシュ値を累積した場合の累積値から生成される第3累積照合値を、前記第2制御部が更新する必要があった。換言すれば、従来では、前記第1の複数のモジュールの更新があった場合に、前記第2の複数のモジュールの先頭モジュールに対応する証明書を前記第2制御部が更新するためには、前記第2の複数のモジュールの検証は前記第1の複数のモジュールに依存するので、更新後の前記第1の複数のモジュールに含まれるモジュールのハッシュ値を累積した場合の累積値から生成される第3累積照合値を、前記第1制御部から前記第2制御部に通知する必要があった。従って、更新後の前記第3累積照合値を前記第2制御部が有しない場合は、前記第2制御部は前記第1の複数のモジュールを依存した状態での前記第2の複数のモジュールの検証ができなかった。
しかし、本態様によると、前記第2の複数のモジュールの先頭モジュールの正当性を検証する第3照合値及び前記第1の複数のモジュールに含まれるモジュールのハッシュ値を累積した場合の累積値から生成される第3累積照合値を含む連携証明書を別途設け、この連携証明書を用いて前記第1制御部が、正当な第1の複数のモジュールが起動していることを検証した上で、前記第2の複数のモジュールの先頭モジュールの正当性を検証する。
一方、前記第2制御部では、前記第1の複数のモジュールの更新があった場合でも、正当な第1の複数のモジュールが起動していること検証せずに、前記第1の複数のモジュールの更新前と同一の処理を行って、前記第2の複数のモジュールの正当性を検証する。
この場合、前記第2制御部では、前記第1の複数のモジュールの更新があった場合でも、正当な第1の複数のモジュールが起動していること検証しないため、前記第1の複数のモジュールと前記第2の複数のモジュールとは独立性を確保することができ、連携証明書を用いて前記第1制御部が、前記第1の複数のモジュールの更新があった場合でも、正当な第1の複数のモジュールが起動していること検証した上で、前記第2の複数のモジュールの先頭モジュールの正当性を検証するため、連携証明書を媒体として前記第1の複数のモジュールと前記第2の複数のモジュールとは連携されることになる。
従って、前記1の複数のモジュールの更新後も、前記第2の複数のモジュールを前記1の複数のモジュールに依存させつつ、前記第1の複数のモジュールの更新に連動して前記第2制御部における処理を変更する負荷を回避できる。
請求項2記載の態様の情報処理装置は、さらに、前記第2制御部によって管理され起動済みの前記第2の複数のモジュールに含まれるモジュールのハッシュ値を累積した場合の累積値を格納する第3記憶部を有し、前記連携証明書は、さらに、前記第2の複数のモジュールが起動されていないことを示す第4累積値を含み、前記第1制御部は、さらに、第2の複数のモジュールの先頭モジュールの正当性を検証すると、前記第2制御部から前記第3記憶部に格納された第2の複数のモジュールの検証値を取得し、この取得した検証値と前記連携証明書に含まれる第4累積値とを比較して前記第2の複数のモジュールを起動する前に前記第2制御部が起動したモジュールがないことを検証した場合、前記第2の複数のモジュールの先頭モジュールを起動し、前記第2制御部は、前記第2の複数のモジュールの正当性を検証して、前記第2の複数のモジュールを起動することを特徴とする。
本態様によると、前記第2制御部によって管理され前記第2の複数のモジュールの検証値を格納する第3記憶部を有し、前記連携証明書は、さらに前記第2の複数のモジュールが起動されていないことを示す第4累積値を含み、前記第1制御部は、前記第2制御部から前記第3記憶部に格納された第2の複数のモジュールの検証値を取得し、この取得した検証値と前記第2の所定の照合値を比較して、前記第2制御部が前記第2の複数のモジュールを起動する前に前記第2制御部が起動したモジュールがないことを検証した場合、前記第2制御部に対して前記第2の複数のモジュールの正当性を検証させる。
即ち、前記第2制御部が前記第2の複数のモジュールを起動する前に前記第2制御部が起動したモジュールがない場合には、前記第3記憶部には、前記第2の複数のモジュールの検証値として例えばゼロが格納されている。そのため、前記第2の複数のモジュールが起動されていないことを示す第4累積値、即ち、例えばゼロと比較すると、両者は一致して、前記第2制御部が前記第2の複数のモジュールを起動する前に前記第2制御部が起動したモジュールがないことを前記第1制御部で検証できる。
これにより、前記第1制御部が前記第2の複数のモジュールの先頭モジュールの正当性を検証するだけではなく、前記先頭モジュールを含む第2の複数のモジュールを起動する前に前記第2制御部によって起動されたモジュールがないことを確認して前記第2制御部を起動させる。そのため、前記第2の複数のモジュールを起動させる前に前記第2制御部においてウィルス等が起動していないことを前記第1制御部が確認した上で前記第1制御部は前記第2制御部を起動させることができる。その結果、前記第1制御部が前記第2制御部の安全性を確認した上で前記第2制御部を起動させることができる。
請求項3記載の態様の情報処理装置は、さらに、前記保持部は、前記第1記憶部に含まれることを特徴とする。
本態様によると、前記連携証明書を格納するために必要な記憶領域を前記第1記憶部の記憶領域に中に確保することにより、情報処理装置において連携証明書を格納する記憶領域を確保するための分の新たなコストアップを回避できる。
請求項4記載の態様の情報処理装置は、さらに、前記第1制御部は、前記第2の複数の先頭モジュールがのモジュールを更新された場合、前記連携証明書に含まれる第3照合値を更新することを特徴とする。
本態様によると、前記第1制御部は、前記第2の複数のモジュールを更新した場合、前記連携証明書に含まれる第3照合値を更新することにより、前記第1制御部が更新後の第3照合値を格納した連携証明書を用いて、前記第2の複数のモジュールの正当性を検証するので、前記第1の複数のモジュールに依存する第2の複数のモジュールの正当性を検証するために用いる第3照合値を、前記第2制御部が更新する負荷を回避できる。
請求項5記載の態様の情報処理装置は、さらに、前記第2制御部は、前記第2の複数のモジュールの先頭モジュールを更新した場合、前記第1制御部にその旨を通知し、第1制御部は、前記通知を受信すると、前記連携証明書の前記第3照合値を前記更新された第2の複数のモジュールの先頭モジュールの第2照合値に更新することを特徴とする。
本態様によると、前記第2の複数のモジュールの更新があった場合、前記第2制御部は、第1制御部に通知し、前記通知を受信した第1制御部は、前記連携証明書の前記第3照合値を前記更新された第2の複数のモジュールの先頭モジュールの第2照合値に更新するので、前記第2の複数の先頭モジュールの更新後も、前記第1制御部は前記第2の複数のモジュールの先頭モジュールの正当性を適正に検証できる。
請求項6記載の態様の情報処理方法は、さらに、第1ステークホルダーに対応する第1の複数のモジュールと、前記第1の複数のモジュールの各モジュールについて、前記各モジュールのハッシュ値から生成される第1照合値及び前記第1の複数のモジュールに含まれるモジュールのハッシュ値を累積した場合の累積値から生成される第1累積照合値を含む証明書とを格納し、第2ステークホルダーに対応し前記第1の複数のモジュールと依存関係にある第2の複数のモジュールと、前記第2の複数のモジュールの各モジュールについて、前記各モジュールのハッシュ値から生成される第2照合値及び前記第2の複数のモジュールに含まれるモジュールのハッシュ値を累積した場合の累積値から生成される第2累積照合値を含む証明書とを格納し、前記第1の複数のモジュールの各モジュールの実際のハッシュ値と前記第1照合値とを比較して、前記第1の複数のモジュールの正当性を検証し、前記検証された第1の複数のモジュールを起動し、前記第1の複数のモジュールの正当性が検証された場合、前記第2の複数のモジュールの各モジュールの実際のハッシュ値と前記第2照合値とを比較して、前記第2の複数のモジュールの正当性を検証し、前記検証された第2の複数のモジュールを起動する情報処理方法であって、前記第2の複数のモジュールの先頭モジュールの正当性を検証する第3照合値及び前記第1の複数のモジュールに含まれるモジュールのハッシュ値を累積した場合の累積値から生成される第3累積照合値を含む連携証明書の保持し、前記第1の複数のモジュールを更新した場合、更新後の第1の複数のモジュールの証明書について前記証明書の署名を検証すると、前記検証された証明書の中の第1照合値を用いて前記連携証明書に含まれる第3累積照合値を更新し、前記第1の複数のモジュールを起動した後、前記連携証明書に含まれる第3累積照合値を用いて正当な第1の複数のモジュールが起動していることを検証し、かつ、前記第2の複数のモジュールの先頭モジュールの正当性を、前記連携証明書に含まれる第3照合値を用いて検証した場合に、前記第2の複数のモジュールの正当性を検証して、前記第2の複数のモジュールを起動させることを特徴とする。
請求項7記載の態様のコンピュータプログラムは、コンピュータに対し、第1ステークホルダーに対応する第1の複数のモジュールと、前記第1の複数のモジュールの各モジュールについて、前記各モジュールのハッシュ値から生成される第1照合値及び前記第1の複数のモジュールに含まれるモジュールのハッシュ値を累積した場合の累積値から生成される第1累積照合値を含む証明書とを第1記憶部に格納する第1処理と、第2ステークホルダーに対応し前記第1の複数のモジュールと依存関係にある第2の複数のモジュールと、前記第2の複数のモジュールの各モジュールについて、前記各モジュールのハッシュ値から生成される第2照合値及び前記第2の複数のモジュールに含まれるモジュールのハッシュ値を累積した場合の累積値から生成される第2累積照合値を含む証明書とを第2記憶部に格納する第2処理と、前記第1の複数のモジュールの各モジュールの実際のハッシュ値と前記第1照合値とを比較して、前記第1の複数のモジュールの正当性を検証し、前記検証された第1の複数のモジュールを起動する第3処理と、前記第1の複数のモジュールの正当性が検証された場合、前記第2の複数のモジュールの各モジュールの実際のハッシュ値と前記第2照合値とを比較して、前記第2の複数のモジュールの正当性を検証し、前記検証された第2の複数のモジュールを起動する第4処理と、を実行させるコンピュータプログラムであって、前記第2の複数のモジュールの先頭モジュールの正当性を検証する第3照合値及び前記第1の複数のモジュールに含まれるモジュールのハッシュ値を累積した場合の累積値から生成される第3累積照合値を含む連携証明書を保持部に格納する第5処理を実行させ、前記第3処理は、前記第1の複数のモジュールを更新した場合、更新後の第1の複数のモジュールの証明書について前記証明書の署名を検証すると、前記検証された証明書の中の第1照合値を用いて前記連携証明書に含まれる第3累積照合値を更新し、前記第3処理は、前記第1の複数のモジュールを起動した後、前記連携証明書に含まれる第3累積照合値を用いて正当な第1の複数のモジュールが起動していることを検証し、かつ、前記第2の複数のモジュールの先頭モジュールの正当性を、前記連携証明書に含まれる第3照合値を用いて検証した場合に、前記第4処理を起動して前記第2の複数のモジュールの正当性を検証して、前記第2の複数のモジュールを起動させることを特徴とする。
請求項8記載の態様の集積回路は、第1ステークホルダーに対応する第1の複数のモジュールと、前記第1の複数のモジュールの各モジュールについて、前記各モジュールのハッシュ値から生成される第1照合値及び前記第1の複数のモジュールに含まれるモジュールのハッシュ値を累積した場合の累積値から生成される第1累積照合値を含む証明書とを格納する第1記憶部と、第2ステークホルダーに対応し前記第1の複数のモジュールと依存関係にある第2の複数のモジュールと、前記第2の複数のモジュールの各モジュールについて、前記各モジュールのハッシュ値から生成される第2照合値及び前記第2の複数のモジュールに含まれるモジュールのハッシュ値を累積した場合の累積値から生成される第2累積照合値を含む証明書とを格納する第2記憶部と、前記第1の複数のモジュールの各モジュールの実際のハッシュ値と前記第1照合値とを比較して、前記第1の複数のモジュールの正当性を検証し、前記検証された第1の複数のモジュールを起動する第1制御部と、前記第1の複数のモジュールの正当性が検証された場合、前記第2の複数のモジュールの各モジュールの実際のハッシュ値と前記第2照合値とを比較して、前記第2の複数のモジュールの正当性を検証し、前記検証された第2の複数のモジュールを起動する第2制御部と、前記第2の複数のモジュールの先頭モジュールの正当性を検証する第3照合値及び前記第1の複数のモジュールに含まれるモジュールのハッシュ値を累積した場合の累積値から生成される第3累積照合値を含む連携証明書の保持部と、を具備した集積回路であって、前記第1制御部は、前記第1の複数のモジュールを更新した場合、更新後の第1の複数のモジュールの証明書について前記証明書の署名を検証すると、前記検証された証明書の中の第1照合値を用いて前記連携証明書に含まれる第3累積照合値を更新し、前記第1制御部は、前記第1の複数のモジュールを起動した後、前記連携証明書に含まれる第3累積照合値を用いて正当な第1の複数のモジュールが起動していることを検証し、かつ、前記第2の複数のモジュールの先頭モジュールの正当性を、前記連携証明書に含まれる第3照合値を用いて検証した場合に、前記第2の複数のモジュールの先頭モジュールを起動し、前記第2制御部は、前記第2の複数のモジュールの正当性を検証して、前記第2の複数のモジュールを起動することを特徴とする。
(第1の実施形態)
本発明の第1の実施形態における端末100の構成について説明する。
端末100は、図1に示すように、CPU101と、第1の提供者(第1のステークホルダー)から提供されるソフトウェアモジュールに関する処理を行う第1の情報処理部110と、第2の提供者(第1のステークホルダー)から提供されるソフトウェアモジュールに関する処理を行う第2の情報処理部120と、第1の情報処理部110のセキュアブートと第2の情報処理部120のセキュアブートとを繋ぐセキュアブート処理に用いられる連携証明書の保持・更新を行う連携処理部130とから構成される。
ここで、第1の情報処理部110のセキュアブートと第2の情報処理部120のセキュアブートとを繋ぐセキュアブート処理とは、第1の情報処理部110のセキュアブート処理から第2の情報処理部120のセキュアブート処理に移行する際に行う処理である。
第1の情報処理部110は、第1の提供者が提供するソフトウェアのモジュール群である第1のモジュール群を格納する第1の記憶部111と、第1のモジュール群のセキュアブート処理を制御する第1のセキュアブート制御部112と、耐タンパ性を備える第1のセキュリティモジュール113と、第1のモジュール群のモジュールを第1の提供者のサーバ(不図示)からネットワークを通じてダウンロードし、第1の記憶部111に保持されているモジュールを更新する第1のダウンロード更新部114とから構成される。
第2の情報処理部110は、第2の提供者が提供するソフトウェアのモジュール群である第2のモジュール群を格納する第2の記憶部121と、第2のモジュール群のセキュアブート処理を制御する第2のセキュアブート制御部122と、耐タンパ性を備える第2のセキュリティモジュール123と、第2のモジュール群のモジュールを第2の提供者のサーバ(不図示)からネットワークを通じてダウンロードし、第2の記憶部121に保持されているモジュールを更新する第2のダウンロード更新部124とから構成される。
連携処理部130は、連携証明書を格納する連携証明書記憶部131と、連携証明書を更新する連携証明書更新部135とから構成される。
第1のセキュアブート制御部112と第2のセキュアブート制御部122、第1のダウンロード更新部114と第2のダウンロード更新部124、連携証明書更新部135は、一般的にはCPU101が実行するソフトウェアによって実現されるが、一部もしくは全部をハードウェアによって実現されてもよい。
また、第1のセキュリティモジュール113と第2のセキュリティモジュール123は、耐タンパ性を備えるハードウェアまたはCPU101が実行する耐タンパ化されたソフトウェアによって実現される。
第1の記憶部111と第2の記憶部121と連携証明書記憶部131は、具体的には不揮発性メモリやハードディスクその他の記憶装置によって実現される。
さらに、第1のセキュリティモジュール113は、図2(a)に示すように、CPU101が実際に実行するソフトウェアモジュールの構成を示す構成情報を保持する構成情報累積部211と、ソフトウェアモジュールの証明書の有効性を検証する証明書検証部212と、構成情報累積部211が保持する構成情報を証明書の中の構成照合値と照合する照合部213と、ソフトウェアモジュールの有効なバージョンの下限を示すカウンタ値を保持するカウンタ部214と、データの暗復号及び署名生成や署名検証を行う暗復号部215と、を備える。また、構成情報累積部211は、第1の情報処理部で起動されたソフトウェアモジュールのハッシュ値の累積ハッシュ演算を行なう累積部216と、累積部216が算出した累積値(以下、累積演算の結果をこのように呼ぶ)を保持する構成情報保持部217と、を備えている。ここで構成情報保持部217は、TCGにおけるセキュリティモジュールであるTPMのPCR(Platform Configuration Register)に相当するものであり、構成情報保持部217に保持される値は、第1の情報処理部で起動されているモジュールの構成を示す。
構成情報保持部217は、複数のレジスタから構成され、累積部216がどのレジスタに対して累積ハッシュ演算を行うかはレジスタ番号によって指定される。
暗復号部215は、データの暗復号処理や署名生成や署名検証を行うための複数の鍵データを保持している。また、第1の記憶部には、暗復号部215が保持している鍵データで暗号化された別の鍵データが格納されており(不図示)、その暗号化された鍵データを、第1のセキュリティモジュールにロードして、暗復号部215が保持している鍵データで復号することで、暗復号部215はその復号した鍵データを用いて暗復号処理や署名生成や署名検証を行う。
累積部216は、構成情報保持部217の1つのレジスタが保持する値のバイト列とソフトウェアモジュールのハッシュ演算の結果のバイト列とを連結し、さらに連結したバイト列に対してハッシュ演算を行い、その結果をそのレジスタに再格納する。
第2のセキュリティモジュール123は、第1のセキュリティモジュール113と同様の構成を備えており、図2(b)に示すように、CPU101が実際に実行するソフトウェアモジュールの構成を示す構成情報を保持する構成情報累積部221と、ソフトウェアモジュールの証明書の有効性を検証する証明書検証部222と、構成情報累積部221が保持する構成情報を証明書の中の構成照合値と照合する照合部223と、ソフトウェアモジュールの有効なバージョンの下限を示すカウンタ値を保持するカウンタ部224と、データの暗復号及び署名生成や署名検証を行う暗復号部225と、を備える。また、構成情報累積部221は、第2の情報処理部で起動されたソフトウェアモジュールのハッシュ値の累積ハッシュ演算を行なう累積部226と、複数のレジスタから構成され、累積部226が算出した累積値(以下、累積演算の結果をこのように呼ぶ)を保持する構成情報保持部227と、を備えている。ここで構成情報保持部227は、TCGにおけるセキュリティモジュールであるTPMのPCR(Platform Configuration Register)に相当するものであり、構成情報保持部227に保持される値は、第2の情報処理部で起動されているモジュールの構成を示す。
構成情報保持部227は、複数のレジスタから構成され、累積部226がどのレジスタに対して累積ハッシュ演算を行うかはレジスタ番号によって指定される。
暗復号部225は、データの暗復号処理や署名生成や署名検証を行うための複数の鍵データを保持している。また、第2の記憶部には、暗復号部225が保持している鍵データで暗号化された別の鍵データが格納されており(不図示)、その暗号化された鍵データを、第2のセキュリティモジュールにロードして、暗復号部225が保持している鍵データで復号することで、暗復号部225はその復号した鍵データを用いて暗復号処理や署名生成や署名検証を行う。
累積部226は、構成情報保持部227の1つのレジスタが保持する値のバイト列とソフトウェアモジュールのハッシュ演算の結果のバイト列とを連結し、さらに連結したバイト列に対してハッシュ演算を行い、その結果をそのレジスタに再格納する。
図3(a)は、第1の記憶部に格納されるモジュールと証明書の一例を示し、この場合、第1のモジュール群は、モジュール#11、モジュール#12、モジュール#13の3つのモジュールから構成され、モジュール#11、モジュール#12、モジュール#13にそれぞれ対応する証明書#11、証明書#12、証明書#13が保持されている。
第1のセキュアブート制御部112は、証明書#11、証明書#12、証明書#13を用いて、モジュール#11、モジュール#12、モジュール#13に関して、非特許文献4及び非特許文献5に示されている方式に基づくセキュアブートを行い、モジュール#11、モジュール#12、モジュール#13の順番でモジュールを起動する。
図3(b)は、第2の記憶部に格納されるモジュールと証明書の一例を示し、この場合、第2のモジュール群は、モジュール#21、モジュール#22、モジュール#23の3つのモジュールから構成され、モジュール#21、モジュール#22、モジュール#23にそれぞれ対応する証明書#21、証明書#22、証明書#23が保持されている。
第2のセキュアブート制御部122は、証明書#21、証明書#22、証明書#23を用いて、モジュール#21、モジュール#22、モジュール#23に関して、非特許文献4及び非特許文献5に示されている方式に基づくセキュアブートを行い、モジュール#21、モジュール#22、モジュール#23の順番でモジュールを起動する。
図4は、これらのソフトウェアモジュールに対応する証明書のデータ構造を示しており、証明書400は、その証明書が対応付けられたソフトウェアモジュールを識別する情報であるラベル401と、ソフトウェアモジュールのバージョンを示す参照カウンタ値402と、ソフトウェアモジュールが実行される前の端末100の状態においてセキュリティモジュールの構成情報保持部(217、227)に保持されるべき累積ハッシュ値を示す構成照合値403と、ソフトウェアモジュールのダイジェストとしてモジュールのコードイメージをハッシュ演算した場合の値を示すモジュール計測値405と、モジュール計測値405が示す値を累積ハッシュ演算する構成情報保持部(217、227)のレジスタ番号を指定するレジスタインデックス404と、証明書の署名を検証する鍵を示す検証鍵ID406と、検証鍵ID406が示す鍵に対応する秘密鍵によるラベル401から検証鍵ID406までのデータに対する電子署名407と、から構成される。
モジュール計測値405は、正当なソフトウェアモジュールのコードイメージのハッシュ値であり、実際のソフトウェアモジュールのコードイメージのハッシュ演算の結果と照合することで、そのソフトウェアモジュールが改ざんされていないことを検証することが可能となる。
また、セキュリティモジュールのカウンタ部は、ソフトウェアモジュールの有効なバージョンの下限を示すので、参照カウンタ値402は、セキュリティモジュールのカウンタ部に格納されるカウンタ値以上であることを検証することで、リボークされた古いモジュールの証明書ではないこと、つまり、そのモジュールが有効なソフトウェアモジュールであることを検証することが可能となる。
また、構成照合値403は、セキュリティモジュールの構成情報保持部に格納される累積ハッシュ値と照合することで、ソフトウェアモジュールを実行する前の状態として正しい状態(その前に実行されているソフトウェアモジュールが有効なソフトウェアモジュールであり、正しい順番で実行されている)であることを検証するために用いられる。
また、電子署名507は、公開鍵暗号方式の署名鍵による電子署名であり、署名鍵は、1024ビット以上の鍵長の鍵であることが望ましい。
図3(c)は、連携証明書記憶部に格納される連携証明書の一例を示し、この場合、第1のモジュール群のセキュアブートと第2のモジュール群のセキュアブートを繋ぐセキュアブートに用いられる1つの連携証明書が保持されている。具体的には、第1のモジュール群のモジュール#13を起動した後に、第2のモジュール群のモジュール#21を起動する際のセキュアブートに用いられる連携証明書が保持されている。
図5は、この連携証明書のデータ構造を示しており、連携証明書500は、その証明書が対応付けられたソフトウェアモジュールを識別する情報であるラベル501と、ソフトウェアモジュールのバージョンを示す参照カウンタ値502と、ソフトウェアモジュールが実行される前の端末100の状態において、第1のセキュリティモジュール113の構成情報保持部に保持されるべき累積ハッシュ値を示す第1の構成照合値503と、第2のセキュリティモジュール123の構成情報保持部に保持されるべき累積ハッシュ値を示す第2の構成照合値504と、第2のモジュール群の先頭のモジュールのコードイメージをハッシュした場合の値を示すモジュール計測値505と、第2のモジュール群が依存する第1のモジュール群の中のモジュールを示す依存リスト507と、証明書の署名を検証する鍵を示す検証鍵ID506と、検証鍵ID506が示す鍵に対応する秘密鍵によるラベル501から検証鍵ID506までのデータに対する電子署名508と、から構成される。
この場合、ラベル501は、第2のモジュール群のモジュール#21を識別するラベルであり、モジュール計測値505は、正当なモジュール#21のコードイメージのハッシュ値であり、実際のモジュール#21のコードイメージのハッシュ演算の結果と照合することで、モジュール#21が改ざんされていないことを検証することが可能となる。
また、参照カウンタ値502は、セキュリティモジュールのカウンタ部に格納されるカウンタ値以上であることを検証することで、連携証明書がリボークされた古い連携証明書ではないことを検証することが可能となる。
また、第1の構成照合値503は、第1のセキュリティモジュールの構成情報保持部に格納される累積値と照合することで、モジュール#21を実行する前の状態として正しい状態(その前に実行されているモジュール#11、#12、#13が有効なソフトウェアモジュールであり、正しい順番で実行されている)であることを検証するために用いられる。
また、第2の構成照合値504は、第2のセキュリティモジュールの構成情報保持部に格納される累積値と照合することで、モジュール#21を実行する前の状態として正しい状態(第2のモジュール群のモジュールが起動されていない状態)であることを検証するために用いられる。
また、依存リスト507は、図9に示すように、連携証明書更新部135が第1の構成照合値503を算出する際に行う累積ハッシュ演算の順番と、第2のモジュール群が依存するモジュールの証明書のラベルと、が示されている。図9の場合には、モジュール#21が、証明書#11(MODULE11)と、証明書#12(MODULE12)と、証明書#13(MODULE13)と、に依存し、証明書#11、証明書#12、証明書#13の順番で、それぞれのモジュール計測値を用いて累積ハッシュ演算を行うことで第1の構成照合値503が算出されることを示している。
また、電子署名508は、公開鍵暗号方式の署名鍵による電子署名であり、署名鍵は、1024ビット以上の鍵長の鍵であることが望ましい。
次に、図10は、第1の記憶部に図3(a)に示すモジュールと証明書が、第2の記憶部に図3(b)に示すモジュールと証明書がそれぞれ格納される場合の端末100におけるセキュアブート及びソフトウェアモジュールの更新を模式的に示している。
端末100におけるセキュアブートでは、まず、第1のセキュアブート制御部112が証明書#11、証明書#12、証明書#13を用いてモジュール#11、モジュール#12、モジュール#13の順にセキュアブートを行い、さらに、連携証明書を用いてモジュール#13からモジュール#21へのセキュアブートを行い、次に、第2のセキュアブート制御部122が証明書#21、証明書#22、証明書#23を用いてモジュール#21、モジュール#22、モジュール#23の順にセキュアブートをおこなって、モジュール#11、モジュール#12、モジュール#13、モジュール#21、モジュール#22、モジュール#23の順での一連のセキュアブートが行われる。
また、ソフトウェアモジュールの更新では、第1のサーバまたは第2のサーバから個別にソフトウェアモジュールと対応する証明書とが第1のダウンロード更新部114または第2のダウンロード更新部124によってダウンロードされ、第1の記憶部または第2の記憶部に格納されているソフトウェアモジュールと証明書とが更新される。その後、連携証明書更新部135が第1の記憶部または第2の記憶部に格納されている証明書を参照して連携証明書を更新する。
次に、端末100の詳細な動作を、第1の記憶部に図3(a)に示すモジュールと証明書が、第2の記憶部に図3(b)に示すモジュールと証明書がそれぞれ格納される場合について説明する。
まず、図6を用いて、第1のモジュール群のセキュアブートと第2のモジュール群のセキュアブートとの間に実行することで、この2つのセキュアブートを一連のセキュアブートとして繋ぐセキュアブートの動作について説明する。具体的には、第1のモジュール群のモジュール#11、モジュール#12、モジュール#13を順次起動した後に、第2のモジュール群のモジュール#21を起動する際に行うセキュアブートの動作について説明する。
まず、第1のセキュアブート制御部112は、第1のモジュール群の非特許文献4及び非特許文献5に示されている方式に基づくセキュアブートを実行し、モジュール#11、モジュール#12、モジュール#13を順次起動した後、連携証明書記憶部131から連携証明書500を読み出し(S601)、第1のセキュリティモジュールに読み出した連携証明書500の検証を要求する検証要求を送信する(S602)。
検証要求を受信した第1のセキュリティモジュール113は、証明書検証部が受信した連携証明書を検証する(S603)。
この連携証明書の検証では、まず、第1のセキュリティモジュールが保持する連携証明書500の検証鍵ID506が示す鍵を用いて電子署名508が検証される。
さらに、連携証明書500の参照カウンタ値502が、カウンタ部214が保持するカウンタ値以上であることを判定し、連携証明書500がリボークされた古い連携証明書ではないことが検証される。
次に、照合部213が、構成情報保持部217が保持する累積ハッシュ値と連携証明書500の中の第1の構成照合値503とを照合し、モジュール#21を実行する前の状態として第1の情報処理部側が正しい状態(その前に実行されているモジュール#11、#12、#13が有効なソフトウェアモジュールであり、正しい順番で実行されている)であることを検証する。
照合部213による検証結果を受信した証明書検証部は、この検証結果を第1のセキュアブート制御部112に送信する(S604)。
検証結果を受信した第1のセキュアブート制御部112は、何れかの検証処理でエラーが検出された場合にはセキュアブートを中止し、すべての検証処理の結果が成功であった場合に、第2の記憶部121から第2のモジュール群のモジュール#21を読み出す(S605)。
第1のセキュアブート制御部112は、読み出したモジュール#21のコードイメージのハッシュ演算を行い、その結果と連携証明書500のモジュール計測値505とを照合することで読み出したモジュール#21が連携証明書500に対応する正当なモジュール#21であることを検証する(S606)。
第1のセキュアブート制御部112は、このモジュール#21の検証の結果、エラーが検出された場合には、セキュアブートを中止し、検証の結果が成功であった場合に、第2のセキュリティモジュール123に第2の情報処理部側で起動されているソフトウェアモジュールの構成を示す構成情報を要求する構成情報要求を送信する(S607)。
構成情報要求を受信した第2のセキュリティモジュール123は、暗復号部225が保持する署名鍵を用いて構成情報保持部227が保持する累積ハッシュ値に電子署名を施して構成情報を生成し(S608)、第1のセキュアブート制御部112に送信する(S609)。
構成情報を受信した第1のセキュアブート制御部112は、まず、受信した構成情報に施されている電子署名を第2のセキュリティモジュール123の署名鍵に対応する署名検証鍵を用いて検証し、さらに、構成情報が示す累積ハッシュ値と連携証明書500の中の第2の構成照合値とを照合し、モジュール#21を実行する前の状態として第2の情報処理部側が正しい状態(第2のモジュール群のモジュールが起動されていない状態)であることを検証する(S610)。
第1のセキュアブート制御部112は、この検証の結果、エラーが検出された場合には、セキュアブートを中止し、検証の結果が成功であった場合に、モジュール#21を起動し、CPU101がモジュール#21のコードイメージを実行する(S611)。
この後、第2のセキュアブート制御部122により第2のモジュール群のセキュアブートが開始される。
以上のように、連携証明書を用いて、セキュアブートを行うことで、2つのセキュアブートを一連のセキュアブートとして実行することが出来る。
次に、図7、8を用いて、連携証明書500の更新処理の動作について説明する。
連携証明書500の更新処理は、第2のモジュール群において最初に起動されるべきモジュール#21の証明書#21が更新された場合、または、連携証明書500の依存リスト507に示されているモジュール#11、#12、#13の何れかが更新された場合に開始される。
証明書#21が更新された場合には、ダウンロード更新部124から連携証明書更新部135に証明書#21が更新されたことが通知され、モジュール#11、#12、#13の何れかが更新された場合には、ダウンロード更新部114から連携証明書更新部135に更新されたことが通知される。
まず、更新の通知を受信した連携証明書更新部135は、連携証明書記憶部131から連携証明書500を読み出し(S701)、第1のセキュリティモジュールに読み出した連携証明書500の検証を要求する検証要求を送信する(S702)。
検証要求を受信した第1のセキュリティモジュール113は、証明書検証部が受信した連携証明書を検証する(S703)。
この連携証明書の検証では、まず、連携証明書500の電子署名508が検証され、さらに、連携証明書500の参照カウンタ値502が、カウンタ部214が保持するカウンタ値以上であることを判定し、連携証明書500がリボークされた古い連携証明書ではないことが検証される。
証明書検証部は、この検証結果を第1のセキュアブート制御部112に送信する(S704)。
検証結果を受信した連携証明書更新部135は、検証処理でエラーが検出された場合には、エラーが検出された連携証明書をもとに連携証明書の更新処理を行うことは出来ないので更新処理を中止し、検証処理の結果が成功であった場合に、第2の記憶部121からモジュール#21に対応する証明書#21を読み出し(S705)、第2のセキュリティモジュールに読み出した証明書#21の検証を要求する検証要求を送信する(S706)。
検証要求を受信した第2のセキュリティモジュール123は、証明書検証部が受信した証明書#21を検証する(S707)。
この証明書#21の検証では、まず、証明書#21の電子署名407が検証され、さらに、証明書#21の参照カウンタ値402が、カウンタ部224が保持するカウンタ値以上であることを判定し、証明書#21がリボークされた古い証明書ではないことが検証される。
証明書検証部は、この検証結果を連携証明書更新部135に送信する(S708)。
検証結果を受信した連携証明書更新部135は、検証処理でエラーが検出された場合には更新処理を中止し、検証処理の結果が成功であった場合に、第1の記憶部111から連携証明書500の依存リスト507が示す全ての証明書を読み出し(S709)、第1のセキュリティモジュールに読み出した証明書の検証を要求する検証要求を送信する(S710)。
検証要求を受信した第1のセキュリティモジュール113は、証明書検証部が受信した証明書を検証する(S711)。
この証明書の検証では、まず、証明書の電子署名407が検証され、さらに、証明書の参照カウンタ値402が、カウンタ部214が保持するカウンタ値以上であることを判定し、証明書がリボークされた古い証明書ではないことが検証される。
証明書検証部は、この検証結果を連携証明書更新部135に送信する(S712)。
検証結果を受信した連携証明書更新部135は、検証処理でエラーが検出された場合には更新処理を中止し、検証処理の結果が成功であった場合に、連携証明書500の依存リスト507をもとに新しい連携証明書の第1の構成照合値503を算出する(S713)。具体的には、依存リスト507が示す各証明書のモジュール計測値を、依存リスト507が示す順番で、各証明書のレジスタインデックスが示すレジスタに対して累積ハッシュ演算を仮想的に実行した場合の累積ハッシュ値を算出する。
次に、連携証明書更新部135は、証明書#21の構成照合値403を新しい連携証明書の第2の構成照合値504に設定し(S714)、さらに、証明書#21のモジュール計測値405を新しい連携証明書のモジュール計測値505に設定し(S715)、第1のセキュリティモジュール113に電子署名の生成を要求する署名要求を送信する(S716)。
署名要求を受信した第1のセキュリティモジュール113は、電子署名を生成し(S717)、生成した電子署名を連携証明書更新部135に送信する(S718)。
連携証明書更新部135は、受信した電子署名を新しい連携証明書の電子署名508に設定し、連携証明書記憶部131に保持されている連携証明書を新しい連携証明書に更新して、更新処理を完了する(S719)。
この後、端末100は、新しい連携証明書を用いて、第1のモジュール群と第2のモジュール群の2つのセキュアブートを一連のセキュアブートとして実行することが出来る。
以上のように、連携証明書の依存リストに基づき、証明書を参照して構成照合値を算出することで、新しい連携証明書を端末100の内部で生成することができる。
これにより、第1のモジュール群のソフトウェアモジュールを提供する第1の提供者、及び、第2のモジュール群のソフトウェアモジュールを提供する第2の提供者は、提供するソフトウェアモジュールを新しいソフトウェアモジュールに更新する際に、更新情報を事前に通知する必要がなく、提供者間の独立性を維持した上で個別に新しいフトウェアモジュールを提供することが出来る。
なお、上記で説明した連携証明書の更新において連携証明書更新部135が行っている処理の一部を、第1のセキュリティモジュールが行うようにしても良い。具体的には、第1の構成照合値の算出(S713)、証明書#21の構成照合値を第2の構成照合値に設定(S714)、証明書#21のモジュール計測値をモジュール計測値に設定(S715)の何れかまたはすべての処理を第1のセキュリティモジュールが行う。
この場合、これらの処理を、耐タンパ化された第1のセキュリティモジュールが行うことで、連携証明書に不正な照合値が設定されるといった改竄行為を防止することができ、安全性が向上する。
なお、連携証明書を格納する連携証明書記憶部131を、第1の記憶部111の中に設け、連携証明書更新部135を第1の情報処理部110の中に設けるようにしてもよい。
この場合、連携証明書を格納するために必要な記憶領域を第1の記憶部の中に確保することで、連携証明書を格納する記憶領域を確保するための分の新たなコストアップを回避できる。
また、連携証明書を格納する連携証明書記憶部131を、第2の記憶部121の中に設け、連携証明書更新部135を第2の情報処理部120の中に設けるようにしてもよい。
この場合、連携証明書を格納するために必要な記憶領域を第2の記憶部の中に確保することで、連携証明書を格納する記憶領域を確保するための分の新たなコストアップを回避できる。また、この場合には、連携証明書の電子証明508は、第2のセキュリティモジュールが生成する。
なおまた、連携処理部130に第3のセキュアブート制御部、第3のセキュリティモジュールを設けて、上記において、図6を用いて説明したセキュアブートを第1のセキュアブート制御部の代わりに第3のセキュアブート制御部を用いて行うようにしてよい。
(第2の実施形態)
本発明の第2の実施形態は、ソフトウェアモジュールの証明書と連携証明書のデータ構造を共通化して、セキュリティモジュールにおいて証明書の検証処理と連携証明書の検証処理を共通化できるように構成したものである。
本発明の第2の実施形態における端末100の構成は、第1の実施形態と同じであり、説明を省略する。
図11は、本発明の第2の実施形態におけるソフトウェアモジュールに対応する証明書1100のデータ構造を示している。拡張データダイジェスト1107のフィールドが追加されている以外は、本発明の第1の実施形態のソフトウェアモジュールに対応する証明書400と同じである。
証明書1100は、その証明書が対応付けられたソフトウェアモジュールを識別する情報であるラベル1101と、ソフトウェアモジュールのバージョンを示す参照カウンタ値1102と、ソフトウェアモジュールが実行される前の端末100の状態においてセキュリティモジュールの構成情報保持部(217、227)に保持されるべき累積ハッシュ値を示す構成照合値1103と、ソフトウェアモジュールのダイジェストとしてモジュールのコードイメージをハッシュ演算した場合の値を示すモジュール計測値1105と、モジュール計測値1105が示す値を累積ハッシュ演算する構成情報保持部(217、227)のレジスタ番号を指定するレジスタインデックス1104と、証明書の署名を検証する鍵を示す検証鍵ID1106と、拡張データダイジェスト1107と、検証鍵ID1106が示す鍵に対応する秘密鍵によるラベル1101から拡張データダイジェスト1107までのデータに対する電子署名1108と、から構成される。
この拡張データダイジェスト1107には、証明書の拡張データのハッシュ値が設定される。この証明書に複数の拡張データを対応付ける場合には、複数の拡張データを連結したデータに対するハッシュ値が拡張データダイジェスト1107に設定される。
本発明の第2の実施形態における連携証明書のデータ構造は、図11に示したソフトウェアモジュールに対応する証明書のデータ構造と同じであり、この拡張データダイジェスト1107に連携証明書の拡張データのハッシュ値が設定されることにより、連携証明書となる。
図12は、本発明の第2の実施形態における連携証明書1200のデータ構造と連携証明書の拡張データを模式的に示している。
拡張データには、拡張データの種類を示す拡張データ名が含まれ、拡張データのデータ構造は、拡張データの種類によって決まる。
連携証明書の拡張データの場合は、連携証明書の拡張データであることを示す拡張データ名1201と、連携証明書によるセキュアブートにおいて起動されるモジュールの証明書のハッシュ値を示す証明書ダイジェスト1202と、依存リストのハッシュ値を示す依存リストダイジェスト1203から構成される。
第1の記憶部に図3(a)に示すモジュールと証明書が、第2の記憶部に図3(b)に示すモジュールと証明書がそれぞれ格納される場合、証明書ダイジェスト1202には証明書#21のハッシュ値(Hash(証明書#21))が、依存リストダイジェスト1203には、図9に示した依存リストのハッシュ値(Hash(依存リスト))がそれぞれ設定される。
図3(d)に示すように、本発明の第2の実施形態の場合、拡張データは連携証明書と共に連携証明書記憶部131に保持されている。
また、連携証明書のラベル1101には、第2のモジュール群の先頭のモジュールであるモジュール#21を識別するラベルが設定される。
参照カウンタ値1102は、第1のセキュリティモジュールのカウンタ部に格納されるカウンタ値以上の値が設定される。
構成照合値1103には、第1のセキュリティモジュール113の構成情報保持部に保持されるべき累積ハッシュ値が設定される。
レジスタインデックス1104には、証明書#21が示すレジスタインデックスが設定される。
モジュール計測値1105には、証明書#21が示すモジュール計測値が設定される。
次に、本発明の第2の実施形態の端末100の詳細な動作を、第1の記憶部に図3(a)に示すモジュールと証明書が、第2の記憶部に図3(b)に示すモジュールと証明書がそれぞれ格納される場合について説明する。
まず、図13を用いて、本発明の第2の実施形態における連携証明書を用いたセキュアブートの動作について説明する。
まず、第1のセキュアブート制御部112は、第1のモジュール群の非特許文献4及び非特許文献5に示されている方式に基づくセキュアブートを実行し、モジュール#11、モジュール#12、モジュール#13を順次起動した後、連携証明書記憶部131から連携証明書1200及び連携証明書拡張データを読み出し(S1301)、第1のセキュリティモジュールに読み出した連携証明書1200の検証を要求する検証要求を送信する(S1302)。
検証要求を受信した第1のセキュリティモジュール113は、証明書検証部が受信した連携証明書を検証する(S1303)。
この場合、証明書と連携証明書のデータ構造は同じなので、第1のセキュリティモジュール113は、証明書を検証する場合と同じ機能を用いて連携証明書を検証する。
この連携証明書の検証では、まず、第1のセキュリティモジュールが保持する連携証明書1200の検証鍵ID1106が示す鍵を用いて電子署名1108が検証される。
さらに、連携証明書1200の参照カウンタ値1102が、カウンタ部214が保持するカウンタ値以上であることを判定し、連携証明書1200がリボークされた古い連携証明書ではないことが検証される。
次に、照合部213が、構成情報保持部217が保持する累積ハッシュ値と連携証明書1200の中の構成照合値1103とを照合し、モジュール#21を実行する前の状態として第1の情報処理部側が正しい状態(その前に実行されているモジュール#11、#12、#13が有効なソフトウェアモジュールであり、正しい順番で実行されている)であることを検証する。
照合部213による検証結果を受信した証明書検証部は、この検証結果を第1のセキュアブート制御部112に送信する(S1304)。
検証結果を受信した第1のセキュアブート制御部112は、何れかの検証処理でエラーが検出された場合にはセキュアブートを中止し、すべての検証処理の結果が成功であった場合に、第2の記憶部121から第2のモジュール群のモジュール#21を読み出す(S1305)。
第1のセキュアブート制御部112は、読み出したモジュール#21のコードイメージのハッシュ演算を行い、その結果と連携証明書1200のモジュール計測値1105とを照合することで読み出したモジュール#21が連携証明書1200に対応する正当なモジュール#21であることを検証する(S1306)。
第1のセキュアブート制御部112は、このモジュール#21の検証の結果、エラーが検出された場合には、セキュアブートを中止し、検証の結果が成功であった場合に、第2の記憶部121からモジュール#21に対応する証明書#21を読み出す(S1307)。
第1のセキュアブート制御部112は、読み出した証明書#21のハッシュ演算を行い、その結果と連携証明書拡張データの証明書ダイジェスト1201とを照合し、さらに、連携証明書拡張データのハッシュ演算を行い、その結果と連携証明書1200の拡張データダイジェスト1107と照合することで連携証明書拡張データが改竄されていないことを検証する(S1308)。
第1のセキュアブート制御部112は、この連携証明書拡張データの検証の結果、エラーが検出された場合には、セキュアブートを中止し、検証の結果が成功であった場合に、第2のセキュリティモジュールに読み出した証明書#21の検証を要求する検証要求を送信する(S1309)。
検証要求を受信した第2のセキュリティモジュール123は、証明書検証部が受信した証明書を検証する(S1310)。
この証明書の検証では、まず、第2のセキュリティモジュールが保持する証明書#21の検証鍵ID1106が示す鍵を用いて電子署名1108が検証される。
さらに、証明書#21の参照カウンタ値1102が、カウンタ部224が保持するカウンタ値以上であることを判定し、証明書#21がリボークされた古い証明書ではないことが検証される。
次に、照合部223が、構成情報保持部227が保持する累積ハッシュ値と証明書#21の中の構成照合値1103とを照合し、モジュール#21を実行する前の状態として第2の情報処理部側が正しい状態(第2のモジュール群のモジュールが起動されていない状態)であることを検証する。
照合部223による検証結果を受信した証明書検証部は、この検証結果を第1のセキュアブート制御部112に送信する(S1311)。
検証結果を受信した第1のセキュアブート制御部112は、何れかの検証処理でエラーが検出された場合にはセキュアブートを中止し、すべての検証処理の結果が成功であった場合に、モジュール#21を起動し、CPU101がモジュール#21のコードイメージを実行する(S1312)。
この後、第2のセキュアブート制御部122により第2のモジュール群のセキュアブートが開始される。
以上のように、連携証明書を用いて、セキュアブートを行うことで、2つのセキュアブートを一連のセキュアブートとして実行することが出来る。
次に、図14、15を用いて、連携証明書1200の更新処理の動作について説明する。
連携証明書1200の更新処理は、第2のモジュール群において最初に起動されるべきモジュール#21の証明書#21が更新された場合、または、連携証明書1200の依存リスト507に示されているモジュール#11、#12、#13の何れかが更新された場合に開始される。
証明書#21が更新された場合には、ダウンロード更新部124から連携証明書更新部135に証明書#21が更新されたことが通知され、モジュール#11、#12、#13の何れかが更新された場合には、ダウンロード更新部114から連携証明書更新部135に更新されたことが通知される。
まず、更新の通知を受信した連携証明書更新部135は、連携証明書記憶部131から連携証明書1200と連携証明書拡張データを読み出し(S1401)、第1のセキュリティモジュールに読み出した連携証明書1200の検証を要求する検証要求を送信する(S1402)。
検証要求を受信した第1のセキュリティモジュール113は、証明書検証部が受信した連携証明書を検証する(S1403)。
この連携証明書の検証では、まず、連携証明書1200の電子署名1108が検証され、さらに、連携証明書1200の参照カウンタ値1102が、カウンタ部214が保持するカウンタ値以上であることを判定し、連携証明書1200がリボークされた古い連携証明書ではないことが検証される。
証明書検証部は、この検証結果を第1のセキュアブート制御部112に送信する(S1404)。
検証結果を受信した連携証明書更新部135は、検証処理でエラーが検出された場合には、エラーが検出された連携証明書をもとに連携証明書の更新処理を行うことは出来ないので更新処理を中止し、検証処理の結果が成功であった場合に、第2の記憶部121からモジュール#21に対応する証明書#21を読み出す(S1405)。
連携証明書更新部135は、連携証明書拡張データのハッシュ演算を行い、その結果と連携証明書1200の拡張データダイジェスト1107と照合することで連携証明書拡張データが改竄されていないことを検証する(S1406)。
連携証明書更新部135は、この連携証明書拡張データの検証の結果、エラーが検出された場合には、セキュアブートを中止し、検証の結果が成功であった場合に、第2のセキュリティモジュールに読み出した証明書#21の検証を要求する検証要求を送信する(S1407)。
検証要求を受信した第2のセキュリティモジュール123は、証明書検証部が受信した証明書#21を検証する(S1408)。
この証明書#21の検証では、まず、証明書#21の電子署名1108が検証され、さらに、証明書#21の参照カウンタ値1102が、カウンタ部224が保持するカウンタ値以上であることを判定し、証明書#21がリボークされた古い証明書ではないことが検証される。
証明書検証部は、この検証結果を連携証明書更新部135に送信する(S1409)。
検証結果を受信した連携証明書更新部135は、検証処理でエラーが検出された場合には更新処理を中止し、検証処理の結果が成功であった場合に、第1の記憶部111から連携証明書拡張データの依存リストが示す全ての証明書を読み出し(S1410)、第1のセキュリティモジュールに読み出した証明書の検証を要求する検証要求を送信する(S1411)。
検証要求を受信した第1のセキュリティモジュール113は、証明書検証部が受信した証明書を検証する(S1412)。
この証明書の検証では、まず、証明書の電子署名1108が検証され、さらに、証明書の参照カウンタ値1102が、カウンタ部214が保持するカウンタ値以上であることを判定し、証明書がリボークされた古い証明書ではないことが検証される。
証明書検証部は、この検証結果を連携証明書更新部135に送信する(S1413)。
検証結果を受信した連携証明書更新部135は、検証処理でエラーが検出された場合には更新処理を中止し、検証処理の結果が成功であった場合に、連携証明書拡張データの依存リストをもとに新しい連携証明書の構成照合値1103を算出する(S1414)。具体的には、連携証明書拡張データの依存リストが示す各証明書のモジュール計測値を、依存リストが示す順番で、各証明書のレジスタインデックスが示すレジスタに対して累積ハッシュ演算を仮想的に実行した場合の累積ハッシュ値を算出する。
次に、連携証明書更新部135は、証明書#21のハッシュ演算を行い、連携証明書拡張データの証明書ダイジェストを更新し、さらに、連携証明書拡張データのハッシュ演算を行い連携証明書の拡張データダイジェスト1107を算出する(S1415)。
さらに、連携証明書更新部135は、証明書#21のモジュール計測値1105を新しい連携証明書のモジュール計測値505に設定し(S1416)、第1のセキュリティモジュール113に電子署名の生成を要求する署名要求を送信する(S1417)。
署名要求を受信した第1のセキュリティモジュール113は、電子署名を生成し(S1418)、生成した電子署名を連携証明書更新部135に送信する(S1419)。
連携証明書更新部135は、受信した電子署名を新しい連携証明書の電子署名1108に設定し、連携証明書記憶部131に保持されている連携証明書と連携証明書拡張データをそれぞれ新しい連携証明書と連携証明書拡張データに更新して、更新処理を完了する(S1420)。
この後、端末100は、新しい連携証明書を用いて、第1のモジュール群と第2のモジュール群の2つのセキュアブートを一連のセキュアブートとして実行することが出来る。
以上のように、連携証明書の依存リストに基づき、証明書を参照して構成照合値を算出することで、新しい連携証明書を端末100の内部で生成することができる。
これにより、第1のモジュール群のソフトウェアモジュールを提供する第1の提供者、及び、第2のモジュール群のソフトウェアモジュールを提供する第2の提供者は、提供するソフトウェアモジュールを新しいソフトウェアモジュールに更新する際に、更新情報を事前に通知する必要がなく、提供者間の独立性を維持した上で個別に新しいソフトウェアモジュールを提供することが出来る。
本発明の第2の実施形態の場合、セキュリティモジュールにおける証明書の検証処理と連携証明書の検証処理を共通化できるため、メモリ等のセキュリティモジュールにおいて必要となるリソースを削減できるため、セキュリティモジュールを低コストで提供できるというメリットがある。
なお、上記で説明した連携証明書の更新において連携証明書更新部135が行っている処理の一部を、第1のセキュリティモジュールが行うようにしても良い。具体的には、構成照合値の算出(S1413)、証明書#21の構成照合値を第2の構成照合値に設定(S1414)、拡張データダイジェストの算出(S1415)、証明書#21のモジュール計測値をモジュール計測値に設定(S1416)の何れかまたはすべての処理を第1のセキュリティモジュールが行う。
この場合、これらの処理を、耐タンパ化された第1のセキュリティモジュールが行うことで、連携証明書に不正な照合値が設定されるといった改竄行為を防止することができ、安全性が向上する。
なお、連携証明書を格納する連携証明書記憶部131を、第1の記憶部111の中に設け、連携証明書更新部135を第1の情報処理部110の中に設けるようにしてもよい。
この場合、連携証明書を格納するために必要な記憶領域を第1の記憶部の中に確保することで、連携証明書を格納する記憶領域を確保するための分の新たなコストアップを回避できる。
また、連携証明書を格納する連携証明書記憶部131を、第2の記憶部121の中に設け、連携証明書更新部135を第2の情報処理部120の中に設けるようにしてもよい。
この場合、連携証明書を格納するために必要な記憶領域を第2の記憶部の中に確保することで、連携証明書を格納する記憶領域を確保するための分の新たなコストアップを回避できる。また、この場合には、連携証明書の電子証明508は、第2のセキュリティモジュールが生成する。
なおまた、連携処理部130に第3のセキュアブート制御部、第3のセキュリティモジュールを設けて、上記において、図6を用いて説明したセキュアブートを第1のセキュアブート制御部の代わりに第3のセキュアブート制御部を用いて行うようにしてよい。
(実施の形態3)
本発明の実施の形態3では、上述してきた実施の形態1をTrusted Computing Group(TCG)で規定している仕様に基づいて実現してもよい。
この場合、セキュリティモジュールは、TCGで規定しているTPMモジュールまたはMTMモジュールであり(以降のTPMとは、TPMあるいはMTMを意味するものとする)、構成情報保持部は、TPMが備えるPCRであり、カウンタ部は、TPMが備えるMonotonic Counterであり、累積部、証明書検証部、照合部は、TPMコマンド処理を含んだTCG機能を実現する部であり、証明書#11、#12、#13、証明書#21、#22、#23は、External RIM_Cert、もしくはInternal RIM_Certである。これによって、TCG仕様に基づいて安全にソフトウェアの更新が可能となる。
(その他変形例)
なお、本発明を上記実施の形態に基づいて説明してきたが、本発明は、上記の実施の形態に限定されないのはもちろんである。以下のような場合も本発明に含まれる。
(1)上記の各装置は、具体的には、マイクロプロセッサ、ROM、RAM、ハードディスクユニット、ディスプレイユニット、キーボード、マウスなどから構成されるコンピュータシステムである。前記RAMまたはハードディスクユニットには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムにしたがって動作することにより、各装置は、その機能を達成する。ここでコンピュータプログラムは、所定の機能を達成するために、コンピュータに対する指令を示す命令コードが複数個組み合わされて構成されたものである。なお、各装置は、マイクロプロセッサ、ROM、RAM、ハードディスクユニット、ディスプレイユニット、キーボード、マウスなどの全てを含むコンピュータシステムには限らず、これらの一部から構成されているコンピュータシステムであってもよい。
(2)上記の各装置を構成する構成要素の一部または全部は、1個のシステムLSI(Large Scale Integration:大規模集積回路)から構成されているとしてもよい。システムLSIは、複数の構成部を1個のチップ上に集積して製造された超多機能LSIであり、具体的には、マイクロプロセッサ、ROM、RAMなどを含んで構成されるコンピュータシステムである。前記RAMには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムにしたがって動作することにより、システムLSIは、その機能を達成する。
また、上記の各装置を構成する構成要素の各部は、個別に1チップ化されていても良いし、一部又は全てを含むように1チップ化されてもよい。
また、ここでは、システムLSIとしたが、集積度の違いにより、IC、LSI、スーパーLSI、ウルトラLSIと呼称されることもある。また、集積回路化の手法はLSIに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサーを利用しても良い。
さらには、半導体技術の進歩又は派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適用等が可能性としてありえる。
(3)上記の各装置を構成する構成要素の一部または全部は、各装置に脱着可能なICカードまたは単体のモジュールから構成されているとしてもよい。前記ICカードまたは前記モジュールは、マイクロプロセッサ、ROM、RAMなどから構成されるコンピュータシステムである。前記ICカードまたは前記モジュールは、上記の超多機能LSIを含むとしてもよい。マイクロプロセッサが、コンピュータプログラムにしたがって動作することにより、前記ICカードまたは前記モジュールは、その機能を達成する。このICカードまたはこのモジュールは、耐タンパ性を有するとしてもよい。
(4)本発明は、上記に示す方法であるとしてもよい。また、これらの方法をコンピュータにより実現するコンピュータプログラムであるとしてもよいし、前記コンピュータプログラムからなるデジタル信号であるとしてもよい。
また、本発明は、前記コンピュータプログラムまたは前記デジタル信号をコンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、CD−ROM、MO、DVD、DVD−ROM、DVD−RAM、BD(Blu−ray Disc)、半導体メモリなどに記録したものとしてもよい。また、これらの記録媒体に記録されている前記デジタル信号であるとしてもよい。
また、本発明は、前記コンピュータプログラムまたは前記デジタル信号を、電気通信回線、無線または有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものとしてもよい。
また、本発明は、マイクロプロセッサとメモリを備えたコンピュータシステムであって、前記メモリは、上記コンピュータプログラムを記憶しており、前記マイクロプロセッサは、前記コンピュータプログラムにしたがって動作するとしてもよい。
また、前記プログラムまたは前記デジタル信号を前記記録媒体に記録して移送することにより、または前記プログラムまたは前記デジタル信号を前記ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしてもよい。
(5)セキュリティモジュールは、耐タンパソフトウェアまたはソフトウェア及びハードウェアにより実施されるとしてもよい。
(6)CPUは特別な動作モード(セキュアモードなど)を備え、CPUによって実行されるソフトウェアはその特別な動作モード(セキュアモードなど)で動作することで安全に実行されるとしてもよい。
(7)上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよい。
本発明は、パーソナルコンピュータや携帯電話、オーディオプレーヤ、テレビ受像機、ビデオレコーダなど、プログラムデータの更新を行う情報通信機器や家電機器に広く利用することができる。
本発明の端末と同様の構成にすることによって、端末のソフトウェアが、複数の提供者が提供するモジュール群から構成される場合において、モジュール及び証明書を、提供者間の依存関係がない形態で各提供者から個別に提供することが可能となり、提供者間の独立性を維持した上で、モジュール群間を跨るセキュアブートを継続的に行うことが可能となる。
100 端末
101 CPU
110 第1の情報処理部
111 第1の記憶部
112 第1のセキュアブート制御部
113 第1のセキュリティモジュール
114 第1のダウンロード更新部
120 第2の情報処理部
121 第2の記憶部
122 第2のセキュアブート制御部
123 第2のセキュリティモジュール
124 第2のダウンロード更新部
130 連携処理部
131 連携証明書記憶部
135 連携証明書更新部

Claims (8)

  1. 第1ステークホルダーに対応する第1の複数のモジュールと、前記第1の複数のモジュールの各モジュールについて、前記各モジュールのハッシュ値から生成される第1照合値及び前記第1の複数のモジュールに含まれるモジュールのハッシュ値を累積した場合の累積値から生成される第1累積照合値を含む証明書とを格納する第1記憶部と、
    第2ステークホルダーに対応し前記第1の複数のモジュールと依存関係にある第2の複数のモジュールと、前記第2の複数のモジュールの各モジュールについて、前記各モジュールのハッシュ値から生成される第2照合値及び前記第2の複数のモジュールに含まれるモジュールのハッシュ値を累積した場合の累積値から生成される第2累積照合値を含む証明書とを格納する第2記憶部と、
    前記第1の複数のモジュールの各モジュールの実際のハッシュ値と前記第1照合値とを比較して、前記第1の複数のモジュールの正当性を検証し、前記検証された第1の複数のモジュールを起動する第1制御部と、
    前記第1の複数のモジュールの正当性が検証された場合、前記第2の複数のモジュールの各モジュールの実際のハッシュ値と前記第2照合値とを比較して、前記第2の複数のモジュールの正当性を検証し、前記検証された第2の複数のモジュールを起動する第2制御部と、
    前記第2の複数のモジュールの先頭モジュールの正当性を検証する第3照合値及び前記第1の複数のモジュールに含まれるモジュールのハッシュ値を累積した場合の累積値から生成される第3累積照合値を含む連携証明書の保持部と、を具備し、
    前記第1制御部は、前記第1の複数のモジュールを更新した場合、更新後の第1の複数のモジュールの証明書について前記証明書の署名を検証すると、前記検証された証明書の中の第1照合値を用いて前記連携証明書に含まれる第3累積照合値を更新し、
    前記第1制御部は、前記第1の複数のモジュールを起動した後、
    前記連携証明書に含まれる第3累積照合値を用いて正当な第1の複数のモジュールが起動していることを検証し、かつ、前記第2の複数のモジュールの先頭モジュールの正当性を、前記連携証明書に含まれる第3照合値を用いて検証した場合に、前記第2の複数のモジュールの先頭モジュールを起動し、
    前記第2制御部は、前記第2の複数のモジュールの正当性を検証して、前記第2の複数のモジュールを起動させることを特徴とする情報処理装置。
  2. 前記第2制御部によって管理され起動済みの前記第2の複数のモジュールに含まれるモジュールのハッシュ値を累積した場合の累積値を格納する第3記憶部を有し、
    前記連携証明書は、さらに、前記第2の複数のモジュールが起動されていないことを示す第4累積照合値を含み、
    前記第1制御部は、さらに、
    第2の複数のモジュールの先頭モジュールの正当性を検証すると、
    前記第2制御部から前記第3記憶部に格納された第2の複数のモジュールの検証値を取得し、この取得した検証値と前記連携証明書に含まれる第4累積値とを比較して前記第2の複数のモジュールを起動する前に前記第2制御部が起動したモジュールがないことを検証した場合、前記第2の複数のモジュールの先頭モジュールを起動し、
    前記第2制御部は、前記第2の複数のモジュールの正当性を検証して、前記第2の複数のモジュールを起動することを特徴とする請求項1記載の情報処理装置。
  3. 前記保持部は、前記第1記憶部に含まれることを特徴とする請求項1記載の情報処理装置。
  4. 前記第1制御部は、前記第2の複数のモジュールの先頭モジュールが更新された場合、前記連携証明書に含まれる第3照合値を更新することを特徴とする請求項3記載の情報処理装置。
  5. 前記第2制御部は、前記第2の複数のモジュールの先頭モジュールを更新した場合、前記第1制御部にその旨を通知し、
    第1制御部は、前記通知を受信すると、前記連携証明書の前記第3照合値を前記更新された第2の複数のモジュールの先頭モジュールの第2照合値に更新することを特徴とする請求項1記載の情報処理装置。
  6. 第1ステークホルダーに対応する第1の複数のモジュールと、前記第1の複数のモジュールの各モジュールについて、前記各モジュールのハッシュ値から生成される第1照合値及び前記第1の複数のモジュールに含まれるモジュールのハッシュ値を累積した場合の累積値から生成される第1累積照合値を含む証明書とを格納し、
    第2ステークホルダーに対応し前記第1の複数のモジュールと依存関係にある第2の複数のモジュールと、前記第2の複数のモジュールの各モジュールについて、前記各モジュールのハッシュ値から生成される第2照合値及び前記第2の複数のモジュールに含まれるモジュールのハッシュ値を累積した場合の累積値から生成される第2累積照合値を含む証明書とを格納し、
    前記第1の複数のモジュールの各モジュールの実際のハッシュ値と前記第1照合値とを比較して、前記第1の複数のモジュールの正当性を検証し、前記検証された第1の複数のモジュールを起動し、
    前記第1の複数のモジュールの正当性が検証された場合、前記第2の複数のモジュールの各モジュールの実際のハッシュ値と前記第2照合値とを比較して、前記第2の複数のモジュールの正当性を検証し、前記検証された第2の複数のモジュールを起動する情報処理方法であって、
    前記第2の複数のモジュールの先頭モジュールの正当性を検証する第3照合値及び前記第1の複数のモジュールに含まれるモジュールのハッシュ値を累積した場合の累積値から生成される第3累積照合値を含む連携証明書の保持し、
    前記第1の複数のモジュールを更新した場合、更新後の第1の複数のモジュールの証明書について前記証明書の署名を検証すると、前記検証された証明書の中の第1照合値を用いて前記連携証明書に含まれる第3累積照合値を更新し、
    前記第1の複数のモジュールを起動した後、
    前記連携証明書に含まれる第3累積照合値を用いて正当な第1の複数のモジュールが起動していることを検証し、かつ、前記第2の複数のモジュールの先頭モジュールの正当性を、前記連携証明書に含まれる第3照合値を用いて検証した場合に、前記第2の複数のモジュールの正当性を検証して、前記第2の複数のモジュールを起動することを特徴とする情報処理方法。
  7. コンピュータに対し、
    第1ステークホルダーに対応する第1の複数のモジュールと、前記第1の複数のモジュールの各モジュールについて、前記各モジュールのハッシュ値から生成される第1照合値及び前記第1の複数のモジュールに含まれるモジュールのハッシュ値を累積した場合の累積値から生成される第1累積照合値を含む証明書とを第1記憶部に格納する第1処理と、
    第2ステークホルダーに対応し前記第1の複数のモジュールと依存関係にある第2の複数のモジュールと、前記第2の複数のモジュールの各モジュールについて、前記各モジュールのハッシュ値から生成される第2照合値及び前記第2の複数のモジュールに含まれるモジュールのハッシュ値を累積した場合の累積値から生成される第2累積照合値を含む証明書とを第2記憶部に格納する第2処理と、
    前記第1の複数のモジュールの各モジュールの実際のハッシュ値と前記第1照合値とを比較して、前記第1の複数のモジュールの正当性を検証し、前記検証された第1の複数のモジュールを起動する第3処理と、
    前記第1の複数のモジュールの正当性が検証された場合、前記第2の複数のモジュールの各モジュールの実際のハッシュ値と前記第2照合値とを比較して、前記第2の複数のモジュールの正当性を検証し、前記検証された第2の複数のモジュールを起動する第4処理と、を実行させるコンピュータプログラムであって、
    前記第2の複数のモジュールの先頭モジュールの正当性を検証する第3照合値及び前記第1の複数のモジュールに含まれるモジュールのハッシュ値を累積した場合の累積値から生成される第3累積照合値を含む連携証明書を保持部に格納する第5処理を実行させ、
    前記第3処理は、前記第1の複数のモジュールを更新した場合、更新後の第1の複数のモジュールの証明書について前記証明書の署名を検証すると、前記検証された証明書の中の第1照合値を用いて前記連携証明書に含まれる第3累積照合値を更新し、
    前記第3処理は、前記第1の複数のモジュールを起動した後、
    前記連携証明書に含まれる第3累積照合値を用いて正当な第1の複数のモジュールが起動していることを検証し、かつ、前記第2の複数のモジュールの先頭モジュールの正当性を、前記連携証明書に含まれる第3照合値を用いて検証した場合に、前記第4処理を起動して前記第2の複数のモジュールの正当性を検証して、前記第2の複数のモジュールを起動することを特徴とするコンピュータプログラム。
  8. 第1ステークホルダーに対応する第1の複数のモジュールと、前記第1の複数のモジュールの各モジュールについて、前記各モジュールのハッシュ値から生成される第1照合値及び前記第1の複数のモジュールに含まれるモジュールのハッシュ値を累積した場合の累積値から生成される第1累積照合値を含む証明書とを格納する第1記憶部と、
    第2ステークホルダーに対応し前記第1の複数のモジュールと依存関係にある第2の複数のモジュールと、前記第2の複数のモジュールの各モジュールについて、前記各モジュールのハッシュ値から生成される第2照合値及び前記第2の複数のモジュールに含まれるモジュールのハッシュ値を累積した場合の累積値から生成される第2累積照合値を含む証明書とを格納する第2記憶部と、
    前記第1の複数のモジュールの各モジュールの実際のハッシュ値と前記第1照合値とを比較して、前記第1の複数のモジュールの正当性を検証し、前記検証された第1の複数のモジュールを起動する第1制御部と、
    前記第1の複数のモジュールの正当性が検証された場合、前記第2の複数のモジュールの各モジュールの実際のハッシュ値と前記第2照合値とを比較して、前記第2の複数のモジュールの正当性を検証し、前記検証された第2の複数のモジュールを起動する第2制御部と、
    前記第2の複数のモジュールの先頭モジュールの正当性を検証する第3照合値及び前記第1の複数のモジュールに含まれるモジュールのハッシュ値を累積した場合の累積値から生成される第3累積照合値を含む連携証明書の保持部と、を具備した集積回路であって、
    前記第1制御部は、前記第1の複数のモジュールを更新した場合、更新後の第1の複数のモジュールの証明書について前記証明書の署名を検証すると、前記検証された証明書の中の第1照合値を用いて前記連携証明書に含まれる第3累積照合値を更新し、
    前記第1制御部は、前記第1の複数のモジュールを起動した後、
    前記連携証明書に含まれる第3累積照合値を用いて正当な第1の複数のモジュールが起動していることを検証し、かつ、前記第2の複数のモジュールの先頭モジュールの正当性を、前記連携証明書に含まれる第3照合値を用いて検証した場合に、前記第2の複数のモジュールの先頭モジュールを起動し、
    前記第2制御部は、前記第2の複数のモジュールの正当性を検証して、前記第2の複数のモジュールを起動させることを特徴とする集積回路。
JP2010517683A 2008-06-23 2009-05-25 情報処理装置、情報処理方法、これらを実現するコンピュータプログラム及び集積回路 Expired - Fee Related JP5357152B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010517683A JP5357152B2 (ja) 2008-06-23 2009-05-25 情報処理装置、情報処理方法、これらを実現するコンピュータプログラム及び集積回路

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2008163072 2008-06-23
JP2008163072 2008-06-23
JP2010517683A JP5357152B2 (ja) 2008-06-23 2009-05-25 情報処理装置、情報処理方法、これらを実現するコンピュータプログラム及び集積回路
PCT/JP2009/002293 WO2009157133A1 (ja) 2008-06-23 2009-05-25 情報処理装置、情報処理方法、これらを実現するコンピュータプログラム及び集積回路

Publications (2)

Publication Number Publication Date
JPWO2009157133A1 JPWO2009157133A1 (ja) 2011-12-08
JP5357152B2 true JP5357152B2 (ja) 2013-12-04

Family

ID=41444206

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010517683A Expired - Fee Related JP5357152B2 (ja) 2008-06-23 2009-05-25 情報処理装置、情報処理方法、これらを実現するコンピュータプログラム及び集積回路

Country Status (5)

Country Link
US (1) US8510544B2 (ja)
EP (1) EP2293216A1 (ja)
JP (1) JP5357152B2 (ja)
CN (1) CN102037473A (ja)
WO (1) WO2009157133A1 (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2011148523A (ru) * 2009-07-01 2013-08-20 Панасоник Корпорэйшн Способ защищенной загрузки и устройство защищенной загрузки
JP5493946B2 (ja) * 2010-02-08 2014-05-14 株式会社リコー 複合システム、セキュリティ方法、セキュリティプログラム及び記録媒体
WO2012023050A2 (en) 2010-08-20 2012-02-23 Overtis Group Limited Secure cloud computing system and method
US8812830B2 (en) 2011-08-31 2014-08-19 Microsoft Corporation Attestation protocol for securely booting a guest operating system
CN103995479B (zh) * 2014-05-13 2017-04-12 珠海博威智能电网有限公司 基于硬件可信控制的中压开关控制器系统及其使用方法
CN105245327A (zh) * 2015-08-21 2016-01-13 北京比特大陆科技有限公司 比特币工作量证明哈希计算芯片优化的方法、装置和电路
JP6719894B2 (ja) * 2015-12-04 2020-07-08 キヤノン株式会社 機能デバイス、制御装置
US10528739B2 (en) * 2016-04-20 2020-01-07 Sophos Limited Boot security
US11120137B2 (en) * 2018-06-19 2021-09-14 Netgear, Inc. Secure transfer of registered network access devices
US11397815B2 (en) * 2018-09-21 2022-07-26 Hewlett Packard Enterprise Development Lp Secure data protection
KR20200119601A (ko) * 2019-04-10 2020-10-20 현대모비스 주식회사 차량의 바이너리 데이터 처리 장치 및 방법
US11366879B2 (en) * 2019-07-08 2022-06-21 Microsoft Technology Licensing, Llc Server-side audio rendering licensing
DE102019216527A1 (de) * 2019-10-28 2021-04-29 Robert Bosch Gmbh Gerät, system und verfahren zum nachweis eines integritätszustands eines geräts

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10333902A (ja) * 1997-05-27 1998-12-18 N Ii C Joho Syst:Kk 改ざん検知機能付きコンピュータシステム
JP2007072909A (ja) * 2005-09-08 2007-03-22 Internatl Business Mach Corp <Ibm> 秘密情報へのアクセスを制御するシステムおよびその方法
JP2007257197A (ja) * 2006-03-22 2007-10-04 Fujitsu Ltd 起動検証機能を有する情報処理装置
WO2008004524A1 (fr) * 2006-07-03 2008-01-10 Panasonic Corporation Dispositif de certification, dispositif de vérification, système de vérification, programme informatique et circuit intégré

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2755259B1 (fr) * 1996-10-25 1999-01-22 Somfy Procede de mise en correspondance d'un boitier de commande de groupe avec un boitier de commande et/ou un boitier d'action et/ou un boitier de mesure
US6223291B1 (en) * 1999-03-26 2001-04-24 Motorola, Inc. Secure wireless electronic-commerce system with digital product certificates and digital license certificates
US20040193872A1 (en) * 2001-07-09 2004-09-30 Mart Saarepera System and method for renewing and extending digitally signed certificates
JP2004013477A (ja) 2002-06-06 2004-01-15 Nec Viewtechnology Ltd ブートプログラム選択及び更新方法並びにこれを用いたフラッシュメモリ
US20050021968A1 (en) 2003-06-25 2005-01-27 Zimmer Vincent J. Method for performing a trusted firmware/bios update
US20050283601A1 (en) * 2004-06-22 2005-12-22 Sun Microsystems, Inc. Systems and methods for securing a computer boot
KR101209252B1 (ko) * 2007-02-02 2012-12-06 삼성전자주식회사 전자기기의 부팅 방법 및 부팅 인증 방법
US7958367B2 (en) * 2007-05-30 2011-06-07 Hitachi, Ltd. Authentication system and apparatus
WO2009044533A1 (ja) 2007-10-05 2009-04-09 Panasonic Corporation セキュアブート端末、セキュアブート方法、セキュアブートプログラム、記録媒体及び集積回路

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10333902A (ja) * 1997-05-27 1998-12-18 N Ii C Joho Syst:Kk 改ざん検知機能付きコンピュータシステム
JP2007072909A (ja) * 2005-09-08 2007-03-22 Internatl Business Mach Corp <Ibm> 秘密情報へのアクセスを制御するシステムおよびその方法
JP2007257197A (ja) * 2006-03-22 2007-10-04 Fujitsu Ltd 起動検証機能を有する情報処理装置
WO2008004524A1 (fr) * 2006-07-03 2008-01-10 Panasonic Corporation Dispositif de certification, dispositif de vérification, système de vérification, programme informatique et circuit intégré

Also Published As

Publication number Publication date
CN102037473A (zh) 2011-04-27
EP2293216A1 (en) 2011-03-09
US20110066838A1 (en) 2011-03-17
WO2009157133A1 (ja) 2009-12-30
US8510544B2 (en) 2013-08-13
JPWO2009157133A1 (ja) 2011-12-08

Similar Documents

Publication Publication Date Title
JP5357152B2 (ja) 情報処理装置、情報処理方法、これらを実現するコンピュータプログラム及び集積回路
JP5385148B2 (ja) セキュアブート端末、セキュアブート方法、セキュアブートプログラム、記録媒体及び集積回路
US9626513B1 (en) Trusted modular firmware update using digital certificate
US8479000B2 (en) Information processing device, authentication system, authentication device, information processing method, information processing program, recording medium, and integrated circuit
JP5178341B2 (ja) オプショナルなコンポーネントを伴うセキュアブートの方法
KR102230834B1 (ko) 집적회로들에서의 보안 피쳐 및 키 관리
US8782388B2 (en) Information processing apparatus, method, and computer-readable storage medium that encrypt data in a blob based on a hash value
KR101067615B1 (ko) 전자 장치에의 데이터 로딩
US9805173B2 (en) Information processing device, information storage device, server, information processing system, information processing method and medium for reproduction of encrypted content
US8464043B2 (en) Information security device and information security system
JP5097130B2 (ja) 情報端末、セキュリティデバイス、データ保護方法及びデータ保護プログラム
RU2601862C2 (ru) Способ, аппарат и устройство обработки шифрования и дешифрования
US20100063996A1 (en) Information processing device, information recording device, information processing system, program update method, program, and integrated circuit
US20090019551A1 (en) Information security device and counter control method
WO2011001685A1 (en) Secure boot method and secure boot apparatus
US20100083006A1 (en) Memory controller, nonvolatile memory device, nonvolatile memory system, and access device
US20110081017A1 (en) Key migration device
JP2009003853A (ja) 複数のソフトウェアを正しい順番で起動する情報端末およびセキュリティモジュール
JP2012039390A (ja) フレキシブル認証ルールの修正

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120123

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130829

R150 Certificate of patent or registration of utility model

Ref document number: 5357152

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees