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

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

▶ クリプト・クオンティーク・リミテッドの特許一覧

特表2024-516126信頼の起点に基づくセキュリティを備えた暗号化及び認証されたファームウェアプロビジョニング
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-04-12
(54)【発明の名称】信頼の起点に基づくセキュリティを備えた暗号化及び認証されたファームウェアプロビジョニング
(51)【国際特許分類】
   H04L 9/08 20060101AFI20240405BHJP
   H04L 9/10 20060101ALI20240405BHJP
   H04L 9/32 20060101ALI20240405BHJP
   G06F 21/64 20130101ALI20240405BHJP
   G06F 21/73 20130101ALI20240405BHJP
【FI】
H04L9/08 B
H04L9/10 Z
H04L9/32 200D
G06F21/64
G06F21/64 350
G06F21/73
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023562296
(86)(22)【出願日】2022-04-12
(85)【翻訳文提出日】2023-12-11
(86)【国際出願番号】 GB2022050910
(87)【国際公開番号】W WO2022219319
(87)【国際公開日】2022-10-20
(31)【優先権主張番号】2105203.0
(32)【優先日】2021-04-12
(33)【優先権主張国・地域又は機関】GB
(81)【指定国・地域】
(71)【出願人】
【識別番号】521452588
【氏名又は名称】クリプト・クオンティーク・リミテッド
【氏名又は名称原語表記】Crypto Quantique Limited
(74)【代理人】
【識別番号】100145403
【弁理士】
【氏名又は名称】山尾 憲人
(74)【代理人】
【識別番号】100135703
【弁理士】
【氏名又は名称】岡部 英隆
(72)【発明者】
【氏名】アーマー,マルセル
(72)【発明者】
【氏名】グローバー,チャールズ
(72)【発明者】
【氏名】モサエビ,シャフラム
(57)【要約】
電子装置は、物理的複製困難関数(PUF)を有するセキュリティモジュールを備える。セキュリティモジュールは、PUFに対するチャレンジ及びレスポンスに基づき、ファームウェア公開鍵(FPK)及びファームウェア秘密鍵(FSK)を含むファームウェア鍵ペアを確立する。本方法は、鍵ペアの秘密鍵を用いてファームウェアのハッシュに署名させてハッシュ上の署名を取得することを含む。公開鍵は電子装置に安全に組み込まれる。本方法は、サーバ暗号鍵を用いて、ファームウェアと、ハッシュ上の署名とを暗号化することを含む。本方法は、暗号化されたファームウェア及び暗号化された署名を復号するためのサーバ復号鍵を、FPKを用いて暗号化することを含む。本方法は、暗号化されたファームウェア、暗号化された署名、及び暗号化されたサーバ復号鍵を、電子装置へのインストールのために、サードパーティーに伝送することを含む。
【特許請求の範囲】
【請求項1】
電子装置にファームウェアを提供する方法であって、
上記電子装置は、物理的複製困難関数(PUF)を有するセキュリティモジュールを備え、
上記セキュリティモジュールは、上記PUFに対する第1のチャレンジ及びレスポンスに基づいて、ファームウェア鍵ペア(FPK,FSK)を確立するように構成され、
上記ファームウェア鍵ペアは、ファームウェア公開鍵(FPK)及びファームウェア秘密鍵(FSK)を含み、
上記方法は、認証局鍵ペアの秘密鍵を用いて上記ファームウェアのハッシュに署名させて署名を取得することを含み、
上記認証局鍵ペアは公開鍵及び上記秘密鍵を含み、
上記公開鍵は上記電子装置に安全に組み込まれ、
上記方法は、
サーバ暗号鍵を用いて上記ファームウェア及び上記署名を暗号化することと、
上記暗号化されたファームウェア及び上記暗号化された署名を復号するためのサーバ復号鍵を、FPKを用いて暗号化することと、
上記暗号化されたファームウェア、上記暗号化された署名、及び上記暗号化されたサーバ復号鍵を、上記電子装置へのインストールのために、サードパーティーに伝送することとを含む、
方法。
【請求項2】
上記ファームウェアを受信することと、
上記ファームウェアに対してハッシュ関数を実行して上記ファームウェアのハッシュを生成することとをさらに含む、
請求項1記載の方法。
【請求項3】
上記ファームウェアのハッシュを受信することをさらに含む、
請求項1記載の方法。
【請求項4】
上記ファームウェアのハッシュに署名させることは、上記ファームウェアのハッシュに署名することを含む、
請求項1~3のうちの1つに記載の方法。
【請求項5】
上記ファームウェアのハッシュに署名させることは、上記ファームウェアのハッシュを信頼された認証局に送信することと、上記信頼された認証局から上記署名を受信することとを含む、
請求項1~3のうちの1つに記載の方法。
【請求項6】
上記FPKを信頼された認証局から受信することをさらに含む、
請求項1~5のうちの1つに記載の方法。
【請求項7】
上記サーバ暗号鍵は上記サーバ復号鍵と同じである、
請求項1~6のうちの1つに記載の方法。
【請求項8】
上記セキュリティモジュールは、上記PUFに対する第2のチャレンジ及びレスポンスに基づいて登録鍵ペア(EPK,ESK)を確立するようにさらに構成され、
上記登録鍵ペアは、登録公開鍵(EPK)及び登録秘密鍵(ESK)を含み、
上記方法は、上記EPKの関数を含む装置識別子を上記サードパーティーに伝送することをさらに含む、
請求項1~7のうちの1つに記載の方法。
【請求項9】
上記装置識別子は、信頼された認証局から受信される、
請求項8記載の方法。
【請求項10】
上記ファームウェアが上記電子装置にインストールされた後、上記装置識別子を受信することと、上記装置識別子を上記信頼された認証局に対して登録することとをさらに含む、
請求項1~9のうちの1つに記載の方法。
【請求項11】
1つ又は複数のプロセッサによって実行されたとき、上記1つ又は複数のプロセッサに請求項1~10のうちの1つに記載の方法を実行させる命令を格納したコンピュータ可読媒体。
【請求項12】
1つ又は複数のプロセッサと、
上記1つ又は複数のプロセッサによって実行されたとき、上記1つ又は複数のプロセッサに請求項1~10のうちの1つに記載の方法を実行させる命令を格納した1つ又は複数のメモリとを備える、
計算装置。
【請求項13】
電子装置のためのファームウェアを認証する方法であって、
上記電子装置は、物理的複製困難関数(PUF)を有するセキュリティモジュールを備え、
上記セキュリティモジュールは、上記PUFに対する第1のチャレンジ及びレスポンスに基づいてファームウェア鍵ペア(FPK,FSK)を確立し、上記PUFに対する第2のチャレンジ及びレスポンスに基づいて登録鍵ペア(EPK,ESK)を確立するように構成され、
上記ファームウェア鍵ペアは、ファームウェア公開鍵(FPK)及びファームウェア秘密鍵(FSK)を含み、
上記登録鍵ペア(EPK,ESK)は、登録公開鍵(EPK)及び登録秘密鍵(ESK)を含み、
上記方法は、
サーバから、安全な通信チャネルを介して、上記電子装置にインストールされるファームウェアのハッシュを受信することと、
公開認証局鍵(PAK)及び秘密認証局鍵(SAK)を含む認証局鍵ペアの上記秘密認証局鍵を用いて、上記ファームウェアのハッシュに署名することとを含み、
上記公開認証局鍵は、上記電子装置に安全に組み込まれ、
上記方法は、
上記電子装置へのインストールのために、サードパーティーへの上記ハッシュ上の署名の伝送を開始することと、
上記FPKと、上記電子装置を識別するための、上記EPKの関数を含む関連付けられた装置識別子とを、上記サーバへの安全な通信チャネルを介して送信することとを含む、
方法。
【請求項14】
上記セキュリティモジュールから上記装置識別子を抽出することをさらに含む、
請求項13記載の方法。
【請求項15】
上記セキュリティモジュールから上記FPKを抽出することをさらに含む、
請求項13又は14記載の方法。
【請求項16】
上記装置識別子及び上記FPKを受信することをさらに含む、
請求項13又は14記載の方法。
【請求項17】
上記装置識別子を上記サーバに登録する要求を受信することをさらに含む、
請求項13~16のうちの1つに記載の方法。
【請求項18】
上記装置識別子及び上記FPKをルックアップテーブルに入力することをさらに含む、
請求項13~17のうちの1つに記載の方法。
【請求項19】
1つ又は複数のプロセッサによって実行されたとき、上記1つ又は複数のプロセッサに請求項13~18のうちの1つに記載の方法を実行させる命令を格納したコンピュータ可読媒体。
【請求項20】
1つ又は複数のプロセッサと、
上記1つ又は複数のプロセッサによって実行されたとき、上記1つ又は複数のプロセッサに請求項13~18のうちの1つに記載の方法を実行させる命令を格納した1つ又は複数のメモリとを備える、
計算装置。
【請求項21】
電子装置により実行する方法であって、
上記電子装置は、物理的複製困難関数(PUF)を有するセキュリティモジュールを備え、
上記セキュリティモジュールは、上記PUFに対する第1のチャレンジ及びレスポンスに基づいて、ファームウェア鍵ペア(FPK,FSK)を確立するように構成され、
上記ファームウェア鍵ペアは、ファームウェア公開鍵(FPK)及びファームウェア秘密鍵(FSK)を含み、
上記方法は、
上記FPKを用いて暗号化されたサーバ復号鍵を、上記FSKを用いて復号することと、
上記復号されたサーバ復号鍵を用いて、ファームウェアと、上記ファームウェアのハッシュ上の署名とを復号することと、
上記電子装置に安全に組み込まれていた公開認証局鍵を用いて、上記ファームウェアのハッシュが、信頼された認証局によって署名されていることを検証することと、
上記検証に基づいて、上記復号されたファームウェアを上記電子装置にインストールすることとを含む、
方法。
【請求項22】
ブート中に、上記ファームウェアが、信頼された当事者によって署名されていることを検証することをさらに含む、
請求項21記載の方法。
【請求項23】
セキュリティモジュール及び1つ又は複数のプロセッサを備える電子装置であって、
上記セキュリティモジュールは物理的複製困難関数(PUF)を有し、
上記セキュリティモジュールは、上記PUFに対する第1のチャレンジ及びレスポンスに基づいて、ファームウェア鍵ペア(FPK,FSK)を確立するように構成され、
上記ファームウェア鍵ペアは、ファームウェア公開鍵(FPK)及びファームウェア秘密鍵(FSK)を含み、
1つ又は複数のプロセッサは、上記セキュリティモジュールを備えるか、又は、上記セキュリティモジュールに通信可能に接続され、
上記1つ又は複数のプロセッサは、
上記FPKを用いて暗号化されたサーバ復号鍵を、上記FSKを用いて復号し、
上記復号されたサーバ復号鍵を用いて、ファームウェアと、上記ファームウェアのハッシュ上の署名とを復号し、
上記電子装置に安全に組み込まれていた公開認証局鍵を用いて、上記ファームウェアのハッシュが、信頼された認証局によって署名されていることを検証し、
上記検証に基づいて、上記復号されたファームウェアを上記電子装置にインストールするように構成された、
電子装置。
【請求項24】
電子装置にファームウェアを提供するためのシステムであって、
上記電子装置は、物理的複製困難関数(PUF)を有するセキュリティモジュールを備え、
上記セキュリティモジュールは、上記PUFに対する第1のチャレンジ及びレスポンスに基づいて、ファームウェア鍵ペア(FPK,FSK)を確立するように構成され、
上記ファームウェア鍵ペアは、ファームウェア公開鍵(FPK)及びファームウェア秘密鍵(FSK)を含み、
上記システムは、信頼された認証局及びサーバを備え、
上記信頼された認証局は、
上記サーバからファームウェアのハッシュを受信し、
公開認証局鍵及び秘密認証局鍵を含む認証局鍵ペアの上記秘密認証局鍵を用いて、上記ファームウェアのハッシュに署名し、
上記公開認証局鍵は上記電子装置に安全に組み込まれ、
上記ファームウェアのハッシュ上の署名を上記サーバに送信し、
上記FPKを上記サーバに送信するように構成され、
上記サーバは、
上記信頼された認証局から上記署名を受信し、
上記信頼された認証局から上記FPKを受信し、
サーバ暗号鍵を用いて上記ファームウェア及び上記署名を暗号化し、
上記暗号化されたファームウェア及び上記暗号化された署名を復号するためのサーバ復号鍵を、FPKを用いて暗号化し、
上記暗号化されたファームウェア、上記暗号化された署名、及び上記暗号化されたサーバ復号鍵を、上記電子装置へのインストールのために、サードパーティーに伝送するように構成された、
システム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、概して、当事者間の信頼を確立するための方法及びシステムに関する。特に、本開示は、電子装置にファームウェアを安全に提供する方法と、そのような方法を実行するように構成された計算装置とに関する。本開示は、多数の装置及びネットワークに適用可能であるが、特に、インターネット接続を有する装置に適用可能である。
【背景技術】
【0002】
インターネットのようなネットワークは、日常のタスクが行われる方法を変更し、このことは、情報セキュリティにとって主要な意味合いを有するものであった。多数の日常のタスクが、安全に認証しまた他の当事者によって安全に認証されるために、及び/又は、プライベートな情報を安全に取り扱うために、ディジタル装置を必要とする。モノのインターネット(Internet of Things:IoT)の開発によって、暖房及び照明のようなシステムがインターネット接続を有する装置によって制御されることがより一般的になり、年々、ますます多くの装置がインターネットに接続される。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】国際公開WO2020/212689A1号(2020年4月8日に出願され、「Device Identification With Quantum Tunnelling Currents」のタイトルを有する国際特許出願番号第PCT/GB2020/050918号)
【特許文献2】英国特許出願番号第2105185.9号明細書(2021年4月12日に出願され、「Interim Root-Of-Trust Enrolment And Device-Bound Public Key Registration」のタイトルを有する)
【特許文献3】英国特許出願番号第2105183.4号明細書(2021年4月12日に出願され、「Secure Root-Of-Trust Enrolment And Identity Management Of Embedded Devices」のタイトルを有する)
【発明の概要】
【発明が解決しようとする課題】
【0004】
IoT装置のような電子装置に秘密情報を安全に提供することの固有の困難は、装置の登録、すなわち、相互接続された装置のグリッドへのその加入のような、さらなる後段の処理に影響する可能性がある。しばしば、予め共有された鍵又は非対称鍵ペアの秘密鍵、及び/又は装置証明書のような秘密情報が、サービスに登録するために使用する何らかの基礎的なクレデンシャルを装置に提供するために、製造時に装置に安全に提供されなければならない。再び、このことが安全に実行されうる程度に関する制限が存在する。
【0005】
典型的なシナリオにおいて、OEM(Original Equipment Manufacturer)は、製造した装置に、IoTサービスへの登録を可能にするための身元情報を提供することと、装置にファームウェアを安全にインストールすることとを達成しようとすることがある。装置は、例えば、鍵を格納するための安全な領域を有するマイクロコントローラを含んでもよく、マイクロコントローラは、サードパーティーの製造業者によって製造されていてもよい。OEM又は製造業者は、例えば、秘密鍵及び装置証明書を安全な領域に投入することがあり、安全な設備を必要とする。装置にファームウェア/証明書をインストールするために、OEMは、装置を構成するプログラミング会社のサービスを使用してもよく、このことは、さらなる信頼を必要とする。プログラミング会社は、安全な設備を運用し、正しい情報を投入し、OEMに代わって証明書に安全に署名すると信頼されなければならない。いくつかの状況では、装置を提供することは、互いに異なる複数の当事者が電子装置と相互動作することを必要とする可能性がある。しかしながら、これらの異なる当事者は、電子装置にインストールされる情報、例えば、ファームウェア又は証明書にアクセスしている可能性があり、従って、電子装置にそれがインストールされる前に、これらの当事者のいずれかが情報を改竄するリスクが存在する。
【0006】
本発明の実施形態の目的は、当該技術において既知の1つ又は複数の問題を少なくとも緩和することにある。
【課題を解決するための手段】
【0007】
本発明の態様によれば、電子装置にファームウェアを提供する方法が提供される。電子装置は、物理的複製困難関数(PUF)を有するセキュリティモジュールを備える。セキュリティモジュールは、PUFに対する第1のチャレンジ及びレスポンスに基づいて、ファームウェア鍵ペア(FPK,FSK)を確立するように構成される。ファームウェア鍵ペアは、ファームウェア公開鍵(FPK)及びファームウェア秘密鍵(FSK)を含む。本方法は、認証局鍵ペアの秘密鍵を用いてファームウェアのハッシュに署名させて署名を取得することを含む。認証局鍵ペアは公開鍵及び秘密鍵を含み、公開鍵は電子装置に安全に組み込まれる。本方法は、サーバ暗号鍵を用いてファームウェア及び署名を暗号化することをさらに含む。本方法は、暗号化されたファームウェア及び暗号化された署名を復号するためのサーバ復号鍵を、FPKを用いて暗号化することをさらに含む。本方法は、暗号化されたファームウェア、暗号化された署名、及び暗号化されたサーバ復号鍵を、電子装置へのインストールのために、サードパーティーに伝送することをさらに含む。
【0008】
優位点として、本方法は、電子装置のみがファームウェアを復号できるように、暗号化された形式でファームウェアが電子装置に提供されることを可能にする。このことは、プロプライエタリなファームウェアが機密のままであると、ファームウェアの作成者、例えばOEM(original equipment manufacturer)が信頼しうることを保証する。電子装置の製造及びプログラミングに関与する他の当事者、例えば、サードパーティーのプログラミング会社は、改竄を検出可能にすることなく、ファームウェアを改竄することができない。
【0009】
優位点として、ファームウェア鍵ペアは、PUFに対するチャレンジ及びレスポンスに基づき、このことは、秘密情報が製造中に装置に投入されることを必要とせず、また、装置のメモリに秘密鍵が格納されることを必要としない、ということを意味する。
【0010】
本方法は、ファームウェアを受信することと、ファームウェアに対してハッシュ関数を実行してファームウェアのハッシュを生成することとをさらに含んでもよい。
【0011】
本方法は、ファームウェアのハッシュを受信することをさらに含んでもよい。
【0012】
ファームウェアのハッシュに署名させることは、ファームウェアのハッシュに署名することを含んでもよい。
【0013】
ファームウェアのハッシュに署名させることは、ファームウェアのハッシュを信頼された認証局に送信することと、信頼された認証局から署名を受信することとを含んでもよい。
【0014】
本方法は、FPKを信頼された認証局から受信することをさらに含んでもよい。
【0015】
サーバ暗号鍵はサーバ復号鍵と同じであってもよい。代替として、非対称なサーバ暗号鍵及びサーバ復号鍵が使用されてもよい。
【0016】
セキュリティモジュールは、PUFに対する第2のチャレンジ及びレスポンスに基づいて、登録公開鍵(EPK)及び登録秘密鍵(ESK)を含む登録鍵ペア(EPK,ESK)を確立するようにさらに構成されてもよく、本方法は、EPKの関数を含む装置識別子をサードパーティーに伝送することをさらに含んでもよい。従って、優位点として、装置識別子は、PUFに対するチャレンジ及びレスポンスに基づくEPK及びESKにリンクされ、従って、装置に身元情報を提供するために、製造中に、装置に秘密情報を投入することを必要としない。
【0017】
装置識別子は、信頼された認証局から受信されてもよい。
【0018】
本方法は、ファームウェアが電子装置にインストールされた後、装置識別子を受信することと、装置識別子を信頼された認証局に対して登録することとをさらに含んでもよい、信頼された認証局に対して装置識別子を登録することによって、装置識別子が登録されていない他の当事者が電子装置と通信することを禁止しうるので、セキュリティは向上する。具体的には、装置識別子は、特定のサーバに関連付けられ、したがって、他のサードパーティーは、サーバの認可なしに、装置と相互動作できない。
【0019】
本発明の態様によれば、コンピュータ可読媒体が提供される。コンピュータ可読媒体は、1つ又は複数のプロセッサによって実行されたとき、上述した電子装置にファームウェアを提供する方法を1つ又は複数のプロセッサに実行させる命令を格納している。
【0020】
本発明の態様によれば、計算装置が提供される。計算装置は1つ又は複数のプロセッサを備える。計算装置はさらに1つ又は複数のメモリを備え、1つ又は複数のメモリは、1つ又は複数のプロセッサによって実行されたとき、上述した電子装置にファームウェアを提供する方法を1つ又は複数のプロセッサに実行させる命令を格納している。
【0021】
本発明の態様によれば、電子装置のためのファームウェアを認証する方法が提供される。電子装置は、物理的複製困難関数(PUF)を有するセキュリティモジュールを備える。セキュリティモジュールは、PUFに対する第1のチャレンジ及びレスポンスに基づいてファームウェア鍵ペア(FPK,FSK)を確立し、PUFに対する第2のチャレンジ及びレスポンスに基づいて登録鍵ペア(EPK,ESK)を確立するように構成される。ファームウェア鍵ペアは、ファームウェア公開鍵(FPK)及びファームウェア秘密鍵(FSK)を含む。登録鍵ペア(EPK,ESK)は、登録公開鍵(EPK)及び登録秘密鍵(ESK)を含む。本方法は、サーバから、安全な通信チャネルを介して、電子装置にインストールされるファームウェアのハッシュを受信することを含む。本方法は、公開認証局鍵(PAK)及び秘密認証局鍵(SAK)を含む認証局鍵ペアの秘密認証局鍵を用いて、ファームウェアのハッシュに署名することを含む。公開認証局鍵は電子装置に安全に組み込まれる。本方法は、電子装置へのインストールのために、サードパーティーへの署名の伝送を開始することを含む。本方法は、FPKと、電子装置を識別するための、EPKの関数を含む関連付けられた装置識別子とを、サーバへの安全な通信チャネルを介して送信することを含む。
【0022】
優位点として、そのような方法は、信頼された認証局がファームウェアにアクセスすることなく、電子装置が、その信頼された認証局によって認可されているファームウェアを受信することを可能にする。さらに、暗号化されていない形式で秘密情報を電子装置に投入することを必要としない。
【0023】
本方法は、セキュリティモジュールから装置識別子を抽出することをさらに含んでもよい。
【0024】
本方法は、セキュリティモジュールからFPKを抽出することをさらに含んでもよい。
【0025】
本方法は、装置識別子及びFPKを受信することをさらに含んでもよい。
【0026】
本方法は、装置識別子をサーバに登録する要求を受信することをさらに含んでもよい。
【0027】
本方法は、装置識別子及びFPKをルックアップテーブルに入力することをさらに含んでもよい。
【0028】
本発明の態様によれば、コンピュータ可読媒体が提供される。コンピュータ可読媒体は、1つ又は複数のプロセッサによって実行されたとき、上述した電子装置のためのファームウェアを認証する方法を1つ又は複数のプロセッサに実行させる命令を格納している。
【0029】
本発明の態様によれば、計算装置が提供される。コンピュータ装置は1つ又は複数のプロセッサを備える。計算装置はさらに1つ又は複数のメモリを備え、1つ又は複数のメモリは、1つ又は複数のプロセッサによって実行されたとき、上述した電子装置のためのファームウェアを認証する方法を1つ又は複数のプロセッサに実行させる命令を格納している。
【0030】
本発明の態様によれば、電子装置により実行される方法が提供される、電子装置は、物理的複製困難関数(PUF)を有するセキュリティモジュールを備え、セキュリティモジュールは、PUFに対する第1のチャレンジ及びレスポンスに基づいて、ファームウェア鍵ペア(FPK,FSK)を確立するように構成され、ファームウェア鍵ペアは、ファームウェア公開鍵(FPK)及びファームウェア秘密鍵(FSK)を含む。本方法は、FPKを用いて暗号化されたサーバ復号鍵を、FSKを用いて復号することを含む。と、本方法は、復号されたサーバ復号鍵を用いて、ファームウェアと、ファームウェアのハッシュ上の署名とを復号することをさらに含む。本方法は、電子装置に安全に組み込まれていた公開認証局鍵を用いて、ファームウェアのハッシュが、信頼された認証局によって署名されていることを検証することをさらに含む。本方法は、検証に基づいて、復号されたファームウェアを電子装置にインストールすることとをさらに含む。
【0031】
本方法は、電子装置のブート中に、ファームウェアが、信頼された当事者によって署名されていることを検証することをさらに含んでもよい。
【0032】
本発明の態様によれば、電子装置が提供される。電子装置は、物理的複製困難関数(PUF)を有するセキュリティモジュールを備える。セキュリティモジュールは、PUFに対する第1のチャレンジ及びレスポンスに基づいて、ファームウェア鍵ペア(FPK,FSK)を確立するように構成される。ファームウェア鍵ペアは、ファームウェア公開鍵(FPK)及びファームウェア秘密鍵(FSK)を含む。電子装置は1つ又は複数のプロセッサをさらに備える。1つ又は複数のプロセッサは、セキュリティモジュールを備えるか、又は、セキュリティモジュールに通信可能に接続される。1つ又は複数のプロセッサはFPKを用いて暗号化されたサーバ復号鍵を、FSKを用いて復号するように構成される。1つ又は複数のプロセッサは、復号されたサーバ復号鍵を用いて、ファームウェアと、ファームウェアのハッシュ上の署名とを復号するように構成される。1つ又は複数のプロセッサは、電子装置に安全に組み込まれていた公開認証局鍵を用いて、ファームウェアのハッシュが、信頼された認証局によって署名されていることを検証するように構成される。1つ又は複数のプロセッサは、検証に基づいて、復号されたファームウェアを電子装置にインストールするように構成される。
【0033】
優位点として、電子装置にファームウェアが安全に提供される。電子装置上に、製造中、秘密情報が格納されない。さらに、セキュリティの一部が、電子装置にインストールされたPUFに対するチャレンジ及びレスポンスに基づくので、関連する秘密鍵は、電子装置上に格納されることをいっさい必要とせず、代わりに、必要とされたときに動的に再生成されてもよい。
【0034】
本発明の態様によれば、電子装置にファームウェアを提供するためのシステムが提供される。電子装置は、物理的複製困難関数(PUF)を有するセキュリティモジュールを備える。セキュリティモジュールは、PUFに対する第1のチャレンジ及びレスポンスに基づいて、ファームウェア鍵ペア(FPK,FSK)を確立するように構成される。ファームウェア鍵ペアは、ファームウェア公開鍵(FPK)及びファームウェア秘密鍵(FSK)を含む。本システムは、信頼された認証局と、サーバとを備える。信頼された認証局は、サーバからファームウェアのハッシュを受信するように構成される。信頼された認証局は、公開認証局鍵及び秘密認証局鍵を含む認証局鍵ペアの秘密認証局鍵を用いて、ファームウェアのハッシュに署名するように構成される。公開認証局鍵は電子装置に安全に組み込まれる。信頼された認証局は、ファームウェアのハッシュ上の署名をサーバに送信するように構成される。信頼された認証局は、FPKをサーバに送信するように構成される。サーバは、信頼された認証局からファームウェア上の署名を受信するように構成される。サーバは、信頼された認証局からFPKを受信するように構成される。サーバは、サーバ暗号鍵を用いてファームウェア及び署名を暗号化するように構成される。サーバは、暗号化されたファームウェア及び暗号化された署名を復号するためのサーバ復号鍵を、FPKを用いて暗号化するように構成される。サーバは、暗号化されたファームウェア、暗号化された署名、及び暗号化されたサーバ復号鍵を、電子装置へのインストールのために、サードパーティーに伝送するように構成される。
【0035】
本発明の態様によれば、電子装置にファームウェアを提供する方法が提供される。電子装置は、物理的複製困難関数(PUF)を有するセキュリティモジュールを備える。セキュリティモジュールは、PUFに対する第1のチャレンジ及びレスポンスに基づいて、ファームウェア鍵ペア(FPK,FSK)を確立するように構成される。ファームウェア鍵ペアは、ファームウェア公開鍵(FPK)及びファームウェア秘密鍵(FSK)を含む。本方法は、公開鍵及び秘密鍵を含む認証局/署名鍵ペアの秘密鍵を用いて、暗号化された形式のファームウェアに署名させることを含む。公開鍵は電子装置に安全に組み込まれる。ファームウェアは、サーバ暗号鍵を用いて暗号化される。本方法は、電子装置へのインストールのために、暗号化及び署名された形式のファームウェアをサードパーティーに伝送することをさらに含む。本方法は、電子装置へのインストールのために、暗号化された形式のサーバ複合鍵をサードパーティーに伝送することをさらに含む。サーバ復号鍵は、暗号化された形式のファームウェアの復号用である。サーバ復号鍵は、FPKを用いて暗号化される。
【0036】
優位点として、本方法は、電子装置のみがファームウェアを復号できるように、暗号化された形式でファームウェアが電子装置に提供されることを可能にする。このことは、プロプライエタリなファームウェアが機密のままであると、ファームウェアの作成者、例えばOEM(original equipment manufacturer)が信頼しうることを保証する。電子装置の製造及びプログラミングに関与する他の当事者は、ファームウェアを改竄することができない。
【0037】
優位点として、ファームウェア鍵ペアは、PUFに対するチャレンジ及びレスポンスに基づき、このことは、秘密情報が製造中に装置に投入されることを必要とせず、また、装置のメモリに秘密鍵が格納されることを必要としない、ということを意味する。
【0038】
本方法は、ファームウェアを受信することと、ファームウェアを暗号化して、暗号化された形式のファームウェアを生成することとをさらに含んでもよい。本方法は、暗号化された形式のファームウェアを受信することをさらに含んでもよい。
【0039】
暗号化された形式のファームウェアに署名させることは、暗号化された形式のファームウェアに署名することを含んでもよい、暗号化された形式のファームウェアに署名させることは、暗号化された形式のファームウェアを信頼された認証局に送信することと、信頼された認証局から暗号化及び署名された形式のファームウェアを受信することとを含んでもよい。暗号化された形式のファームウェアに署名することは、装置にインストールする前におけるファームウェアのいかなる改竄も検出可能になることを保証し、ダウンストリームのセキュリティ対策の信頼性をもたらす。
【0040】
本方法は、FPKを信頼された認証局から受信することをさらに含んでもよい。
【0041】
本方法は、FPKを用いてサーバ暗号鍵を暗号化することをさらに含んでもよい。
【0042】
サーバ暗号鍵はサーバ復号鍵と同じであってもよい。
【0043】
セキュリティモジュールは、PUFに対する第2のチャレンジ及びレスポンスに基づいて、登録公開鍵(EPK)及び登録秘密鍵(ESK)を含む登録鍵ペア(EPK,ESK)を確立するようにさらに構成されてもよい。本方法は、EPKの関数を含む装置識別子をサードパーティーに伝送することをさらに含んでもよい。関数は暗号ハッシュ関数を含んでもよい。優位点として、装置識別子は、PUFに対するチャレンジ及びレスポンスに基づくEPK及びESKにリンクされ、従って、製造中に、装置に秘密情報を投入することを必要としない。
【0044】
装置識別子は、信頼された認証局から受信されてもよい。
【0045】
本方法は、ファームウェアが電子装置にインストールされた後、装置識別子を受信することと、装置識別子を信頼された認証局に対して登録することとをさらに含んでもよい、信頼された認証局に対して装置識別子を登録することによって、装置識別子が登録されていない他の当事者が電子装置と通信できないので、セキュリティは向上する。具体的には、装置識別子はそのサーバに関連付けられ、したがって、他のサードパーティーは、サーバの認可なしに、装置と相互動作できない。
【0046】
本発明の態様によれば、コンピュータ可読媒体が提供される。コンピュータ可読媒体は、1つ又は複数のプロセッサによって実行されたとき、上述した電子装置にファームウェアを提供する方法を1つ又は複数のプロセッサに実行させる命令を格納している。
【0047】
本発明の態様によれば、計算装置が提供される。計算装置は1つ又は複数のプロセッサを備える。計算装置はさらに1つ又は複数のメモリを備え、1つ又は複数のメモリは、1つ又は複数のプロセッサによって実行されたとき、上述した電子装置にファームウェアを提供する方法を1つ又は複数のプロセッサに実行させる命令を格納している。
【0048】
本発明の態様によれば、電子装置のためのファームウェアを認証する方法が提供される。電子装置は、物理的複製困難関数(PUF)を有するセキュリティモジュールを備える。セキュリティモジュールは、PUFに対する第1のチャレンジ及びレスポンスに基づいてファームウェア鍵ペア(FPK,FSK)を確立し、PUFに対する第2のチャレンジ及びレスポンスに基づいて登録鍵ペア(EPK,ESK)を確立するように構成される。ファームウェア鍵ペアは、ファームウェア公開鍵(FPK)及びファームウェア秘密鍵(FSK)を含む。登録鍵ペア(EPK,ESK)は、登録公開鍵(EPK)及び登録秘密鍵(ESK)を含む。本方法は、サーバから、安全な通信チャネルを介して、電子装置にインストールされるファームウェアであって、暗号化ファームウェアを受信することを含む。本方法は、公開認証局鍵及び秘密認証局鍵を含む認証局鍵ペアの秘密認証局鍵を用いて、暗号化されたファームウェアに署名することをさらに含む。公開認証局鍵は電子装置に安全に組み込まれる。本方法は、電子装置へのインストールのために、サードパーティーへの暗号化及び署名されたファームウェアの伝送を開始することをさらに含む。本方法は、安全な通信チャネルを介して、ルックアップテーブルをサーバに送信することをさらに含む。ルックアップテーブルは、FPKと、電子装置を識別するための、EPKの関数を含む関連付けられた装置識別子とを示す。関数は暗号ハッシュ関数を含んでもよい。
【0049】
優位点として、そのような方法は、信頼された認証局が暗号化されていない形式でファームウェアにアクセスすることなく、電子装置が、その信頼された認証局によって認可されているファームウェアを受信することを可能にする。さらに、暗号化されていない形式で秘密情報を電子装置に投入することを必要としない。
【0050】
本方法は、セキュリティモジュールから装置識別子を抽出することをさらに含んでもよい。本方法は、セキュリティモジュールからFPKを抽出することをさらに含んでもよい。本方法は、装置識別子及びFPKを受信することを含んでもよい。
【0051】
本方法は、装置識別子をサーバに登録する要求を受信することをさらに含んでもよい。サーバに対して装置識別子を登録することによって、装置識別子が登録されていない他の当事者が電子装置と通信できないので、セキュリティは向上する。本方法は、装置識別子及びFPKをルックアップテーブルに入力することをさらに含んでもよい。
【0052】
本発明の態様によれば、コンピュータ可読媒体が提供される。コンピュータ可読媒体は、1つ又は複数のプロセッサによって実行されたとき、上述した電子装置のためのファームウェアを認証する方法を1つ又は複数のプロセッサに実行させる命令を格納している。
【0053】
本発明の態様によれば、計算装置が提供される。計算装置は1つ又は複数のプロセッサを備える。計算装置はさらに1つ又は複数のメモリを備え、1つ又は複数のメモリは、1つ又は複数のプロセッサによって実行されたとき、上述した電子装置のためのファームウェアを認証する方法を1つ又は複数のプロセッサに実行させる命令を格納している。
【0054】
本発明の態様によれば、電子装置により実行される方法が提供される。電子装置は、物理的複製困難関数(PUF)を有するセキュリティモジュールを備える。セキュリティモジュールは、PUFに対する第1のチャレンジ及びレスポンスに基づいて、ファームウェア公開鍵(FPK)及びファームウェア秘密鍵(FSK)を含むファームウェア鍵ペア(FPK,FSK)を確立するように構成される。本方法は、FPKを用いて暗号化されたサーバ復号鍵を、FSKを用いて復号することを含む。本方法は、電子装置に安全に組み込まれていた公開認証局鍵を用いて、暗号化された形式のファームウェアが、信頼された認証局によって認証されていることを検証することをさらに含む。本方法は、復号されたサーバ復号鍵を用いて、電子装置にインストールされるファームウェアを復号することをさらに含む。
【0055】
優位点として、電子装置にファームウェアが安全に提供される。電子装置上に、製造中、秘密情報が格納されない。さらに、セキュリティの一部が、電子装置にインストールされたPUFに対するチャレンジ及びレスポンスに基づくので、関連する秘密鍵は、電子装置上に格納されることをいっさい必要とせず、代わりに、必要とされたときに動的に再生成されてもよい。
【0056】
本発明の態様によれば、コンピュータ可読媒体が提供される。コンピュータ可読媒体は、1つ又は複数のプロセッサによって実行されたとき、1つ又は複数のプロセッサに下記の方法を実行させる命令を格納する。本方法は、FPKを用いて暗号化されたサーバ復号鍵を、FSKを用いて復号することと、電子装置に安全に組み込まれていた公開認証局鍵を用いて、暗号化された形式のファームウェアが、信頼された認証局によって認証されていることを検証することと、復号されたサーバ復号鍵を用いて、電子装置にインストールされるファームウェアを復号することとを含む。
【0057】
本発明の態様によれば、電子装置が提供される。電子装置は、物理的複製困難関数(PUF)を有するセキュリティモジュールを備える。セキュリティモジュールは、PUFに対する第1のチャレンジ及びレスポンスに基づいて、ファームウェア公開鍵(FPK)及びファームウェア秘密鍵(FSK)を含むファームウェア鍵ペア(FPK,FSK)を確立するように構成される。電子装置は1つ又は複数のプロセッサをさらに備える。1つ又は複数のプロセッサは、セキュリティモジュールを備えるか、又は、セキュリティモジュールに通信可能に接続される。1つ又は複数のプロセッサは、FPKを用いて暗号化されたサーバ復号鍵を、FSKを用いて復号し、電子装置に安全に組み込まれていた公開認証局鍵を用いて、暗号化された形式のファームウェアが、信頼された認証局によって認証されていることを検証し、復号されたサーバ復号鍵を用いて、電子装置にインストールされるファームウェアを復号するように構成される。
【0058】
本発明の態様によれば、電子装置にファームウェアを提供するためのシステムが提供される。電子装置は、物理的複製困難関数(PUF)を有するセキュリティモジュールを備える。セキュリティモジュールは、PUFに対する第1のチャレンジ及びレスポンスに基づいてファームウェア鍵ペア(FPK,FSK)を確立し、PUFに対する第2のチャレンジ及びレスポンスに基づいて登録鍵ペア(EPK,ESK)を確立するように構成される。ファームウェア鍵ペアは、ファームウェア公開鍵(FPK)及びファームウェア秘密鍵(FSK)を含む。登録鍵ペア(EPK,ESK)は、登録公開鍵(EPK)及び登録秘密鍵(ESK)を含む。本システムは、信頼された認証局と、サーバとを備える。信頼された認証局は、サーバから、暗号化されたファームウェアを受信するように構成される。信頼された認証局は、公開認証局鍵及び秘密認証局鍵を含む認証局鍵ペアの秘密認証局鍵を用いて、暗号化されたファームウェアに署名するようにさらに構成される。公開認証局鍵は電子装置に安全に組み込まれる。信頼された認証局は、暗号化及び署名されたファームウェアをサーバに送信するようにさらに構成される。信頼された認証局は、電子装置を識別するための装置識別子であって、EPKの関数を含む装置識別子を、サーバに送信するようにさらに構成される。信頼された認証局は、FPKをサーバに送信するようにさらに構成される。サーバは、サーバ暗号鍵を用いて暗号化された形式ファームウェアを、署名のために、信頼された認証局に送信するように構成される。サーバは、信頼された認証局から暗号化及び署名されたファームウェアを受信するようにさらに構成される。サーバは、信頼された認証局から装置識別子及びFPKを受信するようにさらに構成される。サーバは、暗号化されたファームウェアを復号するためのサーバ復号鍵を、FPKを用いて暗号化するようにさらに構成される。サーバは、装置識別子、暗号化されたサーバ復号鍵、及び暗号化及び署名されたファームウェアを、電子装置へのインストールのために、サードパーティーに伝送するようにさらに構成される。
【0059】
本願において説明する方法を実行するためのコンピュータプログラム及び/又はコード/命令は、コンピュータ可読媒体又はコンピュータプログラム製品において、コンピュータのような装置に提供されてもよい。コンピュータ可読媒体は、例えば、電子的、磁気的、光学的、電磁的、赤外線、半導体システム、又はデータ送信のための、例えばインターネットを介してコードをダウンロードするための伝搬媒体であってもよい。代替として、コンピュータ可読媒体は、半導体又はソリッドステートメモリ、磁気テープ、取り外し可能なコンピュータディスケット、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、剛体磁気ディスク、及びCD-ROM、CD-R/W、又はDVDなどの光ディスクのような、物理的コンピュータ可読媒体の形式を有してもよい。
【0060】
本願において説明された発明の多数の変形例及び他の実施形態は、本願において提示した開示内容に照らして、これらの発明が関連する技術分野の当業者に理解される。従って、本開示は、本願において開示した特定の実施形態に限定されないことが理解されるであろう。また、本願において提供した説明は、構成要素の所定の組み合わせのコンテキストにおける例示的な実施形態を提供するが、ステップ及び/又は機能は、本発明の範囲から離れることなく、代替の実施形態によって提供されてもよい。
【図面の簡単な説明】
【0061】
図1】発明の詳細な説明の全体にわたって例示の目的でのみ参照される、様々な当事者の図を示す。
図2】通信システムを示す。
図3A】電子装置のブロック図を示す。
図3B】マイクロコントローラの図を示す。
図4A】セキュリティモジュールのブロック図を示す。
図4B】PUFモジュールのブロック図を示す。
図5】計算装置のブロック図を示す。
図6A】電子装置にファームウェアを提供する方法を示す。
図6B】電子装置にファームウェアを提供する他の方法を示す。
図7A】フローチャートを示す。
図7B】フローチャートを示す。
図8A】フローチャートを示す。
図8B】フローチャートを示す。
図9A】フローチャートを示す。
図9B】フローチャートを示す。
図10】コンピュータ可読媒体のブロック図を示す。
【発明を実施するための形態】
【0062】
本発明の実施形態は、添付図面を参照して、例示としてのみ、さらに説明される。
【0063】
説明及び図面の全体にわたって、同様の参照符号は同様の部分を参照する。
【0064】
様々な実施形態が下記に説明されているが、本発明はこれらの実施形態に限定されず、また、これらの実施形態の変形例は本発明の範囲内に含まれ、本発明の範囲は、添付された特許請求の範囲によってのみ限定されるであろう。
【0065】
下記では、IoT装置のセキュリティ及び登録を参照する。しかしながら、当業者は、本願において説明した方法、システム、及び装置が、さらにずっと広く適用可能であることを認識するであろう。
【0066】
下記では、電子装置にファームウェアを安全に提供する方法を説明する。本願において説明する方法は、関連する様々な当事者が特に電子装置のセキュリティを互いにゆだねることを必要とすることなく、電子装置にファームウェアをインストールすることを可能にする。説明の簡単化のために、いくつかの利害関係者(例えば、OEM及びIoTハブ)を含む例示的なシナリオを図1に示し、発明の詳細な説明の全体にわたって参照する。しかしながら、本願において説明する方法は、当業者によって認識されるように、より一般的に適用可能である。
【0067】
発明の詳細な説明を読むことで認識されるように、電子装置には物理的複製困難関数が提供されてもよい。物理的複製困難関数(物理的に複製困難な関数又はPUF(physical unclonable function)としても知られる)は、安全なEEPROM及び他の高価なハードウェアの要件なしに、認証及び秘密鍵格納のために使用される暗号プリミティブである。ディジタルメモリに秘密を格納する代わりに、PUFは、通常は製造中に導入される、1つ又は複数の構成要素の一意的な物理的特性から秘密を導出する。既知のPUFは、小さなシリカ球を含む懸濁物である硬化エポキシ樹脂のシートを介するレーザ光の散乱、又は、何らか回路のゲート遅延における製造時の変動のような現象に基づく。
【0068】
下記では、物理的に複製困難な関数、物理的複製困難関数、及びPUFという用語は、交換可能に使用される。PUFは、機能的動作を実行するという目的を有する、すなわち、所定の入力により問い合わせを受けたとき、PUFは測定可能な出力を生成する。PUFに対する1つの入力が、1つよりも多くの可能な出力を有してもよいので、PUFは、数学的な意味において、真の関数ではない。典型的には、PUFに対する入力は「チャレンジ」と呼ばれ、PUFの結果として得られる出力は「レスポンス」と呼ばれる。印加されたチャレンジと、その測定されたレスポンスとは、「チャレンジ・レスポンスペア」(challenge-response pair:CRP)として知られる。本願で使用される用語「チャレンジ」は、PUFに提供される、選択された入力(例えば、アレイの特定のセルの選択、特定の電圧の適用、など)を意味すると理解され、また、用語「レスポンス」は、PUFの対応する出力を参照するように本願において使用される。
【0069】
電子装置での使用に適しているならば、任意の適切なPUFが、本願において説明したシステム及び方法とともに使用されてもよい。例えば、PUFは、SRAM PUFであってもよい。SRAM PUFは、SRAMのしきい値電圧におけるランダムな差分を使用して、一意のチャレンジ・レスポンスペアを生成する。
【0070】
適切なPUFの他の実施例は遅延PUFであり、これは、チップにおける導線又はゲートにおける遅延のランダムな変動を利用する。入力チャレンジが与えられると、回路において競合条件がセットアップされ、異なる経路に沿って伝搬する2つの遷移が比較されて、どちらが先に到来するか(レスポンス)を確かめる。
【0071】
PUFの他の実施例において、量子閉じ込めを利用してもよい。例えば、PUFは、いくつかの共振トンネルダイオードから形成されてもよい。
【0072】
PUFの他の実施例において、量子トンネルバリアを介する量子トンネルを利用してもよい。PUFの一例は、特許文献1において説明される。実施例によれば、PUFは、個々にアドレス指定可能な複数のセルを有するアレイを備えてもよい。各セルは、量子トンネルバリアを有する基本回路を備えてもよい。セルは、トランジスタの形式を有する第1の電子部品と、第2の電子的トランジスタの形式を有する第2の電子部品とを備えてもよい。第1のトランジスタのソース、ドレイン、及びボディは、同じ電位(例えば接地)に保持されてもよい。第2のトランジスタのソース、ドレイン、及びボディもまた、すべて同じ電位に保持されてもよい。第1のトランジスタは、トランジスタのチャネルとゲート端子との間に第1の量子トンネルバリアを有する。第2のトランジスタは、トランジスタのチャネルとゲート端子との間に第2の量子トンネルバリアを有する。製造中に導入されたトランジスタの固有差に起因して、第1の量子トンネルバリアは第1のトランジスタを一意的に特徴づけ、第2の量子トンネルバリアは第2のトランジスタを一意的に特徴づける。セルは、第1の量子トンネルバリア及び第2の量子トンネルバリアにわたって電位差を印加するために、行デコーダ及び列デコーダを用いて選択されてもよい。電位差は、第1の量子トンネルバリア及び第2の量子トンネルバリアのいずれかを電流が古典的に通過できるしきい値電圧未満であってもよい。従って、いったんセルが選択されると、第1のトランジスタの第1の量子トンネルバリアを介して量子トンネル電流が流れてもよく、第2のトランジスタの第2の量子トンネルバリアを介し量子トンネル電流が流れてもよい。古典的電流は流れなくてもよい。量子トンネル電流は、比較及び増幅されてもよい。セル及び印加電圧の組み合わせはチャレンジとみなされてもよく、出力される量子トンネル電流はレスポンスとみなされてもよい。
【0073】
他の実施例では、PUFは、それが電子的に相互動作できる限り、電子部品に基づくことを必要としない。
【0074】
下記では、非対称鍵ペアとしても知られる、いくつかの公開鍵ペアを参照する。公開鍵ペアは、他の当事者と共有されてもよい公開鍵と、共有されない対応する秘密鍵とを含む。公開鍵は、秘匿される必要はない公開値であるが、改竄できないように格納されるべきである。実施例では、公開鍵は、いかなる方法でも書きかえも変更も不可能であることを保証するために、電子装置のROMに格納されてもよい。本願において説明する公開鍵ペアは、多くの場合、名前を有する。例えば、1つの公開鍵ペアは、「ファームウェア公開鍵」(firmware public key:FPK)及び対応する「ファームウェア秘密鍵」(firmware secret key:FSK)を含む「ファームウェア公開鍵ペア」として記述される。もう1つの公開鍵ペアは、「登録公開鍵」(enrolment public key:EPK)及び対応する「登録秘密鍵」(enrolment secret key:ESK)を含む「登録公開鍵ペア」として記述される。もう1つの公開鍵ペアは、「公開認証局鍵」(public authority key:PAK)及び対応する「秘密認証局鍵」(secret authority key:SAK)を含む「認証局鍵ペア」として記述される。読者は、これらの公開鍵ペアの名前が、公開鍵ペアを区別することのみを意図していることを認識であろう。
【0075】
本願において説明する公開鍵ペアは、例えば、RSA又は楕円曲線に基づく暗号システムのような、任意の適切な公開鍵暗号システムに関連して使用されてもよい。本願において説明する公開鍵ペアの多くは、ディジタル署名用である。ディジタル署名は、ディジタルメッセージ又は文書の真正性を検証するための数学的方式である。例えば本願の例では、RSA、ElGamal署名方式、又はECDSAのような、任意の適切なディジタル署名方式が使用されてもよい。
【0076】
本願において説明するサーバ/サーバシステム/計算装置のうちのいくつかには、「認証局サーバシステム」又は「鍵管理サーバ」のような名前が与えられている。読者は、そのような名前が異なる計算装置を区別することのみを意図していることを認識するであろう。
【0077】
図1は、電子装置100の安全な生成、提供、及び配備に関与しうる商業上の(又は他の)当事者を示す図を示す。当業者は、他のセットアップが企図され、この図が例示目的のためにのみ提供されることを認識するであろう。上位概念では、セキュリティモジュールが製造され、次いで、電子装置100へのインストールのために、OEM(original equipment manufacturer)160に(典型的にはマイクロコントローラの一部として、ただし必ずしもそうでなくてもよい)提供される。次いで、OEM160は、プログラミング会社180の支援を受けて、電子装置100にファームウェアをインストールし、最終的に、電子装置に100を配備のために準備するステップを実行してもよい。いったん配備されると、電子装置100は、IoTハブ170を介して提供されるサービスと通信してもよい。
【0078】
図を参照すると、認証局140は、電子装置100にインストールされるセキュリティモジュール110を製造する製造能力150を有してもよい(又は、信頼された製造業者と密接に協働してもよい)。セキュリティモジュール及び電子装置の実施例をさらに後述する。
【0079】
本願の説明のために、セキュリティモジュール110は、図1には図示しない、公開鍵ペアを確立するように動作可能である物理的複製困難関数(PUF)を含む。公開鍵ペアは、他の当事者と共有されてもよい公開鍵と、共有されない対応する秘密鍵とを含む。公開鍵ペアは、非対称鍵ペアとしても知られているかもしれない。公開鍵及び秘密鍵は、PUFに対するチャレンジ及びレスポンスに基づいてもよい。従って、セキュリティモジュール110は、製造業者150及び任意の後段の当事者のいずれかによって、いかなる秘密鍵がそこに投入されることを必要することなく、公開鍵ペアを確立することができる。
【0080】
本願の説明のために、セキュリティモジュール110は、対応する少なくとも2つのチャレンジ・レスポンスペアに基づいて、少なくとも2つの鍵ペアを確立するように構成される。優位点として、PUにF基づく公開鍵ペアを用いると、秘密鍵は、電子装置上に格納されることを必要としないが、セキュリティモジュールによって提供される安全な周囲/信頼ゾーン内のPUFから動的に再生成可能である。従って、電子装置がハックされても、そこに格納されて盗まれる秘密鍵は存在しない。
【0081】
ファームウェア公開鍵(FPK)及び対応するファームウェア秘密鍵(FSK)は、第1のCRPに基づき、後述するように、電子装置にファームウェアを安全に提供するために使用される。ファームウェア鍵ペアは、サードパーティープログラミング会社180のセキュリティが何らかの方法で損なわれている場合であっても、OEM160が電子装置100のファームウェアを準備することを可能にするために使用される。
【0082】
登録公開鍵(EPK)及び対応する登録秘密鍵(ESK)は、第2のCRPに基づく。EPKは、電子装置の識別子を提供するために使用される。装置識別子はEPKの関数に基づく。本願において説明する実施例の多くでは、関数は暗号ハッシュ関数であるが、そうでなくてもよく、他の関数が使用されてもよい。SHA-1又はMD5のような暗号ハッシュ関数が、暗号学では広く使用される。ハッシュ関数によって擬似乱数のビット列が生成される。ハッシュ関数Hは、任意長のビット列mを入力として取得し、固定長のビット列nを出力する一方向関数である。ハッシュ関数についての1つの基礎的な要件は、ハッシュ値H(m)を簡単に計算できることであり、これにより、ハードウェア及びソフトウェア実装の両方を実用的にする。ハッシュ関数Hは、衝突耐性を有する場合、すなわち、H(m)=H(m’)を満たす2つの異なるビット列m及びm’を発見することが計算上不可能である場合、暗号ハッシュ関数である。暗号ハッシュ関数の例は、MD5、SHA-1、SHA-2、SHA-3、RIPEMD-160、BLAKE2、及びBLAKE3を含む。
【0083】
PUFを用いて装置にファームウェアを安全に提供して電子装置の識別子を提供することによって、電子装置は、公開鍵インフラストラクチャを構築することと、IoTサービスに安全に接続することとの要件のすべてを有する。そのような登録処理は、同時係属中の特許文献2及び3に説明される。これらの関連出願の各々の内容全体は、すべての目的で、本願に援用される。
【0084】
本開示の目的で、電子装置100は、マイクロコントローラ(MCU)のような低レベルの回路からなると理解されてもよい。電子装置100は、代替として、より高レベルの回路、例えば、湿度又は温度を検出するための回路を備えると理解されてもよく、又は、スマートフォン又はコンピュータのような、より大規模な電子装置であると理解されてもよい。製造業者150は、単にセキュリティモジュール110を製造してもよく、又は、セキュリティモジュール110がインストールされたマイクロコントローラを製造してもよい。
【0085】
詳細後述するように、認証局140は、公開鍵ペアに関連付けられてもよい。すなわち、認証局140は、公開鍵(以下、公開認証局鍵、PAKと呼ぶ)及び対応する秘密鍵(以下、秘密認証局鍵、SAKと呼ぶ)に関連付けられてもよい。SAKは他のいかなる当事者とも共有されず、一方、PAKはより広く共有されてもよい。例えば、PAKは、セキュリティモジュール110に、例えば安全なメモリに書き込まれていてもよい。代替として、製造業者150が、セキュリティモジュールを備えるマイクロコントローラ(又は他の電子装置)を製造する場合、PAKは、セキュリティモジュールの外部における、電子装置の他の読み出し専用メモリ(ROM)にインストールされてもよい。セキュリティの目的で、セキュリティモジュール/電子装置に格納されたPAKは、その完全性を保つために、書きかえ又は変更不可能であることが重要である。受信された情報がSAKを用いて署名され、したがって、認証局140によって承認されていることを検証するために、PAKは、後の段階において、セキュリティモジュール110によって使用されてもよい。また、他の非秘密情報、例えば、SAKを用いて認証局140によって署名され、PAKが認証局140に関連付けられていることを示すルート証明書が、セキュリティモジュール/電子装置に書き込まれていてもよい。秘密情報が認証局140によってセキュリティモジュール110に提供されることはない。秘密情報が認証局140又は製造業者150によってセキュリティモジュール110から抽出されることはない。
【0086】
また、セキュリティモジュール110から装置識別子及び1つ又は複数の公開鍵が抽出されることを可能にするために、初期登録ファームウェア(initial enrolment firmware:IEF)がセキュリティモジュール/電子装置に提供される。
【0087】
認証局140は、1つ又は複数のサーバを備えるサーバシステム130を所有し、及び/又は、動作させてもよい。図1の認証局サーバシステム130は、3つのサーバにより示されているが、当業者は、サーバシステム130がより多数又はより少数のサーバを備えてもよいことを認識するであろう。
【0088】
認証局システムのサーバのうちの少なくとも1つは、SAKを用いて証明書に署名するように構成される(このことについてのより多くの情報をさらに下記に提供する)。SAKは、ファームウェアに署名するためにも使用されてもよい。
【0089】
認証局サーバシステム130のサーバのうちの少なくとも1つは、装置識別子のような、セキュリティモジュール110についての情報を有するデータベースを保持するように構成される。
【0090】
認証局サーバシステム130のサーバのうちの少なくとも1つは、OEM(original equipment manufacturer)160によって動作される計算装置120と安全に通信するように構成される。
【0091】
サーバのうちの少なくとも1つは、IoTハブ170と通信するように構成される。IoTハブは、クラウドにおいてホスティングされた、管理されたサービスであり、それは、IoTアプリケーションと、それが管理する電子装置との間における双方向通信のためのメッセージハブとして動作する。本願の説明のために、本願において説明する方法は、IoTハブ170と通信する準備ができた状態で配備されうるように、電子装置を提供することに適している。
【0092】
明確性のみを目的として、サーバシステム130のサーバを、本願では、時々、「認証局サーバ」と呼ぶ。
【0093】
当業者は、サーバシステム130の機能の少なくとも一部がクラウドサービスとして提供されてもよいことを認識するであろう。サーバのうちの1つ又は複数は、物理的に、認証局140の外部に設けられてもよい。サーバシステム130の認証局サーバは、特定のセキュリティモジュール110を識別するための装置識別子であって、登録秘密鍵(ESK)及び登録公開鍵(EPK)を含む登録鍵ペアのEPKの関数に基づく装置識別子を受信してもよい。サーバシステム130は、装置識別子をデータベースに格納するように構成される。いくつかの実施例では、サーバシステム130は、特定のセキュリティモジュール110のEPKを受信してもよいが、このことは必須ではない。
【0094】
サーバシステム130はまた、いくつかの実施形態によれば、ファームウェア秘密鍵(FSK)及びファームウェア公開鍵(FPK)を含むファームウェア鍵ペアのFPKを受信してもよい。サーバシステム130は、装置識別子及び対応するFPKをデータベースに格納してもよい。
【0095】
いったんサーバシステム130がセキュリティモジュール110の装置識別子を受信及び格納すると、セキュリティモジュール110(おそらくは既にマイクロコントローラにインストールされている)はOEM160に提供される。OEMは、典型的には、OEM160によって製造されているいくつかの電子装置100にインストールするために、そのようなセキュリティモジュールをまとめて購入してもよい。
【0096】
OEM160はまた、認証局140のサーバシステム130と安全に通信できる計算装置120にアクセスする。参照の都合上、OEMによって動作される計算装置120を、下記では「鍵管理サーバ」と呼ぶ。用語「鍵管理サーバ」を単数形で使用しているが、当業者は、計算装置120の機能が複数の計算装置にわたって共有されてもよいことを認識するであろう。したがって、「鍵管理サーバ」はまた、所望の機能を有する複数の計算装置(1つ又は複数のサーバ/計算装置を備える鍵管理サーバシステム)を参照すると理解されているべきである。
【0097】
下記ではKMS120と呼ばれる鍵管理サーバ120は、いくつかの状況では、OEM160が直接的に相互動作できるサーバであるが、認証局サーバシステム130の他の認証局サーバとみなされてもよい。特に、KMS120は、認証局サーバシステム130との安全に通信することができ、従って、認証局140によるOEMの使用のために証明されてもよい。
【0098】
鍵管理サーバ120は、オンプレミス動作のためにOEM160に提供された物理サーバを備えてもよい。例えば、OEM160は、認証局140から物理的KMS120を取得するように構成されてもよい。認証局140は、OEM160に提供される特定のKMSインスタンス120を識別するためのKMS識別子を生成及び記録してもよい。認証局140は、KMS120の内部のハードウェアセキュリティモジュール(hardware security module:HSM)においてKMS公開鍵ペアを生成し、KMS公開鍵ペアのKMS公開鍵を抽出し、SAKを用いて証明書に署名することでKMS公開鍵及びKMSソフトウェアにおける証明書に対してKMS識別子を関連付けてもよい。認証局140はまた、PAKを認証局140に関連付けるルート証明書と、KMSが認証局サーバシステム130の認証局サーバに接続することを可能にするURLとを、KMS120に組み込んでもよい。次いで、KMS120は、OEM160に物理的に転送されてもよい。続いて、KMS120は、サーバシステム130との安全な通信(例えばTLS通信)を開始してもよい。サーバシステム130は、SAKによって署名されたTLS証明書及びチェーンを提示し、TLSサーバ認証を実行することによって認証してもよい。次いで、KMS120は、PAKを認証局140に関連付ける、ハードコーディングされたルート証明書を用いて、証明書を検証してもよい。KMS120は、その証明書(認証局140によってSAKを用いて署名されている)を提示し、TLSクライアント認証を実行することで、認証局サーバに対して認証してもよい。認証局140は、KMSにインストールされた証明書を署名することに使用されたSAKに対応するルート公開鍵(PAK)を用いて、証明書上の署名を検証してもよい。当業者は、KMS120を証明することに使用される公開認証局鍵が、セキュリティモジュール110へインストールされた公開認証局鍵と同じであっても、異なっていてもよいことを認識するであろう。
【0099】
オンプレミス動作のためにOEM160に提供される専用の物理サーバとは対照的に、鍵管理サーバ120は、OEM160によって動作される計算装置120であって、認証局140のサーバシステム130と通信するために提供される安全なゲートウェイのための専用のソフトウェアを有する計算装置120を備えてもよい。専用のソフトウェアは、配備しやすいか否かについては何ともいえないが、OEM160によって容易にインストール及び動作されうる。専用のソフトウェアは、サーバシステム130に対して認証する際に使用可能であるメカニズム(公開鍵)を含む。
【0100】
OEM160は、KMS120を用い、1つ又は複数の受けとったセキュリティモジュールを登録してもよい。具体的には、KMS120は、電子装置のセキュリティモジュール110と通信することで、EPKの関数を含む装置識別子を抽出してもよい。KMS120は、認証局サーバシステム130に対する安全な通信チャネルを開き、KMSインスタンス120及び装置識別子の間の関連付けを、信頼された認証局140に対して登録してもよい。認証局140は、ローカルデータベースを更新し、装置識別子の登録に成功したことをKMS120に通知してもよく、また、その装置識別子に関連付けられた電子装置と通信する所定の許可をKMS120に与えてもよい。
【0101】
OEM160は、KMS120を用いて、本願において説明する方法に従って電子装置にファームウェアを安全に提供してもよい。ファームウェアは、電子装置のハードウェアを制御するための低レベルの命令を含んでもよい。ファームウェアは、同時係属中の特許文献2及び3に説明されるような方法により装置を登録するための1つ又は複数のルート証明書を含んでもよい。ファームウェアは、電子装置の装置識別子が登録されるKMS120の識別子を含んでもよい。例えば、識別子は、電子装置がKMS120と通信して接触する際に使用されるURL(Uniform Resource Locator )を含んでもよい。ファームウェアは、URLによって識別される計算装置/サーバとのTLS接続のような、安全な接続を開始するための命令を含んでもよい。ファームウェアは、電子装置が受信された証明書を解釈できるように、証明書命名構造の詳細事項を含んでもよい。ファームウェアは、証明書署名要求(certificate signing request:CSR)を確立するための詳細事項をさらに含んでもよい。証明書署名要求は、通常、証明書が発行されるべき対象である公開鍵と、識別情報(装置識別子など)と、完全性保護(例えばディジタル署名)とを含む。
【0102】
鍵管理サーバ120はまた、さらにもう1つの電子装置100と通信することができる。このように、1つ又は複数の電子装置100がOEM160に登録されてもよい。本願において説明するように、KMS120は、電子装置100へのファームウェアの安全なインストールを容易にするために使用されてもよい。KMS120は、特定の電子装置100に対して装置識別子を関連付けるために使用されてもよい。KMS120は、証明書に署名するために使用されてもよい。いったん電子装置にファームウェアがインストールされると、装置をOEMに登録し、最終的に、IoTハブ用の安全な使用のために装置を配備するように準備するために、信頼のチェーンを構築することができる。
【0103】
KMS120はまた、IoTハブ170に接続するために必要な情報を電子装置に安全に提供するために使用されてもよい。例えば、KMS120は、IoTハブと直接的に又はサーバシステム130を介して通信することで、各登録された電子装置100の装置証明書をIoTハブに提供するように構成されてもよい。KMS120は、IoTルート証明書及びIoTエンドポイントを1つ又は複数の電子装置100に提供することで、装置がIoTハブ170と通信することを可能にするように構成されてもよい。
【0104】
電子装置100には、IoTハブ170と通信するためにそれらが必要とする情報のすべてが配備されてもよい。
【0105】
図2は、図1に存在するハードウェア装置の多くを含む通信システムを、より概略的に示す。図2は、特に、通信ネットワーク200と、セキュリティモジュール110を有する例示的な電子装置100と、例えばOEM160によって動作されうる鍵管理サーバ120と、認証局サーバシステム130と、例えばIoTハブ170によって動作されうる計算装置220とを示す。通信ネットワーク200は、インターネットのような、任意の適切な通信ネットワークであってもよい。いくつかの実施例では、ネットワーク200はワイドエリアネットワーク(WAN)を含んでもよい。
【0106】
電子装置100は、本願において説明する方法を実行するための、任意の適切な形式を有してもよく、任意の適切な計算装置を備えてもよい。例えば、電子装置は、パーソナルコンピュータ、サーバ、ラップトップコンピュータ、又は他のそのようなマシンのような、処理及び格納可能である任意の計算装置であってもよい。電子装置100はIoT装置を備えてもよい。電子装置は、より大きな装置にインストールされるマイクロコントローラ装置(MCU)を備えてもよい。電子装置100は、他の装置と直接的に又はネットワーク200を介して通信してもよい。例えば、電子装置100は、物理接続及びネットワーク200のいずれかを介してKMS120と通信してもよい。いったん電子装置100が配備されると、装置100は、ネットワーク200を介して計算装置220と通信してもよい。電子装置は、KMS120と通信してもよく、及び/又は、安全な接続、例えばTLS接続を介して計算装置220と通信してもよい。
【0107】
KMS120は、詳細後述する計算装置500のような、任意の適切な計算装置を備えてもよい。KMS120は、サーバのクラスタ又は単一の装置を備えてもよい。KMS120の機能は、分散データ処理環境、単一のデータ処理装置、などを含む、多数の異なるタイプのデータ処理環境において利用されてもよい。
【0108】
KMS120は、ネットワーク200を介して認証局サーバシステム130との安全な接続を確立することができ、また、ネットワーク200を介して、又はいくつかの状況では、有線接続のような直接接続を介して、電子装置100と通信することができる。KMS120は、電子装置100のセキュリティモジュール110を識別する装置識別子のような、電子装置100に関する情報と、電子装置100のEPKのような、1つ又は複数の公開鍵とを格納するように構成される。追加的又は代替的に、KMS120は、認証局サーバシステム130のデータベース210と通信することで、そのような情報を取得するように構成されてもよい。KMS120は、証明書に署名するようにさらに構成される。
【0109】
認証局サーバシステム130は、1つ又は複数のサーバを備え、データベース210を含む。認証局サーバシステム130の1つ又は複数の認証局サーバは、認証局140に代わって証明書に署名し、例えば、KMS120が認証局140によって信頼されることを証明するか、又は、電子装置100にインストールされるファームウェアに署名するように構成される。データベース210は、電子装置100を識別する装置識別子のような、電子装置100に関する情報を格納し、いくつかの実施例では、電子装置100のファームウェア公開鍵FPKを格納するように構成される。データベース210は、KMS120に関する情報を格納するようにさらに構成されてもよい。例えば、データベース210は、一群の装置識別子を特定のKMS120に関連付ける情報を含んでもよく、KMS120が、関連付けられた装置識別子のみと相互動作することを認可するように使用されてもよい。
【0110】
計算装置220は、(例えば、分散計算環境における)多数の接続された装置を備えてもよく、又は、単一の計算装置を備えてもよい。
【0111】
図3Aは、実施例に係る電子装置100のブロック図を示す。例えば、電子装置100はIoT装置であってもよい。当業者によって認識されるように、図3Aに示すものとは別のアーキテクチャが使用さられてもよい。
【0112】
図を参照すると、電子装置100は、セキュリティモジュール110、1つ又は複数のCPU/プロセッサ302、1つ又は複数のメモリ304、センサモジュール306、通信モジュール308、ポート310、及び電源312を含む。構成要素302、304、306、308、310、312のそれぞれは、様々なバスを用いて相互接続される。CPU302は、電子装置100内において実行するように命令を処理してもよい。命令は、メモリ304に格納された命令、通信モジュール308又はポート310を介して受信された命令を含む。
【0113】
メモリ304は、電子装置100内におけるデータの格納用である。1つ又は複数のメモリ304は、1つ又は複数の揮発性メモリ装置を含んでもよい。1つ又は複数のメモリは、1つ又は複数の不揮発性メモリ装置を含んでもよい。1つ又は複数のメモリ304は、磁気又は光ディスクのような、他の形式のコンピュータ可読媒体であってもよい。1つ又は複数のメモリ304は、電子装置100のための大規模記憶装置を提供してもよい。本願において説明する方法を実行するための命令が、1つ又は複数のメモリ304内に格納されてもよい。
【0114】
通信モジュール308は、プロセッサ302及び他のシステムの間において通信を送信及び受信することに適している。例えば、通信モジュール308は、インターネットのような通信ネットワーク200を介して通信を送信及び受信するために使用されてもよい。通信モジュール308は、WiFi(登録商標)、Bluetooth(登録商標)、NFCなどのような多数のプロトコルのうちのいずれかによって、電子装置100が他の装置/サーバと通信することを可能にしてもよい。
【0115】
ポート310は、例えば、プロセッサ302によって処理される命令を含んでいる非一時的なコンピュータ可読媒体を受けることに適している。ポート310は、例えば、電子装置100及び鍵管理サーバ120の間における有線通信に使用されてもよい。
【0116】
センサモジュール306は、温度、湿度、又は他の任意のパラメータのような、検出パラメータのための1つ又は複数のセンサを備えてもよい。
【0117】
プロセッサ302は、例えば、センサモジュール306、セキュリティモジュール110、又は通信モジュール308から、データを受信するように構成される。プロセッサ302は、メモリ304にアクセスし、上記メモリ304と、通信モジュール308と、ポート310に接続されたコンピュータ可読記憶媒体とのいずれかから受信された命令及び/又は情報に対して動作するようにさらに構成される。
【0118】
図3Bは、他の例示的な電子装置100のアーキテクチャ、すなわちマイクロコントローラ装置(MCU)315を示し、それは、より大きな電子装置内にインストールされてもよい。当業者は、他のMCUアーキテクチャが使用されてもよいことを認識するであろう。
【0119】
図3BのMCU315は、CPU320、ユーザメモリ322、及びブートランダムアクセスメモリ328を備える。CPU320、ブートROM328、及びユーザメモリ322は、コードバス324を介して通信してもよい。CPU320、ブートROM328、及びユーザメモリ322は、システムバス326に接続されてもよく、それは、複数の周辺装置A、B、及びC(330、332、及び334)及びセキュリティモジュール110に接続されてもよい。セキュリティに関連する構成要素のみをMCU315に示す。当業者は、MCU315がより多数又はより少数の構成要素を有してもよいことを認識するであろう。例えば、MCU315は、より多数の周辺装置及びシステム構成要素を有してもよい。
【0120】
図4Aは、実施例に係るセキュリティモジュール110のブロック図を示す。セキュリティモジュール110は、電子装置100の他の構成要素から安全な構成要素を分離する信頼ゾーンとみなされてもよい。セキュリティモジュール110は、PUFモジュール402、暗号アクセラレータ404、及びセキュアメモリ406を備える。当業者は、他のアーキテクチャもまた可能であることを認識するであろう。セキュリティモジュール110は、電子装置100のシステムバスに接続される。
【0121】
PUFモジュール410は、PUFと、PUFに対して相互動作することに必要な任意の回路とを備える。特に、PUFモジュールは、暗号アクセラレータ404から信号を受信し、適切なレスポンスを提供してもよい。暗号アクセラレータ404は、暗号演算を実行するために、また、PUFモジュール402及びセキュアメモリ406に対する相互動作のために、専用処理装置を備える。
【0122】
セキュアメモリは、PUFモジュール402によって生成された鍵、及び/又は、ルート証明書のような、秘密情報を格納するように構成される。PUFモジュール402と、セキュリティモジュール110内のセキュリティ周辺装置と、セキュアメモリとを制御するためにCPU320によって必要とされる命令は、ブートROM328内に含まれ、それはシステムの変更不可のブート処理の一部である。
【0123】
図4Bは、実施例に係るPUFモジュール402の機能的構成要素を示す。PUFモジュール402は、PUF450、アナログフロントエンド(AFE)452、後処理エンジン454、及びRISC-Vコア456を備える。
【0124】
当業者は、PUF450が任意の適切なPUFであってもよいことを認識するであろう。
【0125】
アナログフロントエンド(AFE)452は、PUFとの相互動作のためにアナログ信号調節回路を備える。例えば、AFEは、PUF450と相互動作することで、未処理の「指紋」を確立してもよい。後処理エンジン454は、AFE452の出力を補正し、AFEの出力をさらに処理することでさらなるプライバシー向上を提供するように構成される。RISC-Vコア456は、PUF450からのデータの後処理、例えばデータの誤り訂正を実行するCPUコアである。他のCPUコアが利用されてもよいが、RISC-Vコアは、外部マイクロコントローラに対するPUFモジュール402の容易な接続を可能にするインターフェースを提供する。
【0126】
図5は、計算装置500のブロック図である。例えば、計算装置500は、計算装置、サーバ、モバイル又はポータブルコンピュータ又は電話機、などを備えてもよい。計算装置500は、複数の接続された装置にわたって分散されてもよい。計算装置500は、鍵管理サーバ120、認証局サーバシステム130の認証局サーバ、又は例えばIoTハブ用のサーバ220としての使用に適していてもよい。
当業者によって認識されるように、図5に示すものとは別のアーキテクチャが使用さられてもよい。
【0127】
図を参照すると、計算装置500は、1つ又は複数のプロセッサ510と、1つ又は複数のメモリ520と、視覚ディスプレイ530及び仮想又は物理キーボード540のような多数のオプションのユーザインターフェースと、通信モジュール550と、オプションのポート560と、オプションの電源570とを含む。構成要素510、520、530、540、550、560、及び570のそれぞれは、様々なバスを用いて相互接続される。プロセッサ510は、計算装置500内において実行するように命令を処理してもよい。命令は、メモリ520に格納された命令、通信モジュール550又はポート560を介して受信された命令を含む。
【0128】
メモリ520は、計算装置500内におけるデータの格納用である。1つ又は複数のメモリ520は、1つ又は複数の揮発性メモリ装置を含んでもよい。1つ又は複数のメモリは、1つ又は複数の不揮発性メモリ装置を含んでもよい。1つ又は複数のメモリ520は、磁気又は光ディスクのような、他の形式のコンピュータ可読媒体であってもよい。1つ又は複数のメモリ520は、計算装置500のための大規模記憶装置を提供してもよい。本願において説明する方法を実行するための命令が、1つ又は複数のメモリ520内に格納されてもよい。
【0129】
装置500は、視覚ディスプレイ530のような視覚化手段と、キーボード540のような仮想又は専用だったユーザ入力装置とを含む、多数のユーザインターフェースを含む。
【0130】
通信モジュール550は、プロセッサ510及び遠隔のシステムの間において通信を送信及び受信することに適している。例えば、通信モジュール550は、インターネットのような通信ネットワーク200を介して通信を送信及び受信するために使用されてもよい。
【0131】
ポート560は、例えば、プロセッサ510によって処理される命令を含んでいる非一時的なコンピュータ可読媒体を受けることに適している。
【0132】
プロセッサ510は、データを受信し、メモリ520にアクセスし、上記メモリ520又はポート560に接続されたコンピュータ可読記憶媒体から、通信モジュール550から、又はユーザ入力装置540から受信された命令に対して動作するように構成される。
【0133】
計算装置500は、暗号鍵を安全に格納するための、図5には図示しないハードウェアセキュリティモジュール(HSM)をさらに備えてもよい。例えば、鍵管理サーバ120として使用される計算装置500の場合、HSMは、証明書に署名するために1つ又は複数の秘密鍵を格納するか、又は、ファームウェアを暗号化/復号するためにサーバ暗号鍵及びサーバ復号鍵を格納するように要求されてもよい。例えば、認証局サーバシステム130の認証局サーバとして使用される計算装置500の場合、HSMは、認証局鍵ペアの秘密認証局鍵(SAK)のような、1つ又は複数の秘密鍵を格納するように要求されてもよい。当業者は、HSMが秘密鍵を格納するように要求されず、他のセキュリティ構成が適用可能されてもよいことを認識するであろう。例えば、計算装置は、クラウドに基づくHSMにアクセスしてもよい。
【0134】
図6Aは、実施例に係る電子装置100にファームウェアを安全に提供する方法を示す。この実施例では、図1を参照して、OEM160は、電子装置100にファームウェアをインストールしようとし、この目的のために、サードパーティーのプログラミング会社180を使用する。OEM160は、認証局サーバシステム130と安全に通信できる鍵管理サーバ120にアクセスする。
【0135】
認証局140/製造業者150は、セキュリティモジュール110を製造する(オプションで、それをMCU315内にインストールする)ように構成される。
【0136】
セキュリティモジュール110はPUF450を備える。セキュリティモジュール110は、PUFに対する第1のチャレンジ及びレスポンスに基づいて、ファームウェア公開鍵(FPK)及びファームウェア秘密鍵(FSK)を含むファームウェア鍵ペア(FPK,FSK)を生成するように構成される。セキュリティモジュール110は、PUFに対する第2のチャレンジ及びレスポンスに基づいて、登録公開鍵(EPK)及び登録秘密鍵(ESK)を含む登録鍵ペア(EPK,ESK)を生成するようにさらに構成されてもよい。秘密鍵FSK及びESKは、セキュリティモジュール110から離れない。実際に、これらの秘密鍵はPUF450からの応答に基づくので、それらは、メモリに格納される必要がなく、適切な入力とともにPUF450から動的に再生成可能である。
【0137】
セキュリティモジュール110は、セキュリティモジュール110が最終的にインストールされる電子装置100を識別するために使用される装置識別子(図6Aの「DeviceID」)を生成するように構成される。装置識別子は、登録公開鍵EPKの関数に基づいて、好ましくは非線形関数に基づいて決定される。装置識別子がEPKの関数に基づくことにより、セキュリティモジュール110の身元情報は、セキュリティモジュール110の物理的性質に基づき、従って、偽ることはできない。
【0138】
実施例によれば、装置識別子は、EPKに暗号ハッシュ関数を適用することで決定されてもよい。
【0139】
図6Aの実施例によれば、装置識別子は、登録公開鍵に暗号ハッシュ関数を適用することで生成される。
【0140】
図6Aを参照すうと、ステップ602において、公開認証局鍵PAKが、製造中に、セキュリティモジュールに提供される。例えば、PAKは、セキュリティモジュール110のセキュアメモリ406に格納されてもよい。実施例では、セキュアメモリ406は、読み出し専用メモリ(ROM)であってもよい。ROMは、いかなる方法でも書きかえ又は変更が不可能であり、従って、PAKをROMに格納することは、それが改竄不可能であることを保証する。公開認証局鍵PAKは、秘密認証局鍵SAK及びPAKを含む認証局鍵ペアの公開鍵である。秘密認証局鍵SAKは認証局140(又は認証局サーバシステム130のサーバ)にのみ知られている一方、PAKは広く共有されてもよい。当業者は、図6Aにおいて、PAKがサーバシステム130によってセキュリティモジュール110に提供されているが、PAKは他の何らかのエンティティによってセキュリティモジュールに提供されてもよいこと、例えば、PAKは信頼された製造業者150によってセキュリティモジュールに組み込まれてもよいことを認識するであろう。セキュリティモジュール110には、装置識別子及び1つ又は複数の公開鍵の抽出を可能にすることと、ローカルに格納されたエンドポイントとの安全な接続を開始すること(例えばURL)とのような、必要なセキュリティ機能を実行するための基本ソフトウェアを含む初期登録ファームウェアが提供されてもよい。また、当業者は、図6Aのステップ602では公開認証局鍵PAKがセキュリティモジュール110に提供されているが、PAKが、電子装置100の他の部品に提供され、電子装置100に安全に組み込まれてもよいことを認識するであろう。
【0141】
604において、認証局サーバシステム130は、セキュリティモジュール110の装置識別子及びファームウェア公開鍵FPKを取得する。装置識別子は、登録公開鍵EPKのハッシュを含む。サーバシステム130は、装置識別子及びFPKを装置から抽出してもよく、又は、それらを例えば製造業者150から受信してもよい。
【0142】
セキュリティモジュール110は、一群のセキュリティモジュールのうちの1つのセキュリティモジュールであってもよい。従って、サーバシステム130は、多数の装置識別子及び対応するFPKを取得してもよい。606において、サーバシステム130は、後の参照のために、装置ID及び対応するFPKをデータベース210に格納する。
【0143】
いったん装置識別子及び対応するFPKがサーバシステム130によって取得及び格納されると、セキュリティモジュール110(又はセキュリティモジュールを含むMCU315)は、電子装置100へのインストールのためにOEM160に輸送されてもよい。
【0144】
図6Aを参照して説明するシナリオにおいて、OEM160は、電子装置100にインストールされるファームウェアを設計する。ファームウェアは、OEMによって自己署名された1つ又は複数のルート証明書をさらに含むことで、電子装置の登録中に信頼のチェーンを構築することを可能にしてもよい。ファームウェアは、電子装置100のハードウェアを制御するための低レベルの命令を含んでもよい。ファームウェアは鍵管理サーバ120に提供され、鍵管理サーバ120は、ステップ608において、ファームウェアを暗号化するためのサーバ暗号鍵Kを生成する。サーバ暗号鍵Kは、対称暗号関数の鍵であってもよく、又は、非対称暗号関数の鍵であってもよい。すなわち、サーバ復号鍵(図6Aの「Inv(K)」)は、サーバ暗号鍵Kと同じであってもよく、又は、異なっていてもよい。658において、KMS120は、ファームウェアに暗号ハッシュ関数を適用する。このことは、サーバ暗号鍵が生成608される前、中、又は後に行われてもよい。
【0145】
KMS120は、認証局サーバシステム130と安全に通信可能であり、ファームウェアのハッシュがサーバシステム130に送信される。KMS120からサーバシステム130にファームウェアのハッシュを送信することによって、ファームウェア自体が送信される必要はなく、サーバシステム130自体はファームウェアを変更できない。662において、認証局サーバシステム130は、秘密認証局鍵SAKを用いてファームウェアのハッシュに署名する。従って、ファームウェアのハッシュ上の署名とともに公開認証局鍵PAKを用いる任意のエンティティは、ファームウェアのハッシュがサーバシステム130によって署名されていることを検証できるであろう。
【0146】
次いで、ファームウェアのハッシュ上の署名は、KMS120に返送される。660において、KMS120は、サーバ暗号鍵Kを用いてファームウェア及び署名を暗号化する。
【0147】
ファームウェアを暗号化するために使用されるサーバ暗号鍵は、異なるファームウェアに対して同じであってもよく、又は、異なっていてもよい。例えば、OEM160は、第1の一群の電子装置のための第1のファームウェアを生成してもよく、第2の一群の電子装置のための第2のファームウェアを生成してもよく、同じサーバ暗号鍵Kを用いて第1のファームウェア及び第2のファームウェアの両方を暗号化してもよく、又は、ファームウェア固有の暗号鍵を使用してもよい。さらに、いくつかの実施例では、OEMが製造する各一群の電子装置100に対して、互いに異なる複数のサーバ暗号鍵が存在してもよい。
【0148】
認証局サーバシステム130はまた、装置識別子(「DeviceID」)及び対応するFPKを鍵管理サーバ120に安全に伝送する。複数のセキュリティモジュール110の装置識別子及びFPKは、個々に又はまとめて、例えばルックアップテーブルの形式で、KMS120に伝送されてもよい。
【0149】
614において、KMSは、FPKを用いてサーバ復号鍵Inv(K)を暗号化する。
暗号化されたサーバ復号鍵(図6Aにおいて符号「Enc(FPK,Inv(K))」により示す)及び対応する装置識別子は、プログラミング会社180に伝送される。例えば、複数の装置識別子及び対応する暗号化されたサーバ復号鍵を含むルックアップテーブルが、プログラミング会社180に提供されてもよい。サーバ復号鍵は、ファームウェア及び署名されたハッシュの復号用である。
【0150】
次いで、暗号化されたファームウェア、暗号化された署名、及び暗号化されたサーバ復号鍵は、電子装置100へのインストールのためにプログラミング会社180に送信される。
【0151】
616において、所与の電子装置100に関して、プログラミング会社180は、対応する暗号化されたサーバ復号鍵を電子装置100にインストールする。プログラミング会社はさらに、暗号化されたファームウェアを、インストールのために、電子装置100に提供する。
【0152】
セキュリティモジュール110を含む電子装置100は、ファームウェアを復号及びインストールするために必要な情報のすべてを含む。暗号化されたサーバ復号鍵Enc(FPK,Inv(K))は、FPKを用いて暗号化されたので、電子装置100は、FSKを用いてサーバ復号鍵を復号することができる。ファームウェアのハッシュ上の署名はSAKを用いて署名されたので、電子装置は、PAKを用いて署名を検証することができる。電子装置はさらに、暗号化されたファームウェアを、サーバ復号鍵Inv(K)を用いて復号することができる。電子装置100はさらに、例えば、復号されたファームウェアにハッシュ関数を適用し、認証局サーバシステム130によって署名されたそれに対して比較することによって、署名が受信されたファームウェアに対応することをチェックすることができる。検証に基づいて、電子装置100は、復号されたファームウェアを電子装置100にインストールしてもよい。
【0153】
オプションで、ブート中に、電子装置は、ファームウェアのハッシュを計算し、署名を用いてハッシュをチェックすることで、ファームウェアを検証してもよい。このように、ファームウェアは、電子装置がブートするごとに検証されてもよい。
【0154】
従って、図6Aの方法は、秘密情報が、どの段階においても、暗号化されていない形式で、電子装置100(又は、電子装置100にインストールされる前のセキュリティモジュール110)に投入されることを必要としないことを保証する。OEM160は、電子装置100に提供されるファームウェアが、電子装置100にインストールされる前に、検出なしに変更できると信じてもよく、このことは、例えばサードパーティープログラミング会社180を、完全に信頼する必要性を低減する。認証局サーバシステム130は、ファームウェアのハッシュのみを受信するので、ファームウェアを確認しない、又は、ファームウェアを変更する機会をもたない。
【0155】
オプションで、プログラミング会社180は、電子装置100から(618において)装置識別子を抽出し、これをKMS120に伝送してもよく、KMS120は、装置識別子を認証局サーバシステムに(620において)登録するステップを引き受けてもよい。次いで、認証局サーバシステム130は、装置識別子をKMSに関連付けることを、例えば、この情報をデータベース210に格納することで行ってもよい。他の実施例では、装置識別子は、サーバシステム130からそれらを受信した後で(606及び614の間の矢印)、KMS120によって登録されてもよい。装置識別子の登録は、いかなる意味でも、電子装置にファームウェアを提供する方法にリンクされることを必要としない。例えば、OEM160は、セキュリティモジュール110/マイクロコントローラ315の製造元である製造業者150によって装置識別子のファイルの提供を受けてもよく、登録のために装置識別子をKMS120に手動でアップロードしてもよい。
【0156】
装置識別子を認証局サーバシステム130に登録することは、KMS120が主張された装置識別子に関連付けられていることを保証し、さらなるセキュリティチェックとして動作する。認証局サーバシステム130は、多数の鍵管理サーバと通信してもよく、したがって、装置識別子をKMS120にリンクすることは、特定のセキュリティモジュール110を有する装置を正しいOEM160が供給及び配備していることを保証する。
【0157】
装置識別子を登録及び主張する処理は、下記のように動作してもよい。装置識別子についての知識を有するKMS120は、認証局サーバシステム130の認証局サーバに対して安全な接続、例えばTLS接続を確立してもよい。次いで、KMS120は、TLS接続を介して、1つ又は複数の装置識別子を認証局サーバに送信してもよい。サーバシステム130は、データベース210に格納された情報を用いて、1つ又は複数の装置識別子を検証してもよい。特に、サーバシステム130は、装置識別子のすべてが実際の装置に対応すること(すなわち、それらがデータベース210において対応するエントリを有すること)と、受信された装置識別子のどれも以前に第2のKMSによって主張されていないこととをチェックしてもよい。チェックに成功した場合、サーバシステム130は、装置識別子を主張したKMS120が装置識別子に関連付けられていること、すなわち、KMS120がそれらの装置識別子を「所有する」ことを示すように、データベース210を更新してもよい。いったんこの登録が完了すると、成功を示す情報がKMS120に送信されてもよい。成功を示す情報は、例えば、KMS120が電子装置との安全なTLS接続を確立することを可能にしてもよく、及び/又は、KMS120のユーザインターフェースに装置識別子(又は別のアイコン)を出現させてもよい。次いで、KMS120及び認証局サーバシステム130の間の安全な接続が閉じられてもよい。
【0158】
図6Bは、実施例に係る電子装置100にファームウェアを安全に提供するもう1つの方法を示す。この実施例では、図1を参照して、OEM160は、電子装置100にファームウェアをインストールしようとし、この目的のために、サードパーティーのプログラミング会社180を使用する。OEM160は、認証局サーバシステム130と安全に通信できる鍵管理サーバ120にアクセスする。
【0159】
セキュリティモジュール110は、セキュリティモジュール110が最終的にインストールされる電子装置100を識別するために使用される装置識別子(図6Bの「DeviceID」)を生成するように構成される。装置識別子は、登録公開鍵EPKの関数に基づいて、好ましくは非線形関数に基づいて決定される。装置識別子がEPKの関数に基づくことにより、セキュリティモジュール110の身元情報は、セキュリティモジュール110の物理的性質に基づき、従って、偽ることはできない。
【0160】
図6Aの場合のように、ステップ602において、公開認証局鍵PAKが、製造中に、セキュリティモジュール(又はマイクロコントローラの他のセキュアメモリ)に提供される。
【0161】
604において、サーバシステム130は、セキュリティモジュール110の装置識別子及びファームウェア公開鍵FPKを取得する。装置識別子は、登録公開鍵EPKのハッシュを含む。サーバシステム130は、装置識別子及びFPKを装置から抽出してもよく、又は、それらを例えば製造業者150から受信してもよい。
【0162】
セキュリティモジュール110は、一群のセキュリティモジュールのうちの1つのセキュリティモジュールであってもよい。従って、サーバシステム130は、多数の装置識別子及び対応するFPKを取得してもよい。606において、サーバシステム130は、後の参照のために、装置ID及び対応するFPKをデータベース210に格納する。
【0163】
いったん装置識別子及び対応するFPKがサーバシステム130によって取得及び格納されると、セキュリティモジュール110(又はセキュリティモジュールを含むMCU315)は、電子装置100へのインストールのためにOEM160に輸送されてもよい。
【0164】
図6Aにおいて説明したシナリオのように、図8Bのシナリオにおいて、OEM160は、電子装置100にインストールされるファームウェアを設計する。ファームウェアは鍵管理サーバ120に提供され、鍵管理サーバ120は、ステップ608において、ファームウェアを暗号化するためのサーバ暗号鍵Kを生成する。610において、KMS120は、サーバ暗号鍵Kを用いてファームウェアを暗号化する。
【0165】
KMS120はサーバシステム130と安全に通信でき、暗号化されたファームウェアはサーバシステム130に送信され、サーバシステム130は、612において、秘密認証局鍵SAKを用いて、暗号化されたファームウェアに署名する。従って、暗号化及び署名されたファームウェアとともに公開認証局鍵PAKを用いる任意のエンティティは、暗号化されたファームウェアがサーバシステム130によって署名されていることを検証できるであろう。暗号化及び署名されたファームウェアは、オプションでKMS120を介して、プログラミング会社180に送信される。
【0166】
認証局サーバシステム130はまた、装置識別子(「DeviceID」)及び対応するFPKを鍵管理サーバ120に安全に伝送する。複数のセキュリティモジュール110の装置識別子及びFPKは、個々に又はまとめて、例えばルックアップテーブルの形式で、KMS120に伝送されてもよい。
【0167】
614において、KMSは、FPKを用いてサーバ復号鍵Inv(K)を暗号化する。暗号化されたサーバ復号鍵(図6Bにおいて符号「Enc(FPK,Inv(K))」により示す)及び対応する装置識別子は、プログラミング会社180に伝送される。例えば、複数の装置識別子及び対応する暗号化されたサーバ復号鍵を含むルックアップテーブルが、プログラミング会社180に提供されてもよい。
【0168】
616において、所与の電子装置100に関して、プログラミング会社180は、対応する暗号化されたサーバ復号鍵を電子装置100に提供する。プログラミング会社はさらに、暗号化及び署名されたファームウェアを電子装置100に提供する。
【0169】
セキュリティモジュール110を含む電子装置100は、ファームウェアを復号及びインストールするために必要な情報のすべてを含む。暗号化されたサーバ復号鍵Enc(FPK,Inv(K))は、FPKを用いて暗号化されたので、電子装置100は、FSKを用いてサーバ復号鍵を復号することができる。暗号化及び署名されたファームウェアはSAKを用いて署名されたので、電子装置は、PAKを用いて、暗号化及び署名されたファームウェアを検証することができる。電子装置100はさらに、暗号化及び署名されたファームウェアを、サーバ復号鍵Inv(K)を用いて復号することができる。
【0170】
オプションで、プログラミング会社180は、電子装置100から(618において)装置識別子を抽出し、これをKMS120に伝送してもよく、KMS120は、装置識別子を認証局サーバシステムに(620において)登録するステップを引き受けてもよい次いで、認証局サーバシステム130は、装置識別子をKMSに関連付けることを、例えば、この情報をデータベース210に格納することで行ってもよい。他の実施例では、装置識別子は、サーバシステム130からそれらを受信した後で(606及び614の間の矢印)、KMS120によって登録されてもよい。装置識別子の登録は、いかなる意味でも、電子装置にファームウェアを提供する方法にリンクされることを必要としない。例えば、OEM160は、セキュリティモジュール110/マイクロコントローラ315の製造元である製造業者150によって装置識別子のファイルの提供を受けてもよく、登録のために装置識別子をKMS120に手動でアップロードしてもよい。
【0171】
図7Aは、電子装置100にファームウェアを提供する概略的な方法700のフローチャートを示す。電子装置100は、PUF450を有するセキュリティモジュール110を備えると仮定される。セキュリティモジュール110は、PUFに対する第1のチャレンジ及びレスポンスに基づいて、ファームウェア公開鍵(FPK)及びファームウェア秘密鍵(FSK)を含むファームウェア鍵ペア(FPK,FSK)を確立するように構成される。公開鍵が電子装置100に、例えば、電子装置100のセキュリティモジュール110に、安全に組み込まれているとさらに仮定される。公開鍵は、公開鍵及び対応する秘密鍵を含む公開鍵ペアの一部である。署名鍵ペアは、公開認証局鍵と、認証局140にのみ知られた秘密認証局鍵とを含む認証局鍵ペアであってもよい。方法700は、例えば、鍵管理サーバ120によって実行されてもよい。
【0172】
710において、方法700は、公開鍵及び秘密鍵を含む署名鍵ペアの秘密鍵を用いて、ファームウェアのハッシュに署名させることを含む。公開鍵は電子装置に安全に組み込まれている。
【0173】
いくつかの実施形態では、鍵管理サーバ120は、署名鍵のペアの秘密鍵を用いてファームウェアのハッシュに署名するように構成されてもよい。しかしながら、(図6Aに示すような)他の実施形態では、鍵管理サーバ120は、認証局サーバシステム130の認証局サーバとの安全な接続を確立するように構成されてもよい。次いで、KMS120は、ファームウェアのハッシュを認証局サーバに伝送し、ファームウェアの署名されたハッシュの署名を受信してもよい。ファームウェアのハッシュは、署名鍵ペアの秘密鍵を用いて署名されている。すなわち、署名鍵ペアは、公開認証局鍵PAK及び秘密認証局鍵SAKを含んでもよく、サーバシステム130は、SAKを用いてファームウェアのハッシュに署名してもよい。
【0174】
720において、方法700は、サーバ暗号鍵100を用いてファームウェア及び署名を暗号化することを含む。サーバ暗号鍵は、ユーザクレデンシャル、例えばユーザのパスワード(例えばOEMのパスワード)に少なくとも部分的に基づいてもよい。
【0175】
725において、方法700は、FPKを用いてサーバ復号鍵を暗号化することを含む。サーバ復号鍵は、暗号化されたファームウェア及び暗号化された署名の復号用である。
【0176】
730において、方法700は、暗号化されたファームウェア、暗号化された署名、及び暗号化されたサーバ復号鍵を、電子装置へのインストールのために、サードパーティーに伝送することを含む。サードパーティーは、例えば、プログラミング会社180のサーバ、又は、KMS及び認証局サーバシステム130の外部における他の任意の計算装置を備えてもよい。
【0177】
FPKは、(図6Aの場合のように)認証局サーバ130から安全な接続を介して受信されてもよく、又は、他の何らかの方法で受信されてもよい。例えば、FPKは、KMS120に直接的にアップロードされてもよく、又は、他の何らかの情報源から受信されてもよい。
【0178】
図7Bは、電子装置100にファームウェアを提供する概略的な方法750のフローチャートを示す。電子装置100は、PUF450を有するセキュリティモジュール110を備えると仮定される。セキュリティモジュール110は、PUFに対する第1のチャレンジ及びレスポンスに基づいて、ファームウェア鍵ペア(FPK,FSK)を確立するように構成される。公開鍵が電子装置100に、例えば、電子装置100のセキュリティモジュール110に、安全に組み込まれているとさらに仮定される。公開鍵は、公開鍵及び対応する秘密鍵を含む署名鍵ペアの一部である。署名鍵ペアは、公開認証局鍵と、認証局140にのみ知られた秘密認証局鍵とを含む認証局鍵ペアであってもよい。方法750は、例えば、鍵管理サーバ120によって実行されてもよい。
【0179】
760において、方法750は、署名鍵ペアの秘密鍵を用いて、暗号化された形式のファームウェアに署名させることを含む。ファームウェアは、サーバ暗号鍵Kを用いて暗号化される。サーバ暗号鍵は、ユーザクレデンシャル、例えばユーザのパスワード(例えばOEMのパスワード)に少なくとも部分的に基づいてもよい。
【0180】
例えば、鍵管理サーバ120は、暗号化されていない形式でファームウェアを受信し、次いで、(図6Bの場合のように)サーバ暗号鍵Kを用いてファームウェアを暗号化してもよく、又は、暗号化された形式のファームウェアを直接的に受信してもよい。いくつかの実施形態では、鍵管理サーバ120は、署名鍵のペアの秘密鍵を用いて、暗号化された形式のファームウェアに署名するように構成されてもよい。しかしながら、(図6Bに示すような)他の実施形態では、鍵管理サーバ120は、認証局サーバシステム130の認証局サーバとの安全な接続を確立するように構成されてもよい。次いで、KMS120は、暗号化された形式のファームウェアを認証局サーバに伝送し、暗号化及び署名された形式のファームウェアを受信してもよい。暗号化及び署名された形式のファームウェアは、認証局鍵ペアの秘密認証局鍵を用いて署名されている。
【0181】
770において、方法750は、電子装置100へのインストールのために、暗号化及び署名された形式のファームウェアをサードパーティーに伝送することを含む。サードパーティーは、例えば、プログラミング会社180のサーバ、又は、KMS及び認証局サーバシステム130の外部における他の任意の計算装置を備えてもよい。
【0182】
780において、方法750は、電子装置へのインストールのために、暗号化された形式のサーバ複合鍵をサードパーティーに伝送することを含む。サーバ復号鍵は、FPKを用いて暗号化される。当然ながら、暗号化された形式のサーバ復号鍵は、暗号化及び署名された形式のファームウェアがサードパーティーに伝送される前、同時、又は後に、サードパーティーに伝送されてもよい。
【0183】
FPKは、(図6Aの場合のように)認証局サーバ130から安全な接続を介して受信されてもよく、又は、他の何らかの方法で受信されてもよい。例えば、FPKは、KMS120に直接的にアップロードされてもよく、又は、他の何らかの情報源から受信されてもよい。
【0184】
図8Aは、電子装置100のファームウェアを認証する概略的な方法800のフローチャートを示す。電子装置100は、PUF450を有するセキュリティモジュール110を備えると仮定される。セキュリティモジュール110は、PUFに対する第1のチャレンジ及びレスポンスに基づいてファームウェア鍵ペア(FPK,FSK)を確立し、PUFに対する第2のチャレンジ及びレスポンスに基づいて登録鍵ペア(EPK,ESK)を確立するように構成される。認証局鍵ペアの公開認証局鍵PAKが、電子装置100に、例えば、電子装置100のセキュリティモジュール110に、すでに安全に組み込まれているとさらに仮定される。認証局鍵ペアは、PAK及び対応する秘密認証局鍵SAKを含む。本方法は、例えば、認証局サーバシステム130の1つ又は複数のサーバによって実行されてもよい。
【0185】
810において、方法800は、サーバから、安全な通信チャネルを介して、電子装置100にインストールされるファームウェアのハッシュを受信することを含む。例えば、認証局サーバは、図6Aの場合のように、TLS接続を介してKMS120から暗号化されたファームウェアを受信してもよい。
【0186】
820において、方法800は、公開認証局鍵(PAK)及び秘密認証局鍵(SAK)を含む認証局鍵ペアの秘密認証局鍵を用いて、ファームウェアのハッシュに署名することを含む。公開認証局鍵は電子装置に安全に組み込まれている。任意の適切なディジタル署名方式が利用されてもよい。
【0187】
認証局サーバシステム130が方法800を実行する場合、暗号化されたファームウェアに署名する認証局サーバは、ステップ810を実行した認証局サーバと同じであってもよく、又は、異なっていてもよい。
【0188】
830において、方法800は、電子装置へのインストールのために、サードパーティーへのファームウェアのハッシュ上の署名の伝送を開始することを含む。例えば、サードパーティーは、プログラミング会社180を含んでもよく、又は、認証局サーバシステム130及び暗号化されたファームウェアの発信元であるサーバ(例えばKMS120)以外の任意のエンティティも含んでもよい。例えば、サーバシステム130は、(図6Bの場合のように)暗号化及びサードパーティーへの転送のためにKMS120に署名を伝送してもよく、又は、暗号化されていない形式で署名をサードパーティーに直接的に伝送してもよい。
【0189】
840において、方法800は、FPKと、電子装置100を識別するための、EPKの関数を含む関連付けられた装置識別子とを、安全な通信チャネルを介して、サーバ(例えばKMS120)に送信することを含む。FPK及び装置識別子は、ルックアップテーブルとしてサーバに提供されてもよい。装置識別子及びFPKは、任意の適切な方法で取得されてもよく、例えば、OEM160に出荷される前にセキュリティモジュール110からそれらを抽出することで、又は、他のソースから情報を受信することで取得されてもよい。ステップ830は、ステップ840の前、同時、又は後に実行されてもよい。
【0190】
本方法は、電子装置がプログラミングされた後、装置識別子を登録する要求をサーバから受信することと、サーバを装置識別子に関連付けることとをさらに含んでもよい。
【0191】
図8Bは、電子装置100のファームウェアを認証する概略的な方法850のフローチャートを示す。電子装置100は、PUF450を有するセキュリティモジュール110を備えると仮定される。セキュリティモジュール110は、PUFに対する第1のチャレンジ及びレスポンスに基づいてファームウェア鍵ペア(FPK,FSK)を確立し、PUFに対する第2のチャレンジ及びレスポンスに基づいて登録鍵ペア(EPK,ESK)を確立するように構成される。認証局鍵ペアの公開認証局鍵PAKが、電子装置100に、例えば、電子装置100のセキュリティモジュール110に、すでに安全に組み込まれているとさらに仮定される。認証局鍵ペアは、PAK及び対応する秘密認証局鍵SAKを含む。本方法は、例えば、認証局サーバシステム130の1つ又は複数のサーバによって実行されてもよい。
【0192】
860において、方法850は、サーバから、安全な通信チャネルを介して、電子装置100にインストールされる暗号化されたファームウェアを受信することを含む。例えば、認証局サーバは、図6Bの場合のように、TLS接続を介してKMS120から暗号化されたファームウェアを受信してもよい。
【0193】
870において、方法850は、認証局鍵ペアの秘密認証局鍵SAKを用いて、暗号化されたファームウェアに署名することを含む。任意の適切なディジタル署名方式が利用されてもよい。
【0194】
認証局サーバシステム130が方法850を実行する場合、暗号化されたファームウェアに署名する認証局サーバは、ステップ860を実行した認証局サーバと同じであってもよく、又は、異なっていてもよい。
【0195】
880において、方法850は、電子装置へのインストールのために、サードパーティーへの暗号化及び署名されたファームウェアの伝送を開始することを含む。例えば、サードパーティーは、プログラミング会社180を含んでもよく、又は、認証局サーバシステム130及び暗号化されたファームウェアの発信元であるサーバ(例えばKMS120)以外の任意のエンティティも含んでもよい。例えば、サーバシステム130は、サードパーティーへの転送のために、暗号化及び署名されたファームウェアをKMS120に伝送してもよく、又は、暗号化及び署名されたファームウェアをサードパーティーに直接的に伝送してもよい。
【0196】
890において、方法850は、FPKと、電子装置100を識別するための、EPKの関数を含む関連付けられた装置識別子とを、安全な通信チャネルを介して、サーバ(例えばKMS120)に送信することを含む。FPK及び装置識別子は、ルックアップテーブルとしてサーバに提供されてもよい。装置識別子及びFPKは、任意の適切な方法で取得されてもよく、例えば、OEM160に出荷される前にセキュリティモジュール110からそれらを抽出することで、又は、他のソースから情報を受信することで取得されてもよい。ステップ880は、ステップ890の前、同時、又は後に実行されてもよい。
【0197】
本方法は、電子装置がプログラミングされた後、装置識別子を登録する要求をサーバから受信することと、サーバを装置識別子に関連付けることとをさらに含んでもよい。
【0198】
図9Aは、電子装置100により実行する概略的な方法900のフローチャートを示す。電子装置100は、物理的複製困難関数(PUF)450を有するセキュリティモジュール110を備える。セキュリティモジュール110は、PUFに対する第1のチャレンジ及びレスポンスに基づいて、ファームウェア鍵ペア(FPK,FSK)を確立するように構成される。
【0199】
910において、方法900は、FPKを用いて暗号化されたサーバ復号鍵を、FSKを用いて復号することを含む。
【0200】
915において、方法900は、復号されたサーバ復号鍵を用いて、ファームウェアと、ファームウェアのハッシュ上の署名とを復号することを含む。
【0201】
920において、方法900は、電子装置に安全に組み込まれていた公開認証局鍵を用いて、ファームウェアのハッシュが、認証局140のような信頼された認証局によって署名されていることを検証することを含む。公開認証局鍵は、公開認証局鍵と、信頼された認証局に所有された対応する秘密認証局鍵とを含む認証局鍵ペアの一部である。
ステップ910は、ステップ920の前、同時、又は後に実行されてもよい。
【0202】
930において、方法900は、検証に基づいて、復号されたファームウェアを電子装置100にインストールすることを含む。
【0203】
図9Bは、電子装置100により実行するもう1つの概略的な方法950のフローチャートを示す。
【0204】
960において、方法950は、FPKを用いて暗号化されたサーバ復号鍵を、FSKを用いて復号することを含む。
【0205】
970において、方法950は、電子装置100に安全に組み込まれていた公開認証局鍵を用いて、暗号化された形式のファームウェアが、認証局140のような信頼された認証局によって認証されていることを検証することを含む。公開認証局鍵は、公開認証局鍵と、信頼された認証局に所有された対応する秘密認証局鍵とを含む認証局鍵ペアの一部である。ステップ960は、ステップ970の前、同時、又は後に実行されてもよい。
【0206】
980において、方法950は、復号されたサーバ復号鍵を用いて、電子装置100にインストールされるファームウェアを復号することを含む。
【0207】
図6A図9Bに関して上述した方法は、ファームウェアが電子装置に安全に提供されることを可能にする。優位点として、ファームウェアは、認証局140及びプログラミング会社180のいずれにも、暗号化されていない形式で提供されることはない。いったん電子装置100にファームウェアが提供されると、電子装置は登録を開始することができる。
【0208】
1つ又は複数のルート証明書は、製造時に電子装置100にインストールされてもよく、又は、追加セキュリティのために、図6図9に関して上述した方法を用いて、ファームウェアとともに、又はその一部として、電子装置100に提供されてもよい。
【0209】
図10は、いくつかの実施例に係るコンピュータ可読媒体1700を示す。
【0210】
コンピュータ可読媒体1700は、実行されたとき、プロセッサ1720又は他の処理/計算デバイス又は装置に特定の動作を実行させる命令1710をそれぞれ含む複数のユニットを格納する。
【0211】
例えば、命令1710は、公開鍵及び秘密鍵を含む鍵ペアの秘密鍵を用いて、ファームウェアのハッシュに署名させることをプロセッサ1720に実行させてもよい。公開鍵は電子装置に安全に組み込まれている。命令1710はさらに、サーバ暗号鍵を用いて、ファームウェアと、ハッシュ上の署名とを暗号化することをプロセッサ1720に実行させてもよい。命令1710はさらに、暗号化されたファームウェア及び暗号化された署名を復号するためのサーバ復号鍵を、FPKを用いて暗号化することをプロセッサ1720に実行させてもよい。命令1710はさらに、暗号化されたファームウェア、暗号化された署名、及び暗号化されたサーバ復号鍵を、電子装置へのインストールのために、サードパーティーに伝送することをプロセッサ1720に実行させてもよい。
【0212】
もう1つの実施例では、命令1710は、公開鍵及び秘密鍵を含む暗号鍵ペアの秘密鍵を用いて、暗号化された形式のファームウェアに署名させることをプロセッサ1720に実行させてもよい。公開鍵は電子装置に安全に組み込まれている。ファームウェアは、サーバ暗号鍵を用いて暗号化されている。命令1710はさらに、電子装置へのインストールのために、暗号化及び署名された形式のファームウェアをサードパーティーに伝送することをプロセッサ1720に実行させてもよい。命令1710はさらに、電子装置へのインストールのために、暗号化された形式のサーバ複合鍵をサードパーティーに伝送することをプロセッサ1720に実行させてもよい。サーバ復号鍵は、暗号化された形式のファームウェアの復号用である。サーバ復号鍵は、FPKを用いて暗号化されている。
【0213】
例えば、命令1710は、公開認証局鍵及び秘密認証局鍵を含む認証局鍵ペアの秘密認証局鍵を用いて、上記ファームウェアのハッシュに署名することをプロセッサ1720に実行させてもよい。公開認証局鍵は、電子装置のセキュリティモジュールに安全に組み込まれている。ファームウェアのハッシュは、サーバから安全な通信チャネルを介して受信される。命令1710はさらに、電子装置へのインストールのために、サードパーティーへのファームウェアのハッシュ上の署名の伝送を開始することをプロセッサ1720に実行させてもよい。命令1710はさらに、ファームウェア公開鍵FPKと、電子装置を識別するための、登録公開鍵EPKの関数を含む関連付けられた装置識別子とを示すルックアップテーブルを、安全な通信チャネルを介してサーバに送信することをプロセッサ1720に実行させてもよい。
【0214】
もう1つの実施例では、命令1710は、公開認証局鍵及び秘密認証局鍵を含む認証局鍵ペアの秘密認証局鍵を用いて、暗号化されたファームウェアに署名することをプロセッサ1720に実行させてもよい。公開認証局鍵は、電子装置のセキュリティモジュールに安全に組み込まれている。暗号化されたファームウェアは、サーバから安全な通信チャネルを介して受信される。命令1710はさらに、電子装置へのインストールのために、サードパーティーへの暗号化及び署名されたファームウェアの伝送を開始することをプロセッサ1720に実行させてもよい。命令1710はさらに、ファームウェア公開鍵FPKと、電子装置を識別するための、登録公開鍵EPKの関数を含む関連付けられた装置識別子とを示すルックアップテーブルを、安全な通信チャネルを介してサーバに送信することをプロセッサ1720に実行させてもよい。
【0215】
例えば、命令1710は、ファームウェア公開鍵FPKを用いて暗号化されたサーバ復号鍵を、ファームウェア秘密鍵FSKを用いて復号することをプロセッサ1720に実行させてもよい。命令1710はさらに、暗号化されたファームウェアと、ファームウェアのハッシュ上の署名とを、復号されたサーバ復号鍵を用いて復号することをプロセッサ1720に実行させてもよい。命令1710はさらに、電子装置に安全に組み込まれていた公開認証局鍵を用いて、ファームウェアのハッシュが、信頼された認証局によって署名されていることを検証することをプロセッサ1720に実行させてもよい。命令1710はさらに、検証に基づいて、復号されたファームウェアを電子装置にインストールすることをプロセッサ1720に実行させてもよい。
【0216】
例えば、命令1710は、FSKとともにファームウェア鍵ペアを形成するファームウェア公開鍵FPKを用いて暗号化されたサーバ復号鍵を、ファームウェア秘密鍵FSKを用いて復号することをプロセッサ1720に実行させてもよい。命令1710はさらに、公開認証局鍵を用いて、暗号化された形式のファームウェアが、信頼された認証局によって認証されていることを検証することをプロセッサ1720に実行させてもよい。命令1710はさらに、復号されたサーバ復号鍵を用いて、電子装置にインストールされるファームウェアを復号することをプロセッサ1720に実行させてもよい。
【0217】
1つ又は複数のコンピュータ可読媒体の任意の組み合わせが利用されてもよい。コンピュータ可読媒体は、コンピュータ可読信号媒体又はコンピュータ可読記憶媒体であってもよい。コンピュータ可読記憶媒体は、例えば、電子的、磁気的、光学的、電磁的、赤外線、または半導体システム、装置、デバイス、又は上述のものの任意の適切な組み合わせであってもよいが、これらに限定されない。コンピュータ可読媒体のより特定の例(非網羅的なリスト)は、1つ又は複数の導線を有する電気的接続、ポータブルコンピュータディスケット、ハードディスク、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、消去及びプログラム可能な読み出し専用メモリ(EPROM又はフラッシュメモリ)、光ファイバ、携帯型のコンパクトディスク読み出し専用メモリ(CDROM)、光記憶装置、磁気記憶装置、又は上述のものの任意の適切な組み合わせを含む。本願のコンテキストにおいて、コンピュータ可読記憶媒体は、命令実行システム、装置、又はデバイスにより使用するための、又は、それらに関連するプログラムを含む又は格納することができる任意の有形媒体であってもよい。
【0218】
コンピュータ可読信号媒体は、例えば、ベースバンド又は搬送波の一部として、そこに具体化されたコンピュータ可読プログラムコードを含む、伝搬されるデータ信号を含んでもよい。そのような伝搬される信号は、電磁的、光学的、又はそれらの任意の適切な組み合わせを含むが、これらに限定されない、さまざまな形式のうちの何かを有してもよい。コンピュータ可読信号媒体は、コンピュータ可読記憶媒体でなく、命令実行システム、装置、又はデバイスによる使用のための、又はそれらに関連するプログラムを伝送、伝搬、又は輸送することができる、任意のコンピュータ可読媒体であってもよい。
【0219】
コンピュータ可読媒体に具体化されたコンピュータコードは、無線、有線、光ファイバケーブル、無線周波数(RF)など、又はそれらの任意の適切な組み合わせを含むが、これらに限定されない、任意の適切な媒体を用いて送信されてもよい。
【0220】
本発明の態様のための動作を実行するためのコンピュータプログラムコードは、Java(登録商標)、Smalltalk(登録商標)、C++などのようなオブジェクト指向プログラミング言語、「C」プログラミング言語のような従来の手続き的なプログラミング言語、又は同様のプログラミング言語を含む、1つ又は複数のプログラミング言語の任意の組み合わせとして記述されてもよい。プログラムコードは、完全にユーザのコンピュータにおいて実行されてもよく、スタンドアロン型ソフトウェアパッケージとして、部分的にユーザのコンピュータにおいて実行されてもよく、部分的にユーザのコンピュータにおいて、かつ、部分的に遠隔のコンピュータにおいて実行されてもよく、又は完全に遠隔のコンピュータ又はサーバにおいて実行されてもよい。後者のシナリオにおいて、遠隔のコンピュータは、ローカルエリアネットワーク(LAN)又はワイドエリアネットワーク(WAN)を含む任意のタイプのネットワークを介してユーザのコンピュータに接続されてもよく、又は、接続は、(例えば、インターネットサービスプロバイダーを用いてインターネットを介して)外部コンピュータに対して行われてもよい。
【0221】
本願において説明した方法の多数の変形例が当業者には明らかになるであろう。
【0222】
本明細書(任意の添付の特許請求の範囲、要約書、及び図面も含む)において開示された各特徴は、明示的にそうでないと述べていない限り、同じ、同等、又は類似した目的をはたす代替の特徴で置き換えられてもよい。したがって、明示的にそうでないと述べていない限り、開示された各特徴は、一般的な一連の同等又は同様の特徴の単なる一例である。
【0223】
本発明は、上述した実施形態のいずれの詳細事項にも限定されない。本発明は、本明細書(任意の添付の特許請求の範囲、要約書、及び図面も含む)において開示された特徴のうちの任意の新規なもの又は任意の新規な組み合わせに拡張され、又は、そのように開示された任意の方法又は処理のステップのうちの任意の新規なもの又は任意の新規な組み合わせに拡張される。特許請求の範囲は、単に上述した実施形態をカバーするように解釈されるべきでなく、特許請求の範囲内にある任意の実施形態をカバーするように解釈されるべきである。
図1
図2
図3A
図3B
図4A
図4B
図5
図6A
図6B
図7A
図7B
図8A
図8B
図9A
図9B
図10
【国際調査報告】