(57)【特許請求の範囲】
【請求項１】
第１のデータ・プロセッサおよび第１のデータ記憶手段を有するコンピュータ・プラットフォームと、
前記コンピュータ・プラットフォームから物理的に独立のスマートカードと、
第２のデータ・プロセッサおよび第２のデータ記憶手段を有し、前記コンピュータ・プラットフォームに関する複数のデータ検査を実行するように構成された監視コンポーネントとを備え、
前記スマートカードが、１つの動作モードにおいて、前記監視コンポーネントに信頼性チャレンジを送るように動作し、該信頼性チャレンジに対して受け取る応答が検証されない限り、前記スマートカードは該スマートカードが実行できる特定のアクションを実行しないようにした、コンピュータ・システム。
【請求項２】
前記スマートカードが、前記信頼性チャレンジに対する詳細な応答を受け取り、受け取った信頼性応答を処理して解読する、請求項１に記載のコンピュータ・システム。
【請求項３】
前記コンピュータ・システムが第三者サーバをさらに備え、前記信頼性チャレンジに対する応答が前記第三者サーバに送られる、請求項１に記載のコンピュータ・システム。
【請求項４】
前記監視コンポーネントが詳細な信頼性応答を前記第三者サーバに送る、請求項３に記載のコンピュータ・システム。
【請求項５】
前記監視コンポーネントは、前記信頼性チャレンジにおいて詳細な信頼性応答を第三者サーバに送ることを要求されたとき、前記詳細な信頼性応答を第三者サーバに送る、請求項４に記載のコンピュータ・システム。
【請求項６】
前記監視コンポーネントが前記スマートカードに詳細な信頼性応答を報告し、前記詳細な信頼性応答の解読について第三者サーバの援助を必要とするとき、前記スマートカードは前記信頼性応答を前記第三者サーバに送る、請求項４に記載のコンピュータ・システム。
【請求項７】
前記第三者サーバは、前記スマートカードが前記信頼性応答を解読できる形態に前記信頼性応答を簡略化する、請求項４から６のいずれかに記載のコンピュータ・システム。
【請求項８】
前記第三者サーバは、簡略化された信頼性応答を前記スマートカードに送る、請求項７に記載のコンピュータ・システム。
【請求項９】
前記スマートカードに対して前記第三者サーバを認証するデジタル署名データを簡略化された前記信頼性応答に加えるように動作する、請求項１に記載のコンピュータ・システム。
【請求項１０】
前記スマートカードがアクションをとるように要求される、請求項１から９のいずれかに記載のコンピュータ・システム。
【請求項１１】
前記スマートカードがアクションをとるように要求する、請求項１から１０のいずれかに記載のコンピュータ・システム。
【請求項１２】
前記スマートカードが、前記信頼性チャレンジに対して受け取る応答が検証されるとき、前記コンピュータ・プラットフォームにイメージ・データを送り、前記コンピュータ・プラットフォームが該イメージ・データを表示する、請求項１から１１のいずれかに記載のコンピュータ・システム。
【請求項１３】
前記監視コンポーネントがそれ自体の識別性を確立する機能を持つ、請求項１から１２のいずれかに記載のコンピュータ・システム。
【請求項１４】
前記監視コンポーネントと前記スマートカードとの間をインタフェースする手段をさらに備える、請求項１から１３のいずれかに記載のコンピュータ・システム。
【請求項１５】
前記監視コンポーネントが前記コンピュータ・プラットフォームの状態を記述するデータを含む前記データチェックを前記スマートカードに報告するように前記コンピュータ・システムが構成される、請求項１から１４のいずれかに記載のコンピュータ・システム。
【請求項１６】
前記特定のアクションをとることは、前記コンピュータ・システムのユーザに代わって前記コンピュータ・プラットフォームにトランザクションを実行する権限を与えることを含む、請求項１から１５のいずれかに記載のコンピュータ・システム。
【請求項１７】
前記特定のアクションをとることは、検証データを前記コンピュータ・プラットフォームに送信することを含み、前記検証データは、前記コンピュータ・プラットフォームの正しい動作を検証し、前記コンピュータ・プラットフォームは、前記検証データを画像表示スクリーンに表示する、請求項１から１６のいずれかに記載のコンピュータ・システム。
【請求項１８】
前記コンピュータ・プラットフォームと前記スマートカードとの間で通信するためのインタフェース手段をさらに含み、該インタフェース手段は、前記監視コンポーネントと通信し、前記コンピュータ・システムは、前記監視コンポーネントが前記スマートカードに前記データ検査を報告し、該データ検査は、前記コンピュータ・プラットフォームの状態を記述するデータを含むように構成される、請求項１から１７のいずれかに記載のコンピュータ・システム。
【請求項１９】
前記スマートカードと前記インタフェース手段との間の通信において、前記監視コンポーネントが起動され、前記コンピュータフラットフォーム上において表示動作を行い、前記コンピュータ・プラットフォームの動作状態を記述するデータを取得する、請求項１８に記載のコンピュータ・システム。
【請求項２０】
前記インタフェース手段が前記監視コンポーネントの範囲内に全体として配置される、請求項１８または１９に記載のコンピュータ・システム。
【請求項２１】
前記インタフェース手段は前記コンピュータ・プラットフォームを含む、請求項１８または１９に記載のコンピュータ・システム。
【請求項２２】
前記インタフェース手段はスマートカードリーダを含む、請求項１８から２１のいずれかに記載のコンピュータ・システム。
【請求項２３】
前記インタフェース手段はＰＣＳＣワークグループＰＣ／ＳＣ仕様１.０に従ったＰＣＳＣスタックを含む、請求項１８から２２のいずれかに記載のコンピュータ・システム。
【請求項２４】
前記監視コンポーネントが、前記状態データを独立して認証する認証データを取得し、該認証データを前記インタフェース手段に提供するように構成された検証手段を含む、請求項１８から２３のいずれかに記載のコンピュータ・システム。
【請求項２５】
前記インタフェース手段が能動的プロトコルに従ってデータを送受するように構成される、請求項１８から２４のいずれかに記載のコンピュータ・システム。
【請求項２６】
データ・プロセッサとメモリデバイスとを備え、データ処理または信号を送る機能の少なくとも１つを行うことができるように構成されたスマートカードであって、
コンピュータ・システムの要素から、前記少なくとも１つのデータ処理または信号を送る機能を行う要求を受け取る手段と、
前記コンピュータ・システムの信頼性を確認するため、前記コンピュータ・システムの監視コンポーネントに対する信頼性データの要求を生成する手段と、
前記監視コンポーネントから信頼性データを受け取る手段と、
受け取った前記信頼性データが検証されるとき、前記機能を許可し、受け取った前記信頼性データが検証されないとき、前記機能を拒否する手段と、
を備える前記スマートカード。
【請求項２７】
ＰＣ／ＳＣ仕様１．０に従うポーリング信号動作に応じるように構成され、能動的プロトコルに従う前記ポーリング信号に応じて、前記スマートカードがコマンドを始動し、前記コンピュータ・システムにおいてソフトウェア・スタックによって取り扱われる、請求項２６に記載のスマートカード。
【請求項２８】
コンピュータ・プラットフォームおよび監視コンポーネントを備えるコンピュータ・システムの状態の検証を取得する方法であって、
前記コンピュータ・プラットフォーム上で走るアプリケーションが、該コンピュータ・プラットフォームとは物理的に独立したスマートカードの機能へのアクセスを要求するステップと、
前記アクセスの要求に応答して、前記スマートカードが前記監視コンポーネントに検証データを要求する要求信号を生成するステップと、
前記検証データの要求に応答して、前記監視コンポーネントが監視動作の結果を記述する結果メッセージを前記スマートカードに送るステップと、
前記結果メッセージが検証されるとき、前記スマートカードが前記アプリケーションに前記機能を提供するステップと、
を含む方法。
【請求項２９】
前記監視動作は、
前記監視コンポーネントが前記コンピュータ・プラットフォームのコンポーネントに１または複数のデータ検査を行うステップと、
前記監視コンポーネントが、認証された基準データの組を前記データ検査とともに報告するステップと、
を含む請求項２８に記載の方法。
【請求項３０】
前記認証された基準データが、前記コンピュータ・プラットフォームの特定のコンポーネントを測定する時に期待されるべきメトリック・セットを含み、前記基準データを認証するエンティティを特定するデジタル署名データを含む、請求項２９に記載の方法。
【請求項３１】
確認データの画像表示として前記監視動作の結果を報告するステップをさらに含む、請求項２８から３０のいずれかに記載の方法。
【請求項３２】
前記監視コンポーネントを特定するデジタル署名データを前記結果メッセージに加えるステップと、
前記結果メッセージおよび前記デジタル署名データを前記スマートカードに送信するステップと、
をさらに含む請求項２８から３１のいずれかに記載の方法。
【請求項３３】
信頼性チャレンジにおいて前記スマートカードが要求するとき、前記監視コンポーネントは第三者サーバへ詳細な信頼性応答を送る、請求項２８から３２のいずれかに記載の方法。
【請求項３４】
前記監視コンポーネントが前記スマートカードに詳細な信頼性応答を報告し、前記詳細な信頼性応答の解読について第三者サーバの援助を必要とするとき、前記スマートカードは前記信頼性応答を前記第三者サーバへ送る、請求項３３に記載の方法。
【請求項３５】
前記第三者サーバは、前記スマートカードが前記信頼性応答を解読することができる形に前記信頼性応答を簡略化する、請求項３３または３４に記載の方法。
【請求項３６】
前記第三者サーバが、前記スマートカードに簡略化された信頼性応答を送る、請求項３５に記載の方法。
【請求項３７】
前記スマートカードに対して第三者サーバを認証するデジタル署名データを、簡略化された信頼性応答に加えるステップをさらに含む、請求項３６に記載の方法。
【請求項３８】
前記コンピュータ・プラットフォームからの受け取られるポーリング信号に応答するよう前記スマートカードをプログラムするステップをさらに含み、
前記機能の要求は、前記スマートカードが前記コンピュータ・プラットフォームから前記ポーリング信号を受け取ることを含み、
受け取られた前記ポーリング信号に応答して、前記スマートカードが前記監視コンポーネントによる検証動作に対する前記要求を生成する、請求項２８から３７のいずれかに記載の方法。
【請求項３９】
前記ポーリング信号は、前記コンピュータ・プラットフォームにおいて実行中のアプリケーションプログラムから受け取られる、請求項３８に記載の方法。
【請求項４０】
前記スマートカードは、データ処理能力を有し、期待される動作を行い、前記コンピュータ・プラットフォームおよび前記監視コンポーネントから物理的に分離可能であり、暗号データ処理能力を有し、
前記監視コンポーネントが前記コンピュータ・プラットフォームにおいて実行される少なくとも１つのデータ検査の報告を作成するステップをさらに含む、請求項２８から３９のいずれかに記載の方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、コンピュータに関するもので、特に、信頼できる状態に置くことが可能なコンピュータ・エンティティおよびそのようなコンピュータ・エンティティが信頼できる状態にあるとそのユーザが確信できるように該コンピュータ・エンティティを動作させる方法に関するものである。
【０００２】
【従来の技術】
従来技術のマスマーケットの計算プラットフォーム（コンピュータ・プラットフォームまたは単にプラットフォームとも呼ぶ）は、アップル・マッキントッシュのような周知のパーソナル・コンピュータ(ＰＣ)とその競合製品、および増加しつつあるパームトップやラップトップ・パーソナル・コンピュータを含む。一般的には、そのような機種の市場は、家庭すなわち消費者および企業という２つのカテゴリに分類される。家庭用または消費者用のコンピュータ・プラットフォームのための一般的要件は、比較的高い処理能力、インターネット・アクセス機能およびコンピュータ・ゲームを扱うためのマルチメディア機能である。このタイプのコンピュータ・プラットフォームに関しては、マイクロソフト・ウインドウズ'９５、'９８オペレーティング・システム製品およびインテル・プロセッサが市場を支配する。
【０００３】
一方、多くのアプリケーションにおけるビジネス使用に関しては、サーバ・プラットフォームが、集中的データ記憶装置および複数のクライアント・ステーションのためのアプリケーション機能性を提供する。ビジネス用途に関する重要な基準は、信頼性、ネットワーキング機能およびセキュリティ機能である。そのようなプラットフォームとして、Ｕｎｉｘオペレーティング・システムと共に、マイクロソフト・ウインドウズＮＴ４.０が広く使用されている。
【０００４】
"電子商取引"として知られているインターネット上で取り引きされる商業活動の増加に伴って、家庭用および商取引用タイプ両方のインターネット上でコンピュータ・プラットフォーム間のデータ・トランザクション(取引)を可能にすることに大きな関心が寄せられている。そのようなシステムを受け入れる場合の基本的問題は、そのようなトランザクションを処理するため相互に対話するコンピュータ・プラットフォーム間の信頼性の問題である。
【０００５】
コンピュータ・プラットフォームのセキュリティおよび信頼性を向上させることを目標とするいくつかの従来技術方式がある。これらは、主として、アプリケーション・レベルでのセキュリティ機能の活用に依存する。すなわち、これらのセキュリティ機能は、オペレーティング・システムのカーネルに本質的に埋め込まれず、また、コンピュータ・プラットフォームの基本的ハードウェア・コンポーネントにも組み込まれない。スマートカード(smart card)を含むポータブル・コンピュータ装置がすでに市場に登場している。スマートカードは、ユーザ固有データを含み、そのデータはスマートカード読取装置を介してコンピュータに入力される。現在、そのようなスマートカードは、従来のパーソナル・コンピュータへの付加機構であり、既知のコンピュータの外枠に組み込まれているケースもある。これらの従来技術方式がコンピュータ・プラットフォームのセキュリティを向上させる方向に進んでいるとはいえ、従来技術方式によって得られるセキュリティおよび信頼性のレベルは、コンピュータ・プラットフォーム間の自動トランザクションの広範囲にわたるアプリケーションを使用可能にするためには不十分であるとみなされる。ビジネスにとって、広範囲にわたる電子商取引に高価なトランザクションを公然と含ませることができるようにするためには、基礎をなす技術の信頼性における確信が必要とされる。
【０００６】
従来技術コンピュータ・プラットフォームは、その固有のセキュリティを向上させる過程で次のようないくつかの問題を持つ：
・コンピュータ・プラットフォームの動作状態およびプラットフォームの範囲内のデータの状態は動的で予測が難しい。コンピュータ・プラットフォームおよびそのデータの状態は動的に絶えず変化し、コンピュータ・プラットフォーム自体も動的に変化するので、コンピュータ・プラットフォームが正しく動作しているか否かを判断することは難しい。
・セキュリティの観点から見て、商用コンピュータ・プラットフォーム、特に、クライアント・プラットフォームは、未許可の修正に対して弱い環境にしばしば配置される。脆弱性の主要な領域は、ネットワーク接続を経由してロードされるソフトウェアまたはユーザによる修正を含む。特に、従来のコンピュータ・プラットフォームは、種々のレベルの悪意を持つウイルス・プログラムによる攻撃に弱い。
・コンピュータ・プラットフォームはアップグレードされたり、その能力が、ハードディスク・ドライブや周辺機器ドライバなどのコンポーネントの追加または削除のような物理的な修正によって拡張または制限されたりする。
【０００７】
オペレーティング・ソフトウェアに組み入れることによってコンピュータ・システムにセキュリティ機能を提供することは周知の方法である。このようなセキュリティ機能は、主にローカル・システムのユーザのコミュニティの範囲内で情報の分割を行うことを目指している。周知のマイクロソフト・ウインドウズ４.０においては、"システム・ログ・イベント・ビューワ"と呼ばれる監視機能が存在する。この機能によれば、プラットフォームの範囲内で発生するイベントのログ(記録)が、ウインドウズＮＴオペレーティング・システム・ソフトウェアを使用してシステム管理者が検査することができるように、イベント・ログ・データ・ファイルに記録される。この機能は、システム管理者によるあらかじめ選択されたイベントのセキュリティ監視を可能にする方向へとにかく進む。ウインドウズＮＴ４.０オペレーティング・システムにおけるイベント記録機能は、システム監視を提供する。
【０００８】
コンピュータ・プラットフォームの全般的セキュリティに関しては、純粋にソフトウェアに基づくシステムは、例えば何千もの異なるバリエーションを持つウイルスによる攻撃に弱い。ウイルスを検出し修正するいくつかのベンダ・アプリケーションが知られている。その中には、例えば、Dr Solomons virusツール・キットまたはNorton anti-virusキットが含まれる。マイクロソフト・ウインドウズ４.０ソフトウェアは、既知のウイルスを捜すウイルス防御ソフトウェアを含む。しかしながら、ウイルス圧力は絶えず増大し、ウイルス防御ソフトウェアは、より新しい未知のウイルスに対して信頼できる防御を提供しない。ウイルスの新しい圧力が生まれ、コンピュータおよびインターネット環境に絶えず放出される。
【０００９】
【発明が解決しようとする課題】
コンピュータ・エンティティのための従来の監視システムは、ネットワーク監視機能に焦点をあてていて、そこでは、管理者がネットワーク管理ソフトウェアを使用して複数のネットワーク・コンピュータの実行を監視する。このような従来のシステムにおいては、システムにおける信頼性は、システムにおける各コンピュータ・プラットフォームの各ハードウェア・ユニットの個々の信頼性のレベルに置かれず、ネットワークにおける各コンピュータを監視しているネットワーク管理者に依存する。従来技術システムは、例えばインターネット経由でアクセスされるような異なるネットワーク上で異なるオペレーティング・システムを実行している遠隔コンピュータの動作を検証することができない。従来技術システムにおいては、コンピュータ・プラットフォームとコンピュータ・プラットフォームのユーザとの間で信頼性を確立する点に困難がある。
【００１０】
【課題を解決するための手段】
本発明の目的の１つは、当該コンピュータ・エンティティが、外部の影響によって破壊されてなく、予測可能な、既知の形態で動作しているという高い度合いの確信をユーザが持つことができるコンピュータ・エンティティを提供することである。
【００１１】
本発明の別の目的の１つは、コンピュータ・エンティティの信頼性がそのユーザによって要求される特定タスクまたはタスク集合またはタスク・タイプを実行するために十分であるか否かを当該コンピュータ・エンティティのユーザが判断するタスクを単純化することである。
【００１２】
特定の実施形態において、ユーザは、携帯可能で、コンピュータ・エンティティから分離できる、信頼できるトークンデバイスを備える。トークンデバイスは、ユーザが使用を望むコンピュータ・エンティティが信頼できることを検証するためユーザによって信頼されている。トークンデバイスは、一般的ケースでは、１つの特定のコンピュータ・エンティティの信頼性を検証することに制限されてなく、多数のコンピュータ・エンティティのいずれか１つまたはいずれか複数に関して動作できる汎用性を有している。
【００１３】
本発明の第１の側面に従って提供されるコンピュータ・システムは、第１のデータ・プロセッサおよび第１のデータ記憶手段を有するコンピュータ・プラットフォーム、第２のデータ・プロセッサおよび第２のデータ記憶手段を有し、前記コンピュータ・プラットフォームに関する複数のデータ検査を実行するように構成された監視コンポーネント、および、前記コンピュータ・プラットフォームおよび前記監視コンポーネントから物理的に独立し分離できるトークンデバイスを備える。該コンピュータ・システムにおいて、前記トークンデバイスは、１つの動作モードにおいて、前記監視コンポーネントに信頼性チャレンジを送るように動作し、該信頼性チャレンジに対する満足できる応答を受け取らない限り、該トークンデバイスは該トークンデバイスが実行できる特定のアクションを実行しない。前記トークンデバイスは、前記信頼性チャレンジに対する詳細な応答を受け取り、受け取った信頼性応答を処理してそれを解読することができる。
【００１４】
当該システムは第三者サーバを更に備えることができる。この場合、前記信頼性チャレンジに対する応答が該第三者サーバに送られる。前記監視コンポーネントは、信頼性チャレンジの中で前記トークンデバイスによって要求されていれば、詳細な信頼性応答を前記第三者サーバに送る。前記監視コンポーネントが前記トークンデバイスに詳細な信頼性応答を報告し、前記詳細な信頼性応答の解読について第三者サーバの援助を必要とすれば、前記トークンデバイスは前記信頼性応答を前記第三者サーバに送る。前記第三者サーバは、前記トークンデバイスが前記信頼性応答を解読することができる形式に前記信頼性応答を簡略化することができる。前記第三者サーバは、前記トークンデバイスに前記簡略化された信頼性応答を送ることができる。該システムは、更に、前記トークンデバイスに対して前記第三者サーバを認証するデジタル署名データを前記簡略化信頼性応答に加えるステップを実行することができる。
【００１５】
前記トークンデバイスは、アクションをとるように要求されることができる。代替的に、前記トークンデバイスがアクションをとるように要求することもできる。１つの動作モードにおいて、前記トークンデバイスは、前記信頼性チャレンジに対する前記満足できる応答を受け取る場合、前記コンピュータ・プラットフォームにイメージ・データを送り、該記コンピュータ・プラットフォームが該イメージ・データを表示する。好ましくは、前記監視コンポーネントは、それ自体の識別性を確立する機能を持つ。該システムは、好ましくは、更に、前記監視コンポーネントと前記トークンデバイスとの間を接続するインタフェース手段を備える。好ましくは、前記監視コンポーネントが、前記コンピュータ・プラットフォームの状態を記述するデータを含む前記データ検査を前記トークンデバイスに報告するように、前記コンピュータ・エンティティが構成される。前記特定のアクションは、前記システムのユーザに代わって前記コンピュータ・プラットフォームにトランザクションを実行する権限を与えることを含む。
【００１６】
本発明の第２の側面に従って提供されるコンピュータ・システムは、第１のデータ・プロセッサおよび第１のデータ記憶手段を有するコンピュータ・プラットフォーム、第２のデータ・プロセッサおよび第２のデータ記憶手段を有し、前記コンピュータ・プラットフォームに関する複数のデータ検査を実行するように構成された監視コンポーネント、および、前記コンピュータ・プラットフォームおよび前記監視コンポーネントから物理的に独立し分離できるトークンデバイスを備える。該システムにおいて、前記トークンデバイスは、前記監視コンポーネントに信頼性チャレンジを送り、前記監視コンポーネントが該信頼性チャレンジに対する応答を生成し、該トークンデバイスは、該信頼性チャレンジに対する満足できる応答を受け取ると、前記コンピュータ・プラットフォームの正しい動作を検証する検証データを前記コンピュータ・プラットフォームに送り、前記コンピュータ・プラットフォームは、表示装置に該検証データを表示する。
【００１７】
本発明の第３の側面に従って提供されるコンピュータ・エンティティは、第１のデータ・プロセッサおよび第１のデータ記憶手段を有するコンピュータ・プラットフォーム、第２のデータ・プロセッサおよび第２のデータ記憶手段を有し、前記コンピュータ・プラットフォームに関する複数のデータ検査を実行するように構成され、それ自体の識別性を確立する機能を有する監視コンポーネント、および、トークンデバイスと通信するためのインタフェース手段を備える。該コンピュータ・エンティティは、前記監視コンポーネントが前記コンピュータ・プラットフォームの状態を記述するデータを含む前記データ検査を前記トークンデバイスに報告するように構成される。
【００１８】
好ましくは、前記トークンデバイスと前記インタフェース手段の間の通信において、前記監視コンポーネントが前記コンピュータ・プラットフォームの動作状態を記述するデータを取得するため、前記コンピュータ・プラットフォームに関する監視動作を実行するように前記監視コンポーネントが起動される。好ましい実施形態において、前記インタフェース手段が前記監視コンポーネントの範囲内に実質的に全体として配置される。代替実施形態においては、前記インタフェース手段が前記コンピュータ・プラットフォームを含むことができる。前記インタフェース手段は、好ましくは、ＰＣＳＣワークグループＰＣ／ＳＣ仕様１.０に従ったＰＣＳＣスタックを含む。前記監視コンポーネントは、前記状態データを独立して認証する認証データを取得し、該認証データを前記インタフェース手段に提供するように構成された検証手段を含むことができる。前記インタフェース手段は、能動的プロトコルに従ってデータを送受するように構成されることができる。
【００１９】
本発明の第４の側面に従って、第１のデータ・プロセッサおよび第１のメモリ手段を有するコンピュータ・プラットフォームならびに第２のデータ・プロセッサおよび第２のメモリ手段を有する監視コンポーネントを備えるコンピュータ・エンティティの状態の検証を取得する方法が提供される。該方法は、前記コンピュータ・エンティティのインタフェースを経由して問い合わせ要求信号を受け取るステップ、受け取った前記問い合わせ要求信号に応答して前記監視コンポーネントが前記コンピュータ・プラットフォームの監視動作を実行するステップ、および、前記監視コンポーネントが前記監視動作の結果を記述する結果メッセージを前記インタフェースへ報告するステップを含む。
【００２０】
前記監視動作は、前記監視コンポーネントが前記コンピューテタ・プラットフォームのコンポーネントに関する１つまたは複数のデータ検査を実行するステップ、および、前記監視コンポーネントが前記データ検査と共に認証済基準データを報告することができるステップを含む。前記認証済基準データは、前記コンピュータ・プラットフォームの特定のコンポーネントを測定する時に期待されるべきメトリック・セットを含み、前記基準データを認証するエンティティを識別するデジタル署名データを含む。好ましくは、前記監視動作の検証を報告する前記のステップは、前記監視動作の結果を記述する確認信号をトークンデバイスに送るステップを含む。好ましくは、前記結果メッセージは、前記コンピュータ・エンティティの外部にあるトークンデバイスへ前記インタフェースによって伝送される。前記監視動作の結果は、確認データの視覚表示を生成することによって報告される。該方法は、更に、前記監視コンポーネントを識別するデジタル署名データを前記結果に加えるステップ、および、前記インタフェースから前記結果メッセージおよび前記デジタル署名データを伝送するステップを更に含む。
【００２１】
本発明の第５の側面に従って、コンピュータ・プラットフォームおよび監視コンポーネントを備えるコンピュータ・エンティティの状態の検証を取得する方法が提供される。該方法は、アプリケーションがトークンデバイスの機能性へのアクセスを要求するステップ、機能性に対するアクセスの前記要求に応答して、前記トークンデバイスが前記監視コンポーネントから検証データを要求する要求信号を生成するステップ、該検証データ要求に応答して、前記監視コンポーネントが、監視動作の結果を記述する結果メッセージを前記トークンデバイスへ報告するステップ、および、満足できる前記結果メッセージの受領によって、前記トークンデバイスが、前記アプリケーションへ前記機能性を提供するステップを含む。
【００２２】
該方法は、更に、第三者サーバに送られる信頼性チャレンジに対する応答を含む。前記監視コンポーネントは、前記信頼性チャレンジの中で前記トークンデバイスによって要求されていれば、前記第三者サーバへ詳細な信頼性応答を送る。前記監視コンポーネントが前記トークンデバイスに詳細な信頼性応答を報告し、前記詳細な信頼性応答の解読について第三者サーバの援助を必要とすれば、前記トークンデバイスは前記信頼性応答を前記第三者サーバに送る。前記第三者サーバは、前記トークンデバイスが前記信頼性応答を解読することができる形式に前記信頼性応答を簡略化することができる。前記第三者サーバは、前記トークンデバイスに前記簡略化された信頼性応答を送ることができる。該方法は、更に、前記トークンデバイスに対して前記第三者サーバを認証するデジタル署名データを前記簡略化信頼性応答に加えるステップを含む。前記トークンデバイスは、アクションとるように要求されることができる。代替的に、前記トークンデバイスがアクションとるように要求することもできる。
【００２３】
本発明の第６の側面に従って、第１のプロセッサ手段および第１のデータ記憶手段を有するコンピュータ・プラットフォームならびに第２のプロセッサ手段および第２のメモリ手段を有する監視コンポーネントを備えるコンピュータ・エンティティの動作の信頼性を第３のデータ・プロセッサおよび第３のメモリ手段を有するトークンデバイスによって検査する方法が提供される。該方法は、前記コンピュータ・プラットフォームから受け取ったポーリング信号をアプリケーション・プログラムから受け取ることに応答するように前記トークンデバイスをプログラムするステップ、前記トークンデバイスが前記コンピュータ・プラットフォームからのポーリング信号を受け取るステップ、前記受け取ったポーリング信号に応答して、前記トークンデバイスが前記監視コンポーネントによる検証動作を要求する信号を生成するステップ、および、前記監視コンポーネントが前記トークンデバイスから受け取った前記信号に応答して前記コンピュータ・プラットフォームの検証動作を実行するステップを含む。
【００２４】
本発明の第７の側面に従って、データ記憶装置およびコンピュータ・エンティティと通信する手段を備え、該コンピュータ・エンティティの状態を検証するトークンデバイスが提供される。この場合、前記データ記憶装置は、前記コンピュータ・エンティティから状態データを要求する状態要求メッセージを記憶するように構成される。該トークンデバイスは、更に、データ・プロセッサを含む。また、該トークンデバイスは、ＰＣ／ＳＣ仕様１.０に従って動作するポーリング信号に応答するように構成され、能動的プロトコルに従った前記ポーリング信号に応答して前記コンピュータ・エンティティ上のソフトウェア・スタックによって取り扱われるコマンドを始動することができる機能を持つ。
【００２５】
本発明の第８の側面に従って、コンピュータ・エンティティの外部に備わるトークンデバイスによって該コンピュータ・エンティティの状態を検証する方法が提供される。該方法は、前記トークンデバイスがポーリング信号を受け取るステップ、前記トークンデバイスが前記コンピュータ・エンティティの状態の検証を取得する要求を作成することによって前記ポーリング信号に応答するステップ、前記トークンデバイスが前記検証の結果を記述する結果メッセージを受け取るステップを含む。
【００２６】
該方法は、更に、第三者サーバに信頼性チャレンジに対する応答を送るステップを含む。前記監視コンポーネントは、前記信頼性チャレンジの中で前記トークンデバイスによって要求されていれば、前記第三者サーバへ詳細な信頼性応答を送る。前記監視コンポーネントが、前記トークンデバイスに詳細な信頼性応答を報告し、前記詳細な信頼性応答の解読について第三者サーバの援助を必要とすれば、前記トークンデバイスは前記信頼性応答を前記第三者サーバに送る。前記第三者サーバは、前記トークンデバイスが前記信頼性応答を解読することができる形式に前記信頼性応答を簡略化することができる。前記第三者サーバは、前記トークンデバイスに前記簡略化された信頼性応答を送ることができる。該方法は、更に、前記トークンデバイスに対して前記第三者サーバを認証するデジタル署名データを前記簡略化信頼性応答に加えるステップを含む。前記トークンデバイスは、アクションをとるように要求されることができる。代替的に、前記トークンデバイスは、アクションを取るように要求することもできる。
【００２７】
本発明は、トークンデバイスが監視コンポーネントを使用してコンピュータ・プラットフォームの状態の検証を取得することができる方法を含む。この場合、該監視コンポーネントは、前記コンピュータ・プラットフォームに関する少なくとも１つのデータ検査を実行し、それ自体の識別性を確立し、前記少なくとも１つのデータ検査の報告を作成する機能を有し、前記トークンデバイスは、データ処理能力を持ち、予期された形態で動作し、前記コンピュータ・プラットフォームおよび前記監視コンポーネントから物理的に分離可能で、暗号化データ処理能力を持ち、前記監視コンポーネントが、その識別性を前記トークンデバイスに証明し、前記コンピュータ・プラットフォームについて実行された少なくとも１つのデータ検査を前記トークンデバイスに報告する。
【００２８】
本発明は、データ・プロセッサおよびメモリ装置を備え、少なくとも１つのデータ処理または信号送信機能を実行するように構成されたトークンデバイスを含む。該トークンデバイスは、外部から信頼性検査データを受け取り、供給された前記信頼性検査データが満足できるものであれば、前記機能の１つを実行し、受け取った前記信頼性検査データが満足できるものでなければ、前記トークンデバイスは前記の機能を拒絶する。
【００２９】
【発明の実施の形態】
本発明を実施する上で最良と考える実施形態を、代替的実施形態と共に、以下に例示る。以下の記述において、本発明の完全な理解を提供するため、多数の特定の詳細が説明される。しかしながら、当業者に明らかなように、本発明は、これらの特定の詳細に限定されることなく実施されることが可能である。一方、周知の方法および構造は、本発明を不必要に曖昧にするおそれがあるので、詳細に記述されてない。
【００３０】
本発明の特定の実施形態は、処理手段とメモリ手段を持つコンピュータ・プラットフォームおよび物理的に該コンピュータ・プラットフォームと関連づけられる監視コンポーネントを含む。監視コンポーネントは、コンピュータ・プラットフォームからメトリック・データを収集することによってコンピュータ・プラットフォームの動作を監視し、コンピュータ・プラットフォームと通信する他のエンティティに対して該コンピュータ・プラットフォームが正しく機能していることを検証する機能を持つもので、本明細書において以下"信頼できるコンポーネント"(または"信頼できる装置")と呼称される。トークンデバイスは、コンピュータ・プラットフォームの人間ユーザにとって個人的なものであり、コンピュータ・プラットフォームに関連する信頼できるコンポーネントと対話して、コンピュータ・プラットフォームの信頼性を該ユーザに対して検証する。
【００３１】
コンピュータ・エンティティのユーザは、そのような信頼できるトークンデバイスの使用によってコンピュータ・エンティティとの信頼を確立する。信頼できるトークンデバイスは、個人的で携帯可能な装置であって、データ処理能力を持ち、ユーザがそれに対して高いレベルの信頼性を与える。信頼できるトークンデバイスは、次のような機能を実行することができる。
・例えば音声または視覚表示によってユーザにとって十分明確な方法でコンピュータ・プラットフォームの正しい動作を検証する；
・監視コンポーネントが関連するコンピュータ・プラットフォームの正しい動作の証拠を提供するように監視コンポーネントにチャレンジを送る；
・監視コンポーネントがコンピュータ・エンティティの正しい動作について満足できる証拠を提供したか否かに応じてコンピュータ・プラットフォームとトークンデバイスの対話のレベルを確立し、正しい動作に関する証拠がトークンデバイスによって受け取られない場合コンピュータ・エンティティとの対話を保留する。
【００３２】
トークンデバイスは、例えばコンピュータ・プラットフォームに常駐するアプリケーションによってまたは遠隔アプリケーションによってアクションをとるように要求されることもあれば、代替的にトークンデバイス自体がアクションを要求することもできる。
【００３３】
本明細書において、物理的または論理的コンポーネントに関連して使用される場合の"信用できる"という用語は、物理的または論理的コンポーネントが期待される形態で常に動作することを意味するように使われる。そのようなコンポーネントの動作は、予測可能で、わかっているものである。信頼できるコンポーネントは、未許可の修正に対して高度の抵抗力を持つ。本明細書において、"コンピュータ・エンティティ"という用語は、コンピュータ・プラットフォームおよび監視コンポーネントを記述するために使用される。
【００３４】
本明細書において、"コンピュータ・プラットフォーム"という用語は、少なくとも１つのデータ・プロセッサおよび少なくとも１つのデータ記憶手段を意味するように使用される。コンピュータ・プラットフォームは、必須とは限らないが通常は、複数のドライバ、関連するアプリケーションおよびデータ・ファイルのような通信と関連づけられ、例えばインターネットへの接続、外部ネットワークへの接続などの手段によって、あるいは、例えばＣＤ−ＲＯＭ、フロッピーディスク、リボン・テープなどのデータ記憶媒体上に記憶されているデータを受け取ることができる入力ポートを備えることによって、ユーザまたは別のコンピュータ・プラットフォームなどの外部エンティティと対話することができる。用語"コンピュータ・プラットフォーム"は、コンピュータ・エンティティの主データ処理および記憶機構を包含する。
【００３５】
各コンピュータ・エンティティにおける信頼できるコンポーネントの使用によって、異なるコンピュータ・プラットフォーム間で一定レベルの信頼が利用可能とされる。遠隔的にまたはコンピュータ・エンティティの表示画面を介するかいずれかの形態で、そのようなプラットフォームにその状態について照会を行い、それを信頼できる状態と比較することが可能である。そのような照会によって収集された情報は、プラットフォームの種々のパラメータを監視するコンピュータ・エンティティの信頼できるコンポーネントによって提供される。信頼できるコンポーネントによって提供される情報は、暗号認証によって認証され、信頼できることとなる。
【００３６】
信頼できるコンポーネントの存在は、コンピュータ・エンティティにとってローカルあるいは遠隔いずれかの第三者ソフトウェアがコンピュータ・エンティティの認証と識別の証明を取得するためコンピュータ・エンティティと通信し、そのコンピュータ・エンティティの測定された信頼性メトリックを取り出すことを可能にする。次に、照会されたコンピュータ・エンティティの状態が、第三者ソフトウェアの項目が当該コンピュータ・エンティティと通信することを望む(例えば商取引プロセスのような)対話にとって適切であるか否かを判断するため、第三者ソフトウェアは、信頼できるコンポーネントから取得したメトリックを期待されるメトリックと比較することができる。
【００３７】
コンピュータ・エンティティ間のこのようなタイプの信頼性検証は、コンピュータ・エンティティの信頼できるコンポーネントと通信している第三者ソフトウェアの観点からすれば十分機能するが、人間であるユーザがそのコンピュータ・エンティティまたはその人がユーザ・インタフェースを介して対話する他のコンピュータ・エンティティとの一定レベルの信頼できる対話を取得することができる手段を提供しない。
【００３８】
本発明の１つの好ましい実施形態において、信頼できるトークンデバイスが、コンピュータ・エンティティの信頼できるコンポーネントに問い合わせを行い、信頼できるコンポーネントによって検証されたものとしてコンピュータ・エンティティの状態についてユーザに報告するためユーザによって使用される。
【００３９】
本発明の実施形態において使用される"信頼できるプラットフォーム"をここで説明する。これは、物理的な信頼できる装置のコンピュータ・プラットフォームへの組込みによって達成される。この物理的な信頼できる装置は、プラットフォームの信頼性メトリックを提供する測定されたデータにプラットフォームの識別を結合する機能を有する。これら識別情報および信頼性メトリックが、プラットフォームの信頼性を保証するように準備されている信頼できる機関によって提供される期待値と比較される。(注：以下の記述において、"信頼できる機関"は、その英語表記である"trusted party"の頭文字をとって"ＴＰ"と略称される場合がある。) 一致すれば、信頼性メトリックの範囲に応じて、少なくともプラットフォームの一部が正しく動作していることを意味する。
【００４０】
ユーザは、他のデータをプラットフォームと交換する前にプラットフォームの正しい動作を検証する。これは、ユーザが信頼できる装置にその識別と信頼性メトリックを提供するように要求することによって行われる。(オプションとして、信頼できる装置自体がプラットフォームの正しい動作を検証することができなければ、信頼できる装置は識別の証拠を提供することを拒否するであろう)。ユーザは、識別の証明および識別メトリックを受け取って、それらを真実であると信じる値と比較する。そのような適切な値は、ユーザによって信頼されているＴＰまたは別のエンティティによって提供される。信頼できる装置によって報告されるデータがＴＰによって提供されるものと同じであれば、ユーザは、そのプラットフォームを信頼する。これは、ユーザが当該エンティティを信頼するからである。エンティティは、前もってその装置の識別の有効性を確認し、そのプラットフォームの適切な信頼性メトリックを決定しているので、そのプラットフォームを信頼する。
【００４１】
一旦ユーザがプラットフォームの信頼できる動作を確立すれば、ユーザはその他のデータをプラットフォームと交換する。ローカルのユーザについては、そのような交換は、プラットフォーム上で動くいくつかのソフトウェア・アプリケーションと対話することで行われるであろう。遠隔ユーザの場合、交換は安全なトランザクションを必要とするかもしれない。いずれにせよ、交換されるデータは、信頼できる装置によって"署名される"。このようにして、ユーザは、動作が信頼できるプラットフォームとそのデータが交換されているという一層大きい確信を持つことができる。
【００４２】
信頼できる装置は、暗号プロセスを使用するが、そのような暗号プロセスに対する外部インタフェースを必ずしも提供するというわけではない。また、一層望ましい実施形態は、信頼できる装置を不正操作不可能とし、他のプラットフォーム機能に対するアクセスを不可能にすることによって秘密保護を行い、未許可の修正に対して実質的に防護された環境を提供することである。不正操作防止は不可能であるので、不正操作に抵抗力のあるまたは不正操作検出可能な信頼できる装置が次善の策である。従って、信頼できる装置は、好ましくは、不正操作抵抗力のある１つの物理的コンポーネントから成る。
【００４３】
不正操作抵抗力に関連した技法は、セキュリティの分野の専門家には周知のものである。そのような技法は、(信頼できる装置の適切なカプセル化のような)不正操作抵抗方法、(仕様電圧、Ｘ線逸脱の検出、または信頼できる装置枠における物理的信頼性の喪失の検出のような)不正操作検出方法、および不正操作検出の時データを削除する方法などを含む。更に、いくつかの適切な技法が、http://www.cl.cam.ac.uk/~mgk25/tamper.hlmlに紹介されている。理解されることであろうが、不正操作抵抗方法は本発明の最も望ましい機能であるとはいえ、それは、本発明の通常の動作に含まれず、従って、本発明の適用範囲外にあり、ここで詳細な記述は行わない。
【００４４】
信頼できる装置は、製作が困難でなければならないので、好ましくは物理装置であり、また、偽造が困難でなければならないので、最も好ましくは、不正操作抵抗機能を持つ。信頼できる装置は、ローカルおよび遠隔の両方で識別を証明することが必要とされるので、典型的には、暗号化プロセスを使用する能力を持つエンジンを備え、関係するプラットフォームのなんらかの信頼性メトリックを測定する少なくとも１つの方法を含む。
【００４５】
図１には、信頼できるプラットフォーム１０が例示されている。プラットフォーム１０は、プラットフォームの物理的"ユーザ・インタフェース"を提供するキーボード１４、マウス１６および表示装置(ＶＤＵ)１８という標準的機構を含む。信頼できるプラットフォームの本実施形態は、また、スマートカード読取装置１２を含む。スマートカード読取装置１２の横には、スマートカード１９が示されている。スマートカード１９は、以下に記述されるように、信頼できるプラットフォームとのユーザ対話を可能にする。プラットフォーム１０には、複数のモジュール１５が含まれる。これらは、該プラットフォームにとって適切なその他の機能エレメントであり、本質的にどのような種類のものでもよい(そのようなエレメントの機能は本発明にとって重要な意味を持つものではないので、これ以上の記述は行わない)。信頼できるコンピュータ・エンティティの付加的コンポーネントは、典型的には、１つまたは複数のローカル・エリア・ネットワーク(ＬＡＮ)ポート、１つまたは複数のモデム・ポートおよび１つまたは複数の電源、冷却ファンなどを含む。
【００４６】
図２に示されているように、信頼できるコンピュータ・プラットフォーム１０のマザーボード２０は、主プロセッサ２１、メイン・メモリ２２、信頼できる装置２４、データ・バス２６、それぞれの制御線２７および線２８、プラットフォーム１０と入出力装置(ＩＯ)２３に関するＢＩＯＳプログラムを含むＢＩＯＳメモリ２９を含む。ＢＩＯＳプログラムは、マザーボード、スマートカード読取装置１２、キーボード１４、マウス１６および表示装置ＶＤＵ１８(および更にモデム、プリンタ、スキャナなどの周辺機器)というコンポーネントの間の対話を制御する。メイン・メモリ２２は、典型的には、ランダム・アクセス・メモリ(ＲＡＭ)である。動作に関しては、プラットフォーム１０は、ハードディスク(図示されていない)からＲＡＭへオペレーティング・システム(例えばウインドウズＮＴ）をロードする。更に、プラットフォーム１０は、プラットフォーム１０によって実行されるプロセスまたはアプリケーションをハードディスク(図示されてない)からＲＡＭにロードする。
【００４７】
コンピュータ・エンティティは、物理的と同様に、論理的アーキテクチャを持つと見なされる。論理的アーキテクチャは、コンピュータ・プラットフォームと信頼できるコンポーネントの間で、図１乃至図４に示されているものと同様の基本的区分を有する。すなわち、信頼できるコンポーネントは、物理的に関連するコンピュータ・プラットフォームと論理的に独立している。コンピュータ・エンティティは、コンピュータ・プラットフォーム(第１のプロセッサと第１のデータ記憶手段)に物理的に位置する論理的空間であるユーザ空間および信頼できるコンポーネントに物理的に位置する論理的空間である信頼できるコンポーネント空間を含む。ユーザ空間には、１つまたは複数のドライバ、１つまたは複数のアプリケーション・プログラム、ファイル記憶領域、スマートカード読取装置、スマートカード・インタフェース、および、ユーザ空間において動作を実行し、信頼できるコンポーネントに報告を送り返すことができるソフトウェア・エージェントがある。信頼できるコンポーネント空間は、信頼できるコンポーネントに物理的に位置し、それに基づく論理的領域であって、信頼できるコンポーネントの第２のデータ・プロセッサおよび第２のメモリ領域によってサポートされる。表示装置１８は信頼できるコンポーネント空間から直接イメージを受け取る。コンピュータ・エンティティの外部には、外部通信ネットワーク、すなわち、(１つまたは複数のモデム・ポートを含む)ドライバを経由してユーザ空間へ接続されたインターネット、種々のローカル・エリア・ネットワーク、広域ネットワークがある。外部のユーザ・スマートカードは、ユーザ空間においてスマートカード読取装置に入力する。
【００４８】
パーソナル・コンピュータにおいて、典型的には、ＢＩＯＳプログラムは、特別な予約メモリ領域に置かれる。特別な予約メモリ領域の最初の上位６４ＫＢは、システム・メモリ(アドレスF000hからFFFFh)であって、主プロセッサは、業界標準に従って、このメモリ位置を最初に見に行くように構成される。
【００４９】
当該プラットフォームと従来のプラットフォームとの重要な相違は、リセットの後、主プロセッサは信頼できる装置によって初期的に制御され、プラットフォーム固有のＢＩＯＳプログラムへ制御が渡され、次に、通常通りすべての入出力装置が初期化される点である。ＢＩＯＳプログラムの実行後、通常通り、典型的にはハードディスク装置(図示されてない)からメイン・メモリ２２にロードされるウインドウズＮＴのようなオペレーティング・システム・プログラムへＢＩＯＳプログラムによって制御が渡される。
【００５０】
明らかなように、このような通常手続きからの変更は、業界標準の実施形態に対する修正を必要とする。この修正は、主プロセッサ２１が信頼できる装置２４をアドレスしてその最初の命令を受け取るようにするものである。この変更は、単に、主プロセッサ２１に異なるアドレスをハードコードすることによって達成される。代替的方法としては、信頼できる装置２４に標準ＢＩＯＳプログラム・アドレスを割り当てることも可能であり、これは、主プロセッサ構成に何の変更をも必要としない。
【００５１】
ＢＩＯＳブート・ブロックが信頼できる装置２４の範囲内に含まれることは非常に望ましい。これは、(悪者ソフトウェア・プロセスが存在する場合発生するおそれのある)信頼性メトリックの取得の破壊を防止し、ＢＩＯＳが(たとえ正しいとしても)オペレーティング・システムのための適切な環境を構築することに失敗する状況を悪者ソフトウェア・プロセスが作り出すことを防止する。
【００５２】
以下に記述される好ましい実施形態において、信頼できる装置２４が単一の、離散的なコンポーネントであるとはいえ、代替的形態として信頼できる装置２４の機能をマザーボード上の複数の装置に分割することも、あるいは、プラットフォームの従来型標準装置の１つまたは複数に組み込むことさえ可能である。例えば、諸機能およびそれら対話が破壊されることができないと仮定すれば、主プロセッサに信頼できる装置の１つまたは複数の機能を主プロセッサに統合することは可能である。しかしながら、この構成は、プロセッサが信頼できる機能によってのみ使用されることを必要とすることになるであろう。更に、本実施形態において、信頼できる装置はマザーボード２０への統合に適応されるハードウェア装置であるが、代替的に、必要に応じてプラットフォームに接続することができるドングルのような"取り外し可能な"装置として実施することも可能である。信頼できる装置が統合された装置か取り外し可能な装置かは設計選択の問題である。しかしながら、信頼できる装置が分離できるものである場合、信頼できる装置とプラットフォームの間の論理的結合を提供するメカニズムが存在しなければならない。
【００５３】
図３に示されているように、信頼できる装置２４は多数のブロックを含む。システム・リセットの後、信頼できる装置２４は、安全なブーツ・プロセスを実行して、(システム・クロックおよび表示装置を含む)プラットフォーム１０のオペレーティング・システムが適切にかつ安全な形態で実行していることを確認する。安全ブーツ・プロセスの間、信頼できる装置２４は、コンピュータ・プラットフォーム１０の信頼性メトリックを取得する。信頼できる装置２４は、また、安全なデータ転送、および、例えば、暗号／解読および署名／検証を介して信頼できる装置とスマートカードの間の認証を実行することができる。信頼できる装置２４は、また、ユーザ・インタフェースのロックのような種々のセキュリティ制御ポリシを安全に実施することができる。
【００５４】
信頼できる装置は、具体的には、信頼できる装置２４の動作全体を制御し、信頼できる装置２４のその他の機能およびマザーボード２０のその他の装置と対話するようにプログラムされたコントローラ３０、プラットフォーム１０から信頼性メトリックを取得する測定機能３１、指定されたデータを署名、暗号化または解読する暗号機能３２、スマートカードを認証する認証機能３３、および、適切なポート(３６、３７、３８)を有し、マザーボード２０のデータ・バス２６、制御線２７、およびアドレス線２８のそれぞれに信頼できる装置２４を接続するインタフェース回路３４を備える。信頼できる装置２４におけるブロックの各々は、信頼できる装置２４の適切な揮発性メモリ領域４および不揮発性メモリ領域３に対する(典型的にはコントローラ３０経由の)アクセスを持つ。更に、信頼できる装置２４は、周知の形態で、不正抵抗性を持つように設計される。
【００５５】
パフォーマンス上の理由から、アプリケーション固有集積回路(すなわちＡＳＩＣ)として信頼できる装置２４を実施することもできる。しかし、柔軟性のため、信頼できる装置２４は、好ましくは、適切にプログラムされたマイクロコントローラである。ＡＳＩＣＳとマイクロコントローラは共に、マイクロ・エレクトロニクス技術分野において周知であるので、これ以上の詳細説明は行わない。
【００５６】
信頼できる装置２４の不揮発性メモリ３に保存されるデータの１つの項目は、認証書３５０である。認証書３５０は、少なくとも、信頼できる装置２４の公開暗号鍵３５１および信頼できる機関(ＴＰ)によって測定されたプラットフォーム信頼性メトリックの認証された値３５２を含む。認証書３５０は、信頼できる装置２４への保存に先立ちＴＰの秘密鍵を使用してＴＰによって署名される。後刻の対話セッションにおいて、プラットフォーム１０のユーザは、取得した信頼性メトリックを真正な信頼性メトリック３５２と比較することによってプラットフォーム１０の信頼性を検証することができる。一致すれば、ユーザは、プラットフォーム１０が破壊されなかったと確信することができる。ＴＰの一般に利用できる公開暗号鍵についての知識が、認証書３５０の単純な検証を可能にする。不揮発性メモリ３は、また、識別(ＩＤ)ラベル３５３を含む。ＩＤラベル３５３は、なんらかの文脈の範囲内でユニークである従来のＩＤラベル(例えばシリアル番号)である。ＩＤラベル３５３は、信頼できる装置２４に関連するデータのインデックス付けまたはラベル付けのために一般に使用されるが、信頼できる条件でプラットフォーム１０の識別性を証明するにはそれ自体では不十分である。
【００５７】
信頼できる装置２４は、関連コンピュータ・プラットフォーム１０の信頼性メトリックを取得または高い信頼度で測定する少なくとも１つの方法を備えている。本実施形態においては、信頼性メトリックは、ＢＩＯＳメモリにＢＩＯＳ命令のダイジェストを生成することによって測定機能３１によって取得される。そのように取得された信頼性メトリックは、上述のように検証されれば、プラットフォーム１０の潜在的ユーザにプラットフォーム１０がハードウェアまたはＢＩＯＳプログラムのレベルで破壊されなかったという高いレベルの信頼を与える。オペレーティング・システムおよびアプリケーション・プログラム・コードが破壊されなかったことを検査するため、ウィルス検査プログラムのようなその他の周知のプロセスが典型的には使用される。
【００５８】
測定機能３１は、ハッシュ・プログラム３５４および信頼できる装置２４の秘密鍵３５５を保存する不揮発性メモリ３および取得した信頼性メトリックをダイジェスト３６１の形態で保存する揮発性メモリ４にアクセスする。また、適切な実施形態において、揮発性メモリ４は、プラットフォーム１０へのアクセスを取得するために使用されることができる１つまたは複数の真正スマートカードの公開暗号鍵および関連ＩＤラベル３６０ａ−３６０ｎを記憶するためにも使用される。
【００５９】
１つの好ましい実施形態において、ダイジェストと同様に、信頼性メトリックは、測定機能３１によって揮発性メモリ４に保存される(詳細は後述)ブール値を含む。
【００６０】
図４を参照して、信頼性メトリックを取得する１つの好ましいプロセスを記述する。ステップ４００において、スイッチがオンされると、測定機能３１は、データ、制御およびアドレス線(２６、２７、２８)上の主プロセッサ２１の活動を監視して信頼できる装置２４がアクセスされる最初のメモリであるか否かを決定する。従来の動作の下では、主プロセッサは、ＢＩＯＳプログラムを実行するため最初にＢＩＯＳメモリに向けられる。しかしながら、本実施形態に従えば、主プロセッサ２１はメモリとして機能する信頼できる装置２４に向けられる。ステップ４０５において信頼できる装置２４がアクセスされる最初のメモリであれば、ステップ４１０において、測定機能３１は、信頼できる装置２４がアクセスされる最初のメモリであることを示すブール値を揮発性メモリ４に書く。そうでない場合、ステップ４１５において、測定機能３１は、信頼できる装置２４がアクセスされる最初のメモリでなかったことを示すブール値を揮発性メモリ４に書く。
【００６１】
信頼できる装置２４が最初にアクセスされるメモリでない場合は、当然のことながら、信頼できる装置２４が全くアクセスされない可能性がある。これは、例えば、主プロセッサ２１が最初にＢＩＯＳプログラムを実行するように取り扱われていたような場合である。そのような状況の下では、プラットフォームは、動作するであろうが、信頼性メトリックが利用できないので、要求に応じてその信頼性を検証することはできない。更に、ＢＩＯＳプログラムがアクセスされた後に信頼できる装置２４がアクセスされるとすれば、ブール値は、プラットフォームの信頼性の欠如を明示するであろう。
【００６２】
ステップ４２０において、主プロセッサ２１によってメモリとしてアクセスされると、主プロセッサ２１は、ステップ４２５において、記憶されているハッシュ命令３５４を測定機能３１から読む。ハッシュ命令３５４は、主プロセッサ２１による処理のためデータ・バス２６を経由して渡される。主プロセッサ２１は、ステップ４３０において、ハッシュ命令３５４を実行し、ステップ４３５において、それを使用してＢＩＯＳメモリ２９の内容を読み取り、ハッシュ・プログラムに従ってそれらの内容を処理することによってＢＩＯＳメモリ２９のダイジェストを計算する。ステップ４４０において、主プロセッサ２１は、信頼できる装置２４の中の該当する揮発性メモリ位置４に計算されたダイジェスト３６１を書き込む。次に、ステップ４４５において、測定機能３１はＢＩＯＳメモリ２９のＢＩＯＳプログラムを呼び出し、その後従来技術の方法で実行が続く。
【００６３】
明らかなように、信頼性メトリックの計算方法は、必要とされる信頼性の範囲に応じて、多数存在する。ＢＩＯＳプログラムの信頼性の測定は、プラットフォームの基礎をなす処理環境の信頼性に関する基本的検査を提供する。信頼性メトリックは、それがブーツ・プロセスの有効性について理由付けすることを可能にするような形式でなければならない。すなわち、正しいＢＩＯＳを使用してプラットフォームがブートされたか否かを検証するため信頼性メトリックの値を使用することができる形式でなければならない。オプションとして、ＢＩＯＳの範囲内の個々の機能ブロックがそれら自身のダイジェスト値を持つことができる。この場合、アンサンブルＢＩＯＳダイジェストがこれらの個々のダイジェストのダイジェストとなる。これによって、ポリシが、ＢＩＯＳ動作のどの部品が意図された目的のため重要でどの部分が無関係であるかを述べることが可能とされる(いずれの場合でもポリシの下の動作の有効性が確立されることができるような形態で個々のダイジェストは保管されなければならない)。
【００６４】
その他の信頼性検査は、プラットフォームに接続された種々のその他の装置、コンポーネントが存在し、正しい動作状態にあるように構成することを必要とするであろう。例えば、ＳＣＳＩコントローラと関連するＢＩＯＳプログラムは、周辺機器との通信が信頼できることを保証するように検査される。別の例をあげれば、プラットフォーム上のメモリ装置またはコプロセッサのような他の装置の信頼性は、固定的チャレンジ／応答対話を実施して一貫した結果を確認することによって検証することができる。信頼できる装置２４が分離できるコンポーネントである場合、信頼できる装置１４とプラットフォームの間の適切な論理的結合を与えるため、なんらかのそのような形式の対話が望まれる。また、本実施形態における信頼できる装置２４はプラットフォームの他の部品との通信の主要手段としてデータ・バスを利用するが、ハードワイア経路または光学経路のような代替的通信経路を(あまり便利ではないが)提供することも可能である。更に、本実施形態における信頼できる装置２４は他の実施形態における信頼性メトリックを計算するように主プロセッサ２１に命令するとはいえ、信頼できる装置自体は、一つまたは複数の信頼性メトリックを測定するように構成される。
【００６５】
好ましくは、ＢＩＯＳブーツ・プロセスは、ブーツ・プロセスの信頼性を検査するメカニズムを含む。そのようなメカニズムは、例えばインテル社ドラフト"Wired for Management baseline specification v 2.0 - BOOT Integrity Service"に記載されているようにすでに周知であり、ソフトウェアまたはファームウェアをロードする前にソフトウェアまたはファームウェアのダイジェストを計算することを必要とする。そのように計算されたダイジェストは、その公開暗号鍵がＢＩＯＳにとって既知である信頼できるエンティティによって提供された認証書に保存されている値と比較される。計算された値が認証書に基づく期待値と一致する場合だけ、ソフトウェア／ファームウェアがロードされ、信頼できるエンティティの公開暗号鍵の使用による認証書が有効であると証明されたことになる。一致しない場合、適切な例外処理ルーチンが呼び出される。
【００６６】
オプションとして、計算されたＢＩＯＳダイジェストを受け取った後、信頼できる装置２４は、認証書の中のＢＩＯＳダイジェストの適当な値を調べて、計算されたダイジェストがその適当な値に合致しないとすれば、ＢＩＯＳに制御を渡さないようにすることもできる。更に、代替的形態として、信頼できる装置２４は、ブール値を調べて、信頼できる装置２４がアクセスされる最初のメモリでなければ、ＢＩＯＳへ制御を渡さないようにすることもできる。これらのケースのいずれにおいても、適切な例外処理ルーチンが呼び出されるであろう。
【００６７】
図５は、ＴＰ、プラットフォームに組み込まれた信頼できる装置２４、および、信頼できるプラットフォームの信頼性の検証を望む(遠隔プラットフォームの)ユーザによる行動を示す流れ図である。ユーザがローカルに位置する場合でも図５に記載されたものと本質的に同じステップが必要とされる点は理解されることであろう。いずれにせよ、ユーザは、典型的には、検証を実施するため、なんらかの形式のソフトウェア・アプリケーションに依存する。遠隔プラットフォームまたは信頼できるプラットフォーム上でそのようなソフトウェア・アプリケーションを実行させることは可能である。しかしながら、遠隔プラットフォーム上でさえ、ソフトウェア・アプリケーションが破壊されるという可能性は存在する。従って、高レベルの信頼性のためには、そのソフトウェア・アプリケーションがユーザのスマートカード上に置かれ、ユーザが検証の目的のため適切なスマートカード読取装置にスマートカードを挿入することが望ましい。本発明はそのような構成に関するものである。
【００６８】
先ず、信頼できるプラットフォームを保証するＴＰ(信頼できる機関)が、保証すべきか否かを決定するためそのプラットフォームのタイプを調べる。これは、ポリシの問題である。すべてがよければ、ステップ５００において、ＴＰがプラットフォームの信頼性メトリックの値を測定する。次に、ＴＰは、ステップ５０５において、プラットフォームに関する認証書を生成する。認証書の生成は、信頼できる装置の公開暗号鍵およびオプションとしてそのＩＤラベルを測定された信頼性メトリックに追加し、ＴＰの秘密鍵でストリングスを署名することによって行われる。
【００６９】
その後、信頼できる装置２４は、秘密鍵についての知識なしにその入出力ペアを作成することは統計的に不可能である形態で、その秘密鍵を使用してユーザから受け取った入力データを処理し出力データを生成することによって、その識別性を証明することができる。このように、秘密鍵についての知識は、この場合における識別の基礎を形成する。明らかなように、識別の基礎を形成するため対称性暗号化を使用することは可能であるが、対称性暗号化を使用する欠点は、ユーザがその秘密を信頼できる装置と共有する必要があることである。更に、ユーザとの秘密の共有の必要性の結果、対称性暗号化が、原理的に識別性をユーザに証明するのに十分であるとはいえ、信頼できる装置またはユーザから発せられる検証を完全に確信することができない第三者に対して識別性を証明するには不十分である。
【００７０】
ステップ５１０において、信頼できる装置２４は、信頼できる装置２４の該当する不揮発性メモリ位置３に認証書３５０を書き込むことによって初期化される。これは、好ましくは、信頼できる装置がマザーボード２０に取り付けられた後、信頼できる装置２４との安全な通信によって実施される。信頼できる装置２４に認証書を書き込む方法は、秘密鍵を書き込むことによってスマートカードを初期化するために使用される方法と同様である。安全な通信は、ＴＰだけに知られている"マスタ鍵"によってサポートされる。マスタ鍵は、製造の間に信頼できる装置(またはスマートカード)に書き込まれ、信頼できる装置２４へのデータ書き込みを可能にするため使用される。すなわち、マスタ鍵についての知識なしに信頼できる装置２４にデータを書き込むことは不可能である。
【００７１】
プラットフォームの後刻の動作のどこかで、例えば、スイッチがオンにされるかリセットされる時、ステップ５１５において、信頼できる装置２４は、プラットフォームの信頼性メトリック３６１を取得して、保存する。
【００７２】
ユーザは、プラットフォームとの通信を望む時、ステップ５２０において、乱数のような一時的ワードを作成し、ステップ５２５において、信頼できる装置２４にチャレンジ(呼びかけ)を行う(プラットフォームのオペレーティング・システムまたは適切なソフトウェア・アプリケーションは、チャレンジを認識して適切な形態で典型的にはＢＩＯＳ呼び出しを介して信頼できる装置２４へそれを渡すように構成されている)。一時的ワードは、信頼できないプラットフォームによる古いが真正な署名に起因する欺瞞("返信攻撃"と呼ばれる)からユーザを保護するために使用される。一時的ワードを提供して応答を検証するプロセスは、周知の"チャレンジ／応答"プロセスの１例である。
【００７３】
ステップ５３０において、信頼できる装置２４は、チャレンジを受け取り、該当する応答を作成する。応答は、測定された信頼性メトリックと一時的ワードのダイジェスト、および、オプションとして、そのＩＤラベルである。次に、ステップ５３５において、その秘密鍵を使用して、信頼できる装置２４は、ダイジェストに署名し、認証書３５０と共に、署名されたダイジェストをユーザに送り返す。
【００７４】
ステップ５４０において、ユーザはチャレンジの応答を受け取り、ＴＰの既知の公開暗号鍵を使用して認証書を検証する。次に、ユーザは、ステップ５５０において、認証書から信頼できる装置２４の公開暗号鍵を抽出して、それを使用してチャレンジ応答から署名されたダイジェストを解読する。次に、ステップ５６０において、ユーザは、チャレンジ応答の中の一時的ワードを検証する。次に、ステップ５７０において、ユーザは、(チャレンジ応答から取り出した)計算された信頼性メトリックを(認証書から抽出した)該当するプラットフォーム信頼性メトリックと比較する。ステップ５４５、５５５、５６５または５７５における前記検証のいずれかが失敗すれば、全ステップはステップ５８０で終了しそれ以上の通信は行われない。
【００７５】
すべてがうまく行けば、ステップ５８５および５９０において、ユーザおよび信頼できるプラットフォームは、他のプロトコルを使用して、その他のデータに関する安全な通信を設定する。ここで、安全な通信においては、プラットフォームからのデータが、好ましくは、信頼できる装置２４によって署名される。この検証プロセスの一層の精練は可能である。望ましくは、チャレンジを送ったユーザは、プラットフォーム信頼性メトリックの値およびそれが取得された方法について認識するようになる。望ましくは、それらの情報は両方とも、チャレンジするユーザがプラットフォームの信頼性について適切な決定をすることを可能にする。チャレンジするユーザが利用できる多くの異なるオプションがある。すなわち、ユーザは、信頼性メトリックが信頼できる装置２４において有効であると認めることができ、あるいは、代替的に、信頼性メトリックの値が当該ユーザによって保持される値と等しければ、プラットフォームは適切なレベルの信頼性ベルを有することのみを認めることができる(またはこれらの２つのケースにおいて異なるレベルの信頼性があると考えることもできる)。
【００７６】
署名、認証書の使用、チャレンジ／応答、およびそれらを使用する識別性の証明の手法はセキュリティ分野の専門家に周知であるので、これ以上の説明は必要とされない。
【００７７】
ユーザのスマートカード１９は、コンピュータ・エンティティから分離しているトークンデバイスであり、スマートカード読取装置ポート１９を経由してコンピュータ・エンティティと対話する。ユーザは、いくつかの異なるベンダまたはサービス・プロバイダによって発行されたいくつかの異なるスマートカードを持ち、信頼できるコンポーネントおよびスマートカード読取装置を備える複数のコンピュータ・エンティティのいずれか１つから、インターネットまたは複数のネットワーク・コンピュータへのアクセスを取得する。ユーザが使用している個々のコンピュータ・エンティティに対するユーザの信頼は、ユーザの信頼できるスマートカード・トークンとコンピュータ・エンティティの信頼できるコンポーネントとの間の対話から導出される。ユーザは、信頼できるコンポーネントの信頼性を検証するためその信頼できるスマートカード・トークンに頼る。
【００７８】
図６には、ユーザ・スマートカード１９の処理部分６０が図示されている。図示されているように、ユーザ・スマートカード１９の処理部分６０は、プロセッサ６１、メモリ６２およびインタフェース接触部６３という標準的機構を持つ。プロセッサ６１は、後述のように、ユーザ・スマートカード１９の認証およびプラットフォーム１０の検証を伴う単純なチャレンジ／応答動作を行うようにプログラムされている。メモリ６２は、その秘密鍵６２０、その公開暗号鍵６２８、(オプションとして)ユーザ・プロフィール６２１、ＴＰの公開暗号鍵６２２および識別６２７を保有する。ユーザ・プロフィール６２１は、ユーザによって使用可能な許容可能補助スマートカード２０ＡＣ１−ＡＣｎおよび該ユーザに関する個別セキュリティ・ポリシ６２４をリストする。ユーザ・プロフィールは、補助スマートカード２０の各々に関して、それぞれの識別情報６２３、スマートカード間の信頼構造６２５、および、オプションとしてスマートカードのタイプまたは製造記号６２６を含む。
【００７９】
ユーザ・プロフィール６２１において、補助スマートカード２０のエントリＡＣ１‐ＡＣｎの各々は、カードのタイプに応じて変わる関連識別情報６２３を含む。例えば、キャッシュカードのための識別情報は、典型的には、単純なシリアル番号を含むが、一方、暗号カードの場合、識別情報は、典型的には、暗号カードの公開鍵(あるいは認証書)を含む(秘密鍵は暗号カードそれ自体に秘密裡に記憶されている)。
【００８０】
"セキュリティ・ポリシ"６２４は、プラットフォーム１０上でユーザが補助スマートカード２０を使用している間にプラットフォーム１０に関してユーザが持つ許可を指示する。例えば、補助スマートカード２０が使用中の間、補助スマートカード２０の機能に応じて、ユーザ・インタフェースはロックまたはロック解除される。更に、代替的に、特定の補助スマートカード２０が信頼される程度に応じて、プラットフォーム１０上の特定のファイルまたは実行可能プログラムをアクセス可能または不可とすることができる。更に、セキュリティ・ポリシ６２４は、"クレジット受領"または"一時的委任"(詳細は後述)のような、補助スマートカード２０に関する動作の特定のモードを指定することができる。
【００８１】
"信頼構造"６２５は、補助スマートカード２０それ自身が、ユーザ・スマートカード１９を再使用することなく、更なる補助スマートカード２０をシステムに導入することができるか否かを定義する。本明細書において詳細に記述される実施形態においては、ユーザ・スマートカード１９とそのユーザ・スマートカード１９によってプラットフォーム１０に導入されることができる補助スマートカード２０の間にのみ信頼構造が定義される。導入は、後述されるように、"単一セッション"でも"マルチセッション"でもよい。しかしながら、特定の補助スマートカード２０が実際に更なる補助スマートカード２０を導入することができない理由はない。このためには、導入することができる補助スマートカードの各々をリストするユーザ・プロフィールと同等のものを補助スマートカード２０が持つことを必要とする。
【００８２】
補助スマートカード２０の使用は、本発明にとって必須の機能ではなく、本明細書においてこれ以上の説明はされない。補助スマートカードの使用は"Computing Apparatus and Methods of Operating Computing Apparatus"というタイトルの国際特許出願に記載されている。
【００８３】
図７を参照して、ユーザ・スマートカード１９とプラットフォーム１０の間の認証に関する好ましいプロセスを記述する。このプロセスは、便宜上チャレンジ／応答ルーチンを実施する。利用できるチャレンジ／応答メカニズムは多数存在する。本実施形態に使用される認証プロトコルの実施形態は、ＩＳＯ／ＩＥＣ９７９８−３に記述されている相互(または３−ステップ)認証である。当然のことながら、ＩＳＯ／ＩＥＣ９７９８−３に記述されている２−ステップまたは４−ステップのような他の手続きを使用することができな理由はない。
【００８４】
先ず、ユーザが、ステップ７００において、プラットフォーム１０のスマートカード読取装置１２にそのユーザ・スマートカード１９を挿入する。典型的には、プラットフォーム１０は、前もって、その標準オペレーティング・システムの制御の下で動作し、ユーザがそのユーザ・スマートカード１９を挿入するのを待機する認証プロセスを実行している。このように活動状態にあるスマートカード読取装置１２は別として、プラットフォーム１０は、典型的には、ユーザ・インタフェース(表示画面、キーボード、マウスなど)をロックすることによってユーザがアクセスできない状態に置かれている。
【００８５】
ユーザ・スマートカード１９がスマートカード読取装置１２に挿入されると、信頼できる装置２４は、ステップ７０５において、一時的ワードＡを生成してそれをユーザ・スマートカード１９に送信することによって、相互認証手続きを始動する。乱数のような一時的ワードは、信頼できない第三者による古いが真正な応答に起因する欺瞞("返信攻撃"と呼ばれる)から作成元を保護するために使用される。
【００８６】
それに応じて、ユーザ・スマートカード１９は、ステップ７１０において、一時的ワードＡ、ユーザ・スマートカード１９によって生成された新しい一時的ワードＢ、信頼できる装置２４のＩＤ３５３および若干の冗長情報からなる平文；ユーザ・スマートカード１９の秘密鍵を用いて署名することによって生成される前記平文の署名；ならびに、ユーザ・スマートカード１９のＩＤおよび公開暗号鍵を含む認証書、を連結した応答を生成し送り返す。
【００８７】
信頼できる装置２４は、ステップ７１５において、認証書の中の公開暗号鍵を使用して平文の署名を検証することによって応答を認証する。応答が真正でなければ、プロセスはステップ７２０で終了する。応答が真正であれば、信頼できる装置２４は、ステップ７２５において、一時的ワードＡ、一時的ワードＢ、ユーザ・スマートカード１９のＩＤ６２７および取得した信頼性メトリックからなる平文；信頼できる装置２４の秘密鍵を用いて署名することによって生成される前記平文の署名；ならびに、ＴＰの秘密鍵によって署名された信頼できる装置２４の公開鍵および真正な信頼性メトリックを含む認証書、を連結した更なる応答を生成して送る。
【００８８】
ユーザ・スマートカード１９は、ステップ７３０において、ＴＰの公開暗号鍵を使用して取得した信頼性メトリックを真正な信頼性メトリックと比較することによって(一致は認証を意味する)、この応答を認証する。更なる応答が認証できなければ、プロセスはステップ７３５で終了する。
【００８９】
手続きが成功すれば、信頼できる装置２４がユーザ・スマートカード１９を認証し、ユーザ・スマートカード１９が信頼できるプラットフォーム１０の信頼性を検証したことになり、認証プロセスは、ステップ７４０において、当該ユーザのための安全なプロセスを実行する。次に、認証プロセスは、ステップ７４５において、インターバル・タイマを設定する。その後、認証プロセスは、ステップ７５０において、適切なオペレーティング・システム割り込みルーチンを使用して、インターバル・タイマがあらかじめ定められたタイムアウト間隔を越えているか否かを周期的に検査する。明らかなように、認証プロセスと内蔵タイマは、安全プロセスと並列して動作する。
【００９０】
タイムアウト間隔を越えると、認証プロセスは、ステップ７６０において、ユーザ・スマートカード自体を識別させるためユーザ・スマートカード１９にチャレンジを送信することによってユーザ・スマートカード１９を再認証するように信頼できる装置２４を始動させる。ユーザ・スマートカード１９は、ステップ７６５において、そのＩＤ６２７およびその公開暗号鍵６２８を含む認証書を返す。ステップ７７０において、(例えば、ユーザ・スマートカード１９が取り除かれていたため)応答がない場合、または、何らかの理由で(例えばユーザ・スマートカードがすでに他のカードと置き換えられているため)認証書がもはや有効でない場合、セッションは、ステップ７７５において、信頼できる装置２４によって終了される。さもなければ、ステップ７７０において、ステップ７４５からのプロセスが内蔵タイマをリセットすることによって反復される。
【００９１】
本発明のいくつかの異なる実施形態が可能である。好ましい第１の実施形態において、表示装置１８は、信頼できるコンポーネントの範囲内に含まれる監視サブシステムによって直接駆動される。この実施形態においては、信頼できるコンポーネント空間内に信頼できるコンポーネント自体が常駐し、表示装置１８の表示は信頼できるコンポーネントによって生成される。この構成は、ヨーロッパ特許出願ＥＰＡ第99304164.9号に記載されている。
【００９２】
好ましい第１の実施形態において、このサブシステムは、コンピュータ・プラットフォーム上に常駐し、スマートカード読取装置、信頼できるコンポーネントおよび表示装置の間のインタフェースを提供する。サブシステム機能性は、信頼できるコンポーネントに組み込まれ、信頼できる空間の範囲内に常駐する。該サブシステムは、コンピュータ・プラットフォームおよびスマートカードと信頼できるコンポーネントとの間をインタフェースする。該サブシステムは、信頼できるコンポーネントにおける信頼を維持するために必須のものではなく、他の実施形態において、オプションとして、"信頼できない"コンピュータ・プラットフォーム空間におけるコンピュータ・プラットフォーム上に常駐することもできる。
【００９３】
第２の実施形態において、信頼できるコンポーネント(装置)は、スマートカード読取装置１９およびスマートカード・インタフェースを通してソフトウェア・サブシステムにおいてアクセスされる。該サブシステムは、また、アプリケーションと信頼できるコンポーネントの間をインタフェースするためアプリケーション・インタフェース機能を提供し、インターネットまたはローカル・エリア・ネットワーク／広域ネットワーク経由でアクセスされる第三者を通して、信頼できるコンポーネントによって取得される信頼性メトリック・データを検証する検証アプリケーションを提供する。
【００９４】
ユーザによってコンピュータ・エンティティに与えられる信頼は、次のような別々の部分から構成される；
・ユーザの信頼できるトークンデバイスに含まれる信頼；
・信頼できるコンポーネントに含まれる信頼。
【００９５】
コンピュータ・エンティティに与えられる信頼のレベルまたは程度は、信頼できるコンポーネントおよびスマートカードに含まれる信頼のレベルに関連するものとして決定される。コンピュータ・エンティティにおける信頼の量は多くの要因に関係するが、その信頼度を測定する際の重要な因子は、信頼できるコンポーネント自体がコンピュータ・エンティティに関して実行する信頼性メトリックス検査のタイプ、範囲および細分性およびスマートカードが信頼できるコンポーネントに対して行う信頼性メトリックス検査のタイプ、細分性および品質である。
【００９６】
ユーザがスマートカードの使用によって信頼できるコンポーネントが正しく動作していることを確定すれば、信頼できるコンポーネントは暗黙的に信頼されている。信頼できるコンポーネントは、コンピュータ・プラットフォームに含まれるあらゆる信頼の基礎として組み入れられ、コンピュータ・プラットフォームは、全体として、信頼できるコンポーネントに含まれる信頼の量以上には信頼されることはできない。
【００９７】
他のコンピュータ・エンティティが暗号化されたメッセージ手段によって信頼できるコンポーネントと直接対話して信頼できるコンポーネントの動作を検証することができるが、コンピュータ・エンティティを動かす人間のユーザは、暗号化されたデジタル信号を生成する能力を持たない生物学的エンティティであるので、信頼できるコンポーネントと直接対話することができない。人間のユーザは、コンピュータ・エンティティの信頼性を検証するにはその視覚および聴覚に頼らなければならない。人間のユーザは、一般的ケースにおいて、コンピュータ・エンティティにおける動作メカニズムの知識を持たないし、教育知識の点で平均的レベル、すなわち、ごく平均的普通の人間であろう。
【００９８】
従って、ユーザは、スマートカードの形式の信頼できるトークンを与えられ、そこに高度の信頼を置く。ユーザのスマートカードは、コンピュータ・エンティティの信頼できるコンポーネントと対話して、
・ユーザに対して信頼できるコンポーネントの識別性を証明し；
・信頼できるコンポーネントによってコンピュータ・プラットフォームに関して実行される信頼性メトリック測定を利用することによって、コンピュータ・エンティティの内部のコンピュータ・プラットフォームが正しく動作していることを検証する。
【００９９】
従って、複数コンピュータ・エンティティからなるシステムにおいて、次のような信頼性連鎖が存在する：
・ユーザは信頼できるトークンを信頼しなければならない。この信頼性は、信頼できるトークンの提供者の評判に基づくものであり、この提供者は、典型的には、信頼できるトークンの正しい動作を使用可能にするために必要な技術資源へのアクセスを持つ企業である；
・信頼できるトークンと信頼できるコンポーネントの間の信頼性。信頼できるトークン・スマートカードは、スマートカードを使用して信頼できるコンポーネントの正しい動作を検証することができなければならない；
・コンピュータ・プラットフォームにおける信頼性。コンピュータ・プラットフォームにおける信頼は、それ自体が信頼されている信頼できるコンポーネントによるコンピュータ・プラットフォームの監視から導出される。
【０１００】
このような信頼性連鎖の範囲内において、ユーザとコンピュータ・エンティティの連結は、ユーザ、ユーザが使用する信頼できるプラットフォームおよび信頼できるトークン(スマートカード)の観点から見ることができる。
【０１０１】
ユーザの観点からすれば、ユーザが信頼できるのは、コンピュータ画面上で見るもの、コンピュータの音声出力で聞くもの、印刷された出力で見るものだけである。ユーザは、コンピュータ・エンティティのスマートカード読取装置１２に挿入することができるスマートカード１９という形態の信頼できるトークンを与えられる。スマートカードは、ユーザに代わって暗号メッセージおよび問い合わせを使用して対話を遂行する。スマートカードは、信頼性メトリック測定を実行するように信頼できるコンポーネントに要求を送り、検証要求に対する満足できる応答を信頼できるコンポーネントから受け取らない場合アプリケーション・プログラムに対する許可を取り消すことができる。
【０１０２】
本発明を実施するための特定の実施形態を以下に記述する。各々の実施形態において、コンピュータ・エンティティは、複数の動作モードを持つ。図８を参照すると、第１のプロセスに従ってユーザの制御の下のコンピュータ・エンティティおよびスマートカードを備えるコンピュータ・システムの動作の第１のモードが示されている。図８のプロセスにおいて、ユーザのスマートカードの使用を必要とするアプリケーションはコンピュータ・エンティティ上に存在しない。ユーザは、単にスマートカードの助けを借りてコンピュータ・エンティティの範囲内のコンピュータ・プラットフォームの信頼性を検証している。一般的に、ユーザは、ログオンすると直ちに、いかなる視聴覚動作の実行の前に、コンピュータ・エンティティの信頼性を検査することを望む。スマートカードは、ユーザがコンピュータ・エンティティを使用する他のタスクを実行する前に、その信頼できるコンポーネントを通してコンピュータ・エンティティの信頼性を検証するようにプログラムされることができる。
【０１０３】
ステップ７０００において、ユーザは、使用すべきコンピュータ・エンティティのスマートカード読取装置にスマートカードを挿入する。ステップ７０１０において、ユーザは、コンピュータ・プラットフォームのグラフィカル・ユーザ・インタフェース(ＧＵＩ)の使用を開始する。ステップ７０２０において、コンピュータ・プラットフォーム上へ事前にロードされている検証アプリケーションがユーザによって始動される。検証アプリケーションの目的は、スマートカードを持つユーザが、コンピュータ・エンティティの信頼できるコンポーネントが信頼性を検査することを可能にすることである。そのような起動は、コンピュータ・エンティティの表示装置に表示されたアイコンの上に視覚的に置かれたマウスまたはトラックボールのようなポインティング・デバイスを起動させることによって行うことができる。検証インタフェースは、スマートカードによる信頼できるコンポーネントの検査を始動させるためＧＵＩからコマンドを受け取り、スマートカードが検証プロセスを始めるようにアプリケーションによって命令されることができるような形態でそれらコマンドを処理する。
【０１０４】
ステップ７０３０において、インタフェースは、信頼できるコンポーネント上で検証動作を始めるようにスマートカードに要求する要求信号をスマートカードに送る。ステップ７０４０において、スマートカードは、信頼できるコンポーネントに関する信頼性検査を実行する。スマートカードと信頼できるコンポーネントの間のすべての通信は暗号化された形式で行われる。スマートカードが信頼できるコンポーネントの信頼性を検証する精密な方法は図５乃至図７を参照して上述したチャレンジ／応答信頼性検査による。ステップ７０５０において、信頼できるコンポーネントに関する信頼性検査を完了した後、スマートカードは、ＧＵＩに表示することによってユーザへ報告を返す。信頼できるコンポーネントがＧＵＩを使用してユーザ報告を返す方法はいろいろある。
【０１０５】
そのような方法の１つにおいて、スマートカードは、信頼できるコンポーネントを使用してコンピュータ・プラットフォームを記述する(信頼できるコンポーネントによって決定された)情報を表示するように画面１８の表示を制御する。この際、スマートカードに固有のイメージが表示装置に表示される。例えば、スマートカードは、好ましくはユーザだけが知っている、再作成が困難なイメージ・データを含むことができる。信頼できるコンポーネントは、スマートカードからこのイメージ・データを取り出し、コンピュータ・プラットフォームの信頼性メトリックおよび動作を記述する他の情報とイメージ・データを組み合わせて、表示装置に表示する。コンピュータ・エンティティは、イメージ・データを事前に記憶しているユーザ・スマートカード以外からイメージ・データを取得する他の方法を持っていないので、また、ユーザが目視によってイメージが本物であることを高い精度で視覚的に識別することができるので、コンピュータ・エンティティが実際にスマートカードと対話している(さもなければイメージは取得できるはずがないので)という確信をユーザは持つ。
【０１０６】
代替的に、ステップ７０５０において、検査されているコンピュータ・エンティティの画面にイメージ・データを表示する代わりに、ユーザは、スマートカード読取装置からそのスマートカードを取り出して、自身のパームトップ装置にスマートカードを挿入することもできる。パームトップ装置は、ユーザにとって個人的なものであるので、ユーザはコンピュータ・エンティティより高い度合いでパームトップ装置を信頼することができる。スマートカードが実行したチャレンジ／応答検査にコンピュータ・エンティティがパスしたことを検証するデータをパームトップ読取器はスマートカードから読み取る。次に、パームトップ・コンピュータは、スマートカードが実施したチャレンジ／応答検査にコンピュータ・エンティティがパスしたという情報をユーザに表示する。ユーザは、これをコンピュータ・エンティティが信頼されている検証と見なす。
【０１０７】
ユーザがコンピュータ・エンティティを使用することを望み、コンピュータ・エンティティが信頼できるか否かを知ることを単に望む場合に、上述の方法が機能する。対照的に、図９は、アプリケーションがコンピュータ・エンティティに常駐するか、ユーザが通信を望む遠隔コンピュータ・エンティティに常住する場合で、ユーザが例えば商用トランザクション処理のような動作を認可することを必要とする場合の第２の動作モードを示す。
【０１０８】
スマートカードは、ユーザに固有な詳細項目を含むようにシステム管理者またはスマートカード・サービス・プロバイダによって構成されている。ステップ８０１において、ユーザはコンピュータ・エンティティのスマートカード読取装置にスマートカードを挿入する。ステップ８０２において、コンピュータ・エンティティのアプリケーションまたはオペレーティング・システムがスマートカードからのデータを要求する。ステップ８０３において、スマートカードは、それに応答して、スマートカードがコンピュータ・エンティティの信頼性を検証することができるように、コンピュータ・エンティティに遅延メッセージを送り、コンピュータ・エンティティの信頼できるコンポーネントへのアクセスを可能にするようにコンピュータ・エンティティへ要求する。
【０１０９】
ステップ８０４において、スマートカードは、上述されたようなチャレンジ／応答プロセスに従った信頼性検査手段によってコンピュータ・エンティティの信頼できるコンポーネントと通信して、コンピュータ・エンティティの信頼性を検査する。ステップ８０５において、信頼性検査が信頼できるコンポーネントによって満たされたと判断すれば、スマートカードは、オペレーティング・システムまたはアプリケーションからのデータ要求に対する応答を進め、処理を完了する。
【０１１０】
信頼できるコンポーネントによるコンピュータ・プラットフォームの信頼性メトリックの検査および認証を通して、コンピュータ・エンティティの信頼できるコンポーネントとの通信という手段によって接続されているコンピュータ・エンティティの信頼性をスマートカードが初めに検証することができない限り、スマートカードは、例えば認証のためあるいはなんらかの暗号サービスを提供するため、アプリケーションとの対話を受け入れることを決して行わないようにプログラムされる。このようにして、暗黙にスマートカードを信頼するユーザは、そのスマートカードが信頼できる環境にあると検証された時のみそのスマートカードがアプリケーションによって使用されることを認める。スマートカードは、信頼性検査の結果をユーザに明示的に報告する必要はない。アプリケーションがスマートカードとの対話を要求したという事実、および、その要求された対話が満足されたという事実だけが、スマートカードがこの検査を実施して、その結果が満足できるものであったということの証明である。スマートカードが、アプリケーションとの対話を許諾するか拒絶するかは、スマートカード発行者によってスマートカード上へ事前にプログラムされた、または、ユーザによるプログラムによって構成された、あらかじめ定められたポリシに基づく。
【０１１１】
スマートカードのメモリの構成は、その機能がスマートカード・ベンダによって提供されていれば、ユーザが指定することができる。例えば、パーソナル・コンピュータの購入者は、ユーザの選好に従って動作するようにそのスマートカードを構成することができる。たとえ信頼できるコンポーネントがコンピュータ・エンティティに存在しない場合でも、ユーザがマイクロソフト・ウインドウズＮＴ環境においてコンピュータ・エンティティと対話するようにスマートカードをプログラムすることができるように、スマートカードを事前に構成することができる。スマートカードのベンダは、ＰＤＡパームトップ・コンピュータのような装置を通して、スマートカードのプログラミングを可能にすることができる。各スマートカードの能力の正確な構成は、設計の問題としてスマートカードの提供者によって指定される。
【０１１２】
別の例としては、インターネット・サービス・プロバイダが、スマートカードが挿入されるコンピュータ・エンティティがスマートカードによって指定される種々の信頼性検査にパスしたことを検証することができる時、インターネット・サービス・プロバイダに対してのみそれ自体を正しく識別するスマートカードを提供することができる。これは、ウイルスを含んでいるような信頼できないコンピュータをユーザが使用してインターネット・サービスに接続しようとしていなことを確認できるような防御をインターネット・サービス・プロバイダに与える。
【０１１３】
上記２つの方法の特徴は、それらがユーザとの対話による始動を必要とせず、コンピュータ・エンティティのスマートカード読取装置に挿入されているスマートカードの動作によって始動される点にある。これは、ユーザとの対話またはソフトウェア・アプリケーションによる始動に適用できるものであるが、本発明にとって必須のものではない。
【０１１４】
ここで、図１０を参照して、信頼できるトークンとして適応されたスマートカードとの対話の間のコンピュータ・エンティティの動作の１例を記述する。この例は、ＩＳＯ７８１６に規定されているＰＣＳＣ仕様(www.pcscworkgroup.comを通して参照可能)に従う周知の技術に基づくが、スマートカードからのコマンドの始動を可能にするように好ましい実施形態において修正されている。
【０１１５】
スマートカードと信頼できるコンポーネントとの間の対話は、スマートカードが、信頼できるコンポーネントの正しい動作を認証し、信頼できるコンポーネントが監視するコンピュータ・プラットフォームの信頼性に関して信頼できるコンポーネントの応答を取得することを可能にする。好ましい実施形態において、信頼性検証プロセスによって、信頼できるコンポーネントがコンピュータ・エンティティの正しい動作の検証の解読された結果をスマートカードに報告することが可能にされる。しかしながら、別のモードの実施形態において、信頼できるコンポーネントが、スマートカードのため信頼性測定を解読するメカニズムを提供しないことも可能である。その場合、スマートカードは、この機能性を提供する信頼できる第三者サーバにアクセスしなければならない。
【０１１６】
典型的には、スマートカードによる信頼できる第三者サーバへのアクセスは、そのようなアクセスがコンピュータ・エンティティによって提供されることをスマートカードが要求することができるようなメカニズムを必要とする。信頼できるコンポーネントへのコマンドを始動し、メッセージおよび情報の交換のため信頼できるコンポーネントと通信し、情報を求める要求を送り、その要求に応答した結果を信頼できるコンポーネントから受け取り、第三者サーバへのアクセスがコンピュータ・エンティティによって提供されるように要求することができるスマートカードがあれば、スマートカードに対する信頼できるコンポーネントの信頼性検証は達成されることができる。スマートカードからのユーザ・コマンドの始動の実施形態は、"smartcards - from security tokens to intelligent adjuncts"(by Boris Balacheff, Bruno Van Wilder and David Chan published in CARDIS 1998 Proceedings)に記載されている。
【０１１７】
図１０は、上記引用文献に従ったスマートカードからのユーザ・コマンドの始動に含まれる対話を簡潔に示している。使用される手法は、ＧＳＭ(ＧＳＭ仕様１１.１４)に使用されている手法と本質的に同じであり、継続ユーザ識別モジュール(Subscriber Identity ModuleすなわちSIM)が移動体機器によってとられるべきアクションを始動することを可能にするものである。この構成において移動体機器によってとられる機能的役割は、プラットフォームの範囲内のPC Intelligent Adjunct(ＰＣＩＡ)モジュール９００と呼ばれるものによって実行される。スマートカード９０１はこのモジュールと対話する。
【０１１８】
先ず、ステップ９０２において、ＰＣＩＡモジュールが本質的に任意のコマンド(Ｃ１)を作成する。Ｃ１コマンドの結果は、ステップ９０３において、ＰＣＩＡモジュールへ送り返され、続いて、ステップ９０４において、状態応答"91 XX"が送られてくる。この重要なステップ(標準的"ＯＫ"コードに対する代替ステップ)によって、スマートカード９０１が送出すべき情報を持っていることおよび応答データの長さ(XX)をＰＣＩＡモジュール９００に伝えることが可能とされる。次に、ＰＣＩＡモジュールは、ステップ９０５において、フェッチを介してこの追加データを要求し、コマンドＣ２がステップ９０６においてスマートカードによって提供され、結果がステップ９０７において送り返される。肯定応答が、ステップ９０８において、スマートカードによって提供される。ＰＣＩＡモジュールによって更に肯定応答が提供されれば一層好ましい(図示されてない)。
【０１１９】
図１１を参照すれば、前述したコンピュータ・プラットフォームおよび監視コンポーネントを含むコンピュータ・エンティティ１１００、該コンピュータ・エンティティ１１００と通信することができる信頼できるトークンデバイス１１０１およびデータ処理機能性を実行することができる遠隔サーバ１１０２からなるコンピュータ・システムが示されている。遠隔サーバ１１０２は、また、第２のコンピュータ・プラットフォームおよび第２の監視コンポーネントを含む。運用上、遠隔サーバ１１０２は信頼できるサービス・プロバイダ(例えばインターネット・サービス・プロバイダ)によって管理されるかもしれない。この場合、信頼できるトークンデバイスのユーザは、例えばインターネット・サービス・プロバイダによって提供されるサービスに対する使用契約のようなインターネット・サービス・プロバイダとの契約関係を通して確立される一定の信頼度を持つことができる。
【０１２０】
図１２には、図１１に示されたコンピュータ・システムの範囲内のトークンデバイスおよびコンピュータ・エンティティの動作の第３のモードが示されている。この動作モードにおいては、コンピュータ・エンティティ１１００の範囲内の監視コンポーネント(信頼できるコンポーネント)は、コンピュータ・エンティティ１１００の範囲内のコンピュータ・プラットフォームに関するデータ検査を行うようにスマートカード１１０１によって要求される。信頼できるトークンデバイス１１０１は、コンピュータ・エンティティ１１００によって供給されるデータに関するデータ処理を実施するために十分なデータ処理能力を有していない。従って、コンピュータ・エンティティは、スマートカードによって信頼されている遠隔サーバ１１０２へ信頼性メトリック・データを送り出す。遠隔サーバは、受け取った信頼性メトリック・データを信頼性メトリックの期待セットと比較することによって、監視コンポーネントによって供給された信頼性メトリック・データが正しいことを検証する。期待信頼性メトリックは、監視コンポーネントの範囲内に事前記憶されたデータから監視コンポーネントによって供給されることも、あるいは、コンピュータ・プラットフォームが共通タイプである場合信頼できるサーバ１１０２がそのタイプのコンピュータ・プラットフォームに関する信頼性メトリックの期待セットを記憶することもできる。いずれの場合でも、信頼できるサーバ１１０２は、信頼性メトリック期待セットに対する信頼性メトリックの検証のために必要な重いデータ処理を実行し、この検証の結果にデジタル署名する。トークンデバイスが事前プログラムされている度合いおよび信頼できるトークンデバイスのデータ処理能力量に応じて、この第３の動作モードには種々の代替バージョンが存在する。
【０１２１】
ステップ１２００において、前述のように、信頼できるトークンが信頼できるコンポーネントを認証する。ステップ１２０１において、スマートカードは、コンピュータ・プラットフォームの信頼性メトリックを検証してそれをスマートカードへ報告するように信頼できるコンポーネントに要求する。ステップ１２０２において、信頼できるコンポーネントは、コンピュータ・プラットフォームの実行中監視の一部として信頼性メトリック・データを既に入手しているので、そのコンピュータ・プラットフォームに関する証明された信頼性メトリックの期待セットと共に、信頼性メトリック・データをスマートカードへ送る。ステップ１２０３において、スマートカードは、受け取った信頼性メトリック・データと証明された信頼性メトリック期待データを計算処理のため信頼できる第三者サーバへ送る。このメッセージは、スマートカード装置自体の識別も含む。信頼性メトリック・データと証明された信頼性メトリック期待データの信頼できるサーバへの送信は、当該コンピュータ・エンティティ自体を介して行われ、インターネットを経由して信頼できる遠隔サーバ１１０２へ送られる。
【０１２２】
ステップ１２０４において、サーバは、信頼性メトリック・データを処理して、証明された期待信頼性メトリックが実際に認証されていることを検証し、スマートカードから受け取った信頼性メトリック期待データと信頼性メトリック・データを比較する。これは、重い計算処理ステップであり、信頼できるサーバに適したものである。ステップ１２０５において、スマートカードから受け取った信頼性メトリック期待データと信頼性メトリック・データを比較した後、サーバは、コンピュータ・エンティティを経由してスマートカードへ検証データを送る。検証データは、サーバのデジタル署名を含む。ステップ１２０６において、スマートカードは、データ署名を含む検証データを受け取り、デジタル署名に従って検証データを受け入れまたは拒絶する。
【０１２３】
１つの代替的形態において、信頼できるコンポーネントは、直接第三者サーバと通信することができる。ステップ１２０２および１２０３の代わりに、信頼できるコンポーネントは、信頼できるコンポーネント自体のデジタル署名と共に、コンピュータ・プラットフォームの測定された信頼性メトリック・セットを第三者サーバへ送信し(どの第三者サーバがスマートカードカードによって信頼されているかを信頼できるコンポーネントが知っているかあるいはどの第三者サーバが使用されなければならないかスマートカードが指定する必要がある)、第三者サーバからこれら信頼性メトリックの検証の結果をデジタル署名と共に受け取る。第三者サーバは、信頼できるコンポーネントから受け取った信頼性メトリック・セットを当該信頼できるコンポーネントのタイプに関して取り出した信頼性メトリック期待セットと比較し、デジタル署名を追加する。信頼できるコンポーネントは、デジタル署名を受け取った後、デジタル署名と共に信頼性メトリックのセットをスマートカードへ送る。
【０１２４】
スマートカードの観点から見れば、スマートカードと対話するあらゆるアプリケーションは、グラフィカル・ユーザ・インタフェースであろうと別のアプリケーションであろうと、スマートカードがプラットフォームの信頼できるコンポーネントとの対話を要求するかもしれないという事実を認識しなければならない。スマートカードが第三者コンピュータ・エンティティとの対話を要求する場合、スマートカードと対話するアプリケーションは、スマートカードがネットワーク・サーバと対話することを可能にしなければならない。しかしながら、好ましい実施形態において、スマートカードは、スマートカードがコンピュータ・エンティティ上で対話しているアプリケーションに依存することなく、コンピュータ・プラットフォームの信頼性検証データへのアクセスを要求することができなければならない。
【０１２５】
例えばトランザクションを認可するようなスマートカードの機能性を使用する要求をコンピュータ・エンティティのアプリケーションから受け取ると、スマートカードは、コンピュータ・プラットフォームの状態の信頼性に関する監視情報を供給するように監視コンポーネントに要求を始動することができる。スマートカードと信頼できるコンポーネントの間の通信は、コンピュータ・エンティティとスマートカード・トークンデバイスの間の通信に対して責任を持つコンピュータ・プラットフォームに常駐するプロトコル・モジュールを介して行われる。ＰＣ上のアプリケーションがスマートカードへのアクセスを必要とする時、プロトコル・スタックがこれらの通信を取り扱う。従って、コンピュータ・エンティティは、コンピュータ・プラットフォームの信頼性の検査のようなコマンド(コマンドはスマートカードから送られ、コンピュータ・エンティティ・アプリケーションから独立している)をフィルタリングし、スマートカードから送られるコマンドに対応することができる。アプリケーションの観点からすれば、コンピュータ・エンティティの他の資源とのスマートカードの対話は透過的である。これは、"smartcards - from security tokens to intelligent adjuncts"(by Boris Balacheff, Bruno Van Wilder, and David Chan published in CARDIS 1998 Proceedings)に記載の技術をＰＣＳＣ技術と組み合わせて使用することによって可能となる。
【０１２６】
このようにして、ステップ１２０１は、種々の異なるトリガー・イベントのうちの１つの結果としてスマートカードによって始動される。１つの可能なトリガーは、監視サブシステムを通して、グラフィカル・ユーザ・インタフェースからのプラットフォーム信頼性検査要求のスマートカードによる受け取りである。この信号は、ユーザのキー・ストローク入力やポインティング・デバイス入力に応答してグラフィカル・ユーザ・インタフェースによって生成される。代替的に、スマートカードは、ローカル・コンピュータ・エンティティまたは遠隔コンピュータ・エンティティ上に常駐するアプリケーションによって生成される機能性へのアクセス要求を受け取ることができる。その後の信頼性検証は、基本的に、図１２に関連して上述されたように進められる。
【０１２７】
理想的には、サーバはスマートカードに結合される。例えば、サーバとスマートカードは、インターネット・サービス・プロバイダのような同じベンダによって提供される。例えば、スマートカードがインターネット・サービス・プロバイダによって提供され、スマートカードがコンピュータ・エンティティの信頼性を認証することができない場合、インターネット・サービス・プロバイダは、そのコンピュータ・エンティティとの通信を拒否することもできるし、あるいは、登録した加入者だけが利用できるフルセット・サービスではなく、一般的に利用可能な限定的機能セットを該コンピュータ・エンティティに提供することもできる。
【０１２８】
本発明に従った１つの特定の形態において、信頼できるコンポーネントの他に、スマートカードおよびアプリケーションが相互に通信するために必要なその他のエレメントが、従来アプリケーションに対する基本的に通常の修正によって提供されることができる。例えば、信頼できるコンポーネントへ信頼性メトリック検査の実行要求を始動することによってアプリケーションからのポーリング信号に応答するようにあらかじめプログラムされた従来のスマートカードに、そのような必要な対話が提供される。
【０１２９】
図１３には、本発明に従ったシステムの可能な第１世代実施形態のコンポーネントの論理的構成が示されている。信頼できるコンポーネント１５００は、コンピュータ・プラットフォームから独立し、信頼できる論理的空間に配置されたプロセッサおよびメモリを備える。コンピュータ・プラットフォーム１５０１は、コンピュータ・プラットフォーム空間１５０１に配置されたプロセッサおよびデータ記憶手段を備える。サブシステム１５０２およびアプリケーション１５０７はコンピュータ空間１５０１に配置されている。サブシステム１５０２は、アプリケーション・インタフェース１５０３、検証アプリケーション１５０４およびスマートカード・インタフェース１５０５を含む。スマートカード・インタフェースは、スマートカード１５０７を受け入れるため、コンピュータ・プラットフォーム空間１５０１にやはり配置されたスマートカード読取装置１５０６と通信する、アプリケーション・インタフェース１５０３は、ＰＣＩＡスタックを含む。
【０１３０】
ここで図１４を参照すれば、図１３のシステムの動作の方法が示されている。ここでの動作は、例えばスマートカード１５０７が、アプリケーションからの機能性"X"に関する要求に応答して機能性"X"を与えることに先立って、信頼できるコンポーネントと対話するための動作である。この動作方法において、ＰＣＳＣスタックへの呼び出しは、ＰＣＩＡ機能性を透過的に提供するため、ＰＣＩＡスタックを通して行われる。最良のモードにおいて、ＰＣＳＣスタックは、ＰＣＩＡスタックと機能性を統合する。ステップ１６００において、アプリケーションが、サブシステム１５０２のアプリケーション・インタフェース１５０３に配置されたＰＣＳＣスタックを通して、機能性"X"に関する要求をスマートカードに送り出す。
【０１３１】
ステップ１６０１において、ＰＣＳＣスタックはスマートカードにコマンドを送り出して、スマートカードから機能性"X"を要求する。ステップ１６０２において、スマートカードは、コンピュータ・エンティティの信頼性の検証に関する要求で応答する。ステップ１６０３において、ＰＣＳＣスタックは、ＰＣＩＡ機能性を通して、要求を受け取り、メッセージが信頼できるコンポーネントへ送られる。別のＰＣＩＡスタックの使用または既存のＰＣＩＡ機能性の使用のいずれかによって、メッセージは、信頼性検査を開始するように、信頼できるコンポーネントに送られる。これは、アプリケーション・インタフェース１５０３から信頼できるコンポーネント１５００へ直接送られる。第１の特定の形態において、検証アプリケーション１５０４およびサブシステム１５０２が、信頼性メトリック検査を実行するため信頼できるコンポーネントによって使用される。最良モードの実施形態において、信頼できるコンポーネント１５００は、それ自体の範囲内に、コンピュータ・プラットフォームに関するこれらの信頼性検査を直接実行する機能性を含む。
【０１３２】
ステップ１５０６において、信頼できるコンポーネントは、(最良モードにおいてそれ自体第１の実施形態における検証アプリケーションと連係して、)  デジタル署名および認証データと共に信頼性検証の結果をスマートカードに送る。ステップ１６０７において、スマートカードは。デジタル署名と共に信頼性検証の結果を受け取り、信頼できるコンポーネントを認証するためデジタル署名を検証し、満足できるものであれば、信頼性の検証の結果を信頼する。この結果に基づいて、スマートカードは、機能性"X"をアプリケーションに提供するか否かを決定する。そこで、アプリケーションは処理を進めることができる。スマートカードは、コンピュータ・エンティティの信頼できるコンポーネント上で信頼性チャレンジを実行するように要求することによってコンピュータ・プラットフォームの信頼性を検証する。その結果について満足すれば、このチャレンジはアプリケーションに機能性を提供することを受け入れる。
なお、下に段落番号ごとに列挙する語句は、それぞれ商標登録された製品を示している。
段落０００２：「アップル・マッキントッシュ」、「マイクロソフト・ウィンドウズ’９５、’９８オペレーティング・システム製品」、「インテル・プロセッサ」、段落０００３における「Unixオペレーティング・システム」、「マイクロソフト・ウィンドウズＮＴ４．０」
段落０００７：「マイクロソフト・ウィンドウズ４．０」、「ウィンドウズＮＴ４．０オペレーティング・システム・ソフトウェア」、「ウィンドウズＮＴ４．０オペレーティング・システム」
段落０００８：「Dr Solomons virusツール・キット」、「Norton anti-virusキット」、「マイクロソフト・ウィンドウズ４．０ソフトウェア」
段落００４６および００４９：「ウィンドウズＮＴ」。
【図面の簡単な説明】
【図１】本発明の実施形態を実行することができるシステムを示すブロック図である。
【図２】スマートカード読取装置を介してスマートカードおよびモジュール・グループと対話するように構成された信頼できる装置を含むマザーボードを示すブロック図である。
【図３】信頼できる装置の更に詳細を示すブロック図である。
【図４】コンピュータ装置の信頼性メトリックの取得に関係するステップを示す流れ図である。
【図５】信頼できるコンピュータ・プラットフォームとその信頼性を検証する信頼できるプラットフォームを含む遠隔プラットフォームとの間の通信を確立することに関連するステップを示す流れ図である。
【図６】本発明の実施形態に従って使用されるユーザ・スマートカードの動作部分を示すブロック図である。
【図７】スマートカードとホスト・プラットフォームを相互認証するプロセスの流れ図である。
【図８】第１の使用モデルに従ったスマートカードおよびコンピュータ・エンティティによって実施される処理ステップの流れ図である。
【図９】コンピュータ・エンティティおよびスマートカードの第２の動作モードを示す流れ図である。
【図１０】コンピュータ・エンティティを含むインタフェース・モジュールとスマートカードとの間の通信を示すブロック図である。
【図１１】コンピュータ・エンティティ、トークンデバイスおよび信頼できる遠隔サーバを含むコンピュータ・システムを示すブロック図である。
【図１２】図１１のシステムの動作モードを示す流れ図である。
【図１３】本発明に従ったシステムの更なる特定の実施形態を示すブロック図である。
【図１４】図１３のシステムの動作を示す流れ図である。
【符号の説明】
１０    コンピュータ・プラットフォーム
１９    トークンデバイス、スマートカード
２４    監視コンポーネント
【図１】
0004219561.tif 000002
【図２】
0004219561.tif 000003
【図３】
0004219561.tif 000004
【図４】
0004219561.tif 000005
【図５】
0004219561.tif 000006
【図６】
0004219561.tif 000007
【図７】
0004219561.tif 000008
【図８】
0004219561.tif 000009
【図９】
0004219561.tif 000010
【図１０】
0004219561.tif 000011
【図１１】
0004219561.tif 000012
【図１２】
0004219561.tif 000013
【図１３】
0004219561.tif 000014
【図１４】
0004219561.tif 000015