(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】2021005382
(43)【公開日】20210114
(54)【発明の名称】通信装置およびメッセージを認証するための方法
(51)【国際特許分類】
   G06F 21/62 20130101AFI20201211BHJP
   G06F 21/64 20130101ALI20201211BHJP
【FI】
   !G06F21/62
   !G06F21/64
【審査請求】有
【請求項の数】20
【出願形態】OL
【外国語出願】
【全頁数】48
(21)【出願番号】2020109370
(22)【出願日】20200625
(31)【優先権主張番号】10 2019 117 229.2
(32)【優先日】20190626
(33)【優先権主張国】DE
(71)【出願人】
【識別番号】599158797
【氏名又は名称】インフィニオン テクノロジーズ アクチエンゲゼルシャフト
【氏名又は名称原語表記】Infineon Technologies AG
【住所又は居所】ドイツ連邦共和国 85579 ノイビーベルク アム カンピオン 1−15
【住所又は居所原語表記】Am Campeon 1−15, 85579 Neubiberg, Germany
(74)【代理人】
【識別番号】100114890
【弁理士】
【氏名又は名称】アインゼル・フェリックス=ラインハルト
(74)【代理人】
【識別番号】100098501
【弁理士】
【氏名又は名称】森田 拓
(74)【代理人】
【識別番号】100116403
【弁理士】
【氏名又は名称】前川 純一
(74)【代理人】
【識別番号】100134315
【弁理士】
【氏名又は名称】永島 秀郎
(74)【代理人】
【識別番号】100135633
【弁理士】
【氏名又は名称】二宮 浩康
(74)【代理人】
【識別番号】100162880
【弁理士】
【氏名又は名称】上島 類
(72)【発明者】
【氏名】アンドレアス グレーフェ
【住所又は居所】ドイツ連邦共和国 ミュンヘン フリーデンハイマー シュトラーセ 46
(72)【発明者】
【氏名】ローラン ハイト
【住所又は居所】ドイツ連邦共和国 ザウアーラッハ シューベアトシュトラーセ 2ベー
(72)【発明者】
【氏名】アルブレヒト マイアー
【住所又は居所】ドイツ連邦共和国 ダイゼンホーフェン ヨーゼフシュトラーセ 51アー
(57)【要約】      (修正有)
【課題】メッセージを認証するための通信装置および方法を提供する。
【解決手段】通信装置600は、メッセージを受信する受信機と、受信したメッセージ認証コードを格納するための第1のレジスタと、計算したメッセージ認証コードを格納するための第2のレジスタと、メッセージから抽出したメッセージ認証コードを第1のレジスタに格納する第1のプロセッサと、メッセージデータに基づいて計算したメッセージ認証コードを第2のレジスタに格納する第2のプロセッサと、第1のレジスタの内容と第2のレジスタの内容とを比較し、比較結果を提供する比較回路と、第2のプロセッサによる第1のレジスタへのアクセスを阻止し、第1のプロセッサによる第1のレジスタへのアクセスを許可し、第1のプロセッサによる第2のレジスタへのアクセスを阻止し、第2のプロセッサによる第2のレジスタへのアクセスを許可するように構成されたアクセス制御回路と、を含む。
【選択図】図6
【特許請求の範囲】
【請求項1】
通信装置であって、前記通信装置は、
メッセージデータとメッセージ認証コードとを含むメッセージを受信するように構成された受信機と、
受信したメッセージ認証コードを格納するための第1のレジスタと、
計算したメッセージ認証コードを格納するための第2のレジスタと、
前記メッセージから前記メッセージ認証コードを抽出し、前記メッセージ認証コードを前記第1のレジスタに格納するように構成された第1のプロセッサと、
前記メッセージデータに基づいてメッセージ認証コードを計算し、計算した前記メッセージ認証コードを前記第2のレジスタに格納するように構成された第2のプロセッサと、
前記第1のレジスタの内容と前記第2のレジスタの内容とを比較し、比較結果を提供するように構成された比較回路と、
前記第2のプロセッサによる前記第1のレジスタへのアクセスを阻止し、前記第1のプロセッサによる前記第1のレジスタへのアクセスを許可し、前記第1のプロセッサによる前記第2のレジスタへのアクセスを阻止し、前記第2のプロセッサによる前記第2のレジスタへのアクセスを許可するように構成されたアクセス制御回路と、
を含む通信装置。
【請求項2】
前記第1のプロセッサは、前記メッセージから前記メッセージデータを抽出し、前記メッセージデータを前記第2のプロセッサに提供するように構成されている、
請求項1記載の通信装置。
【請求項3】
前記第2のプロセッサは、前記第2のレジスタへの排他的なアクセスを有する、
請求項1または2記載の通信装置。
【請求項4】
前記第1のプロセッサは、前記第1のレジスタへの排他的なアクセスを有する、
請求項1から3までのいずれか1項記載の通信装置。
【請求項5】
前記第1のプロセッサは、前記比較結果を処理するように構成されている、
請求項1から4までのいずれか1項記載の通信装置。
【請求項6】
前記第1のプロセッサは、前記比較結果が正である場合に、前記メッセージを有効なメッセージとして受諾するように構成されている、
請求項1から5までのいずれか1項記載の通信装置。
【請求項7】
前記通信装置は、前記第1のレジスタと、前記第2のレジスタと、前記比較回路と、を含むハードウェアコンパレータを含む、
請求項1から6までのいずれか1項記載の通信装置。
【請求項8】
前記第1のプロセッサと前記第2のプロセッサとは、バスによって前記ハードウェアコンパレータに結合されている、
請求項7記載の通信装置。
【請求項9】
前記ハードウェアコンパレータは、結果レジスタを含み、前記結果レジスタに前記比較結果を格納するように構成されている、
請求項7または8記載の通信装置。
【請求項10】
前記アクセス制御回路は、前記第1のプロセッサによる前記結果レジスタへのアクセスを許可するように構成されている、
請求項7から9までのいずれか1項記載の通信装置。
【請求項11】
前記第1のプロセッサは、セーフなプロセッサである、
請求項1から10までのいずれか1項記載の通信装置。
【請求項12】
前記第1のプロセッサは、セーフティを保証するための冗長メカニズムを実装する、
請求項1から11までのいずれか1項記載の通信装置。
【請求項13】
前記冗長メカニズムは、前記第2のプロセッサによって実装されないメカニズムである、
請求項12記載の通信装置。
【請求項14】
前記第2のプロセッサは、セキュアなプロセッサである、
請求項1から13までのいずれか1項記載の通信装置。
【請求項15】
前記通信装置は、前記第2のプロセッサを含むハードウェアセキュリティモジュールを含む、
請求項1から14までのいずれか1項記載の通信装置。
【請求項16】
前記第1のプロセッサは、前記ハードウェアセキュリティモジュールの外側に配置されている、
請求項15記載の通信装置。
【請求項17】
前記通信装置は、カウンタを含み、
前記カウンタは、負の比較結果を伴った比較の回数をカウントし、その回数が所定の値を超えたときに警報信号を生成するように構成されている、
請求項1から16までのいずれか1項記載の通信装置。
【請求項18】
前記比較回路は、前記第1のレジスタの内容と前記第2のレジスタの内容とを比較した後、前記第1のレジスタの内容と前記第2のレジスタの内容との両方の更新を待機し、その後、再び、前記第1のレジスタの内容と前記第2のレジスタの内容とを比較するように構成されている、
請求項1から17までのいずれか1項記載の通信装置。
【請求項19】
前記第1のプロセッサは、第1のコンピュータプログラムを実行するように構成されており、
前記第1のプロセッサは、前記メッセージからメッセージ認証コードを抽出し、前記メッセージ認証コードを第1のメモリ領域に格納し、前記比較結果を前記第1のコンピュータプログラムに即して処理するように構成されている、
請求項1から18までのいずれか1項記載の通信装置。
【請求項20】
メッセージを認証するための方法であって、前記方法は、
メッセージデータとメッセージ認証コードとを含むメッセージを受信するステップと、
第1のプロセッサにより、前記メッセージから前記メッセージ認証コードを抽出し、前記メッセージ認証コードを第1のレジスタに格納するステップと、
第2のプロセッサにより、前記メッセージデータに基づいてメッセージ認証コードを計算し、計算した前記メッセージ認証コードを第2のレジスタに格納するステップと、
前記第1のレジスタの内容と前記第2のレジスタの内容とを比較し、比較結果を提供するステップと、
前記第2のプロセッサによる前記第1のレジスタへのアクセスを阻止するステップと、
前記第1のプロセッサによる前記第1のレジスタへのアクセスを許可するステップと、
前記第1のプロセッサによる前記第2のレジスタへのアクセスを阻止するステップと、
前記第2のプロセッサによる前記第2のレジスタへのアクセスを許可するステップと、
を含む方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、通信装置およびメッセージを認証するための方法に関する。
【背景技術】
【0002】
多くの用途では、複数の通信装置の間で通信リンクを介して、例えば(コンピュータ)バスネットワークのような通信ネットワークを介して交換されるメッセージは、このようなメッセージの受信者が、このメッセージが本物であるかどうか、例えば、このメッセージが疑わしい送信者から来たものであるかどうかをチェックすることができるように保護されている。(エンジン制御またはブレーキ制御のような)特定の制御タスクのために車両バスシステムのスレーブモジュールが設けられている車両のような、セーフティクリティカルおよびセキュリティクリティカルな用途では、このことが特に重要である。メッセージを保護するための1つの方法は、MAC(メッセージ認証コード)のような認証コードである。
【0003】
MACに基づくアプローチでは、受信機は、一般的に、受信したMACを、自分自身が計算したMACと比較する。MACの計算は、暗号鍵に基づいており、この暗号鍵を、攻撃から保護する必要がある。このことはつまり、MACの計算が、一般的にセキュアな方式で行われるべきであるということを意味する。他方で、MAC比較、すなわち、計算したMACと受信したMACとの比較は、一般的にセーフな方式で行われるべきであり、すなわち、メッセージは、誤って受容または破棄されるべきではない。
【0004】
セキュリティおよびセーフティの要件を満たすことによって領域および電力の過剰な消費がもたらされることを回避するために、メッセージ認証コードに基づいた認証スキームのための効率的なアプローチが望まれている。
【発明の概要】
【課題を解決するための手段】
【0005】
種々の実施形態によれば、通信装置が提供され、当該通信装置は、メッセージデータと、メッセージ認証コードとを含むメッセージを受信するように構成された受信機と、受信したメッセージ認証コードを格納するための第1のレジスタと、計算したメッセージ認証コードを格納するための第2のレジスタと、メッセージからメッセージ認証コードを抽出し、当該メッセージ認証コードを第1のレジスタに格納するように構成された第1のプロセッサと、メッセージデータ(と、例えば秘密鍵と)に基づいてメッセージ認証コードを計算し、計算した当該メッセージ認証コードを第2のレジスタに格納するように構成された第2のプロセッサと、第1のレジスタの内容と第2のレジスタの内容とを比較し、比較結果を提供するように構成された比較回路と、第2のプロセッサによる第1のレジスタへのアクセスを阻止し、第1のプロセッサによる第1のレジスタへのアクセスを許可し、第1のプロセッサによる第2のレジスタへのアクセスを阻止し、第2のプロセッサによる第2のレジスタへのアクセスを許可するように構成されたアクセス制御回路と、を含む。
【0006】
さらなる実施形態によれば、上記の通信装置による、メッセージを認証するための方法が提供される。
【0007】
図面では、同様の参照符号は、概して、複数の異なる図面を通して同じ部分を指す。図面は、必ずしも縮尺通りではなく、その代わりに概して、本発明の原理を説明することに重点が置かれている。以下の説明では、以下の図面を参照しながら種々の態様が説明される。
【図面の簡単な説明】
【0008】
【図1】車両のための通信ネットワークを示す図である。
【図2】受信機によって実行されるメッセージ認証を説明するフロー図である。
【図3】1つの実施形態による受信機のコンポーネントを示す図である。
【図4】1つの実施形態によるハードウェアMACコンパレータの例を示す図である。
【図5】別の実施形態によるハードウェアMACコンパレータの例を示す図である。
【図6】1つの実施形態による通信装置を示す図である。
【図7】1つの実施形態によるメッセージを認証するための方法を説明するフロー図である。
【発明を実施するための形態】
【0009】
以下の詳細な説明は、添付の図面を参照し、これらの添付の図面は、本発明を実施することができる本開示の特定の詳細および態様を例示として示す。本発明の範囲から逸脱することなく他の態様を利用することができ、構造的、論理的および電気的な変更を行うことができる。本開示のいくつかの態様を、本開示の1つまたは複数の他の態様と組み合わせて新しい態様を作成することができるので、本開示の種々の態様は、必ずしも相互に排他的であるとは限らない。
【0010】
現代の車両では、種々のコンポーネント間で情報を通信するために、種々のバスシステムを使用することができる。その例には、CAN(コントローラエリアネットワーク)と、Flexrayと、LINバスとも呼ばれるLIN(ローカル相互接続ネットワーク)と、がある。そのようなバスシステムの典型的な適用分野は、車両のドア、座席、空調フラップ、または室内照明システムの種々の光源の、ネットワーク化である。
【0011】
図1は、車両のための通信ネットワーク100を示す。
【0012】
通信ネットワーク100は、この例では車両の中央制御部として中央制御ユニット101によって構成されている1つのバスマスタと、この例では複数のノード102である1つまたは複数のスレーブと、によって構成されている。中央制御ユニット101とノード102とは、バス103を介して直列に接続されている。
【0013】
中央制御ユニット101は(バスマスタとして)、中央制御ユニット101とノード(スレーブ)102との間の伝送をスケジューリングするための情報を有する。ノード102は、中央制御ユニット101によってそうするように要求されるとすぐに、データを送信する。この目的のために、中央制御ユニット101は、特定のアドレスによって識別されるメッセージヘッダを送信する。それに応じて、ノード102は、バス103に送信されるべきデータを提供する。それぞれのノード102は、固有のアドレスを有し、この固有のアドレスを介して中央制御ユニット101によって制御され得る。
【0014】
本発明の実施形態が、上記の厳密なマスタ・スレーブ通信の事例に限定されていないことに留意すべきである。上記の厳密なマスタ・スレーブ通信の事例は、1つの考えられる実施形態としてのみ使用されることが意図されている。実施形態は、メッセージとの任意の種類の通信に適用可能である。
【0015】
それぞれのモジュール(すなわち、中央制御部101およびノード102)は、トランシーバを有し、トランシーバは、(例えば、モジュールのマイクロコントローラから)伝送されるべきデータを12V信号に変換し、この12V信号は、その後、バス103を介して別のモジュールに伝送される。車両のドアまたは座席における用途の場合、これらが、バスを介して通信し合う種々のノード(スレーブ)102であり得る。
【0016】
空調または(屋内)照明の場合には、複数のスレーブ102は、通常、同一である。例えば、通信ネットワーク100は、複数の同一のスレーブ102を含むことができ、それぞれのスレーブ102が、気候ドアを制御し、それぞれのスレーブ102が、各自の(マイクロ)コントローラと、電源と、LIN送信機/受信機と、を有する。例えば、室内照明の場合には、通信ネットワーク100は、複数の同一のスレーブ102を含み、それぞれのスレーブ102は、LEDと、電源と、マイクロコントローラと、LIN送信機/受信機を含むプリント回路と、を有する。両方の用途、すなわち空調および照明において、種々の、例えば30以上の、このような同一のモジュールを使用することができる。
【0017】
図1に示される通信ネットワークでは、一般的に、参加しているモジュールが、着信したメッセージの真正性をチェックする。モジュールが、セーフティに関連するタスク、例えば車両のブレーキ制御のタスクを有する場合には、このことが特に重要である。
【0018】
図2は、受信機によって実行されるメッセージ認証を説明するフロー図200を示す。
【0019】
受信機は、車両の1つのコンポーネントに相当することができ、車両の別のコンポーネントから、例えばマスタ101への、または複数のスレーブ102のうちの1つへのメッセージを受信する。
【0020】
メッセージは、データ201およびMAC202を含み、このデータ201およびMAC202は、メッセージの送信側によって、MAC、例えばHMAC(Keyed-Hash Message Authentication Code)を計算するためのアルゴリズムに基づいて生成される。
【0021】
受信機は、同じMACアルゴリズムに基づき、203において、受信したデータ201と暗号鍵204とに基づいてMACを計算し、205において、計算したMACを受信したMAC202と比較する。計算したMACが受信したMACに一致する場合には、受信機は、このメッセージを正常に認証されたものであると見なして、このメッセージをさらに処理する(例えば、データ201に即して動作を実行する)。計算したMACが受信したMACに一致しない場合には、認証が失敗し、受信機は、例えばこのメッセージを破棄する。
【0022】
したがって、受信したメッセージの完全性および真正性をチェックするために、受信機は、受信したデータ201(およびオプションの追加的なデータ、例えば、鮮度値、タイムスタンプなど)からメッセージ認証コード(MAC)を計算し、この計算したMACを、メッセージと共に伝送された、受信したMAC202と比較する。自動車用途では、このMAC比較は、非認証メッセージが誤って本物として認定されることを阻止するために、厳格なセーフティ要件を満たさなければならない。
【0023】
セキュリティ上の理由(例えば、セキュアな鍵の取り扱い)から、MACの計算は、一般的に受信側では、HSM(ハードウェアセキュリティモジュール)のようなセキュアなドメインの内部にあるCPU(中央処理装置、一般的にはプロセッサ)によって実行される。このようなCPUは、領域および電力の消費の制限に起因して、非セーフなCPUであり得る。その場合には、MAC比較を、このセキュアなCPUを使用するソフトウェアによって、セーフな方式で実行することは不可能である。他方で、非セキュアなCPUの悪意のあるソフトウェアがメッセージを偽造することを回避するために、MACを計算するために使用される鍵と、計算したMAC自体と、の両方は、一般的に、セキュアなドメインを離れることが許可されていない。したがって、MACの計算とMACの比較とを、非セキュアであるセーフなCPUによって実行することは、通常、望ましくない。
【0024】
種々の実施形態によれば、セキュアなMAC計算とセーフなMAC比較とを、領域および電力を過剰に消費することなく可能にするために、2つのMAC値の比較をセーフな方式で実行するハードウェアモジュールが導入され、このハードウェアモジュールは、(例えばバスを介して)複数のプロセッサ(例えば、車両の電子制御ユニット(ECU)内の複数のCPU)に接続されており、これらの複数のプロセッサは、セーフなCPUと、セキュアなCPUと、を含むことができ、かつハードウェアモジュールにアクセスすることができる。
【0025】
図3は、1つの実施形態による受信機300のコンポーネントを示す。
【0026】
受信機300は、セーフ(であるが、非セキュア)なCPU301と、セキュア(であるが、非セーフ)なCPU302と、を含み、これらのCPUは、コンピュータバス304に接続されている。複数のセーフ(であるが、非セキュア)なCPU301が存在し得ること、また、場合によっては、複数のセキュア(であるが、非セーフ)なCPU302も存在し得ることに留意すべきである。以下の説明において単一のCPUが参照されている場合には、この参照は、複数のCPUにも適用され得る。
【0027】
CPU301は、自身の動作を冗長的な方式で実行することにより、セーフなCPUとして実装または動作され得る。例えば、CPU301は、2つの処理コアを含むロックステップ機構を実装することができ、これら2つの処理コアは、ハードウェアと、実行されるコードと、に関して互いに同一であり、ロックステップ構成で配置されている。
【0028】
CPU301,302は、ソフトウェア(すなわち、プログラムコード)を実行し、実行されたソフトウェアに即して動作を実行することができる。例えば、セーフなCPU301は、例えばCANバスまたはイーサネット通信に即して通信タスクを処理し、特に、メッセージの受信と、受信したメッセージからのメッセージデータおよびMACの抽出と、受信したメッセージの認証に成功した場合には受信したメッセージのさらなる処理(例えば、受信したメッセージに即した、車両の制御動作の実行)と、を担当する。セキュアなCPU302は、例えば、受信したメッセージのためのMACを計算することができ、すなわち、メッセージを認証するための、受信したメッセージに含まれている、受信したMACと比較されるべきMACを計算することができる。
【0029】
セーフなCPU301は、メッセージから抽出したデータをセキュアなCPU302に転送して、このセキュアなCPU302がMACを計算することを可能にするように構成され得る。セーフなCPU301はさらに、現在のMACサイズ、すなわち比較されるべきMACの長さを、セキュアなCPU302に送信することができる。
【0030】
受信機300はさらに、ハードウェアコンパレータ303を含み、このハードウェアコンパレータ303も、コンピュータバス304に接続されており、このコンピュータバス304には、CPU301,302によってアクセスすることができる。
【0031】
図4は、1つの実施形態によるハードウェアMACコンパレータ400の例を示す。
【0032】
MACコンパレータ400は、セキュアなドメイン402と、セーフなドメイン401と、から構成されており、セキュアなドメイン402およびセーフなドメイン401の各々は、特定のソフトウェアアクセス可能レジスタ、すなわち、第1のレジスタ403、第2のレジスタ404、第3のレジスタ405および第4のレジスタ406を含む。
【0033】
これらのレジスタ403〜406へのアクセスは、アクセス権管理回路407,408によって実行されるアクセス権管理によって制御されている。このアクセス権管理によって、セキュアなCPU302だけが、セキュアなドメイン402内のレジスタ405,406にアクセスできることが保証され、その一方で、セーフであるが非セキュアなCPU301が、非セキュア(であるが、セーフ)なドメイン401内のレジスタ403,404にアクセスできることが保証される。
【0034】
セキュアなドメイン402は、第3のレジスタ405を含み、この第3のレジスタ405には、計算したMAC値が格納される。受信したMAC値のサイズはメッセージごとに異なっている可能性があるので、MACのサイズも、セキュアなドメイン402に、すなわち第4のレジスタ406に格納される。第4のレジスタ406は、セキュアなドメイン402の内部に位置しており、セーフであるが非セキュアなCPU301において実行された悪意のあるコードが、MACサイズを縮小することによって認証チェックを弱体化させることを阻止する。
【0035】
セーフなドメイン401は、受信したメッセージの受信したMACを格納するための第2のレジスタ404と、第1のレジスタ403と、を含み、この第1のレジスタ403には、(第3のレジスタ405に格納されている)計算したMACと、(第2のレジスタ404に格納されている)受信したMACと、を比較回路409によって比較した比較結果が格納される。第1のレジスタ403、すなわち比較結果レジスタは、リセットまたはクリアされたときに「失敗」の比較結果を示す。
【0036】
1つの実施形態によれば、比較回路409は、ハードウェア回路として実装されており、このハードウェア回路は、例えば、(複数のXORゲートによって)受信したMAC値および計算したMAC値の、ビットごとのXORを実行することができ、複数のXORゲートには、1つのORツリー(すなわち、ORゲートのツリー)が続いており、このORツリーによって、XORの結果のいずれかが(比較(および認証)の失敗を示す)1であるかどうか、またはすべて(比較(および認証)の成功を示す)ゼロであるかどうかが判断される。
【0037】
比較回路409は、現在のMACサイズを考慮することができる。例えば、比較回路409は、複数のXORゲートをフィルタリングすることによって、例えば、ORツリーに供給されたXORゲートの結果のうち、比較されるべきビットに一致しないXORゲートの結果をマスキングすることによって、受信したMAC値および計算したMAC値405の比較されるビットを、現在のMACサイズによって与えられるビット数に制限することができる。結果のマスキングは、現在のMACサイズがどのように表されるかに応じて、簡単な回路(例えば、ゲート)によって実行され得る。
【0038】
ハードウェアコンパレータ400は、セーフな方式で実装され得る。例えば、ハードウェアコンパレータ400は、(例えば、それぞれXORと、ORツリーと、上述のマスキング回路と、を含む)複数の比較回路を含むことができ、そして、すべての比較回路の結果を比較するように、かつこれらの結果が一致しない場合にはエラー信号を出力するように構成された回路が設けられている。別の可能性は、例えば、3つ以上の比較回路が存在する場合に、403に格納されている比較結果を、これらの比較回路の多数決によって、すなわち、これらの比較回路の最多数により与えられた結果を選択することによって決定するように構成されたハードウェア回路を設けることである。
【0039】
したがって、両方のMAC値(計算したMAC値および受信したMAC値)が、(第4のレジスタ406の)MACのサイズと共に、ハードウェアコンパレータ400に供給される。結果(一致/不一致、すなわち、成功/失敗)は、比較結果レジスタ403に転送される。比較のサイズも、(線410によって示されるように)結果レジスタ403に格納することができる。このようにして、セーフなCPU301は、結果レジスタ403を読み出すことにより、例えば、サイズ値が(非セーフである)セキュアなCPU302の障害によって妨害されていなかったことを検証することができる。
【0040】
図5は、別の実施形態によるハードウェアMACコンパレータ500の例を示す。
【0041】
図4のMACコンパレータ400と同様に、MACコンパレータ500は、セキュアなドメイン502と、セーフなドメイン501と、から構成されており、セキュアなドメイン502およびセーフなドメイン501の各々は、ソフトウェアアクセス可能レジスタ、すなわち、第1のレジスタ503、第2のレジスタ504、第3のレジスタ505および第4のレジスタ506を含み、これらのレジスタへのアクセスは、アクセス権管理回路507,508によって制御されている。MACコンパレータ400と同様に、MACコンパレータ500はさらに、比較回路509を含み、この比較回路509は、例えば、図4の文脈で説明されているように、1つのORツリーに結合された複数のXORゲートによって実装されている。
【0042】
MACコンパレータ400とは対照的に、MACコンパレータ500では、第4のレジスタ506が、セキュアなドメイン502内ではなくセーフなドメイン501内に位置している(すなわち、現在のMACサイズは、システム全体(すなわち、受信機300)のセーフなドメインによって、例えば、第1のCPU301によって定義される)。さらに、セキュアなドメイン502は、最小のMACサイズを格納する第5のレジスタ510を含む。第2のアクセス権管理回路508は、第5のレジスタ510へのアクセスを、セキュアなCPU302に限定する(すなわち、現在のMAC比較のための最小のサイズは、システム全体のセキュアなドメインによって定義される)。
【0043】
MACコンパレータ500は、セーフなドメイン501内にサイズ比較回路511を含み、このサイズ比較回路511は、(第4のレジスタ506に格納されている)現在のMACサイズを、(第5のレジスタ511に格納されている)最小のMACサイズと比較し、MAC比較回路509によって出力されて、第1のレジスタ503に格納されているMAC比較結果を、現在のMACサイズと最小のMACサイズとのサイズ比較の結果に応じて変更するように構成されている。
【0044】
具体的には、サイズ比較回路511は、(セーフなドメインによって構成された)現在のMACサイズが(セキュアなドメインによって定義された)最小のサイズよりも小さい場合に、MAC比較結果を失敗にセットする。したがって、攻撃者がMACコンパレータ500に短いMACを「供給」して、比較的長いMACの有効な部分ワードを連続的にスパイする、ということを回避することができる。
【0045】
種々の実施形態によれば、比較的高度なセーフティ要件を満たすために、例えば、受信したMACレジスタ404,504への書き込みアクセスが発生したときにはいつでも比較結果レジスタ403,503をリセットするなどの、追加的なメカニズムを含めることができる。
【0046】
要約すると、種々の実施形態によれば、通信装置は、図6に示されるように設けられている。
【0047】
図6は、1つの実施形態による通信装置600を示す。
【0048】
通信装置600は、受信機601を含み、この受信機601は、メッセージデータとメッセージ認証コードとを含むメッセージ602を受信するように構成されている。
【0049】
通信装置600はさらに、受信したメッセージ認証コードを格納するための第1のレジスタ603と、計算したメッセージ認証コードを格納するための第2のレジスタ604と、を含む。
【0050】
通信装置600はさらに、メッセージからメッセージ認証コードを抽出し、当該メッセージ認証コードを第1のレジスタ603に格納するように構成された第1のプロセッサ605と、メッセージデータ(と、例えば秘密鍵と)に基づいてメッセージ認証コードを計算し、この計算したメッセージ認証コードを第2のレジスタ604に格納するように構成された第2のプロセッサ606と、を含む。
【0051】
通信装置600はさらに、比較回路607を含み、この比較回路607は、第1のレジスタ603の内容と第2のレジスタ604の内容とを比較し、比較結果608を(例えば、第1のプロセッサに、または通信装置600のさらなるコンポーネント、例えば、さらなるプロセッサに)供給するように構成されている。
【0052】
通信装置600はさらに、アクセス制御回路609を含み、このアクセス制御回路609は、第2のプロセッサ606による第1のレジスタ603へのアクセスを阻止し、第1のプロセッサ605による第1のレジスタ603へのアクセスを許可し、第1のプロセッサ605による第2のレジスタ604へのアクセスを阻止し、第2のプロセッサ606による第2のレジスタ604へのアクセスを許可するように構成されている。
【0053】
種々の実施形態によれば、換言すれば、通信装置には、例えば、通信装置の、比較回路を含むハードウェアコンパレータには、受信したメッセージ認証コードを格納するためのレジスタと、計算した認証コードを格納するためのレジスタと、が設けられており、これらの認証コードは、2つの異なるプロセッサによってそれぞれ提供される。比較回路は、それぞれのレジスタの内容を比較し、比較に基づいて比較結果を提供する。例えば、比較結果は、第1のレジスタの内容と第2のレジスタの内容とが一致しない場合には負であり、第1のレジスタの内容と第2のレジスタの内容とが一致する場合には正である。
【0054】
第1のレジスタおよび第1のプロセッサを、通信装置のセーフなドメインに属すると見なすことができ、第2のレジスタおよび第2のプロセッサを、通信装置のセキュアなドメインに属すると見なすことができる。特に、第1のプロセッサを、例えば、ソフトウェアの冗長的な計算または実行のようなセーフティメカニズムが設けられたセーフなプロセッサとすることができ、第2のプロセッサを、セキュアなプロセッサとすることができる。例えば、第2のプロセッサは、セキュアなメモリに格納されているソフトウェアのみを実行することができ、すなわち、セキュアなドメインの一部ではないソフトウェアによって、第2のプロセッサにアクセスすることはできない。したがって、図5のアプローチは、(特に、ハードウェアコンパレータ内に)セーフなドメインとセキュアなドメインとの組み合わせを含むことが見て取れ、この組み合わせによって、(第2のプロセッサがメッセージ認証コードを計算するために使用する)鍵のような、または計算したメッセージ認証コードのような機密情報を開示することのない、セーフなメッセージ認証が可能となる。(第1のレジスタのような)セーフなドメインには、第1のプロセッサによってアクセスすることができるが、第2のプロセッサによってアクセスすることはできず(セーフティを保護するため)、(第2のレジスタのような)セキュアなドメインには、第2のプロセッサによってアクセスすることができるが、第1のプロセッサによってアクセスすることはできない(セキュリティを保護するため)。概して、セーフなドメインには、セキュアなプロセッサによってアクセスしてはならず(セーフティを保護するため)、セキュアなドメインには、セーフなプロセッサによってアクセスしてはならない(セキュリティを保護するため)。MAC比較は、セーフな方式で実行される(例えば、いくつかの冗長メカニズムを使用して)。
【0055】
これにより、任意の暗号アルゴリズムを、第2の(セキュアな)プロセッサ上で実行することによって使用することが可能となり、その一方で、効率的かつセーフな比較は、依然として維持される。これによって、特に、将来も有効に使用し続けられるアーキテクチャ(暗号アジリティ)が可能になる。
【0056】
種々の実施形態によれば、計算したメッセージ認証コードは、セーフなプロセッサ上の悪意のあるソフトウェアがメッセージを偽造することを阻止するために、セキュアなドメインに格納される。例えば、セーフなプロセッサが、計算したメッセージ認証コードを格納するレジスタにアクセスした場合には、そのプロセッサ上の悪意のある任意のソフトウェアが誤った/悪意のあるメッセージを生成して、検証のためのセキュアなドメインに送信する可能性がある。その場合、この悪意のある任意のソフトウェアは、セキュアなプロセッサによって計算されたMAC値をロードし、メッセージを他の受信機に送信し、これによって、メッセージの誤った/悪意のあるコンテンツに起因する潜在的な危害を引き起こす可能性がある。MAC値は、セキュアなプロセッサによって秘密鍵を使用して計算されたものであるので、このMAC値は、偽造されたメッセージに適合する。したがって、偽造されたメッセージのいかなる受信者も、その誤りを検出することができない。
【0057】
それぞれのプロセッサは、例えばそれぞれ異なるチップによって実装された別個のハードウェアデバイスであり得、例えばコンピュータバスによって相互に接続され得る。しかしながら、それぞれのプロセッサを、同じチップ上に実装してもよく、それでもなお、それぞれのプロセッサを、例えば、別個のレジスタ(一方のプロセッサによってはアクセスすることができるが、他方のプロセッサによってはアクセスすることができない)、別個のALU(算術論理ユニット)、別個の命令キャッシュなどを有する、別個の処理デバイスとしてもよい。2つのプロセッサのためのコードは、別個のメモリ領域に格納され得る。
【0058】
第2のプロセッサは、メッセージデータを第1のプロセッサから受信することができるか、または直接的に受信機から受信することができる。
【0059】
受信したメッセージ認証コード、または計算したメッセージ認証コードが参照される場合には、これらは、それぞれ、受信したメッセージ認証コードワードまたはメッセージ認証値として(または少なくとも、そのように受信したコードワードまたは値として−ただし、受信したワードは、有効なコードではない可能性がある)、および計算したメッセージ認証コードワードまたはメッセージ認証値として理解されることに留意すべきである。
【0060】
比較回路は、第1のレジスタおよび第2のレジスタに直接的に結合されており、比較のために第1のレジスタの内容と第2のレジスタの内容とを直接的に読み出すことができる。例えば、比較回路は、第1のレジスタおよび第2のレジスタの各々への信号線路(または複数の信号線路)を有することができる。直接的な結合および直接的な読み出しは、例えば、第1のレジスタおよび第2のレジスタと、比較回路(例えば、上述のORツリー)と、の間の接続が、さらなるレジスタを含まないことであるとして理解され得る。
【0061】
種々の実施形態によれば、本方法は、図7に示されるように実行される。
【0062】
図7は、例えば、受信側の通信装置によって実行される、メッセージを認証するための方法を説明するフロー図700を示す。
【0063】
701において、メッセージデータと、メッセージ認証コードと、を含むメッセージが受信される。
【0064】
702において、第1のプロセッサにより、メッセージからメッセージ認証コードが抽出され、当該メッセージ認証コードは、ハードウェアコンパレータの第1のレジスタに格納される。
【0065】
703において、第2のプロセッサにより、メッセージデータに基づいてメッセージ認証コードが計算され、計算された当該メッセージ認証コードは、ハードウェアコンパレータの第2のレジスタに格納される。
【0066】
704において、ハードウェアコンパレータにより、第1のレジスタの内容と第2のレジスタの内容とが比較され、比較結果が提供される。
【0067】
本方法はさらに、第2のプロセッサによる第1のレジスタへのアクセスが阻止され、第1のプロセッサによる第1のレジスタへのアクセスが許可され、第1のプロセッサによる第2のレジスタへのアクセスが阻止され、第2のプロセッサによる第2のレジスタへのアクセスが許可されることを含む。
【0068】
以下に、種々の例を記載する。
【0069】
例1は、図6に示される通信装置である。
【0070】
例2は、第1のプロセッサが、メッセージからメッセージデータを抽出し、当該メッセージデータを第2のプロセッサに提供するように構成されている、例1の通信装置である。
【0071】
例3は、第2のプロセッサが、第2のレジスタへの排他的なアクセスを有する、例1または2の通信装置である。
【0072】
例4は、第1のプロセッサが、第1のレジスタへの排他的なアクセスを有する、例1から3までのいずれか1つの通信装置である。
【0073】
例5は、第1のプロセッサが、比較結果を処理するように構成されている、例1から4までのいずれか1つの通信装置である。
【0074】
例6は、第1のプロセッサが、比較結果が正である場合に、メッセージを有効なメッセージとして受諾するように構成されている、例1から5までのいずれか1つの通信装置である。
【0075】
例7は、第1のレジスタと、第2のレジスタと、比較回路と、を含むハードウェアコンパレータを含む、例1から6までのいずれか1つの通信装置である。
【0076】
例8は、第1のプロセッサと第2のプロセッサとが、バスによってハードウェアコンパレータに結合されている、例7の通信装置である。
【0077】
例9は、ハードウェアコンパレータが、結果レジスタを含み、当該結果レジスタに比較結果を格納するように構成されている、例7または8の通信装置である。
【0078】
例10は、アクセス制御回路が、第1のプロセッサによる結果レジスタへのアクセスを許可するように構成されている、例7から9までのいずれか1つの通信装置である。
【0079】
例11は、第1のプロセッサが、セーフなプロセッサである、例1から10までのいずれか1つの通信装置である。
【0080】
例12は、第1のプロセッサが、セーフティを保証するための冗長メカニズムを実装する、例1から11までのいずれか1つの通信装置である。
【0081】
例13は、冗長メカニズムが、第2のプロセッサによって実装されないメカニズムである、例12の通信装置である。
【0082】
例14は、第2のプロセッサが、セキュアなプロセッサである、例1から13までのいずれか1つの通信装置である。
【0083】
例15は、第2のプロセッサを含むハードウェアセキュリティモジュールを含む、例1から14までのいずれか1つの通信装置である。
【0084】
例16は、第1のプロセッサが、ハードウェアセキュリティモジュールの外側に配置されている、例15の通信装置である。
【0085】
例17は、カウンタを含み、当該カウンタが、負の比較結果を伴った比較の回数をカウントし、その回数が所定の値を超えたときに警報信号を生成するように構成されている、例1から16までのいずれか1つの通信装置である。
【0086】
例18は、比較回路が、第1のレジスタの内容と第2のレジスタの内容とを比較した後、第1のレジスタの内容と第2のレジスタの内容との両方の更新を待機し、その後、再び、第1のレジスタの内容と第2のレジスタの内容とを比較するように構成されている、例1から17までのいずれか1つの通信装置である。
【0087】
例19は、第1のプロセッサが、第1のコンピュータプログラムを実行するように構成されており、かつ第1のプロセッサが、メッセージからメッセージ認証コードを抽出し、当該メッセージ認証コードを第1のメモリ領域に格納し、比較結果を第1のコンピュータプログラムに即して処理するように構成されている、例1から18までのいずれか1つの通信装置である。
【0088】
例20は、第2のプロセッサが、第2のコンピュータプログラムを実行するように構成されており、かつ第2のプロセッサが、メッセージデータに基づいてメッセージ認証コードを計算し、計算した当該メッセージ認証コードを第2のコンピュータプログラムに即して第2のレジスタに格納するように構成されている、例1から19までのいずれか1つの通信装置である。
【0089】
例21は、図7に示される、メッセージを認証するための方法である。
【0090】
例22は、第1のプロセッサが、メッセージからメッセージデータを抽出し、当該メッセージデータを第2のプロセッサに提供することを含む、例21の方法である。
【0091】
例23は、第2のプロセッサが、第2のレジスタへの排他的なアクセスを有する、例21または22の方法である。
【0092】
例24は、第1のプロセッサが、第1のレジスタへの排他的なアクセスを有する、例21から23までのいずれか1つの方法である。
【0093】
例25は、第1のプロセッサが、比較結果を処理することを含む、例21から24までのいずれか1つの方法である。
【0094】
例26は、第1のプロセッサが、比較結果が正である場合に、メッセージを有効なメッセージとして受諾することを含む、例21から25までのいずれか1つの方法である。
【0095】
例27は、第1のレジスタと、第2のレジスタと、を含むハードウェアコンパレータが、比較を実行することを含む、例21から26までのいずれか1つの方法である。
【0096】
例28は、第1のプロセッサと第2のプロセッサとが、バスによってハードウェアコンパレータに結合されている、例27の方法である。
【0097】
例29は、ハードウェアコンパレータが、結果レジスタを含み、当該結果レジスタに比較結果を格納する、例27または28の方法である。
【0098】
例30は、第1のプロセッサによる結果レジスタへのアクセスを許可することを含む、例27から29までのいずれか1つの方法である。
【0099】
例31は、第1のプロセッサが、セーフなプロセッサである、例21から30までのいずれか1つの方法である。
【0100】
例32は、第1のプロセッサが、セーフティを保証するための冗長メカニズムを実装する、例21から31までのいずれか1つの方法である。
【0101】
例33は、冗長メカニズムが、第2のプロセッサによって実装されないメカニズムである、例32の方法である。
【0102】
例34は、第2のプロセッサが、セキュアなプロセッサである、例21から33までのいずれか1つの方法である。
【0103】
例35は、第2のプロセッサが、ハードウェアセキュリティモジュールの一部である、例21から34までのいずれか1つの方法である。
【0104】
例36は、第1のプロセッサが、ハードウェアセキュリティモジュールの外側に配置されている、例35の方法である。
【0105】
例37は、負の比較結果を伴った比較の回数をカウントし、その回数が所定の値を超えたときに警報信号を生成することを含む、例21から36までのいずれか1つの方法である。
【0106】
例38は、第1のレジスタの内容と第2のレジスタの内容とを比較した後、第1のレジスタの内容と第2のレジスタの内容との両方の更新を待機し、その後、再び、第1のレジスタの内容と第2のレジスタの内容とを比較することを含む、例21から37までのいずれか1つの方法である。
【0107】
例39は、第1のプロセッサが、第1のコンピュータプログラムを実行し、かつ第1のプロセッサが、メッセージからメッセージ認証コードを抽出し、当該メッセージ認証コードを第1のメモリ領域に格納し、比較結果を第1のコンピュータプログラムに即して処理する、例21から38までのいずれか1つの方法である。
【0108】
例40は、第2のプロセッサが、第2のコンピュータプログラムを実行し、かつ第2のプロセッサが、メッセージデータに基づいてメッセージ認証コードを計算し、計算した当該メッセージ認証コードを第2のコンピュータプログラムに即して第2のレジスタに格納する、例21から39までのいずれか1つの方法である。
【0109】
本明細書では、特定の実施形態を図示および説明してきたが、本発明の範囲から逸脱することなく、図示および説明した特定の実施形態の代わりに種々の代替および/または均等の実施形態を使用してもよいことが、当業者には理解されるであろう。本出願は、本明細書に記載された特定の実施形態のあらゆる適合または変形を網羅することが意図されている。したがって、本発明は、特許請求の範囲およびその均等物によってのみ限定されることが意図されている。
【符号の説明】
【0110】
100 通信ネットワーク
101 中央制御ユニット
102 ノード
103 コンピュータバス
200 フロー図
201 受信したデータ
202 受信したMAC
203 MAC計算
204 暗号鍵
205 MAC比較
300 受信機
301 セーフなCPU
302 セキュアなCPU
303 ハードウェアMACコンパレータ
304 コンピュータバス
400 ハードウェアMACコンパレータ
401 セーフなドメイン
402 セキュアなドメイン
403〜406 レジスタ
407,408 アクセス権管理回路
409 MAC比較回路
410 MAC値のサイズ/比較するためのビット数
500 ハードウェアMACコンパレータ
501 セーフなドメイン
502 セキュアなドメイン
503〜506 レジスタ
507,508 アクセス権管理回路
509 MAC比較回路
510 レジスタ
511 サイズ比較回路
600 通信装置
601 受信機
602 メッセージ
603,604 レジスタ
605,606 プロセッサ
607 比較回路
608 比較結果
609 アクセス制御回路
700 フロー図
701〜704 処理動作
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【外国語明細書】