JP5784656B2 - マイクロプロセッサ - Google Patents

マイクロプロセッサ Download PDF

Info

Publication number
JP5784656B2
JP5784656B2 JP2013033317A JP2013033317A JP5784656B2 JP 5784656 B2 JP5784656 B2 JP 5784656B2 JP 2013033317 A JP2013033317 A JP 2013033317A JP 2013033317 A JP2013033317 A JP 2013033317A JP 5784656 B2 JP5784656 B2 JP 5784656B2
Authority
JP
Japan
Prior art keywords
application
processor core
information memory
memory
information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2013033317A
Other languages
English (en)
Other versions
JP2014164412A (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.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP2013033317A priority Critical patent/JP5784656B2/ja
Priority to US13/975,911 priority patent/US20140244894A1/en
Publication of JP2014164412A publication Critical patent/JP2014164412A/ja
Application granted granted Critical
Publication of JP5784656B2 publication Critical patent/JP5784656B2/ja
Expired - Fee Related 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/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/32Address formation of the next instruction, e.g. by incrementing the instruction counter

Description

本発明の実施形態は、マイクロプロセッサに関する。
ユーザーによるプログラム設計が可能なプロセッサコアと、そのプログラムが格納されたROMとを有し、ROMコレクション機能によりROM上のプログラムを修正することのできるマイクロプロセッサがある。
また、このROMには、メーカーが提供するアプリケーションソフトウェア(以降、アプリケーションと称す)が予め書き込まれていることがある。その場合、アプリケーションのライセンスに対応した使用制限が必要なことがある。
この使用制限の方法として、アプリケーション使用制限処理用のプログラムを用意し、該当のアプリケーションの使用許可/不許可を設定する方法がある。該当のアプリケーションの使用を許可しないユーザーに対しては、アプリケーションの使用を「不許可」とする設定がメーカー側で行われる。
ところが、ROMコレクション機能を悪用すると、アプリケーション使用制限処理用のプログラムを改変し、使用制限の設定自体を無効化することが可能である。これにより、使用制限されているアプリケーションが不正に使用される、という問題が生じる。
特開2000−122931号公報
本発明が解決しようとする課題は、使用制限されたアプリケーションソフトウェアの不正な使用を防止することのできるマイクロプロセッサを提供することにある。
実施形態のマイクロプロセッサは、プロセッサコアと、プログラムメモリーと、アプリケーション情報メモリーと、諾否情報メモリーと、スイッチと、判定部とを備える。プログラムメモリーのROMエリアに、アプリケーションソフトウェアが格納される。アプリケーション情報メモリーには、使用制限対象のアプリケーションソフトウェアの前記プログラムメモリー上のアドレス範囲が記載される。諾否情報メモリーには、前記使用制限対象のアプリケーションソフトウェアの使用に関する諾否情報が書き込まれる。スイッチは、入力信号を前記プロセッサコアへ印加するかしないかを切り替える。判定部は、前記プロセッサコアのプログラムカウンタ値が前記アプリケーション情報メモリーに記載された前記アドレス範囲に該当するかどうかを判定し、該当の場合は前記諾否情報メモリーに書き込まれた前記諾否情報にもとづいて前記スイッチの切り替えを制御する。
実施形態のマイクロプロセッサの構成の例を示すブロック図。 実施形態のマイクロプロセッサのプログラムメモリー上のアプリケーションソフトウェアの配置例と諾否情報メモリーに書き込まれた諾否情報との関係の例を示す図。 実施形態のマイクロプロセッサのアプリケーション情報メモリーの記載例を示す図。 実施形態のマイクロプロセッサの諾否情報メモリーの書き込み例を示す図。 実施形態のマイクロプロセッサの判定部の処理の流れの例を示すフロー図。 ROMコレクション機能を悪用したアプリケーションソフトウェアの不正使用方法の例を示す図。
以下、本発明の実施の形態について図面を参照して説明する。なお、図中、同一または相当部分には同一の符号を付して、その説明は繰り返さない。
(実施形態)
図1は、実施形態のマイクロプロセッサの構成の例を示すブロック図である。
本実施形態のマイクロプロセッサは、プロセッサコア1と、プログラムメモリー2と、アプリケーション情報メモリー3と、諾否情報メモリー4と、スイッチ5と、判定部6と、を備える。
プログラムメモリー2は、ROMエリア21と、RAMエリア22と、を有する。ROMエリア21には、アプリケーションソフトウェア(以降、アプリケーションと称す)などのプログラムが格納される。
プロセッサコア1は、ROMエリア21上のプログラムを修正できるROMコレクション機能を有する。ROMコレクションを行う場合、修正用のプログラムデータは、RAMエリア22に格納される。
ROMエリア21に格納されるアプリケーションの中には、ライセンスの関係上、使用制限されるものがある。そこで、使用制限されたアプリケーションに対しては、ユーザーごとに、プログラム使用の許可/不許可の設定が必要となる。
そのため、アプリケーション情報メモリー3に、使用制限対象のアプリケーションのプログラムメモリー2上のアドレス範囲ADが記載される。
また、諾否情報メモリー4に、使用制限対象のアプリケーションの使用に関する諾否情報IDが書き込まれる。
判定部6は、アプリケーション情報メモリー3から読み出したアドレス範囲ADと諾否情報メモリー4から読み出した諾否情報IDをもとに、スイッチ5の切り替えを制御する。
スイッチ5は、入力信号INをプロセッサコア1へ印加するかしないかを切り替えるスイッチである。
すなわち、判定部6は、プロセッサコア1のプログラムカウンタ値PCがアプリケーション情報メモリー3から読み出したアドレス範囲ADに該当するかどうかを判定する。該当の場合は、判定部6は、諾否情報メモリー4から諾否情報ID読み出す。
このとき、諾否情報IDが「許可」を示す場合は、判定部6は、入力信号INをプロセッサコア1へ印加するよう、スイッチ5を制御する。
一方、諾否情報IDが「不許可」を示す場合は、判定部6は、入力信号INをプロセッサコア1へ印加しないよう、スイッチ5を切り替える。この場合、図1に示す例では、プロセッサコア1へは、接地電位(‘0’)が入力される。例えば、入力信号INが音声信号である場合、プロセッサコア1への入力が無音状態となる。
これにより、使用「不許可」のアプリケーションを実行しても、プロセッサコア1からは正常な出力が得られず、実質的に、このアプリケーションは使用不可となる。
上述したように、本実施形態では、プログラムメモリー2、アプリケーション情報メモリー3、諾否情報メモリー4、と3種類のメモリーが使用されるが、このうち、ユーザーが制御・変更できるのは、プログラムメモリー2のRAMエリア22のみである。
図2に、プログラムメモリー2上のアプリケーションの配置例と、諾否情報メモリー4に書き込まれた諾否情報IDとの関係の例を示す。
図2に示す例では、プログラムメモリー2のROMエリア21に、アプリケーションA、アプリケーションB、アプリケーションC、アプリケーションDが配置されているものとする。また、そのアドレス範囲ADは、アプリケーションAが0x0000−0x2FFF、アプリケーションBが0x3000−0x4FFF、アプリケーションCが0x5000−0x6FFF、アプリケーションDが0x7000−0x77FFとする。
このアプリケーションのうち、アプリケーションA、アプリケーションB、アプリケーションCは使用制限の対象であり、アプリケーションDは非対象である。
そこで、諾否情報メモリー4に、使用制限の対象のアプリケーションA、アプリケーションB、アプリケーションCのそれぞれに対して諾否情報IDが書き込まれる。
ここでは、諾否情報IDを1ビットのデータとし、諾否情報メモリー4には、3ビットの情報が書き込まれるものとする。すなわち、この3ビットのビット番号をbit0、bit1、bit2とすると、bit0にはアプリケーションAに対する諾否情報ID0、bit1にはアプリケーションBに対する諾否情報ID1、bit2にはアプリケーションCに対する諾否情報ID2が書き込まれるものとする。
図3は、この使用制限の対象のアプリケーションA、アプリケーションB、アプリケーションCに対するアプリケーション情報メモリー3の記載例である。
図3に示す例では、アプリケーション情報メモリー3には、使用制限の対象の各アプリケーションに対して、プログラムメモリー2上のアドレス範囲ADと、諾否情報メモリー4のビット番号が記載されている。
図4は、諾否情報メモリー4の書き込み例である。
ここで、1ビットの諾否情報IDは、ビット値‘1’が「許可」を表し、ビット値‘0’が「不許可」を表すものとする。
したがって、例えば、アプリケーションAおよびアプリケーションCは「不許可」、アプリケーションBは「許可」である場合、諾否情報メモリー4には、bit0=0、bit1=1、bit2=0が書き込まれる。
このbit0、bit1、bit2の値が、それぞれ、アプリケーションAに対する諾否情報ID0、アプリケーションBに対する諾否情報ID1、アプリケーションCに対する諾否情報ID2となる。
諾否情報メモリー4のビット数は3ビットに限るものではなく、使用制限の対象のアプリケーションの個数に応じて増減される。
図5は、判定部6の処理の流れの例を示すフロー図である。ここに示すフローでは、判定部6の処理は、次のように行われる。
判定部6は、プロセッサコア1から実行中の命令のプログラムカウンタ値PCを受け取り、アプリケーション情報メモリー3に記載されている使用制限対象のアプリケーションのアドレス範囲ADと比較し(ステップS01)、プログラムカウンタ値PCが使用制限対象のアプリケーションのアドレス範囲ADの範囲内かどうかを判定する(ステップS02)。
このとき、プログラムカウンタ値PCが、使用制限対象の総てのアプリケーションのアドレス範囲ADの範囲外であれば(NO)、判定部6は、スイッチ5を制御して、入力信号INをプロセッサコア1へ印加する(ステップS03)。
一方、プログラムカウンタ値PCが、使用制限対象のアプリケーションのアドレス範囲ADの範囲内であれば(YES)、判定部6は、プログラムカウンタ値PCが含まれるアドレス範囲ADから、該当するアプリケーションを特定する(ステップS04)。
続いて、判定部6は、特定したアプリケーションに対応する諾否情報IDのビット番号をアプリケーション情報メモリー3から読み出し、そのビット番号の諾否情報IDを諾否情報メモリー4から読み出す(ステップS05)。
次に、判定部6は、読み出した諾否情報IDが、「許可」を表す値か、「不許可」を表す値かを判定する(ステップS06)。
このとき、諾否情報IDが「許可」であるときは、判定部6は、スイッチ5を制御して、入力信号INをプロセッサコア1へ印加する(ステップS03)。
一方、諾否情報IDが「不許可」であるときは、判定部6は、スイッチ5を制御して、入力信号INをプロセッサコア1へ印加しないようにする(ステップS07)。
これにより、諾否情報IDが「不許可」であるアプリケーションを実行しても、プロセッサコア1からは正常な出力が得られず、実質的に、このアプリケーションは使用不可となる。
ここで、図6に、ROMコレクション機能を悪用したアプリケーションソフトウェアの不正使用方法の例を示す。
図6(a)に示す実行プログラム100は、使用制限のあるアプリケーションAに対して、分岐命令I1により、使用許可がない場合は、アプリケーションAが実行できないようにしたプログラムの例である。
これに対して、図6(b)は、ROMコレクション機能を悪用して、使用許可がない場合にもアプリケーションAを実行できるようにした例である。この場合、ROMコレクション200に、分岐命令I1をスキップするような命令I2が記載されている。
このROMコレクション200の実行により、実行プログラム100の実行中に、使用許可がないアプリケーションAが実行されてしまう。
しかし、本実施形態では、仮に、上述のような方法で使用許可がないアプリケーションが実行されたとしても、そのアプリケーションの実行中は、プロセッサコア1へ入力信号INが印加されないため、実質的には、そのアプリケーションの使用が阻止されたことになる。
このように、本実施形態では、ROMコレクション機能の影響が及ばないアプリケーション情報メモリー3、諾否情報メモリー4と、判定部6およびスイッチ5により、使用制限対象のアプリケーションの使用の許可/不許可を判定しているため、ROMコレクション機能を悪用した不正から使用制限対象のアプリケーションを保護することができる。
以上説明した実施形態のマイクロプロセッサによれば、使用制限されたアプリケーションソフトウェアの不正な使用を防止することができる
また、本発明の実施形態を説明したが、この実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。この新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
1 プロセッサコア
2 プログラムメモリー
21 ROMエリア
22 RAMエリア
3 アプリケーション情報メモリー
4 諾否情報メモリー
5 スイッチ
6 判定部

Claims (5)

  1. プロセッサコアと、
    ROMエリアにアプリケーションソフトウェアが格納されたプログラムメモリーと、
    使用制限対象のアプリケーションソフトウェアの前記プログラムメモリー上のアドレス範囲が記載されたアプリケーション情報メモリーと、
    前記使用制限対象のアプリケーションソフトウェアの使用に関する諾否情報が書き込まれた諾否情報メモリーと、
    入力信号を前記プロセッサコアへ印加するかしないかを切り替えるスイッチと、
    前記プロセッサコアのプログラムカウンタ値が前記アプリケーション情報メモリーに記載された前記アドレス範囲に該当するかどうかを判定し、該当の場合は前記諾否情報メモリーに書き込まれた前記諾否情報にもとづいて前記スイッチの切り替えを制御する判定部と
    を備えることを特徴とするマイクロプロセッサ。
  2. 前記判定部は、前記諾否情報が諾であるときは前記入力信号を前記プロセッサコアへ印加し、前記諾否情報が否であるときは前記入力信号を前記プロセッサコアへ印加しないように、前記スイッチを切り替える
    ことを特徴とする請求項1に記載のマイクロプロセッサ。
  3. 前記アプリケーション情報メモリーおよび前記諾否情報メモリーは、ユーザーによる書き換えが不可能である
    ことを特徴とする請求項1または2に記載のマイクロプロセッサ。
  4. 前記諾否情報メモリーは、
    前記使用制限対象のアプリケーションソフトウェアが複数あるときは、それぞれのアプリケーションソフトウェアごとに前記諾否情報が書き込まれている
    ことを特徴とする請求項1乃至3のいずれか1項に記載のマイクロプロセッサ。
  5. 前記プロセッサコアが、ROMコレクション機能を有する
    ことを特徴とする請求項1乃至4のいずれか1項に記載のマイクロプロセッサ。
JP2013033317A 2013-02-22 2013-02-22 マイクロプロセッサ Expired - Fee Related JP5784656B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2013033317A JP5784656B2 (ja) 2013-02-22 2013-02-22 マイクロプロセッサ
US13/975,911 US20140244894A1 (en) 2013-02-22 2013-08-26 Microprocessor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013033317A JP5784656B2 (ja) 2013-02-22 2013-02-22 マイクロプロセッサ

Publications (2)

Publication Number Publication Date
JP2014164412A JP2014164412A (ja) 2014-09-08
JP5784656B2 true JP5784656B2 (ja) 2015-09-24

Family

ID=51389419

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013033317A Expired - Fee Related JP5784656B2 (ja) 2013-02-22 2013-02-22 マイクロプロセッサ

Country Status (2)

Country Link
US (1) US20140244894A1 (ja)
JP (1) JP5784656B2 (ja)

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5014191A (en) * 1988-05-02 1991-05-07 Padgaonkar Ajay J Security for digital signal processor program memory
JP4312272B2 (ja) * 1995-10-06 2009-08-12 モトローラ・インコーポレイテッド 内部メモリへのアクセスを制限するマイクロコントローラ
JPH10240623A (ja) * 1997-02-28 1998-09-11 Nec Corp 読み出し保護機能付きマイクロコンピュータ
JP3710671B2 (ja) * 2000-03-14 2005-10-26 シャープ株式会社 1チップマイクロコンピュータ及びそれを用いたicカード、並びに1チップマイクロコンピュータのアクセス制御方法
JP2007026231A (ja) * 2005-07-20 2007-02-01 Matsushita Electric Ind Co Ltd マイクロコンピュータ
JP2007304954A (ja) * 2006-05-12 2007-11-22 Sharp Corp メモリ保護機能を有するコンピュータシステム
JP4892414B2 (ja) * 2007-06-13 2012-03-07 ルネサスエレクトロニクス株式会社 制御回路、記憶媒体、処理装置、組込みシステムならびに領域管理方法

Also Published As

Publication number Publication date
US20140244894A1 (en) 2014-08-28
JP2014164412A (ja) 2014-09-08

Similar Documents

Publication Publication Date Title
CN107122634B (zh) 软件安装包的加固保护方法及装置
KR20150041095A (ko) 선택적 ram 스크램블링을 위한 방법 및 디바이스들
MX2007008540A (es) Metodo y dispositivo de almacenamiento portatil para asignar area segura en area insegura.
US10326453B2 (en) Monotonic counter and method of operating a monotonic counter
TW201512877A (zh) 防止二進位檔案被反編譯的方法和裝置
GB2557305A (en) Memory protection logic
CN110020561B (zh) 半导体装置和操作半导体装置的方法
JP2013186896A (ja) 不揮発性メモリのセキュリティを実装するための方法
JP5784656B2 (ja) マイクロプロセッサ
JP6368531B2 (ja) 暗号処理装置、暗号処理システム、および暗号処理方法
CN108647516B (zh) 一种防御漏洞非法提权方法及装置
JP2006268296A (ja) 機器の管理方法及びその装置
JP6798669B2 (ja) アプリケーションに含まれるユーザ情報を隠すための方法及びデバイス
CN115391850A (zh) 一种otp烧写方法、装置、设备及计算机可读存储介质
JP2008186443A (ja) 排他制御機能を実行するための方法およびこれを用いたdrmデバイス
CN111222156A (zh) 一种操作系统安全防护的方法、装置、设备及可读介质
JP5951405B2 (ja) プログラマブルコントローラ、エンジニアリングツールプログラム、およびそのシステム
CN110889110A (zh) 车辆的程序控制方法、装置、车辆及存储介质
GB2544356B (en) Mobile device and monitoring method adaptable to mobile device
JP6215468B2 (ja) プログラム保護装置
US20160314288A1 (en) Method and apparatus for write restricted storage
JP2005346150A (ja) 情報処理装置、情報処理方法、プログラム及び記録媒体
JP2005235303A (ja) 外部記録媒体の認証方式
JP2016157331A (ja) マイクロコントローラ
US11354407B2 (en) Techniques for library behavior verification

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150205

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20150218

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150214

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150527

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150722

LAPS Cancellation because of no payment of annual fees