IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ アップル インコーポレイテッドの特許一覧

特許7037550ネットワークトラフィックのセキュア通信
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-03-08
(45)【発行日】2022-03-16
(54)【発明の名称】ネットワークトラフィックのセキュア通信
(51)【国際特許分類】
   H04L 9/32 20060101AFI20220309BHJP
   H04L 9/08 20060101ALI20220309BHJP
   H04L 9/14 20060101ALI20220309BHJP
【FI】
H04L9/32 200A
H04L9/08 F
H04L9/14
【請求項の数】 11
(21)【出願番号】P 2019511972
(86)(22)【出願日】2017-09-08
(65)【公表番号】
(43)【公表日】2019-10-31
(86)【国際出願番号】 US2017050814
(87)【国際公開番号】W WO2018057321
(87)【国際公開日】2018-03-29
【審査請求日】2019-02-28
【審判番号】
【審判請求日】2021-03-29
(31)【優先権主張番号】62/399,307
(32)【優先日】2016-09-23
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】503260918
【氏名又は名称】アップル インコーポレイテッド
【氏名又は名称原語表記】Apple Inc.
【住所又は居所原語表記】One Apple Park Way,Cupertino, California 95014, U.S.A.
(74)【代理人】
【識別番号】110003281
【氏名又は名称】特許業務法人大塚国際特許事務所
(72)【発明者】
【氏名】シャップ, トリスタン エフ.
【合議体】
【審判長】篠原 功一
【審判官】石井 茂和
【審判官】金子 秀彦
(56)【参考文献】
【文献】特開平08-204698(JP,A)
【文献】特開2015-119357(JP,A)
【文献】特開2015-027031(JP,A)
【文献】特開2009-089044(JP,A)
【文献】米国特許出願公開第2009/0129586(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 9/32, H04L 9/08, H04L 9/14
(57)【特許請求の範囲】
【請求項1】
第1のデバイスに結合されたセキュア回路であって、
ネットワーク上の複数のデバイス間のデータ通信を暗号化するために使用可能な複数の鍵を格納し、
前記複数の鍵の使用基準のセットを定義する情報を格納し、前記使用基準のセットは、前記複数の鍵のうちの第1の鍵が、前記複数のデバイスのうちの前記第1のデバイスから前記複数のデバイスのうちの第2のデバイスに通信されるデータを暗号化するための専用であることを特定し、前記使用基準のセットは前記セキュア回路の外部のエンティティから受信され、
メッセージの一部を前記第1の鍵で暗号化する要求を前記第1のデバイスから受信し、前記要求は、前記メッセージが前記第1のデバイスから前記第2のデバイスに送信されていることを示し、
メッセージが前記第1のデバイスから前記第2のデバイスに送信されるということに対して前記使用基準のセットが前記第1の鍵での暗号化を許可するとの判定に応じて、前記第1の鍵で前記メッセージの前記一部を暗号化し、
メッセージが前記第1のデバイスから前記第2のデバイスに送信されるということに対して前記使用基準のセットが前記第1の鍵での暗号化を許可しないとの判定に応じて、前記第1のデバイスからの前記要求が拒否されたことを示す応答を送信するように構成されている、セキュア回路を備える、装置。
【請求項2】
前記複数のデバイスを更に備え、
前記メッセージの暗号化された前記一部は、前記メッセージが前記第1のデバイスによって送信されたということを確立するために使用可能である、請求項1に記載の装置。
【請求項3】
前記セキュア回路が、
前記複数のデバイスのうちの第3のデバイスから送信された別のメッセージの一部を受信し、前記別のメッセージの前記一部は前記第3のデバイスに結合された別のセキュア回路によって暗号化され、
前記使用基準のセットに基づいて、前記第3のデバイスから前記第1のデバイスに送信されているデータ通信を復号するための専用の第2の鍵を選択し、
前記別のメッセージの前記一部を前記第2の鍵で復号するように構成されている、請求項1または2に記載の装置。
【請求項4】
前記格納された情報が、前記複数の鍵のそれぞれにタプルを指定し、各タプルが、1)その鍵が暗号化又は復号化専用であるかどうかの指示を含み、2)その鍵に関連付けられた前記複数のデバイスのうちの1つ以上のデバイスを識別する、請求項1から3のいずれか一項に記載の装置。
【請求項5】
前記使用基準のセットは、前記第1の鍵が、前記第1のデバイスと前記第2のデバイスとの間で一方向のデータ通信の暗号化専用であり、他方向には行わないことを示す、請求項1から4のいずれか一項に記載の装置。
【請求項6】
前記複数のデバイスを更に備え、前記複数のデバイスはそれぞれ乗物の動作を制御するように構成された電子制御ユニット(ECU)であり、
前記セキュア回路は、前記第1のデバイスである第1のECUによって制御された動作に関連付けられたメッセージの一部を暗号化するように構成されている、請求項1から5のいずれか一項に記載の装置。
【請求項7】
ネットワーク上のメッセージを第2のネットワークノードに通信するように構成されている第1のネットワークノードと、
前記第1のネットワークノードに結合されたセキュア回路と、を備え、前記セキュア回路は、
暗号鍵、及び前記暗号鍵のための1つ以上の使用基準を定義するポリシーを格納し、前記1つ以上の使用基準は前記セキュア回路の外部のエンティティから受信され、
前記第1のネットワークノードから、前記メッセージの一部を暗号化するための要求を受信し、
前記ポリシーにより前記暗号鍵での前記一部の暗号化が許可されたことの判定に応じて、前記暗号鍵で前記一部を暗号化し、
前記ポリシーにより前記暗号鍵での前記一部の暗号化が許可されなかったことの判定に応じて、前記第1のネットワークノードからの前記要求が拒否されたことを示す応答を送信する、装置。
【請求項8】
前記要求は、前記第2のネットワークノードが前記メッセージの宛先であることを示し、
前記第2のネットワークノードが前記メッセージの前記宛先であると示されたとき、前記セキュア回路は、前記ポリシーにより前記暗号鍵での暗号化が許可されるかどうかを判定するように構成されている、請求項7に記載の装置。
【請求項9】
前記要求は、第3のネットワークノードが前記メッセージの別の宛先であることを更に示し、
前記第2のネットワークノード及び前記第3のネットワークノードが前記メッセージの宛先として示されたとき、前記セキュア回路は、前記ポリシーにより前記暗号鍵での暗号化が許可されるかどうかを判定するように構成されている、請求項8に記載の装置。
【請求項10】
前記ポリシーは、前記第2のネットワークノードを、前記第2のネットワークノードのメディアアクセス制御(MAC)アドレスを参照することにより、許可される宛先であることを識別する、請求項8または9に記載の装置。
【請求項11】
前記ポリシーは、前記暗号鍵を使用した暗号化は許可されるが、前記暗号鍵を使用した復号化は許可されないことを示す、請求項7から10のいずれか一項に記載の装置。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、一般に、コンピュータネットワークに関し、より詳細には、ネットワーク上でトラフィックを安全に通信することに関する。
【背景技術】
【0002】
セキュリティ問題は、コンピュータネットワークを設計する際の共通の考慮事項である。ローカルエリアネットワーク(local area network、LAN)の場合、ネットワーク設計は、内部LANをインターネットなどの外部ネットワークに結合するゲートウェイデバイスを含むことができる。LANを遮断するために、ゲートウェイデバイスは、着信トラフィック及び/又は送信トラフィックの流れを制限するファイアウォール機器を実装することができる。例えば、この機器は、トラフィックがファイアウォールを通過するのを許可する前に、ソース及び宛先ポートだけでなく着信トラフィックのソースアドレスも分析することができる。例えば、悪意のあるエンティティが、未知のタイプのトラフィックに関連付けられたネットワークポートにアクセスしようとした場合には、ゲートウェイは、トラフィックがネットワークに入るのをブロックすることができる。
【発明の概要】
【0003】
本開示は、ネットワーク内のデバイス間でトラフィックを安全に通信する実施形態を記載する。様々な実施形態において、セキュア回路は、ネットワーク上のデバイス間のデータ通信を暗号化するために使用可能な鍵を格納する。セキュア回路は、鍵の使用基準のセットを定義する情報を格納するように構成される。この使用基準のセットは、第1の鍵が、第1のデバイスから第2のデバイスに伝達されるデータを暗号化するのに専ら使用されることを指定している。セキュア回路は、メッセージの一部を第1の鍵を使用して暗号化する要求を受信するように構成されている。こうした実施形態において、この要求は、メッセージが第1のデバイスから第2のデバイスに送信されていることを示す。使用基準のセットにより、第1のデバイスから第2のデバイスに送信されているメッセージに対する第1の鍵での暗号化が許可されるとの判定に応じて、セキュア回路は、メッセージの一部を第1の鍵で暗号化するように構成されている。いくつかの実施形態において、暗号化された部分は、メッセージが第1のデバイスによって送信されるということを確立するために使用可能なように、セキュア回路が第1のデバイスに結合され、メッセージの一部を暗号化するように構成されている。
【図面の簡単な説明】
【0004】
図1】セキュアネットワークの一例を示すブロック図である。
【0005】
図2】セキュアネットワークにおけるハードウェアセキュリティモジュールの一例を示すブロック図である。
【0006】
図3】セキュアネットワークにおいて2つのノード間のセキュア通信の一例を示す通信線図である。
【0007】
図4】2つのノード間の複数のブロックのセキュア通信の一例を示す通信線図である。
【0008】
図5】セキュアネットワークにおけるノード間の通信を実施するためのポリシー使用の一例を示すブロック図である。
【0009】
図6A】セキュアなネットワーク通信のための方法の例を示す流れ図である。
図6B】セキュアなネットワーク通信のための方法の例を示す流れ図である。
【0010】
図7】ネットワークプロビジョニングの一例を示すブロック図である。
【0011】
図8A】ネットワークプロビジョニングに関連付けられた例示的な通信を示す通信線図である。
図8B】ネットワークプロビジョニングに関連付けられた例示的な通信を示す通信線図である。
【0012】
図9】セキュアネットワークに関連付けられた診断モードのための例示的な方法の流れ図である。
【0013】
図10A】ネットワークプロビジョニングに関連付けられた例示的な方法の流れ図である。
図10B】ネットワークプロビジョニングに関連付けられた例示的な方法の流れ図である。
図10C】ネットワークプロビジョニングに関連付けられた例示的な方法の流れ図である。
【0014】
図11】セキュアネットワークの1つ以上の構成要素を実装できる、例示的なコンピュータシステムを示すブロック図である。
【発明を実施するための形態】
【0015】
本開示は、「one embodiment(一実施形態)」又は「an embodiment(ある実施形態)」に対する参照を含む。「in one embodiment(一実施形態において)」又は「in an embodiment(ある実施形態において)」という語句表現は、必ずしも同一の実施形態を指すわけではない。特定の機能、構造、又は特性は、本開示と一貫したいずれかの適切な方式で組み合わされてもよい。
【0016】
本開示内で、(「ユニット」、「回路」、他の構成要素などと様々に呼ばれることがある)様々なエンティティは、1つ以上のタスク又は動作を実施するように「構成されている(configured)」ものとして記述又は主張されることがある。[1つ以上のタスクを実施する]ように構成されている[エンティティ]というこの明確な語句は、本明細書では構造(すなわち、電子回路など、物理的なもの)を指すために使用される。より具体的には、この明確な語句は、この構造が動作中に1つ以上のタスクを実施するように配置されたことを示すために使用される。構造は、その構造が現在動作していない場合でも、何らかのタスクを実施する「ように構成されている」と述べられることがある。ある「広域ネットワーク上で通信を容易にするように構成されているネットワークインタフェース」は、例えば、当該のコンピュータシステムが現在使用されていない(例えば、そのコンピュータシステムに電源が接続されていない)場合でも、動作中にこの機能を実施する回路を網羅することを意図している。このように、何らかのタスクを実施する「ように構成されている」ものとして記述又は説明されるエンティティは、デバイス、回路、そのタスクを実現するように実行可能なプログラム命令を記憶したメモリなど、物理的なものを指す。この語句は、本明細書では無形のものを指すためには使用されない。したがって、「~のように構成されている」との言い方は、本明細書では、アプリケーションプログラミングインタフェース(application programming interface、API)などのソフトウェアエンティティを指すためには使用されない。
【0017】
「~ように構成されている」という用語は、「~ように構成可能な」を意味することを意図していない。例えば、プログラムされていないFPGAは、何らかの特定の機能を実行する「ように構成可能」であり得るが、その機能を実施する「ように構成されている」とは見なされず、プログラミング後にその機能を実施する「ように構成されている」と言えよう。
【0018】
添付の請求項において、ある構造が1つ以上のタスクを実行する「ように構成されている」と説明することは、その請求項要素について米国特許法第112条(f)を援用しないことを明示的に意図している。したがって、出願された本出願中の請求項のいずれも、ミーンズプラスファンクション要素を有するものとして解釈されることを意図していない。出願人が審査過程中に112条(f)を援用することを望む場合、それは、[機能を実行する]「ための手段」という構成体を使用して請求項要素を説明することになる。
【0019】
本明細書で使用される用語「第1の」、「第2の」等は、名詞の前に付くラベルとして使用され、特に言及しない限りいかなるタイプの順序(例えば、空間的、時間的、論理的、等)も意味しない。例えば、ネットワークノードが、第1のフレーム及び第2のフレームを搬送する場合、用語「第1の」及び「第2の」は、第1のフレームが送信されてから第2のフレームが送信されることを意味しない。すなわち「第1の」フレーム及び「第2の」フレームは、任意の適切な順序で、又は並行してさえ送信されてもよい。
【0020】
本明細書で使用する「~に基づいて」という用語は、判定に影響を及ぼす1つ以上の要因を記述するために使用される。この用語は、追加の要因が判定に影響を及ぼすことがある可能性を除外しない。すなわち、判定は、特定の要因のみに基づくか、又は、特定の要因並びに他の不特定な要因に基づき得る。「Bに基づいてAを判定する」という語句を検討する。この語句により、Bは、Aを判定するために使用されるか、又はAの判定に影響を及ぼす要因であることが特定される。この語句は、Aの判定が、Cなど、何らかの他の要因にも基づき得ることを除外しない。この語句は、AがBのみに基づいて判定される実施形態をも網羅することを意図している。本明細書で使用する「~に基づいて」という語句はしたがって、「~に少なくとも部分的に基づいて」という語句と同義である。
【0021】
ネットワークを設計する際に、外部脅威を考慮することが重要であるが、内部のネットワークノードが危険にさらされるようになるといった、内部脅威を考慮することも有益である。例えばオフィス環境において、従業員は、悪意のある添付ファイルを有する電子メールを受信して、その従業員のコンピュータを危うくする添付ファイルの実行を開始する可能性がある。このセキュリティの侵害により、悪意のある行為者は、そのコンピュータのみならず、オフィスLANを介して結合された他のコンピュータへのアクセスを得ることができる。別の例として、ふらちな行為者が、コンテンツを受信するためにインターネットにセルラー接続するナビゲーションユニットを侵害することにより、乗物の機能性に対する制御を得ることが可能であることが最近指摘された。このユニットを危険にさらした後に、行為者は次に、内部ネットワークの制約が何ら課されないので、乗物の他の制御ユニットへの命令を発行することができた。
【0022】
本開示は、LANなどのネットワークを安全にするための様々な技術を記載する。以下に説明するように、様々な実施形態において、ネットワーク内の複数のノードは、ネットワーク上で通信されているトラフィックの一部を暗号化及び復号化するように構成されている、それぞれのハードウェアセキュリティモジュール(hardware security modules、HSM)に結合されている。いくつかの実施形態において、HSMはまた、トラフィックのソース及び宛先に基づいて、暗号鍵の使用を制限するポリシー情報を格納するように構成されている。あるノードが、許可されない宛先へのネットワークトラフィックの通信を試みる場合、そのHSMは、そのポリシー情報に基づいてトラフィックの一部を暗号化することを拒否することができる。宛先のHSMも、そのポリシー情報に基づいて、ソースノードからの任意のトラフィックを復号することを拒否することができる。トラフィックの暗号化又は復号化を拒否することにより、HSMは、どのような通信がネットワーク上で発生しても制限することができる。いくつかの例では、この方法で通信を制限することにより、ノードが危険にさらされるようになる場合に、ネットワークの潜在的な曝露が低減することになる。いくつかの例では、ノードが危険にさらされた場合に識別し、及び/又は、ネットワークに許可されていないノードが挿入された場合に判定することも可能になる。
【0023】
本開示は、図1及び図2に関連して、セキュアネットワーク内の構成要素の記述から始まる。ノード間のネットワーク通信は、図3図6に関して記述される。ネットワーク構成要素のプロビジョニングは、図7図10Cに関して記述される。最後に、1つ以上のネットワーク構成要素を実施するために使用することができる例示的なコンピュータシステムは、図11に関して議論される。
【0024】
次に図1を参照すると、セキュアネットワーク100のブロック図が示されている。図解した実施形態において、ネットワーク100は、リンク112を介して複数のノード120A~Dに結合されたスイッチ110を含む。更に、ノード120A~Dは、リンク122を介して、それぞれのハードウェアセキュリティモジュール(HSM)130A~Dに結合される。スイッチ110も、リンク112を介してゲートウェイ140に結合される。様々な実施形態において、ネットワーク100は、図に示すものとは異なるように実装することができる。したがって、いくつかの実施形態において、例えば、スイッチ110及びノード120がより多く(又はより少なく)存在してもよく、ノード120間の冗長リンク112も存在してもよい。
【0025】
いくつかの実施形態において、セキュアネットワーク100は、ノード120間でネットワークトラフィックを通信するように構成されたローカルエリアネットワーク(LAN)である。様々な実施形態において、ネットワークトラフィックは、スイッチ110によってノード120間でルーティングされる。したがって、スイッチ110は、ノード120から受信されたデータフレームを待ち行列に入れるように構成することができ、それらの指定された宛先にフレームを適切に送信するために、フレームによって指定されたソースアドレス及び宛先アドレスを分析することができる。いくつかの実施形態において、スイッチ110は、IEEE802.3(すなわち、イーサネットフレーム)に準拠してフレームをルーティングするように構成される。しかし、他の実施形態において、他のネットワーキングプロトコルをサポートすることができる。図解した実施形態において、ネットワーク100は、ゲートウェイデバイス140を介して外部ネットワーク(例えば、インターネット)に結合される。いくつかの実施形態において、ゲートウェイ140は、ファイアウォールを実装し、ネットワーク100のためにネットワークアドレス変換(network address translation、NAT)を行うように構成される。
【0026】
ノード120は、ネットワーク上で通信するように構成された任意の適切なデバイスに対応することができる。いくつかの実施形態において、ノード120は、デスクトップ及びラップトップコンピュータ、モバイルデバイス、スマートテレビ、スマートアプライアンス等のホーム又はオフィスネットワーク内のデバイスであってもよい。いくつかの実施形態において、ノード120は、様々な動作を行うように構成された製造工場内のマシンである。いくつかの実施形態において、ノード120は、航空機、ボート、自動車、レクリエーショナルビークル等の乗物における電子制御ユニット(electronic control units、ECU)である。本明細書で使用される「電子制御ユニット(ECU)」という用語は、当技術分野で理解されている意味に従って解釈されるべきであり、乗物の1つ以上の動作を制御する組み込みシステム(例えばマイクロコントローラ)を含む。こうした実施形態において、ノード120は、例えば、モータの動作を制御するためにトルク制御メッセージ及び車輪速度メッセージを通信するモータECUと、ブレーキをかけるためにブレーキ制御メッセージを通信するブレーキシステムECUと、映像を通信するバックアップカメラECUと、回転を制御するために操舵ハンドル角メッセージを通信する操舵ECU等とを含むことができる。
【0027】
様々な実施形態において、ネットワーク100上で通信されるトラフィックは、いくつかの予測可能な特性を有することができる。例えば、所与のノード120は、設計通りに(例えば、ノード120Aは、ノード120B及び120Cと通信できるが、ノード120Dとは通信できない)正しく動作するとき、他のノードのサブセットのみとトラフィックを通信することができる。別の例として、所与のノード120は、設計どおりに動作するとき、一方向にのみトラフィックを通信することができる。例えば、ノード120Bは、ノード120C及び120Dへトラフィックをマルチキャストすることができるが、ノード120C及び120Dは、ノード120Bに対していかなるトラフィックも通信を返すことはできない。以下に説明するように、これらの予測可能な特性により、設計通りにトラフィックを通信することを保証するために、所与のノード120に対してポリシー134を定義することが可能になる。ノード120がこのポリシーから逸脱しようとする場合(例えば、危険にさらされたために)、セキュアネットワーク100は、HSM130を介してポリシーから逸脱するためにその能力を制限するように構成されてもよい。
【0028】
一実施形態において、ハードウェアセキュリティモジュール(HSM)130は、1つ以上の内部に格納された鍵132を使用することにより、ノード120間で通信されるトラフィックを暗号化及び復号化するように構成されたセキュア回路である。本明細書で使用される「セキュア回路」という用語は、隔離された内部リソース(例えば、鍵132)が、外部エンティティ(例えば、ノード120)によって直接アクセスされることを防ぐ回路を指す。いくつかの実施形態において、所与のHSM130は、所与のノード120に対して行われるすべての暗号化を担当することがきる。例えば、データフレームのセットを送信する際に、ノード120Aは、HSM130Aが各フレームのペイロードを暗号化することを要求することができる。しかし他の実施形態においては、所与のHSM130は、所与のノード120によって送信された暗号化データの一部だけを担当してもよく、所与のノード120が残りの暗号化を扱うことができる。いくつかの実施形態において、これは、ノード120とHSM130との間の低速接続リンク122に起因し得る。その結果、所与のノード120は、所与のフレーム(例えば、ペイロード)内の暗号化の大部分を実施し、HSM130が残りのわずかな部分を暗号化してもよい。様々な実施形態において、HSM130は、少なくとも一部分の暗号化及び復号化に関与している。その理由は、HSM130は、所与のノード120よりも潜在的により安全であり、したがって、危険にさらされる可能性が少ないからである。いくつかの実施形態において、この付加されたセキュリティは、以下で図2に関して説明するように、HSM130が、限られた攻撃面を提示し、内部構成要素を隔離することに起因する。
【0029】
様々な実施形態において、HSM130は、フレームの完全性を確認し、及び/又は、フレームのソースノード120を認証するのに使用可能なフレームの一部を暗号化及び復号化するように構成される。いくつかの実施形態において、この部分は、ノード120によって通信されるフレーム中に含まれるメッセージ認証コード(message authentication code、MAC)である。(本明細書で使用される「メッセージ認証コード」という用語は、当技術分野で理解されている意味に従って解釈されるべきであり、メッセージを認証するために使用可能であり、鍵入力された機能を介して計算されるデータを含む。)例えば、いくつかの実施形態において、ノード120は、IEEE802.1AE(メディアアクセス制御セキュリティ(Media Access Control Security、MACSec)とも呼ばれる)に準拠してフレームを通信するように構成される。フレームを生成する際に、ノード120は、ガロア/カウンタモードで先進暗号化規格(Advanced Encryption Standard in Galois/Counter Mode、AES-GCM)を使用してフレームペイロードを暗号化してもよい。このアルゴリズムを適用する一部として、ノード120は、フレームの完全性をチェックするために使用可能な値(すなわち、完全性チェック値(integrity check value、ICV))を生成し、ガロアメッセージ認証コード(Galois message authentication code、GMAC)と呼ばれる。このような実施形態において、所与のノード120がフレームのソースであれば、そのそれぞれのHSM130は、フレーム内のGMACを暗号鍵132で暗号化するように構成される。次いで、フレームが受信者ノード120に通信されると、そのノード120のHSM130がGMACを復号し、それにより受信者ノード120は、復号されたGMACを使用して、そのフレームは改竄されておらず、正しいソースからのものであることを保証するために、受信フレームの完全性を確認することができる。他の実施形態において、HSM130は、フレームの他の部分を暗号化及び復号化するように構成してもよい。ノード120は、MACsec以外のプロトコルを使用して通信することもできる。例えば、別の実施形態において、HSM130は、イーサネットフレーム内のフレームチェックシーケンス(frame check sequence、FCS)を暗号化するように構成される。更に別の実施形態において、HSM130は、インターネットプロトコル(Internet Protocol、IP)パケット内のヘッダチェックサムを暗号化するように構成してもよい。したがって、様々な実施形態が、以下にMACの文脈内で提示されているが、これらの記述は、MACが使用されていない他の実施形態に適用することができる。
【0030】
いくつかの実施形態において、HSM130は、以下に図3に関して説明するトラフィックのストリーム中の他のフレームとは別のフレームの一部(例えば、各MAC)を暗号化するように構成されている。例えば、一実施形態において、HSM130は、電子コードブック(Electronic Codebook、ECB)モードのAESを各部分に適用するように構成されている。他の実施形態において、フレームのセットに対して、HSM130は、複数のフレームからの複数の部分を暗号化するためブロック連鎖を使用するように構成されてもよい。これにより、以下に図4に関して説明するように、後で暗号化された部分は先に暗号化された部分に依存することになる。例えば、一実施形態において、HSMは、暗号ブロック連鎖(Cipher Block Chaining、CBC)モードのAESを適用して複数部分を共に連鎖する。いくつかの例では、ブロック連鎖を使用することにより、ノード120とHSM130の間のリンク122上で通信されるトラフィックの量を低減することができる。
【0031】
様々な実施形態において、HSM130は、ノード120によって通信されるトラフィックに基づいて異なる鍵132を使用するように構成される。すなわち、いくつかの実施形態において、各鍵132は、それぞれのノード120又はノードのセット120に関連付けられている。例えば、ノード120Aが、ノード120B及び120Cと異なるトラフィックを通信する場合、HSM130Aは、ノード120Bとの通信に対応するトラフィックを暗号化するために第1の鍵132Aを使用し、ノード120Cとの通信に対応するトラフィックを暗号化するために第2の鍵132Aを使用することができる。しかし、ノード120Aが、ノード120B及び120Cに同一のストリームをマルチキャストしている場合には、同じ鍵132Aを使用してもよい。いくつかの実施形態において、各鍵132は、トラフィックの一方向にのみに適用できる。したがって、HSM130Aは、ノード120Aによりノード120Bに送信されているトラフィックのための第1の鍵、及び、ノード120Aによりノード120Bから受信されているトラフィックのための第2の鍵を使用することができる。所与のあるノード120が他の諸ノード120と通信する機能を制限するために、様々な実施形態において、そのHSM130は、その意図した通信に適切な鍵132のみをプロビジョニングされる。したがって、ノード120Aが、ノード120Cと通信を行うが120Dとは通信を行わないと意図している場合、HSM130Aは、ノード120C用の鍵132Aは付与されるが、120D用の鍵は付与されない。更に、ノード120Aが、トラフィックをノード120Cに送信するが、ノード120Cからトラフィックを受信する意図がない場合、HSM130Aは、トラフィックを送信するための鍵132Aを付与されるが、トラフィックを受信するための鍵132Aは付与されない。この方法でHSM130をプロビジョニングすることにより、対応するノード120が許可されない方法で通信することを防止することができる。すなわち、上記の例では、HSM130Aは、ノード120Dと通信するための鍵132Aを備えていないため、たとえノード120Aが危険にさらされることになっても、ノード120Aはノード120Dと通信することはできない。
【0032】
図解した実施形態において、HSM130はまた、その鍵132の使用を更に制限するポリシー134を含む。様々な実施形態において、HSM130のポリシー134は、HSM130に含まれる鍵132のそれぞれの使用基準のセットを定義する。これらの基準は、例えば、特定の鍵132Aがノード120Bのみとの通信に使用されるように、所与の鍵132に対応するノード120を指定することができる。いくつかの実施形態において、ノード120は、そのネットワークアドレスに基づいて使用基準において識別することができる。様々な実施形態において、これらの基準はまた、所与の鍵132に対する許容される暗号機能(すなわち、暗号化又は復号化)を指定し、したがって、トラフィックの方向を限定する。例えば、ポリシー134Aは、鍵132A中の特定の鍵がノード120Bに対応し、暗号化のためのみに使用可能であることを指定することができる。同様に、ポリシー134Bは、鍵132B中の特定の鍵がノード120Aに対応し、復号化のためのみに使用可能であることを指定することができる。このように、鍵は、暗号化されたトラフィックをノード120Aからノード120Bに送信するために使用することができるが、ノード120Bから120Aに送信することはできない。いくつかの実施形態において、所与の鍵に対する特定の基準は、1)その鍵が暗号化に使用されるのか、それとも復号化に使用されるのかの指示、及び、2)1つ以上のノード120を識別する指示を含む、タプルとして表現することができる。様々な実施形態において、所与のHSM130は、要求された動作を行う前に、ノード120によって要求された暗号動作がそのポリシー134に従っていることを確認することができる。ポリシー134の使用を図示した例を、図5に関して以下に提示する。
【0033】
いくつかの実施形態において、HSM130のプロビジョニングは、ゲートウェイ140によって処理される。図7図9に関して以下でより詳細に記載するように、ゲートウェイ140は、ネットワーク100内の構成要素の登録、並びにネットワーク100の外部のエンティティからの鍵132及びポリシー134の受信を容易にするように構成することができる。いくつかの実施形態において、ゲートウェイ140は、このエンティティとのセキュア接続の確立、並びに、鍵132及びポリシー134の適切なノード120への分配を容易にすることができる。様々な実施形態において、プロビジョニングは、以下で詳細に説明するように、ネットワーク100の最初の組立て中、及びネットワーク100における構成要素の交換後に実施することができる。
【0034】
次に図2を参照すると、HSM130のブロック図が示されている。図解した実施形態において、HSM130は、ネットワークインタフェース210、1つ以上のプロセッサ220、読み出し専用メモリ(read only memory、ROM)230、不揮発性メモリ(non-volatile memory、NVM)240、暗号加速器250、及び相互接続270を介して共に結合された鍵ストレージ260を備える。ROM230は、ファームウェア232を含む。NVM240は、ポリシー134、公開鍵証明書242、及び能力情報244を含む。鍵ストレージ260は、鍵132、プロビジョニング秘密鍵262、及び識別鍵264を含む。いくつかの実施形態において、HSM130は、図示したよりも多くの(又は少ない)構成要素を含んでもよい。
【0035】
一実施形態において、ネットワークインタフェース210は、ノード120との通信を容易にするように構成されている。これにより、インタフェース210は、いくつかの実施形態においてはシリアル周辺インタフェース(serial peripheral interface、SPI)バスであるリンク122を介して、データの暗号化及び復号化を行う。様々な実施形態において、インタフェース210はまた、着信読み取り及び書き込み動作をフィルタリングすることにより、内部構成要素220~260を、ノード120などの外部エンティティから隔離するように構成されている。いくつかの実施形態において、HSM130は、わずかな数のコマンドのみをサポートすることにより、限られた攻撃面を提示する。例えば、一実施形態において、HSM130は、特定の鍵の使用を要求するための第1のコマンド、その鍵132での暗号化を要求するための第2のコマンド、その鍵での復号化を要求するための第3のコマンド、及び鍵132を更新するための第4のコマンドをサポートする。インタフェース210が、ノード120から、サポートされたコマンドのうちの1つではないデータを受信すると、インタフェース210は、そのデータがHSM130に入ることを防止することができる。
【0036】
一実施形態において、プロセッサ220は、HSM130に関して本明細書に記載の様々な動作を実施するために、プログラム命令を実行するように構成される。いくつかの実施形態において、プロセッサ220は、ROM230からファームウェア232をブートするために、ブート時に特定のアドレス範囲からフェッチするようにハードウェアに組み込まれている。特に、メモリ230はROM(容易に書き込み可能な他のいくつかのタイプのメモリとは異なる)であるので、ファームウェア232は変更が難しく、したがって、改竄されにくい。その結果、HSM130は、プロセッサ220を再起動させるだけで、デフォルトの信頼できる状態に復元することができ、図解した実施形態において、リセット信号202をアサートすることによって起動することができる。これにより、プロセッサ220は更に、HSM130の構成要素を隔離する働きをする。
【0037】
一実施形態において、暗号加速器250は、HSM130用に暗号動作を行うように構成された回路である。暗号加速器250は、データ暗号化規格(Data Encryption Standard、DES)、先進暗号化規格(Advanced Encryption Standard、AES)、(Rivest Shamir Adleman、RSA)等の任意の適切な暗号化アルゴリズムを実装することができる。いくつかの実施形態において、加速器250は更に、楕円曲線暗号(elliptic curve cryptography、ECC)を実装することができる。図解した実施形態において、加速器250は、鍵ストレージ260に格納された鍵を使用するように構成されるが、加速器250は、鍵がHSM130の他の構成要素によってアクセスされるのを隔離することができる。すなわち、いくつかの実施形態において、加速器250により、鍵132がプロセッサ220によって更新されることは可能であるが、鍵132はプロセッサ220によってストレージ260から読み取られる可能性はない。更に、鍵132のうちの1つを使用する要求を受信したとき、加速器250は、要求された動作がポリシー134によって許可されていることを確認することができる。様々な実施形態において、加速器250は、HSM130のプロビジョニングにも関与する。これは、プロビジョニング公開鍵262を使用して、プロビジョニングサーバから受信した受信鍵132を復号化すること、並びに、図7に関して下記で説明するように、サーバ及びゲートウェイ140に知られないように鍵132を変更することを含むことができる。
【0038】
いくつかの実施形態において、秘密鍵262及びその対応する公開鍵証明書242をプロビジョニングすることは、プロビジョニングサーバとのセキュア接続を確立するために使用される。すなわち、HSM130は、秘密鍵262に対応する公開鍵を含む公開鍵証明書242を、プロビジョニングサーバに提供することができる。次いで、プロビジョニングサーバは、鍵132及びポリシー134を、公開鍵を使用して暗号化することができ、次に、加速器250は、秘密鍵262で暗号化された鍵132を復号することができる。他の実施形態において、証明書は、楕円曲線Diffie-Hellman(Elliptic Curve Diffie-Hellman、ECDH)を介して、一時的な鍵を導出するために使用することができる。いくつかの実施形態において、加速器250は、HSM130の初期プロビジョニング中に秘密鍵262を含む公開鍵ペアを生成し、図8Aに関して以下で説明するように、証明書242を受信するために、プロビジョニングペアに鍵ペアを登録することができる。いくつかの実施形態において、証明書242は、X.509証明書である。いくつかの実施形態において、加速器250は、証明書署名要求をプロビジョニングサーバに提出するとき、識別鍵264で公開鍵に署名する。様々な実施形態において、識別鍵264は、HSM130には一意であり、プロビジョニングサーバには既知である暗号鍵である。いくつかの実施形態において、識別鍵264は、HSM130の製作中に、HSM130に格納される。
【0039】
いくつかの実施形態において、HSM130はまた、新たな鍵132及びポリシー134がプロビジョニングされる場合、能力情報244を送信する。図8Bに関して説明するように、様々な実施形態において、情報244は、HSM130が結合されるノード120の1つ以上の能力を特定する。例えば、ノード120が、ブレーキモジュールECUである実施形態において、情報244は、ノード120をそれ自体として識別することができる。同様に、プロビジョニングサーバは、この情報を使用して、どの鍵132及びポリシー134をそのHSM130に提供すべきかを判定することができる。いくつかの実施形態において、情報244は、プロビジョニングサーバによって署名されてもよい(及び、証明書242に含まれるいくつかの実施形態において)。
【0040】
次に図3を参照すると、セキュア通信300の通信線図が示されている。セキュア通信300は、ネットワーク100を介して通信する2つのノード120間のセキュア通信の一例である。ステップ302~318は、いくつかの実施形態に示す以外に、並列又は異なる順序で実施できることに留意されたい。
【0041】
図示のように、通信300は、ノード120Aが、メッセージMを暗号化して暗号化されたメッセージM'、及び、メッセージMの完全性を確認し、Mがノード120Aからのものであることを認証するのに使用可能な対応するMACを生成した状態で、302から開始することができる。304において、ノード120Aは、MACを暗号化することを求める要求をHSM130Aに発行する。様々な実施形態において、ノード120Aはまた、ノード120BにMACを送信する意図を示す。306において、HSM130Aは、要求された動作がそのポリシー134によって許可されていることを確認する。動作が許可されている場合、HSM130は、ポリシー134で識別された適切な鍵132を選択し、(上記の加速器250を介して)MACを暗号化して暗号化されたMAC'を生成し、308でノード120Aに返送する。要求された動作が、HSM130Aのポリシー134によって許可されていない場合、HSM130Aは、要求が拒否されたという指示でのみ応じることができる。310において、ノード120Aは、M'及びMAC'を処理するためノード120Bに送信する。
【0042】
312において、ノード120Bは、MAC'を復号するためにHSM130Bに転送する。様々な実施形態において、ノード120Bはまた、ノード120AをMAC'のソースであると示す。314において、ノード120Bは、M'の復号を開始してMを再生する。一方、316において、HSM130Bは、要求された復号がそのポリシー134によって許可されているか否かを確認する。動作が許可された場合には、HSM130Bは、適切な鍵132を選択し、MAC'を復号してMACを再生する。このMACは、318においてノード120Bに提供される。動作が、HSM130Bのポリシー134によって許可されない場合、HSM130Bは、要求は拒否されたと示して応じることができる。320において、ノード120Bは、MACに対してMを確認する。確認に失敗した場合、この失敗は、Mが改竄されたこと、及び/又は、Mがノード120Aからきたものではないことを意味するとすることができる。
【0043】
次に図4を参照すると、別のセキュア通信400の通信線図が示されている。いくつかの実施形態において、上記のように、ノード120とそのHSM130間のリンク122は、低伝送速度を有してもよい。セキュア通信400は、複数フレームの送信中に作成される複数のMACの暗号化を共にチェイニングすることにより、リンク122上で通信されるトラフィック量を低減しようと試みる。
【0044】
図示のように、通信400は、ノード120Aが、第1のメッセージM1を暗号化して、暗号化されたメッセージM1'、及び、第1のメッセージ認証コードMAC1を生成した状態で、402から開始する。404において、ノード120Aは、MAC1がメッセージのストリームの一部としてノード120Bに送信されていることを示す暗号化要求を発行する。406において、HSM130Aは、要求された動作がそのポリシー134によって許可されているかどうかを確認し、許可されていれば、適切な鍵132でMAC1の暗号化を進め、MAC1'を生成する。特に、HSM130Aは、MAC1'をノード120Aに提供しない。むしろ、HSM130Aは、後に416で使用するためにMAC1'を格納するだけである。408において、ノード120Aは、M1'及び暗号化されていないMAC1をノード120Bに送信し、ノード120Bは、MAC1を格納するためにHSM130Bに転送する。410において、ノード120BはM1'を復号し、MAC1に対してそれを確認する。412において、HSM130Bはまた、連鎖したMACNの最後の復号が許可されていることを確認し、そうであれば、MAC1を暗号化する。このMAC1は、以下に説明する426においてMACNを復号するために使用される。
【0045】
414において、ノード120Aは、第2のメッセージM2を暗号化し、M2'及びMAC2を生成する。このMAC2は、416において暗号化するためにHSM130Aに提供される。418において、HSM130Aは、暗号化が許可されていることを確認し、許可されている場合には、暗号ブロック連鎖を用いて、暗号化されたMAC1'を暗号化機能への入力として使用してMAC2を暗号化する。これにより、暗号化されたMAC2'はいまや、MAC2の内容だけでなくMAC1の内容にも依存する。更に、MAC2'は、ノード120Aに通信せず、むしろ、メッセージストリームに関連付けられた後続のMACの暗号化動作に使用するために格納される。暗号化されたMACをノード120Aに通信し返さないことにより、HSM130Aは、リンク122上で通信されるトラフィック量を減らすことができる。420において、ノード120Aは、M2'及び暗号化されていないMAC2をノード120Bに通信し、ノード120Bは、MAC2を格納するためにHSM130Bに転送する。
【0046】
ノード120Aは、暗号化されたメッセージ及びMACを、メッセージストリームの最後のメッセージMNに達するまで送信し続けることができる。422において、ノード120Aは、暗号化されたMN'を通信するが、MACNは送信しない。代わりに、424において、HSM130Aは、MACNだけでなく先行するすべてのMACに依存する連鎖MACN'を送信する。すなわち、MACN'は、暗号化されたMACN-1'を入力として使用して暗号化され、MACN-1'はMACN-2'を使用して暗号化されてきた、等々である。426において、HSM130Bは、MACN'を復号化することはそのポリシー134に従っていることを確認し、従っていれば、MACN'を以前に格納したMAC(すなわち、MAC1-MACN-1)を使用して復号化を試みる。ノード120Aが、HSM130Aに提供されたことがないMACを挿入(又は、HSM130Aに提供されたものの1つを変更)しようとした場合、HSM130Bは、MACN'を正しく復号化することができず、430において確認は失敗することになる。復号が成功した場合、復号された連鎖MACは、430において復号されたMNに対して確認するために、428においてノード120Bに提供される。
【0047】
他の実施形態において、セキュア通信400は、図4に示すように、430においてノード120Aから受信された復号されたMACNに対してMNを確認するノード120Bを含んでいなくてもよいことに留意されたい。むしろ、422において、MACNは、ノード120Aによってノード120Bに送信されてもよい。426において、HSM130Bは、暗号化されたMACN'を以前に受信されたMACから再計算し、この暗号化されたMACN'をHSM130Aから受信されたMACN'と比較しようとするだけでもよい。この2つの暗号化されたMACが一致しない場合、HSM130Bは、ノード120Bにエラーを知らせ、430において確認を失敗させることができる。
【0048】
次に図5を参照すると、ポリシー使用500の一例が示されている。この例では、HSM130A、130B、及び130Cは、トラフィック502A及び502Bの2つのストリームを可能にするために、それぞれのポリシー134A、134B、及び134Cをプロビジョニングされている。
【0049】
図示のように、トラフィック502Aは、ノード120Aからノード120B及び120Cにマルチキャストされており、K1として示される鍵132で暗号化されたMACを含む。これにより、ノード120Aはトラフィック502Aのソースであるので、そのHSM130Aは、ノード120B及び120Cがそのトラフィックの宛先のとき、暗号化がK1により許可されていることを示すK1及びポリシー134Aをプロビジョニングされる。いくつかの実施形態において、説明のため「K1:120B&Cに対する暗号化MAC」として表現されているが、ポリシー134Aは、この基準をタプル(暗号化、「ノード120Bのネットワークアドレス、ノード120Cのネットワークアドレス」)として表現してもよい。ノード120B及び120Cは、トラフィック502Aの宛先であるので、HSM130B及び130Cは、ノード120Aがソースのとき、復号化がK1によって許可されることを示すK1並びにポリシー134B及び134Cをプロビジョニングされる。特に、ノード120B及び120Cは、この例では、K1を使用してトラフィックをノード120A又は別のトラフィックへ送信することは、それらのそれぞれのポリシー134によって恐らく許可されないので許されないであろう。したがって、ノード120Cが危険にさらされるようになり、またそうしようとするとき、ノード120Cは、HSM130A及び130B並びにそれらのポリシー134によって、そうすることを制限されるであろう。
【0050】
図5の例を続けると、トラフィック502Bは、ノード120Bからノード120Cへ通信され、別の鍵132K2で暗号化されたMACを含む。図示のように、ポリシー134Bは、宛先がノード120Cの場合、HSM130Bは、K2での暗号化を行うことを許可されていることを示す。ポリシー134Cはまた、ソースがノード120Bの場合、HSM130Cは、K2で復号化を行うことを許可されていることを示す。特に、この例では、HSM130Aは、ノード120Aがトラフィック502Bを通信することを意図していないので、K2をプロビジョニングされない(及び、そのポリシー134Aは、K2に関するいかなる許可された使用を指定しない)。
【0051】
次に図6Aを参照すると、ネットワーク上でトラフィックを通信する方法600の流れ図が示されている。方法600は、HSM130などのセキュア回路によって行うことができる方法の一実施形態である。いくつかの例では、方法600を実施することにより、よりセキュアなネットワーク通信を可能にすることができる。いくつかの実施形態において、ステップ610~640は、並列又は図示とは異なる順序で行ってもよい。
【0052】
ステップ610において、セキュア回路は、ネットワーク(例えば、セキュアネットワーク100)上で複数のデバイス(例えば、ノード120)間のデータ通信を暗号化するために使用可能な複数の暗号鍵(例えば、鍵132)を格納する。いくつかの実施形態において、セキュア回路は、複数のデバイスのうちの第1のデバイス(例えば、ノード120Aに結合されたHSM130A)に結合される。いくつかの実施形態において、暗号鍵は、広域ネットワーク上の通信を容易にし、広域ネットワーク上のエンティティから置換鍵のセットを受信し、その置換鍵のいくつかを複数のデバイスに分配するように構成されたゲートウェイ(例えば、ゲートウェイ140)から受信される。
【0053】
ステップ620において、セキュア回路は、複数の暗号化された鍵についての使用基準(例えば、ポリシー134)のセットを定義する情報を格納する。使用基準のセットは、複数の鍵のうちの第1の鍵(例えば、図4に示す鍵K2を参照するポリシー134B)は、複数のデバイスのうちの第1のデバイス(例えば、ノード120B)から複数のデバイスのうちの第2のデバイス(例えば、ノード120C)に通信されているデータを専ら暗号化することを指定する。いくつかの実施形態において、格納された情報は、各タプルが、1)鍵が暗号化又は復号化専用であるかどうかの指示を含み、2)その鍵と関連付けられた複数のデバイスのうちの1つ以上のデバイスを識別するように、複数の鍵のそれぞれにタプルを特定する。いくつかの実施形態において、使用基準のセットは、第1の鍵が、第1のデバイスと第2のデバイスとの間で、一方向のデータ通信の暗号化専用であり、他方向には行わないことを示す。
【0054】
ステップ630において、セキュア回路は、メッセージ(例えば、MAC)の一部を第1の鍵で暗号化する要求を受信する。いくつかの実施形態において、その要求は、メッセージが第1のデバイスから第2のデバイスへ送信されていることを示す。
【0055】
ステップ640において、セキュア回路は、使用基準のセットにより、第1のデバイスから第2のデバイスに送信されているメッセージに対する第1の鍵での暗号化が許可されるとの判定に応じて、メッセージの一部を第1の鍵で暗号化する。いくつかの実施形態において、暗号化された部分が、メッセージが第1のデバイスによって送信されるということを確立するために使用可能であるように、セキュア回路は、メッセージの一部を暗号化するように構成されている。
【0056】
次に図6Bを参照すると、ネットワーク上のトラフィックを通信するための別の方法650の流れ図が示されている。方法650は、1つ以上のECU(いくつかの実施形態において、ノード120など)、及び1つ以上のセキュア回路(HSM130など)を含む装置によって実行可能な方法の一実施形態である。いくつかの例では、方法650を実施することにより、よりセキュアなネットワーク通信が可能になる。
【0057】
ステップ660において、第1の電子制御ユニット(ECU)は、第1のECUから第2のECUに送信されるデータフレーム用のメッセージ認証コード(MAC)を生成する。
【0058】
ステップ670において、第1のECUに結合された第1のセキュア回路は、第1の暗号鍵(例えば鍵132)でMACを暗号化する。いくつかの実施形態において、第1のECUは第1のセキュア回路に、第2のECUがデータフレームの宛先であることを示し、ステップ670は、データフレームの識別された宛先に基づいて、第1の暗号鍵でMACの暗号化が可能かどうかを判定する第1のセキュア回路を含む。いくつかの実施形態において、第1のセキュア回路は、第1の暗号鍵を含む複数の暗号鍵を格納し、複数の暗号鍵のそれぞれの鍵に対して、それぞれの用途及び関連ECUのそれぞれのセットを指定するポリシー(例えば、ポリシー134)を格納する。このような実施形態において、ポリシーは、第1の暗号鍵が、暗号化に使用され、第2のECUを含むECUのセットに関連付けられることを指定する。こうした実施形態において、第1のセキュア回路は、格納されたポリシーに基づいて、MACに第1の暗号鍵で署名するかどうかを判定する。いくつかの実施形態において、第1のセキュア回路は、無線ネットワークインタフェースを介して鍵のセットを受信し、その鍵のセットをセキュア回路に分配するように構成されたネットワークゲートウェイから第1の暗号鍵を受信する。
【0059】
ステップ680において、第1のECUは、データフレームに含まれる暗号化されたMACでデータフレームを送信する。様々な実施形態において、第2のECUに結合された第2のセキュア回路は、データフレームに含まれる暗号化されたMACを復号し、第2のECUは、復号されたMACを使用してデータフレームの完全性を確認する。いくつかの実施形態において、第1のセキュア回路は、第1の相互接続(例えば、リンク122)を介して第1のECUに結合され、第1のECUは、第1の相互接続とは異なる第2の相互接続(例えば、リンク112)を介してデータフレームを第2のECUに送信する。
【0060】
次に図7を参照すると、プロビジョニングシステム700のブロック図が示されている。様々な実施形態において、プロビジョニングシステム700は、HSM130に鍵132及びポリシー134をプロビジョニングすることを含む、ネットワーク100のネットワーク構成要素をプロビジョニングするために使用可能である。図解した実施形態において、システム700は、ファクトリプロビジョニングサーバ710A、インフィールドプロビジョニングサーバ710B、及びゲートウェイ140を備える。いくつかの実施形態において、システム700は、図示したものとは異なって実装されてもよい。例えば、単一のプロビジョニングサーバ710を使用してもよい。サーバ710に関して以下に説明する機能は、鍵ブロブ720のプロビジョニングを扱うサーバ以外のサーバによって実施されてもよい。
【0061】
図解した実施形態において、ファクトリプロビジョニングサーバ710Aは、ネットワーク100が組み立てられているときに、最初にネットワーク100をプロビジョニングするように構成されたサーバである。様々な実施形態において、サーバ710Aは、以下で図8Aに関して説明するように秘密鍵262の登録、図8Bに関して説明するようにHSM130への役割の割り当て、ノード120へのファームウェア更新の提供、鍵132及びポリシー134の提供、並びに、HSM130へのいずれかの鍵の無効の通知を行う。いくつかの実施形態において、サーバ710Aは、組立て中にネットワーク100と並べて配置することが可能なので、有線接続712Aを介してネットワーク100に結合される。例えば、ネットワーク100及びサーバ710Aは、同じ工場内に配置することができる。したがって、ファクトリプロビジョニングサーバ710Aによって実施される1つ以上の動作は、セキュリティ上の配慮から、インフィールドプロビジョニングサーバ710Bによって繰り返されてもよい。すなわち、サーバ710A及びネットワーク100が並べて配置されるため、双方にアクセス権を有する悪意のある者は、鍵132へのアクセス権を得る上で有利である。その結果、サーバ710Aにより発行される鍵132及びポリシー134は、短い期間、例えば24時間だけ有効となる。
【0062】
図解した実施形態において、インフィールドプロビジョニングサーバ710Bは、任意の以降のネットワーク100のプロビジョニングを実施するように構成されている。いくつかの実施形態において、サーバ710Bは、上記のサーバ710Aによって実施される同じ動作のうちの1つ以上を実施する。しかし、様々な実施形態において、サーバ710Bは、ネットワーク100とは並べて配置されてはおらず、インターネットなどの広域ネットワーク(wide area network、WAN)に関連付けられた無線接続712Bを介してネットワーク100に結合することができる。したがって、サーバ710Bによって行われるプロビジョニングは、サーバ710Aによって行われるプロビジョニングよりも安全である。これにより、サーバ710Bが発行する鍵132及びポリシー134は、サーバ710Aが発行するものよりも長い期間有効となる。
【0063】
様々な実施形態において、ゲートウェイ140は、サーバ710とセキュア通信を確立することにより、ネットワーク100のプロビジョニングを容易にするように構成されている。いくつかの実施形態において、ゲートウェイ140は、HSM130への鍵132及びポリシー134の分配も実施する。図解した実施形態において、鍵132及びポリシー134は、鍵ブロブ720内に実装され、これは複数の部分722に分割され、それぞれが図示のようにHSM130のそれぞれのものと関連付けられている。例えば、部分722Aは、HSM130Aの鍵132A及びポリシー134Aを含む。部分722Bは、鍵132B及びポリシー134Bを含む。このような実施形態において、ゲートウェイ140は、サーバ710から受信したブロブ720の暗号化バージョンを復号し、各HSM130に対する各部分722の対応付けを判定し、そのそれぞれのHSM130に対して各部分722を適切にルーティングすることができる。いくつかの実施形態において、ネットワーク100が最初に組み立てられるとき、新しいノード120がネットワーク100に追加されたとき、ノード120のファームウェア更新が行われたときに、鍵ブロブ720を受信することができる。
【0064】
危険にさらされたゲートウェイ140が、鍵132及びポリシー134へのアクセス権を入手するのを防止するために、いくつかの実施形態において、複数の技術を使用することができる。まず、鍵ブロブを暗号化することはできるが、各HSM130が保持している鍵については、各部分722を更に暗号化してもよい。いくつかの実施形態において、各部分722(例えば、部分722A)は、証明書242で指定された公開鍵を使用して暗号化され、秘密鍵262(例えば、秘密鍵262A)で復号可能である。他の実施形態において、各部分722は、サーバ710の証明書及び秘密鍵、並びに、HSM130の証明書242及び楕円曲線Diffie-Hellman(ECDH)を介した秘密鍵262から導出された一時的な鍵を用いて、暗号化及び復号化される。次に、いくつかの実施形態において、各HSM130は、鍵を新しい値に適合させるために、変更機能を鍵132に適用する。これにより、ゲートウェイ140がたとえ鍵132を見ることができたとしても、この鍵132は、この鍵を保持するHSM130によって後で変更される。特に、変更された鍵132は、最初に鍵を提供したサーバ710に対しても未知である。これにより、ある悪意ある者が、サーバ710において鍵132へのアクセス権を入手したとしても、この鍵132は、その後変更され、その悪意ある者には知られないのである。
【0065】
次に図8Aを参照すると鍵登録800の通信線図が示されている。鍵登録800は、HSM130とプロビジョニングサーバ710(又は、鍵登録を扱う他のサーバ)との間で暗号化データの通信に使用可能な公開鍵ペアを登録する通信の一実施形態である。様々な実施形態において、鍵登録800は、ノード120が製造されるとき、ネットワーク100が組み立てられるとき、又は新しいノード120がネットワーク100に追加されるときに実施される。
【0066】
図示のように、鍵登録800は、HSM130が、プロビジョニング秘密鍵262を含む公開鍵ペアを生成した状態で、802において開始する。804において、HSM130は、公開鍵証明書242に対する証明書署名要求(certificate signing request、CSR)を送信する。図解した実施形態において、要求は、ペアの公開鍵、及び、識別鍵264が関数の鍵として使用される公開鍵にキー入力された機能を適用して計算されるメッセージ認証コードを含む。いくつかの実施形態において、要求は、能力情報244などのより多くの(又は、より少ない)コンテンツを含むことができる。いくつかの実施形態において、要求は、公開鍵暗号規格(public-key cryptographic standards、PKCS)10などの規格に準拠している。806において、プロビジョニングサーバ710は、MACを確認することを含む要求は識別鍵264によって計算されることを確認する。確認が成功した場合に、サーバ710は、公開鍵を含む証明書242に署名し、公開鍵の有効性を証明する。(したがって、様々な実施形態において、サーバ710は、認証局(certificate authority、CA)を実装するように構成されている。)808において、サーバ710は、署名済み証明書242をHSM130に送信し、HSM130は後に、サーバ710から暗号化データを受信するために、証明書242をサーバ710に提示することができる。
【0067】
次に図8Bを参照すると、役割割当850の通信線図が示されている。役割割当850は、どちらの鍵132及びポリシー134をHSM130に提供すべきかを、次に判定することができないHSM130に役割を割り当てる通信の一実施形態である。いくつかの実施形態において、役割割当850は、新しいノード120が製造時に作成されるとき、ネットワーク100の組立て中、又は組立て後に実施されてもよい。
【0068】
図示のように、役割割当850は、HSM130及びプロビジョニングサーバ710(又は役割割当に係るいくつかの他のサーバ)が、セキュア接続を確立した状態で、852で開始する。いくつかの実施形態において、この接続は、EDCHを介して識別鍵246を使用して確立されてもよい。854において、HSM130は、プロビジョニングサーバ710に能力情報244を送信する。上記のように、能力情報244は、HSM130に結合されたノード120の様々な機能を識別することができる。いくつかの実施形態において、この情報244は、ノード120の製造者によって提供されてもよい。856において、プロビジョニングサーバ710は、能力情報244を検討して、ノード120に役割を割り当てる。例えば、ノード120がヘッドライト又はテールライトで動作可能であれば、サーバ710は、ノード120にヘッドライトの役割を割り当てることができる。図示のように、サーバ710は、割り当てられた役割を指定するデータからデジタル署名を生成することができる。858において、サーバ710は、署名された能力情報244をHSM130に返信する。HSM130は後に、適切な鍵132及びポリシー134を受信するために署名された情報を提供する。いくつかの実施形態において、サーバ710はまた、能力情報244のコピーを格納することができる。
【0069】
特に、能力情報244に署名する際に、サーバ710は、悪意のあるエンティティが、ノード120に割り当てられた役割を変更することを防止する。サーバ710はまた、偽のデバイスが使用されることを防止する。すなわち、いくつかの実施形態において、HSM130が署名された能力情報244を欠いている場合、鍵132及びポリシー134をプロビジョニングされることができず、したがって、他のノード120と通信することができない。更に、偽のデバイスは、いくつかの実施形態において、プロビジョニングサーバ710とのセキュア接続を確立するための前提条件である識別鍵246を欠く場合もある。
【0070】
次に図9を参照すると、診断モード900の流れ図が示されている。いくつかの実施形態において、ゲートウェイ140は、ゲートウェイ140が、ネットワーク100についての様々な情報を提供し、ユーザが、実行可能なネットワーク100のプロビジョニングを含む様々な動作を選択できるようにする診断モード900を支持するように構成される。したがって、いくつかの実施形態において、診断モード900は、ネットワークの組立て、ノード120及び/又はHSM130内のファームウェアの更新、並びにネットワーク100内のノード120の交換時に呼び出すことができる。図9は、診断モード900を入力するように命令されたときに、ゲートウェイ140及び/又はプロビジョニングサーバ710によって実行することができるステップの順序を示す。
【0071】
図示のように、ネットワーク100に挿入された任意のノード120が検出されたことで、ステップ910で診断モード900のステップが開始される。ノード120の検出に応じて、ゲートウェイ140は、ステップ920において、そのHSM130から公開鍵証明書242を収集する。いくつかの例では、ゲートウェイ140は、HSM130が、証明書242を有していない、又は無効な証明書を有していることを判定できる。そのような場合、ゲートウェイ140は、上で図8Aに関して説明したように鍵登録を行うようにHSM130に命令することができる。いくつかの実施形態において、ゲートウェイ140が、ノード120又はHSM130と通信することが困難な場合、ゲートウェイ140は、通信エラーを識別することができる。ステップ930において、ゲートウェイ140は、収集された証明書242をプロビジョニングサーバ710に送信する。
【0072】
ステップ940において、プロビジョニングサーバ710は、ネットワーク100に接続されたノード120との間で、何らかの問題が存在するかどうかを判定するために不正チェックを行う。(他の実施形態において、ステップ940の一部又は全部が、ゲートウェイ140によって実行されてもよい。)図示のように、このチェックは、いくつかの実施形態において、図9に示すよりも多い(又は少ない)ステップを含むことができるステップ942~946の実行を含むことができる。ステップ942において、送られてきた証明書242が完全なシステムであるかどうかを判定する。例えば、ノード120がECUであるいくつかの実施形態において、ステップ942は、証明書242に基づいて、乗物用の完全なECUのセットが存在するかどうかを判定することを含むことができる。いくつかの実施形態において、ステップ942は、上記のように証明書242に含まれる検査能力情報244を含むことができる。証明書242が見つからない場合、ネットワーク100に存在しない1つ以上のノード120、又はネットワーク100に挿入された偽のノード120に起因している可能性がある。ステップ944において、送信された証明書242が同一システムに属するかどうか判定がなされる。2つの異なるシステムのための証明書242が受信された場合、誰かが1つのシステムからノード120を取り出して、潜在的なセキュリティ問題を示す別のノード120と組み合わせようとしている場合がある。ステップ946において、任意の証明書が盗難システムに関連付けられているかどうか別の判定がなされる。いくつかの実施形態において、システムが盗難されたとして報告された場合、プロビジョニングサーバ710Bは、その証明書242をブラックリストに追加し、ブラックリスト上の証明書を有するHSM130を含むいかなるネットワーク100のプロビジョニングを拒否することができる。プロビジョニングサーバ710はまた、HSM130に命令して、ブラックリストに載せられた証明書242を有するHSM130との通信に使用されるいかなる鍵132も無効化させることができる。そうすることにより、サーバ710は、ネットワーク100上の通信を防止することができ、ネットワーク100を含むシステムを有効に煉瓦で囲うことができる。
【0073】
不正チェックが失敗した場合、ゲートウェイ140は、プロビジョニングサーバ710からなぜチェックが失敗したかを明らかにする情報を受信し、診断モード900を開始したユーザにその情報を提供する。しかし、不正チェックが首尾よく完了した場合、ゲートウェイ140は、上で図7に関して説明したように、ステップ950において鍵ブロブ720を受信し、分配することができる。
【0074】
次に図10Aを参照すると、ネットワークの1つ以上のノードをプロビジョニングするための方法1000の流れ図が示されている。方法1000は、ゲートウェイ140などのコンピューティングデバイスによって実行することができる方法の一実施形態である。いくつかの例では、方法1000を実行することにより、よりセキュアなネットワーク通信を可能にすることができる。
【0075】
ステップ1010において、コンピューティングデバイスは、複数のECUのうちの1つが交換されたという指示を受信する。様々な実施形態において、複数の電子制御ユニット(ECU)は、乗物の動作を制御し、この動作制御は、鍵のセット(例えば、鍵132)を使用して暗号化された、ECU間の通信データ(例えば、MAC)を含む。
【0076】
ステップ1015において、コンピューティングデバイスは、指示に応じて、鍵のセットを交換するために、広域ネットワーク(WAN)上のエンティティ(例えば、プロビジョニングサーバ710)に要求を発行する。
【0077】
ステップ1020において、コンピューティングデバイスは、WAN上のエンティティから置換鍵のセット(例えば、鍵ブロブ720)を受信する。いくつかの実施形態において、ステップ1020はまた、セット内の置換鍵に対する使用を定義するポリシー情報(例えば、ポリシー134)を受信することを含む。こうした実施形態において、ポリシー情報は、セット内の第1の鍵に対して、1)第1の鍵で暗号化されたデータを送信することを許可されている複数のECUのうちの1つ、2)第1の鍵で暗号化されたデータを受信することを許可されている複数のECUのうちの1つ以上を識別する。いくつかの実施形態において、ステップ1020はまた、置換鍵のうちの1つ以上が無効化されたという指示を受信することを含む。
【0078】
ステップ1025において、コンピュータデバイスは、複数のECUに置換鍵のセットを分配する。いくつかの実施形態において、複数のECUのうちの第1のECU(例えば、ノード120Aに結合されたHSM130A)に結合された第1のセキュア回路は、第1のECUに分配された置換鍵を受信し、第1のECUからの置換鍵でデータを暗号化する要求にサービスを提供する。いくつかの実施形態において、第1のECUからの要求にサービスを提供する前に、セキュア回路は、置換鍵をゲートウェイに知られないようにさせる方法で置換鍵を変更する。いくつかの実施形態において、ステップ1025はまた、ステップ1020において、置換鍵のセットによって受信されたポリシー情報を分配することを含む。いくつかの実施形態において、ステップ1025はまた、ステップ1020において、無効にされていると示された1つ以上の置換鍵の使用を中止するように複数のECUに通知することを含む。
【0079】
次に図10Bを参照すると、許可されていないノードを検出するための第1の方法1030の流れ図が示されている。いくつかの実施形態において、方法1030は、ネットワーク100に挿入された潜在的に偽のノード120を識別するために、診断モード中にゲートウェイ140又は暫定サーバ710によって実行することができる。
【0080】
方法1030は、ステップ1040において、ネットワーク(例えば、ネットワーク100)に結合された複数のノード(例えば、ノード120)を検出するコンピュータシステムを開始する。いくつかの実施形態において、複数のノードは、乗物の動作を制御するように構成された電子制御ユニット(ECU)を含む。ステップ1045において、コンピュータシステムは、複数のノードのうちの1つがノードの正当性を証明する証明書(例えば証明書242)を提供するよう求める要求を発行する。いくつかの実施形態において、方法1030は、認証局(CA)(例えば、鍵登録800を介して)からの証明書を受信し、ノード用の証明書を格納するように構成されたセキュア回路(例えば、HSM130)から、複数のノードのうちの1つに関連付けられた証明書を受信するコンピュータシステムを含む。ステップ1050において、コンピュータシステムは、要求に応答して証明書を提供するのに失敗したノードのうちの1つ以上を識別する。いくつかの実施形態において、この識別は、1つ以上のノードは、ネットワークと共に使用することを許可されていないことを示すことを含む。
【0081】
次に図10Cを参照すると、許可されていないノードを検出するための第2の方法1060の流れ図が示されている。いくつかの実施形態において、方法1060は、1つのネットワーク100から除去され、別のネットワーク100に挿入されたノード120(例えば、潜在的に盗難された乗物から除去され、別の乗物に挿入されたECU)を識別するために、診断モード中に暫定サーバ710又はゲートウェイ140によって実行することができる。
【0082】
方法1060は、コンピュータシステムが、第1のネットワーク(例えば、ネットワーク100)に結合された複数のノード(例えば、ノード120)から証明書(例えば、証明書242)を受信した状態で、ステップ1070で開始する。ステップ1075において、コンピュータシステムは、証明書が第1のネットワークに関連付けられているかどうかを判定するために、その証明書を分析する。いくつかの実施形態において、方法1060は、複数のノードのうちの第1のノードに証明書を発行する要求を受信するコンピュータシステムを含み、その要求は、第1のノードを第1のネットワークに関連付けられているものとして識別する。コンピュータシステムは、証明書を第1のノードに発行し、第1のネットワークに関連付けられた証明書のリスト中のその証明書の指示を格納する。このような実施形態において、ステップ1075は、リストの分析を更に含む。いくつかの実施形態において、方法1060は、複数のノードのうちの第1のノードに証明書を発行する要求を受信するコンピュータシステムを含み、その要求は、第1のノードを第1のネットワークに関連付けられているものとして識別する。コンピュータシステムは、第1のノードが第1のネットワークに関連付けられていることを指定する指示を証明書が含むように、証明書を第1のノードに発行する。このような実施形態において、ステップ1075は、証明書に含まれる指示を分析することを含む。ステップ1080において、コンピュータシステムは、分析に基づいて、複数のノードのうちの1つを第2のネットワークに関連付けられているものとして識別する。
例示的なコンピュータシステム
【0083】
次に図11を参照すると、例示的なコンピュータシステム1100のブロック図が示されている。コンピュータシステム1100は、1つ以上のノード120、ゲートウェイ140、サーバ710等を実装するために使用可能なコンピュータシステムの一実施形態である。図解した実施形態において、コンピュータシステム1100は、相互接続1180(例えば、システムバス)を介してシステムメモリ1140及びI/Oインタフェース1160に結合されるプロセッササブシステム1120を備える。I/Oインタフェース1160は、1つ以上のI/Oデバイス1170に結合される。コンピュータシステム1100は、これだけには限らないが、サーバシステム、パーソナルコンピュータシステム、ネットワークコンピュータ、組み込みシステム等を含む、様々な任意のタイプのデバイスであってもよい。便宜上、単一のコンピュータシステム1100が図11に示されているが、システム1100は、共に動作する2つ以上のコンピュータシステムとして実装されてもよい。
【0084】
プロセッササブシステム1120は、1つ以上のプロセッサ又は処理ユニットを含んでもよい。コンピュータシステム1100の様々な実施形態において、プロセッササブシステム1120の複数のインスタンスは相互接続1180に結合されてもよい。様々な実施形態において、プロセッササブシステム1120(又は1120内の各プロセッサユニット)は、キャッシュ又は他の形態のオンボードメモリを含むことができる。
【0085】
システムメモリ1140は、システム1100に本明細書で記述された様々な動作を実行させるために、プロセッササブシステム1120によって実行可能なプログラム命令を格納することができる。システムメモリ1140は、ハードディスク記憶デバイス、フロッピーディスク記憶デバイス、リムーバブルディスク記憶デバイス、フラッシュメモリ、ランダムアクセスメモリ(RAM-SRAM、EDO RAM、SDRAM、DDR SDRAM、RAMBUS RAMなど)、読み出し専用メモリ(PROM、EEPROMなど)等といった、様々な物理的な、非一時的記憶媒体を使用して実装することができる。コンピュータシステム1100のメモリは、メモリ1140などの一次記憶デバイスに限定されない。むしろ、コンピュータシステム1100はまた、プロセッササブシステム1120内のキャッシュメモリ、及びI/Oデバイス1170(例えば、ハードドライブ、ストレージアレイなど)上の二次記憶デバイスといった他の形態の記憶デバイスを含むことができる。いくつかの実施形態において、これらの他の形態の記憶デバイスもまた、プロセッササブシステム1120によって実行可能なプログラム命令を格納し、本明細書に記載された動作を実行する。
【0086】
I/Oインタフェース1160は、様々な実施形態に従って、他のデバイスに結合、及び通信するように構成された、様々な任意のタイプのインタフェースであってよい。一実施形態において、I/Oインタフェース1160は、前面側から1つ以上の背面側バスへのブリッジチップ(例えば、サウスブリッジ)である。I/Oインタフェース1160は、1つ以上の対応するバス又は他のインタフェースを介して、1つ以上のI/Oデバイス1170に結合することができる。I/Oデバイス1170の例としては、記憶デバイス(ハードドライブ、光学ドライブ、リムーバブルフラッシュドライブ、記憶アレイ、SAN、又はそれらの関連コントローラ)、ネットワークインタフェースデバイス(例えば、ローカル又は広域ネットワーク)、又は他のデバイス(例えば、グラフィックス、ユーザインタフェースデバイス、など)が挙げられる。一実施形態において、コンピュータシステム1100は、ネットワークインタフェースデバイス1170(例えば、WiFi(商標登録)、Bluetooth(商標登録)、イーサネット等を介して通信するように構成される)を介してネットワークに結合される。
***
【0087】
特定の実施形態が上に記載されているか、これらの実施形態は本開示の範囲を限定する意図はなく、特定の機能に対して単一の実施形態のみが記載されている場合でも同様である。本開示で提供されている機能の実施例は、別途記載がない限り、例示的な性質のものであって、限定的な目的を意図していない。上記の記載は、本開示の利点を有する当業者に明らかであるように、このような代替物、改変例、及び均等物を包含することが意図されている。
【0088】
本開示の範囲は、本願で取り組まれている問題の一部又はすべてを軽減するかどうかに関係なく、本願で(明示的又は暗黙的に)開示されているすべての機能若しくはそれら機能の組み合わせ、又はそれらの一般化を含む。したがって、新しい特許請求は、本願のこのような機能の組み合わせに対する本願(又は、本願に対する優先権を主張する出願)の手続き中に策定し得る。特に、特許請求の範囲に関しては、従属クレームの機能は独立クレームの機能と組み合わされる場合があり、それぞれの独立クレームの機能は、任意の適切な方法で、かつ、単に添付の特許請求の範囲で列挙されている特定の組み合わせではない形で組み合わされる場合がある。
図1
図2
図3
図4
図5
図6A
図6B
図7
図8A
図8B
図9
図10A
図10B
図10C
図11