JP6079208B2 - マイクロコンピュータ,そのミドルウエア及びマイクロコンピュータの動作方法 - Google Patents

マイクロコンピュータ,そのミドルウエア及びマイクロコンピュータの動作方法 Download PDF

Info

Publication number
JP6079208B2
JP6079208B2 JP2012277002A JP2012277002A JP6079208B2 JP 6079208 B2 JP6079208 B2 JP 6079208B2 JP 2012277002 A JP2012277002 A JP 2012277002A JP 2012277002 A JP2012277002 A JP 2012277002A JP 6079208 B2 JP6079208 B2 JP 6079208B2
Authority
JP
Japan
Prior art keywords
function
register
authentication
data
initialization
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
JP2012277002A
Other languages
English (en)
Other versions
JP2014120118A (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.)
Socionext Inc
Original Assignee
Socionext Inc
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 Socionext Inc filed Critical Socionext Inc
Priority to JP2012277002A priority Critical patent/JP6079208B2/ja
Priority to US14/097,441 priority patent/US9218478B2/en
Priority to CN201310706075.7A priority patent/CN103886268A/zh
Publication of JP2014120118A publication Critical patent/JP2014120118A/ja
Application granted granted Critical
Publication of JP6079208B2 publication Critical patent/JP6079208B2/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/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/629Protecting access to data via a platform, e.g. using keys or access control rules to features or functions of an application

Landscapes

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

Description

本発明は,マイクロコンピュータ,そのミドルウエア及びマイクロコンピュータの動作方法に関する。
マイクロコンピュータでは,CPUが,内蔵ROMに組み込まれたプログラムを実行して所望の機能を実現する。マイクロコンピュータは,プログラムが組み込まれたROMに加えて,CPU,RAM,入出力部(I/O)を有し,さらに,いくつかのハードウエアモジュールを有する。
マイクロコンピュータには,様々な機能が設けられており,マイクロコンピュータのユーザはこれらの機能を利用して所望の処理を実現する。たとえば,ユーザが開発するアプリケーションプログラムは,所望の機能を実現する機能関数を呼び出して実行することで,所望の機能を利用する。
一方,マイクロコンピュータの開発環境では,マイクロコンピュータのベンダが供給するOSやミドルウエアなどと共に,ユーザが開発するアプリケーションプログラムを,評価用マイクロコンピュータチップ内のメモリに書き込み,マイクロコンピュータに開発中のアプリケーションプログラムを実行させる。
このような開発環境において,ベンダは,しばしば,マイクロコンピュータの一部の機能を利用できないように機能制限して,ユーザに前述の機能関数などを有するライブラリと評価用マイクロコンピュータチップを提供する。たとえば,ベンダは,ライブラリ内の一部の機能関数を使用できないようにすることで機能制限する。そして,ユーザはそのような機能制限された評価環境で開発中のアプリケーションを実行して,マイクロコンピュータとライブラリの評価を行う。その後,ユーザがベンダとライセンス契約を締結した場合は,ベンダは機能制限を解除して,ユーザが全ての機能を利用できるようにする。
LSIの暗号化されたプログラムについて,特許文献1に記載されている。
特開2004?164491号公報
しかしながら,ベンダは,機能制限したライブラリをユーザに提供した後,ライセンス契約締結後に機能制限していないライブラリをユーザに提供すると,ベンダは2種類にライブラリをユーザに提供しなければならず,ライブラリの種類が増大する。また,ユーザも機能制限していないライブラリに置き換える必要がある。
そこで,本発明の目的は,機能制限と機能制限の解除とを高いセキュリティ性で簡単に行えるマイクロコンピュータ,そのミドルウエアのプログラム及びマイクロコンピュータの動作方法を提供することにある。
実施の形態のマイクロコンピュータの第1の側面によれば,
CPUと,
複数のレジスタと,
初期値と当該初期値を設定すべきレジスタアドレスとを有するハードウエア初期化データを格納する記録媒体と,
前記ハードウエア初期化データに基づいて前記レジスタアドレスのレジスタに前記初期値を設定するハードウエア初期化手段と,
所定の機能を実現する処理を実行する機能関数手段と,
前記機能関数の機能制限を解除するための認証情報を有し,前記認証情報に基づいて,前記複数のレジスタから予め選択された認証レジスタ内の認証データが正しいか否かを判断し,正しい場合に前記認証情報に対応する機能関数手段を実行可能状態にする機能制限解除処理を行う機能制限解除手段とを有する。
本実施の形態によれば,マイクロコンピュータの機能制限と機能制限の解除とを高いセキュリティ性で簡単に行える。
本実施の形態におけるマイクロコンピュータの評価から量産までを示すフローチャート図である。 本実施の形態におけるマイクロコンピュータの構成図である。 本実施の形態におけるブートローダとソフトウエアとデータを示す図である。 本実施の形態におけるアプリケーションプログラム121の構成例を示す図である。 本実施の形態におけるミドルウエアの構成例を示す図である。 ユーザシステムの一部の処理を示すフローチャート図である。 ブートローダ11による処理を示すフローチャート図である。 ハードウエアのレジスタ群とハードウエア初期化処理とを示す図である。 本実施の形態における機能制限解除処理のフローチャート図である。 本実施の形態におけるマイクロコンピュータの評価環境を説明する図である。 本実施の形態におけるマイクロコンピュータの量産チップを説明する図である。
図1は,本実施の形態におけるマイクロコンピュータの評価から量産までを示すフローチャート図である。工程S1,S2がマイクロコンピュータの評価段階を,工程S3,S4,S5がマイクロコンピュータの量産までの段階をそれぞれ示す。評価段階では,ベンダは,ユーザに一部の機能を制限したライブラリを提供する(S1)。ここで,ライブラリとはOSとアプリケーションの間にあるミドルウエアである。また,ライブラリには,ミドルウエアの為のデータなども含まれる。
マイクロコンピュータは,CPUとROM,RAMなどの記録媒体を有し,これらの記録媒体内にOSとミドルウエアとアプリケーションプログラム(以下単にアプリケーション)とデータを格納し,アプリケーションをCPUに実行させることで,様々な機能を利用して所望の処理を実現する。一般にアプリケーションは,ミドルエウア内の様々な機能に対応する機能関数を呼び出し,呼び出された機能関数が実行されることで,対応する機能を実現する。
したがって,一部の機能を制限したミドルウエア(ライブラリ)とは,一部の機能関数を実行不能状態にしたミドルウエアである。
ユーザは,評価環境でアプリケーションを開発し,同時にマイクロコンピュータとライブラリを評価する(S2)。評価環境では,評価用のマイクロコンピュータをICE(インサーキットエミュレータ)を介してパソコンなどに接続し,パソコンなどから上記のOSとミドルウエアと開発中のアプリケーションとデータを実行形式で評価用マイクロコンピュータのメモリに格納する。そして,評価用マイクロコンピュータがアプリケーションを実行し,マイクロコンピュータの動作状態をパソコンからモニタするなどして評価する。
マイクロコンピュータの評価の結果が良い場合,ユーザはベンダとライブラリのライセンス契約を締結する(S3)。このライセンス契約により,ユーザはライセンスされた機能を利用できるライブラリを入手可能になり,マイクロコンピュータはライセンスされた機能を利用可能になる。そのように利用可能にするために,ベンダは,ユーザに認証情報としてパスワード(認証データ)などを提供する(S4)。この認証情報は,マイクロコンピュータ内の複数のレジスタのうち予め定められた認証用レジスタのアドレスと,そこに初期設定すべきパスワード(認証データ)とを有する。
一方,マイクロコンピュータを起動した時にブートローダがマイクロコンピュータ内の複数のレジスタに初期値を設定するが,上記の認証用レジスタは,その初期値が設定されるレジスタ以外のレジスタからベンダにより任意に選択される。つまり,認証用レジスタは,アプリケーションを実行するまでは初期値が設定されない或は任意のデータが格納されてもよい一種の余剰レジスタから任意に選択される。
そして,ユーザはベンダから提供されたパスワードを,ハードウエア初期値処理時に認証用レジスタに設定する初期値データとして追加して,マイクロコンピュータを量産化する(S5)。マイクロコンピュータ内の機能制限解除手段は,予め定められた認証レジスタ内に設定されたパスワード(認証データ)が正しいか否かを検証し,正しい場合に,機能を実現する機能関数を実行可能状態にする。
このように本実施の形態では,マイクロコンピュータの種々の機能を利用するためには,その機能に対応する機能関数を実行可能状態にする機能制限解除のための認証情報(認証レジスタのアドレスとパスワード(認証データ))が必要である。したがって,ベンダは,ある機能を制限したい場合は,認証レジスタのアドレスとそこに設定すべきパスワード(認証データ)をユーザには提供しない。それにより,ユーザはその機能を利用することができない。そして,ベンダは,ライセンス契約を締結したユーザにだけ,その認証情報(認証レジスタのアドレスとパスワード(認証データ))を提供する。それにより,そのユーザは,提供された認証情報に基づいて,マイクロコンピュータ内の認証レジスタにパスワードを初期値として設定可能にし,マイクロコンピュータの機能制限された機能関数を実行可能な状態にする。
上記のように,種々の機能に対応する認証レジスタのアドレスとそのパスワードを秘密状態に保つことで,高いセキュリティ状態で機能制限したライブラリをユーザに提供することができる。単に,所定ビットのパスワードを照合することで機能制限するだけでは,悪意のあるユーザはとりうる全ての所定ビットデータを試して機能制限を解除することができる場合がある。それに対して,本実施の形態では,パスワードを設定すべき認証レジスタを多数のレジスタの中から予め任意に選択し,その認証レジスタのアドレスも秘密にしておくので,ユーザにとって認証情報はパスワードに加えて認証レジスタのアドレスになり,その機能制限を解除することは極めて困難になる。
図2は,本実施の形態におけるマイクロコンピュータの構成図である。マイクロコンピュータ1は,ROMなどのメモリ10と,RAM20と,CPU30と,入出力回路34と,3つのハードウエアモジュール40?1,2,3とを有し,それらは内部バス36を介して接続されている。ROM10内にはブートローダ11と,ソフトウエア12と,データ13とが格納され,マイクロコンピュータの起動時にCPUにより実行されるブートローダ11により,ソフトウエア12とデータ13がRAM20内に展開される。CPU30はレジスタ群31と図示しない演算器とを有する。
一方,ハードウエアモジュール40?1は,複数のレジスタを有するレジスタ群41と,そのモジュールに対応するハードウエア回路42とを有する。他のハードウエアモジュール40?2,40?3も同様の構成である。ハードウエアモジュールは,例えば,画像データを処理する画像処理モジュール,外部との通信処理を行う通信モジュール,音声データを処理するオーディオモジュール,セキュリティに関する処理を行うセキュリティモジュールなどである。これらのハードウエアモジュールを組み合わせることで,マイクロコンピュータは,様々な機能を実現する。
ハードウエアモジュールやCPU内のレジスタ群は,複数のレジスタを有し,一部のレジスタにはハードウエア初期化処理の時に初期値が設定される。そして,それらの初期値が設定されるレジスタ以外のレジスタから,パスワードを設定するための認証レジスタが選択されている。この選択は,ベンダによって行われる。この選択された認証レジスタには,図示されるように,パスワードPWが設定される。
図2の例では,各ハードウエアモジュール40?1,2,3内のレジスタ群41がそれぞれ4つのレジスタを有する。そして,ハードウエアモジュール40?1内の1つのレジスタの下位ビット領域と,ハードウエアモジュール40?2内の1つのレジスタの上位ビット領域とを組み合わせて,1つの認証用レジスタが構成されている。それに対応して,これらのレジスタ領域に1つのパスワードPWが2つに分けて設定される。つまり,これらの2つのパスワードPWを組み合わせることで,認証用の1つのパスワードが構成される。
もちろん,1つの認証レジスタ内にパスワードPWの全てのビットを設定するように選択してもよいし,複数のレジスタの全ビットを利用してパスワードPWを設定するようにしてもよい。
次に,ROM10内のブートローダ11と,ソフトウエア12と,データ13について説明する。
図3は,本実施の形態におけるブートローダとソフトウエアとデータを示す図である。ブートローダ11は,マイクロコンピュータを起動した時にROM10内のソフトウエア12とデータ13をRAM20に展開する処理と,ハードウエアモジュールなどのレジスタに初期値データを設定するハードウエア初期化処理と,ブートローダの全ての処理を完了した後にアプリケーションの先頭番地にジャンプする処理などを有する。
ソフトウエア12には,主にユーザが開発するアプリケーションプログラム121と,ミドルウエア122と,OS123が含まれる。アプリケーションプログラム121の先頭番地にはミドルウエア初期化関数を呼び出す処理121aが設けられている。したがって,ブートローダが全ての処理を完了した後にアプリケーションの先頭番地にジャンプすると,このミドルウエア初期化関数が呼び出される。
ミドルウエア122には,ミドルウエアを初期化する初期化関数122aと,ミドルウエアの関数群122bと,OSの機能を実行するドライバ群122cなどが含まれる。さらに,本実施の形態では,ミドルウエア初期化関数122aにパスワードPWを認証して機能制限を解除する処理が含まれる。ただし,この機能制限解除処理は,必ずしもミドルウエア初期化関数内に含まれる必要はなく,アプリケーションからミドルウエア内の機能制限関数群が呼び出されるまでに行われればよい。
データ13は,ミドルウエア内のデータ131と,ハードウエア内のレジスタの初期値データ132とを有する。ミドルウエア内データ131は,認証レジスタのアドレスとそこに設定されるパスワードとを含む認証情報を有する。
図3に示した例では,ミドルウエア内のデータ131は,認証レジスタアドレスREG-ADDa,REG-ADDbと,そこに設定すべきパスワードPWa,PWbを有する。このミドルウエア内データ131に含まれるレジスタアドレスREG-ADDa,REG-ADDbに設定するパスワードPWa, PWbは,マイクロコンピュータのベンダによってミドルウエア122と共に提供されるライブラリに含まれる正解データである。そして,ミドルウエア初期化関数122aが機能制限解除処理を行う場合に,このミドルウエア内データ131を参照して,認証レジスタ内のパスワードと一致するか否かの検証を行う。
また,ハードウエア初期値データ132は,レジスタアドレスREG-ADD1, REG-ADD4に設定するユーザの初期値データD1,D4と,認証レジスタアドレスREG-ADDa, REG-ADDbに設定するパスワードPWa, PWbとを有する。この認証レジスタアドレスREG-ADDa, REG-ADDbと,そこに設定するパスワードPWa, PWbは,機能制限を解除するために必要な情報である。この情報は,例えば,2つの機能それぞれに対するパスワードPWa, PWbと,それを初期設定する認証アドレスREG-ADDa, REG-ADDbである。したがって,ベンダは,機能制限したい場合はこの認証情報をユーザに提供せず,機能制限しない場合はこの認証情報をユーザに提供する。
図4は,本実施の形態におけるアプリケーションプログラム121の構成例を示す図である。アプリケーション121の先頭番地には,ミドルウエア初期化関数を呼び出す命令121aが記述されている。さらに,アプリケーション121は,単数または複数のアプリケーションAPLを有する。例えば,アプリケーションAPL1は,ミドルウエア内の関数Aを呼び出す命令と関数Bを呼び出す命令121bを有し,一方,アプリケーションAPL2は関数Cを呼び出す命令と関数Dを呼び出す命令121cを有する。このように,アプリケーション121の先頭番地には,各アプリケーションがコールするミドルウエアの関数を初期化する関数を呼び出す命令121aが記述されている。
図5は,本実施の形態におけるミドルウエアの構成例を示す図である。ミドルウエア122は,図3で概略説明したとおり,ミドルウエア初期化関数122aと,アプリケーション121から呼び出される関数群122bと,図5中に図示しないOSの機能を呼び出すドライバ群とを有する。
ミドルウエア初期化関数122aは,ミドルウエア内データ131などミドルウエアの内部変数の領域をRAM20内に確保し,内部変数の初期値をそこに格納する処理122a−1と,機能制限の解除処理122a−2とを有する。マイクロコンピュータの所定の機能を利用するために,アプリケーション121はその機能に対応するミドルウエアの関数を呼び出して実行する。したがって,一部または全部の機能を制限するためには,制限対象の機能の関数を実行不能にすればよい。また,機能制限の解除処理は,その機能の関数を実行可能にすればよい。具体的な方法は後で説明する。
関数A(122b(A))は,その関数が実行可能か否かをチェックする許可フラグチェック処理122b−1と関数Aの処理122b−2とを有する。関数B(122b(B))も同様である。つまり,関数A,Bは,機能制限とその解除が可能な関数の例である。一方,関数E(122b(E))は,許可フラグチェック処理はなく,その関数Eの処理122b−2を有する。つまり,関数Eは機能制限ができない関数の例である。
ミドルウエアの関数A,Bの機能制限を可能にするために,機能制限の解除処理122a−2は,例えば,認証レジスタに設定されたパスワードPWが,ミドルウエア内のデータ131に含まれている正解パスワードPWと一致するか否かをチェックし,一致する場合にその関数の許可フラグを許可状態(ON)にし,不一致の場合に不許可状態(OFF)にする。したがって,機能制限解除処理122a−2は,機能制限をする処理と機能制限を解除する処理の両方を含む。
一方,図5中の機能制限が可能な関数A,Bは,関数A,Bの処理122b−2の前に,許可フラグチェック処理122b−1を有する。したがって,アプリケーションから関数A,Bが呼び出された場合は,この許可フラグチェック処理により,ミドルウエア初期化関数122a内の機能制限解除処理122a−2で,その関数が実行を許可されたか許可されなかったかをチェックし,不許可状態(許可フラグOFF)の場合はエラーが返されてその関数は実行不能にされ,一方,許可状態(許可フラグON)の場合はその関数は実行される。
図6は,ユーザシステムの一部の処理を示すフローチャート図である。ここでユーザシステムとは,ユーザの開発中または開発済みのアプリケーションとそれに対応する初期値データなどがROM内に格納されたマイクロコンピュータである。したがって,評価工程でのマイクロコンピュータと量産されたマイクロコンピュータの両方を含む。
マイクロコンピュータを起動すると,CPU30はブートローダ11を実行する(S11)。ブートローダ11は,(1)ROM10内のソフトウエア12とデータ13とをRAM20内にコピーまたは展開し,(2)データ13内のハードウエア初期値データ132とを対応するアドレスのレジスタに設定するハードウエア初期化処理を行い,(3)アプリケーションの先頭番地にジャンプする。
図7は,ブートローダ11による処理を示すフローチャート図である。上記したとおり,まず,ブートローダは,CPUにより実行されることで,ROM10内のソフトウエア12とデータ13をRAM20内に展開する(S21)。この場合,ソフトウエア12とデータ13はRAM20内に展開しなくてもよい。そして,ブートローダは,ハードウエアの初期化処理を行う(S22)。このハードウエア初期化処理では,図3に示したハードウエア初期値データ132にしたがって,ユーザ初期値D1,D4をレジスタアドレスREG-ADD1, REG-ADD4に設定し,パスワードPWa, PWb を認証レジスタのアドレスREG-ADDa,REG-ADDbにそれぞれ設定する。ハードウエア初期値データ132に,パスワードとその認証レジスタのアドレスが含まれていない場合は,ハードウエア初期化処理では,パスワードの認証レジスタ内への設定は行われない。
上記のミドルウエア内のデータ131は,機能制限可能な関数全てに対する認証レジスタアドレスとその正解パスワードを有し,ベンダは,全てのユーザに,その全ての認証情報をライブラリの一部として提供する。しかし,提供されるのは実行可能なバイナリデータ(機械語)であるので,ユーザはその認証レジスタのアドレスと正解パスワードを知ることはきわめて困難である。
一方,ベンダは,機能制限を解除することが許されたユーザに,上記のライブラリとは別に,解除対象の関数に対応する正解パスワードとその認証レジスタのアドレスを提供する。ライセンス締結前であれば,機能制限していない関数に対するパスワードとその認証レジスタのアドレスが,ベンダ側からユーザに提供される。また,ライセンス締結後であれば,機能制限していた関数に対するパスワードとその認証レジスタのアドレスが,ベンダ側からユーザに提供される。これにより,ユーザは,ハードウエア初期値データにこの認証レジスタのアドレスとパスワードを含めることができ,その結果,後述する機能制限解除処理によりそれに対応するミドルウエアの関数が実行可能状態になる。
最後に,ブートローダは,アプリケーション121の先頭番地へジャンプする処理を行う(S23)。図3,4で説明したとおり,アプリケーション121の先頭番地にはミドルウエア初期化関数を呼び出す命令が記述されているので,そのミドルウエア初期化関数がCPUにより実行されることになる。なお,アプリケーション121は,通常は,ユーザにより開発されたまたは開発中のプログラムである。
図8は,ハードウエアのレジスタ群とハードウエア初期化処理とを示す図である。図8内の(1)はハードウエアのレジスタ群のレジスタアドレスREG-ADDとそこに格納されるデータDATAの一例を示す。この例では,レジスタアドレスREG-ADDがADD1〜ADD3,ADDa〜ADDdである7つのレジスタが示されている。各レジスタのビット数は例えば32ビットとする。
そして,レジスタアドレスがADD1〜ADD3のレジスタの全32ビットの領域は,ハードウエア初期化処理で32ビットの初期値が設定される初期値設定領域である。一方,レジスタアドレスがADDa,ADDcのレジスタの上位16ビットの領域は,16ビットの初期値が設定される初期値設定領域であり,下位16ビットの領域には初期値は設定されず,または少なくともミドルウエア初期化関数の実行完了までは任意のデータが格納されても良い。同様に,レジスタアドレスADDb,ADDdの全32ビット領域は,初期値は設定されず,または少なくともミドルウエア初期化関数の実行完了までは任意のデータが格納されても良い。
つまり,レジスタアドレスADDa,ADDcのレジスタの一部領域と,レジスタアドレスADDb,ADDdのレジスタの全領域は,一種の余剰レジスタである。そこで,本実施の形態では,ベンダが,これらの余剰レジスタから任意に選択したデータ領域を認証レジスタとして選択する。そして,ハードウエア初期値データ132内に,認証レジスタアドレスとパスワードが含まれている場合は,マイクロコンピュータの起動時のハードウエア初期化処理により,他の通常のレジスタとともに,その認証レジスタにパスワードPWが初期値として設定する。
図8の(2)には,一例として,ハードウエア初期化処理により,ハードウエア初期値データ132内のユーザ初期値(たとえば,図3内のデータD1,D4)と,パスワードPW(たとえば,図3内のパスワードPWa,PWb)とが,それらに対応するレジスタアドレスREG-ADDのレジスタに設定された状態が示されている。図8(1)のレジスタのデータ領域内の「任意」と示された余剰レジスタから選択した2つの領域である,アドレスADDaのレジスタの下位16ビット,アドレスADDbのレジスタの上位16ビットに,関数Aに対応するパスワードPWaが,2つに分割されて(PWa,PWb),それぞれ設定されている。
認証レジスタの領域は,上記以外にも,初期値が設定されない1つのレジスタ内の全ビット領域であってもよく,その場合は,1つのレジスタ内の全ビット領域に1つのパスワードが設定される。さらに,認証レジスタの領域は,1つのレジスタ内の初期値が設定されないビット領域の一部であってもよく,その場合は,複数のレジスタのビット領域に1つのパスワードが分割して設定される。
このように,ベンダが,余剰レジスタ及び余剰レジスタ領域から任意に選択したレジスタ領域を認証レジスタとして選択しておき,機能制限解除を許可されたユーザにだけ認証情報を提供すると,ユーザは,その認証情報(認証レジスタアドレスと認証データ(パスワード))をハードウエア初期値データに含ませることができ,その結果,マイクロコンピュータの起動時に,ブートローダによるハードウエア初期化処理により,その認証レジスタにパスワードが設定される。
上記のように,ハードウエア初期化処理でパスワードが認証レジスタに設定された後,ミドルウエア初期化関数が呼び出されてミドルウエア初期化処理がCPUにより以下のとおり実行される。
図6に戻り,ブートローダからジャンプしてきたアプリケーションの先頭番地にあるミドルウエア初期化関数が呼び出され,CPUにより実行される(S12)。ミドルウエア初期化関数122aは,CPUにより実行されることで,(1)ミドルウエア内のデータ131などの内部変数の領域をRAM20確保し,その内部変数の初期値があればそれをRAM内の領域に設定し,さらに,(2)機能制限解除処理を行う。
図9は,本実施の形態における機能制限解除処理のフローチャート図である。機能制限解除処理は,CPUに実行されることにより,全ての機能制限可能な関数について認証処理を行う。デフォルトは全ての機能制限可能な関数は実行不能状態(OFF)になっているものとする。機能制限解除処理は,CPUに実行されることにより,まず,ROMまたはRAM内のデータ13のミドルウエア内データ131の認証レジスタアドレスREG-ADDa,REG-ADDbとそれに対応する正解パスワードPWa,PWbを参照する(S31)。次に,機能制限解除処理は,認証レジスタREG-ADDa,REG-ADDb内のパスワードPWa,PWbを読み出す(S32)。つまり,機能制限解除処理は,ミドルウエア内のデータ131内のベンダが予め選択している認証レジスタのアドレスに基づいて,ハードウエアの認証レジスタに設定されているパスワードを読み出す。そして,機能制限解除処理は,各認証レジスタアドレスに対応するパスワード同士を比較して,パスワードの認証処理を行う(S34)。
そして,機能制限解除処理は,パスワードが一致していれば認証パスとなり(S35のYES),機能制限解除フラグをONにしてその関数を実行可能状態にし,一致していなければ認証不能となり(S35のNO),機能制限解除フラグはOFFのままでその関数は実行不能状態のままになる。
機能制限解除処理は,CPUに実行されることにより,上記の認証処理を,全ての機能制限可能な関数に対して完了するまで繰り返す(S36)。
上記の機能制限解除処理により,機能制限を解除する関数についての認証情報(認証アドレスと認証データ(パスワード))がデータ13内のハードウエア初期値データ132内に含まれていれば,その関数は実行可能状態(機能制限解除フラグON)にされ,含まれていなければ実行不能状態(機能制限解除フラグOFF)となる。つまり,認証情報を提供されているユーザのマイクロコンピュータは,提供された認証情報に対応する関数を実行することができ,その関数に対応する機能を利用することができる。
したがって,ベンダは,単に関数の認証情報をユーザに提供するかまたはしないかにより,そのユーザに対して任意の関数の機能を制限したり機能制限を解除したりすることができる。しかも,認証情報にはパスワードに加えて認証レジスタアドレスも含まれるので,セキュリティを高く保つことができる。
再度,図6に戻り,アプリケーションは,CPUにより実行され(S13),アプリケーション内のミドルウエア関数が呼び出されると(S14),その関数が機能制限可能な場合は,図5で説明したとおり許可フラグチェック処理が行われる(S15)。前述したミドルウエア初期化関数内の機能制限解除処理で認証パスして機能制限解除フラグがONになっている関数は(S15のYES),実行可能状態であるので,その関数は実行される(S17)。認証パスしていない関数は(S15のNO),エラーが返されて,実行されない(S16)。
このようにアプリケーションから呼び出されて所定の機能を実現する関数のうち,機能制限可能な関数は,ハードウエア初期化処理でそのパスワードが認証レジスタに設定されていれば,実行され,設定されていなければ,つまり認証レジスタ内のデータが正しいパスワードでなければ,実行を拒否される。
そして,アプリケーション実行中は,上記の処理S14,S15,S16,S17が繰り返される。
図10は,本実施の形態におけるマイクロコンピュータの評価環境を説明する図である。評価用のマイクロコンピュータ1は,量産用と同様にROM10,RAM20,CPU30,I/O34,ハードウエアモジュール40−1,40−2,40−3を有すると共に,インサーキットエミュレータICEとの図示しないインタフェース回路を有する。評価用のマイクロコンピュータ1は,インサーキットエミュレータICEを介してパソコンPCと通信可能に接続される。
ユーザによる評価環境では,ブートローダ11をPCからICEを介してCPU30に実行させて,アプリケーション121とミドルウエア122とOS123と,ミドルウエア内のデータ131とハードウエア初期値データ132とを,パソコンPCからICEを介して,例えばマイクロコンピュータ1内のRAM20に展開する。ただし,ブートローダ11が,一部のプログラム121,122,123やデータ131,132をROM10から展開させてもよい。つまり,ブートローダ11もユーザにより開発され,そのブートローダの実行によりユーザの希望するようにマイクロコンピュータ1内のRAMにプログラムやデータが展開される。
このような評価環境において,ベンダは,ユーザに,ミドルウエア122とそのデータ131とを有するライブラリと,機能制限しない関数の認証情報PWc,PWdと,適切な場合はOS123を提供し,ユーザはその提供された認証情報PWc,PWdに基づいて,ハードウエア初期値データ132に認証レジスタアドレスとパスワードを含ませる。一方,ベンダは,ユーザに,機能制限する関数の認証情報PWa,PWbは提供しない。その結果,ユーザは,ハードウエア初期値データ132にその認証情報PWa,PWbの認証アドレスとパスワードを含ませることができない。したがって,図10では,ハードウエア初期値データ132内には破線で示されるとおり認証情報PWa,PWbは含まれていない。
認証情報PWa,PWbには,認証データであるパスワードに加えて認証レジスタのアドレスも含まれているので,その情報を提供されていないユーザは,多数のレジスタからベンダが任意に選択した認証レジスタを見つけることができず,機能制限を解除することはきわめて困難である。
図11は,本実施の形態におけるマイクロコンピュータの量産チップを説明する図である。量産用のマイクロコンピュータ1は,図2で説明したとおり,ROM10,RAM20,CPU30,I/O34,ハードウエアモジュール40−1,40−2,40−3を有する。そして,ベンダは,ライセンス契約を締結したユーザに,評価時には機能制限されていた関数の認証情報PWa,PWbを提供する。その結果,ユーザは,提供された認証情報(認証アドレスと認証データ(パスワード))に基づいて,ハードウエア初期値データ132内に認証情報PWa,PWbを含めることができる。
そして,ユーザは,評価時にすでにベンダから提供されていたミドルウエア122とそのデータ131とに加えて,OSと,開発済みのアプリケーション121と,ブートローダ11と,新たに提供された認証情報PWa,PWbを有するハードウエア初期値データ132を,量産チップ1のROM10に格納する。
したがって,量産化されたマイクロコンピュータ1は,機能制限を解除された関数を実行することができ,それに対応する機能を使用することができる。
以上のとおり,本実施の形態によれば,ベンダは,ユーザに対してミドルウエアとそのデータを含むライブラリを提供し,制限したい関数の認証情報は提供しない。これにより,ユーザは一部の機能を制限された状態でマイクロコンピュータとライブラリを評価する。そして,ライセンス契約を締結したユーザに対して,その機能制限を解除するための認証情報を提供する。これにより,そのユーザに対して機能制限を解除することができる。しかも,認証情報は,単に機能制限を解除するためのパスワードだけでなく,そのパスワードを設定すべき認証レジスタのアドレスも含まれるので,ユーザは機能制限を解除することがきわめて困難であり,高いセキュリティ性を保つことができる。
以上の実施の形態をまとめると,以下の付記のとおりである。
(付記1)
CPUと,
複数のレジスタと,
初期値と当該初期値を設定すべきレジスタアドレスとを有するハードウエア初期化データを格納する記録媒体と,
前記ハードウエア初期化データに基づいて前記レジスタアドレスのレジスタに前記初期値を設定するハードウエア初期化手段と,
所望の機能を実現する処理を実行する機能関数手段と,
前記機能関数手段の機能制限を解除するための認証情報を有し,前記認証情報に基づいて,前記複数のレジスタから予め選択された認証レジスタ内の認証データが正しいか否かを判断し,正しい場合に前記認証情報に対応する機能関数手段を実行可能状態にする機能制限解除処理を行う機能制限解除手段とを有することを特徴とするマイクロコンピュータ。
(付記2)
付記1において,
前記機能制限解除手段が有する認証情報は,前記認証レジスタのアドレスと前記認証レジスタに対応する前記認証データを有し,
前記ハードウエア初期化手段は,前記ハードウエア初期化データに前記認証レジスタのアドレスと前記認証データとが含まれている場合に,前記認証レジスタに前記認証データを初期値として設定することを特徴とするマイクロコンピュータ。
(付記3)
付記1において,
さらに,前記機能関数手段を呼び出すアプリケーション手段を有し,
前記ハードウエア初期化手段が前記レジスタに初期値を設定する処理をした後に,前記アプリケーション手段が前記機能関数手段を呼び出す前に,前記機能制限解除手段が前記機能制限解除処理を実行することを特徴とするマイクロコンピュータ。
(付記4)
前記機能制限解除手段は,前記認証レジスタ内の認証データが正しい場合に,前記機能関数手段の許可フラグを許可状態にして前記機能関数手段を実行可能状態にし,
前記機能関数手段は,前記アプリケーション手段によって呼び出されたときに,前記許可フラグが許可状態か否かを判定し,許可状態の場合に前記所望の機能を実現する処理を実行し,許可状態でない場合には前記所望の機能を実現する処理を実行しないことを特徴とするマイクロコンピュータ。
(付記5)
CPUと,複数のレジスタと,初期値と当該初期値を設定すべきレジスタアドレスとを有するハードウエア初期化データを格納する記録媒体と,前記ハードウエア初期化データに基づいて前記レジスタアドレスのレジスタに前記初期値を設定するハードウエア初期化手段と,所望の機能を実現する処理を実行する機能関数手段とを有するマイクロコンピュータにより実行可能なミドルウエアのプログラムであって,
前記ミドルエウアのプログラムは,前記機能関数手段の機能制限を解除するための認証情報に基づいて,前記複数のレジスタから予め選択された認証レジスタ内の認証データが正しいか否かを判断し,正しい場合に前記認証情報に対応する機能関数手段を実行可能状態にする機能制限解除処理を行うことを特徴とするミドルウエアのプログラム。
(付記6)
付記5において,
前記認証情報は,前記認証レジスタのアドレスと前記認証レジスタに対応する前記認証データを有し,
前記ハードウエア初期化手段は,前記ハードウエア初期化データに前記認証レジスタのアドレスと前記認証データとが含まれている場合に,前記認証レジスタに前記認証データを初期値として設定することを特徴とするミドルウエアのプログラム。
(付記7)
付記5において,
さらに,前記マイクロコンピュータは,前記機能関数手段を呼び出すアプリケーション手段を有し,
前記ミドルウエアのプログラムは,前記ハードウエア初期化手段が前記レジスタに初期値を設定する処理をした後に,前記アプリケーション手段が前記機能関数手段を呼び出す前に,前記機能制限解除処理を実行することを特徴とするミドルウエアのプログラム。
(付記8)
CPUと,複数のレジスタと,初期値と当該初期値を設定すべきレジスタアドレスとを有するハードウエア初期化データを格納する記録媒体と,所望の機能を実現する処理を実行する機能関数手段とを有するマイクロコンピュータの動作方法であって,
前記ハードウエア初期化データに基づいて前記レジスタアドレスのレジスタに前記初期値を設定するハードウエア初期化工程と,
前記ハードウエア初期化工程の後に,前記機能関数手段の機能制限を解除するための認証情報に基づいて,前記複数のレジスタから予め選択された認証レジスタ内の認証データが正しいか否かを判断し,正しい場合に前記認証情報に対応する機能関数手段を実行可能状態にする機能制限解除処理工程とを有することを特徴とするマイクロコンピュータの動作方法。
(付記9)
付記8において,
前記認証情報は,前記認証レジスタのアドレスと前記認証レジスタに対応する前記認証データを有し,
前記ハードウエア初期化工程では,前記ハードウエア初期化データに前記認証レジスタのアドレスと前記認証データとが含まれている場合に,前記認証レジスタに前記認証データを初期値として設定することを特徴とするマイクロコンピュータの動作方法。
(付記10)
付記8において,
さらに,前記マイクロコンピュータは,前記機能関数手段を呼び出すアプリケーション手段を有し,
前記機能制限解除処理工程は,前記ハードウエア初期化手段が前記レジスタに初期値を設定する処理をした後に,前記アプリケーション手段が前記機能関数手段を呼び出す前に実行されることを特徴とするマイクロコンピュータの動作方法。
10:ROM
20:RAM
30:CPU
40:ハードウエアモジュール
41:レジスタ群
PW:認証データ

Claims (5)

  1. CPUと,
    複数のレジスタと,
    初期値と当該初期値を設定すべき前記複数のレジスタの一部の初期化レジスタの初期化レジスタアドレスとを有するハードウエア初期化データを格納する記録媒体とを有し,
    前記CPUは,
    前記ハードウエア初期化データに基づいて前記初期化レジスタアドレスの初期化レジスタに前記初期値を設定し,前記ハードウエア初期化データに第1の認証データと前記第1の認証データを設定すべき第1のレジスタの第1のレジスタアドレスとが含まれている場合は,前記第1のレジスタアドレスの第1のレジスタに前記第1の認証データを設定し,
    前記複数のレジスタの前記初期化レジスタ以外の複数のレジスタから予め選択された認証レジスタの第2のレジスタアドレスと第2の認証データとを有する認証情報に基づいて,前記第2のレジスタアドレスの前記認証レジスタ内のデータ前記第2の認証データと一致するか否かを判断し,一致する場合に前記認証情報に対応する機能関数を実行可能状態にする機能制限解除処理を行い,
    前記実行可能状態の前記機能関数を実行して所望の機能を実現する,マイクロコンピュータ。
  2. 請求項1において,
    前記CPUは,さらに,
    前記機能関数を呼び出すアプリケーションを実行し
    前記初期化レジスタに前記初期値を設定した後に,前記アプリケーションが前記機能関数を呼び出す前に,前記機能制限解除処理を実行することを特徴とするマイクロコンピュータ。
  3. 請求項1において,
    前記CPUは,
    前記機能制限解除処理で,前記認証レジスタ内のデータ前記第2の認証データと一致する場合に,前記機能関数の許可フラグを許可状態にして前記機能関数を実行可能状態にし,
    前記機能関数がアプリケーションによって呼び出されたときに,前記許可フラグが許可状態か否かを判定し,許可状態の場合に前記所望の機能を実現する処理を実行し,許可状態でない場合には前記所望の機能を実現する処理を実行しないことを特徴とするマイクロコンピュータ。
  4. CPUと,複数のレジスタと,初期値と当該初期値を設定すべき前記複数のレジスタの一部の初期化レジスタの初期化レジスタアドレスとを有するハードウエア初期化データを格納する記録媒体と,前記ハードウエア初期化データに基づいて前記初期化レジスタアドレスの初期化レジスタに前記初期値を設定し,前記ハードウエア初期化データに第1の認証データと前記第1の認証データを設定すべき第1のレジスタの第1のレジスタアドレスとが含まれている場合は,前記第1のレジスタアドレスの第1のレジスタに前記第1の認証データを設定するハードウエア初期化手段とを有するマイクロコンピュータにより実行可能なミドルウエアのプログラムであって,
    前記複数のレジスタの前記初期化レジスタ以外の複数のレジスタから予め選択された認証レジスタの第2のレジスタアドレスと第2の認証データとを有する認証情報に基づいて,前記第2のレジスタアドレスの前記認証レジスタ内のデータ前記第2の認証データと一致するか否かを判断し,一致する場合に前記認証情報に対応する機能関数を実行可能状態にする機能制限解除処理を前記CPUに実行させることを特徴とするミドルウエアのプログラム。
  5. CPUと,複数のレジスタと,初期値と当該初期値を設定すべき前記複数のレジスタの一部の初期化レジスタの初期化レジスタアドレスとを有するハードウエア初期化データを格納する記録媒体とを有するマイクロコンピュータの動作方法であって,
    前記ハードウエア初期化データに基づいて前記初期化レジスタアドレスの初期化レジスタに前記初期値を設定し,前記ハードウエア初期化データに第1の認証データと前記第1の認証データを設定すべき第1のレジスタの第1のレジスタアドレスとが含まれている場合は,前記第1のレジスタアドレスの第1のレジスタに前記第1の認証データを設定するハードウエア初期化工程と,
    前記ハードウエア初期化工程の後に,前記複数のレジスタの前記初期化レジスタ以外の複数のレジスタから予め選択された認証レジスタの第2のレジスタアドレスと第2の認証データとを有する認証情報に基づいて,前記第2のレジスタアドレスの前記認証レジスタ内のデータ前記第2の認証データと一致するか否かを判断し,一致する場合に前記認証情報に対応する機能関数を実行可能状態にする機能制限解除処理工程とを有することを特徴とするマイクロコンピュータの動作方法。
JP2012277002A 2012-12-19 2012-12-19 マイクロコンピュータ,そのミドルウエア及びマイクロコンピュータの動作方法 Expired - Fee Related JP6079208B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2012277002A JP6079208B2 (ja) 2012-12-19 2012-12-19 マイクロコンピュータ,そのミドルウエア及びマイクロコンピュータの動作方法
US14/097,441 US9218478B2 (en) 2012-12-19 2013-12-05 Microcomputer, middleware, and operating method for the same
CN201310706075.7A CN103886268A (zh) 2012-12-19 2013-12-19 微型计算机、中间件及其操作方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012277002A JP6079208B2 (ja) 2012-12-19 2012-12-19 マイクロコンピュータ,そのミドルウエア及びマイクロコンピュータの動作方法

Publications (2)

Publication Number Publication Date
JP2014120118A JP2014120118A (ja) 2014-06-30
JP6079208B2 true JP6079208B2 (ja) 2017-02-15

Family

ID=50932622

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012277002A Expired - Fee Related JP6079208B2 (ja) 2012-12-19 2012-12-19 マイクロコンピュータ,そのミドルウエア及びマイクロコンピュータの動作方法

Country Status (3)

Country Link
US (1) US9218478B2 (ja)
JP (1) JP6079208B2 (ja)
CN (1) CN103886268A (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018160029A (ja) * 2017-03-22 2018-10-11 株式会社東芝 半導体集積回路
JP7226831B2 (ja) * 2018-08-02 2023-02-21 Necソリューションイノベータ株式会社 ライセンス管理装置、プログラム実行装置及び方法、並びにアプリケーションプログラム
US11394702B2 (en) 2019-09-23 2022-07-19 T-Mobile Usa, Inc. Authentication system when authentication is not functioning

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6188995B1 (en) * 1997-07-28 2001-02-13 Apple Computer, Inc. Method and apparatus for enforcing software licenses
US6571335B1 (en) * 1999-04-01 2003-05-27 Intel Corporation System and method for authentication of off-chip processor firmware code
JP2004104539A (ja) * 2002-09-11 2004-04-02 Renesas Technology Corp メモリカード
JP4099039B2 (ja) 2002-11-15 2008-06-11 松下電器産業株式会社 プログラム更新方法
JP2005011151A (ja) * 2003-06-20 2005-01-13 Renesas Technology Corp メモリカード
US7734359B2 (en) * 2005-11-14 2010-06-08 General Electric Company Systems and methods for capturing data within an intelligent electronic device
JP2008108239A (ja) * 2006-09-29 2008-05-08 Brother Ind Ltd 情報処理装置および情報処理プログラム
JP4653230B2 (ja) * 2008-09-22 2011-03-16 株式会社エヌ・ティ・ティ・ドコモ Api検査装置及び状態監視装置
JP5457363B2 (ja) * 2008-10-10 2014-04-02 パナソニック株式会社 情報処理装置、認証システム、認証装置、情報処理方法、情報処理プログラム、記録媒体及び集積回路
JP5222742B2 (ja) * 2009-01-14 2013-06-26 株式会社日立製作所 デジタル放送受信装置及びデジタル放送受信装置における受信設定方法
CN102547502B (zh) * 2010-12-17 2014-12-24 索尼爱立信移动通讯有限公司 一种耳机、耳机使用控制方法及终端

Also Published As

Publication number Publication date
CN103886268A (zh) 2014-06-25
US9218478B2 (en) 2015-12-22
US20140173718A1 (en) 2014-06-19
JP2014120118A (ja) 2014-06-30

Similar Documents

Publication Publication Date Title
US8006095B2 (en) Configurable signature for authenticating data or program code
US7711944B2 (en) Method and apparatus for securely updating and booting code image
US7937575B2 (en) Information processing system, program product, and information processing method
US8694761B2 (en) System and method to secure boot both UEFI and legacy option ROM's with common policy engine
CN102279760B (zh) 利用初始保护组件来进行设备引导
US9836601B2 (en) Protecting anti-malware processes
JP5419776B2 (ja) 半導体装置及びデータ処理方法
JP6073320B2 (ja) デジタル署名するオーソリティ依存のプラットフォームシークレット
US9710652B1 (en) Verifying boot process of electronic device
US8386763B1 (en) System and method for locking down a capability of a computer system
US8219978B2 (en) Information processing device
JP6079208B2 (ja) マイクロコンピュータ,そのミドルウエア及びマイクロコンピュータの動作方法
US8732444B2 (en) Information processing device and information processing method
CN112613011B (zh) U盘系统认证方法、装置、电子设备及存储介质
CN113901473A (zh) 一种服务器安全启动的方法、装置、设备及可读介质
JP5465738B2 (ja) システム・ファームウェアの更新方法およびコンピュータ
CN115794136A (zh) eFUSE烧录方法、装置和电子设备及存储介质
TWI428786B (zh) 建立一受保護之計算環境的方法
Nelson et al. Modeling and analysis of trusted boot processes based on actor network procedures
JP5761880B2 (ja) 自動車
JP5603993B2 (ja) 電装ユニット及びデータ処理方法
CN113448681A (zh) 一种虚拟机监控器公钥的注册方法、设备和存储介质
TW202341162A (zh) 一次性可程式化記憶體的安全程式化
Amato et al. Mobile Systems Secure State Management
CN117609984A (zh) 基于risc-v架构的代码校验方法及装置

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20150610

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150826

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160628

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160810

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170102

R150 Certificate of patent or registration of utility model

Ref document number: 6079208

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees