(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-10-14
(45)【発行日】2022-10-24
(54)【発明の名称】車両内電子制御ユニット間のセキュアな通信
(51)【国際特許分類】
H04L 9/08 20060101AFI20221017BHJP
H04L 9/32 20060101ALI20221017BHJP
G06F 21/44 20130101ALI20221017BHJP
G06F 21/60 20130101ALI20221017BHJP
【FI】
H04L9/08 B
H04L9/32 200A
H04L9/32 200B
G06F21/44
G06F21/60 320
G06F21/60 360
(21)【出願番号】P 2020541346
(86)(22)【出願日】2019-01-25
(86)【国際出願番号】 EP2019051877
(87)【国際公開番号】W WO2019145488
(87)【国際公開日】2019-08-01
【審査請求日】2020-09-24
(32)【優先日】2018-01-29
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2018-07-05
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】504344495
【氏名又は名称】ナグラビジョン エス アー
(74)【代理人】
【識別番号】100121083
【氏名又は名称】青木 宏義
(74)【代理人】
【識別番号】100138391
【氏名又は名称】天田 昌行
(74)【代理人】
【識別番号】100074099
【氏名又は名称】大菅 義之
(72)【発明者】
【氏名】バッファード クリストフェ
(72)【発明者】
【氏名】シェガル サンジーブ
【審査官】金沢 史明
(56)【参考文献】
【文献】国際公開第2015/170451(WO,A1)
【文献】特開2017-079369(JP,A)
【文献】特許第6260067(JP,B2)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 9/00- 9/38
G06F 21/44,21/60
(57)【特許請求の範囲】
【請求項1】
システムであって、
車両内の複数の電子制御ユニット(ECU)のうちの第1のECUと、
前記複数のECUのうちの第2のECUと、
を備え、
前記第1のECUが、
前記複数のECUのうちの第3のECUのみが前記第2のECUのみとセキュアにメッセージを交換することを可能にするために、前記第3のECUにセキュリティ鍵のセットを提供することと、
前記第3のECUのみが前記第2のECUのみとセキュアにメッセージを交換することを可能にするために、前記第2のECUに、前記第3のECUのみと交換された前記メッセージを認証するための認証データを提供することであって、前記認証データが、前記セキュリティ鍵のセットに基づく前記第3のECUとの通信に関連付けられた、1つ以上の属性を含
み、該1つ以上の属性は、前記セキュリティ鍵についての満了期間を定義する時間的な属性を含む、ことと、
を含む第1の動作を実施するように構成され、
前記第2のECUが、
前記第3のECUのみが前記第2のECUのみとセキュアにメッセージを交換することを可能にするために、前記第3のECUから、前記第3のECUに提供された前記セキュリティ鍵のセットからのセキュリティ鍵を使用して暗号法的に署名されたセキュアなメッセージを受信することと、
前記認証データを認証信号と比較
して、前記受信されたセキュアなメッセージを認証すること
であって、前記認証信号は、前記第2のECUによって維持されるクロック信号を含み、前記認証データを前記認証信号と前記比較するために前記満了期間が前記クロック信号と比較される、ことと、
前記認証データと前記認証信号との前記比較に基づき、前記第3のECUに関して
の前記認証の失敗を示す失敗信号を前記第1のECUへ送信することと、
を含む第2の動作を実施するように構成され、
前記第1のECUは、前記第2のECUから前記失敗信号を受信することに応じて、前記第3のECUを、前記第3のECUが1つ以上の動作を実施することを制限する制限動作モードに置くことにより、前記車両の動作を限定するように更に構成される、
システム。
【請求項2】
前記第2のECUが、更に、前記第1のECUと通信するコンピュータ・システムによって提供される1つ以上の更新に基づいて前記クロック信号を維持する、請求項
1に記載のシステム。
【請求項3】
前記複数のECU間でセキュアな通信を可能にするための前記第1の動作が、
セキュリティ・システムのコンピュータ・システムに、前記認証データを更新するための更新された認証データを要求することであって、前記更新された認証データが、前記セキュリティ鍵についての前記満了期間の更新を含む、ことと、
前記第2のECUに、前記セキュリティ鍵についての前記更新された認証データを提供することと、
をさらに含む、請求項
1に記載のシステム。
【請求項4】
前記セキュアなメッセージが、前記認証信号と前記セキュリティ鍵との組み合わせを使用して暗号法的に署名される、請求項1に記載のシステム。
【請求項5】
前記第1のECUは、前記第2のECUから前記失敗信号を受信することに応じて、セキュリティ・サービスを提供するコンピュータ・システムに、前記第3のECU用の新しいセキュリティ鍵を要求するように、更に構成される、請求項1に記載のシステム。
【請求項6】
前記第1のECUは、
セキュリティ・サービスを提供するコンピュータ・システムから、複数のデジタル証明書を受信することであって、それぞれのデジタル証明書が前記複数のECUのうちの1つに対応している、ことと、
ファームウェアを配信するサービスを提供するサーバ・コンピュータに、前記複数のECUのうちのそれぞれのECU上でファームウェアを設定するためのファームウェア・データについての要求を送信することであって、前記要求が前記複数のデジタル証明書を含む、ことと、
前記サーバ・コンピュータから、前記複数のECUのそれぞれのECUのための前記ファームウェア・データを受信することと、
前記ファームウェア・データを使用して、前記複数のECUのそれぞれのECU上で前記ファームウェアを設定させることと、
をさらに行うように構成される、請求項1に記載のシステム。
【請求項7】
前記複数のECUのそれぞれのECUが、最初に、プログラム・コードの一部を含み、それぞれのECUが、前記プログラム・コードの前記一部を使用しては完全に動作することができず、
前記複数のECUのそれぞれのECU上で設定されると、前記ファームウェアにより、それぞれのECUが、前記ECUが完全に動作させることを可能にする前記プログラム・コードを有するようになる、請求項
6に記載のシステム。
【請求項8】
システムであって、
車両内の複数の電子制御ユニット(ECU)のうちの第1のECUの1つ以上のプロセッサと、
前記第1のECUのメモリ・デバイスと、
を備え、
前記メモリ・デバイスが、
前記複数のECUのうちの第2のECUのみによって前記複数のECUのうちの第3のECUのみと交換されるメッセージを認証するための認証データであって、前記第3のECUのみが前記第2のECUのみとセキュアにメッセージを交換することを可能にするために、前記認証データが、前記第3のECUに提供されたセキュリティ鍵のセットに基づく前記第3のECUとの通信に関連付けられた、1つ以上の属性を含
み、該1つ以上の属性は、前記セキュリティ鍵についての満了期間を定義する時間的な属性を含む、認証データと、
前記第3のECUのみが前記第2のECUのみとセキュアにメッセージを交換することを可能にするための、前記セキュリティ鍵のセットと、
命令のセットと、
を記憶し、
前記命令のセットは、前記1つ以上のプロセッサによって実行されると、
前記第1のECUに、
前記第3のECUのみが前記第2のECUのみとセキュアにメッセージを交換することを可能にするために、前記第3のECUに前記セキュリティ鍵のセットを提供することと、
前記第3のECUのみと交換された前記メッセージを認証するための前記認証データを、前記第2のECUに提供することと、
を含む第1の動作を実施させ、
前記第2のECUは、前記第2のECUへの前記認証データの提供に応じて、
前記第3のECUから、前記第3のECUに提供された前記セキュリティ鍵のセットからのセキュリティ鍵を使用して暗号法的に署名されたセキュアなメッセージを受信することと、
前記認証データを、前記第1のECUによって維持される認証信号と比較
して、前記受信されたセキュアなメッセージを認証すること
であって、前記認証信号は、前記第2のECUによって維持されるクロック信号を含み、前記認証データを前記認証信号と前記比較するために前記満了期間が前記クロック信号と比較される、ことと、
前記認証データと前記認証信号との前記比較に基づき、前記第3のECUに関して
の前記認証の失敗を示す失敗信号を前記第1のECUへ送信することと、
を含む第2の動作を実施し、
前記第1のECUによって実施される前記第1の動作は、前記第2のECUから前記失敗信号を受信することに応じて、前記第3のECUを、前記第3のECUが1つ以上の動作を実施することを制限する制限動作モードに置くことにより、前記車両の動作を限定すること、を更に含む、
システム。
【請求項9】
前記車両の前記複数のECUのうちの前記第3のECUをさらに備える、請求項
8に記載のシステム。
【請求項10】
前記命令のセットが、前記第2のECUから受信した前記セキュアなメッセージを正常に認証することができないことに応じて、前記第1のECUに、前記第3のECUへ更なる信号を送信させ、前記更なる信号は、前記第2のECUに関して
の前記認証の失敗を示し、
前記第3のECUは、
前記第1のECUから前記更なる信号を受信することに応じて、前記車両の動作を限定することと、
前記第1のECUから前記更なる信号を受信することに応じて、セキュリティ・サービスを提供するコンピュータ・システムに、前記第2のECU用の新しいセキュリティ鍵を要求することと、
を含むさらなる動作を実施する、請求項
9に記載のシステム。
【請求項11】
車両内の複数の電子制御ユニット(ECU)のうちの第1のECUにおいて、前記複数のECUのうちの第2のECUのみによって前記複数のECUのうちの第3のECUのみと交換されるメッセージを認証するための認証データを記憶することであって、前記第3のECUのみが前記第2のECUのみとセキュアにメッセージを交換することを可能にするために、前記認証データは、第3のECUに提供されたセキュリティ鍵のセットに基づく前記第3のECUとの通信に関連付けられた、1つ以上の属性を含
み、該1つ以上の属性は、前記セキュリティ鍵についての満了期間を定義する時間的な属性を含む、ことと、
前記第1のECUにおいて、前記第3のECUのみが前記第2のECUのみとセキュアにメッセージを交換することを可能にするために、前記セキュリティ鍵のセットを記憶することと、
前記第3のECUのみが前記第2のECUのみとセキュアにメッセージを交換することを可能にするために、前記第3のECUに前記セキュリティ鍵のセットを提供することと、
前記第3のECUのみと交換された前記メッセージを認証するための前記認証データを、前記第2のECUに提供することと、
を含み、
前記第2のECUは、前記第2のECUへの前記認証データの提供に応じて、
前記第3のECUから、前記第3のECUに提供された前記セキュリティ鍵のセットからのセキュリティ鍵を使用して暗号法的に署名されたセキュアなメッセージを受信することと、
前記認証データを、前記第1のECUによって維持される認証信号と比較
して、前記受信されたセキュアなメッセージを認証すること
であって、前記認証信号は、前記第2のECUによって維持されるクロック信号を含み、前記認証データを前記認証信号と前記比較するために前記満了期間が前記クロック信号と比較される、ことと、
前記認証データと前記認証信号との前記比較に基づき、前記第3のECUに関して
の前記認証の失敗を示す失敗信号を前記第1のECUへ送信することと、
を含む動作を実施し、
前記第1のECUは、前記第2のECUから前記失敗信号を受信することに応じて、前記第3のECUを、前記第3のECUが1つ以上の動作を実施することを制限する制限動作モードに置くことにより、前記車両の動作を限定する、
方法。
【発明の詳細な説明】
【技術分野】
【0001】
優先権の主張
本出願は、参照により本明細書に援用される、2018年1月29日に提出された「AUTOMATED SECURE INCLUSION OF AUTOMOTIVE ECUS INTO A TRUST ZONE」と題される米国特許仮出願第62/623,304号、および2018年7月5日に提出された「SECURE COMMUNICATION BETWEEN IN‐VEHICLE ELECTRONIC CONTROL UNITS」と題される米国特許出願第16/027,681号に対する優先権の利益を主張するものである。
【0002】
本明細書において開示される主題は、電子制御ユニット(ECU:electronic control unit)を含む車両コンピュータ・システムにおけるセキュリティに関する。例示の実施形態は、ECU間の通信などの車両コンピュータ・システムにおけるセキュアな通信のための技法に対処する。
【背景技術】
【0003】
自動車、船舶、電車、および航空機などの車両は、典型的には組み立てラインで組み立てられる別個のコンポーネントから作られている。これらのコンポーネントは、いくつかの電子制御ユニット(ECU)から成るコンピュータ・システムを含む場合がある。ECUは、車両内の1つまたは複数の電気的なシステムまたはサブシステムをそれぞれ制御する埋め込みシステムであることができる。ECUの数が増加する結果、車両コンピュータ・システムにおけるセキュリティの脆弱性が高まる。そのような脆弱性により、不正な制御または悪意のある制御につながるサイバー脅威が生じ得る。現在、すべてのECUがセキュアに、また自動化されたやり方で接続される方法が、損なわれる可能性がある。
【0004】
添付の図面の様々なものは、本主題の例示の実施形態を図示しているに過ぎず、その範囲を限定するものとしては見なされない。
【図面の簡単な説明】
【0005】
【
図1】いくつかの実施形態による、車両の電子制御ユニット(ECU)の信頼ゾーンへのセキュアな取り込みを自動化するためのアーキテクチャを有するセキュリティ・システムを図示するアーキテクチャ図である。
【
図2】いくつかの代替的な実施形態による、車両のECUの信頼ゾーンへの自動化されたセキュアな取り込みのためのアーキテクチャを有するセキュリティ・システムを図示するアーキテクチャ図である。
【
図3】いくつかの代替的な実施形態による、車両のECUの信頼ゾーンへの自動化されたセキュアな取り込みのためのアーキテクチャを有するセキュリティ・システムを図示するアーキテクチャ図である。
【
図4】いくつかの実施形態による、車両の複数のECU間のセキュアな通信を可能にするための方法を実施する際の、セキュリティ・システムのコンポーネント間の対話を図示する対話図である。
【
図5】いくつかの実施形態による、車両の複数のECU上でファームウェアをセキュアに設定するための方法を実施する際の、セキュリティ・システムのコンポーネント間の対話を図示する対話図である。
【
図6】いくつかの実施形態による、交換ECU上でファームウェアをセキュアに設定するための方法を実施する際の、セキュリティ・システムのコンポーネント間の対話を図示する対話図である。
【
図7】いくつかの代替的な実施形態による、交換ECU上でファームウェアをセキュアに設定するための方法を実施する際の、セキュリティ・システムのコンポーネント間の対話を図示する対話図である。
【
図8】いくつかの実施形態による、ECUの機能的なコンポーネントを図示するシステム図である。
【
図9】いくつかの実施形態による、車両のECU間でメッセージをセキュアに交換するための方法を実施する際の、セキュリティ・システムのコンポーネント間の対話を図示する概念図である。
【
図10】いくつかの実施形態による、メッセージをセキュアに交換するための方法を実施する際の、車両の複数のECU間の対話を図示する対話図である。
【
図11】いくつかの実施形態による、メッセージをセキュアに交換するための方法を実施する際の、車両の複数のECU間の対話を図示する対話図である。
【
図12】いくつかの実施形態による、セキュリティ・システムによって提供されるグラフィカル・インターフェースの態様を図示するインターフェース図である。
【
図13】本明細書において議論される方法のいずれか1つまたは複数を機械に実施させる命令のセットが実行され得るコンピュータ・システムの例示の形態における、機械の図的な表現である。
【発明を実施するための形態】
【0006】
次に、主題を遂行するために、具体的な例示の実施形態を詳細に参照する。これらの具体的な実施形態の例は、添付の図面に図示されており、主題の徹底した理解を与えるために具体的な詳細が以下の説明で述べられる。これらの例は、特許請求の範囲を説明される実施形態に限定することを意図されていないことを理解されたい。反対に、それらは本開示の範囲内に含められ得るような代替例、変形例、および等価物をカバーするように意図されている。
【0007】
本開示の態様は、電子制御ユニット(ECU)を含む複数のコンポーネント間で、車両内のセキュアな通信を可能にするシステムを開発するためのセキュリティ・アーキテクチャを伴う。セキュリティ・アーキテクチャにより、セキュアなFirmware Over-The-Air(FOTA)更新、セキュアなMap Over-The-Air(MOTA)更新、ECU間のセキュアな通信、セキュアな車車間および車-インフラストラクチャ間(「V2X」と総称される)通信、ならびに正当なECU交換が可能となる。
【0008】
車両組み立てプロセスの間、車両のECUの詳細は、分かる場合もあり、または分からない場合もある。例えば、ECUのタイプのみ(例えば、ゲートウェイ制御ユニット(GCU)、ドア制御ユニット(DCU)、テレマティクス制御ユニット(TCU)など)が分かる場合もある。別のシナリオでは、車両に入れられる正確なECUが分かる場合もある。しかしながら、本明細書において説明されるセキュリティ・アーキテクチャは、デプロイメント時、またはデプロイメント後に、相手先ブランド供給業者(OEM:original equipment manufacturer)がセキュアにする必要があるネットワークのコンポーネントの詳細を正確に知ることを要求しない。この方法では、セキュリティ・アーキテクチャにより、ECUの従来の詳細な知識により、またはそのような知識なしに、ECUをセキュアにすることができる。ECUが主ECU(例えば、中央ゲートウェイ)に接続される場合、それらを識別することができ、次にこの識別情報を、それらを信頼されるセキュアなネットワークに自動化されたやり方で持ち込むために使用することができる。
【0009】
本開示のさらなる態様は、車両内のECU間のセキュアな通信を可能にするための技法(例えば、システム、方法、またはデバイス)に対処する。システムには、車両には少なくとも第1のECUおよび第2のECUが含まれる可能性がある。第1のECUは、複数のECUを通信可能にリンクして、ECU間のセキュアな通信を可能にすることができる。ECUを通信可能にリンクすることにおいて、第1のECUは第3のECUと交換されるメッセージを認証するための認証データを第2のECUにプロビジョン(提供)することができ、第1のECUは第3のECUが第2のECUとメッセージを交換できるようにするセキュリティ鍵のセットを第3のECUにプロビジョンすることができる。第2のECUは、第3のECUから、第3のECUにプロビジョンされたセキュリティ鍵のセットからのセキュリティ鍵を使用して暗号法的に署名されたセキュアなメッセージを受信することができる。第2のECUは、認証データを認証信号と比較することによってセキュアなメッセージを認証することができる。
【0010】
例として、認証データは、第3のECUが第2のECUに送信することができるメッセージ数を限定する最大メッセージ・カウントを含む場合があり、認証信号は、第3のECUによって第2のECUに送信されるメッセージ数に相当するメッセージ・カウンタを含む場合がある。この例では、第3のECUからメッセージを受信すると、第2のECUはメッセージ・カウンタをインクリメントし、メッセージ・カウンタを最大メッセージ・カウントと比較することができる。メッセージ・カウンタが最大メッセージ・カウント以下である場合、第2のECUは第3のECUからのメッセージを正常に認証する。メッセージ・カウンタが最大メッセージ・カウントよりも大きい場合、第2のECUは第3のECUから受信したメッセージを正常に認証することができない。
【0011】
例として、認証データは第3のECUからのメッセージを暗号法的に署名するために使用されるセキュリティ鍵についての満了期間を含む場合があり、認証信号はクロック信号を含む場合がある。この例では、第3のECUからのメッセージを受信すると、第2のECUは満了期間をクロック信号と比較する。満了期間が経過していなければ、第2のECUは第3のECUからのメッセージを正常に認証する。満了期間が経過している場合、第2のECUは第3のECUから受信したメッセージを正常に認証することができない。
【0012】
上で議論した例におけるような、第2のECUが第3のECUから受信したメッセージを正常に認証することができない事例では、第2のECUは、第3のECUに関してセキュリティ鍵認証に失敗したことを示す信号を第1のECUに送信することができる。それに応じて、第1のECUは車両の動作を限定することができる。例えば、第1のECUは、第3のECUを、第3のECUが1つまたは複数の動作を実施することを制限する制限動作モードに置くことができる。加えて、または代替的に、第1のECUはセキュリティ・サブシステムによって提供されるセキュリティ・サービスに、第2のECU用の認証データを更新するために、更新された認証データを要求する場合がある。加えて、または代替的に、第1のECUは第3のECU用の新しいセキュリティ鍵を要求する場合がある。
【0013】
セキュリティ・アーキテクチャ
図1を参照すると、いくつかの実施形態による、例示のセキュリティ・システム100が示されている。例示のセキュリティ・システム100は、ECUが互いにセキュアに通信できるように、車両ECUの信頼ゾーンへの自動化されたセキュアな取り込みのために構成されている。不必要な詳細により主題が曖昧になることを回避するために、主題の理解を伝達することに密に関係しない様々な機能的なコンポーネント(例えば、サービスおよびエンジン)が
図1から省略されている。しかしながら、当業者であれば、本明細書において具体的に説明されない追加の機能性を容易にするために、様々な追加の機能的なコンポーネントがセキュリティ・システム100によってサポートされ得ることを容易に認識されよう。
【0014】
関連するコンピュータ分野における当業者によって理解されるように、
図1に図示される機能的なコンポーネントは、ハードウェア・コンポーネント、ファームウェア・コンポーネント、または命令を実装するために実行可能な命令と対応するハードウェアとのセット(例えば、メモリとプロセッサ)を有するコンポーネントなどの、1つまたは複数のコンポーネントを表現する場合がある。さらには、
図1の機能的なコンポーネントが単数の意味合いで議論されるが、他の実施形態では、コンポーネントが1つまたは複数である、複数形の事例が採用され得ることを了解されたい。
【0015】
図1で図示されるように、セキュリティ・システム100には、ネットワーク106を介して、セキュリティ・サービスを提供するネットワーク・アクセス可能セキュリティ・サブシステム104と通信する組み立てられた車両の車両システム102が含まれる。ネットワーク106の1つまたは複数の部分は、アドホック・ネットワーク、イントラネット、エクストラネット、仮想プライベート・ネットワーク(VPN)、ローカル・エリア・ネットワーク(LAN)、ワイヤレスLAN(WLAN)、ワイド・エリア・ネットワーク(WAN)、ワイヤレスWAN(WWAN)、メトロポリタン・エリア・ネットワーク(MAN)、インターネット、インターネットの一部、公衆交換電話網(PSTN)の一部、基本電話サービス(POTS)ネットワーク、セルラ電話ネットワーク、ワイヤレス・ネットワーク、Wi-Fi(R)ネットワーク、別のタイプのネットワーク、またはそのようなネットワークの2つ以上の組み合わせである可能性がある。例えば、ネットワーク106またはネットワーク106の一部には、ワイヤレスまたはセルラ・ネットワークが含まれる場合があり、ネットワーク106に接続されている
図1に図示されるコンポーネントのいずれか1つは、符号分割多元接続(CDMA)接続、Global System for Mobile communications(GSM)接続、または別のタイプのセルラもしくはワイヤレス連結を介してネットワーク106に連結することができる。この例では、ネットワーク106への連結は、シングル・キャリア無線伝送技術(1xRTT)、Evolution-Data Optimized(EVDO)技術、汎用パケット無線サービス(GPRS)技術、Enhanced Data rates for GSM Evolution(EDGE)技術、3Gを含む第3世代パートナーシップ・プロジェクト(3GPP)、第4世代ワイヤレス(4G)ネットワーク、ユニバーサル移動体通信システム(UMTS)、High-Speed Packet Access(HSPA)、Worldwide Interoperability for Microwave Access(WiMAX)、Long Term Evolution(LTE)標準、様々な標準設定機関による他の定義されたもの、他のlong-rangeプロトコル、または他のデータ伝送技術などの、様々なタイプのデータ転送技術のいずれかを実装することができる。
【0016】
示されるように、セキュリティ・サブシステム104は、フロントエンド・サーバ110、およびバックエンド・サーバ112などの1つまたは複数のコンピュータ・システムを含む。車両システム102は、組み立てられたECUなどの複数の制御ユニットを含む。例えば、車両システム102は、主ECU116(例えば、「ゲートウェイ」)、TCU118、駆動系ECU、トランスミッションECU、サスペンションECU、制動制御ユニット(BCU)、ADA ECU、クラスタECU、および制動ECUなどの、1つまたは複数のECUを含むことができる。主ECU116は、車両システム102のECUのそれぞれのセキュアな環境のコンテキストで通信するように構成される。プログラム・コード108(例えば、特定の機能性を実施するために実行機械を設定する機械可読命令のセットを含むソフトウェア・アプリケーション)は、例えばバックエンド・サーバ112に埋め込まれる場合があるか、またはバックエンド・サーバ112によって実行される場合があり、主ECU116、またはコンピュータ・デバイス(例えば、セキュリティ・ツール)は、主ECU116とセキュリティ・サブシステム104との通信を、ネットワーク106を介して容易にしている。車両システム102とのさらなる通信が、ピン配置、電気的、およびプロトコルの標準を提供する自己診断(OBD)システム120によって促進され得る。
【0017】
TCU118は、車両の追跡を制御し、また追跡された値を、ネットワーク106を介して、例えば集中型の地理学的情報システム(GIS)データベース・サーバ(図示せず)に与える移動体通信(例えば、GSM、GPRS、Wi-Fi、WiMAX、またはLTE)用の外部インターフェースを提供するように構成される。いくつかの実施形態において、TCU118は、さらに主ECU116がプログラム・コード108を必要とすることなくセキュリティ・サブシステム104と直接通信できるようにすることができる。
【0018】
示されるように、主ECU116は、車内の乗員に音声および動画コンテンツを提示するように構成される車載インフォテインメント(IVI)システム122とさらに通信している。IVIシステム122は、ネットワーク106を介して、1つまたは複数の外部デバイスとの通信可能な連結(例えば、Wi-Fi、USB、またはイーサネット)を通じて1つまたは複数の外部システム(例えば、外部コンテンツ・プロビジョン・システム)と通信するようにさらに構成される。
【0019】
セキュリティ・システム100のコンテキストでは、それぞれのECUの製造の間、対称鍵がセキュアな記憶コンポーネントまたはそれぞれのECUの他のセキュアな要素(例えば、ECUで実行中のプロセスによって、またはECUの外部で実行中のあらゆるプロセスによってアクセスすることができない要素)に記憶される。さらには、それぞれのECUの製造の間、バックエンドのルート証明書がそれぞれのECUの非修正可能な記憶装置に記憶される。車両の組み立てプロセスの終了近くでは、すべての組み立てられたECUは、最低限の機能性を提供する埋め込まれた部分的なプログラム・コードのみを有するが、それだけでは車両を動作させることができない。例えば、部分的なプログラム・コードにより、ECUが一意の識別子(例えば、公開鍵証明書)を主ECU116に通信できるようにすることができる。それぞれのECUの一意の識別子は、製造の間、対応するECUの非修正可能な記憶装置メカニズムに記憶することができる。部分的なプログラム・コードは、ECUを検証することにおいて補助となるようECU間の他の小規模な通信をさらに促進する。
【0020】
いくつかの実施形態に一貫して、プログラム・コード108を実行するデバイスまたはシステムは、車両製造業者により最終組み立てプロセスの間に車両の主ECU116に接続することができる。プログラム・コード108を実行するデバイスまたはシステムは、次の少なくとも2つの方法のうちの1つで主ECU116に接続することができる:1)共有の秘密(例えば、対称鍵と非対称鍵)に基づいてプログラム・コード108と主ECU116との間に信頼される通信を確立することができる;または2)セキュアな接続は確立されない場合があるが、このプロセスが、車両の組み立ての最後に、自動車OEMにより提供される完全に制御される安全な環境において実装され得る。
【0021】
(例えば、OBDシステム120を介して)主ECU116に接続されると、プログラム・コード108は、主ECU116から車両のすべての組み立てられたECUの一意の識別子(例えば、公開鍵証明書)の一覧を取得する。車両の正確なECUが予め分かっている場合、プログラム・コード108は生成された一覧と既知の一覧(例えば、マニフェスト)との比較を行って組み立てられたECUの正当性を検証する。既知の一覧は、例えば、バックエンド・サーバ112からプログラム・コード108により取り出すことができる。別の例では、既知の一覧の少なくとも一部がそれぞれのECUの製造者によって提供される可能性がある。
【0022】
ECUが検証されると、プログラム・コード108は、車両システム102のECU間のセキュアな通信を可能にするやり方で、すべてのECUを通信可能にリンクさせる。プログラム・コード108は、主ECU116にECUを通信可能にリンクさせてECU間のセキュアな通信を可能にするコマンドを、主ECU116に発行することができる。コマンドを受信すると、主ECU116はそれぞれのECUに、ECUが他のECUとメッセージをセキュアに交換できるようにすることによりECU同士をリンクするセキュリティ鍵(例えば、暗号化鍵)のセットをプロビジョンする。主ECU116は、それぞれのECUに、他のECUから受信したメッセージを認証するための認証データをさらにプロビジョンする。いくつかの実施形態では、バックエンド・サーバ112はすべてのECU用にセキュリティ鍵を生成し、プログラム・コード108を介してそれらを主ECU116に提供する。いくつかの実施形態では、主ECU116がそれぞれのECU用のセキュリティ鍵対を生成することができるか、またはそれぞれ個々のECUが、それ自身のセキュリティ鍵対を作り出すことができる。これらの実施形態に一貫して、それぞれのECUの公開鍵は、それぞれのECUに埋め込まれた一意の識別子を使用してバックエンド・サーバ112に提供される。セキュリティ鍵を生成してプロビジョンするために、多くの既知の技法のうちの1つを採用することができる。例えば、セキュリティ鍵は既知の対称アルゴリズムを使用して生成された「秘密鍵」であってもよく、または既知の非対称アルゴリズムを使用して生成された「公開鍵」であってもよい。
【0023】
ECUをリンクすることに関しては、実施形態に応じて、すべてのECUを互いにリンクすることができ、それぞれのECUは個々に主ECU116にリンクすることができるか、または一部のECUが互いにリンクされながら他のECUが主ECU116だけにリンクされる場合もある。そのような通信スキームを可能にするために、ECUのうちのいずれか1つに複数のセキュリティ鍵を与えることができる。最終的に、それぞれのECUにプロビジョンされるセキュリティ鍵は他のECUとの通信を可能にし、ひいては、セキュリティ鍵はあらゆる所与のECUが通信を許可されるのが、他のどのECUかを定めている。このようにして、2つのECU間のそれぞれのチャネルを一意の鍵でセキュアにすることができる。
【0024】
セキュリティ鍵をプロビジョンされると、ECUは互いにセキュアに情報を交換することができる。実施形態に応じて、情報は、暗号化されたメッセージ、またはそれぞれプロビジョンされたセキュリティ鍵で暗号法的に署名されたメッセージに含まれる場合がある。実施形態に応じて、情報を交換することにおいて、受信側ECUは、署名が既知の署名かどうか、またはECUがECU同士でネゴシエートされたセッションを暗号化することができる鍵を有しているかどうかをチェックする。
【0025】
セキュアな車両内通信リンクが確立された後、次にプログラム・コード108は主ECU116をバックエンド・サーバ112に接続し、バックエンド・サーバ112は主ECU116にECUのそれぞれのためのデジタル証明書(例えば、公開鍵証明書)をプロビジョンする。より具体的には、バックエンド・サーバ112は主ECU116に、証明書のトラスト・チェーン(chain of trust)を説明するために、バックエンドのルート証明書で署名された中間証明書を提供する。これらのデジタル証明書は、例えばFOTAプラットフォーム、またはプログラム・コードを完了させ車両を完全に機能できるようにするサービスを介して、新しいファームウェアを受け入れるためにECUによって使用される場合がある。これは、車両のネットワークが動作可能になる前にセキュアであることを確実にする。バックエンドのルート証明書、またはバックエンドのトラスト・チェーン内のあらゆる証明書で署名されたそれぞれのデジタル証明書は、対応するECUに記憶される。
【0026】
ECUのうちの1つが交換される場合、ディーラにおいて相手先ブランド供給業者(OEM)により、またはアフターマーケット施設においてのいずれかで、主ECU116とプログラム・コード108との間のセキュアな接続が作られる。プログラム・コード108は、セキュリティ・サブシステム104とのセキュアな接続を確立する。セキュリティ・サブシステム104は、プログラム・コード108を検証し、バックエンド・サーバ112を介してデジタル証明書を提供する。プログラム・コード108は、交換ECU用の一意の識別子を特定し、プログラム・コード108またはバックエンド・サーバ112は識別子を使用して交換ECUの真正性を検証し、プログラム・コード108はセキュアな接続を使用して証明書を交換ECUに配信する。次いでファームウェア更新がFOTAサービスを介して送信され、交換ECU上でプログラム・コードを完了させ、機能できるようにする。
【0027】
ECUが、別のECUが(例えば鍵の欠如により)損なわれていると判断する場合、ECUはそのような情報を主ECU116、あらゆる他のECU、またはセキュリティ・サブシステム204と通信することができるコンポーネントにレポートすることができる。損なわれているか、またはセキュアではない可能性があるECUに対処するために、またはそのようなECUを解決するために、主ECU116は、どのようなアクションを取るかを決定するよう設計することができる。例えば、主ECU116は、車両を、車両エンジンの動作が限定されるが車両の安全メカニズム(例えば、制動系)は限定されない「安全」モードに置くことができる。例として、「安全」モードは車両を、毎分回転数(RPM)または時速マイル(MPH)の、あるしきい値数で動作することに限定することができる。別の例では、「安全」モードでは、完全にスイッチオフされる前に、限定された距離(例えば100マイル)について車両を通常モードで運転できるようにすることができる。主ECU116がセキュリティ・サブシステム104に接続できると、主ECU116は損なわれているECUのレポートをバックエンド・サーバ112に与えることができる。
【0028】
いくつかの実施形態に一貫して、セキュリティ・システム100は、ハードウェアの信頼のルート(RoT)として機能してセキュアなネットワークを可能にして、LTE/GSMA/Global Platformのフレームワークを使用して車両のECU間のセキュリティを管理するために、技法および組み込みUICC(eUICC:Embedded Universal Integrated Circuit Card)ベースの加入者識別モジュール(SIM)インフラストラクチャを実装することができる。セキュリティ・システム100は、ECUの埋め込み型RoTおよび外部セキュア要素を活用することができる。このRoTまたはセキュア要素は、コンポーネントの製造の間に非修正可能な記憶メカニズムにセキュアかつ秘密に記憶される埋め込み型の事前共有鍵に記憶することができる。ECUのRoTまたは外部セキュア要素は、コンポーネントの製造の間に、バックエンドの証明書認証局(CA)の証明書、ECUの一意の識別子ならびにさらなるデータを非修正可能な記憶メカニズムを記憶することができる。
【0029】
図1に図示される実施形態では、車両システム102はプログラム・コード108を介してネットワーク106上でセキュリティ・サブシステム104と通信している。しかしながら、いくつかの実施形態では、車両システム102は信頼ゾーンを確立するためにセキュリティ・サブシステム104と直接通信することができる。例えば、
図2は、いくつかの代替的な実施形態による、車両のECUの信頼ゾーンへの自動化されたセキュアな取り込みのために構成されるセキュリティ・システム200を図示している。セキュリティ・システム100同様、セキュリティ・システム200は、ECU、OBDシステム220、IVIシステム222を備える車両システム202と、フロントエンド・サーバ210およびバックエンド・サーバ212を備えるセキュリティ・サブシステム204と、を備える。車両システム202のECUは、主ECU216およびTCU218を含む。車両システム202およびセキュリティ・サブシステム204のそれぞれは、セキュリティ・システム100の車両システム102およびセキュリティ・サブシステム104と同一の個々のコンポーネントを含み、それらと同一の個々の機能性を提供する。
【0030】
しかしながら、セキュリティ・システム100と違って、セキュリティ・システム200では、主ECU216は、プログラム・コードの必要なしにネットワーク206を介してセキュリティ・サブシステム204と通信することができる。主ECU216とセキュリティ・サブシステム204との間の通信は、TCU218によって、または主ECU216に埋め込まれた通信コンポーネントによって、可能となる場合がある。セキュリティ・システム200のコンテキストにおいて、主ECU216は
図1について上述したプログラム・コード108の機能を実施するように構成される。
【0031】
図1および
図2は、ネットワークを介してサーバベースのセキュリティ・サービスと直接的または間接的に通信している車両システムを図示しているが、代わりに他の実施形態では、セキュリティ・システムのセキュリティ・サブシステムは車両システムに直接接続される移動体ハードウェア・デバイス(例えば、ドングル)を含むことができる。例えば、
図3は、ドングルベースのセキュリティ・サブシステム304と通信している車両システム302を含むセキュリティ・システム300を図示している。
【0032】
車両システム102および202と同様に、車両システム302は主ECU316およびTCU318を含むECU、OBDシステム320、ならびにIVIシステム322を備える。車両システム302のコンポーネントのそれぞれは、セキュリティ・システム100の車両システム102内の対応するコンポーネントと同一の機能性を提供する。
【0033】
セキュリティ・システム100および200のセキュリティ・サブシステム104および204と違って、セキュリティ・サブシステム304は単純にドングル312を備える。ドングル312は、少なくともメモリ、プロセッサ、および少なくとも主ECU316と通信するための手段を備える小型の移動体ハードウェア・デバイスである。いくつかの実施形態では、ドングル312は、スマートフォンなどの移動体コンピューティング・デバイスであり得るか、またはそのようなものを含むことができる。
【0034】
実施形態に応じて、車両システム302は、OBDシステム320により、またはそれなしに、ドングルベースのセキュリティ・サブシステム304と通信することができる。示されるように、ドングルベースのセキュリティ・サブシステム304は車両システム302に直接接続することができ、ドングルベースのセキュリティ・サブシステム304はこの接続上で直接主ECU316と通信することができる。車両システム302の能力に応じて、接続媒体は、例えばワイヤレス(例えば、BluetoothまたはWi-Fi)、ワイヤード(例えば、イーサネット・ケーブル)、ユニバーサル・シリアル・バス(USB)またはデータ・バスであり得る。
【0035】
ドングルベースのセキュリティ・サブシステム304は車両システム302に直接接続することができるため、セキュリティ・システム300は、ネットワーク接続が利用できない状況において応用することができ、これは典型的にはECU交換のコンテキストで生じる。例えば、デプロイメントに先立って、適当なセキュリティ対策がなされた別個のネットワーク接続デバイスは、ドングル312を認証するために期限付きの資格証明をダウンロードする。ドングル312が認証されると、1つまたは複数のデジタル証明書(例えば、公開鍵証明書)および交換ECU用のファームウェアをドングル312のメモリにダウンロードして、暗号化して記憶することができる。
【0036】
現場にデプロイされると、ドングル312は、
図1および
図2を参照して上述したサーバベースのセキュリティ・サービスの機能性をエミュレートする。例えば、ドングル312は、車両システム302に接続することができ、デジタル証明書およびファームウェアの両方を交換ECUにインストールすることができる。このファームウェア更新は交換ECU上でプログラム・コードを完了させて完全に機能できるようにする。車両の車両識別番号(VIN)に関連付けられたコンポーネント一覧は、新しいコンポーネント情報で更新される。
【0037】
いくつかの実施形態では、ドングル312によって交換ECUに提供されるファームウェア更新は、プログラム・コードを完了して、ネットワーク接続が利用可能であり、さらなる情報が交換ECUに提供され得る施設に車両を持ち込むことができるまでの限られた時間の間だけ交換ECUが完全に機能できるようにする。したがって、ドングル312によって提供されるファームウェア更新は満了期間および/または満了日を含む場合がある。
【0038】
セキュアな通信を可能にすること
図4は、いくつかの実施形態による、車両(例えば、車両システム102)のECU間のセキュアな通信を可能にするための方法400を実施する際の、セキュリティ・システム(例えば、セキュリティ・システム100)のセキュリティ・サービスを提供するセキュリティ・サブシステム(例えば、セキュリティ・サブシステム104)と、プログラム・コード(例えば、プログラム・コード108)と、主ECU(例えば、主ECU116)との間の対話を図示する対話図である。方法400は、1つまたは複数のハードウェア・コンポーネント(例えば、プロセッサ)による実行のためのコンピュータ可読命令において具体化することができる。
【0039】
図4に示されるように、方法400はセキュリティ・サブシステムで始まり、既知のECU識別子の一覧をプログラム・コードに提供する(動作402)。それぞれのECU識別子は対応するECUに関連付けられた一意の数値である。これらの一意の識別子は、例えば、ECUに割り振られる公開鍵証明書に対応する場合がある。既知のECU識別子の一覧は、プログラム・コードによって受信される(動作404において)。既知のECU識別子の一覧に含まれるそれぞれのECU識別子は、設定中(例えば、組み立てプロセス)の特定の車両に含められることを意図されているECUに対応する。
【0040】
プログラム・コードは主ECUに、組み立てられた車両に含まれる組み立てられたECU識別子の一覧を問い合わせる(動作406)。次いで、主ECUは、車両内のそれぞれの組み立てられたECUからの識別子を編集する(動作408)。例えば、主ECUは識別子の要求を伴ってそれぞれのECUにpingを送信することができる。ECUのそれぞれに関連付けられた一意の識別子は、対応するECUの非修正可能な記憶メカニズムに記憶することができる。上述のように、ECUのそれぞれは、初めは主ECUへ一意の識別子を通信するための能力などの最低限の機能性を提供する部分的なプログラム・コードを含むだけであるが、部分的なプログラム・コードは車両を動作可能にさせることができない。
【0041】
完全な一覧が編集されると、主ECUは組み立てられたECUの一覧をプログラム・コードに送信する(動作410)。組み立てられたECU識別子の一覧を受信すると(動作412において)、プログラム・コードは、既知のECU識別子の一覧を組み立てられたECU識別子の一覧と比較することによって、組み立てられたECUの真正性を検証する(動作414)。
【0042】
いくつかの実施形態では、組み立てられたECUの真正性が検証されると、セキュリティ・サブシステムは、認証データとともに組み立てられたECUのそれぞれについてセキュリティ鍵を生成し(動作416)、セキュリティ・サブシステムはセキュアになされた(例えば、暗号化された)チャネル上でセキュリティ鍵を認証データとともにプログラム・コードに提供する(動作418)。次に、プログラム・コードは、組み立てられたECU用のセキュリティ鍵および認証データをセキュアになされたチャネル上で主ECUに提供し(動作420)、主ECUはプログラム・コードからセキュリティ鍵および認証データを受信する(動作422)。
【0043】
他の実施形態では、セキュリティ・サブシステムではなく、主ECUがセキュリティ鍵を生成する。これらの実施形態では、方法400から、動作416、418、420、および422を省略してもよい。さらには、これらの実施形態では、主ECUはプログラム・コードを通じて、ECUのそれぞれに対応するセキュリティ鍵のそれぞれをセキュリティ・サブシステムに通知し、それに応じてセキュリティ・サブシステムはその記録を更新することができる。
【0044】
戻って
図4を参照すると、プログラム・コードは主ECUへリンク・コマンドを発行し(動作424)、次に主ECUは組み立てられたECUを通信可能にリンクする(動作426)。主ECUは、それぞれのECUに、対応するセキュリティ鍵および認証データをプロビジョンすることにより、組み立てられたECUをリンクすることができる。セキュリティ鍵をプロビジョンされると、セキュリティ鍵がどのようにプロビジョンされているかに応じて、ECUは主ECU、他のECU、またはその両方の組み合わせとセキュアに情報を交換することができる。例えば、実施形態に応じて、すべてのECUを互いにリンクすることができ、それぞれのECUは個々に主ECUにリンクすることができるか、または一部のECUが互いにリンクされながら他のECUは主ECUだけにリンクされる場合もある。そのような通信スキームを可能にするために、ECUのうちのいずれか1つまたは複数に、複数のセキュリティ鍵を与えることができる。最終的に、それぞれのECUにプロビジョンされるセキュリティ鍵は他のECUとの通信を可能にし、ひいては、セキュリティ鍵はあらゆる所与のECUが通信を許可されるのが、他のどのECUかを定めている。メッセージを別のECUと交換する際、ECUを送信することは、他のECUとの通信に関連付けられたセキュリティ鍵でメッセージに署名する。このようにして、2つのECU間のそれぞれのチャネルを一意の鍵でセキュアにすることができる。さらには、それぞれのECUは認証データを使用して他のECUから受信したメッセージを認証する。認証データは、例えば、特定のセキュリティ鍵についての時間ウインドウまたは満了期間を定義する時間的な属性、メッセージに署名するために特定のセキュリティ鍵を使用できる最大メッセージ・カウントを定義するメッセージ・カウント属性、ECUが実施することができる特定の動作を定義する動作属性、または特定のECUが通信することができる車両システム内の特定のコンポーネントを定義するコンポーネント属性などの、他のECUとの通信に関連する1つまたは複数の属性を含む。
【0045】
ECUファームウェアをセキュアに設定する
図5は、いくつかの実施形態による、車両(例えば、車両システム102)の複数のECU上でファームウェアをセキュアに設定するための方法500を実施する際の、セキュリティ・システム(例えば、セキュリティ・システム100)のセキュリティ・サブシステム(例えば、セキュリティ・サブシステム104)と、プログラム・コード(例えば、プログラム・コード108)と、主ECU(例えば、主ECU116)との間の対話を図示する対話図である。方法500は、1つまたは複数のハードウェア・コンポーネント(例えば、プロセッサ)による実行のためのコンピュータ可読命令において具体化することができる。方法500の動作は、例えば、上述の方法400の動作に続いて実施される場合がある。
【0046】
示されるように、方法500は、主ECUで始まり、プログラム・コードに車両システムのECUにセキュリティ鍵がプロビジョンされているという指標を提供する(動作502)。この指標を受信することに応じて、プログラム・コードは主ECUをセキュリティ・サブシステムに接続する(動作504)。セキュリティ・サブシステムは、ECUのそれぞれについてのデジタル証明書(例えば、公開鍵証明書)を生成し、デジタル証明書を主ECUに提供する(動作506)。デジタル証明書を受信すると、主ECUは、ECUのそれぞれでファームウェアを設定するために、それぞれのECUのデジタル証明書を使用してFOTAサービスにファームウェア・データを要求することができる(動作508)。主ECUはFOTAサービスからファームウェア・データを受信し(動作510)、ファームウェア・データを使用してそれぞれのECU上で対応するファームウェアを設定する(動作512)。設定されると、ファームウェアは以前ECUに埋め込まれた部分的なプログラム・コードを完了させ、それにより車両を完全に機能させる。
【0047】
交換ECU上でファームウェアをセキュアに設定する
図6は、いくつかの実施形態による、交換ECU上でファームウェアをセキュアに設定するための方法600を実施する際の、セキュリティ・システム(例えば、セキュリティ・システム100)のセキュリティ・サブシステム(例えば、セキュリティ・サブシステム104)と、プログラム・コード(例えば、プログラム・コード108)と、主ECU(例えば、主ECU116)との間の対話を図示する対話図である。方法600は、1つまたは複数のハードウェア・コンポーネント(例えば、プロセッサ)による実行のためのコンピュータ可読命令において具体化することができる。
【0048】
示されるように、方法600は主ECUで始まり、ECUが交換されたという指標をプログラム・コードに提供する(動作602)。指標は、交換ECUに関連付けられた一意の識別子(例えば、公開鍵)を含む場合がある。初めに、交換ECUは、それだけでは車両を動作できるようにしない部分的なプログラム・コードだけを含む。
【0049】
主ECUから指標を受信することに応じて、プログラム・コードはセキュリティ・サブシステムとのセキュアな接続を確立する(動作604)。セキュアな接続を確立すると、セキュリティ・サブシステムは、プログラム・コードを実行しているデバイスまたはシステムの真正性を検証する(動作606)。プログラム・コードは指標の一部として受信された識別子に基づいて交換ECUを検証する(動作608)。
【0050】
交換ECUが検証されると、セキュリティ・サブシステムは、交換ECU用の1つまたは複数のセキュリティ鍵を生成してプログラム・コードを通じて主ECUに提供する(動作610)。プログラム・コードはリンク・コマンドを主ECUに発行し(動作612)、次いで主ECUは、交換ECUに1つまたは複数のセキュリティ鍵をプロビジョンすることによって、交換ECUを1つまたは複数の他のECUとリンクする(動作614)。1つまたは複数のセキュリティ鍵がプロビジョンされると、交換ECUは車両システムの1つまたは複数の他のECUとセキュアに通信することができる。例えば、交換ECUは1つまたは複数のセキュリティ鍵を使用して、別のECUと交換された暗号化されたメッセージに署名することができる。交換ECUには、交換ECUが通信するよう認可されるそれぞれ他のECUについて、セキュリティ鍵をプロビジョンすることができる。この方法で、ECUと交換ECUと間のそれぞれのチャネルを一意の鍵でセキュアにすることができる。
【0051】
交換ECUが車両システムの他のECUとリンクされると、セキュリティ・サブシステムは交換ECU用のデジタル証明書(例えば、公開鍵証明書)を生成してプログラム・コードを通じて主ECUに提供する(動作616)。主ECU116は、交換ECUにデジタル証明書をプロビジョンし(動作618)、デジタル証明書は交換ECUの非修正可能な記憶メカニズムに記憶することができる。次に主ECUは交換ECU用のファームウェアを設定するためのファームウェア・データを、デジタル証明書を使用してFOTAプラットフォームまたはサービスに要求することができる(動作620)。FOTAプラットフォームまたはサービスからファームウェア・データを受信すると、主ECUは交換ECU上でファームウェアを設定する(動作622)。設定されると、ファームウェアは以前交換ECUに埋め込まれた部分的なプログラム・コードを完了させ、それにより車両を完全に機能させる。
【0052】
ドングルを使用して交換ECU上でファームウェアをセキュアに設定する
図7は、いくつかの実施形態による、交換ECU上でファームウェアをセキュアに設定するための方法700を実施する際の、セキュリティ・システム(例えば、セキュリティ・システム300)のドングル(例えば、ドングル312)と、主ECU(例えば、主ECU316)との間の対話を図示する対話図である。方法700は、1つまたは複数のハードウェア・コンポーネント(例えば、プロセッサ)による実行のためのコンピュータ可読命令において具体化することができる。
【0053】
示されるように、方法700はドングルで始まり、デジタル証明書および交換ECU用のファームウェアを取得する(動作702)。ドングルは、サーバベースのセキュリティ・サービス(例えば、セキュリティ・サブシステム104)からデジタル証明書およびファームウェアを取得することができ、その間ドングルはセキュリティ・サービスと通信できるようにするネットワーク接続を有する。ドングルは交換ECUに関連付けられた一意の識別子(例えば、公開鍵)に基づいて交換ECUを検証する(動作704)。一意の識別子は交換ECUの非修正可能な記憶メカニズムに記憶することができ、主ECUによってドングルに提供することができる。交換ECUを検証すると、ドングルは主ECUに交換ECU用のデジタル証明書およびファームウェアを提供する(動作706)。動作706において、ドングルは主ECUへのリンク・コマンドをさらに発行することができる。リンク動作は、一時的な鍵(例えば、交換ECUにセキュアに記憶された)を使用して実施することができる。これにより、ネットワーク接続へのアクセスが利用可能になった時に、限られた時間でワークショップに到着して交換手順を終了させることができる。
【0054】
リンク・コマンドを受信することに応じて、主ECUは交換ECUにデジタル証明書をプロビジョンし(動作708)、交換ECU上でファームウェアを設定する(動作710)。設定されると、ファームウェアは以前交換ECUに埋め込まれた部分的なプログラム・コードを完了させ、それにより車両を完全に機能させる。
【0055】
ECUの機能的なコンポーネント
図8は、いくつかの実施形態による、ECU800の機能的なコンポーネントを図示するシステム図である。ECU800は、
図1~
図3に図示し、上の
図4~
図7について議論したECUの例である。ECU800は、受信機804、送信機806、認証コンポーネント808、およびメモリ810を備えるセキュアな通信システム802を含むものとして示されている。受信機804は復号化コンポーネント812を備える場合があり、送信機806は暗号化コンポーネント814を備える場合がある。
【0056】
セキュアな通信システム802の機能的なコンポーネントは、ECU800が車両内の他のECUとセキュアにメッセージを交換できるようにする。例えば、メモリ810は、ECU800がセキュアな(例えば、暗号化された、または暗号法的に署名された)メッセージを1つまたは複数の他のECUに送信し、他のECUから受信した暗号化されたメッセージを復号できるようにするセキュリティ鍵816を記憶する。さらには、メモリ810は、他のECUから受信したメッセージを認証するための認証データ818をさらに記憶する。認証データ818は、1つまたは複数の他のECUとの通信に関連する1つまたは複数の属性を含む。1つまたは複数の属性は、例えば、セキュリティ鍵についての満了期間または時間ウインドウを指定する時間的な属性、セキュリティ鍵についての最大メッセージ・カウントを指定するメッセージ・カウント属性、ECUが実施することができる1つまたは複数の動作を指定する動作属性、またはECUが通信することができる車両のコンポーネントを指定するコンポーネント属性のうちの1つまたは複数を含む場合がある。上で言及したように、車両システムの主ECU(例えば、主ECU116)は、ECU800にセキュリティ鍵816および認証データ818をプロビジョンすることができる。
【0057】
受信機804は、他のECUからセキュアな(例えば、暗号化された、または暗号法的に署名された)メッセージを受信する役割を担い、受信機804の復号化コンポーネント812はメモリ810に記憶されたセキュリティ鍵816のうちの1つを使用して暗号化されたメッセージを復号する。送信機806は、暗号化コンポーネント814によってメモリ810に記憶されたセキュリティ鍵816のうちの1つを使用して暗号化されたおよび/または暗号法的に署名されたメッセージを他のECUへ送信する役割を担う。認証コンポーネント808は、他のECUから受信されたメッセージを認証する。認証コンポーネント808は、別のECUから受信したメッセージを、そのECUについての認証データ818をECU800に維持される認証信号と比較することによって、認証することができる。以下に、メッセージの認証に関するさらなる詳細を議論する。
【0058】
セキュアな通信システム802の様々なコンポーネントは、(例えば、バス、共有メモリ、またはスイッチを介して)互いに通信するように構成することができる。説明されるコンポーネントのうちのいずれか1つまたは複数は、ハードウェアだけ(例えば、機械の1つまたは複数のプロセッサ)を使用して、またはハードウェアとソフトウェアとを組み合わせて実装することができる。例えば、セキュアな通信システム802のあらゆるコンポーネントは、そのコンポーネント用に、本明細書において説明される動作を実施するように構成されるプロセッサ820(例えば、機械の1つまたは複数のプロセッサのサブセット)の1つまたは複数の配置構成を物理的に含むことができる。別の例として、セキュアな通信システム802のあらゆるコンポーネントは、そのコンポーネント用に、本明細書において説明される動作を実施するための(例えば、機械の1つまたは複数のプロセッサの)1つまたは複数のプロセッサ820の配置構成を設定する、ソフトウェア、ハードウェア、またはその両方を含むことができる。したがって、セキュアな通信システム802の様々なコンポーネントは、様々な時点で、そのようなプロセッサ820の様々な配置構成、またはそのようなプロセッサ820の単一の配置構成を含んで設定することができる。さらには、セキュアな通信システム802のあらゆる2つ以上のコンポーネントは、単一のコンポーネントに結合することができ、単一のコンポーネントについて本明細書において説明される機能は複数のコンポーネントに分割することができる。さらには、様々な例示の実施形態によると、本明細書において単一の機械、データベース、またはデバイス内に実装されるものとして説明されるコンポーネントは、複数の機械、データベース、またはデバイスに分散することができる。
【0059】
ECU間のセキュアな通信
図9は、いくつかの実施形態による、車両システムのECU間でメッセージをセキュアに交換するための方法900を実施する際の、セキュリティ・システムのコンポーネント間の対話を図示する概念図である。特に、
図9はセキュリティ・サブシステム(例えば、セキュリティ・サブシステム104)と、4つのECUすなわちECU1、ECU2、ECU3、およびECU4との間の対話を図示している。ECU1、ECU2、ECU3、およびECU4のそれぞれは、ECU800の例である。さらには、ECU1は主ECU(例えば、主ECU116、216、または316)に相当する場合がある。
【0060】
示されるように、動作902において、セキュリティ・サブシステムはECU1(例えば、主ECU116)に、セキュリティ鍵の複数のセットおよびECU間で交換されるメッセージを認証するための関連付けられた認証データをプロビジョンする。セキュリティ鍵の複数のセットは、ECU2に対応するセキュリティ鍵の第1のセット、ECU3に対応するセキュリティ鍵の第2のセット、およびECU4に対応するセキュリティ鍵の第3のセットを含む。
【0061】
動作904Aにおいて、ECU1はECU2にセキュリティ鍵の第1のセットおよび関連付けられた認証データをプロビジョンする。動作904Bにおいて、ECU1はECU3にセキュリティ鍵の第2のセットおよび関連付けられた認証データをプロビジョンする。動作904Cにおいて、ECU1はECU4にセキュリティ鍵の第3のセットおよび関連付けられた認証データをプロビジョンする。ECU2、ECU3、およびECU4のそれぞれは、セキュアな記憶デバイス(例えば、メモリ810)内に、そのそれぞれのセキュリティ鍵のセットを記憶することができる。
【0062】
この例では、ECU2はECU3とメッセージを交換することができるが、ECU2はECU4とはメッセージを交換することができない。したがって、セキュリティ鍵の第1のセットは、ECU2がECU3とセキュアに通信することができるように1つまたは複数のセキュリティ鍵を含み、セキュリティ鍵の第2のセットは、ECU3がECU2とセキュアに通信することができるように1つまたは複数のセキュリティ鍵を含む。例えば、セキュリティ鍵の第1のセットは、メッセージを暗号化するおよび/または暗号法的に署名するためにECU2用のプライベート鍵と、ECU3によって署名されたメッセージをECU2が復号できるようにするための公開鍵(例えば、ECU3にプロビジョンされたプライベート鍵を使用して)とを含む場合がある。同様に、セキュリティ鍵の第2のセットはメッセージを暗号化するためにECU3用のプライベート鍵と、ECU2よって暗号法的に署名されたメッセージをECU3が復号できるようにするための公開鍵とを含む場合がある。
【0063】
さらには、ECU2にプロビジョンされた認証データにより、ECU2はECU3からのメッセージを認証できるようになるが、ECU4からのメッセージは認証できない。認証データは、例えば、公開鍵についての満了期間または時間ウインドウを指定する時間的な属性、公開鍵についての最大メッセージ・カウントを指定するメッセージ・カウント属性、ECU3が実施することができる1つまたは複数の動作を指定する動作属性、およびECU3が通信することができる車両のコンポーネントを指定するコンポーネント属性のうちの1つまたは複数を含む場合がある、1つまたは複数の属性を含む。
【0064】
動作906において、ECU3は、セキュリティ鍵の第2のセットからのセキュリティ鍵を使用して暗号法的に署名されたセキュアなメッセージをECU2に送信する。セキュアなメッセージを受信すると、ECU2はECU2にプロビジョンされた認証データを使用してセキュアなメッセージを正常に認証し、メッセージをセキュアな記憶エリアに記憶する(動作908)。以下でさらに議論するように、セキュアなメッセージを認証することは、認証データを認証信号と比較することを含む場合がある。
【0065】
動作910において、ECU4は、セキュリティ鍵の第3のセットからのセキュリティ鍵を使用して暗号法的に署名されたセキュアなメッセージをECU2に送信する。しかしながら、上述のように、この例ではECU2とECU4とは互いにメッセージを交換することを許可されていない。したがって、動作912で示されるように、ECU4から受信されたメッセージの認証は失敗する。ECU4から受信したメッセージの認証ができないことに応じて、ECU2はメッセージを破棄することができ、さらにはECU1に信号を送信して失敗したセキュリティ鍵認証をECU1に通知する。
【0066】
図10および
図11は、いくつかの実施形態による、メッセージをセキュアに交換するための方法1000を実施する際の、車両の複数のECU間の対話を図示する対話図である。より具体的には、
図10および
図11は、方法1000を実施することにおいて、ECU1、ECU2、およびECU3の間の対話を図示している。方法1000は、方法1000の動作がECU1、ECU2、およびECU3によって実施することができるように、1つまたは複数のハードウェア・コンポーネント(例えば、プロセッサ)による実行のためのコンピュータ可読命令において具体化することができる。上述のように、ECU1、ECU2、およびECU3は、ECU800の例である。さらには、ECU1は主ECU(例えば、主ECU116、216、または316)に相当する場合がある。
【0067】
示されるように、方法1000はECU1(例えば、主ECU116)で始まり、ECU3が少なくともECU2を含む1つまたは複数のECUとメッセージを交換することができるように、ECU3にセキュリティ鍵のセットをプロビジョンする(動作1002)。ECU3は、動作1004において鍵のセットを受信する。
【0068】
ECU1は、ECU2にECU3と交換されるメッセージを認証するための認証データをプロビジョンする(動作1006)。認証データは、動作1008においてECU2によって受信される。認証データは、セキュリティ鍵のセットに基づくECU3との通信に関連する1つまたは複数の属性を含む。1つまたは複数の属性は、例えば次のうちの1つまたは複数を含む場合がある:セキュリティ鍵についての満了期間を定義する時間的な属性、セキュリティ鍵で暗号法的に署名されたメッセージを送信するための時間ウインドウを定義する時間的な属性、セキュリティ鍵についての最大メッセージ・カウントを定義するメッセージ・カウント属性、ECU3が通信することができる車両のコンポーネントの識別子を指定するコンポーネント属性、およびECU3が実施することができる動作を指定する動作属性。いくつかの実施形態において、1つまたは複数の属性は、認証されたメッセージに対応する第1のメッセージ・カウント属性、および認証に失敗したメッセージに対応する第2のメッセージ・カウント属性を含む場合がある。
【0069】
ECU3は、セキュリティ鍵のセットからのセキュリティ鍵を使用して暗号法的に署名されたセキュアなメッセージを生成し(動作1010)、ECU3はセキュアなメッセージをECU2に送信する(動作1012)。ECU2はECU3から、ECU3にプロビジョンされたセキュリティ鍵のセットからのセキュリティ鍵を使用して暗号法的に署名されたセキュアなメッセージを受信する(動作1014)。
【0070】
ECU2は、認証データを使用して、ECU3から受信したセキュアなメッセージを認証する(動作1016)。特に、ECU2は、認証データを認証信号と比較することによってセキュアなメッセージを認証する。認証信号は、ECU2によって維持することができる。いくつかの実施形態において、認証信号はECU2およびECU3の両方によって維持される場合がある。これらの実施形態に一貫して、ECU3はセキュリティ鍵と認証信号の組み合わせを使用してセキュアなメッセージを暗号法的に署名することができる。いくつかの実施形態に一貫して、セキュアなメッセージの認証に先立って、またはその一部として、ECU2はECU2にプロビジョンされた1つまたは複数のセキュリティ鍵を使用してセキュアなメッセージを復号することができる。
【0071】
第1の例として、1つまたは複数の属性は、セキュリティ鍵についての満了期間を定義する時間的な属性を含み、認証信号はクロック信号を含む。第1の例では、ECU2はECU3からのセキュアなメッセージを、満了期間をクロック信号と比較することによって認証し、満了期間が経過していなければ、ECU2はセキュアなメッセージを正常に認証する。他方で、満了期間が経過している場合、認証は失敗し、ECU2はECU3に関してセキュリティ鍵認証失敗を示すメッセージをECU1に送信することができる。
【0072】
第2の例では、1つまたは複数の属性は、セキュリティ鍵を使用して署名されたメッセージを送信することができる時間ウインドウを定義する時間的な属性を含み、認証信号はクロック信号を含む。第2の例では、ECU2はECU3からのセキュアなメッセージを、時間ウインドウをクロック信号と比較することによって認証し、メッセージが時間ウインドウ内で送信される場合、ECU2はセキュアなメッセージを正常に認証する。他方で、メッセージが時間ウインドウ外で送信される場合、認証は失敗し、ECU2はECU3に関してセキュリティ鍵認証失敗を示す信号をECU1に送信することができる。さらには、第1および第2の例のコンテキストでは、ECU2は、ECU1と通信しているコンピュータ・システム(例えば、バックエンド・サーバ112)によって提供される1つまたは複数のクロック信号の更新に基づいてクロック信号を維持することができる。
【0073】
第3の例では、1つまたは複数の属性は、セキュリティ鍵を使用して署名できるメッセージの数を限定する最大メッセージ・カウントを定義するメッセージ・カウント属性を含み、認証信号はセキュリティ鍵を使用して署名されるメッセージ数に対応するメッセージ・カウンタを含む。第3の例では、ECU2は、ECU3からセキュアなメッセージを受信するとメッセージ・カウンタをインクリメントし、メッセージ・カウンタを最大メッセージ・カウントと比較することによってセキュアなメッセージを認証する。メッセージ・カウンタが最大メッセージ・カウントを超えない場合、ECU2はセキュアなメッセージを正常に認証する。メッセージ・カウンタが最大メッセージ・カウントを超える場合、認証は失敗し、ECU2はECU3に関してセキュリティ鍵認証失敗を示す信号をECU1に送信することができる。ECU2によって維持されるメッセージ・カウンタは、ECU3にプロビジョンされたセキュリティ鍵のセット内のセキュリティ鍵を使用して暗号法的に署名されたメッセージに対応する。最大メッセージ・カウントは正常に認証されたメッセージ、または正常に認証されなかったメッセージに対応する場合があるため、正常に認証されたメッセージ、および正常に認証されなかったメッセージについて別個のメッセージ・カウンタを維持してもよい。
【0074】
第4の例では、1つまたは複数の属性は、ECU3が通信することができる車両のコンポーネントを指定するコンポーネント属性を含み、ECU2は、セキュアなメッセージがECU3が通信することができる車両のコンポーネントの動作に関連することを検証することによって、ECU3からのセキュアなメッセージを認証する。
【0075】
第5の例では、1つまたは複数の属性は、ECU3が実施することができる動作を指定する動作属性を含み、ECU2は、セキュアなメッセージがECU3が実施することができる動作に対応することを検証することによって、セキュアなメッセージを認証する。
【0076】
図11に示されるように、方法1000は、いくつかの実施形態において、動作1016、1018、1020、1022、1024、1026、1028、1030、および1032を含む。いくつかの実施形態に一貫して、動作1016、1018、1020、1022、1024、1026、1028、1030、および1032は、ECU2がECU3から受信したセキュアなメッセージを認証する動作1014の後に、実施することができる。上述のように、いくつかの事例では、ECU2は動作1014においてセキュアなメッセージを正常に認証することができない。ECU2がセキュアなメッセージを正常に認証することができないことに応じて、ECU2はECU3に関してセキュリティ鍵認証失敗を示す信号をECU1に送信する(動作1016)。
【0077】
ECU2からの信号を受信すると、ECU1は車両の動作を限定する(動作1018)。ECU1は車両内の1つまたは複数のECUを、1つまたは複数のECUが1つまたは複数の動作(例えば、メッセージを送信すること)を実施することを制限する制限動作モードに置くことによって車両の動作を限定することができる。例えば、ECU2がECU3から受信したセキュアなメッセージを正常に認証することができなかったことに応じて、ECU1はECU3を制限動作モードに置くことができる。
【0078】
さらには、ECU1は表示デバイス上にECU3に関して認証失敗の通知を表示させる(動作1020)。表示デバイスは、車両の表示デバイス(例えば、ダッシュボードの表示デバイス)、またはECU1と通信している外部コンピュータ・システム(例えば、診断的ツール)の表示デバイスであり得る。通知は、車両のそれぞれのECUの認証と動作の状態を与えるグラフィカル・インターフェース上に提示することができる。そのようなグラフィカル・インターフェースの例を
図12に図示し、以下で議論する。
【0079】
ECU2からの信号を受信することに応じて、ECU1はセキュリティ・サブシステムに更新された認証データをさらに要求することができる(動作1022)。更新された認証データは、例えば、セキュリティ鍵についての更新された満了期間を含む。ECU1は、ECU2に更新された認証データをプロビジョンし(動作1024)、これは動作1026でECU2によって受信される。
【0080】
いくつかの実施形態において、認証に失敗する結果となったセキュリティ鍵を交換するために、ECU1は動作1028において追加的にECU3用の新しいセキュリティ鍵を要求することができる。動作1030において、ECU1はECU3に新しいセキュリティ鍵をプロビジョンし、動作1032においてECU3はその新しいセキュリティ鍵を受信する。
【0081】
グラフィカル・インターフェース
図12は、いくつかの実施形態による、セキュリティ・システム(例えば、セキュリティ・システム100、200、または300)によって提供されるグラフィカル・インターフェース1200の態様を図示するインターフェース図である。示されるように、グラフィカル・インターフェース1200は、車両内のECUの一覧、ならびにそれぞれのECUについての認証と動作の状態を含む。グラフィカル・インターフェース1200は、認証に失敗した通知を表示することができる。例えば、
図12では、認証失敗の通知は「ECU4」について、その「ECU4」が制限動作モードにあるという通知とともに、提示されている。
【0082】
コンピュータ・システム
図13は、例示の実施形態により、本明細書において議論される方法のいずれか1つまたは複数を機械1300に実施させるための命令のセットが実行され得るコンピュータ・システムの形態における、機械1300の図的な表現を示している。具体的には、
図13は本明細書において議論される方法のいずれか1つまたは複数を機械1300に実施させる命令1316(例えば、ソフトウェア、プログラム、アプリケーション、アプレット、アプリ、または他の実行可能なコード)が実行され得るコンピュータ・システムの例示の形態における、機械1300の図的な表現を示している。例えば、機械1300は、フロントエンド・サーバ110および210、バックエンド・サーバ112および212、OBDシステム120、220、320、IVIシステム122、222、および322、ドングル312、ECU800、ならびにそのあらゆる例の、いずれか1つに対応することができる。さらには、命令1316は、機械1300に方法400、500、600、700、900、または1000のうちのいずれか1つを実行させることができる。命令1316は、汎用の、非プログラム機械1300を、本明細書で説明したやり方で、説明され図示された機能を遂行するようにプログラムされた特定の機械1300に変形する。代替的な実施形態では、機械1300はスタンドアロンのデバイスとして動作するか、または他の機械に連結(例えば、ネットワーク化)することができる。ネットワーク化されたデプロイメントでは、機械1300はサーバ-クライアントのネットワーク環境内でサーバ機械もしくはクライアント機械の能力の範囲で、またはピアツーピア(または分散)のネットワーク環境内のピア機械として動作することができる。機械1300は、サーバ・コンピュータ、クライアント・コンピュータ、パーソナル・コンピュータ(PC)、タブレット・コンピュータ、ラップトップ・コンピュータ、ネットブック、スマートフォン、モバイル・デバイス、ネットワーク・ルータ、ネットワーク・スイッチ、ネットワーク・ブリッジ、または命令1316を順次に実行することができるか、もしくは機械1300によって取られるアクションを指定するあらゆる機械を含むことができるが、それに限定されない。さらには、単一の機械1300のみが図示されているが、用語「機械」はやはり、本明細書において議論される方法のいずれか1つまたは複数を実施するために、命令1316を個々にまたは一緒に実行する機械1300の集合を含むものとして受け取られるものである。
【0083】
機械1300は、プロセッサ1310、メモリ1330、およびI/Oコンポーネント1350を含むことができ、バス1302を介するなどして互いに通信するように構成することができる。例示の実施形態では、プロセッサ1310(例えば、中央処理装置(CPU)、縮小命令セット・コンピューティング(RISC)プロセッサ、複雑命令セット・コンピューティング(CISC)プロセッサ、画像処理装置(GPU)、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、無線周波数集積回路(RFIC)、別のプロセッサ、またはそれらのあらゆる適切な組み合わせ)は、例えば、命令1316を実行することができるプロセッサ1312およびプロセッサ1314を含むことができる。用語「プロセッサ」は、命令を同時的に実行することができる2つ以上の独立したプロセッサ(時に「コア」と称される)を備えることができるマルチコア・プロセッサ1310を含むよう意図されている。
図13は複数のプロセッサを示しているが、機械1300は、シングル・コアを有する単一のプロセッサ、マルチ・コアの単一のプロセッサ(例えば、マルチコア・プロセッサ)、シングル・コアの複数のプロセッサ、複数のコアを有する複数のプロセッサ、またはそれらのあらゆる組み合わせを含むことができる。
【0084】
メモリ1330は、主メモリ1332、スタティック・メモリ1334、記憶装置1336を含むことができ、バス1302を介するなどしてそれぞれ1310へアクセス可能である。主メモリ1332、スタティック・メモリ1334、および記憶装置1336は、本明細書において説明される方法または機能のうち、いずれか1つまたは複数を具体化する命令1316を記憶する。命令1316は、主メモリ1332内に、スタティック・メモリ1334内に、記憶装置1336内に、プロセッサ1310うちの少なくとも1つの内部に(例えば、プロセッサのキャッシュ・メモリ内部に)、またはそれらのあらゆる適切な組み合わせで、機械1300によるその実行中、全体的にまたは部分的に存在することができる。
【0085】
I/Oコンポーネント1350は、入力を受信すること、出力を与えること、出力を生成すること、情報を送信すること、情報を交換すること、測定値を捉えることなどを行うために、多様なコンポーネントを含むことができる。特定の機械1300に含められる具体的なI/Oコンポーネント1350は、機械のタイプに依存する。例えば、携帯電話などのポータブルの機械はタッチ式の入力デバイスまたは他のそのような入力メカニズムを含む可能性が高いが、ヘッドレスのサーバ機械はそのようなタッチ式の入力デバイスを含む可能性は低い。I/Oコンポーネント1350は、
図13に示されない多くの他のコンポーネントを含む場合があることを了解されたい。I/Oコンポーネント1350は、以下の議論を単に単純化するために機能性にしたがってグループ化され、そのグループ化は決して限定的ではない。様々な例示の実施形態において、I/Oコンポーネント1350は出力コンポーネント1352、および入力コンポーネント1354を含む場合がある。出力コンポーネント1352は、視覚的コンポーネント(例えば、プラズマ・ディスプレイ・パネル(PDP)、発光ダイオード(LED)ディスプレイ、液晶ディスプレイ(LCD)、プロジェクタ、またはブラウン管(CRT)などのディスプレイ)、聴覚的コンポーネント(例えば、スピーカ)、他の信号生成器などを含む場合がある。入力コンポーネント1354は、英数字入力コンポーネント(例えば、キーボード、英数字入力を受信するよう構成されるタッチ・スクリーン、光学的キーボード(photo-optical keyboard)、または他の英数字入力コンポーネント)、ポインティング・ベースの入力コンポーネント(例えば、マウス、タッチパッド、トラックボール、ジョイスティック、動きセンサ、または別のポインティング機器)、触感入力コンポーネント(例えば、物理的ボタン、タッチもしくはタッチジェスチャの位置および/もしくは力を与えるタッチ・スクリーン、または他の触感入力コンポーネント)、音声入力コンポーネント(例えば、マイクロフォン)など、を含む場合がある。
【0086】
通信は、多様な技術を使用して実装することができる。I/Oコンポーネント1350は、機械1300を、それぞれ連結1382および連結1372を介して、ネットワーク1380またはデバイス1370に連結するように動作可能である通信コンポーネント1364を含む場合がある。例えば、通信コンポーネント1364は、ネットワーク・インターフェース・コンポーネント、またはネットワーク1380とインターフェースするための別の適切なデバイスを含む場合がある。さらなる例では、通信コンポーネント1364は、ワイヤード通信コンポーネント、ワイヤレス通信コンポーネント、セルラ通信コンポーネント、近接場通信コンポーネント、Bluetooth通信コンポーネント、およびWi-Fi通信コンポーネントを含む場合がある。デバイス1370は、別の機械、または多様な周辺デバイス(例えば、ユニバーサル・シリアル・バス(USB)を介して連結される周辺デバイス)のいずれかである可能性がある。
【0087】
実行可能な命令および機械記憶媒体
様々なメモリ(例えば、1330、1332、1334および/またはプロセッサ1310のメモリ)および/または記憶装置1336は、本明細書において説明される方法または機能のうち、いずれか1つもしくは複数を具体化するかまたはそれにより利用される、1つまたは複数の命令のセットおよびデータ構造(例えば、ソフトウェア)を記憶することができる。これらの命令は、プロセッサ1310に実行される際、様々な動作に開示される実施形態を実装させる。
【0088】
本明細書において使用する場合、用語「機械記憶媒体」、「デバイス記憶媒体」、および「コンピュータ記憶媒体」は、同一のものを意味し、互換的に使用され得る。それらの用語は、実行可能な命令1316および/またはデータを記憶する、単一または複数の記憶デバイスおよび/または媒体(例えば、集中化もしくは分散されたデータベース、ならびに/または関連付けられたキャッシュおよびサーバ)を指す。したがってそれらの用語は、プロセッサ1310の内部または外部のメモリを含む、ソリッドステート・メモリ、光学的および磁気的媒体を含むが、それに限定されないものとして受け取られるものである。機械記憶媒体、コンピュータ記憶媒体および/またはデバイス記憶媒体の具体的な例としては、半導体メモリ・デバイス、例えば、消去可能プログラム可能読み取り専用メモリ(EPROM)、電気的消去可能プログラム可能読み取り専用メモリ(EEPROM)、フィールド・プログラム可能ゲート・アレイ(FPGA)、およびフラッシュ・メモリ・デバイスを例として含む非揮発性メモリ、内部ハード・ディスクおよびリムーバブル・ディスクなどの磁気ディスク、磁気光学的ディスク、ならびにCD-ROMおよびDVD-ROMディスクが挙げられる。用語「機械記憶媒体」、「コンピュータ記憶媒体」、および「デバイス記憶媒体」は、具体的に搬送波、変調データ信号、および少なくともその一部が以下で議論される用語「送信媒体」によってカバーされる他のそのような媒体を含まない。
【0089】
送信媒体
様々な例示の実施形態において、ネットワーク1380の1つまたは複数の部分は、アドホック・ネットワーク、イントラネット、エクストラネット、仮想プライベート・ネットワーク(VPN)、ローカル・エリア・ネットワーク(LAN)、ワイヤレスLAN(WLAN)、ワイド・エリア・ネットワーク(WAN)、ワイヤレスWAN(WWAN)、メトロポリタン・エリア・ネットワーク(MAN)、インターネット、インターネットの一部、公衆交換電話網(PSTN)の一部、基本電話サービス(POTS)ネットワーク、セルラ電話ネットワーク、ワイヤレス・ネットワーク、Wi-Fi(R)ネットワーク、別のタイプのネットワーク、またはそのようなネットワークの2つ以上の組み合わせである可能性がある。例えば、ネットワーク1380またはネットワーク1380の一部には、ワイヤレスまたはセルラ・ネットワークが含まれる場合があり、連結1382は、符号分割多元接続(CDMA)接続、Global System for Mobile communications(GSM)接続、または別のタイプのセルラもしくはワイヤレス連結であり得る。この例では、連結1382は、シングル・キャリア無線伝送技術(1xRTT)、Evolution-Data Optimized(EVDO)技術、汎用パケット無線サービス(GPRS)技術、Enhanced Data rates for GSM Evolution(EDGE)技術、3Gを含む第3世代パートナーシップ・プロジェクト(3GPP)、第4世代ワイヤレス(4G)ネットワーク、ユニバーサル移動体通信システム(UMTS)、High-Speed Packet Access(HSPA)、Worldwide Interoperability for Microwave Access(WiMAX)、Long Term Evolution(LTE)標準、様々な標準設定機関による他の定義されたもの、他のlong-rangeプロトコル、または他のデータ伝送技術などの、様々なタイプのデータ転送技術のいずれかを実装することができる。
【0090】
命令1316は、ネットワーク・インターフェース・デバイス(例えば、通信コンポーネント1364に含まれるネットワーク・インターフェース・コンポーネント)を介して送信媒体を使用し、また複数の周知の転送プロトコル(例えば、hypertext transfer protocol(HTTP))のいずれか1つを利用して、ネットワーク1380上で送信または受信することができる。同様に、命令1316は、連結1372(例えば、ピアツーピア連結)を介して送信媒体を使用してデバイス1370と送信または受信することができる。用語「送信媒体」および「信号媒体」は、同一のものを意味し、本開示において互換的に使用され得る。用語「送信媒体」および「信号媒体」は、機械1300による実行のために命令1316を記憶、エンコード、または搬送することができるあらゆる非有形な媒体を含み、またデジタルもしくはアナログの通信信号またはそのようなソフトウェアの通信を容易にするための他の非有形な媒体を含むものとして受け取られるものである。したがって、用語「送信媒体」および「信号媒体」は、変調されたデータ信号、搬送波などあらゆる形態を含むものとして受け取られるものである。用語「変調されたデータ信号」は、信号内の情報をエンコードするようなやり方で設定または変更された、その特徴の1つまたは複数を有する信号を意味する。
【0091】
コンピュータ可読媒体
用語「機械可読媒体」、「コンピュータ可読媒体」、および「デバイス可読媒体」は、同一のものを意味し、本開示において互換的に使用され得る。それらの用語は、機械記憶媒体および送信媒体の両方を含むように定義される。したがって、それらの用語は記憶デバイス/媒体、および搬送波/変調されたデータ信号の両方を含む。
【0092】
本明細書において説明される例の方法の様々な動作は、関連動作を実施するように一時的に構成される(例えば、ソフトウェアによって)または恒久的に構成される1つまたは複数のプロセッサによって、少なくとも部分的に実施することができる。同様に、本明細書において説明される方法は、少なくとも部分的にプロセッサ実装であり得る。例えば、方法の動作の少なくとも一部は、1つまたは複数のプロセッサによって実施することができる。動作の一定部分の実施は、1つまたは複数のプロセッサ間で分散することができ、単一の機械内に存在するだけでなく、複数の機械にデプロイすることができる。いくつかの実施形態では、プロセッサは、単一の場所(例えば、家庭環境内、オフィス環境内、またはサーバ・ファーム内)に配置することができるが、他の実施形態ではプロセッサは複数の場所に分散していてもよい。
【0093】
本開示の実施形態を、具体的な例示の実施形態を参照して説明してきたが、主題の広範囲から逸脱することなく様々な修正および変更がこれらの実施形態に対してなされることは明白である。したがって、明細書および図面は、意味合いとして制限的ではなく例示的であると見なされる。本明細書の一部を成す添付の図面は、限定ではなく例示として、主題が実践され得る具体的な実施形態を示している。例示される実施形態は、当業者が本明細書において開示される教示を実践できるようにするために、十分に詳細に説明される。本開示の範囲から逸脱することなく構造的および論理的な置き換えおよび変更を行うことができるように、他の実施形態を使用することができ、またそれから導出することができる。したがって、この「発明を実施するための形態」は、限定的な意味合いと取られるべきではなく、様々な実施形態の範囲は、添付の特許請求の範囲ならびにそのような請求項の権利を受ける等価物の全範囲によってのみ定義される。
【0094】
具体的な実施形態が本明細書において図示され説明されるが、同一の目的を達成するために期待されるあらゆる配置構成が、示される具体的な実施形態の代わりとなり得ることを了解されたい。本開示は様々な実施形態のあらゆるすべての改変または変形をカバーするよう意図されている。上述の実施形態の組み合わせ、および本明細書において具体的に説明されない他の実施形態は、上の説明をレビューすれば当業者にとって明らかである。
【0095】
本文書において、用語「1つの(a)」または「1つの(an)」は、特許文書において一般的であるように用いられ、「少なくとも1つの」または「1つまたは複数の」のいかなる他の事例または使用例とは無関係に、1つまたは複数を含む。本文書において、そうではないと明示されない限り、用語「または(or)」は、「AまたはB(A or B)」が、「Aを含むがBは含まない」、「Bを含むがAを含まない」、および「AおよびBを含む」を含むように、非排他的な「または(or)」を指すために使用される。添付の特許請求の範囲では、用語「を含む(including)」、および「であって(in which)」は、それぞれの用語「を含む(comprising)」および「であって(wherein)」の平易な英語の等価語として使用される。また、以下の請求項では、用語「を含む(including)」および「を含む(comprising)」は、オープンエンドであり、つまり、請求項においてそのような用語の後に列挙されるものに加えて要素を含むシステム、デバイス、物品、またはプロセスは、やはりその請求項の範囲内に入るものと見なされる。