JP7270511B2 - 制御装置及び方法 - Google Patents
制御装置及び方法 Download PDFInfo
- Publication number
- JP7270511B2 JP7270511B2 JP2019164794A JP2019164794A JP7270511B2 JP 7270511 B2 JP7270511 B2 JP 7270511B2 JP 2019164794 A JP2019164794 A JP 2019164794A JP 2019164794 A JP2019164794 A JP 2019164794A JP 7270511 B2 JP7270511 B2 JP 7270511B2
- Authority
- JP
- Japan
- Prior art keywords
- hash
- memory
- data
- value
- reference value
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Storage Device Security (AREA)
Description
第1~第3実施形態において、マイクロコントローラの処理内容は異なるが基本的な構成は同じであるので、共通する構成について説明した後、各実施形態における処理内容について説明する。
図1は、第1~第3実施形態に共通のマイクロコントローラ10の構成を示す。
図1に示すように、マイクロコントローラ10は、CPU(Central Processing Unit)11、RAM(Random Access Memory)12、I/Oインターフェイス13、乱数生成器14、タイマー15及びフラッシュメモリ16を備える。
マイクロコントローラ10は、マイクロコントローラ10の初期化、アプリケーションのバージョンアップ等のため、外部コンピュータ50に接続されることがある。
表示部56は、CPU51の指示に従って操作画面等を表示するディスプレイである。
(初期化処理)
マイクロコントローラ10は、外部コンピュータ50に接続されて初期化処理されることで、プログラムデータの検証に必要なデータがフラッシュメモリ16に書き込まれる。
ハッシュチェーンxi=SHA256(ハッシュチェーンx(i-1))
SHA256()は、()内のデータ値からハッシュ値を生成するハッシュ関数SHA256を表す。
図3に示すように、ハッシュ関数SHA256を用いて、ハッシュチェーンx1からハッシュチェーンx2が生成され、ハッシュチェーンx2からハッシュチェーンx3が生成される。このようにハッシュチェーンのハッシュ値を次のハッシュチェーンとする処理を繰り返すことにより、1番目のハッシュチェーンx1からn番目のハッシュチェーンxnまで順番に生成される。
図4A~図4Cに示すように、OTPメモリ23にはn個のスロット231~23nが設けられている。各スロット231~23nは、各バージョンの参照値に対応する。バージョンの数を表す係数k(k=1~n)が各スロット231~23nのアドレスとして割り当てられている。
図5は、マイクロコントローラ10においてプログラムデータの真正性を検証する処理手順を示す。この処理は、例えばアプリケーションを起動するときのセキュアブートとしてCPU11によって実行される。
第1実施形態ではプログラムデータの全部のハッシュ値を計算したが、第2実施形態では、ハッシュ値の計算をプログラムデータの一部とすることにより、第1実施形態よりもハッシュ値の計算を高速化する。
第2実施形態における初期化処理では、第1実施形態と同様に、外部コンピュータ50がハッシュチェーンx1~xnを生成して末尾のハッシュチェーンxnをマイクロコンピュータ10に保存した後、参照値を生成する。第2実施形態の参照値は、プログラムデータが分割されたm個の各データ部分のハッシュ値である。
参照値wk=SHA256(参照値y1||参照値y2||…||参照値ym)
式中の||は、連結を表す。SHA256()は、()内のデータ値からハッシュ値を生成するハッシュ関数SHA256を表す。
図6A~図6Cに示すように、第2実施形態のnon-OTPメモリ24には、スロット240に加えてm個のスロット241~24mが設けられている。1つのスロットは、1つの参照値に対応する。また、第1実施形態と同様に、non-OTPメモリ24にはスロット240が設けられ、OTPメモリ23にはスロット231~23nが設けられている。
図7は、第2実施形態に係るマイクロコトンローラ10がプログラムデータの真正性を検証する処理手順を示す。この処理は、例えばアプリケーションを起動するときのセキュアブートとしてCPU11によって実行される。
第3実施形態のマイクロコントローラ10は、第1又は第2実施形態で説明したプログラムデータの検証処理を指定した時間に実行することにより、セキュリティをより高める。
例えば、アプリケーションのバージョンが更新されるごとに異なるハッシュチェーンを保存することでセキュリティを高めることができるが、ハッシュチェーンxnより前に生成されるハッシュチェーンx1~x(n-1)のいずれかであれば最後のハッシュチェーンxnを計算できる。よって、更新ごとに異なるハッシュチェーンを書き込むのではなく、ハッシュチェーンx1~x(n-1)から選択した1つのハッシュチェーン、例えばハッシュチェーンx5を毎回保存するようにしてもよい。
Claims (12)
- プログラムデータからハッシュ関数を用いてハッシュ値を計算し、前記ハッシュ値が参照値と同じであるか否かを判断することにより、前記プログラムデータの真正性を検証する検証処理部(11)と、
データの書き換えが不可能な第1メモリ(23)と、
データの書き換えが可能な第2メモリ(24)と、を備え、
前記第1メモリ(23)には、前記参照値と、前記ハッシュ関数を繰り返し用いて所定長のデータから計算された1~n番目のハッシュチェーンのうちのn番目のハッシュチェーンと、が保存され、
前記第2メモリ(24)には、前記1~n番目のハッシュチェーンのうちの1~n-1番目のハッシュチェーンのいずれかが保存され、
前記検証処理部(11)は、前記ハッシュ関数を用いて前記第2メモリ(24)に保存された前記1~n-1番目のハッシュチェーンのいずれかからn番目のハッシュチェーンを計算し、前記プログラムデータから計算されたハッシュ値が前記参照値と同じであり、かつ前記計算されたn番目のハッシュチェーンと前記第1メモリ(23)に保存された前記n番目のハッシュチェーンとが同じである場合、前記プログラムデータが真正であると判断する、
制御装置(10)。 - 前記参照値は、前記プログラムデータの全部から計算されたハッシュ値であり、
前記検証処理部(11)は、前記プログラムデータの全部からハッシュ値を計算し、前記計算されたハッシュ値が前記参照値と同じか否かを判断する、
請求項1に記載の制御装置(10)。 - プログラムデータからハッシュ関数を用いてハッシュ値を計算し、前記ハッシュ値が参照値と同じであるか否かを判断することにより、前記プログラムデータの真正性を検証する検証処理部(11)と、
データの書き換えが不可能な第1メモリ(23)と、
データの書き換えが可能な第2メモリ(24)と、を備え、
前記第1メモリ(23)には、前記参照値のハッシュ値と、前記ハッシュ関数を繰り返し用いて所定長のデータから計算された1~n番目のハッシュチェーンのうちのn番目のハッシュチェーンとが保存され、
前記第2メモリ(24)には、前記参照値と、前記1~n番目のハッシュチェーンのうちの1~n-1番目のハッシュチェーンのいずれかとが保存され、
前記検証処理部(11)は、前記ハッシュ関数を用いて、前記第2メモリ(24)に保存された参照値からハッシュ値を計算するとともに前記第2メモリ(24)に保存された前記1~n-1番目のハッシュチェーンのいずれかからn番目のハッシュチェーンを計算し、前記プログラムデータから計算されたハッシュ値が前記参照値と同じであり、かつ前記参照値から計算されたハッシュ値が前記保存された参照値のハッシュ値と同じであって、前記計算されたn番目のハッシュチェーンが前記保存されたn番目のハッシュチェーンと同じである場合、前記プログラムデータが真正であると判断する、
制御装置(10)。 - 前記参照値は、前記プログラムデータが分割されたm個の各データ部分のハッシュ値であり、
前記検証処理部(11)は、前記プログラムデータのいずれかのデータ部分のハッシュ値を計算し、前記計算されたハッシュ値が前記参照値として保存された前記いずれかのデータ部分のハッシュ値と同じか否かを判断する、
請求項3に記載の制御装置(10)。 - 前記参照値のハッシュ値は、前記各データ部分のハッシュ値を連結したデータ列のハッシュ値であり、
前記検証処理部(11)は、前記参照値として保存された前記各データ部分のハッシュ値を連結したデータ列を生成し、当該データ列のハッシュ値を計算して前記保存された参照値のハッシュ値と同じか否かを判断する、
請求項4に記載の制御装置(10)。 - 前記参照値は、前記プログラムデータが更新されるごとに、更新後のバージョンの前記プログラムデータから計算され、保存される、
請求項1~5のいずれか一項に記載の制御装置(10)。 - 前記プログラムデータのバージョンの数をkで表すとき、前記第2メモリ(24)に保存された前記1~n-1番目のハッシュチェーンのいずれかは、n-k+1番目のハッシュチェーンであり、
前記検証処理部(11)は、前記n-k+1番目のハッシュチェーンに前記ハッシュ関数を繰り返し用いて前記n番目のハッシュチェーンを計算する、
請求項6に記載の制御装置(10)。 - 前記検証処理部(11)は、前記検証を指定した時間に実行する、
請求項1~7のいずれか一項に記載の制御装置(10)。 - データの書き換えが不可能な第1メモリ(23)とデータの書き換えが可能な第2メモリ(24)とを備え、プログラムデータの真正性を検証する制御装置(10)を初期化する方法であって、
ハッシュ関数を繰り返し用いて所定長のデータから1~n番目のハッシュチェーンを計算するステップと、
前記検証に用いる参照値として、前記ハッシュ関数を用いて前記プログラムデータからハッシュ値を計算するステップと、
前記計算された参照値と、前記1~n番目のハッシュチェーンのうちのn番目のハッシュチェーンとを、前記第1メモリ(23)に保存するステップと、
前記1~n番目のハッシュチェーンのうちの1~n-1番目のハッシュチェーンのいずれかを、前記第2メモリ(24)に保存するステップと、
を含む方法。 - データの書き換えが不可能な第1メモリ(23)と、データの書き換えが可能な第2メモリ(24)と、を備える制御装置(10)において、プログラムデータの真正性を検証する方法であって、
前記プログラムデータからハッシュ関数を用いてハッシュ値を計算し、前記ハッシュ値が参照値と同じであるか否かを判断することにより、前記プログラムデータの真正性を検証するステップを含み、
前記第1メモリ(23)には、前記参照値と、前記ハッシュ関数を繰り返し用いて所定長のデータから計算された1~n番目のハッシュチェーンのうちのn番目のハッシュチェーンと、が保存され、
前記第2メモリ(24)には、前記1~n番目のハッシュチェーンのうちの1~n-1番目のハッシュチェーンのいずれかが保存され、
前記検証するステップは、
前記ハッシュ関数を用いて、前記第2メモリ(24)に保存された前記1~n-1番目のハッシュチェーンのいずれかからn番目のハッシュチェーンを計算するステップと、
前記プログラムデータから計算されたハッシュ値が前記参照値と同じであり、かつ前記計算されたn番目のハッシュチェーンと前記保存されたn番目のハッシュチェーンとが同じである場合、前記プログラムデータが真正であると判断するステップと、
を含む方法。 - データの書き換えが不可能な第1メモリ(23)とデータの書き換えが可能な第2メモリ(24)とを備え、プログラムデータの真正性を検証する制御装置(10)を初期化する方法であって、
ハッシュ関数を繰り返し用いて所定長のデータから1~n番目のハッシュチェーンを計算するステップと、
前記検証に用いる参照値として、前記ハッシュ関数を用いて前記プログラムデータからハッシュ値を計算するステップと、
前記ハッシュ関数を用いて前記参照値からハッシュ値を計算するステップと、
前記参照値から計算されたハッシュ値と、前記1~n番目のハッシュチェーンのうちのn番目のハッシュチェーンとを、前記第1メモリ(23)に保存するステップと、
前記参照値と、前記1~n番目のハッシュチェーンのうちの1~n-1番目のハッシュチェーンのいずれかとを、前記第2メモリ(24)に保存するステップと、
を含む方法。 - データの書き換えが不可能な第1メモリ(23)と、データの書き換えが可能な第2メモリ(24)と、を備える制御装置(10)においてプログラムデータの真正性を検証する方法であって、
前記プログラムデータからハッシュ関数を用いてハッシュ値を計算し、前記ハッシュ値が参照値と同じであるか否かを判断することにより、前記プログラムデータの真正性を検証するステップを含み、
前記第1メモリ(23)には、前記参照値から計算されたハッシュ値と、前記ハッシュ関数を繰り返し用いて所定長のデータから計算された1~n番目のハッシュチェーンのうちのn番目のハッシュチェーンとが保存され、
前記第2メモリ(24)には、前記参照値と、前記1~n番目のハッシュチェーンのうちの1~n-1番目のハッシュチェーンのいずれかとが保存され、
前記検証するステップは、
前記ハッシュ関数を用いて、前記第2メモリ(24)に保存された参照値からハッシュ値を計算するステップと、
前記第2メモリ(24)に保存された前記1~n-1番目のハッシュチェーンのいずれかからn番目のハッシュチェーンを計算するステップと、
前記プログラムデータから計算されたハッシュ値が前記参照値と同じであり、かつ前記参照値から計算されたハッシュ値が前記保存された参照値のハッシュ値と同じであって、前記計算されたn番目のハッシュチェーンが前記保存された前記n番目のハッシュチェーンと同じである場合、前記プログラムデータが真正であると判断するステップと、
を含む方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019164794A JP7270511B2 (ja) | 2019-09-10 | 2019-09-10 | 制御装置及び方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019164794A JP7270511B2 (ja) | 2019-09-10 | 2019-09-10 | 制御装置及び方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2021043674A JP2021043674A (ja) | 2021-03-18 |
JP7270511B2 true JP7270511B2 (ja) | 2023-05-10 |
Family
ID=74861603
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019164794A Active JP7270511B2 (ja) | 2019-09-10 | 2019-09-10 | 制御装置及び方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP7270511B2 (ja) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005210479A (ja) | 2004-01-23 | 2005-08-04 | Ntt Data Corp | タイムスタンプシステム、タイムスタンプ要求装置、タイムスタンプ検証装置、及び、コンピュータプログラム |
JP2008293033A (ja) | 2003-09-18 | 2008-12-04 | Apple Inc | インクリメンタルなコード署名の方法及び装置 |
JP2015022521A (ja) | 2013-07-19 | 2015-02-02 | スパンション エルエルシー | セキュアブート方法、組み込み機器、セキュアブート装置およびセキュアブートプログラム |
JP2015036847A (ja) | 2013-08-12 | 2015-02-23 | 株式会社東芝 | 半導体装置 |
US20190042725A1 (en) | 2018-06-28 | 2019-02-07 | Xiaoyu Ruan | System, Apparatus And Method For Independently Recovering A Credential |
-
2019
- 2019-09-10 JP JP2019164794A patent/JP7270511B2/ja active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008293033A (ja) | 2003-09-18 | 2008-12-04 | Apple Inc | インクリメンタルなコード署名の方法及び装置 |
JP2005210479A (ja) | 2004-01-23 | 2005-08-04 | Ntt Data Corp | タイムスタンプシステム、タイムスタンプ要求装置、タイムスタンプ検証装置、及び、コンピュータプログラム |
JP2015022521A (ja) | 2013-07-19 | 2015-02-02 | スパンション エルエルシー | セキュアブート方法、組み込み機器、セキュアブート装置およびセキュアブートプログラム |
JP2015036847A (ja) | 2013-08-12 | 2015-02-23 | 株式会社東芝 | 半導体装置 |
US20190042725A1 (en) | 2018-06-28 | 2019-02-07 | Xiaoyu Ruan | System, Apparatus And Method For Independently Recovering A Credential |
Also Published As
Publication number | Publication date |
---|---|
JP2021043674A (ja) | 2021-03-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6595822B2 (ja) | 情報処理装置及びその制御方法 | |
CN107545184B (zh) | 云主机的可信度量系统及方法 | |
US8880898B2 (en) | Anti-roll-back mechanism for counter | |
US10650151B2 (en) | Method of execution of a binary code of a secure function by a microprocessor | |
JP5740573B2 (ja) | 情報処理装置および情報処理方法 | |
US20110113181A1 (en) | System and method for updating a basic input/output system (bios) | |
JP6925542B2 (ja) | ソフトウェア検証装置、ソフトウェア検証方法およびソフトウェア検証プログラム | |
CN103093150A (zh) | 一种基于可信芯片的动态完整性保护方法 | |
CN109997140B (zh) | 使用一次写入寄存器从设备的睡眠状态加速安全启动的低功耗嵌入式设备 | |
US10621330B2 (en) | Allowing use of a test key for a BIOS installation | |
US10942868B2 (en) | Execution process of binary code of function secured by microprocessor | |
JP6744256B2 (ja) | 確認システム、制御装置及び確認方法 | |
JP7270511B2 (ja) | 制御装置及び方法 | |
US11657157B2 (en) | Secure boot system, method and apparatus | |
JP5277935B2 (ja) | ライセンス管理システム及び方法 | |
JP7171339B2 (ja) | 情報処理装置、情報処理装置の制御方法、及び、プログラム | |
KR100772881B1 (ko) | 자기 수정 코드의 무결성 검증 장치 및 방법 | |
JP7341376B2 (ja) | 情報処理装置、情報処理方法、及び、情報処理プログラム | |
TW202022660A (zh) | 映像檔打包方法及映像檔打包系統 | |
TWI797932B (zh) | 韌體驗證系統及韌體驗證方法 | |
CN117193863B (zh) | 主机引导程序的启动方法、装置、系统和处理器 | |
US20230129942A1 (en) | Method for locking a rewritable non-volatile memory and electronic device implementing said method | |
EP3620944B1 (en) | Low power embedded device using a write-once register to speed up the secure boot from sleep states of the device | |
TWI728377B (zh) | 安全啟動系統、方法及裝置 | |
JP2023026017A (ja) | 起動検証プログラム、情報処理装置および起動検証方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20220901 |
|
TRDD | Decision of grant or rejection written | ||
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20230412 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20230419 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20230425 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 7270511 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |