(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5718373
(24)【登録日】2015年3月27日
(45)【発行日】2015年5月13日
(54)【発明の名称】不揮発性メモリのメモリブロックを検査する方法
(51)【国際特許分類】
G06F 21/60 20130101AFI20150423BHJP
【FI】
G06F21/60 320
【請求項の数】8
【全頁数】8
(21)【出願番号】特願2012-555346(P2012-555346)
(86)(22)【出願日】2011年2月7日
(65)【公表番号】特表2013-533521(P2013-533521A)
(43)【公表日】2013年8月22日
(86)【国際出願番号】EP2011051714
(87)【国際公開番号】WO2011107319
(87)【国際公開日】20110909
【審査請求日】2012年8月31日
(31)【優先権主張番号】102010002472.4
(32)【優先日】2010年3月1日
(33)【優先権主張国】DE
(73)【特許権者】
【識別番号】501125231
【氏名又は名称】ローベルト ボッシュ ゲゼルシャフト ミット ベシュレンクテル ハフツング
(74)【代理人】
【識別番号】100095957
【弁理士】
【氏名又は名称】亀谷 美明
(74)【代理人】
【識別番号】100096389
【弁理士】
【氏名又は名称】金本 哲男
(74)【代理人】
【識別番号】100101557
【弁理士】
【氏名又は名称】萩原 康司
(74)【代理人】
【識別番号】100128587
【弁理士】
【氏名又は名称】松本 一騎
(72)【発明者】
【氏名】イーレ、マルクス
(72)【発明者】
【氏名】ブーベック、オリファー
(72)【発明者】
【氏名】ハイェク、ヤン
(72)【発明者】
【氏名】ショクローラヒ、ジャムシッド
【審査官】
脇岡 剛
(56)【参考文献】
【文献】
特開2008−140384(JP,A)
【文献】
特開2003−242030(JP,A)
【文献】
特開2008−112443(JP,A)
【文献】
特開2008−022074(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/60
G06F 21/64
(57)【特許請求の範囲】
【請求項1】
不揮発性メモリのメモリブロックを検査する方法であって、第1の時点に、前記メモリブロック(131、132、133)のための第1の認証コードが、秘密鍵ワードを利用して定められ(209)、かつ、認証コードメモリテーブル(120)に格納され(211)、第2の時点に、前記検査のために、前記メモリブロック(131、132、133)のための第2の認証コードが、前記秘密鍵ワードを利用して定められ(307)、かつ、前記第1の認証コードと比較され(307)、前記第1の認証コードと前記第2の認証コードとが一致する場合に、前記メモリブロック(131、132、133)が検査され(309)、
前記認証コードメモリテーブル(120)の第3の認証コードが、前記秘密鍵ワードを用いて定められ、アドレスメモリブロック(162)に格納される(214)、方法。
【請求項2】
前記認証コードメモリテーブル(120)には、前記メモリブロック(131、132、133)のメモリアドレスおよびメモリ長が追加的に格納される(211)、請求項1に記載の方法。
【請求項3】
前記認証コードメモリテーブル(120)のメモリアドレスおよびメモリ長が、前記アドレスメモリブロック(162)に格納される(214)、請求項1または2に記載の方法。
【請求項4】
前記アドレスメモリブロックは、セキュアなメモリ領域内に設けられる、請求項1または3に記載の方法。
【請求項5】
前記秘密鍵ワードは、第三者が読出しできないセキュアなメモリ領域に格納される、請求項1〜4のいずれか1項に記載の方法。
【請求項6】
前記認証コードメモリテーブル(120)は、前記不揮発性メモリ(110)内に設けられる、請求項1〜5のいずれか1項に記載の方法。
【請求項7】
前記セキュアなメモリ領域を有し、前記認証コード(121、122、123)を定めるよう構成された電子式セキュリティモジュール(160)が利用される、請求項4または5に記載の方法。
【請求項8】
請求項1〜7のいずれか1項に記載の方法を実行するよう構成された演算ユニット。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、不揮発性メモリのメモリブロックを検査する方法に関する。
【発明の概要】
【発明が解決しようとする課題】
【0002】
本発明は、特定のメモリブロック、特に不揮発性メモリ(NVM、non volatile memory)に対する、許可されていない操作を検出するために利用することが可能である。本発明は、例えば、安全な適用のために利用される埋め込みシステム、制御装置等のような演算ユニットのメモリブロックの検査のために特に適している。この種のメモリブロックは、例えば、安全性に関わるもしくはセーフティクリティカル(sicherheitskritisch)な機能、または、非対称暗号化方法で利用される公開鍵を実行するためのプログラムコードを含むため、このメモリブロックの真正性(Authentizitaet)およびその評価または利用が保障される必要がある。
【0003】
この種のメモリを検査するために、ハッシュ関数を利用することが公知である。その際に、最初に、検査される各メモリブロックのためにハッシュ値が計算され、不正使用ができない(manipulationssicher)特別なメモリ領域に格納される。後の検査では、メモリブロックのハッシュ値が新たに定められ、格納されている値と比較される。2つの値が一致する場合には、メモリブロックに損傷が無いことが確認されうる。この種の技術は、例えばTPM(Trusted Platform Module)で使用される。
【0004】
公知の方法の欠点は、検査されるメモリブロックの各ハッシュ値のために、不正使用ができないメモリを提供する必要があることである。結果として、比較的大きなセキュアなメモリ領域を提供する必要があり、このことは比較的コストが高い。「セキュアなメモリ領域」とは、第三者が書込みできないメモリ領域として理解される。
【0005】
したがって、不揮発性メモリのメモリブロックを検査するための、リソースを大切に利用する方法を提示することが望ましい。
【課題を解決するための手段】
【0006】
本発明によれば、請求項1の特徴を備えた方法が提案される。好適な実施形態は、従属請求項および以下の明細書の記載の主題である。
【0007】
本発明は、認証コード、すなわち特別なMAC(Message Authentication Code、メッセージ認証コード)を、検査されるメモリブロックのために定めるという措置に利用される。その際に、本発明は、秘密鍵ワードまたは秘密鍵を利用するため、提供されるセキュアなメモリ領域の大きさは、基本的に、秘密鍵ワードを記録できる大きさに制限される。秘密鍵ワードは、外部から当該秘密鍵ワードにアクセスできず特に読み出せないように、セキュアなメモリ領域に格納される。検査は、演算ユニット内で完全かつ自動的に行われる。従来技術では、公知のハッシュ関数が利用され、したがって、メモリブロックのためのハッシュ値は、原則的に、誰でも決定することができる。結果として、ハッシュ値は、操作が排除されるように、安全に格納される必要がある。しかしながら、本発明では暗号鍵ワードが利用されるため、ハッシュ値に匹敵する計算された認証コードは、正に誰もが決定できるわけではない。結果として、特定の認証コードを、任意の箇所に、特に非セキュアなメモリ用域にも格納することができる。利用される鍵ワードのみが、セキュアなメモリ領域に格納される。結果として、セキュアなメモリ位置に対する需要が著しく低減され、演算ユニットの簡素化およびコストの節約に繋がる。
【0008】
有利に、認証コードメモリテーブルには、検査されるメモリブロックのメモリアドレスおよびメモリ長が追加的に格納される。したがって、認証コードがどのメモリブロックに属するのかを、簡単に検査することができる。
【0009】
好適に、認証コードメモリテーブルのメモリアドレスおよびメモリ長がアドレスメモリブロックに格納され、したがって、認証コードメモリテーブルは常に、現在の状態に対して調整可能であり、例えば、予め定められた固定のメモリアドレスおよびメモリ長によって、フレキシビリティの制限が発生しない。したがって、認証コードメモリテーブルは、特に不揮発性メモリ内にも設けることが可能である。
【0010】
好適な実施形態において、認証コードメモリテーブルのための認証コードも、秘密鍵ワードを利用して定められ、アドレスメモリブロックに格納される。したがって、実際に正しい認証コードメモリテーブルが利用されているかを常に検査することが可能であるため、不正使用を最大限防止しつつ上記フレキシビリティが実現される。
【0011】
安全性をより高めるために、アドレスメモリブロックは、有利に、セキュアなメモリ領域内に設けられる。ここで「セキュアなメモリ領域」とは、第三者が書込みできないメモリ領域として理解される。
【0012】
実施形態において、セキュアなメモリ領域を有し、認証コードを定めるよう構成された電子式セキュリティモジュールが利用される。したがって、簡単なやり方で、既存のシステムに部品を増備することが可能である。
【0013】
本発明に係る演算ユニット、例えば、車両の制御装置は、特にプログラム技術的に、本発明に係る方法を実行するために構成される。上記演算ユニットは特に、先に述べたように、電子式セキュリティモジュールを有する。
【0014】
特に、実行する制御ユニットがさらなる別のタスクのためにさらに利用され、したがっていずれにせよ存在する場合には、ソフトウェアの形態による本発明の実現も、特にコストが低いため有利である。コンピュータプログラムを提供するための適切なデータ担体は、特に、フロッピィディスク、ハードディスク、フラッシュメモリ、EEPROM、CD−ROM、DVD、およびその他のものである。コンピュータネットワーク(インターネット、イントラネット等)を介したプログラムのダウンロードも可能である。
【0015】
本発明のさらなる利点および実施形態は、以下の明細書の記載および添付の図面から明らかとなろう。
【0016】
先に述べた特徴および以下で解説される特徴は、各示される組み合わせのみならず他の組み合わせでも、または、単独でも、本発明の範囲を逸脱することなく利用されうる。
【図面の簡単な説明】
【0017】
本発明が、実施形態を用いて図面に概略的に示され、以下では、図面を参照して詳細に解説される。
【
図1】本発明に係る演算ユニットの一実施形態のブロック図を示す。
【
図2】本発明に係る方法の一実施形態の、第1の時点に行われる部分のフローチャートを示す。
【
図3】本発明に係る方法の一実施形態の、第2の時点に行われる部分のフローチャートを示す。
【発明を実施するための形態】
【0018】
図1には、本発明に係る演算ユニットの好適な実施形態が概略的に示され、全体に符号100が付されている。演算ユニット100は、CPU、RAM等のような図示されないさらなる別の構成要素の他に、3つの構成要素110、150、および、160を有し、この3つの構成要素110、150、および、160は、図示される好適な実施形態による本発明の実現に寄与し、以下で、順番に解説される。
【0019】
演算ユニット100は、不揮発性メモリ(NVM)110を有し、この不揮発性メモリ110には、検査すべきメモリブロック131、132等が格納される。これは、例えば、ファームウェアの構成要素、鍵等であってもよく、したがって、メモリブロックの真正性が保障される。不揮発性メモリ110には、個々のテーブル領域121、122等を備えた認証コードメモリテーブル120が格納される。
【0020】
演算ユニット100はさらに、不揮発性メモリ110に書き込むことが可能な書込みモジュール150を備える。書込みモジュール150は、CPUの構成要素または外部の構成要素であってもよい。さらに、演算ユニット100は、電子式セキュリティモジュール160を有し、この電子式セキュリティモジュール160は、暗号化演算を実行する役目を有し、セキュアなメモリ領域を提供する。セキュリティモジュール160は、第三者が読出しできないセキュアなメモリ領域161を含み、このメモリ領域161には、認証コードを生成するための秘密鍵ワードが格納される。さらに、セキュリティモジュール160は、アドレスメモリブロックを収容するためのセキュアなメモリ領域162を有し、このメモリ領域162には、認証コードメモリテーブル120の認証コード、メモリアドレス、および、メモリ長が格納される。セキュリティモジュール160はさらに、処理モジュール163と、任意に、対称暗号化を加速するためのコプロセッサ164とを備える。
【0021】
図2には、本発明に係る方法の一実施形態の第1の時点に行われる部分であって、認証コードの生成のために役立つ上記部分が記載されている。
【0022】
最初に、ステップ201において、書込みモジュール150は、当該書込みモジュール150が不揮発性メモリ110の書込みのために許可されていることを、任意の認証方法を利用してセキュリティモジュール160に確認する。
【0023】
ステップ202で、セキュリティモジュール160は、認証が成功したかどうかを検査する。認証が成功しなかった場合には、セキュリティモジュール160は、ステップ203で、対応する通知を書込みモジュール150に送信し、ステップ204で本方法を中止する。
【0024】
これに対して認証が成功した場合には、セキュリティモジュール160は、ステップ205で、対応する成功通知を書込みモジュール150に送信する。
【0025】
続いて、書込みモジュール150が、ステップ206で、第1の保護すべきブロック、すなわち、
図1の131から開始して、ステップ207で、最後の保護すべきブロックに既に到達したかどうかを検査する。最後の保護すべきブロックに到達していない場合には、書込みモジュール150は、ステップ208で、該当するブロックのメモリアドレスおよびメモリ長を、セキュリティモジュール160に伝達する。
【0026】
ステップ209で、セキュリティモジュール160は、該当するメモリブロックを不揮発性メモリ110から読み出し、セキュアなメモリ領域161に格納された鍵ワードを用いて、付属する認証コードを計算する。この認証コードは、ステップ210で書込みモジュール150に伝達され、書込みモジュール150は、ステップ211で、この認証コードを、ブロック131のメモリアドレスおよびメモリ長と共に、認証コードメモリテーブル120、ここではテーブル領域121に書き込む。
【0027】
これに続く行程ステップ212で次のブロックが選択されて、ステップ207に戻る。本方法を対応して複数回実行した後で、ステップ207において、最後のブロックnが処理されたことが確認された場合に、ステップ213で、認証コードメモリテーブル120のメモリアドレスおよびメモリ長が、セキュリティモジュール160に伝達され、セキュリティモジュール160は、続いてステップ214において、認証コードメモリテーブル120のための認証コードを計算し、この認証コードをメモリアドレスおよびメモリ長と共に、セキュアなメモリ領域162に格納する。
【0028】
以下では、
図3を用いて、駆動中に実行されるメモリブロック131等の検査が解説される。
【0029】
ステップ301において、書込みモジュール150は、セキュリティモジュール160に、認証コードメモリテーブル120を検査するよう要求する。
【0030】
これに応じて、セキュリティモジュール160は、ステップ302で、自身がメモリ領域162からその位置およびその長さを読み出せる認証コードメモリテーブル120のための認証コードを計算し、計算した値を、同様にメモリ領域162に格納された値と比較する。セキュリティモジュール160は、行程ステップ303で、この比較結果を書込みモジュール150に伝達し、書込みモジュール150は、ステップ304で、当該結果を評価する。認証コードが一致しない場合には、この結果はインスタンス309に伝達され、インスタンス309は、比較結果に基づいて決定を行う。
【0031】
しかしながら、認証コードが一致する場合には、書込みモジュール150は、ステップ305で、検査すべきメモリブロックのメモリアドレス、メモリ長、および認証コードを、認証コードメモリテーブル120から読み出す。例えば、ブロック132を検査すべき場合には、書込みモジュール150はテーブル領域122を読み出す。
【0032】
ステップ306において、書込みモジュール150は、このデータをセキュリティモジュール160に伝達し、セキュリティモジュール160は、ステップ307で、データを用いて、該当するメモリブロック、例えば132を不揮発性メモリ110内で読み出し、その認証コードを計算する。続いて、セキュリティモジュール160は、新たに計算された認証コードを、書込みモジュール150から伝達された認証コードと比較し、ステップ308で、比較結果を書込みモジュール150に伝達する。
【0033】
その後、書込みモジュール150は、ステップ309で、比較結果に基づいて対応する決定を行う。
【0034】
本発明によって、メモリブロックを検査し、このために必要なセキュアなメモリの需要を小さく抑えることが可能である。