(57)【要約】拡張可能な証明書管理システムアーキテクチャ。例示的なシステムは、登録局を実行し、登録局によって要求される暗号計算を遂行する１つ以上の計算エンジンへ通信可能なように接続された、１つ以上のアプリケーションプラットフォーム（例えば、ＶＭ）を含んでよい。システムはまた、加入証明書局を実行し、加入証明書局によって要求される暗号計算を遂行する１つ以上の計算エンジンへ通信可能なように接続された、１つ以上のアプリケーションプラットフォームを含んでよい。システムは、匿名証明書局を実行し、匿名証明書局によって要求される暗号計算を遂行する１つ以上の計算エンジンへ通信可能なように接続された、１つ以上のアプリケーションプラットフォームをさらに含んでよい。システムはまた、第１及び第２の結合局を実行し、結合局によって要求される暗号計算を遂行する１つ以上の計算エンジンへ通信可能なように接続された、１つ以上のアプリケーションプラットフォームを含んでよい。【選択図】図１
2021530169.tif 000002
【特許請求の範囲】
【請求項１】
プロビジョニングコントローラに証明書をセキュアに提供する拡張可能な証明書管理システムであって、前記証明書管理システムが、
登録局アプリケーションを実行し、前記登録局アプリケーションによって要求される暗号計算を遂行する１つ以上の計算エンジンへ通信可能なように接続された、１つ以上のアプリケーションプラットフォームと、
加入証明書局アプリケーションを実行し、前記加入証明書局アプリケーションによって要求される暗号計算を遂行する１つ以上の計算エンジンへ通信可能なように接続された、１つ以上のアプリケーションプラットフォームであって、前記加入証明書局アプリケーションが加入証明書を生成して前記登録局アプリケーションへ条件付きで送信する働きをする、１つ以上のアプリケーションプラットフォームと、
匿名証明書局アプリケーションを実行し、前記匿名証明書局アプリケーションによって要求される暗号計算を遂行する１つ以上の計算エンジンへ通信可能なように接続された、１つ以上のアプリケーションプラットフォームであって、前記匿名証明書局アプリケーションが匿名証明書を生成して前記登録局アプリケーションへ条件付きで送信する働きをする、１つ以上のアプリケーションプラットフォームと、
第１の結合局アプリケーションを実行し、前記第１の結合局アプリケーションによって要求される暗号計算を遂行する１つ以上の計算エンジンへ通信可能なように接続された、１つ以上のアプリケーションプラットフォームと、
第２の結合局アプリケーションを実行し、前記第２の結合局アプリケーションによって要求される暗号計算を遂行する１つ以上の計算エンジンへ通信可能なように接続された、１つ以上のアプリケーションプラットフォームであって、前記第１の結合局アプリケーションと前記第２の結合局アプリケーションが結合値を生成して前記登録局アプリケーションへ条件付きで送信する働きをする、１つ以上のアプリケーションプラットフォームとを備える、証明書管理システム。
【請求項２】
前記証明書管理システムが、前記登録局アプリケーションを実行する前記１つ以上のアプリケーションプラットフォーム、前記加入証明書局アプリケーションを実行する前記１つ以上のアプリケーションプラットフォーム、前記匿名証明書局アプリケーションを実行する前記１つ以上のアプリケーションプラットフォーム、前記第１の結合局アプリケーションを実行する前記１つ以上のアプリケーションプラットフォーム、及び前記第２の結合局アプリケーションを実行する前記１つ以上のアプリケーションプラットフォームへ動作可能なように接続された１つ以上のデータベースをさらに備える、請求項１に記載の証明書管理システム。
【請求項３】
前記登録局アプリケーション、前記加入証明書局アプリケーション、前記匿名証明書局アプリケーション、前記第１の結合局アプリケーション、前記第２の結合局アプリケーション、及び前記１つ以上のデータベースの各々が、互いに独立して拡張される働きをする、請求項２に記載の証明書管理システム。
【請求項４】
前記加入証明書局アプリケーションが、前記登録局アプリケーションから加入証明書の要求を受信したことに応答して加入証明書を生成する働きをし、
前記加入証明書局アプリケーションが、前記登録局アプリケーションから匿名証明書の要求を受信したことに応答して匿名証明書を生成する働きをし、
前記第１の結合局アプリケーションと前記第２の結合局アプリケーションが、前記登録局アプリケーションから結合値の要求を受信したことに応答して結合値を生成する働きをする、
請求項１に記載の証明書管理システム。
【請求項５】
前記登録局アプリケーション、前記加入証明書局アプリケーション、前記匿名証明書局アプリケーション、前記第１の結合局アプリケーション、及び前記第２の結合局アプリケーションの各々が、複数のメッセージキューを備えるメッセージキューイングサービスによって互いに通信可能なように接続される、請求項１に記載の証明書管理システム。
【請求項６】
前記加入証明書局アプリケーションを実行する前記１つ以上のアプリケーションプラットフォームが、第１の複数のメッセージキューによって、前記加入証明書局アプリケーションによって要求される前記暗号計算を遂行する前記１つ以上の計算エンジンへ通信可能なように接続された１つ以上の仮想マシンであり、
前記第１の結合局アプリケーションを実行する前記１つ以上のアプリケーションプラットフォームが、第２の複数のメッセージキューによって、前記第１の結合局アプリケーションによって要求される前記暗号計算を遂行する前記１つ以上の計算エンジンへ通信可能なように接続された１つ以上の仮想マシンであり、
前記第２の結合局アプリケーションを実行する前記１つ以上のアプリケーションプラットフォームが、第３の複数のメッセージキューによって、前記第２の結合局アプリケーションによって要求される前記暗号計算を遂行する前記１つ以上の計算エンジンへ通信可能なように接続された１つ以上の仮想マシンである、
請求項１に記載の証明書管理システム。
【請求項７】
前記第１の複数のメッセージキューが、
前記加入証明書局アプリケーションを実行する前記１つ以上の仮想マシンへ送付されるメッセージを入れる第１のメッセージキューと、
前記加入証明書局アプリケーションによって要求される前記暗号計算を遂行する前記１つ以上の計算エンジンへ送付されるメッセージを入れる第２のメッセージキューとを備え、
前記第２の複数のメッセージキューが、
前記第１の結合局アプリケーションを実行する前記１つ以上の仮想マシンへ送付されるメッセージを入れる第３のメッセージキューと、
前記第１の結合局アプリケーションによって要求される前記暗号計算を遂行する前記１つ以上の計算エンジンへ送付されるメッセージを入れる第４のメッセージキューとを備え、
前記第３の複数のメッセージキューが、
前記第２の結合局アプリケーションを実行する前記１つ以上の仮想マシンへ送付されるメッセージを入れる第５のメッセージキューと、
前記第２の結合局アプリケーションによって要求される前記暗号計算を遂行する前記１つ以上の計算エンジンへ送付されるメッセージを入れる第６のメッセージキューとを備える、
請求項６に記載の証明書管理システム。
【請求項８】
前記第１の複数のメッセージキューが、
前記加入証明書局アプリケーションを実行する前記１つ以上の仮想マシンへ送付されるメッセージと、前記１つ以上の仮想マシンから送信されるメッセージとを入れる第１の双方向メッセージキューと、
前記加入証明書局アプリケーションによって要求される前記暗号計算を遂行する前記１つ以上の計算エンジンへ送付されるメッセージと、前記１つ以上の計算エンジンから送信されるメッセージとを入れる第２の双方向メッセージキューとを備え、
前記第２の複数のメッセージキューが、
前記第１の結合局アプリケーションを実行する前記１つ以上の仮想マシンへ送付されるメッセージと、前記１つ以上の仮想マシンから送信されるメッセージとを入れる第３の双方向メッセージキューと、
前記第１の結合局アプリケーションによって要求される前記暗号計算を遂行する前記１つ以上の計算エンジンへ送付されるメッセージと、前記１つ以上の計算エンジンから送信されるメッセージとを入れる第４の双方向メッセージキューとを備え、
前記第３の複数のメッセージキューが、
前記第２の結合局アプリケーションを実行する前記１つ以上の仮想マシンへ送付されるメッセージと、前記１つ以上の仮想マシンから送信されるメッセージとを入れる第５の双方向メッセージキューと、
前記第２の結合局アプリケーションによって要求される前記暗号計算を遂行する前記１つ以上の計算エンジンへ送付されるメッセージと、前記１つ以上の計算エンジンから送信されるメッセージとを入れる第６の双方向メッセージキューとを備える、
請求項６に記載の証明書管理システム。
【請求項９】
前記加入証明書局アプリケーションを実行する前記１つ以上のアプリケーションプラットフォームが、第１のロードバランサによって、前記加入証明書局アプリケーションによって要求される前記暗号計算を遂行する前記１つ以上の計算エンジンへ通信可能なように接続され、
前記第１の結合局アプリケーションを実行する前記１つ以上のアプリケーションプラットフォームが、第２のロードバランサによって、前記第１の結合局アプリケーションによって要求される前記暗号計算を遂行する前記１つ以上の計算エンジンへ通信可能なように接続され、
前記第２の結合局アプリケーションを実行する前記１つ以上のアプリケーションプラットフォームが、第３のロードバランサによって、前記第２の結合局アプリケーションによって要求される前記暗号計算を遂行する前記１つ以上の計算エンジンへ通信可能なように接続される、
請求項１に記載の証明書管理システム。
【請求項１０】
前記第１のロードバランサ、前記第２のロードバランサ、及び前記第３のロードバランサが各々、ロードバランサ仮想マシンとロードバランササーバのいずれか１つ以上を備え、
前記ロードバランサ仮想マシンと前記ロードバランササーバが各々、複数のアプリケーションプラットフォームと複数の計算エンジンにわたって作業負荷を分散するように構成される、
請求項９に記載の証明書管理システム。
【請求項１１】
前記ロードバランサ仮想マシンと前記ロードバランササーバが各々、ラウンドロビン手法を用いて、前記複数のアプリケーションプラットフォームと前記複数の計算エンジンにわたって作業負荷を分散するように構成される、請求項１０に記載の証明書管理システム。
【請求項１２】
前記ロードバランサ仮想マシンと前記ロードバランササーバが、前記複数のアプリケーションプラットフォームの各々と前記複数の計算エンジンの各々によって報告されるそれぞれの作業負荷に基づいて、前記複数のアプリケーションプラットフォームと前記複数の計算エンジンにわたって作業負荷を分散するように各々構成される、請求項１０に記載の証明書管理システム。
【請求項１３】
前記プロビジョニングコントローラが、
コンピュータ化装置の代わりに、加入証明書の要求を前記登録局アプリケーションへ送信し、
前記加入証明書局アプリケーションによって生成される前記加入証明書を前記登録局アプリケーションから受信し、
前記加入証明書を前記コンピュータ化装置へ送信し、
前記コンピュータ化装置の代わりに、複数の匿名証明書の要求を前記登録局アプリケーションへ送信し、
前記匿名証明書局アプリケーションによって生成される前記複数の匿名証明書を前記登録局アプリケーションから受信し、
前記複数の匿名証明書を前記コンピュータ化装置へ送信し、
前記コンピュータ化装置に関連するログを作成及び保守し、かつ
前記コンピュータ化装置の証明書活動に関する情報を保存する働きをする、
請求項１に記載の証明書管理システム。
【請求項１４】
前記証明書管理システムがさらに、前記コンピュータ化装置に関係する証明書活動に関する情報を、前記ログに保存するため前記プロビジョニングコントローラへ送信する働きをする、請求項１３に記載の証明書管理システム。
【請求項１５】
前記プロビジョニングコントローラがさらに、前記加入証明書の前記要求を前記登録局アプリケーションへ送信する前に、前記コンピュータ化装置を認証する働きをする、請求項１３に記載の証明書管理システム。
【請求項１６】
加入証明書が公開鍵証明書であり、前記公開鍵証明書が、前記公開鍵証明書のホルダを、複数のコンピュータ化装置を含むエコシステム内の認可されたパーティシパントとして識別し、前記エコシステム内の認可された各パーティシパントが、前記複数のコンピュータ化装置との通信を可能にする１つ以上の匿名証明書を受け取ることができる、請求項１に記載の証明書管理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
（関連出願の相互参照）
本願は、いずれも参照により全文が本願に援用される、２０１６年１１月１４日に出願された米国仮出願第６２／４２１，８７８号、２０１６年１１月１４日に出願された米国仮出願第６２／４２１，８５２号、及び２０１７年４月２０日に出願された米国仮出願第６２／４８７，９０９号の利益を主張する２０１７年１１月１４に出願された米国出願第１５／８１２，５１０号の一部継続出願である。
【０００２】
本発明は、コンピュータ化装置のセキュアなプロビジョニングのためのシステム、装置、及び方法に関する。
【背景技術】
【０００３】
コンピュータの小型化とコモディティ化が進むにつれ、製造業者は、１つ以上の組込み型コンピュータ又はプロセッサを内蔵した様々な装置をますます多く製造している。コンピュータ化装置内のコンピュータは、とりわけ、装置の動作を制御でき、データを収集、保存、及び共有でき、他のコンピュータや他のコンピュータ化装置と通信でき、自身のソフトウェアを更新できる。
【０００４】
モノのインターネット（ＩｏＴ）は、組込み型のプロセッサ、電子回路、ソフトウェア、データ、センサー、アクチュエータ、及び／又はネットワーク接続機能を有するコンピュータ化された物理的装置から成るネットワークであり、これらの装置は、ネットワーク接続機能によって、インターネット、セルラーネットワーク、他の無線ネットワークをはじめとするデジタルネットワークを通じて接続し、データをやり取りすることができる。通常、それぞれの「モノ」は、各自の組込み型コンピューティングシステムで一意的に識別可能であり、既存のインターネットインフラの中で相互動作することができる。
【０００５】
ＩｏＴの意味での「モノ」は、とりわけ民生用電化製品、仕事や会社で利用される業務用装置、製造機械、耕作機械、家屋や建物内のエネルギー消費装置（スイッチ、コンセント、電気器具、照明システム、電球、テレビ、ガレージドアオープナー、スプリンクラーシステム、防犯システムなど）、医療・ヘルスケア用装置、インフラ管理装置、ロボット、ドローン、輸送用装置・車両など、様々なコンピュータ化装置を指し得る。
【０００６】
例えば、全てでないにしろ、ほとんどの、現代の車両や輸送用機械（例えば、自動車、トラック、航空機、電車、船、オートバイ、スクーターなど）は、そのサブシステムに数個の組込み型プロセッサや組込み型コンピュータを内蔵しており、少なくとも部分的にはコンピュータ制御される。同様に、現代の交通インフラ装置（例えば、信号機、交通監視カメラ、交通センサー、橋監視装置、橋制御システム、及び同類のもの）の多くは、少なくとも１つの、多くの場合は多数の、組込み型プロセッサや組込み型コンピュータシステムを内蔵し、少なくとも部分的にはコンピュータ制御される。これらの輸送網のコンピュータ制御される要素は通常、様々な種類の情報をやり取りしながら互いに通信し、これらの要素は、反応でき、応答でき、自身の動作を変えることができ、あるいは、安全で正確で効率的で信頼性のある動作に対してビークル・ツー・ビークル（すなわちＶ２Ｖ、Ｃ２Ｃすなわちカー・ツー・カーの別名でも知られる）通信で他の車両を相手に送受信される情報に、及び／又はビークル・ツー・インフラストラクチャ（すなわちＶ２Ｉ、Ｃ２Ｉすなわちカー・ツー・インフラストラクチャの別名でも知られる）通信でインフラ要素を相手に送受信される情報に、頼ることができる。
【０００７】
コンピュータ化装置内のコンピュータは、自身のソフトウェア及び／又はファームウェアとデータに従って動作する。安全で適正な動作を徹底するには、製造業者が意図する適切なソフトウェア、ファームウェア、実行可能命令、デジタル証明書（例えば、公開鍵証明書）、暗号鍵など（これ以降「デジタルアセット」又は「ソフトウェア」と総称する）でコンピュータ化装置の初期化と更新を適切に行う必要があるため、ＩｏＴは、認可され良好であることが判明しているソフトウェアとデータを実行する装置のみから構成されている。しかし、権限を持たない人や組織（例えば、ハッカー）がコンピュータ化装置のソフトウェアを交換したり変更したりすると問題が生じる。古いソフトウェア、試験されていないソフトウェア、承認されていないソフトウェア、及び／又はバグが判明しているソフトウェアがコンピュータ化装置にインストールされる場合にも問題が生じる。
【０００８】
したがって、エラーが多いソフトウェア及びデータ、不適切に機能するソフトウェア及びデータ、試験されていないソフトウェア及びデータ、悪意を持って改変されたソフトウェア及びデータ、あるいは望ましくないソフトウェア及びデータを使用してコンピュータ化装置が動作するのを防ぐため、コンピュータ化装置でデジタルアセットをセキュアにプロビジョニングする改善されたシステム、方法、及び技法を提供することが望ましい。
【発明の概要】
【０００９】
本明細書では、セキュリティクレデンシャルやデジタル証明書といったある種のデジタルアセットをセキュアに生成して提供するシステム、方法、及び装置が開示される。様々な実装において、該システム、方法、及び装置は、拡張可能な証明書管理システム（ＣＭＳ）を使用して、セキュリティクレデンシャルや公開鍵証明書といったある種のデジタルアセットを作成し、提供する。一部の実装において、ＣＭＳは、加入証明書や匿名証明書といった証明書を求める要求に応答してかかる証明書を提供する。
【００１０】
様々な実装において、ＣＭＳは、登録局と、１つ以上の結合局と、匿名証明書局と、加入証明書局とを含む拡張可能なアーキテクチャを有する。例示的ＣＭＳは、登録局アプリケーションを実行し、登録局アプリケーションによって要求される暗号計算を遂行する１つ以上の計算エンジンへ通信可能なように接続された、１つ以上のアプリケーションプラットフォームを含んでよい。１つ以上のアプリケーションプラットフォームは、１つ以上の仮想マシン（ＶＭ）、又は１つ以上のハードウェアプラットフォーム（例えば、サーバ、コンピュータ、又はソフトウェアアプリケーションをホストして実行できる他のコンピュータハードウェア）を含んでよい。システムはまた、加入証明書局を実行し、加入証明書局によって要求される暗号計算を遂行する１つ以上の計算エンジンへ通信可能なように接続された、１つ以上のＶＭを含んでよい。加入証明書局アプリケーションは、加入証明書を生成して登録局アプリケーションへ条件付きで送信する働きをする。例示的ＣＭＳはさらに、匿名証明書局アプリケーションを実行し、匿名証明書局によって要求される暗号計算を遂行する１つ以上の計算エンジンへ通信可能なように接続された、１つ以上のＶＭを含んでよい。匿名証明書局アプリケーションは、匿名証明書を生成して登録局アプリケーションへ条件付きで送信する働きをする。ＣＭＳシステムはまた、第１及び第２の結合局を実行し、第１及び第２の結合局によって要求される暗号計算を遂行する１つ以上の計算エンジンへ通信可能なように接続された、１つ以上のＶＭを含んでよい。第１の結合局アプリケーションと第２の結合局アプリケーションは、結合値を生成して登録局アプリケーションへ条件付きで送信する働きをする。
【００１１】
一部の実装において、プロビジョニングコントローラに証明書をセキュアに提供する拡張可能なＣＭＳは、登録局アプリケーションを実行し、登録局アプリケーションによって要求される暗号計算を遂行する１つ以上の計算エンジンへ通信可能なように接続された、１つ以上のアプリケーションプラットフォームと、加入証明書局アプリケーションを実行し、加入証明書局アプリケーションによって要求される暗号計算を遂行する１つ以上の計算エンジンへ通信可能なように接続された、１つ以上のアプリケーションプラットフォームであって、加入証明書局アプリケーションが加入証明書を生成して登録局アプリケーションへ条件付きで送信する働きをしてよい、１つ以上のアプリケーションプラットフォームと、匿名証明書局アプリケーションを実行し、匿名証明書局アプリケーションによって要求される暗号計算を遂行する１つ以上の計算エンジンへ通信可能なように接続された、１つ以上のアプリケーションプラットフォームであって、匿名証明書局アプリケーションが匿名証明書を生成して登録局アプリケーションへ条件付きで送信する働きをしてよい、１つ以上のアプリケーションプラットフォームと、第１の結合局アプリケーションを実行し、第１の結合局アプリケーションによって要求される暗号計算を遂行する１つ以上の計算エンジンへ通信可能なように接続された、１つ以上のアプリケーションプラットフォームと、第２の結合局アプリケーションを実行し、第２の結合局アプリケーションによって要求される暗号計算を遂行する１つ以上の計算エンジンへ通信可能なように接続された、１つ以上のアプリケーションプラットフォームとを含む。結合局アプリケーションは、結合値を生成して登録局アプリケーションへ条件付きで送信する働きをする。
【００１２】
別の実装において、ＣＭＳは、登録局アプリケーションを実行する１つ以上のアプリケーションプラットフォーム、加入証明書局アプリケーションを実行する１つ以上のアプリケーションプラットフォーム、匿名証明書局アプリケーションを実行する１つ以上のアプリケーションプラットフォーム、第１の結合局アプリケーションを実行する１つ以上のアプリケーションプラットフォーム、及び第２の結合局アプリケーションを実行する１つ以上のアプリケーションプラットフォームへ動作可能なように接続された１つ以上のデータベースをさらに含んでよい。
【００１３】
さらに別の実装において、登録局アプリケーション、加入証明書局アプリケーション、匿名証明書局アプリケーション、第１の結合局アプリケーション、第２の結合局アプリケーション、及び１つ以上のデータベースの各々は、互いに独立して拡張されるよう動作可能である。
【００１４】
さらに別の実装において、加入証明書局アプリケーションは、登録局アプリケーションから加入証明書の要求を受信したことに応答して加入証明書を生成する働きをしてよく、加入証明書局アプリケーションは、登録局アプリケーションから匿名証明書の要求を受信したことに応答して匿名証明書を生成する働きをしてよく、第１の結合局アプリケーションと第２の結合局アプリケーションは、登録局アプリケーションから結合値の要求を受信したことに応答して結合値を生成する働きをしてよい。
【００１５】
一部の実装において、登録局アプリケーション、加入証明書局アプリケーション、匿名証明書局アプリケーション、第１の結合局アプリケーション、及び第２の結合局アプリケーションの各々は、複数のメッセージキューを備えるメッセージキューイングサービスによって互いに通信可能なように接続されてよい。
【００１６】
いくつかの実装において、加入証明書局アプリケーションを実行する１つ以上のアプリケーションプラットフォームは、第１の複数のメッセージキューによって、加入証明書局アプリケーションによって要求される暗号計算を遂行する１つ以上の計算エンジンへ通信可能なように接続された１つ以上の仮想マシンであり、第１の結合局アプリケーションを実行する１つ以上のアプリケーションプラットフォームは、第２の複数のメッセージキューによって、第１の結合局アプリケーションによって要求される暗号計算を遂行する１つ以上の計算エンジンへ通信可能なように接続された１つ以上の仮想マシンであり、第２の結合局アプリケーションを実行する１つ以上のアプリケーションプラットフォームは、第３の複数のメッセージキューによって、第２の結合局アプリケーションによって要求される暗号計算を遂行する１つ以上の計算エンジンへ通信可能なように接続された１つ以上の仮想マシンである。
【００１７】
第１、第２、及び第３の複数のメッセージキューを有するいくつかの実装によると、第１の複数のメッセージキューは、加入証明書局アプリケーションを実行する１つ以上の仮想マシンへ送付されるメッセージを入れる第１のメッセージキューと、加入証明書局アプリケーションによって要求される暗号計算を遂行する１つ以上の計算エンジンへ送付されるメッセージを入れる第２のメッセージキューとを含み、第２の複数のメッセージキューは、第１の結合局アプリケーションを実行する１つ以上の仮想マシンへ送付されるメッセージを入れる第３のメッセージキューと、第１の結合局アプリケーションによって要求される暗号計算を遂行する１つ以上の計算エンジンへ送付されるメッセージを入れる第４のメッセージキューとを備え、第３の複数のメッセージキューは、第２の結合局アプリケーションを実行する１つ以上の仮想マシンへ送付されるメッセージを入れる第５のメッセージキューと、第２の結合局アプリケーションによって要求される暗号計算を遂行する１つ以上の計算エンジンへ送付されるメッセージを入れる第６のメッセージキューとを備える。
【００１８】
第１、第２、及び第３の複数のメッセージキューを有する別の実装において、第１の複数のメッセージキューは、加入証明書局アプリケーションを実行する１つ以上の仮想マシンへ送付されるメッセージと、該１つ以上の仮想マシンから送信されるメッセージとを入れる第１の双方向メッセージキューと、加入証明書局アプリケーションによって要求される暗号計算を遂行する１つ以上の計算エンジンへ送付されるメッセージと、該１つ以上の計算エンジンから送信されるメッセージとを入れる第２の双方向メッセージキューとを備え、第２の複数のメッセージキューは、第１の結合局アプリケーションを実行する１つ以上の仮想マシンへ送付されるメッセージと、該１つ以上の仮想マシンから送信されるメッセージとを入れる第３の双方向メッセージキューと、第１の結合局アプリケーションによって要求される暗号計算を遂行する１つ以上の計算エンジンへ送付されるメッセージと、該１つ以上の計算エンジンから送信されるメッセージとを入れる第４の双方向メッセージキューとを備え、第３の複数のメッセージキューは、第２の結合局アプリケーションを実行する１つ以上の仮想マシンへ送付されるメッセージと、該１つ以上の仮想マシンから送信されるメッセージとを入れる第５の双方向メッセージキューと、第２の結合局アプリケーションによって要求される暗号計算を遂行する１つ以上の計算エンジンへ送付されるメッセージと、該１つ以上の計算エンジンから送信されるメッセージとを入れる第６の双方向メッセージキューとを備える。
【００１９】
ＣＭＳの別の実装において、加入証明書局アプリケーションを実行する１つ以上のアプリケーションプラットフォームは、第１のロードバランサによって、加入証明書局アプリケーションによって要求される暗号計算を遂行する１つ以上の計算エンジンへ通信可能なように接続され、第１の結合局アプリケーションを実行する１つ以上のアプリケーションプラットフォームは、第２のロードバランサによって、第１の結合局アプリケーションによって要求される暗号計算を遂行する１つ以上の計算エンジンへ通信可能なように接続され、第２の結合局アプリケーションを実行する１つ以上のアプリケーションプラットフォームは、第３のロードバランサによって、第２の結合局アプリケーションによって要求される暗号計算を遂行する１つ以上の計算エンジンへ通信可能なように接続される。
【００２０】
第１、第２、及び第３のロードバランサを含むＣＭＳのいくつかの実装において、ロードバランサの各々は、ロードバランサ仮想マシンとロードバランササーバのいずれか１つ以上を各々備えてよく、ロードバランサ仮想マシンとロードバランササーバは各々、複数のアプリケーションプラットフォームと複数の計算エンジンにわたって作業負荷を分散するように構成される。
【００２１】
ロードバランサ仮想マシンとロードバランササーバとを有する別の実装において、ロードバランサ仮想マシンとロードバランササーバは各々、ラウンドロビン手法を用いて、複数のアプリケーションプラットフォームと複数の計算エンジンにわたって作業負荷を分散するように構成される。
【００２２】
ロードバランサ仮想マシンとロードバランササーバとを含むさらに別の実装において、ロードバランサ仮想マシンとロードバランササーバは各々、複数のアプリケーションプラットフォームの各々と複数の計算エンジンの各々によって報告されるそれぞれの作業負荷に基づいて、複数のアプリケーションプラットフォームと複数の計算エンジンにわたって作業負荷を分散するように構成される。
【００２３】
様々な実装において、プロビジョニングコントローラは、コンピュータ化装置の代わりに、加入証明書の要求を登録局アプリケーションへ送信し、加入証明書局アプリケーションによって生成され得る加入証明書を登録局アプリケーションから受信し、加入証明書をコンピュータ化装置へ送信し、コンピュータ化装置の代わりに、複数の匿名証明書の要求を登録局アプリケーションへ送信し、匿名証明書局アプリケーションによって生成され得る複数の匿名証明書を登録局アプリケーションから受信し、複数の匿名証明書をコンピュータ化装置へ送信し、コンピュータ化装置に関連するログを作成及び保守し、かつコンピュータ化装置の証明書活動に関する情報を保存する働きをしてよい。
【００２４】
プロビジョニングコントローラがログを作成及び保守する働きをし得る一部の実装において、プロビジョニングコントローラはさらに、コンピュータ化装置に関係する証明書活動に関する情報を、ログに保存するためプロビジョニングコントローラへ送信する働きをしてよい。
【００２５】
プロビジョニングコントローラが加入証明書の要求を登録局アプリケーションへ送信する働きをし得るいくつかの実装において、プロビジョニングコントローラはさらに、加入証明書の要求を登録局アプリケーションへ送信する前に、コンピュータ化装置を認証する働きをしてよい。
【００２６】
別の実装において、加入証明書は公開鍵証明書であってよく、該公開鍵証明書は、該公開鍵証明書のホルダを、複数のコンピュータ化装置を含むエコシステム内の認可されたパーティシパントとして識別し、エコシステム内の認可された各パーティシパントは、複数のコンピュータ化装置との通信を可能にする１つ以上の匿名証明書を受け取ることもできる。
【００２７】
一部の実装において、１つ以上のコンピュータ化装置をプロビジョニングするシステムは、コンピュータ化装置へ通信可能なように接続され、デジタルアセットを受信してコンピュータ化装置にデジタルアセットを読み込ませる働きをする、ディストリビュータ装置と、第１のセキュアな通信経路を通じてディストリビュータ装置へ接続され、デジタルアセットを生成してディストリビュータ装置へ条件付きで送信する働きをする、デジタルアセット管理システムと、第２のセキュアな通信経路を通じてディストリビュータ装置へ接続され、第３のセキュアな通信経路を通じてデジタルアセット管理システムへ接続され、デジタルアセットをディストリビュータ装置へ送信することをデジタルアセット管理システムに指図する働きをする、プロビジョニングコントローラとを含む。コンピュータ化装置は、デジタルアセットがコンピュータ化装置に読み込まれる前に、デジタルアセットがないため、機能しないか、又は部分的にしか機能しない場合がある。デジタルアセットは、デジタル証明書、暗号鍵、及び実行可能ソフトウェアの少なくともいずれか１つであってよい。いくつかの実装において、システムは、拡張可能なＣＭＳとやり取りでき、あるいは拡張可能なＣＭＳからクレデンシャルを受信できる。
【００２８】
様々な実装において、システムは、第４のセキュアな通信経路を通じてデジタルアセット管理システムへ接続され、ディストリビュータ装置の接続が外された後にコンピュータ化装置へ通信可能なように接続され、第２のデジタルアセットを受信してコンピュータ化装置に第２のデジタルアセットを読み込ませる働きをする、第２のディストリビュータ装置をさらに含んでよく、プロビジョニングコントローラはさらに、第２のデジタルアセットをディストリビュータ装置へ送信することをデジタルアセット管理システムに指図する働きをする。コンピュータ化装置は、第２のデジタルアセットがコンピュータ化装置に読み込まれた後に、完全に機能できる。
【００２９】
様々な実装において、デジタルアセット管理システムは、登録局アプリケーションを実行し、登録局アプリケーションによって要求される暗号計算を遂行する１つ以上の計算エンジンへ通信可能なように接続された、１つ以上のアプリケーションプラットフォームと、加入証明書局アプリケーションを実行し、加入証明書局アプリケーションによって要求される暗号計算を遂行する１つ以上の計算エンジンへ通信可能なように接続された、１つ以上のアプリケーションプラットフォームと、匿名証明書局アプリケーションを実行し、匿名証明書局アプリケーションによって要求される暗号計算を遂行する１つ以上の計算エンジンへ通信可能なように接続された、１つ以上のアプリケーションプラットフォームと、第１の結合局アプリケーションを実行し、第１の結合局アプリケーションによって要求される暗号計算を遂行する１つ以上の計算エンジンへ通信可能なように接続された、１つ以上のアプリケーションプラットフォームと、第２の結合局アプリケーションを実行し、第２の結合局アプリケーションによって要求される暗号計算を遂行する１つ以上の計算エンジンへ通信可能なように接続された、１つ以上のアプリケーションプラットフォームとをさらに含んでよい。
【００３０】
別の実装において、デジタルアセット管理システムは、登録局アプリケーションを実行する１つ以上のアプリケーションプラットフォーム、加入証明書局を実行する１つ以上のアプリケーションプラットフォーム、匿名証明書局アプリケーションを実行する１つ以上のアプリケーションプラットフォームアプリケーション、第１の結合局アプリケーションを実行する１つ以上のアプリケーションプラットフォーム、及び第２の結合局アプリケーションを実行する１つ以上のアプリケーションプラットフォームへ動作可能なように接続された１つ以上のデータベースをさらに含んでよい。
【００３１】
さらに別の実装において、システムは、プロビジョニングコントローラへ動作可能なように接続され、コンピュータ化装置の製造業者を認証し、製造業者がコンピュータ化装置のプロビジョニングを管理できるようにするポータル、及び／又はプロビジョニングコントローラへ動作可能なように接続され、コンピュータ化装置の設置業者を認証し、設置業者がコンピュータ化装置のプロビジョニングを管理できるようにするポータル、及び／又はプロビジョニングコントローラへ動作可能なように接続され、コンピュータ化装置の調整業者を認証し、調整業者がコンピュータ化装置のプロビジョニングを調整できるようにするポータルをさらに含んでよい。
【００３２】
さらに別の実装において、プロビジョニングコントローラはさらに、デジタルアセット（例えば、実行可能ソフトウェアイメージ）を、コンピュータ化装置に読み込ませるため、ディストリビュータ装置へ送信する働きをしてよい。さらに別の実装において、プロビジョニングコントローラはさらに、デジタル装置に関連し、デジタル装置のプロビジョニング活動に関する情報を保存するログを作成及び保守する働きをしてよく、ディストリビュータ装置はさらに、デジタル装置に関係するプロビジョニング活動に関する情報を、ログに保存するため、プロビジョニングコントローラへ送信する働きをしてよい。
【００３３】
さらに別の実装において、プロビジョニングコントローラはさらに、デジタルアセットを送信することをデジタルアセット管理システムに指図する前に、デジタル装置を認証する働きをしてよい。
【図面の簡単な説明】
【００３４】
本明細書に組み込まれ本明細書の一部を成す添付の図面は、本発明の実装を例証し、この説明と共に本発明の原理を解説するものである。
【図１】本発明の実装と一致する、セキュアなプロビジョニングのためのシステムの一例を示すブロック図である。
【図２】本発明の実装と一致する、コンピュータ化装置をセキュアにプロビジョニングするプロセスの一例を示すスイムレーン図である。
【図３】本発明の実装と一致する、コンピュータ化装置をセキュアにプロビジョニングするプロセスの別の一例を示すスイムレーン図である。
【図４Ａ】本発明の実装と一致する、メッセージキューを備えた拡張可能でセキュアなデジタルアセット管理システムを実装するシステムの一例のブロック図の第１の部分である。
【図４Ｂ】本発明の実装と一致する、メッセージキューを備えた拡張可能でセキュアな証明書管理システムを実装するシステムの一例のブロック図の第２の部分である。
【図５Ａ】本発明の実装と一致する、証明書などのクレデンシャルをセキュアに提供するプロセスの一例を示すスイムレーン図の第１の部分である。
【図５Ｂ】本発明の実装と一致する、証明書などのクレデンシャルをセキュアに提供するプロセスの一例を示すスイムレーン図の第２の部分である。
【図６Ａ】本発明の実装と一致する、双方向メッセージキューを備えた拡張可能でセキュアな証明書管理システムを実装するシステムの一例のブロック図の第１の部分である。
【図６Ｂ】本発明の実装と一致する、双方向メッセージキューを備えた拡張可能な証明書管理システムを実装するシステムの一例のブロック図の第２の部分である。
【図７Ａ】本発明の実装と一致する、ロードバランサを備えた拡張可能でセキュアな証明書管理システムを実装するシステムの一例のブロック図の第１の部分である。
【図７Ｂ】本発明の実装と一致する、ロードバランサを備えた拡張可能でセキュアな証明書管理システムを実装するシステムの一例のブロック図の第２の部分である。
【図８】本発明の実装と一致する、ラウンドロビン要求を伴う拡張可能でセキュアな証明書管理システムを実装するシステムの一例のブロック図である。
【図９】本発明の実装と一致する、作業負荷に基づく要求を伴う拡張可能でセキュアな証明書管理システムを実装するシステムの一例のブロック図である。
【図１０Ａ】本発明の実装と一致する、メッセージキューを備えた拡張可能でセキュアなデジタルアセット管理システムを実装するシステムの一例のブロック図の第１の部分である。
【図１０Ｂ】本発明の実装と一致する、メッセージキューを備えた拡張可能でセキュアな証明書管理システムを実装するシステムの一例のブロック図の第２の部分である。
【図１１】本発明の実装と一致するシステム及び方法をホストするために使用されてよいコンピューティングシステムの一例のブロック図である。
【発明を実施するための形態】
【００３５】
これより、添付の図面に例が示された本発明の様々な実装を参照する。都合がよければ、図面の全体を通じて同じ部分や同様の部分は同じ参照番号を用いて指示される。
【００３６】
現場で安全かつ適正な動作を徹底するには、組込み型装置を、例えば車両に使われる電子制御装置（ＥＣＵ）を、製造中にセキュリティアセットなどのデジタルアセットをプロビジョニングすることによって適切に初期化する必要がある。デジタルアセットは、様々な暗号鍵、一意な識別子、デジタル証明書、及びソフトウェアを含み得る。ほとんどの場合、これらのデジタルアセットの出所と製造工場は、セキュアではないインターネット通信で相互接続された別々の地理的場所にある。したがって、これらのデジタルアセットの出所から装置にかけてエンドツーエンドのセキュアな経路を作ることにより、悪意のある当事者によって、又は事故により、デジタルアセットがアクセスされたり改変されたりするのを防ぐことが望ましい。
【００３７】
ＴＬＳ／ＳＳＬなどのエンドツーエンド保護のための従来のネットワークセキュリティプロトコルには、両通信当事者に事前共有鍵かある種のシークレットセキュリティマテリアルをあらかじめ必要とするという欠点がある。これは、デジタルアセットをプロビジョニングするには、何らかの最初のシークレットマテリアルがあらかじめ存在しなければならないという循環的な技術的問題を引き起こす。この問題は、最初のシークレットマテリアルをどのように保護すればいいかということを含む。ロジスティックスを簡素化するために、通常は製造中に単一バージョンの最初のソフトウェアがコンピュータ化装置に搭載されるので、この問題はコンピュータ化装置の場合に特に深刻となる。この最初のソフトウェアが最初のセキュリティマテリアルを包含しなければならない場合は、広域的な秘密が存在することになる。結果的に、最初のセキュリティマテリアルがセキュリティ侵害されると、同じ広域的な秘密を共有する全ての装置にプロビジョニングされた全てのデジタルアセットのセキュリティ侵害につながる。本開示と一致するシステム、方法、及び装置は、これらの問題や従来のプロビジョニングシステムの他の問題に対処する。
【００３８】
プロビジョニングは、適切なデータやソフトウェアでコンピュータ化装置を準備するために行われる一連の作業を通常指す。これは、装置をその運用環境内に適切に設置して運用可能な状態にするために行われる一連の作業も含み得る。作業は、装置のデジタルストレージ（例えば、メモリ）に適切なデジタルアセット（例えば、オペレーティングシステム、デバイスドライバ、ミドルウェア、アプリケーション、デジタル証明書など）を読み込ませることを含み、さらに（必要に応じ）装置で特定のデジタルアセットを適切にカスタマイズし構成することを含み、これらのデジタルアセットは個々の装置に固有である場合がある。作業は、コンピュータ化装置が模造品や偽造装置ではなく、正規の装置製造業者によって製作された正規の装置であることを確認することも含み得る。
【００３９】
作業は、装置をその運用環境に正しく設置し、これを試験してこれが正常に作動することを確認することも含み得る。装置がある１つの製造業者によって製造され、後ほど別の製造業者によってより大規模なシステムや装置に設置されることがあるため、例えば、部品製造業者によって製造された車載装置（ＯＢＵ）が自動車製造業者によって製造された自動車に設置されることがあるため、良好であることが判明している装置だけをセキュアにプロビジョニングするのは複雑である。不適切に設置された装置は不適切に機能するおそれがある。
【００４０】
本発明と一致する様々な実装は、ＩｏＴ装置を含むコンピュータ化装置のセキュアなプロビジョニングを提供する。かかる実装は、コンピュータ化装置によって使用されるデジタルアセットの悪意のある、不注意な、又は間違った、改ざん、変更、更新、又はリリースを予防又は阻止し、コンピュータ化装置とそのソフトウェアの不適切な設置／インストールを予防又は阻止する働きをする。
【００４１】
本発明と一致する様々な実装は、セキュアなプロビジョニング過程の監査ログ、記録、報告書などをも作成でき、これらは、後ほど見つかった問題の分析や解決に役立てることができる。
【００４２】
本発明と一致する様々な実装は、セキュアなプロビジョニング及び管理プラットフォームも提供でき、これはサービスの形で装置製造業者やシステム製造業者に提供できる。
【００４３】
図１は、本発明の実装と一致する、コンピュータ化装置のセキュアなプロビジョニングのためのシステム１００の一例を示すブロック図である。図１の例に示されているように、システム１００はプロビジョニングコントローラ１２０を含む。プロビジョニングコントローラ１２０は、組込み型ハードウェア・セキュリティ・モジュール（ＨＳＭ）を備えたサーバコンピュータ（例えば、少なくとも１つのプロセッサと関連メモリとを有する）として実装されてよく、このＨＳＭはデジタルセキュリティアセットをセキュアに生成して保存し、様々な暗号計算や機密計算をセキュアに遂行する。ＨＳＭは、暗号鍵などのデジタルセキュリティアセットと他の機密データを攻撃者によるアクセスから守る。様々な実装において、プロビジョニングコントローラ１２０は、システム１００のユーザを認証し、かつこれとセキュアに通信し、１つ以上のディストリビュータ装置１０８、１３１とセキュアに通信し、かつこれを管理し、デジタルアセット管理システム（ＤＡＭＳ）１１０とセキュアに通信し、かつこれの動作を指図し、プロビジョニング記録を作成及び保存し、プロビジョニング記録を作成、保存、及び配信し、監査ログを作成、保存、及び配信し、ＤＡＭＳ１１０とディストリビュータ装置１０８、１３１の各部を暗号的に結合するために証明書を作成及び配信し、ユーザや管理対象装置が信頼できなくなった場合にこれらを必要に応じて取り消し、業務継続や災害復旧のための遠隔保存のために重要な鍵やデータのセキュアで暗号化されたバックアップを作成及び配信する働きをする。
【００４４】
図１の例に示されているように、プロビジョニングコントローラ１２０はデータベース１２５へ通信可能なように接続されており、データベース１２５は、装置１０６ａ、１０６ｂ（１０６と総称される場合がある）をセキュアにプロビジョニングすることに関係するデータ、情報、及びデジタルアセットを保存できる。
【００４５】
プロビジョニングコントローラ１２０は製造業者のユーザポータル１１５にも通信可能なように接続されており、製造業者のユーザポータル１１５は、例えばサーバとして、又はプロビジョニングコントローラ１２０に対するインターフェイスとして、実装されてよい。様々な実装において、装置製造業者１０５のスタッフ１０９は製造業者のユーザポータル１１５を使用することでプロビジョニングコントローラ１２０と（延いてはＤＡＭＳ１１０と）インターフェイスをとり、自身の装置プロビジョニング作業を管理することができる。様々な実装において、製造業者のユーザポータル１１５は、ユーザ名、パスワード、２要素識別データ、顔認識画像、指紋、などをはじめとする識別情報をスタッフユーザ１０９から収集し、その識別情報をプロビジョニングコントローラ１２０に提供することできる。プロビジョニングコントローラ１２０は、スタッフ１０９がセキュアなプロビジョニングシステム１００にアクセスすることを許可する前に、スタッフ１０９を認証できる。例えば、プロビジョニングコントローラ１２０は、あらかじめ検証されデータベース１２５に保存されているスタッフユーザ１０９に関連する識別情報を調べ、保存されている識別情報を製造業者のユーザポータル１１５によって収集された識別情報に比較することができる。代わりに、プロビジョニングコントローラ１２０又はＤＡＭＳユーザポータル１１５は、ユーザの会社の識別認証システムと一体化されてもよく、これがスタッフ１０９にシステム１００の使用が許可されているかどうかを判断する。様々な実装において、プロビジョニングコントローラ１２０又はＤＡＭＳユーザポータル１１５は、正常に認証されたスタッフ１０９に役割を与えることで、システム１００の中でのスタッフの活動を制限することができる。いくつかの例において、プロビジョニングコントローラ１２０は、２つのセットの識別情報が一致する場合に限りアクセスを許可できる。
【００４６】
同様に、プロビジョニングコントローラ１２０は設置業者ユーザポータル１１６にも通信可能なように接続されており、設置業者ユーザポータル１１６は、例えばサーバとして、又はプロビジョニングコントローラ１２０に対するインターフェイスとして、実装されてよい。様々な実装において、装置設置業者のスタッフ１３２は設置業者ユーザポータル１１６を使用することでプロビジョニングコントローラ１２０と（延いてはＤＡＭＳ１１０と）インターフェイスをとり、自身の装置設置作業とプロビジョニング作業を管理することができる。プロビジョニングコントローラ１２０は、スタッフ１３２を許可する前にスタッフ１３２を認証でき、スタッフ１３２がセキュアなプロビジョニングシステム１００にアクセスしてシステムに対して認可された機能を遂行することを許可する前に、スタッフ１３２に役割を割り当てることができる。
【００４７】
同様に、プロビジョニングコントローラ１２０は調整業者ポータル１１７にも通信可能なように接続されており、調整業者ポータル１１７は、例えばサーバとして、又はプロビジョニングコントローラ１２０に対するインターフェイスとして、実装されてよい。様々な実装において、かつてプロビジョニングコントローラ１２０によって認証された調整業者１４０は、調整業者ポータル１１７を使用することでプロビジョニングコントローラ１２０とインターフェイスをとり、製造業者１０４、設置業者１３０、装置１０６、及び／又は装置１０６にインストールされたソフトウェア／デジタルアセットの審査と承認を管理することができる。プロビジョニングコントローラ１２０は、調整業者１４０がセキュアなプロビジョニングシステム１００にアクセスすることを許可する前に、調整業者１４０を認証できる。システム１００の一部の実装において、調整業者１４０と調整業者ポータル１１７は任意選択的である。
【００４８】
プロビジョニングコントローラ１２０はさらに、ＤＡＭＳ１１０へ通信可能なように接続されている。様々な実装において、ＤＡＭＳ１１０は、サーバ、装置、又はセキュアな装置及び／又はサーバから成るシステムとして実装されてよい。ＤＡＭＳ１１０は、プロビジョニングされるエンドエンティティ装置から、ディストリビュータ装置１０８、１３１を通じて、又は他のセキュアで認証された接続を通じて、公開鍵をセキュアに検索し、装置１０６にインストールされているデジタル証明書と関連データをセキュアに供給する。加えて、ＤＡＭＳ１１０は、製造業者１０５と設置業者１３０からディストリビュータ装置１０８、１３１を通じて、コンピュータ化装置１０６のプロビジョニング、設置、機能、などに関するステータス情報をセキュアに受信する。加えて、ＤＡＭＳ１１０は、図１に示されているように、このプロビジョニングを、単一の場所で、又は複数の場所で、遂行できる。図２に関してさらに詳しく説明するように、ＤＡＭＳ１１０は以下の主要要素、すなわち、ルート証明書局（ＣＡ）、ポリシージェネレータ、ＣＲＬジェネレータ、不正行為局、中間ＣＡ、加入ＣＡ、結合局、匿名ＣＡ、及び登録局を含んでよい。
【００４９】
ＤＡＭＳ１１０は、Ｗｉｌｌｉａｍ  Ｗｈｙｔｅらによる論文「Ａ  Ｓｅｃｕｒｅ  Ｃｒｅｄｅｎｔｉａｌ  Ｍａｎａｇｅｍｅｎｔ  Ｓｙｓｔｅｍ  ｆｏｒ  Ｖ２Ｖ  Ｃｏｍｍｕｎｉｃａｔｉｏｎｓ」２０１３  ＩＥＥＥ車両ネットワーキング会議、２０１３年１２月に記載されたコンポーネント及び機能に新しい機能を加えて向上する。様々な実装において、ＤＡＭＳ１１０は多段式プログラミングと柔軟な管理（例えば、調整業者１４０の導入を許可）を含む。ＤＡＭＳ１１０の様々な実装はまた、単一のＤＡＭＳ１１０が様々なサブスクライバに対して様々なレベルのプロビジョニングを提供することを許可する能力を可能にする。ＤＡＭＳ１１０の様々な実装はまた、サブスクライバがある程度の期間中（例えば、１週間）に様々なデジタル証明書使用を割り当てること、並びに様々な証明書ロード（従来のシステムのような３年の代わりに１週間など）を割り当てることを許可する能力を可能にする。ＤＡＭＳ１１０の様々な実装はまた、サブスクライバ固有ＵＲＬを提供でき、これにより、特定の製造業者のコンピュータ化装置１０６（例えば、ＯＥＭの車両）は、その製造業者の領域内にとどまることができる（例えば、製造業者のＵＲＬは製造業者の名称を示す）。
【００５０】
図示されているように、プロビジョニングコントローラ１２０はディストリビュータ装置１０８、１３１にも通信可能なように接続されている。様々な実装において、ディストリビュータ装置１０８、１３１は、とりわけ、（図示されているように）会社の構内に設置された単独でセキュアな装置として、あるいはウェブ又はクラウドサービスとして、実装されてよい。様々な実装において、ディストリビュータ装置１０８、１３１は、望ましくはインターネット以外の専用通信経路を通じて、ＤＡＭＳ１１０やプロビジョニングコントローラ１２０を相手にデジタルアセットや他の情報をセキュアに送受信する信頼されたエンドポイント装置として実現される。図示されているように、ディストリビュータ装置１０８、１３１はまた、装置１０６ａ、１０６ｂへデジタルアセットをダウンロードするため、また装置１０６ａ、１０６ｂからデータを受信するため、装置１０６ａ、１０６ｂと直接的に、又は間接的に、接続する。様々な実装において、ディストリビュータ装置１０８、１３１は、ハードウェア・セキュリティ・モジュール（ＨＳＭ）、強化されたオペレーティングシステム（ＯＳ）、内部ファイアウォール、及び内部ホスト侵入検知／予防システムを備えたサーバコンピュータ（例えば、少なくとも１つのプロセッサと関連メモリとを有する）を内包する箱として実装できる。ディストリビュータ装置は信頼できない環境内で動作しても、信用し信頼できる動作を提供するように特別に設計されてよい。ディストリビュータ装置は、自身と、セキュアなプロビジョニングコントローラ１２０及びＤＡＭＳ１１０との間に、セキュアな通信経路を有する。この経路は、ディストリビュータ装置を制御するために、また、プロビジョニング関連のデータやログ情報を送信し検索するために、使用される。ディストリビュータ装置はまた、装置１０６のプログラミングかプロビジョニングに使用する試験装置１０７に対するセキュアな通信経路を有してよい。この経路は、製造現場の通信ネットワークでプロビジョニングデータやログデータが漏洩したり改変されたりするのを防ぐ。ディストリビュータ装置１０８はまた、プログラミングされる装置１０６とのセキュアな通信経路を直接確立してよく、これにより、（不正な試験装置１０７を含む）サードパーティによるプロビジョニングデータのセキュリティ侵害や改変はできなくなる。様々な実装において、ディストリビュータ装置は、プロビジョニングの対象となる装置１０６から公開鍵やマイクロプロセッサシリアル番号などの他データを収集できる。ディストリビュータ装置は、この情報をプロビジョニングコントローラ１２０及び／又はＤＡＭＳ１１０へ送信できる。ディストリビュータ装置はまた、プロビジョニングコントローラ１２０及び／又はＤＡＭＳ１１０からデータやコマンドや他の情報を、装置１０６にプログラミングするために、受け入れることができる。ディストリビュータ装置は、自身のログデータを返すことができ、また試験装置１０７からのデータをプロビジョニングコントローラ１２０及び／又はＤＡＭＳ１１０に返すことができる。
【００５１】
装置製造業者１０５に関して図示されているように、ディストリビュータ装置１０８は試験装置１０７（例えば、コンピュータ化された製造装置、製品試験装置など）へ通信可能なように接続されてよく、試験装置１０７は、ＯＢＵ装置など、製造業者１０５によって製造された装置１０６ａに接続される。製造業者１０５は、コンピュータ化装置１０６ａを製造する、及び／又は市場に供給する、工場を含んでよく、あるいは該工場であってよい。数ある可能な例の一例として、コンピュータ化装置１０６ａは、車載装置（ＯＢＵ）の一部として設置され、自動車と輸送インフラ装置との通信のために後ほど自動車に設置される遠隔通信用セルラーモデムに使用される組込み型汎用集積回路カード（ｅＵＩＣＣ）であってよい。コンピュータ化装置１０６ａは、他の車両や沿道装置（ＲＳＵ）との通信のためにＯＢＵに設置されるＶ２Ｖのためのセキュアなマイクロプロセッサであってもよい。これらの新たに製造された装置１０６ａは、正常に動作するために、デジタルアセット、例えばＤＡＭＳ１１０からのデジタル証明書で、適切にプロビジョニングしなければならない。製造業者１０５のスタッフ１０９は、ユーザポータル１１５を使用してプロビジョニングコントローラ１２０とやり取りし、ＤＡＭＳ１１０による製品プロビジョニング活動を管理することができる。
【００５２】
設置業者１３０に関して図示されているように、ディストリビュータ装置１３１は、代わりに、装置１０６ｂがその運用環境に設置されている最中か設置された後に、装置１０６ｂに通信可能なように直接接続されてもよい。設置業者１３０は、コンピュータ化装置１０６ｂをその運用環境に設置する、例えばＯＢＵを自動車に設置する、工場又は作業場を含んでよく、あるいは該工場又は作業場であってよい。コンピュータ化装置１０６ｂは、正常に動作するために、設置時に、デジタルアセットで、例えばＤＡＭＳ１１０からの追加のデジタル証明書で、さらに適切にプロビジョニングしなければならない。設置業者１３０のスタッフ１３２は、設置業者ユーザポータル１１６を使用して、プロビジョニングコントローラ１２０とやり取りし、ＤＡＭＳ１１０による製品プロビジョニング活動を管理することができる。
【００５３】
様々な実装において、プロビジョニングコントローラ１２０、ディストリビュータ装置１０８、１３１、及びＤＡＭＳ１１０は、それらの間にセキュアで公的にはアクセス可能でない通信リンク又は経路を有してよく、様々な実装において、図１に示された通信リンクはいずれも、セキュアで公的にはアクセス可能でない通信経路であってよい。様々な実装では、このセキュアなインフラの中で認可されていないエンドポイントが通信するのを防ぐため、これらのセキュアな経路は暗号化され、相互認証される。これらの通信経路を保護するために複数のセキュリティ機構が使用されてよく、これにより、外側の層がどうにかしてセキュリティ侵害されても、内側の層はセキュアな状態を保つ。一例として、外側の層として相互認証ＴＬＳトンネルを使用してよく、内側の層には独自のセキュア通信プロトコルなどの別のプロトコルを使用してよい。システム１００を備えるインフラコンポーネント間のこれらのセキュアな接続は、コンポーネント間の機密通信を保護して、それらの適正動作を保証するために使用される。これらのセキュアな経路を使用することで、プロビジョニングコントローラ１２０とＤＡＭＳ１１０は、デジタルデータが送信中にセキュリティ侵害又は改変されることを心配せずに、コンポーネント間でデジタルデータを送信できる。これらの経路ではコマンドや制御情報を渡すこともできる。例えば、プロビジョニングコントローラ１２０は、何らかのデジタルアセットやデータの送信先にあたるディストリビュータ装置１０８、１３１がどれなのかを操作できる。プロビジョニングコントローラ１２０は、プロビジョニングしている製造ライン上の装置１０６にこのデータをメータアウトする方法をディストリビュータ装置１０８、１３１に教えることもできる。さらに、ディストリビュータ装置１０８、１３１は、情報が送信中にセキュリティ侵害又は改変されることを気にせずに、プロビジョニングコントローラ１２０に情報を折り返し報告できる。例えば、セキュアなプロビジョニングコントローラ１２０は、何らかの種類のデジタルアセットで、例えば、証明書、ソフトウェア、ヒューズコンテントなどで、最高１０，０００台の装置をプロビジョニングするようにディストリビュータ装置１０８、１３１をプログラミングできる。ディストリビュータ装置１０８、１３１はプロビジョニングしている装置を数えることができ、これがその限度に達すると、その旨をプロビジョニングコントローラ１２０に報告する。様々な実装において、プロビジョニングコントローラ１２０によって管理される装置（例えば、１０８、１１０、１３１、１１５、１１６、１１７）は、それらの装置がプロビジョニングコントローラ１２０と定期的に通信しない場合に、それらの装置が動作するのを止めさせる機能を含んでおり、これにより、それらの装置が盗まれた場合は、それらの装置は使い物にならなくなる。この機能は、失われた／盗まれた装置があたかも正規の製造環境の中にまだ設置されているかのように作動して装置１０６をプロビジョニングし続けるのを防ぐ。
【００５４】
図１に示された例を引き続き参照すると、操業中に、製造業者１０５にあるディストリビュータ装置１０８は、ＤＡＭＳ１１０からデジタルアセットをセキュアに受信し、それらを装置１０６ａの試験装置１０７に供給する。それぞれの装置１０６ａが製造業者１０５によって製造されると、試験装置１０７は装置１０６ａと通信して、装置１０６ａの一意な識別番号やステータスなどの情報を装置１０６ａから取得し、デジタル証明書などのデジタルアセットを装置にダウンロード又はインストールする。試験装置１０７はまた、装置１０６ａからの情報（例えば、プロビジョニングステータス）をディストリビュータ装置１０８に供給でき、ディストリビュータ装置１０８はその情報をＤＡＭＳ１１０及び／又はプロビジョニングコントローラ１２０にセキュアに伝達する。一部の実装において、試験装置１０７は、ディストリビュータ装置１０８と装置１０６ａとの間でデータをセキュアにトランスポートするソフトウェアトランスポート層セキュリティ（ＴＬＳ）エージェントを含んでよく、これは、それぞれの装置１０６ａに対応付けられた一時的な鍵を使用して、ＤＡＭＳ１１０と装置１０６ａの間にディストリビュータ装置１０８と試験装置１０７を経由するセキュアで暗号化された通信路を実質的に形成する。
【００５５】
製造業者１０５は、装置１０６ａが最初にプロビジョニングされた後に装置１０６ａを設置業者１３０へ出荷し、設置業者１３０は装置１０６ｂを設置する。様々な実装において、装置１０６ａは最初のプロビジョニングの前に機能せず、製造業者１０５による最初のプロビジョニングの後に、装置１０６ａは部分的には機能できるが、まだ完全には機能しない。かかる実装において、最初のプロビジョニングは、設置を行うのに必要な程度まで、また装置を完全に運用可能にするために必要なさらなる最終プロビジョニングを行うのに必要な程度まで、装置が機能するようにするのみである。
【００５６】
設置業者１３０は装置１０６ｂをその運用環境に設置し、設置業者１３０のスタッフメンバー１３２は設置業者ポータル１１６を通じてプロビジョニングコントローラ１２０にその旨を通知する。この通知は設置が適切に完了したことを証明するものであり、望ましくは、プロビジョニングコントローラ１２０に対して装置１０６ｂを一意的に識別する情報を含む。一部の実装において、ディストリビュータ装置１３１は、装置１０６ｂにステータスと識別情報を問い合わせた後に、プロビジョニングコントローラ１２０に自動的に通知できる。設置業者１３０が装置１０６ｂを適切に設置したことを設置業者ポータル１１６を通じて証明する様々な実装では、この証明がプロビジョニングコントローラ１２０によってデータベース１２５に記録／保存されてよい。この証明は、無線伝送電力測定やＧＰＳアンテナ位置確認といった特定の設置済み装置１０６ｂに関連する特定の試験データを含んでよい。
【００５７】
設置通知に応答して、プロビジョニングコントローラ１２０は、（ｉ）装置１０６ｂが製造業者１０５によって合法的に製造された装置としてデータベース１２５に列挙されていること、（ｉｉ）装置１０６ｂが最初に製造業者１０５によって正常にプロビジョニングされたものとしてデータベース１２５に列挙されていること、（ｉｉｉ）設置業者１３０が認可された設置業者としてデータベース１２５に列挙されていることを検証する。この検証に成功すると、コントローラ１２０は、装置１０６ｂを運用可能な形にプロビジョニングするのに必要なデジタルアセット（例えば、匿名証明書（ＰＣ））及び／又は他の情報を送信することをＤＡＭＳ１１０に指図し、このプロビジョニングにより、装置１０６ｂは運用環境に設置されたものとして正常に機能できるようになる。
【００５８】
様々な実装において、調整業者１４０は調整業者ポータル１１７を通じてプロビジョニングコントローラ１２０とやり取りして、設置業者１３０及び／又は製造業者１０５を識別、検証、及び管理して、認可されていない設置業者（例えば、ハッカー）がシステム１００から真正のデジタルアセットを得ることができないようにする。調整業者１４０のスタッフメンバーはプロビジョニングコントローラ１２０によって認証でき、システム１００で一意なＩＤを持つことができるため、スタッフメンバーの活動は一意的に記録できる。様々な実装において、調整業者１４０は調整業者ポータル１１７を使用してプロビジョニングコントローラ１２０に問い合わせを行い、証明報告書、設置業者活動、製造された装置１０６ａの数及び識別情報、設置され完全にプロビジョニングされた装置１０６ｂの数及び識別情報など、コントローラ１２０によって記録される情報のコピーや報告書を入手することができる。
【００５９】
様々な実装において、設置業者１３０がシステム１００とやり取りするには、プロビジョニングコントローラ１２０によって認可済みの設置業者として認証されなければならない。認可されるためには、設置業者１３０は、例えば、設置業者１３０が対象となる環境（例えば、対象となる車両又は場所など）に装置１０６ｂを適切に設置することを述べた然るべき契約書を履行しなければならない場合がある。設置業者１３０は、例えば、調整業者１４０によって他の契約内容を証明することが求められる場合がある。望ましくは、それぞれの設置業者１３０がシステム１００の中で一意なＩＤを持ち、これにより、設置業者１３０の活動をプロビジョニングコントローラ１２０によって一意的に記録できる。
【００６０】
システム１００とその機能の説明されている実装は、製造業者１０５によって製造され、認可された設置業者１３０によって適切に設置及び試験された装置１０６だけが、装置１０６を運用可能にするのに必要なデジタルアセットで完全にプロビジョニングされることを保証する。プロビジョニングコントローラ１２０は、プロビジョニング工程の各段階で誰によってどのような作業が行われたかを伝える幅広いログや報告書を作成し、従来のシステムにはなかった重要な監査能力を提供する。
【００６１】
当業者なら、図１に示されたコンポーネント、プロセス、データ、工程、及び実装の詳細が、説明を簡潔かつ明確にするために提示された例であることを認めるであろう。この例は制限することを意図しておらず、また数多くのバリエーションが可能であるため、本発明の原理から逸脱せずに、別のコンポーネント、プロセス、実装の詳細、及びバリエーションを使用することもできる。例えば、図１にはただ１つの製造業者１０５と、ただ１つの設置業者１３０と、ただ１つの調整業者１４０が示されているが、他の実装では、これらの各エンティティがいくつあってもよい。別の一例として、ＤＡＭＳ１１０とプロビジョニングコントローラ１２０は別々の装置として示されているが、別の実装では、それらの機能を単一の装置、例えば単一のサーバに、まとめてよい。さらに別の一例として、ポータル１１５〜１１７についても同じことができる。さらに別の一例として、システム１００は、参照により援用される２０１６年１１月１４日に出願された米国仮出願第６２／４２１，８５２号に記載されているようなアセット管理装置（ＡＭＡ、図示せず）を追加で含むことができる。かかる実装において、ＡＭＡは、プロビジョニングコントローラ１２０、及び／又はディストリビュータ装置１０８、１３１、及び／又はＤＡＭＳ１１０へ通信可能なように接続されてよい。様々な実装において、ＡＭＡは、使い勝手の良いＧＵＩと、生産調整役が製品（例えば、装置１０６）の構成や構造を簡単かつ効率的に管理し、かつアセット所有者がデジタルアセットの在庫を簡単かつ効率的に管理することを可能にする機能とを含んでよい。
【００６２】
図２は、本発明の実装と一致する、コンピュータ化装置をセキュアにプロビジョニングするプロセス２００の一例を示すスイムレーン図である。様々な実装において、示されているプロセス２００又は工程の一部又は全部は、汎用コンピューティングシステム（１つ以上のプロセッサ、又は１つ以上のコンピューティングサブシステムを含み得る）で実行するコードによって、ハードウェアのみのシステムによって、又はこれら２つのハイブリッドであるシステムによって、遂行されてよい。図２の上部にまたがって示されているように、プロセス２００に関わるエンティティは、コンピュータ化装置１０６の製造業者１０５と、製造業者１０５にあるディストリビュータ装置１０８と、プロビジョニングコントローラ１２０と、ＤＡＭＳ１１０とを含む。様々な実装において、これらのエンティティは、図１に関して説明されている通りであってよく、また本開示の全体を通じて説明されている通りであってよく、互いに通信してよい。
【００６３】
図２の例に示されているように、プロセス２００は２０５で始まり、ここで製造業者１０５（例えば、スタッフメンバー１０９）は、装置１０６ａにプロビジョニングされる（例えば、装置１０６ａによって使用される）デジタルアセットのためにデジタルアセットプロビジョニングサービスをプロビジョニングコントローラ１３０に要求し、この要求はデジタルアセットの行先にあたる装置１０６ａを特定できる。要求は、例えば、製造業者１０５が新しい製品１０６Ａのプロビジョニングサービスを要求するものであってよく、あるいは既存の製品１０６Ｂのために新たなプロビジョニングサービス要求を行うものであってもよい。様々な実装において、この工程は、認可されたユーザが、例えばユーザポータル１１５を通じて、プロビジョニングコントローラ１３０にログオンする作業を伴う場合がある。いくつかの場合において、要求されるデジタルアセットは、加入証明書、装置１０６が実行する実行可能コード、デジタル動作パラメータといったセキュアなクレデンシャルであってよい。加入証明書は、そのホルダをエコシステム内の認可されたパーティシパントとして識別する公開鍵証明書であり、このエコシステムの中では、全てのパーティシパントが有効な加入証明書を所持しなければならず、（米国運輸省のＶ２Ｘエコシステムなど）、認可されたパーティシパントは、エコシステム内での装置１０６の通信及び動作を可能にする匿名証明書を受け取ることもできる（例えば、米国運輸省のＶ２Ｘエコシステムの例で、車両と沿道インフラとの通信及び動作を可能にするため）。
【００６４】
２１０では、製造業者のユーザ１０９が認可されたユーザであるか否かをプロビジョニングコントローラ１２０が判断する。一部の実装において、プロビジョニングコントローラ１２０は、プロビジョニングされる装置１０６ａ（例えば、製品）がシステム１００での使用が承認されているか否かも２１０で判断できる。場合によっては、図１の調整業者１４０によって承認済み装置のリストが提供され、この判断を下すにあたってプロビジョニングコントローラ１２０によって使用されてよい。
【００６５】
プロビジョニングコントローラ１２０は、ユーザ（及び／又は製品）が認可されていない場合に、デジタルアセットプロビジョニングサービスの要求を拒絶する（図２に図示せず）。一方、認可されているユーザが（例えば、認可された製品のための）要求を行っている場合（２１０、はい）、プロビジョニングコントローラ１２０は、例えば、（２１５で）サービス要求命令をＤＡＭＳ１１０に送信することによって、ＤＡＭＳ１１０がサービス要求を履行するように指図、命令、又は制御する。
【００６６】
２２０では、ＤＡＭＳ１１０が、２１５からの要求の受信に応答して、また２１５からの要求の受信を条件として、要求に基づいて装置１０６ａに対するサービスを始めるために自身を構成する。一部の実装において、ＤＡＭＳ１１０は、装置１０６ａにサービスを行う形にディストリビュータ装置１０８を構成するために、ディストリビュータ装置１０８へ命令を送信することもできる（図示せず）。
【００６７】
２２２では、ＤＡＭＳ１１０が２０５で要求された装置１０６ａのためのデジタルアセットを生成する、作成する、計算する、及び／又は検索する。様々な実装において、ＤＡＭＳ１１０は、公開及び秘密鍵対といった要求されたデジタルセキュリティアセット、並びに装置１０６ａのための加入証明書や匿名証明書を、作成又は生成することができる。
【００６８】
工程２２２の代替の実装において（図２に図示せず）、ＤＡＭＳ１１０は、装置１０６ａによって生成され装置１０６ａから検索される加入及び匿名用公開鍵などの装置１０６ａに関連するデジタルアセット生成用情報と、装置１０６ａを一意的に識別するデータ（例えば、マイクロプロセッサシリアル番号）とを、ディストリビュータ装置１０８に要求し、ディストリビュータ装置１０８から受信する。かかる実装において、ＤＡＭＳ１１０はその後、加入及び匿名用公開鍵を使用してデジタルアセット、例えば、装置１０６ａのための加入証明書と適当数の匿名証明書とを生成する。
【００６９】
２２５では、ＤＡＭＳ１１０が、２０５でデジタルアセットサービスを要求した製造業者１０５のディストリビュータ装置１０８へデジタルアセットを送信する。例えば、ＤＡＭＳ１１０は、公開・秘密鍵対と、加入証明書と、匿名証明書とを製造業者１０５のディストリビュータ装置１０８へセキュアに送信できる。
【００７０】
２２６では、ＤＡＭＳ１１０がデジタルアセットに関するログ情報をプロビジョニングコントローラ１２０へ送信する。様々な実装において、ログ情報は、要求元のＩＤ、デジタルアセットのＩＤ、ディストリビュータ装置のＩＤ、要求作業と送信作業のタイムスタンプ、受信したマイクロプロセッサシリアル番号などをはじめとする、デジタルアセットの要求と転送を記述する情報を含んでよい。一部の実装において、ログ情報はデジタルアセットのコピーを含んでよい。２２７では、プロビジョニングコントローラ１２０がログ情報を受信し、例えばデータベース１２５にログ情報を保存する。プロビジョニングコントローラ１２０はシステム１００内で起きる全活動の監査証跡を実質的に管理し、これにより、製造業者１０５によっていくつの装置１０６ａがいつ製造されプロビジョニングされたかに関するデータなど、多くの種類のデータをまとめることができる。そのようなデータやログ情報は請求書の作成、並びに監査の目的に使用できる。
【００７１】
２３０では、ディストリビュータ装置１０８がＤＡＭＳ１１０によって送信されたデジタルアセット（例えば、公開・秘密鍵対、加入証明書、及び匿名証明書）を受信し、保存する。
【００７２】
２３５では、ディストリビュータ装置１０８が、ディストリビュータ装置１０８から装置１０６ａへデジタルアセットをセキュアに転送するのに使用することができる公開鍵などのデジタルセキュリティアセットを装置１０６ａに要求し、装置１０６ａから受信する。様々な種類の装置１０６ａは、ことによると装置１０６に組み込まれたセキュアなプロセッサを使用して一時的な鍵対を生成する能力を有しており、公開鍵はこの一時的な鍵対の一部であってよい。２４０では、ディストリビュータ装置１０８がデジタルセキュリティアセット（例えば、公開鍵）を使用して装置１０６ａへデジタルアセット（例えば、加入証明書）をセキュアに送信する。様々な実装において、ディストリビュータ装置１０８は装置１０６ａの公開鍵を使用して、例えば装置１０６ａとの仮想プライベートネットワーク（ＶＰＮ）を形成し、その中でデジタルアセットをセキュアに送信することができる。
【００７３】
様々な実装において、ディストリビュータ装置１０８はディストリビュータ装置１０８と試験装置１０７との間にトランスポート層セキュリティ（ＴＬＳ）を使用し、装置１０６ａに接続されることがある試験装置１０７との通信をセキュアなものにする。装置１０６ａに直接的でセキュアな通信を用意することが望まれる実装では、システムが装置１０６ａで一時的な公開鍵対を作成し、その公開鍵を、ディストリビュータ装置１０８の公開鍵を含むディストリビュータ装置１０８からの証明書と併せて使用し、装置１０６ａに対するセキュアなトンネルを作ることができる。かかる実装において、装置１０６ａは、システム１００のルート公開鍵を含む特殊なコードを実行して、ディストリビュータ装置１０８が装置１０６ａに送信する証明書を確認する。
【００７４】
装置１０６ａ又は試験装置１０７とディストリビュータ装置１０８との間にセキュアな経路が確立されると、装置１０６ａはその後、（例えば、Ｖ２Ｘエコシステムのための）加入・匿名用公開鍵対を作成し、それらの公開鍵と他のデータをディストリビュータ装置１０８へエクスポートすることができ、ディストリビュータ装置１０８はその後、このデータをＤＡＭＳ１１０とプロビジョニングコントローラ１２０へ送信できる。工程２２２の代替実装に関して上述したように、ＤＡＭＳ１１０は受信した公開鍵を使用して加入証明書と匿名証明書を作成できるが、一部の実装においては、匿名証明書の数が多くなることがある（例えば、３０００）。この代替実装例では、ＤＡＭＳ１１０が前述した工程２２５でこれらの証明書をディストリビュータ装置１０８に返す。いくつかの別の実装において、ＤＡＭＳ１１０は、プロビジョニングが行われている場所に応じて、これらの証明書を、ディストリビュータ装置１０８の代わりにディストリビュータ装置１３１へ送信することもできる。
【００７５】
一部の実装において、例えば、装置１０６が独自の無線又は有線通信機能を有し、かつ少なくとも部分的に動作可能である場合は、ディストリビュータ装置１０８は装置１０６と直接的に通信できる。別の実装において、ディストリビュータ装置１０８は、試験装置１０７などの中間装置を介して装置１０６と間接的に通信できる。
【００７６】
装置１０６ａはデジタルアセットを受信し、これを動作中に使用するために保存する。例えば、装置１０６ａが自動車の車載装置（ＯＢＵ）か電子制御装置（ＥＣＵ）であり、デジタルアセットが無線ネットワークに参加するために必要なセキュリティアセット（例えば、公開鍵証明書）である場合、このデジタルセキュリティアセットがＯＢＵによって保存される。後ほど自動車に設置され自動車で作動されたＯＢＵは、無線ネットワークへの接続を試みる。ネットワークは、ＯＢＵがネットワークに接続することを許可する前に、ＯＢＵの認証を試みる。ＯＢＵは、製造業者１０５のディストリビュータ装置１０８によって提供されたデジタルセキュリティアセットを持っている場合に限り、認証でき、ネットワークに参加できる。
【００７７】
２４５で、ディストリビュータ装置１０８は、装置１０６ａが２４０で送信されたデジタルアセットを正常に受信しインストール（例えば、保存）したか否かを伝えるステータス情報を、装置１０６ａから受信する、又は該ステータス情報にアクセスする。
【００７８】
２５０では、ディストリビュータ装置１０８がプロビジョニングコントローラ１２０へステータス情報を送信する。２５５では、プロビジョニングコントローラ１２０がステータス情報を受信し、工程２２７で保存されたログ情報と併せて保存する。それゆえ、プロビジョニングコントローラ１２０は、各装置１０６に関わる全てのシステム１００活動について監査証跡又は監査ログを継続する。様々な実装において、監査ログは、製造業者のプロビジョニング（例えば、工程２３５〜２４５）の失敗の成功、デジタルアセットの識別情報（及び／又はデジタルアセット自体コピー）、暗号技術の種類などを伝える情報を装置１０６ごとに含んでよい。
【００７９】
装置１０６ａがデジタルアセットで正常にプロビジョニングされた場合は、製造業者１０５が２７０で装置を市場に発売する。例えば、製造会社１０５は、装置をその動作環境に設置する会社（例えば、図１の設置会社１３０）へ装置１０６ａを物理的に出荷できる。一部の実装において、装置１０６ａはこの時点で完全にプログラミング又はプロビジョニングされてフル機能で動作できる場合があるが、他の実装において、装置１０６ａはこの時点で部分的にしかプログラミング又はプロビジョニングされていない場合があり、フル機能で稼働できないか、機能不能である。
【００８０】
図２に示された例は、説明を目的とするものに過ぎず、制限することを意図していない。さらに、示されているプロセス２００は、開示されている特定の実装と一致する新しく革新的な特定の特徴を明確に説明するためいくぶん簡略化された一例であるが、この例は制限することを意図しておらず、数多くのバリエーションが可能である。例えば、機能と工程は特定の順序で遂行されるものとして示されているが、説明されている順序は一例に過ぎず、開示されている特定の実装に合わせて、これとは異なる様々な順序で工程を遂行することもできる。さらに、工程は専ら説明の目的のために個別のステップとして説明されているが、一部の実装においては、複数の工程が同時に遂行されてもよく、及び／又は単一の計算の一部として、又はより大規模な工程の一部として、遂行されてもよい。説明されている工程は、網羅的であること、制限すること、又は絶対的であることを意図しておらず、様々な工程を修正、挿入、又は削除できる。バリエーションの一例として、図２は単一のデジタルアセット（例えば、単一のデジタル証明書）の脈絡で概ね説明されているが、システムとプロセスは複数のデジタルアセット（例えば、２つ以上のデジタル証明書）でも同様に機能して処理する。別の一例として、装置１０６ａがセキュアな通信能力を持っていない場合は、工程２３５及び２４０を削除でき、ディストリビュータ装置１０８は暗号化されていない通信を使用して装置１０６ｂと通信できる。
【００８１】
さらに別の一例として、様々な実装において、プロビジョニングコントローラ１２０又は特殊な署名装置などの代理局は、同様に、ソフトウェア、ファームウェア、ヒューズブロブ、マニフェストファイルなどをはじめとするデジタルアセットを含む、別のデジタルアセット又は追加のデジタルアセットを、ディストリビュータ装置１０８へ送信し、ディストリビュータ装置１０８から装置１０６ｂに読み込ませることができる。かかる実装において、プロビジョニングコントローラ１２０は、加えて、又は代わりに、ストレージから要求されたデジタルアセットを検索すること、要求されたデジタルアセットを取得すること、又は要求されたデジタルアセットにアクセスすること、又は要求されたデジタルアセットのアクセスを指図することができる。例えば（図２に図示せず）、プロビジョニングコントローラ１２０又はその認定代理は、装置１０６ａに読み込まれて装置１０６ａによって実行される実行可能ソフトウェアイメージ（例えば、データベース１２５に保存されたコンパイル済みコンピュータプログラム）を検索し、この実行可能ソフトウェアイメージを装置にプログラミングするためディストリビュータ装置１０へ送信することができる。様々な実装において、プロビジョニングコントローラ１２０によってアクセスされるデジタルアセットは、装置１０６ａの製造業者１０５によってセキュアに供給、リリース、及び／又は認可されたソフトウェアなどだけで構成されてよく、この場合は、認可されていないソフトウェアを装置１０６ａに読み込むことはできない。一部の実装において、プロビジョニングコントローラ１２０によって検索されるデジタルアセットは、図１のデータベース１２５など、プロビジョニングコントローラ１２０と連係されたストレージデバイスやデータベースに保存されてよい。
【００８２】
図３は、本発明の実装と一致する、コンピュータ化装置をセキュアにプロビジョニングするプロセス２００の一例を示すスイムレーン図である。様々な実装において、示されているプロセス３００又は工程の一部又は全部は、汎用コンピューティングシステム（１つ以上のプロセッサ、又は１つ以上のコンピューティングサブシステムを含み得る）で実行するコードによって、ハードウェアのみのシステムによって、又はこれら２つのハイブリッドであるシステムによって、遂行されてよい。図３の上部にまたがって示されているように、プロセス３００に関わるエンティティは、コンピュータ化装置１０６の設置業者１３０と、設置業者１３０にあるディストリビュータ装置１３１と、プロビジョニングコントローラ１２０と、ＤＡＭＳ１１０とを含む。様々な実装において、これらのエンティティは、図１に関して説明されている通りであってよく、また本開示の全体を通じて説明されている通りであってよく、互いに通信してよい。
【００８３】
図３の例に示されているように、プロセス３００は３０５で始まり、ここで設置業者１３０は、製造業者１０５によって製造され、発売又は出荷された（図２の工程２７０参照）装置１０６ｂ（例えば、ＯＢＵ又はＥＣＵ）を受け取る。３１０では、設置業者１３０が、装置１０６ｂをその運用環境に、例えばより大規模なシステムに設置することができる。例えば、設置業者１３０は製造業者１０５からＯＢＵを購入する自動車メーカーであってよく、設置業者１３０はＯＢＵを自動車に設置することができる。様々な実装において、装置１０６ｂの設置は、設置後に装置１０６ｂの動作、機能、などを試験することと、関連ステータスデータを収集することとを含んでよい。
【００８４】
一部の実装において、装置１０６ｂは部分的にしかプロビジョニングされておらず、完全には機能しない場合がある。例えば、装置１０６ｂの製造業者１０５は加入証明書のみで装置１０６ｂをプロビジョニングしたかもしれず、フル機能を得るためには、例えば、別の完全にプログラミングされた装置１０６と通信する機能を得るためには、匿名証明書などの別のデジタル証明書で装置１０６ｂをさらにプロビジョニングする必要がある。
【００８５】
３１５では、設置業者１３０（例えば、スタッフメンバー１３２）がプロビジョニングコントローラ１２０へ設置ステータスデータを送信する。様々な実装において、設置ステータスデータは、設置された装置の変更不可能な識別子、例えば、シリアル番号、又は一旦生成されたら決して消去されない鍵対の公開鍵といった固定され一意的に識別する他の情報を含む。設置ステータスデータは他の情報を、例えば、設置業者１３０の一意な識別子、装置１０６ｂがいつどのようにして設置されたかを伝える情報、設置された装置１０６ｂに行われた試験の結果に関する情報、設置業者１３０が該当する仕様、契約条件、及び又は指図に従って装置１０６ｂを設置したことを証明する情報、及び／又は他の類似する情報を含んでもよい。
【００８６】
３２０では、設置業者１３０のユーザが認可されたユーザであるか否かをプロビジョニングコントローラ１２０が判断する。認可されたユーザではない場合、プロビジョニングコントローラ１２０は設置ステータスの連絡を拒絶する（図３に図示せず）。一方、認可されているユーザが要求を行っている場合（３２０、はい）、プロビジョニングコントローラ１２０は、設置ステータスデータで特定される装置１０６ｂが認可された装置であるか否かを判断する（３２５）。一部の実装において、プロビジョニングコントローラ１２０は、１）そのｄｂａｓｅ１２５に装置１０６ｂの記録があること、２）その記録が製造業者１０５で装置１０６ｂが正常にプロビジョニングされたことを示していること、３）その記録が（３２０で認可された設置業者であると確認された）設置業者１３０へ装置１０６ｂが送られたことを示していることを、そのデータベース１２５あらかじめ保存されている情報に照らして確認することによって、装置１０６ｂが認可されていると判断することができる。
【００８７】
設置ステータスデータで特定される装置が認可されていない場合、プロビジョニングコントローラ１２０は設置ステータスの連絡を拒絶する（図３に図示せず）。一方、設置ステータスデータで特定される装置１０６ｂが認可されている場合（３２５、はい）、プロビジョニングコントローラ１２０は３３０で、設置ステータスデータを装置１０６ｂに関連するログ情報と共に保存する。例えば、装置１０６ｂに関連するログ情報は、図２の工程２２７に関して説明したように、データベース１２５にあらかじめ保存されたものであってよい。
【００８８】
３３５で、プロビジョニングコントローラ１２０は、例えば設置業者１３０にある装置１０６ｂをプロビジョニングする要求をＤＡＭＳ１１０へ送信することによって、ＤＡＭＳ１１０がプロビジョニング要求を履行するように指図、命令、又は制御する。３４０では、ＤＡＭＳ１１０が、３３５からの要求の受信に応答して、また３３５からの要求の受信を条件として、３３５で要求されたデジタルアセットを生成及び／又は検索する。様々な実装において、ＤＡＭＳ１１０は、図２に関して説明したように、匿名証明書や他の公開鍵証明書など、要求されたデジタルアセットを作成又は生成できる。様々な実装において、ＤＡＭＳ１１０、又はＤＡＭ１１０の代わりにプロビジョニングコントローラ１２０は、加えて又は代わりに、装置１０６ｂタイプの装置に使用するためデータベース１２５にあらかじめ保存されている実行可能イメージなど、要求されたデジタルアセットを、ストレージから検索する、取得する、又はアクセスすることができる。
【００８９】
３４５では、ＤＡＭＳ１１０が３１５で設置ステータスを送信した設置業者１３０のディストリビュータ装置１３１へデジタルアセットを送信する。例えば、ＤＡＭＳ１１０は設置業者１３０のディストリビュータ装置１３１へ匿名証明書をセキュアに送信できる。
【００９０】
３５０では、ディストリビュータ装置１３１が、図２に関して説明したように、工程２３０〜２４５と同じか同様の工程を遂行する。３５５では、ディストリビュータ装置１３１がプロビジョニングコントローラ１２０へステータス情報を送信する。３６０では、プロビジョニングコントローラ１２０がステータス情報を受信し、工程２２７で保存されたステータス情報など、装置１０６ｂに関連する保存済みの情報と併せてステータス情報を保存する。それゆえ、プロビジョニングコントローラ１２０は、各装置１０６に関わる全てのシステム１００活動について監査証跡又は監査ログを継続する。
【００９１】
図３に示されたプロセス３００は、説明を目的とする例であり、制限することを意図していない。さらに、示されているプロセス３００は、開示されている特定の実装に一致する新しく革新的な特定の特徴を明確に説明するためいくぶん簡略化された一例であるが、数多くのバリエーションが可能である。例えば、機能と工程は特定の順序で遂行されるものとして示されているが、説明されている順序は一例に過ぎず、開示されている特定の実装に合わせて、これとは異なる様々な順序で工程を遂行することもできる。さらに、工程は専ら説明の目的のために個別のステップとして説明されているが、一部の実装においては、複数の工程が同時に遂行されてもよく、及び／又は単一の計算の一部として、又はより大規模な工程の一部として、遂行されてもよい。説明されている工程は、網羅的であること、制限すること、又は絶対的であることを意図しておらず、様々な工程を修正、挿入、又は削除できる。
【００９２】
図４Ａ及び図４Ｂはともに、本発明の実装による、拡張可能でセキュアな証明書管理システム（ＣＭＳ）４００を実装する例示的アーキテクチャのブロック図である。拡張可能なＣＭＳ４００の様々な実装は、超大量装置トランザクション及び証明書生成処理に使用されてよい。様々な実装において、拡張可能なＣＭＳ４００は、複数のサーバ、ＨＳＭ、複数の計算エンジン又はコンピューティングエンジン、及び複数のアプリケーションプラットフォームを使用して実装されてよい。図４Ａ及び図４Ｂに示された例示的実装において、アプリケーションプラットフォームは１つ以上の仮想マシン（ＶＭ）を各々含んでよい。追加の実装又は代替の実装において、アプリケーションプラットフォームは各々、１つ以上のハードウェアプラットフォーム、例えば、アプリケーションサーバ、コンピュータ、又はソフトウェアアプリケーションをホストして実行できる他のコンピュータハードウェアなどを含んでよい。図４Ａ及び図４Ｂの例において、加入証明書局４３０のアプリケーションプラットフォームは、加入証明書局アプリケーションを実行する１つ以上のＶＭであってよく、匿名証明書局４４０のアプリケーションプラットフォームは、匿名証明書局アプリケーションをホストして実行する働きをする１つ以上のＶＭであってよい。同様に、結合局１  ４５０のアプリケーションプラットフォームは、結合局１アプリケーションをホストして実行するように構成された１つ以上のＶＭであってよく、結合局２  ４６０のアプリケーションプラットフォームは、結合局２アプリケーションをホストして実行する働きをする１つ以上のＶＭであってよい。拡張可能なＣＭＳ４００の例は、プライベートデータセンター、ＡｍａｚｏｎのＡｍａｚｏｎウェブサービス（ＡＷＳ）などのクラウドデータセンター、又はプライベートデータセンターとクラウドデータセンターのハイブリッドで実装されてよい。
【００９３】
一部の実装において、拡張可能なＣＭＳ４００は、セキュリティ証明書、例えば、図１に関して説明されているように機能でき、また本開示の他の部分で説明されているように機能できる、製造業者１０５のディストリビュータ装置１０８によって使用される、加入証明書や匿名証明書などを提供できる。いくつかの実装において、拡張可能なＣＭＳ４００は、ディストリビュータ装置１０８に証明書を提供するため、図１に関して説明したデジタルアセット管理システム（ＤＡＭＳ）１１０とやり取りできる。
【００９４】
図４Ａの例に示されているように、ＣＭＳ４００のアーキテクチャは、望ましくは別々のサーバで実装される２つのプロビジョニングコントローラ１２０、すなわち一次プロビジョニングコントローラと待機プロビジョニングコントローラとを、含んでよい。２つのプロビジョニングコントローラ１２０は、一次プロビジョニングコントローラに収容されているオブジェクト、データなどを、待機（二次）プロビジョニングコントローラにコピー又は収容させる機能を含む。待機プロビジョニングコントローラは、一次プロビジョニングコントローラが何らかの理由でオフラインになる場合に、オンラインにされて一次プロビジョニングコントローラに取って代わることができる。これは、プロビジョニングコントローラ１２０の連続（又は非常に高度な）アベイラビリティを提供する。様々な実装において、一次及び待機プロビジョニングコントローラは、図１に関して説明されている通りであってよく、また本開示の他の部分で説明されている通りであってよい。様々な実装において、プロビジョニングコントローラ１２０は、図１のプロビジョニングコントローラ１２０と製造業者のディストリビュータ装置１０８との間の接続及び通信に関して本明細書で説明されているやり方と同じか同様のやり方で拡張可能なＣＭＳ４００に接続してよい。
【００９５】
概して、プロビジョニングコントローラ１２０は、インフラを備えるシステム要素を、明確に認可された要素だけが拡張可能なＣＭＳ４００に参加して拡張可能なＣＭＳ４００とやり取りができる形に管理する。様々な実装において、プロビジョニングコントローラ１２０は、ユーザ（例えば、製造業者１０５又は設置業者１３０）の従業員識別・認可システムと一体化でき、あるいは独自の識別・認可機能を提供して、認可されたユーザだけが拡張可能なＣＭＳ４００を使用できるようにすることができる。一部の実装において、プロビジョニングコントローラ１２０は装置ライフサイクル管理（ＤＬＭ）コントローラであってよく、例えば一次及び待機ＤＬＭコントローラであってよい。様々な実装において、プロビジョニングコントローラ１２０は、ＣＭＳ４００タイプのコンポーネント内に存在するコントローラであってよい。例えば、図４Ａ及び図４Ｂにおいて、プロビジョニングコントローラ１２０は、登録局４２０、加入証明書局４３０、匿名証明書局４４０、及び結合局４５０、４６０のために存在する１つのセット又は一対のコントローラであってよい。
【００９６】
図４Ａ及び図４Ｂに示されているように、拡張可能なＣＭＳ４００のアーキテクチャは、リプリゼンテーショナル・ステート・トランスファ（ＲＥＳＴ）ウェブサービスとして実装された登録局４０５、登録局４２０、登録局計算エンジン４２５、加入証明書局４３０、加入証明書局計算エンジン４３５、匿名証明書局４４０、匿名証明書局計算エンジン４４５、結合局１  ４５０、結合局１計算エンジン４５５、結合局２  ４６０、結合局１計算エンジン４６５、メッセージキュー４１０、４１１、４１２、４１３、４１４、４１５、４１６、４１７、４１８、４１９、及び１つ以上のデータベース４７０を含む。以下の段落では、これらのコンポーネントの各々を説明する。
【００９７】
拡張可能なＣＭＳ４００のアーキテクチャは、セキュリティ機能から非セキュリティ関連アプリケーションを有利にも分離する。図４Ａ及び図４Ｂの例に示されているように、登録局４２０、加入証明書局４３０、匿名証明書局４４０、及び結合局４５０、４６０は、いずれも非セキュリティ関連アプリケーション及び機能から独立した各自の専用計算エンジン４２５、４３５、４４５、４５５、及び４６５上で実行する各自のＶＭ上のアプリケーションとして実装されている。これは、ＨＳＭの性能が遅い、又はクラウドサービスプロバイダがＨＳＭを供給できない、又はその適正ＨＳＭ管理が不確かである、従来のシステムを凌ぐ、技術的な利点及び進歩とセキュリティ上の利点及び進歩の両方を提供する。拡張可能なＣＭＳ４００では、ＨＳＭを必要とする全ての暗号操作が計算エンジン（例えば、計算エンジン４２５、４３５、４４５、４５５、及び４６５のいずれか１つ以上）で遂行される。
【００９８】
図４Ａ及び図４Ｂに示されているように、重要なセキュリティ機能を互いに分離することにより、また別々の計算エンジンに分離することにより、例えば、登録局４２０、加入証明書局４３０、匿名証明書局４４０、及び結合局４５０、４６０によって遂行される計算が多い暗号機能やセキュリティ機能（例えば、楕円曲線バタフライ拡張計算、又は楕円曲線デジタル署名）は、既存の登録局システムより大幅に速く遂行される。この設計は、「ボトルネック」となるアプリケーションを必要に応じて個別に拡張可能とすることによって、トランザクション処理の大幅改善を可能にする。このため、本開示と一致する実装は、特に、技術的に有利なシステムアーキテクチャを提供することで、既存の登録局システムに伴うボトルネックを低減する。例えば、登録局４０５及び４２０で実行する登録局アプリケーションが拡張する必要がある場合は、さらなるＶＭを追加でき、登録局計算エンジン４２５のセキュア計算能力に変更を加える必要はない。代わりに、セキュリティ計算が性能を制限している場合は、さらなるセキュア登録局計算エンジン４２５を追加できる。ＣＭＳ４００の他のコンポーネントにもこれと同じ多次元拡張が当てはまる。これらの能力は、既存のセキュリティクレデンシャル管理システム（ＳＣＭＳ）を凌ぐ大幅な性能改善と拡張性を提供する。
【００９９】
図４Ａ及び図４Ｂに示された例では、入力メッセージキュー４１０、４１１、４１２、４１３、４１４、４１５、４１６、４１７、４１８、及び４１９を含むメッセージングサブシステム又はメッセージキューイングサービスによって登録局４０５が他のコンポーネントに接続されており、かつ他のコンポーネントが互いに接続されている。図４Ａ及び図４Ｂの例示的実装では、入力メッセージキュー４１０、４１１、４１２、４１３、４１４、４１５、４１６、４１７、４１８、及び４１９は単方向性であるから、メッセージはこれらのキューの中で一方向に（例えば、クライアントからサーバへ）流れる。これは、ＶＭと計算エンジンの各々につき単一の入力キューを設けることにより、簡素さという技術的なメリットを提供する。
【０１００】
一部の実装において、メッセージングサービスは高速メッセージキューイングサービスであってよく、例えば、Ａｍａｚｏｎウェブサービスによって提供されるＡｍａｚｏｎシンプルキューサービス（ＳＱＳ）であってよい。例えば、かかる実装によると、メッセージキュー４１０、４１１、４１２、４１３、４１４、４１５、４１６、４１７、４１８、及び４１９は、ＳＱＳメッセージキューであってよい。入力メッセージキュー４１０、４１１、４１２、４１３、４１４、４１５、４１６、４１７、４１８、４１９を使用してアプリケーションＶＭと計算エンジンを互いに通信可能なように接続することにより、アプリケーションＶＭと計算エンジンは必要に応じて個別に拡張できる。すなわち、登録局４２０、加入証明書局４３０、匿名証明書局４４０、及び結合局４５０、４６０の各アプリケーションプラットフォームは、それぞれの入力メッセージキューを通じて計算エンジン４２５、４３５、４４５、４５５、及び４６５へ通信可能なように接続されているので、ＣＭＳ４００のこれらのコンポーネントとデータベース４７０はいずれも、互いに別々に拡張する。
【０１０１】
上述したように、そして図４Ａ及び図４Ｂの非制限的例に示されているように、登録局４０５、４２０、証明書局４３０、４４０、及び結合局４５０、４６０の各々は、各自の仮想マシン（ＶＭ）上でアプリケーションとして実装されてよい。追加の実装又は代替の実装において、登録局４０５、４２０、証明書局４３０、４４０、及び結合局４５０、４６０のいずれか１つ以上は、ハードウェアプラットフォーム（例えば、サーバ又は計算エンジン）上で実行してよい。以下の段落では、アプリケーションプラットフォーム（例えば、ＶＭ又はハードウェアプラットフォーム）上で実行するこれらのアプリケーションの各々の役割と機能を説明する。
【０１０２】
様々な実装において、登録局４０５は、プロビジョニングネットワークにおいて、デジタル証明書や他種デジタルセキュリティアセットを求めるユーザ要求を検証し、証明書局（例えば、加入証明書局４３０及び匿名証明書局４４０）にそのデジタル証明書を発行させる局であってよい。様々な実装において、登録局４０５は公開鍵基盤（ＰＫＩ）システムで既知の登録局と同様であってよい。様々な実装において、登録局４０５はリプリゼンテーショナル・ステート・トランスファ（ＲＥＳＴ）ウェブサービスとして実装されてよい。登録局４０５について図４Ａで３つの「積み重なった」長方形で表現されているように、様々な実装においては、同時に実行する登録局４０５の複数インスタンスがあってよい。図４Ａ及び図４Ｂの他の「積み重なった」要素についても、これが同様に表現されている。ＣＭＳ４００の登録局機能は非中央的であり、その機能は、ＲＥＳＴウェブサービスとして実装された登録局４０５の複数インスタンスと登録局４２０の複数インスタンスによって遂行できる。登録局４０５、４２０の第一の役割は、証明書プロビジョニング要求を承諾し履行することであり、それと同時に、署名する匿名証明書局４４０が特定のコンピュータ化装置に行きつく証明書がどれなのかを知ることを防ぐ。登録局４０５、４２０は、ＣＭＳ４００の中で自身の役割を果たすため、メッセージキュー４１４、４１６、及び４１８を通じて匿名証明書局４４０、結合局４５０、４６０と直接やり取りする。
【０１０３】
長方形の左下から現れる「ＤＢ」の矢印で表現されているように、登録局４０５（並びに、「ＤＢ」の矢印で示された図４Ａ及び図４Ｂの他のコンポーネント）は、それぞれのデータベース４７０へ接続されてよい。図４Ａにはただ単一のデータベース４７０が示されているが、ＣＭＳ４００がデータの保存と検索のために一群のデータストア又はデータベース４７０を利用できることを理解されたい。例えば、データベース４７０は、必要に応じてデータの分離を可能にする１つ以上のテーブルが各々備わった１つ以上のデータベース論理又は物理ユニットから構成されてよい。本明細書で使われている用語「データベース」は、１つ以上のデータベース又はデータストアを指す。いくつかの実装において、複数データベース４７０の使用は、登録局４０５「ＤＢ」の矢印で示された図４Ａ及び図４Ｂの他のコンポーネントとの間でデータの分離を可能にする。例えば、かかる複数データベース４７０の使用は、登録局４０５、４２０、証明書局４３０、４４０、及び結合局４５０、４６０間でデータの分離を可能にする。
【０１０４】
好適な実装において、データベース４７０は１つ以上の高速アクセス低待ち時間データベースから成る集まりである。一部の実装において、データベース４７０はＮｏＳＱＬデータベースであってよく、あるいは、例えば、Ａｍａｚｏｎウェブサービスによって提供されているＤｙｎａｍｏＤＢデータサービスなどのデータベースサービスであってよい。様々な実装において、データベース４７０に保存されるデータはアプリケーション次第であるが、過去の発行済み証明書、様々な結合局の値、証明書が発行された装置に関するデータ、作業者の行為などを含み得る。なお、データは、暗号化されていない状態で、暗号化された状態で、又はこれらの状態の組み合わせで、保存されてよい。
【０１０５】
様々な実装において、登録局４０５によって作成されるデジタル証明書は、別々の部分に、例えば、加入デジタル証明書と匿名デジタル証明書に分割されるため、拡張可能なＣＭＳ４００は加入証明書局４３０と匿名証明書局４４０とを含む。
【０１０６】
同時に実行する加入証明書局４３０の複数インスタンスがあってよいため、加入証明書局４３０はＣＭＳ４００の非中央コンポーネントである。加入証明書局４３０について図４Ａで３つの「積み重なった」長方形で示されているように、一部の実装においては、同時に実行する加入証明書局４３０の複数インスタンスがあってよい。加入証明書局４３０は、加入証明書を求める要求を登録局４２０から受信できる。加入証明書局４３０の第一の役割は、登録局４２０からの要求を履行して、エンドユーザ装置に、例えば、図１に示された製造業者１０５のディストリビュータ装置１０８などに、加入証明書を発行することである。図５Ａを参照して後述するように、加入証明書局４３０は、ＣＭＳ４００の中でその役割を果たすために、登録局４２０と直接やり取りする。
【０１０７】
匿名証明書局４４０はＣＭＳ４００の非中央コンポーネントであり、同時に実行する匿名証明書局４４０の複数インスタンスがあってよい。繰り返し述べると、匿名証明書局４４０について図４Ａで３つの「積み重なった」長方形で示されているように、様々な実装においては、同時に並行して実行する匿名証明書局４４０の複数インスタンスがあってよい。匿名証明書局４４０は、匿名証明書を求める要求を登録局４２０から受信できる。匿名証明書局４４０の第一の役割は、登録局４２０からの要求を履行して、エンドユーザ装置に、例えば、図１に示された製造業者１０５のディストリビュータ装置１０８などに、匿名証明書を発行することである。いくつかの実装において、匿名証明書局４４０は、Ｖ２Ｖ機能のために短期間匿名証明書の要求を履行する。図５Ｂを参照して後述するように、匿名証明書局４４０は、ＣＭＳ４００の中でその機能を果たすために、登録局４２０と直接やり取りする。
【０１０８】
様々な実装において、図４Ｂに示された結合局４５０、４６０は、取り消しの目的のために、証明書要求元の識別情報（すなわち、証明書要求元の装置の一意な識別子）を発行された匿名証明書に結び付ける。すなわち、結合局１  ４５０と結合局２  ４６０は、証明書要求元の装置の一意な識別子として、それぞれの結合値を、発行された匿名証明書にそれぞれ提供する。結合局１  ４５０と結合局２  ４６０は、結合値を求める要求を登録局４２０から受信し、その後、要求された結合値を登録局４２０に提供することができる。図５Ａを参照して後述するように、結合局４５０、４６０は、結合値の要求を履行するために、登録局４２０と直接やり取りする。
【０１０９】
様々な実装において、計算エンジン４２５、４３５、４４５、４５５、及び４６５とプロビジョニングコントローラ１２０がＨＳＭを含んでいることにより、これらのコンポーネントは、ハッカーに不当に脅かされることなくセキュアな計算を実行できる。一部の実装において、計算エンジン４２５、４３５、４４５、４５５、及び４６５は、組込み型ＨＳＭを必要とせず自主的にセキュアな計算を実行するように設計されてもよく、かかる実装では、計算エンジンがＨＳＭを具現する。
【０１１０】
様々な実装において、ＣＭＳ４００では様々なＨＳＭバージョンが使用されてよい。例えば、ＨＳＭは、計算エンジン４２５、４３５、４４５、４５５、及び４６５のいずれか１つ以上の中にプラグインカードとして取り付けられる組込み型ＨＳＭを含み得る。かかる例示的実装において、組込み型ＨＳＭは、ペリフェラル・コンポーネント・インターコネクト（ＰＣＩ）ＨＳＭとして、又はＰＣＩエクスプレス（ＰＣＩｅ）ＨＳＭとして、計算エンジンのいずれか１つ以上に取り付けられてよい。また、例えば、ＣＭＳ４００内のＨＳＭは、専用の筐体に入って計算エンジンから独立したネットワーク取り付け型又はネットワーク接続型の外付けＨＳＭをも含み得る。
【０１１１】
当業者なら、図４Ａ及び図４Ｂに示されたコンポーネント、プロセス、データ、工程、及び実装の詳細が、説明を簡潔かつ明確にするために提示された例であることを認めるであろう。この例は制限することを意図しておらず、また数多くのバリエーションが可能であるため、本発明の原理から逸脱せずに、別のコンポーネント、プロセス、実装の詳細、及びバリエーションを使用することもできる。
【０１１２】
図５Ａ及び図５Ｂはともに、本発明の実装と一致する、証明書などのクレデンシャルをセキュアに提供する例示的プロセス５００を示すスイムレーン図である。様々な実装において、示されているプロセス５００又は工程の一部又は全部は、汎用コンピューティングシステム（１つ以上のプロセッサ、又は１つ以上のコンピューティングサブシステムを含み得る）上で実行するコードによって、ハードウェアのみのシステムによって、又はこれら２つのハイブリッドであるシステムによって、遂行されてよい。図５Ａ及び図５Ｂの上部にまたがって示されているように、プロセス５００に関わるエンティティは、製造業者１０５にあるディストリビュータ装置１０８と、ＣＭＳホストの登録局４２０と、結合局４５０、４６０と、匿名証明書局４４０と、加入証明書局４３０とを含む。様々な実装において、これらのエンティティは、図４Ａ及び図４Ｂに関して説明されている通りであってよく、また本開示の全体を通じて説明されている通りであってよく、互いに通信してよい。
【０１１３】
図５Ａの例に示されているように、プロセス５００は加入関連の工程５０５〜５３５で始まる。加入証明書局４３０の第一の役割は、登録局４２０からの要求を履行して、エンドユーザ装置に、例えば、ディストリビュータ装置１０８などに、加入証明書を発行することである。加入関連の工程５０５〜５３５を参照して後述するように、加入証明書局４３０は、要求された加入証明書をディストリビュータ装置１０８に発行するために、登録局４２０と直接やり取りする。
【０１１４】
５０５では、製造業者１０５のディストリビュータ装置１０８が装置１０６ａにプロビジョニングされる（例えば、装置１０６ａによって使用される）加入証明書を登録局４２０に要求し、この要求は加入証明書の行先にあたる装置１０６ａを特定できる。要求は、例えば、新しい装置１０６Ａ（例えば、新しい製品）のために加入証明書を要求している製造業者１０５のディストリビュータ装置１０８であってよい。図２を参照して上述したように、加入証明書は、そのホルダをエコシステム内の認可されたパーティシパントとして識別する公開鍵証明書であり、このエコシステムの中では、全てのパーティシパントが有効な加入証明書を共有しなければならず、（例えば、米国運輸省のＶ２Ｘエコシステムなど）、認可されたパーティシパントは、エコシステム内での装置１０６の通信及び工程を可能にする匿名証明書を受け取ることもできる（例えば、米国運輸省のＶ２Ｘエコシステムの例で、車両と沿道インフラとの通信及び工程を可能にするため）。
【０１１５】
５１０では、加入証明書の要求が登録局４２０で受信され、その後、登録局４２０から加入証明書局４３０へ送信される。様々な実装において、この工程は、署名の検証、未承認装置のリスト（例えば、ブラックリスト）を使用して加入証明書の行先にあたる装置（例えば、装置１０６ａ）の取り消し状況をチェックすること、要求元（例えば、ディストリビュータ装置１０８）が登録局４２０に加入証明書を要求することが可能であるか否かを判断することなど、登録局４２０が要求を復号して検証する作業を伴う場合がある。例えば、工程５１０は、製造業者１０５のユーザが認可されたユーザ（例えば、スタッフ１０９の一員）であるか否かを判断することを含んでよい。一部の実装において、登録局４２０は５１０で、加入証明書を受け取る装置１０６ａ（例えば、製品）がシステム１００での使用が承認されているか否かも判断してよい。場合によっては、承認済み装置のリスト（例えば、ホワイトリスト）が図１の調整業者１４０によって提供されてよく、この判断を下すためにプロビジョニングコントローラ１２０によって使用されてよい。加入証明書の要求が検証された後は、登録局４２０から加入証明書局４３０へ要求が送信される。この要求は、登録局４２０によって作成される加入証明書生成要求として送信されてよい。
【０１１６】
５１５では、加入証明書の要求が加入証明書局４３０で受信される。要求の受信に応答し、５２０で、加入証明書局４３０は要求された加入証明書を生成し、生成した加入証明書を登録局４２０へ送り返す。５２５では、加入証明書が登録局４２０で受信され、５３０では、登録局４２０が加入証明書をディストリビュータ装置１０８へ送信する。５３５では、ディストリビュータ装置１０８が加入証明書を受信する。この時点で、ディストリビュータ装置１０８は装置（例えば、装置１０６ａ）に加入証明書をプロビジョニングでき、これにより装置は加入証明書を使用できるようになり、加入関連の工程は完了する。
【０１１７】
工程５４０〜５９９は匿名証明書のプロビジョニングに関する。５４０では、ディストリビュータ装置１０８が登録局４２０に匿名証明書を要求する。これらの匿名証明書は装置１０６ａにプロビジョニングされるものであり（例えば、装置１０６ａによって使用されるものであり）、この要求は匿名証明書の行先にあたる装置１０６ａを特定できる。要求は、例えば、先に加入証明書を受け取ったコンピュータ化装置（例えば、加入された装置１０６Ａ）のために匿名証明書を要求している製造業者１０５のディストリビュータ装置１０８であってよい。匿名証明書はある程度の数量（例えば、１週間分、１カ月分、又は１年分）の公開鍵証明書を含む。
【０１１８】
５４５では、匿名証明書の要求が登録局４２０で受信され、登録局４２０はその後、匿名証明書のプロビジョニングを開始する。
【０１１９】
工程５５０〜５７０では、結合局４５０、４６０が、結合値の要求を履行するために、登録局４２０と直接やり取りする。５５０では、登録局４２０が第１の結合値セット（ＬＡ１）を求める要求を結合局１  ４５０へ送信する。
【０１２０】
５５５では、第１の結合値セットの要求の受信に応答して、結合局１  ４５０が第１の結合値セットを生成して登録局４２０へ送信する。５５７では、第１の結合値セットが登録局４２０で受信される。５６０では、登録局４２０が第２の結合値セット（ＬＡ２）を求める要求を結合局２  ４６０へ送信する。
【０１２１】
次に、図５Ｂに示されているように、５６５では、第２の結合値セットの要求の受信に応答して、結合局２  ４６０が第２の結合値セットを生成して登録局４２０へ送信する。５７０では、第２の結合値セットが登録局４２０で受信される。
【０１２２】
いくつかの実装において、図５Ａ及び図５Ｂに示された結合局４５０、４６０は、取り消しの目的のために、証明書要求元の識別情報（すなわち、証明書要求元の装置の一意な識別子）を発行された匿名証明書に結び付けることができる。すなわち、結合局１  ４５０と結合局２  ４６０は、証明書要求元の装置の一意な識別子として、第１及び第２のセット結合値を、プロセス５００の一部として匿名証明書局４４０によって発行された匿名証明書にそれぞれ提供する。結合局１  ４５０と結合局２  ４６０は、工程５５０及び５６０で登録局４２０から送信される結合値の要求を受信し、その後、要求された結合値を工程５５５及び５６５で登録局４２０に提供する。
【０１２３】
非限定的な例示的実装において、工程５５０〜５７０でやり取りされる結合値の要求とそれらの要求に対する応答は、以下に示すヘッダー項目とペイロードデータ項目を有するメッセージを含んでよい。
＃  Ｒｅｇｉｓｔｒａｔｉｏｎ  Ａｕｔｈｏｒｉｔｙ（ＲＡ）−＞Ｌｉｎｋａｇｅ  Ａｕｔｈｏｒｉｔｙ−ｘ（ＬＡ−ｘ）：Ｉｎｉｔｉａｌ  Ｌｉｎｋａｇｅ  Ｓｅｅｄ  Ｒｅｑｕｅｓｔ  ｛
ｈｅａｄｅｒ：｛
ｍｓｇＩＤ：ｍｔ．ＭＳＧ＿ＲＡ＿ＬＡ＿ＬＩＮＫＡＧＥ＿ＳＥＥＤ＿ＲＥＱＵＥＳＴ＿ＭＳＧ，
ｔａｓｋＰｏｓｉｔｉｏｎ：‘‘Ｌｉｎｋａｇｅ  Ａｕｔｈｏｒｉｔｙ  ｎｕｍｂｅｒ  １  ｏｒ  ２’’
｝，
ｐａｙｌｏａｄ：｛
ｉｄｅｎｔｉｆｉｅｒ：‘‘Ｍｅｓｓａｇｅ  ｉｄｅｎｔｉｆｉｅｒ’’，
ｉＭｉｎ：Ｎｕｍｂｅｒ，
ｉＭａｘ：Ｎｕｍｂｅｒ，
ｊＭａｘ：Ｎｕｍｂｅｒ
｝
｝
＃  ＬＡ−ｘ−＞ＲＡ：Ｉｎｉｔｉａｌ  Ｌｉｎｋａｇｅ  Ｓｅｅｄ  Ｒｅｓｐｏｎｓｅ  ｛
ｈｅａｄｅｒ：｛
ｍｓｇＩＤ：ｍｔ．ＭＳＧ＿ＬＡ＿ＲＡ＿ＬＩＮＫＡＧＥ＿ＳＥＥＤ＿ＲＥＳＰＯＮＳＥ＿ＭＳＧ，
ｔａｓｋＰｏｓｉｔｉｏｎ：‘‘Ｌｉｎｋａｇｅ  Ａｕｔｈｏｒｉｔｙ  ｎｕｍｂｅｒ  １  ｏｒ  ２’’
｝，
ｐａｙｌｏａｄ：｛
ｉｄｅｎｔｉｆｉｅｒ：‘‘Ｉｎｃｏｍｉｎｇ  Ｍｅｓｓａｇｅ  ｉｄｅｎｔｉｆｉｅｒ’’，
ｌｉｎｋａｇｅＣｈａｉｎＩｄｅｎｔｉｆｉｅｒ：‘‘Ｌｉｎｋａｇｅ  Ｃｈａｉｎ  ＩＤ−−ＨａｓｈｅｄＩｄ８  ｏｆ  ＡＥＳ  ＣＣＭ  Ｅｎｃｒｙｐｔｅｄ  Ｌｉｎｋａｇｅ  Ｓｅｅｄ’’，
ｉＭｉｎ：Ｎｕｍｂｅｒ，
ｉＭａｘ：Ｎｕｍｂｅｒ，
ｊＭａｘ：Ｎｕｍｂｅｒ
｝
｝
＃  ＲＡ−＞ＬＡ−ｘ：ＰｒｅＬｉｎｋａｇｅ  Ｖａｌｕｅ  Ｃｈａｉｎ  Ｒｅｑｕｅｓｔ（Ｃｈｕｎｋｅｄ  １０  ｉＲａｎｇｅ  ａｔ  ａ  ｔｉｍｅ）｛
ｈｅａｄｅｒ：｛
ｍｓｇＩＤ：ｍｔ．ＭＳＧ＿ＲＡ＿ＬＡ＿ＰＲＥ＿ＬＩＮＫＡＧＥ＿ＶＡＬＵＥ＿ＲＥＱＵＥＳＴ＿ＭＳＧ，
ｉＲａｎｇｅＳｅｇｍｅｎｔＣｈｕｎｋＳｉｚｅ：‘‘ｓｅｔ  ｔｏ  １０’’，
ｃｕｒｒｅｎｔＩＲａｎｇｅＳｅｇｍｅｎｔ：‘‘Ｉｎｄｅｘ  ｏｆ  ｓｅｇｍｅｎｔ  ｉｎ  ｔｏｔａｌ  ｒｅｑｕｅｓｔ’’，
ｔａｓｋＰｏｓｉｔｉｏｎ：‘‘Ｌｉｎｋａｇｅ  Ａｕｔｈｏｒｉｔｙ  ｎｕｍｂｅｒ  １  ｏｒ  ２’’
｝，
ｐａｙｌｏａｄ：｛
ｉｄｅｎｔｉｆｉｅｒ：‘‘Ｉｎｃｏｍｉｎｇ  Ｍｅｓｓａｇｅ  ｉｄｅｎｔｉｆｉｅｒ’’，
ｌｉｎｋａｇｅＣｈａｉｎＩｄ：‘‘Ｌｉｎｋａｇｅ  Ｃｈａｉｎ  ＩＤ  ｔｏ  ｕｓｅ  ｔｏ  ｃｒｅａｔｅ  Ｐ  Ｌｉｎｋａｇｅ  Ｖａｌｕｅｓ（ＰＬＶｓ）’’，
ｉＭｉｎ：Ｎｕｍｂｅｒ，
ｉＭａｘ：Ｎｕｍｂｅｒ，
ｊＭａｘ：Ｎｕｍｂｅｒ
｝
｝
＃  ＬＡ−ｘ−＞ＲＡ：ＰｒｅＬｉｎｋａｇｅ  Ｖａｌｕｅ  Ｃｈａｉｎ  Ｒｅｓｐｏｎｓｅ  ｛
ｈｅａｄｅｒ：｛
ｍｓｇＩＤ：ｍｔ．ＭＳＧ＿ＬＡ＿ＲＡ＿ＰＲＥ＿ＬＩＮＫＡＧＥ＿ＶＡＬＵＥ＿ＲＥＳＰＯＮＳＥ＿ＭＳＧ，
ｉＲａｎｇｅＳｅｇｍｅｎｔＣｈｕｎｋＳｉｚｅ：‘‘ｓｅｔ  ｔｏ  １０’’，
ｃｕｒｒｅｎｔＩＲａｎｇｅＳｅｇｍｅｎｔ：‘‘Ｉｎｄｅｘ  ｏｆ  ｓｅｇｍｅｎｔ  ｉｎ  ｔｏｔａｌ  ｒｅｑｕｅｓｔ’’，
ｔａｓｋＰｏｓｉｔｉｏｎ：‘‘Ｌｉｎｋａｇｅ  Ａｕｔｈｏｒｉｔｙ  ｎｕｍｂｅｒ  １  ｏｒ  ２’’
｝，
ｐａｙｌｏａｄ：｛
ｉｄｅｎｔｉｆｉｅｒ：‘‘Ｉｎｃｏｍｉｎｇ  Ｍｅｓｓａｇｅ  ｉｄｅｎｔｉｆｉｅｒ’’，
ｐｒｅＬｉｎｋａｇｅＶａｌｕｅｓ：Ａｒｒａｙ  ｏｆ  Ｅｎｃｒｙｐｅｄ  Ｐｒｅｌｉｎｋａｇｅ  ｖａｌｕｅｓ  ｆｏｒ  ｔｈｉｓ  ｓｅｇｍｅｎｔ  ｏｆ  ｉ，ｊ  ｔｕｐｌｅｓ，
ｌｉｎｋａｇｅＣｈａｉｎＩｄｅｎｔｉｆｉｅｒ：‘‘Ｌｉｎｋａｇｅ  Ｃｈａｉｎ  ＩＤ  ｔｏ  ｕｓｅ  ｔｏ  ｃｒｅａｔｅ  Ｐ  Ｌｉｎｋａｇｅ  Ｖａｌｕｅｓ（ＰＬＶｓ）’’，
ｉＭｉｎ：Ｎｕｍｂｅｒ，
ｉＭａｘ：Ｎｕｍｂｅｒ，
ｊＭａｘ：Ｎｕｍｂｅｒ
｝
｝
【０１２４】
図５Ｂを引き続き参照すると、５７５では、登録局４２０が匿名証明書の要求を匿名証明書局４３０へ送信する。この要求は、登録局４２０によって作成される一まとまりの匿名証明書生成要求として送信されてよい。
【０１２５】
５８０では、匿名証明書の要求が匿名証明書局４３０で受信される。要求の受信に応答し、５８５で、匿名証明書局４３０は要求された匿名証明書を生成し、生成した匿名証明書を登録局４２０へ送り返す。５９０では、匿名証明書が登録局４２０で受信される。
【０１２６】
５９５で、ディストリビュータ装置１０８は、要求した匿名証明書が準備できているか（すなわち、生成され利用できるか）否かを問い合わせるため、登録局４２０に複数の要求を送信できる。いくつかの実装において、工程５９５の問い合わせは、工程５４０で匿名証明書の要求が送信された後に随時送信されてよい。例えば、ディストリビュータ装置１０８は、工程５４０で匿名証明書の要求を登録局４２０へ送信した後に、要求した匿名証明書が準備できているか否かを判断するために、定期的に登録局４２０へ問い合わせを送信できる。この例において、工程５９５の問い合わせのいずれか１つ以上は、工程５４５〜５９０と並行して（すなわち、匿名証明書が生成されている間に）送信されてもよい。
【０１２７】
５９８では、匿名証明書が準備できると、登録局４２０が匿名証明書をディストリビュータ装置１０８へ送信する。５９９では、ディストリビュータ装置１０８が匿名証明書を受信する。この時点で、ディストリビュータ装置１０８は装置（例えば、装置１０６ａ）に匿名証明書をプロビジョニングでき、これにより装置は匿名証明書を使用できるようになり、匿名証明書をプロビジョニングする工程は完了する。
【０１２８】
いくらかの非限定的な例示的実装において、工程５７５〜５９０でやり取りされる匿名証明書の要求とそれらの要求に対する応答は、以下に示すヘッダー項目とペイロードデータ項目を有するメッセージを含んでよい。
＃  Ｒｅｇｉｓｔｒａｔｉｏｎ  Ａｕｔｈｏｒｉｔｙ（ＲＡ）−＞Ｐｓｅｕｄｏｎｙｍ  Ｃｅｒｔｉｆｉｃａｔｅ  Ａｕｔｈｏｒｉｔｙ（ＰＣＡ）：Ｇｅｎｅｒａｔｅ  ａｎ  ｉｎｄｉｖｉｄｕａｌ  Ｃｅｒｔｉｆｉｃａｔｅ  ｛
ｈｅａｄｅｒ：｛
ｍｓｇＩＤ：ｍｔ．ＭＳＧ＿ＲＡ＿ＰＣＡ＿ＣＥＲＴ＿ＲＥＱＵＥＳＴ＿ＭＳＧ，
ｉＲａｎｇｅＳｅｇｍｅｎｔＣｈｕｎｋＳｉｚｅ：‘‘ｓｅｔ  ｔｏ  １０’’
｝，
ｐａｙｌｏａｄ：｛
ｉｄｅｎｔｉｆｉｅｒ：‘‘ｈａｓｈ  ｏｆ  ｐａｙｌｏａｄ  ｍｉｎｕｓ  ｔｈｉｓ  ｆｉｅｌｄ’’
ｉ：Ｎｕｍｂｅｒ，
ｐｌｖ１：‘‘Ｅｎｃｒｙｐｔｅｄ  ＰＬＶ  ｆｒｏｍ  ＬＡ１’’，
ｐｌｖ２：‘‘Ｅｎｃｒｙｐｔｅｄ  ＰＬＶ  ｆｒｏｍ  ＬＡ２’’，
ｓｅｅｄＰｕｂｌｉｃＫｅｙ：‘‘Ｓｅｅｄ  Ｖｅｒｉｆｙ  Ｐｕｂｌｉｃ  ｋｅｙ’’，
ｅｎｃｒｙｐｔＫｅｙ：‘‘Ｓｅｅｄ  Ｅｎｃｒｙｐｔ  Ｐｕｂｌｉｃ  ｋｅｙ’’，
ｓｔａｒｔＳｅｃｏｎｄｓ：‘‘ｓｔａｒｔ  ｔｉｍｅ  ｆｏｒ  ｔｈｉｓ  ｃｅｒｔｉｆｉｃａｔｅ’’，
ｅｎｄＳｅｃｏｎｄｓ：‘‘ｅｎｄ  ｔｉｍｅ  ｆｏｒ  ｔｈｉｓ  ｃｅｒｔｉｆｉｃａｔｅ’’，
ｒｅｇｉｏｎ：‘‘ｒｅｑｕｅｓｔｅｄ  ｒｅｇｉｏｎ’’，
ｃｅｒｔＲｅｑｕｅｓｔＰｅｒｍｉｓｓｉｏｎｓ：‘‘ｔｈｅ  ｃｅｒｔ  ｒｅｑｕｅｓｔ  ｐｅｒｍｉｓｓｉｏｎｓ  ｆｒｏｍ  ｔｈｅ  ｅｎｒｏｌｌｍｅｎｔ  ｃｅｒｔ（ｗｉｌｌ  ｂｅ  ｔｕｒｎｅｄ  ｉｎｔｏ  ａｐｐ  ｐｅｒｍｉｓｓｉｏｎｓ）’’
｝
｝
＃  ＰＣＡ−＞ＲＡ：Ｃｅｒｔｉｆｉｃａｔｅ  Ｒｅｓｐｏｎｓｅ
｛
ｈｅａｄｅｒ：｛
ｍｓｇＩＤ：ｍｔ．ＭＳＧ＿ＰＣＡ＿ＲＡ＿ＩＤＥＮＴＩＴＹ＿ＣＥＲＴ＿ＲＥＳＰＯＮＳＥ＿ＭＳＧ
｝，
ｐａｙｌｏａｄ：｛
ｄａｔａ：‘‘Ｓｉｇｎｅｄ  ａｎｄ  Ｅｎｃｒｙｐｔｅｄ  ＳＣＭＳ  ｃｅｒｔｉｆｉｃａｔｅ  ｒｅｓｐｏｎｓｅ’’，
ｉｄｅｎｔｉｆｉｅｒ：‘‘ｈａｓｈ  ｏｆ  ｏｒｉｇｉｎａｌ  ｐａｙｌｏａｄ  ｒｅｑｕｅｓｔ’’
｝
｝
【０１２９】
図６Ａ及び図６Ｂはともに、本発明の実装と一致する、双方向メッセージキュー６１０、６１１、６１２、６１３、６１４、６１５、６１６、６１７、６１８、６１９を備えた拡張可能でセキュアなＣＭＳ６００を実装する例示的アーキテクチャのブロック図である。
【０１３０】
図４Ａ及び図４Ｂを参照して上述したＣＭＳ４００と同様、拡張可能なＣＭＳ６００の様々な実装は、超大量装置トランザクション及び証明書生成処理に利用されてよい。一部の実装において、拡張可能なＣＭＳ６００は、複数のサーバ、ＨＳＭ、複数の計算エンジン又はコンピューティングエンジン、及び複数のアプリケーションプラットフォーム（例えば、ＶＭ又はハードウェアプラットフォーム）を使用して実装されてよい。図６Ａ及び図６Ｂに示された例示的実装において、アプリケーションプラットフォームは１つ以上の仮想マシン（ＶＭ）を各々含んでよい。追加の実装又は代替の実装において、アプリケーションプラットフォームは各々、１つ以上のハードウェアプラットフォーム、例えば、サーバ、コンピュータ、又はソフトウェアアプリケーションを実行できる他のコンピュータハードウェアなどを含んでよい。拡張可能なＣＭＳ６００の例は、プライベートデータセンター、ＡｍａｚｏｎのＡｍａｚｏｎウェブサービス（ＡＷＳ）などのクラウドデータセンター、又はプライベートデータセンターとクラウドデータセンターのハイブリッドで実装されてよい。簡潔にするため、以下では、図４Ａ及び図４Ｂと比べた図６Ａ及び図６Ｂの違いだけを説明する。
【０１３１】
図６Ａの例に示されているように、ＣＭＳ６００のアーキテクチャは、望ましくは別々のサーバで実装される２つのプロビジョニングコントローラ６０２、すなわち一次プロビジョニングコントローラと待機プロビジョニングコントローラとを含んでよい。２つのプロビジョニングコントローラ６０２は図４Ａのプロビジョニングコントローラ１０２と同様の機能を含んでいるため、図４Ａを参照して上述したように、一次プロビジョニングコントローラに収容されているオブジェクト、データなどは、フェイルオーバーの目的のため、待機（二次）プロビジョニングコントローラにコピー又は収容される。いくつかの実装において、プロビジョニングコントローラ６０２はＤＬＭコントローラ、例えば、一次及び待機ＤＬＭコントローラであってよい。様々な実装において、プロビジョニングコントローラ６０２は、ＣＭＳ６００内の各種コンポーネントごとに存在するコントローラであってよい。図６Ａ及び図６Ｂの例において、プロビジョニングコントローラ６０２は、登録局６２０、加入証明書局４３０、匿名証明書局４４０、及び結合局４５０、４６０のために存在する一対のコントローラ（例えば、一次及び待機）であってよい。
【０１３２】
図６Ａ及び図６Ｂに示されているように、拡張可能なＣＭＳ６００のアーキテクチャは、ＲＥＳＴウェブサービスとして実装された登録局６０５、登録局６２０、登録局計算エンジン６２５、加入証明書局６３０、加入証明書局計算エンジン６３５、匿名証明書局６４０、匿名証明書局計算エンジン６４５、結合局１  ６５０、結合局１計算エンジン６５５、結合局２  ６６０、結合局１計算エンジン６６５、双方向メッセージキュー６１０、６１１、６１２、６１３、６１４、６１５、６１６、６１７、６１８、６１９、及びデータベース６７０を含む。
【０１３３】
拡張可能なＣＭＳ６００のアーキテクチャは、セキュリティ機能から非セキュリティ関連アプリケーションを有利にも分離する。図６Ａ及び図６Ｂの非限定的例に示されているように、登録局６２０、加入証明書局６３０、匿名証明書局６４０、及び結合局６５０、６６０は、いずれも非セキュリティ関連アプリケーション及び機能から独立した各自の専用計算エンジン６２５、６３５、６４５、６５５、及び６６５上で実行する各自のＶＭ上のアプリケーションとして実装されている。これは、ＨＳＭの性能が遅い、又はクラウドサービスプロバイダがＨＳＭを供給できない、又はその適正ＨＳＭ管理が不確かである、従来のシステムを凌ぐ、技術的な利点及び進歩とセキュリティ上の利点及び進歩の両方を提供する。拡張可能なＣＭＳ６００では、ＨＳＭを必要とする全ての暗号操作が計算エンジン（例えば、計算エンジン６２５、６３５、６４５、６５５、及び６６５のいずれか１つ以上）で遂行される。すなわち、ＣＭＳ６００では、ＨＳＭを必要とする全ての暗号操作が計算エンジンで遂行される。
【０１３４】
図６Ａ及び図６Ｂに示されているように、重要なセキュリティ機能を互いに分離することにより、また別々の計算エンジンに分離することにより、例えば、登録局６２０、加入証明書局６３０、匿名証明書局６４０、及び結合局６５０、６６０によって遂行される計算が多い暗号機能やセキュリティ機能は、既存の登録局システムより大幅に速く遂行される。この設計は、「ボトルネック」となるアプリケーションを必要に応じて個別に拡張可能とすることによって、トランザクション処理の大幅改善を可能にする。例えば、登録局６０５及び６２０で実行する登録局アプリケーションが拡張する必要がある場合は、さらなるアプリケーションプラットフォーム（例えば、ＶＭ又はハードウェアプラットフォーム）を追加でき、登録局計算エンジン６２５のセキュア計算能力に変更を加える必要はない。また、例えば、セキュリティ計算が性能を制限している場合は、さらなるセキュア登録局計算エンジン６２５を追加できる。ＣＭＳ６００の他のコンポーネントにもこれと同じ多次元拡張が当てはまる。
【０１３５】
図６Ａ及び図６Ｂに示された例では、双方向メッセージキュー６１０、６１１、６１２、６１３、６１４、６１５、６１６、６１７、６１８、及び６１９によって登録局６０５が他のコンポーネントに接続されており、かつ他のコンポーネントが互いに接続されている。図６Ａ及び図６Ｂの例示的実装で、双方向メッセージキュー６１０、６１１、６１２、６１３、６１４、６１５、６１６、６１７、６１８、及び６１９は双方向性であるから、メッセージはこれらのキューの中で２方向に（例えば、クライアントとサーバとの間を）流れる。これは、メッセージキューの中で保留になっている応答から新たな要求を分離するという性能上のメリットを提供する。双方向メッセージキュー６１０、６１１、６１２、６１３、６１４、６１５、６１６、６１７、６１８、６１９を使用してアプリケーションプラットフォーム（例えば、ＶＭ及び／又はハードウェアプラットフォーム）と計算エンジンを互いに通信可能なように接続することによって、アプリケーションプラットフォーム（例えば、ＶＭ及び／又はハードウェアプラットフォーム）と計算エンジンは個別に拡張できる。ＣＭＳ６００では、登録局６２０、加入証明書局６３０、匿名証明書局６４０、及び結合局６５０、６６０の各アプリケーションプラットフォーム（例えば、ＶＭ及び／又はハードウェアプラットフォーム）がそれぞれの双方向メッセージキューセットを通じて計算エンジン６２５、６３５、６４５、６５５、及び６６５へ通信可能なように接続されている。
【０１３６】
ＣＭＳ６００では、登録局６０５（並びに、「ＤＢ」の矢印が示された図６Ａ及び図６Ｂの他のコンポーネント）がデータベース６７０へ接続されてよい。好適な実装において、データベース６７０は高速アクセスで低待ち時間のデータベースである。いくつかの実装において、データベース６７０はＮｏＳＱＬデータベースであってよく、あるいは、例えば、Ａｍａｚｏｎウェブサービスによって提供されているＤｙｎａｍｏＤＢデータサービスなどのデータベースサービスであってよい。様々な実装において、データベース６７０に保存されるデータはアプリケーション次第であるが、発行済み証明書、様々な結合局の値（例えば、結合値）、証明書が発行された装置に関するデータ、作業者の行為などを含み得る。データは、暗号化されていない状態で、暗号化された状態で、又はこれらの状態の組み合わせで、保存されてよい。
【０１３７】
様々な実装において、登録局６０５によって作成されるデジタル証明書は、別々のセグメント、例えば、加入デジタル証明書と匿名デジタル証明書に分割されるため、拡張可能なＣＭＳ６００は加入証明書局６３０と匿名証明書局６４０とを含む。
【０１３８】
加入証明書局６３０について図６Ａで３つの「積み重なった」長方形で示されているように、一部の実装においては、同時に実行する加入証明書局６３０の複数インスタンスがあってよい。これは、図６Ａ及び図６Ｂの他の「積み重なった」要素についても同様に表現されている。加入証明書局６３０は、加入証明書を求める複数の要求を登録局６２０から受信することがある。
【０１３９】
様々な実装において、計算エンジン６２５、６３５、６４５、６５５、及び６６５とプロビジョニングコントローラ６０２はＨＳＭを含んでいるため、これらのコンポーネントは、ハッカーに不当に脅かされることなくセキュアな計算を実行できる。一部の実装において、計算エンジン６２５、６３５、６４５、６５５、及び６６５は、組込み型ＨＳＭを必要とせず自主的にセキュアな計算を実行するように設計されてもよく、かかる実装では、計算エンジンがＨＳＭを具現する。
【０１４０】
当業者なら、図６Ａ及び図６Ｂに示されたコンポーネント、プロセス、データ、工程、及び実装の詳細が、説明を簡潔かつ明確にするために提示された例であることを認めるであろう。この例は制限することを意図しておらず、また数多くのバリエーションが可能であるため、本発明の原理から逸脱せずに、別のコンポーネント、プロセス、実装の詳細、及びバリエーションを使用することもできる。
【０１４１】
図７Ａ及び図７Ｂはともに、本発明の実装と一致する、ロードバランサ７１０、７１１、７１２、７１３、７１４、７１５、７１６、７１７、７１８、７１９を備えた拡張可能でセキュアなＣＭＳ７００を実装する例示的アーキテクチャのブロック図である。
【０１４２】
図４及び図６を参照して上述したＣＭＳ４００及び６００と同様、拡張可能なＣＭＳ７００の様々な実装は、超大量装置トランザクション及び証明書生成処理に利用されてよい。簡潔にするため、以下では、図４及び図６と比べた図７Ａ及び図７Ｂの違いだけを説明する。図７Ａ及び図７Ｂに示された例示的実装では、アプリケーションプラットフォームが１つ以上の仮想マシン（ＶＭ）を含むものとして示されている。追加の実装又は代替の実装において、アプリケーションプラットフォームは各々、１つ以上のハードウェアプラットフォーム、例えば、アプリケーションサーバ、サーバファーム、クラウドベースのサーバ、アプリケーション工程を遂行するように構成されたプロセッサ、又はソフトウェアアプリケーションを実行できる他のコンピュータハードウェアなどを含んでよい。
【０１４３】
図７Ａの例に示されているように、ＣＭＳ７００のアーキテクチャは、望ましくは別々のサーバで実装される２つのプロビジョニングコントローラ７０２、すなわち一次プロビジョニングコントローラと待機プロビジョニングコントローラとを含んでよい。２つのプロビジョニングコントローラ７０２はそれぞれ、図４Ａ及び図６Ａのプロビジョニングコントローラ１２０及び６０２と同様の機能を含む。すなわち、図４Ａを参照して上述したように、一次プロビジョニングコントローラに収容されているオブジェクト、データなどは、フェイルオーバーの目的のため、待機（二次）プロビジョニングコントローラにコピー又は収容される。
【０１４４】
図７Ａ及び図７Ｂに示されているように、拡張可能なＣＭＳ７００のアーキテクチャは、ＲＥＳＴウェブサービスとして実装された登録局７０５、登録局７２０、登録局計算エンジン７２５、加入証明書局７３０、加入証明書局計算エンジン７３５、匿名証明書局７４０、匿名証明書局計算エンジン７４５、結合局１  ７５０、結合局１計算エンジン７５５、結合局２  ７６０、結合局１計算エンジン７６５、ロードバランサ７１０、７１１、７１２、７１３、７１４、７１５、７１６、７１７、７１８、７１９、及びデータベース７７０を含む。
【０１４５】
図４及び図６のＣＭＳ４００及びＣＭＳ６００と同様、拡張可能なＣＭＳ７００のアーキテクチャは、セキュリティ機能から非セキュリティ関連アプリケーションを有利にも分離する。図７Ａ及び図７Ｂの非限定的例に示されているように、登録局７２０、加入証明書局７３０、匿名証明書局７４０、及び結合局７５０、７６０は、いずれも非セキュリティ関連アプリケーション及び機能から独立した各自の専用計算エンジン７２５、７３５、７４５、７５５、及び７６５上で実行する各自のＶＭ上のアプリケーションとして実装されている。拡張可能なＣＭＳ７００では、ＨＳＭを必要とする全ての暗号操作が計算エンジン（例えば、計算エンジン７２５、７３５、７４５、７５５、及び７６５のいずれか１つ以上）で遂行される。ＣＭＳ７００では、ＨＳＭを必要とする全ての暗号操作が計算エンジンで遂行される。
【０１４６】
図７Ａ及び図７Ｂに示されているように、重要なセキュリティ機能を互いに分離することにより、また別々の計算エンジンに分離することにより、例えば、登録局７２０、加入証明書局７３０、匿名証明書局７４０、及び結合局７５０、７６０によって遂行される計算が多い暗号機能やセキュリティ機能は、公知の登録局ソリューションより大幅に速く遂行される。この設計は、サーバの処理能力や保存容量に束縛されず、「ボトルネック」となるアプリケーションを必要に応じて個別に拡張可能とすることによって、トランザクション処理の大幅改善を可能にする。例えば、登録局７０５及び７２０で実行する登録局アプリケーションが拡張する必要がある場合は、さらなるアプリケーションプラットフォーム（例えば、ＶＭ又はハードウェアプラットフォーム）を追加でき、登録局計算エンジン７２５のセキュア計算能力に変更を加える必要はない。また、例えば、セキュリティ計算が性能を制限している場合は、さらなるセキュア登録局計算エンジン７２５を追加できる。ＣＭＳ７００の他のコンポーネントにもこれと同じ多次元拡張が当てはまる。
【０１４７】
図７Ａ及び図７Ｂに示された例では、ロードバランサ７１０、７１１、７１２、７１３、７１４、７１５、７１６、７１７、７１８、及び７１９によって登録局７０５が他のコンポーネントに接続されており、かつ他のコンポーネントが互いに接続されている。図７Ａ及び図７Ｂの例示的実装において、ロードバランサ７１０、７１１、７１２、７１３、７１４、７１５、７１６、７１７、７１８、及び７１９は、（例えば、ＶＭ上で実行する）仮想ロードバランサとして、又は専用のハードウェアによって、実装されてよい。図７Ａ及び図７Ｂに見られるように、ＣＭＳ７００では、ロードバランサ７１０、７１１、７１２、７１３、７１４、７１５、７１６、７１７、７１８、及び７１９の各々が、類似する種類のＶＭ又は計算エンジンから成る各グループの手前に挿入されている。これは、１つ又は複数のクライアントに単一のサーバエンドポイントだけを認識させ、ある特定の要求をどのサーバが処理するかをロードバランサが決めるというメリットを提供する。このように、ロードバランサ７１０、７１１、７１２、７１３、７１４、７１５、７１６、７１７、７１８、７１９はアプリケーションプラットフォーム（例えば、ＶＭ及び／又はハードウェアプラットフォーム）と計算エンジンを互いに通信可能なように接続する。ＣＭＳ７００では、登録局７２０、加入証明書局７３０、匿名証明書局７４０、及び結合局７５０、７６０の各アプリケーションプラットフォームがそれぞれのロードバランサセットを通じて計算エンジン７２５、７３５、７４５、７５５、及び７６５へ通信可能なように接続されている。
【０１４８】
様々な実装において、登録局７０５によって作成されるデジタル証明書は、別々の部分に、例えば、加入デジタル証明書と匿名デジタル証明書に分割されるため、拡張可能なＣＭＳ７００は加入証明書局７３０と匿名証明書局７４０とを含む。
【０１４９】
匿名証明書局７４０について図７Ａで３つの「積み重なった」長方形で示されているように、様々な実装においては、同時に実行する匿名証明書局７４０の複数インスタンスがあってよい。これは、図７Ａ及び図７Ｂの他の「積み重なった」要素についても同様に表現されている。匿名証明書局７４０は、一まとまりの匿名証明書を求める複数の要求（例えば、１週間、１カ月、又は１年分の匿名証明書を求める要求）を登録局７２０から受信することがある。
【０１５０】
当業者なら、図７Ａ及び図７Ｂに示されたコンポーネント、プロセス、データ、工程、及び実装の詳細が、説明を簡潔かつ明確にするために提示された例であることを認めるであろう。この例は制限することを意図しておらず、また数多くのバリエーションが可能であるため、本発明の原理から逸脱せずに、別のコンポーネント、プロセス、実装の詳細、及びバリエーションを使用することもできる。
【０１５１】
図８は、本発明の実装と一致する、ラウンドロビン要求を伴う拡張可能でセキュアなＣＭＳを実装するシステム８００の一例のブロック図である。簡素にするため、図８には、１つのセットのアプリケーションプラットフォーム（例えば、ＶＭ及び／又はハードウェアプラットフォーム）８２０、８３０、８４０、８５０と、１つのセットの計算エンジン８２５、８３５、８４５、８５５だけが示されている。なお、図８のアプリケーションプラットフォーム８２０、８３０、８４０、８５０と計算エンジン８２５、８３５、８４５、８５５は、図７を参照して上述した登録局７２０、加入証明書局７３０、匿名証明書局７４０、及び結合局７５０、７６０のいずれかを実装するために使用される１つのセットのアプリケーションプラットフォーム及び計算エンジンのいずれであってよい。図７のＣＭＳ７００と同様、システム８００では、ＨＳＭを必要とする全ての暗号操作が計算エンジンで遂行され、アプリケーションプラットフォームと計算エンジンはいずれも個別に拡張する。
【０１５２】
図８を引き続き参照すると、ラウンドロビンとは、利用可能な各サーバ（例えば、各計算エンジン）に関する知識を使用することを指す。システム８００で送信されるラウンドロビン要求は、利用可能な計算エンジン（例えば、計算エンジン８２５、８３５、８４５、８５５）に関する知識を使用して、当該１つのセットの計算エンジンに送信される要求とメッセージを配信する。
【０１５３】
システム８００におけるラウンドロビン要求の順序を明確に説明するため、アプリケーションＶＭ８５０で利用できる拡大された１つのセットの計算エンジン８６５、８７５、８８５、８９５が示されている。図８の例には、「ｎ」個のアプリケーションプラットフォーム（例えば、ＶＭ及び／又はハードウェアプラットフォーム）があり、「ｍ」個の利用可能な計算エンジンがある。計算エンジンに対して要求を行いたいクライアント（例えば、アプリケーションＶＭ８９５）は、図８に示された順序でこれを行う。図示されているように、アプリケーションＶＭ８９５からの第１の要求はＣＥ１（計算エンジン８６５）に至り、第２の要求はＣＥ２（計算エンジン８７５）に至り、以降も同様に続く。最後のＣＥであるＣＥｍ（計算エンジン８９５）に達すると、クライアント（アプリケーションＶＭ８９５）はＣＥ１からやり直す。
【０１５４】
システム８００では、全てのクライアント（例えば、アプリケーションプラットフォーム８２０、８３０、８４０、８５０）が通信する必要のある相手方の全サーバ（例えば、１つのセットの利用可能な計算エンジン）を認識している。それぞれのクライアントはそれぞれのサーバに対してラウンドロビン要求を行い、これにより作業負荷は、有利にも全てのサーバにわたって均一に分散される。いくつかの実装においては、計算エンジンで作業負荷を均一に分散するため、図７に示されたＣＭＳ７００のロードバランサ７１０、７１１、７１２、７１３、７１４、７１５、７１６、７１７、７１８、７１９が計算エンジンにラウンドロビン要求を送信できる。
【０１５５】
図９は、本発明の実装と一致する、作業負荷に基づく要求を伴う拡張可能でセキュアなＣＭＳを実装するシステム９００の一例のブロック図である。簡潔にするため、以下では、図７及び図８と比べた図９の違いだけを説明する。
【０１５６】
図８と同様、簡素かつ明確にするため、図９には、１つのセットのアプリケーションプラットフォーム９２０、９３０、９４０、９５０と、１つのセットの計算エンジン９２５、９３５、９４５、９５５だけが示されている。なお、図９のアプリケーションプラットフォーム（例えば、ＶＭ及び／又はハードウェアプラットフォーム）９２０、９３０、９４０、９５０と計算エンジン９２５、９３５、９４５、９５５は、図７を参照して上述した登録局７２０、加入証明書局７３０、匿名証明書局７４０、及び結合局７５０、７６０のいずれかを実装するために使用される１つのセットのアプリケーションプラットフォーム及び計算エンジンのいずれかであってよい。図７のＣＭＳ７００と同様、システム９００では、ＨＳＭを必要とする全ての暗号操作が計算エンジンで遂行され、アプリケーションプラットフォーム（例えば、ＶＭ及び／又はハードウェアプラットフォーム）と計算エンジンはいずれも個別に拡張する。
【０１５７】
図９を引き続き参照し、作業負荷分散手法は、使用される各サーバの作業負荷を伝える情報を第１のクエリーに加えることによって可能となる。この作業負荷分散手法は、利用可能な各サーバ（例えば、各計算エンジン）の作業負荷に関する知識を利用するので、作業負荷に基づく手法である。システム９００で送信される要求は、利用可能な計算エンジン（例えば、計算エンジン９２５、９３５、９４５、９５５）の現在の作業負荷に関する知識を使用して、当該１つのセットの計算エンジンに送信される要求とメッセージを配信する。システム９００では、それぞれの計算エンジンの報告された作業負荷に基づいて計算エンジンへ要求が送信される。
【０１５８】
システム９００における作業負荷に基づく要求を明確に説明するため、各自の作業負荷をアプリケーションＶＭ９５０に報告する拡大された１つのセットの計算エンジン９６５、９７５、９８５、９９５が示されている。図９の例では、「ｍ」はアプリケーションプラットフォームの数であり、「ｎ」は各自の作業負荷を報告する計算エンジンの数である。図９の例では、作業負荷がパーセンテージで報告されており、計算エンジン９７５の３０％作業負荷は、計算エンジン９７５が自身の全能力の３０％で現在稼働していることを意味する。同様に、計算エンジン９６５、９８５、及び９９５によって報告される８０％の作業負荷は、これらの計算エンジンが自身の全能力の８０％で現在稼働していることを意味する。いくつかの実装において、ある特定の計算エンジンによって報告される現在の作業負荷は、当該計算エンジンに組み込まれたＨＳＭの作業負荷を表す。例えば、暗号操作を遂行するにあたって、計算エンジンの処理能力がそのＨＳＭの能力によって束縛又は制約される場合は、当該計算エンジンによって報告される作業負荷のパーセンテージがＨＳＭの現在の作業負荷を反映できる。例えば、計算エンジン９７５によって使用されているＨＳＭがその処理能力の３０％で稼働している場合、計算エンジン９７５は、自身がその全能力の３０％で稼働していることを報告できる。一部の実装において、作業負荷パーセンテージは、サーバ（例えば、計算エンジン）の処理能力、通信能力（例えば、直接通信リンク又は無線モジュールに利用できる帯域幅の尺度）、及びストレージ／メモリ容量の加重尺度であってよい。一例において、処理能力と通信能力とメモリ容量には等しい３分の１の重みが与えられてよい。この例で、計算エンジン９７５がその中央処理装置（ＣＰＵ）能力の２５％と、その通信能力の３５％と、その利用可能なメモリ又はストレージの３０％を使用している場合、計算エンジン９７５は自身の作業負荷が３０％であると報告する。
【０１５９】
いくつかの実装においては、計算エンジンの環境測定値が加重され、作業負荷の測定値と併せて考慮されてよい。例えば、計算エンジンの全体的な健全性を示す測定値が求められ、当該計算エンジンの作業負荷の測定値と共に報告されてよい。いくつかの例において、ある特定の計算エンジンの健全性を示す測定値は、当該計算エンジンの動作温度（例えば、温度センサーからの平均より高い温度値は、ＣＰＵ、メモリモジュール、又はディスクドライブが熱による動作停止や誤動作を被る可能性があることを意味し得る）、計算エンジンの筐体内の湿度レベル、再起動又はリブートの頻度（例えば、熱による動作停止やクラッシュ）、最後の再起動からの経過時間、最近の期間中（例えば、前日、先週、又は先月）に起きたディスク故障やメモリ障害の数、計算エンジンの予定されたメンテナンス作業までの時間（例えば、ソフトウェアやファームウェアの更新、欠陥ハードウェアコンポーネントの交換）、計算エンジンが予備電源で稼働していることを伝える情報、又は計算エンジンの電源の最後の停電又は電圧低下からの持続時間のいずれか１つ以上の関数であってよい。
【０１６０】
追加の実装又は代替の実装においては、他の重み、尺度、及び基準を使用して計算エンジンの作業負荷を決定してよい。例えば、暗号操作を遂行する計算エンジンがこれまで通信能力やメモリ容量より多大な制約をＣＰＵ能力から受けている場合、それらの計算エンジンについて総作業負荷パーセンテージを割り出すときに、ＣＰＵ能力に他の能力／容量より大きい重みを与えることができる。
【０１６１】
システム９００において、計算エンジンに対して要求を行いたいクライアント（例えば、アプリケーションＶＭ９９５）は、計算エンジンによって報告される作業負荷に基づいてこれを行う。図９の例では、アプリケーションＶＭ９９５からの次の要求は、３０％という比較的低い作業負荷に基づいてＣＥ２（計算エンジン９７５）に至る。すなわち、計算エンジン９７５の作業負荷が１つのセットの計算エンジン９６５、９７５、９８５、９９５の中で最も低いからである。アプリケーションＶＭ９９５から計算エンジンへ次の要求が送信されるときは、いずれも等しい８０％の作業負荷を現在報告しているＣＥ１（計算エンジン９６５）、又はＣＥ３（計算エンジン９８５）、又はＣＥｍ（計算エンジン９９５）のいずれかが使用されてよい。利用可能な各計算エンジンが同じか同様の作業負荷を報告している場合は、一連の要求を使用して、負荷が等しいこれらの計算エンジンにわたって負荷を均等に分散することができる。すなわち、利用可能な各計算エンジンが実質的に等しいか等しい作業負荷を報告している場合は、図８を参照して上述した要求を使用できる。時間が経つにつれて作業負荷が変化したら、クライアント（アプリケーションＶＭ９９５）は以降の要求を利用可能で負荷が最も小さい計算エンジンへ送信する。
【０１６２】
システム９００では、全てのクライアント（例えば、アプリケーションプラットフォーム９２０、９３０、９４０、９５０）が通信する必要のある相手方の全サーバ（例えば、１つのセットの利用可能な計算エンジン）の作業負荷を認識している。それぞれのクライアントはそれぞれのサーバに作業負荷のクエリーを提出し、報告される作業負荷をもとにして全てのサーバにわたって作業負荷を有利にも均一に分散することができる。いくつかの実装においては、計算エンジンで作業負荷を均一に分散するため、図７に示されたＣＭＳ７００のロードバランサ７１０、７１１、７１２、７１３、７１４、７１５、７１６、７１７、７１８、７１９が作業負荷に基づく要求を計算エンジンへ送信できる。
【０１６３】
図１０Ａ及び図１０Ｂはともに、本発明の実装による、拡張可能でセキュアな証明書管理システム（ＣＭＳ）４００を実装する例示的アーキテクチャのブロック図である。簡潔にするため、以下では、図４Ａ及び図４Ｂと比べた図１０Ａ及び図１０Ｂの違いだけを説明する。
【０１６４】
図１０Ａの例に示されているように、ＣＭＳ１０００のアーキテクチャは、望ましくは別々のサーバで実装される２つのプロビジョニングコントローラ１００２、すなわち一次プロビジョニングコントローラと待機プロビジョニングコントローラとを含んでよい。２つのプロビジョニングコントローラ１００２は、それぞれ図４Ａ及び図６Ａのプロビジョニングコントローラ１２０及び６０２と同様の機能を含む。すなわち、図４Ａを参照して上述したように、一次プロビジョニングコントローラに収容されているオブジェクト、データなどは、フェイルオーバーの目的のため、待機（二次）プロビジョニングコントローラにコピー又は収容される。
【０１６５】
図１０Ａ及び図１０Ｂに示されているように、ＣＭＳ１０００のアーキテクチャは、ＲＥＳＴウェブサービスとして実装された登録局１００５、登録局１０２０、計算エンジン１０２５、１０３５、１０４５、１０５０、１０６０、メッセージキュー１０１０、１０１２、１０１４、１０１６、１０１８、及びデータベース１０７０を含む。
【０１６６】
ＣＭＳ１０００の例は、プライベートデータセンター、クラウドデータセンター、又はプライベートデータセンターとクラウドデータセンターのハイブリッドで実装されてよい。ＣＭＳ１０００の様々な実装は、超大量装置トランザクション及び証明書生成処理に利用されてよい。様々な実装において、ＣＭＳ１０００は、複数のサーバ、ＨＳＭ、及びアプリケーションプラットフォームとして機能する複数の計算エンジン又はコンピューティングエンジンを使用して実装されてよい。すなわち、図１０Ａ及び図１０Ｂに示されているように、登録局、証明書局、及び結合局の図示されたアプリケーションは各々、ソフトウェアアプリケーションをホストして実行できる１つ以上の計算エンジンを動作させる。
【０１６７】
ＣＭＳ１０００は図４Ａ及び図４Ｂを参照して上述したＣＭＳ４００と同様であり、違いは、アプリケーションをホストして実行するために計算エンジン１０２５、１０３５、１０４５、１０５０、１０６０を使用する点にある。すなわち、ＣＭＳ１０００アーキテクチャはＣＭＳ４００のアーキテクチャの代替案であり、登録局、加入証明書局、匿名証明書局、及び結合局のアプリケーションは、各自の専用計算エンジン１０２５、１０３５、１０４５、１０５０、１０６０上で実行する。ＣＭＳ１０００では、ＨＳＭを必要とする全ての暗号操作が計算エンジン（例えば、計算エンジン１０２５、１０３５、１０４５、１０５０、及び１０６０）で遂行され、計算エンジンは関連アプリケーションも実行する。有利なことに、アプリケーションと暗号操作を計算エンジン１０２５、１０３５、１０４５、１０５０、１０６０で実行することにより、ＣＭＳ１０００のアーキテクチャは必要なメッセージキューの数を減らす。
【０１６８】
図１０Ａ及び図１０Ｂの例で、計算エンジンは、登録局アプリケーションをホストして実行する登録局計算エンジン１０２５と、加入証明書局アプリケーションをホストして実行する働きをする加入証明書局計算エンジン１０３５と、匿名証明書局アプリケーションをホストして実行する働きをする匿名証明書局計算エンジン１０４５と、結合局１アプリケーションをホストして実行する結合局１計算エンジン１０５０と、結合局２アプリケーションをホストして実行する働きをする結合局２  １０６０とを含む。
【０１６９】
図１０Ａ及び図１０Ｂに示されているように、入力メッセージキュー１０１０、１０１２、１０１４、１０１６、１０１８を含むメッセージングサブシステム又はメッセージキューイングサービスによって登録局１００５が他のコンポーネントに接続されており、かつ他のコンポーネントが互いに接続されている。図１０Ａ及び図１０Ｂの例示的実装で、入力メッセージキュー１０１０、１０１２、１０１４、１０１６、１０１８は単方向性であるから、メッセージはこれらのキューの中で一方向に（例えば、クライアントからサーバへ）流れる。これは、それぞれのアプリケーションを各々ホストして実行する計算エンジンの各々につき単一の入力キューを設けることにより、簡素さという技術的なメリットを提供する。
【０１７０】
入力メッセージキュー１０１０、１０１２、１０１４、１０１６、１０１８を使用して計算エンジンを互いに通信可能なように接続することにより、計算エンジンは必要に応じて個別に拡張できる。すなわち、登録局、加入証明書局、匿名証明書局、及び結合局アプリケーションのアプリケーションプラットフォームとして働く各計算エンジンは、それぞれの入力メッセージキューを通じて通信可能なように接続されているので、ＣＭＳ１０００のこれらのコンポーネントとデータベース１０７０はいずれも互いに個別に拡張する。
【０１７１】
図１１は、本発明の実装と一致するシステム及び方法を実装するために使用されてよい、コンピューティングシステム１１００を含む、コンピューティング環境１１０１の一例のブロック図である。他のコンポーネント及び／又は機構が使用されてもよい。一部の実装においては、とりわけ図４及び図６〜図１０のプロビジョニングコントローラ１２０、ＤＡＭＳ１１０、及び計算エンジン、並びに図７のロードバランサ７１０〜７１９など、図１〜図１０の様々なコンポーネントを少なくとも部分的に実装するためにコンピューティングシステム１１００が使用されてよい。一部の実装においては、図１〜図１０のコンポーネントのいずれか１つを実装するため、コンピューティングシステム１１００と同様の一連のコンピューティングシステムを特殊なハードウェアで各々カスタマイズしてよく、及び／又は特殊なサーバとして各々プログラミングしてよく、これらのコンポーネントはネットワーク１１３５を通じて互いに通信できる。
【０１７２】
図１１に示された例で、コンピューティングシステム１１００は、ＣＰＵ１１０５、メモリ１１１０、入力／出力（Ｉ／Ｏ）装置１１２５、ハードウェア・セキュリティ・モジュール（ＨＳＭ）１１４０、不揮発性ストレージデバイス１１２０など、数々のコンポーネントを含む。システム１１００は様々な形で実装されてよい。例えば、統合されたプラットフォーム（サーバ、ワークステーション、パーソナルコンピュータ、ラップトップなど）としての実装は、ＣＰＵ１１０５と、メモリ１１１０と、不揮発性ストレージ１１２０と、Ｉ／Ｏ装置１１２５とを備えてよい。かかる構成では、コンポーネント１１０５、１１１０、１１２０、及び１１２５がローカルデータバスを通じて接続及び通信してよく、外部のＩ／Ｏ接続を通じて（例えば、別個のデータベースシステムとして実装された）データリポジトリ１１３０にアクセスしてよい。Ｉ／Ｏコンポーネント１１２５は、直接的な通信リンク（例えば、有線接続又はローカルｗｉｆｉ接続）を通じて、ローカルエリアネットワーク（ＬＡＮ）やワイドエリアネットワーク（携帯電話網やインターネットなどのＷＡＮ）などのネットワークを通じて、及び／又は他の適当な接続を通じて、外部の装置に接続してよい。システム１１００は独立型であってよく、あるいはより大規模なシステムのサブシステムであってもよい。
【０１７３】
ＣＰＵ１１０５は、Ｓａｎｔａ  Ｃｌａｒａ，ＣＡのＩｎｔｅｌ（登録商標）Ｃｏｒｐｏｒａｔｉｏｎによって製造されているＣｏｒｅ（登録商標）ファミリーに属するマイクロプロセッサ、又はＳｕｎｎｙｖａｌｅ，ＣＡのＡＭＤ（登録商標）Ｃｏｒｐｏｒａｔｉｏｎによって製造されているＡｔｈｌｏｎ（登録商標）ファミリーに属するマイクロプロセッサなど、１つ以上の既知のプロセッサ又は処理装置であってよい。メモリ１１１０は、本発明の実装に関係する何らかの機能、方法、及びプロセスを遂行するためにＣＰＵ１１０５によって実行又は使用される命令と情報を保存するように構成された１つ以上の高速ストレージデバイスであってよい。ストレージ１１２０は、長期保存を目的とするＣＤ及びＤＶＤ及びソリッド・ステート・デバイスなどのデバイスを含む、揮発性又は不揮発性、磁気式、半導体、テープ、光学式、又は他の種類のストレージデバイス又はコンピュータ可読媒体であってよい。
【０１７４】
図示されている実装において、メモリ１１１０は、ストレージ１１２０から、又は遠隔地のシステム（図示せず）から、読み込まれた１つ以上のプログラム又はアプリケーション１１１５を収容し、１つ以上のプログラム又はアプリケーション１１１５は、ＣＰＵ１１０５によって実行されると、本発明と一致する様々な工程、手順、プロセス、又は方法を遂行する。代わりに、ＣＰＵ１１０５は、システム１１００から遠隔の場所にある１つ以上のプログラムを実行してもよい。例えば、システム１１００はネットワーク１１３５を通じて１つ以上の遠隔地のプログラムにアクセスしてよく、１つ以上の遠隔地のプログラムは、実行されると、本発明の実装に関係する機能及びプロセスを遂行する。
【０１７５】
一実装において、メモリ１１１０は、プロビジョニングコントローラ１２０、ＤＡＭＳ１１０、及び／又はディストリビュータ装置１１８、１３１のために、本明細書で説明されている特殊な機能と工程を遂行するプログラム１１１５を含むことができる。一部の実装において、メモリ１１１０は、本発明に補助的機能を提供する他の方法やプロセスを実施する他のプログラム又はアプリケーションを含むこともできる。
【０１７６】
メモリ１１１０は、本発明とは無関係の他のプログラム（図示せず）、及び／又はＣＰＵ１１０５によって実行されたときにいくつかの公知の機能を遂行するオペレーティングシステム（図示せず）で構成されてもよい。一例として、オペレーティングシステムは、Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ（登録商標）、Ｕｎｉｘ（登録商標）、Ｌｉｎｕｘ（登録商標）、Ａｐｐｌｅ  Ｃｏｍｐｕｔｅｒｓ（登録商標）のオペレーティングシステム、又は他のオペレーティングシステムであってよい。オペレーティングシステムの選択は本発明にとって重要ではなく、オペレーティングシステムの使用すら本発明にとって重要ではない。
【０１７７】
ＨＳＭ１１４０は、独自のプロセッサを備え、デジタルセキュリティアセットをセキュアに生成し保存する、及び／又は様々な暗号計算や機密計算をセキュアに遂行する、装置であってよい。ＨＳＭ１１４０は、暗号鍵などのデジタルセキュリティアセットや他の機密データを攻撃者によるアクセスから守る。一部の実装において、ＨＳＭは、コンピューティングシステム１１００に直接取り付けられるプラグインカード又はボードであってよい。
【０１７８】
Ｉ／Ｏ装置１１２５は、システム１１００によるデータ受信及び／又は送信を可能にする１つ以上の入力／出力装置を備えてよい。例えば、Ｉ／Ｏ装置１１２５は、ユーザからのデータ入力を可能にする、キーボード、タッチスクリーン、マウス、及び同類のものなど、１つ以上の入力装置を含んでよい。さらに、Ｉ／Ｏ装置１１２５は、ユーザへのデータ出力又は提示を可能にする、表示画面、ＣＲＴモニター、ＬＣＤモニター、プラズマディスプレイ、プリンタ、スピーカ装置、及び同類のものなど、１つ以上の出力装置を含んでよい。Ｉ／Ｏ装置１１２５はまた、コンピューティングシステム１１００が、例えばデジタル方式で、他のマシンや装置と通信することを可能にする、１つ以上のデジタル及び／又はアナログ通信入力／出力装置を含んでよい。別の構成及び／又は数の入力及び／又は出力装置がＩ／Ｏ装置１１２５に組み込まれてもよい。
【０１７９】
図示された実装において、システム１１００はネットワーク１１３５（インターネット、プライベートネットワーク、仮想プライベートネットワーク、セルラーネットワーク、又は他のネットワーク、又はこれらの組み合わせなど）に接続されており、ネットワーク１１３５は、サーバ、パーソナルコンピュータ、ラップトップコンピュータ、クライアント装置、などをはじめとする様々なシステムやコンピューティングマシンに接続されてよい。概して、システム１１００は、ネットワーク１１３５を通じて、外部のマシン及び装置からデータを入力でき、かつ外部のマシン及び装置にデータを出力できる。
【０１８０】
図１１に示された例示的な実装において、データソース１１３０は、データベース１２５など、システム１１００外部の独立したデータベースである。別の実装において、データソース１１３０はシステム１１００によってホストされてもよい。様々な実装において、データソース１１３０は、本発明と一致するシステム及び方法を実施するために使用されるデータを管理し保存することができる。例えば、データソース１１３０は、システム１１０によってプロビジョニングされる各装置１１６のステータス情報とログ情報、及び同類のものを包含するデータ構造を管理し保存することができる。
【０１８１】
データソース１１３０は、情報を保存し、システム１１００を通じてアクセス及び／又は管理される、１つ以上のデータベースを備えてよい。一例として、データベース１１３０は、Ｏｒａｃｌｅ（登録商標）データベース、Ｓｙｂａｓｅ（登録商標）データベース、又は他のリレーショナルデータベースであってよい。ただし、本発明と一致するシステム及び方法は、別個のデータ構造又はデータベースに限定されず、データベース又はデータ構造の使用にすら限定されない。
【０１８２】
当業者なら、図１１のシステムのコンポーネントと実装の詳細が、説明を簡潔かつ明確にするために提示された例であることを認めるであろう。他のコンポーネントや実装の詳細を使用することもできる。
【０１８３】
前述の例では、説明を明確にするために、ＯＢＵ、ＥＣＵ、ＲＳＵといったコンピュータ化装置の具体例を使用しているが、本発明はそれらの具体例に限定されない。本発明と一致する様々な実装は、とりわけ医療装置（例えば、透析装置、注入ポンプなど）、ロボット、ドローン、自律走行車、無線通信モジュール（例えば、組込み型汎用集積回路カード（ｅＵＩＣＣ））などをはじめとする様々なコンピュータ化装置と共に利用されてよく、また様々なコンピュータ化装置のために利用されてよい。
【０１８４】
本明細書で説明されているアプリケーションの様々な工程は、１つ以上のＶＭによって少なくとも部分的には遂行されてよい。追加の実装又は代替の実装において、本明細書で説明されているアプリケーションの工程は、該当する工程を遂行する形に、（例えば、ソフトウェアによって）一時的に構成された、又は永久的に構成された、１つ以上のプロセッサによって、少なくとも部分的には遂行されてよい。かかるプロセッサは、一時的に構成されたものであろうと永久的に構成されたものであろうと、本明細書で説明されている１つ以上のアプリケーションの工程、機能、及び役割を遂行する働きをするプロセッサ実装型モジュールを構成してよい。本明細書で使われている用語「プロセッサ実装型モジュール」は、１つ以上のプロセッサを使用して実装されたハードウェアモジュールを指す。
【０１８５】
同様に、本明細書で説明されている方法は、少なくとも部分的にはプロセッサ実装型であってよく、ある特定の１つ又は複数のプロセッサはハードウェアの一例である。例えば、ある方法の複数工程の少なくとも一部は、１つ以上のプロセッサかプロセッサ実装型モジュールによって遂行されてよい。さらに、１つ以上のプロセッサは、「クラウドコンピューティング」環境の中で、又は「ソフトウェア・アズ・ア・サービス」（ＳａａＳ）として、該当する工程の遂行を支援する働きをしてもよい。例えば、複数工程の少なくとも一部は、一団のコンピュータ（プロセッサを含むマシンの例として）によって遂行されてよく、これらの工程は、ネットワーク（例えば、インターネット）を通じて、また１つ以上の適切なインターフェイス（例えば、ＡＰＩ）を通じて、アクセス可能である。
【０１８６】
いくつかの工程の遂行は、単一のマシンの中にあるばかりでなく、いくつかのマシンにわたって配備された、プロセッサの間で分散されてよい。一部の例示的実装において、プロセッサ又はプロセッサ実装型モジュールは、単一の地理的場所に（例えば、オフィス環境、製造環境、又はサーバファームの中に）置かれてよい。他の例示的実装において、プロセッサ又はプロセッサ実装型モジュールは、多数の地理的場所にまたがって分散されてもよい。
【０１８７】
本発明の他の実装は、本明細書の考察と本明細書で開示されている発明の実施から当業者に明白となるであろう。本明細書と例は単なる例示とみなすべきものであり、本発明の真の範囲は以下の請求項によって示される。
【図１】
2021530169.tif 000003
【図２】
2021530169.tif 000004
【図３】
2021530169.tif 000005
【図４Ａ】
2021530169.tif 000006
【図４Ｂ】
2021530169.tif 000007
【図５Ａ】
2021530169.tif 000008
【図５Ｂ】
2021530169.tif 000009
【図６Ａ】
2021530169.tif 000010
【図６Ｂ】
2021530169.tif 000011
【図７Ａ】
2021530169.tif 000012
【図７Ｂ】
2021530169.tif 000013
【図８】
2021530169.tif 000014
【図９】
2021530169.tif 000015
【図１０Ａ】
2021530169.tif 000016
【図１０Ｂ】
2021530169.tif 000017
【図１１】
2021530169.tif 000018
【国際調査報告】
2021530169.tif 000019