JP2014235326A - システム、情報処理装置、セキュアモジュール、および検証方法 - Google Patents

システム、情報処理装置、セキュアモジュール、および検証方法 Download PDF

Info

Publication number
JP2014235326A
JP2014235326A JP2013116825A JP2013116825A JP2014235326A JP 2014235326 A JP2014235326 A JP 2014235326A JP 2013116825 A JP2013116825 A JP 2013116825A JP 2013116825 A JP2013116825 A JP 2013116825A JP 2014235326 A JP2014235326 A JP 2014235326A
Authority
JP
Japan
Prior art keywords
secure
verification process
computer
executed
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
JP2013116825A
Other languages
English (en)
Inventor
哲也 笹尾
Tetsuya Sasao
哲也 笹尾
高楠 昌和
Masakazu Takakusu
昌和 高楠
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.)
Fujitsu Semiconductor Ltd
Original Assignee
Fujitsu Semiconductor Ltd
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 Fujitsu Semiconductor Ltd filed Critical Fujitsu Semiconductor Ltd
Priority to JP2013116825A priority Critical patent/JP2014235326A/ja
Priority to US14/292,053 priority patent/US9256731B2/en
Publication of JP2014235326A publication Critical patent/JP2014235326A/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/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/554Detecting local intrusion or implementing counter-measures involving event detection and direct action
    • 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)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

【課題】セキュアモジュールにかかる処理負荷の抑制化を図ること。
【解決手段】情報処理装置101は、実行中のアプリ103がセキュアな状態であるか否かを検証する第1の検証処理104を実行する。セキュアモジュール102は、第1の検証処理104の実行コードの特徴を抽出した第1の特徴量および第1の検証処理104を認証する認証処理の実行コードの両方またはいずれか一方を記憶する記憶部111にアクセス可能である。そして、セキュアモジュール102は、記憶部111の記憶内容に基づいて、実行中の第1の検証処理104がセキュアな状態であるか否かを検証する第2の検証処理105を実行する。
【選択図】図1

Description

本発明は、システム、情報処理装置、セキュアモジュール、および検証方法に関する。
従来、セキュアモジュールと呼ばれる、前述のセキュアモジュールが接続された情報処理装置が実行中のアプリケーションがセキュアな状態かを検証する装置がある。関連する先行技術として、たとえば、安全性が担保されていないメインメモリに書き出されるプログラムを、信頼性が担保されたセキュアモジュールで暗号化してから、メインメモリに書き出すものがある。また、セキュアモジュールが、第1の記憶部にある暗号化されたプログラムを実行可能な状態へ復帰して第2の記憶部に書き込み、CPUが復帰したプログラムを実行終了後に第2の記憶部から削除するものがある。さらに、メモリ上のアドレス空間のうちプログラムの実行イメージが占めるべきメモリ領域を示すロード先情報に改ざんがないと判明したら、ロード先情報に示されるメモリ領域に、プログラムの実行イメージを生成して、実行に供することでロードする技術がある。さらに、プロセッサが安全モードでプログラムを実行しているときに、プロセッサが非安全モードで作動中にアクセスできない安全データへプログラムがアクセスし、モニタモードを介して安全モードと非安全モードとの切り換えが行われる技術がある。(たとえば、下記特許文献1〜4を参照。)
特開2012−234362号公報 特開2005−135265号公報 特開2007−133860号公報 特表2006−506751号公報
しかしながら、従来技術によれば、セキュアモジュールを含むシステムにおける情報処理装置が実行中のアプリケーションの数が多い場合や、アプリケーションの実行コードの量が多い場合に、セキュアモジュールにかかる処理負荷が増大する。
1つの側面では、本発明は、セキュアモジュールにかかる処理負荷を抑制できるシステム、情報処理装置、セキュアモジュール、および検証方法を提供することを目的とする。
本発明の一側面によれば、情報処理装置が、情報処理装置により実行中のアプリケーションがセキュアな状態であるか否かを検証する第1の検証処理を実行し、内部に格納された情報が外部から参照できない構造を有するセキュアモジュールが、第1の検証処理の実行コードの特徴を抽出した第1の特徴量および第1の検証処理を認証する認証処理の実行コードの両方またはいずれか一方を記憶する記憶部の記憶内容に基づいて、実行中の第1の検証処理がセキュアな状態であるか否かを検証する第2の検証処理を実行するシステム、情報処理装置、セキュアモジュール、および検証方法が提案される。
本発明の一態様によれば、セキュアモジュールにかかる処理負荷の抑制化を図ることができるという効果を奏する。
図1は、実施の形態1にかかるシステムの動作例を示す説明図である。 図2は、実施の形態1にかかるコンピュータシステムの構成例を示すブロック図である。 図3は、実施の形態1にかかるコンピュータシステムの機能構成例を示すブロック図である。 図4は、コンピュータシステムの処理の一例を示すシーケンス図(その1)である。 図5は、コンピュータシステムの処理の一例を示すシーケンス図(その2)である。 図6は、アプリの改ざん検証処理の一例を示すシーケンス図である。 図7は、セキュアサービスの改ざん検証処理の一例を示すシーケンス図である。 図8は、セキュアサービスおよびアプリの認証処理の一例を示すシーケンス図である。 図9は、アプリの難読化対象部分の実行処理の一例を示すシーケンス図である。 図10は、コントローラの動作処理手順の一例を示すフローチャートである。 図11は、アプリの暗号化処理手順の一例を示すフローチャートである。 図12は、改ざん検証処理手順の一例を示すフローチャートである。 図13は、認証処理手順の一例を示すフローチャートである。 図14は、実施の形態2にかかるコンピュータシステムの構成例を示すブロック図である。 図15は、実施の形態2にかかるコンピュータシステムの機能構成例を示すブロック図である。 図16は、セキュアモジュールの挿抜状態の変化時に実行する処理手順の一例を示すフローチャートである。
以下に図面を参照して、開示のシステム、情報処理装置、セキュアモジュール、および検証方法の実施の形態を詳細に説明する。
(実施の形態1の説明)
図1は、実施の形態1にかかるシステムの動作例を示す説明図である。システム100は、情報処理装置101と、セキュアモジュール102と、を有する。情報処理装置101は、セキュアモジュール102と通信可能な装置である。セキュアモジュール102は、セキュアモジュール102の内部に格納された情報がセキュアモジュール102の外部から参照できない構造を有する装置である。
情報処理装置101は、多種多様な機能を有しており、高度なアプリケーションソフトウェアを実行する。以下、アプリケーションソフトウェアを、「アプリ」と称する。一方、アプリの技術仕様が一般の開発者に公開されていることから、アプリの覗き見による解析や改ざん、および、不正操作といった攻撃にさらされやすくなっている。
覗き見による解析や改ざん、および、不正操作といった攻撃から保護するために、セキュアモジュール102が、情報処理装置101が実行するアプリを保護して、セキュアな状態であることを検証する技術がある。ここで、セキュアな状態とは、外部からの攻撃や侵入、盗聴、改ざんなどの危険の無い状態を示す。
しかしながら、情報処理装置101が実行するアプリは高機能であり、実行コードの量が多くなっているため、セキュアモジュール102が処理する処理量も増加している。セキュアモジュール102が処理する処理量が増加したため、セキュアモジュール102のコストが増大する。
そこで、本実施の形態にかかるシステム100は、アプリ103の正当性を検証する処理を情報処理装置101が実行し、アプリ103の正当性を検証する処理の正当性をセキュアモジュール102が検証する。これにより、システム100は、セキュアモジュール102の処理負荷を抑制しつつセキュアな状態でアプリ103を実行できる。
情報処理装置101は、実行中のアプリ103がセキュアな状態であるか否かを検証する第1の検証処理104を実行する。アプリ103は、著作権コンテンツの再生処理や、決済処理などといった、外部から参照されたくない情報を扱う処理である。第1の検証処理104が行う検証処理とは、アプリ103の実行コードが改ざんされているか否かを検証する改ざん検証処理と、アプリ103が正当な通信相手であるか否かを検証する認証処理とである。アプリ103の改ざん検証処理については、図6にて後述する。認証処理については、図8にて後述する。
セキュアモジュール102は、第1の検証処理104の実行コードの特徴を抽出した第1の特徴量および第1の検証処理104を認証する認証処理の実行コードの両方またはいずれか一方を記憶する記憶部111にアクセス可能である。実行コードの特徴を抽出した特徴量は、たとえば、実行コードのハッシュ値である。ハッシュ値を算出する関数としては、MD5(Message−Digest 5)、SHA(Secure Hash Algorithm)−1、SHA−256等がある。
そして、セキュアモジュール102は、記憶部111の記憶内容に基づいて、実行中の第1の検証処理104がセキュアな状態であるか否かを検証する第2の検証処理105を実行する。第2の検証処理105が行う検証処理とは、第1の検証処理104の実行コードが改ざんされているか否かを検証する改ざん検証処理と、第1の検証処理104が正当な通信相手であるか否かを検証する認証処理とである。
ここで、記憶部111の記憶内容は外部から参照できず、改ざんされることがないため、セキュアモジュール102は、第1の検証処理がセキュアな状態であるかを正しく判定することができる。そして、セキュアな状態であると判定された第1の検証処理によって、アプリ103がセキュアな状態であるかを正しく判定することができる。このように、システム100は、セキュアな状態であるかを正しく判定するとともに、処理量を分散して、セキュアモジュール102のコストを低減化する。
図2は、実施の形態1にかかるコンピュータシステムの構成例を示すブロック図である。コンピュータシステム200は、情報処理装置101とセキュアモジュール102とを含む。コンピュータシステム200は、携帯電話、スマートフォンなどのモバイル端末を想定する。また、コンピュータシステム200は、パーソナル・コンピュータ等でもよい。
情報処理装置101は、MCU(Micro Control Unit)201と、不揮発性メモリ202と、揮発性メモリ203と、I/F(Interface)204と、ディスプレイ205と、キーボード206と、メモリコントローラ211、212と、I/Fコントローラ213と、を含む。MCU201と、メモリコントローラ211、212と、I/Fコントローラ213と、ディスプレイ205と、キーボード206とは、バス214によって接続される。
また、セキュアモジュール102は、MCU221と、不揮発性メモリ222と、揮発性メモリ223と、演算回路224と、を含む。MCU221〜演算回路224は、バス214によって接続される。
MCU201は、情報処理装置101の全体の制御を司る演算処理装置である。また、MCU201は、セキュアモードと非セキュアモードとの2状態があり、かつ、両状態間を遷移する機構を有する。
不揮発性メモリ202は、ブートプログラムなどのプログラムを記憶するメモリである。揮発性メモリ203は、MCU201のワークエリアとして使用される揮発性メモリである。I/F204は、通信回線を通じてLAN(Local Area Network)、WAN(Wide Area Network)、インターネットなどのネットワークに接続され、ネットワークを介して他の装置に接続される。そして、I/F204は、ネットワークと内部のインターフェースを司り、セキュアモジュール102や他の装置からのデータの入出力を制御する。I/F204には、たとえばモデムやLANアダプタなどを採用することができる。
また、不揮発性メモリ202〜I/F204が有する記憶領域は、セキュア領域と非セキュア領域とに分類される。セキュア領域は、MCU201がセキュアモードである場合にアクセスされる。非セキュア領域は、MCU201がセキュアモードである場合、または非セキュアモードである場合にアクセスされる。具体的には、たとえば、不揮発性メモリ202と揮発性メモリ203との記憶領域のうち、記憶領域に割り当てられたアドレス領域のうち、あるアドレス領域がセキュア領域のアドレス領域とし、他のアドレス領域をセキュア領域のアドレス領域とする。また、たとえば、I/F204の記憶領域となる設定レジスタや制御レジスタのうち、メモリマップドI/Oにより割り当てられたアドレス領域のうち、あるアドレス領域がセキュア領域のアドレス領域とし、他のアドレス領域をセキュア領域のアドレス領域とする。
ディスプレイ205は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。たとえば、ディスプレイ205は、TFT液晶ディスプレイなどを採用することができる。
キーボード206は、文字、数字、各種指示などの入力のためのキーを有し、データの入力を行う。また、キーボード206は、タッチパネル式の入力パッドやテンキーなどであってもよい。
メモリコントローラ211は、不揮発性メモリ202へのアクセスを制御する装置である。メモリコントローラ212は、揮発性メモリ203へのアクセスを制御する装置である。また、I/Fコントローラ213は、I/F204へのアクセスを制御する装置である。たとえば、メモリコントローラ211は、不揮発性メモリ202へのアクセスを検出した場合、MCUの状態と、アクセス先のアドレスとを取得して、アクセスを許可するか拒否するかを判断する。具体的な判断内容については、図10にて後述する。また、以下、メモリコントローラ211〜I/Fコントローラ213を総称して、「コントローラ」と呼称する。
MCU221は、セキュアモジュール102の全体の制御を司る演算処理装置である。不揮発性メモリ222は、ブートプログラムやセキュアFW(FirmWare)などのプログラムを記憶するメモリである。セキュアFWは、セキュアモジュール102を制御するファームウェアである。揮発性メモリ223は、MCU221のワークエリアとして使用される揮発性メモリである。演算回路224は、暗号化処理、復号処理、ハッシュ値算出処理等を行う回路である。
(コンピュータシステム200の機能)
次に、コンピュータシステム200の機能について説明する。図3は、実施の形態1にかかるコンピュータシステムの機能構成例を示すブロック図である。コンピュータシステム200は、記憶部111と、送信部311と、第1検証部312と、第1停止部313と、復号部321と、特徴量算出部322と、生成部323と、レスポンスデータ算出部324と、第2検証部325と、第2停止部326と、を含む。
送信部311は、情報処理装置101のブートプログラムに含まれる機能である。第1検証部312と、第1停止部313とは、情報処理装置101が実行するセキュアサービス302に含まれる機能である。ブートプログラムやセキュアサービス302は、記憶装置に記憶されたプログラムをMCU201が実行することにより、送信部311〜第1停止部313の機能を実現する。記憶装置とは、具体的には、たとえば、図2に示した不揮発性メモリ202などである。セキュアサービス302は、図1に示した第1の検証処理104に相当する。
また、復号部321〜第2停止部326は、セキュアモジュール102が実行するセキュアFW301に含まれる機能である。セキュアFW301は、記憶装置に記憶されたプログラムをMCU221が実行することにより、復号部321〜第2停止部326の機能を実現する。記憶装置とは、具体的には、たとえば、図2に示した不揮発性メモリ222などである。セキュアFW301は、図1に示した第2の検証処理105に相当する。
記憶部111は、セキュアサービス302の実行コードの特徴を抽出した第1の特徴量およびセキュアサービス302を認証する認証処理の実行コードの両方またはいずれか一方を記憶する。また、記憶部111は、揮発性メモリ203のセキュア領域に存在する。
また、記憶部111は、セキュアサービス302の実行コードが暗号化された暗号化コードと暗号化コードを復号可能な復号鍵を記憶していてもよい。セキュアサービス302の実行コードの暗号化方式は、共通鍵方式でもよいし、公開鍵方式でもよい。ここで、復号鍵は、セキュアサービス302の実行コードの暗号化方式が、共通鍵方式であれば、暗号鍵と同一のものとなる。公開鍵方式であれば、復号鍵は、暗号鍵に対応するものとなる。
送信部311は、情報処理装置101が記憶する、セキュアサービス302が暗号化された暗号化コードをセキュアモジュール102に送信する。
第1検証部312は、情報処理装置101により実行中のアプリ103がセキュアな状態であるか否かを検証するセキュアサービス302を実行する。
また、第1検証部312は、送信部311が暗号化コードを送信した結果、セキュアモジュール102が送信したセキュアサービス302の実行コードに従って、アプリ103がセキュアな状態であるか否かを検証してもよい。なお、検証結果は、揮発性メモリ203のセキュア領域に格納される。
第1停止部313は、アプリ103がセキュアな状態でないと第1検証部312が検証した場合、アプリ103の実行を停止させる。具体的なアプリ103の停止方法については、図6にて後述する。
復号部321は、セキュアサービス302の実行コードが暗号化された暗号化コードから、復号鍵を用いてセキュアサービス302の実行コードを復号する。なお、復号されたセキュアサービス302の実行コードは、セキュアサービス302に送信される。
特徴量算出部322は、第1検証部312によって実行中のセキュアサービス302の実行コードの特徴を抽出した第2の特徴量を算出する。なお、算出した第2の特徴量は、揮発性メモリ203のセキュア領域に格納される。
また、特徴量算出部322は、復号部321が復号したセキュアサービス302の実行コードの特徴を抽出した第1の特徴量を算出して記憶部111に格納してもよい。
生成部323は、認証処理の実行コードに従って、セキュアサービス302を認証するチャレンジ乱数を生成する。生成したチャレンジ乱数は、揮発性メモリ223に格納される。
レスポンスデータ算出部324は、認証処理の実行コードに従って、生成部323が生成したチャレンジ乱数に基づいて第1のレスポンスデータを算出する。算出した第1のレスポンスデータは、揮発性メモリ223に格納される。
第2検証部325は、記憶部111の記憶内容に基づいて、第1検証部312により実行中のセキュアサービス302がセキュアな状態であるか否かを検証するセキュアFW301を実行する。
また、第2検証部325は、特徴量算出部322が算出した第2の特徴量と、記憶部111に記憶された第1の特徴量とを比較することにより、実行中のセキュアサービス302がセキュアな状態であるか否かを検証してもよい。たとえば、第2検証部325は、第2の特徴量と第1の特徴量が一致すれば、セキュアサービス302がセキュアな状態であると検証する。
また、第2検証部325は、特徴量算出部322が算出した第2の特徴量と、特徴量算出部322が算出して記憶部に格納した第1の特徴量とを比較することにより、実行中のセキュアサービス302がセキュアな状態であるか否かを検証してもよい。
また、セキュアFW301が第1検証部312にチャレンジ乱数を送信したとする。このとき、セキュアFW301は、実行中のセキュアサービス302がチャレンジ乱数に基づいて、第2のレスポンスデータを算出する。そして、第2検証部325は、第2のレスポンスデータと、レスポンスデータ算出部324が算出した第1のレスポンスデータとを比較することにより、実行中のセキュアサービス302がセキュアな状態であるか否かを検証してもよい。なお、検証結果は、揮発性メモリ223に格納される。
第2停止部326は、第2検証部325が第1検証部312により実行中のセキュアサービス302がセキュアな状態でないと検証した場合、第1検証部312によるセキュアサービス302の実行を停止させる。セキュアサービス302の停止方法については、図7にて後述する。
続けて、図4と図5を用いて、コンピュータシステム200の処理シーケンスを示す。MCU201は、セキュアサービス302とアプリ103という2種類のプログラムを実行する。セキュアサービス302は、MCU201がセキュア状態の時に動作するプログラムであり、アプリ103のロードや改ざんから保護する役割を担う。
図4は、コンピュータシステムの処理の一例を示すシーケンス図(その1)である。MCU201は、リセット解除時にセキュア状態で起動する。MCU201は、ブートプログラムを起動する(ステップS401)。また、セキュアモジュール102は、セキュアFW301を起動する(ステップS402)。
ブートプログラムの起動完了後、セキュア状態のMCU201は、セキュア状態であることをセキュアモジュール102に認証してもらうために、チャレンジレスポンス方式による認証処理を行う。認証ができたら、セキュア状態のMCU201は、セキュアモジュール102との通信を盗聴から保護するためにセッション鍵Aを生成し、セキュアモジュール102上で動作するセキュアFW301と共有する。長期間同じ鍵を使用することで鍵を特定されるリスクを避けるため、セキュア状態のMCU201は、セッション鍵Aをブートの度に生成し直す。
認証処理からセッション鍵生成までを、ステップS403〜ステップS413を用いて説明する。セキュア状態のMCU201は、セッション鍵A生成用チャレンジデータの生成依頼を送信する(ステップS403)。セッション鍵A生成用チャレンジデータの生成依頼を受信したセキュアFW301は、チャレンジデータCA1を生成する(ステップS404)。CA1は、たとえば、16[バイト]の乱数である。次に、セキュアFW301は、CA1を送信する(ステップS405)。続けて、セキュアFW301は、CA1から、認証データMA1を算出する(ステップS406)。MA1は、たとえば、AES(Advanced Encryption Standard)−MAC(Message Authentication Code)方式を用いて、CA1を用いて算出した値である。
CA1を受信したセキュア状態のMCU201は、CA1から、MA1を算出する(ステップS407)。同時に、セキュア状態のMCU201は、チャレンジデータCA2を生成する(ステップS408)。CA2は、たとえば、16[バイト]の乱数である。そして、セキュア状態のMCU201は、MA1と、CA2とを送信する(ステップS409)。また、CA2を生成後、セキュア状態のMCU201は、CA1とCA2とから、セッション鍵Aを生成する(ステップS410)。たとえば、セキュア状態のMCU201は、CA1とCA2とをXORした上で、16[バイト]のセッション鍵A算出鍵で暗号化した結果を、16[バイト]のセッション鍵Aとして使用する。
MA1と、CA2とを受信したセキュアFW301は、受信したMA1と生成したMA1とから、認証成功か否かを検証する(ステップS411)。続けて、セキュアFW301は、MCU201にMA1の検証結果を送信する(ステップS412)。また、セキュアFW301は、CA1とCA2とから、セッション鍵Aを生成する(ステップS413)。
ステップS413までの処理により、セッション鍵Aの生成が終了したため、MCU201は、セキュアサービス302を起動して、以降の処理は、セキュアサービス302が実行する。セキュアサービス302は、セッション鍵Aを利用するため、セキュア状態のMCU201のブートプログラムは、揮発性メモリ203のセキュア領域にセッション鍵Aを格納してセキュアサービス302が取得する。これにより、情報処理装置101は、セッション鍵Aを第三者に取得される可能性を低減して、第三者からのアクセスを防ぐ。
セキュアサービス302を起動するまでを、ステップS414〜ステップS418を用いて説明する。セキュア状態のMCU201は、セキュアサービス302の復号依頼を送信する(ステップS414)。セキュアサービス302の復号依頼には、セキュアサービス302の実行コードが暗号化された暗号化コードが含まれる。セキュアサービス302の復号依頼を受信したセキュアFW301は、セキュアサービス302の暗号化コードを復号する(ステップS415)。続けて、セキュアFW301は、セッション鍵Aを用いて、セキュアサービス302の署名データを生成する(ステップS416)。署名データは、ここで、セキュアサービス302の署名データは、セキュアサービス302の実行コードをセッション鍵Aを用いて算出したハッシュ値である。
次に、セキュアFW301は、セキュアサービス302を展開する(ステップS417)。セキュア状態のMCU201は、セキュアサービス302を起動する(ステップS418)。セキュアサービス302の起動後の処理について、図5を用いて説明する。
図5は、コンピュータシステムの処理の一例を示すシーケンス図(その2)である。セキュアサービス302は、セキュア状態に対して周期的に発生するタイマー割込みを起動する(ステップS501)。タイマー割込みは非セキュア状態のMCU201が実行するプログラムからはマスクできない様に設定される。これにより、セキュアサービス302による監視を有効にすることができる。
続けて、セキュアサービス302は、非セキュア状態のMCU201のブートプログラムに、セッション鍵Bを埋め込む(ステップS502)。セッション鍵Bは、たとえば、非セキュア状態のMCU201が起動する度に生成する16[バイト]の乱数である。また、具体的なセッション鍵Bの埋め込み方としては、非セキュア状態のMCU201のブートプログラムの末尾にセッション鍵Bそのものを追加してもよいし、セッション鍵Bを所定の値でXORした値を追加してもよい。そして、セキュアサービス302は、セッション鍵Bを埋め込んだ非セキュア状態のMCU201のブートプログラムを、揮発性メモリ203の非セキュア領域に展開する(ステップS503)。
非セキュア状態のMCU201のブートプログラムが展開された後、非セキュア状態のMCU201は、非セキュア状態のMCU201のブートプログラムを起動する(ステップS504)。
ブートプログラムを起動後、非セキュア状態のMCU201は、コンピュータシステム200の利用者の操作等によるアプリ103の起動要求を検出する(ステップS505)。アプリ103の実行コードは、予め暗号化されて不揮発性メモリ202の非セキュア領域に格納されている。また、復号する鍵は、セキュアモジュール102に格納されている。アプリ103が不揮発性メモリ202の非セキュア領域に格納される処理およびアプリ103の実行コードを復号する鍵がセキュアモジュール102に格納される処理については、図11にて後述する。
アプリ103の起動要求を検出した非セキュア状態のMCU201は、セキュア状態のMCU201にアプリ103の復号要求を依頼する(ステップS506)。アプリ103の復号要求の依頼を受け付けたセキュア状態のMCU201は、アプリ103の復号用鍵と、署名生成用の鍵との提供依頼を送信する(ステップS507)。アプリ103の復号用鍵と、署名生成用の鍵との提供依頼を受信したセキュアFW301は、アプリ103の署名生成用鍵を生成する(ステップS508)。なお、セキュアFW301は、アプリ103の署名生成用鍵について、アプリ103起動の度に変更して、長期間同じ鍵を用いるリスクを低減させる。次に、セキュアFW301は、アプリ103の復号用鍵と、アプリ103の署名生成用鍵とをセキュア状態のMCU201に送信する(ステップS509)。
アプリ103の復号用鍵と、アプリ103の署名生成用鍵とを受信したセキュア状態のMCU201は、アプリ103の復号用鍵を用いて、アプリ103を復号する(ステップS510)。続けて、セキュア状態のMCU201は、アプリ103の署名生成用鍵を用いて、アプリ103の署名データを生成する(ステップS511)。ステップS511について、具体的には、たとえば、セキュア状態のMCU201は、復号したアプリ103の実行コードを4バイトごとにアプリ103の署名生成用鍵により算出した値を結合して、署名データとする。
アプリ103の署名データを生成後、セキュア状態のMCU201は、復号したアプリ103を揮発性メモリ203の非セキュア領域に展開する(ステップS512)。復号したアプリ103が展開された後、非セキュア状態のMCU201は、アプリ103を起動する(ステップS513)。
ステップS512について、アプリ103の展開については、サブルーチン単位でセッション鍵Bとは異なる鍵で難読化しておき、難読化の関数が呼び出される時に、セキュアサービス302は、関数を復号し、実行完了後は再度難読化してもよい。アプリ103の難読化については、図9にて後述する。または、難読化の代わりに、保護対象の関数自体をブート時のロード対象から除外し、関数がコールされる時に、セキュアサービス302が、ロードを行い、実行後はメモリ領域を乱数などで上書きしてコードをクリアすることとしてもよい。難読化を行う鍵は、セキュアサービス302のみが知る鍵であり、揮発性メモリ203のセキュア領域に格納される。
図6は、アプリの改ざん検証処理の一例を示すシーケンス図である。アプリの改ざん検証処理はセキュアサービス302が実行する。ただし、数百〜数千回に一回程度、または、セキュアFW301が任意に指定するタイミングにおいて、セキュアFW301は、直接、アプリの改ざん検証処理を行うこととしてもよい。
セキュアFW301は、セキュアサービス302に、アプリの改ざん検証指示を送信する(ステップS601)。署名検証指示を受信したセキュアサービス302は、非セキュア領域のアプリ103の実行コードを取得する(ステップS602)。次に、セキュアサービス302は、アプリに対する改ざん検証処理を実行する(ステップS603)。改ざん検証処理の詳細については、図12に後述する。続けて、セキュアサービス302は、セキュアFW301に検証結果を送信する(ステップS604)。
ステップS603の処理結果について、改ざんされていないという検証結果を得た場合、セキュアサービス302は、アプリ103の動作の継続を許可する。一方、改ざんされたという検証結果または検証失敗という検証結果を得た場合、セキュアサービス302は、アプリ103の実行を停止させる。
具体的なアプリ103の動作の停止方法について、たとえば、セキュアサービス302は、揮発性メモリ203に展開されたアプリ103の実行コードを0等により上書きする、後述する図9の処理において、難読化された実行コードの復号を行わない、等がある。ここで、セキュアサービス302が単にアプリ103に停止要求を送信しないのは、アプリ103が第3者に改ざんされており、アプリ103に停止要求を送信しても、アプリ103が停止するとは限らないためである。
アプリの改ざん検証処理について、セキュアFW301は、対象となるアプリ103全体のハッシュ値算出を常時行わないため、演算回路224による演算ではなく、ソフトウェアによるハッシュ値算出としてよいので、セキュアFW301のコストを低減できる。また、セキュアFW301は、アプリ103全体のハッシュ値算出を常時行わないため、揮発性メモリ223にアプリ103の実行コードを格納しないので、揮発性メモリ223のサイズを低減することができて、セキュアモジュール102のコストを低減できる。
なお、図5で前述した通り、アプリ103の一部は難読化またはロードされていない場合がある。アプリ103の一部が暗号化されている場合、セキュアサービス302は、暗号化されている状態でハッシュ値の算出を行う。ロードされてない場合、セキュアサービス302は、ロードされていないアプリ103を、ハッシュ値の算出の対象外にする。
図7は、セキュアサービスの改ざん検証処理の一例を示すシーケンス図である。セキュアサービス302の改ざん検証処理は、セキュアFW301が実行する。セキュアFW301は、不揮発性メモリ202のセキュア領域のセキュアサービス302の実行コードを取得する(ステップS701)。次に、セキュアFW301は、セキュアサービス302に対する改ざん検証処理を実行する(ステップS702)。改ざん検証処理の詳細については、図12に後述する。
ステップS702の処理結果について、改ざんされていないという検証結果を得た場合、セキュアFW301は、セキュアサービス302の動作の継続を許可する。一方、改ざんされたという検証結果または検証失敗という検証結果を得た場合、セキュアFW301は、セキュアサービス302の実行を停止させる。また、セキュアFW301は、セキュアサービス302の実行を停止させるとともに、アプリ103の実行を停止させてもよい。これにより、コンピュータシステム200は、アプリ103が扱う情報の流出を最小限に抑えることができる。
図8は、セキュアサービスおよびアプリの認証処理の一例を示すシーケンス図である。セキュアサービスおよびアプリの認証処理は、たとえば1分ごとに、定期的に実行される。セキュアFW301は、Seedを生成して、Seedをチャレンジ乱数Aとして記憶する(ステップS801)。チャレンジ乱数Aは、たとえば、16[バイト]の乱数である。
次に、セキュアFW301は、セキュアサービス302に、認証処理の実行要求を、チャレンジ乱数Aを含めて送信する(ステップS802)。続けて、セキュアFW301は、チャレンジ乱数AからレスポンスデータAを算出する(ステップS803)。レスポンスデータAは、たとえば、チャレンジ乱数Aに、ある固定値を用いて算出した16[バイト]の値である。セキュアモジュール102は、Seedの生成アルゴリズムやある固定値により加工するアルゴリズムを内部に秘匿しておくことにより、外部への流出を防ぐ。
認証処理の実行要求を受信したセキュアサービス302は、チャレンジ乱数Aから、別の固定値で加工して、チャレンジ乱数Bを生成する(ステップS804)。次に、セキュアサービス302は、アプリ103にチャレンジ乱数Bを送信する(ステップS805)。続けて、セキュアサービス302は、チャレンジ乱数BからレスポンスデータBを算出する(ステップS806)。
チャレンジ乱数Bを受信したアプリ103は、チャレンジ乱数BからレスポンスデータBを算出する(ステップS807)。続けて、アプリ103は、セキュアサービス302に、レスポンスデータBを送信する(ステップS808)。
レスポンスデータBを受信したセキュアサービス302は、算出したレスポンスデータBと、受信したレスポンスデータBとから、認証成功か否かを検証する(ステップS809)。ステップS809の処理について、認証成功という検証結果を得た場合、認証成功であるとして、セキュアサービス302は、アプリ103の動作の継続を許可する。一方、認証失敗という検証結果または検証失敗という検証結果を得た場合、認証失敗であるとして、セキュアサービス302は、アプリ103の実行を停止させる。
また、チャレンジ乱数Aを受信したセキュアサービス302は、チャレンジ乱数AからレスポンスデータAを算出する(ステップS810)。次に、セキュアサービス302は、セキュアFW301に、レスポンスデータAを送信する(ステップS811)。
レスポンスデータAを受信したセキュアFW301は、算出したレスポンスデータAと、受信したレスポンスデータAとから、認証成功か否かを検証する(ステップS812)。ステップS812の処理について、認証成功という検証結果を得た場合、認証成功であるとして、セキュアFW301は、セキュアサービス302の動作の継続を許可する。一方認証失敗という検証結果または検証失敗という検証結果を得た場合、認証失敗であるとして、セキュアFW301は、セキュアサービス302の実行を停止させる。
なお、アプリの認証処理を行う場合、アプリ103には、アプリ103の開発者等によりセキュア化ツールにより認証処理を行う実行コードが埋め込まれているものとする。たとえば、埋め込まれた認証処理があるスレッドであり、あるスレッドは、ステップS805によるチャレンジ乱数Bを待ち受ける。チャレンジ乱数Bを受け付けると、あるスレッドは、ステップS807と、ステップS808との処理を実行する。ステップS808の処理終了後、あるスレッドは、再びステップS805によるチャレンジ乱数Bを待ち受ける。
図9は、アプリの難読化対象部分の実行処理の一例を示すシーケンス図である。アプリ103は、難読化された実行コードを検出する(ステップS901)。次に、アプリ103は、難読化された実行コードの解除要求を送信する(ステップS902)。
解除要求を受信したセキュアサービス302は、アプリおよびセキュアサービスに対する改ざん検証処理の検証結果と、アプリおよびセキュアサービスに対する認証検証処理の検証結果と、を確認する(ステップS903)。
アプリおよびセキュアサービスに対する改ざん検証処理がともに改ざんされていないという検証結果であり、かつアプリおよびセキュアサービスに対する認証検証処理がともに認証成功という検証結果であれば、セキュアサービス302は、難読化の解除を続行する。一方、前述の条件を満たさなければ、セキュアサービス302は、難読化の解除を停止する。
難読化の解除を続行する場合、セキュアサービス302は、解除要求を受けた実行コードを読み込む(ステップS904)。次に、セキュアサービス302は、難読化された実行コードを解除する(ステップS905)。続けて、セキュアサービス302は、難読化解除後の実行コードを展開する(ステップS906)。次に、セキュアサービス302は、アプリ103に解除完了を通知する(ステップS907)。
解除完了の通知を受けたアプリ103は、難読化解除後の実行コードを実行する(ステップS908)。実行完了後、アプリ103は、セキュアサービス302に難読化解除後の実行コードの実行終了を通知する(ステップS909)。ステップS909の処理について、アプリ103からの難読化解除後の実行コードの実行終了が一定期間を越えて通知されない場合、セキュアサービス302は、セキュア状態に強制的に戻し、アプリ103の実行を停止させることにより、セキュリティを保つ。
難読化解除後の実行コードの実行終了の通知を受けたセキュアサービス302は、セキュアFW301に、新たな難読化方式の決定要求を送信する(ステップS910)。新たな難読化方式の決定要求を受信したセキュアFW301は、新たな難読化方式を決定する(ステップS911)。次に、セキュアFW301は、セキュアサービス302に、決定した難読化方式を送信する(ステップS912)。
難読化方式の例としては、ゼロクリア、乱数での排他的論理和、または、ゼロクリアと乱数での排他的論理和との組み合わせ等がある。たとえば、ゼロクリアを行う場合、セキュアサービス302は、揮発性メモリ203の非セキュア領域に展開された実行コードを0で塗りつぶす。ゼロクリアした実行コードを再度実行する場合、セキュアサービス302は、不揮発性メモリ202にある実行コードを取得して、塗りつぶされた領域に、取得した実行コードを書き込む。
決定した難読化方式を受信したセキュアサービス302は、新たな難読化方式により、難読化解除後の実行コードを再難読化する(ステップS913)。次に、セキュアサービス302は、再難読化後の実行コードを展開する(ステップS914)。再難読化後の実行コードの展開終了後、セキュアサービス302は、アプリ103に、再難読化完了を通知する(ステップS915)。
図10は、コントローラの動作処理手順の一例を示すフローチャートである。コントローラはMCU201の状態と、アクセス先のアドレスまたはI/Fの状態とを監視する。コントローラは、両者の組み合わせによって、アクセスの可否を判定する。
コントローラは、アクセス先へのアクセスを検出する(ステップS1001)。次に、コントローラは、MCU201の状態とアクセス先のアドレス領域との組み合わせが次に示すいずれに一致するかを判断する(ステップS1002)。組み合わせは、MCU201の状態がセキュア状態と非セキュア状態との2つあり、アクセス先がセキュア領域と非セキュア領域との2つあるため、全部で4つある。
MCU201の状態がセキュア状態であり、かつアクセス先のアドレス領域がセキュア領域である場合(ステップS1002:セキュア状態、セキュア領域)、コントローラは、アクセス先へのアクセスを許可する(ステップS1003)。
MCU201の状態が非セキュア状態であり、かつアクセス先のアドレス領域がセキュア領域である場合(ステップS1002:非セキュア状態、セキュア領域)、コントローラは、アクセス先へのアクセスを拒否する(ステップS1004)。
MCU201の状態がセキュア状態であり、かつアクセス先のアドレス領域が非セキュア領域である場合(ステップS1002:セキュア状態、非セキュア領域)、コントローラは、アクセス先へのアクセスを許可する(ステップS1005)。
MCU201の状態が非セキュア状態であり、かつアクセス先のアドレス領域が非セキュア領域である場合(ステップS1002:非セキュア状態、非セキュア領域)、コントローラは、アクセス先へのアクセスを許可する(ステップS1006)。
ステップS1003〜ステップS1006のいずれかの処理終了後、コントローラは、動作を終了する。コントローラの動作処理を実行することにより、コンピュータシステム200は、非セキュアモードで実行する悪意のあるソフトウェアからの不正アクセスを防止することができる。
図11は、アプリの暗号化処理手順の一例を示すフローチャートである。アプリの暗号化処理は、アプリ103を開発した後に行う処理であり、アプリ103を暗号化する処理である。また、アプリの暗号化処理を行う装置は、コンピュータシステム200とは異なる装置であり、コンピュータシステム200向けの実行コードを生成するクロスコンパイラがインストールされた装置である。以下、クロスコンパイラがインストールされた装置を、「クロスコンパイラ装置」と呼称する。
クロスコンパイラ装置は、セキュア化ツールが提供するライブラリを含めてアプリ103のソースコードをコンパイル、リンクする(ステップS1101)。セキュア化ツールが提供するライブラリは、図8と図9とで説明した、アプリ103が行う処理の実行コードを含むライブラリである。
次に、クロスコンパイラ装置は、リンクにより生成されたアプリ103を、セキュア化ツールにより暗号化する(ステップS1102)。暗号化を行う際には、たとえばアプリ103の開発者によって決められた、アプリ103復号用鍵のSeedを用いて生成された暗号鍵を用いて、クロスコンパイラ装置は、アプリ103を暗号化する。
続けて、クロスコンパイラ装置は、アプリ103復号用の鍵と、暗号化したアプリ103とを出力する(ステップS1103)。アプリ103復号用の鍵は、たとえば、アプリ103がAES暗号といった共通鍵暗号方式で暗号化されていれば、暗号鍵と同一のものとなる。
クロスコンパイラ装置は、開発者の操作により、暗号化したアプリ103を、たとえば、アプリ103配布サイトに登録する。また、クロスコンパイラ装置は、開発者の操作により、アプリ103復号用の鍵をセキュアモジュール102内に格納する。
コンピュータシステム200の利用者は、セキュアモジュール102を含むコンピュータシステム200を購入する。購入後、コンピュータシステム200は、コンピュータシステム200の利用者の操作により、アプリ配布サイトから暗号化したアプリ103を取得する。これにより、コンピュータシステム200は、本実施の形態にかかるセキュアな状態を保障するアプリ103を実行することができる。
図12は、改ざん検証処理手順の一例を示すフローチャートである。改ざん検証処理は、アプリ103またはセキュアサービス302が改ざんされていないか否かを検証する処理である。アプリに対する改ざん検証処理は、セキュアサービス302が実行する。また、セキュアサービス302に対する改ざん検証処理は、セキュアFW301が実行する。図12の説明では、セキュアサービス302に対する改ざん検証処理を例にして説明する。
セキュアFW301は、改ざん検証を開始する開始時刻を記憶する(ステップS1201)。次に、セキュアFW301は、対象の実行コードのうち、先頭の4[Kバイト]を読み込む(ステップS1202)。ここで、対象の実行コードとは、セキュアサービス302の実行コードとなる。一方、アプリに対する改ざん検証処理であれば、対象の実行コードとは、アプリ103の実行コードとなる。
続けて、セキュアFW301は、読み込んだ実行コードから、署名データを生成する(ステップS1203)。ここで、セキュアFW301は、セッション鍵Aを用いて署名データを生成する。一方、アプリに対する改ざん検証処理であれば、セキュアサービス302は、ステップS508で生成された鍵を用いて署名データを生成する。
次に、セキュアFW301は、起動時の署名データと生成した署名データを比較する(ステップS1204)。ここで、起動時の署名データとは、セキュアサービス302起動時となる、ステップS416の処理にて生成した署名データである。一方、アプリに対する改ざん検証処理であれば、起動時の署名データは、アプリ103起動時となる、ステップS511の処理にて生成した署名データである。
続けて、セキュアFW301は、起動時の署名データと生成した署名データとが一致したか否かを判断する(ステップS1205)。起動時の署名データと生成した署名データとが一致しない場合(ステップS1205:No)、セキュアFW301は、改ざんされたという検証結果を出力する(ステップS1206)。改ざんされたという検証結果を得た場合、対象の実行コードは、セキュアな状態でないと検証されたことになる。
起動時の署名データと生成した署名データとが一致した場合(ステップS1205:Yes)、セキュアFW301は、続けて、実行コード全てを比較したか否かを判断する(ステップS1207)。実行コード全てを比較した場合(ステップS1207:Yes)、セキュアFW301は、改ざんされていないという検証結果を出力する(ステップS1208)。改ざんされていないという検証結果を得た場合、対象の実行コードは、セキュアな状態であると検証されたことになる。
まだ実行コードのうち比較していない部分がある場合(ステップS1207:No)、セキュアFW301は、続けて、現在時刻−開始時刻が上限時間より大きいか否かを判断する(ステップS1209)。現在時刻−開始時刻が上限時間以下である場合(ステップS1209:No)、セキュアFW301は、次の4[Kバイト]を読み込む(ステップS1210)。そして、セキュアFW301は、ステップS1203の処理に移行する。
現在時刻−開始時刻が上限時間より大きい場合(ステップS1209:Yes)、セキュアFW301は、検証失敗という検証結果を出力する(ステップS1211)。検証失敗という検証結果を得た場合、対象の実行コードは、セキュアな状態でないと検証されたことになる。また、現在時刻−開始時刻が上限時間より大きくなる場合とは、たとえば、不正なアプリ等により、メモリのアクセスが頻繁に発生した結果、図12に示すフローチャートの処理が遅延してしまった場合である。
ステップS1206、ステップS1208、またはステップS1211の処理終了後、セキュアFW301は、改ざん検証処理を終了する。改ざん検証処理を実行することにより、コンピュータシステム200は、対象の実行コードが改ざんされたか否かを検証することができる。
図13は、認証処理手順の一例を示すフローチャートである。認証処理は、アプリ103またはセキュアサービス302が正当な通信相手か否かを検証する処理である。アプリに対する認証処理は、セキュアサービス302が実行する。また、セキュアサービスに対する認証処理は、セキュアFW301が実行する。図13の説明では、セキュアサービス302に対する認証処理を例にして説明するとともに、アプリに対する認証処理も併せて説明を行う。
セキュアFW301は、認証を開始する開始時刻を記憶する(ステップS1301)。次に、セキュアFW301は、チャレンジ乱数を生成する(ステップS1302)。具体的に、セキュアFW301は、セキュアモジュール102内の認証処理の実行コードに従って、チャレンジ乱数Aを生成する。一方、アプリに対する認証処理の場合、セキュアサービス302は、受信したチャレンジ乱数Aに基づいて、チャレンジ乱数Bを生成する。
続けて、セキュアFW301は、チャレンジ乱数を送信する(ステップS1303)。具体的に、セキュアFW301は、チャレンジ乱数Aをセキュアサービス302に送信する。一方、アプリに対する認証処理の場合、セキュアサービス302は、チャレンジ乱数Aをアプリ103に送信する。
次に、セキュアFW301は、レスポンスデータを受信するまで待機する(ステップS1304)。具体的に、セキュアFW301は、セキュアサービス302からレスポンスデータAを受信するまで待機する。一方、アプリに対する認証処理の場合、セキュアサービス302は、アプリ103からレスポンスデータBを受信するまで待機する。
続けて、セキュアFW301は、現在時刻−開始時刻が上限時間より大きいか否かを判断する(ステップS1305)。現在時刻−開始時刻が上限時間以下である場合(ステップS1305:No)、セキュアFW301は、チャレンジ乱数から、レスポンスデータを算出する(ステップS1306)。具体的に、セキュアFW301は、チャレンジ乱数Aから、レスポンスデータAを算出する。一方、アプリに対する認証処理の場合、セキュアサービス302は、チャレンジ乱数Bから、レスポンスデータBを算出する。
次に、セキュアFW301は、受信したレスポンスデータと算出したレスポンスデータを比較する(ステップS1307)。具体的に、セキュアFW301は、セキュアサービス302から受信したレスポンスデータAと算出したレスポンスデータAを比較する。一方、アプリに対する認証処理の場合、セキュアサービス302は、アプリ103から受信したレスポンスデータBと算出したレスポンスデータBを比較する。
続けて、セキュアFW301は、受信したレスポンスデータと算出したレスポンスデータとが一致したか否かを判断する(ステップS1308)。受信したレスポンスデータと算出したレスポンスデータとが一致した場合(ステップS1308:Yes)、セキュアFW301は、認証成功という検証結果を出力する(ステップS1309)。
一方、受信したレスポンスデータと算出したレスポンスデータとが一致していない場合(ステップS1308:No)、または、現在時刻−開始時刻が上限時間より大きい場合(ステップS1305:Yes)、セキュアFW301は、認証失敗という検証結果を出力する(ステップS1310)。
ステップS1305:Yesとなる場合の例としては、悪意のあるアプリによって制御が奪われた場合である。たとえば、セキュアサービス302の実行コードに、バッファーオーバーランを起こす可能性があったとする。この時、悪意のあるアプリは、バッファーオーバーランによって、セキュアサービス302に、悪意のあるアプリが指定した実行コードを実行させることが可能になる場合がある。この場合、セキュアサービス302は、レスポンスデータAをセキュアFW301に送信しなくなる。なお、バッファーオーバーランでは、実行コードの改ざんは行われていないため、図12に示す改ざん検証処理は、改ざんされていないという検証結果となる。
ステップS1309またはステップS1310の処理終了後、セキュアFW301は、認証処理を終了する。認証処理を実行することにより、コンピュータシステム200は、アプリ103またはセキュアサービス302が正当な通信相手か否かを検証することができる。
以上説明したように、コンピュータシステム200によれば、アプリ103の正当性を検証する処理を情報処理装置101が実行し、アプリ103の正当性を検証する処理の正当性をセキュアモジュール102が検証する。これにより、コンピュータシステム200は、セキュアモジュール102の処理負荷を抑制しつつセキュアな状態でアプリ103を実行できる。
また、コンピュータシステム200によれば、セキュアサービス302の実行コードの特徴量を記憶しておき、実行中のセキュアサービス302の実行コードの特徴量と比較することにより、セキュアサービス302がセキュアな状態か否かを検証してもよい。これにより、コンピュータシステム200は、セキュアサービス302の実行コードが改ざんされてセキュアな状態にないのか、またはセキュアサービス302の実行コードが改ざんされておらずセキュアな状態であるかを特定できる。そして、コンピュータシステム200は、セキュアサービス302がセキュアな状態であれば、セキュアサービス302によりアプリ103がセキュアな状態か否かを検証することができる。
また、コンピュータシステム200によれば、セキュアサービス302が暗号化された暗号化コードを記憶しており、暗号化コードを復号して、復号した際のセキュアサービス302の実行コードの特徴量を記憶しておいてもよい。ここで、暗号化コードに改ざんを行うと、復号しても正常に戻せないため、暗号化コードに改ざんすることは難しい。したがって、復号した際のセキュアサービス302の実行コードは改ざんされていないことが保障でき、コンピュータシステム200は、改ざんの可能性がない実行コードの特徴量に基づいて、セキュアサービス302の改ざん検証や、認証処理を行うことができる。
また、コンピュータシステム200によれば、セキュアサービス302が暗号化された暗号化コードを記憶しており、情報処理装置101は、暗号化コードを復号した際のセキュアサービス302の実行コードに従って、アプリがセキュアな状態かを検証してもよい。これにより、コンピュータシステム200は、改ざんの可能性がないセキュアサービス302の実行コードに従って、アプリ103の改ざん検証や、認証処理を行うことができる。
また、コンピュータシステム200によれば、セキュアFW301がチャレンジレスポンス方式による認証によって、セキュアサービス302が正当な通信相手であり、セキュアサービス302がセキュアな状態であるか否かを検証してもよい。これにより、コンピュータシステム200は、セキュアサービス302が、実行コードを改ざんせずに制御を奪う攻撃を受けた場合も、セキュアな状態にないと特定することができる。
また、コンピュータシステム200によれば、セキュアサービス302がセキュアな状態でないと検証した場合、セキュアサービス302の実行を停止させてもよい。これにより、コンピュータシステム200は、不正な動作を行う可能性があるセキュアサービス302を停止し、情報の流出を最小限に抑えることができる。
また、実施の形態1にかかるコンピュータシステム200は、改ざん検証処理をセキュアサービス302とセキュアFW301とに分散して実施するため、情報処理装置101とセキュアモジュール102間の通信量を低減することができる。すなわち、より低速なIOを有するセキュアモジュール102であっても、強度の高いセキュリティを実現できることとなり、セキュアモジュール102のコスト低減とセキュリティとを両立することができる。
このように、セキュアモジュール102が行う処理内容が減少することから、暗号復号およびハッシュ処理を行う回路を追加搭載することなくソフトウェア処理で代替えすることも可能になり、より低コストにセキュアモジュール102を実現することができる。
また、コンピュータシステム200は、特に重要な情報を、第三者がアクセスできないセキュアモジュール102内に秘匿しつつ、セキュア状態のMCU201に認証、改ざん検出、難読化を担わせることが可能となり高いセキュリティを保つことができる。
(実施の形態2の説明)
実施の形態2にかかるコンピュータシステムは、セキュアモジュール102が挿抜可能であるシステムである。なお、実施の形態1において説明した箇所と同様の箇所については、同一符号を付して図示および説明を省略する。
図14は、実施の形態2にかかるコンピュータシステムの構成例を示すブロック図である。コンピュータシステム1400は、情報処理装置1401とセキュアモジュール1402とを含む。
情報処理装置1401は、MCU201〜I/Fコントローラ213と、挿抜検出機構1411とを含む。挿抜検出機構1411は、I/F204と接続する。セキュアモジュール1402は、MCU221〜演算回路224を含む。MCU221〜演算回路224は、バス1412によって接続される。
挿抜検出機構1411は、セキュアモジュール1402が挿入された状態と抜かれた状態との検出と、挿入された状態から抜かれた状態への変化と、抜かれた状態から挿入された状態への変化と、を検出する端子を有する。
また、挿抜検出機構1411による挿抜の検出はMCU201のセキュア状態における汎用入出力端子に外部割込みとして定義される。ここで、前述の割込みが、非セキュア状態のMCU201からはノンマスカブルであるという特徴を持たせることにより、非セキュア状態からの不正なマスクを回避することができる。
(コンピュータシステム1400の機能)
図15は、実施の形態2にかかるコンピュータシステムの機能構成例を示すブロック図である。コンピュータシステム1400は、記憶部111と、送信部311と、検出部1511と、第1検証部1512と、第1停止部313と、復号部321〜第2停止部326と、を含む。
検出部1511は、挿抜検出機構1411に相当する機能である。また、第1検証部1512と、第1停止部313とは、情報処理装置1401が実行するセキュアサービス1501に含まれる機能である。セキュアサービス1501は、記憶装置に記憶されたプログラムをMCU201が実行することにより、第1検証部1512と、第1停止部313の機能を実現する。記憶装置とは、具体的には、たとえば、図14に示した不揮発性メモリ202などである。セキュアサービス1501は、図1に示した第1の検証処理104に相当する。
検出部1511は、セキュアモジュール1402がコンピュータシステム1400から抜かれたことと、セキュアモジュールがコンピュータシステム1400に挿入されたことを検出する。検出結果は、揮発性メモリ203のセキュア領域に格納される。
第1検証部1512は、検出部1511がコンピュータシステム1400から抜かれたことを検出した場合、アプリ103がセキュアな状態でないと検証する。また、第1検証部1512は、セキュアモジュール1402がコンピュータシステム1400に挿入されたことを検出した場合、第1の検証処理104の実行を開始する。
図16は、セキュアモジュールの挿抜状態の変化時に実行する処理手順の一例を示すフローチャートである。セキュアモジュール1402の挿抜状態の変化時に実行する処理は、セキュアサービス1501が実行する。
セキュアサービス1501は、セキュアモジュール挿抜状態の変化を検知したことを示す割込みを検出する(ステップS1601)。次に、セキュアモジュール1402の挿抜状態が次に示す状態のいずれに一致するかを判断する(ステップS1602)。次に示す状態は、挿入された状態と、抜かれた状態と、である。セキュアモジュール1402の挿抜状態が挿入された状態である場合(ステップS1602:挿入された状態)、セキュアサービス1501は、アプリ103の起動を許可する(ステップS1603)。
ステップS1603の処理について、ステップS1603の処理を実行した後にステップS506により、アプリ103の復号要求を受け付けた場合、セキュアサービス1501は、アプリ103の起動要求を許可してステップS507の処理を実行する。一方、ステップS1603の処理を実行していない状態で、セキュアサービス1501は、アプリ103の起動要求を許可しないため、ステップS507の処理を実行しない。
セキュアモジュール1402の挿抜状態が抜かれた状態である場合(ステップS1602:抜かれた状態)、セキュアサービス1501は、続けて、アプリ103の動作状態が次に示す状態のいずれに一致するかを判断する(ステップS1604)。次に示す状態は、動作中と、停止中と、である。アプリ103の動作状態が動作中である場合(ステップS1604:動作中)、セキュアサービス1501は、不正な操作が行われたことを示すメッセージをディスプレイ205に表示する(ステップS1605)。また、ステップS1605の処理について、セキュアモジュール1402の再挿入を促すメッセージを表示してもよい。続けて、セキュアサービス1501は、アプリ103の実行を停止させる(ステップS1606)。アプリ103の実行を停止させる方法として、たとえば、セキュアサービス1501は、アプリ103が展開されたメモリの一部または全部を上書きする。
アプリ103の動作状態が停止中である場合(ステップS1604:停止中)、セキュアサービス1501は、セキュアモジュールの挿抜状態の変化時に実行する処理を終了する。ステップS1604:停止中となった場合に、過去のアプリの動作時に展開されたデータがあれば、セキュアサービス1501は、展開されたデータを削除する。
ステップS1603またはステップS1606の処理終了後、セキュアサービス1501は、セキュアモジュールの挿抜状態の変化時に実行する処理を終了する。セキュアモジュールの挿抜状態の変化時に実行する処理を実行することにより、コンピュータシステム1400は、セキュアモジュール1402の挿抜状態の変化により、セキュアな状態を保障できなくなったアプリを停止させることができる。
以上説明したように、コンピュータシステム1400によれば、セキュアモジュール1402がコンピュータシステム1400から抜かれたことを挿抜検出機構1411が検出した場合、アプリ103がセキュアな状態でないと検証する。これにより、コンピュータシステム1400は、アプリ103について、セキュアな状態であるという保障がなくなったことを特定することができる。アプリ103がセキュアな状態でないと検証したコンピュータシステム1400は、アプリ103の実行を停止させることにより、情報の流出を抑えることができる。
また、コンピュータシステム1400によれば、セキュアモジュール1402がコンピュータシステム1400に挿入されたことを挿抜検出機構1411が検出した場合、セキュアサービスの実行を開始してもよい。これにより、コンピュータシステム1400は、秘匿したい情報を扱うアプリ103を安全に用いることができる。
なお、本実施の形態で説明した検証方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。セキュアFW301、セキュアサービス302、1501は、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVD等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またセキュアFW301、セキュアサービス302、1501は、インターネット等のネットワークを介して配布してもよい。
上述した実施の形態1、2に関し、さらに以下の付記を開示する。
(付記1)内部に格納された情報が外部から参照できない構造を有するセキュアモジュールと、前記セキュアモジュールと通信可能な情報処理装置と、を含むシステムであって、
前記情報処理装置は、
第1のコンピュータを有し、
前記情報処理装置により実行中のアプリケーションがセキュアな状態であるか否かを検証する第1の検証処理を前記第1のコンピュータが実行し、
前記セキュアモジュールは、
第2のコンピュータと、
前記第1の検証処理の実行コードの特徴を抽出した第1の特徴量および前記第1の検証処理を認証する認証処理の実行コードの両方またはいずれか一方を記憶する記憶部と、を有し、
前記記憶部の記憶内容に基づいて、前記第1のコンピュータにより実行中の前記第1の検証処理がセキュアな状態であるか否かを検証する第2の検証処理を前記第2のコンピュータが実行する、
ことを特徴とするシステム。
(付記2)前記第2のコンピュータは、
前記第1のコンピュータによって実行中の前記第1の検証処理の実行コードの特徴を抽出した第2の特徴量を算出し、
算出した前記第2の特徴量と、前記記憶部に記憶された前記第1の特徴量とを比較することにより、前記第1のコンピュータにより実行中の前記第1の検証処理がセキュアな状態であるか否かを検証する、
処理を実行することを特徴とする付記1に記載のシステム。
(付記3)前記記憶部は、
前記第1の検証処理の実行コードが暗号化された暗号化コードと前記暗号化コードを復号可能な復号鍵とを記憶しており、
前記セキュアモジュールは、
前記暗号化コードから、前記復号鍵を用いて前記第1の検証処理の実行コードを復号する復号部を有し、
前記第2のコンピュータは、
前記復号部が復号した前記第1の検証処理の実行コードの特徴を抽出した第1の特徴量を算出して前記記憶部に格納し、
算出した前記第2の特徴量と、前記記憶部に格納した前記第1の特徴量とを比較することにより、前記第1のコンピュータにより実行中の前記第1の検証処理がセキュアな状態であるか否かを検証する、
処理を実行することを特徴とする付記2に記載のシステム。
(付記4)前記情報処理装置は、前記暗号化コードを記憶しており、
前記第1のコンピュータは、
前記暗号化コードを前記セキュアモジュールに送信し、
前記暗号化コードを送信した結果、前記セキュアモジュールが送信した前記第1の検証処理の実行コードに従って、前記アプリケーションがセキュアな状態であるか否かを検証する、
処理を実行することを特徴とする付記3に記載のシステム。
(付記5)前記第2のコンピュータは、
前記認証処理の実行コードに従って、前記第1の検証処理を認証するチャレンジ乱数を生成し、
前記認証処理の実行コードに従って、生成した前記チャレンジ乱数に基づいて第1のレスポンスデータを算出し、
前記情報処理装置に前記チャレンジ乱数を送信し、
前記情報処理装置が有する前記第1のコンピュータにより実行中の前記第1の検証処理において前記送信したチャレンジ乱数に基づいて算出された第2のレスポンスデータと、前記第2のコンピュータが算出した第1のレスポンスデータとを比較することにより、前記第1のコンピュータにより実行中の前記第1の検証処理がセキュアな状態であるか否かを検証する、
処理を実行することを特徴とする付記1〜4のいずれか一つに記載のシステム。
(付記6)前記セキュアモジュールは前記システムから挿抜可能であり、
前記第1のコンピュータは、
前記セキュアモジュールが前記システムから抜かれたことを検出した場合、前記アプリケーションがセキュアな状態でないと検証する、
処理を実行することを特徴とする付記1〜5のいずれか一つに記載のシステム。
(付記7)前記セキュアモジュールは前記システムから挿抜可能であり、
前記第1のコンピュータは、
前記セキュアモジュールが前記システムに挿入されたことを検出した場合、前記第1の検証処理の実行を開始する、
処理を実行することを特徴とする付記1〜6のいずれか一つに記載のシステム。
(付記8)前記第2のコンピュータは、
前記第1のコンピュータにより実行中の前記第1の検証処理がセキュアな状態でないと検証した場合、前記第1のコンピュータによる前記第1の検証処理の実行を停止させる、
処理を実行することを特徴とする付記1〜7のいずれか一つに記載のシステム。
(付記9)内部に格納された情報が外部から参照できない構造を有するセキュアモジュールと通信可能な情報処理装置であって、
前記セキュアモジュールによってセキュアな状態であるか否かを検証される処理であって、前記情報処理装置により実行中のアプリケーションがセキュアな状態であるか否かを検証する第1の検証処理を実行するコンピュータを有することを特徴とする情報処理装置。
(付記10)第1のコンピュータを有する情報処理装置と通信可能であり、内部に格納された情報が外部から参照できない構造を有するセキュアモジュールであって、
前記情報処理装置により実行中のアプリケーションがセキュアな状態であるか否かを検証する第1の検証処理を前記第1のコンピュータで実行するための実行コードの特徴を抽出した第1の特徴量および前記第1の検証処理を認証する認証処理の実行コードの両方またはいずれか一方を記憶する記憶部と、
前記記憶部の記憶内容に基づいて、前記第1のコンピュータにより実行中の前記第1の検証処理がセキュアな状態であるか否かを検証する第2の検証処理を実行する第2のコンピュータと、
を有することを特徴とするセキュアモジュール。
(付記11)内部に格納された情報が外部から参照できない構造を有するセキュアモジュールと、前記セキュアモジュールと通信可能な情報処理装置と、を含むシステムの検証方法であって、
前記情報処理装置は、
前記情報処理装置により実行中のアプリケーションがセキュアな状態であるか否かを検証する第1の検証処理を実行し、
前記セキュアモジュールは、
前記第1の検証処理の実行コードの特徴を抽出した第1の特徴量および前記第1の検証処理を認証する認証処理の実行コードの両方またはいずれか一方を記憶する記憶部の記憶内容に基づいて、実行中の前記第1の検証処理がセキュアな状態であるか否かを検証する第2の検証処理を実行する、
処理を実行することを特徴とする検証方法。
100 システム
101、1401 情報処理装置
102、1402 セキュアモジュール
103 アプリ
200、1400 コンピュータシステム
301 セキュアFW
302、1501 セキュアサービス
311 送信部
312、1512 第1検証部
313 第1停止部
321 復号部
322 特徴量算出部
323 生成部
324 レスポンスデータ算出部
325 第2検証部
326 第2停止部
1511 検出部

Claims (10)

  1. 内部に格納された情報が外部から参照できない構造を有するセキュアモジュールと、前記セキュアモジュールと通信可能な情報処理装置と、を含むシステムであって、
    前記情報処理装置は、
    第1のコンピュータを有し、
    前記情報処理装置により実行中のアプリケーションがセキュアな状態であるか否かを検証する第1の検証処理を前記第1のコンピュータが実行し、
    前記セキュアモジュールは、
    第2のコンピュータと、
    前記第1の検証処理の実行コードの特徴を抽出した第1の特徴量および前記第1の検証処理を認証する認証処理の実行コードの両方またはいずれか一方を記憶する記憶部と、を有し、
    前記記憶部の記憶内容に基づいて、前記第1のコンピュータにより実行中の前記第1の検証処理がセキュアな状態であるか否かを検証する第2の検証処理を前記第2のコンピュータが実行する、
    ことを特徴とするシステム。
  2. 前記第2のコンピュータは、
    前記第1のコンピュータによって実行中の前記第1の検証処理の実行コードの特徴を抽出した第2の特徴量を算出し、
    算出した前記第2の特徴量と、前記記憶部に記憶された前記第1の特徴量とを比較することにより、前記第1のコンピュータにより実行中の前記第1の検証処理がセキュアな状態であるか否かを検証する、
    処理を実行することを特徴とする請求項1に記載のシステム。
  3. 前記記憶部は、
    前記第1の検証処理の実行コードが暗号化された暗号化コードと前記暗号化コードを復号可能な復号鍵とを記憶しており、
    前記セキュアモジュールは、
    前記暗号化コードから、前記復号鍵を用いて前記第1の検証処理の実行コードを復号する復号部を有し、
    前記第2のコンピュータは、
    前記復号部が復号した前記第1の検証処理の実行コードの特徴を抽出した第1の特徴量を算出して前記記憶部に格納し、
    算出した前記第2の特徴量と、前記記憶部に格納した前記第1の特徴量とを比較することにより、前記第1のコンピュータにより実行中の前記第1の検証処理がセキュアな状態であるか否かを検証する、
    処理を実行することを特徴とする請求項2に記載のシステム。
  4. 前記情報処理装置は、前記暗号化コードを記憶しており、
    前記第1のコンピュータは、
    前記暗号化コードを前記セキュアモジュールに送信し、
    前記暗号化コードを送信した結果、前記セキュアモジュールが送信した前記第1の検証処理の実行コードに従って、前記アプリケーションがセキュアな状態であるか否かを検証する、
    処理を実行することを特徴とする請求項3に記載のシステム。
  5. 前記第2のコンピュータは、
    前記認証処理の実行コードに従って、前記第1の検証処理を認証するチャレンジ乱数を生成し、
    前記認証処理の実行コードに従って、生成した前記チャレンジ乱数に基づいて第1のレスポンスデータを算出し、
    前記情報処理装置に前記チャレンジ乱数を送信し、
    前記情報処理装置が有する前記第1のコンピュータにより実行中の前記第1の検証処理において前記送信したチャレンジ乱数に基づいて算出された第2のレスポンスデータと、前記第2のコンピュータが算出した第1のレスポンスデータとを比較することにより、前記第1のコンピュータにより実行中の前記第1の検証処理がセキュアな状態であるか否かを検証する、
    処理を実行することを特徴とする請求項1〜4のいずれか一つに記載のシステム。
  6. 前記セキュアモジュールは前記システムから挿抜可能であり、
    前記第1のコンピュータは、
    前記セキュアモジュールが前記システムから抜かれたことを検出した場合、前記アプリケーションがセキュアな状態でないと検証する、
    処理を実行することを特徴とする請求項1〜5のいずれか一つに記載のシステム。
  7. 前記第2のコンピュータは、
    前記第1のコンピュータにより実行中の前記第1の検証処理がセキュアな状態でないと検証した場合、前記第1のコンピュータによる前記第1の検証処理の実行を停止させる、
    処理を実行することを特徴とする請求項1〜6のいずれか一つに記載のシステム。
  8. 内部に格納された情報が外部から参照できない構造を有するセキュアモジュールと通信可能な情報処理装置であって、
    前記セキュアモジュールによってセキュアな状態であるか否かを検証される処理であって、前記情報処理装置により実行中のアプリケーションがセキュアな状態であるか否かを検証する第1の検証処理を実行するコンピュータを有することを特徴とする情報処理装置。
  9. 第1のコンピュータを有する情報処理装置と通信可能であり、内部に格納された情報が外部から参照できない構造を有するセキュアモジュールであって、
    前記情報処理装置により実行中のアプリケーションがセキュアな状態であるか否かを検証する第1の検証処理を前記第1のコンピュータで実行するための実行コードの特徴を抽出した第1の特徴量および前記第1の検証処理を認証する認証処理の実行コードの両方またはいずれか一方を記憶する記憶部と、
    前記記憶部の記憶内容に基づいて、前記第1のコンピュータにより実行中の前記第1の検証処理がセキュアな状態であるか否かを検証する第2の検証処理を実行する第2のコンピュータと、
    を有することを特徴とするセキュアモジュール。
  10. 内部に格納された情報が外部から参照できない構造を有するセキュアモジュールと、前記セキュアモジュールと通信可能な情報処理装置と、を含むシステムの検証方法であって、
    前記情報処理装置は、
    前記情報処理装置により実行中のアプリケーションがセキュアな状態であるか否かを検証する第1の検証処理を実行し、
    前記セキュアモジュールは、
    前記第1の検証処理の実行コードの特徴を抽出した第1の特徴量および前記第1の検証処理を認証する認証処理の実行コードの両方またはいずれか一方を記憶する記憶部の記憶内容に基づいて、実行中の前記第1の検証処理がセキュアな状態であるか否かを検証する第2の検証処理を実行する、
    処理を実行することを特徴とする検証方法。
JP2013116825A 2013-06-03 2013-06-03 システム、情報処理装置、セキュアモジュール、および検証方法 Pending JP2014235326A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2013116825A JP2014235326A (ja) 2013-06-03 2013-06-03 システム、情報処理装置、セキュアモジュール、および検証方法
US14/292,053 US9256731B2 (en) 2013-06-03 2014-05-30 System, information processing apparatus, secure module, and verification method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013116825A JP2014235326A (ja) 2013-06-03 2013-06-03 システム、情報処理装置、セキュアモジュール、および検証方法

Publications (1)

Publication Number Publication Date
JP2014235326A true JP2014235326A (ja) 2014-12-15

Family

ID=51986548

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013116825A Pending JP2014235326A (ja) 2013-06-03 2013-06-03 システム、情報処理装置、セキュアモジュール、および検証方法

Country Status (2)

Country Link
US (1) US9256731B2 (ja)
JP (1) JP2014235326A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019016281A (ja) * 2017-07-10 2019-01-31 大日本印刷株式会社 セキュアエレメント、コンピュータプログラム、デバイス、サーバ及びトラステッドアプリケーションのインストレーション方法
US11188321B2 (en) 2018-09-06 2021-11-30 Toshiba Memory Corporation Processing device and software execution control method
US11314869B2 (en) 2019-02-20 2022-04-26 Sony Olympus Medical Solutions Inc. Processor, control device, and computer readable recording medium

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180012024A1 (en) * 2015-01-30 2018-01-11 Hewlett-Packard Development Company, L.P. Processor state determination
US9887842B2 (en) * 2015-06-30 2018-02-06 International Business Machines Corporation Binding software application bundles to a physical execution medium
US10298617B2 (en) * 2015-07-08 2019-05-21 T-Mobile Usa, Inc. Trust policy for telecommunications device
GB2564878B (en) * 2017-07-25 2020-02-26 Advanced Risc Mach Ltd Parallel processing of fetch blocks of data

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000293370A (ja) * 1999-04-09 2000-10-20 Konami Co Ltd コンピュータシステム、コンピュータプログラムの実行方法及びコンピュータプログラム記録媒体
JP2003198527A (ja) * 2001-12-27 2003-07-11 Fujitsu Ltd 情報再生装置およびセキュアモジュール
JP2004129227A (ja) * 2002-07-30 2004-04-22 Fujitsu Ltd 情報再生装置、セキュアモジュールおよび情報再生方法
JP2004272893A (ja) * 2003-02-21 2004-09-30 Matsushita Electric Ind Co Ltd ソフトウェア管理システム、記録媒体及び情報処理装置
JP2006059055A (ja) * 2004-08-19 2006-03-02 Fujitsu Ltd 照合システム及び照合システムのプログラムチエック方法
JP2007141044A (ja) * 2005-11-21 2007-06-07 Sony Computer Entertainment Inc 情報処理装置、及びプログラム実行制御方法
WO2009013825A1 (ja) * 2007-07-25 2009-01-29 Panasonic Corporation 情報処理装置、及び改竄検証方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6175924B1 (en) * 1997-06-20 2001-01-16 International Business Machines Corp. Method and apparatus for protecting application data in secure storage areas
US20080082813A1 (en) * 2000-01-06 2008-04-03 Chow David Q Portable usb device that boots a computer as a server with security measure
US7249379B2 (en) * 2002-02-01 2007-07-24 Systems Advisory Group Enterprises, Inc. Method and apparatus for implementing process-based security in a computer system
JP4423206B2 (ja) 2002-11-18 2010-03-03 エイアールエム リミテッド 安全モードと非安全モードとを切り換えるプロセッサ
JP2005135265A (ja) 2003-10-31 2005-05-26 Fujitsu Ltd 情報処理装置
JP4931542B2 (ja) 2005-10-12 2012-05-16 パナソニック株式会社 ロード先情報に対する改ざん検証機能を備えたプログラムローダ、プログラムローダを含むプロセッサ、プロセッサを含むデータ処理装置、プログラムロード方法、及び集積回路
US20120204254A1 (en) * 2011-02-04 2012-08-09 Motorola Mobility, Inc. Method and apparatus for managing security state transitions
JP5775738B2 (ja) 2011-04-28 2015-09-09 富士通株式会社 情報処理装置、セキュアモジュール、情報処理方法、および情報処理プログラム

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000293370A (ja) * 1999-04-09 2000-10-20 Konami Co Ltd コンピュータシステム、コンピュータプログラムの実行方法及びコンピュータプログラム記録媒体
JP2003198527A (ja) * 2001-12-27 2003-07-11 Fujitsu Ltd 情報再生装置およびセキュアモジュール
JP2004129227A (ja) * 2002-07-30 2004-04-22 Fujitsu Ltd 情報再生装置、セキュアモジュールおよび情報再生方法
JP2004272893A (ja) * 2003-02-21 2004-09-30 Matsushita Electric Ind Co Ltd ソフトウェア管理システム、記録媒体及び情報処理装置
JP2006059055A (ja) * 2004-08-19 2006-03-02 Fujitsu Ltd 照合システム及び照合システムのプログラムチエック方法
JP2007141044A (ja) * 2005-11-21 2007-06-07 Sony Computer Entertainment Inc 情報処理装置、及びプログラム実行制御方法
WO2009013825A1 (ja) * 2007-07-25 2009-01-29 Panasonic Corporation 情報処理装置、及び改竄検証方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019016281A (ja) * 2017-07-10 2019-01-31 大日本印刷株式会社 セキュアエレメント、コンピュータプログラム、デバイス、サーバ及びトラステッドアプリケーションのインストレーション方法
US11188321B2 (en) 2018-09-06 2021-11-30 Toshiba Memory Corporation Processing device and software execution control method
US11314869B2 (en) 2019-02-20 2022-04-26 Sony Olympus Medical Solutions Inc. Processor, control device, and computer readable recording medium

Also Published As

Publication number Publication date
US9256731B2 (en) 2016-02-09
US20140359306A1 (en) 2014-12-04

Similar Documents

Publication Publication Date Title
JP6067449B2 (ja) 情報処理装置、情報処理プログラム
US8555089B2 (en) Program execution apparatus, control method, control program, and integrated circuit
JP2014235326A (ja) システム、情報処理装置、セキュアモジュール、および検証方法
JP6595822B2 (ja) 情報処理装置及びその制御方法
KR101054318B1 (ko) 정보 처리 시스템 및 프로그램을 기록한 컴퓨터로 읽을 수 있는 매체
CN102171704B (zh) 用硬件加密存储设备进行外部加密和恢复管理
CN101894224B (zh) 保护客户端平台上的内容
JP5775738B2 (ja) 情報処理装置、セキュアモジュール、情報処理方法、および情報処理プログラム
JP5736994B2 (ja) 情報処理装置、正当性検証方法、及びプログラム
JP2004164491A (ja) プログラム更新方法およびサーバ
JP2006018528A (ja) セキュアプロセッサ、およびセキュアプロセッサ用プログラム。
JP6578814B2 (ja) プロセッサ及びプロセッサシステム
JP2007133860A (ja) ロード先情報に対する改ざん検証機能を備えたプログラムローダ、プログラムローダを含むプロセッサ、プロセッサを含むデータ処理装置、プログラムロード方法、及び集積回路
JP2010039891A (ja) 情報処理装置、プログラム実行方法、プログラムおよび情報処理システム
US20190044709A1 (en) Incorporating software date information into a key exchange protocol to reduce software tampering
JP2016146618A (ja) 情報処理装置
JP6343869B2 (ja) 携帯端末装置及び復号処理プログラム
KR101638257B1 (ko) 애플리케이션의 소스 코드 보호 방법 및 이를 수행하는 장치
JP5316592B2 (ja) セキュアプロセッサ用プログラム
CN110674525A (zh) 一种电子设备及其文件处理方法
KR101604892B1 (ko) 안드로이드 기반 어플리케이션의 부정사용 방지 방법 및 장치
JP4592337B2 (ja) データ記憶装置
JP5365664B2 (ja) セキュアプロセッサ
JP2002351686A (ja) データ処理方法及びデータ処理方法のプログラム
CN107688729B (zh) 基于可信主机的应用程序保护系统及方法

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20150611

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160229

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170224

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170321

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20171003