JP6737424B1 - データ処理システム、データ処理装置およびアプリケーションプログラムの検証方法 - Google Patents

データ処理システム、データ処理装置およびアプリケーションプログラムの検証方法 Download PDF

Info

Publication number
JP6737424B1
JP6737424B1 JP2020515993A JP2020515993A JP6737424B1 JP 6737424 B1 JP6737424 B1 JP 6737424B1 JP 2020515993 A JP2020515993 A JP 2020515993A JP 2020515993 A JP2020515993 A JP 2020515993A JP 6737424 B1 JP6737424 B1 JP 6737424B1
Authority
JP
Japan
Prior art keywords
data processing
application program
data
verification
unit
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.)
Active
Application number
JP2020515993A
Other languages
English (en)
Other versions
JPWO2020213050A1 (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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Application granted granted Critical
Publication of JP6737424B1 publication Critical patent/JP6737424B1/ja
Publication of JPWO2020213050A1 publication Critical patent/JPWO2020213050A1/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/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • 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/64Protecting data integrity, e.g. using checksums, certificates or signatures

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)

Abstract

データ処理システムは、認証機関が保有する第1の秘密鍵301で予め暗号化された認証データ303を有するアプリケーションプログラム310の検証を行う検証手段521を備え、検証手段521は、アプリケーションプログラム310に含まれる検証用関数122が実行された際にメモリ403に展開される情報である動的情報402を取得し、予め保有している第1の秘密鍵301に対応する第1の公開鍵401を用いて認証データ303を復号することで得られる検証用動的情報302と比較することで、アプリケーションプログラム310の検証を行うことを特徴とするデータ処理システム。

Description

この発明は、アプリケーションプログラムの検証機能を備えたデータ処理システム、データ処理装置、およびアプリケーションプログラムの検証方法に関する。
近年、工場に代表される施設では、施設内からデータを収集して処理することで、生産工程、検査工程、その他の工程の管理や改善が実現されている。産業界では、現場で収集したデータを分析し現場の改善に生かそうとする機運が高まっている。それに伴い、データを分析し改善活動するためのシステムのベースとなるプラットフォームや、また、そのプラットフォームと連携して動作してデータの収集や分析を行うアプリケーションプログラムが、それぞれユーザに提供されている。
ユーザが保有するアプリケーションプログラムが正規のアプリケーションベンダから提供されたものであるか、あるいは改竄されたものであるかを区別することは、一般ユーザにとっては非常に困難である。改竄されたアプリケーションプログラムが実行された場合、データが破壊されたり、悪意のある第三者に現場の機密データが流出してしまったり等の深刻な被害が発生することが考えられる。
特許文献1では、データに電子署名を施しこれをOSプログラムがチェックすることにより署名情報の正当性を確認し、さらに署名者自身が悪意を持ってアプリケーションプログラムに付属するデータを改竄し再署名を行った場合でもコンピュータが改竄を検出できるように、アプリケーションプログラム自身に署名情報に基づき作成された秘匿情報の正当性を確認する機能(改竄チェックルーチン)を内在させている。この機能により、アプリケーションプログラムに付属するデータに改竄ありとアプリケーションプログラム自身が判断した場合には、アプリケーションプログラムの実行が中止される(特許文献1参照)。
特開2014−48866号公報
特許文献1のシステムを用いた場合、例えばプラットフォームの管理団体がアプリケーションプログラムの認定を行いそれに対して署名を発行した後に、アプリケーションプログラムに付属するデータ(リソースデータや補助ファイル)が改竄された場合には、その改竄を検出することができる。しかしながら、改竄のチェック機能がアプリケーションプログラムに依存しているため、アプリケーションプログラムが改竄され、改竄チェックルーチンが動作しないように改変された場合には、コンピュータはアプリケーションプログラムの改竄が検知できない。したがって、コンピュータは改竄されたアプリケーションプログラムの実行を中止することができない場合があった。
本発明は、上記の事情に鑑みなされたものであり、アプリケーションプログラムの改竄を精度よく検出できる検証技術を提供することを目的とする。
本発明に係るデータ処理システムは、認証機関が保有する第1の秘密鍵で予め暗号化された認証データを有するアプリケーションプログラムの検証を行う検証手段を備え、検証手段は、アプリケーションプログラムに含まれる検証用関数が実行された際にメモリに展開される情報である動的情報を取得し、予め保有している第1の秘密鍵に対応する第1の公開鍵を用いて認証データを復号することで得られる検証用動的情報と比較することで、アプリケーションプログラムの検証を行う。
本発明に係るデータ処理装置は、認証機関の公開鍵を格納する公開鍵格納部と、公開鍵に対応する認証機関の秘密鍵で予め暗号化されてアプリケーションプログラムに埋め込まれた認証データを、公開鍵を用いて復号する認証データ復号部と、アプリケーションプログラムに含まれる検証用関数が実行された際にメモリに展開される情報である動的情報をメモリから取得し、取得した動的情報と、認証データを復号することで得られる検証用動的情報とを比較することで、アプリケーションプログラムの検証を行う整合性確認部と、を備える。
本発明に係るアプリケーションプログラムの検証方法は、認証機関の秘密鍵で暗号化されてアプリケーションプログラムに埋め込まれた認証データを、秘密鍵に対応する認証機関の公開鍵を用いて復号するステップと、認証データから検証用動的情報を抽出するステップと、アプリケーションプログラムに含まれる検証用関数が実行された際にメモリに展開される動的情報をメモリから取得するステップと、取得した動的情報と検証用動的情報とを比較することで、アプリケーションプログラムの検証を行うステップと、を備える。
本発明のデータ処理システム、データ処理装置およびアプリケーションプログラムの検証方法においては、アプリケーションプログラムに含まれる検証用関数が実行された際にメモリに展開される情報をアプリケーションプログラムが正規品であるか否かの検証に用いるため、アプリケーションプログラムの改竄を精度よく検出することが可能となる。
この発明の実施の形態に係るデータ処理システムのハードウェア構成を示す図。 この発明の実施の形態に係るデータ処理装置のハードウェア構成を示す図。 この発明の実施の形態に係るデータ処理システムのシステム構成を示す図。 この発明の実施の形態に係るアプリケーションプログラムの認証の流れを示す図。 この発明の実施の形態に係るアプリケーションプログラムの検証方法を示す図。 この発明の実施の形態に係るデータ処理部およびデータ処理制御部のシステム構成を示す図。 この発明の実施の形態に係るアプリケーションプログラムの検証の流れを示すフローチャート。 この発明の実施の形態に係るデータ処理システムのシステム構成の変形例を示す図。
以下、本発明の実施の形態に係るデータ処理システム、データ処理装置およびアプリケーションプログラムの検証方法について、図面を参照しつつ詳細に説明する。
実施の形態.
本実施の形態に係るデータ処理システムは、機器から送信されたデータを処理するシステムである。データ処理システムは、製品の生産システムとして工場に設置される。データ処理システムによるデータの処理は、例えば、不良品の検出および製造工程からの除外、材料の分類、又は異常の監視を実現するために実行される。データ処理システムは、データに施す処理の内容をユーザが設定する。データ処理システムのハードウェア構成を図1に示す。データ処理システムは、製品の製造工程で稼働する機器201,202と、機器201,202から送信されたデータを処理するデータ処理装置100と、を有している。
データ処理装置100は、ネットワーク210を介して機器201,202と接続され、機器201,202との間で信号を送受信することにより互いに通信する。データ処理装置100と機器201,202とは、共にネットワーク210を介して接続されているが、異なる規格のネットワークを介して接続されてもよい。ネットワーク210は、産業用ネットワークである。なお、ネットワーク210は、シリアル通信を実現するための専用線であってもよい。
機器201は、製品の製造工程で利用されるセンサ201aを備えた制御装置である。センサ201aは、例えば、光センサ、圧力センサ、超音波センサ、その他の検出器である。機器201は、センサ201aによるセンシング結果を含むデータを、データ処理装置100から指定された周期で繰り返し、データ処理装置100に送信する。この周期は、例えば、10ms、100ms、又は1secである。
機器202は、例えば、製品の製造工程で利用されるアクチュエータ又はロボットである。機器202は、データ処理装置100によるデータの処理結果に応じて稼働する。詳細には、機器202は、データの処理結果として、稼働モードの指定、稼働開始、および稼働停止のいずれかを指示する動作指令をデータ処理装置100から受信すると、この動作指令に従って稼働状態を変更する。
以下では、データ処理装置100に接続される機器201,202を総称して機器200と表記する。データ処理装置100と機器200とを接続するデータの伝送路は、ネットワーク210のような有線通信の伝送路に限定されず、無線通信の伝送路であってもよい。
機器200は、センシング結果を含むデータを送信する機器とデータ処理装置100からの動作指令に従って稼働する機器とのいずれか一方に限定されない。機器200は、データ処理装置100にデータを送信すると共にデータ処理装置100からの動作指令に従って稼働する機器であってもよい。機器200の個数は2つに限定されない。
データ処理装置100は、PLCや産業用パソコンであって、機器200から収集したデータに対して、あらかじめ設定された処理を施して処理結果を出力するFA(Factory Automation)装置である。データ処理装置100は、処理結果の出力として、機器200へ動作指令を送信するが、これには限定されず、データを分析又は加工した品質管理情報をユーザに提示してもよいし、データ処理装置100自体又は外部のサーバ装置へ品質管理情報を蓄積してもよい。
データ処理装置100のハードウェア構成を図2に示す。データ処理装置100は、プロセッサ101と、主記憶部102と、補助記憶部103と、入力部104と、出力部105と、通信部106と、を有するコンピュータである。主記憶部102、補助記憶部103、入力部104、出力部105および通信部106はいずれも、内部バス107を介してプロセッサ101に接続される。
プロセッサ101は、MPU(Micro Processing Unit)を含む。プロセッサ101は、補助記憶部103に記憶されるプログラムを実行することにより、データ処理装置100の種々の機能を実現して、後述の処理を実行する。
主記憶部102は、RAM(Random Access Memory)を含む。主記憶部102には、補助記憶部103からプログラムがロードされる。そして、主記憶部102は、プロセッサ101の作業領域として用いられる。
補助記憶部103は、EEPROM(Electrically Erasable Programmable Read-Only Memory)に代表される不揮発性メモリを含む。補助記憶部103は、プログラムの他に、プロセッサ101の処理に用いられる種々のデータを記憶する。補助記憶部103は、プロセッサ101の指示に従って、プロセッサ101によって利用されるデータをプロセッサ101に供給し、プロセッサ101から供給されたデータを記憶する。なお、補助記憶部103には複数のプログラムが記憶されている。また、プログラムは、データ処理装置100に予め設定されたプログラムと、データ処理装置100のユーザによって追加されたプログラムと、を含む。
入力部104は、入力キーおよびポインティングデバイスに代表される入力デバイスを含む。入力部104は、データ処理装置100のユーザによって入力された情報を取得して、取得した情報をプロセッサ101に通知する。
出力部105は、表示装置およびスピーカに代表される出力デバイスを含む。出力部105は、プロセッサ101の指示に従って、種々の情報をユーザに提示する。
通信部106は、外部の機器200と通信するためのネットワークインタフェース回路を含む。通信部106は、機器200から信号を受信して、この信号により示されるデータをプロセッサ101へ出力する。また、通信部106は、プロセッサ101から出力されたデータを示す信号を機器200へ送信する。
図3は、本発明の実施の形態に係るデータ処理システムのシステム構成を表す。データ処理システムは、データ処理装置100と機器201,202とで構成されている。データ処理装置100は、エンジニアリングツール140、データ処理プラットフォーム110、データ収集部131,132、データ処理部121a,121b、および検証データ送信部150で構成されている。
エンジニアリングツール140は、データ処理の内容をユーザが設定するデータ処理制御設定部141を備える。エンジニアリングツール140は、補助記憶部103に記憶されたソフトウェアが、主記憶部102に読み込まれ、プロセッサ101により実行されることにより、実現される。データ処理の内容の設定は、ユーザが入力部104を介して行う。
データ処理プラットフォーム110は、エンジニアリングツール140から受け取った設定情報データを受け取る設定情報構築部111と、構築した設定情報を蓄積しておく設定情報蓄積部112と、蓄積した設定情報を解析しデータ収集部131,132とデータ処理部121a,121bに指示を行うデータ処理制御部113と、を有する。設定情報構築部111、設定情報蓄積部112およびデータ処理制御部113は、補助記憶部103に記憶されたプログラムが、主記憶部102に読み込まれ、プロセッサ101により実行されることにより、実現される。設定情報蓄積部112は、補助記憶部103に設定情報を蓄積する。
データ収集部131,132は、データ処理制御部113の指示に従って、機器201,202からデータを収集し、データ処理制御部113に受け渡すと共に、データ処理制御部113から受け取ったデータを機器201,202に渡す機能を備える。データ処理制御部113からの指示には、例えば、収集するデータの種類、収集周期などの情報が含まれる。データ収集部131,132は、補助記憶部103に記憶されたプログラムが、主記憶部102に読み込まれ、プロセッサ101により実行されることにより、実現される。機器201,202との通信には、通信部106が用いられる。データ収集部131,132は、機器200とデータ処理制御部113との間に介在し、インタフェースの変換の機能を備える。機器200が通信プロトコルの異なるネットワークにより接続されていても、通信プロトコルの差異を吸収し、データ処理プラットフォーム110側で指定された形式にてデータ処理制御部113との通信を行う。
データ処理部121a,121bは、データ処理制御部113の指示に従って、データ処理制御部113から受け渡されたデータに対し、処理を行う。データ処理部121a,121bは、アプリケーションプログラムとして、アプリケーションベンダ310から提供されるものであって、補助記憶部103に記憶されたプログラムが、主記憶部102に読み込まれ、プロセッサ101により実行されることにより、実現される。データ処理制御部113がデータ処理部121a,121bへ与える指示には、例えば、データを出力する際のデータ形式(桁数)などのパラメータが含まれる。データ処理部121a,121bに与えるパラメータは、データ処理部121a,121bに依存する。データ処理部121a,121bは、それぞれ独立して処理を行うが、データ処理制御部113が介在することで、実質的に連携して処理を行うこともできる。例えば、データ処理部121aがセンシングデータからノイズを除去するアプリケーションプログラムであり、データ処理部121bがセンシングデータを分析し、機器201の異常有無の診断を行うアプリケーションプログラムである場合がある。この場合、まずデータ処理制御部113が、機器201から収集したセンシングデータをデータ処理部121aに与え、データ処理部121aでノイズが除去させ、データ処理部121aからノイズが除去されたセンシングデータを受け取る。そして、データ処理制御部113が、ノイズが除去されたセンシングデータをデータ処理部121bに与え、機器201の異常有無の診断を実行させる。このように、データ処理制御部113の働きにより、データ処理部121a,121bを実質的に連携させて、データ処理を行わせることができる。
検証データ送信部150は、アプリケーションプログラムの検証の際、検証用のデータをメモリから取得して、データ処理制御部113に送信する。検証データ送信部150は、検証用モジュールがデータ処理部121a,121bに呼び出され、実行されることで実現する機能部である。検証用モジュールはプラットフォーム提供者が予め準備し、ユーザに提供されるものであり、検証データ送信部はデータ処理制御部113と安全な通信を行うためのインタフェース機能を備える。検証用モジュールは、例えば、DLL(Dynamic Link Library、動的リンクライブラリ)ファイルの形式で提供される。
次に、アプリケーションプログラム305の認証の流れについて、図4を用いて説明する。データ処理部121a,121bは、アプリケーションベンダ310から提供されるアプリケーションプログラム305をユーザ320がデータ処理装置100にインストールすることで、追加することができる。アプリケーションプログラム305は、その性能を保証するために、認証機関300(プラットフォーム提供者)の認証を受け、認証情報304が埋め込まれた状態でユーザ320に提供される。
アプリケーションベンダ310は、アプリケーションプログラム305独自の情報であるアプリ実行時情報302を、認証機関300に渡す。本実施の形態において、アプリ実行時情報302は、データ処理装置100等のコンピュータがアプリケーションプログラム305を実行した際に生成される動的情報である。当該動的情報の具体例としては、関数コール時にスタック領域に確保された情報など、アプリケーションプログラム305の実行時に、アプリケーションプログラム305が動作するデータ処理装置100内のメモリ上に展開される情報が挙げられる。具体的には、アプリケーションプログラム305は検証用のデータであるアプリ実行時情報を出力するための検証用関数を備えており、この検証用関数のスタックメモリ(検証用関数が実行されたされた際に検証用関数に割り当てられたメモリ上のスタック領域)に確保された情報が、アプリ実行時情報302として用いられる。このスタック領域に確保された情報は、例えば、検証用関数をはじめとする一連の呼び出し元関数を記録したデータの集合であり、各関数の戻り先アドレスに関する情報が含まれる。アプリ実行時情報302は、スタックメモリに確保された情報以外の具体例としては、予め定められた検証用関数が実行された際における、大域変数のメモリ上でのアドレス情報や大域変数として格納されている値などでもよい。なお、ここで、メモリはデータ処理装置100の主記憶部102に限定されず、プロセッサ101内部のキャッシュメモリを含み、キャッシュメモリ上に展開される情報を用いても良い。認証機関300は、アプリ実行時情報302と認証情報304とをまとめ、認証機関秘密鍵301にて暗号化した認証データ303を作成し、アプリケーションベンダ310に提供する。認証機関秘密鍵301は、第1の秘密鍵に相当する。ここで、認証情報304とは認証機関300が作成する電子署名であり、認証データ303が認証機関300により作成されたものであることを保証する電子データである。次に、アプリケーションベンダ310は、受け取った認証データ303を、開発したアプリケーションプログラム305に埋め込んで、ユーザ320に提供する。これにより、認証機関300の認証を受けたアプリケーションプログラム305がユーザ320に提供される。アプリ実行時情報302は、検証用動的情報に相当する。
次に、アプリケーションプログラム305の検証方法について、図5を用いて説明する。データ処理装置100において、アプリケーションプログラム305が実行されることで実現されるデータ処理部121は、認証データ303をデータ処理制御部113に受け渡す。データ処理制御部113は出力された認証データ303を自身が保有している認証機関公開鍵401で復号し、復号された認証情報304とアプリ実行時情報302を得る。認証機関公開鍵401は認証データ303の作成時に使用された認証機関秘密鍵301と一対となっており、認証機関秘密鍵301で暗号化された認証データ303を復号することができ、認証機関秘密鍵301で暗号化されている認証データ303は認証機関公開鍵401でしか復号できない。認証機関公開鍵401は、第1の公開鍵に相当する。
データ処理制御部113は復号した認証データ303から認証情報304を取り出し、認証データ303が認証機関300で認証された正規品であることを検証する。そして、認証データ303が正規の認証機関300で認証された正規品であると判明した場合、データ処理制御部113はアプリケーションプログラム305を実行した際に生成される情報であるアプリ実行時情報402を取得する。データ処理制御部113は、検証データ送信部150経由で、メモリ403からアプリ実行時情報402を取得する。検証データ送信部は、データ処理部121が保有する検証用関数122により検証用モジュールが呼び出され実行されることで実現する。検証データ送信部150は、検証用関数122が実行されている状態においてメモリ403に展開されている情報を読み出し、データ処理制御部113に送信する。検証用モジュールはプラットフォーム提供者により提供されるものであり、検証データ送信部150は、予め規定された専用のインタフェース機能を介してデータ処理制御部113にデータを送信するため、アプリケーションプログラム305はアプリ実行時情報402を偽装することができない。なお、データ処理制御部113は、検証データ送信部150を経由せず、検証用関数122の実行時にメモリ403に展開される情報を直接読み出すことでアプリ実行時情報402を取得してもよい。この場合もメモリ403からアプリ実行時情報402を取り出すため、アプリケーションプログラム305は、アプリ実行時情報402を偽装することができない。アプリケーションプログラム305が改変された場合には、メモリ403内に展開される情報(スタック領域に確保された戻り値のアドレス等)は変化するため、メモリ403に展開される情報を用いることで、アプリケーションプログラム305の改変を精度よく検知することができる。データ処理制御部113は、復号した認証データ303から取り出したアプリ実行時情報302と、新たに取得したアプリ実行時情報402との整合性を検証し、アプリケーションプログラム305に埋め込まれている認証データ303が当該アプリケーションプログラム305に対して発行されたものであることを確認する。アプリ実行時情報402は、動的情報に相当する。
次に、データ処理部121およびデータ処理制御部113のシステム構成について、図6を用いて説明する。データ処理部121は、データ処理実行部500と、認証データ格納部501と、認証データ送信部505と、アプリ秘密鍵格納部502と、暗号化/復号部503と、配信鍵格納部504と、を備える。データ処理実行部500は、データ処理制御部113から受け取ったデータに対しデータ処理を行う。認証データ格納部501は、暗号化された認証データ303を格納する。認証データ送信部505は、認証データ303をデータ処理制御部113へ送信する。アプリ秘密鍵格納部502は、アプリ秘密鍵を格納する。アプリ秘密鍵は、アプリケーションプログラム305に予め埋め込まれているものである。アプリ秘密鍵は、第2の秘密鍵に相当する。暗号化/復号部503は、データ処理制御部113へ送信するデータの暗号化、およびデータ処理制御部113から受信したデータの復号を行う。配信鍵格納部504は、後に説明する配信鍵を格納する。データ処理実行部500、認証データ格納部501、暗号化/復号部503は、アプリケーションプログラム305がプロセッサ101によって実行されることにより実現される。一方、認証データ格納部501、アプリ秘密鍵格納部502および配信鍵格納部504は、補助記憶部103により実現される。
データ処理制御部113は、認証機関公開鍵格納部511と、認証データ復号部512と、認証情報抽出部513と、アプリ実行時情報抽出部514と、アプリ公開鍵抽出部515と、整合性確認部516と、アプリ公開鍵格納部517と、配信鍵生成部518と、配信鍵格納部519と、暗号化/復号部520と、を備える。認証データ復号部512、認証情報抽出部513、アプリ実行時情報抽出部514、アプリ公開鍵抽出部515および整合性確認部516は、検証部521を構成する。検証部521は検証手段に相当する。認証機関公開鍵格納部511は、予め認証機関300から与えられた認証機関公開鍵401を格納している。認証データ復号部512は、データ処理部121の認証データ送信部505から暗号化された認証データ303を受信し、認証機関公開鍵格納部511に格納されている認証機関公開鍵401を用いて、認証データ303の復号を行う。認証情報抽出部513は、復号された認証データ303から認証情報304を抽出し、整合性確認部516に渡す。アプリ実行時情報抽出部514は、復号された認証データ303から、アプリ実行時情報302を抽出し、整合性確認部516に渡す。アプリ公開鍵抽出部515は、復号された認証データ303からアプリ公開鍵を抽出し、アプリ公開鍵をアプリ公開鍵格納部517に格納する。アプリ秘密鍵とアプリ公開鍵は対をなすものである。アプリ公開鍵は、第2の公開鍵に相当する。整合性確認部516は、認証情報抽出部513から受け取った認証情報304の検証を行い、認証データ303が正規の認証機関300で認証されたものであるか否かの検証を行う。また、整合性確認部516は、アプリ実行時情報抽出部514から受け取ったアプリ実行時情報302の検証を行い、認証データ303がデータ処理部121を実現するアプリケーションプログラム305に対し発行されたものであることを確認する。認証データ復号部512と、認証情報抽出部513と、アプリ実行時情報抽出部514と、アプリ公開鍵抽出部515と、整合性確認部516とは、各部に対応するプログラムモジュールがプロセッサ101に実行されることにより実現される。認証機関公開鍵格納部511と、アプリ公開鍵格納部517とは、補助記憶部103により実現される。
配信鍵生成部518は、整合性確認部516においてデータ処理部121の正当性の確認がとれた場合に、配信鍵を生成し、配信鍵格納部519に格納する。また、この配信鍵は、暗号化/復号部520において、アプリ公開鍵格納部517に格納されたアプリ公開鍵を用い暗号化されて、データ処理部121に渡される。一方、データ処理部121は、アプリ公開鍵と対をなすアプリ秘密鍵をアプリ秘密鍵格納部502に保有しているため、アプリ公開鍵で暗号化された配信鍵を暗号化/復号部503にて復号することができる。また、データ処理部121のみが、アプリ公開鍵と対をなすアプリ秘密鍵を保有しているため、データ処理部121以外は、当該アプリ公開鍵で暗号化されたデータ(配信鍵)を復号することはできない。したがって、データ処理制御部113とデータ処理部121とは、安全に配信鍵を共有することができる。ここで、配信鍵生成部518および暗号化/復号部520は、それぞれ対応するプログラムモジュールがプロセッサ101に実行されることにより実現される。配信鍵格納部519は、補助記憶部103により実現される。
配信鍵は、データ処理制御部113がデータ処理部121に処理させるデータを送信する際、およびデータ処理部121が処理したデータをデータ処理制御部113に返す際のデータの暗号化および復号に用いられる共通鍵である。データ処理制御部113がデータ処理部121に処理させるデータを送信する際は、データは配信鍵を用い配信鍵を用いて暗号化/復号部520で暗号化され、暗号化/復号部503で復号される。一方、データ処理部121が処理したデータをデータ処理制御部113に返す際は、データは配信鍵を用い暗号化/復号部503で暗号化され、暗号化/復号部520で復号される。安全に共有化された配信鍵を用いることで、データ処理制御部113とデータ処理部121との間で、安全なデータのやり取りが可能となる。
データ処理制御部113におけるアプリケーションプログラム305の検証の流れについて、図7のフローチャートを用いて説明する。まず、認証データ復号部512が、認証機関公開鍵格納部511に格納された認証機関公開鍵401を用いて、データ処理部121の認証データ格納部501から取得した認証データ303の復号を行う(S101)。次に、復号した認証データ303に含まれる認証情報304の検証を行い、認証データ303が正規の認証機関300で認証されたものであるかの確認を行う(S102)。ここで、認証データ303が正規の認証機関300で発行されたものでない場合、アプリケーションプログラム305の実行を禁止する(S110)。一方、認証データ303が正規の認証機関300で発行されたものであることが確認できた場合、データ処理制御部113はメモリ403からアプリ実行時情報402を取得する(S103)。
次に、データ処理制御部113は、復号した認証データ303に含まれるアプリ実行時情報302と取得したアプリ実行時情報402とを比較することで、アプリ実行時情報302の検証を行う(S104)。検証の結果、正当性が確認できなかった場合は、アプリケーションプログラム305の実行を禁止する(S110)。一方、正当性が確認できた場合は、アプリケーションプログラム305におけるデータ処理を許可する。
また、アプリケーションプログラム305の正当性が確認できた場合、復号された認証データ303から、アプリ公開鍵を抽出し、アプリ公開鍵格納部517に格納する(S105)。そして、配信鍵生成部518が、データ処理制御部113とデータ処理部121でデータのやり取りを行う際のデータの暗号化および復号に用いる共通鍵である配信鍵を作成し、配信鍵格納部519に格納する(S106)。その後、暗号化/復号部520が、アプリ公開鍵を用いて配信鍵を暗号化し(S107)、データ処理部121に暗号化された配信鍵を送付する(S108)。配信鍵は、データ配信用共通鍵に相当する。
その後、図示しないが、データ処理部121では、アプリ公開鍵と対をなすアプリ秘密鍵を用い、アプリ公開鍵を用いて暗号化された配信鍵の復号を行い、当該配信鍵を配信鍵格納部504に格納する。アプリ公開鍵と対をなすアプリ秘密鍵は、データ処理部121のみが保有しているため、データ処理部121以外は、アプリ公開鍵を用いて暗号化された配信鍵の復号を行うことはできない。したがって、データ処理制御部113とデータ処理部121との間で、安全に配信鍵の共有を行うことができる。これにより、データ処理制御部113とデータ処理部121の間での暗号化通信が可能となる。
続いて、データ処理システムのシステム構成の変形例について、図8を用いて説明する。図3に示したデータ処理システムでは、データ処理部121a,121bと、データ処理制御部113とが、同じデータ処理装置100に設けられていたが、高速な演算処理が可能な他のデータ処理装置において、データ処理を行った方が好ましい場合がある。そこで、図8に示したデータ処理システムのシステム構成では、データ処理部121cがデータ処理装置100とは別の外部処理装置180上に設けられている。ここで、データ処理装置100と外部処理装置180とはネットワークを介して接続され、データ処理制御部113とデータ処理部121cとが通信可能に構成されている。
他の制御装置上にアプリケーションプログラムがインストールされている場合、他の制御装置から偽装した認証情報が与えられる場合があり、アプリケーションプログラムの正当性の検証が難しい。しかしながら、本実施の形態のアプリケーションプログラムの検証方法では、プラットフォーム提供者が提供した検証用モジュールを、データ処理部121cがデータ処理部121c保有の検証用関数122が呼び出して実行することで、外部処理装置180上に、検証データ送信部152が設けられる。検証データ送信部152はデータ処理制御部113と通信するためのインタフェース機能を有しているため、アプリケーションプログラム305が外部処理装置180上に設けられている場合でも、データ処理制御部113は外部処理装置180のメモリ上の情報であるアプリ実行時情報302を取得することができる。したがって、アプリケーションプログラム305が外部処理装置180上に設けられている場合においても、アプリケーションプログラム305の正当性の検証が可能である。
100 データ処理装置、101 プロセッサ、102 主記憶部、103 補助記憶部、104 入力部、105 出力部、106 通信部、107 内部バス、110 データ処理プラットフォーム、111 設定情報構築部、112 設定情報蓄積部、113 データ処理制御部、121,121a,121b,121c データ処理部、122 検証用関数、131,132 データ収集部、140 エンジニアリングツール、141 データ処理制御設定部、150,152 検証データ送信部、180 外部処理装置、200,201,202 機器、201a センサ、210 ネットワーク、300 認証機関、301 認証機関秘密鍵、302 アプリ実行時情報、303 認証データ、304 認証情報、310 アプリケーションベンダ、305 アプリケーションプログラム、320 ユーザ、401 認証機関公開鍵、402 アプリ実行時情報、403 メモリ、500 データ処理実行部、501 認証データ格納部、502 アプリ秘密鍵格納部、503 暗号化/復号部、504 配信鍵格納部、505 認証データ送信部、511 認証機関公開鍵格納部、512 認証データ復号部、513 認証情報抽出部、514 アプリ実行時情報抽出部、515 アプリ公開鍵抽出部、516 整合性確認部、517 アプリ公開鍵格納部、518 配信鍵生成部、519 配信鍵格納部、520 暗号化/復号部、521 検証部。

Claims (8)

  1. 認証機関が保有する第1の秘密鍵で予め暗号化された認証データを有するアプリケーションプログラムの検証を行う検証手段を備えたデータ処理システムにおいて、
    前記検証手段は、前記アプリケーションプログラムに含まれる検証用関数が実行された際にメモリに展開される情報である動的情報を取得し、予め保有している前記第1の秘密鍵に対応する第1の公開鍵を用いて前記認証データを復号することで得られる検証用動的情報と比較することで、前記アプリケーションプログラムの検証を行うことを特徴とするデータ処理システム。
  2. 前記検証手段と通信するためのインタフェース機能を備える検証用モジュールが前記検証用関数に呼び出されて実行されることで、前記メモリに展開されている情報を取得し、前記検証手段に提供されることを特徴とする請求項1に記載のデータ処理システム。
  3. 前記動的情報は、前記検証用モジュールが前記検証用関数に呼び出されて実行された際の、前記メモリのスタック領域に確保された情報であることを特徴とする請求項2に記載のデータ処理システム。
  4. 前記検証手段は、前記検証により前記アプリケーションプログラムが正規品であることが判明した場合、前記アプリケーションプログラムにおけるデータ処理を許可することを特徴とする請求項1〜3のいずれか1項に記載のデータ処理システム。
  5. 前記検証手段は、前記検証により前記アプリケーションプログラムが正規品であることが判明した場合、データ配信用共通鍵を生成し、前記アプリケーションプログラムに前記データ配信用共通鍵を送信することを特徴とする請求項4に記載のデータ処理システム。
  6. 前記アプリケーションプログラムは第2の秘密鍵を保有しており、
    前記データ配信用共通鍵は、前記アプリケーションプログラムから提供された前記第2の秘密鍵に対応する第2の公開鍵を用いて暗号化された上で、前記アプリケーションプログラムに送信されることを特徴とする請求項5に記載のデータ処理システム。
  7. 認証機関の公開鍵を格納する公開鍵格納部と、
    前記公開鍵に対応する前記認証機関の秘密鍵で予め暗号化されてアプリケーションプログラムに埋め込まれた認証データを、前記公開鍵を用いて復号する認証データ復号部と、
    前記アプリケーションプログラムに含まれる検証用関数が実行された際にメモリに展開される情報である動的情報をメモリから取得し、取得した前記動的情報と、前記認証データを復号することで得られる検証用動的情報とを比較することで、前記アプリケーションプログラムの検証を行う整合性確認部と、
    を備えることを特徴とするデータ処理装置。
  8. 認証機関の秘密鍵で暗号化されてアプリケーションプログラムに埋め込まれた認証データを、前記秘密鍵に対応する前記認証機関の公開鍵を用いて復号するステップと、
    前記認証データから検証用動的情報を抽出するステップと、
    前記アプリケーションプログラムに含まれる検証用関数が実行された際にメモリに展開される動的情報を前記メモリから取得するステップと、
    取得した前記動的情報と前記検証用動的情報とを比較することで、前記アプリケーションプログラムの検証を行うステップと、
    を備えることを特徴とするアプリケーションプログラムの検証方法。
JP2020515993A 2019-04-16 2019-04-16 データ処理システム、データ処理装置およびアプリケーションプログラムの検証方法 Active JP6737424B1 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2019/016280 WO2020213050A1 (ja) 2019-04-16 2019-04-16 データ処理システム、データ処理装置およびアプリケーションプログラムの検証方法

Publications (2)

Publication Number Publication Date
JP6737424B1 true JP6737424B1 (ja) 2020-08-12
JPWO2020213050A1 JPWO2020213050A1 (ja) 2021-05-06

Family

ID=71949274

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020515993A Active JP6737424B1 (ja) 2019-04-16 2019-04-16 データ処理システム、データ処理装置およびアプリケーションプログラムの検証方法

Country Status (3)

Country Link
JP (1) JP6737424B1 (ja)
CN (1) CN113678128A (ja)
WO (1) WO2020213050A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113282951B (zh) * 2021-03-12 2024-02-09 北京字节跳动网络技术有限公司 一种应用程序的安全校验方法、装置及设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003337630A (ja) * 2002-05-17 2003-11-28 Ntt Docomo Inc 通信端末、プログラム、記録媒体、通信端末のアクセス制御方法およびコンテンツの提供方法
JP2005222341A (ja) * 2004-02-05 2005-08-18 Trend Micro Inc 情報機器上および伝送経路上でのプログラム分析によるセキュリティの確保
US20180260564A1 (en) * 2017-03-08 2018-09-13 Secure-Ic Sas Secured execution context data

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7607122B2 (en) * 2005-06-17 2009-10-20 Microsoft Corporation Post build process to record stack and call tree information
JP5457363B2 (ja) * 2008-10-10 2014-04-02 パナソニック株式会社 情報処理装置、認証システム、認証装置、情報処理方法、情報処理プログラム、記録媒体及び集積回路

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003337630A (ja) * 2002-05-17 2003-11-28 Ntt Docomo Inc 通信端末、プログラム、記録媒体、通信端末のアクセス制御方法およびコンテンツの提供方法
JP2005222341A (ja) * 2004-02-05 2005-08-18 Trend Micro Inc 情報機器上および伝送経路上でのプログラム分析によるセキュリティの確保
US20180260564A1 (en) * 2017-03-08 2018-09-13 Secure-Ic Sas Secured execution context data

Also Published As

Publication number Publication date
CN113678128A (zh) 2021-11-19
JPWO2020213050A1 (ja) 2021-05-06
WO2020213050A1 (ja) 2020-10-22

Similar Documents

Publication Publication Date Title
US11258792B2 (en) Method, device, system for authenticating an accessing terminal by server, server and computer readable storage medium
US8683214B2 (en) Method and device that verifies application program modules
TW201820132A (zh) 用於可程式化設備的統一程式設計環境
CN108475319A (zh) 装置出生凭证
CN110719203B (zh) 智能家居设备的操作控制方法、装置、设备及存储介质
CN108347361B (zh) 应用程序测试方法、装置、计算机设备和存储介质
CN107612698B (zh) 一种商用密码检测方法、装置与系统
US9042553B2 (en) Communicating device and communicating method
US9940446B2 (en) Anti-piracy protection for software
CN105099705B (zh) 一种基于usb协议的安全通信方法及其系统
Liu et al. On manually reverse engineering communication protocols of linux-based iot systems
JP2020504583A (ja) 証明書を使用して識別及び信頼を確立することによる正規デバイス保証のための技術
CN104636680A (zh) 维护部件的真实性验证及使用的许可证密钥的提供和获取
JP4696449B2 (ja) 暗号化装置およびその方法
CN113254947A (zh) 一种车辆数据保护方法、系统、设备和存储介质
JP4295684B2 (ja) プログラム製作装置
CN111177693A (zh) 一种验证终端根证书的方法、装置、设备和介质
CN111401901A (zh) 生物支付设备的认证方法、装置、计算机设备和存储介质
US20150047001A1 (en) Application program execution device
JP4960023B2 (ja) 画像読取装置、認証方法、評価システム、評価方法およびプログラム
JP6737424B1 (ja) データ処理システム、データ処理装置およびアプリケーションプログラムの検証方法
CN103686711B (zh) 网络连接方法和电子设备
JP4409497B2 (ja) 秘密情報送信方法
CN102770869B (zh) 计算资源的安全执行
CN112579374B (zh) 一种用于嵌入式设备的安全调试的系统和方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200317

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20200317

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20200608

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200629

R151 Written notification of patent or utility model registration

Ref document number: 6737424

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250