(57)【要約】本発明は、不揮発性メモリのメモリブロックを検査する方法であって、第１の時点に、メモリブロック（１３１、１３２、１３３）のための第１の認証コードが、秘密鍵ワードを利用して定められ（２０９）、かつ、認証コードメモリテーブル（１２０）に格納され（２１１）、第２の時点に、検査のために、メモリブロック（１３１、１３２、１３３）のための第２の認証コードが、秘密鍵ワードを利用して定められ（３０７）、かつ、第１の認証コードと比較され（３０７）、第１の認証コードと第２の認証コードとが一致する場合に、メモリブロック（１３１、１３２、１３３）が検査される（３０９）、上記方法に関する。【選択図】図１
2013533521.tif 000002
【特許請求の範囲】
【請求項１】
不揮発性メモリのメモリブロックを検査する方法であって、第１の時点に、前記メモリブロック（１３１、１３２、１３３）のための第１の認証コードが、秘密鍵ワードを利用して定められ（２０９）、かつ、認証コードメモリテーブル（１２０）に格納され（２１１）、第２の時点に、前記検査のために、前記メモリブロック（１３１、１３２、１３３）のための第２の認証コードが、前記秘密鍵ワードを利用して定められ（３０７）、かつ、記第１の認証コードと比較され（３０７）、前記第１の認証コードと前記第２の認証コードとが一致する場合に、前記メモリブロック（１３１、１３２、１３３）が検査される（３０９）、方法。
【請求項２】
前記認証コードメモリテーブル（１２０）には、前記メモリブロック（１３１、１３２、１３３）のメモリアドレスおよびメモリ長が追加的に格納される（２１１）、請求項１に記載の方法。
【請求項３】
前記認証コードメモリテーブル（１２０）のメモリアドレスおよびメモリ長が、アドレスメモリブロック（１６２）に格納される（２１４）、請求項１または２に記載の方法。
【請求項４】
前記認証コードメモリテーブル（１２０）の第３の認証コードが、前記秘密鍵ワードを用いて定められ、前記アドレスメモリブロック（１６２）に格納される（２１４）、請求項３に記載の方法。
【請求項５】
前記アドレスメモリブロックは、セキュアなメモリ領域（１６２）内に設けられる、請求項３または４に記載の方法。
【請求項６】
前記秘密鍵ワードは、第三者が読出しできないセキュアなメモリ領域（１６１）に格納される、請求項１〜５のいずれか１項に記載の方法。
【請求項７】
前記認証コードメモリテーブル（１２０）は、前記不揮発性メモリ（１１０）内に設けられる、請求項１〜６のいずれか１項に記載の方法。
【請求項８】
前記セキュアなメモリ領域（１６１、１６２）を有し、前記認証コード（１２１、１２２、１２３）を定めるよう構成された電子式セキュリティモジュール（１６０）が利用される、請求項１〜７のいずれか１項に記載の方法。
【請求項９】
請求項１〜８のいずれか１項に記載の方法を実行するよう構成された演算ユニット。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、不揮発性メモリのメモリブロックを検査する方法に関する。
【発明の概要】
【発明が解決しようとする課題】
【０００２】
本発明は、特定のメモリブロック、特に不揮発性メモリ（ＮＶＭ、ｎｏｎ  ｖｏｌａｔｉｌｅ  ｍｅｍｏｒｙ）に対する、許可されていない操作を検出するために利用することが可能である。本発明は、例えば、安全な適用のために利用される埋め込みシステム、制御装置等のような演算ユニットのメモリブロックの検査のために特に適している。この種のメモリブロックは、例えば、安全性に関わるもしくはセーフティクリティカル（ｓｉｃｈｅｒｈｅｉｔｓｋｒｉｔｉｓｃｈ）な機能、または、非対称暗号化方法で利用される公開鍵を実行するためのプログラムコードを含むため、このメモリブロックの真正性（Ａｕｔｈｅｎｔｉｚｉｔａｅｔ）およびその評価または利用が保障される必要がある。
【０００３】
この種のメモリを検査するために、ハッシュ関数を利用することが公知である。その際に、最初に、検査される各メモリブロックのためにハッシュ値が計算され、不正使用ができない（ｍａｎｉｐｕｌａｔｉｏｎｓｓｉｃｈｅｒ）特別なメモリ領域に格納される。後の検査では、メモリブロックのハッシュ値が新たに定められ、格納されている値と比較される。２つの値が一致する場合には、メモリブロックに損傷が無いことが確認されうる。この種の技術は、例えばＴＰＭ（Ｔｒｕｓｔｅｄ  Ｐｌａｔｆｏｒｍ  Ｍｏｄｕｌｅ）で使用される。
【０００４】
公知の方法の欠点は、検査されるメモリブロックの各ハッシュ値のために、不正使用ができないメモリを提供する必要があることである。結果として、比較的大きなセキュアなメモリ領域を提供する必要があり、このことは比較的コストが高い。「セキュアなメモリ領域」とは、第三者が書込みできないメモリ領域として理解される。
【０００５】
したがって、不揮発性メモリのメモリブロックを検査するための、リソースを大切に利用する方法を提示することが望ましい。
【課題を解決するための手段】
【０００６】
本発明によれば、請求項１の特徴を備えた方法が提案される。好適な実施形態は、従属請求項および以下の明細書の記載の主題である。
【０００７】
本発明は、認証コード、すなわち特別なＭＡＣ（Ｍｅｓｓａｇｅ  Ａｕｔｈｅｎｔｉｃａｔｉｏｎ  Ｃｏｄｅ、メッセージ認証コード）を、検査されるメモリブロックのために定めるという措置に利用される。その際に、本発明は、秘密鍵ワードまたは秘密鍵を利用するため、提供されるセキュアなメモリ領域の大きさは、基本的に、秘密鍵ワードを記録できる大きさに制限される。秘密鍵ワードは、外部から当該秘密鍵ワードにアクセスできず特に読み出せないように、セキュアなメモリ領域に格納される。検査は、演算ユニット内で完全かつ自動的に行われる。従来技術では、公知のハッシュ関数が利用され、したがって、メモリブロックのためのハッシュ値は、原則的に、誰でも決定することができる。結果として、ハッシュ値は、操作が排除されるように、安全に格納される必要がある。しかしながら、本発明では暗号鍵ワードが利用されるため、ハッシュ値に匹敵する計算された認証コードは、正に誰もが決定できるわけではない。結果として、特定の認証コードを、任意の箇所に、特に非セキュアなメモリ用域にも格納することができる。利用される鍵ワードのみが、セキュアなメモリ領域に格納される。結果として、セキュアなメモリ位置に対する需要が著しく低減され、演算ユニットの簡素化およびコストの節約に繋がる。
【０００８】
有利に、認証コードメモリテーブルには、検査されるメモリブロックのメモリアドレスおよびメモリ長が追加的に格納される。したがって、認証コードがどのメモリブロックに属するのかを、簡単に検査することができる。
【０００９】
好適に、認証コードメモリテーブルのメモリアドレスおよびメモリ長がアドレスメモリブロックに格納され、したがって、認証コードメモリテーブルは常に、現在の状態に対して調整可能であり、例えば、予め定められた固定のメモリアドレスおよびメモリ長によって、フレキシビリティの制限が発生しない。したがって、認証コードメモリテーブルは、特に不揮発性メモリ内にも設けることが可能である。
【００１０】
好適な実施形態において、認証コードメモリテーブルのための認証コードも、秘密鍵ワードを利用して定められ、アドレスメモリブロックに格納される。したがって、実際に正しい認証コードメモリテーブルが利用されているかを常に検査することが可能であるため、不正使用を最大限防止しつつ上記フレキシビリティが実現される。
【００１１】
安全性をより高めるために、アドレスメモリブロックは、有利に、セキュアなメモリ領域内に設けられる。ここで「セキュアなメモリ領域」とは、第三者が書込みできないメモリ領域として理解される。
【００１２】
実施形態において、セキュアなメモリ領域を有し、認証コードを定めるよう構成された電子式セキュリティモジュールが利用される。したがって、簡単なやり方で、既存のシステムに部品を増備することが可能である。
【００１３】
本発明に係る演算ユニット、例えば、車両の制御装置は、特にプログラム技術的に、本発明に係る方法を実行するために構成される。上記演算ユニットは特に、先に述べたように、電子式セキュリティモジュールを有する。
【００１４】
特に、実行する制御ユニットがさらなる別のタスクのためにさらに利用され、したがっていずれにせよ存在する場合には、ソフトウェアの形態による本発明の実現も、特にコストが低いため有利である。コンピュータプログラムを提供するための適切なデータ担体は、特に、フロッピィディスク、ハードディスク、フラッシュメモリ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭ、ＤＶＤ、およびその他のものである。コンピュータネットワーク（インターネット、イントラネット等）を介したプログラムのダウンロードも可能である。
【００１５】
本発明のさらなる利点および実施形態は、以下の明細書の記載および添付の図面から明らかとなろう。
【００１６】
先に述べた特徴および以下で解説される特徴は、各示される組み合わせのみならず他の組み合わせでも、または、単独でも、本発明の範囲を逸脱することなく利用されうる。
【図面の簡単な説明】
【００１７】
本発明が、実施形態を用いて図面に概略的に示され、以下では、図面を参照して詳細に解説される。
【図１】本発明に係る演算ユニットの一実施形態のブロック図を示す。
【図２】本発明に係る方法の一実施形態の、第１の時点に行われる部分のフローチャートを示す。
【図３】本発明に係る方法の一実施形態の、第２の時点に行われる部分のフローチャートを示す。
【発明を実施するための形態】
【００１８】
図１には、本発明に係る演算ユニットの好適な実施形態が概略的に示され、全体に符号１００が付されている。演算ユニット１００は、ＣＰＵ、ＲＡＭ等のような図示されないさらなる別の構成要素の他に、３つの構成要素１１０、１５０、および、１６０を有し、この３つの構成要素１１０、１５０、および、１６０は、図示される好適な実施形態による本発明の実現に寄与し、以下で、順番に解説される。
【００１９】
演算ユニット１００は、不揮発性メモリ（ＮＶＭ）１１０を有し、この不揮発性メモリ１１０には、検査すべきメモリブロック１３１、１３２等が格納される。これは、例えば、ファームウェアの構成要素、鍵等であってもよく、したがって、メモリブロックの真正性が保障される。不揮発性メモリ１１０には、個々のテーブル領域１２１、１２２等を備えた認証コードメモリテーブル１２０が格納される。
【００２０】
演算ユニット１００はさらに、不揮発性メモリ１１０に書き込むことが可能な書込みモジュール１５０を備える。書込みモジュール１５０は、ＣＰＵの構成要素または外部の構成要素であってもよい。さらに、演算ユニット１００は、電子式セキュリティモジュール１６０を有し、この電子式セキュリティモジュール１６０は、暗号化演算を実行する役目を有し、セキュアなメモリ領域を提供する。セキュリティモジュール１６０は、第三者が読出しできないセキュアなメモリ領域１６１を含み、このメモリ領域１６１には、認証コードを生成するための秘密鍵ワードが格納される。さらに、セキュリティモジュール１６０は、アドレスメモリブロックを収容するためのセキュアなメモリ領域１６２を有し、このメモリ領域１６２には、認証コードメモリテーブル１２０の認証コード、メモリアドレス、および、メモリ長が格納される。セキュリティモジュール１６０はさらに、処理モジュール１６３と、任意に、対称暗号化を加速するためのコプロセッサ１６４とを備える。
【００２１】
図２には、本発明に係る方法の一実施形態の第１の時点に行われる部分であって、認証コードの生成のために役立つ上記部分が記載されている。
【００２２】
最初に、ステップ２０１において、書込みモジュール１５０は、当該書込みモジュール１５０が不揮発性メモリ１１０の書込みのために許可されていることを、任意の認証方法を利用してセキュリティモジュール１６０に確認する。
【００２３】
ステップ２０２で、セキュリティモジュール１６０は、認証が成功したかどうかを検査する。認証が成功しなかった場合には、セキュリティモジュール１６０は、ステップ２０３で、対応する通知を書込みモジュール１５０に送信し、ステップ２０４で本方法を中止する。
【００２４】
これに対して認証が成功した場合には、セキュリティモジュール１６０は、ステップ２０５で、対応する成功通知を書込みモジュール１５０に送信する。
【００２５】
続いて、書込みモジュール１５０が、ステップ２０６で、第１の保護すべきブロック、すなわち、図１の１３１から開始して、ステップ２０７で、最後の保護すべきブロックに既に到達したかどうかを検査する。最後の保護すべきブロックに到達していない場合には、書込みモジュール１５０は、ステップ２０８で、該当するブロックのメモリアドレスおよびメモリ長を、セキュリティモジュール１６０に伝達する。
【００２６】
ステップ２０９で、セキュリティモジュール１６０は、該当するメモリブロックを不揮発性メモリ１１０から読み出し、セキュアなメモリ領域１６１に格納された鍵ワードを用いて、付属する認証コードを計算する。この認証コードは、ステップ２１０で書込みモジュール１５０に伝達され、書込みモジュール１５０は、ステップ２１１で、この認証コードを、ブロック１３１のメモリアドレスおよびメモリ長と共に、認証コードメモリテーブル１２０、ここではテーブル領域１２１に書き込む。
【００２７】
これに続く行程ステップ２１２で次のブロックが選択されて、ステップ２０７に戻る。本方法を対応して複数回実行した後で、ステップ２０７において、最後のブロックｎが処理されたことが確認された場合に、ステップ２１３で、認証コードメモリテーブル１２０のメモリアドレスおよびメモリ長が、セキュリティモジュール１６０に伝達され、セキュリティモジュール１６０は、続いてステップ２１４において、認証コードメモリテーブル１２０のための認証コードを計算し、この認証コードをメモリアドレスおよびメモリ長と共に、セキュアなメモリ領域１６２に格納する。
【００２８】
以下では、図３を用いて、駆動中に実行されるメモリブロック１３１等の検査が解説される。
【００２９】
ステップ３０１において、書込みモジュール１５０は、セキュリティモジュール１６０に、認証コードメモリテーブル１２０を検査するよう要求する。
【００３０】
これに応じて、セキュリティモジュール１６０は、ステップ３０２で、自身がメモリ領域１６２からその位置およびその長さを読み出せる認証コードメモリテーブル１２０のための認証コードを計算し、計算した値を、同様にメモリ領域１６２に格納された値と比較する。セキュリティモジュール１６０は、行程ステップ３０３で、この比較結果を書込みモジュール１５０に伝達し、書込みモジュール１５０は、ステップ３０４で、当該結果を評価する。認証コードが一致しない場合には、この結果はインスタンス３０９に伝達され、インスタンス３０９は、比較結果に基づいて決定を行う。
【００３１】
しかしながら、認証コードが一致する場合には、書込みモジュール１５０は、ステップ３０５で、検査すべきメモリブロックのメモリアドレス、メモリ長、および認証コードを、認証コードメモリテーブル１２０から読み出す。例えば、ブロック１３２を検査すべき場合には、書込みモジュール１５０はテーブル領域１２２を読み出す。
【００３２】
ステップ３０６において、書込みモジュール１５０は、このデータをセキュリティモジュール１６０に伝達し、セキュリティモジュール１６０は、ステップ３０７で、データを用いて、該当するメモリブロック、例えば１３２を不揮発性メモリ１１０内で読み出し、その認証コードを計算する。続いて、セキュリティモジュール１６０は、新たに計算された認証コードを、書込みモジュール１５０から伝達された認証コードと比較し、ステップ３０８で、比較結果を書込みモジュール１５０に伝達する。
【００３３】
その後、書込みモジュール１５０は、ステップ３０９で、比較結果に基づいて対応する決定を行う。
【００３４】
本発明によって、メモリブロックを検査し、このために必要なセキュアなメモリの需要を小さく抑えることが可能である。
【図１】
2013533521.tif 000003
【図２】
2013533521.tif 000004
【図３】
2013533521.tif 000005