【誤訳訂正書】
【提出日】平成28年4月18日(2016.4.18)
【誤訳訂正１】
【訂正対象書類名】特許請求の範囲
【訂正対象項目名】全文
【訂正方法】変更
【訂正の内容】
【特許請求の範囲】
【請求項１】
ユーザデータのシーリングとアンシーリングを行うためのサーバであって、
プロセッサとメモリデバイスを有すること；
前記メモリデバイスは、暗号キーと、前記暗号キーにより暗号化されたユーザデータと、それぞれがサーバの認証測定値を有する複数の認証マニフェストと、マニフェストチェッカー要素とサンドボックス要素を有するサーバアプリケーションとを有すること；
前記暗号キーは、前記マニフェストチェッカー要素の測定値を使用して第１のメモリデバイスの内部にシーリングされること；
前記プロセッサは、前記サーバアプリケーションによって、前記マニフェストチェッカー要素を実行することで、サーバの認証測定値に対応するサーバの現在測定値を取得し、サーバの現在測定値と認証測定値とを比較し、且つ、サーバの測定値は、前記マニフェストチェッカー要素のいかなる測定値をも含んでいないこと；及び
前記プロセッサは、サーバの現在測定値と認証測定値が十分に一致しているときには、前記サーバアプリケーションによって、前記サンドボックス要素を実装することで、前記マニフェストチェッカー要素の現在測定値を使用して前記暗号キーをアンシーリングし、アンシーリングした前記暗号キーを使用してユーザデータにアクセスすること；又は
前記プロセッサは、サーバの現在測定値と認証測定値が十分に一致していないときには、前記サーバアプリケーションによって、前記サンドボックス要素を実装しないこと；
を特徴とするサーバ。
【請求項２】
請求項１記載のサーバにおいて、
前記複数の認証マニフェストは、それぞれ、該複数の認証マニフェストを個々に認証する証明書とは別の独立した証明書によって認証される、サーバ。
【請求項３】
請求項１記載のサーバにおいて、
前記マニフェストチェッカー要素は、前記プロセッサに、前記メモリデバイスに記憶された複数の証明書に対して前記認証マニフェストを認証させる、サーバ。
【請求項４】
請求項３記載のサーバにおいて、
前記複数の証明書は、前記サーバアプリケーションの内部に符号化されている、サーバ。
【請求項５】
請求項４記載のサーバにおいて、
前記マニフェストチェッカー要素は、前記複数の証明書を含んでいる、サーバ。
【請求項６】
請求項３記載のサーバにおいて、
前記マニフェストチェッカー要素は、前記メモリデバイスに記憶された前記複数の証明書に対して前記認証マニフェストの全てが認証されたとき、及び、前記認証測定値の全てが前記現在測定値と一致しているときにのみ、前記プロセッサに、サーバの現在測定値と認証測定値が十分に一致していると判定させる、サーバ。
【請求項７】
請求項３記載のサーバにおいて、
前記マニフェストチェッカー要素は、前記メモリデバイスに記憶された前記複数の証明書に対して前記認証マニフェストの少なくとも一部を残した大部分が認証されたとき、及び、前記認証マニフェストの少なくとも一部を残した大部分が前記現在測定値と一致する前記認証測定値を含んでいるときにのみ、前記プロセッサに、サーバの現在測定値と認証測定値が十分に一致していると判定させる、サーバ。
【請求項８】
請求項３記載のサーバにおいて、
前記マニフェストチェッカー要素は、前記メモリデバイスに記憶された前記複数の証明書に対して前記認証マニフェストの少なくとも過半数が認証されたとき、及び、前記認証マニフェストの少なくとも過半数が前記現在測定値と一致する前記認証測定値を含んでいるときにのみ、前記プロセッサに、サーバの現在測定値と認証測定値が十分に一致していると判定させる、サーバ。
【請求項９】
請求項３記載のサーバにおいて、
前記マニフェストチェッカー要素は、前記認証マニフェストの少なくとも過半数が前記現在測定値と一致する前記認証測定値を含んでいるときにのみ、前記プロセッサに、サーバの現在測定値と認証測定値が十分に一致していると判定させ、るサーバ。
【請求項１０】
請求項１記載のサーバにおいて、
前記マニフェストチェッカー要素は、前記認証マニフェストの少なくとも１つが、前記現在測定値の１つと一致する無効測定値を含んでいるとき、前記プロセッサに、サーバの現在測定値と認証測定値が十分に一致していないと判定させる、サーバ。
【請求項１１】
請求項１記載のサーバにおいて、
前記マニフェストチェッカー要素は、該マニフェストチェッカー要素の測定値の一部ではない第三者のリストを含んでおり、この第三者のリストは、前記認証マニフェストを認証した第三者の証明書を含んでいる、サーバ。
【請求項１２】
請求項１１記載のサーバにおいて、
前記マニフェストチェッカー要素は、前記第三者リストの改変を許容された評価者の証明書を含んでおり、この評価者の証明書は、前記マニフェストチェッカー要素の測定値の一部である、サーバ。
【請求項１３】
請求項１記載のサーバにおいて、
前記マニフェストチェッカー要素は、当該サーバとは別のサーバの現在測定値と前記メモリデバイスに記憶されたマニフェストの認証測定値とを比較することにより、前記プロセッサに、前記別のサーバを遠隔認証させる、サーバ。
【請求項１４】
請求項１記載のサーバにおいて、
前記マニフェストチェッカー要素は、前記プロセッサに、データ送信者の証明書に関して入力したユーザデータをチェックさせ、データ送信者のマニフェストがサーバアプリケーションの現在測定値と一致しているときにのみ、データ送信者により証明されたデータをアンシーリングさせる、サーバ。
【請求項１５】
請求項１４記載のサーバにおいて、
前記マニフェストチェッカー要素は、前記プロセッサに、認証マニフェストを提供することが許可された第三者のリストに対するデータ送信者の証明書をチェックさせる、サーバ。
【請求項１６】
請求項１５記載のサーバにおいて、
前記マニフェストチェッカー要素は、サーバの現在測定値と認証測定値が十分に一致しているかどうかに関する基準を決めるために、前記プロセッサにデータ送信者の証明書をチェックさせる、サーバ。
【請求項１７】
改変可能なサーバを使用して、当該サーバの測定値に従って、データを信頼性高くシーリング及びアンシーリングするための方法であって、
前記サーバに、データのシーリング及びアンシーリングのための改変可能なサンドボックス要素と、このサンドボックス要素の許可又は不許可を決める改変不能なチェッカー要素とを構築するステップ；
前記チェッカー要素を介して、前記サンドボックス要素が予め定めた基準に適合しているか否かを判定するステップ；及び
前記サンドボックス要素が予め定めた基準に適合していると前記チェッカー要素が判定したときに、前記サンドボックス要素を有効にしてチェッカー要素の測定値を使用したデータのシーリング／アンシーリングを行うステップ；又は
前記サンドボックス要素が予め定めた基準に適合していないと前記チェッカー要素が判定したときに、前記サンドボックス要素を無効にするステップ；
を有することを特徴とする方法。
【請求項１８】
請求項１７記載の方法において、
前記チェッカー要素は、前記サンドボックス要素の現在測定値と、第三者により認証されたマニフェストに含まれる認証測定値とを比較することにより、前記サンドボックス要素が予め定めた基準に適合しているか否かを判定する、方法。
【請求項１９】
請求項１８記載の方法において、
前記チェッカー要素は、当該チェッカー要素内に記憶された複数の証明書に対してそれぞれのマニフェストを認証する、方法。
【請求項２０】
請求項１９記載の方法において、
前記チェッカー要素の測定値は、データのシーリングとアンシーリングのために使用されるものであり、且つ、前記複数の証明書を含んでいない、方法。
【請求項２１】
請求項１９記載の方法において、
前記チェッカー要素は、前記複数の証明書のうち、評価者により認証された第三者リスト内に含まれる証明書だけを受け入れる、方法。
【請求項２２】
請求項１８記載の方法において、
前記チェッカー要素は、現在測定値と認証測定値が十分に一致しているか否か、メモリデバイスに記憶された複数の証明書に対して全ての認証マニフェストが認証されているときにだけ現在測定値と認証測定値が十分に一致していると判定されるか否か、及び、現在測定値と認証測定値が完全に一致しているときにだけ現在測定値と認証測定値が十分に一致していると判定されるか否かに基づいて、前記サンドボックス要素が予め定めた基準に適合しているか否かを判定する、方法。
【請求項２３】
請求項１８記載の方法において、
前記チェッカー要素は、現在測定値と認証測定値が十分に一致しているか否か、メモリデバイスに記憶された複数の証明書に対して前記認証マニフェストの少なくとも一部を残した大部分が認証されたときにだけ現在測定値と認証測定値が十分に一致していると判定されるか否か、及び、前記認証マニフェストの少なくとも一部を残した大部分が認証測定値を含んでいるときにだけ現在測定値と認証測定値が十分に一致していると判定されるか否かに基づいて、前記サンドボックス要素が予め定めた基準に適合しているか否かを判定する、方法。
【請求項２４】
請求項１８記載の方法において、
前記チェッカー要素は、現在測定値と認証測定値が十分に一致しているか否か、メモリデバイスに記憶された複数の証明書に対して前記認証マニフェストの少なくとも過半数が認証されたときにだけ現在測定値と認証測定値が十分に一致していると判定されるか否か、及び、前記認証マニフェストの少なくとも過半数が認証測定値を含んでいるときにだけ現在測定値と認証測定値が十分に一致していると判定されるか否かに基づいて、前記サンドボックス要素が予め定めた基準に適合しているか否かを判定する、方法。
【請求項２５】
請求項１８記載の方法において、
前記チェッカー要素は、現在測定値と認証測定値が十分に一致しているか否か、及び、前記認証マニフェストの少なくとも過半数が認証測定値を含んでいるときにだけ現在測定値と認証測定値が十分に一致していると判定されるか否かに基づいて、前記サンドボックス要素が予め定めた基準に適合しているか否かを判定する、方法。
【請求項２６】
請求項１８記載の方法において、
前記チェッカー要素は、現在測定値と認証測定値が十分に一致しているか否か、前記認証マニフェストの少なくとも１つが前記現在測定値の１つと一致する無効測定値を含んでいるときに現在測定値と認証測定値が十分に一致していないと判定されるか否かに基づいて、前記サンドボックス要素が予め定めた基準に適合しているか否かを判定する、方法。
【請求項２７】
請求項１７記載の方法において、
前記チェッカー要素は、前記サンドボックス要素が、入力データに添付されたデータ送信者の証明書に対応する基準に適合しているか否かを判定する、方法。
【請求項２８】
請求項２７記載の方法において、
前記基準は、改変可能なサンドボックス要素の認証測定値として設定されており、前記チェッカー要素は、前記データ送信者の証明書により確認された１またはそれ以上の認証マニフェストから前記認証測定値を取得する、方法。
【誤訳訂正２】
【訂正対象書類名】明細書
【訂正対象項目名】全文
【訂正方法】変更
【訂正の内容】
【発明の詳細な説明】
【発明の名称】匿名データの第三者の監視を実行するためのシステム及び方法
【技術分野】
【０００１】
本出願は、２０１３年９月２５日に出願された米国仮出願第６１／８８２３２１号に基づく優先権の利益を主張するものであり、当該仮出願の全体が参照として含められている。
【０００２】
本発明は、個人的なユーザデータを取り扱うサーバを信頼できる第三者機関（以下では単に「第三者」という）により監視するための方法及びシステムに関する。
【背景技術】
【０００３】
ユーザがその個人的なデータを遠隔サーバに供給する（預ける）という機会が増えてきている。サーバの運営組織（サーバ組織）では、ユーザのデータを１または他の方法（例えば個人情報の保護方針について説明した文書による）で保護することを規定している。ユーザは、サーバの運営組織（サーバ組織）を全面的に信頼することはできず、サーバの運営組織（サーバ組織）による保護の規定に応えられるような信頼できる第三者の保証を欲している。しかし今日ではこれが脆弱な手法で行われているのが実情である。例えば、第三者は、サーバソフトウェアを調査して、ソフトウェアが保護の規定を忠実に遂行している旨を証明しなければならない。しかしながら、サーバの運営組織（サーバ組織）は、そのソフトウェアを事後的に簡単に改変して保護の規定に背くことが可能である。このため、信頼できる第三者がサーバソフトウェアを制御することにより、当該第三者の認証が無い限りにおいてサーバの運営組織（サーバ組織）がそのソフトウェアを改変することができないようにしたシステム及び方法が要求されている。さらに、ユーザは、サーバに対して個人的なデータを伝送する前に、このような制御が存在している（実行されている）ことについて保証（認証）を得なければならない。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明の一態様では、独立した複数の第三者が、当該複数の第三者のうちの一部または全部がソフトウェアを認証しない限りにおいて、特定のサーバアプリケーションソフトウェアの動作を停止する（無効にする）ことができる。サーバに対して個人的なデータを供給している（預けている）ユーザは、この個人的なデータを独立した第三者が監視している旨の暗号証明を得ることができる。加えて、サーバは、以前に起動したことがある全てのバージョンのソフトウェアの不正開封防止ログ（tamper-proof log）を生成することができる。これにより、いずれのユーザも、過去にサーバ内で起動したことがあるソフトウェアを正確に把握することができる。このモデルによれば、サーバにデータを送る前に、サーバアプリケーションソフトウェアが当該データを安全に取り扱うことについての保証（信頼）をクライアントに与えることができる。
【図面の簡単な説明】
【０００５】
上述した本発明の特徴および利点ならびに他の特徴および態様については、以下の説明および添付図面を参照することでより良く理解することができる。
【図１】保護されたユーザデータを取り扱うためのサーバを示す概略図である。
【図２】サーバソフトウェアの第三者認証を得るための方法を示す概略図である。
【図３】サーバソフトウェアの第三者認証を確認するための方法を示す概略図である。
【図４】サーバソフトウェアの認証を受けた第三者のリストを管理するための方法を示す概略図である。
【図５】図１のサーバを経由して保護されたユーザデータにアクセス（供給または問い合わせ）するための方法を示す概略図である。
【図６】本発明の一実施形態によるサーバとクライアントとの間における遠隔認証接続モードを示す概略図である。
【図７】本発明の別実施形態によるサーバとクライアントとの間における遠隔認証接続モードを示す概略図である。
【発明を実施するための形態】
【０００６】
添付図面を参照して、本発明の典型的な実施形態について詳細に説明する。添付図面においては、同一または類似の構成要素に同一の符号を使用する。
【０００７】
図１に示すように、サーバ１００は、個人的なまたは保護されたユーザデータ１０を取り扱うためのサーバアプリケーションソフトウェア１１０を起動および実行する。サーバ１００は、その機能的な構成要素として、トラステッド・プラットフォーム・モジュール（Trusted Platform Module）（以下では「ＴＰＭ」と呼ぶ）１２０を有している。以下ではＴＰＭ１２０による機能を「ＴＰＭ機能」と呼ぶことにする。このＴＰＭ機能は、ＴＰＭハードウェアとこれに対応するマザーボードファームウェアにより実現され、またはサーバのＣＰＵの内部に実装されている。ＴＰＭ１２０は、シーリング／アンシーリング機能部（sealing and unsealing functionality）１３０と遠隔認証機能部（remote attestation functionality）１４０を有している。シーリング／アンシーリング機能部１３０と遠隔認証機能部１４０は、例えば、トラステッド・コンピュータ・グループ（Trusted Computing Group）によって定義されている。またサーバ１００は、トラステッドブート機能部（Trusted Boot functionality）（以下では「ブート機能部」と呼ぶ）１５０を有している。
【０００８】
ブート機能部１５０は、サーバ内に設けられた各種のソフトウェアの起動時間（ブート時間）をモニタリングし、これらのソフトウェアの「測定値（測定結果）（measurements）」を記憶する。記憶される測定値は、例えば、ソフトウェアのハッシュ値やその他のファイル（例えばソフトウェアの構成ファイル）として実行可能である。測定値（ハッシュ値等）は、ＴＰＭ１２０の内部に、プラットフォーム・コンフィギュレーション・レジスターズ（以下では「ＰＣＲｓ」と呼ぶ）として記憶される。ブート機能部１５０は、起動処理の全要素を測定するＰＣＲｓおよび選択的に追加されたソフトウェアのＰＣＲｓを把握する。ブート機能部１５０は、例えば、ＴｒｕｓｔｅｄＧＲＵＢによって実装される。ＰＣＲｓは、起動処理の各要素が選択的に追加されたソフトウェアと同様にサーバ上のソフトウェア動作として実現されることを保証する。
【０００９】
シーリング／アンシーリング機能部１３０は、ＴＰＭ１２０内で、ＰＣＲｓの値に従って、暗号化データと復号化データを参照することができる。特に、ＴＰＭがシーリング機能の一部としてデータを暗号化するとき、シーリング／アンシーリング機能部１３０は、特定のＰＣＲｓの値を記録する。ＴＰＭがデータを復号化（アンシーリング）するとき、シーリング／アンシーリング機能部１３０は、暗号化時（シーリング時）の特定のＰＣＲｓの値と同じ値のときにだけ、データの復号化（アンシーリング）が可能である。実際上、データを暗号化したソフトウェアだけがこの暗号化データを復号化することができる。
【００１０】
ＴＰＭ１２０は、遠隔認証機能部１４０を認証して、遠隔操作デバイスに対して、ＰＣＲの測定値の暗号証明を実行する（させる）。この暗号証明は、ＴＰＭの製造業者によって署名された証明書に基づいて、当該製造業者がＴＰＭ１２０内にインストールした永久キーを認証することにより実行される。
【００１１】
本実施形態では、ブート機能部１５０により測定されて選択的に追加されたソフトウェアが、マニフェスト・チェッカー・ソフトウェア（以下では「ＭＣ」または「ＭＣソフトウェア」と呼ぶ）１６０を含んでいる。ブート機能部１５０により把握されたＰＣＲｓのセットは、ＭＣのＰＣＲｓを含んでおり、以下ではこれを「シーリングＰＣＲｓ」と呼ぶ。これは、サーバ上におけるユーザデータのシーリングとアンシーリングがＰＣＲｓのセットが存在するときにだけ実行されるからである。
【００１２】
本実施形態では、ブート機能部１５０とは別の構成要素であるマニフェストチェッカー（ＭＣ）１６０が、サーバ１００を動作不能状態とすることなくサーバアプリケーションソフトウェア（ＳＡ）１１０のアップデートを許容するために、サーバアプリケーションソフトウェア（ＳＡ）１１０を具体的に測定（監視）する。サーバアプリケーションソフトウェア（ＳＡ）１１０は、ユーザデータの保護を保証するためのソフトウェアの全構成要素、例えば、ＯＳ、環境設定ファイル（構成ファイル）、ＳＥＬｉｎｕｘポリシー、アプリケーションバイナリーを含んでいる。しかし、サーバアプリケーションソフトウェア（ＳＡ）１１０は、マニフェストチェッカー（ＭＣ）１６０の測定値を含んでいない。サーバアプリケーションソフトウェア（ＳＡ）１１０の現在測定値を含むＰＣＲまたはＰＣＲｓは「ＳＡ  ＰＣＲｓ」と呼ばれる。マニフェストチェッカー（ＭＣ）１６０は、「ＳＡ  ＰＣＲｓ」と、１つまたはそれ以上のマニフェスト２００の内部に記憶された測定値とを比較する。ここで、マニフェスト２００とその内部に記憶された測定値は、図２を参照して詳述する信頼できる第三者により認証されたものである。
【００１３】
図２に示すように、サーバ１００は、それぞれ異なる複数の第三者（Ａ、Ｂ等）に由来する複数のマニフェスト（２００Ａ、２００Ｂ等）を記憶している。それぞれの第三者は、自らのマニフェスト２００（当該マニフェストを構成するソフトウェアの測定値）を認証する。この認証のための方法の１つとして、第三者が、証明書（certificate）２４０によって確認された署名（signature）２３０を用いて、マニフェスト２００に署名することができる。例えば、第三者は、それぞれのプライベートキー２３０（２３０Ａ、２３０Ｂ、２３０Ｃ）を用いて、それぞれのマニフェスト２００（２００Ａ、２００Ｂ、２００Ｃ）に署名することができる。第三者は、それぞれのプライベートキー２３０（２３０Ａ、２３０Ｂ、２３０Ｃ）を用いることで、それぞれのマニフェスト２００（２００Ａ、２００Ｂ、２００Ｃ）を供給するための安全な通信プロトコル、例えばＳＳＬやＩＰＳＥＣを確立および認証することができる。証明書２４０は、第三者のそれぞれのプライベートキー２３０（２３０Ａ、２３０Ｂ、２３０Ｃ）に対応する公開キー２４０（２４０Ａ、２４０Ｂ、２４０Ｃ）とすることができる。証明書２４０は、サーバ１００の内部にマニフェストチェッカー（ＭＣ）１６０の一部として記憶されており、マニフェストチェッカー（ＭＣ）１６０の測定値の一部として含まれている。
【００１４】
図３に示すように、マニフェストチェッカー（ＭＣ）１６０は、サーバ１００の一部であり、サーバ１００の動作を制御するものである。マニフェストチェッカー（ＭＣ）１６０は、サーバ１００の起動要求に応じて、サーバアプリケーションソフトウェア（ＳＡ）１１０の少なくとも１つの測定値（ＳＡ  ＰＣＲ）を取得し、次のような処理ステップを実行する。
【００１５】
『ＭＣａ１．（３１０）』
マニフェストチェッカー（ＭＣ）１６０は、記憶されたマニフェスト２００を読み出す。
【００１６】
『ＭＣａ２．（３２０）』
マニフェストチェッカー（ＭＣ）１６０は、読み出したマニフェスト２００を認証（確認）する。マニフェスト２００を認証（確認）するために用いられる証明書２４０は、ブート機能部１５０（図１）により用いられるマニフェストチェッカー測定値に含まれている。マニフェスト・チェッカー・ソフトウェア（ＭＣ）１６０は、認証（確認）していない全てのマニフェスト２００を無視する。
【００１７】
『ＭＣａ３．（３３０）』
マニフェストチェッカー（ＭＣ）１６０は、認証（確認）したマニフェスト２００と、ＰＣＲｓの現在測定値とを比較する。この比較は少なくとも、上述した「ＳＡ  ＰＣＲｓ」を含んでいる。
【００１８】
『ＭＣａ４．（３４０）』
マニフェストチェッカー（ＭＣ）１６０は、マニフェスト２００の大部分が「ＳＡ  ＰＣＲｓ」の現在測定値と一致していれば、サーバアプリケーションソフトウェア（ＳＡ）１１０とのアクセスが可能になる。逆に、マニフェストチェッカー（ＭＣ）１６０は、マニフェスト２００の大部分が「ＳＡ  ＰＣＲｓ」の現在測定値と一致していなければ、サーバアプリケーションソフトウェア（ＳＡ）１１０とのアクセスが不能になる。例えば、マニフェストチェッカー（ＭＣ）１６０は、全てのマニフェスト２００が一致していることをアクセス条件としてもよいし、全てよりも少ない（大部分の）マニフェスト２００が一致していることをアクセス条件としてもよい。
【００１９】
図１を参照して前述したように、保護されたユーザデータ１０は、シーリング／アンシーリング機能部１３０によりシーリング（暗号化）されて、サーバ１００内の不揮発性メモリ（例えばディスクメモリやフラッシュメモリ）に記憶される。この処理は、全てのユーザデータを直接的にシーリング（暗号化）することで行ってもよいし、ユーザデータを暗号化および復号化するためのシーリングキーを使って効率的に行ってもよい。ユーザデータを暗号化および復号化するためのキーは、アンシーリングされてＲＡＭシステムにて使用される。マニフェストチェッカー（ＭＣ）１６０とサーバアプリケーションソフトウェア（ＳＡ）１１０の少なくとも一方は、シーリング／アンシーリング機能部１３０により、保護されたユーザデータ１０のシーリング／アンシーリングを行うか、ＴＰＭ１２０によりこれらのデータのシーリング／アンシーリングを行うべき旨の要求を出す。あるいは、ＴＰＭ１２０がＣＰＵに埋め込まれている場合には、ＣＰＵの内部でキーがアンシーリングされて暗号化および復号化のために使用される。このようにキーがＣＰＵから分離することはあり得ない。サーバアプリケーションソフトウェア（ＳＡ）１１０に代えて、マニフェストチェッカー（ＭＣ）１６０が、シーリング／アンシーリング機能部１３０によりデータのシーリング／アンシーリングを行ってもよい。
【００２０】
本実施形態ではシーリングＰＣＲｓのみによってデータがシーリングされる。これは、マニフェストチェッカー（ＭＣ）１６０またはブート機能部の何らかの構成要素が改変されたとしても、ＴＰＭ、ＭＣまたはＳＡは、もはや、保護されたユーザデータ１０にアクセス（暗号化や復号化）するためのキーをアンシーリングできないことを意味している。これは、たとえマニフェストチェッカー（ＭＣ）１６０がシーリング／アンシーリング機能部１３０またはサーバアプリケーションソフトウェア（ＳＡ）１１０と繋がっていても同様である。
【００２１】
例えば、図２に示すように、第三者であるＡ、Ｂが、各自で生成したマニフェスト２００Ａ、２００Ｂに署名するために用いるプライベートキー２３０Ａ、２３０Ｂを保持している場合を考える。これらのマニフェスト２００（２００Ａ、２００Ｂ）は、サーバ１００の内部に伝送されて記憶される。マニフェストチェッカー（ＭＣ）１６０は証明書２４０を含んでおり、この証明書２４０は、第三者であるＡ、Ｂのプライベートキー２３０（２３０Ａ、２３０Ｂ）と対応する、第三者であるＡ、Ｂのための公開キー２４０（２４０Ａ、２４０Ｂ）である。各マニフェスト２００（２００Ａ、２００Ｂ）は、上述の『ＭＣａ２．（３２０）』において、記憶された証明書としての公開キー２４０（２４０Ａ、２４０Ｂ）に従ってこれに対応するプライベートキー２３０（２３０Ａ、２３０Ｂ）による署名がなされたときに、これが認証される。つまり、証明書としての公開キー２４０（２４０Ａ、２４０Ｂ）はシーリングＰＣＲに含まれる構成要素である。
【００２２】
第三者がそのマニフェストに署名する方法とは別の方法について説明する。この別の方法では、マニフェストチェッカー（ＭＣ）１６０が、第三者（Ａ、Ｂ等）のための公開キーを含む証明書２４０を使用して、ＳＳＬといった安全な通信チャンネルを経由して、第三者（Ａ、Ｂ等）を認証する。証明書２４０は、保護されたユーザデータ１０をシーリングするために用いるマニフェストチェッカー（ＭＣ）１６０の測定値２２０の一部である。
【００２３】
全ての第三者がマニフェストのマッチングを行うことを要求する方法（上述の『ＭＣａ４．（３４０）』）とは別の方法について説明する。この別の方法では、マニフェストチェッカー（ＭＣ）１６０が、第三者の一部だけがマニフェストのマッチングを行うことを要求する。例えば、３つの第三者が存在する場合を考えたとき、マニフェストチェッカー（ＭＣ）１６０は、そのうちの２つの第三者がマニフェストのマッチングを行うことを要求する。さらに別の方法では、マニフェストチェッカー（ＭＣ）１６０が、まず、第三者の一部だけがマニフェストのマッチングを行うことを要求し、その後、追加の第三者がマニフェストのマッチングを行うことを要求する。後者のタイミングまでに追加のマニフェストが供給不能な場合、マニフェストチェッカー（ＭＣ）１６０は、サーバアプリケーションソフトウェア（ＳＡ）１１０を停止（無効）にする。例えば、３つの第三者が存在する場合を考えたとき、マニフェストチェッカー（ＭＣ）１６０は、まず、そのうちの１つの第三者がマニフェストのマッチングを行うことを要求し、その後の一週間以内に、２番目の第三者がマニフェストのマッチングを行うことを要求する。マニフェストのマッチングを行う最小の人数、及び／又は、マッチングのスケジュールは、マニフェストチェッカー（ＭＣ）１６０の測定値の一部である。この場合、マニフェストのマッチングを行う最小の人数が以前と比べて改変されると、ユーザデータ１０のアンシーリング（復号化）が不可能となる。
【００２４】
本実施形態では、マニフェスト２００が以前のマニフェストの測定値を無視する（無効にする）。例えばマニフェスト２００は、１またはそれ以上の測定値（無効測定値）を含むとともに、この測定値（無効測定値）のセットと一緒のソフトウェアは起動しない（無効である）ことを示す追加情報（文字列）を含んでいる。これは例えば、以前の測定値（無効測定値）と一緒のソフトウェアに安全性の欠陥が見つかったときに、そのソフトウェアを二度と起動できないようにすることを意味しており、有用な作用効果である。
【００２５】
以下では図１−図３を参照して、本実施形態のシステムと方法の１つの使用例について説明する。サーバ１００は、該サーバ１００がユーザデータ１０をどのようにして保護するかという個人情報保護に関する方針を実行する。個人情報保護に関する方針では、その方針で規定されたデータ保護が行なわれていないシステムによってはユーザデータ１０を絶対に取り扱わない旨の取り決めがなされている。第三者であるＡ、Ｂは、サーバアプリケーションソフトウェア（ＳＡ）１１０を調べて、これが個人情報保護に関する方針を満足していることを確認する。これらの第三者はそれぞれ署名キー２３０とこれに対応する証明書２４０を有している。これらの第三者は前もって証明書２４０をサーバ組織に提供しており、サーバ組織は、提供された証明書２４０をマニフェストチェッカー（ＭＣ）１６０にて一括管理する。サーバ１００のソフトウェアが個人情報保護に関する方針に従っていることを第三者が確認したとき、第三者はそれぞれ、マニフェスト２００に対応するキー２３０を生成してこれに署名する。マニフェスト２００とこれに対応するキー２３０は、「シーリングＰＣＲｓ」や「ＳＡ  ＰＣＲｓ」を含んでいる。
【００２６】
本実施形態では、例えば図４に示すように、生成されたマニフェストによって認証された第三者のリストを改変することが望ましい。図３の実施形態では、マニフェストチェッカー（ＭＣ）１６０に証明書２４０を追加または削除することにより、サーバアプリケーションソフトウェア（ＳＡ）１１０によるユーザデータ１０のアンシーリングを不能にすることができる。第三者認証のリストが改変されたときにユーザデータが無くなるのを防止するために、図４では、マニフェストの追加の種類または層を含む第三者リスト４００を使用している。この第三者リスト４００は、マニフェストを生成する認証された第三者（Ａ、Ｂ、Ｃ）の証明書２４０を識別することができる。しかし、この第三者リスト４００に含まれる証明書２４０は、ＴＰＭ１２０により使用されるマニフェストチェッカーの測定値の一部ではない。むしろ、マニフェストチェッカーの測定値は、第三者リスト４００の生成を許可された第三者のための証明書４１０のみを含むものである。
【００２７】
図４を参照して、第三者であるＣとＤが、それぞれ、プライベートキー４２０Ｃと４２０Ｄを使用して、第三者リスト４００Ｃと４００Ｄを生成してこれに署名する場合について説明する。第三者リスト４００は、第三者であるＡ、Ｂ、Ｃのための証明書（公開キー）２４０を含んでいる。マニフェストチェッカー（ＭＣ）１６０は、第三者であるＣとＤのための証明書（公開キー）４１０を保持している。この証明書（公開キー）４１０は「シーリングＰＣＲ」の測定値の一部である。これに対し証明書（公開キー）２４０はもはや「シーリングＰＣＲ」の測定値の一部ではない。
【００２８】
マニフェストチェッカー（ＭＣ）１６０は、次のような処理ステップを実行する。
【００２９】
『ＭＣｂ１．４３０』
マニフェストチェッカー（ＭＣ）１６０は、記憶された第三者リスト４００を読み出す。
【００３０】
『ＭＣｂ２．４４０』
マニフェストチェッカー（ＭＣ）１６０は、証明書４１０に対して第三者リスト４００を認証する。マニフェストチェッカー（ＭＣ）１６０は、認証失敗した全ての第三者リストを無視（破棄）する。
【００３１】
『ＭＣｂ３．』
マニフェストチェッカー（ＭＣ）１６０は、認証成功した第三者リスト４００内の第三者Ａ、Ｂに対応する証明書を使用して、上述した『ＭＣａ１．（３１０）』から『ＭＣａ４．（３４０）』の処理を実行する。
【００３２】
マニフェストチェッカー（ＭＣ）１６０は、第三者リスト４００が高精度に一致しないときは、『ＭＣｂ３．』の処理を実行しない。あるいは、マニフェストチェッカー（ＭＣ）１６０は、全ての第三者リスト４００に共通する第三者により認証されたマニフェストだけを使用して、『ＭＣｂ３．』の処理を実行してもよい。さらには、マニフェストチェッカー（ＭＣ）１６０は、いずれかの第三者リストに含まれる第三者により認証されたマニフェストを使用してもよい。マニフェストチェッカー（ＭＣ）１６０は、第三者リストに十分な数の第三者がリストアップされていないとき、『ＭＣｂ３．』の処理を実行しない。第三者の最小数は、シーリング／アンシーリング機能部１３０のために認証されたコードベースの一部である。あるいは、マニフェストは安全性の高いセッション確立の間に認証されてもよい。
【００３３】
図５に示すように、評価者としての第三者Ｃ、Ｄは、マニフェスト生成者である第三者Ａ、Ｂがサーバソフトウェアを調査する権限を有しているか否かを評価する（５００）。評価者としての第三者Ｃ、Ｄは、それぞれ、署名キー４２０とこれに対応する証明書４１０を生成する（５１０）。評価者としての第三者Ｃ、Ｄは、その証明書４１０Ｃ、４１０Ｄをサーバ組織に提供する（５２０）。サーバ組織は、マニフェストチェッカー１６０内に証明書を含んでいる。評価者としての第三者Ｃ、Ｄは、それぞれの第三者リスト４００Ｃ、４００Ｄを提供することにより、マニフェスト生成者である第三者Ａ、Ｂに対して権限を与える。第三者リスト４００Ｃ、４００Ｄは、第三者Ａ、Ｂのための証明書を含んでいる。
【００３４】
本実施形態では、図１に示すように、サーバ１００が、現在および過去にサーバにより動作されたソフトウェアによる全ての測定値の不正開封防止ログを記憶している。例えばマニフェストチェッカー１６０がログ１７０を生成することができる。これを実現するための構成として、サーバ１００またはマニフェストチェッカー１６０は、そのＰＣＲが時々刻々と変化するログ１７０へのエントリー権（ＰＣＲ値の参照権）を生成することができる。ログエントリーは、過去のログエントリーのハッシュ値に沿ったＰＣＲの測定値（次の過去のログエントリーとなるログエントリーのハッシュ値）を含んでいる。このログは、遠隔認証部２５０（図２）の一部として確立された安全性の高い経路を介して要求および伝送される。同様に、サーバ１００（さらにはマニフェストチェッカー１６０）は、サーバが受け取るすべてのマニフェストの不正開封防止ログを生成する。
【００３５】
図６に示すように、遠隔システム（クライアント６００）は、サーバ１００との接続を確立し、クライアントは、第三者であるＡ、Ｂ、Ｃの少なくとも一部がサーバを認証したこと（第三者認証）を確認する。つまりクライアントがサーバのユーザとなり、クライアントがピアサーバとなり、サーバのセットがクラスターとして動作し、サーバからサーバへユーザデータ１０を伝送することが可能になる。
【００３６】
本実施形態では、クライアント６００が第三者のための公開キー（証明書）２４０を記憶している。サーバ１００の遠隔認証部１４０が遠隔認証処理を行っている間、クライアントは、サーバのためのＰＣＲ値（「シーリングＰＣＲｓ」と「ＳＡ  ＰＣＲｓ」）を取得する。遠隔認証部１４０は、クライアント６００に対して、サーバ１００が有効なＴＰＭ１２０を有していること及びＰＣＲｓが適切に生成されていることについての確認を行う。クライアント６００は、サーバからマニフェスト２００を取得する。クライアントは、該クライアントが記憶した第三者の証明書２４０を使用してマニフェストを認証する（３２０）。またクライアントは、該クライアントが記憶した第三者の証明書２４０を使用して、マニフェストＰＣＲ値と、サーバの遠隔認証部１４０により提供されたＰＣＲ値とを比較する（３３０）。マニフェスト２００が認証され、且つ、比較の結果として両ＰＣＲ値が一致すると（３２０、３３０）、クライアントが適切に認証されたサーバと通信することができるようになる。比較処理においては、「シーリングＰＣＲｓ」と「ＳＡ  ＰＣＲｓ」の両方が比較の対象となる。クライアント（ユーザまたはピアサーバ）とサーバ１００とが適切に認証された接続関係になると、ユーザデータの伝送が可能になる。
【００３７】
本実施形態では、遠隔認証部１４０による遠隔認証処理の間、クライアント６００が第三者のマニフェスト２００を取得する。この処理はサーバハッシュ６０２により安全性が確保された状態で実行される。サーバハッシュ６０２は、遠隔認証（トラステッドコンピュータグループによって特定される）を目的としてクライアントにより発行されるチャレンジ６１０を含んだマニフェスト２００からなる。マニフェストのハッシュとチャレンジは、ＰＣＲｓのような他の値と一緒に、ＴＰＭ１２０が署名すべき新たなチャレンジ６２０を生成する。マニフェスト２００は、新チャレンジのＴＰＭの署名６３０およびその他の値と同様に（一緒に）クライアントに戻される。クライアントは、ＴＰＭにより署名された元のチャレンジとマニフェストのハッシュに基づいて、戻された新チャレンジと同じものを再生成する。そして、再生成した新チャレンジが適切に署名されると（新チャレンジ６２０と一致すると）、クライアントは、マニフェストがサーバによって伝送されたことを確認することができる。
【００３８】
図７は、別の実施形態を示している。この別の実施形態では、クライアント６００が、公開キー６３０を使用して、サーバ１００との間で安全性の高い接続経路６４０を確立する。公開キー６３０は、遠隔認証部１４０による遠隔認証処理の間にサーバから伝送される。公開キー６３０は、図６のマニフェスト２００のときと同じ方法（すなわちＴＰＭにより署名されたチャレンジで公開キーをハッシュする）により認証される。サーバ１００は、安全性の高い接続経路６４０を介して、クライアントに対してマニフェスト２００を伝送する。
【００３９】
本明細書は、ベストモードを含む幾つかの実施形態を例示的に開示しており、当業者であれば、本発明の実施形態に様々な装置やシステムや方法を組み込んでこれを実施することができる。本発明の技術的範囲は、クレームの記載及びこれに当業者が適宜の設計変更を付加した範囲にまで及ぶものとする。つまり、このような設計変更を付加した他の例は、これがクレームの文言から相違しない限りにおいて、あるいは、これがクレームの文言と実質的な相違がなく等価である限りにおいて、クレームの範囲に含まれるのである。
【００４０】
本明細書で使用する構成要素またはステップは、単数形で記載し、“ａ”または“ａｎ”の記載は、その構成要素またはステップが複数あることが発明の必須の構成要件として明示的に述べられない限りにおいて、その構成要素またはステップが複数あることを除外しないように理解するべきである。また、本発明の「一実施形態（one embodiment）」という記載は、これに付加的な特徴を組み込んだ実施形態を排除して解釈されることを意図するものではない。さらに、明確にそうではない旨の記載がない限りにおいて、“ｃｏｍｐｒｉｓｉｎｇ”、“ｉｎｃｌｕｄｉｎｇ”または“ｈａｖｉｎｇ”の記載は、たとえ本発明の１または複数の構成要素に付加的な特徴を組み込んだとしても、本発明の技術的範囲に含まれるという意味で使用する。
【００４１】
上述した方法およびシステムにおいては、本発明の思想および範囲から逸脱することなく、各種の変更を行うことができる。このため、本明細書と図面に示されているのは、本発明のコンセプトのほんの一例にすぎないと解釈するべきであり、本発明の範囲がこれに限定されるべきものと解釈してはならない。