特許第6291013号(P6291013)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ マックス プランク ゲゼルシャフト ツール フォーデルング デル ヴィッセンシャフテンの特許一覧

特許6291013匿名データの第三者の監視を実行するためのシステム及び方法
<>
  • 特許6291013-匿名データの第三者の監視を実行するためのシステム及び方法 図000002
  • 特許6291013-匿名データの第三者の監視を実行するためのシステム及び方法 図000003
  • 特許6291013-匿名データの第三者の監視を実行するためのシステム及び方法 図000004
  • 特許6291013-匿名データの第三者の監視を実行するためのシステム及び方法 図000005
  • 特許6291013-匿名データの第三者の監視を実行するためのシステム及び方法 図000006
  • 特許6291013-匿名データの第三者の監視を実行するためのシステム及び方法 図000007
  • 特許6291013-匿名データの第三者の監視を実行するためのシステム及び方法 図000008
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6291013
(24)【登録日】2018年2月16日
(45)【発行日】2018年3月14日
(54)【発明の名称】匿名データの第三者の監視を実行するためのシステム及び方法
(51)【国際特許分類】
   G06F 21/62 20130101AFI20180305BHJP
   G06F 21/57 20130101ALI20180305BHJP
   G06F 21/64 20130101ALI20180305BHJP
   H04L 9/32 20060101ALI20180305BHJP
【FI】
   G06F21/62 345
   G06F21/57
   G06F21/64
   H04L9/00 675D
   H04L9/00 675B
【請求項の数】28
【全頁数】15
(21)【出願番号】特願2016-226796(P2016-226796)
(22)【出願日】2016年11月22日
(62)【分割の表示】特願2014-189808(P2014-189808)の分割
【原出願日】2014年9月18日
(65)【公開番号】特開2017-50023(P2017-50023A)
(43)【公開日】2017年3月9日
【審査請求日】2016年11月22日
(31)【優先権主張番号】61/882,321
(32)【優先日】2013年9月25日
(33)【優先権主張国】US
(31)【優先権主張番号】14/283,383
(32)【優先日】2014年5月21日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】314016122
【氏名又は名称】マックス プランク ゲゼルシャフト ツール フォーデルング デル ヴィッセンシャフテン エー ファオ
(74)【代理人】
【識別番号】100105957
【弁理士】
【氏名又は名称】恩田 誠
(74)【代理人】
【識別番号】100068755
【弁理士】
【氏名又は名称】恩田 博宣
(74)【代理人】
【識別番号】100142907
【弁理士】
【氏名又は名称】本田 淳
(72)【発明者】
【氏名】ポール・フランシス
(72)【発明者】
【氏名】フェリックス・バウアー
(72)【発明者】
【氏名】セバスチャン・プロプスト・アイデ
(72)【発明者】
【氏名】マティアス・クレッチナー
(72)【発明者】
【氏名】クリスチャン・ダニエル・ベルネアヌ
【審査官】 青木 重徳
(56)【参考文献】
【文献】 特開2005−301550(JP,A)
【文献】 特表2009−534749(JP,A)
【文献】 特表2008−525892(JP,A)
【文献】 米国特許出願公開第2006/0095505(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/62
G06F 21/57
G06F 21/64
H04L 9/32
(57)【特許請求の範囲】
【請求項1】
ユーザデータのシーリングとアンシーリングを行うためのサーバであって、
プロセッサと、
メモリデバイスであって、前記メモリデバイスは、シーリングされた暗号キーと、暗号キーにより暗号化されたユーザデータと、それぞれがサーバの認証測定値を有する複数の認証マニフェストと、マニフェストチェッカー要素及びトラステッド・プラットフォーム・モジュールにアクセス可能なサーバアプリケーションとを有し、前記暗号キーは、前記マニフェストチェッカー要素の測定値を使用して第1のメモリデバイスの内部にシーリングされている、前記メモリデバイスと
を備え、
前記プロセッサは、前記サーバアプリケーションによって、前記マニフェストチェッカー要素を実行することで、サーバの認証測定値に対応するサーバの現在測定値を取得し、サーバの現在測定値と認証測定値とを比較し、ここで、サーバの測定値は、前記マニフェストチェッカー要素のいかなる測定値をも含んでおらず、
前記プロセッサは、サーバの認証測定値と一致するサーバの現在測定値の数が規定された閾値を超えるときには、前記サーバアプリケーションによって、前記トラステッド・プラットフォーム・モジュールが前記マニフェストチェッカー要素の現在測定値を使用して前記暗号キーをアンシーリングし、前記暗号キーを使用してユーザデータにアクセスできるようにするか、又は
前記プロセッサは、サーバの認証測定値と一致する現在測定値の数が前記規定された閾値を超えないときには、前記サーバアプリケーションによって、前記トラステッド・プラットフォーム・モジュールが前記暗号キーをアンシーリングできないようにする、サーバ。
【請求項2】
請求項1記載のサーバにおいて、
前記複数の認証マニフェストは、それぞれ、該複数の認証マニフェストを個々に認証する証明書とは別の独立した証明書によって認証される、サーバ。
【請求項3】
請求項1記載のサーバにおいて、
前記マニフェストチェッカー要素は、前記プロセッサに、前記メモリデバイスに記憶された複数の証明書に対して前記認証マニフェストを認証させる、サーバ。
【請求項4】
請求項3記載のサーバにおいて、
前記複数の証明書は、前記サーバアプリケーションの内部に符号化されている、サーバ。
【請求項5】
請求項4記載のサーバにおいて、
前記マニフェストチェッカー要素は、前記複数の証明書を含んでいる、サーバ。
【請求項6】
請求項3記載のサーバにおいて、
前記マニフェストチェッカー要素は、前記メモリデバイスに記憶された前記複数の証明書に対して前記認証マニフェストの全てが認証されたとき、及び、前記認証測定値の全てが前記現在測定値と一致しているときにのみ、前記プロセッサに、前記規定された閾値を超えていると判定させる、サーバ。
【請求項7】
請求項3記載のサーバにおいて、
前記マニフェストチェッカー要素は、前記メモリデバイスに記憶された前記複数の証明書に対して前記認証マニフェストの少なくとも一部を残した大部分が認証されたとき、及び、前記認証マニフェストの少なくとも一部を残した大部分が前記現在測定値と一致する前記認証測定値を含んでいるときにのみ、前記プロセッサに、前記規定された閾値を超えていると判定させる、サーバ。
【請求項8】
請求項3記載のサーバにおいて、
前記マニフェストチェッカー要素は、前記メモリデバイスに記憶された前記複数の証明書に対して前記認証マニフェストの少なくとも過半数が認証されたとき、及び、前記認証マニフェストの少なくとも過半数が前記現在測定値と一致する前記認証測定値を含んでいるときにのみ、前記プロセッサに、前記規定された閾値を超えていると判定させる、サーバ。
【請求項9】
請求項3記載のサーバにおいて、
前記マニフェストチェッカー要素は、前記認証マニフェストの少なくとも過半数が前記現在測定値と一致する前記認証測定値を含んでいるときにのみ、前記プロセッサに、前記規定された閾値を超えていると判定させる、サーバ。
【請求項10】
請求項1記載のサーバにおいて、
前記マニフェストチェッカー要素は、前記認証マニフェストの少なくとも1つが、前記現在測定値の1つと一致する無効測定値を含んでいるとき、前記プロセッサに、前記規定された閾値を超えていないと判定させる、サーバ。
【請求項11】
請求項1記載のサーバにおいて、
前記マニフェストチェッカー要素は、該マニフェストチェッカー要素の測定値の一部ではない第三者のリストを含んでおり、この第三者のリストは、前記認証マニフェストを認証した第三者の証明書を含んでいる、サーバ。
【請求項12】
請求項11記載のサーバにおいて、
前記マニフェストチェッカー要素は、前記第三者リストの改変を許容された評価者の証明書を含んでおり、この評価者の証明書は、前記マニフェストチェッカー要素の測定値の一部である、サーバ。
【請求項13】
請求項1記載のサーバにおいて、
前記マニフェストチェッカー要素は、当該サーバとは別のサーバの現在測定値と前記メモリデバイスに記憶されたマニフェストの認証測定値とを比較することにより、前記プロセッサに、前記別のサーバを遠隔認証させる、サーバ。
【請求項14】
請求項1記載のサーバにおいて、
前記マニフェストチェッカー要素は、前記プロセッサに、データ送信者の証明書に関して入力したユーザデータをチェックさせ、データ送信者のマニフェストがサーバアプリケーションの現在測定値と一致しているときにのみ、データ送信者により証明されたデータをアンシーリングさせる、サーバ。
【請求項15】
請求項14記載のサーバにおいて、
前記マニフェストチェッカー要素は、前記プロセッサに、認証マニフェストを提供することが許可された第三者のリストに対するデータ送信者の証明書をチェックさせる、サーバ。
【請求項16】
請求項15記載のサーバにおいて、
前記マニフェストチェッカー要素は、前記規定された閾値を超えているかどうかに関する基準を決めるために、前記プロセッサにデータ送信者の証明書をチェックさせる、サーバ。
【請求項17】
改変可能なサーバを使用して、当該サーバの測定値に従って、データを信頼性高くシーリング及びアンシーリングするための方法であって、
前記サーバに、データのシーリング及びアンシーリングのための改変可能なトラステッド・プラットフォーム・モジュールと、このトラステッド・プラットフォーム・モジュールの許可又は不許可を決める改変不能なチェッカー要素とを構築するステップと、
前記チェッカー要素を介して、前記トラステッド・プラットフォーム・モジュールが予め定めた基準に適合しているか否かを判定するステップと、
前記トラステッド・プラットフォーム・モジュールが予め定めた基準に適合していると前記チェッカー要素が判定したときに、前記トラステッド・プラットフォーム・モジュールがチェッカー要素の測定値を使用してデータをシーリング/アンシーリングできるようにするか、又は
前記トラステッド・プラットフォーム・モジュールが予め定めた基準に適合していないと前記チェッカー要素が判定したときに、前記トラステッド・プラットフォーム・モジュールがデータをシーリング/アンシーリングできないようにするステップと
を含む方法。
【請求項18】
請求項17記載の方法において、
前記チェッカー要素は、前記トラステッド・プラットフォーム・モジュールの現在測定値と、第三者により認証されたマニフェストに含まれる認証測定値とを比較することにより、前記トラステッド・プラットフォーム・モジュールが予め定めた基準に適合しているか否かを判定する、方法。
【請求項19】
請求項18記載の方法において、
前記チェッカー要素は、当該チェッカー要素内に記憶された複数の証明書に対してそれぞれのマニフェストを認証する、方法。
【請求項20】
請求項19記載の方法において、
前記チェッカー要素の測定値は、データのシーリングとアンシーリングのために使用されるものであり、且つ、前記複数の証明書を含んでいない、方法。
【請求項21】
請求項19記載の方法において、
前記チェッカー要素は、前記複数の証明書のうち、評価者により認証された第三者リスト内に含まれる証明書だけを受け入れる、方法。
【請求項22】
請求項18記載の方法において、
前記チェッカー要素は、メモリデバイスに記憶された複数の証明書に対して全ての認証マニフェストが認証されているか否か、及び、現在測定値と認証測定値が完全に一致しているか否かのみに基づいて、前記トラステッド・プラットフォーム・モジュールが予め定めた基準に適合しているか否かを判定する、方法。
【請求項23】
請求項18記載の方法において、
前記チェッカー要素は、メモリデバイスに記憶された複数の証明書に対して前記認証マニフェストの少なくとも一部を残した大部分が認証されているか否か、及び、前記認証マニフェストの少なくとも一部を残した大部分が認証測定値を含んでいるか否かのみに基づいて、前記トラステッド・プラットフォーム・モジュールが予め定めた基準に適合しているか否かを判定する、方法。
【請求項24】
請求項18記載の方法において、
前記チェッカー要素は、メモリデバイスに記憶された複数の証明書に対して前記認証マニフェストの少なくとも過半数が認証されているか否か、及び、前記認証マニフェストの少なくとも過半数が認証測定値を含んでいるか否かのみに基づいて、前記トラステッド・プラットフォーム・モジュールが予め定めた基準に適合しているか否かを判定する、方法。
【請求項25】
請求項18記載の方法において、
前記チェッカー要素は、前記認証マニフェストの少なくとも過半数が認証測定値を含んでいるか否かのみに基づいて、前記トラステッド・プラットフォーム・モジュールが予め定めた基準に適合しているか否かを判定する、方法。
【請求項26】
請求項18記載の方法において、
前記チェッカー要素は、前記認証マニフェストの少なくとも1つが前記現在測定値の1つと一致する無効測定値を含んでいるか否かに基づいて、前記トラステッド・プラットフォーム・モジュールが予め定めた基準に適合しているか否かを判定する、方法。
【請求項27】
請求項17記載の方法において、
前記チェッカー要素は、前記トラステッド・プラットフォーム・モジュールが、入力データに添付されたデータ送信者の証明書に対応する基準に適合しているか否かを判定する、方法。
【請求項28】
請求項27記載の方法において、
前記基準は、改変可能なトラステッド・プラットフォーム・モジュールの認証測定値として設定されており、前記チェッカー要素は、前記データ送信者の証明書により確認された1またはそれ以上の認証マニフェストから前記認証測定値を取得する、方法。
【発明の詳細な説明】
【技術分野】
【0001】
本出願は、2013年9月25日に出願された米国仮出願第61/882321号に基づく優先権の利益を主張するものであり、当該仮出願の全体が参照として含められている。
【0002】
本発明は、個人的なユーザデータを取り扱うサーバを信頼できる第三者機関(以下では単に「第三者」という)により監視するための方法及びシステムに関する。
【背景技術】
【0003】
ユーザがその個人的なデータを遠隔サーバに供給する(預ける)という機会が増えてきている。サーバの運営組織(サーバ組織)では、ユーザのデータを1または他の方法(例えば個人情報の保護方針について説明した文書による)で保護することを規定している。ユーザは、サーバの運営組織(サーバ組織)を全面的に信頼することはできず、サーバの運営組織(サーバ組織)による保護の規定に応えられるような信頼できる第三者の保証を欲している。しかし今日ではこれが脆弱な手法で行われているのが実情である。例えば、第三者は、サーバソフトウェアを調査して、ソフトウェアが保護の規定を忠実に遂行している旨を証明しなければならない。しかしながら、サーバの運営組織(サーバ組織)は、そのソフトウェアを事後的に簡単に改変して保護の規定に背くことが可能である。このため、信頼できる第三者がサーバソフトウェアを制御することにより、当該第三者の認証が無い限りにおいてサーバの運営組織(サーバ組織)がそのソフトウェアを改変することができないようにしたシステム及び方法が要求されている。さらに、ユーザは、サーバに対して個人的なデータを伝送する前に、このような制御が存在している(実行されている)ことについて保証(認証)を得なければならない。
【発明の概要】
【発明が解決しようとする課題】
【0004】
本発明の一態様では、独立した複数の第三者が、当該複数の第三者のうちの一部または全部がソフトウェアを認証しない限りにおいて、特定のサーバアプリケーションソフトウェアの動作を停止する(無効にする)ことができる。サーバに対して個人的なデータを供給している(預けている)ユーザは、この個人的なデータを独立した第三者が監視している旨の暗号証明を得ることができる。加えて、サーバは、以前に起動したことがある全てのバージョンのソフトウェアの不正開封防止ログ(tamper-proof log)を生成することができる。これにより、いずれのユーザも、過去にサーバ内で起動したことがあるソフトウェアを正確に把握することができる。このモデルによれば、サーバにデータを送る前に、サーバアプリケーションソフトウェアが当該データを安全に取り扱うことについての保証(信頼)をクライアントに与えることができる。
【図面の簡単な説明】
【0005】
上述した本発明の特徴および利点ならびに他の特徴および態様については、以下の説明および添付図面を参照することでより良く理解することができる。
図1】保護されたユーザデータを取り扱うためのサーバを示す概略図である。
図2】サーバソフトウェアの第三者認証を得るための方法を示す概略図である。
図3】サーバソフトウェアの第三者認証を確認するための方法を示す概略図である。
図4】サーバソフトウェアの認証を受けた第三者のリストを管理するための方法を示す概略図である。
図5図1のサーバを経由して保護されたユーザデータにアクセス(供給または問い合わせ)するための方法を示す概略図である。
図6】本発明の一実施形態によるサーバとクライアントとの間における遠隔認証接続モードを示す概略図である。
図7】本発明の別実施形態によるサーバとクライアントとの間における遠隔認証接続モードを示す概略図である。
【発明を実施するための形態】
【0006】
添付図面を参照して、本発明の典型的な実施形態について詳細に説明する。添付図面においては、同一または類似の構成要素に同一の符号を使用する。
【0007】
図1に示すように、サーバ100は、個人的なまたは保護されたユーザデータ10を取り扱うためのサーバアプリケーションソフトウェア110を起動および実行する。サーバ100は、その機能的な構成要素として、トラステッド・プラットフォーム・モジュール(Trusted Platform Module)(以下では「TPM」と呼ぶ)120を有している。以下ではTPM120による機能を「TPM機能」と呼ぶことにする。このTPM機能は、TPMハードウェアとこれに対応するマザーボードファームウェアにより実現され、またはサーバのCPUの内部に実装されている。TPM120は、シーリング/アンシーリング機能部(sealing and unsealing functionality)130と遠隔認証機能部(remote attestation functionality)140を有している。シーリング/アンシーリング機能部130と遠隔認証機能部140は、例えば、トラステッド・コンピュータ・グループ(Trusted Computing Group)によって定義されている。またサーバ100は、トラステッドブート機能部(Trusted Boot functionality)(以下では「ブート機能部」と呼ぶ)150を有している。
【0008】
ブート機能部150は、サーバ内に設けられた各種のソフトウェアの起動時間(ブート時間)をモニタリングし、これらのソフトウェアの「測定値(測定結果)(measurements)」を記憶する。記憶される測定値は、例えば、ソフトウェアのハッシュ値やその他のファイル(例えばソフトウェアの構成ファイル)として実行可能である。測定値(ハッシュ値等)は、TPM120の内部に、プラットフォーム・コンフィギュレーション・レジスターズ(以下では「PCRs」と呼ぶ)として記憶される。ブート機能部150は、起動処理の全要素を測定するPCRsおよび選択的に追加されたソフトウェアのPCRsを把握する。ブート機能部150は、例えば、TrustedGRUBによって実装される。PCRsは、起動処理の各要素が選択的に追加されたソフトウェアと同様にサーバ上のソフトウェア動作として実現されることを保証する。
【0009】
シーリング/アンシーリング機能部130は、TPM120内で、PCRsの値に従って、暗号化データと復号化データを参照することができる。特に、TPMがシーリング機能の一部としてデータを暗号化するとき、シーリング/アンシーリング機能部130は、特定のPCRsの値を記録する。TPMがデータを復号化(アンシーリング)するとき、シーリング/アンシーリング機能部130は、暗号化時(シーリング時)の特定のPCRsの値と同じ値のときにだけ、データの復号化(アンシーリング)が可能である。実際上、データを暗号化したソフトウェアだけがこの暗号化データを復号化することができる。
【0010】
TPM120は、遠隔認証機能部140を認証して、遠隔操作デバイスに対して、PCRの測定値の暗号証明を実行する(させる)。この暗号証明は、TPMの製造業者によって署名された証明書に基づいて、当該製造業者がTPM120内にインストールした永久キーを認証することにより実行される。
【0011】
本実施形態では、ブート機能部150により測定されて選択的に追加されたソフトウェアが、マニフェスト・チェッカー・ソフトウェア(以下では「MC」または「MCソフトウェア」と呼ぶ)160を含んでいる。ブート機能部150により把握されたPCRsのセットは、MCのPCRsを含んでおり、以下ではこれを「シーリングPCRs」と呼ぶ。これは、サーバ上におけるユーザデータのシーリングとアンシーリングがPCRsのセットが存在するときにだけ実行されるからである。
【0012】
本実施形態では、ブート機能部150とは別の構成要素であるマニフェストチェッカー(MC)160が、サーバ100を動作不能状態とすることなくサーバアプリケーションソフトウェア(SA)110のアップデートを許容するために、サーバアプリケーションソフトウェア(SA)110を具体的に測定(監視)する。サーバアプリケーションソフトウェア(SA)110は、ユーザデータの保護を保証するためのソフトウェアの全構成要素、例えば、OS、環境設定ファイル(構成ファイル)、SELinuxポリシー、アプリケーションバイナリーを含んでいる。しかし、サーバアプリケーションソフトウェア(SA)110は、マニフェストチェッカー(MC)160の測定値を含んでいない。サーバアプリケーションソフトウェア(SA)110の現在測定値を含むPCRまたはPCRsは「SA PCRs」と呼ばれる。マニフェストチェッカー(MC)160は、「SA PCRs」と、1つまたはそれ以上のマニフェスト200の内部に記憶された測定値とを比較する。ここで、マニフェスト200とその内部に記憶された測定値は、図2を参照して詳述する信頼できる第三者により認証されたものである。
【0013】
図2に示すように、サーバ100は、それぞれ異なる複数の第三者(A、B等)に由来する複数のマニフェスト(200A、200B等)を記憶している。それぞれの第三者は、自らのマニフェスト200(当該マニフェストを構成するソフトウェアの測定値)を認証する。この認証のための方法の1つとして、第三者が、証明書(certificate)240によって確認された署名(signature)230を用いて、マニフェスト200に署名することができる。例えば、第三者は、それぞれのプライベートキー230(230A、230B、230C)を用いて、それぞれのマニフェスト200(200A、200B、200C)に署名することができる。第三者は、それぞれのプライベートキー230(230A、230B、230C)を用いることで、それぞれのマニフェスト200(200A、200B、200C)を供給するための安全な通信プロトコル、例えばSSLやIPSECを確立および認証することができる。証明書240は、第三者のそれぞれのプライベートキー230(230A、230B、230C)に対応する公開キー240(240A、240B、240C)とすることができる。証明書240は、サーバ100の内部にマニフェストチェッカー(MC)160の一部として記憶されており、マニフェストチェッカー(MC)160の測定値の一部として含まれている。
【0014】
図3に示すように、マニフェストチェッカー(MC)160は、サーバ100の一部であり、サーバ100の動作を制御するものである。マニフェストチェッカー(MC)160は、サーバ100の起動要求に応じて、サーバアプリケーションソフトウェア(SA)110の少なくとも1つの測定値(SA PCR)を取得し、次のような処理ステップを実行する。
【0015】
『MCa1.(310)』
マニフェストチェッカー(MC)160は、記憶されたマニフェスト200を読み出す。
【0016】
『MCa2.(320)』
マニフェストチェッカー(MC)160は、読み出したマニフェスト200を認証(確認)する。マニフェスト200を認証(確認)するために用いられる証明書240は、ブート機能部150(図1)により用いられるマニフェストチェッカー測定値に含まれている。マニフェスト・チェッカー・ソフトウェア(MC)160は、認証(確認)していない全てのマニフェスト200を無視する。
【0017】
『MCa3.(330)』
マニフェストチェッカー(MC)160は、認証(確認)したマニフェスト200と、PCRsの現在測定値とを比較する。この比較は少なくとも、上述した「SA PCRs」を含んでいる。
【0018】
『MCa4.(340)』
マニフェストチェッカー(MC)160は、マニフェスト200の大部分が「SA PCRs」の現在測定値と一致していれば、サーバアプリケーションソフトウェア(SA)110とのアクセスが可能になる。逆に、マニフェストチェッカー(MC)160は、マニフェスト200の大部分が「SA PCRs」の現在測定値と一致していなければ、サーバアプリケーションソフトウェア(SA)110とのアクセスが不能になる。例えば、マニフェストチェッカー(MC)160は、全てのマニフェスト200が一致していることをアクセス条件としてもよいし、全てよりも少ない(大部分の)マニフェスト200が一致していることをアクセス条件としてもよい。
【0019】
図1を参照して前述したように、保護されたユーザデータ10は、シーリング/アンシーリング機能部130によりシーリング(暗号化)されて、サーバ100内の不揮発性メモリ(例えばディスクメモリやフラッシュメモリ)に記憶される。この処理は、全てのユーザデータを直接的にシーリング(暗号化)することで行ってもよいし、ユーザデータを暗号化および復号化するためのシーリングキーを使って効率的に行ってもよい。ユーザデータを暗号化および復号化するためのキーは、アンシーリングされてRAMシステムにて使用される。マニフェストチェッカー(MC)160とサーバアプリケーションソフトウェア(SA)110の少なくとも一方は、シーリング/アンシーリング機能部130により、保護されたユーザデータ10のシーリング/アンシーリングを行うか、TPM120によりこれらのデータのシーリング/アンシーリングを行うべき旨の要求を出す。あるいは、TPM120がCPUに埋め込まれている場合には、CPUの内部でキーがアンシーリングされて暗号化および復号化のために使用される。このようにキーがCPUから分離することはあり得ない。サーバアプリケーションソフトウェア(SA)110に代えて、マニフェストチェッカー(MC)160が、シーリング/アンシーリング機能部130によりデータのシーリング/アンシーリングを行ってもよい。
【0020】
本実施形態ではシーリングPCRsのみによってデータがシーリングされる。これは、マニフェストチェッカー(MC)160またはブート機能部の何らかの構成要素が改変されたとしても、TPM、MCまたはSAは、もはや、保護されたユーザデータ10にアクセス(暗号化や復号化)するためのキーをアンシーリングできないことを意味している。これは、たとえマニフェストチェッカー(MC)160がシーリング/アンシーリング機能部130またはサーバアプリケーションソフトウェア(SA)110と繋がっていても同様である。
【0021】
例えば、図2に示すように、第三者であるA、Bが、各自で生成したマニフェスト200A、200Bに署名するために用いるプライベートキー230A、230Bを保持している場合を考える。これらのマニフェスト200(200A、200B)は、サーバ100の内部に伝送されて記憶される。マニフェストチェッカー(MC)160は証明書240を含んでおり、この証明書240は、第三者であるA、Bのプライベートキー230(230A、230B)と対応する、第三者であるA、Bのための公開キー240(240A、240B)である。各マニフェスト200(200A、200B)は、上述の『MCa2.(320)』において、記憶された証明書としての公開キー240(240A、240B)に従ってこれに対応するプライベートキー230(230A、230B)による署名がなされたときに、これが認証される。つまり、証明書としての公開キー240(240A、240B)はシーリングPCRに含まれる構成要素である。
【0022】
第三者がそのマニフェストに署名する方法とは別の方法について説明する。この別の方法では、マニフェストチェッカー(MC)160が、第三者(A、B等)のための公開キーを含む証明書240を使用して、SSLといった安全な通信チャンネルを経由して、第三者(A、B等)を認証する。証明書240は、保護されたユーザデータ10をシーリングするために用いるマニフェストチェッカー(MC)160の測定値220の一部である。
【0023】
全ての第三者がマニフェストのマッチングを行うことを要求する方法(上述の『MCa4.(340)』)とは別の方法について説明する。この別の方法では、マニフェストチェッカー(MC)160が、第三者の一部だけがマニフェストのマッチングを行うことを要求する。例えば、3つの第三者が存在する場合を考えたとき、マニフェストチェッカー(MC)160は、そのうちの2つの第三者がマニフェストのマッチングを行うことを要求する。さらに別の方法では、マニフェストチェッカー(MC)160が、まず、第三者の一部だけがマニフェストのマッチングを行うことを要求し、その後、追加の第三者がマニフェストのマッチングを行うことを要求する。後者のタイミングまでに追加のマニフェストが供給不能な場合、マニフェストチェッカー(MC)160は、サーバアプリケーションソフトウェア(SA)110を停止(無効)にする。例えば、3つの第三者が存在する場合を考えたとき、マニフェストチェッカー(MC)160は、まず、そのうちの1つの第三者がマニフェストのマッチングを行うことを要求し、その後の一週間以内に、2番目の第三者がマニフェストのマッチングを行うことを要求する。マニフェストのマッチングを行う最小の人数、及び/又は、マッチングのスケジュールは、マニフェストチェッカー(MC)160の測定値の一部である。この場合、マニフェストのマッチングを行う最小の人数が以前と比べて改変されると、ユーザデータ10のアンシーリング(復号化)が不可能となる。
【0024】
本実施形態では、マニフェスト200が以前のマニフェストの測定値を無視する(無効にする)。例えばマニフェスト200は、1またはそれ以上の測定値(無効測定値)を含むとともに、この測定値(無効測定値)のセットと一緒のソフトウェアは起動しない(無効である)ことを示す追加情報(文字列)を含んでいる。これは例えば、以前の測定値(無効測定値)と一緒のソフトウェアに安全性の欠陥が見つかったときに、そのソフトウェアを二度と起動できないようにすることを意味しており、有用な作用効果である。
【0025】
以下では図1図3を参照して、本実施形態のシステムと方法の1つの使用例について説明する。サーバ100は、該サーバ100がユーザデータ10をどのようにして保護するかという個人情報保護に関する方針を実行する。個人情報保護に関する方針では、その方針で規定されたデータ保護が行なわれていないシステムによってはユーザデータ10を絶対に取り扱わない旨の取り決めがなされている。第三者であるA、Bは、サーバアプリケーションソフトウェア(SA)110を調べて、これが個人情報保護に関する方針を満足していることを確認する。これらの第三者はそれぞれ署名キー230とこれに対応する証明書240を有している。これらの第三者は前もって証明書240をサーバ組織に提供しており、サーバ組織は、提供された証明書240をマニフェストチェッカー(MC)160にて一括管理する。サーバ100のソフトウェアが個人情報保護に関する方針に従っていることを第三者が確認したとき、第三者はそれぞれ、マニフェスト200に対応するキー230を生成してこれに署名する。マニフェスト200とこれに対応するキー230は、「シーリングPCRs」や「SA PCRs」を含んでいる。
【0026】
本実施形態では、例えば図4に示すように、生成されたマニフェストによって認証された第三者のリストを改変することが望ましい。図3の実施形態では、マニフェストチェッカー(MC)160に証明書240を追加または削除することにより、サーバアプリケーションソフトウェア(SA)110によるユーザデータ10のアンシーリングを不能にすることができる。第三者認証のリストが改変されたときにユーザデータが無くなるのを防止するために、図4では、マニフェストの追加の種類または層を含む第三者リスト400を使用している。この第三者リスト400は、マニフェストを生成する認証された第三者(A、B、C)の証明書240を識別することができる。しかし、この第三者リスト400に含まれる証明書240は、TPM120により使用されるマニフェストチェッカーの測定値の一部ではない。むしろ、マニフェストチェッカーの測定値は、第三者リスト400の生成を許可された第三者のための証明書410のみを含むものである。
【0027】
図4を参照して、第三者であるCとDが、それぞれ、プライベートキー420Cと420Dを使用して、第三者リスト400Cと400Dを生成してこれに署名する場合について説明する。第三者リスト400は、第三者であるA、B、Cのための証明書(公開キー)240を含んでいる。マニフェストチェッカー(MC)160は、第三者であるCとDのための証明書(公開キー)410を保持している。この証明書(公開キー)410は「シーリングPCR」の測定値の一部である。これに対し証明書(公開キー)240はもはや「シーリングPCR」の測定値の一部ではない。
【0028】
マニフェストチェッカー(MC)160は、次のような処理ステップを実行する。
【0029】
『MCb1.430』
マニフェストチェッカー(MC)160は、記憶された第三者リスト400を読み出す。
【0030】
『MCb2.440』
マニフェストチェッカー(MC)160は、証明書410に対して第三者リスト400を認証する。マニフェストチェッカー(MC)160は、認証失敗した全ての第三者リストを無視(破棄)する。
【0031】
『MCb3.』
マニフェストチェッカー(MC)160は、認証成功した第三者リスト400内の第三者A、Bに対応する証明書を使用して、上述した『MCa1.(310)』から『MCa4.(340)』の処理を実行する。
【0032】
マニフェストチェッカー(MC)160は、第三者リスト400が高精度に一致しないときは、『MCb3.』の処理を実行しない。あるいは、マニフェストチェッカー(MC)160は、全ての第三者リスト400に共通する第三者により認証されたマニフェストだけを使用して、『MCb3.』の処理を実行してもよい。さらには、マニフェストチェッカー(MC)160は、いずれかの第三者リストに含まれる第三者により認証されたマニフェストを使用してもよい。マニフェストチェッカー(MC)160は、第三者リストに十分な数の第三者がリストアップされていないとき、『MCb3.』の処理を実行しない。第三者の最小数は、シーリング/アンシーリング機能部130のために認証されたコードベースの一部である。あるいは、マニフェストは安全性の高いセッション確立の間に認証されてもよい。
【0033】
図5に示すように、評価者としての第三者C、Dは、マニフェスト生成者である第三者A、Bがサーバソフトウェアを調査する権限を有しているか否かを評価する(500)。評価者としての第三者C、Dは、それぞれ、署名キー420とこれに対応する証明書410を生成する(510)。評価者としての第三者C、Dは、その証明書410C、410Dをサーバ組織に提供する(520)。サーバ組織は、マニフェストチェッカー160内に証明書を含んでいる。評価者としての第三者C、Dは、それぞれの第三者リスト400C、400Dを提供することにより、マニフェスト生成者である第三者A、Bに対して権限を与える。第三者リスト400C、400Dは、第三者A、Bのための証明書を含んでいる。
【0034】
本実施形態では、図1に示すように、サーバ100が、現在および過去にサーバにより動作されたソフトウェアによる全ての測定値の不正開封防止ログを記憶している。例えばマニフェストチェッカー160がログ170を生成することができる。これを実現するための構成として、サーバ100またはマニフェストチェッカー160は、そのPCRが時々刻々と変化するログ170へのエントリー権(PCR値の参照権)を生成することができる。ログエントリーは、過去のログエントリーのハッシュ値に沿ったPCRの測定値(次の過去のログエントリーとなるログエントリーのハッシュ値)を含んでいる。このログは、遠隔認証部250(図2)の一部として確立された安全性の高い経路を介して要求および伝送される。同様に、サーバ100(さらにはマニフェストチェッカー160)は、サーバが受け取るすべてのマニフェストの不正開封防止ログを生成する。
【0035】
図6に示すように、遠隔システム(クライアント600)は、サーバ100との接続を確立し、クライアントは、第三者であるA、B、Cの少なくとも一部がサーバを認証したこと(第三者認証)を確認する。つまりクライアントがサーバのユーザとなり、クライアントがピアサーバとなり、サーバのセットがクラスターとして動作し、サーバからサーバへユーザデータ10を伝送することが可能になる。
【0036】
本実施形態では、クライアント600が第三者のための公開キー(証明書)240を記憶している。サーバ100の遠隔認証部140が遠隔認証処理を行っている間、クライアントは、サーバのためのPCR値(「シーリングPCRs」と「SA PCRs」)を取得する。遠隔認証部140は、クライアント600に対して、サーバ100が有効なTPM120を有していること及びPCRsが適切に生成されていることについての確認を行う。クライアント600は、サーバからマニフェスト200を取得する。クライアントは、該クライアントが記憶した第三者の証明書240を使用してマニフェストを認証する(320)。またクライアントは、該クライアントが記憶した第三者の証明書240を使用して、マニフェストPCR値と、サーバの遠隔認証部140により提供されたPCR値とを比較する(330)。マニフェスト200が認証され、且つ、比較の結果として両PCR値が一致すると(320、330)、クライアントが適切に認証されたサーバと通信することができるようになる。比較処理においては、「シーリングPCRs」と「SA PCRs」の両方が比較の対象となる。クライアント(ユーザまたはピアサーバ)とサーバ100とが適切に認証された接続関係になると、ユーザデータの伝送が可能になる。
【0037】
本実施形態では、遠隔認証部140による遠隔認証処理の間、クライアント600が第三者のマニフェスト200を取得する。この処理はサーバハッシュ602により安全性が確保された状態で実行される。サーバハッシュ602は、遠隔認証(トラステッドコンピュータグループによって特定される)を目的としてクライアントにより発行されるチャレンジ610を含んだマニフェスト200からなる。マニフェストのハッシュとチャレンジは、PCRsのような他の値と一緒に、TPM120が署名すべき新たなチャレンジ620を生成する。マニフェスト200は、新チャレンジのTPMの署名630およびその他の値と同様に(一緒に)クライアントに戻される。クライアントは、TPMにより署名された元のチャレンジとマニフェストのハッシュに基づいて、戻された新チャレンジと同じものを再生成する。そして、再生成した新チャレンジが適切に署名されると(新チャレンジ620と一致すると)、クライアントは、マニフェストがサーバによって伝送されたことを確認することができる。
【0038】
図7は、別の実施形態を示している。この別の実施形態では、クライアント600が、公開キー630を使用して、サーバ100との間で安全性の高い接続経路640を確立する。公開キー630は、遠隔認証部140による遠隔認証処理の間にサーバから伝送される。公開キー630は、図6のマニフェスト200のときと同じ方法(すなわちTPMにより署名されたチャレンジで公開キーをハッシュする)により認証される。サーバ100は、安全性の高い接続経路640を介して、クライアントに対してマニフェスト200を伝送する。
【0039】
本明細書は、ベストモードを含む幾つかの実施形態を例示的に開示しており、当業者であれば、本発明の実施形態に様々な装置やシステムや方法を組み込んでこれを実施することができる。本発明の技術的範囲は、クレームの記載及びこれに当業者が適宜の設計変更を付加した範囲にまで及ぶものとする。つまり、このような設計変更を付加した他の例は、これがクレームの文言から相違しない限りにおいて、あるいは、これがクレームの文言と実質的な相違がなく等価である限りにおいて、クレームの範囲に含まれるのである。
【0040】
本明細書で使用する構成要素またはステップは、単数形で記載し、“a”または“an”の記載は、その構成要素またはステップが複数あることが発明の必須の構成要件として明示的に述べられない限りにおいて、その構成要素またはステップが複数あることを除外しないように理解するべきである。また、本発明の「一実施形態(one embodiment)」という記載は、これに付加的な特徴を組み込んだ実施形態を排除して解釈されることを意図するものではない。さらに、明確にそうではない旨の記載がない限りにおいて、“comprising”、“including”または“having”の記載は、たとえ本発明の1または複数の構成要素に付加的な特徴を組み込んだとしても、本発明の技術的範囲に含まれるという意味で使用する。
【0041】
上述した方法およびシステムにおいては、本発明の思想および範囲から逸脱することなく、各種の変更を行うことができる。このため、本明細書と図面に示されているのは、本発明のコンセプトのほんの一例にすぎないと解釈するべきであり、本発明の範囲がこれに限定されるべきものと解釈してはならない。
図1
図2
図3
図4
図5
図6
図7