JP4818542B2 - コンピューティングプラットフォームにおけるサービスの実行 - Google Patents

コンピューティングプラットフォームにおけるサービスの実行 Download PDF

Info

Publication number
JP4818542B2
JP4818542B2 JP2001241933A JP2001241933A JP4818542B2 JP 4818542 B2 JP4818542 B2 JP 4818542B2 JP 2001241933 A JP2001241933 A JP 2001241933A JP 2001241933 A JP2001241933 A JP 2001241933A JP 4818542 B2 JP4818542 B2 JP 4818542B2
Authority
JP
Japan
Prior art keywords
trusted
service
computing
platform
computing platform
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 - Lifetime
Application number
JP2001241933A
Other languages
English (en)
Other versions
JP2002092221A5 (ja
JP2002092221A (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
Application filed by Hewlett Packard Co filed Critical Hewlett Packard Co
Publication of JP2002092221A publication Critical patent/JP2002092221A/ja
Publication of JP2002092221A5 publication Critical patent/JP2002092221A5/ja
Application granted granted Critical
Publication of JP4818542B2 publication Critical patent/JP4818542B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging
    • 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
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/552Detecting local intrusion or implementing counter-measures involving long-term monitoring or reporting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • 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
    • 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/0876Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/105Multiple levels of security
    • 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
    • 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/2149Restricted operating environment
    • 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/2153Using hardware token as a secondary aspect
    • 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/0869Network architectures or network communication protocols for network security for authentication of entities for achieving mutual authentication

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Power Engineering (AREA)
  • Quality & Reliability (AREA)
  • Storage Device Security (AREA)
  • Debugging And Monitoring (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、コンピューティングプラットフォームにおけるサービスの実行に関し、特にサービスの一部またはすべての信頼性のあるまたはトラステッドな(trusted)実行が要求される場合の、サービスの実行に適したコンピューティングプラットフォームに関する。
【0002】
【発明が解決しようとする課題】
通常の商業生活では、二者が、一方が他方のためにサービスを実行することに同意する場合、両者の権利および義務を指定するだけでなくサービスがどのように実行されるかという重要な面もまた指定する契約書が、しばしば作成される。また、サービスが満足に実行されたかを決定することができるように、証拠が記録されることも望ましい。ますます、サービスはコンピューティングプラットフォームによって電子的に提供される。契約の使用の適用と契約が満足に実行された証拠を提供するメカニズムとが、現在このコンテキストにおいて欠けている。
【0003】
【課題を解決するための手段】
通常の商業生活における場合と同じ理由で(両者に対する指導、論議の解決)、契約書と類似するものが存在すること、また契約の実行の証拠が存在することも望ましい。従って、本発明は、コンピューティングプラットフォームにおいてリクエスタに対するサービスを実行する方法であって、リクエスタが、実行されるサービスの仕様をコンピューティングプラットフォームに対して供給し、サービスの仕様が、サービスのプロセスの少なくとも一部に対して信頼の指定されたレベルを規定すること、コンピューティングプラットフォームが、仕様に従ってサービスを実行し、信頼のレベルが指定されたプロセスの少なくとも一部の実行をロギングすることと、コンピューティングプラットフォームが、信頼の指定されたレベルに従って実行されるプロセスの実行のログをリクエスタに提供することと、を含む方法を提供する。
【0004】
このように、本発明により、電子的に受取られた要求に応じてコンピューティングプラットフォーム上での満足のいくサービスの実行の証拠を提供することが可能になる。本サービスは、コンピューティングプラットフォームに対して指定することができ、サービスの結果(これらがリクエスタによって要求される場合であるが、これらは他の場所で要求される場合もある)に加えて、リクエスタには、コンピューティングプラットフォームによってサービスが満足に実行された証拠が提供される。
【0005】
証拠の提供は、それ自体で重要である。コンピューティングプラットフォームの標準のコンピューティング環境において取得可能であるより一般に大きい、信頼のレベルを要求するものとして、サービスにおける特定のプロセスを指定する能力により、リクエスタには一層大きい値が提供される。これらプロセスが信頼の所望のレベルに従って実行されたという証拠は、サービスの実行が成功したことの貴重な証拠を提供する。
【0006】
有利には、コンピューティングプラットフォームは、物理的かつ論理的に保護されたコンピューティング環境を含む。これは、コンピューティングプラットフォームの完全性を測定する監視プロセスを行うように適応されてよい。この保護されたコンピューティング環境は、「Trusted Computing Platform」と題され2000年2月15日に出願された、本出願人による同時係属の国際特許出願PCT/GB00/00528号において述べられるような「トラステッド(信頼される(trusted))コンポーネント」によって提供されるものであってよい。サービスが実行された時のコンピューティングプラットフォームの完全性基準は、所望の信頼のレベルに従ってサービスが実行された証拠と共に、リクエスタに返されてよい。
【0007】
好ましくは、サービス管理プロセスは、プロセスの実行および実行のロギングを、コンピューティングプラットフォームにおけるまたはそれに関連する別個のコンピューティング環境に割付ける。このプロセスは、保護されたコンピューティング環境内に配置されてよい。
【0008】
これら別個のコンピューティング環境は、コンパートメントであってよく、その各々が、動作または環境の制約によってコンパートメントの外部からの影響に対して保護されるコンピューティングエンジンを含む。コンパートメントの一例は、Java仮想マシン(Virtual Machine)を含むJavaサンドボックス(sandbox)である。かかるコンパートメントは、保護されたコンピューティング環境の内側または外側(あるいは両方)に配置することができる。
【0009】
コンピューティングエンジンは、それらに割付けられるプロセスの実行中に特定の入力データに対し動作を実行しないようにされてもよい。これは、タイピングによって達成されてよい。すなわち、入力データにはデータタイプが提供され、プロセスには動作タイプが提供され、動作タイプおよびデータタイプが一致しない場合はプロセスの動作が行われない。
【0010】
実行ロギングは、プロセスに対する入力データ、プロセスからの出力データおよびプロセスにおいて実行されるプログラム命令の一部またはすべてのロギングを含んでよい。このデータのすべてをロギングすることができ、あるいはデータの一部またはすべてをサンプルすることができる(特に、プログラム命令データの場合に有用である)。サンプリングは、例えば、その時限りの(nonce)またはランダムな値(それ自体、実行ロギングデータの一部を形成してよい)によって初期化される機能に従って、不規則であることが望ましい。実行ロギングデータは、リクエスタに返される前に暗号化されてよい。実行ロギングパラメータは、オリジナルのサービス仕様において決定されてよく、あるいはサービス管理プロセスによって決定されてよい。
【0011】
更なる態様において、本発明は、コンピューティングプラットフォームの適当なユーザに対し信頼できるデータを提供するよう適応された、物理的かつ論理的に保護されたコンピューティング環境と、そこで実行されるプロセスが確実に実行されるよう十分に制約された方法で動作するように構成された、1つまたは複数のコンパートメントと、を備え、指定されたプロセスが、1つまたは複数のコンパートメントにおいてユーザに対して実行され、指定されたプロセスの結果が、保護されたコンピューティング環境から信頼できるデータでユーザに返されることが可能なコンピューティングプラットフォームを提供する。
【0012】
かかるコンピューティングプラットフォームは、特に、ユーザに対してサービスを実行し、サービスのプロセスが信頼の所望のレベルに従って実行された証拠を提供するにように、適切に適応される。
【0013】
ここで、本発明の好ましい実施の形態を、単に例として、添付図面を参照して説明する。
【0014】
【発明の実施の形態】
本発明の実施の形態を説明する前に、概して本発明の実施の形態を実行するために適したタイプのトラステッド(信頼される(trusted))コンピューティングプラットフォームを、図1ないし図5を参照して説明する。トラステッドコンピューティングプラットフォームのこの説明は、その構成の主要な要素と、そのプラットフォームのユーザに対し、コンピューティングプラットフォームの状態を示す完全性基準を提供する際のその役割と、ユーザに対するかかる基準の通信と、を述べる。このコンテキストにおいて、「ユーザ」は、リモートコンピューティングエンティティ(本発明の実施の形態において、リクエスタはこのカテゴリに入ってよい)等のリモートユーザであってよい。トラステッドコンピューティングプラットフォームは、更に、その内容が引用をもって本明細書内に包含されたものとする、「Trusted Computing Platform」と題され2000年2月15日に出願された本出願人による国際特許出願PCT/GB00/00528号において述べられている。当業者は、本発明が、その動作に関し、正確に後述するようなトラステッドコンピューティングプラットフォームの使用に頼るものではない、ということを認めるであろう。すなわち、かかるトラステッドコンピューティングプラットフォームを使用することは、本発明において要求される機能を成し遂げる、可能な唯一の方法ではなく1つの方法である。
【0015】
本明細書で述べる種類のトラステッドコンピューティングプラットフォームは、物理的なトラステッド装置が組込まれたコンピューティングプラットフォームである。このトラステッド装置の機能は、プラットフォームの識別を、そのプラットフォームの完全性基準を提供する確実に測定されたデータと結合するということである。識別および完全性基準は、プラットフォームの信頼性を保証するために用意されているトラステッドパーティ(trusted party(TP))によって提供される予測された値と比較される。一致がある場合、プラットフォームの少なくとも一部が、完全性基準の範囲によって正確に動作していることを意味する。
【0016】
ユーザは、プラットフォームと他のデータを交換する前に、プラットフォームの正確な動作を検査する。ユーザは、これを、トラステッド装置に対しその識別および完全性基準を提供するよう要求することによって行う。(任意に、トラステッド装置は、それ自体がプラットフォームの正確な動作を検査することができなかった場合、識別の証拠を提供するのを拒否する。)ユーザは、識別の証明と識別基準とを受取り、それらを、真であると信じる値と比較する。それら適当な値は、TPかまたはユーザによって信頼される他のエンティティによって提供される。トラステッド装置によって報告されるデータがTPによって提供されるデータと同じである場合、ユーザはプラットフォームを信頼する。これは、ユーザがエンティティを信頼するためである。エンティティは、プラットフォームを、それが予め識別を検査しプラットフォームの適当な完全性基準を決定しているために信頼する。
【0017】
ユーザは、プラットフォームのトラステッド動作を確立すると、プラットフォームと他のデータを交換する。ローカルユーザの場合、その交換は、プラットフォーム上で実行中のあるソフトウェアアプリケーションとの対話によって行われてよい。リモートユーザの場合、概して本発明の実施の形態の場合のように、交換は、セキュア(secure)トランザクションを含んでよい。いずれの場合も、交換されるデータは、トラステッド装置によって「署名(sign)」される。そして、ユーザは、データが、その振る舞いを信用することができるプラットフォームと交換されているという、より高い信頼性を有することができる。
【0018】
トラステッド装置は、暗号化プロセスを使用するが、必ずしもそれら暗号化プロセスに対して外部インタフェースを提供しない。また、最も望ましい実現は、トラステッド装置を不正操作できないように(tamperproof)して、それらを他のプラットフォーム機能に対してアクセス不可能にすることにより秘密を保護し、許可されていない変更から実質的に影響を受けない環境を提供する。タンパプルーフ化は不可能であるため、最も近いものは、耐タンパ性を有する(tamper-resistant)かまたはタンパ検出する(tanper-detecting)トラステッド装置である。従って、トラステッド装置は、好ましくは耐タンパ性を有する1つの物理的コンポーネントから構成される。
【0019】
耐タンパ性に関連する技術は、セキュリティの分野における当業者には周知である。これら技術には、タンパリングに抵抗する方法(トラステッド装置の適当なカプセル化等)、タンパリングを検出する方法(トラステッド装置のケーシングにおける、仕様外電圧、X線または物理的完全性の損失の検出等)、およびタンパリングが検出される時のデータを除去する方法が含まれる。適当な技術の更なる説明は、http://www.cl.cam.ac.uk/〜mgk25/tamper.htmlにおいて見ることができる。なお、タンパプルーフ化は、本発明の最も望ましい特徴であるが、本発明の通常の動作には入らず、従って本発明の範囲を逸脱するため、本明細書ではこれ以上詳細には説明しない。
【0020】
トラステッド装置は、好ましくは、捏造する(forge)ことが困難でなければならないため物理的に1つである。最も好ましくは、偽造する(counterfeit)ことが困難でなければならないため、耐タンパ性(tamper-resistant)を有する。それは、一般に、ローカルにもまたある距離をおいても、識別を証明することが要求されるため、暗号化プロセスを使用することができるエンジンを有し、それが関連するプラットフォームのある完全性基準を測定する少なくとも1つの方法を含む。
【0021】
図1において、トラステッドプラットフォーム10が図に示されている。プラットフォーム10は、プラットフォームの物理的「ユーザインタフェース」を提供する、キーボード14、マウス16および視覚表示装置(VDU)18の標準的な特徴を含む。また、トラステッドプラットフォームのこの実施の形態は、スマートカードリーダ12を含む。スマートカードリーダは、すべてのトラステッドプラットフォームの本質的な要素ではないが、後述する種々の好ましい実施の形態において採用される。スマートカードリーダ12のそばに、トラステッドプラットフォームとのトラステッドなユーザ対話を可能にするスマートカード19が示されている(トラステッドプラットフォームとのローカルなトラステッドなユーザ対話のためにスマートカードを使用することは、本発明の実施の形態には関連しているが本発明の機能には概して関連はしておらず、このコンテキストにおいて使用されてよいが、本明細書では詳細には説明しない。この態様は、その出願の内容が引用をもって本明細書内に包含されたものとする、「Smartcard User Interface for Trusted Computing Platform」と題され2000年3月3日に出願された、本出願人による国際特許出願PCT/GB00/00751号において更に述べられている)。プラットフォーム10には、複数のモジュール15があり、そのプラットフォームに対し適当な本質的にあらゆる種類のトラステッドプラットフォームの他の機能的要素である(かかる要素の機能的重要性は、本発明には関連しておらず、本明細書ではこれ以上説明しない)。
【0022】
図2に示すように、トラステッドコンピューティングプラットフォーム10のマザーボード20は、(標準コンポーネントの中で)メインプロセッサ21と、メインメモリ22と、トラステッド装置24と、データバス26およびそれぞれ制御ライン27およびライン28と、プラットフォーム10に対するBIOSプログラムを含むBIOSメモリ29と、マザーボードのコンポーネントとスマートカードリーダ12、キーボード14、マウス16およびVDU18との間の対話を制御する入力/出力(IO)装置23と、を含む。メインメモリ22は、一般に、ランダムアクセスメモリ(RAM)である。動作時、プラットフォーム10は、オペレーティングシステム、例えばWindows NT(商標)を、ハードディスク(図示せず)からRAMにロードする。更に、動作時、プラットフォーム10は、プラットフォーム10によって実行されるであろうプロセスまたはアプリケーションをハードディスク(図示せず)からRAMにロードする。
【0023】
一般に、BIOSプログラムが特別に予約されたメモリ領域に配置されるパーソナルコンピュータでは、最初のメガバイトの上位64Kはシステムメモリとなり(F000h〜FFFFhアドレス)、メインプロセッサは、業界標準に従ってこのメモリ位置を最初に見るように構成される。
【0024】
本プラットフォームと従来からのプラットフォームとの重要な差異は、リセット後、メインプロセッサがトラステッド装置によって最初に制御され、その後トラステッド装置が、制御を特定プラットフォーム向けBIOSプログラムに渡し、それによってその特定プラットフォーム向けBIOSプログラムが、標準通りにすべての入力/出力装置を初期化する、ということである。BIOSプログラムが実行された後、制御は標準通りにBIOSプログラムによって、一般にハードディスクドライブ(図示せず)からメインメモリ22にロードされるWindows NT(商標)等のオペレーティングシステムプログラムに渡される。
【0025】
明らかに、通常の手続きからのこの変更には、業界標準の実現に対する変更が必要であり、それによりメインプロセッサ21は、その最初の命令を受取るためにトラステッド装置24にアドレスするよう命令される。この変更は、メインプロセッサ21に異なるアドレスをハードコードすることによって簡単に行われ得る。代替的に、トラステッド装置24に標準BIOSプログラムアドレスが割当てられてよく、その場合、メインプロセッサ構成を変更する必要はない。
【0026】
トラステッド装置24内に、BIOSブートブロックが含まれることが非常に望ましい。これにより、完全性基準の取得が破壊されることが防止され(欠陥のあるソフトウェアプロセスが存在する場合に発生する可能性がある)、BIOS(正確な場合であっても)がオペレーティングシステムに対し適当な環境を構築し損なう状況をもたらす、欠陥のあるソフトウェアプロセスが防止される。
【0027】
述べられるトラステッドコンピューティングプラットフォーム環境において、トラステッド装置24は単一の別個のコンポーネントであるが、代替的に、トラステッド装置24の機能がマザーボード上で複数の装置に分割されてよく、あるいはプラットフォームの現存する標準装置の1つまたは複数に統合されてもよい、ということが考えられる。例えば、機能およびそれらの通信が破壊される可能性が無い場合、トラステッド装置の機能のうちの1つまたは複数をメインプロセッサ自体に統合することが可能である。しかしながら、これには恐らく、トラステッドな機能によって単独に使用するために、プロセッサ上に別個のリードが必要となる。更にまたは代替的に、本実施の形態ではトラステッド装置は、マザーボード20への統合に適応されるハードウェア装置であるが、ドングル(dongle)等、要求される時にプラットフォームに取付けることができる「取外し可能(removable)」装置として実現されてもよい。トラステッド装置が統合されるか取外し可能であるかは、設計の選択の問題である。しかしながら、トラステッド装置が分離可能である場合、トラステッド装置とプラットフォームとの間に論理的結合を提供するメカニズムが存在しなければならない。
【0028】
トラステッド装置24は、図3に示すように、多数のブロックを備える。システムリセット後、トラステッド装置24は、セキュアブートプロセスを実行することにより、プラットフォーム10のオペレーティングシステム(システムクロックおよびモニタのディスプレイを含む)が適切にかつセキュアな方法で実行していることを確実にする。セキュアブートプロセス中、トラステッド装置24は、コンピューティングプラットフォーム10の完全性基準を取得する。また、トラステッド装置24は、セキュアデータ転送、および例えば、暗号化/復号化および署名/検査を介するそれとスマートカードとの間の認証を実行することができる。また、トラステッド装置24は、ユーザインタフェースのロッキング等、種々のセキュリティ制御ポリシーをセキュアに実施することができる。特定の好ましい構成では、コンピューティングプラットフォームに対するディスプレイドライバは、トラステッド装置24内に配置され、その結果、ローカルユーザは、トラステッド装置24によってディスプレイに提供されるデータの表示を信頼することができる。これは、その内容が引用をもって本明細書内に包含されたものとする、「System for Providing a Trustworthy User Interface」と題され2000年5月25日に出願された、本出願人による国際特許出願PCT/GB00/02005号に更に述べられている。
【0029】
特に、トラステッド装置は、トラステッド装置24の全動作を制御し、トラステッド装置24における他の機能およびマザーボード20上の他の装置と対話するようプログラムされたコントローラ30と、プラットフォーム10から完全性基準を取得する測定機能31と、指定されたデータに署名し、指定されたデータを暗号化し、復号化する暗号化機能32と、スマートカードを認証する認証機能33と、マザーボード20のデータバス26、制御ライン27およびアドレスライン28それぞれにトラステッド装置24を接続する適当なポート(36、37および38)を有するインタフェース回路34と、を備える。トラステッド装置24におけるブロックの各々は、トラステッド装置24の適当な揮発性メモリ領域4および/または不揮発性メモリ領域3に(一般にコントローラ30を介して)アクセスすることができる。更に、トラステッド装置24は、周知の方法で、耐タンパ性であるように設計される。
【0030】
パフォーマンス上の理由で、トラステッド装置24は、特定用途向け集積回路(ASIC)として実現されてよい。しかしながら、柔軟性のために、トラステッド装置24は、好ましくは、適当にプログラムされたマイクロコントローラである。ASICおよびマイクロコントローラは共に、マイクロエレクトロニクスの分野において周知であるため、本明細書ではこれ以上詳細には考慮しない。
【0031】
トラステッド装置24の不揮発性メモリ3に格納されるデータの1つの項目は、証明書(certificate)350である。証明書350は、トラステッド装置24の少なくとも公開鍵351とトラステッドパーティ(TP)によって測定されるプラットフォーム完全性基準の認証された値352とを含む。証明書350は、トラステッド装置24に格納される前に、TPによってTPの秘密鍵を使用して署名される。後の通信セッションにおいて、プラットフォーム10のユーザは、取得される完全性基準を認証された完全性基準352と比較することにより、プラットフォーム10の完全性を検査することができる。一致する場合、ユーザは、プラットフォーム10が破壊されていないことを確信することができる。TPの一般に入手可能な公開鍵を知っていることにより、証明書350の簡単な検査が可能になる。また、不揮発性メモリ35は、識別(ID)ラベル353を含む。IDラベル353は、例えば通し番号等、いずれかのコンテキスト内で一意の従来からのIDラベルである。IDラベル353は、概して、トラステッド装置24に関連するデータのインデクス付けおよびラベル付けに対して使用されるが、トラステッドな状況下ではプラットフォーム10の識別を証明するためにはそれだけでは不十分である。
【0032】
トラステッド装置24には、それが関連するコンピューティングプラットフォーム10の完全性基準を確実に測定しまたは取得する少なくとも1つの方法が備えられている。本実施の形態では、完全性基準は、測定機能31により、BIOSメモリのBIOS命令のダイジェストを生成することによって取得される。かかる取得される完全性基準は、上述したように検査されると、プラットフォーム10がハードウェアまたはBIOSプログラムレベルで破壊されていないという高レベルの確信を、プラットフォーム10の潜在的なユーザに与える。他の周知のプロセス、例えばウイルスチェッカは、一般に、オペレーティングシステムおよびアプリケーションプログラムコードが破壊されていないことをチェックするために適所にある。
【0033】
測定機能31は、ハッシュプログラム354とトラステッド装置24の秘密鍵355とを格納する不揮発性メモリ3と、取得された完全性基準をダイジェスト361の形態で格納する揮発性メモリ4と、にアクセスすることができる。適当な実施の形態では、揮発性メモリ4は、プラットフォーム10へのアクセスを可能にするために使用することができる1つまたは複数の認証されたスマートカード19の公開鍵および関連するIDラベル360a〜360nを格納するためにも使用されてよい。
【0034】
1つの好ましい実施の形態では、完全性基準は、ダイジェストと同様にブール値を含み、それは、後に明らかとなる理由により、測定機能31によって揮発性メモリ4に格納される。
【0035】
ここで、完全性基準を取得する好ましいプロセスを、図4を参照して説明する。
【0036】
ステップ500において、スイッチオン時、測定機能31は、データ、制御およびアドレスライン(26、27および28)に対するメインプロセッサ21のアクティビティを監視することにより、トラステッド装置24がアクセスされる最初のメモリであるか判断する。従来からの動作では、メインプロセッサは最初に、BIOSプログラムを実行するためにBIOSメモリに向けられていた。しかしながら、本発明によれば、メインプロセッサ21は、メモリとして作用するトラステッド装置24に向けられる。ステップ505において、トラステッド装置24がアクセスされる最初のメモリである場合、ステップ510において、測定機能31は、揮発性メモリ3に、トラステッド装置24がアクセスされる最初のメモリだったことを示すブール値を書込む。そうでない場合、ステップ515において、測定機能は、トラステッド装置24がアクセスされる最初のメモリでなかったことを示すブール値を書込む。
【0037】
トラステッド装置24が最初にアクセスされた装置でない場合、当然ながら、トラステッド装置24がまったくアクセスされない可能性がある。これは、例えば、メインプロセッサ21がBIOSプログラムを最初に実行するよう操作された場合である。これら環境において、プラットフォームは動作するが、完全性基準が入手可能でないため、その完全性を要求時に検査することができなくなる。更に、トラステッド装置24が、BIOSプログラムがアクセスされた後にアクセスされた場合、ブール値は、プラットフォームの完全性の欠如を明確に示すことになる。
【0038】
ステップ520において、メインプロセッサ21によってメモリとしてアクセスされる場合、メインプロセッサ21は、ステップ525において、測定機能31から格納されたネイティブのハッシュ命令354を読出す。ハッシュ命令354は、メインプロセッサ21によって処理されるためにデータバス26に渡される。ステップ530において、メインプロセッサ21は、ハッシュ命令354を実行し、ステップ535において、それらを用いて、BIOSメモリ29の内容を読出しハッシュプログラムに従ってそれらの内容を処理することにより、BIOSメモリ29のダイジェストを計算する。ステップ540において、メインプロセッサ21は、計算されたダイジェスト361を、トラステッド装置24の適当な不揮発性メモリ位置4に書込む。そして、ステップ545において、測定機能31は、BIOSメモリ29のBIOSプログラムを呼出し、従来からの方法で実行が継続する。
【0039】
明らかに、要求される信頼の範囲によって、完全性基準が計算されてよい多数の異なる方法がある。BIOSプログラムの完全性の測定は、プラットフォームの基礎にある処理環境の完全性に対し基本的なチェックを提供する。完全性基準は、ブートプロセスの妥当性に関する推論を可能にする形態でなければならず、完全性基準の値は、プラットフォームが正確なBIOSを使用してブートしたか検査するために使用することができる。任意に、BIOS内の個々の機能ブロックは、それら自体のダイジェスト値を有することができ、全体的なBIOSダイジェストはこれら個々のダイジェストのダイジェストである。これにより、ポリシーが、BIOS動作のいずれの部分が意図された目的に対して不可欠であるか、およびいずれが無関係であるかを述べることができる(この場合、個々のダイジェストは、ポリシー下の動作の妥当性を確立することができるような方法で格納されなければならない)。
【0040】
他の完全性チェックは、プラットフォームに取付けられる、種々の他の装置、コンポーネントまたは装置が存在し、正しい動作順序にあることを確立することを含む。1つの例では、SCSIコントローラに関連するBIOSプログラムは、周辺装置との通信が信頼できるものであることを確実にするように検査することができる。他の例では、プラットフォーム上の他の装置、例えばメモリ装置またはコプロセッサの完全性を、一貫した結果を確実にするようチャレンジ/応答(challenge/response)型の対話を行うことによって検査することができる。トラステッド装置24が分離可能なコンポーネントである場合、対話のかかる形態の中には、トラステッド装置14とプラットフォームとの間の適当な論理的結合を提供するために望ましいものがある。また、本実施の形態において、トラステッド装置24は、プラットフォームの他の部分とのその通信の主な手段としてデータバスを利用するが、それほど都合よくはないが、ハードワイヤード経路または光路等の代替的な通信経路を提供することも可能である。更に、本実施の形態において、トラステッド装置24は、メインプロセッサ21に対し完全性基準を計算するよう命令するが、他の実施の形態では、トラステッド装置24自体が1つまたは複数の完全性基準を測定するよう構成される。
【0041】
好ましくは、BIOSブートプロセスは、ブートプロセス自体の完全性を検査するメカニズムを含む。かかるメカニズムは、例えば、Intelのドラフト「Wired for Management baseline specification v2.0-BOOT Integrity Service」から既知であり、ロードする前のソフトウェアまたはファームウェアのダイジェストを計算することを含む。かかる計算されたダイジェストは、公開鍵がBIOSに知られているトラステッドエンティティによって提供される証明書に格納された値と比較される。そして、ソフトウェア/ファームウェアは、計算された値が証明書からの予測された値と一致し、証明書が、トラステッドエンティティの公開鍵を使用することによって妥当であると証明された場合にのみ、ロードされる。そうでない場合、適当な例外処理ルーチンが呼出される。
【0042】
任意に、トラステッド装置24は、計算されたBIOSダイジェストを受取った後、その計算されたダイジェストが適当な値に一致しない場合、証明書のBIOSダイジェストの適当な値を調べてBIOSに制御を渡さなくてもよい。更に、または代替的に、トラステッド装置24は、自身がアクセスされた最初のメモリでなかった場合、ブール値を調べてBIOSに制御を返さなくてもよい。これらの場合のいずれかおいても、適当な例外処理ルーチンが呼びだされる。
【0043】
図5は、TPと、プラットフォームに組込まれるトラステッド装置24と、トラステッドプラットフォームの完全性を検査したい(リモートプラットフォームの)ユーザと、による動作の流れを示す。ユーザがローカルユーザである場合、図5に示すものと実質的に同じステップが含まれる、ということは認められよう。いずれの場合も、ユーザは、一般に、検査を行うためにある形態のソフトウェアアプリケーションを基にする。リモートプラットフォームまたはトラステッドプラットフォームにおいてソフトウェアアプリケーションを実行することが可能である。しかしながら、リモートプラットフォームにおいてさえ、ソフトウェアアプリケーションが何らかの方法で破壊される可能性がある。従って、高レベルな完全性のために、ソフトウェアアプリケーションは、ユーザのスマートカード上に常駐し、ユーザは、検査の目的でスマートカードを適当なリーダに挿入することになることが予測される。
【0044】
最初の例では、トラステッドプラットフォームを保証するTPは、プラットフォームのタイプを調べることによりそれを保証するか否かを判断する。これは、ポリシーの問題となる。すべてが適当である場合、ステップ600において、TPは、プラットフォームの完全性基準の値を測定する。そして、TPは、ステップ605において、プラットフォームに対する証明書を生成する。証明書は、TPにより、トラステッド装置の公開鍵および任意にそのIDラベルを、測定される完全性基準に添付し、ストリングにTPの秘密鍵を署名することによって生成される。
【0045】
トラステッド装置24は、後に、その秘密鍵を使用してユーザから受取る入力データを処理し、秘密鍵を知らずに入力/出力ペアを生成することが統計的に不可能であるように、出力データを作成することにより、その識別を証明することができる。これにより、秘密鍵を知っていることが、この場合の識別の基礎を形成する。明らかに、識別の基礎を形成するために対称暗号化を使用することは可能である。しかしながら、対称暗号化を使用する欠点は、ユーザが自身の秘密をトラステッド装置と共有する必要がある、ということである。更に、ユーザと秘密を共有する必要がある結果、対称暗号化は、原則としてユーザに対し識別を証明するためには十分である一方で、トラステッド装置またはユーザからもたらされる検査を完全に確信することができない第三者に対し、識別を証明するには不十分である。
【0046】
ステップ610において、トラステッド装置24は、証明書350をトラステッド装置24の適当な不揮発性メモリ位置3に書込むことによって初期化される。これは、好ましくは、マザーボード20に取付けられる前にトラステッド装置24とのセキュア通信によって行われる。証明書をトラステッド装置24に書込む方法は、秘密鍵を書込むことによってスマートカードを初期化するために使用される方法に類似する。セキュア通信は、TPにのみ知られた、製造中にトラステッド装置(またはスマートカード)に書込まれ、トラステッド装置24にデータを書込むことを可能にするために使用される、「マスタ鍵」によってサポートされる。マスタ鍵を知らずにトラステッド装置24にデータを書込むことは不可能である。
【0047】
プラットフォームの動作中の後の時点で、例えばそれがスイッチオンされるかまたはリセットされる時、ステップ615において、トラステッド装置24は、プラットフォームの完全性基準361を取得し格納する。
【0048】
ユーザは、プラットフォームとの通信を希望する時、ステップ620において、乱数等のナンス(nonce)を生成し、ステップ625において、トラステッド装置24にチャレンジする(challenge)(プラットフォームのオペレーティングシステム、または適当なソフトウェアアプリケーションは、チャレンジを認識し、それを、一般にBIOSタイプのコールを介して、適当な方法でトラステッド装置24に渡すように構成される)。ナンスは、ユーザを、信頼できないプラットフォームによる古いが本物の署名の再現によってもたらされる欺き(deception)(「再現攻撃(replay attack)」と呼ばれる)から保護するために使用される。ナンスを提供し応答を検査するプロセスは、周知の「チャレンジ/応答(challenge/response)」プロセスの例である。
【0049】
ステップ630において、トラステッド装置24は、チャレンジを受取り適当な応答を生成する。これは、測定される完全性基準のダイジェストおよびナンス、任意にそのIDラベルであってよい。そして、ステップ635において、トラステッド装置24は、その秘密鍵を使用してダイジェストに署名し、署名されたダイジェストに証明書350を添付してユーザに返す。
【0050】
ステップ640において、ユーザは、チャレンジ応答を受取り、TPの既知の秘密鍵を使用して証明書を検査する。そして、ユーザは、ステップ650において、証明書からトラステッド装置24の公開鍵を抽出し、それを使用してチャレンジ応答から署名されたダイジェストを復号化する。そして、ステップ660にいて、ユーザは、チャレンジ応答内部のナンスを検査する。次に、ステップ670において、ユーザは、チャレンジ応答から抽出する計算された完全性基準を、証明書から抽出する適当なプラットフォーム完全性基準と比較する。ステップ645、655、665または675において、上述した検査ステップのいずれかが失敗すると、プロセス全体はステップ680で終了し、更なる通信は発生しない。
【0051】
すべてが適当であると仮定すると、ステップ685および690において、ユーザおよびトラステッドプラットフォームは、他のプロトコルを使用して他のデータに対するセキュア通信をセットアップする。この場合、プラットフォームからのデータは、好ましくはトラステッド装置24によって署名される。
【0052】
この検査プロセスの更なる精密化が可能である。チャレンジャがチャレンジを通して、プラットフォーム完全性基準の値とそれが取得された方法との両方に気付くことが望ましい。これら両方の情報により、チャレンジャがプラットフォームの完全性に関する適当な判断を行うことができることが望ましい。また、チャレンジャは、異なる多くのオプションを利用可能である。すなわち、それは、完全性基準がトラステッド装置24において妥当であると認識されることを認めてよく、あるいは、代替的に、完全性基準の値がチャレンジャが保持する値と等しい場合にのみ、プラットフォームが適切なレベルの完全性を有することを認めてもよい。(またはそこに保持してこれら2つの場合において異なるレベルの信頼を有するようにしてもよい。)
【0053】
上記説明は、トラステッドコンピューティングプラットフォームの汎用構造、目的および対話の振舞いを示す。ここで、図6を参照して、本発明の実施の形態で採用されるトラステッドコンピューティングプラットフォームの論理アーキテクチャを説明する。
【0054】
図6に示す論理アーキテクチャは、トラステッドコンポーネント24とコンピュータプラットフォームの残りの部分との間の物理的相違を一致させることにより、標準コンピュータプラットフォーム空間400とトラステッドコンポーネント空間401との間の論理分割を示す。論理空間(ユーザ空間)400は、コンピュータプラットフォーム10のマザーボード20上に物理的に存在するトラステッドコンポーネント24以外のすべてを含み、論理空間(トラステッド空間)401は、トラステッドコンポーネント24内に存在するすべてを含む。
【0055】
ユーザ空間400は、ユーザプラットフォームの標準の論理素子すべてを含むが、その多くはここには示されていない(本発明の動作には特に重要でないため)か、またはトラステッドコンピューティングプラットフォームのメインオペレーティングシステムの制御下にある、標準コンピューティング環境420に包含される。標準コンピューティング環境420を表す論理空間は、インターネット等の外部ネットワーク402(示されている例では、これは、トラステッドプラットフォームからのサービスのリクエスタと通信するためにとられる経路である)との通信を提供するために必要なものを含む、標準ドライバを含むようにとられる。また、ここでは、標準コンピューティング環境420の論理空間内において、コンピューティングプラットフォームの標準計算機能も包含されている。ユーザ空間400内に示す他のコンポーネントは、コンパートメント410である。これらコンパートメントについては後述する。
【0056】
トラステッド空間401は、トラステッドコンポーネント24内のプロセッサおよびメモリによってサポートされる。トラステッド空間410は、トラステッド空間401の内部のコンポーネントと共に、コンパートメント410および標準コンピューティング環境420と対話するための通信コンポーネントを含む。標準コンピューティング環境420とトラステッド空間401との間にセキュア通信経路があることが望ましい(その内容が引用をもって本明細書内に包含されたものとする、2000年2月15日に出願された、本出願人による同時係属国際特許出願PCT/GB00/00504号)。代替的な実施の形態は、ユーザ空間400を含まないトラステッド空間401と外部ネットワーク402との間の直接接続を含んでよい。本構成では、トラステッド空間401とリモートユーザとの間でのみ交換される情報が、ユーザ空間400を暗号化されて通過する。また、トラステッド空間401は、種々の動作から取得されるデータを収集し、このデータを、これら動作の完全性を検査したい者によって望まれる形態で提供するイベントロガー472と、トラステッド空間401外の通信とトラステッド空間401内の記録の提供(例えば、イベントロガー472による)とに要求される(後述するように)暗号化機能474と、ロギングされたイベントが期待されたものと同じであるか判断するために使用される予測アルゴリズム476と、トラステッドな方法で実行されるサービスの実行を調整するサービス管理機能478と、を含む(代替的な実施の形態では、サービス管理機能がユーザ空間400に常駐することが可能であるが、これには、サービス管理機能478自体のより大量の暗号化通信および監視が必要となる。トラステッド空間401内にサービス管理機能478が常駐することにより、より単純な解決法が提供される)。また、トラステッド空間401内には、トラステッドコンパートメント460も常駐する。
【0057】
ここで、コンパートメント410、460について更に説明する。コンパートメント410、460は、仮想コンピューティングエンジン411、461を含む環境であり、そこでは、これら仮想コンピューティングエンジン上で実行するプロセスの動作または特権が制限される。コンパートメント内のコンピューティングエンジン上で実行されるプロセスは、外部の影響による干渉およびのぞき(prying)から高レベルに分離されて実行される。また、かかるプロセスは、不適当なデータに対するプロセスによる干渉またはのぞきを高レベルに制限して実行される。トラステッド空間401で作用することにより与えられる、外部からの影響からの同程度の保護が無い場合であっても、コンパートメントに対して制約が与えられるため、これら特性は信頼性の程度の結果である。コンパートメントの周知の形態は、Javaサンドボックス(sandbox)であり、その場合、仮想コンピューティングエンジン411、461はJava仮想マシン(Java Virtual Machine(JVM))である。Java仮想マシンおよびJava内のセキュリティの処理は、Sun Microsystems Javaウェブサイト(http://java.sun.com、特にhttp://java.sun.com/security)に述べられている。サンドボックスを実現するために、Javaプラットフォームは、3つの主なコンポーネントに基づく。すなわち、クラスローダ、バイトコードベリファイヤおよびセキュリティマネージャである。各コンポーネントは、システムの完全性を維持するために重要な役割を果たす。同時に、これらコンポーネントは、正しいクラスのみがロードされることと、それらクラスが正しいフォーマットであることと、信頼されないクラスが危険な命令を実行しないことと、信頼されないクラスが保護されたシステムリソースにアクセスすることが許可されないことと、を保証する。各コンポーネントについては、例えば「Secure Computing with JavaTM:Now and the Future」と題された白書か、またはJava Development Kit 1.1.Xにおいて(共に、例えばhttp://java.sun.comにおいて、Sun Microsystemsから取得可能である)更に述べられている。コンパートメント化環境におけるJava仮想マシンの使用の例は、HP Presidium VirtualVault(HP Praesidium VirtualVaultの基本的な詳細は、http://www.hp.com/security/products/virtualvault/papers/brief_4.0/において述べられている)によって提供される。
【0058】
このように、各コンパートメントは、プロセス要素を実行するための計算エンジンとしてJava仮想マシン411、461を含む(後述するように、サービス管理プロセス478によってコンパートメントに割当てられる)。また、各コンパートメント411、461内には、コンパートメントが他のシステム要素と(特に、通信ツール470によりトラステッド空間401と)有効に通信するのを可能にする通信ツール412、462と、JVM411、461上で実行されるプロセスの詳細をロギングし詳細をトラステッド空間401のイベントロガー472に返す監視プロセス413、463と、JVM411、461によりコンパートメントとしての動作に必要なデータを保持し、コンパートメントに割付けられるプロセス要素によって使用するためのメモリ414、464と、が含まれる。
【0059】
図6に示すコンパートメントには2つのタイプがある。コンパートメント410は、ユーザ空間400に与えられており、コンパートメントの固有のセキュリティによってのみ保護されている。このため、コンパートメント410は、攻撃または破損に対して比較的セキュアである。しかしながら、特にクリティカルであるかまたは特に秘密であるプロセス要素については、ユーザ空間400から完全に隔離されることが望ましい場合がある。これは、トラステッド空間401内に「トラステッド」コンパートメント460を配置することによって達成することができる。他の点では、コンパートメント460の機能は、コンパートメント410の機能とまったく同じである。トラステッド装置24自体に物理的にトラステッドコンパートメント460を配置することに対する代替例は、トラステッドコンパートメント460を、トラステッド装置24が保護されるのと同じ方法でタンパリングから物理的に保護される別個の物理要素内に配置することである。この場合、トラステッド装置24とセキュアコンパートメント460を含む耐タンパエンティティとの間にもセキュア通信経路が提供されることが有利である。
【0060】
トラステッドモジュール24内の「オペレーティングシステム」と「コンパートメント保護」とがハードウェアまたはファームウェアにハードコードされてよく、トラステッド空間401外部のデータまたはプロセスへのアクセスがハードウェアまたはファームウェアゲートキーパによって管理されてよいため、トラステッドコンパートメント460は、コンポーネント410より高レベルの信頼を提供する。これにより、トラステッドコンパートメント内のプロセスがその制御を破壊するかまたは望ましくないプロセスによって影響されることが非常に困難になる。
【0061】
提供される保護されたコンパートメント460の数は、一方では利用可能な非常にトラステッドな処理の容量の大きさと、他方ではプラットフォームコストおよびプラットフォームパフォーマンスと、の間のバランスである。利用可能なコンパートメント410の数は、コストに大きく影響を与える可能性が低いが、プラットフォームパフォーマンスとプロセスの実行に関する証拠を収集する能力とのバランスである。
【0062】
トラステッドコンピューティングプラットフォームによって実行されるプロセスの複雑性により、システムにおいていかなる数のコンパートメント410およびトラステッドコンパートメント460があってもよい。
【0063】
本発明の態様は、リクエスタに対するサービスを実行するサービスプラットフォーム(好ましくは、トラステッドコンピューティングプラットフォーム)の使用に関する。この場合、リクエスタは、サービスが特定の方法で実行されるように要求する。特に、リクエスタは、全サービス内で所定のサービス要素が所定の程度の信頼性または安全性で実行されるよう要求する。概して、サービス要素は、3つのカテゴリに分割することができる。すなわち、絶対に信頼されるべきサービス要素と、信頼できることが要求されるサービス要素と、サービスが機能するために適当に動作する必要があるが、特別な程度の信頼は要求しないサービス要素と、である。本質的に信頼されなければならないサービスには、一般に、トラステッドコンピューティングプラットフォームにおけるソフトウェア環境の状態について報告するために使用されるもの(これは、原則的に、図1ないし図5に示すようなトラステッドコンピューティングプラットフォームの適当な使用により満足される)と、サービスの実行の証拠を提供するものと、である。信頼できることが要求され得るサービス要素は、関連する者の1つ(最もあり得るのはリクエスタ)が、その完全性のある程度の保証が要求されるほど十分に重要である、関連するサービス要素を処理したい場合である。例は、特定のコミュニティに対して重要であることが知られている機能であってよい(例えば、土木工学では、例えば耐力コンポーネントの設計において、あるタイプの計算が正確かつ信頼できる方法で実行されることを保証することが特に重要である場合がある)。他のサービス要素は、特定レベルの信頼は関係しない(しかしながら、トラステッドコンピューティングプラットフォームを使用してサービスを実行することにより、信頼性の幾分かの保証を簡単に提供することは可能である)。
【0064】
図7は、リクエスタが、図6に示すようなサービスプラットフォーム上でサービスが実行されるよう手配する際に使用する、本発明の実施の形態によるプロセスの主な要素を示す。最初のステップは、リクエスタが、ステップ701においてトラステッドコンポーネント24を認証することにより、コンピューティングプラットフォームがトラステッドコンピューティングプラットフォームであることを検査することである。このプロセスは、本質的に、図5に示すものである。このプロセスは、相互認証の1つであってよく、トラステッドコンピューティングプラットフォームは、ある種のサービスを実行する前に、リクエスタもまたトラステッドコンピューティングプラットフォームであることを要求してよい。
【0065】
ステップ702において、リクエスタは、サービスを定義するために必要な材料を、トラステッドコンピューティングプラットフォームに送信する。この材料には2つの要素がある。すなわち、一方は、実行されるべきサービスとサービスの実行時のあらゆる状況とを定義する「契約」であり、他方は、サービスの実行に必要なカスタムデータである(リクエスタがまだ知らないデータが、一般に、トラステッドコンピューティングプラットフォームには入手可能である)。この材料は、トラステッドコンポーネント24の暗号化機能を使用するか、またはコンピューティングプラットフォームのいずれかで利用可能な暗号化機能を使用して、好ましくはトラステッドコンポーネント24によって提供される機能(鍵格納またはセッション鍵通信等)と協働して、復号化されるために暗号化形式で送信される。一般に、リクエスタは、セッション鍵によって材料をセキュアにし、その後トラステッドコンポーネント24のみが知る鍵によってセッション鍵をセキュアにする。リクエスタは、保護されたセッションキーと保護された材料とを、トラステッドコンピューティングプラットフォームに送信する。トラステッドコンポーネント24(特に、その暗号化機能474)は、セッション鍵を回復し、従来からのセキュリティ方法によって材料のソースおよび完全性を検査する。
【0066】
契約は、サービスに対し、トラステッドコンピューティングプラットフォームが、いかにサービスを実行するか、すなわち何のサービス要素が実行されなければならないかと、それらが、サービスの結果をリクエスタに返す(あるいは、恐らく第三者に転送する)ことができるようにいかに結合されるべきであるかと、を解釈することができるように十分に指定しなければならない。更に、契約は、全体としてのサービス、または個々のサービス要素がいかに実行されるべきかに関し、リクエスタによって認められるあらゆる状況を指定する。本発明の実施の形態に特に関係することは、特定のサービス要素(プロセス)がトラステッドなまたはセキュアな方法で実行されなければならない、という要求である。例えば、リクエスタは、プロセスの第1のセットに対して絶対的な信頼が不可欠であることを要求し、プロセスの第2のセットに対して高い信頼を要求し、プロセスの第3のセットに対しては特定の要求をしなくてよい。これら要求は、プロセスの第1のセットをトラステッドコンパートメント460で実行し、プロセスの第2のセットをコンパートメント410で実行することによって満たされ、プロセスの第3のセットは、コンピューティングプラットフォームのオペレーティングシステムの制御の下で標準コンピューティング環境420において実行することができる。また、リクエスタは、契約が確実に実行され、同時に、要求される信頼の状態の下で実行された、という契約の実行の証拠も要求してよい。一般に、この要求は、絶対的な信頼を必要とし、トラステッドコンパートメントを提供する際か、または標準コンパートメントが安全な環境で実行されているという証拠を提供する際に、トラステッドコンポーネント24の使用を要求する。後述するように、証拠は、プロセスの入力、実行および出力、特にコンパートメントまたはトラステッドコンパートメントで実行されるそれらをロギングすることによって、提供することができる。
【0067】
より詳細には、契約は通常、以下を含む。すなわち、サービスの少なくとも一部を構成するプロセス(それは、提案しているサービス全体の他の部分は他の場所で実行されるということか、またはサービス全体が、本契約が補助的である「マスタ契約」によってカバーされる、ということであってよい)と、トラステッドコンピューティングプラットフォームにおいて実行されなければならないプロセス(一般に、要求は、すべてのプロセスがトラステッドコンピューティングプラットフォームで実行されるが、すべてがコンパートメントまたはトラステッドコンパートメント内で実行されるとは限らない、ということであってよい)と、サービスにおけるプロセスの順序と、プロセスの明白な記述(名前またはソース)および恐らくかかる記述の完全性を検査するデータ(プロセスを実行するプログラムの署名されたダイジェスト等)と、である。また、契約は、信頼レベルを指定してよく、あるいは、特に、特定のプロセスがコンパートメントまたはトラステッドコンパートメント内で実行されるべきである(あるいは、部分的にコンパートメントまたはトラステッドコンパートメント内で実行されるべきである、この可能性については後述する)、ということを指定してよい。また、契約は、プロセスの完全性がいかにして決定されるか、すなわち入力および出力が記録されるかまたは恐らくサンプルされるか(そうである場合、いかにしてサンプルされるか)を判断してよく、プロセスの態様のスケジューリング、すなわち、プロセスの実行がいかにサンプルされるか、コンパートメント(またはトラステッドコンパートメント)自体内での実行がいかにして発生するか、およびプロセスがコンパートメント(またはトラステッドコンパートメント)の内外でいかにしてスワップされるかを判断してもよい。この情報はすべて、トラステッドコンピューティングプラットフォーム(より詳細には、サービス管理プロセス478)により解釈されるために機械読取り可能フォーマットで提供されなければならない。ASN.1等のプログラミング方法が、1つの可能性である。
【0068】
ステップ703において、トラステッドコンピューティングプラットフォームは、契約提案を受入れるかまたは拒絶する。提案は、トラステッドコンピューティングプラットフォームが契約要求に従ってサービスを実行するために必要な構成を有していない場合(例えば、利用可能なトラステッドコンパートメントを有しておらず、これらが契約提案によって明示的かまたは暗示的に要求される場合)か、トラステッドコンピューティングプラットフォームがリクエスタを信頼しない場合か、またはサービスがトラステッドコンピューティングプラットフォームにプログラムされる受入れの他のパラメータ外にある場合に、拒絶される可能性がある。適当なプロトコルが存在する場合、この段階で契約提案を交渉することも可能である(トラステッドコンピューティングプラットフォームが、いずれの契約条件を満たすことができないかを示し代替案を提案し、リクエスタが、代替案が受入れ可能か判断するか、またはそれ自身の新たな代替案を提案することによる。そして、プロセスは、契約が合意されるかまたは行詰まりに達するまで繰返される)。
【0069】
契約提案が受入れられると、トラステッドコンピューティングプラットフォームが契約提案と共に必要な情報をすべて受取るとサービスを実行することが可能になる(代替的に、カスタムデータが、トラステッドコンピューティングプラットフォームが契約提案を受取るまで保持されてよく、受入れ後に提供される)。ステップ704において、トラステッド空間401のサービス管理プロセス478は、サービスをプロセスに分割し、それらプロセスを、適当にトラステッドコンパートメント460、コンパートメント410およびオペレーティングシステム420に割付ける。更に、サービス管理プロセス478は、割付けられたプロセスと共に、実行の証拠を提供するために必要なあらゆる監視プロセスを割当てる。これらは、契約自体において指定されてよく、あるいは、サービス管理プロセス478が、契約において要求されるあるレベルの証拠を提供するために必要な監視プロセスを決定してもよい。
【0070】
ステップ705において、サービス(またはサービスを構成するプロセス)が実行され、必要な証拠がロギングされる。証拠のロギングについては、後に詳述する。ステップ706において、サービスの結果が、要求される場合に提供され(これは、リクエスタに対してであっても、または第三者に対してであってもよく、あるいは特定の場所に配置されてもよく、これは、サービスの特徴およびその目的によって決まる)、証拠ロギングプロセスの結果は、サービス管理プロセス478によって提供されるサービス全体のモデルに従ってイベントロガー472によってアセンブルされる場合に、トラステッドコンポーネント24に返される(これについても、後に詳述する)。そして、ステップ707において、サービス証拠(および、サービスの結果がリクエスタにとって秘密である場合は、サービスの結果)が、暗号化されリクエスタに返される。
【0071】
サービスの実行の主な要素を、図8に示す。リクエスタ801は、サービス管理プロセス803によって受取られる場合に、契約802をトラステッドコンピューティングプラットフォームに提供する。契約は、結果がどこに提供されるべきか(この場合、リクエスタに返される)を指定するが、また要求される証拠のレベルも指定する。この場合、その証拠は、少なくともあるレベルの信頼が指定されるサービスにおけるプロセスに対して提供される。そして、契約は、トラステッドコンピューティングプラットフォームが実行することができるほど十分詳細にサービスを指定する。
【0072】
契約が受信され受入れられると、サービス管理プロセス803は、動作を開始する。最初のジョブは、サービス管理プロセス803が、契約におけるプロセスをトラステッドコンピューティングプラットフォーム内の異なる計算エンジンに割付けるということである(考えられるところでは、プロセスは、トラステッドコンピューティングプラットフォーム外部に下請けに出すことも可能であるが、概して実行の証拠が要求される場合ではない)。この場合、プロセス1は、いかなる信頼要求も有しておらず、トラステッドコンピューティングプラットフォーム(ここでは、オペレーティングシステム806で示す)の標準コンピューティング環境に割付けることができ、プロセス2は、あり得る最高レベルの信頼を要求し、そのためトラステッドコンパートメント805に割付けられる(代替例では、プロセス2は、特にトラステッドコンパートメントの使用を要求する)。プロセス3は、ここではトラステッド実行が要求されることを示すが、「最高」よりは下である「要求される」レベルの信頼を有する。サービス管理プロセス803は、この信頼のレベルが、その特定のコンピューティングプラットフォームにおいていかにして満足されるべきであるか判断することができる。この例では、プロセス3は、コンパートメント(ここでは、コンパートメントA)807において実行されることが適当であると決定されるとする。プロセス4は、ここではコンパートメントで実行される「標準」プロセス(トラステッドコンピューティングプラットフォームに対し既知であるか、またはトラステッドコンピューティングプラットフォームに既知のソースから判断可能なタイプの周知のプロセス)であり、それはコンパートメントB(808)に割付けられる。
【0073】
プロセスが異なるコンピューティングエンジンに割付けられる時、各プロセスに割付けられる証拠のロギングを決定することもまた必要である。これは、契約において、更なる解釈が必要でないほど十分適切に指定されてよい。例えば、プロセス1は、まったくロギングを要求せず(但し、それは、後述するように、ロギングされるトラステッドコンピューティングプラットフォームの通常のコンピューティング環境において実行されるプロセスに対して完全に可能である)、プロセス3は、プロセスに対するすべての入力および出力がロギングされる(但し、動作自体の詳細ではない)ことを要求する。プロセス2に対しては、契約は、ロギングが100%であると規定する。これは、プロセスに対するすべての入力およびそれら入力がプロセスに提供されるシーケンスと、プロセスからのすべての出力および出力がプロセスによって提供されるシーケンスと、プロセスによって実行されるすべてのプログラム命令およびそれらが実行されるシーケンスと、をロギングすることを含む。プロセス4に対しては、信頼のレベルが「標準プロファイル」でセットされ、かかるプロファイルは、関連コミュニティを通してプロセス4等の標準プロセスに対し合意されることが可能であるか、または、リクエスタ801とトラステッドコンピューティングプラットフォームとの両方に対し他の方法で周知であることも可能である。
【0074】
入力、出力および実行データ(またはこのデータのサブセット)の簡単なロギングに対し、代替方法が可能である。入力、出力および実行データはすべて、ロギングプロセスによってサンプルすることができる。サンプリング間隔は、契約において明示的に述べることができ、あるいは、契約において提供されるかまたは言及される機能によって、好ましくは秘密の初期値(恐らく契約の下で提供される)と共に決定されてよい。かかる機能が使用される場合、暗号化ハッシュまたは暗号(最も有利には、最高速度で出力データを生成するため、ストリーム暗号)等、エントロピが大きい機能を使用することが望ましい。初期化後、機能は、データストリームを生成する。その後、そのデータストリームを検査することができ、その出力に特定のパターンまたが現れる場合、データはサンプルされダイジェストが計算される(値のシーケンスを有効にロギングする例示的なプロセスは、(1)シーケンス(機能)の現存する値にシーケンスに添付される新たな値を連結し、(2)データに対し、SHA−1(国立標準技術研究所(National Institute of Standards and Technology(NIST))によるAnnouncement of Weakness in the Secure Hash Standard、1994において述べられている)等のハッシュアルゴリズムを施し、(3)ハッシュアルゴリズムによって生成されるダイジェストを、シーケンスの新たな値としてセットする、というものである)。パターンの長さが短いほど、平均サンプルレートがより速くなる。このように、プロセスの証拠を、データのボーレートより低い平均レートで収集することができる。その出力に対するパターンマッチングと共に高出力エントロピの機能(ハッシュまたは暗号等)を使用することにより、データがサンプルされない時を予測することを困難にする不規則なサンプリングレートが提供される。秘密の初期値を使用することにより、不規則なサンプリングレートを1つの値として表す都合のよい方法が提供される。ロギングプログラム命令(プロセスの速度がサンプリングおよびロギングプロセスによって厳密に制限される可能性がある場合)に対し、プログラム命令のより高いボーレートを処理するために、予め決められた方法またはシーケンスで動作するハッシュエンジンの組合せを使用することが望ましい場合がある。
【0075】
個々のプロセスに対するロギングの決定に加えて、サービス管理プロセス478は、別個の計算エンジンに対しカスタムデータを渡す必要のある場合もある。このデータの一部は、契約が提供される暗号化に加えて、特に暗号化されてよく、あるいは契約が、かかるデータがトラステッド空間401外に渡す前に暗号化されるように要求してもよい(例えば、それは、コンパートメントで実行するプロセスによって使用されることが意図されてよいが、コンパートメント自体は、サービス管理プロセス478によってコンパートメントに渡される時にデータを復号化するよう適応される)。プロセスには、消費する入力データがすべて渡される必要はなく、一部のデータは、標準データか、トラステッドコンピューティングプラットフォームにおいて利用可能であるかまたはそれがアクセス可能であることが既知であるデータとなる。プロセスによるデータの使用については後述する。
【0076】
収集される証拠の特徴が確立されると、そのデータが収集された時にいかにしてアセンブルされるかを確立することが望ましい。これは、例えば、イベントロギングプロセス472に、証拠が収集されるすべてのプロセスの識別を、各かかるプロセスに対して収集されるべき証拠の特徴の指示と共に提供することによって、達成されてよい。
【0077】
そして、プロセスおよび各プロセスに関連する証拠プロセスは、関連する計算エンジンに送られる(そのため、プロセス1は、実行されるために一般的な計算環境に送られ、プロセス2は、トラステッドコンパートメント805によって実行されるために送られ、プロセス3は、1つのコンパートメント807によって実行されるために送られ、プロセス4は、他のコンパートメント808によって実行されるために送られる)。サービスプロセスおよび関連する証拠プロセスの実行の方法は、プロセスが標準コンピューティング環境806で実行されるか、またはコンパートメント807、808すなわちトラステッドコンパートメントにおいて実行されるかによって異なる。それらは、サービスプロセス(そのため証拠プロセス)が、部分的に1つの環境で行われ部分的に他の環境で行われるようにスワップされる場合、更に変化する。
【0078】
標準コンピューティング環境で実行されるプロセスについては、証拠の要求が無くてよい(図8におけるプロセス1の場合のように)。必ずしもそのようにはならないが、ロギングは、例えば標準コンピューティング環境で実行中でありトラステッド空間401におけるイベントロガー804と対話しているエージェントによって実行されてよい。かかる構成は、「Data Event Logging in Computer Platform」と題され2000年5月25日に出願された、本出願人による同時係属国際特許出願PCT/GB00/02004号において述べられている。概して、標準コンピューティング環境で実行されるプロセスについて、入力データの使用に対し特定の要求はなされないが、適当な場合は、入力データの使用に対する制約(コンパートメントの場合で後述する)が使用されてよい。
【0079】
ここで、コンパートメントで実行中のプロセスに対し(ユーザ空間かトラステッド空間かに関らず)、プロセスの実行の段階(本明細書では、明確にするためにサービスプロセスとして説明する)について説明する。この例では、図6のコンパートメント410におけるサービスプロセスの実行について考える。コンパートメントは、仮想コンピューティングエンジン411としてのJVMと、(特に)サービス管理プロセス478およびイベントロギングプロセス472とのデータの交換を可能にする通信プロセス412と、JVM411において実行されるプロセスの詳細をロギングし詳細をイベントロガー472に返す監視プロセス413と、JVM411が必要とするデータを保持するメモリ414と、を含む。サービスプロセスは、通信プロセス412とメモリ414に配置される必要なデータとを通してコンパートメントに提供される。そして、サービスプロセスはJVM411にロードされ、監視プロセス413は、サービスプロセスと共に提供される監視要求に従って起動されることが可能になる。
【0080】
任意に、セキュア通信のために、コンパートメントにトラステッドコンポーネント24が設けられてよい(それには、例えば、暗号識別および適当な暗号機能が提供されてよい)。これが行われる場合、プロセスとサービス管理プロセスによってそれと共に送られるデータとは、暗号化され、コンパートメントによって復号化されてよい。
【0081】
コンパートメント環境の制約された特徴(特に、クラスローダ等の特徴)により、意図されたもの以外のコードのローディングが防止される。これにより、JVM411に対するサービスプロセスのセキュアローディングが可能になる。好ましい変更では、この方法を、サービスプロセスによって使用される入力データにまで拡張することができる。好ましくは、サービスプロセスによって使用されるデータは、そのデータに対する使用許可情報を含む(使用許可が付加されていない場合、デフォルトが提供されることが可能であり、論理的に、これは無制限の使用を可能にする)。そして、サービスプロセス、特にコンパートメント等の制約された環境で実行されるサービスプロセスは、そのサービスプロセスが関連する許可の下で権限を与える場合にのみ入力データが使用されるように、適応されることが可能である。これは、サービスプロセスに対する入力データ(および論理的にサービスからの出力データも)にラベルでタイピングし、同様にサービスプロセスによってデータに対して実行される動作をタイピングすることにより、達成されてよい。タイプラベルは、機能(「保険証書を探索することに関連するプロセスにおいて、およびクレジットカードの適用に対する承認を得ることに関連するプロセスにおいてのみの使用」)か、または動作状態(「所定時刻の前に実行するプロセスにおいてのみの使用」)か、または両方を示してよい。プロセスによるデータの意図された使用がそのデータのタイプラベルと矛盾する場合、そのデータはプロセスによって使用されず、例外が発生してよい。このように、入力および出力データとサービスプロセス動作とのタイピングによってデータの誤用が防止される。
【0082】
コンパートメント410がプロセスに入力データを返す時(これは、関連データがサービス管理プロセスによって提供された場合はメモリ414から、それが周知のデータである場合かまたはデータ位置への参照がサービスプロセスに渡された場合はコンピューティングプラットフォーム(または他の場所)のメインメモリからであってよく、あるいは特にトラステッドコンポーネント24から要求されてもよい)、監視プロセス413は、要求される場合、入力データのセキュアログ(および、有利には、あらゆる関連するタイプタグ)を生成する。上述したように、これを行う有効な方法は、好ましくはコンパートメント内部の一時的なシーケンスにデータを添付することにより、このロギングされたデータをすべてリンクリスト(最終的にトラステッドコンポーネント24によって署名される)に格納する。このデータは、プロセスを記述するログに付加することができる。採用される監視プロセスは、トラステッドコンポーネント24によってトラステッドコンピューティングプラットフォームの完全性を監視するために使用されるプロセスと本質的に同様であってよい。
【0083】
入力データは、第三者から取得されてもローカルに存在してもよいが、識別された「所有者」を有している。これらの場合、所有者には、所有者のデータがサービスプロセスの入力データとしていつ使用されるかが通知されることが望ましい場合がある。また、プロセスが、その使用に対するアクティブな同意を取得するために所有者と連絡をとることも望ましい場合がある。入力データに加えて、サービスプロセスは、それら自体が所有者を有することができる他のプロセスまたはルーチンを呼出すことも可能である。ここでまた、本発明の実施の形態では、コンパートメントは、これら所有者に対しそれらのプロセスまたはルーチンの使用を通知することができる。
【0084】
同様に、監視プロセス413は、最も論理的には命令およびそれらが実行される順序の値を示すことにより、サービスプロセスの実行を監視することができる。上述したように、サンプリングの使用は、生成される証拠の量かまたはそれを取得する際の計算負荷を低減するために、監視プロセスのこの態様において特に有用であり得る。好ましい解決法は、不規則なサンプルレートを生成するために、ナンスで初期化されるハッシュアルゴリズムまたはストリーム暗号を使用することである。入力データに関し、結果としてのデータ(不規則なサンプリングの場合のナンス、ログおよびシーケンス値を含む)は、最終的にトラステッドコンポーネント24によって署名されるために提供される。
【0085】
サービスプロセスは、出力データを生成すると、(概して)メモリ414にそれを書込み、好ましくは出力データと共に、そのデータに許可される使用のタイプを含める。出力データのセキュアログは、本質的に入力データに対する場合と同じ方法で生成されてよい。
【0086】
コンパートメントに対するサービスプロセスの実行の終了時、2つのタイプの出力がある。1つは、標準として、サービスプロセスの出力結果である。更に、異なるタイプの情報に対してしばしば使用される異なる監視プロセスと共に、データおよび命令の完全な記録からサンプリングプロセスの計算された値までのあらゆる形態の、1つまたは複数の入力データ、出力データおよびプロセス実行データを含む監視プロセス413によって生成されるログがある(サービス管理プロセスによって要求される場合)。このログは、サービス管理プロセスによりコンパートメントに渡される証拠要求に従ったものとなる。
【0087】
トラステッドコンピューティングプラットフォームの標準コンピューティング環境におけるサービスプロセスの実行、またはコンパートメントまたはトラステッドコンパートメントにおける実行以外の、他の可能性もあり得る。これは、サービスプロセスが一方の実行環境と他方の実行環境との間でスワップされる、というものであり、例えば、標準コンピューティング環境からコンパートメントまたは保護されたコンパートメントへのプロセスのスワッピングか、またはコンパートメントと保護されたコンパートメントとの間のプロセスのスワッピングである。このスワッピングは、契約において指定することができ、あるいは、システムリソースを最適化する一方で契約の要求を満たすために、サービス管理プロセスによって決定することができる。他の可能性は、プロセススワップがプロセス自体によって起動されるというものであり、例えば、そのタイプにより、標準コンピューティング環境では実行することができず、コンパートメント等のより保護された環境でのみ実行することができるデータが受取られた場合である。このようなプロセスのスワッピングは、本質的に、リモートプロシージャコール等のよく理解された技術を使用する、物理的に別個のプロセッサ間のプロセスのスワッピングと、マルチタスクコンピュータ内のプロセスのスワッピングと、同様である。この場合、「第1のコンピュータ」は、物理的に「第2のコンピュータ」内にあってよい(またはその逆)が、これは、適用される必要のある技術にいかなる基本的な差異ももたらさない。このため、当業者は、プロセスのスワッピングをいかにして達成することができるかをよく理解するであろうから、これについてはこれ以上説明しない。
【0088】
入力データと無関係なサービスプロセスに対し、サービスプロセスの実行は予測可能であってよい。プロセスがよく理解されている場合(本実施例のプロセス4)、サービスプロセス証拠の予測された値がプロセスの実行と無関係に生成されることが可能である(周知のプロセスに対し、予測値は、例えばトラステッドコンポーネント24に格納されてよい)。コンパートメントがかかるサービスプロセスを実行し実行の証拠を収集している場合、この証拠を予測された証拠と比較することができる。満足のいく一致が無い場合、サービスプロセスの実行を終了し例外を発生させることができる。
【0089】
別々のサービスプロセス900の各々が実行された後、サービスプロセスの結果と証拠とは、それぞれサービス管理プロセス803とイベントロガー804とに返される(図9に最も明確に示すように)。例外があった場合も、サービス管理プロセス803に通知される。1つのサービスプロセスが他のサービスプロセスの結果に依存する場合、サービス管理プロセスかまたはスケジュールされるか割付けられる新たなサービスプロセスによりデータが提供されてよい。サービス管理プロセス803は、要求されるに従って別々のプロセスの結果をアセンブルし、すべてのサービスプロセスが実行された時サービス結果を含むことになる(例外がまったくなかったと仮定)。
【0090】
イベントロギングプロセス804は、例えばユーザ空間のエージェントを使用することにより(上述したように)、コンパートメント外部で実行されるサービスプロセスに対しそれ自体で証拠を収集してもよい。更に、それは、それらサービスプロセスに対して与えられる要求に従って、コンパートメント内で実行するサービスプロセスからプロセス証拠を受取ることになる。このプロセス証拠は、期待されるものに対してチェックされてよい。イベントロギングプロセス804は、コンピューティングエンジンに対するサービスプロセスの割付けを企てるサービス管理プロセス803から受取る情報と、各プロセス(サービスプラン901における)に対する証拠要求と、を含む。イベントロギングプロセスは、サービスプロセスによって生成される証拠をチェックすることにより、それがサービスプラン901において示される証拠要求から期待されるものと一致するか(例えば、フォーマット)を判断することができる。入力データと無関係な方法で実行するプロセスに対し、更なるチェックが可能である。すなわち、かかるプロセスに対する予測される標準の証拠結果を、トラステッド空間401のメモリ902内に格納することができる。いずれの場合も、不一致が見付かった場合は適当な例外を生成することができる。
【0091】
イベントロギングプロセス804は、まったく例外を見出さない場合、サービスプラン901に従ってプロセス証拠を結合することができる(証拠の結合の方法は、契約によって指定されてよい)。そして、そのサービス証拠を、サービス管理プロセス803に返すことができる。
【0092】
この時、サービス管理プロセス803は、サービス結果とサービス証拠とを有する。また、それは、トラステッドコンポーネント24の通常の動作に従って、サービス実行時にトラステッドコンピューティングプラットフォームに対する完全性データを取得することも可能である。この時、サービス管理プロセス803は、要求される時はいつでも、最も一般的にはリクエスタ801に返すようにサービス結果を送信することができる。望ましい場合、これらには、トラステッドコンポーネント24の暗号化プロセス903を使用してトラステッドコンポーネント24の秘密鍵によって署名することができる。サービス証拠は、概して、トラステッドコンポーネント24による署名後に、しばしばサービスの実行時にトラステッドコンピューティングプラットフォームに対する(署名された)完全性基準と共に、リクエスタ801に返される。
【0093】
当業者は、本明細書で述べられたアーキテクチャおよび使用されるプロセスに対し、本発明の範囲を逸脱することなく多くの変更が行われ得る、ということを認めるであろう。図6ないし図9に示す実施の形態は、サービス管理プロセスおよびイベントロガー等の重要なコンポーネントがトラステッド空間401内に配置される場合、特にセキュアであるように適応される。これらプロセスの一部またはすべてがユーザ空間400に移動される本発明の実施の形態を提供することができる。ユーザ空間400においてかかるプロセスを実行する利点は、より単純なトラステッドコンポーネント24と、そのためにより安価なアーキテクチャを使用することができる、ということである。トラステッドコンピューティングプラットフォームはトラステッドコンポーネント24によって監視されるため、ユーザ空間400は、非常に信頼できる。特に、イベントロギングプロセスは、サービスの実行のトラステッドな特徴に大きく影響を与えることなく、ユーザ空間400に置換えることができる。サービス管理プロセスは、ユーザ空間への置換えがより困難である可能性があるが、トラステッド空間401とのセキュア通信に適応されたコンパートメント内でそれ自体を実行することはを恐らく可能である。
【0094】
この手法の使用は、一者の、他者によるサービス実行に対する要求に制限されない。トラステッドコンピューティングプラットフォームは、相互にトラステッドな者とすることができ、それは、クライアントがそのデータをサービスに解放したくなかった場合、サービスプロバイダがそのプログラムをクライアントに解放したくなかった場合、またはサービスが異なるサプライヤからのクライアントによって要求される場合に使用することができる。相互にトラステッドな者は、必要な場合(または他の方法で指定される)を除いてデータおよびサービスの分離を保証するため、および契約が遂行された時にデータおよびサービスの完全な抹消を保証するために、関連する他のすべての者によって信頼される。
【0095】
トラステッドコンピューティングプラットフォームは、データおよびサービスの抹消を保証した場合、サービスをサービスが満足に実行された証拠と共に識別するために十分な情報をそれ自体で(恐らくセキュアな記憶域に)保持することが望ましい場合がある。そうでない場合、トラステッドコンピューティングプラットフォームまたはその所有者は、あらゆる後続する問題の発生時に不利となる。
【0096】
以下に本発明の実施態様の例を列挙する。
【0097】
〔実施態様1〕 コンピューティングプラットフォームにおいてリクエスタに対するサービスを実行する方法であって、
該リクエスタが、実行される該サービスの仕様を該コンピューティングプラットフォームに対して供給し、該サービスの該仕様が、該サービスのプロセスの少なくとも一部に対して信頼の指定されたレベルを規定すること、
前記コンピューティングプラットフォームが、前記仕様に従って前記サービスを実行し、信頼のレベルが指定された前記プロセスの少なくとも一部の実行をロギングすることと、
前記コンピューティングプラットフォームが、信頼の前記指定されたレベルに従って実行される前記プロセスの前記実行のログを前記リクエスタに提供することと、
を含む方法。
〔実施態様2〕 前記仕様において信頼のレベルが指定されている前記プロセスの少なくとも一部に対し、実行のロギングを行わない実施態様1記載の方法。
〔実施態様3〕 前記コンピューティングプラットフォームは、物理的かつ論理的に保護されたコンピューティング環境を含む実施態様1または2記載の方法。
〔実施態様4〕 前記物理的かつ論理的に保護されたコンピューティング環境は、前記コンピューティングプラットフォームの完全性を測定する監視プロセスを含む実施態様3記載の方法。
〔実施態様5〕 サービス管理プロセスは、プロセスの実行および実行のロギングを、前記コンピューティングプラットフォーム内かまたはそれに関連する別個のコンピューティング環境に割付ける実施態様1ないし4のいずれか1項記載の方法。
〔実施態様6〕 前記サービス管理プロセスは、前記保護されたコンピューティング環境内に配置される実施態様3に従属する実施態様5記載の方法。
〔実施態様7〕 前記別個のコンピューティング環境の1つまたは複数は、コンパートメントであり、動作または環境の制約により該コンパートメントの外部からの影響に対し保護されたコンピューティングエンジンを含むものである実施態様5記載の方法。
〔実施態様8〕 前記コンピューティングエンジンは、Java仮想マシンである実施態様7記載の方法。
〔実施態様9〕 1つまたは複数のコンパートメントは、前記保護されたコンピューティング環境内に配置される実施態様3に従属する実施態様7または8記載の方法。
〔実施態様10〕 前記コンピューティングエンジンを、許可されない場合は入力データに対して動作しないように制約する実施態様7ないし9のいずれか1項記載の方法。
〔実施態様11〕 入力データにデータタイプを提供し、プロセスに動作タイプを提供し、動作タイプおよびデータタイプが一致しない場合は動作を行わない実施態様10記載の方法。
〔実施態様12〕 入力データは所有者を有してよく、前記プロセスは、該所有者に該入力データの使用を通知するように要求されてよい請求項10または11記載の方法。
〔請求項13〕 入力データは所有者を有してよく、その場合、前記プロセスは、該所有者から該入力データの使用に対する同意を取得するように要求されてよい実施態様10または11記載の方法。
〔実施態様14〕 プロセスを、1つの別個の環境と他の別個の環境との間でスワップしてよい実施態様5記載の方法。
〔実施態様15〕 実行ロギングは、プロセスに対する入力データのロギングを含む実施態様1ないし14のいずれか1項記載の方法。
〔実施態様16〕 実行ロギングは、プロセスからの出力データのロギングを含む実施態様1ないし15のいずれか1項記載の方法。
〔実施態様17〕 実行ロギングは、プロセスの実行において実行されるプログラム命令のロギングを含む実施態様1ないし16のいずれか1項記載の方法。
〔実施態様18〕 ロギングされたデータを、サンプリングプロセスに従ってサンプルする実施態様15ないし17のいずれか1項記載の方法。
〔実施態様19〕 前記サンプリングプロセスを、不規則なサンプリングを提供する機能に従って実行する実施態様18記載の方法。
〔実施態様20〕 ロギングされたデータのダイジェストを、前記実行ロギングデータの一部として取得する実施態様15ないし19のいずれか1項記載の方法。
〔実施態様21〕 前記実行ロギングデータを、前記リクエスタに送信する前に暗号化する実施態様1ないし20のいずれか1項記載の方法。
〔実施態様22〕 前記仕様は、前記サービスの前記プロセスの少なくとも一部に対する実行ロギングパラメータを規定する実施態様1ないし21のいずれか1項記載の方法。
〔実施態様23〕 前記監視プロセスは、前記サービスが実行された時に前記コンピューティングプラットフォームの完全性基準を前記リクエスタに提供する実施態様4に従属する実施態様1記載の方法。
〔実施態様24〕 コンピューティングプラットフォームであって、
該コンピューティングプラットフォームの適当なユーザに対し信頼できるデータを提供するよう適応された、物理的かつ論理的に保護されたコンピューティング環境と、
そこで実行されるプロセスが確実に実行されるように十分に制約された方法で動作するように構成された、1つまたは複数のコンパートメントと、
を具備し、
指定されたプロセスが、前記1つまたは複数のコンパートメントにおいてユーザに対して実行されてよく、該指定されたプロセスの結果が、前記保護されたコンピューティング環境から信頼できるデータで前記ユーザに返されてよいコンピューティングプラットフォーム。
〔実施態様25〕 前記コンパートメントの1つまたは複数は、前記保護されたコンピューティング環境の外部に配置される実施態様24記載のコンピューティングプラットフォーム。
〔実施態様26〕 前記コンパートメントの1つまたは複数は、前記保護されたコンピューティング環境の内部に配置される実施態様24または25記載のコンピューティングプラットフォーム。
〔実施態様27〕 各コンパートメントは、仮想コンピューティングエンジンを含む実施態様24ないし26のいずれか1項記載のコンピューティングプラットフォーム。
〔実施態様28〕 前記仮想コンピューティングエンジンは、Java仮想マシンである実施態様27記載のコンピューティングプラットフォーム。
〔実施態様29〕 前記保護されたコンピューティング環境は、前記コンピューティングプラットフォームの完全性を測定するように適応された監視プロセスを含む実施態様24ないし28のいずれか1項記載のコンピューティングプラットフォーム。
〔実施態様30〕 前記コンピューティングプラットフォームは、前記サービス内のプロセスに割当てられる信頼のレベルを含むサービス記述を受取り、前記コンパートメントに対し前記プロセスの少なくとも一部を割付けるように適応されたサービス管理プロセスを含む実施態様24ないし29のいずれか1項記載のコンピューティングプラットフォーム。
〔実施態様31〕 サービス管理プロセスは、前記保護されたコンピューティング環境内に配置される実施態様30記載のコンピューティングプラットフォーム。
【図面の簡単な説明】
【図1】トラステッド装置を含み、本発明の実施の形態における使用に適したコンピューティングプラットフォームを示す図である。
【図2】スマートカードリーダを介してスマートカードと、およびモジュールのグループと通信するように配置されたトラステッド装置を含むマザーボードを示す図である。
【図3】トラステッド装置をより詳細に示す図である。
【図4】コンピューティング装置の完全性基準を取得することに関連するステップを示すフローチャートである。
【図5】トラステッドコンピューティングプラットフォームと、その完全性を検査するトラステッドプラットフォームを含むリモートプラットフォームと、の間の通信を確立することに関連するステップを示すフローチャートである。
【図6】図1に示すような、本発明の実施の形態における使用に適応したコンピューティングプラットフォームの論理アーキテクチャを概略的に示す図である。
【図7】リクエスタと本発明の実施の形態におけるコンピューティングプラットフォームとの間の相互作用を示すフローチャートである。
【図8】本発明の実施の形態によるコンピューティングプラットフォームによるサービスの実行を示す略図である。
【図9】サービス要素の実行における証拠の収集とリクエスタに対する証拠の提供とを示す図である。

Claims (18)

  1. それぞれプロセスを実行する複数の第1のコンピューティング環境を提供するコンピューティングプラットフォームにおいてリクエスタに対するサービスを実行する方法であって、
    前記リクエスタが、実行される前記サービスに含まれるプロセスの少なくとも一部に対して指定された信頼のレベルを規定する仕様を、前記コンピューティングプラットフォームに対して供給することと、
    前記複数の第1のコンピューティング環境それぞれが、前記信頼のレベルが指定されたプロセスを、前記供給された仕様において前記プロセスに対して指定された信頼のレベルに従って実行することと、
    前記コンピューティングプラットフォームが、前記信頼のレベルが指定されたプロセスの少なくとも一部の実行のログを取得することと、
    前記コンピューティングプラットフォームが、前記信頼のレベルに従って実行されたプロセスの実行のログを、前記リクエスタに提供することと、
    を含む方法。
  2. 前記コンピューティングプラットフォームは、前記信頼のレベルが指定された前記プロセスの実行の一部のみのログを取得する
    請求項1に記載の方法。
  3. 前記複数の第1のコンピューティング環境は、
    その外部から保護された第2のコンピューティング環境
    を含む
    請求項1または2に記載の方法。
  4. 前記第2のコンピューティング環境は、前記コンピューティングプラットフォームの完全性を測定する監視プロセスを実行する
    請求項3に記載の方法。
  5. 前記コンピューティングプラットフォームは、前記プロセスの実行および前記プロセスの実行のログの取得を、前記第1のコンピューティング環境に割付けるサービス管理プロセスを実行する
    請求項1〜4のいずれかに記載の方法。
  6. 前記サービス管理プロセスは、前記第2のコンピューティング環境に割り付けられて実行される
    請求項5に記載の方法。
  7. 前記複数の第1のコンピューティング環境の1つ以上は、コンパートメントであり、
    前記コンパートメントは、
    動作または環境の制約によって、その外部から受けうる影響に対し保護されたコンピューティングエンジン
    を含む
    請求項5記載の方法。
  8. 前記コンピューティングエンジンは、Java仮想マシンである
    請求項7記載の方法。
  9. 前記第1のコンピューティング環境内に、1つ以上のコンパートメントが配置される
    請求項5に記載の方法。
  10. 前記コンピューティングエンジンを、許可されない場合は入力データに対して動作しないように制約する
    請求項7〜9のいずれかに記載の方法。
  11. 前記入力データにはデータタイプが付され、前記プロセスには動作タイプが付され、前記プロセスは、前記入力データに付されたデータタイプと前記プロセスに付された動作タイプとが適合するときにのみ実行される
    請求項10記載の方法。
  12. 前記入力データには所有者があり、前記プロセスは、前記所有者に前記入力データの使用を通知するように要求され得る
    請求項10または11に記載の方法。
  13. 前記入力データに所有者があるときには、前記プロセスは、前記所有者から前記入力データの使用に対する同意を取得するように要求され得る
    請求項10または11記載の方法。
  14. 前記監視プロセスは、前記サービスが実行されたときに、前記コンピューティングプラットフォームの完全性基準を前記リクエスタに提供する
    請求項4に記載の方法。
  15. 保護されて、ユーザに対して信頼できるデータを提供するコンピューティング環境と、
    プロセスを実行する1つ以上のコンパートメントと
    を備え、
    前記保護されたコンピューティング環境は、
    リクエスタから、実行されるサービスに含まれるプロセスの少なくとも一部に対して指定される信頼のレベルを規定する仕様の供給を受ける手段と、
    前記信頼のレベルが指定されたプロセスを、前記コンパートメントに割り付け、前記コンパートメントに、前記割り付けたプロセスを、前記プロセスに対して指定された信頼のレベルに従って実行させる手段と、
    前記プロセスの実行のログの少なくとも一部を取得する手段と、
    前記信頼のレベルに従って実行されたプロセスの実行のログを、前記リクエスタに提供する手段と
    を含む
    コンピューティングプラットフォーム。
  16. 前記コンパートメントの1つ以上は、前記保護されたコンピューティング環境の内部に配置される
    請求項15に記載のコンピューティングプラットフォーム。
  17. 前記コンパートメントは、
    仮想コンピューティングエンジン
    を含む
    請求項15または16に記載のコンピューティングプラットフォーム。
  18. 前記仮想コンピューティングエンジンは、Java仮想マシンである
    請求項17記載のコンピューティングプラットフォーム。
JP2001241933A 2000-08-18 2001-08-09 コンピューティングプラットフォームにおけるサービスの実行 Expired - Lifetime JP4818542B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB0020441.2 2000-08-18
GBGB0020441.2A GB0020441D0 (en) 2000-08-18 2000-08-18 Performance of a service on a computing platform

Publications (3)

Publication Number Publication Date
JP2002092221A JP2002092221A (ja) 2002-03-29
JP2002092221A5 JP2002092221A5 (ja) 2008-09-18
JP4818542B2 true JP4818542B2 (ja) 2011-11-16

Family

ID=9897916

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001241933A Expired - Lifetime JP4818542B2 (ja) 2000-08-18 2001-08-09 コンピューティングプラットフォームにおけるサービスの実行

Country Status (4)

Country Link
US (1) US7877799B2 (ja)
EP (1) EP1182557A3 (ja)
JP (1) JP4818542B2 (ja)
GB (1) GB0020441D0 (ja)

Families Citing this family (95)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7103574B1 (en) * 1999-03-27 2006-09-05 Microsoft Corporation Enforcement architecture and method for digital rights management
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
EP1085396A1 (en) 1999-09-17 2001-03-21 Hewlett-Packard Company Operation of trusted state in computing platform
US7162035B1 (en) 2000-05-24 2007-01-09 Tracer Detection Technology Corp. Authentication method and system
GB0020441D0 (en) 2000-08-18 2000-10-04 Hewlett Packard Co Performance of a service on a computing platform
GB2376763B (en) * 2001-06-19 2004-12-15 Hewlett Packard Co Demonstrating integrity of a compartment of a compartmented operating system
GB0102516D0 (en) * 2001-01-31 2001-03-21 Hewlett Packard Co Trusted gateway system
GB0102518D0 (en) * 2001-01-31 2001-03-21 Hewlett Packard Co Trusted operating system
US6895104B2 (en) 2001-02-16 2005-05-17 Sac Technologies, Inc. Image identification system
GB2372345A (en) * 2001-02-17 2002-08-21 Hewlett Packard Co Secure email handling using a compartmented operating system
GB2372592B (en) * 2001-02-23 2005-03-30 Hewlett Packard Co Information system
GB2372595A (en) * 2001-02-23 2002-08-28 Hewlett Packard Co Method of and apparatus for ascertaining the status of a data processing environment.
GB2372594B (en) 2001-02-23 2004-10-06 Hewlett Packard Co Trusted computing environment
GB2372593B (en) * 2001-02-23 2005-05-18 Hewlett Packard Co Electronic communication
US20020127263A1 (en) * 2001-02-27 2002-09-12 Wenda Carlyle Peroxisome proliferator-acitvated receptor gamma ligand eluting medical device
GB2376313A (en) 2001-06-04 2002-12-11 Hewlett Packard Co Indicating to a user if they are connected to a trusted computer platform
GB2376761A (en) * 2001-06-19 2002-12-24 Hewlett Packard Co An arrangement in which a process is run on a host operating system but may be switched to a guest system if it poses a security risk
GB0114898D0 (en) * 2001-06-19 2001-08-08 Hewlett Packard Co Interaction with electronic services and markets
GB2376764B (en) * 2001-06-19 2004-12-29 Hewlett Packard Co Multiple trusted computing environments
GB2376762A (en) * 2001-06-19 2002-12-24 Hewlett Packard Co Renting a computing environment on a trusted computing platform
GB2376765B (en) * 2001-06-19 2004-12-29 Hewlett Packard Co Multiple trusted computing environments with verifiable environment identities
GB2378013A (en) * 2001-07-27 2003-01-29 Hewlett Packard Co Trusted computer platform audit system
EP1282023A1 (en) * 2001-07-30 2003-02-05 Hewlett-Packard Company Trusted platform evaluation
GB2378272A (en) * 2001-07-31 2003-02-05 Hewlett Packard Co Method and apparatus for locking an application within a trusted environment
US8533776B2 (en) * 2001-09-14 2013-09-10 Lenovo (Singapore) Pte Ltd. Method and system for binding a device to a planar
GB2382419B (en) * 2001-11-22 2005-12-14 Hewlett Packard Co Apparatus and method for creating a trusted environment
US7631196B2 (en) 2002-02-25 2009-12-08 Intel Corporation Method and apparatus for loading a trustable operating system
EP1510032A4 (en) * 2002-05-15 2007-05-30 Bio Key Int Inc COMPARATIVE TEMPLATE PROTECTION IN BIOMETRIC SECURITY SYSTEMS
US7103914B2 (en) 2002-06-17 2006-09-05 Bae Systems Information Technology Llc Trusted computer system
WO2004012383A1 (en) * 2002-07-25 2004-02-05 Bio-Key International, Inc. Trusted biometric device
US8171567B1 (en) 2002-09-04 2012-05-01 Tracer Detection Technology Corp. Authentication method and system
US7974416B2 (en) 2002-11-27 2011-07-05 Intel Corporation Providing a secure execution mode in a pre-boot environment
US7370212B2 (en) 2003-02-25 2008-05-06 Microsoft Corporation Issuing a publisher use license off-line in a digital rights management (DRM) system
US7933785B2 (en) * 2003-07-15 2011-04-26 Sap Ag Real-time benefits service marketplace
US7530103B2 (en) * 2003-08-07 2009-05-05 Microsoft Corporation Projection of trustworthiness from a trusted environment to an untrusted environment
US8190893B2 (en) * 2003-10-27 2012-05-29 Jp Morgan Chase Bank Portable security transaction protocol
US20050193283A1 (en) * 2003-12-30 2005-09-01 Reinhardt Steven K. Buffering unchecked stores for fault detection in redundant multithreading systems using speculative memory support
US20060242406A1 (en) 2005-04-22 2006-10-26 Microsoft Corporation Protected computing environment
DE102004026126B3 (de) * 2004-05-28 2006-01-19 Fujitsu Siemens Computers Gmbh Datenverarbeitungsgerät mit einem Mittel zur Aufzeichnung von Betriebszustandsdaten
US8347078B2 (en) * 2004-10-18 2013-01-01 Microsoft Corporation Device certificate individualization
US20060089917A1 (en) * 2004-10-22 2006-04-27 Microsoft Corporation License synchronization
JP4501156B2 (ja) 2004-10-28 2010-07-14 日本電気株式会社 機密モードに応じたアクセスフォルダ切り替え方法、プログラム、及びコンピュータシステム
US8336085B2 (en) 2004-11-15 2012-12-18 Microsoft Corporation Tuning product policy using observed evidence of customer behavior
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
US7360253B2 (en) * 2004-12-23 2008-04-15 Microsoft Corporation System and method to lock TPM always ‘on’ using a monitor
CN100358303C (zh) * 2005-02-28 2007-12-26 联想(北京)有限公司 一种对被管理设备进行监控的方法
CN1703004B (zh) * 2005-02-28 2010-08-25 联想(北京)有限公司 一种实现网络接入认证的方法
EP1866825A1 (en) 2005-03-22 2007-12-19 Hewlett-Packard Development Company, L.P. Methods, devices and data structures for trusted data
US8438645B2 (en) 2005-04-27 2013-05-07 Microsoft Corporation Secure clock with grace periods
US8725646B2 (en) 2005-04-15 2014-05-13 Microsoft Corporation Output protection levels
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
US20060265758A1 (en) * 2005-05-20 2006-11-23 Microsoft Corporation Extensible media rights
US8353046B2 (en) * 2005-06-08 2013-01-08 Microsoft Corporation System and method for delivery of a modular operating system
US8201240B2 (en) * 2005-09-16 2012-06-12 Nokia Corporation Simple scalable and configurable secure boot for trusted mobile phones
US7890755B2 (en) * 2006-02-28 2011-02-15 The Boeing Company High-assurance web-based configuration of secure network server
US7702781B2 (en) * 2006-03-03 2010-04-20 Teoco Corporation System and method of storing data files at a remote storage facility
US8495380B2 (en) * 2006-06-06 2013-07-23 Red Hat, Inc. Methods and systems for server-side key generation
US7757098B2 (en) 2006-06-27 2010-07-13 Intel Corporation Method and apparatus for verifying authenticity of initial boot code
US7765392B2 (en) * 2006-06-29 2010-07-27 Intel Corporation Method and apparatus for establishing processor as core root of trust for measurement
US7969896B2 (en) * 2006-08-29 2011-06-28 Cisco Technology, Inc. Method and system for providing connectivity outage detection for MPLS core networks based on service level agreement
US20080104588A1 (en) * 2006-10-27 2008-05-01 Barber Michael J Creation of temporary virtual machine clones of multiple operating systems
GB0701518D0 (en) * 2007-01-26 2007-03-07 Hewlett Packard Development Co Methods, devices and data structures for protection of data
JP4907603B2 (ja) * 2007-06-27 2012-04-04 ヒューレット−パッカード デベロップメント カンパニー エル.ピー. アクセス制御システムおよびアクセス制御方法
CN100566251C (zh) * 2007-08-01 2009-12-02 西安西电捷通无线网络通信有限公司 一种增强安全性的可信网络连接方法
CN100534036C (zh) 2007-08-01 2009-08-26 西安西电捷通无线网络通信有限公司 一种基于三元对等鉴别的可信网络连接方法
CN100496025C (zh) 2007-11-16 2009-06-03 西安西电捷通无线网络通信有限公司 一种基于三元对等鉴别的可信网络接入控制方法
US7995196B1 (en) 2008-04-23 2011-08-09 Tracer Detection Technology Corp. Authentication method and system
CN102171669B (zh) 2008-09-30 2014-08-27 惠普开发有限公司 认证分区上的服务
CN101527718B (zh) 2009-04-16 2011-02-16 西安西电捷通无线网络通信股份有限公司 一种建立三元对等鉴别可信网络连接架构的方法
CN101540676B (zh) 2009-04-28 2012-05-23 西安西电捷通无线网络通信股份有限公司 一种适合三元对等鉴别可信网络连接架构的平台鉴别方法
US20130047261A1 (en) * 2011-08-19 2013-02-21 Graeme John Proudler Data Access Control
US8938796B2 (en) 2012-09-20 2015-01-20 Paul Case, SR. Case secure computer architecture
US10088914B2 (en) * 2013-06-13 2018-10-02 Microsoft Technology Licensing, Llc Modifying input delivery to applications
US20220012346A1 (en) * 2013-09-13 2022-01-13 Vmware, Inc. Risk assessment for managed client devices
US9363087B2 (en) 2014-10-02 2016-06-07 Microsoft Technology Licensing, Inc. End-to-end security for hardware running verified software
US10205710B2 (en) * 2015-01-08 2019-02-12 Intertrust Technologies Corporation Cryptographic systems and methods
CN105162602B (zh) * 2015-09-01 2018-05-11 中国互联网络信息中心 一种可信网络身份管理和验证系统和方法
US11240207B2 (en) 2017-08-11 2022-02-01 L3 Technologies, Inc. Network isolation
US11601467B2 (en) 2017-08-24 2023-03-07 L3 Technologies, Inc. Service provider advanced threat protection
US11178104B2 (en) 2017-09-26 2021-11-16 L3 Technologies, Inc. Network isolation with cloud networks
US11184323B2 (en) 2017-09-28 2021-11-23 L3 Technologies, Inc Threat isolation using a plurality of containers
US11336619B2 (en) 2017-09-28 2022-05-17 L3 Technologies, Inc. Host process and memory separation
US11223601B2 (en) 2017-09-28 2022-01-11 L3 Technologies, Inc. Network isolation for collaboration software
US10931669B2 (en) * 2017-09-28 2021-02-23 L3 Technologies, Inc. Endpoint protection and authentication
US11374906B2 (en) 2017-09-28 2022-06-28 L3 Technologies, Inc. Data exfiltration system and methods
US11552987B2 (en) 2017-09-28 2023-01-10 L3 Technologies, Inc. Systems and methods for command and control protection
US11120125B2 (en) 2017-10-23 2021-09-14 L3 Technologies, Inc. Configurable internet isolation and security for laptops and similar devices
US11550898B2 (en) 2017-10-23 2023-01-10 L3 Technologies, Inc. Browser application implementing sandbox based internet isolation
US11170096B2 (en) 2017-10-23 2021-11-09 L3 Technologies, Inc. Configurable internet isolation and security for mobile devices
US10719606B2 (en) * 2018-02-23 2020-07-21 Infineon Technologies Ag Security processor for an embedded system
US11144375B2 (en) * 2018-10-09 2021-10-12 Argo AI, LLC Execution sequence integrity parameter monitoring system
US11138085B2 (en) 2018-10-09 2021-10-05 Argo AI, LLC Execution sequence integrity monitoring system

Family Cites Families (114)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5038281A (en) * 1986-09-19 1991-08-06 International Business Machines Corporation Acceleration of system interrupts between operating systems in guest-host relationship
US4799156A (en) 1986-10-01 1989-01-17 Strategic Processing Corporation Interactive market management system
EP0304033A3 (de) 1987-08-19 1990-07-04 Siemens Aktiengesellschaft Verfahren zum Diagnostizieren einer von Computerviren befallenen Datenverarbeitungsanlage
JPH0642215B2 (ja) 1988-01-28 1994-06-01 インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン 分散式監視サブシステム
US5144660A (en) 1988-08-31 1992-09-01 Rose Anthony M Securing a computer against undesired write operations to or read operations from a mass storage device
US4926476A (en) 1989-02-03 1990-05-15 Motorola, Inc. Method and apparatus for secure execution of untrusted software
US5048085A (en) 1989-10-06 1991-09-10 International Business Machines Corporation Transaction system security method and apparatus
US5029206A (en) * 1989-12-27 1991-07-02 Motorola, Inc. Uniform interface for cryptographic services
US5032979A (en) * 1990-06-22 1991-07-16 International Business Machines Corporation Distributed security auditing subsystem for an operating system
US5204961A (en) 1990-06-25 1993-04-20 Digital Equipment Corporation Computer network operating with multilevel hierarchical security with selectable common trust realms and corresponding security protocols
EP0510244A1 (en) 1991-04-22 1992-10-28 Acer Incorporated Method and apparatus for protecting a computer system from computer viruses
US5504814A (en) 1991-07-10 1996-04-02 Hughes Aircraft Company Efficient security kernel for the 80960 extended architecture
US5694590A (en) * 1991-09-27 1997-12-02 The Mitre Corporation Apparatus and method for the detection of security violations in multilevel secure databases
US5421006A (en) * 1992-05-07 1995-05-30 Compaq Computer Corp. Method and apparatus for assessing integrity of computer system software
US5359659A (en) * 1992-06-19 1994-10-25 Doren Rosenthal Method for securing software against corruption by computer viruses
US5235642A (en) 1992-07-21 1993-08-10 Digital Equipment Corporation Access control subsystem and method for distributed computer system using locally cached authentication credentials
US5361359A (en) * 1992-08-31 1994-11-01 Trusted Information Systems, Inc. System and method for controlling the use of a computer
US5440723A (en) 1993-01-19 1995-08-08 International Business Machines Corporation Automatic immune system for computers and computer networks
US5444850A (en) * 1993-08-04 1995-08-22 Trend Micro Devices Incorporated Method and apparatus for controlling network and workstation access prior to workstation boot
US5771354A (en) * 1993-11-04 1998-06-23 Crawford; Christopher M. Internet online backup system provides remote storage for customers using IDs and passwords which were interactively established when signing up for backup services
US5404532A (en) * 1993-11-30 1995-04-04 International Business Machines Corporation Persistent/impervious event forwarding discriminator
US5572590A (en) * 1994-04-12 1996-11-05 International Business Machines Corporation Discrimination of malicious changes to digital information using multiple signatures
US5473692A (en) * 1994-09-07 1995-12-05 Intel Corporation Roving software license for a hardware agent
US5530758A (en) 1994-06-03 1996-06-25 Motorola, Inc. Operational methods for a secure node in a computer network
US5748964A (en) 1994-12-20 1998-05-05 Sun Microsystems, Inc. Bytecode program interpreter apparatus and method with pre-verification of data type restrictions
CN1312549C (zh) * 1995-02-13 2007-04-25 英特特拉斯特技术公司 用于安全交易管理和电子权利保护的系统和方法
US5892900A (en) * 1996-08-30 1999-04-06 Intertrust Technologies Corp. Systems and methods for secure transaction management and electronic rights protection
US6157719A (en) * 1995-04-03 2000-12-05 Scientific-Atlanta, Inc. Conditional access system
JP3262689B2 (ja) * 1995-05-19 2002-03-04 富士通株式会社 遠隔操作システム
US5619571A (en) * 1995-06-01 1997-04-08 Sandstrom; Brent B. Method for securely storing electronic records
US5754646A (en) 1995-07-19 1998-05-19 Cable Television Laboratories, Inc. Method for protecting publicly distributed software
US5787175A (en) * 1995-10-23 1998-07-28 Novell, Inc. Method and apparatus for collaborative document control
CA2187855A1 (en) 1995-12-12 1997-06-13 Albert Joseph Marcel Bissonnette Method and device for securing computers
AU1690597A (en) * 1996-01-11 1997-08-01 Mitre Corporation, The System for controlling access and distribution of digital property
US6012080A (en) 1996-03-27 2000-01-04 Lucent Technologies Inc. Method and apparatus for providing enhanced pay per view in a video server
US5815665A (en) * 1996-04-03 1998-09-29 Microsoft Corporation System and method for providing trusted brokering services over a distributed network
US5809145A (en) * 1996-06-28 1998-09-15 Paradata Systems Inc. System for distributing digital information
US5903732A (en) * 1996-07-03 1999-05-11 Hewlett-Packard Company Trusted gateway agent for web server programs
US5867646A (en) * 1996-07-12 1999-02-02 Microsoft Corporation Providing secure access for multiple processes having separate directories
US5819087A (en) * 1996-07-19 1998-10-06 Compaq Computer Corporation Flash ROM sharing between processor and microcontroller during booting and handling warm-booting events
US5841869A (en) * 1996-08-23 1998-11-24 Cheyenne Property Trust Method and apparatus for trusted processing
US5692124A (en) * 1996-08-30 1997-11-25 Itt Industries, Inc. Support of limited write downs through trustworthy predictions in multilevel security of computer network communications
US5781703A (en) 1996-09-06 1998-07-14 Candle Distributed Solutions, Inc. Intelligent remote agent for computer performance monitoring
US5889989A (en) * 1996-09-16 1999-03-30 The Research Foundation Of State University Of New York Load sharing controller for optimizing monetary cost
US5844986A (en) * 1996-09-30 1998-12-01 Intel Corporation Secure BIOS
US6006332A (en) * 1996-10-21 1999-12-21 Case Western Reserve University Rights management system for digital media
US6023765A (en) * 1996-12-06 2000-02-08 The United States Of America As Represented By The Secretary Of Commerce Implementation of role-based access control in multi-level secure systems
US6367012B1 (en) 1996-12-06 2002-04-02 Microsoft Corporation Embedding certifications in executable files for network transmission
US5845068A (en) * 1996-12-18 1998-12-01 Sun Microsystems, Inc. Multilevel security port methods, apparatuses, and computer program products
GB9626241D0 (en) 1996-12-18 1997-02-05 Ncr Int Inc Secure data processing method and system
US6292900B1 (en) * 1996-12-18 2001-09-18 Sun Microsystems, Inc. Multilevel security attribute passing methods, apparatuses, and computer program products in a stream
DE69734968T2 (de) * 1996-12-20 2006-07-27 International Business Machines Corp. Vermittlungssystem mit verteilten Elementen zur Verbindung mit Leitungsanpassern und mit Mehrfachübertragungsmöglichkeit
WO1998032073A1 (en) * 1997-01-17 1998-07-23 International Business Machines Corporation Protecting resources in a distributed computer system
US5922074A (en) * 1997-02-28 1999-07-13 Xcert Software, Inc. Method of and apparatus for providing secure distributed directory services and public key infrastructure
US5987608A (en) * 1997-05-13 1999-11-16 Netscape Communications Corporation Java security mechanism
US6275848B1 (en) * 1997-05-21 2001-08-14 International Business Machines Corp. Method and apparatus for automated referencing of electronic information
US6513156B2 (en) 1997-06-30 2003-01-28 Sun Microsystems, Inc. Interpreting functions utilizing a hybrid of virtual and native machine instructions
US6272631B1 (en) * 1997-06-30 2001-08-07 Microsoft Corporation Protected storage of core data secrets
US6058426A (en) 1997-07-14 2000-05-02 International Business Machines Corporation System and method for automatically managing computing resources in a distributed computing environment
EP0893751A1 (en) 1997-07-18 1999-01-27 Irdeto B.V. Integrated circuit and method for secure data processing by means of this integrated circuit
DE69724946T2 (de) 1997-07-31 2004-08-12 Siemens Ag Programmvermietungssystem und Verfahren zur Vermietung von Programmen
US6185678B1 (en) * 1997-10-02 2001-02-06 Trustees Of The University Of Pennsylvania Secure and reliable bootstrap architecture
US6081830A (en) * 1997-10-09 2000-06-27 Gateway 2000, Inc. Automatic linking to program-specific computer chat rooms
US6081894A (en) 1997-10-22 2000-06-27 Rvt Technologies, Inc. Method and apparatus for isolating an encrypted computer system upon detection of viruses and similar data
EP0926605A1 (en) 1997-11-19 1999-06-30 Hewlett-Packard Company Browser system
EP1044420A1 (en) 1997-11-28 2000-10-18 International Business Machines Corporation Processing extended transactions in a client-server system
GB2336918A (en) 1998-01-22 1999-11-03 Yelcom Limited Apparatus and method for allowing connection to a network
US6078948A (en) * 1998-02-03 2000-06-20 Syracuse University Platform-independent collaboration backbone and framework for forming virtual communities having virtual rooms with collaborative sessions
US6360282B1 (en) * 1998-03-25 2002-03-19 Network Appliance, Inc. Protected control of devices by user applications in multiprogramming environments
US6067559A (en) * 1998-04-23 2000-05-23 Microsoft Corporation Server architecture for segregation of dynamic content generation applications into separate process spaces
US6408391B1 (en) 1998-05-06 2002-06-18 Prc Inc. Dynamic system defense for information warfare
US6505300B2 (en) * 1998-06-12 2003-01-07 Microsoft Corporation Method and system for secure running of untrusted content
US6289462B1 (en) * 1998-09-28 2001-09-11 Argus Systems Group, Inc. Trusted compartmentalized computer operating system
US6591229B1 (en) 1998-10-09 2003-07-08 Schlumberger Industries, Sa Metrology device with programmable smart card
US6327652B1 (en) * 1998-10-26 2001-12-04 Microsoft Corporation Loading and identifying a digital rights management operating system
US6330670B1 (en) * 1998-10-26 2001-12-11 Microsoft Corporation Digital rights management operating system
US7194092B1 (en) * 1998-10-26 2007-03-20 Microsoft Corporation Key-based secure storage
US6393556B1 (en) * 1998-10-30 2002-05-21 Intel Corporation Apparatus and method to change processor privilege without pipeline flush
US6138239A (en) * 1998-11-13 2000-10-24 N★Able Technologies, Inc. Method and system for authenticating and utilizing secure resources in a computer system
US6988250B1 (en) * 1999-02-15 2006-01-17 Hewlett-Packard Development Company, L.P. Trusted computing platform using a trusted device assembly
EP1030237A1 (en) 1999-02-15 2000-08-23 Hewlett-Packard Company Trusted hardware device in a computer
US20030191957A1 (en) * 1999-02-19 2003-10-09 Ari Hypponen Distributed computer virus detection and scanning
US20020012432A1 (en) * 1999-03-27 2002-01-31 Microsoft Corporation Secure video card in computing device having digital rights management (DRM) system
US6775779B1 (en) 1999-04-06 2004-08-10 Microsoft Corporation Hierarchical trusted code for content protection in computers
US7716109B1 (en) 1999-04-29 2010-05-11 Citibank, N.A. System and method for web trading
EP1050803B1 (en) 1999-05-03 2007-01-17 STMicroelectronics S.A. Guarded computer instruction execution
US6618769B1 (en) 1999-05-27 2003-09-09 Sun Microsystems, Inc. Module-by-module verification
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
EP1055990A1 (en) * 1999-05-28 2000-11-29 Hewlett-Packard Company Event logging in a computing platform
US6609248B1 (en) 1999-06-30 2003-08-19 Microsoft Corporation Cross module representation of heterogeneous programs
US6948069B1 (en) * 1999-07-02 2005-09-20 Time Certain, Llc Method and system for determining and maintaining trust in digital image files with certifiable time
US6892307B1 (en) * 1999-08-05 2005-05-10 Sun Microsystems, Inc. Single sign-on framework with trust-level mapping to authentication requirements
EP1076279A1 (en) 1999-08-13 2001-02-14 Hewlett-Packard Company Computer platforms and their methods of operation
US6393412B1 (en) 1999-09-23 2002-05-21 Peter Deep Method for allowing users to purchase professional services in a private chat room through a service brokerage via the internet
US7213005B2 (en) 1999-12-09 2007-05-01 International Business Machines Corporation Digital content distribution using web broadcasting services
US6757824B1 (en) * 1999-12-10 2004-06-29 Microsoft Corporation Client-side boot domains and boot rules
US6701440B1 (en) * 2000-01-06 2004-03-02 Networks Associates Technology, Inc. Method and system for protecting a computer using a remote e-mail scanning device
US20010047473A1 (en) * 2000-02-03 2001-11-29 Realtime Data, Llc Systems and methods for computer initialization
AU2001243365A1 (en) 2000-03-02 2001-09-12 Alarity Corporation System and method for process protection
GB2361153A (en) 2000-04-04 2001-10-10 Global Knowledge Network Ltd User security, privacy and anonymity on the Internet
US6622018B1 (en) * 2000-04-24 2003-09-16 3Com Corporation Portable device control console with wireless connection
US20040073617A1 (en) 2000-06-19 2004-04-15 Milliken Walter Clark Hash-based systems and methods for detecting and preventing transmission of unwanted e-mail
US7669238B2 (en) 2000-06-21 2010-02-23 Microsoft Corporation Evidence-based application security
US6681304B1 (en) 2000-06-30 2004-01-20 Intel Corporation Method and device for providing hidden storage in non-volatile memory
GB0020441D0 (en) 2000-08-18 2000-10-04 Hewlett Packard Co Performance of a service on a computing platform
US6931545B1 (en) 2000-08-28 2005-08-16 Contentguard Holdings, Inc. Systems and methods for integrity certification and verification of content consumption environments
US6757830B1 (en) 2000-10-03 2004-06-29 Networks Associates Technology, Inc. Detecting unwanted properties in received email messages
GB2372595A (en) * 2001-02-23 2002-08-28 Hewlett Packard Co Method of and apparatus for ascertaining the status of a data processing environment.
US7076804B2 (en) 2001-05-11 2006-07-11 International Business Machines Corporation Automated program resource identification and association
US20020184520A1 (en) 2001-05-30 2002-12-05 Bush William R. Method and apparatus for a secure virtual machine
US6965816B2 (en) * 2001-10-01 2005-11-15 Kline & Walker, Llc PFN/TRAC system FAA upgrades for accountable remote and robotics control to stop the unauthorized use of aircraft and to improve equipment management and public safety in transportation
US7058807B2 (en) * 2002-04-15 2006-06-06 Intel Corporation Validation of inclusion of a platform within a data center
US20060080215A1 (en) 2004-04-01 2006-04-13 Wave Rules, Llc. Method and system for electronic trading including transactional history

Also Published As

Publication number Publication date
US20020023212A1 (en) 2002-02-21
EP1182557A3 (en) 2009-12-02
US7877799B2 (en) 2011-01-25
EP1182557A2 (en) 2002-02-27
JP2002092221A (ja) 2002-03-29
GB0020441D0 (en) 2000-10-04

Similar Documents

Publication Publication Date Title
JP4818542B2 (ja) コンピューティングプラットフォームにおけるサービスの実行
US20050076209A1 (en) Method of controlling the processing of data
EP1280042A2 (en) Privacy of data on a computer platform
US7457951B1 (en) Data integrity monitoring in trusted computing entity
US7194623B1 (en) Data event logging in computing platform
JP5455318B2 (ja) 動的信頼管理
JP4278327B2 (ja) コンピュータ・プラットフォームおよびその運用方法
JP4219561B2 (ja) 信頼できる計算プラットフォームのためのスマートカード・ユーザインターフェイス
CN101523401B (zh) 用户秘密在计算平台上的安全使用
JP3689431B2 (ja) 暗号化キーの安全処理のための方法及び装置
EP1030237A1 (en) Trusted hardware device in a computer
US20050060561A1 (en) Protection of data
US20050060568A1 (en) Controlling access to data
CN103038745A (zh) 扩展完整性测量
JP2002536757A (ja) 信用コンピューティング・プラットフォーム
GB2415521A (en) Creating a trusted environment in a mobile computing platform
US20110040961A1 (en) Binding data to a computing platform through use of a cryptographic module
JP4055393B2 (ja) データ処理装置およびその方法とプログラム
KR101504647B1 (ko) 가상 머신 활성화를 갖는 휴대용 대량 저장장치
WO2024036832A1 (zh) 基于tpm的智能密码钥匙密码应用接口的实现方法
Brandl et al. Technology, Implementation and Application of the Trusted Computing Group Standard (TCG)
GB2412822A (en) Privacy preserving interaction between computing entities
Computing 3rd European Trusted Infrastructure Summer School (ETISS 2008)

Legal Events

Date Code Title Description
RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20030116

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20030121

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20071102

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071113

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20071220

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080804

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080804

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20091120

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20091120

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101201

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110118

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110118

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110513

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110628

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

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

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

Free format text: PAYMENT UNTIL: 20140909

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4818542

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term