JP2020150318A - 情報処理装置、情報処理方法及びプログラム - Google Patents

情報処理装置、情報処理方法及びプログラム Download PDF

Info

Publication number
JP2020150318A
JP2020150318A JP2019044006A JP2019044006A JP2020150318A JP 2020150318 A JP2020150318 A JP 2020150318A JP 2019044006 A JP2019044006 A JP 2019044006A JP 2019044006 A JP2019044006 A JP 2019044006A JP 2020150318 A JP2020150318 A JP 2020150318A
Authority
JP
Japan
Prior art keywords
unit
history
instruction
execution
recording
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.)
Granted
Application number
JP2019044006A
Other languages
English (en)
Other versions
JP6951375B2 (ja
Inventor
遵 金井
Jun Kanai
遵 金井
真也 内匠
Shinya Takumi
真也 内匠
嘉一 花谷
Kiichi Hanatani
嘉一 花谷
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.)
Toshiba Corp
Original Assignee
Toshiba Corp
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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2019044006A priority Critical patent/JP6951375B2/ja
Priority to US16/554,700 priority patent/US11531769B2/en
Publication of JP2020150318A publication Critical patent/JP2020150318A/ja
Application granted granted Critical
Publication of JP6951375B2 publication Critical patent/JP6951375B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/74Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information operating in dual or compartmented mode, i.e. at least one secure mode
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3242Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/16Obfuscation or hiding, e.g. involving white box

Landscapes

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

Abstract

【課題】外部の機能を利用する命令の呼び出しが正しく実行されたか否かを検証する。【解決手段】実施形態の情報処理装置は、第1処理部と第2処理部とを備える。セキュアアプリである第1処理部は、発行部と第1通信部と履歴検証部とを備える。発行部は、前記第2処理部が有する機能を呼び出す命令を発行し、前記命令と検証ルールとを関連付ける。第1通信部は、前記命令を識別する命令識別情報を含む命令実行要求を前記第2処理部に送信し、前記第2処理部から、前記命令識別情報により識別される命令の実行結果を含む実行履歴を受信する。履歴検証部は、前記実行履歴の正しさを、前記検証ルールに従って検証する。【選択図】図1

Description

本発明の実施形態は情報処理装置、情報処理方法及びプログラムに関する。
近年、耐タンパ性を確保したいプログラムを単一の計算機内で安全に実行する仮想化技術や、Intel(登録商標) SGX(Software Guard Extension)、及び、ARM(登録商標) TrustZone(登録商標)などの普及が進んでいる。これらのセキュアにプログラムを実行する環境においては、脆弱性の混入を防ぐためセキュア環境で実行するプログラム(以下、セキュアプログラム)の機能を最小化することが通常である。一方でセキュアプログラムとして高度な処理を実装したいという要求もあり、その場合にはセキュアプログラムから、外部の汎用OS機能を利用することが一般的に行われる。その際にセキュアプログラムが正しく動作するためには、汎用OSが正しく動作する必要がある。
特許第4860856号公報
しかしながら、従来の技術では、外部の機能を利用する命令の呼び出しが正しく実行されたか否かを検証することが困難だった。
実施形態の情報処理装置は、第1処理部と第2処理部とを備える。セキュアアプリである第1処理部は、発行部と第1通信部と履歴検証部とを備える。発行部は、前記第2処理部が有する機能を呼び出す命令を発行し、前記命令と検証ルールとを関連付ける。第1通信部は、前記命令を識別する命令識別情報を含む命令実行要求を前記第2処理部に送信し、前記第2処理部から、前記命令識別情報により識別される命令の実行結果を含む実行履歴を受信する。履歴検証部は、前記実行履歴の正しさを、前記検証ルールに従って検証する。
第1実施形態の情報処理装置の構成の例1を示す図。 第1実施形態の情報処理装置の構成の例2を示す図。 第1実施形態の情報処理装置の機能構成の例を示す図。 第1実施形態の対応情報の例を示す図。 第1実施形態の実行履歴情報の例を示す図。 第1実施形態の検証ルール情報の例を示す図。 第1実施形態の検証方法の例を示すフローチャート。 第1実施形態の変形例1の実行履歴情報の例を示す図。 第1実施形態の変形例2の情報処理装置の機能構成の例を示す図。 第1実施形態の変形例2の鍵共有方法の例を示すフローチャート。 第1実施形態の変形例3の情報処理装置の機能構成の例を示す図。 第2実施形態の情報処理装置の構成の例を示す図。 第2実施形態の情報処理装置の機能構成の例を示す図。 第2実施形態の検証方法の例を示すフローチャート。 第2実施形態の変形例1の情報処理装置の機能構成の例を示す図。 第2実施形態の変形例2の情報処理装置の機能構成の例を示す図。 第1及び第2実施形態の情報処理装置のハードウェア構成の例を示す図。
以下に添付図面を参照して、情報処理装置の実施形態を詳細に説明する。
(第1実施形態)
はじめに、第1実施形態の情報処理装置10の構成について説明する。
[構成の例1]
図1は第1実施形態の情報処理装置10の構成の例1を示す図である。第1実施形態の情報処理装置10は、セキュアアプリケーション1、連携アプリケーション2及びOS(Operating System)部3を備える。なお、情報処理装置10では、セキュアアプリケーション1、連携アプリケーション2及びOS部3以外のソフトウェアが動作してもよい。
例えば、セキュアアプリケーション1及び連携アプリケーション2は、OS部3上で動作してもよい。また例えば、セキュアアプリケーション1は、OSなしで動作し、連携アプリケーション2は、OS部3上で動作してもよい。
セキュアアプリケーション1(第1処理部)は、仮想化技術、Intel(登録商標) SGX、及び、ARM(登録商標) TrustZone(登録商標)などにより、情報処理装置10で動作する他のアプリケーションとは分離して実行される。
連携アプリケーション2(第2処理部)は、セキュアアプリケーション1とOS部3とを連携させるアプリケーションである。連携アプリケーション2は、例えばOS部3が有する機能を、セキュアアプリケーション1で利用できるようにする。
OS部3は、Linux(登録商標)等のリッチOSが動作する。
なお、セキュアアプリケーション1、連携アプリケーション2及びOS部3は、複数の装置で実行されてもよい。
[構成の例2]
図2は第1実施形態の情報処理装置10の構成の例2を示す図である。図2の例は、連携アプリケーション2及びOSが、情報処理装置10aで動作し、セキュアアプリケーション1が情報処理装置10bで動作する場合を示す。
以下、第1実施形態の説明では、上述の図1の構成を例にして、情報処理装置10の動作について詳細に説明する。
[機能構成の例]
図3は第1実施形態の情報処理装置10の機能構成の例を示す図である。第1実施形態の情報処理装置10は、セキュアアプリケーション1、連携アプリケーション2及びOS部3を備える。
セキュアアプリケーション1は、発行部11、第1通信部12、履歴検証部13及び完全性検証部14を備える。また、セキュアアプリケーション1は、対応情報101及び検証ルール情報102を保持する。
連携アプリケーション2は、第2通信部21、ライブラリ部22、記録制御部23及び記録取得部24を備える。
OS部3は、命令実行部31、履歴記録部32、記録メモリ33及び付与部34を備える。
はじめに、セキュアアプリケーション1について説明する。
発行部11は、OS部3の機能を提供する連携アプリケーション2(ライブラリ部22)が有する機能を呼び出す命令を発行する。
具体的には、発行部11は、第1通信部12を介して、OS部3の特定機能の呼出しを依頼する。その際に、発行部11は、命令識別情報(機能指定情報)と実行履歴IDとを第1通信部12に渡す。命令識別情報は、命令(OS部3から呼び出される機能)を一意に識別する情報(例えば、命令(機能)の名称及びアドレス等)を含む。実行履歴IDは、命令の呼び出しを識別する識別情報である。実行履歴IDは、ランダムに生成されても良いし、現在の時刻情報等であってもよい。また、発行部11は、機能を呼び出す際のパラメータ(命令の引数情報)も、第1通信部12に渡しても良い。
また、発行部11は、対応情報101を生成する。
図4は第1実施形態の対応情報101の例を示す図である。第1実施形態の対応情報101には、実行履歴ID及び検証ルールIDが関連付けられて記憶される。実行履歴IDの説明は、上述の説明と同じである。検証ルールIDは、検証ルールを識別する識別情報である。例えば図4の例では、実行履歴ID=9234233の実行履歴を検証する際には、検証ルールID=1の検証ルールが使用される。
図3に戻り、第1通信部12は、連携アプリケーション2と通信する。第1通信部12は、例えば命令を識別する命令識別情報を含む命令実行要求を、第2処理部21に送信し、第2処理部21から命令の実行履歴を受信する。
具体的には、第1通信部12は、命令識別情報及び実行履歴IDを含む命令実行要求を第2通信部21に送信する。なお、第1通信部12は、命令にパラメータが存在する場合には、当該パラメータを更に含む命令実行要求を第2通信部21に送信する。また、第1通信部12は、第2通信部21から実行履歴を受信する。
図5は第1実施形態の実行履歴情報の例を示す図である。実行履歴情報は、記録メモリ33に記憶されている。実行履歴情報は、命令識別情報により識別される命令の実行結果を含む1以上の実行履歴を含む。それぞれの実行履歴は、例えば実行履歴ID、システムコール列及びシグネチャを含む。実行履歴IDは、実行履歴を識別する履歴識別情報である。システムコール列は、OS部3で実行された1以上のシステムコールを含む。各システムコール(命令)は、例えば命令の名称、命令の番号、及び、命令のアドレスにより識別される。
シグネチャは、実行履歴ID及びシステムコール列に対して、OS部3の秘密鍵により付与された符号(公開鍵署名)である。なお、シグネチャの代わりに共通鍵によるCMAC(Cipher−based Message Authentication Code)、及び、HMAC(Hash−based Message Authentication Code)等のメッセージ認証コード(MAC)を利用しても良い。
図3に戻り、第1通信部12は、第2通信部21から受信した実行履歴と、命令発行部11から受信した実行履歴IDを履歴検証部13に渡す。また、第1通信部は、命令(ライブラリ)の実行結果を発行部11に返す。
履歴検証部13は、実行履歴の正しさを、検証ルール情報102に含まれる検証ルールに従って検証する。
図6は第1実施形態の検証ルール情報102の例を示す図である。検証ルール情報102は、検証ルールID及び検証ルールを含む。検証ルールIDは、検証ルールを識別する識別情報である。検証ルールは、実行履歴の検証に使用されるルールである。検証ルールには、例えば実行されるシステムコールの条件が含まれる。
図3に戻り、履歴検証部13は、第1通信部12から渡された実行履歴が改ざんされているか否かを検証するために、完全性検証部14を呼び出す。実行履歴が改ざんされていない場合には、履歴検証部13は、実行履歴に含まれるシステムコール列が検証ルールに合致するか否かを検証するために、上述の対応情報(図4参照)から、実行履歴IDに対応する検証ルールIDを取得する。そして、履歴検証部13は、検証ルール情報102(図6参照)から、検証ルールIDに対応する検証ルールを取得し、実行履歴に含まれるシステムコール列が、検証ルールに合致するか否かを判定する。合致した場合には、履歴検証部13は、OS部3の命令(機能)が正しく実行されたと判定する。一方で検証ルールに合致しない場合や実行履歴の改ざんが検出された場合には、履歴検証部13は、OS部3の命令(機能)が正しく実行されていないと判定する。
完全性検証部14は、実行履歴の完全性を検証する。具体的には、完全性検証部14は、改ざんを検出する鍵を使用して、実行履歴から生成された符号を検証する。すなわち、完全性検証部14は、実行履歴が公開鍵方式で署名されている場合には、OS部3が持つ秘密鍵に対応する公開鍵で改ざん有無を検証する。また、完全性検証部14は、MACが付与されている場合には、共通鍵でMACの検証を行い、改ざん有無を検証する。さらに、完全性検証部14は、実行履歴に含まれる実行履歴IDと、発行部11が生成した実行履歴IDとが一致するか判定し、一致しない場合にも改ざんが発生したものとみなす。
ここで図4〜図6を用いて、実行履歴を検証する方法を具体的に説明する。図4の実行履歴ID=9234233について、発行部11により発行された命令に対応するOS部3の命令(機能)の実行結果を検証する際には、まず完全性検証部14が、実行履歴の改ざん有無を検証する。次に、履歴検証部13が、図4の対応情報から実行履歴ID=9234233に対応する検証ルールID=1を取得する。次に、履歴検証部13は、図6の検証ルール情報から、検証ルールID=1の検証ルールを取得する。
検証ルールID=1の検証ルールは、「open,write,closeのみが、この順でシステムコール列に実行に含まれる」である。図5の実行履歴ID=9234233の実行履歴に含まれるシステムコール列は「open(“HOGE”)/ret=4、write(4, “FOO”, 3)/ret=3、close(4)」である。つまり検証ルールを満たしているため、履歴検証部13は、OS部3の命令(機能)が正しく実行されていると判定する。
同様に、実行履歴ID=2309487の場合は、検証に用いられる検証ルールは、「writeのみがシステムコール列に含まれ、かつwriteの第一引数が1であり、かつ第二引数が”BAR”である」である。図5の実行履歴ID=2309487の実行履歴に含まれるシステムコールは「write(1,“BAR”,3)/ret=3」である。つまり検証ルールを満たしているため、履歴検証部13は、OS部3の命令(機能)が正しく実行されていると判定する。
一方で、実行履歴ID=2374358の場合では、検証に用いられる検証ルールは、「writeのみがシステムコール列に含まれ、かつwriteの第一引数が2であり、かつ第二引数が”ERROR”である」である。図5の実行履歴ID=2374358の実行履歴に含まれるシステムコール列は「write(2,“SUCCESS”,7)/ret=3」であり、「第二引数が“ERROR”である」の部分に合致しない。そのため、履歴検証部13は、OS部3の命令(機能)が正しく実行されていないと判定する(“ERROR”が“SUCCESS”に偽造されている)。
次に、連携アプリケーション2について説明する。
第2通信部21は、セキュアアプリケーション1と通信する。具体的には、第2通信部21は、第1通信部12と通信するための機能を有する。第2通信部21は、第1通信部12から、上述の命令実行要求を受信すると、命令実行要求に含まれる実行履歴IDを記録制御部23に渡す。次に、第2通信部21は、命令実行要求に含まれる命令識別情報に対応するライブラリ部22を呼び出し、命令実行要求にパラメータが含まれている場合には、パラメータをライブラリ部22に渡す。
第2通信部21は、ライブラリ部22による命令の実行が完了した際には、ライブラリ部22から実行結果を受け取るとともに、記録制御部23に記録終了を指示し、記録取得部24から実行履歴を取得する。そして、第2通信部21は、実行履歴と実行結果とを第1通信部12に送信する。
ライブラリ部22は、セキュアアプリケーション1からの命令実行要求に従って、要求された命令を、1以上のOS機能呼び出し命令(例えばシステムコール)やユーザモードで実行される命令に分解して実行する。具体的には、ライブラリ部22は、第2通信部21から呼び出され、ライブラリ命令を1以上のシステムコールやユーザモード命令に分解し、OS機能呼び出し命令の場合には命令実行部31を呼び出す(システムコール呼び出し)機能を有する。ここでのライブラリ部22の処理は、複数の命令実行部31を呼び出す処理であっても良い。例えば、ライブラリ命令として、ファイルに特定文字列を出力するという命令を用意した場合には、ライブラリ部22は、当該命令を、ファイルオープン、ファイルへの書き込み、及び、ファイルクローズのシステムコールに分解して、命令実行部31を呼び出す。なお、セキュアアプリケーション1が実行を要求する機能と、OS部3が有する機能が一対一で対応する場合には、ライブラリ部22は必須ではない。
記録制御部23は、第2通信部21から実行履歴IDを受け付けると、履歴記録開始要求を履歴記録部32に送信して、履歴情報の記録を開始する。具体的には、記録制御部23は、1以上のシステムコールの実行が開始されてから、終了するまでの実行履歴を記録するように履歴記録部32を制御する。この際にシステムコールだけでなく、ユーザモード命令の実行についても記録を行っても良い。記録制御部23は、記録終了時には履歴記録終了要求を履歴記録部32に送信する。
記録取得部24は、履歴記録部32から、上述の実行履歴を取得する。具体的には、記録取得部24は、実行履歴IDを含む履歴取得要求を履歴記録部32に送信し、履歴記録部32から実行履歴IDに対応する実行履歴を受け付けると、当該実行履歴を第2通信部21に返す。
次に、OS部3について説明する。
命令実行部31は、ライブラリ部22からの要求に従って命令を実行する。具体的には、命令実行部31は、システムコールに対応する処理を実行する。その際、命令実行部31は、履歴記録部32に実行したシステムコールの履歴追記要求を送信する。
履歴記録部32は、上述の実行履歴を記録メモリ33に記録する。具体的には、履歴記録部32は、履歴記録開始要求、履歴記録終了要求、履歴追記要求及び履歴取得要求等に従って処理を行う。
履歴記録開始要求の場合には、履歴記録部32は、図5の実行履歴情報に含まれる実行履歴を記録するテーブルを生成し、実行履歴IDを当該テーブルに保存し、履歴の記録モードを記録中とする。
履歴記録終了要求の場合には、履歴記録部32は、履歴の記録モードを記録終了とする。
履歴追記要求の場合には、履歴記録部32は、履歴の記録モードが記録中の場合に、図5の実行履歴の実行履歴IDに一致するテーブルに、実行したシステムコールのシステムコール名、引数及び戻り値等を追記する。
履歴取得要求の場合には、履歴記録部32は、取得要求のあった実行履歴IDに対応する実行履歴に対して、付与部34を呼び出してシグネチャを付与したのち、実行履歴を記録取得部24に返す。
記録メモリ33は、上述の実行履歴情報を記録する記録媒体である。
付与部34は、実行履歴に符号を付与する。具体的には、付与部34は、記録メモリ33に記録された実行履歴に公開鍵署名等による符号を付与する。例えば、付与部34は、OS部3の秘密鍵を利用して、実行履歴ID及びシステムコール列に対してシグネチャを付与する。なお、付与部34は、公開鍵方式でなく共通鍵方式でMACを付与しても良い。共通鍵方式でMACを付与する場合の実施形態は、第1実施形態の変形例2で説明する。
次に第1実施形態の検証方法の例について説明する。
[検証方法の例]
図7は第1実施形態の検証方法の例を示すフローチャートである。はじめに、発行部11が、命令を発行する(ステップS1)。次に、発行部11は、実行履歴を識別する実行履歴IDを生成する(ステップS2)。発行部11は、命令識別情報と実行履歴IDとを第1通信部12に送信し、命令の引数情報がある場合には、当該引数情報も第1通信部12に送信する。また、発行部11は、実行履歴IDと検証ルールIDとを紐づけて、図4の対応情報101に登録しておく。さらに、第1通信部12が、上述の命令実行要求を第2通信部21に送信する。
続いて、履歴記録部32が、実行履歴IDと紐づけて、命令実行部31による命令(システムコール)の実行履歴の記録を開始する(ステップS3)。ライブラリ部22は、呼び出し要求のあった命令を実行するために、当該命令を1以上のシステムコールに分解する(ステップ4)。
次に、記録制御部23が、全システムコールが実行されたか否かを判定する(ステップS5)。全システムコールが実行されていない場合(ステップS5,No)、システムコールを実行する(ステップS6)。次に、履歴記録部32が、ステップS6の処理により実行されたシステムコールを実行履歴に追加する(ステップS7)。
全システムコールが実行された場合(ステップS5,Yes)、履歴記録部32が、ステップS3の処理により開始された実行履歴の記録を終了する(ステップS8)。次に、符号部34が、実行履歴に対して公開鍵方式により、上述のシグネチャ等の符号を付与する(ステップS8)。次に、記録取得部24が、ステップS8の処理により符号が付与された実行履歴を履歴記録部32から取得する(ステップS10)。第2通信部21は、実行履歴をセキュアアプリケーション1に返す。
セキュアアプリケーション1では、まず、完全性検証部14が、OS部3の公開鍵を用いて、履歴情報が改ざんされているか否かを判定する(ステップS11)。改ざんされていなかった場合(ステップS11,No)、履歴検証部13が、実行履歴に含まれる実行履歴IDと、発行部11により生成された実行履歴IDと、が一致するか否かを判定する(ステップS12)。一致する場合(ステップS12)、履歴検証部13が、当該実行履歴IDを検証するための検証ルールを使用して、システムコール列が当該検証ルールに合致するか否かを判定する(ステップS13)。
合致した場合(ステップS13,Yes)には、検証処理は正常終了する。合致しない場合(ステップS13,No)、実行履歴IDが一致しなかった場合(ステップS12,No)、及び、実行履歴に改ざんが検出された場合(ステップS11,Yes)には、検証処理は異常終了する。
以上、説明したように、第1実施形態の情報処理装置10では、セキュアアプリケーション1(第1処理部)が、発行部11と第1通信部12と履歴検証部13とを備える。発行部11は、連携アプリケーション2(第2処理部)が有する機能を呼び出す命令を発行し、当該命令と検証ルールとを関連付ける(対応情報101)。第1通信部12は、命令を識別する命令識別情報を含む命令実行要求を連携アプリケーション2に送信し、連携アプリケーション2から、命令識別情報により識別される命令の実行結果を含む実行履歴を受信する。履歴検証部13は、実行履歴の正しさを、検証ルールに従って検証する。
これにより第1実施形態の情報処理装置10によれば、外部の機能を利用する命令の呼び出しが正しく実行されたか否かを検証することができる。具体的には、例えばセキュアアプリケーション1からOS部3の機能が正しく呼び出せたか確認することができる。これにより、セキュアアプリケーション1への脆弱性混入を防止しつつ、高度な機能が実装できるようになる。
(第1実施形態の変形例1)
次に第1実施形態の変形例1について説明する。第1実施形態の変形例1の説明では、第1実施形態と同様の説明については省略する。
第1実施形態では、実行履歴への符号付与を公開鍵署名による方式で行う方法で説明した。この場合、OS部3が秘密鍵を持ち、セキュアアプリケーション1が当該秘密鍵に対応する公開鍵を持つ。このとき、OS部3の秘密鍵が攻撃者に漏洩すると、自由に実行履歴の偽造が可能となってしまう。また、セキュアアプリケーション1が持つ公開鍵が改ざんされてしまった場合にも正しい実行履歴検証が行えなくなってしまう。つまり、OS部3が持つコードやデータの機密性と完全性、セキュアアプリケーション1が持つコードやデータの完全性を担保する必要がある。
OS部3が持つコードやデータの機密性及び完全性については、脆弱性の大半がアプリケーションレイヤで発生している現状を鑑みると、適切にメモリの権限分離によりOSコードやOSデータの書換え及び盗聴防止を行うことで保護することができる。セキュアアプリケーション1が持つコードやデータの完全性については、アプリケーションにシグネチャを付与してOSレイヤーで検証する技術や、プロセッサレベルでアプリケーションの改ざんを検知するIntel(登録商標) SGX等の技術を利用することで保護が可能となる。一方で、符号付与において共通鍵暗号ベースのMACを利用する場合には、ホワイトボックス暗号と呼ばれるアプリケーションのコードやデータが漏洩しても鍵が漏洩しない暗号技術を用いる必要がある。
なお、履歴記録に対する攻撃方法として、不正なタイミングで履歴記録開始要求又は履歴記録終了要求を出したり、履歴記録終了要求後に再度履歴記録開始要求を送信したりする攻撃方法がある。例えば、履歴記録終了後にシステムコールを発行し、さらに再度履歴記録開始要求を投げると当該システムコールは実行履歴に記録されない。そのため、履歴上正しく動作しているように見えても正しく動作していないことも考えうる。
この検出のために、変形例1の履歴記録部32は、記録開始時刻及び記録終了時刻を履歴情報に更に記録する。
図8は第1実施形態の変形例1の実行履歴情報の例を示す図である。変形例1の実行履歴情報に含まれる実行履歴は、実行履歴ID、システムコール列、記録開始時刻、記録終了時刻及びシグネチャを含む。変形例1の履歴記録部32は、履歴記録開始要求があった際に、履歴記録開始時刻を記録し、履歴記録終了要求があった際には履歴記録終了時刻を記録する。この場合、同一実行履歴IDに対しては、履歴記録開始要求、履歴記録終了要求の順で、履歴記録開始要求及び履歴記録終了要求をそれぞれ一度のみ受け付ける必要がある。さらに、変形例1の付与部34は、記録開始時刻及び記録終了時刻も対象にして、シグネチャを付与する。
また、セキュアアプリケーション1の履歴検証部13は、記録開始時刻及び記録終了時刻が、想定通りの時刻であるか否かを検証する。例えば、履歴検証部13は、記録開始時刻と前記命令が発行された時刻との差が第1閾値より小さく、かつ、記録終了時刻と現在時刻との差が第2閾値より小さい場合、実行履歴が正しいと検証する。
なお、第1通信部12が、命令実行要求の送信時刻と、履歴情報の受信時刻とを記録してもよい。この場合、履歴検証部13は、例えば記録開始時刻と送信時刻との差、記録終了時刻と受信時刻との差を判定する。この差が閾値よりも大きい場合には、記録開始前、又は記録開始終了後に想定外の処理が行われた可能性がある。
また、記録開始時刻(記録終了時刻)を示す情報として、プロセッサのサイクルカウンタなど、攻撃者が巻き戻すことができない情報が用いられても良い。
(第1実施形態の変形例2)
次に第1実施形態の変形例2について説明する。第1実施形態の変形例2の説明では、第1実施形態と同様の説明については省略する。変形例2では、共有鍵を使用してシグネチャを付与する場合について説明する。
図9は第1実施形態の変形例2の情報処理装置10−2の機能構成の例を示す図である。変形例2の情報処理装置10−2は、セキュアアプリケーション1、連携アプリケーション2及びOS部3を備える。
セキュアアプリケーション1は、発行部11、第1通信部12、履歴検証部13、完全性検証部14及び第2交換部15を備える。また、セキュアアプリケーション1は、対応情報101及び検証ルール情報102を保持する。
連携アプリケーション2は、第2通信部21、ライブラリ部22、記録制御部23及び記録取得部24を備える。
OS部3は、命令実行部31、履歴記録部32、記録メモリ33、付与部34及び第1交換部35を備える。
すなわち、変形例2では、セキュアアプリケーション1に第2交換部15が追加され、OS部3に第1交換部35が追加されている。
第1実施形態の付与部34は、公開鍵方式を利用する場合、OS部3の機能の呼出し時に毎回公開鍵方式によりシグネチャを付与することになる。一般的に公開鍵方式は共通鍵方式に比べ、処理負荷が大きい。このため、毎回シグネチャを付与すると性能オーバヘッドが大きくなる。
このため変形例2では、セキュアアプリケーション1の起動時等に、OS部3の第1交換部35と、セキュアアプリケーション1の第2交換部15との間で公開鍵方式によって認証を行った後、共通鍵を交換する。付与部34は、共通鍵を使用して実行履歴に符号を付与する。そして、完全性検証部14は、共通鍵を使用して符号を検証する。
共通鍵方式では共通鍵が攻撃者に漏洩してしまうと改ざん耐性がなくなるため、鍵交換時にはOS部3及びセキュアアプリケーション1以外の第三者には共通鍵が見えないようにする必要がある。このため、第1交換部35及び第2交換部15は、認証を行う機能と、共通鍵を秘匿しつつ鍵交換を行う機能とを有する。
[鍵共有方法の例]
図10は第1実施形態の変形例2の鍵共有方法の例を示すフローチャートである。はじめに、公開鍵認証処理が実施される(ステップS1)。具体的には、セキュアアプリケーション1の第2交換部15が、ランダムな文字列等を生成し、当該文字列を、第1通信部12及び第2通信部21を介して、OS部3の第1交換部35に渡す。次に、第1交換部35は、秘密鍵を用いて文字列に署名を施し、署名された文字列をセキュアアプリケーション1の第2交換部15に渡す。
次に、第2交換部15は、ステップS1の公開鍵認証で施された署名を検証することにより、認証が成功したか否かを判定する(ステップS22)。認証が成功した場合(ステップS22,Yes)、第2交換部15は、共通鍵をランダムに生成する(ステップS23)。
次に、鍵共有処理が実施される(ステップS24)。具体的には、第2交換部15が、OS部3の公開鍵で当該共有鍵を暗号化し、暗号化された共有鍵を、第1通信部12及び第2通信部21を介して、OS部3の第1交換部35に渡す。
次に、第1交換部35が、共有鍵の共有に成功したか否かを判定する(ステップS25)。具体的には、第1交換部35は、暗号化された共通鍵を、秘密鍵を使用して復号できた場合、共有鍵の共有に成功したと判定する。
OS部3の秘密鍵がないと暗号化された共通鍵は復号できないため、OS部3が正しく保護されていれば安全に鍵を共有することができる。正しく共有できた場合には、鍵交換は正常終了となる。一方、通信先の認証に失敗した場合(ステップS22,No)、又は、共通鍵の共有に失敗した場合(ステップS25,No)は、異常終了となる。
上述の図10のフローチャートは、あくまでも認証/鍵交換の一例であり、他にも認証、鍵交換のアルゴリズムは様々な方式があり、それらの方式を利用することもできる。
(第1実施形態の変形例3)
次に第1実施形態の変形例3について説明する。第1実施形態の変形例3の説明では、第1実施形態と同様の説明については省略する。変形例3では、セキュアアプリケーション1から直接、OS部3の記録メモリ33にアクセス可能な場合について説明する。
[機能構成の例]
図11は第1実施形態の変形例3の情報処理装置10−3の機能構成の例を示す図である。変形例3の情報処理装置10−3は、セキュアアプリケーション1、連携アプリケーション2及びOS部3を備える。
セキュアアプリケーション1は、発行部11、第1通信部12、履歴検証部13、完全性検証部14及び記録取得部16を備える。また、セキュアアプリケーション1は、対応情報101及び検証ルール情報102を保持する。
連携アプリケーション2は、第2通信部21、ライブラリ部22及び記録制御部23を備える。
OS部3は、命令実行部31、履歴記録部32、記録メモリ33及び付与部34を備える。
すなわち、変形例3では、連携アプリケーション2から記録取得部24が削除され、セキュアアプリケーション1に記録取得部16が追加されている。
第1実施形態では、セキュアアプリケーション1が、実行履歴情報が格納された記録メモリ33に直接アクセスできないことを想定していた。セキュアアプリケーション1が記録メモリ33に直接アクセスできる場合には、図11のような変形例3が考えられる。第1実施形態の構成例では、第2通信部21が第1通信部12に実行履歴を送信していたが、変形例3では、第1通信部12が記録取得部16を呼び出す。そして、記録取得部16が、検証対象の実行履歴を、実行履歴IDをキーとして記録メモリ33から取得する。変形例3では、連携アプリケーション2内での実行履歴の改ざん可能性がなくなるため、OS部3の改ざん可能性が排除できる場合には、付与部34及び完全性検証部14は必ずしも必要としない。
(第2実施形態)
次に第1実施形態の変形例1について説明する。第1実施形態の変形例1の説明では、第1実施形態と同様の説明については省略する。第1実施形態では、OS部3に実行履歴情報を記録することを想定していた。これは、OS部3に新たな機能を追加することを前提としている。既存のOS部3を変更したくない場合には第1実施形態は適さない。第2実施形態では、OS部3に対して最小限の変更で、第1実施形態と同様の効果を得るための構成について説明する。
[構成の例]
図12は第2実施形態の情報処理装置10−4の構成の例を示す図である。第2実施形態の情報処理装置10−4は、セキュアアプリケーション1、連携アプリケーション2、OS部3及び履歴記録アプリケーション4を備える。すなわち、第2実施形態では、履歴記録アプリケーション4が追加されている。履歴記録アプリケーション4の機能構成の詳細は、図13により説明する。
[機能構成の例]
図13は第2実施形態の情報処理装置10−4の機能構成の例を示す図である。第2実施形態の情報処理装置10−4は、セキュアアプリケーション1、連携アプリケーション2、OS部3及び履歴記録アプリケーション4を備える。
セキュアアプリケーション1は、発行部11、第1通信部12、履歴検証部13及び完全性検証部14を備える。また、セキュアアプリケーション1は、対応情報101及び検証ルール情報102を保持する。
連携アプリケーション2は、第2通信部21、ライブラリ部22、記録制御部23及び記録取得部24を備える。
OS部3は、命令実行部31、付与部34及びアクセス保護部36を備える。
履歴記録アプリケーション4(第3処理部)は、命令捕捉部41、履歴記録部42及び記録メモリ43を備える。
すなわち、第2実施形態では、第1実施形態ではOS部3に存在した履歴記録部32と記録メモリ33とが、履歴記録アプリケーション4の履歴記録部42及び記録メモリ43に代わっている。また、第2実施形態では、履歴記録アプリケーションに命令捕捉部41が追加され、OS部3にアクセス保護部36が追加されている。
命令捕捉部41は、OS部3による命令の実行を捕捉する。命令捕捉部41は、例えばOS部3のどの機能が、どのパラメータを指定して呼び出されたかを示す情報を取得する。
履歴記録部42は、捕捉された命令を実行履歴として、記録メモリ43に記録する。さらに、履歴記録部42は、OS部3の付与部34を呼び出して、公開鍵によるシグネチャ等の符号を実行履歴に付与する。
アクセス保護部36は、履歴記録アプリケーション4が正しく動作するように、履歴記録アプリケーション4の実行を保護する。アクセス保護部36は、例えば命令補足部41、履歴記録部42及び付与部34の少なくとも1つに対するアクセス保護を行う。
具体的なアクセス保護の方法としては、例えば、履歴記録アプリケーション4のデータ及びコードが格納されたメモリに対して、他のアプリからの書き換えをMMU(Memory Management Unit)等のメモリ保護機能を利用して禁止する方法がある。また例えば、履歴記録アプリケーション4のデータ及びコードが格納されたメモリを書き換えるシステムコールを検出して禁止する方法がある。また例えば、プロセス終了等の信号を検出して信号を破棄する方法などがある。また例えば、上記の方法を2つ以上組み合わせてアクセス保護をしてもよい。アクセス保護部36は、メモリ書き込み等の動作阻害を検出して禁止することが好ましいが、動作阻害の検出のみを行い、通知のみを行ってもよい。
[検証方法の例]
図14は第2実施形態の検証方法の例を示すフローチャートである。第2実施形態の検証方法は、第1実施形態の検証方法にステップS6−2が追加されている。ステップS6−2では、命令捕捉部が、OS部3による命令(システムコール)の実行を捕捉する。
以上、説明したように、第2実施形態によれば、OS部3に対する最小限の変更で、第1実施形態と同様の効果を得ることができる。
(第2実施形態の変形例1)
次に第2実施形態の変形例1について説明する。第2実施形態の変形例1の説明では、第2実施形態と同様の説明については省略する。第2実施形態では、秘密鍵を保持して符号を付与する付与部34がOS部3の内部に存在した。変形例1では、図15に示すハードウェア51によって付与部51が実現される。
ハードウェア51は、例えばプロセッサ、TPM(Trusted Platform Module)、及び、HSM(Hardware Security Module)等の独立したハードウェアである。この場合、OS部3に秘密鍵を置く必要がなくなるため、よりセキュアとなる。TPMのように公開鍵暗号の計算能力が限られる場合には、さらに第1実施形態の変形例2のように公開鍵による認証と共通鍵によるMACの付与を組み合わせても良い。
なお、独立したハードウェア51としてではなく、付与部51を仮想化技術等によりリOS部3上のアプリケーションと分離して実行する構成でも良い。アプリケーションの実行内容を保証する場合、保護対象アプリケーションへの設計上、実装上の脆弱性混入を防止し、さらに外部からのメモリ書き換え、不正終了等に対してアプリを正しく保護する必要がある。このため全アプリケーションを適切に保護することは困難である。しかし、本実施形態では保護対象が単機能の履歴記録アプリケーション3のみになるため、脆弱性の混入防止や外部からのアタックに対する保護が現実的である。
第2実施形態の変形例1によれば、履歴記録アプリケーション4の動作内容を保証することで、引き続き、他のアプリケーションの実行内容の保証自体は困難なものの、他のアプリケーションが正しく動作したか否かの検証を堅牢に行うことが可能となる。
(第2実施形態の変形例2)
次に第2実施形態の変形例2について説明する。第2実施形態の変形例2の説明では、第2実施形態と同様の説明については省略する。変形例2では、符号の付与を行う機能が、履歴記録アプリケーション4にある場合について説明する。
[機能構成の例]
図16は第2実施形態の変形例2の情報処理装置10−6の機能構成の例を示す図である。変形例2の情報処理装置10−6は、セキュアアプリケーション1、連携アプリケーション2、OS部3及び履歴記録アプリケーション4を備える。
セキュアアプリケーション1は、発行部11、第1通信部12、履歴検証部13及び完全性検証部14を備える。また、セキュアアプリケーション1は、対応情報101及び検証ルール情報102を保持する。
連携アプリケーション2は、第2通信部21、ライブラリ部22、記録制御部23及び記録取得部24を備える。
OS部3は、命令実行部31及びアクセス保護部36を備える。
履歴記録アプリケーション4(第3処理部)は、命令捕捉部41、履歴記録部42、記録メモリ43及び保護機能付き付与部44を備える。
第2実施形態では、付与部34がOS部3の内部にあることを前提としていた。また、第2実施形態の変形例1では、付与部34が独立したハードウェア51、または、仮想化環境によって、アプリケーションとは独立して機能することを前提としていた。
変形例2では、履歴記録アプリケーション4内に、保護機能付き付与部44が置かれるため、コード及びデータの機密性担保がOS部3内等に存在する場合に比べて困難となる。このために符号付与機能として、機密性・完全性を担保するための保護機能を設ける。具体的には、符号付与方式として、ホワイトボックス暗号を用いてもよいし、難読化技術を用いてもよい。
第2実施形態の変形例2によれば、第2実施形態と同様の効果を得ることができる。
最後に、第1及び第2実施形態の情報処理装置10〜10−6のハードウェア構成の例について説明する。
[ハードウェア構成の例]
図17は第1及び第2実施形態の情報処理装置10〜10−6のハードウェア構成の例を示す図である。情報処理装置10−2〜10−6のハードウェア構成は、情報処理装置10と同じなので、情報処理装置10について説明する。
情報処理装置10は、制御装置301、主記憶装置302、補助記憶装置303、表示装置304、入力装置305及び通信装置306を備える。制御装置301、主記憶装置302、補助記憶装置303、表示装置304、入力装置305及び通信装置306は、バス310を介して接続されている。
制御装置301は、補助記憶装置303から主記憶装置302に読み出されたプログラムを実行する。主記憶装置302は、ROM(Read Only Memory)、及び、RAM(Random Access Memory)等のメモリである。補助記憶装置303は、HDD(Hard Disk Drive)、SSD(Solid State Drive)、及び、メモリカード等である。
表示装置304は表示情報を表示する。表示装置304は、例えば液晶ディスプレイ等である。入力装置305は、コンピュータを操作するためのインタフェースである。入力装置305は、例えばキーボードやマウス等である。コンピュータがスマートフォン及びタブレット型端末等のスマートデバイスの場合、表示装置304及び入力装置305は、例えばタッチパネルである。通信装置306は、他の装置と通信するためのインタフェースである。
コンピュータで実行されるプログラムは、インストール可能な形式又は実行可能な形式のファイルでCD−ROM、メモリカード、CD−R及びDVD(Digital Versatile Disc)等のコンピュータで読み取り可能な記憶媒体に記録されてコンピュータ・プログラム・プロダクトとして提供される。
またコンピュータで実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。またコンピュータで実行されるプログラムをダウンロードさせずにインターネット等のネットワーク経由で提供するように構成してもよい。
またコンピュータで実行されるプログラムを、ROM等に予め組み込んで提供するように構成してもよい。
コンピュータで実行されるプログラムは、上述の情報処理装置10の機能構成(機能ブロック)のうち、プログラムによっても実現可能な機能ブロックを含むモジュール構成となっている。当該各機能ブロックは、実際のハードウェアとしては、制御装置301が記憶媒体からプログラムを読み出して実行することにより、上記各機能ブロックが主記憶装置302上にロードされる。すなわち上記各機能ブロックは主記憶装置302上に生成される。
なお上述した各機能ブロックの一部又は全部をソフトウェアにより実現せずに、IC(Integrated Circuit)等のハードウェアにより実現してもよい。
また複数のプロセッサを用いて各機能を実現する場合、各プロセッサは、各機能のうち1つを実現してもよいし、各機能のうち2つ以上を実現してもよい。
また情報処理装置10を実現するコンピュータの動作形態は任意でよい。例えば、情報処理装置10を1台のコンピュータにより実現してもよい。また例えば、情報処理装置10を、ネットワーク上のクラウドシステムとして動作させてもよい。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
1 セキュアアプリケーション
2 連携アプリケーション
3 OS部
4 履歴記録アプリケーション
5 ハードウェア
10 情報処理装置
11 発行部
12 第1通信部
13 履歴検証部
14 完全性検証部
15 第2交換部
16 記録取得部
21 第2通信部
22 ライブラリ部
23 記録制御部
24 記録取得部
31 命令実行部
32 履歴記録部
33 記録メモリ
34 付与部
35 第1交換部
36 アクセス保護部
41 命令捕捉部
42 履歴記録部
43 記録メモリ
44 保護機能付き付与部
51 付与部
101 対応情報
102 検証ルール
301 制御装置
302 主記憶装置
303 補助記憶装置
304 表示装置
305 入力装置
306 通信装置
310 バス

Claims (11)

  1. 第1処理部と第2処理部とを備える情報処理装置であって、
    前記第1処理部はセキュアアプリであり、
    前記第1処理部は、
    前記第2処理部が有する機能を呼び出す命令を発行し、前記命令と検証ルールとを関連付ける発行部と、
    前記命令を識別する命令識別情報を含む命令実行要求を前記第2処理部に送信し、前記第2処理部から、前記命令識別情報により識別される命令の実行結果を含む実行履歴を受信する第1通信部と、
    前記実行履歴の正しさを、前記検証ルールに従って検証する履歴検証部と、
    を備える情報処理装置。
  2. 前記実行履歴は、前記実行履歴から生成された符号を更に含み、
    前記第1処理部は、
    改ざんを検出する鍵を使用して前記符号を検証する完全性検証部、
    を更に備える請求項1に記載の情報処理装置。
  3. 前記情報処理装置は、OS(Operating System)部を更に備え、
    前記OS部は、
    前記命令を実行する命令実行部と、
    前記実行履歴を記録する履歴記録部と、
    前記実行履歴に前記符号を付与する付与部と、を備え、
    前記第2処理部は、
    前記履歴記録部から前記実行履歴を取得する記録取得部と、
    前記第1通信部から、前記命令実行要求を受信すると、前記履歴記録部から取得された前記実行履歴を、前記第1通信部に送信する第2通信部と、
    を更に備える請求項2に記載の情報処理装置。
  4. 前記付与部は、秘密鍵を使用して前記実行履歴に前記符号を付与し、
    前記完全性検証部は、前記秘密鍵に対応する公開鍵を使用して前記符号を検証する、
    請求項3に記載の情報処理装置。
  5. 前記OS部は、
    公開鍵方式による認証後、認証先と共通鍵を交換する第1交換部を更に備え、
    前記第1処理部は、
    公開鍵方式によって前記第1交換部を認証した後、前記第1交換部と前記共通鍵を交換する第2交換部を更に備え、
    前記付与部は、前記共通鍵を使用して前記実行履歴に前記符号を付与し、
    前記完全性検証部は、前記共通鍵を使用して前記符号を検証する、
    請求項3に記載の情報処理装置。
  6. 前記第2処理部は、
    前記命令を1以上のシステムコールに分解し、前記命令実行部に対してシステムコールを実行するライブラリ部と、
    前記1以上のシステムコールの実行が開始されてから、終了するまでの実行履歴を記録するように前記履歴記録部を制御する記録制御部と、
    を更に備える請求項3に記載の情報処理装置。
  7. 前記実行履歴は、前記命令の名称、前記命令の番号、前記命令のアドレス、及び、前記実行履歴を識別する履歴識別情報の少なくとも1つを含む、
    請求項1に記載の情報処理装置。
  8. 前記実行履歴は、実行履歴の記録開始時刻を示す情報と、実行履歴の記録終了時刻を示す情報とを更に含み、
    前記履歴検証部は、前記記録開始時刻と前記命令が発行された時刻との差が第1閾値より小さく、かつ、前記記録終了時刻と現在時刻との差が第2閾値より小さい場合、前記実行履歴が正しいと検証する、
    請求項7に記載の情報処理装置。
  9. 前記情報処理装置は、第3処理部とOS(Operating System)部とを更に備え、
    前記第3処理部は、前記OS部による命令の実行を捕捉する命令捕捉部と、
    捕捉された命令を前記実行履歴として記録する履歴記録部と、を備え、
    前記OS部は、
    前記命令を実行する命令実行部と、
    前記実行履歴に前記符号を付与する付与部と、
    前記命令捕捉部、前記履歴記録部及び前記付与部の少なくとも1つに対するアクセス保護を行うアクセス保護部と、を備え、
    前記第2処理部は、
    前記履歴記録部から前記実行履歴を取得する記録取得部と、
    前記第1通信部から、前記命令実行要求を受信すると、前記履歴記録部から取得された前記実行履歴を、前記第1通信部に送信する第2通信部と、
    を更に備える請求項2に記載の情報処理装置。
  10. 第1処理部と第2処理部とを備える情報処理装置の情報処理方法であって、
    セキュアアプリである前記第1処理部が、前記第2処理部が有する機能を呼び出す命令を発行し、前記命令と検証ルールとを関連付けるステップと、
    前記第1処理部が、前記命令を識別する命令識別情報を含む命令実行要求を前記第2処理部に送信し、前記第2処理部から、前記命令識別情報により識別される命令の実行結果を含む実行履歴を受信するステップと、
    前記第1処理部が、前記実行履歴の正しさを、前記検証ルールに従って検証する履歴検証部と、
    を含む情報処理方法。
  11. コンピュータを、
    外部の処理部が有する機能を呼び出す命令を発行し、前記命令と検証ルールとを関連付ける発行部と、
    前記命令を識別する命令識別情報を含む命令実行要求を前記外部の処理部に送信し、前記外部の処理部から、前記命令識別情報により識別される命令の実行結果を含む実行履歴を受信する通信部と、
    前記実行履歴の正しさを、前記検証ルールに従って検証する履歴検証部、
    として機能させるためのプログラム。
JP2019044006A 2019-03-11 2019-03-11 情報処理装置、情報処理方法及びプログラム Active JP6951375B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2019044006A JP6951375B2 (ja) 2019-03-11 2019-03-11 情報処理装置、情報処理方法及びプログラム
US16/554,700 US11531769B2 (en) 2019-03-11 2019-08-29 Information processing apparatus, information processing method, and computer program product

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019044006A JP6951375B2 (ja) 2019-03-11 2019-03-11 情報処理装置、情報処理方法及びプログラム

Publications (2)

Publication Number Publication Date
JP2020150318A true JP2020150318A (ja) 2020-09-17
JP6951375B2 JP6951375B2 (ja) 2021-10-20

Family

ID=72423654

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019044006A Active JP6951375B2 (ja) 2019-03-11 2019-03-11 情報処理装置、情報処理方法及びプログラム

Country Status (2)

Country Link
US (1) US11531769B2 (ja)
JP (1) JP6951375B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115118507A (zh) * 2022-06-29 2022-09-27 支付宝(杭州)信息技术有限公司 适用于隐私计算的日志存证、日志验证方法及装置

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112817663B (zh) * 2021-02-26 2023-12-22 北京北信源软件股份有限公司 一种应用程序的seccomp规则获取方法和装置
CN112988511B (zh) * 2021-03-12 2023-02-21 山东英信计算机技术有限公司 一种日志信息收集方法、系统、存储介质及设备

Family Cites Families (6)

* 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
US7134141B2 (en) * 2000-06-12 2006-11-07 Hewlett-Packard Development Company, L.P. System and method for host and network based intrusion detection and response
JPWO2007040228A1 (ja) * 2005-10-04 2009-04-16 日本電気株式会社 情報処理装置、情報処理方法およびプログラム
US9672355B2 (en) * 2011-09-16 2017-06-06 Veracode, Inc. Automated behavioral and static analysis using an instrumented sandbox and machine learning classification for mobile security
JP2017010347A (ja) 2015-06-24 2017-01-12 株式会社東芝 情報処理装置
US9794292B2 (en) * 2015-10-26 2017-10-17 Amazon Technologies, Inc. Providing fine-grained access remote command execution for virtual machine instances in a distributed computing environment

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115118507A (zh) * 2022-06-29 2022-09-27 支付宝(杭州)信息技术有限公司 适用于隐私计算的日志存证、日志验证方法及装置
CN115118507B (zh) * 2022-06-29 2023-09-08 支付宝(杭州)信息技术有限公司 适用于隐私计算的日志存证、日志验证方法及装置

Also Published As

Publication number Publication date
JP6951375B2 (ja) 2021-10-20
US11531769B2 (en) 2022-12-20
US20200293666A1 (en) 2020-09-17

Similar Documents

Publication Publication Date Title
CN109858265B (zh) 一种加密方法、装置及相关设备
KR101067399B1 (ko) 대칭 키 암호화에 기초한 데이터의 저장 및 검색을 위한, 컴퓨팅 장치에서 구현되는 방법, 시스템 및 복수의 명령어를 저장하는 하나 이상의 컴퓨터 판독가능 매체
KR100996784B1 (ko) 공개 키 암호화에 기초한 데이터의 저장 및 검색을 위한, 컴퓨팅 장치에서 구현되는 방법, 시스템 및 복수의 명령어를 저장하는 하나 이상의 컴퓨터 판독가능 매체
KR101158184B1 (ko) 클라이언트 플랫폼들 상의 콘텐츠 보호
CN108055133B (zh) 一种基于区块链技术的密钥安全签名方法
US11132468B2 (en) Security processing unit of PLC and bus arbitration method thereof
JP6114832B2 (ja) 仮想マシンのための管理制御方法、装置及びシステム
US20110289294A1 (en) Information processing apparatus
JP4089171B2 (ja) 計算機システム
JP4498735B2 (ja) オペレーティングシステムおよびカスタマイズされた制御プログラムとインタフェースする安全なマシンプラットフォーム
JP6903529B2 (ja) 情報処理装置、情報処理方法およびプログラム
US9054865B2 (en) Cryptographic system and methodology for securing software cryptography
US20120216242A1 (en) Systems and Methods for Enhanced Security in Wireless Communication
US20110061050A1 (en) Methods and systems to provide platform extensions for trusted virtual machines
JP5346608B2 (ja) 情報処理装置およびファイル検証システム
JP2005527019A (ja) マルチトークンのシール及びシール解除
CN104756127A (zh) 通过虚拟机进行安全数据处理
JP6951375B2 (ja) 情報処理装置、情報処理方法及びプログラム
JP6387908B2 (ja) 認証システム
JP4664055B2 (ja) プログラム分割装置、プログラム実行装置、プログラム分割方法及びプログラム実行方法
Suciu et al. Horizontal privilege escalation in trusted applications
CN117272286A (zh) 基于tee的进程动态完整性度量方法及系统
CN108345804B (zh) 一种可信计算环境中的存储方法和装置
CN109167785B (zh) 一种虚拟可信根的调用方法和业务服务器
CN114816549B (zh) 一种保护bootloader及其环境变量的方法及系统

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200826

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210428

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210525

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210713

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210924

R151 Written notification of patent or utility model registration

Ref document number: 6951375

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151