JP2016200948A - プログラム不正書き替え防止装置 - Google Patents

プログラム不正書き替え防止装置 Download PDF

Info

Publication number
JP2016200948A
JP2016200948A JP2015080131A JP2015080131A JP2016200948A JP 2016200948 A JP2016200948 A JP 2016200948A JP 2015080131 A JP2015080131 A JP 2015080131A JP 2015080131 A JP2015080131 A JP 2015080131A JP 2016200948 A JP2016200948 A JP 2016200948A
Authority
JP
Japan
Prior art keywords
program
authentication
controller
memory
tool
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
JP2015080131A
Other languages
English (en)
Inventor
英樹 八木
Hideki Yagi
英樹 八木
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.)
Tokai Rika Co Ltd
Original Assignee
Tokai Rika Co 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 Tokai Rika Co Ltd filed Critical Tokai Rika Co Ltd
Priority to JP2015080131A priority Critical patent/JP2016200948A/ja
Publication of JP2016200948A publication Critical patent/JP2016200948A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

【課題】プログラムデータの不正書き替えを生じ難くすることができるプログラム不正書き替え防止装置を提供する。
【解決手段】ツール11からコントローラ1にアクセスしてプログラム書き替えを行うとき、不正回数計数部13は、ツール11とコントローラ1との間に課される認証(本例はチャレンジレスポンス認証)の不成立回数Kxを計数する。不正書き替え防止部14は、不成立回数Kxが規定値Kt以上となったことを確認すると、コントローラ1の第1メモリ3に書き込まれているプログラムデータPdの書き替えを制限又は禁止する処置を実行する。
【選択図】図1

Description

本発明は、コントローラに書き込まれたプログラムデータの不正書き替えを防止するプログラム不正書き替え防止装置に関する。
従来、コントローラのメモリに書き込まれたプログラムデータの不正書き替えを防止するプログラム不正書き替え防止装置が周知である(特許文献1等参照)。コントローラのプログラムデータを書き替える一例としては、例えばツールを使用する形式がある。この場合、例えばツールとコントローラとの間で認証が実施され、この認証が成立すれば、ツールによるプログラムデータの書き替えが許可される。
特開2014−88062号公報
ところで、第三者が不正なツールを使用して、コントローラのプログラムデータを書き替えようと試みる場合も想定される。ツールとコントローラとの間の認証としてチャレンジレスポンス認証を採用している場合、例えば疑似乱数を何度も繰り返して相手側に送信することにより、不正に認証を成立させてしまう行為が考えられる。よって、このような不正なプログラムデータの書き替え行為に対する対策が必要とされていた。
本発明の目的は、プログラムデータの不正書き替えを生じ難くすることができるプログラム不正書き替え防止装置を提供することにある。
前記問題点を解決するプログラム不正書き替え防止装置は、コントローラのメモリに書き込まれたプログラムが不正に書き替えられるのを防止する構成において、ツールから入力するプログラム書き替え要求を基に前記コントローラ及びツールの間で認証が実行されるにあたり、繰り返された当該認証において、該認証が不正となった回数を計数する不正回数計数部と、前記認証が不正となった回数が規定値以上となったとき、前記メモリのプログラムの書き替えを制限又は禁止する不正書き替え防止部とを備えた。
本構成によれば、ツールとコントローラとの間で実行される認証の不成立回数を計数し、不成立回数が規定値以上となったときには、コントローラのメモリに書き込まれているプログラムの書き替えを制限又は禁止する処置を実行する。このため、仮に不正なツールを用いて認証を何度も行って当該認証を不正に成立させようとする行為に対して、認証の不成立回数が規定値以上となった時点で、この不正行為を終了させることが可能となる。よって、プログラムデータの不正書き替えを生じ難くすることが可能となる。
前記プログラム不正書き替え防止装置において、前記認証は、チャレンジレスポンス認証であることが好ましい。この構成によれば、第三者によりツールを通じてチャレンジレスポンスの弱点をつくような不正行為をされても、認証の不成立回数が規定値以上となったときにプログラムの書き替えが制限又は停止される。よって、2者間の認証にチャレンジレスポンス認証を使用したとしても、プログラムの不正書き替えを生じ難くすることが可能となる。
前記プログラム不正書き替え防止装置において、前記コントローラは、前記プログラムの書き込み先となる第1メモリと、前記認証が不正となった回数を書き込む第2メモリとを備え、前記不正回数計数部は、前記認証が不正となった回数を前記第2メモリに逐次書き込んでいくことにより、当該回数を計数することが好ましい。この構成によれば、プログラムの書き込み箇所と不成立回数の書き込み箇所とをそれぞれ別としたので、各情報を管理し易くすることが可能となる。
前記プログラム不正書き替え防止装置において、前記不正書き替え防止部は、前記認証が不正となった回数が規定値以上となったとき、前記ツールに対して、通信不可の旨を通知する処理、又は返信を返さない処理を実行することが好ましい。この構成によれば、認証の不成立回数が規定値以上となったときには、ツールに通信不可の旨を通知する、又はツールに返信を返さないという簡素な処理により、第三者によるツールを用いたプログラムの不正書き替えに対する処置を講ずることが可能となる。
前記プログラム不正書き替え防止装置において、前記コントローラのメモリは、通常の作動時に使用される製品制御用プログラムが書き込まれ、前記不正書き替え防止部は、前記認証が不正となった回数が規定値以上となったとき、前記メモリに書き込まれている前記製品制御用プログラムを消去して、リカバリ動作を実行することが好ましい。この構成によれば、認証の不成立回数が規定値以上となったときには、コントローラにリカバリ動作を実行させるので、リカバリ後、第三者が所持するようなツール(不正ツール)ではプログラム書き替えを実行することができなくなる。よって、プログラム不正書き替えの防止に一層有利となる。
本発明によれば、プログラムデータの不正書き替えを生じ難くすることができる。
一実施形態のプログラム不正書き替え防止装置の構成図。 ツール及びコントローラの間で実行される認証のシーケンス図。 認証が不正と判定されたときの処置の一例を示すシーケンス図。 認証が不正と判定されたときの他の処置の一例を示す説明図。
以下、プログラム不正書き替え防止装置の一実施形態を図1〜図4に従って説明する。
図1に示すように、コントローラ1は、例えばECU(Electronic Control Unit)からなる。コントローラ1は、コントローラ1の作動を制御する制御部2と、コントローラ1の作動時に実行されるプログラムデータPdが書き込まれた第1メモリ3と、プログラムデータPdによってのみ書き込み及び読み出しが可能な第2メモリ4とを備える。第1メモリ3及び第2メモリ4は、例えば不揮発性メモリからなり、第1メモリ3がプログラムROM(Read Only Memory)からなり、第2メモリ4がデータフラッシュからなることが好ましい。
第1メモリ3には、コントローラ1を通常時において作動させる際に実行される製品制御用プログラム5と、コントローラ1をリカバリ動作(初期化)するときに実行されるリカバリ用プログラム6とが書き込み保存されている。制御部2は、製品制御用プログラム5を実行することにより、コントローラ1における演算や、他のECUとのデータ通信などを実行する。また、制御部2は、例えばコントローラ1においてリカバリを開始する要件が揃ったときや、外部からリカバリ要求等の指令を受け付けたとき、リカバリ用プログラム6を実行することにより、コントローラ1を初期化する。
コントローラ1は、プログラムデータPdの不正書き替えを防止するプログラム不正書き替え防止機能(プログラム不正書き替え防止装置10)を備える。ところで、コントローラ1のプログラムデータPdを書き替えるにあたっては、コントローラ1との間でチャレンジレスポンス認証が成立することが課されている。チャレンジレスポンス認証は、相手側に疑似乱数であるチャレンジコードを送信して演算させ、その演算結果であるレスポンスコードを取得して、これの正否を確認する認証である。本例のプログラム不正書き替え防止装置10は、例えばコントローラ1に接続された外部のツール11からの不正なプログラム書き替え行為に対して、プログラムデータPdが意図に不正に書き替えられてしまうことに対する対策として設けられている。本例が想定するプログラム不正書き替え行為は、例えばプログラムデータPdの連続的な書き替え攻撃である。
プログラム不正書き替え防止装置10は、プログラム不正書き替え防止装置10を実現するにあたってのソフトウェアとなるプログラム書き替え制御情報12を備える。プログラム書き替え制御情報12は、第1メモリ3に書き込み保存されている。本例のプログラム書き替え制御情報12は、チャレンジレスポンス認証の不成立となる回数(不成立回数Kx)を計数し、その回数が規定値Kt以上となったときに、プログラム不正書き替え行為に対する処置を実行することを実現するソフトウェアである。
プログラム不正書き替え防止装置10は、チャレンジレスポンス認証の不成立回数を計数する不正回数計数部13を備える。不正回数計数部13は、制御部2がプログラム書き替え制御情報12を実行することにより、制御部2に機能的に生成される。不正回数計数部13は、ツール11から入力するプログラム書き替え要求を基にコントローラ1及びツール11の間で認証(本例はチャレンジレスポンス認証)が実行されるにあたり、連続的に繰り返された認証が不成立となった回数(不成立回数Kx)を計数する。不正回数計数部13は、認証の不成立回数Kxを第2メモリ4に書き込み、回数が増える度に、これを逐次更新する。
プログラム不正書き替え防止装置10は、不成立回数Kxが規定値Kt以上となったときにプログラムデータPdの書き替えを制限又は禁止する不正書き替え防止部14を備える。不正書き替え防止部14は、制御部2がプログラム書き替え制御情報12を実行することにより、制御部2に機能的に生成される。プログラムデータPdの書き替えの制限又は禁止の処理としては、例えばチャレンジレスポンス認証において相手に通信不可を通知することや、通信自体を実施しない(途中で停止する)などがある。また、これ以外としては、コントローラ1のリカバリ動作がある。
次に、図2〜図4を用いて、プログラム不正書き替え防止装置10の動作を説明する。
図2に示すように、ステップ101において、ツール11は、プログラム書き替えの実行をコントローラ1に要求するプログラム書き替え要求Saをコントローラ1に出力する。プログラム書き替え要求Saは、チャレンジレスポンス認証に必要な認証情報Sbの送信をコントローラ1に要求する認証情報出力要求であることが好ましい。この場合、プログラム書き替え要求Saは、例えばチャレンジレスポンス認証に必要な暗号鍵(共通鍵)と、認証の度に毎回異なる値をとる乱数値(チャレンジコード)とを、コントローラ1に送信させる要求であることが好ましい。
ステップ102において、コントローラ1は、ツール11からプログラム書き替え要求(認証情報出力要求)Saを受信すると、認証情報Sbをツール11に送信する。認証情報Sbは、チャレンジレスポンス認証用の暗号鍵(共通鍵)と、送信の度に値が毎回変更される乱数値(チャレンジコード)とを含む情報であることが好ましい。
ステップ103において、ツール11は、コントローラ1から受信した認証情報Sbを基に、チャレンジレスポンス認証の演算結果である鍵値(レスポンスコード)Scを演算する。本例の場合、ツール11は、コントローラ1から取得した乱数及び暗号鍵を、ツール11に登録されたアルゴリズム(関数)に通すことにより、演算を実行する。
ステップ104において、ツール11は、演算した鍵値(レスポンスコード)Scをコントローラ1に送信する。
ステップ105において、コントローラ1は、ツール11から鍵値(レスポンスコード)Scを受信すると、自らも同様に演算した鍵値(レスポンスコード)と比較することにより、認証を実行する。コントローラ1は、これら鍵値Scが一致することを確認すると、チャレンジレスポンス認証を成立とし、逆に一致しなければ、チャレンジレスポンス認証を不成立とする。このとき、不正回数計数部13は、認証(チャレンジレスポンス認証)が成立しないことを確認すると、例えば第2メモリ4のカウンタを「1」、更新するなどして、認証の不成立回数Kxを計数する。
ステップ106において、コントローラ1は、鍵値Scの認証結果Sdをツール11に通知する。すなわち、コントローラ1は、チャレンジレスポンス認証が成立すれば、認証成立の旨の通知Sdをツール11に出力し、チャレンジレスポンス認証が不成立であれば、認証不成立の旨の通知Sdをツール11に出力する。
ステップ107において、ツール11は、コントローラ1から取得した鍵値の認証結果Sdを基に、認証が成立したか否かを確認する。すなわち、認証成立の旨の通知Sdを受け付ければ、チャレンジレスポンス認証が成立したと判断し、認証不成立の旨の通知Sdを受け付ければ、チャレンジレスポンス認証が不成立であると判断する。
ところで、悪意をもった第三者がツール(不正ツール)11を通じてコントローラ1との認証(チャレンジレスポンス認証)をすり抜けようとした場合には、疑似乱数を都度生成することによってチャレンジレスポンス認証が繰り返し実行される。このとき、ツール11が不正ツールであれば認証が成立しないので、不成立回数Kxの計数値が「1」ずつ、カウントアップされていく。不正書き替え防止部14は、不成立回数Kxが規定値Kt以上となったことを確認すると、プログラム不正書き替えに対する処置を実行する。
図3に、プログラム不正書き替えに対する処置の一例を図示する。同図の例(1)に示されるように、不正書き替え防止部14は、プログラム書き替え行為が不正であると判定したとき、いま通信中のツール11に対して、通信不可の通知を実施する。また、これ以外の動作としては、同図の例(2)に示されるように、不正書き替え防止部14は、プログラム書き替え行為が不正であると判定されたとき、ツール11に返信自体を実施しない(応答を返さない)ようにしてもよい。いずれの処置を実施するにせよ、ツール11との通信が途中で強制終了されるので、プログラムデータPdが不正に書き替えられてしまうことがない。
図4に、プログラム不正書き替えに対する処置の他の例を図示する。同図に示されるように、不正書き替え防止部14は、プログラム書き替え行為が不正であると判定したとき、第1メモリ3に書き込まれている製品制御用プログラム5を消去し、リカバリ用プログラム6を実行することによって、リカバリ動作を実行してもよい。こうすれば、コントローラ1が初期化されてツール11との通信は不可となるので、プログラムデータPdが不正に書き替えられずに済む。
本実施形態の構成によれば、以下に記載の効果を得ることができる。
(1)ツール11からコントローラ1にアクセスしてプログラム書き替えを行うとき、ツール11とコントローラ1との間に課される認証(本例はチャレンジレスポンス認証)の不成立回数Kxを計数し、不成立回数Kxが規定値Kt以上となったときには、コントローラ1の第1メモリ3に書き込まれているプログラムデータPdの書き替えを制限又は禁止する処置を実行する。このため、仮に不正なツール11を用いて認証を何度も行って当該認証を不正に成立させようとする行為に対して、認証の不成立回数Kxが規定値Kt以上となった時点で、この不正行為を終了させることが可能となる。よって、コントローラ1のプログラムデータPdの不正書き替えを生じ難くすることができる。
(2)コントローラ1のプログラムデータPdをツール11により書き替えるときに課される認証は、チャレンジレスポンス認証である。ところで、チャレンジレスポンス認証には、乱数が偏ってしまう傾向があり、ツール11からコントローラ1にアクセスしたとき、この点をつき、認証をすり抜けようと試みられることも想定される。しかし、本例の場合は、認証の不成立回数Kxが規定値Kt以上となったときには、プログラム書き替えを制限するので、チャレンジレスポンス認証の弱点をつくような不正行為をされても、これに対処することができる。
(3)コントローラ1は、プログラムデータPdの書き込み先となる第1メモリ3と、認証の不成立回数Kxを書き込む第2メモリ4とを備える。よって、本例の場合、プログラムの書き込み箇所と、認証の不成立回数Kxの書き込み箇所とを、それぞれ別としたので、各情報を管理し易くすることができる。
(4)認証の不成立回数Kxが規定値Kt以上となったときの処置は、ツール11に対して通信不可の旨を通知する処理、又はツール11に返信を返さない処理とした。このため、ツール11からコントローラ1にプログラム書き替えの不正な攻撃があったときには、ツール11に通信不可の旨の通知を行う、またはツール11に応答しないという簡素な処理により、第三者によるツール11を用いたプログラムの不正書き替えに対する処置を講ずることができる。
(5)認証の不成立回数Kxが規定値Kt以上となったときの処置は、コントローラ1のリカバリ動作とした。これにより、リカバリ後は、第三者が所持するようなツール(不正なツール)11ではプログラム書き替えを実行することができなくなる。よって、プログラム不正書き替えの防止に一層有利となる。
なお、実施形態はこれまでに述べた構成に限らず、以下の態様に変更してもよい。
・一般的に、コントローラ1の第1メモリ3には、コントローラ1を作動させるにあたって逐次登録されていく設定情報が書き込まれる。設定情報は、例えばアプリケーションの一種である。この場合、認証の不成立回数Kxが規定値Kt以上となってプログラム書き替え行為が不正と判定されたときに、コントローラ1の第1メモリ3に書き込まれた設定情報を削除するようにしてもよい。このようにしても、コントローラ1から設定情報が削除された時点で通常通りの作動ができなくなるので、ツール11と通信を実行することができなくなる。よって、第三者によるツール11を通じてのプログラム不正書き替えを生じ難くすることができる。
・認証の不成立回数Kxをクリア(リセット)するのは、どのタイミングでもよい。すなわち、不成立回数Kxは、1機会の不正攻撃に対する計数値でもよいし、または複数機会に亘っての積算値でもよい。
・ツール11を用いてプログラム書き替えを行うときに両者の間に課す認証は、チャレンジレスポンス認証に限らず、相手側の正否を確認できるものであれば、種々の態様に変更可能である。
・第1メモリ3と第2メモリ4とを1つのメモリにまとめてもよい。
・認証の不成立回数Kxが規定値Kt以上となったときに実施する処置は、プログラム書き替えを制限又は禁止する処理であれば、種々の態様に変更可能である。
・本例のコントローラ1は、種々の装置や機器に適用可能である。
1…コントローラ、3…メモリ(第1メモリ)、5…製品制御用プログラム、6…リカバリ用プログラム、10…プログラム不正書き替え防止装置、11…ツール、13…不正回数計数部、14…不正書き替え防止部、Pd…プログラム(プログラムデータ)、Sa…プログラム書き替え要求、Kx…不成立回数、Kt…規定値。

Claims (5)

  1. コントローラのメモリに書き込まれたプログラムが不正に書き替えられるのを防止するプログラム不正書き替え防止装置において、
    ツールから入力するプログラム書き替え要求を基に前記コントローラ及びツールの間で認証が実行されるにあたり、繰り返された当該認証において、該認証が不正となった回数を計数する不正回数計数部と、
    前記認証が不正となった回数が規定値以上となったとき、前記メモリのプログラムの書き替えを制限又は禁止する不正書き替え防止部と
    を備えたことを特徴とするプログラム不正書き替え防止装置。
  2. 前記認証は、チャレンジレスポンス認証である
    ことを特徴とする請求項1に記載のプログラム不正書き替え防止装置。
  3. 前記コントローラは、前記プログラムの書き込み先となる第1メモリと、前記認証が不正となった回数を書き込む第2メモリとを備え、
    前記不正回数計数部は、前記認証が不正となった回数を前記第2メモリに逐次書き込んでいくことにより、当該回数を計数する
    ことを特徴とする請求項1又は2に記載のプログラム不正書き替え防止装置。
  4. 前記不正書き替え防止部は、前記認証が不正となった回数が規定値以上となったとき、前記ツールに対して、通信不可の旨を通知する処理、又は返信を返さない処理を実行する
    ことを特徴とする請求項1〜3のうちいずれか一項に記載のプログラム不正書き替え防止装置。
  5. 前記コントローラのメモリは、通常の作動時に使用される製品制御用プログラムが書き込まれ、
    前記不正書き替え防止部は、前記認証が不正となった回数が規定値以上となったとき、前記メモリに書き込まれている前記製品制御用プログラムを消去して、リカバリ動作を実行する
    ことを特徴とする請求項1〜3のうちいずれか一項に記載のプログラム不正書き替え防止装置。
JP2015080131A 2015-04-09 2015-04-09 プログラム不正書き替え防止装置 Pending JP2016200948A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015080131A JP2016200948A (ja) 2015-04-09 2015-04-09 プログラム不正書き替え防止装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015080131A JP2016200948A (ja) 2015-04-09 2015-04-09 プログラム不正書き替え防止装置

Publications (1)

Publication Number Publication Date
JP2016200948A true JP2016200948A (ja) 2016-12-01

Family

ID=57424323

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015080131A Pending JP2016200948A (ja) 2015-04-09 2015-04-09 プログラム不正書き替え防止装置

Country Status (1)

Country Link
JP (1) JP2016200948A (ja)

Similar Documents

Publication Publication Date Title
KR101756692B1 (ko) 다이나믹 보안모듈 단말장치 및 그 구동방법
KR102445518B1 (ko) 장치 키 보호
EP3918768B1 (en) Method for handling data in a secure container
US20150358321A1 (en) Storage device, information processing apparatus, and information processing method
CN106485162A (zh) 存储模块上安全保护的写和/或读过程的方法和存储模块
Konigsmark et al. System-of-PUFs: Multilevel security for embedded systems
CN108270767B (zh) 数据验证方法
CN109302442B (zh) 一种数据存储证明方法及相关设备
JP6188633B2 (ja) コンピュータシステム、コンピュータ、半導体装置、情報処理方法およびコンピュータプログラム
US11574046B2 (en) Protecting a software program against tampering
US20100287386A1 (en) Secure integrated circuit comprising means for disclosing counterpart mask values
JP2016200948A (ja) プログラム不正書き替え防止装置
KR20060134771A (ko) 휴대 가능 전자 장치 및 휴대 가능 전자 장치의 데이터출력 방법
KR101296402B1 (ko) 암호화된 시드를 이용한 모바일 오티피 장치의 등록 방법
JP6226373B2 (ja) Icカード
JP6423231B2 (ja) 情報処理システム
CN119513839A (zh) 基于Ukey的登录验证方法、装置、设备、介质及程序产品
JP2014153743A (ja) 乱数生成システム、乱数生成方法及び制御装置
Mondello et al. Using Cryptography Techniques as
JP2020046989A (ja) 認証装置
HK1189975B (en) Device for and method of handling sensitive data