(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-05-10
(45)【発行日】2024-05-20
(54)【発明の名称】証明書管理システムのサービス品質の提供
(51)【国際特許分類】
G06Q 50/10 20120101AFI20240513BHJP
H04L 9/32 20060101ALI20240513BHJP
【FI】
G06Q50/10
H04L9/32 200D
【外国語出願】
(21)【出願番号】P 2019202958
(22)【出願日】2019-11-08
【審査請求日】2022-11-02
(32)【優先日】2018-11-13
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】519170209
【氏名又は名称】インテグリティ セキュリティ サービシーズ エルエルシー
(74)【代理人】
【識別番号】110000796
【氏名又は名称】弁理士法人三枝国際特許事務所
(72)【発明者】
【氏名】メイヤー アラン ティー.
(72)【発明者】
【氏名】フィナールト ダニエル アール.
【審査官】上田 威
(56)【参考文献】
【文献】特開2007-088580(JP,A)
【文献】特開2004-265090(JP,A)
【文献】特表2014-511169(JP,A)
【文献】特開2018-019415(JP,A)
【文献】特表2006-521724(JP,A)
【文献】米国特許出願公開第2017/0222990(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06Q 10/00 ー 99/00
H04L 9/32
(57)【特許請求の範囲】
【請求項1】
証明書管理サービスから証明書をリクエストするクライアントにサービスの品質(QoS)レベルを提供するシステムであって、前記システムは、
複数のクライアントから証明書リクエストを受信するように動作可能なパブリックアプリケーションプログラミングインターフェイス(API)であって、各々の証明書リクエストは、
証明書を必要とする多数のコンピュータ化された機器と、
前記証明書リクエストがいつ送信されたかを示すタイムスタンプと、
前記証明書をリクエストするクライアントとを示すパブリックアプリケーションプログラミングインターフェイス(API)と、
QoSマネージャであって、
前記複数のクライアントからの前記証明書リクエストを複数
のクライアントキューにわたって分散し、前記複数のクライアントキューの各々は、証明書をリクエストする特定のクライアントに対応するように、そして、
クライアントキュー内のクライアントの証明書リクエストを1つ以上のエントリのサブグループに分割し、前記1つ以上のエントリの各々は、証明書を必要とするコンピュータ化された機器の数のサブセットに対応するグループサイズを有するように動作可能なQoSマネージャと、
QoSキュー内のエントリの数、前記証明書管理サービスの待機時間レベル、および前記証明書リクエストがいつ送信されたかを示すそれぞれのタイムスタンプに少なくとも部分的に基づいて、前記QoSキューに配置される前記複数のクライアントキューからエントリの順序を選択するように動作可能なQoSアービターとを含み、
前記QoSマネージャは、前記QoSアービターによって選択された順序で前記QoSキューからエントリを取得し、前記証明書管理サービスの内部登録局APIを介して、前記取得されたエントリを前記証明書管理サービスに送信するように動作可能なシステム。
【請求項2】
前記グループサイズは、デフォルト値が1の調整可能な数値である、請求項1に記載のシステム。
【請求項3】
証明書を必要とする前記コンピュータ化された機器は、オンボードユニット(OBU)、電子制御ユニット(ECU)、およびロードサイドユニット(RSU)のうちの1つ以上に対応する、請求項1に記載のシステム。
【請求項4】
OBUは、車両、船舶、航空機、宇宙船、医療機器、ロボット、ドローン、無線通信モジュール、有線通信モジュール、およびモノのインターネット(IoT)機器のうちの1つ以上に設置されるように動作可能であり、
ECUは、車両、ボート、航空機、宇宙船、医療機器、ロボット、ドローン、無線通信モジュール、有線通信モジュール、およびIoT機器のうちの1つ以上に設置されるように動作可能であり、
RSUは、交通制御機器、無線通信モジュール、デジタル広告板、および電子看板のうちの1つ以上に設置されるように動作可能である、請求項3に記載のシステム。
【請求項5】
前記複数のクライアントは、前記証明書管理サービスと証明書を必要とする少なくとも1つのコンピュータ化された機器との間のプロキシとして機能するように動作可能な少なくとも1つの配信機器またはサーバを含む、請求項1に記載のシステム。
【請求項6】
各々の証明書リクエストは、前記リクエストを送信するクライアントのクライアント優先度レベルをさらに示し、前記QoSアービターは、証明書リクエストに示されたそれぞれのクライアント優先度レベルに少なくとも部分的に基づいて前記QoSキューに配置された前記複数のクライアントキューからエントリの順序を選択するようにさらに動作可能である、請求項1に記載のシステム。
【請求項7】
クライアントのクライアント優先度レベルは、前記クライアントに関連付けられたサービス層に基づいており、サービス層は、最低のサービスレベルから最高のサービスレベルまでの範囲の複数の層のうちの1つに対応する、請求項6に記載のシステム。
【請求項8】
前記QoSアービターは、追加のクライアントから受信した追加の証明書リクエスト内で示されるそれぞれのクライアント優先度レベルに少なくとも部分的に基づいて、前記QoSキューに配置された前記エントリの順序を動的に並べ替えるようにさらに動作可能である、請求項6に記載のシステム。
【請求項9】
各々の証明書リクエストは、前記リクエストに関連するリクエスト緊急度レベルをさらに示し、前記QoSアービターは、証明書リクエスト内で示されるそれぞれのリクエスト緊急度レベルに少なくとも部分的に基づいて、前記QoSキューに配置された前記複数のクライアントキューから前記エントリの順序を選択するように動作可能である、請求項1に記載のシステム。
【請求項10】
証明書リクエストのリクエスト緊急度レベルは、前記証明書リクエストを提出するクライアントによって指定され、リクエスト緊急度レベルは、最低緊急度オプションから最高緊急度オプションまでの範囲の複数のレベルのうちの1つに対応する、請求項9に記載のシステム。
【請求項11】
前記QoSアービターは、ラウンドロビン技術を使用して、前記QoSキューに配置される前記複数のクライアントキューからの前記エントリの順序を選択するように動作可能である、請求項1に記載のシステム。
【請求項12】
前記QoSアービターは、前記クライアントキューの各々に割り当てられた動的優先度に基づいて、前記QoSキューに配置される前記複数のクライアントキューから前記エントリの順序を選択するように動作可能であり、前記クライアントキューに割り当てられたそれぞれの前記動的優先度は、前記クライアントキューの各々のエントリ数に少なくとも部分的に基づいて前記QoSアービターによって割り当てられる、請求項1に記載のシステム。
【請求項13】
前記複数のクライアントからの前記証明書リクエストは、登録証明書のリクエストを含み、前記パブリックAPIは、前記証明書管理サービスに代わって、通信ネットワークを介して、前記複数のクライアントに、前記証明書管理サービスの登録認証局によって生成された登録証明書を送信するようにさらに動作可能である、請求項1に記載のシステム。
【請求項14】
前記証明書リクエストには、偽名証明書のリクエストがさらに含まれ、
前記パブリックAPIは、前記証明書管理サービスに代わって、通信ネットワークを介して、前記証明書管理サービスの偽名認証局によって生成された偽名証明書を前記複数のクライアントに送信するようにさらに動作可能であり、
前記複数のクライアントは、前記証明書管理サービスと証明書を必要とする少なくとも1つのコンピュータ化された機器との間のプロキシとして機能するように動作可能な少なくとも1つの配信機器を含み、
前記少なくとも1つのコンピュータ化された機器は、前記配信機器から証明書を取得するように動作可能である、請求項13に記載のシステム。
【請求項15】
登録証明書は、複数のコンピュータ化された機器を含むエコシステムの認可された参加者として公開鍵証明書の所有者を識別する公開鍵証明書であり、前記エコシステムの各々の認可された参加者は前記複数のコンピュータ化された機器との通信を可能にする1つ以上の偽名証明書を受け取ることができる、請求項14に記載のシステム。
【請求項16】
前記QoSアービターは、追加のクライアントから受信した追加の証明書リクエストに少なくとも部分的に基づいて、前記QoSキューに配置される前記エントリの順序を動的に再配列するようにさらに動作可能である、請求項1に記載のシステム。
【請求項17】
証明書管理サービスから証明書をリクエストするクライアントにサービス品質(QoS)レベルを提供するためのコンピュータ実装方法であって、前記コンピュータ実装方法は、
パブリックアプリケーションプログラミングインターフェイス(API)を介して、複数のクライアントから証明書リクエストを受信することであって、各々の証明書リクエストは、
証明書を必要とする多数のコンピュータ化された機器と、
前記証明書リクエストがいつ送信されたかを示すタイムスタンプと、
前記証明書をリクエストするクライアントとを示す、受信することと、
QoSマネージャによって、前記複数のクライアントからの前記証明書リクエストを複数
のクライアントキューに分配することであって、前記複数のクライアントキューの各々は、証明書をリクエストする特定のクライアントに対応する分配することと、
前記QoSマネージャによって、クライアントのリクエストを1つ以上のエントリのサブグループに分割することであって、前記1つ以上のエントリの各々は、証明書を必要とするコンピュータ化された機器の数のサブセットに対応する分割することと、
QoSキュー内のエントリの数、前記証明書管理サービスの待機時間レベル、および前記証明書リクエストがいつ送信されたかを示すそれぞれのタイムスタンプに少なくとも部分的に基づいて、前記QoSキューに配置される前記複数のクライアントキューからエントリの順序をQoSアービターによって選択することと、
前記QoSアービターによって選択された前記順序で前記QoSキューからエントリを前記QoSマネージャによって取得し、前記証明書管理サービスの内部登録局APIを介して、前記取得されたエントリを前記証明書管理サービスに送信することとを含むコンピュータ実装方法。
【請求項18】
前記QoSキューに配置される前記複数のクライアントキューからの前記エントリの順序を選択することは、ラウンドロビン技術を使用することを含む、請求項17に記載のコンピュータ実装方法。
【請求項19】
前記QoSキューに配置される前記複数のクライアントキューからの前記エントリの順序を選択することは、前記クライアントキューの各々に割り当てられた動的優先度に基づいており、前記クライアントキューの各々に割り当てられたそれぞれの前記動的優先度は、前記クライアントキューの各々のエントリ数に少なくとも部分的に基づいて前記QoSアービターによって割り当てられる、請求項17に記載のコンピュータ実装方法。
【請求項20】
前記複数のクライアントは、前記証明書管理サービスと証明書を必要とする少なくとも1つのコンピュータ化された機器との間でプロキシとして機能するように動作可能な少なくとも1つの配信機器またはサーバを含む、請求項17に記載のコンピュータ実装方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、セキュリティ認証情報およびデジタル証明書などの特定のタイプのデジタル資産を安全に生成および提供するためのシステム、機器、および方法に関する。より詳細には、本発明は、コンピュータ化された機器におけるデジタル資産のプロビジョニングの遅延を低減または排除するために、コンピュータ化された機器におけるデジタル資産を安全にプロビジョニングしながらサービス品質(QoS)レベルを提供するための改善されたシステム、方法、および技術に関する。
【背景技術】
【0002】
コンピュータがますます小型化および商品化されるにつれて、製造業者は、1つ以上の組み込み型コンピュータまたはプロセッサを含む、ますます多様な機器を製造している。コンピュータ化された機器内のコンピュータは、とりわけ、機器の動作を制御し、データを収集、保存、共有し、他のコンピュータや他のコンピュータ化された機器と通信し、それ自身のソフトウェアを更新することができる。
【0003】
モノのインターネット(IoT)は、プロセッサ、電子機器、ソフトウェア、データ、センサ、アクチュエータ、および/またはネットワーク接続を内蔵したコンピュータ化された物理機器のネットワークであり、インターネット、携帯電話ネットワーク、および他のワイヤレスネットワークを含むデジタルネットワークを介してこれらの機器にデータを接続および交換可能にする。通常、それぞれの「モノ」は、その組み込みコンピューティングシステムを通じて一意に識別可能であり、既存のインターネットインフラストラクチャ内で相互運用することができる。
【0004】
IoTの意味での「モノ」とは、とりわけ、家電製品、ビジネスや企業の環境で使用される企業向け機器、製造機械、農業用機器、家庭や建物内のエネルギー消費型機器(スイッチ、コンセント、アプライアンス、照明システム、電球、テレビ、ガレージドアオープナー、スプリンクラーシステム、セキュリティシステムなど)、医療およびヘルスケア機器、インフラストラクチャ管理機器、ロボット、ドローン、および輸送機器および車両などの多様なコンピュータ化された機器を指すことができる。
【0005】
例えば、全部ではないにしても大部分の現代の乗り物および輸送機械(例えば、自動車、トラック、航空機、列車、船舶、バイク、スクーターなど)は、それらのサブシステム内にいくつかの組み込みプロセッサまたは組み込みコンピュータを含み、少なくともいくつかの態様でコンピュータ制御される。同様に、ますます多くの現代の交通インフラ機器(例えば、信号機、交通カメラ、交通センサ、ブリッジモニタ、ブリッジ制御システムなど)は、少なくとも1つ、そしてしばしば多くの、組み込みプロセッサまたは組み込みコンピュータシステムを含み、少なくともいくつかの態様でコンピュータ制御される。交通ネットワークのこれらのコンピュータ制御要素は、通常、相互に通信して様々な種類の情報をやり取りし、安全で、正しく、効率的で、信頼できる動作のために、それらは車両間(V2V、車間(C2C)とも呼ばれる)通信における他の車両との間でおよび/または車両とインフラストラクチャ間(V2I、車インフラストラクチャ間(C2I)とも呼ばれる)通信におけるインフラストラクチャ要素との間で受信/送信される情報に反応し、応答し、動作を変更し、あるいは依存することができる。
【0006】
コンピュータ化された機器内のコンピュータは、それらのソフトウェアおよび/またはファームウェアおよびデータに従って動作する。安全で適切な動作を確実にするために、コンピュータ化された機器は、製造業者によって意図されたように、適切なソフトウェア、ファームウェア、実行可能命令、デジタル証明書(例えば、公開鍵証明書)、および暗号鍵など(以下において、集合的に「デジタル資産」または「ソフトウェア」と呼ぶものとする)で適切に初期化および更新されなければならないので、IoTは、認可された、動作確認済みのソフトウェアおよびデータを実行している機器のみからなる。しかしながら、認可されていない人または組織(例えば、ハッカー)がコンピュータ化された機器内のソフトウェアを交換または変更するときに問題が生じる。また、古いソフトウェア、テストされていないソフトウェア、認可されていないソフトウェア、および/または既知のバグを有するソフトウェアがコンピュータ化された機器内に設置されている場合にも問題が生じる。
【0007】
コンピュータネットワーキング、パケット交換ネットワーク、および電気通信の分野では、サービス品質(QoS)は、選択したユーザ、顧客、クライアント機器、またはネットワークトラフィックに改善されたサービスを提供するように設計された一連のテクノロジーおよび技術を指す。QoSの目標は、サービスまたはネットワークのパフォーマンスを保証することである。QoSメトリックには、遅延、可用性、待機時間、帯域幅、アップロードデータ転送速度、ダウンロードデータ転送速度、セッションごとのアップロード/ダウンロード制限(つまり、ネットワークセッション中にアップロードまたはダウンロードできるメガバイトまたはギガバイトの合計量)が含まれ得る。サービスまたはネットワークは、異なるユーザおよびクライアント機器に異なるQoSレベルを割り当てることができる。QoSはまた、アプリケーションプログラムからのリクエストに従って、ユーザまたはクライアント機器に一定レベルのパフォーマンスを保証することもできる。QoSの保証は、コンピューティング能力またはネットワーク能力が制限されている場合、または実行されるリクエストが遅延に敏感な場合に重要である。
【0008】
したがって、コンピュータ化された機器内でデジタル資産のプロビジョニングの遅延を削減または排除するために、IoT機器、車両、および輸送インフラストラクチャ機器などのコンピュータ化された機器内のデジタル資産を安全にプロビジョニングしながら、QoSレベルを提供するための改善されたシステム、方法、および技術を提供することが望ましい。
【発明の概要】
【0009】
本明細書では、セキュリティ認証情報およびデジタル証明書などの特定のタイプのデジタル資産を生成するリクエストを実行しながら、QoSレベルを提供するためのシステム、方法、および機器が開示される。様々な実施形態では、システム、方法、および機器は、QoSマネージャを使用して、証明書管理システム(CMS)から、証明書をリクエストするクライアントにQoSレベルを提供する。一部の実施形態では、CMSは、セキュリティ認証情報や公開鍵証明書などの特定の種類のデジタル資産を作成および提供するために、QoSマネージャからのリクエストを受け入れる証明書管理サービスをホストする。QoSマネージャは、QoSアービターを使用してQoSキューを作成および管理し、CMSが特定のQoSレベルに基づいて個別の異なるリクエストを適切に管理できるようにする。様々な実施形態では、証明書管理サービスは、車両から車両(Vehicle-to-Vehicle)および車両からインフラストラクチャ(V2X:Vehicle-to-Infrastructure)機器、ならびに車から車(Car-to-Car)および車からインフラストラクチャ(C2X:Car-to-Infrastructure)機器のための証明書を作成できる。様々な実施形態では、システムには、証明書リクエストを送信するクライアントにQoSレベルを提供するQoSマネージャが含まれる。QoSマネージャは、QoSマネージャからの証明書のリクエストの受信に応答して、登録証明書や偽名(pseudonym)証明書などの証明書を生成する証明書管理サービスに通信可能に接続される。
【0010】
本明細書でさらに説明するように、QoSマネージャは、テナントに対応する仲介クライアントキューを管理し、QoSアービターを使用してQoSキューに配置されるクライアントキューからのエントリの順序を選択することにより、QoSレベルを提供することにより、証明書管理サービスがマルチテナント(例えば、マルチクライアント)動作を提供できるようにする。例えば、カスタマイズされたワークフローを作成することができ、カスタマイズされた構成をエンティティ管理システムを介してエンドエンティティで管理できる。
【0011】
様々な実施形態において、システムは、証明書管理サービスから証明書をリクエストする複数のクライアント(例えば、テナントまたは顧客)にサービス品質(QoS)レベルを提供する。システムには、複数のクライアントから証明書リクエストを受信するように動作可能なパブリックアプリケーションプログラミングインターフェイス(API)が含まれ、各々の証明書リクエストは、証明書を必要とするコンピュータ化された機器の数、証明書リクエストがいつ送信されたかを示すタイムスタンプ、および証明書をリクエストする特定のクライアントを示す。システムはまた、複数のクライアントからの証明書リクエストを複数の仲介クライアントキューに分配するように動作可能なQoSマネージャを含む。複数のクライアントキューの各々は、証明書をリクエストする特定のクライアントに対応する。QoSマネージャはまた、クライアントキュー内のクライアントからの証明書リクエストを1つ以上のエントリのサブグループ(すなわち、より小さいグループ)に分割するように動作可能であり、1つ以上のエントリの各々は、証明書を必要とするコンピュータ化された機器の数のサブセットに対応するグループサイズを有する。システムは、QoSキューに配置される複数のクライアントキューからのエントリの順序を選択するように動作可能なQoSアービターをさらに含む。QoSアービターは、QoSキュー内のエントリの数、証明書管理サービスの待機時間レベル、および証明書リクエストがいつ送信されたかを示すそれぞれのタイムスタンプに少なくとも部分的に基づいて、クライアントキューからエントリの順序を選択する。QoSマネージャはさらに、QoSアービターによって選択された順序でQoSキューからエントリを取得し、次に、証明書管理サービスの内部登録局APIを介して、取得されたエントリを証明書管理サービスに送信するように動作可能である。
【0012】
一部の実施形態では、証明書を必要とするコンピュータ化された機器の数のサブセットに対応するグループサイズは、デフォルト値が1の調整可能な数値である。
【0013】
特定の実施形態では、コンピュータ化された機器は、1つ以上のオンボードユニット(OBU)、電子制御ユニット(ECU)、およびロードサイドユニット(RSU)に対応し、OBUは、車両、船舶(例えば、ボート)、航空機、宇宙船、医療機器、ロボット、ドローン、無線または有線の通信モジュール、およびIoT機器のうちの1つ以上に設置されるように構成され、ECUは、車両、船舶、航空機、宇宙船、医療機器、ロボット、ドローン、無線通信モジュール、有線通信モジュール、およびIoT機器のうちの1つ以上に設置されるように構成され、RSUは、交通制御機器、無線通信モジュール、デジタル広告板、および電子看板のうちの1つ以上に設置されるように構成される。
【0014】
特定の実施形態では、複数のクライアントは、証明書管理サービスと証明書を必要とする少なくとも1つのコンピュータ化された機器との間のプロキシとして機能する少なくとも1つの配信機器を含む。配信機器は、例えば工場などの製造業者のサイトに配置できる。そのような実施形態によれば、少なくとも1つのコンピュータ化された機器は、配信機器が証明書管理サービスから証明書を受け取った後、配信機器から証明書を取得することができる。追加の実施形態では、複数のクライアントは、証明書管理サービスと証明書を必要とする少なくとも1つのコンピュータ化された機器との間のプロキシとして機能する少なくとも1つのサーバを含む。そのような実施形態によれば、少なくとも1つのコンピュータ化された機器は、サーバが証明書管理サービスから証明書を受け取った後、サーバから証明書を取得できる。
【0015】
いくつかの実施形態によれば、各々の証明書リクエストは、リクエストを送信するクライアントのクライアント優先度レベルをさらに示し、QoSアービターはさらに、証明書リクエストで示されたそれぞれのクライアント優先度レベルに少なくとも部分的に基づいて、QoSキューに配置される複数のクライアントキューからのエントリの順序を選択するようにさらに動作可能である。いくつかのそのような実施形態によれば、QoSアービターは、追加のクライアントから受信した追加の証明書リクエストに示されるそれぞれのクライアント優先度レベルに少なくとも部分的に基づいて、QoSキューに配置されるエントリの順序を動的に並べ替えるようにさらに動作可能である。いくつかのそのような実施形態では、クライアントに対するクライアント優先度レベルは、クライアントに関連付けられたサービス層に基づく。いくつかのそのような実施形態によれば、サービス層は、最低のサービスレベルから最高のサービスレベルまでの範囲の複数の層のうちの1つに対応する。いくつかのそのような実施形態では、サービス層は、複数の層の1つに対応する英数字の文字列または数値である。
【0016】
他の実施形態では、各証明書リクエストは、リクエストに関連付けられたリクエスト緊急度レベルをさらに示し、QoSアービターは、証明書リクエストに示されるそれぞれのリクエストの緊急度に少なくとも部分的に基づいてQoSキューに配置される複数のクライアントキューからのエントリの順序を選択するように動作可能である。いくつかのそのような実施形態によれば、証明書リクエストのリクエスト緊急度レベルは、証明書リクエストを送信するクライアントによって指定される。特定のそのような実施形態によれば、リクエスト緊急度レベルは、最低緊急度オプションから最高緊急度オプションまでの範囲の複数のレベルのうちの1つに対応する。いくつかのそのような実施形態では、リクエストの緊急度レベルは、複数のレベルのうちの1つに対応する英数字の文字列または数値である。
【0017】
さらに他の実施形態では、QoSアービターは、ラウンドロビン技術を使用して、QoSキューに配置される複数のクライアントキューからのエントリの順序を選択するように動作可能である。
【0018】
さらに他の実施形態では、QoSアービターは、クライアントキューの各々に割り当てられた動的優先度に基づいて、QoSキューに配置される複数のクライアントキューからのエントリの順序を選択するように動作可能であり、クライアントキューの各々へ割り当てられるそれぞれの動的優先度は、クライアントキューの各々のエントリ数に少なくとも部分的に基づいてQoSアービターによって割り当てられる。
【0019】
追加の実施形態では、パブリックAPIは、通信ネットワークを介して複数のクライアントから証明書リクエストを受信するように動作可能なRepresentational State Transfer(REST)APIであり、証明書リクエストは、登録証明書のリクエストを含み、証明書管理サービスに代わって、通信ネットワークを介して、複数のクライアントに、証明書管理サービスの登録認証局によって生成された登録証明書を送信する。いくつかのそのような実施形態によれば、証明書リクエストは偽名証明書のリクエストをさらに含み、パブリックREST APIは、証明書管理サービスに代わって、通信ネットワークを介して複数のクライアントに、証明書管理サービスの偽名認証局によって生成される偽名証明書を送信するようにさらに動作可能である。いくつかのそのような実施形態によれば、登録証明書は、複数のコンピュータ化された機器を含むエコシステムの認可された参加者として公開鍵証明書の所有者を識別する公開鍵証明書であり、エコシステムの各々の認可された参加者は、複数のコンピュータ化された機器との通信を可能にする1つ以上の偽名証明書を受け取ることができる。
【0020】
他の実施形態では、QoSアービターはさらに、追加のクライアントから受信した追加の証明書リクエストに少なくとも部分的に基づいて、QoSキューに配置されるエントリの順序を動的に並べ替えるように動作可能である。
【0021】
特定の実施形態では、コンピュータ実装方法は、証明書管理サービスから証明書をリクエストするクライアントにサービス品質(QoS)レベルを提供する。コンピュータ実装方法は、パブリックアプリケーションプログラミングインターフェイス(API)を介して、複数のクライアントから証明書リクエストを受信することを含む。各々の証明書リクエストは、証明書を必要とするコンピュータ化された機器の数、証明書リクエストがいつ送信されたかを示すタイムスタンプ、および証明書をリクエストするクライアントのクライアント識別子を示す。一部の実施形態では、クライアント識別子は、一意の英数字文字列、認証トークン、およびクライアント認証情報(例えば、Transport Layer Security(TLS)証明書または他のタイプのデジタル証明書など)を1つ以上含むことができる。本方法は、QoSマネージャによって、複数のクライアントからの証明書リクエストを複数の仲介クライアントキューに分配することをさらに含み、複数のクライアントキューの各々は、証明書をリクエストする特定のクライアントに対応する。本方法はまた、QoSマネージャによって、クライアントのリクエストを1つ以上のエントリのサブグループ(つまり、より小さいグループ)に分割することを含み、1つ以上のエントリの各々は、証明書を必要とするコンピュータ化された機器の数のサブセットに対応する。本方法は、QoSキュー内のエントリの数、証明書管理サービスの待機時間レベル、および証明書リクエストがいつ送信されたかを示すそれぞれのタイムスタンプの少なくとも一部に基づいて、QoSアービターにより、QoSキューに配置される複数のクライアントキューからのエントリの順序を選択することをさらに含む。本方法はまた、QoSアービターによって選択された順序でQoSキューからエントリをQoSマネージャによって取得することを含む。本方法は、証明書管理サービスの内部登録局APIを介して、取得したエントリを証明書管理サービスに送信することをさらに含む。
【0022】
一部の実施形態では、QoSマネージャは、証明書管理サービスをホストするCMSと通信可能に接続される。一部の実施形態では、CMSは、証明書管理サービスの内部アプリケーションプログラミングインターフェイス(API)への呼び出しを介してQoSマネージャと通信する。CMSは、複数のクライアントからのリクエストに応答して、QoSマネージャを介して証明書を安全に提供するように構成される。追加または代替の実施形態では、QoSマネージャをCMSでホストされ得る。
【0023】
QoSマネージャが複数のクライアントに代わって登録証明書のリクエストをCMSの登録局に送信するように動作可能な特定の実施形態では、QoSマネージャは、登録局に送信される前にクライアントキューまたはQoSキューの優先度を再設定するようにさらに動作可能とすることができる。例えば、QoSマネージャは、クライアントの登録証明書のリクエストを登録局に送信する前に、証明書をリクエストしているクライアントに優先度を付けることができる。
【0024】
他の実施形態では、登録証明書は、複数のコンピュータ化された機器を含むエコシステムの認可された参加者として公開鍵証明書の所有者を識別する公開鍵証明書であることができ、エコシステムへの認可された各々の参加者は、複数のコンピュータ化された機器との通信を可能にする1つ以上の偽名証明書を受け取ることができる場合がある。
【図面の簡単な説明】
【0025】
本明細書に組み込まれてその一部を構成する添付の図面は、本発明の実施形態を例示し、その説明と共に、本発明の原理を説明するのに役立つ。
【0026】
【
図1A】本発明の実施形態に整合する、証明書などの認証情報を安全に提供するためのプロセスの一例を示すスイムレーン図の第1の部分である。
【0027】
【
図1B】本発明の実施形態に整合する、証明書などの認証情報を安全に提供するためのプロセスの一例を示すスイムレーン図の第2の部分である。
【0028】
【
図2】本発明の実施形態に整合する、証明書管理サービスおよび単一のクライアントのための例示的な動作環境のブロック図である。
【0029】
【
図3】本発明の実施形態に整合する、単一のクライアントとCMSとの間の例示的なデータフローを示すデータフロー図である。
【0030】
【
図4】本発明の実施形態に整合する、2つのクライアント環境で動作する例示的な証明書管理サービスのブロック図である。
【0031】
【
図5】本発明の実施形態に整合する、2つのクライアントとCMSとの間の例示的なデータフローを示すデータフロー図である。
【0032】
【
図6】本発明の実施形態に整合する、マルチクライアント環境で動作する例示的な証明書管理サービスのブロック図である。
【0033】
【
図7】本発明の実施形態に整合する、複数のクライアントとCMSとの間の例示的なデータフローを示すデータフロー図である。
【0034】
【
図8】本発明の実施形態に整合する、QoSレベルを複数のクライアントに提供するためにQoSマネージャを使用する例示的な証明書管理サービスのブロック図である。
【0035】
【
図9】本発明の実施形態に整合する、QoSマネージャを実装するためのシステムの一例のブロック図である。
【0036】
【
図10】本発明の実施形態に整合する、複数のクライアントとQoSマネージャを使用する証明書管理システムとの間の例示的なデータフローを示すデータフロー図である。
【0037】
【
図11】本発明の実施形態に整合するシステムおよび方法をホスティングするために使用することができるコンピューティングシステムの一例のブロック図である。
【発明を実施するための形態】
【0038】
ここで、本発明の様々な実施形態について詳細に言及するが、それらの例は添付の図面に示されている。都合のよい場合にはいつでも、同じまたは同様の部分を指すために、図面全体を通して同じ符号を使用する。
【0039】
現場での安全で適切な動作を保証するために、組み込み機器(例えば、車両に使用される電子制御ユニット(ECU))は、セキュリティ資産などのデジタル資産をプロビジョニングすることによって製造中に適切に初期化される必要がある。デジタル資産には、様々なデジタル証明書、暗号化キー、一意の識別子、およびソフトウェアを含めることができる。ほとんどの場合、これらのデジタル資産を生成するCMSまたは証明書管理サービスと製造工場は、地理的に異なる場所にあり、これらの場所は、従来、安全でないインターネット通信を介して相互接続されている。したがって、デジタル資産が悪意のある者によってまたは偶然にアクセスまたは変更されることがないように、これらのデジタル資産の起点から機器へのエンドツーエンドの安全なチャネルを作成することが望ましい。通常、異なる製造工場とテナント(例えば、顧客とクライアント)には、異なる数のデジタル資産(例えば、デジタル証明書のサイズの異なるバンドル)が必要である。したがって、大規模なリクエストに関連する計算能力のボトルネックまたは通信帯域幅の制限によるこれらのデジタル資産の提供の遅延を最小限に抑えることも望ましい。
【0040】
従来の証明書管理システム(CMS)および証明書管理サービスには、先着順で証明書を発行するという欠点がある。これにより、大規模なリクエストが顧客によってなされて受信されると、大規模なリクエストの後に証明書管理システムまたはサービスに到来するリクエストは、大規模なリクエストが完了するのを待たなければならないという技術的な問題が発生する。大規模な証明書リクエストが実行されるのを待つことに関連する遅延またはボトルネックを最小限に抑えるための従来の技術には、各顧客に対して専用の機器を備えた独立した証明書管理サービスを有することが含まれる。この従来のアプローチの問題は、専用の機器を割り当てることは高価で非効率的であり、所与の顧客専用の機器はアイドル状態で、別の顧客専用の機器は最大能力になるというマルチカスタマーソリューションの提供とは対照的である。本開示に整合するシステム、方法、および機器は、従来の証明書管理システムおよびサービスのこれらおよび他の問題に対処する。例示的な解決策は、複数の顧客(例えば、クライアント)がどのクライアントも欠乏させることなく重複するまたは同時の証明書リクエストを送信できるようにする公平性の方法を採用することにより、これらの問題に対処する。
【0041】
プロビジョニングとは一般的に、適切なデータとソフトウェアを使ってコンピュータ化された機器を準備するためにとられる一連のアクションを指す。それはまた、機器をその運用環境に適切に設置して運用準備を整えるためにとられる一連のアクションも含むことができる。アクションは、適切なデジタル資産(例えば、オペレーティングシステム、機器ドライバ、ミドルウェア、アプリケーション、デジタル証明書など)を機器のデジタルストレージ(例えば、メモリ)にロードすること、および(必要な場合)各々の特定の機器に固有であり得る特定のデジタル資産を機器上で適切にカスタマイズし構成することを含む。アクションはまた、コンピュータ化された機器が正当な機器製造業者によって作成された正当な機器であり、コピーまたは偽造の機器ではないことを検証することを含むことができる。
【0042】
アクションはまた、機器をその動作環境に正しく設置すること、および機器が正しく動作していることを検証するためにそれをテストすることを含むことができる。機器が1つの製造業者によって構築され、後で別の業者によってより大規模なシステムまたは機器に設置される可能性がある(例えば、部品メーカーにより作られたオンボードユニット(OBU)が、自動車メーカーによって作られた自動車に取り付けられる可能性がある)という事実によって、安全性が確認されている機器のみを安全にプロビジョニングする機能は複雑である。不適切に設置された機器は、正しく機能しない可能性がある。
【0043】
本発明と一致した様々な実施形態は、IoT機器を含むコンピュータ化された機器の安全なプロビジョニングのワークフローの一部として証明書リクエストを実行するためのQoSレベルを提供する。このような実施形態は、一部のクライアントからの大規模な証明書リクエストが他のクライアントからの小規模なリクエストを犠牲にしてボトルネックまたは過度の遅延を作成するのを防ぐのに役立つ。
【0044】
本発明に整合する様々な実施形態は、安全なプロビジョニングおよび管理プラットフォームの一部として証明書リクエストを効率的に実行するために、QoSアービターを備えたQoSマネージャを使用して、大規模な証明書リクエストをQoSキューに配置されるより小さく管理しやすい部分に分割することもでき、これは機器およびシステムメーカーにサービスとして提供することができる。
【0045】
図1Aおよび
図1Bはともに、本発明の実施形態に整合する、証明書などの認証情報を安全に提供するための例示的なプロセス100を示すスイムレーン図である。特に、
図1Aおよび
図1Bに示される例示的なプロセス100は、V2X機器に証明書を提供するために、CMSコンポーネント間のリクエストおよび応答の交換を含む。しかしながら、本明細書で説明される実施形態は、V2X機器に限定されず、開示される原理は、C2X機器などの他のタイプのコンピュータ化された機器およびコンピュータ制御機器に適用され得る。つまり、CMSは、V2XまたはC2X証明書管理サービスとして機能する証明書管理サービスをホストできる。
図1Aおよび
図1Bに示される例示的なプロセス100は、証明書をV2X機器に提供する。
図1Aおよび
図1Bは、リクエストと応答のV2Xフローの文脈でのCMSの一例のコンポーネントを示している。
【0046】
様々な実施形態において、プロセス100または示される動作の一部またはすべては、(1つ以上のプロセッサまたは1つ以上のコンピューティングサブシステムを含み得る)コンピューティングシステム上で実行されるコードによって、ハードウェアのみのシステムによって、または2つのハイブリッドであるシステムによって実行され得る。
図1Aおよび
図1Bの上部に示されるように、プロセス100に関与するエンティティは、製造業者(図示せず)、CMSホスト(例えば、証明書管理サービスをホストするCMS)の登録局120、連携局150、160、偽名認証局140、および登録認証局130に配置された配信機器108を含む。様々な実施形態では、これらのエンティティは、
図1Aおよび1Bに関して以下および本開示全体で説明するように、証明書を提供するプロセス100の一部としてタスクを実行するために互いに通信し得る。
【0047】
特定の実施形態では、CMSホストは証明書管理サービスをホストするシステムであり得る。CMSはQoSマネージャと通信する。一部の実施形態では、そのような通信は、証明書管理サービスの内部アプリケーションプログラミングインターフェイス(API)への呼び出しを介して行われる。
【0048】
CMSには、登録局120、1つ以上の連携局150、160、偽名認証局140、および登録認証局130が含まれる。例示的なCMSは、登録局120のためのアプリケーションを実行する1つ以上のアプリケーションプラットフォームを含み得る。これらのアプリケーションプラットフォームは、登録局120が必要とする暗号計算を実行する1つ以上の計算エンジンに通信可能に接続されている。1つ以上のアプリケーションプラットフォームは、1つ以上の仮想マシン(VM)または1つ以上のハードウェアプラットフォーム(例えば、サーバ、コンピュータ、またはソフトウェアアプリケーションをホストおよび実行できるその他のコンピュータハードウェア)を含み得る。CMSはまた、登録認証局130を実行し、登録認証局130が必要とする暗号計算を実行する1つ以上の計算エンジンに通信可能に接続された1つ以上のVMを含み得る。登録認証局130は、登録証明書を生成し、条件付きで登録局120に送信するように動作可能である。
図1Aおよび
図1Bの登録局120をホストする例示的なCMSホストは、偽名認証局140のためのアプリケーションを実行し、偽名認証局140が必要とする暗号計算を実行する1つ以上の計算エンジンに通信可能に接続される1つ以上のVMをさらに含み得る。偽名認証局140は、偽名証明書を生成し、条件付きで登録局120に送信するように動作可能である。CMSホストはまた、第1および第2の連携局150、160を実行し、第1および第2の連携局150、160が必要とする暗号計算を実行する1つ以上の計算エンジンに通信可能に接続される1つ以上のVMを含み得る。第1の連携局150および第2の連携局160のそれぞれのアプリケーションは、連携値を生成し、条件付きで登録局120に送信するように動作可能であり得る。
【0049】
図1Aおよび
図1Bに示される登録局120をホストするCMSホストはまた、登録局120のためのアプリケーションを実行し、かつ登録局120が必要とする暗号計算を実行する1つ以上の計算エンジンに通信可能に接続される1つ以上のアプリケーションプラットフォームを含み得る。CMSホストは、登録認証局130のためのアプリケーションを実行し、かつ登録認証局130が必要とする暗号計算を実行する1つ以上の計算エンジンに通信可能に接続される1つ以上のアプリケーションプラットフォームをさらに含み得、登録認証局130は、登録証明書を生成し、条件付きで登録局120に送信するように動作可能であり得る。CMSホストはさらに、偽名認証局140のためのアプリケーションを実行し、かつ偽名認証局140が必要とする暗号計算を実行する1つ以上の計算エンジンに通信可能に接続される1つ以上のアプリケーションプラットフォームを含むことができ、偽名認証局140は、偽名証明書を生成し、条件付きで登録局120に送信するように動作可能であり得る。さらに、CMSホストは、第1の連携局150のためのアプリケーションを実行し、かつ第1の連携局150が必要とする暗号計算を実行する1つ以上の計算エンジンに通信可能に接続される1つ以上のアプリケーションプラットフォームを含み得る。最後に、CMSホストは、第2の連携局160のためのアプリケーションを実行し、かつ第2の連携局160が必要とする暗号計算を実行する1つ以上の計算エンジンに通信可能に接続される1つ以上のアプリケーションプラットフォームも含み得る。連携局150、160は、連携値を生成し、条件付きで登録局120に送信するように動作可能とすることができる。
【0050】
さらに他の実施形態では、登録認証局130は、登録局120からの登録証明書のリクエストの受信に応答して登録証明書を生成するように動作可能とすることができ、偽名認証局140は、登録局120からの偽名証明書のリクエストの受信に応答して偽名証明書を生成するように動作可能とすることができ、第1の連携局150および第2の連携局160は、登録局120からの連携値のリクエストの受信に応答して連携値を生成するように動作可能とすることができる。代替または追加の実施形態では、登録認証局130は、コンピュータ化された機器から直接リクエストを受信することに応答して登録証明書を生成するように動作可能とすることができる。すなわち、登録証明書を取得する方法は複数あり、
図1Aおよび
図1Bに示される例示的なプロセス100は、単なる1つの例示的な方法である。
【0051】
図1Aの例に示されるように、プロセス100は、登録関連の動作105~135で開始する。登録認証局130の主な役割は、登録局120からのリクエストを実行して、登録証明書を、例えば、配信機器108などのエンドユーザ機器に発行することである。
図1Aに示される例示的な登録関連動作105~135を参照して以下で説明するように、登録認証局130は、リクエストされた登録証明書を配信機器108に発行するために登録局120と直接対話することができる。追加または代替の実施形態では、登録認証局130は、証明書管理サービスをホストするCMSと登録証明書を必要とするコンピュータ化された機器との間でプロキシとして機能するように動作可能な配信機器108と、登録証明書を必要とするコンピュータ化された機器と、登録証明書をリクエストするクライアントのためのプロキシとして機能するサーバと直接通信できる。例えば、登録認証局130は、製造業者のサイト(例えば、製造業者の工場)にある配信機器108と直接通信することができる。
【0052】
105では、製造業者の配信機器108は、登録局120から登録証明書をリクエストし、登録証明書はコンピュータ化された機器にプロビジョニングされ(例えば、それによって使用され)、リクエストは登録証明書の宛先であるコンピュータ化された機器を識別し得る。リクエストは、例えば、新しいコンピュータ化された機器(例えば、新しい製品)に対する登録証明書をリクエストしている製造業者の配信機器108であってもよい。登録証明書は、エコシステムであって、すべての参加者が有効な登録証明書を共有しなければならず、認可された参加者はまた、エコシステム内での機器の通信と動作を可能にする(例えば、USDOTのV2Xエコシステムの例では、車両とロードサイドインフラストラクチャとの間の通信と動作を可能にする)偽名証明書も受け取ることができるエコシステム(例えば、米国運輸省(USDOT)V2Xエコシステムなど)の認可された参加者としてその所有者を識別する公開鍵証明書である。
【0053】
110では、登録証明書のリクエストは登録局120で受信され、次いで登録局120から登録認証局130に送信される。様々な実施形態において、この動作は、登録局120が、未承認の機器のリスト(例えば、ブラックリスト)を使用して登録証明書の宛先である機器(例えば、コンピュータ化された機器)の失効ステータスをチェックする署名検証を含むリクエストを解読および検証することと、リクエスタ(例えば、配信機器108)が登録局120からの登録証明書をリクエストできるかどうかを判断することとを伴い得る。例えば、動作110は、製造業者からのユーザが認可されたユーザ(例えば、スタッフの一部)であるかどうかを判定することを含み得る。いくつかの実施形態では、登録局120は、登録証明書を受信するためのコンピュータ化された機器(例えば、製品)が使用のために承認されているかどうかを110で判定することもできる。場合によっては、この判定を行うために、承認済み機器のリスト(ホワイトリストなど)が規制当局によって提供され、プロビジョニングコントローラによって使用され得る。登録証明書のリクエストが確認された後、リクエストは登録局120から登録認証局130に送信される。このリクエストは、登録局120によって作成される登録証明書生成リクエストとして送信できる。
【0054】
115では、登録証明書のリクエストは、登録認証局130で受信される。リクエストの受信に応答して、120では、登録認証局130は、リクエストされた登録証明書を生成し、生成された登録証明書を登録局120に送り返す。125では、登録局120で登録証明書が受信され、130では、登録局120は、登録証明書を配信機器108に送信する。135では、配信機器108は登録証明書を受け取る。この時点で、配信機器108は、機器が登録証明書を使用できるように登録証明書を機器にプロビジョニングすることができ、登録関連の動作が完了する。
【0055】
動作140~199は、偽名証明書のプロビジョニングに関連している。いくつかの実施形態では、偽名証明書をリクエスト、生成、およびプロビジョニングするための動作140~199は、QoSマネージャ(
図1Aおよび
図1Bには図示されないが、
図8および
図9のQoSマネージャ801および901を参照)を使用して、偽名証明書をリクエストする複数のクライアントにQoSレベルを提供することを含む。140では、配信機器108は、登録局120からの偽名証明書をリクエストする。偽名証明書は、コンピュータ化された機器にプロビジョニング(例えば、それによって使用)され、リクエストは、偽名証明書の宛先であるコンピュータ化された機器を識別することができる。リクエストは、例えば、以前に登録証明書を受け取ったコンピュータ化された機器(例えば、登録されたコンピュータ化された機器)の偽名証明書をリクエストしている製造業者の配信機器108であり得る。偽名証明書のリクエストには、一定量(例えば、1週間相当、1か月相当、または1年相当)の公開鍵証明書に対するクライアントリクエストが含まれ得る。
【0056】
145では、偽名証明書のリクエストが登録局120で受信され、登録局120は次に偽名証明書のプロビジョニングを開始する。
【0057】
動作152~170では、連携局150、160は、連携値のリクエストを実行するために登録局120と直接対話する。150では、登録局120は、連携値の第1の組(LA1)のリクエストを連携局1 150に送信する。
【0058】
155では、連携値の第1の組のリクエストの受信に応答して、連携局1 150は、連携値の第1の組を生成および/または登録局120に送信する。すなわち、連携局1 150は、以前に生成された連携値の第1の組(すなわち、事前生成された連携値)を送信することができるか、または値が事前に生成されない場合は、連携局1 150は、連携値の第1の組を生成し、その後、送信することができる。157では、連携値の第1の組が登録局120で受信される。160では、登録局120は、連携値の第2の組(LA2)のリクエストを連携局2 160に送信する。
【0059】
次に、
図1Bに示すように、165では、連携値の第2の組のリクエストの受信に応答して、連携局2 160は、連携値の第2の組を生成および/または登録局120に送信する。様々な実施形態において、連携局2 160は、事前に生成された連携値の第2の組を送信することができるか、または代替的に、連携局2 160は、連携値の第2の組を生成および送信することができる。170では、連携値の第2の組が登録局120で受信される。
【0060】
特定の実施形態では、
図1Aおよび
図1Bに示す連携局150、160は、証明書リクエスタの識別子(つまり、証明書リクエスタの機器の一意の識別子)を失効の目的で発行された偽名証明書にリンクできる。すなわち、連携局1 150および連携局2 160は、プロセス100の一部として、偽名認証局140によって発行された偽名証明書に、証明書リクエスタの機器の一意の識別子として第1および第2の組の連携値をそれぞれ提供する。連携局1 150および連携局2 160は、動作152および162で登録局120から送信された連携値のリクエストを受信し、動作155および165で登録局120にリクエストされた連携値を提供する。
【0061】
引き続き
図1Bを参照すると、175では、登録局120は、偽名証明書に対するリクエストを偽名認証局140に送信する。このリクエストは、登録局120によって作成される偽名証明書生成リクエストのバッチとして送信され得る。
【0062】
180では、偽名証明書のリクエストは、偽名認証局140で受信される。リクエストの受信に応答して、185では、偽名認証局140は、リクエストされた偽名証明書を生成し、生成された偽名証明書を登録局120に送り返す。190では、偽名証明書が登録局120で受信される。
【0063】
195では、配信機器108は、複数のリクエストを登録局120に送信して、リクエストされた偽名証明書の準備ができている(すなわち、生成されて利用可能)かどうかを問い合わせることができる。特定の実施形態では、動作195の問い合わせは、動作142で偽名証明書のリクエストが送信された後であればいつでも送信することができる。例えば、動作142で偽名証明書のリクエストを登録局120に送信した後、配信機器108は、登録局120に問い合わせを定期的に送信して、リクエストされた偽名証明書が読み取られたかどうかを判定する。この例では、動作195の問い合わせの1つ以上を、動作145~190と並行して(すなわち、偽名証明書が生成されている間に)送信することができる。
【0064】
198では、偽名証明書の準備が整うと、登録局120は、配信機器108に偽名証明書を送信する。199では、配信機器108は、偽名証明書を受信する。この時点で、配信機器108は、機器が偽名証明書を使用できるように機器に偽名証明書をプロビジョニングすることができ、偽名証明書をプロビジョニングするための動作が完了する。
【0065】
追加または代替の実施形態では、上記のプロセス100と同様のプロセスを使用して、例えばC2X機器などの他のコンピュータ化された機器に証明書を提供することができる。例えば、
図1Aおよび
図1Bに示すコンポーネントと同様のコンポーネントを備えたCMSは、1つ以上のオンボードユニット(OBU)、電子制御ユニット(ECU)、またはロードサイドユニット(RSU)に証明書を提供できる。このようなOBUおよびECUは、車両、船舶(例えば、ボート)、航空機(例えば、飛行機およびドローン)、宇宙船、医療機器、ロボット、無線または有線の通信モジュール、およびIoT機器にインストールされるように構成され得る。同様に、RSUは、交通制御機器(例えば、交通信号)、電子看板機器、およびデジタル表示機器(例えば、電子広告板)に設置され得る。
【0066】
図2~
図9に関して本明細書で説明するQoSマネージャ、QoSアービター、およびQoSキューを使用して、V2XコンテキストならびにC2Xコンテキストで証明書をリクエストするクライアントにQoSレベルを提供できることを理解すべきである。
【0067】
図2は、単一のクライアント202が証明書管理サービス280と対話する例示的な動作環境200を示している。いくつかの実施形態では、証明書管理サービス280は、V2X証明書管理サービスであり得る。追加または代替の実施形態では、証明書管理サービス280は、C2X証明書管理サービスであり得る。図示されるように、クライアント202は、ネットワーク235を介して1つ以上のコンピュータ化された機器に対して証明書のリクエストを送信することができる。
図2の例では、ネットワーク235はインターネットである。特定の実施形態では、コンピュータ化された機器は、車両、船舶(例えば、ボート)、航空機、宇宙船、医療機器、ロボット、ドローン、無線または有線通信モジュール、およびIoT機器のうちの1つ以上に対応する。例えば、コンピュータ化された機器は、車両、船舶、航空機、宇宙船、ロボット、ドローン、医療機器、またはIoT機器のOBUまたはECUに対応できる。また、例えば、コンピュータ化された機器は、交通制御機器(例えば、信号機、交通信号灯、または電子交通標識)、デジタル広告板、または電子看板のRSUに対応することができる。
【0068】
動作環境200では、証明書のリクエストは、証明書管理サービス280のクライアントの表示状態転送(REST:representational state transfer)API205により受信される。
図2に示すように、クライアントのREST API 205はパブリックAPIとすることができ、証明書管理サービス280は、V2XまたはC2X証明書管理サービスとすることができる。証明書管理サービス280は、証明書のリクエストを受け入れ、タイムフレーム内でタスクを完了し、その後、ネットワーク235を介して結果(例えば、生成された証明書)をクライアント202に返す。いくつかの実施形態では、タイムフレームは、証明書管理サービス280の処理能力に応じて、数分、数時間、または数日であり得る。
【0069】
証明書管理サービス280は、リクエストされた証明書を生成するためのコンポーネントを含む。
図2の例では、これらのコンポーネントには、登録局220、登録認証局230、偽名認証局240、連携局1 250、および連携局2 260が含まれる。
【0070】
追加または代替の実施形態では、証明書管理サービス280のコンポーネントは、証明書管理サービス280がV2XまたはC2X証明書管理サービスとして構成されているかどうかに応じて異なり得る。例えば、証明書管理サービス280がC2X証明書管理サービスとして機能する場合、証明書管理サービス280は、登録認証局230の役割と同様の役割を果たすように構成された長期認証局(LTCA:Long Term Certificate Authority)を含むことができる。同様に、証明書管理サービス280がC2X証明書管理サービスとして具現化される場合、証明書管理サービス280は、偽名認証局240の役割と同様の役割を果たす認可機関(AA:Authorization Authority)を含み得る。証明書管理サービス280のコンポーネントについては、以下の段落で説明する。
【0071】
一例では、証明書管理サービス280は、CMSとして具現化することができる。証明書管理サービス280の様々な実施形態は、非常に大量の機器トランザクションおよび証明書生成処理のために使用され得る。様々な実施形態において、証明書管理サービス280は、複数のサーバ、複数のハードウェアセキュリティモジュール(HSM)、複数の計算またはコンピューティングエンジン、および複数のアプリケーションプラットフォームを使用して実装され得る。例示的な一実施形態では、アプリケーションプラットフォームはそれぞれ、登録局220、登録認証局230、偽名認証局240、および連携局250および260をホストするための1つ以上の仮想マシン(VM)を含むことができる。追加または代替の実施形態では、アプリケーションプラットフォームはそれぞれ、例えば、アプリケーションサーバ、コンピュータ、またはソフトウェアアプリケーションをホストおよび実行できる他のコンピュータハードウェアなど、1つ以上のハードウェアプラットフォームを含むことができる。
図2の例では、登録認証局230のアプリケーションプラットフォームは、登録認証局130のアプリケーションを実行する1つ以上のVMとすることができ、偽名認証局240のアプリケーションプラットフォームは、偽名認証局240のアプリケーションをホストして実行するように動作可能な1つ以上のVMとすることができる。同様に、連携局1 250のアプリケーションプラットフォームは、連携局1のアプリケーションをホストおよび実行するように構成された1つ以上のVMとすることができ、連携局2 260のアプリケーションプラットフォームは、連携局2のアプリケーションをホストおよび実行するように動作可能な1つ以上のVMとすることができる。証明書管理サービス280の非限定的な例は、プライベートデータセンター、例えばアマゾンのアマゾンウェブサービス(AWS)などのクラウドデータセンター、またはプライベートデータセンターとクラウドデータセンターのハイブリッドで実装することができる。
【0072】
いくつかの実施形態では、証明書管理サービス280は、例えば、
図1Aおよび1Bに関して説明したように機能し得る製造業者の配信機器108によって使用される、例えば、登録証明書および偽名証明書などのセキュリティ証明書を提供することができる。特定の実施形態では、証明書管理サービス280は、
図1Aおよび1Bに示される配信機器108に証明書を提供するために、デジタル資産管理システム(DAMS)と対話することができる。
【0073】
図2に示すように、証明書管理サービス280のアーキテクチャは、登録局220、登録認証局230、偽名認証局240、連携局1 250、および連携局2 260を含む。これらのコンポーネントの各々は、タスクを実行するために、それぞれ専用の計算エンジン(図示せず)を利用できる。例えば、登録局220は登録局計算エンジンを利用でき、登録認証局230は登録認証局計算エンジンを利用でき、偽名認証局240は偽名認証局計算エンジンを利用でき、連携局1 250は連携局1計算エンジンを利用でき、連携局2 260は、連携局2計算エンジンを利用できる。これらの各コンポーネントの機能については、以下の段落で説明する。
【0074】
証明書管理サービス280のアーキテクチャは、非セキュリティ関連のアプリケーションをセキュリティ機能から有利に分離する。
図2の例に示すように、登録局220、登録認証局230、偽名認証局240、および連携局250、260は、独自の専用計算エンジンで実行される独自のVM上のアプリケーションとして実装され、独自の専用計算エンジンのすべては、非セキュリティ関連のアプリケーションおよび機能から分離される。これにより、HSMのパフォーマンスが遅い、クラウドサービスプロバイダーがHSMを提供できない、またはHSMの適切な管理が不確実である従来のシステムに対する技術的およびセキュリティ上の利点と改善の両方が提供される。証明書管理サービス280では、HSMを必要とするすべての暗号動作が計算エンジン(例えば、1つ以上の計算エンジン)で実行される。
【0075】
図2に示すように、重要なセキュリティ機能を互いに分離し、別々の計算エンジンに分離することにより、計算集中型の暗号およびセキュリティ機能(例えば、楕円曲線バタフライ展開計算または楕円曲線デジタル署名)は、例えば、登録局220、登録認証局230、偽名認証局240、および連携局250、260によって実行されるとき、既存の登録局システムよりも大幅に高速に実行される。この設計は、
図8~
図10を参照して以下で説明するサービス品質(QoS:Quality of Service)マネージャと連携して、「ボトルネック」アプリケーションを必要に応じて個別にスケーリングできるようにすることで、マルチクライアント環境でのトランザクション処理の大幅な改善を可能にする。したがって、本開示に整合する実施形態は、既存の登録局システムに関連するボトルネックを減らすために、特定の技術的に有利なシステムアーキテクチャを提供する。例えば、登録局220で実行される登録局アプリケーションを拡張する必要がある場合、追加のVMを追加できるが、登録局の計算エンジンの安全な計算機能を変更することは必要とされ得ない。あるいはまた、セキュリティ計算がパフォーマンスを制限している場合は、追加の安全な登録局の計算エンジンを追加できる。この同じ多次元スケーリングは、証明書管理サービス280の他のコンポーネントにも当てはまる。これらの機能により、既存のセキュリティ認証情報管理システム(SCMS:Security Credential Management Systems)よりも大幅にパフォーマンスおよびスケーラビリティが向上する。
【0076】
いくつかの実施形態では、登録局220、登録認証局230、偽名認証局240、および連携局250、260のそれぞれのアプリケーションプラットフォームは、それぞれの入力メッセージキューの組を介して計算エンジンに通信可能に接続され、これにより証明書管理サービス280のこれらのコンポーネントのすべては、互いに独立してスケーリングできる。
【0077】
上述し、
図2の非限定的な例に示すように、登録局220、認証局230、240、および連携局250、260の各々は、それら自身の仮想マシン(VM)上のアプリケーションとして実装され得る。追加または代替の実施形態では、登録局220、認証局230、240、および連携局250、260の1つ以上は、ハードウェアプラットフォーム(例えば、サーバまたは計算エンジン)上で実行することができる。アプリケーションプラットフォーム(例えば、VMまたはハードウェアプラットフォーム)上で実行されるこれらのアプリケーションの各々の役割および機能については、以下の段落で説明する。
【0078】
様々な実施形態において、登録局220は、デジタル証明書または他のタイプのデジタルセキュリティ資産に対するユーザリクエストを検証し、認証局(例えば、登録認証局230および偽名認証局240)がデジタル証明書を発行可能にするプロビジョニングネットワーク内の局とすることができる。様々な実施形態において、登録局220は、公開鍵インフラストラクチャ(PKI)システム内で知られている登録局と同様であり得る。様々な実施形態において、クライアントのREST API 205は、証明書リクエストを登録局220に渡すことができ、これは、representational state transfer(REST)ウェブサービスとして実装することができる。様々な実施形態では、登録局220の複数のインスタンスが同時に実行される場合がある。これは、
図2に示される証明書管理サービス280の他のコンポーネントについても同様に表される。証明書管理サービス280の登録局機能は、その機能がRESTウェブサービスとして実装された登録局220の複数のインスタンスによって実行できるという点で非集中型である。登録局220の主な役割は、署名偽名認証局240がどの証明書が特定のコンピュータ化された機器に最終的に到達するのかを知ることを防ぎながら、リクエストをプロビジョニングする証明書を許可および実行することである。登録局220は、証明書管理サービス280内でそれらの役割を果たすために、メッセージキューを介して偽名認証局240、連携局250、260と直接対話する。
【0079】
特定の実施形態では、登録局220(および
図2の他のコンポーネント)をデータベースに接続することができる。証明書管理サービス280は、データの保存および取得のために、データストアまたはデータベースのコレクションを利用してもよい。例えば、使用されるデータベースは、必要に応じてデータ分離を可能にする1つ以上のテーブルを各々が有する1つ以上のデータベース論理ユニットまたは物理ユニットからなることができる。本明細書で使用されるとき、「データベース」という用語は、1つ以上のデータベースまたはデータストアを指す。特定の実施形態では、複数のデータベースの使用により、登録局220と
図2の他のコンポーネントとの間のデータ分離が可能になり得る。例えば、このような複数のデータベースの使用により、登録局220、認証局230、240、および連携局250、260間のデータ分離が可能になる。
【0080】
好ましい実施形態では、証明書管理サービス280によって使用されるデータベースは、1つ以上の高速アクセス、低待機時間データベースのコレクションである。一部の実施形態では、データベースは、NoSQLデータベースまたはデータベースサービス(例えば、Amazon Webサービスによって提供されるDynamoDBデータサービス)とすることができる。様々な実施形態では、データベースに保存されるデータはアプリケーションに依存するが、過去に発行された証明書、様々な連携局の値、証明書が発行された機器のデータ、オペレーターのアクションなどを含み得る。なお、データは、暗号化されていない、暗号化された、またはそれらの組み合わせのいずれかで保存され得る。
【0081】
様々な実施形態では、証明書管理サービス280は、登録局220によって生成されたデジタル証明書が異なるセグメント、例えば登録デジタル証明書と偽名デジタル証明書とに分割されるため、登録認証局230と偽名認証局240とを含む。
【0082】
登録認証局230は、同時に実行する登録認証局230の複数のインスタンスが存在する可能性があるため、証明書管理サービス280の非中央コンポーネントである。例えば、いくつかの実施形態では、登録認証局230の複数のインスタンスが同時に実行している場合がある。登録認証局230は、登録局220から登録証明書のリクエストを受け取ることができる。登録認証局230の主な役割は、登録局220からのリクエストを実行して、例えば
図1Aおよび
図1Bに示される配信機器108などのエンドユーザ機器に登録証明書を発行することである。
図1Aを参照して上述したように、登録認証局130は、CMS内でその役割を果たすために登録局120と直接対話する。
【0083】
偽名認証局240は、同時に実行している偽名認証局240の複数のインスタンスが存在する可能性があるという点で、CMSの非中央コンポーネントである。偽名認証局240については、様々な実施形態において、同時に並行して実行している偽名認証局240の複数のインスタンスがあり得る。偽名認証局240は、登録局220から偽名証明書のリクエストを受け取ることができる。偽名認証局240の主な役割は、登録局220からのリクエストを実行して、例えば
図1Aおよび
図1Bに示される配信機器108などのエンドユーザ機器に偽名証明書を発行することである。特定の実施形態では、偽名認証局240は、V2V機能のための短期偽名証明書のリクエストを実行する。
図5Bを参照して以下に説明するように、偽名認証局240は、CMS内でその機能を果たすために登録局220と直接対話する。
【0084】
様々な実施形態において、
図2に示される連携局250、260は、証明書リクエスタの識別子(すなわち、証明書リクエスタの機器の一意の識別子)を、失効目的のために発行された偽名証明書にリンクする。すなわち、連携局1 250および連携局2 260は、それぞれの連携値を、証明書リクエスタの機器の一意の識別子として、発行された偽名証明書に提供する。連携局1 250および連携局2 260は、登録局220から連携値のリクエストを受信し、次いで、リクエストされた連携値を登録局220に提供することができる。連携局250、260は、連携値のリクエストを実行するために登録局220と直接対話する。
【0085】
様々な実施形態において、計算エンジンはHSMを含み、HSMによりこれらのコンポーネントは、ハッカーから過度に脅かされることなく安全な計算を実行できる。いくつかの実施形態では、組み込みHSMを必要とせずに安全な計算を実行するように計算エンジンを設計することができ、このような実施形態では、HSMを具現化する。
【0086】
様々な実施形態では、CMSでは異なるHSMバージョンが使用できる。例えば、HSMには、1つ以上の計算エンジン内にプラグインカードとしてインストールされた組み込みHSMが含まれ得る。そのような例示的な実施形態では、組み込みHSMは、Peripheral Component Interconnect(PCI)HSMまたはPCI Express(PCIe)HSMとして1つ以上の計算エンジンにインストールされてもよい。また、例えば、証明書管理サービス280のHSMは、自身のエンクロージャ内の計算エンジンとは別の外部、ネットワーク取付けまたはネットワーク接続HSMを含むことができる。
【0087】
当業者であれば、
図2に示すコンポーネントおよび実施形態の詳細は、説明を簡潔かつ明確にするために提示された例であることを理解するであろう。この例は限定を意図するものではなく、多くの変形が可能であるので、本発明の原理から逸脱することなく他のコンポーネント、プロセス、実施形態の詳細、および変形形態を使用することができる。
【0088】
図3は、本発明の実施形態に整合する、単一のクライアント302とCMS380との間の例示的なデータフローを示すデータフロー図である。
図3の例では、CMS380は、V2XまたはC2X CMSとして具現化され得る。いくつかの実施形態によれば、CMS380は、
図2を参照して上述した証明書管理サービス280などの証明書管理サービスをホストすることができる。
【0089】
図3に示すように、クライアント302は、1つ以上のコンピュータ化された機器のための証明書のリクエスト310を送信する。一部の実施形態では、コンピュータ化された機器は、車両に搭載されるように構成されたECUまたはOBUであり得る。追加または代替の実施形態では、コンピュータ化された機器は、交通制御機器(例えば、交通信号灯、電子交通標識など)、デジタル看板、およびその他のロードサイド電子標識に設置されるように構成されたRSUであり得る。特定の実施形態では、各証明書リクエスト310は、証明書を必要とするコンピュータ化された機器の数、証明書リクエスト310がいつ送信されたかを示すタイムスタンプ、および証明書をリクエストするクライアント(例えば、
図3の例におけるクライアント302の識別子)を示す。特定の実施形態では、クライアントの識別子(つまり、クライアント識別子)は、一意の英数字文字列、認証トークン、および例えばTLS証明書などのクライアント認証情報、または他の種類のデジタル証明書のうちの1つ以上を含み得るか、またはそれらであり得る。
【0090】
CMS380は、リクエスト310を受け入れ、計算時間315内にリクエストされた証明書バンドルを生成することによりリクエストされたタスクを完了する。証明書バンドルは、計算時間315内にCMS380によって作成され、計算時間315はタイムフレーム(例えば、分、時間、または日の数)である。計算時間315は、CMS380の作業負荷、(リクエスト310に示されるように)証明書を必要とするコンピュータ化された機器の数、およびCMS380の待機時間レベルなどの様々な要因に応じて異なり得る。証明書バンドルを生成した後(つまり、計算時間315が経過した後)、CMS380はクライアント302に返送される応答325として結果を戻す。
【0091】
図4は、例示的な動作環境400のブロック図である。特に、
図4は、本発明の実施形態に整合する、2つのクライアント環境で動作する証明書管理サービス480を示している。簡潔にするために、
図2と比較して
図4内で生じる違いのみを以下に説明する。
【0092】
図4では、例示的な動作環境400は、証明書管理サービス480と同時に対話することができる2つのクライアント402、422(例えば、クライアント1およびクライアント2)を含む。図示されているように、クライアント402およびクライアント422は両方とも、ネットワーク435を介して1つ以上のコンピュータ化された機器に対する証明書のそれぞれの同時リクエストを送信することができる。
図4の例では、ネットワーク435はインターネットである。いくつかの実施形態では、コンピュータ化された機器は、車両、船舶、航空機、宇宙船、医療機器、ロボット、ドローン、無線または有線通信モジュール、およびIoT機器(例えば、IoTアプライアンス、IoTセンサ、IoTスイッチ、IoTコントローラ、またはウェアラブルIoT機器)のうちの1つ以上に対応する。例えば、コンピュータ化された機器は、車両、船舶、航空機、宇宙船、ロボット、ドローン、医療機器、またはIoT機器のOBUまたはECUに対応できる。さらに、例えば、コンピュータ化された機器は、交通制御機器(例えば、信号機、交通信号灯、または電子交通標識)、デジタル広告板、または電子看板のRSUに対応することができる。
【0093】
動作環境400では、証明書のリクエストは、証明書管理サービス480のクライアントREST API 405によって受信される。
図4に示すように、クライアントREST API 405はパブリックAPIであることができ、証明書管理サービス480はV2XまたはC2X証明書管理サービスであることができる。証明書管理サービス480は、証明書のリクエストを受け入れ、タイムフレーム内でタスクを完了し、次いで、ネットワーク435を介してクライアント402、422に結果(例えば、生成された証明書)を返す。証明書管理サービス480には、リクエストされた証明書を生成するためのコンポーネントが含まれる。
図4の例では、これらのコンポーネントは、登録局420、登録認証局430、偽名認証局440、連携局1 450、および連携局4 460を含む。
【0094】
追加または代替の実施形態では、証明書管理サービス480のコンポーネントは、証明書管理サービス480がV2XまたはC2X証明書管理サービスとして構成されているかどうかによって異なる場合がある。例えば、
図2を参照して上述したように、証明書管理サービス480がC2X証明書管理サービスとして機能する実施形態では、証明書管理サービス480は、登録認証局430の役割と類似の役割を果たすように構成された長期認証局(LTCA)を含むことができる。同様に、証明書管理サービス480がC2X証明書管理サービスとして具現化される場合、証明書管理サービス480は、偽名認証局440の役割と同様の役割を果たす認可機関を含むことができる。
【0095】
動作環境400には、両方が同じ証明書管理サービス480からの作業をリクエストできる2つの同時クライアント402、422がある。一例では、クライアント402(例えば、クライアント1)は、ネットワーク435を介して、多数のコンピュータ化された機器(例えば、100,000台を超える車両)に対するリクエストを送信することができ、クライアント422(例えば、クライアント2)は、クライアント1の証明書リクエストに続いて、比較的少数のコンピュータ化された機器(例えば、50台未満)のための証明書のリクエストを送信することができる。QoSマネージャを使用しない単純な証明書管理サービス(V2XまたはC2X)の場合、これら2つのリクエストは、先着順に処理される。この例では、クライアント422(例えば、クライアント2)は、応答が提供される前に、クライアント1のジョブが完了するまで待機しなければならない。つまり、クライアント2のリクエストが比較的小さい場合でも、クライアント2のリクエストを実行するのにかかる時間は、普通ならたったの数分である代わりに、時間遅延は数時間または数日であり得る(すなわち、クライアント402からの大規模なリクエストが実行されるまでにどれだけの時間がかかろうとも)。
【0096】
有利なことに、本明細書で開示される実施形態は、証明書管理サービスが複数のクライアントにQoSレベルを提供できるようにするQoSマネージャ(例えば、
図8および
図9のQoSマネージャ801および901を参照)を使用して、クライアント422などのクライアントが、早い方の大規模なリクエストが実行されるのを待つことに関連する過度の遅延を経験しないようにする。例えば、
図8~10を参照して本明細書で説明されるように、QoSマネージャは、証明書管理サービス480によって使用され、クライアント402、422からの証明書リクエストを2つの対応する仲介クライアントキューに分配することができ、2つのクライアントキューの各々は、証明書をリクエストする特定のクライアント(例えば、クライアント402またはクライアント422)に対応する。QoSマネージャはまた、クライアントのリクエストを、クライアントが証明書を必要とするコンピュータ化された機器の数のサブセットに各々のエントリが対応する1つ以上のエントリのより小さなグループ(つまり、サブグループ)に分割することができる。
【0097】
図5は、本発明の実施形態に整合する、2つのクライアント502、522とCMS580との間の例示的なデータフローを示すデータフロー図である。簡潔にするために、
図3と比較して
図5内で生じる違いのみを以下に説明する。
【0098】
図5に示す例では、CMS580はV2X CMSまたはC2X CMSであり得る。特定の実施形態によれば、CMS580は、
図4を参照して上述した証明書管理サービス480などの証明書管理サービスをホストすることができる。
【0099】
図5に示すように、クライアント502(例えば、クライアント1)は、大規模なリクエスト510、および多数のコンピュータ化された機器(例えば、110,000台の車両)の証明書に対する大規模なリクエスト510を送信し、クライアント522(例えば、クライアント2)は、クライアント502からの大規模なリクエスト510に続いて、少数のコンピュータ化された機器(例えば、40台の車両)の証明書に対する小規模なリクエスト512を送信する。様々な実施形態において、各々の証明書リクエスト510、512は、証明書を必要とするコンピュータ化された機器の数(例えば、大規模なリクエスト510については110,000、小規模なリクエスト512については40)、証明書リクエストがいつ送信されたかを示すタイムスタンプ、および証明書(例えば、大規模なリクエスト510に対してクライアント502および小規模なリクエスト512に対してクライアント522のそれぞれの識別子)をリクエストするクライアントを示す。例えば、各証明書リクエスト510、512は、証明書をリクエストする対応するクライアント502、522のクライアント識別子を含むことができる。一部の実施形態では、クライアント識別子は、クライアント502または522のいずれかを一意に識別し、一意の英数字文字列、認証トークン、または例えばTLS証明書などのクライアント認証情報、またはクライアント502または522に対応する他のタイプのデジタル証明書とすることができる。
【0100】
図5は、QoSマネージャのない単純なCMS580が2つのリクエスト510、512を先着順で処理する方法を示している。大規模なリクエスト510がCMS580によって受信されると、CMS580は、大規模なリクエスト510を実行するために必要な証明書のバンドルを生成するために必要な計算を実行するために計算時間515を必要とする。
図5の例では、リクエストされた証明書のバンドルが生成されると、リクエストされた証明書のバンドルを含む応答525がCMS580からクライアント502に送信される。すなわち、クライアント502は、応答525を受信する前に計算515を待つだけである。この例では、クライアント522(例えば、クライアント2)は、小規模なリクエスト512に対する応答527を受信するために、待機時間516を待たなければならない。図示されるように、クライアント522の待機時間516は、クライアント1のジョブが完了するのに必要な全計算時間515と、小規模なリクエスト512に対する応答527が提供される前に小規模なリクエスト512を実行するために必要な追加の計算時間517を含む。つまり、クライアント2の小規模なリクエスト512は大規模なリクエスト510よりもはるかに少ない証明書のためであり、CMS580によってはるかに迅速に実行することができても、別な方法でクライアント2の小規模なリクエスト512を実行するのにかかる数分だけの代わりに、待機時間516は数時間または数日(つまり、クライアント502からの大規模なリクエスト510が実行されるのに必要とされる計算時間515と、小規模なリクエスト512が実行される計算時間517)となる可能性がある。
【0101】
図6は、本発明の実施に整合する、マルチクライアント環境600で動作する例示的な証明書管理サービス680のブロック図である。簡潔にするために、
図2および
図4と比較して、
図6内で生じる違いのみを以下に説明する。
【0102】
図6では、例示的な動作環境600は、証明書管理サービス680と同時に対話することができる複数のクライアント602、622(例えば、クライアント1およびクライアント2)、623、…62nを含む。図示されるように、n個のクライアント602、622、623、…62nのグループはそれぞれ、ネットワーク635(例えば、インターネット)を介して1つ以上のコンピュータ化された機器に対する証明書のそれぞれのリクエストを送信することができる。これにより、
図4および5を参照して上記で説明した遅延と同様の遅延が発生する可能性があるが、クライアント602、622、623、…62nに複数の大規模なリクエスタが含まれる場合、特に大規模なリクエストが証明書管理サービス680によって受信された後に小規模なリクエストが送信された場合、問題が悪化する可能性がある。
【0103】
動作環境600では、証明書のリクエストは、証明書管理サービス680のクライアントREST API 605(例えば、V2XまたはC2X証明書管理サービスのパブリックAPI)によって受信される。証明書管理サービス680は、証明書のリクエストを受け入れ、タイムフレーム内でタスクを完了し、その後、ネットワーク635を介してクライアント602、622、623、…62nに結果(例えば、生成された証明書)を返す。証明書管理サービス680には、リクエストされた証明書を生成するためのコンポーネントが含まれる。
図6の例では、これらのコンポーネントは、登録局620、登録認証局630、偽名認証局640、連携局1 650、および連携局6 660を含む。
【0104】
追加または代替の実施形態では、証明書管理サービス680のコンポーネントは、証明書管理サービス680がV2XまたはC2X証明書管理サービスとして構成されているかどうかに応じて異なる場合がある。例えば、
図2および
図4を参照して上述したように、証明書管理サービス680がC2X証明書管理サービスとして機能する実施形態では、証明書管理サービス680は、登録認証局630の役割と同様の役割を果たすように構成されたLTCAを含むことができる。同様に、証明書管理サービス680がC2X証明書管理サービスとして具現化される場合、証明書管理サービス680は、偽名認証局640と同様の役割を果たす認証局を含むことができる。
【0105】
動作環境600には、各々が同じ証明書管理サービス680からの作業をリクエストできる複数の同時クライアント602、622、623、…62n(例えば、n個のクライアントのグループ)が存在する。一例では、クライアント602、622(例えば、クライアント1および2)は、ネットワーク635を介して、多数のコンピュータ化された機器(例えば、100,000台を超える車両)に対する大規模なリクエストを送信でき、クライアント1およびクライアント2の証明書リクエストに続いて、別のクライアント623は、証明書に対する別の大規模なリクエストを送信できる。次に、n個のクライアントのグループ内の最後のクライアント62nは、比較的少数のコンピュータ化された機器(例えば、50台未満の車両)に対する小規模なリクエストを送信することができる。QoSマネージャを使用しない単純な証明書管理サービス(V2XまたはC2X)の場合、これらのリクエストは先着順に処理されるであろう。この例では、クライアント62n(例えば、n個のクライアントの最後のクライアント)は、応答が提供される前に、前のクライアントのジョブが完了するまで待機しなければならない。つまり、クライアント62nからのリクエストが比較的小さい場合でも、別な方法でクライアント62nからの小規模なリクエストを実行するのにかかる数分だけの代わりに、時間遅延は数時間または数日(すなわち、クライアント602、622、623からの大規模なリクエストが実行されるのにどれだけの時間がかかろうとも)となる可能性がある。
【0106】
上記の問題を解決するために、本明細書で開示する実施形態は、証明書管理サービスが複数のクライアントにQoSレベルを提供できるようにするQoSマネージャ(例えば、
図8および
図9のQoSマネージャ801および901を参照)を有利に使用するため、クライアント62nなどのクライアントは、より早い大規模なリクエストが実行されるのを待つことに関連する過度の遅延を経験しない。例えば、
図8~10を参照して本明細書で説明するように、QoSマネージャを証明書管理サービス680で使用して、クライアント602、622、623、…62nからの証明書リクエストをn個の対応する仲介クライアントキューに分配することができ、n個のクライアントキューの各々は、証明書をリクエストした特定のクライアントに対応する。QoSマネージャはまた、クライアントキュー内のクライアントの証明書リクエストを1つ以上のエントリのより小さなグループに分割することができ、1つ以上のエントリの各々は、証明書を必要とするコンピュータ化された機器の数のサブセットに対応するグループサイズを有する。
【0107】
図7は、本発明の実施に整合する、複数のクライアント(例えば、n個のクライアント702、722、723、…72n)とCMS780との間の例示的なデータフローを示すデータフロー図である。簡潔にするために、
図3および
図5と比較して、
図7内で生じる違いのみを以下に説明する。
【0108】
図7に示す例では、CMS780はV2X CMSまたはC2X CMSであり得る。特定の実施形態では、CMS780は、
図6を参照して上述した証明書管理サービス680などの証明書管理サービスをホストすることができる。
【0109】
図7に示すように、クライアント702(例えば、クライアント1)は、多数のコンピュータ化された機器(例えば、110,000台の車両)のための証明書に対する大規模なリクエスト710を送信し、クライアント722(例えば、クライアント2)は、クライアント702からの大規模なリクエスト710に続いて、別の大規模なリクエスト711を送信し、その後、クライアント723がさらに別の大規模なリクエスト713を送信する。大規模なリクエスト710、711、および713がCMS780によって受信された後、クライアント72nは、比較的少数のコンピュータ化された機器(例えば、40台の車両)のための証明書に対する小規模なリクエスト712を送信する。いくつかの実施形態では、各々の証明書リクエスト710、711、712、713は、証明書を必要とするコンピュータ化された機器の数(例えば、大規模なリクエスト710の場合は110,000、小規模なリクエスト712の場合は40)、特定の証明書リクエストがいつ送信されたかを示すタイムスタンプ(例えば、送信の時、分、秒を示す日付と時刻)、および証明書をリクエストするクライアント(例えば、大規模なリクエスト710、711、および713についてはクライアント702、722、723、ならびに小規模なリクエスト712についてはクライアント72nのそれぞれの識別子)を示すデータフィールドを含む。例えば、各々の証明書リクエスト710、711、712、713は、証明書をリクエストする対応するクライアント702、722、72n、723のクライアント識別子を含むことができる。いくつかの実施形態では、クライアント識別子は、クライアント702、722、723、または72nのうちの1つを一意に識別し、一意の英数字文字列、認証トークン、または例えばTLS証明書などのクライアント認証情報、または他の種類のデジタル証明書を含み得るか、またはそれらであり得る。
【0110】
図7は、QoSマネージャのないCMS780が、複数のリクエスト710、711、712、713を先着順で順番に処理する方法を示している。CMS780によって受信された大規模なリクエスト710、711、713のため、CMS780は、多数のリクエストされた証明書を生成するために、長い連続した計算時間715、717、および718を必要とする。例えば、CMS 780は、クライアント702からの大規模なリクエスト710を実行するために必要な証明書のバンドルを生成するために必要な計算を実行するために、計算時間715を必要とする。
図7の例では、クライアント702によってリクエストされた証明書のバンドルが生成されると、証明書のバンドルを伴う応答725がCMS780からクライアント702に返送される。すなわち、クライアント702は、応答725を受信する前に計算715を待つだけでよい。この例では、クライアント722(例えば、クライアント2)は、応答727を受信するために、計算時間715および追加の計算時間717の待機をしなければならない。
【0111】
最後に、小規模なリクエスト712を有するクライアント72nは、大規模なリクエスト710、711、713の後にその小規模なリクエスト712が送信されたという事実により、すべてのクライアント702、722、723、72nの最長時間を待機しなければならない。すなわち、QoSマネージャ(例えば、以下で説明する
図8および
図9のQoSマネージャ801および901を参照)を使用せずに、クライアント72nは、小規模なリクエスト712への応答727が提供される前に716という長い待機時間を経験するであろう。
【0112】
図7に示されるように、クライアント72nは、小規模なリクエスト712に対する応答729を受信する前に、待機時間716に耐えなければならない。これは、クライアント72nの待機時間716には、クライアント2のリクエストを完了するための計算時間717、クライアント723からのリクエストを完了するための計算時間718、および小規模なリクエスト712を実行するために必要な計算時間719に加えて、クライアント1のジョブを完了するために必要な計算時間715全体が含まれているからである。すなわち、たとえクライアント72nが、大規模なリクエスト710、711、および713よりもはるかに少ない証明書に対する小規模なリクエスト712を送信したとしても、待機時間716は数時間または数日の期間となる可能性がある。これは、待機時間716が、クライアント702、722、723からの大規模なリクエスト710、711、713が実行されるのに必要な組み合わせの計算時間715、717、718と、小規模なリクエスト712が実行されるための計算時間719との合計であるためである。
図8および
図9を参照して以下で説明するQoSマネージャ801および901を使用しないと、最初に送信された大規模なリクエスト710、711、および713が実行されるのを最初に待つ必要なしに、クライアント72nからの小規模なリクエスト712を実行するためのメカニズムはない。
図8~
図10を参照して以下に説明するように、QoSマネージャにより、CMSまたは証明書管理サービスがマルチクライアント環境でQoSレベルを提供できる。
【0113】
図8は、本発明の実施形態に整合するマルチクライアント環境800における、複数のクライアント802、822、823、…82nにQoSレベルを提供するためにQoSマネージャ801を使用する例示的な証明書管理サービス880のブロック図である。簡潔にするために、
図2、
図4、および
図6と比較して、
図8で発生する違いのみを以下に説明する。
【0114】
図8では、例示的なマルチクライアント環境800は、証明書管理サービス880と同時に対話することができる複数のクライアント802、822(例えば、合計n個のクライアントのうちのクライアント1および2)、823、…82nを含む。n個のクライアント802、822、823、…82nのグループは、それぞれ、ネットワーク835(例えば、インターネット)を介して1つ以上のコンピュータ化された機器のための証明書に対するそれぞれのリクエストを送信することができる。これにより、
図4、
図5、および
図7を参照して上記で説明した遅延と同様の遅延が発生する可能性があるが、クライアント802、822、823、…82nが複数の大規模なリクエストを送信した場合、特に大規模なリクエストが証明書管理サービス880によって受信された後に小規模なリクエストが送信された場合、問題が悪化する可能性がある。
【0115】
証明書管理サービス880は、クライアント802、822、823、…82nによって送信された証明書のリクエストを実行するためのコンポーネントを含む。
図8に示すように、これらのコンポーネントには、QoSマネージャ801、パブリック登録局API805、登録局820、登録局820の内部API825、登録認証局830、偽名認証局840、連携局1 850、および連携局8 860が含まれる。
【0116】
様々な実施形態において、パブリック登録局API805は、n個のクライアント802、822、823、…82nからの証明書リクエストを受信するように動作可能であり、各々の証明書リクエストは、証明書を必要とするコンピュータ化された機器の数、証明書リクエストがいつ送信されたかを示すタイムスタンプ、および証明書をリクエストするクライアントを示す。例えば、各々の証明書リクエストは、証明書をリクエストするn個のクライアント802、822、823、…82nのうちの1つに対するクライアント識別子を含み得る。一部の実施形態では、クライアント識別子は、クライアント802、822、823、…82nのうちの1つを一意に識別し、一意の英数字文字列、認証トークン、および例えばTLS証明書などのクライアント認証情報、または他の種類のデジタル証明書のうちの1つ以上を含み得る。
【0117】
追加または代替の実施形態では、各々のリクエストはまた、それぞれのクライアント優先度レベルを示すことができ、これはクライアントに関連付けられたサービス層に基づくことができる。いくつかの実施形態では、サービス層は、最低のサービスレベルから最高のサービスレベルまでの範囲の複数の層のうちの1つに対応する数値である(例えば、サービス層1~10、ここで1が最低のサービスレベルであり、5が中レベルのサービスレベルであり、10が最高のサービスレベルである)。追加または代替の実施形態によれば、各々のリクエストは、リクエストに関連付けられたリクエスト緊急度レベルをさらに示すことができる。例えば、証明書リクエストのリクエスト緊急度レベルは、証明書リクエストを送信するクライアントによって指定され得る。そのようなリクエストの緊急度レベルは、最低の緊急度オプションから最高の緊急度オプションまでの範囲の複数のレベルのうちの1つに対応する数値とすることができる(例えば、1~10、1は最低の緊急度、5は中度の緊急度リクエスト、10は最も緊急なリクエスト)。様々な実施形態において、クライアントは、クライアントごとまたはリクエストごとに優先度および緊急度レベルを高めるために、サービスプロバイダ(例えば、証明書管理サービス880を提供するエンティティまたは別のエンティティ)にプレミアムを支払うことを選択できる。同様に、クライアントは、リベートまたはその他のインセンティブと引き換えに、特定の緊急ではない優先度の低いリクエストに対して優先度と緊急度を選択的に下げることを選択できる。
【0118】
有利なことに、
図8に示す実施形態は、QoSマネージャ801を使用して、証明書管理サービス880がQoSレベルをクライアント802、822、823、…82nに提供できるようにし、これによってクライアント82nなどのクライアントが、より早く、大規模なリクエストを実行するための待機に関連する過度の遅延を経験しないようにする。例えば、QoSマネージャ801は、証明書管理サービス880によって使用されて、クライアント802、822、823、…82nからの証明書リクエストをn個の対応する仲介クライアントキューに分配でき、n個のクライアントキューの各々は、証明書をリクエストした特定のクライアントに対応する。QoSマネージャ801はまた、クライアントキュー内のクライアントの証明書リクエストを1つ以上のエントリのより小さなグループに分割することができ、1つ以上のエントリの各々は、証明書を必要とするコンピュータ化された機器の数のサブセットに対応するグループサイズを有する。特定の実施形態では、グループサイズはユーザが調整可能なパラメータであり、既定値は1である。
【0119】
QoSマネージャ801は、クライアント802、822、823、…82nと証明書管理サービス880との間の仲介として機能する。QoSマネージャ801は、任意の数のクライアント(例えば、
図8の例ではn個のクライアント)から複数の同時リクエストを受け入れ、それらを仲介クライアントキューに保持することができる。QoSマネージャ801は、大規模なリクエストを小規模なリクエストに分解し、それらの小規模なリクエストを別個のクライアントキューに送り込むことができる(図示せず、しかしながら、以下で説明する
図9のクライアントキュー903、907、909、…91nを参照)。これにより、小規模なリクエストをはるかにより早く完了することができ、任意の数のクライアントをサポートできる。また、QoSマネージャ801を使用することで、追加の小規模なリクエストが着信した場合、CMSまたはQoSマネージャのない証明書管理サービスと比較して、はるかにより早く完了することができるであろう。
【0120】
マルチクライアント環境800において、証明書のリクエストは、QoSマネージャ801の登録局API805(例えば、パブリックAPI)によって受信される。QoSマネージャ801は、証明書管理サービス880に代わって証明書のリクエストを受け入れる。様々な実施形態において、QoSマネージャ801は、n個のクライアント802、822、823、…82nからの証明書リクエストをn個の仲介クライアントキューに分配するように動作可能であり、n個のクライアントキューの各々は、証明書をリクエストする特定のクライアントに対応する。QoSマネージャ801は、そのクライアントのクライアントキュー内の特定のクライアントのリクエストを1つ以上のエントリのサブグループ(すなわち、より小さいグループ)に分割するように構成することもでき、1つ以上のエントリの各々は、クライアントが証明書を必要とするコンピュータ化された機器の数のサブセットに対応するグループサイズを有する。以下の
図9を参照してより詳細に説明するように、いくつかの実施形態では、QoSマネージャ801はQoSアービター(図示せず、しかしながら、
図9のQoSアービター904を参照)を含む。QoSアービターは、QoSキュー内のエントリの数、証明書管理サービス880の待機時間レベル、および証明書リクエストがいつ送信されたかを示すそれぞれのタイムスタンプに少なくとも部分的に基づいて、QoSキューに配置される複数のクライアントキューからのエントリの順序を選択するように動作可能である。いくつかの実施形態によれば、QoSマネージャ801は、QoSアービターによって選択された順序でQoSキューからエントリを取得し、登録局820の内部API825を介して、取得されたエントリを証明書管理サービス880に送信する。次に、QoSマネージャ801は、証明書管理サービス880の登録局820の内部API825への呼び出しを介して、QoSキューから証明書管理サービス880にエントリを転送する。次に、証明書管理サービス880は、タイムフレーム内でQoSマネージャ801によってそれに転送されたタスクを完了し、次に結果(例えば、生成された証明書)をQoSマネージャ801に返す。次に、QoSマネージャ801は、登録局API805およびネットワーク835を介して、クライアント802、822、823、…82nへの応答として結果を転送する。
【0121】
動作環境800には、複数の同時クライアント802、822、823、…82n(例えば、n個のクライアントのグループ)があり、これは、n個のクライアントと証明書管理サービス880との間の仲介として機能するQoSマネージャ801と同時に対話することができる。一例では、クライアント802、822(例えば、クライアント1および2)は、ネットワーク835を介して、多数のコンピュータ化された機器(例えば、100,000台を超える車両)に対する大規模なリクエストを送信することができ、クライアント1およびクライアント2の証明書リクエストに続いて、別のクライアント823は、証明書に対する別の大規模なリクエストを送信することができる。次いで、n個のクライアントのグループ内の最後のクライアント82nは、比較的少数のコンピュータ化された機器(例えば、50台未満の車両)に対する小規模なリクエストを送信することができる。上記のように、QoSマネージャ801を備えた証明書管理サービス880の場合、これらのリクエストはクライアントキューに配置され、クライアント802、822、823、…82nにQoSレベルを提供するために必要に応じて徐々に(例えば、特定のグループサイズのサブセットに)分割および処理される。すなわち、リクエストのサイズまたは優先度の変化に関係なく、先着順でリクエストを順番に処理する必要がある代わりに、QoSマネージャ801を有利に使用して、リクエストを順番に処理する必要を避ける。例えば、応答が提供される前に最後のクライアント(例えば、クライアント82n)が先行クライアントのすべてのジョブの完了を待機するようにリクエストする代わりに、QoSマネージャ801は、証明書管理サービス880が、後で到着するが過度の遅延なし(つまり、先行クライアント802、822、823からの大規模なリクエストが実行されるまでにいかに時間がかかろうとも、数時間または数日)に完了されるべき、クライアント82nからのより小規模なリクエストを実行することを可能にする。
【0122】
図9は、本発明の実装に整合する、QoSマネージャ901を実装するためのシステム900の一例のブロック図である。簡潔にするために、
図8と比較したときに
図9内で生じる違いのみを以下に説明する。
【0123】
図9では、例示的なシステム900は、クライアントと証明書管理サービス980との間の仲介として機能するQoSマネージャ901と同時に対話することができる複数のクライアント902、922(例えば、n個の全クライアントのうちのクライアント1および2)、923、…92nを含む。複数のクライアント902、922、923、…92nはそれぞれ、ネットワーク935(例えば、
図9の非限定的な例ではインターネット)を介して、1つ以上の機器の証明書に対するそれぞれのリクエストを送信することができる。
【0124】
証明書管理サービス980は、クライアント902、922、923、…92nによって送信された証明書のリクエストを実行するためのコンポーネントを含む。様々な実施形態において、公開登録局API905は、n個のクライアント902、922、923、…92nから証明書リクエストを受信するように動作可能であり、各々の証明書リクエストは、証明書を必要とするコンピュータ化された機器の数、証明書リクエストがいつ送信されたかを示すタイムスタンプ、および証明書をリクエストするクライアントを示す。追加または代替の実施形態では、各々のリクエストはまた、それぞれのクライアント優先度レベルを示すことができ、これはクライアントに関連付けられたサービス層に基づくことができる。一部の実施形態では、サービス層は、最低のサービスレベルから最高のサービスレベルまでの範囲の複数の層のうちの1つに対応する英数字の文字列または数値である(例えば、サービス層1~10、ここで1は最低またはブロンズサービス層を表し、5は中層またはシルバー層を表し、7は高層またはゴールド層を表し、10は最高層またはプラチナ層を表す)。追加または代替の実施形態によれば、各々のリクエストは、リクエストに関連付けられたリクエスト緊急度レベルをさらに示すことができる。例えば、証明書リクエストのリクエスト緊急度レベルは、証明書リクエストを送信するクライアントによって指定され得る。このようなリクエストの緊急度レベルは、最低の緊急度オプションから最高の緊急度オプションまでの範囲の複数のレベルの1つに対応する英数字の文字列または数値とすることができる(例えば、1~10、ここで1は低緊急度のリクエスト、5はデフォルトで通常の緊急度リクエスト、7は非常に緊急のリクエスト、10は極めて緊急のリクエスト)。様々な実施形態において、クライアント902、922、923、…92nのうちの1つ以上は、クライアントごとまたはリクエストごとに優先度および緊急度レベルを高めるために、サービスプロバイダ(例えば、QoSマネージャ901を提供するエンティティまたは別のエンティティ)にプレミアムを支払うことを選択できる。同様に、クライアントは、リベートまたはその他のインセンティブと引き換えに、特定の緊急ではない優先度の低いリクエストに対して優先度と緊急度を選択的に下げることを選択できる。
【0125】
有利には、システム900は、QoSマネージャ901を使用して、証明書管理サービス980がクライアント902、922、923、…92nにQoSレベルを提供できるようにし、これによってクライアント92nなどのクライアントが、より早い、大規模なリクエストを実行するための待機に関連する過度の遅延を経験しないようにする。例えば、QoSマネージャ901は、証明書管理サービス980によって使用されて、クライアント902、922、923、…92nからの証明書リクエストを、n個の対応する仲介クライアントキュー903、907、909、…91nに分配することができ、これらのn個のクライアントキューの各々は、証明書をリクエストした特定のクライアントに対応する。
図9の例では、クライアントキュー903はクライアント902に対応し、クライアントキュー907はクライアント922に対応し、クライアントキュー909はクライアント923に対応し、クライアントキュー91nはクライアント92nに対応する。
【0126】
図9に示すように、QoSマネージャ901はまた、クライアントキュー内のクライアントの証明書リクエストを1つ以上のエントリのより小さなグループに分割することができ、1つ以上のエントリの各々は、証明書を必要とするコンピュータ化された機器の数のサブセットに対応するグループサイズを有する。
図9の非限定的な例では、グループサイズは50である(例えば、50台の車両のための証明書)。ただし、代替の実施形態では、グループサイズは任意の数にすることができ、証明書は任意のコンピュータ化された機器用(すなわち、車両に限定されない)にすることができることが理解される。例えば、グループサイズはクライアントによって異なる場合があり、特定の実施形態では、サイズはクライアントキュー903、907、909、…91nのキューエントリごとに1台のコンピュータ化された機器である。代替または追加の実施形態では、グループサイズはユーザが調整可能なパラメータであり、既定値は1である。代替の一実施形態では、システム900は、
図9に示される専用クライアントキュー903、907、909、…91nの代わりに、プールされたキューアプローチを使用することができる。例えば、
図9に示すように、n個のクライアントの各々とクライアントキューの数との間に1対1のマッピングを使用して、クライアントキューをクライアントごとに専用にする必要はない。つまり、顧客ごとに専用の(所定の)クライアントキューを有するシステム900の代わりに、プールされたキューの実施形態はキューのプールを利用し、クライアントがアクティブなときにキューのプールから所与のキューのみを割り当てることができる。つまり、プールされたキューの実施形態では、クライアントが証明書リクエストを送信したとき(すなわち、クライアントがアクティブなとき)にのみ、そのクライアントにキューを割り当てることができる。専用キューの実施形態の1つの利点は、クライアントがクライアントの状態を非アクティブからアクティブまたはアクティブから非アクティブに変更する場合、システム900がキューを割り当てるためのロジックまたは命令の実行を必要としないことである。プールされたキューの実施形態の1つの利点は、QoSキュー906に配置されるアクティブなジョブを探すときに、QoSアービター904が実行する必要がある作業を最適化できることである。すなわち、プールされたキューの実施形態では、QoSアービター904は、(非アクティブなクライアントに対しては空の専用クライアントキューをスキャンする必要が潜在的にあるのとは対照的に)アクティブなクライアントのキューを現在の保留中の証明書リクエストでスキャンすればよい。
【0127】
QoSマネージャ901は、クライアント902、922、923、…92nと証明書管理サービス980との間の仲介として機能する。QoSマネージャ901は、任意の数のクライアント(例えば、
図9の例ではn個のクライアント)から複数の同時リクエストを受け入れ、それらを仲介のクライアントキュー903、907、909、…91nに保持することができる。
図9に示されるように、QoSマネージャ901は、大規模なリクエストを小規模なリクエストに分解し、それらの小規模なリクエストをクライアントキュー903、907、909、…91nの別々のそれぞれのものにする。これにより、小規模なリクエストをはるかにより早く完了することができ、任意の数のクライアントをサポートできる。また、QoSマネージャ901を使用することで、大規模なリクエストを受信した後に追加の小規模なリクエストが入ってきた場合、それらの小規模なリクエストは、QoSマネージャ901のないCMSまたは証明書管理サービスと比較して、はるかに早く完了することができる。
【0128】
システム900では、証明書のリクエストは、QoSマネージャ901の登録局API905(例えば、パブリックAPI)によって受信される。QoSマネージャ901は、証明書管理サービス980に代わって証明書のリクエストを受け入れる。様々な実施形態において、QoSマネージャ901は、n個のクライアント902、922、923、…92nからの証明書リクエストをn個の仲介クライアントキューに分配するように動作可能であり、n個のクライアントキューの各々は証明書をリクエストする特定のクライアントに対応する。QoSマネージャ901は、特定のクライアントのリクエストをそのクライアントのクライアントキュー内において1つ以上のエントリのより小さなグループに分割するように構成することもでき、1つ以上のエントリの各々は、クライアントが証明書を必要とするコンピュータ化された機器の数のサブセット(例えば、クライアントキュー903の部分1、2、3、4、…xを参照)に対応するグループサイズを有する。すなわち、QoSマネージャ901は、所与のクライアントからの大規模な証明書リクエストをより小さな断片に分解し、それらのより小さな断片をそのクライアントのクライアントキューに入れることができる。
【0129】
様々な実施形態において、QoSマネージャ901は、QoSアービター904を含む。QoSアービター904は、QoSキュー906に配置されるクライアントキューからのエントリを選択する。特定の実施形態では、QoSアービター904は、ラウンドロビン技術を使用してQoSキュー906に配置されるクライアントキュー903、907、909、…91nからのエントリの順序を選択するように動作可能である。すなわち、QoSアービター904は、各クライアントキュー903、907、909、…91nの各々からエントリを順次選択し、第1のクライアントキュー903から始まる順番に移動し、他の各クライアントキュー907、909、…91nの各々を通って次々に進むことができる。QoSアービター904は、必要に応じてQoSキュー906に単に十分なエントリを配置することのみによって、エントリを調整する。例えば、QoSキュー906は、許可されるエントリの数を制限することができる。システム900の効率を改善するために、許可されるエントリの数は、証明書管理サービス980が常にビジーであることを保証するのに十分大きい値ではあるが、待機時間を最小限にするのに十分小さい値に設定することができる。すなわち、QoSキュー906のキューの深さは制限されており、この制限はQoSアービター904によって知られている。
【0130】
QoSアービター904は、新しいリクエストが入ってQoSキュー906に配置されることを可能にするように、QoSキュー906のサイズを最小化することを追求することができる。いくつかの実施形態では、QoSアービター904が特定の順序でQoSキュー906にアイテムを配置した場合でも、後で到着するが優先度の高いリクエストをQoSキュー906の末尾ではなく先頭に挿入できる。言い換えれば、QoSキュー906内の新たなエントリは、通常、QoSキュー906の末尾に配置または設定される。
図9のQoSキュー906の先頭は、QoSキュー906の最下部にあるクライアント1(例えば、クライアント1(x50))のためのエントリである。このエントリは、内部API925を介して証明書管理サービス980に向かう次のエントリになるであろうQoSキュー906の先頭にある。しかしながら、場合によっては、QoSアービター904は、QoSキュー906の先頭、または先頭と末尾の間のどこかに新しいエントリを挿入することを選択することができる。例えば、QoSアービター904によるQoSキュー906へのエントリの配置は、証明書リクエストで示されるクライアント優先度レベルおよび/または証明書リクエスト緊急度に基づくことができる。
【0131】
いくつかの実施形態では、QoSアービター904は、追加のクライアントから受信した追加の証明書リクエスト(例えば、クライアント92nからのリクエスト後に新しいクライアントから受信したリクエスト)に少なくとも部分的に基づいてQoSキュー906に配置されるエントリの順序を動的に並べ替えるようにさらに動作可能である。さらに、例えば、QoSキュー906内のエントリの順序は、QoSアービター904により、クライアントキュー903、907、909、…91nの各々に割り当てられた動的優先度に基づいて決定することができ、ここでクライアントキュー903、907、909、…91nの各々に割り当てられたそれぞれの動的優先度は、クライアントキュー903、907、909、…91nの各々のエントリの数に少なくとも部分的に基づいてQoSアービターによって割り当てられる。
【0132】
様々な実施形態において、QoSアービター904は、QoSキュー906のエントリの数、証明書管理サービス980の待機時間レベル、および証明書リクエストがいつ送信されたかを示すそれぞれのタイムスタンプに少なくとも部分的に基づいて、n個のクライアントキュー903、907、909、…91nから一連のエントリを選択して、QoSキュー906に配置されるように動作可能である。
【0133】
図9の例では、QoSアービター904は、ラウンドロビン技術を使用してQoSキュー906に配置される複数のクライアント(例えば、クライアント1、クライアント2…クライアントn)からのエントリの順序を選択している。追加または代替の実施形態では、QoSアービター904は、証明書リクエスト内で示され得るリクエスト緊急度レベルまたはクライアント優先度レベルに基づいてQoSキュー906に配置されるn個のクライアントキュー903、907、909、…91nからのエントリの順序を選択するようにさらに動作可能である。例えば、ラウンドロビン技術を使用して、すべてのクライアント902、922、923、…92n間のクライアントキュー903、907、909、…91nからのエントリの順序を選択する代わりに、QoSアービター904は、クライアント間のバランスを変更するルールに基づいてエントリの順序を選択できる。例えば、エントリの順序は、高優先度で高給のクライアント(特定の自動車メーカーなど)および低優先度で低給のクライアント(例えば、アイドル時間の処理に対してのみ支払いたいと思う特定の大学)を示すそれぞれのクライアント優先度レベルに基づいて決定され得る。この例では、QoSアービター904は、優先度の低いクライアントからのエントリの前に優先度の高いクライアントからのエントリをQoSキュー906に配置する。また、例えば、エントリの順序は、それぞれのリクエスト緊急度レベルに基づいて決定することができ、QoSアービター904は、より緊急度の低いリクエストに対応するエントリの前に優先度の高いリクエストに対応するエントリをQoSキュー906に配置する。追加の実施形態では、QoSアービター904は、証明書管理サービス980が単位時間あたりクライアントごとに一定数を超える証明書を決して処理してはならないことを示すレート制限ルールに基づいて、QoSキュー906に対するエントリの順序を選択してもよい(例えば、所与のクライアントを1時間あたりまたは1日あたりx個以下の証明書に制限する)。
【0134】
システム900では、クライアント902、922、923、…92nの所与のクライアントは、複数の同時の証明書リクエストを有し得る。特定の実施形態では、QoSマネージャ901は、同じクライアントからの複数のリクエストを区別しない場合がある。代替または追加の実施形態では、QoSマネージャ901は、単一クライアントからの同時リクエストをルールに基づいてさらに分割できる。例示的な一実施形態によれば、QoSマネージャ901は、クライアントがシステム900に提供するそれぞれのリクエスト緊急度レベルおよびそのクライアントからのリクエスト間で緊急度レベルを実施するルールに基づいてクライアントのリクエストを分割することができる。この例示的な実施形態では、QoSマネージャ901は、QoSアービター904に、クライアントがその証明書リクエストの各々に対して提供する緊急度レベルに基づいて、所与のクライアントからの複数のリクエストの一部を処理する順序を指示し得る。別の一実施形態では、クライアントは、QoSマネージャ901がラウンドロビン技術を使用して、そのクライアントのすべての証明書リクエストにわたってエントリの順序を選択できるようにすることができる。
【0135】
追加または代替の実施形態では、QoSアービター904は、証明書リクエスト内で示され得るリクエスト緊急度レベルまたはクライアント優先度レベルに基づいてQoSキュー906に配置されるn個のクライアントキュー903、907、909、…91nからのエントリの順序を選択するようにさらに動作可能である。
図9に示すように、QoSアービター904は、QoSキュー906に配置される複数のクライアント(例えば、クライアント1、クライアント2…クライアントn)からのエントリの順序を選択している。
【0136】
特定の実施形態では、証明書管理サービス980は、内部API925への呼び出しを介して、QoSキュー906からエントリをプルする。ただし、上記のように、(902、922、923、92nのいずれでもない新しいクライアントからの)新しいリクエスト、またはクライアント902、922、923、92nのいずれかからのQoSキュー906内の他のエントリよりも優先度が高い新しいリクエストに対して、その後、QoSアービター904は、処理すべきCMS980の次のエントリとして、新規のより高い優先度のエントリをQoSキュー906内に置くことができる。一実施形態では、QoSアービター904は、QoSキュー906を一時的に凍結または一時停止し、新規のより高い優先度のエントリがQoSキュー906に配置されるまで、証明書管理サービス980がそれ以上のエントリをQoSキュー906からプルできないようにすることができる。代替の一実施形態では、QoSアービター904は、QoSキュー906からより低い優先度のエントリを除去してそれをより高い優先度のエントリに置き換えることができ、QoSアービター904は除去されたエントリを対応するクライアントキューに戻すことができる。
【0137】
いくつかの実施形態によれば、QoSマネージャ901は、QoSアービター904によって選択された順序でQoSキュー906からエントリを取得し、内部API925を介して、取得されたエントリを証明書管理サービス980に送信する。次に、QoSマネージャ901は、証明書管理サービス980の登録局の内部API925への呼び出しを介して、QoSキューから証明書管理サービス980にエントリを転送する。次に、証明書管理サービス980は、タイムフレーム内でQoSマネージャ901によってそれに転送されたタスクを完了し、次に結果(例えば、生成された証明書)をQoSマネージャ901に返す。次に、QoSマネージャ901は、登録局API905およびネットワーク935を介して、クライアント902、922、923、…92nへの応答として結果を転送する。
【0138】
システム900には、QoSマネージャ901を介して、同じ証明書管理サービス980からの作業をそれぞれリクエストすることができる複数のクライアント902、922、923、…92n(例えば、n個のクライアントのグループ)が存在する。すなわち、複数の同時クライアント902、922、923、…92nは、n個のクライアントと証明書管理サービス980との間の仲介として機能するQoSマネージャ901と同時に対話することができる。
図9に示される例では、クライアント902、922(例えば、クライアント1および2)は、ネットワーク935を介して、多数のコンピュータ化された機器(例えば、100,000台を超える車両)に対する大規模なリクエストを送信することができ、別のクライアント923は、クライアント1およびクライアント2の証明書リクエストに続いて、証明書に対する別の大規模なリクエストを送信することができる。次いで、n個のクライアントのグループ内の最後のクライアント92nは、比較的少数のコンピュータ化された機器(例えば、50台未満の車両)に対する小規模なリクエストを送信することができる。上記のように、QoSマネージャ901を含むシステム900の場合、これらのリクエストは、QoSレベルをクライアント902、922、923、…92nに提供するために、クライアントキュー903、907、909、…91nに配置され、徐々に(例えば、
図9の非限定的な例におけるグループサイズ50のサブセットに)分割され処理される。つまり、QoSマネージャ901は、クライアント902、922、923、…92nからのリクエストを、リクエストのサイズの変化や優先度に関係なく、先着順で順番に処理する必要がある代わりに、システム900は、リクエストを順番に処理する必要を有利に防ぐ。例えば、応答が提供される前に、最後のクライアント(例えば、クライアント92n)が先行クライアントのジョブの完了を待機することをリクエストするのではなく、QoSマネージャ901は、証明書管理サービス980が、後で到着するが過度の遅延なし(すなわち、先行クライアント902、922、923からの大規模なリクエストが実行されるまでにいかに時間がかかろうとも、数時間または数日)に完了されるべき、クライアント92nからのより小規模なリクエストを実行することを可能にする。
【0139】
図10は、本発明の実施形態に整合する、複数のクライアントキュー1003、1007、1009、…101nとQoSマネージャを使用するCMS1080との間の例示的なデータフローを示すデータフロー図である。簡潔にするために、
図7と比較したときに
図10内で生じる違いのみを以下に説明する。
【0140】
図10に示される例では、CMS1080は、V2X CMSまたはC2X CMSであり得る。特定の実施形態では、CMS1080は、
図9を参照して上述した証明書管理サービス980などの証明書管理サービスをホストすることができる。いくつかの実施形態では、QoSアービターを備えたQoSマネージャ(例えば、
図9を参照して上述したQoSマネージャ901およびQoSアービター904)は、CMS 1080に提出されるn個のクライアントキュー1003、1007、1009、…101nからエントリを選択できる。
【0141】
図10に示すように、CMS1080は、第1のクライアント(例えば、クライアント1)に対するクライアントキュー1003から証明書の大規模なリクエスト1010を受信し、大規模なリクエスト1010に続いて、第2のクライアント(例えば、クライアント2)に対するクライアントキュー1007からの別の大規模なリクエスト1013を受信し、その後、クライアントキュー1009からさらに別の大規模なリクエスト1014が受信される。大規模なリクエスト1010、1013、および1014がCMS1080によって受信された後、比較的少数のコンピュータ化された機器(例えば、50台の車両)の証明書に対する小規模なリクエスト1012がクライアントキュー101nから受信される。いくつかの実施形態では、各々の証明書リクエスト1010、1013、1014、1012には、証明書を必要とするコンピュータ化された機器の数(例えば、大規模リクエスト1010に対して110,000、小規模リクエスト1112に対して50)、特定の証明書リクエストがいつ送信されたかを示すタイムスタンプ(例えば、送信の時、分、秒を示す日付と時刻)、および証明書をリクエストするクライアント(例えば、大規模なリクエスト1010、1011、および1013に対するクライアント1002、1022、および1023、ならびに小規模なリクエスト1012に対するクライアント102nのそれぞれの識別子)を示すデータフィールドが含まれる。
【0142】
図10は、QoSマネージャを備えたCMS1080が複数のリクエスト1010、1012、1013、1014を処理する方法を示している。QoSマネージャおよびそのQoSアービターを使用することにより、後に到着するより小規模なリクエスト1012は、大規模なリクエスト1010、1013、1014が最初に実行されるのを待つことなく実行することができる。すなわち、
図10は、クライアントキュー101nからのより小規模なリクエスト1012が、以前のリクエスト1010、1013、1014のすべてが完了するのを待つ必要がない方法を示している。言い換えると、CMS1080が小規模なリクエスト1012を実行する前に、大規模なリクエスト1010、1013、1014のすべてを完了することに関連する長い連続した計算時間が経過する必要はない。これは、QoSマネージャがリクエスト1010、1012、1013、1014をクライアントキュー1003、1007、1009、…101nに配置される部分に分割することによって実現される。これらの部分は、1つ以上のエントリのサブグループ(つまり、より小さいグループ)であり、1つ以上のエントリの各々は、証明書を必要とするコンピュータ化された機器の数のサブセットに対応するグループサイズを有する。
図10の非限定的な例では、グループサイズは50であり、車両に対して証明書がリクエストされる。代替または追加の実施形態では、グループサイズはデフォルト値が1の調整可能な数値であり、証明書はセキュリティ認証情報を必要とする様々なコンピュータ化された機器用であり得る。
【0143】
図10に示されるように、CMS1080は、クライアント1002からの大規模なリクエスト1010を実行するために必要な証明書のバンドルの第1の部分(例えば、クライアント1のリクエストの部分1)を生成するのに必要な計算を実行する計算時間1015を必要とする。
図10の例では、クライアント1022からの大規模なリクエスト1013の第1の部分(例えば、クライアント2のリクエストの部分1)に移る前に、クライアント1002(例えば、クライアント1)によってリクエストされた証明書のバンドルの部分1のみが生成され、これには計算時間1017が必要である。次に、クライアント1023からの大規模なリクエスト1014の部分1が処理され、これには計算時間1018が必要である。次に、クライアント102nからの小規模なリクエスト1012は、計算時間1016で処理される。QoSマネージャを使用して大規模なリクエストを分割することにより、クライアント102nは、クライアント1002、1022、1023からの大規模なリクエスト1010、1013、1014の部分1が完了する時間量を待つだけでよい。これは、大規模なリクエスト1010、1011、および1013の後に小規模なリクエスト1012が送信されたという事実にもかかわらずである。QoSマネージャを使用しないと(例えば、上述の
図9のQoSマネージャ901を参照)、クライアント102nは、小規模なリクエスト1012が実行される前に完了する大規模なリクエスト1010、1013、1014のすべての部分を待つ必要があるため、小規模なリクエスト1012への応答が提供される前に、長い待機時間を経験するだろう。
【0144】
図10に示すように、クライアント102nは、小規模なリクエスト1012に対する応答を受信する前に、部分1計算時間1015、1017、1018、および1016の合計を待つだけでよい。これは、クライアント102nの待機時間には、大規模なリクエスト1010、1013、1014のすべての部分が完了するのに必要な全計算時間が含まれていないためである。代わりに、クライアント102nは、小規模なリクエスト1012を完了するための計算時間1016に加えて、大規模なリクエスト1010、1013、1014の第1の部分を完了するための比較的小さい計算時間1015、1017、および1018だけ待つ必要がある。つまり、クライアント102nが大規模なリクエスト1010、1011、および1013の後に小規模なリクエスト1012を送信したとしても、待機時間はQoSマネージャが使用されない場合よりもはるかに短くなるだろう。これは、大規模なリクエスト1010、1013、1014を部分に分割するQoSマネージャがなければ、クライアント102nの待機時間は、クライアント1002、1022、1023からの大規模なリクエスト1010、1013、1014を実行するのに必要な組み合わされた計算時間全体と小規模なリクエスト1012が実行されるための計算時間1016との合計になるためである。
図9を参照して上述したQoSマネージャ901の使用なしでは、先に送信された大規模なリクエスト1010、1013、および1014が実行されるのを最初に待つ必要なしに、クライアント102nからの小規模なリクエスト1012が実行される機構は存在しない。つまり、QoSマネージャにより、CMS1080はマルチクライアント環境でQoSレベルを提供できる。
【0145】
次に、小規模なリクエスト1012が実行された後、CMS1080はクライアント1002からの大規模なリクエスト1010の部分2を処理し、これには計算時間1015’を必要とする。次に、クライアント1022からの大規模なリクエスト1013の部分2(例えば、クライアント2のリクエストの部分2)が処理され、これには計算時間1017’を必要とする。次に、クライアント1023からの大規模なリクエスト1014の部分2が処理され、これには計算時間1018’を必要とする。この時点で、クライアント102nからの小規模なリクエスト1012はすでに実行されているため、CMS1080はクライアント1002からの大規模なリクエスト1010の部分3を処理し、これには計算時間1015’’を必要とする。大規模なリクエスト1010、1013、および1014の残りの部分は、これらのリクエストが完了するまでこの方法で処理される。
【0146】
いくつかの実施形態では、QoSアービター(例えば、
図9のQoSアービター904)は、CMS1080によって使用されるQoSキューに配置されるエントリの順序を動的に並べ替えることができる。このようにして、CMS1080が処理するリクエスト部分の順序を動的に変更できる。例えば、QoSマネージャが追加のクライアントからの追加の証明書リクエスト(つまり、新しいクライアントからの小規模なリクエスト1012に続くリクエスト)を受信したことに応答して、エントリの順序を変更できる。さらに、例えば、エントリの順序は、クライアントの優先度レベルおよび/または証明書リクエストで示される証明書リクエストの緊急度に基づくことができる。また、例えば、エントリの順序は、クライアントキュー1003、1007、1009、…101nの各々に割り当てられた動的優先度に基づいて変更でき、クライアントキュー1003、1007、1009、…101nの各々に割り当てられたそれぞれの動的優先度は、クライアントキュー1003、1007、1009、…101nの各々のエントリの数に少なくとも部分的に基づいて、QoSアービターによって割り当てられる。
【0147】
図11は、本発明の実施形態に整合するシステムおよび方法を実装するために使用することができるコンピューティングシステム1100を含む、コンピューティング環境1101の一例のブロック図である。他のコンポーネントおよび/または配置もまた使用することができる。いくつかの実施形態では、コンピューティングシステム1100を使用して、配信機器108、登録局120、連携局150、160、偽名認証局140などの
図1~10の様々なコンポーネント、とりわけ、
図1Aおよび
図1Bの登録認証局130、
図2、
図4、
図6、および
図8の証明書管理サービス280、480、680、880のコンポーネント、
図9のQoSマネージャ901、および
図3、
図5、
図7、および
図10の証明書管理システム(CMS)380、580、780、1080を少なくとも部分的に実装することができる。いくつかの実施形態では、コンピューティングシステム1100と同様の一連のコンピューティングシステムは、それぞれ、専用ハードウェアでカスタマイズされ、および/または
図1~
図10のコンポーネントのうちの1つを実装するための専用サーバとしてプログラムすることができ、これは、ネットワーク1135を介して互いに通信することができる。
【0148】
図11に示す例では、コンピューティングシステム1100は、CPU1105、メモリ1110、入出力(I/O)機器1125、ハードウェアセキュリティモジュール(HSM)1140、および不揮発性ストレージ機器1120などの多くのコンポーネントを含む。システム1100は様々な方法で実装することができる。例えば、(サーバ、ワークステーション、パーソナルコンピュータ、ラップトップなどの)統合プラットフォームとしての実装は、CPU1105、メモリ1110、不揮発性ストレージ1120、およびI/O機器1125を含むことができる。そのような構成では、コンポーネント1105、1110、1120、および1125は、ローカルデータバスを介して接続および通信することができ、外部I/O接続を介して(例えば、別個のデータソースまたはデータベースシステムとして実装される)データリポジトリ1130にアクセスすることができる。I/Oコンポーネント1125は、ローカルエリアネットワーク(LAN)またはワイドエリアネットワーク(WAN、例えば、携帯電話ネットワークまたはインターネット)などのネットワークを介して、および/または他の適切な接続を介して、直接通信リンク(例えば、有線またはローカルのWiFi(登録商標)接続)を介して外部機器に接続することができる。システム1100はスタンドアロンでもよいし、またはより大規模なシステムのサブシステムでもよい。
【0149】
CPU1105は、カリフォルニア州サンタクララのIntel(登録商標)Corporationによって製造されたCore(登録商標)ファミリーのマイクロプロセッサ、またはカリフォルニア州サニーベールのAMD(登録商標)Corporationによって製造されたAthlon(登録商標)ファミリーのマイクロプロセッサなどの1つ以上の既知のプロセッサまたは処理デバイスとすることができる。メモリ1110は、本発明の実施形態に関連する特定の機能、方法、およびプロセスを実行するためにCPU1105によって実行または使用される命令および情報を格納するように構成された1つ以上の高速ストレージデバイスとすることができる。ストレージ1120は、揮発性または不揮発性、磁気、半導体、テープ、光学、または他の種類のストレージデバイス、またはCDおよびDVDなどのデバイスを含むコンピュータ可読媒体、および長期記憶を意図したソリッドステートデバイスとすることができる。
【0150】
図示の実施形態では、メモリ1110は、CPU1105によって実行されたときに、本発明に整合する様々な動作、手順、プロセス、または方法を実行する、ストレージ1120からまたはリモートシステム(図示せず)からロードされた1つ以上のプログラムまたはアプリケーション1115を含む。あるいはまた、CPU1105は、システム1100から遠隔に位置する1つ以上のプログラムを実行することができる。例えば、システム1100は、実行時に本発明の実施形態に関連する機能およびプロセスを実行する、ネットワーク1135を介して1つ以上のリモートプログラムにアクセスすることができる。
【0151】
特定の実施形態では、メモリ1110は、登録局120、配信機器108、証明書管理サービス280、480、680、880、CMS380、580、780、1080、QoSマネージャ801、901、および/またはQoSアービター904を備えたCMSホストについて本明細書で説明する特殊な機能および動作を実行するためのプログラム1115を含むことができる。いくつかの実施形態では、メモリ1110は、本発明に補助機能を提供する他の方法およびプロセスを実装する他のプログラムまたはアプリケーションも含むことができる。
【0152】
メモリ1110はまた、本発明とは無関係の他のプログラム(図示せず)および/またはCPU1105によって実行されると当該技術分野で周知のいくつかの機能を実行するオペレーティングシステム(図示せず)で構成することもできる。例として、オペレーティングシステムは、Microsoft Windows(登録商標)、Unix(登録商標)、Linux(登録商標)、Apple Computers(登録商標)オペレーティングシステム、または他のオペレーティングシステムとすることができる。オペレーティングシステムの選択、さらにはオペレーティングシステムの使用にとっても、本発明にとって重要ではない。
【0153】
HSM1140は、デジタルセキュリティ資産を安全に生成および格納し、および/または様々な暗号および機密計算を安全に実行する、それ自身のプロセッサを有する機器とすることができる。HSM1140は、暗号鍵などのデジタルセキュリティ資産とその他の機密データを可能性のある攻撃者によるアクセスから保護する。いくつかの実施形態では、HSMは、コンピューティングシステム1100に直接取り付けられたプラグインカードまたはボードとすることができる。
【0154】
I/O機器1125は、システム1100によってデータを受信および/または送信することを可能にする1つ以上の入出力機器を含むことができる。例えば、I/O機器1125は、データがユーザから入力されることを可能にする(例えば、キーボード、タッチスクリーン、マウスなどの)1つ以上の入力機器を含むことができる。さらに、I/O機器1125は、データを出力するまたはユーザに提示することを可能にする(例えば、ディスプレイスクリーン、CRTモニタ、LCDモニタ、プラズマディスプレイ、プリンタ、スピーカ機器などの)1つ以上の出力機器を含むことができる。I/O機器1125はまた、コンピューティングシステム1100が他のマシンおよび機器と(例えば、デジタルで)通信することを可能にする1つ以上のデジタルおよび/またはアナログ通信入出力機器を含むことができる。他の構成および/またはいくつかの入力機器および/または出力機器をI/O機器1125に組み込むことができる。
【0155】
図示の実施形態では、システム1100はネットワーク1135(例えば、インターネット、プライベートネットワーク、仮想プライベートネットワーク、携帯電話ネットワーク、または他のネットワーク、あるいはこれらの組み合わせ)に接続され、ネットワーク1135は次いで、様々なシステムおよびコンピューティングマシン(例えば、サーバ、パーソナルコンピュータ、ラップトップコンピュータ、クライアント機器など)に接続することができる。一般的に、システム1100は、ネットワーク1135を介して外部のマシンおよび機器からデータを入力し、外部のマシンおよび機器にデータを出力することができる。
【0156】
図11に示す例示的な実施形態では、リポジトリ1130は、システム1100の外部にあるスタンドアロンデータソース(例えば、データベース)である。他の実施形態では、リポジトリ1130は、システム1100によってホストされ得る。様々な実施形態では、リポジトリ1130は、本発明と一致したシステムおよび方法を実装するために使用されるデータを管理および格納することができる。例えば、リポジトリ1130は、配信機器108などによってプロビジョニングされた証明書を有する各コンピュータ化された機器のステータスおよびログ情報を含むデータ構造を管理および保存することができる。
【0157】
リポジトリ1130は、情報を記憶し、システム1100を通じてアクセスおよび/または管理される1つ以上のデータベースを含むことができる。例として、リポジトリ1130は、Oracle(登録商標)データベース、Sybase(登録商標)データベース、または他のリレーショナルデータベースとすることができる。しかしながら、本発明によるシステムおよび方法は、別々のデータ構造またはデータベースに、あるいはデータベースまたはデータ構造の使用にさえ限定されない。
【0158】
当業者であれば、
図11のシステムのコンポーネントおよび実装の詳細は、説明を簡潔かつ明確にするために提示された例であることを理解するであろう。他のコンポーネントおよび実装の詳細が使用されてもよい。
【0159】
前述の例は、説明を明確にするために、OBU、ECU、およびRSUなどのコンピュータ化された機器の特定の例を使用しているが、本発明はそれらの特定の例に限定されない。本発明に整合する様々な実施形態は、とりわけ、医療機器(例えば、透析機、注入ポンプなど)、ロボット、ドローン、自律走行車、無線通信モジュール(例えば、埋め込み型ユニバーサル集積回路カード(eUICC))などの多種多様なコンピュータ化された機器と共に、およびそれらのために使用することができる。
【0160】
本明細書で説明されるアプリケーションの様々な動作は、少なくとも部分的に、1つ以上のVMによって実行され得る。追加または代替の実施形態では、本明細書で説明されるアプリケーションの動作は、関連する動作を実行するように(例えば、ソフトウェアによって)一時的に構成されるまたは恒久的に構成される1つ以上のプロセッサによって少なくとも部分的に実行され得る。一時的または永続的に構成されているかどうかにかかわらず、そのようなプロセッサは、本明細書で説明される1つ以上のアプリケーションの動作、機能、および役割を実行するように動作するプロセッサ実装モジュールを構成し得る。本明細書で使用されるとき、「プロセッサ実装モジュール」という用語は、1つ以上のプロセッサを使用して実装されるハードウェアモジュールを指す。
【0161】
同様に、本明細書で説明される方法は、ハードウェアの一例である特定の1つまたは複数のプロセッサで、少なくとも部分的にプロセッサ実装することができる。例えば、方法の動作の少なくともいくつかは、1つ以上のプロセッサまたはプロセッサ実装モジュールによって実行され得る。さらに、1つ以上のプロセッサはまた、「クラウドコンピューティング」環境における、または「サービスとしてのソフトウェア」(SaaS:software as a service)としての関連動作のパフォーマンスをサポートするように動作し得る。例えば、動作の少なくとも一部は、(プロセッサを含むマシンの例として)コンピュータのグループによって実行され、これらの動作はネットワーク(例えば、インターネット)および1つ以上の適切なインターフェイス(例えば、API)を介してアクセスできる。
【0162】
特定の動作のパフォーマンスは、単一のマシン内にあるだけでなく、多数のマシンに展開されるプロセッサ間で分散され得る。いくつかの例示的な実施形態では、プロセッサまたはプロセッサ実装モジュールは、単一の地理的位置(例えば、オフィス環境、製造環境、またはサーバファーム内)に配置され得る。他の例示的な実施形態では、プロセッサまたはプロセッサ実装モジュールは、いくつかの地理的位置にわたって分散され得る。
【0163】
本発明の他の実施形態は、本明細書の考察および本明細書に開示された本発明の実施から当業者には明らかであろう。明細書および実施例は例示としてのみ考慮されることを意図しており、本発明の真の範囲は以下の特許請求の範囲によって示される。