JP4956292B2 - 情報セキュリティ装置およびカウンタ制御方法 - Google Patents

情報セキュリティ装置およびカウンタ制御方法 Download PDF

Info

Publication number
JP4956292B2
JP4956292B2 JP2007166321A JP2007166321A JP4956292B2 JP 4956292 B2 JP4956292 B2 JP 4956292B2 JP 2007166321 A JP2007166321 A JP 2007166321A JP 2007166321 A JP2007166321 A JP 2007166321A JP 4956292 B2 JP4956292 B2 JP 4956292B2
Authority
JP
Japan
Prior art keywords
counter
shared
program
information
group
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
JP2007166321A
Other languages
English (en)
Other versions
JP2009003855A (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 JP2007166321A priority Critical patent/JP4956292B2/ja
Priority to US12/146,269 priority patent/US20090019551A1/en
Publication of JP2009003855A publication Critical patent/JP2009003855A/ja
Application granted granted Critical
Publication of JP4956292B2 publication Critical patent/JP4956292B2/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/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
    • 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/3271Cryptographic 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 challenge-response
    • H04L9/3273Cryptographic 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 challenge-response for mutual authentication
    • 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/60Digital content management, e.g. content distribution
    • H04L2209/603Digital right managament [DRM]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Description

本発明は、セキュリティモジュール間でのセキュアなカウンタの共有方法に関するものである。
近年、情報セキュリティへの意識の高まりと共に、データを保護する技術ニーズが高まってきている。
これを背景として、セキュアなコンピュータプラットフォームを開発、普及させることを目的として、Trusted Computing Group(TCG)が設立された。TCGでは、Trusted Platform Module(TPM)と呼ばれるセキュリティコアモジュールを利用し、安全な端末環境を実現している。安全な端末環境を実現するためのTCGの一機能として、非特許文献1は、TPM内で管理されているMonotonic Counterと呼ばれるセキュアなカウンタ仕様がある。このカウンタは、端末内のプログラムや証明書を、古いバージョンのプログラムや証明書に書き変えるロールバック攻撃を防ぐために利用される。
上述したように、TPMでは、Monotonic Counterの利用方法が制限されている。そのため、非特許文献2には、TPM内のセキュアカウンタを新たに増やすことなく、TPM外でVirtualなMonotonic Counterを実現する技術が開示されている。
また、特許文献1では、親カウンタと複数の子カウンタを利用したセキュアカウンタの実装方法が開示されている。
TPM Main Part1 Design Principles Specification Version1.2 Revision94 「Virtual Monotonic Counters andCount−Limited Objects using a TPM without Trusted OS(Extended Version)」、Luis F.G.Sarmenta(2006) 特開2004−38968
非特許文献1記載の技術ではTPMに搭載されるMonotonic Counterの個数が少なく、且つそのカウンタの利用方法も制限されており、カウンタの追加や削除ができないという課題があった。さらには、Monotonic Counterは、TPM内で管理されるため、複数のTPM間でセキュアカウンタを共有することができないという課題があった。
また、非特許文献2記載の技術では、非特許文献1の課題を解決するために、TPM内のセキュアカウンタを増やすことなく、TPM外でVirtualなMonotonic Counterを実現している。しかしながら、複数のTPMが1つの端末内にあるモデルにおいて、それら複数のTPM間でVirtualなMonotonic Counterを共有することができないというという課題があった。
また、特許文献1記載の技術も非特許文献2の記載の技術と同様に、1つのセキュアモジュールが、親カウンタと複数の子カウンタを管理する方法が開示されているが、1つのカウンタを複数のセキュアデバイス間で共有利用する仕組みがないという課題があった。
そこで、本発明は従来の課題を解決するもので、セキュアモリの使用量を抑えつつ、複数のセキュアモジュール間でツリー構造のカウンタを共有する方法と、共有したセキュアカウンタに対して柔軟な設定が可能なアクセス制御方法を提供することを目的とする。
上記の課題を解決するために、本発明に係る情報セキュリティ装置は、第1のプログラムと第2のプログラムを格納するプログラム格納手段と、第1のプログラムが利用する少なくとも1つ以上のカウンタから構成される第1カウンタ群と、第2のプログラムが利用する少なくとも1つ以上のカウンタから構成される第2のカウンタ群と、第1のカウンタ群と第2のカウンタ群を格納するカウンタ格納手段と、第1のカウンタ群の完全性を示すための情報である第1のカウンタ認証情報と、第2のカウンタ群の完全性を示すための情報である第2のカウンタ認証情報と、第1のカウンタ群のカウンタ認証情報、または、第2のカウンタ群のカウンタ認証情報を格納するセキュアメモリと、第1のカウンタ群の完全性を検証するために、第1のカウンタ認証情報と比較される値である第1のカウンタ算出情報、または、第2のカウンタ群の完全性を検証するために、第2のカウンタ認証情報と比較される値である第2のカウンタ算出情報を算出する測定手段と、測定手段にて算出された前記第1のカウンタ算出情報と前記第1のカウンタ認証情報との比較、または、第2のカウンタ算出情報と第2のカウンタ認証情報との比較する検証手段と、検証手段の比較結果によって、第1のプログラムからの第1のカウンタ群へのアクセス、または、第2のプログラムからの第2のカウンタ群へのアクセスを制御するカウンタ制御手段と、第1のカウンタ群を構成する少なくとも1つ以上のカウンタが、第2のカウンタ群を構成するカウンタであり、第2のカウンタ群を構成する少なくとも1つ以上のカウンタが、第1のカウンタ群を構成するカウンタである、少なくとも1つ以上の共有カウンタを備えることを特徴とする。
この構成によると、第1のプログラムで利用する第1のカウンタ群と、第2のプログラムで利用する第2のカウンタ群との間で、第1と第2のプログラムから、利用可能なカウンタを提供することが可能になる。さらには、セキュアメモリでは、カウンタ群を全てセキュアに記憶しておく必要はなく、カウンタ群から生成されるカウンタ認証情報のみを記憶しておけばよいため、必要となるセキュアなメモリサイズを抑えることが可能となる。さらには、従来はハードウェア内でカウンタを実装することでセキュアなカウンタを実現していたが、本発明により、セキュアメモリ外で複数のカウンタを有するカウンタ群を構築することが可能になるので、カウンタの個数を柔軟に設計することが可能となる。
また、本発明に係る情報セキュリティ装置は、第1のカウンタ群と第2のカウンタ群がそれぞれ、親ノードに、子ノードが格納しているデータを連結したデータに対する完全性を示すための情報であるハッシュ値を配置し、リーフノードに、カウンタの値を配置するツリー構造を備えることを特徴とする。
この構成によると、ツリー構造の中間のノードを共有するだけで、複数のカウンタの追加や削除や無効化といった設定が柔軟になる。さらには、各共有カウンタが、どのプログラムと共有化されているかの管理が容易になる。
また、本発明に係る情報セキュリティ装置は、カウンタ制御手段が、カウンタ管理テーブルを備え、カウンタ管理テーブルは、カウンタ群1、または、カウンタ群2を構成するノードを識別するノード識別情報と、ノードにアクセス可能なプログラムを識別するためのプログラム識別情報を含むことを特徴とする。
この構成によると、カウンタを利用可能なプログラムをプログラム識別情報で管理することが可能となる。
また、本発明に係る情報セキュリティ装置は、カウンタ管理テーブルに、前記共有カウンタに関連するノード識別情報と、共有カウンタにアクセス可能なプログラムを識別するためのプログラム識別情報を含むことを特徴とする。
この構成によると、共有カウンタを利用可能なプログラムをプログラム識別情報で管理することが可能となり、共有カウンタへアクセス可能なプログラムの追加や削除やアクセス制限の設定がより柔軟にできる。
また、本発明に係る情報セキュリティ装置は、カウンタ管理テーブルが、共有カウンタへアクセス可能なプログラムを識別するためのプログラム識別情報と共有カウンタへのアクセス可否情報とを対応づけて記憶しており、セキュアメモリが、共有カウンタを利用するプログラムの完全性を検証するためのプログラム認証情報を記憶し、測定手段が、プログラムの完全性を検証するためにプログラム認証情報と比較されるプログラム算出情報を算出し、検証手段が、プログラム算出情報と、プログラム認証情報を比較し、カウンタ制御手段が、検証手段から、比較の結果が等しいという結果情報を受信した時に、測定手段および検証手段により完全性を検証の対象であるプログラムのプログラム識別情報に対応するアクセス許可情報を、アクセス可に設定し、検証手段から、比較の結果が等しくないという結果を受信した時に、測定手段および前記検証手段により完全性を検証の対象であるプログラムのプログラム識別情報に対応するアクセス許可情報を、アクセス不可に設定することを特徴とする。
この構成によると、共有カウンタを利用可能なプログラムが改竄された場合に、改竄されたプログラムから共有カウンタへのアクセス制限をかけることが可能となる。
また、本発明に係る情報セキュリティ装置は、プログラムを更新するための更新手段を備え、更新手段が、共有カウンタ管理テーブルのアクセス許可情報が不可に設定されているプログラム識別情報に対応するプログラムの更新処理を行うことを特徴とする。
この構成によると、共有カウンタを利用可能なプログラムが改竄された場合に、アクセス許可情報を参照することで、更新すべきプログラムが端末内に存在するか確認できる。さらには、改竄されたプログラムが存在した場合、更新手段が、改竄されたプログラムを更新するため、端末内を、常に安全な環境にすることが可能となる。
また、本発明に係る情報セキュリティ装置は、セキュアモジュールを備え、セキュアモジュールが、測定手段と、検証手段と、カウンタ制御手段と前記セキュアメモリを含み、耐タンパ化されていることを特徴とする。
この構成によると、カウンタの操作に関連する各手段が、耐タンパ化されているので、カウンタがより安全に実装可能となる。
また、本発明に係る情報セキュリティ装置は、少なくとも2つ以上の前記セキュアモジュールを含むことを特徴とする。
この構成によると、複数のセキュアモジュール間での共有カウンタを構築することが可能となる。さらには、共有カウンタを利用して、セキュアモジュール間で共有して利用される共有データのバックアップ・リストア攻撃を防ぐことが可能となる。
また、本発明に係る情報セキュリティ装置は、前記セキュアモジュールが鍵生成手段と暗号化手段を備え、セキュアモジュールが共有して利用する共有データと、共有データを格納する共有データ格納手段とを備え、鍵生成手段が、共有カウンタを利用して共有データ暗号鍵を生成し、共有データを共有データ暗号鍵で暗復号処理することを特徴とする。
この構成によると、共有データをより安全に管理することが可能となる。具体的には、DRMアプリケーションにおける権利管理において、悪意のあるユーザが権利消費前の権利をバックアップしておき、権利を消費した後にバックアップしておいた権利消費前の権利をリストアすることで、永久に権利消費が行われないようなバックアップ・リストア攻撃を防止することが可能となる。
また、本発明に係る情報セキュリティ装置は、セキュアモジュールが、Trusted Computing Group(TCG)で仕様化しているTPMで実現されていることを特徴とする。
この構成によると、本発明に係る情報セキュリティ装置は、安全な実行環境を構築することができ、カウンタの制御もより安全に実行することが可能となる、
また、本発明に係る情報セキュリティ装置は、セキュアモジュールが、Trusted Computing Group(TCG)で仕様化しているMTMで実現されていることを特徴とする。
この構成によると、本発明に係る情報セキュリティ装置を携帯電話で実装することが可能となる。また、MTMの特徴であるマルチステークホルダー間でカウンタを共有することができる。さらには、共有カウンタを利用して、マルチステークホルダー間で利用する共有データに対するバックアップ・リストア攻撃を防ぐことが可能となる。
また、本発明に係るカウンタを制御方法は、少なくとも1つ以上のカウンタから構成される第1のカウンタ群と、少なくとも1つ以上のカウンタから構成される第2のカウンタ群をカウンタ格納手段に格納するステップと、カウンタ格納手段から、第1のカウンタ群、または前記第2のカウンタ群に対するアクセスするステップと、第1のカウンタ群を構成している第1のカウンタと、第2のカウンタ群を構成している第2のカウンタを共有するステップと、共有ステップにて共有したカウンタを読み出すリードステップと、共有ステップにて共有したカウンタの値を増加するインクリメントステップと、共有カウンタへアクセスするプログラムの完全性を検証するステップと、完全性検証ステップの結果、プログラムが改竄されていると判定された場合に前記プログラムが共有カウンタをアクセスを許可とするステップと、完全性検証ステップの結果、プログラムが改竄されていると判定された場合に前記プログラムが共有カウンタをアクセスを不許可とするステップとを含むことを特徴とする。
この構成によると、共有カウンタへアクセスするプログラムの完全性検証を行い、改竄されていないプログラムに対してのみ、共有カウンタを利用可能とすることができる。また、改竄されていると判定され、共有カウンタが利用不可となったプログラムが、正常にアップデートされた場合に、共有カウンタの利用を復活させることが可能となる。したがって、ユーザの故意でなくプログラムが壊れた場合にも、壊れたプログラムをアップデートさせることで再度カウンタを利用可能となる。
以下、本発明の実施の形態について、図面を参照しながら説明する。
(実施の形態1)
本発明の実施の形態について、以下に説明する
<端末の構成>
図1は、本実施の形態1における端末10の全体構成図である。
本実施の形態1では、2つのアプリケーションApp1(41)、アプリケーションApp2(42)が、それぞれセキュアモジュール50、60内のカウンタ制御手段(53、63)が管理するカウンタ群(71、72)を利用して、共有データをアクセスして所望の処理を行う情報セキュリティ装置について説明する。
同図に示すように、情報セキュリティ装置10は、CPU20、RAM30、プログラム格納手段40、セキュアモジュール1(50)、セキュアモジュール2(60)、カウンタ格納手段70、共有データ格納手段80とから構成され、バス90を介して互いに接続されている。
CPU20は、プログラム格納手段40に格納されているプログラム、RAM30、セキュアモジュール1(50)、セキュアモジュール(60)に記憶されている各プログラムを実行することで、下記の各種の機能部を実現する。
RAM30は、揮発性の記憶媒体であって、プログラム格納手段40に格納されているプログラムをロードし、記憶する。さらには、CPU20にて実行されるプログラムのワークメモリとして一時的なデータを記憶する。
プログラム格納手段40は、不揮発性で、データの書込みおよび消去可能な記録媒体であり、例えば、ハードディスクやFlashメモリなどであり、本実施の形態では、アプリケーションApp1(41)とアプリケーションApp2(42)を記憶している。
セキュアモジュール1(50)は、アプリケーションApp1(41)から利用され、検証手段51、測定手段52、カウンタ制御手段53、暗号手段54、セキュアメモリ55、共有データアクセス手段56から構成され、耐タンパ実装がされているモジュールである。
セキュアモジュール1(50)内のセキュアメモリ55は、不揮発性で、データの書込みおよび消去可能な記録媒体であり、カウンタ群1の認証ハッシュ値を格納する。ここで、認証ハッシュ値は、カウンタ群1の完全性を検証するために利用するハッシュ値である。この認証ハッシュ値の生成方法については、後述するので、ここでは説明を省略する。
セキュアモジュール1(50)内の測定手段52は、カウンタ群1(71)の完全性を検証するために利用するハッシュ値を算出する手段であり、具体的には、SHA(Secure Hash Algorithm)1アルゴリズムを用いる。
セキュアモジュール1(50)内の検証手段51は、測定手段52によって算出されたカウンタ群1(71)のハッシュ値と、認証されたカウンタ群1(71)のハッシュ値を比較し、比較結果をカウンタ制御手段53に通知する。
セキュアモジュール1(50)内のカウンタ制御手段53は、検証手段51の結果に応じて、カウンタ群1(71)のリード処理、インクリメント処理を制御し、それらに必要な情報をカウンタ管理情報に記憶している。ここで、リード処理とはカウンタの値を読み出す処理を、インクリメント処理とはカウンタの値を増加させる処理をいう。
暗号手段54は、データの暗復号処理を行う。具体的な暗復号処理手段として、共通鍵暗号方式であるAES(Advanced Encryption Standard)暗号や、公開鍵暗号方式であるRSA暗号、楕円暗号(Elliptic Curve Cryptosystem)である。
共有データアクセス手段は、App1(41)が共有データへアクセスする際に利用する手段であり、共有データ格納手段80に対するリード・ライト処理や、暗号手段54を利用して共有データの暗復号処理を行う。
セキュアモジュール2(60)は、アプリケーションApp2(42)から利用され、検証手段61、測定手段62、カウンタ制御手段63、暗号手段64、セキュアメモリ65、共有データアクセス手段66から構成され、耐タンパ実装がされているモジュールである。
セキュアモジュール2(60)内のセキュアメモリ65は、不揮発性で、データの書込みおよび消去可能な記録媒体であり、カウンタ群2の認証ハッシュ値を格納する。認証ハッシュ値は、カウンタ群2の完全性を検証するために利用するハッシュ値である。この認証ハッシュ値の生成方法については、後述するので、ここでは説明を省略する。
セキュアモジュール2(60)内の測定手段62は、カウンタ群2(72)の完全性を検証するために利用するハッシュ値を算出する手段であり、具体的には、SHA1アルゴリズムを利用する。
セキュアモジュール2(60)内の検証手段61は、測定手段62によって算出されたカウンタ群2(72)のハッシュ値と、認証されたカウンタ群2(72)のハッシュ値を比較し、比較結果をカウンタ制御手段63に通知する。
セキュアモジュール2(60)内のカウンタ制御手段63は、検証手段61の結果に応じて、カウンタ群2(72)のリード処理、インクリメント処理を制御し、それらに必要な制御情報をカウンタ管理テーブルおよび共有カウンタ管理テーブルとしてカウンタ管理情報に記憶している。カウンタ管理テーブルおよび共有カウンタ管理テーブルについては後述する。
暗号手段64は、データの暗復号処理を行う。具体的な暗復号処理手段として、共通鍵暗号であるAES暗号や、公開鍵暗号方式であるRSA暗号、楕円暗号である。
共有データアクセス手段は、App2(42)が共有データへアクセスする際に利用する手段であり、共有データ格納手段80に対するリード・ライト処理や、共有データの暗号手段64を利用して暗復号処理を行う。
なお、セキュアモジュール1(50)やセキュアモジュール(60)は、Trusted Platform Module(TPM)で実現してもよい。またTCG Mobile Phone WGでは同等のセキュリティモジュールをMobile Trusted Module(MTM)として定義しており、セキュアモジュール1(50)やセキュアモジュール(60)を、MTMとして実装してもよい。また、TPM、MTMの実装方法は一般的には半導体を用いた実装により実現されるが、ソフトウェアで実現されてもよい。さらには、ハードウェアとソフトウェア組合せた実装方法でもよい。
また、測定手段(52,62)のハッシュ値算出にはSHA1を利用するとしたが、SHA1処理に限定されるわけではなく、SHA256や、鍵付きハッシュ関数であるKeyed−Hashing for Message Authentication Code(HMAC−SHA1)でもよい。
なお、暗号手段(54、64)は、AES暗号、RSA暗号、楕円暗号に限定されるわけではなく、共通鍵暗号方式、公開鍵暗号方式として一般に利用されている暗号方式であればよい。
なお、セキュアメモリ(55,65)は、セキュアモジュール内に存在していたが、セキュアモジュール外に配置してもよい。その場合、セキュアメモリは、セキュアモジュール外に存在することになるので、耐タンパ性を持たせるようにする。
カウンタ格納手段70は、App1(41)がセキュアモジュール1(50)を介して利用するカウンタ群1(71)と、App2がセキュアモジュール2(60)を介して利用するカウンタ群2(72)とを格納する手段であり、不揮発性で、データ書込み可能な記録媒体である。なお、カウンタ群1(71)とカウンタ群(72)が、それぞれセキュアモジュール1(50)とセキュアモジュール2(50)から利用されるときには、RAM(30)にロードしてから利用してもよい。その場合、カウンタのインクリメント処理等により、RAM(30)上でカウンタ群1(71)、カウンタ群2(72)が更新されれば、更新結果をカウンタ群格納手段70へ反映する。
カウンタ群1(71)とカウンタ群2(72)は、1つ以上のカウンタと、そのカウンタから算出されるハッシュ値から構成され、ツリー構造で管理される。ツリー構造による管理については、図2を用いて後述する。
共有データ格納手段80は、App1(41)とApp2(42)の両アプリケーションが利用する共有データを格納する手段である。共有データ格納手段80へのアクセスは、App1(41)からはセキュアモジュール1(50)の共有データアクセス手段56を介して、App2(42)からはセキュアモジュール2(60)の共有データアクセス手段66を介してアクセスされる。本実施の形態1では、電子マネーや、DRM(Digital Rights Managements)での権利情報などの価値のある情報(以下、バリューと呼ぶ)をセキュアに扱うべき共有データ(セキュアデータ)とし、App1(41)とApp2(42)とが共にバリューを利用して、所望のアプリケーションサービスを実現するものとする。一般にこのようなセキュアデータを管理する場合、セキュアデータをバックアップして、バックアップしておいたデータを端末のメモリにリストア(再書込み)して古いバリューを使い、サービスを不正に受けるというバックアップ・リストア攻撃を防ぐ必要がある。そこで本実施の形態では、共有データを時変鍵で暗号化して管理するものとする。時変鍵とは、時間が経過するごとに、あるタイミングによって鍵の値が変化するものである。時変鍵については、後述する。
<カウンタ群のツリー構造>
図2は、App1(41)がセキュアモジュール1(50)を介して利用するカウンタ群1(71)のツリー構造を示している。
ここで、ルートノードとは親ノードを持たないノードであり、ツリー構造の頂点に位置する。また、中間ノードとは、親ノードと子ノードを持つノードである。また、リーフノードとは、親ノードのみを持つノードである。
同図に示すように、ここでは、カウンタ群1(71)が、カウンタ(C100、C101、C102、C103)の4つのカウンタを有しており、ツリー構造におけるリーフノードとして管理されている。また、ツリー構造の中間ノードであるh100がカウンタC100のハッシュ値、h101がカウンタC101のハッシュ値、h102がカウンタC102のハッシュ値、h103がカウンタC103のハッシュ値を格納している。さらに、中間ノードのh10は、h100とh101を連結した値のハッシュ値を格納しており、中間ノードh11は、h102とh103を連結した値のハッシュ値を格納している。さらに、ルートノードのh1は、h10とh11を連結した値のハッシュ値を格納している。これらのリーフノードと中間ノードとルートノードは、双方向リストで実現されている。
セキュアモジュール1(50)のセキュアメモリ55は、認証ハッシュ値200を記憶している。本実施の形態では、認証ハッシュ値200は、セキュアカウンタ群の完全性を確認するために利用される値であり、ツリー構造のルートノードに格納されている値である。カウンタ群1(71)は、セキュアメモリ外に格納されており、カウンタ群1(71)を利用するには、ツリー構造のリーフノードからルートノード方向へと中間ノードに格納するためのハッシュ値を生成し、ルートノードに対応するハッシュ値と、セキュアメモリ55内の認証ハッシュ値をと比較処理をして、比較結果が等しいときのみカウンタ群の利用を可能とする。このように、セキュアメモリ55内でカウンタ群1(71)を管理せず、ルートノードに対応するハッシュ値のみ、セキュアメモリ55で管理することで、セキュアメモリ55外にあるカウンタ群1(71)の改竄を効果的に検知することが可能となる。さらには、カウンタ群1(71)全体をセキュアメモリ55内で管理する必要がないため、セキュアメモリのサイズを抑えることが可能となる。
また、図2に図示していないが、カウンタ群2(72)も同様なツリー構造で管理される。
なお、本実施の形態では、カウンタ群は、二分木のツリー構造をとっているが、これに限定されるわけではなく、ツリー構造を有していればよい。
また、本実施の形態では、カウンタ群をツリー構造で実現しているが、ツリー構造に限定されるわけではなく、例えば、カウンタ値だけを持つ配列であってもよい。
<カウンタ管理テーブル>
図3は、カウンタ群1(71)のリード処理、インクリメント処理を制御するために、セキュアモジュール1(50)内のカウンタ制御手段53が保持しているカウンタ管理テーブル300である。カウンタ管理テーブ300は、ツリーのルートアドレス301、ツリー構造情報(N分木)302、カウンタ個数303、カウンタ値アドレス管理テーブル304から構成される。カウンタアドレス管理テーブル306は、さらにカウンタID306と、カウンタアドレス307からなる。図3は、図2に示したカウンタ群1(71)のカウンタ管理テーブルの例であり、ツリーのルートアドレス301が「0x70004000」、ツリー構造情報(N分木)302が、2分木を示す「2」、カウンタ個数303が「4」、カウンタID306「C100」がアドレス「0x8000000」に、「C101」がアドレス「0x8000004」に、「C102」がアドレス「0x8000008」に、「C103」がアドレス「0x800000C」に格納されていることを示している。カウンタ管理テーブル305を参照することで、カウンタ群1(71)のリード処理、インクリメント処理が可能となる。
<カウンタリード処理>
続いて、カウンタ管理テーブル(300、306)を参照して、App1(41)カウンタ群1(71)のカウンタのリード処理について図4を用いて説明する。図4は、カウンタのリード処理のステップ処理である。
まず、App1(41)が、セキュアモジュール1(50)のカウンタ制御手段53に対して、カウンタのリード要求を出す。リード要求を受け付けたカウンタ制御手段53は、リード対象のカウンタ値に対して、測定手段52へハッシュ値計算を要求する(ステップS401)。具体的には、App1(41)がリード対象となるカウンタIDを指定して、カウンタ制御手段53に対してカウンタのリード要求を出す。
次に、セキュアモジュール1(50)の測定部52が、カウンタ管理テーブル300を参照し、要求されたカウンタ値のハッシュ値を計算する(ステップS402)。
次に、測定手段52は、前のステップにて計算したハッシュ値とその兄弟にあたるハッシュ値とを連結した値のハッシュ値を生成し、ツリー構造のノード同士が双方向リストであることを利用し、1つ上の階層のノードへ参照先を移す(ステップS403)。
次に、カウンタアドレス管理テーブル300のツリーのルートアドレス301を参照し、現在の参照ノードがルートノードかどうかを判定する(ステップS404)。ステップS404の判定の結果が、YES(現在参照中のノードがルートである)と判断されたなら、ステップS405へ処理を移す。一方、ステップS404の判定の結果が、NO(現在参照中のノードがルートでない)と判断されたなら、ステップS403へ処理を移す。
次に、検証手段51が、ステップS403で算出された算出ハッシュ値と、セキュアメモリ内の認証ハッシュ値200が等しいかどうかの比較をする(ステップS405)。
ステップS405の比較判定の結果が、YES(算出ハッシュ値と認証ハッシュ値が等しい)と判断されたなら、カウンタ制御手段は、カウンタをリードする(ステップS407)。
一方、ステップS405の比較判定の結果が、NO(算出ハッシュ値と認証ハッシュ値が等しくない)と判断されたなら、要求されたカウンタのリードは不許可とする(ステップS406)。
<カウンタインクリメント処理>
続いて、図5、図6を用いて、カウンタ管理テーブル300を参照して、App1(41)カウンタ群1(71)のカウンタのインクリメント処理について説明する。図5のステップS501からS505までは、図4のステップS401からS405と処理が同じであるため説明を省略する。異なるのは、ステップS505の判定の結果が、図4では、リードの許可/不許可であったのに対し、図5では、インクリメント許可/不許可である点のみである。インクリメントが許可されると、ステップS507にてカウンタのインクリメント処理がされる。
ここで、カウンタがインクリメントされると、ツリー構造におけるリーフノードの値が更新されたことになるので、ルートノードに格納するハッシュ値を再計算する必要があり、さらにはセキュアメモリ55に保持している認証ハッシュ値を更新する必要がある。カウンタインクリメント時の認証ハッシュ値の更新処理が、図6である。
まず、カウンタ制御手段53は、図5のステップS507にてインクリメントされたカウンタ値に対して、測定手段52へハッシュ値計算を要求する(ステップS508)。
次に、セキュアモジュール1(50)の測定手段52が、カウンタ管理テーブル300を参照し、要求されたカウンタ値のハッシュ値を計算する(ステップS509)。
次に、測定手段52は、前のステップにて計算したハッシュ値とその兄弟にあたるハッシュ値とを連結した値のハッシュ値を生成し、ツリー構造のノード同士が双方向リストであることを利用し、1つ上の階層のノードへ参照先を移す(ステップS510)。
次に、カウンタアドレス管理テーブル300のツリーのルートアドレス301を参照し、現在の参照ノードがルートノードかどうかを判定する(ステップS511)。ステップS511の判定の結果が、YES(現在参照ノードがルートである)と判断されたなら、ステップS512へ処理を移す。一方、ステップS511の比較判定の結果が、NO(現在参照ノードがルートでない)と判断されたなら、ステップS510へ処理を移す。
次に、測定手段52により算出されたルートノードの値であるハッシュ値を認証ハッシュ値200としてセキュアメモリ55へ書き込み処理を行う(ステップS512)。
<共有カウンタ作成>
図7は、セキュアモジュール1(50)で管理されている、App1(41)が利用するカウンタ群1(71)と、セキュアモジュール2(60)で管理されているApp2(42)が利用するカウンタ群2(72)との間で、App1(41)とApp2(42)間でカウンタを共有するフロー図である。
まず、App1(41)が、App2(42)対してセキュアモジュール2(60)が管理するカウンタの共有を依頼する(ステップS701)。
次に、App2(42)が、App1(41)を認証する(ステップS702)。認証方法は、予め各Appに対して正当なAppであることを証明した証明書を関連付けておき、App2(42)がApp1(41)の証明書を検証する方法であるとする。具体的にはPKI(Public Key Infrastructure)で定めれた方法を用いるため、説明は省略する。なお、アプリケーション同士を認証しあう方法であれば特にこれに限定されない。
また、別の認証方法としては、セキュアモジュール1(50)の測定手段52と検証手段51を利用し、App1(41)の改竄チェックを実行し、その結果をApp2(42)が受け取ってもよい。その場合、改竄チェックの結果は、暗号手段54暗号化して送付するようにしてもよい。その際の暗号化に利用する鍵は、図示していないが、App2(42)の公開鍵やセキュアモジュール2の公開鍵を利用してもよい。また、App1(41)とApp2(42)間のSAC(Secure Authentication Channel)を用いて、セキュアな通信路を確立し、その通信路における送受信するデータの暗復号に利用するセッション鍵を共有して利用してもよい。
次に、ステップS703の検証の結果、App1(41)が正当であると判断された場合、ステップS704へ処理を移す。
一方、ステップS703の検証の結果、App1(41)が正当でないと判断された場合は、エラー結果をApp2(42)に返し、カウンタ共有処理を終了する。
App1(41)が正当であると判断された場合、セキュアモジュール2(60)のカウンタ制御手段63は、カウンタ群2(72)に存在するカウンタを、App1(41)と共有するカウンタとして選択し、選択されたカウンタ情報(カウンタID/カウンタアドレス)に署名をつける(ステップS704)。具体的には、セキュアモジュール2(60)は、セキュアモジュール2(60)用に生成されたRSA鍵ペアの秘密鍵を有しており、暗号手段64を利用しRSA署名生成する。なお、署名方法は、これに限定されず、ディジタル署名方式であれば他の方式でもよい。
次に、署名が付与された共有カウンタ情報がApp2(42)からApp1(41)へ送信される(ステップS705、S706)。
次に、App1(41)は、署名が付与された共有カウンタ情報の検証をセキュアモジュール1(50)に依頼する(ステップS707)。
次に、セキュアモジュール1(50)内のカウンタ制御手段53は、暗号手段54を利用して、署名検証する(ステップS708)。具体的には、セキュアモジュール1(50)は、セキュアモジュール2(60)用に生成されたRSA鍵ペアの公開鍵を有しており、暗号手段54を利用しRSA署名生成する。なお、署名方法は、これに限定されず、、ディジタル署名方式で他の方式でもよい。
ステップS708の署名検証の結果、署名が正しいと判断されれば、ステップS710へ処理を移す。一方、署名が不正と判断されれば、エラー結果をApp1(41)に返し、カウンタ共有処理を終了する。
署名が正しいと判断された場合、セキュアモジュール1(50)のカウンタ制御手段53が、カウンタ制御手段53が管理しているカウンタ管理テーブル300に共有カウンタ情報を設定する。これにより、カウンタ群1(71)を構成するツリー構造に共有カウンタがノードとして追加される。さらに、カウンタ群1(71)は、共有カウンタがノードとして追加されたので、カウンタ群1のツリー構造の中間ノードとルートノードのハッシュ値を再計算する。再計算されたルートノードのハッシュ値は、セキュアメモリ55に、カウンタ群1(71)の認証ハッシュ値として格納される(ステップS710)。
次に、App1(41)は、設定完了通知を受信し(ステップS711)、設定完了通知をApp2(42)経由でセキュアモジュール2(60)にも通知する(ステップS712、S713)。
最後に、セキュアモジュール2(60)のカウンタ制御手段63が、カウンタ制御手段63が管理しているカウンタ管理テーブル300に共有カウンタ情報を設定する(ステップS714)。
なお、ステップS704にて、カウンタ群2(72)に存在するカウンタを共有カウンタとして選択しているが、共有用として新規にカウンタを生成してもよい。新規に生成したカウンタは、カウンタ群2のツリー構造のリーフノードとして追加される。そして、カウンタ群2のツリー構造の中間ノードとルートノードのハッシュ値を再計算し、再計算されたルートノードのハッシュ値は、セキュアメモリ65に、カウンタ群2(72)の認証ハッシュ値として格納されるようにしてもよい。
以上で、カウンタの共有フロー説明を終わる。
<共有カウンタを有するカウンタ群ツリー>
図8は、カウンタ群1(71)とカウンタ群2(72)の間で、複数のカウンタを共有したツリー構造を示した例である。
この図の場合は、App1(41)が利用し、セキュアモジュール1(50)で管理されるカウンタ群1(71)は、カウンタ(C100、C101、C102、C103)と、中間ノード(h100、h101、h102、h103、h10、h11)と、ルートノード(h1)から構成されるツリー構造となる。一方、App2(42)が利用し、セキュアモジュール2(60)で管理されるカウンタ群2(72)は、カウンタ(C102、C103、C202、C203)と、中間ノードであるハッシュ値(h102、h103、h202、h203、h11、h21)と、ルートのハッシュ値(h2)からなるツリー構造となる。共有カウンタ(800)は、C102とC103である。
<共有カウンタ管理テーブル>
図9は、図8の場合の共有カウンタを、セキュアモジュール2(60)のカウンタ制御手段300が管理する共有カウンタテーブルを示している。
共有カウンタテーブル900は、ノードID901、ノードアドレス902、共有カウンタ利用アプリID903からなる。ノードID901は、カウンタ群の各ノードを識別情報である。ノードアドレス902は、カウンタ群のノードがメモリ上のどこに記憶されているかを示すアドレス情報である。また、共有カウンタ利用アプリID903は、ノードID901が示すノードに対する利用可能なアプリケーションの識別情報である。
ここで、共有カウンタテーブルのデータ構造としては2種類のものが考えられる。
図9(a)は、共有カウンタである「C102」と「C103」が共有カウンタ管理テーブル900として登録されている例である。この場合、共有カウンタC102が、アドレス「0x80000000」に存在し、共有カウンタC102が、アドレス「0x80000004」に存在し、それらは、App1(41)とApp2(42)で共有されていることを示している。図9(a)のようなデータ構造を用いて管理すると、各カウンタごとにそのカウンタを共有するアプリケーションを指定できるので、きめ細かな共有の制御ができる。
図9(b)は、共有カウンタの親ノードであるh11が共有カウンタ管理テーブル910として登録されている例である。この場合、「C102」と「C103」からルート方向へ辿り、C102とC103を両方含むノードID「h11」を共有カウンタ管理テーブル910に登録し、「h11」がアドレス「0x70001100」に存在し、「h11」がApp1(41)と、App2(42)とで共有されていることを示している。ここで、「h11」が共有可能なノードであれば、「h11」のノードから、リーフノードに至るまでのノード、すなわち「h11」、「h102」、「h103」、「C102」、「C103」がApp1(41)、App2(42)からアクセス可能なノードであることを示している。図9(b)のようなデータ構造を用いて管理すると、ノードを指定するだけで、そのノードの子孫であるリーフノードに対応するカウンタ全てを共有する設定を一括してできる。そのため、特に共有するカウンタ数が多い場合に、管理が容易になる。さらには、共有管理テーブルのサイズを抑えることが可能となる。
<3つのカウンタ群間における共有カウンタ>
図8、図9では、2つのカウンタ群との間で、共有する例を説明したが、2つのカウンタ群に限定されることなく、複数のカウンタ群で共有してもよい。
図10は、3つのカウンタ群であるカウンタ群1(1012)、カウンタ群2(1022)、カウンタ群3(1032)間でカウンタを共有する例を示している。
App1(1010)は、セキュアモジュール1(1011)経由でカウンタ群1(1012)を利用し、App2(1020)は、セキュアモジュール2(1021)経由でカウンタ群2(1022)を利用し、App3(1030)は、セキュアモジュール3(1031)経由でカウンタ群3(1032)を利用する。
カウンタ群1(1012)は、カウンタ(C100、C101、SC100、SC101)と中間ノード(N100、N101、SN100、SN101)とルートノード(N1)からなるツリー構造を有している。
カウンタ群2(1022)は、カウンタ(SC100、SC101、SC110、SC111)と中間ノード(SN100、SN101、SN110、SN111、SN10、SN11)とルートノード(N2)からなるツリー構造を有している。
また、カウンタ群3(1032)は、カウンタ(SC100、SC101、SC110、SC111、C300、C301)と中間ノード(SN100、SN101、SN110、SN111、N300、N301、SN10、SN11、N30)とルートノード(N3)からなるツリー構造を有している。
この図の場合の共有カウンタは、SC100、SC101、SC110、SC111の4つである。
共有カウンタ群1040は、SN10,SN100、SN101、SC100、SC101からなるツリーであって、App1(1010)、App2(1020)、App3(1030)間で共有されるカウンタ群である。
共有カウンタ群1050は、SN11,SN110、SN111、SC110、SC111からなるツリーであって、App2(1020)、App3(1030)間で共有されるカウンタ群である。
<セキュアモジュール1,2,3の共有カウンタテーブル>
図11は、図10に示した共有カウンタを、各セキュアモジュール(1011、1012、1032)がどのような共有カウンタ管理テーブルで管理するかを示した図である。
図11(a)は、セキュアモジュール1(1011)が持つ共有カウンタ管理テーブル1110であり、図11(b)は、セキュアモジュール2(1021)が持つ共有カウンタ管理テーブル1120あり、図11(c)は、セキュアモジュール3(1031)が持つ共有カウンタ管理テーブル1032である。各共有カウンタ管理テーブル1110、1120、1130の項目は、図9(b)で示した項目と同じであるので説明を省略する。このように、共有カウンタ管理テーブルを各セキュアモジュールのカウンタ制御手段が管理することで、より複雑な共有関係を有するカウンタを実現することができる。
以上のように、より柔軟でかつ、容易に、共有カウンタの追加が可能となる。
なお、本実施の形態では、共有カウンタを利用するアプリケーションIDを利用して、
共有カウンタの管理を行っているが、これに限定されない。例えば、セキュアモジュールに対してセキュアモジュールの識別情報であるセキュアモジュールIDを利用して共有カウンタを管理してもよい。
また、本実施の形態では、1つのセキュアモジュールに対して、ツリー構造を有するカウンタ群を対応しているが、1つのセキュアモジュールが、2つ以上のツリー構造を有するカウンタ群を管理してもよい。
また、本実施の形態では、カウンタ群格納手段に格納するカウンタ群を、平文の状態でおいているが、これに限定されるわけではない。例えば、図示していないが、各セキュアモジュールに対して、公開鍵暗号の鍵ペアを生成し、各セキュアモジュールが管理しているカウンタ群に対して、公開鍵で署名した形で保存してもよい。また署名でなく、AES暗号などの共通鍵暗号方式で暗号化して保存するようにしてもよい。さらには、カウンタ群のツリー構造におけるリーフノードであるカウンタ値に対してだけ、署名を付与してもよく、また、カウンタ群のツリー構造におけるリーフノードであるカウンタ値に対してだけ、暗号化してもよい。このようにすることで、カウンタ群に対する改竄をより困難にすることが可能となる。具体的には、セキュアモジュールがTPMで実現されているならば、非特許文献2で開示している方法を利用してもよい。詳細は、非特許文献2に記載されているので、説明を省略する。
また、本実施の形態では、カウンタのリード処理、カウンタのインクリメント処理において、アプリケーションは、リード対象または、インクリメント対象のカウンタIDを指定するとしているが、アプリケーションの識別情報であるアプリIDも同時にカウンタ制御手段に通知してもよい。
<マルチステークホルダーモデルにおける共有データ利用サービスシステム>
続いて、共有カウンタを利用して、共有データのバックアップ・リストア攻撃を防ぐ実装方法について説明する。ここで、バックアップ・リストア攻撃とは、ある時点のデータをバックアップしておき、そのデータを再度メモリに書き戻して不正を行う攻撃である。バックアップ・リストア攻撃の対象となる具体的なデータとして、電子マネーのような価値のある情報(以降、バリューと呼ぶ)がある。特に、プリペイド型電子マネーは、ユーザが事前に現金を支払い、支払った金額に相当する情報が、バリューとして端末に書き込まれる。ユーザは、このバリューを消費することで、特定の商品やサービスを購入することが可能となる。バックアップ・リストア攻撃とは、消費前のバリューのデータをバックアップしておき、端末内のバリューを消費して特定の商品やサービスを購入した後、消費したバリューを復活させるために、バックアップしておいたバリューを再度、端末内に書き込む攻撃である。このような処理を繰り返すことで、不正ユーザは、永続的にバリューを使い続けることが可能になってしまう。また、電子マネーのようなバリューだけでなく、音楽コンテンツや映像コンテンツに対する再生回数や再生期限などの権利情報も同様にバックアップ・リストア攻撃の対象となる。
図12は、複数のサービスアプリ間で共有データを利用し、ネットワークサービスを受けるサービスシステムである。
端末1200は、ネットワーク1260経由でサービス1提供サーバー1240と、サービス2提供サーバー1250に接続する。
端末1200は、サービス1アプリ1211とサービス2アプリ1221を有し、両アプリケーションは、共有データ格納手段1230に記憶されているバリュー1231を消費し、サービス1提供サーバー1240とサービス2提供サーバー1250からサービスを受ける。
サービス1アプリ1211は、セキュアモジュール1(1212)を利用し、バリュー1231にアクセスし、サービス1提供サーバー1240から所望のサービスを受ける。また、サービス2アプリ1221は、セキュアモジュール2(1222)利用して、バリュー1231にアクセスし、サービス2提供サーバー1250から所望のサービスを受ける。
ここで、サービス1アプリ(1211)とセキュアモジュール1(1212)は、サービス提供会社1から提供され、サービス2アプリ(1220)とセキュアモジュール2(1222)は、サービス提供会社2から提供される。このように1つの端末に複数の事業者のソフトウェアが搭載されるモデルは、MTMでは、マルチステークホルダーモデルと呼ばれる。
以降、サービス1アプリ1211と、セキュアモジュール1(1212)を1つのステークホルダー環境1210、サービス2アプリ1220と、セキュアモジュール2(1222)をもう1つのステークホルダー環境1220として、これら2つのステークホルダー間において、カウンタを共有し、その共有カウンタを利用して、共有データのバックアップ・リストア攻撃を防ぐ方法について説明する。
<時変鍵前処理>
本実施の形態では、共有データを時変鍵で暗号化することで、バックアップ・リストア攻撃に対処する。ここで時変鍵とは、時間の経過するごとに鍵の値が変化する暗号鍵を指す。以下、時変鍵の生成および利用方法について説明する。
図13は、時変鍵を利用するための準備の処理を示したフローチャートである。
まず、共有カウンタを利用するアプリケーション間で相互認証する(ステップS1301)。相互認証の方法は、図7で説明した認証方法と同じである。
次に、ステップS1301の相互認証の結果を判定する(ステップS1302)。
相互認証の結果が「認証NG」であれば、時変鍵準備処理エラーとし、終了する。
一方、相互認証結果が「認証OK」であれば、ステップS1303へ処理を移す。
次に、相互認証されたアプリケーション同士で、時変鍵生成用の共有鍵を持ち合う(ステップS1304)。この共有鍵の設定方法は、相互に乱数を発生させて作成する。なお、乱数を生成する手段は図示していない乱数生成器を用いてもよいし、演算によって取得してもよい。なお、ここでの時変鍵生成用の共有鍵は、鍵データとしているが、これに限定されるわけではなく、共有カウンタを利用するアプリケーション同士のみが利用可能となるデータ情報であればよい。
最後に、時変鍵生成用の共有鍵を各アプリケーションが利用するセキュアモジュール内に共有鍵をセットする(ステップS1305)。具体的には、セキュアモジュール内のセキュアメモリ内に時変鍵生成用の共有鍵をセットする。
なお、時変鍵生成用の共有鍵の生成およびセキュアモジュールへの時変鍵生成用の共有鍵のセキュアメモリへのセット処理は、共有カウンタを利用するアプリケーション間で、一度行われれば良い。また、これに限定されることなく、共有データにアクセスする度に、毎回行っても良い。
なお、時変鍵生成用の共有鍵の設定方法は、これに限定されるわけではなく、予めセキュアモジュール内に埋め込んでおいてもよい。以降、時変鍵生成用の共有鍵を、共有鍵と略す。
<時変鍵を用いた共有データの暗復号処理>
続いて、図14と図15を用いて、時変鍵による共有データの暗復号処理について説明する。
ステップS1401からS1409は、時変鍵による共有データの暗号化ステップである。
まず、サービス1アプリ1211が、セキュアモジュール1(1212)に対して共有データ暗号化要求をする(ステップS1401)。
次に、セキュアモジュール1(1212)が、共有カウンタリード処理をする(ステップS1402)。カウンタリード処理は、図4で説明した処理であるので、説明を省略する。
次に、セキュアモジュール1(1212)が、リードした共有カウンタの値と、共有鍵から時変鍵を生成する(ステップS1403)。具体的には、共有カウンタと共有鍵とを連結したデータに対して、SHA1アルゴリズムによりハッシュ値を算出し、算出されたハッシュ値から、共有データの暗号化に利用する鍵を生成し、そこで生成された鍵を時変鍵とする。ここで、共有データのヘッダには、暗号化アルゴリズムと、時変鍵の生成アルゴリズムが識別できる情報が付与されているものとする。具体的には、共有データの暗号化に、暗号アルゴリズムにAES(鍵長128ビット)を用い、時変鍵の生成アルゴリズムにSHA1を用いる場合、それぞれを識別できる情報が関連づけられている。この場合、セキュアモジュールは、この共有データのヘッダを参照し、共有カウンタと共有鍵の値を連結して、SHA1を用いて160ビットのハッシュ値を算出し、算出されたハッシュ値の上位128ビットを時変鍵とする。
なお、時変鍵生成方法は、これに限るものでなく、共有データをアクセスするアプリケーション同士で、同一の共有カウンタと共有鍵から同一の鍵が生成できる方法であればよい。
次に、暗号化対象の共有データをリードする(ステップS1404、S1405)。
次に、リードした共有データを、ステップS1403で生成した時変鍵1で暗号化する(ステップS1406)。
暗号化したデータを共有データとして書き込む(ステップS1407)。
サービスアプリ1(1211)は、書き込み完了通知(ステップS1408、S1409)を受信し、共有データの暗号化処理は終了する。
続いて、ステップS1410からS1424にて、時変鍵1で暗号化された共有データの復号ステップについて説明する。
まず、サービス2アプリ1221が、セキュアモジュール2(1222)に対して共有データ暗号化要求をする(ステップS1410)。
次に、セキュアモジュール2(1222)が、共有カウンタリード処理をする(ステップS1411)。カウンタリード処理は、図4で説明した処理であるので、説明を省略する。
次に、セキュアモジュール1(1212)が、リードした共有カウンタの値と、共有鍵から時変鍵1を生成する(ステップS1412)。時変鍵生成方法は、ステップS1403と同じであるため説明を省略する。
次に、復号対象の共有データを読み込み(ステップS1413、S1414)、ステップS1412で生成した時変鍵1で共有データを復号する(ステップS1415)。
次に、共有データを更新する(ステップS1416)。本実施の形態では、共有データを、バリューとし、バリューを消費することでサービスを受けるモデルなので、消費したバリューの値で共有データを更新する。
次に、共有カウンタをインクリメントする(ステップS1417)。共有カウンタのインクリメント処理は、図5、6で説明した処理と同じであるので、説明を省略する。
次に、インクリメントされた共有カウンタと共有鍵から、時変鍵1とは異なる鍵である時変鍵2を生成する(ステップS1418)。時変鍵2の生成方法は、ステップS1403と同じであるので説明を省略する。
次に、ステップS1418で生成した時変鍵2で、更新された共有データを暗号化する(ステップS1419)。
次に、時変鍵2で暗号化された共有データを、共有データ格納手段に書き込む(ステップS1420)。
次に、サービス2アプリ1221は、書き込み完了通知を受け取る(ステップS1421、S1422)。
次に、サービス2アプリ1221は、セキュアモジュール2(1222)が管理している共有カウンタ管理テーブルのアプリIDを参照することで、インクリメントした共有カウンタを利用している共有アプリを特定し、その共有アプリに共有カウンタを更新したことを通知する。ここでは、サービス2アプリ1221が、サービス1アプリ1211に対して、共有カウンタを更新したことを通知する(ステップS1423)。
次に、サービス1アプリ1211は、セキュアモジュール1(1212)に対して、共有カウンタ更新処理の要求をする(ステップS1424)。
セキュアモジュール1(1212)が管理する共有カウンタ値以外のノードは、共有カウンタがインクリメントされる前の情報となっているので、セキュアモジュール1(1212)が管理するツリー構造を有するカウンタ群の各ノードの更新処理と、認証ハッシュ値の更新処理を行う(ステップS1425)。
以上で、時変鍵を用いた共有データの暗復号処理についての説明を終わる。
なお、本実施の形態では、共有データを電子マネーのようなバリューとしたが、これに限定されるものでなく、音楽や映像などのデジタルコンテンツの権利情報、住所録、個人情報などのプライバシー情報なども考えられる。
(実施の形態2)
本実施の形態2では、ステークホルダーのアプリケーションの改竄検出時や更新時の共有カウンタのアクセス制御方法について説明する
<更新システム>
図16は、端末1600内のステークホルダーのアプリケーションを更新するための更新システムを示したものである。
端末1600は、ネットワーク1603に接続し、更新サーバー1601から、端末内のステークホルダーのアプリケーションの更新プログラムをダウンロードする。
各ステークホルダーのアプリケーションには、アプリケーション識別子やバージョンが関連づけられており、端末1600は、端末内のステークホルダー環境情報(アプリケーション識別子やバージョン情報)を、更新サーバーへ通知し、適切な更新プログラムをダウンロードする。
また、端末内のステークホルダー環境情報(アプリケーション識別子やバージョン情報)を、更新サーバーへ通知するとしているが、TCG規格のAttestation処理を利用して更新してもよい。Attestation処理については、TCG規格で詳細が規定されているので、ここでの説明は省略する。
<端末の全体構成>
図17は、実施の形態2における端末1600の全体構成図である。端末1600の構成要素としては、実施の形態1の図1で説明したものとほとんど同じであるので、図1と比べて新規な構成要素のみについて説明する。
図17中、図1にない新規な構成要素は、更新手段1790と通信I/F1791である。
通信I/F1791は、端末1600と外部の端末とのデータの送受信を行うインターフェースである。本実施の形態では、通信I/F1719を通して、更新サーバー1601とのデータの送受信を行う。
更新手段1790は、App1(1741)とApp2(1742)の更新プログラムのダウンロード要求を行い、ダウンロードした更新プログラムを利用して、プログラム格納手段に記憶しているApp1(1741)またはApp2(1742)の更新処理を行う。
<共有カウンタのアクセス可否設定>
続いて、図18を用いてAppの改竄チェック処理と共有カウンタのアクセス可否設定処理について説明する。
本実施の形態では、セキュアモジュール1のセキュアメモリには、App1(1741)の認証ハッシュ値が格納され、セキュアモジュール2のセキュアメモリには、App2(1742)が格納されているものとする。なお、セキュアメモリへは、認証ハッシュ値でなく、X.509のような証明書を格納するようにしてもよい。その場合、証明書は、認証ハッシュ値を含むものとする。
まず、セキュアモジュールの測定手段が、プログラム格納手段に記憶されているAppのハッシュ値を算出する(ステップS1801)。
次に、セキュアモジュールの検証手段が、セキュアメモリ内の認証ハッシュ値と、ステップS1801で算出したハッシュ値を比較して、改竄チェックを行う(ステップS1802)。
ステップS1802の判定の結果、「改竄あり」と判定されたら、セキュアモジュールのカウンタ制御手段が、改竄のあったAppから共有カウンタへのアクセスを「不許可」に設定する(ステップS1803)。一方、「改竄なし」と判定されたら、セキュアモジュールのカウンタ制御手段が、改竄のないAppから共有カウンタへのアクセスを「許可」に設定する(ステップS1804)。
本実施の形態では、セキュアモジュール1(1750)が、App1(1741)の改竄チェックを行い、セキュアモジュール2(1760)が、App2(1742)の改竄チェックを行う。
このように、改竄チェック後に、共有カウンタへのアクセス許可/不許可設定を与えることで、改竄のあった不正なAppからの共有カウンタのアクセスを防止することが可能となる。また、改竄チェックのタイミングについては、端末起動(ブート)時であってもよいし、実行時に定期的なタイミングや、特定の処理をトリガーにして改竄チェックを行ってもよい。
<Appの改竄を検出後の共有カウンタテーブル>
図19は、セキュアモジュールがAppの改竄チェック後の共有カウンタテーブルの例である。具体的には、共有カウンタが実施の形態1の図8の状態で、セキュアモジュール2(1760)が、図18のフローに基づきApp2(1742)の改竄チェックを行い、App2(1742)が改竄されていると判定された後のカウンタ制御手段1663が管理している共有カウンタテーブルを表している。共有カウンタ管理テーブル(1910、1920)は、図9と同じ構成要素については説明を省略する。図19では、アクセス許可情報(1914、1924)が新項目として追加されている。
アクセス許可情報(1914、1924)は、共有カウンタへのアクセス許可に関する状態である「許可」また「不許可」が設定される。
図19(a)は、図9(a)に対応しており、App2(1742)の改竄チェックの結果、App2(1742)が改竄されていると判定され、App2(1742)が共有カウンタ「C102」「C103」へのアクセスが禁止されている状態を示している。図19(b)は、図9(b)に対応しており、App2(1742)の改竄チェックの結果、App2(1742)が改竄されていると判定され、App2(1742)が共有カウンタ「C102」「C103」へのアクセスが禁止されている状態を示している。
<ネットワーク経由による更新フロー>
図20は、更新手段1790によるアプリケーションのネットワーク経由による更新フロー図である。
まず、更新手段1790が、セキュアモジュールに対して更新要否の確認を通知する(ステップS2001)。
次に、セキュアモジュールが、共有カウンタ管理テーブルを確認する(ステップS2002)。具体的には、共有カウンタ管理テーブル内のアクセス許可情報(1914、1924)を参照し、不許可となっているアプリIDを、更新要否結果として更新手段2003に返す(ステップS2002)。図19のようにApp2(1742)が不許可となっていれば、App2(1742)のアプリID「App002」を返す。
次に、更新手段1790は、受信したアプリIDに対応するアプリケーションを更新するために、通信I/F1719を介して、更新サーバー1601にアプリIDと共に更新要求を出す(ステップS2004、S2005)。
次に、更新サーバー1601は、受信したアプリIDに対応する更新プログラムと、その更新プログラムの証明書を端末1600に送信する(ステップS2007)。ここで証明書は図示していないが、証明書には、更新プログラムのハッシュ値を含み、更新プログラムの完全性を検証する際に利用する。
端末1600は、通信I/F1791を介して、更新サーバー1601から更新プログラムとその証明書を受信する(ステップS2007、S2008)。
次に、更新手段1790は、セキュアジュールに、受信した証明書をセキュアメモリ格納するように要求する(ステップS2009)。
次に、セキュアモジュールは、証明書をセキュアメモリに格納する(ステップS2009)。
最後に、更新手段1790が、更新プログラムで更新対象となるアプリケーションを更新する(ステップS2010)。
以上のフローにより、セキュアモジュールを利用するアプリケーションを、ネットワーク経由で更新することが可能となる。
なお、本実施の形態では、共有カウンタ管理テーブル内のアクセス許可情報(1914、1924)にアクセス不許可となっているアプリケーションを参照したことを契機に、ネットワーク経由で更新サーバー1601に対して更新プログラム1602のダウンロード要求を出しているが、更新プログラム1602のダウンロード要求のタイミングは、これに限定されない。更新サーバー1601からメッセージの受信時や、端末起動時であってもよい。また、アプリケーション実行時に、定期的なタイミングにより、アプリケーションに対する改竄検出を行って、改竄されていると判定されたら、更新プログラム1602のダウンロード要求を出すようにしても良い。
(その他変形例)
なお、本発明を上記実施の形態に基づいて説明してきたが、本発明は、上記の実施の形態に限定されないのはもちろんである。以下のような場合も本発明に含まれる。
(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)上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよい。
本発明にかかるツリー構造を有するカウンタ群に関するカウンタ制御方法を利用により、複数のセキュアモジュール間でセキュアなカウンタを共有することが可能となる。また、ツリー構造を有するカウンタでの共有設定を行うカウンタ制御方法により、共有カウンタの追加や、共有設定、共有解除といった操作が容易で、複雑な共有設定が可能になる。さらには、共有データに対する不正な書き戻し攻撃を防ぐことが可能となる。
本発明の実施の形態1における端末の全体構成を示す図 本発明の実施の形態1におけるツリー構造を有するカウンタ群1を示す図 本発明の実施の形態1におけるカウンタ管理テーブル示す図 本発明の実施の形態1におけるカウンタのリード手順を示すフローチャート 本発明の実施の形態1におけるカウンタのインクメント手順(前半)を示すフローチャート 本発明の実施の形態1におけるカウンタのインクメント手順(後半)を示すフローチャート 本発明の実施の形態1における共有カウンタ作成手順を示すフローチャート 本発明の実施の形態1におけるカウンタ群1とカウンタ群2間での共有カウンタを示す図 本発明の実施の形態1における共有カウンタ管理テーブルを示す図 本発明の実施の形態1におけるカウンタ群1とカウンタ群2とカウンタ群3間における共有カウンタを示す図 本発明の実施の形態1におけるセキュアモジュール1、2,3の共有カウンタ管理テーブルを示す図 本発明の実施の形態1におけるマルチステークホルダーモデルにおける共有データ利用サービスシステムを示す図 本発明の実施の形態1における時変鍵準備手順を示すフローチャート 本発明の実施の形態1における時変鍵による共有データ暗復号する手順を示すフローチャート 本発明の実施の形態1における時変鍵による共有データ暗復号する手順を示すフローチャート 本発明の実施の形態2における端末1600内のステークホルダーのアプリケーションを更新するための更新システムを示す図 本発明の実施の形態2における端末の全体構成を示す図 本発明の実施の形態2における共有カウンタへのアクセス可否設定を示すフローチャート 本発明の実施の形態2における共有カウンタ管理テーブル 本発明の実施の形態2における端末内のステークホルダーの環境を更新する手順を示すフローチャート
符号の説明
10 情報セキュリティ装置
20、1720 CPU
30、1730 RAM
40、1740 プログラム格納手段
41、1010、1741 App1
42、1020、1742 App2
1030 App3
50 、1011、1212、1750 セキュアモジュール1
60 、1021、1222、1760 セキュアモジュール2
1031 セキュアモジュール3
51、61、1751、1761 検証手段
52、62、1752、1762 測定手段
53、63、1753、1763 カウンタ制御手段
54、64、1754、1764 暗号手段
55、65、1755、1765 セキュアメモリ
56、66、1756、1766 共有データアクセス手段
70、1770 カウンタ格納手段
71、1771 カウンタ群1
72、1772 カウンタ群2
80、1230、1780 共有データ格納手段
90、1790 バス
200 認証ハッシュ値
300 カウンタ管理テーブル
301 ツリーのルートアドレス
302 ツリー構造情報
303 カウンタ個数
304、305 カウンタ値アドレス管理テーブル
306 カウンタID
307 カウンタアドレス
800 共有カウンタ群
900、910、1110、1120、1130、1910、1920 共有カウンタ管理テーブル
901、911、1111、1121、1131、1911、1921 ノードID
902、912 1112、1122、1132、1912、1922 ノードアドレス
903、913 1113、1123、1133、1913、1923 アプリID
1200、1600 端末
1210、1220 ステークホルダー環境
1211 サービス1アプリ
1221 サービス2アプリ
1231 バリュー
1240 サービス1提供サーバー
1250 サービス2提供サーバー
1260、1603 ネットワーク
1601 更新サーバー
1602 更新プログラム
1790 更新手段
1791 通信I/F
1914、1924 アクセス許可情報

Claims (12)

  1. 第1のプログラムと第2のプログラムを格納するプログラム格納手段と、
    前記第1のプログラムが利用する少なくとも1つ以上のカウンタから構成される第1カウンタ群と、
    前記第2のプログラムが利用する少なくとも1つ以上のカウンタから構成される第2のカウンタ群と、
    前記第1のカウンタ群と前記第2のカウンタ群を格納するカウンタ格納手段と、
    前記第1のカウンタ群の完全性を示すための情報である第1のカウンタ認証情報と、
    前記第2のカウンタ群の完全性を示すための情報である第2のカウンタ認証情報と、前記第1のカウンタ群のカウンタ認証情報、または、前記第2のカウンタ群のカウンタ認証情報を格納するセキュアメモリと、
    前記第1のカウンタ群の完全性を検証するために、前記第1のカウンタ認証情報と比較される値である第1のカウンタ算出情報、または、前記第2のカウンタ群の完全性を検証するために、前記第2のカウンタ認証情報と比較される値である第2のカウンタ算出情報を算出する測定手段と、
    前記測定手段にて算出された前記第1のカウンタ算出情報と前記第1のカウンタ認証情報との比較、または、前記第2のカウンタ算出情報と前記第2のカウンタ認証情報との比較する検証手段と、
    前記検証手段の比較結果によって、前記第1のプログラムからの前記第1のカウンタ群へのアクセス、または、前記第2のプログラムからの前記第2のカウンタ群へのアクセスを制御するカウンタ制御手段と、
    前記第1のカウンタ群を構成する少なくとも1つ以上のカウンタが、前記第2のカウンタ群を構成するカウンタであり、前記第2のカウンタ群を構成する少なくとも1つ以上のカウンタが、前記第1のカウンタ群を構成するカウンタである、少なくとも1つ以上の共有カウンタ
    を備えることを特徴とする情報セキュリティ処理装置。
  2. 前記情報セキュリティ処理装置は、さらに、
    前記第1のカウンタ群と前記第2のカウンタ群がそれぞれ、親ノードに、子ノードが格納しているデータを連結したデータに対する完全性を示すための情報であるハッシュ値を配置し、リーフノードに、カウンタの値を配置するツリー構造
    を備えることを特徴とする請求項1に記載の情報セキュリティ装置。
  3. 前記情報セキュリティ処理装置は、さらに、
    前記カウンタ制御手段が、カウンタ管理テーブルを備え、
    前記カウンタ管理テーブルは、前記カウンタ群1、または、カウンタ群2を構成するノードを識別するノード識別情報と、前記ノードにアクセス可能なプログラムを識別するためのプログラム識別情報を含むことを
    を特徴とする請求項2に記載の情報セキュリティ装置。
  4. 前記情報セキュリティ装置は、さらに、
    前記カウンタ管理テーブルに、前記共有カウンタに関連するノード識別情報と、前記共有カウンタにアクセス可能なプログラムを識別するためのプログラム識別情報を含むこと
    を特徴とする請求項3記載の情報セキュリティ装置。
  5. 前記情報セキュリティ装置は、さらに、
    前記カウンタ管理テーブルが、前記共有カウンタへアクセス可能なプログラムを識別するためのプログラム識別情報と前記共有カウンタへのアクセス可否情報とを対応づけて記憶しており、
    前記セキュアメモリが、前記共有カウンタを利用するプログラムの完全性を検証するためのプログラム認証情報を記憶し、
    前記測定手段が、前記プログラムの完全性を検証するために前記プログラム認証情報と比較されるプログラム算出情報を算出し、
    前記検証手段が、前記プログラム算出情報と、前記プログラム認証情報を比較し、
    前記カウンタ制御手段が、前記検証手段から、前記比較の結果が等しいという結果情報を受信した時に、前記測定手段および前記検証手段により完全性を検証の対象であるプログラムの前記プログラム識別情報に対応する前記アクセス許可情報を、アクセス可に設定し、
    前記検証手段から、前記比較の結果が等しくないという結果を受信した時に、前記測定手段および前記検証手段により完全性を検証の対象であるプログラムの前記プログラム識別情報に対応する前記アクセス許可情報を、アクセス不可に設定すること
    を特徴とする請求項4に記載の情報セキュリティ装置。
  6. 前記情報セキュリティ装置は、さらに、
    前記プログラムを更新するための更新手段を備え、
    前記更新手段が、前記共有カウンタ管理テーブルの前記アクセス許可情報が不可に設定されている前記プログラム識別情報に対応するプログラムの更新処理を行う
    ことを特徴とする請求項5に記載の情報セキュリティ装置。
  7. 前記情報セキュリティ装置は、さらに、
    セキュアモジュールを備え、
    前記セキュアモジュールが、前記測定手段と、前記検証手段と、前記カウンタ制御手段と前記セキュアメモリを含み、耐タンパ化されている
    ことを特徴とする請求項6に記載の情報セキュリティ装置。
  8. 前記情報セキュリティ装置は、さらに、
    少なくとも2つ以上の前記セキュアモジュールを含むこと
    を特徴とする請求項7に記載の情報セキュリティ装置。
  9. 前記情報セキュリティ装置は、さらに、
    前記セキュアモジュールが鍵生成手段と暗号化手段を備え、
    前記セキュアモジュールが共有して利用する共有データと、
    前記共有データを格納する共有データ格納手段とを備え、
    前記鍵生成手段が、前記共有カウンタを利用して共有データ暗号鍵を生成し、前記共有データを前記共有データ暗号鍵で暗復号処理する
    ことを特徴とする請求項8に記載の情報セキュリティ装置。
  10. 前記情報セキュリティ装置は、さらに、
    前記セキュアモジュールが、Trusted Computing Group(TCG)で仕様化しているTPMで実現されていることを
    を特徴とする請求項9に記載の情報セキュリティ装置。
  11. 前記情報セキュリティ装置は、さらに、
    前記セキュアモジュールが、Trusted Computing Group(TCG)で仕様化しているMTMで実現されていること
    を特徴とする請求項9に記載の情報セキュリティ装置。
  12. カウンタを制御するカウンタ制御方法であって、
    少なくとも1つ以上のカウンタから構成される第1のカウンタ群と、少なくとも1つ以上のカウンタから構成される第2のカウンタ群をカウンタ格納手段に格納するステップと、
    前記カウンタ格納手段から、前記第1のカウンタ群、または前記第2のカウンタ群に対して、アクセスするステップと、
    前記第1のカウンタ群を構成している第1のカウンタと、前記第2のカウンタ群を構成している第2のカウンタを共有するステップと、
    前記共有ステップにて共有したカウンタを読み出すリードステップと、
    前記共有ステップにて共有したカウンタの値を増加するインクリメントステップと、
    前記共有カウンタへアクセスするプログラムの完全性を検証するステップと、
    前記完全性検証ステップの結果、プログラムが改竄されていると判定された場合に前記プログラムが共有カウンタをアクセスを許可とするステップと、
    前記完全性検証ステップの結果、プログラムが改竄されていると判定された場合に前記プログラムが共有カウンタをアクセスを不許可とするステップと
    を含むことを特徴とするカウンタ制御方法。
JP2007166321A 2007-06-25 2007-06-25 情報セキュリティ装置およびカウンタ制御方法 Active JP4956292B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2007166321A JP4956292B2 (ja) 2007-06-25 2007-06-25 情報セキュリティ装置およびカウンタ制御方法
US12/146,269 US20090019551A1 (en) 2007-06-25 2008-06-25 Information security device and counter control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007166321A JP4956292B2 (ja) 2007-06-25 2007-06-25 情報セキュリティ装置およびカウンタ制御方法

Publications (2)

Publication Number Publication Date
JP2009003855A JP2009003855A (ja) 2009-01-08
JP4956292B2 true JP4956292B2 (ja) 2012-06-20

Family

ID=40254242

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007166321A Active JP4956292B2 (ja) 2007-06-25 2007-06-25 情報セキュリティ装置およびカウンタ制御方法

Country Status (2)

Country Link
US (1) US20090019551A1 (ja)
JP (1) JP4956292B2 (ja)

Families Citing this family (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3798874A1 (en) 2003-08-26 2021-03-31 Panasonic Intellectual Property Corporation of America Program execution device
US20100083006A1 (en) * 2007-05-24 2010-04-01 Panasonic Corporation Memory controller, nonvolatile memory device, nonvolatile memory system, and access device
JP5314016B2 (ja) * 2008-06-23 2013-10-16 パナソニック株式会社 情報処理装置、暗号鍵の管理方法、コンピュータプログラム及び集積回路
US9720782B2 (en) * 2008-12-08 2017-08-01 Microsoft Technology Licensing, Llc Authenticating a backup image with bifurcated storage
US8869289B2 (en) * 2009-01-28 2014-10-21 Microsoft Corporation Software application verification
US8826042B2 (en) * 2009-04-14 2014-09-02 Megachips Corporation Memory controller, memory control apparatus, memory device, memory information protection system, control method for memory control apparatus, and control method for memory device
JP5749257B2 (ja) * 2009-06-26 2015-07-15 トラステッド ロジック データ検証方法
EP2543215A2 (en) 2010-03-05 2013-01-09 InterDigital Patent Holdings, Inc. Method and apparatus for providing security to devices
WO2011149962A1 (en) 2010-05-24 2011-12-01 The Trustees Of Columbia University In The City Of New York Mutant ngal proteins and uses thereof
JP5159849B2 (ja) * 2010-09-24 2013-03-13 株式会社東芝 メモリ管理装置及びメモリ管理方法
DE102010054446A1 (de) * 2010-12-14 2012-06-14 Giesecke & Devrient Gmbh Portabler Datenträger mit Fehlbedienungszähler
EP2503482A1 (en) * 2011-03-23 2012-09-26 ST-Ericsson SA Electronic device with flash memory component
KR101962445B1 (ko) * 2011-08-30 2019-03-26 삼성전자 주식회사 터치 스크린을 갖는 휴대 단말기 및 그의 사용자 인터페이스 제공 방법
WO2013089728A1 (en) * 2011-12-15 2013-06-20 Intel Corporation Method, device, and system for securely sharing media content from a source device
US9609456B2 (en) 2012-05-14 2017-03-28 Qualcomm Incorporated Methods, devices, and systems for communicating behavioral analysis information
US9690635B2 (en) 2012-05-14 2017-06-27 Qualcomm Incorporated Communicating behavior information in a mobile computing device
US9324034B2 (en) 2012-05-14 2016-04-26 Qualcomm Incorporated On-device real-time behavior analyzer
US9202047B2 (en) 2012-05-14 2015-12-01 Qualcomm Incorporated System, apparatus, and method for adaptive observation of mobile device behavior
US20140026228A1 (en) * 2012-07-23 2014-01-23 Kabushiki Kaisha Toshiba Information processing apparatus and control method
US9319897B2 (en) 2012-08-15 2016-04-19 Qualcomm Incorporated Secure behavior analysis over trusted execution environment
US9330257B2 (en) 2012-08-15 2016-05-03 Qualcomm Incorporated Adaptive observation of behavioral features on a mobile device
US9495537B2 (en) 2012-08-15 2016-11-15 Qualcomm Incorporated Adaptive observation of behavioral features on a mobile device
US9747440B2 (en) 2012-08-15 2017-08-29 Qualcomm Incorporated On-line behavioral analysis engine in mobile device with multiple analyzer model providers
US9135446B2 (en) * 2012-09-28 2015-09-15 Intel Corporation Systems and methods to provide secure storage
US8819455B2 (en) * 2012-10-05 2014-08-26 Intel Corporation Parallelized counter tree walk for low overhead memory replay protection
EP2925337B1 (en) 2012-11-21 2019-07-03 The Trustees of Columbia University in the City of New York Mutant ngal proteins and uses thereof
US10089582B2 (en) 2013-01-02 2018-10-02 Qualcomm Incorporated Using normalized confidence values for classifying mobile device behaviors
US9684870B2 (en) 2013-01-02 2017-06-20 Qualcomm Incorporated Methods and systems of using boosted decision stumps and joint feature selection and culling algorithms for the efficient classification of mobile device behaviors
US9686023B2 (en) 2013-01-02 2017-06-20 Qualcomm Incorporated Methods and systems of dynamically generating and using device-specific and device-state-specific classifier models for the efficient classification of mobile device behaviors
US9742559B2 (en) * 2013-01-22 2017-08-22 Qualcomm Incorporated Inter-module authentication for securing application execution integrity within a computing device
US9491187B2 (en) 2013-02-15 2016-11-08 Qualcomm Incorporated APIs for obtaining device-specific behavior classifier models from the cloud
US9448888B2 (en) 2013-11-15 2016-09-20 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Preventing a rollback attack in a computing system that includes a primary memory bank and a backup memory bank
US9460312B2 (en) 2014-03-11 2016-10-04 Qualcomm Incorporated Data integrity protection from rollback attacks for use with systems employing message authentication code tags
US10185842B2 (en) * 2015-03-18 2019-01-22 Intel Corporation Cache and data organization for memory protection
US9798900B2 (en) * 2015-03-26 2017-10-24 Intel Corporation Flexible counter system for memory protection
US10193696B2 (en) * 2015-06-02 2019-01-29 ALTR Solutions, Inc. Using a tree structure to segment and distribute records across one or more decentralized, acylic graphs of cryptographic hash pointers
US10528485B2 (en) 2016-09-30 2020-01-07 Intel Corporation Method and apparatus for sharing security metadata memory space
US10540297B2 (en) 2017-08-03 2020-01-21 Arm Limited Memory organization for security and reliability
CN110945509B (zh) * 2017-08-03 2023-08-11 Arm有限公司 用于控制对受保护存储器区域中数据的访问的设备和方法
US10733313B2 (en) 2018-02-09 2020-08-04 Arm Limited Counter integrity tree for memory security
US10778661B2 (en) * 2018-04-27 2020-09-15 Micron Technology, Inc. Secure distribution of secret key using a monotonic counter
US11516013B2 (en) * 2018-06-28 2022-11-29 Intel Corporation Accelerator for encrypting or decrypting confidential data with additional authentication data
GB2579849B (en) 2018-12-18 2021-08-25 Advanced Risc Mach Ltd Integrity tree for memory integrity checking

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4625081A (en) * 1982-11-30 1986-11-25 Lotito Lawrence A Automated telephone voice service system
JPH0318935A (ja) * 1989-06-15 1991-01-28 Hitachi Ltd データリストに対するアクセスの直列化方式
US5649102A (en) * 1993-11-26 1997-07-15 Hitachi, Ltd. Distributed shared data management system for controlling structured shared data and for serializing access to shared data
FR2825869B1 (fr) * 2001-06-08 2003-10-03 France Telecom Procede d'authentification entre un objet de telecommunication portable et une borne d'acces public
US6715085B2 (en) * 2002-04-18 2004-03-30 International Business Machines Corporation Initializing, maintaining, updating and recovering secure operation within an integrated system employing a data access control function
US7421579B2 (en) * 2002-06-28 2008-09-02 Microsoft Corporation Multiplexing a secure counter to implement second level secure counters
US7322042B2 (en) * 2003-02-07 2008-01-22 Broadon Communications Corp. Secure and backward-compatible processor and secure software execution thereon
US7228432B2 (en) * 2003-09-11 2007-06-05 Angelo Michael F Method and apparatus for providing security for a computer system
US7171519B2 (en) * 2004-02-27 2007-01-30 International Business Machines Corporation System, method and program for assessing the activity level of a database management system
JP4562464B2 (ja) * 2004-09-07 2010-10-13 富士通株式会社 情報処理装置
US20060059363A1 (en) * 2004-09-16 2006-03-16 Mese John C Method for controlling access to a computerized device
JP4640770B2 (ja) * 2004-10-15 2011-03-02 株式会社日立製作所 外部の装置に接続される制御装置
US7210166B2 (en) * 2004-10-16 2007-04-24 Lenovo (Singapore) Pte. Ltd. Method and system for secure, one-time password override during password-protected system boot
US8468361B2 (en) * 2005-09-21 2013-06-18 Broadcom Corporation System and method for securely provisioning and generating one-time-passwords in a remote device
US7624242B2 (en) * 2006-03-31 2009-11-24 Intel Corporation Operating system agnostic sharing of proteced memory using memory identifiers
JP5038396B2 (ja) * 2006-04-21 2012-10-03 インターデイジタル テクノロジー コーポレーション トラステッドコンピューティングの完全性測定の通知を実行する装置および方法
US7945789B2 (en) * 2006-09-12 2011-05-17 International Business Machines Corporation System and method for securely restoring a program context from a shared memory
US7865663B1 (en) * 2007-02-16 2011-01-04 Vmware, Inc. SCSI protocol emulation for virtual storage device stored on NAS device

Also Published As

Publication number Publication date
US20090019551A1 (en) 2009-01-15
JP2009003855A (ja) 2009-01-08

Similar Documents

Publication Publication Date Title
JP4956292B2 (ja) 情報セキュリティ装置およびカウンタ制御方法
US10489562B2 (en) Modular software protection
JP5314016B2 (ja) 情報処理装置、暗号鍵の管理方法、コンピュータプログラム及び集積回路
US10547604B2 (en) Information recording apparatus with shadow boot program for authentication with a server
TWI676116B (zh) 安全儲存系統以及用於安全儲存的方法
US7934049B2 (en) Methods used in a secure yet flexible system architecture for secure devices with flash mass storage memory
CN110287654B (zh) 使用硬件信任根的媒体客户端装置鉴权
US9239925B2 (en) Processor security
WO2020192406A1 (zh) 数据存储、验证方法及装置
JP4891324B2 (ja) 大容量フラッシュメモリを備える高信頼性デバイスのための、セキュアでありながらフレキシブルなシステムアーキテクチャ
EP1542112A1 (en) Open type general-purpose attack-resistant cpu, and application system thereof
US20070055881A1 (en) Method for securely exchanging public key certificates in an electronic device
JP2005260676A (ja) セキュリティ装置、情報処理装置、セキュリティ装置の制御方法、情報処理装置の制御方法、該制御方法を実行させるための装置実行可能なプログラムおよびチケット・システム
TW201516733A (zh) 用以核對uefi認證變量變化之系統及方法
JP2004260834A (ja) 委託された取り消し権限による取り消しリストに基づく、デジタル著作権マネージメントシステムにおける、証明書の取り消しおよび他のプリンシパルの除外
JP2007512787A (ja) トラステッド・モバイル・プラットフォーム・アーキテクチャ
US11228421B1 (en) Secure secrets to mitigate against attacks on cryptographic systems
JP2005032130A (ja) データ管理装置、およびデータ管理方法、並びにコンピュータ・プログラム
WO2018184353A1 (zh) 应用程序安全认证的方法、终端及存储介质
JPWO2009157133A1 (ja) 情報処理装置、情報処理方法、これらを実現するコンピュータプログラム及び集積回路
CN105283921A (zh) 非易失性存储器的操作
Nyman et al. Citizen electronic identities using TPM 2.0
US11838282B2 (en) Information recording apparatus with server-based user authentication for accessing a locked operating system storage
TW200820076A (en) Portable mass storage with virtual machine activation
CN110914826B (zh) 用于分布式数据映射的系统和方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100329

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20111208

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111213

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120124

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120316

R150 Certificate of patent or registration of utility model

Ref document number: 4956292

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150323

Year of fee payment: 3