(57)【特許請求の範囲】
【請求項１】
デバイスを自己保護するための方法であって、前記デバイスが、プロセッサ・ユニットおよびメモリを含み、前記プロセッサ・ユニットが、内部バスを介して接続されているプロセッサおよびプロセッサ・ユニット・メモリを含み、
電源投入時に、セキュア・キーが前記プロセッサ・ユニット・メモリ内に格納されているかどうかの判定を行い、
前記判定において、前記セキュア・キーが前記プロセッサ・ユニット・メモリ内に格納されていない場合に、前記自己保護デバイスにとって一意であり、前記自己保護デバイスによってのみ使用される前記セキュア・キーを前記プロセッサ・ユニット・メモリに格納されたファームウェアを用いて生成し、および前記セキュア・キーを前記プロセッサ・ユニット・メモリ内に格納し、
前記セキュア・キーを前記プロセッサ・ユニット・メモリに格納した後に、前記プロセッサによって前記メモリにアクセスし、前記メモリから読み取られる情報は、前記プロセッサによって前記セキュア・キーを使用して復号されるものであり、前記メモリ内に格納される情報が、前記プロセッサによって前記セキュア・キーを使用して暗号化されるものであり、前記プロセッサ・ユニットの外部のデバイスが前記プロセッサ・ユニットのインターフェースを使用して前記内部バスまたは前記プロセッサ・ユニット・メモリにアクセスすることを防止する、方法。
【請求項２】
前記プロセッサ・ユニットの外部のデバイスが前記プロセッサ・ユニットのインターフェースを使用して前記内部バスまたは前記プロセッサ・ユニット・メモリにアクセスすることを防止することは、前記プロセッサ・ユニット上のＪＴＡＧ（Ｊｏｉｎｔ  Ｔｅｓｔ  Ａｃｔｉｏｎ  Ｇｒｏｕｐ）インターフェースを無効にすることを含む、請求項１に記載の方法。
【請求項３】
前記セキュア・キーが、前記自己保護デバイス内でのみ使用される、請求項１に記載の方法。
【請求項４】
前記メモリが不揮発性ランダム・アクセス・メモリである、請求項１に記載の方法。
【請求項５】
前記セキュア・キーを生成することが、乱数発生器または擬似乱数発生器を使用して前記セキュア・キーを生成することを含む、請求項１に記載の方法。
【請求項６】
前記判定において、前記セキュア・キーが前記プロセッサ・ユニット・メモリ内に格納されている場合に、前記セキュア・キーを使用する、請求項１に記載の方法。
【請求項７】
プロセッサおよびプロセッサ・ユニット・メモリを含むプロセッサ・ユニットと前記プロセッサ・ユニットの外部のメモリとを含み、
前記プロセッサ・ユニット・メモリが、自己保護デバイスの初期化のためのコンピュータ実行可能命令を含み、前記プロセッサおよびプロセッサ・ユニット・メモリが、前記プロセッサ・ユニット内に含まれている内部バスを介して接続され、
前記プロセッサ・ユニットの外部のメモリとを含み、
前記プロセッサが、
電源投入時に、セキュア・キーが前記プロセッサ・ユニット・メモリ内に格納されているかどうかを判定し、
前記判定において、セキュア・キーが前記プロセッサ・ユニット・メモリ内に格納されていない場合に、前記自己保護デバイスにとって一意であり、前記自己保護デバイスによってのみ使用される前記セキュア・キーを前記プロセッサ・ユニット・メモリに格納されたファームウェアを用いて生成し、および前記セキュア・キーを前記プロセッサ・ユニット・メモリ内に格納するための、前記プロセッサ・ユニット・メモリからの前記コンピュータ実行可能命令を実行するように機能することができ、
前記プロセッサ・ユニット・メモリからの前記コンピュータ実行可能命令を実行している間に、前記プロセッサが、暗号化されたデータを前記プロセッサ・ユニットの外部の前記メモリから読み取り、前記セキュア・キーを使用して前記データを復号し、前記セキュア・キーを使用してデータを暗号化し、前記暗号化されたデータを前記プロセッサ・ユニットの外部の前記メモリ内に格納する、自己保護デバイス。
【請求項８】
前記プロセッサ・ユニットが、
前記プロセッサ・ユニット・メモリへのアクセスを提供するプロセッサ・ユニット・デバッグ・インターフェースをさらに含み、
前記プロセッサ・ユニット・デバッグ・インターフェースが、外部デバイスによる前記プロセッサ・ユニット・デバッグ・インターフェースを通じた前記プロセッサ・ユニット・メモリ、前記プロセッサ、または前記内部バスへのアクセスを防止するために無効にされる、請求項７に記載の自己保護デバイス。
【請求項９】
前記プロセッサ・ユニット・デバッグ・インターフェースがＪＴＡＧインターフェースである、請求項８に記載の自己保護デバイス。
【請求項１０】
前記プロセッサ・ユニットの外部の前記メモリが不揮発性ランダム・アクセス・メモリである、請求項７に記載の自己保護デバイス。
【請求項１１】
ユーティリティー・メーターの一部である、請求項７に記載の自己保護デバイス。
【請求項１２】
デバイスを自己保護するための方法であって、前記自己保護デバイスが、プロセッサ・ユニットおよびメモリを含み、前記プロセッサ・ユニットが、内部バスを介して接続されているプロセッサおよびプロセッサ・ユニット・メモリを含み、
コンピュータ実行可能命令を前記プロセッサ・ユニット・メモリ内に提供し、当該コンピュータ実行可能命令は、前記プロセッサによって実行されたときに、
電源投入時に、前記セキュア・キーが前記プロセッサ・ユニット・メモリ内に格納されているかどうかの判定を行い、および
前記セキュア・キーが前記プロセッサ・ユニット・メモリ内に格納されていると判定すると、前記セキュア・キーを使用して、前記メモリから読み取られたデータを復号し、前記セキュア・キーを使用して、前記メモリに書き込まれるデータを暗号化するものであり、
前記プロセッサ・ユニットの外部のデバイスが前記プロセッサ・ユニットにアクセスすることを防止し、
前記セキュア・キーが、前記プロセッサ・ユニットによって前記メモリにアクセスするためにのみ使用される、方法。
【請求項１３】
前記プロセッサ・ユニットの外部のデバイスが前記プロセッサ・ユニットにアクセスすることを防止することは、前記プロセッサ・ユニットのＪＴＡＧインターフェースを無効にすることを含む、請求項１２に記載の方法。
【請求項１４】
前記コンピュータ実行可能命令は、
前記プロセッサ・ユニットによって実行されたときに、
セキュア・キーが前記プロセッサ・ユニット・メモリ内に格納されていないということを判定し、
前記自己保護デバイスにとって一意である前記セキュア・キーを生成し、および
前記セキュア・キーを前記プロセッサ・ユニット・メモリ内に格納する命令をさらに含む、請求項１２に記載の方法。
【請求項１５】
前記メモリが不揮発性ランダム・アクセス・メモリを含む、請求項１２に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、一般には、デバイスと、そのデバイス内のメモリに格納されているデータとを保護することに関し、より詳細には、デバイスと、そのデバイス内のメモリに格納されているデータとを、セキュア・キーを使用して自己保護することに関する。
【背景技術】
【０００２】
資源供給者と、家庭またはその他の場所において電気などの資源をモニタおよびコントロールするデバイスとの間において通信するために、計量ネットワークを使用することができる。その一例が、電力会社、およびその電力会社の顧客の家庭または企業に配置されているメーターである。公益事業会社およびその他の資源供給者は、計量ネットワークを使用して、消費者による資源の消費をモニタ、コントロール、および測定することができる。計量ネットワークの正確な途切れない運営を可能にするためには、計量ネットワークにおけるデバイス内の情報またはデータを保護することが、きわめて重要である。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
計量ネットワークにおける通信のフローは、ヘッドエンド・システムから、コレクタ、ルータ、およびその他のメーターを通じて、指定の場所におけるメーターまたはエンドポイントに至る場合がある。多くのネットワーク・エントリー・ポイントを有すると、潜在的な攻撃者にさらされることが増える可能性がある。エントリー・ポイントは、保護されていない状態で放置された場合には、不正変更に対して脆弱であり、それによって、攻撃者がネットワークに侵入すること、ソフトウェアをコントロールするためのアクセスを得ること、および負荷状況を変更して配電網を不安定にすることが可能になる場合がある。計量ネットワークにおいてセキュリティーを提供するためのこれまでのソリューションは、ネットワークを、ヘッドエンド・システムから、指定の場所におけるエンドポイントまたはメーターまでカバーしている。計量ネットワークにおけるデバイスは、不正変更に対して脆弱である場合がある。なぜなら、それらのデバイスは、地理的に分散しており、そのデバイス内に格納されているデータにセキュリティーを提供することができないためである。とりわけ、デバイス内に格納されているデータおよびコードは、そのデバイスが承認なしに入り込まれた場合に脆弱である。これが生じるのは、たとえば、デバイスが、そのデバイスを再構成して別のデバイスを作り出す（そのデバイスのクローンを作る）目的で盗まれた場合、またはデバイスが、その他のデバイス上で使用する目的でそのデバイスの一部を得る（デバイスを別の目的で再利用する）ために盗まれた場合である。したがって、デバイスが、計量ネットワークにおけるセキュアな通信のフローに影響を与えることなく、内部に格納されているデータを保護するためのシステムおよび方法が望ましい。
【課題を解決するための手段】
【０００４】
デバイスを保護し、そのデバイス内に格納されている情報を保護するためのシステムおよび方法であって、そのデバイスが接続されているネットワークにおける通信のフローに影響を与えないシステムおよび方法を開示する。そのデバイスは、プロセッサとプロセッサ・ユニット・メモリとを含むプロセッサ・ユニット、ならびにそのプロセッサ・ユニットの外部のメモリを含む。例示的な方法は、セキュア・キーがプロセッサ・ユニット・メモリ内に格納されているかどうかを判定するステップを含む。セキュア・キーがプロセッサ・ユニット・メモリ内に格納されていない場合には、セキュア・キーを生成し、そのセキュア・キーをプロセッサ・ユニット・メモリ内に格納する。プロセッサ・ユニットは、そのセキュア・キーを使用して、プロセッサ・ユニットの外部のメモリから読み取られた情報を暗号化し、プロセッサ・ユニットの外部のメモリに書き込まれる情報を復号する。
【０００５】
これらの例示的な態様および特徴に言及するのは、本発明を限定または定義するためではなく、本出願において開示されている発明性のあるコンセプトの理解を助ける目的で例を提供するためである。本発明のその他の態様、利点、および特徴は、本出願の全体を概観した後に明らかになるであろう。
【０００６】
本開示のこれらおよびその他の特徴、態様、および利点については、添付の図面を参照しながら以降の「発明を実施するための形態」を読むと、よりよく理解できる。
【図面の簡単な説明】
【０００７】
【図１】ヘッドエンド・システムまたはコントローラからエンドポイントへのネットワークを示す計量ネットワークの図である。
【図２】メーターの一部としての自己保護デバイスを示す図である。
【図３】セキュア・キーを使用した自己保護デバイス内のメモリの格納およびアクセスを示すフローチャートである。
【発明を実施するための形態】
【０００８】
デバイスと、デバイス内のメモリに格納されている情報とを自己保護するためのシステムおよび方法を提供する。ネットワーク内のデバイスどうしの間における通信のためのセキュリティーを提供することができるが、ネットワーク内のそれぞれのデバイスのメモリに格納されている情報のセキュリティーを提供することもできる。メモリ内に格納されている情報は、実行可能コードおよびデータを含むことができるが、それらには限定されない。メモリ内に格納されている実行可能コードおよびデータならびにその他の任意の情報を、情報と総称することとする。
【０００９】
デバイスの不揮発性メモリは、とりわけ、セキュアであるはずである。なぜなら、デバイスへの電力が遮断されている場合に、不揮発性メモリ内に格納されている情報は変わらないままであるためである。計量ネットワークにおけるデバイスの例としては、通信デバイス、測定デバイス、およびモニタリング・デバイスが含まれるが、それらには限定されない。これらのデバイスの例としては、メーター、ルータ、コレクタ、モニタ、エネルギー管理システムのコントローラ、たとえばサーモスタットなどが含まれる。これらのすべてのデバイスの目的は、消費者による資源の消費をモニタおよびコントロールすることである。加えて、計量ネットワークにおける今日のデバイスは、ネットワークを介して送信されたコマンドを受信してそれらのコマンドに応答するための機能を有することができる。これを行うために、デバイスは、より高いレベルの機能を提供することができる。より多くの機能を実施するために、これらのデバイスによって格納される情報は、計量ネットワークの運営および管理のためのきわめて重要なデータを含む。たとえば、ヘッドエンド・システムは、ユーザが、計量ネットワークにおけるメーター、コレクタ、またはルータをリモートからプログラムして、使用時間ピリオドおよびレートをスケジュールすること、リモートからの接続解除を処理すること、重要なピーク時の使用を分析すること、負荷コントロール・インデックスを見ること、ならびにその他の日常的な機能、たとえばモニタリングを実行することを可能にする。このすべての機能を提供するために、ネットワークにおけるそれぞれのデバイスは、セキュアなデータ転送を実行できることが可能である。セキュアなデータ転送の実施は、数ある中でも、機密性、インテグリティー、検証、および暗号化のためのキーの使用を必要とする。これらのキーは、それぞれのデバイスによってセキュアに格納することができる。加えて、計量ネットワークにおけるデバイスはまた、資源の消費のモニタリングおよび管理に関する情報を含む。途切れないサービスおよび資源のモニタリングを提供するために、この機能に関する情報をセキュアな状態に保つこともできる。この情報は、パスワード、キー、ネットワーク・アドレス、アラーム、アラート、デバイス構成情報、ハードウェアの識別などを含むことができるが、それらには限定されない。
【００１０】
計量ネットワークにおけるデバイスは、プロセッサ・ユニットと、そのプロセッサ・ユニットの外部のメモリとを含む自己保護デバイスを含むことができる。プロセッサ・ユニットは、プロセッサおよびプロセッサ・ユニット・メモリを含むことができる。プロセッサ・ユニットの例としては、テキサス・インスツルメンツのＳｔｅｌｌａｒｉｓ  ＬＭ３Ｓ１Ｄ２１（ＡＲＭ  Ｃｏｒｔｅｘ  Ｍ３）、アトメルのＡＴ９１ＳＡＭ４Ｓ（ＡＲＭ  Ｃｏｒｔｅｘ  Ｍ４）、ルネサスのＭ１６Ｃ、および東芝のＴＭＰＭ３６ＢＦ１０ＦＧ（ＡＲＭ  Ｃｏｒｔｅｘ  Ｍ３）というデバイスが含まれるが、それらには限定されない。
【００１１】
プロセッサとプロセッサ・ユニット・メモリは、プロセッサ・ユニット内に含まれている内部バスを介して接続されている。プロセッサ・ユニット・メモリは、レジスタまたはその他の形態のメモリを使用して実装することができ、その他の形態のメモリとしては、ランダム・アクセス・メモリ（ＲＡＭ）、フラッシュ・メモリ（すなわち、不揮発性であるメモリ）、および／または読み取り専用メモリ（ＲＯＭ）が含まれるが、それらには限定されない。プロセッサ・ユニット・メモリのフラッシュ・メモリは、ファームウェアを含むことができ、ファームウェアは、ブート・ローダ、オペレーティング・システム、および、自己保護デバイスのオペレーションにとって必要とされる任意のアプリケーションを含むことができる。自己保護デバイスの電源投入時に、ブート・ローダは、オペレーティング・システム、および、自己保護デバイスをオペレーションのために初期化および構成するのに必要な任意のアプリケーションをロードすることができる。たとえば、メーターにおいては、アプリケーションが、電気などの資源の消費をモニタおよび測定するという機能を提供することができる。
【００１２】
自己保護デバイスはまた、プロセッサ・ユニットの外部のメモリを含む。このメモリは、不揮発性メモリ（「ＮＶメモリ」）であることが可能である。この外部メモリへのアクセスは、プロセッサ・ユニットによって実行される。したがって、デバイス上で稼働するアプリケーションがＮＶメモリからのデータを必要とする場合には、プロセッサ・ユニットは、要求されているデータにアクセスし、そのデータをアプリケーションに提供する。そのアプリケーションが、データがＮＶメモリ内に格納されるよう要求した場合には、プロセッサ・ユニットは、そのデータを受信し、そのデータをＮＶメモリ内に格納する。計量ネットワークの運営にとってきわめて重要である情報は、ＮＶメモリにおいて保持することができる。なぜなら、デバイスが電力を失った場合、またはリブートされた場合に、ＮＶメモリは変わらないままであるためである。
【００１３】
本発明の一例においては、計量ネットワークにおけるメーターは、自己保護デバイスを含む。メーターは、通信モジュールおよび計量モジュールを含む。これらのモジュールは、メーターの一体部分であり、場合によっては、同じユニットに収容される。しかしながら、これらのモジュールは、別々であること、および両方のモジュールの外部の通信パスを介してリンクされることが可能である。これらの２つのモジュールが別々のサーキット・ボード上にある場合には、通信パスは、ボード・ソケットであることが可能である。通信モジュールおよび計量モジュールが別々のユニットに収容されている場合には、通信パスは、ケーブルであることが可能である。
【００１４】
通信モジュールおよび計量モジュールは、たとえそれぞれがメーターの一体部分であっても、別々のものであるため、それぞれのモジュール内のＮＶメモリを保護するための用意を提供することができる。通信モジュールは、プロセッサ・ユニットとＮＶメモリとを含む自己保護デバイスを部分的に構成する。同様に、計量モジュールは、プロセッサ・ユニットとＮＶメモリとを含む自己保護デバイスを部分的に構成する。たとえ通信モジュールおよび計量モジュールが同じエンドポイントの一部であることが可能であるとしても、それぞれのモジュールは、自分自身のセキュア・キーを独立して生成する。
【００１５】
セキュア・キーは、高度暗号化標準に準拠しているＡＥＳキーなどの暗号化キーであることが可能である。乱数発生器または擬似乱数発生器を使用して、キーを生成することができる。しかしながら、キーを生成するその他の任意の方法、およびその他の任意の暗号化標準を使用することもできる。キーをよりセキュアにするためには、デバイスのＬＡＮアドレスもしくはＭＡＣアドレスまたはデバイスのコンポーネントのシリアル・ナンバーなど、デバイスに関連付けられているものとして容易に推測される可能性がある情報を使用する代わりに、ランダム・ソースまたは擬似ランダム・ソースを使用して、キーを生成すべきである。これらの予防策は、役に立つ。なぜなら、プロセッサ・ユニット・メモリにおけるすべてのメモリが消去された場合には、ＮＶメモリへのアクセスが事実上不可能になるためであり、それは、ＬＡＮアドレスまたはシリアル・ナンバーなどの数字からセキュア・キーを計算することができないからである。
【００１６】
ファームウェアは、一意のセキュア・キーを生成するための機能を含むことができる。このシナリオにおいては、デバイスの電源投入または初期化中に、セキュア・キーを生成するのに必要とされるファームウェアが、プロセッサ上にロードされる。ファームウェアは、実行されたときに、プロセッサ・ユニットが一意のセキュア・キーを有しているかどうかをチェックする。プロセッサ・ユニットが一意のセキュア・キーを有していない場合には、ファームウェアは、任意のキー暗号化標準を使用して、そして好ましくは、上述のように、アドレスまたはシリアル・ナンバーの使用を回避して、一意のセキュア・キーを生成する。
【００１７】
セキュア・キーは、いったん生成されると、プロセッサ・ユニット・メモリ内に格納される。いくつかの実施態様においては、セキュア・キーは、フラッシュ・メモリ内に格納され、それによってセキュア・キーは、リブート、停電などの後も残存することができる。デバイスのオペレーション中に、セキュア・キーは、プロセッサ・ユニット・メモリのその他のパートまたは部分にコピーされる場合がある。しかしながら、セキュア・キーは、プロセッサ・ユニット・メモリ内にのみ格納される。
【００１８】
セキュア・キーはプロセッサ・ユニット・メモリ内に格納されるため、セキュア・キーへのアクセスをさらに防止するために、プロセッサ・ユニットに対するいかなるデバッグまたは外部アクセスも、無効にするまたは排除するべきである。たとえば、デバイスのＪＴＡＧ（Ｊｏｉｎｔ  Ｔｅｓｔ  Ａｃｔｉｏｎ  Ｇｒｏｕｐ）インターフェースを無効にすることができる。ＪＴＡＧインターフェースは、プロセッサ・ユニットをモニタおよびデバッグするためのポートである。ＪＴＡＧインターフェースが無効にされない場合には、外部システムは、プロセッサ・ユニットの内部オペレーションへのアクセスを得ることができる。ＪＴＡＧインターフェースを無効にすることは、デバイスが物理的にインストールされるときに、またはデバイスのブートアップ中に達成することができる。多くのデバイスにおいては、１ビットまたは１バイトを変更して、ＪＴＡＧインターフェースを無効にすることができる。
【００１９】
いったんプロセッサ・ユニットがセキュア・キーを有すると、プロセッサ・ユニットがＮＶメモリ内に格納するいかなるデータも、セキュア・キーを使用して暗号化される。ＮＶメモリからアクセスされるいかなるデータも、セキュア・キーを使用して復号することができる。言い換えれば、ＮＶメモリ内のデータへのすべてのアクセスは、そのデバイスのための一意のセキュア・キーを使用して暗号化または復号される。プロセッサ・ユニットによって読み取られるＮＶメモリは、ＮＶメモリのブロックを読み取ること、およびセキュア・キーを使用してデータを復号することを伴う。暗号化されていないデータの巡回冗長検査（ＣＲＣ）を使用して、データの検証を実行することができる。ＣＲＣによって算出されたチェック値が一致した場合には、アクセスされた情報は有効である。ＣＲＣが一致しない場合には、アクセスされた情報は有効ではない。ＮＶメモリへの書き込みは、その逆である。第１に、ＮＶメモリ内に格納されることになる情報に関してＣＲＣが算出される。第２に、その情報が、プロセッサ・ユニットによってセキュア・キーを使用して暗号化される。第３に、暗号化されたデータが、ＮＶメモリに書き込まれる。
【００２０】
たとえば、メーターの通信モジュールによって通信が受信された場合には、通信を処理するアプリケーションが、プロセッサ・ユニットによって実行され、情報にアクセスするか、または情報をＮＶメモリ内に格納する。プロセッサ・ユニットによってＮＶメモリから取り出されたいかなる情報も、セキュア・キーを使用して復号することができ、その後に、その情報は、実行アプリケーションに提供される。同様に、実行アプリケーションがＮＶメモリ内に格納したいと要求するいかなるデータも、プロセッサ・ユニットによってセキュア・キーを使用して暗号化され、その後に、そのデータは、ＮＶメモリ内に格納される。
【００２１】
これまでの例は、メーター内の通信モジュールおよび計量モジュールを対象にしているが、プロセッサ・ユニットと、そのプロセッサ・ユニットの外部のＮＶメモリとを含む自己保護デバイスを含むいかなるデバイスも、この自己保護方法を実施することができる。次いで本発明について、添付の図面を参照しながら説明し、それらの図面においては、本発明の例示的な実施形態が示されている。
【００２２】
図１は、計量ネットワークの構成の一例である。ヘッドエンド・システム１１０は、ネットワーク１２０を通じて通信することによって、計量ネットワークをコントロールする。ヘッドエンド・システムがエンドポイントに通信するのに利用することができるネットワーク１２０は、コレクタ２１５、ルータ２２０、およびその他のエンドポイント２２１〜２２３などのデバイスを含むことができる。通信は、任意の適切なプロトコルおよび任意の適切なネットワーク構成を利用して、進行することができる。プロトコルとしては、８０２．１５．４、ＰＲＩＭＥ、Ｇ３、およびＴＣＰ／ＩＰというプロトコルが含まれるが、それらには限定されない。いくつかのエンドポイントは、データをルータ２２０に送信することができる。次いでルータ２２０は、データをネットワーク内のコレクタ２１５へ回送することができる。コレクタは、複数のルータからデータを受信することができる。コレクタ２１５は、ヘッドエンド・システム１１０と通信する。ヘッドエンド・システムは、情報を受信して複数のコレクタに送信することができる。
【００２３】
エンドポイント２３０などのエンドポイントは、通常は家庭または企業などの地理的に分散した場所にあるメーターであることが可能である。メーターは、電気、水、または天然ガスなどの資源をモニタするために、および資源の使用を測定するために使用される。いくつかのメーターは、さまざまなサービス・コマンドをサポートするスマート・メーターであることが可能である。これらのサービス・コマンドは、公益企業がメーターにおいてリモート、または手動でサービスを接続解除すること、または制限することを可能にすることができる。加えて、いくつかのメーターは、メーターが実行した機能のエントリーを含むイベント・ログを格納することができる。サービス・コマンドは、ヘッドエンド・システムから生じることが可能であり、ネットワークを介してエンドポイントに送信される。したがって、スマート・メーターの機能をサポートするために、サービス・コマンドを処理するためのきわめて重要なデータは、メモリ内に保持され、このデータのうちの多くは、ＮＶメモリ内に保持される。
【００２４】
計量ネットワークをセキュアに管理するために、計量ネットワーク上のデバイスは、セキュアな通信に必要なデータにメモリを割り当てることができる。このデータとしては、パスワード、キー、ＬＡＮアドレス、ＷＡＮアドレス、アラーム、アラート、デバイス構成情報、ハードウェアの識別などが含まれるが、それらには限定されない。この情報のうちのいくつかは、１つのデバイスから別のデバイスに渡される。これに起因して、ネットワーク内のいかなるデバイス上に保持されているいかなるデータも、セキュアであるはずである。
【００２５】
図２を参照すると、メーター２３０が、通信モジュール２８０および計量モジュール２５０を含む。通信モジュール２８０は、プロセッサ・ユニット２４１と、プロセッサ・ユニット２４１とは別個の不揮発性ランダム・アクセス・メモリ（ＮＶメモリ）２４３とを含む自己保護デバイス２６５を含む。プロセッサ・ユニット２４１とＮＶメモリ２４３は、プロセッサ・ユニット２４１の外部のバス２６１を介して接続されている。通信モジュール２８０はまた、無線機およびアンテナなどの通信デバイス２４４を含む。
【００２６】
プロセッサ・ユニット２４１は、プロセッサ２６３およびメモリを含み、そのメモリは、プロセッサ・ユニット２４１にとっての内部メモリであり、プロセッサ・ユニット・メモリ２４８と呼ばれる。プロセッサ２６３とプロセッサ・ユニット・メモリ２４８は、プロセッサ・ユニット２４１内に含まれているバス２６２を介して接続されている。プロセッサ・ユニット・メモリ２４８は、ＲＡＭ２４７、ＲＯＭ２４６、およびフラッシュ・メモリ２４５を含むことができるが、それらには限定されない。フラッシュ・メモリ２４５内に格納されているファームウェア２４９は、ブート・ローダ、オペレーティング・システム、および、デバイス固有の機能を提供する任意のアプリケーションの機能を提供することができる。ファームウェア２４９は、セキュア・キーを生成するための機能を含むこともできる。自己保護デバイスの電源投入、ブートアップ、または初期化中に、セキュア・キーを生成するためにファームウェアにおいて必要なコードがプロセッサ・ユニット２４１によって実行されて、プロセッサ・ユニット２４１が自分のプロセッサ・ユニット・メモリ２４８内に、具体的には、自分の内部フラッシュ・メモリ２４５内に格納することができる一意のセキュア・キー２４２が生成される。
【００２７】
同様に、計量モジュール２５０は、プロセッサ・ユニット２５１と、プロセッサ・ユニット２５１とは別個のＮＶメモリ２５３とを含む自己保護デバイス２６６を含む。プロセッサ・ユニット２５１とＮＶメモリ２５３は、プロセッサ・ユニット２５１の外部のバス２６３を介して接続されている。計量モジュール２５０はまた、企業または家庭における資源の消費を測定するための測定デバイス２５４を含む。プロセッサ・ユニット２５１は、プロセッサ２６４およびプロセッサ・ユニット・メモリ２５８を含み、プロセッサ・ユニット・メモリ２５８は、プロセッサ・ユニット２５１にとっての内部メモリである。プロセッサ２６４とプロセッサ・ユニット・メモリ２５８は、プロセッサ・ユニット２５１内に含まれている内部バス２６７を介して接続されている。プロセッサ・ユニット・メモリ２５８は、ＲＡＭ２５７、ＲＯＭ２５６、およびフラッシュ・メモリ２５５を含むことができるが、それらには限定されない。通信モジュール内のフラッシュ・メモリ２４５と同様に、計量モジュール内のフラッシュ・メモリ２５５は、ブート・ローダ、オペレーティング・システム、および、デバイス固有の機能を提供する任意のアプリケーションの機能を提供するファームウェア２５９を含むことができる。計量モジュールのフラッシュ・メモリ２５５内のファームウェア２５９は、セキュア・キー２５２を生成するための機能を含むこともできる。通信モジュールのための一意のセキュア・キー２４２と同じ様式で、計量モジュールのための一意のセキュア・キー２５２を提供することができる。すなわち、電源投入、ブートアップ、または初期化中に、ファームウェア２５９は、プロセッサ・ユニット２５１が自分のプロセッサ・ユニット・メモリ２５８内に、具体的には、自分の内部フラッシュ・メモリ２５５内に格納することができる一意のセキュア・キー２５２を生成することができる。通信モジュール２８０のための一意のセキュア・キー２４２、および計量モジュール２５０のための一意のセキュア・キー２５２は、それぞれのデバイスにとって一意であるということに留意されたい。加えて、これらのキー２４２および２５２は、デバイスどうしの間において通信されない。それらのキーは、それぞれの自己保護デバイスの内部に保持され、それぞれの自己保護デバイスによってのみ使用される。
【００２８】
通信モジュール２８０がネットワーク１２０から通信を受信した場合には、この通信を処理するために、プロセッサ・ユニット２４１によってフラッシュ・メモリ２４５内のアプリケーションをロードして実行することができる。その通信は、たとえば、特定の時点におけるメーターの示度を送信したいというヘッドエンド・システム１１０からの要求である場合がある。通信が処理される前に、アプリケーションは、その通信上でセキュリティー・チェックを実行して、そのメッセージの機密性およびインテグリティーを検証する。これを行うために、アプリケーションは、機密性またはインテグリティーのチェックを実行するための何らかのキーまたはアルゴリズムを入手する目的でＮＶメモリ２４３へのアクセスを必要とする場合がある。アプリケーションが、ＮＶメモリ２４３内に格納されている何らかのデータをプロセッサ・ユニット２４１に要求した場合には、プロセッサ・ユニット２４１は、バス２６１を介して、ＮＶメモリ２４３内に格納されているデータにアクセスし、キー２４２を使用してそのデータを復号し、その後にそのデータをアプリケーションに提供する。同様に、アプリケーションが、ＮＶメモリ２４３内にデータを格納するよう要求した場合には、プロセッサ・ユニット２４１は、キー２４２を使用してこのデータを暗号化し、その後にこのデータをＮＶメモリ２４３内に格納する。データに対する何らかの偶発的な変更を検知および防止するために、復号の後に、かつ暗号化の前に、そのデータ上で巡回冗長検査（ＣＲＣ）を実行することができるということに留意されたい。
【００２９】
同様に、計量モジュールによって通信が受信された場合には、計量モジュールも、機密性またはインテグリティーのチェックを実行して、その通信が通信モジュールから生じたものであるということを確認することができる。これを行うために、フラッシュ・メモリからプロセッサ・ユニット２５１上にロードされたアプリケーションが実行される。そのアプリケーションは、ＮＶメモリ２５３内に格納されているデータを必要とする場合がある。プロセッサ・ユニット２５１は、バス２６３を介して、要求されているデータにアクセスすると、セキュア・キー２５２を使用してＮＶメモリ２５３内のデータを復号し、その後にその情報をアプリケーションに提供する。プロセッサ・ユニット２５１が情報をＮＶメモリ２５３内に格納するようアプリケーションが要求した場合には、プロセッサ・ユニット２５１は、キー２５２を使用してその情報を暗号化し、その後にその情報は、ＮＶメモリ２５３内に格納される。この場合もやはり、データに対する何らかの偶発的な変更を検知および防止するために、復号の後に、かつ暗号化の前に、そのデータ上で巡回冗長検査（ＣＲＣ）を実行することができる。
【００３０】
図３を参照すると、デバイスと、デバイス内のデータとを保護することが、３１０において開始する。デバイスが電源投入されると、ブートアップまたは初期化中に、プロセッサ・ユニットによってロードされたファームウェアが、有効なセキュア・キーが存在しているかどうかを３１０においてチェックすることができる。キーがない場合またはキーが無効である場合には、ファームウェアは、プロセッサ・ユニットがフラッシュ・メモリなどの自分のプロセッサ・ユニット・メモリ内に格納することができるセキュア・キーを３２０において生成することができる。その一意のセキュア・キーは、プロセッサ・ユニットによって自分のプロセッサ・ユニット・メモリ内にのみ保持される。セキュア・キーは、プロセッサ・ユニット・メモリの一部であるいずれかのタイプのメモリ（例えば、フラッシュまたはＲＡＭ）内に保持することができるが、セキュア・キーは、フラッシュ・メモリ内に保持することができ、それによってそのキーは、停電のケース、またはデバイスをリブートさせる任意の状況において変わらないままである。
【００３１】
いったんプロセッサ・ユニットが一意のセキュア・キーを有すると、３３０における、たとえばプロセッサ・ユニット内で実行されているアプリケーションによる、デバイスのＮＶメモリ内に格納されている情報を求めるプロセッサ・ユニットに対するいかなる要求も、プロセッサ・ユニットによって、プロセッサ・ユニット・メモリ内に格納されているセキュア・キーを使用して復号され、その後にその要求は、アプリケーションに提供される。代わりに、プロセッサ・ユニットが情報をＮＶメモリ内に格納するようアプリケーションが３５０において要求した場合には、プロセッサ・ユニットは、３６０において、アプリケーションによって提供された情報を、一意のセキュア・キーを使用して暗号化し、その暗号化された情報をＮＶメモリ内に格納する。情報を求めてメモリにアクセスすること、および情報をメモリ内に格納することは、３４０においてプロセッサ・ユニットがセキュア・キーを使用してＮＶメモリからの情報を復号すること、およびＮＶメモリ内に格納されることになる任意の情報を、３６０においてセキュア・キーを使用して暗号化することのたびに継続する。
【００３２】
一般的な考慮事項
与えられているこれらの例は、例示的な目的のためのものにすぎず、本発明をこれらのデバイスに限定することを意図されているものではない。本発明の主題について、本発明の特定の態様に関連して詳細に説明してきたが、当業者なら、前述の内容の理解を達成すれば、そのような態様に対する変更形態、そのような態様の変形形態、およびそのような態様に対する同等形態を容易に作り出すことができるということを理解できるであろう。したがって、本開示は、限定ではなく例のために提示されており、本発明の主題に対する、当業者にとって容易に明らかになるであろう修正形態、変形形態、および／または追加形態を含めることを排除するものではないということを理解されたい。
【００３３】
たとえば、例示のために計量の実施態様を使用してきたが、本発明は、プロセッサ・ユニットとメモリとを含む自己保護デバイスを含む任意のタイプのネットワークへ拡張することができる。自己保護デバイスは、前述の例において説明されているのとは異なるコンポーネントを有することができる。加えて、上述の例は、特定のタイプのメモリ、およびさまざまなタイプのメモリ内の特定の情報に言及しているが、本発明は、それらの例の詳細に限定されるものではない。加えて、上述の例は、アプリケーションがメモリからの情報を要求すること、およびプロセッサ・ユニットが、プロセッサ・ユニットの外部のメモリ内からアクセスされる情報を暗号化すること、またはプロセッサ・ユニットの外部のメモリに格納される情報を復号することに言及している。これらの例は、アプリケーションによって要求される情報のアクセスまたは格納を限定することを意図されているものではない。要求がどこから生じようとも、プロセッサ・ユニットが、プロセッサ・ユニットの外部のメモリ内の情報にアクセスするとき、またはプロセッサ・ユニットの外部のメモリ内に情報を格納するときはいつでも、プロセッサ・ユニットは、セキュア・キーを使用して、この情報を復号および暗号化する。
【図１】
0006689192.tif 000002
【図２】
0006689192.tif 000003
【図３】
0006689192.tif 000004