JP2017187963A - 電子機器およびシステム - Google Patents

電子機器およびシステム Download PDF

Info

Publication number
JP2017187963A
JP2017187963A JP2016077118A JP2016077118A JP2017187963A JP 2017187963 A JP2017187963 A JP 2017187963A JP 2016077118 A JP2016077118 A JP 2016077118A JP 2016077118 A JP2016077118 A JP 2016077118A JP 2017187963 A JP2017187963 A JP 2017187963A
Authority
JP
Japan
Prior art keywords
specific value
installation
software
specific values
application
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.)
Pending
Application number
JP2016077118A
Other languages
English (en)
Inventor
清武郎 長野
Seimuro Nagano
清武郎 長野
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.)
Renesas Electronics Corp
Original Assignee
Renesas Electronics 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 Renesas Electronics Corp filed Critical Renesas Electronics Corp
Priority to JP2016077118A priority Critical patent/JP2017187963A/ja
Priority to US15/468,050 priority patent/US10621334B2/en
Publication of JP2017187963A publication Critical patent/JP2017187963A/ja
Pending 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/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/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)

Abstract

【課題】複数のアプリがインストールされそれぞれ実行可能とされる端末機器と、端末機器と通信可能な管理機器とを備えるシステムにおいて、端末機器がセキュアブートなどの高度なセキュリティ機能を備えていなくても、信頼される管理機器と連携して、アプリの正当性を判定する電子機器およびシステムを提供する。【解決手段】管理機器10は、端末機器1にインストールされている複数のアプリからそれぞれ一意に算出される特定値を複数のインストール時特定値として保持する。本システムは、1のアプリから一意に算出される特定値を実行時特定値として端末機器1に算出させ、算出された実行時特定値が管理機器10に保持される複数のインストール時特定値のうちの1つと一致するときに、当該アプリを正当と判定する。【選択図】図2

Description

本発明は、電子機器およびシステムに関し、特にセキュアブート機能を持たない簡便な電子機器に不正なソフトウェアがインストールされた場合に、そのソフトウェアによる不正な動作の影響が、その電子機器が接続されるシステムに波及する事態の防止に好適に利用できるものである。
マルウェアなどの不正なソフトウェアが、コンピュータやスマートフォンなどの電子機器にインストールされて不正な動作を実行することによって、電子機器内の機器内の情報が盗まれ或いは破壊されるのを防止するための機能の一つに、セキュアブートがある。外部から提供されるソフトウェアは、提供元或いは信頼されている第三者機関による認証を受け、電子署名を伴って配布されて電子機器にインストールされる。インストールされた電子機器は、電源投入時のブートアップルーチンにおいて、電子署名を検証してそのソフトウェアが信頼のおけるサイトから提供された真正なものであることを確認した上で、そのソフトウェアを起動する。この場合のソフトウェアには、一般のアプリケーションソフトの他、通信やネットワークインターフェースなどのミドルウェア、ドライバソフトなどの中位、低位のソフトウェアおよびオペレーティングシステム(OS:Operating System)などまでもが広く含まれる。
特許文献1には、証明書が失効してディジタル署名が無効な状態になっても、ソフトウェアの正当性を検証することが可能な情報処理装置が開示されている。証明書が失効しておらずソフトウェアの正当性が確認されているときに、ソフトウェアから一意に計算される値を算出して記憶手段に格納しておき、ディジタル署名が無効な状態になった時に、ソフトウェアから同じ方法で一意に計算される値を算出して記憶手段に格納されている値と照合する。一致すればソフトウェアは正当なものであると判断される。
特許文献2には、機器制御を行うプロセッサが実行するプログラムの正当性が確認されなかった場合に、その事を確実に通知することが可能な情報処理装置が開示されている。情報処理装置は機器制御を行う第1のプロセッサとは別に第2のプロセッサを備え、第2のプロセッサは情報処理装置の起動時に第1のプロセッサが実行するプログラムの正当性検証を行い、正当性が確認された場合には第1のプロセッサを起動させ、正当性が確認されなかった場合には第1のプロセッサが備えるユーザーインターフェースとは異なる手段により異常通知を行う。
特許文献3には、通信データの完全性検証に基づき、正当な場合はシステムの構成装置を動作させ、不適当な場合は構成装置を動作させないで構成装置の誤制御を防止する完全性検証システムが開示されている。第1の制御装置は、通信データの完全性検証用データを生成して通信データとともに、第2の制御装置及び検知サーバへ送信する。検知サーバは、必要に応じて検証用付加情報を取得し、第1の制御装置から受信した通信データに対して完全性検証処理を行い、第2の制御装置及び制御サーバへ検証結果を送信する。第2の制御装置は、通信データの完全性の検証結果を検知サーバから受信するまで通信データに基づく制御業務を行わず、検知サーバが送信した検証結果が正当の場合には通信データに従った制御業務を行い、検証結果が不適当の場合には通信データに従った制御業務を行わず第1の制御装置にエラーを送信する。
特開2008−226160号公報 特開2013−114620号公報 特開2014−211473号公報
特許文献1、2及び3について本発明者が検討した結果、以下のような新たな課題があることがわかった。
IoT(Internet of Things)をはじめ、多数の電子機器がネットワークに接続され、例えば活動量計などの末端の機器がインターネットに情報を発信することも可能となってきている。このため、末端の機器にマルウェアなどの不正なソフトウェアをインストールして、個人情報などのデータを盗み取ったり改ざんしたりする攻撃などを想定した自己防衛システムの構築が急務となってきている。理論的には、このような末端の機器に上述のようなセキュアブート機能を搭載することによって、ソフトウェアの正当性を検証することが可能である。しかしながら、上述のようなセキュアブートシステムには、一般に公開鍵暗号が適用されており、暗号化や復号のための演算処理に多大な演算負荷を必要とする。本願の発明者によれば、従来のセキュアブートシステムが搭載されている電子機器では、例えば、マルチCPU(Central Processing Unit)コアがギガバイトクラスの大容量メモリを使って数msの演算時間を要すると試算された。一方、上述のような末端の機器にそのような演算負荷に耐えられるような演算回路を搭載することは、事実上不可能である。末端の機器は例えば活動量計の場合には、小型軽量であることが求められ、且つ、価格も抑えられる。従来の機器と同様のセキュアブートを機能させられるような専用の暗号演算回路を搭載することによってコストアップし、消費電力の増大に伴って電池の寿命が短縮されまたは寿命を維持するために電池が大型化することは、実用上許されないからである。
これに対して、特許文献3に開示される完全性検証システムに倣って、末端の機器に代わって高い演算能力を有する他の機器にセキュアブートの機能を代替させるという解決手段が考えられる。特許文献3における完全性の検証の対象は、ソフトウェアではなく通信データであるため、そもそも他の機器に伝送されることが前提とされており、したがって通信データを受信した他の機器においてその通信データの完全性を検証することは、特に大きなオーバーヘッドとはならない。一方、本願発明者が課題と位置付けているのは、ソフトウェアであるため、他の機器に伝送されることは想定されておらず、特許文献3に開示される完全性検証システムをIoTなどの末端の機器に応用することはできない。セキュアブートを他の機器で実行させるために、ソフトウェア自体を伝送することは大きなオーバーヘッドとなるばかりでなく、その伝送のための通信制御ソフトの正当性をいかにして検証するかが未解決だからである。
特許文献2に開示される情報処理システムでは、第1のプロセッサで実行されるプログラムの正当性を確認するために、第2のプロセッサをさらに搭載する必要があり、コストアップ等の上記の課題は解決されない。
特許文献1に開示される情報処理装置では、ソフトウェアの正当性が保証されている時に、当該ソフトウェアから一意に計算される値を算出して記憶しておくので、証明書が失効した後のソフトウェアの正当性の検証には、当該「一意に計算される値」の算出と記憶された値との照合が演算負荷として必要となるに留まる。したがって、この部分だけを適用することができれば、上記の課題は解決されるとも考えられる。しかしながら、本願が想定しているのは、不正なソフトウェアがインストールされた場合であって、その不正なソフトウェアが不正な動作を行うことである。インストール時に電子署名を使った証明書で検証を行って、そもそも不正なソフトウェアがインストールされないように防御することができれば、上述の課題の前提がなくなる。一方、電子署名の偽造などによってそのようなインストール時の検証を欺罔してインストールされた不正なソフトウェアについては、インストール時にはそのソフトウェアが正当であるものとして当該「一意に計算される値」が算出されてしまうので、特許文献1に開示される方法を適用しても、本願の課題を解決することはできない。
このような課題を解決するための手段を以下に説明するが、その他の課題と新規な特徴は、本明細書の記述及び添付図面から明らかになるであろう。
一実施の形態によれば、下記の通りである。
すなわち、1または複数のソフトウェアがインストールされそれぞれ実行可能とされる第1機器と、前記第1機器と通信可能な第2機器とを備えるシステムであって、以下のように構成される。
第2機器は、第1機器にインストールされている1または複数のソフトウェアからそれぞれ一意に算出される特定値を1または複数のインストール時特定値として保持する。
本システムは、1のソフトウェアから一意に算出される特定値を実行時特定値として第1機器に算出させ、算出された実行時特定値が第2機器に保持される1または複数のインストール時特定値のうちの1つと一致するときに、当該ソフトウェアを正当と判定する。
前記一実施の形態によって得られる効果を簡単に説明すれば下記のとおりである。
すなわち、第1機器がセキュアブートなどの高度なセキュリティ機能を備えていなくても、信頼される第2機器と連携して、ソフトウェアの正当性を判定することができる。
図1は、課題についての説明図である。 図2は、実施形態1に係る機器1と機器10を含むシステムの模式的な構成図である。 図3は、実施形態1、2及び3に係る機器1によるアプリインストール処理の動作例を示すフローチャートである。 図4は、実施形態1及び2に係る機器10によるアプリインストール処理の動作例を示すフローチャートである。 図5は、機器1と機器10との間で、接続処理、不正アプリ検出処理及び通信処理を実行する、機器1の動作例を示すフローチャートである。 図6は、機器1と機器10との間で、接続処理、不正アプリ検出処理及び通信処理を実行する、機器10の動作例を示すフローチャートである。 図7は、実施形態1に係る不正アプリ検出処理の一例としてエラー処理を行なう場合の、機器1の動作例を示すフローチャートである。 図8は、実施形態1に係る不正アプリ検出処理の一例としてエラー処理を行なう場合の、機器10の動作例を示すフローチャートである。 図9は、実施形態1に係る不正アプリ検出処理の一例として不正アプリの削除処理を行なう場合の、機器1の動作例を示すフローチャートである。 図10は、実施形態1に係る不正アプリ検出処理の一例として不正アプリの削除処理を行なう場合の、機器10の動作例を示すフローチャートである。 図11は、実施形態2に係る機器1と機器10を含むシステムの模式的な構成図である。 図12は、実施形態2に係る不正アプリ検出処理の一例としてエラー処理を行なう場合の、機器1の動作例を示すフローチャートである。 図13は、実施形態2に係る不正アプリ検出処理の一例としてエラー処理を行なう場合の、機器10の動作例を示すフローチャートである。 図14は、実施形態2に係る不正アプリ検出処理の一例として不正アプリの削除処理を行なう場合の、機器1の動作例を示すフローチャートである。 図15は、実施形態2に係る不正アプリ検出処理の一例として不正アプリの削除処理を行なう場合の、機器10の動作例を示すフローチャートである。 図16は、実施形態3に係る機器1と機器10と機器100を含むシステムの模式的な構成図である。 図17は、実施形態3に係るアプリインストール処理の機器10の動作例を示すフローチャートである。 図18は、実施形態3に係るアプリインストール処理の機器100の動作例を示すフローチャートである。 図19は、実施形態3に係る不正アプリ検出処理の一例としてエラー処理を行なう場合の、機器10の動作例を示すフローチャートである。 図20は、実施形態3に係る不正アプリ検出処理の一例としてエラー処理を行なう場合の、機器100の動作例を示すフローチャートである。 図21は、実施形態4に係る機器1と機器10と機器100を含むシステムの模式的な構成図である。 図22は、実施形態4に係るアプリインストール処理の機器1の動作例を示すフローチャートである。 図23は、実施形態4に係るアプリインストール処理の機器10の動作例を示すフローチャートである。 図24は、実施形態4に係るアプリインストール処理の機器100の動作例を示すフローチャートである。
実施の形態について詳述する。なお、発明を実施するための形態を説明するための全図において、同一の機能を有する要素には同一の符号を付して、その繰り返しの説明を省略する。本願において正当性判定の対象であるソフトウェアには、一般のアプリケーションソフトウェアの他、通信やネットワークインターフェースなどのミドルウェア、ドライバソフトなどの中位、低位のソフトウェアなどが広く含まれ、オペレーティングシステム(OS)に含まれるライブラリなどOSの少なくとも一部が含まれてもよい。以下の実施形態及び引用する各図面では、正当性判定の対象であるソフトウェアとして、一般のアプリケーションソフトウェアを代表的な一例として説明するものとし、「アプリ」と略記する。即ち、「アプリ」は「本願における正当性判定の対象である任意のソフトウェア」と読み替えることができる。
実施の形態について詳述するに先立って、解決しようとする課題について、さらに詳しく説明する。
図1は、課題についての説明図である。機器1は、例えば活動量計やドライブレコーダなどの末端の機器であり、プロセッサ3と通信部4と不揮発性メモリ2を備えている。不揮発性メモリ2には、プロセッサ3で実行される、アプリケーションソフトウェアであるアプリA,アプリBの他、通信ドライバ、OS、アプリ書換ドライバ等の、各種のソフトウェアが格納されている。機器10は、例えばPC(Personal Computer)やスマートフォンなどの機器であり、プロセッサ3、機器1とのインターフェースである通信部5、及び、インターネットなどの上位のネットワークとのインターフェースである上位通信部6を備えている。機器10Xについては後述する。従来の活動量計やドライブレコーダなどの末端の機器1の多くは、LAN(Local Area Network)などのネットワーク通信機能や無線通信機能が無く、代わりにPCやスマートフォンなどの機器10と1:1接続するために有線接続端子が搭載されている。即ち通信部4と通信部5は、例えばUSB(Universal Serial Bus)などのインターフェースである。そのため、機器1に搭載されたセンサ(不図示)で取得したデータは、PCやスマートフォンなどの機器10と有線で1:1接続して転送し、機器10を通して閲覧することができる。またデータを解析した結果を使用したサービスを受けるために、PCやスマートフォンなどの機器10がインターネットを通してサーバにデータを送信することができる。機器1のアプリに関しては、インターネット経由でサーバからアプリをPCやスマートフォンなどの機器10にダウンロードし、その後、機器10と機器1を有線で繋ぎ、ダウンロードしたアプリを機器1に転送することでアプリのインストールとアップデートが行われる。
IoTでは、このような構成を発展させて、機器1が取得したデータをPCやスマートフォンなどの機器10からインターネットを通して、リアルタイムでサーバへ送信するシステムが提案されている。また、機器1とは別の多数の機器からもデータを送信することで、多くの機器のデータを集めることでしか提供できないサービスが提案されている。これに対して機器1と機器10とを有線で1:1接続する従来の方式では有線ケーブルを用意する煩わしさ、有線ケーブルの取り回し(長さ含む)の煩わしさ、などがあるため、多:1または多:多のネットワーク接続に置換され、さらに有線接続から無線接続に置き換えられる。
これにより、収集した情報の定期的なアップロードが可能となるなど、利便性が向上する反面、セキュリティ上の脆弱性が発生する。有線接続に比べ無線接続の方が任意の機器10からの接続試行が容易となる。そのため、悪意を持った機器10Xが不正なアプリXを図1の機器1にインストールする可能性が、1:1の有線接続に比べて高くなる。このとき機器1にセキュアブート機能など、インストールされているアプリの正当性を検証する機構が搭載されていない場合には、機器1に不正なアプリXがインストールされていることに気付くことができない。そのため、悪意を持った機器10Xに代わって本来の正当な機器10が機器1に接続した場合であっても、不正なアプリXの起動を阻止することができず、種々のセキュリティ攻撃を許してしまうこととなる。例えば、機器1が送信するデータが改ざんされており適切なサービスを機器10が受けられない、機器1が不特定の機器10にデータを送信して個人情報を盗まれる、不正なアプリによる正当なアプリ改ざん(例えば有償機能が常にオンとなるなど)、などが考えられる。
このようなケースで一般的には、機器1の不正なアプリや正当なアプリの改ざんを検出し、その実行を阻止するのを目的としてセキュアブートが機器1に実装されるとよい。しかし、セキュアブートは実装のハードルが高いため、現在はパソコンやスマートフォンなどの高価な製品、また、その高価な製品でも一部にしか搭載されておらず、安価な製品に搭載するのはコスト的に難しいという問題点がある。
〔実施形態1〕
図2は、実施形態1に係る機器1と機器10を含むシステムの模式的な構成図である。
機器1は、ソフトウェアをインストール可能な記憶装置の一例である不揮発性メモリ2と、そのソフトウェアを実行可能なプロセッサ3と、他の機器10と通信可能なインターフェースである通信部4とを備える電子機器であって、例えば、活動量計やドライブレコーダである。ここで、他の機器10は、機器1にインストールされている1または複数のソフトウェアからそれぞれ一意に算出される特定値を、1または複数のインストール時特定値として保持している。
ここで、ソフトウェアからそれぞれ一意に算出される特定値とは、ソフトウェアの実行命令コード或いはソースコードの全部または一部を入力として、不可逆的に一意に定まる値であり、例えば、ハッシュ値、MAC(Message Authentication Code)が好適である。また、インストール時特定値は正当性判定対象のソフトウェアについてのみ算出しておけばよい。正当性判定対象のソフトウェアは、通常はアプリケーションソフトウェア(アプリ)であるが、必ずしもこれに限定される必要はなく、各種ドライバやOSの一部(ライブラリ)などが含まれてもよい。
機器1は、インストールされているソフトウェアのうちの少なくとも1個の正当性判定対象のソフトウェアに対応する特定値を実行時特定値として算出する。算出された正当性判定対象のソフトウェアの実行時特定値は、インストール時特定値と比較される。このとき、実行時特定値とインストール時特定値との比較は、機器1が行っても良いし、機器10が行っても良い。或いは、図2に示す構成とは異なるシステム構成を採用して、機器1、機器10とは異なる他の機器が比較を行ってもよい。さらには、インストール時特定値は、機器1の外部に保管されていればよく、保管する機器と比較を行う機器は、必ずしも同一である必要はない。機器1は、実行時特定値とインストール時特定値との比較の結果が一致するときにそのソフトウェアを正当なものと判定する。複数のソフトウェアを正当性判定の対象とする場合には、対象のソフトウェアすべてについて、予めインストール時特定値が算出され、機器10に保存されていることを前提とし、正当性判定時に対象のソフトウェアすべてについて実行時特定値を算出して、対応するインストール時特定値と比較する。全てが一致した場合には、不正なソフトウェアは検出されなかったものとして、通常の処理を開始する一方、不正なソフトウェアが検出されたときには、通信を遮断し当該ソフトウェアを削除するなどの所定のエラー処理を実行することによって、対処することができる。
これにより、機器1自身がセキュアブートなどの高度なセキュリティ機能を備えていなくても、信頼される外部の機器10と連携して、ソフトウェアの正当性を判定することができる。
図2を引用してさらに詳しく説明する。機器1の不揮発性メモリ2には、OS、通信ドライバ、アプリ書換ドライバ、及び、アプリケーションソフトウェアであるアプリAとアプリBが格納されている。本実施形態では、不揮発性メモリ2にさらに特定値計算ドライバを格納し、これをプロセッサ3で実行することによって、インストール時特定値と実行時特定値を算出する。通信部4は、例えば機器10との間で無線通信を行うためのインターフェースであって、プロセッサ3が通信ドライバを実行することによって、規格に対応した通信を行なうことができる。機器10は、不揮発性メモリ2、プロセッサ3、通信部5、及び、上位通信部6を備える。不揮発性メモリ2には、図示が省略されているOSと通信ドライバが格納されており、プロセッサ3が通信部5向けの通信ドライバを実行することによって機器1との無線通信が可能であり、プロセッサ3が上位通信部6向けの通信ドライバを実行することによって、Ethernet(登録商標、以下同じ)などの上位のネットワークとの通信が可能である。機器10の不揮発性メモリ2には、機器1にアプリAとアプリBがそれぞれインストールされたときの特定値(インストール時特定値)が格納されている。ここでインストール時とは、必ずしもアプリが新規インストールされた時に限られず、予めアプリがインストールされている機器1が初めて機器10に接続された時であってもよい。
一般にセキュアブートでは公開鍵暗号方式による署名検証を実施してアプリの配布元の正当性を判断する。この署名検証は、公開鍵暗号の演算負荷が重くソフトウェアで実行するには高性能の演算性能を持つプラットフォームを必要としまたは専用のハードウェアを実装する必要があって、高いコストがかかるため、安価な機器に実装することができない。そのため、本実施形態1においてアプリの配布元の正当性の確認は、図2の機器10のユーザ、もしくは機器1のメーカー等(具体的にはメーカーのサーバ)が実施する必要がある。本実施形態では、機器10のユーザが信頼できる者であるとし、機器10から機器1にインストールされたアプリは正当であることが保証されているものとしている。
機器1と機器10との間の通信が、無線ネットワークなどで他の機器が接続可能な場合には、図1に示したのと同様に、悪意を持った機器10Xがその無線ネットワークに侵入するなどして、不正なアプリXを機器1にインストールすることが可能である。不正なアプリXは機器1上で動作して上述したような種々のセキュリティ攻撃を許してしまうこととなる。しかし、悪意を持った機器10Xは、通常、その無線ネットワークに侵入したまま、或いは、接続されたまま、上述の種々のセキュリティ攻撃を継続することは考えにくい。仮にそのような事態に至ったとしても、不正なデバイスが接続されてネットワークに参加しているという攻撃態様に対しては、その無線ネットワークを監視するなどの公知の種々の方法によって、不正なデバイスを検出して排除する防御手段を講じることができる。一方、悪意を持った機器10Xがネットワークから離れた後も、不正なアプリXが機器1上で動作し続け、正当な機器10を介して種々のセキュリティ攻撃を続けることが問題である。
本実施形態1では、不正なアプリXが機器1にインストールされた時点では、不正なアプリであると判定することはできず、アプリXに対応するインストール時特定値が算出される。このとき、このインストールの主体である機器10Xが悪意を持っていることも検出することはできないため、機器1は機器10Xに対してアプリXに対応するインストール時特定値を送出する。その後、悪意を持った機器10Xがネットワークから離れ、正当な機器10が機器1を動作させるときには、機器1にインストールされているアプリA、アプリB、アプリXの実行時特定値が算出される。正当な機器10は、正当なアプリAとアプリBに対応するインストール時特定値は、不揮発性メモリ2内に保持しているが、不正なアプリXに対応するインストール時特定値は保持していない。アプリXに対応するインストール時特定値は、インストール主体であった機器10Xには返送されたものの、機器10には送信されないからである。したがって、機器1が算出したアプリXの実行時特定値は、比較対象がなく、一致することはないため、不正なアプリであると判定される。
機器1単独でソフトウェアの正当性を検証するためには、公開鍵暗号方式を用いる署名検証など、演算負荷の重いセキュアブートなど高度なセキュリティ機能が必要である。これに対して、本実施形態1では、機器1の外部に信頼できる機器を配置して、その信頼できる機器との連携によって、ソフトウェアの正当性を判定することができるため、そのための特定値の計算方法は大幅に簡略化することができる。上述したように特定値は、ソフトウェアの実行命令コード或いはソースコードの全部または一部を入力として、不可逆的に一意に定まる値であり、例えば、ハッシュ値、MACとすることができる。また、このときには公開鍵暗号方式に代えて、それよりもはるかに演算負荷が軽い、共通鍵暗号方式を利用することができる。さらに共通鍵暗号方式は、機器1のような末端の機器においても、通信部4と通信ドライバを使った通信(例えばBluetooth(登録商標)など)でも利用されるので、同じ演算回路または演算ライブラリを特定値計算ドライバで共有することができる。
機器1及び機器10の動作についてさらに詳しく説明する。
上述したように、インストール時特定値と実行時特定値との比較は、機器1が行っても、機器10が行っても、さらに他の機器が行ってもよい。本実施形態では、インストール時特定値と実行時特定値との比較を機器10が行う動作例について説明し、実施形態2では機器1が行う動作例、実施形態3及び4ではさらに他の機器が行う動作例について説明する。
図3と図4は、機器10から機器1へのアプリインストール処理の動作例を示すフローチャートであり、図3には機器1の動作を、図4には機器10の動作を、それぞれ示す。前提として、機器10は正当な新規のアプリをダウンロードし、機器10内の不揮発性メモリ2に保存(図2には記載していない)しているものとし、機器1と機器10は通信部4と5を介する接続処理を予め行い、通信ができる状態になっているものとする。
機器1と機器10は、アプリインストール処理をスタートさせる。機器10は機器1へアプリインストール命令を送信した(S21)後、新規アプリを送信する(S22)(図4)。機器1は機器10からアプリインストール命令を受信した(S11)後、新規アプリを受信する(S12)と、アプリ書き換えドライバを使用して受信した新規アプリのインストールを行う(S13)(図3)。インストールが正常終了した場合、機器1は機器10へ正常終了メッセージの送信(S17)、機器1にインストールされた新規アプリに対応するインストール時特定値の計算(S18)、その値の送信を行い(S19)、機器1を再起動させる(S20)(図3)。これに対し、インストールが異常終了した場合には、機器1は機器10へ異常終了メッセージを送信し(S15)、異常処理を行い(S16)、アプリインストール処理を終了する(図3)。機器10は機器1から受信したメッセージが正常終了の場合(S23,S24)、新規アプリに対応するインストール時特定値を受信し(S26)、受信したインストール時特定値を不揮発性メモリ2に保存して(S27)、アプリインストール処理を終了する(図4)。これに対し、受信したメッセージが異常終了の場合、異常処理を行い(S25)、アプリインストール処理を終了する(図4)。
次に、不正アプリ検出処理ついて説明する。
図5と図6は、機器1と機器10との間で実行される、接続処理、不正アプリ検出処理及び通信処理の動作例を示すフローチャートであり、図5には機器1の動作を、図6には機器10の動作を、それぞれ示す。一般に機器1と機器10との間の通信は、まず接続処理(図5のS3と図6のS4)を行い、接続が確立すると、通信処理(図5のS5と図6のS6)に移行する。不正アプリ検出処理(図5のS1と図6のS2)は、接続処理(図5のS3と図6のS4)が完了して接続が確立された後、通常の通信処理(図5のS5と図6のS6)が開始される前に行われるのが好適である。
機器1と機器10は、それぞれまず接続処理(図5のS3と図6のS4)を開始する。機器10は、機器1に対して接続要求を送信し(S33)、機器1からの接続応答が確認できるのを待って(S34)、接続処理(S4)を終える(図6)。機器1は、機器10からの接続要求を受信すると(S28)、接続応答を送信し(S29)、機器10からの接続応答が確認できるのを待って(S30)、接続処理(S3)を終える(図5)。機器1と機器10は、接続処理(図5のS3と図6のS4)を終えると、不正アプリ検出処理を行ない(図5のS1と図6のS2)、不正なアプリが検出されなければ、通常の通信処理(図5のS5と図6のS6)に移行する。通常の通信処理では、規格に対応した通信を、通信終了まで行う(図5のS31とS32、図6のS35とS36)。
図7と図8は、不正アプリ検出処理の一例としてエラー処理を行なう場合の動作例を示すフローチャートであり、図7には機器1の動作を、図8には機器10の動作を、それぞれ示す。
機器1と機器10は、接続処理(S3とS4)を行った後、それぞれ不正アプリ検出処理(S1とS2)をスタートさせる。機器10は機器1へアプリ特定値計算・送信命令を送信する(S42)(図8)。機器1は、この命令を受信すると(S37)、不揮発性メモリ2上にある全アプリの特定値を特定値計算ドライバにて計算し(S38)、機器10へ送信する(S39)(図7)。機器10は機器1にインストールされている全アプリの特定値を受信する(S43)(図8)。
機器1と機器10との接続が初めての場合、機器10は受信した特定値を不揮発性メモリ2に保存し(S45)、通信開始命令を機器1へと送信(S48)した後、不正アプリ検出処理(S2)を終了して通信処理(S6)を開始する(図8)。ここで、「機器1と機器10との接続が初めての場合」とは、例えば機器10のユーザが機器1を新規に購入して、所有する機器10に接続するような場合を想定しており、この段階で既に機器1にプリインストールされているアプリは、全て正当なものであることが保証されているものとしている。機器10からインストールされたわけではないが、機器1が新規に購入された段階で既にプリインストールされているアプリは、機器1のメーカー自身か機器1のメーカーが信頼する第三者によってインストールされたものであるから、配布元は信頼することができるからである。したがって、このときの特定値は、インストール時特定値であり、機器10の不揮発性メモリ2に書き込まれて、保存される。
これに対し、機器1と機器10との接続が2回目以降の場合、機器10は、機器1から受信した特定値と機器10の不揮発性メモリ2上の特定値とを比較する(S46)(図8)。比較した結果が全一致であれば(S47)、機器10は機器1へ通信開始命令を送信して(S48)、不正アプリ検出処理(S2)を終了して通信処理(S6)を開始する(図8)。比較した結果が全一致でない場合には、機器10は機器1へ通信停止命令を送信し(S49)、エラー処理(S50)を実施したのち、不正アプリ検出処理を終了する(図8)。機器1は機器10から受信した命令が通信開始命令であれば(S40)、不正アプリ検出処理(S1)を終了して通信処理(S5)を開始する。これに対し、通信停止命令であれば、機器1はエラー処理(S41)を実施したのち、不正アプリ検出処理を終了する(図7)。
機器1と機器10との接続が2回目以降の場合に機器1が計算する特定値は、実行時特定値であるが、機器1は接続が初回か2回目以降かを管理していないので、インストール時特定値と実行時特定値の区別はない。また、実行時特定値とインストール時特定値との照合が機器10で実行されるため、機器1の負荷は最小限に抑えられる。
次に、不正アプリを検出した場合のエラー処理の一例として、当該不正アプリを削除する動作例について説明する。なお、不正アプリの削除処理は、エラー処理の一種と位置付けてもよいし、エラー処理に代わる処理と位置付けても良い。
図9と図10は、不正アプリ検出処理の一例として不正アプリの削除処理を行なう場合の動作例を示すフローチャートであり、図9には機器1の動作を、図10には機器10の動作を、それぞれ示す。
機器1と機器10は、接続処理(S3とS4)を行った後、それぞれ不正アプリ検出処理(S1とS2)をスタートさせる。機器10は、不揮発性メモリ2に保存している特定値があるか否か(S65)に基づいて、機器1との接続が初回か2回目以降かを判断する(図10)。
初回の場合、機器10は初回接続メッセージを送信する(S66)(図10)。機器1は機器10からのメッセージ受信を待って(S51)、初回接続の場合は(S52)、全アプリの特定値を計算(S38)して機器10に送信し(S39)、機器10からの通信開始命令の受信を待って(S40)、不正アプリ検出処理(S1)を終了して通信処理(S5)を開始する(図9)。機器10は機器1にインストールされている全アプリの特定値を受信すると(S43)、受信した特定値を不揮発性メモリ2上に保存した(S45)後、機器1に対して通信処理開始命令を送信し(S76)、不正アプリ検出処理(S2)を終了して自らも機器1との通信処理(S6)を開始する(図10)。
機器1と機器10との接続が2回目以降の場合は、機器10は、機器1に対して2回目以降の接続メッセージを送信し(S67)、さらに1つのアプリの特定値を計算して送信させる命令(アプリ特定値計算・送信命令)を送信する(S68)(図10)。ここで「1つの」というのは、全てのアプリについて正当性判定を行うループにおいて順次選択される「1つ」に過ぎない。機器1はアプリ特定値計算・送信命令を受信すると(S37)、1つのアプリの特定値を計算し(S53)、機器10に送信する(S54)(図9)。機器10は1つのアプリの特定値を機器1から受信すると(S69)、受信した特定値と不揮発性メモリ2上に保存している特定値(インストール時特定値)との比較を行う(S46)。一致していれば正当アプリメッセージを送信し(S70)、不一致ならば不正アプリメッセージを送信する(S71)(図10)。機器1は、メッセージの受信を待って(S55)、そのメッセージに基づいて正当か不当かを判断し(S56)、不当である場合には特定値を計算したアプリ(正当性の判定対象アプリ)を削除し(S57)、削除完了メッセージを機器10に送信する(S58)。その後、全アプリについて正当性の判定が完了したか否かを判断し(S59)、完了していれば完了メッセージを送信し(S61)、未完了であれば未完了メッセージを送信する(S60)(図9)。機器10は、機器1からのメッセージの受信を待って(S73)、その内容が全アプリ未完であれば(S74)、次のアプリについての特定値計算・送信命令(S68)に戻って全アプリについて完了するまで繰り返す(図10)。全アプリについて完了したときには(S74)、全アプリについての特定値が一致したか否かを判定し(S75)、全て一致の場合には機器1に対して通信処理開始命令を送信し(S76)、不正アプリ検出処理(S2)を終了して機器1との通信処理(S6)を開始する。一方、1つでも不一致のアプリがあった場合には、機器1に対して再起動命令を送信し(S77)、通信処理(S6)を開始することなく、接続処理(S4)に戻る(図10)。一方、機器1は通信処理開始命令を受信したときには(S63)、不正アプリ検出処理(S1)を終了して自らも機器10との通信処理(S5)を開始するが、再起動命令を受信した場合には再起動処理(S64)を行う(図9)。
以上説明したように、不正なアプリを削除する処理を行なうためには、機器1側でも初回接続か2回目以降の接続かによって処理フローを振り分ける必要があり、処理の内容は図7と図8に示した単純なエラー処理と比べて複雑になるが、コストアップを抑えられた機器1によってさえ、不正なアプリを削除することができるというメリットは極めて大きい。
〔実施形態2〕
図11は、実施形態2に係る機器1と機器10を含むシステムの模式的な構成図である。
機器1は、ソフトウェアをインストール可能な記憶装置の一例である不揮発性メモリ2と、そのソフトウェアを実行可能なプロセッサ3と、他の機器10と通信可能なインターフェースである通信部4とを備える電子機器である。また、他の機器10は、機器1にインストールされている1または複数のソフトウェアからそれぞれ一意に算出される特定値を、1または複数のインストール時特定値として保持している。ここまでの構成は、図2に示した実施形態1に係る機器1と機器10を含むシステムの構成と同様であるが、本実施形態2に係る機器1は、アプリケーションソフトウェアからの書き換えが禁止されている、セキュアRAM領域を持つRAM7をさらに備える。
機器1は、インストールされているソフトウェアのうちの少なくとも1個の正当性判定対象のソフトウェアに対応する特定値を実行時特定値として算出する。機器1は、これと合せて、当該正当性判定対象のソフトウェアに対応するインストール時特定値を、機器10から取得し、算出した実行時特定値とを比較し、一致するときにそのソフトウェアを正当なものと判定する。
これにより、実行時特定値とインストール時特定値との照合が機器1自身で実行され、照合結果を外部に出力することなく、エラー処理などに移行することができるため、照合結果を外部で改ざんする攻撃に対する耐性が強化される。
機器1は、インストールされている1または複数のソフトウェアについて、インストール時特定値を機器10から取得してRAM7のセキュアRAM領域に保存しておき、実行時特定値を順次求めて対応するインストール時特定値と比較することにより、インストール時特定値が算出されているすべてのソフトウェアについての正当性の判定を実施することができる。少なくとも1つが不正と判定された場合には、エラー処理に移行するか、または、不正と判定されたソフトウェアを削除する。
図11に示す他の構成と基本的な動作は、実施形態1と同様であるので、説明は省略する。
機器1及び機器10の動作についてさらに詳しく説明する。
上述したように、インストール時特定値と実行時特定値との比較は、機器1が行っても、機器10が行っても、さらに他の機器が行ってもよく、実施形態1では、インストール時特定値と実行時特定値との比較を機器10が行う動作例について説明したが、本実施形態2では機器1が行う動作例について説明する。
機器10から機器1へのアプリインストール処理の動作は、図3と図4を引用して説明した実施形態1と同様である。そのため、説明は省略する。また、不正アプリ検出処理の動作についても、図5と図6を引用して説明したレベルの動作は、実施形態1と同様である。そのため、そのレベルの動作についても説明は省略する。
図12と図13は、不正アプリ検出処理の一例としてエラー処理を行なう場合の動作例を示すフローチャートであり、図12には機器1の動作を、図13には機器10の動作を、それぞれ示す。
機器1と機器10は、接続処理(S3とS4)を行った後、それぞれ不正アプリ検出処理(S1とS2)をスタートさせる。機器10は、不揮発性メモリ2に保存している特定値があるか否か(S65)に基づいて、機器1との接続が初回化2回目以降かを判断する(図13)。
初回の場合は初回接続メッセージを送信する(S66)(図13)。機器1は機器10からのメッセージ受信を待って(S51)、初回接続の場合は(S52)、全アプリの特定値を計算(S38)して機器10に送信し(S39)、不正アプリ検出処理(S1)を終了して通信処理(S5)を開始する(図12)。機器10は機器1にインストールされている全アプリの特定値を受信すると(S43)、受信した特定値を不揮発性メモリ2上に保存した(S45)後、不正アプリ検出処理(S2)を終了して自らも機器1との通信処理(S6)を開始する(図13)。
機器1と機器10との接続が2回目以降の場合は、機器10は、機器1に対して2回目以降の接続メッセージを送信し(S67)、不揮発性メモリ2上に保存している特定値(インストール時特定値)を機器1に送信する(S86)(図13)。
機器1は、全アプリの特定値の受信を完了する(S78)と、受信した特定値をRAM7のセキュアRAM領域に保持する(S79)(図12)。次に、1つのアプリの特定値を計算する(S80)。このときのアプリは正当性判定の対象であり、このときの特定値は実行時特定値である。なお「1つの」というのは、全てのアプリについて正当性判定を行うループにおいて順次選択される「1つ」に過ぎない。機器1は、算出した正当性判定対象のアプリの特定値と、RAM7のセキュアRAM領域に保持されているそのアプリのインストール時特定値とを比較する(S81)。一致していればセキュアRAM領域に保持されているすべての特定値に対応するアプリについての正当性判定を繰り返すために、次の1つのアプリの特定値を計算するステップ(S80)に戻る(S84)。一方、不一致であれば、機器1は、不正アプリ検出メッセージを送信して(S83)、エラー処理(S41)を実行する。全てのアプリについて正当性判定が完了した時には、正当アプリ検出メッセージを送信し(S85)、不正アプリ検出処理(S1)を終了して通信処理(S5)を開始する(図12)。
機器10は、機器1からのメッセージの受信を待って(S87)、不正アプリ検出メッセージであれば(S88)、エラー処理(S50)を実施し、正当アプリ検出メッセージであれば、不正アプリ検出処理(S2)を終了して通信処理(S6)を開始する(図13)。
次に、不正アプリを検出した場合のエラー処理の一例として、当該不正アプリを削除する動作例について説明する。
図14と図15は、不正アプリ検出処理の一例として不正アプリの削除処理を行なう場合の動作例を示すフローチャートであり、図14には機器1の動作を、図15には機器10の動作を、それぞれ示す。
機器1と機器10は、接続処理(S3とS4)を行った後、それぞれ不正アプリ検出処理(S1とS2)をスタートさせる。機器10は、不揮発性メモリ2に保存している特定値があるか否か(S65)に基づいて、機器1との接続が初回化2回目以降かを判断する(図15)。
初回の場合は初回接続メッセージを送信する(S66)(図15)。機器1は機器10からのメッセージ受信を待って(S51)、初回接続の場合は(S52)、全アプリの特定値を計算(S38)して機器10に送信し(S39)、不正アプリ検出処理(S1)を終了して通信処理(S5)を開始する(図14)。機器10は機器1にインストールされている全アプリの特定値を受信すると(S43)、受信した特定値を不揮発性メモリ2上に保存した(S45)後、不正アプリ検出処理(S2)を終了して自らも機器1との通信処理(S6)を開始する(図15)。
機器1と機器10との接続が2回目以降の場合は、機器10は、機器1に対して2回目以降の接続メッセージを送信し(S67)、さらに1つのアプリの特定値(インストール時特定値)を不揮発性メモリ2から読み出して送信する(S94)(図15)。ここで「1つの」というのは、全てのアプリについて正当性判定を行うループにおいて順次選択される「1つ」に過ぎない。不揮発性メモリ2に保持されている全てのアプリの特定値が送信されるまで(S95)、全アプリ特定値未送信メッセージを機器1に送信して(S96)、次のアプリ特定値の送信ステップ(S94)を繰り返す。全てのアプリの特定値の送信が完了したときには(S95)、「全アプリ特定値送信済」メッセージを機器1に送信する(S97)。
機器1は、1つの(正当性判定対象の)アプリの特定値の受信を完了する(S78)と、受信した特定値をRAM7のセキュアRAM領域に保持する(S79)(図14)。次に、受信した特定値に対応するアプリの特定値(実行時特定値)を計算する(S80)。機器1は、算出した正当性判定対象のアプリの特定値と、RAM7のセキュアRAM領域に保持されているそのアプリのインストール時特定値とを比較する(S81)。不一致の場合(S82)は、特定値を計算したアプリ(正当性の判定対象アプリ)を削除(S57)した後、一致していればアプリの削除をすることなく、機器10からのメッセージ受信を待つ(S89)。受信したメッセージが「全アプリ特定値送信済」になるまで(S90)、次のアプリの特定値を受信するステップ(S78)に戻って、正当性の判定を繰り返す。受信したメッセージが「全アプリ特定値送信済」となったときには(S90)、機器1でのアプリ削除を実施したか否かを判断し(S91)、削除が実施されていれば再接続処理命令を機器10に送信して(S92)、再起動(S64)を行う。一方、不正なアプリが検出されず、アプリの削除が実施されなかった場合には、通信処理開始命令を機器10に送信して(S93)、不正アプリ検出処理(S1)を終了して通信処理(S5)を開始する(図14)。
機器10は、機器1からの命令の受信を待って(S98)、その内容が「再接続処理」の場合には、接続処理(S4)に戻り、「通信処理」の場合には不正アプリ検出処理(S2)を終了して自らも機器1との通信処理(S6)を開始する(図15)。
以上説明したように、本実施形態2では、実行時特定値とインストール時特定値との照合が機器1自身で実行され、照合結果を外部に出力することなく、エラー処理などに移行することができるため、照合結果を外部で改ざんする攻撃に対する耐性が強化される。図14と図15を参照して説明した動作例では、実施形態1の図9と図10の場合と同様に、コストアップを抑えられた機器1によってさえ、不正なアプリを削除することができるというメリットは極めて大きい。
〔実施形態3〕
図16は、実施形態3に係る機器1と機器10と機器100を含むシステムの模式的な構成図である。
実施形態1及び2では、機器1と機器10によるシステムについて説明したが、本実施形態3では機器10にネットワーク11を経由するなどして、さらに機器100が接続される形態について説明する。
実施形態1では図2を参照して「機器1は、ソフトウェアをインストール可能な記憶装置の一例である不揮発性メモリ2と、そのソフトウェアを実行可能なプロセッサ3と、他の機器10と通信可能なインターフェースである通信部4とを備える電子機器であって、例えば、活動量計やドライブレコーダである。ここで、他の機器10は、機器1にインストールされている1または複数のソフトウェアからそれぞれ一意に算出される特定値を、1または複数のインストール時特定値として保持している。」と説明したが、ここでいう「他の機器」は必ずしも機器1と直接通信することができる機器10に限定されるものではなく、途中に中継する機器を経由する通信であっても良い。
実施形態3は、その一例であって、上記「他の機器」は機器100である。即ち、機器1は、ソフトウェアをインストール可能な記憶装置の一例である不揮発性メモリ2と、そのソフトウェアを実行可能なプロセッサ3と、他の機器100と通信可能なインターフェースである通信部4とを備える電子機器であって、例えば、活動量計やドライブレコーダである。ここで、他の機器100は、機器1にインストールされている1または複数のソフトウェアからそれぞれ一意に算出される特定値を、1または複数のインストール時特定値として保持している。機器1は、インストールされているソフトウェアのうちの少なくとも1個の正当性判定対象のソフトウェアに対応する特定値を実行時特定値として算出する。正当性判定対象のソフトウェアのインストール時特定値と実行時特定値とを比較し、一致するときにそのソフトウェアを正当なものと判定する。インストール時特定値と実行時特定値との比較は、機器1が行っても、機器100が行っても、さらに他の機器が行ってもよい。
本実施形態3のように、機器1と機器100が機器10を介して通信するような形態であっても同様に、機器1自身がセキュアブートなどの高度なセキュリティ機能を備えていなくても、信頼される外部の機器100と連携して、ソフトウェアの正当性を判定することができるという、実施形態1と同様の効果を奏する。
図16を引用してさらに詳しく説明する。機器1の構成は図2と同じであるため説明を省略する。機器10の構成も図2と同様であるが、不揮発性メモリ2はインストール時特定値を保持している必要がない。機器100は、通信部8、プロセッサ3及びハードディスクドライブ(HDD:Hard Disk Drive)9を備える。機器100は、機器10とEthernetなどのネットワーク11を介して通信することができるように接続されており、通信部8はこのネットワーク11とのインターフェースである。機器100は、例えば、機器1のメーカー等がインターネット上に提供するサーバであり、機器1上で動作するアプリを自ら提供し、或いは、信頼する第三者から提供させる。例えば、機器1は活動量計、機器10はスマートフォンであって、機器1(活動量計)のユーザは機器10(スマートフォン)のユーザでもあり、機器1のアプリはネットワーク11の一例であるインターネットを経由して、機器100の一例である機器1のメーカーサーバからダウンロードされ、機器1にインストールされる。本実施形態では、機器100が信頼できる者(物)であるとし、機器100から機器1にインストールされたアプリは正当であることが保証されているものとしている。機器100は、HDD9に機器1にインストールされたアプリのインストール時特定値を保持している。ここで、機器100は多数のユーザをサポートするサーバである場合を想定すると、ユーザごとにアプリの購入/未購入の状況が相違することとなる場合がある。そのため、アプリのインストール時特定値は、図示されるように、機器10と接続の機器1アプリA特定値、機器10と接続の機器1アプリB特定値のように、インストールされた機器1のみならずインストールしたのが機器10であるという情報も、紐付けされてHDD9に保持されると、さらに好適である。配布元に依拠する正当性に加えて、購入/未購入などの契約面での正当性までも判定の対象を拡大することができる余地があるためである。
図3と図17と図18を参照して、機器10が新規のアプリを機器1にインストールする処理について説明する。図3と図17と図18は、機器10から機器1へのアプリインストール処理の動作例を示すフローチャートであり、図3には機器1の動作を、図17には機器10の動作を、図18には機器100の動作を、それぞれ示す。図3は実施形態1でも参照しているが、機器1のアプリインストール処理の動作は実施形態1及び2と同じである。
前提として、機器10は正当な新規のアプリを機器100からダウンロードして、機器10内の不揮発性メモリ2に保存(図16には記載していない)しているものとし、機器1と機器10、機器10と機器100は、それぞれ通信部4と5、通信部6と8を介する接続処理を予め行い、通信ができる状態になっているものとする。
機器1と機器10と機器100は、アプリインストール処理をスタートさせる。機器10は機器1へアプリインストール命令を送信した(S21)後、新規アプリも送信する(S22)(図17)。機器1は機器10からアプリインストール命令を受信した(S11)後、新規アプリを受信する(S12)と、アプリ書き換えドライバを使用して受信した新規アプリのインストールを行う(S13)(図3)。インストールが正常終了した場合、機器1は機器10へ正常終了メッセージの送信(S17)、機器1にインストールされた新規アプリに対応するインストール時特定値の計算(S18)、その値の送信を行い(S19)、機器1を再起動させる(S20)(図3)。これに対し、インストールが異常終了した場合、機器1は機器10へ異常終了メッセージを送信し(S15)、異常処理を行い(S16)、アプリインストール処理を終了する(図3)。機器10は機器1から受信したメッセージが正常終了の場合(S23,S24)、新規アプリに対応するインストール時特定値を受信し(S26)、受信したインストール時特定値を機器100に送信して(S100)、アプリインストール処理を終了する(図17)。これに対し、受信したメッセージが異常終了の場合には、異常処理を行い(S25)、アプリインストール処理を終了する(図17)。機器100は、機器10からの特定値を待ち(S101)、受信した特定値をHDD9に保存して(S102)、アプリインストール処理を終了する(図18)。
次に、図7と図19と図20を参照して、不正アプリ検出処理ついて説明する。ただし、図5と図6を引用して説明したレベルの動作は、実施形態1及び2と同様であるため、そのレベルの動作についての説明は省略する。
図7と図19と図20は、不正アプリ検出処理の一例としてエラー処理を行なう場合の動作例を示すフローチャートであり、図7には機器1の動作を、図19には機器10の動作を、図20には機器100の動作を、それぞれ示す。図7は実施形態1でも参照しているが、機器1の不正アプリ検出処理の動作は実施形態1及び2と同じである。
機器1と機器10と機器100は、接続処理(S3とS4とS7)を行った後、それぞれ不正アプリ検出処理(S1とS2とS8)をスタートさせる。機器10は機器1へアプリ特定値計算・送信命令を送信する(S42)(図19)。機器1は、この命令を受信すると(S37)、不揮発性メモリ2上にある全アプリの特定値を特定値計算ドライバにて計算し(S38)、機器10へ送信する(S39)(図7)。機器10は機器1にインストールされている全アプリの特定値を受信すると(S43)、受信した全アプリ特定値を機器100に送信する(S103)(図19)。
機器100は、機器1にインストールされている全アプリの特定値を受信すると(S105)、その機器1との接続が初回か否かについて判断する(S106)(図20)。初回接続の場合は受信した特定値をHDD9に保存(S107)した上で初回接続である旨のメッセージを機器10へ送信し(S120)、2回目以降の接続の場合には、受信した特定値とHDD9に保存されている特定値とを比較する(S108)。機器100は、S105で機器1にインストールされている全アプリの特定値を受信した段階では、その特定値がインストール時特定値か実行時特定値かの判断はできないので、その機器1との接続が初回であるか2回目以降であるかに基づいて判断している。初回の場合は受信した特定値をインストール時特定値とみなしてHDD9に保存し、2回目以降の場合は受信した特定値を実行時特定値とみなしてHDD9に保存しているインストール時特定値と比較している。
機器100は比較結果または初回接続である旨のメッセージを機器10に送信し(S109、S120)、不正アプリ検出処理(S8)を終了して通信処理(S9)を開始する(図20)。S108の比較の結果、機器1にインストールされているアプリに不正アプリが含まれるか否かを判定することができるが、機器10との通信処理はそのまま継続してもよい。機器10から機器1を制御して不正アプリを削除するなどのエラー処理をさせることも可能である。一方、不正アプリが検出されたと判断し、その結果を機器10に送信(S109)した後、通信処理(S9)を開始することなく機器10との通信を遮断してもよい。どのような措置をとるかというセキュリティポリシは、任意に定めることができる。
機器10は機器100から比較結果または初回接続である旨のメッセージを受信する(S104)(図19)。比較した結果が全一致であるか初回接続であれば(S47)、機器10は機器1へ通信開始命令を送信して(S48)、不正アプリ検出処理(S2)を終了して通信処理(S6)を開始する。比較した結果が全一致でない場合には、機器10は機器1へ通信停止命令を送信し(S49)、エラー処理(S50)を実施した後、不正アプリ検出処理を終了する。
機器1は機器10から受信した命令が通信開始命令であれば(S40)、不正アプリ検出処理(S1)を終了して通信処理(S5)を開始する。これに対し、通信停止命令であれば、機器1はエラー処理(S41)を実施したのち、不正アプリ検出処理を終了する(図7)。
機器1と機器100との接続が2回目以降の場合に機器1が計算する特定値は、実行時特定値であるが、機器1は接続が初回か2回目以降かを管理していないので、インストール時特定値と実行時特定値の区別はない。また、実行時特定値とインストール時特定値との照合が機器100で実行されるため、機器1の負荷は最小限に抑えられる。
機器100は、HDD9にインストール時特定値を保存する時(S107)に、インストールされた機器1とインストールを実行した機器10と紐付けて保存しておき、比較の時(S108)でも両方に紐付いた特定値を比較する。これにより、別のユーザが別の機器10を使って同じ機器1を利用する場合に、ユーザごとにアプリの正当性を判断することができる。したがって、アプリの配布元が正当か否かだけではなく、正当に入手されているか否に基づく正当性にも拡張して、アプリの正当性を判断することができる。
〔実施形態4〕
実施形態1及び2と同じく実施形態3でも、信頼された機器として振舞えるのは唯1台である。すなわち、図11では機器10が信頼された機器とされているため、機器10がインストールしたアプリ以外は、仮に同じ配布元の正当なアプリであってもインストールした機器が異なれば、不正アプリとして取り扱われる。これに対して、実施形態3のような紐付けを行わず、単に配布元の正当性に限定してアプリの正当性を判断するように簡略化してもよい。この場合には、機器100によるユーザ管理が不要となり、機器100の負荷が軽減される。
図21は、実施形態4に係る機器1と機器10と機器100を含むシステムの模式的な構成図である。構成は図16と同様であるので説明を省略するが、機器100のHDD9に機器1向けに提供されているアプリA,B,Cの全ての特定値が保存されている点である。ここで機器1にはアプリAとアプリBのみがインストール済みで、アプリCは未だインストールされていないものとする。
より具体的な例を示せば、以下のような状況がこれにあたる。即ち、機器100は機器1(例えば活動量計)のメーカーであって、機器1にはアプリAとアプリBをプリインストールして販売している。機器1のメーカーは、機器1向けにアプリCも提供しているが、この段階ではまだ機器1にインストールされていない。機器1を購入したユーザは自身の所持する機器10(例えばスマートフォン)に接続して、さらにネットワーク11(例えばインターネット)を介してメーカーのサーバである機器100に接続する。そしてアプリCを新たにダウンロードして機器1にインストールする。
図22〜図24を参照して、機器10が新規のアプリCを機器1にインストールする処理について説明する。図22〜図24は、機器10から機器1へのアプリインストール処理の動作例を示すフローチャートであり、図22には機器1の動作を、図23には機器10の動作を、図24には機器100の動作を、それぞれ示す。
前提として、機器10は正当な新規のアプリCを機器100からダウンロードして、機器10内の不揮発性メモリ2に保存(図21には記載していない)しているものとし、機器1と機器10、機器10と機器100は、それぞれ通信部4と5、通信部6と8を介する接続処理を予め行い、通信ができる状態になっているものとする。
機器1と機器10と機器100は、アプリインストール処理をスタートさせる。機器10は機器1へアプリインストール命令を送信した(S21)後、新規アプリCも機器1へ送信する(S22)(図23)。機器1は機器10からアプリインストール命令を受信した(S11)後、新規アプリCを受信する(S12)と、アプリ書き換えドライバを使用してアプリCのインストールを行う(S13)(図22)。インストールが正常終了した場合、機器1は機器10へ正常終了メッセージの送信(S17)、機器1にインストールされた新規アプリCに対応するインストール時特定値の計算(S18)、その値の送信を行う(S19)。一方、インストールが異常終了した場合、機器1は機器10へ異常終了メッセージを送信し(S15)、異常処理を行い(S16)、アプリインストール処理を終了する。
機器10は機器1から受信したメッセージが正常終了の場合(S23,S24)、新規アプリに対応するインストール時特定値を受信し(S26)、受信したインストール時特定値を機器100に送信する(S100)(図23)。一方、受信したメッセージが異常終了の場合、異常処理を行い(S25)、アプリインストール処理を終了する。
機器100は、機器10からの特定値を待ち(S101)、受信した特定値とHDD9に保存している機器1アプリCの特定値とを比較し(S115)、一致の場合には「正当なアプリインストール検出」メッセージを、不一致の場合には「不正なアプリインストール検出」メッセージをそれぞれ機器10に送信して(S119とS117)、アプリインストール処理を終了する(図24)。ここで、一致の場合に受信した特定値を機器10と紐付けて、「機器10と接続の機器1アプリC特定値」としてHDD9に保存してもよい(S118)。これにより、実施形態3に示した不正アプリ検出処理を可能とすることができる。一方、機器10との紐付けを考慮した不正アプリ検出処理を行なわない場合には、S118を省略してもよい。
機器10は、機器100からメッセージを受信したときには、その内容が「正当なアプリインストール」を示すときは、機器1に対して「正当なアプリインストール検出」メッセージを送信して(S112)、アプリインストール処理を終了する(図23)。一方、メッセージの内容が「不正なアプリインストール」を示すときは、機器1に対して「不正なアプリインストール検出」メッセージを送信し(S113)、異常処理(S114)を行った後にアプリインストール処理を終了する。
機器1は、機器10からメッセージを受信したとき(S110)には、その内容が「正当なアプリインストール」を示すときは機器1を再起動させ(S20)、メッセージの内容が「不正なアプリインストール」を示すときは異常処理を行い(S16)、アプリインストール処理を終了する(図22)。
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
例えば、自動車の車載ネットワークについて実施する形態に適用することができる。このとき、機器1として例示した末端の機器は、当該車載ネットワークの末端に接続される種々のセンサを制御する機器とされ、機器10として例示した中間の機器は、当該車載ネットワークに搭載されるカーナビゲーション装置や自動運転装置等の電子制御ユニットとされ、機器100として例示した上位の機器は、当該車載ネットワークが接続される車外の情報サーバなどとされる。また、自動交通システムについて実施する形態では、機器1として例示した末端の機器は、道路情報を収集するための種々のセンサを制御する機器や交通情報等を表示する表示機器とされ、機器10として例示した中間の機器は路側機とされ、機器100として例示した上位の機器は、当該自動交通システムを管理する情報サーバなどとされてもよい。さらに、その他の制御機器、監視機器を構成するネットワーク(IoT)について実施する形態では、機器1として例示した末端の機器は、種々のセンサまたはアクチュエータを制御する機器であってもよい。
1 末端の機器(端末機器)
10 中間の機器(管理機器)
10X 不正な機器
100 上位の機器(サーバー等)
2 不揮発性メモリ
3 プロセッサ
4、5、6、8 通信部
7 RAM
9 ハードディスクドライブ(HDD)
11 ネットワーク

Claims (17)

  1. ソフトウェアをインストール可能な記憶装置と、前記ソフトウェアを実行可能なプロセッサと、他の機器と通信可能なインターフェースとを備える電子機器であって、
    前記他の機器は、前記電子機器にインストールされている1または複数のソフトウェアからそれぞれ一意に算出される特定値を、1または複数のインストール時特定値として保持し、
    前記電子機器は、インストールされている1のソフトウェアに対応する特定値を実行時特定値として算出し、
    前記電子機器は、前記電子機器、前記他の機器、または、さらに別の機器が、前記実行時特定値と前記他の機器が保持する前記1または複数のインストール時特定値とを比較することによって、前記実行時特定値が前記1または複数のインストール時特定値のうちの1つと一致するか全て不一致かを判定した結果である照合結果に基づいて、前記1のソフトウェアの正当性を判定する、
    電子機器。
  2. 請求項1において、
    前記電子機器は、前記実行時特定値を前記他の機器に送信し、
    前記他の機器が、受信した前記実行時特定値と前記1または複数のインストール時特定値とを比較し、前記照合結果を前記電子機器に伝送し、
    前記電子機器は、前記照合結果が全て不一致の場合にはエラー処理を実行する、
    電子機器。
  3. 請求項1において、
    前記電子機器は、前記実行時特定値を前記他の機器に送信し、
    前記他の機器が、受信した前記実行時特定値と前記1または複数のインストール時特定値とを比較し、前記照合結果を前記電子機器に伝送し、
    前記電子機器は、前記照合結果が全て不一致の場合には前記1のソフトウェアを削除する、
    電子機器。
  4. 請求項1において、
    前記電子機器は、前記他の機器から前記1または複数のインストール時特定値を取得し、
    算出した前記実行時特定値と、取得した前記1または複数のインストール時特定値とを比較し、前記照合結果が全て不一致の場合にはエラー処理を実行する、
    電子機器。
  5. 請求項1において、
    前記電子機器は、前記他の機器から前記1または複数のインストール時特定値を取得し、
    算出した前記実行時特定値と、取得した前記1または複数のインストール時特定値とを比較し、前記照合結果が全て不一致の場合には前記1のソフトウェアを削除する、
    電子機器。
  6. 請求項1において、
    前記電子機器に新規ソフトウェアがインストールされたときには、前記電子機器は前記新規ソフトウェアから一意に算出される特定値を、当該新規ソフトウェアに対応するインストール時特定値として送出する、
    前記他の機器は、当該新規ソフトウェアに対応するインストール時特定値を受信したときには、他の1または複数のインストール時特定値に追加して保持する、
    電子機器。
  7. ソフトウェアがインストールされ実行される端末機器と通信可能な電子機器であって、
    前記端末機器にインストールされている1または複数のソフトウェアからそれぞれ一意に算出される特定値を、1または複数のインストール時特定値として保持し、
    前記端末機器に対して、インストールされている少なくとも1つのソフトウェアに対応する特定値を実行時特定値として算出させ、
    前記電子機器は、前記電子機器自身、前記端末機器、または、別の機器が、前記実行時特定値と前記1または複数のインストール時特定値とを比較することによって、前記実行時特定値が前記1または複数のインストール時特定値のうちの1つと一致するか全て不一致かを判定した結果である照合結果に基づいて、前記1のソフトウェアの正当性を判定する、
    電子機器。
  8. 請求項7において、
    前記電子機器は、前記端末機器から算出した前記実行時特定値を受信して、前記1または複数のインストール時特定値と比較し、そのうちの1つと一致するか全て不一致かを判定した結果である照合結果を前記端末機器に送信する、
    電子機器。
  9. 請求項7において、
    前記電子機器は、前記1または複数のインストール時特定値を前記端末機器に送信し、前記端末機器に算出した前記実行時特定値との比較を実行させる、
    電子機器。
  10. 請求項7において、
    前記端末機器に新規ソフトウェアがインストールされたときには、前記端末機器に前記新規ソフトウェアから一意に算出される特定値を当該新規ソフトウェアに対応するインストール時特定値として算出して送信させ、
    前記他電子機器は、当該新規ソフトウェアに対応するインストール時特定値を受信したときに、他の1または複数のインストール時特定値に追加して保持する、
    電子機器。
  11. 1または複数のソフトウェアがインストールされそれぞれ実行可能とされる第1機器と、前記第1機器と通信可能な第2機器とを備えるシステムであって、
    前記第2機器は、前記第1機器にインストールされている前記1または複数のソフトウェアからそれぞれ一意に算出される特定値を1または複数のインストール時特定値として保持し、
    前記システムは、1のソフトウェアから一意に算出される特定値を実行時特定値として前記第1機器に算出させ、前記実行時特定値が前記第2機器に保持される前記1または複数のインストール時特定値のうちの1つと一致するときに、当該ソフトウェアを正当と判定する、
    システム。
  12. 請求項11において、
    前記第1機器は、算出した前記実行時特定値を前記第2機器に送信し、
    前記第2機器が、前記実行時特定値と前記1または複数のインストール時特定値との比較を行い、その比較結果を前記第1機器に送信し、
    前記第1機器は、前記比較結果が一致の場合には前記第2機器との通信を継続し、前記比較結果がすべてのインストール時特定値との不一致を示す場合にはエラー処理を実行する、
    システム。
  13. 請求項11において、
    前記第1機器は、算出した前記実行時特定値を前記第2機器に送信し、
    前記第2機器が、前記実行時特定値と前記1または複数のインストール時特定値との比較を行い、その比較結果を前記第1機器に送信し、
    前記第1機器は、前記比較結果が一致の場合には前記第2機器との通信を継続し、前記比較結果がすべてのインストール時特定値との不一致を示す場合には当該ソフトウェアを削除する、
    システム。
  14. 請求項11において、
    前記第2機器は、前記1または複数のインストール時特定値を前記第1機器に送信し、
    前記第1機器が、前記実行時特定値と前記1または複数のインストール時特定値との比較を行い、その比較結果が一致の場合には前記第2機器との通信を継続し、前記比較結果がすべてのインストール時特定値との不一致を示す場合にはエラー処理を実行する、
    システム。
  15. 請求項11において、
    前記第2機器は前記第1機器に対して前記インストール時特定値を送信し、
    前記第1機器は前記インストール時特定値を受信したときに前記実行時特定値を算出し、
    前記第1機器は受信した前記インストール時特定値を前記実行時特定値と比較し、一致した場合には前記第2機器との間の通信処理を開始し、不一致の場合には前記ソフトウェアを削除する、
    システム。
  16. 請求項11において、前記システムは、前記第1機器と前記第2機器との通信を中継する第3機器をさらに有し、
    前記第2機器は、前記複数のインストール時特定値を、前記第2機器、前記第3機器またはその他の機器のうち、当該インストール時特定値に対応するソフトウェアを前記第1機器にインストールした機器と紐付けて保持し、
    前記システムは、前記実行時特定値が前記第2機器に保持される前記1または複数のインストール時特定値のうちの1つと一致するときに、当該インストール時特定値に紐付けられている機器が前記第3機器と一致する場合に当該ソフトウェアを正当と判定し、前記第3機器と不一致の場合には不正と判定する、
    システム。
  17. 請求項11において、前記システムは、前記第1機器と前記第2機器との通信を中継する第3機器をさらに有し、
    前記第2機器は、前記第1機器にインストールされている前記1または複数のソフトウェアに代えて、前記第1機器にインストールされることが許されている1または複数のソフトウェアからそれぞれ一意に算出される特定値を1または複数のインストール時特定値として保持し、
    前記第1機器は、前記1のソフトウェアが前記第1機器にインストールされたときに前記実行時特定値を算出し、前記第2機器は、前記実行時特定値が前記第2機器に保持される前記1または複数のインストール時特定値のうちの1つと一致するときに、当該ソフトウェアを正当と判定する、
    システム。
JP2016077118A 2016-04-07 2016-04-07 電子機器およびシステム Pending JP2017187963A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2016077118A JP2017187963A (ja) 2016-04-07 2016-04-07 電子機器およびシステム
US15/468,050 US10621334B2 (en) 2016-04-07 2017-03-23 Electronic device and system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016077118A JP2017187963A (ja) 2016-04-07 2016-04-07 電子機器およびシステム

Publications (1)

Publication Number Publication Date
JP2017187963A true JP2017187963A (ja) 2017-10-12

Family

ID=59998211

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016077118A Pending JP2017187963A (ja) 2016-04-07 2016-04-07 電子機器およびシステム

Country Status (2)

Country Link
US (1) US10621334B2 (ja)
JP (1) JP2017187963A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7010543B1 (ja) * 2020-11-19 2022-01-26 Necプラットフォームズ株式会社 コンピュータシステム、ソフトウェア改竄検証方法、及び、プログラム

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6305663B2 (ja) * 2015-12-10 2018-04-04 三菱電機株式会社 情報処理装置、情報処理方法及び情報処理プログラム
CN110868641B (zh) * 2018-08-28 2021-12-07 中国电信股份有限公司 用于检测直播源合法性的方法和系统

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7063253B1 (en) * 2000-09-27 2006-06-20 Diebold SCLF-Service Systems division of Diebold, Incorporated Cash dispensing automated banking machine software authorization system and method
US8100323B1 (en) * 2002-12-26 2012-01-24 Diebold Self-Service Systems Division Of Diebold, Incorporated Apparatus and method for verifying components of an ATM
WO2006082990A1 (en) * 2005-02-07 2006-08-10 Sony Computer Entertainment Inc. Methods and apparatus for secure processor collaboration in a multi-processor system
US7490352B2 (en) * 2005-04-07 2009-02-10 Microsoft Corporation Systems and methods for verifying trust of executable files
JP2007004605A (ja) * 2005-06-24 2007-01-11 Brother Ind Ltd 通信システム、クライアント、サーバおよびプログラム
US7769993B2 (en) * 2007-03-09 2010-08-03 Microsoft Corporation Method for ensuring boot source integrity of a computing system
JP5096022B2 (ja) 2007-03-15 2012-12-12 株式会社リコー 情報処理装置、ソフトウェア検証方法及びソフトウェア検証プログラム
JPWO2009013825A1 (ja) * 2007-07-25 2010-09-30 パナソニック株式会社 情報処理装置、及び改竄検証方法
US8534564B2 (en) * 2009-05-15 2013-09-17 Ayman Hammad Integration of verification tokens with mobile communication devices
US8602293B2 (en) * 2009-05-15 2013-12-10 Visa International Service Association Integration of verification tokens with portable computing devices
US8370920B2 (en) * 2009-10-28 2013-02-05 Aunigma Network Security Corp. System and method for providing unified transport and security protocols
JP5831178B2 (ja) * 2011-11-30 2015-12-09 株式会社リコー 情報処理装置、情報処理装置の起動制御方法
JP2014211473A (ja) 2013-04-17 2014-11-13 株式会社日立製作所 完全性検証システム及び方法
JP6262085B2 (ja) * 2014-06-25 2018-01-17 ルネサスエレクトロニクス株式会社 データ処理装置及び復号処理方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7010543B1 (ja) * 2020-11-19 2022-01-26 Necプラットフォームズ株式会社 コンピュータシステム、ソフトウェア改竄検証方法、及び、プログラム

Also Published As

Publication number Publication date
US20170293753A1 (en) 2017-10-12
US10621334B2 (en) 2020-04-14

Similar Documents

Publication Publication Date Title
KR102137773B1 (ko) 보안 애플리케이션을 통해 안전한 데이터를 전송하기 위한 시스템 및 그에 관한 방법
EP2973147B1 (en) Policy-based secure web boot
EP1907917B1 (en) Secure software updates
US20200106775A1 (en) Method, device, system for authenticating an accessing terminal by server, server and computer readable storage medium
CN109716331B (zh) 符合应用程序数据共享和决策服务平台模式的应用程序部署
WO2015184891A1 (zh) Android系统的安全管控方法、装置及其系统
KR101756692B1 (ko) 다이나믹 보안모듈 단말장치 및 그 구동방법
US20140026228A1 (en) Information processing apparatus and control method
US20160147546A1 (en) Managing the Customizing of Appliances
US20140026198A1 (en) Information processing apparatus and control method
CN104573435A (zh) 用于终端权限管理的方法和终端
WO2014017118A1 (en) Information processing apparatus and control method
JP6793667B2 (ja) アプリケーションダウンロード方法及び装置
JP2016099837A (ja) 情報処理装置、サーバ装置、情報処理システム、制御方法及びコンピュータプログラム
KR100660641B1 (ko) 휴대 단말기의 부팅 보안 방법 및 그 휴대 단말기
JP2017187963A (ja) 電子機器およびシステム
WO2023124420A1 (zh) 应用签名方法、系统、交易终端及服务平台
CN114651253A (zh) 用于策略强制实施的虚拟环境类型验证
JP6042125B2 (ja) 情報処理装置およびプログラム
CN110324283B (zh) 基于非对称加密的许可方法、装置及系统
WO2019226042A1 (en) Method for processing a secure financial transaction using a commercial off-the-shelf or an internet of things device
JP4818824B2 (ja) プログラム管理システムおよび端末装置
CN112437071A (zh) 设备控制的方法、系统、设备及存储介质
CN116707758A (zh) 可信计算设备的认证方法、设备和服务器
KR20210066460A (ko) 프로세스 정보를 사용하여 웹쉘을 탐지하는 방법 및 시스템