JP4219561B2 - 信頼できる計算プラットフォームのためのスマートカード・ユーザインターフェイス - Google Patents

信頼できる計算プラットフォームのためのスマートカード・ユーザインターフェイス Download PDF

Info

Publication number
JP4219561B2
JP4219561B2 JP2000604287A JP2000604287A JP4219561B2 JP 4219561 B2 JP4219561 B2 JP 4219561B2 JP 2000604287 A JP2000604287 A JP 2000604287A JP 2000604287 A JP2000604287 A JP 2000604287A JP 4219561 B2 JP4219561 B2 JP 4219561B2
Authority
JP
Japan
Prior art keywords
smart card
data
computer
reliability
response
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.)
Expired - Fee Related
Application number
JP2000604287A
Other languages
English (en)
Other versions
JP2002539656A (ja
JP2002539656A5 (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.)
HP Inc
Original Assignee
Hewlett Packard Co
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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=26315223&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=JP4219561(B2) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Priority claimed from GBGB9905056.9A external-priority patent/GB9905056D0/en
Priority claimed from GBGB9929697.2A external-priority patent/GB9929697D0/en
Application filed by Hewlett Packard Co filed Critical Hewlett Packard Co
Publication of JP2002539656A publication Critical patent/JP2002539656A/ja
Publication of JP2002539656A5 publication Critical patent/JP2002539656A5/ja
Application granted granted Critical
Publication of JP4219561B2 publication Critical patent/JP4219561B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0853Network architectures or network communication protocols for network security for authentication of entities using an additional device, e.g. smartcard, SIM or a different communication terminal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/34User authentication involving the use of external additional devices, e.g. dongles or smart cards
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • G06F21/445Program or device authentication by mutual authentication, e.g. between devices or programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/009Trust
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2103Challenge-response

Landscapes

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

Description

【0001】
【発明の属する技術分野】
本発明は、コンピュータに関するもので、特に、信頼できる状態に置くことが可能なコンピュータ・エンティティおよびそのようなコンピュータ・エンティティが信頼できる状態にあるとそのユーザが確信できるように該コンピュータ・エンティティを動作させる方法に関するものである。
【0002】
【従来の技術】
従来技術のマスマーケットの計算プラットフォーム(コンピュータ・プラットフォームまたは単にプラットフォームとも呼ぶ)は、アップル・マッキントッシュのような周知のパーソナル・コンピュータ(PC)とその競合製品、および増加しつつあるパームトップやラップトップ・パーソナル・コンピュータを含む。一般的には、そのような機種の市場は、家庭すなわち消費者および企業という2つのカテゴリに分類される。家庭用または消費者用のコンピュータ・プラットフォームのための一般的要件は、比較的高い処理能力、インターネット・アクセス機能およびコンピュータ・ゲームを扱うためのマルチメディア機能である。このタイプのコンピュータ・プラットフォームに関しては、マイクロソフト・ウインドウズ'95、'98オペレーティング・システム製品およびインテル・プロセッサが市場を支配する。
【0003】
一方、多くのアプリケーションにおけるビジネス使用に関しては、サーバ・プラットフォームが、集中的データ記憶装置および複数のクライアント・ステーションのためのアプリケーション機能性を提供する。ビジネス用途に関する重要な基準は、信頼性、ネットワーキング機能およびセキュリティ機能である。そのようなプラットフォームとして、Unixオペレーティング・システムと共に、マイクロソフト・ウインドウズNT4.0が広く使用されている。
【0004】
"電子商取引"として知られているインターネット上で取り引きされる商業活動の増加に伴って、家庭用および商取引用タイプ両方のインターネット上でコンピュータ・プラットフォーム間のデータ・トランザクション(取引)を可能にすることに大きな関心が寄せられている。そのようなシステムを受け入れる場合の基本的問題は、そのようなトランザクションを処理するため相互に対話するコンピュータ・プラットフォーム間の信頼性の問題である。
【0005】
コンピュータ・プラットフォームのセキュリティおよび信頼性を向上させることを目標とするいくつかの従来技術方式がある。これらは、主として、アプリケーション・レベルでのセキュリティ機能の活用に依存する。すなわち、これらのセキュリティ機能は、オペレーティング・システムのカーネルに本質的に埋め込まれず、また、コンピュータ・プラットフォームの基本的ハードウェア・コンポーネントにも組み込まれない。スマートカード(smart card)を含むポータブル・コンピュータ装置がすでに市場に登場している。スマートカードは、ユーザ固有データを含み、そのデータはスマートカード読取装置を介してコンピュータに入力される。現在、そのようなスマートカードは、従来のパーソナル・コンピュータへの付加機構であり、既知のコンピュータの外枠に組み込まれているケースもある。これらの従来技術方式がコンピュータ・プラットフォームのセキュリティを向上させる方向に進んでいるとはいえ、従来技術方式によって得られるセキュリティおよび信頼性のレベルは、コンピュータ・プラットフォーム間の自動トランザクションの広範囲にわたるアプリケーションを使用可能にするためには不十分であるとみなされる。ビジネスにとって、広範囲にわたる電子商取引に高価なトランザクションを公然と含ませることができるようにするためには、基礎をなす技術の信頼性における確信が必要とされる。
【0006】
従来技術コンピュータ・プラットフォームは、その固有のセキュリティを向上させる過程で次のようないくつかの問題を持つ:
・コンピュータ・プラットフォームの動作状態およびプラットフォームの範囲内のデータの状態は動的で予測が難しい。コンピュータ・プラットフォームおよびそのデータの状態は動的に絶えず変化し、コンピュータ・プラットフォーム自体も動的に変化するので、コンピュータ・プラットフォームが正しく動作しているか否かを判断することは難しい。
・セキュリティの観点から見て、商用コンピュータ・プラットフォーム、特に、クライアント・プラットフォームは、未許可の修正に対して弱い環境にしばしば配置される。脆弱性の主要な領域は、ネットワーク接続を経由してロードされるソフトウェアまたはユーザによる修正を含む。特に、従来のコンピュータ・プラットフォームは、種々のレベルの悪意を持つウイルス・プログラムによる攻撃に弱い。
・コンピュータ・プラットフォームはアップグレードされたり、その能力が、ハードディスク・ドライブや周辺機器ドライバなどのコンポーネントの追加または削除のような物理的な修正によって拡張または制限されたりする。
【0007】
オペレーティング・ソフトウェアに組み入れることによってコンピュータ・システムにセキュリティ機能を提供することは周知の方法である。このようなセキュリティ機能は、主にローカル・システムのユーザのコミュニティの範囲内で情報の分割を行うことを目指している。周知のマイクロソフト・ウインドウズ4.0においては、"システム・ログ・イベント・ビューワ"と呼ばれる監視機能が存在する。この機能によれば、プラットフォームの範囲内で発生するイベントのログ(記録)が、ウインドウズNTオペレーティング・システム・ソフトウェアを使用してシステム管理者が検査することができるように、イベント・ログ・データ・ファイルに記録される。この機能は、システム管理者によるあらかじめ選択されたイベントのセキュリティ監視を可能にする方向へとにかく進む。ウインドウズNT4.0オペレーティング・システムにおけるイベント記録機能は、システム監視を提供する。
【0008】
コンピュータ・プラットフォームの全般的セキュリティに関しては、純粋にソフトウェアに基づくシステムは、例えば何千もの異なるバリエーションを持つウイルスによる攻撃に弱い。ウイルスを検出し修正するいくつかのベンダ・アプリケーションが知られている。その中には、例えば、Dr Solomons virusツール・キットまたはNorton anti-virusキットが含まれる。マイクロソフト・ウインドウズ4.0ソフトウェアは、既知のウイルスを捜すウイルス防御ソフトウェアを含む。しかしながら、ウイルス圧力は絶えず増大し、ウイルス防御ソフトウェアは、より新しい未知のウイルスに対して信頼できる防御を提供しない。ウイルスの新しい圧力が生まれ、コンピュータおよびインターネット環境に絶えず放出される。
【0009】
【発明が解決しようとする課題】
コンピュータ・エンティティのための従来の監視システムは、ネットワーク監視機能に焦点をあてていて、そこでは、管理者がネットワーク管理ソフトウェアを使用して複数のネットワーク・コンピュータの実行を監視する。このような従来のシステムにおいては、システムにおける信頼性は、システムにおける各コンピュータ・プラットフォームの各ハードウェア・ユニットの個々の信頼性のレベルに置かれず、ネットワークにおける各コンピュータを監視しているネットワーク管理者に依存する。従来技術システムは、例えばインターネット経由でアクセスされるような異なるネットワーク上で異なるオペレーティング・システムを実行している遠隔コンピュータの動作を検証することができない。従来技術システムにおいては、コンピュータ・プラットフォームとコンピュータ・プラットフォームのユーザとの間で信頼性を確立する点に困難がある。
【0010】
【課題を解決するための手段】
本発明の目的の1つは、当該コンピュータ・エンティティが、外部の影響によって破壊されてなく、予測可能な、既知の形態で動作しているという高い度合いの確信をユーザが持つことができるコンピュータ・エンティティを提供することである。
【0011】
本発明の別の目的の1つは、コンピュータ・エンティティの信頼性がそのユーザによって要求される特定タスクまたはタスク集合またはタスク・タイプを実行するために十分であるか否かを当該コンピュータ・エンティティのユーザが判断するタスクを単純化することである。
【0012】
特定の実施形態において、ユーザは、携帯可能で、コンピュータ・エンティティから分離できる、信頼できるトークンデバイスを備える。トークンデバイスは、ユーザが使用を望むコンピュータ・エンティティが信頼できることを検証するためユーザによって信頼されている。トークンデバイスは、一般的ケースでは、1つの特定のコンピュータ・エンティティの信頼性を検証することに制限されてなく、多数のコンピュータ・エンティティのいずれか1つまたはいずれか複数に関して動作できる汎用性を有している。
【0013】
本発明の第1の側面に従って提供されるコンピュータ・システムは、第1のデータ・プロセッサおよび第1のデータ記憶手段を有するコンピュータ・プラットフォーム、第2のデータ・プロセッサおよび第2のデータ記憶手段を有し、前記コンピュータ・プラットフォームに関する複数のデータ検査を実行するように構成された監視コンポーネント、および、前記コンピュータ・プラットフォームおよび前記監視コンポーネントから物理的に独立し分離できるトークンデバイスを備える。該コンピュータ・システムにおいて、前記トークンデバイスは、1つの動作モードにおいて、前記監視コンポーネントに信頼性チャレンジを送るように動作し、該信頼性チャレンジに対する満足できる応答を受け取らない限り、該トークンデバイスは該トークンデバイスが実行できる特定のアクションを実行しない。前記トークンデバイスは、前記信頼性チャレンジに対する詳細な応答を受け取り、受け取った信頼性応答を処理してそれを解読することができる。
【0014】
当該システムは第三者サーバを更に備えることができる。この場合、前記信頼性チャレンジに対する応答が該第三者サーバに送られる。前記監視コンポーネントは、信頼性チャレンジの中で前記トークンデバイスによって要求されていれば、詳細な信頼性応答を前記第三者サーバに送る。前記監視コンポーネントが前記トークンデバイスに詳細な信頼性応答を報告し、前記詳細な信頼性応答の解読について第三者サーバの援助を必要とすれば、前記トークンデバイスは前記信頼性応答を前記第三者サーバに送る。前記第三者サーバは、前記トークンデバイスが前記信頼性応答を解読することができる形式に前記信頼性応答を簡略化することができる。前記第三者サーバは、前記トークンデバイスに前記簡略化された信頼性応答を送ることができる。該システムは、更に、前記トークンデバイスに対して前記第三者サーバを認証するデジタル署名データを前記簡略化信頼性応答に加えるステップを実行することができる。
【0015】
前記トークンデバイスは、アクションをとるように要求されることができる。代替的に、前記トークンデバイスがアクションをとるように要求することもできる。1つの動作モードにおいて、前記トークンデバイスは、前記信頼性チャレンジに対する前記満足できる応答を受け取る場合、前記コンピュータ・プラットフォームにイメージ・データを送り、該記コンピュータ・プラットフォームが該イメージ・データを表示する。好ましくは、前記監視コンポーネントは、それ自体の識別性を確立する機能を持つ。該システムは、好ましくは、更に、前記監視コンポーネントと前記トークンデバイスとの間を接続するインタフェース手段を備える。好ましくは、前記監視コンポーネントが、前記コンピュータ・プラットフォームの状態を記述するデータを含む前記データ検査を前記トークンデバイスに報告するように、前記コンピュータ・エンティティが構成される。前記特定のアクションは、前記システムのユーザに代わって前記コンピュータ・プラットフォームにトランザクションを実行する権限を与えることを含む。
【0016】
本発明の第2の側面に従って提供されるコンピュータ・システムは、第1のデータ・プロセッサおよび第1のデータ記憶手段を有するコンピュータ・プラットフォーム、第2のデータ・プロセッサおよび第2のデータ記憶手段を有し、前記コンピュータ・プラットフォームに関する複数のデータ検査を実行するように構成された監視コンポーネント、および、前記コンピュータ・プラットフォームおよび前記監視コンポーネントから物理的に独立し分離できるトークンデバイスを備える。該システムにおいて、前記トークンデバイスは、前記監視コンポーネントに信頼性チャレンジを送り、前記監視コンポーネントが該信頼性チャレンジに対する応答を生成し、該トークンデバイスは、該信頼性チャレンジに対する満足できる応答を受け取ると、前記コンピュータ・プラットフォームの正しい動作を検証する検証データを前記コンピュータ・プラットフォームに送り、前記コンピュータ・プラットフォームは、表示装置に該検証データを表示する。
【0017】
本発明の第3の側面に従って提供されるコンピュータ・エンティティは、第1のデータ・プロセッサおよび第1のデータ記憶手段を有するコンピュータ・プラットフォーム、第2のデータ・プロセッサおよび第2のデータ記憶手段を有し、前記コンピュータ・プラットフォームに関する複数のデータ検査を実行するように構成され、それ自体の識別性を確立する機能を有する監視コンポーネント、および、トークンデバイスと通信するためのインタフェース手段を備える。該コンピュータ・エンティティは、前記監視コンポーネントが前記コンピュータ・プラットフォームの状態を記述するデータを含む前記データ検査を前記トークンデバイスに報告するように構成される。
【0018】
好ましくは、前記トークンデバイスと前記インタフェース手段の間の通信において、前記監視コンポーネントが前記コンピュータ・プラットフォームの動作状態を記述するデータを取得するため、前記コンピュータ・プラットフォームに関する監視動作を実行するように前記監視コンポーネントが起動される。好ましい実施形態において、前記インタフェース手段が前記監視コンポーネントの範囲内に実質的に全体として配置される。代替実施形態においては、前記インタフェース手段が前記コンピュータ・プラットフォームを含むことができる。前記インタフェース手段は、好ましくは、PCSCワークグループPC/SC仕様1.0に従ったPCSCスタックを含む。前記監視コンポーネントは、前記状態データを独立して認証する認証データを取得し、該認証データを前記インタフェース手段に提供するように構成された検証手段を含むことができる。前記インタフェース手段は、能動的プロトコルに従ってデータを送受するように構成されることができる。
【0019】
本発明の第4の側面に従って、第1のデータ・プロセッサおよび第1のメモリ手段を有するコンピュータ・プラットフォームならびに第2のデータ・プロセッサおよび第2のメモリ手段を有する監視コンポーネントを備えるコンピュータ・エンティティの状態の検証を取得する方法が提供される。該方法は、前記コンピュータ・エンティティのインタフェースを経由して問い合わせ要求信号を受け取るステップ、受け取った前記問い合わせ要求信号に応答して前記監視コンポーネントが前記コンピュータ・プラットフォームの監視動作を実行するステップ、および、前記監視コンポーネントが前記監視動作の結果を記述する結果メッセージを前記インタフェースへ報告するステップを含む。
【0020】
前記監視動作は、前記監視コンポーネントが前記コンピューテタ・プラットフォームのコンポーネントに関する1つまたは複数のデータ検査を実行するステップ、および、前記監視コンポーネントが前記データ検査と共に認証済基準データを報告することができるステップを含む。前記認証済基準データは、前記コンピュータ・プラットフォームの特定のコンポーネントを測定する時に期待されるべきメトリック・セットを含み、前記基準データを認証するエンティティを識別するデジタル署名データを含む。好ましくは、前記監視動作の検証を報告する前記のステップは、前記監視動作の結果を記述する確認信号をトークンデバイスに送るステップを含む。好ましくは、前記結果メッセージは、前記コンピュータ・エンティティの外部にあるトークンデバイスへ前記インタフェースによって伝送される。前記監視動作の結果は、確認データの視覚表示を生成することによって報告される。該方法は、更に、前記監視コンポーネントを識別するデジタル署名データを前記結果に加えるステップ、および、前記インタフェースから前記結果メッセージおよび前記デジタル署名データを伝送するステップを更に含む。
【0021】
本発明の第5の側面に従って、コンピュータ・プラットフォームおよび監視コンポーネントを備えるコンピュータ・エンティティの状態の検証を取得する方法が提供される。該方法は、アプリケーションがトークンデバイスの機能性へのアクセスを要求するステップ、機能性に対するアクセスの前記要求に応答して、前記トークンデバイスが前記監視コンポーネントから検証データを要求する要求信号を生成するステップ、該検証データ要求に応答して、前記監視コンポーネントが、監視動作の結果を記述する結果メッセージを前記トークンデバイスへ報告するステップ、および、満足できる前記結果メッセージの受領によって、前記トークンデバイスが、前記アプリケーションへ前記機能性を提供するステップを含む。
【0022】
該方法は、更に、第三者サーバに送られる信頼性チャレンジに対する応答を含む。前記監視コンポーネントは、前記信頼性チャレンジの中で前記トークンデバイスによって要求されていれば、前記第三者サーバへ詳細な信頼性応答を送る。前記監視コンポーネントが前記トークンデバイスに詳細な信頼性応答を報告し、前記詳細な信頼性応答の解読について第三者サーバの援助を必要とすれば、前記トークンデバイスは前記信頼性応答を前記第三者サーバに送る。前記第三者サーバは、前記トークンデバイスが前記信頼性応答を解読することができる形式に前記信頼性応答を簡略化することができる。前記第三者サーバは、前記トークンデバイスに前記簡略化された信頼性応答を送ることができる。該方法は、更に、前記トークンデバイスに対して前記第三者サーバを認証するデジタル署名データを前記簡略化信頼性応答に加えるステップを含む。前記トークンデバイスは、アクションとるように要求されることができる。代替的に、前記トークンデバイスがアクションとるように要求することもできる。
【0023】
本発明の第6の側面に従って、第1のプロセッサ手段および第1のデータ記憶手段を有するコンピュータ・プラットフォームならびに第2のプロセッサ手段および第2のメモリ手段を有する監視コンポーネントを備えるコンピュータ・エンティティの動作の信頼性を第3のデータ・プロセッサおよび第3のメモリ手段を有するトークンデバイスによって検査する方法が提供される。該方法は、前記コンピュータ・プラットフォームから受け取ったポーリング信号をアプリケーション・プログラムから受け取ることに応答するように前記トークンデバイスをプログラムするステップ、前記トークンデバイスが前記コンピュータ・プラットフォームからのポーリング信号を受け取るステップ、前記受け取ったポーリング信号に応答して、前記トークンデバイスが前記監視コンポーネントによる検証動作を要求する信号を生成するステップ、および、前記監視コンポーネントが前記トークンデバイスから受け取った前記信号に応答して前記コンピュータ・プラットフォームの検証動作を実行するステップを含む。
【0024】
本発明の第7の側面に従って、データ記憶装置およびコンピュータ・エンティティと通信する手段を備え、該コンピュータ・エンティティの状態を検証するトークンデバイスが提供される。この場合、前記データ記憶装置は、前記コンピュータ・エンティティから状態データを要求する状態要求メッセージを記憶するように構成される。該トークンデバイスは、更に、データ・プロセッサを含む。また、該トークンデバイスは、PC/SC仕様1.0に従って動作するポーリング信号に応答するように構成され、能動的プロトコルに従った前記ポーリング信号に応答して前記コンピュータ・エンティティ上のソフトウェア・スタックによって取り扱われるコマンドを始動することができる機能を持つ。
【0025】
本発明の第8の側面に従って、コンピュータ・エンティティの外部に備わるトークンデバイスによって該コンピュータ・エンティティの状態を検証する方法が提供される。該方法は、前記トークンデバイスがポーリング信号を受け取るステップ、前記トークンデバイスが前記コンピュータ・エンティティの状態の検証を取得する要求を作成することによって前記ポーリング信号に応答するステップ、前記トークンデバイスが前記検証の結果を記述する結果メッセージを受け取るステップを含む。
【0026】
該方法は、更に、第三者サーバに信頼性チャレンジに対する応答を送るステップを含む。前記監視コンポーネントは、前記信頼性チャレンジの中で前記トークンデバイスによって要求されていれば、前記第三者サーバへ詳細な信頼性応答を送る。前記監視コンポーネントが、前記トークンデバイスに詳細な信頼性応答を報告し、前記詳細な信頼性応答の解読について第三者サーバの援助を必要とすれば、前記トークンデバイスは前記信頼性応答を前記第三者サーバに送る。前記第三者サーバは、前記トークンデバイスが前記信頼性応答を解読することができる形式に前記信頼性応答を簡略化することができる。前記第三者サーバは、前記トークンデバイスに前記簡略化された信頼性応答を送ることができる。該方法は、更に、前記トークンデバイスに対して前記第三者サーバを認証するデジタル署名データを前記簡略化信頼性応答に加えるステップを含む。前記トークンデバイスは、アクションをとるように要求されることができる。代替的に、前記トークンデバイスは、アクションを取るように要求することもできる。
【0027】
本発明は、トークンデバイスが監視コンポーネントを使用してコンピュータ・プラットフォームの状態の検証を取得することができる方法を含む。この場合、該監視コンポーネントは、前記コンピュータ・プラットフォームに関する少なくとも1つのデータ検査を実行し、それ自体の識別性を確立し、前記少なくとも1つのデータ検査の報告を作成する機能を有し、前記トークンデバイスは、データ処理能力を持ち、予期された形態で動作し、前記コンピュータ・プラットフォームおよび前記監視コンポーネントから物理的に分離可能で、暗号化データ処理能力を持ち、前記監視コンポーネントが、その識別性を前記トークンデバイスに証明し、前記コンピュータ・プラットフォームについて実行された少なくとも1つのデータ検査を前記トークンデバイスに報告する。
【0028】
本発明は、データ・プロセッサおよびメモリ装置を備え、少なくとも1つのデータ処理または信号送信機能を実行するように構成されたトークンデバイスを含む。該トークンデバイスは、外部から信頼性検査データを受け取り、供給された前記信頼性検査データが満足できるものであれば、前記機能の1つを実行し、受け取った前記信頼性検査データが満足できるものでなければ、前記トークンデバイスは前記の機能を拒絶する。
【0029】
【発明の実施の形態】
本発明を実施する上で最良と考える実施形態を、代替的実施形態と共に、以下に例示る。以下の記述において、本発明の完全な理解を提供するため、多数の特定の詳細が説明される。しかしながら、当業者に明らかなように、本発明は、これらの特定の詳細に限定されることなく実施されることが可能である。一方、周知の方法および構造は、本発明を不必要に曖昧にするおそれがあるので、詳細に記述されてない。
【0030】
本発明の特定の実施形態は、処理手段とメモリ手段を持つコンピュータ・プラットフォームおよび物理的に該コンピュータ・プラットフォームと関連づけられる監視コンポーネントを含む。監視コンポーネントは、コンピュータ・プラットフォームからメトリック・データを収集することによってコンピュータ・プラットフォームの動作を監視し、コンピュータ・プラットフォームと通信する他のエンティティに対して該コンピュータ・プラットフォームが正しく機能していることを検証する機能を持つもので、本明細書において以下"信頼できるコンポーネント"(または"信頼できる装置")と呼称される。トークンデバイスは、コンピュータ・プラットフォームの人間ユーザにとって個人的なものであり、コンピュータ・プラットフォームに関連する信頼できるコンポーネントと対話して、コンピュータ・プラットフォームの信頼性を該ユーザに対して検証する。
【0031】
コンピュータ・エンティティのユーザは、そのような信頼できるトークンデバイスの使用によってコンピュータ・エンティティとの信頼を確立する。信頼できるトークンデバイスは、個人的で携帯可能な装置であって、データ処理能力を持ち、ユーザがそれに対して高いレベルの信頼性を与える。信頼できるトークンデバイスは、次のような機能を実行することができる。
・例えば音声または視覚表示によってユーザにとって十分明確な方法でコンピュータ・プラットフォームの正しい動作を検証する;
・監視コンポーネントが関連するコンピュータ・プラットフォームの正しい動作の証拠を提供するように監視コンポーネントにチャレンジを送る;
・監視コンポーネントがコンピュータ・エンティティの正しい動作について満足できる証拠を提供したか否かに応じてコンピュータ・プラットフォームとトークンデバイスの対話のレベルを確立し、正しい動作に関する証拠がトークンデバイスによって受け取られない場合コンピュータ・エンティティとの対話を保留する。
【0032】
トークンデバイスは、例えばコンピュータ・プラットフォームに常駐するアプリケーションによってまたは遠隔アプリケーションによってアクションをとるように要求されることもあれば、代替的にトークンデバイス自体がアクションを要求することもできる。
【0033】
本明細書において、物理的または論理的コンポーネントに関連して使用される場合の"信用できる"という用語は、物理的または論理的コンポーネントが期待される形態で常に動作することを意味するように使われる。そのようなコンポーネントの動作は、予測可能で、わかっているものである。信頼できるコンポーネントは、未許可の修正に対して高度の抵抗力を持つ。本明細書において、"コンピュータ・エンティティ"という用語は、コンピュータ・プラットフォームおよび監視コンポーネントを記述するために使用される。
【0034】
本明細書において、"コンピュータ・プラットフォーム"という用語は、少なくとも1つのデータ・プロセッサおよび少なくとも1つのデータ記憶手段を意味するように使用される。コンピュータ・プラットフォームは、必須とは限らないが通常は、複数のドライバ、関連するアプリケーションおよびデータ・ファイルのような通信と関連づけられ、例えばインターネットへの接続、外部ネットワークへの接続などの手段によって、あるいは、例えばCD−ROM、フロッピーディスク、リボン・テープなどのデータ記憶媒体上に記憶されているデータを受け取ることができる入力ポートを備えることによって、ユーザまたは別のコンピュータ・プラットフォームなどの外部エンティティと対話することができる。用語"コンピュータ・プラットフォーム"は、コンピュータ・エンティティの主データ処理および記憶機構を包含する。
【0035】
各コンピュータ・エンティティにおける信頼できるコンポーネントの使用によって、異なるコンピュータ・プラットフォーム間で一定レベルの信頼が利用可能とされる。遠隔的にまたはコンピュータ・エンティティの表示画面を介するかいずれかの形態で、そのようなプラットフォームにその状態について照会を行い、それを信頼できる状態と比較することが可能である。そのような照会によって収集された情報は、プラットフォームの種々のパラメータを監視するコンピュータ・エンティティの信頼できるコンポーネントによって提供される。信頼できるコンポーネントによって提供される情報は、暗号認証によって認証され、信頼できることとなる。
【0036】
信頼できるコンポーネントの存在は、コンピュータ・エンティティにとってローカルあるいは遠隔いずれかの第三者ソフトウェアがコンピュータ・エンティティの認証と識別の証明を取得するためコンピュータ・エンティティと通信し、そのコンピュータ・エンティティの測定された信頼性メトリックを取り出すことを可能にする。次に、照会されたコンピュータ・エンティティの状態が、第三者ソフトウェアの項目が当該コンピュータ・エンティティと通信することを望む(例えば商取引プロセスのような)対話にとって適切であるか否かを判断するため、第三者ソフトウェアは、信頼できるコンポーネントから取得したメトリックを期待されるメトリックと比較することができる。
【0037】
コンピュータ・エンティティ間のこのようなタイプの信頼性検証は、コンピュータ・エンティティの信頼できるコンポーネントと通信している第三者ソフトウェアの観点からすれば十分機能するが、人間であるユーザがそのコンピュータ・エンティティまたはその人がユーザ・インタフェースを介して対話する他のコンピュータ・エンティティとの一定レベルの信頼できる対話を取得することができる手段を提供しない。
【0038】
本発明の1つの好ましい実施形態において、信頼できるトークンデバイスが、コンピュータ・エンティティの信頼できるコンポーネントに問い合わせを行い、信頼できるコンポーネントによって検証されたものとしてコンピュータ・エンティティの状態についてユーザに報告するためユーザによって使用される。
【0039】
本発明の実施形態において使用される"信頼できるプラットフォーム"をここで説明する。これは、物理的な信頼できる装置のコンピュータ・プラットフォームへの組込みによって達成される。この物理的な信頼できる装置は、プラットフォームの信頼性メトリックを提供する測定されたデータにプラットフォームの識別を結合する機能を有する。これら識別情報および信頼性メトリックが、プラットフォームの信頼性を保証するように準備されている信頼できる機関によって提供される期待値と比較される。(注:以下の記述において、"信頼できる機関"は、その英語表記である"trusted party"の頭文字をとって"TP"と略称される場合がある。) 一致すれば、信頼性メトリックの範囲に応じて、少なくともプラットフォームの一部が正しく動作していることを意味する。
【0040】
ユーザは、他のデータをプラットフォームと交換する前にプラットフォームの正しい動作を検証する。これは、ユーザが信頼できる装置にその識別と信頼性メトリックを提供するように要求することによって行われる。(オプションとして、信頼できる装置自体がプラットフォームの正しい動作を検証することができなければ、信頼できる装置は識別の証拠を提供することを拒否するであろう)。ユーザは、識別の証明および識別メトリックを受け取って、それらを真実であると信じる値と比較する。そのような適切な値は、ユーザによって信頼されているTPまたは別のエンティティによって提供される。信頼できる装置によって報告されるデータがTPによって提供されるものと同じであれば、ユーザは、そのプラットフォームを信頼する。これは、ユーザが当該エンティティを信頼するからである。エンティティは、前もってその装置の識別の有効性を確認し、そのプラットフォームの適切な信頼性メトリックを決定しているので、そのプラットフォームを信頼する。
【0041】
一旦ユーザがプラットフォームの信頼できる動作を確立すれば、ユーザはその他のデータをプラットフォームと交換する。ローカルのユーザについては、そのような交換は、プラットフォーム上で動くいくつかのソフトウェア・アプリケーションと対話することで行われるであろう。遠隔ユーザの場合、交換は安全なトランザクションを必要とするかもしれない。いずれにせよ、交換されるデータは、信頼できる装置によって"署名される"。このようにして、ユーザは、動作が信頼できるプラットフォームとそのデータが交換されているという一層大きい確信を持つことができる。
【0042】
信頼できる装置は、暗号プロセスを使用するが、そのような暗号プロセスに対する外部インタフェースを必ずしも提供するというわけではない。また、一層望ましい実施形態は、信頼できる装置を不正操作不可能とし、他のプラットフォーム機能に対するアクセスを不可能にすることによって秘密保護を行い、未許可の修正に対して実質的に防護された環境を提供することである。不正操作防止は不可能であるので、不正操作に抵抗力のあるまたは不正操作検出可能な信頼できる装置が次善の策である。従って、信頼できる装置は、好ましくは、不正操作抵抗力のある1つの物理的コンポーネントから成る。
【0043】
不正操作抵抗力に関連した技法は、セキュリティの分野の専門家には周知のものである。そのような技法は、(信頼できる装置の適切なカプセル化のような)不正操作抵抗方法、(仕様電圧、X線逸脱の検出、または信頼できる装置枠における物理的信頼性の喪失の検出のような)不正操作検出方法、および不正操作検出の時データを削除する方法などを含む。更に、いくつかの適切な技法が、http://www.cl.cam.ac.uk/~mgk25/tamper.hlmlに紹介されている。理解されることであろうが、不正操作抵抗方法は本発明の最も望ましい機能であるとはいえ、それは、本発明の通常の動作に含まれず、従って、本発明の適用範囲外にあり、ここで詳細な記述は行わない。
【0044】
信頼できる装置は、製作が困難でなければならないので、好ましくは物理装置であり、また、偽造が困難でなければならないので、最も好ましくは、不正操作抵抗機能を持つ。信頼できる装置は、ローカルおよび遠隔の両方で識別を証明することが必要とされるので、典型的には、暗号化プロセスを使用する能力を持つエンジンを備え、関係するプラットフォームのなんらかの信頼性メトリックを測定する少なくとも1つの方法を含む。
【0045】
図1には、信頼できるプラットフォーム10が例示されている。プラットフォーム10は、プラットフォームの物理的"ユーザ・インタフェース"を提供するキーボード14、マウス16および表示装置(VDU)18という標準的機構を含む。信頼できるプラットフォームの本実施形態は、また、スマートカード読取装置12を含む。スマートカード読取装置12の横には、スマートカード19が示されている。スマートカード19は、以下に記述されるように、信頼できるプラットフォームとのユーザ対話を可能にする。プラットフォーム10には、複数のモジュール15が含まれる。これらは、該プラットフォームにとって適切なその他の機能エレメントであり、本質的にどのような種類のものでもよい(そのようなエレメントの機能は本発明にとって重要な意味を持つものではないので、これ以上の記述は行わない)。信頼できるコンピュータ・エンティティの付加的コンポーネントは、典型的には、1つまたは複数のローカル・エリア・ネットワーク(LAN)ポート、1つまたは複数のモデム・ポートおよび1つまたは複数の電源、冷却ファンなどを含む。
【0046】
図2に示されているように、信頼できるコンピュータ・プラットフォーム10のマザーボード20は、主プロセッサ21、メイン・メモリ22、信頼できる装置24、データ・バス26、それぞれの制御線27および線28、プラットフォーム10と入出力装置(IO)23に関するBIOSプログラムを含むBIOSメモリ29を含む。BIOSプログラムは、マザーボード、スマートカード読取装置12、キーボード14、マウス16および表示装置VDU18(および更にモデム、プリンタ、スキャナなどの周辺機器)というコンポーネントの間の対話を制御する。メイン・メモリ22は、典型的には、ランダム・アクセス・メモリ(RAM)である。動作に関しては、プラットフォーム10は、ハードディスク(図示されていない)からRAMへオペレーティング・システム(例えばウインドウズNT)をロードする。更に、プラットフォーム10は、プラットフォーム10によって実行されるプロセスまたはアプリケーションをハードディスク(図示されてない)からRAMにロードする。
【0047】
コンピュータ・エンティティは、物理的と同様に、論理的アーキテクチャを持つと見なされる。論理的アーキテクチャは、コンピュータ・プラットフォームと信頼できるコンポーネントの間で、図1乃至図4に示されているものと同様の基本的区分を有する。すなわち、信頼できるコンポーネントは、物理的に関連するコンピュータ・プラットフォームと論理的に独立している。コンピュータ・エンティティは、コンピュータ・プラットフォーム(第1のプロセッサと第1のデータ記憶手段)に物理的に位置する論理的空間であるユーザ空間および信頼できるコンポーネントに物理的に位置する論理的空間である信頼できるコンポーネント空間を含む。ユーザ空間には、1つまたは複数のドライバ、1つまたは複数のアプリケーション・プログラム、ファイル記憶領域、スマートカード読取装置、スマートカード・インタフェース、および、ユーザ空間において動作を実行し、信頼できるコンポーネントに報告を送り返すことができるソフトウェア・エージェントがある。信頼できるコンポーネント空間は、信頼できるコンポーネントに物理的に位置し、それに基づく論理的領域であって、信頼できるコンポーネントの第2のデータ・プロセッサおよび第2のメモリ領域によってサポートされる。表示装置18は信頼できるコンポーネント空間から直接イメージを受け取る。コンピュータ・エンティティの外部には、外部通信ネットワーク、すなわち、(1つまたは複数のモデム・ポートを含む)ドライバを経由してユーザ空間へ接続されたインターネット、種々のローカル・エリア・ネットワーク、広域ネットワークがある。外部のユーザ・スマートカードは、ユーザ空間においてスマートカード読取装置に入力する。
【0048】
パーソナル・コンピュータにおいて、典型的には、BIOSプログラムは、特別な予約メモリ領域に置かれる。特別な予約メモリ領域の最初の上位64KBは、システム・メモリ(アドレスF000hからFFFFh)であって、主プロセッサは、業界標準に従って、このメモリ位置を最初に見に行くように構成される。
【0049】
当該プラットフォームと従来のプラットフォームとの重要な相違は、リセットの後、主プロセッサは信頼できる装置によって初期的に制御され、プラットフォーム固有のBIOSプログラムへ制御が渡され、次に、通常通りすべての入出力装置が初期化される点である。BIOSプログラムの実行後、通常通り、典型的にはハードディスク装置(図示されてない)からメイン・メモリ22にロードされるウインドウズNTのようなオペレーティング・システム・プログラムへBIOSプログラムによって制御が渡される。
【0050】
明らかなように、このような通常手続きからの変更は、業界標準の実施形態に対する修正を必要とする。この修正は、主プロセッサ21が信頼できる装置24をアドレスしてその最初の命令を受け取るようにするものである。この変更は、単に、主プロセッサ21に異なるアドレスをハードコードすることによって達成される。代替的方法としては、信頼できる装置24に標準BIOSプログラム・アドレスを割り当てることも可能であり、これは、主プロセッサ構成に何の変更をも必要としない。
【0051】
BIOSブート・ブロックが信頼できる装置24の範囲内に含まれることは非常に望ましい。これは、(悪者ソフトウェア・プロセスが存在する場合発生するおそれのある)信頼性メトリックの取得の破壊を防止し、BIOSが(たとえ正しいとしても)オペレーティング・システムのための適切な環境を構築することに失敗する状況を悪者ソフトウェア・プロセスが作り出すことを防止する。
【0052】
以下に記述される好ましい実施形態において、信頼できる装置24が単一の、離散的なコンポーネントであるとはいえ、代替的形態として信頼できる装置24の機能をマザーボード上の複数の装置に分割することも、あるいは、プラットフォームの従来型標準装置の1つまたは複数に組み込むことさえ可能である。例えば、諸機能およびそれら対話が破壊されることができないと仮定すれば、主プロセッサに信頼できる装置の1つまたは複数の機能を主プロセッサに統合することは可能である。しかしながら、この構成は、プロセッサが信頼できる機能によってのみ使用されることを必要とすることになるであろう。更に、本実施形態において、信頼できる装置はマザーボード20への統合に適応されるハードウェア装置であるが、代替的に、必要に応じてプラットフォームに接続することができるドングルのような"取り外し可能な"装置として実施することも可能である。信頼できる装置が統合された装置か取り外し可能な装置かは設計選択の問題である。しかしながら、信頼できる装置が分離できるものである場合、信頼できる装置とプラットフォームの間の論理的結合を提供するメカニズムが存在しなければならない。
【0053】
図3に示されているように、信頼できる装置24は多数のブロックを含む。システム・リセットの後、信頼できる装置24は、安全なブーツ・プロセスを実行して、(システム・クロックおよび表示装置を含む)プラットフォーム10のオペレーティング・システムが適切にかつ安全な形態で実行していることを確認する。安全ブーツ・プロセスの間、信頼できる装置24は、コンピュータ・プラットフォーム10の信頼性メトリックを取得する。信頼できる装置24は、また、安全なデータ転送、および、例えば、暗号/解読および署名/検証を介して信頼できる装置とスマートカードの間の認証を実行することができる。信頼できる装置24は、また、ユーザ・インタフェースのロックのような種々のセキュリティ制御ポリシを安全に実施することができる。
【0054】
信頼できる装置は、具体的には、信頼できる装置24の動作全体を制御し、信頼できる装置24のその他の機能およびマザーボード20のその他の装置と対話するようにプログラムされたコントローラ30、プラットフォーム10から信頼性メトリックを取得する測定機能31、指定されたデータを署名、暗号化または解読する暗号機能32、スマートカードを認証する認証機能33、および、適切なポート(36、37、38)を有し、マザーボード20のデータ・バス26、制御線27、およびアドレス線28のそれぞれに信頼できる装置24を接続するインタフェース回路34を備える。信頼できる装置24におけるブロックの各々は、信頼できる装置24の適切な揮発性メモリ領域4および不揮発性メモリ領域3に対する(典型的にはコントローラ30経由の)アクセスを持つ。更に、信頼できる装置24は、周知の形態で、不正抵抗性を持つように設計される。
【0055】
パフォーマンス上の理由から、アプリケーション固有集積回路(すなわちASIC)として信頼できる装置24を実施することもできる。しかし、柔軟性のため、信頼できる装置24は、好ましくは、適切にプログラムされたマイクロコントローラである。ASICSとマイクロコントローラは共に、マイクロ・エレクトロニクス技術分野において周知であるので、これ以上の詳細説明は行わない。
【0056】
信頼できる装置24の不揮発性メモリ3に保存されるデータの1つの項目は、認証書350である。認証書350は、少なくとも、信頼できる装置24の公開暗号鍵351および信頼できる機関(TP)によって測定されたプラットフォーム信頼性メトリックの認証された値352を含む。認証書350は、信頼できる装置24への保存に先立ちTPの秘密鍵を使用してTPによって署名される。後刻の対話セッションにおいて、プラットフォーム10のユーザは、取得した信頼性メトリックを真正な信頼性メトリック352と比較することによってプラットフォーム10の信頼性を検証することができる。一致すれば、ユーザは、プラットフォーム10が破壊されなかったと確信することができる。TPの一般に利用できる公開暗号鍵についての知識が、認証書350の単純な検証を可能にする。不揮発性メモリ3は、また、識別(ID)ラベル353を含む。IDラベル353は、なんらかの文脈の範囲内でユニークである従来のIDラベル(例えばシリアル番号)である。IDラベル353は、信頼できる装置24に関連するデータのインデックス付けまたはラベル付けのために一般に使用されるが、信頼できる条件でプラットフォーム10の識別性を証明するにはそれ自体では不十分である。
【0057】
信頼できる装置24は、関連コンピュータ・プラットフォーム10の信頼性メトリックを取得または高い信頼度で測定する少なくとも1つの方法を備えている。本実施形態においては、信頼性メトリックは、BIOSメモリにBIOS命令のダイジェストを生成することによって測定機能31によって取得される。そのように取得された信頼性メトリックは、上述のように検証されれば、プラットフォーム10の潜在的ユーザにプラットフォーム10がハードウェアまたはBIOSプログラムのレベルで破壊されなかったという高いレベルの信頼を与える。オペレーティング・システムおよびアプリケーション・プログラム・コードが破壊されなかったことを検査するため、ウィルス検査プログラムのようなその他の周知のプロセスが典型的には使用される。
【0058】
測定機能31は、ハッシュ・プログラム354および信頼できる装置24の秘密鍵355を保存する不揮発性メモリ3および取得した信頼性メトリックをダイジェスト361の形態で保存する揮発性メモリ4にアクセスする。また、適切な実施形態において、揮発性メモリ4は、プラットフォーム10へのアクセスを取得するために使用されることができる1つまたは複数の真正スマートカードの公開暗号鍵および関連IDラベル360a−360nを記憶するためにも使用される。
【0059】
1つの好ましい実施形態において、ダイジェストと同様に、信頼性メトリックは、測定機能31によって揮発性メモリ4に保存される(詳細は後述)ブール値を含む。
【0060】
図4を参照して、信頼性メトリックを取得する1つの好ましいプロセスを記述する。ステップ400において、スイッチがオンされると、測定機能31は、データ、制御およびアドレス線(26、27、28)上の主プロセッサ21の活動を監視して信頼できる装置24がアクセスされる最初のメモリであるか否かを決定する。従来の動作の下では、主プロセッサは、BIOSプログラムを実行するため最初にBIOSメモリに向けられる。しかしながら、本実施形態に従えば、主プロセッサ21はメモリとして機能する信頼できる装置24に向けられる。ステップ405において信頼できる装置24がアクセスされる最初のメモリであれば、ステップ410において、測定機能31は、信頼できる装置24がアクセスされる最初のメモリであることを示すブール値を揮発性メモリ4に書く。そうでない場合、ステップ415において、測定機能31は、信頼できる装置24がアクセスされる最初のメモリでなかったことを示すブール値を揮発性メモリ4に書く。
【0061】
信頼できる装置24が最初にアクセスされるメモリでない場合は、当然のことながら、信頼できる装置24が全くアクセスされない可能性がある。これは、例えば、主プロセッサ21が最初にBIOSプログラムを実行するように取り扱われていたような場合である。そのような状況の下では、プラットフォームは、動作するであろうが、信頼性メトリックが利用できないので、要求に応じてその信頼性を検証することはできない。更に、BIOSプログラムがアクセスされた後に信頼できる装置24がアクセスされるとすれば、ブール値は、プラットフォームの信頼性の欠如を明示するであろう。
【0062】
ステップ420において、主プロセッサ21によってメモリとしてアクセスされると、主プロセッサ21は、ステップ425において、記憶されているハッシュ命令354を測定機能31から読む。ハッシュ命令354は、主プロセッサ21による処理のためデータ・バス26を経由して渡される。主プロセッサ21は、ステップ430において、ハッシュ命令354を実行し、ステップ435において、それを使用してBIOSメモリ29の内容を読み取り、ハッシュ・プログラムに従ってそれらの内容を処理することによってBIOSメモリ29のダイジェストを計算する。ステップ440において、主プロセッサ21は、信頼できる装置24の中の該当する揮発性メモリ位置4に計算されたダイジェスト361を書き込む。次に、ステップ445において、測定機能31はBIOSメモリ29のBIOSプログラムを呼び出し、その後従来技術の方法で実行が続く。
【0063】
明らかなように、信頼性メトリックの計算方法は、必要とされる信頼性の範囲に応じて、多数存在する。BIOSプログラムの信頼性の測定は、プラットフォームの基礎をなす処理環境の信頼性に関する基本的検査を提供する。信頼性メトリックは、それがブーツ・プロセスの有効性について理由付けすることを可能にするような形式でなければならない。すなわち、正しいBIOSを使用してプラットフォームがブートされたか否かを検証するため信頼性メトリックの値を使用することができる形式でなければならない。オプションとして、BIOSの範囲内の個々の機能ブロックがそれら自身のダイジェスト値を持つことができる。この場合、アンサンブルBIOSダイジェストがこれらの個々のダイジェストのダイジェストとなる。これによって、ポリシが、BIOS動作のどの部品が意図された目的のため重要でどの部分が無関係であるかを述べることが可能とされる(いずれの場合でもポリシの下の動作の有効性が確立されることができるような形態で個々のダイジェストは保管されなければならない)。
【0064】
その他の信頼性検査は、プラットフォームに接続された種々のその他の装置、コンポーネントが存在し、正しい動作状態にあるように構成することを必要とするであろう。例えば、SCSIコントローラと関連するBIOSプログラムは、周辺機器との通信が信頼できることを保証するように検査される。別の例をあげれば、プラットフォーム上のメモリ装置またはコプロセッサのような他の装置の信頼性は、固定的チャレンジ/応答対話を実施して一貫した結果を確認することによって検証することができる。信頼できる装置24が分離できるコンポーネントである場合、信頼できる装置14とプラットフォームの間の適切な論理的結合を与えるため、なんらかのそのような形式の対話が望まれる。また、本実施形態における信頼できる装置24はプラットフォームの他の部品との通信の主要手段としてデータ・バスを利用するが、ハードワイア経路または光学経路のような代替的通信経路を(あまり便利ではないが)提供することも可能である。更に、本実施形態における信頼できる装置24は他の実施形態における信頼性メトリックを計算するように主プロセッサ21に命令するとはいえ、信頼できる装置自体は、一つまたは複数の信頼性メトリックを測定するように構成される。
【0065】
好ましくは、BIOSブーツ・プロセスは、ブーツ・プロセスの信頼性を検査するメカニズムを含む。そのようなメカニズムは、例えばインテル社ドラフト"Wired for Management baseline specification v 2.0 - BOOT Integrity Service"に記載されているようにすでに周知であり、ソフトウェアまたはファームウェアをロードする前にソフトウェアまたはファームウェアのダイジェストを計算することを必要とする。そのように計算されたダイジェストは、その公開暗号鍵がBIOSにとって既知である信頼できるエンティティによって提供された認証書に保存されている値と比較される。計算された値が認証書に基づく期待値と一致する場合だけ、ソフトウェア/ファームウェアがロードされ、信頼できるエンティティの公開暗号鍵の使用による認証書が有効であると証明されたことになる。一致しない場合、適切な例外処理ルーチンが呼び出される。
【0066】
オプションとして、計算されたBIOSダイジェストを受け取った後、信頼できる装置24は、認証書の中のBIOSダイジェストの適当な値を調べて、計算されたダイジェストがその適当な値に合致しないとすれば、BIOSに制御を渡さないようにすることもできる。更に、代替的形態として、信頼できる装置24は、ブール値を調べて、信頼できる装置24がアクセスされる最初のメモリでなければ、BIOSへ制御を渡さないようにすることもできる。これらのケースのいずれにおいても、適切な例外処理ルーチンが呼び出されるであろう。
【0067】
図5は、TP、プラットフォームに組み込まれた信頼できる装置24、および、信頼できるプラットフォームの信頼性の検証を望む(遠隔プラットフォームの)ユーザによる行動を示す流れ図である。ユーザがローカルに位置する場合でも図5に記載されたものと本質的に同じステップが必要とされる点は理解されることであろう。いずれにせよ、ユーザは、典型的には、検証を実施するため、なんらかの形式のソフトウェア・アプリケーションに依存する。遠隔プラットフォームまたは信頼できるプラットフォーム上でそのようなソフトウェア・アプリケーションを実行させることは可能である。しかしながら、遠隔プラットフォーム上でさえ、ソフトウェア・アプリケーションが破壊されるという可能性は存在する。従って、高レベルの信頼性のためには、そのソフトウェア・アプリケーションがユーザのスマートカード上に置かれ、ユーザが検証の目的のため適切なスマートカード読取装置にスマートカードを挿入することが望ましい。本発明はそのような構成に関するものである。
【0068】
先ず、信頼できるプラットフォームを保証するTP(信頼できる機関)が、保証すべきか否かを決定するためそのプラットフォームのタイプを調べる。これは、ポリシの問題である。すべてがよければ、ステップ500において、TPがプラットフォームの信頼性メトリックの値を測定する。次に、TPは、ステップ505において、プラットフォームに関する認証書を生成する。認証書の生成は、信頼できる装置の公開暗号鍵およびオプションとしてそのIDラベルを測定された信頼性メトリックに追加し、TPの秘密鍵でストリングスを署名することによって行われる。
【0069】
その後、信頼できる装置24は、秘密鍵についての知識なしにその入出力ペアを作成することは統計的に不可能である形態で、その秘密鍵を使用してユーザから受け取った入力データを処理し出力データを生成することによって、その識別性を証明することができる。このように、秘密鍵についての知識は、この場合における識別の基礎を形成する。明らかなように、識別の基礎を形成するため対称性暗号化を使用することは可能であるが、対称性暗号化を使用する欠点は、ユーザがその秘密を信頼できる装置と共有する必要があることである。更に、ユーザとの秘密の共有の必要性の結果、対称性暗号化が、原理的に識別性をユーザに証明するのに十分であるとはいえ、信頼できる装置またはユーザから発せられる検証を完全に確信することができない第三者に対して識別性を証明するには不十分である。
【0070】
ステップ510において、信頼できる装置24は、信頼できる装置24の該当する不揮発性メモリ位置3に認証書350を書き込むことによって初期化される。これは、好ましくは、信頼できる装置がマザーボード20に取り付けられた後、信頼できる装置24との安全な通信によって実施される。信頼できる装置24に認証書を書き込む方法は、秘密鍵を書き込むことによってスマートカードを初期化するために使用される方法と同様である。安全な通信は、TPだけに知られている"マスタ鍵"によってサポートされる。マスタ鍵は、製造の間に信頼できる装置(またはスマートカード)に書き込まれ、信頼できる装置24へのデータ書き込みを可能にするため使用される。すなわち、マスタ鍵についての知識なしに信頼できる装置24にデータを書き込むことは不可能である。
【0071】
プラットフォームの後刻の動作のどこかで、例えば、スイッチがオンにされるかリセットされる時、ステップ515において、信頼できる装置24は、プラットフォームの信頼性メトリック361を取得して、保存する。
【0072】
ユーザは、プラットフォームとの通信を望む時、ステップ520において、乱数のような一時的ワードを作成し、ステップ525において、信頼できる装置24にチャレンジ(呼びかけ)を行う(プラットフォームのオペレーティング・システムまたは適切なソフトウェア・アプリケーションは、チャレンジを認識して適切な形態で典型的にはBIOS呼び出しを介して信頼できる装置24へそれを渡すように構成されている)。一時的ワードは、信頼できないプラットフォームによる古いが真正な署名に起因する欺瞞("返信攻撃"と呼ばれる)からユーザを保護するために使用される。一時的ワードを提供して応答を検証するプロセスは、周知の"チャレンジ/応答"プロセスの1例である。
【0073】
ステップ530において、信頼できる装置24は、チャレンジを受け取り、該当する応答を作成する。応答は、測定された信頼性メトリックと一時的ワードのダイジェスト、および、オプションとして、そのIDラベルである。次に、ステップ535において、その秘密鍵を使用して、信頼できる装置24は、ダイジェストに署名し、認証書350と共に、署名されたダイジェストをユーザに送り返す。
【0074】
ステップ540において、ユーザはチャレンジの応答を受け取り、TPの既知の公開暗号鍵を使用して認証書を検証する。次に、ユーザは、ステップ550において、認証書から信頼できる装置24の公開暗号鍵を抽出して、それを使用してチャレンジ応答から署名されたダイジェストを解読する。次に、ステップ560において、ユーザは、チャレンジ応答の中の一時的ワードを検証する。次に、ステップ570において、ユーザは、(チャレンジ応答から取り出した)計算された信頼性メトリックを(認証書から抽出した)該当するプラットフォーム信頼性メトリックと比較する。ステップ545、555、565または575における前記検証のいずれかが失敗すれば、全ステップはステップ580で終了しそれ以上の通信は行われない。
【0075】
すべてがうまく行けば、ステップ585および590において、ユーザおよび信頼できるプラットフォームは、他のプロトコルを使用して、その他のデータに関する安全な通信を設定する。ここで、安全な通信においては、プラットフォームからのデータが、好ましくは、信頼できる装置24によって署名される。この検証プロセスの一層の精練は可能である。望ましくは、チャレンジを送ったユーザは、プラットフォーム信頼性メトリックの値およびそれが取得された方法について認識するようになる。望ましくは、それらの情報は両方とも、チャレンジするユーザがプラットフォームの信頼性について適切な決定をすることを可能にする。チャレンジするユーザが利用できる多くの異なるオプションがある。すなわち、ユーザは、信頼性メトリックが信頼できる装置24において有効であると認めることができ、あるいは、代替的に、信頼性メトリックの値が当該ユーザによって保持される値と等しければ、プラットフォームは適切なレベルの信頼性ベルを有することのみを認めることができる(またはこれらの2つのケースにおいて異なるレベルの信頼性があると考えることもできる)。
【0076】
署名、認証書の使用、チャレンジ/応答、およびそれらを使用する識別性の証明の手法はセキュリティ分野の専門家に周知であるので、これ以上の説明は必要とされない。
【0077】
ユーザのスマートカード19は、コンピュータ・エンティティから分離しているトークンデバイスであり、スマートカード読取装置ポート19を経由してコンピュータ・エンティティと対話する。ユーザは、いくつかの異なるベンダまたはサービス・プロバイダによって発行されたいくつかの異なるスマートカードを持ち、信頼できるコンポーネントおよびスマートカード読取装置を備える複数のコンピュータ・エンティティのいずれか1つから、インターネットまたは複数のネットワーク・コンピュータへのアクセスを取得する。ユーザが使用している個々のコンピュータ・エンティティに対するユーザの信頼は、ユーザの信頼できるスマートカード・トークンとコンピュータ・エンティティの信頼できるコンポーネントとの間の対話から導出される。ユーザは、信頼できるコンポーネントの信頼性を検証するためその信頼できるスマートカード・トークンに頼る。
【0078】
図6には、ユーザ・スマートカード19の処理部分60が図示されている。図示されているように、ユーザ・スマートカード19の処理部分60は、プロセッサ61、メモリ62およびインタフェース接触部63という標準的機構を持つ。プロセッサ61は、後述のように、ユーザ・スマートカード19の認証およびプラットフォーム10の検証を伴う単純なチャレンジ/応答動作を行うようにプログラムされている。メモリ62は、その秘密鍵620、その公開暗号鍵628、(オプションとして)ユーザ・プロフィール621、TPの公開暗号鍵622および識別627を保有する。ユーザ・プロフィール621は、ユーザによって使用可能な許容可能補助スマートカード20AC1−ACnおよび該ユーザに関する個別セキュリティ・ポリシ624をリストする。ユーザ・プロフィールは、補助スマートカード20の各々に関して、それぞれの識別情報623、スマートカード間の信頼構造625、および、オプションとしてスマートカードのタイプまたは製造記号626を含む。
【0079】
ユーザ・プロフィール621において、補助スマートカード20のエントリAC1‐ACnの各々は、カードのタイプに応じて変わる関連識別情報623を含む。例えば、キャッシュカードのための識別情報は、典型的には、単純なシリアル番号を含むが、一方、暗号カードの場合、識別情報は、典型的には、暗号カードの公開鍵(あるいは認証書)を含む(秘密鍵は暗号カードそれ自体に秘密裡に記憶されている)。
【0080】
"セキュリティ・ポリシ"624は、プラットフォーム10上でユーザが補助スマートカード20を使用している間にプラットフォーム10に関してユーザが持つ許可を指示する。例えば、補助スマートカード20が使用中の間、補助スマートカード20の機能に応じて、ユーザ・インタフェースはロックまたはロック解除される。更に、代替的に、特定の補助スマートカード20が信頼される程度に応じて、プラットフォーム10上の特定のファイルまたは実行可能プログラムをアクセス可能または不可とすることができる。更に、セキュリティ・ポリシ624は、"クレジット受領"または"一時的委任"(詳細は後述)のような、補助スマートカード20に関する動作の特定のモードを指定することができる。
【0081】
"信頼構造"625は、補助スマートカード20それ自身が、ユーザ・スマートカード19を再使用することなく、更なる補助スマートカード20をシステムに導入することができるか否かを定義する。本明細書において詳細に記述される実施形態においては、ユーザ・スマートカード19とそのユーザ・スマートカード19によってプラットフォーム10に導入されることができる補助スマートカード20の間にのみ信頼構造が定義される。導入は、後述されるように、"単一セッション"でも"マルチセッション"でもよい。しかしながら、特定の補助スマートカード20が実際に更なる補助スマートカード20を導入することができない理由はない。このためには、導入することができる補助スマートカードの各々をリストするユーザ・プロフィールと同等のものを補助スマートカード20が持つことを必要とする。
【0082】
補助スマートカード20の使用は、本発明にとって必須の機能ではなく、本明細書においてこれ以上の説明はされない。補助スマートカードの使用は"Computing Apparatus and Methods of Operating Computing Apparatus"というタイトルの国際特許出願に記載されている。
【0083】
図7を参照して、ユーザ・スマートカード19とプラットフォーム10の間の認証に関する好ましいプロセスを記述する。このプロセスは、便宜上チャレンジ/応答ルーチンを実施する。利用できるチャレンジ/応答メカニズムは多数存在する。本実施形態に使用される認証プロトコルの実施形態は、ISO/IEC9798−3に記述されている相互(または3−ステップ)認証である。当然のことながら、ISO/IEC9798−3に記述されている2−ステップまたは4−ステップのような他の手続きを使用することができな理由はない。
【0084】
先ず、ユーザが、ステップ700において、プラットフォーム10のスマートカード読取装置12にそのユーザ・スマートカード19を挿入する。典型的には、プラットフォーム10は、前もって、その標準オペレーティング・システムの制御の下で動作し、ユーザがそのユーザ・スマートカード19を挿入するのを待機する認証プロセスを実行している。このように活動状態にあるスマートカード読取装置12は別として、プラットフォーム10は、典型的には、ユーザ・インタフェース(表示画面、キーボード、マウスなど)をロックすることによってユーザがアクセスできない状態に置かれている。
【0085】
ユーザ・スマートカード19がスマートカード読取装置12に挿入されると、信頼できる装置24は、ステップ705において、一時的ワードAを生成してそれをユーザ・スマートカード19に送信することによって、相互認証手続きを始動する。乱数のような一時的ワードは、信頼できない第三者による古いが真正な応答に起因する欺瞞("返信攻撃"と呼ばれる)から作成元を保護するために使用される。
【0086】
それに応じて、ユーザ・スマートカード19は、ステップ710において、一時的ワードA、ユーザ・スマートカード19によって生成された新しい一時的ワードB、信頼できる装置24のID353および若干の冗長情報からなる平文;ユーザ・スマートカード19の秘密鍵を用いて署名することによって生成される前記平文の署名;ならびに、ユーザ・スマートカード19のIDおよび公開暗号鍵を含む認証書、を連結した応答を生成し送り返す。
【0087】
信頼できる装置24は、ステップ715において、認証書の中の公開暗号鍵を使用して平文の署名を検証することによって応答を認証する。応答が真正でなければ、プロセスはステップ720で終了する。応答が真正であれば、信頼できる装置24は、ステップ725において、一時的ワードA、一時的ワードB、ユーザ・スマートカード19のID627および取得した信頼性メトリックからなる平文;信頼できる装置24の秘密鍵を用いて署名することによって生成される前記平文の署名;ならびに、TPの秘密鍵によって署名された信頼できる装置24の公開鍵および真正な信頼性メトリックを含む認証書、を連結した更なる応答を生成して送る。
【0088】
ユーザ・スマートカード19は、ステップ730において、TPの公開暗号鍵を使用して取得した信頼性メトリックを真正な信頼性メトリックと比較することによって(一致は認証を意味する)、この応答を認証する。更なる応答が認証できなければ、プロセスはステップ735で終了する。
【0089】
手続きが成功すれば、信頼できる装置24がユーザ・スマートカード19を認証し、ユーザ・スマートカード19が信頼できるプラットフォーム10の信頼性を検証したことになり、認証プロセスは、ステップ740において、当該ユーザのための安全なプロセスを実行する。次に、認証プロセスは、ステップ745において、インターバル・タイマを設定する。その後、認証プロセスは、ステップ750において、適切なオペレーティング・システム割り込みルーチンを使用して、インターバル・タイマがあらかじめ定められたタイムアウト間隔を越えているか否かを周期的に検査する。明らかなように、認証プロセスと内蔵タイマは、安全プロセスと並列して動作する。
【0090】
タイムアウト間隔を越えると、認証プロセスは、ステップ760において、ユーザ・スマートカード自体を識別させるためユーザ・スマートカード19にチャレンジを送信することによってユーザ・スマートカード19を再認証するように信頼できる装置24を始動させる。ユーザ・スマートカード19は、ステップ765において、そのID627およびその公開暗号鍵628を含む認証書を返す。ステップ770において、(例えば、ユーザ・スマートカード19が取り除かれていたため)応答がない場合、または、何らかの理由で(例えばユーザ・スマートカードがすでに他のカードと置き換えられているため)認証書がもはや有効でない場合、セッションは、ステップ775において、信頼できる装置24によって終了される。さもなければ、ステップ770において、ステップ745からのプロセスが内蔵タイマをリセットすることによって反復される。
【0091】
本発明のいくつかの異なる実施形態が可能である。好ましい第1の実施形態において、表示装置18は、信頼できるコンポーネントの範囲内に含まれる監視サブシステムによって直接駆動される。この実施形態においては、信頼できるコンポーネント空間内に信頼できるコンポーネント自体が常駐し、表示装置18の表示は信頼できるコンポーネントによって生成される。この構成は、ヨーロッパ特許出願EPA第99304164.9号に記載されている。
【0092】
好ましい第1の実施形態において、このサブシステムは、コンピュータ・プラットフォーム上に常駐し、スマートカード読取装置、信頼できるコンポーネントおよび表示装置の間のインタフェースを提供する。サブシステム機能性は、信頼できるコンポーネントに組み込まれ、信頼できる空間の範囲内に常駐する。該サブシステムは、コンピュータ・プラットフォームおよびスマートカードと信頼できるコンポーネントとの間をインタフェースする。該サブシステムは、信頼できるコンポーネントにおける信頼を維持するために必須のものではなく、他の実施形態において、オプションとして、"信頼できない"コンピュータ・プラットフォーム空間におけるコンピュータ・プラットフォーム上に常駐することもできる。
【0093】
第2の実施形態において、信頼できるコンポーネント(装置)は、スマートカード読取装置19およびスマートカード・インタフェースを通してソフトウェア・サブシステムにおいてアクセスされる。該サブシステムは、また、アプリケーションと信頼できるコンポーネントの間をインタフェースするためアプリケーション・インタフェース機能を提供し、インターネットまたはローカル・エリア・ネットワーク/広域ネットワーク経由でアクセスされる第三者を通して、信頼できるコンポーネントによって取得される信頼性メトリック・データを検証する検証アプリケーションを提供する。
【0094】
ユーザによってコンピュータ・エンティティに与えられる信頼は、次のような別々の部分から構成される;
・ユーザの信頼できるトークンデバイスに含まれる信頼;
・信頼できるコンポーネントに含まれる信頼。
【0095】
コンピュータ・エンティティに与えられる信頼のレベルまたは程度は、信頼できるコンポーネントおよびスマートカードに含まれる信頼のレベルに関連するものとして決定される。コンピュータ・エンティティにおける信頼の量は多くの要因に関係するが、その信頼度を測定する際の重要な因子は、信頼できるコンポーネント自体がコンピュータ・エンティティに関して実行する信頼性メトリックス検査のタイプ、範囲および細分性およびスマートカードが信頼できるコンポーネントに対して行う信頼性メトリックス検査のタイプ、細分性および品質である。
【0096】
ユーザがスマートカードの使用によって信頼できるコンポーネントが正しく動作していることを確定すれば、信頼できるコンポーネントは暗黙的に信頼されている。信頼できるコンポーネントは、コンピュータ・プラットフォームに含まれるあらゆる信頼の基礎として組み入れられ、コンピュータ・プラットフォームは、全体として、信頼できるコンポーネントに含まれる信頼の量以上には信頼されることはできない。
【0097】
他のコンピュータ・エンティティが暗号化されたメッセージ手段によって信頼できるコンポーネントと直接対話して信頼できるコンポーネントの動作を検証することができるが、コンピュータ・エンティティを動かす人間のユーザは、暗号化されたデジタル信号を生成する能力を持たない生物学的エンティティであるので、信頼できるコンポーネントと直接対話することができない。人間のユーザは、コンピュータ・エンティティの信頼性を検証するにはその視覚および聴覚に頼らなければならない。人間のユーザは、一般的ケースにおいて、コンピュータ・エンティティにおける動作メカニズムの知識を持たないし、教育知識の点で平均的レベル、すなわち、ごく平均的普通の人間であろう。
【0098】
従って、ユーザは、スマートカードの形式の信頼できるトークンを与えられ、そこに高度の信頼を置く。ユーザのスマートカードは、コンピュータ・エンティティの信頼できるコンポーネントと対話して、
・ユーザに対して信頼できるコンポーネントの識別性を証明し;
・信頼できるコンポーネントによってコンピュータ・プラットフォームに関して実行される信頼性メトリック測定を利用することによって、コンピュータ・エンティティの内部のコンピュータ・プラットフォームが正しく動作していることを検証する。
【0099】
従って、複数コンピュータ・エンティティからなるシステムにおいて、次のような信頼性連鎖が存在する:
・ユーザは信頼できるトークンを信頼しなければならない。この信頼性は、信頼できるトークンの提供者の評判に基づくものであり、この提供者は、典型的には、信頼できるトークンの正しい動作を使用可能にするために必要な技術資源へのアクセスを持つ企業である;
・信頼できるトークンと信頼できるコンポーネントの間の信頼性。信頼できるトークン・スマートカードは、スマートカードを使用して信頼できるコンポーネントの正しい動作を検証することができなければならない;
・コンピュータ・プラットフォームにおける信頼性。コンピュータ・プラットフォームにおける信頼は、それ自体が信頼されている信頼できるコンポーネントによるコンピュータ・プラットフォームの監視から導出される。
【0100】
このような信頼性連鎖の範囲内において、ユーザとコンピュータ・エンティティの連結は、ユーザ、ユーザが使用する信頼できるプラットフォームおよび信頼できるトークン(スマートカード)の観点から見ることができる。
【0101】
ユーザの観点からすれば、ユーザが信頼できるのは、コンピュータ画面上で見るもの、コンピュータの音声出力で聞くもの、印刷された出力で見るものだけである。ユーザは、コンピュータ・エンティティのスマートカード読取装置12に挿入することができるスマートカード19という形態の信頼できるトークンを与えられる。スマートカードは、ユーザに代わって暗号メッセージおよび問い合わせを使用して対話を遂行する。スマートカードは、信頼性メトリック測定を実行するように信頼できるコンポーネントに要求を送り、検証要求に対する満足できる応答を信頼できるコンポーネントから受け取らない場合アプリケーション・プログラムに対する許可を取り消すことができる。
【0102】
本発明を実施するための特定の実施形態を以下に記述する。各々の実施形態において、コンピュータ・エンティティは、複数の動作モードを持つ。図8を参照すると、第1のプロセスに従ってユーザの制御の下のコンピュータ・エンティティおよびスマートカードを備えるコンピュータ・システムの動作の第1のモードが示されている。図8のプロセスにおいて、ユーザのスマートカードの使用を必要とするアプリケーションはコンピュータ・エンティティ上に存在しない。ユーザは、単にスマートカードの助けを借りてコンピュータ・エンティティの範囲内のコンピュータ・プラットフォームの信頼性を検証している。一般的に、ユーザは、ログオンすると直ちに、いかなる視聴覚動作の実行の前に、コンピュータ・エンティティの信頼性を検査することを望む。スマートカードは、ユーザがコンピュータ・エンティティを使用する他のタスクを実行する前に、その信頼できるコンポーネントを通してコンピュータ・エンティティの信頼性を検証するようにプログラムされることができる。
【0103】
ステップ7000において、ユーザは、使用すべきコンピュータ・エンティティのスマートカード読取装置にスマートカードを挿入する。ステップ7010において、ユーザは、コンピュータ・プラットフォームのグラフィカル・ユーザ・インタフェース(GUI)の使用を開始する。ステップ7020において、コンピュータ・プラットフォーム上へ事前にロードされている検証アプリケーションがユーザによって始動される。検証アプリケーションの目的は、スマートカードを持つユーザが、コンピュータ・エンティティの信頼できるコンポーネントが信頼性を検査することを可能にすることである。そのような起動は、コンピュータ・エンティティの表示装置に表示されたアイコンの上に視覚的に置かれたマウスまたはトラックボールのようなポインティング・デバイスを起動させることによって行うことができる。検証インタフェースは、スマートカードによる信頼できるコンポーネントの検査を始動させるためGUIからコマンドを受け取り、スマートカードが検証プロセスを始めるようにアプリケーションによって命令されることができるような形態でそれらコマンドを処理する。
【0104】
ステップ7030において、インタフェースは、信頼できるコンポーネント上で検証動作を始めるようにスマートカードに要求する要求信号をスマートカードに送る。ステップ7040において、スマートカードは、信頼できるコンポーネントに関する信頼性検査を実行する。スマートカードと信頼できるコンポーネントの間のすべての通信は暗号化された形式で行われる。スマートカードが信頼できるコンポーネントの信頼性を検証する精密な方法は図5乃至図7を参照して上述したチャレンジ/応答信頼性検査による。ステップ7050において、信頼できるコンポーネントに関する信頼性検査を完了した後、スマートカードは、GUIに表示することによってユーザへ報告を返す。信頼できるコンポーネントがGUIを使用してユーザ報告を返す方法はいろいろある。
【0105】
そのような方法の1つにおいて、スマートカードは、信頼できるコンポーネントを使用してコンピュータ・プラットフォームを記述する(信頼できるコンポーネントによって決定された)情報を表示するように画面18の表示を制御する。この際、スマートカードに固有のイメージが表示装置に表示される。例えば、スマートカードは、好ましくはユーザだけが知っている、再作成が困難なイメージ・データを含むことができる。信頼できるコンポーネントは、スマートカードからこのイメージ・データを取り出し、コンピュータ・プラットフォームの信頼性メトリックおよび動作を記述する他の情報とイメージ・データを組み合わせて、表示装置に表示する。コンピュータ・エンティティは、イメージ・データを事前に記憶しているユーザ・スマートカード以外からイメージ・データを取得する他の方法を持っていないので、また、ユーザが目視によってイメージが本物であることを高い精度で視覚的に識別することができるので、コンピュータ・エンティティが実際にスマートカードと対話している(さもなければイメージは取得できるはずがないので)という確信をユーザは持つ。
【0106】
代替的に、ステップ7050において、検査されているコンピュータ・エンティティの画面にイメージ・データを表示する代わりに、ユーザは、スマートカード読取装置からそのスマートカードを取り出して、自身のパームトップ装置にスマートカードを挿入することもできる。パームトップ装置は、ユーザにとって個人的なものであるので、ユーザはコンピュータ・エンティティより高い度合いでパームトップ装置を信頼することができる。スマートカードが実行したチャレンジ/応答検査にコンピュータ・エンティティがパスしたことを検証するデータをパームトップ読取器はスマートカードから読み取る。次に、パームトップ・コンピュータは、スマートカードが実施したチャレンジ/応答検査にコンピュータ・エンティティがパスしたという情報をユーザに表示する。ユーザは、これをコンピュータ・エンティティが信頼されている検証と見なす。
【0107】
ユーザがコンピュータ・エンティティを使用することを望み、コンピュータ・エンティティが信頼できるか否かを知ることを単に望む場合に、上述の方法が機能する。対照的に、図9は、アプリケーションがコンピュータ・エンティティに常駐するか、ユーザが通信を望む遠隔コンピュータ・エンティティに常住する場合で、ユーザが例えば商用トランザクション処理のような動作を認可することを必要とする場合の第2の動作モードを示す。
【0108】
スマートカードは、ユーザに固有な詳細項目を含むようにシステム管理者またはスマートカード・サービス・プロバイダによって構成されている。ステップ801において、ユーザはコンピュータ・エンティティのスマートカード読取装置にスマートカードを挿入する。ステップ802において、コンピュータ・エンティティのアプリケーションまたはオペレーティング・システムがスマートカードからのデータを要求する。ステップ803において、スマートカードは、それに応答して、スマートカードがコンピュータ・エンティティの信頼性を検証することができるように、コンピュータ・エンティティに遅延メッセージを送り、コンピュータ・エンティティの信頼できるコンポーネントへのアクセスを可能にするようにコンピュータ・エンティティへ要求する。
【0109】
ステップ804において、スマートカードは、上述されたようなチャレンジ/応答プロセスに従った信頼性検査手段によってコンピュータ・エンティティの信頼できるコンポーネントと通信して、コンピュータ・エンティティの信頼性を検査する。ステップ805において、信頼性検査が信頼できるコンポーネントによって満たされたと判断すれば、スマートカードは、オペレーティング・システムまたはアプリケーションからのデータ要求に対する応答を進め、処理を完了する。
【0110】
信頼できるコンポーネントによるコンピュータ・プラットフォームの信頼性メトリックの検査および認証を通して、コンピュータ・エンティティの信頼できるコンポーネントとの通信という手段によって接続されているコンピュータ・エンティティの信頼性をスマートカードが初めに検証することができない限り、スマートカードは、例えば認証のためあるいはなんらかの暗号サービスを提供するため、アプリケーションとの対話を受け入れることを決して行わないようにプログラムされる。このようにして、暗黙にスマートカードを信頼するユーザは、そのスマートカードが信頼できる環境にあると検証された時のみそのスマートカードがアプリケーションによって使用されることを認める。スマートカードは、信頼性検査の結果をユーザに明示的に報告する必要はない。アプリケーションがスマートカードとの対話を要求したという事実、および、その要求された対話が満足されたという事実だけが、スマートカードがこの検査を実施して、その結果が満足できるものであったということの証明である。スマートカードが、アプリケーションとの対話を許諾するか拒絶するかは、スマートカード発行者によってスマートカード上へ事前にプログラムされた、または、ユーザによるプログラムによって構成された、あらかじめ定められたポリシに基づく。
【0111】
スマートカードのメモリの構成は、その機能がスマートカード・ベンダによって提供されていれば、ユーザが指定することができる。例えば、パーソナル・コンピュータの購入者は、ユーザの選好に従って動作するようにそのスマートカードを構成することができる。たとえ信頼できるコンポーネントがコンピュータ・エンティティに存在しない場合でも、ユーザがマイクロソフト・ウインドウズNT環境においてコンピュータ・エンティティと対話するようにスマートカードをプログラムすることができるように、スマートカードを事前に構成することができる。スマートカードのベンダは、PDAパームトップ・コンピュータのような装置を通して、スマートカードのプログラミングを可能にすることができる。各スマートカードの能力の正確な構成は、設計の問題としてスマートカードの提供者によって指定される。
【0112】
別の例としては、インターネット・サービス・プロバイダが、スマートカードが挿入されるコンピュータ・エンティティがスマートカードによって指定される種々の信頼性検査にパスしたことを検証することができる時、インターネット・サービス・プロバイダに対してのみそれ自体を正しく識別するスマートカードを提供することができる。これは、ウイルスを含んでいるような信頼できないコンピュータをユーザが使用してインターネット・サービスに接続しようとしていなことを確認できるような防御をインターネット・サービス・プロバイダに与える。
【0113】
上記2つの方法の特徴は、それらがユーザとの対話による始動を必要とせず、コンピュータ・エンティティのスマートカード読取装置に挿入されているスマートカードの動作によって始動される点にある。これは、ユーザとの対話またはソフトウェア・アプリケーションによる始動に適用できるものであるが、本発明にとって必須のものではない。
【0114】
ここで、図10を参照して、信頼できるトークンとして適応されたスマートカードとの対話の間のコンピュータ・エンティティの動作の1例を記述する。この例は、ISO7816に規定されているPCSC仕様(www.pcscworkgroup.comを通して参照可能)に従う周知の技術に基づくが、スマートカードからのコマンドの始動を可能にするように好ましい実施形態において修正されている。
【0115】
スマートカードと信頼できるコンポーネントとの間の対話は、スマートカードが、信頼できるコンポーネントの正しい動作を認証し、信頼できるコンポーネントが監視するコンピュータ・プラットフォームの信頼性に関して信頼できるコンポーネントの応答を取得することを可能にする。好ましい実施形態において、信頼性検証プロセスによって、信頼できるコンポーネントがコンピュータ・エンティティの正しい動作の検証の解読された結果をスマートカードに報告することが可能にされる。しかしながら、別のモードの実施形態において、信頼できるコンポーネントが、スマートカードのため信頼性測定を解読するメカニズムを提供しないことも可能である。その場合、スマートカードは、この機能性を提供する信頼できる第三者サーバにアクセスしなければならない。
【0116】
典型的には、スマートカードによる信頼できる第三者サーバへのアクセスは、そのようなアクセスがコンピュータ・エンティティによって提供されることをスマートカードが要求することができるようなメカニズムを必要とする。信頼できるコンポーネントへのコマンドを始動し、メッセージおよび情報の交換のため信頼できるコンポーネントと通信し、情報を求める要求を送り、その要求に応答した結果を信頼できるコンポーネントから受け取り、第三者サーバへのアクセスがコンピュータ・エンティティによって提供されるように要求することができるスマートカードがあれば、スマートカードに対する信頼できるコンポーネントの信頼性検証は達成されることができる。スマートカードからのユーザ・コマンドの始動の実施形態は、"smartcards - from security tokens to intelligent adjuncts"(by Boris Balacheff, Bruno Van Wilder and David Chan published in CARDIS 1998 Proceedings)に記載されている。
【0117】
図10は、上記引用文献に従ったスマートカードからのユーザ・コマンドの始動に含まれる対話を簡潔に示している。使用される手法は、GSM(GSM仕様11.14)に使用されている手法と本質的に同じであり、継続ユーザ識別モジュール(Subscriber Identity ModuleすなわちSIM)が移動体機器によってとられるべきアクションを始動することを可能にするものである。この構成において移動体機器によってとられる機能的役割は、プラットフォームの範囲内のPC Intelligent Adjunct(PCIA)モジュール900と呼ばれるものによって実行される。スマートカード901はこのモジュールと対話する。
【0118】
先ず、ステップ902において、PCIAモジュールが本質的に任意のコマンド(C1)を作成する。C1コマンドの結果は、ステップ903において、PCIAモジュールへ送り返され、続いて、ステップ904において、状態応答"91 XX"が送られてくる。この重要なステップ(標準的"OK"コードに対する代替ステップ)によって、スマートカード901が送出すべき情報を持っていることおよび応答データの長さ(XX)をPCIAモジュール900に伝えることが可能とされる。次に、PCIAモジュールは、ステップ905において、フェッチを介してこの追加データを要求し、コマンドC2がステップ906においてスマートカードによって提供され、結果がステップ907において送り返される。肯定応答が、ステップ908において、スマートカードによって提供される。PCIAモジュールによって更に肯定応答が提供されれば一層好ましい(図示されてない)。
【0119】
図11を参照すれば、前述したコンピュータ・プラットフォームおよび監視コンポーネントを含むコンピュータ・エンティティ1100、該コンピュータ・エンティティ1100と通信することができる信頼できるトークンデバイス1101およびデータ処理機能性を実行することができる遠隔サーバ1102からなるコンピュータ・システムが示されている。遠隔サーバ1102は、また、第2のコンピュータ・プラットフォームおよび第2の監視コンポーネントを含む。運用上、遠隔サーバ1102は信頼できるサービス・プロバイダ(例えばインターネット・サービス・プロバイダ)によって管理されるかもしれない。この場合、信頼できるトークンデバイスのユーザは、例えばインターネット・サービス・プロバイダによって提供されるサービスに対する使用契約のようなインターネット・サービス・プロバイダとの契約関係を通して確立される一定の信頼度を持つことができる。
【0120】
図12には、図11に示されたコンピュータ・システムの範囲内のトークンデバイスおよびコンピュータ・エンティティの動作の第3のモードが示されている。この動作モードにおいては、コンピュータ・エンティティ1100の範囲内の監視コンポーネント(信頼できるコンポーネント)は、コンピュータ・エンティティ1100の範囲内のコンピュータ・プラットフォームに関するデータ検査を行うようにスマートカード1101によって要求される。信頼できるトークンデバイス1101は、コンピュータ・エンティティ1100によって供給されるデータに関するデータ処理を実施するために十分なデータ処理能力を有していない。従って、コンピュータ・エンティティは、スマートカードによって信頼されている遠隔サーバ1102へ信頼性メトリック・データを送り出す。遠隔サーバは、受け取った信頼性メトリック・データを信頼性メトリックの期待セットと比較することによって、監視コンポーネントによって供給された信頼性メトリック・データが正しいことを検証する。期待信頼性メトリックは、監視コンポーネントの範囲内に事前記憶されたデータから監視コンポーネントによって供給されることも、あるいは、コンピュータ・プラットフォームが共通タイプである場合信頼できるサーバ1102がそのタイプのコンピュータ・プラットフォームに関する信頼性メトリックの期待セットを記憶することもできる。いずれの場合でも、信頼できるサーバ1102は、信頼性メトリック期待セットに対する信頼性メトリックの検証のために必要な重いデータ処理を実行し、この検証の結果にデジタル署名する。トークンデバイスが事前プログラムされている度合いおよび信頼できるトークンデバイスのデータ処理能力量に応じて、この第3の動作モードには種々の代替バージョンが存在する。
【0121】
ステップ1200において、前述のように、信頼できるトークンが信頼できるコンポーネントを認証する。ステップ1201において、スマートカードは、コンピュータ・プラットフォームの信頼性メトリックを検証してそれをスマートカードへ報告するように信頼できるコンポーネントに要求する。ステップ1202において、信頼できるコンポーネントは、コンピュータ・プラットフォームの実行中監視の一部として信頼性メトリック・データを既に入手しているので、そのコンピュータ・プラットフォームに関する証明された信頼性メトリックの期待セットと共に、信頼性メトリック・データをスマートカードへ送る。ステップ1203において、スマートカードは、受け取った信頼性メトリック・データと証明された信頼性メトリック期待データを計算処理のため信頼できる第三者サーバへ送る。このメッセージは、スマートカード装置自体の識別も含む。信頼性メトリック・データと証明された信頼性メトリック期待データの信頼できるサーバへの送信は、当該コンピュータ・エンティティ自体を介して行われ、インターネットを経由して信頼できる遠隔サーバ1102へ送られる。
【0122】
ステップ1204において、サーバは、信頼性メトリック・データを処理して、証明された期待信頼性メトリックが実際に認証されていることを検証し、スマートカードから受け取った信頼性メトリック期待データと信頼性メトリック・データを比較する。これは、重い計算処理ステップであり、信頼できるサーバに適したものである。ステップ1205において、スマートカードから受け取った信頼性メトリック期待データと信頼性メトリック・データを比較した後、サーバは、コンピュータ・エンティティを経由してスマートカードへ検証データを送る。検証データは、サーバのデジタル署名を含む。ステップ1206において、スマートカードは、データ署名を含む検証データを受け取り、デジタル署名に従って検証データを受け入れまたは拒絶する。
【0123】
1つの代替的形態において、信頼できるコンポーネントは、直接第三者サーバと通信することができる。ステップ1202および1203の代わりに、信頼できるコンポーネントは、信頼できるコンポーネント自体のデジタル署名と共に、コンピュータ・プラットフォームの測定された信頼性メトリック・セットを第三者サーバへ送信し(どの第三者サーバがスマートカードカードによって信頼されているかを信頼できるコンポーネントが知っているかあるいはどの第三者サーバが使用されなければならないかスマートカードが指定する必要がある)、第三者サーバからこれら信頼性メトリックの検証の結果をデジタル署名と共に受け取る。第三者サーバは、信頼できるコンポーネントから受け取った信頼性メトリック・セットを当該信頼できるコンポーネントのタイプに関して取り出した信頼性メトリック期待セットと比較し、デジタル署名を追加する。信頼できるコンポーネントは、デジタル署名を受け取った後、デジタル署名と共に信頼性メトリックのセットをスマートカードへ送る。
【0124】
スマートカードの観点から見れば、スマートカードと対話するあらゆるアプリケーションは、グラフィカル・ユーザ・インタフェースであろうと別のアプリケーションであろうと、スマートカードがプラットフォームの信頼できるコンポーネントとの対話を要求するかもしれないという事実を認識しなければならない。スマートカードが第三者コンピュータ・エンティティとの対話を要求する場合、スマートカードと対話するアプリケーションは、スマートカードがネットワーク・サーバと対話することを可能にしなければならない。しかしながら、好ましい実施形態において、スマートカードは、スマートカードがコンピュータ・エンティティ上で対話しているアプリケーションに依存することなく、コンピュータ・プラットフォームの信頼性検証データへのアクセスを要求することができなければならない。
【0125】
例えばトランザクションを認可するようなスマートカードの機能性を使用する要求をコンピュータ・エンティティのアプリケーションから受け取ると、スマートカードは、コンピュータ・プラットフォームの状態の信頼性に関する監視情報を供給するように監視コンポーネントに要求を始動することができる。スマートカードと信頼できるコンポーネントの間の通信は、コンピュータ・エンティティとスマートカード・トークンデバイスの間の通信に対して責任を持つコンピュータ・プラットフォームに常駐するプロトコル・モジュールを介して行われる。PC上のアプリケーションがスマートカードへのアクセスを必要とする時、プロトコル・スタックがこれらの通信を取り扱う。従って、コンピュータ・エンティティは、コンピュータ・プラットフォームの信頼性の検査のようなコマンド(コマンドはスマートカードから送られ、コンピュータ・エンティティ・アプリケーションから独立している)をフィルタリングし、スマートカードから送られるコマンドに対応することができる。アプリケーションの観点からすれば、コンピュータ・エンティティの他の資源とのスマートカードの対話は透過的である。これは、"smartcards - from security tokens to intelligent adjuncts"(by Boris Balacheff, Bruno Van Wilder, and David Chan published in CARDIS 1998 Proceedings)に記載の技術をPCSC技術と組み合わせて使用することによって可能となる。
【0126】
このようにして、ステップ1201は、種々の異なるトリガー・イベントのうちの1つの結果としてスマートカードによって始動される。1つの可能なトリガーは、監視サブシステムを通して、グラフィカル・ユーザ・インタフェースからのプラットフォーム信頼性検査要求のスマートカードによる受け取りである。この信号は、ユーザのキー・ストローク入力やポインティング・デバイス入力に応答してグラフィカル・ユーザ・インタフェースによって生成される。代替的に、スマートカードは、ローカル・コンピュータ・エンティティまたは遠隔コンピュータ・エンティティ上に常駐するアプリケーションによって生成される機能性へのアクセス要求を受け取ることができる。その後の信頼性検証は、基本的に、図12に関連して上述されたように進められる。
【0127】
理想的には、サーバはスマートカードに結合される。例えば、サーバとスマートカードは、インターネット・サービス・プロバイダのような同じベンダによって提供される。例えば、スマートカードがインターネット・サービス・プロバイダによって提供され、スマートカードがコンピュータ・エンティティの信頼性を認証することができない場合、インターネット・サービス・プロバイダは、そのコンピュータ・エンティティとの通信を拒否することもできるし、あるいは、登録した加入者だけが利用できるフルセット・サービスではなく、一般的に利用可能な限定的機能セットを該コンピュータ・エンティティに提供することもできる。
【0128】
本発明に従った1つの特定の形態において、信頼できるコンポーネントの他に、スマートカードおよびアプリケーションが相互に通信するために必要なその他のエレメントが、従来アプリケーションに対する基本的に通常の修正によって提供されることができる。例えば、信頼できるコンポーネントへ信頼性メトリック検査の実行要求を始動することによってアプリケーションからのポーリング信号に応答するようにあらかじめプログラムされた従来のスマートカードに、そのような必要な対話が提供される。
【0129】
図13には、本発明に従ったシステムの可能な第1世代実施形態のコンポーネントの論理的構成が示されている。信頼できるコンポーネント1500は、コンピュータ・プラットフォームから独立し、信頼できる論理的空間に配置されたプロセッサおよびメモリを備える。コンピュータ・プラットフォーム1501は、コンピュータ・プラットフォーム空間1501に配置されたプロセッサおよびデータ記憶手段を備える。サブシステム1502およびアプリケーション1507はコンピュータ空間1501に配置されている。サブシステム1502は、アプリケーション・インタフェース1503、検証アプリケーション1504およびスマートカード・インタフェース1505を含む。スマートカード・インタフェースは、スマートカード1507を受け入れるため、コンピュータ・プラットフォーム空間1501にやはり配置されたスマートカード読取装置1506と通信する、アプリケーション・インタフェース1503は、PCIAスタックを含む。
【0130】
ここで図14を参照すれば、図13のシステムの動作の方法が示されている。ここでの動作は、例えばスマートカード1507が、アプリケーションからの機能性"X"に関する要求に応答して機能性"X"を与えることに先立って、信頼できるコンポーネントと対話するための動作である。この動作方法において、PCSCスタックへの呼び出しは、PCIA機能性を透過的に提供するため、PCIAスタックを通して行われる。最良のモードにおいて、PCSCスタックは、PCIAスタックと機能性を統合する。ステップ1600において、アプリケーションが、サブシステム1502のアプリケーション・インタフェース1503に配置されたPCSCスタックを通して、機能性"X"に関する要求をスマートカードに送り出す。
【0131】
ステップ1601において、PCSCスタックはスマートカードにコマンドを送り出して、スマートカードから機能性"X"を要求する。ステップ1602において、スマートカードは、コンピュータ・エンティティの信頼性の検証に関する要求で応答する。ステップ1603において、PCSCスタックは、PCIA機能性を通して、要求を受け取り、メッセージが信頼できるコンポーネントへ送られる。別のPCIAスタックの使用または既存のPCIA機能性の使用のいずれかによって、メッセージは、信頼性検査を開始するように、信頼できるコンポーネントに送られる。これは、アプリケーション・インタフェース1503から信頼できるコンポーネント1500へ直接送られる。第1の特定の形態において、検証アプリケーション1504およびサブシステム1502が、信頼性メトリック検査を実行するため信頼できるコンポーネントによって使用される。最良モードの実施形態において、信頼できるコンポーネント1500は、それ自体の範囲内に、コンピュータ・プラットフォームに関するこれらの信頼性検査を直接実行する機能性を含む。
【0132】
ステップ1506において、信頼できるコンポーネントは、(最良モードにおいてそれ自体第1の実施形態における検証アプリケーションと連係して、) デジタル署名および認証データと共に信頼性検証の結果をスマートカードに送る。ステップ1607において、スマートカードは。デジタル署名と共に信頼性検証の結果を受け取り、信頼できるコンポーネントを認証するためデジタル署名を検証し、満足できるものであれば、信頼性の検証の結果を信頼する。この結果に基づいて、スマートカードは、機能性"X"をアプリケーションに提供するか否かを決定する。そこで、アプリケーションは処理を進めることができる。スマートカードは、コンピュータ・エンティティの信頼できるコンポーネント上で信頼性チャレンジを実行するように要求することによってコンピュータ・プラットフォームの信頼性を検証する。その結果について満足すれば、このチャレンジはアプリケーションに機能性を提供することを受け入れる。
なお、下に段落番号ごとに列挙する語句は、それぞれ商標登録された製品を示している。
段落0002:「アップル・マッキントッシュ」、「マイクロソフト・ウィンドウズ’95、’98オペレーティング・システム製品」、「インテル・プロセッサ」、段落0003における「 Unix オペレーティング・システム」、「マイクロソフト・ウィンドウズNT4.0」
段落0007:「マイクロソフト・ウィンドウズ4.0」、「ウィンドウズNT4.0オペレーティング・システム・ソフトウェア」、「ウィンドウズNT4.0オペレーティング・システム」
段落0008:「 Dr Solomons virus ツール・キット」、「 Norton anti-virus キット」、「マイクロソフト・ウィンドウズ4.0ソフトウェア」
段落0046および0049:「ウィンドウズNT」。
【図面の簡単な説明】
【図1】本発明の実施形態を実行することができるシステムを示すブロック図である。
【図2】スマートカード読取装置を介してスマートカードおよびモジュール・グループと対話するように構成された信頼できる装置を含むマザーボードを示すブロック図である。
【図3】信頼できる装置の更に詳細を示すブロック図である。
【図4】コンピュータ装置の信頼性メトリックの取得に関係するステップを示す流れ図である。
【図5】信頼できるコンピュータ・プラットフォームとその信頼性を検証する信頼できるプラットフォームを含む遠隔プラットフォームとの間の通信を確立することに関連するステップを示す流れ図である。
【図6】本発明の実施形態に従って使用されるユーザ・スマートカードの動作部分を示すブロック図である。
【図7】スマートカードとホスト・プラットフォームを相互認証するプロセスの流れ図である。
【図8】第1の使用モデルに従ったスマートカードおよびコンピュータ・エンティティによって実施される処理ステップの流れ図である。
【図9】コンピュータ・エンティティおよびスマートカードの第2の動作モードを示す流れ図である。
【図10】コンピュータ・エンティティを含むインタフェース・モジュールとスマートカードとの間の通信を示すブロック図である。
【図11】コンピュータ・エンティティ、トークンデバイスおよび信頼できる遠隔サーバを含むコンピュータ・システムを示すブロック図である。
【図12】図11のシステムの動作モードを示す流れ図である。
【図13】本発明に従ったシステムの更なる特定の実施形態を示すブロック図である。
【図14】図13のシステムの動作を示す流れ図である。
【符号の説明】
10 コンピュータ・プラットフォーム
19 トークンデバイス、スマートカード
24 監視コンポーネント

Claims (40)

  1. 第1のデータ・プロセッサおよび第1のデータ記憶手段を有するコンピュータ・プラットフォームと、
    前記コンピュータ・プラットフォームから物理的に独立のスマートカードと、
    第2のデータ・プロセッサおよび第2のデータ記憶手段を有し、前記コンピュータ・プラットフォームに関する複数のデータ検査を実行するように構成された監視コンポーネントとを備え、
    前記スマートカードが、1つの動作モードにおいて、前記監視コンポーネントに信頼性チャレンジを送るように動作し、該信頼性チャレンジに対して受け取る応答が検証されない限り、前記スマートカードは該スマートカードが実行できる特定のアクションを実行しないようにした、コンピュータ・システム。
  2. 前記スマートカードが、前記信頼性チャレンジに対する詳細な応答を受け取り、受け取った信頼性応答を処理して解読する、請求項1に記載のコンピュータ・システム。
  3. 前記コンピュータ・システムが第三者サーバをさらに備え、前記信頼性チャレンジに対する応答が前記第三者サーバに送られる、請求項1に記載のコンピュータ・システム。
  4. 前記監視コンポーネントが詳細な信頼性応答を前記第三者サーバに送る、請求項3に記載のコンピュータ・システム。
  5. 前記監視コンポーネントは、前記信頼性チャレンジにおいて詳細な信頼性応答を第三者サーバに送ることを要求されたとき、前記詳細な信頼性応答を第三者サーバに送る、請求項4に記載のコンピュータ・システム。
  6. 前記監視コンポーネントが前記スマートカードに詳細な信頼性応答を報告し、前記詳細な信頼性応答の解読について第三者サーバの援助を必要とするとき、前記スマートカードは前記信頼性応答を前記第三者サーバに送る、請求項4に記載のコンピュータ・システム。
  7. 前記第三者サーバは、前記スマートカードが前記信頼性応答を解読できる形態に前記信頼性応答を簡略化する、請求項4から6のいずれかに記載のコンピュータ・システム。
  8. 前記第三者サーバは、簡略化された信頼性応答を前記スマートカードに送る、請求項7に記載のコンピュータ・システム。
  9. 前記スマートカードに対して前記第三者サーバを認証するデジタル署名データを簡略化された前記信頼性応答に加えるように動作する、請求項1に記載のコンピュータ・システム。
  10. 前記スマートカードがアクションをとるように要求される、請求項1から9のいずれかに記載のコンピュータ・システム。
  11. 前記スマートカードがアクションをとるように要求する、請求項1から10のいずれかに記載のコンピュータ・システム。
  12. 前記スマートカードが、前記信頼性チャレンジに対して受け取る応答が検証されるとき、前記コンピュータ・プラットフォームにイメージ・データを送り、前記コンピュータ・プラットフォームが該イメージ・データを表示する、請求項1から11のいずれかに記載のコンピュータ・システム。
  13. 前記監視コンポーネントがそれ自体の識別性を確立する機能を持つ、請求項1から12のいずれかに記載のコンピュータ・システム。
  14. 前記監視コンポーネントと前記スマートカードとの間をインタフェースする手段をさらに備える、請求項1から13のいずれかに記載のコンピュータ・システム。
  15. 前記監視コンポーネントが前記コンピュータ・プラットフォームの状態を記述するデータを含む前記データチェックを前記スマートカードに報告するように前記コンピュータ・システムが構成される、請求項1から14のいずれかに記載のコンピュータ・システム。
  16. 前記特定のアクションをとることは、前記コンピュータ・システムのユーザに代わって前記コンピュータ・プラットフォームにトランザクションを実行する権限を与えることを含む、請求項1から15のいずれかに記載のコンピュータ・システム。
  17. 前記特定のアクションをとることは、検証データを前記コンピュータ・プラットフォームに送信することを含み、前記検証データは、前記コンピュータ・プラットフォームの正しい動作を検証し、前記コンピュータ・プラットフォームは、前記検証データを画像表示スクリーンに表示する、請求項1から16のいずれかに記載のコンピュータ・システム。
  18. 前記コンピュータ・プラットフォームと前記スマートカードとの間で通信するためのインタフェース手段をさらに含み、該インタフェース手段は、前記監視コンポーネントと通信し、前記コンピュータ・システムは、前記監視コンポーネントが前記スマートカードに前記データ検査を報告し、該データ検査は、前記コンピュータ・プラットフォームの状態を記述するデータを含むように構成される、請求項1から17のいずれかに記載のコンピュータ・システム。
  19. 前記スマートカードと前記インタフェース手段との間の通信において、前記監視コンポーネントが起動され、前記コンピュータフラットフォーム上において表示動作を行い、前記コンピュータ・プラットフォームの動作状態を記述するデータを取得する、請求項18に記載のコンピュータ・システム。
  20. 前記インタフェース手段が前記監視コンポーネントの範囲内に全体として配置される、請求項18または19に記載のコンピュータ・システム
  21. 前記インタフェース手段は前記コンピュータ・プラットフォームを含む、請求項18または19に記載のコンピュータ・システム。
  22. 前記インタフェース手段はスマートカードリーダを含む、請求項18から21のいずれかに記載のコンピュータ・システム。
  23. 前記インタフェース手段はPCSCワークグループPC/SC仕様1.0に従ったPCSCスタックを含む、請求項18から22のいずれかに記載のコンピュータ・システム。
  24. 前記監視コンポーネントが、前記状態データを独立して認証する認証データを取得し、該認証データを前記インタフェース手段に提供するように構成された検証手段を含む、請求項18から23のいずれかに記載のコンピュータ・システム。
  25. 前記インタフェース手段が能動的プロトコルに従ってデータを送受するように構成される、請求項18から24のいずれかに記載のコンピュータ・システム。
  26. データ・プロセッサとメモリデバイスとを備え、データ処理または信号を送る機能の少なくとも1つを行うことができるように構成されたスマートカードであって、
    コンピュータ・システムの要素から、前記少なくとも1つのデータ処理または信号を送る機能を行う要求を受け取る手段と
    前記コンピュータ・システムの信頼性を確認するため、前記コンピュータ・システム監視コンポーネントに対する信頼性データの要求を生成する手段と
    前記監視コンポーネントから信頼性データを受け取る手段と
    受け取った前記信頼性データが検証されるとき、前記機能を許可し、け取った前記信頼性データが検証されないとき、前記機能を拒否する手段と、
    を備える前記スマートカード
  27. PC/SC仕様1.0に従うポーリング信号動作に応じるように構成され、能動的プロトコルに従う前記ポーリング信号に応じて、前記スマートカードがコマンドを始動し、前記コンピュータ・システムにおいてソフトウェア・スタックによって取り扱われる、請求項26に記載のスマートカード
  28. コンピュータ・プラットフォームおよび監視コンポーネントを備えるコンピュータ・システムの状態の検証を取得する方法であって、
    前記コンピュータ・プラットフォーム上で走るアプリケーションが、該コンピュータ・プラットフォームとは物理的に独立したスマートカードの機能へのアクセスを要求するステップと、
    記アクセスの要求に応答して、前記スマートカードが前記監視コンポーネント検証データを要求する要求信号を生成するステップと、
    前記検証データの要求に応答して、前記監視コンポーネントが監視動作の結果を記述する結果メッセージを前記スマートカードに送るステップと、
    記結果メッセージが検証されるとき、前記スマートカードが前記アプリケーションに前記機能を提供するステップと、
    を含む方法。
  29. 前記監視動作は、
    記監視コンポーネントが前記コンピュータ・プラットフォームのコンポーネントに1または複数のデータ検査を行うステップと、
    前記監視コンポーネントが、認証された基準データの組を前記データ検査とともに報告するステップと、
    を含む請求項28に記載の方法。
  30. 前記認証された基準データが、前記コンピュータ・プラットフォームの特定のコンポーネントを測定する時に期待されるべきメトリック・セットを含み、前記基準データを認証するエンティティを特定するデジタル署名データを含む、請求項29に記載の方法。
  31. 確認データの画像表示として前記監視動作の結果を報告するステップをさらに含む、請求項28から30のいずれかに記載の方法。
  32. 前記監視コンポーネントを特定するデジタル署名データを前記結果メッセージに加えるステップと、
    前記結果メッセージおよび前記デジタル署名データを前記スマートカードに送信するステップと、
    をさらに含む請求項28から31のいずれかに記載の方法。
  33. 信頼性チャレンジにおいて前記スマートカードが要求するとき、前記監視コンポーネントは第三者サーバへ詳細な信頼性応答を送る、請求項28から32のいずれかに記載の方法。
  34. 前記監視コンポーネントが前記スマートカードに詳細な信頼性応答を報告し、前記詳細な信頼性応答の解読について第三者サーバの援助を必要とするとき、前記スマートカードは前記信頼性応答を前記第三者サーバへ送る、請求項33に記載の方法。
  35. 前記第三者サーバは、前記スマートカードが前記信頼性応答を解読することができる形に前記信頼性応答を簡略化する、請求項33または34に記載の方法。
  36. 前記第三者サーバが、前記スマートカードに簡略化された信頼性応答を送る、請求項35に記載の方法。
  37. 前記スマートカードに対して第三者サーバを認証するデジタル署名データを、簡略化された信頼性応答に加えるステップをさらに含む、請求項36に記載の方法。
  38. 記コンピュータ・プラットフォームからの受け取られるポーリング信号に応答するよう前記スマートカードをプログラムするステップをさらに含み、
    前記機能の要求は、前記スマートカードが前記コンピュータ・プラットフォームから前記ポーリング信号を受け取ることを含み、
    受け取られた前記ポーリング信号に応答して、前記スマートカードが前記監視コンポーネントによる検証動作に対する前記要求を生成する、請求項28から37のいずれかに記載の方法。
  39. 前記ポーリング信号は、前記コンピュータ・プラットフォームにおいて実行中のアプリケーションプログラムから受け取られる、請求項38に記載の方法。
  40. 前記スマートカードは、データ処理能力を有し、期待される動作を行い、前記コンピュータ・プラットフォームおよび前記監視コンポーネントから物理的に分離可能であり、暗号データ処理能力を有し、
    前記監視コンポーネントが前記コンピュータ・プラットフォームにおいて実行される少なくとも1つのデータ検査の報告を作成するステップをさらに含む、請求項28から39のいずれかに記載の方法。
JP2000604287A 1999-03-05 2000-03-03 信頼できる計算プラットフォームのためのスマートカード・ユーザインターフェイス Expired - Fee Related JP4219561B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
GBGB9905056.9A GB9905056D0 (en) 1999-03-05 1999-03-05 Computing apparatus & methods of operating computer apparatus
GB9905056.9 1999-03-05
GB9929697.2 1999-12-15
GBGB9929697.2A GB9929697D0 (en) 1999-12-15 1999-12-15 Smartcard user interface for trusted computing platform
PCT/GB2000/000752 WO2000054126A1 (en) 1999-03-05 2000-03-03 Smartcard user interface for trusted computing platform

Publications (3)

Publication Number Publication Date
JP2002539656A JP2002539656A (ja) 2002-11-19
JP2002539656A5 JP2002539656A5 (ja) 2005-12-22
JP4219561B2 true JP4219561B2 (ja) 2009-02-04

Family

ID=26315223

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000604287A Expired - Fee Related JP4219561B2 (ja) 1999-03-05 2000-03-03 信頼できる計算プラットフォームのためのスマートカード・ユーザインターフェイス

Country Status (4)

Country Link
EP (1) EP1159662B2 (ja)
JP (1) JP4219561B2 (ja)
DE (1) DE60007724T3 (ja)
WO (1) WO2000054126A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11507920B2 (en) * 2020-04-06 2022-11-22 Dell Products L.P. System and method of determining authentication of components of information handling systems

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1055990A1 (en) 1999-05-28 2000-11-29 Hewlett-Packard Company Event logging in a computing platform
EP1056010A1 (en) 1999-05-28 2000-11-29 Hewlett-Packard Company Data integrity monitoring in trusted computing entity
EP1056014A1 (en) 1999-05-28 2000-11-29 Hewlett-Packard Company System for providing a trustworthy user interface
EP1085396A1 (en) 1999-09-17 2001-03-21 Hewlett-Packard Company Operation of trusted state in computing platform
GB0020416D0 (en) * 2000-08-18 2000-10-04 Hewlett Packard Co Trusted system
GB0028278D0 (en) * 2000-11-20 2001-01-03 Tao Group Ltd Personal authentication system
GB2376763B (en) 2001-06-19 2004-12-15 Hewlett Packard Co Demonstrating integrity of a compartment of a compartmented operating system
KR20020060572A (ko) * 2001-01-11 2002-07-18 포만 제프리 엘 개인용 컴퓨터가 허가되지 않은 사용자에 의해 사용되는것을 방지하기 위한 보안 시스템
GB2372594B (en) * 2001-02-23 2004-10-06 Hewlett Packard Co Trusted computing environment
GB2376313A (en) * 2001-06-04 2002-12-11 Hewlett Packard Co Indicating to a user if they are connected to a trusted computer platform
EP1282023A1 (en) * 2001-07-30 2003-02-05 Hewlett-Packard Company Trusted platform evaluation
EP1282027A1 (en) * 2001-07-30 2003-02-05 Hewlett-Packard Company Trusted platform evaluation
US7058807B2 (en) * 2002-04-15 2006-06-06 Intel Corporation Validation of inclusion of a platform within a data center
JP2004040717A (ja) * 2002-07-08 2004-02-05 Matsushita Electric Ind Co Ltd 機器認証システム
WO2004036513A1 (en) * 2002-10-17 2004-04-29 Vodafone Group Plc Facilitating and authenticating transactions
DE10302427B4 (de) * 2003-01-22 2005-04-07 Fujitsu Siemens Computers Gmbh Verfahren zum Betreiben eines Datenverarbeitungssystems mit einer Sicherheitseinrichtung
CN100407088C (zh) * 2003-10-06 2008-07-30 Nxp股份有限公司 用于识别和/或验证设备中以及与设备合作的数据载体中的硬件和/或软件的电路及方法
US7711951B2 (en) * 2004-01-08 2010-05-04 International Business Machines Corporation Method and system for establishing a trust framework based on smart key devices
JP4420201B2 (ja) 2004-02-27 2010-02-24 インターナショナル・ビジネス・マシーンズ・コーポレーション ハードウェアトークンを用いた認証方法、ハードウェアトークン、コンピュータ装置、およびプログラム
US20060242406A1 (en) 2005-04-22 2006-10-26 Microsoft Corporation Protected computing environment
US8347078B2 (en) 2004-10-18 2013-01-01 Microsoft Corporation Device certificate individualization
US8464348B2 (en) * 2004-11-15 2013-06-11 Microsoft Corporation Isolated computing environment anchored into CPU and motherboard
US8176564B2 (en) * 2004-11-15 2012-05-08 Microsoft Corporation Special PC mode entered upon detection of undesired state
US8336085B2 (en) 2004-11-15 2012-12-18 Microsoft Corporation Tuning product policy using observed evidence of customer behavior
US7386736B2 (en) * 2004-12-16 2008-06-10 International Business Machines Corporation Method and system for using a compact disk as a smart key device
US7475247B2 (en) * 2004-12-16 2009-01-06 International Business Machines Corporation Method for using a portable computing device as a smart key device
US9363481B2 (en) 2005-04-22 2016-06-07 Microsoft Technology Licensing, Llc Protected media pipeline
US9436804B2 (en) 2005-04-22 2016-09-06 Microsoft Technology Licensing, Llc Establishing a unique session key using a hardware functionality scan
DE102005041055A1 (de) * 2005-08-30 2007-03-01 Giesecke & Devrient Gmbh Verfahren zur Verbesserung der Vertrauenswürdigkeit von elektronischen Geräten und Datenträger dafür
FR2900298B1 (fr) 2006-04-21 2014-11-21 Trusted Logic Systeme et procede securise de traitement de donnees entre un premier dispositif et au moins un second dispositif dispositif de moyens de surveillance
DE102006021668A1 (de) * 2006-05-10 2007-11-15 S&N Ag Verfahren zum Betrieb PC/SC basierter Chipkartenanwendungen auf Selbstbedienungssystemen mit motorisiertem Kartenleser
AU2008207334A1 (en) * 2007-01-18 2008-07-24 Michael Joseph Knight Interaction process
US8352740B2 (en) 2008-05-23 2013-01-08 Microsoft Corporation Secure execution environment on external device
FR2986124B1 (fr) * 2012-01-25 2014-03-14 Ercom Engineering Reseaux Comm Procede d'authentification d'un dispositif comprenant un processeur et une carte a puce par generation d'un motif
ES2742673T3 (es) * 2013-07-02 2020-02-17 Precise Biometrics Ab Aplicación de verificación, método, dispositivo electrónico y programa informático
US10853090B2 (en) * 2018-01-22 2020-12-01 Hewlett Packard Enterprise Development Lp Integrity verification of an entity

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5610981A (en) * 1992-06-04 1997-03-11 Integrated Technologies Of America, Inc. Preboot protection for a data security system with anti-intrusion capability
KR100213188B1 (ko) * 1996-10-05 1999-08-02 윤종용 사용자 인증 장치 및 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11507920B2 (en) * 2020-04-06 2022-11-22 Dell Products L.P. System and method of determining authentication of components of information handling systems

Also Published As

Publication number Publication date
DE60007724T3 (de) 2011-06-09
EP1159662B2 (en) 2010-10-06
DE60007724T2 (de) 2004-12-09
DE60007724D1 (de) 2004-02-19
EP1159662A1 (en) 2001-12-05
JP2002539656A (ja) 2002-11-19
EP1159662B1 (en) 2004-01-14
WO2000054126A1 (en) 2000-09-14

Similar Documents

Publication Publication Date Title
JP4219561B2 (ja) 信頼できる計算プラットフォームのためのスマートカード・ユーザインターフェイス
US7457951B1 (en) Data integrity monitoring in trusted computing entity
US7444601B2 (en) Trusted computing platform
EP1181632B1 (en) Data event logging in computing platform
JP4091744B2 (ja) コンピュータ装置およびその動作方法
JP4278327B2 (ja) コンピュータ・プラットフォームおよびその運用方法
EP1224516B1 (en) Trusted computing platform for restricting use of data
JP4603167B2 (ja) コンピューティング装置のモジュール間通信
US7430668B1 (en) Protection of the configuration of modules in computing apparatus
US20040243801A1 (en) Trusted device
EP1030237A1 (en) Trusted hardware device in a computer
JP2003507784A (ja) 記憶されたデータの使用に対する強制的な制限

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050323

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050323

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080520

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080818

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

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20081112

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

Free format text: PAYMENT UNTIL: 20111121

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20121121

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20121121

Year of fee payment: 4

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

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

Free format text: PAYMENT UNTIL: 20121121

Year of fee payment: 4

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371

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

Free format text: PAYMENT UNTIL: 20131121

Year of fee payment: 5

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

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

Free format text: PAYMENT UNTIL: 20131121

Year of fee payment: 5

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees