JPWO2009157142A1 - 情報処理装置、暗号鍵の管理方法、コンピュータプログラム及び集積回路 - Google Patents

情報処理装置、暗号鍵の管理方法、コンピュータプログラム及び集積回路 Download PDF

Info

Publication number
JPWO2009157142A1
JPWO2009157142A1 JP2010517691A JP2010517691A JPWO2009157142A1 JP WO2009157142 A1 JPWO2009157142 A1 JP WO2009157142A1 JP 2010517691 A JP2010517691 A JP 2010517691A JP 2010517691 A JP2010517691 A JP 2010517691A JP WO2009157142 A1 JPWO2009157142 A1 JP WO2009157142A1
Authority
JP
Japan
Prior art keywords
key
stakeholder
shared
control unit
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.)
Granted
Application number
JP2010517691A
Other languages
English (en)
Other versions
JP5314016B2 (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 JP2010517691A priority Critical patent/JP5314016B2/ja
Publication of JPWO2009157142A1 publication Critical patent/JPWO2009157142A1/ja
Application granted granted Critical
Publication of JP5314016B2 publication Critical patent/JP5314016B2/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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0822Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using key encryption key
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/083Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP]
    • H04L9/0833Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP] involving conference or group key
    • H04L9/0836Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP] involving conference or group key using tree structure or hierarchical structure
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0891Revocation or update of secret information, e.g. encryption key update or rekeying
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • H04L9/0897Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage involving additional devices, e.g. trusted platform module [TPM], smartcard or USB

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

複数のステークホルダーの各々にルート鍵から構成される鍵ツリー群の鍵を、複数のステークホルダー間で共有鍵を生成し、生成した共有鍵に対するアクセス制限を柔軟に設定する。複数のステークホルダー毎に共有鍵制御部と、耐タンパーモジュールを備え、ステークホルダーの依存関係に基いて共有鍵の設定を行い、共有鍵設定後、セキュリティレベルを維持するために不正なステークホルダーからはアクセスできないように共有鍵へのアクセス制御を行う。

Description

本発明は、複数のステークホルダーを備える装置において、ツリー構造で管理される鍵を、複数のステークホルダー間で共有して利用できる共有鍵の制御を行う情報処理装置、暗号鍵の管理方法、コンピュータプログラム及び集積回路に関するものである。
近年、情報セキュリティへの意識の高まりと共に、データを保護する技術ニーズが高まってきている。
これを背景として、セキュアなコンピュータプラットフォームを開発、普及させることを目的として、Trusted Computing Group(TCG)が設立された。TCGでは、Trusted Platform Module(TPM)と呼ばれるセキュリティコアモジュールを利用し、安全な端末環境を実現している(非特許文献1〜3参照)。TCGの基本機能として、特徴的な機能が3つある。
まず1つ目の特徴機能として、端末起動時からOSやアプリケーションが起動するまでの各モジュールのインテグリティ情報を計測し、計測した値を、それより前のモジュールのインテグリティ情報を連鎖させる累積処理(TCGのTPM_Extendコマンドに相当する処理)をし、その累積値をTPM内のPlatform Configration Registers(PCR)と呼ばれるレジスタに格納するTrusted Boot機能がある。
2つ目の特徴機能として、PCRに蓄積した値を端末環境情報として、外部のサーバーに通知し、外部のサーバーで、端末環境情報が期待される環境情報であるかどうかを検証するというAttestation機能がある。これらの機能を利用し、リモートで端末の環境の正当性を検証可能であることが、TCG技術のメリットの1つである。
そして、3つ目の特徴機能として、Protected Storage機能というストレージデータに対する保護機能がある。この機能は、TPM内のセキュアなメモリ領域に、TPM内部で生成した暗号鍵であるStorage Root Key(SRK)を保持する。そして、SRKをルート鍵とし、保護対象となる複数の暗号鍵をルート鍵で暗号化してTPM外のメモリ上で安全に保護する機能である。
具体的には、暗復号処理や署名処理に利用する鍵を保護するために、SRKをルート鍵とした階層的なツリー構造のノードに、それら保護対象の鍵を対応づけ、親のノード鍵が子供のノード鍵を暗号化する方法である。ルート鍵であるSRKがTPM内のセキュアメモリ上で保持されているため、ルート鍵以外の暗号化された鍵は、TPM外のメモリ上で管理しても安全となる。また、これらの鍵をバックアップする目的として、マイグレート機能も有する。マイグレート機能は、他のTPMのSRKの下に、鍵をコピーする機能である。
また、TCGは、TPM搭載端末として、携帯電話機もターゲットとしており、携帯電話機向けのTPMの仕様も規格化されている(非特許文献3、4)。携帯電話機向けのTPMは、Mobile Trusted Module(MTM)と呼ばれている。MTMは、TPMの機能を実現しながらも、一部のコマンドを携帯電話機向けに修正したり、新規コマンドが追加されている。その追加機能として、セキュアブート機能と、マルチステークホルダーモデルを定義している。
セキュアブートとは、携帯電話機の端末起動時から、OSやアプリケーションが起動するまでの各モジュールのインテグリティ情報を計測し、計測した値が期待される値であるかを、ローカル端末内で検証しながらブートする方式である。
また、マルチステークホルダーモデルとは、デバイスメーカー、キャリア、アプリケーションサービス提供者、ユーザーといった携帯電話機端末内に存在する複数のステークホルダーが所有する権利物を安全に利用するための実装モデルを定義したものである。各ステークホルダーの権利物として、例えば、デバイスメーカーであれば、International Mobile Equipment Identity(IMEI)であり、キャリアであれば、Subscriber Identification Module(SIM)関連情報であり、アプリケーションサービス提供者であれば、サービス提供されたデータであり、ユーザーであれば、アドレス帳が挙げられる。
要するに、マルチステークホルダーモデルとは、それぞれのステークホルダーが利用するMTMを、個別に割り当てることでそれぞれの権利物を安全に利用するモデルである。仮想化技術を用いることで、1つの端末内に、複数のMTMを仮想的に実現することが可能となる。
特許文献1は、暗号鍵をツリー構造に構造化し、暗号鍵更新時に管理する方法が開示されている。
特開平11−187013
TPM Main,Part1 Design Principles,Specification version 1.2 Level2 Revision103(9 July 2007) TPM Main,Part2 TPM Structures,Specification verion1.2 Level2 Revision103(9 July 2007) TPM Main Part3 Commands,Specification verion 1.2 Level2 Revision103(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)
上述したマルチステークホルダーモデルにおいて、各ステークホルダーが、各々SRKをルートとした鍵ツリーを保持する。そのため、一つの端末内に、その鍵のツリーが、ステークホルダーの個数だけ存在することになる。
ここで、ステークホルダーAが、ステークホルダーBが管理しているデータや機能を利用することが想定される。特に、ステークホルダーAが、ステークホルダーBのTPMで管理されているSRKをルートするツリーのノード鍵で暗号化されているデータに対してアクセスしたい場合、ステークホルダーAは、ステークホルダーBに対して、ステークホルダーBのSRKを用いたデータの復号処理を要求しなければならない。そして、ステークホルダーBは、ステークホルダーBのSRKを利用して復号処理後、復号データをステークホルダーAに送信する。
このように、異なるステークホルダー間で共有したいデータがあった場合、その共有データのアクセス要求のたびに、鍵を管理しているステークホルダーが復号処理をして、安全に復号データを渡すといったオーバーヘッド処理が必要になる。
これらのオーバーヘッド処理を回避するために、異なるステークホルダー間でアクセスされるセキュアな共有データに対しては、異なるステークホルダー間で共有な鍵で暗号化することが必要となる。言い換えると、異なるステークホルダー間で共有な鍵を保持させるような仕組みが必要となる。
現状のTCG仕様で、ステークホルダーAとBの2者間で鍵を共有させる場合、すなわち、ステークホルダーBの鍵を、ステークホルダーAでも利用できるようにするには、TCGのマイグレート機能を利用する。マイグレート元をステークホルダーBとし、マイグレート先をステークホルダーAとし、ステークホルダーBの鍵をステークホルダーAへマイグレートする。その結果、ステークホルダーBからマイグレートされた鍵をステークホルダーAが管理する鍵ツリーのノードとして構成することが可能となる。
これにより、共有鍵を保持しているステークホルダーAとBの間では、マイグレートされた鍵が、共有鍵となり、その共有鍵で暗号化したデータに対して、ステークホルダーを跨ることなく、直接アクセス可能となる。
しかしながら、マイグレート機能を利用した場合、マイグレート対象となった鍵の実体は、ステークホルダーAとBの各々で保持しているため、1つの端末に、共有鍵が2重持ちされることになり、非効率であるという課題があった。特に、共有鍵を複数設定する場合、2重持ちされる鍵が複数存在することになる。
また、特許文献1は、暗号鍵をツリー構造で管理し、子供のノードが親のノードを暗号化する構成であり、リーフからルートに至る経路の鍵群をユーザー鍵としてユーザーに配布し、ユーザーが脱退した際の鍵ツリーの更新方法を開示している。
しかしながら、ルート鍵は全てのユーザーで共有しているため、一人のユーザーが脱退する度に、更新後のルート鍵を全ユーザーに再配布しなければならないため、管理が複雑になってしまうという課題があった。
そこで、本発明は、これらの課題を解決するもので、マルチステークホルダーモデルにおいて、ステークホルダー毎に異なるSRKをルート鍵とする鍵ツリー間のノードの一部を共有鍵をとして設定する情報処理装置、暗号鍵の管理方法、コンピュータプログラム及び集積回路と、共有鍵を共有しているステークホルダーに不正があった場合に、不正なステークホルダーからの共有鍵へのアクセスを、より柔軟に無効化する情報処理装置、暗号鍵の管理方法、コンピュータプログラム及び集積回路を提供することを目的とする。
上記の課題を解決するために、本発明に係る情報処理装置は、第1のステークホルダーに対応する第1共有鍵制御部と、第2のステークホルダーに対応する第2共有鍵制御部と、前記第1のステークホルダーに対応し、複数の暗号鍵を含む第1の暗号鍵群をツリー構造で管理する第1の耐タンパーモジュールと、前記第1の暗号鍵群に含まれる暗号鍵を用いて暗号化された所定のデータを保持するデータ保持部と、前記第2のステークホルダーに対応し、複数の暗号鍵を含む第2の暗号鍵群をツリー構造で管理する第2の耐タンパーモジュールと、を具備し、前記第2共有鍵制御部から前記第1共有鍵制御部に前記第1の暗号鍵群に含まれる鍵を共有したい旨の通知を受けると、前記第1共有鍵制御部は、前記第2共有鍵制御部に対応する第2のステークホルダーが前記第1共有鍵制御部に対応する第1のステークホルダーに依存する関係であるか否かを判断し、前記第2共有鍵制御部に対応する第2のステークホルダーが前記第1共有鍵制御部に対応する第1のステークホルダーに依存する関係である場合、前記第1の暗号鍵群に含まれる鍵の中から前記第2の暗号鍵群にコピー可能な所定の鍵を探して、この所定の鍵を前記第2の暗号鍵群の中にコピーし、前記第2共有鍵制御部は、前記第2の暗号鍵に含まれる鍵を用いて前記所定の鍵を暗号化して前記第2の暗号鍵群の中に保持することで、前記第1の暗号鍵群に含まれる前記所定の鍵より下層の鍵を共用することを特徴とする。
本発明によると、前記第2共有鍵制御部から前記第1共有鍵制御部に前記第1の暗号鍵群に含まれる鍵を共有したい旨の通知を受けると、前記第2共有鍵制御部に対応する第2のステークホルダーが前記第1共有鍵制御部に対応する第1のステークホルダーに依存する関係である場合、前記第1の暗号鍵群に含まれる鍵の中から前記第2の暗号鍵群にコピー可能な所定の鍵を前記第2の暗号鍵群の中にコピーすることにより、前記第2のステークホルダーが前記第1のステークホルダーに依存する関係であることを条件に、前記所定の鍵を親鍵とするツリー構造に含まれる鍵群の全体をコピーするのではなく、前記所定の鍵のみをコピーする。これにより、前記第1の耐タンパーモジュール及び前記第2の耐タンパーモジュールとで前記所定の鍵を親鍵とするツリー構造に含まれる鍵群の全体を二重持ちする非効率を回避できる。
また、前記第2共有鍵制御部側で、前記第2の暗号鍵に含まれる鍵を用いて前記所定の鍵を暗号化して前記第2の暗号鍵群の中に保持し、前記第1の暗号鍵群に含まれる前記所定の鍵より下層の鍵を共用することにより、前記所定の鍵をコピーするだけで、前記第2共有鍵制御部側では、第1共有鍵制御部に対応する第1の耐タンパーモジュールが管理する第1の暗号鍵群に含まれる前記所定の鍵より下層の鍵を共用できる。これにより、前記第2共有鍵制御部は、前記データ保持部で保持された暗号化された所定のデータを簡易な構成で利用できる。
本発明の実施の形態1におけるシステム概要を示す図である。 本発明の実施の形態1におけるマルチステークホルダーを示す図である。 本発明の実施の形態1における情報処理端末の構成を示す図である。 本発明の実施の形態1における耐タンパーモジュールが有する鍵ツリーの構成を示す図である。 本発明の実施の形態1における鍵属性情報を示す図である。 本発明の実施の形態1における鍵のリンク情報示した図である。 本発明の実施の形態1における鍵属性情報の例を示した図である。 本発明の実施の形態1における鍵管理テーブルを示した図である。 本発明の実施の形態1におけるステークホルダー証明書の構成を示した図である。 本発明の実施の形態1におけるステークホルダー証明書を用いてトラストモデルを表現した例を示した図である。 本発明の実施の形態1における共有鍵の設定のシーケンス図である。 本発明の実施の形態1における共有鍵の設定のシーケンス図である。 本発明の実施の形態1における共有鍵を利用シーケンス図である。 本発明の実施の形態1における共有鍵の無効化概要フローチャートを示す図である。 本発明の実施の形態1における共有鍵の無効化詳細フローチャートを示す図である。 本発明の実施の形態1における共有鍵の無効化前後における鍵ツリーの構成を示す図である。 本発明の実施の形態2における共有鍵の無効化詳細フローチャートを示す図である。 本発明の実施の形態2における共有鍵の無効化前後における鍵ツリーの構成を示す図である。 本発明の実施の形態3における共有鍵の無効化詳細フローチャートを示す図である。 本発明の実施の形態4における暗号化共有データ構造を示す図である。 本発明の実施の形態4における暗号化共有データ構造を利用した暗号化共有データの復号処理のシーケンス図である。 本発明の実施の形態4における共有鍵の無効化詳細フローチャートを示す図である。 本発明の実施の形態3における共有鍵の再共有化のフローチャートを示す図である。
本発明の請求項1に記載の情報処理装置は、第1のステークホルダーに対応する第1共有鍵制御部と、第2のステークホルダーに対応する第2共有鍵制御部と、前記第1のステークホルダーに対応し、複数の暗号鍵を含む第1の暗号鍵群をツリー構造で管理する第1の耐タンパーモジュールと、前記第1の暗号鍵群に含まれる暗号鍵を用いて暗号化された所定のデータを保持するデータ保持部と、前記第2のステークホルダーに対応し、複数の暗号鍵を含む第2の暗号鍵群をツリー構造で管理する第2の耐タンパーモジュールと、を具備し、前記第2共有鍵制御部から前記第1共有鍵制御部に前記第1の暗号鍵群に含まれる鍵を共有したい旨の通知を受けると、前記第1共有鍵制御部が、前記第2共有鍵制御部に対応する第2のステークホルダーが前記第1共有鍵制御部に対応する第1のステークホルダーに依存する関係であるか否かを判断し、前記第2共有鍵制御部に対応する第2のステークホルダーが前記第1共有鍵制御部に対応する第1のステークホルダーに依存する関係である場合、前記第1の暗号鍵群に含まれる鍵の中から前記第2の暗号鍵群にコピー可能な所定の鍵を探して、この所定の鍵を前記第2の暗号鍵群の中にコピーし、前記第2共有鍵制御部は、前記第2の暗号鍵に含まれる鍵を用いて前記所定の鍵を暗号化して前記第2の暗号鍵群の中に保持することで、前記第1の暗号鍵群に含まれる前記所定の鍵より下層の鍵を共用することを特徴とする。
本態様により、前記第2共有鍵制御部から前記第1共有鍵制御部に前記第1の暗号鍵群に含まれる鍵を共有したい旨の通知を受けると、前記第2共有鍵制御部に対応する第2のステークホルダーが前記第1共有鍵制御部に対応する第1のステークホルダーに依存する関係である場合、前記第1の暗号鍵群に含まれる鍵の中から前記第2の暗号鍵群にコピー可能な所定の鍵を前記第2の暗号鍵群の中にコピーすることにより、前記第2のステークホルダーが前記第1のステークホルダーに依存する関係であることを条件に、前記所定の鍵を親鍵とするツリー構造に含まれる鍵群の全体をコピーするのではなく、前記所定の鍵のみをコピーする。これにより、前記第1の耐タンパーモジュール及び前記第2の耐タンパーモジュールとで前記所定の鍵を親鍵とするツリー構造に含まれる鍵群の全体を二重持ちする非効率を回避できる。
また、前記第2共有鍵制御部側で、前記第2の暗号鍵に含まれる鍵を用いて前記所定の鍵を暗号化して前記第2の暗号鍵群の中に保持し、前記第1の暗号鍵群に含まれる前記所定の鍵より下層の鍵を共用することにより、前記所定の鍵をコピーするだけで、前記第2共有鍵制御部側では、第1共有鍵制御部に対応する第1の耐タンパーモジュールが管理する第1の暗号鍵群に含まれる前記所定の鍵より下層の鍵を共用できる。これにより、前記第2共有鍵制御部は、前記データ保持部で保持された暗号化された所定のデータを簡易な構成で利用できる。
さらに、前記第2共有鍵制御部は、前記第2のステークホルターが第1のステークホルダーに依存する関係にある場合にのみ、前記データ保持部内に保持された暗号化された所定のデータを利用できる。これにより、前記所定のデータを管理する鍵構成を前記第1の耐タンパーモジュール及び前記第2の耐タンパーモジュールで簡易にしつつ、前記所定のデータの機密性を保証できる。
本発明の請求項2に記載の情報処理装置は、前記第2共有鍵制御部が、前記第1共有鍵制御部との間の依存関係を証明した証明書を有し、前記第1共有鍵制御部に前記第1の暗号鍵群に含まれる鍵を共有したい旨の通知を送付する際、前記証明書を送付し、前記第1共有鍵制御部が、前記証明書に基づいて、前記第2共有鍵制御部に対応する第2のステークホルダーが、少なくとも前記第1のステークホルダーに対応する第1の耐タンパーモジュールを利用するステークホルダーモデルであると判断した場合に、前記第2共有鍵制御部に対応する第2のステークホルダーが前記第1共有鍵制御部に対応する第1のステークホルダーに依存する関係であると判断するものである。
本態様によると、前記第1共有鍵制御部は、前記第2共有鍵制御部に対応する第2のステークホルダーが、少なくとも前記第1のステークホルダーに対応する第1の耐タンパーモジュールを利用するステークホルダーモデルであると証明書に基づいて判断した場合に、前記第2のステークホルダーが前記第1のステークホルダーに依存する関係であると判断する。これにより、前記第2のステークホルダーの前記第1のステークホルダーに対する依存関係を確実に判断できるので、前記所定のデータを管理する鍵構成を前記第1の耐タンパーモジュール及び前記第1の耐タンパーモジュールで簡易にしつつ、不正なステークホルダーからの前記所定のデータへのアクセスを確実に禁止できる。
本発明の請求項3に記載の情報処理装置は、前記第1の暗号鍵群に含まれる各鍵が、当該鍵が前記第1の暗号鍵群からコピー可能か否かを示す属性情報を有し、前記第1共有鍵制御部は、前記属性情報を参照して、前記第1の暗号鍵群に含まれる鍵の中から前記第2の暗号鍵群にコピー可能な所定の鍵を探すことを特徴としている。
本態様によると、当該鍵が前記第1の暗号鍵群からコピー可能か否かを示す属性情報を参照して、前記第1の暗号鍵群に含まれる鍵の中から前記第2の暗号鍵群にコピー可能な所定の鍵を探す。これにより、前記属性情報を参照するだけでコピー可能な鍵を探せるので、コピー可能な鍵を簡易にサーチできる。
本発明の請求項4に記載の情報処理装置は、前記第1共有鍵制御部が、前記第1の暗号鍵群に含まれる鍵の中から前記第2の暗号鍵群にコピー可能な所定の鍵が存在しない場合、コピー可能な鍵を生成して、この生成した鍵を前記第2の暗号鍵群の中にコピーすることを特徴としている。
本態様によると、前記第1共有鍵制御部は、前記第1の暗号鍵群に含まれる鍵の中から前記第2の暗号鍵群にコピー可能な所定の鍵が存在しない場合、コピー可能な鍵を生成して、この生成した鍵を前記第2の暗号鍵群の中にコピーする。これにより、前記第1の暗号鍵群に含まれる鍵の中から前記第2の暗号鍵群にコピー可能な所定の鍵が存在しない場合であっても、前記第2共有鍵制御部は前記第1の暗号鍵群に含まれる鍵を共用できるので、前記第2共有鍵制御部は前記第1の暗号鍵群に含まれる暗号鍵を用いて暗号化された所定のデータを保持するデータ保持部にアクセスできる。
本発明の請求項5に記載の情報処理装置は、前記第1共有鍵制御部が、前記第1の暗号鍵群に含まれる前記所定の鍵より下層の鍵の位置を示す位置情報を前記所定の鍵のリンク情報として生成し、このリンク情報と共に前記所定の鍵を前記第2の暗号鍵群の中にコピーすることを特徴とする請求項3記載の情報処理装置。
本態様によると、前記第1の暗号鍵群に含まれる前記所定の鍵より下層の鍵の位置を示す位置情報を前記所定の鍵のリンク情報として生成してコピーすることにより、第2共有鍵制御部では、前記所定の鍵のリンク情報を参照すれば、前記所定の鍵より下層の鍵の位置を確認できるので、前記所定の鍵より下層の鍵を前記第2の耐タンパーモジュールにコピーすることなく、前記第1の耐タンパーモジュールとの間で前記所定の鍵より下層の鍵を共用できる。その結果、前記第1の耐タンパーモジュール及び前記第1の耐タンパーモジュールとで前記所定の鍵を親鍵とするツリー構造に含まれる鍵群の全体を二重持ちする非効率を回避できる。
本発明の請求項6に記載の情報処理装置は、前記第1共有鍵制御部が、前記第1の暗号鍵群に含まれる所定の鍵の位置情報及び前記第2の暗号鍵群に含まれる所定の鍵の位置情報を、前記第1の暗号鍵群に含まれる前記所定の鍵より下層の鍵のリンク情報として生成することを特徴としている。
本態様により、前記第1の暗号鍵群に含まれる所定の鍵の位置情報及び前記第2の暗号鍵群に含まれる所定の鍵の位置情報を、前記第1の暗号鍵群に含まれる前記所定の鍵より下層の鍵のリンク情報として生成することにより、前記下層の鍵のリンク情報を参照すれば前記下層の鍵を暗号化した親鍵の所在を認識できる。この結果、前記第1の耐タンパーモジュール及び前記第1の耐タンパーモジュールとで前記第1の暗号鍵群に含まれる前記所定の鍵より下層の鍵を共用する場合であっても、前記第1の暗号鍵群に含まれる前記所定の鍵より下層の鍵がどの鍵で暗号化されているかを容易に識別できる。
本発明の請求項7に記載の情報処理装置は、前記第1共有鍵制御部と前第2共有鍵制御部とは、共用の共有鍵制御部であることを特徴としている。
本態様により、前記第1共有鍵制御部と前第2共有鍵制御部とは、共用の共有鍵制御部で構成が可能となり、1つの共有鍵制御部にて、2つのステークホルダー間の共有鍵を統括的に制御することが可能なので、より柔軟にアクセス制御を行うことが可能となる。
また、同じ共有鍵を保持している場合、自身以外の共有先のステークホルダーの脆弱性が原因で、共有していた鍵が暴露される危険性がある。そのため、その自身以外の共有先のステークホルダーが、不正と判断(リボーク対象もしくは、改竄されていると検知)された場合には、そのステークホルダーから、共有鍵で暗号化されているデータを利用不可にするためのアクセス制御が必要となる。
本発明の請求項8に記載の情報処理装置は、前記第1のステークホルダーが管理する第1ステークホルダー環境が、前記第2のステークホルダーが管理する第2のステークホルダー環境が改竄された、もしくはリボーク対象であることを検知した場合、前記第1共有鍵制御部は、前記所定の鍵と置換える代替鍵を前記第1の耐タンパーモジュールに生成させ、前記所定の鍵を親鍵とするツリー構造に含まれる鍵を前記代替鍵で再暗号化させると共に前記前記所定の鍵の親鍵を用いて前記代替鍵を暗号化させて、前記第2共有鍵制御部による前記所定のデータの利用を排除することを特徴としている。
本態様によると、前記第1のステークホルダーが管理する第1ステークホルダー環境が、前記第2のステークホルダーが管理する第2のステークホルダー環境が改竄された、もしくはリボーク対象であることを検知した場合、前記第1の耐タンパーモジュールは前記所定の鍵と置換える代替鍵を生成して前記所定の鍵を親鍵とするツリー構造に含まれる鍵を前記代替鍵で再暗号化すると共に前記所定の鍵の親鍵を用いて前記代替鍵を暗号化する。この結果、前記第2共有鍵制御部は前記所定の鍵を用いて前記代替鍵を親鍵とするツリー構造に含まれる鍵を復号化できないので、前記代替鍵を親鍵とするツリー構造に含まれる鍵で暗号化された所定のデータを利用できず、前記所定データを不正な利用から保護できる。
本発明の請求項9に記載の情報処理装置は、前記第1のステークホルダーが管理する第1ステークホルダー環境が、前記第2のステークホルダーが管理する第2のステークホルダー環境が改竄された、もしくはリボーク対象であることを検知した場合、前記第1共有鍵制御部は、前記所定の鍵を親鍵とするツリー構造に含まれる鍵以外の鍵を用いて前記第1の耐タンパーモジュールに前記所定のデータを暗号化し直させて、前記第2共有鍵制御部による前記所定の鍵の使用を排除することを特徴とする。
本態様によると、前記第2のステークホルダー環境が攻撃されたことを、第1のステークホルダー環境が検知した場合、前記第1の耐タンパーモジュールは前記所定の鍵を親鍵とするツリー構造に含まれる鍵以外の鍵を用いて前記所定のデータを暗号化し直す。この結果、前記第2共有鍵制御部は前記所定の鍵を親鍵とするツリー構造に含まれる鍵を用いては前記所定のデータを復号化できないので、前記所定の鍵を親鍵とするツリー構造に含まれる鍵以外の鍵で暗号化された所定のデータを利用できず、前記所定データを不正な利用から保護できる。
本発明の請求項10に記載の情報処理装置は、前記第1の暗号化鍵群に含まれる前記所定の鍵を親鍵とするツリー構造に含まれる鍵が、属性情報として、前記改竄のない第2のステークホルダーが管理する第2ステークホルダー環境のハッシュ値から生成された期待値として鍵利用制限情報を有し、第2の耐タンパーモジュールは、前記第2のステークホルダー環境のハッシュ値から生成された実際の値としての環境情報を記憶し、第2の共有鍵制御部から前記第1の共有鍵制御部に対して前記第1の暗号化鍵群に含まれる前記所定の鍵を親鍵とするツリー構造に含まれる鍵の利用を依頼するときに、第2の共有鍵制御部は、前記鍵利用制限情報と前記環境情報とを比較し、比較結果が正しい場合にのみ前記鍵を利用させるように制限をすることを特徴する。
本態様によると、第2の共有鍵制御部は、前記改竄のない第2のステークホルダー環境から生成された鍵利用制限情報と前記第2のステークホルダー環境から実際に得られた環境情報とを比較し、比較結果が正しい場合にのみ前記鍵を利用させる。この結果、前記第2ステークホルダー環境が改竄され若しくはリボークされた場合には前記比較結果は不一致となって、前記第2共有鍵制御部は前記所定の鍵を用いては前記所定の鍵を親鍵とするツリー構造に含まれる鍵を復号化できないので、前記所定の鍵を親鍵とするツリー構造に含まれる鍵用いて暗号化されている前記所定のデータを復号化できず、前記所定データを不正な利用から保護できる。
本発明の請求項11に記載の情報処理装置は、前記第1ステークホルダーが管理する第1のステークホルダー環境が、前記第2ステークホルダー環境が改竄されたもしくはリボーク対象であることを検知した場合、前記第1の共有鍵制御部は、前記所定の鍵を親鍵とするツリー構造に含まれる鍵を、第2の共有鍵制御部から利用できないように、前記鍵利用制限情報を書き換えることを特徴とする。
本態様によると、前記第1ステークホルダーが管理する第1のステークホルダー環境は、前記第2ステークホルダー環境が改竄されたもしくはリボーク対象であることを検知した場合、前記第1の共有鍵制御部は、前記所定の鍵を親鍵とするツリー構造に含まれる鍵を、第2の共有鍵制御部から利用できないように、前記鍵利用制限情報を書き換える。この結果、前記第2共有鍵制御部は前記所定の鍵を用いては前記所定の鍵を親鍵とするツリー構造に含まれる鍵を復号化できないので、前記所定の鍵を親鍵とするツリー構造に含まれる鍵用いて暗号化されている前記所定のデータを復号化できず、前記所定データを不正な利用から保護できる。
本発明の請求項12に記載の情報処理装置は、前記第1の暗号化鍵群に含まれる前記所定の鍵を親鍵とするツリー構造に含まれる鍵で暗号化された暗号化データが、属性情報として、前記改竄のない第2のステークホルダーが管理する第2ステークホルダー環境のハッシュ値から生成された期待値である暗号化データ利用制限情報を有し、第2の耐タンパーモジュールは、前記第2のステークホルダー環境のハッシュ値から生成された実際の値としての環境情報を記憶し、第2の共有鍵制御部から前記第1の共有鍵制御部に対して前記第1の暗号化鍵群に含まれる前記所定の鍵を親鍵とするツリー構造に含まれる鍵で暗号化されたデータの復号処理を依頼するときに、第2の共有鍵制御部は、前記暗号化データ利用制限情報と前記環境情報とを比較し、比較結果が正しい場合にのみ前記暗号化データの復号処理させるように制限をすることを特徴する。
本態様によると、第2の共有鍵制御部は、前記改竄のない第2のステークホルダー環境から生成された暗号化データ利用制限情報と前記第2のステークホルダー環境から実際に得られた環境情報とを比較し、比較結果が正しい場合にのみ暗号化データを復号させる。この結果、前記第2ステークホルダー環境が改竄され若しくはリボークされた場合には前記比較結果は不一致となって、前記第2共有鍵制御部は前記所定の鍵を用いては前記所定の鍵を親鍵とするツリー構造に含まれる鍵を用いて暗号化されている前記暗号化データを復号化できず、前記暗号化データを不正な利用から保護できる。
本発明の請求項13に記載の情報処理装置は、前記第1ステークホルダーが管理する第1のステークホルダー環境が、前記第2ステークホルダー環境が改竄されたもしくはリボーク対象であることを検知した場合、前記第1の共有鍵制御部は、前記所定の鍵を親鍵とするツリー構造に含まれる鍵で暗号化された暗号化データを、第2の共有鍵制御部から利用できないように、前記暗号化データ利用制限情報を書き換えることを特徴とする。
本態様によると、前記第1ステークホルダーが管理する第1のステークホルダー環境は、前記第2ステークホルダー環境が改竄されたもしくはリボーク対象であることを検知した場合、前記第1の共有鍵制御部は、前記所定の鍵を親鍵とするツリー構造に含まれる鍵で暗号化された暗号化データを、第2の共有鍵制御部から利用できないように、前記暗号化データ利用制限情報を書き換える。この結果、前記第2共有鍵制御部は前記所定の鍵を用いては前記所定の鍵を親鍵とするツリー構造に含まれる鍵を用いた復号処理ができないので、前記所定データを不正な利用から保護できる。
本発明の請求項14に記載の情報処理装置は、前記第1共有鍵制御部は第1ステークホルダー環境および第2ステークホルダー環境を環境に対して完全性をチェックしてから改竄されていない環境のみを起動する機能であるセキュアブートによってブートする際に、第2ステークホルダー環境が改竄された、もしくはリボーク対象であることを検知することを特徴とする。
本態様によると、前記第1共有鍵制御部は第1ステークホルダー環境および第2ステークホルダー環境を環境に対して完全性をチェックしてから改竄されていない環境のみを起動する機能であるセキュアブートによってブートする際に、第2ステークホルダー環境が改竄された、もしくはリボークされたことを検知することにより、前記第2共有鍵制御部の外部からの攻撃を判断できる。
本発明の請求項15に記載の情報処理装置は、前記第1共有鍵制御部が、外部のサーバーから、前記第2共有鍵制御部が改竄されたもしくはリボーク対象である旨の通知を受けることで前記第2共有鍵制御部が外部から攻撃されたことを検知することを特徴とする。
本態様によると、前記第1共有鍵制御部は、外部のサーバーから、前記第2共有鍵制御部が外部から攻撃された旨の通知を受けることにより、前記第2共有鍵制御部の外部からの攻撃を検知できる。
本発明の請求項16に記載の暗号鍵の管理方法は、第1のステークホルダーに対応する第1共有鍵制御部と、第2のステークホルダーに対応する第2共有鍵制御部と、前記第1のステークホルダーに対応し、複数の暗号鍵を含む第1の暗号鍵群をツリー構造で管理する第1の耐タンパーモジュールと、前記第1の暗号鍵群に含まれる暗号鍵を用いて暗号化された所定のデータを保持するデー保持部と、前記第2のステークホルダーに対応し、複数の暗号鍵を含む第2の暗号鍵群をツリー構造で管理する第2の耐タンパーモジュールと、を具備する情報処理装置における暗号鍵の鍵管理方法であって、前記第1共有鍵制御部において、前記第2共有鍵制御部から前記第1共有鍵制御部に前記第1の暗号鍵群に含まれる鍵を共有したい旨の通知を受けると、前記第2共有鍵制御部に対応する第2のステークホルダーが前記第1共有鍵制御部に対応する第1のステークホルダーに依存する関係であるか否かを判断し、前記第2共有鍵制御部に対応する第2のステークホルダーが前記第1共有鍵制御部に対応する第1のステークホルダーに依存する関係である場合、前記第1の暗号鍵群に含まれる鍵の中から前記第2の暗号鍵群にコピー可能な所定の鍵を探して、この所定の鍵を前記第2の暗号鍵群の中にコピーし、前記第2共有鍵制御部において、前記第2の暗号鍵に含まれる鍵を用いて前記所定の鍵を暗号化して前記第2の暗号鍵群の中に保持することで、前記第1の暗号鍵群に含まれる前記所定の鍵より下層の鍵を共用することを特徴とする。
本発明の請求項17に記載のコンピュータプログラムは、第1のステークホルダーに対応する第1共有鍵制御部と、第2のステークホルダーに対応する第2共有鍵制御部と、前記第1のステークホルダーに対応し、複数の暗号鍵を含む第1の暗号鍵群をツリー構造で管理する第1の耐タンパーモジュールと、前記第1の暗号鍵群に含まれる暗号鍵を用いて暗号化された所定のデータを保持するデー保持部と、前記第2のステークホルダーに対応し、複数の暗号鍵を含む第2の暗号鍵群をツリー構造で管理する第2の耐タンパーモジュールと、を具備する情報処理装置における暗号鍵の鍵管理に用いるコンピュータプログラムであって、コンピュータに対して、前記第1共有鍵制御部において、前記第2共有鍵制御部から前記第1共有鍵制御部に前記第1の暗号鍵群に含まれる鍵を共有したい旨の通知を受けると、前記第2共有鍵制御部に対応する第2のステークホルダーが前記第1共有鍵制御部に対応する第1のステークホルダーに依存する関係であるか否かを判断する処理と、前記第2共有鍵制御部に対応する第2のステークホルダーが前記第1共有鍵制御部に対応する第1のステークホルダーに依存する関係である場合、前記第1の暗号鍵群に含まれる鍵の中から前記第2の暗号鍵群にコピー可能な所定の鍵を探して、この所定の鍵を前記第2の暗号鍵群の中にコピーする処理と、を実行させ、前記第2共有鍵制御部において、前記第2の暗号鍵に含まれる鍵を用いて前記所定の鍵を暗号化して前記第2の暗号鍵群の中に保持することで、前記第1の暗号鍵群に含まれる前記所定の鍵より下層の鍵を共用する処理を実行させることを特徴とする。
本発明の請求項18に記載の集積回路は、第1のステークホルダーに対応する第1共有鍵制御部と、第2のステークホルダーに対応する第2共有鍵制御部と、前記第1のステークホルダーに対応し、複数の暗号鍵を含む第1の暗号鍵群をツリー構造で管理する第1の耐タンパーモジュールと、前記第1の暗号鍵群に含まれる暗号鍵を用いて暗号化された所定のデータを保持するデー保持部と、前記第2のステークホルダーに対応し、複数の暗号鍵を含む第2の暗号鍵群をツリー構造で管理する第2の耐タンパーモジュールと、を具備する情報処理装置に用いる集積回路であって、情報処理部と、この情報処理部に対して、前記第1共有鍵制御部において、前記第2共有鍵制御部から前記第1共有鍵制御部に前記第1の暗号鍵群に含まれる鍵を共有したい旨の通知を受けると、前記第2共有鍵制御部に対応する第2のステークホルダーが前記第1共有鍵制御部に対応する第1のステークホルダーに依存する関係であるか否かを判断する処理と、前記第2共有鍵制御部に対応する第2のステークホルダーが前記第1共有鍵制御部に対応する第1のステークホルダーに依存する関係である場合、前記第1の暗号鍵群に含まれる鍵の中から前記第2の暗号鍵群にコピー可能な所定の鍵を探して、この所定の鍵を前記第2の暗号鍵群の中にコピーする処理と、を実行させ、前記第2共有鍵制御部において、前記第2の暗号鍵に含まれる鍵を用いて前記所定の鍵を暗号化して前記第2の暗号鍵群の中に保持することで、前記第1の暗号鍵群に含まれる前記所定の鍵より下層の鍵を共用する処理を実行させる処理プログラムを格納したメモリと、を具備した集積回路とする。
発明の請求項19に記載の情報処理装置は、前記第1共有鍵制御部は、前記第1の暗号鍵群に含まれる暗号鍵で暗号化されている前記所定の鍵を、前記暗号鍵を用いて復号し、復号された鍵を、前記第2の暗号鍵群に含まれる暗号鍵で再暗号化し、再暗号化された鍵を、前記第2の暗号鍵群の中にコピーすることを特徴とする。
以下、本発明の実施の形態について、図面を参照しながら説明する。
(実施の形態1)
本発明の実施の形態について、説明する。以降、本実施の形態で示すTPMは、TCGのMobile Phone Working Groupで仕様化されているMobile Trusted Module(MTM)の機能を有する耐タンパーモジュールであるとして説明する。
<図1:システム概要>
まず、マルチステークホルダーについて携帯電話機を例として説明する。携帯電話機には、デバイスメーカー、キャリア、アプリケーションサービス提供者、ユーザーといった複数のステークホルダーが存在する。各ステークホルダーは、各自の権利物を所有している。
各ステークホルダーの権利物は、例えば、デバイスメーカーであれば、International Mobile Equipment Identity(IMEI)であり、キャリアであれば、Subscriber Identification Module(SIM)関連情報であり、アプリケーションサービス提供者であれば、サービス提供されたデータであり、ユーザーであれば、アドレス帳が挙げられる。
マルチステークホルダーモデルとは、それぞれのステークホルダーが利用するTPMを、個別に割り当てることでそれぞれの権利物を安全に利用するモデルである。
図1は、マルチステークホルダーモデルにおけるシステム全体を示した図である。
情報処理端末10は、MTMを搭載したモバイル端末である。実施の形態1では、以降、情報処理装置10内には、第1のステークホルダーと第2のステークホルダーとの2つのステークホルダーが存在するという例を用いて説明する。なお、ステークホルダーは前述しているように、2つ以上であってもよい。また、情報処理端末は、携帯電話機であってもよいし、PDAなどのモバイル端末、あるいは、TVやDVDやBDプレイヤーやSTBなどの据え置き型の電子機器であってもよい。
第1のステークホルダー管理サーバー11は、第1のステークホルダー環境を提供するステークホルダーが管理しているサーバーである。第1のステークホルダー管理サーバー11は、認証PCRデータベース12、証明書管理データベース13及びリボケーションリスト14を管理している。
認証PCRデータベース12は、第1のステークホルダー管理サーバー11が、情報処理端末10の正当性を検証するAttestation処理の際に利用するデータベースであり、正当な情報処理端末10の環境情報であるPCRの期待値のデータベースである。
第1のステークホルダー管理サーバー11は、Attestation時に、情報処理端末10から送信されたPCR値と、認証PCRデータベース12の記録している値を比較し、一致すれば正当な情報処理端末10と判断し、適切なサービス等を提供する。
証明書データベース13は、第1のステークホルダーから提供されるソフトウェアの証明書のデータベースである。第1のステークホルダーのモジュールの更新が必要であれば、更新すべきモジュールとともに、更新モジュールの証明書を送信する。また、更新モジュールの証明書も、証明書データベース13で管理される。
リボケーションリスト14は、リボーク対象であるステークホルダーのリストを記録しているデータベースである。リボケーションリスト14は、第1のステークホルダー管理サーバー11から情報処理端末10へ送信され、情報処理端末10内で完全性を保護した状態で管理される。
なお、リボケーションリスト14は、無効化すべきステークホルダーの情報を記載したブラックリスト方式として説明するが、有効なステークホルダーの情報を記載したホワイトリスト方式を用いてもよい。
なお、図1では、認証PCRデータベース12、証明書データベース13及びリボケーションリスト14は、第1のステークホルダー管理サーバー11が、全て管理しているが、複数の管理サーバーで管理してもよい。
第2のステークホルダー管理サーバー16は、第2のステークホルダー環境を提供するステークホルダーが管理しているサーバーである。図1で図示していないが、第2のステークホルダーも、第1のステークホルダー管理サーバー11と同様に、認証PCRデータベース12、証明書管理データベース13及びリボケーションリスト14を管理している。
<図2:マルチステークホルダーモデルにおけるトラストモデル>
図2は、マルチステークホルダーモデルにおけるトラストモデルを示した図である。
トラストモデルとして、3つのモデルが定義される。また、図2には図示していないが、各ステークホルダーは、各自のステークホルダーの権利物を管理しており、ステークホルダーの所有する権利物は、各ステークホルダーに対応づけられたTPMを利用して、安全にアクセスされる。以下、それぞれ3つのモデルについて説明する。
図2(a)は、Independent Modelを示している。このモデルは、各ステークホルダー間に信頼の依存関係はないモデルである。例えば、ステークホルダー1(21)が、TPM1(23)を利用し、ステークホルダー2(22)は、TPM2(24)を利用するモデルである。
図2(b)は、Interdependent Modelを示している。このモデルは、ステークホルダー間で、部分的に依存関係のあるモデルである。例えば、ステークホルダー1(31)は、TPM1(33)を利用し、ステークホルダー2(32)は、TPM2(34)を利用する。ここまでは、Independent Modelと同じであるが、図2(b)に示しているように、一部領域が重なっている部分が存在する。これは、ステークホルダー2(32)が、TPM2(34)以外に、TPM1(33)の機能を利用することを概念的に表している。
例えば、携帯電話機の場合、ステークホルダー2(32)が、キャリアであって、ステークホルダー1(31)がデバイスメーカーであった場合、キャリアが、デバイスメーカーの権利物であるIMEIにアクセスするといった例である。この場合、ステークホルダー2(32)は、ステークホルダー1(31)に対して、IMEIアクセス要求をすることになるため、ステークホルダー2(32)は、ステークホルダー1(31)経由でTPM1(33)を利用することになる。
図2(c)は、Dependent Modelを示している。このモデルは、ステークホルダー間で、あるステークホルダーが、別のステークホルダーに完全に依存するモデルである。これは、ステークホルダー1(41)がTPM1(43)を利用し、ステークホルダー2(42)もTPM1(43)を利用するモデルである。携帯電話機の場合、ステークホルダー2が、キャリアであって、ステークホルダー1がデバイスメーカーであった場合、デバイスメーカーの権利物であるIMEIは、TPM1(43)の機能により保護され、キャリアの権利物であるSIM情報もTPM1(43)の機能を利用して安全に保護される。
<図3:情報処理端末>
図3は、マルチステークホルダーモデルの情報処理端末10の全体構成図である。
情報処理端末10は、第1のステークホルダープログラム100、第2のステークホルダープログラム200、共有鍵制御部(111,210)、耐タンパーモジュール(120,220)、鍵格納部30、暗号化データ格納部40、及び、ステークホルダー証明書格納部50から構成される。また、図示していないが、情報処理端末10は、CPU、I/Oデバイス、RAMなどの揮発メモリ、ROMやFlashメモリなどの不揮発メモリなどのハードウェア群を保持する。
<ステークホルダープログラム>
第1のステークホルダープログラム100は、第1のステークホルダーから提供されるプログラム群であり、第1のステークホルダー管理サーバー11から配布されるものである。第1のステークホルダープログラム100は、耐タンパーモジュール120のセキュアブート機能により、正当性を検証されたプログラムのみが起動される。
第2のステークホルダープログラムは、第2のステークホルダーから提供されるプログラム群であり、第2のステークホルダー管理サーバー16から配布されるものである。第2のステークホルダープログラム200は、耐タンパーモジュール220のセキュアブート機能により、正当性を検証されたプログラムのみが起動される。
なお、セキュアブートの仕様については、非特許文献4に詳細に記載されているので説明を省略する。
<共有鍵制御部(110、210)>
共有鍵制御部1(110)は、鍵群1(130)と共有鍵群(330)との利用制御を行う部であり、マルチステークホルダーモデル判定部1(111)と、共有許可設定部1(112)と鍵管理テーブル1(113)とから構成される。
マルチステークホルダーモデル判定部1(111)は、共有鍵制御部1(110)が管理している鍵群1(113)もしくは共有鍵(330)に対して、ステークホルダー1以外のステークホルダーから共有鍵の設定の要求があった場合に、要求元のステークホルダーが、鍵を共有してよいステークホルダーであるかどうかをステークホルダー証明書格納部50に格納しているステークホルダー証明書(150,250)を参照して判断する。
共有許可設定部1(112)は、鍵群1(130)に属する鍵を、共有鍵群(330)の共有鍵として設定したり、新規に鍵を生成したり、鍵のマイグレート処理を制御したりと、各種共有鍵を設定する際に必要な鍵処理をする部である。ここでの鍵処理は、共有鍵制御部1(112)と、耐タンパーモジュール1(120)とが連携して行う。
鍵管理テーブル1(113)は、共有鍵制御部1(110)から、鍵群1(130)と共有鍵群(330)とにアクセスするために必要な情報が記載されているテーブルである。鍵管理テーブル1(113)は、図8を用いて後述する。
共有鍵制御部2(210)は、鍵群2(230)と共有鍵群(330)の利用制御を行う部であり、マルチステークホルダーモデル判定部2(211)と、共有許可設定部2(212)と、鍵管理テーブル2(213)から構成される。
マルスステークホルダーモデル判定部2(211)は、共有鍵制御部2(210)が管理している鍵群2(230)もしくは共有鍵(330)に対して、ステークホルダー2以外のステークホルダーから共有鍵の設定の要求があった場合に、要求元のステークホルダーが、鍵を共有してよいステークホルダーであるかどうかをステークホルダー証明書格納部50に格納しているステークホルダー証明書(150,250)を参照して判断する。
共有許可設定部2(212)は、鍵群2(230)の鍵を、共有鍵群(330)の共有鍵として設定したり、新規に鍵を生成したり、鍵のマイグレート処理を制御したりと、各種共有鍵を設定する際に必要な鍵処理をする部である。ここでの鍵処理は、共有鍵制御部2(212)と、耐タンパーモジュール2(220)とが連携して行う。
鍵管理テーブル2(213)は、鍵群2(230)と共有鍵群(330)とにアクセスするために必要な情報が記載されているテーブルである。鍵管理テーブル2(213)は、図8を用いて後述する。
なお、共有鍵制御部1(110)及び共有鍵制御部2(210)は、それぞれ、第1のステークホルダープログラム、第2のステークホルダープログラムとして実現されていてもよい。これにより、共有鍵制御部1(110)及び共有鍵制御部2(210)は、TCGのモバイル仕様で規定されるセキュアブートで完全性が検証されてから起動することが可能となる。
<耐タンパーモジュール(120、220)>
耐タンパーモジュール1(120)は、MTM機能を有するものとして実装されているとして説明する。そのため、耐タンパーモジュール1(120)は、暗復号処理や署名生成・検証処理やTPM機能処理などのセキュアな処理や、鍵の制御処理をする際に、第1のステークホルダープログラム及び共有鍵制御部1(110)などから利用される。さらに、耐タンパーモジュール1(120)は、耐タンパーモジュール1内の不揮発性メモリ上にルート鍵1(121)を保持する。このルート鍵1(121)は、TCGにおけるSRKに相当する鍵である。
同様に、耐タンパーモジュール2(220)は、MTM機能を有するものとして実装されているとして説明する。そのため、耐タンパーモジュール2(220)は、暗復号処理や署名生成・検証処理やTPM機能処理などのセキュアな処理や、鍵の制御処理をする際に、第2のステークホルダープログラムおよび共有鍵制御部2(210)などから利用される。さらに、耐タンパーモジュール2(220)は、耐タンパーモジュール1内の不揮発なメモリ上にルート鍵2(221)を保持する。このルート鍵2(221)は、TCGにおけるSRKに相当する鍵である。
<鍵格納部30>
鍵群1(130)と共有鍵群330とは、ルート鍵1(121)をルートとした階層的ツリー構造のノード鍵として構成される。これは、TCGのProtected Storage機能を実現するための鍵ツリー構造に相当する。
鍵群1(130)は、1つ以上の鍵から構成されたツリー構造を有する鍵群である。鍵群1(130)の個々の鍵は、共有鍵制御部1(110)から耐タンパーモジュール1(120)を経由して暗復号化処理や署名生成・検証処理に利用される。
鍵群2(230)と共有鍵群330とは、ルート鍵2(221)をルートとした階層的ツリー構造のノード鍵として構成される。これは、TCGのProtected Storage機能を実現するための鍵ツリー構造に相当する。
鍵群2(230)は、1つ以上の鍵から構成されたツリー構造を有する鍵群である。鍵群2(230)の個々の鍵は、共有鍵制御部2(210)から耐タンパーモジュール2(220)を経由して暗復号化処理や署名生成・検証処理に利用される。
一方、共有鍵群330は、1つ以上の鍵から構成されたツリー構造を有する鍵群である。共有鍵群330の個々の鍵は、共有鍵制御部1(110)から耐タンパーモジュール1(110)経由で暗復号化処理や署名生成・検証処理に利用される。共有鍵群330は、共有鍵制御部2(210)から耐タンパーモジュール2(220)経由でも暗復号化処理や署名生成・検証処理に利用される。
共有鍵群330は、共有鍵と、その共有鍵を保護するための共有鍵の親鍵とから構成される。共有鍵の親鍵は、共有鍵制御部1(110)から耐タンパーモジュール1(110)経由でのみ利用される鍵と、共有鍵制御部2(210)から耐タンパーモジュール2(210)経由でのみ利用される鍵とから構成される。 これら鍵群1(130)、鍵群2(230)及び共有鍵群(330)は、鍵格納部30に格納される。鍵群1(130)、鍵群2(230)及び共有鍵群(330)の構造については、図4から図7を用いてさらに詳しく説明する。
<暗号化データ格納部40>
暗号化データ1(140)は、鍵群1(130)の鍵で暗号化されたデータである。暗号化共有データ340は、共有鍵群330の鍵で暗号化されたデータである。暗号化データ2(240)は、鍵群2(230)の鍵で暗号化されたデータである。
暗号化データ1(140)、暗号化データ2(240)、及び暗号化共有データ340は、暗号化データ格納部40に格納される。暗号化データ格納部40は、HDDやフラッシュメモリなどの不揮発メモリで構成される。
なお、図3では、暗号化データ1(140)、暗号化データ2(240)、及び暗号化共有データ340は、暗号化データとしているが、暗号化データに限定されず、それぞれの鍵で署名生成したデータであってもよい。
<ステークホルダー証明書格納部50>
ステークホルダー証明書格納部50は、ステークホルダー証明書1(150)とステークホルダー証明書2(250)とを格納する部である。ステークホルダー証明書格納部50は、不揮発メモリで実現され、完全性が保護された形で管理される。
ステークホルダー証明書1(250)は、第1のステークホルダープログラム、共有鍵制御部1(110)、及び耐タンパーモジュール1(120)が、正規のステークホルダーから提供されてことを示す証明書である。
ステークホルダー証明書2(250)は、第2のステークホルダープログラム、共有鍵制御部2(210)、及び耐タンパーモジュール2(220)が、正規のステークホルダーから提供されてことを示す証明書である。
ステークホルダー証明書(150、250)は、それぞれ、依存関係のあるステークホルダーを識別できる情報が記載される。ステークホルダー証明書(150,250)の構成などの詳細は、図9及び図10を用いて後述する。
<図4:共有鍵の鍵ツリー構成>
図4は、鍵群1(130)と鍵群2(230)と共有鍵群(330)とのツリー構成を表した図である。なお、図3で既に説明している構成要素については、説明を省略する。図4では、図3における耐タンパーモジュール(120,220)、鍵群1(130)、鍵群2(230)、及び共有鍵群(330)を、より詳細に示したものである。
耐タンパーモジュール1(120)は、耐タンパーモジュール1(120)の外部から不正なアクセスができないように保護されたセキュアメモリ(122)と、16個のPCR(123)とを備えている。ルート鍵1(121)は、セキュアメモリ(122)に安全に保持される。
耐タンパーモジュール2(220)は、耐タンパーモジュール2(220)の外部から不正なアクセスができないように保護されたセキュアメモリ(222)と、16個のPCR(223)とを備えている。ルート鍵2(221)は、セキュアメモリ(222)に安全に保持される。
なお、PCR(120、220)は、Platform Configration Registersと呼ばれるレジスタであり、TCGのTPM_Extendコマンドにより生成されたインテグリティ値が格納される。なお、PCRの個数は、16個に限定されるわけではなく、それより多くても少なくても良い。実施の形態では、TCGの仕様で決められている個数以上の数を備えるものとする。
以降、ルート鍵1(121)をK10、ルート鍵2(221)をK20として説明する。
鍵群1(130)は、3つの鍵(K11、K12、K13)から構成されている。K11は、K10の子供の鍵としてツリー構造化され、K11はK10により暗号化される。K12及びK13は、共にK11の子供の鍵としてツリー構造化され、K12及びK13はK11で暗号化される。
鍵群2(230)は、3つの鍵(K21、K22、K23)から構成されている。K21は、K20の子供の鍵としてツリー構造化され、K21はK20により暗号化される。K22及びK23は、共にK21の子供の鍵としてツリー構造化され、K22及びK23はK31で暗号化される。
共有鍵群330は、4つの鍵(K31、K32、K33、K34)から構成されている。K31は、K10の子供の鍵としてツリー構造化され、K31はK10により暗号化される。したがって、K31は、共有鍵制御部1(110)から耐タンパーモジュール1(110)経由でのみ利用される鍵となる。なぜなら、K31は、K10で暗号化されているため、K31の鍵値を利用する場合は、K10を用いてK31を復号しなければならないからである。
一方、K32は、K20の子供の鍵としてツリー構造化され、K32はK20により暗号化される。したがって、K32は、共有鍵制御部2(210)から耐タンパーモジュール2(210)経由でのみ利用される鍵となる。なぜなら、K32は、K20で暗号化されているため、K32の鍵値を利用する場合は、K20を用いてK32を復号しなければならないからである。
続いて、K33及びK34について説明する。K33は、K31及びK32の子供の鍵としてツリー構造化され、K34は、K31及びK32の子供の鍵としてツリー構造化されている。
K33及びK34は、共有鍵制御部1(110)から耐タンパーモジュール1(110)経由で暗復号化処理や署名生成・検証処理に利用され、さらに共有鍵制御部2(210)から耐タンパーモジュール2(220)経由でも暗復号化処理や署名生成・検証処理に利用される共有鍵である。そのため、K33及びK34は、上述したように耐タンパーモジュール1(110)、及び、耐タンパーモジュール2(210)の両モジュールから利用可能な鍵である。
このようにするために、K31及びK32は、同じ鍵値とする。親鍵が子供の鍵を暗号化する方式をとったツリー構造としているため、K31及びK32が同じ鍵値であれば、ルート鍵がK10とK20のように異なっていても、K33及びK34は復号できる。
K31及びK32を同じ鍵値に設定する方法については、TCGにおけるマイグレート機能を利用する。具体的なフローについては図11及び図12を用いて後述するので、ここでの説明は省略する。
また、暗号化データ1(140)は、暗号化データD12とD13とから構成されている。D12は、K12で暗号化されたデータであり、D13は、K13で暗号化されたデータである。なお、暗号化データ1(140)の暗号化データは、これに限定されることなく、K12及びK13のそれぞれを署名鍵として用い、署名されたデータであってもよい。また、K12で、暗号化されたデータが複数あってもよいし、K13で、暗号化されたデータが複数あってもよい。
また、暗号化データ2(240)は、暗号化データD22とD23とから構成されている。D22は、K22で暗号化されたデータであり、D23は、K23で暗号化されたデータである。なお、暗号化データ2(240)の暗号化データは、これに限定されることなく、K22及びK23をそれぞれ署名鍵として用い、署名されたデータであってもよい。また、K22で、暗号化されたデータが複数あってもよいし、K23で、暗号化されたデータが複数あってもよい。
また、暗号化共有データ340は、暗号化共有データD33とD34とから構成されている。D33は、K33で暗号化されたデータであり、D34は、K34で暗号化されたデータである。なお、暗号化共有データ340の暗号化データは、これに限定されることなく、K33及びK34をそれぞれ署名鍵として用い、署名されたデータであってもよい。また、K33で、暗号化されたデータが複数あってもよいし、K34で、暗号化されたデータが複数あってもよい。
なお、鍵群1(130)、鍵群2(230)、及び共有鍵群330の鍵の個数と、暗号化データ1(140)、暗号化データ2(240)、及び暗号化共有データ340のデータの個数は、図4で示しているものに限定されない。また、K10、K20をルートする鍵ツリー構造は、2分木で構成しているが、3分木、N分木(Nは整数)であってもよい。
<図5:鍵属性情報>
ルート鍵1(121)、ルート鍵2(221)、鍵群1(130)、鍵群2(230)、共有鍵群330のそれぞれの鍵値は、鍵属性情報の1要素として鍵値を持つ。
例えば、ルート鍵1(121)であるK10の鍵値は、鍵属性情報410内に記録されている。ルート鍵2(221)であるK20の鍵値は、鍵属性情報420内に記録されている。鍵群1(130)の鍵であるK11の鍵値は、鍵属性情報411内に記録されている。鍵群2(230)の鍵であるK21の鍵値は、鍵属性情報421内に記録されている。共有鍵群(330)の鍵であるK31の鍵値は、鍵属性情報431内に記録されている。そのほかの鍵値も同様に記録されているので、説明を省略する。
ここで、鍵属性情報は、鍵の値と共に、鍵の属性を示す情報も同じデータ構造として記録されている。
図5は、鍵属性情報の構成を示した図である。鍵属性情報434は、マイグレート許可フラグ501と、共有許可フラグ502と、鍵のアルゴリズムを識別するための情報である暗号アルゴリズムと鍵値のサイズを示した503と、鍵値504とを備える。
マイグレート許可フラグ501は、鍵のマイグレートが許可されているかどうかを示すフラグ情報であり、「0」であればマイグレート不可、「1」であればマイグレート許可を示す。
共有許可フラグ502は、共有鍵として利用可能かどうかを示すフラグ情報であり、「0」であれば共有不可、「1」であれば共有許可を示す。
鍵属性情報410は、さらに、鍵が、複数のステークホルダーから共有鍵としてアクセス可能な場合に、そのステークホルダーの情報を格納するステークホルダーフィールド505を有する。複数のステークホルダーからアクセス可能な鍵であれば、ステークホルダーフィールド505は、アクセスされるステークホルダーの数だけ列挙される。
図5に示した鍵属性情報434は、ステークホルダー識別子1からnまでのステークホルダーフィールド505が設定されている。
図4では、K34は、ステークホルダー1とステークホルダー2とからアクセス可能な例であるので、ステークホルダーフィールド505は、2つ存在することになる。
ステークホルダーフィールド505は、ステークホルダー識別子506と、鍵の利用制限を示す鍵利用制限情報507と、リンク情報508とを含む。
鍵利用制限情報507は、鍵を利用する際に耐タンパーモジュールの備えるPCR(123、223)に記録されていることが期待されるPCR値である。鍵利用制限情報507は、耐タンパーモジュールの備えるPCR(123、223)に記録されている実際の値と比較され、実際のPCR値と期待されるPCR値とが等しい場合にのみ、鍵が利用できるように制限するための情報である。
リンク情報508は、個々の鍵に対する親鍵を識別するためのリンク情報、もしくは、個々の鍵に対する子供の鍵を識別するためのリンク情報である。
<図6:リンク情報>
ここで、図6を用いてリンク情報508の構造について説明する。
図6(a)のリンク情報508は、個々の鍵に対する親鍵を識別するための情報である。複数の親鍵が存在するのであれば、図に示すようにリンク情報508には、複数の親鍵へのポインタ(601,602,603)が格納される。
図6(b)のリンク情報508は、個々の鍵に対する子供の鍵を識別するための情報である。複数の子供の鍵が存在するのであれば、図に示すようにリンク情報508には、複数の子供の鍵へのポインタ(611,612,613)が格納される。
<図7:鍵属性情報の例>
図7は、鍵のツリー構成と鍵属性情報の関係の例を表した図である。図7では、図4に図示している一部の鍵について抜粋して説明する。
ルート鍵1(K10)の鍵属性情報410は、マイグレート不許可であり、共有不許可であり、暗号アルゴリズムがRSAアルゴリズムで鍵長が2048ビットであることを示している。また、鍵値504のフィールドには、K10の公開鍵の鍵値と、K10の秘密鍵の鍵値とが設定されている。
そして、K10はステークホルダー1に対してアクセスを許可させるため、ステークホルダーフィールド505には、ステークホルダー識別子506として、ステークホルダー1の識別子「SH1」、鍵利用制限情報507に期待されるPCRの情報としてPCR_10が示されている。さらに、リンク情報508には、図6(a)の親鍵へのリンク情報が設定される。K10はルート鍵なので、親鍵は存在しないので、リンク情報508には「NULL」と設定される。さらに、K10は、親鍵が存在しないので、K10の鍵値504のフィールドには、平文の鍵値が設定される。
鍵群1(130)の鍵K11の鍵属性情報411は、マイグレート許可であり、共有許可であり、暗号アルゴリズムがRSAアルゴリズムで、鍵長が2048ビットであることを示している。また、鍵値504のフィールドには、K11の公開鍵の鍵値と、K10の公開鍵で暗号化されたK11の秘密鍵の鍵値とが設定される。そしてK11はステークホルダー1に対してアクセスを許可させるため、ステークホルダーフィールド505には、ステークホルダー識別子506として、ステークホルダー1の識別子「SH1」が設定される。さらに、リンク情報508には、図6(a)で説明した親鍵へのリンク情報が記載されている。K11の親鍵はK10であるので、リンク情報508には「K10へのポインタ情報」が設定される。具体的に、このポインタ情報は、K10へ鍵属性情報410を参照できる情報であれば、アドレスでもよいし、識別IDでもよい。鍵利用制限情報507に期待されるPCRの情報として「NULL」として設定される。この「NULL」は、K11を利用する際のPCRの制限はない鍵であることを示している。
共有鍵群(330)のK33の鍵属性情報433は、マイグレート許可であり、共有許可であり、暗号アルゴリズムがAESアルゴリズムで鍵長が256ビットであることを示している。また、鍵値504のフィールドには、K31もしくはK32の公開鍵で暗号化されたK33鍵値が設定される。そしてK33はステークホルダー1とステークホルダー2との間で共有できる共有鍵であるため、ステークホルダーフィールド505には、ステークホルダー識別子506として、ステークホルダー1の識別子「SH1」と「SH2」とが設定される。また、鍵利用制限情報507には、期待されるPCRの情報として「SH1」からの利用制限に使うPCR_33_1と「SH1」からの利用制限に使うPCR_33_2とが記載されている。そして、リンク情報508には、図6(a)で説明した親鍵へのリンク情報が記載されている。K33は共有鍵であり、親鍵はK31とK32であるので、リンク情報508には「K31へのポインタ情報」と「K32へのポインタ情報」が設定される。
他の鍵(K20、K31、K32、K34)についても同様なので、説明を省略する。
なお、実施の形態1では、暗号化アルゴリズムをRSA、または、AESとしているが、暗号アルゴリズムはこれに限定されない。公開鍵暗号系であれば、RSAでなく楕円曲線暗号でもよい、また、共通鍵暗号系ではAES以外のアルゴリズムでもよい。鍵長も本実施の形態1の例に限定はされない。また、親子関係で親鍵が公開鍵暗号系のアルゴリズムであれば、その鍵は、親鍵の公開鍵で暗号化される。また親鍵が共通鍵暗号系のアルゴリズムであれば、その鍵は、親鍵で暗号化される。また、子供鍵の公開鍵暗号系アルゴリズムの鍵であれば秘密鍵が暗号化対象となり、共通鍵暗号系であれば、その暗号鍵が暗号化対象となる。
なお、鍵属性情報434は、鍵値505を含む構成としているが、鍵値505と、それ以外の属性情報は別のデータとして構成するようにしてもよい。
<図8:鍵管理テーブル>
次に、鍵管理テーブルについて説明する。
鍵管理テーブル1(113)は、共有鍵制御部1(110)が利用するテーブルである。鍵管理テーブル1(113)は、鍵ID811と鍵属性情報アドレス812とから構成される。鍵ID811は、各鍵を識別するための識別子である。鍵属性情報アドレス812は、各鍵ID811に対応する鍵属性情報が格納されているアドレス値が設定される。この2つの情報を利用することで、共有鍵制御部1(113)は、所望の鍵にアクセスする。
鍵管理テーブル2(213)は、共有鍵制御部2(210)が利用するテーブルである。鍵管理テーブル2(213)は、鍵ID821と鍵属性情報アドレス822とから構成される。鍵ID821は、各鍵を識別するための識別子である。鍵属性情報アドレス822は、各鍵ID821に対応する鍵属性情報が格納されているアドレス値が設定される。この2つの情報を利用することで、共有鍵制御部2(213)は、所望の鍵にアクセスする。
ここで、共有鍵として設定されている鍵K33及びK34は、鍵管理テーブル1(113)と鍵管理テーブル2(213)との両テーブルに登録されている。
<図9:ステークホルダー証明書>
次に、図9を用いて、ステークホルダー証明書について説明する。ステークホルダー証明書1(150)、及び、ステークホルダー証明書2(250)は、すべて同じフォーマットであるとする。具体的には、X.509形式のフォーマットを利用する。
ステークホルダー証明書(TPM証明書)は、X.509のバージョンを示す証明書バージョン901、発行者によって一意な値を割り振られたシリアルナンバー902、証明書の署名検証に用いる署名アルゴリズムを示す署名アルゴリズム情報903、発行者情報904、証明書の有効期間905、証明書を受ける対象を示したサブジェクト906、鍵値や公開鍵アルゴリズムを示す公開鍵情報907、TPMバージョン908、トラストモデル識別情報909、依存ステークホルダー証明書識別情報910、拡張領域911、及び、これらのデータに対する署名データ912から構成される。
拡張領域911には、CRLやISO90000などの製造プロセスや、EALなどのコモンクライテリアといったセキュリティ関連情報を記載してもよいし、機能制御の条件と機能制御の内容が記載されてもよい。
本実施の形態では、トラストモデル識別情報909と依存ステークホルダー証明書識別情報910とを用いてトラストモデルを定義している。以下、これらの構成について詳細に説明する。
なお、本実施の形態では、X.509形式のフォーマットとしているが、これ以外のフォーマットであってもよい。例えば、MTM仕様で規定されているRIM証明書のフォーマットを利用してもよい。RIM証明書を利用することで、MTMの証明書検証用のコマンドを利用して、証明書検証を行うことが可能となる。RIM証明書については、非特許文献4に詳細に記載されているので、ここでの説明を省略する。
<図10:ステークホルダー間の依存関係>
トラストモデル情報識別情報909は、3つのトラストモデルであるIndependent Model、Interdependent Model、及び、Dependent Modelを識別するため情報が記載される。
依存ステークホルダー証明書識別情報910は、トラストモデルにおける信頼関係のあるステークホルダー証明書へのポインタ情報を格納する。
図10(a)は、Independent Modelの具体例である。この例では、Independent Modelを示すトラストモデル識別情報を「001」としている。ステークホルダー1とステークホルダー2との間で依存関係がないモデルであるので、CERT001とCERT002の依存ステークホルダーモデル識別情報910には「NULL」と設定されている。
図10(b)は、Interdependent Modelの具体例である。この例は、ステークホルダー2がステークホルダー1に対して信頼の依存関係があるモデルである。そのため、CERT002の依存ステークホルダー識別情報910には、信頼の依存先ステークホルダーである「CERT001」と設定されている。
図10(c)は、Dependent Modelの具体例である。この例は、ステークホルダー2がステークホルダー1に対して信頼の依存関係があるモデルである。そのため、CERT002の依存ステークホルダー識別情報910には、信頼の依存先ステークホルダーである「CERT001」と設定されている。
<図11、12:共有鍵設定フロー>
図11及び図12は、共有鍵制御部1(110)で管理している鍵群1(130)の鍵について、共有鍵制御部2(210)から共有鍵としての利用要求があった場合のフローである。
図4の鍵構成を例にフローの概要を説明すると、耐タンパーモジュール1(120)は、K31を耐タンパーモジュール2(220)にマイグレートし、耐タンパーモジュール2(220)は、マイグレートされたK31をK32として管理し、K31の子供鍵であるK33とK34とを、ステークホルダー1とステークホルダー2の共有鍵として設定する。
ここでは、図11及び図12を用いて、共有鍵の設定フローの詳細を説明する。
まず、共有鍵制御部2(210)は、共有鍵制御部1(110)に対して、共有鍵設定要求データとして、ステークホルダー2を識別するIDと、ルート鍵2であるK20の公開鍵を送付する(ステップS1101)。ここで、共有鍵制御部2(210)から直接共有鍵制御部1(110)に対してデータを送信しているが、第2のステークホルダープログラムから第1のステークホルダープログラムに対してS1101の要求を出すようにし、第1のステークホルダープログラムは、共有鍵制御部1(110)に対して処理要求を出し、第2のステークホルダープログラムは、共有鍵制御部2(210)に対して処理要求を出すようにしてもよい。
次に、共有鍵制御部1(110)は、ステークホルダー証明書格納部50から、S1101で受信したIDに対応するステークホルダー証明書をリードする(ステップS1103)。図4の例では、ステークホルダー証明書2(250)をリードする。
次に、共有鍵制御部1(110)は、耐タンパーモジュール1(120)を利用してステークホルダー証明書の検証を行う(ステップS1103)。S1103の検証の結果、ステークホルダー証明書が正当でないと判断されたら、共有鍵制御部1(110)は、エラー処理へと処理を移す(S1130)。S1103の検証の結果、証明書が正当であれば、ステップS1104に処理を移す。
次に、ステークホルダー間の依存関係を、S1103で検証したステークホルダー証明書を用いてチェックする。ステークホルダー証明書のトラストモデル識別情報をチェックし、InterdependentもしくはDependent modelであることを確認する。
そして、InterdependentもしくはDependent modelであることが確認できたら、ステークホルダー証明書格納部50から、依存ステークホルダー識別子が参照しているステークホルダー証明書を参照し、依存先のステークホルダー証明書が正当であるかどうかを確認する(ステップS1104)。
この結果、正当であると判断されれば、S1106へ処理を移す。そうでない場合、すなわち、トラストモデルがIndependentモデルである、もしくは依存先のステークホルダー証明書が正当でないと判断されれば、エラー処理へと処理を移る(ステップS1130)。
図4の例では、ステークホルダー2とステークホルダー1とが依存関係であるかどうかを、ステークホルダー証明書1(150)と、ステークホルダー証明書2(250)tpを用いて検証する。
次に、共有鍵制御部1(110)は、鍵群1(130)の中にマイグレート可能で且つ共有許可な鍵が存在するかどうか探索する(ステップS1105)。図4の例では、K10,K11,K12,K13,K31,K33,K34の中から探索する。
もし、そのような鍵が存在しなければ、新たにマイグレート可能で且つ共有許可な鍵を生成する(ステップS1106)。鍵の生成処理は、耐タンパーモジュール1(120)で行う。
そして、共有鍵制御部1(110)は、生成した鍵を鍵群1(130)の鍵として鍵管理テーブル1(113)に登録する(ステップS1107)。
次に、S1105の探索により見つけたマイグレート可能で共有許可な鍵の中で、子供鍵を有するものがあるかどうかチェックする(ステップS1108)。もし、そのような鍵がなければ、ステップS1106へ処理を移し、マイグレート可能で共有許可な鍵の子供の鍵を生成する。図4の例では、K31が子供鍵を有し、且つ、マイグレート可能で共有許可な鍵として選択される。
次に、S1107で子供鍵を有するマイグレート可能で共有許可な鍵として選択された鍵のロード処理を行う(ステップS1109)。ここでのロード処理とは、親鍵で子供の鍵が暗号化されているので、ロード要求のあった鍵を、ルート鍵であるK10からリーフ方向へ辿り、親子関係を元に復号処理することである。図4の例では、K31をロードする。
次に、共有鍵制御部1(110)は、S1109でロードした鍵を耐タンパーモジュール1(120)から耐タンパーモジュール2(220)にマイグレートするために、耐タンパーモジュール1(120)に対してマイグレート処理依頼を行う(ステップS1110)。以降、マイグレートされる鍵をマイグレート鍵と呼ぶことにする。図4の例では、K31がマイグレート鍵であって、K33とK34が共有鍵として設定される。
次に、マイグレート処理依頼を受けた耐タンパーモジュール1(120)は、マイグレート鍵をS1101で受信した公開鍵で暗号化し、共有鍵制御部1(110)に返す(ステップS1111)。図4の例では、K31をK20の公開鍵で暗号化する。
次に、共有鍵制御部1(110)は、暗号化マイグレート鍵を共有鍵制御部2(210)へ送信する(ステップS1112)。なお、ここでは、共有鍵制御部1(110)及び共有鍵制御部2(210)間で直接データの送受信を行うことができるものとして説明しているが、直接でなく、別の第三者の制御部を経由して行うようにしてもよい。
次に、共有鍵制御部2(210)は、耐タンパーモジュール2(220)に対して、鍵のマイグレート処理の完了依頼を行う(ステップS1113)。
次に、耐タンパーモジュール2(220)は、暗号化マイグレート鍵を、ルート鍵2(221)の秘密鍵で復号する(ステップS1114)。図4の例では、K20の秘密鍵で、暗号化K31を復号する。
次に、耐タンパーモジュール2(220)は、平文になったマイグレート鍵の鍵属性情報のステークホルダーフィールド505のステークホルダー識別子506と鍵利用制限情報507とを、ステークホルダー2における鍵利用制限情報に設定する(ステップS1115)。
また、S1115にて、リンク情報508が、図6(a)の親鍵へのリンク情報であれば、ステークホルダーフィールド505のリンク情報508を、マイグレート先の親鍵に設定し、リンク情報508が、図6(b)の子供鍵へのリンク情報であれば変更しない。
図7の例では、K31及びK32の鍵属性情報は、ステークホルダーフィールド505のステークホルダー識別子506と鍵利用制限情報507とリンク情報508とが異なり、他は同じ値として設定される。このように設定することで、K31がステークホルダー1の環境からのみ利用可能であり、ステークホルダー2の環境からのみ利用可能となる。
次に、耐タンパーモジュール2(220)は、ステップS1115で設定された鍵を、共有鍵群(330)の指定の位置に設定する(S1116)。図4の例では、K32を、K20の子供として設定している。そのため、K32の秘密鍵は、K20の公開鍵で暗号化される。
次に、耐タンパーモジュール2(220)から共有鍵制御部2(210)を経由し、共有鍵制御部1(110)に対して、ステークホルダー2の鍵利用制限情報が送信される(ステップS1117)。
次に、共有鍵制御部2(110)は、共有鍵として設定される鍵(マイグレート鍵の子供の鍵)の鍵属性情報に、ステークホルダー2の鍵利用制限情報を設定する(ステップS1118)。
図7の例では、K33及びK34の鍵利用制限情報のステークホルダーフィールド505にステークホルダー2の情報が追加される。この処理により、ステークホルダーフィールド505には、「SH1」と「SH2」との2つのステークホルダーフィールドが設定され、それぞれの鍵利用制限情報としてステークホルダー1の鍵利用制限情報(PCR)とステークホルダー2の鍵利用制限情報(PCR)とが設定される。このように設定することで、K33及びK34は、ステークホルダー1の環境とステークホルダー2の環境とから共用利用が可能な鍵となる。
次に、共有鍵制御部1(110)は、鍵管理テーブル1(113)内にあるS1118で設定した鍵IDと鍵属性情報アドレスとを、共有鍵制御部2(210)に送信する(ステップS1119)。図4の例では、K33とK34の鍵IDと鍵属性情報を送る。
次に、共有鍵制御部2(210)は、S1119で受信した鍵IDと鍵属性情報アドレスとを、鍵管理テーブル2(212)に登録する。
以上で、共有鍵K33及びK34が、共有鍵制御部1(110)及び共有鍵制御部2(210)から利用可能な状態となる。
以上で、図11のフローの説明を終了する。
以上説明したように、本実施の態様によると、共有鍵制御部2(210)から共有鍵制御部1(110)に、鍵群1(130)に含まれる鍵を共有したい旨の通知を受けると、共有鍵制御部2(210)に対応するステークホルダー2が共有鍵制御部1(110)に対応するステークホルダー1に依存する関係である場合、鍵群1(130)に含まれる鍵の中から鍵群2(230)にマイグレート可能な所定の鍵K31を鍵群2(230)の中にマイグレートする。
即ち、ステークホルダー2がステークホルダー1に依存する関係であることを条件に、所定の鍵K31を親鍵とするツリー構造に含まれる鍵群の全体をコピーするのではなく、所定の鍵K31のみをコピーし、耐タンパーモジュール1(210)及び耐タンパーモジュール2(220)で所定の鍵K31を親鍵とするツリー構造に含まれる鍵群を共有鍵群330とすることで、所定の鍵K31を親鍵とするツリー構造に含まれる鍵群の全体を二重持ちする非効率を回避できる。
また、共有鍵制御部2(210)側で、鍵群2(230)に含まれる鍵を用いて所定の鍵K31を暗号化して鍵群2(230)の中に保持し、鍵群1(130)に含まれる所定の鍵K31より下層の鍵、例えば、K33、K34を共用することにより、所定の鍵K31をマイグレートするだけで、共有鍵制御部2(210)側では、共有鍵制御部1(110)に対応する耐タンパーモジュール1(210)が管理する鍵群1(130)に含まれる所定の鍵K31より下層の鍵、例えば、K33、K34を共用できる。この結果、共有鍵制御部2(210)は、共有鍵群330あるいは暗号化データ格納部40で保持された暗号化共有データ(340)を簡易な構成で利用できる。
さらに、共有鍵制御部2(210)は、ステークホルター2がステークホルダー1に依存する関係にある場合にのみ、暗号化データ格納部(40)で保持された暗号化共有データ(340)を利用できる。この結果、前記所定のデータを管理する鍵構成を耐タンパーモジュール1及び耐タンパーモジュール2(220)で簡易にしつつ、共有鍵群330あるいは暗号化共有データ340の機密性を保証できる。
また、共有鍵制御部1(110)は、共有鍵制御部2(210)に対応するステークホルダー2が、少なくとものステークホルダー1に対応する耐タンパーモジュール1(120)を利用するステークホルダーモデルであるとステークホルダー証明書(150、250)に基づいて判断した場合に、ステークホルダー2がステークホルダー1に依存する関係であると判断する。これにより、ステークホルダー2のステークホルダー1に対する依存関係を確実に判断できるので、前記所定のデータを管理する鍵構成を耐タンパーモジュール1(120)及び耐タンパーモジュール2(220)で簡易にしつつ、不正なステークホルダーからの共有鍵群330あるいは、暗号化共有データ340へのアクセスを確実に禁止できる。
また、鍵のマイグレート処理をする際に、鍵群1(130)からマイグレート可能か否かを示す属性情報を参照して、鍵群1(130)に含まれる鍵の中から鍵群2(230)にマイグレート可能な所定の鍵、例えばK31を探すことにより、鍵属性情報を参照するだけでマイグレート可能な鍵を探せるので、マイグレート可能な鍵を簡易にサーチできる。
また、共有鍵制御部1(110)は、鍵群1(130)に含まれる鍵の中から鍵群2(230)にマイグレート可能な鍵が存在しない場合、マイグレート可能な鍵を生成して、この生成した鍵を鍵群2(230)の中にマイグレートする。この結果、鍵群1(130)に含まれる鍵の中から鍵群2(230)にマイグレート可能な所定の鍵が存在しない場合であっても、共有鍵制御部2(210)は鍵群1(130)に含まれる鍵を共用できるので、共有鍵制御部1(110)は鍵群1(130)に含まれる暗号鍵を用いて暗号化された暗号化データ1(140)を暗号化共有データ340として暗号化データ格納部で保持し、暗号化共有データ340にアクセスできる。
また、鍵群1(130)に含まれる所定の鍵より下層の鍵の位置を示す位置情報を所定の鍵のリンク情報として生成してマイグレートすることにより、共有鍵制御部2(210)では、所定の鍵のリンク情報508を参照すれば、前記所定の鍵より下層の鍵の位置を確認できるので、前記所定の鍵より下層の鍵を前記耐タンパーモジュール2(220)の管理する鍵としてコピーすることなく、耐タンパーモジュール1(120)との間で所定の鍵より下層の鍵を共用できる。その結果、耐タンパーモジュール1(120)及び耐タンパーモジュール2(220)とで前記所定の鍵を親鍵とするツリー構造に含まれる鍵群の全体を二重持ちする非効率を回避できる。例えば、K33とK34を共有鍵とする際に、K31のリンク情報508を含んだ情報をマイグレートすることで可能となる。例えば、図6(b)のリンク情報508を利用することで実現可能である。
また、鍵群1(130)に含まれる所定の鍵の位置情報及び鍵群2(230)に含まれる所定の鍵の位置情報を、鍵群1(130)に含まれる前記所定の鍵より下層の鍵のリンク情報508として生成することにより、その下層の鍵のリンク情報508を参照すればその下層の鍵を暗号化した親鍵の所在を認識できるので、前記耐タンパーモジュール1(120)及び耐タンパーモジュール2(220)とで鍵群1(130)に含まれる所定の鍵より下層の鍵を共用する場合であっても、鍵群1(130)に含まれる所定の鍵より下層の鍵がどの鍵で暗号化されているかを容易に識別できる。例えば、図6(a)のリンク情報508を利用することで実現可能である。
<図13:共有鍵利用フロー>
図13は、図12で設定した共有鍵を利用する際のフローであり、第2のステークホルダープログラム(200)が、共有鍵制御部2(210)を介して、共有鍵K33あるいはK34を利用する場合のフローである。
まず、第2のステークホルダープログラム200は、共有鍵制御部2(210)に対して共有鍵による暗号化要求を、共有鍵のIDと共に送信する(ステップS1300)。
次に、共有鍵制御部2(210)は、S1300で受信したIDをもとに、鍵管理テーブル2(213)から、共有鍵を選択する(ステップS1301)。
次に、共有鍵制御部2は、耐タンパーモジュール2(220)に、暗号化対象データと、共有鍵の鍵属性情報とを送信する(ステップS1302)。
次に、耐タンパーモジュール2(220)は、鍵属性情報内の利用制限情報であるPCRの情報と、PCRに記録されている実際の値とを比較し、両者が等しいかどうかチェックする(ステップS1303)。
もし、チェックの結果、両者の値が等しいと判断されれば、S1304へ処理を移す。そうでなく、両者の値が等しくないと判断されれば、共有鍵制御部2(210)にエラーを返す。エラーを受信した共有鍵制御部2(210)は、図示しないエラー処理へ処理を移す。
次に、耐タンパーモジュール2(220)は、共有データを共有鍵で暗号化し、暗号化データを共有鍵制御部2(210)へ返す(ステップS1304、S1305)。
次に、共有鍵制御部2(210)は、共有鍵により暗号化された暗号化データを、暗号化データ格納部に書き込む(ステップS1306)。
最後に、書き込み完了したことを、共有鍵制御部2(210)を通して第2のステークホルダープログラム200に通知する。
以上で、図13のフローの説明を終了する。
なお、実施の形態1では鍵利用制限情報をPCRの情報としているが、鍵利用制限情報は、これに限定されない。例えば、TPMが有するセキュアなカウンターの値や、生体認証との照合情報などの、各種認証情報であってもよい。また、それら認証情報の組合せたもので鍵の利用を制限させてもよい。
例えば、カウンターの値とPCRとを組み合わせて、両者の一致した場合のみ共有鍵を利用できるようにしてもよい。また、鍵利用制限情報を、利用許可フラグとし、鍵利用制限情報が「1」だったら利用可とし、鍵利用制限情報が「0」だったら利用不可とするようにしてもよい。
<図14:共有鍵の無効化の概要フロー>
図14は、共有鍵の無効化の概要フローである。ステークホルダー1及びステークホルダー2間で共有されている鍵を、どちらかのステークホルダー環境がリボーク対象であるか、もしくは、ステークホルダー環境に改竄があると判定された場合、リボーク対象もしくは改竄されたステークホルダー側から、共有鍵を利用させないようにするためのフローである。
まず、共有鍵制御部が端末内のステークホルダー環境がリボーク対象、もしくは、端末内のステークホルダー環境が改竄されたことを判定する(ステップS1401)。リボーク対象の判断は、リボケーションリストにリボーク対象のIDが列挙されているので、そのIDを元に判断可能である。また改竄チェックについても、ステークホルダープログラムのハッシュ値を含んだ証明書を情報処理端末に持たせ、静的もしくは動的にプログラムに改竄チェックを行い、改竄があったかどうかを判断することが可能となる。
次に、共有鍵制御部は、リボーク対象もしくは改竄されたと判定されたステークホルダーが、他のステークホルダーと共有している共有鍵が、存在するかどうかを確認する(ステップS1402)。もし、存在するなら、ステップS1403へ処理を移す。そうでなく、存在しないのなら、無効化する共有鍵が存在しないので、無効化処理は終了となる。
次に、共有鍵制御部が、リボーク対象もしくは改竄されたと判定されたステークホルダー環境から、共有鍵を利用できないように無効化設定する(ステップS1403)。以降、無効化処理について、例を用いて詳細に説明する
<図15:共有鍵の無効化の詳細フロー>
図15は、共有鍵の無効化の詳細フローであり、図14のS1403を詳細化したフローである。
まず、リボーク対象もしくは改竄されたと判定されたステークホルダーが他のステークホルダーと共有している共有鍵を判断する(ステップS1501)、この判断処理は、鍵属性情報のステークホルダーフィールド505を参照することで可能となる。
次に、S1501により共有鍵と判断された鍵の親鍵にアクセスし、その鍵で暗号化共有鍵を復号する(ステップS1502)。
次に、共有鍵制御部は、乱数生成機能を利用し、親鍵の鍵属性情報の鍵値を乱数で更新する(ステップS1503)。なお、鍵値を乱数で更新するとしているが、これに限定されない。当初の鍵値と異なる値で上書きすれば乱数以外の値でもよい。
次に、更新した親鍵で、共有鍵を暗号化する(ステップS1504)。
図16は、図15の無効化フローの実施前(無効化前)と実施後(無効化後)の状態を示した例である。
図16(a)は、無効化前を示したものである。この例では、共有鍵K33とK34とが、ステークホルダー1及びステークホルダー2間で共有されている。
図16(b)は、ステークホルダー2の環境がリボーク対象もしくは改竄ありと判断された場合に、ステークホルダー2の環境から、K33及びK34を利用できないように無効化した後の例である。
K31の鍵値を、乱数で書換えて、書換え後の鍵をK35としている。このようにすると、共有鍵K33及びK34は、K35で暗号化され、K35はK10で暗号化されることになる。そのため、ステークホルダー2側からは、K35を復号することができない。その結果、K33及びK34も復号することもできない。したがって、K33及びK34で暗号化されたデータを、不正なステークホルダー環境による不正利用から保護することが可能となる。
以上で実施の形態1の説明を終わる。
以上のように、第2のステークホルダープログラム環境(第2のステークホルダープログラム200、共有鍵制御部2(210)、耐タンパーモジュール2(220))が外部から攻撃されたことを検知した場合、耐タンパーモジュール1(120)は所定の鍵と置換える代替鍵を生成して前記所定の鍵を親鍵とするツリー構造に含まれる鍵を前記代替鍵で再暗号化すると共に前記所定の鍵の親鍵を用いて前記代替鍵を暗号化する。この結果、共有鍵制御部2(210)は前記所定の鍵を用いて前記代替鍵を親鍵とするツリー構造に含まれる鍵を復号化できないので、前記代替鍵を親鍵とするツリー構造に含まれる鍵で暗号化された所定のデータを利用できず、前記所定データを不正な利用から保護できる。例えば、この場合、所定の鍵がK31であり、代替鍵がK35となる。
なお、実施の形態1では、共有鍵制御部1(110)と共有鍵制御部2(210)とは、それぞれ別の制御部として構成しているが、共有鍵制御部1(110)と共有鍵制御部2(210)と両機能を1つの制御部として実現してもよい。
これにより、共有鍵制御部1(110)と共有鍵制御部2(210)とは、共用の共有鍵制御部で構成が可能となり、1つの共有鍵制御部で2つのステークホルダー間の共有鍵を統括的に制御することが可能なので、より柔軟にアクセス制御を行うことが可能となる。
なお、実施の形態1では、共有鍵の設定と、共有鍵設定後の不正なステークホルダーによる共有鍵の不正利用を防ぐための共有鍵の無効化について説明しているが、無効化後の鍵に対して、再度共有鍵として設定するようにしてもよい。
例えば、不正ステークホルダーが、ステークホルダー管理サーバーを利用して更新処理したことにより、正規のステークホルダー環境になった場合、無効化されていた共有鍵を、再度共有鍵として設定してもよい。
より具体的には、ステークホルダー1とステークホルダー2との間で共用できる共有鍵があり、ステークホルダー2が不正と判断されると、ステークホルダー2からその共有鍵が利用できないように無効化される。
その後、不正なステークホルダー2の環境が、第2のステークホルダー管理サーバーから更新モジュールをダウンロードし、不正なステークホルダー2の環境を更新し、更新の結果、正規ステークホルダー環境となれば、無効化されていた共有鍵をステークホルダー2から再度利用できるように復活させる。
再度共有鍵として設定する処理は、実施の形態1で説明した共有鍵の設定処理を、更新されたステークホルダー2に対して行うことで実現できるので説明は省略する。
(実施の形態2)
実施の形態2では、実施の形態1とは異なる方法で、共有鍵の無効化をする例である。実施の形態1と同じ構成やフローである部分について説明を省略し、実施の形態2に特有の処理について図面を用いて説明する。
<図17:無効化詳細フロー>
図17は、共有鍵の無効化の詳細フローであり、図14のS1403を詳細化したフローである。また、図18は、図17の無効化フローの実施前(無効化前)と実施後(無効化後)とを示したものでる。以降、図17及び図18を用いて説明する。
ステップS1701とステップS1702とは、実施の形態1のS1501とS1502と同じであるので説明を省略する。
次に、S1702における共有鍵群(330)以外から、共有鍵の親鍵とは異なるマイグレート可能で共有許可である鍵をツリー内から選択する。もし、そのような鍵が存在しなければ、新たに鍵を生成する。(ステップS1703)。
後述するように、本実施の形態では、選択した鍵を共有鍵の新たな親鍵とすることで、ステークホルダー2から共有鍵を利用できないようにする。この目的を達成するためのみならば、マイグレートの可否や共有許可の有無とは関係なく共有鍵の親鍵と異なる鍵を選べばよい。しかし、ここでは、さらにマイグレートが可能であり、共有許可である鍵を選択している。
なぜ、このような鍵を選択するかについて、次の2つのケースを用いて説明する。
まず1つ目のケースは、不正なステークホルダー環境と判断されたことにより共有鍵が無効化された不正なステークホルダーが、更新処理により、正規のステークホルダー環境になった場合、再度共有鍵を利用できるように復活させるケースである。再度共有鍵を利用できるようにするには、共有鍵の親鍵をマイグレートする必要があるため、その場合に備えてマイグレートが可であり共有許可のある鍵を新たな親鍵としておく必要がある。
2つ目のケースは、3つ以上のステークホルダーで共有されている共有鍵があるケースである。例えば、ステークホルダー1,2,3で共有されている共有鍵に対し、ステークホルダー2に対してのみ無効化する場合、ステークホルダー1とステークホルダー3との間では、共有鍵を共有したままの設定にする必要がある。共有鍵の親鍵を変更すると、ステークホルダー3も共有鍵を利用することができなくなってしまう。そのため、共有鍵がステークホルダー3と共有されたままの状態を維持するために、共有鍵の親鍵の変更後、ステークホルダー1から3へ、共有鍵の親鍵をマイグレートする処理が必要となる。ステークホルダー1から3へ共有鍵の親鍵がマイグレートされれば、両ステークホルダーで共有鍵の利用が可能となる。
次に、S1703で選択された鍵を、共有鍵の親鍵として設定するので、S1703で選択された鍵と共有鍵とが親子関係になるように鍵属性情報のリンク情報508を更新する(ステップS1704)。
次に、S1703で選択された鍵で、共有鍵を暗号化する(ステップS1705)。
最後に、鍵管理テーブルを更新する(ステップS1706)。
図18は、図17の無効化フローの実施前(無効化前)と実施後(無効化後)との状態を示した例である。
図18(a)は、無効化前を示したものである。この例では、共有鍵K33とK34とがステークホルダー1及びステークホルダー2間で共有されている。
図18(b)は、ステークホルダー2の環境がリボーク対象もしくは改竄ありと判断された場合に、ステークホルダー2の環境からはK33とK34とを利用できないように無効化した後の例である。
K33及びK34の親鍵を、K31ではないマイグレート可能かつ共有可能なK11としている。このようにすると、K33とK34とがK11で暗号化され、K11はK10で暗号化されることになる。そのため、ステークホルダー2側からは、K11を復号することができず、その結果、K33とK34とも復号することもできない。したがって、K33とK34とで暗号化されたデータを、不正なステークホルダー環境による不正利用から保護することが可能となる。
以上で実施の形態2の説明を終わる。
以上のように、第2のステークホルダープログラム環境(第2のステークホルダープログラム200、共有鍵制御部2(210)、耐タンパーモジュール2(220))が外部から攻撃されたことを検知した場合、耐タンパーモジュール1(120)は前記所定の鍵を親鍵とするツリー構造に含まれる鍵以外の鍵を用いて所定のデータを暗号化し直す。この結果、共有鍵制御部2(210)は所定の鍵を親鍵とするツリー構造に含まれる鍵を用いては前記所定のデータを復号化できないので、所定の鍵を親鍵とするツリー構造に含まれる鍵以外の鍵で暗号化された所定のデータを利用できず、所定データを不正な利用から保護できる。例えば、この場合、所定の鍵が、K31であり、所定の鍵を親鍵とするツリー構造に含まれる鍵以外の鍵がK11として実現可能である。
なお、実施の形態2では、実施の形態1と同様、不正なステークホルダー環境が、更新などにより正当なステークホルダー環境になった場合に、共有鍵を再度共有させることも可能である。再度共有鍵として設定する処理は、実施の形態2で説明した共有鍵の設定処理を、更新されたステークホルダー2に対して行うことで実現できるので説明は省略する。
(実施の形態3)
本実施の形態3では、実施の形態1と実施の形態2とは異なる方法で、共有鍵の無効化をする例である。実施の形態1と実施の形態2と同じ構成やフローである部分について説明を省略し、実施の形態3に特有の処理について図面を用いて説明する。
<図19:無効化詳細フロー>
図19は、共有鍵の無効化の詳細フローであり、図14のS1403を詳細化したフローである。
ステップS1901とステップS1902とは、S1501とS1502と同じであるので説明を省略する。
次に、S1901によりリボーク対象もしくは改竄されたと判定されたステークホルダーが他のステークホルダーと共有していると判断された共有鍵にアクセスし、リボーク対象もしくは改竄されたステークホルダーに対応する鍵利用制限情報にアクセスする(ステップS1902)。
次に、共有鍵制御部は、乱数生成機能を利用し、S1902で選択された共有鍵に対応する鍵属性情報の鍵利用制限情報を、乱数で更新する(ステップS1503)。なお、鍵利用制限情報を乱数で更新するとしているが、これに限定されない。
本実施の形態によると、第1ステークホルダーが管理する第1のステークホルダー環境は、第2ステークホルダー環境が改竄されたもしくはリボーク対象であることを検知した場合、共有鍵制御部1(110)は共有鍵で暗号化されたデータを、共有鍵制御部2(210)から利用できないように、鍵属性情報の鍵利用制限情報508を書き換える。この結果、共有鍵制御部2(220)は共有鍵の鍵ロード処理が出来ないので、共有鍵で暗号化されたデータを不正な利用から保護できる。
なお、共有鍵の鍵利用制限情報だけを更新するとしているが、共有鍵の親鍵の鍵利用制限情報を更新してもよい。これは、共有鍵が複数に階層に渡って構成されている場合、共有鍵からルート方向に辿り共有鍵群(330)内の最上位層の鍵だけを無効化することで、それより子供の鍵は無効化対象とすることが可能となるからである。
以上のように、共有鍵制御部2(210)は、改竄のない第2のステークホルダー環境から生成された鍵利用制限情報507と第2のステークホルダープログラム(200)から実際に得られたPCR(223)に記録されている環境情報とを比較し、比較結果が正しい場合にのみ前記鍵を利用させる。
この結果、第2のステークホルダープログラム(200)が改竄され若しくはリボークされた場合には前記比較結果は不一致となって、共有鍵制御部2(210)は所定の鍵を用いて、所定の鍵を親鍵とするツリー構造に含まれる鍵を復号化できないので、前記所定の鍵を親鍵とするツリー構造に含まれる鍵用いて暗号化されている所定のデータを復号化できず、所定データを不正な利用から保護できる。
例えば、第2のステークホルダープログラム(200)が改竄されていれば、共有鍵制御部2(210)からK33のロードができないため、K33で暗号化されたデータD34の不正な利用から保護できる。
また、第1ステークホルダーが管理する第1のステークホルダー環境は、第2ステークホルダー環境が改竄されたもしくはリボーク対象であることを検知した場合、共有鍵制御部1(110)は、所定の鍵を親鍵とするツリー構造に含まれる鍵を、共有鍵制御部2(210)から利用できないように、鍵利用制限情報を書き換える。
この結果、共有鍵制御部2(210)は所定の鍵を用いては所定の鍵を親鍵とするツリー構造に含まれる鍵を復号化できないので、所定の鍵を親鍵とするツリー構造に含まれる鍵用いて暗号化されている前記所定のデータを復号化できず、前記所定データを不正な利用から保護できる。この場合、例えば、所定の鍵がK32で、所定の鍵を親鍵とするツリー構造に含まれる鍵がK33,K34であると、K32の利用制限情報を書き換える、もしくはK33,K34の鍵利用制限情報を書き換えることで実現できる。
なお、実施の形態1及び実施の形態2と同様、不正なステークホルダー環境が、更新などにより正当なステークホルダー環境になった場合に、共有鍵を再度共有させることも可能である。再度共有させる処理は、更新されたステークホルダーについての鍵利用制限情報を、更新後のステークホルダーの鍵利用制限情報(PCR値)に更新すればよい。
<図23:再共有化>
図23は、実施の形態3における不正なステークホルダー環境が、更新などにより正当なステークホルダー環境になった場合に、共有鍵を再度共有させるフローを示している。ここでは、ステークホルダー2の環境が、更新などにより正当なステークホルダー環境になり、共有が無効化されていたステークホルダー1の環境との共有鍵を、再度共有化する例で説明する。
まず、ステークホルダー1の環境は、不正と判断されていたステークホルダー2の環境が正当な環境に更新されたと判断する(ステップS2301)。この判断は、例えば、周期的に行われたり、電源が投入されたときや、ステークホルダー2の環境の更新が完了したときに行われる。
次に、ステークホルダー1の環境の、共有鍵制御部1(110)は、共有鍵群(330)内の鍵属性情報を参照し、ステークホルダーフィールド505のステークホルダー識別子506にステークホルダー2の識別子が登録されている鍵を選択する(ステップS2302)。
最後に、S2303で選択した鍵の鍵属性情報内の鍵利用制限情報を正当になったステークホルダーの環境情報に更新する(ステップS2303)。この例では、鍵属性情報内のステークホルダー2の識別子に対応する鍵利用制限情報が、更新などにより正当になった後のステークホルダー2の環境情報に更新される。
もし、ステークホルダー2と共有すべき鍵が、複数存在するのであれば、S2302とS2303とを繰り返し処理すればよい。
このようにすることで、ステークホルダー2の環境は、共有が無効化されていたステークホルダー1と共有する共有鍵を、再度共有鍵として利用可能となる。
(実施の形態4)
本実施の形態4では、実施の形態1、実施の形態2、及び実施の形態3とは異なる方法で、暗号化共有データを保護するする例である。他の実施の形態と同じ構成やフローである部分について説明を省略し、実施の形態3に特有の処理について図面を用いて説明する。
<図20:暗号化共有データの構造>
図20は、暗号化共有データの構造を示した図である。暗号化共有データは、暗号化データサイズ2001と、暗号化データ2002と、ステークホルダーフィールド2003とを備える。
ステークホルダーフィールド2003には、共有データにアクセス権のあるステークホルダーの情報が列挙される。図4に示した暗号化共有データD33及びD34は、ステークホルダー1とステークホルダー2とからアクセスされる例であるので、ステークホルダーフィールド505は、2つ存在することになる。
ステークホルダーフィールド2003は、ステークホルダー識別子2004と、鍵の利用制限を示す利用制限情報2005とを含む。
利用制限情報2005は、期待されるPCR値であり、耐タンパーモジュールの備えるPCR(123、223)に記録されている実際の値と比較され、実際のPCR値と期待されるPCR値が等しかった場合にのみ耐タンパーモジュールから復号結果が得られるように制限するための情報である。
<図21:暗号化共有データの復号フロー>
図21は、共有鍵制御部2(210)の暗号化共有データ復号処理のフローを示した図である。
まず、共有鍵制御部2(210)は、第2のステークホルダープログラム(200)から暗号化共有データの復号要求を受け、暗号化データ格納部40から復号対象となる暗号化共有データ340をリードする(ステップS2101)。
次に、共有鍵制御部2(210)は、鍵管理テーブル2(213)から、共有鍵を選択する(ステップS2102)。
次に、共有鍵制御部2(210)は、S2102で選択した共有鍵と、S2101でリードした暗号化共有データとをパラメータとし、耐タンパーモジュール2(220)に復号処理の要求をする(ステップS2103)。
次に、S2103で指定された共有鍵を鍵ツリーのルート鍵2からリーフ方向へと、親子関係を元に鍵を復号していき、平文の共有鍵を得て、暗号化共有データを復号する(ステップS2104)。
次に、耐タンパーモジュール2(220)は、復号要求のあった暗号化共有データの利用制限情報として設定されている期待PCR値と、実際のPCR(223)に記録されている値とを比較する(ステップS2105)。比較の結果、両者が等しければ、復号データを共有鍵制御部2(210)へ返す(ステップS2106)。比較の結果、両者が等しくないと判定されれば、復号データは、共有鍵制御部2(210)へ返されず、エラー通知のみを返す。
<図22:無効化>
図22は、暗号化共有データの復号処理を無効化するための詳細フローであり、実施の形態4における図14のS1403を詳細化したフローである。
まず、リボーク対象もしくは改竄されたと判定されたステークホルダーが、他のステークホルダーと共有している共有データを判断する(ステップS2201)。この判断処理は、暗号化共有データのデータ構造のステークホルダーフィールド2003を参照することで可能となる。
次に、S2201で判断された暗号化共有データの利用制限情報にアクセスする(ステップS2202)。
次に、共有鍵制御部は、乱数生成機能を利用し、S2202でアクセスされた利用制限情報を、乱数で更新する(ステップS1503)。なお、利用制限情報を乱数で更新するとしているが、これに限定されない。
このようにすると、リボーク対象もしくは改竄のある不正なステークホルダー環境から暗号化共有データの復号要求があったとしても、S2105の比較結果は不一致となって、暗号化共有データの復号データを得ることができず、暗号化共有データの不正利用から保護できる。
以上説明したように、共有鍵制御部2(220)は、改竄のない第2のステークホルダー環境から生成された暗号化データ利用制限情報と第2のステークホルダー環境から実際に得られた耐タンパーモジュール2(220)内のPCR(223)に記録されている環境情報とを比較し、比較結果が正しい場合にのみ暗号化データを復号させる。
この結果、第2ステークホルダー環境が改竄され若しくはリボークされた場合には前記比較結果は不一致となって、共有鍵制御部2(210)は所定の鍵を用いて、所定の鍵を親鍵とするツリー構造に含まれる鍵を用いて暗号化されている暗号化データを復号化できず、暗号化データを不正な利用から保護できる。
例えば、第2のステークホルダープログラム(200)が改竄されていれば、耐タンパーモジュール2(220)から、K33で暗号化されたD33の復号データを得ようとしても、復号結果が得られないので、D34の不正な利用から保護できる。
また、前記第1ステークホルダーが管理する第1のステークホルダー環境は、第2ステークホルダー環境が改竄されたもしくはリボーク対象であることを検知した場合、共有鍵制御部1(110)は、所定の鍵を親鍵とするツリー構造に含まれる鍵で暗号化された暗号化データを、共有鍵制御部2(210)から利用できないように、暗号化データ利用制限情報2005を書き換える。
この結果、共有鍵制御部2(210)は所定の鍵を用いて所定の鍵を親鍵とするツリー構造に含まれる鍵を用いた復号処理ができないので、前記所定データを不正な利用から保護できる
なお、実施の形態1から実施の形態4は、組み合わせて実現されてもよい。
また、実施の形態1から実施の形態4は、耐タンパーモジュール(150,250)を、TPMあるいはMTMを用いて実現する形態としている。そのためTCGで規定されるTrusted Bootでもよいし、TCG Mobile仕様で規定されるSecure Bootでもよい。また、実行されるプログラムの完全性を検証できる仕組みであればよい。
これにより、前記第1共有鍵制御部はセキュアブートする際に、前記第2共有鍵制御部が外部から攻撃されたことを検知することにより、前記第2共有鍵制御部の外部からの攻撃を判断できる。
また、ステークホルダー環境の改竄チェックは、TCGで規定されているAttestation機能を利用してもよい。Attestation機能のサーバー側の判定結果を情報処理端末10に送付し、ステークホルダーの改竄を検知してもよいし、上述したようにサーバーから配信されるリボケーションリスト14を利用してもよい。
これにより、共有鍵制御部1(110)は、外部のサーバーから、共有鍵制御部2(210)の改竄の検知、もしくはリボーク対象である旨の通知を受けることにより、不正な共有鍵制御部2(210)から共有鍵や暗号化共有データの不正利用を防止することができる。
なお、不正なステークホルダー環境が、更新などにより正当なステークホルダー環境になった場合に、暗号化共有データを再度共有させることも可能である。再度共有させる処理は、暗号化共有データの、更新されたステークホルダーについての鍵利用制限情報を、更新後のステークホルダーの鍵利用制限情報(PCR値)に更新すればよい。
なお、実施の形態4における共有鍵の再共有化のフローは、図23における処理のS2202とS2203で参照する情報が、図5の鍵属性情報でなく、図20の共有鍵暗号化データになり、更新する情報が、鍵利用制限情報508でなく、鍵利用制限情報2005になるだけなので、説明を省略する。
なお、実施の形態1から実施の形態4では、共有鍵の再共有化の処理を、不正と判断されていたステークホルダー以外のステークホルダー環境が、再共有化処理のトリガーとなっているが、不正なステークホルダー自身が、更新後、自ら自身が正当であることを検証してから、共有先であるステークホルダーに対して再度共有化の依頼を行うようにしてもよい。
(その他変形例)
なお、本発明を上記実施の形態に基づいて説明してきたが、本発明は、上記の実施の形態に限定されないのはもちろんである。以下のような場合も本発明に含まれる。
(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)上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよい。
本発明は、例えばセキュアなデータを扱う情報処理装置を製造及び販売する産業において、複数のステークホルダー間において依存関係を持たせた証明書を用いて、依存関係に従った形で鍵を共有し、複数のステークホルダー間で、セキュアな共有データを効率的に暗号化する仕組みとして利用することができる。また、本発明は、不正なステークホルダーから共有鍵へのアクセスを制限させる仕組みとして利用することができる。
10 情報処理端末
11 第1のステークホルダー管理サーバー
12 認証PCRデータベース
13 証明書データベース
14 リボケーションリスト
15 ネットワーク
16 第2のステークホルダー管理サーバー
21、22、31、32、41,42 ステークホルダー
23、24、33、34、43 TPM
100、200 ステークホルダープグラム
110、210 共有鍵制御部
111、211 マルチステークホルダー判定部
112、212 共有許可設定部
113、213 鍵管理テーブル
120、220 耐タンパーモジュール
121、221 ルート鍵
30 鍵格納部
40 暗号化データ格納部
50 証明書格納部
130 鍵群1
230 鍵群2
330 共有鍵群
140、240 暗号化データ
340 暗号化共有データ
150、250 ステークホルダー証明書
122、221 セキュアメモリ
410、411、412、413、420、421、422、423、431、432、434 鍵属性情報
123、223 PCR
501 マイグレート許可フラグ
502 共有許可フラグ
503 暗号アルゴリズム・鍵サイズ
504 鍵値
505、2003 ステークホルダーフィールド
506、2004 ステークホルダー識別子
507、2005 鍵利用制限情報
508、2006 リンク情報
601、602、603、611、612、613 鍵ポインタ
811、821 鍵ID
812、822 鍵属性情報アドレス
901 証明書バージョン
902 シリアルナンバー
903 署名アルゴリズム
904 発行者情報
905 有効期間
906 サブジェクト
907 公開鍵情報
908 TPMバージョン
909 トラストモデル識別情報
910 依存ステークホルダー証明書識別情報
911 拡張領域
912 署名データ
2001 暗号化データサイズ
2002 暗号化データ
本発明は、複数のステークホルダーを備える装置において、ツリー構造で管理される鍵を、複数のステークホルダー間で共有して利用できる共有鍵の制御を行う情報処理装置、暗号鍵の管理方法、コンピュータプログラム及び集積回路に関するものである。
近年、情報セキュリティへの意識の高まりと共に、データを保護する技術ニーズが高まってきている。
これを背景として、セキュアなコンピュータプラットフォームを開発、普及させることを目的として、Trusted Computing Group(TCG)が設立された。TCGでは、Trusted Platform Module(TPM)と呼ばれるセキュリティコアモジュールを利用し、安全な端末環境を実現している(非特許文献1〜3参照)。TCGの基本機能として、特徴的な機能が3つある。
まず1つ目の特徴機能として、端末起動時からOSやアプリケーションが起動するまでの各モジュールのインテグリティ情報を計測し、計測した値を、それより前のモジュールのインテグリティ情報を連鎖させる累積処理(TCGのTPM_Extendコマンドに相当する処理)をし、その累積値をTPM内のPlatform Configration Registers(PCR)と呼ばれるレジスタに格納するTrusted Boot機能がある。
2つ目の特徴機能として、PCRに蓄積した値を端末環境情報として、外部のサーバーに通知し、外部のサーバーで、端末環境情報が期待される環境情報であるかどうかを検証するというAttestation機能がある。これらの機能を利用し、リモートで端末の環境の正当性を検証可能であることが、TCG技術のメリットの1つである。
そして、3つ目の特徴機能として、Protected Storage機能というストレージデータに対する保護機能がある。この機能は、TPM内のセキュアなメモリ領域に、TPM内部で生成した暗号鍵であるStorage Root Key(SRK)を保持する。そして、SRKをルート鍵とし、保護対象となる複数の暗号鍵をルート鍵で暗号化してTPM外のメモリ上で安全に保護する機能である。
具体的には、暗復号処理や署名処理に利用する鍵を保護するために、SRKをルート鍵とした階層的なツリー構造のノードに、それら保護対象の鍵を対応づけ、親のノード鍵が子供のノード鍵を暗号化する方法である。ルート鍵であるSRKがTPM内のセキュアメモリ上で保持されているため、ルート鍵以外の暗号化された鍵は、TPM外のメモリ上で管理しても安全となる。また、これらの鍵をバックアップする目的として、マイグレート機能も有する。マイグレート機能は、他のTPMのSRKの下に、鍵をコピーする機能である。
また、TCGは、TPM搭載端末として、携帯電話機もターゲットとしており、携帯電話機向けのTPMの仕様も規格化されている(非特許文献3、4)。携帯電話機向けのTPMは、Mobile Trusted Module(MTM)と呼ばれている。MTMは、TPMの機能を実現しながらも、一部のコマンドを携帯電話機向けに修正したり、新規コマンドが追加されている。その追加機能として、セキュアブート機能と、マルチステークホルダーモデルを定義している。
セキュアブートとは、携帯電話機の端末起動時から、OSやアプリケーションが起動するまでの各モジュールのインテグリティ情報を計測し、計測した値が期待される値であるかを、ローカル端末内で検証しながらブートする方式である。
また、マルチステークホルダーモデルとは、デバイスメーカー、キャリア、アプリケーションサービス提供者、ユーザーといった携帯電話機端末内に存在する複数のステークホルダーが所有する権利物を安全に利用するための実装モデルを定義したものである。各ステークホルダーの権利物として、例えば、デバイスメーカーであれば、International Mobile Equipment Identity(IMEI)であり、キャリアであれば、Subscriber Identification Module(SIM)関連情報であり、アプリケーションサービス提供者であれば、サービス提供されたデータであり、ユーザーであれば、アドレス帳が挙げられる。
要するに、マルチステークホルダーモデルとは、それぞれのステークホルダーが利用するMTMを、個別に割り当てることでそれぞれの権利物を安全に利用するモデルである。仮想化技術を用いることで、1つの端末内に、複数のMTMを仮想的に実現することが可能となる。
特許文献1は、暗号鍵をツリー構造に構造化し、暗号鍵更新時に管理する方法が開示されている。
特開平11−187013
TPM Main,Part1 Design Principles,Specification version 1.2 Level2 Revision103(9 July 2007) TPM Main,Part2 TPM Structures,Specification verion1.2 Level2 Revision103(9 July 2007) TPM Main Part3 Commands,Specification verion 1.2 Level2 Revision103(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)
上述したマルチステークホルダーモデルにおいて、各ステークホルダーが、各々SRKをルートとした鍵ツリーを保持する。そのため、一つの端末内に、その鍵のツリーが、ステークホルダーの個数だけ存在することになる。
ここで、ステークホルダーAが、ステークホルダーBが管理しているデータや機能を利用することが想定される。特に、ステークホルダーAが、ステークホルダーBのTPMで管理されているSRKをルートするツリーのノード鍵で暗号化されているデータに対してアクセスしたい場合、ステークホルダーAは、ステークホルダーBに対して、ステークホルダーBのSRKを用いたデータの復号処理を要求しなければならない。そして、ステークホルダーBは、ステークホルダーBのSRKを利用して復号処理後、復号データをステークホルダーAに送信する。
このように、異なるステークホルダー間で共有したいデータがあった場合、その共有データのアクセス要求のたびに、鍵を管理しているステークホルダーが復号処理をして、安全に復号データを渡すといったオーバーヘッド処理が必要になる。
これらのオーバーヘッド処理を回避するために、異なるステークホルダー間でアクセスされるセキュアな共有データに対しては、異なるステークホルダー間で共有な鍵で暗号化することが必要となる。言い換えると、異なるステークホルダー間で共有な鍵を保持させるような仕組みが必要となる。
現状のTCG仕様で、ステークホルダーAとBの2者間で鍵を共有させる場合、すなわち、ステークホルダーBの鍵を、ステークホルダーAでも利用できるようにするには、TCGのマイグレート機能を利用する。マイグレート元をステークホルダーBとし、マイグレート先をステークホルダーAとし、ステークホルダーBの鍵をステークホルダーAへマイグレートする。その結果、ステークホルダーBからマイグレートされた鍵をステークホルダーAが管理する鍵ツリーのノードとして構成することが可能となる。
これにより、共有鍵を保持しているステークホルダーAとBの間では、マイグレートされた鍵が、共有鍵となり、その共有鍵で暗号化したデータに対して、ステークホルダーを跨ることなく、直接アクセス可能となる。
しかしながら、マイグレート機能を利用した場合、マイグレート対象となった鍵の実体は、ステークホルダーAとBの各々で保持しているため、1つの端末に、共有鍵が2重持ちされることになり、非効率であるという課題があった。特に、共有鍵を複数設定する場合、2重持ちされる鍵が複数存在することになる。
また、特許文献1は、暗号鍵をツリー構造で管理し、子供のノードが親のノードを暗号化する構成であり、リーフからルートに至る経路の鍵群をユーザー鍵としてユーザーに配布し、ユーザーが脱退した際の鍵ツリーの更新方法を開示している。
しかしながら、ルート鍵は全てのユーザーで共有しているため、一人のユーザーが脱退する度に、更新後のルート鍵を全ユーザーに再配布しなければならないため、管理が複雑になってしまうという課題があった。
そこで、本発明は、これらの課題を解決するもので、マルチステークホルダーモデルにおいて、ステークホルダー毎に異なるSRKをルート鍵とする鍵ツリー間のノードの一部を共有鍵をとして設定する情報処理装置、暗号鍵の管理方法、コンピュータプログラム及び集積回路と、共有鍵を共有しているステークホルダーに不正があった場合に、不正なステークホルダーからの共有鍵へのアクセスを、より柔軟に無効化する情報処理装置、暗号鍵の管理方法、コンピュータプログラム及び集積回路を提供することを目的とする。
上記の課題を解決するために、本発明に係る情報処理装置は、第1のステークホルダーに対応する第1共有鍵制御部と、第2のステークホルダーに対応する第2共有鍵制御部と、前記第1のステークホルダーに対応し、複数の暗号鍵を含む第1の暗号鍵群をツリー構造で管理する第1の耐タンパーモジュールと、前記第1の暗号鍵群に含まれる暗号鍵を用いて暗号化された所定のデータを保持するデータ保持部と、前記第2のステークホルダーに対応し、複数の暗号鍵を含む第2の暗号鍵群をツリー構造で管理する第2の耐タンパーモジュールと、を具備し、前記第2共有鍵制御部から前記第1共有鍵制御部に前記第1の暗号鍵群に含まれる鍵を共有したい旨の通知を受けると、前記第1共有鍵制御部は、前記第2共有鍵制御部に対応する第2のステークホルダーが前記第1共有鍵制御部に対応する第1のステークホルダーに依存する関係であるか否かを判断し、前記第2共有鍵制御部に対応する第2のステークホルダーが前記第1共有鍵制御部に対応する第1のステークホルダーに依存する関係である場合、前記第1の暗号鍵群に含まれる鍵の中から前記第2の暗号鍵群にコピー可能な所定の鍵を探して、この所定の鍵を前記第2の暗号鍵群の中にコピーし、前記第2共有鍵制御部は、前記第2の暗号鍵に含まれる鍵を用いて前記所定の鍵を暗号化して前記第2の暗号鍵群の中に保持することで、前記第1の暗号鍵群に含まれる前記所定の鍵より下層の鍵を共用することを特徴とする。
本発明によると、前記第2共有鍵制御部から前記第1共有鍵制御部に前記第1の暗号鍵群に含まれる鍵を共有したい旨の通知を受けると、前記第2共有鍵制御部に対応する第2のステークホルダーが前記第1共有鍵制御部に対応する第1のステークホルダーに依存する関係である場合、前記第1の暗号鍵群に含まれる鍵の中から前記第2の暗号鍵群にコピー可能な所定の鍵を前記第2の暗号鍵群の中にコピーすることにより、前記第2のステークホルダーが前記第1のステークホルダーに依存する関係であることを条件に、前記所定の鍵を親鍵とするツリー構造に含まれる鍵群の全体をコピーするのではなく、前記所定の鍵のみをコピーする。これにより、前記第1の耐タンパーモジュール及び前記第2の耐タンパーモジュールとで前記所定の鍵を親鍵とするツリー構造に含まれる鍵群の全体を二重持ちする非効率を回避できる。
また、前記第2共有鍵制御部側で、前記第2の暗号鍵に含まれる鍵を用いて前記所定の鍵を暗号化して前記第2の暗号鍵群の中に保持し、前記第1の暗号鍵群に含まれる前記所定の鍵より下層の鍵を共用することにより、前記所定の鍵をコピーするだけで、前記第2共有鍵制御部側では、第1共有鍵制御部に対応する第1の耐タンパーモジュールが管理する第1の暗号鍵群に含まれる前記所定の鍵より下層の鍵を共用できる。これにより、前記第2共有鍵制御部は、前記データ保持部で保持された暗号化された所定のデータを簡易な構成で利用できる。
本発明の実施の形態1におけるシステム概要を示す図である。 本発明の実施の形態1におけるマルチステークホルダーを示す図である。 本発明の実施の形態1における情報処理端末の構成を示す図である。 本発明の実施の形態1における耐タンパーモジュールが有する鍵ツリーの構成を示す図である。 本発明の実施の形態1における鍵属性情報を示す図である。 本発明の実施の形態1における鍵のリンク情報示した図である。 本発明の実施の形態1における鍵属性情報の例を示した図である。 本発明の実施の形態1における鍵管理テーブルを示した図である。 本発明の実施の形態1におけるステークホルダー証明書の構成を示した図である。 本発明の実施の形態1におけるステークホルダー証明書を用いてトラストモデルを表現した例を示した図である。 本発明の実施の形態1における共有鍵の設定のシーケンス図である。 本発明の実施の形態1における共有鍵の設定のシーケンス図である。 本発明の実施の形態1における共有鍵を利用シーケンス図である。 本発明の実施の形態1における共有鍵の無効化概要フローチャートを示す図である。 本発明の実施の形態1における共有鍵の無効化詳細フローチャートを示す図である。 本発明の実施の形態1における共有鍵の無効化前後における鍵ツリーの構成を示す図である。 本発明の実施の形態2における共有鍵の無効化詳細フローチャートを示す図である。 本発明の実施の形態2における共有鍵の無効化前後における鍵ツリーの構成を示す図である。 本発明の実施の形態3における共有鍵の無効化詳細フローチャートを示す図である。 本発明の実施の形態4における暗号化共有データ構造を示す図である。 本発明の実施の形態4における暗号化共有データ構造を利用した暗号化共有データの復号処理のシーケンス図である。 本発明の実施の形態4における共有鍵の無効化詳細フローチャートを示す図である。 本発明の実施の形態3における共有鍵の再共有化のフローチャートを示す図である。
本発明の請求項1に記載の情報処理装置は、第1のステークホルダーに対応する第1共有鍵制御部と、第2のステークホルダーに対応する第2共有鍵制御部と、前記第1のステークホルダーに対応し、複数の暗号鍵を含む第1の暗号鍵群をツリー構造で管理する第1の耐タンパーモジュールと、前記第1の暗号鍵群に含まれる暗号鍵を用いて暗号化された所定のデータを保持するデータ保持部と、前記第2のステークホルダーに対応し、複数の暗号鍵を含む第2の暗号鍵群をツリー構造で管理する第2の耐タンパーモジュールと、を具備し、前記第2共有鍵制御部から前記第1共有鍵制御部に前記第1の暗号鍵群に含まれる鍵を共有したい旨の通知を受けると、前記第1共有鍵制御部が、前記第2共有鍵制御部に対応する第2のステークホルダーが前記第1共有鍵制御部に対応する第1のステークホルダーに依存する関係であるか否かを判断し、前記第2共有鍵制御部に対応する第2のステークホルダーが前記第1共有鍵制御部に対応する第1のステークホルダーに依存する関係である場合、前記第1の暗号鍵群に含まれる鍵の中から前記第2の暗号鍵群にコピー可能な所定の鍵を探して、この所定の鍵を前記第2の暗号鍵群の中にコピーし、前記第2共有鍵制御部は、前記第2の暗号鍵に含まれる鍵を用いて前記所定の鍵を暗号化して前記第2の暗号鍵群の中に保持することで、前記第1の暗号鍵群に含まれる前記所定の鍵より下層の鍵を共用することを特徴とする。
本態様により、前記第2共有鍵制御部から前記第1共有鍵制御部に前記第1の暗号鍵群に含まれる鍵を共有したい旨の通知を受けると、前記第2共有鍵制御部に対応する第2のステークホルダーが前記第1共有鍵制御部に対応する第1のステークホルダーに依存する関係である場合、前記第1の暗号鍵群に含まれる鍵の中から前記第2の暗号鍵群にコピー可能な所定の鍵を前記第2の暗号鍵群の中にコピーすることにより、前記第2のステークホルダーが前記第1のステークホルダーに依存する関係であることを条件に、前記所定の鍵を親鍵とするツリー構造に含まれる鍵群の全体をコピーするのではなく、前記所定の鍵のみをコピーする。これにより、前記第1の耐タンパーモジュール及び前記第2の耐タンパーモジュールとで前記所定の鍵を親鍵とするツリー構造に含まれる鍵群の全体を二重持ちする非効率を回避できる。
また、前記第2共有鍵制御部側で、前記第2の暗号鍵に含まれる鍵を用いて前記所定の鍵を暗号化して前記第2の暗号鍵群の中に保持し、前記第1の暗号鍵群に含まれる前記所定の鍵より下層の鍵を共用することにより、前記所定の鍵をコピーするだけで、前記第2共有鍵制御部側では、第1共有鍵制御部に対応する第1の耐タンパーモジュールが管理する第1の暗号鍵群に含まれる前記所定の鍵より下層の鍵を共用できる。これにより、前記第2共有鍵制御部は、前記データ保持部で保持された暗号化された所定のデータを簡易な構成で利用できる。
さらに、前記第2共有鍵制御部は、前記第2のステークホルターが第1のステークホルダーに依存する関係にある場合にのみ、前記データ保持部内に保持された暗号化された所定のデータを利用できる。これにより、前記所定のデータを管理する鍵構成を前記第1の耐タンパーモジュール及び前記第2の耐タンパーモジュールで簡易にしつつ、前記所定のデータの機密性を保証できる。
本発明の請求項2に記載の情報処理装置は、前記第2共有鍵制御部が、前記第1共有鍵制御部との間の依存関係を証明した証明書を有し、前記第1共有鍵制御部に前記第1の暗号鍵群に含まれる鍵を共有したい旨の通知を送付する際、前記証明書を送付し、前記第1共有鍵制御部が、前記証明書に基づいて、前記第2共有鍵制御部に対応する第2のステークホルダーが、少なくとも前記第1のステークホルダーに対応する第1の耐タンパーモジュールを利用するステークホルダーモデルであると判断した場合に、前記第2共有鍵制御部に対応する第2のステークホルダーが前記第1共有鍵制御部に対応する第1のステークホルダーに依存する関係であると判断するものである。
本態様によると、前記第1共有鍵制御部は、前記第2共有鍵制御部に対応する第2のステークホルダーが、少なくとも前記第1のステークホルダーに対応する第1の耐タンパーモジュールを利用するステークホルダーモデルであると証明書に基づいて判断した場合に、前記第2のステークホルダーが前記第1のステークホルダーに依存する関係であると判断する。これにより、前記第2のステークホルダーの前記第1のステークホルダーに対する依存関係を確実に判断できるので、前記所定のデータを管理する鍵構成を前記第1の耐タンパーモジュール及び前記第1の耐タンパーモジュールで簡易にしつつ、不正なステークホルダーからの前記所定のデータへのアクセスを確実に禁止できる。
本発明の請求項3に記載の情報処理装置は、前記第1の暗号鍵群に含まれる各鍵が、当該鍵が前記第1の暗号鍵群からコピー可能か否かを示す属性情報を有し、前記第1共有鍵制御部は、前記属性情報を参照して、前記第1の暗号鍵群に含まれる鍵の中から前記第2の暗号鍵群にコピー可能な所定の鍵を探すことを特徴としている。
本態様によると、当該鍵が前記第1の暗号鍵群からコピー可能か否かを示す属性情報を参照して、前記第1の暗号鍵群に含まれる鍵の中から前記第2の暗号鍵群にコピー可能な所定の鍵を探す。これにより、前記属性情報を参照するだけでコピー可能な鍵を探せるので、コピー可能な鍵を簡易にサーチできる。
本発明の請求項4に記載の情報処理装置は、前記第1共有鍵制御部が、前記第1の暗号鍵群に含まれる鍵の中から前記第2の暗号鍵群にコピー可能な所定の鍵が存在しない場合、コピー可能な鍵を生成して、この生成した鍵を前記第2の暗号鍵群の中にコピーすることを特徴としている。
本態様によると、前記第1共有鍵制御部は、前記第1の暗号鍵群に含まれる鍵の中から前記第2の暗号鍵群にコピー可能な所定の鍵が存在しない場合、コピー可能な鍵を生成して、この生成した鍵を前記第2の暗号鍵群の中にコピーする。これにより、前記第1の暗号鍵群に含まれる鍵の中から前記第2の暗号鍵群にコピー可能な所定の鍵が存在しない場合であっても、前記第2共有鍵制御部は前記第1の暗号鍵群に含まれる鍵を共用できるので、前記第2共有鍵制御部は前記第1の暗号鍵群に含まれる暗号鍵を用いて暗号化された所定のデータを保持するデータ保持部にアクセスできる。
本発明の請求項5に記載の情報処理装置は、前記第1共有鍵制御部が、前記第1の暗号鍵群に含まれる前記所定の鍵より下層の鍵の位置を示す位置情報を前記所定の鍵のリンク情報として生成し、このリンク情報と共に前記所定の鍵を前記第2の暗号鍵群の中にコピーすることを特徴とする請求項3記載の情報処理装置。
本態様によると、前記第1の暗号鍵群に含まれる前記所定の鍵より下層の鍵の位置を示す位置情報を前記所定の鍵のリンク情報として生成してコピーすることにより、第2共有鍵制御部では、前記所定の鍵のリンク情報を参照すれば、前記所定の鍵より下層の鍵の位置を確認できるので、前記所定の鍵より下層の鍵を前記第2の耐タンパーモジュールにコピーすることなく、前記第1の耐タンパーモジュールとの間で前記所定の鍵より下層の鍵を共用できる。その結果、前記第1の耐タンパーモジュール及び前記第1の耐タンパーモジュールとで前記所定の鍵を親鍵とするツリー構造に含まれる鍵群の全体を二重持ちする非効率を回避できる。
本発明の請求項6に記載の情報処理装置は、前記第1共有鍵制御部が、前記第1の暗号鍵群に含まれる所定の鍵の位置情報及び前記第2の暗号鍵群に含まれる所定の鍵の位置情報を、前記第1の暗号鍵群に含まれる前記所定の鍵より下層の鍵のリンク情報として生成することを特徴としている。
本態様により、前記第1の暗号鍵群に含まれる所定の鍵の位置情報及び前記第2の暗号鍵群に含まれる所定の鍵の位置情報を、前記第1の暗号鍵群に含まれる前記所定の鍵より下層の鍵のリンク情報として生成することにより、前記下層の鍵のリンク情報を参照すれば前記下層の鍵を暗号化した親鍵の所在を認識できる。この結果、前記第1の耐タンパーモジュール及び前記第1の耐タンパーモジュールとで前記第1の暗号鍵群に含まれる前記所定の鍵より下層の鍵を共用する場合であっても、前記第1の暗号鍵群に含まれる前記所定の鍵より下層の鍵がどの鍵で暗号化されているかを容易に識別できる。
本発明の請求項7に記載の情報処理装置は、前記第1共有鍵制御部と前第2共有鍵制御部とは、共用の共有鍵制御部であることを特徴としている。
本態様により、前記第1共有鍵制御部と前第2共有鍵制御部とは、共用の共有鍵制御部で構成が可能となり、1つの共有鍵制御部にて、2つのステークホルダー間の共有鍵を統括的に制御することが可能なので、より柔軟にアクセス制御を行うことが可能となる。
また、同じ共有鍵を保持している場合、自身以外の共有先のステークホルダーの脆弱性が原因で、共有していた鍵が暴露される危険性がある。そのため、その自身以外の共有先のステークホルダーが、不正と判断(リボーク対象もしくは、改竄されていると検知)された場合には、そのステークホルダーから、共有鍵で暗号化されているデータを利用不可にするためのアクセス制御が必要となる。
本発明の請求項8に記載の情報処理装置は、前記第1のステークホルダーが管理する第1ステークホルダー環境が、前記第2のステークホルダーが管理する第2のステークホルダー環境が改竄された、もしくはリボーク対象であることを検知した場合、前記第1共有鍵制御部は、前記所定の鍵と置換える代替鍵を前記第1の耐タンパーモジュールに生成させ、前記所定の鍵を親鍵とするツリー構造に含まれる鍵を前記代替鍵で再暗号化させると共に前記前記所定の鍵の親鍵を用いて前記代替鍵を暗号化させて、前記第2共有鍵制御部による前記所定のデータの利用を排除することを特徴としている。
本態様によると、前記第1のステークホルダーが管理する第1ステークホルダー環境が、前記第2のステークホルダーが管理する第2のステークホルダー環境が改竄された、もしくはリボーク対象であることを検知した場合、前記第1の耐タンパーモジュールは前記所定の鍵と置換える代替鍵を生成して前記所定の鍵を親鍵とするツリー構造に含まれる鍵を前記代替鍵で再暗号化すると共に前記所定の鍵の親鍵を用いて前記代替鍵を暗号化する。この結果、前記第2共有鍵制御部は前記所定の鍵を用いて前記代替鍵を親鍵とするツリー構造に含まれる鍵を復号化できないので、前記代替鍵を親鍵とするツリー構造に含まれる鍵で暗号化された所定のデータを利用できず、前記所定データを不正な利用から保護できる。
本発明の請求項9に記載の情報処理装置は、前記第1のステークホルダーが管理する第1ステークホルダー環境が、前記第2のステークホルダーが管理する第2のステークホルダー環境が改竄された、もしくはリボーク対象であることを検知した場合、前記第1共有鍵制御部は、前記所定の鍵を親鍵とするツリー構造に含まれる鍵以外の鍵を用いて前記第1の耐タンパーモジュールに前記所定のデータを暗号化し直させて、前記第2共有鍵制御部による前記所定の鍵の使用を排除することを特徴とする。
本態様によると、前記第2のステークホルダー環境が攻撃されたことを、第1のステークホルダー環境が検知した場合、前記第1の耐タンパーモジュールは前記所定の鍵を親鍵とするツリー構造に含まれる鍵以外の鍵を用いて前記所定のデータを暗号化し直す。この結果、前記第2共有鍵制御部は前記所定の鍵を親鍵とするツリー構造に含まれる鍵を用いては前記所定のデータを復号化できないので、前記所定の鍵を親鍵とするツリー構造に含まれる鍵以外の鍵で暗号化された所定のデータを利用できず、前記所定データを不正な利用から保護できる。
本発明の請求項10に記載の情報処理装置は、前記第1の暗号化鍵群に含まれる前記所定の鍵を親鍵とするツリー構造に含まれる鍵が、属性情報として、前記改竄のない第2のステークホルダーが管理する第2ステークホルダー環境のハッシュ値から生成された期待値として鍵利用制限情報を有し、第2の耐タンパーモジュールは、前記第2のステークホルダー環境のハッシュ値から生成された実際の値としての環境情報を記憶し、第2の共有鍵制御部から前記第1の共有鍵制御部に対して前記第1の暗号化鍵群に含まれる前記所定の鍵を親鍵とするツリー構造に含まれる鍵の利用を依頼するときに、第2の共有鍵制御部は、前記鍵利用制限情報と前記環境情報とを比較し、比較結果が正しい場合にのみ前記鍵を利用させるように制限をすることを特徴する。
本態様によると、第2の共有鍵制御部は、前記改竄のない第2のステークホルダー環境から生成された鍵利用制限情報と前記第2のステークホルダー環境から実際に得られた環境情報とを比較し、比較結果が正しい場合にのみ前記鍵を利用させる。この結果、前記第2ステークホルダー環境が改竄され若しくはリボークされた場合には前記比較結果は不一致となって、前記第2共有鍵制御部は前記所定の鍵を用いては前記所定の鍵を親鍵とするツリー構造に含まれる鍵を復号化できないので、前記所定の鍵を親鍵とするツリー構造に含まれる鍵用いて暗号化されている前記所定のデータを復号化できず、前記所定データを不正な利用から保護できる。
本発明の請求項11に記載の情報処理装置は、前記第1ステークホルダーが管理する第1のステークホルダー環境が、前記第2ステークホルダー環境が改竄されたもしくはリボーク対象であることを検知した場合、前記第1の共有鍵制御部は、前記所定の鍵を親鍵とするツリー構造に含まれる鍵を、第2の共有鍵制御部から利用できないように、前記鍵利用制限情報を書き換えることを特徴とする。
本態様によると、前記第1ステークホルダーが管理する第1のステークホルダー環境は、前記第2ステークホルダー環境が改竄されたもしくはリボーク対象であることを検知した場合、前記第1の共有鍵制御部は、前記所定の鍵を親鍵とするツリー構造に含まれる鍵を、第2の共有鍵制御部から利用できないように、前記鍵利用制限情報を書き換える。この結果、前記第2共有鍵制御部は前記所定の鍵を用いては前記所定の鍵を親鍵とするツリー構造に含まれる鍵を復号化できないので、前記所定の鍵を親鍵とするツリー構造に含まれる鍵用いて暗号化されている前記所定のデータを復号化できず、前記所定データを不正な利用から保護できる。
本発明の請求項12に記載の情報処理装置は、前記第1の暗号化鍵群に含まれる前記所定の鍵を親鍵とするツリー構造に含まれる鍵で暗号化された暗号化データが、属性情報として、前記改竄のない第2のステークホルダーが管理する第2ステークホルダー環境のハッシュ値から生成された期待値である暗号化データ利用制限情報を有し、第2の耐タンパーモジュールは、前記第2のステークホルダー環境のハッシュ値から生成された実際の値としての環境情報を記憶し、第2の共有鍵制御部から前記第1の共有鍵制御部に対して前記第1の暗号化鍵群に含まれる前記所定の鍵を親鍵とするツリー構造に含まれる鍵で暗号化されたデータの復号処理を依頼するときに、第2の共有鍵制御部は、前記暗号化データ利用制限情報と前記環境情報とを比較し、比較結果が正しい場合にのみ前記暗号化データの復号処理させるように制限をすることを特徴する。
本態様によると、第2の共有鍵制御部は、前記改竄のない第2のステークホルダー環境から生成された暗号化データ利用制限情報と前記第2のステークホルダー環境から実際に得られた環境情報とを比較し、比較結果が正しい場合にのみ暗号化データを復号させる。この結果、前記第2ステークホルダー環境が改竄され若しくはリボークされた場合には前記比較結果は不一致となって、前記第2共有鍵制御部は前記所定の鍵を用いては前記所定の鍵を親鍵とするツリー構造に含まれる鍵を用いて暗号化されている前記暗号化データを復号化できず、前記暗号化データを不正な利用から保護できる。
本発明の請求項13に記載の情報処理装置は、前記第1ステークホルダーが管理する第1のステークホルダー環境が、前記第2ステークホルダー環境が改竄されたもしくはリボーク対象であることを検知した場合、前記第1の共有鍵制御部は、前記所定の鍵を親鍵とするツリー構造に含まれる鍵で暗号化された暗号化データを、第2の共有鍵制御部から利用できないように、前記暗号化データ利用制限情報を書き換えることを特徴とする。
本態様によると、前記第1ステークホルダーが管理する第1のステークホルダー環境は、前記第2ステークホルダー環境が改竄されたもしくはリボーク対象であることを検知した場合、前記第1の共有鍵制御部は、前記所定の鍵を親鍵とするツリー構造に含まれる鍵で暗号化された暗号化データを、第2の共有鍵制御部から利用できないように、前記暗号化データ利用制限情報を書き換える。この結果、前記第2共有鍵制御部は前記所定の鍵を用いては前記所定の鍵を親鍵とするツリー構造に含まれる鍵を用いた復号処理ができないので、前記所定データを不正な利用から保護できる。
本発明の請求項14に記載の情報処理装置は、前記第1共有鍵制御部は第1ステークホルダー環境および第2ステークホルダー環境を環境に対して完全性をチェックしてから改竄されていない環境のみを起動する機能であるセキュアブートによってブートする際に、第2ステークホルダー環境が改竄された、もしくはリボーク対象であることを検知することを特徴とする。
本態様によると、前記第1共有鍵制御部は第1ステークホルダー環境および第2ステークホルダー環境を環境に対して完全性をチェックしてから改竄されていない環境のみを起動する機能であるセキュアブートによってブートする際に、第2ステークホルダー環境が改竄された、もしくはリボークされたことを検知することにより、前記第2共有鍵制御部の外部からの攻撃を判断できる。
本発明の請求項15に記載の情報処理装置は、前記第1共有鍵制御部が、外部のサーバーから、前記第2共有鍵制御部が改竄されたもしくはリボーク対象である旨の通知を受けることで前記第2共有鍵制御部が外部から攻撃されたことを検知することを特徴とする。
本態様によると、前記第1共有鍵制御部は、外部のサーバーから、前記第2共有鍵制御部が外部から攻撃された旨の通知を受けることにより、前記第2共有鍵制御部の外部からの攻撃を検知できる。
本発明の請求項16に記載の暗号鍵の管理方法は、第1のステークホルダーに対応する第1共有鍵制御部と、第2のステークホルダーに対応する第2共有鍵制御部と、前記第1のステークホルダーに対応し、複数の暗号鍵を含む第1の暗号鍵群をツリー構造で管理する第1の耐タンパーモジュールと、前記第1の暗号鍵群に含まれる暗号鍵を用いて暗号化された所定のデータを保持するデー保持部と、前記第2のステークホルダーに対応し、複数の暗号鍵を含む第2の暗号鍵群をツリー構造で管理する第2の耐タンパーモジュールと、を具備する情報処理装置における暗号鍵の鍵管理方法であって、前記第1共有鍵制御部において、前記第2共有鍵制御部から前記第1共有鍵制御部に前記第1の暗号鍵群に含まれる鍵を共有したい旨の通知を受けると、前記第2共有鍵制御部に対応する第2のステークホルダーが前記第1共有鍵制御部に対応する第1のステークホルダーに依存する関係であるか否かを判断し、前記第2共有鍵制御部に対応する第2のステークホルダーが前記第1共有鍵制御部に対応する第1のステークホルダーに依存する関係である場合、前記第1の暗号鍵群に含まれる鍵の中から前記第2の暗号鍵群にコピー可能な所定の鍵を探して、この所定の鍵を前記第2の暗号鍵群の中にコピーし、前記第2共有鍵制御部において、前記第2の暗号鍵に含まれる鍵を用いて前記所定の鍵を暗号化して前記第2の暗号鍵群の中に保持することで、前記第1の暗号鍵群に含まれる前記所定の鍵より下層の鍵を共用することを特徴とする。
本発明の請求項17に記載のコンピュータプログラムは、第1のステークホルダーに対応する第1共有鍵制御部と、第2のステークホルダーに対応する第2共有鍵制御部と、前記第1のステークホルダーに対応し、複数の暗号鍵を含む第1の暗号鍵群をツリー構造で管理する第1の耐タンパーモジュールと、前記第1の暗号鍵群に含まれる暗号鍵を用いて暗号化された所定のデータを保持するデー保持部と、前記第2のステークホルダーに対応し、複数の暗号鍵を含む第2の暗号鍵群をツリー構造で管理する第2の耐タンパーモジュールと、を具備する情報処理装置における暗号鍵の鍵管理に用いるコンピュータプログラムであって、コンピュータに対して、前記第1共有鍵制御部において、前記第2共有鍵制御部から前記第1共有鍵制御部に前記第1の暗号鍵群に含まれる鍵を共有したい旨の通知を受けると、前記第2共有鍵制御部に対応する第2のステークホルダーが前記第1共有鍵制御部に対応する第1のステークホルダーに依存する関係であるか否かを判断する処理と、前記第2共有鍵制御部に対応する第2のステークホルダーが前記第1共有鍵制御部に対応する第1のステークホルダーに依存する関係である場合、前記第1の暗号鍵群に含まれる鍵の中から前記第2の暗号鍵群にコピー可能な所定の鍵を探して、この所定の鍵を前記第2の暗号鍵群の中にコピーする処理と、を実行させ、前記第2共有鍵制御部において、前記第2の暗号鍵に含まれる鍵を用いて前記所定の鍵を暗号化して前記第2の暗号鍵群の中に保持することで、前記第1の暗号鍵群に含まれる前記所定の鍵より下層の鍵を共用する処理を実行させることを特徴とする。
本発明の請求項18に記載の集積回路は、第1のステークホルダーに対応する第1共有鍵制御部と、第2のステークホルダーに対応する第2共有鍵制御部と、前記第1のステークホルダーに対応し、複数の暗号鍵を含む第1の暗号鍵群をツリー構造で管理する第1の耐タンパーモジュールと、前記第1の暗号鍵群に含まれる暗号鍵を用いて暗号化された所定のデータを保持するデー保持部と、前記第2のステークホルダーに対応し、複数の暗号鍵を含む第2の暗号鍵群をツリー構造で管理する第2の耐タンパーモジュールと、を具備する情報処理装置に用いる集積回路であって、情報処理部と、この情報処理部に対して、前記第1共有鍵制御部において、前記第2共有鍵制御部から前記第1共有鍵制御部に前記第1の暗号鍵群に含まれる鍵を共有したい旨の通知を受けると、前記第2共有鍵制御部に対応する第2のステークホルダーが前記第1共有鍵制御部に対応する第1のステークホルダーに依存する関係であるか否かを判断する処理と、前記第2共有鍵制御部に対応する第2のステークホルダーが前記第1共有鍵制御部に対応する第1のステークホルダーに依存する関係である場合、前記第1の暗号鍵群に含まれる鍵の中から前記第2の暗号鍵群にコピー可能な所定の鍵を探して、この所定の鍵を前記第2の暗号鍵群の中にコピーする処理と、を実行させ、前記第2共有鍵制御部において、前記第2の暗号鍵に含まれる鍵を用いて前記所定の鍵を暗号化して前記第2の暗号鍵群の中に保持することで、前記第1の暗号鍵群に含まれる前記所定の鍵より下層の鍵を共用する処理を実行させる処理プログラムを格納したメモリと、を具備した集積回路とする。
発明の請求項19に記載の情報処理装置は、前記第1共有鍵制御部は、前記第1の暗号鍵群に含まれる暗号鍵で暗号化されている前記所定の鍵を、前記暗号鍵を用いて復号し、復号された鍵を、前記第2の暗号鍵群に含まれる暗号鍵で再暗号化し、再暗号化された鍵を、前記第2の暗号鍵群の中にコピーすることを特徴とする。
以下、本発明の実施の形態について、図面を参照しながら説明する。
(実施の形態1)
本発明の実施の形態について、説明する。以降、本実施の形態で示すTPMは、TCGのMobile Phone Working Groupで仕様化されているMobile Trusted Module(MTM)の機能を有する耐タンパーモジュールであるとして説明する。
<図1:システム概要>
まず、マルチステークホルダーについて携帯電話機を例として説明する。携帯電話機には、デバイスメーカー、キャリア、アプリケーションサービス提供者、ユーザーといった複数のステークホルダーが存在する。各ステークホルダーは、各自の権利物を所有している。
各ステークホルダーの権利物は、例えば、デバイスメーカーであれば、International Mobile Equipment Identity(IMEI)であり、キャリアであれば、Subscriber Identification Module(SIM)関連情報であり、アプリケーションサービス提供者であれば、サービス提供されたデータであり、ユーザーであれば、アドレス帳が挙げられる。
マルチステークホルダーモデルとは、それぞれのステークホルダーが利用するTPMを、個別に割り当てることでそれぞれの権利物を安全に利用するモデルである。
図1は、マルチステークホルダーモデルにおけるシステム全体を示した図である。
情報処理端末10は、MTMを搭載したモバイル端末である。実施の形態1では、以降、情報処理装置10内には、第1のステークホルダーと第2のステークホルダーとの2つのステークホルダーが存在するという例を用いて説明する。なお、ステークホルダーは前述しているように、2つ以上であってもよい。また、情報処理端末は、携帯電話機であってもよいし、PDAなどのモバイル端末、あるいは、TVやDVDやBDプレイヤーやSTBなどの据え置き型の電子機器であってもよい。
第1のステークホルダー管理サーバー11は、第1のステークホルダー環境を提供するステークホルダーが管理しているサーバーである。第1のステークホルダー管理サーバー11は、認証PCRデータベース12、証明書管理データベース13及びリボケーションリスト14を管理している。
認証PCRデータベース12は、第1のステークホルダー管理サーバー11が、情報処理端末10の正当性を検証するAttestation処理の際に利用するデータベースであり、正当な情報処理端末10の環境情報であるPCRの期待値のデータベースである。
第1のステークホルダー管理サーバー11は、Attestation時に、情報処理端末10から送信されたPCR値と、認証PCRデータベース12の記録している値を比較し、一致すれば正当な情報処理端末10と判断し、適切なサービス等を提供する。
証明書データベース13は、第1のステークホルダーから提供されるソフトウェアの証明書のデータベースである。第1のステークホルダーのモジュールの更新が必要であれば、更新すべきモジュールとともに、更新モジュールの証明書を送信する。また、更新モジュールの証明書も、証明書データベース13で管理される。
リボケーションリスト14は、リボーク対象であるステークホルダーのリストを記録しているデータベースである。リボケーションリスト14は、第1のステークホルダー管理サーバー11から情報処理端末10へ送信され、情報処理端末10内で完全性を保護した状態で管理される。
なお、リボケーションリスト14は、無効化すべきステークホルダーの情報を記載したブラックリスト方式として説明するが、有効なステークホルダーの情報を記載したホワイトリスト方式を用いてもよい。
なお、図1では、認証PCRデータベース12、証明書データベース13及びリボケーションリスト14は、第1のステークホルダー管理サーバー11が、全て管理しているが、複数の管理サーバーで管理してもよい。
第2のステークホルダー管理サーバー16は、第2のステークホルダー環境を提供するステークホルダーが管理しているサーバーである。図1で図示していないが、第2のステークホルダーも、第1のステークホルダー管理サーバー11と同様に、認証PCRデータベース12、証明書管理データベース13及びリボケーションリスト14を管理している。
<図2:マルチステークホルダーモデルにおけるトラストモデル>
図2は、マルチステークホルダーモデルにおけるトラストモデルを示した図である。
トラストモデルとして、3つのモデルが定義される。また、図2には図示していないが、各ステークホルダーは、各自のステークホルダーの権利物を管理しており、ステークホルダーの所有する権利物は、各ステークホルダーに対応づけられたTPMを利用して、安全にアクセスされる。以下、それぞれ3つのモデルについて説明する。
図2(a)は、Independent Modelを示している。このモデルは、各ステークホルダー間に信頼の依存関係はないモデルである。例えば、ステークホルダー1(21)が、TPM1(23)を利用し、ステークホルダー2(22)は、TPM2(24)を利用するモデルである。
図2(b)は、Interdependent Modelを示している。このモデルは、ステークホルダー間で、部分的に依存関係のあるモデルである。例えば、ステークホルダー1(31)は、TPM1(33)を利用し、ステークホルダー2(32)は、TPM2(34)を利用する。ここまでは、Independent Modelと同じであるが、図2(b)に示しているように、一部領域が重なっている部分が存在する。これは、ステークホルダー2(32)が、TPM2(34)以外に、TPM1(33)の機能を利用することを概念的に表している。
例えば、携帯電話機の場合、ステークホルダー2(32)が、キャリアであって、ステークホルダー1(31)がデバイスメーカーであった場合、キャリアが、デバイスメーカーの権利物であるIMEIにアクセスするといった例である。この場合、ステークホルダー2(32)は、ステークホルダー1(31)に対して、IMEIアクセス要求をすることになるため、ステークホルダー2(32)は、ステークホルダー1(31)経由でTPM1(33)を利用することになる。
図2(c)は、Dependent Modelを示している。このモデルは、ステークホルダー間で、あるステークホルダーが、別のステークホルダーに完全に依存するモデルである。これは、ステークホルダー1(41)がTPM1(43)を利用し、ステークホルダー2(42)もTPM1(43)を利用するモデルである。携帯電話機の場合、ステークホルダー2が、キャリアであって、ステークホルダー1がデバイスメーカーであった場合、デバイスメーカーの権利物であるIMEIは、TPM1(43)の機能により保護され、キャリアの権利物であるSIM情報もTPM1(43)の機能を利用して安全に保護される。
<図3:情報処理端末>
図3は、マルチステークホルダーモデルの情報処理端末10の全体構成図である。
情報処理端末10は、第1のステークホルダープログラム100、第2のステークホルダープログラム200、共有鍵制御部(111,210)、耐タンパーモジュール(120,220)、鍵格納部30、暗号化データ格納部40、及び、ステークホルダー証明書格納部50から構成される。また、図示していないが、情報処理端末10は、CPU、I/Oデバイス、RAMなどの揮発メモリ、ROMやFlashメモリなどの不揮発メモリなどのハードウェア群を保持する。
<ステークホルダープログラム>
第1のステークホルダープログラム100は、第1のステークホルダーから提供されるプログラム群であり、第1のステークホルダー管理サーバー11から配布されるものである。第1のステークホルダープログラム100は、耐タンパーモジュール120のセキュアブート機能により、正当性を検証されたプログラムのみが起動される。
第2のステークホルダープログラムは、第2のステークホルダーから提供されるプログラム群であり、第2のステークホルダー管理サーバー16から配布されるものである。第2のステークホルダープログラム200は、耐タンパーモジュール220のセキュアブート機能により、正当性を検証されたプログラムのみが起動される。
なお、セキュアブートの仕様については、非特許文献4に詳細に記載されているので説明を省略する。
<共有鍵制御部(110、210)>
共有鍵制御部1(110)は、鍵群1(130)と共有鍵群(330)との利用制御を行う部であり、マルチステークホルダーモデル判定部1(111)と、共有許可設定部1(112)と鍵管理テーブル1(113)とから構成される。
マルチステークホルダーモデル判定部1(111)は、共有鍵制御部1(110)が管理している鍵群1(113)もしくは共有鍵(330)に対して、ステークホルダー1以外のステークホルダーから共有鍵の設定の要求があった場合に、要求元のステークホルダーが、鍵を共有してよいステークホルダーであるかどうかをステークホルダー証明書格納部50に格納しているステークホルダー証明書(150,250)を参照して判断する。
共有許可設定部1(112)は、鍵群1(130)に属する鍵を、共有鍵群(330)の共有鍵として設定したり、新規に鍵を生成したり、鍵のマイグレート処理を制御したりと、各種共有鍵を設定する際に必要な鍵処理をする部である。ここでの鍵処理は、共有鍵制御部1(112)と、耐タンパーモジュール1(120)とが連携して行う。
鍵管理テーブル1(113)は、共有鍵制御部1(110)から、鍵群1(130)と共有鍵群(330)とにアクセスするために必要な情報が記載されているテーブルである。鍵管理テーブル1(113)は、図8を用いて後述する。
共有鍵制御部2(210)は、鍵群2(230)と共有鍵群(330)の利用制御を行う部であり、マルチステークホルダーモデル判定部2(211)と、共有許可設定部2(212)と、鍵管理テーブル2(213)から構成される。
マルスステークホルダーモデル判定部2(211)は、共有鍵制御部2(210)が管理している鍵群2(230)もしくは共有鍵(330)に対して、ステークホルダー2以外のステークホルダーから共有鍵の設定の要求があった場合に、要求元のステークホルダーが、鍵を共有してよいステークホルダーであるかどうかをステークホルダー証明書格納部50に格納しているステークホルダー証明書(150,250)を参照して判断する。
共有許可設定部2(212)は、鍵群2(230)の鍵を、共有鍵群(330)の共有鍵として設定したり、新規に鍵を生成したり、鍵のマイグレート処理を制御したりと、各種共有鍵を設定する際に必要な鍵処理をする部である。ここでの鍵処理は、共有鍵制御部2(212)と、耐タンパーモジュール2(220)とが連携して行う。
鍵管理テーブル2(213)は、鍵群2(230)と共有鍵群(330)とにアクセスするために必要な情報が記載されているテーブルである。鍵管理テーブル2(213)は、図8を用いて後述する。
なお、共有鍵制御部1(110)及び共有鍵制御部2(210)は、それぞれ、第1のステークホルダープログラム、第2のステークホルダープログラムとして実現されていてもよい。これにより、共有鍵制御部1(110)及び共有鍵制御部2(210)は、TCGのモバイル仕様で規定されるセキュアブートで完全性が検証されてから起動することが可能となる。
<耐タンパーモジュール(120、220)>
耐タンパーモジュール1(120)は、MTM機能を有するものとして実装されているとして説明する。そのため、耐タンパーモジュール1(120)は、暗復号処理や署名生成・検証処理やTPM機能処理などのセキュアな処理や、鍵の制御処理をする際に、第1のステークホルダープログラム及び共有鍵制御部1(110)などから利用される。さらに、耐タンパーモジュール1(120)は、耐タンパーモジュール1内の不揮発性メモリ上にルート鍵1(121)を保持する。このルート鍵1(121)は、TCGにおけるSRKに相当する鍵である。
同様に、耐タンパーモジュール2(220)は、MTM機能を有するものとして実装されているとして説明する。そのため、耐タンパーモジュール2(220)は、暗復号処理や署名生成・検証処理やTPM機能処理などのセキュアな処理や、鍵の制御処理をする際に、第2のステークホルダープログラムおよび共有鍵制御部2(210)などから利用される。さらに、耐タンパーモジュール2(220)は、耐タンパーモジュール1内の不揮発なメモリ上にルート鍵2(221)を保持する。このルート鍵2(221)は、TCGにおけるSRKに相当する鍵である。
<鍵格納部30>
鍵群1(130)と共有鍵群330とは、ルート鍵1(121)をルートとした階層的ツリー構造のノード鍵として構成される。これは、TCGのProtected Storage機能を実現するための鍵ツリー構造に相当する。
鍵群1(130)は、1つ以上の鍵から構成されたツリー構造を有する鍵群である。鍵群1(130)の個々の鍵は、共有鍵制御部1(110)から耐タンパーモジュール1(120)を経由して暗復号化処理や署名生成・検証処理に利用される。
鍵群2(230)と共有鍵群330とは、ルート鍵2(221)をルートとした階層的ツリー構造のノード鍵として構成される。これは、TCGのProtected Storage機能を実現するための鍵ツリー構造に相当する。
鍵群2(230)は、1つ以上の鍵から構成されたツリー構造を有する鍵群である。鍵群2(230)の個々の鍵は、共有鍵制御部2(210)から耐タンパーモジュール2(220)を経由して暗復号化処理や署名生成・検証処理に利用される。
一方、共有鍵群330は、1つ以上の鍵から構成されたツリー構造を有する鍵群である。共有鍵群330の個々の鍵は、共有鍵制御部1(110)から耐タンパーモジュール1(110)経由で暗復号化処理や署名生成・検証処理に利用される。共有鍵群330は、共有鍵制御部2(210)から耐タンパーモジュール2(220)経由でも暗復号化処理や署名生成・検証処理に利用される。
共有鍵群330は、共有鍵と、その共有鍵を保護するための共有鍵の親鍵とから構成される。共有鍵の親鍵は、共有鍵制御部1(110)から耐タンパーモジュール1(110)経由でのみ利用される鍵と、共有鍵制御部2(210)から耐タンパーモジュール2(210)経由でのみ利用される鍵とから構成される。 これら鍵群1(130)、鍵群2(230)及び共有鍵群(330)は、鍵格納部30に格納される。鍵群1(130)、鍵群2(230)及び共有鍵群(330)の構造については、図4から図7を用いてさらに詳しく説明する。
<暗号化データ格納部40>
暗号化データ1(140)は、鍵群1(130)の鍵で暗号化されたデータである。暗号化共有データ340は、共有鍵群330の鍵で暗号化されたデータである。暗号化データ2(240)は、鍵群2(230)の鍵で暗号化されたデータである。
暗号化データ1(140)、暗号化データ2(240)、及び暗号化共有データ340は、暗号化データ格納部40に格納される。暗号化データ格納部40は、HDDやフラッシュメモリなどの不揮発メモリで構成される。
なお、図3では、暗号化データ1(140)、暗号化データ2(240)、及び暗号化共有データ340は、暗号化データとしているが、暗号化データに限定されず、それぞれの鍵で署名生成したデータであってもよい。
<ステークホルダー証明書格納部50>
ステークホルダー証明書格納部50は、ステークホルダー証明書1(150)とステークホルダー証明書2(250)とを格納する部である。ステークホルダー証明書格納部50は、不揮発メモリで実現され、完全性が保護された形で管理される。
ステークホルダー証明書1(250)は、第1のステークホルダープログラム、共有鍵制御部1(110)、及び耐タンパーモジュール1(120)が、正規のステークホルダーから提供されてことを示す証明書である。
ステークホルダー証明書2(250)は、第2のステークホルダープログラム、共有鍵制御部2(210)、及び耐タンパーモジュール2(220)が、正規のステークホルダーから提供されてことを示す証明書である。
ステークホルダー証明書(150、250)は、それぞれ、依存関係のあるステークホルダーを識別できる情報が記載される。ステークホルダー証明書(150,250)の構成などの詳細は、図9及び図10を用いて後述する。
<図4:共有鍵の鍵ツリー構成>
図4は、鍵群1(130)と鍵群2(230)と共有鍵群(330)とのツリー構成を表した図である。なお、図3で既に説明している構成要素については、説明を省略する。図4では、図3における耐タンパーモジュール(120,220)、鍵群1(130)、鍵群2(230)、及び共有鍵群(330)を、より詳細に示したものである。
耐タンパーモジュール1(120)は、耐タンパーモジュール1(120)の外部から不正なアクセスができないように保護されたセキュアメモリ(122)と、16個のPCR(123)とを備えている。ルート鍵1(121)は、セキュアメモリ(122)に安全に保持される。
耐タンパーモジュール2(220)は、耐タンパーモジュール2(220)の外部から不正なアクセスができないように保護されたセキュアメモリ(222)と、16個のPCR(223)とを備えている。ルート鍵2(221)は、セキュアメモリ(222)に安全に保持される。
なお、PCR(120、220)は、Platform Configration Registersと呼ばれるレジスタであり、TCGのTPM_Extendコマンドにより生成されたインテグリティ値が格納される。なお、PCRの個数は、16個に限定されるわけではなく、それより多くても少なくても良い。実施の形態では、TCGの仕様で決められている個数以上の数を備えるものとする。
以降、ルート鍵1(121)をK10、ルート鍵2(221)をK20として説明する。
鍵群1(130)は、3つの鍵(K11、K12、K13)から構成されている。K11は、K10の子供の鍵としてツリー構造化され、K11はK10により暗号化される。K12及びK13は、共にK11の子供の鍵としてツリー構造化され、K12及びK13はK11で暗号化される。
鍵群2(230)は、3つの鍵(K21、K22、K23)から構成されている。K21は、K20の子供の鍵としてツリー構造化され、K21はK20により暗号化される。K22及びK23は、共にK21の子供の鍵としてツリー構造化され、K22及びK23はK31で暗号化される。
共有鍵群330は、4つの鍵(K31、K32、K33、K34)から構成されている。K31は、K10の子供の鍵としてツリー構造化され、K31はK10により暗号化される。したがって、K31は、共有鍵制御部1(110)から耐タンパーモジュール1(110)経由でのみ利用される鍵となる。なぜなら、K31は、K10で暗号化されているため、K31の鍵値を利用する場合は、K10を用いてK31を復号しなければならないからである。
一方、K32は、K20の子供の鍵としてツリー構造化され、K32はK20により暗号化される。したがって、K32は、共有鍵制御部2(210)から耐タンパーモジュール2(210)経由でのみ利用される鍵となる。なぜなら、K32は、K20で暗号化されているため、K32の鍵値を利用する場合は、K20を用いてK32を復号しなければならないからである。
続いて、K33及びK34について説明する。K33は、K31及びK32の子供の鍵としてツリー構造化され、K34は、K31及びK32の子供の鍵としてツリー構造化されている。
K33及びK34は、共有鍵制御部1(110)から耐タンパーモジュール1(110)経由で暗復号化処理や署名生成・検証処理に利用され、さらに共有鍵制御部2(210)から耐タンパーモジュール2(220)経由でも暗復号化処理や署名生成・検証処理に利用される共有鍵である。そのため、K33及びK34は、上述したように耐タンパーモジュール1(110)、及び、耐タンパーモジュール2(210)の両モジュールから利用可能な鍵である。
このようにするために、K31及びK32は、同じ鍵値とする。親鍵が子供の鍵を暗号化する方式をとったツリー構造としているため、K31及びK32が同じ鍵値であれば、ルート鍵がK10とK20のように異なっていても、K33及びK34は復号できる。
K31及びK32を同じ鍵値に設定する方法については、TCGにおけるマイグレート機能を利用する。具体的なフローについては図11及び図12を用いて後述するので、ここでの説明は省略する。
また、暗号化データ1(140)は、暗号化データD12とD13とから構成されている。D12は、K12で暗号化されたデータであり、D13は、K13で暗号化されたデータである。なお、暗号化データ1(140)の暗号化データは、これに限定されることなく、K12及びK13のそれぞれを署名鍵として用い、署名されたデータであってもよい。また、K12で、暗号化されたデータが複数あってもよいし、K13で、暗号化されたデータが複数あってもよい。
また、暗号化データ2(240)は、暗号化データD22とD23とから構成されている。D22は、K22で暗号化されたデータであり、D23は、K23で暗号化されたデータである。なお、暗号化データ2(240)の暗号化データは、これに限定されることなく、K22及びK23をそれぞれ署名鍵として用い、署名されたデータであってもよい。また、K22で、暗号化されたデータが複数あってもよいし、K23で、暗号化されたデータが複数あってもよい。
また、暗号化共有データ340は、暗号化共有データD33とD34とから構成されている。D33は、K33で暗号化されたデータであり、D34は、K34で暗号化されたデータである。なお、暗号化共有データ340の暗号化データは、これに限定されることなく、K33及びK34をそれぞれ署名鍵として用い、署名されたデータであってもよい。また、K33で、暗号化されたデータが複数あってもよいし、K34で、暗号化されたデータが複数あってもよい。
なお、鍵群1(130)、鍵群2(230)、及び共有鍵群330の鍵の個数と、暗号化データ1(140)、暗号化データ2(240)、及び暗号化共有データ340のデータの個数は、図4で示しているものに限定されない。また、K10、K20をルートする鍵ツリー構造は、2分木で構成しているが、3分木、N分木(Nは整数)であってもよい。
<図5:鍵属性情報>
ルート鍵1(121)、ルート鍵2(221)、鍵群1(130)、鍵群2(230)、共有鍵群330のそれぞれの鍵値は、鍵属性情報の1要素として鍵値を持つ。
例えば、ルート鍵1(121)であるK10の鍵値は、鍵属性情報410内に記録されている。ルート鍵2(221)であるK20の鍵値は、鍵属性情報420内に記録されている。鍵群1(130)の鍵であるK11の鍵値は、鍵属性情報411内に記録されている。鍵群2(230)の鍵であるK21の鍵値は、鍵属性情報421内に記録されている。共有鍵群(330)の鍵であるK31の鍵値は、鍵属性情報431内に記録されている。そのほかの鍵値も同様に記録されているので、説明を省略する。
ここで、鍵属性情報は、鍵の値と共に、鍵の属性を示す情報も同じデータ構造として記録されている。
図5は、鍵属性情報の構成を示した図である。鍵属性情報434は、マイグレート許可フラグ501と、共有許可フラグ502と、鍵のアルゴリズムを識別するための情報である暗号アルゴリズムと鍵値のサイズを示した503と、鍵値504とを備える。
マイグレート許可フラグ501は、鍵のマイグレートが許可されているかどうかを示すフラグ情報であり、「0」であればマイグレート不可、「1」であればマイグレート許可を示す。
共有許可フラグ502は、共有鍵として利用可能かどうかを示すフラグ情報であり、「0」であれば共有不可、「1」であれば共有許可を示す。
鍵属性情報410は、さらに、鍵が、複数のステークホルダーから共有鍵としてアクセス可能な場合に、そのステークホルダーの情報を格納するステークホルダーフィールド505を有する。複数のステークホルダーからアクセス可能な鍵であれば、ステークホルダーフィールド505は、アクセスされるステークホルダーの数だけ列挙される。
図5に示した鍵属性情報434は、ステークホルダー識別子1からnまでのステークホルダーフィールド505が設定されている。
図4では、K34は、ステークホルダー1とステークホルダー2とからアクセス可能な例であるので、ステークホルダーフィールド505は、2つ存在することになる。
ステークホルダーフィールド505は、ステークホルダー識別子506と、鍵の利用制限を示す鍵利用制限情報507と、リンク情報508とを含む。
鍵利用制限情報507は、鍵を利用する際に耐タンパーモジュールの備えるPCR(123、223)に記録されていることが期待されるPCR値である。鍵利用制限情報507は、耐タンパーモジュールの備えるPCR(123、223)に記録されている実際の値と比較され、実際のPCR値と期待されるPCR値とが等しい場合にのみ、鍵が利用できるように制限するための情報である。
リンク情報508は、個々の鍵に対する親鍵を識別するためのリンク情報、もしくは、個々の鍵に対する子供の鍵を識別するためのリンク情報である。
<図6:リンク情報>
ここで、図6を用いてリンク情報508の構造について説明する。
図6(a)のリンク情報508は、個々の鍵に対する親鍵を識別するための情報である。複数の親鍵が存在するのであれば、図に示すようにリンク情報508には、複数の親鍵へのポインタ(601,602,603)が格納される。
図6(b)のリンク情報508は、個々の鍵に対する子供の鍵を識別するための情報である。複数の子供の鍵が存在するのであれば、図に示すようにリンク情報508には、複数の子供の鍵へのポインタ(611,612,613)が格納される。
<図7:鍵属性情報の例>
図7は、鍵のツリー構成と鍵属性情報の関係の例を表した図である。図7では、図4に図示している一部の鍵について抜粋して説明する。
ルート鍵1(K10)の鍵属性情報410は、マイグレート不許可であり、共有不許可であり、暗号アルゴリズムがRSAアルゴリズムで鍵長が2048ビットであることを示している。また、鍵値504のフィールドには、K10の公開鍵の鍵値と、K10の秘密鍵の鍵値とが設定されている。
そして、K10はステークホルダー1に対してアクセスを許可させるため、ステークホルダーフィールド505には、ステークホルダー識別子506として、ステークホルダー1の識別子「SH1」、鍵利用制限情報507に期待されるPCRの情報としてPCR_10が示されている。さらに、リンク情報508には、図6(a)の親鍵へのリンク情報が設定される。K10はルート鍵なので、親鍵は存在しないので、リンク情報508には「NULL」と設定される。さらに、K10は、親鍵が存在しないので、K10の鍵値504のフィールドには、平文の鍵値が設定される。
鍵群1(130)の鍵K11の鍵属性情報411は、マイグレート許可であり、共有許可であり、暗号アルゴリズムがRSAアルゴリズムで、鍵長が2048ビットであることを示している。また、鍵値504のフィールドには、K11の公開鍵の鍵値と、K10の公開鍵で暗号化されたK11の秘密鍵の鍵値とが設定される。そしてK11はステークホルダー1に対してアクセスを許可させるため、ステークホルダーフィールド505には、ステークホルダー識別子506として、ステークホルダー1の識別子「SH1」が設定される。さらに、リンク情報508には、図6(a)で説明した親鍵へのリンク情報が記載されている。K11の親鍵はK10であるので、リンク情報508には「K10へのポインタ情報」が設定される。具体的に、このポインタ情報は、K10へ鍵属性情報410を参照できる情報であれば、アドレスでもよいし、識別IDでもよい。鍵利用制限情報507に期待されるPCRの情報として「NULL」として設定される。この「NULL」は、K11を利用する際のPCRの制限はない鍵であることを示している。
共有鍵群(330)のK33の鍵属性情報433は、マイグレート許可であり、共有許可であり、暗号アルゴリズムがAESアルゴリズムで鍵長が256ビットであることを示している。また、鍵値504のフィールドには、K31もしくはK32の公開鍵で暗号化されたK33鍵値が設定される。そしてK33はステークホルダー1とステークホルダー2との間で共有できる共有鍵であるため、ステークホルダーフィールド505には、ステークホルダー識別子506として、ステークホルダー1の識別子「SH1」と「SH2」とが設定される。また、鍵利用制限情報507には、期待されるPCRの情報として「SH1」からの利用制限に使うPCR_33_1と「SH1」からの利用制限に使うPCR_33_2とが記載されている。そして、リンク情報508には、図6(a)で説明した親鍵へのリンク情報が記載されている。K33は共有鍵であり、親鍵はK31とK32であるので、リンク情報508には「K31へのポインタ情報」と「K32へのポインタ情報」が設定される。
他の鍵(K20、K31、K32、K34)についても同様なので、説明を省略する。
なお、実施の形態1では、暗号化アルゴリズムをRSA、または、AESとしているが、暗号アルゴリズムはこれに限定されない。公開鍵暗号系であれば、RSAでなく楕円曲線暗号でもよい、また、共通鍵暗号系ではAES以外のアルゴリズムでもよい。鍵長も本実施の形態1の例に限定はされない。また、親子関係で親鍵が公開鍵暗号系のアルゴリズムであれば、その鍵は、親鍵の公開鍵で暗号化される。また親鍵が共通鍵暗号系のアルゴリズムであれば、その鍵は、親鍵で暗号化される。また、子供鍵の公開鍵暗号系アルゴリズムの鍵であれば秘密鍵が暗号化対象となり、共通鍵暗号系であれば、その暗号鍵が暗号化対象となる。
なお、鍵属性情報434は、鍵値505を含む構成としているが、鍵値505と、それ以外の属性情報は別のデータとして構成するようにしてもよい。
<図8:鍵管理テーブル>
次に、鍵管理テーブルについて説明する。
鍵管理テーブル1(113)は、共有鍵制御部1(110)が利用するテーブルである。鍵管理テーブル1(113)は、鍵ID811と鍵属性情報アドレス812とから構成される。鍵ID811は、各鍵を識別するための識別子である。鍵属性情報アドレス812は、各鍵ID811に対応する鍵属性情報が格納されているアドレス値が設定される。この2つの情報を利用することで、共有鍵制御部1(113)は、所望の鍵にアクセスする。
鍵管理テーブル2(213)は、共有鍵制御部2(210)が利用するテーブルである。鍵管理テーブル2(213)は、鍵ID821と鍵属性情報アドレス822とから構成される。鍵ID821は、各鍵を識別するための識別子である。鍵属性情報アドレス822は、各鍵ID821に対応する鍵属性情報が格納されているアドレス値が設定される。この2つの情報を利用することで、共有鍵制御部2(213)は、所望の鍵にアクセスする。
ここで、共有鍵として設定されている鍵K33及びK34は、鍵管理テーブル1(113)と鍵管理テーブル2(213)との両テーブルに登録されている。
<図9:ステークホルダー証明書>
次に、図9を用いて、ステークホルダー証明書について説明する。ステークホルダー証明書1(150)、及び、ステークホルダー証明書2(250)は、すべて同じフォーマットであるとする。具体的には、X.509形式のフォーマットを利用する。
ステークホルダー証明書(TPM証明書)は、X.509のバージョンを示す証明書バージョン901、発行者によって一意な値を割り振られたシリアルナンバー902、証明書の署名検証に用いる署名アルゴリズムを示す署名アルゴリズム情報903、発行者情報904、証明書の有効期間905、証明書を受ける対象を示したサブジェクト906、鍵値や公開鍵アルゴリズムを示す公開鍵情報907、TPMバージョン908、トラストモデル識別情報909、依存ステークホルダー証明書識別情報910、拡張領域911、及び、これらのデータに対する署名データ912から構成される。
拡張領域911には、CRLやISO90000などの製造プロセスや、EALなどのコモンクライテリアといったセキュリティ関連情報を記載してもよいし、機能制御の条件と機能制御の内容が記載されてもよい。
本実施の形態では、トラストモデル識別情報909と依存ステークホルダー証明書識別情報910とを用いてトラストモデルを定義している。以下、これらの構成について詳細に説明する。
なお、本実施の形態では、X.509形式のフォーマットとしているが、これ以外のフォーマットであってもよい。例えば、MTM仕様で規定されているRIM証明書のフォーマットを利用してもよい。RIM証明書を利用することで、MTMの証明書検証用のコマンドを利用して、証明書検証を行うことが可能となる。RIM証明書については、非特許文献4に詳細に記載されているので、ここでの説明を省略する。
<図10:ステークホルダー間の依存関係>
トラストモデル情報識別情報909は、3つのトラストモデルであるIndependent Model、Interdependent Model、及び、Dependent Modelを識別するため情報が記載される。
依存ステークホルダー証明書識別情報910は、トラストモデルにおける信頼関係のあるステークホルダー証明書へのポインタ情報を格納する。
図10(a)は、Independent Modelの具体例である。この例では、Independent Modelを示すトラストモデル識別情報を「001」としている。ステークホルダー1とステークホルダー2との間で依存関係がないモデルであるので、CERT001とCERT002の依存ステークホルダーモデル識別情報910には「NULL」と設定されている。
図10(b)は、Interdependent Modelの具体例である。この例は、ステークホルダー2がステークホルダー1に対して信頼の依存関係があるモデルである。そのため、CERT002の依存ステークホルダー識別情報910には、信頼の依存先ステークホルダーである「CERT001」と設定されている。
図10(c)は、Dependent Modelの具体例である。この例は、ステークホルダー2がステークホルダー1に対して信頼の依存関係があるモデルである。そのため、CERT002の依存ステークホルダー識別情報910には、信頼の依存先ステークホルダーである「CERT001」と設定されている。
<図11、12:共有鍵設定フロー>
図11及び図12は、共有鍵制御部1(110)で管理している鍵群1(130)の鍵について、共有鍵制御部2(210)から共有鍵としての利用要求があった場合のフローである。
図4の鍵構成を例にフローの概要を説明すると、耐タンパーモジュール1(120)は、K31を耐タンパーモジュール2(220)にマイグレートし、耐タンパーモジュール2(220)は、マイグレートされたK31をK32として管理し、K31の子供鍵であるK33とK34とを、ステークホルダー1とステークホルダー2の共有鍵として設定する。
ここでは、図11及び図12を用いて、共有鍵の設定フローの詳細を説明する。
まず、共有鍵制御部2(210)は、共有鍵制御部1(110)に対して、共有鍵設定要求データとして、ステークホルダー2を識別するIDと、ルート鍵2であるK20の公開鍵を送付する(ステップS1101)。ここで、共有鍵制御部2(210)から直接共有鍵制御部1(110)に対してデータを送信しているが、第2のステークホルダープログラムから第1のステークホルダープログラムに対してS1101の要求を出すようにし、第1のステークホルダープログラムは、共有鍵制御部1(110)に対して処理要求を出し、第2のステークホルダープログラムは、共有鍵制御部2(210)に対して処理要求を出すようにしてもよい。
次に、共有鍵制御部1(110)は、ステークホルダー証明書格納部50から、S1101で受信したIDに対応するステークホルダー証明書をリードする(ステップS1103)。図4の例では、ステークホルダー証明書2(250)をリードする。
次に、共有鍵制御部1(110)は、耐タンパーモジュール1(120)を利用してステークホルダー証明書の検証を行う(ステップS1103)。S1103の検証の結果、ステークホルダー証明書が正当でないと判断されたら、共有鍵制御部1(110)は、エラー処理へと処理を移す(S1130)。S1103の検証の結果、証明書が正当であれば、ステップS1104に処理を移す。
次に、ステークホルダー間の依存関係を、S1103で検証したステークホルダー証明書を用いてチェックする。ステークホルダー証明書のトラストモデル識別情報をチェックし、InterdependentもしくはDependent modelであることを確認する。
そして、InterdependentもしくはDependent modelであることが確認できたら、ステークホルダー証明書格納部50から、依存ステークホルダー識別子が参照しているステークホルダー証明書を参照し、依存先のステークホルダー証明書が正当であるかどうかを確認する(ステップS1104)。
この結果、正当であると判断されれば、S1106へ処理を移す。そうでない場合、すなわち、トラストモデルがIndependentモデルである、もしくは依存先のステークホルダー証明書が正当でないと判断されれば、エラー処理へと処理を移る(ステップS1130)。
図4の例では、ステークホルダー2とステークホルダー1とが依存関係であるかどうかを、ステークホルダー証明書1(150)と、ステークホルダー証明書2(250)tpを用いて検証する。
次に、共有鍵制御部1(110)は、鍵群1(130)の中にマイグレート可能で且つ共有許可な鍵が存在するかどうか探索する(ステップS1105)。図4の例では、K10,K11,K12,K13,K31,K33,K34の中から探索する。
もし、そのような鍵が存在しなければ、新たにマイグレート可能で且つ共有許可な鍵を生成する(ステップS1106)。鍵の生成処理は、耐タンパーモジュール1(120)で行う。
そして、共有鍵制御部1(110)は、生成した鍵を鍵群1(130)の鍵として鍵管理テーブル1(113)に登録する(ステップS1107)。
次に、S1105の探索により見つけたマイグレート可能で共有許可な鍵の中で、子供鍵を有するものがあるかどうかチェックする(ステップS1108)。もし、そのような鍵がなければ、ステップS1106へ処理を移し、マイグレート可能で共有許可な鍵の子供の鍵を生成する。図4の例では、K31が子供鍵を有し、且つ、マイグレート可能で共有許可な鍵として選択される。
次に、S1107で子供鍵を有するマイグレート可能で共有許可な鍵として選択された鍵のロード処理を行う(ステップS1109)。ここでのロード処理とは、親鍵で子供の鍵が暗号化されているので、ロード要求のあった鍵を、ルート鍵であるK10からリーフ方向へ辿り、親子関係を元に復号処理することである。図4の例では、K31をロードする。
次に、共有鍵制御部1(110)は、S1109でロードした鍵を耐タンパーモジュール1(120)から耐タンパーモジュール2(220)にマイグレートするために、耐タンパーモジュール1(120)に対してマイグレート処理依頼を行う(ステップS1110)。以降、マイグレートされる鍵をマイグレート鍵と呼ぶことにする。図4の例では、K31がマイグレート鍵であって、K33とK34が共有鍵として設定される。
次に、マイグレート処理依頼を受けた耐タンパーモジュール1(120)は、マイグレート鍵をS1101で受信した公開鍵で暗号化し、共有鍵制御部1(110)に返す(ステップS1111)。図4の例では、K31をK20の公開鍵で暗号化する。
次に、共有鍵制御部1(110)は、暗号化マイグレート鍵を共有鍵制御部2(210)へ送信する(ステップS1112)。なお、ここでは、共有鍵制御部1(110)及び共有鍵制御部2(210)間で直接データの送受信を行うことができるものとして説明しているが、直接でなく、別の第三者の制御部を経由して行うようにしてもよい。
次に、共有鍵制御部2(210)は、耐タンパーモジュール2(220)に対して、鍵のマイグレート処理の完了依頼を行う(ステップS1113)。
次に、耐タンパーモジュール2(220)は、暗号化マイグレート鍵を、ルート鍵2(221)の秘密鍵で復号する(ステップS1114)。図4の例では、K20の秘密鍵で、暗号化K31を復号する。
次に、耐タンパーモジュール2(220)は、平文になったマイグレート鍵の鍵属性情報のステークホルダーフィールド505のステークホルダー識別子506と鍵利用制限情報507とを、ステークホルダー2における鍵利用制限情報に設定する(ステップS1115)。
また、S1115にて、リンク情報508が、図6(a)の親鍵へのリンク情報であれば、ステークホルダーフィールド505のリンク情報508を、マイグレート先の親鍵に設定し、リンク情報508が、図6(b)の子供鍵へのリンク情報であれば変更しない。
図7の例では、K31及びK32の鍵属性情報は、ステークホルダーフィールド505のステークホルダー識別子506と鍵利用制限情報507とリンク情報508とが異なり、他は同じ値として設定される。このように設定することで、K31がステークホルダー1の環境からのみ利用可能であり、ステークホルダー2の環境からのみ利用可能となる。
次に、耐タンパーモジュール2(220)は、ステップS1115で設定された鍵を、共有鍵群(330)の指定の位置に設定する(S1116)。図4の例では、K32を、K20の子供として設定している。そのため、K32の秘密鍵は、K20の公開鍵で暗号化される。
次に、耐タンパーモジュール2(220)から共有鍵制御部2(210)を経由し、共有鍵制御部1(110)に対して、ステークホルダー2の鍵利用制限情報が送信される(ステップS1117)。
次に、共有鍵制御部2(110)は、共有鍵として設定される鍵(マイグレート鍵の子供の鍵)の鍵属性情報に、ステークホルダー2の鍵利用制限情報を設定する(ステップS1118)。
図7の例では、K33及びK34の鍵利用制限情報のステークホルダーフィールド505にステークホルダー2の情報が追加される。この処理により、ステークホルダーフィールド505には、「SH1」と「SH2」との2つのステークホルダーフィールドが設定され、それぞれの鍵利用制限情報としてステークホルダー1の鍵利用制限情報(PCR)とステークホルダー2の鍵利用制限情報(PCR)とが設定される。このように設定することで、K33及びK34は、ステークホルダー1の環境とステークホルダー2の環境とから共用利用が可能な鍵となる。
次に、共有鍵制御部1(110)は、鍵管理テーブル1(113)内にあるS1118で設定した鍵IDと鍵属性情報アドレスとを、共有鍵制御部2(210)に送信する(ステップS1119)。図4の例では、K33とK34の鍵IDと鍵属性情報を送る。
次に、共有鍵制御部2(210)は、S1119で受信した鍵IDと鍵属性情報アドレスとを、鍵管理テーブル2(212)に登録する。
以上で、共有鍵K33及びK34が、共有鍵制御部1(110)及び共有鍵制御部2(210)から利用可能な状態となる。
以上で、図11のフローの説明を終了する。
以上説明したように、本実施の態様によると、共有鍵制御部2(210)から共有鍵制御部1(110)に、鍵群1(130)に含まれる鍵を共有したい旨の通知を受けると、共有鍵制御部2(210)に対応するステークホルダー2が共有鍵制御部1(110)に対応するステークホルダー1に依存する関係である場合、鍵群1(130)に含まれる鍵の中から鍵群2(230)にマイグレート可能な所定の鍵K31を鍵群2(230)の中にマイグレートする。
即ち、ステークホルダー2がステークホルダー1に依存する関係であることを条件に、所定の鍵K31を親鍵とするツリー構造に含まれる鍵群の全体をコピーするのではなく、所定の鍵K31のみをコピーし、耐タンパーモジュール1(210)及び耐タンパーモジュール2(220)で所定の鍵K31を親鍵とするツリー構造に含まれる鍵群を共有鍵群330とすることで、所定の鍵K31を親鍵とするツリー構造に含まれる鍵群の全体を二重持ちする非効率を回避できる。
また、共有鍵制御部2(210)側で、鍵群2(230)に含まれる鍵を用いて所定の鍵K31を暗号化して鍵群2(230)の中に保持し、鍵群1(130)に含まれる所定の鍵K31より下層の鍵、例えば、K33、K34を共用することにより、所定の鍵K31をマイグレートするだけで、共有鍵制御部2(210)側では、共有鍵制御部1(110)に対応する耐タンパーモジュール1(210)が管理する鍵群1(130)に含まれる所定の鍵K31より下層の鍵、例えば、K33、K34を共用できる。この結果、共有鍵制御部2(210)は、共有鍵群330あるいは暗号化データ格納部40で保持された暗号化共有データ(340)を簡易な構成で利用できる。
さらに、共有鍵制御部2(210)は、ステークホルター2がステークホルダー1に依存する関係にある場合にのみ、暗号化データ格納部(40)で保持された暗号化共有データ(340)を利用できる。この結果、前記所定のデータを管理する鍵構成を耐タンパーモジュール1及び耐タンパーモジュール2(220)で簡易にしつつ、共有鍵群330あるいは暗号化共有データ340の機密性を保証できる。
また、共有鍵制御部1(110)は、共有鍵制御部2(210)に対応するステークホルダー2が、少なくとものステークホルダー1に対応する耐タンパーモジュール1(120)を利用するステークホルダーモデルであるとステークホルダー証明書(150、250)に基づいて判断した場合に、ステークホルダー2がステークホルダー1に依存する関係であると判断する。これにより、ステークホルダー2のステークホルダー1に対する依存関係を確実に判断できるので、前記所定のデータを管理する鍵構成を耐タンパーモジュール1(120)及び耐タンパーモジュール2(220)で簡易にしつつ、不正なステークホルダーからの共有鍵群330あるいは、暗号化共有データ340へのアクセスを確実に禁止できる。
また、鍵のマイグレート処理をする際に、鍵群1(130)からマイグレート可能か否かを示す属性情報を参照して、鍵群1(130)に含まれる鍵の中から鍵群2(230)にマイグレート可能な所定の鍵、例えばK31を探すことにより、鍵属性情報を参照するだけでマイグレート可能な鍵を探せるので、マイグレート可能な鍵を簡易にサーチできる。
また、共有鍵制御部1(110)は、鍵群1(130)に含まれる鍵の中から鍵群2(230)にマイグレート可能な鍵が存在しない場合、マイグレート可能な鍵を生成して、この生成した鍵を鍵群2(230)の中にマイグレートする。この結果、鍵群1(130)に含まれる鍵の中から鍵群2(230)にマイグレート可能な所定の鍵が存在しない場合であっても、共有鍵制御部2(210)は鍵群1(130)に含まれる鍵を共用できるので、共有鍵制御部1(110)は鍵群1(130)に含まれる暗号鍵を用いて暗号化された暗号化データ1(140)を暗号化共有データ340として暗号化データ格納部で保持し、暗号化共有データ340にアクセスできる。
また、鍵群1(130)に含まれる所定の鍵より下層の鍵の位置を示す位置情報を所定の鍵のリンク情報として生成してマイグレートすることにより、共有鍵制御部2(210)では、所定の鍵のリンク情報508を参照すれば、前記所定の鍵より下層の鍵の位置を確認できるので、前記所定の鍵より下層の鍵を前記耐タンパーモジュール2(220)の管理する鍵としてコピーすることなく、耐タンパーモジュール1(120)との間で所定の鍵より下層の鍵を共用できる。その結果、耐タンパーモジュール1(120)及び耐タンパーモジュール2(220)とで前記所定の鍵を親鍵とするツリー構造に含まれる鍵群の全体を二重持ちする非効率を回避できる。例えば、K33とK34を共有鍵とする際に、K31のリンク情報508を含んだ情報をマイグレートすることで可能となる。例えば、図6(b)のリンク情報508を利用することで実現可能である。
また、鍵群1(130)に含まれる所定の鍵の位置情報及び鍵群2(230)に含まれる所定の鍵の位置情報を、鍵群1(130)に含まれる前記所定の鍵より下層の鍵のリンク情報508として生成することにより、その下層の鍵のリンク情報508を参照すればその下層の鍵を暗号化した親鍵の所在を認識できるので、前記耐タンパーモジュール1(120)及び耐タンパーモジュール2(220)とで鍵群1(130)に含まれる所定の鍵より下層の鍵を共用する場合であっても、鍵群1(130)に含まれる所定の鍵より下層の鍵がどの鍵で暗号化されているかを容易に識別できる。例えば、図6(a)のリンク情報508を利用することで実現可能である。
<図13:共有鍵利用フロー>
図13は、図12で設定した共有鍵を利用する際のフローであり、第2のステークホルダープログラム(200)が、共有鍵制御部2(210)を介して、共有鍵K33あるいはK34を利用する場合のフローである。
まず、第2のステークホルダープログラム200は、共有鍵制御部2(210)に対して共有鍵による暗号化要求を、共有鍵のIDと共に送信する(ステップS1300)。
次に、共有鍵制御部2(210)は、S1300で受信したIDをもとに、鍵管理テーブル2(213)から、共有鍵を選択する(ステップS1301)。
次に、共有鍵制御部2は、耐タンパーモジュール2(220)に、暗号化対象データと、共有鍵の鍵属性情報とを送信する(ステップS1302)。
次に、耐タンパーモジュール2(220)は、鍵属性情報内の利用制限情報であるPCRの情報と、PCRに記録されている実際の値とを比較し、両者が等しいかどうかチェックする(ステップS1303)。
もし、チェックの結果、両者の値が等しいと判断されれば、S1304へ処理を移す。そうでなく、両者の値が等しくないと判断されれば、共有鍵制御部2(210)にエラーを返す。エラーを受信した共有鍵制御部2(210)は、図示しないエラー処理へ処理を移す。
次に、耐タンパーモジュール2(220)は、共有データを共有鍵で暗号化し、暗号化データを共有鍵制御部2(210)へ返す(ステップS1304、S1305)。
次に、共有鍵制御部2(210)は、共有鍵により暗号化された暗号化データを、暗号化データ格納部に書き込む(ステップS1306)。
最後に、書き込み完了したことを、共有鍵制御部2(210)を通して第2のステークホルダープログラム200に通知する。
以上で、図13のフローの説明を終了する。
なお、実施の形態1では鍵利用制限情報をPCRの情報としているが、鍵利用制限情報は、これに限定されない。例えば、TPMが有するセキュアなカウンターの値や、生体認証との照合情報などの、各種認証情報であってもよい。また、それら認証情報の組合せたもので鍵の利用を制限させてもよい。
例えば、カウンターの値とPCRとを組み合わせて、両者の一致した場合のみ共有鍵を利用できるようにしてもよい。また、鍵利用制限情報を、利用許可フラグとし、鍵利用制限情報が「1」だったら利用可とし、鍵利用制限情報が「0」だったら利用不可とするようにしてもよい。
<図14:共有鍵の無効化の概要フロー>
図14は、共有鍵の無効化の概要フローである。ステークホルダー1及びステークホルダー2間で共有されている鍵を、どちらかのステークホルダー環境がリボーク対象であるか、もしくは、ステークホルダー環境に改竄があると判定された場合、リボーク対象もしくは改竄されたステークホルダー側から、共有鍵を利用させないようにするためのフローである。
まず、共有鍵制御部が端末内のステークホルダー環境がリボーク対象、もしくは、端末内のステークホルダー環境が改竄されたことを判定する(ステップS1401)。リボーク対象の判断は、リボケーションリストにリボーク対象のIDが列挙されているので、そのIDを元に判断可能である。また改竄チェックについても、ステークホルダープログラムのハッシュ値を含んだ証明書を情報処理端末に持たせ、静的もしくは動的にプログラムに改竄チェックを行い、改竄があったかどうかを判断することが可能となる。
次に、共有鍵制御部は、リボーク対象もしくは改竄されたと判定されたステークホルダーが、他のステークホルダーと共有している共有鍵が、存在するかどうかを確認する(ステップS1402)。もし、存在するなら、ステップS1403へ処理を移す。そうでなく、存在しないのなら、無効化する共有鍵が存在しないので、無効化処理は終了となる。
次に、共有鍵制御部が、リボーク対象もしくは改竄されたと判定されたステークホルダー環境から、共有鍵を利用できないように無効化設定する(ステップS1403)。以降、無効化処理について、例を用いて詳細に説明する
<図15:共有鍵の無効化の詳細フロー>
図15は、共有鍵の無効化の詳細フローであり、図14のS1403を詳細化したフローである。
まず、リボーク対象もしくは改竄されたと判定されたステークホルダーが他のステークホルダーと共有している共有鍵を判断する(ステップS1501)、この判断処理は、鍵属性情報のステークホルダーフィールド505を参照することで可能となる。
次に、S1501により共有鍵と判断された鍵の親鍵にアクセスし、その鍵で暗号化共有鍵を復号する(ステップS1502)。
次に、共有鍵制御部は、乱数生成機能を利用し、親鍵の鍵属性情報の鍵値を乱数で更新する(ステップS1503)。なお、鍵値を乱数で更新するとしているが、これに限定されない。当初の鍵値と異なる値で上書きすれば乱数以外の値でもよい。
次に、更新した親鍵で、共有鍵を暗号化する(ステップS1504)。
図16は、図15の無効化フローの実施前(無効化前)と実施後(無効化後)の状態を示した例である。
図16(a)は、無効化前を示したものである。この例では、共有鍵K33とK34とが、ステークホルダー1及びステークホルダー2間で共有されている。
図16(b)は、ステークホルダー2の環境がリボーク対象もしくは改竄ありと判断された場合に、ステークホルダー2の環境から、K33及びK34を利用できないように無効化した後の例である。
K31の鍵値を、乱数で書換えて、書換え後の鍵をK35としている。このようにすると、共有鍵K33及びK34は、K35で暗号化され、K35はK10で暗号化されることになる。そのため、ステークホルダー2側からは、K35を復号することができない。その結果、K33及びK34も復号することもできない。したがって、K33及びK34で暗号化されたデータを、不正なステークホルダー環境による不正利用から保護することが可能となる。
以上で実施の形態1の説明を終わる。
以上のように、第2のステークホルダープログラム環境(第2のステークホルダープログラム200、共有鍵制御部2(210)、耐タンパーモジュール2(220))が外部から攻撃されたことを検知した場合、耐タンパーモジュール1(120)は所定の鍵と置換える代替鍵を生成して前記所定の鍵を親鍵とするツリー構造に含まれる鍵を前記代替鍵で再暗号化すると共に前記所定の鍵の親鍵を用いて前記代替鍵を暗号化する。この結果、共有鍵制御部2(210)は前記所定の鍵を用いて前記代替鍵を親鍵とするツリー構造に含まれる鍵を復号化できないので、前記代替鍵を親鍵とするツリー構造に含まれる鍵で暗号化された所定のデータを利用できず、前記所定データを不正な利用から保護できる。例えば、この場合、所定の鍵がK31であり、代替鍵がK35となる。
なお、実施の形態1では、共有鍵制御部1(110)と共有鍵制御部2(210)とは、それぞれ別の制御部として構成しているが、共有鍵制御部1(110)と共有鍵制御部2(210)と両機能を1つの制御部として実現してもよい。
これにより、共有鍵制御部1(110)と共有鍵制御部2(210)とは、共用の共有鍵制御部で構成が可能となり、1つの共有鍵制御部で2つのステークホルダー間の共有鍵を統括的に制御することが可能なので、より柔軟にアクセス制御を行うことが可能となる。
なお、実施の形態1では、共有鍵の設定と、共有鍵設定後の不正なステークホルダーによる共有鍵の不正利用を防ぐための共有鍵の無効化について説明しているが、無効化後の鍵に対して、再度共有鍵として設定するようにしてもよい。
例えば、不正ステークホルダーが、ステークホルダー管理サーバーを利用して更新処理したことにより、正規のステークホルダー環境になった場合、無効化されていた共有鍵を、再度共有鍵として設定してもよい。
より具体的には、ステークホルダー1とステークホルダー2との間で共用できる共有鍵があり、ステークホルダー2が不正と判断されると、ステークホルダー2からその共有鍵が利用できないように無効化される。
その後、不正なステークホルダー2の環境が、第2のステークホルダー管理サーバーから更新モジュールをダウンロードし、不正なステークホルダー2の環境を更新し、更新の結果、正規ステークホルダー環境となれば、無効化されていた共有鍵をステークホルダー2から再度利用できるように復活させる。
再度共有鍵として設定する処理は、実施の形態1で説明した共有鍵の設定処理を、更新されたステークホルダー2に対して行うことで実現できるので説明は省略する。
(実施の形態2)
実施の形態2では、実施の形態1とは異なる方法で、共有鍵の無効化をする例である。実施の形態1と同じ構成やフローである部分について説明を省略し、実施の形態2に特有の処理について図面を用いて説明する。
<図17:無効化詳細フロー>
図17は、共有鍵の無効化の詳細フローであり、図14のS1403を詳細化したフローである。また、図18は、図17の無効化フローの実施前(無効化前)と実施後(無効化後)とを示したものでる。以降、図17及び図18を用いて説明する。
ステップS1701とステップS1702とは、実施の形態1のS1501とS1502と同じであるので説明を省略する。
次に、S1702における共有鍵群(330)以外から、共有鍵の親鍵とは異なるマイグレート可能で共有許可である鍵をツリー内から選択する。もし、そのような鍵が存在しなければ、新たに鍵を生成する。(ステップS1703)。
後述するように、本実施の形態では、選択した鍵を共有鍵の新たな親鍵とすることで、ステークホルダー2から共有鍵を利用できないようにする。この目的を達成するためのみならば、マイグレートの可否や共有許可の有無とは関係なく共有鍵の親鍵と異なる鍵を選べばよい。しかし、ここでは、さらにマイグレートが可能であり、共有許可である鍵を選択している。
なぜ、このような鍵を選択するかについて、次の2つのケースを用いて説明する。
まず1つ目のケースは、不正なステークホルダー環境と判断されたことにより共有鍵が無効化された不正なステークホルダーが、更新処理により、正規のステークホルダー環境になった場合、再度共有鍵を利用できるように復活させるケースである。再度共有鍵を利用できるようにするには、共有鍵の親鍵をマイグレートする必要があるため、その場合に備えてマイグレートが可であり共有許可のある鍵を新たな親鍵としておく必要がある。
2つ目のケースは、3つ以上のステークホルダーで共有されている共有鍵があるケースである。例えば、ステークホルダー1,2,3で共有されている共有鍵に対し、ステークホルダー2に対してのみ無効化する場合、ステークホルダー1とステークホルダー3との間では、共有鍵を共有したままの設定にする必要がある。共有鍵の親鍵を変更すると、ステークホルダー3も共有鍵を利用することができなくなってしまう。そのため、共有鍵がステークホルダー3と共有されたままの状態を維持するために、共有鍵の親鍵の変更後、ステークホルダー1から3へ、共有鍵の親鍵をマイグレートする処理が必要となる。ステークホルダー1から3へ共有鍵の親鍵がマイグレートされれば、両ステークホルダーで共有鍵の利用が可能となる。
次に、S1703で選択された鍵を、共有鍵の親鍵として設定するので、S1703で選択された鍵と共有鍵とが親子関係になるように鍵属性情報のリンク情報508を更新する(ステップS1704)。
次に、S1703で選択された鍵で、共有鍵を暗号化する(ステップS1705)。
最後に、鍵管理テーブルを更新する(ステップS1706)。
図18は、図17の無効化フローの実施前(無効化前)と実施後(無効化後)との状態を示した例である。
図18(a)は、無効化前を示したものである。この例では、共有鍵K33とK34とがステークホルダー1及びステークホルダー2間で共有されている。
図18(b)は、ステークホルダー2の環境がリボーク対象もしくは改竄ありと判断された場合に、ステークホルダー2の環境からはK33とK34とを利用できないように無効化した後の例である。
K33及びK34の親鍵を、K31ではないマイグレート可能かつ共有可能なK11としている。このようにすると、K33とK34とがK11で暗号化され、K11はK10で暗号化されることになる。そのため、ステークホルダー2側からは、K11を復号することができず、その結果、K33とK34とも復号することもできない。したがって、K33とK34とで暗号化されたデータを、不正なステークホルダー環境による不正利用から保護することが可能となる。
以上で実施の形態2の説明を終わる。
以上のように、第2のステークホルダープログラム環境(第2のステークホルダープログラム200、共有鍵制御部2(210)、耐タンパーモジュール2(220))が外部から攻撃されたことを検知した場合、耐タンパーモジュール1(120)は前記所定の鍵を親鍵とするツリー構造に含まれる鍵以外の鍵を用いて所定のデータを暗号化し直す。この結果、共有鍵制御部2(210)は所定の鍵を親鍵とするツリー構造に含まれる鍵を用いては前記所定のデータを復号化できないので、所定の鍵を親鍵とするツリー構造に含まれる鍵以外の鍵で暗号化された所定のデータを利用できず、所定データを不正な利用から保護できる。例えば、この場合、所定の鍵が、K31であり、所定の鍵を親鍵とするツリー構造に含まれる鍵以外の鍵がK11として実現可能である。
なお、実施の形態2では、実施の形態1と同様、不正なステークホルダー環境が、更新などにより正当なステークホルダー環境になった場合に、共有鍵を再度共有させることも可能である。再度共有鍵として設定する処理は、実施の形態2で説明した共有鍵の設定処理を、更新されたステークホルダー2に対して行うことで実現できるので説明は省略する。
(実施の形態3)
本実施の形態3では、実施の形態1と実施の形態2とは異なる方法で、共有鍵の無効化をする例である。実施の形態1と実施の形態2と同じ構成やフローである部分について説明を省略し、実施の形態3に特有の処理について図面を用いて説明する。
<図19:無効化詳細フロー>
図19は、共有鍵の無効化の詳細フローであり、図14のS1403を詳細化したフローである。
ステップS1901とステップS1902とは、S1501とS1502と同じであるので説明を省略する。
次に、S1901によりリボーク対象もしくは改竄されたと判定されたステークホルダーが他のステークホルダーと共有していると判断された共有鍵にアクセスし、リボーク対象もしくは改竄されたステークホルダーに対応する鍵利用制限情報にアクセスする(ステップS1902)。
次に、共有鍵制御部は、乱数生成機能を利用し、S1902で選択された共有鍵に対応する鍵属性情報の鍵利用制限情報を、乱数で更新する(ステップS1503)。なお、鍵利用制限情報を乱数で更新するとしているが、これに限定されない。
本実施の形態によると、第1ステークホルダーが管理する第1のステークホルダー環境は、第2ステークホルダー環境が改竄されたもしくはリボーク対象であることを検知した場合、共有鍵制御部1(110)は共有鍵で暗号化されたデータを、共有鍵制御部2(210)から利用できないように、鍵属性情報の鍵利用制限情報508を書き換える。この結果、共有鍵制御部2(220)は共有鍵の鍵ロード処理が出来ないので、共有鍵で暗号化されたデータを不正な利用から保護できる。
なお、共有鍵の鍵利用制限情報だけを更新するとしているが、共有鍵の親鍵の鍵利用制限情報を更新してもよい。これは、共有鍵が複数に階層に渡って構成されている場合、共有鍵からルート方向に辿り共有鍵群(330)内の最上位層の鍵だけを無効化することで、それより子供の鍵は無効化対象とすることが可能となるからである。
以上のように、共有鍵制御部2(210)は、改竄のない第2のステークホルダー環境から生成された鍵利用制限情報507と第2のステークホルダープログラム(200)から実際に得られたPCR(223)に記録されている環境情報とを比較し、比較結果が正しい場合にのみ前記鍵を利用させる。
この結果、第2のステークホルダープログラム(200)が改竄され若しくはリボークされた場合には前記比較結果は不一致となって、共有鍵制御部2(210)は所定の鍵を用いて、所定の鍵を親鍵とするツリー構造に含まれる鍵を復号化できないので、前記所定の鍵を親鍵とするツリー構造に含まれる鍵用いて暗号化されている所定のデータを復号化できず、所定データを不正な利用から保護できる。
例えば、第2のステークホルダープログラム(200)が改竄されていれば、共有鍵制御部2(210)からK33のロードができないため、K33で暗号化されたデータD34の不正な利用から保護できる。
また、第1ステークホルダーが管理する第1のステークホルダー環境は、第2ステークホルダー環境が改竄されたもしくはリボーク対象であることを検知した場合、共有鍵制御部1(110)は、所定の鍵を親鍵とするツリー構造に含まれる鍵を、共有鍵制御部2(210)から利用できないように、鍵利用制限情報を書き換える。
この結果、共有鍵制御部2(210)は所定の鍵を用いては所定の鍵を親鍵とするツリー構造に含まれる鍵を復号化できないので、所定の鍵を親鍵とするツリー構造に含まれる鍵用いて暗号化されている前記所定のデータを復号化できず、前記所定データを不正な利用から保護できる。この場合、例えば、所定の鍵がK32で、所定の鍵を親鍵とするツリー構造に含まれる鍵がK33,K34であると、K32の利用制限情報を書き換える、もしくはK33,K34の鍵利用制限情報を書き換えることで実現できる。
なお、実施の形態1及び実施の形態2と同様、不正なステークホルダー環境が、更新などにより正当なステークホルダー環境になった場合に、共有鍵を再度共有させることも可能である。再度共有させる処理は、更新されたステークホルダーについての鍵利用制限情報を、更新後のステークホルダーの鍵利用制限情報(PCR値)に更新すればよい。
<図23:再共有化>
図23は、実施の形態3における不正なステークホルダー環境が、更新などにより正当なステークホルダー環境になった場合に、共有鍵を再度共有させるフローを示している。ここでは、ステークホルダー2の環境が、更新などにより正当なステークホルダー環境になり、共有が無効化されていたステークホルダー1の環境との共有鍵を、再度共有化する例で説明する。
まず、ステークホルダー1の環境は、不正と判断されていたステークホルダー2の環境が正当な環境に更新されたと判断する(ステップS2301)。この判断は、例えば、周期的に行われたり、電源が投入されたときや、ステークホルダー2の環境の更新が完了したときに行われる。
次に、ステークホルダー1の環境の、共有鍵制御部1(110)は、共有鍵群(330)内の鍵属性情報を参照し、ステークホルダーフィールド505のステークホルダー識別子506にステークホルダー2の識別子が登録されている鍵を選択する(ステップS2302)。
最後に、S2303で選択した鍵の鍵属性情報内の鍵利用制限情報を正当になったステークホルダーの環境情報に更新する(ステップS2303)。この例では、鍵属性情報内のステークホルダー2の識別子に対応する鍵利用制限情報が、更新などにより正当になった後のステークホルダー2の環境情報に更新される。
もし、ステークホルダー2と共有すべき鍵が、複数存在するのであれば、S2302とS2303とを繰り返し処理すればよい。
このようにすることで、ステークホルダー2の環境は、共有が無効化されていたステークホルダー1と共有する共有鍵を、再度共有鍵として利用可能となる。
(実施の形態4)
本実施の形態4では、実施の形態1、実施の形態2、及び実施の形態3とは異なる方法で、暗号化共有データを保護するする例である。他の実施の形態と同じ構成やフローである部分について説明を省略し、実施の形態3に特有の処理について図面を用いて説明する。
<図20:暗号化共有データの構造>
図20は、暗号化共有データの構造を示した図である。暗号化共有データは、暗号化データサイズ2001と、暗号化データ2002と、ステークホルダーフィールド2003とを備える。
ステークホルダーフィールド2003には、共有データにアクセス権のあるステークホルダーの情報が列挙される。図4に示した暗号化共有データD33及びD34は、ステークホルダー1とステークホルダー2とからアクセスされる例であるので、ステークホルダーフィールド505は、2つ存在することになる。
ステークホルダーフィールド2003は、ステークホルダー識別子2004と、鍵の利用制限を示す利用制限情報2005とを含む。
利用制限情報2005は、期待されるPCR値であり、耐タンパーモジュールの備えるPCR(123、223)に記録されている実際の値と比較され、実際のPCR値と期待されるPCR値が等しかった場合にのみ耐タンパーモジュールから復号結果が得られるように制限するための情報である。
<図21:暗号化共有データの復号フロー>
図21は、共有鍵制御部2(210)の暗号化共有データ復号処理のフローを示した図である。
まず、共有鍵制御部2(210)は、第2のステークホルダープログラム(200)から暗号化共有データの復号要求を受け、暗号化データ格納部40から復号対象となる暗号化共有データ340をリードする(ステップS2101)。
次に、共有鍵制御部2(210)は、鍵管理テーブル2(213)から、共有鍵を選択する(ステップS2102)。
次に、共有鍵制御部2(210)は、S2102で選択した共有鍵と、S2101でリードした暗号化共有データとをパラメータとし、耐タンパーモジュール2(220)に復号処理の要求をする(ステップS2103)。
次に、S2103で指定された共有鍵を鍵ツリーのルート鍵2からリーフ方向へと、親子関係を元に鍵を復号していき、平文の共有鍵を得て、暗号化共有データを復号する(ステップS2104)。
次に、耐タンパーモジュール2(220)は、復号要求のあった暗号化共有データの利用制限情報として設定されている期待PCR値と、実際のPCR(223)に記録されている値とを比較する(ステップS2105)。比較の結果、両者が等しければ、復号データを共有鍵制御部2(210)へ返す(ステップS2106)。比較の結果、両者が等しくないと判定されれば、復号データは、共有鍵制御部2(210)へ返されず、エラー通知のみを返す。
<図22:無効化>
図22は、暗号化共有データの復号処理を無効化するための詳細フローであり、実施の形態4における図14のS1403を詳細化したフローである。
まず、リボーク対象もしくは改竄されたと判定されたステークホルダーが、他のステークホルダーと共有している共有データを判断する(ステップS2201)。この判断処理は、暗号化共有データのデータ構造のステークホルダーフィールド2003を参照することで可能となる。
次に、S2201で判断された暗号化共有データの利用制限情報にアクセスする(ステップS2202)。
次に、共有鍵制御部は、乱数生成機能を利用し、S2202でアクセスされた利用制限情報を、乱数で更新する(ステップS1503)。なお、利用制限情報を乱数で更新するとしているが、これに限定されない。
このようにすると、リボーク対象もしくは改竄のある不正なステークホルダー環境から暗号化共有データの復号要求があったとしても、S2105の比較結果は不一致となって、暗号化共有データの復号データを得ることができず、暗号化共有データの不正利用から保護できる。
以上説明したように、共有鍵制御部2(220)は、改竄のない第2のステークホルダー環境から生成された暗号化データ利用制限情報と第2のステークホルダー環境から実際に得られた耐タンパーモジュール2(220)内のPCR(223)に記録されている環境情報とを比較し、比較結果が正しい場合にのみ暗号化データを復号させる。
この結果、第2ステークホルダー環境が改竄され若しくはリボークされた場合には前記比較結果は不一致となって、共有鍵制御部2(210)は所定の鍵を用いて、所定の鍵を親鍵とするツリー構造に含まれる鍵を用いて暗号化されている暗号化データを復号化できず、暗号化データを不正な利用から保護できる。
例えば、第2のステークホルダープログラム(200)が改竄されていれば、耐タンパーモジュール2(220)から、K33で暗号化されたD33の復号データを得ようとしても、復号結果が得られないので、D34の不正な利用から保護できる。
また、前記第1ステークホルダーが管理する第1のステークホルダー環境は、第2ステークホルダー環境が改竄されたもしくはリボーク対象であることを検知した場合、共有鍵制御部1(110)は、所定の鍵を親鍵とするツリー構造に含まれる鍵で暗号化された暗号化データを、共有鍵制御部2(210)から利用できないように、暗号化データ利用制限情報2005を書き換える。
この結果、共有鍵制御部2(210)は所定の鍵を用いて所定の鍵を親鍵とするツリー構造に含まれる鍵を用いた復号処理ができないので、前記所定データを不正な利用から保護できる
なお、実施の形態1から実施の形態4は、組み合わせて実現されてもよい。
また、実施の形態1から実施の形態4は、耐タンパーモジュール(150,250)を、TPMあるいはMTMを用いて実現する形態としている。そのためTCGで規定されるTrusted Bootでもよいし、TCG Mobile仕様で規定されるSecure Bootでもよい。また、実行されるプログラムの完全性を検証できる仕組みであればよい。
これにより、前記第1共有鍵制御部はセキュアブートする際に、前記第2共有鍵制御部が外部から攻撃されたことを検知することにより、前記第2共有鍵制御部の外部からの攻撃を判断できる。
また、ステークホルダー環境の改竄チェックは、TCGで規定されているAttestation機能を利用してもよい。Attestation機能のサーバー側の判定結果を情報処理端末10に送付し、ステークホルダーの改竄を検知してもよいし、上述したようにサーバーから配信されるリボケーションリスト14を利用してもよい。
これにより、共有鍵制御部1(110)は、外部のサーバーから、共有鍵制御部2(210)の改竄の検知、もしくはリボーク対象である旨の通知を受けることにより、不正な共有鍵制御部2(210)から共有鍵や暗号化共有データの不正利用を防止することができる。
なお、不正なステークホルダー環境が、更新などにより正当なステークホルダー環境になった場合に、暗号化共有データを再度共有させることも可能である。再度共有させる処理は、暗号化共有データの、更新されたステークホルダーについての鍵利用制限情報を、更新後のステークホルダーの鍵利用制限情報(PCR値)に更新すればよい。
なお、実施の形態4における共有鍵の再共有化のフローは、図23における処理のS2202とS2203で参照する情報が、図5の鍵属性情報でなく、図20の共有鍵暗号化データになり、更新する情報が、鍵利用制限情報508でなく、鍵利用制限情報2005になるだけなので、説明を省略する。
なお、実施の形態1から実施の形態4では、共有鍵の再共有化の処理を、不正と判断されていたステークホルダー以外のステークホルダー環境が、再共有化処理のトリガーとなっているが、不正なステークホルダー自身が、更新後、自ら自身が正当であることを検証してから、共有先であるステークホルダーに対して再度共有化の依頼を行うようにしてもよい。
(その他変形例)
なお、本発明を上記実施の形態に基づいて説明してきたが、本発明は、上記の実施の形態に限定されないのはもちろんである。以下のような場合も本発明に含まれる。
(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)上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよい。
本発明は、例えばセキュアなデータを扱う情報処理装置を製造及び販売する産業において、複数のステークホルダー間において依存関係を持たせた証明書を用いて、依存関係に従った形で鍵を共有し、複数のステークホルダー間で、セキュアな共有データを効率的に暗号化する仕組みとして利用することができる。また、本発明は、不正なステークホルダーから共有鍵へのアクセスを制限させる仕組みとして利用することができる。
10 情報処理端末
11 第1のステークホルダー管理サーバー
12 認証PCRデータベース
13 証明書データベース
14 リボケーションリスト
15 ネットワーク
16 第2のステークホルダー管理サーバー
21、22、31、32、41,42 ステークホルダー
23、24、33、34、43 TPM
100、200 ステークホルダープグラム
110、210 共有鍵制御部
111、211 マルチステークホルダー判定部
112、212 共有許可設定部
113、213 鍵管理テーブル
120、220 耐タンパーモジュール
121、221 ルート鍵
30 鍵格納部
40 暗号化データ格納部
50 証明書格納部
130 鍵群1
230 鍵群2
330 共有鍵群
140、240 暗号化データ
340 暗号化共有データ
150、250 ステークホルダー証明書
122、221 セキュアメモリ
410、411、412、413、420、421、422、423、431、432、434 鍵属性情報
123、223 PCR
501 マイグレート許可フラグ
502 共有許可フラグ
503 暗号アルゴリズム・鍵サイズ
504 鍵値
505、2003 ステークホルダーフィールド
506、2004 ステークホルダー識別子
507、2005 鍵利用制限情報
508、2006 リンク情報
601、602、603、611、612、613 鍵ポインタ
811、821 鍵ID
812、822 鍵属性情報アドレス
901 証明書バージョン
902 シリアルナンバー
903 署名アルゴリズム
904 発行者情報
905 有効期間
906 サブジェクト
907 公開鍵情報
908 TPMバージョン
909 トラストモデル識別情報
910 依存ステークホルダー証明書識別情報
911 拡張領域
912 署名データ
2001 暗号化データサイズ
2002 暗号化データ

Claims (19)

  1. 第1のステークホルダーに対応する第1共有鍵制御部と、
    第2のステークホルダーに対応する第2共有鍵制御部と、
    前記第1のステークホルダーに対応し、複数の暗号鍵を含む第1の暗号鍵群をツリー構造で管理する第1の耐タンパーモジュールと、
    前記第1の暗号鍵群に含まれる暗号鍵を用いて暗号化された所定のデータを保持するデータ保持部と、
    前記第2のステークホルダーに対応し、複数の暗号鍵を含む第2の暗号鍵群をツリー構造で管理する第2の耐タンパーモジュールと、を具備し、
    前記第2共有鍵制御部から前記第1共有鍵制御部に前記第1の暗号鍵群に含まれる鍵を共有したい旨の通知を受けると、
    前記第1共有鍵制御部は、前記第2共有鍵制御部に対応する第2のステークホルダーが前記第1共有鍵制御部に対応する第1のステークホルダーに依存する関係であるか否かを判断し、前記第2共有鍵制御部に対応する第2のステークホルダーが前記第1共有鍵制御部に対応する第1のステークホルダーに依存する関係である場合、前記第1の暗号鍵群に含まれる鍵の中から前記第2の暗号鍵群にコピー可能な所定の鍵を探して、この所定の鍵を前記第2の暗号鍵群の中にコピーし、
    前記第2共有鍵制御部は、前記第2の暗号鍵に含まれる鍵を用いて前記所定の鍵を暗号化して前記第2の暗号鍵群の中に保持することで、前記第1の暗号鍵群に含まれる前記所定の鍵より下層の鍵を共用することを特徴とする情報処理装置。
  2. 前記第2共有鍵制御部は、前記第1共有鍵制御部との間の依存関係を証明した証明書を有し、前記第1共有鍵制御部に前記第1の暗号鍵群に含まれる鍵を共有したい旨の通知を送付する際、前記証明書を送付し、
    前記第1共有鍵制御部は、前記証明書に基づいて、前記第2共有鍵制御部に対応する第2のステークホルダーが、少なくとも前記第1のステークホルダーに対応する第1の耐タンパーモジュールを利用するステークホルダーモデルであると判断した場合に、
    前記第2共有鍵制御部に対応する第2のステークホルダーが前記第1共有鍵制御部に対応する第1のステークホルダーに依存する関係であると判断することを特徴とする請求項1記載の情報処理装置。
  3. 前記第1の暗号鍵群に含まれる各鍵は、当該鍵が前記第1の暗号鍵群からコピー可能か否かを示す属性情報を有し、
    前記第1共有鍵制御部は、前記属性情報を参照して、前記第1の暗号鍵群に含まれる鍵の中から前記第2の暗号鍵群にコピー可能な所定の鍵を探すことを特徴とする請求項2記載の情報処理装置。
  4. 前記第1共有鍵制御部は、前記第1の暗号鍵群に含まれる鍵の中から前記第2の暗号鍵群にコピー可能な所定の鍵が存在しない場合、コピー可能な鍵を生成して、この生成した鍵を前記第2の暗号鍵群の中にコピーすることを特徴とする請求項1記載の情報処理装置。
  5. 前記第1共有鍵制御部は、前記第1の暗号鍵群に含まれる前記所定の鍵より下層の鍵の位置を示す位置情報を前記所定の鍵のリンク情報として生成し、このリンク情報と共に前記所定の鍵を前記第2の暗号鍵群の中にコピーすることを特徴とする請求項3記載の情報処理装置。
  6. 前記第1共有鍵制御部は、前記第1の暗号鍵群に含まれる所定の鍵の位置情報及び前記第2の暗号鍵群に含まれる所定の鍵の位置情報を、前記第1の暗号鍵群に含まれる前記所定の鍵より下層の鍵のリンク情報として生成することを特徴とする請求項5記載の情報処理装置。
  7. 前記第1共有鍵制御部と前第2共有鍵制御部とは、共用の共有鍵制御部であることを特徴とする請求項1記載の情報処理装置。
  8. 前記第1のステークホルダーが管理する第1ステークホルダー環境は、前記第2のステークホルダーが管理する第2のステークホルダー環境が改竄されたもしくはリボーク対象であることを検知した場合、前記第1共有鍵制御部は、前記所定の鍵と置換える代替鍵を前記第1の耐タンパーモジュールに生成させ、前記所定の鍵を親鍵とするツリー構造に含まれる鍵を前記代替鍵で再暗号化させると共に前記前記所定の鍵の親鍵を用いて前記代替鍵を暗号化させて、前記第2共有鍵制御部による前記所定のデータの利用を排除することを特徴とする請求項1記載の情報処理装置。
  9. 前記第1のステークホルダーが管理する第1ステークホルダー環境は、前記第2のステークホルダーが管理する第2のステークホルダー環境が改竄されたもしくはリボーク対象であることを検知した場合、前記第1共有鍵制御部は、前記所定の鍵を親鍵とするツリー構造に含まれる鍵以外の鍵を用いて前記第1の耐タンパーモジュールに前記所定のデータを暗号化し直させて、前記第2共有鍵制御部による前記所定の鍵の使用を排除することを特徴とする請求項1記載の情報処理装置。
  10. 前記第1の暗号化鍵群に含まれる前記所定の鍵を親鍵とするツリー構造に含まれる鍵は、属性情報として、前記改竄のない第2のステークホルダーが管理する第2ステークホルダー環境のハッシュ値から生成された期待値として鍵利用制限情報を有し、
    第2の耐タンパーモジュールは、前記第2のステークホルダー環境のハッシュ値から生成された実際の値としての環境情報を記憶し、
    第2の共有鍵制御部から前記第1の共有鍵制御部に対して前記第1の暗号化鍵群に含まれる前記所定の鍵を親鍵とするツリー構造に含まれる鍵の利用を依頼するときに、第2の共有鍵制御部は、前記鍵利用制限情報と前記環境情報とを比較し、比較結果が正しい場合にのみ前記鍵を利用させるように制限をすることを特徴する請求項1記載の情報処理装置。
  11. 前記第1ステークホルダーが管理する第1のステークホルダー環境は、前記第2ステークホルダー環境が改竄されたもしくはリボーク対象であることを検知した場合、前記第1の共有鍵制御部は、前記所定の鍵を親鍵とするツリー構造に含まれる鍵を、第2の共有鍵制御部から利用できないように、前記鍵利用制限情報を書き換えることを特徴とする請求項10の情報処理端末。
  12. 前記第1の暗号化鍵群に含まれる前記所定の鍵を親鍵とするツリー構造に含まれる鍵で暗号化された暗号化データは、属性情報として、前記改竄のない第2のステークホルダーが管理する第2ステークホルダー環境のハッシュ値から生成された期待値である暗号化データ利用制限情報を有し、
    第2の耐タンパーモジュールは、前記第2のステークホルダー環境のハッシュ値から生成された実際の値としての環境情報を記憶し、
    第2の共有鍵制御部から前記第1の共有鍵制御部に対して前記第1の暗号化鍵群に含まれる前記所定の鍵を親鍵とするツリー構造に含まれる鍵で暗号化されたデータの復号処理を依頼するときに、第2の共有鍵制御部は、前記暗号化データ利用制限情報と前記環境情報とを比較し、比較結果が正しい場合にのみ前記暗号化データの復号処理させるように制限をすることを特徴する請求項1記載の情報処理装置。
  13. 前記第1ステークホルダーが管理する第1のステークホルダー環境は、前記第2ステークホルダー環境が改竄されたもしくはリボーク対象であることを検知した場合、前記第1の共有鍵制御部は、前記所定の鍵を親鍵とするツリー構造に含まれる鍵で暗号化された暗号化データを、第2の共有鍵制御部から利用できないように、前記暗号化データ利用制限情報を書き換えることを特徴とする請求項12の情報処理端末。
  14. 前記第1共有鍵制御部は、第1ステークホルダー環境および第2ステークホルダー環境を環境に対して完全性をチェックしてから改竄されていない環境のみを起動する機能であるセキュアブートによってブートする際に、第2ステークホルダー環境が改竄された、もしくはリボーク対象であることを検知することを特徴とする請求項8乃至請求項13のいずれかに記載の情報処理装置。
  15. 前記第1共有鍵制御部は、外部のサーバーから、前記第2ステークホルダー環境が改竄されたもしくはリボーク対象である旨の通知を受けることで前記第第2ステークホルダー環境が改竄された、もしくはリボーク対象であることを検知することを特徴とする請求項8乃至請求項13のいずれかに記載の情報処理装置。
  16. 第1のステークホルダーに対応する第1共有鍵制御部と、
    第2のステークホルダーに対応する第2共有鍵制御部と、
    前記第1のステークホルダーに対応し、複数の暗号鍵を含む第1の暗号鍵群をツリー構造で管理する第1の耐タンパーモジュールと、
    前記第1の暗号鍵群に含まれる暗号鍵を用いて暗号化された所定のデータを保持するデー保持部と、
    前記第2のステークホルダーに対応し、複数の暗号鍵を含む第2の暗号鍵群をツリー構造で管理する第2の耐タンパーモジュールと、を具備する情報処理装置における暗号鍵の鍵管理方法であって、
    前記第1共有鍵制御部において、前記第2共有鍵制御部から前記第1共有鍵制御部に前記第1の暗号鍵群に含まれる鍵を共有したい旨の通知を受けると、
    前記第2共有鍵制御部に対応する第2のステークホルダーが前記第1共有鍵制御部に対応する第1のステークホルダーに依存する関係であるか否かを判断し、
    前記第2共有鍵制御部に対応する第2のステークホルダーが前記第1共有鍵制御部に対応する第1のステークホルダーに依存する関係である場合、前記第1の暗号鍵群に含まれる鍵の中から前記第2の暗号鍵群にコピー可能な所定の鍵を探して、この所定の鍵を前記第2の暗号鍵群の中にコピーし、
    前記第2共有鍵制御部において、前記第2の暗号鍵に含まれる鍵を用いて前記所定の鍵を暗号化して前記第2の暗号鍵群の中に保持することで、前記第1の暗号鍵群に含まれる前記所定の鍵より下層の鍵を共用することを特徴とする暗号鍵の管理方法。
  17. 第1のステークホルダーに対応する第1共有鍵制御部と、
    第2のステークホルダーに対応する第2共有鍵制御部と、
    前記第1のステークホルダーに対応し、複数の暗号鍵を含む第1の暗号鍵群をツリー構造で管理する第1の耐タンパーモジュールと、
    前記第1の暗号鍵群に含まれる暗号鍵を用いて暗号化された所定のデータを保持するデー保持部と、
    前記第2のステークホルダーに対応し、複数の暗号鍵を含む第2の暗号鍵群をツリー構造で管理する第2の耐タンパーモジュールと、を具備する情報処理装置における暗号鍵の鍵管理に用いるコンピュータプログラムであって、
    コンピュータに対して、
    前記第1共有鍵制御部において、前記第2共有鍵制御部から前記第1共有鍵制御部に前記第1の暗号鍵群に含まれる鍵を共有したい旨の通知を受けると、
    前記第2共有鍵制御部に対応する第2のステークホルダーが前記第1共有鍵制御部に対応する第1のステークホルダーに依存する関係であるか否かを判断する処理と、
    前記第2共有鍵制御部に対応する第2のステークホルダーが前記第1共有鍵制御部に対応する第1のステークホルダーに依存する関係である場合、前記第1の暗号鍵群に含まれる鍵の中から前記第2の暗号鍵群にコピー可能な所定の鍵を探して、この所定の鍵を前記第2の暗号鍵群の中にコピーする処理と、を実行させ、
    前記第2共有鍵制御部において、前記第2の暗号鍵に含まれる鍵を用いて前記所定の鍵を暗号化して前記第2の暗号鍵群の中に保持することで、前記第1の暗号鍵群に含まれる前記所定の鍵より下層の鍵を共用する処理を実行させることを特徴とするコンピュータプログラム。
  18. 第1のステークホルダーに対応する第1共有鍵制御部と、
    第2のステークホルダーに対応する第2共有鍵制御部と、
    前記第1のステークホルダーに対応し、複数の暗号鍵を含む第1の暗号鍵群をツリー構造で管理する第1の耐タンパーモジュールと、
    前記第1の暗号鍵群に含まれる暗号鍵を用いて暗号化された所定のデータを保持するデー保持部と、
    前記第2のステークホルダーに対応し、複数の暗号鍵を含む第2の暗号鍵群をツリー構造で管理する第2の耐タンパーモジュールと、を具備する情報処理装置に用いる集積回路であって、
    情報処理部と、
    この情報処理部に対して、
    前記第1共有鍵制御部において、前記第2共有鍵制御部から前記第1共有鍵制御部に前記第1の暗号鍵群に含まれる鍵を共有したい旨の通知を受けると、
    前記第2共有鍵制御部に対応する第2のステークホルダーが前記第1共有鍵制御部に対応する第1のステークホルダーに依存する関係であるか否かを判断する処理と、
    前記第2共有鍵制御部に対応する第2のステークホルダーが前記第1共有鍵制御部に対応する第1のステークホルダーに依存する関係である場合、前記第1の暗号鍵群に含まれる鍵の中から前記第2の暗号鍵群にコピー可能な所定の鍵を探して、この所定の鍵を前記第2の暗号鍵群の中にコピーする処理と、を実行させ、
    前記第2共有鍵制御部において、前記第2の暗号鍵に含まれる鍵を用いて前記所定の鍵を暗号化して前記第2の暗号鍵群の中に保持することで、前記第1の暗号鍵群に含まれる前記所定の鍵より下層の鍵を共用する処理を実行させる処理プログラムを格納したメモリと、
    を具備した集積回路。
  19. 前記第1共有鍵制御部は、
    前記第1の暗号鍵群に含まれる暗号鍵で暗号化されている前記所定の鍵を、前記暗号鍵を用いて復号し、
    復号された鍵を、前記第2の暗号鍵群に含まれる暗号鍵で再暗号化し、
    再暗号化された鍵を、前記第2の暗号鍵群の中にコピーする
    ことを特徴とする請求項1記載の情報処理装置。
JP2010517691A 2008-06-23 2009-06-04 情報処理装置、暗号鍵の管理方法、コンピュータプログラム及び集積回路 Expired - Fee Related JP5314016B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010517691A JP5314016B2 (ja) 2008-06-23 2009-06-04 情報処理装置、暗号鍵の管理方法、コンピュータプログラム及び集積回路

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2008163071 2008-06-23
JP2008163071 2008-06-23
JP2010517691A JP5314016B2 (ja) 2008-06-23 2009-06-04 情報処理装置、暗号鍵の管理方法、コンピュータプログラム及び集積回路
PCT/JP2009/002531 WO2009157142A1 (ja) 2008-06-23 2009-06-04 情報処理装置、暗号鍵の管理方法、コンピュータプログラム及び集積回路

Publications (2)

Publication Number Publication Date
JPWO2009157142A1 true JPWO2009157142A1 (ja) 2011-12-08
JP5314016B2 JP5314016B2 (ja) 2013-10-16

Family

ID=41444215

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010517691A Expired - Fee Related JP5314016B2 (ja) 2008-06-23 2009-06-04 情報処理装置、暗号鍵の管理方法、コンピュータプログラム及び集積回路

Country Status (5)

Country Link
US (1) US20110099362A1 (ja)
EP (1) EP2293490A1 (ja)
JP (1) JP5314016B2 (ja)
CN (1) CN102057618A (ja)
WO (1) WO2009157142A1 (ja)

Families Citing this family (65)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10181953B1 (en) * 2013-09-16 2019-01-15 Amazon Technologies, Inc. Trusted data verification
WO2012023050A2 (en) 2010-08-20 2012-02-23 Overtis Group Limited Secure cloud computing system and method
US9237155B1 (en) 2010-12-06 2016-01-12 Amazon Technologies, Inc. Distributed policy enforcement with optimizing policy transformations
US8769642B1 (en) 2011-05-31 2014-07-01 Amazon Technologies, Inc. Techniques for delegation of access privileges
US9178701B2 (en) 2011-09-29 2015-11-03 Amazon Technologies, Inc. Parameter based key derivation
US9203613B2 (en) 2011-09-29 2015-12-01 Amazon Technologies, Inc. Techniques for client constructed sessions
US9197409B2 (en) 2011-09-29 2015-11-24 Amazon Technologies, Inc. Key derivation techniques
US8739308B1 (en) 2012-03-27 2014-05-27 Amazon Technologies, Inc. Source identification for unauthorized copies of content
US8892865B1 (en) 2012-03-27 2014-11-18 Amazon Technologies, Inc. Multiple authority key derivation
US9215076B1 (en) 2012-03-27 2015-12-15 Amazon Technologies, Inc. Key generation for hierarchical data access
US9590959B2 (en) 2013-02-12 2017-03-07 Amazon Technologies, Inc. Data security service
US9286491B2 (en) 2012-06-07 2016-03-15 Amazon Technologies, Inc. Virtual service provider zones
US10075471B2 (en) 2012-06-07 2018-09-11 Amazon Technologies, Inc. Data loss prevention techniques
US10084818B1 (en) 2012-06-07 2018-09-25 Amazon Technologies, Inc. Flexibly configurable data modification services
US9258118B1 (en) 2012-06-25 2016-02-09 Amazon Technologies, Inc. Decentralized verification in a distributed system
US9660972B1 (en) 2012-06-25 2017-05-23 Amazon Technologies, Inc. Protection from data security threats
US9323950B2 (en) 2012-07-19 2016-04-26 Atmel Corporation Generating signatures using a secure device
US9300464B1 (en) 2013-02-12 2016-03-29 Amazon Technologies, Inc. Probabilistic key rotation
US10210341B2 (en) 2013-02-12 2019-02-19 Amazon Technologies, Inc. Delayed data access
US9367697B1 (en) 2013-02-12 2016-06-14 Amazon Technologies, Inc. Data security with a security module
US10467422B1 (en) 2013-02-12 2019-11-05 Amazon Technologies, Inc. Automatic key rotation
US10211977B1 (en) 2013-02-12 2019-02-19 Amazon Technologies, Inc. Secure management of information using a security module
US9547771B2 (en) 2013-02-12 2017-01-17 Amazon Technologies, Inc. Policy enforcement with associated data
US9705674B2 (en) 2013-02-12 2017-07-11 Amazon Technologies, Inc. Federated key management
US9608813B1 (en) 2013-06-13 2017-03-28 Amazon Technologies, Inc. Key rotation techniques
US9118467B2 (en) * 2013-03-13 2015-08-25 Atmel Corporation Generating keys using secure hardware
US9407440B2 (en) 2013-06-20 2016-08-02 Amazon Technologies, Inc. Multiple authority data security and access
CN103338450A (zh) * 2013-06-26 2013-10-02 华为技术有限公司 一种验证方法及设备
US9825759B2 (en) * 2013-07-08 2017-11-21 Alcatel Lucent Secure service management in a communication network
US9521000B1 (en) 2013-07-17 2016-12-13 Amazon Technologies, Inc. Complete forward access sessions
US9237019B2 (en) 2013-09-25 2016-01-12 Amazon Technologies, Inc. Resource locators with keys
US9311500B2 (en) 2013-09-25 2016-04-12 Amazon Technologies, Inc. Data security using request-supplied keys
US10243945B1 (en) 2013-10-28 2019-03-26 Amazon Technologies, Inc. Managed identity federation
US9172532B1 (en) * 2013-11-19 2015-10-27 Amazon Technologies, Inc. Multi-tiered encryption system for efficiently regulating use of encryption keys
US9420007B1 (en) 2013-12-04 2016-08-16 Amazon Technologies, Inc. Access control using impersonization
US9369461B1 (en) 2014-01-07 2016-06-14 Amazon Technologies, Inc. Passcode verification using hardware secrets
US9374368B1 (en) 2014-01-07 2016-06-21 Amazon Technologies, Inc. Distributed passcode verification system
US9292711B1 (en) 2014-01-07 2016-03-22 Amazon Technologies, Inc. Hardware secret usage limits
US9270662B1 (en) 2014-01-13 2016-02-23 Amazon Technologies, Inc. Adaptive client-aware session security
CN104901931B (zh) * 2014-03-05 2018-10-12 财团法人工业技术研究院 证书管理方法与装置
US10771255B1 (en) 2014-03-25 2020-09-08 Amazon Technologies, Inc. Authenticated storage operations
US9432192B1 (en) * 2014-03-28 2016-08-30 Emc Corporation Content aware hierarchical encryption for secure storage systems
US9397835B1 (en) 2014-05-21 2016-07-19 Amazon Technologies, Inc. Web of trust management in a distributed system
US9258117B1 (en) 2014-06-26 2016-02-09 Amazon Technologies, Inc. Mutual authentication with symmetric secrets and signatures
US10326597B1 (en) 2014-06-27 2019-06-18 Amazon Technologies, Inc. Dynamic response signing capability in a distributed system
US9438421B1 (en) 2014-06-27 2016-09-06 Amazon Technologies, Inc. Supporting a fixed transaction rate with a variably-backed logical cryptographic key
US9866392B1 (en) 2014-09-15 2018-01-09 Amazon Technologies, Inc. Distributed system web of trust provisioning
US10469477B2 (en) 2015-03-31 2019-11-05 Amazon Technologies, Inc. Key export techniques
US10122692B2 (en) 2015-06-16 2018-11-06 Amazon Technologies, Inc. Handshake offload
US10122689B2 (en) 2015-06-16 2018-11-06 Amazon Technologies, Inc. Load balancing with handshake offload
EP3185464B1 (en) 2015-12-21 2020-05-20 Hewlett-Packard Development Company, L.P. Key generation information trees
US10474823B2 (en) 2016-02-16 2019-11-12 Atmel Corporation Controlled secure code authentication
US10482255B2 (en) 2016-02-16 2019-11-19 Atmel Corporation Controlled secure code authentication
US10616197B2 (en) 2016-04-18 2020-04-07 Atmel Corporation Message authentication with secure code verification
US10116440B1 (en) 2016-08-09 2018-10-30 Amazon Technologies, Inc. Cryptographic key management for imported cryptographic keys
US10666443B2 (en) * 2016-10-18 2020-05-26 Red Hat, Inc. Continued verification and monitoring of application code in containerized execution environment
SG10201609090XA (en) * 2016-10-31 2018-05-30 Huawei Int Pte Ltd System and method for controlling access to encrypted vehicular data
JPWO2019026372A1 (ja) * 2017-08-04 2020-06-18 ソニー株式会社 情報処理装置、情報処理方法およびプログラム
US11539520B2 (en) * 2017-10-04 2022-12-27 Delphian Systems, LLC Emergency lockdown in a local network of interconnected devices
GB201803815D0 (en) * 2018-03-09 2018-04-25 Nchain Holdings Ltd Computer-implemented methods and systems
US20190305940A1 (en) * 2018-03-28 2019-10-03 Ca, Inc. Group shareable credentials
US11397815B2 (en) * 2018-09-21 2022-07-26 Hewlett Packard Enterprise Development Lp Secure data protection
US11399020B2 (en) 2019-06-28 2022-07-26 HCL Technologies Italy S.p.A System and method for authenticating server identity during connection establishment with client machine
US11558185B2 (en) 2021-03-19 2023-01-17 Raytheon Bbn Technologies Corp. Stream-based key management
US11804949B2 (en) * 2021-03-19 2023-10-31 Raytheon Bbn Technologies Corp. Subscriber revocation in a publish-subscribe network using attribute-based encryption

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11187013A (ja) 1997-12-24 1999-07-09 Ibm Japan Ltd 暗号鍵配信システム
US7103185B1 (en) * 1999-12-22 2006-09-05 Cisco Technology, Inc. Method and apparatus for distributing and updating private keys of multicast group managers using directory replication
EP1603001B1 (en) * 2002-08-01 2007-10-31 Matsushita Electric Industrial Co., Ltd. Apparatusses and methods for decrypting blocks of data and locating the decrypted blocks of data in memory space used for execution
WO2006114684A2 (en) * 2005-04-25 2006-11-02 Nokia Corporation Method and apparatus for group key generation
US7424398B2 (en) * 2006-06-22 2008-09-09 Lexmark International, Inc. Boot validation system and method
JP4956292B2 (ja) * 2007-06-25 2012-06-20 パナソニック株式会社 情報セキュリティ装置およびカウンタ制御方法

Also Published As

Publication number Publication date
WO2009157142A1 (ja) 2009-12-30
JP5314016B2 (ja) 2013-10-16
EP2293490A1 (en) 2011-03-09
US20110099362A1 (en) 2011-04-28
CN102057618A (zh) 2011-05-11

Similar Documents

Publication Publication Date Title
JP5314016B2 (ja) 情報処理装置、暗号鍵の管理方法、コンピュータプログラム及び集積回路
JP5281074B2 (ja) 情報セキュリティ装置および情報セキュリティシステム
US8261073B2 (en) Digital rights management method and apparatus
US8464043B2 (en) Information security device and information security system
CN110287654B (zh) 使用硬件信任根的媒体客户端装置鉴权
JP6286034B2 (ja) プロセス認証とリソースパーミッション
US8245031B2 (en) Content control method using certificate revocation lists
RU2500075C2 (ru) Создание и проверка достоверности документов, защищенных криптографически
CN110199288A (zh) 交叉平台包围区数据密封
US20100138652A1 (en) Content control method using certificate revocation lists
US20080034440A1 (en) Content Control System Using Versatile Control Structure
CN109328352A (zh) 靶向安全软件部署
JP5180203B2 (ja) メモリ装置から供給される情報を制御するシステムおよび方法
CN110199286A (zh) 利用密封包围区的数据密封
CN110199284A (zh) 交叉平台包围区身份
JP5097130B2 (ja) 情報端末、セキュリティデバイス、データ保護方法及びデータ保護プログラム
CN110214324A (zh) 密钥保管库包围区
CN110226167A (zh) 抽象包围区身份
WO2008008244A2 (en) Content control system and method using versatile control structure
JP5178716B2 (ja) 証明書取消リストを使用するコンテンツ管理システムおよび方法
Nyman et al. Citizen electronic identities using TPM 2.0
JP2009543208A (ja) 証明書連鎖を使用するコンテンツ管理システムおよび方法
JP4972165B2 (ja) アイデンティティオブジェクトを使用する制御システムおよび方法
Abbadi Digital rights management for personal networks

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120223

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130704

R150 Certificate of patent or registration of utility model

Ref document number: 5314016

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